geonetwork-ui 2.5.0-dev.b51c2cb0f → 2.5.0-dev.caf47b863
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.mjs +11 -1
- package/esm2022/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.mjs +1 -1
- package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.mjs +34 -28
- package/esm2022/libs/api/repository/src/lib/gn4/gn4-repository.mjs +22 -2
- package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +1 -1
- package/esm2022/libs/common/domain/src/lib/repository/records-repository.interface.mjs +1 -1
- package/esm2022/libs/feature/dataviz/src/lib/chart-view/chart-view.component.mjs +7 -4
- package/esm2022/libs/feature/dataviz/src/lib/service/data.service.mjs +24 -14
- package/esm2022/libs/feature/dataviz/src/lib/table-view/table-view.component.mjs +7 -4
- package/esm2022/libs/feature/editor/src/lib/components/constraint-card/constraint-card.component.mjs +3 -3
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.mjs +2 -1
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.mjs +2 -2
- package/esm2022/libs/feature/editor/src/lib/fields.config.mjs +2 -2
- package/esm2022/libs/feature/record/src/lib/data-view/data-view.component.mjs +4 -3
- package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +3 -2
- package/esm2022/libs/feature/record/src/lib/state/mdview.actions.mjs +4 -1
- package/esm2022/libs/feature/record/src/lib/state/mdview.effects.mjs +7 -2
- package/esm2022/libs/feature/record/src/lib/state/mdview.facade.mjs +9 -1
- package/esm2022/libs/feature/record/src/lib/state/mdview.reducer.mjs +19 -1
- package/esm2022/libs/feature/record/src/lib/state/mdview.selectors.mjs +6 -1
- package/esm2022/libs/feature/search/src/lib/results-table/results-table-container.component.mjs +1 -1
- package/esm2022/libs/feature/search/src/lib/utils/service/fields.mjs +46 -1
- package/esm2022/libs/feature/search/src/lib/utils/service/fields.service.mjs +3 -2
- package/esm2022/libs/ui/elements/src/index.mjs +2 -1
- package/esm2022/libs/ui/elements/src/lib/application-banner/application-banner.component.mjs +78 -0
- package/esm2022/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.mjs +3 -3
- package/esm2022/libs/ui/elements/src/lib/record-api-form/record-api-form.component.mjs +2 -1
- package/esm2022/libs/ui/elements/src/lib/ui-elements.module.mjs +10 -4
- package/esm2022/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.mjs +7 -2
- package/esm2022/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.mjs +14 -4
- package/esm2022/libs/ui/search/src/lib/results-table/results-table.component.mjs +10 -3
- package/esm2022/libs/util/data-fetcher/src/lib/data-fetcher.mjs +5 -4
- package/esm2022/libs/util/data-fetcher/src/lib/readers/base-cache.mjs +12 -0
- package/esm2022/libs/util/data-fetcher/src/lib/readers/base-file.mjs +3 -3
- package/esm2022/libs/util/data-fetcher/src/lib/readers/base.mjs +1 -1
- package/esm2022/libs/util/data-fetcher/src/lib/readers/csv.mjs +2 -2
- package/esm2022/libs/util/data-fetcher/src/lib/readers/excel.mjs +2 -2
- package/esm2022/libs/util/data-fetcher/src/lib/readers/geojson.mjs +2 -2
- package/esm2022/libs/util/data-fetcher/src/lib/readers/gml.mjs +5 -3
- package/esm2022/libs/util/data-fetcher/src/lib/readers/json.mjs +2 -2
- package/esm2022/libs/util/data-fetcher/src/lib/readers/wfs.mjs +19 -11
- package/esm2022/libs/util/data-fetcher/src/lib/utils.mjs +9 -7
- package/esm2022/translations/de.json +3 -4
- package/esm2022/translations/en.json +4 -13
- package/esm2022/translations/es.json +3 -4
- package/esm2022/translations/fr.json +15 -16
- package/esm2022/translations/it.json +20 -20
- package/esm2022/translations/nl.json +3 -4
- package/esm2022/translations/pt.json +3 -4
- package/fesm2022/geonetwork-ui.mjs +469 -218
- package/fesm2022/geonetwork-ui.mjs.map +1 -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/types/metadata.model.d.ts +3 -0
- package/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts +1 -0
- 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 -1
- package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts.map +1 -1
- package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +6 -0
- package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
- package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts +2 -1
- package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts.map +1 -1
- package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts +2 -1
- package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts.map +1 -1
- package/libs/feature/dataviz/src/lib/service/data.service.d.ts +2 -2
- package/libs/feature/dataviz/src/lib/service/data.service.d.ts.map +1 -1
- package/libs/feature/dataviz/src/lib/table-view/table-view.component.d.ts +2 -1
- package/libs/feature/dataviz/src/lib/table-view/table-view.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.d.ts.map +1 -1
- package/libs/feature/record/src/lib/data-view/data-view.component.d.ts +1 -0
- package/libs/feature/record/src/lib/data-view/data-view.component.d.ts.map +1 -1
- package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
- package/libs/feature/record/src/lib/state/mdview.actions.d.ts +16 -1
- package/libs/feature/record/src/lib/state/mdview.actions.d.ts.map +1 -1
- package/libs/feature/record/src/lib/state/mdview.effects.d.ts +5 -0
- package/libs/feature/record/src/lib/state/mdview.effects.d.ts.map +1 -1
- package/libs/feature/record/src/lib/state/mdview.facade.d.ts +2 -0
- package/libs/feature/record/src/lib/state/mdview.facade.d.ts.map +1 -1
- package/libs/feature/record/src/lib/state/mdview.reducer.d.ts +4 -1
- package/libs/feature/record/src/lib/state/mdview.reducer.d.ts.map +1 -1
- package/libs/feature/record/src/lib/state/mdview.selectors.d.ts +2 -0
- package/libs/feature/record/src/lib/state/mdview.selectors.d.ts.map +1 -1
- package/libs/feature/search/src/lib/utils/service/fields.d.ts +10 -0
- 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/elements/src/index.d.ts +1 -0
- package/libs/ui/elements/src/index.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/application-banner/application-banner.component.d.ts +16 -0
- package/libs/ui/elements/src/lib/application-banner/application-banner.component.d.ts.map +1 -0
- package/libs/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/ui-elements.module.d.ts +2 -1
- package/libs/ui/elements/src/lib/ui-elements.module.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.d.ts.map +1 -1
- package/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.d.ts +4 -2
- package/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.d.ts.map +1 -1
- package/libs/ui/search/src/lib/results-table/results-table.component.d.ts +3 -1
- package/libs/ui/search/src/lib/results-table/results-table.component.d.ts.map +1 -1
- package/libs/util/data-fetcher/src/lib/data-fetcher.d.ts +2 -2
- package/libs/util/data-fetcher/src/lib/data-fetcher.d.ts.map +1 -1
- package/libs/util/data-fetcher/src/lib/readers/base-cache.d.ts +8 -0
- package/libs/util/data-fetcher/src/lib/readers/base-cache.d.ts.map +1 -0
- package/libs/util/data-fetcher/src/lib/readers/base-file.d.ts +2 -2
- package/libs/util/data-fetcher/src/lib/readers/base-file.d.ts.map +1 -1
- package/libs/util/data-fetcher/src/lib/readers/base.d.ts +2 -2
- package/libs/util/data-fetcher/src/lib/readers/base.d.ts.map +1 -1
- package/libs/util/data-fetcher/src/lib/readers/gml.d.ts +5 -3
- package/libs/util/data-fetcher/src/lib/readers/gml.d.ts.map +1 -1
- package/libs/util/data-fetcher/src/lib/readers/wfs.d.ts +7 -4
- package/libs/util/data-fetcher/src/lib/readers/wfs.d.ts.map +1 -1
- package/libs/util/data-fetcher/src/lib/utils.d.ts +2 -2
- package/libs/util/data-fetcher/src/lib/utils.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +25 -0
- package/src/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.ts +4 -0
- package/src/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.ts +36 -27
- package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +41 -2
- package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +3 -1
- package/src/libs/common/domain/src/lib/repository/records-repository.interface.ts +4 -1
- package/src/libs/common/fixtures/src/lib/records.fixtures.ts +75 -0
- package/src/libs/feature/dataviz/src/lib/chart-view/chart-view.component.ts +4 -1
- package/src/libs/feature/dataviz/src/lib/service/data.service.ts +43 -20
- package/src/libs/feature/dataviz/src/lib/table-view/table-view.component.ts +2 -1
- package/src/libs/feature/editor/src/lib/components/constraint-card/constraint-card.component.html +1 -1
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.ts +1 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.ts +1 -1
- package/src/libs/feature/editor/src/lib/fields.config.ts +1 -1
- package/src/libs/feature/record/src/lib/data-view/data-view.component.html +2 -0
- package/src/libs/feature/record/src/lib/data-view/data-view.component.ts +3 -0
- package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +2 -1
- package/src/libs/feature/record/src/lib/state/mdview.actions.ts +16 -0
- package/src/libs/feature/record/src/lib/state/mdview.effects.ts +21 -2
- package/src/libs/feature/record/src/lib/state/mdview.facade.ts +15 -0
- package/src/libs/feature/record/src/lib/state/mdview.reducer.ts +30 -1
- package/src/libs/feature/record/src/lib/state/mdview.selectors.ts +12 -0
- package/src/libs/feature/search/src/lib/utils/service/fields.service.ts +2 -0
- package/src/libs/feature/search/src/lib/utils/service/fields.ts +55 -0
- package/src/libs/ui/elements/src/index.ts +1 -0
- package/src/libs/ui/elements/src/lib/application-banner/application-banner.component.css +0 -0
- package/src/libs/ui/elements/src/lib/application-banner/application-banner.component.html +25 -0
- package/src/libs/ui/elements/src/lib/application-banner/application-banner.component.ts +70 -0
- package/src/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.ts +2 -2
- package/src/libs/ui/elements/src/lib/record-api-form/record-api-form.component.ts +2 -0
- package/src/libs/ui/elements/src/lib/ui-elements.module.ts +3 -0
- package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.ts +6 -0
- package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.html +37 -1
- package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.ts +8 -2
- package/src/libs/ui/search/src/lib/results-table/results-table.component.html +2 -0
- package/src/libs/ui/search/src/lib/results-table/results-table.component.ts +6 -0
- package/src/libs/util/data-fetcher/src/lib/data-fetcher.ts +13 -4
- package/src/libs/util/data-fetcher/src/lib/readers/base-cache.ts +14 -0
- package/src/libs/util/data-fetcher/src/lib/readers/base-file.ts +2 -1
- package/src/libs/util/data-fetcher/src/lib/readers/base.ts +2 -2
- package/src/libs/util/data-fetcher/src/lib/readers/csv.ts +1 -1
- package/src/libs/util/data-fetcher/src/lib/readers/excel.ts +1 -1
- package/src/libs/util/data-fetcher/src/lib/readers/geojson.ts +1 -1
- package/src/libs/util/data-fetcher/src/lib/readers/gml.ts +7 -7
- package/src/libs/util/data-fetcher/src/lib/readers/json.ts +1 -1
- package/src/libs/util/data-fetcher/src/lib/readers/wfs.ts +34 -11
- package/src/libs/util/data-fetcher/src/lib/utils.ts +36 -32
- package/translations/de.json +3 -4
- package/translations/en.json +4 -13
- package/translations/es.json +3 -4
- package/translations/fr.json +15 -16
- package/translations/it.json +20 -20
- package/translations/nl.json +3 -4
- package/translations/pt.json +3 -4
- package/translations/sk.json +3 -4
|
@@ -27,7 +27,7 @@ import EmblaCarousel from 'embla-carousel';
|
|
|
27
27
|
import * as i2$2 from '@ng-icons/core';
|
|
28
28
|
import { provideIcons, NgIcon, NgIconComponent, provideNgIconsConfig, NgIconsModule } from '@ng-icons/core';
|
|
29
29
|
import { iconoirNavArrowRight, iconoirNavArrowLeft, iconoirNavArrowDown, iconoirNavArrowUp, iconoirSearch, iconoirCalendar, iconoirLink, iconoirArrowUp, iconoirCloudUpload, iconoirFramePlusIn, iconoirMediaImage, iconoirMediaImageXmark, iconoirBin, iconoirPlus, iconoirUser, iconoirLock, iconoirImport, iconoirLightBulbOn, iconoirArrowLeft, iconoirAttachment, iconoirRefresh } from '@ng-icons/iconoir';
|
|
30
|
-
import { matExpandMore, matExpandLess, matAdd, matRemove, matClose, matContentCopy, matSearch, matStar, matStarBorder, matChevronLeft, matChevronRight, matArrowForward, matArrowBack, matCheck, matWarningAmber, matMoreHoriz, matFace, matQuestionMark, matMoodBad, matZoomOutMap, matOpenInNew, matMailOutline, matPersonOutline, matCheckCircleOutline, matMoreVert, matCorporateFare } from '@ng-icons/material-icons/baseline';
|
|
30
|
+
import { matExpandMore, matExpandLess, matAdd, matRemove, matClose, matContentCopy, matSearch, matStar, matStarBorder, matChevronLeft, matChevronRight, matArrowForward, matArrowBack, matCheck, matWarningAmber, matMoreHoriz, matFace, matQuestionMark, matMoodBad, matZoomOutMap, matOpenInNew, matMailOutline, matPersonOutline, matCheckCircleOutline, matWarning, matMoreVert, matCorporateFare } from '@ng-icons/material-icons/baseline';
|
|
31
31
|
import * as i1$4 from '@angular/material/tooltip';
|
|
32
32
|
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
33
33
|
import { moveItemInArray, CdkDropList, CdkDrag, CdkDragHandle } from '@angular/cdk/drag-drop';
|
|
@@ -18621,8 +18621,6 @@ var de = {
|
|
|
18621
18621
|
"chart.type.lineSmooth": "Geglättes Liniendiagramm",
|
|
18622
18622
|
"chart.type.pie": "Kreisdiagramm",
|
|
18623
18623
|
"dashboard.catalog.allRecords": "Metadatenkatalog",
|
|
18624
|
-
"dashboard.catalog.contacts": "Kontakte",
|
|
18625
|
-
"dashboard.catalog.thesaurus": "Thesaurus",
|
|
18626
18624
|
"dashboard.createRecord": "Neuer Eintrag",
|
|
18627
18625
|
"dashboard.importRecord": "",
|
|
18628
18626
|
"dashboard.importRecord.importExternal": "",
|
|
@@ -18635,7 +18633,6 @@ var de = {
|
|
|
18635
18633
|
"dashboard.records.myDraft": "Meine Entwürfe",
|
|
18636
18634
|
"dashboard.records.myRecords": "Meine Datensätze",
|
|
18637
18635
|
"dashboard.records.search": "Suche nach \"{searchText}\"",
|
|
18638
|
-
"dashboard.records.templates": "Vorlagen",
|
|
18639
18636
|
"dashboard.records.userDetail": "Name",
|
|
18640
18637
|
"dashboard.records.userEmail": "E-Mail",
|
|
18641
18638
|
"dashboard.records.username": "Benutzername",
|
|
@@ -19026,6 +19023,7 @@ var de = {
|
|
|
19026
19023
|
"record.action.download": "Herunterladen",
|
|
19027
19024
|
"record.action.duplicate": "",
|
|
19028
19025
|
"record.action.duplicating": "",
|
|
19026
|
+
"record.action.rollback": "",
|
|
19029
19027
|
"record.action.view": "Anzeigen",
|
|
19030
19028
|
"record.externalViewer.open": "In externem Kartenviewer öffnen",
|
|
19031
19029
|
"record.feature.limit": "Die Ressource enthält mehr als {count} Features und kann hier nicht angezeigt werden.",
|
|
@@ -19148,6 +19146,8 @@ var de = {
|
|
|
19148
19146
|
"search.error.recordNotFound": "Der Datensatz mit der Kennung \"{ id }\" konnte nicht gefunden werden.",
|
|
19149
19147
|
"search.field.any.placeholder": "Suche Datensätze ...",
|
|
19150
19148
|
"search.field.sortBy": "Sortieren nach:",
|
|
19149
|
+
"search.filters.availableServices.download": "",
|
|
19150
|
+
"search.filters.availableServices.view": "",
|
|
19151
19151
|
"search.filters.changeDate": "Letzte Aktualisierung",
|
|
19152
19152
|
"search.filters.clear": "Zurücksetzen",
|
|
19153
19153
|
"search.filters.contact": "Kontakte",
|
|
@@ -19203,7 +19203,6 @@ var de = {
|
|
|
19203
19203
|
"tooltip.url.open": "URL öffnen",
|
|
19204
19204
|
"ui.readLess": "Weniger lesen",
|
|
19205
19205
|
"ui.readMore": "Weiterlesen",
|
|
19206
|
-
"wfs.aggregations.notsupported": "",
|
|
19207
19206
|
"wfs.feature.limit": "Zu viele Features, um den WFS-Layer anzuzeigen!",
|
|
19208
19207
|
"wfs.featuretype.notfound": "Kein passender Feature-Typ wurde im Dienst gefunden",
|
|
19209
19208
|
"wfs.geojsongml.notsupported": "Dieser Dienst unterstützt das GeoJSON- oder GML-Format nicht",
|
|
@@ -19238,8 +19237,6 @@ var en = {
|
|
|
19238
19237
|
"chart.type.lineSmooth": "smooth line chart",
|
|
19239
19238
|
"chart.type.pie": "pie chart",
|
|
19240
19239
|
"dashboard.catalog.allRecords": "Datasets",
|
|
19241
|
-
"dashboard.catalog.contacts": "Contacts",
|
|
19242
|
-
"dashboard.catalog.thesaurus": "Thesaurus",
|
|
19243
19240
|
"dashboard.createRecord": "New dataset",
|
|
19244
19241
|
"dashboard.importRecord": "Import",
|
|
19245
19242
|
"dashboard.importRecord.importExternal": "Import an external file",
|
|
@@ -19252,21 +19249,12 @@ var en = {
|
|
|
19252
19249
|
"dashboard.records.myDraft": "My drafts",
|
|
19253
19250
|
"dashboard.records.myRecords": "My datasets",
|
|
19254
19251
|
"dashboard.records.search": "Search for \"{searchText}\"",
|
|
19255
|
-
"dashboard.records.templates": "Templates",
|
|
19256
19252
|
"dashboard.records.userDetail": "Name",
|
|
19257
19253
|
"dashboard.records.userEmail": "Email",
|
|
19258
19254
|
"dashboard.records.username": "Username",
|
|
19259
19255
|
"dashboard.records.users": "{count, plural, =1{user} other{users}}",
|
|
19260
19256
|
"datafeeder.analysisProgressBar.illustration.fileFormatDetection": "File format \n detection",
|
|
19261
|
-
"datafeeder.
|
|
19262
|
-
"datafeeder.analysisProgressBar.illustration.samplingData": "Sampling \n data",
|
|
19263
|
-
"datafeeder.analysisProgressBar.subtitle": "The analysis may take several minutes, please wait.",
|
|
19264
|
-
"datafeeder.analysisProgressBar.title": "Analysis in progress",
|
|
19265
|
-
"datafeeder.datasetValidation.datasetInformation": "The provided dataset contains {number} entities",
|
|
19266
|
-
"datafeeder.datasetValidation.submitButton": "OK, my data is correct",
|
|
19267
|
-
"datafeeder.datasetValidation.title": "Make sure your data is correct",
|
|
19268
|
-
"datafeeder.datasetValidation.unknown": " - ",
|
|
19269
|
-
"datafeeder.datasetValidationCsv.explicitLineNumbers": "*The table must display the first 5 lines (excluding the header)<br>If this is not the case, check that the file is correctly formatted",
|
|
19257
|
+
"datafeeder.anaeditor.record.saveStatus.recordNotPublishedasetValidationCsv.explicitLineNumbers": "*The table must display the first 5 lines (excluding the header)<br>If this is not the case, check that the file is correctly formatted",
|
|
19270
19258
|
"datafeeder.datasetValidationCsv.lineNumbers": "Sample of the first 5 lines* of the dataset:",
|
|
19271
19259
|
"datafeeder.form.abstract": "How would you describe your dataset?",
|
|
19272
19260
|
"datafeeder.form.datepicker": "Do you know when the dataset was created?",
|
|
@@ -19643,6 +19631,7 @@ var en = {
|
|
|
19643
19631
|
"record.action.download": "Download",
|
|
19644
19632
|
"record.action.duplicate": "Duplicate",
|
|
19645
19633
|
"record.action.duplicating": "Duplicating...",
|
|
19634
|
+
"record.action.rollback": "Rollback",
|
|
19646
19635
|
"record.action.view": "View",
|
|
19647
19636
|
"record.externalViewer.open": "Open in the external map viewer",
|
|
19648
19637
|
"record.feature.limit": "The resource contains more than {count} features and cannot be displayed here.",
|
|
@@ -19765,6 +19754,8 @@ var en = {
|
|
|
19765
19754
|
"search.error.recordNotFound": "The dataset with identifier \"{ id }\" could not be found.",
|
|
19766
19755
|
"search.field.any.placeholder": "Search datasets ...",
|
|
19767
19756
|
"search.field.sortBy": "Sort by:",
|
|
19757
|
+
"search.filters.availableServices.download": "",
|
|
19758
|
+
"search.filters.availableServices.view": "",
|
|
19768
19759
|
"search.filters.changeDate": "Updated",
|
|
19769
19760
|
"search.filters.clear": "Reset",
|
|
19770
19761
|
"search.filters.contact": "Contacts",
|
|
@@ -19820,7 +19811,6 @@ var en = {
|
|
|
19820
19811
|
"tooltip.url.open": "Open URL",
|
|
19821
19812
|
"ui.readLess": "Read less",
|
|
19822
19813
|
"ui.readMore": "Read more",
|
|
19823
|
-
"wfs.aggregations.notsupported": "Aggregations are currently not supported for WFS services",
|
|
19824
19814
|
"wfs.feature.limit": "Too many features to display the WFS layer!",
|
|
19825
19815
|
"wfs.featuretype.notfound": "No matching feature type was found in the service",
|
|
19826
19816
|
"wfs.geojsongml.notsupported": "This service does not support the GeoJSON or GML format",
|
|
@@ -19855,8 +19845,6 @@ var es = {
|
|
|
19855
19845
|
"chart.type.lineSmooth": "gráfico de líneas suave",
|
|
19856
19846
|
"chart.type.pie": "gráfico circular",
|
|
19857
19847
|
"dashboard.catalog.allRecords": "",
|
|
19858
|
-
"dashboard.catalog.contacts": "",
|
|
19859
|
-
"dashboard.catalog.thesaurus": "",
|
|
19860
19848
|
"dashboard.createRecord": "",
|
|
19861
19849
|
"dashboard.importRecord": "",
|
|
19862
19850
|
"dashboard.importRecord.importExternal": "",
|
|
@@ -19869,7 +19857,6 @@ var es = {
|
|
|
19869
19857
|
"dashboard.records.myDraft": "Mis borradores",
|
|
19870
19858
|
"dashboard.records.myRecords": "Mis Registros",
|
|
19871
19859
|
"dashboard.records.search": "Buscar \"{searchText}\"",
|
|
19872
|
-
"dashboard.records.templates": "",
|
|
19873
19860
|
"dashboard.records.userDetail": "",
|
|
19874
19861
|
"dashboard.records.userEmail": "",
|
|
19875
19862
|
"dashboard.records.username": "",
|
|
@@ -20260,6 +20247,7 @@ var es = {
|
|
|
20260
20247
|
"record.action.download": "",
|
|
20261
20248
|
"record.action.duplicate": "",
|
|
20262
20249
|
"record.action.duplicating": "",
|
|
20250
|
+
"record.action.rollback": "",
|
|
20263
20251
|
"record.action.view": "",
|
|
20264
20252
|
"record.externalViewer.open": "",
|
|
20265
20253
|
"record.feature.limit": "",
|
|
@@ -20382,6 +20370,8 @@ var es = {
|
|
|
20382
20370
|
"search.error.recordNotFound": "",
|
|
20383
20371
|
"search.field.any.placeholder": "",
|
|
20384
20372
|
"search.field.sortBy": "",
|
|
20373
|
+
"search.filters.availableServices.download": "",
|
|
20374
|
+
"search.filters.availableServices.view": "",
|
|
20385
20375
|
"search.filters.changeDate": "Última actualización",
|
|
20386
20376
|
"search.filters.clear": "",
|
|
20387
20377
|
"search.filters.contact": "",
|
|
@@ -20437,7 +20427,6 @@ var es = {
|
|
|
20437
20427
|
"tooltip.url.open": "",
|
|
20438
20428
|
"ui.readLess": "",
|
|
20439
20429
|
"ui.readMore": "",
|
|
20440
|
-
"wfs.aggregations.notsupported": "",
|
|
20441
20430
|
"wfs.feature.limit": "",
|
|
20442
20431
|
"wfs.featuretype.notfound": "",
|
|
20443
20432
|
"wfs.geojsongml.notsupported": "",
|
|
@@ -20472,8 +20461,6 @@ var fr = {
|
|
|
20472
20461
|
"chart.type.lineSmooth": "ligne lisse",
|
|
20473
20462
|
"chart.type.pie": "camembert",
|
|
20474
20463
|
"dashboard.catalog.allRecords": "Jeux de données",
|
|
20475
|
-
"dashboard.catalog.contacts": "Annuaire",
|
|
20476
|
-
"dashboard.catalog.thesaurus": "Thésaurus",
|
|
20477
20464
|
"dashboard.createRecord": "Nouveau jeu de données",
|
|
20478
20465
|
"dashboard.importRecord": "Importer",
|
|
20479
20466
|
"dashboard.importRecord.importExternal": "Importer un jeu de données externe",
|
|
@@ -20486,7 +20473,6 @@ var fr = {
|
|
|
20486
20473
|
"dashboard.records.myDraft": "Mes brouillons",
|
|
20487
20474
|
"dashboard.records.myRecords": "Mes jeux de données",
|
|
20488
20475
|
"dashboard.records.search": "Résultats pour \"{searchText}\"",
|
|
20489
|
-
"dashboard.records.templates": "Modèles pré-remplis",
|
|
20490
20476
|
"dashboard.records.userDetail": "Nom",
|
|
20491
20477
|
"dashboard.records.userEmail": "Email",
|
|
20492
20478
|
"dashboard.records.username": "Nom d'utilisateur",
|
|
@@ -20613,7 +20599,7 @@ var fr = {
|
|
|
20613
20599
|
"domain.contact.role.point_of_contact": "Point de contact",
|
|
20614
20600
|
"domain.contact.role.principal_investigator": "Chercheur principal",
|
|
20615
20601
|
"domain.contact.role.processor": "Processeur",
|
|
20616
|
-
"domain.contact.role.publisher": "
|
|
20602
|
+
"domain.contact.role.publisher": "Producteur",
|
|
20617
20603
|
"domain.contact.role.resource_provider": "Fournisseur",
|
|
20618
20604
|
"domain.contact.role.rights_holder": "Détenteur des droits",
|
|
20619
20605
|
"domain.contact.role.sponsor": "Sponsor",
|
|
@@ -20677,7 +20663,7 @@ var fr = {
|
|
|
20677
20663
|
"editor.record.form.constraint.otherConstraints": "Autres contraintes",
|
|
20678
20664
|
"editor.record.form.constraint.securityConstraints": "Contraintes de sécurité",
|
|
20679
20665
|
"editor.record.form.draft.updateAlert": "Depuis la création de ce brouillon, ce jeu de données a été modifié le { date } par { user }. Publier votre version peut supprimer ses modifications. Pour éviter cela, vous pouvez annuler vos changements, ou publier votre version en connaissance de cause.",
|
|
20680
|
-
"editor.record.form.field.abstract": "
|
|
20666
|
+
"editor.record.form.field.abstract": "Description",
|
|
20681
20667
|
"editor.record.form.field.constraintsShortcuts": "",
|
|
20682
20668
|
"editor.record.form.field.contacts.noContact": "Veuillez renseigner au moins un point de contact.",
|
|
20683
20669
|
"editor.record.form.field.contacts.placeholder": "Choisissez un contact",
|
|
@@ -20719,14 +20705,14 @@ var fr = {
|
|
|
20719
20705
|
"editor.record.form.keywords.place.placeholder": "Rechercher une localisation par mot-clé",
|
|
20720
20706
|
"editor.record.form.keywords.place.withoutExtent": "Ce mot-clé n'a pas de localisation géographique associée",
|
|
20721
20707
|
"editor.record.form.keywords.placeholder": "Sélectionnez un mot-clé",
|
|
20722
|
-
"editor.record.form.license.cc-by": "",
|
|
20723
|
-
"editor.record.form.license.cc-by-sa": "",
|
|
20724
|
-
"editor.record.form.license.cc-zero": "",
|
|
20708
|
+
"editor.record.form.license.cc-by": "Creative Commons CC-BY",
|
|
20709
|
+
"editor.record.form.license.cc-by-sa": "Creative Commons CC-BY-SA",
|
|
20710
|
+
"editor.record.form.license.cc-zero": "Creative Commons CC-0",
|
|
20725
20711
|
"editor.record.form.license.etalab": "Licence Ouverte (Etalab)",
|
|
20726
20712
|
"editor.record.form.license.etalab-v2": "Licence Ouverte v2.0 (Etalab)",
|
|
20727
|
-
"editor.record.form.license.odbl": "",
|
|
20728
|
-
"editor.record.form.license.odc-by": "",
|
|
20729
|
-
"editor.record.form.license.pddl": "",
|
|
20713
|
+
"editor.record.form.license.odbl": "Open Data Commons ODbL",
|
|
20714
|
+
"editor.record.form.license.odc-by": "Open Data Commons ODC-By",
|
|
20715
|
+
"editor.record.form.license.pddl": "Open Data Commons PDDL",
|
|
20730
20716
|
"editor.record.form.license.unknown": "Inconnue ou absente",
|
|
20731
20717
|
"editor.record.form.page.accessAndContact": "Informations pour l'utilisation",
|
|
20732
20718
|
"editor.record.form.page.description": "Description du jeu de données",
|
|
@@ -20779,7 +20765,7 @@ var fr = {
|
|
|
20779
20765
|
"editor.record.resourceError.closeMessage": "Compris",
|
|
20780
20766
|
"editor.record.resourceError.title": "Erreur avec les pièces jointes",
|
|
20781
20767
|
"editor.record.saveStatus.draftWithChangesPending": "Sauvegardé - Modifications non publiées",
|
|
20782
|
-
"editor.record.saveStatus.recordNotPublished": "",
|
|
20768
|
+
"editor.record.saveStatus.recordNotPublished": "Sauvegardé - non publié",
|
|
20783
20769
|
"editor.record.saveStatus.recordUpToDate": "Sauvegardé - Jeu de données à jour",
|
|
20784
20770
|
"editor.record.undo.confirmation.cancelText": "Garder les modifications",
|
|
20785
20771
|
"editor.record.undo.confirmation.confirmText": "Retirer les modifications",
|
|
@@ -20789,7 +20775,7 @@ var fr = {
|
|
|
20789
20775
|
"editor.record.undo.tooltip.enabled": "Cliquer sur ce bouton pour annuler les modifications apportées à ce jeu de données",
|
|
20790
20776
|
"editor.record.upToDate": "Ce jeu de données est à jour",
|
|
20791
20777
|
"editor.sidebar.logout": "Se déconnecter",
|
|
20792
|
-
"editor.sidebar.menu.editor": "",
|
|
20778
|
+
"editor.sidebar.menu.editor": "Editeur",
|
|
20793
20779
|
"editor.temporary.disabled": "Pas encore implémenté",
|
|
20794
20780
|
"externalviewer.dataset.unnamed": "Couche du datahub",
|
|
20795
20781
|
"facets.block.title.OrgForResource": "Organisation",
|
|
@@ -20837,7 +20823,7 @@ var fr = {
|
|
|
20837
20823
|
"map.add.layer": "Ajouter une couche",
|
|
20838
20824
|
"map.add.layer.catalog": "Du catalogue",
|
|
20839
20825
|
"map.add.layer.file": "À partir d'un fichier",
|
|
20840
|
-
"map.add.layer.ogc.api": "",
|
|
20826
|
+
"map.add.layer.ogc.api": "Depuis un service OGC API",
|
|
20841
20827
|
"map.add.layer.wfs": "Depuis un service WFS",
|
|
20842
20828
|
"map.add.layer.wms": "Depuis un service WMS",
|
|
20843
20829
|
"map.addFromFile.placeholder": "Cliquez ou déposez un fichier ici",
|
|
@@ -20850,7 +20836,7 @@ var fr = {
|
|
|
20850
20836
|
"map.loading.data": "Chargement des données...",
|
|
20851
20837
|
"map.loading.service": "Chargement du service...",
|
|
20852
20838
|
"map.navigation.message": "Veuillez utiliser CTRL + souris (ou deux doigts sur mobile) pour naviguer sur la carte",
|
|
20853
|
-
"map.ogc.urlInput.hint": "",
|
|
20839
|
+
"map.ogc.urlInput.hint": "Entrez l'URL du service OGC API",
|
|
20854
20840
|
"map.select.layer": "Source de données",
|
|
20855
20841
|
"map.wfs.urlInput.hint": "Entrez l'URL du service WFS",
|
|
20856
20842
|
"map.wms.urlInput.hint": "Entrez l'URL du service WMS",
|
|
@@ -20877,6 +20863,7 @@ var fr = {
|
|
|
20877
20863
|
"record.action.download": "Télécharger",
|
|
20878
20864
|
"record.action.duplicate": "Dupliquer",
|
|
20879
20865
|
"record.action.duplicating": "Duplication...",
|
|
20866
|
+
"record.action.rollback": "Restaurer",
|
|
20880
20867
|
"record.action.view": "Voir",
|
|
20881
20868
|
"record.externalViewer.open": "Ouvrir dans le visualiseur externe",
|
|
20882
20869
|
"record.feature.limit": "La ressource contient plus de {count} entités et ne peut pas être affichée ici.",
|
|
@@ -20999,6 +20986,8 @@ var fr = {
|
|
|
20999
20986
|
"search.error.recordNotFound": "Cette donnée n'a pu être trouvée.",
|
|
21000
20987
|
"search.field.any.placeholder": "Rechercher un jeu de données...",
|
|
21001
20988
|
"search.field.sortBy": "Trier par :",
|
|
20989
|
+
"search.filters.availableServices.download": "",
|
|
20990
|
+
"search.filters.availableServices.view": "",
|
|
21002
20991
|
"search.filters.changeDate": "Mise à jour",
|
|
21003
20992
|
"search.filters.clear": "Réinitialiser",
|
|
21004
20993
|
"search.filters.contact": "Contacts",
|
|
@@ -21054,7 +21043,6 @@ var fr = {
|
|
|
21054
21043
|
"tooltip.url.open": "Ouvrir l'URL",
|
|
21055
21044
|
"ui.readLess": "Réduire",
|
|
21056
21045
|
"ui.readMore": "Lire la suite",
|
|
21057
|
-
"wfs.aggregations.notsupported": "Agrégations non supportées pour les services WFS",
|
|
21058
21046
|
"wfs.feature.limit": "Trop d'objets pour afficher la couche WFS !",
|
|
21059
21047
|
"wfs.featuretype.notfound": "La classe d'objets n'a pas été trouvée dans le service",
|
|
21060
21048
|
"wfs.geojsongml.notsupported": "Le service ne supporte pas le format GeoJSON ou GML",
|
|
@@ -21089,8 +21077,6 @@ var it = {
|
|
|
21089
21077
|
"chart.type.lineSmooth": "grafico a linea liscia",
|
|
21090
21078
|
"chart.type.pie": "grafico a torta",
|
|
21091
21079
|
"dashboard.catalog.allRecords": "Datasets",
|
|
21092
|
-
"dashboard.catalog.contacts": "Contatti",
|
|
21093
|
-
"dashboard.catalog.thesaurus": "Thesauri",
|
|
21094
21080
|
"dashboard.createRecord": "Crea un record",
|
|
21095
21081
|
"dashboard.importRecord": "Importare",
|
|
21096
21082
|
"dashboard.importRecord.importExternal": "Importare un dataset esterno",
|
|
@@ -21103,7 +21089,6 @@ var it = {
|
|
|
21103
21089
|
"dashboard.records.myDraft": "Le mie bozze",
|
|
21104
21090
|
"dashboard.records.myRecords": "I miei dati",
|
|
21105
21091
|
"dashboard.records.search": "Risultati per \"{searchText}\"",
|
|
21106
|
-
"dashboard.records.templates": "Modelli precompilati",
|
|
21107
21092
|
"dashboard.records.userDetail": "Nome",
|
|
21108
21093
|
"dashboard.records.userEmail": "Email",
|
|
21109
21094
|
"dashboard.records.username": "Nome utente",
|
|
@@ -21274,9 +21259,9 @@ var it = {
|
|
|
21274
21259
|
"editor.record.deleteError.title": "Errore durante l'eliminazione",
|
|
21275
21260
|
"editor.record.deleteSuccess.body": "Il dataset è stato eliminato correttamente",
|
|
21276
21261
|
"editor.record.deleteSuccess.title": "Eliminazione riuscita",
|
|
21277
|
-
"editor.record.error.back": "",
|
|
21278
|
-
"editor.record.error.explanation": "",
|
|
21279
|
-
"editor.record.error.message": "",
|
|
21262
|
+
"editor.record.error.back": "Ritorna al catalogo",
|
|
21263
|
+
"editor.record.error.explanation": "Forse non ha accesso a questa pagina oppure questo collegamento potrebbe non essere valido.",
|
|
21264
|
+
"editor.record.error.message": "Qualcosa è andato storto",
|
|
21280
21265
|
"editor.record.form.bottomButtons.comeBackLater": "Ritorna più tardi",
|
|
21281
21266
|
"editor.record.form.bottomButtons.next": "Avanti",
|
|
21282
21267
|
"editor.record.form.bottomButtons.previous": "Precedente",
|
|
@@ -21336,18 +21321,18 @@ var it = {
|
|
|
21336
21321
|
"editor.record.form.keywords.place.placeholder": "Cerca una posizione per parola chiave",
|
|
21337
21322
|
"editor.record.form.keywords.place.withoutExtent": "Questa parola chiave non ha una posizione geografica associata",
|
|
21338
21323
|
"editor.record.form.keywords.placeholder": "Seleziona una parola chiave",
|
|
21339
|
-
"editor.record.form.license.cc-by": "",
|
|
21340
|
-
"editor.record.form.license.cc-by-sa": "",
|
|
21341
|
-
"editor.record.form.license.cc-zero": "",
|
|
21324
|
+
"editor.record.form.license.cc-by": "Creative Commons CC-BY",
|
|
21325
|
+
"editor.record.form.license.cc-by-sa": "Creative Commons CC-BY-SA",
|
|
21326
|
+
"editor.record.form.license.cc-zero": "Creative Commons CC-0",
|
|
21342
21327
|
"editor.record.form.license.etalab": "Licenza aperta (Etalab)",
|
|
21343
21328
|
"editor.record.form.license.etalab-v2": "Licenza aperta v2.0 (Etalab)",
|
|
21344
|
-
"editor.record.form.license.odbl": "",
|
|
21345
|
-
"editor.record.form.license.odc-by": "",
|
|
21346
|
-
"editor.record.form.license.pddl": "",
|
|
21329
|
+
"editor.record.form.license.odbl": "Open Data Commons ODbL",
|
|
21330
|
+
"editor.record.form.license.odc-by": "Open Data Commons ODC-By",
|
|
21331
|
+
"editor.record.form.license.pddl": "Open Data Commons PDDL",
|
|
21347
21332
|
"editor.record.form.license.unknown": "Sconosciuto o assente",
|
|
21348
21333
|
"editor.record.form.page.accessAndContact": "Informazioni per l'uso",
|
|
21349
21334
|
"editor.record.form.page.description": "Descrizione del dataset",
|
|
21350
|
-
"editor.record.form.page.resources": "",
|
|
21335
|
+
"editor.record.form.page.resources": "Risorse",
|
|
21351
21336
|
"editor.record.form.section.about.description": "Queste informazioni riguardano il dataset",
|
|
21352
21337
|
"editor.record.form.section.about.label": "Informazioni sul dataset",
|
|
21353
21338
|
"editor.record.form.section.annexes.description": "Gli allegati sono risorse facoltative. Sono allegati al dataset e aiutano a comprendere meglio i dati (avviso, ecc.).",
|
|
@@ -21374,7 +21359,7 @@ var it = {
|
|
|
21374
21359
|
"editor.record.loadError.body": "Impossibile caricare il dataset:",
|
|
21375
21360
|
"editor.record.loadError.closeMessage": "Capito",
|
|
21376
21361
|
"editor.record.loadError.title": "Errore durante il caricamento",
|
|
21377
|
-
"editor.record.lock.reason": "",
|
|
21362
|
+
"editor.record.lock.reason": "Non è un editore di uno dei gruppi autorizzati",
|
|
21378
21363
|
"editor.record.onlineResource.protocol.other": "Altro",
|
|
21379
21364
|
"editor.record.onlineResourceError.body": "Ha successo un'errore durante l'aggiunta della risorsa:",
|
|
21380
21365
|
"editor.record.onlineResourceError.closeMessage": "Capito",
|
|
@@ -21396,7 +21381,7 @@ var it = {
|
|
|
21396
21381
|
"editor.record.resourceError.closeMessage": "Capito",
|
|
21397
21382
|
"editor.record.resourceError.title": "Errore con gli allegati",
|
|
21398
21383
|
"editor.record.saveStatus.draftWithChangesPending": "Salvato - Modifiche non pubblicate",
|
|
21399
|
-
"editor.record.saveStatus.recordNotPublished": "",
|
|
21384
|
+
"editor.record.saveStatus.recordNotPublished": "Salvato - non pubblicato",
|
|
21400
21385
|
"editor.record.saveStatus.recordUpToDate": "Salvato - Dataset aggiornato",
|
|
21401
21386
|
"editor.record.undo.confirmation.cancelText": "Mantieni le modifiche",
|
|
21402
21387
|
"editor.record.undo.confirmation.confirmText": "Annulla le modifiche",
|
|
@@ -21406,7 +21391,7 @@ var it = {
|
|
|
21406
21391
|
"editor.record.undo.tooltip.enabled": "Fare clic su questo pulsante per annullare le modifiche apportate a questo dataset",
|
|
21407
21392
|
"editor.record.upToDate": "Questo dataset è aggiornato",
|
|
21408
21393
|
"editor.sidebar.logout": "Esci",
|
|
21409
|
-
"editor.sidebar.menu.editor": "",
|
|
21394
|
+
"editor.sidebar.menu.editor": "Editore",
|
|
21410
21395
|
"editor.temporary.disabled": "Non ancora implementato",
|
|
21411
21396
|
"externalviewer.dataset.unnamed": "Layer del datahub",
|
|
21412
21397
|
"facets.block.title.OrgForResource": "Organizzazione",
|
|
@@ -21454,7 +21439,7 @@ var it = {
|
|
|
21454
21439
|
"map.add.layer": "Aggiungere un layer",
|
|
21455
21440
|
"map.add.layer.catalog": "Dal catalogo",
|
|
21456
21441
|
"map.add.layer.file": "Da un file",
|
|
21457
|
-
"map.add.layer.ogc.api": "",
|
|
21442
|
+
"map.add.layer.ogc.api": "Da OGC API",
|
|
21458
21443
|
"map.add.layer.wfs": "Da un WFS",
|
|
21459
21444
|
"map.add.layer.wms": "Da un WMS",
|
|
21460
21445
|
"map.addFromFile.placeholder": "Clicca o trascina un file qui",
|
|
@@ -21467,7 +21452,7 @@ var it = {
|
|
|
21467
21452
|
"map.loading.data": "Caricamento dati...",
|
|
21468
21453
|
"map.loading.service": "Caricamento del servizio...",
|
|
21469
21454
|
"map.navigation.message": "Si prega di utilizzare CTRL + mouse (o due dita su mobile) per navigare sulla mappa",
|
|
21470
|
-
"map.ogc.urlInput.hint": "",
|
|
21455
|
+
"map.ogc.urlInput.hint": "Inserisci URL del servizio OGC API",
|
|
21471
21456
|
"map.select.layer": "Sorgente dati",
|
|
21472
21457
|
"map.wfs.urlInput.hint": "Inserisci URL del servizio WFS",
|
|
21473
21458
|
"map.wms.urlInput.hint": "Inserisci URL del servizio WMS",
|
|
@@ -21493,7 +21478,8 @@ var it = {
|
|
|
21493
21478
|
"record.action.delete": "Elimina",
|
|
21494
21479
|
"record.action.download": "Scarica",
|
|
21495
21480
|
"record.action.duplicate": "Duplicato",
|
|
21496
|
-
"record.action.duplicating": "",
|
|
21481
|
+
"record.action.duplicating": "Duplicazione",
|
|
21482
|
+
"record.action.rollback": "Annulla",
|
|
21497
21483
|
"record.action.view": "Visualizza",
|
|
21498
21484
|
"record.externalViewer.open": "Aprire nel visualizzatore esterno",
|
|
21499
21485
|
"record.feature.limit": "La risorsa contiene più di {count} funzionalità e non può essere visualizzata qui.",
|
|
@@ -21616,6 +21602,8 @@ var it = {
|
|
|
21616
21602
|
"search.error.recordNotFound": "Impossibile trovare questi dati.",
|
|
21617
21603
|
"search.field.any.placeholder": "Cerca un dataset...",
|
|
21618
21604
|
"search.field.sortBy": "Ordina per:",
|
|
21605
|
+
"search.filters.availableServices.download": "",
|
|
21606
|
+
"search.filters.availableServices.view": "",
|
|
21619
21607
|
"search.filters.changeDate": "Aggiornato",
|
|
21620
21608
|
"search.filters.clear": "Ripristina",
|
|
21621
21609
|
"search.filters.contact": "Contatti",
|
|
@@ -21671,7 +21659,7 @@ var it = {
|
|
|
21671
21659
|
"tooltip.url.open": "Aprire l'URL",
|
|
21672
21660
|
"ui.readLess": "Ridurre",
|
|
21673
21661
|
"ui.readMore": "Leggere di più",
|
|
21674
|
-
"wfs.aggregations.notsupported": "",
|
|
21662
|
+
"wfs.aggregations.notsupported": "Aggregazioni non supportate per i servizi WFS",
|
|
21675
21663
|
"wfs.feature.limit": "Troppi oggetti per visualizzare il WFS layer!",
|
|
21676
21664
|
"wfs.featuretype.notfound": "La classe di oggetto non è stata trovata nel servizio",
|
|
21677
21665
|
"wfs.geojsongml.notsupported": "Il servizio non supporta il formato GeoJSON o GML",
|
|
@@ -21706,8 +21694,6 @@ var nl = {
|
|
|
21706
21694
|
"chart.type.lineSmooth": "glad lijndiagram",
|
|
21707
21695
|
"chart.type.pie": "cirkeldiagram",
|
|
21708
21696
|
"dashboard.catalog.allRecords": "",
|
|
21709
|
-
"dashboard.catalog.contacts": "",
|
|
21710
|
-
"dashboard.catalog.thesaurus": "",
|
|
21711
21697
|
"dashboard.createRecord": "",
|
|
21712
21698
|
"dashboard.importRecord": "",
|
|
21713
21699
|
"dashboard.importRecord.importExternal": "",
|
|
@@ -21720,7 +21706,6 @@ var nl = {
|
|
|
21720
21706
|
"dashboard.records.myDraft": "Mijn concepten",
|
|
21721
21707
|
"dashboard.records.myRecords": "Mijn Records",
|
|
21722
21708
|
"dashboard.records.search": "Zoeken naar \"{searchText}\"",
|
|
21723
|
-
"dashboard.records.templates": "",
|
|
21724
21709
|
"dashboard.records.userDetail": "",
|
|
21725
21710
|
"dashboard.records.userEmail": "",
|
|
21726
21711
|
"dashboard.records.username": "",
|
|
@@ -22111,6 +22096,7 @@ var nl = {
|
|
|
22111
22096
|
"record.action.download": "",
|
|
22112
22097
|
"record.action.duplicate": "",
|
|
22113
22098
|
"record.action.duplicating": "",
|
|
22099
|
+
"record.action.rollback": "",
|
|
22114
22100
|
"record.action.view": "",
|
|
22115
22101
|
"record.externalViewer.open": "",
|
|
22116
22102
|
"record.feature.limit": "",
|
|
@@ -22233,6 +22219,8 @@ var nl = {
|
|
|
22233
22219
|
"search.error.recordNotFound": "",
|
|
22234
22220
|
"search.field.any.placeholder": "",
|
|
22235
22221
|
"search.field.sortBy": "",
|
|
22222
|
+
"search.filters.availableServices.download": "",
|
|
22223
|
+
"search.filters.availableServices.view": "",
|
|
22236
22224
|
"search.filters.changeDate": "",
|
|
22237
22225
|
"search.filters.clear": "",
|
|
22238
22226
|
"search.filters.contact": "",
|
|
@@ -22288,7 +22276,6 @@ var nl = {
|
|
|
22288
22276
|
"tooltip.url.open": "",
|
|
22289
22277
|
"ui.readLess": "",
|
|
22290
22278
|
"ui.readMore": "",
|
|
22291
|
-
"wfs.aggregations.notsupported": "",
|
|
22292
22279
|
"wfs.feature.limit": "",
|
|
22293
22280
|
"wfs.featuretype.notfound": "",
|
|
22294
22281
|
"wfs.geojsongml.notsupported": "",
|
|
@@ -22323,8 +22310,6 @@ var pt = {
|
|
|
22323
22310
|
"chart.type.lineSmooth": "gráfico de linha suave",
|
|
22324
22311
|
"chart.type.pie": "gráfico de pizza",
|
|
22325
22312
|
"dashboard.catalog.allRecords": "",
|
|
22326
|
-
"dashboard.catalog.contacts": "",
|
|
22327
|
-
"dashboard.catalog.thesaurus": "",
|
|
22328
22313
|
"dashboard.createRecord": "",
|
|
22329
22314
|
"dashboard.importRecord": "",
|
|
22330
22315
|
"dashboard.importRecord.importExternal": "",
|
|
@@ -22337,7 +22322,6 @@ var pt = {
|
|
|
22337
22322
|
"dashboard.records.myDraft": "Meus rascunhos",
|
|
22338
22323
|
"dashboard.records.myRecords": "Meus Registros",
|
|
22339
22324
|
"dashboard.records.search": "Buscar por \"{searchText}\"",
|
|
22340
|
-
"dashboard.records.templates": "",
|
|
22341
22325
|
"dashboard.records.userDetail": "",
|
|
22342
22326
|
"dashboard.records.userEmail": "",
|
|
22343
22327
|
"dashboard.records.username": "",
|
|
@@ -22728,6 +22712,7 @@ var pt = {
|
|
|
22728
22712
|
"record.action.download": "",
|
|
22729
22713
|
"record.action.duplicate": "",
|
|
22730
22714
|
"record.action.duplicating": "",
|
|
22715
|
+
"record.action.rollback": "",
|
|
22731
22716
|
"record.action.view": "",
|
|
22732
22717
|
"record.externalViewer.open": "",
|
|
22733
22718
|
"record.feature.limit": "",
|
|
@@ -22850,6 +22835,8 @@ var pt = {
|
|
|
22850
22835
|
"search.error.recordNotFound": "",
|
|
22851
22836
|
"search.field.any.placeholder": "",
|
|
22852
22837
|
"search.field.sortBy": "",
|
|
22838
|
+
"search.filters.availableServices.download": "",
|
|
22839
|
+
"search.filters.availableServices.view": "",
|
|
22853
22840
|
"search.filters.changeDate": "",
|
|
22854
22841
|
"search.filters.clear": "",
|
|
22855
22842
|
"search.filters.contact": "",
|
|
@@ -22905,7 +22892,6 @@ var pt = {
|
|
|
22905
22892
|
"tooltip.url.open": "",
|
|
22906
22893
|
"ui.readLess": "",
|
|
22907
22894
|
"ui.readMore": "",
|
|
22908
|
-
"wfs.aggregations.notsupported": "",
|
|
22909
22895
|
"wfs.feature.limit": "",
|
|
22910
22896
|
"wfs.featuretype.notfound": "",
|
|
22911
22897
|
"wfs.geojsongml.notsupported": "",
|
|
@@ -23092,6 +23078,16 @@ class Gn4FieldMapper {
|
|
|
23092
23078
|
isOpenData: (output, source) => this.addExtra({
|
|
23093
23079
|
isOpenData: selectField(source, 'isOpenData') !== 'false',
|
|
23094
23080
|
}, output),
|
|
23081
|
+
featureTypes: (output, source) => this.addExtra({
|
|
23082
|
+
featureTypes: selectField(source, 'featureTypes'),
|
|
23083
|
+
}, output),
|
|
23084
|
+
related: (output, source) => {
|
|
23085
|
+
const fcatSource = selectField(getFirstValue(selectField(selectField(source, 'related'), 'fcats')), '_source');
|
|
23086
|
+
const featureCatalogIdentifier = selectField(fcatSource, 'uuid');
|
|
23087
|
+
return featureCatalogIdentifier
|
|
23088
|
+
? this.addExtra({ featureCatalogIdentifier }, output)
|
|
23089
|
+
: output;
|
|
23090
|
+
},
|
|
23095
23091
|
isPublishedToAll: (output, source) => this.addExtra({
|
|
23096
23092
|
isPublishedToAll: selectField(source, 'isPublishedToAll'),
|
|
23097
23093
|
}, output),
|
|
@@ -23409,7 +23405,7 @@ class ElasticsearchService {
|
|
|
23409
23405
|
this.runtimeFields = {};
|
|
23410
23406
|
this.lang3 = this.langService.iso3;
|
|
23411
23407
|
}
|
|
23412
|
-
getSearchRequestBody(aggregations = {}, size = 0, from = 0, sortBy = null, requestFields =
|
|
23408
|
+
getSearchRequestBody(aggregations = {}, size = 0, from = 0, sortBy = null, requestFields = null, searchFilters = {}, configFilters = {}, uuids, geometry) {
|
|
23413
23409
|
const payload = {
|
|
23414
23410
|
aggregations,
|
|
23415
23411
|
from,
|
|
@@ -23417,7 +23413,7 @@ class ElasticsearchService {
|
|
|
23417
23413
|
sort: this.buildPayloadSort(sortBy),
|
|
23418
23414
|
query: this.buildPayloadQuery(searchFilters, configFilters, uuids, geometry),
|
|
23419
23415
|
...(size > 0 ? { track_total_hits: true } : {}),
|
|
23420
|
-
_source: requestFields,
|
|
23416
|
+
...(requestFields && { _source: requestFields }),
|
|
23421
23417
|
};
|
|
23422
23418
|
this.processRuntimeFields(payload);
|
|
23423
23419
|
return payload;
|
|
@@ -23564,6 +23560,7 @@ class ElasticsearchService {
|
|
|
23564
23560
|
return this.metadataLang === 'current';
|
|
23565
23561
|
}
|
|
23566
23562
|
filtersToQuery(filters) {
|
|
23563
|
+
const addQuote = (key) => (/^\/.+\/$/.test(key) ? key : `"${key}"`);
|
|
23567
23564
|
const makeQuery = (filter) => {
|
|
23568
23565
|
if (typeof filter === 'string') {
|
|
23569
23566
|
return filter;
|
|
@@ -23571,9 +23568,9 @@ class ElasticsearchService {
|
|
|
23571
23568
|
return Object.keys(filter)
|
|
23572
23569
|
.map((key) => {
|
|
23573
23570
|
if (filter[key] === true) {
|
|
23574
|
-
return
|
|
23571
|
+
return addQuote(key);
|
|
23575
23572
|
}
|
|
23576
|
-
return
|
|
23573
|
+
return `-${addQuote(key)}`;
|
|
23577
23574
|
})
|
|
23578
23575
|
.join(' OR ');
|
|
23579
23576
|
};
|
|
@@ -23616,16 +23613,26 @@ class ElasticsearchService {
|
|
|
23616
23613
|
].filter(Boolean);
|
|
23617
23614
|
return queryParts.length > 0 ? queryParts : undefined;
|
|
23618
23615
|
}
|
|
23616
|
+
mustNotFilters() {
|
|
23617
|
+
return [
|
|
23618
|
+
{
|
|
23619
|
+
...this.queryFilterOnValues('resourceType', [
|
|
23620
|
+
'service',
|
|
23621
|
+
'map',
|
|
23622
|
+
'map/static',
|
|
23623
|
+
'mapDigital',
|
|
23624
|
+
]),
|
|
23625
|
+
},
|
|
23626
|
+
{
|
|
23627
|
+
query_string: {
|
|
23628
|
+
query: 'resourceType:featureCatalog AND !resourceType:dataset AND !cl_level.key:dataset',
|
|
23629
|
+
},
|
|
23630
|
+
},
|
|
23631
|
+
];
|
|
23632
|
+
}
|
|
23619
23633
|
buildPayloadQuery({ any, ...fieldSearchFilters }, configFilters, uuids, geometry) {
|
|
23620
23634
|
const must = [];
|
|
23621
|
-
const must_not =
|
|
23622
|
-
...this.queryFilterOnValues('resourceType', [
|
|
23623
|
-
'service',
|
|
23624
|
-
'map',
|
|
23625
|
-
'map/static',
|
|
23626
|
-
'mapDigital',
|
|
23627
|
-
]),
|
|
23628
|
-
};
|
|
23635
|
+
const must_not = this.mustNotFilters();
|
|
23629
23636
|
const should = [];
|
|
23630
23637
|
const filter = [this.queryFilterOnValues('isTemplate', 'n')];
|
|
23631
23638
|
if (any) {
|
|
@@ -23711,14 +23718,7 @@ class ElasticsearchService {
|
|
|
23711
23718
|
},
|
|
23712
23719
|
},
|
|
23713
23720
|
],
|
|
23714
|
-
must_not:
|
|
23715
|
-
...this.queryFilterOnValues('resourceType', [
|
|
23716
|
-
'service',
|
|
23717
|
-
'map',
|
|
23718
|
-
'map/static',
|
|
23719
|
-
'mapDigital',
|
|
23720
|
-
]),
|
|
23721
|
-
},
|
|
23721
|
+
must_not: this.mustNotFilters(),
|
|
23722
23722
|
},
|
|
23723
23723
|
},
|
|
23724
23724
|
_source: ['resourceTitleObject', 'uuid'],
|
|
@@ -23819,13 +23819,15 @@ class ElasticsearchService {
|
|
|
23819
23819
|
switch (aggregation.type) {
|
|
23820
23820
|
case 'filters':
|
|
23821
23821
|
return {
|
|
23822
|
-
filters:
|
|
23823
|
-
|
|
23824
|
-
|
|
23825
|
-
|
|
23826
|
-
|
|
23827
|
-
|
|
23828
|
-
|
|
23822
|
+
filters: {
|
|
23823
|
+
filters: Object.keys(aggregation.filters).reduce((prev, curr) => {
|
|
23824
|
+
const filter = aggregation.filters[curr];
|
|
23825
|
+
return {
|
|
23826
|
+
...prev,
|
|
23827
|
+
[curr]: this.filtersToQuery(filter)[0],
|
|
23828
|
+
};
|
|
23829
|
+
}, {}),
|
|
23830
|
+
},
|
|
23829
23831
|
};
|
|
23830
23832
|
case 'terms':
|
|
23831
23833
|
return {
|
|
@@ -23933,9 +23935,29 @@ class Gn4Repository {
|
|
|
23933
23935
|
}
|
|
23934
23936
|
getRecord(uniqueIdentifier) {
|
|
23935
23937
|
return this.gn4SearchApi
|
|
23936
|
-
.search('bucket',
|
|
23938
|
+
.search('bucket', ['fcats'], JSON.stringify(this.gn4SearchHelper.getMetadataByIdPayload(uniqueIdentifier)))
|
|
23937
23939
|
.pipe(map$1((results) => results.hits.hits[0]), switchMap((record) => record ? this.gn4Mapper.readRecord(record) : of(null)));
|
|
23938
23940
|
}
|
|
23941
|
+
getFeatureCatalog(record, visited = new Set() // prevent looping
|
|
23942
|
+
) {
|
|
23943
|
+
if (record.extras &&
|
|
23944
|
+
record.extras['featureTypes'] &&
|
|
23945
|
+
record.extras['featureTypes'][0]?.attributeTable &&
|
|
23946
|
+
Array.isArray(record.extras['featureTypes'][0].attributeTable)) {
|
|
23947
|
+
return of({
|
|
23948
|
+
attributes: record.extras['featureTypes'][0]?.attributeTable?.map((attr) => ({
|
|
23949
|
+
name: attr.name,
|
|
23950
|
+
title: attr.definition,
|
|
23951
|
+
})),
|
|
23952
|
+
});
|
|
23953
|
+
}
|
|
23954
|
+
const featureCatalogIdentifier = record.extras['featureCatalogIdentifier'];
|
|
23955
|
+
if (featureCatalogIdentifier && !visited.has(featureCatalogIdentifier)) {
|
|
23956
|
+
visited.add(featureCatalogIdentifier);
|
|
23957
|
+
return this.getRecord(featureCatalogIdentifier).pipe(switchMap((record) => record ? this.getFeatureCatalog(record, visited) : of(null)));
|
|
23958
|
+
}
|
|
23959
|
+
return of(null);
|
|
23960
|
+
}
|
|
23939
23961
|
getSimilarRecords(similarTo) {
|
|
23940
23962
|
return this.gn4SearchApi
|
|
23941
23963
|
.search('bucket', null, JSON.stringify(this.gn4SearchHelper.getRelatedRecordPayload(similarTo, 3)))
|
|
@@ -26681,7 +26703,12 @@ class AutocompleteComponent {
|
|
|
26681
26703
|
const suggestionsFromAction = merge(newValue$.pipe(filter((value) => value.length >= this.minCharacterCount)), externalValueChange$).pipe(tap$1(() => {
|
|
26682
26704
|
this.searching = true;
|
|
26683
26705
|
this.error = null;
|
|
26684
|
-
}), switchMap$1((value) => this.action(value)),
|
|
26706
|
+
}), switchMap$1((value) => this.action(value)), tap$1((suggestions) => {
|
|
26707
|
+
// forcing the panel to open if there are suggestions
|
|
26708
|
+
if (suggestions.length > 0) {
|
|
26709
|
+
this.triggerRef?.openPanel();
|
|
26710
|
+
}
|
|
26711
|
+
}), catchError((error) => {
|
|
26685
26712
|
this.error = error.message;
|
|
26686
26713
|
return of([]);
|
|
26687
26714
|
}), finalize(() => (this.searching = false)));
|
|
@@ -28847,7 +28874,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
28847
28874
|
|
|
28848
28875
|
class MarkdownParserComponent {
|
|
28849
28876
|
get parsedMarkdown() {
|
|
28850
|
-
return marked.parse(this.textContent);
|
|
28877
|
+
return marked.parse(this.textContent ?? '');
|
|
28851
28878
|
}
|
|
28852
28879
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MarkdownParserComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
28853
28880
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MarkdownParserComponent, isStandalone: true, selector: "gn-ui-markdown-parser", inputs: { textContent: "textContent", whitoutStyles: "whitoutStyles" }, ngImport: i0, template: "<div\n [class]=\"whitoutStyles ? '' : 'markdown-body'\"\n [innerHTML]=\"parsedMarkdown\"\n></div>\n", styles: [":host ::ng-deep .markdown-body{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;margin:0;line-height:1.5;word-wrap:break-word;height:100%}:host ::ng-deep .markdown-body strong{@apply font-bold;color:var(--color-secondary-darker)}:host ::ng-deep .markdown-body h1,:host ::ng-deep .markdown-body h2,:host ::ng-deep .markdown-body h3,:host ::ng-deep .markdown-body h4,:host ::ng-deep .markdown-body h5,:host ::ng-deep .markdown-body h6{margin-top:24px;margin-bottom:16px;line-height:1.25;@apply text-title font-title font-bold;}:host ::ng-deep .markdown-body :first-child{margin-top:0}:host ::ng-deep .markdown-body h1{margin:.67em 0;padding-bottom:.3em;font-size:2em;color:var(--color-primary)}:host ::ng-deep .markdown-body h2{padding-bottom:.3em;font-size:1.5em;color:var(--color-secondary)}:host ::ng-deep .markdown-body h3{font-size:1.25em;color:var(--color-secondary)}:host ::ng-deep .markdown-body h4{font-size:1em;color:var(--color-secondary)}:host ::ng-deep .markdown-body h5{font-size:.875em;color:var(--color-secondary)}:host ::ng-deep .markdown-body h6{font-size:.85em;color:var(--color-secondary-lighter)}:host ::ng-deep .markdown-body p{margin-top:0;margin-bottom:10px}:host ::ng-deep .markdown-body p>a{margin-top:0;margin-bottom:10px;color:var(--color-primary)!important;text-decoration:none}:host ::ng-deep .markdown-body p>a:hover{color:var(--color-primary-darker)!important;@apply underline;}:host ::ng-deep .markdown-body blockquote{margin:0;padding:0 1em;color:var(--color-secondary-lighter);border-left:.25em solid var(--color-primary-lighter)}:host ::ng-deep .markdown-body pre{margin-top:0;margin-bottom:0;font-size:12px;background-color:var(--color-gray-100);word-wrap:normal}:host ::ng-deep .markdown-body pre{padding:16px;overflow:auto;font-size:85%;line-height:1.45;color:var(--color-secondary);border-radius:6px}:host ::ng-deep .markdown-body code{padding:.2em .4em;margin:0;font-size:85%;white-space:break-spaces;border-radius:6px}:host ::ng-deep .markdown-body pre code{display:inline;max-width:auto;padding:0;margin:0;overflow:visible;line-height:inherit;word-wrap:normal;border:0}:host ::ng-deep .markdown-body hr{box-sizing:content-box;overflow:hidden;background:transparent;border-bottom:1px solid var(--color-secondary);height:.15em;padding:0;margin:24px 0;background-color:var(--color-secondary);border:0}:host ::ng-deep .markdown-body hr:before{display:table;content:\"\"}:host ::ng-deep .markdown-body hr:after{display:table;clear:both;content:\"\"}:host ::ng-deep .markdown-body ul,:host ::ng-deep .markdown-body ol{margin-top:0;margin-bottom:0;padding-left:2em;list-style:revert}:host ::ng-deep .markdown-body ol ol,:host ::ng-deep .markdown-body ul ol{list-style-type:lower-roman}:host ::ng-deep .markdown-body ul ul ol,:host ::ng-deep .markdown-body ul ol ol,:host ::ng-deep .markdown-body ol ul ol,:host ::ng-deep .markdown-body ol ol ol{list-style-type:lower-alpha}:host ::ng-deep .markdown-body ol[type=\"a s\"]{list-style-type:lower-alpha}:host ::ng-deep .markdown-body ol[type=\"A s\"]{list-style-type:upper-alpha}:host ::ng-deep .markdown-body ol[type=\"i s\"]{list-style-type:lower-roman}:host ::ng-deep .markdown-body ol[type=\"I s\"]{list-style-type:upper-roman}:host ::ng-deep .markdown-body ol[type=\"1\"]{list-style:unset;list-style-type:decimal}:host ::ng-deep .markdown-body div>ol:not([type]){list-style:unset;list-style-type:decimal}:host ::ng-deep .markdown-body table{border-spacing:0;border-collapse:collapse;display:block;width:max-content;max-width:100%;overflow:auto;padding-bottom:15px}:host ::ng-deep .markdown-body td,:host ::ng-deep .markdown-body th{padding:0}:host ::ng-deep .markdown-body th{color:var(--color-secondary)}:host ::ng-deep .markdown-body table th,:host ::ng-deep .markdown-body table td{padding:6px 13px;border:1px solid var(--color-gray-500)}:host ::ng-deep .markdown-body table td>:last-child{margin-bottom:0}:host ::ng-deep .markdown-body table tr{background-color:#fff;border-top:1px solid var(--color-secondary-lighter)}:host ::ng-deep .markdown-body table tr:nth-child(2n){background-color:var(--color-gray-100)}:host ::ng-deep .markdown-body table img{background-color:transparent}:host ::ng-deep .markdown-body img{border-style:none;max-width:100%;box-sizing:content-box;background-color:transparent}:host ::ng-deep .markdown-body img[align=right]{padding-left:20px}:host ::ng-deep .markdown-body img[align=left]{padding-right:20px}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
@@ -30091,6 +30118,7 @@ class RecordApiFormComponent {
|
|
|
30091
30118
|
maxFeatures: limit !== '-1' ? Number(limit) : undefined,
|
|
30092
30119
|
limit: limit !== '-1' ? Number(limit) : -1,
|
|
30093
30120
|
offset: offset !== '' ? Number(offset) : undefined,
|
|
30121
|
+
outputCrs: format === ('application/json' || 'geojson') ? 'EPSG:4326' : undefined,
|
|
30094
30122
|
};
|
|
30095
30123
|
if (this.endpoint instanceof WfsEndpoint) {
|
|
30096
30124
|
delete options.limit;
|
|
@@ -30222,6 +30250,77 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
30222
30250
|
type: Input
|
|
30223
30251
|
}] } });
|
|
30224
30252
|
|
|
30253
|
+
class ApplicationBannerComponent {
|
|
30254
|
+
constructor() {
|
|
30255
|
+
this.closeEnabled = false;
|
|
30256
|
+
this.extraClass = '';
|
|
30257
|
+
this.icon = '';
|
|
30258
|
+
this.msgClass = '';
|
|
30259
|
+
this.bannerOpen = true;
|
|
30260
|
+
}
|
|
30261
|
+
set type(value) {
|
|
30262
|
+
switch (value) {
|
|
30263
|
+
case 'primary':
|
|
30264
|
+
this.msgClass = 'bg-primary-darkest border-primary text-white';
|
|
30265
|
+
this.icon = 'matWarning';
|
|
30266
|
+
break;
|
|
30267
|
+
case 'light':
|
|
30268
|
+
this.msgClass =
|
|
30269
|
+
'bg-primary-opacity-10 border-primary-lightest text-black';
|
|
30270
|
+
this.icon = 'matInfoOutline';
|
|
30271
|
+
break;
|
|
30272
|
+
case 'secondary':
|
|
30273
|
+
default:
|
|
30274
|
+
this.msgClass = 'bg-primary-opacity-50 border-primary-darker text-black';
|
|
30275
|
+
this.icon = 'matWarningAmberOutline';
|
|
30276
|
+
break;
|
|
30277
|
+
}
|
|
30278
|
+
}
|
|
30279
|
+
get classList() {
|
|
30280
|
+
if (this.message.length > 200) {
|
|
30281
|
+
return `${this.msgClass} ${this.extraClass} overflow-y-scroll items-start`;
|
|
30282
|
+
}
|
|
30283
|
+
return `${this.msgClass} ${this.extraClass} items-center`;
|
|
30284
|
+
}
|
|
30285
|
+
closeMessage() {
|
|
30286
|
+
this.bannerOpen = false;
|
|
30287
|
+
}
|
|
30288
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApplicationBannerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
30289
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ApplicationBannerComponent, isStandalone: true, selector: "gn-ui-application-banner", inputs: { message: "message", title: "title", closeEnabled: "closeEnabled", extraClass: "extraClass", icon: "icon", type: "type" }, providers: [
|
|
30290
|
+
provideIcons({
|
|
30291
|
+
matWarningAmberOutline,
|
|
30292
|
+
matInfoOutline,
|
|
30293
|
+
matCloseOutline,
|
|
30294
|
+
matWarning,
|
|
30295
|
+
}),
|
|
30296
|
+
provideNgIconsConfig({ size: '1.5em' }),
|
|
30297
|
+
], ngImport: i0, template: "<div\n *ngIf=\"message && bannerOpen\"\n class=\"absolute left-0 right-0 text-wrap bg-white mt-4 max-h-24\"\n>\n <div\n class=\"flex flex-row py-2.5 px-5 gap-5 justify-start border max-h-20\"\n [ngClass]=\"classList\"\n >\n <div [ngClass]=\"message.length > 200 ? 'pt-5' : 'pt-1'\">\n <ng-icon [name]=\"icon\"></ng-icon>\n </div>\n <div class=\"flex flex-col justify-start gap-2.5\">\n <span *ngIf=\"title\" class=\"font-bold\">{{ title }}</span>\n <span class=\"font-medium max-w-2xl\" [innerHTML]=\"message\"></span>\n </div>\n <button\n *ngIf=\"closeEnabled\"\n class=\"self-start\"\n type=\"button\"\n (click)=\"closeMessage()\"\n >\n <ng-icon name=\"matCloseOutline\"> </ng-icon>\n </button>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
30298
|
+
}
|
|
30299
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApplicationBannerComponent, decorators: [{
|
|
30300
|
+
type: Component,
|
|
30301
|
+
args: [{ selector: 'gn-ui-application-banner', standalone: true, imports: [CommonModule, NgIconComponent], changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
30302
|
+
provideIcons({
|
|
30303
|
+
matWarningAmberOutline,
|
|
30304
|
+
matInfoOutline,
|
|
30305
|
+
matCloseOutline,
|
|
30306
|
+
matWarning,
|
|
30307
|
+
}),
|
|
30308
|
+
provideNgIconsConfig({ size: '1.5em' }),
|
|
30309
|
+
], template: "<div\n *ngIf=\"message && bannerOpen\"\n class=\"absolute left-0 right-0 text-wrap bg-white mt-4 max-h-24\"\n>\n <div\n class=\"flex flex-row py-2.5 px-5 gap-5 justify-start border max-h-20\"\n [ngClass]=\"classList\"\n >\n <div [ngClass]=\"message.length > 200 ? 'pt-5' : 'pt-1'\">\n <ng-icon [name]=\"icon\"></ng-icon>\n </div>\n <div class=\"flex flex-col justify-start gap-2.5\">\n <span *ngIf=\"title\" class=\"font-bold\">{{ title }}</span>\n <span class=\"font-medium max-w-2xl\" [innerHTML]=\"message\"></span>\n </div>\n <button\n *ngIf=\"closeEnabled\"\n class=\"self-start\"\n type=\"button\"\n (click)=\"closeMessage()\"\n >\n <ng-icon name=\"matCloseOutline\"> </ng-icon>\n </button>\n </div>\n</div>\n" }]
|
|
30310
|
+
}], propDecorators: { message: [{
|
|
30311
|
+
type: Input
|
|
30312
|
+
}], title: [{
|
|
30313
|
+
type: Input
|
|
30314
|
+
}], closeEnabled: [{
|
|
30315
|
+
type: Input
|
|
30316
|
+
}], extraClass: [{
|
|
30317
|
+
type: Input
|
|
30318
|
+
}], icon: [{
|
|
30319
|
+
type: Input
|
|
30320
|
+
}], type: [{
|
|
30321
|
+
type: Input
|
|
30322
|
+
}] } });
|
|
30323
|
+
|
|
30225
30324
|
class UiElementsModule {
|
|
30226
30325
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiElementsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
30227
30326
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: UiElementsModule, declarations: [AvatarComponent, UserPreviewComponent], imports: [CommonModule,
|
|
@@ -30239,11 +30338,13 @@ class UiElementsModule {
|
|
|
30239
30338
|
BadgeComponent,
|
|
30240
30339
|
MaxLinesComponent,
|
|
30241
30340
|
TextInputComponent,
|
|
30242
|
-
ImageInputComponent
|
|
30341
|
+
ImageInputComponent,
|
|
30342
|
+
ApplicationBannerComponent], exports: [ThumbnailComponent,
|
|
30243
30343
|
AvatarComponent,
|
|
30244
30344
|
UserPreviewComponent,
|
|
30245
30345
|
MarkdownParserComponent,
|
|
30246
|
-
ImageInputComponent
|
|
30346
|
+
ImageInputComponent,
|
|
30347
|
+
ApplicationBannerComponent] }); }
|
|
30247
30348
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiElementsModule, providers: [
|
|
30248
30349
|
provideNgIconsConfig({
|
|
30249
30350
|
size: '1.5em',
|
|
@@ -30262,7 +30363,8 @@ class UiElementsModule {
|
|
|
30262
30363
|
BadgeComponent,
|
|
30263
30364
|
MaxLinesComponent,
|
|
30264
30365
|
TextInputComponent,
|
|
30265
|
-
ImageInputComponent
|
|
30366
|
+
ImageInputComponent,
|
|
30367
|
+
ApplicationBannerComponent] }); }
|
|
30266
30368
|
}
|
|
30267
30369
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiElementsModule, decorators: [{
|
|
30268
30370
|
type: NgModule,
|
|
@@ -30286,6 +30388,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
30286
30388
|
MaxLinesComponent,
|
|
30287
30389
|
TextInputComponent,
|
|
30288
30390
|
ImageInputComponent,
|
|
30391
|
+
ApplicationBannerComponent,
|
|
30289
30392
|
],
|
|
30290
30393
|
providers: [
|
|
30291
30394
|
provideNgIconsConfig({
|
|
@@ -30299,6 +30402,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
30299
30402
|
UserPreviewComponent,
|
|
30300
30403
|
MarkdownParserComponent,
|
|
30301
30404
|
ImageInputComponent,
|
|
30405
|
+
ApplicationBannerComponent,
|
|
30302
30406
|
],
|
|
30303
30407
|
}]
|
|
30304
30408
|
}] });
|
|
@@ -30500,6 +30604,7 @@ class ActionMenuComponent {
|
|
|
30500
30604
|
this.duplicate = new EventEmitter();
|
|
30501
30605
|
this.delete = new EventEmitter();
|
|
30502
30606
|
this.closeActionMenu = new EventEmitter();
|
|
30607
|
+
this.rollback = new EventEmitter();
|
|
30503
30608
|
this.sectionDisplayed = 'mainMenu';
|
|
30504
30609
|
}
|
|
30505
30610
|
openMenu() {
|
|
@@ -30510,11 +30615,16 @@ class ActionMenuComponent {
|
|
|
30510
30615
|
this.cdr.markForCheck();
|
|
30511
30616
|
}
|
|
30512
30617
|
displayDeleteMenu() {
|
|
30513
|
-
this.
|
|
30618
|
+
if (this.isDraftPage) {
|
|
30619
|
+
this.sectionDisplayed = 'rollbackMenu';
|
|
30620
|
+
}
|
|
30621
|
+
else {
|
|
30622
|
+
this.sectionDisplayed = 'deleteMenu';
|
|
30623
|
+
}
|
|
30514
30624
|
this.cdr.markForCheck();
|
|
30515
30625
|
}
|
|
30516
30626
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ActionMenuComponent, deps: [{ token: i1$b.MatDialog }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
30517
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ActionMenuComponent, isStandalone: true, selector: "gn-ui-action-menu", inputs: { canDuplicate: "canDuplicate", canDelete: "canDelete" }, outputs: { duplicate: "duplicate", delete: "delete", closeActionMenu: "closeActionMenu" }, viewQueries: [{ propertyName: "trigger", first: true, predicate: MatMenuTrigger, descendants: true }], ngImport: i0, template: "<ng-container [ngSwitch]=\"sectionDisplayed\">\n <ng-container *ngSwitchCase=\"'mainMenu'\">\n <div\n data-test=\"mainMenuSection\"\n class=\"mt-2 border border-gray-100 p-2 flex items-center bg-white shadow-2xl rounded-2xl\"\n >\n <ul class=\"flex flex-col gap-2 w-full\">\n <gn-ui-button\n type=\"light\"\n extraClass=\"flex flex-row items-center gap-2 w-full justify-start\"\n (buttonClick)=\"duplicate.emit()\"\n [disabled]=\"!canDuplicate\"\n data-test=\"record-menu-duplicate-button\"\n >\n <span *ngIf=\"canDuplicate\" translate>record.action.duplicate</span>\n <span *ngIf=\"!canDuplicate\" translate\n >record.action.duplicating</span\n ></gn-ui-button\n >\n <gn-ui-button\n type=\"light\"\n extraClass=\"flex flex-row items-center gap-2 w-full justify-start\"\n (buttonClick)=\"displayDeleteMenu()\"\n [disabled]=\"!canDelete\"\n data-test=\"record-menu-delete-button\"\n ><span translate>record.action.delete</span></gn-ui-button\n >\n </ul>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'deleteMenu'\">\n <div\n data-test=\"deleteMenuSection\"\n class=\"w-72 p-6 flex flex-col gap-3 mt-2 border border-gray-100 bg-white shadow-2xl rounded-2xl\"\n >\n <span class=\"text-lg font-bold text-center\">{{\n 'editor.record.delete.confirmation.title' | translate\n }}</span>\n <span class=\"text-center\">{{\n 'editor.record.delete.confirmation.message' | translate\n }}</span>\n <div class=\"flex flex-row gap-8 justify-center\">\n <gn-ui-button\n (buttonClick)=\"delete.emit()\"\n cdkFocusInitial\n type=\"primary\"\n data-cy=\"confirm-button\"\n [style.--gn-ui-button-width]=\"'100px'\"\n >{{\n 'editor.record.delete.confirmation.confirmText' | translate\n }}</gn-ui-button\n >\n <gn-ui-button\n [style.--gn-ui-button-width]=\"'100px'\"\n (buttonClick)=\"closeActionMenu.emit()\"\n >{{\n 'editor.record.delete.confirmation.cancelText' | translate\n }}</gn-ui-button\n >\n </div>\n </div>\n </ng-container>\n</ng-container>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1$2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "ngmodule", type: MatDialogModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }] }); }
|
|
30627
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ActionMenuComponent, isStandalone: true, selector: "gn-ui-action-menu", inputs: { canDuplicate: "canDuplicate", canDelete: "canDelete", isDraftPage: "isDraftPage" }, outputs: { duplicate: "duplicate", delete: "delete", closeActionMenu: "closeActionMenu", rollback: "rollback" }, viewQueries: [{ propertyName: "trigger", first: true, predicate: MatMenuTrigger, descendants: true }], ngImport: i0, template: "<ng-container [ngSwitch]=\"sectionDisplayed\">\n <ng-container *ngSwitchCase=\"'mainMenu'\">\n <div\n data-test=\"mainMenuSection\"\n class=\"mt-2 border border-gray-100 p-2 flex items-center bg-white shadow-2xl rounded-2xl\"\n >\n <ul class=\"flex flex-col gap-2 w-full\">\n <gn-ui-button\n *ngIf=\"!isDraftPage\"\n type=\"light\"\n extraClass=\"flex flex-row items-center gap-2 w-full justify-start\"\n (buttonClick)=\"duplicate.emit()\"\n [disabled]=\"!canDuplicate\"\n data-test=\"record-menu-duplicate-button\"\n >\n <span *ngIf=\"canDuplicate\" translate>record.action.duplicate</span>\n <span *ngIf=\"!canDuplicate\" translate\n >record.action.duplicating</span\n ></gn-ui-button\n >\n <gn-ui-button\n type=\"light\"\n extraClass=\"flex flex-row items-center gap-2 w-full justify-start\"\n (buttonClick)=\"displayDeleteMenu()\"\n [disabled]=\"!canDelete\"\n data-test=\"record-menu-delete-button\"\n ><span *ngIf=\"!isDraftPage\" translate>record.action.delete</span>\n <span *ngIf=\"isDraftPage\" translate\n >record.action.rollback</span\n ></gn-ui-button\n >\n </ul>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'deleteMenu'\">\n <div\n data-test=\"deleteMenuSection\"\n class=\"w-72 p-6 flex flex-col gap-3 mt-2 border border-gray-100 bg-white shadow-2xl rounded-2xl\"\n >\n <span class=\"text-lg font-bold text-center\">{{\n 'editor.record.delete.confirmation.title' | translate\n }}</span>\n <span class=\"text-center\">{{\n 'editor.record.delete.confirmation.message' | translate\n }}</span>\n <div class=\"flex flex-row gap-8 justify-center\">\n <gn-ui-button\n (buttonClick)=\"delete.emit()\"\n cdkFocusInitial\n type=\"primary\"\n data-cy=\"confirm-button\"\n [style.--gn-ui-button-width]=\"'100px'\"\n >{{\n 'editor.record.delete.confirmation.confirmText' | translate\n }}</gn-ui-button\n >\n <gn-ui-button\n [style.--gn-ui-button-width]=\"'100px'\"\n (buttonClick)=\"closeActionMenu.emit()\"\n >{{\n 'editor.record.delete.confirmation.cancelText' | translate\n }}</gn-ui-button\n >\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'rollbackMenu'\">\n <div\n data-test=\"rollbackMenuSection\"\n class=\"w-80 p-6 flex flex-col gap-3 mt-2 border border-gray-100 bg-white shadow-2xl rounded-2xl\"\n >\n <span class=\"text-lg font-bold text-center\">{{\n 'editor.record.undo.confirmation.title' | translate\n }}</span>\n <span class=\"text-center\">{{\n 'editor.record.undo.confirmation.message' | translate\n }}</span>\n <div class=\"flex flex-row gap-8 justify-center\">\n <gn-ui-button\n (buttonClick)=\"rollback.emit()\"\n cdkFocusInitial\n type=\"primary\"\n data-cy=\"confirm-button\"\n [style.--gn-ui-button-width]=\"'120px'\"\n >{{\n 'editor.record.undo.confirmation.confirmText' | translate\n }}</gn-ui-button\n >\n <gn-ui-button\n [style.--gn-ui-button-width]=\"'120px'\"\n (buttonClick)=\"closeActionMenu.emit()\"\n >{{\n 'editor.record.undo.confirmation.cancelText' | translate\n }}</gn-ui-button\n >\n </div>\n </div>\n </ng-container>\n</ng-container>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1$2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "ngmodule", type: MatDialogModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }] }); }
|
|
30518
30628
|
}
|
|
30519
30629
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ActionMenuComponent, decorators: [{
|
|
30520
30630
|
type: Component,
|
|
@@ -30525,17 +30635,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
30525
30635
|
MatDialogModule,
|
|
30526
30636
|
ConfirmationDialogComponent,
|
|
30527
30637
|
TranslateModule,
|
|
30528
|
-
], template: "<ng-container [ngSwitch]=\"sectionDisplayed\">\n <ng-container *ngSwitchCase=\"'mainMenu'\">\n <div\n data-test=\"mainMenuSection\"\n class=\"mt-2 border border-gray-100 p-2 flex items-center bg-white shadow-2xl rounded-2xl\"\n >\n <ul class=\"flex flex-col gap-2 w-full\">\n <gn-ui-button\n type=\"light\"\n extraClass=\"flex flex-row items-center gap-2 w-full justify-start\"\n (buttonClick)=\"duplicate.emit()\"\n [disabled]=\"!canDuplicate\"\n data-test=\"record-menu-duplicate-button\"\n >\n <span *ngIf=\"canDuplicate\" translate>record.action.duplicate</span>\n <span *ngIf=\"!canDuplicate\" translate\n >record.action.duplicating</span\n ></gn-ui-button\n >\n <gn-ui-button\n type=\"light\"\n extraClass=\"flex flex-row items-center gap-2 w-full justify-start\"\n (buttonClick)=\"displayDeleteMenu()\"\n [disabled]=\"!canDelete\"\n data-test=\"record-menu-delete-button\"\n ><span translate>record.action.delete</span></gn-ui-button\n >\n </ul>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'deleteMenu'\">\n <div\n data-test=\"deleteMenuSection\"\n class=\"w-72 p-6 flex flex-col gap-3 mt-2 border border-gray-100 bg-white shadow-2xl rounded-2xl\"\n >\n <span class=\"text-lg font-bold text-center\">{{\n 'editor.record.delete.confirmation.title' | translate\n }}</span>\n <span class=\"text-center\">{{\n 'editor.record.delete.confirmation.message' | translate\n }}</span>\n <div class=\"flex flex-row gap-8 justify-center\">\n <gn-ui-button\n (buttonClick)=\"delete.emit()\"\n cdkFocusInitial\n type=\"primary\"\n data-cy=\"confirm-button\"\n [style.--gn-ui-button-width]=\"'100px'\"\n >{{\n 'editor.record.delete.confirmation.confirmText' | translate\n }}</gn-ui-button\n >\n <gn-ui-button\n [style.--gn-ui-button-width]=\"'100px'\"\n (buttonClick)=\"closeActionMenu.emit()\"\n >{{\n 'editor.record.delete.confirmation.cancelText' | translate\n }}</gn-ui-button\n >\n </div>\n </div>\n </ng-container>\n</ng-container>\n" }]
|
|
30638
|
+
], template: "<ng-container [ngSwitch]=\"sectionDisplayed\">\n <ng-container *ngSwitchCase=\"'mainMenu'\">\n <div\n data-test=\"mainMenuSection\"\n class=\"mt-2 border border-gray-100 p-2 flex items-center bg-white shadow-2xl rounded-2xl\"\n >\n <ul class=\"flex flex-col gap-2 w-full\">\n <gn-ui-button\n *ngIf=\"!isDraftPage\"\n type=\"light\"\n extraClass=\"flex flex-row items-center gap-2 w-full justify-start\"\n (buttonClick)=\"duplicate.emit()\"\n [disabled]=\"!canDuplicate\"\n data-test=\"record-menu-duplicate-button\"\n >\n <span *ngIf=\"canDuplicate\" translate>record.action.duplicate</span>\n <span *ngIf=\"!canDuplicate\" translate\n >record.action.duplicating</span\n ></gn-ui-button\n >\n <gn-ui-button\n type=\"light\"\n extraClass=\"flex flex-row items-center gap-2 w-full justify-start\"\n (buttonClick)=\"displayDeleteMenu()\"\n [disabled]=\"!canDelete\"\n data-test=\"record-menu-delete-button\"\n ><span *ngIf=\"!isDraftPage\" translate>record.action.delete</span>\n <span *ngIf=\"isDraftPage\" translate\n >record.action.rollback</span\n ></gn-ui-button\n >\n </ul>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'deleteMenu'\">\n <div\n data-test=\"deleteMenuSection\"\n class=\"w-72 p-6 flex flex-col gap-3 mt-2 border border-gray-100 bg-white shadow-2xl rounded-2xl\"\n >\n <span class=\"text-lg font-bold text-center\">{{\n 'editor.record.delete.confirmation.title' | translate\n }}</span>\n <span class=\"text-center\">{{\n 'editor.record.delete.confirmation.message' | translate\n }}</span>\n <div class=\"flex flex-row gap-8 justify-center\">\n <gn-ui-button\n (buttonClick)=\"delete.emit()\"\n cdkFocusInitial\n type=\"primary\"\n data-cy=\"confirm-button\"\n [style.--gn-ui-button-width]=\"'100px'\"\n >{{\n 'editor.record.delete.confirmation.confirmText' | translate\n }}</gn-ui-button\n >\n <gn-ui-button\n [style.--gn-ui-button-width]=\"'100px'\"\n (buttonClick)=\"closeActionMenu.emit()\"\n >{{\n 'editor.record.delete.confirmation.cancelText' | translate\n }}</gn-ui-button\n >\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'rollbackMenu'\">\n <div\n data-test=\"rollbackMenuSection\"\n class=\"w-80 p-6 flex flex-col gap-3 mt-2 border border-gray-100 bg-white shadow-2xl rounded-2xl\"\n >\n <span class=\"text-lg font-bold text-center\">{{\n 'editor.record.undo.confirmation.title' | translate\n }}</span>\n <span class=\"text-center\">{{\n 'editor.record.undo.confirmation.message' | translate\n }}</span>\n <div class=\"flex flex-row gap-8 justify-center\">\n <gn-ui-button\n (buttonClick)=\"rollback.emit()\"\n cdkFocusInitial\n type=\"primary\"\n data-cy=\"confirm-button\"\n [style.--gn-ui-button-width]=\"'120px'\"\n >{{\n 'editor.record.undo.confirmation.confirmText' | translate\n }}</gn-ui-button\n >\n <gn-ui-button\n [style.--gn-ui-button-width]=\"'120px'\"\n (buttonClick)=\"closeActionMenu.emit()\"\n >{{\n 'editor.record.undo.confirmation.cancelText' | translate\n }}</gn-ui-button\n >\n </div>\n </div>\n </ng-container>\n</ng-container>\n" }]
|
|
30529
30639
|
}], ctorParameters: () => [{ type: i1$b.MatDialog }, { type: i0.ChangeDetectorRef }], propDecorators: { canDuplicate: [{
|
|
30530
30640
|
type: Input
|
|
30531
30641
|
}], canDelete: [{
|
|
30532
30642
|
type: Input
|
|
30643
|
+
}], isDraftPage: [{
|
|
30644
|
+
type: Input
|
|
30533
30645
|
}], duplicate: [{
|
|
30534
30646
|
type: Output
|
|
30535
30647
|
}], delete: [{
|
|
30536
30648
|
type: Output
|
|
30537
30649
|
}], closeActionMenu: [{
|
|
30538
30650
|
type: Output
|
|
30651
|
+
}], rollback: [{
|
|
30652
|
+
type: Output
|
|
30539
30653
|
}], trigger: [{
|
|
30540
30654
|
type: ViewChild,
|
|
30541
30655
|
args: [MatMenuTrigger]
|
|
@@ -30560,6 +30674,7 @@ class ResultsTableComponent {
|
|
|
30560
30674
|
this.recordClick = new EventEmitter();
|
|
30561
30675
|
this.duplicateRecord = new EventEmitter();
|
|
30562
30676
|
this.deleteRecord = new EventEmitter();
|
|
30677
|
+
this.rollbackDraft = new EventEmitter();
|
|
30563
30678
|
this.recordsSelectedChange = new EventEmitter();
|
|
30564
30679
|
this.isActionMenuOpen = false;
|
|
30565
30680
|
}
|
|
@@ -30638,6 +30753,10 @@ class ResultsTableComponent {
|
|
|
30638
30753
|
this.deleteRecord.emit(item);
|
|
30639
30754
|
this.closeActionMenu();
|
|
30640
30755
|
}
|
|
30756
|
+
handleRollback(item) {
|
|
30757
|
+
this.rollbackDraft.emit(item);
|
|
30758
|
+
this.closeActionMenu();
|
|
30759
|
+
}
|
|
30641
30760
|
setSortBy(col, order) {
|
|
30642
30761
|
this.sortByChange.emit([col, order]);
|
|
30643
30762
|
}
|
|
@@ -30662,7 +30781,7 @@ class ResultsTableComponent {
|
|
|
30662
30781
|
this.recordsSelectedChange.emit([[record], selected]);
|
|
30663
30782
|
}
|
|
30664
30783
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ResultsTableComponent, deps: [{ token: i1$9.Overlay }, { token: i0.ViewContainerRef }, { token: i0.ChangeDetectorRef }, { token: DateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
30665
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ResultsTableComponent, isStandalone: true, selector: "gn-ui-results-table", inputs: { records: "records", selectedRecordsIdentifiers: "selectedRecordsIdentifiers", sortOrder: "sortOrder", hasDraft: "hasDraft", canDuplicate: "canDuplicate", canDelete: "canDelete", isDraftPage: "isDraftPage", isDuplicating: "isDuplicating" }, outputs: { sortByChange: "sortByChange", recordClick: "recordClick", duplicateRecord: "duplicateRecord", deleteRecord: "deleteRecord", recordsSelectedChange: "recordsSelectedChange" }, providers: [provideIcons({ iconoirUser, iconoirLock, matMoreVert })], viewQueries: [{ propertyName: "actionMenuButtons", predicate: ["actionMenuButton"], descendants: true, read: ElementRef }], ngImport: i0, template: "<gn-ui-interactive-table\n [items]=\"records\"\n [isDraftPage]=\"isDraftPage\"\n (itemClick)=\"handleRecordClick($event)\"\n>\n <!-- SELECTED COLUMN -->\n <gn-ui-interactive-table-column [width]=\"'3rem'\">\n <ng-template #cell let-item let-i=\"index\">\n <ng-icon\n name=\"iconoirLock\"\n class=\"text-purple\"\n *ngIf=\"!item.extras?.edit && !isDraftPage\"\n ></ng-icon>\n <gn-ui-checkbox\n *ngIf=\"item.extras?.edit || isDraftPage\"\n [checked]=\"isChecked(item)\"\n (changed)=\"handleRecordSelectedChange($event, item)\"\n class=\"-m-2\"\n type=\"default\"\n ></gn-ui-checkbox>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- TITLE COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [grow]=\"true\"\n [activeSort]=\"isSortedBy('resourceTitleObject.default.keyword')\"\n (sortChange)=\"setSortBy('resourceTitleObject.default.keyword', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.title</span>\n </ng-template>\n <ng-template #cell let-item>\n <div class=\"flex flex-row items-center gap-2 max-w-full font-semibold\">\n <span data-cy=\"resultItemTitle\" class=\"overflow-hidden text-ellipsis\">{{\n item.title\n }}</span>\n <gn-ui-badge\n *ngIf=\"hasDraft(item)\"\n [style.--gn-ui-badge-padding]=\"'0.2em 0.6em'\"\n [style.--gn-ui-badge-text-size]=\"'12px'\"\n [style.--gn-ui-badge-text-color]=\"'#3d2006'\"\n [style.--gn-ui-badge-background-color]=\"'#ffbc7b'\"\n [style.--gn-ui-badge-rounded]=\"'4px'\"\n >\n <span translate>dashboard.records.hasDraft</span>\n </gn-ui-badge>\n </div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- FORMATS COLUMN -->\n <gn-ui-interactive-table-column [width]=\"'9rem'\">\n <ng-template #header>\n <span translate>record.metadata.formats</span>\n </ng-template>\n <ng-template #cell let-item>\n <div\n class=\"flex justify-start items-center gap-2 font-medium\"\n *ngIf=\"getRecordFormats(item) as formats\"\n [title]=\"formats.join(', ')\"\n >\n <span\n class=\"badge-btn min-w-[45px] text-xs text-gray-900 px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[0])\"\n *ngIf=\"formats[0]\"\n >\n {{ formats[0] }}\n </span>\n <span\n class=\"badge-btn min-w-[45px] text-xs text-gray-900 px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[1])\"\n *ngIf=\"formats[1]\"\n >\n {{ formats[1] }}\n </span>\n <div class=\"shrink-0 text-xs\" *ngIf=\"formats.slice(2).length > 0\">\n <span>+{{ formats.slice(2).length }}</span>\n </div>\n </div>\n <div *ngIf=\"!getRecordFormats(item)\"></div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- OWNER COLUMN -->\n <gn-ui-interactive-table-column\n [width]=\"'12rem'\"\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('recordOwner')\"\n (sortChange)=\"setSortBy('recordOwner', $event)\"\n >\n <ng-template #header>\n <span translate>search.filters.user</span>\n </ng-template>\n <ng-template #cell let-item>\n <ng-icon name=\"iconoirUser\" size=\"16px\"></ng-icon>\n <span data-cy=\"ownerInfo\" class=\"text-xs\">{{\n formatUserInfo(item.extras?.ownerInfo)\n }}</span>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- STATUS COLUMN -->\n <gn-ui-interactive-table-column [width]=\"'6rem'\">\n <ng-template #header>\n <span translate>record.metadata.status</span>\n </ng-template>\n <ng-template #cell let-item>\n <span class=\"text-xs\">\n {{\n (item.extras?.['isPublishedToAll']\n ? 'record.metadata.status.published'\n : 'record.metadata.status.notPublished'\n ) | translate\n }}</span\n >\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- UPDATE DATE COLUMN -->\n <gn-ui-interactive-table-column\n [width]=\"'8rem'\"\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('changeDate')\"\n (sortChange)=\"setSortBy('changeDate', $event)\"\n >\n <ng-template #header>\n <span translate>search.filters.changeDate</span>\n </ng-template>\n <ng-template #cell let-item>\n <div class=\"flex text-left w-full text-xs\">\n {{\n item.extras?.['isPublishedToAll']\n ? dateToString(item.recordUpdated)\n : '-'\n }}\n </div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- ACTION MENU COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header> </ng-template>\n <ng-template #cell let-item>\n <gn-ui-button\n cdkOverlayOrigin\n #actionMenuButton\n (buttonClick)=\"openActionMenu(item, template)\"\n type=\"light\"\n data-test=\"record-menu-button\"\n [disabled]=\"!item.extras?.edit && !isDraftPage\"\n >\n <ng-icon\n [ngClass]=\"{\n 'text-purple-light': !item.extras?.edit && !isDraftPage,\n }\"\n name=\"matMoreVert\"\n ></ng-icon>\n </gn-ui-button>\n <ng-template #template>\n <gn-ui-action-menu\n [canDuplicate]=\"canDuplicate(item) && !isDuplicating\"\n [canDelete]=\"canDelete(item)\"\n (duplicate)=\"handleDuplicate(item)\"\n (delete)=\"handleDelete(item)\"\n (closeActionMenu)=\"closeActionMenu()\"\n >\n </gn-ui-action-menu>\n </ng-template>\n </ng-template>\n </gn-ui-interactive-table-column>\n</gn-ui-interactive-table>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: UiInputsModule }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "component", type: CheckboxComponent, selector: "gn-ui-checkbox", inputs: ["type", "checked", "indeterminate"], outputs: ["changed"] }, { kind: "component", type: BadgeComponent, selector: "gn-ui-badge", inputs: ["clickable", "removable"], outputs: ["badgeRemoveClicked"] }, { kind: "component", type: InteractiveTableComponent, selector: "gn-ui-interactive-table", inputs: ["items", "isDraftPage"], outputs: ["itemClick"] }, { kind: "component", type: InteractiveTableColumnComponent, selector: "gn-ui-interactive-table-column", inputs: ["grow", "width", "sortable", "activeSort"], outputs: ["sortChange"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: ActionMenuComponent, selector: "gn-ui-action-menu", inputs: ["canDuplicate", "canDelete"], outputs: ["duplicate", "delete", "closeActionMenu"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "directive", type: CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }] }); }
|
|
30784
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ResultsTableComponent, isStandalone: true, selector: "gn-ui-results-table", inputs: { records: "records", selectedRecordsIdentifiers: "selectedRecordsIdentifiers", sortOrder: "sortOrder", hasDraft: "hasDraft", canDuplicate: "canDuplicate", canDelete: "canDelete", isDraftPage: "isDraftPage", isDuplicating: "isDuplicating" }, outputs: { sortByChange: "sortByChange", recordClick: "recordClick", duplicateRecord: "duplicateRecord", deleteRecord: "deleteRecord", rollbackDraft: "rollbackDraft", recordsSelectedChange: "recordsSelectedChange" }, providers: [provideIcons({ iconoirUser, iconoirLock, matMoreVert })], viewQueries: [{ propertyName: "actionMenuButtons", predicate: ["actionMenuButton"], descendants: true, read: ElementRef }], ngImport: i0, template: "<gn-ui-interactive-table\n [items]=\"records\"\n [isDraftPage]=\"isDraftPage\"\n (itemClick)=\"handleRecordClick($event)\"\n>\n <!-- SELECTED COLUMN -->\n <gn-ui-interactive-table-column [width]=\"'3rem'\">\n <ng-template #cell let-item let-i=\"index\">\n <ng-icon\n name=\"iconoirLock\"\n class=\"text-purple\"\n *ngIf=\"!item.extras?.edit && !isDraftPage\"\n ></ng-icon>\n <gn-ui-checkbox\n *ngIf=\"item.extras?.edit || isDraftPage\"\n [checked]=\"isChecked(item)\"\n (changed)=\"handleRecordSelectedChange($event, item)\"\n class=\"-m-2\"\n type=\"default\"\n ></gn-ui-checkbox>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- TITLE COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [grow]=\"true\"\n [activeSort]=\"isSortedBy('resourceTitleObject.default.keyword')\"\n (sortChange)=\"setSortBy('resourceTitleObject.default.keyword', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.title</span>\n </ng-template>\n <ng-template #cell let-item>\n <div class=\"flex flex-row items-center gap-2 max-w-full font-semibold\">\n <span data-cy=\"resultItemTitle\" class=\"overflow-hidden text-ellipsis\">{{\n item.title\n }}</span>\n <gn-ui-badge\n *ngIf=\"hasDraft(item)\"\n [style.--gn-ui-badge-padding]=\"'0.2em 0.6em'\"\n [style.--gn-ui-badge-text-size]=\"'12px'\"\n [style.--gn-ui-badge-text-color]=\"'#3d2006'\"\n [style.--gn-ui-badge-background-color]=\"'#ffbc7b'\"\n [style.--gn-ui-badge-rounded]=\"'4px'\"\n >\n <span translate>dashboard.records.hasDraft</span>\n </gn-ui-badge>\n </div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- FORMATS COLUMN -->\n <gn-ui-interactive-table-column [width]=\"'9rem'\">\n <ng-template #header>\n <span translate>record.metadata.formats</span>\n </ng-template>\n <ng-template #cell let-item>\n <div\n class=\"flex justify-start items-center gap-2 font-medium\"\n *ngIf=\"getRecordFormats(item) as formats\"\n [title]=\"formats.join(', ')\"\n >\n <span\n class=\"badge-btn min-w-[45px] text-xs text-gray-900 px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[0])\"\n *ngIf=\"formats[0]\"\n >\n {{ formats[0] }}\n </span>\n <span\n class=\"badge-btn min-w-[45px] text-xs text-gray-900 px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[1])\"\n *ngIf=\"formats[1]\"\n >\n {{ formats[1] }}\n </span>\n <div class=\"shrink-0 text-xs\" *ngIf=\"formats.slice(2).length > 0\">\n <span>+{{ formats.slice(2).length }}</span>\n </div>\n </div>\n <div *ngIf=\"!getRecordFormats(item)\"></div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- OWNER COLUMN -->\n <gn-ui-interactive-table-column\n [width]=\"'12rem'\"\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('recordOwner')\"\n (sortChange)=\"setSortBy('recordOwner', $event)\"\n >\n <ng-template #header>\n <span translate>search.filters.user</span>\n </ng-template>\n <ng-template #cell let-item>\n <ng-icon name=\"iconoirUser\" size=\"16px\"></ng-icon>\n <span data-cy=\"ownerInfo\" class=\"text-xs\">{{\n formatUserInfo(item.extras?.ownerInfo)\n }}</span>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- STATUS COLUMN -->\n <gn-ui-interactive-table-column [width]=\"'6rem'\">\n <ng-template #header>\n <span translate>record.metadata.status</span>\n </ng-template>\n <ng-template #cell let-item>\n <span class=\"text-xs\">\n {{\n (item.extras?.['isPublishedToAll']\n ? 'record.metadata.status.published'\n : 'record.metadata.status.notPublished'\n ) | translate\n }}</span\n >\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- UPDATE DATE COLUMN -->\n <gn-ui-interactive-table-column\n [width]=\"'8rem'\"\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('changeDate')\"\n (sortChange)=\"setSortBy('changeDate', $event)\"\n >\n <ng-template #header>\n <span translate>search.filters.changeDate</span>\n </ng-template>\n <ng-template #cell let-item>\n <div class=\"flex text-left w-full text-xs\">\n {{\n item.extras?.['isPublishedToAll']\n ? dateToString(item.recordUpdated)\n : '-'\n }}\n </div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- ACTION MENU COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header> </ng-template>\n <ng-template #cell let-item>\n <gn-ui-button\n cdkOverlayOrigin\n #actionMenuButton\n (buttonClick)=\"openActionMenu(item, template)\"\n type=\"light\"\n data-test=\"record-menu-button\"\n [disabled]=\"!item.extras?.edit && !isDraftPage\"\n >\n <ng-icon\n [ngClass]=\"{\n 'text-purple-light': !item.extras?.edit && !isDraftPage,\n }\"\n name=\"matMoreVert\"\n ></ng-icon>\n </gn-ui-button>\n <ng-template #template>\n <gn-ui-action-menu\n [canDuplicate]=\"canDuplicate(item) && !isDuplicating\"\n [canDelete]=\"canDelete(item)\"\n [isDraftPage]=\"isDraftPage\"\n (duplicate)=\"handleDuplicate(item)\"\n (delete)=\"handleDelete(item)\"\n (closeActionMenu)=\"closeActionMenu()\"\n (rollback)=\"handleRollback(item)\"\n >\n </gn-ui-action-menu>\n </ng-template>\n </ng-template>\n </gn-ui-interactive-table-column>\n</gn-ui-interactive-table>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: UiInputsModule }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "component", type: CheckboxComponent, selector: "gn-ui-checkbox", inputs: ["type", "checked", "indeterminate"], outputs: ["changed"] }, { kind: "component", type: BadgeComponent, selector: "gn-ui-badge", inputs: ["clickable", "removable"], outputs: ["badgeRemoveClicked"] }, { kind: "component", type: InteractiveTableComponent, selector: "gn-ui-interactive-table", inputs: ["items", "isDraftPage"], outputs: ["itemClick"] }, { kind: "component", type: InteractiveTableColumnComponent, selector: "gn-ui-interactive-table-column", inputs: ["grow", "width", "sortable", "activeSort"], outputs: ["sortChange"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: ActionMenuComponent, selector: "gn-ui-action-menu", inputs: ["canDuplicate", "canDelete", "isDraftPage"], outputs: ["duplicate", "delete", "closeActionMenu", "rollback"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "directive", type: CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }] }); }
|
|
30666
30785
|
}
|
|
30667
30786
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ResultsTableComponent, decorators: [{
|
|
30668
30787
|
type: Component,
|
|
@@ -30676,7 +30795,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
30676
30795
|
ActionMenuComponent,
|
|
30677
30796
|
NgIconComponent,
|
|
30678
30797
|
CdkOverlayOrigin,
|
|
30679
|
-
], providers: [provideIcons({ iconoirUser, iconoirLock, matMoreVert })], template: "<gn-ui-interactive-table\n [items]=\"records\"\n [isDraftPage]=\"isDraftPage\"\n (itemClick)=\"handleRecordClick($event)\"\n>\n <!-- SELECTED COLUMN -->\n <gn-ui-interactive-table-column [width]=\"'3rem'\">\n <ng-template #cell let-item let-i=\"index\">\n <ng-icon\n name=\"iconoirLock\"\n class=\"text-purple\"\n *ngIf=\"!item.extras?.edit && !isDraftPage\"\n ></ng-icon>\n <gn-ui-checkbox\n *ngIf=\"item.extras?.edit || isDraftPage\"\n [checked]=\"isChecked(item)\"\n (changed)=\"handleRecordSelectedChange($event, item)\"\n class=\"-m-2\"\n type=\"default\"\n ></gn-ui-checkbox>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- TITLE COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [grow]=\"true\"\n [activeSort]=\"isSortedBy('resourceTitleObject.default.keyword')\"\n (sortChange)=\"setSortBy('resourceTitleObject.default.keyword', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.title</span>\n </ng-template>\n <ng-template #cell let-item>\n <div class=\"flex flex-row items-center gap-2 max-w-full font-semibold\">\n <span data-cy=\"resultItemTitle\" class=\"overflow-hidden text-ellipsis\">{{\n item.title\n }}</span>\n <gn-ui-badge\n *ngIf=\"hasDraft(item)\"\n [style.--gn-ui-badge-padding]=\"'0.2em 0.6em'\"\n [style.--gn-ui-badge-text-size]=\"'12px'\"\n [style.--gn-ui-badge-text-color]=\"'#3d2006'\"\n [style.--gn-ui-badge-background-color]=\"'#ffbc7b'\"\n [style.--gn-ui-badge-rounded]=\"'4px'\"\n >\n <span translate>dashboard.records.hasDraft</span>\n </gn-ui-badge>\n </div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- FORMATS COLUMN -->\n <gn-ui-interactive-table-column [width]=\"'9rem'\">\n <ng-template #header>\n <span translate>record.metadata.formats</span>\n </ng-template>\n <ng-template #cell let-item>\n <div\n class=\"flex justify-start items-center gap-2 font-medium\"\n *ngIf=\"getRecordFormats(item) as formats\"\n [title]=\"formats.join(', ')\"\n >\n <span\n class=\"badge-btn min-w-[45px] text-xs text-gray-900 px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[0])\"\n *ngIf=\"formats[0]\"\n >\n {{ formats[0] }}\n </span>\n <span\n class=\"badge-btn min-w-[45px] text-xs text-gray-900 px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[1])\"\n *ngIf=\"formats[1]\"\n >\n {{ formats[1] }}\n </span>\n <div class=\"shrink-0 text-xs\" *ngIf=\"formats.slice(2).length > 0\">\n <span>+{{ formats.slice(2).length }}</span>\n </div>\n </div>\n <div *ngIf=\"!getRecordFormats(item)\"></div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- OWNER COLUMN -->\n <gn-ui-interactive-table-column\n [width]=\"'12rem'\"\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('recordOwner')\"\n (sortChange)=\"setSortBy('recordOwner', $event)\"\n >\n <ng-template #header>\n <span translate>search.filters.user</span>\n </ng-template>\n <ng-template #cell let-item>\n <ng-icon name=\"iconoirUser\" size=\"16px\"></ng-icon>\n <span data-cy=\"ownerInfo\" class=\"text-xs\">{{\n formatUserInfo(item.extras?.ownerInfo)\n }}</span>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- STATUS COLUMN -->\n <gn-ui-interactive-table-column [width]=\"'6rem'\">\n <ng-template #header>\n <span translate>record.metadata.status</span>\n </ng-template>\n <ng-template #cell let-item>\n <span class=\"text-xs\">\n {{\n (item.extras?.['isPublishedToAll']\n ? 'record.metadata.status.published'\n : 'record.metadata.status.notPublished'\n ) | translate\n }}</span\n >\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- UPDATE DATE COLUMN -->\n <gn-ui-interactive-table-column\n [width]=\"'8rem'\"\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('changeDate')\"\n (sortChange)=\"setSortBy('changeDate', $event)\"\n >\n <ng-template #header>\n <span translate>search.filters.changeDate</span>\n </ng-template>\n <ng-template #cell let-item>\n <div class=\"flex text-left w-full text-xs\">\n {{\n item.extras?.['isPublishedToAll']\n ? dateToString(item.recordUpdated)\n : '-'\n }}\n </div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- ACTION MENU COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header> </ng-template>\n <ng-template #cell let-item>\n <gn-ui-button\n cdkOverlayOrigin\n #actionMenuButton\n (buttonClick)=\"openActionMenu(item, template)\"\n type=\"light\"\n data-test=\"record-menu-button\"\n [disabled]=\"!item.extras?.edit && !isDraftPage\"\n >\n <ng-icon\n [ngClass]=\"{\n 'text-purple-light': !item.extras?.edit && !isDraftPage,\n }\"\n name=\"matMoreVert\"\n ></ng-icon>\n </gn-ui-button>\n <ng-template #template>\n <gn-ui-action-menu\n [canDuplicate]=\"canDuplicate(item) && !isDuplicating\"\n [canDelete]=\"canDelete(item)\"\n (duplicate)=\"handleDuplicate(item)\"\n (delete)=\"handleDelete(item)\"\n (closeActionMenu)=\"closeActionMenu()\"\n >\n </gn-ui-action-menu>\n </ng-template>\n </ng-template>\n </gn-ui-interactive-table-column>\n</gn-ui-interactive-table>\n" }]
|
|
30798
|
+
], providers: [provideIcons({ iconoirUser, iconoirLock, matMoreVert })], template: "<gn-ui-interactive-table\n [items]=\"records\"\n [isDraftPage]=\"isDraftPage\"\n (itemClick)=\"handleRecordClick($event)\"\n>\n <!-- SELECTED COLUMN -->\n <gn-ui-interactive-table-column [width]=\"'3rem'\">\n <ng-template #cell let-item let-i=\"index\">\n <ng-icon\n name=\"iconoirLock\"\n class=\"text-purple\"\n *ngIf=\"!item.extras?.edit && !isDraftPage\"\n ></ng-icon>\n <gn-ui-checkbox\n *ngIf=\"item.extras?.edit || isDraftPage\"\n [checked]=\"isChecked(item)\"\n (changed)=\"handleRecordSelectedChange($event, item)\"\n class=\"-m-2\"\n type=\"default\"\n ></gn-ui-checkbox>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- TITLE COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [grow]=\"true\"\n [activeSort]=\"isSortedBy('resourceTitleObject.default.keyword')\"\n (sortChange)=\"setSortBy('resourceTitleObject.default.keyword', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.title</span>\n </ng-template>\n <ng-template #cell let-item>\n <div class=\"flex flex-row items-center gap-2 max-w-full font-semibold\">\n <span data-cy=\"resultItemTitle\" class=\"overflow-hidden text-ellipsis\">{{\n item.title\n }}</span>\n <gn-ui-badge\n *ngIf=\"hasDraft(item)\"\n [style.--gn-ui-badge-padding]=\"'0.2em 0.6em'\"\n [style.--gn-ui-badge-text-size]=\"'12px'\"\n [style.--gn-ui-badge-text-color]=\"'#3d2006'\"\n [style.--gn-ui-badge-background-color]=\"'#ffbc7b'\"\n [style.--gn-ui-badge-rounded]=\"'4px'\"\n >\n <span translate>dashboard.records.hasDraft</span>\n </gn-ui-badge>\n </div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- FORMATS COLUMN -->\n <gn-ui-interactive-table-column [width]=\"'9rem'\">\n <ng-template #header>\n <span translate>record.metadata.formats</span>\n </ng-template>\n <ng-template #cell let-item>\n <div\n class=\"flex justify-start items-center gap-2 font-medium\"\n *ngIf=\"getRecordFormats(item) as formats\"\n [title]=\"formats.join(', ')\"\n >\n <span\n class=\"badge-btn min-w-[45px] text-xs text-gray-900 px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[0])\"\n *ngIf=\"formats[0]\"\n >\n {{ formats[0] }}\n </span>\n <span\n class=\"badge-btn min-w-[45px] text-xs text-gray-900 px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[1])\"\n *ngIf=\"formats[1]\"\n >\n {{ formats[1] }}\n </span>\n <div class=\"shrink-0 text-xs\" *ngIf=\"formats.slice(2).length > 0\">\n <span>+{{ formats.slice(2).length }}</span>\n </div>\n </div>\n <div *ngIf=\"!getRecordFormats(item)\"></div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- OWNER COLUMN -->\n <gn-ui-interactive-table-column\n [width]=\"'12rem'\"\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('recordOwner')\"\n (sortChange)=\"setSortBy('recordOwner', $event)\"\n >\n <ng-template #header>\n <span translate>search.filters.user</span>\n </ng-template>\n <ng-template #cell let-item>\n <ng-icon name=\"iconoirUser\" size=\"16px\"></ng-icon>\n <span data-cy=\"ownerInfo\" class=\"text-xs\">{{\n formatUserInfo(item.extras?.ownerInfo)\n }}</span>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- STATUS COLUMN -->\n <gn-ui-interactive-table-column [width]=\"'6rem'\">\n <ng-template #header>\n <span translate>record.metadata.status</span>\n </ng-template>\n <ng-template #cell let-item>\n <span class=\"text-xs\">\n {{\n (item.extras?.['isPublishedToAll']\n ? 'record.metadata.status.published'\n : 'record.metadata.status.notPublished'\n ) | translate\n }}</span\n >\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- UPDATE DATE COLUMN -->\n <gn-ui-interactive-table-column\n [width]=\"'8rem'\"\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('changeDate')\"\n (sortChange)=\"setSortBy('changeDate', $event)\"\n >\n <ng-template #header>\n <span translate>search.filters.changeDate</span>\n </ng-template>\n <ng-template #cell let-item>\n <div class=\"flex text-left w-full text-xs\">\n {{\n item.extras?.['isPublishedToAll']\n ? dateToString(item.recordUpdated)\n : '-'\n }}\n </div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- ACTION MENU COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header> </ng-template>\n <ng-template #cell let-item>\n <gn-ui-button\n cdkOverlayOrigin\n #actionMenuButton\n (buttonClick)=\"openActionMenu(item, template)\"\n type=\"light\"\n data-test=\"record-menu-button\"\n [disabled]=\"!item.extras?.edit && !isDraftPage\"\n >\n <ng-icon\n [ngClass]=\"{\n 'text-purple-light': !item.extras?.edit && !isDraftPage,\n }\"\n name=\"matMoreVert\"\n ></ng-icon>\n </gn-ui-button>\n <ng-template #template>\n <gn-ui-action-menu\n [canDuplicate]=\"canDuplicate(item) && !isDuplicating\"\n [canDelete]=\"canDelete(item)\"\n [isDraftPage]=\"isDraftPage\"\n (duplicate)=\"handleDuplicate(item)\"\n (delete)=\"handleDelete(item)\"\n (closeActionMenu)=\"closeActionMenu()\"\n (rollback)=\"handleRollback(item)\"\n >\n </gn-ui-action-menu>\n </ng-template>\n </ng-template>\n </gn-ui-interactive-table-column>\n</gn-ui-interactive-table>\n" }]
|
|
30680
30799
|
}], ctorParameters: () => [{ type: i1$9.Overlay }, { type: i0.ViewContainerRef }, { type: i0.ChangeDetectorRef }, { type: DateService }], propDecorators: { records: [{
|
|
30681
30800
|
type: Input
|
|
30682
30801
|
}], selectedRecordsIdentifiers: [{
|
|
@@ -30701,6 +30820,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
30701
30820
|
type: Output
|
|
30702
30821
|
}], deleteRecord: [{
|
|
30703
30822
|
type: Output
|
|
30823
|
+
}], rollbackDraft: [{
|
|
30824
|
+
type: Output
|
|
30704
30825
|
}], recordsSelectedChange: [{
|
|
30705
30826
|
type: Output
|
|
30706
30827
|
}], actionMenuButtons: [{
|
|
@@ -32529,6 +32650,51 @@ class DateRangeSearchField extends SimpleSearchField {
|
|
|
32529
32650
|
return 'dateRange';
|
|
32530
32651
|
}
|
|
32531
32652
|
}
|
|
32653
|
+
marker('search.filters.availableServices.view');
|
|
32654
|
+
marker('search.filters.availableServices.download');
|
|
32655
|
+
class AvailableServicesField extends SimpleSearchField {
|
|
32656
|
+
constructor(injector) {
|
|
32657
|
+
super('availableServices', injector, 'asc');
|
|
32658
|
+
this.translateService = this.injector.get(TranslateService);
|
|
32659
|
+
this.linkProtocolViewFilter = '/OGC:WMT?S.*/';
|
|
32660
|
+
this.linkProtocolDownloadFilter = '/OGC:WFS.*/';
|
|
32661
|
+
}
|
|
32662
|
+
async getBucketLabel(bucket) {
|
|
32663
|
+
return firstValueFrom(this.translateService.get(`search.filters.availableServices.${bucket.term}`));
|
|
32664
|
+
}
|
|
32665
|
+
getAggregations() {
|
|
32666
|
+
return {
|
|
32667
|
+
availableServices: {
|
|
32668
|
+
type: 'filters',
|
|
32669
|
+
filters: {
|
|
32670
|
+
view: `+linkProtocol:${this.linkProtocolViewFilter}`,
|
|
32671
|
+
download: `+linkProtocol:${this.linkProtocolDownloadFilter}`,
|
|
32672
|
+
},
|
|
32673
|
+
},
|
|
32674
|
+
};
|
|
32675
|
+
}
|
|
32676
|
+
getFiltersForValues(values) {
|
|
32677
|
+
const filters = {};
|
|
32678
|
+
if (values.includes('view'))
|
|
32679
|
+
filters[this.linkProtocolViewFilter] = true;
|
|
32680
|
+
if (values.includes('download'))
|
|
32681
|
+
filters[this.linkProtocolDownloadFilter] = true;
|
|
32682
|
+
return of({
|
|
32683
|
+
linkProtocol: filters,
|
|
32684
|
+
});
|
|
32685
|
+
}
|
|
32686
|
+
getValuesForFilter(filters) {
|
|
32687
|
+
const linkFilter = filters.linkProtocol;
|
|
32688
|
+
if (!linkFilter)
|
|
32689
|
+
return of([]);
|
|
32690
|
+
const values = [];
|
|
32691
|
+
if (linkFilter[this.linkProtocolViewFilter])
|
|
32692
|
+
values.push('view');
|
|
32693
|
+
if (linkFilter[this.linkProtocolDownloadFilter])
|
|
32694
|
+
values.push('download');
|
|
32695
|
+
return of(values);
|
|
32696
|
+
}
|
|
32697
|
+
}
|
|
32532
32698
|
|
|
32533
32699
|
marker('search.filters.format');
|
|
32534
32700
|
marker('search.filters.inspireKeyword');
|
|
@@ -32570,6 +32736,7 @@ class FieldsService {
|
|
|
32570
32736
|
publisherOrg: new MultilingualSearchField('distributorOrgForResourceObject', this.injector, 'asc', 'key'),
|
|
32571
32737
|
user: new UserSearchField(this.injector),
|
|
32572
32738
|
changeDate: new DateRangeSearchField('changeDate', this.injector, 'desc'),
|
|
32739
|
+
availableServices: new AvailableServicesField(this.injector),
|
|
32573
32740
|
};
|
|
32574
32741
|
}
|
|
32575
32742
|
getAvailableValues(fieldName) {
|
|
@@ -32911,7 +33078,7 @@ class ResultsTableContainerComponent {
|
|
|
32911
33078
|
this.subscription.unsubscribe();
|
|
32912
33079
|
}
|
|
32913
33080
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ResultsTableContainerComponent, deps: [{ token: SearchFacade }, { token: SearchService }, { token: SelectionService }, { token: RecordsRepositoryInterface }, { token: NotificationsService }, { token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
32914
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ResultsTableContainerComponent, isStandalone: true, selector: "gn-ui-results-table-container", inputs: { canDuplicate: "canDuplicate", canDelete: "canDelete", isDuplicating: "isDuplicating" }, outputs: { recordClick: "recordClick", duplicateRecord: "duplicateRecord" }, ngImport: i0, template: "<gn-ui-results-table\n *ngIf=\"searchFacade.results$ | async as records\"\n [records]=\"records\"\n [hasDraft]=\"hasDraft\"\n [selectedRecordsIdentifiers]=\"selectedRecords$ | async\"\n [sortOrder]=\"sortBy$ | async\"\n [canDelete]=\"canDelete\"\n [canDuplicate]=\"canDuplicate\"\n [isDuplicating]=\"isDuplicating\"\n (recordClick)=\"handleRecordClick($event)\"\n (duplicateRecord)=\"handleDuplicateRecord($event)\"\n (deleteRecord)=\"handleDeleteRecord($event)\"\n (recordsSelectedChange)=\"handleRecordsSelectedChange($event[0], $event[1])\"\n (sortByChange)=\"handleSortByChange($event[0], $event[1])\"\n></gn-ui-results-table>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "component", type: ResultsTableComponent, selector: "gn-ui-results-table", inputs: ["records", "selectedRecordsIdentifiers", "sortOrder", "hasDraft", "canDuplicate", "canDelete", "isDraftPage", "isDuplicating"], outputs: ["sortByChange", "recordClick", "duplicateRecord", "deleteRecord", "recordsSelectedChange"] }] }); }
|
|
33081
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ResultsTableContainerComponent, isStandalone: true, selector: "gn-ui-results-table-container", inputs: { canDuplicate: "canDuplicate", canDelete: "canDelete", isDuplicating: "isDuplicating" }, outputs: { recordClick: "recordClick", duplicateRecord: "duplicateRecord" }, ngImport: i0, template: "<gn-ui-results-table\n *ngIf=\"searchFacade.results$ | async as records\"\n [records]=\"records\"\n [hasDraft]=\"hasDraft\"\n [selectedRecordsIdentifiers]=\"selectedRecords$ | async\"\n [sortOrder]=\"sortBy$ | async\"\n [canDelete]=\"canDelete\"\n [canDuplicate]=\"canDuplicate\"\n [isDuplicating]=\"isDuplicating\"\n (recordClick)=\"handleRecordClick($event)\"\n (duplicateRecord)=\"handleDuplicateRecord($event)\"\n (deleteRecord)=\"handleDeleteRecord($event)\"\n (recordsSelectedChange)=\"handleRecordsSelectedChange($event[0], $event[1])\"\n (sortByChange)=\"handleSortByChange($event[0], $event[1])\"\n></gn-ui-results-table>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "component", type: ResultsTableComponent, selector: "gn-ui-results-table", inputs: ["records", "selectedRecordsIdentifiers", "sortOrder", "hasDraft", "canDuplicate", "canDelete", "isDraftPage", "isDuplicating"], outputs: ["sortByChange", "recordClick", "duplicateRecord", "deleteRecord", "rollbackDraft", "recordsSelectedChange"] }] }); }
|
|
32915
33082
|
}
|
|
32916
33083
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ResultsTableContainerComponent, decorators: [{
|
|
32917
33084
|
type: Component,
|
|
@@ -35060,6 +35227,9 @@ const loadFullMetadata = createAction('[Metadata view] Load full metadata', prop
|
|
|
35060
35227
|
const setIncompleteMetadata = createAction('[Metadata view] Set incomplete metadata', props());
|
|
35061
35228
|
const loadFullMetadataSuccess = createAction('[Metadata view] Load full metadata success', props());
|
|
35062
35229
|
const loadFullMetadataFailure = createAction('[Metadata view] Load full metadata failure', props());
|
|
35230
|
+
const loadFeatureCatalog = createAction("[Metadata view] Load metadata's feature catalog", props());
|
|
35231
|
+
const loadFeatureCatalogSuccess = createAction('[Metadata view] Load metadata feature catalog success', props());
|
|
35232
|
+
const loadFeatureCatalogFailure = createAction('[Metadata view] Load metadata feature catalog failure', props());
|
|
35063
35233
|
const closeMetadata = createAction('[Metadata view] close');
|
|
35064
35234
|
/*
|
|
35065
35235
|
Related actions
|
|
@@ -35085,6 +35255,9 @@ var mdview_actions = /*#__PURE__*/Object.freeze({
|
|
|
35085
35255
|
addUserFeedbackFailure: addUserFeedbackFailure,
|
|
35086
35256
|
addUserFeedbackSuccess: addUserFeedbackSuccess,
|
|
35087
35257
|
closeMetadata: closeMetadata,
|
|
35258
|
+
loadFeatureCatalog: loadFeatureCatalog,
|
|
35259
|
+
loadFeatureCatalogFailure: loadFeatureCatalogFailure,
|
|
35260
|
+
loadFeatureCatalogSuccess: loadFeatureCatalogSuccess,
|
|
35088
35261
|
loadFullMetadata: loadFullMetadata,
|
|
35089
35262
|
loadFullMetadataFailure: loadFullMetadataFailure,
|
|
35090
35263
|
loadFullMetadataSuccess: loadFullMetadataSuccess,
|
|
@@ -35102,6 +35275,8 @@ const initialMetadataViewState = {
|
|
|
35102
35275
|
loadingFull: false,
|
|
35103
35276
|
allUserFeedbacksLoading: false,
|
|
35104
35277
|
addUserFeedbackLoading: false,
|
|
35278
|
+
featureCatalogLoading: false,
|
|
35279
|
+
featureCatalogError: null,
|
|
35105
35280
|
};
|
|
35106
35281
|
const metadataViewReducer = createReducer(initialMetadataViewState,
|
|
35107
35282
|
/*
|
|
@@ -35161,6 +35336,22 @@ on(loadUserFeedbacks, (state) => ({
|
|
|
35161
35336
|
error: { otherError, notFound },
|
|
35162
35337
|
addUserFeedbackLoading: false,
|
|
35163
35338
|
allUserFeedbacksLoading: false,
|
|
35339
|
+
})),
|
|
35340
|
+
/**
|
|
35341
|
+
* FeatureCatalog reducers
|
|
35342
|
+
*/
|
|
35343
|
+
on(loadFeatureCatalog, (state) => ({
|
|
35344
|
+
...state,
|
|
35345
|
+
featureCatalogError: null,
|
|
35346
|
+
featureCatalogLoading: true,
|
|
35347
|
+
})), on(loadFeatureCatalogSuccess, (state, { datasetCatalog }) => ({
|
|
35348
|
+
...state,
|
|
35349
|
+
featureCatalog: datasetCatalog,
|
|
35350
|
+
featureCatalogLoading: false,
|
|
35351
|
+
})), on(loadFeatureCatalogFailure, (state, { error }) => ({
|
|
35352
|
+
...state,
|
|
35353
|
+
featureCatalogError: error,
|
|
35354
|
+
featureCatalogLoading: false,
|
|
35164
35355
|
})));
|
|
35165
35356
|
function reducer$1(metadataViewState, action) {
|
|
35166
35357
|
return metadataViewReducer(metadataViewState, action);
|
|
@@ -35189,6 +35380,11 @@ const getChartConfig = createSelector(getMdViewState, (state) => state.chartConf
|
|
|
35189
35380
|
const getUserFeedbacks = createSelector(getMdViewState, (state) => state.userFeedbacks);
|
|
35190
35381
|
const getAllUserFeedbacksLoading = createSelector(getMdViewState, (state) => state.allUserFeedbacksLoading);
|
|
35191
35382
|
const getAddUserFeedbacksLoading = createSelector(getMdViewState, (state) => state.addUserFeedbackLoading);
|
|
35383
|
+
/*
|
|
35384
|
+
Feature Catalog Selectors
|
|
35385
|
+
*/
|
|
35386
|
+
const getFeatureCatalog = createSelector(getMdViewState, (state) => state.featureCatalog);
|
|
35387
|
+
const getFeatureCatalogIsLoading = createSelector(getMdViewState, (state) => state.featureCatalogLoading);
|
|
35192
35388
|
|
|
35193
35389
|
class FetchError {
|
|
35194
35390
|
constructor(type, info, httpStatus = 0) {
|
|
@@ -35304,8 +35500,8 @@ function fetchHeaders(url) {
|
|
|
35304
35500
|
return parseHeaders(response.headers);
|
|
35305
35501
|
});
|
|
35306
35502
|
}
|
|
35307
|
-
function fetchDataAsText(url) {
|
|
35308
|
-
|
|
35503
|
+
function fetchDataAsText(url, cacheActive) {
|
|
35504
|
+
const fetchFactory = () => sharedFetch(url)
|
|
35309
35505
|
.catch((error) => {
|
|
35310
35506
|
throw FetchError.corsOrNetwork(error.message);
|
|
35311
35507
|
})
|
|
@@ -35314,10 +35510,11 @@ function fetchDataAsText(url) {
|
|
|
35314
35510
|
throw FetchError.http(response.status, await response.text());
|
|
35315
35511
|
}
|
|
35316
35512
|
return response.text();
|
|
35317
|
-
})
|
|
35513
|
+
});
|
|
35514
|
+
return cacheActive ? useCache(fetchFactory, url, 'asText') : fetchFactory();
|
|
35318
35515
|
}
|
|
35319
|
-
function fetchDataAsArrayBuffer(url) {
|
|
35320
|
-
|
|
35516
|
+
function fetchDataAsArrayBuffer(url, cacheActive) {
|
|
35517
|
+
const fetchFactory = () => sharedFetch(url)
|
|
35321
35518
|
.catch((error) => {
|
|
35322
35519
|
throw FetchError.corsOrNetwork(error.message);
|
|
35323
35520
|
})
|
|
@@ -35327,7 +35524,8 @@ function fetchDataAsArrayBuffer(url) {
|
|
|
35327
35524
|
}
|
|
35328
35525
|
// convert to a numeric array so that we can store the response in cache
|
|
35329
35526
|
return Array.from(new Uint8Array(await response.arrayBuffer()));
|
|
35330
|
-
})
|
|
35527
|
+
});
|
|
35528
|
+
return (cacheActive ? useCache(fetchFactory, url, 'asArrayBuffer') : fetchFactory()).then((array) => {
|
|
35331
35529
|
return new Uint8Array(array).buffer;
|
|
35332
35530
|
});
|
|
35333
35531
|
}
|
|
@@ -35473,68 +35671,6 @@ function getJsonDataItemsProxy(items) {
|
|
|
35473
35671
|
});
|
|
35474
35672
|
}
|
|
35475
35673
|
|
|
35476
|
-
class BaseReader {
|
|
35477
|
-
constructor(url) {
|
|
35478
|
-
this.url = url;
|
|
35479
|
-
this.selected = null;
|
|
35480
|
-
this.groupedBy = null;
|
|
35481
|
-
this.aggregations = null;
|
|
35482
|
-
this.filter = null;
|
|
35483
|
-
this.sort = null;
|
|
35484
|
-
this.startIndex = null;
|
|
35485
|
-
this.count = null;
|
|
35486
|
-
}
|
|
35487
|
-
load() {
|
|
35488
|
-
throw new Error('not implemented');
|
|
35489
|
-
}
|
|
35490
|
-
get properties() {
|
|
35491
|
-
throw new Error('not implemented');
|
|
35492
|
-
}
|
|
35493
|
-
get info() {
|
|
35494
|
-
throw new Error('not implemented');
|
|
35495
|
-
}
|
|
35496
|
-
read() {
|
|
35497
|
-
throw new Error('not implemented');
|
|
35498
|
-
}
|
|
35499
|
-
selectAll() {
|
|
35500
|
-
this.groupedBy = null;
|
|
35501
|
-
this.aggregations = null;
|
|
35502
|
-
this.selected = null;
|
|
35503
|
-
this.filter = null;
|
|
35504
|
-
this.startIndex = null;
|
|
35505
|
-
this.count = null;
|
|
35506
|
-
return this;
|
|
35507
|
-
}
|
|
35508
|
-
select(...selectedFields) {
|
|
35509
|
-
this.selected = selectedFields;
|
|
35510
|
-
this.aggregations = null; // clear aggregations & groups when selecting fields
|
|
35511
|
-
this.groupedBy = null;
|
|
35512
|
-
return this;
|
|
35513
|
-
}
|
|
35514
|
-
groupBy(...groupBy) {
|
|
35515
|
-
this.groupedBy = groupBy;
|
|
35516
|
-
this.selected = null; // clear normal field selection when aggregating
|
|
35517
|
-
return this;
|
|
35518
|
-
}
|
|
35519
|
-
aggregate(...aggregations) {
|
|
35520
|
-
this.aggregations = aggregations;
|
|
35521
|
-
return this;
|
|
35522
|
-
}
|
|
35523
|
-
where(filter) {
|
|
35524
|
-
this.filter = filter;
|
|
35525
|
-
return this;
|
|
35526
|
-
}
|
|
35527
|
-
orderBy(...fieldSorts) {
|
|
35528
|
-
this.sort = fieldSorts;
|
|
35529
|
-
return this;
|
|
35530
|
-
}
|
|
35531
|
-
limit(startIndex, count) {
|
|
35532
|
-
this.startIndex = startIndex;
|
|
35533
|
-
this.count = count;
|
|
35534
|
-
return this;
|
|
35535
|
-
}
|
|
35536
|
-
}
|
|
35537
|
-
|
|
35538
35674
|
function filterToSql(filter) {
|
|
35539
35675
|
const operator = filter[0];
|
|
35540
35676
|
const args = filter.slice(1);
|
|
@@ -35628,7 +35764,80 @@ function generateSqlQuery(selected = null, filter = null, sort = null, startInde
|
|
|
35628
35764
|
return sqlSelect + sqlFrom + sqlGroupBy + sqlOrderBy + sqlWhere + sqlLimit;
|
|
35629
35765
|
}
|
|
35630
35766
|
|
|
35631
|
-
class
|
|
35767
|
+
class BaseReader {
|
|
35768
|
+
constructor(url) {
|
|
35769
|
+
this.url = url;
|
|
35770
|
+
this.selected = null;
|
|
35771
|
+
this.groupedBy = null;
|
|
35772
|
+
this.aggregations = null;
|
|
35773
|
+
this.filter = null;
|
|
35774
|
+
this.sort = null;
|
|
35775
|
+
this.startIndex = null;
|
|
35776
|
+
this.count = null;
|
|
35777
|
+
}
|
|
35778
|
+
load() {
|
|
35779
|
+
throw new Error('not implemented');
|
|
35780
|
+
}
|
|
35781
|
+
get properties() {
|
|
35782
|
+
throw new Error('not implemented');
|
|
35783
|
+
}
|
|
35784
|
+
get info() {
|
|
35785
|
+
throw new Error('not implemented');
|
|
35786
|
+
}
|
|
35787
|
+
read() {
|
|
35788
|
+
throw new Error('not implemented');
|
|
35789
|
+
}
|
|
35790
|
+
selectAll() {
|
|
35791
|
+
this.groupedBy = null;
|
|
35792
|
+
this.aggregations = null;
|
|
35793
|
+
this.selected = null;
|
|
35794
|
+
this.filter = null;
|
|
35795
|
+
this.startIndex = null;
|
|
35796
|
+
this.count = null;
|
|
35797
|
+
return this;
|
|
35798
|
+
}
|
|
35799
|
+
select(...selectedFields) {
|
|
35800
|
+
this.selected = selectedFields;
|
|
35801
|
+
this.aggregations = null; // clear aggregations & groups when selecting fields
|
|
35802
|
+
this.groupedBy = null;
|
|
35803
|
+
return this;
|
|
35804
|
+
}
|
|
35805
|
+
groupBy(...groupBy) {
|
|
35806
|
+
this.groupedBy = groupBy;
|
|
35807
|
+
this.selected = null; // clear normal field selection when aggregating
|
|
35808
|
+
return this;
|
|
35809
|
+
}
|
|
35810
|
+
aggregate(...aggregations) {
|
|
35811
|
+
this.aggregations = aggregations;
|
|
35812
|
+
return this;
|
|
35813
|
+
}
|
|
35814
|
+
where(filter) {
|
|
35815
|
+
this.filter = filter;
|
|
35816
|
+
return this;
|
|
35817
|
+
}
|
|
35818
|
+
orderBy(...fieldSorts) {
|
|
35819
|
+
this.sort = fieldSorts;
|
|
35820
|
+
return this;
|
|
35821
|
+
}
|
|
35822
|
+
limit(startIndex, count) {
|
|
35823
|
+
this.startIndex = startIndex;
|
|
35824
|
+
this.count = count;
|
|
35825
|
+
return this;
|
|
35826
|
+
}
|
|
35827
|
+
}
|
|
35828
|
+
|
|
35829
|
+
class BaseCacheReader extends BaseReader {
|
|
35830
|
+
constructor(url, cacheActive = true) {
|
|
35831
|
+
super(url);
|
|
35832
|
+
this.url = url;
|
|
35833
|
+
this.cacheActive = cacheActive;
|
|
35834
|
+
}
|
|
35835
|
+
setCacheActive(value) {
|
|
35836
|
+
this.cacheActive = value;
|
|
35837
|
+
}
|
|
35838
|
+
}
|
|
35839
|
+
|
|
35840
|
+
class BaseFileReader extends BaseCacheReader {
|
|
35632
35841
|
getData() {
|
|
35633
35842
|
throw new Error('not implemented');
|
|
35634
35843
|
}
|
|
@@ -35692,7 +35901,7 @@ function parseCsv(text) {
|
|
|
35692
35901
|
}
|
|
35693
35902
|
class CsvReader extends BaseFileReader {
|
|
35694
35903
|
getData() {
|
|
35695
|
-
return fetchDataAsText(this.url).then(parseCsv);
|
|
35904
|
+
return fetchDataAsText(this.url, this.cacheActive).then(parseCsv);
|
|
35696
35905
|
}
|
|
35697
35906
|
}
|
|
35698
35907
|
|
|
@@ -35709,7 +35918,7 @@ function parseJson(text) {
|
|
|
35709
35918
|
}
|
|
35710
35919
|
class JsonReader extends BaseFileReader {
|
|
35711
35920
|
getData() {
|
|
35712
|
-
return fetchDataAsText(this.url).then(parseJson);
|
|
35921
|
+
return fetchDataAsText(this.url, this.cacheActive).then(parseJson);
|
|
35713
35922
|
}
|
|
35714
35923
|
}
|
|
35715
35924
|
|
|
@@ -35728,7 +35937,7 @@ function parseGeojson(text) {
|
|
|
35728
35937
|
}
|
|
35729
35938
|
class GeojsonReader extends BaseFileReader {
|
|
35730
35939
|
getData() {
|
|
35731
|
-
return fetchDataAsText(this.url).then(parseGeojson);
|
|
35940
|
+
return fetchDataAsText(this.url, this.cacheActive).then(parseGeojson);
|
|
35732
35941
|
}
|
|
35733
35942
|
}
|
|
35734
35943
|
|
|
@@ -35750,7 +35959,7 @@ function parseExcel(buffer) {
|
|
|
35750
35959
|
}
|
|
35751
35960
|
class ExcelReader extends BaseFileReader {
|
|
35752
35961
|
getData() {
|
|
35753
|
-
return fetchDataAsArrayBuffer(this.url).then(parseExcel);
|
|
35962
|
+
return fetchDataAsArrayBuffer(this.url, this.cacheActive).then(parseExcel);
|
|
35754
35963
|
}
|
|
35755
35964
|
}
|
|
35756
35965
|
|
|
@@ -35777,19 +35986,21 @@ function parseGml(text, namespace, version) {
|
|
|
35777
35986
|
throw Error("Couldn't retrieve namespace url");
|
|
35778
35987
|
}
|
|
35779
35988
|
class GmlReader extends BaseFileReader {
|
|
35780
|
-
constructor(url, namespace, version) {
|
|
35989
|
+
constructor(url, namespace, version, cacheActive = true) {
|
|
35781
35990
|
super(url);
|
|
35991
|
+
this.url = url;
|
|
35782
35992
|
this.namespace = namespace;
|
|
35783
35993
|
this.version = version;
|
|
35994
|
+
this.cacheActive = cacheActive;
|
|
35784
35995
|
}
|
|
35785
35996
|
getData() {
|
|
35786
|
-
return fetchDataAsText(this.url).then((text) => parseGml(text, this.namespace, this.version));
|
|
35997
|
+
return fetchDataAsText(this.url, this.cacheActive).then((text) => parseGml(text, this.namespace, this.version));
|
|
35787
35998
|
}
|
|
35788
35999
|
}
|
|
35789
36000
|
|
|
35790
|
-
class WfsReader extends
|
|
35791
|
-
constructor(url, wfsEndpoint, featureTypeName) {
|
|
35792
|
-
super(url);
|
|
36001
|
+
class WfsReader extends BaseCacheReader {
|
|
36002
|
+
constructor(url, wfsEndpoint, featureTypeName, cacheActive) {
|
|
36003
|
+
super(url, cacheActive);
|
|
35793
36004
|
this.endpoint = wfsEndpoint;
|
|
35794
36005
|
this.featureTypeName = featureTypeName;
|
|
35795
36006
|
this.version = this.endpoint.getVersion();
|
|
@@ -35844,9 +36055,9 @@ class WfsReader extends BaseReader {
|
|
|
35844
36055
|
throw new Error('wfs.geojsongml.notsupported');
|
|
35845
36056
|
}
|
|
35846
36057
|
}
|
|
35847
|
-
getData() {
|
|
35848
|
-
if (
|
|
35849
|
-
|
|
36058
|
+
async getData(aggregation, groupedBy) {
|
|
36059
|
+
if (aggregation || groupedBy) {
|
|
36060
|
+
return { items: await this.getQueryData() };
|
|
35850
36061
|
}
|
|
35851
36062
|
const asJson = this.endpoint.supportsJson(this.featureTypeName);
|
|
35852
36063
|
const attributes = this.selected ?? undefined;
|
|
@@ -35866,19 +36077,26 @@ class WfsReader extends BaseReader {
|
|
|
35866
36077
|
// Direct update on string url to prevent encoding of +A and +D
|
|
35867
36078
|
url = `${url}${finalUrl.search ? '&' : ''}SORTBY=${sorts}`;
|
|
35868
36079
|
}
|
|
35869
|
-
return fetchDataAsText(url).then((text) => asJson
|
|
36080
|
+
return fetchDataAsText(url, this.cacheActive).then((text) => asJson
|
|
35870
36081
|
? parseGeojson(text)
|
|
35871
36082
|
: parseGml(text, this.featureTypeName, this.version));
|
|
35872
36083
|
}
|
|
36084
|
+
async getQueryData() {
|
|
36085
|
+
const items = (await this.getData()).items;
|
|
36086
|
+
const jsonItems = getJsonDataItemsProxy(items);
|
|
36087
|
+
const query = generateSqlQuery(this.selected, this.filter, this.sort, this.startIndex, this.count, this.groupedBy, this.aggregations);
|
|
36088
|
+
const result = await import('alasql').then((module) => module.default(query, [jsonItems]));
|
|
36089
|
+
return result.map(jsonToGeojsonFeature);
|
|
36090
|
+
}
|
|
35873
36091
|
load() {
|
|
35874
36092
|
// Nothing to load for Wfs
|
|
35875
36093
|
}
|
|
35876
36094
|
async read() {
|
|
35877
|
-
return (await this.getData()).items;
|
|
36095
|
+
return (await this.getData(this.aggregations, this.groupedBy)).items;
|
|
35878
36096
|
}
|
|
35879
36097
|
}
|
|
35880
36098
|
|
|
35881
|
-
async function openDataset(url, typeHint, options) {
|
|
36099
|
+
async function openDataset(url, typeHint, options, cacheActive) {
|
|
35882
36100
|
const fileType = await inferDatasetType(url, typeHint);
|
|
35883
36101
|
let reader;
|
|
35884
36102
|
try {
|
|
@@ -35902,6 +36120,7 @@ async function openDataset(url, typeHint, options) {
|
|
|
35902
36120
|
reader = await WfsReader.createReader(url, options.wfsFeatureType);
|
|
35903
36121
|
break;
|
|
35904
36122
|
}
|
|
36123
|
+
reader.setCacheActive(cacheActive);
|
|
35905
36124
|
reader.load();
|
|
35906
36125
|
return reader;
|
|
35907
36126
|
}
|
|
@@ -35918,8 +36137,8 @@ async function openDataset(url, typeHint, options) {
|
|
|
35918
36137
|
* 2. otherwise, look for a Content-Type header in the response with a supported mime type
|
|
35919
36138
|
* 3. if no valid mime type was found, look for an explicit file extension in the url (.csv, .geojson etc.)
|
|
35920
36139
|
*/
|
|
35921
|
-
async function readDataset(url, typeHint, options) {
|
|
35922
|
-
const reader = await openDataset(url, typeHint, options);
|
|
36140
|
+
async function readDataset(url, typeHint, options, cacheActive = true) {
|
|
36141
|
+
const reader = await openDataset(url, typeHint, options, cacheActive);
|
|
35923
36142
|
try {
|
|
35924
36143
|
return await reader.read();
|
|
35925
36144
|
}
|
|
@@ -36023,18 +36242,28 @@ class DataService {
|
|
|
36023
36242
|
}
|
|
36024
36243
|
getDownloadLinksFromWfs(wfsLink) {
|
|
36025
36244
|
// Pour DL toutes les données
|
|
36026
|
-
return this.getDownloadUrlsFromWfs(wfsLink.url.toString(), wfsLink.name).pipe(map$1((urls) =>
|
|
36027
|
-
|
|
36028
|
-
|
|
36029
|
-
|
|
36030
|
-
|
|
36031
|
-
}))
|
|
36245
|
+
return this.getDownloadUrlsFromWfs(wfsLink.url.toString(), wfsLink.name).pipe(map$1((urls) => {
|
|
36246
|
+
if (urls.geojson) {
|
|
36247
|
+
urls.all['application/json'] = urls.geojson;
|
|
36248
|
+
}
|
|
36249
|
+
return urls;
|
|
36250
|
+
}), map$1((urls) => {
|
|
36251
|
+
const resources = Object.keys(urls.all).map((format) => ({
|
|
36252
|
+
...wfsLink,
|
|
36253
|
+
name: wfsLink.name,
|
|
36254
|
+
type: 'download',
|
|
36255
|
+
url: new URL(urls.all[format]),
|
|
36256
|
+
mimeType: getMimeTypeForFormat(getFileFormatFromServiceOutput(format)),
|
|
36257
|
+
}));
|
|
36258
|
+
return resources;
|
|
36259
|
+
}));
|
|
36032
36260
|
}
|
|
36033
36261
|
async getDownloadLinksFromOgcApiFeatures(ogcApiLink) {
|
|
36034
36262
|
const collectionInfo = await this.getDownloadUrlsFromOgcApi(ogcApiLink.url.href);
|
|
36035
36263
|
return Object.keys(collectionInfo.bulkDownloadLinks).map((downloadLink) => {
|
|
36036
36264
|
return {
|
|
36037
36265
|
...ogcApiLink,
|
|
36266
|
+
name: collectionInfo.id,
|
|
36038
36267
|
type: 'download',
|
|
36039
36268
|
url: new URL(collectionInfo.bulkDownloadLinks[downloadLink]),
|
|
36040
36269
|
mimeType: getMimeTypeForFormat(getFileFormatFromServiceOutput(downloadLink)),
|
|
@@ -36070,18 +36299,18 @@ class DataService {
|
|
|
36070
36299
|
mimeType: getMimeTypeForFormat(getFileFormatFromServiceOutput(format)),
|
|
36071
36300
|
}));
|
|
36072
36301
|
}
|
|
36073
|
-
readAsGeoJson(link) {
|
|
36074
|
-
return this.getDataset(link).pipe(switchMap$1((dataset) => dataset.selectAll().read()), map$1((features) => ({
|
|
36302
|
+
readAsGeoJson(link, cacheActive) {
|
|
36303
|
+
return this.getDataset(link, cacheActive).pipe(switchMap$1((dataset) => dataset.selectAll().read()), map$1((features) => ({
|
|
36075
36304
|
type: 'FeatureCollection',
|
|
36076
36305
|
features,
|
|
36077
36306
|
})));
|
|
36078
36307
|
}
|
|
36079
|
-
getDataset(link) {
|
|
36308
|
+
getDataset(link, cacheActive) {
|
|
36080
36309
|
if (link.type === 'service' && link.accessServiceProtocol === 'wfs') {
|
|
36081
36310
|
const wfsUrlEndpoint = this.proxy.getProxiedUrl(link.url.toString());
|
|
36082
36311
|
return from(openDataset(wfsUrlEndpoint, 'wfs', {
|
|
36083
36312
|
wfsFeatureType: link.name,
|
|
36084
|
-
}));
|
|
36313
|
+
}, cacheActive));
|
|
36085
36314
|
}
|
|
36086
36315
|
else if (link.type === 'download') {
|
|
36087
36316
|
const linkProxifiedUrl = this.proxy.getProxiedUrl(link.url.toString());
|
|
@@ -36089,18 +36318,18 @@ class DataService {
|
|
|
36089
36318
|
const supportedType = SupportedTypes.indexOf(format) > -1
|
|
36090
36319
|
? format
|
|
36091
36320
|
: undefined;
|
|
36092
|
-
return from(openDataset(linkProxifiedUrl, supportedType)).pipe();
|
|
36321
|
+
return from(openDataset(linkProxifiedUrl, supportedType, undefined, cacheActive)).pipe();
|
|
36093
36322
|
}
|
|
36094
36323
|
else if (link.type === 'service' &&
|
|
36095
36324
|
link.accessServiceProtocol === 'esriRest') {
|
|
36096
36325
|
const url = this.getDownloadUrlFromEsriRest(link.url.toString(), 'geojson');
|
|
36097
|
-
return from(openDataset(url, 'geojson')).pipe();
|
|
36326
|
+
return from(openDataset(url, 'geojson', undefined, cacheActive)).pipe();
|
|
36098
36327
|
}
|
|
36099
36328
|
else if (link.type === 'service' &&
|
|
36100
36329
|
link.accessServiceProtocol === 'ogcFeatures') {
|
|
36101
36330
|
return from(this.getDownloadUrlsFromOgcApi(link.url.href)).pipe(switchMap$1((collectionInfo) => {
|
|
36102
36331
|
const geojsonUrl = collectionInfo.jsonDownloadLink;
|
|
36103
|
-
return openDataset(geojsonUrl, 'geojson');
|
|
36332
|
+
return openDataset(geojsonUrl, 'geojson', undefined, cacheActive);
|
|
36104
36333
|
}), tap$1((url) => {
|
|
36105
36334
|
if (url === null) {
|
|
36106
36335
|
throw new Error('wfs.geojsongml.notsupported');
|
|
@@ -36665,6 +36894,7 @@ class ChartViewComponent {
|
|
|
36665
36894
|
this.dataService = dataService;
|
|
36666
36895
|
this.changeDetector = changeDetector;
|
|
36667
36896
|
this.translateService = translateService;
|
|
36897
|
+
this.cacheActive = true;
|
|
36668
36898
|
this.currentLink$ = new BehaviorSubject(null);
|
|
36669
36899
|
this.aggregation$ = new BehaviorSubject('sum');
|
|
36670
36900
|
this.xProperty$ = new BehaviorSubject(undefined);
|
|
@@ -36694,7 +36924,7 @@ class ChartViewComponent {
|
|
|
36694
36924
|
this.dataset$ = this.currentLink$.pipe(filter((link) => !!link), switchMap$1((link) => {
|
|
36695
36925
|
this.error = null;
|
|
36696
36926
|
this.loading = true;
|
|
36697
|
-
return this.dataService.getDataset(link).pipe(catchError((error) => {
|
|
36927
|
+
return this.dataService.getDataset(link, this.cacheActive).pipe(catchError((error) => {
|
|
36698
36928
|
this.handleError(error);
|
|
36699
36929
|
return EMPTY;
|
|
36700
36930
|
}));
|
|
@@ -36763,7 +36993,7 @@ class ChartViewComponent {
|
|
|
36763
36993
|
this.changeDetector.detectChanges();
|
|
36764
36994
|
}
|
|
36765
36995
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ChartViewComponent, deps: [{ token: DataService }, { token: i0.ChangeDetectorRef }, { token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
36766
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ChartViewComponent, isStandalone: true, selector: "gn-ui-chart-view", inputs: { link: "link", aggregation: "aggregation", xProperty: "xProperty", yProperty: "yProperty", chartType: "chartType" }, outputs: { chartConfig$: "chartConfig$" }, ngImport: i0, template: "<div class=\"w-full h-full flex flex-col\">\n <div\n class=\"flex flex-col space-y-2 sm:flex-row sm:space-y-0 sm:space-x-2 justify-between text-[13px]\"\n >\n <gn-ui-dropdown-selector\n class=\"basis-1/4\"\n [choices]=\"typeChoices\"\n [extraBtnClass]=\"'secondary min-w-full'\"\n (selectValue)=\"chartType$.next($event)\"\n [selected]=\"chartType$.value\"\n [title]=\"'chart.dropdown.type' | translate\"\n ></gn-ui-dropdown-selector>\n <gn-ui-dropdown-selector\n class=\"basis-1/4\"\n [choices]=\"xChoices$ | async\"\n [extraBtnClass]=\"'secondary min-w-full'\"\n (selectValue)=\"xProperty$.next($event)\"\n [selected]=\"xProperty$.value\"\n [title]=\"'chart.dropdown.xProperty' | translate\"\n ></gn-ui-dropdown-selector>\n <gn-ui-dropdown-selector\n class=\"basis-1/4\"\n *ngIf=\"!isCountAggregation\"\n [choices]=\"yChoices$ | async\"\n (selectValue)=\"yProperty$.next($event)\"\n [selected]=\"yProperty$.value\"\n [title]=\"'chart.dropdown.yProperty' | translate\"\n class=\"select-y-prop\"\n ></gn-ui-dropdown-selector>\n <gn-ui-dropdown-selector\n class=\"basis-1/4\"\n [choices]=\"aggregationChoices\"\n class=\"aggregation-choices\"\n (selectValue)=\"aggregation$.next($event)\"\n [selected]=\"aggregation$.value\"\n [title]=\"'chart.dropdown.aggregation' | translate\"\n ></gn-ui-dropdown-selector>\n </div>\n <div\n class=\"relative h-full mt-2 bg-white border border-gray-300 rounded-lg overflow-hidden\"\n >\n <gn-ui-chart\n [data]=\"chartData$ | async\"\n [type]=\"chartType$.value\"\n [labelProperty]=\"labelProperty\"\n [valueProperty]=\"valueProperty\"\n ></gn-ui-chart>\n <gn-ui-loading-mask\n *ngIf=\"loading\"\n class=\"absolute inset-0\"\n [message]=\"'chart.loading.data' | translate\"\n ></gn-ui-loading-mask>\n <gn-ui-popup-alert\n *ngIf=\"error\"\n type=\"warning\"\n icon=\"matErrorOutlineOutline\"\n class=\"absolute m-2 inset-0\"\n >\n <span>{{ error }}</span>\n </gn-ui-popup-alert>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "component", type: DropdownSelectorComponent, selector: "gn-ui-dropdown-selector", inputs: ["title", "showTitle", "ariaName", "choices", "selected", "maxRows", "extraBtnClass", "minWidth", "disabled"], outputs: ["selectValue"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "component", type: ChartComponent, selector: "gn-ui-chart", inputs: ["data", "labelProperty", "valueProperty", "secondaryValueProperty", "type"] }, { kind: "component", type: LoadingMaskComponent, selector: "gn-ui-loading-mask", inputs: ["message"] }, { kind: "component", type: PopupAlertComponent, selector: "gn-ui-popup-alert", inputs: ["icon", "type", "position"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
36996
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ChartViewComponent, isStandalone: true, selector: "gn-ui-chart-view", inputs: { cacheActive: "cacheActive", link: "link", aggregation: "aggregation", xProperty: "xProperty", yProperty: "yProperty", chartType: "chartType" }, outputs: { chartConfig$: "chartConfig$" }, ngImport: i0, template: "<div class=\"w-full h-full flex flex-col\">\n <div\n class=\"flex flex-col space-y-2 sm:flex-row sm:space-y-0 sm:space-x-2 justify-between text-[13px]\"\n >\n <gn-ui-dropdown-selector\n class=\"basis-1/4\"\n [choices]=\"typeChoices\"\n [extraBtnClass]=\"'secondary min-w-full'\"\n (selectValue)=\"chartType$.next($event)\"\n [selected]=\"chartType$.value\"\n [title]=\"'chart.dropdown.type' | translate\"\n ></gn-ui-dropdown-selector>\n <gn-ui-dropdown-selector\n class=\"basis-1/4\"\n [choices]=\"xChoices$ | async\"\n [extraBtnClass]=\"'secondary min-w-full'\"\n (selectValue)=\"xProperty$.next($event)\"\n [selected]=\"xProperty$.value\"\n [title]=\"'chart.dropdown.xProperty' | translate\"\n ></gn-ui-dropdown-selector>\n <gn-ui-dropdown-selector\n class=\"basis-1/4\"\n *ngIf=\"!isCountAggregation\"\n [choices]=\"yChoices$ | async\"\n (selectValue)=\"yProperty$.next($event)\"\n [selected]=\"yProperty$.value\"\n [title]=\"'chart.dropdown.yProperty' | translate\"\n class=\"select-y-prop\"\n ></gn-ui-dropdown-selector>\n <gn-ui-dropdown-selector\n class=\"basis-1/4\"\n [choices]=\"aggregationChoices\"\n class=\"aggregation-choices\"\n (selectValue)=\"aggregation$.next($event)\"\n [selected]=\"aggregation$.value\"\n [title]=\"'chart.dropdown.aggregation' | translate\"\n ></gn-ui-dropdown-selector>\n </div>\n <div\n class=\"relative h-full mt-2 bg-white border border-gray-300 rounded-lg overflow-hidden\"\n >\n <gn-ui-chart\n [data]=\"chartData$ | async\"\n [type]=\"chartType$.value\"\n [labelProperty]=\"labelProperty\"\n [valueProperty]=\"valueProperty\"\n ></gn-ui-chart>\n <gn-ui-loading-mask\n *ngIf=\"loading\"\n class=\"absolute inset-0\"\n [message]=\"'chart.loading.data' | translate\"\n ></gn-ui-loading-mask>\n <gn-ui-popup-alert\n *ngIf=\"error\"\n type=\"warning\"\n icon=\"matErrorOutlineOutline\"\n class=\"absolute m-2 inset-0\"\n >\n <span>{{ error }}</span>\n </gn-ui-popup-alert>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "component", type: DropdownSelectorComponent, selector: "gn-ui-dropdown-selector", inputs: ["title", "showTitle", "ariaName", "choices", "selected", "maxRows", "extraBtnClass", "minWidth", "disabled"], outputs: ["selectValue"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "component", type: ChartComponent, selector: "gn-ui-chart", inputs: ["data", "labelProperty", "valueProperty", "secondaryValueProperty", "type"] }, { kind: "component", type: LoadingMaskComponent, selector: "gn-ui-loading-mask", inputs: ["message"] }, { kind: "component", type: PopupAlertComponent, selector: "gn-ui-popup-alert", inputs: ["icon", "type", "position"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
36767
36997
|
}
|
|
36768
36998
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ChartViewComponent, decorators: [{
|
|
36769
36999
|
type: Component,
|
|
@@ -36775,7 +37005,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
36775
37005
|
LoadingMaskComponent,
|
|
36776
37006
|
PopupAlertComponent,
|
|
36777
37007
|
], standalone: true, template: "<div class=\"w-full h-full flex flex-col\">\n <div\n class=\"flex flex-col space-y-2 sm:flex-row sm:space-y-0 sm:space-x-2 justify-between text-[13px]\"\n >\n <gn-ui-dropdown-selector\n class=\"basis-1/4\"\n [choices]=\"typeChoices\"\n [extraBtnClass]=\"'secondary min-w-full'\"\n (selectValue)=\"chartType$.next($event)\"\n [selected]=\"chartType$.value\"\n [title]=\"'chart.dropdown.type' | translate\"\n ></gn-ui-dropdown-selector>\n <gn-ui-dropdown-selector\n class=\"basis-1/4\"\n [choices]=\"xChoices$ | async\"\n [extraBtnClass]=\"'secondary min-w-full'\"\n (selectValue)=\"xProperty$.next($event)\"\n [selected]=\"xProperty$.value\"\n [title]=\"'chart.dropdown.xProperty' | translate\"\n ></gn-ui-dropdown-selector>\n <gn-ui-dropdown-selector\n class=\"basis-1/4\"\n *ngIf=\"!isCountAggregation\"\n [choices]=\"yChoices$ | async\"\n (selectValue)=\"yProperty$.next($event)\"\n [selected]=\"yProperty$.value\"\n [title]=\"'chart.dropdown.yProperty' | translate\"\n class=\"select-y-prop\"\n ></gn-ui-dropdown-selector>\n <gn-ui-dropdown-selector\n class=\"basis-1/4\"\n [choices]=\"aggregationChoices\"\n class=\"aggregation-choices\"\n (selectValue)=\"aggregation$.next($event)\"\n [selected]=\"aggregation$.value\"\n [title]=\"'chart.dropdown.aggregation' | translate\"\n ></gn-ui-dropdown-selector>\n </div>\n <div\n class=\"relative h-full mt-2 bg-white border border-gray-300 rounded-lg overflow-hidden\"\n >\n <gn-ui-chart\n [data]=\"chartData$ | async\"\n [type]=\"chartType$.value\"\n [labelProperty]=\"labelProperty\"\n [valueProperty]=\"valueProperty\"\n ></gn-ui-chart>\n <gn-ui-loading-mask\n *ngIf=\"loading\"\n class=\"absolute inset-0\"\n [message]=\"'chart.loading.data' | translate\"\n ></gn-ui-loading-mask>\n <gn-ui-popup-alert\n *ngIf=\"error\"\n type=\"warning\"\n icon=\"matErrorOutlineOutline\"\n class=\"absolute m-2 inset-0\"\n >\n <span>{{ error }}</span>\n </gn-ui-popup-alert>\n </div>\n</div>\n" }]
|
|
36778
|
-
}], ctorParameters: () => [{ type: DataService }, { type: i0.ChangeDetectorRef }, { type: i1$1.TranslateService }], propDecorators: {
|
|
37008
|
+
}], ctorParameters: () => [{ type: DataService }, { type: i0.ChangeDetectorRef }, { type: i1$1.TranslateService }], propDecorators: { cacheActive: [{
|
|
37009
|
+
type: Input
|
|
37010
|
+
}], link: [{
|
|
36779
37011
|
type: Input
|
|
36780
37012
|
}], aggregation: [{
|
|
36781
37013
|
type: Input
|
|
@@ -36948,6 +37180,7 @@ class TableViewComponent {
|
|
|
36948
37180
|
constructor(dataService, translateService) {
|
|
36949
37181
|
this.dataService = dataService;
|
|
36950
37182
|
this.translateService = translateService;
|
|
37183
|
+
this.cacheActive = true;
|
|
36951
37184
|
this.currentLink$ = new BehaviorSubject(null);
|
|
36952
37185
|
this.loading = false;
|
|
36953
37186
|
this.error = null;
|
|
@@ -36965,7 +37198,7 @@ class TableViewComponent {
|
|
|
36965
37198
|
}), startWith(undefined), shareReplay(1));
|
|
36966
37199
|
}
|
|
36967
37200
|
getDatasetReader(link) {
|
|
36968
|
-
return this.dataService.getDataset(link);
|
|
37201
|
+
return this.dataService.getDataset(link, this.cacheActive);
|
|
36969
37202
|
}
|
|
36970
37203
|
onTableSelect(event) {
|
|
36971
37204
|
console.log(event);
|
|
@@ -36988,7 +37221,7 @@ class TableViewComponent {
|
|
|
36988
37221
|
this.loading = false;
|
|
36989
37222
|
}
|
|
36990
37223
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TableViewComponent, deps: [{ token: DataService }, { token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
36991
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TableViewComponent, isStandalone: true, selector: "gn-ui-table-view", inputs: { link: "link" }, ngImport: i0, template: "<div class=\"w-full h-full flex flex-col\">\n <div class=\"relative h-full\">\n <gn-ui-data-table\n *ngIf=\"tableData$ | async as dataset\"\n class=\"overflow-auto grow\"\n [dataset]=\"dataset\"\n (selected)=\"onTableSelect($event)\"\n ></gn-ui-data-table>\n <gn-ui-loading-mask\n *ngIf=\"loading\"\n class=\"absolute inset-0\"\n [message]=\"'table.loading.data' | translate\"\n ></gn-ui-loading-mask>\n <gn-ui-popup-alert\n *ngIf=\"error\"\n type=\"warning\"\n icon=\"matErrorOutlineOutline\"\n class=\"absolute m-2 inset-0\"\n >\n <span translate>{{ error }}</span>\n </gn-ui-popup-alert>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "component", type: DataTableComponent, selector: "gn-ui-data-table", inputs: ["dataset", "activeId"], outputs: ["selected"] }, { kind: "component", type: LoadingMaskComponent, selector: "gn-ui-loading-mask", inputs: ["message"] }, { kind: "component", type: PopupAlertComponent, selector: "gn-ui-popup-alert", inputs: ["icon", "type", "position"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
37224
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TableViewComponent, isStandalone: true, selector: "gn-ui-table-view", inputs: { cacheActive: "cacheActive", link: "link" }, ngImport: i0, template: "<div class=\"w-full h-full flex flex-col\">\n <div class=\"relative h-full\">\n <gn-ui-data-table\n *ngIf=\"tableData$ | async as dataset\"\n class=\"overflow-auto grow\"\n [dataset]=\"dataset\"\n (selected)=\"onTableSelect($event)\"\n ></gn-ui-data-table>\n <gn-ui-loading-mask\n *ngIf=\"loading\"\n class=\"absolute inset-0\"\n [message]=\"'table.loading.data' | translate\"\n ></gn-ui-loading-mask>\n <gn-ui-popup-alert\n *ngIf=\"error\"\n type=\"warning\"\n icon=\"matErrorOutlineOutline\"\n class=\"absolute m-2 inset-0\"\n >\n <span translate>{{ error }}</span>\n </gn-ui-popup-alert>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "component", type: DataTableComponent, selector: "gn-ui-data-table", inputs: ["dataset", "activeId"], outputs: ["selected"] }, { kind: "component", type: LoadingMaskComponent, selector: "gn-ui-loading-mask", inputs: ["message"] }, { kind: "component", type: PopupAlertComponent, selector: "gn-ui-popup-alert", inputs: ["icon", "type", "position"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
36992
37225
|
}
|
|
36993
37226
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TableViewComponent, decorators: [{
|
|
36994
37227
|
type: Component,
|
|
@@ -36999,7 +37232,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
36999
37232
|
PopupAlertComponent,
|
|
37000
37233
|
TranslateModule,
|
|
37001
37234
|
], standalone: true, template: "<div class=\"w-full h-full flex flex-col\">\n <div class=\"relative h-full\">\n <gn-ui-data-table\n *ngIf=\"tableData$ | async as dataset\"\n class=\"overflow-auto grow\"\n [dataset]=\"dataset\"\n (selected)=\"onTableSelect($event)\"\n ></gn-ui-data-table>\n <gn-ui-loading-mask\n *ngIf=\"loading\"\n class=\"absolute inset-0\"\n [message]=\"'table.loading.data' | translate\"\n ></gn-ui-loading-mask>\n <gn-ui-popup-alert\n *ngIf=\"error\"\n type=\"warning\"\n icon=\"matErrorOutlineOutline\"\n class=\"absolute m-2 inset-0\"\n >\n <span translate>{{ error }}</span>\n </gn-ui-popup-alert>\n </div>\n</div>\n" }]
|
|
37002
|
-
}], ctorParameters: () => [{ type: DataService }, { type: i1$1.TranslateService }], propDecorators: {
|
|
37235
|
+
}], ctorParameters: () => [{ type: DataService }, { type: i1$1.TranslateService }], propDecorators: { cacheActive: [{
|
|
37236
|
+
type: Input
|
|
37237
|
+
}], link: [{
|
|
37003
37238
|
type: Input
|
|
37004
37239
|
}] } });
|
|
37005
37240
|
|
|
@@ -37018,7 +37253,15 @@ class MdViewFacade {
|
|
|
37018
37253
|
this.isPresent$ = this.store.pipe(select(getMetadataUuid), map$1((uuid) => !!uuid));
|
|
37019
37254
|
this.isMetadataLoading$ = this.store.pipe(select(getMetadataIsLoading));
|
|
37020
37255
|
this.metadata$ = this.store.pipe(select(getMetadata), filter((md) => !!md));
|
|
37256
|
+
this.featureCatalog$ = this.store.pipe(select(getFeatureCatalog));
|
|
37021
37257
|
this.isIncomplete$ = this.store.pipe(select(getMetadataIsIncomplete), filter((incomplete) => incomplete !== null));
|
|
37258
|
+
this.isHighUpdateFrequency$ = this.metadata$.pipe(map$1((record) => {
|
|
37259
|
+
if (record.updateFrequency instanceof Object) {
|
|
37260
|
+
return (record.updateFrequency.per === 'day' &&
|
|
37261
|
+
record.updateFrequency.updatedTimes > 1);
|
|
37262
|
+
}
|
|
37263
|
+
return record.updateFrequency === 'continual';
|
|
37264
|
+
}));
|
|
37022
37265
|
this.error$ = this.store.pipe(select(getMetadataError));
|
|
37023
37266
|
this.related$ = this.store.pipe(select(getRelated));
|
|
37024
37267
|
this.chartConfig$ = this.store.pipe(select(getChartConfig));
|
|
@@ -37114,6 +37357,11 @@ class MdViewEffects {
|
|
|
37114
37357
|
}
|
|
37115
37358
|
return loadFullMetadataSuccess({ full: record });
|
|
37116
37359
|
}), catchError((error) => of(loadFullMetadataFailure({ otherError: error.message })))));
|
|
37360
|
+
this.loadFeatureCatalog$ = createEffect(() => this.actions$.pipe(ofType(loadFullMetadataSuccess), filter(({ full }) => full !== undefined), switchMap$1(({ full }) => this.recordsRepository.getFeatureCatalog(full)), map$1((featureCatalog) => loadFeatureCatalogSuccess({
|
|
37361
|
+
datasetCatalog: featureCatalog,
|
|
37362
|
+
})), catchError((error) => of(loadFeatureCatalogFailure({
|
|
37363
|
+
error: error.message,
|
|
37364
|
+
})))));
|
|
37117
37365
|
/*
|
|
37118
37366
|
Related effects
|
|
37119
37367
|
*/
|
|
@@ -37703,6 +37951,7 @@ class DataViewComponent {
|
|
|
37703
37951
|
this.mdViewFacade = mdViewFacade;
|
|
37704
37952
|
this.displaySource = true;
|
|
37705
37953
|
this.chartConfig$ = new BehaviorSubject(null);
|
|
37954
|
+
this.cacheActive$ = this.mdViewFacade.isHighUpdateFrequency$.pipe(map$1((highF) => !highF));
|
|
37706
37955
|
this.compatibleDataLinks$ = combineLatest([
|
|
37707
37956
|
this.mdViewFacade.dataLinks$,
|
|
37708
37957
|
this.mdViewFacade.geoDataLinks$,
|
|
@@ -37730,7 +37979,7 @@ class DataViewComponent {
|
|
|
37730
37979
|
this.selectedLink$.next(link);
|
|
37731
37980
|
}
|
|
37732
37981
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DataViewComponent, deps: [{ token: MdViewFacade }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
37733
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DataViewComponent, isStandalone: true, selector: "gn-ui-data-view", inputs: { mode: "mode", displaySource: "displaySource" }, outputs: { chartConfig$: "chartConfig$" }, ngImport: i0, template: "<div class=\"w-full h-full flex flex-col p-1\">\n <gn-ui-dropdown-selector\n *ngIf=\"dropdownChoices$ | async as choices\"\n [ngClass]=\"{ hidden: !displaySource }\"\n [title]=\"'table.select.data' | translate\"\n class=\"truncate p-1 -mx-1 self-end mb-1\"\n extraBtnClass=\"!text-primary font-sans font-medium\"\n [choices]=\"choices\"\n (selectValue)=\"selectLink($event)\"\n ></gn-ui-dropdown-selector>\n <div class=\"relative h-[460px]\">\n <gn-ui-table-view\n *ngIf=\"mode === 'table'\"\n [link]=\"selectedLink$ | async\"\n ></gn-ui-table-view>\n <gn-ui-chart-view\n *ngIf=\"mode === 'chart'\"\n (chartConfig$)=\"setChartConfig($event)\"\n [link]=\"selectedLink$ | async\"\n ></gn-ui-chart-view>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "component", type: DropdownSelectorComponent, selector: "gn-ui-dropdown-selector", inputs: ["title", "showTitle", "ariaName", "choices", "selected", "maxRows", "extraBtnClass", "minWidth", "disabled"], outputs: ["selectValue"] }, { kind: "component", type: TableViewComponent, selector: "gn-ui-table-view", inputs: ["link"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "component", type: ChartViewComponent, selector: "gn-ui-chart-view", inputs: ["link", "aggregation", "xProperty", "yProperty", "chartType"], outputs: ["chartConfig$"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
37982
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DataViewComponent, isStandalone: true, selector: "gn-ui-data-view", inputs: { mode: "mode", displaySource: "displaySource" }, outputs: { chartConfig$: "chartConfig$" }, ngImport: i0, template: "<div class=\"w-full h-full flex flex-col p-1\">\n <gn-ui-dropdown-selector\n *ngIf=\"dropdownChoices$ | async as choices\"\n [ngClass]=\"{ hidden: !displaySource }\"\n [title]=\"'table.select.data' | translate\"\n class=\"truncate p-1 -mx-1 self-end mb-1\"\n extraBtnClass=\"!text-primary font-sans font-medium\"\n [choices]=\"choices\"\n (selectValue)=\"selectLink($event)\"\n ></gn-ui-dropdown-selector>\n <div class=\"relative h-[460px]\">\n <gn-ui-table-view\n *ngIf=\"mode === 'table'\"\n [cacheActive]=\"cacheActive$ | async\"\n [link]=\"selectedLink$ | async\"\n ></gn-ui-table-view>\n <gn-ui-chart-view\n *ngIf=\"mode === 'chart'\"\n (chartConfig$)=\"setChartConfig($event)\"\n [cacheActive]=\"cacheActive$ | async\"\n [link]=\"selectedLink$ | async\"\n ></gn-ui-chart-view>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "component", type: DropdownSelectorComponent, selector: "gn-ui-dropdown-selector", inputs: ["title", "showTitle", "ariaName", "choices", "selected", "maxRows", "extraBtnClass", "minWidth", "disabled"], outputs: ["selectValue"] }, { kind: "component", type: TableViewComponent, selector: "gn-ui-table-view", inputs: ["cacheActive", "link"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "component", type: ChartViewComponent, selector: "gn-ui-chart-view", inputs: ["cacheActive", "link", "aggregation", "xProperty", "yProperty", "chartType"], outputs: ["chartConfig$"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
37734
37983
|
}
|
|
37735
37984
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DataViewComponent, decorators: [{
|
|
37736
37985
|
type: Component,
|
|
@@ -37740,7 +37989,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
37740
37989
|
TableViewComponent,
|
|
37741
37990
|
TranslateModule,
|
|
37742
37991
|
ChartViewComponent,
|
|
37743
|
-
], template: "<div class=\"w-full h-full flex flex-col p-1\">\n <gn-ui-dropdown-selector\n *ngIf=\"dropdownChoices$ | async as choices\"\n [ngClass]=\"{ hidden: !displaySource }\"\n [title]=\"'table.select.data' | translate\"\n class=\"truncate p-1 -mx-1 self-end mb-1\"\n extraBtnClass=\"!text-primary font-sans font-medium\"\n [choices]=\"choices\"\n (selectValue)=\"selectLink($event)\"\n ></gn-ui-dropdown-selector>\n <div class=\"relative h-[460px]\">\n <gn-ui-table-view\n *ngIf=\"mode === 'table'\"\n [link]=\"selectedLink$ | async\"\n ></gn-ui-table-view>\n <gn-ui-chart-view\n *ngIf=\"mode === 'chart'\"\n (chartConfig$)=\"setChartConfig($event)\"\n [link]=\"selectedLink$ | async\"\n ></gn-ui-chart-view>\n </div>\n</div>\n" }]
|
|
37992
|
+
], template: "<div class=\"w-full h-full flex flex-col p-1\">\n <gn-ui-dropdown-selector\n *ngIf=\"dropdownChoices$ | async as choices\"\n [ngClass]=\"{ hidden: !displaySource }\"\n [title]=\"'table.select.data' | translate\"\n class=\"truncate p-1 -mx-1 self-end mb-1\"\n extraBtnClass=\"!text-primary font-sans font-medium\"\n [choices]=\"choices\"\n (selectValue)=\"selectLink($event)\"\n ></gn-ui-dropdown-selector>\n <div class=\"relative h-[460px]\">\n <gn-ui-table-view\n *ngIf=\"mode === 'table'\"\n [cacheActive]=\"cacheActive$ | async\"\n [link]=\"selectedLink$ | async\"\n ></gn-ui-table-view>\n <gn-ui-chart-view\n *ngIf=\"mode === 'chart'\"\n (chartConfig$)=\"setChartConfig($event)\"\n [cacheActive]=\"cacheActive$ | async\"\n [link]=\"selectedLink$ | async\"\n ></gn-ui-chart-view>\n </div>\n</div>\n" }]
|
|
37744
37993
|
}], ctorParameters: () => [{ type: MdViewFacade }], propDecorators: { mode: [{
|
|
37745
37994
|
type: Input
|
|
37746
37995
|
}], displaySource: [{
|
|
@@ -38033,7 +38282,8 @@ class MapViewComponent {
|
|
|
38033
38282
|
link.accessServiceProtocol === 'esriRest' ||
|
|
38034
38283
|
link.accessServiceProtocol === 'ogcFeatures')) ||
|
|
38035
38284
|
link.type === 'download') {
|
|
38036
|
-
|
|
38285
|
+
const cacheActive = true; // TODO implement whether should be true or false
|
|
38286
|
+
return this.dataService.readAsGeoJson(link, cacheActive).pipe(map$1((data) => ({
|
|
38037
38287
|
type: 'geojson',
|
|
38038
38288
|
data,
|
|
38039
38289
|
})));
|
|
@@ -38548,8 +38798,8 @@ const DEFAULT_CONFIGURATION = {
|
|
|
38548
38798
|
labelKey: marker('editor.record.form.page.description'),
|
|
38549
38799
|
sections: [
|
|
38550
38800
|
TITLE_SECTION,
|
|
38551
|
-
ABOUT_SECTION,
|
|
38552
38801
|
CLASSIFICATION_SECTION,
|
|
38802
|
+
ABOUT_SECTION,
|
|
38553
38803
|
GEOGRAPHICAL_COVERAGE_SECTION,
|
|
38554
38804
|
],
|
|
38555
38805
|
},
|
|
@@ -39708,7 +39958,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
39708
39958
|
|
|
39709
39959
|
class FormFieldRichComponent {
|
|
39710
39960
|
constructor() {
|
|
39711
|
-
this.placeholder = '
|
|
39961
|
+
this.placeholder = '';
|
|
39712
39962
|
this.valueChange = new EventEmitter();
|
|
39713
39963
|
this.preview = false;
|
|
39714
39964
|
}
|
|
@@ -39957,6 +40207,7 @@ class FormFieldContactsForResourceComponent {
|
|
|
39957
40207
|
'owner',
|
|
39958
40208
|
'point_of_contact',
|
|
39959
40209
|
'author',
|
|
40210
|
+
'publisher',
|
|
39960
40211
|
];
|
|
39961
40212
|
this.roleSectionsToDisplay = [];
|
|
39962
40213
|
this.allOrganizations = new Map();
|
|
@@ -41097,7 +41348,7 @@ class ConstraintCardComponent {
|
|
|
41097
41348
|
provideNgIconsConfig({
|
|
41098
41349
|
size: '1.5rem',
|
|
41099
41350
|
}),
|
|
41100
|
-
], ngImport: i0, template: "<div class=\"flex flex-col gap-1 border rounded-lg p-4\">\n <gn-ui-form-field-rich\n class=\"mt-[-8px]\"\n [label]=\"label\"\n [
|
|
41351
|
+
], ngImport: i0, template: "<div class=\"flex flex-col gap-1 border rounded-lg p-4\">\n <gn-ui-form-field-rich\n class=\"mt-[-8px]\"\n [label]=\"label\"\n [placeholder]=\"hint | translate\"\n [value]=\"constraint_.text ?? ''\"\n (valueChange)=\"handleConstraintTextChange($event)\"\n ></gn-ui-form-field-rich>\n\n <div *ngIf=\"!showUrl\" class=\"flex-none mt-1\">\n <gn-ui-button\n (buttonClick)=\"showUrl = true\"\n type=\"gray\"\n data-cy=\"add-url-btn\"\n >\n <ng-icon name=\"iconoirPlus\" class=\"text-primary\"></ng-icon> \n <span translate>input.image.displayUrlInput</span>\n </gn-ui-button>\n </div>\n <gn-ui-url-input\n *ngIf=\"showUrl\"\n class=\"mt-3.5\"\n [value]=\"constraint_.url?.toString()\"\n (valueChange)=\"handleURLChange($event)\"\n [showValidateButton]=\"false\"\n >\n </gn-ui-url-input>\n</div>\n", styles: [":host{--gn-ui-button-padding: 8px 8px;--gn-ui-button-rounded: 8px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FormFieldRichComponent, selector: "gn-ui-form-field-rich", inputs: ["label", "hint", "placeholder", "value"], outputs: ["valueChange"] }, { kind: "component", type: UrlInputComponent, selector: "gn-ui-url-input", inputs: ["value", "extraClass", "placeholder", "disabled", "showValidateButton"], outputs: ["valueChange", "uploadClick"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
41101
41352
|
}
|
|
41102
41353
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ConstraintCardComponent, decorators: [{
|
|
41103
41354
|
type: Component,
|
|
@@ -41115,7 +41366,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
41115
41366
|
provideNgIconsConfig({
|
|
41116
41367
|
size: '1.5rem',
|
|
41117
41368
|
}),
|
|
41118
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"flex flex-col gap-1 border rounded-lg p-4\">\n <gn-ui-form-field-rich\n class=\"mt-[-8px]\"\n [label]=\"label\"\n [
|
|
41369
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"flex flex-col gap-1 border rounded-lg p-4\">\n <gn-ui-form-field-rich\n class=\"mt-[-8px]\"\n [label]=\"label\"\n [placeholder]=\"hint | translate\"\n [value]=\"constraint_.text ?? ''\"\n (valueChange)=\"handleConstraintTextChange($event)\"\n ></gn-ui-form-field-rich>\n\n <div *ngIf=\"!showUrl\" class=\"flex-none mt-1\">\n <gn-ui-button\n (buttonClick)=\"showUrl = true\"\n type=\"gray\"\n data-cy=\"add-url-btn\"\n >\n <ng-icon name=\"iconoirPlus\" class=\"text-primary\"></ng-icon> \n <span translate>input.image.displayUrlInput</span>\n </gn-ui-button>\n </div>\n <gn-ui-url-input\n *ngIf=\"showUrl\"\n class=\"mt-3.5\"\n [value]=\"constraint_.url?.toString()\"\n (valueChange)=\"handleURLChange($event)\"\n [showValidateButton]=\"false\"\n >\n </gn-ui-url-input>\n</div>\n", styles: [":host{--gn-ui-button-padding: 8px 8px;--gn-ui-button-rounded: 8px}\n"] }]
|
|
41119
41370
|
}], propDecorators: { label: [{
|
|
41120
41371
|
type: Input
|
|
41121
41372
|
}], constraint: [{
|
|
@@ -41774,5 +42025,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
41774
42025
|
* Generated bundle index. Do not edit.
|
|
41775
42026
|
*/
|
|
41776
42027
|
|
|
41777
|
-
export { ADD_RESULTS, ADD_SEARCH, AbstractAction, AbstractSearchField, AddLayerFromCatalogComponent, AddLayerRecordPreviewComponent, AddResults, AddSearch, AnchorLinkDirective, ApiCardComponent, AuthService, AutocompleteComponent, AvatarComponent, AvatarServiceInterface, BASEMAP_LAYERS, BadgeComponent, BaseConverter, BaseFileReader, BaseReader, BlockListComponent, ButtonComponent, CLEAR_ERROR, CLEAR_RESULTS, CarouselComponent, CatalogTitleComponent, ChartComponent, ChartViewComponent, CheckToggleComponent, CheckboxComponent, ChipsInputComponent, ClearError, ClearResults, ColorScaleComponent, ConfirmationDialogComponent, ContentGhostComponent, CopyTextButtonComponent, DEFAULT_GN4_LOGIN_URL, DEFAULT_GN4_LOGOUT_URL, DEFAULT_GN4_SETTINGS_URL, DEFAULT_LANG, DEFAULT_PAGE_SIZE, DEFAULT_RESULTS_LAYOUT_CONFIG, DEFAULT_SEARCH_KEY, DO_NOT_USE_DEFAULT_BASEMAP, DataService, DataTableComponent, DataViewComponent, DataViewPermalinkComponent, DataViewShareComponent, DataViewWebComponentComponent, DatePickerComponent, DateRangeDropdownComponent, DateRangePickerComponent, DateRangeSearchField, DateService, DcatApConverter, DefaultRouterModule, DownloadItemComponent, DownloadsListComponent, DragAndDropFileInputComponent, DropdownMultiselectComponent, DropdownSelectorComponent, EDITOR_FEATURE_KEY, ES_QUERY_FIELDS_PRIORITY, ES_RESOURCES_VALUES, ES_SOURCE_SUMMARY, EXTERNAL_VIEWER_OPEN_NEW_TAB, EXTERNAL_VIEWER_URL_TEMPLATE, EditableLabelDirective, EditorFacade, EditorService, ElasticsearchService, EmbeddedTranslateLoader, ErrorComponent, ErrorType, ExpandablePanelButtonComponent, ExpandablePanelComponent, ExternalViewerButtonComponent, FIELDS_BRIEF, FIELDS_SUMMARY, FILTER_GEOMETRY, FILTER_SUMMARY_IGNORE_LIST, FORMATS, FacetBlockComponent, FacetBlockStubComponent, FacetItemComponent, FacetItemStubComponent, FacetListComponent, FacetsContainerComponent, FacetsModule, FavoriteStarComponent, FavoritesService, FeatureAuthModule, FeatureCatalogModule, FeatureDetailComponent, FeatureEditorModule, FeatureMapModule, FeatureNotificationsModule, FeatureRecordModule, FeatureSearchModule, FetchError, FieldsService, FigureComponent, FigureContainerComponent, FileInputComponent, FileTranslateLoader, FilesDropDirective, FilterDropdownComponent, FormFieldWrapperComponent, FullTextSearchField, FuzzySearchComponent, GN_UI_VERSION, GeoTableViewComponent, GeocodingComponent, GeojsonReader, Gn4Converter, Gn4PlatformMapper, Gn4PlatformService, Gn4Repository, Gn4SettingsService, GpfApiDlComponent, GravatarService, HttpLoaderFactory, I18nInterceptor, ImageFallbackDirective, ImageInputComponent, ImageOverlayPreviewComponent, ImportRecordComponent, InteractiveTableColumnComponent, InteractiveTableComponent, IsSpatialSearchField, Iso191153Converter, Iso19139Converter, LANGUAGES_LIST, LANGUAGE_NAMES, LANGUAGE_STORAGE_KEY, LANG_2_TO_3_MAPPER, LANG_3_TO_2_MAPPER, LOGIN_URL, LOGOUT_URL, LONLAT_CRS_CODES, LangService, LanguageSwitcherComponent, LayersPanelComponent, LicenseSearchField, LinkCardComponent, LinkClassifierService, LinkUsage, LoadingMaskComponent, LogService, MAP_FEATURE_KEY, MAP_VIEW_CONSTRAINTS, METADATA_LANGUAGE, MY_FORMATS, MapContainerComponent, MapFacade, MapLegendComponent, MapStateContainerComponent, MapStyleService, MapUtilsService, MapViewComponent, MarkdownEditorComponent, MarkdownParserComponent, MaxLinesComponent, mdview_actions as MdViewActions, MdViewFacade, MetadataCatalogComponent, MetadataContactComponent, MetadataInfoComponent, MetadataLinkType, MetadataMapperContext, MetadataQualityComponent, MetadataQualityItemComponent, ModalDialogComponent, MultilingualSearchField, MyOrgService, NAMESPACES, NavigationButtonComponent, NotificationComponent, NotificationsContainerComponent, NotificationsService, ORGANIZATIONS_STRATEGY, ORGANIZATION_PAGE_URL_TOKEN, ORGANIZATION_URL_TOKEN, OrganisationPreviewComponent, OrganisationsComponent, OrganisationsFilterComponent, OrganisationsResultComponent, OrganizationSearchField, OrganizationsFromGroupsService, OrganizationsFromMetadataService, OwnerSearchField, PAGINATE, PARSE_DELIMITER, PATCH_RESULTS_AGGREGATIONS, PROXY_PATH, Paginate, PaginationButtonsComponent, PaginationComponent, PaginationDotsComponent, PatchResultsAggregations, PopoverComponent, PopupAlertComponent, PreviousNextButtonsComponent, ProgressBarComponent, ProxyService, QUERY_FIELDS, RECORD_URL_TOKEN, REQUEST_MORE_ON_AGGREGATION, REQUEST_MORE_RESULTS, REQUEST_NEW_RESULTS, RESULTS_LAYOUT_CONFIG, ROUTER_CONFIG, ROUTER_ROUTE_DATASET, ROUTER_ROUTE_ORGANIZATION, ROUTER_ROUTE_SEARCH, ROUTER_STATE_KEY, ROUTE_PARAMS, RecordApiFormComponent, RecordFormComponent, RecordMetaComponent, RecordMetricComponent, RecordPreviewCardComponent, RecordPreviewComponent, RecordPreviewFeedComponent, RecordPreviewListComponent, RecordPreviewRowComponent, RecordPreviewTextComponent, RecordPreviewTitleComponent, RecordsMetricsComponent, RecordsService, RelatedRecordCardComponent, RequestMoreOnAggregation, RequestMoreResults, RequestNewResults, ResultsHitsContainerComponent, ResultsHitsNumberComponent, ResultsLayoutComponent, ResultsLayoutConfigItem, ResultsListComponent, ResultsListContainerComponent, ResultsListItemComponent, ResultsTableComponent, ResultsTableContainerComponent, RouterEffects, RouterFacade, RouterService, SEARCH_FEATURE_KEY, SETTINGS_URL, SET_CONFIG_AGGREGATIONS, SET_CONFIG_FILTERS, SET_CONFIG_REQUEST_FIELDS, SET_ERROR, SET_FAVORITES_ONLY, SET_FILTERS, SET_INCLUDE_ON_AGGREGATION, SET_PAGE_SIZE, SET_RESULTS_AGGREGATIONS, SET_RESULTS_HITS, SET_RESULTS_LAYOUT, SET_SEARCH, SET_SORT_BY, SET_SPATIAL_FILTER_ENABLED, SearchEffects, SearchFacade, SearchFiltersSummaryComponent, SearchFiltersSummaryItemComponent, SearchInputComponent, SearchRouterContainerDirective, SearchService, SearchStateContainerDirective, SelectionService, SetConfigAggregations, SetConfigFilters, SetConfigRequestFields, SetError, SetFavoritesOnly, SetFilters, SetIncludeOnAggregation, SetPageSize, SetResultsAggregations, SetResultsHits, SetResultsLayout, SetSearch, SetSortBy, SetSpatialFilterEnabled, SimpleSearchField, SiteTitleComponent, SortByComponent, SortableListComponent, SourceLabelComponent, SourcesService, SpinningLoaderComponent, StarToggleComponent, StepBarComponent, StickyHeaderComponent, SupportedTypes, SwitchToggleComponent, THUMBNAIL_PLACEHOLDER, TRANSLATE_DEFAULT_CONFIG, TRANSLATE_WITH_OVERRIDES_CONFIG, TableViewComponent, TextAreaComponent, TextInputComponent, ThemeService, ThumbnailComponent, TranslatedSearchField, UPDATE_CONFIG_AGGREGATIONS, UPDATE_FILTERS, UPDATE_REQUEST_AGGREGATION_TERM, UiDatavizModule, UiElementsModule, FacetsModule$1 as UiFacetsModule, UiInputsModule, UiLayoutModule, UiSearchModule, UiWidgetsModule, UpdateConfigAggregations, UpdateFilters, UrlInputComponent, UserFeedbackItemComponent, UserPreviewComponent, UserSearchField, UtilI18nModule, UtilSharedModule, VECTOR_STYLE_DEFAULT, ViewportIntersectorComponent, WEB_COMPONENT_EMBEDDER_URL, WizardComponent, WizardFieldComponent, WizardFieldType, WizardService, WizardSummarizeComponent, XmlParseError, _reset, allChildrenElement, appConfigWithTranslationFixture, appendChildTree, appendChildren, assertValidXml, blockModelFixture, bytesToMegabytes, canEditRecord, checkFileFormat, clearSelectedFeatures, createChild, createDocument, createElement, createFuzzyFilter, createNestedChild, createNestedElement, currentPage, defaultMapStyleFixture, defaultMapStyleHlFixture, downgradeImage, downsizeImage, draftSaveSuccess, dragPanCondition, dropEmptyTranslations, editorReducer, emptyBlockModelFixture, findChildElement, findChildOrCreate, findChildrenElement, findConverterForDocument, findNestedChildOrCreate, findNestedElement, findNestedElements, findParent, firstChildElement, formatDate, formatUserInfo, getArrayItem, getAsArray, getAsUrl, getBadgeColor, getCustomTranslations, getError, getFavoritesOnly, getFileFormat, getFileFormatFromServiceOutput, getFirstValue, getFormatPriority, getGeometryFromGeoJSON, getGlobalConfig, getJsonDataItemsProxy, getLangFromBrowser, getLayers, getLinkLabel, getLinkPriority, getMapContext, getMapContextLayerFromConfig, getMapState, getMetadataQualityConfig, getMimeTypeForFormat, getNamespace, getOptionalMapConfig, getOptionalSearchConfig, getPageSize, getRootElement, getSearchConfigAggregations, getSearchFilters, getSearchResults, getSearchResultsAggregations, getSearchResultsHits, getSearchResultsLayout, getSearchResultsLoading, getSearchSortBy, getSearchState, getSearchStateSearch, getSelectedFeatures, getSpatialFilterEnabled, getTemporalRangeUnion, getThemeConfig, hasRecordChangedSinceDraft, hasRecordChangedSinceDraftSuccess, initSearch, initialEditorState, initialMapState, initialState, isConfigLoaded, isDateRange, isFormatInQueryParam, isPublished, itemModelFixture, loadAppConfig, malformedConfigFixture, mapConfigFixture, mapContact, mapKeywords, mapLogo, mapOrganization, mapReducer, markRecordAsChanged, megabytesToBytes, mimeTypeToFormat, minimalAppConfigFixture, missingMandatoryConfigFixture, mouseWheelZoomCondition, noDuplicateFileName, okAppConfigFixture, openDataset, openRecord, parse, parseXmlString, placeholder, prioritizePageScroll, propagateToDocumentOnly, provideGn4, provideRepositoryUrl, readAttribute, readDataset, readDatasetHeaders, readText, reducer$2 as reducer, reducerSearch, removeAllChildren, removeChildren, removeChildrenByName, removeSearchParams, removeWhitespace, renameElements, saveRecord, saveRecordFailure, saveRecordSuccess, selectCanEditRecord, selectCurrentPage, selectEditorConfig, selectEditorState, selectFallback, selectFallbackFields, selectField, selectHasRecordChanged, selectIsPublished, selectRecord, selectRecordChangedSinceSave, selectRecordSaveError, selectRecordSaving, selectRecordSections, selectRecordSource, selectTranslatedField, selectTranslatedValue, setContext, setCurrentPage, setFieldVisibility, setSelectedFeatures, setTextContent, someHabTableItemFixture, sortByFromString, sortByToString, sortByToStrings, stripHtml, stripNamespace, tableItemsFixture, toDate, totalPages, undoRecordDraft, unrecognizedKeysConfigFixture, updateRecordField, writeAttribute, wrongLanguageCodeConfigFixture, xmlToString };
|
|
42028
|
+
export { ADD_RESULTS, ADD_SEARCH, AbstractAction, AbstractSearchField, AddLayerFromCatalogComponent, AddLayerRecordPreviewComponent, AddResults, AddSearch, AnchorLinkDirective, ApiCardComponent, ApplicationBannerComponent, AuthService, AutocompleteComponent, AvailableServicesField, AvatarComponent, AvatarServiceInterface, BASEMAP_LAYERS, BadgeComponent, BaseConverter, BaseFileReader, BaseReader, BlockListComponent, ButtonComponent, CLEAR_ERROR, CLEAR_RESULTS, CarouselComponent, CatalogTitleComponent, ChartComponent, ChartViewComponent, CheckToggleComponent, CheckboxComponent, ChipsInputComponent, ClearError, ClearResults, ColorScaleComponent, ConfirmationDialogComponent, ContentGhostComponent, CopyTextButtonComponent, DEFAULT_GN4_LOGIN_URL, DEFAULT_GN4_LOGOUT_URL, DEFAULT_GN4_SETTINGS_URL, DEFAULT_LANG, DEFAULT_PAGE_SIZE, DEFAULT_RESULTS_LAYOUT_CONFIG, DEFAULT_SEARCH_KEY, DO_NOT_USE_DEFAULT_BASEMAP, DataService, DataTableComponent, DataViewComponent, DataViewPermalinkComponent, DataViewShareComponent, DataViewWebComponentComponent, DatePickerComponent, DateRangeDropdownComponent, DateRangePickerComponent, DateRangeSearchField, DateService, DcatApConverter, DefaultRouterModule, DownloadItemComponent, DownloadsListComponent, DragAndDropFileInputComponent, DropdownMultiselectComponent, DropdownSelectorComponent, EDITOR_FEATURE_KEY, ES_QUERY_FIELDS_PRIORITY, ES_RESOURCES_VALUES, ES_SOURCE_SUMMARY, EXTERNAL_VIEWER_OPEN_NEW_TAB, EXTERNAL_VIEWER_URL_TEMPLATE, EditableLabelDirective, EditorFacade, EditorService, ElasticsearchService, EmbeddedTranslateLoader, ErrorComponent, ErrorType, ExpandablePanelButtonComponent, ExpandablePanelComponent, ExternalViewerButtonComponent, FIELDS_BRIEF, FIELDS_SUMMARY, FILTER_GEOMETRY, FILTER_SUMMARY_IGNORE_LIST, FORMATS, FacetBlockComponent, FacetBlockStubComponent, FacetItemComponent, FacetItemStubComponent, FacetListComponent, FacetsContainerComponent, FacetsModule, FavoriteStarComponent, FavoritesService, FeatureAuthModule, FeatureCatalogModule, FeatureDetailComponent, FeatureEditorModule, FeatureMapModule, FeatureNotificationsModule, FeatureRecordModule, FeatureSearchModule, FetchError, FieldsService, FigureComponent, FigureContainerComponent, FileInputComponent, FileTranslateLoader, FilesDropDirective, FilterDropdownComponent, FormFieldWrapperComponent, FullTextSearchField, FuzzySearchComponent, GN_UI_VERSION, GeoTableViewComponent, GeocodingComponent, GeojsonReader, Gn4Converter, Gn4PlatformMapper, Gn4PlatformService, Gn4Repository, Gn4SettingsService, GpfApiDlComponent, GravatarService, HttpLoaderFactory, I18nInterceptor, ImageFallbackDirective, ImageInputComponent, ImageOverlayPreviewComponent, ImportRecordComponent, InteractiveTableColumnComponent, InteractiveTableComponent, IsSpatialSearchField, Iso191153Converter, Iso19139Converter, LANGUAGES_LIST, LANGUAGE_NAMES, LANGUAGE_STORAGE_KEY, LANG_2_TO_3_MAPPER, LANG_3_TO_2_MAPPER, LOGIN_URL, LOGOUT_URL, LONLAT_CRS_CODES, LangService, LanguageSwitcherComponent, LayersPanelComponent, LicenseSearchField, LinkCardComponent, LinkClassifierService, LinkUsage, LoadingMaskComponent, LogService, MAP_FEATURE_KEY, MAP_VIEW_CONSTRAINTS, METADATA_LANGUAGE, MY_FORMATS, MapContainerComponent, MapFacade, MapLegendComponent, MapStateContainerComponent, MapStyleService, MapUtilsService, MapViewComponent, MarkdownEditorComponent, MarkdownParserComponent, MaxLinesComponent, mdview_actions as MdViewActions, MdViewFacade, MetadataCatalogComponent, MetadataContactComponent, MetadataInfoComponent, MetadataLinkType, MetadataMapperContext, MetadataQualityComponent, MetadataQualityItemComponent, ModalDialogComponent, MultilingualSearchField, MyOrgService, NAMESPACES, NavigationButtonComponent, NotificationComponent, NotificationsContainerComponent, NotificationsService, ORGANIZATIONS_STRATEGY, ORGANIZATION_PAGE_URL_TOKEN, ORGANIZATION_URL_TOKEN, OrganisationPreviewComponent, OrganisationsComponent, OrganisationsFilterComponent, OrganisationsResultComponent, OrganizationSearchField, OrganizationsFromGroupsService, OrganizationsFromMetadataService, OwnerSearchField, PAGINATE, PARSE_DELIMITER, PATCH_RESULTS_AGGREGATIONS, PROXY_PATH, Paginate, PaginationButtonsComponent, PaginationComponent, PaginationDotsComponent, PatchResultsAggregations, PopoverComponent, PopupAlertComponent, PreviousNextButtonsComponent, ProgressBarComponent, ProxyService, QUERY_FIELDS, RECORD_URL_TOKEN, REQUEST_MORE_ON_AGGREGATION, REQUEST_MORE_RESULTS, REQUEST_NEW_RESULTS, RESULTS_LAYOUT_CONFIG, ROUTER_CONFIG, ROUTER_ROUTE_DATASET, ROUTER_ROUTE_ORGANIZATION, ROUTER_ROUTE_SEARCH, ROUTER_STATE_KEY, ROUTE_PARAMS, RecordApiFormComponent, RecordFormComponent, RecordMetaComponent, RecordMetricComponent, RecordPreviewCardComponent, RecordPreviewComponent, RecordPreviewFeedComponent, RecordPreviewListComponent, RecordPreviewRowComponent, RecordPreviewTextComponent, RecordPreviewTitleComponent, RecordsMetricsComponent, RecordsService, RelatedRecordCardComponent, RequestMoreOnAggregation, RequestMoreResults, RequestNewResults, ResultsHitsContainerComponent, ResultsHitsNumberComponent, ResultsLayoutComponent, ResultsLayoutConfigItem, ResultsListComponent, ResultsListContainerComponent, ResultsListItemComponent, ResultsTableComponent, ResultsTableContainerComponent, RouterEffects, RouterFacade, RouterService, SEARCH_FEATURE_KEY, SETTINGS_URL, SET_CONFIG_AGGREGATIONS, SET_CONFIG_FILTERS, SET_CONFIG_REQUEST_FIELDS, SET_ERROR, SET_FAVORITES_ONLY, SET_FILTERS, SET_INCLUDE_ON_AGGREGATION, SET_PAGE_SIZE, SET_RESULTS_AGGREGATIONS, SET_RESULTS_HITS, SET_RESULTS_LAYOUT, SET_SEARCH, SET_SORT_BY, SET_SPATIAL_FILTER_ENABLED, SearchEffects, SearchFacade, SearchFiltersSummaryComponent, SearchFiltersSummaryItemComponent, SearchInputComponent, SearchRouterContainerDirective, SearchService, SearchStateContainerDirective, SelectionService, SetConfigAggregations, SetConfigFilters, SetConfigRequestFields, SetError, SetFavoritesOnly, SetFilters, SetIncludeOnAggregation, SetPageSize, SetResultsAggregations, SetResultsHits, SetResultsLayout, SetSearch, SetSortBy, SetSpatialFilterEnabled, SimpleSearchField, SiteTitleComponent, SortByComponent, SortableListComponent, SourceLabelComponent, SourcesService, SpinningLoaderComponent, StarToggleComponent, StepBarComponent, StickyHeaderComponent, SupportedTypes, SwitchToggleComponent, THUMBNAIL_PLACEHOLDER, TRANSLATE_DEFAULT_CONFIG, TRANSLATE_WITH_OVERRIDES_CONFIG, TableViewComponent, TextAreaComponent, TextInputComponent, ThemeService, ThumbnailComponent, TranslatedSearchField, UPDATE_CONFIG_AGGREGATIONS, UPDATE_FILTERS, UPDATE_REQUEST_AGGREGATION_TERM, UiDatavizModule, UiElementsModule, FacetsModule$1 as UiFacetsModule, UiInputsModule, UiLayoutModule, UiSearchModule, UiWidgetsModule, UpdateConfigAggregations, UpdateFilters, UrlInputComponent, UserFeedbackItemComponent, UserPreviewComponent, UserSearchField, UtilI18nModule, UtilSharedModule, VECTOR_STYLE_DEFAULT, ViewportIntersectorComponent, WEB_COMPONENT_EMBEDDER_URL, WizardComponent, WizardFieldComponent, WizardFieldType, WizardService, WizardSummarizeComponent, XmlParseError, _reset, allChildrenElement, appConfigWithTranslationFixture, appendChildTree, appendChildren, assertValidXml, blockModelFixture, bytesToMegabytes, canEditRecord, checkFileFormat, clearSelectedFeatures, createChild, createDocument, createElement, createFuzzyFilter, createNestedChild, createNestedElement, currentPage, defaultMapStyleFixture, defaultMapStyleHlFixture, downgradeImage, downsizeImage, draftSaveSuccess, dragPanCondition, dropEmptyTranslations, editorReducer, emptyBlockModelFixture, findChildElement, findChildOrCreate, findChildrenElement, findConverterForDocument, findNestedChildOrCreate, findNestedElement, findNestedElements, findParent, firstChildElement, formatDate, formatUserInfo, getArrayItem, getAsArray, getAsUrl, getBadgeColor, getCustomTranslations, getError, getFavoritesOnly, getFileFormat, getFileFormatFromServiceOutput, getFirstValue, getFormatPriority, getGeometryFromGeoJSON, getGlobalConfig, getJsonDataItemsProxy, getLangFromBrowser, getLayers, getLinkLabel, getLinkPriority, getMapContext, getMapContextLayerFromConfig, getMapState, getMetadataQualityConfig, getMimeTypeForFormat, getNamespace, getOptionalMapConfig, getOptionalSearchConfig, getPageSize, getRootElement, getSearchConfigAggregations, getSearchFilters, getSearchResults, getSearchResultsAggregations, getSearchResultsHits, getSearchResultsLayout, getSearchResultsLoading, getSearchSortBy, getSearchState, getSearchStateSearch, getSelectedFeatures, getSpatialFilterEnabled, getTemporalRangeUnion, getThemeConfig, hasRecordChangedSinceDraft, hasRecordChangedSinceDraftSuccess, initSearch, initialEditorState, initialMapState, initialState, isConfigLoaded, isDateRange, isFormatInQueryParam, isPublished, itemModelFixture, loadAppConfig, malformedConfigFixture, mapConfigFixture, mapContact, mapKeywords, mapLogo, mapOrganization, mapReducer, markRecordAsChanged, megabytesToBytes, mimeTypeToFormat, minimalAppConfigFixture, missingMandatoryConfigFixture, mouseWheelZoomCondition, noDuplicateFileName, okAppConfigFixture, openDataset, openRecord, parse, parseXmlString, placeholder, prioritizePageScroll, propagateToDocumentOnly, provideGn4, provideRepositoryUrl, readAttribute, readDataset, readDatasetHeaders, readText, reducer$2 as reducer, reducerSearch, removeAllChildren, removeChildren, removeChildrenByName, removeSearchParams, removeWhitespace, renameElements, saveRecord, saveRecordFailure, saveRecordSuccess, selectCanEditRecord, selectCurrentPage, selectEditorConfig, selectEditorState, selectFallback, selectFallbackFields, selectField, selectHasRecordChanged, selectIsPublished, selectRecord, selectRecordChangedSinceSave, selectRecordSaveError, selectRecordSaving, selectRecordSections, selectRecordSource, selectTranslatedField, selectTranslatedValue, setContext, setCurrentPage, setFieldVisibility, setSelectedFeatures, setTextContent, someHabTableItemFixture, sortByFromString, sortByToString, sortByToStrings, stripHtml, stripNamespace, tableItemsFixture, toDate, totalPages, undoRecordDraft, unrecognizedKeysConfigFixture, updateRecordField, writeAttribute, wrongLanguageCodeConfigFixture, xmlToString };
|
|
41778
42029
|
//# sourceMappingURL=geonetwork-ui.mjs.map
|