geonetwork-ui 2.2.0-dev.f866474c → 2.3.0-dev.179fba83
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/libs/api/metadata-converter/src/index.mjs +5 -5
- package/esm2022/libs/api/metadata-converter/src/lib/base.converter.mjs +14 -0
- package/esm2022/libs/api/metadata-converter/src/lib/find-converter.mjs +15 -0
- package/esm2022/libs/api/metadata-converter/src/lib/gn4/atomic-operations.mjs +29 -2
- package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.converter.mjs +52 -0
- package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.mjs +102 -61
- package/esm2022/libs/api/metadata-converter/src/lib/gn4/index.mjs +4 -0
- 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/index.mjs +2 -0
- package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/iso19115-3.converter.mjs +123 -0
- package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.mjs +116 -0
- package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.mjs +138 -0
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/index.mjs +2 -0
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.mjs +242 -0
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/read-parts.mjs +102 -74
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/utils/individual-name.mjs +18 -0
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/utils/keyword.mapper.mjs +14 -0
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/utils/role.mapper.mjs +48 -0
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/utils/status.mapper.mjs +18 -0
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/utils/update-frequency.mapper.mjs +64 -0
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/write-parts.mjs +116 -79
- package/esm2022/libs/api/metadata-converter/src/lib/xml-utils.mjs +76 -14
- package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.mjs +2 -2
- package/esm2022/libs/api/repository/src/lib/gn4/gn4-repository.mjs +4 -4
- package/esm2022/libs/api/repository/src/lib/gn4/index.mjs +3 -1
- package/esm2022/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.mjs +10 -3
- package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.mjs +14 -5
- package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.mjs +33 -8
- package/esm2022/libs/api/repository/src/lib/gn4/selection/selection.service.mjs +13 -26
- package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +1 -1
- package/esm2022/libs/common/domain/src/lib/model/search/aggregation.model.mjs +1 -1
- package/esm2022/libs/common/domain/src/lib/model/search/field.model.mjs +2 -0
- package/esm2022/libs/common/domain/src/lib/model/search/filter.model.mjs +1 -1
- package/esm2022/libs/common/domain/src/lib/model/search/index.mjs +2 -1
- package/esm2022/libs/common/domain/src/lib/model/search/search.model.mjs +1 -1
- package/esm2022/libs/common/domain/src/lib/model/thesaurus/thesaurus.model.mjs +1 -1
- package/esm2022/libs/common/domain/src/lib/platform.service.interface.mjs +1 -1
- package/esm2022/libs/data-access/gn4/src/openapi/api/records.api.service.mjs +35 -7
- package/esm2022/libs/data-access/gn4/src/openapi/model/models.mjs +1 -2
- package/esm2022/libs/feature/catalog/src/lib/my-org/my-org.service.mjs +4 -10
- package/esm2022/libs/feature/dataviz/src/lib/service/data.service.mjs +6 -5
- package/esm2022/libs/feature/editor/src/index.mjs +6 -1
- package/esm2022/libs/feature/editor/src/lib/+state/editor.actions.mjs +8 -0
- package/esm2022/libs/feature/editor/src/lib/+state/editor.effects.mjs +26 -0
- package/esm2022/libs/feature/editor/src/lib/+state/editor.facade.mjs +30 -0
- package/esm2022/libs/feature/editor/src/lib/+state/editor.models.mjs +2 -0
- package/esm2022/libs/feature/editor/src/lib/+state/editor.reducer.mjs +42 -0
- package/esm2022/libs/feature/editor/src/lib/+state/editor.selectors.mjs +13 -0
- package/esm2022/libs/feature/editor/src/lib/expressions.mjs +13 -0
- package/esm2022/libs/feature/editor/src/lib/feature-editor.module.mjs +16 -4
- package/esm2022/libs/feature/editor/src/lib/fields.config.mjs +34 -0
- package/esm2022/libs/feature/editor/src/lib/models/fields.model.mjs +2 -0
- package/esm2022/libs/feature/editor/src/lib/record-form/record-form.component.mjs +17 -11
- package/esm2022/libs/feature/editor/src/lib/services/editor.service.mjs +24 -46
- package/esm2022/libs/feature/map/src/index.mjs +2 -1
- package/esm2022/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-record-preview/add-layer-record-preview.component.mjs +7 -3
- package/esm2022/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.mjs +106 -0
- package/esm2022/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.mjs +72 -0
- package/esm2022/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.mjs +64 -0
- package/esm2022/libs/feature/map/src/lib/constant/index.mjs +2 -1
- package/esm2022/libs/feature/map/src/lib/constant/projections.mjs +2 -0
- package/esm2022/libs/feature/map/src/lib/feature-map.module.mjs +29 -5
- package/esm2022/libs/feature/map/src/lib/geocoding/geocoding.component.mjs +93 -0
- package/esm2022/libs/feature/map/src/lib/geocoding.service.mjs +40 -0
- package/esm2022/libs/feature/map/src/lib/layers-panel/layers-panel.component.mjs +12 -5
- package/esm2022/libs/feature/map/src/lib/map-context/map-context.model.mjs +2 -1
- package/esm2022/libs/feature/map/src/lib/map-context/map-context.service.mjs +61 -24
- package/esm2022/libs/feature/map/src/lib/utils/index.mjs +1 -3
- package/esm2022/libs/feature/map/src/lib/utils/map-utils.service.mjs +63 -69
- package/esm2022/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.mjs +13 -13
- package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +34 -21
- package/esm2022/libs/feature/record/src/lib/state/mdview.reducer.mjs +2 -2
- package/esm2022/libs/feature/router/src/lib/default/index.mjs +2 -1
- package/esm2022/libs/feature/router/src/lib/default/router.service.mjs +1 -1
- package/esm2022/libs/feature/search/src/index.mjs +4 -1
- package/esm2022/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.mjs +7 -4
- package/esm2022/libs/feature/search/src/lib/feature-search.module.mjs +2 -6
- package/esm2022/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.mjs +1 -1
- package/esm2022/libs/feature/search/src/lib/filter-geometry.token.mjs +4 -0
- package/esm2022/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.mjs +7 -3
- package/esm2022/libs/feature/search/src/lib/record-url.token.mjs +4 -0
- package/esm2022/libs/feature/search/src/lib/results-list/results-list.container.component.mjs +3 -3
- package/esm2022/libs/feature/search/src/lib/results-table/results-table.component.mjs +128 -0
- package/esm2022/libs/feature/search/src/lib/state/effects.mjs +6 -4
- package/esm2022/libs/feature/search/src/lib/state/search.facade.mjs +3 -2
- package/esm2022/libs/feature/search/src/lib/utils/service/fields.mjs +41 -26
- package/esm2022/libs/feature/search/src/lib/utils/service/fields.service.mjs +11 -9
- package/esm2022/libs/ui/catalog/src/lib/language-switcher/language-switcher.component.mjs +4 -4
- package/esm2022/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.mjs +1 -1
- package/esm2022/libs/ui/elements/src/index.mjs +4 -1
- package/esm2022/libs/ui/elements/src/lib/downloads-list/downloads-list.component.mjs +3 -3
- package/esm2022/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.mjs +27 -0
- package/esm2022/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.mjs +17 -0
- package/esm2022/libs/ui/elements/src/lib/max-lines/max-lines.component.mjs +5 -3
- package/esm2022/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.mjs +3 -3
- package/esm2022/libs/ui/elements/src/lib/metadata-info/metadata-info.component.mjs +47 -16
- package/esm2022/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.mjs +3 -4
- package/esm2022/libs/ui/elements/src/lib/record-api-form/record-api-form.component.mjs +9 -6
- package/esm2022/libs/ui/elements/src/lib/related-record-card/related-record-card.component.mjs +3 -3
- package/esm2022/libs/ui/elements/src/lib/thumbnail/thumbnail.component.mjs +9 -4
- package/esm2022/libs/ui/elements/src/lib/ui-elements.module.mjs +20 -7
- package/esm2022/libs/ui/inputs/src/index.mjs +2 -1
- package/esm2022/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.mjs +3 -3
- package/esm2022/libs/ui/inputs/src/lib/button/button.component.mjs +10 -9
- package/esm2022/libs/ui/inputs/src/lib/checkbox/checkbox.component.mjs +3 -3
- package/esm2022/libs/ui/inputs/src/lib/dropdown-multiselect/dropdown-multiselect.component.mjs +3 -3
- package/esm2022/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.mjs +3 -3
- package/esm2022/libs/ui/inputs/src/lib/editable-label/editable-label.directive.mjs +46 -0
- package/esm2022/libs/ui/inputs/src/lib/files-drop/files-drop.directive.mjs +59 -0
- package/esm2022/libs/ui/inputs/src/lib/form-field/form-field.component.mjs +4 -2
- package/esm2022/libs/ui/inputs/src/lib/form-field/form-field.model.mjs +1 -1
- package/esm2022/libs/ui/inputs/src/lib/image-input/image-input.component.mjs +183 -0
- package/esm2022/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.mjs +3 -3
- package/esm2022/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.mjs +2 -2
- package/esm2022/libs/ui/inputs/src/lib/text-area/text-area.component.mjs +3 -3
- package/esm2022/libs/ui/inputs/src/lib/ui-inputs.module.mjs +19 -8
- package/esm2022/libs/ui/layout/src/index.mjs +3 -1
- package/esm2022/libs/ui/layout/src/lib/carousel/carousel.component.mjs +3 -3
- package/esm2022/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.mjs +36 -0
- package/esm2022/libs/ui/layout/src/lib/interactive-table/interactive-table.component.mjs +37 -0
- package/esm2022/libs/ui/search/src/index.mjs +1 -2
- package/esm2022/libs/ui/search/src/lib/record-preview-card/record-preview-card.component.mjs +1 -1
- package/esm2022/libs/ui/search/src/lib/record-preview-feed/record-preview-feed.component.mjs +1 -1
- package/esm2022/libs/ui/search/src/lib/record-preview-list/record-preview-list.component.mjs +1 -1
- package/esm2022/libs/ui/search/src/lib/record-preview-row/record-preview-row.component.mjs +1 -1
- package/esm2022/libs/ui/search/src/lib/record-preview-title/record-preview-title.component.mjs +1 -1
- package/esm2022/libs/ui/search/src/lib/ui-search.module.mjs +9 -10
- package/esm2022/libs/ui/widgets/src/lib/badge/badge.component.mjs +3 -3
- package/esm2022/libs/util/i18n/src/index.mjs +1 -2
- package/esm2022/libs/util/i18n/src/lib/i18n.constants.mjs +18 -1
- package/esm2022/libs/util/shared/src/lib/links/link-utils.mjs +29 -13
- package/esm2022/libs/util/shared/src/lib/utils/bytes-convert.mjs +4 -0
- package/esm2022/libs/util/shared/src/lib/utils/image-resize.mjs +60 -0
- package/esm2022/libs/util/shared/src/lib/utils/index.mjs +8 -5
- package/esm2022/libs/util/shared/src/lib/utils/temporal-extent-union.mjs +32 -0
- package/esm2022/translations/de.json +143 -109
- package/esm2022/translations/en.json +75 -41
- package/esm2022/translations/es.json +53 -19
- package/esm2022/translations/fr.json +69 -35
- package/esm2022/translations/it.json +70 -36
- package/esm2022/translations/nl.json +54 -20
- package/esm2022/translations/pt.json +53 -19
- package/fesm2022/geonetwork-ui.mjs +5799 -3893
- package/fesm2022/geonetwork-ui.mjs.map +1 -1
- package/libs/api/metadata-converter/src/index.d.ts +4 -4
- package/libs/api/metadata-converter/src/index.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/{metadata-base.mapper.d.ts → base.converter.d.ts} +3 -3
- package/libs/api/metadata-converter/src/lib/base.converter.d.ts.map +1 -0
- package/libs/api/metadata-converter/src/lib/find-converter.d.ts +3 -0
- package/libs/api/metadata-converter/src/lib/find-converter.d.ts.map +1 -0
- package/libs/api/metadata-converter/src/lib/gn4/atomic-operations.d.ts +3 -0
- package/libs/api/metadata-converter/src/lib/gn4/atomic-operations.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/gn4/{gn4.metadata.mapper.d.ts → gn4.converter.d.ts} +5 -5
- package/libs/api/metadata-converter/src/lib/gn4/gn4.converter.d.ts.map +1 -0
- package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts +0 -1
- package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/gn4/index.d.ts +4 -0
- package/libs/api/metadata-converter/src/lib/gn4/index.d.ts.map +1 -0
- package/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.d.ts +4 -5
- package/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/iso19115-3/index.d.ts +2 -0
- package/libs/api/metadata-converter/src/lib/iso19115-3/index.d.ts.map +1 -0
- package/libs/api/metadata-converter/src/lib/iso19115-3/iso19115-3.converter.d.ts +9 -0
- package/libs/api/metadata-converter/src/lib/iso19115-3/iso19115-3.converter.d.ts.map +1 -0
- package/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.d.ts +20 -0
- package/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.d.ts.map +1 -0
- package/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.d.ts +21 -0
- package/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.d.ts.map +1 -0
- package/libs/api/metadata-converter/src/lib/iso19139/index.d.ts +2 -0
- package/libs/api/metadata-converter/src/lib/iso19139/index.d.ts.map +1 -0
- package/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.d.ts +11 -0
- package/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.d.ts.map +1 -0
- package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts +39 -10
- package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/iso19139/utils/individual-name.d.ts +8 -0
- package/libs/api/metadata-converter/src/lib/iso19139/utils/individual-name.d.ts.map +1 -0
- package/libs/api/metadata-converter/src/lib/iso19139/utils/keyword.mapper.d.ts +3 -0
- package/libs/api/metadata-converter/src/lib/iso19139/utils/keyword.mapper.d.ts.map +1 -0
- package/libs/api/metadata-converter/src/lib/iso19139/utils/role.mapper.d.ts.map +1 -0
- package/libs/api/metadata-converter/src/lib/iso19139/utils/status.mapper.d.ts.map +1 -0
- package/libs/api/metadata-converter/src/lib/iso19139/utils/update-frequency.mapper.d.ts.map +1 -0
- package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts +43 -6
- package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/xml-utils.d.ts +14 -1
- package/libs/api/metadata-converter/src/lib/xml-utils.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts +2 -2
- package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/index.d.ts +2 -0
- package/libs/api/repository/src/lib/gn4/index.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.d.ts +1 -1
- package/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts +9 -2
- package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/selection/selection.service.d.ts +4 -5
- package/libs/api/repository/src/lib/gn4/selection/selection.service.d.ts.map +1 -1
- package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +36 -20
- package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
- package/libs/common/domain/src/lib/model/search/aggregation.model.d.ts +1 -1
- package/libs/common/domain/src/lib/model/search/aggregation.model.d.ts.map +1 -1
- package/libs/common/domain/src/lib/model/search/field.model.d.ts +2 -0
- package/libs/common/domain/src/lib/model/search/field.model.d.ts.map +1 -0
- package/libs/common/domain/src/lib/model/search/filter.model.d.ts +1 -1
- package/libs/common/domain/src/lib/model/search/filter.model.d.ts.map +1 -1
- package/libs/common/domain/src/lib/model/search/index.d.ts +1 -0
- package/libs/common/domain/src/lib/model/search/index.d.ts.map +1 -1
- package/libs/common/domain/src/lib/model/search/search.model.d.ts +2 -3
- package/libs/common/domain/src/lib/model/search/search.model.d.ts.map +1 -1
- package/libs/common/domain/src/lib/model/thesaurus/thesaurus.model.d.ts +1 -0
- package/libs/common/domain/src/lib/model/thesaurus/thesaurus.model.d.ts.map +1 -1
- package/libs/common/domain/src/lib/platform.service.interface.d.ts +1 -1
- package/libs/common/domain/src/lib/platform.service.interface.d.ts.map +1 -1
- package/libs/data-access/gn4/src/openapi/api/records.api.service.d.ts +9 -5
- package/libs/data-access/gn4/src/openapi/api/records.api.service.d.ts.map +1 -1
- package/libs/data-access/gn4/src/openapi/model/models.d.ts +0 -1
- package/libs/data-access/gn4/src/openapi/model/models.d.ts.map +1 -1
- package/libs/feature/catalog/src/lib/my-org/my-org.service.d.ts +0 -1
- package/libs/feature/catalog/src/lib/my-org/my-org.service.d.ts.map +1 -1
- package/libs/feature/dataviz/src/lib/service/data.service.d.ts +15 -2
- package/libs/feature/dataviz/src/lib/service/data.service.d.ts.map +1 -1
- package/libs/feature/editor/src/index.d.ts +5 -0
- package/libs/feature/editor/src/index.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/+state/editor.actions.d.ts +23 -0
- package/libs/feature/editor/src/lib/+state/editor.actions.d.ts.map +1 -0
- package/libs/feature/editor/src/lib/+state/editor.effects.d.ts +15 -0
- package/libs/feature/editor/src/lib/+state/editor.effects.d.ts.map +1 -0
- package/libs/feature/editor/src/lib/+state/editor.facade.d.ts +19 -0
- package/libs/feature/editor/src/lib/+state/editor.facade.d.ts.map +1 -0
- package/libs/feature/editor/src/lib/+state/editor.models.d.ts +2 -0
- package/libs/feature/editor/src/lib/+state/editor.models.d.ts.map +1 -0
- package/libs/feature/editor/src/lib/+state/editor.reducer.d.ts +18 -0
- package/libs/feature/editor/src/lib/+state/editor.reducer.d.ts.map +1 -0
- package/libs/feature/editor/src/lib/+state/editor.selectors.d.ts +15 -0
- package/libs/feature/editor/src/lib/+state/editor.selectors.d.ts.map +1 -0
- package/libs/feature/editor/src/lib/expressions.d.ts +4 -0
- package/libs/feature/editor/src/lib/expressions.d.ts.map +1 -0
- package/libs/feature/editor/src/lib/feature-editor.module.d.ts +3 -1
- package/libs/feature/editor/src/lib/feature-editor.module.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/fields.config.d.ts +3 -0
- package/libs/feature/editor/src/lib/fields.config.d.ts.map +1 -0
- package/libs/feature/editor/src/lib/models/fields.model.d.ts +15 -0
- package/libs/feature/editor/src/lib/models/fields.model.d.ts.map +1 -0
- package/libs/feature/editor/src/lib/record-form/record-form.component.d.ts +10 -5
- package/libs/feature/editor/src/lib/record-form/record-form.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/services/editor.service.d.ts +3 -13
- package/libs/feature/editor/src/lib/services/editor.service.d.ts.map +1 -1
- package/libs/feature/map/src/index.d.ts +1 -0
- package/libs/feature/map/src/index.d.ts.map +1 -1
- package/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-record-preview/add-layer-record-preview.component.d.ts.map +1 -1
- package/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.d.ts +22 -0
- package/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.d.ts.map +1 -0
- package/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.d.ts +23 -0
- package/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.d.ts.map +1 -0
- package/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.d.ts +22 -0
- package/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.d.ts.map +1 -0
- package/libs/feature/map/src/lib/constant/index.d.ts +1 -0
- package/libs/feature/map/src/lib/constant/index.d.ts.map +1 -1
- package/libs/feature/map/src/lib/constant/projections.d.ts.map +1 -0
- package/libs/feature/map/src/lib/feature-map.module.d.ts +16 -12
- package/libs/feature/map/src/lib/feature-map.module.d.ts.map +1 -1
- package/libs/feature/map/src/lib/geocoding/geocoding.component.d.ts +25 -0
- package/libs/feature/map/src/lib/geocoding/geocoding.component.d.ts.map +1 -0
- package/libs/feature/map/src/lib/geocoding.service.d.ts +18 -0
- package/libs/feature/map/src/lib/geocoding.service.d.ts.map +1 -0
- package/libs/feature/map/src/lib/layers-panel/layers-panel.component.d.ts +2 -0
- package/libs/feature/map/src/lib/layers-panel/layers-panel.component.d.ts.map +1 -1
- package/libs/feature/map/src/lib/map-context/map-context.model.d.ts +10 -5
- package/libs/feature/map/src/lib/map-context/map-context.model.d.ts.map +1 -1
- package/libs/feature/map/src/lib/map-context/map-context.service.d.ts +2 -0
- package/libs/feature/map/src/lib/map-context/map-context.service.d.ts.map +1 -1
- package/libs/feature/map/src/lib/utils/index.d.ts +0 -2
- package/libs/feature/map/src/lib/utils/index.d.ts.map +1 -1
- package/libs/feature/map/src/lib/utils/map-utils.service.d.ts +13 -12
- package/libs/feature/map/src/lib/utils/map-utils.service.d.ts.map +1 -1
- package/libs/feature/record/src/lib/map-view/map-view.component.d.ts +1 -3
- package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
- package/libs/feature/router/src/lib/default/index.d.ts +1 -0
- package/libs/feature/router/src/lib/default/index.d.ts.map +1 -1
- package/libs/feature/router/src/lib/default/router.service.d.ts +1 -1
- package/libs/feature/router/src/lib/default/router.service.d.ts.map +1 -1
- package/libs/feature/search/src/index.d.ts +3 -0
- package/libs/feature/search/src/index.d.ts.map +1 -1
- package/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.d.ts +5 -4
- package/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.d.ts.map +1 -1
- package/libs/feature/search/src/lib/feature-search.module.d.ts +0 -4
- package/libs/feature/search/src/lib/feature-search.module.d.ts.map +1 -1
- package/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.d.ts +3 -2
- package/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.d.ts.map +1 -1
- package/libs/feature/search/src/lib/filter-geometry.token.d.ts +4 -0
- package/libs/feature/search/src/lib/filter-geometry.token.d.ts.map +1 -0
- package/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.d.ts +1 -1
- package/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.d.ts.map +1 -1
- package/libs/feature/search/src/lib/record-url.token.d.ts +3 -0
- package/libs/feature/search/src/lib/record-url.token.d.ts.map +1 -0
- package/libs/feature/search/src/lib/results-table/results-table.component.d.ts +33 -0
- package/libs/feature/search/src/lib/results-table/results-table.component.d.ts.map +1 -0
- package/libs/feature/search/src/lib/state/effects.d.ts.map +1 -1
- package/libs/feature/search/src/lib/state/search.facade.d.ts +1 -1
- package/libs/feature/search/src/lib/state/search.facade.d.ts.map +1 -1
- package/libs/feature/search/src/lib/utils/service/fields.d.ts +21 -8
- package/libs/feature/search/src/lib/utils/service/fields.d.ts.map +1 -1
- package/libs/feature/search/src/lib/utils/service/fields.service.d.ts.map +1 -1
- package/libs/ui/dataviz/src/lib/chart/chart.component.d.ts +1 -1
- package/libs/ui/elements/src/index.d.ts +3 -0
- package/libs/ui/elements/src/index.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts +1 -1
- package/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.d.ts +10 -0
- package/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.d.ts.map +1 -0
- package/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.d.ts +8 -0
- package/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.d.ts.map +1 -0
- package/libs/ui/elements/src/lib/max-lines/max-lines.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/metadata-info/metadata-info.component.d.ts +16 -5
- package/libs/ui/elements/src/lib/metadata-info/metadata-info.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts +3 -1
- package/libs/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/thumbnail/thumbnail.component.d.ts +3 -2
- package/libs/ui/elements/src/lib/thumbnail/thumbnail.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/ui-elements.module.d.ts +10 -8
- package/libs/ui/elements/src/lib/ui-elements.module.d.ts.map +1 -1
- package/libs/ui/inputs/src/index.d.ts +1 -0
- package/libs/ui/inputs/src/index.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/button/button.component.d.ts +1 -1
- package/libs/ui/inputs/src/lib/button/button.component.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/editable-label/editable-label.directive.d.ts +13 -0
- package/libs/ui/inputs/src/lib/editable-label/editable-label.directive.d.ts.map +1 -0
- package/libs/ui/inputs/src/lib/files-drop/files-drop.directive.d.ts +14 -0
- package/libs/ui/inputs/src/lib/files-drop/files-drop.directive.d.ts.map +1 -0
- package/libs/ui/inputs/src/lib/form-field/form-field.component.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/form-field/form-field.model.d.ts +0 -1
- package/libs/ui/inputs/src/lib/form-field/form-field.model.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/image-input/image-input.component.d.ts +44 -0
- package/libs/ui/inputs/src/lib/image-input/image-input.component.d.ts.map +1 -0
- package/libs/ui/inputs/src/lib/text-area/text-area.component.d.ts +1 -1
- package/libs/ui/inputs/src/lib/text-area/text-area.component.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts +41 -39
- package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts.map +1 -1
- package/libs/ui/layout/src/index.d.ts +2 -0
- package/libs/ui/layout/src/index.d.ts.map +1 -1
- package/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.d.ts +14 -0
- package/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.d.ts.map +1 -0
- package/libs/ui/layout/src/lib/interactive-table/interactive-table.component.d.ts +15 -0
- package/libs/ui/layout/src/lib/interactive-table/interactive-table.component.d.ts.map +1 -0
- package/libs/ui/search/src/index.d.ts +0 -1
- package/libs/ui/search/src/index.d.ts.map +1 -1
- package/libs/ui/search/src/lib/ui-search.module.d.ts +15 -15
- package/libs/ui/search/src/lib/ui-search.module.d.ts.map +1 -1
- package/libs/util/i18n/src/index.d.ts +0 -1
- package/libs/util/i18n/src/index.d.ts.map +1 -1
- package/libs/util/i18n/src/lib/i18n.constants.d.ts +17 -0
- package/libs/util/i18n/src/lib/i18n.constants.d.ts.map +1 -1
- package/libs/util/shared/src/lib/links/link-utils.d.ts +19 -7
- package/libs/util/shared/src/lib/links/link-utils.d.ts.map +1 -1
- package/libs/util/shared/src/lib/utils/bytes-convert.d.ts +2 -0
- package/libs/util/shared/src/lib/utils/bytes-convert.d.ts.map +1 -0
- package/libs/util/shared/src/lib/utils/image-resize.d.ts +3 -0
- package/libs/util/shared/src/lib/utils/image-resize.d.ts.map +1 -0
- package/libs/util/shared/src/lib/utils/index.d.ts +7 -4
- package/libs/util/shared/src/lib/utils/index.d.ts.map +1 -1
- package/libs/util/shared/src/lib/utils/temporal-extent-union.d.ts +5 -0
- package/libs/util/shared/src/lib/utils/temporal-extent-union.d.ts.map +1 -0
- package/package.json +5 -2
- package/src/libs/api/metadata-converter/src/index.ts +4 -4
- package/src/libs/api/metadata-converter/src/lib/{metadata-base.mapper.ts → base.converter.ts} +2 -2
- package/src/libs/api/metadata-converter/src/lib/find-converter.ts +16 -0
- package/src/libs/api/metadata-converter/src/lib/fixtures/generic.records.ts +94 -12
- package/src/libs/api/metadata-converter/src/lib/fixtures/geo2france.records.ts +67 -12
- package/src/libs/api/metadata-converter/src/lib/fixtures/geocat-ch.records.ts +260 -29
- package/src/libs/api/metadata-converter/src/lib/fixtures/metawal.records.ts +580 -0
- package/src/libs/api/metadata-converter/src/lib/gn4/atomic-operations.ts +33 -1
- package/src/libs/api/metadata-converter/src/lib/gn4/{gn4.metadata.mapper.ts → gn4.converter.ts} +9 -5
- package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +148 -76
- package/src/libs/api/metadata-converter/src/lib/gn4/index.ts +3 -0
- package/src/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.ts +4 -5
- package/src/libs/api/metadata-converter/src/lib/iso19115-3/index.ts +1 -0
- package/src/libs/api/metadata-converter/src/lib/iso19115-3/iso19115-3.converter.ts +176 -0
- package/src/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.ts +329 -0
- package/src/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.ts +513 -0
- package/src/libs/api/metadata-converter/src/lib/iso19139/index.ts +1 -0
- package/src/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.ts +327 -0
- package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +230 -134
- package/src/libs/api/metadata-converter/src/lib/iso19139/utils/individual-name.ts +20 -0
- package/src/libs/api/metadata-converter/src/lib/iso19139/utils/keyword.mapper.ts +16 -0
- package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +338 -178
- package/src/libs/api/metadata-converter/src/lib/xml-utils.ts +84 -16
- package/src/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.ts +1 -1
- package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +2 -2
- package/src/libs/api/repository/src/lib/gn4/index.ts +2 -0
- package/src/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.ts +22 -2
- package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.ts +15 -4
- package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +47 -8
- package/src/libs/api/repository/src/lib/gn4/selection/selection.service.ts +14 -38
- package/src/libs/common/domain/src/lib/index.ts +2 -0
- package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +45 -24
- package/src/libs/common/domain/src/lib/model/search/aggregation.model.ts +1 -1
- package/src/libs/common/domain/src/lib/model/search/field.model.ts +1 -0
- package/src/libs/common/domain/src/lib/model/search/filter.model.ts +1 -1
- package/src/libs/common/domain/src/lib/model/search/index.ts +1 -0
- package/src/libs/common/domain/src/lib/model/search/search.model.ts +2 -2
- package/src/libs/common/domain/src/lib/model/thesaurus/thesaurus.model.ts +1 -0
- package/src/libs/common/domain/src/lib/model/user/index.ts +1 -0
- package/src/libs/common/domain/src/lib/platform.service.interface.ts +1 -4
- package/src/libs/common/fixtures/src/lib/elasticsearch/full-response.ts +1 -1
- package/src/libs/common/fixtures/src/lib/gn4/groups.fixtures.ts +1 -1
- package/src/libs/common/fixtures/src/lib/records.fixtures.ts +52 -10
- package/src/libs/data-access/gn4/src/openapi/api/records.api.service.ts +43 -12
- package/src/libs/data-access/gn4/src/openapi/model/models.ts +0 -1
- package/src/libs/data-access/gn4/src/spec.yaml +1 -1
- package/src/libs/feature/catalog/src/lib/my-org/my-org.service.ts +4 -16
- package/src/libs/feature/dataviz/src/lib/service/data.service.ts +9 -6
- package/src/libs/feature/editor/src/index.ts +5 -0
- package/src/libs/feature/editor/src/lib/+state/editor.actions.ts +24 -0
- package/src/libs/feature/editor/src/lib/+state/editor.effects.ts +49 -0
- package/src/libs/feature/editor/src/lib/+state/editor.facade.ts +30 -0
- package/src/libs/feature/editor/src/lib/+state/editor.models.ts +1 -0
- package/src/libs/feature/editor/src/lib/+state/editor.reducer.ts +68 -0
- package/src/libs/feature/editor/src/lib/+state/editor.selectors.ts +39 -0
- package/src/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.css +0 -0
- package/src/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.html +8 -0
- package/src/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.ts +70 -0
- package/src/libs/feature/editor/src/lib/expressions.ts +16 -0
- package/src/libs/feature/editor/src/lib/feature-editor.module.ts +11 -0
- package/src/libs/feature/editor/src/lib/fields.config.ts +35 -0
- package/src/libs/feature/editor/src/lib/models/fields.model.ts +29 -0
- package/src/libs/feature/editor/src/lib/record-form/record-form.component.html +9 -7
- package/src/libs/feature/editor/src/lib/record-form/record-form.component.ts +13 -6
- package/src/libs/feature/editor/src/lib/services/editor.service.ts +39 -67
- package/src/libs/feature/map/src/index.ts +1 -0
- package/src/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-record-preview/add-layer-record-preview.component.ts +5 -1
- package/src/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.css +0 -0
- package/src/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.html +21 -0
- package/src/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.ts +107 -0
- package/src/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.css +0 -0
- package/src/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.html +36 -0
- package/src/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.ts +80 -0
- package/src/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.css +0 -0
- package/src/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.html +37 -0
- package/src/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.ts +64 -0
- package/src/libs/feature/map/src/lib/constant/index.ts +1 -0
- package/src/libs/feature/map/src/lib/feature-map.module.ts +14 -0
- package/src/libs/feature/map/src/lib/geocoding/geocoding.component.css +0 -0
- package/src/libs/feature/map/src/lib/geocoding/geocoding.component.html +39 -0
- package/src/libs/feature/map/src/lib/geocoding/geocoding.component.ts +99 -0
- package/src/libs/feature/map/src/lib/geocoding.service.ts +59 -0
- package/src/libs/feature/map/src/lib/layers-panel/layers-panel.component.html +14 -2
- package/src/libs/feature/map/src/lib/layers-panel/layers-panel.component.ts +5 -0
- package/src/libs/feature/map/src/lib/map-context/map-context.model.ts +10 -3
- package/src/libs/feature/map/src/lib/map-context/map-context.service.ts +72 -28
- package/src/libs/feature/map/src/lib/utils/index.ts +0 -2
- package/src/libs/feature/map/src/lib/utils/map-utils.service.ts +87 -96
- package/src/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.ts +12 -12
- package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +23 -4
- package/src/libs/feature/record/src/lib/state/mdview.reducer.ts +1 -1
- package/src/libs/feature/router/src/lib/default/index.ts +1 -0
- package/src/libs/feature/router/src/lib/default/router.service.ts +1 -1
- package/src/libs/feature/search/src/index.ts +3 -0
- package/src/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.html +13 -4
- package/src/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.ts +2 -1
- package/src/libs/feature/search/src/lib/feature-search.module.ts +1 -10
- package/src/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.ts +4 -4
- package/src/libs/feature/search/src/lib/filter-geometry.token.ts +7 -0
- package/src/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.ts +9 -3
- package/src/libs/feature/search/src/lib/record-url.token.ts +4 -0
- package/src/libs/feature/search/src/lib/results-list/results-list.container.component.ts +1 -1
- package/src/libs/feature/search/src/lib/results-table/results-table.component.css +0 -0
- package/src/libs/feature/search/src/lib/results-table/results-table.component.html +112 -0
- package/src/libs/feature/search/src/lib/results-table/results-table.component.ts +164 -0
- package/src/libs/feature/search/src/lib/state/effects.ts +5 -4
- package/src/libs/feature/search/src/lib/state/search.facade.ts +2 -1
- package/src/libs/feature/search/src/lib/utils/service/fields.service.ts +21 -16
- package/src/libs/feature/search/src/lib/utils/service/fields.ts +43 -34
- package/src/libs/ui/catalog/src/lib/language-switcher/language-switcher.component.html +1 -0
- package/src/libs/ui/catalog/src/lib/language-switcher/language-switcher.component.ts +1 -1
- package/src/libs/ui/elements/src/index.ts +3 -0
- package/src/libs/ui/elements/src/lib/downloads-list/downloads-list.component.html +4 -1
- package/src/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.css +0 -0
- package/src/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.html +30 -0
- package/src/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.ts +15 -0
- package/src/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.css +5 -0
- package/src/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.html +39 -0
- package/src/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.ts +58 -0
- package/src/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.css +264 -0
- package/src/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.html +1 -0
- package/src/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.ts +17 -0
- package/src/libs/ui/elements/src/lib/max-lines/max-lines.component.html +5 -1
- package/src/libs/ui/elements/src/lib/max-lines/max-lines.component.ts +1 -0
- package/src/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.html +3 -3
- package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.css +4 -0
- package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.html +212 -68
- package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.ts +51 -10
- package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.ts +2 -3
- package/src/libs/ui/elements/src/lib/record-api-form/record-api-form.component.html +5 -5
- package/src/libs/ui/elements/src/lib/record-api-form/record-api-form.component.ts +12 -4
- package/src/libs/ui/elements/src/lib/related-record-card/related-record-card.component.html +1 -1
- package/src/libs/ui/elements/src/lib/thumbnail/thumbnail.component.html +2 -2
- package/src/libs/ui/elements/src/lib/thumbnail/thumbnail.component.ts +9 -3
- package/src/libs/ui/elements/src/lib/ui-elements.module.ts +8 -1
- package/src/libs/ui/inputs/src/index.ts +1 -0
- package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.html +1 -1
- package/src/libs/ui/inputs/src/lib/button/button.component.css +0 -5
- package/src/libs/ui/inputs/src/lib/button/button.component.html +0 -1
- package/src/libs/ui/inputs/src/lib/button/button.component.ts +8 -7
- package/src/libs/ui/inputs/src/lib/checkbox/checkbox.component.html +0 -1
- package/src/libs/ui/inputs/src/lib/dropdown-multiselect/dropdown-multiselect.component.html +2 -2
- package/src/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.html +3 -1
- package/src/libs/ui/inputs/src/lib/editable-label/editable-label.directive.ts +48 -0
- package/src/libs/ui/inputs/src/lib/files-drop/files-drop.directive.ts +45 -0
- package/src/libs/ui/inputs/src/lib/form-field/form-field.component.ts +3 -1
- package/src/libs/ui/inputs/src/lib/form-field/form-field.model.ts +0 -1
- package/src/libs/ui/inputs/src/lib/image-input/image-input.component.css +0 -0
- package/src/libs/ui/inputs/src/lib/image-input/image-input.component.html +146 -0
- package/src/libs/ui/inputs/src/lib/image-input/image-input.component.ts +193 -0
- package/src/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.css +3 -0
- package/src/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.html +8 -3
- package/src/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.css +1 -0
- package/src/libs/ui/inputs/src/lib/text-area/text-area.component.ts +1 -0
- package/src/libs/ui/inputs/src/lib/ui-inputs.module.ts +8 -2
- package/src/libs/ui/layout/src/index.ts +2 -0
- package/src/libs/ui/layout/src/lib/carousel/carousel.component.css +1 -1
- package/src/libs/ui/layout/src/lib/carousel/carousel.component.html +1 -0
- package/src/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.css +0 -0
- package/src/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.html +1 -0
- package/src/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.ts +33 -0
- package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.css +15 -0
- package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.html +54 -0
- package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.ts +42 -0
- package/src/libs/ui/search/src/index.ts +0 -1
- package/src/libs/ui/search/src/lib/ui-search.module.ts +2 -3
- package/src/libs/ui/widgets/src/lib/badge/badge.component.html +3 -1
- package/src/libs/util/i18n/src/index.ts +0 -1
- package/src/libs/util/i18n/src/lib/i18n.constants.ts +18 -0
- package/src/libs/util/shared/src/lib/links/link-utils.ts +34 -11
- package/src/libs/util/shared/src/lib/utils/bytes-convert.ts +3 -0
- package/src/libs/util/shared/src/lib/utils/image-resize.ts +72 -0
- package/src/libs/util/shared/src/lib/utils/index.ts +7 -4
- package/src/libs/util/shared/src/lib/utils/temporal-extent-union.ts +32 -0
- package/tailwind.base.css +44 -15
- package/translations/de.json +143 -109
- package/translations/en.json +75 -41
- package/translations/es.json +53 -19
- package/translations/fr.json +69 -35
- package/translations/it.json +70 -36
- package/translations/nl.json +54 -20
- package/translations/pt.json +53 -19
- package/translations/sk.json +131 -97
- package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.metadata.mapper.mjs +0 -48
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/codelists/role.mapper.mjs +0 -48
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/codelists/status.mapper.mjs +0 -18
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/codelists/update-frequency.mapper.mjs +0 -64
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/converter.mjs +0 -122
- package/esm2022/libs/api/metadata-converter/src/lib/metadata-base.mapper.mjs +0 -14
- package/esm2022/libs/data-access/gn4/src/openapi/model/inlineObject3.api.model.mjs +0 -13
- package/esm2022/libs/feature/map/src/lib/utils/map-utils-wms.service.mjs +0 -55
- package/esm2022/libs/feature/map/src/lib/utils/projections.mjs +0 -2
- package/esm2022/libs/ui/search/src/lib/record-table/record-table.component.mjs +0 -145
- package/esm2022/libs/util/i18n/src/lib/testing/test.translate.loader.mjs +0 -24
- package/esm2022/libs/util/i18n/src/lib/testing/test.translate.module.mjs +0 -109
- package/esm2022/libs/util/i18n/src/lib/testing/translations.model.mjs +0 -6
- package/libs/api/metadata-converter/src/lib/gn4/gn4.metadata.mapper.d.ts.map +0 -1
- package/libs/api/metadata-converter/src/lib/iso19139/codelists/role.mapper.d.ts.map +0 -1
- package/libs/api/metadata-converter/src/lib/iso19139/codelists/status.mapper.d.ts.map +0 -1
- package/libs/api/metadata-converter/src/lib/iso19139/codelists/update-frequency.mapper.d.ts.map +0 -1
- package/libs/api/metadata-converter/src/lib/iso19139/converter.d.ts +0 -4
- package/libs/api/metadata-converter/src/lib/iso19139/converter.d.ts.map +0 -1
- package/libs/api/metadata-converter/src/lib/metadata-base.mapper.d.ts.map +0 -1
- package/libs/data-access/gn4/src/openapi/model/inlineObject3.api.model.d.ts +0 -18
- package/libs/data-access/gn4/src/openapi/model/inlineObject3.api.model.d.ts.map +0 -1
- package/libs/feature/map/src/lib/utils/map-utils-wms.service.d.ts +0 -17
- package/libs/feature/map/src/lib/utils/map-utils-wms.service.d.ts.map +0 -1
- package/libs/feature/map/src/lib/utils/projections.d.ts.map +0 -1
- package/libs/ui/search/src/lib/record-table/record-table.component.d.ts +0 -31
- package/libs/ui/search/src/lib/record-table/record-table.component.d.ts.map +0 -1
- package/libs/util/i18n/src/lib/testing/test.translate.loader.d.ts +0 -17
- package/libs/util/i18n/src/lib/testing/test.translate.loader.d.ts.map +0 -1
- package/libs/util/i18n/src/lib/testing/test.translate.module.d.ts +0 -131
- package/libs/util/i18n/src/lib/testing/test.translate.module.d.ts.map +0 -1
- package/libs/util/i18n/src/lib/testing/translations.model.d.ts +0 -21
- package/libs/util/i18n/src/lib/testing/translations.model.d.ts.map +0 -1
- package/src/libs/api/metadata-converter/src/lib/iso19139/converter.ts +0 -187
- package/src/libs/data-access/gn4/src/openapi/model/inlineObject3.api.model.ts +0 -18
- package/src/libs/feature/map/src/lib/utils/map-utils-wms.service.ts +0 -58
- package/src/libs/ui/search/src/lib/record-table/record-table.component.css +0 -7
- package/src/libs/ui/search/src/lib/record-table/record-table.component.html +0 -215
- package/src/libs/ui/search/src/lib/record-table/record-table.component.ts +0 -149
- package/src/libs/util/i18n/src/lib/testing/test.translate.loader.ts +0 -26
- package/src/libs/util/i18n/src/lib/testing/test.translate.module.ts +0 -235
- package/src/libs/util/i18n/src/lib/testing/translations.model.ts +0 -28
- /package/libs/api/metadata-converter/src/lib/iso19139/{codelists → utils}/role.mapper.d.ts +0 -0
- /package/libs/api/metadata-converter/src/lib/iso19139/{codelists → utils}/status.mapper.d.ts +0 -0
- /package/libs/api/metadata-converter/src/lib/iso19139/{codelists → utils}/update-frequency.mapper.d.ts +0 -0
- /package/libs/feature/map/src/lib/{utils → constant}/projections.d.ts +0 -0
- /package/src/libs/api/metadata-converter/src/lib/iso19139/{codelists → utils}/role.mapper.ts +0 -0
- /package/src/libs/api/metadata-converter/src/lib/iso19139/{codelists → utils}/status.mapper.ts +0 -0
- /package/src/libs/api/metadata-converter/src/lib/iso19139/{codelists → utils}/update-frequency.mapper.ts +0 -0
- /package/src/libs/feature/map/src/lib/{utils → constant}/projections.ts +0 -0
|
@@ -1,24 +1,30 @@
|
|
|
1
1
|
import { CommonModule } from '@angular/common';
|
|
2
2
|
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
3
|
-
import {
|
|
3
|
+
import { UiInputsModule } from '../../../../../../libs/ui/inputs/src';
|
|
4
|
+
import { EditorFacade } from '../+state/editor.facade';
|
|
4
5
|
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "
|
|
6
|
+
import * as i1 from "../+state/editor.facade";
|
|
6
7
|
import * as i2 from "@angular/common";
|
|
8
|
+
import * as i3 from "../../../../../ui/inputs/src/lib/form-field/form-field.component";
|
|
7
9
|
export class RecordFormComponent {
|
|
8
|
-
constructor(
|
|
9
|
-
this.
|
|
10
|
+
constructor(facade) {
|
|
11
|
+
this.facade = facade;
|
|
12
|
+
this.fields$ = this.facade.recordFields$;
|
|
10
13
|
}
|
|
11
|
-
handleFieldValueChange(
|
|
12
|
-
|
|
14
|
+
handleFieldValueChange(field, newValue) {
|
|
15
|
+
if (!field.config.model) {
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
this.facade.updateRecordField(field.config.model, newValue);
|
|
13
19
|
}
|
|
14
20
|
fieldTracker(index, field) {
|
|
15
21
|
return field.config.model;
|
|
16
22
|
}
|
|
17
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: RecordFormComponent, deps: [{ token: i1.
|
|
18
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: RecordFormComponent, isStandalone: true, selector: "gn-ui-record-form", ngImport: i0, template: "<div class=\"flex flex-col gap-6\">\n <
|
|
23
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: RecordFormComponent, deps: [{ token: i1.EditorFacade }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
24
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: RecordFormComponent, isStandalone: true, selector: "gn-ui-record-form", ngImport: i0, template: "<div class=\"flex flex-col gap-6 p-6\">\n <ng-container *ngFor=\"let field of fields$ | async; trackBy: fieldTracker\">\n <gn-ui-form-field\n *ngIf=\"field.config.formFieldConfig && !field.config.hidden\"\n [config]=\"field.config.formFieldConfig\"\n [value]=\"field.value\"\n (valueChange)=\"handleFieldValueChange(field, $event)\"\n ></gn-ui-form-field>\n </ng-container>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "ngmodule", type: UiInputsModule }, { kind: "component", type: i3.FormFieldComponent, selector: "gn-ui-form-field", inputs: ["config", "value"], outputs: ["valueChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
19
25
|
}
|
|
20
26
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: RecordFormComponent, decorators: [{
|
|
21
27
|
type: Component,
|
|
22
|
-
args: [{ selector: 'gn-ui-record-form', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule], template: "<div class=\"flex flex-col gap-6\">\n <
|
|
23
|
-
}], ctorParameters: function () { return [{ type: i1.
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
28
|
+
args: [{ selector: 'gn-ui-record-form', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, UiInputsModule], template: "<div class=\"flex flex-col gap-6 p-6\">\n <ng-container *ngFor=\"let field of fields$ | async; trackBy: fieldTracker\">\n <gn-ui-form-field\n *ngIf=\"field.config.formFieldConfig && !field.config.hidden\"\n [config]=\"field.config.formFieldConfig\"\n [value]=\"field.value\"\n (valueChange)=\"handleFieldValueChange(field, $event)\"\n ></gn-ui-form-field>\n </ng-container>\n</div>\n" }]
|
|
29
|
+
}], ctorParameters: function () { return [{ type: i1.EditorFacade }]; } });
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkLWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL2VkaXRvci9zcmMvbGliL3JlY29yZC1mb3JtL3JlY29yZC1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9lZGl0b3Ivc3JjL2xpYi9yZWNvcmQtZm9ybS9yZWNvcmQtZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0NBQXNDLENBQUE7QUFDckUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFBOzs7OztBQVd0RCxNQUFNLE9BQU8sbUJBQW1CO0lBRzlCLFlBQW1CLE1BQW9CO1FBQXBCLFdBQU0sR0FBTixNQUFNLENBQWM7UUFGdkMsWUFBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFBO0lBRU8sQ0FBQztJQUUzQyxzQkFBc0IsQ0FBQyxLQUF1QixFQUFFLFFBQTBCO1FBQ3hFLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRTtZQUN2QixPQUFNO1NBQ1A7UUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFBO0lBQzdELENBQUM7SUFFRCxZQUFZLENBQUMsS0FBYSxFQUFFLEtBQXVCO1FBQ2pELE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUE7SUFDM0IsQ0FBQzs4R0FkVSxtQkFBbUI7a0dBQW5CLG1CQUFtQiw2RUNkaEMsNlpBVUEseURERVksWUFBWSxvVEFBRSxjQUFjOzsyRkFFM0IsbUJBQW1CO2tCQVIvQixTQUFTOytCQUNFLG1CQUFtQixtQkFHWix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IFVpSW5wdXRzTW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9pbnB1dHMvc3JjJ1xuaW1wb3J0IHsgRWRpdG9yRmFjYWRlIH0gZnJvbSAnLi4vK3N0YXRlL2VkaXRvci5mYWNhZGUnXG5pbXBvcnQgeyBFZGl0b3JGaWVsZFN0YXRlLCBFZGl0b3JGaWVsZFZhbHVlIH0gZnJvbSAnLi4vbW9kZWxzL2ZpZWxkcy5tb2RlbCdcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktcmVjb3JkLWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vcmVjb3JkLWZvcm0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9yZWNvcmQtZm9ybS5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBVaUlucHV0c01vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIFJlY29yZEZvcm1Db21wb25lbnQge1xuICBmaWVsZHMkID0gdGhpcy5mYWNhZGUucmVjb3JkRmllbGRzJFxuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBmYWNhZGU6IEVkaXRvckZhY2FkZSkge31cblxuICBoYW5kbGVGaWVsZFZhbHVlQ2hhbmdlKGZpZWxkOiBFZGl0b3JGaWVsZFN0YXRlLCBuZXdWYWx1ZTogRWRpdG9yRmllbGRWYWx1ZSkge1xuICAgIGlmICghZmllbGQuY29uZmlnLm1vZGVsKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgdGhpcy5mYWNhZGUudXBkYXRlUmVjb3JkRmllbGQoZmllbGQuY29uZmlnLm1vZGVsLCBuZXdWYWx1ZSlcbiAgfVxuXG4gIGZpZWxkVHJhY2tlcihpbmRleDogbnVtYmVyLCBmaWVsZDogRWRpdG9yRmllbGRTdGF0ZSkge1xuICAgIHJldHVybiBmaWVsZC5jb25maWcubW9kZWxcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZ2FwLTYgcC02XCI+XG4gIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGZpZWxkIG9mIGZpZWxkcyQgfCBhc3luYzsgdHJhY2tCeTogZmllbGRUcmFja2VyXCI+XG4gICAgPGduLXVpLWZvcm0tZmllbGRcbiAgICAgICpuZ0lmPVwiZmllbGQuY29uZmlnLmZvcm1GaWVsZENvbmZpZyAmJiAhZmllbGQuY29uZmlnLmhpZGRlblwiXG4gICAgICBbY29uZmlnXT1cImZpZWxkLmNvbmZpZy5mb3JtRmllbGRDb25maWdcIlxuICAgICAgW3ZhbHVlXT1cImZpZWxkLnZhbHVlXCJcbiAgICAgICh2YWx1ZUNoYW5nZSk9XCJoYW5kbGVGaWVsZFZhbHVlQ2hhbmdlKGZpZWxkLCAkZXZlbnQpXCJcbiAgICA+PC9nbi11aS1mb3JtLWZpZWxkPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuIl19
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { Inject, Injectable, Optional } from '@angular/core';
|
|
2
|
-
import {
|
|
2
|
+
import { findConverterForDocument, Iso19139Converter, } from '../../../../../../libs/api/metadata-converter/src';
|
|
3
3
|
import { Configuration } from '../../../../../../libs/data-access/gn4/src';
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
4
|
+
import { from } from 'rxjs';
|
|
5
|
+
import { map, switchMap } from 'rxjs/operators';
|
|
6
6
|
import { HttpClient } from '@angular/common/http';
|
|
7
|
+
import { evaluate } from '../expressions';
|
|
7
8
|
import * as i0 from "@angular/core";
|
|
8
9
|
import * as i1 from "@angular/common/http";
|
|
9
10
|
import * as i2 from "../../../../../../libs/data-access/gn4/src";
|
|
@@ -11,32 +12,9 @@ export class EditorService {
|
|
|
11
12
|
constructor(http, apiConfiguration) {
|
|
12
13
|
this.http = http;
|
|
13
14
|
this.apiConfiguration = apiConfiguration;
|
|
14
|
-
this.record$ = new BehaviorSubject(null);
|
|
15
|
-
this.fieldsConfig = [
|
|
16
|
-
{
|
|
17
|
-
model: 'title',
|
|
18
|
-
labelKey: 'Metadata title',
|
|
19
|
-
type: 'text',
|
|
20
|
-
},
|
|
21
|
-
{
|
|
22
|
-
model: 'abstract',
|
|
23
|
-
labelKey: 'Abstract',
|
|
24
|
-
type: 'rich',
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
model: 'uniqueIdentifier',
|
|
28
|
-
labelKey: 'Unique identifier',
|
|
29
|
-
type: 'text',
|
|
30
|
-
locked: true,
|
|
31
|
-
},
|
|
32
|
-
];
|
|
33
15
|
this.apiUrl = `${this.apiConfiguration?.basePath || '/geonetwork/srv/api'}`;
|
|
34
|
-
this.fields$ = this.record$.pipe(map((record) => this.fieldsConfig.map((fieldConfig) => ({
|
|
35
|
-
config: fieldConfig,
|
|
36
|
-
value: record?.[fieldConfig.model] || null,
|
|
37
|
-
}))));
|
|
38
|
-
this.saving$ = new BehaviorSubject(false);
|
|
39
16
|
}
|
|
17
|
+
// TODO: use the catalog repository instead
|
|
40
18
|
loadRecordByUuid(uuid) {
|
|
41
19
|
return this.http
|
|
42
20
|
.get(`${this.apiUrl}/records/${uuid}/formatters/xml`, {
|
|
@@ -45,29 +23,29 @@ export class EditorService {
|
|
|
45
23
|
Accept: 'application/xml',
|
|
46
24
|
},
|
|
47
25
|
})
|
|
48
|
-
.pipe(
|
|
26
|
+
.pipe(switchMap((response) => findConverterForDocument(response).readRecord(response.toString())));
|
|
49
27
|
}
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
28
|
+
// returns the record as it was when saved
|
|
29
|
+
saveRecord(record, fieldsConfig) {
|
|
30
|
+
const savedRecord = { ...record };
|
|
31
|
+
// run onSave processes
|
|
32
|
+
for (const field of fieldsConfig) {
|
|
33
|
+
if (field.onSaveProcess && field.model) {
|
|
34
|
+
const evaluator = evaluate(field.onSaveProcess);
|
|
35
|
+
savedRecord[field.model] = evaluator({
|
|
36
|
+
config: field,
|
|
37
|
+
value: record[field.model],
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
// TODO: use the catalog repository instead
|
|
42
|
+
// TODO: use converter based on the format of the record before change
|
|
43
|
+
return from(new Iso19139Converter().writeRecord(savedRecord)).pipe(switchMap((recordXml) => this.http.put(`${this.apiUrl}/records?metadataType=METADATA&uuidProcessing=OVERWRITE&transformWith=_none_&publishToAll=on`, recordXml, {
|
|
56
44
|
headers: {
|
|
57
45
|
'Content-Type': 'application/xml',
|
|
58
46
|
},
|
|
59
47
|
withCredentials: true,
|
|
60
|
-
})), map(() =>
|
|
61
|
-
this.saving$.next(false);
|
|
62
|
-
}));
|
|
63
|
-
}
|
|
64
|
-
setCurrentRecord(record) {
|
|
65
|
-
this.record$.next(record);
|
|
66
|
-
}
|
|
67
|
-
updateRecordField(fieldName, value) {
|
|
68
|
-
this.record$
|
|
69
|
-
.pipe(take(1), map((record) => ({ ...record, [fieldName]: value })))
|
|
70
|
-
.subscribe((record) => this.record$.next(record));
|
|
48
|
+
})), map(() => savedRecord));
|
|
71
49
|
}
|
|
72
50
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: EditorService, deps: [{ token: i1.HttpClient }, { token: Configuration, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
73
51
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: EditorService, providedIn: 'root' }); }
|
|
@@ -83,4 +61,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
|
|
|
83
61
|
type: Inject,
|
|
84
62
|
args: [Configuration]
|
|
85
63
|
}] }]; } });
|
|
86
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZWRpdG9yL3NyYy9saWIvc2VydmljZXMvZWRpdG9yLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQzVELE9BQU8sRUFDTCx3QkFBd0IsRUFDeEIsaUJBQWlCLEdBQ2xCLE1BQU0sbURBQW1ELENBQUE7QUFDMUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRDQUE0QyxDQUFBO0FBQzFFLE9BQU8sRUFBRSxJQUFJLEVBQWMsTUFBTSxNQUFNLENBQUE7QUFDdkMsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUMvQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFHakQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFBOzs7O0FBS3pDLE1BQU0sT0FBTyxhQUFhO0lBR3hCLFlBQ1UsSUFBZ0IsRUFHaEIsZ0JBQStCO1FBSC9CLFNBQUksR0FBSixJQUFJLENBQVk7UUFHaEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFlO1FBTmpDLFdBQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxRQUFRLElBQUkscUJBQXFCLEVBQUUsQ0FBQTtJQU8zRSxDQUFDO0lBRUosMkNBQTJDO0lBQzNDLGdCQUFnQixDQUFDLElBQVk7UUFDM0IsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNiLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLFlBQVksSUFBSSxpQkFBaUIsRUFBRTtZQUNwRCxZQUFZLEVBQUUsTUFBTTtZQUNwQixPQUFPLEVBQUU7Z0JBQ1AsTUFBTSxFQUFFLGlCQUFpQjthQUMxQjtTQUNGLENBQUM7YUFDRCxJQUFJLENBQ0gsU0FBUyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FDckIsd0JBQXdCLENBQUMsUUFBUSxDQUFDLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUNuRSxDQUNGLENBQUE7SUFDTCxDQUFDO0lBRUQsMENBQTBDO0lBQzFDLFVBQVUsQ0FDUixNQUFxQixFQUNyQixZQUFnQztRQUVoQyxNQUFNLFdBQVcsR0FBRyxFQUFFLEdBQUcsTUFBTSxFQUFFLENBQUE7UUFFakMsdUJBQXVCO1FBQ3ZCLEtBQUssTUFBTSxLQUFLLElBQUksWUFBWSxFQUFFO1lBQ2hDLElBQUksS0FBSyxDQUFDLGFBQWEsSUFBSSxLQUFLLENBQUMsS0FBSyxFQUFFO2dCQUN0QyxNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFBO2dCQUMvQyxXQUFXLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLFNBQVMsQ0FBQztvQkFDbkMsTUFBTSxFQUFFLEtBQUs7b0JBQ2IsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO2lCQUMzQixDQUFDLENBQUE7YUFDSDtTQUNGO1FBRUQsMkNBQTJDO1FBQzNDLHNFQUFzRTtRQUN0RSxPQUFPLElBQUksQ0FBQyxJQUFJLGlCQUFpQixFQUFFLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUNoRSxTQUFTLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUN0QixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FDWCxHQUFHLElBQUksQ0FBQyxNQUFNLDhGQUE4RixFQUM1RyxTQUFTLEVBQ1Q7WUFDRSxPQUFPLEVBQUU7Z0JBQ1AsY0FBYyxFQUFFLGlCQUFpQjthQUNsQztZQUNELGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQ0YsQ0FDRixFQUNELEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FDdkIsQ0FBQTtJQUNILENBQUM7OEdBN0RVLGFBQWEsNENBTWQsYUFBYTtrSEFOWixhQUFhLGNBRlosTUFBTTs7MkZBRVAsYUFBYTtrQkFIekIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQU1JLFFBQVE7OzBCQUNSLE1BQU07MkJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHtcbiAgZmluZENvbnZlcnRlckZvckRvY3VtZW50LFxuICBJc28xOTEzOUNvbnZlcnRlcixcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hcGkvbWV0YWRhdGEtY29udmVydGVyL3NyYydcbmltcG9ydCB7IENvbmZpZ3VyYXRpb24gfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2RhdGEtYWNjZXNzL2duNC9zcmMnXG5pbXBvcnQgeyBmcm9tLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IG1hcCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnXG5pbXBvcnQgeyBDYXRhbG9nUmVjb3JkIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuaW1wb3J0IHsgRWRpdG9yRmllbGRzQ29uZmlnIH0gZnJvbSAnLi4vbW9kZWxzL2ZpZWxkcy5tb2RlbCdcbmltcG9ydCB7IGV2YWx1YXRlIH0gZnJvbSAnLi4vZXhwcmVzc2lvbnMnXG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBFZGl0b3JTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBhcGlVcmwgPSBgJHt0aGlzLmFwaUNvbmZpZ3VyYXRpb24/LmJhc2VQYXRoIHx8ICcvZ2VvbmV0d29yay9zcnYvYXBpJ31gXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxuICAgIEBPcHRpb25hbCgpXG4gICAgQEluamVjdChDb25maWd1cmF0aW9uKVxuICAgIHByaXZhdGUgYXBpQ29uZmlndXJhdGlvbjogQ29uZmlndXJhdGlvblxuICApIHt9XG5cbiAgLy8gVE9ETzogdXNlIHRoZSBjYXRhbG9nIHJlcG9zaXRvcnkgaW5zdGVhZFxuICBsb2FkUmVjb3JkQnlVdWlkKHV1aWQ6IHN0cmluZyk6IE9ic2VydmFibGU8Q2F0YWxvZ1JlY29yZD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5nZXQoYCR7dGhpcy5hcGlVcmx9L3JlY29yZHMvJHt1dWlkfS9mb3JtYXR0ZXJzL3htbGAsIHtcbiAgICAgICAgcmVzcG9uc2VUeXBlOiAndGV4dCcsXG4gICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICBBY2NlcHQ6ICdhcHBsaWNhdGlvbi94bWwnLFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKHJlc3BvbnNlKSA9PlxuICAgICAgICAgIGZpbmRDb252ZXJ0ZXJGb3JEb2N1bWVudChyZXNwb25zZSkucmVhZFJlY29yZChyZXNwb25zZS50b1N0cmluZygpKVxuICAgICAgICApXG4gICAgICApXG4gIH1cblxuICAvLyByZXR1cm5zIHRoZSByZWNvcmQgYXMgaXQgd2FzIHdoZW4gc2F2ZWRcbiAgc2F2ZVJlY29yZChcbiAgICByZWNvcmQ6IENhdGFsb2dSZWNvcmQsXG4gICAgZmllbGRzQ29uZmlnOiBFZGl0b3JGaWVsZHNDb25maWdcbiAgKTogT2JzZXJ2YWJsZTxDYXRhbG9nUmVjb3JkPiB7XG4gICAgY29uc3Qgc2F2ZWRSZWNvcmQgPSB7IC4uLnJlY29yZCB9XG5cbiAgICAvLyBydW4gb25TYXZlIHByb2Nlc3Nlc1xuICAgIGZvciAoY29uc3QgZmllbGQgb2YgZmllbGRzQ29uZmlnKSB7XG4gICAgICBpZiAoZmllbGQub25TYXZlUHJvY2VzcyAmJiBmaWVsZC5tb2RlbCkge1xuICAgICAgICBjb25zdCBldmFsdWF0b3IgPSBldmFsdWF0ZShmaWVsZC5vblNhdmVQcm9jZXNzKVxuICAgICAgICBzYXZlZFJlY29yZFtmaWVsZC5tb2RlbF0gPSBldmFsdWF0b3Ioe1xuICAgICAgICAgIGNvbmZpZzogZmllbGQsXG4gICAgICAgICAgdmFsdWU6IHJlY29yZFtmaWVsZC5tb2RlbF0sXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gVE9ETzogdXNlIHRoZSBjYXRhbG9nIHJlcG9zaXRvcnkgaW5zdGVhZFxuICAgIC8vIFRPRE86IHVzZSBjb252ZXJ0ZXIgYmFzZWQgb24gdGhlIGZvcm1hdCBvZiB0aGUgcmVjb3JkIGJlZm9yZSBjaGFuZ2VcbiAgICByZXR1cm4gZnJvbShuZXcgSXNvMTkxMzlDb252ZXJ0ZXIoKS53cml0ZVJlY29yZChzYXZlZFJlY29yZCkpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKHJlY29yZFhtbCkgPT5cbiAgICAgICAgdGhpcy5odHRwLnB1dChcbiAgICAgICAgICBgJHt0aGlzLmFwaVVybH0vcmVjb3Jkcz9tZXRhZGF0YVR5cGU9TUVUQURBVEEmdXVpZFByb2Nlc3Npbmc9T1ZFUldSSVRFJnRyYW5zZm9ybVdpdGg9X25vbmVfJnB1Ymxpc2hUb0FsbD1vbmAsXG4gICAgICAgICAgcmVjb3JkWG1sLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi94bWwnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgICAgICB9XG4gICAgICAgIClcbiAgICAgICksXG4gICAgICBtYXAoKCkgPT4gc2F2ZWRSZWNvcmQpXG4gICAgKVxuICB9XG59XG4iXX0=
|
|
@@ -17,4 +17,5 @@ export * from './lib/layers-panel/layers-panel.component';
|
|
|
17
17
|
export * from './lib/add-layer-from-catalog/add-layer-from-catalog.component';
|
|
18
18
|
export * from './lib/add-layer-from-catalog/add-layer-record-preview/add-layer-record-preview.component';
|
|
19
19
|
export * from './lib/map-container/map-container.component';
|
|
20
|
-
|
|
20
|
+
export * from './lib/geocoding/geocoding.component';
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvbWFwL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHlCQUF5QixDQUFBO0FBQ3ZDLGNBQWMseUJBQXlCLENBQUE7QUFDdkMsY0FBYyw0QkFBNEIsQ0FBQTtBQUMxQyxjQUFjLDBCQUEwQixDQUFBO0FBQ3hDLGNBQWMsMEJBQTBCLENBQUE7QUFDeEMsY0FBYywwQkFBMEIsQ0FBQTtBQUN4QyxjQUFjLG1DQUFtQyxDQUFBO0FBQ2pELGNBQWMsc0NBQXNDLENBQUE7QUFDcEQsY0FBYyx5Q0FBeUMsQ0FBQTtBQUN2RCxjQUFjLHFDQUFxQyxDQUFBO0FBQ25ELGNBQWMsdUNBQXVDLENBQUE7QUFDckQsY0FBYyxtREFBbUQsQ0FBQTtBQUNqRSxjQUFjLGdCQUFnQixDQUFBO0FBQzlCLGNBQWMsYUFBYSxDQUFBO0FBQzNCLGNBQWMsYUFBYSxDQUFBO0FBQzNCLGNBQWMsMkNBQTJDLENBQUE7QUFDekQsY0FBYywrREFBK0QsQ0FBQTtBQUM3RSxjQUFjLDBGQUEwRixDQUFBO0FBQ3hHLGNBQWMsNkNBQTZDLENBQUE7QUFDM0QsY0FBYyxxQ0FBcUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliLytzdGF0ZS9tYXAuZmFjYWRlJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvK3N0YXRlL21hcC5tb2RlbHMnXG5leHBvcnQgKiBmcm9tICcuL2xpYi8rc3RhdGUvbWFwLnNlbGVjdG9ycydcbmV4cG9ydCAqIGZyb20gJy4vbGliLytzdGF0ZS9tYXAucmVkdWNlcidcbmV4cG9ydCAqIGZyb20gJy4vbGliLytzdGF0ZS9tYXAuYWN0aW9ucydcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZlYXR1cmUtbWFwLm1vZHVsZSdcbmV4cG9ydCAqIGZyb20gJy4vbGliL21hbmFnZXIvbWFwLW1hbmFnZXIuc2VydmljZSdcbmV4cG9ydCAqIGZyb20gJy4vbGliL21hbmFnZXIvbWFwLWluc3RhbmNlLmRpcmVjdGl2ZSdcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZlYXR1cmUtaW5mby9mZWF0dXJlLWluZm8uc2VydmljZSdcbmV4cG9ydCAqIGZyb20gJy4vbGliL21hcC1jb250ZXh0L21hcC1jb250ZXh0Lm1vZGVsJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWFwLWNvbnRleHQvbWFwLWNvbnRleHQuc2VydmljZSdcbmV4cG9ydCAqIGZyb20gJy4vbGliL21hcC1jb250ZXh0L2NvbXBvbmVudC9tYXAtY29udGV4dC5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb25zdGFudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL3V0aWxzJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc3R5bGUnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9sYXllcnMtcGFuZWwvbGF5ZXJzLXBhbmVsLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FkZC1sYXllci1mcm9tLWNhdGFsb2cvYWRkLWxheWVyLWZyb20tY2F0YWxvZy5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hZGQtbGF5ZXItZnJvbS1jYXRhbG9nL2FkZC1sYXllci1yZWNvcmQtcHJldmlldy9hZGQtbGF5ZXItcmVjb3JkLXByZXZpZXcuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWFwLWNvbnRhaW5lci9tYXAtY29udGFpbmVyLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL2dlb2NvZGluZy9nZW9jb2RpbmcuY29tcG9uZW50J1xuIl19
|
|
@@ -38,7 +38,11 @@ export class AddLayerRecordPreviewComponent extends RecordPreviewComponent {
|
|
|
38
38
|
});
|
|
39
39
|
}
|
|
40
40
|
else if (link.accessServiceProtocol === 'wmts') {
|
|
41
|
-
return
|
|
41
|
+
return of({
|
|
42
|
+
url: link.url.toString(),
|
|
43
|
+
type: MapContextLayerTypeEnum.WMTS,
|
|
44
|
+
name: link.name,
|
|
45
|
+
});
|
|
42
46
|
}
|
|
43
47
|
return throwError(() => 'protocol not supported');
|
|
44
48
|
}
|
|
@@ -46,10 +50,10 @@ export class AddLayerRecordPreviewComponent extends RecordPreviewComponent {
|
|
|
46
50
|
return getLinkLabel(link);
|
|
47
51
|
}
|
|
48
52
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: AddLayerRecordPreviewComponent, deps: [{ token: i0.ElementRef }, { token: i1.LinkClassifierService }, { token: i2.MapFacade }, { token: i3.MapUtilsService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
49
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: AddLayerRecordPreviewComponent, selector: "gn-ui-add-layer-record-preview", usesInheritance: true, ngImport: i0, template: "<div class=\"w-full flex flex-row rounded-sm\" [title]=\"record.abstract\">\n <gn-ui-thumbnail\n class=\"w-16 h-16 shrink-0 border-r border-gray-200 bg-gray-100\"\n [thumbnailUrl]=\"record.overviews?.[0]?.url.toString()\"\n ></gn-ui-thumbnail>\n\n <div class=\"flex flex-col p-2 gap-2 overflow-hidden\">\n <h1 class=\"text-sm font-medium truncate\">\n {{ record.title }}\n </h1>\n <ng-container *ngFor=\"let link of mapLinks\">\n <gn-ui-button\n [type]=\"'outline'\"\n (buttonClick)=\"handleLinkClick(link)\"\n extraClass=\"!py-[8px] !px-[12px]\"\n >\n <div class=\"text-left text-[12px] line-clamp-2\">\n {{ getLinkLabel(link) }}\n </div>\n </gn-ui-button>\n </ng-container>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i5.ThumbnailComponent, selector: "gn-ui-thumbnail", inputs: ["thumbnailUrl", "fit"] }, { kind: "component", type: i6.ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
53
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: AddLayerRecordPreviewComponent, selector: "gn-ui-add-layer-record-preview", usesInheritance: true, ngImport: i0, template: "<div class=\"w-full flex flex-row rounded-sm\" [title]=\"record.abstract\">\n <gn-ui-thumbnail\n class=\"w-16 h-16 shrink-0 border-r border-gray-200 bg-gray-100\"\n [thumbnailUrl]=\"record.overviews?.[0]?.url.toString()\"\n ></gn-ui-thumbnail>\n\n <div class=\"flex flex-col p-2 gap-2 overflow-hidden\">\n <h1 class=\"text-sm font-medium truncate\">\n {{ record.title }}\n </h1>\n <ng-container *ngFor=\"let link of mapLinks\">\n <gn-ui-button\n [type]=\"'outline'\"\n (buttonClick)=\"handleLinkClick(link)\"\n extraClass=\"!py-[8px] !px-[12px]\"\n >\n <div class=\"text-left text-[12px] line-clamp-2\">\n {{ getLinkLabel(link) }}\n </div>\n </gn-ui-button>\n </ng-container>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i5.ThumbnailComponent, selector: "gn-ui-thumbnail", inputs: ["thumbnailUrl", "fit"], outputs: ["placeholderShown"] }, { kind: "component", type: i6.ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
50
54
|
}
|
|
51
55
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: AddLayerRecordPreviewComponent, decorators: [{
|
|
52
56
|
type: Component,
|
|
53
57
|
args: [{ selector: 'gn-ui-add-layer-record-preview', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"w-full flex flex-row rounded-sm\" [title]=\"record.abstract\">\n <gn-ui-thumbnail\n class=\"w-16 h-16 shrink-0 border-r border-gray-200 bg-gray-100\"\n [thumbnailUrl]=\"record.overviews?.[0]?.url.toString()\"\n ></gn-ui-thumbnail>\n\n <div class=\"flex flex-col p-2 gap-2 overflow-hidden\">\n <h1 class=\"text-sm font-medium truncate\">\n {{ record.title }}\n </h1>\n <ng-container *ngFor=\"let link of mapLinks\">\n <gn-ui-button\n [type]=\"'outline'\"\n (buttonClick)=\"handleLinkClick(link)\"\n extraClass=\"!py-[8px] !px-[12px]\"\n >\n <div class=\"text-left text-[12px] line-clamp-2\">\n {{ getLinkLabel(link) }}\n </div>\n </gn-ui-button>\n </ng-container>\n </div>\n</div>\n" }]
|
|
54
58
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.LinkClassifierService }, { type: i2.MapFacade }, { type: i3.MapUtilsService }]; } });
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWxheWVyLXJlY29yZC1wcmV2aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9tYXAvc3JjL2xpYi9hZGQtbGF5ZXItZnJvbS1jYXRhbG9nL2FkZC1sYXllci1yZWNvcmQtcHJldmlldy9hZGQtbGF5ZXItcmVjb3JkLXByZXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL21hcC9zcmMvbGliL2FkZC1sYXllci1mcm9tLWNhdGFsb2cvYWRkLWxheWVyLXJlY29yZC1wcmV2aWV3L2FkZC1sYXllci1yZWNvcmQtcHJldmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUM5RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTtBQUNoRixPQUFPLEVBQ0wsWUFBWSxFQUNaLHFCQUFxQixFQUNyQixTQUFTLEdBQ1YsTUFBTSwyQ0FBMkMsQ0FBQTtBQUNsRCxPQUFPLEVBQWMsRUFBRSxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUVqRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQzdDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQUNuRCxPQUFPLEVBRUwsdUJBQXVCLEdBQ3hCLE1BQU0scUNBQXFDLENBQUE7Ozs7Ozs7O0FBWTVDLE1BQU0sT0FBTyw4QkFBK0IsU0FBUSxzQkFBc0I7SUFDeEUsSUFBSSxRQUFRO1FBQ1YsT0FBUSxJQUFJLENBQUMsTUFBd0IsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FDbEUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FDN0IsQ0FBQTtJQUM1QixDQUFDO0lBRUQsWUFDWSxVQUFzQixFQUN4QixjQUFxQyxFQUNyQyxTQUFvQixFQUNwQixRQUF5QjtRQUVqQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUE7UUFMUCxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3hCLG1CQUFjLEdBQWQsY0FBYyxDQUF1QjtRQUNyQyxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ3BCLGFBQVEsR0FBUixRQUFRLENBQWlCO0lBR25DLENBQUM7SUFFRCxLQUFLLENBQUMsZUFBZSxDQUFDLElBQXlCO1FBQzdDLE1BQU0sS0FBSyxHQUFHLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFBO1FBQzNELElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUUsR0FBRyxLQUFLLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQTtJQUNqRSxDQUFDO0lBRUQsZ0JBQWdCLENBQ2QsSUFBeUI7UUFFekIsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLFNBQVM7WUFDekIsT0FBTyxVQUFVLENBQ2YsR0FBRyxFQUFFLENBQUMsb0RBQW9ELENBQzNELENBQUE7UUFDSCxJQUFJLElBQUksQ0FBQyxxQkFBcUIsS0FBSyxLQUFLLEVBQUU7WUFDeEMsT0FBTyxFQUFFLENBQUM7Z0JBQ1IsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFO2dCQUN4QixJQUFJLEVBQUUsdUJBQXVCLENBQUMsR0FBRztnQkFDakMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO2FBQ2hCLENBQUMsQ0FBQTtTQUNIO2FBQU0sSUFBSSxJQUFJLENBQUMscUJBQXFCLEtBQUssTUFBTSxFQUFFO1lBQ2hELE9BQU8sRUFBRSxDQUFDO2dCQUNSLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRTtnQkFDeEIsSUFBSSxFQUFFLHVCQUF1QixDQUFDLElBQUk7Z0JBQ2xDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTthQUNoQixDQUFDLENBQUE7U0FDSDtRQUNELE9BQU8sVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHdCQUF3QixDQUFDLENBQUE7SUFDbkQsQ0FBQztJQUVELFlBQVksQ0FBQyxJQUF5QjtRQUNwQyxPQUFPLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUMzQixDQUFDOzhHQTlDVSw4QkFBOEI7a0dBQTlCLDhCQUE4Qiw2RkMxQjNDLDh3QkF1QkE7OzJGREdhLDhCQUE4QjtrQkFOMUMsU0FBUzsrQkFDRSxnQ0FBZ0MsbUJBR3pCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IFJlY29yZFByZXZpZXdDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL3NlYXJjaC9zcmMnXG5pbXBvcnQge1xuICBnZXRMaW5rTGFiZWwsXG4gIExpbmtDbGFzc2lmaWVyU2VydmljZSxcbiAgTGlua1VzYWdlLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvc2hhcmVkL3NyYydcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuaW1wb3J0IHsgTWFwVXRpbHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdXRpbHMnXG5pbXBvcnQgeyBNYXBGYWNhZGUgfSBmcm9tICcuLi8uLi8rc3RhdGUvbWFwLmZhY2FkZSdcbmltcG9ydCB7XG4gIE1hcENvbnRleHRMYXllck1vZGVsLFxuICBNYXBDb250ZXh0TGF5ZXJUeXBlRW51bSxcbn0gZnJvbSAnLi4vLi4vbWFwLWNvbnRleHQvbWFwLWNvbnRleHQubW9kZWwnXG5pbXBvcnQge1xuICBEYXRhc2V0RGlzdHJpYnV0aW9uLFxuICBEYXRhc2V0UmVjb3JkLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLWFkZC1sYXllci1yZWNvcmQtcHJldmlldycsXG4gIHRlbXBsYXRlVXJsOiAnLi9hZGQtbGF5ZXItcmVjb3JkLXByZXZpZXcuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hZGQtbGF5ZXItcmVjb3JkLXByZXZpZXcuY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQWRkTGF5ZXJSZWNvcmRQcmV2aWV3Q29tcG9uZW50IGV4dGVuZHMgUmVjb3JkUHJldmlld0NvbXBvbmVudCB7XG4gIGdldCBtYXBMaW5rcygpOiBEYXRhc2V0RGlzdHJpYnV0aW9uW10ge1xuICAgIHJldHVybiAodGhpcy5yZWNvcmQgYXMgRGF0YXNldFJlY29yZCkuZGlzdHJpYnV0aW9ucy5maWx0ZXIoKGxpbmspID0+XG4gICAgICB0aGlzLmxpbmtDbGFzc2lmaWVyLmhhc1VzYWdlKGxpbmssIExpbmtVc2FnZS5NQVBfQVBJKVxuICAgICkgYXMgRGF0YXNldERpc3RyaWJ1dGlvbltdXG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIGxpbmtDbGFzc2lmaWVyOiBMaW5rQ2xhc3NpZmllclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBtYXBGYWNhZGU6IE1hcEZhY2FkZSxcbiAgICBwcml2YXRlIG1hcFV0aWxzOiBNYXBVdGlsc1NlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoZWxlbWVudFJlZilcbiAgfVxuXG4gIGFzeW5jIGhhbmRsZUxpbmtDbGljayhsaW5rOiBEYXRhc2V0RGlzdHJpYnV0aW9uKSB7XG4gICAgY29uc3QgbGF5ZXIgPSBhd2FpdCB0aGlzLmdldExheWVyRnJvbUxpbmsobGluaykudG9Qcm9taXNlKClcbiAgICB0aGlzLm1hcEZhY2FkZS5hZGRMYXllcih7IC4uLmxheWVyLCB0aXRsZTogdGhpcy5yZWNvcmQudGl0bGUgfSlcbiAgfVxuXG4gIGdldExheWVyRnJvbUxpbmsoXG4gICAgbGluazogRGF0YXNldERpc3RyaWJ1dGlvblxuICApOiBPYnNlcnZhYmxlPE1hcENvbnRleHRMYXllck1vZGVsPiB7XG4gICAgaWYgKGxpbmsudHlwZSAhPT0gJ3NlcnZpY2UnKVxuICAgICAgcmV0dXJuIHRocm93RXJyb3IoXG4gICAgICAgICgpID0+ICdtYXAgbGF5ZXIgY291bGQgbm90IGJlIGJ1aWx0IGZvciB0aGlzIGRpc3RyaWJ1dGlvbidcbiAgICAgIClcbiAgICBpZiAobGluay5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wgPT09ICd3bXMnKSB7XG4gICAgICByZXR1cm4gb2Yoe1xuICAgICAgICB1cmw6IGxpbmsudXJsLnRvU3RyaW5nKCksXG4gICAgICAgIHR5cGU6IE1hcENvbnRleHRMYXllclR5cGVFbnVtLldNUyxcbiAgICAgICAgbmFtZTogbGluay5uYW1lLFxuICAgICAgfSlcbiAgICB9IGVsc2UgaWYgKGxpbmsuYWNjZXNzU2VydmljZVByb3RvY29sID09PSAnd210cycpIHtcbiAgICAgIHJldHVybiBvZih7XG4gICAgICAgIHVybDogbGluay51cmwudG9TdHJpbmcoKSxcbiAgICAgICAgdHlwZTogTWFwQ29udGV4dExheWVyVHlwZUVudW0uV01UUyxcbiAgICAgICAgbmFtZTogbGluay5uYW1lLFxuICAgICAgfSlcbiAgICB9XG4gICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gJ3Byb3RvY29sIG5vdCBzdXBwb3J0ZWQnKVxuICB9XG5cbiAgZ2V0TGlua0xhYmVsKGxpbms6IERhdGFzZXREaXN0cmlidXRpb24pIHtcbiAgICByZXR1cm4gZ2V0TGlua0xhYmVsKGxpbmspXG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ3LWZ1bGwgZmxleCBmbGV4LXJvdyByb3VuZGVkLXNtXCIgW3RpdGxlXT1cInJlY29yZC5hYnN0cmFjdFwiPlxuICA8Z24tdWktdGh1bWJuYWlsXG4gICAgY2xhc3M9XCJ3LTE2IGgtMTYgc2hyaW5rLTAgYm9yZGVyLXIgYm9yZGVyLWdyYXktMjAwIGJnLWdyYXktMTAwXCJcbiAgICBbdGh1bWJuYWlsVXJsXT1cInJlY29yZC5vdmVydmlld3M/LlswXT8udXJsLnRvU3RyaW5nKClcIlxuICA+PC9nbi11aS10aHVtYm5haWw+XG5cbiAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgcC0yIGdhcC0yIG92ZXJmbG93LWhpZGRlblwiPlxuICAgIDxoMSBjbGFzcz1cInRleHQtc20gZm9udC1tZWRpdW0gdHJ1bmNhdGVcIj5cbiAgICAgIHt7IHJlY29yZC50aXRsZSB9fVxuICAgIDwvaDE+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgbGluayBvZiBtYXBMaW5rc1wiPlxuICAgICAgPGduLXVpLWJ1dHRvblxuICAgICAgICBbdHlwZV09XCInb3V0bGluZSdcIlxuICAgICAgICAoYnV0dG9uQ2xpY2spPVwiaGFuZGxlTGlua0NsaWNrKGxpbmspXCJcbiAgICAgICAgZXh0cmFDbGFzcz1cIiFweS1bOHB4XSAhcHgtWzEycHhdXCJcbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtbGVmdCB0ZXh0LVsxMnB4XSBsaW5lLWNsYW1wLTJcIj5cbiAgICAgICAgICB7eyBnZXRMaW5rTGFiZWwobGluaykgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2duLXVpLWJ1dHRvbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
package/esm2022/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.mjs
ADDED
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { ChangeDetectorRef, Component } from '@angular/core';
|
|
2
|
+
import { MapFacade } from '../+state/map.facade';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "../+state/map.facade";
|
|
5
|
+
import * as i2 from "@angular/common";
|
|
6
|
+
import * as i3 from "@ngx-translate/core";
|
|
7
|
+
import * as i4 from "../../../../../ui/inputs/src/lib/drag-and-drop-file-input/drag-and-drop-file-input.component";
|
|
8
|
+
const INVALID_FILE_FORMAT_ERROR_MESSAGE = 'Invalid file format';
|
|
9
|
+
export class AddLayerFromFileComponent {
|
|
10
|
+
constructor(mapFacade, changeDetectorRef) {
|
|
11
|
+
this.mapFacade = mapFacade;
|
|
12
|
+
this.changeDetectorRef = changeDetectorRef;
|
|
13
|
+
this.errorMessage = null;
|
|
14
|
+
this.successMessage = null;
|
|
15
|
+
this.loading = false;
|
|
16
|
+
this.acceptedMimeType = ['.geojson'];
|
|
17
|
+
this.maxFileSize = 5000000;
|
|
18
|
+
}
|
|
19
|
+
async handleFileChange(file) {
|
|
20
|
+
if (!file) {
|
|
21
|
+
this.displayMessage(INVALID_FILE_FORMAT_ERROR_MESSAGE, 'error');
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
if (file.size > this.maxFileSize) {
|
|
25
|
+
this.displayMessage('File size exceeds the limit of 5MB', 'error');
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
await this.addLayer(file);
|
|
29
|
+
}
|
|
30
|
+
async addLayer(file) {
|
|
31
|
+
this.errorMessage = null;
|
|
32
|
+
this.loading = true;
|
|
33
|
+
try {
|
|
34
|
+
if (!this.isFileFormatValid(file)) {
|
|
35
|
+
this.displayMessage(INVALID_FILE_FORMAT_ERROR_MESSAGE, 'error');
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
const fileExtension = this.getFileExtension(file);
|
|
39
|
+
switch (fileExtension) {
|
|
40
|
+
case 'geojson':
|
|
41
|
+
await this.addGeoJsonLayer(file);
|
|
42
|
+
break;
|
|
43
|
+
default:
|
|
44
|
+
this.displayMessage(INVALID_FILE_FORMAT_ERROR_MESSAGE, 'error');
|
|
45
|
+
break;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
catch (error) {
|
|
49
|
+
const err = error;
|
|
50
|
+
this.displayMessage('Error loading file: ' + err.message, 'error');
|
|
51
|
+
}
|
|
52
|
+
finally {
|
|
53
|
+
this.loading = false;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
addGeoJsonLayer(file) {
|
|
57
|
+
return new Promise((resolve, reject) => {
|
|
58
|
+
try {
|
|
59
|
+
const reader = new FileReader();
|
|
60
|
+
reader.onload = () => {
|
|
61
|
+
const result = reader.result;
|
|
62
|
+
const title = file.name.split('.').slice(0, -1).join('.');
|
|
63
|
+
const layerToAdd = {
|
|
64
|
+
type: 'geojson',
|
|
65
|
+
data: result,
|
|
66
|
+
};
|
|
67
|
+
this.mapFacade.addLayer({ ...layerToAdd, title: title });
|
|
68
|
+
this.displayMessage('File successfully added to map', 'success');
|
|
69
|
+
resolve();
|
|
70
|
+
};
|
|
71
|
+
reader.onerror = reject;
|
|
72
|
+
reader.readAsText(file);
|
|
73
|
+
}
|
|
74
|
+
catch (error) {
|
|
75
|
+
reject(error);
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
isFileFormatValid(file) {
|
|
80
|
+
const fileExtension = this.getFileExtension(file);
|
|
81
|
+
return this.acceptedMimeType.includes(`.${fileExtension}`);
|
|
82
|
+
}
|
|
83
|
+
getFileExtension(file) {
|
|
84
|
+
return file.name.split('.').pop();
|
|
85
|
+
}
|
|
86
|
+
displayMessage(message, type) {
|
|
87
|
+
if (type === 'success') {
|
|
88
|
+
this.successMessage = message;
|
|
89
|
+
}
|
|
90
|
+
else if (type === 'error') {
|
|
91
|
+
this.errorMessage = message;
|
|
92
|
+
}
|
|
93
|
+
setTimeout(() => {
|
|
94
|
+
this.successMessage = null;
|
|
95
|
+
this.errorMessage = null;
|
|
96
|
+
this.changeDetectorRef.detectChanges();
|
|
97
|
+
}, 5000);
|
|
98
|
+
}
|
|
99
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: AddLayerFromFileComponent, deps: [{ token: i1.MapFacade }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
100
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: AddLayerFromFileComponent, selector: "gn-ui-add-layer-from-file", ngImport: i0, template: "<div class=\"flex flex-col gap-2 my-2\">\n <div class=\"flex items-center gap-4\">\n <div class=\"flex-grow rounded-md border-2 border-gray-200\">\n <gn-ui-drag-and-drop-file-input\n (fileChange)=\"handleFileChange($event)\"\n [accept]=\"acceptedMimeType.join(',')\"\n [placeholder]=\"'map.addFromFile.placeholder' | translate\"\n class=\"placeholder-grey\"\n ></gn-ui-drag-and-drop-file-input>\n </div>\n </div>\n <p class=\"text-sm text-gray-600\" translate>map.help.addFromFile</p>\n</div>\n\n<div *ngIf=\"errorMessage\" class=\"text-red-500 mt-2\">\n {{ errorMessage }}\n</div>\n\n<div *ngIf=\"successMessage\" class=\"text-green-500 mt-2\">\n {{ successMessage }}\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i4.DragAndDropFileInputComponent, selector: "gn-ui-drag-and-drop-file-input", inputs: ["placeholder", "accept"], outputs: ["fileChange"] }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] }); }
|
|
101
|
+
}
|
|
102
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: AddLayerFromFileComponent, decorators: [{
|
|
103
|
+
type: Component,
|
|
104
|
+
args: [{ selector: 'gn-ui-add-layer-from-file', template: "<div class=\"flex flex-col gap-2 my-2\">\n <div class=\"flex items-center gap-4\">\n <div class=\"flex-grow rounded-md border-2 border-gray-200\">\n <gn-ui-drag-and-drop-file-input\n (fileChange)=\"handleFileChange($event)\"\n [accept]=\"acceptedMimeType.join(',')\"\n [placeholder]=\"'map.addFromFile.placeholder' | translate\"\n class=\"placeholder-grey\"\n ></gn-ui-drag-and-drop-file-input>\n </div>\n </div>\n <p class=\"text-sm text-gray-600\" translate>map.help.addFromFile</p>\n</div>\n\n<div *ngIf=\"errorMessage\" class=\"text-red-500 mt-2\">\n {{ errorMessage }}\n</div>\n\n<div *ngIf=\"successMessage\" class=\"text-green-500 mt-2\">\n {{ successMessage }}\n</div>\n" }]
|
|
105
|
+
}], ctorParameters: function () { return [{ type: i1.MapFacade }, { type: i0.ChangeDetectorRef }]; } });
|
|
106
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWxheWVyLWZyb20tZmlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvbWFwL3NyYy9saWIvYWRkLWxheWVyLWZyb20tZmlsZS9hZGQtbGF5ZXItZnJvbS1maWxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9tYXAvc3JjL2xpYi9hZGQtbGF5ZXItZnJvbS1maWxlL2FkZC1sYXllci1mcm9tLWZpbGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUU1RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUE7Ozs7OztBQUVoRCxNQUFNLGlDQUFpQyxHQUFHLHFCQUFxQixDQUFBO0FBTy9ELE1BQU0sT0FBTyx5QkFBeUI7SUFPcEMsWUFDVSxTQUFvQixFQUNwQixpQkFBb0M7UUFEcEMsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUNwQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBUjlDLGlCQUFZLEdBQWtCLElBQUksQ0FBQTtRQUNsQyxtQkFBYyxHQUFrQixJQUFJLENBQUE7UUFDcEMsWUFBTyxHQUFHLEtBQUssQ0FBQTtRQUNOLHFCQUFnQixHQUFHLENBQUMsVUFBVSxDQUFDLENBQUE7UUFDL0IsZ0JBQVcsR0FBRyxPQUFPLENBQUE7SUFLM0IsQ0FBQztJQUVKLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFVO1FBQy9CLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDVCxJQUFJLENBQUMsY0FBYyxDQUFDLGlDQUFpQyxFQUFFLE9BQU8sQ0FBQyxDQUFBO1lBQy9ELE9BQU07U0FDUDtRQUNELElBQUksSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ2hDLElBQUksQ0FBQyxjQUFjLENBQUMsb0NBQW9DLEVBQUUsT0FBTyxDQUFDLENBQUE7WUFDbEUsT0FBTTtTQUNQO1FBQ0QsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQzNCLENBQUM7SUFFTyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQVU7UUFDL0IsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUE7UUFDeEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUE7UUFDbkIsSUFBSTtZQUNGLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ2pDLElBQUksQ0FBQyxjQUFjLENBQUMsaUNBQWlDLEVBQUUsT0FBTyxDQUFDLENBQUE7Z0JBQy9ELE9BQU07YUFDUDtZQUVELE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUNqRCxRQUFRLGFBQWEsRUFBRTtnQkFDckIsS0FBSyxTQUFTO29CQUNaLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQTtvQkFDaEMsTUFBSztnQkFDUDtvQkFDRSxJQUFJLENBQUMsY0FBYyxDQUFDLGlDQUFpQyxFQUFFLE9BQU8sQ0FBQyxDQUFBO29CQUMvRCxNQUFLO2FBQ1I7U0FDRjtRQUFDLE9BQU8sS0FBSyxFQUFFO1lBQ2QsTUFBTSxHQUFHLEdBQUcsS0FBYyxDQUFBO1lBQzFCLElBQUksQ0FBQyxjQUFjLENBQUMsc0JBQXNCLEdBQUcsR0FBRyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQTtTQUNuRTtnQkFBUztZQUNSLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFBO1NBQ3JCO0lBQ0gsQ0FBQztJQUVPLGVBQWUsQ0FBQyxJQUFVO1FBQ2hDLE9BQU8sSUFBSSxPQUFPLENBQU8sQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDM0MsSUFBSTtnQkFDRixNQUFNLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFBO2dCQUMvQixNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsRUFBRTtvQkFDbkIsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQWdCLENBQUE7b0JBQ3RDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7b0JBQ3pELE1BQU0sVUFBVSxHQUF5Qjt3QkFDdkMsSUFBSSxFQUFFLFNBQVM7d0JBQ2YsSUFBSSxFQUFFLE1BQU07cUJBQ2IsQ0FBQTtvQkFDRCxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEdBQUcsVUFBVSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFBO29CQUN4RCxJQUFJLENBQUMsY0FBYyxDQUFDLGdDQUFnQyxFQUFFLFNBQVMsQ0FBQyxDQUFBO29CQUNoRSxPQUFPLEVBQUUsQ0FBQTtnQkFDWCxDQUFDLENBQUE7Z0JBQ0QsTUFBTSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUE7Z0JBQ3ZCLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUE7YUFDeEI7WUFBQyxPQUFPLEtBQUssRUFBRTtnQkFDZCxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUE7YUFDZDtRQUNILENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVPLGlCQUFpQixDQUFDLElBQVU7UUFDbEMsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ2pELE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxJQUFJLGFBQWEsRUFBRSxDQUFDLENBQUE7SUFDNUQsQ0FBQztJQUVPLGdCQUFnQixDQUFDLElBQVU7UUFDakMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQTtJQUNuQyxDQUFDO0lBRU8sY0FBYyxDQUFDLE9BQWUsRUFBRSxJQUF5QjtRQUMvRCxJQUFJLElBQUksS0FBSyxTQUFTLEVBQUU7WUFDdEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxPQUFPLENBQUE7U0FDOUI7YUFBTSxJQUFJLElBQUksS0FBSyxPQUFPLEVBQUU7WUFDM0IsSUFBSSxDQUFDLFlBQVksR0FBRyxPQUFPLENBQUE7U0FDNUI7UUFFRCxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUE7WUFDMUIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUE7WUFDeEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxDQUFBO1FBQ3hDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUNWLENBQUM7OEdBOUZVLHlCQUF5QjtrR0FBekIseUJBQXlCLGlFQ1h0Qyx5dEJBcUJBOzsyRkRWYSx5QkFBeUI7a0JBTHJDLFNBQVM7K0JBQ0UsMkJBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBNYXBDb250ZXh0TGF5ZXJNb2RlbCB9IGZyb20gJy4uL21hcC1jb250ZXh0L21hcC1jb250ZXh0Lm1vZGVsJ1xuaW1wb3J0IHsgTWFwRmFjYWRlIH0gZnJvbSAnLi4vK3N0YXRlL21hcC5mYWNhZGUnXG5cbmNvbnN0IElOVkFMSURfRklMRV9GT1JNQVRfRVJST1JfTUVTU0FHRSA9ICdJbnZhbGlkIGZpbGUgZm9ybWF0J1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnbi11aS1hZGQtbGF5ZXItZnJvbS1maWxlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FkZC1sYXllci1mcm9tLWZpbGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hZGQtbGF5ZXItZnJvbS1maWxlLmNvbXBvbmVudC5jc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQWRkTGF5ZXJGcm9tRmlsZUNvbXBvbmVudCB7XG4gIGVycm9yTWVzc2FnZTogc3RyaW5nIHwgbnVsbCA9IG51bGxcbiAgc3VjY2Vzc01lc3NhZ2U6IHN0cmluZyB8IG51bGwgPSBudWxsXG4gIGxvYWRpbmcgPSBmYWxzZVxuICByZWFkb25seSBhY2NlcHRlZE1pbWVUeXBlID0gWycuZ2VvanNvbiddXG4gIHJlYWRvbmx5IG1heEZpbGVTaXplID0gNTAwMDAwMFxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgbWFwRmFjYWRlOiBNYXBGYWNhZGUsXG4gICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7fVxuXG4gIGFzeW5jIGhhbmRsZUZpbGVDaGFuZ2UoZmlsZTogRmlsZSkge1xuICAgIGlmICghZmlsZSkge1xuICAgICAgdGhpcy5kaXNwbGF5TWVzc2FnZShJTlZBTElEX0ZJTEVfRk9STUFUX0VSUk9SX01FU1NBR0UsICdlcnJvcicpXG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgaWYgKGZpbGUuc2l6ZSA+IHRoaXMubWF4RmlsZVNpemUpIHtcbiAgICAgIHRoaXMuZGlzcGxheU1lc3NhZ2UoJ0ZpbGUgc2l6ZSBleGNlZWRzIHRoZSBsaW1pdCBvZiA1TUInLCAnZXJyb3InKVxuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGF3YWl0IHRoaXMuYWRkTGF5ZXIoZmlsZSlcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgYWRkTGF5ZXIoZmlsZTogRmlsZSkge1xuICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gbnVsbFxuICAgIHRoaXMubG9hZGluZyA9IHRydWVcbiAgICB0cnkge1xuICAgICAgaWYgKCF0aGlzLmlzRmlsZUZvcm1hdFZhbGlkKGZpbGUpKSB7XG4gICAgICAgIHRoaXMuZGlzcGxheU1lc3NhZ2UoSU5WQUxJRF9GSUxFX0ZPUk1BVF9FUlJPUl9NRVNTQUdFLCAnZXJyb3InKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgY29uc3QgZmlsZUV4dGVuc2lvbiA9IHRoaXMuZ2V0RmlsZUV4dGVuc2lvbihmaWxlKVxuICAgICAgc3dpdGNoIChmaWxlRXh0ZW5zaW9uKSB7XG4gICAgICAgIGNhc2UgJ2dlb2pzb24nOlxuICAgICAgICAgIGF3YWl0IHRoaXMuYWRkR2VvSnNvbkxheWVyKGZpbGUpXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICB0aGlzLmRpc3BsYXlNZXNzYWdlKElOVkFMSURfRklMRV9GT1JNQVRfRVJST1JfTUVTU0FHRSwgJ2Vycm9yJylcbiAgICAgICAgICBicmVha1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zdCBlcnIgPSBlcnJvciBhcyBFcnJvclxuICAgICAgdGhpcy5kaXNwbGF5TWVzc2FnZSgnRXJyb3IgbG9hZGluZyBmaWxlOiAnICsgZXJyLm1lc3NhZ2UsICdlcnJvcicpXG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhZGRHZW9Kc29uTGF5ZXIoZmlsZTogRmlsZSkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpXG4gICAgICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgICAgY29uc3QgcmVzdWx0ID0gcmVhZGVyLnJlc3VsdCBhcyBzdHJpbmdcbiAgICAgICAgICBjb25zdCB0aXRsZSA9IGZpbGUubmFtZS5zcGxpdCgnLicpLnNsaWNlKDAsIC0xKS5qb2luKCcuJylcbiAgICAgICAgICBjb25zdCBsYXllclRvQWRkOiBNYXBDb250ZXh0TGF5ZXJNb2RlbCA9IHtcbiAgICAgICAgICAgIHR5cGU6ICdnZW9qc29uJyxcbiAgICAgICAgICAgIGRhdGE6IHJlc3VsdCxcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5tYXBGYWNhZGUuYWRkTGF5ZXIoeyAuLi5sYXllclRvQWRkLCB0aXRsZTogdGl0bGUgfSlcbiAgICAgICAgICB0aGlzLmRpc3BsYXlNZXNzYWdlKCdGaWxlIHN1Y2Nlc3NmdWxseSBhZGRlZCB0byBtYXAnLCAnc3VjY2VzcycpXG4gICAgICAgICAgcmVzb2x2ZSgpXG4gICAgICAgIH1cbiAgICAgICAgcmVhZGVyLm9uZXJyb3IgPSByZWplY3RcbiAgICAgICAgcmVhZGVyLnJlYWRBc1RleHQoZmlsZSlcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIHJlamVjdChlcnJvcilcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgcHJpdmF0ZSBpc0ZpbGVGb3JtYXRWYWxpZChmaWxlOiBGaWxlKTogYm9vbGVhbiB7XG4gICAgY29uc3QgZmlsZUV4dGVuc2lvbiA9IHRoaXMuZ2V0RmlsZUV4dGVuc2lvbihmaWxlKVxuICAgIHJldHVybiB0aGlzLmFjY2VwdGVkTWltZVR5cGUuaW5jbHVkZXMoYC4ke2ZpbGVFeHRlbnNpb259YClcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RmlsZUV4dGVuc2lvbihmaWxlOiBGaWxlKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gZmlsZS5uYW1lLnNwbGl0KCcuJykucG9wKClcbiAgfVxuXG4gIHByaXZhdGUgZGlzcGxheU1lc3NhZ2UobWVzc2FnZTogc3RyaW5nLCB0eXBlOiAnc3VjY2VzcycgfCAnZXJyb3InKSB7XG4gICAgaWYgKHR5cGUgPT09ICdzdWNjZXNzJykge1xuICAgICAgdGhpcy5zdWNjZXNzTWVzc2FnZSA9IG1lc3NhZ2VcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdlcnJvcicpIHtcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gbWVzc2FnZVxuICAgIH1cblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5zdWNjZXNzTWVzc2FnZSA9IG51bGxcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gbnVsbFxuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKClcbiAgICB9LCA1MDAwKVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtMiBteS0yXCI+XG4gIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtNFwiPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4LWdyb3cgcm91bmRlZC1tZCBib3JkZXItMiBib3JkZXItZ3JheS0yMDBcIj5cbiAgICAgIDxnbi11aS1kcmFnLWFuZC1kcm9wLWZpbGUtaW5wdXRcbiAgICAgICAgKGZpbGVDaGFuZ2UpPVwiaGFuZGxlRmlsZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgW2FjY2VwdF09XCJhY2NlcHRlZE1pbWVUeXBlLmpvaW4oJywnKVwiXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCInbWFwLmFkZEZyb21GaWxlLnBsYWNlaG9sZGVyJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIGNsYXNzPVwicGxhY2Vob2xkZXItZ3JleVwiXG4gICAgICA+PC9nbi11aS1kcmFnLWFuZC1kcm9wLWZpbGUtaW5wdXQ+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8cCBjbGFzcz1cInRleHQtc20gdGV4dC1ncmF5LTYwMFwiIHRyYW5zbGF0ZT5tYXAuaGVscC5hZGRGcm9tRmlsZTwvcD5cbjwvZGl2PlxuXG48ZGl2ICpuZ0lmPVwiZXJyb3JNZXNzYWdlXCIgY2xhc3M9XCJ0ZXh0LXJlZC01MDAgbXQtMlwiPlxuICB7eyBlcnJvck1lc3NhZ2UgfX1cbjwvZGl2PlxuXG48ZGl2ICpuZ0lmPVwic3VjY2Vzc01lc3NhZ2VcIiBjbGFzcz1cInRleHQtZ3JlZW4tNTAwIG10LTJcIj5cbiAge3sgc3VjY2Vzc01lc3NhZ2UgfX1cbjwvZGl2PlxuIl19
|
package/esm2022/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.mjs
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { Component, Output, EventEmitter, Input, ChangeDetectorRef, } from '@angular/core';
|
|
2
|
+
import { OgcApiEndpoint } from '@camptocamp/ogc-client';
|
|
3
|
+
import { Subject, debounceTime } from 'rxjs';
|
|
4
|
+
import { MapContextLayerTypeEnum, } from '../map-context/map-context.model';
|
|
5
|
+
import { TranslateModule } from '@ngx-translate/core';
|
|
6
|
+
import { UiInputsModule } from '../../../../../../libs/ui/inputs/src';
|
|
7
|
+
import { CommonModule } from '@angular/common';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "@angular/common";
|
|
10
|
+
import * as i2 from "@ngx-translate/core";
|
|
11
|
+
import * as i3 from "../../../../../ui/inputs/src/lib/button/button.component";
|
|
12
|
+
import * as i4 from "../../../../../ui/inputs/src/lib/text-input/text-input.component";
|
|
13
|
+
export class AddLayerFromOgcApiComponent {
|
|
14
|
+
constructor(changeDetectorRef) {
|
|
15
|
+
this.changeDetectorRef = changeDetectorRef;
|
|
16
|
+
this.layerAdded = new EventEmitter();
|
|
17
|
+
this.urlChange = new Subject();
|
|
18
|
+
this.layerUrl = '';
|
|
19
|
+
this.loading = false;
|
|
20
|
+
this.layers = [];
|
|
21
|
+
this.ogcEndpoint = null;
|
|
22
|
+
this.errorMessage = null;
|
|
23
|
+
}
|
|
24
|
+
ngOnInit() {
|
|
25
|
+
this.urlChange.pipe(debounceTime(700)).subscribe(() => {
|
|
26
|
+
this.loadLayers();
|
|
27
|
+
this.changeDetectorRef.detectChanges(); // manually trigger change detection
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
async loadLayers() {
|
|
31
|
+
this.errorMessage = null;
|
|
32
|
+
try {
|
|
33
|
+
this.loading = true;
|
|
34
|
+
if (this.ogcUrl.trim() === '') {
|
|
35
|
+
this.layers = [];
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
this.ogcEndpoint = await new OgcApiEndpoint(this.ogcUrl);
|
|
39
|
+
// Currently only supports feature collections
|
|
40
|
+
this.layers = await this.ogcEndpoint.featureCollections;
|
|
41
|
+
}
|
|
42
|
+
catch (error) {
|
|
43
|
+
const err = error;
|
|
44
|
+
this.layers = [];
|
|
45
|
+
this.errorMessage = 'Error loading layers: ' + err.message;
|
|
46
|
+
}
|
|
47
|
+
finally {
|
|
48
|
+
this.loading = false;
|
|
49
|
+
this.changeDetectorRef.markForCheck();
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
async addLayer(layer) {
|
|
53
|
+
this.layerUrl = await this.ogcEndpoint.getCollectionItemsUrl(layer);
|
|
54
|
+
const layerToAdd = {
|
|
55
|
+
name: layer,
|
|
56
|
+
url: this.layerUrl,
|
|
57
|
+
type: MapContextLayerTypeEnum.OGCAPI,
|
|
58
|
+
};
|
|
59
|
+
this.layerAdded.emit({ ...layerToAdd, title: layer });
|
|
60
|
+
}
|
|
61
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: AddLayerFromOgcApiComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
62
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: AddLayerFromOgcApiComponent, isStandalone: true, selector: "gn-ui-add-layer-from-ogc-api", inputs: { ogcUrl: "ogcUrl" }, outputs: { layerAdded: "layerAdded" }, ngImport: i0, template: "<div class=\"flex items-center mb-5\">\n <gn-ui-text-input\n [(value)]=\"ogcUrl\"\n (valueChange)=\"urlChange.next($event)\"\n [hint]=\"'map.ogc.urlInput.hint' | translate\"\n class=\"w-96\"\n >\n </gn-ui-text-input>\n</div>\n\n<div *ngIf=\"errorMessage\" class=\"text-red-500 mt-2\">\n {{ errorMessage }}\n</div>\n\n<div *ngIf=\"loading\">\n <p class=\"loading-message\" translate>map.loading.service</p>\n</div>\n\n<div *ngIf=\"!loading && layers.length > 0\">\n <h2 class=\"font-bold\" translate>map.layers.available</h2>\n <ng-container *ngFor=\"let layer of layers\">\n <div class=\"flex items-center justify-between my-2 layer-item-tree\">\n <p class=\"max-w-xs overflow-hidden overflow-ellipsis whitespace-nowrap\">\n {{ layer }}\n </p>\n <gn-ui-button\n class=\"layer-add-btn\"\n type=\"primary\"\n (buttonClick)=\"addLayer(layer)\"\n extraClass=\"text-sm !px-2 !py-1\"\n translate\n ><span translate> map.layer.add </span></gn-ui-button\n >\n </div>\n </ng-container>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "directive", type: i2.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "ngmodule", type: UiInputsModule }, { kind: "component", type: i3.ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "component", type: i4.TextInputComponent, selector: "gn-ui-text-input", inputs: ["value", "hint", "required"], outputs: ["valueChange"] }] }); }
|
|
63
|
+
}
|
|
64
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: AddLayerFromOgcApiComponent, decorators: [{
|
|
65
|
+
type: Component,
|
|
66
|
+
args: [{ selector: 'gn-ui-add-layer-from-ogc-api', standalone: true, imports: [CommonModule, TranslateModule, UiInputsModule], template: "<div class=\"flex items-center mb-5\">\n <gn-ui-text-input\n [(value)]=\"ogcUrl\"\n (valueChange)=\"urlChange.next($event)\"\n [hint]=\"'map.ogc.urlInput.hint' | translate\"\n class=\"w-96\"\n >\n </gn-ui-text-input>\n</div>\n\n<div *ngIf=\"errorMessage\" class=\"text-red-500 mt-2\">\n {{ errorMessage }}\n</div>\n\n<div *ngIf=\"loading\">\n <p class=\"loading-message\" translate>map.loading.service</p>\n</div>\n\n<div *ngIf=\"!loading && layers.length > 0\">\n <h2 class=\"font-bold\" translate>map.layers.available</h2>\n <ng-container *ngFor=\"let layer of layers\">\n <div class=\"flex items-center justify-between my-2 layer-item-tree\">\n <p class=\"max-w-xs overflow-hidden overflow-ellipsis whitespace-nowrap\">\n {{ layer }}\n </p>\n <gn-ui-button\n class=\"layer-add-btn\"\n type=\"primary\"\n (buttonClick)=\"addLayer(layer)\"\n extraClass=\"text-sm !px-2 !py-1\"\n translate\n ><span translate> map.layer.add </span></gn-ui-button\n >\n </div>\n </ng-container>\n</div>\n" }]
|
|
67
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { ogcUrl: [{
|
|
68
|
+
type: Input
|
|
69
|
+
}], layerAdded: [{
|
|
70
|
+
type: Output
|
|
71
|
+
}] } });
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWxheWVyLWZyb20tb2djLWFwaS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvbWFwL3NyYy9saWIvYWRkLWxheWVyLWZyb20tb2djLWFwaS9hZGQtbGF5ZXItZnJvbS1vZ2MtYXBpLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9tYXAvc3JjL2xpYi9hZGQtbGF5ZXItZnJvbS1vZ2MtYXBpL2FkZC1sYXllci1mcm9tLW9nYy1hcGkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxNQUFNLEVBQ04sWUFBWSxFQUVaLEtBQUssRUFDTCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQ3ZELE9BQU8sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQzVDLE9BQU8sRUFFTCx1QkFBdUIsR0FDeEIsTUFBTSxrQ0FBa0MsQ0FBQTtBQUN6QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDckQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNDQUFzQyxDQUFBO0FBQ3JFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTs7Ozs7O0FBVTlDLE1BQU0sT0FBTywyQkFBMkI7SUFXdEMsWUFBb0IsaUJBQW9DO1FBQXBDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFUOUMsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFZLENBQUE7UUFFbkQsY0FBUyxHQUFHLElBQUksT0FBTyxFQUFVLENBQUE7UUFDakMsYUFBUSxHQUFHLEVBQUUsQ0FBQTtRQUNiLFlBQU8sR0FBRyxLQUFLLENBQUE7UUFDZixXQUFNLEdBQWEsRUFBRSxDQUFBO1FBQ3JCLGdCQUFXLEdBQW1CLElBQUksQ0FBQTtRQUNsQyxpQkFBWSxHQUFrQixJQUFJLENBQUE7SUFFeUIsQ0FBQztJQUU1RCxRQUFRO1FBQ04sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNwRCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUE7WUFDakIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxDQUFBLENBQUMsb0NBQW9DO1FBQzdFLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELEtBQUssQ0FBQyxVQUFVO1FBQ2QsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUE7UUFDeEIsSUFBSTtZQUNGLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFBO1lBQ25CLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUU7Z0JBQzdCLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFBO2dCQUNoQixPQUFNO2FBQ1A7WUFDRCxJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFBO1lBRXhELDhDQUE4QztZQUM5QyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQTtTQUN4RDtRQUFDLE9BQU8sS0FBSyxFQUFFO1lBQ2QsTUFBTSxHQUFHLEdBQUcsS0FBYyxDQUFBO1lBQzFCLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFBO1lBQ2hCLElBQUksQ0FBQyxZQUFZLEdBQUcsd0JBQXdCLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQTtTQUMzRDtnQkFBUztZQUNSLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFBO1lBQ3BCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQTtTQUN0QztJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQWE7UUFDMUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUE7UUFFbkUsTUFBTSxVQUFVLEdBQXlCO1lBQ3ZDLElBQUksRUFBRSxLQUFLO1lBQ1gsR0FBRyxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ2xCLElBQUksRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO1NBQ3JDLENBQUE7UUFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsVUFBVSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFBO0lBQ3ZELENBQUM7OEdBbkRVLDJCQUEyQjtrR0FBM0IsMkJBQTJCLDZKQzNCeEMsMmpDQW9DQSx5RERYWSxZQUFZLCtQQUFFLGVBQWUsa09BQUUsY0FBYzs7MkZBRTVDLDJCQUEyQjtrQkFQdkMsU0FBUzsrQkFDRSw4QkFBOEIsY0FHNUIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGVBQWUsRUFBRSxjQUFjLENBQUM7d0dBRy9DLE1BQU07c0JBQWQsS0FBSztnQkFDSSxVQUFVO3NCQUFuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgRXZlbnRFbWl0dGVyLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgSW5wdXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgT2djQXBpRW5kcG9pbnQgfSBmcm9tICdAY2FtcHRvY2FtcC9vZ2MtY2xpZW50J1xuaW1wb3J0IHsgU3ViamVjdCwgZGVib3VuY2VUaW1lIH0gZnJvbSAncnhqcydcbmltcG9ydCB7XG4gIE1hcENvbnRleHRMYXllck1vZGVsLFxuICBNYXBDb250ZXh0TGF5ZXJUeXBlRW51bSxcbn0gZnJvbSAnLi4vbWFwLWNvbnRleHQvbWFwLWNvbnRleHQubW9kZWwnXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuaW1wb3J0IHsgVWlJbnB1dHNNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2lucHV0cy9zcmMnXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBNYXBMYXllciB9IGZyb20gJy4uLytzdGF0ZS9tYXAubW9kZWxzJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnbi11aS1hZGQtbGF5ZXItZnJvbS1vZ2MtYXBpJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FkZC1sYXllci1mcm9tLW9nYy1hcGkuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hZGQtbGF5ZXItZnJvbS1vZ2MtYXBpLmNvbXBvbmVudC5jc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgVHJhbnNsYXRlTW9kdWxlLCBVaUlucHV0c01vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIEFkZExheWVyRnJvbU9nY0FwaUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIG9nY1VybDogc3RyaW5nXG4gIEBPdXRwdXQoKSBsYXllckFkZGVkID0gbmV3IEV2ZW50RW1pdHRlcjxNYXBMYXllcj4oKVxuXG4gIHVybENoYW5nZSA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKVxuICBsYXllclVybCA9ICcnXG4gIGxvYWRpbmcgPSBmYWxzZVxuICBsYXllcnM6IHN0cmluZ1tdID0gW11cbiAgb2djRW5kcG9pbnQ6IE9nY0FwaUVuZHBvaW50ID0gbnVsbFxuICBlcnJvck1lc3NhZ2U6IHN0cmluZyB8IG51bGwgPSBudWxsXG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy51cmxDaGFuZ2UucGlwZShkZWJvdW5jZVRpbWUoNzAwKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMubG9hZExheWVycygpXG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKSAvLyBtYW51YWxseSB0cmlnZ2VyIGNoYW5nZSBkZXRlY3Rpb25cbiAgICB9KVxuICB9XG5cbiAgYXN5bmMgbG9hZExheWVycygpIHtcbiAgICB0aGlzLmVycm9yTWVzc2FnZSA9IG51bGxcbiAgICB0cnkge1xuICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZVxuICAgICAgaWYgKHRoaXMub2djVXJsLnRyaW0oKSA9PT0gJycpIHtcbiAgICAgICAgdGhpcy5sYXllcnMgPSBbXVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIHRoaXMub2djRW5kcG9pbnQgPSBhd2FpdCBuZXcgT2djQXBpRW5kcG9pbnQodGhpcy5vZ2NVcmwpXG5cbiAgICAgIC8vIEN1cnJlbnRseSBvbmx5IHN1cHBvcnRzIGZlYXR1cmUgY29sbGVjdGlvbnNcbiAgICAgIHRoaXMubGF5ZXJzID0gYXdhaXQgdGhpcy5vZ2NFbmRwb2ludC5mZWF0dXJlQ29sbGVjdGlvbnNcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc3QgZXJyID0gZXJyb3IgYXMgRXJyb3JcbiAgICAgIHRoaXMubGF5ZXJzID0gW11cbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ0Vycm9yIGxvYWRpbmcgbGF5ZXJzOiAnICsgZXJyLm1lc3NhZ2VcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2VcbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKClcbiAgICB9XG4gIH1cblxuICBhc3luYyBhZGRMYXllcihsYXllcjogc3RyaW5nKSB7XG4gICAgdGhpcy5sYXllclVybCA9IGF3YWl0IHRoaXMub2djRW5kcG9pbnQuZ2V0Q29sbGVjdGlvbkl0ZW1zVXJsKGxheWVyKVxuXG4gICAgY29uc3QgbGF5ZXJUb0FkZDogTWFwQ29udGV4dExheWVyTW9kZWwgPSB7XG4gICAgICBuYW1lOiBsYXllcixcbiAgICAgIHVybDogdGhpcy5sYXllclVybCxcbiAgICAgIHR5cGU6IE1hcENvbnRleHRMYXllclR5cGVFbnVtLk9HQ0FQSSxcbiAgICB9XG4gICAgdGhpcy5sYXllckFkZGVkLmVtaXQoeyAuLi5sYXllclRvQWRkLCB0aXRsZTogbGF5ZXIgfSlcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIG1iLTVcIj5cbiAgPGduLXVpLXRleHQtaW5wdXRcbiAgICBbKHZhbHVlKV09XCJvZ2NVcmxcIlxuICAgICh2YWx1ZUNoYW5nZSk9XCJ1cmxDaGFuZ2UubmV4dCgkZXZlbnQpXCJcbiAgICBbaGludF09XCInbWFwLm9nYy51cmxJbnB1dC5oaW50JyB8IHRyYW5zbGF0ZVwiXG4gICAgY2xhc3M9XCJ3LTk2XCJcbiAgPlxuICA8L2duLXVpLXRleHQtaW5wdXQ+XG48L2Rpdj5cblxuPGRpdiAqbmdJZj1cImVycm9yTWVzc2FnZVwiIGNsYXNzPVwidGV4dC1yZWQtNTAwIG10LTJcIj5cbiAge3sgZXJyb3JNZXNzYWdlIH19XG48L2Rpdj5cblxuPGRpdiAqbmdJZj1cImxvYWRpbmdcIj5cbiAgPHAgY2xhc3M9XCJsb2FkaW5nLW1lc3NhZ2VcIiB0cmFuc2xhdGU+bWFwLmxvYWRpbmcuc2VydmljZTwvcD5cbjwvZGl2PlxuXG48ZGl2ICpuZ0lmPVwiIWxvYWRpbmcgJiYgbGF5ZXJzLmxlbmd0aCA+IDBcIj5cbiAgPGgyIGNsYXNzPVwiZm9udC1ib2xkXCIgdHJhbnNsYXRlPm1hcC5sYXllcnMuYXZhaWxhYmxlPC9oMj5cbiAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgbGF5ZXIgb2YgbGF5ZXJzXCI+XG4gICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBteS0yIGxheWVyLWl0ZW0tdHJlZVwiPlxuICAgICAgPHAgY2xhc3M9XCJtYXgtdy14cyBvdmVyZmxvdy1oaWRkZW4gb3ZlcmZsb3ctZWxsaXBzaXMgd2hpdGVzcGFjZS1ub3dyYXBcIj5cbiAgICAgICAge3sgbGF5ZXIgfX1cbiAgICAgIDwvcD5cbiAgICAgIDxnbi11aS1idXR0b25cbiAgICAgICAgY2xhc3M9XCJsYXllci1hZGQtYnRuXCJcbiAgICAgICAgdHlwZT1cInByaW1hcnlcIlxuICAgICAgICAoYnV0dG9uQ2xpY2spPVwiYWRkTGF5ZXIobGF5ZXIpXCJcbiAgICAgICAgZXh0cmFDbGFzcz1cInRleHQtc20gIXB4LTIgIXB5LTFcIlxuICAgICAgICB0cmFuc2xhdGVcbiAgICAgICAgPjxzcGFuIHRyYW5zbGF0ZT4gbWFwLmxheWVyLmFkZCA8L3NwYW4+PC9nbi11aS1idXR0b25cbiAgICAgID5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { ChangeDetectorRef, Component } from '@angular/core';
|
|
2
|
+
import { WfsEndpoint } from '@camptocamp/ogc-client';
|
|
3
|
+
import { Subject } from 'rxjs';
|
|
4
|
+
import { MapContextLayerTypeEnum, } from '../map-context/map-context.model';
|
|
5
|
+
import { MapFacade } from '../+state/map.facade';
|
|
6
|
+
import { debounceTime } from 'rxjs/operators';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "../+state/map.facade";
|
|
9
|
+
import * as i2 from "@angular/common";
|
|
10
|
+
import * as i3 from "@ngx-translate/core";
|
|
11
|
+
import * as i4 from "../../../../../ui/inputs/src/lib/button/button.component";
|
|
12
|
+
import * as i5 from "../../../../../ui/inputs/src/lib/text-input/text-input.component";
|
|
13
|
+
export class AddLayerFromWfsComponent {
|
|
14
|
+
constructor(mapFacade, changeDetectorRef) {
|
|
15
|
+
this.mapFacade = mapFacade;
|
|
16
|
+
this.changeDetectorRef = changeDetectorRef;
|
|
17
|
+
this.wfsUrl = '';
|
|
18
|
+
this.loading = false;
|
|
19
|
+
this.layers = [];
|
|
20
|
+
this.wfsEndpoint = null;
|
|
21
|
+
this.urlChange = new Subject();
|
|
22
|
+
this.errorMessage = null;
|
|
23
|
+
}
|
|
24
|
+
ngOnInit() {
|
|
25
|
+
this.urlChange.pipe(debounceTime(700)).subscribe(() => this.loadLayers());
|
|
26
|
+
}
|
|
27
|
+
async loadLayers() {
|
|
28
|
+
this.errorMessage = null;
|
|
29
|
+
try {
|
|
30
|
+
this.loading = true;
|
|
31
|
+
if (this.wfsUrl.trim() === '') {
|
|
32
|
+
this.layers = [];
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
this.wfsEndpoint = await new WfsEndpoint(this.wfsUrl).isReady();
|
|
36
|
+
this.layers = this.wfsEndpoint.getFeatureTypes();
|
|
37
|
+
console.log(this.layers);
|
|
38
|
+
}
|
|
39
|
+
catch (error) {
|
|
40
|
+
const err = error;
|
|
41
|
+
this.layers = [];
|
|
42
|
+
this.errorMessage = 'Error loading layers: ' + err.message;
|
|
43
|
+
}
|
|
44
|
+
finally {
|
|
45
|
+
this.loading = false;
|
|
46
|
+
this.changeDetectorRef.markForCheck();
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
addLayer(layer) {
|
|
50
|
+
const layerToAdd = {
|
|
51
|
+
name: layer.name,
|
|
52
|
+
url: this.wfsUrl.toString(),
|
|
53
|
+
type: MapContextLayerTypeEnum.WFS,
|
|
54
|
+
};
|
|
55
|
+
this.mapFacade.addLayer({ ...layerToAdd, title: layer.title });
|
|
56
|
+
}
|
|
57
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: AddLayerFromWfsComponent, deps: [{ token: i1.MapFacade }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
58
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: AddLayerFromWfsComponent, selector: "gn-ui-add-layer-from-wfs", ngImport: i0, template: "<div class=\"flex items-center mb-5\">\n <gn-ui-text-input\n [(value)]=\"wfsUrl\"\n (valueChange)=\"urlChange.next($event)\"\n [hint]=\"'map.wfs.urlInput.hint' | translate\"\n class=\"w-96\"\n >\n </gn-ui-text-input>\n</div>\n\n<div *ngIf=\"errorMessage\" class=\"text-red-500 mt-2\">\n {{ errorMessage }}\n</div>\n\n<div *ngIf=\"loading\">\n <p class=\"loading-message\" translate>map.loading.service</p>\n</div>\n\n<div *ngIf=\"!loading && layers.length > 0\">\n <h2 class=\"font-bold\" translate>map.layers.available</h2>\n <ng-container *ngFor=\"let layer of layers\">\n <div class=\"flex items-center justify-between my-2 layer-item-tree\">\n <p class=\"max-w-xs overflow-hidden overflow-ellipsis whitespace-nowrap\">\n {{ layer.title }}\n </p>\n <gn-ui-button\n *ngIf=\"layer.name\"\n class=\"layer-add-btn\"\n type=\"primary\"\n (buttonClick)=\"addLayer(layer)\"\n extraClass=\"text-sm !px-2 !py-1\"\n translate\n ><span translate> map.layer.add </span></gn-ui-button\n >\n </div>\n </ng-container>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i4.ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "component", type: i5.TextInputComponent, selector: "gn-ui-text-input", inputs: ["value", "hint", "required"], outputs: ["valueChange"] }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] }); }
|
|
59
|
+
}
|
|
60
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: AddLayerFromWfsComponent, decorators: [{
|
|
61
|
+
type: Component,
|
|
62
|
+
args: [{ selector: 'gn-ui-add-layer-from-wfs', template: "<div class=\"flex items-center mb-5\">\n <gn-ui-text-input\n [(value)]=\"wfsUrl\"\n (valueChange)=\"urlChange.next($event)\"\n [hint]=\"'map.wfs.urlInput.hint' | translate\"\n class=\"w-96\"\n >\n </gn-ui-text-input>\n</div>\n\n<div *ngIf=\"errorMessage\" class=\"text-red-500 mt-2\">\n {{ errorMessage }}\n</div>\n\n<div *ngIf=\"loading\">\n <p class=\"loading-message\" translate>map.loading.service</p>\n</div>\n\n<div *ngIf=\"!loading && layers.length > 0\">\n <h2 class=\"font-bold\" translate>map.layers.available</h2>\n <ng-container *ngFor=\"let layer of layers\">\n <div class=\"flex items-center justify-between my-2 layer-item-tree\">\n <p class=\"max-w-xs overflow-hidden overflow-ellipsis whitespace-nowrap\">\n {{ layer.title }}\n </p>\n <gn-ui-button\n *ngIf=\"layer.name\"\n class=\"layer-add-btn\"\n type=\"primary\"\n (buttonClick)=\"addLayer(layer)\"\n extraClass=\"text-sm !px-2 !py-1\"\n translate\n ><span translate> map.layer.add </span></gn-ui-button\n >\n </div>\n </ng-container>\n</div>\n" }]
|
|
63
|
+
}], ctorParameters: function () { return [{ type: i1.MapFacade }, { type: i0.ChangeDetectorRef }]; } });
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWxheWVyLWZyb20td2ZzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9tYXAvc3JjL2xpYi9hZGQtbGF5ZXItZnJvbS13ZnMvYWRkLWxheWVyLWZyb20td2ZzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9tYXAvc3JjL2xpYi9hZGQtbGF5ZXItZnJvbS13ZnMvYWRkLWxheWVyLWZyb20td2ZzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUE7QUFDcEUsT0FBTyxFQUFFLFdBQVcsRUFBdUIsTUFBTSx3QkFBd0IsQ0FBQTtBQUN6RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQzlCLE9BQU8sRUFFTCx1QkFBdUIsR0FDeEIsTUFBTSxrQ0FBa0MsQ0FBQTtBQUN6QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDaEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFBOzs7Ozs7O0FBTzdDLE1BQU0sT0FBTyx3QkFBd0I7SUFRbkMsWUFDVSxTQUFvQixFQUNwQixpQkFBb0M7UUFEcEMsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUNwQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBVDlDLFdBQU0sR0FBRyxFQUFFLENBQUE7UUFDWCxZQUFPLEdBQUcsS0FBSyxDQUFBO1FBQ2YsV0FBTSxHQUEwQixFQUFFLENBQUE7UUFDbEMsZ0JBQVcsR0FBdUIsSUFBSSxDQUFBO1FBQ3RDLGNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBVSxDQUFBO1FBQ2pDLGlCQUFZLEdBQWtCLElBQUksQ0FBQTtJQUsvQixDQUFDO0lBRUosUUFBUTtRQUNOLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQTtJQUMzRSxDQUFDO0lBRUQsS0FBSyxDQUFDLFVBQVU7UUFDZCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQTtRQUN4QixJQUFJO1lBQ0YsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUE7WUFFbkIsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRTtnQkFDN0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUE7Z0JBQ2hCLE9BQU07YUFDUDtZQUVELElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUE7WUFDL0QsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsRUFBRSxDQUFBO1lBQ2hELE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFBO1NBQ3pCO1FBQUMsT0FBTyxLQUFLLEVBQUU7WUFDZCxNQUFNLEdBQUcsR0FBRyxLQUFjLENBQUE7WUFDMUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUE7WUFDaEIsSUFBSSxDQUFDLFlBQVksR0FBRyx3QkFBd0IsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFBO1NBQzNEO2dCQUFTO1lBQ1IsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUE7WUFDcEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFBO1NBQ3RDO0lBQ0gsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUEwQjtRQUNqQyxNQUFNLFVBQVUsR0FBeUI7WUFDdkMsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJO1lBQ2hCLEdBQUcsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRTtZQUMzQixJQUFJLEVBQUUsdUJBQXVCLENBQUMsR0FBRztTQUNsQyxDQUFBO1FBQ0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRSxHQUFHLFVBQVUsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUE7SUFDaEUsQ0FBQzs4R0EvQ1Usd0JBQXdCO2tHQUF4Qix3QkFBd0IsZ0VDZnJDLCtsQ0FxQ0E7OzJGRHRCYSx3QkFBd0I7a0JBTHBDLFNBQVM7K0JBQ0UsMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IFdmc0VuZHBvaW50LCBXZnNGZWF0dXJlVHlwZUJyaWVmIH0gZnJvbSAnQGNhbXB0b2NhbXAvb2djLWNsaWVudCdcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHtcbiAgTWFwQ29udGV4dExheWVyTW9kZWwsXG4gIE1hcENvbnRleHRMYXllclR5cGVFbnVtLFxufSBmcm9tICcuLi9tYXAtY29udGV4dC9tYXAtY29udGV4dC5tb2RlbCdcbmltcG9ydCB7IE1hcEZhY2FkZSB9IGZyb20gJy4uLytzdGF0ZS9tYXAuZmFjYWRlJ1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLWFkZC1sYXllci1mcm9tLXdmcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9hZGQtbGF5ZXItZnJvbS13ZnMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hZGQtbGF5ZXItZnJvbS13ZnMuY29tcG9uZW50LmNzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBBZGRMYXllckZyb21XZnNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICB3ZnNVcmwgPSAnJ1xuICBsb2FkaW5nID0gZmFsc2VcbiAgbGF5ZXJzOiBXZnNGZWF0dXJlVHlwZUJyaWVmW10gPSBbXVxuICB3ZnNFbmRwb2ludDogV2ZzRW5kcG9pbnQgfCBudWxsID0gbnVsbFxuICB1cmxDaGFuZ2UgPSBuZXcgU3ViamVjdDxzdHJpbmc+KClcbiAgZXJyb3JNZXNzYWdlOiBzdHJpbmcgfCBudWxsID0gbnVsbFxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgbWFwRmFjYWRlOiBNYXBGYWNhZGUsXG4gICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMudXJsQ2hhbmdlLnBpcGUoZGVib3VuY2VUaW1lKDcwMCkpLnN1YnNjcmliZSgoKSA9PiB0aGlzLmxvYWRMYXllcnMoKSlcbiAgfVxuXG4gIGFzeW5jIGxvYWRMYXllcnMoKSB7XG4gICAgdGhpcy5lcnJvck1lc3NhZ2UgPSBudWxsXG4gICAgdHJ5IHtcbiAgICAgIHRoaXMubG9hZGluZyA9IHRydWVcblxuICAgICAgaWYgKHRoaXMud2ZzVXJsLnRyaW0oKSA9PT0gJycpIHtcbiAgICAgICAgdGhpcy5sYXllcnMgPSBbXVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgdGhpcy53ZnNFbmRwb2ludCA9IGF3YWl0IG5ldyBXZnNFbmRwb2ludCh0aGlzLndmc1VybCkuaXNSZWFkeSgpXG4gICAgICB0aGlzLmxheWVycyA9IHRoaXMud2ZzRW5kcG9pbnQuZ2V0RmVhdHVyZVR5cGVzKClcbiAgICAgIGNvbnNvbGUubG9nKHRoaXMubGF5ZXJzKVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zdCBlcnIgPSBlcnJvciBhcyBFcnJvclxuICAgICAgdGhpcy5sYXllcnMgPSBbXVxuICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnRXJyb3IgbG9hZGluZyBsYXllcnM6ICcgKyBlcnIubWVzc2FnZVxuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZVxuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKVxuICAgIH1cbiAgfVxuXG4gIGFkZExheWVyKGxheWVyOiBXZnNGZWF0dXJlVHlwZUJyaWVmKSB7XG4gICAgY29uc3QgbGF5ZXJUb0FkZDogTWFwQ29udGV4dExheWVyTW9kZWwgPSB7XG4gICAgICBuYW1lOiBsYXllci5uYW1lLFxuICAgICAgdXJsOiB0aGlzLndmc1VybC50b1N0cmluZygpLFxuICAgICAgdHlwZTogTWFwQ29udGV4dExheWVyVHlwZUVudW0uV0ZTLFxuICAgIH1cbiAgICB0aGlzLm1hcEZhY2FkZS5hZGRMYXllcih7IC4uLmxheWVyVG9BZGQsIHRpdGxlOiBsYXllci50aXRsZSB9KVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgbWItNVwiPlxuICA8Z24tdWktdGV4dC1pbnB1dFxuICAgIFsodmFsdWUpXT1cIndmc1VybFwiXG4gICAgKHZhbHVlQ2hhbmdlKT1cInVybENoYW5nZS5uZXh0KCRldmVudClcIlxuICAgIFtoaW50XT1cIidtYXAud2ZzLnVybElucHV0LmhpbnQnIHwgdHJhbnNsYXRlXCJcbiAgICBjbGFzcz1cInctOTZcIlxuICA+XG4gIDwvZ24tdWktdGV4dC1pbnB1dD5cbjwvZGl2PlxuXG48ZGl2ICpuZ0lmPVwiZXJyb3JNZXNzYWdlXCIgY2xhc3M9XCJ0ZXh0LXJlZC01MDAgbXQtMlwiPlxuICB7eyBlcnJvck1lc3NhZ2UgfX1cbjwvZGl2PlxuXG48ZGl2ICpuZ0lmPVwibG9hZGluZ1wiPlxuICA8cCBjbGFzcz1cImxvYWRpbmctbWVzc2FnZVwiIHRyYW5zbGF0ZT5tYXAubG9hZGluZy5zZXJ2aWNlPC9wPlxuPC9kaXY+XG5cbjxkaXYgKm5nSWY9XCIhbG9hZGluZyAmJiBsYXllcnMubGVuZ3RoID4gMFwiPlxuICA8aDIgY2xhc3M9XCJmb250LWJvbGRcIiB0cmFuc2xhdGU+bWFwLmxheWVycy5hdmFpbGFibGU8L2gyPlxuICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBsYXllciBvZiBsYXllcnNcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIG15LTIgbGF5ZXItaXRlbS10cmVlXCI+XG4gICAgICA8cCBjbGFzcz1cIm1heC13LXhzIG92ZXJmbG93LWhpZGRlbiBvdmVyZmxvdy1lbGxpcHNpcyB3aGl0ZXNwYWNlLW5vd3JhcFwiPlxuICAgICAgICB7eyBsYXllci50aXRsZSB9fVxuICAgICAgPC9wPlxuICAgICAgPGduLXVpLWJ1dHRvblxuICAgICAgICAqbmdJZj1cImxheWVyLm5hbWVcIlxuICAgICAgICBjbGFzcz1cImxheWVyLWFkZC1idG5cIlxuICAgICAgICB0eXBlPVwicHJpbWFyeVwiXG4gICAgICAgIChidXR0b25DbGljayk9XCJhZGRMYXllcihsYXllcilcIlxuICAgICAgICBleHRyYUNsYXNzPVwidGV4dC1zbSAhcHgtMiAhcHktMVwiXG4gICAgICAgIHRyYW5zbGF0ZVxuICAgICAgICA+PHNwYW4gdHJhbnNsYXRlPiBtYXAubGF5ZXIuYWRkIDwvc3Bhbj48L2duLXVpLWJ1dHRvblxuICAgICAgPlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuIl19
|
|
@@ -1,2 +1,3 @@
|
|
|
1
1
|
export * from './map-options';
|
|
2
|
-
|
|
2
|
+
export * from './projections';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvbWFwL3NyYy9saWIvY29uc3RhbnQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxlQUFlLENBQUE7QUFDN0IsY0FBYyxlQUFlLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL21hcC1vcHRpb25zJ1xuZXhwb3J0ICogZnJvbSAnLi9wcm9qZWN0aW9ucydcbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export const LONLAT_CRS_CODES = ['EPSG:4326', 'CRS:84'];
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvbWFwL3NyYy9saWIvY29uc3RhbnQvcHJvamVjdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxXQUFXLEVBQUUsUUFBUSxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgTE9OTEFUX0NSU19DT0RFUyA9IFsnRVBTRzo0MzI2JywgJ0NSUzo4NCddXG4iXX0=
|