geonetwork-ui 2.11.0-dev.fb3fea50c → 2.11.0-dev.fb48cfeee
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/geonetwork-ui.mjs +1675 -1322
- package/fesm2022/geonetwork-ui.mjs.map +1 -1
- package/index.d.ts +205 -111
- package/index.d.ts.map +1 -1
- package/package.json +6 -5
- package/src/libs/api/metadata-converter/src/lib/dcat-ap/dcat-ap.converter.ts +2 -0
- package/src/libs/api/metadata-converter/src/lib/fixtures/mel.records.dataset+featurecatalog.ts +395 -0
- package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +35 -8
- package/src/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.ts +19 -0
- package/src/libs/api/metadata-converter/src/lib/iso19115-3/iso19115-3.converter.ts +17 -6
- package/src/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.ts +110 -0
- package/src/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.ts +131 -0
- package/src/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.ts +9 -0
- package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +2 -1
- package/src/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.ts +67 -10
- package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +83 -35
- package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +11 -0
- package/src/libs/common/domain/src/lib/model/record/flags.model.ts +1 -0
- package/src/libs/common/domain/src/lib/model/record/index.ts +1 -0
- package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +14 -18
- package/src/libs/common/domain/src/lib/model/search/aggregation.model.ts +2 -0
- package/src/libs/common/domain/src/lib/model/search/filter.model.ts +12 -2
- package/src/libs/common/domain/src/lib/platform.service.interface.ts +1 -0
- package/src/libs/common/domain/src/lib/repository/records-repository.interface.ts +20 -1
- package/src/libs/common/fixtures/src/lib/records.fixtures.ts +42 -62
- package/src/libs/feature/dataviz/src/lib/service/data.service.ts +32 -19
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-constraints/form-field-constraints.component.ts +3 -5
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts/form-field-contacts.component.ts +2 -2
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-record-flags/form-field-record-flag-component.html +18 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-record-flags/form-field-record-flag-component.ts +86 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.html +100 -88
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.ts +11 -4
- package/src/libs/feature/editor/src/lib/components/record-form/record-form.component.ts +18 -4
- package/src/libs/feature/editor/src/lib/expressions.ts +67 -0
- package/src/libs/feature/editor/src/lib/fields.config.ts +13 -0
- package/src/libs/feature/editor/src/lib/models/editor-config.model.ts +10 -4
- package/src/libs/feature/map/src/index.ts +0 -2
- package/src/libs/feature/map/src/lib/feature-map.module.ts +1 -8
- package/src/libs/feature/notify-reuse/src/lib/notify-reuse-form/notify-reuse-form.component.ts +8 -3
- package/src/libs/feature/record/src/lib/state/mdview.effects.ts +3 -1
- package/src/libs/feature/record/src/lib/state/mdview.facade.ts +1 -1
- package/src/libs/feature/search/src/index.ts +2 -0
- package/src/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.html +7 -1
- package/src/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.ts +26 -4
- package/src/libs/feature/search/src/lib/geocoding/geocoding.service.ts +105 -0
- package/src/libs/feature/search/src/lib/location-search/location-search.component.html +18 -0
- package/src/libs/feature/search/src/lib/location-search/location-search.component.ts +114 -0
- package/src/libs/feature/search/src/lib/search-filters-summary-item/search-filters-summary-item.component.ts +1 -0
- package/src/libs/feature/search/src/lib/state/reducer.ts +1 -4
- package/src/libs/feature/search/src/lib/utils/service/fields.service.ts +56 -4
- package/src/libs/feature/search/src/lib/utils/service/fields.ts +58 -16
- package/src/libs/ui/elements/src/lib/record-feature-catalog/feature-catalog-list/feature-catalog-list.component.html +3 -3
- package/src/libs/ui/elements/src/lib/record-feature-catalog/feature-catalog-list/feature-catalog-list.component.ts +2 -2
- package/src/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.ts +2 -1
- package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.css +0 -4
- package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.html +12 -3
- package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.ts +11 -3
- package/src/libs/ui/inputs/src/lib/dropdown-multiselect/dropdown-multiselect.component.html +7 -4
- package/src/libs/ui/inputs/src/lib/dropdown-multiselect/dropdown-multiselect.component.ts +12 -9
- package/src/libs/ui/inputs/src/lib/dropdown-multiselect/dropdown-multiselect.model.ts +2 -2
- package/src/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.ts +2 -1
- package/src/libs/ui/inputs/src/lib/spatial-extent-dropdown/spatial-extent-dropdown.component.html +8 -2
- package/src/libs/ui/inputs/src/lib/spatial-extent-dropdown/spatial-extent-dropdown.component.ts +34 -5
- package/src/libs/ui/layout/src/lib/block-list/block-list.component.css +1 -0
- package/src/libs/util/app-config/src/lib/app-config.ts +34 -0
- package/src/libs/util/app-config/src/lib/fixtures.ts +37 -1
- package/src/libs/util/app-config/src/lib/model.ts +24 -1
- package/src/libs/util/shared/src/lib/links/link-utils.ts +19 -10
- package/src/libs/util/shared/src/lib/utils/geojson.ts +16 -0
- package/translations/de.json +12 -2
- package/translations/en.json +14 -4
- package/translations/es.json +12 -2
- package/translations/fr.json +19 -9
- package/translations/it.json +12 -2
- package/translations/nl.json +12 -2
- package/translations/pt.json +12 -2
- package/translations/sk.json +12 -2
- package/src/libs/feature/map/src/lib/geocoding/geocoding.component.html +0 -41
- package/src/libs/feature/map/src/lib/geocoding/geocoding.component.ts +0 -112
- package/src/libs/feature/map/src/lib/geocoding.service.ts +0 -57
- package/src/libs/feature/map/src/lib/style/index.ts +0 -2
- package/src/libs/feature/map/src/lib/style/map-style.fixtures.ts +0 -47
- package/src/libs/feature/map/src/lib/style/map-style.service.ts +0 -108
- /package/src/libs/feature/{map/src/lib/geocoding/geocoding.component.css → editor/src/lib/components/record-form/form-field/form-field-record-flags/form-field-record-flag-component.css} +0 -0
package/translations/fr.json
CHANGED
|
@@ -77,13 +77,13 @@
|
|
|
77
77
|
"domain.contact.role.editor": "Éditeur",
|
|
78
78
|
"domain.contact.role.funder": "Financeur",
|
|
79
79
|
"domain.contact.role.mediator": "Médiateur",
|
|
80
|
-
"domain.contact.role.originator": "
|
|
80
|
+
"domain.contact.role.originator": "Producteur",
|
|
81
81
|
"domain.contact.role.other": "Autre",
|
|
82
82
|
"domain.contact.role.owner": "Propriétaire",
|
|
83
83
|
"domain.contact.role.point_of_contact": "Point de contact",
|
|
84
|
-
"domain.contact.role.principal_investigator": "
|
|
85
|
-
"domain.contact.role.processor": "
|
|
86
|
-
"domain.contact.role.publisher": "
|
|
84
|
+
"domain.contact.role.principal_investigator": "Investigateur principal",
|
|
85
|
+
"domain.contact.role.processor": "Exécutant",
|
|
86
|
+
"domain.contact.role.publisher": "Editeur (publication)",
|
|
87
87
|
"domain.contact.role.resource_provider": "Fournisseur",
|
|
88
88
|
"domain.contact.role.rights_holder": "Détenteur des droits",
|
|
89
89
|
"domain.contact.role.sponsor": "Sponsor",
|
|
@@ -166,6 +166,8 @@
|
|
|
166
166
|
"editor.record.error.back": "Retour au catalogue",
|
|
167
167
|
"editor.record.error.explanation": "Vous n'avez peut être pas accès à cette fiche,<br>Ou ce lien n'est peut être pas valide.",
|
|
168
168
|
"editor.record.error.message": "Quelque chose ne s'est pas passé comme prévu",
|
|
169
|
+
"editor.record.flag.saveError.body": "{recordKind, select, dataset{Le jeu de données} service{Le service} reuse{La réutilisation} other{L'enregistrement}} n'a pas pu être modifié{recordKind, select, reuse{e} other{}} :",
|
|
170
|
+
"editor.record.flag.saveError.title": "Échec de la modification",
|
|
169
171
|
"editor.record.form.bottomButtons.comeBackLater": "Revenir plus tard",
|
|
170
172
|
"editor.record.form.bottomButtons.next": "Suivant",
|
|
171
173
|
"editor.record.form.bottomButtons.previous": "Précédent",
|
|
@@ -198,6 +200,8 @@
|
|
|
198
200
|
"editor.record.form.field.contacts.placeholder": "Choisissez un contact",
|
|
199
201
|
"editor.record.form.field.contactsForResource.noContact": "Veuillez renseigner au moins un point de contact responsable de la donnée.",
|
|
200
202
|
"editor.record.form.field.contactsForResource.placeholder": "Choisissez un contact",
|
|
203
|
+
"editor.record.form.field.flags.IS_REFERENCE_DATASET": "Donnée de référence",
|
|
204
|
+
"editor.record.form.field.hint.flags.IS_REFERENCE_DATASET": "Activer cette option fera de cette donnée une \"donnée de référence\". Elle sera mise en avant et présentée comme telle dans les résultats de recherche.",
|
|
201
205
|
"editor.record.form.field.keywords": "Mots-clés",
|
|
202
206
|
"editor.record.form.field.legalConstraints": "Contrainte légale",
|
|
203
207
|
"editor.record.form.field.license": "Licence",
|
|
@@ -372,7 +376,7 @@
|
|
|
372
376
|
"favorite.starToggle.add": "Ajouter aux favoris",
|
|
373
377
|
"favorite.starToggle.remove": "Retirer des favoris",
|
|
374
378
|
"feature.catalog.attribute.code": "Code",
|
|
375
|
-
"feature.catalog.attribute.
|
|
379
|
+
"feature.catalog.attribute.description": "Description",
|
|
376
380
|
"feature.catalog.attribute.name": "Nom",
|
|
377
381
|
"feature.catalog.attribute.type": "Type",
|
|
378
382
|
"feature.catalog.attribute.values": "Valeurs",
|
|
@@ -425,7 +429,6 @@
|
|
|
425
429
|
"map.add.layer.wms": "Depuis un service WMS",
|
|
426
430
|
"map.addFromFile.placeholder": "Cliquez ou déposez un fichier ici",
|
|
427
431
|
"map.dropdown.placeholder": "Aucune couche d'aperçu disponible",
|
|
428
|
-
"map.geocoding.placeholder": "Rechercher un lieu",
|
|
429
432
|
"map.help.addFromFile": "Cliquez ou glissez-déposez un fichier pour l'ajouter à la carte (supporte actuellement uniquement le format GeoJSON).",
|
|
430
433
|
"map.layer.add": "Ajouter",
|
|
431
434
|
"map.layers.available": "Couches disponibles",
|
|
@@ -659,6 +662,7 @@
|
|
|
659
662
|
"search.filters.changeDate": "Mise à jour",
|
|
660
663
|
"search.filters.clear": "Réinitialiser",
|
|
661
664
|
"search.filters.contact": "Contacts",
|
|
665
|
+
"search.filters.documentStandard": "Norme de document",
|
|
662
666
|
"search.filters.format": "Formats",
|
|
663
667
|
"search.filters.inspireKeyword": "Mot-clé INSPIRE",
|
|
664
668
|
"search.filters.isSpatial": "Données spatiales",
|
|
@@ -693,20 +697,26 @@
|
|
|
693
697
|
"search.filters.resourceCreationRevisionDate": "Date de la ressource",
|
|
694
698
|
"search.filters.resourceType": "Type de ressource",
|
|
695
699
|
"search.filters.spatialExtent": "Étendue spatiale",
|
|
696
|
-
"search.filters.spatialExtent.bboxFromFile": "
|
|
700
|
+
"search.filters.spatialExtent.bboxFromFile": "Étendue de {fileName}",
|
|
697
701
|
"search.filters.spatialExtent.bboxFromFileDelete": "Supprimer {fileName}",
|
|
698
|
-
"search.filters.spatialExtent.
|
|
702
|
+
"search.filters.spatialExtent.bboxFromLocation": "Étendue de {locationName}",
|
|
703
|
+
"search.filters.spatialExtent.bboxFromLocationDelete": "Supprimer {locationName}",
|
|
704
|
+
"search.filters.spatialExtent.bboxInitial": "Étendue présélectionnée",
|
|
699
705
|
"search.filters.spatialExtent.bboxInitialDelete": "Supprimer la sélection",
|
|
700
706
|
"search.filters.spatialExtent.error.fileTooLarge": "Le fichier dépasse la taille maximale autorisée ({maxSize} Mo)",
|
|
701
707
|
"search.filters.spatialExtent.error.invalidFormat": "Le fichier n'a pas pu être lu comme un GeoJSON valide",
|
|
702
708
|
"search.filters.spatialExtent.error.noGeometry": "Aucune géométrie n'a pu être trouvée dans le fichier",
|
|
709
|
+
"search.filters.spatialExtent.error.outOfBounds": "La géométrie du fichier GeoJSON n'est pas conforme ; soit certaines coordonnées sont hors limites ([-180, 180] pour la longitude et [-90, 90] pour la latitude), soit le fichier utilise des coordonnées projetées au lieu de la longitude et de la latitude.",
|
|
703
710
|
"search.filters.spatialExtent.error.title": "Erreur d'importation GeoJSON",
|
|
704
|
-
"search.filters.spatialExtent.helpText": "L
|
|
711
|
+
"search.filters.spatialExtent.helpText": "L'étendue de la géométrie sélectionnée sera utilisée",
|
|
705
712
|
"search.filters.spatialExtent.import": "Importer un GeoJSON",
|
|
713
|
+
"search.filters.spatialExtent.searchLocation": "Rechercher dans la liste",
|
|
706
714
|
"search.filters.standard": "Standard",
|
|
707
715
|
"search.filters.summaryLabel.changeDate": "Mise à jour : ",
|
|
708
716
|
"search.filters.summaryLabel.resourceCreationRevisionDate": "Date de la ressource : ",
|
|
717
|
+
"search.filters.summaryLabel.temporalExtent": "Étendue temporelle : ",
|
|
709
718
|
"search.filters.summaryLabel.user": "Éditeur : ",
|
|
719
|
+
"search.filters.temporalExtent": "Étendue temporelle",
|
|
710
720
|
"search.filters.title": "Affiner votre recherche",
|
|
711
721
|
"search.filters.topic": "Thèmes",
|
|
712
722
|
"search.filters.useSpatialFilter": "Mettre en avant les ressources sur la zone d'intérêt",
|
package/translations/it.json
CHANGED
|
@@ -166,6 +166,8 @@
|
|
|
166
166
|
"editor.record.error.back": "Ritorna al catalogo",
|
|
167
167
|
"editor.record.error.explanation": "Forse non ha accesso a questa pagina oppure questo collegamento potrebbe non essere valido.",
|
|
168
168
|
"editor.record.error.message": "Qualcosa è andato storto",
|
|
169
|
+
"editor.record.flag.saveError.body": "",
|
|
170
|
+
"editor.record.flag.saveError.title": "",
|
|
169
171
|
"editor.record.form.bottomButtons.comeBackLater": "Ritorna più tardi",
|
|
170
172
|
"editor.record.form.bottomButtons.next": "Avanti",
|
|
171
173
|
"editor.record.form.bottomButtons.previous": "Precedente",
|
|
@@ -198,6 +200,8 @@
|
|
|
198
200
|
"editor.record.form.field.contacts.placeholder": "Scegli un contatto",
|
|
199
201
|
"editor.record.form.field.contactsForResource.noContact": "Inserisci almeno un punto di contatto responsabile dei dati.",
|
|
200
202
|
"editor.record.form.field.contactsForResource.placeholder": "Scegli un contatto",
|
|
203
|
+
"editor.record.form.field.flags.IS_REFERENCE_DATASET": "",
|
|
204
|
+
"editor.record.form.field.hint.flags.IS_REFERENCE_DATASET": "",
|
|
201
205
|
"editor.record.form.field.keywords": "Parole chiave",
|
|
202
206
|
"editor.record.form.field.legalConstraints": "Vincolo legale",
|
|
203
207
|
"editor.record.form.field.license": "Licenza",
|
|
@@ -372,7 +376,7 @@
|
|
|
372
376
|
"favorite.starToggle.add": "Aggiungi ai preferiti",
|
|
373
377
|
"favorite.starToggle.remove": "Rimuovi dai preferiti",
|
|
374
378
|
"feature.catalog.attribute.code": "Codice",
|
|
375
|
-
"feature.catalog.attribute.
|
|
379
|
+
"feature.catalog.attribute.description": "Descrizione",
|
|
376
380
|
"feature.catalog.attribute.name": "Nome",
|
|
377
381
|
"feature.catalog.attribute.type": "Tipo",
|
|
378
382
|
"feature.catalog.attribute.values": "Valori",
|
|
@@ -425,7 +429,6 @@
|
|
|
425
429
|
"map.add.layer.wms": "Da un WMS",
|
|
426
430
|
"map.addFromFile.placeholder": "Clicca o trascina un file qui",
|
|
427
431
|
"map.dropdown.placeholder": "Nessun livello di anteprima disponibile",
|
|
428
|
-
"map.geocoding.placeholder": "Cerca un luogo",
|
|
429
432
|
"map.help.addFromFile": "Clicca o trascina un file per aggiungerlo alla mappa (attualmente supporta solo il formato GeoJSON)",
|
|
430
433
|
"map.layer.add": "Aggiungi",
|
|
431
434
|
"map.layers.available": "Layer disponibili",
|
|
@@ -659,6 +662,7 @@
|
|
|
659
662
|
"search.filters.changeDate": "Aggiornato",
|
|
660
663
|
"search.filters.clear": "Ripristina",
|
|
661
664
|
"search.filters.contact": "Contatti",
|
|
665
|
+
"search.filters.documentStandard": "",
|
|
662
666
|
"search.filters.format": "Formati",
|
|
663
667
|
"search.filters.inspireKeyword": "Parola chiave INSPIRE",
|
|
664
668
|
"search.filters.isSpatial": "Dati spaziali",
|
|
@@ -695,18 +699,24 @@
|
|
|
695
699
|
"search.filters.spatialExtent": "",
|
|
696
700
|
"search.filters.spatialExtent.bboxFromFile": "",
|
|
697
701
|
"search.filters.spatialExtent.bboxFromFileDelete": "",
|
|
702
|
+
"search.filters.spatialExtent.bboxFromLocation": "",
|
|
703
|
+
"search.filters.spatialExtent.bboxFromLocationDelete": "",
|
|
698
704
|
"search.filters.spatialExtent.bboxInitial": "",
|
|
699
705
|
"search.filters.spatialExtent.bboxInitialDelete": "",
|
|
700
706
|
"search.filters.spatialExtent.error.fileTooLarge": "",
|
|
701
707
|
"search.filters.spatialExtent.error.invalidFormat": "",
|
|
702
708
|
"search.filters.spatialExtent.error.noGeometry": "",
|
|
709
|
+
"search.filters.spatialExtent.error.outOfBounds": "",
|
|
703
710
|
"search.filters.spatialExtent.error.title": "",
|
|
704
711
|
"search.filters.spatialExtent.helpText": "",
|
|
705
712
|
"search.filters.spatialExtent.import": "",
|
|
713
|
+
"search.filters.spatialExtent.searchLocation": "",
|
|
706
714
|
"search.filters.standard": "Standard",
|
|
707
715
|
"search.filters.summaryLabel.changeDate": "Aggiornato: ",
|
|
708
716
|
"search.filters.summaryLabel.resourceCreationRevisionDate": "Data della risorsa: ",
|
|
717
|
+
"search.filters.summaryLabel.temporalExtent": "Estensione temporale: ",
|
|
709
718
|
"search.filters.summaryLabel.user": "Editor: ",
|
|
719
|
+
"search.filters.temporalExtent": "Estensione temporale",
|
|
710
720
|
"search.filters.title": "Affina la sua ricerca",
|
|
711
721
|
"search.filters.topic": "Argomenti",
|
|
712
722
|
"search.filters.useSpatialFilter": "Evidenzia le risorse nell'area di interesse",
|
package/translations/nl.json
CHANGED
|
@@ -166,6 +166,8 @@
|
|
|
166
166
|
"editor.record.error.back": "",
|
|
167
167
|
"editor.record.error.explanation": "",
|
|
168
168
|
"editor.record.error.message": "",
|
|
169
|
+
"editor.record.flag.saveError.body": "",
|
|
170
|
+
"editor.record.flag.saveError.title": "",
|
|
169
171
|
"editor.record.form.bottomButtons.comeBackLater": "",
|
|
170
172
|
"editor.record.form.bottomButtons.next": "",
|
|
171
173
|
"editor.record.form.bottomButtons.previous": "",
|
|
@@ -198,6 +200,8 @@
|
|
|
198
200
|
"editor.record.form.field.contacts.placeholder": "",
|
|
199
201
|
"editor.record.form.field.contactsForResource.noContact": "",
|
|
200
202
|
"editor.record.form.field.contactsForResource.placeholder": "",
|
|
203
|
+
"editor.record.form.field.flags.IS_REFERENCE_DATASET": "",
|
|
204
|
+
"editor.record.form.field.hint.flags.IS_REFERENCE_DATASET": "",
|
|
201
205
|
"editor.record.form.field.keywords": "",
|
|
202
206
|
"editor.record.form.field.legalConstraints": "",
|
|
203
207
|
"editor.record.form.field.license": "",
|
|
@@ -372,7 +376,7 @@
|
|
|
372
376
|
"favorite.starToggle.add": "Toevoegen aan favorieten",
|
|
373
377
|
"favorite.starToggle.remove": "Verwijderen uit favorieten",
|
|
374
378
|
"feature.catalog.attribute.code": "Code",
|
|
375
|
-
"feature.catalog.attribute.
|
|
379
|
+
"feature.catalog.attribute.description": "Beschrijving",
|
|
376
380
|
"feature.catalog.attribute.name": "Naam",
|
|
377
381
|
"feature.catalog.attribute.type": "Type",
|
|
378
382
|
"feature.catalog.attribute.values": "Waarden",
|
|
@@ -425,7 +429,6 @@
|
|
|
425
429
|
"map.add.layer.wms": "",
|
|
426
430
|
"map.addFromFile.placeholder": "",
|
|
427
431
|
"map.dropdown.placeholder": "",
|
|
428
|
-
"map.geocoding.placeholder": "",
|
|
429
432
|
"map.help.addFromFile": "",
|
|
430
433
|
"map.layer.add": "",
|
|
431
434
|
"map.layers.available": "",
|
|
@@ -659,6 +662,7 @@
|
|
|
659
662
|
"search.filters.changeDate": "",
|
|
660
663
|
"search.filters.clear": "",
|
|
661
664
|
"search.filters.contact": "",
|
|
665
|
+
"search.filters.documentStandard": "",
|
|
662
666
|
"search.filters.format": "",
|
|
663
667
|
"search.filters.inspireKeyword": "",
|
|
664
668
|
"search.filters.isSpatial": "",
|
|
@@ -695,18 +699,24 @@
|
|
|
695
699
|
"search.filters.spatialExtent": "",
|
|
696
700
|
"search.filters.spatialExtent.bboxFromFile": "",
|
|
697
701
|
"search.filters.spatialExtent.bboxFromFileDelete": "",
|
|
702
|
+
"search.filters.spatialExtent.bboxFromLocation": "",
|
|
703
|
+
"search.filters.spatialExtent.bboxFromLocationDelete": "",
|
|
698
704
|
"search.filters.spatialExtent.bboxInitial": "",
|
|
699
705
|
"search.filters.spatialExtent.bboxInitialDelete": "",
|
|
700
706
|
"search.filters.spatialExtent.error.fileTooLarge": "",
|
|
701
707
|
"search.filters.spatialExtent.error.invalidFormat": "",
|
|
702
708
|
"search.filters.spatialExtent.error.noGeometry": "",
|
|
709
|
+
"search.filters.spatialExtent.error.outOfBounds": "",
|
|
703
710
|
"search.filters.spatialExtent.error.title": "",
|
|
704
711
|
"search.filters.spatialExtent.helpText": "",
|
|
705
712
|
"search.filters.spatialExtent.import": "",
|
|
713
|
+
"search.filters.spatialExtent.searchLocation": "",
|
|
706
714
|
"search.filters.standard": "",
|
|
707
715
|
"search.filters.summaryLabel.changeDate": "",
|
|
708
716
|
"search.filters.summaryLabel.resourceCreationRevisionDate": "",
|
|
717
|
+
"search.filters.summaryLabel.temporalExtent": "",
|
|
709
718
|
"search.filters.summaryLabel.user": "",
|
|
719
|
+
"search.filters.temporalExtent": "",
|
|
710
720
|
"search.filters.title": "",
|
|
711
721
|
"search.filters.topic": "",
|
|
712
722
|
"search.filters.useSpatialFilter": "",
|
package/translations/pt.json
CHANGED
|
@@ -166,6 +166,8 @@
|
|
|
166
166
|
"editor.record.error.back": "",
|
|
167
167
|
"editor.record.error.explanation": "",
|
|
168
168
|
"editor.record.error.message": "",
|
|
169
|
+
"editor.record.flag.saveError.body": "",
|
|
170
|
+
"editor.record.flag.saveError.title": "",
|
|
169
171
|
"editor.record.form.bottomButtons.comeBackLater": "",
|
|
170
172
|
"editor.record.form.bottomButtons.next": "",
|
|
171
173
|
"editor.record.form.bottomButtons.previous": "",
|
|
@@ -198,6 +200,8 @@
|
|
|
198
200
|
"editor.record.form.field.contacts.placeholder": "",
|
|
199
201
|
"editor.record.form.field.contactsForResource.noContact": "",
|
|
200
202
|
"editor.record.form.field.contactsForResource.placeholder": "",
|
|
203
|
+
"editor.record.form.field.flags.IS_REFERENCE_DATASET": "",
|
|
204
|
+
"editor.record.form.field.hint.flags.IS_REFERENCE_DATASET": "",
|
|
201
205
|
"editor.record.form.field.keywords": "",
|
|
202
206
|
"editor.record.form.field.legalConstraints": "",
|
|
203
207
|
"editor.record.form.field.license": "",
|
|
@@ -372,7 +376,7 @@
|
|
|
372
376
|
"favorite.starToggle.add": "Adicionar aos favoritos",
|
|
373
377
|
"favorite.starToggle.remove": "Remover dos favoritos",
|
|
374
378
|
"feature.catalog.attribute.code": "Código",
|
|
375
|
-
"feature.catalog.attribute.
|
|
379
|
+
"feature.catalog.attribute.description": "Descrição",
|
|
376
380
|
"feature.catalog.attribute.name": "Nome",
|
|
377
381
|
"feature.catalog.attribute.type": "Tipo",
|
|
378
382
|
"feature.catalog.attribute.values": "Valores",
|
|
@@ -425,7 +429,6 @@
|
|
|
425
429
|
"map.add.layer.wms": "",
|
|
426
430
|
"map.addFromFile.placeholder": "",
|
|
427
431
|
"map.dropdown.placeholder": "",
|
|
428
|
-
"map.geocoding.placeholder": "",
|
|
429
432
|
"map.help.addFromFile": "",
|
|
430
433
|
"map.layer.add": "",
|
|
431
434
|
"map.layers.available": "",
|
|
@@ -659,6 +662,7 @@
|
|
|
659
662
|
"search.filters.changeDate": "",
|
|
660
663
|
"search.filters.clear": "",
|
|
661
664
|
"search.filters.contact": "",
|
|
665
|
+
"search.filters.documentStandard": "",
|
|
662
666
|
"search.filters.format": "",
|
|
663
667
|
"search.filters.inspireKeyword": "",
|
|
664
668
|
"search.filters.isSpatial": "",
|
|
@@ -695,18 +699,24 @@
|
|
|
695
699
|
"search.filters.spatialExtent": "",
|
|
696
700
|
"search.filters.spatialExtent.bboxFromFile": "",
|
|
697
701
|
"search.filters.spatialExtent.bboxFromFileDelete": "",
|
|
702
|
+
"search.filters.spatialExtent.bboxFromLocation": "",
|
|
703
|
+
"search.filters.spatialExtent.bboxFromLocationDelete": "",
|
|
698
704
|
"search.filters.spatialExtent.bboxInitial": "",
|
|
699
705
|
"search.filters.spatialExtent.bboxInitialDelete": "",
|
|
700
706
|
"search.filters.spatialExtent.error.fileTooLarge": "",
|
|
701
707
|
"search.filters.spatialExtent.error.invalidFormat": "",
|
|
702
708
|
"search.filters.spatialExtent.error.noGeometry": "",
|
|
709
|
+
"search.filters.spatialExtent.error.outOfBounds": "",
|
|
703
710
|
"search.filters.spatialExtent.error.title": "",
|
|
704
711
|
"search.filters.spatialExtent.helpText": "",
|
|
705
712
|
"search.filters.spatialExtent.import": "",
|
|
713
|
+
"search.filters.spatialExtent.searchLocation": "",
|
|
706
714
|
"search.filters.standard": "",
|
|
707
715
|
"search.filters.summaryLabel.changeDate": "",
|
|
708
716
|
"search.filters.summaryLabel.resourceCreationRevisionDate": "",
|
|
717
|
+
"search.filters.summaryLabel.temporalExtent": "",
|
|
709
718
|
"search.filters.summaryLabel.user": "",
|
|
719
|
+
"search.filters.temporalExtent": "",
|
|
710
720
|
"search.filters.title": "",
|
|
711
721
|
"search.filters.topic": "",
|
|
712
722
|
"search.filters.useSpatialFilter": "",
|
package/translations/sk.json
CHANGED
|
@@ -166,6 +166,8 @@
|
|
|
166
166
|
"editor.record.error.back": "",
|
|
167
167
|
"editor.record.error.explanation": "",
|
|
168
168
|
"editor.record.error.message": "",
|
|
169
|
+
"editor.record.flag.saveError.body": "",
|
|
170
|
+
"editor.record.flag.saveError.title": "",
|
|
169
171
|
"editor.record.form.bottomButtons.comeBackLater": "",
|
|
170
172
|
"editor.record.form.bottomButtons.next": "",
|
|
171
173
|
"editor.record.form.bottomButtons.previous": "",
|
|
@@ -198,6 +200,8 @@
|
|
|
198
200
|
"editor.record.form.field.contacts.placeholder": "",
|
|
199
201
|
"editor.record.form.field.contactsForResource.noContact": "",
|
|
200
202
|
"editor.record.form.field.contactsForResource.placeholder": "",
|
|
203
|
+
"editor.record.form.field.flags.IS_REFERENCE_DATASET": "",
|
|
204
|
+
"editor.record.form.field.hint.flags.IS_REFERENCE_DATASET": "",
|
|
201
205
|
"editor.record.form.field.keywords": "",
|
|
202
206
|
"editor.record.form.field.legalConstraints": "",
|
|
203
207
|
"editor.record.form.field.license": "Licencia",
|
|
@@ -372,7 +376,7 @@
|
|
|
372
376
|
"favorite.starToggle.add": "Pridať k obľúbeným",
|
|
373
377
|
"favorite.starToggle.remove": "Odstrániť z obľúbených",
|
|
374
378
|
"feature.catalog.attribute.code": "Kód",
|
|
375
|
-
"feature.catalog.attribute.
|
|
379
|
+
"feature.catalog.attribute.description": "Popis",
|
|
376
380
|
"feature.catalog.attribute.name": "Názov",
|
|
377
381
|
"feature.catalog.attribute.type": "Typ",
|
|
378
382
|
"feature.catalog.attribute.values": "Hodnoty",
|
|
@@ -425,7 +429,6 @@
|
|
|
425
429
|
"map.add.layer.wms": "Z WMS",
|
|
426
430
|
"map.addFromFile.placeholder": "Kliknite na tlačidlo alebo sem vložte súbor",
|
|
427
431
|
"map.dropdown.placeholder": "",
|
|
428
|
-
"map.geocoding.placeholder": "Nájsť miesto",
|
|
429
432
|
"map.help.addFromFile": "Kliknite na tlačidlo alebo sem vložte súbor, ktorý chcete pridať do mapy (v súčasnosti podporuje iba formát GeoJSON).",
|
|
430
433
|
"map.layer.add": "Pridať",
|
|
431
434
|
"map.layers.available": "Dostupné vrsty",
|
|
@@ -659,6 +662,7 @@
|
|
|
659
662
|
"search.filters.changeDate": "",
|
|
660
663
|
"search.filters.clear": "Obnoviť",
|
|
661
664
|
"search.filters.contact": "Kontakty",
|
|
665
|
+
"search.filters.documentStandard": "",
|
|
662
666
|
"search.filters.format": "Formáty",
|
|
663
667
|
"search.filters.inspireKeyword": "Kľúčové slová INSPIRE",
|
|
664
668
|
"search.filters.isSpatial": "Je priestorový údaj",
|
|
@@ -695,18 +699,24 @@
|
|
|
695
699
|
"search.filters.spatialExtent": "",
|
|
696
700
|
"search.filters.spatialExtent.bboxFromFile": "",
|
|
697
701
|
"search.filters.spatialExtent.bboxFromFileDelete": "",
|
|
702
|
+
"search.filters.spatialExtent.bboxFromLocation": "",
|
|
703
|
+
"search.filters.spatialExtent.bboxFromLocationDelete": "",
|
|
698
704
|
"search.filters.spatialExtent.bboxInitial": "",
|
|
699
705
|
"search.filters.spatialExtent.bboxInitialDelete": "",
|
|
700
706
|
"search.filters.spatialExtent.error.fileTooLarge": "",
|
|
701
707
|
"search.filters.spatialExtent.error.invalidFormat": "",
|
|
702
708
|
"search.filters.spatialExtent.error.noGeometry": "",
|
|
709
|
+
"search.filters.spatialExtent.error.outOfBounds": "",
|
|
703
710
|
"search.filters.spatialExtent.error.title": "",
|
|
704
711
|
"search.filters.spatialExtent.helpText": "",
|
|
705
712
|
"search.filters.spatialExtent.import": "",
|
|
713
|
+
"search.filters.spatialExtent.searchLocation": "",
|
|
706
714
|
"search.filters.standard": "Štandard",
|
|
707
715
|
"search.filters.summaryLabel.changeDate": "",
|
|
708
716
|
"search.filters.summaryLabel.resourceCreationRevisionDate": "",
|
|
717
|
+
"search.filters.summaryLabel.temporalExtent": "",
|
|
709
718
|
"search.filters.summaryLabel.user": "",
|
|
719
|
+
"search.filters.temporalExtent": "",
|
|
710
720
|
"search.filters.title": "Filtrovanie výsledkov",
|
|
711
721
|
"search.filters.topic": "Témy",
|
|
712
722
|
"search.filters.useSpatialFilter": "Najskôr zobraziť záznamy v oblasti záujmu",
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
<gn-ui-search-input
|
|
2
|
-
[(value)]="searchText"
|
|
3
|
-
(valueChange)="onSearchChange($event)"
|
|
4
|
-
(keyup.enter)="onEnterPress()"
|
|
5
|
-
[placeholder]="'map.geocoding.placeholder' | translate"
|
|
6
|
-
>
|
|
7
|
-
</gn-ui-search-input>
|
|
8
|
-
@if (results && results.length) {
|
|
9
|
-
<ul
|
|
10
|
-
class="bg-gray-50 border border-gray-200 w-full mt-2 shadow-sm rounded-lg"
|
|
11
|
-
>
|
|
12
|
-
@for (result of results; track result) {
|
|
13
|
-
<li
|
|
14
|
-
(click)="zoomToLocation(result)"
|
|
15
|
-
class="flex items-center pl-8 pr-4 py-2 border-b border-gray-200 relative cursor-pointer hover:bg-blue-100 hover:text-gray-800 transition duration-300 ease-in-out"
|
|
16
|
-
>
|
|
17
|
-
<svg
|
|
18
|
-
class="stroke-current text-blue-500 absolute w-5 h-5 left-3 top-3"
|
|
19
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
20
|
-
fill="none"
|
|
21
|
-
viewBox="0 0 24 24"
|
|
22
|
-
stroke="currentColor"
|
|
23
|
-
>
|
|
24
|
-
<path
|
|
25
|
-
stroke-linecap="round"
|
|
26
|
-
stroke-linejoin="round"
|
|
27
|
-
stroke-width="2"
|
|
28
|
-
d="M17.657 16.657L13.414 20.9a1.998 1.998 0 01-2.827 0l-4.244-4.243a8 8 0 1111.314 0z"
|
|
29
|
-
/>
|
|
30
|
-
<path
|
|
31
|
-
stroke-linecap="round"
|
|
32
|
-
stroke-linejoin="round"
|
|
33
|
-
stroke-width="2"
|
|
34
|
-
d="M15 11a3 3 0 11-6 0 3 3 0 016 0z"
|
|
35
|
-
/>
|
|
36
|
-
</svg>
|
|
37
|
-
<span class="font-sans font-semibold ml-4">{{ result.label }}</span>
|
|
38
|
-
</li>
|
|
39
|
-
}
|
|
40
|
-
</ul>
|
|
41
|
-
}
|
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
import { Component, OnDestroy, inject } from '@angular/core'
|
|
2
|
-
import { catchError, firstValueFrom, from, Subject, takeUntil } from 'rxjs'
|
|
3
|
-
import { debounceTime, switchMap } from 'rxjs/operators'
|
|
4
|
-
import { GeocodingService } from '../geocoding.service'
|
|
5
|
-
import { MapFacade } from '../+state/map.facade'
|
|
6
|
-
|
|
7
|
-
import { SearchInputComponent } from '../../../../../../libs/ui/inputs/src'
|
|
8
|
-
import { TranslatePipe } from '@ngx-translate/core'
|
|
9
|
-
import { MapContextView } from '@geospatial-sdk/core'
|
|
10
|
-
|
|
11
|
-
@Component({
|
|
12
|
-
selector: 'gn-ui-geocoding',
|
|
13
|
-
templateUrl: './geocoding.component.html',
|
|
14
|
-
styleUrls: ['./geocoding.component.css'],
|
|
15
|
-
standalone: true,
|
|
16
|
-
imports: [SearchInputComponent, TranslatePipe],
|
|
17
|
-
})
|
|
18
|
-
export class GeocodingComponent implements OnDestroy {
|
|
19
|
-
private mapFacade = inject(MapFacade)
|
|
20
|
-
private geocodingService = inject(GeocodingService)
|
|
21
|
-
|
|
22
|
-
searchText = ''
|
|
23
|
-
results: any[] = []
|
|
24
|
-
searchTextChanged = new Subject<string>()
|
|
25
|
-
destroy$ = new Subject<void>()
|
|
26
|
-
errorMessage: string | null = null
|
|
27
|
-
|
|
28
|
-
constructor() {
|
|
29
|
-
this.searchTextChanged
|
|
30
|
-
.pipe(
|
|
31
|
-
debounceTime(300),
|
|
32
|
-
switchMap((searchText) => {
|
|
33
|
-
return from(this.geocodingService.query(searchText)).pipe(
|
|
34
|
-
catchError((error) => {
|
|
35
|
-
this.errorMessage =
|
|
36
|
-
'An error occurred while searching. Please try again.'
|
|
37
|
-
console.error(error)
|
|
38
|
-
return []
|
|
39
|
-
})
|
|
40
|
-
)
|
|
41
|
-
}),
|
|
42
|
-
takeUntil(this.destroy$)
|
|
43
|
-
)
|
|
44
|
-
.subscribe((results) => {
|
|
45
|
-
this.results = results
|
|
46
|
-
})
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
ngOnDestroy() {
|
|
50
|
-
this.destroy$.next()
|
|
51
|
-
this.destroy$.complete()
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
onSearchChange(searchText: string) {
|
|
55
|
-
if (!searchText) {
|
|
56
|
-
this.clearSearch()
|
|
57
|
-
return
|
|
58
|
-
} else {
|
|
59
|
-
this.searchTextChanged.next(searchText)
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
clearSearch() {
|
|
64
|
-
this.searchText = ''
|
|
65
|
-
this.results = []
|
|
66
|
-
this.errorMessage = null
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
async zoomToLocation(result: any) {
|
|
70
|
-
const geometry = result.geom
|
|
71
|
-
|
|
72
|
-
if (geometry.type === 'Point') {
|
|
73
|
-
await this.zoomToPoint(geometry.coordinates)
|
|
74
|
-
} else if (geometry.type === 'Polygon') {
|
|
75
|
-
await this.zoomToPolygon(geometry.coordinates)
|
|
76
|
-
} else {
|
|
77
|
-
console.error(`Unsupported geometry type: ${geometry.type}`)
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
async zoomToPoint(pointCoords: [number, number]) {
|
|
82
|
-
const context = await firstValueFrom(this.mapFacade.context$)
|
|
83
|
-
const view: MapContextView = {
|
|
84
|
-
center: pointCoords,
|
|
85
|
-
zoom: 10,
|
|
86
|
-
}
|
|
87
|
-
this.mapFacade.applyContext({
|
|
88
|
-
...context,
|
|
89
|
-
view,
|
|
90
|
-
})
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
async zoomToPolygon(polygonCoords: [[number, number][]]) {
|
|
94
|
-
const context = await firstValueFrom(this.mapFacade.context$)
|
|
95
|
-
const view: MapContextView = {
|
|
96
|
-
geometry: {
|
|
97
|
-
type: 'Polygon',
|
|
98
|
-
coordinates: polygonCoords,
|
|
99
|
-
},
|
|
100
|
-
}
|
|
101
|
-
this.mapFacade.applyContext({
|
|
102
|
-
...context,
|
|
103
|
-
view,
|
|
104
|
-
})
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
onEnterPress() {
|
|
108
|
-
if (this.results && this.results.length > 0) {
|
|
109
|
-
this.zoomToLocation(this.results[0])
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
}
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import { Injectable, InjectionToken, inject } from '@angular/core'
|
|
2
|
-
import {
|
|
3
|
-
queryGeoadmin,
|
|
4
|
-
GeoadminOptions,
|
|
5
|
-
GeocodingResult,
|
|
6
|
-
queryGeonames,
|
|
7
|
-
GeonamesOptions,
|
|
8
|
-
DataGouvFrOptions,
|
|
9
|
-
queryDataGouvFr,
|
|
10
|
-
} from '@geospatial-sdk/geocoding'
|
|
11
|
-
import { from, Observable, throwError } from 'rxjs'
|
|
12
|
-
import { catchError } from 'rxjs/operators'
|
|
13
|
-
|
|
14
|
-
type GeoadminGeocodingProvider = ['geoadmin', GeoadminOptions]
|
|
15
|
-
type GeonamesGeocodingProvider = ['geonames', GeonamesOptions]
|
|
16
|
-
type DataGouvFrGeocodingProvider = ['data-gouv-fr', DataGouvFrOptions]
|
|
17
|
-
export type GeocodingProvider =
|
|
18
|
-
| GeoadminGeocodingProvider
|
|
19
|
-
| GeonamesGeocodingProvider
|
|
20
|
-
| DataGouvFrGeocodingProvider
|
|
21
|
-
|
|
22
|
-
export const GEOCODING_PROVIDER = new InjectionToken<GeocodingProvider>(
|
|
23
|
-
'geocoding-provider'
|
|
24
|
-
)
|
|
25
|
-
|
|
26
|
-
@Injectable({
|
|
27
|
-
providedIn: 'root',
|
|
28
|
-
})
|
|
29
|
-
export class GeocodingService {
|
|
30
|
-
private provider = inject<GeocodingProvider>(GEOCODING_PROVIDER)
|
|
31
|
-
|
|
32
|
-
query(text: string): Observable<GeocodingResult[]> {
|
|
33
|
-
let queryObservable: Observable<GeocodingResult[]>
|
|
34
|
-
switch (this.provider[0]) {
|
|
35
|
-
case 'geoadmin':
|
|
36
|
-
queryObservable = from(
|
|
37
|
-
queryGeoadmin(text, this.provider[1] as GeoadminOptions)
|
|
38
|
-
)
|
|
39
|
-
break
|
|
40
|
-
case 'geonames':
|
|
41
|
-
queryObservable = from(
|
|
42
|
-
queryGeonames(text, this.provider[1] as GeonamesOptions)
|
|
43
|
-
)
|
|
44
|
-
break
|
|
45
|
-
case 'data-gouv-fr':
|
|
46
|
-
queryObservable = from(
|
|
47
|
-
queryDataGouvFr(text, this.provider[1] as DataGouvFrOptions)
|
|
48
|
-
)
|
|
49
|
-
break
|
|
50
|
-
default:
|
|
51
|
-
return throwError(
|
|
52
|
-
() => new Error(`Unsupported geocoding provider: ${this.provider[0]}`)
|
|
53
|
-
)
|
|
54
|
-
}
|
|
55
|
-
return queryObservable.pipe(catchError((error) => throwError(error)))
|
|
56
|
-
}
|
|
57
|
-
}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { Circle, Fill, Stroke, Style } from 'ol/style.js'
|
|
2
|
-
|
|
3
|
-
const colorPrimary = 'blue'
|
|
4
|
-
const colorSecondary = 'red'
|
|
5
|
-
const colorStroke = 'white'
|
|
6
|
-
|
|
7
|
-
export const defaultMapStyleFixture = (): Style =>
|
|
8
|
-
new Style({
|
|
9
|
-
image: new Circle({
|
|
10
|
-
fill: new Fill({
|
|
11
|
-
color: colorPrimary,
|
|
12
|
-
}),
|
|
13
|
-
stroke: new Stroke({
|
|
14
|
-
color: colorStroke,
|
|
15
|
-
width: 2,
|
|
16
|
-
}),
|
|
17
|
-
radius: 5,
|
|
18
|
-
}),
|
|
19
|
-
fill: new Fill({
|
|
20
|
-
color: 'rgba(0,0,255,0.25)',
|
|
21
|
-
}),
|
|
22
|
-
stroke: new Stroke({
|
|
23
|
-
color: colorStroke,
|
|
24
|
-
width: 2,
|
|
25
|
-
}),
|
|
26
|
-
})
|
|
27
|
-
|
|
28
|
-
export const defaultMapStyleHlFixture = (): Style =>
|
|
29
|
-
new Style({
|
|
30
|
-
image: new Circle({
|
|
31
|
-
fill: new Fill({
|
|
32
|
-
color: colorSecondary,
|
|
33
|
-
}),
|
|
34
|
-
stroke: new Stroke({
|
|
35
|
-
color: colorStroke,
|
|
36
|
-
width: 3,
|
|
37
|
-
}),
|
|
38
|
-
radius: 6,
|
|
39
|
-
}),
|
|
40
|
-
fill: new Fill({
|
|
41
|
-
color: 'rgba(255,0,0,0.25)',
|
|
42
|
-
}),
|
|
43
|
-
stroke: new Stroke({
|
|
44
|
-
color: colorSecondary,
|
|
45
|
-
width: 3,
|
|
46
|
-
}),
|
|
47
|
-
})
|