geonetwork-ui 2.2.0-dev.5b8d393f → 2.2.0-dev.6f0f0ee9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/libs/api/metadata-converter/src/lib/gn4/atomic-operations.mjs +27 -1
- package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.mjs +49 -58
- package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.metadata.mapper.mjs +5 -4
- package/esm2022/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.mjs +1 -1
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/codelists/keyword.mapper.mjs +14 -0
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/converter.mjs +20 -17
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/read-parts.mjs +52 -23
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/write-parts.mjs +52 -32
- package/esm2022/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.mjs +10 -3
- package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.mjs +14 -5
- package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.mjs +33 -8
- package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +1 -1
- package/esm2022/libs/common/domain/src/lib/model/search/aggregation.model.mjs +1 -1
- package/esm2022/libs/common/domain/src/lib/model/search/field.model.mjs +2 -0
- package/esm2022/libs/common/domain/src/lib/model/search/filter.model.mjs +1 -1
- package/esm2022/libs/common/domain/src/lib/model/search/index.mjs +2 -1
- package/esm2022/libs/common/domain/src/lib/model/search/search.model.mjs +1 -1
- package/esm2022/libs/common/domain/src/lib/model/thesaurus/thesaurus.model.mjs +1 -1
- package/esm2022/libs/common/domain/src/lib/platform.service.interface.mjs +1 -1
- package/esm2022/libs/feature/map/src/lib/map-context/map-context.service.mjs +9 -1
- package/esm2022/libs/feature/record/src/lib/state/mdview.reducer.mjs +2 -2
- package/esm2022/libs/feature/search/src/index.mjs +3 -1
- package/esm2022/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.mjs +3 -3
- package/esm2022/libs/feature/search/src/lib/feature-search.module.mjs +2 -6
- package/esm2022/libs/feature/search/src/lib/filter-geometry.token.mjs +4 -0
- package/esm2022/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.mjs +7 -3
- package/esm2022/libs/feature/search/src/lib/record-url.token.mjs +4 -0
- package/esm2022/libs/feature/search/src/lib/results-list/results-list.container.component.mjs +2 -2
- package/esm2022/libs/feature/search/src/lib/results-table/results-table.component.mjs +3 -4
- package/esm2022/libs/feature/search/src/lib/state/effects.mjs +2 -2
- package/esm2022/libs/feature/search/src/lib/state/search.facade.mjs +3 -2
- package/esm2022/libs/feature/search/src/lib/utils/service/fields.mjs +41 -26
- package/esm2022/libs/feature/search/src/lib/utils/service/fields.service.mjs +11 -9
- package/esm2022/libs/ui/catalog/src/lib/language-switcher/language-switcher.component.mjs +3 -3
- package/esm2022/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.mjs +3 -3
- package/esm2022/libs/ui/elements/src/lib/metadata-info/metadata-info.component.mjs +35 -22
- package/esm2022/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.mjs +3 -4
- package/esm2022/libs/ui/elements/src/lib/record-api-form/record-api-form.component.mjs +9 -6
- package/esm2022/libs/ui/elements/src/lib/thumbnail/thumbnail.component.mjs +3 -3
- package/esm2022/libs/ui/elements/src/lib/ui-elements.module.mjs +4 -4
- package/esm2022/libs/ui/inputs/src/lib/button/button.component.mjs +3 -3
- package/esm2022/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.mjs +3 -3
- package/esm2022/libs/ui/inputs/src/lib/text-area/text-area.component.mjs +3 -3
- package/esm2022/libs/ui/inputs/src/lib/ui-inputs.module.mjs +6 -6
- package/esm2022/libs/util/i18n/src/index.mjs +1 -2
- package/esm2022/translations/de.json +7 -5
- package/esm2022/translations/en.json +10 -8
- package/esm2022/translations/es.json +7 -5
- package/esm2022/translations/fr.json +9 -7
- package/esm2022/translations/it.json +9 -7
- package/esm2022/translations/nl.json +7 -5
- package/esm2022/translations/pt.json +7 -5
- package/fesm2022/geonetwork-ui.mjs +456 -404
- package/fesm2022/geonetwork-ui.mjs.map +1 -1
- package/libs/api/metadata-converter/src/lib/gn4/atomic-operations.d.ts +2 -0
- package/libs/api/metadata-converter/src/lib/gn4/atomic-operations.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts +0 -1
- package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/gn4/gn4.metadata.mapper.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.d.ts +3 -5
- package/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/iso19139/codelists/keyword.mapper.d.ts +3 -0
- package/libs/api/metadata-converter/src/lib/iso19139/codelists/keyword.mapper.d.ts.map +1 -0
- package/libs/api/metadata-converter/src/lib/iso19139/converter.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts +6 -6
- package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts +4 -3
- package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.d.ts +1 -1
- package/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts +9 -2
- package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts.map +1 -1
- package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +18 -12
- package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
- package/libs/common/domain/src/lib/model/search/aggregation.model.d.ts +1 -1
- package/libs/common/domain/src/lib/model/search/aggregation.model.d.ts.map +1 -1
- package/libs/common/domain/src/lib/model/search/field.model.d.ts +2 -0
- package/libs/common/domain/src/lib/model/search/field.model.d.ts.map +1 -0
- package/libs/common/domain/src/lib/model/search/filter.model.d.ts +1 -1
- package/libs/common/domain/src/lib/model/search/filter.model.d.ts.map +1 -1
- package/libs/common/domain/src/lib/model/search/index.d.ts +1 -0
- package/libs/common/domain/src/lib/model/search/index.d.ts.map +1 -1
- package/libs/common/domain/src/lib/model/search/search.model.d.ts +1 -1
- package/libs/common/domain/src/lib/model/search/search.model.d.ts.map +1 -1
- package/libs/common/domain/src/lib/model/thesaurus/thesaurus.model.d.ts +1 -0
- package/libs/common/domain/src/lib/model/thesaurus/thesaurus.model.d.ts.map +1 -1
- package/libs/common/domain/src/lib/platform.service.interface.d.ts +1 -1
- package/libs/common/domain/src/lib/platform.service.interface.d.ts.map +1 -1
- package/libs/feature/map/src/lib/map-context/map-context.service.d.ts +1 -0
- package/libs/feature/map/src/lib/map-context/map-context.service.d.ts.map +1 -1
- package/libs/feature/search/src/index.d.ts +2 -0
- package/libs/feature/search/src/index.d.ts.map +1 -1
- package/libs/feature/search/src/lib/feature-search.module.d.ts +0 -4
- package/libs/feature/search/src/lib/feature-search.module.d.ts.map +1 -1
- package/libs/feature/search/src/lib/filter-geometry.token.d.ts +4 -0
- package/libs/feature/search/src/lib/filter-geometry.token.d.ts.map +1 -0
- package/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.d.ts +1 -1
- package/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.d.ts.map +1 -1
- package/libs/feature/search/src/lib/record-url.token.d.ts +3 -0
- package/libs/feature/search/src/lib/record-url.token.d.ts.map +1 -0
- package/libs/feature/search/src/lib/results-table/results-table.component.d.ts +0 -1
- package/libs/feature/search/src/lib/results-table/results-table.component.d.ts.map +1 -1
- package/libs/feature/search/src/lib/state/search.facade.d.ts +1 -1
- package/libs/feature/search/src/lib/state/search.facade.d.ts.map +1 -1
- package/libs/feature/search/src/lib/utils/service/fields.d.ts +21 -8
- package/libs/feature/search/src/lib/utils/service/fields.d.ts.map +1 -1
- package/libs/feature/search/src/lib/utils/service/fields.service.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.d.ts +1 -1
- package/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/metadata-info/metadata-info.component.d.ts +10 -6
- package/libs/ui/elements/src/lib/metadata-info/metadata-info.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts +3 -1
- package/libs/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/ui-elements.module.d.ts +13 -13
- package/libs/ui/inputs/src/lib/button/button.component.d.ts +1 -1
- package/libs/ui/inputs/src/lib/button/button.component.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/text-area/text-area.component.d.ts +1 -1
- package/libs/ui/inputs/src/lib/text-area/text-area.component.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts +40 -40
- package/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.d.ts +1 -1
- package/libs/util/i18n/src/index.d.ts +0 -1
- package/libs/util/i18n/src/index.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/libs/api/metadata-converter/src/lib/fixtures/generic.records.ts +61 -8
- package/src/libs/api/metadata-converter/src/lib/fixtures/geo2france.records.ts +55 -9
- package/src/libs/api/metadata-converter/src/lib/fixtures/geocat-ch.records.ts +225 -24
- package/src/libs/api/metadata-converter/src/lib/gn4/atomic-operations.ts +29 -0
- package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +80 -73
- package/src/libs/api/metadata-converter/src/lib/gn4/gn4.metadata.mapper.ts +4 -3
- package/src/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.ts +3 -5
- package/src/libs/api/metadata-converter/src/lib/iso19139/codelists/keyword.mapper.ts +16 -0
- package/src/libs/api/metadata-converter/src/lib/iso19139/converter.ts +24 -21
- package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +115 -62
- package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +169 -95
- package/src/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.ts +22 -2
- package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.ts +15 -4
- package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +47 -8
- package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +21 -14
- package/src/libs/common/domain/src/lib/model/search/aggregation.model.ts +1 -1
- package/src/libs/common/domain/src/lib/model/search/field.model.ts +1 -0
- package/src/libs/common/domain/src/lib/model/search/filter.model.ts +1 -1
- package/src/libs/common/domain/src/lib/model/search/index.ts +1 -0
- package/src/libs/common/domain/src/lib/model/search/search.model.ts +1 -1
- package/src/libs/common/domain/src/lib/model/thesaurus/thesaurus.model.ts +1 -0
- package/src/libs/common/domain/src/lib/platform.service.interface.ts +1 -4
- package/src/libs/common/fixtures/src/lib/gn4/groups.fixtures.ts +1 -1
- package/src/libs/common/fixtures/src/lib/records.fixtures.ts +50 -10
- package/src/libs/feature/map/src/lib/map-context/map-context.service.ts +10 -0
- package/src/libs/feature/record/src/lib/state/mdview.reducer.ts +1 -1
- package/src/libs/feature/search/src/index.ts +2 -0
- package/src/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.html +3 -4
- package/src/libs/feature/search/src/lib/feature-search.module.ts +1 -10
- package/src/libs/feature/search/src/lib/filter-geometry.token.ts +7 -0
- package/src/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.ts +9 -3
- package/src/libs/feature/search/src/lib/record-url.token.ts +4 -0
- package/src/libs/feature/search/src/lib/results-list/results-list.container.component.ts +1 -1
- package/src/libs/feature/search/src/lib/results-table/results-table.component.html +104 -127
- package/src/libs/feature/search/src/lib/results-table/results-table.component.ts +0 -1
- package/src/libs/feature/search/src/lib/state/effects.ts +1 -1
- package/src/libs/feature/search/src/lib/state/search.facade.ts +2 -1
- package/src/libs/feature/search/src/lib/utils/service/fields.service.ts +21 -16
- package/src/libs/feature/search/src/lib/utils/service/fields.ts +43 -34
- package/src/libs/ui/catalog/src/lib/language-switcher/language-switcher.component.html +1 -1
- package/src/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.css +5 -0
- package/src/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.html +39 -0
- package/src/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.ts +58 -0
- package/src/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.css +2 -2
- package/src/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.ts +1 -0
- package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.html +51 -24
- package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.ts +37 -15
- package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.ts +2 -3
- package/src/libs/ui/elements/src/lib/record-api-form/record-api-form.component.html +5 -5
- package/src/libs/ui/elements/src/lib/record-api-form/record-api-form.component.ts +12 -4
- package/src/libs/ui/elements/src/lib/thumbnail/thumbnail.component.html +2 -2
- package/src/libs/ui/elements/src/lib/ui-elements.module.ts +1 -1
- package/src/libs/ui/inputs/src/lib/button/button.component.ts +1 -0
- package/src/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.css +3 -0
- package/src/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.html +1 -1
- package/src/libs/ui/inputs/src/lib/text-area/text-area.component.ts +1 -0
- package/src/libs/ui/inputs/src/lib/ui-inputs.module.ts +2 -2
- package/src/libs/util/i18n/src/index.ts +0 -1
- package/tailwind.base.config.js +3 -0
- package/tailwind.base.css +2 -2
- package/translations/de.json +7 -5
- package/translations/en.json +10 -8
- package/translations/es.json +7 -5
- package/translations/fr.json +9 -7
- package/translations/it.json +9 -7
- package/translations/nl.json +7 -5
- package/translations/pt.json +7 -5
- package/translations/sk.json +7 -5
- package/esm2022/libs/util/i18n/src/lib/testing/test.translate.loader.mjs +0 -24
- package/esm2022/libs/util/i18n/src/lib/testing/test.translate.module.mjs +0 -109
- package/esm2022/libs/util/i18n/src/lib/testing/translations.model.mjs +0 -6
- package/libs/util/i18n/src/lib/testing/test.translate.loader.d.ts +0 -17
- package/libs/util/i18n/src/lib/testing/test.translate.loader.d.ts.map +0 -1
- package/libs/util/i18n/src/lib/testing/test.translate.module.d.ts +0 -131
- package/libs/util/i18n/src/lib/testing/test.translate.module.d.ts.map +0 -1
- package/libs/util/i18n/src/lib/testing/translations.model.d.ts +0 -21
- package/libs/util/i18n/src/lib/testing/translations.model.d.ts.map +0 -1
- package/src/libs/util/i18n/src/lib/testing/test.translate.loader.ts +0 -26
- package/src/libs/util/i18n/src/lib/testing/test.translate.module.ts +0 -235
- package/src/libs/util/i18n/src/lib/testing/translations.model.ts +0 -28
|
@@ -5,10 +5,10 @@ import { InjectionToken, Injectable, Optional, Inject, NgModule, SkipSelf, Compo
|
|
|
5
5
|
import * as i1 from '@angular/common/http';
|
|
6
6
|
import { HttpHeaders, HttpParams, HttpClient, HttpClientModule, HTTP_INTERCEPTORS, HttpClientXsrfModule } from '@angular/common/http';
|
|
7
7
|
import * as i1$1 from '@ngx-translate/core';
|
|
8
|
-
import { TranslateCompiler, TranslateLoader, TranslateModule, TranslateService
|
|
8
|
+
import { TranslateCompiler, TranslateLoader, TranslateModule, TranslateService } from '@ngx-translate/core';
|
|
9
9
|
import { TranslateMessageFormatCompiler } from 'ngx-translate-messageformat-compiler';
|
|
10
10
|
import { TranslateHttpLoader } from '@ngx-translate/http-loader';
|
|
11
|
-
import { map as map$1, shareReplay, filter, tap as tap$1, startWith, switchMap as switchMap$1, catchError, take,
|
|
11
|
+
import { map as map$1, shareReplay, filter, tap as tap$1, startWith, withLatestFrom, switchMap as switchMap$1, catchError, take, delay, debounceTime, throttleTime, distinctUntilChanged, finalize, first, share, pairwise, mergeMap } from 'rxjs/operators';
|
|
12
12
|
import { marker } from '@biesbjerg/ngx-translate-extract-marker';
|
|
13
13
|
import * as i1$3 from '@angular/common';
|
|
14
14
|
import { CommonModule, NgOptimizedImage, NgForOf } from '@angular/common';
|
|
@@ -587,6 +587,20 @@ function matchMimeType(format) {
|
|
|
587
587
|
return format || null;
|
|
588
588
|
}
|
|
589
589
|
|
|
590
|
+
function getKeywordTypeFromKeywordTypeCode(typeCode) {
|
|
591
|
+
if (!typeCode)
|
|
592
|
+
return 'other';
|
|
593
|
+
switch (typeCode) {
|
|
594
|
+
case 'theme':
|
|
595
|
+
case 'place':
|
|
596
|
+
case 'temporal':
|
|
597
|
+
case 'other':
|
|
598
|
+
return typeCode;
|
|
599
|
+
default:
|
|
600
|
+
return 'other';
|
|
601
|
+
}
|
|
602
|
+
}
|
|
603
|
+
|
|
590
604
|
function extractCharacterString() {
|
|
591
605
|
return pipe(fallback(findChildElement('gco:CharacterString', false), findChildElement('gmx:Anchor', false)), readText());
|
|
592
606
|
}
|
|
@@ -649,28 +663,32 @@ function extractStatus() {
|
|
|
649
663
|
return pipe(findChildElement('gmd:MD_ProgressCode'), readAttribute('codeListValue'), map(getStatusFromStatusCode));
|
|
650
664
|
}
|
|
651
665
|
// from gmd:resourceConstraints
|
|
652
|
-
function
|
|
653
|
-
|
|
654
|
-
|
|
666
|
+
function extractLegalConstraints() {
|
|
667
|
+
return pipe(findChildrenElement('gmd:MD_LegalConstraints', false), filterArray(pipe(findChildrenElement('gmd:MD_RestrictionCode'), mapArray(readAttribute('codeListValue')), map((values) => values.indexOf('license') === -1))), mapArray(combine(findChildrenElement('gmd:otherConstraints'), findChildrenElement('gmd:useLimitation'))), flattenArray(), flattenArray(), mapArray(combine(extractCharacterString(), extractUrl())), mapArray(([text, url]) => ({
|
|
668
|
+
...(url && { url }),
|
|
655
669
|
text,
|
|
656
|
-
type: 'other',
|
|
657
670
|
})));
|
|
658
|
-
|
|
671
|
+
}
|
|
672
|
+
// from gmd:resourceConstraints
|
|
673
|
+
function extractSecurityConstraints() {
|
|
674
|
+
return pipe(findNestedElements('gmd:MD_SecurityConstraints', 'gmd:useLimitation'), flattenArray(), mapArray(combine(extractCharacterString(), extractUrl())), mapArray(([text, url]) => ({
|
|
675
|
+
...(url && { url }),
|
|
659
676
|
text,
|
|
660
|
-
type: 'security',
|
|
661
677
|
})));
|
|
662
|
-
return pipe(combine(getOtherConstraints, getSecurityConstraints), flattenArray());
|
|
663
678
|
}
|
|
664
679
|
// from gmd:resourceConstraints
|
|
665
|
-
function
|
|
666
|
-
return pipe(
|
|
680
|
+
function extractOtherConstraints() {
|
|
681
|
+
return pipe(findNestedElements('gmd:MD_Constraints', 'gmd:useLimitation'), flattenArray(), mapArray(combine(extractCharacterString(), extractUrl())), mapArray(([text, url]) => ({
|
|
682
|
+
...(url && { url }),
|
|
683
|
+
text,
|
|
684
|
+
})));
|
|
667
685
|
}
|
|
668
686
|
// from gmd:resourceConstraints
|
|
669
687
|
function extractLicenses() {
|
|
670
|
-
return pipe(findChildrenElement('gmd:MD_LegalConstraints', false), filterArray(pipe(findChildrenElement('gmd:MD_RestrictionCode'), mapArray(readAttribute('codeListValue')), map((values) => values.indexOf('license') > -1))), mapArray(
|
|
688
|
+
return pipe(findChildrenElement('gmd:MD_LegalConstraints', false), filterArray(pipe(findChildrenElement('gmd:MD_RestrictionCode'), mapArray(readAttribute('codeListValue')), map((values) => values.indexOf('license') > -1))), mapArray(combine(findChildrenElement('gmd:otherConstraints'), findChildrenElement('gmd:useLimitation'))), flattenArray(), flattenArray(), mapArray(combine(extractCharacterString(), extractUrl())), mapArray(([text, url]) => ({
|
|
671
689
|
...(url && { url }),
|
|
672
690
|
text,
|
|
673
|
-
})))
|
|
691
|
+
})));
|
|
674
692
|
}
|
|
675
693
|
// from gmd:MD_Distribution
|
|
676
694
|
function extractDatasetDistributions() {
|
|
@@ -829,31 +847,55 @@ function readDatasetUpdated(rootEl) {
|
|
|
829
847
|
function readContacts(rootEl) {
|
|
830
848
|
return pipe(findIdentification(), combine(findChildrenElement('gmd:contact'), findChildrenElement('gmd:pointOfContact')), flattenArray(), mapArray(findChildElement('gmd:CI_ResponsibleParty', false)), mapArray(extractIndividuals()), flattenArray())(rootEl);
|
|
831
849
|
}
|
|
832
|
-
|
|
833
|
-
|
|
850
|
+
// from gmd:thesaurusName
|
|
851
|
+
function readThesaurus(rootEl) {
|
|
852
|
+
if (!rootEl)
|
|
853
|
+
return null;
|
|
854
|
+
const findIdentifier = findNestedElement('gmd:CI_Citation', 'gmd:identifier', 'gmd:MD_Identifier', 'gmd:code');
|
|
855
|
+
const id = pipe(findIdentifier, extractCharacterString())(rootEl);
|
|
856
|
+
const url = pipe(findIdentifier, extractUrl())(rootEl);
|
|
857
|
+
const name = pipe(findNestedElement('gmd:CI_Citation', 'gmd:title'), extractCharacterString())(rootEl);
|
|
858
|
+
return {
|
|
859
|
+
id,
|
|
860
|
+
...(name && { name }),
|
|
861
|
+
...(url && { url }),
|
|
862
|
+
};
|
|
834
863
|
}
|
|
835
|
-
|
|
836
|
-
|
|
864
|
+
// from gmd:MD_Keywords
|
|
865
|
+
function readKeywordGroup(rootEl) {
|
|
866
|
+
const type = pipe(findChildrenElement('gmd:MD_KeywordTypeCode'), mapArray(readAttribute('codeListValue')), map((values) => getKeywordTypeFromKeywordTypeCode(values[0])))(rootEl);
|
|
867
|
+
const thesaurus = pipe(findNestedElement('gmd:thesaurusName'), readThesaurus)(rootEl);
|
|
868
|
+
return pipe(findChildrenElement('gmd:keyword'), mapArray((el) => {
|
|
869
|
+
const label = extractCharacterString()(el);
|
|
870
|
+
return {
|
|
871
|
+
...(thesaurus ? { thesaurus } : {}),
|
|
872
|
+
label,
|
|
873
|
+
type,
|
|
874
|
+
};
|
|
875
|
+
}))(rootEl);
|
|
837
876
|
}
|
|
838
|
-
function
|
|
839
|
-
return
|
|
877
|
+
function readKeywords(rootEl) {
|
|
878
|
+
return pipe(findIdentification(), findNestedElements('gmd:descriptiveKeywords', 'gmd:MD_Keywords'), mapArray(readKeywordGroup), flattenArray())(rootEl);
|
|
840
879
|
}
|
|
841
880
|
function readStatus(rootEl) {
|
|
842
881
|
return pipe(findIdentification(), findChildElement('gmd:status', false), extractStatus())(rootEl);
|
|
843
882
|
}
|
|
844
883
|
const getConstraints = pipe(findIdentification(), findChildrenElement('gmd:resourceConstraints', false));
|
|
845
|
-
function
|
|
846
|
-
return pipe(getConstraints, mapArray(
|
|
884
|
+
function readLegalConstraints(rootEl) {
|
|
885
|
+
return pipe(getConstraints, mapArray(extractLegalConstraints()), flattenArray(), flattenArray())(rootEl);
|
|
886
|
+
}
|
|
887
|
+
function readSecurityConstraints(rootEl) {
|
|
888
|
+
return pipe(getConstraints, mapArray(extractSecurityConstraints()), flattenArray())(rootEl);
|
|
847
889
|
}
|
|
848
|
-
function
|
|
849
|
-
return pipe(getConstraints, mapArray(
|
|
890
|
+
function readOtherConstraints(rootEl) {
|
|
891
|
+
return pipe(getConstraints, mapArray(extractOtherConstraints()), flattenArray())(rootEl);
|
|
850
892
|
}
|
|
851
893
|
function readLicenses(rootEl) {
|
|
852
894
|
return pipe(getConstraints, mapArray(extractLicenses()), flattenArray())(rootEl);
|
|
853
895
|
}
|
|
854
896
|
// not used yet
|
|
855
897
|
function readIsoTopics(rootEl) {
|
|
856
|
-
return pipe(findIdentification(), findChildrenElement('gmd:MD_TopicCategoryCode',
|
|
898
|
+
return pipe(findIdentification(), findChildrenElement('gmd:MD_TopicCategoryCode', true), mapArray(readText()))(rootEl);
|
|
857
899
|
}
|
|
858
900
|
function readSpatialRepresentation(rootEl) {
|
|
859
901
|
return pipe(findIdentification(), findNestedElement('gmd:spatialRepresentationType', 'gmd:MD_SpatialRepresentationTypeCode'), readAttribute('codeListValue'), map(getSpatialRepresentationFromCode))(rootEl);
|
|
@@ -1069,33 +1111,50 @@ function updateCitationDate(date, type) {
|
|
|
1069
1111
|
function appendCitationDate(date, type) {
|
|
1070
1112
|
return appendChildren(pipe(createElement('gmd:date'), createChild('gmd:CI_Date'), appendChildren(pipe(createElement('gmd:date'), writeDateTime(date)), pipe(createElement('gmd:dateType'), createChild('gmd:CI_DateTypeCode'), addAttribute('codeList', 'http://standards.iso.org/iso/19139/resources/gmxCodelists.xml#CI_DateTypeCode'), addAttribute('codeListValue', type)))));
|
|
1071
1113
|
}
|
|
1072
|
-
function removeKeywords(
|
|
1073
|
-
return removeChildren(pipe(findNestedElements('gmd:descriptiveKeywords')
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
|
|
1114
|
+
function removeKeywords() {
|
|
1115
|
+
return removeChildren(pipe(findNestedElements('gmd:descriptiveKeywords')));
|
|
1116
|
+
}
|
|
1117
|
+
// returns a <gmd:thesaurusName> element
|
|
1118
|
+
function createThesaurus(thesaurus) {
|
|
1119
|
+
return pipe(createElement('gmd:thesaurusName'), createChild('gmd:CI_Citation'), appendChildren(pipe(createElement('gmd:title'), writeCharacterString(thesaurus.name || thesaurus.id)), pipe(createElement('gmd:identifier'), createChild('gmd:MD_Identifier'), appendChildren(pipe(createElement('gmd:code'), thesaurus.url
|
|
1120
|
+
? writeAnchor(thesaurus.url, thesaurus.id)
|
|
1121
|
+
: writeCharacterString(thesaurus.id))))));
|
|
1122
|
+
}
|
|
1123
|
+
function appendKeywords(keywords) {
|
|
1124
|
+
const keywordsByThesaurus = keywords.reduce((acc, keyword) => {
|
|
1125
|
+
const thesaurusId = keyword.thesaurus?.id;
|
|
1126
|
+
const type = keyword.type;
|
|
1127
|
+
let existingGroup = acc.find((group) => group[0].thesaurus
|
|
1128
|
+
? group[0].thesaurus.id === thesaurusId
|
|
1129
|
+
: group[0].type === type);
|
|
1130
|
+
if (!existingGroup) {
|
|
1131
|
+
existingGroup = [];
|
|
1132
|
+
acc.push(existingGroup);
|
|
1133
|
+
}
|
|
1134
|
+
existingGroup.push(keyword);
|
|
1135
|
+
return acc;
|
|
1136
|
+
}, []);
|
|
1137
|
+
return appendChildren(...keywordsByThesaurus.map((keywords) => pipe(createElement('gmd:descriptiveKeywords'), createChild('gmd:MD_Keywords'), appendChildren(pipe(createElement('gmd:type'), createChild('gmd:MD_KeywordTypeCode'), addAttribute('codeList', 'http://standards.iso.org/iso/19139/resources/gmxCodelists.xml#MD_KeywordTypeCode'), addAttribute('codeListValue', keywords[0].type))), keywords[0].thesaurus
|
|
1138
|
+
? appendChildren(createThesaurus(keywords[0].thesaurus))
|
|
1139
|
+
: noop, appendChildren(...keywords.map((keyword) => pipe(createElement('gmd:keyword'), writeCharacterString(keyword.label)))))));
|
|
1140
|
+
}
|
|
1141
|
+
function createConstraint(constraint, type) {
|
|
1142
|
+
if (type === 'security') {
|
|
1090
1143
|
return pipe(createElement('gmd:resourceConstraints'), createChild('gmd:MD_SecurityConstraints'), appendChildren(pipe(createElement('gmd:classification'), createChild('gmd:MD_ClassificationCode'), addAttribute('codeList', 'http://standards.iso.org/iso/19139/resources/gmxCodelists.xml#MD_ClassificationCode'), addAttribute('codeListValue', 'restricted')), pipe(createElement('gmd:useLimitation'), writeCharacterString(constraint.text))));
|
|
1091
1144
|
}
|
|
1092
|
-
|
|
1145
|
+
else if (type === 'legal') {
|
|
1146
|
+
return pipe(createElement('gmd:resourceConstraints'), createChild('gmd:MD_LegalConstraints'), appendChildren(pipe(createElement('gmd:accessConstraints'), createChild('gmd:MD_RestrictionCode'), addAttribute('codeList', 'http://standards.iso.org/iso/19139/resources/gmxCodelists.xml#MD_RestrictionCode'), addAttribute('codeListValue', 'otherRestrictions')), pipe(createElement('gmd:otherConstraints'), writeCharacterString(constraint.text))));
|
|
1147
|
+
}
|
|
1148
|
+
return pipe(createElement('gmd:resourceConstraints'), createChild('gmd:MD_Constraints'), appendChildren(pipe(createElement('gmd:useLimitation'), writeCharacterString(constraint.text))));
|
|
1093
1149
|
}
|
|
1094
|
-
function
|
|
1150
|
+
function removeOtherConstraints() {
|
|
1095
1151
|
return removeChildren(pipe(findChildrenElement('gmd:resourceConstraints'), filterArray(pipe(findNestedElements('gmd:MD_Constraints', 'gmd:useLimitation'), (array) => array.length > 0))));
|
|
1096
1152
|
}
|
|
1097
|
-
function
|
|
1098
|
-
return pipe(
|
|
1153
|
+
function removeSecurityConstraints() {
|
|
1154
|
+
return removeChildren(pipe(findChildrenElement('gmd:resourceConstraints'), filterArray(pipe(findNestedElements('gmd:MD_SecurityConstraints', 'gmd:useLimitation'), (array) => array.length > 0))));
|
|
1155
|
+
}
|
|
1156
|
+
function removeLegalConstraints() {
|
|
1157
|
+
return removeChildren(pipe(findChildrenElement('gmd:resourceConstraints'), filterArray(pipe(findNestedElements('gmd:MD_LegalConstraints', 'gmd:accessConstraints', 'gmd:MD_RestrictionCode'), mapArray(readAttribute('codeListValue')), (restrictionCodes) => restrictionCodes.every((code) => code !== 'license')))));
|
|
1099
1158
|
}
|
|
1100
1159
|
function removeLicenses() {
|
|
1101
1160
|
return removeChildren(pipe(findChildrenElement('gmd:resourceConstraints'), filterArray(pipe(findNestedElements('gmd:MD_LegalConstraints', 'gmd:accessConstraints', 'gmd:MD_RestrictionCode'), mapArray(readAttribute('codeListValue')), (restrictionCodes) => restrictionCodes.some((code) => code === 'license')))));
|
|
@@ -1194,19 +1253,22 @@ function writeContacts(record, rootEl) {
|
|
|
1194
1253
|
pipe(findOrCreateIdentification(), removeChildrenByName('gmd:pointOfContact'), appendChildren(...record.contacts.map((contact) => pipe(createElement('gmd:pointOfContact'), appendResponsibleParty(contact)))))(rootEl);
|
|
1195
1254
|
}
|
|
1196
1255
|
function writeKeywords(record, rootEl) {
|
|
1197
|
-
pipe(findOrCreateIdentification(), removeKeywords(
|
|
1256
|
+
pipe(findOrCreateIdentification(), removeKeywords(), appendKeywords(record.keywords))(rootEl);
|
|
1198
1257
|
}
|
|
1199
|
-
function
|
|
1200
|
-
pipe(findOrCreateIdentification(),
|
|
1201
|
-
}
|
|
1202
|
-
function writeAccessConstraints(record, rootEl) {
|
|
1203
|
-
pipe(findOrCreateIdentification(), removeAccessConstraints(), appendChildren(...record.accessConstraints.map(createAccessConstraint)))(rootEl);
|
|
1258
|
+
function writeTopics(record, rootEl) {
|
|
1259
|
+
pipe(findOrCreateIdentification(), removeChildrenByName('gmd:topicCategory'), appendChildren(...record.topics.map((topic) => pipe(createElement('gmd:topicCategory'), createChild('gmd:MD_TopicCategoryCode'), setTextContent(topic)))))(rootEl);
|
|
1204
1260
|
}
|
|
1205
1261
|
function writeLicenses(record, rootEl) {
|
|
1206
1262
|
pipe(findOrCreateIdentification(), removeLicenses(), appendChildren(...record.licenses.map(createLicense)))(rootEl);
|
|
1207
1263
|
}
|
|
1208
|
-
function
|
|
1209
|
-
pipe(findOrCreateIdentification(),
|
|
1264
|
+
function writeLegalConstraints(record, rootEl) {
|
|
1265
|
+
pipe(findOrCreateIdentification(), removeLegalConstraints(), appendChildren(...record.legalConstraints.map((c) => createConstraint(c, 'legal'))))(rootEl);
|
|
1266
|
+
}
|
|
1267
|
+
function writeSecurityConstraints(record, rootEl) {
|
|
1268
|
+
pipe(findOrCreateIdentification(), removeSecurityConstraints(), appendChildren(...record.securityConstraints.map((c) => createConstraint(c, 'security'))))(rootEl);
|
|
1269
|
+
}
|
|
1270
|
+
function writeOtherConstraints(record, rootEl) {
|
|
1271
|
+
pipe(findOrCreateIdentification(), removeOtherConstraints(), appendChildren(...record.otherConstraints.map((c) => createConstraint(c, 'other'))))(rootEl);
|
|
1210
1272
|
}
|
|
1211
1273
|
function writeUpdateFrequency(record, rootEl) {
|
|
1212
1274
|
pipe(findOrCreateIdentification(), findChildOrCreate('gmd:resourceMaintenance'), removeAllChildren(), findChildOrCreate('gmd:MD_MaintenanceInformation'), typeof record.updateFrequency === 'object'
|
|
@@ -1303,13 +1365,12 @@ function toModel(xml) {
|
|
|
1303
1365
|
const recordUpdated = readRecordUpdated(rootEl);
|
|
1304
1366
|
const recordCreated = recordUpdated;
|
|
1305
1367
|
const keywords = readKeywords(rootEl);
|
|
1306
|
-
const
|
|
1307
|
-
const
|
|
1308
|
-
const
|
|
1368
|
+
const topics = readIsoTopics(rootEl);
|
|
1369
|
+
const legalConstraints = readLegalConstraints(rootEl);
|
|
1370
|
+
const otherConstraints = readOtherConstraints(rootEl);
|
|
1371
|
+
const securityConstraints = readSecurityConstraints(rootEl);
|
|
1309
1372
|
const licenses = readLicenses(rootEl);
|
|
1310
1373
|
const overviews = readOverviews(rootEl);
|
|
1311
|
-
// not used yet
|
|
1312
|
-
const isoTopics = readIsoTopics(rootEl);
|
|
1313
1374
|
if (kind === 'dataset') {
|
|
1314
1375
|
const status = readStatus(rootEl);
|
|
1315
1376
|
const datasetCreated = readDatasetCreated(rootEl);
|
|
@@ -1332,10 +1393,11 @@ function toModel(xml) {
|
|
|
1332
1393
|
contacts,
|
|
1333
1394
|
contactsForResource: [],
|
|
1334
1395
|
keywords,
|
|
1335
|
-
|
|
1336
|
-
accessConstraints,
|
|
1337
|
-
useLimitations,
|
|
1396
|
+
topics,
|
|
1338
1397
|
licenses,
|
|
1398
|
+
legalConstraints,
|
|
1399
|
+
securityConstraints,
|
|
1400
|
+
otherConstraints,
|
|
1339
1401
|
...(datasetCreated && { datasetCreated }),
|
|
1340
1402
|
...(datasetUpdated && { datasetUpdated }),
|
|
1341
1403
|
lineage,
|
|
@@ -1359,10 +1421,11 @@ function toModel(xml) {
|
|
|
1359
1421
|
ownerOrganization,
|
|
1360
1422
|
contacts,
|
|
1361
1423
|
keywords,
|
|
1362
|
-
|
|
1363
|
-
accessConstraints,
|
|
1364
|
-
useLimitations,
|
|
1424
|
+
topics,
|
|
1365
1425
|
licenses,
|
|
1426
|
+
legalConstraints,
|
|
1427
|
+
securityConstraints,
|
|
1428
|
+
otherConstraints,
|
|
1366
1429
|
overviews,
|
|
1367
1430
|
onlineResources,
|
|
1368
1431
|
};
|
|
@@ -1387,10 +1450,12 @@ function toXml(record, originalXml) {
|
|
|
1387
1450
|
writeAbstract(record, rootEl);
|
|
1388
1451
|
fieldChanged('contacts') && writeContacts(record, rootEl);
|
|
1389
1452
|
fieldChanged('keywords') && writeKeywords(record, rootEl);
|
|
1390
|
-
fieldChanged('
|
|
1391
|
-
fieldChanged('
|
|
1453
|
+
fieldChanged('topics') && writeTopics(record, rootEl);
|
|
1454
|
+
fieldChanged('legalConstraints') && writeLegalConstraints(record, rootEl);
|
|
1455
|
+
fieldChanged('securityConstraints') &&
|
|
1456
|
+
writeSecurityConstraints(record, rootEl);
|
|
1392
1457
|
fieldChanged('licenses') && writeLicenses(record, rootEl);
|
|
1393
|
-
fieldChanged('
|
|
1458
|
+
fieldChanged('otherConstraints') && writeOtherConstraints(record, rootEl);
|
|
1394
1459
|
if (record.kind === 'dataset') {
|
|
1395
1460
|
writeStatus(record, rootEl);
|
|
1396
1461
|
fieldChanged('updateFrequency') && writeUpdateFrequency(record, rootEl);
|
|
@@ -1457,6 +1522,31 @@ const mapContact = (sourceContact, lang3) => {
|
|
|
1457
1522
|
...(phone && { phone }),
|
|
1458
1523
|
};
|
|
1459
1524
|
};
|
|
1525
|
+
const mapKeywords = (thesauri, language) => {
|
|
1526
|
+
const keywords = [];
|
|
1527
|
+
for (const thesaurusId in thesauri) {
|
|
1528
|
+
const rawThesaurus = thesauri[thesaurusId];
|
|
1529
|
+
let thesaurus = null;
|
|
1530
|
+
if (rawThesaurus.id) {
|
|
1531
|
+
const thesaurusSource = { ...rawThesaurus };
|
|
1532
|
+
const url = getAsUrl(selectField(thesaurusSource, 'link'));
|
|
1533
|
+
const name = selectField(thesaurusSource, 'title');
|
|
1534
|
+
thesaurus = {
|
|
1535
|
+
id: rawThesaurus.id,
|
|
1536
|
+
...(name && { name }),
|
|
1537
|
+
...(url && { url }),
|
|
1538
|
+
};
|
|
1539
|
+
}
|
|
1540
|
+
for (const keyword of rawThesaurus.keywords) {
|
|
1541
|
+
keywords.push({
|
|
1542
|
+
label: selectTranslatedValue(keyword, language),
|
|
1543
|
+
type: getKeywordTypeFromKeywordTypeCode(rawThesaurus.theme),
|
|
1544
|
+
...(thesaurus && { thesaurus }),
|
|
1545
|
+
});
|
|
1546
|
+
}
|
|
1547
|
+
}
|
|
1548
|
+
return keywords;
|
|
1549
|
+
};
|
|
1460
1550
|
|
|
1461
1551
|
/**
|
|
1462
1552
|
* Custom HttpParameterCodec
|
|
@@ -16543,133 +16633,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
|
|
|
16543
16633
|
}]
|
|
16544
16634
|
}], ctorParameters: function () { return [{ type: i1$1.TranslateService }]; } });
|
|
16545
16635
|
|
|
16546
|
-
// IMPORTANT:
|
|
16547
|
-
// This was copy-pasted from https://github.com/mwootendev/ngx-translate-plugins/blob/7c6c73c7d16c9519a7bafff939d29fd8ea5e574a/projects/testing/src/lib/test-translate-loader.service.ts
|
|
16548
|
-
// because the original package was expecting rxjs 7+ as a peer dep and that was conflicting with many other dependencies
|
|
16549
|
-
// FIXME: when rxjs 7 can be used in the project, remove this and do `npm install ngx-translate-testing --save-dev`
|
|
16550
|
-
class TestTranslateLoader extends TranslateLoader {
|
|
16551
|
-
constructor(_translations = {}) {
|
|
16552
|
-
super();
|
|
16553
|
-
this._translations = _translations;
|
|
16554
|
-
}
|
|
16555
|
-
/**
|
|
16556
|
-
* Returns an {Observable} of translations for the specified language. If the
|
|
16557
|
-
* language is not recognized, an empty translations object will be returned.
|
|
16558
|
-
*
|
|
16559
|
-
* @param language the language for which the translations should be retrieved.
|
|
16560
|
-
* @returns the translations for the specified
|
|
16561
|
-
* language or an empty set of translations if the language is not recognized.
|
|
16562
|
-
*/
|
|
16563
|
-
getTranslation(language) {
|
|
16564
|
-
return of(this._translations[language] || {});
|
|
16565
|
-
}
|
|
16566
|
-
}
|
|
16567
|
-
|
|
16568
|
-
// IMPORTANT:
|
|
16569
|
-
// This was copy-pasted from https://github.com/mwootendev/ngx-translate-plugins/blob/7c6c73c7d16c9519a7bafff939d29fd8ea5e574a/projects/testing/src/lib/testing.module.ts
|
|
16570
|
-
// because the original package was expecting rxjs 7+ as a peer dep and that was conflicting with many other dependencies
|
|
16571
|
-
// FIXME: when rxjs 7 can be used in the project, remove this and do `npm install ngx-translate-testing --save-dev`
|
|
16572
|
-
/**
|
|
16573
|
-
* The TranslateTestingModule provides the {TranslateModule} as well as a
|
|
16574
|
-
* {TranslateService} configured to return translations specific for the
|
|
16575
|
-
* test environment.
|
|
16576
|
-
*
|
|
16577
|
-
* @export
|
|
16578
|
-
*/
|
|
16579
|
-
class TranslateTestingModule {
|
|
16580
|
-
constructor() {
|
|
16581
|
-
this._translations = {};
|
|
16582
|
-
}
|
|
16583
|
-
static withTranslations(languageOrTranslations, translations) {
|
|
16584
|
-
const translateTestingModule = new TranslateTestingModule();
|
|
16585
|
-
if (typeof languageOrTranslations === 'string') {
|
|
16586
|
-
return translateTestingModule.withTranslations(languageOrTranslations, translations);
|
|
16587
|
-
}
|
|
16588
|
-
return translateTestingModule.withTranslations(languageOrTranslations);
|
|
16589
|
-
}
|
|
16590
|
-
get ngModule() {
|
|
16591
|
-
return TranslateTestingModule;
|
|
16592
|
-
}
|
|
16593
|
-
get providers() {
|
|
16594
|
-
const translateService = new TranslateService(null, new TestTranslateLoader(this._translations), this._compiler || new TranslateFakeCompiler(), new TranslateDefaultParser(), new FakeMissingTranslationHandler(), true, true, false, this._defaultLanguage);
|
|
16595
|
-
return [
|
|
16596
|
-
{
|
|
16597
|
-
provide: TranslateService,
|
|
16598
|
-
useValue: translateService,
|
|
16599
|
-
},
|
|
16600
|
-
];
|
|
16601
|
-
}
|
|
16602
|
-
withTranslations(languageOrTranslations, translations) {
|
|
16603
|
-
if (typeof languageOrTranslations === 'string' && translations) {
|
|
16604
|
-
this.addTranslations(languageOrTranslations, translations);
|
|
16605
|
-
this._defaultLanguage = languageOrTranslations;
|
|
16606
|
-
}
|
|
16607
|
-
else if (languageOrTranslations) {
|
|
16608
|
-
Object.keys(languageOrTranslations).forEach((language) => this.addTranslations(language, languageOrTranslations[language]));
|
|
16609
|
-
}
|
|
16610
|
-
return this;
|
|
16611
|
-
}
|
|
16612
|
-
/**
|
|
16613
|
-
* Updates the {TranslationTestingModule} to provide a {TranslateService} that will
|
|
16614
|
-
* use the provided {TranslateCompiler} to translate the test translations.
|
|
16615
|
-
*
|
|
16616
|
-
* @example
|
|
16617
|
-
*
|
|
16618
|
-
* TranslateTestingModule.withTranslations('en', {people: '{gender, select, male{He is} female{She is} other{They are}} {how})'})
|
|
16619
|
-
* .withCompiler(new TranslateMessageFormatCompiler());
|
|
16620
|
-
*
|
|
16621
|
-
* @param compiler the compiler to use to compile the test translations.
|
|
16622
|
-
* @returns the instance that can be used to chain additional configuration.
|
|
16623
|
-
* @memberof TranslateTestingModule
|
|
16624
|
-
*/
|
|
16625
|
-
withCompiler(compiler) {
|
|
16626
|
-
this._compiler = compiler;
|
|
16627
|
-
return this;
|
|
16628
|
-
}
|
|
16629
|
-
/**
|
|
16630
|
-
* Updates the {TranslateTestingModule} to use the provided language as the default language.
|
|
16631
|
-
* By default, the default language will be set to the first language provided.
|
|
16632
|
-
*
|
|
16633
|
-
* @example
|
|
16634
|
-
*
|
|
16635
|
-
* TranslateTestingModule.withTranslations('es', SPANISH_TRANSLATIONS)
|
|
16636
|
-
* .withTranslations('en', ENGLISH_TRANSLATIONS)
|
|
16637
|
-
* .withDefaultLanguage('en');
|
|
16638
|
-
*
|
|
16639
|
-
* @param language the new default language for translations.
|
|
16640
|
-
* @returns the instance that can be used to chain additional configuration.
|
|
16641
|
-
* @memberof TranslateTestingModule
|
|
16642
|
-
*/
|
|
16643
|
-
withDefaultLanguage(language) {
|
|
16644
|
-
this._defaultLanguage = language || this._defaultLanguage;
|
|
16645
|
-
return this;
|
|
16646
|
-
}
|
|
16647
|
-
addTranslations(language, translations) {
|
|
16648
|
-
if (!this._defaultLanguage) {
|
|
16649
|
-
this._defaultLanguage = language;
|
|
16650
|
-
}
|
|
16651
|
-
if (this._translations[language]) {
|
|
16652
|
-
this._translations[language] = {
|
|
16653
|
-
...this._translations[language],
|
|
16654
|
-
...translations,
|
|
16655
|
-
};
|
|
16656
|
-
}
|
|
16657
|
-
else {
|
|
16658
|
-
this._translations[language] = translations;
|
|
16659
|
-
}
|
|
16660
|
-
}
|
|
16661
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: TranslateTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
16662
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.7", ngImport: i0, type: TranslateTestingModule, imports: [TranslateModule], exports: [TranslateModule] }); }
|
|
16663
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: TranslateTestingModule, imports: [TranslateModule, TranslateModule] }); }
|
|
16664
|
-
}
|
|
16665
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: TranslateTestingModule, decorators: [{
|
|
16666
|
-
type: NgModule,
|
|
16667
|
-
args: [{
|
|
16668
|
-
imports: [TranslateModule],
|
|
16669
|
-
exports: [TranslateModule],
|
|
16670
|
-
}]
|
|
16671
|
-
}] });
|
|
16672
|
-
|
|
16673
16636
|
var dropFile$6 = "Datei ablegen";
|
|
16674
16637
|
var next$6 = "weiter";
|
|
16675
16638
|
var previous$6 = "zurück";
|
|
@@ -16692,20 +16655,21 @@ var de = {
|
|
|
16692
16655
|
"chart.type.line": "Liniendiagramm",
|
|
16693
16656
|
"chart.type.lineSmooth": "Geglättes Liniendiagramm",
|
|
16694
16657
|
"chart.type.pie": "Kreisdiagramm",
|
|
16658
|
+
"dashboard.createRecord": "",
|
|
16695
16659
|
"dashboard.labels.mySpace": "Mein Bereich",
|
|
16696
16660
|
"dashboard.records.all": "Katalog",
|
|
16697
16661
|
"dashboard.records.myDraft": "Meine Entwürfe",
|
|
16698
16662
|
"dashboard.records.myLibrary": "Meine Bibliothek",
|
|
16699
16663
|
"dashboard.records.myOrg": "Meine Organisation",
|
|
16700
16664
|
"dashboard.records.myRecords": "Meine Datensätze",
|
|
16701
|
-
"dashboard.records.noRecord": "Kein Datensatz für diese Organisation",
|
|
16702
|
-
"dashboard.records.noUser": "Keine Benutzer für diese Organisation",
|
|
16703
16665
|
"dashboard.records.publishedRecords": "{count, plural, =1{veröffentlichter Datensatz} other{veröffentlichte Datensätze}}",
|
|
16704
16666
|
"dashboard.records.search": "Suche nach \"{searchText}\"",
|
|
16705
16667
|
"dashboard.records.userDetail": "Name",
|
|
16706
16668
|
"dashboard.records.userEmail": "E-Mail",
|
|
16707
16669
|
"dashboard.records.username": "Benutzername",
|
|
16708
16670
|
"dashboard.records.users": "{count, plural, =1{Benutzer} other{Benutzer}}",
|
|
16671
|
+
"dashboard.results.listMetadata": "",
|
|
16672
|
+
"dashboard.results.listResources": "",
|
|
16709
16673
|
"datafeeder.analysisProgressBar.illustration.fileFormatDetection": "Dateiformat-Erkennung",
|
|
16710
16674
|
"datafeeder.analysisProgressBar.illustration.gatheringDatasetInformation": "Sammeln von Datensatzinformationen",
|
|
16711
16675
|
"datafeeder.analysisProgressBar.illustration.samplingData": "Datenauswahl",
|
|
@@ -16897,16 +16861,15 @@ var de = {
|
|
|
16897
16861
|
"record.metadata.author": "Autor",
|
|
16898
16862
|
"record.metadata.catalog": "Katalog",
|
|
16899
16863
|
"record.metadata.contact": "Kontakt",
|
|
16900
|
-
"record.metadata.createdOn": "Erstellt am",
|
|
16901
16864
|
"record.metadata.details": "Technische Informationen",
|
|
16902
16865
|
"record.metadata.download": "Downloads",
|
|
16903
16866
|
"record.metadata.formats": "Formate",
|
|
16904
|
-
"record.metadata.isOpenData": "Open Data",
|
|
16905
16867
|
"record.metadata.keywords": "Stichworte",
|
|
16906
16868
|
"record.metadata.lastUpdate": "Zuletzt aktualisiert am",
|
|
16907
16869
|
"record.metadata.links": "Links",
|
|
16908
16870
|
"record.metadata.noUsage": "Für diesen Datensatz sind keine Nutzungsbedingungen angegeben.",
|
|
16909
16871
|
"record.metadata.origin": "Über die Daten",
|
|
16872
|
+
"record.metadata.otherConstraints": "",
|
|
16910
16873
|
"record.metadata.owner": "",
|
|
16911
16874
|
"record.metadata.preview": "Vorschau",
|
|
16912
16875
|
"record.metadata.publications": "Veröffentlichungen",
|
|
@@ -16930,8 +16893,9 @@ var de = {
|
|
|
16930
16893
|
"record.metadata.quality.updateFrequency.success": "Aktualisierungsfrequenz angegeben",
|
|
16931
16894
|
"record.metadata.related": "Ähnliche Datensätze",
|
|
16932
16895
|
"record.metadata.sheet": "Weitere Informationen verfügbar unter:",
|
|
16933
|
-
"record.metadata.
|
|
16896
|
+
"record.metadata.status": "",
|
|
16934
16897
|
"record.metadata.title": "Titel",
|
|
16898
|
+
"record.metadata.topics": "Kategorien",
|
|
16935
16899
|
"record.metadata.type": "Geographischer Datensatz",
|
|
16936
16900
|
"record.metadata.uniqueId": "Eindeutige Kennung",
|
|
16937
16901
|
"record.metadata.updateFrequency": "Aktualisierungsfrequenz der Daten",
|
|
@@ -16967,6 +16931,7 @@ var de = {
|
|
|
16967
16931
|
"search.filters.isSpatial": "Ist räumliche Daten",
|
|
16968
16932
|
"search.filters.isSpatial.no": "nicht räumlich",
|
|
16969
16933
|
"search.filters.isSpatial.yes": "räumlich",
|
|
16934
|
+
"search.filters.keyword": "Schlüsselwort",
|
|
16970
16935
|
"search.filters.license": "Lizenz",
|
|
16971
16936
|
"search.filters.license.cc-by": "Creative Commons CC-BY",
|
|
16972
16937
|
"search.filters.license.cc-by-sa": "Creative Commons CC-BY-SA",
|
|
@@ -17031,20 +16996,21 @@ var en = {
|
|
|
17031
16996
|
"chart.type.line": "line chart",
|
|
17032
16997
|
"chart.type.lineSmooth": "smooth line chart",
|
|
17033
16998
|
"chart.type.pie": "pie chart",
|
|
16999
|
+
"dashboard.createRecord": "New record",
|
|
17034
17000
|
"dashboard.labels.mySpace": "My space",
|
|
17035
|
-
"dashboard.records.all": "
|
|
17001
|
+
"dashboard.records.all": "Metadata records",
|
|
17036
17002
|
"dashboard.records.myDraft": "My drafts",
|
|
17037
17003
|
"dashboard.records.myLibrary": "My library",
|
|
17038
17004
|
"dashboard.records.myOrg": "Organization",
|
|
17039
17005
|
"dashboard.records.myRecords": "My Records",
|
|
17040
|
-
"dashboard.records.noRecord": "No record for this organization",
|
|
17041
|
-
"dashboard.records.noUser": "No users for this organization",
|
|
17042
17006
|
"dashboard.records.publishedRecords": "{count, plural, =1{published record} other{published records}}",
|
|
17043
17007
|
"dashboard.records.search": "Search for \"{searchText}\"",
|
|
17044
17008
|
"dashboard.records.userDetail": "Name",
|
|
17045
17009
|
"dashboard.records.userEmail": "Email",
|
|
17046
17010
|
"dashboard.records.username": "Username",
|
|
17047
17011
|
"dashboard.records.users": "{count, plural, =1{user} other{users}}",
|
|
17012
|
+
"dashboard.results.listMetadata": "Show metadata",
|
|
17013
|
+
"dashboard.results.listResources": "Show resources",
|
|
17048
17014
|
"datafeeder.analysisProgressBar.illustration.fileFormatDetection": "File format \n detection",
|
|
17049
17015
|
"datafeeder.analysisProgressBar.illustration.gatheringDatasetInformation": "Gathering dataset \n information",
|
|
17050
17016
|
"datafeeder.analysisProgressBar.illustration.samplingData": "Sampling \n data",
|
|
@@ -17236,16 +17202,15 @@ var en = {
|
|
|
17236
17202
|
"record.metadata.author": "Author",
|
|
17237
17203
|
"record.metadata.catalog": "Catalog",
|
|
17238
17204
|
"record.metadata.contact": "Contact",
|
|
17239
|
-
"record.metadata.createdOn": "Created on",
|
|
17240
17205
|
"record.metadata.details": "Technical information",
|
|
17241
17206
|
"record.metadata.download": "Downloads",
|
|
17242
17207
|
"record.metadata.formats": "Formats",
|
|
17243
|
-
"record.metadata.isOpenData": "Open Data",
|
|
17244
17208
|
"record.metadata.keywords": "Keywords",
|
|
17245
17209
|
"record.metadata.lastUpdate": "Last updated on",
|
|
17246
17210
|
"record.metadata.links": "Links",
|
|
17247
17211
|
"record.metadata.noUsage": "No usage conditions specified for this record.",
|
|
17248
17212
|
"record.metadata.origin": "About the data",
|
|
17213
|
+
"record.metadata.otherConstraints": "Additional Conditions",
|
|
17249
17214
|
"record.metadata.owner": "Catalog of origin",
|
|
17250
17215
|
"record.metadata.preview": "Preview",
|
|
17251
17216
|
"record.metadata.publications": "publications",
|
|
@@ -17269,14 +17234,15 @@ var en = {
|
|
|
17269
17234
|
"record.metadata.quality.updateFrequency.success": "Update frequency is specified",
|
|
17270
17235
|
"record.metadata.related": "Related records",
|
|
17271
17236
|
"record.metadata.sheet": "Original metadata",
|
|
17272
|
-
"record.metadata.
|
|
17237
|
+
"record.metadata.status": "Status",
|
|
17273
17238
|
"record.metadata.title": "Title",
|
|
17239
|
+
"record.metadata.topics": "Categories",
|
|
17274
17240
|
"record.metadata.type": "Geographical dataset",
|
|
17275
17241
|
"record.metadata.uniqueId": "Unique Identifier",
|
|
17276
17242
|
"record.metadata.updateFrequency": "Data Update Frequency",
|
|
17277
17243
|
"record.metadata.updateStatus": "Data Update Status",
|
|
17278
|
-
"record.metadata.updatedOn": "
|
|
17279
|
-
"record.metadata.usage": "
|
|
17244
|
+
"record.metadata.updatedOn": "Last Data Information Update",
|
|
17245
|
+
"record.metadata.usage": "License and Conditions",
|
|
17280
17246
|
"record.more.details": "Read more",
|
|
17281
17247
|
"record.tab.chart": "Chart",
|
|
17282
17248
|
"record.tab.data": "Table",
|
|
@@ -17306,6 +17272,7 @@ var en = {
|
|
|
17306
17272
|
"search.filters.isSpatial": "Is spatial data",
|
|
17307
17273
|
"search.filters.isSpatial.no": "non spatial",
|
|
17308
17274
|
"search.filters.isSpatial.yes": "spatial",
|
|
17275
|
+
"search.filters.keyword": "Keyword",
|
|
17309
17276
|
"search.filters.license": "License",
|
|
17310
17277
|
"search.filters.license.cc-by": "Creative Commons CC-BY",
|
|
17311
17278
|
"search.filters.license.cc-by-sa": "Creative Commons CC-BY-SA",
|
|
@@ -17370,20 +17337,21 @@ var es = {
|
|
|
17370
17337
|
"chart.type.line": "gráfico de líneas",
|
|
17371
17338
|
"chart.type.lineSmooth": "gráfico de líneas suave",
|
|
17372
17339
|
"chart.type.pie": "gráfico circular",
|
|
17340
|
+
"dashboard.createRecord": "",
|
|
17373
17341
|
"dashboard.labels.mySpace": "Mi espacio",
|
|
17374
17342
|
"dashboard.records.all": "Catálogo",
|
|
17375
17343
|
"dashboard.records.myDraft": "Mis borradores",
|
|
17376
17344
|
"dashboard.records.myLibrary": "Mi biblioteca",
|
|
17377
17345
|
"dashboard.records.myOrg": "Organización",
|
|
17378
17346
|
"dashboard.records.myRecords": "Mis Registros",
|
|
17379
|
-
"dashboard.records.noRecord": "",
|
|
17380
|
-
"dashboard.records.noUser": "",
|
|
17381
17347
|
"dashboard.records.publishedRecords": "",
|
|
17382
17348
|
"dashboard.records.search": "Buscar \"{searchText}\"",
|
|
17383
17349
|
"dashboard.records.userDetail": "",
|
|
17384
17350
|
"dashboard.records.userEmail": "",
|
|
17385
17351
|
"dashboard.records.username": "",
|
|
17386
17352
|
"dashboard.records.users": "",
|
|
17353
|
+
"dashboard.results.listMetadata": "",
|
|
17354
|
+
"dashboard.results.listResources": "",
|
|
17387
17355
|
"datafeeder.analysisProgressBar.illustration.fileFormatDetection": "",
|
|
17388
17356
|
"datafeeder.analysisProgressBar.illustration.gatheringDatasetInformation": "",
|
|
17389
17357
|
"datafeeder.analysisProgressBar.illustration.samplingData": "",
|
|
@@ -17575,16 +17543,15 @@ var es = {
|
|
|
17575
17543
|
"record.metadata.author": "",
|
|
17576
17544
|
"record.metadata.catalog": "",
|
|
17577
17545
|
"record.metadata.contact": "",
|
|
17578
|
-
"record.metadata.createdOn": "",
|
|
17579
17546
|
"record.metadata.details": "",
|
|
17580
17547
|
"record.metadata.download": "",
|
|
17581
17548
|
"record.metadata.formats": "",
|
|
17582
|
-
"record.metadata.isOpenData": "",
|
|
17583
17549
|
"record.metadata.keywords": "",
|
|
17584
17550
|
"record.metadata.lastUpdate": "",
|
|
17585
17551
|
"record.metadata.links": "",
|
|
17586
17552
|
"record.metadata.noUsage": "",
|
|
17587
17553
|
"record.metadata.origin": "",
|
|
17554
|
+
"record.metadata.otherConstraints": "",
|
|
17588
17555
|
"record.metadata.owner": "",
|
|
17589
17556
|
"record.metadata.preview": "",
|
|
17590
17557
|
"record.metadata.publications": "",
|
|
@@ -17608,8 +17575,9 @@ var es = {
|
|
|
17608
17575
|
"record.metadata.quality.updateFrequency.success": "",
|
|
17609
17576
|
"record.metadata.related": "",
|
|
17610
17577
|
"record.metadata.sheet": "",
|
|
17611
|
-
"record.metadata.
|
|
17578
|
+
"record.metadata.status": "",
|
|
17612
17579
|
"record.metadata.title": "",
|
|
17580
|
+
"record.metadata.topics": "",
|
|
17613
17581
|
"record.metadata.type": "",
|
|
17614
17582
|
"record.metadata.uniqueId": "",
|
|
17615
17583
|
"record.metadata.updateFrequency": "",
|
|
@@ -17645,6 +17613,7 @@ var es = {
|
|
|
17645
17613
|
"search.filters.isSpatial": "",
|
|
17646
17614
|
"search.filters.isSpatial.no": "",
|
|
17647
17615
|
"search.filters.isSpatial.yes": "",
|
|
17616
|
+
"search.filters.keyword": "",
|
|
17648
17617
|
"search.filters.license": "",
|
|
17649
17618
|
"search.filters.license.cc-by": "",
|
|
17650
17619
|
"search.filters.license.cc-by-sa": "",
|
|
@@ -17709,20 +17678,21 @@ var fr = {
|
|
|
17709
17678
|
"chart.type.line": "ligne",
|
|
17710
17679
|
"chart.type.lineSmooth": "ligne lisse",
|
|
17711
17680
|
"chart.type.pie": "camembert",
|
|
17681
|
+
"dashboard.createRecord": "",
|
|
17712
17682
|
"dashboard.labels.mySpace": "Mon espace",
|
|
17713
17683
|
"dashboard.records.all": "Catalogue",
|
|
17714
17684
|
"dashboard.records.myDraft": "Mes brouillons",
|
|
17715
17685
|
"dashboard.records.myLibrary": "Ma bibliothèque",
|
|
17716
17686
|
"dashboard.records.myOrg": "Mon organisation",
|
|
17717
17687
|
"dashboard.records.myRecords": "Mes fiches publiées",
|
|
17718
|
-
"dashboard.records.noRecord": "Aucun jeu de données pour cette organisation",
|
|
17719
|
-
"dashboard.records.noUser": "Aucun utilisateur pour cette organisation",
|
|
17720
17688
|
"dashboard.records.publishedRecords": "{count, plural, =1{donnée publiée} other{données publiées}}",
|
|
17721
17689
|
"dashboard.records.search": "Résultats pour \"{searchText}\"",
|
|
17722
17690
|
"dashboard.records.userDetail": "Nom",
|
|
17723
17691
|
"dashboard.records.userEmail": "Email",
|
|
17724
17692
|
"dashboard.records.username": "Nom d'utilisateur",
|
|
17725
17693
|
"dashboard.records.users": "{count, plural, =1{utilisateur} other{utilisateurs}}",
|
|
17694
|
+
"dashboard.results.listMetadata": "",
|
|
17695
|
+
"dashboard.results.listResources": "",
|
|
17726
17696
|
"datafeeder.analysisProgressBar.illustration.fileFormatDetection": "Détection du \n format de fichier",
|
|
17727
17697
|
"datafeeder.analysisProgressBar.illustration.gatheringDatasetInformation": "Récupération des informations \n sur le jeu de données",
|
|
17728
17698
|
"datafeeder.analysisProgressBar.illustration.samplingData": "Sampling \n des données",
|
|
@@ -17914,16 +17884,15 @@ var fr = {
|
|
|
17914
17884
|
"record.metadata.author": "Auteur",
|
|
17915
17885
|
"record.metadata.catalog": "Catalogue",
|
|
17916
17886
|
"record.metadata.contact": "Contact",
|
|
17917
|
-
"record.metadata.createdOn": "Créé le",
|
|
17918
17887
|
"record.metadata.details": "Informations techniques",
|
|
17919
17888
|
"record.metadata.download": "Téléchargements",
|
|
17920
17889
|
"record.metadata.formats": "Formats",
|
|
17921
|
-
"record.metadata.isOpenData": "Donnée Ouverte",
|
|
17922
17890
|
"record.metadata.keywords": "Mots clés",
|
|
17923
17891
|
"record.metadata.lastUpdate": "Mis à jour le",
|
|
17924
17892
|
"record.metadata.links": "Liens",
|
|
17925
17893
|
"record.metadata.noUsage": "Aucune condition d'utilisation spécifiée pour ces données",
|
|
17926
17894
|
"record.metadata.origin": "À propos des données",
|
|
17895
|
+
"record.metadata.otherConstraints": "Limitations d'usage",
|
|
17927
17896
|
"record.metadata.owner": "Catalogue d'origine",
|
|
17928
17897
|
"record.metadata.preview": "Aperçu",
|
|
17929
17898
|
"record.metadata.publications": "données",
|
|
@@ -17947,14 +17916,15 @@ var fr = {
|
|
|
17947
17916
|
"record.metadata.quality.updateFrequency.success": "Fréquence de mise à jour est renseignée",
|
|
17948
17917
|
"record.metadata.related": "Voir aussi",
|
|
17949
17918
|
"record.metadata.sheet": "Fiche de métadonnées d'origine",
|
|
17950
|
-
"record.metadata.
|
|
17919
|
+
"record.metadata.status": "",
|
|
17951
17920
|
"record.metadata.title": "Titre",
|
|
17921
|
+
"record.metadata.topics": "Catégories",
|
|
17952
17922
|
"record.metadata.type": "Donnée géographique",
|
|
17953
17923
|
"record.metadata.uniqueId": "Identificateur de ressource unique",
|
|
17954
17924
|
"record.metadata.updateFrequency": "Fréquence de mise à jour des données",
|
|
17955
17925
|
"record.metadata.updateStatus": "Statut de mise à jour des données",
|
|
17956
|
-
"record.metadata.updatedOn": "
|
|
17957
|
-
"record.metadata.usage": "
|
|
17926
|
+
"record.metadata.updatedOn": "Dernière mise à jour des informations sur les données",
|
|
17927
|
+
"record.metadata.usage": "Licences et conditions d'utilisation",
|
|
17958
17928
|
"record.more.details": "Détails",
|
|
17959
17929
|
"record.tab.chart": "Graphique",
|
|
17960
17930
|
"record.tab.data": "Tableau",
|
|
@@ -17984,6 +17954,7 @@ var fr = {
|
|
|
17984
17954
|
"search.filters.isSpatial": "Données spatiales",
|
|
17985
17955
|
"search.filters.isSpatial.no": "non-géolocalisées",
|
|
17986
17956
|
"search.filters.isSpatial.yes": "géolocalisées",
|
|
17957
|
+
"search.filters.keyword": "Mot-clé",
|
|
17987
17958
|
"search.filters.license": "Licence",
|
|
17988
17959
|
"search.filters.license.cc-by": "cc-by",
|
|
17989
17960
|
"search.filters.license.cc-by-sa": "cc-by-sa",
|
|
@@ -18048,20 +18019,21 @@ var it = {
|
|
|
18048
18019
|
"chart.type.line": "grafico a linee",
|
|
18049
18020
|
"chart.type.lineSmooth": "grafico a linea liscia",
|
|
18050
18021
|
"chart.type.pie": "grafico a torta",
|
|
18022
|
+
"dashboard.createRecord": "",
|
|
18051
18023
|
"dashboard.labels.mySpace": "Il mio spazio",
|
|
18052
18024
|
"dashboard.records.all": "Catalogo",
|
|
18053
18025
|
"dashboard.records.myDraft": "Le mie bozze",
|
|
18054
18026
|
"dashboard.records.myLibrary": "La mia biblioteca",
|
|
18055
18027
|
"dashboard.records.myOrg": "La mia organizzazione",
|
|
18056
18028
|
"dashboard.records.myRecords": "I miei dati",
|
|
18057
|
-
"dashboard.records.noRecord": "Nessun dati per questa organizzazione",
|
|
18058
|
-
"dashboard.records.noUser": "Nessun utente per questa organizzazione",
|
|
18059
18029
|
"dashboard.records.publishedRecords": "dati pubblicati",
|
|
18060
18030
|
"dashboard.records.search": "Risultati per \"{searchText}\"",
|
|
18061
18031
|
"dashboard.records.userDetail": "Nome",
|
|
18062
18032
|
"dashboard.records.userEmail": "Email",
|
|
18063
18033
|
"dashboard.records.username": "Nome utente",
|
|
18064
18034
|
"dashboard.records.users": "utenti",
|
|
18035
|
+
"dashboard.results.listMetadata": "",
|
|
18036
|
+
"dashboard.results.listResources": "",
|
|
18065
18037
|
"datafeeder.analysisProgressBar.illustration.fileFormatDetection": "Rilevamento del formato dei file",
|
|
18066
18038
|
"datafeeder.analysisProgressBar.illustration.gatheringDatasetInformation": "Recupero delle informazioni dal dataset",
|
|
18067
18039
|
"datafeeder.analysisProgressBar.illustration.samplingData": "Campionatura dei dati",
|
|
@@ -18253,16 +18225,15 @@ var it = {
|
|
|
18253
18225
|
"record.metadata.author": "Autore",
|
|
18254
18226
|
"record.metadata.catalog": "Catalogo",
|
|
18255
18227
|
"record.metadata.contact": "Contatto",
|
|
18256
|
-
"record.metadata.createdOn": "Creato il",
|
|
18257
18228
|
"record.metadata.details": "Informazioni tecniche",
|
|
18258
18229
|
"record.metadata.download": "Download",
|
|
18259
18230
|
"record.metadata.formats": "Formati",
|
|
18260
|
-
"record.metadata.isOpenData": "Data aperta",
|
|
18261
18231
|
"record.metadata.keywords": "Parole chiave",
|
|
18262
18232
|
"record.metadata.lastUpdate": "Ultimo aggiornamento",
|
|
18263
18233
|
"record.metadata.links": "Collegamenti",
|
|
18264
18234
|
"record.metadata.noUsage": "Nessuna condizione d'uso specificata per questi dati",
|
|
18265
18235
|
"record.metadata.origin": "Informazioni sui dati",
|
|
18236
|
+
"record.metadata.otherConstraints": "Limitazioni di uso",
|
|
18266
18237
|
"record.metadata.owner": "Catalogo originale",
|
|
18267
18238
|
"record.metadata.preview": "Anteprima",
|
|
18268
18239
|
"record.metadata.publications": "pubblicazioni",
|
|
@@ -18286,14 +18257,15 @@ var it = {
|
|
|
18286
18257
|
"record.metadata.quality.updateFrequency.success": "La frequenza di aggiornamento è specificata",
|
|
18287
18258
|
"record.metadata.related": "Vedi anche",
|
|
18288
18259
|
"record.metadata.sheet": "Origine del metadata",
|
|
18289
|
-
"record.metadata.
|
|
18260
|
+
"record.metadata.status": "",
|
|
18290
18261
|
"record.metadata.title": "Titolo",
|
|
18262
|
+
"record.metadata.topics": "Categorie",
|
|
18291
18263
|
"record.metadata.type": "Dati geografici",
|
|
18292
18264
|
"record.metadata.uniqueId": "Identificatore unico di risorsa",
|
|
18293
18265
|
"record.metadata.updateFrequency": "Frequenza di aggiornamento dei dati",
|
|
18294
18266
|
"record.metadata.updateStatus": "Stato di aggiornamento dei dati",
|
|
18295
|
-
"record.metadata.updatedOn": "Ultimo aggiornamento
|
|
18296
|
-
"record.metadata.usage": "
|
|
18267
|
+
"record.metadata.updatedOn": "Ultimo aggiornamento delle informazioni sui dati",
|
|
18268
|
+
"record.metadata.usage": "Licenze e limiti di utilizzo",
|
|
18297
18269
|
"record.more.details": "Dettagli",
|
|
18298
18270
|
"record.tab.chart": "Grafico",
|
|
18299
18271
|
"record.tab.data": "Tabella",
|
|
@@ -18323,6 +18295,7 @@ var it = {
|
|
|
18323
18295
|
"search.filters.isSpatial": "Dati spaziali",
|
|
18324
18296
|
"search.filters.isSpatial.no": "Non geolocalizzati",
|
|
18325
18297
|
"search.filters.isSpatial.yes": "Geolocalizzati",
|
|
18298
|
+
"search.filters.keyword": "Parola chiave",
|
|
18326
18299
|
"search.filters.license": "Licenza",
|
|
18327
18300
|
"search.filters.license.cc-by": "cc-by",
|
|
18328
18301
|
"search.filters.license.cc-by-sa": "cc-by-sa",
|
|
@@ -18387,20 +18360,21 @@ var nl = {
|
|
|
18387
18360
|
"chart.type.line": "lijndiagram",
|
|
18388
18361
|
"chart.type.lineSmooth": "glad lijndiagram",
|
|
18389
18362
|
"chart.type.pie": "cirkeldiagram",
|
|
18363
|
+
"dashboard.createRecord": "",
|
|
18390
18364
|
"dashboard.labels.mySpace": "Mijn ruimte",
|
|
18391
18365
|
"dashboard.records.all": "Catalogus",
|
|
18392
18366
|
"dashboard.records.myDraft": "Mijn concepten",
|
|
18393
18367
|
"dashboard.records.myLibrary": "Mijn bibliotheek",
|
|
18394
18368
|
"dashboard.records.myOrg": "Organisatie",
|
|
18395
18369
|
"dashboard.records.myRecords": "Mijn Records",
|
|
18396
|
-
"dashboard.records.noRecord": "",
|
|
18397
|
-
"dashboard.records.noUser": "",
|
|
18398
18370
|
"dashboard.records.publishedRecords": "",
|
|
18399
18371
|
"dashboard.records.search": "Zoeken naar \"{searchText}\"",
|
|
18400
18372
|
"dashboard.records.userDetail": "",
|
|
18401
18373
|
"dashboard.records.userEmail": "",
|
|
18402
18374
|
"dashboard.records.username": "",
|
|
18403
18375
|
"dashboard.records.users": "",
|
|
18376
|
+
"dashboard.results.listMetadata": "",
|
|
18377
|
+
"dashboard.results.listResources": "",
|
|
18404
18378
|
"datafeeder.analysisProgressBar.illustration.fileFormatDetection": "",
|
|
18405
18379
|
"datafeeder.analysisProgressBar.illustration.gatheringDatasetInformation": "",
|
|
18406
18380
|
"datafeeder.analysisProgressBar.illustration.samplingData": "",
|
|
@@ -18592,16 +18566,15 @@ var nl = {
|
|
|
18592
18566
|
"record.metadata.author": "",
|
|
18593
18567
|
"record.metadata.catalog": "",
|
|
18594
18568
|
"record.metadata.contact": "",
|
|
18595
|
-
"record.metadata.createdOn": "",
|
|
18596
18569
|
"record.metadata.details": "",
|
|
18597
18570
|
"record.metadata.download": "",
|
|
18598
18571
|
"record.metadata.formats": "",
|
|
18599
|
-
"record.metadata.isOpenData": "",
|
|
18600
18572
|
"record.metadata.keywords": "",
|
|
18601
18573
|
"record.metadata.lastUpdate": "",
|
|
18602
18574
|
"record.metadata.links": "",
|
|
18603
18575
|
"record.metadata.noUsage": "",
|
|
18604
18576
|
"record.metadata.origin": "",
|
|
18577
|
+
"record.metadata.otherConstraints": "",
|
|
18605
18578
|
"record.metadata.owner": "",
|
|
18606
18579
|
"record.metadata.preview": "",
|
|
18607
18580
|
"record.metadata.publications": "",
|
|
@@ -18625,8 +18598,9 @@ var nl = {
|
|
|
18625
18598
|
"record.metadata.quality.updateFrequency.success": "",
|
|
18626
18599
|
"record.metadata.related": "",
|
|
18627
18600
|
"record.metadata.sheet": "",
|
|
18628
|
-
"record.metadata.
|
|
18601
|
+
"record.metadata.status": "",
|
|
18629
18602
|
"record.metadata.title": "",
|
|
18603
|
+
"record.metadata.topics": "",
|
|
18630
18604
|
"record.metadata.type": "",
|
|
18631
18605
|
"record.metadata.uniqueId": "",
|
|
18632
18606
|
"record.metadata.updateFrequency": "",
|
|
@@ -18662,6 +18636,7 @@ var nl = {
|
|
|
18662
18636
|
"search.filters.isSpatial": "",
|
|
18663
18637
|
"search.filters.isSpatial.no": "",
|
|
18664
18638
|
"search.filters.isSpatial.yes": "",
|
|
18639
|
+
"search.filters.keyword": "",
|
|
18665
18640
|
"search.filters.license": "",
|
|
18666
18641
|
"search.filters.license.cc-by": "",
|
|
18667
18642
|
"search.filters.license.cc-by-sa": "",
|
|
@@ -18726,20 +18701,21 @@ var pt = {
|
|
|
18726
18701
|
"chart.type.line": "gráfico de linha",
|
|
18727
18702
|
"chart.type.lineSmooth": "gráfico de linha suave",
|
|
18728
18703
|
"chart.type.pie": "gráfico de pizza",
|
|
18704
|
+
"dashboard.createRecord": "",
|
|
18729
18705
|
"dashboard.labels.mySpace": "Meu espaço",
|
|
18730
18706
|
"dashboard.records.all": "Catálogo",
|
|
18731
18707
|
"dashboard.records.myDraft": "Meus rascunhos",
|
|
18732
18708
|
"dashboard.records.myLibrary": "Minha biblioteca",
|
|
18733
18709
|
"dashboard.records.myOrg": "Organização",
|
|
18734
18710
|
"dashboard.records.myRecords": "Meus Registros",
|
|
18735
|
-
"dashboard.records.noRecord": "",
|
|
18736
|
-
"dashboard.records.noUser": "",
|
|
18737
18711
|
"dashboard.records.publishedRecords": "",
|
|
18738
18712
|
"dashboard.records.search": "Buscar por \"{searchText}\"",
|
|
18739
18713
|
"dashboard.records.userDetail": "",
|
|
18740
18714
|
"dashboard.records.userEmail": "",
|
|
18741
18715
|
"dashboard.records.username": "",
|
|
18742
18716
|
"dashboard.records.users": "",
|
|
18717
|
+
"dashboard.results.listMetadata": "",
|
|
18718
|
+
"dashboard.results.listResources": "",
|
|
18743
18719
|
"datafeeder.analysisProgressBar.illustration.fileFormatDetection": "",
|
|
18744
18720
|
"datafeeder.analysisProgressBar.illustration.gatheringDatasetInformation": "",
|
|
18745
18721
|
"datafeeder.analysisProgressBar.illustration.samplingData": "",
|
|
@@ -18931,16 +18907,15 @@ var pt = {
|
|
|
18931
18907
|
"record.metadata.author": "",
|
|
18932
18908
|
"record.metadata.catalog": "",
|
|
18933
18909
|
"record.metadata.contact": "",
|
|
18934
|
-
"record.metadata.createdOn": "",
|
|
18935
18910
|
"record.metadata.details": "",
|
|
18936
18911
|
"record.metadata.download": "",
|
|
18937
18912
|
"record.metadata.formats": "",
|
|
18938
|
-
"record.metadata.isOpenData": "",
|
|
18939
18913
|
"record.metadata.keywords": "",
|
|
18940
18914
|
"record.metadata.lastUpdate": "",
|
|
18941
18915
|
"record.metadata.links": "",
|
|
18942
18916
|
"record.metadata.noUsage": "",
|
|
18943
18917
|
"record.metadata.origin": "",
|
|
18918
|
+
"record.metadata.otherConstraints": "",
|
|
18944
18919
|
"record.metadata.owner": "",
|
|
18945
18920
|
"record.metadata.preview": "",
|
|
18946
18921
|
"record.metadata.publications": "",
|
|
@@ -18964,8 +18939,9 @@ var pt = {
|
|
|
18964
18939
|
"record.metadata.quality.updateFrequency.success": "",
|
|
18965
18940
|
"record.metadata.related": "",
|
|
18966
18941
|
"record.metadata.sheet": "",
|
|
18967
|
-
"record.metadata.
|
|
18942
|
+
"record.metadata.status": "",
|
|
18968
18943
|
"record.metadata.title": "",
|
|
18944
|
+
"record.metadata.topics": "",
|
|
18969
18945
|
"record.metadata.type": "",
|
|
18970
18946
|
"record.metadata.uniqueId": "",
|
|
18971
18947
|
"record.metadata.updateFrequency": "",
|
|
@@ -19001,6 +18977,7 @@ var pt = {
|
|
|
19001
18977
|
"search.filters.isSpatial": "",
|
|
19002
18978
|
"search.filters.isSpatial.no": "",
|
|
19003
18979
|
"search.filters.isSpatial.yes": "",
|
|
18980
|
+
"search.filters.keyword": "",
|
|
19004
18981
|
"search.filters.license": "",
|
|
19005
18982
|
"search.filters.license.cc-by": "",
|
|
19006
18983
|
"search.filters.license.cc-by-sa": "",
|
|
@@ -19109,8 +19086,8 @@ class Gn4FieldMapper {
|
|
|
19109
19086
|
},
|
|
19110
19087
|
cl_topic: (output, source) => ({
|
|
19111
19088
|
...output,
|
|
19112
|
-
|
|
19113
|
-
...(output.
|
|
19089
|
+
topics: [
|
|
19090
|
+
...(output.topics || []),
|
|
19114
19091
|
...getAsArray(selectField(source, 'cl_topic')).map((topic) => selectTranslatedValue(topic, this.lang3)),
|
|
19115
19092
|
],
|
|
19116
19093
|
}),
|
|
@@ -19165,31 +19142,22 @@ class Gn4FieldMapper {
|
|
|
19165
19142
|
catalogUuid: selectFallback(selectField(source, 'sourceCatalogue'), 'no title'),
|
|
19166
19143
|
}, output);
|
|
19167
19144
|
},
|
|
19168
|
-
|
|
19145
|
+
allKeywords: (output, source) => ({
|
|
19169
19146
|
...output,
|
|
19170
|
-
keywords:
|
|
19147
|
+
keywords: mapKeywords(selectField(source, 'allKeywords'), this.lang3),
|
|
19171
19148
|
}),
|
|
19172
19149
|
inspireTheme: (output, source) => ({
|
|
19173
19150
|
...output,
|
|
19174
|
-
|
|
19175
|
-
...(output.
|
|
19151
|
+
topics: [
|
|
19152
|
+
...(output.topics || []),
|
|
19176
19153
|
...getAsArray(selectField(source, 'inspireTheme_syn')),
|
|
19177
19154
|
],
|
|
19178
19155
|
}),
|
|
19179
|
-
MD_ConstraintsUseLimitationObject: (output, source) => this.constraintField('
|
|
19180
|
-
MD_LegalConstraintsUseLimitationObject: (output, source) => this.constraintField('
|
|
19181
|
-
MD_LegalConstraintsOtherConstraintsObject: (output, source) => this.constraintField('
|
|
19182
|
-
MD_SecurityConstraintsUseLimitationObject: (output, source) => this.constraintField('
|
|
19183
|
-
licenseObject: (output, source) => (
|
|
19184
|
-
...output,
|
|
19185
|
-
licenses: getAsArray(selectField(source, 'licenseObject')).map((license) => {
|
|
19186
|
-
const link = getAsUrl(selectField(license, 'link'));
|
|
19187
|
-
return {
|
|
19188
|
-
text: selectTranslatedValue(license, this.lang3),
|
|
19189
|
-
...(link ? { link } : {}),
|
|
19190
|
-
};
|
|
19191
|
-
}),
|
|
19192
|
-
}),
|
|
19156
|
+
MD_ConstraintsUseLimitationObject: (output, source) => this.constraintField('other', output, getAsArray(selectField(source, 'MD_ConstraintsUseLimitationObject'))),
|
|
19157
|
+
MD_LegalConstraintsUseLimitationObject: (output, source) => this.constraintField('legal', output, getAsArray(selectField(source, 'MD_LegalConstraintsUseLimitationObject'))),
|
|
19158
|
+
MD_LegalConstraintsOtherConstraintsObject: (output, source) => this.constraintField('legal', output, getAsArray(selectField(source, 'MD_LegalConstraintsOtherConstraintsObject'))),
|
|
19159
|
+
MD_SecurityConstraintsUseLimitationObject: (output, source) => this.constraintField('security', output, getAsArray(selectField(source, 'MD_SecurityConstraintsUseLimitationObject'))),
|
|
19160
|
+
licenseObject: (output, source) => this.constraintField('license', output, getAsArray(selectField(source, 'licenseObject'))),
|
|
19193
19161
|
lineageObject: (output, source) => ({
|
|
19194
19162
|
...output,
|
|
19195
19163
|
lineage: selectTranslatedField(source, 'lineageObject', this.lang3),
|
|
@@ -19251,31 +19219,42 @@ class Gn4FieldMapper {
|
|
|
19251
19219
|
},
|
|
19252
19220
|
};
|
|
19253
19221
|
this.genericField = (output) => output;
|
|
19254
|
-
this.constraintField = (
|
|
19255
|
-
|
|
19256
|
-
|
|
19257
|
-
|
|
19258
|
-
|
|
19259
|
-
|
|
19260
|
-
|
|
19261
|
-
|
|
19262
|
-
|
|
19263
|
-
|
|
19264
|
-
|
|
19265
|
-
|
|
19266
|
-
|
|
19267
|
-
|
|
19268
|
-
|
|
19269
|
-
|
|
19270
|
-
|
|
19271
|
-
|
|
19272
|
-
|
|
19273
|
-
|
|
19274
|
-
|
|
19275
|
-
|
|
19276
|
-
|
|
19277
|
-
}
|
|
19278
|
-
|
|
19222
|
+
this.constraintField = (type, output, constraintArray) => {
|
|
19223
|
+
let outputField;
|
|
19224
|
+
switch (type) {
|
|
19225
|
+
case 'license':
|
|
19226
|
+
outputField = 'licenses';
|
|
19227
|
+
break;
|
|
19228
|
+
case 'legal':
|
|
19229
|
+
outputField = 'legalConstraints';
|
|
19230
|
+
break;
|
|
19231
|
+
case 'security':
|
|
19232
|
+
outputField = 'securityConstraints';
|
|
19233
|
+
break;
|
|
19234
|
+
case 'other':
|
|
19235
|
+
outputField = 'otherConstraints';
|
|
19236
|
+
break;
|
|
19237
|
+
}
|
|
19238
|
+
const outputArray = outputField in output ? output[outputField] : [];
|
|
19239
|
+
outputArray.push(...constraintArray.map((item) => {
|
|
19240
|
+
const text = selectTranslatedValue(item, this.lang3);
|
|
19241
|
+
const url = getAsUrl(selectField(item, 'link'));
|
|
19242
|
+
return {
|
|
19243
|
+
text,
|
|
19244
|
+
...(url ? { url } : {}),
|
|
19245
|
+
};
|
|
19246
|
+
}));
|
|
19247
|
+
const result = {
|
|
19248
|
+
...output,
|
|
19249
|
+
[outputField]: outputArray,
|
|
19250
|
+
};
|
|
19251
|
+
// avoid legal constraints being duplicates of licenses
|
|
19252
|
+
if ('legalConstraints' in result &&
|
|
19253
|
+
(type === 'legal' || type === 'license')) {
|
|
19254
|
+
result.legalConstraints = result.legalConstraints.filter((constraint) => !output.licenses?.some((license) => license.text === constraint.text));
|
|
19255
|
+
}
|
|
19256
|
+
return result;
|
|
19257
|
+
};
|
|
19279
19258
|
this.mapLink = (sourceLink) => {
|
|
19280
19259
|
const url = getAsUrl(selectFallback(selectTranslatedField(sourceLink, 'urlObject', this.lang3), selectField(sourceLink, 'url')));
|
|
19281
19260
|
const name = selectFallback(selectTranslatedField(sourceLink, 'nameObject', this.lang3), selectField(sourceLink, 'name'));
|
|
@@ -19323,17 +19302,6 @@ class Gn4FieldMapper {
|
|
|
19323
19302
|
extras: { ...(output.extras || {}), ...value },
|
|
19324
19303
|
});
|
|
19325
19304
|
}
|
|
19326
|
-
getConstraintsType(indexField) {
|
|
19327
|
-
switch (indexField) {
|
|
19328
|
-
case 'MD_LegalConstraintsUseLimitationObject':
|
|
19329
|
-
return 'legal';
|
|
19330
|
-
case 'MD_SecurityConstraintsUseLimitationObject':
|
|
19331
|
-
return 'security';
|
|
19332
|
-
case 'MD_ConstraintsUseLimitationObject':
|
|
19333
|
-
default:
|
|
19334
|
-
return 'other';
|
|
19335
|
-
}
|
|
19336
|
-
}
|
|
19337
19305
|
getMappingFn(fieldName) {
|
|
19338
19306
|
return fieldName in this.fields ? this.fields[fieldName] : this.genericField;
|
|
19339
19307
|
}
|
|
@@ -19395,12 +19363,13 @@ class Gn4MetadataMapper extends MetadataBaseMapper {
|
|
|
19395
19363
|
recordUpdated: null,
|
|
19396
19364
|
ownerOrganization: null,
|
|
19397
19365
|
licenses: [],
|
|
19366
|
+
legalConstraints: [],
|
|
19367
|
+
securityConstraints: [],
|
|
19368
|
+
otherConstraints: [],
|
|
19398
19369
|
contacts: [],
|
|
19399
19370
|
contactsForResource: [],
|
|
19400
|
-
accessConstraints: [],
|
|
19401
19371
|
keywords: [],
|
|
19402
|
-
|
|
19403
|
-
useLimitations: [],
|
|
19372
|
+
topics: [],
|
|
19404
19373
|
spatialExtents: [],
|
|
19405
19374
|
temporalExtents: [],
|
|
19406
19375
|
overviews: [],
|
|
@@ -20168,11 +20137,18 @@ class OrganizationsFromMetadataService {
|
|
|
20168
20137
|
if (!allContactOrgs.length)
|
|
20169
20138
|
return of(record);
|
|
20170
20139
|
const ownerOrganization = allContactOrgs[0];
|
|
20171
|
-
|
|
20140
|
+
// read the owner group as well to have a fallback logo
|
|
20141
|
+
const groupId = selectField(source, 'groupOwner');
|
|
20142
|
+
const group$ = this.groups$.pipe(map$1((groups) => groups.find((group) => {
|
|
20143
|
+
return group.id === Number(groupId);
|
|
20144
|
+
})));
|
|
20145
|
+
return this.organisations$.pipe(takeLast(1), withLatestFrom(group$), map$1(([organisations, group]) => {
|
|
20172
20146
|
const recordOrganisation = organisations.filter((org) => org.name === ownerOrganization.name)[0];
|
|
20147
|
+
const logoUrl = group?.logo && getAsUrl(`${IMAGE_URL$1}${group.logo}`);
|
|
20173
20148
|
return {
|
|
20174
20149
|
...record,
|
|
20175
20150
|
ownerOrganization: {
|
|
20151
|
+
logoUrl,
|
|
20176
20152
|
...ownerOrganization,
|
|
20177
20153
|
...recordOrganisation,
|
|
20178
20154
|
},
|
|
@@ -20483,12 +20459,21 @@ class Gn4PlatformMapper {
|
|
|
20483
20459
|
const { enabled, emailAddresses, organisation, kind, lastLoginDate, accountNonExpired, accountNonLocked, id, credentialsNonExpired, ...user } = apiUser;
|
|
20484
20460
|
return { ...apiUser, id: id.toString() };
|
|
20485
20461
|
}
|
|
20486
|
-
thesaurusFromApi(thesaurus) {
|
|
20462
|
+
thesaurusFromApi(thesaurus, lang3) {
|
|
20487
20463
|
return thesaurus.map((keyword) => {
|
|
20488
|
-
|
|
20464
|
+
let key = keyword.uri;
|
|
20465
|
+
// sometines GN can prefix an URI with an "all thesaurus" URI; only keep the last one
|
|
20466
|
+
if (key.indexOf('@@@') > -1) {
|
|
20467
|
+
key = key.split('@@@')[1];
|
|
20468
|
+
}
|
|
20469
|
+
const label = lang3 && lang3 in keyword.values ? keyword.values[lang3] : keyword.value;
|
|
20470
|
+
const description = lang3 && lang3 in keyword.definitions
|
|
20471
|
+
? keyword.definitions[lang3]
|
|
20472
|
+
: keyword.definition;
|
|
20489
20473
|
return {
|
|
20490
|
-
key
|
|
20491
|
-
label
|
|
20474
|
+
key,
|
|
20475
|
+
label,
|
|
20476
|
+
description,
|
|
20492
20477
|
};
|
|
20493
20478
|
});
|
|
20494
20479
|
}
|
|
@@ -20501,13 +20486,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
|
|
|
20501
20486
|
|
|
20502
20487
|
const minApiVersion = '4.2.2';
|
|
20503
20488
|
class Gn4PlatformService {
|
|
20504
|
-
constructor(siteApiService, meApi, usersApi, mapper, toolsApiService, registriesApiService) {
|
|
20489
|
+
constructor(siteApiService, meApi, usersApi, mapper, toolsApiService, registriesApiService, langService) {
|
|
20505
20490
|
this.siteApiService = siteApiService;
|
|
20506
20491
|
this.meApi = meApi;
|
|
20507
20492
|
this.usersApi = usersApi;
|
|
20508
20493
|
this.mapper = mapper;
|
|
20509
20494
|
this.toolsApiService = toolsApiService;
|
|
20510
20495
|
this.registriesApiService = registriesApiService;
|
|
20496
|
+
this.langService = langService;
|
|
20511
20497
|
this.type = 'GeoNetwork';
|
|
20512
20498
|
this.keyTranslations$ = this.toolsApiService
|
|
20513
20499
|
.getTranslationsPackage1('gnui')
|
|
@@ -20521,6 +20507,11 @@ class Gn4PlatformService {
|
|
|
20521
20507
|
throw new Error(`Gn4 API version is not compatible.\nMinimum: ${minApiVersion}\nYour version: ${version}`);
|
|
20522
20508
|
}
|
|
20523
20509
|
}), shareReplay(1));
|
|
20510
|
+
/**
|
|
20511
|
+
* A map of already loaded thesauri (groups of keywords); the key is a URI
|
|
20512
|
+
* @private
|
|
20513
|
+
*/
|
|
20514
|
+
this.thesauri = {};
|
|
20524
20515
|
this.me$ = this.meApi.getMe().pipe(switchMap((apiUser) => this.mapper.userFromMeApi(apiUser)), shareReplay({ bufferSize: 1, refCount: true }));
|
|
20525
20516
|
this.isAnonymous$ = this.me$.pipe(map$1((user) => !user || !('id' in user)));
|
|
20526
20517
|
this.users$ = this.usersApi.getUsers().pipe(map$1((users) => users.map((user) => this.mapper.userFromApi(user))), shareReplay());
|
|
@@ -20547,19 +20538,36 @@ class Gn4PlatformService {
|
|
|
20547
20538
|
return this.users$;
|
|
20548
20539
|
}
|
|
20549
20540
|
translateKey(key) {
|
|
20541
|
+
// if the key is a URI, use the registries API to look for the translation
|
|
20542
|
+
if (key.match(/^https?:\/\//)) {
|
|
20543
|
+
// the thesaurus URI is inferred by removing a part of the keyword URI
|
|
20544
|
+
// this is not exact science but it's OK, we'll still end up loading a bunch of keywords at once anyway
|
|
20545
|
+
const thesaurusUri = key.replace(/\/([^/]+)$/, '/');
|
|
20546
|
+
return this.getThesaurusByUri(thesaurusUri).pipe(map$1((thesaurus) => {
|
|
20547
|
+
for (const item of thesaurus) {
|
|
20548
|
+
if (item.key === key)
|
|
20549
|
+
return item.label;
|
|
20550
|
+
}
|
|
20551
|
+
return key;
|
|
20552
|
+
}));
|
|
20553
|
+
}
|
|
20550
20554
|
return this.keyTranslations$.pipe(map$1((translations) => translations[key]));
|
|
20551
20555
|
}
|
|
20552
|
-
|
|
20553
|
-
|
|
20554
|
-
.
|
|
20555
|
-
|
|
20556
|
+
getThesaurusByUri(uri) {
|
|
20557
|
+
if (this.thesauri[uri]) {
|
|
20558
|
+
return this.thesauri[uri];
|
|
20559
|
+
}
|
|
20560
|
+
this.thesauri[uri] = this.registriesApiService
|
|
20561
|
+
.searchKeywords(null, this.langService.iso3, 1000, 0, null, null, null, `${uri}*`)
|
|
20562
|
+
.pipe(map$1((thesaurus) => this.mapper.thesaurusFromApi(thesaurus, this.langService.iso3)), shareReplay(1));
|
|
20563
|
+
return this.thesauri[uri];
|
|
20556
20564
|
}
|
|
20557
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: Gn4PlatformService, deps: [{ token: SiteApiService }, { token: MeApiService }, { token: UsersApiService }, { token: Gn4PlatformMapper }, { token: ToolsApiService }, { token: RegistriesApiService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
20565
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: Gn4PlatformService, deps: [{ token: SiteApiService }, { token: MeApiService }, { token: UsersApiService }, { token: Gn4PlatformMapper }, { token: ToolsApiService }, { token: RegistriesApiService }, { token: LangService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
20558
20566
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: Gn4PlatformService }); }
|
|
20559
20567
|
}
|
|
20560
20568
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: Gn4PlatformService, decorators: [{
|
|
20561
20569
|
type: Injectable
|
|
20562
|
-
}], ctorParameters: function () { return [{ type: SiteApiService }, { type: MeApiService }, { type: UsersApiService }, { type: Gn4PlatformMapper }, { type: ToolsApiService }, { type: RegistriesApiService }]; } });
|
|
20570
|
+
}], ctorParameters: function () { return [{ type: SiteApiService }, { type: MeApiService }, { type: UsersApiService }, { type: Gn4PlatformMapper }, { type: ToolsApiService }, { type: RegistriesApiService }, { type: LangService }]; } });
|
|
20563
20571
|
|
|
20564
20572
|
function provideGn4() {
|
|
20565
20573
|
return [
|
|
@@ -22637,6 +22645,9 @@ class MapContextService {
|
|
|
22637
22645
|
if (mapConfig) {
|
|
22638
22646
|
mapContext = this.mergeMapConfigWithContext(mapContext, mapConfig);
|
|
22639
22647
|
}
|
|
22648
|
+
else {
|
|
22649
|
+
mapContext.layers = this.addDefaultBaselayerContext(mapContext.layers);
|
|
22650
|
+
}
|
|
22640
22651
|
if (!mapContext.view?.extent &&
|
|
22641
22652
|
(!mapContext.view?.center || !mapContext.view?.zoom)) {
|
|
22642
22653
|
mapContext.view = this.getFallbackView(mapConfig);
|
|
@@ -22747,6 +22758,11 @@ class MapContextService {
|
|
|
22747
22758
|
}
|
|
22748
22759
|
return view;
|
|
22749
22760
|
}
|
|
22761
|
+
addDefaultBaselayerContext(layers) {
|
|
22762
|
+
return layers.includes(DEFAULT_BASELAYER_CONTEXT)
|
|
22763
|
+
? layers
|
|
22764
|
+
: [DEFAULT_BASELAYER_CONTEXT, ...layers];
|
|
22765
|
+
}
|
|
22750
22766
|
mergeMapConfigWithContext(mapContext, mapConfig) {
|
|
22751
22767
|
return {
|
|
22752
22768
|
...mapContext,
|
|
@@ -23293,11 +23309,11 @@ class ThumbnailComponent {
|
|
|
23293
23309
|
}
|
|
23294
23310
|
}
|
|
23295
23311
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: ThumbnailComponent, deps: [{ token: THUMBNAIL_PLACEHOLDER, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
23296
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: ThumbnailComponent, selector: "gn-ui-thumbnail", inputs: { thumbnailUrl: "thumbnailUrl", fit: "fit" }, outputs: { placeholderShown: "placeholderShown" }, viewQueries: [{ propertyName: "imgElement", first: true, predicate: ["imageElement"], descendants: true }, { propertyName: "containerElement", first: true, predicate: ["containerElement"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\n #containerElement\n class=\"h-full w-full relative shrink-0 overflow-hidden flex items-center\"\n [ngClass]=\"isPlaceholder ? 'bg-gray-100' : 'bg-white'\"\n [attr.data-cy-is-placeholder]=\"isPlaceholder.toString()\"\n>\n <img\n #imageElement\n class=\"relative w-full object-center\"\n [ngClass]=\"imgFit === 'contain' ? 'h-4/5' : 'h-full'\"\n [ngStyle]=\"{ objectFit: imgFit }\"\n alt=\"thumbnail\"\n loading=\"lazy\"\n (load)=\"setObjectFit()\"\n [src]=\"imgUrl\"\n (error)=\"useFallback()\"\n />\n</div>\n", dependencies: [{ kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
23312
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: ThumbnailComponent, selector: "gn-ui-thumbnail", inputs: { thumbnailUrl: "thumbnailUrl", fit: "fit" }, outputs: { placeholderShown: "placeholderShown" }, viewQueries: [{ propertyName: "imgElement", first: true, predicate: ["imageElement"], descendants: true }, { propertyName: "containerElement", first: true, predicate: ["containerElement"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\n #containerElement\n class=\"h-full w-full relative shrink-0 overflow-hidden flex items-center justify-center\"\n [ngClass]=\"isPlaceholder ? 'bg-gray-100' : 'bg-white'\"\n [attr.data-cy-is-placeholder]=\"isPlaceholder.toString()\"\n>\n <img\n #imageElement\n class=\"relative w-full object-center\"\n [ngClass]=\"imgFit === 'contain' ? 'h-4/5 w-4/5' : 'h-full'\"\n [ngStyle]=\"{ objectFit: imgFit }\"\n alt=\"thumbnail\"\n loading=\"lazy\"\n (load)=\"setObjectFit()\"\n [src]=\"imgUrl\"\n (error)=\"useFallback()\"\n />\n</div>\n", dependencies: [{ kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
23297
23313
|
}
|
|
23298
23314
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: ThumbnailComponent, decorators: [{
|
|
23299
23315
|
type: Component,
|
|
23300
|
-
args: [{ selector: 'gn-ui-thumbnail', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n #containerElement\n class=\"h-full w-full relative shrink-0 overflow-hidden flex items-center\"\n [ngClass]=\"isPlaceholder ? 'bg-gray-100' : 'bg-white'\"\n [attr.data-cy-is-placeholder]=\"isPlaceholder.toString()\"\n>\n <img\n #imageElement\n class=\"relative w-full object-center\"\n [ngClass]=\"imgFit === 'contain' ? 'h-4/5' : 'h-full'\"\n [ngStyle]=\"{ objectFit: imgFit }\"\n alt=\"thumbnail\"\n loading=\"lazy\"\n (load)=\"setObjectFit()\"\n [src]=\"imgUrl\"\n (error)=\"useFallback()\"\n />\n</div>\n" }]
|
|
23316
|
+
args: [{ selector: 'gn-ui-thumbnail', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n #containerElement\n class=\"h-full w-full relative shrink-0 overflow-hidden flex items-center justify-center\"\n [ngClass]=\"isPlaceholder ? 'bg-gray-100' : 'bg-white'\"\n [attr.data-cy-is-placeholder]=\"isPlaceholder.toString()\"\n>\n <img\n #imageElement\n class=\"relative w-full object-center\"\n [ngClass]=\"imgFit === 'contain' ? 'h-4/5 w-4/5' : 'h-full'\"\n [ngStyle]=\"{ objectFit: imgFit }\"\n alt=\"thumbnail\"\n loading=\"lazy\"\n (load)=\"setObjectFit()\"\n [src]=\"imgUrl\"\n (error)=\"useFallback()\"\n />\n</div>\n" }]
|
|
23301
23317
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
23302
23318
|
type: Optional
|
|
23303
23319
|
}, {
|
|
@@ -23425,8 +23441,7 @@ class MetadataQualityComponent {
|
|
|
23425
23441
|
: this.calculatedQualityScore;
|
|
23426
23442
|
}
|
|
23427
23443
|
get calculatedQualityScore() {
|
|
23428
|
-
return Math.round((this.items.filter(({ value }) => value
|
|
23429
|
-
this.items.length);
|
|
23444
|
+
return Math.round((this.items.filter(({ value }) => value).length * 100) / this.items.length);
|
|
23430
23445
|
}
|
|
23431
23446
|
showMenu() {
|
|
23432
23447
|
this.isMenuShown = true;
|
|
@@ -23444,7 +23459,7 @@ class MetadataQualityComponent {
|
|
|
23444
23459
|
this.items = [];
|
|
23445
23460
|
this.add('title', !!this.metadata?.title);
|
|
23446
23461
|
this.add('description', !!this.metadata?.abstract);
|
|
23447
|
-
this.add('topic', this.metadata?.
|
|
23462
|
+
this.add('topic', this.metadata?.topics?.length > 0);
|
|
23448
23463
|
this.add('keywords', this.metadata?.keywords?.length > 0);
|
|
23449
23464
|
this.add('legalConstraints', this.metadata?.legalConstraints?.length > 0);
|
|
23450
23465
|
this.add('organisation', !!contact?.organization);
|
|
@@ -23892,6 +23907,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
|
|
|
23892
23907
|
type: Input
|
|
23893
23908
|
}] } });
|
|
23894
23909
|
|
|
23910
|
+
class MarkdownParserComponent {
|
|
23911
|
+
get parsedMarkdown() {
|
|
23912
|
+
return marked.parse(this.textContent);
|
|
23913
|
+
}
|
|
23914
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MarkdownParserComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
23915
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: MarkdownParserComponent, isStandalone: true, selector: "gn-ui-markdown-parser", inputs: { textContent: "textContent" }, ngImport: i0, template: "<div class=\"markdown-body\" [innerHTML]=\"parsedMarkdown\"></div>\n", styles: [":host ::ng-deep .markdown-body{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;margin:0px 0px 1.5rem;line-height:1.5;word-wrap:break-word}: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 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 }); }
|
|
23916
|
+
}
|
|
23917
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MarkdownParserComponent, decorators: [{
|
|
23918
|
+
type: Component,
|
|
23919
|
+
args: [{ selector: 'gn-ui-markdown-parser', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<div class=\"markdown-body\" [innerHTML]=\"parsedMarkdown\"></div>\n", styles: [":host ::ng-deep .markdown-body{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;margin:0px 0px 1.5rem;line-height:1.5;word-wrap:break-word}: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 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"] }]
|
|
23920
|
+
}], propDecorators: { textContent: [{
|
|
23921
|
+
type: Input
|
|
23922
|
+
}] } });
|
|
23923
|
+
|
|
23895
23924
|
class ContentGhostComponent {
|
|
23896
23925
|
constructor() {
|
|
23897
23926
|
this.ghostClass = '';
|
|
@@ -24046,36 +24075,38 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
|
|
|
24046
24075
|
args: ['container']
|
|
24047
24076
|
}] } });
|
|
24048
24077
|
|
|
24049
|
-
class MarkdownParserComponent {
|
|
24050
|
-
get parsedMarkdown() {
|
|
24051
|
-
return marked.parse(this.textContent);
|
|
24052
|
-
}
|
|
24053
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MarkdownParserComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
24054
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: MarkdownParserComponent, selector: "gn-ui-markdown-parser", inputs: { textContent: "textContent" }, ngImport: i0, template: "<div class=\"markdown-body\" [innerHTML]=\"parsedMarkdown\"></div>\n", styles: [":host ::ng-deep .markdown-body{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;margin:0px 0px 1.5rem;line-height:1.5;word-wrap:break-word}: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 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!important;@apply font-bold;}:host ::ng-deep .markdown-body p>a:hover{color:var(--color-primary-darker)!important}: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 }); }
|
|
24055
|
-
}
|
|
24056
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MarkdownParserComponent, decorators: [{
|
|
24057
|
-
type: Component,
|
|
24058
|
-
args: [{ selector: 'gn-ui-markdown-parser', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"markdown-body\" [innerHTML]=\"parsedMarkdown\"></div>\n", styles: [":host ::ng-deep .markdown-body{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;margin:0px 0px 1.5rem;line-height:1.5;word-wrap:break-word}: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 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!important;@apply font-bold;}:host ::ng-deep .markdown-body p>a:hover{color:var(--color-primary-darker)!important}: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"] }]
|
|
24059
|
-
}], propDecorators: { textContent: [{
|
|
24060
|
-
type: Input
|
|
24061
|
-
}] } });
|
|
24062
|
-
|
|
24063
24078
|
class MetadataInfoComponent {
|
|
24064
24079
|
constructor() {
|
|
24065
24080
|
this.keyword = new EventEmitter();
|
|
24066
24081
|
}
|
|
24067
24082
|
get hasUsage() {
|
|
24068
24083
|
return (this.metadata.extras?.isOpenData === true ||
|
|
24069
|
-
this.metadata.
|
|
24070
|
-
|
|
24084
|
+
(this.metadata.legalConstraints?.length > 0 &&
|
|
24085
|
+
this.legalConstraints.length > 0) ||
|
|
24086
|
+
(this.metadata.otherConstraints?.length > 0 &&
|
|
24087
|
+
this.otherConstraints.length > 0) ||
|
|
24088
|
+
(this.metadata.licenses?.length > 0 && this.licenses.length > 0));
|
|
24071
24089
|
}
|
|
24072
|
-
get
|
|
24090
|
+
get legalConstraints() {
|
|
24073
24091
|
let array = [];
|
|
24074
|
-
if (this.metadata.
|
|
24075
|
-
array = array.concat(this.metadata.
|
|
24092
|
+
if (this.metadata.legalConstraints?.length) {
|
|
24093
|
+
array = array.concat(this.metadata.legalConstraints.filter((c) => c.text).map((c) => c.text));
|
|
24076
24094
|
}
|
|
24077
|
-
|
|
24078
|
-
|
|
24095
|
+
return array;
|
|
24096
|
+
}
|
|
24097
|
+
get otherConstraints() {
|
|
24098
|
+
let array = [];
|
|
24099
|
+
if (this.metadata.otherConstraints?.length) {
|
|
24100
|
+
array = array.concat(this.metadata.otherConstraints.filter((c) => c.text).map((c) => c.text));
|
|
24101
|
+
}
|
|
24102
|
+
return array;
|
|
24103
|
+
}
|
|
24104
|
+
get licenses() {
|
|
24105
|
+
let array = [];
|
|
24106
|
+
if (this.metadata.licenses?.length) {
|
|
24107
|
+
array = array.concat(this.metadata.licenses
|
|
24108
|
+
.filter((c) => c.text)
|
|
24109
|
+
.map((c) => ({ text: c.text, url: c.url })));
|
|
24079
24110
|
}
|
|
24080
24111
|
return array;
|
|
24081
24112
|
}
|
|
@@ -24097,16 +24128,12 @@ class MetadataInfoComponent {
|
|
|
24097
24128
|
onKeywordClick(keyword) {
|
|
24098
24129
|
this.keyword.emit(keyword);
|
|
24099
24130
|
}
|
|
24100
|
-
copyText() {
|
|
24101
|
-
navigator.clipboard.writeText(this.metadata.uniqueIdentifier);
|
|
24102
|
-
event.target.blur();
|
|
24103
|
-
}
|
|
24104
24131
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MetadataInfoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
24105
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: MetadataInfoComponent, selector: "gn-ui-metadata-info", inputs: { metadata: "metadata", incomplete: "incomplete" }, outputs: { keyword: "keyword" }, ngImport: i0, template: "<div class=\"mb-6 md-description sm:mb-4 sm:pr-16\">\n <gn-ui-content-ghost ghostClass=\"h-32\" [showContent]=\"fieldReady('abstract')\">\n <gn-ui-max-lines [maxLines]=\"6\" *ngIf=\"metadata.abstract\">\n <div>\n <gn-ui-markdown-parser\n [textContent]=\"metadata.abstract\"\n ></gn-ui-markdown-parser>\n </div>\n </gn-ui-max-lines>\n </gn-ui-content-ghost>\n</div>\n\n<gn-ui-expandable-panel\n class=\"metadata-origin\"\n *ngIf=\"\n metadata.lineage ||\n metadata.recordUpdated ||\n metadata.updateFrequency ||\n metadata.status\n \"\n [title]=\"'record.metadata.origin' | translate\"\n>\n <p\n *ngIf=\"metadata.lineage\"\n class=\"mb-5 pt-4 whitespace-pre-line break-words\"\n gnUiLinkify\n >\n {{ metadata.lineage }}\n </p>\n <div\n class=\"py-4 px-6 rounded bg-gray-100 grid grid-cols-2 gap-y-[10px] gap-x-[20px] text-gray-700 info-grid\"\n >\n <div *ngIf=\"metadata.recordUpdated\">\n <p class=\"text-sm\" translate>record.metadata.updatedOn</p>\n <p class=\"text-primary font-medium mt-1\">\n {{ metadata.recordUpdated && metadata.recordUpdated.toLocaleString() }}\n </p>\n </div>\n <div *ngIf=\"updateFrequency\">\n <p class=\"text-sm\" translate>record.metadata.updateFrequency</p>\n <p\n class=\"text-primary font-medium mt-1 updateFrequency\"\n translate\n [translateParams]=\"{ count: updatedTimes }\"\n >\n {{ updateFrequency }}\n </p>\n </div>\n <div *ngIf=\"metadata.status\">\n <p class=\"text-sm\" translate>record.metadata.updateStatus</p>\n <p class=\"text-primary font-medium mt-1\" translate>\n domain.record.status.{{ metadata.status }}\n </p>\n </div>\n </div>\n</gn-ui-expandable-panel>\n<gn-ui-expandable-panel
|
|
24132
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: MetadataInfoComponent, selector: "gn-ui-metadata-info", inputs: { metadata: "metadata", incomplete: "incomplete" }, outputs: { keyword: "keyword" }, ngImport: i0, template: "<div class=\"mb-6 md-description sm:mb-4 sm:pr-16\">\n <gn-ui-content-ghost ghostClass=\"h-32\" [showContent]=\"fieldReady('abstract')\">\n <gn-ui-max-lines [maxLines]=\"6\" *ngIf=\"metadata.abstract\">\n <div>\n <gn-ui-markdown-parser\n [textContent]=\"metadata.abstract\"\n ></gn-ui-markdown-parser>\n </div>\n </gn-ui-max-lines>\n </gn-ui-content-ghost>\n</div>\n\n<gn-ui-expandable-panel [title]=\"'record.metadata.usage' | translate\">\n <div class=\"flex flex-col gap-[10px] mr-4 py-[12px] rounded text-gray-900\">\n <ng-container *ngFor=\"let license of licenses\">\n <div *ngIf=\"license.url; else noUrl\" class=\"text-primary\">\n <a\n [href]=\"license.url\"\n target=\"_blank\"\n class=\"cursor-pointer hover:underline transition-all\"\n >\n {{ license.text }}\n <mat-icon\n class=\"material-symbols-outlined !w-[12px] !h-[12px] !text-[12px] opacity-75 shrink-0\"\n >open_in_new</mat-icon\n >\n </a>\n </div>\n <ng-template #noUrl>\n <div class=\"text-primary\" gnUiLinkify>\n {{ license.text }}\n </div>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"legalConstraints.length\">\n <gn-ui-markdown-parser\n *ngFor=\"let constraint of legalConstraints\"\n [textContent]=\"constraint\"\n >\n </gn-ui-markdown-parser>\n </ng-container>\n <ng-container *ngIf=\"otherConstraints.length\">\n <div gnUiLinkify *ngFor=\"let constraint of otherConstraints\">\n <h5 translate class=\"font-medium text-black text-sm mb-[2px] mt-[16px]\">\n record.metadata.otherConstraints\n </h5>\n <gn-ui-markdown-parser [textContent]=\"constraint\">\n </gn-ui-markdown-parser>\n </div>\n </ng-container>\n\n <span class=\"noUsage\" *ngIf=\"!hasUsage\">\n {{ 'record.metadata.noUsage' | translate }}\n </span>\n </div>\n</gn-ui-expandable-panel>\n<gn-ui-expandable-panel\n class=\"metadata-origin\"\n *ngIf=\"\n metadata.lineage ||\n metadata.recordUpdated ||\n metadata.updateFrequency ||\n metadata.status\n \"\n [title]=\"'record.metadata.origin' | translate\"\n>\n <p\n *ngIf=\"metadata.lineage\"\n class=\"mb-5 pt-4 whitespace-pre-line break-words text-gray-900\"\n gnUiLinkify\n >\n {{ metadata.lineage }}\n </p>\n <div\n class=\"py-4 px-6 rounded bg-gray-100 grid grid-cols-2 gap-y-[10px] gap-x-[20px] text-gray-700 info-grid\"\n >\n <div *ngIf=\"metadata.recordUpdated\">\n <p class=\"text-sm\" translate>record.metadata.updatedOn</p>\n <p class=\"text-primary font-medium mt-1\">\n {{ metadata.recordUpdated && metadata.recordUpdated.toLocaleString() }}\n </p>\n </div>\n <div *ngIf=\"updateFrequency\">\n <p class=\"text-sm\" translate>record.metadata.updateFrequency</p>\n <p\n class=\"text-primary font-medium mt-1 updateFrequency\"\n translate\n [translateParams]=\"{ count: updatedTimes }\"\n >\n {{ updateFrequency }}\n </p>\n </div>\n <div *ngIf=\"metadata.status\">\n <p class=\"text-sm\" translate>record.metadata.updateStatus</p>\n <p class=\"text-primary font-medium mt-1\" translate>\n domain.record.status.{{ metadata.status }}\n </p>\n </div>\n </div>\n</gn-ui-expandable-panel>\n<gn-ui-expandable-panel\n *ngIf=\"metadata.landingPage\"\n [title]=\"'record.metadata.details' | translate\"\n>\n <div class=\"flex flex-col gap-4 mr-4 py-5 rounded text-gray-700\">\n <div *ngIf=\"metadata.recordUpdated\">\n <p class=\"text-sm\" translate>record.metadata.updatedOn</p>\n <p class=\"text-primary font-medium\">\n {{ metadata.recordUpdated && metadata.recordUpdated.toLocaleString() }}\n </p>\n </div>\n <div *ngIf=\"metadata.landingPage\">\n <p class=\"text-sm\" translate>record.metadata.sheet</p>\n <p class=\"text-primary font-medium\" translate>\n <a [href]=\"metadata.landingPage\" target=\"_blank\">\n <span class=\"break-all\" gnUiLinkify>{{ metadata.landingPage }}</span>\n </a>\n </p>\n </div>\n <div *ngIf=\"metadata.ownerOrganization\">\n <p class=\"text-sm\" translate>record.metadata.owner</p>\n <p class=\"text-primary font-medium\">\n {{ metadata.ownerOrganization.name }}\n </p>\n </div>\n <div *ngIf=\"metadata.uniqueIdentifier\">\n <p class=\"text-sm\" translate>record.metadata.uniqueId</p>\n <div class=\"flex flex-row content-align items-end gap-1\">\n <gn-ui-copy-text-button\n [text]=\"metadata.uniqueIdentifier\"\n [tooltipText]=\"'tooltip.id.copy' | translate\"\n [displayText]=\"false\"\n ></gn-ui-copy-text-button>\n <p class=\"text-primary font-medium\">\n {{ metadata.uniqueIdentifier }}\n </p>\n </div>\n </div>\n <div *ngIf=\"metadata.topics?.length\">\n <p class=\"text-sm mb-1\" translate>record.metadata.topics</p>\n <div class=\"sm:pb-4 sm:pr-16\">\n <gn-ui-badge\n class=\"inline-block mr-2 mb-2 lowercase\"\n *ngFor=\"let topic of metadata.topics\"\n >{{ topic }}</gn-ui-badge\n >\n </div>\n </div>\n <div *ngIf=\"metadata.keywords?.length\">\n <p class=\"text-sm mb-1\" translate>record.metadata.keywords</p>\n <div class=\"sm:pb-4 sm:pr-16\">\n <gn-ui-badge\n class=\"inline-block mr-2 mb-2 lowercase\"\n (click)=\"onKeywordClick(keyword)\"\n [clickable]=\"true\"\n *ngFor=\"let keyword of metadata.keywords\"\n >{{ keyword.label }}</gn-ui-badge\n >\n </div>\n </div>\n </div>\n</gn-ui-expandable-panel>\n", styles: [".md-description ::ng-deep a{@apply underline text-blue-600 hover:text-blue-800;}.info-grid>:nth-last-child(n+3){padding-bottom:10px;@apply border-b border-gray-300;}:host ::ng-deep gn-ui-copy-text-button button mat-icon{transform:scale(.8)}\n"], dependencies: [{ kind: "directive", type: i1$3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: BadgeComponent, selector: "gn-ui-badge", inputs: ["clickable"] }, { kind: "component", type: ExpandablePanelComponent, selector: "gn-ui-expandable-panel", inputs: ["title", "collapsed"] }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: CopyTextButtonComponent, selector: "gn-ui-copy-text-button", inputs: ["text", "tooltipText", "displayText", "rows"] }, { kind: "component", type: MarkdownParserComponent, selector: "gn-ui-markdown-parser", inputs: ["textContent"] }, { kind: "component", type: ContentGhostComponent, selector: "gn-ui-content-ghost", inputs: ["showContent", "ghostClass"] }, { kind: "directive", type: GnUiLinkifyDirective, selector: "[gnUiLinkify]" }, { kind: "component", type: MaxLinesComponent, selector: "gn-ui-max-lines", inputs: ["maxLines"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
24106
24133
|
}
|
|
24107
24134
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MetadataInfoComponent, decorators: [{
|
|
24108
24135
|
type: Component,
|
|
24109
|
-
args: [{ selector: 'gn-ui-metadata-info', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"mb-6 md-description sm:mb-4 sm:pr-16\">\n <gn-ui-content-ghost ghostClass=\"h-32\" [showContent]=\"fieldReady('abstract')\">\n <gn-ui-max-lines [maxLines]=\"6\" *ngIf=\"metadata.abstract\">\n <div>\n <gn-ui-markdown-parser\n [textContent]=\"metadata.abstract\"\n ></gn-ui-markdown-parser>\n </div>\n </gn-ui-max-lines>\n </gn-ui-content-ghost>\n</div>\n\n<gn-ui-expandable-panel\n class=\"metadata-origin\"\n *ngIf=\"\n metadata.lineage ||\n metadata.recordUpdated ||\n metadata.updateFrequency ||\n metadata.status\n \"\n [title]=\"'record.metadata.origin' | translate\"\n>\n <p\n *ngIf=\"metadata.lineage\"\n class=\"mb-5 pt-4 whitespace-pre-line break-words\"\n gnUiLinkify\n >\n {{ metadata.lineage }}\n </p>\n <div\n class=\"py-4 px-6 rounded bg-gray-100 grid grid-cols-2 gap-y-[10px] gap-x-[20px] text-gray-700 info-grid\"\n >\n <div *ngIf=\"metadata.recordUpdated\">\n <p class=\"text-sm\" translate>record.metadata.updatedOn</p>\n <p class=\"text-primary font-medium mt-1\">\n {{ metadata.recordUpdated && metadata.recordUpdated.toLocaleString() }}\n </p>\n </div>\n <div *ngIf=\"updateFrequency\">\n <p class=\"text-sm\" translate>record.metadata.updateFrequency</p>\n <p\n class=\"text-primary font-medium mt-1 updateFrequency\"\n translate\n [translateParams]=\"{ count: updatedTimes }\"\n >\n {{ updateFrequency }}\n </p>\n </div>\n <div *ngIf=\"metadata.status\">\n <p class=\"text-sm\" translate>record.metadata.updateStatus</p>\n <p class=\"text-primary font-medium mt-1\" translate>\n domain.record.status.{{ metadata.status }}\n </p>\n </div>\n </div>\n</gn-ui-expandable-panel>\n<gn-ui-expandable-panel
|
|
24136
|
+
args: [{ selector: 'gn-ui-metadata-info', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"mb-6 md-description sm:mb-4 sm:pr-16\">\n <gn-ui-content-ghost ghostClass=\"h-32\" [showContent]=\"fieldReady('abstract')\">\n <gn-ui-max-lines [maxLines]=\"6\" *ngIf=\"metadata.abstract\">\n <div>\n <gn-ui-markdown-parser\n [textContent]=\"metadata.abstract\"\n ></gn-ui-markdown-parser>\n </div>\n </gn-ui-max-lines>\n </gn-ui-content-ghost>\n</div>\n\n<gn-ui-expandable-panel [title]=\"'record.metadata.usage' | translate\">\n <div class=\"flex flex-col gap-[10px] mr-4 py-[12px] rounded text-gray-900\">\n <ng-container *ngFor=\"let license of licenses\">\n <div *ngIf=\"license.url; else noUrl\" class=\"text-primary\">\n <a\n [href]=\"license.url\"\n target=\"_blank\"\n class=\"cursor-pointer hover:underline transition-all\"\n >\n {{ license.text }}\n <mat-icon\n class=\"material-symbols-outlined !w-[12px] !h-[12px] !text-[12px] opacity-75 shrink-0\"\n >open_in_new</mat-icon\n >\n </a>\n </div>\n <ng-template #noUrl>\n <div class=\"text-primary\" gnUiLinkify>\n {{ license.text }}\n </div>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"legalConstraints.length\">\n <gn-ui-markdown-parser\n *ngFor=\"let constraint of legalConstraints\"\n [textContent]=\"constraint\"\n >\n </gn-ui-markdown-parser>\n </ng-container>\n <ng-container *ngIf=\"otherConstraints.length\">\n <div gnUiLinkify *ngFor=\"let constraint of otherConstraints\">\n <h5 translate class=\"font-medium text-black text-sm mb-[2px] mt-[16px]\">\n record.metadata.otherConstraints\n </h5>\n <gn-ui-markdown-parser [textContent]=\"constraint\">\n </gn-ui-markdown-parser>\n </div>\n </ng-container>\n\n <span class=\"noUsage\" *ngIf=\"!hasUsage\">\n {{ 'record.metadata.noUsage' | translate }}\n </span>\n </div>\n</gn-ui-expandable-panel>\n<gn-ui-expandable-panel\n class=\"metadata-origin\"\n *ngIf=\"\n metadata.lineage ||\n metadata.recordUpdated ||\n metadata.updateFrequency ||\n metadata.status\n \"\n [title]=\"'record.metadata.origin' | translate\"\n>\n <p\n *ngIf=\"metadata.lineage\"\n class=\"mb-5 pt-4 whitespace-pre-line break-words text-gray-900\"\n gnUiLinkify\n >\n {{ metadata.lineage }}\n </p>\n <div\n class=\"py-4 px-6 rounded bg-gray-100 grid grid-cols-2 gap-y-[10px] gap-x-[20px] text-gray-700 info-grid\"\n >\n <div *ngIf=\"metadata.recordUpdated\">\n <p class=\"text-sm\" translate>record.metadata.updatedOn</p>\n <p class=\"text-primary font-medium mt-1\">\n {{ metadata.recordUpdated && metadata.recordUpdated.toLocaleString() }}\n </p>\n </div>\n <div *ngIf=\"updateFrequency\">\n <p class=\"text-sm\" translate>record.metadata.updateFrequency</p>\n <p\n class=\"text-primary font-medium mt-1 updateFrequency\"\n translate\n [translateParams]=\"{ count: updatedTimes }\"\n >\n {{ updateFrequency }}\n </p>\n </div>\n <div *ngIf=\"metadata.status\">\n <p class=\"text-sm\" translate>record.metadata.updateStatus</p>\n <p class=\"text-primary font-medium mt-1\" translate>\n domain.record.status.{{ metadata.status }}\n </p>\n </div>\n </div>\n</gn-ui-expandable-panel>\n<gn-ui-expandable-panel\n *ngIf=\"metadata.landingPage\"\n [title]=\"'record.metadata.details' | translate\"\n>\n <div class=\"flex flex-col gap-4 mr-4 py-5 rounded text-gray-700\">\n <div *ngIf=\"metadata.recordUpdated\">\n <p class=\"text-sm\" translate>record.metadata.updatedOn</p>\n <p class=\"text-primary font-medium\">\n {{ metadata.recordUpdated && metadata.recordUpdated.toLocaleString() }}\n </p>\n </div>\n <div *ngIf=\"metadata.landingPage\">\n <p class=\"text-sm\" translate>record.metadata.sheet</p>\n <p class=\"text-primary font-medium\" translate>\n <a [href]=\"metadata.landingPage\" target=\"_blank\">\n <span class=\"break-all\" gnUiLinkify>{{ metadata.landingPage }}</span>\n </a>\n </p>\n </div>\n <div *ngIf=\"metadata.ownerOrganization\">\n <p class=\"text-sm\" translate>record.metadata.owner</p>\n <p class=\"text-primary font-medium\">\n {{ metadata.ownerOrganization.name }}\n </p>\n </div>\n <div *ngIf=\"metadata.uniqueIdentifier\">\n <p class=\"text-sm\" translate>record.metadata.uniqueId</p>\n <div class=\"flex flex-row content-align items-end gap-1\">\n <gn-ui-copy-text-button\n [text]=\"metadata.uniqueIdentifier\"\n [tooltipText]=\"'tooltip.id.copy' | translate\"\n [displayText]=\"false\"\n ></gn-ui-copy-text-button>\n <p class=\"text-primary font-medium\">\n {{ metadata.uniqueIdentifier }}\n </p>\n </div>\n </div>\n <div *ngIf=\"metadata.topics?.length\">\n <p class=\"text-sm mb-1\" translate>record.metadata.topics</p>\n <div class=\"sm:pb-4 sm:pr-16\">\n <gn-ui-badge\n class=\"inline-block mr-2 mb-2 lowercase\"\n *ngFor=\"let topic of metadata.topics\"\n >{{ topic }}</gn-ui-badge\n >\n </div>\n </div>\n <div *ngIf=\"metadata.keywords?.length\">\n <p class=\"text-sm mb-1\" translate>record.metadata.keywords</p>\n <div class=\"sm:pb-4 sm:pr-16\">\n <gn-ui-badge\n class=\"inline-block mr-2 mb-2 lowercase\"\n (click)=\"onKeywordClick(keyword)\"\n [clickable]=\"true\"\n *ngFor=\"let keyword of metadata.keywords\"\n >{{ keyword.label }}</gn-ui-badge\n >\n </div>\n </div>\n </div>\n</gn-ui-expandable-panel>\n", styles: [".md-description ::ng-deep a{@apply underline text-blue-600 hover:text-blue-800;}.info-grid>:nth-last-child(n+3){padding-bottom:10px;@apply border-b border-gray-300;}:host ::ng-deep gn-ui-copy-text-button button mat-icon{transform:scale(.8)}\n"] }]
|
|
24110
24137
|
}], propDecorators: { metadata: [{
|
|
24111
24138
|
type: Input
|
|
24112
24139
|
}], incomplete: [{
|
|
@@ -24175,11 +24202,11 @@ class ButtonComponent {
|
|
|
24175
24202
|
propagateToDocumentOnly(event);
|
|
24176
24203
|
}
|
|
24177
24204
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: ButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
24178
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: ButtonComponent, selector: "gn-ui-button", inputs: { type: "type", disabled: "disabled", extraClass: "extraClass" }, outputs: { buttonClick: "buttonClick" }, ngImport: i0, template: "<button\n type=\"button\"\n class=\"flex flex-row items-center text-[1em] leading-none p-[1em] rounded-[0.25em] transition-all duration-100 focus:outline-none disabled:opacity-50 disabled:pointer-events-none\"\n [class]=\"classList\"\n [disabled]=\"disabled\"\n (click)=\"handleClick($event)\"\n>\n <ng-content></ng-content>\n</button>\n", styles: [":host ::ng-deep mat-icon.mat-icon{margin-top:-.325em;margin-bottom:-.325em}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
24205
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: ButtonComponent, isStandalone: true, selector: "gn-ui-button", inputs: { type: "type", disabled: "disabled", extraClass: "extraClass" }, outputs: { buttonClick: "buttonClick" }, ngImport: i0, template: "<button\n type=\"button\"\n class=\"flex flex-row items-center text-[1em] leading-none p-[1em] rounded-[0.25em] transition-all duration-100 focus:outline-none disabled:opacity-50 disabled:pointer-events-none\"\n [class]=\"classList\"\n [disabled]=\"disabled\"\n (click)=\"handleClick($event)\"\n>\n <ng-content></ng-content>\n</button>\n", styles: [":host ::ng-deep mat-icon.mat-icon{margin-top:-.325em;margin-bottom:-.325em}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
24179
24206
|
}
|
|
24180
24207
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: ButtonComponent, decorators: [{
|
|
24181
24208
|
type: Component,
|
|
24182
|
-
args: [{ selector: 'gn-ui-button', changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n type=\"button\"\n class=\"flex flex-row items-center text-[1em] leading-none p-[1em] rounded-[0.25em] transition-all duration-100 focus:outline-none disabled:opacity-50 disabled:pointer-events-none\"\n [class]=\"classList\"\n [disabled]=\"disabled\"\n (click)=\"handleClick($event)\"\n>\n <ng-content></ng-content>\n</button>\n", styles: [":host ::ng-deep mat-icon.mat-icon{margin-top:-.325em;margin-bottom:-.325em}\n"] }]
|
|
24209
|
+
args: [{ selector: 'gn-ui-button', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<button\n type=\"button\"\n class=\"flex flex-row items-center text-[1em] leading-none p-[1em] rounded-[0.25em] transition-all duration-100 focus:outline-none disabled:opacity-50 disabled:pointer-events-none\"\n [class]=\"classList\"\n [disabled]=\"disabled\"\n (click)=\"handleClick($event)\"\n>\n <ng-content></ng-content>\n</button>\n", styles: [":host ::ng-deep mat-icon.mat-icon{margin-top:-.325em;margin-bottom:-.325em}\n"] }]
|
|
24183
24210
|
}], propDecorators: { type: [{
|
|
24184
24211
|
type: Input
|
|
24185
24212
|
}], disabled: [{
|
|
@@ -25181,11 +25208,11 @@ class TextAreaComponent {
|
|
|
25181
25208
|
this.rawChange.next(value);
|
|
25182
25209
|
}
|
|
25183
25210
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: TextAreaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
25184
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: TextAreaComponent, selector: "gn-ui-text-area", inputs: { value: "value", placeholder: "placeholder", required: "required" }, outputs: { valueChange: "valueChange" }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], ngImport: i0, template: "<div class=\"h-full flex\">\n <textarea\n #input\n name=\"textArea\"\n [placeholder]=\"placeholder\"\n [value]=\"value\"\n (change)=\"handleChange($event)\"\n (input)=\"handleChange($event)\"\n class=\"w-full pt-2 pl-2 resize-none border border-gray-800 rounded italic leading-tight focus:outline-none focus:bg-background focus:border-primary\"\n [attr.required]=\"required || null\"\n ></textarea>\n</div>\n", styles: [".invalid{border-color:var(--color-secondary)}\n"] }); }
|
|
25211
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: TextAreaComponent, isStandalone: true, selector: "gn-ui-text-area", inputs: { value: "value", placeholder: "placeholder", required: "required" }, outputs: { valueChange: "valueChange" }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], ngImport: i0, template: "<div class=\"h-full flex\">\n <textarea\n #input\n name=\"textArea\"\n [placeholder]=\"placeholder\"\n [value]=\"value\"\n (change)=\"handleChange($event)\"\n (input)=\"handleChange($event)\"\n class=\"w-full pt-2 pl-2 resize-none border border-gray-800 rounded italic leading-tight focus:outline-none focus:bg-background focus:border-primary\"\n [attr.required]=\"required || null\"\n ></textarea>\n</div>\n", styles: [".invalid{border-color:var(--color-secondary)}\n"] }); }
|
|
25185
25212
|
}
|
|
25186
25213
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: TextAreaComponent, decorators: [{
|
|
25187
25214
|
type: Component,
|
|
25188
|
-
args: [{ selector: 'gn-ui-text-area', template: "<div class=\"h-full flex\">\n <textarea\n #input\n name=\"textArea\"\n [placeholder]=\"placeholder\"\n [value]=\"value\"\n (change)=\"handleChange($event)\"\n (input)=\"handleChange($event)\"\n class=\"w-full pt-2 pl-2 resize-none border border-gray-800 rounded italic leading-tight focus:outline-none focus:bg-background focus:border-primary\"\n [attr.required]=\"required || null\"\n ></textarea>\n</div>\n", styles: [".invalid{border-color:var(--color-secondary)}\n"] }]
|
|
25215
|
+
args: [{ selector: 'gn-ui-text-area', standalone: true, template: "<div class=\"h-full flex\">\n <textarea\n #input\n name=\"textArea\"\n [placeholder]=\"placeholder\"\n [value]=\"value\"\n (change)=\"handleChange($event)\"\n (input)=\"handleChange($event)\"\n class=\"w-full pt-2 pl-2 resize-none border border-gray-800 rounded italic leading-tight focus:outline-none focus:bg-background focus:border-primary\"\n [attr.required]=\"required || null\"\n ></textarea>\n</div>\n", styles: [".invalid{border-color:var(--color-secondary)}\n"] }]
|
|
25189
25216
|
}], propDecorators: { value: [{
|
|
25190
25217
|
type: Input
|
|
25191
25218
|
}], placeholder: [{
|
|
@@ -25455,11 +25482,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
|
|
|
25455
25482
|
|
|
25456
25483
|
class NavigationButtonComponent {
|
|
25457
25484
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: NavigationButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
25458
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: NavigationButtonComponent, selector: "gn-ui-navigation-button", inputs: { label: "label", icon: "icon" }, ngImport: i0, template: "<button\n class=\"group flex items-center justify-center gap-1 backdrop-blur p-1 bg-primary-opacity-30
|
|
25485
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: NavigationButtonComponent, selector: "gn-ui-navigation-button", inputs: { label: "label", icon: "icon" }, ngImport: i0, template: "<button\n class=\"group flex items-center justify-center gap-1 backdrop-blur p-1 bg-primary-opacity-30 rounded content-center\"\n>\n <mat-icon class=\"material-symbols-outlined align-middle w-[18px]\">{{\n icon\n }}</mat-icon>\n <span\n class=\"mx-2 mt-0.5 text-[16px] tracking-widest content-center opacity-75\"\n >{{ label.toUpperCase() }}</span\n >\n</button>\n", styles: ["button{color:var(--navigation-button-color, --color-background)}\n"], dependencies: [{ kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
25459
25486
|
}
|
|
25460
25487
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: NavigationButtonComponent, decorators: [{
|
|
25461
25488
|
type: Component,
|
|
25462
|
-
args: [{ selector: 'gn-ui-navigation-button', changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n class=\"group flex items-center justify-center gap-1 backdrop-blur p-1 bg-primary-opacity-30
|
|
25489
|
+
args: [{ selector: 'gn-ui-navigation-button', changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n class=\"group flex items-center justify-center gap-1 backdrop-blur p-1 bg-primary-opacity-30 rounded content-center\"\n>\n <mat-icon class=\"material-symbols-outlined align-middle w-[18px]\">{{\n icon\n }}</mat-icon>\n <span\n class=\"mx-2 mt-0.5 text-[16px] tracking-widest content-center opacity-75\"\n >{{ label.toUpperCase() }}</span\n >\n</button>\n", styles: ["button{color:var(--navigation-button-color, --color-background)}\n"] }]
|
|
25463
25490
|
}], propDecorators: { label: [{
|
|
25464
25491
|
type: Input
|
|
25465
25492
|
}], icon: [{
|
|
@@ -25773,10 +25800,8 @@ class UiInputsModule {
|
|
|
25773
25800
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: UiInputsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
25774
25801
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.7", ngImport: i0, type: UiInputsModule, declarations: [DropdownSelectorComponent,
|
|
25775
25802
|
AutocompleteComponent,
|
|
25776
|
-
ButtonComponent,
|
|
25777
25803
|
TextInputComponent,
|
|
25778
25804
|
DragAndDropFileInputComponent,
|
|
25779
|
-
TextAreaComponent,
|
|
25780
25805
|
ChipsInputComponent,
|
|
25781
25806
|
NavigationButtonComponent,
|
|
25782
25807
|
StarToggleComponent,
|
|
@@ -25809,7 +25834,9 @@ class UiInputsModule {
|
|
|
25809
25834
|
MatInputModule,
|
|
25810
25835
|
MatDatepickerModule,
|
|
25811
25836
|
MatNativeDateModule,
|
|
25812
|
-
EditableLabelDirective
|
|
25837
|
+
EditableLabelDirective,
|
|
25838
|
+
TextAreaComponent,
|
|
25839
|
+
ButtonComponent], exports: [DropdownSelectorComponent,
|
|
25813
25840
|
AutocompleteComponent,
|
|
25814
25841
|
ButtonComponent,
|
|
25815
25842
|
TextInputComponent,
|
|
@@ -25851,10 +25878,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
|
|
|
25851
25878
|
declarations: [
|
|
25852
25879
|
DropdownSelectorComponent,
|
|
25853
25880
|
AutocompleteComponent,
|
|
25854
|
-
ButtonComponent,
|
|
25855
25881
|
TextInputComponent,
|
|
25856
25882
|
DragAndDropFileInputComponent,
|
|
25857
|
-
TextAreaComponent,
|
|
25858
25883
|
ChipsInputComponent,
|
|
25859
25884
|
NavigationButtonComponent,
|
|
25860
25885
|
StarToggleComponent,
|
|
@@ -25893,6 +25918,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
|
|
|
25893
25918
|
MatDatepickerModule,
|
|
25894
25919
|
MatNativeDateModule,
|
|
25895
25920
|
EditableLabelDirective,
|
|
25921
|
+
TextAreaComponent,
|
|
25922
|
+
ButtonComponent,
|
|
25896
25923
|
],
|
|
25897
25924
|
exports: [
|
|
25898
25925
|
DropdownSelectorComponent,
|
|
@@ -26012,7 +26039,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
|
|
|
26012
26039
|
|
|
26013
26040
|
const DEFAULT_PARAMS = {
|
|
26014
26041
|
OFFSET: '',
|
|
26015
|
-
LIMIT: '',
|
|
26042
|
+
LIMIT: '-1',
|
|
26016
26043
|
FORMAT: 'json',
|
|
26017
26044
|
};
|
|
26018
26045
|
class RecordApiFormComponent {
|
|
@@ -26041,6 +26068,8 @@ class RecordApiFormComponent {
|
|
|
26041
26068
|
}
|
|
26042
26069
|
return outputUrl;
|
|
26043
26070
|
}));
|
|
26071
|
+
this.noLimitChecked$ = this.limit$.pipe(map$2((limit) => limit === '-1' || limit === ''));
|
|
26072
|
+
this.displayLimit$ = this.limit$.pipe(map$2((limit) => (limit !== '-1' ? limit : '')));
|
|
26044
26073
|
}
|
|
26045
26074
|
set apiLink(value) {
|
|
26046
26075
|
this.apiBaseUrl = value ? value.url.href : undefined;
|
|
@@ -26050,10 +26079,11 @@ class RecordApiFormComponent {
|
|
|
26050
26079
|
this.offset$.next(value);
|
|
26051
26080
|
}
|
|
26052
26081
|
setLimit(value) {
|
|
26053
|
-
|
|
26082
|
+
const newLimit = value === '' ? '-1' : value;
|
|
26083
|
+
this.limit$.next(newLimit);
|
|
26054
26084
|
}
|
|
26055
26085
|
setFormat(value) {
|
|
26056
|
-
this.format$.next(value);
|
|
26086
|
+
this.format$.next(String(value));
|
|
26057
26087
|
}
|
|
26058
26088
|
resetUrl() {
|
|
26059
26089
|
this.offset$.next(DEFAULT_PARAMS.OFFSET);
|
|
@@ -26061,11 +26091,11 @@ class RecordApiFormComponent {
|
|
|
26061
26091
|
this.format$.next(DEFAULT_PARAMS.FORMAT);
|
|
26062
26092
|
}
|
|
26063
26093
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: RecordApiFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
26064
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: RecordApiFormComponent, selector: "gn-ui-record-api-form", inputs: { apiLink: "apiLink" }, ngImport: i0, template: "<div class=\"flex flex-col gap-8\">\n <div class=\"flex flex-col bg-white p-8 ng-star-inserted shadow-xl gap-8\">\n <div class=\"flex flex-row\">\n <div class=\"text-[16px] text-black truncate font-title w-11/12\" translate>\n record.metadata.api.form.create\n </div>\n <button\n (click)=\"resetUrl()\"\n class=\"bg-primary-opacity-50 inline-flex items-center justify-center px-2 py-1 text-13 font-medium leading-none text-white rounded capitalize text-primary-lightest hover:bg-primary transition-colors\"\n >\n <p class=\"text-[13px] uppercase\" translate>\n record.metadata.api.form.reset\n </p>\n </button>\n </div>\n <div class=\"flex flex-row flex-wrap justify-between flex-grow gap-5\">\n <div class=\"flex flex-col gap-3\">\n <p class=\"text-[14px]\" translate>record.metadata.api.form.limit</p>\n <div class=\"flex flex-row items-center gap-2\">\n <gn-ui-text-input\n class=\"mr-2 w-20\"\n (
|
|
26094
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: RecordApiFormComponent, selector: "gn-ui-record-api-form", inputs: { apiLink: "apiLink" }, ngImport: i0, template: "<div class=\"flex flex-col gap-8\">\n <div class=\"flex flex-col bg-white p-8 ng-star-inserted shadow-xl gap-8\">\n <div class=\"flex flex-row\">\n <div class=\"text-[16px] text-black truncate font-title w-11/12\" translate>\n record.metadata.api.form.create\n </div>\n <button\n (click)=\"resetUrl()\"\n class=\"bg-primary-opacity-50 inline-flex items-center justify-center px-2 py-1 text-13 font-medium leading-none text-white rounded capitalize text-primary-lightest hover:bg-primary transition-colors\"\n >\n <p class=\"text-[13px] uppercase\" translate>\n record.metadata.api.form.reset\n </p>\n </button>\n </div>\n <div class=\"flex flex-row flex-wrap justify-between flex-grow gap-5\">\n <div class=\"flex flex-col gap-3\">\n <p class=\"text-[14px]\" translate>record.metadata.api.form.limit</p>\n <div class=\"flex flex-row items-center gap-2\">\n <gn-ui-text-input\n class=\"mr-2 w-20\"\n (valueChange)=\"setLimit($event)\"\n [value]=\"displayLimit$ | async\"\n hint=\"\"\n >\n </gn-ui-text-input>\n <div class=\"flex items-center\">\n <input\n class=\"mr-2 cursor-pointer\"\n type=\"checkbox\"\n [checked]=\"noLimitChecked$ | async\"\n (change)=\"setLimit('-1')\"\n />\n <span class=\"text-sm\" translate\n >record.metadata.api.form.limit.all</span\n >\n </div>\n </div>\n </div>\n <div class=\"flex flex-col gap-3\">\n <p class=\"text-sm\" translate>record.metadata.api.form.offset</p>\n <gn-ui-text-input\n class=\"w-20\"\n [value]=\"offset$ | async\"\n (valueChange)=\"setOffset($event)\"\n hint=\"\"\n >\n </gn-ui-text-input>\n </div>\n <div class=\"flex flex-col gap-3\">\n <p class=\"text-sm\" translate>record.metadata.api.form.type</p>\n <gn-ui-dropdown-selector\n #dropdown\n [title]=\"''\"\n extraBtnClass=\"secondary min-w-full !w-40 !text-black\"\n [showTitle]=\"false\"\n class=\"text-black\"\n [choices]=\"formatsList\"\n (selectValue)=\"setFormat($event)\"\n [selected]=\"format$ | async\"\n ></gn-ui-dropdown-selector>\n </div>\n </div>\n </div>\n <div class=\"flex flex-col gap-3 mb-3\">\n <div class=\"text-sm text-black truncate font-title w-11/12\" translate>\n record.metadata.api.form.customUrl\n </div>\n <div class=\"bg-white rounded-lg\">\n <gn-ui-copy-text-button\n [text]=\"apiQueryUrl$ | async\"\n ></gn-ui-copy-text-button>\n </div>\n </div>\n</div>\n", styles: [":host ::ng-deep input{color:#000;opacity:1}:host ::ng-deep gn-ui-copy-text-button input[type=text]{color:#000;background-color:#fff}:host ::ng-deep gn-ui-copy-text-button button,host ::ng-deep gn-ui-copy-text-button button:hover{background-color:var(--color-secondary)!important}:host ::ng-deep gn-ui-copy-text-button button mat-icon{color:#fff!important;opacity:1!important}:host ::ng-deep gn-ui-copy-text-button button:hover mat-icon{color:#d3d3d3!important}\n"], dependencies: [{ kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: DropdownSelectorComponent, selector: "gn-ui-dropdown-selector", inputs: ["title", "showTitle", "ariaName", "choices", "selected", "maxRows", "extraBtnClass", "minWidth"], outputs: ["selectValue"] }, { kind: "component", type: TextInputComponent, selector: "gn-ui-text-input", inputs: ["value", "hint", "required"], outputs: ["valueChange"] }, { kind: "component", type: CopyTextButtonComponent, selector: "gn-ui-copy-text-button", inputs: ["text", "tooltipText", "displayText", "rows"] }, { kind: "pipe", type: i1$3.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
26065
26095
|
}
|
|
26066
26096
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: RecordApiFormComponent, decorators: [{
|
|
26067
26097
|
type: Component,
|
|
26068
|
-
args: [{ selector: 'gn-ui-record-api-form', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"flex flex-col gap-8\">\n <div class=\"flex flex-col bg-white p-8 ng-star-inserted shadow-xl gap-8\">\n <div class=\"flex flex-row\">\n <div class=\"text-[16px] text-black truncate font-title w-11/12\" translate>\n record.metadata.api.form.create\n </div>\n <button\n (click)=\"resetUrl()\"\n class=\"bg-primary-opacity-50 inline-flex items-center justify-center px-2 py-1 text-13 font-medium leading-none text-white rounded capitalize text-primary-lightest hover:bg-primary transition-colors\"\n >\n <p class=\"text-[13px] uppercase\" translate>\n record.metadata.api.form.reset\n </p>\n </button>\n </div>\n <div class=\"flex flex-row flex-wrap justify-between flex-grow gap-5\">\n <div class=\"flex flex-col gap-3\">\n <p class=\"text-[14px]\" translate>record.metadata.api.form.limit</p>\n <div class=\"flex flex-row items-center gap-2\">\n <gn-ui-text-input\n class=\"mr-2 w-20\"\n (
|
|
26098
|
+
args: [{ selector: 'gn-ui-record-api-form', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"flex flex-col gap-8\">\n <div class=\"flex flex-col bg-white p-8 ng-star-inserted shadow-xl gap-8\">\n <div class=\"flex flex-row\">\n <div class=\"text-[16px] text-black truncate font-title w-11/12\" translate>\n record.metadata.api.form.create\n </div>\n <button\n (click)=\"resetUrl()\"\n class=\"bg-primary-opacity-50 inline-flex items-center justify-center px-2 py-1 text-13 font-medium leading-none text-white rounded capitalize text-primary-lightest hover:bg-primary transition-colors\"\n >\n <p class=\"text-[13px] uppercase\" translate>\n record.metadata.api.form.reset\n </p>\n </button>\n </div>\n <div class=\"flex flex-row flex-wrap justify-between flex-grow gap-5\">\n <div class=\"flex flex-col gap-3\">\n <p class=\"text-[14px]\" translate>record.metadata.api.form.limit</p>\n <div class=\"flex flex-row items-center gap-2\">\n <gn-ui-text-input\n class=\"mr-2 w-20\"\n (valueChange)=\"setLimit($event)\"\n [value]=\"displayLimit$ | async\"\n hint=\"\"\n >\n </gn-ui-text-input>\n <div class=\"flex items-center\">\n <input\n class=\"mr-2 cursor-pointer\"\n type=\"checkbox\"\n [checked]=\"noLimitChecked$ | async\"\n (change)=\"setLimit('-1')\"\n />\n <span class=\"text-sm\" translate\n >record.metadata.api.form.limit.all</span\n >\n </div>\n </div>\n </div>\n <div class=\"flex flex-col gap-3\">\n <p class=\"text-sm\" translate>record.metadata.api.form.offset</p>\n <gn-ui-text-input\n class=\"w-20\"\n [value]=\"offset$ | async\"\n (valueChange)=\"setOffset($event)\"\n hint=\"\"\n >\n </gn-ui-text-input>\n </div>\n <div class=\"flex flex-col gap-3\">\n <p class=\"text-sm\" translate>record.metadata.api.form.type</p>\n <gn-ui-dropdown-selector\n #dropdown\n [title]=\"''\"\n extraBtnClass=\"secondary min-w-full !w-40 !text-black\"\n [showTitle]=\"false\"\n class=\"text-black\"\n [choices]=\"formatsList\"\n (selectValue)=\"setFormat($event)\"\n [selected]=\"format$ | async\"\n ></gn-ui-dropdown-selector>\n </div>\n </div>\n </div>\n <div class=\"flex flex-col gap-3 mb-3\">\n <div class=\"text-sm text-black truncate font-title w-11/12\" translate>\n record.metadata.api.form.customUrl\n </div>\n <div class=\"bg-white rounded-lg\">\n <gn-ui-copy-text-button\n [text]=\"apiQueryUrl$ | async\"\n ></gn-ui-copy-text-button>\n </div>\n </div>\n</div>\n", styles: [":host ::ng-deep input{color:#000;opacity:1}:host ::ng-deep gn-ui-copy-text-button input[type=text]{color:#000;background-color:#fff}:host ::ng-deep gn-ui-copy-text-button button,host ::ng-deep gn-ui-copy-text-button button:hover{background-color:var(--color-secondary)!important}:host ::ng-deep gn-ui-copy-text-button button mat-icon{color:#fff!important;opacity:1!important}:host ::ng-deep gn-ui-copy-text-button button:hover mat-icon{color:#d3d3d3!important}\n"] }]
|
|
26069
26099
|
}], propDecorators: { apiLink: [{
|
|
26070
26100
|
type: Input
|
|
26071
26101
|
}] } });
|
|
@@ -26111,7 +26141,6 @@ class UiElementsModule {
|
|
|
26111
26141
|
PaginationButtonsComponent,
|
|
26112
26142
|
MaxLinesComponent,
|
|
26113
26143
|
RecordApiFormComponent,
|
|
26114
|
-
MarkdownParserComponent,
|
|
26115
26144
|
ImageOverlayPreviewComponent], imports: [CommonModule,
|
|
26116
26145
|
MatIconModule,
|
|
26117
26146
|
MatTooltipModule,
|
|
@@ -26120,7 +26149,8 @@ class UiElementsModule {
|
|
|
26120
26149
|
RouterModule,
|
|
26121
26150
|
UiInputsModule,
|
|
26122
26151
|
FormsModule,
|
|
26123
|
-
NgOptimizedImage
|
|
26152
|
+
NgOptimizedImage,
|
|
26153
|
+
MarkdownParserComponent], exports: [MetadataInfoComponent,
|
|
26124
26154
|
ContentGhostComponent,
|
|
26125
26155
|
DownloadItemComponent,
|
|
26126
26156
|
DownloadsListComponent,
|
|
@@ -26167,6 +26197,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
|
|
|
26167
26197
|
UiInputsModule,
|
|
26168
26198
|
FormsModule,
|
|
26169
26199
|
NgOptimizedImage,
|
|
26200
|
+
MarkdownParserComponent,
|
|
26170
26201
|
],
|
|
26171
26202
|
declarations: [
|
|
26172
26203
|
MetadataInfoComponent,
|
|
@@ -26189,7 +26220,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
|
|
|
26189
26220
|
PaginationButtonsComponent,
|
|
26190
26221
|
MaxLinesComponent,
|
|
26191
26222
|
RecordApiFormComponent,
|
|
26192
|
-
MarkdownParserComponent,
|
|
26193
26223
|
ImageOverlayPreviewComponent,
|
|
26194
26224
|
],
|
|
26195
26225
|
exports: [
|
|
@@ -26873,6 +26903,9 @@ const getFavoritesOnly = createSelector(getSearchStateSearch, (state) => state.p
|
|
|
26873
26903
|
const getError = createSelector(getSearchStateSearch, (state) => state.error);
|
|
26874
26904
|
const getSpatialFilterEnabled = createSelector(getSearchStateSearch, (state) => state.params.useSpatialFilter);
|
|
26875
26905
|
|
|
26906
|
+
// this geometry will be used to filter & boost results accordingly
|
|
26907
|
+
const FILTER_GEOMETRY = new InjectionToken('filter-geometry');
|
|
26908
|
+
|
|
26876
26909
|
class SearchFacade {
|
|
26877
26910
|
constructor(store, filterGeometry) {
|
|
26878
26911
|
this.store = store;
|
|
@@ -26977,6 +27010,7 @@ class SearchFacade {
|
|
|
26977
27010
|
this.store.dispatch(new SetFilters({}, this.searchId));
|
|
26978
27011
|
this.store.dispatch(new SetSortBy([], this.searchId));
|
|
26979
27012
|
this.store.dispatch(new SetFavoritesOnly(false, this.searchId));
|
|
27013
|
+
return this;
|
|
26980
27014
|
}
|
|
26981
27015
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SearchFacade, deps: [{ token: i1$2.Store }, { token: FILTER_GEOMETRY, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
26982
27016
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SearchFacade }); }
|
|
@@ -27361,8 +27395,11 @@ class FuzzySearchComponent {
|
|
|
27361
27395
|
this.searchService.updateFilters({ any });
|
|
27362
27396
|
}
|
|
27363
27397
|
}
|
|
27364
|
-
handleInputCleared() {
|
|
27365
|
-
this.
|
|
27398
|
+
async handleInputCleared() {
|
|
27399
|
+
const currentSearchFilters = await firstValueFrom(this.searchFacade.searchFilters$);
|
|
27400
|
+
if (currentSearchFilters.any) {
|
|
27401
|
+
this.searchService.updateFilters({ any: '' });
|
|
27402
|
+
}
|
|
27366
27403
|
}
|
|
27367
27404
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: FuzzySearchComponent, deps: [{ token: SearchFacade }, { token: SearchService }, { token: RecordsRepositoryInterface }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27368
27405
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: FuzzySearchComponent, selector: "gn-ui-fuzzy-search", inputs: { autoFocus: "autoFocus" }, outputs: { itemSelected: "itemSelected", inputSubmitted: "inputSubmitted" }, viewQueries: [{ propertyName: "autocomplete", first: true, predicate: AutocompleteComponent, descendants: true }], ngImport: i0, template: "<gn-ui-autocomplete\n [placeholder]=\"'search.field.any.placeholder' | translate\"\n [displayWithFn]=\"displayWithFn\"\n [action]=\"autoCompleteAction\"\n (itemSelected)=\"handleItemSelection($event)\"\n (inputSubmitted)=\"handleInputSubmission($event)\"\n (inputCleared)=\"handleInputCleared()\"\n [value]=\"searchInputValue$ | async\"\n [clearOnSelection]=\"true\"\n [autoFocus]=\"autoFocus\"\n></gn-ui-autocomplete>\n", styles: [""], dependencies: [{ kind: "component", type: AutocompleteComponent, selector: "gn-ui-autocomplete", inputs: ["placeholder", "action", "value", "clearOnSelection", "autoFocus", "displayWithFn"], outputs: ["itemSelected", "inputSubmitted", "inputCleared"] }, { kind: "pipe", type: i1$3.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
@@ -27442,6 +27479,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
|
|
|
27442
27479
|
args: [RESULTS_LAYOUT_CONFIG]
|
|
27443
27480
|
}] }]; } });
|
|
27444
27481
|
|
|
27482
|
+
// expects the replacement key ${uuid}
|
|
27483
|
+
const RECORD_URL_TOKEN = new InjectionToken('record-url-token');
|
|
27484
|
+
|
|
27445
27485
|
class FavoriteStarComponent {
|
|
27446
27486
|
set record(value) {
|
|
27447
27487
|
this.record_ = value;
|
|
@@ -27525,11 +27565,11 @@ class FavoriteStarComponent {
|
|
|
27525
27565
|
});
|
|
27526
27566
|
}
|
|
27527
27567
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: FavoriteStarComponent, deps: [{ token: FavoritesService }, { token: PlatformServiceInterface }, { token: i0.ChangeDetectorRef }, { token: AuthService }, { token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27528
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: FavoriteStarComponent, selector: "gn-ui-favorite-star", inputs: { displayCount: "displayCount", record: "record" }, viewQueries: [{ propertyName: "starToggleRef", first: true, predicate: StarToggleComponent, descendants: true, read: ElementRef }], ngImport: i0, template: "<div class=\"flex flex-row
|
|
27568
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: FavoriteStarComponent, selector: "gn-ui-favorite-star", inputs: { displayCount: "displayCount", record: "record" }, viewQueries: [{ propertyName: "starToggleRef", first: true, predicate: StarToggleComponent, descendants: true, read: ElementRef }], ngImport: i0, template: "<div class=\"flex flex-row items-center\">\n <span\n class=\"align-text-top mr-1.5 favorite-count\"\n *ngIf=\"hasFavoriteCount && displayCount\"\n >{{ favoriteCount }}</span\n >\n <gn-ui-star-toggle\n [toggled]=\"isFavorite$ | async\"\n (newValue)=\"toggleFavorite($event)\"\n [disabled]=\"loading || (isAnonymous$ | async)\"\n ></gn-ui-star-toggle>\n <span\n class=\"align-text-top ml-1.5 favorite-count\"\n *ngIf=\"!displayCount\"\n translate=\"datahub.record.addToFavorites\"\n ></span>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: StarToggleComponent, selector: "gn-ui-star-toggle", inputs: ["toggled", "disabled"], outputs: ["newValue"] }, { kind: "pipe", type: i1$3.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
27529
27569
|
}
|
|
27530
27570
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: FavoriteStarComponent, decorators: [{
|
|
27531
27571
|
type: Component,
|
|
27532
|
-
args: [{ selector: 'gn-ui-favorite-star', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"flex flex-row
|
|
27572
|
+
args: [{ selector: 'gn-ui-favorite-star', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"flex flex-row items-center\">\n <span\n class=\"align-text-top mr-1.5 favorite-count\"\n *ngIf=\"hasFavoriteCount && displayCount\"\n >{{ favoriteCount }}</span\n >\n <gn-ui-star-toggle\n [toggled]=\"isFavorite$ | async\"\n (newValue)=\"toggleFavorite($event)\"\n [disabled]=\"loading || (isAnonymous$ | async)\"\n ></gn-ui-star-toggle>\n <span\n class=\"align-text-top ml-1.5 favorite-count\"\n *ngIf=\"!displayCount\"\n translate=\"datahub.record.addToFavorites\"\n ></span>\n</div>\n" }]
|
|
27533
27573
|
}], ctorParameters: function () { return [{ type: FavoritesService }, { type: PlatformServiceInterface }, { type: i0.ChangeDetectorRef }, { type: AuthService }, { type: i1$1.TranslateService }]; }, propDecorators: { displayCount: [{
|
|
27534
27574
|
type: Input
|
|
27535
27575
|
}], record: [{
|
|
@@ -27818,10 +27858,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
|
|
|
27818
27858
|
class AbstractSearchField {
|
|
27819
27859
|
}
|
|
27820
27860
|
class SimpleSearchField {
|
|
27821
|
-
constructor(esFieldName, order = 'asc',
|
|
27861
|
+
constructor(esFieldName, injector, order = 'asc', orderType = 'key') {
|
|
27822
27862
|
this.esFieldName = esFieldName;
|
|
27823
|
-
this.order = order;
|
|
27824
27863
|
this.injector = injector;
|
|
27864
|
+
this.order = order;
|
|
27865
|
+
this.orderType = orderType;
|
|
27825
27866
|
this.repository = this.injector.get(RecordsRepositoryInterface);
|
|
27826
27867
|
// FIXME: this is required to register runtime fields; abstract this as well
|
|
27827
27868
|
this.esService = this.injector.get(ElasticsearchService);
|
|
@@ -27832,12 +27873,12 @@ class SimpleSearchField {
|
|
|
27832
27873
|
type: 'terms',
|
|
27833
27874
|
field: this.esFieldName,
|
|
27834
27875
|
limit: 1000,
|
|
27835
|
-
sort: [this.order,
|
|
27876
|
+
sort: [this.order, this.orderType],
|
|
27836
27877
|
},
|
|
27837
27878
|
};
|
|
27838
27879
|
}
|
|
27839
27880
|
async getBucketLabel(bucket) {
|
|
27840
|
-
return bucket.term;
|
|
27881
|
+
return bucket.term.toString();
|
|
27841
27882
|
}
|
|
27842
27883
|
getAvailableValues() {
|
|
27843
27884
|
return this.repository.aggregate(this.getAggregations()).pipe(map$1((response) => response[this.esFieldName].buckets || []), switchMap((buckets) => {
|
|
@@ -27865,9 +27906,13 @@ class SimpleSearchField {
|
|
|
27865
27906
|
return of(values);
|
|
27866
27907
|
}
|
|
27867
27908
|
}
|
|
27868
|
-
class
|
|
27869
|
-
constructor() {
|
|
27870
|
-
super(
|
|
27909
|
+
class TranslatedSearchField extends SimpleSearchField {
|
|
27910
|
+
constructor(esFieldName, injector, order = 'asc', orderType = 'key') {
|
|
27911
|
+
super(esFieldName, injector, order, orderType);
|
|
27912
|
+
this.esFieldName = esFieldName;
|
|
27913
|
+
this.injector = injector;
|
|
27914
|
+
this.order = order;
|
|
27915
|
+
this.orderType = orderType;
|
|
27871
27916
|
this.platformService = this.injector.get(PlatformServiceInterface);
|
|
27872
27917
|
}
|
|
27873
27918
|
async getTranslation(key) {
|
|
@@ -27877,26 +27922,36 @@ class KeySearchField extends SimpleSearchField {
|
|
|
27877
27922
|
return (await this.getTranslation(bucket.term)) || bucket.term;
|
|
27878
27923
|
}
|
|
27879
27924
|
getAvailableValues() {
|
|
27925
|
+
if (this.orderType === 'count')
|
|
27926
|
+
return super.getAvailableValues();
|
|
27880
27927
|
// sort values by alphabetical order
|
|
27881
27928
|
return super
|
|
27882
27929
|
.getAvailableValues()
|
|
27883
27930
|
.pipe(map$1((values) => values.sort((a, b) => new Intl.Collator().compare(a.label, b.label))));
|
|
27884
27931
|
}
|
|
27885
27932
|
}
|
|
27886
|
-
|
|
27887
|
-
|
|
27888
|
-
|
|
27889
|
-
|
|
27933
|
+
/**
|
|
27934
|
+
* This search field will either target the `.default` field, or a specific `.langxyz` field according
|
|
27935
|
+
* to the defined METADATA_LANGUAGE token
|
|
27936
|
+
* The provided ES field name should not include any prefix such as `.langeng`
|
|
27937
|
+
*/
|
|
27938
|
+
class MultilingualSearchField extends SimpleSearchField {
|
|
27939
|
+
constructor(esFieldName, injector, order = 'asc', orderType = 'key') {
|
|
27940
|
+
super(esFieldName, injector, order, orderType);
|
|
27941
|
+
this.esFieldName = esFieldName;
|
|
27942
|
+
this.injector = injector;
|
|
27943
|
+
this.order = order;
|
|
27944
|
+
this.orderType = orderType;
|
|
27890
27945
|
this.langService = this.injector.get(LangService);
|
|
27891
|
-
this.
|
|
27892
|
-
|
|
27893
|
-
|
|
27894
|
-
|
|
27895
|
-
|
|
27896
|
-
}
|
|
27897
|
-
|
|
27898
|
-
|
|
27899
|
-
|
|
27946
|
+
this.searchLanguage = this.injector.get(METADATA_LANGUAGE, null);
|
|
27947
|
+
// note: we're excluding the metadata language "current" value because that would produce
|
|
27948
|
+
// permalinks that might not work for different users
|
|
27949
|
+
if (this.searchLanguage && this.searchLanguage !== 'current') {
|
|
27950
|
+
this.esFieldName += `.lang${this.searchLanguage}`;
|
|
27951
|
+
}
|
|
27952
|
+
else {
|
|
27953
|
+
this.esFieldName += '.default';
|
|
27954
|
+
}
|
|
27900
27955
|
}
|
|
27901
27956
|
}
|
|
27902
27957
|
class FullTextSearchField {
|
|
@@ -27916,7 +27971,7 @@ marker('search.filters.isSpatial.yes');
|
|
|
27916
27971
|
marker('search.filters.isSpatial.no');
|
|
27917
27972
|
class IsSpatialSearchField extends SimpleSearchField {
|
|
27918
27973
|
constructor(injector) {
|
|
27919
|
-
super('isSpatial', 'asc'
|
|
27974
|
+
super('isSpatial', injector, 'asc');
|
|
27920
27975
|
this.translateService = this.injector.get(TranslateService);
|
|
27921
27976
|
this.esService.registerRuntimeField('isSpatial', `String result = 'no';
|
|
27922
27977
|
String formats = doc.format.join('|').toLowerCase();
|
|
@@ -27966,7 +28021,7 @@ marker('search.filters.license.unknown');
|
|
|
27966
28021
|
// Note: values are inspired from https://doc.data.gouv.fr/moissonnage/licences/
|
|
27967
28022
|
class LicenseSearchField extends SimpleSearchField {
|
|
27968
28023
|
constructor(injector) {
|
|
27969
|
-
super('license', 'asc'
|
|
28024
|
+
super('license', injector, 'asc');
|
|
27970
28025
|
this.translateService = this.injector.get(TranslateService);
|
|
27971
28026
|
this.esService.registerRuntimeField('license', `String raw = '';
|
|
27972
28027
|
if (doc.containsKey('licenseObject.default.keyword') && doc['licenseObject.default.keyword'].length > 0)
|
|
@@ -28050,7 +28105,7 @@ class OrganizationSearchField {
|
|
|
28050
28105
|
}
|
|
28051
28106
|
class OwnerSearchField extends SimpleSearchField {
|
|
28052
28107
|
constructor(injector) {
|
|
28053
|
-
super('owner', 'asc'
|
|
28108
|
+
super('owner', injector, 'asc');
|
|
28054
28109
|
}
|
|
28055
28110
|
getAvailableValues() {
|
|
28056
28111
|
return of([]);
|
|
@@ -28059,6 +28114,7 @@ class OwnerSearchField extends SimpleSearchField {
|
|
|
28059
28114
|
|
|
28060
28115
|
marker('search.filters.format');
|
|
28061
28116
|
marker('search.filters.inspireKeyword');
|
|
28117
|
+
marker('search.filters.keyword');
|
|
28062
28118
|
marker('search.filters.isSpatial');
|
|
28063
28119
|
marker('search.filters.license');
|
|
28064
28120
|
marker('search.filters.publicationYear');
|
|
@@ -28076,13 +28132,14 @@ class FieldsService {
|
|
|
28076
28132
|
this.injector = injector;
|
|
28077
28133
|
this.fields = {
|
|
28078
28134
|
publisher: new OrganizationSearchField(this.injector),
|
|
28079
|
-
format: new SimpleSearchField('format', 'asc'
|
|
28080
|
-
resourceType: new
|
|
28081
|
-
representationType: new
|
|
28082
|
-
publicationYear: new SimpleSearchField('publicationYearForResource', 'desc'
|
|
28083
|
-
topic: new
|
|
28084
|
-
inspireKeyword: new
|
|
28085
|
-
|
|
28135
|
+
format: new SimpleSearchField('format', this.injector, 'asc'),
|
|
28136
|
+
resourceType: new TranslatedSearchField('resourceType', this.injector, 'asc'),
|
|
28137
|
+
representationType: new TranslatedSearchField('cl_spatialRepresentationType.key', this.injector, 'asc'),
|
|
28138
|
+
publicationYear: new SimpleSearchField('publicationYearForResource', this.injector, 'desc'),
|
|
28139
|
+
topic: new TranslatedSearchField('cl_topic.key', this.injector, 'asc'),
|
|
28140
|
+
inspireKeyword: new TranslatedSearchField('th_httpinspireeceuropaeutheme-theme.link', this.injector, 'asc'),
|
|
28141
|
+
keyword: new MultilingualSearchField('tag', this.injector, 'desc', 'count'),
|
|
28142
|
+
documentStandard: new SimpleSearchField('documentStandard', this.injector, 'asc'),
|
|
28086
28143
|
isSpatial: new IsSpatialSearchField(this.injector),
|
|
28087
28144
|
q: new FullTextSearchField(),
|
|
28088
28145
|
license: new LicenseSearchField(this.injector),
|
|
@@ -28156,10 +28213,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
|
|
|
28156
28213
|
type: Input
|
|
28157
28214
|
}] } });
|
|
28158
28215
|
|
|
28159
|
-
// this geometry will be used to filter & boost results accordingly
|
|
28160
|
-
const FILTER_GEOMETRY = new InjectionToken('filter-geometry');
|
|
28161
|
-
// expects the replacement key ${uuid}
|
|
28162
|
-
const RECORD_URL_TOKEN = new InjectionToken('record-url-token');
|
|
28163
28216
|
class FeatureSearchModule {
|
|
28164
28217
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: FeatureSearchModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
28165
28218
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.7", ngImport: i0, type: FeatureSearchModule, declarations: [SortByComponent,
|
|
@@ -28265,7 +28318,6 @@ class ResultsTableComponent {
|
|
|
28265
28318
|
this.selectionService = selectionService;
|
|
28266
28319
|
this.recordClick = new EventEmitter();
|
|
28267
28320
|
this.records$ = this.searchFacade.results$;
|
|
28268
|
-
this.recordCount$ = this.searchFacade.resultsHits$;
|
|
28269
28321
|
this.selectedRecords$ = this.selectionService.selectedRecordsIdentifiers$;
|
|
28270
28322
|
}
|
|
28271
28323
|
dateToString(date) {
|
|
@@ -28351,7 +28403,7 @@ class ResultsTableComponent {
|
|
|
28351
28403
|
}));
|
|
28352
28404
|
}
|
|
28353
28405
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: ResultsTableComponent, deps: [{ token: SearchFacade }, { token: SearchService }, { token: SelectionService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
28354
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: ResultsTableComponent, isStandalone: true, selector: "gn-ui-results-table", outputs: { recordClick: "recordClick" }, ngImport: i0, template: "<
|
|
28406
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: ResultsTableComponent, isStandalone: true, selector: "gn-ui-results-table", outputs: { recordClick: "recordClick" }, ngImport: i0, template: "<gn-ui-interactive-table\n [items]=\"records$ | async\"\n (itemClick)=\"handleRecordClick($event)\"\n>\n <!-- SELECTED COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header>\n <gn-ui-checkbox\n [checked]=\"isAllSelected() | async\"\n [indeterminate]=\"isSomeSelected() | async\"\n (changed)=\"toggleSelectAll()\"\n type=\"default\"\n class=\"-m-2 mr-3\"\n >\n </gn-ui-checkbox>\n </ng-template>\n <ng-template #cell let-item>\n <gn-ui-checkbox\n [checked]=\"isChecked(item) | async\"\n (changed)=\"handleRecordSelectedChange($event, item)\"\n class=\"-m-2\"\n type=\"default\"\n ></gn-ui-checkbox>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- TITLE COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('resourceTitleObject.default.keyword') | async\"\n (sortChange)=\"setSortBy('resourceTitleObject.default.keyword', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.title</span>\n </ng-template>\n <ng-template #cell let-item>\n {{ item.title }}\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- FORMATS COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header>\n <span translate>record.metadata.formats</span>\n </ng-template>\n <ng-template #cell let-item>\n <div\n class=\"flex justify-start items-center gap-2\"\n *ngIf=\"getRecordFormats(item) as formats\"\n [title]=\"formats.join(', ')\"\n >\n <span\n class=\"badge-btn min-w-[45px] text-sm text-white px-2 flex-shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[0])\"\n *ngIf=\"formats[0]\"\n >\n {{ formats[0] }}\n </span>\n <span\n class=\"badge-btn min-w-[45px] text-sm text-white px-2 flex-shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[1])\"\n *ngIf=\"formats[1]\"\n >\n {{ formats[1] }}\n </span>\n <div class=\"flex-shrink-0\" *ngIf=\"formats.slice(2).length > 0\">\n <span>+{{ formats.slice(2).length }}</span>\n </div>\n </div>\n <div *ngIf=\"!getRecordFormats(item)\"></div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- OWNER COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('recordOwner') | async\"\n (sortChange)=\"setSortBy('recordOwner', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.author</span>\n </ng-template>\n <ng-template #cell let-item>\n <mat-icon class=\"material-symbols-outlined\">person</mat-icon>\n <span>{{ formatUserInfo(item.extras?.ownerInfo) }}</span>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- STATUS COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header>\n <span translate>record.metadata.status</span>\n </ng-template>\n <ng-template #cell let-item>\n {{ item.status }}\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- UPDATE DATE COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('changeDate') | async\"\n (sortChange)=\"setSortBy('changeDate', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.updatedOn</span>\n </ng-template>\n <ng-template #cell let-item>\n {{ dateToString(item.recordUpdated) }}\n </ng-template>\n </gn-ui-interactive-table-column>\n</gn-ui-interactive-table>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$3.AsyncPipe, name: "async" }, { kind: "ngmodule", type: UiInputsModule }, { kind: "component", type: CheckboxComponent, selector: "gn-ui-checkbox", inputs: ["type", "checked", "indeterminate"], outputs: ["changed"] }, { kind: "component", type: InteractiveTableComponent, selector: "gn-ui-interactive-table", inputs: ["items"], outputs: ["itemClick"] }, { kind: "component", type: InteractiveTableColumnComponent, selector: "gn-ui-interactive-table-column", inputs: ["grow", "sortable", "activeSort"], outputs: ["sortChange"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }] }); }
|
|
28355
28407
|
}
|
|
28356
28408
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: ResultsTableComponent, decorators: [{
|
|
28357
28409
|
type: Component,
|
|
@@ -28362,7 +28414,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
|
|
|
28362
28414
|
InteractiveTableColumnComponent,
|
|
28363
28415
|
MatIconModule,
|
|
28364
28416
|
TranslateModule,
|
|
28365
|
-
], template: "<
|
|
28417
|
+
], template: "<gn-ui-interactive-table\n [items]=\"records$ | async\"\n (itemClick)=\"handleRecordClick($event)\"\n>\n <!-- SELECTED COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header>\n <gn-ui-checkbox\n [checked]=\"isAllSelected() | async\"\n [indeterminate]=\"isSomeSelected() | async\"\n (changed)=\"toggleSelectAll()\"\n type=\"default\"\n class=\"-m-2 mr-3\"\n >\n </gn-ui-checkbox>\n </ng-template>\n <ng-template #cell let-item>\n <gn-ui-checkbox\n [checked]=\"isChecked(item) | async\"\n (changed)=\"handleRecordSelectedChange($event, item)\"\n class=\"-m-2\"\n type=\"default\"\n ></gn-ui-checkbox>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- TITLE COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('resourceTitleObject.default.keyword') | async\"\n (sortChange)=\"setSortBy('resourceTitleObject.default.keyword', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.title</span>\n </ng-template>\n <ng-template #cell let-item>\n {{ item.title }}\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- FORMATS COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header>\n <span translate>record.metadata.formats</span>\n </ng-template>\n <ng-template #cell let-item>\n <div\n class=\"flex justify-start items-center gap-2\"\n *ngIf=\"getRecordFormats(item) as formats\"\n [title]=\"formats.join(', ')\"\n >\n <span\n class=\"badge-btn min-w-[45px] text-sm text-white px-2 flex-shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[0])\"\n *ngIf=\"formats[0]\"\n >\n {{ formats[0] }}\n </span>\n <span\n class=\"badge-btn min-w-[45px] text-sm text-white px-2 flex-shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[1])\"\n *ngIf=\"formats[1]\"\n >\n {{ formats[1] }}\n </span>\n <div class=\"flex-shrink-0\" *ngIf=\"formats.slice(2).length > 0\">\n <span>+{{ formats.slice(2).length }}</span>\n </div>\n </div>\n <div *ngIf=\"!getRecordFormats(item)\"></div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- OWNER COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('recordOwner') | async\"\n (sortChange)=\"setSortBy('recordOwner', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.author</span>\n </ng-template>\n <ng-template #cell let-item>\n <mat-icon class=\"material-symbols-outlined\">person</mat-icon>\n <span>{{ formatUserInfo(item.extras?.ownerInfo) }}</span>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- STATUS COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header>\n <span translate>record.metadata.status</span>\n </ng-template>\n <ng-template #cell let-item>\n {{ item.status }}\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- UPDATE DATE COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('changeDate') | async\"\n (sortChange)=\"setSortBy('changeDate', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.updatedOn</span>\n </ng-template>\n <ng-template #cell let-item>\n {{ dateToString(item.recordUpdated) }}\n </ng-template>\n </gn-ui-interactive-table-column>\n</gn-ui-interactive-table>\n" }]
|
|
28366
28418
|
}], ctorParameters: function () { return [{ type: SearchFacade }, { type: SearchService }, { type: SelectionService }]; }, propDecorators: { recordClick: [{
|
|
28367
28419
|
type: Output
|
|
28368
28420
|
}] } });
|
|
@@ -28994,7 +29046,7 @@ const mdViewReducer = createReducer(initialMdviewState, on(loadFullMetadata, (st
|
|
|
28994
29046
|
...state,
|
|
28995
29047
|
chartConfig,
|
|
28996
29048
|
})), on(close, (state) => {
|
|
28997
|
-
// eslint-disable-next-line
|
|
29049
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
28998
29050
|
const { metadata, related, ...stateWithoutMd } = state;
|
|
28999
29051
|
return stateWithoutMd;
|
|
29000
29052
|
}));
|
|
@@ -30948,11 +31000,11 @@ class LanguageSwitcherComponent {
|
|
|
30948
31000
|
this.translate.use(value);
|
|
30949
31001
|
}
|
|
30950
31002
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: LanguageSwitcherComponent, deps: [{ token: LANGUAGES_LIST, optional: true }, { token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
30951
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: LanguageSwitcherComponent, selector: "gn-ui-language-switcher", ngImport: i0, template: "<gn-ui-dropdown-selector\n [title]=\"'languages'\"\n [choices]=\"languageList\"\n (selectValue)=\"changeLanguage($event)\"\n [selected]=\"currentLang\"\n ariaName=\"languages\"\n [showTitle]=\"false\"\n [extraBtnClass]=\"'flex justify-items-center
|
|
31003
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: LanguageSwitcherComponent, selector: "gn-ui-language-switcher", ngImport: i0, template: "<gn-ui-dropdown-selector\n [title]=\"'languages'\"\n [choices]=\"languageList\"\n (selectValue)=\"changeLanguage($event)\"\n [selected]=\"currentLang\"\n ariaName=\"languages\"\n [showTitle]=\"false\"\n [extraBtnClass]=\"'flex justify-items-center !pl-2 !py-1'\"\n>\n</gn-ui-dropdown-selector>\n", styles: [""], dependencies: [{ kind: "component", type: DropdownSelectorComponent, selector: "gn-ui-dropdown-selector", inputs: ["title", "showTitle", "ariaName", "choices", "selected", "maxRows", "extraBtnClass", "minWidth"], outputs: ["selectValue"] }] }); }
|
|
30952
31004
|
}
|
|
30953
31005
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: LanguageSwitcherComponent, decorators: [{
|
|
30954
31006
|
type: Component,
|
|
30955
|
-
args: [{ selector: 'gn-ui-language-switcher', template: "<gn-ui-dropdown-selector\n [title]=\"'languages'\"\n [choices]=\"languageList\"\n (selectValue)=\"changeLanguage($event)\"\n [selected]=\"currentLang\"\n ariaName=\"languages\"\n [showTitle]=\"false\"\n [extraBtnClass]=\"'flex justify-items-center
|
|
31007
|
+
args: [{ selector: 'gn-ui-language-switcher', template: "<gn-ui-dropdown-selector\n [title]=\"'languages'\"\n [choices]=\"languageList\"\n (selectValue)=\"changeLanguage($event)\"\n [selected]=\"currentLang\"\n ariaName=\"languages\"\n [showTitle]=\"false\"\n [extraBtnClass]=\"'flex justify-items-center !pl-2 !py-1'\"\n>\n</gn-ui-dropdown-selector>\n" }]
|
|
30956
31008
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
30957
31009
|
type: Optional
|
|
30958
31010
|
}, {
|
|
@@ -32316,5 +32368,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
|
|
|
32316
32368
|
* Generated bundle index. Do not edit.
|
|
32317
32369
|
*/
|
|
32318
32370
|
|
|
32319
|
-
export { ADD_RESULTS, ADD_SEARCH, AbstractAction, AddLayerFromCatalogComponent, AddLayerRecordPreviewComponent, AddResults, AddSearch, AnchorLinkDirective, ApiCardComponent, AuthService, AutocompleteComponent, AvatarComponent, AvatarServiceInterface, BLOCK_MODEL_FIXTURE, BadgeComponent, BaseReader, ButtonComponent, CLEAR_ERROR, CLEAR_RESULTS, CONFIG_MALFORMED, CONFIG_MINIMAL, CONFIG_MISSING_MANDATORY, CONFIG_OK, CONFIG_UNRECOGNIZED_KEYS, CONFIG_WITH_TRANSLATIONS, CONFIG_WRONG_LANGUAGE_CODE, CarouselComponent, CatalogTitleComponent, ChartComponent, ChartViewComponent, CheckToggleComponent, CheckboxComponent, ChipsInputComponent, ClearError, ClearResults, ColorScaleComponent, ContentGhostComponent, CopyTextButtonComponent, DEFAULT_BASELAYER_CONTEXT, DEFAULT_GN4_LOGIN_URL, DEFAULT_LANG, DEFAULT_PAGE_SIZE, DEFAULT_RESULTS_LAYOUT_CONFIG, DEFAULT_SEARCH_KEY, DEFAULT_STYLE_FIXTURE, DEFAULT_STYLE_HL_FIXTURE, DEFAULT_VIEW, DataService, DataViewComponent, DataViewPermalinkComponent, DataViewShareComponent, DataViewWebComponentComponent, DateRangePickerComponent, DefaultRouterModule, DownloadItemComponent, DownloadsListComponent, DragAndDropFileInputComponent, DropdownMultiselectComponent, DropdownSelectorComponent, EMPTY_BLOCK_MODEL_FIXTURE, ES_QUERY_FIELDS_PRIORITY, ES_RESOURCES_VALUES, ES_SOURCE_SUMMARY, EditableLabelDirective, EditorService, ElasticsearchService, EmbeddedTranslateLoader, ErrorType, ExpandablePanelButtonComponent, ExpandablePanelComponent, ExternalViewerButtonComponent, FACET_ITEM_FIXTURE, FEATURE_MAP_OPTIONS, FIELDS_BRIEF, FIELDS_SUMMARY, FILTER_GEOMETRY, FORMATS, FacetBlockComponent, FacetBlockStubComponent, FacetItemComponent, FacetItemStubComponent, FacetListComponent, FacetsContainerComponent, FacetsModule, FavoriteStarComponent, FavoritesService, FeatureAuthModule, FeatureCatalogModule, FeatureDatavizModule, FeatureDetailComponent, FeatureEditorModule, FeatureInfoService, FeatureMapModule, FeatureRecordModule, FeatureSearchModule, FetchError, FieldsService, FigureComponent, FigureContainerComponent, FileTranslateLoader, FilterDropdownComponent, FormFieldArrayComponent, FormFieldComponent, FormFieldFileComponent, FormFieldObjectComponent, FormFieldRichComponent, FormFieldSimpleComponent, FormFieldSpatialExtentComponent, FormFieldTemporalExtentComponent, FuzzySearchComponent, GN_UI_VERSION, GeoTableViewComponent, GeocodingComponent, Gn4MetadataMapper, Gn4PlatformMapper, Gn4PlatformService, Gn4Repository, Gn4SettingsService, GravatarService, HttpLoaderFactory, I18nInterceptor, ImageFallbackDirective, ImageOverlayPreviewComponent, InteractiveTableColumnComponent, InteractiveTableComponent, LANGUAGES_LIST, LANGUAGE_STORAGE_KEY, LANG_2_TO_3_MAPPER, LANG_3_TO_2_MAPPER, LOGIN_URL, LONLAT_CRS_CODES, LangService, LanguageSwitcherComponent, LayersPanelComponent, LinkCardComponent, LinkClassifierService, LinkUsage, LoadingMaskComponent, LogService, MAP_CONFIG_FIXTURE, MAP_FEATURE_KEY, METADATA_LANGUAGE, MY_FORMATS, MapComponent, MapContainerComponent, MapContextComponent, MapContextLayerTypeEnum, MapContextService, MapFacade, MapInstanceDirective, MapManagerService, MapStyleService, MapUtilsService, MapViewComponent, MarkdownParserComponent, MaxLinesComponent, mdview_actions as MdViewActions, MdViewFacade, MetadataCatalogComponent, MetadataContactComponent, MetadataInfoComponent, MetadataLinkType, MetadataQualityComponent, MetadataQualityItemComponent, MyOrgService, NavigationButtonComponent, ORGANIZATIONS_STRATEGY, ORGANIZATION_URL_TOKEN, OrganisationPreviewComponent, OrganisationsComponent, OrganisationsFilterComponent, OrganisationsResultComponent, OrganizationsFromGroupsService, OrganizationsFromMetadataService, PAGINATE, PARSE_DELIMITER, PATCH_RESULTS_AGGREGATIONS, PROXY_PATH, Paginate, PaginationButtonsComponent, PaginationComponent, PatchResultsAggregations, PopupAlertComponent, ProgressBarComponent, ProxyService, QUERY_FIELDS, RECORD_URL_TOKEN, REQUEST_MORE_ON_AGGREGATION, REQUEST_MORE_RESULTS, REQUEST_NEW_RESULTS, RESULTS_LAYOUT_CONFIG, ROUTER_ROUTE_DATASET, ROUTER_ROUTE_SEARCH, ROUTER_STATE_KEY, ROUTE_PARAMS, RecordApiFormComponent, RecordFormComponent, RecordMetricComponent, RecordPreviewCardComponent, RecordPreviewComponent, RecordPreviewFeedComponent, RecordPreviewListComponent, RecordPreviewRowComponent, RecordPreviewTextComponent, RecordPreviewTitleComponent, RecordsMetricsComponent, RecordsService, RelatedRecordCardComponent, RequestMoreOnAggregation, RequestMoreResults, RequestNewResults, ResultsHitsContainerComponent, ResultsHitsNumberComponent, ResultsLayoutComponent, ResultsLayoutConfigItem, ResultsListComponent, ResultsListContainerComponent, ResultsListItemComponent, ResultsTableComponent, RouterEffects, RouterFacade, RouterService, SEARCH_FEATURE_KEY, 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, SearchInputComponent, SearchResultsErrorComponent, SearchRouterContainerDirective, SearchService, SearchStateContainerDirective, SelectionService, SetConfigAggregations, SetConfigFilters, SetConfigRequestFields, SetError, SetFavoritesOnly, SetFilters, SetIncludeOnAggregation, SetPageSize, SetResultsAggregations, SetResultsHits, SetResultsLayout, SetSearch, SetSortBy, SetSpatialFilterEnabled, SiteTitleComponent, SortByComponent, SourceLabelComponent, SourcesService, SpinningLoaderComponent, StarToggleComponent, StepBarComponent, StickyHeaderComponent, SupportedTypes, TABLE_ITEM_FIXTURE, TABLE_ITEM_FIXTURE_HAB, THUMBNAIL_PLACEHOLDER, TRANSLATE_DEFAULT_CONFIG, TRANSLATE_WITH_OVERRIDES_CONFIG, TableComponent, TableViewComponent, TextAreaComponent, TextInputComponent, ThemeService, ThumbnailComponent,
|
|
32371
|
+
export { ADD_RESULTS, ADD_SEARCH, AbstractAction, AddLayerFromCatalogComponent, AddLayerRecordPreviewComponent, AddResults, AddSearch, AnchorLinkDirective, ApiCardComponent, AuthService, AutocompleteComponent, AvatarComponent, AvatarServiceInterface, BLOCK_MODEL_FIXTURE, BadgeComponent, BaseReader, ButtonComponent, CLEAR_ERROR, CLEAR_RESULTS, CONFIG_MALFORMED, CONFIG_MINIMAL, CONFIG_MISSING_MANDATORY, CONFIG_OK, CONFIG_UNRECOGNIZED_KEYS, CONFIG_WITH_TRANSLATIONS, CONFIG_WRONG_LANGUAGE_CODE, CarouselComponent, CatalogTitleComponent, ChartComponent, ChartViewComponent, CheckToggleComponent, CheckboxComponent, ChipsInputComponent, ClearError, ClearResults, ColorScaleComponent, ContentGhostComponent, CopyTextButtonComponent, DEFAULT_BASELAYER_CONTEXT, DEFAULT_GN4_LOGIN_URL, DEFAULT_LANG, DEFAULT_PAGE_SIZE, DEFAULT_RESULTS_LAYOUT_CONFIG, DEFAULT_SEARCH_KEY, DEFAULT_STYLE_FIXTURE, DEFAULT_STYLE_HL_FIXTURE, DEFAULT_VIEW, DataService, DataViewComponent, DataViewPermalinkComponent, DataViewShareComponent, DataViewWebComponentComponent, DateRangePickerComponent, DefaultRouterModule, DownloadItemComponent, DownloadsListComponent, DragAndDropFileInputComponent, DropdownMultiselectComponent, DropdownSelectorComponent, EMPTY_BLOCK_MODEL_FIXTURE, ES_QUERY_FIELDS_PRIORITY, ES_RESOURCES_VALUES, ES_SOURCE_SUMMARY, EditableLabelDirective, EditorService, ElasticsearchService, EmbeddedTranslateLoader, ErrorType, ExpandablePanelButtonComponent, ExpandablePanelComponent, ExternalViewerButtonComponent, FACET_ITEM_FIXTURE, FEATURE_MAP_OPTIONS, FIELDS_BRIEF, FIELDS_SUMMARY, FILTER_GEOMETRY, FORMATS, FacetBlockComponent, FacetBlockStubComponent, FacetItemComponent, FacetItemStubComponent, FacetListComponent, FacetsContainerComponent, FacetsModule, FavoriteStarComponent, FavoritesService, FeatureAuthModule, FeatureCatalogModule, FeatureDatavizModule, FeatureDetailComponent, FeatureEditorModule, FeatureInfoService, FeatureMapModule, FeatureRecordModule, FeatureSearchModule, FetchError, FieldsService, FigureComponent, FigureContainerComponent, FileTranslateLoader, FilterDropdownComponent, FormFieldArrayComponent, FormFieldComponent, FormFieldFileComponent, FormFieldObjectComponent, FormFieldRichComponent, FormFieldSimpleComponent, FormFieldSpatialExtentComponent, FormFieldTemporalExtentComponent, FuzzySearchComponent, GN_UI_VERSION, GeoTableViewComponent, GeocodingComponent, Gn4MetadataMapper, Gn4PlatformMapper, Gn4PlatformService, Gn4Repository, Gn4SettingsService, GravatarService, HttpLoaderFactory, I18nInterceptor, ImageFallbackDirective, ImageOverlayPreviewComponent, InteractiveTableColumnComponent, InteractiveTableComponent, LANGUAGES_LIST, LANGUAGE_STORAGE_KEY, LANG_2_TO_3_MAPPER, LANG_3_TO_2_MAPPER, LOGIN_URL, LONLAT_CRS_CODES, LangService, LanguageSwitcherComponent, LayersPanelComponent, LinkCardComponent, LinkClassifierService, LinkUsage, LoadingMaskComponent, LogService, MAP_CONFIG_FIXTURE, MAP_FEATURE_KEY, METADATA_LANGUAGE, MY_FORMATS, MapComponent, MapContainerComponent, MapContextComponent, MapContextLayerTypeEnum, MapContextService, MapFacade, MapInstanceDirective, MapManagerService, MapStyleService, MapUtilsService, MapViewComponent, MarkdownParserComponent, MaxLinesComponent, mdview_actions as MdViewActions, MdViewFacade, MetadataCatalogComponent, MetadataContactComponent, MetadataInfoComponent, MetadataLinkType, MetadataQualityComponent, MetadataQualityItemComponent, MyOrgService, NavigationButtonComponent, ORGANIZATIONS_STRATEGY, ORGANIZATION_URL_TOKEN, OrganisationPreviewComponent, OrganisationsComponent, OrganisationsFilterComponent, OrganisationsResultComponent, OrganizationsFromGroupsService, OrganizationsFromMetadataService, PAGINATE, PARSE_DELIMITER, PATCH_RESULTS_AGGREGATIONS, PROXY_PATH, Paginate, PaginationButtonsComponent, PaginationComponent, PatchResultsAggregations, PopupAlertComponent, ProgressBarComponent, ProxyService, QUERY_FIELDS, RECORD_URL_TOKEN, REQUEST_MORE_ON_AGGREGATION, REQUEST_MORE_RESULTS, REQUEST_NEW_RESULTS, RESULTS_LAYOUT_CONFIG, ROUTER_ROUTE_DATASET, ROUTER_ROUTE_SEARCH, ROUTER_STATE_KEY, ROUTE_PARAMS, RecordApiFormComponent, RecordFormComponent, RecordMetricComponent, RecordPreviewCardComponent, RecordPreviewComponent, RecordPreviewFeedComponent, RecordPreviewListComponent, RecordPreviewRowComponent, RecordPreviewTextComponent, RecordPreviewTitleComponent, RecordsMetricsComponent, RecordsService, RelatedRecordCardComponent, RequestMoreOnAggregation, RequestMoreResults, RequestNewResults, ResultsHitsContainerComponent, ResultsHitsNumberComponent, ResultsLayoutComponent, ResultsLayoutConfigItem, ResultsListComponent, ResultsListContainerComponent, ResultsListItemComponent, ResultsTableComponent, RouterEffects, RouterFacade, RouterService, SEARCH_FEATURE_KEY, 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, SearchInputComponent, SearchResultsErrorComponent, SearchRouterContainerDirective, SearchService, SearchStateContainerDirective, SelectionService, SetConfigAggregations, SetConfigFilters, SetConfigRequestFields, SetError, SetFavoritesOnly, SetFilters, SetIncludeOnAggregation, SetPageSize, SetResultsAggregations, SetResultsHits, SetResultsLayout, SetSearch, SetSortBy, SetSpatialFilterEnabled, SiteTitleComponent, SortByComponent, SourceLabelComponent, SourcesService, SpinningLoaderComponent, StarToggleComponent, StepBarComponent, StickyHeaderComponent, SupportedTypes, TABLE_ITEM_FIXTURE, TABLE_ITEM_FIXTURE_HAB, THUMBNAIL_PLACEHOLDER, TRANSLATE_DEFAULT_CONFIG, TRANSLATE_WITH_OVERRIDES_CONFIG, TableComponent, TableViewComponent, TextAreaComponent, TextInputComponent, ThemeService, ThumbnailComponent, UPDATE_CONFIG_AGGREGATIONS, UPDATE_FILTERS, UPDATE_REQUEST_AGGREGATION_TERM, UiCatalogModule, UiDatavizModule, UiElementsModule, FacetsModule$1 as UiFacetsModule, UiInputsModule, UiLayoutModule, UiMapModule, UiSearchModule, UiWidgetsModule, UpdateConfigAggregations, UpdateFilters, UserPreviewComponent, UtilI18nModule, UtilSharedModule, ViewportIntersectorComponent, WEB_COMPONENT_EMBEDDER_URL, WFS_MAX_FEATURES, WizardComponent, WizardFieldComponent, WizardFieldType, WizardService, WizardSummarizeComponent, _reset, addLayer, changeLayerOrder, checkFileFormat, clearLayerError, createFuzzyFilter, currentPage, defaultMapOptions, dragPanCondition, dropEmptyTranslations, getArrayItem, getAsArray, getAsUrl, getBadgeColor, getCustomTranslations, getError, getFavoritesOnly, getFileFormat, getFileFormatFromServiceOutput, getFirstValue, getFormatPriority, getGeometryFromGeoJSON, getGlobalConfig, getJsonDataItemsProxy, getLangFromBrowser, getLinkLabel, getLinkPriority, getMapLayers, getMapState, getMetadataQualityConfig, getMimeTypeForFormat, getOptionalMapConfig, getOptionalSearchConfig, getPageSize, getSearchConfigAggregations, getSearchFilters, getSearchResults, getSearchResultsAggregations, getSearchResultsHits, getSearchResultsLayout, getSearchResultsLoading, getSearchSortBy, getSearchState, getSearchStateSearch, getSpatialFilterEnabled, getThemeConfig, initSearch, initialMapState, initialState, isConfigLoaded, isEndOfResults, isFormatInQueryParam, loadAppConfig, mapContact, mapKeywords, mapLogo, mapOrganization, mapReducer, mimeTypeToFormat, mouseWheelZoomCondition, openDataset, parse, placeholder, propagateToDocumentOnly, provideGn4, provideRepositoryUrl, readDataset, readDatasetHeaders, reducer$1 as reducer, reducerSearch, removeLayer, removeSearchParams, removeWhitespace, selectFallback, selectFallbackFields, selectField, selectTranslatedField, selectTranslatedValue, setLayerError, sortByFromString, sortByToString, sortByToStrings, stripHtml, toDate, toModel, toXml, totalPages, updateLayer };
|
|
32320
32372
|
//# sourceMappingURL=geonetwork-ui.mjs.map
|