geonetwork-ui 2.6.0-dev.9d3ad45e2 → 2.6.0-dev.a225a5e7a
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 +36 -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 +36 -6
- 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/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/inputs/src/lib/autocomplete/autocomplete.component.mjs +3 -3
- package/esm2022/libs/ui/layout/src/lib/interactive-table/interactive-table.component.mjs +3 -3
- 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 +19 -12
- package/esm2022/libs/ui/search/src/lib/results-table/results-table.component.mjs +27 -14
- 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 +29 -4
- package/esm2022/translations/en.json +29 -4
- package/esm2022/translations/es.json +28 -3
- package/esm2022/translations/fr.json +29 -4
- package/esm2022/translations/it.json +28 -3
- package/esm2022/translations/nl.json +28 -3
- package/esm2022/translations/pt.json +28 -3
- package/fesm2022/geonetwork-ui.mjs +775 -150
- 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 +7 -2
- package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts.map +1 -1
- package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts +3 -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/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/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 +3 -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 +5 -1
- 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 +54 -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 +57 -4
- package/src/libs/common/domain/src/lib/repository/records-repository.interface.ts +3 -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/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/inputs/src/lib/autocomplete/autocomplete.component.html +1 -1
- package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.html +1 -0
- 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 +11 -3
- package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.ts +14 -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 +27 -17
- package/src/libs/ui/search/src/lib/results-table/results-table.component.ts +20 -10
- 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 +29 -4
- package/translations/en.json +29 -4
- package/translations/es.json +28 -3
- package/translations/fr.json +29 -4
- package/translations/it.json +28 -3
- package/translations/nl.json +28 -3
- package/translations/pt.json +28 -3
- package/translations/sk.json +28 -3
|
@@ -16,7 +16,7 @@ import { TranslateMessageFormatCompiler } from 'ngx-translate-messageformat-comp
|
|
|
16
16
|
import { TranslateHttpLoader } from '@ngx-translate/http-loader';
|
|
17
17
|
import { map as map$1, catchError, tap as tap$1, shareReplay, 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,
|
|
19
|
+
import { CommonModule, NgSwitch, NgSwitchCase, NgSwitchDefault, NgIf, NgClass, NgTemplateOutlet, NgOptimizedImage, DatePipe } from '@angular/common';
|
|
20
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';
|
|
21
21
|
import { lt, valid, coerce, satisfies, ltr } from 'semver';
|
|
22
22
|
import chroma from 'chroma-js';
|
|
@@ -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": "",
|
|
@@ -18844,6 +18919,10 @@ var de = {
|
|
|
18844
18919
|
"editor.record.loadError.title": "Fehler beim Laden des Datensatzes",
|
|
18845
18920
|
"editor.record.lock.format": "",
|
|
18846
18921
|
"editor.record.lock.reason": "",
|
|
18922
|
+
"editor.record.multilingual.confirmation.cancelText": "",
|
|
18923
|
+
"editor.record.multilingual.confirmation.confirmText": "",
|
|
18924
|
+
"editor.record.multilingual.confirmation.message": "",
|
|
18925
|
+
"editor.record.multilingual.confirmation.title": "",
|
|
18847
18926
|
"editor.record.onlineResource.protocol.other": "",
|
|
18848
18927
|
"editor.record.onlineResourceError.body": "",
|
|
18849
18928
|
"editor.record.onlineResourceError.closeMessage": "",
|
|
@@ -18904,20 +18983,32 @@ var de = {
|
|
|
18904
18983
|
"input.image.uploadErrorLabel": "",
|
|
18905
18984
|
"input.image.uploadProgressCancel": "",
|
|
18906
18985
|
"input.image.uploadProgressLabel": "",
|
|
18986
|
+
"language.ar": "",
|
|
18987
|
+
"language.az": "",
|
|
18907
18988
|
"language.ca": "Katalanisch",
|
|
18908
18989
|
"language.cs": "Tschechisch",
|
|
18990
|
+
"language.cy": "",
|
|
18991
|
+
"language.da": "",
|
|
18909
18992
|
"language.de": "Deutsch",
|
|
18910
18993
|
"language.en": "Englisch",
|
|
18911
18994
|
"language.es": "Spanisch",
|
|
18912
18995
|
"language.fi": "Finnisch",
|
|
18913
18996
|
"language.fr": "Französisch",
|
|
18997
|
+
"language.hy": "",
|
|
18914
18998
|
"language.is": "Isländisch",
|
|
18915
18999
|
"language.it": "Italienisch",
|
|
19000
|
+
"language.ka": "",
|
|
18916
19001
|
"language.ko": "Koreanisch",
|
|
18917
19002
|
"language.nl": "Niederländisch",
|
|
19003
|
+
"language.no": "",
|
|
19004
|
+
"language.pl": "",
|
|
18918
19005
|
"language.pt": "Portugiesisch",
|
|
19006
|
+
"language.rm": "",
|
|
18919
19007
|
"language.ru": "Russisch",
|
|
18920
19008
|
"language.sk": "Slowakisch",
|
|
19009
|
+
"language.sv": "",
|
|
19010
|
+
"language.tr": "",
|
|
19011
|
+
"language.uk": "",
|
|
18921
19012
|
"language.zh": "Chinesisch",
|
|
18922
19013
|
"map.add.layer": "Eine Ebene hinzufügen",
|
|
18923
19014
|
"map.add.layer.catalog": "Aus dem Katalog",
|
|
@@ -18964,6 +19055,7 @@ var de = {
|
|
|
18964
19055
|
"record.action.duplicate": "",
|
|
18965
19056
|
"record.action.duplicating": "",
|
|
18966
19057
|
"record.action.rollback": "",
|
|
19058
|
+
"record.action.switchLang": "",
|
|
18967
19059
|
"record.action.view": "Anzeigen",
|
|
18968
19060
|
"record.card.metadata.contact": "",
|
|
18969
19061
|
"record.externalViewer.open": "In externem Kartenviewer öffnen",
|
|
@@ -19014,9 +19106,15 @@ var de = {
|
|
|
19014
19106
|
"record.metadata.download": "Downloads",
|
|
19015
19107
|
"record.metadata.feature.catalog": "",
|
|
19016
19108
|
"record.metadata.formats": "Formate",
|
|
19109
|
+
"record.metadata.isGeographical": "Geographischer Datensatz",
|
|
19017
19110
|
"record.metadata.keywords": "Stichworte",
|
|
19018
19111
|
"record.metadata.languages": "Sprachen",
|
|
19019
19112
|
"record.metadata.lastUpdate": "Zuletzt aktualisiert am {date}",
|
|
19113
|
+
"record.metadata.linked.datasets": "Verknüpfte Datensätze",
|
|
19114
|
+
"record.metadata.linked.records": "Verknüpfte Inhalte",
|
|
19115
|
+
"record.metadata.linked.reuses": "Verknüpfte Wiederverwendungen",
|
|
19116
|
+
"record.metadata.linked.services": "Verknüpfte Dienste",
|
|
19117
|
+
"record.metadata.linked.sourceDatasets": "Quelldatensätze",
|
|
19020
19118
|
"record.metadata.links": "Links",
|
|
19021
19119
|
"record.metadata.noUsage": "Für diesen Datensatz sind keine Nutzungsbedingungen angegeben.",
|
|
19022
19120
|
"record.metadata.otherConstraints": "Zusätzliche Bedingungen",
|
|
@@ -19043,8 +19141,7 @@ var de = {
|
|
|
19043
19141
|
"record.metadata.quality.topic.success": "Thema angegeben",
|
|
19044
19142
|
"record.metadata.quality.updateFrequency.failed": "Aktualisierungsfrequenz nicht angegeben",
|
|
19045
19143
|
"record.metadata.quality.updateFrequency.success": "Aktualisierungsfrequenz angegeben",
|
|
19046
|
-
"record.metadata.related": "
|
|
19047
|
-
"record.metadata.related.contents": "",
|
|
19144
|
+
"record.metadata.related": "Entdecken Sie den Katalog",
|
|
19048
19145
|
"record.metadata.ressources.and.links": "Ressourcen und Links",
|
|
19049
19146
|
"record.metadata.sheet": "Weitere Informationen verfügbar unter:",
|
|
19050
19147
|
"record.metadata.status": "Status",
|
|
@@ -19056,7 +19153,6 @@ var de = {
|
|
|
19056
19153
|
"record.metadata.temporalExtent.untilDate": "Bis {end}",
|
|
19057
19154
|
"record.metadata.title": "Titel",
|
|
19058
19155
|
"record.metadata.topics": "Kategorien",
|
|
19059
|
-
"record.metadata.isGeographical": "Geographischer Datensatz",
|
|
19060
19156
|
"record.metadata.uniqueId": "Eindeutige Kennung",
|
|
19061
19157
|
"record.metadata.updateFrequency": "Aktualisierungsfrequenz der Daten",
|
|
19062
19158
|
"record.metadata.updatedOn": "Geändert am",
|
|
@@ -19176,7 +19272,6 @@ var de = {
|
|
|
19176
19272
|
"tooltip.html.copy": "HTML kopieren",
|
|
19177
19273
|
"tooltip.id.copy": "Eindeutige Kennung kopieren",
|
|
19178
19274
|
"tooltip.url.copy": "URL kopieren",
|
|
19179
|
-
"tooltip.url.open": "URL öffnen",
|
|
19180
19275
|
"ui.readLess": "Weniger lesen",
|
|
19181
19276
|
"ui.readMore": "Weiterlesen",
|
|
19182
19277
|
"wfs.feature.limit": "Zu viele Features, um den WFS-Layer anzuzeigen!",
|
|
@@ -19223,6 +19318,7 @@ var en = {
|
|
|
19223
19318
|
"dashboard.labels.mySpace": "My space",
|
|
19224
19319
|
"dashboard.records.all": "Datasets",
|
|
19225
19320
|
"dashboard.records.hasDraft": "draft",
|
|
19321
|
+
"dashboard.records.isMultilingual": "This record is multilingual ({languages})",
|
|
19226
19322
|
"dashboard.records.myDraft": "My drafts",
|
|
19227
19323
|
"dashboard.records.myRecords": "My datasets",
|
|
19228
19324
|
"dashboard.records.search": "Search for \"{searchText}\"",
|
|
@@ -19397,9 +19493,13 @@ var en = {
|
|
|
19397
19493
|
"editor.record.form.license.odc-by": "Open Data Commons ODC-By",
|
|
19398
19494
|
"editor.record.form.license.pddl": "Open Data Commons PDDL",
|
|
19399
19495
|
"editor.record.form.license.unknown": "Unknown or absent",
|
|
19496
|
+
"editor.record.form.multilingual.activate": "Activate the languages",
|
|
19497
|
+
"editor.record.form.multilingual.default": "Default",
|
|
19400
19498
|
"editor.record.form.multilingual.enable": "Multilingual Mode",
|
|
19499
|
+
"editor.record.form.multilingual.forbidden": "You are not allowed to remove the default language",
|
|
19401
19500
|
"editor.record.form.multilingual.open": "Open the multilingual panel",
|
|
19402
19501
|
"editor.record.form.multilingual.title": "Translations",
|
|
19502
|
+
"editor.record.form.multilingual.validate": "Validate",
|
|
19403
19503
|
"editor.record.form.page.accessAndContact": "Information for use",
|
|
19404
19504
|
"editor.record.form.page.description": "Dataset description",
|
|
19405
19505
|
"editor.record.form.page.resources": "Resources",
|
|
@@ -19431,6 +19531,10 @@ var en = {
|
|
|
19431
19531
|
"editor.record.loadError.title": "Error loading dataset",
|
|
19432
19532
|
"editor.record.lock.format": "Record with the format 'service' or 'reuse' are not editable",
|
|
19433
19533
|
"editor.record.lock.reason": "You are not an editor of the allowed groups",
|
|
19534
|
+
"editor.record.multilingual.confirmation.cancelText": "Keep the language(s)",
|
|
19535
|
+
"editor.record.multilingual.confirmation.confirmText": "Remove the language(s)",
|
|
19536
|
+
"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?",
|
|
19537
|
+
"editor.record.multilingual.confirmation.title": "Remove languages",
|
|
19434
19538
|
"editor.record.onlineResource.protocol.other": "Other",
|
|
19435
19539
|
"editor.record.onlineResourceError.body": "An error happened while adding the resource:",
|
|
19436
19540
|
"editor.record.onlineResourceError.closeMessage": "Understood",
|
|
@@ -19491,20 +19595,32 @@ var en = {
|
|
|
19491
19595
|
"input.image.uploadErrorLabel": "The image could not be uploaded",
|
|
19492
19596
|
"input.image.uploadProgressCancel": "Cancel",
|
|
19493
19597
|
"input.image.uploadProgressLabel": "Upload in progress...",
|
|
19598
|
+
"language.ar": "Arabic",
|
|
19599
|
+
"language.az": "Azerbaijani",
|
|
19494
19600
|
"language.ca": "Catalan",
|
|
19495
19601
|
"language.cs": "Czech",
|
|
19602
|
+
"language.cy": "Welsh",
|
|
19603
|
+
"language.da": "Danish",
|
|
19496
19604
|
"language.de": "German",
|
|
19497
19605
|
"language.en": "English",
|
|
19498
19606
|
"language.es": "Spanish",
|
|
19499
19607
|
"language.fi": "Finnish",
|
|
19500
19608
|
"language.fr": "French",
|
|
19609
|
+
"language.hy": "Armenian",
|
|
19501
19610
|
"language.is": "Icelandic",
|
|
19502
19611
|
"language.it": "Italian",
|
|
19612
|
+
"language.ka": "Georgian",
|
|
19503
19613
|
"language.ko": "Korean",
|
|
19504
19614
|
"language.nl": "Dutch",
|
|
19615
|
+
"language.no": "Norwegian",
|
|
19616
|
+
"language.pl": "Polish",
|
|
19505
19617
|
"language.pt": "Portuguese",
|
|
19618
|
+
"language.rm": "Romansh",
|
|
19506
19619
|
"language.ru": "Russian",
|
|
19507
19620
|
"language.sk": "Slovak",
|
|
19621
|
+
"language.sv": "Swedish",
|
|
19622
|
+
"language.tr": "Turkish",
|
|
19623
|
+
"language.uk": "Ukrainian",
|
|
19508
19624
|
"language.zh": "Chinese",
|
|
19509
19625
|
"map.add.layer": "Add a layer",
|
|
19510
19626
|
"map.add.layer.catalog": "From the catalog",
|
|
@@ -19551,6 +19667,7 @@ var en = {
|
|
|
19551
19667
|
"record.action.duplicate": "Duplicate",
|
|
19552
19668
|
"record.action.duplicating": "Duplicating...",
|
|
19553
19669
|
"record.action.rollback": "Rollback",
|
|
19670
|
+
"record.action.switchLang": "Switch to default",
|
|
19554
19671
|
"record.action.view": "View",
|
|
19555
19672
|
"record.card.metadata.contact": "Metadata Contact",
|
|
19556
19673
|
"record.externalViewer.open": "Open in the external map viewer",
|
|
@@ -19601,9 +19718,15 @@ var en = {
|
|
|
19601
19718
|
"record.metadata.download": "Downloads",
|
|
19602
19719
|
"record.metadata.feature.catalog": "Feature catalog",
|
|
19603
19720
|
"record.metadata.formats": "Formats",
|
|
19721
|
+
"record.metadata.isGeographical": "Geographical dataset",
|
|
19604
19722
|
"record.metadata.keywords": "Keywords",
|
|
19605
19723
|
"record.metadata.languages": "Languages",
|
|
19606
19724
|
"record.metadata.lastUpdate": "Last updated on {date}",
|
|
19725
|
+
"record.metadata.linked.datasets": "Associated datasets",
|
|
19726
|
+
"record.metadata.linked.records": "Associated content",
|
|
19727
|
+
"record.metadata.linked.reuses": "Associated reuses",
|
|
19728
|
+
"record.metadata.linked.services": "Associated services",
|
|
19729
|
+
"record.metadata.linked.sourceDatasets": "Source datasets",
|
|
19607
19730
|
"record.metadata.links": "Links",
|
|
19608
19731
|
"record.metadata.noUsage": "No usage conditions specified for this dataset.",
|
|
19609
19732
|
"record.metadata.otherConstraints": "Additional Conditions",
|
|
@@ -19630,8 +19753,7 @@ var en = {
|
|
|
19630
19753
|
"record.metadata.quality.topic.success": "Topic is specified",
|
|
19631
19754
|
"record.metadata.quality.updateFrequency.failed": "Update frequency is not specified",
|
|
19632
19755
|
"record.metadata.quality.updateFrequency.success": "Update frequency is specified",
|
|
19633
|
-
"record.metadata.related": "
|
|
19634
|
-
"record.metadata.related.contents": "Related content",
|
|
19756
|
+
"record.metadata.related": "Explore the catalog",
|
|
19635
19757
|
"record.metadata.ressources.and.links": "Resources and links",
|
|
19636
19758
|
"record.metadata.sheet": "Original metadata",
|
|
19637
19759
|
"record.metadata.status": "Status",
|
|
@@ -19643,7 +19765,6 @@ var en = {
|
|
|
19643
19765
|
"record.metadata.temporalExtent.untilDate": "Until { end }",
|
|
19644
19766
|
"record.metadata.title": "Title",
|
|
19645
19767
|
"record.metadata.topics": "Categories",
|
|
19646
|
-
"record.metadata.isGeographical": "Geographical dataset",
|
|
19647
19768
|
"record.metadata.uniqueId": "Unique Identifier",
|
|
19648
19769
|
"record.metadata.updateFrequency": "Data Update Frequency",
|
|
19649
19770
|
"record.metadata.updatedOn": "Updated on",
|
|
@@ -19763,7 +19884,6 @@ var en = {
|
|
|
19763
19884
|
"tooltip.html.copy": "Copy HTML",
|
|
19764
19885
|
"tooltip.id.copy": "Copy unique identifier",
|
|
19765
19886
|
"tooltip.url.copy": "Copy URL",
|
|
19766
|
-
"tooltip.url.open": "Open URL",
|
|
19767
19887
|
"ui.readLess": "Read less",
|
|
19768
19888
|
"ui.readMore": "Read more",
|
|
19769
19889
|
"wfs.feature.limit": "Too many features to display the WFS layer!",
|
|
@@ -19810,6 +19930,7 @@ var es = {
|
|
|
19810
19930
|
"dashboard.labels.mySpace": "Mi espacio",
|
|
19811
19931
|
"dashboard.records.all": "Catálogo",
|
|
19812
19932
|
"dashboard.records.hasDraft": "",
|
|
19933
|
+
"dashboard.records.isMultilingual": "Este registro es multilingüe ({languages})",
|
|
19813
19934
|
"dashboard.records.myDraft": "Mis borradores",
|
|
19814
19935
|
"dashboard.records.myRecords": "Mis Registros",
|
|
19815
19936
|
"dashboard.records.search": "Buscar \"{searchText}\"",
|
|
@@ -19984,9 +20105,13 @@ var es = {
|
|
|
19984
20105
|
"editor.record.form.license.odc-by": "",
|
|
19985
20106
|
"editor.record.form.license.pddl": "",
|
|
19986
20107
|
"editor.record.form.license.unknown": "",
|
|
20108
|
+
"editor.record.form.multilingual.activate": "",
|
|
20109
|
+
"editor.record.form.multilingual.default": "",
|
|
19987
20110
|
"editor.record.form.multilingual.enable": "",
|
|
20111
|
+
"editor.record.form.multilingual.forbidden": "",
|
|
19988
20112
|
"editor.record.form.multilingual.open": "",
|
|
19989
20113
|
"editor.record.form.multilingual.title": "",
|
|
20114
|
+
"editor.record.form.multilingual.validate": "",
|
|
19990
20115
|
"editor.record.form.page.accessAndContact": "",
|
|
19991
20116
|
"editor.record.form.page.description": "",
|
|
19992
20117
|
"editor.record.form.page.resources": "",
|
|
@@ -20018,6 +20143,10 @@ var es = {
|
|
|
20018
20143
|
"editor.record.loadError.title": "",
|
|
20019
20144
|
"editor.record.lock.format": "",
|
|
20020
20145
|
"editor.record.lock.reason": "",
|
|
20146
|
+
"editor.record.multilingual.confirmation.cancelText": "",
|
|
20147
|
+
"editor.record.multilingual.confirmation.confirmText": "",
|
|
20148
|
+
"editor.record.multilingual.confirmation.message": "",
|
|
20149
|
+
"editor.record.multilingual.confirmation.title": "",
|
|
20021
20150
|
"editor.record.onlineResource.protocol.other": "",
|
|
20022
20151
|
"editor.record.onlineResourceError.body": "",
|
|
20023
20152
|
"editor.record.onlineResourceError.closeMessage": "",
|
|
@@ -20078,20 +20207,32 @@ var es = {
|
|
|
20078
20207
|
"input.image.uploadErrorLabel": "",
|
|
20079
20208
|
"input.image.uploadProgressCancel": "",
|
|
20080
20209
|
"input.image.uploadProgressLabel": "",
|
|
20210
|
+
"language.ar": "",
|
|
20211
|
+
"language.az": "",
|
|
20081
20212
|
"language.ca": "Catalán",
|
|
20082
20213
|
"language.cs": "Checo",
|
|
20214
|
+
"language.cy": "",
|
|
20215
|
+
"language.da": "",
|
|
20083
20216
|
"language.de": "Alemán",
|
|
20084
20217
|
"language.en": "Inglés",
|
|
20085
20218
|
"language.es": "Español",
|
|
20086
20219
|
"language.fi": "Finlandés",
|
|
20087
20220
|
"language.fr": "Francés",
|
|
20221
|
+
"language.hy": "",
|
|
20088
20222
|
"language.is": "Islandés",
|
|
20089
20223
|
"language.it": "Italiano",
|
|
20224
|
+
"language.ka": "",
|
|
20090
20225
|
"language.ko": "Coreano",
|
|
20091
20226
|
"language.nl": "Neerlandés",
|
|
20227
|
+
"language.no": "",
|
|
20228
|
+
"language.pl": "",
|
|
20092
20229
|
"language.pt": "Portugués",
|
|
20230
|
+
"language.rm": "",
|
|
20093
20231
|
"language.ru": "Ruso",
|
|
20094
20232
|
"language.sk": "Eslovaco",
|
|
20233
|
+
"language.sv": "",
|
|
20234
|
+
"language.tr": "",
|
|
20235
|
+
"language.uk": "",
|
|
20095
20236
|
"language.zh": "Chino",
|
|
20096
20237
|
"map.add.layer": "",
|
|
20097
20238
|
"map.add.layer.catalog": "",
|
|
@@ -20138,6 +20279,7 @@ var es = {
|
|
|
20138
20279
|
"record.action.duplicate": "",
|
|
20139
20280
|
"record.action.duplicating": "",
|
|
20140
20281
|
"record.action.rollback": "",
|
|
20282
|
+
"record.action.switchLang": "",
|
|
20141
20283
|
"record.action.view": "",
|
|
20142
20284
|
"record.card.metadata.contact": "",
|
|
20143
20285
|
"record.externalViewer.open": "",
|
|
@@ -20188,9 +20330,15 @@ var es = {
|
|
|
20188
20330
|
"record.metadata.download": "",
|
|
20189
20331
|
"record.metadata.feature.catalog": "",
|
|
20190
20332
|
"record.metadata.formats": "",
|
|
20333
|
+
"record.metadata.isGeographical": "",
|
|
20191
20334
|
"record.metadata.keywords": "",
|
|
20192
20335
|
"record.metadata.languages": "",
|
|
20193
20336
|
"record.metadata.lastUpdate": "",
|
|
20337
|
+
"record.metadata.linked.datasets": "",
|
|
20338
|
+
"record.metadata.linked.records": "",
|
|
20339
|
+
"record.metadata.linked.reuses": "",
|
|
20340
|
+
"record.metadata.linked.services": "",
|
|
20341
|
+
"record.metadata.linked.sourceDatasets": "",
|
|
20194
20342
|
"record.metadata.links": "",
|
|
20195
20343
|
"record.metadata.noUsage": "",
|
|
20196
20344
|
"record.metadata.otherConstraints": "",
|
|
@@ -20218,7 +20366,6 @@ var es = {
|
|
|
20218
20366
|
"record.metadata.quality.updateFrequency.failed": "",
|
|
20219
20367
|
"record.metadata.quality.updateFrequency.success": "",
|
|
20220
20368
|
"record.metadata.related": "",
|
|
20221
|
-
"record.metadata.related.contents": "",
|
|
20222
20369
|
"record.metadata.ressources.and.links": "Recursos y enlaces",
|
|
20223
20370
|
"record.metadata.sheet": "",
|
|
20224
20371
|
"record.metadata.status": "",
|
|
@@ -20230,7 +20377,6 @@ var es = {
|
|
|
20230
20377
|
"record.metadata.temporalExtent.untilDate": "",
|
|
20231
20378
|
"record.metadata.title": "",
|
|
20232
20379
|
"record.metadata.topics": "",
|
|
20233
|
-
"record.metadata.isGeographical": "",
|
|
20234
20380
|
"record.metadata.uniqueId": "",
|
|
20235
20381
|
"record.metadata.updateFrequency": "",
|
|
20236
20382
|
"record.metadata.updatedOn": "",
|
|
@@ -20350,7 +20496,6 @@ var es = {
|
|
|
20350
20496
|
"tooltip.html.copy": "",
|
|
20351
20497
|
"tooltip.id.copy": "",
|
|
20352
20498
|
"tooltip.url.copy": "",
|
|
20353
|
-
"tooltip.url.open": "",
|
|
20354
20499
|
"ui.readLess": "",
|
|
20355
20500
|
"ui.readMore": "",
|
|
20356
20501
|
"wfs.feature.limit": "",
|
|
@@ -20397,6 +20542,7 @@ var fr = {
|
|
|
20397
20542
|
"dashboard.labels.mySpace": "Mon espace",
|
|
20398
20543
|
"dashboard.records.all": "Jeux de données",
|
|
20399
20544
|
"dashboard.records.hasDraft": "brouillon",
|
|
20545
|
+
"dashboard.records.isMultilingual": "Cet enregistrement est multilingue ({languages})",
|
|
20400
20546
|
"dashboard.records.myDraft": "Mes brouillons",
|
|
20401
20547
|
"dashboard.records.myRecords": "Mes jeux de données",
|
|
20402
20548
|
"dashboard.records.search": "Résultats pour \"{searchText}\"",
|
|
@@ -20571,9 +20717,13 @@ var fr = {
|
|
|
20571
20717
|
"editor.record.form.license.odc-by": "Open Data Commons ODC-By",
|
|
20572
20718
|
"editor.record.form.license.pddl": "Open Data Commons PDDL",
|
|
20573
20719
|
"editor.record.form.license.unknown": "Inconnue ou absente",
|
|
20720
|
+
"editor.record.form.multilingual.activate": "Activez les langues",
|
|
20721
|
+
"editor.record.form.multilingual.default": "Par défaut",
|
|
20574
20722
|
"editor.record.form.multilingual.enable": "Mode Multilingue",
|
|
20723
|
+
"editor.record.form.multilingual.forbidden": "Vous ne pouvez pas supprimer le language par défaut",
|
|
20575
20724
|
"editor.record.form.multilingual.open": "Ouvrir le menu multilingue",
|
|
20576
20725
|
"editor.record.form.multilingual.title": "Traductions",
|
|
20726
|
+
"editor.record.form.multilingual.validate": "Valider",
|
|
20577
20727
|
"editor.record.form.page.accessAndContact": "Informations pour l'utilisation",
|
|
20578
20728
|
"editor.record.form.page.description": "Description du jeu de données",
|
|
20579
20729
|
"editor.record.form.page.resources": "Ressources",
|
|
@@ -20605,6 +20755,10 @@ var fr = {
|
|
|
20605
20755
|
"editor.record.loadError.title": "Erreur lors du chargement",
|
|
20606
20756
|
"editor.record.lock.format": "Les jeux de données de type 'service' et 'reuse' ne sont pas éditables",
|
|
20607
20757
|
"editor.record.lock.reason": "Vous n'êtes pas éditeur d'un des groupes autorisés.",
|
|
20758
|
+
"editor.record.multilingual.confirmation.cancelText": "Garder le(s) language(s)",
|
|
20759
|
+
"editor.record.multilingual.confirmation.confirmText": "Supprimer le(s) language(s)",
|
|
20760
|
+
"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 ?",
|
|
20761
|
+
"editor.record.multilingual.confirmation.title": "Suppression de language(s)",
|
|
20608
20762
|
"editor.record.onlineResource.protocol.other": "Autre",
|
|
20609
20763
|
"editor.record.onlineResourceError.body": "Une erreur est survenue lors de l'ajout de la ressource :",
|
|
20610
20764
|
"editor.record.onlineResourceError.closeMessage": "Compris",
|
|
@@ -20665,20 +20819,32 @@ var fr = {
|
|
|
20665
20819
|
"input.image.uploadErrorLabel": "L'image n'a pas pu être chargée",
|
|
20666
20820
|
"input.image.uploadProgressCancel": "Annuler",
|
|
20667
20821
|
"input.image.uploadProgressLabel": "Chargement en cours...",
|
|
20822
|
+
"language.ar": "Arabe",
|
|
20823
|
+
"language.az": "Azéri",
|
|
20668
20824
|
"language.ca": "Catalan",
|
|
20669
20825
|
"language.cs": "Tchèque",
|
|
20826
|
+
"language.cy": "Gallois",
|
|
20827
|
+
"language.da": "Danois",
|
|
20670
20828
|
"language.de": "Allemand",
|
|
20671
20829
|
"language.en": "Anglais",
|
|
20672
20830
|
"language.es": "Espagnol",
|
|
20673
20831
|
"language.fi": "Finnois",
|
|
20674
20832
|
"language.fr": "Français",
|
|
20833
|
+
"language.hy": "Arménien",
|
|
20675
20834
|
"language.is": "Islandais",
|
|
20676
20835
|
"language.it": "Italien",
|
|
20836
|
+
"language.ka": "Géorgien",
|
|
20677
20837
|
"language.ko": "Coréen",
|
|
20678
20838
|
"language.nl": "Néerlandais",
|
|
20839
|
+
"language.no": "Norvégien",
|
|
20840
|
+
"language.pl": "Polonais",
|
|
20679
20841
|
"language.pt": "Portugais",
|
|
20842
|
+
"language.rm": "Romanche",
|
|
20680
20843
|
"language.ru": "Russe",
|
|
20681
20844
|
"language.sk": "Slovaque",
|
|
20845
|
+
"language.sv": "Suédois",
|
|
20846
|
+
"language.tr": "Turque",
|
|
20847
|
+
"language.uk": "Ukrainien",
|
|
20682
20848
|
"language.zh": "Chinois",
|
|
20683
20849
|
"map.add.layer": "Ajouter une couche",
|
|
20684
20850
|
"map.add.layer.catalog": "Du catalogue",
|
|
@@ -20725,6 +20891,7 @@ var fr = {
|
|
|
20725
20891
|
"record.action.duplicate": "Dupliquer",
|
|
20726
20892
|
"record.action.duplicating": "Duplication...",
|
|
20727
20893
|
"record.action.rollback": "Restaurer",
|
|
20894
|
+
"record.action.switchLang": "Marquer par défaut",
|
|
20728
20895
|
"record.action.view": "Voir",
|
|
20729
20896
|
"record.card.metadata.contact": "Contact de la métadonnée ",
|
|
20730
20897
|
"record.externalViewer.open": "Ouvrir dans le visualiseur externe",
|
|
@@ -20775,9 +20942,15 @@ var fr = {
|
|
|
20775
20942
|
"record.metadata.download": "Téléchargements",
|
|
20776
20943
|
"record.metadata.feature.catalog": "Catalogue d'attributs",
|
|
20777
20944
|
"record.metadata.formats": "Formats",
|
|
20945
|
+
"record.metadata.isGeographical": "Donnée géographique",
|
|
20778
20946
|
"record.metadata.keywords": "Mots-clés",
|
|
20779
20947
|
"record.metadata.languages": "Langues",
|
|
20780
20948
|
"record.metadata.lastUpdate": "Mis à jour le {date}",
|
|
20949
|
+
"record.metadata.linked.datasets": "Jeux de données associés",
|
|
20950
|
+
"record.metadata.linked.records": "Contenus associés",
|
|
20951
|
+
"record.metadata.linked.reuses": "Réutilisations associées",
|
|
20952
|
+
"record.metadata.linked.services": "Services associés",
|
|
20953
|
+
"record.metadata.linked.sourceDatasets": "Jeux de données sources",
|
|
20781
20954
|
"record.metadata.links": "Liens",
|
|
20782
20955
|
"record.metadata.noUsage": "Aucune condition d'utilisation spécifiée pour ces données",
|
|
20783
20956
|
"record.metadata.otherConstraints": "Limitations d'usage",
|
|
@@ -20804,8 +20977,7 @@ var fr = {
|
|
|
20804
20977
|
"record.metadata.quality.topic.success": "Le thème est renseigné",
|
|
20805
20978
|
"record.metadata.quality.updateFrequency.failed": "La fréquence de mise à jour n'est pas renseignée",
|
|
20806
20979
|
"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é",
|
|
20980
|
+
"record.metadata.related": "Explorez le catalogue",
|
|
20809
20981
|
"record.metadata.ressources.and.links": "Ressources et liens",
|
|
20810
20982
|
"record.metadata.sheet": "Fiche de métadonnées d'origine",
|
|
20811
20983
|
"record.metadata.status": "Statut",
|
|
@@ -20817,7 +20989,6 @@ var fr = {
|
|
|
20817
20989
|
"record.metadata.temporalExtent.untilDate": "Jusqu'au { end }",
|
|
20818
20990
|
"record.metadata.title": "Intitulé",
|
|
20819
20991
|
"record.metadata.topics": "Catégories",
|
|
20820
|
-
"record.metadata.isGeographical": "Donnée géographique",
|
|
20821
20992
|
"record.metadata.uniqueId": "Identificateur de ressource unique",
|
|
20822
20993
|
"record.metadata.updateFrequency": "Fréquence de mise à jour des données",
|
|
20823
20994
|
"record.metadata.updatedOn": "Modifié le",
|
|
@@ -20937,7 +21108,6 @@ var fr = {
|
|
|
20937
21108
|
"tooltip.html.copy": "Copier le HTML",
|
|
20938
21109
|
"tooltip.id.copy": "Copier l'identifiant unique",
|
|
20939
21110
|
"tooltip.url.copy": "Copier l'URL",
|
|
20940
|
-
"tooltip.url.open": "Ouvrir l'URL",
|
|
20941
21111
|
"ui.readLess": "Réduire",
|
|
20942
21112
|
"ui.readMore": "Lire la suite",
|
|
20943
21113
|
"wfs.feature.limit": "Trop d'objets pour afficher la couche WFS !",
|
|
@@ -20984,6 +21154,7 @@ var it = {
|
|
|
20984
21154
|
"dashboard.labels.mySpace": "Il mio spazio",
|
|
20985
21155
|
"dashboard.records.all": "Catalogo",
|
|
20986
21156
|
"dashboard.records.hasDraft": "Bozza",
|
|
21157
|
+
"dashboard.records.isMultilingual": "Questo record è multilingue ({languages})",
|
|
20987
21158
|
"dashboard.records.myDraft": "Le mie bozze",
|
|
20988
21159
|
"dashboard.records.myRecords": "I miei dati",
|
|
20989
21160
|
"dashboard.records.search": "Risultati per \"{searchText}\"",
|
|
@@ -21161,6 +21332,10 @@ var it = {
|
|
|
21161
21332
|
"editor.record.form.multilingual.enable": "Aprire il pannello multilingue",
|
|
21162
21333
|
"editor.record.form.multilingual.open": "Modalità multilingue",
|
|
21163
21334
|
"editor.record.form.multilingual.title": "Traduzioni",
|
|
21335
|
+
"editor.record.form.multilingual.activate": "",
|
|
21336
|
+
"editor.record.form.multilingual.default": "",
|
|
21337
|
+
"editor.record.form.multilingual.forbidden": "",
|
|
21338
|
+
"editor.record.form.multilingual.validate": "",
|
|
21164
21339
|
"editor.record.form.page.accessAndContact": "Informazioni per l'uso",
|
|
21165
21340
|
"editor.record.form.page.description": "Descrizione del dataset",
|
|
21166
21341
|
"editor.record.form.page.resources": "Risorse",
|
|
@@ -21192,6 +21367,10 @@ var it = {
|
|
|
21192
21367
|
"editor.record.loadError.title": "Errore durante il caricamento",
|
|
21193
21368
|
"editor.record.lock.format": "I record con il formato 'servizio' o 'riutilizzo' non sono modificabili",
|
|
21194
21369
|
"editor.record.lock.reason": "Non è un editore di uno dei gruppi autorizzati",
|
|
21370
|
+
"editor.record.multilingual.confirmation.cancelText": "",
|
|
21371
|
+
"editor.record.multilingual.confirmation.confirmText": "",
|
|
21372
|
+
"editor.record.multilingual.confirmation.message": "",
|
|
21373
|
+
"editor.record.multilingual.confirmation.title": "",
|
|
21195
21374
|
"editor.record.onlineResource.protocol.other": "Altro",
|
|
21196
21375
|
"editor.record.onlineResourceError.body": "Ha successo un'errore durante l'aggiunta della risorsa:",
|
|
21197
21376
|
"editor.record.onlineResourceError.closeMessage": "Capito",
|
|
@@ -21252,20 +21431,32 @@ var it = {
|
|
|
21252
21431
|
"input.image.uploadErrorLabel": "Impossibile caricare l'immagine",
|
|
21253
21432
|
"input.image.uploadProgressCancel": "Annulla",
|
|
21254
21433
|
"input.image.uploadProgressLabel": "Caricamento...",
|
|
21434
|
+
"language.ar": "",
|
|
21435
|
+
"language.az": "",
|
|
21255
21436
|
"language.ca": "Catalano",
|
|
21256
21437
|
"language.cs": "Ceco",
|
|
21438
|
+
"language.cy": "",
|
|
21439
|
+
"language.da": "",
|
|
21257
21440
|
"language.de": "Tedesco",
|
|
21258
21441
|
"language.en": "Inglese",
|
|
21259
21442
|
"language.es": "Spagnolo",
|
|
21260
21443
|
"language.fi": "Finlandese",
|
|
21261
21444
|
"language.fr": "Francese",
|
|
21445
|
+
"language.hy": "",
|
|
21262
21446
|
"language.is": "Islandese",
|
|
21263
21447
|
"language.it": "Italiano",
|
|
21448
|
+
"language.ka": "",
|
|
21264
21449
|
"language.ko": "Coreano",
|
|
21265
21450
|
"language.nl": "Olandese",
|
|
21451
|
+
"language.no": "",
|
|
21452
|
+
"language.pl": "",
|
|
21266
21453
|
"language.pt": "Portoghese",
|
|
21454
|
+
"language.rm": "",
|
|
21267
21455
|
"language.ru": "Russo",
|
|
21268
21456
|
"language.sk": "Slovacco",
|
|
21457
|
+
"language.sv": "",
|
|
21458
|
+
"language.tr": "",
|
|
21459
|
+
"language.uk": "",
|
|
21269
21460
|
"language.zh": "Cinese",
|
|
21270
21461
|
"map.add.layer": "Aggiungere un layer",
|
|
21271
21462
|
"map.add.layer.catalog": "Dal catalogo",
|
|
@@ -21312,6 +21503,7 @@ var it = {
|
|
|
21312
21503
|
"record.action.duplicate": "Duplicato",
|
|
21313
21504
|
"record.action.duplicating": "Duplicazione",
|
|
21314
21505
|
"record.action.rollback": "Annulla",
|
|
21506
|
+
"record.action.switchLang": "",
|
|
21315
21507
|
"record.action.view": "Visualizza",
|
|
21316
21508
|
"record.card.metadata.contact": "Contatto del metadata",
|
|
21317
21509
|
"record.externalViewer.open": "Aprire nel visualizzatore esterno",
|
|
@@ -21362,9 +21554,15 @@ var it = {
|
|
|
21362
21554
|
"record.metadata.download": "Download",
|
|
21363
21555
|
"record.metadata.feature.catalog": "Catalogo dei oggetti",
|
|
21364
21556
|
"record.metadata.formats": "Formati",
|
|
21557
|
+
"record.metadata.isGeographical": "Dati geografici",
|
|
21365
21558
|
"record.metadata.keywords": "Parole chiave",
|
|
21366
21559
|
"record.metadata.languages": "Lingue",
|
|
21367
21560
|
"record.metadata.lastUpdate": "Ultimo aggiornamento il {date}",
|
|
21561
|
+
"record.metadata.linked.datasets": "",
|
|
21562
|
+
"record.metadata.linked.records": "",
|
|
21563
|
+
"record.metadata.linked.reuses": "",
|
|
21564
|
+
"record.metadata.linked.services": "",
|
|
21565
|
+
"record.metadata.linked.sourceDatasets": "",
|
|
21368
21566
|
"record.metadata.links": "Collegamenti",
|
|
21369
21567
|
"record.metadata.noUsage": "Nessuna condizione d'uso specificata per questi dati",
|
|
21370
21568
|
"record.metadata.otherConstraints": "Limitazioni di uso",
|
|
@@ -21392,7 +21590,6 @@ var it = {
|
|
|
21392
21590
|
"record.metadata.quality.updateFrequency.failed": "La frequenza di aggiornamento non è specificata",
|
|
21393
21591
|
"record.metadata.quality.updateFrequency.success": "La frequenza di aggiornamento è specificata",
|
|
21394
21592
|
"record.metadata.related": "Vedi anche",
|
|
21395
|
-
"record.metadata.related.contents": "Contenuti correlati",
|
|
21396
21593
|
"record.metadata.ressources.and.links": "Risorse e collegamenti",
|
|
21397
21594
|
"record.metadata.sheet": "Origine del metadata",
|
|
21398
21595
|
"record.metadata.status": "Stato",
|
|
@@ -21404,7 +21601,6 @@ var it = {
|
|
|
21404
21601
|
"record.metadata.temporalExtent.untilDate": "Fino a {end}",
|
|
21405
21602
|
"record.metadata.title": "Titolo",
|
|
21406
21603
|
"record.metadata.topics": "Categorie",
|
|
21407
|
-
"record.metadata.isGeographical": "Dati geografici",
|
|
21408
21604
|
"record.metadata.uniqueId": "Identificatore unico di risorsa",
|
|
21409
21605
|
"record.metadata.updateFrequency": "Frequenza di aggiornamento dei dati",
|
|
21410
21606
|
"record.metadata.updatedOn": "Modificato il",
|
|
@@ -21524,7 +21720,6 @@ var it = {
|
|
|
21524
21720
|
"tooltip.html.copy": "Copiare il HTML",
|
|
21525
21721
|
"tooltip.id.copy": "Copiare l'identificatore unico",
|
|
21526
21722
|
"tooltip.url.copy": "Copiare l'URL",
|
|
21527
|
-
"tooltip.url.open": "Aprire l'URL",
|
|
21528
21723
|
"ui.readLess": "Ridurre",
|
|
21529
21724
|
"ui.readMore": "Leggere di più",
|
|
21530
21725
|
"wfs.feature.limit": "Troppi oggetti per visualizzare il WFS layer!",
|
|
@@ -21571,6 +21766,7 @@ var nl = {
|
|
|
21571
21766
|
"dashboard.labels.mySpace": "Mijn ruimte",
|
|
21572
21767
|
"dashboard.records.all": "Catalogus",
|
|
21573
21768
|
"dashboard.records.hasDraft": "",
|
|
21769
|
+
"dashboard.records.isMultilingual": "Dit record is meertalig ({languages})",
|
|
21574
21770
|
"dashboard.records.myDraft": "Mijn concepten",
|
|
21575
21771
|
"dashboard.records.myRecords": "Mijn Records",
|
|
21576
21772
|
"dashboard.records.search": "Zoeken naar \"{searchText}\"",
|
|
@@ -21745,9 +21941,13 @@ var nl = {
|
|
|
21745
21941
|
"editor.record.form.license.odc-by": "",
|
|
21746
21942
|
"editor.record.form.license.pddl": "",
|
|
21747
21943
|
"editor.record.form.license.unknown": "",
|
|
21944
|
+
"editor.record.form.multilingual.activate": "",
|
|
21945
|
+
"editor.record.form.multilingual.default": "",
|
|
21748
21946
|
"editor.record.form.multilingual.enable": "",
|
|
21947
|
+
"editor.record.form.multilingual.forbidden": "",
|
|
21749
21948
|
"editor.record.form.multilingual.open": "",
|
|
21750
21949
|
"editor.record.form.multilingual.title": "",
|
|
21950
|
+
"editor.record.form.multilingual.validate": "",
|
|
21751
21951
|
"editor.record.form.page.accessAndContact": "",
|
|
21752
21952
|
"editor.record.form.page.description": "",
|
|
21753
21953
|
"editor.record.form.page.resources": "",
|
|
@@ -21779,6 +21979,10 @@ var nl = {
|
|
|
21779
21979
|
"editor.record.loadError.title": "",
|
|
21780
21980
|
"editor.record.lock.format": "",
|
|
21781
21981
|
"editor.record.lock.reason": "",
|
|
21982
|
+
"editor.record.multilingual.confirmation.cancelText": "",
|
|
21983
|
+
"editor.record.multilingual.confirmation.confirmText": "",
|
|
21984
|
+
"editor.record.multilingual.confirmation.message": "",
|
|
21985
|
+
"editor.record.multilingual.confirmation.title": "",
|
|
21782
21986
|
"editor.record.onlineResource.protocol.other": "",
|
|
21783
21987
|
"editor.record.onlineResourceError.body": "",
|
|
21784
21988
|
"editor.record.onlineResourceError.closeMessage": "",
|
|
@@ -21839,20 +22043,32 @@ var nl = {
|
|
|
21839
22043
|
"input.image.uploadErrorLabel": "",
|
|
21840
22044
|
"input.image.uploadProgressCancel": "",
|
|
21841
22045
|
"input.image.uploadProgressLabel": "",
|
|
22046
|
+
"language.ar": "",
|
|
22047
|
+
"language.az": "",
|
|
21842
22048
|
"language.ca": "Catalaans",
|
|
21843
22049
|
"language.cs": "Tsjechisch",
|
|
22050
|
+
"language.cy": "",
|
|
22051
|
+
"language.da": "",
|
|
21844
22052
|
"language.de": "Duits",
|
|
21845
22053
|
"language.en": "Engels",
|
|
21846
22054
|
"language.es": "Spaans",
|
|
21847
22055
|
"language.fi": "Fins",
|
|
21848
22056
|
"language.fr": "Frans",
|
|
22057
|
+
"language.hy": "",
|
|
21849
22058
|
"language.is": "IJslands",
|
|
21850
22059
|
"language.it": "Italiaans",
|
|
22060
|
+
"language.ka": "",
|
|
21851
22061
|
"language.ko": "Koreaans",
|
|
21852
22062
|
"language.nl": "Nederlands",
|
|
22063
|
+
"language.no": "",
|
|
22064
|
+
"language.pl": "",
|
|
21853
22065
|
"language.pt": "Portugees",
|
|
22066
|
+
"language.rm": "",
|
|
21854
22067
|
"language.ru": "Russisch",
|
|
21855
22068
|
"language.sk": "Slowaaks",
|
|
22069
|
+
"language.sv": "",
|
|
22070
|
+
"language.tr": "",
|
|
22071
|
+
"language.uk": "",
|
|
21856
22072
|
"language.zh": "Chinees",
|
|
21857
22073
|
"map.add.layer": "",
|
|
21858
22074
|
"map.add.layer.catalog": "",
|
|
@@ -21899,6 +22115,7 @@ var nl = {
|
|
|
21899
22115
|
"record.action.duplicate": "",
|
|
21900
22116
|
"record.action.duplicating": "",
|
|
21901
22117
|
"record.action.rollback": "",
|
|
22118
|
+
"record.action.switchLang": "",
|
|
21902
22119
|
"record.action.view": "",
|
|
21903
22120
|
"record.card.metadata.contact": "",
|
|
21904
22121
|
"record.externalViewer.open": "",
|
|
@@ -21949,9 +22166,15 @@ var nl = {
|
|
|
21949
22166
|
"record.metadata.download": "",
|
|
21950
22167
|
"record.metadata.feature.catalog": "",
|
|
21951
22168
|
"record.metadata.formats": "",
|
|
22169
|
+
"record.metadata.isGeographical": "",
|
|
21952
22170
|
"record.metadata.keywords": "",
|
|
21953
22171
|
"record.metadata.languages": "",
|
|
21954
22172
|
"record.metadata.lastUpdate": "",
|
|
22173
|
+
"record.metadata.linked.datasets": "",
|
|
22174
|
+
"record.metadata.linked.records": "",
|
|
22175
|
+
"record.metadata.linked.reuses": "",
|
|
22176
|
+
"record.metadata.linked.services": "",
|
|
22177
|
+
"record.metadata.linked.sourceDatasets": "",
|
|
21955
22178
|
"record.metadata.links": "",
|
|
21956
22179
|
"record.metadata.noUsage": "",
|
|
21957
22180
|
"record.metadata.otherConstraints": "",
|
|
@@ -21979,7 +22202,6 @@ var nl = {
|
|
|
21979
22202
|
"record.metadata.quality.updateFrequency.failed": "",
|
|
21980
22203
|
"record.metadata.quality.updateFrequency.success": "",
|
|
21981
22204
|
"record.metadata.related": "",
|
|
21982
|
-
"record.metadata.related.contents": "",
|
|
21983
22205
|
"record.metadata.ressources.and.links": "Bronnen en links",
|
|
21984
22206
|
"record.metadata.sheet": "",
|
|
21985
22207
|
"record.metadata.status": "",
|
|
@@ -21991,7 +22213,6 @@ var nl = {
|
|
|
21991
22213
|
"record.metadata.temporalExtent.untilDate": "",
|
|
21992
22214
|
"record.metadata.title": "",
|
|
21993
22215
|
"record.metadata.topics": "",
|
|
21994
|
-
"record.metadata.isGeographical": "",
|
|
21995
22216
|
"record.metadata.uniqueId": "",
|
|
21996
22217
|
"record.metadata.updateFrequency": "",
|
|
21997
22218
|
"record.metadata.updatedOn": "",
|
|
@@ -22111,7 +22332,6 @@ var nl = {
|
|
|
22111
22332
|
"tooltip.html.copy": "",
|
|
22112
22333
|
"tooltip.id.copy": "",
|
|
22113
22334
|
"tooltip.url.copy": "",
|
|
22114
|
-
"tooltip.url.open": "",
|
|
22115
22335
|
"ui.readLess": "",
|
|
22116
22336
|
"ui.readMore": "",
|
|
22117
22337
|
"wfs.feature.limit": "",
|
|
@@ -22158,6 +22378,7 @@ var pt = {
|
|
|
22158
22378
|
"dashboard.labels.mySpace": "Meu espaço",
|
|
22159
22379
|
"dashboard.records.all": "Catálogo",
|
|
22160
22380
|
"dashboard.records.hasDraft": "",
|
|
22381
|
+
"dashboard.records.isMultilingual": "Este registro é multilíngue ({languages})",
|
|
22161
22382
|
"dashboard.records.myDraft": "Meus rascunhos",
|
|
22162
22383
|
"dashboard.records.myRecords": "Meus Registros",
|
|
22163
22384
|
"dashboard.records.search": "Buscar por \"{searchText}\"",
|
|
@@ -22332,9 +22553,13 @@ var pt = {
|
|
|
22332
22553
|
"editor.record.form.license.odc-by": "",
|
|
22333
22554
|
"editor.record.form.license.pddl": "",
|
|
22334
22555
|
"editor.record.form.license.unknown": "",
|
|
22556
|
+
"editor.record.form.multilingual.activate": "",
|
|
22557
|
+
"editor.record.form.multilingual.default": "",
|
|
22335
22558
|
"editor.record.form.multilingual.enable": "",
|
|
22559
|
+
"editor.record.form.multilingual.forbidden": "",
|
|
22336
22560
|
"editor.record.form.multilingual.open": "",
|
|
22337
22561
|
"editor.record.form.multilingual.title": "",
|
|
22562
|
+
"editor.record.form.multilingual.validate": "",
|
|
22338
22563
|
"editor.record.form.page.accessAndContact": "",
|
|
22339
22564
|
"editor.record.form.page.description": "",
|
|
22340
22565
|
"editor.record.form.page.resources": "",
|
|
@@ -22366,6 +22591,10 @@ var pt = {
|
|
|
22366
22591
|
"editor.record.loadError.title": "",
|
|
22367
22592
|
"editor.record.lock.format": "",
|
|
22368
22593
|
"editor.record.lock.reason": "",
|
|
22594
|
+
"editor.record.multilingual.confirmation.cancelText": "",
|
|
22595
|
+
"editor.record.multilingual.confirmation.confirmText": "",
|
|
22596
|
+
"editor.record.multilingual.confirmation.message": "",
|
|
22597
|
+
"editor.record.multilingual.confirmation.title": "",
|
|
22369
22598
|
"editor.record.onlineResource.protocol.other": "",
|
|
22370
22599
|
"editor.record.onlineResourceError.body": "",
|
|
22371
22600
|
"editor.record.onlineResourceError.closeMessage": "",
|
|
@@ -22426,20 +22655,32 @@ var pt = {
|
|
|
22426
22655
|
"input.image.uploadErrorLabel": "",
|
|
22427
22656
|
"input.image.uploadProgressCancel": "",
|
|
22428
22657
|
"input.image.uploadProgressLabel": "",
|
|
22658
|
+
"language.ar": "",
|
|
22659
|
+
"language.az": "",
|
|
22429
22660
|
"language.ca": "Catalão",
|
|
22430
22661
|
"language.cs": "Tcheco",
|
|
22662
|
+
"language.cy": "",
|
|
22663
|
+
"language.da": "",
|
|
22431
22664
|
"language.de": "Alemão",
|
|
22432
22665
|
"language.en": "Inglês",
|
|
22433
22666
|
"language.es": "Espanhol",
|
|
22434
22667
|
"language.fi": "Finlandês",
|
|
22435
22668
|
"language.fr": "Francês",
|
|
22669
|
+
"language.hy": "",
|
|
22436
22670
|
"language.is": "Islandês",
|
|
22437
22671
|
"language.it": "Italiano",
|
|
22672
|
+
"language.ka": "",
|
|
22438
22673
|
"language.ko": "Coreano",
|
|
22439
22674
|
"language.nl": "Holandês",
|
|
22675
|
+
"language.no": "",
|
|
22676
|
+
"language.pl": "",
|
|
22440
22677
|
"language.pt": "Português",
|
|
22678
|
+
"language.rm": "",
|
|
22441
22679
|
"language.ru": "Russo",
|
|
22442
22680
|
"language.sk": "Eslovaco",
|
|
22681
|
+
"language.sv": "",
|
|
22682
|
+
"language.tr": "",
|
|
22683
|
+
"language.uk": "",
|
|
22443
22684
|
"language.zh": "Chinês",
|
|
22444
22685
|
"map.add.layer": "",
|
|
22445
22686
|
"map.add.layer.catalog": "",
|
|
@@ -22486,6 +22727,7 @@ var pt = {
|
|
|
22486
22727
|
"record.action.duplicate": "",
|
|
22487
22728
|
"record.action.duplicating": "",
|
|
22488
22729
|
"record.action.rollback": "",
|
|
22730
|
+
"record.action.switchLang": "",
|
|
22489
22731
|
"record.action.view": "",
|
|
22490
22732
|
"record.card.metadata.contact": "",
|
|
22491
22733
|
"record.externalViewer.open": "",
|
|
@@ -22536,9 +22778,15 @@ var pt = {
|
|
|
22536
22778
|
"record.metadata.download": "",
|
|
22537
22779
|
"record.metadata.feature.catalog": "",
|
|
22538
22780
|
"record.metadata.formats": "",
|
|
22781
|
+
"record.metadata.isGeographical": "",
|
|
22539
22782
|
"record.metadata.keywords": "",
|
|
22540
22783
|
"record.metadata.languages": "",
|
|
22541
22784
|
"record.metadata.lastUpdate": "",
|
|
22785
|
+
"record.metadata.linked.datasets": "",
|
|
22786
|
+
"record.metadata.linked.records": "",
|
|
22787
|
+
"record.metadata.linked.reuses": "",
|
|
22788
|
+
"record.metadata.linked.services": "",
|
|
22789
|
+
"record.metadata.linked.sourceDatasets": "",
|
|
22542
22790
|
"record.metadata.links": "",
|
|
22543
22791
|
"record.metadata.noUsage": "",
|
|
22544
22792
|
"record.metadata.otherConstraints": "",
|
|
@@ -22566,7 +22814,6 @@ var pt = {
|
|
|
22566
22814
|
"record.metadata.quality.updateFrequency.failed": "",
|
|
22567
22815
|
"record.metadata.quality.updateFrequency.success": "",
|
|
22568
22816
|
"record.metadata.related": "",
|
|
22569
|
-
"record.metadata.related.contents": "",
|
|
22570
22817
|
"record.metadata.ressources.and.links": "Recursos e links",
|
|
22571
22818
|
"record.metadata.sheet": "",
|
|
22572
22819
|
"record.metadata.status": "",
|
|
@@ -22578,7 +22825,6 @@ var pt = {
|
|
|
22578
22825
|
"record.metadata.temporalExtent.untilDate": "",
|
|
22579
22826
|
"record.metadata.title": "",
|
|
22580
22827
|
"record.metadata.topics": "",
|
|
22581
|
-
"record.metadata.isGeographical": "",
|
|
22582
22828
|
"record.metadata.uniqueId": "",
|
|
22583
22829
|
"record.metadata.updateFrequency": "",
|
|
22584
22830
|
"record.metadata.updatedOn": "",
|
|
@@ -22698,7 +22944,6 @@ var pt = {
|
|
|
22698
22944
|
"tooltip.html.copy": "",
|
|
22699
22945
|
"tooltip.id.copy": "",
|
|
22700
22946
|
"tooltip.url.copy": "",
|
|
22701
|
-
"tooltip.url.open": "",
|
|
22702
22947
|
"ui.readLess": "",
|
|
22703
22948
|
"ui.readMore": "",
|
|
22704
22949
|
"wfs.feature.limit": "",
|
|
@@ -22816,10 +23061,18 @@ class Gn4FieldMapper {
|
|
|
22816
23061
|
const langList = getAsArray(selectField(source, 'resourceLanguage'));
|
|
22817
23062
|
const languages = langList.map((lang) => LANG_3_TO_2_MAPPER[lang]);
|
|
22818
23063
|
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
23064
|
return {
|
|
22821
23065
|
...output,
|
|
22822
23066
|
defaultLanguage,
|
|
23067
|
+
};
|
|
23068
|
+
},
|
|
23069
|
+
otherLanguage: (output, source) => {
|
|
23070
|
+
const langList = getAsArray(selectField(source, 'otherLanguage'));
|
|
23071
|
+
const languages = langList.map((lang) => LANG_3_TO_2_MAPPER[lang]);
|
|
23072
|
+
const defaultLanguage = output.defaultLanguage ?? languages[0] ?? null;
|
|
23073
|
+
const otherLanguages = languages.filter((lang) => lang !== defaultLanguage);
|
|
23074
|
+
return {
|
|
23075
|
+
...output,
|
|
22823
23076
|
otherLanguages,
|
|
22824
23077
|
};
|
|
22825
23078
|
},
|
|
@@ -22893,8 +23146,32 @@ class Gn4FieldMapper {
|
|
|
22893
23146
|
related: (output, source) => {
|
|
22894
23147
|
const fcatSource = selectField(getFirstValue(selectField(selectField(source, 'related'), 'fcats')) ?? {}, '_source');
|
|
22895
23148
|
const featureCatalogIdentifier = selectField(fcatSource, 'uuid');
|
|
22896
|
-
|
|
22897
|
-
|
|
23149
|
+
const sourceOfLinks = getAsArray(selectField(selectField(source, 'related'), 'hassources'));
|
|
23150
|
+
const sourceOfIdentifiers = sourceOfLinks
|
|
23151
|
+
.filter((link) => link['origin'] === 'catalog')
|
|
23152
|
+
.map((link) => {
|
|
23153
|
+
return selectField(selectField(link, '_source'), 'uuid');
|
|
23154
|
+
});
|
|
23155
|
+
const extraValues = {};
|
|
23156
|
+
if (featureCatalogIdentifier) {
|
|
23157
|
+
extraValues.featureCatalogIdentifier = featureCatalogIdentifier;
|
|
23158
|
+
}
|
|
23159
|
+
if (sourceOfIdentifiers && sourceOfIdentifiers.length > 0) {
|
|
23160
|
+
extraValues.sourceOfIdentifiers = sourceOfIdentifiers;
|
|
23161
|
+
}
|
|
23162
|
+
return Object.keys(extraValues).length > 0
|
|
23163
|
+
? this.addExtra(extraValues, output)
|
|
23164
|
+
: output;
|
|
23165
|
+
},
|
|
23166
|
+
recordLink: (output, source) => {
|
|
23167
|
+
const recordLinks = getAsArray(selectField(source, 'recordLink'));
|
|
23168
|
+
const sourcesIdentifiers = recordLinks
|
|
23169
|
+
.filter((link) => link['origin'] === 'catalog' && link['type'] === 'sources')
|
|
23170
|
+
.map((link) => selectField(link, 'to'));
|
|
23171
|
+
return sourcesIdentifiers && sourcesIdentifiers.length > 0
|
|
23172
|
+
? this.addExtra({
|
|
23173
|
+
sourcesIdentifiers,
|
|
23174
|
+
}, output)
|
|
22898
23175
|
: output;
|
|
22899
23176
|
},
|
|
22900
23177
|
isPublishedToAll: (output, source) => this.addExtra({
|
|
@@ -23280,11 +23557,11 @@ class ElasticsearchService {
|
|
|
23280
23557
|
registerRuntimeField(fieldName, expression) {
|
|
23281
23558
|
this.runtimeFields[fieldName] = expression;
|
|
23282
23559
|
}
|
|
23283
|
-
|
|
23560
|
+
getMetadataByIdsPayload(uuids) {
|
|
23284
23561
|
return {
|
|
23285
23562
|
query: {
|
|
23286
23563
|
ids: {
|
|
23287
|
-
values:
|
|
23564
|
+
values: uuids,
|
|
23288
23565
|
},
|
|
23289
23566
|
},
|
|
23290
23567
|
};
|
|
@@ -23715,13 +23992,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
23715
23992
|
const minPublicationApiVersion = '4.2.5';
|
|
23716
23993
|
const TEMPORARY_ID_PREFIX = 'TEMP-ID-';
|
|
23717
23994
|
class Gn4Repository {
|
|
23718
|
-
constructor(httpClient, gn4SearchApi, gn4SearchHelper, gn4Mapper, gn4RecordsApi, platformService) {
|
|
23995
|
+
constructor(httpClient, gn4SearchApi, gn4SearchHelper, gn4Mapper, gn4RecordsApi, platformService, gn4LanguagesApi) {
|
|
23719
23996
|
this.httpClient = httpClient;
|
|
23720
23997
|
this.gn4SearchApi = gn4SearchApi;
|
|
23721
23998
|
this.gn4SearchHelper = gn4SearchHelper;
|
|
23722
23999
|
this.gn4Mapper = gn4Mapper;
|
|
23723
24000
|
this.gn4RecordsApi = gn4RecordsApi;
|
|
23724
24001
|
this.platformService = platformService;
|
|
24002
|
+
this.gn4LanguagesApi = gn4LanguagesApi;
|
|
23725
24003
|
this._draftsChanged = new Subject();
|
|
23726
24004
|
this.draftsChanged$ = this._draftsChanged.asObservable();
|
|
23727
24005
|
}
|
|
@@ -23743,9 +24021,16 @@ class Gn4Repository {
|
|
|
23743
24021
|
}
|
|
23744
24022
|
getRecord(uniqueIdentifier) {
|
|
23745
24023
|
return this.gn4SearchApi
|
|
23746
|
-
.search('bucket', ['fcats'], JSON.stringify(this.gn4SearchHelper.
|
|
24024
|
+
.search('bucket', ['fcats', 'hassources'], JSON.stringify(this.gn4SearchHelper.getMetadataByIdsPayload([uniqueIdentifier])))
|
|
23747
24025
|
.pipe(map$1((results) => results.hits.hits[0]), switchMap((record) => record ? this.gn4Mapper.readRecord(record) : of(null)));
|
|
23748
24026
|
}
|
|
24027
|
+
getMultipleRecords(uniqueIdentifiers) {
|
|
24028
|
+
return this.gn4SearchApi
|
|
24029
|
+
.search('bucket', undefined, JSON.stringify(this.gn4SearchHelper.getMetadataByIdsPayload(uniqueIdentifiers)))
|
|
24030
|
+
.pipe(map$1((results) => results.hits.hits), switchMap((records) => records && records.length > 0
|
|
24031
|
+
? this.gn4Mapper.readRecords(records)
|
|
24032
|
+
: of(null)));
|
|
24033
|
+
}
|
|
23749
24034
|
mapEmbeddedFeatureCatalog(featureTypes) {
|
|
23750
24035
|
return {
|
|
23751
24036
|
featureTypes: featureTypes.map((featureType) => ({
|
|
@@ -23781,6 +24066,20 @@ class Gn4Repository {
|
|
|
23781
24066
|
.search('bucket', null, JSON.stringify(this.gn4SearchHelper.getRelatedRecordPayload(similarTo, 3)))
|
|
23782
24067
|
.pipe(switchMap((results) => this.gn4Mapper.readRecords(results.hits.hits)));
|
|
23783
24068
|
}
|
|
24069
|
+
getSources(record) {
|
|
24070
|
+
const sourcesIdentifiers = record.extras?.['sourcesIdentifiers'];
|
|
24071
|
+
if (sourcesIdentifiers && sourcesIdentifiers.length > 0) {
|
|
24072
|
+
return this.getMultipleRecords(sourcesIdentifiers);
|
|
24073
|
+
}
|
|
24074
|
+
return of(null);
|
|
24075
|
+
}
|
|
24076
|
+
getSourceOf(record) {
|
|
24077
|
+
const sourceOfIdentifiers = record.extras?.['sourceOfIdentifiers'];
|
|
24078
|
+
if (sourceOfIdentifiers && sourceOfIdentifiers.length > 0) {
|
|
24079
|
+
return this.getMultipleRecords(sourceOfIdentifiers);
|
|
24080
|
+
}
|
|
24081
|
+
return of(null);
|
|
24082
|
+
}
|
|
23784
24083
|
aggregate(params) {
|
|
23785
24084
|
// if aggregations are empty, return an empty object right away
|
|
23786
24085
|
if (Object.keys(params).length === 0)
|
|
@@ -23925,6 +24224,13 @@ class Gn4Repository {
|
|
|
23925
24224
|
}));
|
|
23926
24225
|
}));
|
|
23927
24226
|
}
|
|
24227
|
+
getApplicationLanguages() {
|
|
24228
|
+
return this.gn4LanguagesApi
|
|
24229
|
+
.getApplicationLanguages()
|
|
24230
|
+
.pipe(map$1((languages) => languages
|
|
24231
|
+
.map((lang) => LANG_3_TO_2_MAPPER[lang.id ?? ''])
|
|
24232
|
+
.filter((code) => !!code)));
|
|
24233
|
+
}
|
|
23928
24234
|
getRecordAsXml(uniqueIdentifier) {
|
|
23929
24235
|
return this.gn4RecordsApi
|
|
23930
24236
|
.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 +24271,12 @@ class Gn4Repository {
|
|
|
23965
24271
|
removeRecordFromLocalStorage(recordId) {
|
|
23966
24272
|
window.localStorage.removeItem(this.getLocalStorageKeyForRecord(recordId));
|
|
23967
24273
|
}
|
|
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 }); }
|
|
24274
|
+
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 }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
23969
24275
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: Gn4Repository }); }
|
|
23970
24276
|
}
|
|
23971
24277
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: Gn4Repository, decorators: [{
|
|
23972
24278
|
type: Injectable
|
|
23973
|
-
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: SearchApiService }, { type: ElasticsearchService }, { type: Gn4Converter }, { type: RecordsApiService }, { type: PlatformServiceInterface }] });
|
|
24279
|
+
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: SearchApiService }, { type: ElasticsearchService }, { type: Gn4Converter }, { type: RecordsApiService }, { type: PlatformServiceInterface }, { type: LanguagesApiService }] });
|
|
23974
24280
|
|
|
23975
24281
|
const IMAGE_URL$1 = '/geonetwork/images/harvesting/';
|
|
23976
24282
|
class OrganizationsFromMetadataService {
|
|
@@ -25388,7 +25694,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
25388
25694
|
}] });
|
|
25389
25695
|
|
|
25390
25696
|
var name = "geonetwork-ui";
|
|
25391
|
-
var version = "2.6.0-dev.
|
|
25697
|
+
var version = "2.6.0-dev.a225a5e7a";
|
|
25392
25698
|
var engines = {
|
|
25393
25699
|
node: ">=20"
|
|
25394
25700
|
};
|
|
@@ -26177,11 +26483,11 @@ class InteractiveTableComponent {
|
|
|
26177
26483
|
this.itemClick.emit(item);
|
|
26178
26484
|
}
|
|
26179
26485
|
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 (!item.extras?.edit && !isDraftPage) || item.kind !== 'dataset',\n 'group-hover:text-main group-hover:bg-gray-50':\n (item.extras?.edit || isDraftPage) && item.kind === 'dataset',\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: "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 }); }
|
|
26486
|
+
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 [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 (!item.extras?.edit && !isDraftPage) || item.kind !== 'dataset',\n 'group-hover:text-main group-hover:bg-gray-50':\n (item.extras?.edit || isDraftPage) && item.kind === 'dataset',\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: "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
26487
|
}
|
|
26182
26488
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InteractiveTableComponent, decorators: [{
|
|
26183
26489
|
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 (!item.extras?.edit && !isDraftPage) || item.kind !== 'dataset',\n 'group-hover:text-main group-hover:bg-gray-50':\n (item.extras?.edit || isDraftPage) && item.kind === 'dataset',\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"] }]
|
|
26490
|
+
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 (!item.extras?.edit && !isDraftPage) || item.kind !== 'dataset',\n 'group-hover:text-main group-hover:bg-gray-50':\n (item.extras?.edit || isDraftPage) && item.kind === 'dataset',\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
26491
|
}], propDecorators: { columns: [{
|
|
26186
26492
|
type: ContentChildren,
|
|
26187
26493
|
args: [InteractiveTableColumnComponent]
|
|
@@ -26869,7 +27175,7 @@ class AutocompleteComponent {
|
|
|
26869
27175
|
provideNgIconsConfig({
|
|
26870
27176
|
size: '1.75rem',
|
|
26871
27177
|
}),
|
|
26872
|
-
], viewQueries: [{ propertyName: "triggerRef", first: true, predicate: MatAutocompleteTrigger, descendants: true }, { propertyName: "autocomplete", first: true, predicate: MatAutocomplete, descendants: true }, { propertyName: "inputRef", first: true, predicate: ["searchInput"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<span class=\"w-full inline-block relative\">\n <div\n class=\"absolute inset-y-[--icon-padding] left-[--icon-padding] w-[--icon-width] pointer-events-none\"\n *ngIf=\"!allowSubmit\"\n >\n <ng-icon name=\"iconoirSearch\" class=\"text-primary search\"></ng-icon>\n </div>\n <div class=\"flex flex-row\">\n <input\n #searchInput\n type=\"text\"\n class=\"gn-ui-text-input\"\n (input)=\"handleInput($event)\"\n [placeholder]=\"placeholder\"\n [formControl]=\"control\"\n [matAutocomplete]=\"auto\"\n (keyup.enter)=\"handleEnter(searchInput.value)\"\n [ngClass]=\"{\n 'text-primary': searchActive && enterButton,\n 'text-gray-900': !searchActive,\n 'px-[--icon-width]': !allowSubmit,\n }\"\n />\n <gn-ui-button\n type=\"gray\"\n *ngIf=\"searchInput.value && displayEnterBtn\"\n extraClass=\"w-32 h-8 !opacity-100\"\n [ngStyle]=\"{ left: enterBtnPosition + 'px' }\"\n class=\"absolute\"\n disabled=\"true\"\n >\n <ng-icon\n name=\"iconoirLongArrowDownLeft\"\n class=\"!w-4 text-gray-900 font-bold\"\n ></ng-icon>\n <span translate class=\"text-bold text-gray-900 font-bold\">\n Enter to search\n </span>\n </gn-ui-button>\n </div>\n <gn-ui-button\n type=\"primary\"\n [extraClass]=\"getExtraClass()\"\n data-test=\"clear-btn\"\n *ngIf=\"searchInput.value\"\n aria-label=\"Clear\"\n (buttonClick)=\"clear()\"\n >\n <ng-icon class=\"text-white\" name=\"matClose\"></ng-icon>\n </gn-ui-button>\n <gn-ui-button\n type=\"light\"\n extraClass=\"border-0 border-l-[1px] border-gray-300 hover:border-gray-500 text-primary hover:text-primary-darkest focus:text-primary-darkest absolute inset-y-[--icon-padding] right-[--icon-padding]\"\n aria-label=\"Trigger search\"\n *ngIf=\"allowSubmit\"\n data-test=\"autocomplete-submit-btn\"\n (buttonClick)=\"handleClickSearch()\"\n >\n <ng-icon name=\"iconoirSearch\"></ng-icon>\n </gn-ui-button>\n\n <gn-ui-popup-alert\n *ngIf=\"error\"\n class=\"absolute mt-2 w-full top-[100%] left-0\"\n icon=\"matErrorOutlineOutline\"\n position=\"top\"\n type=\"warning\"\n >\n <span translate>search.autocomplete.error</span>\n {{ error }}\n </gn-ui-popup-alert>\n</span>\n\n<mat-autocomplete\n #auto=\"matAutocomplete\"\n (optionSelected)=\"handleSelection($event)\"\n [displayWith]=\"displayWithFnInternal\"\n>\n <mat-option\n *ngFor=\"let suggestion of suggestions$ | async\"\n [value]=\"suggestion\"\n class=\"p-2 suggestion\"\n >\n {{ displayWithFnInternal(suggestion) }}\n </mat-option>\n</mat-autocomplete>\n", styles: ["span{--icon-padding: var(--gn-ui-text-input-border-size, 2px);--icon-width: calc(var(--gn-ui-text-input-padding, .6em) * 2 + 1.25em)}span>*:not(gn-ui-popup-alert){font-size:var(--gn-ui-text-input-font-size, 1em)}input:placeholder-shown{text-overflow:ellipsis}gn-ui-button{--gn-ui-button-rounded: 0;--gn-ui-button-width: var(--icon-width);--gn-ui-button-padding: 0;font-size:1em}ng-icon.search{margin-top:.6rem;margin-left:.6rem}gn-ui-button:last-of-type{--gn-ui-button-rounded: 0 var(--gn-ui-text-input-rounded, .25em) var(--gn-ui-text-input-rounded, .25em) 0}.mat-mdc-option.suggestion.mat-mdc-option-active{background-color:var(--color-primary-lightest)}\n"], dependencies: [{ kind: "component", type: PopupAlertComponent, selector: "gn-ui-popup-alert", inputs: ["icon", "type", "position"] }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i1$5.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i2.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i1$5.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { 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.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { 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"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
27178
|
+
], viewQueries: [{ propertyName: "triggerRef", first: true, predicate: MatAutocompleteTrigger, descendants: true }, { propertyName: "autocomplete", first: true, predicate: MatAutocomplete, descendants: true }, { propertyName: "inputRef", first: true, predicate: ["searchInput"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<span class=\"w-full inline-block relative\">\n <div\n class=\"absolute inset-y-[--icon-padding] left-[--icon-padding] w-[--icon-width] pointer-events-none\"\n *ngIf=\"!allowSubmit\"\n >\n <ng-icon name=\"iconoirSearch\" class=\"text-primary search\"></ng-icon>\n </div>\n <div class=\"flex flex-row\">\n <input\n #searchInput\n type=\"text\"\n class=\"gn-ui-text-input\"\n (input)=\"handleInput($event)\"\n [placeholder]=\"placeholder\"\n [formControl]=\"control\"\n [matAutocomplete]=\"auto\"\n (keyup.enter)=\"handleEnter(searchInput.value)\"\n [ngClass]=\"{\n 'text-primary': searchActive && enterButton,\n 'text-gray-900': !searchActive,\n 'px-[--icon-width]': !allowSubmit,\n }\"\n />\n <gn-ui-button\n type=\"gray\"\n *ngIf=\"searchInput.value && displayEnterBtn\"\n extraClass=\"w-32 h-8 !opacity-100\"\n [ngStyle]=\"{ left: enterBtnPosition + 'px' }\"\n class=\"absolute\"\n disabled=\"true\"\n >\n <ng-icon\n name=\"iconoirLongArrowDownLeft\"\n class=\"!w-4 text-gray-900 font-bold\"\n ></ng-icon>\n <span translate class=\"text-bold text-gray-900 font-bold\">\n Enter to search\n </span>\n </gn-ui-button>\n </div>\n <gn-ui-button\n type=\"primary\"\n [extraClass]=\"getExtraClass()\"\n data-test=\"clear-btn\"\n *ngIf=\"searchInput.value\"\n aria-label=\"Clear\"\n (buttonClick)=\"clear()\"\n >\n <ng-icon class=\"text-white\" name=\"matClose\"></ng-icon>\n </gn-ui-button>\n <gn-ui-button\n type=\"light\"\n extraClass=\"border-0 border-l-[1px] border-gray-300 hover:border-gray-500 text-primary hover:text-primary-darkest focus:text-primary-darkest absolute inset-y-[--icon-padding] right-[--icon-padding]\"\n aria-label=\"Trigger search\"\n *ngIf=\"allowSubmit\"\n data-test=\"autocomplete-submit-btn\"\n (buttonClick)=\"handleClickSearch()\"\n >\n <ng-icon name=\"iconoirSearch\"></ng-icon>\n </gn-ui-button>\n\n <gn-ui-popup-alert\n *ngIf=\"error\"\n class=\"absolute mt-2 w-full top-[100%] left-0\"\n icon=\"matErrorOutlineOutline\"\n position=\"top\"\n type=\"warning\"\n >\n <span translate>search.autocomplete.error</span>\n {{ error }}\n </gn-ui-popup-alert>\n</span>\n\n<mat-autocomplete\n #auto=\"matAutocomplete\"\n (optionSelected)=\"handleSelection($event)\"\n [displayWith]=\"displayWithFnInternal\"\n>\n <mat-option\n *ngFor=\"let suggestion of suggestions$ | async\"\n [value]=\"suggestion\"\n class=\"p-2 suggestion text-start\"\n >\n {{ displayWithFnInternal(suggestion) }}\n </mat-option>\n</mat-autocomplete>\n", styles: ["span{--icon-padding: var(--gn-ui-text-input-border-size, 2px);--icon-width: calc(var(--gn-ui-text-input-padding, .6em) * 2 + 1.25em)}span>*:not(gn-ui-popup-alert){font-size:var(--gn-ui-text-input-font-size, 1em)}input:placeholder-shown{text-overflow:ellipsis}gn-ui-button{--gn-ui-button-rounded: 0;--gn-ui-button-width: var(--icon-width);--gn-ui-button-padding: 0;font-size:1em}ng-icon.search{margin-top:.6rem;margin-left:.6rem}gn-ui-button:last-of-type{--gn-ui-button-rounded: 0 var(--gn-ui-text-input-rounded, .25em) var(--gn-ui-text-input-rounded, .25em) 0}.mat-mdc-option.suggestion.mat-mdc-option-active{background-color:var(--color-primary-lightest)}\n"], dependencies: [{ kind: "component", type: PopupAlertComponent, selector: "gn-ui-popup-alert", inputs: ["icon", "type", "position"] }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i1$5.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i2.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i1$5.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { 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.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { 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"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
26873
27179
|
}
|
|
26874
27180
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AutocompleteComponent, decorators: [{
|
|
26875
27181
|
type: Component,
|
|
@@ -26890,7 +27196,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
26890
27196
|
provideNgIconsConfig({
|
|
26891
27197
|
size: '1.75rem',
|
|
26892
27198
|
}),
|
|
26893
|
-
], template: "<span class=\"w-full inline-block relative\">\n <div\n class=\"absolute inset-y-[--icon-padding] left-[--icon-padding] w-[--icon-width] pointer-events-none\"\n *ngIf=\"!allowSubmit\"\n >\n <ng-icon name=\"iconoirSearch\" class=\"text-primary search\"></ng-icon>\n </div>\n <div class=\"flex flex-row\">\n <input\n #searchInput\n type=\"text\"\n class=\"gn-ui-text-input\"\n (input)=\"handleInput($event)\"\n [placeholder]=\"placeholder\"\n [formControl]=\"control\"\n [matAutocomplete]=\"auto\"\n (keyup.enter)=\"handleEnter(searchInput.value)\"\n [ngClass]=\"{\n 'text-primary': searchActive && enterButton,\n 'text-gray-900': !searchActive,\n 'px-[--icon-width]': !allowSubmit,\n }\"\n />\n <gn-ui-button\n type=\"gray\"\n *ngIf=\"searchInput.value && displayEnterBtn\"\n extraClass=\"w-32 h-8 !opacity-100\"\n [ngStyle]=\"{ left: enterBtnPosition + 'px' }\"\n class=\"absolute\"\n disabled=\"true\"\n >\n <ng-icon\n name=\"iconoirLongArrowDownLeft\"\n class=\"!w-4 text-gray-900 font-bold\"\n ></ng-icon>\n <span translate class=\"text-bold text-gray-900 font-bold\">\n Enter to search\n </span>\n </gn-ui-button>\n </div>\n <gn-ui-button\n type=\"primary\"\n [extraClass]=\"getExtraClass()\"\n data-test=\"clear-btn\"\n *ngIf=\"searchInput.value\"\n aria-label=\"Clear\"\n (buttonClick)=\"clear()\"\n >\n <ng-icon class=\"text-white\" name=\"matClose\"></ng-icon>\n </gn-ui-button>\n <gn-ui-button\n type=\"light\"\n extraClass=\"border-0 border-l-[1px] border-gray-300 hover:border-gray-500 text-primary hover:text-primary-darkest focus:text-primary-darkest absolute inset-y-[--icon-padding] right-[--icon-padding]\"\n aria-label=\"Trigger search\"\n *ngIf=\"allowSubmit\"\n data-test=\"autocomplete-submit-btn\"\n (buttonClick)=\"handleClickSearch()\"\n >\n <ng-icon name=\"iconoirSearch\"></ng-icon>\n </gn-ui-button>\n\n <gn-ui-popup-alert\n *ngIf=\"error\"\n class=\"absolute mt-2 w-full top-[100%] left-0\"\n icon=\"matErrorOutlineOutline\"\n position=\"top\"\n type=\"warning\"\n >\n <span translate>search.autocomplete.error</span>\n {{ error }}\n </gn-ui-popup-alert>\n</span>\n\n<mat-autocomplete\n #auto=\"matAutocomplete\"\n (optionSelected)=\"handleSelection($event)\"\n [displayWith]=\"displayWithFnInternal\"\n>\n <mat-option\n *ngFor=\"let suggestion of suggestions$ | async\"\n [value]=\"suggestion\"\n class=\"p-2 suggestion\"\n >\n {{ displayWithFnInternal(suggestion) }}\n </mat-option>\n</mat-autocomplete>\n", styles: ["span{--icon-padding: var(--gn-ui-text-input-border-size, 2px);--icon-width: calc(var(--gn-ui-text-input-padding, .6em) * 2 + 1.25em)}span>*:not(gn-ui-popup-alert){font-size:var(--gn-ui-text-input-font-size, 1em)}input:placeholder-shown{text-overflow:ellipsis}gn-ui-button{--gn-ui-button-rounded: 0;--gn-ui-button-width: var(--icon-width);--gn-ui-button-padding: 0;font-size:1em}ng-icon.search{margin-top:.6rem;margin-left:.6rem}gn-ui-button:last-of-type{--gn-ui-button-rounded: 0 var(--gn-ui-text-input-rounded, .25em) var(--gn-ui-text-input-rounded, .25em) 0}.mat-mdc-option.suggestion.mat-mdc-option-active{background-color:var(--color-primary-lightest)}\n"] }]
|
|
27199
|
+
], template: "<span class=\"w-full inline-block relative\">\n <div\n class=\"absolute inset-y-[--icon-padding] left-[--icon-padding] w-[--icon-width] pointer-events-none\"\n *ngIf=\"!allowSubmit\"\n >\n <ng-icon name=\"iconoirSearch\" class=\"text-primary search\"></ng-icon>\n </div>\n <div class=\"flex flex-row\">\n <input\n #searchInput\n type=\"text\"\n class=\"gn-ui-text-input\"\n (input)=\"handleInput($event)\"\n [placeholder]=\"placeholder\"\n [formControl]=\"control\"\n [matAutocomplete]=\"auto\"\n (keyup.enter)=\"handleEnter(searchInput.value)\"\n [ngClass]=\"{\n 'text-primary': searchActive && enterButton,\n 'text-gray-900': !searchActive,\n 'px-[--icon-width]': !allowSubmit,\n }\"\n />\n <gn-ui-button\n type=\"gray\"\n *ngIf=\"searchInput.value && displayEnterBtn\"\n extraClass=\"w-32 h-8 !opacity-100\"\n [ngStyle]=\"{ left: enterBtnPosition + 'px' }\"\n class=\"absolute\"\n disabled=\"true\"\n >\n <ng-icon\n name=\"iconoirLongArrowDownLeft\"\n class=\"!w-4 text-gray-900 font-bold\"\n ></ng-icon>\n <span translate class=\"text-bold text-gray-900 font-bold\">\n Enter to search\n </span>\n </gn-ui-button>\n </div>\n <gn-ui-button\n type=\"primary\"\n [extraClass]=\"getExtraClass()\"\n data-test=\"clear-btn\"\n *ngIf=\"searchInput.value\"\n aria-label=\"Clear\"\n (buttonClick)=\"clear()\"\n >\n <ng-icon class=\"text-white\" name=\"matClose\"></ng-icon>\n </gn-ui-button>\n <gn-ui-button\n type=\"light\"\n extraClass=\"border-0 border-l-[1px] border-gray-300 hover:border-gray-500 text-primary hover:text-primary-darkest focus:text-primary-darkest absolute inset-y-[--icon-padding] right-[--icon-padding]\"\n aria-label=\"Trigger search\"\n *ngIf=\"allowSubmit\"\n data-test=\"autocomplete-submit-btn\"\n (buttonClick)=\"handleClickSearch()\"\n >\n <ng-icon name=\"iconoirSearch\"></ng-icon>\n </gn-ui-button>\n\n <gn-ui-popup-alert\n *ngIf=\"error\"\n class=\"absolute mt-2 w-full top-[100%] left-0\"\n icon=\"matErrorOutlineOutline\"\n position=\"top\"\n type=\"warning\"\n >\n <span translate>search.autocomplete.error</span>\n {{ error }}\n </gn-ui-popup-alert>\n</span>\n\n<mat-autocomplete\n #auto=\"matAutocomplete\"\n (optionSelected)=\"handleSelection($event)\"\n [displayWith]=\"displayWithFnInternal\"\n>\n <mat-option\n *ngFor=\"let suggestion of suggestions$ | async\"\n [value]=\"suggestion\"\n class=\"p-2 suggestion text-start\"\n >\n {{ displayWithFnInternal(suggestion) }}\n </mat-option>\n</mat-autocomplete>\n", styles: ["span{--icon-padding: var(--gn-ui-text-input-border-size, 2px);--icon-width: calc(var(--gn-ui-text-input-padding, .6em) * 2 + 1.25em)}span>*:not(gn-ui-popup-alert){font-size:var(--gn-ui-text-input-font-size, 1em)}input:placeholder-shown{text-overflow:ellipsis}gn-ui-button{--gn-ui-button-rounded: 0;--gn-ui-button-width: var(--icon-width);--gn-ui-button-padding: 0;font-size:1em}ng-icon.search{margin-top:.6rem;margin-left:.6rem}gn-ui-button:last-of-type{--gn-ui-button-rounded: 0 var(--gn-ui-text-input-rounded, .25em) var(--gn-ui-text-input-rounded, .25em) 0}.mat-mdc-option.suggestion.mat-mdc-option-active{background-color:var(--color-primary-lightest)}\n"] }]
|
|
26894
27200
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { placeholder: [{
|
|
26895
27201
|
type: Input
|
|
26896
27202
|
}], enterButton: [{
|
|
@@ -29279,6 +29585,56 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
29279
29585
|
type: Input
|
|
29280
29586
|
}] } });
|
|
29281
29587
|
|
|
29588
|
+
class InternalLinkCardContactComponent {
|
|
29589
|
+
constructor() {
|
|
29590
|
+
this.size = 'M';
|
|
29591
|
+
}
|
|
29592
|
+
get organization() {
|
|
29593
|
+
return this.record.ownerOrganization;
|
|
29594
|
+
}
|
|
29595
|
+
get contacts() {
|
|
29596
|
+
return ((this.record.kind === 'dataset'
|
|
29597
|
+
? this.record.contactsForResource
|
|
29598
|
+
: this.record.contacts) || []);
|
|
29599
|
+
}
|
|
29600
|
+
openExternalUrl(event, url) {
|
|
29601
|
+
event.stopPropagation();
|
|
29602
|
+
window.open(url, '_blank');
|
|
29603
|
+
}
|
|
29604
|
+
openMailto(event, email) {
|
|
29605
|
+
event.stopPropagation();
|
|
29606
|
+
window.open(`mailto:${email}`, '_blank');
|
|
29607
|
+
}
|
|
29608
|
+
copyToClipboard(event, text) {
|
|
29609
|
+
event.stopPropagation();
|
|
29610
|
+
navigator.clipboard.writeText(text);
|
|
29611
|
+
}
|
|
29612
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InternalLinkCardContactComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
29613
|
+
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: [
|
|
29614
|
+
provideIcons({
|
|
29615
|
+
iconoirInternet,
|
|
29616
|
+
matEmailOutline,
|
|
29617
|
+
matPhoneOutline,
|
|
29618
|
+
matLocationOnOutline,
|
|
29619
|
+
}),
|
|
29620
|
+
], 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"] }] }); }
|
|
29621
|
+
}
|
|
29622
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InternalLinkCardContactComponent, decorators: [{
|
|
29623
|
+
type: Component,
|
|
29624
|
+
args: [{ selector: 'gn-ui-internal-link-card-contact', standalone: true, imports: [NgIf, ThumbnailComponent, NgIconComponent, TranslateModule], providers: [
|
|
29625
|
+
provideIcons({
|
|
29626
|
+
iconoirInternet,
|
|
29627
|
+
matEmailOutline,
|
|
29628
|
+
matPhoneOutline,
|
|
29629
|
+
matLocationOnOutline,
|
|
29630
|
+
}),
|
|
29631
|
+
], 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" }]
|
|
29632
|
+
}], propDecorators: { record: [{
|
|
29633
|
+
type: Input
|
|
29634
|
+
}], size: [{
|
|
29635
|
+
type: Input
|
|
29636
|
+
}] } });
|
|
29637
|
+
|
|
29282
29638
|
class InternalLinkCardComponent {
|
|
29283
29639
|
set size(value) {
|
|
29284
29640
|
this._size = value;
|
|
@@ -29320,28 +29676,19 @@ class InternalLinkCardComponent {
|
|
|
29320
29676
|
this.abstract = removeWhitespace(stripHtml(this.record?.abstract));
|
|
29321
29677
|
this.subscription.add(fromEvent(this.elementRef.nativeElement, 'click').subscribe(() => this.mdSelect.emit(this.record)));
|
|
29322
29678
|
}
|
|
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
29679
|
getTitleClass() {
|
|
29332
29680
|
return this.titleClassMap[this._size];
|
|
29333
29681
|
}
|
|
29334
|
-
|
|
29335
|
-
|
|
29336
|
-
|
|
29682
|
+
getAbstractClass() {
|
|
29683
|
+
const marginClass = ['S', 'XS'].includes(this.size) ? 'ml-2' : '';
|
|
29684
|
+
const clampClass = this.size === 'L' && !this.record.ownerOrganization?.name
|
|
29685
|
+
? 'line-clamp-6'
|
|
29686
|
+
: 'line-clamp-2';
|
|
29687
|
+
return `${clampClass} ${marginClass}`.trim();
|
|
29337
29688
|
}
|
|
29338
|
-
|
|
29339
|
-
|
|
29340
|
-
|
|
29341
|
-
}
|
|
29342
|
-
copyToClipboard(event, text) {
|
|
29343
|
-
event.stopPropagation();
|
|
29344
|
-
navigator.clipboard.writeText(text);
|
|
29689
|
+
displayAbstract() {
|
|
29690
|
+
return (this.size === 'L' ||
|
|
29691
|
+
(['M', 'S'].includes(this.size) && !this.record.ownerOrganization?.name));
|
|
29345
29692
|
}
|
|
29346
29693
|
get shouldShowThumbnail() {
|
|
29347
29694
|
return this.size === 'L' || this.size === 'M';
|
|
@@ -29351,40 +29698,34 @@ class InternalLinkCardComponent {
|
|
|
29351
29698
|
provideIcons({
|
|
29352
29699
|
iconoirInternet,
|
|
29353
29700
|
matLocationSearchingOutline,
|
|
29354
|
-
matEmailOutline,
|
|
29355
|
-
matPhoneOutline,
|
|
29356
|
-
matLocationOnOutline,
|
|
29357
29701
|
}),
|
|
29358
29702
|
provideNgIconsConfig({
|
|
29359
29703
|
size: '1.2em',
|
|
29360
29704
|
}),
|
|
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=\"
|
|
29705
|
+
], 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
29706
|
}
|
|
29363
29707
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InternalLinkCardComponent, decorators: [{
|
|
29364
29708
|
type: Component,
|
|
29365
29709
|
args: [{ selector: 'gn-ui-internal-link-card', standalone: true, imports: [
|
|
29366
29710
|
NgClass,
|
|
29367
29711
|
NgIf,
|
|
29368
|
-
ThumbnailComponent,
|
|
29369
29712
|
MetadataQualityComponent,
|
|
29370
29713
|
NgTemplateOutlet,
|
|
29371
|
-
NgIconComponent,
|
|
29372
29714
|
TranslateModule,
|
|
29373
29715
|
GeoDataBadgeComponent,
|
|
29374
29716
|
KindBadgeComponent,
|
|
29375
29717
|
MarkdownParserComponent,
|
|
29718
|
+
InternalLinkCardContactComponent,
|
|
29719
|
+
ThumbnailComponent,
|
|
29376
29720
|
], providers: [
|
|
29377
29721
|
provideIcons({
|
|
29378
29722
|
iconoirInternet,
|
|
29379
29723
|
matLocationSearchingOutline,
|
|
29380
|
-
matEmailOutline,
|
|
29381
|
-
matPhoneOutline,
|
|
29382
|
-
matLocationOnOutline,
|
|
29383
29724
|
}),
|
|
29384
29725
|
provideNgIconsConfig({
|
|
29385
29726
|
size: '1.2em',
|
|
29386
29727
|
}),
|
|
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=\"
|
|
29728
|
+
], 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
29729
|
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { record: [{
|
|
29389
29730
|
type: Input
|
|
29390
29731
|
}], linkTarget: [{
|
|
@@ -31592,6 +31933,71 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
31592
31933
|
type: Input
|
|
31593
31934
|
}] } });
|
|
31594
31935
|
|
|
31936
|
+
class ActionMenuComponent {
|
|
31937
|
+
constructor(dialog, cdr) {
|
|
31938
|
+
this.dialog = dialog;
|
|
31939
|
+
this.cdr = cdr;
|
|
31940
|
+
this.canDuplicate = true;
|
|
31941
|
+
this.canDelete = true;
|
|
31942
|
+
this.duplicate = new EventEmitter();
|
|
31943
|
+
this.delete = new EventEmitter();
|
|
31944
|
+
this.closeActionMenu = new EventEmitter();
|
|
31945
|
+
this.rollback = new EventEmitter();
|
|
31946
|
+
this.switch = new EventEmitter();
|
|
31947
|
+
this.sectionDisplayed = 'mainMenu';
|
|
31948
|
+
}
|
|
31949
|
+
displayMainMenu() {
|
|
31950
|
+
this.sectionDisplayed = 'mainMenu';
|
|
31951
|
+
this.cdr.markForCheck();
|
|
31952
|
+
}
|
|
31953
|
+
displayDeleteMenu() {
|
|
31954
|
+
switch (this.page) {
|
|
31955
|
+
case 'draft':
|
|
31956
|
+
this.sectionDisplayed = 'rollbackMenu';
|
|
31957
|
+
break;
|
|
31958
|
+
case 'record':
|
|
31959
|
+
this.delete.emit();
|
|
31960
|
+
break;
|
|
31961
|
+
case 'main':
|
|
31962
|
+
default:
|
|
31963
|
+
this.sectionDisplayed = 'deleteMenu';
|
|
31964
|
+
}
|
|
31965
|
+
this.cdr.markForCheck();
|
|
31966
|
+
}
|
|
31967
|
+
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 }); }
|
|
31968
|
+
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", 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=\"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 *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"] }] }); }
|
|
31969
|
+
}
|
|
31970
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ActionMenuComponent, decorators: [{
|
|
31971
|
+
type: Component,
|
|
31972
|
+
args: [{ selector: 'gn-ui-action-menu', standalone: true, imports: [
|
|
31973
|
+
CommonModule,
|
|
31974
|
+
ButtonComponent,
|
|
31975
|
+
MatMenuModule,
|
|
31976
|
+
MatDialogModule,
|
|
31977
|
+
ConfirmationDialogComponent,
|
|
31978
|
+
TranslateModule,
|
|
31979
|
+
], 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=\"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 *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" }]
|
|
31980
|
+
}], ctorParameters: () => [{ type: i1$a.MatDialog }, { type: i0.ChangeDetectorRef }], propDecorators: { canDuplicate: [{
|
|
31981
|
+
type: Input
|
|
31982
|
+
}], canDelete: [{
|
|
31983
|
+
type: Input
|
|
31984
|
+
}], page: [{
|
|
31985
|
+
type: Input
|
|
31986
|
+
}], duplicate: [{
|
|
31987
|
+
type: Output
|
|
31988
|
+
}], delete: [{
|
|
31989
|
+
type: Output
|
|
31990
|
+
}], closeActionMenu: [{
|
|
31991
|
+
type: Output
|
|
31992
|
+
}], rollback: [{
|
|
31993
|
+
type: Output
|
|
31994
|
+
}], switch: [{
|
|
31995
|
+
type: Output
|
|
31996
|
+
}], trigger: [{
|
|
31997
|
+
type: ViewChild,
|
|
31998
|
+
args: [MatMenuTrigger]
|
|
31999
|
+
}] } });
|
|
32000
|
+
|
|
31595
32001
|
class UiSearchModule {
|
|
31596
32002
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiSearchModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
31597
32003
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: UiSearchModule, declarations: [RecordPreviewComponent,
|
|
@@ -31617,7 +32023,8 @@ class UiSearchModule {
|
|
|
31617
32023
|
MatCheckboxModule,
|
|
31618
32024
|
RouterLink,
|
|
31619
32025
|
InteractiveTableComponent, i2$2.NgIconsModule, KindBadgeComponent,
|
|
31620
|
-
MetadataQualityComponent
|
|
32026
|
+
MetadataQualityComponent,
|
|
32027
|
+
ActionMenuComponent], exports: [RecordPreviewListComponent,
|
|
31621
32028
|
RecordPreviewCardComponent,
|
|
31622
32029
|
RecordPreviewTextComponent,
|
|
31623
32030
|
RecordPreviewTitleComponent,
|
|
@@ -31628,7 +32035,8 @@ class UiSearchModule {
|
|
|
31628
32035
|
ResultsHitsNumberComponent,
|
|
31629
32036
|
ResultsHitsSearchKindComponent,
|
|
31630
32037
|
RecordPreviewFeedComponent,
|
|
31631
|
-
RecordPreviewRowComponent
|
|
32038
|
+
RecordPreviewRowComponent,
|
|
32039
|
+
ActionMenuComponent] }); }
|
|
31632
32040
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiSearchModule, providers: [
|
|
31633
32041
|
provideNgIconsConfig({
|
|
31634
32042
|
size: '1.5em',
|
|
@@ -31655,7 +32063,8 @@ class UiSearchModule {
|
|
|
31655
32063
|
matHomeWorkOutline,
|
|
31656
32064
|
}),
|
|
31657
32065
|
KindBadgeComponent,
|
|
31658
|
-
MetadataQualityComponent,
|
|
32066
|
+
MetadataQualityComponent,
|
|
32067
|
+
ActionMenuComponent, FacetsModule$1] }); }
|
|
31659
32068
|
}
|
|
31660
32069
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiSearchModule, decorators: [{
|
|
31661
32070
|
type: NgModule,
|
|
@@ -31698,6 +32107,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
31698
32107
|
}),
|
|
31699
32108
|
KindBadgeComponent,
|
|
31700
32109
|
MetadataQualityComponent,
|
|
32110
|
+
ActionMenuComponent,
|
|
31701
32111
|
],
|
|
31702
32112
|
exports: [
|
|
31703
32113
|
RecordPreviewListComponent,
|
|
@@ -31712,6 +32122,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
31712
32122
|
ResultsHitsSearchKindComponent,
|
|
31713
32123
|
RecordPreviewFeedComponent,
|
|
31714
32124
|
RecordPreviewRowComponent,
|
|
32125
|
+
ActionMenuComponent,
|
|
31715
32126
|
],
|
|
31716
32127
|
providers: [
|
|
31717
32128
|
provideNgIconsConfig({
|
|
@@ -31722,70 +32133,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
31722
32133
|
}]
|
|
31723
32134
|
}] });
|
|
31724
32135
|
|
|
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
32136
|
class ResultsTableComponent {
|
|
31784
|
-
constructor(overlay, viewContainerRef, cdr, dateService) {
|
|
32137
|
+
constructor(overlay, viewContainerRef, cdr, dateService, translateService) {
|
|
31785
32138
|
this.overlay = overlay;
|
|
31786
32139
|
this.viewContainerRef = viewContainerRef;
|
|
31787
32140
|
this.cdr = cdr;
|
|
31788
32141
|
this.dateService = dateService;
|
|
32142
|
+
this.translateService = translateService;
|
|
31789
32143
|
this.records = [];
|
|
31790
32144
|
this.selectedRecordsIdentifiers = [];
|
|
31791
32145
|
this.sortOrder = null;
|
|
@@ -31906,8 +32260,18 @@ class ResultsTableComponent {
|
|
|
31906
32260
|
handleRecordSelectedChange(selected, record) {
|
|
31907
32261
|
this.recordsSelectedChange.emit([[record], selected]);
|
|
31908
32262
|
}
|
|
31909
|
-
|
|
31910
|
-
|
|
32263
|
+
isMultilingual(record) {
|
|
32264
|
+
return record.otherLanguages.length > 0;
|
|
32265
|
+
}
|
|
32266
|
+
getTxtHoverMultilingual(record) {
|
|
32267
|
+
return this.translateService.instant('dashboard.records.isMultilingual', {
|
|
32268
|
+
languages: [...[record.defaultLanguage], ...record.otherLanguages].join(', '),
|
|
32269
|
+
});
|
|
32270
|
+
}
|
|
32271
|
+
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 }); }
|
|
32272
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ResultsTableComponent, isStandalone: true, selector: "gn-ui-results-table", inputs: { records: "records", selectedRecordsIdentifiers: "selectedRecordsIdentifiers", sortOrder: "sortOrder", hasDraft: "hasDraft", canDuplicate: "canDuplicate", canDelete: "canDelete", isDraftPage: "isDraftPage", isDuplicating: "isDuplicating" }, outputs: { sortByChange: "sortByChange", recordClick: "recordClick", duplicateRecord: "duplicateRecord", deleteRecord: "deleteRecord", rollbackDraft: "rollbackDraft", recordsSelectedChange: "recordsSelectedChange" }, providers: [
|
|
32273
|
+
provideIcons({ iconoirUser, iconoirLock, iconoirTranslate, matMoreVert }),
|
|
32274
|
+
], viewQueries: [{ propertyName: "actionMenuButtons", predicate: ["actionMenuButton"], descendants: true, read: ElementRef }], ngImport: i0, template: "<gn-ui-interactive-table\n [items]=\"records\"\n [isDraftPage]=\"isDraftPage\"\n (itemClick)=\"handleRecordClick($event)\"\n>\n <!-- SELECTED COLUMN -->\n <gn-ui-interactive-table-column [width]=\"'3rem'\">\n <ng-template #cell let-item let-i=\"index\">\n <ng-icon\n name=\"iconoirLock\"\n class=\"text-purple\"\n *ngIf=\"(!item.extras?.edit && !isDraftPage) || item.kind !== 'dataset'\"\n ></ng-icon>\n <gn-ui-checkbox\n *ngIf=\"(item.extras?.edit || isDraftPage) && item.kind === 'dataset'\"\n [checked]=\"isChecked(item)\"\n (changed)=\"handleRecordSelectedChange($event, item)\"\n class=\"-m-2\"\n type=\"default\"\n ></gn-ui-checkbox>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- TITLE COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [grow]=\"true\"\n [activeSort]=\"isSortedBy('resourceTitleObject.default.keyword')\"\n (sortChange)=\"setSortBy('resourceTitleObject.default.keyword', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.title</span>\n </ng-template>\n <ng-template #cell let-item>\n <div class=\"flex flex-row items-center gap-2 max-w-full font-semibold\">\n <span data-cy=\"resultItemTitle\" class=\"overflow-hidden text-ellipsis\">{{\n item.title\n }}</span>\n <gn-ui-badge\n *ngIf=\"hasDraft(item)\"\n [style.--gn-ui-badge-padding]=\"'0.2em 0.6em'\"\n [style.--gn-ui-badge-text-size]=\"'12px'\"\n [style.--gn-ui-badge-text-color]=\"'#3d2006'\"\n [style.--gn-ui-badge-background-color]=\"'#ffbc7b'\"\n [style.--gn-ui-badge-rounded]=\"'4px'\"\n >\n <span translate>dashboard.records.hasDraft</span>\n </gn-ui-badge>\n </div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- FORMATS COLUMN -->\n <gn-ui-interactive-table-column [width]=\"'9rem'\">\n <ng-template #header>\n <span translate>record.metadata.formats</span>\n </ng-template>\n <ng-template #cell let-item>\n <div\n class=\"flex justify-start items-center gap-2 font-medium\"\n *ngIf=\"getRecordFormats(item) as formats\"\n [title]=\"formats.join(', ')\"\n >\n <span\n class=\"badge-btn min-w-[45px] text-xs text-gray-900 px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[0])\"\n *ngIf=\"formats[0]\"\n >\n {{ formats[0] }}\n </span>\n <span\n class=\"badge-btn min-w-[45px] text-xs text-gray-900 px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[1])\"\n *ngIf=\"formats[1]\"\n >\n {{ formats[1] }}\n </span>\n <div class=\"shrink-0 text-xs\" *ngIf=\"formats.slice(2).length > 0\">\n <span>+{{ formats.slice(2).length }}</span>\n </div>\n </div>\n <div *ngIf=\"!getRecordFormats(item)\"></div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- OWNER COLUMN -->\n <gn-ui-interactive-table-column\n [width]=\"'12rem'\"\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('recordOwner')\"\n (sortChange)=\"setSortBy('recordOwner', $event)\"\n >\n <ng-template #header>\n <span translate>search.filters.user</span>\n </ng-template>\n <ng-template #cell let-item>\n <ng-icon name=\"iconoirUser\" size=\"16px\"></ng-icon>\n <span data-cy=\"ownerInfo\" class=\"text-xs\">{{\n formatUserInfo(item.extras?.ownerInfo)\n }}</span>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- STATUS COLUMN -->\n <gn-ui-interactive-table-column [width]=\"'6rem'\">\n <ng-template #header>\n <span translate>record.metadata.status</span>\n </ng-template>\n <ng-template #cell let-item>\n <span class=\"text-xs\">\n {{\n (item.extras?.['isPublishedToAll']\n ? 'record.metadata.status.published'\n : 'record.metadata.status.notPublished'\n ) | translate\n }}</span\n >\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- UPDATE DATE COLUMN -->\n <gn-ui-interactive-table-column\n [width]=\"'8rem'\"\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('changeDate')\"\n (sortChange)=\"setSortBy('changeDate', $event)\"\n >\n <ng-template #header>\n <span translate>search.filters.changeDate</span>\n </ng-template>\n <ng-template #cell let-item>\n <div class=\"flex text-left w-full text-xs\">\n {{\n item.extras?.['isPublishedToAll']\n ? dateToString(item.recordUpdated)\n : '-'\n }}\n </div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- ACTION MENU COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header> </ng-template>\n <ng-template #cell let-item>\n <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 [disabled]=\"\n (!item.extras?.edit && !isDraftPage) || item.kind !== 'dataset'\n \"\n >\n <ng-icon\n [ngClass]=\"{\n 'text-purple-light':\n (!item.extras?.edit && !isDraftPage) || item.kind !== 'dataset',\n }\"\n name=\"matMoreVert\"\n ></ng-icon>\n </gn-ui-button>\n </div>\n <ng-template #template>\n <gn-ui-action-menu\n [canDuplicate]=\"canDuplicate(item) && !isDuplicating\"\n [canDelete]=\"canDelete(item)\"\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.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: UiInputsModule }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "component", type: CheckboxComponent, selector: "gn-ui-checkbox", inputs: ["type", "checked", "indeterminate"], outputs: ["changed"] }, { kind: "component", type: BadgeComponent, selector: "gn-ui-badge", inputs: ["clickable", "removable"], outputs: ["badgeRemoveClicked"] }, { kind: "component", type: InteractiveTableComponent, selector: "gn-ui-interactive-table", inputs: ["items", "isDraftPage"], outputs: ["itemClick"] }, { kind: "component", type: InteractiveTableColumnComponent, selector: "gn-ui-interactive-table-column", inputs: ["grow", "width", "sortable", "activeSort"], outputs: ["sortChange"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: ActionMenuComponent, selector: "gn-ui-action-menu", inputs: ["canDuplicate", "canDelete", "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
32275
|
}
|
|
31912
32276
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ResultsTableComponent, decorators: [{
|
|
31913
32277
|
type: Component,
|
|
@@ -31921,8 +32285,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
31921
32285
|
ActionMenuComponent,
|
|
31922
32286
|
NgIconComponent,
|
|
31923
32287
|
CdkOverlayOrigin,
|
|
31924
|
-
], providers: [
|
|
31925
|
-
|
|
32288
|
+
], providers: [
|
|
32289
|
+
provideIcons({ iconoirUser, iconoirLock, iconoirTranslate, matMoreVert }),
|
|
32290
|
+
], template: "<gn-ui-interactive-table\n [items]=\"records\"\n [isDraftPage]=\"isDraftPage\"\n (itemClick)=\"handleRecordClick($event)\"\n>\n <!-- SELECTED COLUMN -->\n <gn-ui-interactive-table-column [width]=\"'3rem'\">\n <ng-template #cell let-item let-i=\"index\">\n <ng-icon\n name=\"iconoirLock\"\n class=\"text-purple\"\n *ngIf=\"(!item.extras?.edit && !isDraftPage) || item.kind !== 'dataset'\"\n ></ng-icon>\n <gn-ui-checkbox\n *ngIf=\"(item.extras?.edit || isDraftPage) && item.kind === 'dataset'\"\n [checked]=\"isChecked(item)\"\n (changed)=\"handleRecordSelectedChange($event, item)\"\n class=\"-m-2\"\n type=\"default\"\n ></gn-ui-checkbox>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- TITLE COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [grow]=\"true\"\n [activeSort]=\"isSortedBy('resourceTitleObject.default.keyword')\"\n (sortChange)=\"setSortBy('resourceTitleObject.default.keyword', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.title</span>\n </ng-template>\n <ng-template #cell let-item>\n <div class=\"flex flex-row items-center gap-2 max-w-full font-semibold\">\n <span data-cy=\"resultItemTitle\" class=\"overflow-hidden text-ellipsis\">{{\n item.title\n }}</span>\n <gn-ui-badge\n *ngIf=\"hasDraft(item)\"\n [style.--gn-ui-badge-padding]=\"'0.2em 0.6em'\"\n [style.--gn-ui-badge-text-size]=\"'12px'\"\n [style.--gn-ui-badge-text-color]=\"'#3d2006'\"\n [style.--gn-ui-badge-background-color]=\"'#ffbc7b'\"\n [style.--gn-ui-badge-rounded]=\"'4px'\"\n >\n <span translate>dashboard.records.hasDraft</span>\n </gn-ui-badge>\n </div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- FORMATS COLUMN -->\n <gn-ui-interactive-table-column [width]=\"'9rem'\">\n <ng-template #header>\n <span translate>record.metadata.formats</span>\n </ng-template>\n <ng-template #cell let-item>\n <div\n class=\"flex justify-start items-center gap-2 font-medium\"\n *ngIf=\"getRecordFormats(item) as formats\"\n [title]=\"formats.join(', ')\"\n >\n <span\n class=\"badge-btn min-w-[45px] text-xs text-gray-900 px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[0])\"\n *ngIf=\"formats[0]\"\n >\n {{ formats[0] }}\n </span>\n <span\n class=\"badge-btn min-w-[45px] text-xs text-gray-900 px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[1])\"\n *ngIf=\"formats[1]\"\n >\n {{ formats[1] }}\n </span>\n <div class=\"shrink-0 text-xs\" *ngIf=\"formats.slice(2).length > 0\">\n <span>+{{ formats.slice(2).length }}</span>\n </div>\n </div>\n <div *ngIf=\"!getRecordFormats(item)\"></div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- OWNER COLUMN -->\n <gn-ui-interactive-table-column\n [width]=\"'12rem'\"\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('recordOwner')\"\n (sortChange)=\"setSortBy('recordOwner', $event)\"\n >\n <ng-template #header>\n <span translate>search.filters.user</span>\n </ng-template>\n <ng-template #cell let-item>\n <ng-icon name=\"iconoirUser\" size=\"16px\"></ng-icon>\n <span data-cy=\"ownerInfo\" class=\"text-xs\">{{\n formatUserInfo(item.extras?.ownerInfo)\n }}</span>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- STATUS COLUMN -->\n <gn-ui-interactive-table-column [width]=\"'6rem'\">\n <ng-template #header>\n <span translate>record.metadata.status</span>\n </ng-template>\n <ng-template #cell let-item>\n <span class=\"text-xs\">\n {{\n (item.extras?.['isPublishedToAll']\n ? 'record.metadata.status.published'\n : 'record.metadata.status.notPublished'\n ) | translate\n }}</span\n >\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- UPDATE DATE COLUMN -->\n <gn-ui-interactive-table-column\n [width]=\"'8rem'\"\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('changeDate')\"\n (sortChange)=\"setSortBy('changeDate', $event)\"\n >\n <ng-template #header>\n <span translate>search.filters.changeDate</span>\n </ng-template>\n <ng-template #cell let-item>\n <div class=\"flex text-left w-full text-xs\">\n {{\n item.extras?.['isPublishedToAll']\n ? dateToString(item.recordUpdated)\n : '-'\n }}\n </div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- ACTION MENU COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header> </ng-template>\n <ng-template #cell let-item>\n <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 [disabled]=\"\n (!item.extras?.edit && !isDraftPage) || item.kind !== 'dataset'\n \"\n >\n <ng-icon\n [ngClass]=\"{\n 'text-purple-light':\n (!item.extras?.edit && !isDraftPage) || item.kind !== 'dataset',\n }\"\n name=\"matMoreVert\"\n ></ng-icon>\n </gn-ui-button>\n </div>\n <ng-template #template>\n <gn-ui-action-menu\n [canDuplicate]=\"canDuplicate(item) && !isDuplicating\"\n [canDelete]=\"canDelete(item)\"\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"] }]
|
|
32291
|
+
}], ctorParameters: () => [{ type: i1$8.Overlay }, { type: i0.ViewContainerRef }, { type: i0.ChangeDetectorRef }, { type: DateService }, { type: i1$1.TranslateService }], propDecorators: { records: [{
|
|
31926
32292
|
type: Input
|
|
31927
32293
|
}], selectedRecordsIdentifiers: [{
|
|
31928
32294
|
type: Input
|
|
@@ -36249,6 +36615,8 @@ const closeMetadata = createAction('[Metadata view] close');
|
|
|
36249
36615
|
Related actions
|
|
36250
36616
|
*/
|
|
36251
36617
|
const setRelated = createAction('[Metadata view] Set related records', props());
|
|
36618
|
+
const setSources = createAction('[Metadata view] Set sources', props());
|
|
36619
|
+
const setSourceOf = createAction('[Metadata view] Set has sources', props());
|
|
36252
36620
|
/*
|
|
36253
36621
|
ChartConfig actions
|
|
36254
36622
|
*/
|
|
@@ -36280,7 +36648,9 @@ var mdview_actions = /*#__PURE__*/Object.freeze({
|
|
|
36280
36648
|
loadUserFeedbacksSuccess: loadUserFeedbacksSuccess,
|
|
36281
36649
|
setChartConfig: setChartConfig,
|
|
36282
36650
|
setIncompleteMetadata: setIncompleteMetadata,
|
|
36283
|
-
setRelated: setRelated
|
|
36651
|
+
setRelated: setRelated,
|
|
36652
|
+
setSourceOf: setSourceOf,
|
|
36653
|
+
setSources: setSources
|
|
36284
36654
|
});
|
|
36285
36655
|
|
|
36286
36656
|
const METADATA_VIEW_FEATURE_STATE_KEY = 'metadataView';
|
|
@@ -36323,6 +36693,12 @@ on(loadFullMetadata, (state) => ({
|
|
|
36323
36693
|
on(setRelated, (state, { related }) => ({
|
|
36324
36694
|
...state,
|
|
36325
36695
|
related,
|
|
36696
|
+
})), on(setSources, (state, { sources }) => ({
|
|
36697
|
+
...state,
|
|
36698
|
+
sources,
|
|
36699
|
+
})), on(setSourceOf, (state, { sourceOf }) => ({
|
|
36700
|
+
...state,
|
|
36701
|
+
sourceOf,
|
|
36326
36702
|
})),
|
|
36327
36703
|
/*
|
|
36328
36704
|
ChartConfig reducers
|
|
@@ -36384,6 +36760,8 @@ const getMetadataError = createSelector(getMdViewState, (state) => state.error);
|
|
|
36384
36760
|
Related selectors
|
|
36385
36761
|
*/
|
|
36386
36762
|
const getRelated = createSelector(getMdViewState, (state) => state.related);
|
|
36763
|
+
const getSources = createSelector(getMdViewState, (state) => state.sources);
|
|
36764
|
+
const getSourceOf = createSelector(getMdViewState, (state) => state.sourceOf);
|
|
36387
36765
|
/*
|
|
36388
36766
|
Metadata selectors
|
|
36389
36767
|
*/
|
|
@@ -38415,6 +38793,8 @@ class MdViewFacade {
|
|
|
38415
38793
|
}));
|
|
38416
38794
|
this.error$ = this.store.pipe(select(getMetadataError));
|
|
38417
38795
|
this.related$ = this.store.pipe(select(getRelated));
|
|
38796
|
+
this.sources$ = this.store.pipe(select(getSources));
|
|
38797
|
+
this.sourceOf$ = this.store.pipe(select(getSourceOf));
|
|
38418
38798
|
this.chartConfig$ = this.store.pipe(select(getChartConfig));
|
|
38419
38799
|
this.allLinks$ = this.metadata$.pipe(map$1((record) => 'onlineResources' in record ? record.onlineResources : []), shareReplay(1));
|
|
38420
38800
|
this.apiLinks$ = this.allLinks$.pipe(map$1((links) => links.filter((link) => this.linkClassifier.hasUsage(link, LinkUsage.API))), shareReplay(1));
|
|
@@ -38516,6 +38896,12 @@ class MdViewEffects {
|
|
|
38516
38896
|
this.loadRelatedRecords$ = createEffect(() => this.actions$.pipe(ofType(loadFullMetadataSuccess), switchMap$1(({ full }) => this.recordsRepository.getSimilarRecords(full)), map$1((related) => {
|
|
38517
38897
|
return setRelated({ related });
|
|
38518
38898
|
}), catchError((error) => of(setRelated({ related: null })))));
|
|
38899
|
+
this.loadSources$ = createEffect(() => this.actions$.pipe(ofType(loadFullMetadataSuccess), switchMap$1(({ full }) => this.recordsRepository.getSources(full)), map$1((sources) => {
|
|
38900
|
+
return setSources({ sources });
|
|
38901
|
+
}), catchError(() => of(setSources({ sources: null })))));
|
|
38902
|
+
this.loadSourceOf$ = createEffect(() => this.actions$.pipe(ofType(loadFullMetadataSuccess), switchMap$1(({ full }) => this.recordsRepository.getSourceOf(full)), map$1((sourceOf) => {
|
|
38903
|
+
return setSourceOf({ sourceOf });
|
|
38904
|
+
}), catchError(() => of(setSourceOf({ sourceOf: null })))));
|
|
38519
38905
|
/*
|
|
38520
38906
|
UserFeedback effects
|
|
38521
38907
|
*/
|
|
@@ -42726,17 +43112,256 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
42726
43112
|
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
43113
|
}], ctorParameters: () => [{ type: EditorFacade }] });
|
|
42728
43114
|
|
|
43115
|
+
const extraFlagMap = {
|
|
43116
|
+
ar: 'arab',
|
|
43117
|
+
en: 'gb',
|
|
43118
|
+
ko: 'kr',
|
|
43119
|
+
cs: 'cz',
|
|
43120
|
+
zh: 'cn',
|
|
43121
|
+
ca: 'es-ct',
|
|
43122
|
+
rm: 'ch',
|
|
43123
|
+
da: 'dk',
|
|
43124
|
+
sv: 'se',
|
|
43125
|
+
cy: 'gb-wls',
|
|
43126
|
+
hy: 'am',
|
|
43127
|
+
ka: 'ge',
|
|
43128
|
+
uk: 'ua',
|
|
43129
|
+
};
|
|
42729
43130
|
class MultilingualPanelComponent {
|
|
42730
|
-
|
|
42731
|
-
this.
|
|
43131
|
+
set record(value) {
|
|
43132
|
+
this._record = value;
|
|
43133
|
+
this.isMultilingual = value.otherLanguages.length > 0;
|
|
43134
|
+
this.editTranslations = false;
|
|
43135
|
+
this.recordLanguages = [...value.otherLanguages, value.defaultLanguage];
|
|
43136
|
+
this.selectedLanguages = this.recordLanguages;
|
|
43137
|
+
this.formLanguage = value.defaultLanguage;
|
|
43138
|
+
}
|
|
43139
|
+
constructor(facade, dialog, translateService, recordsRepository, overlay, viewContainerRef, cdr) {
|
|
43140
|
+
this.facade = facade;
|
|
43141
|
+
this.dialog = dialog;
|
|
43142
|
+
this.translateService = translateService;
|
|
43143
|
+
this.recordsRepository = recordsRepository;
|
|
43144
|
+
this.overlay = overlay;
|
|
43145
|
+
this.viewContainerRef = viewContainerRef;
|
|
43146
|
+
this.cdr = cdr;
|
|
43147
|
+
this.selectedLanguages = [];
|
|
43148
|
+
this.recordLanguages = [];
|
|
43149
|
+
this.formLanguage = '';
|
|
43150
|
+
this.isActionMenuOpen = false;
|
|
43151
|
+
this.subscription = new Subscription();
|
|
43152
|
+
this.supportedLanguages$ = this.recordsRepository
|
|
43153
|
+
.getApplicationLanguages()
|
|
43154
|
+
.pipe(map$2((languages) => this.sortLanguages(languages)));
|
|
43155
|
+
}
|
|
43156
|
+
ngOnDestroy() {
|
|
43157
|
+
this.subscription.unsubscribe();
|
|
43158
|
+
}
|
|
43159
|
+
sortLanguages(languages) {
|
|
43160
|
+
return languages
|
|
43161
|
+
.map((lang) => {
|
|
43162
|
+
const label = this.translateService.instant('language.' + lang);
|
|
43163
|
+
const isTranslated = label !== 'language.' + lang;
|
|
43164
|
+
return {
|
|
43165
|
+
lang,
|
|
43166
|
+
label,
|
|
43167
|
+
isTranslated,
|
|
43168
|
+
};
|
|
43169
|
+
})
|
|
43170
|
+
.sort((a, b) => {
|
|
43171
|
+
if (a.isTranslated && !b.isTranslated)
|
|
43172
|
+
return -1;
|
|
43173
|
+
if (!a.isTranslated && b.isTranslated)
|
|
43174
|
+
return 1;
|
|
43175
|
+
return a.label.localeCompare(b.label);
|
|
43176
|
+
})
|
|
43177
|
+
.map((item) => item.lang);
|
|
43178
|
+
}
|
|
43179
|
+
toggleLanguageSelection() {
|
|
43180
|
+
this.editTranslations = !this.editTranslations;
|
|
43181
|
+
}
|
|
43182
|
+
getIconClass(lang) {
|
|
43183
|
+
return extraFlagMap[lang]
|
|
43184
|
+
? `fi fi-${extraFlagMap[lang]} w-4 h-3`
|
|
43185
|
+
: `fi fi-${lang} w-4 h-3`;
|
|
43186
|
+
}
|
|
43187
|
+
switchMultilingual() {
|
|
43188
|
+
if (this.isMultilingual && this.selectedLanguages.length > 1) {
|
|
43189
|
+
this.confirmDeleteAction();
|
|
43190
|
+
}
|
|
43191
|
+
else {
|
|
43192
|
+
this.isMultilingual = true;
|
|
43193
|
+
this.editTranslations = true;
|
|
43194
|
+
}
|
|
42732
43195
|
}
|
|
42733
|
-
|
|
42734
|
-
|
|
43196
|
+
getExtraClass(lang) {
|
|
43197
|
+
const baseClass = 'h-[34px] w-full font-bold justify-start hover:bg-white';
|
|
43198
|
+
if (this.selectedLanguages.includes(lang)) {
|
|
43199
|
+
return `${baseClass} bg-white border border-black`;
|
|
43200
|
+
}
|
|
43201
|
+
return baseClass;
|
|
43202
|
+
}
|
|
43203
|
+
toggleLanguage(lang) {
|
|
43204
|
+
if (this.selectedLanguages.includes(lang)) {
|
|
43205
|
+
this.removeSelectedLanguage(lang);
|
|
43206
|
+
}
|
|
43207
|
+
else {
|
|
43208
|
+
this.selectedLanguages.push(lang);
|
|
43209
|
+
}
|
|
43210
|
+
}
|
|
43211
|
+
removeSelectedLanguage(lang) {
|
|
43212
|
+
this.selectedLanguages = this.selectedLanguages.filter((language) => language !== lang);
|
|
43213
|
+
}
|
|
43214
|
+
validateTranslations() {
|
|
43215
|
+
const equalLength = this.selectedLanguages.length === this.recordLanguages.length;
|
|
43216
|
+
if (this.selectedLanguages.length < this.recordLanguages.length ||
|
|
43217
|
+
(equalLength && this.selectedLanguages !== this.recordLanguages)) {
|
|
43218
|
+
this.confirmDeleteAction(this.selectedLanguages);
|
|
43219
|
+
}
|
|
43220
|
+
else {
|
|
43221
|
+
this.updateTranslations();
|
|
43222
|
+
}
|
|
43223
|
+
}
|
|
43224
|
+
updateTranslations() {
|
|
43225
|
+
this.facade.updateRecordField('otherLanguages', this.selectedLanguages.filter((lang) => lang !== this.formLanguage));
|
|
43226
|
+
this.recordLanguages = this.selectedLanguages;
|
|
43227
|
+
this.editTranslations = false;
|
|
43228
|
+
}
|
|
43229
|
+
switchFormLang(lang) {
|
|
43230
|
+
// TO IMPLEMENT FURTHER
|
|
43231
|
+
}
|
|
43232
|
+
switchDefaultLang(lang) {
|
|
43233
|
+
this.formLanguage = lang;
|
|
43234
|
+
this.facade.updateRecordField('defaultLanguage', lang);
|
|
43235
|
+
this.facade.updateRecordField('otherLanguages', this.selectedLanguages.filter((lang) => lang !== this.formLanguage));
|
|
43236
|
+
this.closeActionMenu();
|
|
43237
|
+
}
|
|
43238
|
+
confirmDeleteAction(lang) {
|
|
43239
|
+
const dialogRef = this.dialog.open(ConfirmationDialogComponent, {
|
|
43240
|
+
data: {
|
|
43241
|
+
title: this.translateService.instant('editor.record.multilingual.confirmation.title'),
|
|
43242
|
+
message: this.translateService.instant('editor.record.multilingual.confirmation.message'),
|
|
43243
|
+
confirmText: this.translateService.instant('editor.record.multilingual.confirmation.confirmText'),
|
|
43244
|
+
cancelText: this.translateService.instant('editor.record.multilingual.confirmation.cancelText'),
|
|
43245
|
+
},
|
|
43246
|
+
restoreFocus: true,
|
|
43247
|
+
});
|
|
43248
|
+
this.subscription.add(dialogRef.afterClosed().subscribe((confirmed) => {
|
|
43249
|
+
if (confirmed) {
|
|
43250
|
+
if (lang) {
|
|
43251
|
+
if (!Array.isArray(lang)) {
|
|
43252
|
+
this.removeSelectedLanguage(lang);
|
|
43253
|
+
this.closeActionMenu();
|
|
43254
|
+
}
|
|
43255
|
+
this.updateTranslations();
|
|
43256
|
+
}
|
|
43257
|
+
else {
|
|
43258
|
+
this.facade.updateRecordField('otherLanguages', []);
|
|
43259
|
+
this.isMultilingual = false;
|
|
43260
|
+
this.selectedLanguages = [];
|
|
43261
|
+
}
|
|
43262
|
+
}
|
|
43263
|
+
else {
|
|
43264
|
+
this.isMultilingual = true;
|
|
43265
|
+
this.selectedLanguages = this.recordLanguages;
|
|
43266
|
+
}
|
|
43267
|
+
this.editTranslations = false;
|
|
43268
|
+
}));
|
|
43269
|
+
}
|
|
43270
|
+
isFirstUnsupported(index) {
|
|
43271
|
+
const langs = this.sortLanguages(this.recordLanguages);
|
|
43272
|
+
return (langs[index].length === 3 &&
|
|
43273
|
+
langs.slice(0, index).every((lang) => lang.length !== 3));
|
|
43274
|
+
}
|
|
43275
|
+
isLangSupported(lang) {
|
|
43276
|
+
return lang.length === 2;
|
|
43277
|
+
}
|
|
43278
|
+
getToggleTitle(lang) {
|
|
43279
|
+
if (lang === this._record.defaultLanguage) {
|
|
43280
|
+
return this.translateService.instant('editor.record.form.multilingual.forbidden');
|
|
43281
|
+
}
|
|
43282
|
+
return '';
|
|
43283
|
+
}
|
|
43284
|
+
openActionMenu(item, template) {
|
|
43285
|
+
this.isActionMenuOpen = true;
|
|
43286
|
+
const index = this.sortLanguages(this.selectedLanguages).indexOf(item);
|
|
43287
|
+
const buttonElement = this.actionMenuButtons.toArray()[index];
|
|
43288
|
+
const positionStrategy = this.overlay
|
|
43289
|
+
.position()
|
|
43290
|
+
.flexibleConnectedTo(buttonElement)
|
|
43291
|
+
.withFlexibleDimensions(true)
|
|
43292
|
+
.withPush(true)
|
|
43293
|
+
.withPositions([
|
|
43294
|
+
{
|
|
43295
|
+
originX: 'end',
|
|
43296
|
+
originY: 'bottom',
|
|
43297
|
+
overlayX: 'end',
|
|
43298
|
+
overlayY: 'top',
|
|
43299
|
+
},
|
|
43300
|
+
{
|
|
43301
|
+
originX: 'end',
|
|
43302
|
+
originY: 'top',
|
|
43303
|
+
overlayX: 'end',
|
|
43304
|
+
overlayY: 'bottom',
|
|
43305
|
+
},
|
|
43306
|
+
]);
|
|
43307
|
+
this.overlayRef = this.overlay.create({
|
|
43308
|
+
hasBackdrop: true,
|
|
43309
|
+
backdropClass: 'cdk-overlay-transparent-backdrop',
|
|
43310
|
+
positionStrategy: positionStrategy,
|
|
43311
|
+
scrollStrategy: this.overlay.scrollStrategies.reposition(),
|
|
43312
|
+
});
|
|
43313
|
+
const portal = new TemplatePortal(template, this.viewContainerRef);
|
|
43314
|
+
this.overlayRef.attach(portal);
|
|
43315
|
+
this.subscription.add(this.overlayRef.backdropClick().subscribe(() => {
|
|
43316
|
+
this.closeActionMenu();
|
|
43317
|
+
}));
|
|
43318
|
+
}
|
|
43319
|
+
closeActionMenu() {
|
|
43320
|
+
if (this.overlayRef) {
|
|
43321
|
+
this.isActionMenuOpen = false;
|
|
43322
|
+
this.overlayRef.dispose();
|
|
43323
|
+
this.cdr.markForCheck();
|
|
43324
|
+
}
|
|
43325
|
+
}
|
|
43326
|
+
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 }); }
|
|
43327
|
+
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: [
|
|
43328
|
+
provideIcons({
|
|
43329
|
+
iconoirSettings,
|
|
43330
|
+
matMoreHorizOutline,
|
|
43331
|
+
iconoirCheckCircle,
|
|
43332
|
+
iconoirCircle,
|
|
43333
|
+
}),
|
|
43334
|
+
provideNgIconsConfig({
|
|
43335
|
+
size: '1.25em',
|
|
43336
|
+
}),
|
|
43337
|
+
], 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", "canDelete", "page"], outputs: ["duplicate", "delete", "closeActionMenu", "rollback", "switch"] }] }); }
|
|
42735
43338
|
}
|
|
42736
43339
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MultilingualPanelComponent, decorators: [{
|
|
42737
43340
|
type: Component,
|
|
42738
|
-
args: [{ selector: 'gn-ui-multilingual-panel', standalone: true, imports: [
|
|
42739
|
-
|
|
43341
|
+
args: [{ selector: 'gn-ui-multilingual-panel', standalone: true, imports: [
|
|
43342
|
+
CommonModule,
|
|
43343
|
+
CheckToggleComponent,
|
|
43344
|
+
TranslateModule,
|
|
43345
|
+
ButtonComponent,
|
|
43346
|
+
NgIconComponent,
|
|
43347
|
+
ActionMenuComponent,
|
|
43348
|
+
], providers: [
|
|
43349
|
+
provideIcons({
|
|
43350
|
+
iconoirSettings,
|
|
43351
|
+
matMoreHorizOutline,
|
|
43352
|
+
iconoirCheckCircle,
|
|
43353
|
+
iconoirCircle,
|
|
43354
|
+
}),
|
|
43355
|
+
provideNgIconsConfig({
|
|
43356
|
+
size: '1.25em',
|
|
43357
|
+
}),
|
|
43358
|
+
], 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" }]
|
|
43359
|
+
}], 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: [{
|
|
43360
|
+
type: Input
|
|
43361
|
+
}], actionMenuButtons: [{
|
|
43362
|
+
type: ViewChildren,
|
|
43363
|
+
args: ['actionMenuButton', { read: ElementRef }]
|
|
43364
|
+
}] } });
|
|
42740
43365
|
|
|
42741
43366
|
const ROUTER_STATE_KEY = 'router';
|
|
42742
43367
|
const ROUTER_ROUTE_SEARCH = 'search';
|
|
@@ -43182,5 +43807,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
43182
43807
|
* Generated bundle index. Do not edit.
|
|
43183
43808
|
*/
|
|
43184
43809
|
|
|
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 };
|
|
43810
|
+
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
43811
|
//# sourceMappingURL=geonetwork-ui.mjs.map
|