geonetwork-ui 2.6.0-dev.97a89c313 → 2.6.0-dev.9b9a26109
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.mjs +39 -4
- package/esm2022/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.mjs +1 -1
- package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.mjs +8 -4
- package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.mjs +5 -2
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/read-parts.mjs +3 -3
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/write-parts.mjs +2 -2
- package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.mjs +3 -3
- package/esm2022/libs/api/repository/src/lib/gn4/gn4-repository.mjs +60 -9
- package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.mjs +7 -1
- package/esm2022/libs/api/repository/src/lib/gn4/settings/gn4-settings.service.mjs +2 -1
- package/esm2022/libs/common/domain/src/lib/repository/records-repository.interface.mjs +1 -1
- package/esm2022/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.mjs +266 -11
- package/esm2022/libs/feature/record/src/lib/state/mdview.actions.mjs +3 -1
- package/esm2022/libs/feature/record/src/lib/state/mdview.effects.mjs +7 -1
- package/esm2022/libs/feature/record/src/lib/state/mdview.facade.mjs +3 -1
- package/esm2022/libs/feature/record/src/lib/state/mdview.reducer.mjs +7 -1
- package/esm2022/libs/feature/record/src/lib/state/mdview.selectors.mjs +3 -1
- package/esm2022/libs/feature/search/src/lib/results-table/results-table-container.component.mjs +13 -10
- package/esm2022/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.mjs +19 -34
- package/esm2022/libs/ui/elements/src/lib/internal-link-card-contact/internal-link-card-contact.component.mjs +59 -0
- package/esm2022/libs/ui/layout/src/lib/interactive-table/interactive-table.component.mjs +20 -10
- package/esm2022/libs/ui/search/src/index.mjs +2 -1
- package/esm2022/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.mjs +21 -12
- package/esm2022/libs/ui/search/src/lib/results-table/results-table.component.mjs +39 -18
- package/esm2022/libs/ui/search/src/lib/ui-search.module.mjs +10 -4
- package/esm2022/libs/util/i18n/src/lib/i18n.constants.mjs +42 -1
- package/esm2022/libs/util/i18n/src/lib/language-codes.mjs +24 -2
- package/esm2022/translations/de.json +32 -6
- package/esm2022/translations/en.json +32 -6
- package/esm2022/translations/es.json +31 -5
- package/esm2022/translations/fr.json +32 -6
- package/esm2022/translations/it.json +31 -5
- package/esm2022/translations/nl.json +31 -5
- package/esm2022/translations/pt.json +31 -5
- package/fesm2022/geonetwork-ui.mjs +887 -205
- package/fesm2022/geonetwork-ui.mjs.map +1 -1
- package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.d.ts +0 -1
- package/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.d.ts +1 -0
- package/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts +1 -1
- package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts +13 -2
- package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts +2 -0
- package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/settings/gn4-settings.service.d.ts +1 -0
- package/libs/api/repository/src/lib/gn4/settings/gn4-settings.service.d.ts.map +1 -1
- package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts +6 -0
- package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.d.ts +48 -3
- package/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.d.ts.map +1 -1
- package/libs/feature/record/src/lib/state/mdview.actions.d.ts +10 -0
- package/libs/feature/record/src/lib/state/mdview.actions.d.ts.map +1 -1
- package/libs/feature/record/src/lib/state/mdview.effects.d.ts +6 -0
- package/libs/feature/record/src/lib/state/mdview.effects.d.ts.map +1 -1
- package/libs/feature/record/src/lib/state/mdview.facade.d.ts +2 -0
- package/libs/feature/record/src/lib/state/mdview.facade.d.ts.map +1 -1
- package/libs/feature/record/src/lib/state/mdview.reducer.d.ts +2 -0
- package/libs/feature/record/src/lib/state/mdview.reducer.d.ts.map +1 -1
- package/libs/feature/record/src/lib/state/mdview.selectors.d.ts +2 -0
- package/libs/feature/record/src/lib/state/mdview.selectors.d.ts.map +1 -1
- package/libs/feature/search/src/lib/results-table/results-table-container.component.d.ts +6 -5
- package/libs/feature/search/src/lib/results-table/results-table-container.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.d.ts +3 -6
- package/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/internal-link-card-contact/internal-link-card-contact.component.d.ts +14 -0
- package/libs/ui/elements/src/lib/internal-link-card-contact/internal-link-card-contact.component.d.ts.map +1 -0
- package/libs/ui/layout/src/lib/interactive-table/interactive-table.component.d.ts +4 -2
- package/libs/ui/layout/src/lib/interactive-table/interactive-table.component.d.ts.map +1 -1
- package/libs/ui/search/src/index.d.ts +1 -0
- package/libs/ui/search/src/index.d.ts.map +1 -1
- package/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.d.ts +4 -3
- package/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.d.ts.map +1 -1
- package/libs/ui/search/src/lib/results-table/results-table.component.d.ts +10 -4
- package/libs/ui/search/src/lib/results-table/results-table.component.d.ts.map +1 -1
- package/libs/ui/search/src/lib/ui-search.module.d.ts +2 -1
- package/libs/ui/search/src/lib/ui-search.module.d.ts.map +1 -1
- package/libs/util/i18n/src/lib/i18n.constants.d.ts +1 -0
- package/libs/util/i18n/src/lib/i18n.constants.d.ts.map +1 -1
- package/libs/util/i18n/src/lib/language-codes.d.ts +23 -1
- package/libs/util/i18n/src/lib/language-codes.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/libs/api/metadata-converter/src/lib/fixtures/geocat-ch.records.ts +1 -1
- package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +61 -4
- package/src/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.ts +0 -1
- package/src/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.ts +13 -3
- package/src/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.ts +5 -1
- package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +6 -3
- package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +4 -1
- package/src/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.ts +2 -2
- package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +96 -9
- package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +11 -0
- package/src/libs/api/repository/src/lib/gn4/settings/gn4-settings.service.ts +3 -0
- package/src/libs/common/domain/src/lib/repository/records-repository.interface.ts +6 -0
- package/src/libs/common/fixtures/src/lib/records.fixtures.ts +49 -0
- package/src/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.html +117 -11
- package/src/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.ts +316 -6
- package/src/libs/feature/record/src/lib/state/mdview.actions.ts +10 -0
- package/src/libs/feature/record/src/lib/state/mdview.effects.ts +22 -0
- package/src/libs/feature/record/src/lib/state/mdview.facade.ts +4 -0
- package/src/libs/feature/record/src/lib/state/mdview.reducer.ts +12 -0
- package/src/libs/feature/record/src/lib/state/mdview.selectors.ts +9 -0
- package/src/libs/feature/search/src/lib/results-table/results-table-container.component.html +1 -0
- package/src/libs/feature/search/src/lib/results-table/results-table-container.component.ts +13 -3
- package/src/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.html +7 -75
- package/src/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.ts +20 -51
- package/src/libs/ui/elements/src/lib/internal-link-card-contact/internal-link-card-contact.component.html +69 -0
- package/src/libs/ui/elements/src/lib/internal-link-card-contact/internal-link-card-contact.component.ts +61 -0
- package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.html +3 -2
- package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.ts +13 -6
- package/src/libs/ui/search/src/index.ts +1 -0
- package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.html +16 -6
- package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.ts +15 -11
- package/src/libs/ui/search/src/lib/results-table/results-table.component.css +4 -0
- package/src/libs/ui/search/src/lib/results-table/results-table.component.html +31 -27
- package/src/libs/ui/search/src/lib/results-table/results-table.component.ts +33 -15
- package/src/libs/ui/search/src/lib/ui-search.module.ts +3 -0
- package/src/libs/util/i18n/src/lib/i18n.constants.ts +42 -0
- package/src/libs/util/i18n/src/lib/language-codes.ts +23 -1
- package/tailwind.base.css +1 -1
- package/translations/de.json +32 -6
- package/translations/en.json +32 -6
- package/translations/es.json +31 -5
- package/translations/fr.json +32 -6
- package/translations/it.json +31 -5
- package/translations/nl.json +31 -5
- package/translations/pt.json +31 -5
- package/translations/sk.json +31 -5
|
@@ -14,10 +14,10 @@ import * as i1$1 from '@ngx-translate/core';
|
|
|
14
14
|
import { TranslateCompiler, TranslateLoader, TranslateModule, TranslateService } from '@ngx-translate/core';
|
|
15
15
|
import { TranslateMessageFormatCompiler } from 'ngx-translate-messageformat-compiler';
|
|
16
16
|
import { TranslateHttpLoader } from '@ngx-translate/http-loader';
|
|
17
|
-
import { map as map$1, catchError, tap as tap$1,
|
|
17
|
+
import { map as map$1, shareReplay, catchError, tap as tap$1, filter, startWith, withLatestFrom, switchMap as switchMap$1, take, mergeMap, throttleTime, distinctUntilChanged, debounceTime, finalize, delay, first as first$1, share, pairwise, defaultIfEmpty, toArray } from 'rxjs/operators';
|
|
18
18
|
import * as i1$2 from '@angular/common';
|
|
19
|
-
import { CommonModule, NgSwitch, NgSwitchCase, NgSwitchDefault,
|
|
20
|
-
import { of, map as map$2, lastValueFrom, Subject, switchMap, combineLatest, from, exhaustMap, throwError, forkJoin, takeLast, firstValueFrom, merge, BehaviorSubject, fromEvent, animationFrameScheduler, ReplaySubject, Subscription, first, distinctUntilChanged as distinctUntilChanged$1, timer, filter as filter$1, tap as tap$2, Observable, buffer, debounceTime as debounceTime$1, combineLatestWith, startWith as startWith$1, catchError as catchError$1, takeUntil, EMPTY, mergeMap as mergeMap$1, withLatestFrom as withLatestFrom$1, shareReplay as shareReplay$1, pairwise as pairwise$1 } from 'rxjs';
|
|
19
|
+
import { CommonModule, NgSwitch, NgSwitchCase, NgSwitchDefault, NgIf, NgClass, NgTemplateOutlet, NgOptimizedImage, DatePipe } from '@angular/common';
|
|
20
|
+
import { of, map as map$2, lastValueFrom, Subject, switchMap, combineLatest, from, exhaustMap, throwError, forkJoin, takeLast, firstValueFrom, merge, BehaviorSubject, fromEvent, animationFrameScheduler, ReplaySubject, Subscription, first, distinctUntilChanged as distinctUntilChanged$1, timer, filter as filter$1, take as take$1, tap as tap$2, Observable, buffer, debounceTime as debounceTime$1, combineLatestWith, startWith as startWith$1, catchError as catchError$1, takeUntil, EMPTY, mergeMap as mergeMap$1, withLatestFrom as withLatestFrom$1, shareReplay as shareReplay$1, pairwise as pairwise$1 } from 'rxjs';
|
|
21
21
|
import { lt, valid, coerce, satisfies, ltr } from 'semver';
|
|
22
22
|
import chroma from 'chroma-js';
|
|
23
23
|
import { WmtsEndpoint, WmsEndpoint, WfsEndpoint, OgcApiEndpoint, sharedFetch, useCache, TmsEndpoint } from '@camptocamp/ogc-client';
|
|
@@ -26,7 +26,7 @@ import { createAction, props, createReducer, on, createFeatureSelector, createSe
|
|
|
26
26
|
import EmblaCarousel from 'embla-carousel';
|
|
27
27
|
import * as i2$2 from '@ng-icons/core';
|
|
28
28
|
import { provideIcons, NgIcon, NgIconComponent, provideNgIconsConfig, NgIconsModule } from '@ng-icons/core';
|
|
29
|
-
import { iconoirNavArrowRight, iconoirNavArrowLeft, iconoirNavArrowDown, iconoirNavArrowUp, iconoirSearch, iconoirLongArrowDownLeft, iconoirCalendar, iconoirLink, iconoirArrowUp, iconoirCloudUpload, iconoirFramePlusIn, iconoirExpand, iconoirReduce, iconoirAppleWallet, iconoirAppleShortcuts, iconoirCode, iconoirCreditCard, iconoirInternet, iconoirSettings, iconoirDownload, iconoirMediaImage, iconoirMediaImageXmark, iconoirBin, iconoirPlus, iconoirUser, iconoirLock, iconoirImport, iconoirLightBulbOn, iconoirArrowLeft, iconoirAttachment, iconoirRefresh } from '@ng-icons/iconoir';
|
|
29
|
+
import { iconoirNavArrowRight, iconoirNavArrowLeft, iconoirNavArrowDown, iconoirNavArrowUp, iconoirSearch, iconoirLongArrowDownLeft, iconoirCalendar, iconoirLink, iconoirArrowUp, iconoirCloudUpload, iconoirFramePlusIn, iconoirExpand, iconoirReduce, iconoirAppleWallet, iconoirAppleShortcuts, iconoirCode, iconoirCreditCard, iconoirInternet, iconoirSettings, iconoirDownload, iconoirMediaImage, iconoirMediaImageXmark, iconoirBin, iconoirPlus, iconoirUser, iconoirLock, iconoirTranslate, iconoirImport, iconoirLightBulbOn, iconoirArrowLeft, iconoirAttachment, iconoirRefresh, iconoirCheckCircle, iconoirCircle } from '@ng-icons/iconoir';
|
|
30
30
|
import { matExpandMore, matExpandLess, matAdd, matRemove, matClose, matContentCopy, matSearch, matStar, matStarBorder, matChevronLeft, matChevronRight, matArrowBackIos, matArrowForwardIos, matCheck, matWarningAmber, matFace, matQuestionMark, matMoodBad, matZoomOutMap, matOpenInNew, matMailOutline, matPersonOutline, matCheckCircleOutline, matWarning, matMoreVert, matCorporateFare } from '@ng-icons/material-icons/baseline';
|
|
31
31
|
import * as i3 from '@angular/material/tooltip';
|
|
32
32
|
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
@@ -41,7 +41,7 @@ import { TagInputModule } from 'ngx-chips';
|
|
|
41
41
|
import * as i1$4 from '@angular/material/progress-spinner';
|
|
42
42
|
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
|
|
43
43
|
import tippy from 'tippy.js';
|
|
44
|
-
import { matErrorOutlineOutline, matLocationSearchingOutline, matInfoOutline, matEmailOutline, matPhoneOutline, matLocationOnOutline, matComputerOutline, matCallOutline, matSwipeOutline, matMailOutline as matMailOutline$1, matWarningAmberOutline, matCloseOutline, matSendOutline, matMapOutline, matCloudDownloadOutline, matHomeWorkOutline, matLayersOutline, matAddCircleOutlineOutline } from '@ng-icons/material-icons/outline';
|
|
44
|
+
import { matErrorOutlineOutline, matLocationSearchingOutline, matInfoOutline, matEmailOutline, matPhoneOutline, matLocationOnOutline, matComputerOutline, matCallOutline, matSwipeOutline, matMailOutline as matMailOutline$1, matWarningAmberOutline, matCloseOutline, matSendOutline, matMapOutline, matCloudDownloadOutline, matHomeWorkOutline, matLayersOutline, matAddCircleOutlineOutline, matMoreHorizOutline } from '@ng-icons/material-icons/outline';
|
|
45
45
|
import * as i2 from '@angular/material/core';
|
|
46
46
|
import { MatNativeDateModule, MAT_DATE_LOCALE, DateAdapter, MAT_DATE_FORMATS } from '@angular/material/core';
|
|
47
47
|
import * as i1$6 from '@angular/material/checkbox';
|
|
@@ -909,6 +909,17 @@ const LANG_3_TO_2_MAPPER = {
|
|
|
909
909
|
chi: 'zh',
|
|
910
910
|
slo: 'sk',
|
|
911
911
|
roh: 'rm',
|
|
912
|
+
ara: 'ar',
|
|
913
|
+
dan: 'da',
|
|
914
|
+
nor: 'no',
|
|
915
|
+
pol: 'pl',
|
|
916
|
+
swe: 'sv',
|
|
917
|
+
tur: 'tr',
|
|
918
|
+
arm: 'hy',
|
|
919
|
+
aze: 'az',
|
|
920
|
+
geo: 'ka',
|
|
921
|
+
ukr: 'uk',
|
|
922
|
+
wel: 'cy',
|
|
912
923
|
};
|
|
913
924
|
const LANGUAGE_NAMES = {
|
|
914
925
|
en: 'English',
|
|
@@ -926,7 +937,18 @@ const LANGUAGE_NAMES = {
|
|
|
926
937
|
ru: 'Русский',
|
|
927
938
|
zh: '中文',
|
|
928
939
|
sk: 'Slovenčina',
|
|
929
|
-
|
|
940
|
+
rm: 'Rumantsch',
|
|
941
|
+
ar: 'العربية',
|
|
942
|
+
da: 'Dansk',
|
|
943
|
+
no: 'Norsk',
|
|
944
|
+
pl: 'Polski',
|
|
945
|
+
sv: 'Swedish',
|
|
946
|
+
tr: 'Türkçe',
|
|
947
|
+
hy: 'հայերեն',
|
|
948
|
+
az: 'Azərbaycan dili',
|
|
949
|
+
ka: 'ქართული',
|
|
950
|
+
uk: 'українська',
|
|
951
|
+
wel: 'Cymraeg',
|
|
930
952
|
};
|
|
931
953
|
const LANG_2_TO_3_MAPPER = Object.entries(LANG_3_TO_2_MAPPER).reduce((mapperObject, langEntry) => {
|
|
932
954
|
return { ...mapperObject, [langEntry[1]]: langEntry[0] };
|
|
@@ -1437,10 +1459,10 @@ function readSpatialExtents$1(rootEl) {
|
|
|
1437
1459
|
}
|
|
1438
1460
|
function readOtherLanguages$1(rootEl) {
|
|
1439
1461
|
const defaultLanguage = readDefaultLanguage$2(rootEl);
|
|
1440
|
-
return pipe(findChildrenElement('gmd:locale', false), mapArray(pipe(findChildElement('
|
|
1462
|
+
return pipe(findChildrenElement('gmd:locale', false), mapArray(pipe(findChildElement('lan:LanguageCode'), readAttribute('codeListValue'), map((lang) => LANG_3_TO_2_MAPPER[lang.toLowerCase()] ?? lang))), map((languages) => languages.filter((lang) => lang !== null)), map((languages) => (languages.length ? languages : [defaultLanguage])))(rootEl);
|
|
1441
1463
|
}
|
|
1442
1464
|
function readDefaultLanguage$2(rootEl) {
|
|
1443
|
-
return pipe(findChildElement('gmd:language', false), findChildElement('
|
|
1465
|
+
return pipe(findChildElement('gmd:language', false), findChildElement('lan:LanguageCode'), readAttribute('codeListValue'), map((lang) => (lang ? LANG_3_TO_2_MAPPER[lang.toLowerCase()] : null)))(rootEl);
|
|
1444
1466
|
}
|
|
1445
1467
|
function readResourceIdentifier(rootEl) {
|
|
1446
1468
|
return pipe(findIdentification(), findNestedElement('gmd:citation', 'gmd:CI_Citation', 'gmd:identifier', 'gmd:MD_Identifier', 'gmd:code'), extractCharacterString())(rootEl);
|
|
@@ -1936,7 +1958,7 @@ function writeLanguages(record, rootEl) {
|
|
|
1936
1958
|
if (!record.otherLanguages?.length) {
|
|
1937
1959
|
return;
|
|
1938
1960
|
}
|
|
1939
|
-
const createLanguageEl = (lang) => pipe(createNestedElement('gmd:locale', 'gmd:PT_Locale'), writeAttribute('id', lang.toUpperCase()), createNestedChild('gmd:languageCode', 'gmd:LanguageCode'), writeAttribute('codeList', 'http://www.loc.gov/standards/iso639-2/'), writeAttribute('codeListValue', LANG_2_TO_3_MAPPER[lang]));
|
|
1961
|
+
const createLanguageEl = (lang) => pipe(createNestedElement('gmd:locale', 'gmd:PT_Locale'), writeAttribute('id', lang.toUpperCase()), createNestedChild('gmd:languageCode', 'gmd:LanguageCode'), writeAttribute('codeList', 'http://www.loc.gov/standards/iso639-2/'), writeAttribute('codeListValue', lang.length === 2 ? LANG_2_TO_3_MAPPER[lang] : lang));
|
|
1940
1962
|
// add new languages (only if other than default one)
|
|
1941
1963
|
appendChildren(createLanguageEl(record.defaultLanguage), ...record.otherLanguages.map(createLanguageEl))(rootEl);
|
|
1942
1964
|
}
|
|
@@ -2374,13 +2396,17 @@ function readOnlineResources$1(rootEl) {
|
|
|
2374
2396
|
return pipe(findNestedElements('mrd:distributionInfo', 'mrd:MD_Distribution'), mapArray(getOnlineResources), flattenArray())(rootEl);
|
|
2375
2397
|
}
|
|
2376
2398
|
function readLocaleElement() {
|
|
2377
|
-
return pipe(findChildElement('lan:LanguageCode'), readAttribute('codeListValue'), map((lang) =>
|
|
2399
|
+
return pipe(findChildElement('lan:LanguageCode'), readAttribute('codeListValue'), map((lang) => {
|
|
2400
|
+
const normalized = lang?.toLowerCase();
|
|
2401
|
+
const iso2Lang = LANG_3_TO_2_MAPPER[normalized];
|
|
2402
|
+
return iso2Lang ?? lang;
|
|
2403
|
+
}));
|
|
2378
2404
|
}
|
|
2379
2405
|
function readDefaultLanguage$1(rootEl) {
|
|
2380
2406
|
return pipe(findChildElement('mdb:defaultLocale', false), readLocaleElement())(rootEl);
|
|
2381
2407
|
}
|
|
2382
2408
|
function readOtherLanguages(rootEl) {
|
|
2383
|
-
return pipe(findChildrenElement('mdb:otherLocale', false), mapArray(readLocaleElement()))(rootEl);
|
|
2409
|
+
return pipe(findChildrenElement('mdb:otherLocale', false), mapArray(readLocaleElement()), map((languages) => languages.filter((lang) => lang !== null)))(rootEl);
|
|
2384
2410
|
}
|
|
2385
2411
|
|
|
2386
2412
|
function writeUniqueIdentifier$1(record, rootEl) {
|
|
@@ -2513,7 +2539,10 @@ function writeOnlineResources(record, rootEl) {
|
|
|
2513
2539
|
});
|
|
2514
2540
|
}
|
|
2515
2541
|
function writeLocaleElement(language) {
|
|
2516
|
-
const
|
|
2542
|
+
const normalizedLang = language.toLowerCase();
|
|
2543
|
+
const lang3 = normalizedLang.length === 2
|
|
2544
|
+
? LANG_2_TO_3_MAPPER[normalizedLang]
|
|
2545
|
+
: normalizedLang;
|
|
2517
2546
|
return pipe(findChildOrCreate('lan:PT_Locale'), writeAttribute('id', language.toUpperCase()), findNestedChildOrCreate('lan:language', 'gmd:LanguageCode'), writeAttribute('codeList', 'http://www.loc.gov/standards/iso639-2/'), writeAttribute('codeListValue', lang3));
|
|
2518
2547
|
}
|
|
2519
2548
|
function writeDefaultLanguage(record, rootEl) {
|
|
@@ -18502,9 +18531,50 @@ marker('language.pt');
|
|
|
18502
18531
|
marker('language.ru');
|
|
18503
18532
|
marker('language.zh');
|
|
18504
18533
|
marker('language.sk');
|
|
18534
|
+
marker('language.rm');
|
|
18535
|
+
marker('language.ar');
|
|
18536
|
+
marker('language.da');
|
|
18537
|
+
marker('language.no');
|
|
18538
|
+
marker('language.pl');
|
|
18539
|
+
marker('language.sv');
|
|
18540
|
+
marker('language.tr');
|
|
18541
|
+
marker('language.hy');
|
|
18542
|
+
marker('language.az');
|
|
18543
|
+
marker('language.ka');
|
|
18544
|
+
marker('language.uk');
|
|
18545
|
+
marker('language.cy');
|
|
18505
18546
|
const DEFAULT_LANG = 'en';
|
|
18506
18547
|
// Caution: changing this can break language selection from third parties!
|
|
18507
18548
|
const LANGUAGE_STORAGE_KEY = 'geonetwork-ui-language';
|
|
18549
|
+
const SUPPORTED_LANGUAGES = [
|
|
18550
|
+
'en',
|
|
18551
|
+
'nl',
|
|
18552
|
+
'fr',
|
|
18553
|
+
'de',
|
|
18554
|
+
'ko',
|
|
18555
|
+
'es',
|
|
18556
|
+
'cs',
|
|
18557
|
+
'ca',
|
|
18558
|
+
'fi',
|
|
18559
|
+
'is',
|
|
18560
|
+
'it',
|
|
18561
|
+
'pt',
|
|
18562
|
+
'ru',
|
|
18563
|
+
'zh',
|
|
18564
|
+
'sk',
|
|
18565
|
+
'rm',
|
|
18566
|
+
'ar',
|
|
18567
|
+
'da',
|
|
18568
|
+
'no',
|
|
18569
|
+
'pl',
|
|
18570
|
+
'sv',
|
|
18571
|
+
'tr',
|
|
18572
|
+
'hy',
|
|
18573
|
+
'az',
|
|
18574
|
+
'ka',
|
|
18575
|
+
'uk',
|
|
18576
|
+
'cy',
|
|
18577
|
+
];
|
|
18508
18578
|
function HttpLoaderFactory(http) {
|
|
18509
18579
|
return new FileTranslateLoader(http, './assets/i18n/');
|
|
18510
18580
|
}
|
|
@@ -18636,6 +18706,7 @@ var de = {
|
|
|
18636
18706
|
"dashboard.labels.mySpace": "Mein Bereich",
|
|
18637
18707
|
"dashboard.records.all": "Metadatenkatalog",
|
|
18638
18708
|
"dashboard.records.hasDraft": "",
|
|
18709
|
+
"dashboard.records.isMultilingual": "Dieser Eintrag ist mehrsprachig ({languages})",
|
|
18639
18710
|
"dashboard.records.myDraft": "Meine Entwürfe",
|
|
18640
18711
|
"dashboard.records.myRecords": "Meine Datensätze",
|
|
18641
18712
|
"dashboard.records.search": "Suche nach \"{searchText}\"",
|
|
@@ -18810,9 +18881,13 @@ var de = {
|
|
|
18810
18881
|
"editor.record.form.license.odc-by": "",
|
|
18811
18882
|
"editor.record.form.license.pddl": "",
|
|
18812
18883
|
"editor.record.form.license.unknown": "",
|
|
18884
|
+
"editor.record.form.multilingual.activate": "",
|
|
18885
|
+
"editor.record.form.multilingual.default": "",
|
|
18813
18886
|
"editor.record.form.multilingual.enable": "",
|
|
18887
|
+
"editor.record.form.multilingual.forbidden": "",
|
|
18814
18888
|
"editor.record.form.multilingual.open": "",
|
|
18815
18889
|
"editor.record.form.multilingual.title": "",
|
|
18890
|
+
"editor.record.form.multilingual.validate": "",
|
|
18816
18891
|
"editor.record.form.page.accessAndContact": "",
|
|
18817
18892
|
"editor.record.form.page.description": "",
|
|
18818
18893
|
"editor.record.form.page.resources": "",
|
|
@@ -18842,8 +18917,13 @@ var de = {
|
|
|
18842
18917
|
"editor.record.loadError.body": "Der Datensatz konnte nicht geladen werden:",
|
|
18843
18918
|
"editor.record.loadError.closeMessage": "Verstanden",
|
|
18844
18919
|
"editor.record.loadError.title": "Fehler beim Laden des Datensatzes",
|
|
18845
|
-
"editor.record.lock.
|
|
18846
|
-
"editor.record.lock.
|
|
18920
|
+
"editor.record.lock.harvested": "",
|
|
18921
|
+
"editor.record.lock.owner": "",
|
|
18922
|
+
"editor.record.lock.resourceType": "",
|
|
18923
|
+
"editor.record.multilingual.confirmation.cancelText": "",
|
|
18924
|
+
"editor.record.multilingual.confirmation.confirmText": "",
|
|
18925
|
+
"editor.record.multilingual.confirmation.message": "",
|
|
18926
|
+
"editor.record.multilingual.confirmation.title": "",
|
|
18847
18927
|
"editor.record.onlineResource.protocol.other": "",
|
|
18848
18928
|
"editor.record.onlineResourceError.body": "",
|
|
18849
18929
|
"editor.record.onlineResourceError.closeMessage": "",
|
|
@@ -18904,20 +18984,32 @@ var de = {
|
|
|
18904
18984
|
"input.image.uploadErrorLabel": "",
|
|
18905
18985
|
"input.image.uploadProgressCancel": "",
|
|
18906
18986
|
"input.image.uploadProgressLabel": "",
|
|
18987
|
+
"language.ar": "",
|
|
18988
|
+
"language.az": "",
|
|
18907
18989
|
"language.ca": "Katalanisch",
|
|
18908
18990
|
"language.cs": "Tschechisch",
|
|
18991
|
+
"language.cy": "",
|
|
18992
|
+
"language.da": "",
|
|
18909
18993
|
"language.de": "Deutsch",
|
|
18910
18994
|
"language.en": "Englisch",
|
|
18911
18995
|
"language.es": "Spanisch",
|
|
18912
18996
|
"language.fi": "Finnisch",
|
|
18913
18997
|
"language.fr": "Französisch",
|
|
18998
|
+
"language.hy": "",
|
|
18914
18999
|
"language.is": "Isländisch",
|
|
18915
19000
|
"language.it": "Italienisch",
|
|
19001
|
+
"language.ka": "",
|
|
18916
19002
|
"language.ko": "Koreanisch",
|
|
18917
19003
|
"language.nl": "Niederländisch",
|
|
19004
|
+
"language.no": "",
|
|
19005
|
+
"language.pl": "",
|
|
18918
19006
|
"language.pt": "Portugiesisch",
|
|
19007
|
+
"language.rm": "",
|
|
18919
19008
|
"language.ru": "Russisch",
|
|
18920
19009
|
"language.sk": "Slowakisch",
|
|
19010
|
+
"language.sv": "",
|
|
19011
|
+
"language.tr": "",
|
|
19012
|
+
"language.uk": "",
|
|
18921
19013
|
"language.zh": "Chinesisch",
|
|
18922
19014
|
"map.add.layer": "Eine Ebene hinzufügen",
|
|
18923
19015
|
"map.add.layer.catalog": "Aus dem Katalog",
|
|
@@ -18964,6 +19056,7 @@ var de = {
|
|
|
18964
19056
|
"record.action.duplicate": "",
|
|
18965
19057
|
"record.action.duplicating": "",
|
|
18966
19058
|
"record.action.rollback": "",
|
|
19059
|
+
"record.action.switchLang": "",
|
|
18967
19060
|
"record.action.view": "Anzeigen",
|
|
18968
19061
|
"record.card.metadata.contact": "",
|
|
18969
19062
|
"record.externalViewer.open": "In externem Kartenviewer öffnen",
|
|
@@ -19014,9 +19107,15 @@ var de = {
|
|
|
19014
19107
|
"record.metadata.download": "Downloads",
|
|
19015
19108
|
"record.metadata.feature.catalog": "",
|
|
19016
19109
|
"record.metadata.formats": "Formate",
|
|
19110
|
+
"record.metadata.isGeographical": "Geographischer Datensatz",
|
|
19017
19111
|
"record.metadata.keywords": "Stichworte",
|
|
19018
19112
|
"record.metadata.languages": "Sprachen",
|
|
19019
19113
|
"record.metadata.lastUpdate": "Zuletzt aktualisiert am {date}",
|
|
19114
|
+
"record.metadata.linked.datasets": "Verknüpfte Datensätze",
|
|
19115
|
+
"record.metadata.linked.records": "Verknüpfte Inhalte",
|
|
19116
|
+
"record.metadata.linked.reuses": "Verknüpfte Wiederverwendungen",
|
|
19117
|
+
"record.metadata.linked.services": "Verknüpfte Dienste",
|
|
19118
|
+
"record.metadata.linked.sourceDatasets": "Quelldatensätze",
|
|
19020
19119
|
"record.metadata.links": "Links",
|
|
19021
19120
|
"record.metadata.noUsage": "Für diesen Datensatz sind keine Nutzungsbedingungen angegeben.",
|
|
19022
19121
|
"record.metadata.otherConstraints": "Zusätzliche Bedingungen",
|
|
@@ -19043,8 +19142,7 @@ var de = {
|
|
|
19043
19142
|
"record.metadata.quality.topic.success": "Thema angegeben",
|
|
19044
19143
|
"record.metadata.quality.updateFrequency.failed": "Aktualisierungsfrequenz nicht angegeben",
|
|
19045
19144
|
"record.metadata.quality.updateFrequency.success": "Aktualisierungsfrequenz angegeben",
|
|
19046
|
-
"record.metadata.related": "
|
|
19047
|
-
"record.metadata.related.contents": "",
|
|
19145
|
+
"record.metadata.related": "Entdecken Sie den Katalog",
|
|
19048
19146
|
"record.metadata.ressources.and.links": "Ressourcen und Links",
|
|
19049
19147
|
"record.metadata.sheet": "Weitere Informationen verfügbar unter:",
|
|
19050
19148
|
"record.metadata.status": "Status",
|
|
@@ -19056,7 +19154,6 @@ var de = {
|
|
|
19056
19154
|
"record.metadata.temporalExtent.untilDate": "Bis {end}",
|
|
19057
19155
|
"record.metadata.title": "Titel",
|
|
19058
19156
|
"record.metadata.topics": "Kategorien",
|
|
19059
|
-
"record.metadata.isGeographical": "Geographischer Datensatz",
|
|
19060
19157
|
"record.metadata.uniqueId": "Eindeutige Kennung",
|
|
19061
19158
|
"record.metadata.updateFrequency": "Aktualisierungsfrequenz der Daten",
|
|
19062
19159
|
"record.metadata.updatedOn": "Geändert am",
|
|
@@ -19176,7 +19273,6 @@ var de = {
|
|
|
19176
19273
|
"tooltip.html.copy": "HTML kopieren",
|
|
19177
19274
|
"tooltip.id.copy": "Eindeutige Kennung kopieren",
|
|
19178
19275
|
"tooltip.url.copy": "URL kopieren",
|
|
19179
|
-
"tooltip.url.open": "URL öffnen",
|
|
19180
19276
|
"ui.readLess": "Weniger lesen",
|
|
19181
19277
|
"ui.readMore": "Weiterlesen",
|
|
19182
19278
|
"wfs.feature.limit": "Zu viele Features, um den WFS-Layer anzuzeigen!",
|
|
@@ -19223,6 +19319,7 @@ var en = {
|
|
|
19223
19319
|
"dashboard.labels.mySpace": "My space",
|
|
19224
19320
|
"dashboard.records.all": "Datasets",
|
|
19225
19321
|
"dashboard.records.hasDraft": "draft",
|
|
19322
|
+
"dashboard.records.isMultilingual": "This record is multilingual ({languages})",
|
|
19226
19323
|
"dashboard.records.myDraft": "My drafts",
|
|
19227
19324
|
"dashboard.records.myRecords": "My datasets",
|
|
19228
19325
|
"dashboard.records.search": "Search for \"{searchText}\"",
|
|
@@ -19397,9 +19494,13 @@ var en = {
|
|
|
19397
19494
|
"editor.record.form.license.odc-by": "Open Data Commons ODC-By",
|
|
19398
19495
|
"editor.record.form.license.pddl": "Open Data Commons PDDL",
|
|
19399
19496
|
"editor.record.form.license.unknown": "Unknown or absent",
|
|
19497
|
+
"editor.record.form.multilingual.activate": "Activate the languages",
|
|
19498
|
+
"editor.record.form.multilingual.default": "Default",
|
|
19400
19499
|
"editor.record.form.multilingual.enable": "Multilingual Mode",
|
|
19500
|
+
"editor.record.form.multilingual.forbidden": "You are not allowed to remove the default language",
|
|
19401
19501
|
"editor.record.form.multilingual.open": "Open the multilingual panel",
|
|
19402
19502
|
"editor.record.form.multilingual.title": "Translations",
|
|
19503
|
+
"editor.record.form.multilingual.validate": "Validate",
|
|
19403
19504
|
"editor.record.form.page.accessAndContact": "Information for use",
|
|
19404
19505
|
"editor.record.form.page.description": "Dataset description",
|
|
19405
19506
|
"editor.record.form.page.resources": "Resources",
|
|
@@ -19429,8 +19530,13 @@ var en = {
|
|
|
19429
19530
|
"editor.record.loadError.body": "The dataset could not be loaded:",
|
|
19430
19531
|
"editor.record.loadError.closeMessage": "Understood",
|
|
19431
19532
|
"editor.record.loadError.title": "Error loading dataset",
|
|
19432
|
-
"editor.record.lock.
|
|
19433
|
-
"editor.record.lock.
|
|
19533
|
+
"editor.record.lock.harvested": "Datasets harvested from an external catalog are not editable",
|
|
19534
|
+
"editor.record.lock.owner": "You are not an editor of the allowed groups",
|
|
19535
|
+
"editor.record.lock.resourceType": "Records of a type other than dataset are not editable",
|
|
19536
|
+
"editor.record.multilingual.confirmation.cancelText": "Keep the language(s)",
|
|
19537
|
+
"editor.record.multilingual.confirmation.confirmText": "Remove the language(s)",
|
|
19538
|
+
"editor.record.multilingual.confirmation.message": "You are about to remove one or several languages, which will delete all of the related translations and is irreversible. Do you want to proceed?",
|
|
19539
|
+
"editor.record.multilingual.confirmation.title": "Remove languages",
|
|
19434
19540
|
"editor.record.onlineResource.protocol.other": "Other",
|
|
19435
19541
|
"editor.record.onlineResourceError.body": "An error happened while adding the resource:",
|
|
19436
19542
|
"editor.record.onlineResourceError.closeMessage": "Understood",
|
|
@@ -19491,20 +19597,32 @@ var en = {
|
|
|
19491
19597
|
"input.image.uploadErrorLabel": "The image could not be uploaded",
|
|
19492
19598
|
"input.image.uploadProgressCancel": "Cancel",
|
|
19493
19599
|
"input.image.uploadProgressLabel": "Upload in progress...",
|
|
19600
|
+
"language.ar": "Arabic",
|
|
19601
|
+
"language.az": "Azerbaijani",
|
|
19494
19602
|
"language.ca": "Catalan",
|
|
19495
19603
|
"language.cs": "Czech",
|
|
19604
|
+
"language.cy": "Welsh",
|
|
19605
|
+
"language.da": "Danish",
|
|
19496
19606
|
"language.de": "German",
|
|
19497
19607
|
"language.en": "English",
|
|
19498
19608
|
"language.es": "Spanish",
|
|
19499
19609
|
"language.fi": "Finnish",
|
|
19500
19610
|
"language.fr": "French",
|
|
19611
|
+
"language.hy": "Armenian",
|
|
19501
19612
|
"language.is": "Icelandic",
|
|
19502
19613
|
"language.it": "Italian",
|
|
19614
|
+
"language.ka": "Georgian",
|
|
19503
19615
|
"language.ko": "Korean",
|
|
19504
19616
|
"language.nl": "Dutch",
|
|
19617
|
+
"language.no": "Norwegian",
|
|
19618
|
+
"language.pl": "Polish",
|
|
19505
19619
|
"language.pt": "Portuguese",
|
|
19620
|
+
"language.rm": "Romansh",
|
|
19506
19621
|
"language.ru": "Russian",
|
|
19507
19622
|
"language.sk": "Slovak",
|
|
19623
|
+
"language.sv": "Swedish",
|
|
19624
|
+
"language.tr": "Turkish",
|
|
19625
|
+
"language.uk": "Ukrainian",
|
|
19508
19626
|
"language.zh": "Chinese",
|
|
19509
19627
|
"map.add.layer": "Add a layer",
|
|
19510
19628
|
"map.add.layer.catalog": "From the catalog",
|
|
@@ -19551,6 +19669,7 @@ var en = {
|
|
|
19551
19669
|
"record.action.duplicate": "Duplicate",
|
|
19552
19670
|
"record.action.duplicating": "Duplicating...",
|
|
19553
19671
|
"record.action.rollback": "Rollback",
|
|
19672
|
+
"record.action.switchLang": "Switch to default",
|
|
19554
19673
|
"record.action.view": "View",
|
|
19555
19674
|
"record.card.metadata.contact": "Metadata Contact",
|
|
19556
19675
|
"record.externalViewer.open": "Open in the external map viewer",
|
|
@@ -19601,9 +19720,15 @@ var en = {
|
|
|
19601
19720
|
"record.metadata.download": "Downloads",
|
|
19602
19721
|
"record.metadata.feature.catalog": "Feature catalog",
|
|
19603
19722
|
"record.metadata.formats": "Formats",
|
|
19723
|
+
"record.metadata.isGeographical": "Geographical dataset",
|
|
19604
19724
|
"record.metadata.keywords": "Keywords",
|
|
19605
19725
|
"record.metadata.languages": "Languages",
|
|
19606
19726
|
"record.metadata.lastUpdate": "Last updated on {date}",
|
|
19727
|
+
"record.metadata.linked.datasets": "Associated datasets",
|
|
19728
|
+
"record.metadata.linked.records": "Associated content",
|
|
19729
|
+
"record.metadata.linked.reuses": "Associated reuses",
|
|
19730
|
+
"record.metadata.linked.services": "Associated services",
|
|
19731
|
+
"record.metadata.linked.sourceDatasets": "Source datasets",
|
|
19607
19732
|
"record.metadata.links": "Links",
|
|
19608
19733
|
"record.metadata.noUsage": "No usage conditions specified for this dataset.",
|
|
19609
19734
|
"record.metadata.otherConstraints": "Additional Conditions",
|
|
@@ -19630,8 +19755,7 @@ var en = {
|
|
|
19630
19755
|
"record.metadata.quality.topic.success": "Topic is specified",
|
|
19631
19756
|
"record.metadata.quality.updateFrequency.failed": "Update frequency is not specified",
|
|
19632
19757
|
"record.metadata.quality.updateFrequency.success": "Update frequency is specified",
|
|
19633
|
-
"record.metadata.related": "
|
|
19634
|
-
"record.metadata.related.contents": "Related content",
|
|
19758
|
+
"record.metadata.related": "Explore the catalog",
|
|
19635
19759
|
"record.metadata.ressources.and.links": "Resources and links",
|
|
19636
19760
|
"record.metadata.sheet": "Original metadata",
|
|
19637
19761
|
"record.metadata.status": "Status",
|
|
@@ -19643,7 +19767,6 @@ var en = {
|
|
|
19643
19767
|
"record.metadata.temporalExtent.untilDate": "Until { end }",
|
|
19644
19768
|
"record.metadata.title": "Title",
|
|
19645
19769
|
"record.metadata.topics": "Categories",
|
|
19646
|
-
"record.metadata.isGeographical": "Geographical dataset",
|
|
19647
19770
|
"record.metadata.uniqueId": "Unique Identifier",
|
|
19648
19771
|
"record.metadata.updateFrequency": "Data Update Frequency",
|
|
19649
19772
|
"record.metadata.updatedOn": "Updated on",
|
|
@@ -19763,7 +19886,6 @@ var en = {
|
|
|
19763
19886
|
"tooltip.html.copy": "Copy HTML",
|
|
19764
19887
|
"tooltip.id.copy": "Copy unique identifier",
|
|
19765
19888
|
"tooltip.url.copy": "Copy URL",
|
|
19766
|
-
"tooltip.url.open": "Open URL",
|
|
19767
19889
|
"ui.readLess": "Read less",
|
|
19768
19890
|
"ui.readMore": "Read more",
|
|
19769
19891
|
"wfs.feature.limit": "Too many features to display the WFS layer!",
|
|
@@ -19810,6 +19932,7 @@ var es = {
|
|
|
19810
19932
|
"dashboard.labels.mySpace": "Mi espacio",
|
|
19811
19933
|
"dashboard.records.all": "Catálogo",
|
|
19812
19934
|
"dashboard.records.hasDraft": "",
|
|
19935
|
+
"dashboard.records.isMultilingual": "Este registro es multilingüe ({languages})",
|
|
19813
19936
|
"dashboard.records.myDraft": "Mis borradores",
|
|
19814
19937
|
"dashboard.records.myRecords": "Mis Registros",
|
|
19815
19938
|
"dashboard.records.search": "Buscar \"{searchText}\"",
|
|
@@ -19984,9 +20107,13 @@ var es = {
|
|
|
19984
20107
|
"editor.record.form.license.odc-by": "",
|
|
19985
20108
|
"editor.record.form.license.pddl": "",
|
|
19986
20109
|
"editor.record.form.license.unknown": "",
|
|
20110
|
+
"editor.record.form.multilingual.activate": "",
|
|
20111
|
+
"editor.record.form.multilingual.default": "",
|
|
19987
20112
|
"editor.record.form.multilingual.enable": "",
|
|
20113
|
+
"editor.record.form.multilingual.forbidden": "",
|
|
19988
20114
|
"editor.record.form.multilingual.open": "",
|
|
19989
20115
|
"editor.record.form.multilingual.title": "",
|
|
20116
|
+
"editor.record.form.multilingual.validate": "",
|
|
19990
20117
|
"editor.record.form.page.accessAndContact": "",
|
|
19991
20118
|
"editor.record.form.page.description": "",
|
|
19992
20119
|
"editor.record.form.page.resources": "",
|
|
@@ -20016,8 +20143,13 @@ var es = {
|
|
|
20016
20143
|
"editor.record.loadError.body": "",
|
|
20017
20144
|
"editor.record.loadError.closeMessage": "",
|
|
20018
20145
|
"editor.record.loadError.title": "",
|
|
20019
|
-
"editor.record.lock.
|
|
20020
|
-
"editor.record.lock.
|
|
20146
|
+
"editor.record.lock.harvested": "",
|
|
20147
|
+
"editor.record.lock.owner": "",
|
|
20148
|
+
"editor.record.lock.resourceType": "",
|
|
20149
|
+
"editor.record.multilingual.confirmation.cancelText": "",
|
|
20150
|
+
"editor.record.multilingual.confirmation.confirmText": "",
|
|
20151
|
+
"editor.record.multilingual.confirmation.message": "",
|
|
20152
|
+
"editor.record.multilingual.confirmation.title": "",
|
|
20021
20153
|
"editor.record.onlineResource.protocol.other": "",
|
|
20022
20154
|
"editor.record.onlineResourceError.body": "",
|
|
20023
20155
|
"editor.record.onlineResourceError.closeMessage": "",
|
|
@@ -20078,20 +20210,32 @@ var es = {
|
|
|
20078
20210
|
"input.image.uploadErrorLabel": "",
|
|
20079
20211
|
"input.image.uploadProgressCancel": "",
|
|
20080
20212
|
"input.image.uploadProgressLabel": "",
|
|
20213
|
+
"language.ar": "",
|
|
20214
|
+
"language.az": "",
|
|
20081
20215
|
"language.ca": "Catalán",
|
|
20082
20216
|
"language.cs": "Checo",
|
|
20217
|
+
"language.cy": "",
|
|
20218
|
+
"language.da": "",
|
|
20083
20219
|
"language.de": "Alemán",
|
|
20084
20220
|
"language.en": "Inglés",
|
|
20085
20221
|
"language.es": "Español",
|
|
20086
20222
|
"language.fi": "Finlandés",
|
|
20087
20223
|
"language.fr": "Francés",
|
|
20224
|
+
"language.hy": "",
|
|
20088
20225
|
"language.is": "Islandés",
|
|
20089
20226
|
"language.it": "Italiano",
|
|
20227
|
+
"language.ka": "",
|
|
20090
20228
|
"language.ko": "Coreano",
|
|
20091
20229
|
"language.nl": "Neerlandés",
|
|
20230
|
+
"language.no": "",
|
|
20231
|
+
"language.pl": "",
|
|
20092
20232
|
"language.pt": "Portugués",
|
|
20233
|
+
"language.rm": "",
|
|
20093
20234
|
"language.ru": "Ruso",
|
|
20094
20235
|
"language.sk": "Eslovaco",
|
|
20236
|
+
"language.sv": "",
|
|
20237
|
+
"language.tr": "",
|
|
20238
|
+
"language.uk": "",
|
|
20095
20239
|
"language.zh": "Chino",
|
|
20096
20240
|
"map.add.layer": "",
|
|
20097
20241
|
"map.add.layer.catalog": "",
|
|
@@ -20138,6 +20282,7 @@ var es = {
|
|
|
20138
20282
|
"record.action.duplicate": "",
|
|
20139
20283
|
"record.action.duplicating": "",
|
|
20140
20284
|
"record.action.rollback": "",
|
|
20285
|
+
"record.action.switchLang": "",
|
|
20141
20286
|
"record.action.view": "",
|
|
20142
20287
|
"record.card.metadata.contact": "",
|
|
20143
20288
|
"record.externalViewer.open": "",
|
|
@@ -20188,9 +20333,15 @@ var es = {
|
|
|
20188
20333
|
"record.metadata.download": "",
|
|
20189
20334
|
"record.metadata.feature.catalog": "",
|
|
20190
20335
|
"record.metadata.formats": "",
|
|
20336
|
+
"record.metadata.isGeographical": "",
|
|
20191
20337
|
"record.metadata.keywords": "",
|
|
20192
20338
|
"record.metadata.languages": "",
|
|
20193
20339
|
"record.metadata.lastUpdate": "",
|
|
20340
|
+
"record.metadata.linked.datasets": "",
|
|
20341
|
+
"record.metadata.linked.records": "",
|
|
20342
|
+
"record.metadata.linked.reuses": "",
|
|
20343
|
+
"record.metadata.linked.services": "",
|
|
20344
|
+
"record.metadata.linked.sourceDatasets": "",
|
|
20194
20345
|
"record.metadata.links": "",
|
|
20195
20346
|
"record.metadata.noUsage": "",
|
|
20196
20347
|
"record.metadata.otherConstraints": "",
|
|
@@ -20218,7 +20369,6 @@ var es = {
|
|
|
20218
20369
|
"record.metadata.quality.updateFrequency.failed": "",
|
|
20219
20370
|
"record.metadata.quality.updateFrequency.success": "",
|
|
20220
20371
|
"record.metadata.related": "",
|
|
20221
|
-
"record.metadata.related.contents": "",
|
|
20222
20372
|
"record.metadata.ressources.and.links": "Recursos y enlaces",
|
|
20223
20373
|
"record.metadata.sheet": "",
|
|
20224
20374
|
"record.metadata.status": "",
|
|
@@ -20230,7 +20380,6 @@ var es = {
|
|
|
20230
20380
|
"record.metadata.temporalExtent.untilDate": "",
|
|
20231
20381
|
"record.metadata.title": "",
|
|
20232
20382
|
"record.metadata.topics": "",
|
|
20233
|
-
"record.metadata.isGeographical": "",
|
|
20234
20383
|
"record.metadata.uniqueId": "",
|
|
20235
20384
|
"record.metadata.updateFrequency": "",
|
|
20236
20385
|
"record.metadata.updatedOn": "",
|
|
@@ -20350,7 +20499,6 @@ var es = {
|
|
|
20350
20499
|
"tooltip.html.copy": "",
|
|
20351
20500
|
"tooltip.id.copy": "",
|
|
20352
20501
|
"tooltip.url.copy": "",
|
|
20353
|
-
"tooltip.url.open": "",
|
|
20354
20502
|
"ui.readLess": "",
|
|
20355
20503
|
"ui.readMore": "",
|
|
20356
20504
|
"wfs.feature.limit": "",
|
|
@@ -20397,6 +20545,7 @@ var fr = {
|
|
|
20397
20545
|
"dashboard.labels.mySpace": "Mon espace",
|
|
20398
20546
|
"dashboard.records.all": "Jeux de données",
|
|
20399
20547
|
"dashboard.records.hasDraft": "brouillon",
|
|
20548
|
+
"dashboard.records.isMultilingual": "Cet enregistrement est multilingue ({languages})",
|
|
20400
20549
|
"dashboard.records.myDraft": "Mes brouillons",
|
|
20401
20550
|
"dashboard.records.myRecords": "Mes jeux de données",
|
|
20402
20551
|
"dashboard.records.search": "Résultats pour \"{searchText}\"",
|
|
@@ -20571,9 +20720,13 @@ var fr = {
|
|
|
20571
20720
|
"editor.record.form.license.odc-by": "Open Data Commons ODC-By",
|
|
20572
20721
|
"editor.record.form.license.pddl": "Open Data Commons PDDL",
|
|
20573
20722
|
"editor.record.form.license.unknown": "Inconnue ou absente",
|
|
20723
|
+
"editor.record.form.multilingual.activate": "Activez les langues",
|
|
20724
|
+
"editor.record.form.multilingual.default": "Par défaut",
|
|
20574
20725
|
"editor.record.form.multilingual.enable": "Mode Multilingue",
|
|
20726
|
+
"editor.record.form.multilingual.forbidden": "Vous ne pouvez pas supprimer le language par défaut",
|
|
20575
20727
|
"editor.record.form.multilingual.open": "Ouvrir le menu multilingue",
|
|
20576
20728
|
"editor.record.form.multilingual.title": "Traductions",
|
|
20729
|
+
"editor.record.form.multilingual.validate": "Valider",
|
|
20577
20730
|
"editor.record.form.page.accessAndContact": "Informations pour l'utilisation",
|
|
20578
20731
|
"editor.record.form.page.description": "Description du jeu de données",
|
|
20579
20732
|
"editor.record.form.page.resources": "Ressources",
|
|
@@ -20603,8 +20756,13 @@ var fr = {
|
|
|
20603
20756
|
"editor.record.loadError.body": "Le jeu de données n'a pas pu être chargé :",
|
|
20604
20757
|
"editor.record.loadError.closeMessage": "Compris",
|
|
20605
20758
|
"editor.record.loadError.title": "Erreur lors du chargement",
|
|
20606
|
-
"editor.record.lock.
|
|
20607
|
-
"editor.record.lock.
|
|
20759
|
+
"editor.record.lock.harvested": "Les jeux de données moissonnés ne sont pas éditables",
|
|
20760
|
+
"editor.record.lock.owner": "Vous n'êtes pas éditeur d'un des groupes autorisés",
|
|
20761
|
+
"editor.record.lock.resourceType": "Les fiches d'un type autre que jeu de données ne sont pas éditables",
|
|
20762
|
+
"editor.record.multilingual.confirmation.cancelText": "Garder le(s) language(s)",
|
|
20763
|
+
"editor.record.multilingual.confirmation.confirmText": "Supprimer le(s) language(s)",
|
|
20764
|
+
"editor.record.multilingual.confirmation.message": "Vous allez supprimer un ou plusieurs languages, ce qui supprimera toutes les traductions qui y sont liées et est irréversible. Voulez-vous procéder ?",
|
|
20765
|
+
"editor.record.multilingual.confirmation.title": "Suppression de language(s)",
|
|
20608
20766
|
"editor.record.onlineResource.protocol.other": "Autre",
|
|
20609
20767
|
"editor.record.onlineResourceError.body": "Une erreur est survenue lors de l'ajout de la ressource :",
|
|
20610
20768
|
"editor.record.onlineResourceError.closeMessage": "Compris",
|
|
@@ -20665,20 +20823,32 @@ var fr = {
|
|
|
20665
20823
|
"input.image.uploadErrorLabel": "L'image n'a pas pu être chargée",
|
|
20666
20824
|
"input.image.uploadProgressCancel": "Annuler",
|
|
20667
20825
|
"input.image.uploadProgressLabel": "Chargement en cours...",
|
|
20826
|
+
"language.ar": "Arabe",
|
|
20827
|
+
"language.az": "Azéri",
|
|
20668
20828
|
"language.ca": "Catalan",
|
|
20669
20829
|
"language.cs": "Tchèque",
|
|
20830
|
+
"language.cy": "Gallois",
|
|
20831
|
+
"language.da": "Danois",
|
|
20670
20832
|
"language.de": "Allemand",
|
|
20671
20833
|
"language.en": "Anglais",
|
|
20672
20834
|
"language.es": "Espagnol",
|
|
20673
20835
|
"language.fi": "Finnois",
|
|
20674
20836
|
"language.fr": "Français",
|
|
20837
|
+
"language.hy": "Arménien",
|
|
20675
20838
|
"language.is": "Islandais",
|
|
20676
20839
|
"language.it": "Italien",
|
|
20840
|
+
"language.ka": "Géorgien",
|
|
20677
20841
|
"language.ko": "Coréen",
|
|
20678
20842
|
"language.nl": "Néerlandais",
|
|
20843
|
+
"language.no": "Norvégien",
|
|
20844
|
+
"language.pl": "Polonais",
|
|
20679
20845
|
"language.pt": "Portugais",
|
|
20846
|
+
"language.rm": "Romanche",
|
|
20680
20847
|
"language.ru": "Russe",
|
|
20681
20848
|
"language.sk": "Slovaque",
|
|
20849
|
+
"language.sv": "Suédois",
|
|
20850
|
+
"language.tr": "Turque",
|
|
20851
|
+
"language.uk": "Ukrainien",
|
|
20682
20852
|
"language.zh": "Chinois",
|
|
20683
20853
|
"map.add.layer": "Ajouter une couche",
|
|
20684
20854
|
"map.add.layer.catalog": "Du catalogue",
|
|
@@ -20725,6 +20895,7 @@ var fr = {
|
|
|
20725
20895
|
"record.action.duplicate": "Dupliquer",
|
|
20726
20896
|
"record.action.duplicating": "Duplication...",
|
|
20727
20897
|
"record.action.rollback": "Restaurer",
|
|
20898
|
+
"record.action.switchLang": "Marquer par défaut",
|
|
20728
20899
|
"record.action.view": "Voir",
|
|
20729
20900
|
"record.card.metadata.contact": "Contact de la métadonnée ",
|
|
20730
20901
|
"record.externalViewer.open": "Ouvrir dans le visualiseur externe",
|
|
@@ -20775,9 +20946,15 @@ var fr = {
|
|
|
20775
20946
|
"record.metadata.download": "Téléchargements",
|
|
20776
20947
|
"record.metadata.feature.catalog": "Catalogue d'attributs",
|
|
20777
20948
|
"record.metadata.formats": "Formats",
|
|
20949
|
+
"record.metadata.isGeographical": "Donnée géographique",
|
|
20778
20950
|
"record.metadata.keywords": "Mots-clés",
|
|
20779
20951
|
"record.metadata.languages": "Langues",
|
|
20780
20952
|
"record.metadata.lastUpdate": "Mis à jour le {date}",
|
|
20953
|
+
"record.metadata.linked.datasets": "Jeux de données associés",
|
|
20954
|
+
"record.metadata.linked.records": "Contenus associés",
|
|
20955
|
+
"record.metadata.linked.reuses": "Réutilisations associées",
|
|
20956
|
+
"record.metadata.linked.services": "Services associés",
|
|
20957
|
+
"record.metadata.linked.sourceDatasets": "Jeux de données sources",
|
|
20781
20958
|
"record.metadata.links": "Liens",
|
|
20782
20959
|
"record.metadata.noUsage": "Aucune condition d'utilisation spécifiée pour ces données",
|
|
20783
20960
|
"record.metadata.otherConstraints": "Limitations d'usage",
|
|
@@ -20804,8 +20981,7 @@ var fr = {
|
|
|
20804
20981
|
"record.metadata.quality.topic.success": "Le thème est renseigné",
|
|
20805
20982
|
"record.metadata.quality.updateFrequency.failed": "La fréquence de mise à jour n'est pas renseignée",
|
|
20806
20983
|
"record.metadata.quality.updateFrequency.success": "La fréquence de mise à jour est renseignée",
|
|
20807
|
-
"record.metadata.related": "
|
|
20808
|
-
"record.metadata.related.contents": "Contenu associé",
|
|
20984
|
+
"record.metadata.related": "Explorez le catalogue",
|
|
20809
20985
|
"record.metadata.ressources.and.links": "Ressources et liens",
|
|
20810
20986
|
"record.metadata.sheet": "Fiche de métadonnées d'origine",
|
|
20811
20987
|
"record.metadata.status": "Statut",
|
|
@@ -20817,7 +20993,6 @@ var fr = {
|
|
|
20817
20993
|
"record.metadata.temporalExtent.untilDate": "Jusqu'au { end }",
|
|
20818
20994
|
"record.metadata.title": "Intitulé",
|
|
20819
20995
|
"record.metadata.topics": "Catégories",
|
|
20820
|
-
"record.metadata.isGeographical": "Donnée géographique",
|
|
20821
20996
|
"record.metadata.uniqueId": "Identificateur de ressource unique",
|
|
20822
20997
|
"record.metadata.updateFrequency": "Fréquence de mise à jour des données",
|
|
20823
20998
|
"record.metadata.updatedOn": "Modifié le",
|
|
@@ -20937,7 +21112,6 @@ var fr = {
|
|
|
20937
21112
|
"tooltip.html.copy": "Copier le HTML",
|
|
20938
21113
|
"tooltip.id.copy": "Copier l'identifiant unique",
|
|
20939
21114
|
"tooltip.url.copy": "Copier l'URL",
|
|
20940
|
-
"tooltip.url.open": "Ouvrir l'URL",
|
|
20941
21115
|
"ui.readLess": "Réduire",
|
|
20942
21116
|
"ui.readMore": "Lire la suite",
|
|
20943
21117
|
"wfs.feature.limit": "Trop d'objets pour afficher la couche WFS !",
|
|
@@ -20984,6 +21158,7 @@ var it = {
|
|
|
20984
21158
|
"dashboard.labels.mySpace": "Il mio spazio",
|
|
20985
21159
|
"dashboard.records.all": "Catalogo",
|
|
20986
21160
|
"dashboard.records.hasDraft": "Bozza",
|
|
21161
|
+
"dashboard.records.isMultilingual": "Questo record è multilingue ({languages})",
|
|
20987
21162
|
"dashboard.records.myDraft": "Le mie bozze",
|
|
20988
21163
|
"dashboard.records.myRecords": "I miei dati",
|
|
20989
21164
|
"dashboard.records.search": "Risultati per \"{searchText}\"",
|
|
@@ -21161,6 +21336,10 @@ var it = {
|
|
|
21161
21336
|
"editor.record.form.multilingual.enable": "Aprire il pannello multilingue",
|
|
21162
21337
|
"editor.record.form.multilingual.open": "Modalità multilingue",
|
|
21163
21338
|
"editor.record.form.multilingual.title": "Traduzioni",
|
|
21339
|
+
"editor.record.form.multilingual.activate": "",
|
|
21340
|
+
"editor.record.form.multilingual.default": "",
|
|
21341
|
+
"editor.record.form.multilingual.forbidden": "",
|
|
21342
|
+
"editor.record.form.multilingual.validate": "",
|
|
21164
21343
|
"editor.record.form.page.accessAndContact": "Informazioni per l'uso",
|
|
21165
21344
|
"editor.record.form.page.description": "Descrizione del dataset",
|
|
21166
21345
|
"editor.record.form.page.resources": "Risorse",
|
|
@@ -21190,8 +21369,13 @@ var it = {
|
|
|
21190
21369
|
"editor.record.loadError.body": "Impossibile caricare il dataset:",
|
|
21191
21370
|
"editor.record.loadError.closeMessage": "Capito",
|
|
21192
21371
|
"editor.record.loadError.title": "Errore durante il caricamento",
|
|
21193
|
-
"editor.record.lock.
|
|
21194
|
-
"editor.record.lock.
|
|
21372
|
+
"editor.record.lock.harvested": "",
|
|
21373
|
+
"editor.record.lock.owner": "Non è un editore di uno dei gruppi autorizzati",
|
|
21374
|
+
"editor.record.lock.resourceType": "I record con il formato 'servizio' o 'riutilizzo' non sono modificabili",
|
|
21375
|
+
"editor.record.multilingual.confirmation.cancelText": "",
|
|
21376
|
+
"editor.record.multilingual.confirmation.confirmText": "",
|
|
21377
|
+
"editor.record.multilingual.confirmation.message": "",
|
|
21378
|
+
"editor.record.multilingual.confirmation.title": "",
|
|
21195
21379
|
"editor.record.onlineResource.protocol.other": "Altro",
|
|
21196
21380
|
"editor.record.onlineResourceError.body": "Ha successo un'errore durante l'aggiunta della risorsa:",
|
|
21197
21381
|
"editor.record.onlineResourceError.closeMessage": "Capito",
|
|
@@ -21252,20 +21436,32 @@ var it = {
|
|
|
21252
21436
|
"input.image.uploadErrorLabel": "Impossibile caricare l'immagine",
|
|
21253
21437
|
"input.image.uploadProgressCancel": "Annulla",
|
|
21254
21438
|
"input.image.uploadProgressLabel": "Caricamento...",
|
|
21439
|
+
"language.ar": "",
|
|
21440
|
+
"language.az": "",
|
|
21255
21441
|
"language.ca": "Catalano",
|
|
21256
21442
|
"language.cs": "Ceco",
|
|
21443
|
+
"language.cy": "",
|
|
21444
|
+
"language.da": "",
|
|
21257
21445
|
"language.de": "Tedesco",
|
|
21258
21446
|
"language.en": "Inglese",
|
|
21259
21447
|
"language.es": "Spagnolo",
|
|
21260
21448
|
"language.fi": "Finlandese",
|
|
21261
21449
|
"language.fr": "Francese",
|
|
21450
|
+
"language.hy": "",
|
|
21262
21451
|
"language.is": "Islandese",
|
|
21263
21452
|
"language.it": "Italiano",
|
|
21453
|
+
"language.ka": "",
|
|
21264
21454
|
"language.ko": "Coreano",
|
|
21265
21455
|
"language.nl": "Olandese",
|
|
21456
|
+
"language.no": "",
|
|
21457
|
+
"language.pl": "",
|
|
21266
21458
|
"language.pt": "Portoghese",
|
|
21459
|
+
"language.rm": "",
|
|
21267
21460
|
"language.ru": "Russo",
|
|
21268
21461
|
"language.sk": "Slovacco",
|
|
21462
|
+
"language.sv": "",
|
|
21463
|
+
"language.tr": "",
|
|
21464
|
+
"language.uk": "",
|
|
21269
21465
|
"language.zh": "Cinese",
|
|
21270
21466
|
"map.add.layer": "Aggiungere un layer",
|
|
21271
21467
|
"map.add.layer.catalog": "Dal catalogo",
|
|
@@ -21312,6 +21508,7 @@ var it = {
|
|
|
21312
21508
|
"record.action.duplicate": "Duplicato",
|
|
21313
21509
|
"record.action.duplicating": "Duplicazione",
|
|
21314
21510
|
"record.action.rollback": "Annulla",
|
|
21511
|
+
"record.action.switchLang": "",
|
|
21315
21512
|
"record.action.view": "Visualizza",
|
|
21316
21513
|
"record.card.metadata.contact": "Contatto del metadata",
|
|
21317
21514
|
"record.externalViewer.open": "Aprire nel visualizzatore esterno",
|
|
@@ -21362,9 +21559,15 @@ var it = {
|
|
|
21362
21559
|
"record.metadata.download": "Download",
|
|
21363
21560
|
"record.metadata.feature.catalog": "Catalogo dei oggetti",
|
|
21364
21561
|
"record.metadata.formats": "Formati",
|
|
21562
|
+
"record.metadata.isGeographical": "Dati geografici",
|
|
21365
21563
|
"record.metadata.keywords": "Parole chiave",
|
|
21366
21564
|
"record.metadata.languages": "Lingue",
|
|
21367
21565
|
"record.metadata.lastUpdate": "Ultimo aggiornamento il {date}",
|
|
21566
|
+
"record.metadata.linked.datasets": "",
|
|
21567
|
+
"record.metadata.linked.records": "",
|
|
21568
|
+
"record.metadata.linked.reuses": "",
|
|
21569
|
+
"record.metadata.linked.services": "",
|
|
21570
|
+
"record.metadata.linked.sourceDatasets": "",
|
|
21368
21571
|
"record.metadata.links": "Collegamenti",
|
|
21369
21572
|
"record.metadata.noUsage": "Nessuna condizione d'uso specificata per questi dati",
|
|
21370
21573
|
"record.metadata.otherConstraints": "Limitazioni di uso",
|
|
@@ -21392,7 +21595,6 @@ var it = {
|
|
|
21392
21595
|
"record.metadata.quality.updateFrequency.failed": "La frequenza di aggiornamento non è specificata",
|
|
21393
21596
|
"record.metadata.quality.updateFrequency.success": "La frequenza di aggiornamento è specificata",
|
|
21394
21597
|
"record.metadata.related": "Vedi anche",
|
|
21395
|
-
"record.metadata.related.contents": "Contenuti correlati",
|
|
21396
21598
|
"record.metadata.ressources.and.links": "Risorse e collegamenti",
|
|
21397
21599
|
"record.metadata.sheet": "Origine del metadata",
|
|
21398
21600
|
"record.metadata.status": "Stato",
|
|
@@ -21404,7 +21606,6 @@ var it = {
|
|
|
21404
21606
|
"record.metadata.temporalExtent.untilDate": "Fino a {end}",
|
|
21405
21607
|
"record.metadata.title": "Titolo",
|
|
21406
21608
|
"record.metadata.topics": "Categorie",
|
|
21407
|
-
"record.metadata.isGeographical": "Dati geografici",
|
|
21408
21609
|
"record.metadata.uniqueId": "Identificatore unico di risorsa",
|
|
21409
21610
|
"record.metadata.updateFrequency": "Frequenza di aggiornamento dei dati",
|
|
21410
21611
|
"record.metadata.updatedOn": "Modificato il",
|
|
@@ -21524,7 +21725,6 @@ var it = {
|
|
|
21524
21725
|
"tooltip.html.copy": "Copiare il HTML",
|
|
21525
21726
|
"tooltip.id.copy": "Copiare l'identificatore unico",
|
|
21526
21727
|
"tooltip.url.copy": "Copiare l'URL",
|
|
21527
|
-
"tooltip.url.open": "Aprire l'URL",
|
|
21528
21728
|
"ui.readLess": "Ridurre",
|
|
21529
21729
|
"ui.readMore": "Leggere di più",
|
|
21530
21730
|
"wfs.feature.limit": "Troppi oggetti per visualizzare il WFS layer!",
|
|
@@ -21571,6 +21771,7 @@ var nl = {
|
|
|
21571
21771
|
"dashboard.labels.mySpace": "Mijn ruimte",
|
|
21572
21772
|
"dashboard.records.all": "Catalogus",
|
|
21573
21773
|
"dashboard.records.hasDraft": "",
|
|
21774
|
+
"dashboard.records.isMultilingual": "Dit record is meertalig ({languages})",
|
|
21574
21775
|
"dashboard.records.myDraft": "Mijn concepten",
|
|
21575
21776
|
"dashboard.records.myRecords": "Mijn Records",
|
|
21576
21777
|
"dashboard.records.search": "Zoeken naar \"{searchText}\"",
|
|
@@ -21745,9 +21946,13 @@ var nl = {
|
|
|
21745
21946
|
"editor.record.form.license.odc-by": "",
|
|
21746
21947
|
"editor.record.form.license.pddl": "",
|
|
21747
21948
|
"editor.record.form.license.unknown": "",
|
|
21949
|
+
"editor.record.form.multilingual.activate": "",
|
|
21950
|
+
"editor.record.form.multilingual.default": "",
|
|
21748
21951
|
"editor.record.form.multilingual.enable": "",
|
|
21952
|
+
"editor.record.form.multilingual.forbidden": "",
|
|
21749
21953
|
"editor.record.form.multilingual.open": "",
|
|
21750
21954
|
"editor.record.form.multilingual.title": "",
|
|
21955
|
+
"editor.record.form.multilingual.validate": "",
|
|
21751
21956
|
"editor.record.form.page.accessAndContact": "",
|
|
21752
21957
|
"editor.record.form.page.description": "",
|
|
21753
21958
|
"editor.record.form.page.resources": "",
|
|
@@ -21777,8 +21982,13 @@ var nl = {
|
|
|
21777
21982
|
"editor.record.loadError.body": "",
|
|
21778
21983
|
"editor.record.loadError.closeMessage": "",
|
|
21779
21984
|
"editor.record.loadError.title": "",
|
|
21780
|
-
"editor.record.lock.
|
|
21781
|
-
"editor.record.lock.
|
|
21985
|
+
"editor.record.lock.harvested": "",
|
|
21986
|
+
"editor.record.lock.owner": "",
|
|
21987
|
+
"editor.record.lock.resourceType": "",
|
|
21988
|
+
"editor.record.multilingual.confirmation.cancelText": "",
|
|
21989
|
+
"editor.record.multilingual.confirmation.confirmText": "",
|
|
21990
|
+
"editor.record.multilingual.confirmation.message": "",
|
|
21991
|
+
"editor.record.multilingual.confirmation.title": "",
|
|
21782
21992
|
"editor.record.onlineResource.protocol.other": "",
|
|
21783
21993
|
"editor.record.onlineResourceError.body": "",
|
|
21784
21994
|
"editor.record.onlineResourceError.closeMessage": "",
|
|
@@ -21839,20 +22049,32 @@ var nl = {
|
|
|
21839
22049
|
"input.image.uploadErrorLabel": "",
|
|
21840
22050
|
"input.image.uploadProgressCancel": "",
|
|
21841
22051
|
"input.image.uploadProgressLabel": "",
|
|
22052
|
+
"language.ar": "",
|
|
22053
|
+
"language.az": "",
|
|
21842
22054
|
"language.ca": "Catalaans",
|
|
21843
22055
|
"language.cs": "Tsjechisch",
|
|
22056
|
+
"language.cy": "",
|
|
22057
|
+
"language.da": "",
|
|
21844
22058
|
"language.de": "Duits",
|
|
21845
22059
|
"language.en": "Engels",
|
|
21846
22060
|
"language.es": "Spaans",
|
|
21847
22061
|
"language.fi": "Fins",
|
|
21848
22062
|
"language.fr": "Frans",
|
|
22063
|
+
"language.hy": "",
|
|
21849
22064
|
"language.is": "IJslands",
|
|
21850
22065
|
"language.it": "Italiaans",
|
|
22066
|
+
"language.ka": "",
|
|
21851
22067
|
"language.ko": "Koreaans",
|
|
21852
22068
|
"language.nl": "Nederlands",
|
|
22069
|
+
"language.no": "",
|
|
22070
|
+
"language.pl": "",
|
|
21853
22071
|
"language.pt": "Portugees",
|
|
22072
|
+
"language.rm": "",
|
|
21854
22073
|
"language.ru": "Russisch",
|
|
21855
22074
|
"language.sk": "Slowaaks",
|
|
22075
|
+
"language.sv": "",
|
|
22076
|
+
"language.tr": "",
|
|
22077
|
+
"language.uk": "",
|
|
21856
22078
|
"language.zh": "Chinees",
|
|
21857
22079
|
"map.add.layer": "",
|
|
21858
22080
|
"map.add.layer.catalog": "",
|
|
@@ -21899,6 +22121,7 @@ var nl = {
|
|
|
21899
22121
|
"record.action.duplicate": "",
|
|
21900
22122
|
"record.action.duplicating": "",
|
|
21901
22123
|
"record.action.rollback": "",
|
|
22124
|
+
"record.action.switchLang": "",
|
|
21902
22125
|
"record.action.view": "",
|
|
21903
22126
|
"record.card.metadata.contact": "",
|
|
21904
22127
|
"record.externalViewer.open": "",
|
|
@@ -21949,9 +22172,15 @@ var nl = {
|
|
|
21949
22172
|
"record.metadata.download": "",
|
|
21950
22173
|
"record.metadata.feature.catalog": "",
|
|
21951
22174
|
"record.metadata.formats": "",
|
|
22175
|
+
"record.metadata.isGeographical": "",
|
|
21952
22176
|
"record.metadata.keywords": "",
|
|
21953
22177
|
"record.metadata.languages": "",
|
|
21954
22178
|
"record.metadata.lastUpdate": "",
|
|
22179
|
+
"record.metadata.linked.datasets": "",
|
|
22180
|
+
"record.metadata.linked.records": "",
|
|
22181
|
+
"record.metadata.linked.reuses": "",
|
|
22182
|
+
"record.metadata.linked.services": "",
|
|
22183
|
+
"record.metadata.linked.sourceDatasets": "",
|
|
21955
22184
|
"record.metadata.links": "",
|
|
21956
22185
|
"record.metadata.noUsage": "",
|
|
21957
22186
|
"record.metadata.otherConstraints": "",
|
|
@@ -21979,7 +22208,6 @@ var nl = {
|
|
|
21979
22208
|
"record.metadata.quality.updateFrequency.failed": "",
|
|
21980
22209
|
"record.metadata.quality.updateFrequency.success": "",
|
|
21981
22210
|
"record.metadata.related": "",
|
|
21982
|
-
"record.metadata.related.contents": "",
|
|
21983
22211
|
"record.metadata.ressources.and.links": "Bronnen en links",
|
|
21984
22212
|
"record.metadata.sheet": "",
|
|
21985
22213
|
"record.metadata.status": "",
|
|
@@ -21991,7 +22219,6 @@ var nl = {
|
|
|
21991
22219
|
"record.metadata.temporalExtent.untilDate": "",
|
|
21992
22220
|
"record.metadata.title": "",
|
|
21993
22221
|
"record.metadata.topics": "",
|
|
21994
|
-
"record.metadata.isGeographical": "",
|
|
21995
22222
|
"record.metadata.uniqueId": "",
|
|
21996
22223
|
"record.metadata.updateFrequency": "",
|
|
21997
22224
|
"record.metadata.updatedOn": "",
|
|
@@ -22111,7 +22338,6 @@ var nl = {
|
|
|
22111
22338
|
"tooltip.html.copy": "",
|
|
22112
22339
|
"tooltip.id.copy": "",
|
|
22113
22340
|
"tooltip.url.copy": "",
|
|
22114
|
-
"tooltip.url.open": "",
|
|
22115
22341
|
"ui.readLess": "",
|
|
22116
22342
|
"ui.readMore": "",
|
|
22117
22343
|
"wfs.feature.limit": "",
|
|
@@ -22158,6 +22384,7 @@ var pt = {
|
|
|
22158
22384
|
"dashboard.labels.mySpace": "Meu espaço",
|
|
22159
22385
|
"dashboard.records.all": "Catálogo",
|
|
22160
22386
|
"dashboard.records.hasDraft": "",
|
|
22387
|
+
"dashboard.records.isMultilingual": "Este registro é multilíngue ({languages})",
|
|
22161
22388
|
"dashboard.records.myDraft": "Meus rascunhos",
|
|
22162
22389
|
"dashboard.records.myRecords": "Meus Registros",
|
|
22163
22390
|
"dashboard.records.search": "Buscar por \"{searchText}\"",
|
|
@@ -22332,9 +22559,13 @@ var pt = {
|
|
|
22332
22559
|
"editor.record.form.license.odc-by": "",
|
|
22333
22560
|
"editor.record.form.license.pddl": "",
|
|
22334
22561
|
"editor.record.form.license.unknown": "",
|
|
22562
|
+
"editor.record.form.multilingual.activate": "",
|
|
22563
|
+
"editor.record.form.multilingual.default": "",
|
|
22335
22564
|
"editor.record.form.multilingual.enable": "",
|
|
22565
|
+
"editor.record.form.multilingual.forbidden": "",
|
|
22336
22566
|
"editor.record.form.multilingual.open": "",
|
|
22337
22567
|
"editor.record.form.multilingual.title": "",
|
|
22568
|
+
"editor.record.form.multilingual.validate": "",
|
|
22338
22569
|
"editor.record.form.page.accessAndContact": "",
|
|
22339
22570
|
"editor.record.form.page.description": "",
|
|
22340
22571
|
"editor.record.form.page.resources": "",
|
|
@@ -22364,8 +22595,13 @@ var pt = {
|
|
|
22364
22595
|
"editor.record.loadError.body": "",
|
|
22365
22596
|
"editor.record.loadError.closeMessage": "",
|
|
22366
22597
|
"editor.record.loadError.title": "",
|
|
22367
|
-
"editor.record.lock.
|
|
22368
|
-
"editor.record.lock.
|
|
22598
|
+
"editor.record.lock.harvested": "",
|
|
22599
|
+
"editor.record.lock.owner": "",
|
|
22600
|
+
"editor.record.lock.resourceType": "",
|
|
22601
|
+
"editor.record.multilingual.confirmation.cancelText": "",
|
|
22602
|
+
"editor.record.multilingual.confirmation.confirmText": "",
|
|
22603
|
+
"editor.record.multilingual.confirmation.message": "",
|
|
22604
|
+
"editor.record.multilingual.confirmation.title": "",
|
|
22369
22605
|
"editor.record.onlineResource.protocol.other": "",
|
|
22370
22606
|
"editor.record.onlineResourceError.body": "",
|
|
22371
22607
|
"editor.record.onlineResourceError.closeMessage": "",
|
|
@@ -22426,20 +22662,32 @@ var pt = {
|
|
|
22426
22662
|
"input.image.uploadErrorLabel": "",
|
|
22427
22663
|
"input.image.uploadProgressCancel": "",
|
|
22428
22664
|
"input.image.uploadProgressLabel": "",
|
|
22665
|
+
"language.ar": "",
|
|
22666
|
+
"language.az": "",
|
|
22429
22667
|
"language.ca": "Catalão",
|
|
22430
22668
|
"language.cs": "Tcheco",
|
|
22669
|
+
"language.cy": "",
|
|
22670
|
+
"language.da": "",
|
|
22431
22671
|
"language.de": "Alemão",
|
|
22432
22672
|
"language.en": "Inglês",
|
|
22433
22673
|
"language.es": "Espanhol",
|
|
22434
22674
|
"language.fi": "Finlandês",
|
|
22435
22675
|
"language.fr": "Francês",
|
|
22676
|
+
"language.hy": "",
|
|
22436
22677
|
"language.is": "Islandês",
|
|
22437
22678
|
"language.it": "Italiano",
|
|
22679
|
+
"language.ka": "",
|
|
22438
22680
|
"language.ko": "Coreano",
|
|
22439
22681
|
"language.nl": "Holandês",
|
|
22682
|
+
"language.no": "",
|
|
22683
|
+
"language.pl": "",
|
|
22440
22684
|
"language.pt": "Português",
|
|
22685
|
+
"language.rm": "",
|
|
22441
22686
|
"language.ru": "Russo",
|
|
22442
22687
|
"language.sk": "Eslovaco",
|
|
22688
|
+
"language.sv": "",
|
|
22689
|
+
"language.tr": "",
|
|
22690
|
+
"language.uk": "",
|
|
22443
22691
|
"language.zh": "Chinês",
|
|
22444
22692
|
"map.add.layer": "",
|
|
22445
22693
|
"map.add.layer.catalog": "",
|
|
@@ -22486,6 +22734,7 @@ var pt = {
|
|
|
22486
22734
|
"record.action.duplicate": "",
|
|
22487
22735
|
"record.action.duplicating": "",
|
|
22488
22736
|
"record.action.rollback": "",
|
|
22737
|
+
"record.action.switchLang": "",
|
|
22489
22738
|
"record.action.view": "",
|
|
22490
22739
|
"record.card.metadata.contact": "",
|
|
22491
22740
|
"record.externalViewer.open": "",
|
|
@@ -22536,9 +22785,15 @@ var pt = {
|
|
|
22536
22785
|
"record.metadata.download": "",
|
|
22537
22786
|
"record.metadata.feature.catalog": "",
|
|
22538
22787
|
"record.metadata.formats": "",
|
|
22788
|
+
"record.metadata.isGeographical": "",
|
|
22539
22789
|
"record.metadata.keywords": "",
|
|
22540
22790
|
"record.metadata.languages": "",
|
|
22541
22791
|
"record.metadata.lastUpdate": "",
|
|
22792
|
+
"record.metadata.linked.datasets": "",
|
|
22793
|
+
"record.metadata.linked.records": "",
|
|
22794
|
+
"record.metadata.linked.reuses": "",
|
|
22795
|
+
"record.metadata.linked.services": "",
|
|
22796
|
+
"record.metadata.linked.sourceDatasets": "",
|
|
22542
22797
|
"record.metadata.links": "",
|
|
22543
22798
|
"record.metadata.noUsage": "",
|
|
22544
22799
|
"record.metadata.otherConstraints": "",
|
|
@@ -22566,7 +22821,6 @@ var pt = {
|
|
|
22566
22821
|
"record.metadata.quality.updateFrequency.failed": "",
|
|
22567
22822
|
"record.metadata.quality.updateFrequency.success": "",
|
|
22568
22823
|
"record.metadata.related": "",
|
|
22569
|
-
"record.metadata.related.contents": "",
|
|
22570
22824
|
"record.metadata.ressources.and.links": "Recursos e links",
|
|
22571
22825
|
"record.metadata.sheet": "",
|
|
22572
22826
|
"record.metadata.status": "",
|
|
@@ -22578,7 +22832,6 @@ var pt = {
|
|
|
22578
22832
|
"record.metadata.temporalExtent.untilDate": "",
|
|
22579
22833
|
"record.metadata.title": "",
|
|
22580
22834
|
"record.metadata.topics": "",
|
|
22581
|
-
"record.metadata.isGeographical": "",
|
|
22582
22835
|
"record.metadata.uniqueId": "",
|
|
22583
22836
|
"record.metadata.updateFrequency": "",
|
|
22584
22837
|
"record.metadata.updatedOn": "",
|
|
@@ -22698,7 +22951,6 @@ var pt = {
|
|
|
22698
22951
|
"tooltip.html.copy": "",
|
|
22699
22952
|
"tooltip.id.copy": "",
|
|
22700
22953
|
"tooltip.url.copy": "",
|
|
22701
|
-
"tooltip.url.open": "",
|
|
22702
22954
|
"ui.readLess": "",
|
|
22703
22955
|
"ui.readMore": "",
|
|
22704
22956
|
"wfs.feature.limit": "",
|
|
@@ -22816,10 +23068,18 @@ class Gn4FieldMapper {
|
|
|
22816
23068
|
const langList = getAsArray(selectField(source, 'resourceLanguage'));
|
|
22817
23069
|
const languages = langList.map((lang) => LANG_3_TO_2_MAPPER[lang]);
|
|
22818
23070
|
const defaultLanguage = output.defaultLanguage ?? languages[0] ?? null; // set the first language as main one as fallback
|
|
22819
|
-
const otherLanguages = languages.filter((lang) => lang !== defaultLanguage);
|
|
22820
23071
|
return {
|
|
22821
23072
|
...output,
|
|
22822
23073
|
defaultLanguage,
|
|
23074
|
+
};
|
|
23075
|
+
},
|
|
23076
|
+
otherLanguage: (output, source) => {
|
|
23077
|
+
const langList = getAsArray(selectField(source, 'otherLanguage'));
|
|
23078
|
+
const languages = langList.map((lang) => LANG_3_TO_2_MAPPER[lang]);
|
|
23079
|
+
const defaultLanguage = output.defaultLanguage ?? languages[0] ?? null;
|
|
23080
|
+
const otherLanguages = languages.filter((lang) => lang !== defaultLanguage);
|
|
23081
|
+
return {
|
|
23082
|
+
...output,
|
|
22823
23083
|
otherLanguages,
|
|
22824
23084
|
};
|
|
22825
23085
|
},
|
|
@@ -22893,13 +23153,40 @@ class Gn4FieldMapper {
|
|
|
22893
23153
|
related: (output, source) => {
|
|
22894
23154
|
const fcatSource = selectField(getFirstValue(selectField(selectField(source, 'related'), 'fcats')) ?? {}, '_source');
|
|
22895
23155
|
const featureCatalogIdentifier = selectField(fcatSource, 'uuid');
|
|
22896
|
-
|
|
22897
|
-
|
|
23156
|
+
const sourceOfLinks = getAsArray(selectField(selectField(source, 'related'), 'hassources'));
|
|
23157
|
+
const sourceOfIdentifiers = sourceOfLinks
|
|
23158
|
+
.filter((link) => link['origin'] === 'catalog')
|
|
23159
|
+
.map((link) => {
|
|
23160
|
+
return selectField(selectField(link, '_source'), 'uuid');
|
|
23161
|
+
});
|
|
23162
|
+
const extraValues = {};
|
|
23163
|
+
if (featureCatalogIdentifier) {
|
|
23164
|
+
extraValues.featureCatalogIdentifier = featureCatalogIdentifier;
|
|
23165
|
+
}
|
|
23166
|
+
if (sourceOfIdentifiers && sourceOfIdentifiers.length > 0) {
|
|
23167
|
+
extraValues.sourceOfIdentifiers = sourceOfIdentifiers;
|
|
23168
|
+
}
|
|
23169
|
+
return Object.keys(extraValues).length > 0
|
|
23170
|
+
? this.addExtra(extraValues, output)
|
|
23171
|
+
: output;
|
|
23172
|
+
},
|
|
23173
|
+
recordLink: (output, source) => {
|
|
23174
|
+
const recordLinks = getAsArray(selectField(source, 'recordLink'));
|
|
23175
|
+
const sourcesIdentifiers = recordLinks
|
|
23176
|
+
.filter((link) => link['origin'] === 'catalog' && link['type'] === 'sources')
|
|
23177
|
+
.map((link) => selectField(link, 'to'));
|
|
23178
|
+
return sourcesIdentifiers && sourcesIdentifiers.length > 0
|
|
23179
|
+
? this.addExtra({
|
|
23180
|
+
sourcesIdentifiers,
|
|
23181
|
+
}, output)
|
|
22898
23182
|
: output;
|
|
22899
23183
|
},
|
|
22900
23184
|
isPublishedToAll: (output, source) => this.addExtra({
|
|
22901
23185
|
isPublishedToAll: selectField(source, 'isPublishedToAll'),
|
|
22902
23186
|
}, output),
|
|
23187
|
+
isHarvested: (output, source) => this.addExtra({
|
|
23188
|
+
isHarvested: selectField(source, 'isHarvested') !== 'false',
|
|
23189
|
+
}, output),
|
|
22903
23190
|
edit: (output, source) => this.addExtra({
|
|
22904
23191
|
edit: selectField(source, 'edit'),
|
|
22905
23192
|
}, output),
|
|
@@ -23280,11 +23567,11 @@ class ElasticsearchService {
|
|
|
23280
23567
|
registerRuntimeField(fieldName, expression) {
|
|
23281
23568
|
this.runtimeFields[fieldName] = expression;
|
|
23282
23569
|
}
|
|
23283
|
-
|
|
23570
|
+
getMetadataByIdsPayload(uuids) {
|
|
23284
23571
|
return {
|
|
23285
23572
|
query: {
|
|
23286
23573
|
ids: {
|
|
23287
|
-
values:
|
|
23574
|
+
values: uuids,
|
|
23288
23575
|
},
|
|
23289
23576
|
},
|
|
23290
23577
|
};
|
|
@@ -23712,16 +23999,37 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
23712
23999
|
args: [METADATA_LANGUAGE]
|
|
23713
24000
|
}] }] });
|
|
23714
24001
|
|
|
24002
|
+
class Gn4SettingsService {
|
|
24003
|
+
constructor(siteApiService) {
|
|
24004
|
+
this.siteApiService = siteApiService;
|
|
24005
|
+
this.identicon$ = this.getSettingsSetValueByKey('system/users/identicon');
|
|
24006
|
+
this.allowEditHarvested$ = this.getSettingsSetValueByKey('system/harvester/enableEditing');
|
|
24007
|
+
}
|
|
24008
|
+
getSettingsSetValueByKey(key) {
|
|
24009
|
+
return this.siteApiService.getSettingsSet(null, [key]).pipe(map$1((v) => v[key]), shareReplay({ bufferSize: 1, refCount: true }));
|
|
24010
|
+
}
|
|
24011
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: Gn4SettingsService, deps: [{ token: SiteApiService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
24012
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: Gn4SettingsService, providedIn: 'root' }); }
|
|
24013
|
+
}
|
|
24014
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: Gn4SettingsService, decorators: [{
|
|
24015
|
+
type: Injectable,
|
|
24016
|
+
args: [{
|
|
24017
|
+
providedIn: 'root',
|
|
24018
|
+
}]
|
|
24019
|
+
}], ctorParameters: () => [{ type: SiteApiService }] });
|
|
24020
|
+
|
|
23715
24021
|
const minPublicationApiVersion = '4.2.5';
|
|
23716
24022
|
const TEMPORARY_ID_PREFIX = 'TEMP-ID-';
|
|
23717
24023
|
class Gn4Repository {
|
|
23718
|
-
constructor(httpClient, gn4SearchApi, gn4SearchHelper, gn4Mapper, gn4RecordsApi, platformService) {
|
|
24024
|
+
constructor(httpClient, gn4SearchApi, gn4SearchHelper, gn4Mapper, gn4RecordsApi, platformService, gn4LanguagesApi, settingsService) {
|
|
23719
24025
|
this.httpClient = httpClient;
|
|
23720
24026
|
this.gn4SearchApi = gn4SearchApi;
|
|
23721
24027
|
this.gn4SearchHelper = gn4SearchHelper;
|
|
23722
24028
|
this.gn4Mapper = gn4Mapper;
|
|
23723
24029
|
this.gn4RecordsApi = gn4RecordsApi;
|
|
23724
24030
|
this.platformService = platformService;
|
|
24031
|
+
this.gn4LanguagesApi = gn4LanguagesApi;
|
|
24032
|
+
this.settingsService = settingsService;
|
|
23725
24033
|
this._draftsChanged = new Subject();
|
|
23726
24034
|
this.draftsChanged$ = this._draftsChanged.asObservable();
|
|
23727
24035
|
}
|
|
@@ -23743,9 +24051,16 @@ class Gn4Repository {
|
|
|
23743
24051
|
}
|
|
23744
24052
|
getRecord(uniqueIdentifier) {
|
|
23745
24053
|
return this.gn4SearchApi
|
|
23746
|
-
.search('bucket', ['fcats'], JSON.stringify(this.gn4SearchHelper.
|
|
24054
|
+
.search('bucket', ['fcats', 'hassources'], JSON.stringify(this.gn4SearchHelper.getMetadataByIdsPayload([uniqueIdentifier])))
|
|
23747
24055
|
.pipe(map$1((results) => results.hits.hits[0]), switchMap((record) => record ? this.gn4Mapper.readRecord(record) : of(null)));
|
|
23748
24056
|
}
|
|
24057
|
+
getMultipleRecords(uniqueIdentifiers) {
|
|
24058
|
+
return this.gn4SearchApi
|
|
24059
|
+
.search('bucket', undefined, JSON.stringify(this.gn4SearchHelper.getMetadataByIdsPayload(uniqueIdentifiers)))
|
|
24060
|
+
.pipe(map$1((results) => results.hits.hits), switchMap((records) => records && records.length > 0
|
|
24061
|
+
? this.gn4Mapper.readRecords(records)
|
|
24062
|
+
: of(null)));
|
|
24063
|
+
}
|
|
23749
24064
|
mapEmbeddedFeatureCatalog(featureTypes) {
|
|
23750
24065
|
return {
|
|
23751
24066
|
featureTypes: featureTypes.map((featureType) => ({
|
|
@@ -23781,6 +24096,20 @@ class Gn4Repository {
|
|
|
23781
24096
|
.search('bucket', null, JSON.stringify(this.gn4SearchHelper.getRelatedRecordPayload(similarTo, 3)))
|
|
23782
24097
|
.pipe(switchMap((results) => this.gn4Mapper.readRecords(results.hits.hits)));
|
|
23783
24098
|
}
|
|
24099
|
+
getSources(record) {
|
|
24100
|
+
const sourcesIdentifiers = record.extras?.['sourcesIdentifiers'];
|
|
24101
|
+
if (sourcesIdentifiers && sourcesIdentifiers.length > 0) {
|
|
24102
|
+
return this.getMultipleRecords(sourcesIdentifiers);
|
|
24103
|
+
}
|
|
24104
|
+
return of(null);
|
|
24105
|
+
}
|
|
24106
|
+
getSourceOf(record) {
|
|
24107
|
+
const sourceOfIdentifiers = record.extras?.['sourceOfIdentifiers'];
|
|
24108
|
+
if (sourceOfIdentifiers && sourceOfIdentifiers.length > 0) {
|
|
24109
|
+
return this.getMultipleRecords(sourceOfIdentifiers);
|
|
24110
|
+
}
|
|
24111
|
+
return of(null);
|
|
24112
|
+
}
|
|
23784
24113
|
aggregate(params) {
|
|
23785
24114
|
// if aggregations are empty, return an empty object right away
|
|
23786
24115
|
if (Object.keys(params).length === 0)
|
|
@@ -23806,11 +24135,29 @@ class Gn4Repository {
|
|
|
23806
24135
|
? this.getRecord(uniqueIdentifier).pipe(map$1((record) => record.extras['isPublishedToAll']))
|
|
23807
24136
|
: of(true);
|
|
23808
24137
|
}
|
|
23809
|
-
|
|
23810
|
-
return
|
|
23811
|
-
|
|
24138
|
+
canDuplicate(record) {
|
|
24139
|
+
return record.kind === 'dataset';
|
|
24140
|
+
}
|
|
24141
|
+
canDelete(record) {
|
|
24142
|
+
return this.settingsService.allowEditHarvested$.pipe(map$1((allowEditHarvested) => {
|
|
24143
|
+
return (record.extras['edit'] &&
|
|
24144
|
+
(!record.extras['isHarvested'] || allowEditHarvested));
|
|
23812
24145
|
}));
|
|
23813
24146
|
}
|
|
24147
|
+
canEdit(record, allowEditHarvested) {
|
|
24148
|
+
return (record.kind === 'dataset' &&
|
|
24149
|
+
record.extras['edit'] &&
|
|
24150
|
+
(!record.extras['isHarvested'] || allowEditHarvested));
|
|
24151
|
+
}
|
|
24152
|
+
canEditRecord(uniqueIdentifier) {
|
|
24153
|
+
return combineLatest([
|
|
24154
|
+
this.getRecord(uniqueIdentifier),
|
|
24155
|
+
this.settingsService.allowEditHarvested$,
|
|
24156
|
+
]).pipe(map$1(([record, allowEditHarvested]) => record ? this.canEdit(record, allowEditHarvested) : false));
|
|
24157
|
+
}
|
|
24158
|
+
canEditIndexedRecord(record) {
|
|
24159
|
+
return this.settingsService.allowEditHarvested$.pipe(map$1((allowEditHarvested) => this.canEdit(record, allowEditHarvested)));
|
|
24160
|
+
}
|
|
23814
24161
|
openRecordForEdition(uniqueIdentifier) {
|
|
23815
24162
|
const draft$ = of(this.getRecordFromLocalStorage(uniqueIdentifier));
|
|
23816
24163
|
const recordAsXml$ = this.getRecordAsXml(uniqueIdentifier);
|
|
@@ -23925,6 +24272,13 @@ class Gn4Repository {
|
|
|
23925
24272
|
}));
|
|
23926
24273
|
}));
|
|
23927
24274
|
}
|
|
24275
|
+
getApplicationLanguages() {
|
|
24276
|
+
return this.gn4LanguagesApi
|
|
24277
|
+
.getApplicationLanguages()
|
|
24278
|
+
.pipe(map$1((languages) => languages
|
|
24279
|
+
.map((lang) => LANG_3_TO_2_MAPPER[lang.id ?? ''])
|
|
24280
|
+
.filter((code) => !!code)));
|
|
24281
|
+
}
|
|
23928
24282
|
getRecordAsXml(uniqueIdentifier) {
|
|
23929
24283
|
return this.gn4RecordsApi
|
|
23930
24284
|
.getRecordAs(uniqueIdentifier, undefined, false, undefined, undefined, undefined, 'application/xml', 'response', undefined, { httpHeaderAccept: 'text/xml,application/xml' } // this is to make sure that the response is parsed as text
|
|
@@ -23965,12 +24319,12 @@ class Gn4Repository {
|
|
|
23965
24319
|
removeRecordFromLocalStorage(recordId) {
|
|
23966
24320
|
window.localStorage.removeItem(this.getLocalStorageKeyForRecord(recordId));
|
|
23967
24321
|
}
|
|
23968
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: Gn4Repository, deps: [{ token: i1.HttpClient }, { token: SearchApiService }, { token: ElasticsearchService }, { token: Gn4Converter }, { token: RecordsApiService }, { token: PlatformServiceInterface }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
24322
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: Gn4Repository, deps: [{ token: i1.HttpClient }, { token: SearchApiService }, { token: ElasticsearchService }, { token: Gn4Converter }, { token: RecordsApiService }, { token: PlatformServiceInterface }, { token: LanguagesApiService }, { token: Gn4SettingsService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
23969
24323
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: Gn4Repository }); }
|
|
23970
24324
|
}
|
|
23971
24325
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: Gn4Repository, decorators: [{
|
|
23972
24326
|
type: Injectable
|
|
23973
|
-
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: SearchApiService }, { type: ElasticsearchService }, { type: Gn4Converter }, { type: RecordsApiService }, { type: PlatformServiceInterface }] });
|
|
24327
|
+
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: SearchApiService }, { type: ElasticsearchService }, { type: Gn4Converter }, { type: RecordsApiService }, { type: PlatformServiceInterface }, { type: LanguagesApiService }, { type: Gn4SettingsService }] });
|
|
23974
24328
|
|
|
23975
24329
|
const IMAGE_URL$1 = '/geonetwork/images/harvesting/';
|
|
23976
24330
|
class OrganizationsFromMetadataService {
|
|
@@ -24249,24 +24603,6 @@ const ORGANIZATIONS_STRATEGY = new InjectionToken('organizations-strategy', {
|
|
|
24249
24603
|
factory: () => 'metadata',
|
|
24250
24604
|
});
|
|
24251
24605
|
|
|
24252
|
-
class Gn4SettingsService {
|
|
24253
|
-
constructor(siteApiService) {
|
|
24254
|
-
this.siteApiService = siteApiService;
|
|
24255
|
-
this.identicon$ = this.getSettingsSetValueByKey('system/users/identicon');
|
|
24256
|
-
}
|
|
24257
|
-
getSettingsSetValueByKey(key) {
|
|
24258
|
-
return this.siteApiService.getSettingsSet(null, [key]).pipe(map$1((v) => v[key]), shareReplay({ bufferSize: 1, refCount: true }));
|
|
24259
|
-
}
|
|
24260
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: Gn4SettingsService, deps: [{ token: SiteApiService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
24261
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: Gn4SettingsService, providedIn: 'root' }); }
|
|
24262
|
-
}
|
|
24263
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: Gn4SettingsService, decorators: [{
|
|
24264
|
-
type: Injectable,
|
|
24265
|
-
args: [{
|
|
24266
|
-
providedIn: 'root',
|
|
24267
|
-
}]
|
|
24268
|
-
}], ctorParameters: () => [{ type: SiteApiService }] });
|
|
24269
|
-
|
|
24270
24606
|
const DEFAULT_GN4_LOGIN_URL = `/geonetwork/srv/\${lang3}/catalog.signin?redirect=\${current_url}`;
|
|
24271
24607
|
const LOGIN_URL = new InjectionToken('loginUrl');
|
|
24272
24608
|
const DEFAULT_GN4_LOGOUT_URL = `/geonetwork/signout`;
|
|
@@ -25388,7 +25724,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
25388
25724
|
}] });
|
|
25389
25725
|
|
|
25390
25726
|
var name = "geonetwork-ui";
|
|
25391
|
-
var version = "2.6.0-dev.
|
|
25727
|
+
var version = "2.6.0-dev.9b9a26109";
|
|
25392
25728
|
var engines = {
|
|
25393
25729
|
node: ">=20"
|
|
25394
25730
|
};
|
|
@@ -25513,6 +25849,9 @@ class Gn4PlatformService {
|
|
|
25513
25849
|
throw new Error(`Gn4 API version is not compatible.\nMinimum: ${minApiVersion}\nYour version: ${version}`);
|
|
25514
25850
|
}
|
|
25515
25851
|
}), shareReplay(1));
|
|
25852
|
+
this.allowEditHarvestedMd$ = this.settings$.pipe(map$1((info) => {
|
|
25853
|
+
return info['system/harvester/enableEditing'];
|
|
25854
|
+
}), shareReplay(1));
|
|
25516
25855
|
/**
|
|
25517
25856
|
* A map of already loaded thesauri (groups of keywords); the key is a URI
|
|
25518
25857
|
* @private
|
|
@@ -25533,6 +25872,9 @@ class Gn4PlatformService {
|
|
|
25533
25872
|
getApiVersion() {
|
|
25534
25873
|
return this.apiVersion$;
|
|
25535
25874
|
}
|
|
25875
|
+
getAllowEditHarvestedMd() {
|
|
25876
|
+
return this.allowEditHarvestedMd$;
|
|
25877
|
+
}
|
|
25536
25878
|
getMe() {
|
|
25537
25879
|
return this.me$;
|
|
25538
25880
|
}
|
|
@@ -26145,11 +26487,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
26145
26487
|
type: Output
|
|
26146
26488
|
}] } });
|
|
26147
26489
|
|
|
26148
|
-
marker('editor.record.lock.
|
|
26149
|
-
marker('editor.record.lock.
|
|
26490
|
+
marker('editor.record.lock.resourceType');
|
|
26491
|
+
marker('editor.record.lock.harvested');
|
|
26492
|
+
marker('editor.record.lock.owner');
|
|
26150
26493
|
class InteractiveTableComponent {
|
|
26151
26494
|
constructor() {
|
|
26152
26495
|
this.items = [];
|
|
26496
|
+
this.canEditItem = () => of(true);
|
|
26153
26497
|
this.isDraftPage = false;
|
|
26154
26498
|
this.itemClick = new EventEmitter();
|
|
26155
26499
|
}
|
|
@@ -26165,11 +26509,16 @@ class InteractiveTableComponent {
|
|
|
26165
26509
|
};
|
|
26166
26510
|
}
|
|
26167
26511
|
getItemTitle(item) {
|
|
26168
|
-
if (!
|
|
26169
|
-
|
|
26170
|
-
|
|
26171
|
-
|
|
26172
|
-
|
|
26512
|
+
if (!this.isDraftPage) {
|
|
26513
|
+
if (item.kind !== 'dataset') {
|
|
26514
|
+
return 'editor.record.lock.resourceType';
|
|
26515
|
+
}
|
|
26516
|
+
else if (item.extras?.isHarvested) {
|
|
26517
|
+
return 'editor.record.lock.harvested';
|
|
26518
|
+
}
|
|
26519
|
+
else if (!item.extras?.edit) {
|
|
26520
|
+
return 'editor.record.lock.owner';
|
|
26521
|
+
}
|
|
26173
26522
|
}
|
|
26174
26523
|
return '';
|
|
26175
26524
|
}
|
|
@@ -26177,16 +26526,18 @@ class InteractiveTableComponent {
|
|
|
26177
26526
|
this.itemClick.emit(item);
|
|
26178
26527
|
}
|
|
26179
26528
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InteractiveTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
26180
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: InteractiveTableComponent, isStandalone: true, selector: "gn-ui-interactive-table", inputs: { items: "items", isDraftPage: "isDraftPage" }, outputs: { itemClick: "itemClick" }, providers: [provideIcons({ iconoirNavArrowDown, iconoirNavArrowUp })], queries: [{ propertyName: "columns", predicate: InteractiveTableColumnComponent }], ngImport: i0, template: "<div class=\"grid w-full\" [ngStyle]=\"gridStyle\">\n <div class=\"contents w-full\">\n <ng-container *ngFor=\"let column of columns\">\n <button\n *ngIf=\"column.sortable\"\n type=\"button\"\n class=\"table-header-cell gap-1\"\n (click)=\"column.sortable && column.handleSortChange()\"\n >\n <ng-container *ngTemplateOutlet=\"column.header\"></ng-container>\n <div class=\"sort-button flex flex-col\" *ngIf=\"column.sortable\">\n <ng-icon\n class=\"text-gray-600 -mb-2\"\n [ngClass]=\"{ 'text-main': column.activeSort === 'asc' }\"\n name=\"iconoirNavArrowUp\"\n ></ng-icon>\n <ng-icon\n class=\"text-gray-600\"\n [ngClass]=\"{ 'text-main': column.activeSort === 'desc' }\"\n name=\"iconoirNavArrowDown\"\n ></ng-icon>\n </div>\n </button>\n <div *ngIf=\"!column.sortable\" class=\"table-header-cell\">\n <ng-container *ngTemplateOutlet=\"column.header\"></ng-container>\n </div>\n </ng-container>\n </div>\n <div\n class=\"contents text-gray-900 cursor-pointer group\"\n *ngFor=\"let item of items\"\n (click)=\"handleRowClick(item)\"\n data-cy=\"table-row\"\n [title]=\"getItemTitle(item) | translate\"\n >\n <div\n class=\"relative h-0\"\n [ngStyle]=\"{ 'grid-column': 'span ' + this.columns.length }\"\n >\n <!-- this element is only used in keyboard navigation -->\n <button\n type=\"button\"\n class=\"absolute inset-x-0 h-[50px] bg-transparent pointer-events-none\"\n ></button>\n </div>\n <ng-container *ngFor=\"let column of columns\">\n <div\n class=\"table-row-cell px-3 py-1.5 flex items-center bg-white transition-colors duration-75 truncate border-b border-gray-200\"\n [ngClass]=\"{\n 'text-purple-light cursor-default':\n (
|
|
26529
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: InteractiveTableComponent, isStandalone: true, selector: "gn-ui-interactive-table", inputs: { items: "items", canEditItem: "canEditItem", isDraftPage: "isDraftPage" }, outputs: { itemClick: "itemClick" }, providers: [provideIcons({ iconoirNavArrowDown, iconoirNavArrowUp })], queries: [{ propertyName: "columns", predicate: InteractiveTableColumnComponent }], ngImport: i0, template: "<div class=\"grid w-full\" [ngStyle]=\"gridStyle\">\n <div class=\"contents w-full\">\n <ng-container *ngFor=\"let column of columns\">\n <button\n *ngIf=\"column.sortable\"\n type=\"button\"\n class=\"table-header-cell gap-1\"\n (click)=\"column.sortable && column.handleSortChange()\"\n >\n <ng-container *ngTemplateOutlet=\"column.header\"></ng-container>\n <div class=\"sort-button flex flex-col\" *ngIf=\"column.sortable\">\n <ng-icon\n class=\"text-gray-600 -mb-2\"\n [ngClass]=\"{ 'text-main': column.activeSort === 'asc' }\"\n name=\"iconoirNavArrowUp\"\n ></ng-icon>\n <ng-icon\n class=\"text-gray-600\"\n [ngClass]=\"{ 'text-main': column.activeSort === 'desc' }\"\n name=\"iconoirNavArrowDown\"\n ></ng-icon>\n </div>\n </button>\n <div *ngIf=\"!column.sortable\" class=\"table-header-cell\">\n <ng-container *ngTemplateOutlet=\"column.header\"></ng-container>\n </div>\n </ng-container>\n </div>\n <div\n class=\"contents text-gray-900 cursor-pointer group\"\n *ngFor=\"let item of items\"\n (click)=\"handleRowClick(item)\"\n data-cy=\"table-row\"\n [attr.data-cy-title]=\"item.title\"\n [title]=\"getItemTitle(item) | translate\"\n >\n <div\n class=\"relative h-0\"\n [ngStyle]=\"{ 'grid-column': 'span ' + this.columns.length }\"\n >\n <!-- this element is only used in keyboard navigation -->\n <button\n type=\"button\"\n class=\"absolute inset-x-0 h-[50px] bg-transparent pointer-events-none\"\n ></button>\n </div>\n <ng-container *ngFor=\"let column of columns\">\n <div\n class=\"table-row-cell px-3 py-1.5 flex items-center bg-white transition-colors duration-75 truncate border-b border-gray-200\"\n [ngClass]=\"{\n 'text-purple-light cursor-default':\n (canEditItem(item) | async) === false,\n 'group-hover:text-main group-hover:bg-gray-50':\n canEditItem(item) | async,\n }\"\n >\n <ng-container\n *ngTemplateOutlet=\"column.cell; context: { $implicit: item }\"\n ></ng-container>\n </div>\n </ng-container>\n </div>\n</div>\n", styles: [".table-header-cell{@apply text-gray-700 px-3 py-3 flex items-center truncate bg-white;}button.table-header-cell{@apply transition-colors duration-75 hover:text-main hover:bg-gray-50 focus:text-main focus:bg-gray-50;}ng-icon{@apply w-4 h-4;}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
26181
26530
|
}
|
|
26182
26531
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InteractiveTableComponent, decorators: [{
|
|
26183
26532
|
type: Component,
|
|
26184
|
-
args: [{ selector: 'gn-ui-interactive-table', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, NgIconComponent, TranslateModule], providers: [provideIcons({ iconoirNavArrowDown, iconoirNavArrowUp })], template: "<div class=\"grid w-full\" [ngStyle]=\"gridStyle\">\n <div class=\"contents w-full\">\n <ng-container *ngFor=\"let column of columns\">\n <button\n *ngIf=\"column.sortable\"\n type=\"button\"\n class=\"table-header-cell gap-1\"\n (click)=\"column.sortable && column.handleSortChange()\"\n >\n <ng-container *ngTemplateOutlet=\"column.header\"></ng-container>\n <div class=\"sort-button flex flex-col\" *ngIf=\"column.sortable\">\n <ng-icon\n class=\"text-gray-600 -mb-2\"\n [ngClass]=\"{ 'text-main': column.activeSort === 'asc' }\"\n name=\"iconoirNavArrowUp\"\n ></ng-icon>\n <ng-icon\n class=\"text-gray-600\"\n [ngClass]=\"{ 'text-main': column.activeSort === 'desc' }\"\n name=\"iconoirNavArrowDown\"\n ></ng-icon>\n </div>\n </button>\n <div *ngIf=\"!column.sortable\" class=\"table-header-cell\">\n <ng-container *ngTemplateOutlet=\"column.header\"></ng-container>\n </div>\n </ng-container>\n </div>\n <div\n class=\"contents text-gray-900 cursor-pointer group\"\n *ngFor=\"let item of items\"\n (click)=\"handleRowClick(item)\"\n data-cy=\"table-row\"\n [title]=\"getItemTitle(item) | translate\"\n >\n <div\n class=\"relative h-0\"\n [ngStyle]=\"{ 'grid-column': 'span ' + this.columns.length }\"\n >\n <!-- this element is only used in keyboard navigation -->\n <button\n type=\"button\"\n class=\"absolute inset-x-0 h-[50px] bg-transparent pointer-events-none\"\n ></button>\n </div>\n <ng-container *ngFor=\"let column of columns\">\n <div\n class=\"table-row-cell px-3 py-1.5 flex items-center bg-white transition-colors duration-75 truncate border-b border-gray-200\"\n [ngClass]=\"{\n 'text-purple-light cursor-default':\n (
|
|
26533
|
+
args: [{ selector: 'gn-ui-interactive-table', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, NgIconComponent, TranslateModule], providers: [provideIcons({ iconoirNavArrowDown, iconoirNavArrowUp })], template: "<div class=\"grid w-full\" [ngStyle]=\"gridStyle\">\n <div class=\"contents w-full\">\n <ng-container *ngFor=\"let column of columns\">\n <button\n *ngIf=\"column.sortable\"\n type=\"button\"\n class=\"table-header-cell gap-1\"\n (click)=\"column.sortable && column.handleSortChange()\"\n >\n <ng-container *ngTemplateOutlet=\"column.header\"></ng-container>\n <div class=\"sort-button flex flex-col\" *ngIf=\"column.sortable\">\n <ng-icon\n class=\"text-gray-600 -mb-2\"\n [ngClass]=\"{ 'text-main': column.activeSort === 'asc' }\"\n name=\"iconoirNavArrowUp\"\n ></ng-icon>\n <ng-icon\n class=\"text-gray-600\"\n [ngClass]=\"{ 'text-main': column.activeSort === 'desc' }\"\n name=\"iconoirNavArrowDown\"\n ></ng-icon>\n </div>\n </button>\n <div *ngIf=\"!column.sortable\" class=\"table-header-cell\">\n <ng-container *ngTemplateOutlet=\"column.header\"></ng-container>\n </div>\n </ng-container>\n </div>\n <div\n class=\"contents text-gray-900 cursor-pointer group\"\n *ngFor=\"let item of items\"\n (click)=\"handleRowClick(item)\"\n data-cy=\"table-row\"\n [attr.data-cy-title]=\"item.title\"\n [title]=\"getItemTitle(item) | translate\"\n >\n <div\n class=\"relative h-0\"\n [ngStyle]=\"{ 'grid-column': 'span ' + this.columns.length }\"\n >\n <!-- this element is only used in keyboard navigation -->\n <button\n type=\"button\"\n class=\"absolute inset-x-0 h-[50px] bg-transparent pointer-events-none\"\n ></button>\n </div>\n <ng-container *ngFor=\"let column of columns\">\n <div\n class=\"table-row-cell px-3 py-1.5 flex items-center bg-white transition-colors duration-75 truncate border-b border-gray-200\"\n [ngClass]=\"{\n 'text-purple-light cursor-default':\n (canEditItem(item) | async) === false,\n 'group-hover:text-main group-hover:bg-gray-50':\n canEditItem(item) | async,\n }\"\n >\n <ng-container\n *ngTemplateOutlet=\"column.cell; context: { $implicit: item }\"\n ></ng-container>\n </div>\n </ng-container>\n </div>\n</div>\n", styles: [".table-header-cell{@apply text-gray-700 px-3 py-3 flex items-center truncate bg-white;}button.table-header-cell{@apply transition-colors duration-75 hover:text-main hover:bg-gray-50 focus:text-main focus:bg-gray-50;}ng-icon{@apply w-4 h-4;}\n"] }]
|
|
26185
26534
|
}], propDecorators: { columns: [{
|
|
26186
26535
|
type: ContentChildren,
|
|
26187
26536
|
args: [InteractiveTableColumnComponent]
|
|
26188
26537
|
}], items: [{
|
|
26189
26538
|
type: Input
|
|
26539
|
+
}], canEditItem: [{
|
|
26540
|
+
type: Input
|
|
26190
26541
|
}], isDraftPage: [{
|
|
26191
26542
|
type: Input
|
|
26192
26543
|
}], itemClick: [{
|
|
@@ -29279,6 +29630,56 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
29279
29630
|
type: Input
|
|
29280
29631
|
}] } });
|
|
29281
29632
|
|
|
29633
|
+
class InternalLinkCardContactComponent {
|
|
29634
|
+
constructor() {
|
|
29635
|
+
this.size = 'M';
|
|
29636
|
+
}
|
|
29637
|
+
get organization() {
|
|
29638
|
+
return this.record.ownerOrganization;
|
|
29639
|
+
}
|
|
29640
|
+
get contacts() {
|
|
29641
|
+
return ((this.record.kind === 'dataset'
|
|
29642
|
+
? this.record.contactsForResource
|
|
29643
|
+
: this.record.contacts) || []);
|
|
29644
|
+
}
|
|
29645
|
+
openExternalUrl(event, url) {
|
|
29646
|
+
event.stopPropagation();
|
|
29647
|
+
window.open(url, '_blank');
|
|
29648
|
+
}
|
|
29649
|
+
openMailto(event, email) {
|
|
29650
|
+
event.stopPropagation();
|
|
29651
|
+
window.open(`mailto:${email}`, '_blank');
|
|
29652
|
+
}
|
|
29653
|
+
copyToClipboard(event, text) {
|
|
29654
|
+
event.stopPropagation();
|
|
29655
|
+
navigator.clipboard.writeText(text);
|
|
29656
|
+
}
|
|
29657
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InternalLinkCardContactComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
29658
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: InternalLinkCardContactComponent, isStandalone: true, selector: "gn-ui-internal-link-card-contact", inputs: { record: "record", size: "size" }, providers: [
|
|
29659
|
+
provideIcons({
|
|
29660
|
+
iconoirInternet,
|
|
29661
|
+
matEmailOutline,
|
|
29662
|
+
matPhoneOutline,
|
|
29663
|
+
matLocationOnOutline,
|
|
29664
|
+
}),
|
|
29665
|
+
], ngImport: i0, template: "<div\n data-cy=\"recordOrg\"\n class=\"flex items-center justify-evenly bg-gray-50 rounded-lg h-[53px] px-2\"\n>\n <div class=\"flex items-center flex-1 min-w-0\">\n <div class=\"w-[45px] h-[45px] rounded-lg overflow-hidden shrink-0 mr-3\">\n <gn-ui-thumbnail\n [thumbnailUrl]=\"record.ownerOrganization?.logoUrl?.toString() || ''\"\n [fit]=\"'contain'\"\n class=\"w-full h-full rounded-lg\"\n ></gn-ui-thumbnail>\n </div>\n <div *ngIf=\"organization?.name\" class=\"flex-1 w-0 overflow-hidden\">\n <div\n class=\"text-xs text-black font-normal leading-tight truncate\"\n translate\n >\n record.card.metadata.contact\n </div>\n <div\n data-cy=\"recordOrgName\"\n class=\"text-xl text-primary-black font-medium truncate\"\n >\n {{ organization.name }}\n </div>\n </div>\n </div>\n <div *ngIf=\"size === 'L'\" class=\"ml-2 flex space-x-2\">\n <div *ngIf=\"organization?.website\" class=\"flex\">\n <button\n [title]=\"organization.website\"\n class=\"w-[40px] h-[32px] flex items-center justify-center rounded-lg border border-[#D4D3D7] px-[8px] py-[4px] hover:bg-primary-lightest\"\n (click)=\"openExternalUrl($event, organization.website)\"\n >\n <ng-icon name=\"iconoirInternet\"></ng-icon>\n </button>\n </div>\n <div *ngIf=\"contacts[0]?.email\" class=\"flex\">\n <button\n [title]=\"contacts[0].email\"\n class=\"w-[40px] h-[32px] flex items-center justify-center rounded-lg border border-[#D4D3D7] px-[8px] py-[4px] hover:bg-primary-lightest\"\n data-cy=\"contact-email\"\n (click)=\"openMailto($event, contacts[0].email)\"\n >\n <ng-icon name=\"matEmailOutline\"></ng-icon>\n </button>\n </div>\n <div *ngIf=\"contacts[0]?.phone\" class=\"flex\">\n <button\n [title]=\"'Copy to clipboard'\"\n class=\"w-[40px] h-[32px] flex items-center justify-center rounded-lg border border-[#D4D3D7] px-[8px] py-[4px] hover:bg-primary-lightest relative group\"\n data-cy=\"contact-phone\"\n (click)=\"copyToClipboard($event, contacts[0].phone)\"\n >\n <ng-icon name=\"matPhoneOutline\"></ng-icon>\n </button>\n </div>\n <div *ngIf=\"contacts[0]?.address\" class=\"flex\">\n <button\n [title]=\"'Copy to clipboard'\"\n class=\"w-[40px] h-[32px] flex items-center justify-center rounded-lg border border-[#D4D3D7] px-[8px] py-[4px] hover:bg-primary-lightest relative group\"\n data-cy=\"contact-phone\"\n (click)=\"copyToClipboard($event, contacts[0].address)\"\n >\n <ng-icon name=\"matLocationOnOutline\"></ng-icon>\n </button>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ThumbnailComponent, selector: "gn-ui-thumbnail", inputs: ["thumbnailUrl", "fit"], outputs: ["placeholderShown"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }] }); }
|
|
29666
|
+
}
|
|
29667
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InternalLinkCardContactComponent, decorators: [{
|
|
29668
|
+
type: Component,
|
|
29669
|
+
args: [{ selector: 'gn-ui-internal-link-card-contact', standalone: true, imports: [NgIf, ThumbnailComponent, NgIconComponent, TranslateModule], providers: [
|
|
29670
|
+
provideIcons({
|
|
29671
|
+
iconoirInternet,
|
|
29672
|
+
matEmailOutline,
|
|
29673
|
+
matPhoneOutline,
|
|
29674
|
+
matLocationOnOutline,
|
|
29675
|
+
}),
|
|
29676
|
+
], template: "<div\n data-cy=\"recordOrg\"\n class=\"flex items-center justify-evenly bg-gray-50 rounded-lg h-[53px] px-2\"\n>\n <div class=\"flex items-center flex-1 min-w-0\">\n <div class=\"w-[45px] h-[45px] rounded-lg overflow-hidden shrink-0 mr-3\">\n <gn-ui-thumbnail\n [thumbnailUrl]=\"record.ownerOrganization?.logoUrl?.toString() || ''\"\n [fit]=\"'contain'\"\n class=\"w-full h-full rounded-lg\"\n ></gn-ui-thumbnail>\n </div>\n <div *ngIf=\"organization?.name\" class=\"flex-1 w-0 overflow-hidden\">\n <div\n class=\"text-xs text-black font-normal leading-tight truncate\"\n translate\n >\n record.card.metadata.contact\n </div>\n <div\n data-cy=\"recordOrgName\"\n class=\"text-xl text-primary-black font-medium truncate\"\n >\n {{ organization.name }}\n </div>\n </div>\n </div>\n <div *ngIf=\"size === 'L'\" class=\"ml-2 flex space-x-2\">\n <div *ngIf=\"organization?.website\" class=\"flex\">\n <button\n [title]=\"organization.website\"\n class=\"w-[40px] h-[32px] flex items-center justify-center rounded-lg border border-[#D4D3D7] px-[8px] py-[4px] hover:bg-primary-lightest\"\n (click)=\"openExternalUrl($event, organization.website)\"\n >\n <ng-icon name=\"iconoirInternet\"></ng-icon>\n </button>\n </div>\n <div *ngIf=\"contacts[0]?.email\" class=\"flex\">\n <button\n [title]=\"contacts[0].email\"\n class=\"w-[40px] h-[32px] flex items-center justify-center rounded-lg border border-[#D4D3D7] px-[8px] py-[4px] hover:bg-primary-lightest\"\n data-cy=\"contact-email\"\n (click)=\"openMailto($event, contacts[0].email)\"\n >\n <ng-icon name=\"matEmailOutline\"></ng-icon>\n </button>\n </div>\n <div *ngIf=\"contacts[0]?.phone\" class=\"flex\">\n <button\n [title]=\"'Copy to clipboard'\"\n class=\"w-[40px] h-[32px] flex items-center justify-center rounded-lg border border-[#D4D3D7] px-[8px] py-[4px] hover:bg-primary-lightest relative group\"\n data-cy=\"contact-phone\"\n (click)=\"copyToClipboard($event, contacts[0].phone)\"\n >\n <ng-icon name=\"matPhoneOutline\"></ng-icon>\n </button>\n </div>\n <div *ngIf=\"contacts[0]?.address\" class=\"flex\">\n <button\n [title]=\"'Copy to clipboard'\"\n class=\"w-[40px] h-[32px] flex items-center justify-center rounded-lg border border-[#D4D3D7] px-[8px] py-[4px] hover:bg-primary-lightest relative group\"\n data-cy=\"contact-phone\"\n (click)=\"copyToClipboard($event, contacts[0].address)\"\n >\n <ng-icon name=\"matLocationOnOutline\"></ng-icon>\n </button>\n </div>\n </div>\n</div>\n" }]
|
|
29677
|
+
}], propDecorators: { record: [{
|
|
29678
|
+
type: Input
|
|
29679
|
+
}], size: [{
|
|
29680
|
+
type: Input
|
|
29681
|
+
}] } });
|
|
29682
|
+
|
|
29282
29683
|
class InternalLinkCardComponent {
|
|
29283
29684
|
set size(value) {
|
|
29284
29685
|
this._size = value;
|
|
@@ -29320,28 +29721,19 @@ class InternalLinkCardComponent {
|
|
|
29320
29721
|
this.abstract = removeWhitespace(stripHtml(this.record?.abstract));
|
|
29321
29722
|
this.subscription.add(fromEvent(this.elementRef.nativeElement, 'click').subscribe(() => this.mdSelect.emit(this.record)));
|
|
29322
29723
|
}
|
|
29323
|
-
get organization() {
|
|
29324
|
-
return this.record.ownerOrganization;
|
|
29325
|
-
}
|
|
29326
|
-
get contacts() {
|
|
29327
|
-
return ((this.record.kind === 'dataset'
|
|
29328
|
-
? this.record.contactsForResource
|
|
29329
|
-
: this.record.contacts) || []);
|
|
29330
|
-
}
|
|
29331
29724
|
getTitleClass() {
|
|
29332
29725
|
return this.titleClassMap[this._size];
|
|
29333
29726
|
}
|
|
29334
|
-
|
|
29335
|
-
|
|
29336
|
-
|
|
29337
|
-
|
|
29338
|
-
|
|
29339
|
-
|
|
29340
|
-
window.open(`mailto:${email}`, '_blank');
|
|
29727
|
+
getAbstractClass() {
|
|
29728
|
+
const marginClass = ['S', 'XS'].includes(this.size) ? 'ml-2' : '';
|
|
29729
|
+
const clampClass = this.size === 'L' && !this.record.ownerOrganization?.name
|
|
29730
|
+
? 'line-clamp-6'
|
|
29731
|
+
: 'line-clamp-2';
|
|
29732
|
+
return `${clampClass} ${marginClass}`.trim();
|
|
29341
29733
|
}
|
|
29342
|
-
|
|
29343
|
-
|
|
29344
|
-
|
|
29734
|
+
displayAbstract() {
|
|
29735
|
+
return (this.size === 'L' ||
|
|
29736
|
+
(['M', 'S'].includes(this.size) && !this.record.ownerOrganization?.name));
|
|
29345
29737
|
}
|
|
29346
29738
|
get shouldShowThumbnail() {
|
|
29347
29739
|
return this.size === 'L' || this.size === 'M';
|
|
@@ -29351,40 +29743,34 @@ class InternalLinkCardComponent {
|
|
|
29351
29743
|
provideIcons({
|
|
29352
29744
|
iconoirInternet,
|
|
29353
29745
|
matLocationSearchingOutline,
|
|
29354
|
-
matEmailOutline,
|
|
29355
|
-
matPhoneOutline,
|
|
29356
|
-
matLocationOnOutline,
|
|
29357
29746
|
}),
|
|
29358
29747
|
provideNgIconsConfig({
|
|
29359
29748
|
size: '1.2em',
|
|
29360
29749
|
}),
|
|
29361
|
-
], ngImport: i0, template: "<a [attr.href]=\"linkHref\" [target]=\"linkTarget\">\n <div\n class=\"group rounded-md bg-white hover:cursor-pointer hover:bg-slate-50 overflow-hidden w-full\"\n [ngClass]=\"cardClass\"\n >\n <div\n class=\"flex flex-row md:gap-0 justify-between w-full\"\n [ngClass]=\"{ 'flex-wrap md:flex-nowrap gap-3': size === 'L' }\"\n >\n <div\n *ngIf=\"shouldShowThumbnail\"\n [ngClass]=\"thumbnailContainerClass\"\n class=\"border mr-4 flex flex-col\"\n >\n <gn-ui-thumbnail\n class=\"w-full h-full object-cover\"\n [thumbnailUrl]=\"record.overviews?.[0]?.url?.toString() || ''\"\n [fit]=\"'cover'\"\n ></gn-ui-thumbnail>\n </div>\n <div class=\"grow flex flex-col gap-3\">\n <div class=\"flex items-center gap-2\">\n <div class=\"grow flex flex-wrap items-center gap-2\">\n <gn-ui-kind-badge\n [styling]=\"'default'\"\n [kind]=\"record?.kind\"\n ></gn-ui-kind-badge>\n <gn-ui-geo-data-badge\n [showLabel]=\"size === 'L'\"\n [styling]=\"'light'\"\n [record]=\"record\"\n ></gn-ui-geo-data-badge>\n <gn-ui-metadata-quality\n class=\"flex items-center\"\n [smaller]=\"true\"\n [metadata]=\"record\"\n [metadataQualityDisplay]=\"metadataQualityDisplay\"\n ></gn-ui-metadata-quality>\n </div>\n <div *ngIf=\"size !== 'XS'\" data-cy=\"recordFav\">\n <ng-container\n [ngTemplateOutlet]=\"favoriteTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: record }\"\n ></ng-container>\n </div>\n </div>\n\n <div class=\"grow flex flex-col gap-2\">\n <div\n class=\"font-medium text-title group-hover:text-primary\"\n [title]=\"record.title\"\n >\n <h4\n class=\"mr-6 overflow-hidden\"\n [ngClass]=\"getTitleClass()\"\n data-cy=\"recordTitle\"\n [title]=\"record.title\"\n >\n {{ record.title }}\n </h4>\n </div>\n <div\n *ngIf=\"
|
|
29750
|
+
], ngImport: i0, template: "<a [attr.href]=\"linkHref\" [target]=\"linkTarget\">\n <div\n class=\"group rounded-md bg-white hover:cursor-pointer hover:bg-slate-50 overflow-hidden w-full\"\n [ngClass]=\"cardClass\"\n >\n <div\n class=\"flex flex-row md:gap-0 justify-between w-full\"\n [ngClass]=\"{ 'flex-wrap md:flex-nowrap gap-3': size === 'L' }\"\n >\n <div\n *ngIf=\"shouldShowThumbnail\"\n [ngClass]=\"thumbnailContainerClass\"\n class=\"border mr-4 flex flex-col\"\n >\n <gn-ui-thumbnail\n class=\"w-full h-full object-cover\"\n [thumbnailUrl]=\"record.overviews?.[0]?.url?.toString() || ''\"\n [fit]=\"'cover'\"\n ></gn-ui-thumbnail>\n </div>\n <div class=\"grow flex flex-col gap-3\">\n <div class=\"flex items-center gap-2\">\n <div class=\"grow flex flex-wrap items-center gap-2\">\n <gn-ui-kind-badge\n [styling]=\"'default'\"\n [kind]=\"record?.kind\"\n ></gn-ui-kind-badge>\n <gn-ui-geo-data-badge\n [showLabel]=\"size === 'L'\"\n [styling]=\"'light'\"\n [record]=\"record\"\n ></gn-ui-geo-data-badge>\n <gn-ui-metadata-quality\n class=\"flex items-center\"\n [smaller]=\"true\"\n [metadata]=\"record\"\n [metadataQualityDisplay]=\"metadataQualityDisplay\"\n ></gn-ui-metadata-quality>\n </div>\n <div *ngIf=\"size !== 'XS'\" data-cy=\"recordFav\">\n <ng-container\n [ngTemplateOutlet]=\"favoriteTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: record }\"\n ></ng-container>\n </div>\n </div>\n\n <div class=\"grow flex flex-col gap-2\">\n <div\n class=\"font-medium text-title group-hover:text-primary\"\n [title]=\"record.title\"\n >\n <h4\n class=\"mr-6 overflow-hidden\"\n [ngClass]=\"getTitleClass()\"\n data-cy=\"recordTitle\"\n [title]=\"record.title\"\n >\n {{ record.title }}\n </h4>\n </div>\n <div\n *ngIf=\"displayAbstract()\"\n class=\"mr-6 text-xs text-gray-900 overflow-hidden\"\n [ngClass]=\"getAbstractClass()\"\n data-cy=\"recordAbstract\"\n >\n <gn-ui-markdown-parser\n [textContent]=\"abstract\"\n [whitoutStyles]=\"true\"\n ></gn-ui-markdown-parser>\n </div>\n </div>\n\n <gn-ui-internal-link-card-contact\n *ngIf=\"size !== 'XS' && record.ownerOrganization?.name\"\n [record]=\"record\"\n [size]=\"size\"\n ></gn-ui-internal-link-card-contact>\n </div>\n </div>\n </div>\n</a>\n", styles: [""], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: MetadataQualityComponent, selector: "gn-ui-metadata-quality", inputs: ["metadata", "smaller", "metadataQualityDisplay"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "component", type: GeoDataBadgeComponent, selector: "gn-ui-geo-data-badge", inputs: ["showLabel", "styling", "record"] }, { kind: "component", type: KindBadgeComponent, selector: "gn-ui-kind-badge", inputs: ["styling", "contentTemplate", "kind"] }, { kind: "component", type: MarkdownParserComponent, selector: "gn-ui-markdown-parser", inputs: ["textContent", "whitoutStyles"] }, { kind: "component", type: InternalLinkCardContactComponent, selector: "gn-ui-internal-link-card-contact", inputs: ["record", "size"] }, { kind: "component", type: ThumbnailComponent, selector: "gn-ui-thumbnail", inputs: ["thumbnailUrl", "fit"], outputs: ["placeholderShown"] }] }); }
|
|
29362
29751
|
}
|
|
29363
29752
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InternalLinkCardComponent, decorators: [{
|
|
29364
29753
|
type: Component,
|
|
29365
29754
|
args: [{ selector: 'gn-ui-internal-link-card', standalone: true, imports: [
|
|
29366
29755
|
NgClass,
|
|
29367
29756
|
NgIf,
|
|
29368
|
-
ThumbnailComponent,
|
|
29369
29757
|
MetadataQualityComponent,
|
|
29370
29758
|
NgTemplateOutlet,
|
|
29371
|
-
NgIconComponent,
|
|
29372
29759
|
TranslateModule,
|
|
29373
29760
|
GeoDataBadgeComponent,
|
|
29374
29761
|
KindBadgeComponent,
|
|
29375
29762
|
MarkdownParserComponent,
|
|
29763
|
+
InternalLinkCardContactComponent,
|
|
29764
|
+
ThumbnailComponent,
|
|
29376
29765
|
], providers: [
|
|
29377
29766
|
provideIcons({
|
|
29378
29767
|
iconoirInternet,
|
|
29379
29768
|
matLocationSearchingOutline,
|
|
29380
|
-
matEmailOutline,
|
|
29381
|
-
matPhoneOutline,
|
|
29382
|
-
matLocationOnOutline,
|
|
29383
29769
|
}),
|
|
29384
29770
|
provideNgIconsConfig({
|
|
29385
29771
|
size: '1.2em',
|
|
29386
29772
|
}),
|
|
29387
|
-
], template: "<a [attr.href]=\"linkHref\" [target]=\"linkTarget\">\n <div\n class=\"group rounded-md bg-white hover:cursor-pointer hover:bg-slate-50 overflow-hidden w-full\"\n [ngClass]=\"cardClass\"\n >\n <div\n class=\"flex flex-row md:gap-0 justify-between w-full\"\n [ngClass]=\"{ 'flex-wrap md:flex-nowrap gap-3': size === 'L' }\"\n >\n <div\n *ngIf=\"shouldShowThumbnail\"\n [ngClass]=\"thumbnailContainerClass\"\n class=\"border mr-4 flex flex-col\"\n >\n <gn-ui-thumbnail\n class=\"w-full h-full object-cover\"\n [thumbnailUrl]=\"record.overviews?.[0]?.url?.toString() || ''\"\n [fit]=\"'cover'\"\n ></gn-ui-thumbnail>\n </div>\n <div class=\"grow flex flex-col gap-3\">\n <div class=\"flex items-center gap-2\">\n <div class=\"grow flex flex-wrap items-center gap-2\">\n <gn-ui-kind-badge\n [styling]=\"'default'\"\n [kind]=\"record?.kind\"\n ></gn-ui-kind-badge>\n <gn-ui-geo-data-badge\n [showLabel]=\"size === 'L'\"\n [styling]=\"'light'\"\n [record]=\"record\"\n ></gn-ui-geo-data-badge>\n <gn-ui-metadata-quality\n class=\"flex items-center\"\n [smaller]=\"true\"\n [metadata]=\"record\"\n [metadataQualityDisplay]=\"metadataQualityDisplay\"\n ></gn-ui-metadata-quality>\n </div>\n <div *ngIf=\"size !== 'XS'\" data-cy=\"recordFav\">\n <ng-container\n [ngTemplateOutlet]=\"favoriteTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: record }\"\n ></ng-container>\n </div>\n </div>\n\n <div class=\"grow flex flex-col gap-2\">\n <div\n class=\"font-medium text-title group-hover:text-primary\"\n [title]=\"record.title\"\n >\n <h4\n class=\"mr-6 overflow-hidden\"\n [ngClass]=\"getTitleClass()\"\n data-cy=\"recordTitle\"\n [title]=\"record.title\"\n >\n {{ record.title }}\n </h4>\n </div>\n <div\n *ngIf=\"
|
|
29773
|
+
], template: "<a [attr.href]=\"linkHref\" [target]=\"linkTarget\">\n <div\n class=\"group rounded-md bg-white hover:cursor-pointer hover:bg-slate-50 overflow-hidden w-full\"\n [ngClass]=\"cardClass\"\n >\n <div\n class=\"flex flex-row md:gap-0 justify-between w-full\"\n [ngClass]=\"{ 'flex-wrap md:flex-nowrap gap-3': size === 'L' }\"\n >\n <div\n *ngIf=\"shouldShowThumbnail\"\n [ngClass]=\"thumbnailContainerClass\"\n class=\"border mr-4 flex flex-col\"\n >\n <gn-ui-thumbnail\n class=\"w-full h-full object-cover\"\n [thumbnailUrl]=\"record.overviews?.[0]?.url?.toString() || ''\"\n [fit]=\"'cover'\"\n ></gn-ui-thumbnail>\n </div>\n <div class=\"grow flex flex-col gap-3\">\n <div class=\"flex items-center gap-2\">\n <div class=\"grow flex flex-wrap items-center gap-2\">\n <gn-ui-kind-badge\n [styling]=\"'default'\"\n [kind]=\"record?.kind\"\n ></gn-ui-kind-badge>\n <gn-ui-geo-data-badge\n [showLabel]=\"size === 'L'\"\n [styling]=\"'light'\"\n [record]=\"record\"\n ></gn-ui-geo-data-badge>\n <gn-ui-metadata-quality\n class=\"flex items-center\"\n [smaller]=\"true\"\n [metadata]=\"record\"\n [metadataQualityDisplay]=\"metadataQualityDisplay\"\n ></gn-ui-metadata-quality>\n </div>\n <div *ngIf=\"size !== 'XS'\" data-cy=\"recordFav\">\n <ng-container\n [ngTemplateOutlet]=\"favoriteTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: record }\"\n ></ng-container>\n </div>\n </div>\n\n <div class=\"grow flex flex-col gap-2\">\n <div\n class=\"font-medium text-title group-hover:text-primary\"\n [title]=\"record.title\"\n >\n <h4\n class=\"mr-6 overflow-hidden\"\n [ngClass]=\"getTitleClass()\"\n data-cy=\"recordTitle\"\n [title]=\"record.title\"\n >\n {{ record.title }}\n </h4>\n </div>\n <div\n *ngIf=\"displayAbstract()\"\n class=\"mr-6 text-xs text-gray-900 overflow-hidden\"\n [ngClass]=\"getAbstractClass()\"\n data-cy=\"recordAbstract\"\n >\n <gn-ui-markdown-parser\n [textContent]=\"abstract\"\n [whitoutStyles]=\"true\"\n ></gn-ui-markdown-parser>\n </div>\n </div>\n\n <gn-ui-internal-link-card-contact\n *ngIf=\"size !== 'XS' && record.ownerOrganization?.name\"\n [record]=\"record\"\n [size]=\"size\"\n ></gn-ui-internal-link-card-contact>\n </div>\n </div>\n </div>\n</a>\n" }]
|
|
29388
29774
|
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { record: [{
|
|
29389
29775
|
type: Input
|
|
29390
29776
|
}], linkTarget: [{
|
|
@@ -31592,6 +31978,73 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
31592
31978
|
type: Input
|
|
31593
31979
|
}] } });
|
|
31594
31980
|
|
|
31981
|
+
class ActionMenuComponent {
|
|
31982
|
+
constructor(dialog, cdr) {
|
|
31983
|
+
this.dialog = dialog;
|
|
31984
|
+
this.cdr = cdr;
|
|
31985
|
+
this.canDuplicate = true;
|
|
31986
|
+
this.canDelete = true;
|
|
31987
|
+
this.duplicate = new EventEmitter();
|
|
31988
|
+
this.delete = new EventEmitter();
|
|
31989
|
+
this.closeActionMenu = new EventEmitter();
|
|
31990
|
+
this.rollback = new EventEmitter();
|
|
31991
|
+
this.switch = new EventEmitter();
|
|
31992
|
+
this.sectionDisplayed = 'mainMenu';
|
|
31993
|
+
}
|
|
31994
|
+
displayMainMenu() {
|
|
31995
|
+
this.sectionDisplayed = 'mainMenu';
|
|
31996
|
+
this.cdr.markForCheck();
|
|
31997
|
+
}
|
|
31998
|
+
displayDeleteMenu() {
|
|
31999
|
+
switch (this.page) {
|
|
32000
|
+
case 'draft':
|
|
32001
|
+
this.sectionDisplayed = 'rollbackMenu';
|
|
32002
|
+
break;
|
|
32003
|
+
case 'record':
|
|
32004
|
+
this.delete.emit();
|
|
32005
|
+
break;
|
|
32006
|
+
case 'main':
|
|
32007
|
+
default:
|
|
32008
|
+
this.sectionDisplayed = 'deleteMenu';
|
|
32009
|
+
}
|
|
32010
|
+
this.cdr.markForCheck();
|
|
32011
|
+
}
|
|
32012
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ActionMenuComponent, deps: [{ token: i1$a.MatDialog }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
32013
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ActionMenuComponent, isStandalone: true, selector: "gn-ui-action-menu", inputs: { canDuplicate: "canDuplicate", isDuplicating: "isDuplicating", canDelete: "canDelete", page: "page" }, outputs: { duplicate: "duplicate", delete: "delete", closeActionMenu: "closeActionMenu", rollback: "rollback", switch: "switch" }, viewQueries: [{ propertyName: "trigger", first: true, predicate: MatMenuTrigger, descendants: true }], ngImport: i0, template: "<ng-container [ngSwitch]=\"sectionDisplayed\">\n <ng-container *ngSwitchCase=\"'mainMenu'\">\n <div\n data-test=\"mainMenuSection\"\n class=\"mt-2 border border-gray-100 p-2 flex items-center bg-white shadow-2xl rounded-2xl\"\n >\n <ul class=\"flex flex-col gap-2 w-full\">\n <gn-ui-button\n *ngIf=\"page === 'main'\"\n type=\"light\"\n extraClass=\"flex flex-row items-center gap-2 w-full justify-start\"\n (buttonClick)=\"duplicate.emit()\"\n [disabled]=\"!canDuplicate\"\n data-test=\"record-menu-duplicate-button\"\n >\n <span *ngIf=\"isDuplicating; else notDuplicating\" translate\n >record.action.duplicating</span\n >\n <ng-template #notDuplicating>\n <span translate>record.action.duplicate</span>\n </ng-template>\n </gn-ui-button>\n <gn-ui-button\n *ngIf=\"page === 'record'\"\n type=\"light\"\n extraClass=\"flex flex-row items-center gap-2 w-full justify-start\"\n (buttonClick)=\"switch.emit()\"\n data-test=\"record-menu-switch-button\"\n ><span translate>record.action.switchLang</span></gn-ui-button\n >\n <gn-ui-button\n type=\"light\"\n extraClass=\"flex flex-row items-center gap-2 w-full justify-start\"\n (buttonClick)=\"displayDeleteMenu()\"\n [disabled]=\"!canDelete\"\n data-test=\"record-menu-delete-button\"\n ><span *ngIf=\"page !== 'draft'\" translate>record.action.delete</span>\n <span *ngIf=\"page === 'draft'\" translate\n >record.action.rollback</span\n ></gn-ui-button\n >\n </ul>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'deleteMenu'\">\n <div\n data-test=\"deleteMenuSection\"\n class=\"w-72 p-6 flex flex-col gap-3 mt-2 border border-gray-100 bg-white shadow-2xl rounded-2xl\"\n >\n <span class=\"text-lg font-bold text-center\">{{\n 'editor.record.delete.confirmation.title' | translate\n }}</span>\n <span class=\"text-center\">{{\n 'editor.record.delete.confirmation.message' | translate\n }}</span>\n <div class=\"flex flex-row gap-8 justify-center\">\n <gn-ui-button\n (buttonClick)=\"delete.emit()\"\n cdkFocusInitial\n type=\"primary\"\n data-cy=\"confirm-button\"\n [style.--gn-ui-button-width]=\"'100px'\"\n >{{\n 'editor.record.delete.confirmation.confirmText' | translate\n }}</gn-ui-button\n >\n <gn-ui-button\n [style.--gn-ui-button-width]=\"'100px'\"\n (buttonClick)=\"closeActionMenu.emit()\"\n >{{\n 'editor.record.delete.confirmation.cancelText' | translate\n }}</gn-ui-button\n >\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'rollbackMenu'\">\n <div\n data-test=\"rollbackMenuSection\"\n class=\"w-80 p-6 flex flex-col gap-3 mt-2 border border-gray-100 bg-white shadow-2xl rounded-2xl\"\n >\n <span class=\"text-lg font-bold text-center\">{{\n 'editor.record.undo.confirmation.title' | translate\n }}</span>\n <span class=\"text-center\">{{\n 'editor.record.undo.confirmation.message' | translate\n }}</span>\n <div class=\"flex flex-row gap-8 justify-center\">\n <gn-ui-button\n (buttonClick)=\"rollback.emit()\"\n cdkFocusInitial\n type=\"primary\"\n data-cy=\"confirm-button\"\n [style.--gn-ui-button-width]=\"'120px'\"\n >{{\n 'editor.record.undo.confirmation.confirmText' | translate\n }}</gn-ui-button\n >\n <gn-ui-button\n [style.--gn-ui-button-width]=\"'120px'\"\n (buttonClick)=\"closeActionMenu.emit()\"\n >{{\n 'editor.record.undo.confirmation.cancelText' | translate\n }}</gn-ui-button\n >\n </div>\n </div>\n </ng-container>\n</ng-container>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1$2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "ngmodule", type: MatDialogModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }] }); }
|
|
32014
|
+
}
|
|
32015
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ActionMenuComponent, decorators: [{
|
|
32016
|
+
type: Component,
|
|
32017
|
+
args: [{ selector: 'gn-ui-action-menu', standalone: true, imports: [
|
|
32018
|
+
CommonModule,
|
|
32019
|
+
ButtonComponent,
|
|
32020
|
+
MatMenuModule,
|
|
32021
|
+
MatDialogModule,
|
|
32022
|
+
ConfirmationDialogComponent,
|
|
32023
|
+
TranslateModule,
|
|
32024
|
+
], template: "<ng-container [ngSwitch]=\"sectionDisplayed\">\n <ng-container *ngSwitchCase=\"'mainMenu'\">\n <div\n data-test=\"mainMenuSection\"\n class=\"mt-2 border border-gray-100 p-2 flex items-center bg-white shadow-2xl rounded-2xl\"\n >\n <ul class=\"flex flex-col gap-2 w-full\">\n <gn-ui-button\n *ngIf=\"page === 'main'\"\n type=\"light\"\n extraClass=\"flex flex-row items-center gap-2 w-full justify-start\"\n (buttonClick)=\"duplicate.emit()\"\n [disabled]=\"!canDuplicate\"\n data-test=\"record-menu-duplicate-button\"\n >\n <span *ngIf=\"isDuplicating; else notDuplicating\" translate\n >record.action.duplicating</span\n >\n <ng-template #notDuplicating>\n <span translate>record.action.duplicate</span>\n </ng-template>\n </gn-ui-button>\n <gn-ui-button\n *ngIf=\"page === 'record'\"\n type=\"light\"\n extraClass=\"flex flex-row items-center gap-2 w-full justify-start\"\n (buttonClick)=\"switch.emit()\"\n data-test=\"record-menu-switch-button\"\n ><span translate>record.action.switchLang</span></gn-ui-button\n >\n <gn-ui-button\n type=\"light\"\n extraClass=\"flex flex-row items-center gap-2 w-full justify-start\"\n (buttonClick)=\"displayDeleteMenu()\"\n [disabled]=\"!canDelete\"\n data-test=\"record-menu-delete-button\"\n ><span *ngIf=\"page !== 'draft'\" translate>record.action.delete</span>\n <span *ngIf=\"page === 'draft'\" translate\n >record.action.rollback</span\n ></gn-ui-button\n >\n </ul>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'deleteMenu'\">\n <div\n data-test=\"deleteMenuSection\"\n class=\"w-72 p-6 flex flex-col gap-3 mt-2 border border-gray-100 bg-white shadow-2xl rounded-2xl\"\n >\n <span class=\"text-lg font-bold text-center\">{{\n 'editor.record.delete.confirmation.title' | translate\n }}</span>\n <span class=\"text-center\">{{\n 'editor.record.delete.confirmation.message' | translate\n }}</span>\n <div class=\"flex flex-row gap-8 justify-center\">\n <gn-ui-button\n (buttonClick)=\"delete.emit()\"\n cdkFocusInitial\n type=\"primary\"\n data-cy=\"confirm-button\"\n [style.--gn-ui-button-width]=\"'100px'\"\n >{{\n 'editor.record.delete.confirmation.confirmText' | translate\n }}</gn-ui-button\n >\n <gn-ui-button\n [style.--gn-ui-button-width]=\"'100px'\"\n (buttonClick)=\"closeActionMenu.emit()\"\n >{{\n 'editor.record.delete.confirmation.cancelText' | translate\n }}</gn-ui-button\n >\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'rollbackMenu'\">\n <div\n data-test=\"rollbackMenuSection\"\n class=\"w-80 p-6 flex flex-col gap-3 mt-2 border border-gray-100 bg-white shadow-2xl rounded-2xl\"\n >\n <span class=\"text-lg font-bold text-center\">{{\n 'editor.record.undo.confirmation.title' | translate\n }}</span>\n <span class=\"text-center\">{{\n 'editor.record.undo.confirmation.message' | translate\n }}</span>\n <div class=\"flex flex-row gap-8 justify-center\">\n <gn-ui-button\n (buttonClick)=\"rollback.emit()\"\n cdkFocusInitial\n type=\"primary\"\n data-cy=\"confirm-button\"\n [style.--gn-ui-button-width]=\"'120px'\"\n >{{\n 'editor.record.undo.confirmation.confirmText' | translate\n }}</gn-ui-button\n >\n <gn-ui-button\n [style.--gn-ui-button-width]=\"'120px'\"\n (buttonClick)=\"closeActionMenu.emit()\"\n >{{\n 'editor.record.undo.confirmation.cancelText' | translate\n }}</gn-ui-button\n >\n </div>\n </div>\n </ng-container>\n</ng-container>\n" }]
|
|
32025
|
+
}], ctorParameters: () => [{ type: i1$a.MatDialog }, { type: i0.ChangeDetectorRef }], propDecorators: { canDuplicate: [{
|
|
32026
|
+
type: Input
|
|
32027
|
+
}], isDuplicating: [{
|
|
32028
|
+
type: Input
|
|
32029
|
+
}], canDelete: [{
|
|
32030
|
+
type: Input
|
|
32031
|
+
}], page: [{
|
|
32032
|
+
type: Input
|
|
32033
|
+
}], duplicate: [{
|
|
32034
|
+
type: Output
|
|
32035
|
+
}], delete: [{
|
|
32036
|
+
type: Output
|
|
32037
|
+
}], closeActionMenu: [{
|
|
32038
|
+
type: Output
|
|
32039
|
+
}], rollback: [{
|
|
32040
|
+
type: Output
|
|
32041
|
+
}], switch: [{
|
|
32042
|
+
type: Output
|
|
32043
|
+
}], trigger: [{
|
|
32044
|
+
type: ViewChild,
|
|
32045
|
+
args: [MatMenuTrigger]
|
|
32046
|
+
}] } });
|
|
32047
|
+
|
|
31595
32048
|
class UiSearchModule {
|
|
31596
32049
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiSearchModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
31597
32050
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: UiSearchModule, declarations: [RecordPreviewComponent,
|
|
@@ -31617,7 +32070,8 @@ class UiSearchModule {
|
|
|
31617
32070
|
MatCheckboxModule,
|
|
31618
32071
|
RouterLink,
|
|
31619
32072
|
InteractiveTableComponent, i2$2.NgIconsModule, KindBadgeComponent,
|
|
31620
|
-
MetadataQualityComponent
|
|
32073
|
+
MetadataQualityComponent,
|
|
32074
|
+
ActionMenuComponent], exports: [RecordPreviewListComponent,
|
|
31621
32075
|
RecordPreviewCardComponent,
|
|
31622
32076
|
RecordPreviewTextComponent,
|
|
31623
32077
|
RecordPreviewTitleComponent,
|
|
@@ -31628,7 +32082,8 @@ class UiSearchModule {
|
|
|
31628
32082
|
ResultsHitsNumberComponent,
|
|
31629
32083
|
ResultsHitsSearchKindComponent,
|
|
31630
32084
|
RecordPreviewFeedComponent,
|
|
31631
|
-
RecordPreviewRowComponent
|
|
32085
|
+
RecordPreviewRowComponent,
|
|
32086
|
+
ActionMenuComponent] }); }
|
|
31632
32087
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiSearchModule, providers: [
|
|
31633
32088
|
provideNgIconsConfig({
|
|
31634
32089
|
size: '1.5em',
|
|
@@ -31655,7 +32110,8 @@ class UiSearchModule {
|
|
|
31655
32110
|
matHomeWorkOutline,
|
|
31656
32111
|
}),
|
|
31657
32112
|
KindBadgeComponent,
|
|
31658
|
-
MetadataQualityComponent,
|
|
32113
|
+
MetadataQualityComponent,
|
|
32114
|
+
ActionMenuComponent, FacetsModule$1] }); }
|
|
31659
32115
|
}
|
|
31660
32116
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiSearchModule, decorators: [{
|
|
31661
32117
|
type: NgModule,
|
|
@@ -31698,6 +32154,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
31698
32154
|
}),
|
|
31699
32155
|
KindBadgeComponent,
|
|
31700
32156
|
MetadataQualityComponent,
|
|
32157
|
+
ActionMenuComponent,
|
|
31701
32158
|
],
|
|
31702
32159
|
exports: [
|
|
31703
32160
|
RecordPreviewListComponent,
|
|
@@ -31712,6 +32169,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
31712
32169
|
ResultsHitsSearchKindComponent,
|
|
31713
32170
|
RecordPreviewFeedComponent,
|
|
31714
32171
|
RecordPreviewRowComponent,
|
|
32172
|
+
ActionMenuComponent,
|
|
31715
32173
|
],
|
|
31716
32174
|
providers: [
|
|
31717
32175
|
provideNgIconsConfig({
|
|
@@ -31722,76 +32180,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
31722
32180
|
}]
|
|
31723
32181
|
}] });
|
|
31724
32182
|
|
|
31725
|
-
class ActionMenuComponent {
|
|
31726
|
-
constructor(dialog, cdr) {
|
|
31727
|
-
this.dialog = dialog;
|
|
31728
|
-
this.cdr = cdr;
|
|
31729
|
-
this.duplicate = new EventEmitter();
|
|
31730
|
-
this.delete = new EventEmitter();
|
|
31731
|
-
this.closeActionMenu = new EventEmitter();
|
|
31732
|
-
this.rollback = new EventEmitter();
|
|
31733
|
-
this.sectionDisplayed = 'mainMenu';
|
|
31734
|
-
}
|
|
31735
|
-
openMenu() {
|
|
31736
|
-
this.trigger.openMenu();
|
|
31737
|
-
}
|
|
31738
|
-
displayMainMenu() {
|
|
31739
|
-
this.sectionDisplayed = 'mainMenu';
|
|
31740
|
-
this.cdr.markForCheck();
|
|
31741
|
-
}
|
|
31742
|
-
displayDeleteMenu() {
|
|
31743
|
-
if (this.isDraftPage) {
|
|
31744
|
-
this.sectionDisplayed = 'rollbackMenu';
|
|
31745
|
-
}
|
|
31746
|
-
else {
|
|
31747
|
-
this.sectionDisplayed = 'deleteMenu';
|
|
31748
|
-
}
|
|
31749
|
-
this.cdr.markForCheck();
|
|
31750
|
-
}
|
|
31751
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ActionMenuComponent, deps: [{ token: i1$a.MatDialog }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
31752
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ActionMenuComponent, isStandalone: true, selector: "gn-ui-action-menu", inputs: { canDuplicate: "canDuplicate", canDelete: "canDelete", isDraftPage: "isDraftPage" }, outputs: { duplicate: "duplicate", delete: "delete", closeActionMenu: "closeActionMenu", rollback: "rollback" }, viewQueries: [{ propertyName: "trigger", first: true, predicate: MatMenuTrigger, descendants: true }], ngImport: i0, template: "<ng-container [ngSwitch]=\"sectionDisplayed\">\n <ng-container *ngSwitchCase=\"'mainMenu'\">\n <div\n data-test=\"mainMenuSection\"\n class=\"mt-2 border border-gray-100 p-2 flex items-center bg-white shadow-2xl rounded-2xl\"\n >\n <ul class=\"flex flex-col gap-2 w-full\">\n <gn-ui-button\n *ngIf=\"!isDraftPage\"\n type=\"light\"\n extraClass=\"flex flex-row items-center gap-2 w-full justify-start\"\n (buttonClick)=\"duplicate.emit()\"\n [disabled]=\"!canDuplicate\"\n data-test=\"record-menu-duplicate-button\"\n >\n <span *ngIf=\"canDuplicate\" translate>record.action.duplicate</span>\n <span *ngIf=\"!canDuplicate\" translate\n >record.action.duplicating</span\n ></gn-ui-button\n >\n <gn-ui-button\n type=\"light\"\n extraClass=\"flex flex-row items-center gap-2 w-full justify-start\"\n (buttonClick)=\"displayDeleteMenu()\"\n [disabled]=\"!canDelete\"\n data-test=\"record-menu-delete-button\"\n ><span *ngIf=\"!isDraftPage\" translate>record.action.delete</span>\n <span *ngIf=\"isDraftPage\" translate\n >record.action.rollback</span\n ></gn-ui-button\n >\n </ul>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'deleteMenu'\">\n <div\n data-test=\"deleteMenuSection\"\n class=\"w-72 p-6 flex flex-col gap-3 mt-2 border border-gray-100 bg-white shadow-2xl rounded-2xl\"\n >\n <span class=\"text-lg font-bold text-center\">{{\n 'editor.record.delete.confirmation.title' | translate\n }}</span>\n <span class=\"text-center\">{{\n 'editor.record.delete.confirmation.message' | translate\n }}</span>\n <div class=\"flex flex-row gap-8 justify-center\">\n <gn-ui-button\n (buttonClick)=\"delete.emit()\"\n cdkFocusInitial\n type=\"primary\"\n data-cy=\"confirm-button\"\n [style.--gn-ui-button-width]=\"'100px'\"\n >{{\n 'editor.record.delete.confirmation.confirmText' | translate\n }}</gn-ui-button\n >\n <gn-ui-button\n [style.--gn-ui-button-width]=\"'100px'\"\n (buttonClick)=\"closeActionMenu.emit()\"\n >{{\n 'editor.record.delete.confirmation.cancelText' | translate\n }}</gn-ui-button\n >\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'rollbackMenu'\">\n <div\n data-test=\"rollbackMenuSection\"\n class=\"w-80 p-6 flex flex-col gap-3 mt-2 border border-gray-100 bg-white shadow-2xl rounded-2xl\"\n >\n <span class=\"text-lg font-bold text-center\">{{\n 'editor.record.undo.confirmation.title' | translate\n }}</span>\n <span class=\"text-center\">{{\n 'editor.record.undo.confirmation.message' | translate\n }}</span>\n <div class=\"flex flex-row gap-8 justify-center\">\n <gn-ui-button\n (buttonClick)=\"rollback.emit()\"\n cdkFocusInitial\n type=\"primary\"\n data-cy=\"confirm-button\"\n [style.--gn-ui-button-width]=\"'120px'\"\n >{{\n 'editor.record.undo.confirmation.confirmText' | translate\n }}</gn-ui-button\n >\n <gn-ui-button\n [style.--gn-ui-button-width]=\"'120px'\"\n (buttonClick)=\"closeActionMenu.emit()\"\n >{{\n 'editor.record.undo.confirmation.cancelText' | translate\n }}</gn-ui-button\n >\n </div>\n </div>\n </ng-container>\n</ng-container>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1$2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "ngmodule", type: MatDialogModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }] }); }
|
|
31753
|
-
}
|
|
31754
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ActionMenuComponent, decorators: [{
|
|
31755
|
-
type: Component,
|
|
31756
|
-
args: [{ selector: 'gn-ui-action-menu', standalone: true, imports: [
|
|
31757
|
-
CommonModule,
|
|
31758
|
-
ButtonComponent,
|
|
31759
|
-
MatMenuModule,
|
|
31760
|
-
MatDialogModule,
|
|
31761
|
-
ConfirmationDialogComponent,
|
|
31762
|
-
TranslateModule,
|
|
31763
|
-
], template: "<ng-container [ngSwitch]=\"sectionDisplayed\">\n <ng-container *ngSwitchCase=\"'mainMenu'\">\n <div\n data-test=\"mainMenuSection\"\n class=\"mt-2 border border-gray-100 p-2 flex items-center bg-white shadow-2xl rounded-2xl\"\n >\n <ul class=\"flex flex-col gap-2 w-full\">\n <gn-ui-button\n *ngIf=\"!isDraftPage\"\n type=\"light\"\n extraClass=\"flex flex-row items-center gap-2 w-full justify-start\"\n (buttonClick)=\"duplicate.emit()\"\n [disabled]=\"!canDuplicate\"\n data-test=\"record-menu-duplicate-button\"\n >\n <span *ngIf=\"canDuplicate\" translate>record.action.duplicate</span>\n <span *ngIf=\"!canDuplicate\" translate\n >record.action.duplicating</span\n ></gn-ui-button\n >\n <gn-ui-button\n type=\"light\"\n extraClass=\"flex flex-row items-center gap-2 w-full justify-start\"\n (buttonClick)=\"displayDeleteMenu()\"\n [disabled]=\"!canDelete\"\n data-test=\"record-menu-delete-button\"\n ><span *ngIf=\"!isDraftPage\" translate>record.action.delete</span>\n <span *ngIf=\"isDraftPage\" translate\n >record.action.rollback</span\n ></gn-ui-button\n >\n </ul>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'deleteMenu'\">\n <div\n data-test=\"deleteMenuSection\"\n class=\"w-72 p-6 flex flex-col gap-3 mt-2 border border-gray-100 bg-white shadow-2xl rounded-2xl\"\n >\n <span class=\"text-lg font-bold text-center\">{{\n 'editor.record.delete.confirmation.title' | translate\n }}</span>\n <span class=\"text-center\">{{\n 'editor.record.delete.confirmation.message' | translate\n }}</span>\n <div class=\"flex flex-row gap-8 justify-center\">\n <gn-ui-button\n (buttonClick)=\"delete.emit()\"\n cdkFocusInitial\n type=\"primary\"\n data-cy=\"confirm-button\"\n [style.--gn-ui-button-width]=\"'100px'\"\n >{{\n 'editor.record.delete.confirmation.confirmText' | translate\n }}</gn-ui-button\n >\n <gn-ui-button\n [style.--gn-ui-button-width]=\"'100px'\"\n (buttonClick)=\"closeActionMenu.emit()\"\n >{{\n 'editor.record.delete.confirmation.cancelText' | translate\n }}</gn-ui-button\n >\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'rollbackMenu'\">\n <div\n data-test=\"rollbackMenuSection\"\n class=\"w-80 p-6 flex flex-col gap-3 mt-2 border border-gray-100 bg-white shadow-2xl rounded-2xl\"\n >\n <span class=\"text-lg font-bold text-center\">{{\n 'editor.record.undo.confirmation.title' | translate\n }}</span>\n <span class=\"text-center\">{{\n 'editor.record.undo.confirmation.message' | translate\n }}</span>\n <div class=\"flex flex-row gap-8 justify-center\">\n <gn-ui-button\n (buttonClick)=\"rollback.emit()\"\n cdkFocusInitial\n type=\"primary\"\n data-cy=\"confirm-button\"\n [style.--gn-ui-button-width]=\"'120px'\"\n >{{\n 'editor.record.undo.confirmation.confirmText' | translate\n }}</gn-ui-button\n >\n <gn-ui-button\n [style.--gn-ui-button-width]=\"'120px'\"\n (buttonClick)=\"closeActionMenu.emit()\"\n >{{\n 'editor.record.undo.confirmation.cancelText' | translate\n }}</gn-ui-button\n >\n </div>\n </div>\n </ng-container>\n</ng-container>\n" }]
|
|
31764
|
-
}], ctorParameters: () => [{ type: i1$a.MatDialog }, { type: i0.ChangeDetectorRef }], propDecorators: { canDuplicate: [{
|
|
31765
|
-
type: Input
|
|
31766
|
-
}], canDelete: [{
|
|
31767
|
-
type: Input
|
|
31768
|
-
}], isDraftPage: [{
|
|
31769
|
-
type: Input
|
|
31770
|
-
}], duplicate: [{
|
|
31771
|
-
type: Output
|
|
31772
|
-
}], delete: [{
|
|
31773
|
-
type: Output
|
|
31774
|
-
}], closeActionMenu: [{
|
|
31775
|
-
type: Output
|
|
31776
|
-
}], rollback: [{
|
|
31777
|
-
type: Output
|
|
31778
|
-
}], trigger: [{
|
|
31779
|
-
type: ViewChild,
|
|
31780
|
-
args: [MatMenuTrigger]
|
|
31781
|
-
}] } });
|
|
31782
|
-
|
|
31783
32183
|
class ResultsTableComponent {
|
|
31784
|
-
constructor(overlay, viewContainerRef, cdr, dateService) {
|
|
32184
|
+
constructor(overlay, viewContainerRef, cdr, dateService, translateService) {
|
|
31785
32185
|
this.overlay = overlay;
|
|
31786
32186
|
this.viewContainerRef = viewContainerRef;
|
|
31787
32187
|
this.cdr = cdr;
|
|
31788
32188
|
this.dateService = dateService;
|
|
32189
|
+
this.translateService = translateService;
|
|
31789
32190
|
this.records = [];
|
|
31790
32191
|
this.selectedRecordsIdentifiers = [];
|
|
31791
32192
|
this.sortOrder = null;
|
|
31792
32193
|
this.hasDraft = () => false;
|
|
31793
32194
|
this.canDuplicate = () => true;
|
|
31794
|
-
this.canDelete = () => true;
|
|
32195
|
+
this.canDelete = () => of(true);
|
|
32196
|
+
this.canEdit = () => of(true);
|
|
31795
32197
|
this.isDraftPage = false;
|
|
31796
32198
|
this.isDuplicating = false;
|
|
31797
32199
|
// emits the column (field) as well as the order
|
|
@@ -31868,9 +32270,13 @@ class ResultsTableComponent {
|
|
|
31868
32270
|
return getBadgeColor(format);
|
|
31869
32271
|
}
|
|
31870
32272
|
handleRecordClick(item) {
|
|
31871
|
-
|
|
31872
|
-
|
|
31873
|
-
|
|
32273
|
+
this.canEdit(item)
|
|
32274
|
+
.pipe(take$1(1))
|
|
32275
|
+
.subscribe((canEdit) => {
|
|
32276
|
+
if (canEdit) {
|
|
32277
|
+
this.recordClick.emit(item);
|
|
32278
|
+
}
|
|
32279
|
+
});
|
|
31874
32280
|
}
|
|
31875
32281
|
handleDuplicate(item) {
|
|
31876
32282
|
this.duplicateRecord.emit(item);
|
|
@@ -31906,8 +32312,18 @@ class ResultsTableComponent {
|
|
|
31906
32312
|
handleRecordSelectedChange(selected, record) {
|
|
31907
32313
|
this.recordsSelectedChange.emit([[record], selected]);
|
|
31908
32314
|
}
|
|
31909
|
-
|
|
31910
|
-
|
|
32315
|
+
isMultilingual(record) {
|
|
32316
|
+
return record.otherLanguages.length > 0;
|
|
32317
|
+
}
|
|
32318
|
+
getTxtHoverMultilingual(record) {
|
|
32319
|
+
return this.translateService.instant('dashboard.records.isMultilingual', {
|
|
32320
|
+
languages: [...[record.defaultLanguage], ...record.otherLanguages].join(', '),
|
|
32321
|
+
});
|
|
32322
|
+
}
|
|
32323
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ResultsTableComponent, deps: [{ token: i1$8.Overlay }, { token: i0.ViewContainerRef }, { token: i0.ChangeDetectorRef }, { token: DateService }, { token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
32324
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ResultsTableComponent, isStandalone: true, selector: "gn-ui-results-table", inputs: { records: "records", selectedRecordsIdentifiers: "selectedRecordsIdentifiers", sortOrder: "sortOrder", hasDraft: "hasDraft", canDuplicate: "canDuplicate", canDelete: "canDelete", canEdit: "canEdit", isDraftPage: "isDraftPage", isDuplicating: "isDuplicating" }, outputs: { sortByChange: "sortByChange", recordClick: "recordClick", duplicateRecord: "duplicateRecord", deleteRecord: "deleteRecord", rollbackDraft: "rollbackDraft", recordsSelectedChange: "recordsSelectedChange" }, providers: [
|
|
32325
|
+
provideIcons({ iconoirUser, iconoirLock, iconoirTranslate, matMoreVert }),
|
|
32326
|
+
], viewQueries: [{ propertyName: "actionMenuButtons", predicate: ["actionMenuButton"], descendants: true, read: ElementRef }], ngImport: i0, template: "<gn-ui-interactive-table\n [items]=\"records\"\n [canEditItem]=\"canEdit\"\n [isDraftPage]=\"isDraftPage\"\n (itemClick)=\"handleRecordClick($event)\"\n>\n <!-- SELECTED COLUMN -->\n <gn-ui-interactive-table-column [width]=\"'3rem'\">\n <ng-template #cell let-item let-i=\"index\">\n <ng-icon\n name=\"iconoirLock\"\n class=\"text-purple\"\n *ngIf=\"(canEdit(item) | async) === false; else selectCheckbox\"\n ></ng-icon>\n <ng-template #selectCheckbox>\n <gn-ui-checkbox\n [checked]=\"isChecked(item)\"\n (changed)=\"handleRecordSelectedChange($event, item)\"\n class=\"-m-2\"\n type=\"default\"\n ></gn-ui-checkbox>\n </ng-template>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- TITLE COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [grow]=\"true\"\n [activeSort]=\"isSortedBy('resourceTitleObject.default.keyword')\"\n (sortChange)=\"setSortBy('resourceTitleObject.default.keyword', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.title</span>\n </ng-template>\n <ng-template #cell let-item>\n <div class=\"flex flex-row items-center gap-2 max-w-full font-semibold\">\n <span data-cy=\"resultItemTitle\" class=\"overflow-hidden text-ellipsis\">{{\n item.title\n }}</span>\n <gn-ui-badge\n *ngIf=\"hasDraft(item)\"\n [style.--gn-ui-badge-padding]=\"'0.2em 0.6em'\"\n [style.--gn-ui-badge-text-size]=\"'12px'\"\n [style.--gn-ui-badge-text-color]=\"'#3d2006'\"\n [style.--gn-ui-badge-background-color]=\"'#ffbc7b'\"\n [style.--gn-ui-badge-rounded]=\"'4px'\"\n >\n <span translate>dashboard.records.hasDraft</span>\n </gn-ui-badge>\n </div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- FORMATS COLUMN -->\n <gn-ui-interactive-table-column [width]=\"'9rem'\">\n <ng-template #header>\n <span translate>record.metadata.formats</span>\n </ng-template>\n <ng-template #cell let-item>\n <div\n class=\"flex justify-start items-center gap-2 font-medium\"\n *ngIf=\"getRecordFormats(item) as formats\"\n [title]=\"formats.join(', ')\"\n >\n <span\n class=\"badge-btn min-w-[45px] text-xs text-gray-900 px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[0])\"\n *ngIf=\"formats[0]\"\n >\n {{ formats[0] }}\n </span>\n <span\n class=\"badge-btn min-w-[45px] text-xs text-gray-900 px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[1])\"\n *ngIf=\"formats[1]\"\n >\n {{ formats[1] }}\n </span>\n <div class=\"shrink-0 text-xs\" *ngIf=\"formats.slice(2).length > 0\">\n <span>+{{ formats.slice(2).length }}</span>\n </div>\n </div>\n <div *ngIf=\"!getRecordFormats(item)\"></div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- OWNER COLUMN -->\n <gn-ui-interactive-table-column\n [width]=\"'12rem'\"\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('recordOwner')\"\n (sortChange)=\"setSortBy('recordOwner', $event)\"\n >\n <ng-template #header>\n <span translate>search.filters.user</span>\n </ng-template>\n <ng-template #cell let-item>\n <ng-icon name=\"iconoirUser\" size=\"16px\"></ng-icon>\n <span data-cy=\"ownerInfo\" class=\"text-xs\">{{\n formatUserInfo(item.extras?.ownerInfo)\n }}</span>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- STATUS COLUMN -->\n <gn-ui-interactive-table-column [width]=\"'6rem'\">\n <ng-template #header>\n <span translate>record.metadata.status</span>\n </ng-template>\n <ng-template #cell let-item>\n <span class=\"text-xs\">\n {{\n (item.extras?.['isPublishedToAll']\n ? 'record.metadata.status.published'\n : 'record.metadata.status.notPublished'\n ) | translate\n }}</span\n >\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- UPDATE DATE COLUMN -->\n <gn-ui-interactive-table-column\n [width]=\"'8rem'\"\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('changeDate')\"\n (sortChange)=\"setSortBy('changeDate', $event)\"\n >\n <ng-template #header>\n <span translate>search.filters.changeDate</span>\n </ng-template>\n <ng-template #cell let-item>\n <div class=\"flex text-left w-full text-xs\">\n {{\n item.extras?.['isPublishedToAll']\n ? dateToString(item.recordUpdated)\n : '-'\n }}\n </div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- ACTION MENU COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header> </ng-template>\n <ng-template #cell let-item>\n <div class=\"flex justify-end items-center gap-4 w-full\">\n <!-- IS MULTILINGUAL -->\n <ng-icon\n *ngIf=\"isMultilingual(item)\"\n data-cy=\"multilingual-indicator\"\n name=\"iconoirTranslate\"\n [attr.title]=\"getTxtHoverMultilingual(item)\"\n ></ng-icon>\n <!-- MORE ACTIONS MENU BUTTON -->\n <gn-ui-button\n cdkOverlayOrigin\n #actionMenuButton\n (buttonClick)=\"openActionMenu(item, template)\"\n type=\"light\"\n data-test=\"record-menu-button\"\n >\n <ng-icon name=\"matMoreVert\"></ng-icon>\n </gn-ui-button>\n </div>\n <ng-template #template>\n <gn-ui-action-menu\n [canDuplicate]=\"canDuplicate(item)\"\n [isDuplicating]=\"isDuplicating\"\n [canDelete]=\"canDelete(item) | async\"\n [page]=\"isDraftPage ? 'draft' : 'main'\"\n (duplicate)=\"handleDuplicate(item)\"\n (delete)=\"handleDelete(item)\"\n (closeActionMenu)=\"closeActionMenu()\"\n (rollback)=\"handleRollback(item)\"\n >\n </gn-ui-action-menu>\n </ng-template>\n </ng-template>\n </gn-ui-interactive-table-column>\n</gn-ui-interactive-table>\n", styles: [":host{--gn-ui-button-height: 40px;--gn-ui-button-width: 40px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "ngmodule", type: UiInputsModule }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "component", type: CheckboxComponent, selector: "gn-ui-checkbox", inputs: ["type", "checked", "indeterminate"], outputs: ["changed"] }, { kind: "component", type: BadgeComponent, selector: "gn-ui-badge", inputs: ["clickable", "removable"], outputs: ["badgeRemoveClicked"] }, { kind: "component", type: InteractiveTableComponent, selector: "gn-ui-interactive-table", inputs: ["items", "canEditItem", "isDraftPage"], outputs: ["itemClick"] }, { kind: "component", type: InteractiveTableColumnComponent, selector: "gn-ui-interactive-table-column", inputs: ["grow", "width", "sortable", "activeSort"], outputs: ["sortChange"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: ActionMenuComponent, selector: "gn-ui-action-menu", inputs: ["canDuplicate", "isDuplicating", "canDelete", "page"], outputs: ["duplicate", "delete", "closeActionMenu", "rollback", "switch"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "directive", type: CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }] }); }
|
|
31911
32327
|
}
|
|
31912
32328
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ResultsTableComponent, decorators: [{
|
|
31913
32329
|
type: Component,
|
|
@@ -31921,8 +32337,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
31921
32337
|
ActionMenuComponent,
|
|
31922
32338
|
NgIconComponent,
|
|
31923
32339
|
CdkOverlayOrigin,
|
|
31924
|
-
], providers: [
|
|
31925
|
-
|
|
32340
|
+
], providers: [
|
|
32341
|
+
provideIcons({ iconoirUser, iconoirLock, iconoirTranslate, matMoreVert }),
|
|
32342
|
+
], template: "<gn-ui-interactive-table\n [items]=\"records\"\n [canEditItem]=\"canEdit\"\n [isDraftPage]=\"isDraftPage\"\n (itemClick)=\"handleRecordClick($event)\"\n>\n <!-- SELECTED COLUMN -->\n <gn-ui-interactive-table-column [width]=\"'3rem'\">\n <ng-template #cell let-item let-i=\"index\">\n <ng-icon\n name=\"iconoirLock\"\n class=\"text-purple\"\n *ngIf=\"(canEdit(item) | async) === false; else selectCheckbox\"\n ></ng-icon>\n <ng-template #selectCheckbox>\n <gn-ui-checkbox\n [checked]=\"isChecked(item)\"\n (changed)=\"handleRecordSelectedChange($event, item)\"\n class=\"-m-2\"\n type=\"default\"\n ></gn-ui-checkbox>\n </ng-template>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- TITLE COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [grow]=\"true\"\n [activeSort]=\"isSortedBy('resourceTitleObject.default.keyword')\"\n (sortChange)=\"setSortBy('resourceTitleObject.default.keyword', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.title</span>\n </ng-template>\n <ng-template #cell let-item>\n <div class=\"flex flex-row items-center gap-2 max-w-full font-semibold\">\n <span data-cy=\"resultItemTitle\" class=\"overflow-hidden text-ellipsis\">{{\n item.title\n }}</span>\n <gn-ui-badge\n *ngIf=\"hasDraft(item)\"\n [style.--gn-ui-badge-padding]=\"'0.2em 0.6em'\"\n [style.--gn-ui-badge-text-size]=\"'12px'\"\n [style.--gn-ui-badge-text-color]=\"'#3d2006'\"\n [style.--gn-ui-badge-background-color]=\"'#ffbc7b'\"\n [style.--gn-ui-badge-rounded]=\"'4px'\"\n >\n <span translate>dashboard.records.hasDraft</span>\n </gn-ui-badge>\n </div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- FORMATS COLUMN -->\n <gn-ui-interactive-table-column [width]=\"'9rem'\">\n <ng-template #header>\n <span translate>record.metadata.formats</span>\n </ng-template>\n <ng-template #cell let-item>\n <div\n class=\"flex justify-start items-center gap-2 font-medium\"\n *ngIf=\"getRecordFormats(item) as formats\"\n [title]=\"formats.join(', ')\"\n >\n <span\n class=\"badge-btn min-w-[45px] text-xs text-gray-900 px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[0])\"\n *ngIf=\"formats[0]\"\n >\n {{ formats[0] }}\n </span>\n <span\n class=\"badge-btn min-w-[45px] text-xs text-gray-900 px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[1])\"\n *ngIf=\"formats[1]\"\n >\n {{ formats[1] }}\n </span>\n <div class=\"shrink-0 text-xs\" *ngIf=\"formats.slice(2).length > 0\">\n <span>+{{ formats.slice(2).length }}</span>\n </div>\n </div>\n <div *ngIf=\"!getRecordFormats(item)\"></div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- OWNER COLUMN -->\n <gn-ui-interactive-table-column\n [width]=\"'12rem'\"\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('recordOwner')\"\n (sortChange)=\"setSortBy('recordOwner', $event)\"\n >\n <ng-template #header>\n <span translate>search.filters.user</span>\n </ng-template>\n <ng-template #cell let-item>\n <ng-icon name=\"iconoirUser\" size=\"16px\"></ng-icon>\n <span data-cy=\"ownerInfo\" class=\"text-xs\">{{\n formatUserInfo(item.extras?.ownerInfo)\n }}</span>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- STATUS COLUMN -->\n <gn-ui-interactive-table-column [width]=\"'6rem'\">\n <ng-template #header>\n <span translate>record.metadata.status</span>\n </ng-template>\n <ng-template #cell let-item>\n <span class=\"text-xs\">\n {{\n (item.extras?.['isPublishedToAll']\n ? 'record.metadata.status.published'\n : 'record.metadata.status.notPublished'\n ) | translate\n }}</span\n >\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- UPDATE DATE COLUMN -->\n <gn-ui-interactive-table-column\n [width]=\"'8rem'\"\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('changeDate')\"\n (sortChange)=\"setSortBy('changeDate', $event)\"\n >\n <ng-template #header>\n <span translate>search.filters.changeDate</span>\n </ng-template>\n <ng-template #cell let-item>\n <div class=\"flex text-left w-full text-xs\">\n {{\n item.extras?.['isPublishedToAll']\n ? dateToString(item.recordUpdated)\n : '-'\n }}\n </div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- ACTION MENU COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header> </ng-template>\n <ng-template #cell let-item>\n <div class=\"flex justify-end items-center gap-4 w-full\">\n <!-- IS MULTILINGUAL -->\n <ng-icon\n *ngIf=\"isMultilingual(item)\"\n data-cy=\"multilingual-indicator\"\n name=\"iconoirTranslate\"\n [attr.title]=\"getTxtHoverMultilingual(item)\"\n ></ng-icon>\n <!-- MORE ACTIONS MENU BUTTON -->\n <gn-ui-button\n cdkOverlayOrigin\n #actionMenuButton\n (buttonClick)=\"openActionMenu(item, template)\"\n type=\"light\"\n data-test=\"record-menu-button\"\n >\n <ng-icon name=\"matMoreVert\"></ng-icon>\n </gn-ui-button>\n </div>\n <ng-template #template>\n <gn-ui-action-menu\n [canDuplicate]=\"canDuplicate(item)\"\n [isDuplicating]=\"isDuplicating\"\n [canDelete]=\"canDelete(item) | async\"\n [page]=\"isDraftPage ? 'draft' : 'main'\"\n (duplicate)=\"handleDuplicate(item)\"\n (delete)=\"handleDelete(item)\"\n (closeActionMenu)=\"closeActionMenu()\"\n (rollback)=\"handleRollback(item)\"\n >\n </gn-ui-action-menu>\n </ng-template>\n </ng-template>\n </gn-ui-interactive-table-column>\n</gn-ui-interactive-table>\n", styles: [":host{--gn-ui-button-height: 40px;--gn-ui-button-width: 40px}\n"] }]
|
|
32343
|
+
}], ctorParameters: () => [{ type: i1$8.Overlay }, { type: i0.ViewContainerRef }, { type: i0.ChangeDetectorRef }, { type: DateService }, { type: i1$1.TranslateService }], propDecorators: { records: [{
|
|
31926
32344
|
type: Input
|
|
31927
32345
|
}], selectedRecordsIdentifiers: [{
|
|
31928
32346
|
type: Input
|
|
@@ -31934,6 +32352,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
31934
32352
|
type: Input
|
|
31935
32353
|
}], canDelete: [{
|
|
31936
32354
|
type: Input
|
|
32355
|
+
}], canEdit: [{
|
|
32356
|
+
type: Input
|
|
31937
32357
|
}], isDraftPage: [{
|
|
31938
32358
|
type: Input
|
|
31939
32359
|
}], isDuplicating: [{
|
|
@@ -34265,14 +34685,21 @@ class ResultsTableContainerComponent {
|
|
|
34265
34685
|
this.recordsRepository = recordsRepository;
|
|
34266
34686
|
this.notificationsService = notificationsService;
|
|
34267
34687
|
this.translateService = translateService;
|
|
34268
|
-
this.canDuplicate = () => true;
|
|
34269
|
-
this.canDelete = () => true;
|
|
34270
34688
|
this.recordClick = new EventEmitter();
|
|
34271
34689
|
this.duplicateRecord = new EventEmitter();
|
|
34272
34690
|
this.subscription = new Subscription();
|
|
34273
34691
|
this.selectedRecords$ = this.selectionService.selectedRecordsIdentifiers$;
|
|
34274
34692
|
this.sortBy$ = this.searchFacade.sortBy$;
|
|
34275
34693
|
this.hasDraft = (record) => this.recordsRepository.recordHasDraft(record.uniqueIdentifier);
|
|
34694
|
+
this.canDuplicate = (record) => {
|
|
34695
|
+
return this.recordsRepository.canDuplicate(record);
|
|
34696
|
+
};
|
|
34697
|
+
this.canDelete = (record) => {
|
|
34698
|
+
return this.recordsRepository.canDelete(record);
|
|
34699
|
+
};
|
|
34700
|
+
this.canEdit = (record) => {
|
|
34701
|
+
return this.recordsRepository.canEditIndexedRecord(record);
|
|
34702
|
+
};
|
|
34276
34703
|
}
|
|
34277
34704
|
handleRecordClick(item) {
|
|
34278
34705
|
this.recordClick.emit(item);
|
|
@@ -34317,16 +34744,12 @@ class ResultsTableContainerComponent {
|
|
|
34317
34744
|
this.subscription.unsubscribe();
|
|
34318
34745
|
}
|
|
34319
34746
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ResultsTableContainerComponent, deps: [{ token: SearchFacade }, { token: SearchService }, { token: SelectionService }, { token: RecordsRepositoryInterface }, { token: NotificationsService }, { token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
34320
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ResultsTableContainerComponent, isStandalone: true, selector: "gn-ui-results-table-container", inputs: {
|
|
34747
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ResultsTableContainerComponent, isStandalone: true, selector: "gn-ui-results-table-container", inputs: { isDuplicating: "isDuplicating" }, outputs: { recordClick: "recordClick", duplicateRecord: "duplicateRecord" }, ngImport: i0, template: "<gn-ui-results-table\n *ngIf=\"searchFacade.results$ | async as records\"\n [records]=\"records\"\n [hasDraft]=\"hasDraft\"\n [selectedRecordsIdentifiers]=\"selectedRecords$ | async\"\n [sortOrder]=\"sortBy$ | async\"\n [canDelete]=\"canDelete\"\n [canDuplicate]=\"canDuplicate\"\n [isDuplicating]=\"isDuplicating\"\n [canEdit]=\"canEdit\"\n (recordClick)=\"handleRecordClick($event)\"\n (duplicateRecord)=\"handleDuplicateRecord($event)\"\n (deleteRecord)=\"handleDeleteRecord($event)\"\n (recordsSelectedChange)=\"handleRecordsSelectedChange($event[0], $event[1])\"\n (sortByChange)=\"handleSortByChange($event[0], $event[1])\"\n></gn-ui-results-table>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "component", type: ResultsTableComponent, selector: "gn-ui-results-table", inputs: ["records", "selectedRecordsIdentifiers", "sortOrder", "hasDraft", "canDuplicate", "canDelete", "canEdit", "isDraftPage", "isDuplicating"], outputs: ["sortByChange", "recordClick", "duplicateRecord", "deleteRecord", "rollbackDraft", "recordsSelectedChange"] }] }); }
|
|
34321
34748
|
}
|
|
34322
34749
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ResultsTableContainerComponent, decorators: [{
|
|
34323
34750
|
type: Component,
|
|
34324
|
-
args: [{ selector: 'gn-ui-results-table-container', standalone: true, imports: [CommonModule, ResultsTableComponent], template: "<gn-ui-results-table\n *ngIf=\"searchFacade.results$ | async as records\"\n [records]=\"records\"\n [hasDraft]=\"hasDraft\"\n [selectedRecordsIdentifiers]=\"selectedRecords$ | async\"\n [sortOrder]=\"sortBy$ | async\"\n [canDelete]=\"canDelete\"\n [canDuplicate]=\"canDuplicate\"\n [isDuplicating]=\"isDuplicating\"\n (recordClick)=\"handleRecordClick($event)\"\n (duplicateRecord)=\"handleDuplicateRecord($event)\"\n (deleteRecord)=\"handleDeleteRecord($event)\"\n (recordsSelectedChange)=\"handleRecordsSelectedChange($event[0], $event[1])\"\n (sortByChange)=\"handleSortByChange($event[0], $event[1])\"\n></gn-ui-results-table>\n" }]
|
|
34325
|
-
}], ctorParameters: () => [{ type: SearchFacade }, { type: SearchService }, { type: SelectionService }, { type: RecordsRepositoryInterface }, { type: NotificationsService }, { type: i1$1.TranslateService }], propDecorators: {
|
|
34326
|
-
type: Input
|
|
34327
|
-
}], canDelete: [{
|
|
34328
|
-
type: Input
|
|
34329
|
-
}], isDuplicating: [{
|
|
34751
|
+
args: [{ selector: 'gn-ui-results-table-container', standalone: true, imports: [CommonModule, ResultsTableComponent], template: "<gn-ui-results-table\n *ngIf=\"searchFacade.results$ | async as records\"\n [records]=\"records\"\n [hasDraft]=\"hasDraft\"\n [selectedRecordsIdentifiers]=\"selectedRecords$ | async\"\n [sortOrder]=\"sortBy$ | async\"\n [canDelete]=\"canDelete\"\n [canDuplicate]=\"canDuplicate\"\n [isDuplicating]=\"isDuplicating\"\n [canEdit]=\"canEdit\"\n (recordClick)=\"handleRecordClick($event)\"\n (duplicateRecord)=\"handleDuplicateRecord($event)\"\n (deleteRecord)=\"handleDeleteRecord($event)\"\n (recordsSelectedChange)=\"handleRecordsSelectedChange($event[0], $event[1])\"\n (sortByChange)=\"handleSortByChange($event[0], $event[1])\"\n></gn-ui-results-table>\n" }]
|
|
34752
|
+
}], ctorParameters: () => [{ type: SearchFacade }, { type: SearchService }, { type: SelectionService }, { type: RecordsRepositoryInterface }, { type: NotificationsService }, { type: i1$1.TranslateService }], propDecorators: { isDuplicating: [{
|
|
34330
34753
|
type: Input
|
|
34331
34754
|
}], recordClick: [{
|
|
34332
34755
|
type: Output
|
|
@@ -36249,6 +36672,8 @@ const closeMetadata = createAction('[Metadata view] close');
|
|
|
36249
36672
|
Related actions
|
|
36250
36673
|
*/
|
|
36251
36674
|
const setRelated = createAction('[Metadata view] Set related records', props());
|
|
36675
|
+
const setSources = createAction('[Metadata view] Set sources', props());
|
|
36676
|
+
const setSourceOf = createAction('[Metadata view] Set has sources', props());
|
|
36252
36677
|
/*
|
|
36253
36678
|
ChartConfig actions
|
|
36254
36679
|
*/
|
|
@@ -36280,7 +36705,9 @@ var mdview_actions = /*#__PURE__*/Object.freeze({
|
|
|
36280
36705
|
loadUserFeedbacksSuccess: loadUserFeedbacksSuccess,
|
|
36281
36706
|
setChartConfig: setChartConfig,
|
|
36282
36707
|
setIncompleteMetadata: setIncompleteMetadata,
|
|
36283
|
-
setRelated: setRelated
|
|
36708
|
+
setRelated: setRelated,
|
|
36709
|
+
setSourceOf: setSourceOf,
|
|
36710
|
+
setSources: setSources
|
|
36284
36711
|
});
|
|
36285
36712
|
|
|
36286
36713
|
const METADATA_VIEW_FEATURE_STATE_KEY = 'metadataView';
|
|
@@ -36323,6 +36750,12 @@ on(loadFullMetadata, (state) => ({
|
|
|
36323
36750
|
on(setRelated, (state, { related }) => ({
|
|
36324
36751
|
...state,
|
|
36325
36752
|
related,
|
|
36753
|
+
})), on(setSources, (state, { sources }) => ({
|
|
36754
|
+
...state,
|
|
36755
|
+
sources,
|
|
36756
|
+
})), on(setSourceOf, (state, { sourceOf }) => ({
|
|
36757
|
+
...state,
|
|
36758
|
+
sourceOf,
|
|
36326
36759
|
})),
|
|
36327
36760
|
/*
|
|
36328
36761
|
ChartConfig reducers
|
|
@@ -36384,6 +36817,8 @@ const getMetadataError = createSelector(getMdViewState, (state) => state.error);
|
|
|
36384
36817
|
Related selectors
|
|
36385
36818
|
*/
|
|
36386
36819
|
const getRelated = createSelector(getMdViewState, (state) => state.related);
|
|
36820
|
+
const getSources = createSelector(getMdViewState, (state) => state.sources);
|
|
36821
|
+
const getSourceOf = createSelector(getMdViewState, (state) => state.sourceOf);
|
|
36387
36822
|
/*
|
|
36388
36823
|
Metadata selectors
|
|
36389
36824
|
*/
|
|
@@ -38415,6 +38850,8 @@ class MdViewFacade {
|
|
|
38415
38850
|
}));
|
|
38416
38851
|
this.error$ = this.store.pipe(select(getMetadataError));
|
|
38417
38852
|
this.related$ = this.store.pipe(select(getRelated));
|
|
38853
|
+
this.sources$ = this.store.pipe(select(getSources));
|
|
38854
|
+
this.sourceOf$ = this.store.pipe(select(getSourceOf));
|
|
38418
38855
|
this.chartConfig$ = this.store.pipe(select(getChartConfig));
|
|
38419
38856
|
this.allLinks$ = this.metadata$.pipe(map$1((record) => 'onlineResources' in record ? record.onlineResources : []), shareReplay(1));
|
|
38420
38857
|
this.apiLinks$ = this.allLinks$.pipe(map$1((links) => links.filter((link) => this.linkClassifier.hasUsage(link, LinkUsage.API))), shareReplay(1));
|
|
@@ -38516,6 +38953,12 @@ class MdViewEffects {
|
|
|
38516
38953
|
this.loadRelatedRecords$ = createEffect(() => this.actions$.pipe(ofType(loadFullMetadataSuccess), switchMap$1(({ full }) => this.recordsRepository.getSimilarRecords(full)), map$1((related) => {
|
|
38517
38954
|
return setRelated({ related });
|
|
38518
38955
|
}), catchError((error) => of(setRelated({ related: null })))));
|
|
38956
|
+
this.loadSources$ = createEffect(() => this.actions$.pipe(ofType(loadFullMetadataSuccess), switchMap$1(({ full }) => this.recordsRepository.getSources(full)), map$1((sources) => {
|
|
38957
|
+
return setSources({ sources });
|
|
38958
|
+
}), catchError(() => of(setSources({ sources: null })))));
|
|
38959
|
+
this.loadSourceOf$ = createEffect(() => this.actions$.pipe(ofType(loadFullMetadataSuccess), switchMap$1(({ full }) => this.recordsRepository.getSourceOf(full)), map$1((sourceOf) => {
|
|
38960
|
+
return setSourceOf({ sourceOf });
|
|
38961
|
+
}), catchError(() => of(setSourceOf({ sourceOf: null })))));
|
|
38519
38962
|
/*
|
|
38520
38963
|
UserFeedback effects
|
|
38521
38964
|
*/
|
|
@@ -42726,17 +43169,256 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
42726
43169
|
args: [{ selector: 'gn-ui-record-form', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, FormFieldComponent, TranslateModule], template: "<div class=\"flex flex-col gap-6\">\n <ng-container\n *ngFor=\"\n let section of facade.currentSections$ | async;\n trackBy: sectionTracker\n \"\n >\n <ng-container *ngIf=\"!section.hidden\">\n <div class=\"flex flex-col gap-6 border p-8 rounded-[8px] shadow\">\n <div class=\"flex flex-col gap-2\">\n <div\n *ngIf=\"section.labelKey\"\n class=\"text-2xl font-title text-black\"\n translate\n >\n {{ section.labelKey }}\n </div>\n <div\n *ngIf=\"section.descriptionKey\"\n class=\"text-gray-800 text-sm\"\n translate\n >\n {{ section.descriptionKey }}\n </div>\n </div>\n <div class=\"grid auto-rows-auto grid-cols-2 gap-[32px]\">\n <ng-container\n *ngFor=\"\n let field of section.fieldsWithValues;\n trackBy: fieldTracker\n \"\n >\n <ng-container *ngIf=\"!field.config.hidden\">\n <gn-ui-form-field\n [ngClass]=\"\n field.config.gridColumnSpan === 1\n ? 'col-span-1'\n : 'col-span-2'\n \"\n [uniqueIdentifier]=\"recordUniqueIdentifier$ | async\"\n [model]=\"field.config.model!\"\n [modelSpecifier]=\"field.config.modelSpecifier!\"\n [config]=\"field.config.formFieldConfig\"\n [value]=\"field.value\"\n [componentName]=\"field.config.componentName\"\n (valueChange)=\"\n handleFieldValueChange(field.config.model!, $event)\n \"\n ></gn-ui-form-field>\n </ng-container>\n </ng-container>\n </div>\n </div>\n </ng-container>\n </ng-container>\n</div>\n" }]
|
|
42727
43170
|
}], ctorParameters: () => [{ type: EditorFacade }] });
|
|
42728
43171
|
|
|
43172
|
+
const extraFlagMap = {
|
|
43173
|
+
ar: 'arab',
|
|
43174
|
+
en: 'gb',
|
|
43175
|
+
ko: 'kr',
|
|
43176
|
+
cs: 'cz',
|
|
43177
|
+
zh: 'cn',
|
|
43178
|
+
ca: 'es-ct',
|
|
43179
|
+
rm: 'ch',
|
|
43180
|
+
da: 'dk',
|
|
43181
|
+
sv: 'se',
|
|
43182
|
+
cy: 'gb-wls',
|
|
43183
|
+
hy: 'am',
|
|
43184
|
+
ka: 'ge',
|
|
43185
|
+
uk: 'ua',
|
|
43186
|
+
};
|
|
42729
43187
|
class MultilingualPanelComponent {
|
|
42730
|
-
|
|
42731
|
-
this.
|
|
43188
|
+
set record(value) {
|
|
43189
|
+
this._record = value;
|
|
43190
|
+
this.isMultilingual = value.otherLanguages.length > 0;
|
|
43191
|
+
this.editTranslations = false;
|
|
43192
|
+
this.recordLanguages = [...value.otherLanguages, value.defaultLanguage];
|
|
43193
|
+
this.selectedLanguages = this.recordLanguages;
|
|
43194
|
+
this.formLanguage = value.defaultLanguage;
|
|
43195
|
+
}
|
|
43196
|
+
constructor(facade, dialog, translateService, recordsRepository, overlay, viewContainerRef, cdr) {
|
|
43197
|
+
this.facade = facade;
|
|
43198
|
+
this.dialog = dialog;
|
|
43199
|
+
this.translateService = translateService;
|
|
43200
|
+
this.recordsRepository = recordsRepository;
|
|
43201
|
+
this.overlay = overlay;
|
|
43202
|
+
this.viewContainerRef = viewContainerRef;
|
|
43203
|
+
this.cdr = cdr;
|
|
43204
|
+
this.selectedLanguages = [];
|
|
43205
|
+
this.recordLanguages = [];
|
|
43206
|
+
this.formLanguage = '';
|
|
43207
|
+
this.isActionMenuOpen = false;
|
|
43208
|
+
this.subscription = new Subscription();
|
|
43209
|
+
this.supportedLanguages$ = this.recordsRepository
|
|
43210
|
+
.getApplicationLanguages()
|
|
43211
|
+
.pipe(map$2((languages) => this.sortLanguages(languages)));
|
|
43212
|
+
}
|
|
43213
|
+
ngOnDestroy() {
|
|
43214
|
+
this.subscription.unsubscribe();
|
|
43215
|
+
}
|
|
43216
|
+
sortLanguages(languages) {
|
|
43217
|
+
return languages
|
|
43218
|
+
.map((lang) => {
|
|
43219
|
+
const label = this.translateService.instant('language.' + lang);
|
|
43220
|
+
const isTranslated = label !== 'language.' + lang;
|
|
43221
|
+
return {
|
|
43222
|
+
lang,
|
|
43223
|
+
label,
|
|
43224
|
+
isTranslated,
|
|
43225
|
+
};
|
|
43226
|
+
})
|
|
43227
|
+
.sort((a, b) => {
|
|
43228
|
+
if (a.isTranslated && !b.isTranslated)
|
|
43229
|
+
return -1;
|
|
43230
|
+
if (!a.isTranslated && b.isTranslated)
|
|
43231
|
+
return 1;
|
|
43232
|
+
return a.label.localeCompare(b.label);
|
|
43233
|
+
})
|
|
43234
|
+
.map((item) => item.lang);
|
|
42732
43235
|
}
|
|
42733
|
-
|
|
42734
|
-
|
|
43236
|
+
toggleLanguageSelection() {
|
|
43237
|
+
this.editTranslations = !this.editTranslations;
|
|
43238
|
+
}
|
|
43239
|
+
getIconClass(lang) {
|
|
43240
|
+
return extraFlagMap[lang]
|
|
43241
|
+
? `fi fi-${extraFlagMap[lang]} w-4 h-3`
|
|
43242
|
+
: `fi fi-${lang} w-4 h-3`;
|
|
43243
|
+
}
|
|
43244
|
+
switchMultilingual() {
|
|
43245
|
+
if (this.isMultilingual && this.selectedLanguages.length > 1) {
|
|
43246
|
+
this.confirmDeleteAction();
|
|
43247
|
+
}
|
|
43248
|
+
else {
|
|
43249
|
+
this.isMultilingual = true;
|
|
43250
|
+
this.editTranslations = true;
|
|
43251
|
+
}
|
|
43252
|
+
}
|
|
43253
|
+
getExtraClass(lang) {
|
|
43254
|
+
const baseClass = 'h-[34px] w-full font-bold justify-start hover:bg-white';
|
|
43255
|
+
if (this.selectedLanguages.includes(lang)) {
|
|
43256
|
+
return `${baseClass} bg-white border border-black`;
|
|
43257
|
+
}
|
|
43258
|
+
return baseClass;
|
|
43259
|
+
}
|
|
43260
|
+
toggleLanguage(lang) {
|
|
43261
|
+
if (this.selectedLanguages.includes(lang)) {
|
|
43262
|
+
this.removeSelectedLanguage(lang);
|
|
43263
|
+
}
|
|
43264
|
+
else {
|
|
43265
|
+
this.selectedLanguages.push(lang);
|
|
43266
|
+
}
|
|
43267
|
+
}
|
|
43268
|
+
removeSelectedLanguage(lang) {
|
|
43269
|
+
this.selectedLanguages = this.selectedLanguages.filter((language) => language !== lang);
|
|
43270
|
+
}
|
|
43271
|
+
validateTranslations() {
|
|
43272
|
+
const equalLength = this.selectedLanguages.length === this.recordLanguages.length;
|
|
43273
|
+
if (this.selectedLanguages.length < this.recordLanguages.length ||
|
|
43274
|
+
(equalLength && this.selectedLanguages !== this.recordLanguages)) {
|
|
43275
|
+
this.confirmDeleteAction(this.selectedLanguages);
|
|
43276
|
+
}
|
|
43277
|
+
else {
|
|
43278
|
+
this.updateTranslations();
|
|
43279
|
+
}
|
|
43280
|
+
}
|
|
43281
|
+
updateTranslations() {
|
|
43282
|
+
this.facade.updateRecordField('otherLanguages', this.selectedLanguages.filter((lang) => lang !== this.formLanguage));
|
|
43283
|
+
this.recordLanguages = this.selectedLanguages;
|
|
43284
|
+
this.editTranslations = false;
|
|
43285
|
+
}
|
|
43286
|
+
switchFormLang(lang) {
|
|
43287
|
+
// TO IMPLEMENT FURTHER
|
|
43288
|
+
}
|
|
43289
|
+
switchDefaultLang(lang) {
|
|
43290
|
+
this.formLanguage = lang;
|
|
43291
|
+
this.facade.updateRecordField('defaultLanguage', lang);
|
|
43292
|
+
this.facade.updateRecordField('otherLanguages', this.selectedLanguages.filter((lang) => lang !== this.formLanguage));
|
|
43293
|
+
this.closeActionMenu();
|
|
43294
|
+
}
|
|
43295
|
+
confirmDeleteAction(lang) {
|
|
43296
|
+
const dialogRef = this.dialog.open(ConfirmationDialogComponent, {
|
|
43297
|
+
data: {
|
|
43298
|
+
title: this.translateService.instant('editor.record.multilingual.confirmation.title'),
|
|
43299
|
+
message: this.translateService.instant('editor.record.multilingual.confirmation.message'),
|
|
43300
|
+
confirmText: this.translateService.instant('editor.record.multilingual.confirmation.confirmText'),
|
|
43301
|
+
cancelText: this.translateService.instant('editor.record.multilingual.confirmation.cancelText'),
|
|
43302
|
+
},
|
|
43303
|
+
restoreFocus: true,
|
|
43304
|
+
});
|
|
43305
|
+
this.subscription.add(dialogRef.afterClosed().subscribe((confirmed) => {
|
|
43306
|
+
if (confirmed) {
|
|
43307
|
+
if (lang) {
|
|
43308
|
+
if (!Array.isArray(lang)) {
|
|
43309
|
+
this.removeSelectedLanguage(lang);
|
|
43310
|
+
this.closeActionMenu();
|
|
43311
|
+
}
|
|
43312
|
+
this.updateTranslations();
|
|
43313
|
+
}
|
|
43314
|
+
else {
|
|
43315
|
+
this.facade.updateRecordField('otherLanguages', []);
|
|
43316
|
+
this.isMultilingual = false;
|
|
43317
|
+
this.selectedLanguages = [];
|
|
43318
|
+
}
|
|
43319
|
+
}
|
|
43320
|
+
else {
|
|
43321
|
+
this.isMultilingual = true;
|
|
43322
|
+
this.selectedLanguages = this.recordLanguages;
|
|
43323
|
+
}
|
|
43324
|
+
this.editTranslations = false;
|
|
43325
|
+
}));
|
|
43326
|
+
}
|
|
43327
|
+
isFirstUnsupported(index) {
|
|
43328
|
+
const langs = this.sortLanguages(this.recordLanguages);
|
|
43329
|
+
return (langs[index].length === 3 &&
|
|
43330
|
+
langs.slice(0, index).every((lang) => lang.length !== 3));
|
|
43331
|
+
}
|
|
43332
|
+
isLangSupported(lang) {
|
|
43333
|
+
return lang.length === 2;
|
|
43334
|
+
}
|
|
43335
|
+
getToggleTitle(lang) {
|
|
43336
|
+
if (lang === this._record.defaultLanguage) {
|
|
43337
|
+
return this.translateService.instant('editor.record.form.multilingual.forbidden');
|
|
43338
|
+
}
|
|
43339
|
+
return '';
|
|
43340
|
+
}
|
|
43341
|
+
openActionMenu(item, template) {
|
|
43342
|
+
this.isActionMenuOpen = true;
|
|
43343
|
+
const index = this.sortLanguages(this.selectedLanguages).indexOf(item);
|
|
43344
|
+
const buttonElement = this.actionMenuButtons.toArray()[index];
|
|
43345
|
+
const positionStrategy = this.overlay
|
|
43346
|
+
.position()
|
|
43347
|
+
.flexibleConnectedTo(buttonElement)
|
|
43348
|
+
.withFlexibleDimensions(true)
|
|
43349
|
+
.withPush(true)
|
|
43350
|
+
.withPositions([
|
|
43351
|
+
{
|
|
43352
|
+
originX: 'end',
|
|
43353
|
+
originY: 'bottom',
|
|
43354
|
+
overlayX: 'end',
|
|
43355
|
+
overlayY: 'top',
|
|
43356
|
+
},
|
|
43357
|
+
{
|
|
43358
|
+
originX: 'end',
|
|
43359
|
+
originY: 'top',
|
|
43360
|
+
overlayX: 'end',
|
|
43361
|
+
overlayY: 'bottom',
|
|
43362
|
+
},
|
|
43363
|
+
]);
|
|
43364
|
+
this.overlayRef = this.overlay.create({
|
|
43365
|
+
hasBackdrop: true,
|
|
43366
|
+
backdropClass: 'cdk-overlay-transparent-backdrop',
|
|
43367
|
+
positionStrategy: positionStrategy,
|
|
43368
|
+
scrollStrategy: this.overlay.scrollStrategies.reposition(),
|
|
43369
|
+
});
|
|
43370
|
+
const portal = new TemplatePortal(template, this.viewContainerRef);
|
|
43371
|
+
this.overlayRef.attach(portal);
|
|
43372
|
+
this.subscription.add(this.overlayRef.backdropClick().subscribe(() => {
|
|
43373
|
+
this.closeActionMenu();
|
|
43374
|
+
}));
|
|
43375
|
+
}
|
|
43376
|
+
closeActionMenu() {
|
|
43377
|
+
if (this.overlayRef) {
|
|
43378
|
+
this.isActionMenuOpen = false;
|
|
43379
|
+
this.overlayRef.dispose();
|
|
43380
|
+
this.cdr.markForCheck();
|
|
43381
|
+
}
|
|
43382
|
+
}
|
|
43383
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MultilingualPanelComponent, deps: [{ token: EditorFacade }, { token: i1$a.MatDialog }, { token: i1$1.TranslateService }, { token: RecordsRepositoryInterface }, { token: i1$8.Overlay }, { token: i0.ViewContainerRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
43384
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MultilingualPanelComponent, isStandalone: true, selector: "gn-ui-multilingual-panel", inputs: { record: "record" }, providers: [
|
|
43385
|
+
provideIcons({
|
|
43386
|
+
iconoirSettings,
|
|
43387
|
+
matMoreHorizOutline,
|
|
43388
|
+
iconoirCheckCircle,
|
|
43389
|
+
iconoirCircle,
|
|
43390
|
+
}),
|
|
43391
|
+
provideNgIconsConfig({
|
|
43392
|
+
size: '1.25em',
|
|
43393
|
+
}),
|
|
43394
|
+
], viewQueries: [{ propertyName: "actionMenuButtons", predicate: ["actionMenuButton"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div\n class=\"flex flex-col h-full w-[302px] bg-neutral-100 border-l border-gray-300 py-8 px-3 gap-6 overflow-auto\"\n>\n <div class=\"flex flex-row px-2 justify-between\">\n <span class=\"text-3xl font-title text-black/80\" translate\n >editor.record.form.multilingual.title</span\n >\n <button\n [title]=\"'editor.record.form.multilingual.open' | translate\"\n (click)=\"toggleLanguageSelection()\"\n *ngIf=\"isMultilingual\"\n data-test=\"activateSelection\"\n >\n <ng-icon class=\"mt-1\" name=\"iconoirSettings\"></ng-icon>\n </button>\n </div>\n <div class=\"flex flex-col gap-2\" *ngIf=\"editTranslations || !isMultilingual\">\n <gn-ui-check-toggle\n class=\"p-2\"\n [label]=\"'editor.record.form.multilingual.enable' | translate\"\n [color]=\"'primary'\"\n [(value)]=\"isMultilingual\"\n (toggled)=\"switchMultilingual($event)\"\n ></gn-ui-check-toggle>\n <div *ngIf=\"isMultilingual\" class=\"flex flex-col gap-2\">\n <div class=\"flex flex-row justify-between border-t border-gray-300 p-3\">\n <span class=\"mt-2 text-sm text-gray-600\" translate\n >editor.record.form.multilingual.activate</span\n >\n <gn-ui-button\n extraClass=\"w-16 h-8 font-bold\"\n type=\"gray\"\n (buttonClick)=\"validateTranslations()\"\n data-test=\"validateSelection\"\n >{{ 'editor.record.form.multilingual.validate' | translate }}\n </gn-ui-button>\n </div>\n <ng-container *ngIf=\"supportedLanguages$ | async as languages\">\n <div\n class=\"flex flex-col gap-2 w-full px-2\"\n data-test=\"langAvailable\"\n *ngFor=\"let lang of languages\"\n >\n <gn-ui-button\n [extraClass]=\"getExtraClass(lang)\"\n type=\"gray\"\n (buttonClick)=\"toggleLanguage(lang)\"\n [disabled]=\"lang === _record.defaultLanguage\"\n [title]=\"getToggleTitle(lang)\"\n >\n <span [class]=\"getIconClass(lang)\"></span>\n <span class=\"ml-2\">{{ 'language.' + lang | translate }}</span>\n </gn-ui-button>\n </div>\n </ng-container>\n </div>\n </div>\n <div *ngIf=\"!editTranslations && isMultilingual\" class=\"flex flex-col gap-2\">\n <gn-ui-button\n *ngFor=\"let recordLang of sortLanguages(recordLanguages); let i = index\"\n extraClass=\"flex flex-row justify-between bg-white border border-white rounded mb-1 h-[34px] w-full\"\n [ngClass]=\"{\n 'mt-8': isFirstUnsupported(i),\n '': true,\n }\"\n (buttonClick)=\"switchFormLang(recordLang)\"\n type=\"outline\"\n data-test=\"langSwitch\"\n >\n <div class=\"flex flex-row gap-2 items-center\">\n <ng-icon\n *ngIf=\"recordLang === formLanguage\"\n class=\"text-primary mt-1\"\n name=\"iconoirCheckCircle\"\n ></ng-icon>\n <ng-icon\n *ngIf=\"recordLang !== formLanguage\"\n class=\"text-gray-800 mt-1\"\n name=\"iconoirCircle\"\n ></ng-icon>\n <span\n *ngIf=\"recordLang.length === 2\"\n [class]=\"getIconClass(recordLang) + 'mt-1'\"\n ></span>\n <span [ngClass]=\"recordLang === formLanguage ? 'text-black' : ''\">{{\n isLangSupported(recordLang)\n ? ('language.' + recordLang | translate)\n : recordLang.toUpperCase()\n }}</span>\n </div>\n <div class=\"flex flex-row gap-2 items-center\">\n <span\n *ngIf=\"recordLang === formLanguage\"\n class=\"text-xs text-base\"\n translate\n >editor.record.form.multilingual.default</span\n >\n <button\n (click)=\"\n openActionMenu(recordLang, template); $event.stopPropagation()\n \"\n cdkOverlayOrigin\n #actionMenuButton\n >\n <ng-icon class=\"pb-5\" name=\"matMoreHorizOutline\"></ng-icon>\n </button>\n <ng-template #template>\n <gn-ui-action-menu\n [canDelete]=\"recordLang !== _record.defaultLanguage\"\n page=\"record\"\n (delete)=\"confirmDeleteAction(recordLang)\"\n (closeActionMenu)=\"closeActionMenu()\"\n (switch)=\"switchDefaultLang(recordLang)\"\n >\n </gn-ui-action-menu>\n </ng-template>\n </div>\n </gn-ui-button>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "component", type: CheckToggleComponent, selector: "gn-ui-check-toggle", inputs: ["title", "label", "value", "color"], outputs: ["toggled"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "component", type: ActionMenuComponent, selector: "gn-ui-action-menu", inputs: ["canDuplicate", "isDuplicating", "canDelete", "page"], outputs: ["duplicate", "delete", "closeActionMenu", "rollback", "switch"] }] }); }
|
|
42735
43395
|
}
|
|
42736
43396
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MultilingualPanelComponent, decorators: [{
|
|
42737
43397
|
type: Component,
|
|
42738
|
-
args: [{ selector: 'gn-ui-multilingual-panel', standalone: true, imports: [
|
|
42739
|
-
|
|
43398
|
+
args: [{ selector: 'gn-ui-multilingual-panel', standalone: true, imports: [
|
|
43399
|
+
CommonModule,
|
|
43400
|
+
CheckToggleComponent,
|
|
43401
|
+
TranslateModule,
|
|
43402
|
+
ButtonComponent,
|
|
43403
|
+
NgIconComponent,
|
|
43404
|
+
ActionMenuComponent,
|
|
43405
|
+
], providers: [
|
|
43406
|
+
provideIcons({
|
|
43407
|
+
iconoirSettings,
|
|
43408
|
+
matMoreHorizOutline,
|
|
43409
|
+
iconoirCheckCircle,
|
|
43410
|
+
iconoirCircle,
|
|
43411
|
+
}),
|
|
43412
|
+
provideNgIconsConfig({
|
|
43413
|
+
size: '1.25em',
|
|
43414
|
+
}),
|
|
43415
|
+
], template: "<div\n class=\"flex flex-col h-full w-[302px] bg-neutral-100 border-l border-gray-300 py-8 px-3 gap-6 overflow-auto\"\n>\n <div class=\"flex flex-row px-2 justify-between\">\n <span class=\"text-3xl font-title text-black/80\" translate\n >editor.record.form.multilingual.title</span\n >\n <button\n [title]=\"'editor.record.form.multilingual.open' | translate\"\n (click)=\"toggleLanguageSelection()\"\n *ngIf=\"isMultilingual\"\n data-test=\"activateSelection\"\n >\n <ng-icon class=\"mt-1\" name=\"iconoirSettings\"></ng-icon>\n </button>\n </div>\n <div class=\"flex flex-col gap-2\" *ngIf=\"editTranslations || !isMultilingual\">\n <gn-ui-check-toggle\n class=\"p-2\"\n [label]=\"'editor.record.form.multilingual.enable' | translate\"\n [color]=\"'primary'\"\n [(value)]=\"isMultilingual\"\n (toggled)=\"switchMultilingual($event)\"\n ></gn-ui-check-toggle>\n <div *ngIf=\"isMultilingual\" class=\"flex flex-col gap-2\">\n <div class=\"flex flex-row justify-between border-t border-gray-300 p-3\">\n <span class=\"mt-2 text-sm text-gray-600\" translate\n >editor.record.form.multilingual.activate</span\n >\n <gn-ui-button\n extraClass=\"w-16 h-8 font-bold\"\n type=\"gray\"\n (buttonClick)=\"validateTranslations()\"\n data-test=\"validateSelection\"\n >{{ 'editor.record.form.multilingual.validate' | translate }}\n </gn-ui-button>\n </div>\n <ng-container *ngIf=\"supportedLanguages$ | async as languages\">\n <div\n class=\"flex flex-col gap-2 w-full px-2\"\n data-test=\"langAvailable\"\n *ngFor=\"let lang of languages\"\n >\n <gn-ui-button\n [extraClass]=\"getExtraClass(lang)\"\n type=\"gray\"\n (buttonClick)=\"toggleLanguage(lang)\"\n [disabled]=\"lang === _record.defaultLanguage\"\n [title]=\"getToggleTitle(lang)\"\n >\n <span [class]=\"getIconClass(lang)\"></span>\n <span class=\"ml-2\">{{ 'language.' + lang | translate }}</span>\n </gn-ui-button>\n </div>\n </ng-container>\n </div>\n </div>\n <div *ngIf=\"!editTranslations && isMultilingual\" class=\"flex flex-col gap-2\">\n <gn-ui-button\n *ngFor=\"let recordLang of sortLanguages(recordLanguages); let i = index\"\n extraClass=\"flex flex-row justify-between bg-white border border-white rounded mb-1 h-[34px] w-full\"\n [ngClass]=\"{\n 'mt-8': isFirstUnsupported(i),\n '': true,\n }\"\n (buttonClick)=\"switchFormLang(recordLang)\"\n type=\"outline\"\n data-test=\"langSwitch\"\n >\n <div class=\"flex flex-row gap-2 items-center\">\n <ng-icon\n *ngIf=\"recordLang === formLanguage\"\n class=\"text-primary mt-1\"\n name=\"iconoirCheckCircle\"\n ></ng-icon>\n <ng-icon\n *ngIf=\"recordLang !== formLanguage\"\n class=\"text-gray-800 mt-1\"\n name=\"iconoirCircle\"\n ></ng-icon>\n <span\n *ngIf=\"recordLang.length === 2\"\n [class]=\"getIconClass(recordLang) + 'mt-1'\"\n ></span>\n <span [ngClass]=\"recordLang === formLanguage ? 'text-black' : ''\">{{\n isLangSupported(recordLang)\n ? ('language.' + recordLang | translate)\n : recordLang.toUpperCase()\n }}</span>\n </div>\n <div class=\"flex flex-row gap-2 items-center\">\n <span\n *ngIf=\"recordLang === formLanguage\"\n class=\"text-xs text-base\"\n translate\n >editor.record.form.multilingual.default</span\n >\n <button\n (click)=\"\n openActionMenu(recordLang, template); $event.stopPropagation()\n \"\n cdkOverlayOrigin\n #actionMenuButton\n >\n <ng-icon class=\"pb-5\" name=\"matMoreHorizOutline\"></ng-icon>\n </button>\n <ng-template #template>\n <gn-ui-action-menu\n [canDelete]=\"recordLang !== _record.defaultLanguage\"\n page=\"record\"\n (delete)=\"confirmDeleteAction(recordLang)\"\n (closeActionMenu)=\"closeActionMenu()\"\n (switch)=\"switchDefaultLang(recordLang)\"\n >\n </gn-ui-action-menu>\n </ng-template>\n </div>\n </gn-ui-button>\n </div>\n</div>\n" }]
|
|
43416
|
+
}], ctorParameters: () => [{ type: EditorFacade }, { type: i1$a.MatDialog }, { type: i1$1.TranslateService }, { type: RecordsRepositoryInterface }, { type: i1$8.Overlay }, { type: i0.ViewContainerRef }, { type: i0.ChangeDetectorRef }], propDecorators: { record: [{
|
|
43417
|
+
type: Input
|
|
43418
|
+
}], actionMenuButtons: [{
|
|
43419
|
+
type: ViewChildren,
|
|
43420
|
+
args: ['actionMenuButton', { read: ElementRef }]
|
|
43421
|
+
}] } });
|
|
42740
43422
|
|
|
42741
43423
|
const ROUTER_STATE_KEY = 'router';
|
|
42742
43424
|
const ROUTER_ROUTE_SEARCH = 'search';
|
|
@@ -43182,5 +43864,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
43182
43864
|
* Generated bundle index. Do not edit.
|
|
43183
43865
|
*/
|
|
43184
43866
|
|
|
43185
|
-
export { ADD_RESULTS, ADD_SEARCH, AbstractAction, AbstractSearchField, AddLayerFromCatalogComponent, AddLayerRecordPreviewComponent, AddResults, AddSearch, AnchorLinkDirective, ApiCardComponent, ApplicationBannerComponent, AuthService, AutocompleteComponent, AvailableServicesField, AvatarComponent, AvatarServiceInterface, BASEMAP_LAYERS, BadgeComponent, BaseConverter, BaseFileReader, BaseReader, BlockListComponent, ButtonComponent, CLEAR_ERROR, CLEAR_RESULTS, CarouselComponent, CatalogTitleComponent, ChartComponent, ChartViewComponent, CheckToggleComponent, CheckboxComponent, ClearError, ClearResults, ColorScaleComponent, ConfirmationDialogComponent, ContentGhostComponent, CopyTextButtonComponent, DEFAULT_GN4_LOGIN_URL, DEFAULT_GN4_LOGOUT_URL, DEFAULT_GN4_SETTINGS_URL, DEFAULT_LANG, DEFAULT_PAGE_SIZE, DEFAULT_RESULTS_LAYOUT_CONFIG, DEFAULT_SEARCH_KEY, DO_NOT_USE_DEFAULT_BASEMAP, DataService, DataTableComponent, DataViewComponent, DataViewPermalinkComponent, DataViewShareComponent, DataViewWebComponentComponent, DatePickerComponent, DateRangeDropdownComponent, DateRangePickerComponent, DateRangeSearchField, DateService, DcatApConverter, DefaultRouterModule, DownloadItemComponent, DownloadsListComponent, DragAndDropFileInputComponent, DropdownMultiselectComponent, DropdownSelectorComponent, EDITOR_FEATURE_KEY, ES_QUERY_FIELDS_PRIORITY, ES_RESOURCES_VALUES, ES_SOURCE_SUMMARY, EXTERNAL_VIEWER_OPEN_NEW_TAB, EXTERNAL_VIEWER_URL_TEMPLATE, EditableLabelDirective, EditorFacade, EditorService, ElasticsearchService, EmbeddedTranslateLoader, ErrorComponent, ErrorType, ExpandablePanelButtonComponent, ExpandablePanelComponent, ExternalViewerButtonComponent, FIELDS_BRIEF, FIELDS_SUMMARY, FILTER_GEOMETRY, FILTER_SUMMARY_IGNORE_LIST, FORMATS, FacetBlockComponent, FacetBlockStubComponent, FacetItemComponent, FacetItemStubComponent, FacetListComponent, FacetsContainerComponent, FacetsModule, FavoriteStarComponent, FavoritesService, FeatureAuthModule, FeatureCatalogListComponent, FeatureCatalogModule, FeatureDetailComponent, FeatureEditorModule, FeatureMapModule, FeatureNotificationsModule, FeatureRecordModule, FeatureSearchModule, FetchError, FieldsService, FigureComponent, FigureContainerComponent, FileInputComponent, FileTranslateLoader, FilesDropDirective, FilterDropdownComponent, FormFieldArrayComponent, FormFieldComponent, FormFieldDateComponent, FormFieldFileComponent, FormFieldKeywordsComponent, FormFieldLicenseComponent, FormFieldObjectComponent, FormFieldRichComponent, FormFieldSimpleComponent, FormFieldSpatialExtentComponent, FormFieldTemporalExtentsComponent, FormFieldWrapperComponent, FullTextSearchField, FuzzySearchComponent, GEONETWORK_UI_TAG_NAME, GEONETWORK_UI_VERSION, GeoDataBadgeComponent, GeoTableViewComponent, GeocodingComponent, GeojsonReader, Gn4Converter, Gn4PlatformMapper, Gn4PlatformService, Gn4Repository, Gn4SettingsService, GpfApiDlComponent, GravatarService, HttpLoaderFactory, I18nInterceptor, ImageFallbackDirective, ImageInputComponent, ImageOverlayPreviewComponent, ImportRecordComponent, InlineFilterComponent, InteractiveTableColumnComponent, InteractiveTableComponent, InternalLinkCardComponent, IsSpatialSearchField, Iso191153Converter, Iso19139Converter, KindBadgeComponent, LANGUAGES_LIST, LANGUAGE_NAMES, LANGUAGE_STORAGE_KEY, LANG_2_TO_3_MAPPER, LANG_3_TO_2_MAPPER, LOGIN_URL, LOGOUT_URL, LONLAT_CRS_CODES, LangService, LanguageSwitcherComponent, LayersPanelComponent, LicenseSearchField, LinkCardComponent, LinkClassifierService, LinkUsage, LoadingMaskComponent, LogService, MAP_FEATURE_KEY, MAP_VIEW_CONSTRAINTS, METADATA_LANGUAGE, MY_FORMATS, MapContainerComponent, MapFacade, MapLegendComponent, MapStateContainerComponent, MapStyleService, MapUtilsService, MapViewComponent, MarkdownEditorComponent, MarkdownParserComponent, MaxLinesComponent, mdview_actions as MdViewActions, MdViewFacade, MetadataCatalogComponent, MetadataContactComponent, MetadataInfoComponent, MetadataLinkType, MetadataMapperContext, MetadataQualityComponent, MetadataQualityItemComponent, ModalDialogComponent, MultilingualPanelComponent, MultilingualSearchField, MyOrgService, NAMESPACES, NOT_APPLICABLE_CONSTRAINT, NOT_KNOWN_CONSTRAINT, NotificationComponent, NotificationsContainerComponent, NotificationsService, ORGANIZATIONS_STRATEGY, ORGANIZATION_PAGE_URL_TOKEN, ORGANIZATION_URL_TOKEN, OrganisationPreviewComponent, OrganisationsComponent, OrganisationsFilterComponent, OrganisationsResultComponent, OrganizationSearchField, OrganizationsFromGroupsService, OrganizationsFromMetadataService, OwnerSearchField, PAGINATE, PARSE_DELIMITER, PATCH_RESULTS_AGGREGATIONS, PROXY_PATH, Paginate, PaginationButtonsComponent, PaginationComponent, PaginationDotsComponent, PatchResultsAggregations, PopoverComponent, PopupAlertComponent, PossibleResourceTypes, PossibleResourceTypesDefinition, PreviousNextButtonsComponent, ProgressBarComponent, ProxyService, QUERY_FIELDS, RECORD_DATASET_URL_TOKEN, RECORD_REUSE_URL_TOKEN, RECORD_SERVICE_URL_TOKEN, REQUEST_MORE_ON_AGGREGATION, REQUEST_MORE_RESULTS, REQUEST_NEW_RESULTS, RESULTS_LAYOUT_CONFIG, ROUTER_CONFIG, ROUTER_ROUTE_DATASET, ROUTER_ROUTE_ORGANIZATION, ROUTER_ROUTE_REUSE, ROUTER_ROUTE_SEARCH, ROUTER_ROUTE_SERVICE, ROUTER_STATE_KEY, ROUTE_PARAMS, RecordApiFormComponent, RecordFormComponent, RecordKindField, RecordMetaComponent, RecordMetricComponent, RecordPreviewCardComponent, RecordPreviewComponent, RecordPreviewFeedComponent, RecordPreviewListComponent, RecordPreviewRowComponent, RecordPreviewTextComponent, RecordPreviewTitleComponent, RecordsMetricsComponent, RecordsService, RelatedRecordCardComponent, RequestMoreOnAggregation, RequestMoreResults, RequestNewResults, ResourceTypeLegacyField, ResultsHitsContainerComponent, ResultsHitsNumberComponent, ResultsHitsSearchKindComponent, ResultsLayoutComponent, ResultsLayoutConfigItem, ResultsListComponent, ResultsListContainerComponent, ResultsListItemComponent, ResultsTableComponent, ResultsTableContainerComponent, RouterEffects, RouterFacade, RouterService, SEARCH_FEATURE_KEY, SETTINGS_URL, SET_CONFIG_AGGREGATIONS, SET_CONFIG_FILTERS, SET_CONFIG_REQUEST_FIELDS, SET_ERROR, SET_FAVORITES_ONLY, SET_FILTERS, SET_INCLUDE_ON_AGGREGATION, SET_PAGE_SIZE, SET_RESULTS_AGGREGATIONS, SET_RESULTS_HITS, SET_RESULTS_LAYOUT, SET_SEARCH, SET_SORT_BY, SET_SPATIAL_FILTER_ENABLED, SearchEffects, SearchFacade, SearchFeatureCatalogComponent, SearchFiltersSummaryComponent, SearchFiltersSummaryItemComponent, SearchInputComponent, SearchRouterContainerDirective, SearchService, SearchStateContainerDirective, SelectionService, ServiceCapabilitiesComponent, SetConfigAggregations, SetConfigFilters, SetConfigRequestFields, SetError, SetFavoritesOnly, SetFilters, SetIncludeOnAggregation, SetPageSize, SetResultsAggregations, SetResultsHits, SetResultsLayout, SetSearch, SetSortBy, SetSpatialFilterEnabled, SimpleSearchField, SiteTitleComponent, SortByComponent, SortableListComponent, SourceLabelComponent, SourcesService, SpatialExtentComponent, SpinningLoaderComponent, StarToggleComponent, StickyHeaderComponent, SupportedTypes, SwitchToggleComponent, THUMBNAIL_PLACEHOLDER, TRANSLATE_DEFAULT_CONFIG, TRANSLATE_WITH_OVERRIDES_CONFIG, TableViewComponent, TextAreaComponent, TextInputComponent, ThemeService, ThumbnailComponent, TranslatedSearchField, TruncatedTextComponent, UPDATE_CONFIG_AGGREGATIONS, UPDATE_FILTERS, UPDATE_REQUEST_AGGREGATION_TERM, UiDatavizModule, UiElementsModule, FacetsModule$1 as UiFacetsModule, UiInputsModule, UiLayoutModule, UiSearchModule, UiWidgetsModule, UpdateConfigAggregations, UpdateFilters, UrlInputComponent, UserFeedbackItemComponent, UserPreviewComponent, UserSearchField, UtilI18nModule, UtilSharedModule, VECTOR_STYLE_DEFAULT, ViewportIntersectorComponent, WEB_COMPONENT_EMBEDDER_URL, WizardComponent, WizardFieldComponent, WizardFieldType, WizardService, WizardSummarizeComponent, XmlParseError, _reset, allChildrenElement, appConfigWithTranslationFixture, appendChildTree, appendChildren, assertValidXml, blockModelFixture, bytesToMegabytes, canEditRecord, checkFileFormat, clearSelectedFeatures, createChild, createDocument, createElement, createFuzzyFilter, createNestedChild, createNestedElement, currentPage, defaultMapStyleFixture, defaultMapStyleHlFixture, downgradeImage, downsizeImage, draftSaveSuccess, dragPanCondition, dropEmptyTranslations, editorReducer, emptyBlockModelFixture, findChildElement, findChildOrCreate, findChildrenElement, findConverterForDocument, findNestedChildOrCreate, findNestedElement, findNestedElements, findParent, firstChildElement, formatDate, formatUserInfo, getArrayItem, getAsArray, getAsUrl, getBadgeColor, getCustomTranslations, getError, getFavoritesOnly, getFileFormat, getFileFormatFromServiceOutput, getFirstValue, getFormatPriority, getGeometryFromGeoJSON, getGlobalConfig, getJsonDataItemsProxy, getLangFromBrowser, getLayers, getLinkLabel, getLinkPriority, getMapContext, getMapContextLayerFromConfig, getMapState, getMetadataQualityConfig, getMimeTypeForFormat, getNamespace, getOptionalMapConfig, getOptionalSearchConfig, getPageSize, getResourceType, getReuseType, getRootElement, getSearchConfigAggregations, getSearchFilters, getSearchResults, getSearchResultsAggregations, getSearchResultsHits, getSearchResultsLayout, getSearchResultsLoading, getSearchSortBy, getSearchState, getSearchStateSearch, getSelectedFeatures, getSpatialFilterEnabled, getTemporalRangeUnion, getThemeConfig, hasRecordChangedSinceDraft, hasRecordChangedSinceDraftSuccess, initSearch, initialEditorState, initialMapState, initialState, isConfigLoaded, isDateRange, isFormatInQueryParam, isPublished, itemModelFixture, kindToCodeListValue, loadAppConfig, malformedConfigFixture, mapConfigFixture, mapContact, mapKeywords, mapLogo, mapOrganization, mapReducer, markRecordAsChanged, matchesNoApplicableConstraint, matchesNoKnownConstraint, megabytesToBytes, mimeTypeToFormat, minimalAppConfigFixture, missingMandatoryConfigFixture, mouseWheelZoomCondition, noDuplicateFileName, okAppConfigFixture, openDataset, openRecord, parse, parseXmlString, placeholder, prioritizePageScroll, propagateToDocumentOnly, provideGn4, provideRepositoryUrl, readAttribute, readDataset, readDatasetHeaders, readText, reducer$2 as reducer, reducerSearch, removeAllChildren, removeChildren, removeChildrenByName, removeSearchParams, removeWhitespace, renameElements, saveRecord, saveRecordFailure, saveRecordSuccess, selectCanEditRecord, selectCurrentPage, selectEditorConfig, selectEditorState, selectFallback, selectFallbackFields, selectField, selectHasRecordChanged, selectIsPublished, selectRecord, selectRecordChangedSinceSave, selectRecordSaveError, selectRecordSaving, selectRecordSections, selectRecordSource, selectTranslatedField, selectTranslatedValue, setContext, setCurrentPage, setFieldVisibility, setSelectedFeatures, setTextContent, someHabTableItemFixture, sortByFromString, sortByToString, sortByToStrings, stripHtml, stripNamespace, tableItemsFixture, toDate, totalPages, undoRecordDraft, unrecognizedKeysConfigFixture, updateRecordField, wmsLayerFlatten, writeAttribute, wrongLanguageCodeConfigFixture, xmlToString };
|
|
43867
|
+
export { ADD_RESULTS, ADD_SEARCH, AbstractAction, AbstractSearchField, ActionMenuComponent, AddLayerFromCatalogComponent, AddLayerRecordPreviewComponent, AddResults, AddSearch, AnchorLinkDirective, ApiCardComponent, ApplicationBannerComponent, AuthService, AutocompleteComponent, AvailableServicesField, AvatarComponent, AvatarServiceInterface, BASEMAP_LAYERS, BadgeComponent, BaseConverter, BaseFileReader, BaseReader, BlockListComponent, ButtonComponent, CLEAR_ERROR, CLEAR_RESULTS, CarouselComponent, CatalogTitleComponent, ChartComponent, ChartViewComponent, CheckToggleComponent, CheckboxComponent, ClearError, ClearResults, ColorScaleComponent, ConfirmationDialogComponent, ContentGhostComponent, CopyTextButtonComponent, DEFAULT_GN4_LOGIN_URL, DEFAULT_GN4_LOGOUT_URL, DEFAULT_GN4_SETTINGS_URL, DEFAULT_LANG, DEFAULT_PAGE_SIZE, DEFAULT_RESULTS_LAYOUT_CONFIG, DEFAULT_SEARCH_KEY, DO_NOT_USE_DEFAULT_BASEMAP, DataService, DataTableComponent, DataViewComponent, DataViewPermalinkComponent, DataViewShareComponent, DataViewWebComponentComponent, DatePickerComponent, DateRangeDropdownComponent, DateRangePickerComponent, DateRangeSearchField, DateService, DcatApConverter, DefaultRouterModule, DownloadItemComponent, DownloadsListComponent, DragAndDropFileInputComponent, DropdownMultiselectComponent, DropdownSelectorComponent, EDITOR_FEATURE_KEY, ES_QUERY_FIELDS_PRIORITY, ES_RESOURCES_VALUES, ES_SOURCE_SUMMARY, EXTERNAL_VIEWER_OPEN_NEW_TAB, EXTERNAL_VIEWER_URL_TEMPLATE, EditableLabelDirective, EditorFacade, EditorService, ElasticsearchService, EmbeddedTranslateLoader, ErrorComponent, ErrorType, ExpandablePanelButtonComponent, ExpandablePanelComponent, ExternalViewerButtonComponent, FIELDS_BRIEF, FIELDS_SUMMARY, FILTER_GEOMETRY, FILTER_SUMMARY_IGNORE_LIST, FORMATS, FacetBlockComponent, FacetBlockStubComponent, FacetItemComponent, FacetItemStubComponent, FacetListComponent, FacetsContainerComponent, FacetsModule, FavoriteStarComponent, FavoritesService, FeatureAuthModule, FeatureCatalogListComponent, FeatureCatalogModule, FeatureDetailComponent, FeatureEditorModule, FeatureMapModule, FeatureNotificationsModule, FeatureRecordModule, FeatureSearchModule, FetchError, FieldsService, FigureComponent, FigureContainerComponent, FileInputComponent, FileTranslateLoader, FilesDropDirective, FilterDropdownComponent, FormFieldArrayComponent, FormFieldComponent, FormFieldDateComponent, FormFieldFileComponent, FormFieldKeywordsComponent, FormFieldLicenseComponent, FormFieldObjectComponent, FormFieldRichComponent, FormFieldSimpleComponent, FormFieldSpatialExtentComponent, FormFieldTemporalExtentsComponent, FormFieldWrapperComponent, FullTextSearchField, FuzzySearchComponent, GEONETWORK_UI_TAG_NAME, GEONETWORK_UI_VERSION, GeoDataBadgeComponent, GeoTableViewComponent, GeocodingComponent, GeojsonReader, Gn4Converter, Gn4PlatformMapper, Gn4PlatformService, Gn4Repository, Gn4SettingsService, GpfApiDlComponent, GravatarService, HttpLoaderFactory, I18nInterceptor, ImageFallbackDirective, ImageInputComponent, ImageOverlayPreviewComponent, ImportRecordComponent, InlineFilterComponent, InteractiveTableColumnComponent, InteractiveTableComponent, InternalLinkCardComponent, IsSpatialSearchField, Iso191153Converter, Iso19139Converter, KindBadgeComponent, LANGUAGES_LIST, LANGUAGE_NAMES, LANGUAGE_STORAGE_KEY, LANG_2_TO_3_MAPPER, LANG_3_TO_2_MAPPER, LOGIN_URL, LOGOUT_URL, LONLAT_CRS_CODES, LangService, LanguageSwitcherComponent, LayersPanelComponent, LicenseSearchField, LinkCardComponent, LinkClassifierService, LinkUsage, LoadingMaskComponent, LogService, MAP_FEATURE_KEY, MAP_VIEW_CONSTRAINTS, METADATA_LANGUAGE, MY_FORMATS, MapContainerComponent, MapFacade, MapLegendComponent, MapStateContainerComponent, MapStyleService, MapUtilsService, MapViewComponent, MarkdownEditorComponent, MarkdownParserComponent, MaxLinesComponent, mdview_actions as MdViewActions, MdViewFacade, MetadataCatalogComponent, MetadataContactComponent, MetadataInfoComponent, MetadataLinkType, MetadataMapperContext, MetadataQualityComponent, MetadataQualityItemComponent, ModalDialogComponent, MultilingualPanelComponent, MultilingualSearchField, MyOrgService, NAMESPACES, NOT_APPLICABLE_CONSTRAINT, NOT_KNOWN_CONSTRAINT, NotificationComponent, NotificationsContainerComponent, NotificationsService, ORGANIZATIONS_STRATEGY, ORGANIZATION_PAGE_URL_TOKEN, ORGANIZATION_URL_TOKEN, OrganisationPreviewComponent, OrganisationsComponent, OrganisationsFilterComponent, OrganisationsResultComponent, OrganizationSearchField, OrganizationsFromGroupsService, OrganizationsFromMetadataService, OwnerSearchField, PAGINATE, PARSE_DELIMITER, PATCH_RESULTS_AGGREGATIONS, PROXY_PATH, Paginate, PaginationButtonsComponent, PaginationComponent, PaginationDotsComponent, PatchResultsAggregations, PopoverComponent, PopupAlertComponent, PossibleResourceTypes, PossibleResourceTypesDefinition, PreviousNextButtonsComponent, ProgressBarComponent, ProxyService, QUERY_FIELDS, RECORD_DATASET_URL_TOKEN, RECORD_REUSE_URL_TOKEN, RECORD_SERVICE_URL_TOKEN, REQUEST_MORE_ON_AGGREGATION, REQUEST_MORE_RESULTS, REQUEST_NEW_RESULTS, RESULTS_LAYOUT_CONFIG, ROUTER_CONFIG, ROUTER_ROUTE_DATASET, ROUTER_ROUTE_ORGANIZATION, ROUTER_ROUTE_REUSE, ROUTER_ROUTE_SEARCH, ROUTER_ROUTE_SERVICE, ROUTER_STATE_KEY, ROUTE_PARAMS, RecordApiFormComponent, RecordFormComponent, RecordKindField, RecordMetaComponent, RecordMetricComponent, RecordPreviewCardComponent, RecordPreviewComponent, RecordPreviewFeedComponent, RecordPreviewListComponent, RecordPreviewRowComponent, RecordPreviewTextComponent, RecordPreviewTitleComponent, RecordsMetricsComponent, RecordsService, RelatedRecordCardComponent, RequestMoreOnAggregation, RequestMoreResults, RequestNewResults, ResourceTypeLegacyField, ResultsHitsContainerComponent, ResultsHitsNumberComponent, ResultsHitsSearchKindComponent, ResultsLayoutComponent, ResultsLayoutConfigItem, ResultsListComponent, ResultsListContainerComponent, ResultsListItemComponent, ResultsTableComponent, ResultsTableContainerComponent, RouterEffects, RouterFacade, RouterService, SEARCH_FEATURE_KEY, SETTINGS_URL, SET_CONFIG_AGGREGATIONS, SET_CONFIG_FILTERS, SET_CONFIG_REQUEST_FIELDS, SET_ERROR, SET_FAVORITES_ONLY, SET_FILTERS, SET_INCLUDE_ON_AGGREGATION, SET_PAGE_SIZE, SET_RESULTS_AGGREGATIONS, SET_RESULTS_HITS, SET_RESULTS_LAYOUT, SET_SEARCH, SET_SORT_BY, SET_SPATIAL_FILTER_ENABLED, SUPPORTED_LANGUAGES, SearchEffects, SearchFacade, SearchFeatureCatalogComponent, SearchFiltersSummaryComponent, SearchFiltersSummaryItemComponent, SearchInputComponent, SearchRouterContainerDirective, SearchService, SearchStateContainerDirective, SelectionService, ServiceCapabilitiesComponent, SetConfigAggregations, SetConfigFilters, SetConfigRequestFields, SetError, SetFavoritesOnly, SetFilters, SetIncludeOnAggregation, SetPageSize, SetResultsAggregations, SetResultsHits, SetResultsLayout, SetSearch, SetSortBy, SetSpatialFilterEnabled, SimpleSearchField, SiteTitleComponent, SortByComponent, SortableListComponent, SourceLabelComponent, SourcesService, SpatialExtentComponent, SpinningLoaderComponent, StarToggleComponent, StickyHeaderComponent, SupportedTypes, SwitchToggleComponent, THUMBNAIL_PLACEHOLDER, TRANSLATE_DEFAULT_CONFIG, TRANSLATE_WITH_OVERRIDES_CONFIG, TableViewComponent, TextAreaComponent, TextInputComponent, ThemeService, ThumbnailComponent, TranslatedSearchField, TruncatedTextComponent, UPDATE_CONFIG_AGGREGATIONS, UPDATE_FILTERS, UPDATE_REQUEST_AGGREGATION_TERM, UiDatavizModule, UiElementsModule, FacetsModule$1 as UiFacetsModule, UiInputsModule, UiLayoutModule, UiSearchModule, UiWidgetsModule, UpdateConfigAggregations, UpdateFilters, UrlInputComponent, UserFeedbackItemComponent, UserPreviewComponent, UserSearchField, UtilI18nModule, UtilSharedModule, VECTOR_STYLE_DEFAULT, ViewportIntersectorComponent, WEB_COMPONENT_EMBEDDER_URL, WizardComponent, WizardFieldComponent, WizardFieldType, WizardService, WizardSummarizeComponent, XmlParseError, _reset, allChildrenElement, appConfigWithTranslationFixture, appendChildTree, appendChildren, assertValidXml, blockModelFixture, bytesToMegabytes, canEditRecord, checkFileFormat, clearSelectedFeatures, createChild, createDocument, createElement, createFuzzyFilter, createNestedChild, createNestedElement, currentPage, defaultMapStyleFixture, defaultMapStyleHlFixture, downgradeImage, downsizeImage, draftSaveSuccess, dragPanCondition, dropEmptyTranslations, editorReducer, emptyBlockModelFixture, findChildElement, findChildOrCreate, findChildrenElement, findConverterForDocument, findNestedChildOrCreate, findNestedElement, findNestedElements, findParent, firstChildElement, formatDate, formatUserInfo, getArrayItem, getAsArray, getAsUrl, getBadgeColor, getCustomTranslations, getError, getFavoritesOnly, getFileFormat, getFileFormatFromServiceOutput, getFirstValue, getFormatPriority, getGeometryFromGeoJSON, getGlobalConfig, getJsonDataItemsProxy, getLangFromBrowser, getLayers, getLinkLabel, getLinkPriority, getMapContext, getMapContextLayerFromConfig, getMapState, getMetadataQualityConfig, getMimeTypeForFormat, getNamespace, getOptionalMapConfig, getOptionalSearchConfig, getPageSize, getResourceType, getReuseType, getRootElement, getSearchConfigAggregations, getSearchFilters, getSearchResults, getSearchResultsAggregations, getSearchResultsHits, getSearchResultsLayout, getSearchResultsLoading, getSearchSortBy, getSearchState, getSearchStateSearch, getSelectedFeatures, getSpatialFilterEnabled, getTemporalRangeUnion, getThemeConfig, hasRecordChangedSinceDraft, hasRecordChangedSinceDraftSuccess, initSearch, initialEditorState, initialMapState, initialState, isConfigLoaded, isDateRange, isFormatInQueryParam, isPublished, itemModelFixture, kindToCodeListValue, loadAppConfig, malformedConfigFixture, mapConfigFixture, mapContact, mapKeywords, mapLogo, mapOrganization, mapReducer, markRecordAsChanged, matchesNoApplicableConstraint, matchesNoKnownConstraint, megabytesToBytes, mimeTypeToFormat, minimalAppConfigFixture, missingMandatoryConfigFixture, mouseWheelZoomCondition, noDuplicateFileName, okAppConfigFixture, openDataset, openRecord, parse, parseXmlString, placeholder, prioritizePageScroll, propagateToDocumentOnly, provideGn4, provideRepositoryUrl, readAttribute, readDataset, readDatasetHeaders, readText, reducer$2 as reducer, reducerSearch, removeAllChildren, removeChildren, removeChildrenByName, removeSearchParams, removeWhitespace, renameElements, saveRecord, saveRecordFailure, saveRecordSuccess, selectCanEditRecord, selectCurrentPage, selectEditorConfig, selectEditorState, selectFallback, selectFallbackFields, selectField, selectHasRecordChanged, selectIsPublished, selectRecord, selectRecordChangedSinceSave, selectRecordSaveError, selectRecordSaving, selectRecordSections, selectRecordSource, selectTranslatedField, selectTranslatedValue, setContext, setCurrentPage, setFieldVisibility, setSelectedFeatures, setTextContent, someHabTableItemFixture, sortByFromString, sortByToString, sortByToStrings, stripHtml, stripNamespace, tableItemsFixture, toDate, totalPages, undoRecordDraft, unrecognizedKeysConfigFixture, updateRecordField, wmsLayerFlatten, writeAttribute, wrongLanguageCodeConfigFixture, xmlToString };
|
|
43186
43868
|
//# sourceMappingURL=geonetwork-ui.mjs.map
|