geonetwork-ui 2.4.0-dev.9075aa64 → 2.4.0-dev.9b37393d
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/index.mjs +2 -1
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.mjs +3 -3
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/write-parts.mjs +1 -16
- package/esm2022/libs/api/metadata-converter/src/lib/xml-utils.mjs +18 -2
- package/esm2022/libs/api/repository/src/lib/gn4/gn4-repository.mjs +78 -39
- package/esm2022/libs/common/domain/src/lib/repository/records-repository.interface.mjs +1 -1
- package/esm2022/libs/feature/editor/src/index.mjs +2 -1
- package/esm2022/libs/feature/editor/src/lib/components/contact-card/contact-card.component.mjs +4 -16
- package/esm2022/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.mjs +4 -2
- package/esm2022/libs/feature/editor/src/lib/components/import-record/import-record.component.mjs +93 -0
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.mjs +6 -3
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-date-updated/form-field-date-updated.component.mjs +19 -0
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.mjs +23 -10
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-license/form-field-license.component.mjs +3 -3
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.mjs +3 -3
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.mjs +4 -8
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.mjs +10 -7
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.mjs +6 -3
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.mjs +3 -3
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.mjs +5 -5
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/index.mjs +2 -2
- package/esm2022/libs/feature/editor/src/lib/components/record-form/record-form.component.mjs +3 -3
- package/esm2022/libs/feature/editor/src/lib/fields.config.mjs +6 -4
- package/esm2022/libs/feature/editor/src/lib/models/editor-config.model.mjs +1 -1
- package/esm2022/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.mjs +3 -3
- package/esm2022/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.mjs +6 -6
- package/esm2022/libs/ui/inputs/src/index.mjs +2 -1
- package/esm2022/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.mjs +7 -4
- package/esm2022/libs/ui/inputs/src/lib/badge/badge.component.mjs +5 -3
- package/esm2022/libs/ui/inputs/src/lib/button/button.component.mjs +8 -1
- package/esm2022/libs/ui/inputs/src/lib/date-picker/date-picker.component.mjs +11 -4
- package/esm2022/libs/ui/inputs/src/lib/date-range-picker/date-range-picker.component.mjs +9 -3
- package/esm2022/libs/ui/inputs/src/lib/file-input/file-input.component.mjs +3 -3
- package/esm2022/libs/ui/inputs/src/lib/image-input/image-input.component.mjs +3 -3
- package/esm2022/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.mjs +3 -3
- package/esm2022/libs/ui/inputs/src/lib/url-input/url-input.component.mjs +3 -3
- package/esm2022/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.mjs +5 -3
- package/esm2022/libs/util/shared/src/lib/services/theme.service.mjs +2 -1
- package/esm2022/translations/de.json +9 -0
- package/esm2022/translations/en.json +9 -0
- package/esm2022/translations/es.json +9 -0
- package/esm2022/translations/fr.json +9 -0
- package/esm2022/translations/it.json +9 -0
- package/esm2022/translations/nl.json +9 -0
- package/esm2022/translations/pt.json +9 -0
- package/fesm2022/geonetwork-ui.mjs +388 -186
- package/fesm2022/geonetwork-ui.mjs.map +1 -1
- package/libs/api/metadata-converter/src/index.d.ts +1 -0
- package/libs/api/metadata-converter/src/index.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts +0 -1
- package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/xml-utils.d.ts +6 -0
- package/libs/api/metadata-converter/src/lib/xml-utils.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts +12 -7
- 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 +7 -0
- package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts.map +1 -1
- package/libs/feature/editor/src/index.d.ts +1 -0
- package/libs/feature/editor/src/index.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/contact-card/contact-card.component.d.ts +1 -5
- package/libs/feature/editor/src/lib/components/contact-card/contact-card.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.d.ts +2 -1
- package/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/import-record/import-record.component.d.ts +33 -0
- package/libs/feature/editor/src/lib/components/import-record/import-record.component.d.ts.map +1 -0
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-date-updated/form-field-date-updated.component.d.ts +9 -0
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-date-updated/form-field-date-updated.component.d.ts.map +1 -0
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.d.ts +5 -2
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.d.ts +1 -3
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/index.d.ts +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/index.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/fields.config.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/models/editor-config.model.d.ts +1 -0
- package/libs/feature/editor/src/lib/models/editor-config.model.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts +1 -1
- package/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.d.ts +2 -2
- package/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts +1 -1
- package/libs/ui/inputs/src/index.d.ts +1 -0
- package/libs/ui/inputs/src/index.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/badge/badge.component.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/button/button.component.d.ts +1 -1
- package/libs/ui/inputs/src/lib/button/button.component.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/date-picker/date-picker.component.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/date-range-picker/date-range-picker.component.d.ts.map +1 -1
- package/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.d.ts +2 -2
- package/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.d.ts.map +1 -1
- package/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.d.ts +1 -1
- package/libs/ui/search/src/lib/results-table/results-table.component.d.ts +1 -1
- package/libs/util/shared/src/lib/services/theme.service.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/libs/api/metadata-converter/src/index.ts +1 -0
- package/src/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.ts +1 -2
- package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +0 -27
- package/src/libs/api/metadata-converter/src/lib/xml-utils.ts +20 -1
- package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +132 -68
- package/src/libs/common/domain/src/lib/repository/records-repository.interface.ts +10 -0
- package/src/libs/feature/editor/src/index.ts +1 -0
- package/src/libs/feature/editor/src/lib/components/contact-card/contact-card.component.html +12 -22
- package/src/libs/feature/editor/src/lib/components/contact-card/contact-card.component.ts +1 -13
- package/src/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.ts +1 -0
- package/src/libs/feature/editor/src/lib/components/import-record/import-record.component.html +43 -0
- package/src/libs/feature/editor/src/lib/components/import-record/import-record.component.ts +129 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.css +4 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.html +13 -33
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.ts +2 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-date-updated/form-field-date-updated.component.css +0 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/{form-field-resource-updated/form-field-resource-updated.component.ts → form-field-date-updated/form-field-date-updated.component.ts} +4 -4
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.html +3 -2
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.ts +35 -3
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-license/form-field-license.component.css +8 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.html +1 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.html +13 -6
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.ts +0 -9
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.html +1 -1
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.ts +16 -5
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.css +4 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.html +2 -1
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.ts +2 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.css +4 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.html +16 -14
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.html +19 -20
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.ts +2 -2
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/index.ts +1 -1
- package/src/libs/feature/editor/src/lib/components/record-form/record-form.component.html +30 -29
- package/src/libs/feature/editor/src/lib/fields.config.ts +5 -3
- package/src/libs/feature/editor/src/lib/models/editor-config.model.ts +3 -0
- package/src/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.html +1 -0
- package/src/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.html +13 -20
- package/src/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.ts +1 -1
- package/src/libs/ui/inputs/src/index.ts +1 -0
- package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.css +25 -18
- package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.html +38 -24
- package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.ts +4 -1
- package/src/libs/ui/inputs/src/lib/badge/badge.component.html +12 -3
- package/src/libs/ui/inputs/src/lib/badge/badge.component.ts +2 -1
- package/src/libs/ui/inputs/src/lib/button/button.component.ts +15 -1
- package/src/libs/ui/inputs/src/lib/date-picker/date-picker.component.css +7 -2
- package/src/libs/ui/inputs/src/lib/date-picker/date-picker.component.html +13 -6
- package/src/libs/ui/inputs/src/lib/date-picker/date-picker.component.ts +7 -1
- package/src/libs/ui/inputs/src/lib/date-range-picker/date-range-picker.component.css +7 -2
- package/src/libs/ui/inputs/src/lib/date-range-picker/date-range-picker.component.html +27 -23
- package/src/libs/ui/inputs/src/lib/date-range-picker/date-range-picker.component.ts +7 -1
- package/src/libs/ui/inputs/src/lib/file-input/file-input.component.css +4 -0
- package/src/libs/ui/inputs/src/lib/file-input/file-input.component.html +6 -2
- package/src/libs/ui/inputs/src/lib/image-input/image-input.component.css +4 -0
- package/src/libs/ui/inputs/src/lib/image-input/image-input.component.html +29 -21
- package/src/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.css +4 -3
- package/src/libs/ui/inputs/src/lib/url-input/url-input.component.html +1 -1
- package/src/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.html +8 -3
- package/src/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.ts +4 -3
- package/src/libs/util/shared/src/lib/services/theme.service.ts +1 -0
- package/tailwind.base.config.js +1 -0
- package/tailwind.base.css +30 -4
- package/translations/de.json +9 -0
- package/translations/en.json +9 -0
- package/translations/es.json +9 -0
- package/translations/fr.json +9 -0
- package/translations/it.json +9 -0
- package/translations/nl.json +9 -0
- package/translations/pt.json +9 -0
- package/translations/sk.json +9 -0
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-resource-updated/form-field-resource-updated.component.mjs +0 -19
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-resource-updated/form-field-resource-updated.component.d.ts +0 -9
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-resource-updated/form-field-resource-updated.component.d.ts.map +0 -1
- /package/src/libs/feature/editor/src/lib/components/{record-form/form-field/form-field-resource-updated/form-field-resource-updated.component.css → import-record/import-record.component.css} +0 -0
- /package/src/libs/feature/editor/src/lib/components/record-form/form-field/{form-field-resource-updated/form-field-resource-updated.component.html → form-field-date-updated/form-field-date-updated.component.html} +0 -0
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { parseXml, XmlDocument, XmlElement, XmlText } from '@rgrove/parse-xml';
|
|
2
|
+
export { XmlDocument, XmlElement } from '@rgrove/parse-xml';
|
|
2
3
|
import GML32 from 'ol/format/GML32';
|
|
3
4
|
import GeoJSON from 'ol/format/GeoJSON';
|
|
4
5
|
import { parse as parse$1 } from 'ol/xml';
|
|
@@ -15,7 +16,7 @@ import { map as map$1, catchError, tap as tap$1, shareReplay, filter, startWith,
|
|
|
15
16
|
import { marker } from '@biesbjerg/ngx-translate-extract-marker';
|
|
16
17
|
import * as i1$3 from '@angular/common';
|
|
17
18
|
import { CommonModule, NgOptimizedImage, NgForOf } from '@angular/common';
|
|
18
|
-
import { of, map as map$2, lastValueFrom, Subject, switchMap,
|
|
19
|
+
import { of, map as map$2, lastValueFrom, Subject, switchMap, combineLatest, exhaustMap, throwError, from, takeLast, forkJoin, firstValueFrom, merge, BehaviorSubject, fromEvent, timer, animationFrameScheduler, ReplaySubject, Subscription, first, distinctUntilChanged as distinctUntilChanged$1, filter as filter$1, tap as tap$2, Observable, buffer, debounceTime as debounceTime$1, combineLatestWith, catchError as catchError$1, takeUntil, EMPTY, mergeMap as mergeMap$1, withLatestFrom as withLatestFrom$1, shareReplay as shareReplay$1, startWith as startWith$1, pairwise as pairwise$1 } from 'rxjs';
|
|
19
20
|
import { valid, coerce, satisfies, ltr } from 'semver';
|
|
20
21
|
import * as i1$2 from '@ngrx/store';
|
|
21
22
|
import { createAction, props, createReducer, on, createFeatureSelector, createSelector, select, StoreModule, Store } from '@ngrx/store';
|
|
@@ -213,7 +214,8 @@ function createDocument(rootEl) {
|
|
|
213
214
|
if (rootEl.attributes[`xmlns:${namespace}`])
|
|
214
215
|
return;
|
|
215
216
|
if (!NAMESPACES[namespace]) {
|
|
216
|
-
|
|
217
|
+
// the namespace is unknown but it might still be declared correctly: ignore it
|
|
218
|
+
return;
|
|
217
219
|
}
|
|
218
220
|
rootEl.attributes[`xmlns:${namespace}`] = NAMESPACES[namespace];
|
|
219
221
|
}
|
|
@@ -551,6 +553,21 @@ function renameElements(rootElement, replaceMap) {
|
|
|
551
553
|
doReplace(rootElement);
|
|
552
554
|
return rootElement;
|
|
553
555
|
}
|
|
556
|
+
/**
|
|
557
|
+
* This function use the DOMParser to check if the given xmlString is a valid XML file or throw an error
|
|
558
|
+
* (Generated by chatGPT)
|
|
559
|
+
* @param xmlString
|
|
560
|
+
*/
|
|
561
|
+
function assertValidXml(xmlString) {
|
|
562
|
+
const parser = new DOMParser();
|
|
563
|
+
const xmlDoc = parser.parseFromString(xmlString, 'application/xml');
|
|
564
|
+
const parserError = xmlDoc.querySelector('parsererror');
|
|
565
|
+
if (parserError) {
|
|
566
|
+
console.error(parserError);
|
|
567
|
+
throw new Error('File is not a valid XML.');
|
|
568
|
+
}
|
|
569
|
+
return xmlDoc;
|
|
570
|
+
}
|
|
554
571
|
|
|
555
572
|
function matchProtocol(protocol) {
|
|
556
573
|
if (/wms/i.test(protocol))
|
|
@@ -1437,21 +1454,6 @@ function writeUniqueIdentifier$1(record, rootEl) {
|
|
|
1437
1454
|
function writeKind$1(record, rootEl) {
|
|
1438
1455
|
pipe(findNestedChildOrCreate('gmd:hierarchyLevel', 'gmd:MD_ScopeCode'), addAttribute('codeList', 'http://standards.iso.org/iso/19139/resources/gmxCodelists.xml#MD_ScopeCode'), addAttribute('codeListValue', record.kind))(rootEl);
|
|
1439
1456
|
}
|
|
1440
|
-
function writeOwnerOrganization$1(record, rootEl) {
|
|
1441
|
-
// if no contact matches the owner org, create an empty one
|
|
1442
|
-
const ownerContact = record.contacts.find((contact) => contact.organization.name === record.ownerOrganization.name);
|
|
1443
|
-
pipe(findChildOrCreate('gmd:contact'), removeAllChildren(), appendResponsibleParty$1(ownerContact
|
|
1444
|
-
? {
|
|
1445
|
-
...ownerContact,
|
|
1446
|
-
// owner responsible party is always point of contact
|
|
1447
|
-
role: 'point_of_contact',
|
|
1448
|
-
}
|
|
1449
|
-
: {
|
|
1450
|
-
organization: record.ownerOrganization,
|
|
1451
|
-
email: '',
|
|
1452
|
-
role: 'point_of_contact',
|
|
1453
|
-
}))(rootEl);
|
|
1454
|
-
}
|
|
1455
1457
|
function writeRecordUpdated$1(record, rootEl) {
|
|
1456
1458
|
pipe(findChildOrCreate('gmd:dateStamp'), removeAllChildren(), writeDateTime(record.recordUpdated))(rootEl);
|
|
1457
1459
|
}
|
|
@@ -1633,7 +1635,7 @@ class Iso19139Converter extends BaseConverter {
|
|
|
1633
1635
|
this.writers = {
|
|
1634
1636
|
uniqueIdentifier: writeUniqueIdentifier$1,
|
|
1635
1637
|
kind: writeKind$1,
|
|
1636
|
-
ownerOrganization:
|
|
1638
|
+
ownerOrganization: () => undefined,
|
|
1637
1639
|
recordUpdated: writeRecordUpdated$1,
|
|
1638
1640
|
recordCreated: () => undefined,
|
|
1639
1641
|
recordPublished: () => undefined,
|
|
@@ -17429,6 +17431,10 @@ var de = {
|
|
|
17429
17431
|
"dashboard.catalog.discussion": "Diskussion",
|
|
17430
17432
|
"dashboard.catalog.thesaurus": "Thesaurus",
|
|
17431
17433
|
"dashboard.createRecord": "Neuer Eintrag",
|
|
17434
|
+
"dashboard.importRecord": "",
|
|
17435
|
+
"dashboard.importRecord.importExternal": "",
|
|
17436
|
+
"dashboard.importRecord.importExternalLabel": "",
|
|
17437
|
+
"dashboard.importRecord.useModel": "",
|
|
17432
17438
|
"dashboard.labels.catalog": "Katalog",
|
|
17433
17439
|
"dashboard.labels.mySpace": "Mein Bereich",
|
|
17434
17440
|
"dashboard.records.all": "Katalog",
|
|
@@ -17591,6 +17597,7 @@ var de = {
|
|
|
17591
17597
|
"downloads.format.unknown": "unbekannt",
|
|
17592
17598
|
"downloads.wfs.featuretype.not.found": "Der Layer wurde nicht gefunden",
|
|
17593
17599
|
dropFile: dropFile$6,
|
|
17600
|
+
"editor.form.keywords.placeholder": "",
|
|
17594
17601
|
"editor.form.placeKeywordWithoutExtent": "",
|
|
17595
17602
|
"editor.record.delete.confirmation.cancelText": "Stornieren",
|
|
17596
17603
|
"editor.record.delete.confirmation.confirmText": "Löschen",
|
|
@@ -17655,6 +17662,10 @@ var de = {
|
|
|
17655
17662
|
"editor.record.form.temporalExtents.date": "Datum",
|
|
17656
17663
|
"editor.record.form.temporalExtents.range": "Datumsbereich",
|
|
17657
17664
|
"editor.record.form.updateFrequency.planned": "Die Daten sollten regelmäßig aktualisiert werden.",
|
|
17665
|
+
"editor.record.importFromExternalFile.failure.body": "",
|
|
17666
|
+
"editor.record.importFromExternalFile.failure.title": "",
|
|
17667
|
+
"editor.record.importFromExternalFile.success.body": "",
|
|
17668
|
+
"editor.record.importFromExternalFile.success.title": "",
|
|
17658
17669
|
"editor.record.loadError.body": "Der Datensatz konnte nicht geladen werden:",
|
|
17659
17670
|
"editor.record.loadError.closeMessage": "Verstanden",
|
|
17660
17671
|
"editor.record.loadError.title": "Fehler beim Laden des Datensatzes",
|
|
@@ -17949,6 +17960,10 @@ var en = {
|
|
|
17949
17960
|
"dashboard.catalog.discussion": "Discussion",
|
|
17950
17961
|
"dashboard.catalog.thesaurus": "Thesaurus",
|
|
17951
17962
|
"dashboard.createRecord": "New record",
|
|
17963
|
+
"dashboard.importRecord": "Import",
|
|
17964
|
+
"dashboard.importRecord.importExternal": "Import an external file",
|
|
17965
|
+
"dashboard.importRecord.importExternalLabel": "External file URL",
|
|
17966
|
+
"dashboard.importRecord.useModel": "Use a model",
|
|
17952
17967
|
"dashboard.labels.catalog": "Catalog",
|
|
17953
17968
|
"dashboard.labels.mySpace": "My space",
|
|
17954
17969
|
"dashboard.records.all": "Metadata records",
|
|
@@ -18111,6 +18126,7 @@ var en = {
|
|
|
18111
18126
|
"downloads.format.unknown": "unknown",
|
|
18112
18127
|
"downloads.wfs.featuretype.not.found": "The layer was not found",
|
|
18113
18128
|
dropFile: dropFile$5,
|
|
18129
|
+
"editor.form.keywords.placeholder": "Select a keyword",
|
|
18114
18130
|
"editor.form.placeKeywordWithoutExtent": "This keyword is not associated with a geographical extent",
|
|
18115
18131
|
"editor.record.delete.confirmation.cancelText": "Cancel",
|
|
18116
18132
|
"editor.record.delete.confirmation.confirmText": "Delete",
|
|
@@ -18175,6 +18191,10 @@ var en = {
|
|
|
18175
18191
|
"editor.record.form.temporalExtents.date": "Date",
|
|
18176
18192
|
"editor.record.form.temporalExtents.range": "Date range",
|
|
18177
18193
|
"editor.record.form.updateFrequency.planned": "The data should be updated regularly.",
|
|
18194
|
+
"editor.record.importFromExternalFile.failure.body": "Failure",
|
|
18195
|
+
"editor.record.importFromExternalFile.failure.title": "The import of the record has failed: ",
|
|
18196
|
+
"editor.record.importFromExternalFile.success.body": "Import succesful",
|
|
18197
|
+
"editor.record.importFromExternalFile.success.title": "The record has been succefuly imported.",
|
|
18178
18198
|
"editor.record.loadError.body": "The record could not be loaded:",
|
|
18179
18199
|
"editor.record.loadError.closeMessage": "Understood",
|
|
18180
18200
|
"editor.record.loadError.title": "Error loading record",
|
|
@@ -18469,6 +18489,10 @@ var es = {
|
|
|
18469
18489
|
"dashboard.catalog.discussion": "",
|
|
18470
18490
|
"dashboard.catalog.thesaurus": "",
|
|
18471
18491
|
"dashboard.createRecord": "",
|
|
18492
|
+
"dashboard.importRecord": "",
|
|
18493
|
+
"dashboard.importRecord.importExternal": "",
|
|
18494
|
+
"dashboard.importRecord.importExternalLabel": "",
|
|
18495
|
+
"dashboard.importRecord.useModel": "",
|
|
18472
18496
|
"dashboard.labels.catalog": "Catálogo",
|
|
18473
18497
|
"dashboard.labels.mySpace": "Mi espacio",
|
|
18474
18498
|
"dashboard.records.all": "Catálogo",
|
|
@@ -18631,6 +18655,7 @@ var es = {
|
|
|
18631
18655
|
"downloads.format.unknown": "",
|
|
18632
18656
|
"downloads.wfs.featuretype.not.found": "",
|
|
18633
18657
|
dropFile: dropFile$4,
|
|
18658
|
+
"editor.form.keywords.placeholder": "",
|
|
18634
18659
|
"editor.form.placeKeywordWithoutExtent": "",
|
|
18635
18660
|
"editor.record.delete.confirmation.cancelText": "",
|
|
18636
18661
|
"editor.record.delete.confirmation.confirmText": "",
|
|
@@ -18695,6 +18720,10 @@ var es = {
|
|
|
18695
18720
|
"editor.record.form.temporalExtents.date": "",
|
|
18696
18721
|
"editor.record.form.temporalExtents.range": "",
|
|
18697
18722
|
"editor.record.form.updateFrequency.planned": "",
|
|
18723
|
+
"editor.record.importFromExternalFile.failure.body": "",
|
|
18724
|
+
"editor.record.importFromExternalFile.failure.title": "",
|
|
18725
|
+
"editor.record.importFromExternalFile.success.body": "",
|
|
18726
|
+
"editor.record.importFromExternalFile.success.title": "",
|
|
18698
18727
|
"editor.record.loadError.body": "",
|
|
18699
18728
|
"editor.record.loadError.closeMessage": "",
|
|
18700
18729
|
"editor.record.loadError.title": "",
|
|
@@ -18989,6 +19018,10 @@ var fr = {
|
|
|
18989
19018
|
"dashboard.catalog.discussion": "Discussions",
|
|
18990
19019
|
"dashboard.catalog.thesaurus": "Thesaurus",
|
|
18991
19020
|
"dashboard.createRecord": "Nouvel enregistrement",
|
|
19021
|
+
"dashboard.importRecord": "Importer",
|
|
19022
|
+
"dashboard.importRecord.importExternal": "Importer une fiche externe",
|
|
19023
|
+
"dashboard.importRecord.importExternalLabel": "URL de la fiche externe",
|
|
19024
|
+
"dashboard.importRecord.useModel": "Utiliser un modele",
|
|
18992
19025
|
"dashboard.labels.catalog": "Catalogue",
|
|
18993
19026
|
"dashboard.labels.mySpace": "Mon espace",
|
|
18994
19027
|
"dashboard.records.all": "Catalogue",
|
|
@@ -19151,6 +19184,7 @@ var fr = {
|
|
|
19151
19184
|
"downloads.format.unknown": "inconnu",
|
|
19152
19185
|
"downloads.wfs.featuretype.not.found": "La couche n'a pas été retrouvée",
|
|
19153
19186
|
dropFile: dropFile$3,
|
|
19187
|
+
"editor.form.keywords.placeholder": "Sélectionner un mot-clé",
|
|
19154
19188
|
"editor.form.placeKeywordWithoutExtent": "Ce mot-clé n'a pas de localisation géographique associée",
|
|
19155
19189
|
"editor.record.delete.confirmation.cancelText": "Annuler",
|
|
19156
19190
|
"editor.record.delete.confirmation.confirmText": "Supprimer",
|
|
@@ -19215,6 +19249,10 @@ var fr = {
|
|
|
19215
19249
|
"editor.record.form.temporalExtents.date": "Date concernée",
|
|
19216
19250
|
"editor.record.form.temporalExtents.range": "Période concernée",
|
|
19217
19251
|
"editor.record.form.updateFrequency.planned": "Ces données doivent être mise à jour régulièrement.",
|
|
19252
|
+
"editor.record.importFromExternalFile.failure.body": "Une erreur est survenue pendant l'import de la fiche: ",
|
|
19253
|
+
"editor.record.importFromExternalFile.failure.title": "Erreur",
|
|
19254
|
+
"editor.record.importFromExternalFile.success.body": "L'import de la fiche de metadonnée à été realisée avec succès.",
|
|
19255
|
+
"editor.record.importFromExternalFile.success.title": "Import reussi",
|
|
19218
19256
|
"editor.record.loadError.body": "La fiche n'a pas pu être chargée :",
|
|
19219
19257
|
"editor.record.loadError.closeMessage": "Compris",
|
|
19220
19258
|
"editor.record.loadError.title": "Erreur lors du chargement",
|
|
@@ -19509,6 +19547,10 @@ var it = {
|
|
|
19509
19547
|
"dashboard.catalog.discussion": "",
|
|
19510
19548
|
"dashboard.catalog.thesaurus": "",
|
|
19511
19549
|
"dashboard.createRecord": "Crea un record",
|
|
19550
|
+
"dashboard.importRecord": "",
|
|
19551
|
+
"dashboard.importRecord.importExternal": "",
|
|
19552
|
+
"dashboard.importRecord.importExternalLabel": "",
|
|
19553
|
+
"dashboard.importRecord.useModel": "",
|
|
19512
19554
|
"dashboard.labels.catalog": "Catalogo",
|
|
19513
19555
|
"dashboard.labels.mySpace": "Il mio spazio",
|
|
19514
19556
|
"dashboard.records.all": "Catalogo",
|
|
@@ -19671,6 +19713,7 @@ var it = {
|
|
|
19671
19713
|
"downloads.format.unknown": "sconosciuto",
|
|
19672
19714
|
"downloads.wfs.featuretype.not.found": "Il layer non è stato trovato",
|
|
19673
19715
|
dropFile: dropFile$2,
|
|
19716
|
+
"editor.form.keywords.placeholder": "",
|
|
19674
19717
|
"editor.form.placeKeywordWithoutExtent": "",
|
|
19675
19718
|
"editor.record.delete.confirmation.cancelText": "",
|
|
19676
19719
|
"editor.record.delete.confirmation.confirmText": "",
|
|
@@ -19735,6 +19778,10 @@ var it = {
|
|
|
19735
19778
|
"editor.record.form.temporalExtents.date": "",
|
|
19736
19779
|
"editor.record.form.temporalExtents.range": "",
|
|
19737
19780
|
"editor.record.form.updateFrequency.planned": "",
|
|
19781
|
+
"editor.record.importFromExternalFile.failure.body": "",
|
|
19782
|
+
"editor.record.importFromExternalFile.failure.title": "",
|
|
19783
|
+
"editor.record.importFromExternalFile.success.body": "",
|
|
19784
|
+
"editor.record.importFromExternalFile.success.title": "",
|
|
19738
19785
|
"editor.record.loadError.body": "",
|
|
19739
19786
|
"editor.record.loadError.closeMessage": "",
|
|
19740
19787
|
"editor.record.loadError.title": "",
|
|
@@ -20029,6 +20076,10 @@ var nl = {
|
|
|
20029
20076
|
"dashboard.catalog.discussion": "",
|
|
20030
20077
|
"dashboard.catalog.thesaurus": "",
|
|
20031
20078
|
"dashboard.createRecord": "",
|
|
20079
|
+
"dashboard.importRecord": "",
|
|
20080
|
+
"dashboard.importRecord.importExternal": "",
|
|
20081
|
+
"dashboard.importRecord.importExternalLabel": "",
|
|
20082
|
+
"dashboard.importRecord.useModel": "",
|
|
20032
20083
|
"dashboard.labels.catalog": "Catalogus",
|
|
20033
20084
|
"dashboard.labels.mySpace": "Mijn ruimte",
|
|
20034
20085
|
"dashboard.records.all": "Catalogus",
|
|
@@ -20191,6 +20242,7 @@ var nl = {
|
|
|
20191
20242
|
"downloads.format.unknown": "",
|
|
20192
20243
|
"downloads.wfs.featuretype.not.found": "",
|
|
20193
20244
|
dropFile: dropFile$1,
|
|
20245
|
+
"editor.form.keywords.placeholder": "",
|
|
20194
20246
|
"editor.form.placeKeywordWithoutExtent": "",
|
|
20195
20247
|
"editor.record.delete.confirmation.cancelText": "",
|
|
20196
20248
|
"editor.record.delete.confirmation.confirmText": "",
|
|
@@ -20255,6 +20307,10 @@ var nl = {
|
|
|
20255
20307
|
"editor.record.form.temporalExtents.date": "",
|
|
20256
20308
|
"editor.record.form.temporalExtents.range": "",
|
|
20257
20309
|
"editor.record.form.updateFrequency.planned": "",
|
|
20310
|
+
"editor.record.importFromExternalFile.failure.body": "",
|
|
20311
|
+
"editor.record.importFromExternalFile.failure.title": "",
|
|
20312
|
+
"editor.record.importFromExternalFile.success.body": "",
|
|
20313
|
+
"editor.record.importFromExternalFile.success.title": "",
|
|
20258
20314
|
"editor.record.loadError.body": "",
|
|
20259
20315
|
"editor.record.loadError.closeMessage": "",
|
|
20260
20316
|
"editor.record.loadError.title": "",
|
|
@@ -20549,6 +20605,10 @@ var pt = {
|
|
|
20549
20605
|
"dashboard.catalog.discussion": "",
|
|
20550
20606
|
"dashboard.catalog.thesaurus": "",
|
|
20551
20607
|
"dashboard.createRecord": "",
|
|
20608
|
+
"dashboard.importRecord": "",
|
|
20609
|
+
"dashboard.importRecord.importExternal": "",
|
|
20610
|
+
"dashboard.importRecord.importExternalLabel": "",
|
|
20611
|
+
"dashboard.importRecord.useModel": "",
|
|
20552
20612
|
"dashboard.labels.catalog": "Catálogo",
|
|
20553
20613
|
"dashboard.labels.mySpace": "Meu espaço",
|
|
20554
20614
|
"dashboard.records.all": "Catálogo",
|
|
@@ -20711,6 +20771,7 @@ var pt = {
|
|
|
20711
20771
|
"downloads.format.unknown": "",
|
|
20712
20772
|
"downloads.wfs.featuretype.not.found": "",
|
|
20713
20773
|
dropFile: dropFile,
|
|
20774
|
+
"editor.form.keywords.placeholder": "",
|
|
20714
20775
|
"editor.form.placeKeywordWithoutExtent": "",
|
|
20715
20776
|
"editor.record.delete.confirmation.cancelText": "",
|
|
20716
20777
|
"editor.record.delete.confirmation.confirmText": "",
|
|
@@ -20775,6 +20836,10 @@ var pt = {
|
|
|
20775
20836
|
"editor.record.form.temporalExtents.date": "",
|
|
20776
20837
|
"editor.record.form.temporalExtents.range": "",
|
|
20777
20838
|
"editor.record.form.updateFrequency.planned": "",
|
|
20839
|
+
"editor.record.importFromExternalFile.failure.body": "",
|
|
20840
|
+
"editor.record.importFromExternalFile.failure.title": "",
|
|
20841
|
+
"editor.record.importFromExternalFile.success.body": "",
|
|
20842
|
+
"editor.record.importFromExternalFile.success.title": "",
|
|
20778
20843
|
"editor.record.loadError.body": "",
|
|
20779
20844
|
"editor.record.loadError.closeMessage": "",
|
|
20780
20845
|
"editor.record.loadError.title": "",
|
|
@@ -21953,7 +22018,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
21953
22018
|
|
|
21954
22019
|
const TEMPORARY_ID_PREFIX = 'TEMP-ID-';
|
|
21955
22020
|
class Gn4Repository {
|
|
21956
|
-
constructor(gn4SearchApi, gn4SearchHelper, gn4Mapper, gn4RecordsApi) {
|
|
22021
|
+
constructor(httpClient, gn4SearchApi, gn4SearchHelper, gn4Mapper, gn4RecordsApi) {
|
|
22022
|
+
this.httpClient = httpClient;
|
|
21957
22023
|
this.gn4SearchApi = gn4SearchApi;
|
|
21958
22024
|
this.gn4SearchHelper = gn4SearchHelper;
|
|
21959
22025
|
this.gn4Mapper = gn4Mapper;
|
|
@@ -22007,21 +22073,9 @@ class Gn4Repository {
|
|
|
22007
22073
|
records,
|
|
22008
22074
|
}))));
|
|
22009
22075
|
}
|
|
22010
|
-
/**
|
|
22011
|
-
* Returns null if the record is not found
|
|
22012
|
-
*/
|
|
22013
|
-
loadRecordAsXml(uniqueIdentifier) {
|
|
22014
|
-
return this.gn4RecordsApi
|
|
22015
|
-
.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
|
|
22016
|
-
)
|
|
22017
|
-
.pipe(map$1((response) => response.body), catchError((error) => error.status === 404 ? of(null) : throwError(() => error)));
|
|
22018
|
-
}
|
|
22019
|
-
getLocalStorageKeyForRecord(uniqueIdentifier) {
|
|
22020
|
-
return `geonetwork-ui-draft-${uniqueIdentifier}`;
|
|
22021
|
-
}
|
|
22022
22076
|
openRecordForEdition(uniqueIdentifier) {
|
|
22023
|
-
const draft$ = of(
|
|
22024
|
-
const recordAsXml$ = this.
|
|
22077
|
+
const draft$ = of(this.getRecordFromLocalStorage(uniqueIdentifier));
|
|
22078
|
+
const recordAsXml$ = this.getRecordAsXml(uniqueIdentifier);
|
|
22025
22079
|
return combineLatest([draft$, recordAsXml$]).pipe(switchMap(([draft, recordAsXml]) => {
|
|
22026
22080
|
const xml = draft ?? recordAsXml;
|
|
22027
22081
|
const isSavedAlready = recordAsXml !== null;
|
|
@@ -22031,24 +22085,17 @@ class Gn4Repository {
|
|
|
22031
22085
|
}));
|
|
22032
22086
|
}
|
|
22033
22087
|
openRecordForDuplication(uniqueIdentifier) {
|
|
22034
|
-
return this.
|
|
22035
|
-
const converter = findConverterForDocument(
|
|
22036
|
-
const record = await converter.readRecord(
|
|
22088
|
+
return this.getRecordAsXml(uniqueIdentifier).pipe(switchMap(async (fetchedRecordAsXml) => {
|
|
22089
|
+
const converter = findConverterForDocument(fetchedRecordAsXml);
|
|
22090
|
+
const record = await converter.readRecord(fetchedRecordAsXml);
|
|
22037
22091
|
record.uniqueIdentifier = `${TEMPORARY_ID_PREFIX}${Date.now()}`;
|
|
22038
22092
|
record.title = `${record.title} (Copy)`;
|
|
22039
|
-
const
|
|
22040
|
-
|
|
22093
|
+
const recordAsXml = await converter.writeRecord(record, fetchedRecordAsXml);
|
|
22094
|
+
this.saveRecordToLocalStorage(recordAsXml, record.uniqueIdentifier);
|
|
22041
22095
|
this._draftsChanged.next();
|
|
22042
|
-
return [record,
|
|
22096
|
+
return [record, recordAsXml, false];
|
|
22043
22097
|
}));
|
|
22044
22098
|
}
|
|
22045
|
-
serializeRecordToXml(record, referenceRecordSource) {
|
|
22046
|
-
// if there's a reference record, use that standard; otherwise, use iso19139
|
|
22047
|
-
const converter = referenceRecordSource
|
|
22048
|
-
? findConverterForDocument(referenceRecordSource)
|
|
22049
|
-
: new Iso19139Converter();
|
|
22050
|
-
return from(converter.writeRecord(record, referenceRecordSource));
|
|
22051
|
-
}
|
|
22052
22099
|
saveRecord(record, referenceRecordSource) {
|
|
22053
22100
|
return this.serializeRecordToXml(record, referenceRecordSource).pipe(switchMap((recordXml) => this.gn4RecordsApi
|
|
22054
22101
|
.insert('METADATA', undefined, undefined, undefined, true, undefined, 'OVERWRITE', undefined, undefined, undefined, '_none_', undefined, undefined, undefined, recordXml)
|
|
@@ -22057,6 +22104,21 @@ class Gn4Repository {
|
|
|
22057
22104
|
return response.metadataInfos[metadataId][0].uuid;
|
|
22058
22105
|
}))));
|
|
22059
22106
|
}
|
|
22107
|
+
duplicateExternalRecord(recordDownloadUrl) {
|
|
22108
|
+
return this.getExternalRecordAsXml(recordDownloadUrl).pipe(exhaustMap(async (fetchedRecordAsXml) => {
|
|
22109
|
+
const converter = findConverterForDocument(fetchedRecordAsXml);
|
|
22110
|
+
const record = await converter.readRecord(fetchedRecordAsXml);
|
|
22111
|
+
const tempId = this.generateTemporaryId();
|
|
22112
|
+
record.title = `${record.title} (Copy)`;
|
|
22113
|
+
record.uniqueIdentifier = tempId;
|
|
22114
|
+
const recordAsXml = await converter.writeRecord(record, fetchedRecordAsXml);
|
|
22115
|
+
this.saveRecordToLocalStorage(recordAsXml, record.uniqueIdentifier);
|
|
22116
|
+
this._draftsChanged.next();
|
|
22117
|
+
return tempId;
|
|
22118
|
+
}), catchError((error) => {
|
|
22119
|
+
return throwError(() => error);
|
|
22120
|
+
}));
|
|
22121
|
+
}
|
|
22060
22122
|
deleteRecord(uniqueIdentifier) {
|
|
22061
22123
|
return this.gn4RecordsApi.deleteRecord(uniqueIdentifier);
|
|
22062
22124
|
}
|
|
@@ -22065,16 +22127,16 @@ class Gn4Repository {
|
|
|
22065
22127
|
}
|
|
22066
22128
|
saveRecordAsDraft(record, referenceRecordSource) {
|
|
22067
22129
|
return this.serializeRecordToXml(record, referenceRecordSource).pipe(tap$1((recordXml) => {
|
|
22068
|
-
|
|
22130
|
+
this.saveRecordToLocalStorage(recordXml, record.uniqueIdentifier);
|
|
22069
22131
|
this._draftsChanged.next();
|
|
22070
22132
|
}));
|
|
22071
22133
|
}
|
|
22072
22134
|
clearRecordDraft(uniqueIdentifier) {
|
|
22073
|
-
|
|
22135
|
+
this.removeRecordFromLocalStorage(uniqueIdentifier);
|
|
22074
22136
|
this._draftsChanged.next();
|
|
22075
22137
|
}
|
|
22076
22138
|
recordHasDraft(uniqueIdentifier) {
|
|
22077
|
-
return
|
|
22139
|
+
return this.getRecordFromLocalStorage(uniqueIdentifier) !== null;
|
|
22078
22140
|
}
|
|
22079
22141
|
isRecordNotYetSaved(uniqueIdentifier) {
|
|
22080
22142
|
return uniqueIdentifier.startsWith(TEMPORARY_ID_PREFIX);
|
|
@@ -22088,12 +22150,52 @@ class Gn4Repository {
|
|
|
22088
22150
|
.filter((draft) => draft !== null);
|
|
22089
22151
|
return from(Promise.all(drafts.map((draft) => findConverterForDocument(draft).readRecord(draft))));
|
|
22090
22152
|
}
|
|
22091
|
-
|
|
22153
|
+
getRecordAsXml(uniqueIdentifier) {
|
|
22154
|
+
return this.gn4RecordsApi
|
|
22155
|
+
.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
|
|
22156
|
+
)
|
|
22157
|
+
.pipe(map$1((response) => response.body), catchError((error) => error.status === 404 ? of(null) : throwError(() => error)));
|
|
22158
|
+
}
|
|
22159
|
+
serializeRecordToXml(record, referenceRecordSource) {
|
|
22160
|
+
// if there's a reference record, use that standard; otherwise, use iso19139
|
|
22161
|
+
const converter = referenceRecordSource
|
|
22162
|
+
? findConverterForDocument(referenceRecordSource)
|
|
22163
|
+
: new Iso19139Converter();
|
|
22164
|
+
return from(converter.writeRecord(record, referenceRecordSource));
|
|
22165
|
+
}
|
|
22166
|
+
getExternalRecordAsXml(recordDownloadUrl) {
|
|
22167
|
+
let headers = new HttpHeaders();
|
|
22168
|
+
const responseType_ = 'text';
|
|
22169
|
+
headers = headers.set('Accept', 'text/xml,application/xml');
|
|
22170
|
+
return this.httpClient
|
|
22171
|
+
.get(recordDownloadUrl, {
|
|
22172
|
+
responseType: responseType_,
|
|
22173
|
+
headers: headers,
|
|
22174
|
+
observe: 'body',
|
|
22175
|
+
})
|
|
22176
|
+
.pipe(map$1((recordAsXmlFile) => {
|
|
22177
|
+
assertValidXml(recordAsXmlFile);
|
|
22178
|
+
return recordAsXmlFile;
|
|
22179
|
+
}));
|
|
22180
|
+
}
|
|
22181
|
+
getLocalStorageKeyForRecord(recordId) {
|
|
22182
|
+
return `geonetwork-ui-draft-${recordId}`; // Never change this prefix as it is a breaking change
|
|
22183
|
+
}
|
|
22184
|
+
saveRecordToLocalStorage(recordAsXml, recordId) {
|
|
22185
|
+
window.localStorage.setItem(this.getLocalStorageKeyForRecord(recordId), recordAsXml);
|
|
22186
|
+
}
|
|
22187
|
+
getRecordFromLocalStorage(recordId) {
|
|
22188
|
+
return window.localStorage.getItem(this.getLocalStorageKeyForRecord(recordId));
|
|
22189
|
+
}
|
|
22190
|
+
removeRecordFromLocalStorage(recordId) {
|
|
22191
|
+
window.localStorage.removeItem(this.getLocalStorageKeyForRecord(recordId));
|
|
22192
|
+
}
|
|
22193
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: Gn4Repository, deps: [{ token: i1.HttpClient }, { token: SearchApiService }, { token: ElasticsearchService }, { token: Gn4Converter }, { token: RecordsApiService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
22092
22194
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: Gn4Repository }); }
|
|
22093
22195
|
}
|
|
22094
22196
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: Gn4Repository, decorators: [{
|
|
22095
22197
|
type: Injectable
|
|
22096
|
-
}], ctorParameters: function () { return [{ type: SearchApiService }, { type: ElasticsearchService }, { type: Gn4Converter }, { type: RecordsApiService }]; } });
|
|
22198
|
+
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: SearchApiService }, { type: ElasticsearchService }, { type: Gn4Converter }, { type: RecordsApiService }]; } });
|
|
22097
22199
|
|
|
22098
22200
|
class PlatformServiceInterface {
|
|
22099
22201
|
}
|
|
@@ -23131,6 +23233,7 @@ class ThemeService {
|
|
|
23131
23233
|
applyColor('gray-700', scale(0.7));
|
|
23132
23234
|
applyColor('gray-800', scale(0.8));
|
|
23133
23235
|
applyColor('gray-900', scale(0.9));
|
|
23236
|
+
applyColor('gray-950', scale(0.95));
|
|
23134
23237
|
if (mainFont) {
|
|
23135
23238
|
document.documentElement.style.setProperty(`--font-family-main`, mainFont);
|
|
23136
23239
|
}
|
|
@@ -25454,11 +25557,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
25454
25557
|
|
|
25455
25558
|
class FormFieldWrapperComponent {
|
|
25456
25559
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
25457
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormFieldWrapperComponent, isStandalone: true, selector: "gn-ui-form-field-wrapper", inputs: { label: "label", hint: "hint" }, ngImport: i0, template: "<div class=\"h-full flex flex-col\">\n <div class=\"flex-none w-full flex flex-row items-center\">\n <span class=\"flex-none font-bold\">{{ label }}</span>\n <div class=\"flex-1 flex justify-end items-center\">\n <ng-content select=\"[form-field-interaction]\"></ng-content>\n <span\n class=\"material-symbols-outlined m-2 gn-ui-icon-small\"\n [matTooltip]=\"hint\"\n matTooltipPosition=\"above\"\n >\n help\n </span>\n </div>\n </div>\n <div class=\"flex-1
|
|
25560
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormFieldWrapperComponent, isStandalone: true, selector: "gn-ui-form-field-wrapper", inputs: { label: "label", hint: "hint" }, ngImport: i0, template: "<div class=\"h-full flex flex-col\" *ngIf=\"label; else onlyContent\">\n <div class=\"flex-none w-full flex flex-row items-center\">\n <span class=\"flex-none font-bold\">{{ label }}</span>\n <div class=\"flex-1 flex justify-end items-center\">\n <ng-content select=\"[form-field-interaction]\"></ng-content>\n <span\n *ngIf=\"hint\"\n class=\"material-symbols-outlined m-2 gn-ui-icon-small\"\n [matTooltip]=\"hint\"\n matTooltipPosition=\"above\"\n >\n help\n </span>\n </div>\n </div>\n <div class=\"flex-1 mt-2\">\n <ng-container *ngTemplateOutlet=\"onlyContent\"> </ng-container>\n </div>\n</div>\n\n<ng-template #onlyContent>\n <ng-content></ng-content>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
25458
25561
|
}
|
|
25459
25562
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldWrapperComponent, decorators: [{
|
|
25460
25563
|
type: Component,
|
|
25461
|
-
args: [{ selector: 'gn-ui-form-field-wrapper', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [MatIconModule, MatTooltipModule], template: "<div class=\"h-full flex flex-col\">\n <div class=\"flex-none w-full flex flex-row items-center\">\n <span class=\"flex-none font-bold\">{{ label }}</span>\n <div class=\"flex-1 flex justify-end items-center\">\n <ng-content select=\"[form-field-interaction]\"></ng-content>\n <span\n class=\"material-symbols-outlined m-2 gn-ui-icon-small\"\n [matTooltip]=\"hint\"\n matTooltipPosition=\"above\"\n >\n help\n </span>\n </div>\n </div>\n <div class=\"flex-1
|
|
25564
|
+
args: [{ selector: 'gn-ui-form-field-wrapper', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [MatIconModule, MatTooltipModule, CommonModule], template: "<div class=\"h-full flex flex-col\" *ngIf=\"label; else onlyContent\">\n <div class=\"flex-none w-full flex flex-row items-center\">\n <span class=\"flex-none font-bold\">{{ label }}</span>\n <div class=\"flex-1 flex justify-end items-center\">\n <ng-content select=\"[form-field-interaction]\"></ng-content>\n <span\n *ngIf=\"hint\"\n class=\"material-symbols-outlined m-2 gn-ui-icon-small\"\n [matTooltip]=\"hint\"\n matTooltipPosition=\"above\"\n >\n help\n </span>\n </div>\n </div>\n <div class=\"flex-1 mt-2\">\n <ng-container *ngTemplateOutlet=\"onlyContent\"> </ng-container>\n </div>\n</div>\n\n<ng-template #onlyContent>\n <ng-content></ng-content>\n</ng-template>\n" }]
|
|
25462
25565
|
}], propDecorators: { label: [{
|
|
25463
25566
|
type: Input
|
|
25464
25567
|
}], hint: [{
|
|
@@ -26029,6 +26132,64 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
26029
26132
|
args: ['content']
|
|
26030
26133
|
}] } });
|
|
26031
26134
|
|
|
26135
|
+
class ButtonComponent {
|
|
26136
|
+
constructor() {
|
|
26137
|
+
this.btnClass = 'gn-ui-btn-default';
|
|
26138
|
+
this.disabled = false;
|
|
26139
|
+
this.extraClass = '';
|
|
26140
|
+
this.buttonClick = new EventEmitter();
|
|
26141
|
+
}
|
|
26142
|
+
set type(value) {
|
|
26143
|
+
// btn-classes are written in full to be picked up by tailwind
|
|
26144
|
+
switch (value) {
|
|
26145
|
+
case 'primary':
|
|
26146
|
+
this.btnClass = 'gn-ui-btn-primary';
|
|
26147
|
+
break;
|
|
26148
|
+
case 'secondary':
|
|
26149
|
+
this.btnClass = 'gn-ui-btn-secondary';
|
|
26150
|
+
break;
|
|
26151
|
+
case 'outline':
|
|
26152
|
+
this.btnClass = 'gn-ui-btn-outline';
|
|
26153
|
+
break;
|
|
26154
|
+
case 'light':
|
|
26155
|
+
this.btnClass = 'gn-ui-btn-light';
|
|
26156
|
+
break;
|
|
26157
|
+
case 'gray':
|
|
26158
|
+
this.btnClass = 'gn-ui-btn-gray';
|
|
26159
|
+
break;
|
|
26160
|
+
case 'black':
|
|
26161
|
+
this.btnClass = 'gn-ui-btn-black';
|
|
26162
|
+
break;
|
|
26163
|
+
case 'default':
|
|
26164
|
+
default:
|
|
26165
|
+
this.btnClass = 'gn-ui-btn-default';
|
|
26166
|
+
break;
|
|
26167
|
+
}
|
|
26168
|
+
}
|
|
26169
|
+
get classList() {
|
|
26170
|
+
return `${this.btnClass} ${this.extraClass}`;
|
|
26171
|
+
}
|
|
26172
|
+
handleClick(event) {
|
|
26173
|
+
this.buttonClick.emit();
|
|
26174
|
+
event.preventDefault();
|
|
26175
|
+
propagateToDocumentOnly(event);
|
|
26176
|
+
}
|
|
26177
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
26178
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ButtonComponent, isStandalone: true, selector: "gn-ui-button", inputs: { type: "type", disabled: "disabled", extraClass: "extraClass" }, outputs: { buttonClick: "buttonClick" }, ngImport: i0, template: "<button\n type=\"button\"\n [class]=\"classList\"\n [disabled]=\"disabled\"\n (click)=\"handleClick($event)\"\n>\n <ng-content></ng-content>\n</button>\n", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
26179
|
+
}
|
|
26180
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ButtonComponent, decorators: [{
|
|
26181
|
+
type: Component,
|
|
26182
|
+
args: [{ selector: 'gn-ui-button', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<button\n type=\"button\"\n [class]=\"classList\"\n [disabled]=\"disabled\"\n (click)=\"handleClick($event)\"\n>\n <ng-content></ng-content>\n</button>\n" }]
|
|
26183
|
+
}], propDecorators: { type: [{
|
|
26184
|
+
type: Input
|
|
26185
|
+
}], disabled: [{
|
|
26186
|
+
type: Input
|
|
26187
|
+
}], extraClass: [{
|
|
26188
|
+
type: Input
|
|
26189
|
+
}], buttonClick: [{
|
|
26190
|
+
type: Output
|
|
26191
|
+
}] } });
|
|
26192
|
+
|
|
26032
26193
|
class AutocompleteComponent {
|
|
26033
26194
|
constructor(cdRef) {
|
|
26034
26195
|
this.cdRef = cdRef;
|
|
@@ -26036,7 +26197,8 @@ class AutocompleteComponent {
|
|
|
26036
26197
|
this.preventCompleteOnSelection = false;
|
|
26037
26198
|
this.autoFocus = false;
|
|
26038
26199
|
this.minCharacterCount = 3;
|
|
26039
|
-
this
|
|
26200
|
+
// this will show a submit button next to the input; if false, a search icon will appear on the left
|
|
26201
|
+
this.allowSubmit = false;
|
|
26040
26202
|
this.itemSelected = new EventEmitter();
|
|
26041
26203
|
this.inputSubmitted = new EventEmitter();
|
|
26042
26204
|
this.inputCleared = new EventEmitter();
|
|
@@ -26147,7 +26309,7 @@ class AutocompleteComponent {
|
|
|
26147
26309
|
}
|
|
26148
26310
|
}
|
|
26149
26311
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AutocompleteComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
26150
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AutocompleteComponent, isStandalone: true, selector: "gn-ui-autocomplete", inputs: { placeholder: "placeholder", action: "action", value: "value", clearOnSelection: "clearOnSelection", preventCompleteOnSelection: "preventCompleteOnSelection", autoFocus: "autoFocus", minCharacterCount: "minCharacterCount", allowSubmit: "allowSubmit", displayWithFn: "displayWithFn" }, outputs: { itemSelected: "itemSelected", inputSubmitted: "inputSubmitted", inputCleared: "inputCleared" }, 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: "<
|
|
26312
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AutocompleteComponent, isStandalone: true, selector: "gn-ui-autocomplete", inputs: { placeholder: "placeholder", action: "action", value: "value", clearOnSelection: "clearOnSelection", preventCompleteOnSelection: "preventCompleteOnSelection", autoFocus: "autoFocus", minCharacterCount: "minCharacterCount", allowSubmit: "allowSubmit", displayWithFn: "displayWithFn" }, outputs: { itemSelected: "itemSelected", inputSubmitted: "inputSubmitted", inputCleared: "inputCleared" }, 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 <mat-icon class=\"material-symbols-outlined text-primary\"> search </mat-icon>\n </div>\n <input\n #searchInput\n type=\"text\"\n class=\"gn-ui-text-input\"\n [ngClass]=\"{\n 'px-[--icon-width]': !allowSubmit\n }\"\n [placeholder]=\"placeholder\"\n [formControl]=\"control\"\n [matAutocomplete]=\"auto\"\n (keyup.enter)=\"handleEnter(searchInput.value)\"\n />\n <gn-ui-button\n type=\"light\"\n extraClass=\"border-0 text-primary-lightest hover:text-primary focus:text-primary absolute inset-y-[--icon-padding] {{\n allowSubmit\n ? 'right-[calc(var(--icon-width)+var(--icon-padding))]'\n : 'right-[--icon-padding]'\n }}\"\n data-test=\"clear-btn\"\n *ngIf=\"searchInput.value\"\n aria-label=\"Clear\"\n (buttonClick)=\"clear()\"\n >\n <mat-icon class=\"material-symbols-outlined\">close</mat-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 <mat-icon class=\"material-symbols-outlined\">search</mat-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=\"error_outline\"\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}mat-icon{width:100%;height:100%;font-size:calc(.9em + 11px);line-height:.8em;display:grid;align-items:center;justify-content:center}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: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: PopupAlertComponent, selector: "gn-ui-popup-alert", inputs: ["icon", "type", "position"] }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i2$1.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple", "hideSingleSelectionIndicator"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i3$1.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i2$1.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$3.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: i5.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: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.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"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
26151
26313
|
}
|
|
26152
26314
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AutocompleteComponent, decorators: [{
|
|
26153
26315
|
type: Component,
|
|
@@ -26158,7 +26320,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
26158
26320
|
CommonModule,
|
|
26159
26321
|
TranslateModule,
|
|
26160
26322
|
ReactiveFormsModule,
|
|
26161
|
-
|
|
26323
|
+
ButtonComponent,
|
|
26324
|
+
], 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 <mat-icon class=\"material-symbols-outlined text-primary\"> search </mat-icon>\n </div>\n <input\n #searchInput\n type=\"text\"\n class=\"gn-ui-text-input\"\n [ngClass]=\"{\n 'px-[--icon-width]': !allowSubmit\n }\"\n [placeholder]=\"placeholder\"\n [formControl]=\"control\"\n [matAutocomplete]=\"auto\"\n (keyup.enter)=\"handleEnter(searchInput.value)\"\n />\n <gn-ui-button\n type=\"light\"\n extraClass=\"border-0 text-primary-lightest hover:text-primary focus:text-primary absolute inset-y-[--icon-padding] {{\n allowSubmit\n ? 'right-[calc(var(--icon-width)+var(--icon-padding))]'\n : 'right-[--icon-padding]'\n }}\"\n data-test=\"clear-btn\"\n *ngIf=\"searchInput.value\"\n aria-label=\"Clear\"\n (buttonClick)=\"clear()\"\n >\n <mat-icon class=\"material-symbols-outlined\">close</mat-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 <mat-icon class=\"material-symbols-outlined\">search</mat-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=\"error_outline\"\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}mat-icon{width:100%;height:100%;font-size:calc(.9em + 11px);line-height:.8em;display:grid;align-items:center;justify-content:center}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"] }]
|
|
26162
26325
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { placeholder: [{
|
|
26163
26326
|
type: Input
|
|
26164
26327
|
}], action: [{
|
|
@@ -26194,57 +26357,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
26194
26357
|
type: Input
|
|
26195
26358
|
}] } });
|
|
26196
26359
|
|
|
26197
|
-
class ButtonComponent {
|
|
26198
|
-
constructor() {
|
|
26199
|
-
this.btnClass = 'gn-ui-btn-default';
|
|
26200
|
-
this.disabled = false;
|
|
26201
|
-
this.extraClass = '';
|
|
26202
|
-
this.buttonClick = new EventEmitter();
|
|
26203
|
-
}
|
|
26204
|
-
set type(value) {
|
|
26205
|
-
// btn-classes are written in full to be picked up by tailwind
|
|
26206
|
-
switch (value) {
|
|
26207
|
-
case 'primary':
|
|
26208
|
-
this.btnClass = 'gn-ui-btn-primary';
|
|
26209
|
-
break;
|
|
26210
|
-
case 'secondary':
|
|
26211
|
-
this.btnClass = 'gn-ui-btn-secondary';
|
|
26212
|
-
break;
|
|
26213
|
-
case 'outline':
|
|
26214
|
-
this.btnClass = 'gn-ui-btn-outline';
|
|
26215
|
-
break;
|
|
26216
|
-
case 'light':
|
|
26217
|
-
this.btnClass = 'gn-ui-btn-light';
|
|
26218
|
-
break;
|
|
26219
|
-
default:
|
|
26220
|
-
this.btnClass = 'gn-ui-btn-default';
|
|
26221
|
-
break;
|
|
26222
|
-
}
|
|
26223
|
-
}
|
|
26224
|
-
get classList() {
|
|
26225
|
-
return `${this.btnClass} ${this.extraClass}`;
|
|
26226
|
-
}
|
|
26227
|
-
handleClick(event) {
|
|
26228
|
-
this.buttonClick.emit();
|
|
26229
|
-
event.preventDefault();
|
|
26230
|
-
propagateToDocumentOnly(event);
|
|
26231
|
-
}
|
|
26232
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
26233
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ButtonComponent, isStandalone: true, selector: "gn-ui-button", inputs: { type: "type", disabled: "disabled", extraClass: "extraClass" }, outputs: { buttonClick: "buttonClick" }, ngImport: i0, template: "<button\n type=\"button\"\n [class]=\"classList\"\n [disabled]=\"disabled\"\n (click)=\"handleClick($event)\"\n>\n <ng-content></ng-content>\n</button>\n", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
26234
|
-
}
|
|
26235
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ButtonComponent, decorators: [{
|
|
26236
|
-
type: Component,
|
|
26237
|
-
args: [{ selector: 'gn-ui-button', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<button\n type=\"button\"\n [class]=\"classList\"\n [disabled]=\"disabled\"\n (click)=\"handleClick($event)\"\n>\n <ng-content></ng-content>\n</button>\n" }]
|
|
26238
|
-
}], propDecorators: { type: [{
|
|
26239
|
-
type: Input
|
|
26240
|
-
}], disabled: [{
|
|
26241
|
-
type: Input
|
|
26242
|
-
}], extraClass: [{
|
|
26243
|
-
type: Input
|
|
26244
|
-
}], buttonClick: [{
|
|
26245
|
-
type: Output
|
|
26246
|
-
}] } });
|
|
26247
|
-
|
|
26248
26360
|
class BadgeComponent {
|
|
26249
26361
|
constructor() {
|
|
26250
26362
|
this.clickable = false;
|
|
@@ -26255,11 +26367,11 @@ class BadgeComponent {
|
|
|
26255
26367
|
this.badgeRemoveClicked.emit();
|
|
26256
26368
|
}
|
|
26257
26369
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BadgeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
26258
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: BadgeComponent, isStandalone: true, selector: "gn-ui-badge", inputs: { clickable: "clickable", removable: "removable" }, outputs: { badgeRemoveClicked: "badgeRemoveClicked" }, ngImport: i0, template: "<div\n class=\"gn-ui-badge flex items-center gap-1.5\"\n [ngClass]=\"\n clickable\n ? 'hover:bg-primary cursor-pointer transition-colors duration-100'\n : ''\n \"\n>\n <span><ng-content></ng-content></span>\n <gn-ui-button\n
|
|
26370
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: BadgeComponent, isStandalone: true, selector: "gn-ui-badge", inputs: { clickable: "clickable", removable: "removable" }, outputs: { badgeRemoveClicked: "badgeRemoveClicked" }, ngImport: i0, template: "<div\n class=\"gn-ui-badge flex items-center gap-1.5\"\n [ngClass]=\"\n clickable\n ? 'hover:bg-primary cursor-pointer transition-colors duration-100'\n : ''\n \"\n>\n <span><ng-content></ng-content></span>\n <gn-ui-button\n type=\"light\"\n *ngIf=\"removable\"\n (buttonClick)=\"removeBadge()\"\n class=\"ml-1 -my-[0.4em] -mr-[0.45em]\"\n extraClass=\"border-0\"\n style=\"\n --gn-ui-button-padding: 0;\n --gn-ui-button-font-size: 0.8em;\n --gn-ui-button-width: 1.4em;\n --gn-ui-button-height: 1.4em;\n --gn-ui-button-rounded: 1.4em;\n --gn-ui-button-background: white;\n \"\n >\n <mat-icon class=\"material-symbols-outlined leading-[1.1]\">close</mat-icon>\n </gn-ui-button>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
26259
26371
|
}
|
|
26260
26372
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BadgeComponent, decorators: [{
|
|
26261
26373
|
type: Component,
|
|
26262
|
-
args: [{ selector: 'gn-ui-badge', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, ButtonComponent], template: "<div\n class=\"gn-ui-badge flex items-center gap-1.5\"\n [ngClass]=\"\n clickable\n ? 'hover:bg-primary cursor-pointer transition-colors duration-100'\n : ''\n \"\n>\n <span><ng-content></ng-content></span>\n <gn-ui-button\n
|
|
26374
|
+
args: [{ selector: 'gn-ui-badge', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, ButtonComponent, MatIconModule], template: "<div\n class=\"gn-ui-badge flex items-center gap-1.5\"\n [ngClass]=\"\n clickable\n ? 'hover:bg-primary cursor-pointer transition-colors duration-100'\n : ''\n \"\n>\n <span><ng-content></ng-content></span>\n <gn-ui-button\n type=\"light\"\n *ngIf=\"removable\"\n (buttonClick)=\"removeBadge()\"\n class=\"ml-1 -my-[0.4em] -mr-[0.45em]\"\n extraClass=\"border-0\"\n style=\"\n --gn-ui-button-padding: 0;\n --gn-ui-button-font-size: 0.8em;\n --gn-ui-button-width: 1.4em;\n --gn-ui-button-height: 1.4em;\n --gn-ui-button-rounded: 1.4em;\n --gn-ui-button-background: white;\n \"\n >\n <mat-icon class=\"material-symbols-outlined leading-[1.1]\">close</mat-icon>\n </gn-ui-button>\n</div>\n" }]
|
|
26263
26375
|
}], propDecorators: { clickable: [{
|
|
26264
26376
|
type: Input
|
|
26265
26377
|
}], removable: [{
|
|
@@ -26421,11 +26533,16 @@ class DatePickerComponent {
|
|
|
26421
26533
|
this.dateChange = new EventEmitter();
|
|
26422
26534
|
}
|
|
26423
26535
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DatePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
26424
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DatePickerComponent, isStandalone: true, selector: "gn-ui-date-picker", inputs: { date: "date" }, outputs: { dateChange: "dateChange" }, ngImport: i0, template: "<
|
|
26536
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DatePickerComponent, isStandalone: true, selector: "gn-ui-date-picker", inputs: { date: "date" }, outputs: { dateChange: "dateChange" }, ngImport: i0, template: "<span class=\"w-full inline-block relative\">\n <input\n class=\"gn-ui-text-input pr-[var(--text-padding)]\"\n [matDatepicker]=\"picker\"\n [value]=\"date\"\n (dateChange)=\"dateChange.emit($event.value)\"\n />\n <gn-ui-button\n type=\"light\"\n (buttonClick)=\"picker.open()\"\n extraClass=\"absolute inset-y-[var(--side-padding)] right-[var(--side-padding)]\"\n data-cy=\"date-picker-button\"\n >\n <mat-icon class=\"material-symbols-outlined text-primary\"\n >calendar_today</mat-icon\n >\n </gn-ui-button>\n</span>\n<mat-datepicker #picker></mat-datepicker>\n", styles: [":host{--gn-ui-button-rounded: 8px;--gn-ui-button-width: 32px;--gn-ui-button-padding: 0;--side-padding: calc(var(--gn-ui-text-input-padding, .6em) - 6px);--text-padding: calc(var(--side-padding) + 40px)}\n"], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatNativeDateModule }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i2$2.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i2$2.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
26425
26537
|
}
|
|
26426
26538
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DatePickerComponent, decorators: [{
|
|
26427
26539
|
type: Component,
|
|
26428
|
-
args: [{ selector: 'gn-ui-date-picker', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
26540
|
+
args: [{ selector: 'gn-ui-date-picker', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
26541
|
+
MatIconModule,
|
|
26542
|
+
MatNativeDateModule,
|
|
26543
|
+
MatDatepickerModule,
|
|
26544
|
+
ButtonComponent,
|
|
26545
|
+
], template: "<span class=\"w-full inline-block relative\">\n <input\n class=\"gn-ui-text-input pr-[var(--text-padding)]\"\n [matDatepicker]=\"picker\"\n [value]=\"date\"\n (dateChange)=\"dateChange.emit($event.value)\"\n />\n <gn-ui-button\n type=\"light\"\n (buttonClick)=\"picker.open()\"\n extraClass=\"absolute inset-y-[var(--side-padding)] right-[var(--side-padding)]\"\n data-cy=\"date-picker-button\"\n >\n <mat-icon class=\"material-symbols-outlined text-primary\"\n >calendar_today</mat-icon\n >\n </gn-ui-button>\n</span>\n<mat-datepicker #picker></mat-datepicker>\n", styles: [":host{--gn-ui-button-rounded: 8px;--gn-ui-button-width: 32px;--gn-ui-button-padding: 0;--side-padding: calc(var(--gn-ui-text-input-padding, .6em) - 6px);--text-padding: calc(var(--side-padding) + 40px)}\n"] }]
|
|
26429
26546
|
}], propDecorators: { date: [{
|
|
26430
26547
|
type: Input
|
|
26431
26548
|
}], dateChange: [{
|
|
@@ -26438,11 +26555,16 @@ class DateRangePickerComponent {
|
|
|
26438
26555
|
this.endDateChange = new EventEmitter();
|
|
26439
26556
|
}
|
|
26440
26557
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DateRangePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
26441
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DateRangePickerComponent, isStandalone: true, selector: "gn-ui-date-range-picker", inputs: { startDate: "startDate", endDate: "endDate" }, outputs: { startDateChange: "startDateChange", endDateChange: "endDateChange" }, ngImport: i0, template: "<
|
|
26558
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DateRangePickerComponent, isStandalone: true, selector: "gn-ui-date-range-picker", inputs: { startDate: "startDate", endDate: "endDate" }, outputs: { startDateChange: "startDateChange", endDateChange: "endDateChange" }, ngImport: i0, template: "<span class=\"w-full inline-block relative\">\n <mat-date-range-input [rangePicker]=\"picker\" class=\"gn-ui-text-input\">\n <input\n matStartDate\n placeholder=\"Start date\"\n [value]=\"startDate\"\n (dateInput)=\"startDateChange.emit($event.value)\"\n />\n <input\n matEndDate\n placeholder=\"End date\"\n [value]=\"endDate\"\n (dateInput)=\"endDateChange.emit($event.value)\"\n />\n </mat-date-range-input>\n\n <gn-ui-button\n type=\"light\"\n (buttonClick)=\"picker.open()\"\n extraClass=\"absolute inset-y-[var(--side-padding)] right-[var(--side-padding)]\"\n data-cy=\"date-picker-button\"\n >\n <mat-icon class=\"material-symbols-outlined text-primary\"\n >date_range</mat-icon\n >\n </gn-ui-button>\n</span>\n<mat-date-range-picker #picker></mat-date-range-picker>\n", styles: [":host{--gn-ui-button-rounded: 8px;--gn-ui-button-width: 32px;--gn-ui-button-padding: 0;--side-padding: calc(var(--gn-ui-text-input-padding, .6em) - 6px);--text-padding: calc(var(--side-padding) + 40px)}\n"], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatNativeDateModule }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i2$2.MatDateRangeInput, selector: "mat-date-range-input", inputs: ["rangePicker", "required", "dateFilter", "min", "max", "disabled", "separator", "comparisonStart", "comparisonEnd"], exportAs: ["matDateRangeInput"] }, { kind: "directive", type: i2$2.MatStartDate, selector: "input[matStartDate]", inputs: ["errorStateMatcher"], outputs: ["dateChange", "dateInput"] }, { kind: "directive", type: i2$2.MatEndDate, selector: "input[matEndDate]", inputs: ["errorStateMatcher"], outputs: ["dateChange", "dateInput"] }, { kind: "component", type: i2$2.MatDateRangePicker, selector: "mat-date-range-picker", exportAs: ["matDateRangePicker"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
26442
26559
|
}
|
|
26443
26560
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DateRangePickerComponent, decorators: [{
|
|
26444
26561
|
type: Component,
|
|
26445
|
-
args: [{ selector: 'gn-ui-date-range-picker', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
26562
|
+
args: [{ selector: 'gn-ui-date-range-picker', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
26563
|
+
MatIconModule,
|
|
26564
|
+
MatNativeDateModule,
|
|
26565
|
+
MatDatepickerModule,
|
|
26566
|
+
ButtonComponent,
|
|
26567
|
+
], template: "<span class=\"w-full inline-block relative\">\n <mat-date-range-input [rangePicker]=\"picker\" class=\"gn-ui-text-input\">\n <input\n matStartDate\n placeholder=\"Start date\"\n [value]=\"startDate\"\n (dateInput)=\"startDateChange.emit($event.value)\"\n />\n <input\n matEndDate\n placeholder=\"End date\"\n [value]=\"endDate\"\n (dateInput)=\"endDateChange.emit($event.value)\"\n />\n </mat-date-range-input>\n\n <gn-ui-button\n type=\"light\"\n (buttonClick)=\"picker.open()\"\n extraClass=\"absolute inset-y-[var(--side-padding)] right-[var(--side-padding)]\"\n data-cy=\"date-picker-button\"\n >\n <mat-icon class=\"material-symbols-outlined text-primary\"\n >date_range</mat-icon\n >\n </gn-ui-button>\n</span>\n<mat-date-range-picker #picker></mat-date-range-picker>\n", styles: [":host{--gn-ui-button-rounded: 8px;--gn-ui-button-width: 32px;--gn-ui-button-padding: 0;--side-padding: calc(var(--gn-ui-text-input-padding, .6em) - 6px);--text-padding: calc(var(--side-padding) + 40px)}\n"] }]
|
|
26446
26568
|
}], propDecorators: { startDate: [{
|
|
26447
26569
|
type: Input
|
|
26448
26570
|
}], endDate: [{
|
|
@@ -27165,11 +27287,11 @@ class UrlInputComponent {
|
|
|
27165
27287
|
this.rawChange.next(value);
|
|
27166
27288
|
}
|
|
27167
27289
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UrlInputComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27168
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: UrlInputComponent, isStandalone: true, selector: "gn-ui-url-input", inputs: { value: "value", extraClass: "extraClass", placeholder: "placeholder", disabled: "disabled" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<span class=\"w-full inline-block relative\">\n <input\n #input\n class=\"gn-ui-text-input px-[var(--text-padding)]\"\n [ngClass]=\"extraClass\"\n type=\"url\"\n [value]=\"value\"\n (input)=\"handleInput()\"\n (keydown.enter)=\"handleChange(input)\"\n [placeholder]=\"placeholder\"\n [attr.aria-label]=\"placeholder\"\n [disabled]=\"disabled\"\n />\n <div\n class=\"absolute inset-y-[var(--side-padding)] left-[var(--2x-side-padding)] grid justify-center items-center pointer-events-none\"\n [ngClass]='{\n \"text-primary\": !disabled,\n \"text-primary-lightest\": disabled,\n }'\n >\n <mat-icon\n class=\"material-symbols-outlined h-[24px] !w-[26px] text-[28px] leading-[24px]\"\n >\n link\n </mat-icon>\n </div>\n <gn-ui-button\n extraClass=\"absolute inset-y-[var(--side-padding)] right-[var(--side-padding)]\"\n type=\"primary\"\n [disabled]=\"disabled || input.value === ''\"\n (buttonClick)=\"handleChange(input)\"\n >\n <mat-icon class=\"material-symbols-outlined text-[20px] leading-[
|
|
27290
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: UrlInputComponent, isStandalone: true, selector: "gn-ui-url-input", inputs: { value: "value", extraClass: "extraClass", placeholder: "placeholder", disabled: "disabled" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<span class=\"w-full inline-block relative\">\n <input\n #input\n class=\"gn-ui-text-input px-[var(--text-padding)]\"\n [ngClass]=\"extraClass\"\n type=\"url\"\n [value]=\"value\"\n (input)=\"handleInput()\"\n (keydown.enter)=\"handleChange(input)\"\n [placeholder]=\"placeholder\"\n [attr.aria-label]=\"placeholder\"\n [disabled]=\"disabled\"\n />\n <div\n class=\"absolute inset-y-[var(--side-padding)] left-[var(--2x-side-padding)] grid justify-center items-center pointer-events-none\"\n [ngClass]='{\n \"text-primary\": !disabled,\n \"text-primary-lightest\": disabled,\n }'\n >\n <mat-icon\n class=\"material-symbols-outlined h-[24px] !w-[26px] text-[28px] leading-[24px]\"\n >\n link\n </mat-icon>\n </div>\n <gn-ui-button\n extraClass=\"absolute inset-y-[var(--side-padding)] right-[var(--side-padding)]\"\n type=\"primary\"\n [disabled]=\"disabled || input.value === ''\"\n (buttonClick)=\"handleChange(input)\"\n >\n <mat-icon class=\"material-symbols-outlined text-[20px] leading-[24px]\">\n arrow_upward\n </mat-icon>\n </gn-ui-button>\n</span>\n", styles: [":host{--gn-ui-button-rounded: 8px;--gn-ui-button-width: 32px;--gn-ui-button-padding: 0;--side-padding: calc(var(--gn-ui-text-input-padding, .6em) - 6px);--2x-side-padding: calc(var(--side-padding) * 2);--text-padding: calc(var(--side-padding) + 40px)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
|
|
27169
27291
|
}
|
|
27170
27292
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UrlInputComponent, decorators: [{
|
|
27171
27293
|
type: Component,
|
|
27172
|
-
args: [{ selector: 'gn-ui-url-input', standalone: true, imports: [CommonModule, ButtonComponent, MatIconModule], template: "<span class=\"w-full inline-block relative\">\n <input\n #input\n class=\"gn-ui-text-input px-[var(--text-padding)]\"\n [ngClass]=\"extraClass\"\n type=\"url\"\n [value]=\"value\"\n (input)=\"handleInput()\"\n (keydown.enter)=\"handleChange(input)\"\n [placeholder]=\"placeholder\"\n [attr.aria-label]=\"placeholder\"\n [disabled]=\"disabled\"\n />\n <div\n class=\"absolute inset-y-[var(--side-padding)] left-[var(--2x-side-padding)] grid justify-center items-center pointer-events-none\"\n [ngClass]='{\n \"text-primary\": !disabled,\n \"text-primary-lightest\": disabled,\n }'\n >\n <mat-icon\n class=\"material-symbols-outlined h-[24px] !w-[26px] text-[28px] leading-[24px]\"\n >\n link\n </mat-icon>\n </div>\n <gn-ui-button\n extraClass=\"absolute inset-y-[var(--side-padding)] right-[var(--side-padding)]\"\n type=\"primary\"\n [disabled]=\"disabled || input.value === ''\"\n (buttonClick)=\"handleChange(input)\"\n >\n <mat-icon class=\"material-symbols-outlined text-[20px] leading-[
|
|
27294
|
+
args: [{ selector: 'gn-ui-url-input', standalone: true, imports: [CommonModule, ButtonComponent, MatIconModule], template: "<span class=\"w-full inline-block relative\">\n <input\n #input\n class=\"gn-ui-text-input px-[var(--text-padding)]\"\n [ngClass]=\"extraClass\"\n type=\"url\"\n [value]=\"value\"\n (input)=\"handleInput()\"\n (keydown.enter)=\"handleChange(input)\"\n [placeholder]=\"placeholder\"\n [attr.aria-label]=\"placeholder\"\n [disabled]=\"disabled\"\n />\n <div\n class=\"absolute inset-y-[var(--side-padding)] left-[var(--2x-side-padding)] grid justify-center items-center pointer-events-none\"\n [ngClass]='{\n \"text-primary\": !disabled,\n \"text-primary-lightest\": disabled,\n }'\n >\n <mat-icon\n class=\"material-symbols-outlined h-[24px] !w-[26px] text-[28px] leading-[24px]\"\n >\n link\n </mat-icon>\n </div>\n <gn-ui-button\n extraClass=\"absolute inset-y-[var(--side-padding)] right-[var(--side-padding)]\"\n type=\"primary\"\n [disabled]=\"disabled || input.value === ''\"\n (buttonClick)=\"handleChange(input)\"\n >\n <mat-icon class=\"material-symbols-outlined text-[20px] leading-[24px]\">\n arrow_upward\n </mat-icon>\n </gn-ui-button>\n</span>\n", styles: [":host{--gn-ui-button-rounded: 8px;--gn-ui-button-width: 32px;--gn-ui-button-padding: 0;--side-padding: calc(var(--gn-ui-text-input-padding, .6em) - 6px);--2x-side-padding: calc(var(--side-padding) * 2);--text-padding: calc(var(--side-padding) + 40px)}\n"] }]
|
|
27173
27295
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { value: [{
|
|
27174
27296
|
type: Input
|
|
27175
27297
|
}], extraClass: [{
|
|
@@ -27314,7 +27436,7 @@ class ImageInputComponent {
|
|
|
27314
27436
|
});
|
|
27315
27437
|
}
|
|
27316
27438
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ImageInputComponent, deps: [{ token: i1.HttpClient }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27317
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ImageInputComponent, isStandalone: true, selector: "gn-ui-image-input", inputs: { maxSizeMB: "maxSizeMB", previewUrl: "previewUrl", altText: "altText", uploadProgress: "uploadProgress", uploadError: "uploadError" }, outputs: { fileChange: "fileChange", urlChange: "urlChange", uploadCancel: "uploadCancel", delete: "delete", altTextChange: "altTextChange" }, ngImport: i0, template: "<ng-container *ngIf=\"previewUrl; then withImage; else withoutImage\">\n</ng-container>\n\n<ng-template #withImage>\n <div class=\"w-full h-full flex flex-col gap-2\">\n <div class=\"flex-1 group relative\">\n <img\n class=\"w-full
|
|
27439
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ImageInputComponent, isStandalone: true, selector: "gn-ui-image-input", inputs: { maxSizeMB: "maxSizeMB", previewUrl: "previewUrl", altText: "altText", uploadProgress: "uploadProgress", uploadError: "uploadError" }, outputs: { fileChange: "fileChange", urlChange: "urlChange", uploadCancel: "uploadCancel", delete: "delete", altTextChange: "altTextChange" }, ngImport: i0, template: "<ng-container *ngIf=\"previewUrl; then withImage; else withoutImage\">\n</ng-container>\n\n<ng-template #withImage>\n <div class=\"w-full h-full flex flex-col gap-2\">\n <div class=\"flex-1 group relative\">\n <img\n class=\"w-full object-cover border-2 border-gray-300 rounded-lg h-[172px]\"\n [alt]=\"altText\"\n loading=\"lazy\"\n [src]=\"previewUrl\"\n />\n <gn-ui-button\n type=\"outline\"\n style=\"--gn-ui-button-height: 40px; --gn-ui-button-width: 40px\"\n extraClass=\"absolute right-2 bottom-2 invisible group-hover:visible bg-background\"\n (buttonClick)=\"handleDelete()\"\n >\n <mat-icon class=\"material-symbols-outlined\">delete</mat-icon>\n </gn-ui-button>\n </div>\n <gn-ui-text-input\n *ngIf=\"showAltTextInput\"\n [placeholder]=\"'input.image.altTextPlaceholder' | translate\"\n [value]=\"altText ?? ''\"\n (valueChange)=\"handleAltTextChange($event)\"\n extraClass=\"gn-ui-editor-textarea\"\n ></gn-ui-text-input>\n <div class=\"flex flex-row gap-2 mt-2\">\n <gn-ui-button type=\"gray\" (buttonClick)=\"handleDelete()\">\n <mat-icon class=\"material-symbols-outlined me-1 text-primary\"\n >delete</mat-icon\n >\n {{ 'input.image.delete' | translate }}\n </gn-ui-button>\n <gn-ui-button\n *ngIf=\"!showAltTextInput\"\n type=\"gray\"\n (buttonClick)=\"toggleAltTextInput()\"\n >\n <mat-icon class=\"material-symbols-outlined me-1 text-primary\"\n >add</mat-icon\n >\n {{ 'input.image.displayAltTextInput' | translate }}\n </gn-ui-button>\n </div>\n </div>\n</ng-template>\n\n<ng-template #withoutImage>\n <div class=\"w-full h-full flex flex-col gap-2\">\n <label\n gnUiFilesDrop\n class=\"flex-1 border-2 border-dashed rounded-lg p-6 flex flex-col items-center justify-center gap-4 transition-colors duration-100\"\n [ngClass]=\"{\n 'border-primary-lighter bg-primary-white': dragFilesOver,\n 'border-gray-300': !dragFilesOver,\n 'cursor-pointer hover:border-gray-500':\n !isUploadInProgress && !uploadError && !showUrlInput\n }\"\n [attr.tabindex]=\"\n isUploadInProgress || uploadError || showUrlInput ? null : 0\n \"\n (keydown.enter)=\"fileInput.click()\"\n (dragFilesOver)=\"handleDragFilesOver($event)\"\n (dropFiles)=\"handleDropFiles($event)\"\n >\n <div\n class=\"w-14 h-14 rounded-md bg-gray-50 grid\"\n *ngIf=\"!isUploadInProgress && !uploadError\"\n >\n <mat-icon\n *ngIf=\"!dragFilesOver\"\n class=\"material-symbols-outlined place-self-center text-primary\"\n >image</mat-icon\n >\n <mat-icon\n *ngIf=\"dragFilesOver\"\n class=\"material-symbols-outlined place-self-center text-primary\"\n >add_box</mat-icon\n >\n </div>\n\n <div\n *ngIf=\"isUploadInProgress && !uploadError\"\n class=\"w-14 h-14 grid items-center justify-center relative\"\n >\n <div class=\"text-gray-100 absolute\">\n <mat-progress-spinner\n class=\"place-self-center\"\n [diameter]=\"56\"\n mode=\"determinate\"\n [value]=\"100\"\n ></mat-progress-spinner>\n </div>\n <div class=\"text-primary absolute\">\n <mat-progress-spinner\n class=\"place-self-center\"\n [diameter]=\"56\"\n mode=\"determinate\"\n [value]=\"uploadProgress\"\n ></mat-progress-spinner>\n </div>\n <span class=\"text-sm text-main font-bold\">{{ uploadProgress }}%</span>\n </div>\n\n <div class=\"w-14 h-14 rounded-md bg-gray-50 grid\" *ngIf=\"uploadError\">\n <mat-icon\n class=\"material-symbols-outlined place-self-center text-rose-500\"\n >broken_image</mat-icon\n >\n </div>\n\n <div class=\"flex flex-col items-center gap-1\">\n <p class=\"font-medium\">{{ getPrimaryText() | translate }}</p>\n <p\n class=\"text-sm\"\n [class]=\"\n isUploadInProgress || uploadError\n ? 'font-bold text-blue-500 cursor-pointer'\n : 'font-medium text-gray-500'\n \"\n (click)=\"handleSecondaryTextClick($event)\"\n >\n {{ getSecondaryText() | translate }}\n </p>\n </div>\n <input\n #fileInput\n type=\"file\"\n class=\"hidden\"\n (change)=\"handleFileInput($event)\"\n [disabled]=\"showUrlInput || isUploadInProgress || uploadError\"\n />\n </label>\n\n <div *ngIf=\"!showUrlInput\" class=\"flex-none mt-2\">\n <gn-ui-button (buttonClick)=\"displayUrlInput()\" type=\"gray\">\n <mat-icon class=\"material-symbols-outlined me-1 text-primary\"\n >link</mat-icon\n >\n {{ 'input.image.displayUrlInput' | translate }}\n </gn-ui-button>\n </div>\n\n <gn-ui-url-input\n *ngIf=\"showUrlInput\"\n class=\"mt-3.5\"\n (valueChange)=\"downloadUrl($event)\"\n [disabled]=\"isUploadInProgress\"\n >\n </gn-ui-url-input>\n </div>\n</ng-template>\n", styles: [":host{--gn-ui-button-padding: 8px 8px;--gn-ui-button-rounded: 8px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: FilesDropDirective, selector: "[gnUiFilesDrop]", outputs: ["dragFilesOver", "dropFiles"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i1$4.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "component", type: UrlInputComponent, selector: "gn-ui-url-input", inputs: ["value", "extraClass", "placeholder", "disabled"], outputs: ["valueChange"] }, { kind: "component", type: TextInputComponent, selector: "gn-ui-text-input", inputs: ["value", "extraClass", "placeholder", "required", "disabled"], outputs: ["valueChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
27318
27440
|
}
|
|
27319
27441
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ImageInputComponent, decorators: [{
|
|
27320
27442
|
type: Component,
|
|
@@ -27327,7 +27449,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
27327
27449
|
TranslateModule,
|
|
27328
27450
|
UrlInputComponent,
|
|
27329
27451
|
TextInputComponent,
|
|
27330
|
-
], template: "<ng-container *ngIf=\"previewUrl; then withImage; else withoutImage\">\n</ng-container>\n\n<ng-template #withImage>\n <div class=\"w-full h-full flex flex-col gap-2\">\n <div class=\"flex-1 group relative\">\n <img\n class=\"w-full
|
|
27452
|
+
], template: "<ng-container *ngIf=\"previewUrl; then withImage; else withoutImage\">\n</ng-container>\n\n<ng-template #withImage>\n <div class=\"w-full h-full flex flex-col gap-2\">\n <div class=\"flex-1 group relative\">\n <img\n class=\"w-full object-cover border-2 border-gray-300 rounded-lg h-[172px]\"\n [alt]=\"altText\"\n loading=\"lazy\"\n [src]=\"previewUrl\"\n />\n <gn-ui-button\n type=\"outline\"\n style=\"--gn-ui-button-height: 40px; --gn-ui-button-width: 40px\"\n extraClass=\"absolute right-2 bottom-2 invisible group-hover:visible bg-background\"\n (buttonClick)=\"handleDelete()\"\n >\n <mat-icon class=\"material-symbols-outlined\">delete</mat-icon>\n </gn-ui-button>\n </div>\n <gn-ui-text-input\n *ngIf=\"showAltTextInput\"\n [placeholder]=\"'input.image.altTextPlaceholder' | translate\"\n [value]=\"altText ?? ''\"\n (valueChange)=\"handleAltTextChange($event)\"\n extraClass=\"gn-ui-editor-textarea\"\n ></gn-ui-text-input>\n <div class=\"flex flex-row gap-2 mt-2\">\n <gn-ui-button type=\"gray\" (buttonClick)=\"handleDelete()\">\n <mat-icon class=\"material-symbols-outlined me-1 text-primary\"\n >delete</mat-icon\n >\n {{ 'input.image.delete' | translate }}\n </gn-ui-button>\n <gn-ui-button\n *ngIf=\"!showAltTextInput\"\n type=\"gray\"\n (buttonClick)=\"toggleAltTextInput()\"\n >\n <mat-icon class=\"material-symbols-outlined me-1 text-primary\"\n >add</mat-icon\n >\n {{ 'input.image.displayAltTextInput' | translate }}\n </gn-ui-button>\n </div>\n </div>\n</ng-template>\n\n<ng-template #withoutImage>\n <div class=\"w-full h-full flex flex-col gap-2\">\n <label\n gnUiFilesDrop\n class=\"flex-1 border-2 border-dashed rounded-lg p-6 flex flex-col items-center justify-center gap-4 transition-colors duration-100\"\n [ngClass]=\"{\n 'border-primary-lighter bg-primary-white': dragFilesOver,\n 'border-gray-300': !dragFilesOver,\n 'cursor-pointer hover:border-gray-500':\n !isUploadInProgress && !uploadError && !showUrlInput\n }\"\n [attr.tabindex]=\"\n isUploadInProgress || uploadError || showUrlInput ? null : 0\n \"\n (keydown.enter)=\"fileInput.click()\"\n (dragFilesOver)=\"handleDragFilesOver($event)\"\n (dropFiles)=\"handleDropFiles($event)\"\n >\n <div\n class=\"w-14 h-14 rounded-md bg-gray-50 grid\"\n *ngIf=\"!isUploadInProgress && !uploadError\"\n >\n <mat-icon\n *ngIf=\"!dragFilesOver\"\n class=\"material-symbols-outlined place-self-center text-primary\"\n >image</mat-icon\n >\n <mat-icon\n *ngIf=\"dragFilesOver\"\n class=\"material-symbols-outlined place-self-center text-primary\"\n >add_box</mat-icon\n >\n </div>\n\n <div\n *ngIf=\"isUploadInProgress && !uploadError\"\n class=\"w-14 h-14 grid items-center justify-center relative\"\n >\n <div class=\"text-gray-100 absolute\">\n <mat-progress-spinner\n class=\"place-self-center\"\n [diameter]=\"56\"\n mode=\"determinate\"\n [value]=\"100\"\n ></mat-progress-spinner>\n </div>\n <div class=\"text-primary absolute\">\n <mat-progress-spinner\n class=\"place-self-center\"\n [diameter]=\"56\"\n mode=\"determinate\"\n [value]=\"uploadProgress\"\n ></mat-progress-spinner>\n </div>\n <span class=\"text-sm text-main font-bold\">{{ uploadProgress }}%</span>\n </div>\n\n <div class=\"w-14 h-14 rounded-md bg-gray-50 grid\" *ngIf=\"uploadError\">\n <mat-icon\n class=\"material-symbols-outlined place-self-center text-rose-500\"\n >broken_image</mat-icon\n >\n </div>\n\n <div class=\"flex flex-col items-center gap-1\">\n <p class=\"font-medium\">{{ getPrimaryText() | translate }}</p>\n <p\n class=\"text-sm\"\n [class]=\"\n isUploadInProgress || uploadError\n ? 'font-bold text-blue-500 cursor-pointer'\n : 'font-medium text-gray-500'\n \"\n (click)=\"handleSecondaryTextClick($event)\"\n >\n {{ getSecondaryText() | translate }}\n </p>\n </div>\n <input\n #fileInput\n type=\"file\"\n class=\"hidden\"\n (change)=\"handleFileInput($event)\"\n [disabled]=\"showUrlInput || isUploadInProgress || uploadError\"\n />\n </label>\n\n <div *ngIf=\"!showUrlInput\" class=\"flex-none mt-2\">\n <gn-ui-button (buttonClick)=\"displayUrlInput()\" type=\"gray\">\n <mat-icon class=\"material-symbols-outlined me-1 text-primary\"\n >link</mat-icon\n >\n {{ 'input.image.displayUrlInput' | translate }}\n </gn-ui-button>\n </div>\n\n <gn-ui-url-input\n *ngIf=\"showUrlInput\"\n class=\"mt-3.5\"\n (valueChange)=\"downloadUrl($event)\"\n [disabled]=\"isUploadInProgress\"\n >\n </gn-ui-url-input>\n </div>\n</ng-template>\n", styles: [":host{--gn-ui-button-padding: 8px 8px;--gn-ui-button-rounded: 8px}\n"] }]
|
|
27331
27453
|
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { maxSizeMB: [{
|
|
27332
27454
|
type: Input
|
|
27333
27455
|
}], previewUrl: [{
|
|
@@ -27521,11 +27643,11 @@ class SwitchToggleComponent {
|
|
|
27521
27643
|
this.selectedValue.emit(selectedOption);
|
|
27522
27644
|
}
|
|
27523
27645
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SwitchToggleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27524
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SwitchToggleComponent, isStandalone: true, selector: "gn-ui-switch-toggle", inputs: { options: "options", ariaLabel: "ariaLabel", extraClasses: "extraClasses" }, outputs: { selectedValue: "selectedValue" }, ngImport: i0, template: "<mat-button-toggle-group\n #group=\"matButtonToggleGroup\"\n multiple=\"false\"\n class=\"flex w-full\"\n>\n <mat-button-toggle\n *ngFor=\"let option of options\"\n [aria-label]=\"option.label\"\n [checked]=\"option.checked\"\n (change)=\"onChange(option)\"\n [class]=\"extraClasses\"\n >{{ option.label }}</mat-button-toggle\n >\n</mat-button-toggle-group>\n", styles: [":host{--mat-standard-button-toggle-height: 32px}.mat-button-toggle-group-appearance-standard{background-color:var(--color-gray-200);padding:4px;display:flex;gap:4px;border-radius:8px}.mat-button-toggle-appearance-standard{color
|
|
27646
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SwitchToggleComponent, isStandalone: true, selector: "gn-ui-switch-toggle", inputs: { options: "options", ariaLabel: "ariaLabel", extraClasses: "extraClasses" }, outputs: { selectedValue: "selectedValue" }, ngImport: i0, template: "<mat-button-toggle-group\n #group=\"matButtonToggleGroup\"\n multiple=\"false\"\n class=\"flex w-full\"\n>\n <mat-button-toggle\n *ngFor=\"let option of options\"\n [aria-label]=\"option.label\"\n [checked]=\"option.checked\"\n (change)=\"onChange(option)\"\n [class]=\"extraClasses\"\n >{{ option.label }}</mat-button-toggle\n >\n</mat-button-toggle-group>\n", styles: [":host{--mat-standard-button-toggle-height: 32px}.mat-button-toggle-group-appearance-standard{background-color:var(--color-gray-200);padding:4px;display:flex;gap:4px;border-radius:8px}.mat-button-toggle-appearance-standard{color:#000;background-color:var(--color-gray-200);border-radius:4px;border-left:none;font-family:var(--font-family-main)}.mat-button-toggle-appearance-standard.mat-button-toggle-checked{background-color:#000;color:var(--color-background)}button.mat-button-toggle-button.mat-focus-indicator.mat-button-toggle-label-content,.mat-button-toggle-label-content{line-height:32px}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonToggleModule }, { kind: "directive", type: i1$7.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i1$7.MatButtonToggle, selector: "mat-button-toggle", inputs: ["disableRipple", "aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "appearance", "checked", "disabled"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
27525
27647
|
}
|
|
27526
27648
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SwitchToggleComponent, decorators: [{
|
|
27527
27649
|
type: Component,
|
|
27528
|
-
args: [{ selector: 'gn-ui-switch-toggle', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [MatButtonToggleModule, CommonModule], template: "<mat-button-toggle-group\n #group=\"matButtonToggleGroup\"\n multiple=\"false\"\n class=\"flex w-full\"\n>\n <mat-button-toggle\n *ngFor=\"let option of options\"\n [aria-label]=\"option.label\"\n [checked]=\"option.checked\"\n (change)=\"onChange(option)\"\n [class]=\"extraClasses\"\n >{{ option.label }}</mat-button-toggle\n >\n</mat-button-toggle-group>\n", styles: [":host{--mat-standard-button-toggle-height: 32px}.mat-button-toggle-group-appearance-standard{background-color:var(--color-gray-200);padding:4px;display:flex;gap:4px;border-radius:8px}.mat-button-toggle-appearance-standard{color
|
|
27650
|
+
args: [{ selector: 'gn-ui-switch-toggle', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [MatButtonToggleModule, CommonModule], template: "<mat-button-toggle-group\n #group=\"matButtonToggleGroup\"\n multiple=\"false\"\n class=\"flex w-full\"\n>\n <mat-button-toggle\n *ngFor=\"let option of options\"\n [aria-label]=\"option.label\"\n [checked]=\"option.checked\"\n (change)=\"onChange(option)\"\n [class]=\"extraClasses\"\n >{{ option.label }}</mat-button-toggle\n >\n</mat-button-toggle-group>\n", styles: [":host{--mat-standard-button-toggle-height: 32px}.mat-button-toggle-group-appearance-standard{background-color:var(--color-gray-200);padding:4px;display:flex;gap:4px;border-radius:8px}.mat-button-toggle-appearance-standard{color:#000;background-color:var(--color-gray-200);border-radius:4px;border-left:none;font-family:var(--font-family-main)}.mat-button-toggle-appearance-standard.mat-button-toggle-checked{background-color:#000;color:var(--color-background)}button.mat-button-toggle-button.mat-focus-indicator.mat-button-toggle-label-content,.mat-button-toggle-label-content{line-height:32px}\n"] }]
|
|
27529
27651
|
}], propDecorators: { options: [{
|
|
27530
27652
|
type: Input
|
|
27531
27653
|
}], ariaLabel: [{
|
|
@@ -27584,7 +27706,7 @@ class FileInputComponent {
|
|
|
27584
27706
|
this.uploadCancel.emit();
|
|
27585
27707
|
}
|
|
27586
27708
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FileInputComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27587
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FileInputComponent, isStandalone: true, selector: "gn-ui-file-input", inputs: { maxSizeMB: "maxSizeMB", uploadProgress: "uploadProgress" }, outputs: { fileChange: "fileChange", urlChange: "urlChange", uploadCancel: "uploadCancel" }, ngImport: i0, template: "<div class=\"w-full flex flex-col gap-[16px]\">\n <label\n gnUiFilesDrop\n class=\"flex-1 border-2 border-dashed rounded-lg p-6 flex flex-col items-center justify-center gap-4 transition-colors duration-100\"\n [ngClass]=\"{\n 'border-primary-lighter bg-primary-white': dragFilesOver,\n 'border-gray-300': !dragFilesOver\n }\"\n (dragFilesOver)=\"handleDragFilesOver($event)\"\n (dropFiles)=\"handleDropFiles($event)\"\n >\n <div\n class=\"w-14 h-14 rounded-md bg-gray-50 grid\"\n *ngIf=\"!isUploadInProgress\"\n >\n <mat-icon\n *ngIf=\"!dragFilesOver\"\n class=\"material-symbols-outlined place-self-center text-primary\"\n >cloud_upload</mat-icon\n >\n <mat-icon\n *ngIf=\"dragFilesOver\"\n class=\"material-symbols-outlined place-self-center text-primary\"\n >add_box</mat-icon\n >\n </div>\n <div\n *ngIf=\"isUploadInProgress\"\n class=\"w-14 h-14 grid items-center justify-center\"\n >\n <div class=\"text-gray-100 absolute\">\n <mat-progress-spinner\n class=\"place-self-center\"\n [diameter]=\"56\"\n mode=\"determinate\"\n [value]=\"100\"\n ></mat-progress-spinner>\n </div>\n <div class=\"text-primary absolute\">\n <mat-progress-spinner\n class=\"place-self-center\"\n [diameter]=\"56\"\n mode=\"determinate\"\n [value]=\"uploadProgress\"\n ></mat-progress-spinner>\n </div>\n <span class=\"text-sm text-main font-bold\">{{ uploadProgress }}%</span>\n </div>\n <div class=\"flex flex-col items-center gap-1\">\n <p class=\"font-medium\">\n {{ getPrimaryText() | translate: { sizeMB: maxSizeMB.toFixed(0) } }}\n </p>\n <p\n class=\"text-sm\"\n [class]=\"\n isUploadInProgress\n ? 'font-bold text-primary cursor-pointer'\n : 'font-medium text-gray-500'\n \"\n (click)=\"handleSecondaryTextClick($event)\"\n >\n {{ getSecondaryText() | translate }}\n </p>\n </div>\n <p class=\"w-full flex flex-row items-center justify-stretch gap-[16px]\">\n <span class=\"border-b border-gray-300 grow\"></span>\n <span class=\"text-sm font-medium text-gray-500 or-input-url\" translate>\n input.file.orInputUrl</span\n >\n <span class=\"border-b border-gray-300 grow\"></span>\n </p>\n <input\n type=\"file\"\n class=\"hidden\"\n (change)=\"handleFileInput($event)\"\n [disabled]=\"isUploadInProgress\"\n />\n\n <gn-ui-url-input\n class=\"w-full\"\n [disabled]=\"isUploadInProgress\"\n (valueChange)=\"handleUrlChange($event)\"\n ></gn-ui-url-input>\n </label>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: FilesDropDirective, selector: "[gnUiFilesDrop]", outputs: ["dragFilesOver", "dropFiles"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i1$4.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { 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: UrlInputComponent, selector: "gn-ui-url-input", inputs: ["value", "extraClass", "placeholder", "disabled"], outputs: ["valueChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
27709
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FileInputComponent, isStandalone: true, selector: "gn-ui-file-input", inputs: { maxSizeMB: "maxSizeMB", uploadProgress: "uploadProgress" }, outputs: { fileChange: "fileChange", urlChange: "urlChange", uploadCancel: "uploadCancel" }, ngImport: i0, template: "<div class=\"w-full flex flex-col gap-[16px]\">\n <label\n gnUiFilesDrop\n class=\"flex-1 border-2 border-dashed rounded-lg p-6 flex flex-col items-center justify-center gap-4 transition-colors duration-100\"\n [ngClass]=\"{\n 'border-primary-lighter bg-primary-white': dragFilesOver,\n 'border-gray-300': !dragFilesOver,\n 'cursor-pointer hover:border-gray-500': !isUploadInProgress\n }\"\n [attr.tabindex]=\"isUploadInProgress ? null : 0\"\n (dragFilesOver)=\"handleDragFilesOver($event)\"\n (dropFiles)=\"handleDropFiles($event)\"\n (keydown.enter)=\"fileInput.click()\"\n >\n <div\n class=\"w-14 h-14 rounded-md bg-gray-50 grid\"\n *ngIf=\"!isUploadInProgress\"\n >\n <mat-icon\n *ngIf=\"!dragFilesOver\"\n class=\"material-symbols-outlined place-self-center text-primary\"\n >cloud_upload</mat-icon\n >\n <mat-icon\n *ngIf=\"dragFilesOver\"\n class=\"material-symbols-outlined place-self-center text-primary\"\n >add_box</mat-icon\n >\n </div>\n <div\n *ngIf=\"isUploadInProgress\"\n class=\"w-14 h-14 grid items-center justify-center relative\"\n >\n <div class=\"text-gray-100 absolute\">\n <mat-progress-spinner\n class=\"place-self-center\"\n [diameter]=\"56\"\n mode=\"determinate\"\n [value]=\"100\"\n ></mat-progress-spinner>\n </div>\n <div class=\"text-primary absolute\">\n <mat-progress-spinner\n class=\"place-self-center\"\n [diameter]=\"56\"\n mode=\"determinate\"\n [value]=\"uploadProgress\"\n ></mat-progress-spinner>\n </div>\n <span class=\"text-sm text-main font-bold\">{{ uploadProgress }}%</span>\n </div>\n <div class=\"flex flex-col items-center gap-1\">\n <p class=\"font-medium\">\n {{ getPrimaryText() | translate: { sizeMB: maxSizeMB.toFixed(0) } }}\n </p>\n <p\n class=\"text-sm\"\n [class]=\"\n isUploadInProgress\n ? 'font-bold text-primary cursor-pointer'\n : 'font-medium text-gray-500'\n \"\n (click)=\"handleSecondaryTextClick($event)\"\n >\n {{ getSecondaryText() | translate }}\n </p>\n </div>\n <p class=\"w-full flex flex-row items-center justify-stretch gap-[16px]\">\n <span class=\"border-b border-gray-300 grow\"></span>\n <span class=\"text-sm font-medium text-gray-500 or-input-url\" translate>\n input.file.orInputUrl</span\n >\n <span class=\"border-b border-gray-300 grow\"></span>\n </p>\n <input\n #fileInput\n type=\"file\"\n class=\"hidden\"\n (change)=\"handleFileInput($event)\"\n [disabled]=\"isUploadInProgress\"\n />\n\n <gn-ui-url-input\n class=\"w-full\"\n [disabled]=\"isUploadInProgress\"\n (valueChange)=\"handleUrlChange($event)\"\n ></gn-ui-url-input>\n </label>\n</div>\n", styles: [":host{--gn-ui-button-padding: 8px 8px;--gn-ui-button-rounded: 8px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: FilesDropDirective, selector: "[gnUiFilesDrop]", outputs: ["dragFilesOver", "dropFiles"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i1$4.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { 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: UrlInputComponent, selector: "gn-ui-url-input", inputs: ["value", "extraClass", "placeholder", "disabled"], outputs: ["valueChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
27588
27710
|
}
|
|
27589
27711
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FileInputComponent, decorators: [{
|
|
27590
27712
|
type: Component,
|
|
@@ -27596,7 +27718,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
27596
27718
|
MatProgressSpinnerModule,
|
|
27597
27719
|
TranslateModule,
|
|
27598
27720
|
UrlInputComponent,
|
|
27599
|
-
], template: "<div class=\"w-full flex flex-col gap-[16px]\">\n <label\n gnUiFilesDrop\n class=\"flex-1 border-2 border-dashed rounded-lg p-6 flex flex-col items-center justify-center gap-4 transition-colors duration-100\"\n [ngClass]=\"{\n 'border-primary-lighter bg-primary-white': dragFilesOver,\n 'border-gray-300': !dragFilesOver\n }\"\n (dragFilesOver)=\"handleDragFilesOver($event)\"\n (dropFiles)=\"handleDropFiles($event)\"\n >\n <div\n class=\"w-14 h-14 rounded-md bg-gray-50 grid\"\n *ngIf=\"!isUploadInProgress\"\n >\n <mat-icon\n *ngIf=\"!dragFilesOver\"\n class=\"material-symbols-outlined place-self-center text-primary\"\n >cloud_upload</mat-icon\n >\n <mat-icon\n *ngIf=\"dragFilesOver\"\n class=\"material-symbols-outlined place-self-center text-primary\"\n >add_box</mat-icon\n >\n </div>\n <div\n *ngIf=\"isUploadInProgress\"\n class=\"w-14 h-14 grid items-center justify-center\"\n >\n <div class=\"text-gray-100 absolute\">\n <mat-progress-spinner\n class=\"place-self-center\"\n [diameter]=\"56\"\n mode=\"determinate\"\n [value]=\"100\"\n ></mat-progress-spinner>\n </div>\n <div class=\"text-primary absolute\">\n <mat-progress-spinner\n class=\"place-self-center\"\n [diameter]=\"56\"\n mode=\"determinate\"\n [value]=\"uploadProgress\"\n ></mat-progress-spinner>\n </div>\n <span class=\"text-sm text-main font-bold\">{{ uploadProgress }}%</span>\n </div>\n <div class=\"flex flex-col items-center gap-1\">\n <p class=\"font-medium\">\n {{ getPrimaryText() | translate: { sizeMB: maxSizeMB.toFixed(0) } }}\n </p>\n <p\n class=\"text-sm\"\n [class]=\"\n isUploadInProgress\n ? 'font-bold text-primary cursor-pointer'\n : 'font-medium text-gray-500'\n \"\n (click)=\"handleSecondaryTextClick($event)\"\n >\n {{ getSecondaryText() | translate }}\n </p>\n </div>\n <p class=\"w-full flex flex-row items-center justify-stretch gap-[16px]\">\n <span class=\"border-b border-gray-300 grow\"></span>\n <span class=\"text-sm font-medium text-gray-500 or-input-url\" translate>\n input.file.orInputUrl</span\n >\n <span class=\"border-b border-gray-300 grow\"></span>\n </p>\n <input\n type=\"file\"\n class=\"hidden\"\n (change)=\"handleFileInput($event)\"\n [disabled]=\"isUploadInProgress\"\n />\n\n <gn-ui-url-input\n class=\"w-full\"\n [disabled]=\"isUploadInProgress\"\n (valueChange)=\"handleUrlChange($event)\"\n ></gn-ui-url-input>\n </label>\n</div>\n" }]
|
|
27721
|
+
], template: "<div class=\"w-full flex flex-col gap-[16px]\">\n <label\n gnUiFilesDrop\n class=\"flex-1 border-2 border-dashed rounded-lg p-6 flex flex-col items-center justify-center gap-4 transition-colors duration-100\"\n [ngClass]=\"{\n 'border-primary-lighter bg-primary-white': dragFilesOver,\n 'border-gray-300': !dragFilesOver,\n 'cursor-pointer hover:border-gray-500': !isUploadInProgress\n }\"\n [attr.tabindex]=\"isUploadInProgress ? null : 0\"\n (dragFilesOver)=\"handleDragFilesOver($event)\"\n (dropFiles)=\"handleDropFiles($event)\"\n (keydown.enter)=\"fileInput.click()\"\n >\n <div\n class=\"w-14 h-14 rounded-md bg-gray-50 grid\"\n *ngIf=\"!isUploadInProgress\"\n >\n <mat-icon\n *ngIf=\"!dragFilesOver\"\n class=\"material-symbols-outlined place-self-center text-primary\"\n >cloud_upload</mat-icon\n >\n <mat-icon\n *ngIf=\"dragFilesOver\"\n class=\"material-symbols-outlined place-self-center text-primary\"\n >add_box</mat-icon\n >\n </div>\n <div\n *ngIf=\"isUploadInProgress\"\n class=\"w-14 h-14 grid items-center justify-center relative\"\n >\n <div class=\"text-gray-100 absolute\">\n <mat-progress-spinner\n class=\"place-self-center\"\n [diameter]=\"56\"\n mode=\"determinate\"\n [value]=\"100\"\n ></mat-progress-spinner>\n </div>\n <div class=\"text-primary absolute\">\n <mat-progress-spinner\n class=\"place-self-center\"\n [diameter]=\"56\"\n mode=\"determinate\"\n [value]=\"uploadProgress\"\n ></mat-progress-spinner>\n </div>\n <span class=\"text-sm text-main font-bold\">{{ uploadProgress }}%</span>\n </div>\n <div class=\"flex flex-col items-center gap-1\">\n <p class=\"font-medium\">\n {{ getPrimaryText() | translate: { sizeMB: maxSizeMB.toFixed(0) } }}\n </p>\n <p\n class=\"text-sm\"\n [class]=\"\n isUploadInProgress\n ? 'font-bold text-primary cursor-pointer'\n : 'font-medium text-gray-500'\n \"\n (click)=\"handleSecondaryTextClick($event)\"\n >\n {{ getSecondaryText() | translate }}\n </p>\n </div>\n <p class=\"w-full flex flex-row items-center justify-stretch gap-[16px]\">\n <span class=\"border-b border-gray-300 grow\"></span>\n <span class=\"text-sm font-medium text-gray-500 or-input-url\" translate>\n input.file.orInputUrl</span\n >\n <span class=\"border-b border-gray-300 grow\"></span>\n </p>\n <input\n #fileInput\n type=\"file\"\n class=\"hidden\"\n (change)=\"handleFileInput($event)\"\n [disabled]=\"isUploadInProgress\"\n />\n\n <gn-ui-url-input\n class=\"w-full\"\n [disabled]=\"isUploadInProgress\"\n (valueChange)=\"handleUrlChange($event)\"\n ></gn-ui-url-input>\n </label>\n</div>\n", styles: [":host{--gn-ui-button-padding: 8px 8px;--gn-ui-button-rounded: 8px}\n"] }]
|
|
27600
27722
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { maxSizeMB: [{
|
|
27601
27723
|
type: Input
|
|
27602
27724
|
}], uploadProgress: [{
|
|
@@ -28689,6 +28811,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
28689
28811
|
class MarkdownEditorComponent {
|
|
28690
28812
|
constructor() {
|
|
28691
28813
|
this.preview = false;
|
|
28814
|
+
this.textAreaExtraClass = '';
|
|
28692
28815
|
this.textContentChanged = new EventEmitter();
|
|
28693
28816
|
}
|
|
28694
28817
|
textContentChangedHandler(textContent) {
|
|
@@ -28696,7 +28819,7 @@ class MarkdownEditorComponent {
|
|
|
28696
28819
|
this.textContentChanged.emit(this.textContent);
|
|
28697
28820
|
}
|
|
28698
28821
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MarkdownEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
28699
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MarkdownEditorComponent, isStandalone: true, selector: "gn-ui-markdown-editor", inputs: { preview: "preview",
|
|
28822
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MarkdownEditorComponent, isStandalone: true, selector: "gn-ui-markdown-editor", inputs: { preview: "preview", placeholder: "placeholder", textContent: "textContent", textAreaExtraClass: "textAreaExtraClass" }, outputs: { textContentChanged: "textContentChanged" }, ngImport: i0, template: "<gn-ui-text-area\n [hidden]=\"preview\"\n [placeholder]=\"placeholder\"\n [value]=\"textContent\"\n [extraClass]=\"textAreaExtraClass + ' !leading-normal'\"\n (valueChange)=\"textContentChangedHandler($event)\"\n></gn-ui-text-area>\n\n<div\n class=\"gn-ui-text-input border-gray-100 hover:border-gray-100\"\n [hidden]=\"!preview\"\n>\n <gn-ui-markdown-parser [textContent]=\"textContent\"></gn-ui-markdown-parser>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "component", type: TextAreaComponent, selector: "gn-ui-text-area", inputs: ["value", "disabled", "extraClass", "placeholder", "required"], outputs: ["valueChange"] }, { kind: "component", type: MarkdownParserComponent, selector: "gn-ui-markdown-parser", inputs: ["textContent"] }, { kind: "ngmodule", type: TranslateModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
28700
28823
|
}
|
|
28701
28824
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MarkdownEditorComponent, decorators: [{
|
|
28702
28825
|
type: Component,
|
|
@@ -28709,15 +28832,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
28709
28832
|
TextAreaComponent,
|
|
28710
28833
|
MarkdownParserComponent,
|
|
28711
28834
|
TranslateModule,
|
|
28712
|
-
], template: "<
|
|
28835
|
+
], template: "<gn-ui-text-area\n [hidden]=\"preview\"\n [placeholder]=\"placeholder\"\n [value]=\"textContent\"\n [extraClass]=\"textAreaExtraClass + ' !leading-normal'\"\n (valueChange)=\"textContentChangedHandler($event)\"\n></gn-ui-text-area>\n\n<div\n class=\"gn-ui-text-input border-gray-100 hover:border-gray-100\"\n [hidden]=\"!preview\"\n>\n <gn-ui-markdown-parser [textContent]=\"textContent\"></gn-ui-markdown-parser>\n</div>\n" }]
|
|
28713
28836
|
}], propDecorators: { preview: [{
|
|
28714
28837
|
type: Input
|
|
28715
|
-
}], helperText: [{
|
|
28716
|
-
type: Input
|
|
28717
28838
|
}], placeholder: [{
|
|
28718
28839
|
type: Input
|
|
28719
28840
|
}], textContent: [{
|
|
28720
28841
|
type: Input
|
|
28842
|
+
}], textAreaExtraClass: [{
|
|
28843
|
+
type: Input
|
|
28721
28844
|
}], textContentChanged: [{
|
|
28722
28845
|
type: Output
|
|
28723
28846
|
}] } });
|
|
@@ -30811,11 +30934,11 @@ class FuzzySearchComponent {
|
|
|
30811
30934
|
}
|
|
30812
30935
|
}
|
|
30813
30936
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FuzzySearchComponent, deps: [{ token: SearchFacade }, { token: SearchService }, { token: RecordsRepositoryInterface }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
30814
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FuzzySearchComponent, selector: "gn-ui-fuzzy-search", inputs: { autoFocus: "autoFocus" }, outputs: { itemSelected: "itemSelected", inputSubmitted: "inputSubmitted" }, viewQueries: [{ propertyName: "autocomplete", first: true, predicate: AutocompleteComponent, descendants: true }], ngImport: i0, template: "<gn-ui-autocomplete\n [placeholder]=\"'search.field.any.placeholder' | translate\"\n [displayWithFn]=\"displayWithFn\"\n [action]=\"autoCompleteAction\"\n (itemSelected)=\"handleItemSelection($event)\"\n (inputSubmitted)=\"handleInputSubmission($event)\"\n (inputCleared)=\"handleInputCleared()\"\n [value]=\"searchInputValue$ | async\"\n [preventCompleteOnSelection]=\"true\"\n [autoFocus]=\"autoFocus\"\n></gn-ui-autocomplete>\n", styles: [""], dependencies: [{ kind: "component", type: AutocompleteComponent, selector: "gn-ui-autocomplete", inputs: ["placeholder", "action", "value", "clearOnSelection", "preventCompleteOnSelection", "autoFocus", "minCharacterCount", "allowSubmit", "displayWithFn"], outputs: ["itemSelected", "inputSubmitted", "inputCleared"] }, { kind: "pipe", type: i1$3.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
30937
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FuzzySearchComponent, selector: "gn-ui-fuzzy-search", inputs: { autoFocus: "autoFocus" }, outputs: { itemSelected: "itemSelected", inputSubmitted: "inputSubmitted" }, viewQueries: [{ propertyName: "autocomplete", first: true, predicate: AutocompleteComponent, descendants: true }], ngImport: i0, template: "<gn-ui-autocomplete\n [placeholder]=\"'search.field.any.placeholder' | translate\"\n [displayWithFn]=\"displayWithFn\"\n [action]=\"autoCompleteAction\"\n (itemSelected)=\"handleItemSelection($event)\"\n (inputSubmitted)=\"handleInputSubmission($event)\"\n (inputCleared)=\"handleInputCleared()\"\n [value]=\"searchInputValue$ | async\"\n [preventCompleteOnSelection]=\"true\"\n [autoFocus]=\"autoFocus\"\n [allowSubmit]=\"true\"\n></gn-ui-autocomplete>\n", styles: [""], dependencies: [{ kind: "component", type: AutocompleteComponent, selector: "gn-ui-autocomplete", inputs: ["placeholder", "action", "value", "clearOnSelection", "preventCompleteOnSelection", "autoFocus", "minCharacterCount", "allowSubmit", "displayWithFn"], outputs: ["itemSelected", "inputSubmitted", "inputCleared"] }, { kind: "pipe", type: i1$3.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
30815
30938
|
}
|
|
30816
30939
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FuzzySearchComponent, decorators: [{
|
|
30817
30940
|
type: Component,
|
|
30818
|
-
args: [{ selector: 'gn-ui-fuzzy-search', changeDetection: ChangeDetectionStrategy.OnPush, template: "<gn-ui-autocomplete\n [placeholder]=\"'search.field.any.placeholder' | translate\"\n [displayWithFn]=\"displayWithFn\"\n [action]=\"autoCompleteAction\"\n (itemSelected)=\"handleItemSelection($event)\"\n (inputSubmitted)=\"handleInputSubmission($event)\"\n (inputCleared)=\"handleInputCleared()\"\n [value]=\"searchInputValue$ | async\"\n [preventCompleteOnSelection]=\"true\"\n [autoFocus]=\"autoFocus\"\n></gn-ui-autocomplete>\n" }]
|
|
30941
|
+
args: [{ selector: 'gn-ui-fuzzy-search', changeDetection: ChangeDetectionStrategy.OnPush, template: "<gn-ui-autocomplete\n [placeholder]=\"'search.field.any.placeholder' | translate\"\n [displayWithFn]=\"displayWithFn\"\n [action]=\"autoCompleteAction\"\n (itemSelected)=\"handleItemSelection($event)\"\n (inputSubmitted)=\"handleInputSubmission($event)\"\n (inputCleared)=\"handleInputCleared()\"\n [value]=\"searchInputValue$ | async\"\n [preventCompleteOnSelection]=\"true\"\n [autoFocus]=\"autoFocus\"\n [allowSubmit]=\"true\"\n></gn-ui-autocomplete>\n" }]
|
|
30819
30942
|
}], ctorParameters: function () { return [{ type: SearchFacade }, { type: SearchService }, { type: RecordsRepositoryInterface }]; }, propDecorators: { autocomplete: [{
|
|
30820
30943
|
type: ViewChild,
|
|
30821
30944
|
args: [AutocompleteComponent]
|
|
@@ -35387,6 +35510,7 @@ const RECORD_RESOURCE_UPDATED_FIELD = {
|
|
|
35387
35510
|
formFieldConfig: {
|
|
35388
35511
|
labelKey: marker('editor.record.form.field.resourceUpdated'),
|
|
35389
35512
|
},
|
|
35513
|
+
gridColumnSpan: 1,
|
|
35390
35514
|
};
|
|
35391
35515
|
const RECORD_UPDATED_FIELD = {
|
|
35392
35516
|
model: 'recordUpdated',
|
|
@@ -35395,13 +35519,14 @@ const RECORD_UPDATED_FIELD = {
|
|
|
35395
35519
|
locked: true,
|
|
35396
35520
|
},
|
|
35397
35521
|
onSaveProcess: '${dateNow()}',
|
|
35522
|
+
gridColumnSpan: 1,
|
|
35398
35523
|
};
|
|
35399
35524
|
const RECORD_UPDATE_FREQUENCY_FIELD = {
|
|
35400
35525
|
model: 'updateFrequency',
|
|
35401
|
-
formFieldConfig: {
|
|
35402
|
-
labelKey: marker('editor.record.form.field.updateFrequency'),
|
|
35403
|
-
},
|
|
35526
|
+
formFieldConfig: {},
|
|
35404
35527
|
};
|
|
35528
|
+
// keeping track of the label to not lose existing translation
|
|
35529
|
+
marker('editor.record.form.field.updateFrequency');
|
|
35405
35530
|
const RECORD_TEMPORAL_EXTENTS_FIELD = {
|
|
35406
35531
|
model: 'temporalExtents',
|
|
35407
35532
|
formFieldConfig: {
|
|
@@ -36176,6 +36301,83 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
36176
36301
|
}]
|
|
36177
36302
|
}] });
|
|
36178
36303
|
|
|
36304
|
+
class ImportRecordComponent {
|
|
36305
|
+
constructor(router, translateService, cdr, notificationsService, recordsRepository) {
|
|
36306
|
+
this.router = router;
|
|
36307
|
+
this.translateService = translateService;
|
|
36308
|
+
this.cdr = cdr;
|
|
36309
|
+
this.notificationsService = notificationsService;
|
|
36310
|
+
this.recordsRepository = recordsRepository;
|
|
36311
|
+
this.closeImportMenu = new EventEmitter();
|
|
36312
|
+
this.importMenuItems = [
|
|
36313
|
+
{
|
|
36314
|
+
label: this.translateService.instant('dashboard.importRecord.useModel'),
|
|
36315
|
+
icon: 'highlight',
|
|
36316
|
+
action: () => null,
|
|
36317
|
+
dataTest: 'useAModelButton',
|
|
36318
|
+
},
|
|
36319
|
+
{
|
|
36320
|
+
label: this.translateService.instant('dashboard.importRecord.importExternal'),
|
|
36321
|
+
icon: 'cloud_download',
|
|
36322
|
+
action: this.displayImportExternal.bind(this),
|
|
36323
|
+
dataTest: 'importFromUrlButton',
|
|
36324
|
+
},
|
|
36325
|
+
];
|
|
36326
|
+
this.isRecordImportInProgress = false;
|
|
36327
|
+
this.sectionDisplayed = 'mainMenu';
|
|
36328
|
+
this.externalImportBackLabel = this.translateService.instant('dashboard.importRecord.importExternalLabel');
|
|
36329
|
+
}
|
|
36330
|
+
displayMainMenu() {
|
|
36331
|
+
this.sectionDisplayed = 'mainMenu';
|
|
36332
|
+
this.cdr.markForCheck();
|
|
36333
|
+
}
|
|
36334
|
+
displayImportExternal() {
|
|
36335
|
+
this.sectionDisplayed = 'importExternalFile';
|
|
36336
|
+
this.cdr.markForCheck();
|
|
36337
|
+
}
|
|
36338
|
+
importRecord(url) {
|
|
36339
|
+
this.isRecordImportInProgress = true;
|
|
36340
|
+
this.recordsRepository.duplicateExternalRecord(url).subscribe({
|
|
36341
|
+
next: (recordTempId) => {
|
|
36342
|
+
if (recordTempId) {
|
|
36343
|
+
this.notificationsService.showNotification({
|
|
36344
|
+
type: 'success',
|
|
36345
|
+
title: this.translateService.instant('editor.record.importFromExternalFile.success.title'),
|
|
36346
|
+
text: `${this.translateService.instant('editor.record.importFromExternalFile.success.body')}`,
|
|
36347
|
+
}, 2500);
|
|
36348
|
+
this.router
|
|
36349
|
+
.navigate(['/edit', recordTempId])
|
|
36350
|
+
.catch((err) => console.error(err));
|
|
36351
|
+
}
|
|
36352
|
+
this.closeImportMenu.next();
|
|
36353
|
+
},
|
|
36354
|
+
error: (error) => {
|
|
36355
|
+
this.notificationsService.showNotification({
|
|
36356
|
+
type: 'error',
|
|
36357
|
+
title: this.translateService.instant('editor.record.importFromExternalFile.failure.title'),
|
|
36358
|
+
text: `${this.translateService.instant('editor.record.importFromExternalFile.failure.body')} ${error.message ?? ''}`,
|
|
36359
|
+
}, 2500);
|
|
36360
|
+
this.isRecordImportInProgress = false;
|
|
36361
|
+
this.cdr.markForCheck();
|
|
36362
|
+
},
|
|
36363
|
+
});
|
|
36364
|
+
}
|
|
36365
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ImportRecordComponent, deps: [{ token: i1$9.Router }, { token: i1$1.TranslateService }, { token: i0.ChangeDetectorRef }, { token: NotificationsService }, { token: RecordsRepositoryInterface }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
36366
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ImportRecordComponent, isStandalone: true, selector: "gn-ui-import-record", outputs: { closeImportMenu: "closeImportMenu" }, ngImport: i0, template: "<ng-container [ngSwitch]=\"sectionDisplayed\">\n <ng-container *ngSwitchCase=\"'mainMenu'\">\n <div\n data-test=\"importMenuMainSection\"\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 <li *ngFor=\"let menuItem of importMenuItems\">\n <gn-ui-button\n [attr.data-test]=\"menuItem.dataTest\"\n type=\"light\"\n extraClass=\"flex flex-row items-center gap-2 w-full justify-start\"\n (buttonClick)=\"menuItem.action()\"\n ><mat-icon class=\"material-symbols-outlined\">\n {{ menuItem.icon }} </mat-icon\n ><span>{{ menuItem.label }}</span></gn-ui-button\n >\n </li>\n </ul>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'importExternalFile'\">\n <div\n data-test=\"importMenuImportExternalFileSection\"\n class=\"p-6 flex flex-col gap-2 mt-2 border border-gray-100 bg-white shadow-2xl rounded-2xl\"\n >\n <div class=\"flex flex-row items-center gap-2\">\n <gn-ui-button\n data-test=\"importMenuImportExternalFileSectionBackButton\"\n type=\"light\"\n (buttonClick)=\"displayMainMenu()\"\n >\n <mat-icon class=\"material-symbols-outlined\">arrow_back</mat-icon>\n </gn-ui-button>\n <span class=\"font-bold\"> {{ externalImportBackLabel }}</span>\n </div>\n <gn-ui-url-input\n (valueChange)=\"importRecord($event)\"\n [disabled]=\"isRecordImportInProgress\"\n ></gn-ui-url-input>\n </div>\n </ng-container>\n</ng-container>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1$3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "component", type: UrlInputComponent, selector: "gn-ui-url-input", inputs: ["value", "extraClass", "placeholder", "disabled"], outputs: ["valueChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
36367
|
+
}
|
|
36368
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ImportRecordComponent, decorators: [{
|
|
36369
|
+
type: Component,
|
|
36370
|
+
args: [{ selector: 'gn-ui-import-record', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
36371
|
+
CommonModule,
|
|
36372
|
+
MatIconModule,
|
|
36373
|
+
ButtonComponent,
|
|
36374
|
+
ThumbnailComponent,
|
|
36375
|
+
UrlInputComponent,
|
|
36376
|
+
], template: "<ng-container [ngSwitch]=\"sectionDisplayed\">\n <ng-container *ngSwitchCase=\"'mainMenu'\">\n <div\n data-test=\"importMenuMainSection\"\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 <li *ngFor=\"let menuItem of importMenuItems\">\n <gn-ui-button\n [attr.data-test]=\"menuItem.dataTest\"\n type=\"light\"\n extraClass=\"flex flex-row items-center gap-2 w-full justify-start\"\n (buttonClick)=\"menuItem.action()\"\n ><mat-icon class=\"material-symbols-outlined\">\n {{ menuItem.icon }} </mat-icon\n ><span>{{ menuItem.label }}</span></gn-ui-button\n >\n </li>\n </ul>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'importExternalFile'\">\n <div\n data-test=\"importMenuImportExternalFileSection\"\n class=\"p-6 flex flex-col gap-2 mt-2 border border-gray-100 bg-white shadow-2xl rounded-2xl\"\n >\n <div class=\"flex flex-row items-center gap-2\">\n <gn-ui-button\n data-test=\"importMenuImportExternalFileSectionBackButton\"\n type=\"light\"\n (buttonClick)=\"displayMainMenu()\"\n >\n <mat-icon class=\"material-symbols-outlined\">arrow_back</mat-icon>\n </gn-ui-button>\n <span class=\"font-bold\"> {{ externalImportBackLabel }}</span>\n </div>\n <gn-ui-url-input\n (valueChange)=\"importRecord($event)\"\n [disabled]=\"isRecordImportInProgress\"\n ></gn-ui-url-input>\n </div>\n </ng-container>\n</ng-container>\n" }]
|
|
36377
|
+
}], ctorParameters: function () { return [{ type: i1$9.Router }, { type: i1$1.TranslateService }, { type: i0.ChangeDetectorRef }, { type: NotificationsService }, { type: RecordsRepositoryInterface }]; }, propDecorators: { closeImportMenu: [{
|
|
36378
|
+
type: Output
|
|
36379
|
+
}] } });
|
|
36380
|
+
|
|
36179
36381
|
class GenericKeywordsComponent {
|
|
36180
36382
|
constructor(platformService) {
|
|
36181
36383
|
this.platformService = platformService;
|
|
@@ -36213,7 +36415,7 @@ class GenericKeywordsComponent {
|
|
|
36213
36415
|
return !keyword.bbox;
|
|
36214
36416
|
}
|
|
36215
36417
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GenericKeywordsComponent, deps: [{ token: PlatformServiceInterface }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
36216
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: GenericKeywordsComponent, isStandalone: true, selector: "gn-ui-generic-keywords", inputs: { keywords: "keywords", keywordTypes: "keywordTypes", placeholder: "placeholder" }, outputs: { changedKeywords: "changedKeywords", addedKeyword: "addedKeyword", deletedKeyword: "deletedKeyword" }, ngImport: i0, template: "<div class=\"flex flex-col gap-3\">\n <gn-ui-autocomplete\n [placeholder]=\"placeholder\"\n [displayWithFn]=\"displayWithFn\"\n [action]=\"autoCompleteAction\"\n (itemSelected)=\"handleItemSelection($event)\"\n [preventCompleteOnSelection]=\"true\"\n [minCharacterCount]=\"0\"\n [allowSubmit]=\"false\"\n ></gn-ui-autocomplete>\n <div class=\"flex gap-2 flex-wrap\">\n <gn-ui-badge\n *ngFor=\"let keyword of keywords\"\n [removable]=\"true\"\n (badgeRemoveClicked)=\"removeKeyword(keyword)\"\n >{{ keyword.label }}\n\n <mat-icon\n *ngIf=\"isPlaceWithoutExtent(keyword)\"\n [title]=\"'editor.form.placeKeywordWithoutExtent' | translate\"\n class=\"material-symbols-outlined\"\n >warning</mat-icon\n >\n </gn-ui-badge>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: UiInputsModule }, { kind: "component", type: BadgeComponent, selector: "gn-ui-badge", inputs: ["clickable", "removable"], outputs: ["badgeRemoveClicked"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: UiWidgetsModule }, { kind: "component", type: AutocompleteComponent, selector: "gn-ui-autocomplete", inputs: ["placeholder", "action", "value", "clearOnSelection", "preventCompleteOnSelection", "autoFocus", "minCharacterCount", "allowSubmit", "displayWithFn"], outputs: ["itemSelected", "inputSubmitted", "inputCleared"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
36418
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: GenericKeywordsComponent, isStandalone: true, selector: "gn-ui-generic-keywords", inputs: { keywords: "keywords", keywordTypes: "keywordTypes", placeholder: "placeholder", allowSubmit: "allowSubmit" }, outputs: { changedKeywords: "changedKeywords", addedKeyword: "addedKeyword", deletedKeyword: "deletedKeyword" }, ngImport: i0, template: "<div class=\"flex flex-col gap-3\">\n <gn-ui-autocomplete\n [placeholder]=\"placeholder\"\n [displayWithFn]=\"displayWithFn\"\n [action]=\"autoCompleteAction\"\n (itemSelected)=\"handleItemSelection($event)\"\n [preventCompleteOnSelection]=\"true\"\n [minCharacterCount]=\"0\"\n [allowSubmit]=\"false\"\n ></gn-ui-autocomplete>\n <div class=\"flex gap-2 flex-wrap\">\n <gn-ui-badge\n *ngFor=\"let keyword of keywords\"\n [removable]=\"true\"\n (badgeRemoveClicked)=\"removeKeyword(keyword)\"\n >{{ keyword.label }}\n\n <mat-icon\n *ngIf=\"isPlaceWithoutExtent(keyword)\"\n [title]=\"'editor.form.placeKeywordWithoutExtent' | translate\"\n class=\"material-symbols-outlined\"\n >warning</mat-icon\n >\n </gn-ui-badge>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: UiInputsModule }, { kind: "component", type: BadgeComponent, selector: "gn-ui-badge", inputs: ["clickable", "removable"], outputs: ["badgeRemoveClicked"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: UiWidgetsModule }, { kind: "component", type: AutocompleteComponent, selector: "gn-ui-autocomplete", inputs: ["placeholder", "action", "value", "clearOnSelection", "preventCompleteOnSelection", "autoFocus", "minCharacterCount", "allowSubmit", "displayWithFn"], outputs: ["itemSelected", "inputSubmitted", "inputCleared"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
36217
36419
|
}
|
|
36218
36420
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GenericKeywordsComponent, decorators: [{
|
|
36219
36421
|
type: Component,
|
|
@@ -36232,6 +36434,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
36232
36434
|
type: Input
|
|
36233
36435
|
}], placeholder: [{
|
|
36234
36436
|
type: Input
|
|
36437
|
+
}], allowSubmit: [{
|
|
36438
|
+
type: Input
|
|
36235
36439
|
}], changedKeywords: [{
|
|
36236
36440
|
type: Output
|
|
36237
36441
|
}], addedKeyword: [{
|
|
@@ -36241,16 +36445,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
36241
36445
|
}] } });
|
|
36242
36446
|
|
|
36243
36447
|
class FormFieldKeywordsComponent {
|
|
36244
|
-
|
|
36448
|
+
get filteredKeywords() {
|
|
36449
|
+
return (this.value?.filter((keyword) => keyword.type !== 'place' && // filter out place keywords
|
|
36450
|
+
!SPATIAL_SCOPES.some((spatialScope) => spatialScope.label === keyword.label) // filter out keywords matching spatialScope keys
|
|
36451
|
+
) || []);
|
|
36452
|
+
}
|
|
36453
|
+
constructor(editorFacade) {
|
|
36454
|
+
this.editorFacade = editorFacade;
|
|
36245
36455
|
this.valueChange = new EventEmitter();
|
|
36246
36456
|
this.keywordTypes = ['temporal', 'theme', 'other'];
|
|
36247
|
-
this.placeholder = 'editor.form.keywords.placeholder';
|
|
36248
36457
|
}
|
|
36249
|
-
handleKeywordsChange(keywords) {
|
|
36250
|
-
this.
|
|
36458
|
+
async handleKeywordsChange(keywords) {
|
|
36459
|
+
const filteredKeywords = await firstValueFrom(this.editorFacade.record$.pipe(map$2((record) => record.keywords.filter((k) => k.type === 'place' || // get back place keyword
|
|
36460
|
+
SPATIAL_SCOPES.some((spatialScope) => spatialScope.label === k.label // get back spatialScope keywords
|
|
36461
|
+
)))));
|
|
36462
|
+
const allKeywords = [...filteredKeywords, ...keywords];
|
|
36463
|
+
this.valueChange.emit(allKeywords);
|
|
36251
36464
|
}
|
|
36252
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldKeywordsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
36253
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormFieldKeywordsComponent, isStandalone: true, selector: "gn-ui-form-field-keywords", inputs: { value: "value" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div class=\"flex flex-col gap-3\">\n <gn-ui-generic-keywords\n [keywords]=\"
|
|
36465
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldKeywordsComponent, deps: [{ token: EditorFacade }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
36466
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormFieldKeywordsComponent, isStandalone: true, selector: "gn-ui-form-field-keywords", inputs: { value: "value" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div class=\"flex flex-col gap-3\">\n <gn-ui-generic-keywords\n [keywords]=\"filteredKeywords\"\n [keywordTypes]=\"keywordTypes\"\n [placeholder]=\"'editor.form.keywords.placeholder' | translate\"\n (changedKeywords)=\"handleKeywordsChange($event)\"\n [allowSubmit]=\"false\"\n >\n </gn-ui-generic-keywords>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: UiInputsModule }, { kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: UiWidgetsModule }, { kind: "component", type: GenericKeywordsComponent, selector: "gn-ui-generic-keywords", inputs: ["keywords", "keywordTypes", "placeholder", "allowSubmit"], outputs: ["changedKeywords", "addedKeyword", "deletedKeyword"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
36254
36467
|
}
|
|
36255
36468
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldKeywordsComponent, decorators: [{
|
|
36256
36469
|
type: Component,
|
|
@@ -36262,8 +36475,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
36262
36475
|
AutocompleteComponent,
|
|
36263
36476
|
GenericKeywordsComponent,
|
|
36264
36477
|
TranslateModule,
|
|
36265
|
-
], template: "<div class=\"flex flex-col gap-3\">\n <gn-ui-generic-keywords\n [keywords]=\"
|
|
36266
|
-
}], propDecorators: { value: [{
|
|
36478
|
+
], template: "<div class=\"flex flex-col gap-3\">\n <gn-ui-generic-keywords\n [keywords]=\"filteredKeywords\"\n [keywordTypes]=\"keywordTypes\"\n [placeholder]=\"'editor.form.keywords.placeholder' | translate\"\n (changedKeywords)=\"handleKeywordsChange($event)\"\n [allowSubmit]=\"false\"\n >\n </gn-ui-generic-keywords>\n</div>\n" }]
|
|
36479
|
+
}], ctorParameters: function () { return [{ type: EditorFacade }]; }, propDecorators: { value: [{
|
|
36267
36480
|
type: Input
|
|
36268
36481
|
}], valueChange: [{
|
|
36269
36482
|
type: Output
|
|
@@ -36318,11 +36531,11 @@ class FormFieldLicenseComponent {
|
|
|
36318
36531
|
this.valueChange.emit([{ text: value }]);
|
|
36319
36532
|
}
|
|
36320
36533
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldLicenseComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
36321
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormFieldLicenseComponent, isStandalone: true, selector: "gn-ui-form-field-license", inputs: { label: "label", value: "value" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<gn-ui-dropdown-selector\n [title]=\"label\"\n [showTitle]=\"false\"\n [choices]=\"choices\"\n [selected]=\"selected\"\n (selectValue)=\"onSelectValue($event)\"\n>\n</gn-ui-dropdown-selector>\n", styles: [""], dependencies: [{ kind: "component", type: DropdownSelectorComponent, selector: "gn-ui-dropdown-selector", inputs: ["title", "showTitle", "ariaName", "choices", "selected", "maxRows", "extraBtnClass", "minWidth", "disabled"], outputs: ["selectValue"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
36534
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormFieldLicenseComponent, isStandalone: true, selector: "gn-ui-form-field-license", inputs: { label: "label", value: "value" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<gn-ui-dropdown-selector\n [title]=\"label\"\n [showTitle]=\"false\"\n [choices]=\"choices\"\n [selected]=\"selected\"\n (selectValue)=\"onSelectValue($event)\"\n>\n</gn-ui-dropdown-selector>\n", styles: [":host{display:grid}gn-ui-dropdown-selector{max-width:calc(50% - 16px)}\n"], dependencies: [{ kind: "component", type: DropdownSelectorComponent, selector: "gn-ui-dropdown-selector", inputs: ["title", "showTitle", "ariaName", "choices", "selected", "maxRows", "extraBtnClass", "minWidth", "disabled"], outputs: ["selectValue"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
36322
36535
|
}
|
|
36323
36536
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldLicenseComponent, decorators: [{
|
|
36324
36537
|
type: Component,
|
|
36325
|
-
args: [{ selector: 'gn-ui-form-field-license', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [DropdownSelectorComponent], template: "<gn-ui-dropdown-selector\n [title]=\"label\"\n [showTitle]=\"false\"\n [choices]=\"choices\"\n [selected]=\"selected\"\n (selectValue)=\"onSelectValue($event)\"\n>\n</gn-ui-dropdown-selector>\n" }]
|
|
36538
|
+
args: [{ selector: 'gn-ui-form-field-license', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [DropdownSelectorComponent], template: "<gn-ui-dropdown-selector\n [title]=\"label\"\n [showTitle]=\"false\"\n [choices]=\"choices\"\n [selected]=\"selected\"\n (selectValue)=\"onSelectValue($event)\"\n>\n</gn-ui-dropdown-selector>\n", styles: [":host{display:grid}gn-ui-dropdown-selector{max-width:calc(50% - 16px)}\n"] }]
|
|
36326
36539
|
}], propDecorators: { label: [{
|
|
36327
36540
|
type: Input
|
|
36328
36541
|
}], value: [{
|
|
@@ -36331,16 +36544,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
36331
36544
|
type: Output
|
|
36332
36545
|
}] } });
|
|
36333
36546
|
|
|
36334
|
-
class
|
|
36547
|
+
class FormFieldDateUpdatedComponent {
|
|
36335
36548
|
constructor() {
|
|
36336
36549
|
this.valueChange = new EventEmitter();
|
|
36337
36550
|
}
|
|
36338
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type:
|
|
36339
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type:
|
|
36551
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldDateUpdatedComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
36552
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormFieldDateUpdatedComponent, isStandalone: true, selector: "gn-ui-form-field-date-updated", inputs: { value: "value" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<gn-ui-date-picker\n [date]=\"value\"\n (dateChange)=\"valueChange.emit($event)\"\n></gn-ui-date-picker>\n", styles: [""], dependencies: [{ kind: "component", type: DatePickerComponent, selector: "gn-ui-date-picker", inputs: ["date"], outputs: ["dateChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
36340
36553
|
}
|
|
36341
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type:
|
|
36554
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldDateUpdatedComponent, decorators: [{
|
|
36342
36555
|
type: Component,
|
|
36343
|
-
args: [{ selector: 'gn-ui-form-field-
|
|
36556
|
+
args: [{ selector: 'gn-ui-form-field-date-updated', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [DatePickerComponent], template: "<gn-ui-date-picker\n [date]=\"value\"\n (dateChange)=\"valueChange.emit($event)\"\n></gn-ui-date-picker>\n" }]
|
|
36344
36557
|
}], propDecorators: { value: [{
|
|
36345
36558
|
type: Input
|
|
36346
36559
|
}], valueChange: [{
|
|
@@ -36395,7 +36608,7 @@ class FormFieldTemporalExtentsComponent {
|
|
|
36395
36608
|
this.valueChange.emit(this.extents);
|
|
36396
36609
|
}
|
|
36397
36610
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldTemporalExtentsComponent, deps: [{ token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
36398
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormFieldTemporalExtentsComponent, isStandalone: true, selector: "gn-ui-form-field-temporal-extents", inputs: { value: "value" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div class=\"flex gap-2 mb-2\">\n <gn-ui-button\n *ngFor=\"let addOption of addOptions$ | async\"\n (buttonClick)=\"onAdd(addOption.eventName)\"\n >\n <
|
|
36611
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormFieldTemporalExtentsComponent, isStandalone: true, selector: "gn-ui-form-field-temporal-extents", inputs: { value: "value" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div class=\"flex gap-2 mb-2\">\n <gn-ui-button\n type=\"gray\"\n *ngFor=\"let addOption of addOptions$ | async\"\n (buttonClick)=\"onAdd(addOption.eventName)\"\n >\n <mat-icon class=\"material-symbols-outlined text-primary\">add</mat-icon>\n {{ addOption.buttonLabel }}</gn-ui-button\n >\n</div>\n<gn-ui-sortable-list\n [items]=\"extents\"\n (itemsOrderChange)=\"onItemsOrderChange($event)\"\n [elementTemplate]=\"template\"\n></gn-ui-sortable-list>\n<ng-template #template let-extent let-index=\"index\">\n <div class=\"border rounded-lg px-4 pb-4\" *ngIf=\"extent.end === undefined\">\n <p class=\"my-2\" translate>editor.record.form.temporalExtents.date</p>\n <gn-ui-date-picker\n [date]=\"extent.start\"\n (dateChange)=\"onExtentChange({ start: $event }, index)\"\n ></gn-ui-date-picker>\n </div>\n <div class=\"border rounded-lg px-4 pb-4\" *ngIf=\"extent.end !== undefined\">\n <p class=\"my-2\" translate>editor.record.form.temporalExtents.range</p>\n <gn-ui-date-range-picker\n [startDate]=\"extent.start\"\n [endDate]=\"extent.end\"\n (startDateChange)=\"onExtentChange({ start: $event }, index)\"\n (endDateChange)=\"onExtentChange({ end: $event }, index)\"\n ></gn-ui-date-range-picker>\n </div>\n</ng-template>\n", styles: [":host{--gn-ui-button-padding: 8px 8px;--gn-ui-button-rounded: 8px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$3.AsyncPipe, name: "async" }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "component", type: SortableListComponent, selector: "gn-ui-sortable-list", inputs: ["elementTemplate", "items"], outputs: ["itemsOrderChange"] }, { kind: "component", type: DatePickerComponent, selector: "gn-ui-date-picker", inputs: ["date"], outputs: ["dateChange"] }, { kind: "component", type: DateRangePickerComponent, selector: "gn-ui-date-range-picker", inputs: ["startDate", "endDate"], outputs: ["startDateChange", "endDateChange"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
36399
36612
|
}
|
|
36400
36613
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldTemporalExtentsComponent, decorators: [{
|
|
36401
36614
|
type: Component,
|
|
@@ -36406,7 +36619,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
36406
36619
|
DatePickerComponent,
|
|
36407
36620
|
DateRangePickerComponent,
|
|
36408
36621
|
TranslateModule,
|
|
36409
|
-
|
|
36622
|
+
MatIconModule,
|
|
36623
|
+
], template: "<div class=\"flex gap-2 mb-2\">\n <gn-ui-button\n type=\"gray\"\n *ngFor=\"let addOption of addOptions$ | async\"\n (buttonClick)=\"onAdd(addOption.eventName)\"\n >\n <mat-icon class=\"material-symbols-outlined text-primary\">add</mat-icon>\n {{ addOption.buttonLabel }}</gn-ui-button\n >\n</div>\n<gn-ui-sortable-list\n [items]=\"extents\"\n (itemsOrderChange)=\"onItemsOrderChange($event)\"\n [elementTemplate]=\"template\"\n></gn-ui-sortable-list>\n<ng-template #template let-extent let-index=\"index\">\n <div class=\"border rounded-lg px-4 pb-4\" *ngIf=\"extent.end === undefined\">\n <p class=\"my-2\" translate>editor.record.form.temporalExtents.date</p>\n <gn-ui-date-picker\n [date]=\"extent.start\"\n (dateChange)=\"onExtentChange({ start: $event }, index)\"\n ></gn-ui-date-picker>\n </div>\n <div class=\"border rounded-lg px-4 pb-4\" *ngIf=\"extent.end !== undefined\">\n <p class=\"my-2\" translate>editor.record.form.temporalExtents.range</p>\n <gn-ui-date-range-picker\n [startDate]=\"extent.start\"\n [endDate]=\"extent.end\"\n (startDateChange)=\"onExtentChange({ start: $event }, index)\"\n (endDateChange)=\"onExtentChange({ end: $event }, index)\"\n ></gn-ui-date-range-picker>\n </div>\n</ng-template>\n", styles: [":host{--gn-ui-button-padding: 8px 8px;--gn-ui-button-rounded: 8px}\n"] }]
|
|
36410
36624
|
}], ctorParameters: function () { return [{ type: i1$1.TranslateService }]; }, propDecorators: { value: [{
|
|
36411
36625
|
type: Input
|
|
36412
36626
|
}], valueChange: [{
|
|
@@ -36488,14 +36702,11 @@ class FormFieldRichComponent {
|
|
|
36488
36702
|
this.valueChange = new EventEmitter();
|
|
36489
36703
|
this.preview = false;
|
|
36490
36704
|
}
|
|
36491
|
-
getButtonExtraClass() {
|
|
36492
|
-
return `${this.preview ? 'text-gray-200 bg-gray-900' : 'text-gray-900 bg-gray-200'} rounded-[1.25rem] p-[0.375rem] text-xs font-medium w-24`;
|
|
36493
|
-
}
|
|
36494
36705
|
togglePreview() {
|
|
36495
36706
|
this.preview = !this.preview;
|
|
36496
36707
|
}
|
|
36497
36708
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldRichComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
36498
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormFieldRichComponent, isStandalone: true, selector: "gn-ui-form-field-rich", inputs: { label: "label", hint: "hint",
|
|
36709
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormFieldRichComponent, isStandalone: true, selector: "gn-ui-form-field-rich", inputs: { label: "label", hint: "hint", placeholder: "placeholder", value: "value" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<gn-ui-form-field-wrapper [label]=\"label\" [hint]=\"hint\">\n <gn-ui-button\n form-field-interaction\n [type]=\"preview ? 'black' : 'gray'\"\n style=\"\n --gn-ui-button-padding: 3px 8px;\n --gn-ui-button-font-size: 12px;\n --gn-ui-button-rounded: 20px;\n \"\n (buttonClick)=\"togglePreview()\"\n >\n <span\n class=\"material-symbols-outlined gn-ui-icon-small\"\n [ngClass]=\"{ 'text-primary': !preview }\"\n >{{ preview ? 'visibility' : 'visibility_off' }}</span\n >\n \n {{ preview ? 'WYSIWYG' : 'Markdown' }}\n </gn-ui-button>\n <gn-ui-markdown-editor\n [preview]=\"preview\"\n [placeholder]=\"placeholder\"\n [textContent]=\"value\"\n (textContentChanged)=\"valueChange.emit($event)\"\n textAreaExtraClass=\"min-h-[100px]\"\n ></gn-ui-markdown-editor>\n</gn-ui-form-field-wrapper>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type: MarkdownEditorComponent, selector: "gn-ui-markdown-editor", inputs: ["preview", "placeholder", "textContent", "textAreaExtraClass"], outputs: ["textContentChanged"] }, { kind: "component", type: FormFieldWrapperComponent, selector: "gn-ui-form-field-wrapper", inputs: ["label", "hint"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
36499
36710
|
}
|
|
36500
36711
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldRichComponent, decorators: [{
|
|
36501
36712
|
type: Component,
|
|
@@ -36505,13 +36716,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
36505
36716
|
MarkdownEditorComponent,
|
|
36506
36717
|
FormFieldWrapperComponent,
|
|
36507
36718
|
ButtonComponent,
|
|
36508
|
-
], template: "<gn-ui-form-field-wrapper [label]=\"label\" [hint]=\"hint\">\n <gn-ui-button\n form-field-interaction\n [
|
|
36719
|
+
], template: "<gn-ui-form-field-wrapper [label]=\"label\" [hint]=\"hint\">\n <gn-ui-button\n form-field-interaction\n [type]=\"preview ? 'black' : 'gray'\"\n style=\"\n --gn-ui-button-padding: 3px 8px;\n --gn-ui-button-font-size: 12px;\n --gn-ui-button-rounded: 20px;\n \"\n (buttonClick)=\"togglePreview()\"\n >\n <span\n class=\"material-symbols-outlined gn-ui-icon-small\"\n [ngClass]=\"{ 'text-primary': !preview }\"\n >{{ preview ? 'visibility' : 'visibility_off' }}</span\n >\n \n {{ preview ? 'WYSIWYG' : 'Markdown' }}\n </gn-ui-button>\n <gn-ui-markdown-editor\n [preview]=\"preview\"\n [placeholder]=\"placeholder\"\n [textContent]=\"value\"\n (textContentChanged)=\"valueChange.emit($event)\"\n textAreaExtraClass=\"min-h-[100px]\"\n ></gn-ui-markdown-editor>\n</gn-ui-form-field-wrapper>\n" }]
|
|
36509
36720
|
}], propDecorators: { label: [{
|
|
36510
36721
|
type: Input
|
|
36511
36722
|
}], hint: [{
|
|
36512
36723
|
type: Input
|
|
36513
|
-
}], helperText: [{
|
|
36514
|
-
type: Input
|
|
36515
36724
|
}], placeholder: [{
|
|
36516
36725
|
type: Input
|
|
36517
36726
|
}], value: [{
|
|
@@ -36719,11 +36928,14 @@ class FormFieldSpatialExtentComponent {
|
|
|
36719
36928
|
type,
|
|
36720
36929
|
...(thesaurus && { thesaurus }),
|
|
36721
36930
|
}));
|
|
36722
|
-
const
|
|
36723
|
-
|
|
36724
|
-
|
|
36931
|
+
const notPlaceKwAndSpatialScopeKw = await firstValueFrom(this.editorFacade.record$.pipe(map$2((record) => record.keywords.filter((k) => k.type !== 'place' ||
|
|
36932
|
+
SPATIAL_SCOPES.some((spatialScope) => spatialScope.label === k.label // get back spatialScope keywords
|
|
36933
|
+
)))));
|
|
36934
|
+
const allKeywords = [
|
|
36935
|
+
...notPlaceKwAndSpatialScopeKw,
|
|
36725
36936
|
...filteredPlaceKeywords,
|
|
36726
|
-
]
|
|
36937
|
+
];
|
|
36938
|
+
this.editorFacade.updateRecordField('keywords', allKeywords);
|
|
36727
36939
|
this.editorFacade.updateRecordField('spatialExtents', spatialExtents);
|
|
36728
36940
|
}
|
|
36729
36941
|
async onSpatialScopeChange(selectedOption) {
|
|
@@ -36742,7 +36954,7 @@ class FormFieldSpatialExtentComponent {
|
|
|
36742
36954
|
]);
|
|
36743
36955
|
}
|
|
36744
36956
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldSpatialExtentComponent, deps: [{ token: PlatformServiceInterface }, { token: EditorFacade }, { token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
36745
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormFieldSpatialExtentComponent, isStandalone: true, selector: "gn-ui-form-field-spatial-extent", ngImport: i0, template: "<div class=\"flex flex-col gap-8\">\n <gn-ui-switch-toggle\n [options]=\"switchToggleOptions$ | async\"\n (selectedValue)=\"onSpatialScopeChange($event)\"\n extraClasses=\"grow\"\n ></gn-ui-switch-toggle>\n <gn-ui-generic-keywords\n [placeholder]=\"'Search for place keywords'\"\n [keywords]=\"shownKeywords$ | async\"\n [keywordTypes]=\"['place']\"\n (deletedKeyword)=\"handleKeywordDelete($event)\"\n (addedKeyword)=\"handleKeywordAdd($event)\"\n >\n </gn-ui-generic-keywords>\n</div>\n<div class=\"w-full h-96\">\n <gn-ui-form-field-map-container\n [spatialExtents]=\"spatialExtents$ | async\"\n ></gn-ui-form-field-map-container>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1$3.AsyncPipe, name: "async" }, { kind: "component", type: GenericKeywordsComponent, selector: "gn-ui-generic-keywords", inputs: ["keywords", "keywordTypes", "placeholder"], outputs: ["changedKeywords", "addedKeyword", "deletedKeyword"] }, { kind: "component", type: FormFieldMapContainerComponent, selector: "gn-ui-form-field-map-container", inputs: ["spatialExtents"] }, { kind: "component", type: SwitchToggleComponent, selector: "gn-ui-switch-toggle", inputs: ["options", "ariaLabel", "extraClasses"], outputs: ["selectedValue"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
36957
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormFieldSpatialExtentComponent, isStandalone: true, selector: "gn-ui-form-field-spatial-extent", ngImport: i0, template: "<div class=\"flex flex-col gap-8\">\n <gn-ui-switch-toggle\n [options]=\"switchToggleOptions$ | async\"\n (selectedValue)=\"onSpatialScopeChange($event)\"\n extraClasses=\"grow\"\n ></gn-ui-switch-toggle>\n <gn-ui-generic-keywords\n [placeholder]=\"'Search for place keywords'\"\n [keywords]=\"shownKeywords$ | async\"\n [keywordTypes]=\"['place']\"\n (deletedKeyword)=\"handleKeywordDelete($event)\"\n (addedKeyword)=\"handleKeywordAdd($event)\"\n >\n </gn-ui-generic-keywords>\n</div>\n<div class=\"w-full h-96 mt-2\">\n <gn-ui-form-field-map-container\n [spatialExtents]=\"spatialExtents$ | async\"\n ></gn-ui-form-field-map-container>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1$3.AsyncPipe, name: "async" }, { kind: "component", type: GenericKeywordsComponent, selector: "gn-ui-generic-keywords", inputs: ["keywords", "keywordTypes", "placeholder", "allowSubmit"], outputs: ["changedKeywords", "addedKeyword", "deletedKeyword"] }, { kind: "component", type: FormFieldMapContainerComponent, selector: "gn-ui-form-field-map-container", inputs: ["spatialExtents"] }, { kind: "component", type: SwitchToggleComponent, selector: "gn-ui-switch-toggle", inputs: ["options", "ariaLabel", "extraClasses"], outputs: ["selectedValue"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
36746
36958
|
}
|
|
36747
36959
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldSpatialExtentComponent, decorators: [{
|
|
36748
36960
|
type: Component,
|
|
@@ -36751,7 +36963,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
36751
36963
|
GenericKeywordsComponent,
|
|
36752
36964
|
FormFieldMapContainerComponent,
|
|
36753
36965
|
SwitchToggleComponent,
|
|
36754
|
-
], template: "<div class=\"flex flex-col gap-8\">\n <gn-ui-switch-toggle\n [options]=\"switchToggleOptions$ | async\"\n (selectedValue)=\"onSpatialScopeChange($event)\"\n extraClasses=\"grow\"\n ></gn-ui-switch-toggle>\n <gn-ui-generic-keywords\n [placeholder]=\"'Search for place keywords'\"\n [keywords]=\"shownKeywords$ | async\"\n [keywordTypes]=\"['place']\"\n (deletedKeyword)=\"handleKeywordDelete($event)\"\n (addedKeyword)=\"handleKeywordAdd($event)\"\n >\n </gn-ui-generic-keywords>\n</div>\n<div class=\"w-full h-96\">\n <gn-ui-form-field-map-container\n [spatialExtents]=\"spatialExtents$ | async\"\n ></gn-ui-form-field-map-container>\n</div>\n" }]
|
|
36966
|
+
], template: "<div class=\"flex flex-col gap-8\">\n <gn-ui-switch-toggle\n [options]=\"switchToggleOptions$ | async\"\n (selectedValue)=\"onSpatialScopeChange($event)\"\n extraClasses=\"grow\"\n ></gn-ui-switch-toggle>\n <gn-ui-generic-keywords\n [placeholder]=\"'Search for place keywords'\"\n [keywords]=\"shownKeywords$ | async\"\n [keywordTypes]=\"['place']\"\n (deletedKeyword)=\"handleKeywordDelete($event)\"\n (addedKeyword)=\"handleKeywordAdd($event)\"\n >\n </gn-ui-generic-keywords>\n</div>\n<div class=\"w-full h-96 mt-2\">\n <gn-ui-form-field-map-container\n [spatialExtents]=\"spatialExtents$ | async\"\n ></gn-ui-form-field-map-container>\n</div>\n" }]
|
|
36755
36967
|
}], ctorParameters: function () { return [{ type: PlatformServiceInterface }, { type: EditorFacade }, { type: i1$1.TranslateService }]; } });
|
|
36756
36968
|
|
|
36757
36969
|
const RoleValues = [
|
|
@@ -36828,25 +37040,14 @@ const RecordStatusValues = [
|
|
|
36828
37040
|
];
|
|
36829
37041
|
|
|
36830
37042
|
class ContactCardComponent {
|
|
36831
|
-
constructor() {
|
|
36832
|
-
this.removable = true;
|
|
36833
|
-
this.contactRemoved = new EventEmitter();
|
|
36834
|
-
}
|
|
36835
|
-
removeContact(contact) {
|
|
36836
|
-
this.contactRemoved.emit(contact);
|
|
36837
|
-
}
|
|
36838
37043
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ContactCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
36839
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ContactCardComponent, isStandalone: true, selector: "gn-ui-contact-card", inputs: { contact: "contact"
|
|
37044
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ContactCardComponent, isStandalone: true, selector: "gn-ui-contact-card", inputs: { contact: "contact" }, ngImport: i0, template: "<div class=\"gn-ui-card\">\n <gn-ui-thumbnail\n class=\"w-[56px] h-[56px] rounded-[4px] overflow-hidden shrink-0\"\n [thumbnailUrl]=\"contact.organization.logoUrl?.href\"\n [fit]=\"'contain'\"\n ></gn-ui-thumbnail>\n <div class=\"flex flex-col w-full overflow-hidden leading-snug\">\n <div class=\"text-[16px] font-bold text-main\" data-test=\"contactCardName\">\n {{ contact.firstName }} {{ contact.lastName }}\n </div>\n <div class=\"text-[14px] text-gray-900\" data-test=\"contactCardEmail\">\n {{ contact.email }}\n </div>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: ThumbnailComponent, selector: "gn-ui-thumbnail", inputs: ["thumbnailUrl", "fit"], outputs: ["placeholderShown"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
36840
37045
|
}
|
|
36841
37046
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ContactCardComponent, decorators: [{
|
|
36842
37047
|
type: Component,
|
|
36843
|
-
args: [{ selector: 'gn-ui-contact-card', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, MatIconModule, ButtonComponent, ThumbnailComponent], template: "<div class=\"
|
|
37048
|
+
args: [{ selector: 'gn-ui-contact-card', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, MatIconModule, ButtonComponent, ThumbnailComponent], template: "<div class=\"gn-ui-card\">\n <gn-ui-thumbnail\n class=\"w-[56px] h-[56px] rounded-[4px] overflow-hidden shrink-0\"\n [thumbnailUrl]=\"contact.organization.logoUrl?.href\"\n [fit]=\"'contain'\"\n ></gn-ui-thumbnail>\n <div class=\"flex flex-col w-full overflow-hidden leading-snug\">\n <div class=\"text-[16px] font-bold text-main\" data-test=\"contactCardName\">\n {{ contact.firstName }} {{ contact.lastName }}\n </div>\n <div class=\"text-[14px] text-gray-900\" data-test=\"contactCardEmail\">\n {{ contact.email }}\n </div>\n </div>\n</div>\n" }]
|
|
36844
37049
|
}], propDecorators: { contact: [{
|
|
36845
37050
|
type: Input
|
|
36846
|
-
}], removable: [{
|
|
36847
|
-
type: Input
|
|
36848
|
-
}], contactRemoved: [{
|
|
36849
|
-
type: Output
|
|
36850
37051
|
}] } });
|
|
36851
37052
|
|
|
36852
37053
|
class FormFieldContactsForResourceComponent {
|
|
@@ -36953,7 +37154,7 @@ class FormFieldContactsForResourceComponent {
|
|
|
36953
37154
|
this.valueChange.emit(newControlValue);
|
|
36954
37155
|
}
|
|
36955
37156
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldContactsForResourceComponent, deps: [{ token: PlatformServiceInterface }, { token: OrganizationsServiceInterface }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
36956
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormFieldContactsForResourceComponent, isStandalone: true, selector: "gn-ui-form-field-contacts-for-resource", inputs: { value: "value" }, outputs: { valueChange: "valueChange" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"flex flex-col gap-3\">\n <div class=\"flex flex-row flex-wrap gap-2\" data-test=\"rolesToPick\">\n <ng-container *ngFor=\"let role of rolesToPick\">\n <gn-ui-button
|
|
37157
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormFieldContactsForResourceComponent, isStandalone: true, selector: "gn-ui-form-field-contacts-for-resource", inputs: { value: "value" }, outputs: { valueChange: "valueChange" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"flex flex-col gap-3\">\n <div class=\"flex flex-row flex-wrap gap-2\" data-test=\"rolesToPick\">\n <ng-container *ngFor=\"let role of rolesToPick\">\n <gn-ui-button type=\"gray\" (buttonClick)=\"addRoleToDisplay(role)\">\n <mat-icon class=\"material-symbols-outlined text-primary\">add</mat-icon>\n \n <span translate>{{ roleToLabel(role) }}</span>\n </gn-ui-button>\n </ng-container>\n </div>\n <div\n class=\"mt-8\"\n *ngIf=\"\n roleSectionsToDisplay && roleSectionsToDisplay.length > 0;\n else noContact\n \"\n data-test=\"displayedRoles\"\n >\n <div\n *ngFor=\"\n let role of roleSectionsToDisplay;\n let index = index;\n let isLast = last\n \"\n class=\"flex flex-col gap-4\"\n >\n <div class=\"flex flex-row justify-between\">\n <span class=\"font-bold text-base\" translate>{{\n roleToLabel(role)\n }}</span>\n </div>\n\n <gn-ui-autocomplete\n [placeholder]=\"'Choose a contact'\"\n [action]=\"autoCompleteAction\"\n (itemSelected)=\"addContact($event, role)\"\n [displayWithFn]=\"displayWithFn\"\n [minCharacterCount]=\"1\"\n [clearOnSelection]=\"true\"\n [allowSubmit]=\"false\"\n >\n </gn-ui-autocomplete>\n\n <ng-container *ngIf=\"contactsForRessourceByRole.get(role) as contacts\">\n <gn-ui-sortable-list\n [items]=\"contacts\"\n (itemsOrderChange)=\"handleContactsChanged($event)\"\n [elementTemplate]=\"contactTemplate\"\n ></gn-ui-sortable-list>\n <ng-template #contactTemplate let-contact>\n <gn-ui-contact-card [contact]=\"contact\"></gn-ui-contact-card>\n </ng-template>\n </ng-container>\n\n <hr class=\"border-t-[#D6D3D1] mt-4 mb-6\" *ngIf=\"!isLast\" />\n </div>\n </div>\n <ng-template #noContact>\n <div\n class=\"p-4 border border-primary bg-primary-lightest rounded-lg\"\n translate\n >\n editor.record.form.field.contactsForResource.noContact\n </div>\n </ng-template>\n</div>\n", styles: [":host{--gn-ui-button-padding: 8px 8px;--gn-ui-button-rounded: 8px}\n"], dependencies: [{ kind: "ngmodule", type: UiInputsModule }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: UiWidgetsModule }, { kind: "component", type: AutocompleteComponent, selector: "gn-ui-autocomplete", inputs: ["placeholder", "action", "value", "clearOnSelection", "preventCompleteOnSelection", "autoFocus", "minCharacterCount", "allowSubmit", "displayWithFn"], outputs: ["itemSelected", "inputSubmitted", "inputCleared"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: ContactCardComponent, selector: "gn-ui-contact-card", inputs: ["contact"] }, { kind: "component", type: SortableListComponent, selector: "gn-ui-sortable-list", inputs: ["elementTemplate", "items"], outputs: ["itemsOrderChange"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
36957
37158
|
}
|
|
36958
37159
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldContactsForResourceComponent, decorators: [{
|
|
36959
37160
|
type: Component,
|
|
@@ -36966,7 +37167,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
36966
37167
|
TranslateModule,
|
|
36967
37168
|
ContactCardComponent,
|
|
36968
37169
|
SortableListComponent,
|
|
36969
|
-
|
|
37170
|
+
MatIconModule,
|
|
37171
|
+
], template: "<div class=\"flex flex-col gap-3\">\n <div class=\"flex flex-row flex-wrap gap-2\" data-test=\"rolesToPick\">\n <ng-container *ngFor=\"let role of rolesToPick\">\n <gn-ui-button type=\"gray\" (buttonClick)=\"addRoleToDisplay(role)\">\n <mat-icon class=\"material-symbols-outlined text-primary\">add</mat-icon>\n \n <span translate>{{ roleToLabel(role) }}</span>\n </gn-ui-button>\n </ng-container>\n </div>\n <div\n class=\"mt-8\"\n *ngIf=\"\n roleSectionsToDisplay && roleSectionsToDisplay.length > 0;\n else noContact\n \"\n data-test=\"displayedRoles\"\n >\n <div\n *ngFor=\"\n let role of roleSectionsToDisplay;\n let index = index;\n let isLast = last\n \"\n class=\"flex flex-col gap-4\"\n >\n <div class=\"flex flex-row justify-between\">\n <span class=\"font-bold text-base\" translate>{{\n roleToLabel(role)\n }}</span>\n </div>\n\n <gn-ui-autocomplete\n [placeholder]=\"'Choose a contact'\"\n [action]=\"autoCompleteAction\"\n (itemSelected)=\"addContact($event, role)\"\n [displayWithFn]=\"displayWithFn\"\n [minCharacterCount]=\"1\"\n [clearOnSelection]=\"true\"\n [allowSubmit]=\"false\"\n >\n </gn-ui-autocomplete>\n\n <ng-container *ngIf=\"contactsForRessourceByRole.get(role) as contacts\">\n <gn-ui-sortable-list\n [items]=\"contacts\"\n (itemsOrderChange)=\"handleContactsChanged($event)\"\n [elementTemplate]=\"contactTemplate\"\n ></gn-ui-sortable-list>\n <ng-template #contactTemplate let-contact>\n <gn-ui-contact-card [contact]=\"contact\"></gn-ui-contact-card>\n </ng-template>\n </ng-container>\n\n <hr class=\"border-t-[#D6D3D1] mt-4 mb-6\" *ngIf=\"!isLast\" />\n </div>\n </div>\n <ng-template #noContact>\n <div\n class=\"p-4 border border-primary bg-primary-lightest rounded-lg\"\n translate\n >\n editor.record.form.field.contactsForResource.noContact\n </div>\n </ng-template>\n</div>\n", styles: [":host{--gn-ui-button-padding: 8px 8px;--gn-ui-button-rounded: 8px}\n"] }]
|
|
36970
37172
|
}], ctorParameters: function () { return [{ type: PlatformServiceInterface }, { type: OrganizationsServiceInterface }]; }, propDecorators: { value: [{
|
|
36971
37173
|
type: Input
|
|
36972
37174
|
}], valueChange: [{
|
|
@@ -37168,11 +37370,11 @@ class FormFieldUpdateFrequencyComponent {
|
|
|
37168
37370
|
];
|
|
37169
37371
|
}
|
|
37170
37372
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldUpdateFrequencyComponent, deps: [{ token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
37171
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormFieldUpdateFrequencyComponent, isStandalone: true, selector: "gn-ui-form-field-update-frequency", inputs: { value: "value" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<gn-ui-check-toggle\n
|
|
37373
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormFieldUpdateFrequencyComponent, isStandalone: true, selector: "gn-ui-form-field-update-frequency", inputs: { value: "value" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div class=\"flex flex-col gap-2\">\n <gn-ui-check-toggle\n [label]=\"'editor.record.form.updateFrequency.planned' | translate\"\n [value]=\"planned\"\n (toggled)=\"onPlannedToggled()\"\n ></gn-ui-check-toggle>\n <gn-ui-dropdown-selector\n title=\"updateFrequency\"\n [showTitle]=\"false\"\n [choices]=\"choices\"\n [selected]=\"selectedFrequency\"\n (selectValue)=\"onSelectFrequencyValue($event)\"\n [disabled]=\"!planned\"\n >\n </gn-ui-dropdown-selector>\n</div>\n", styles: ["gn-ui-dropdown-selector{max-width:calc(50% - 16px)}\n"], dependencies: [{ kind: "component", type: CheckToggleComponent, selector: "gn-ui-check-toggle", inputs: ["title", "label", "value", "color"], outputs: ["toggled"] }, { kind: "component", type: DropdownSelectorComponent, selector: "gn-ui-dropdown-selector", inputs: ["title", "showTitle", "ariaName", "choices", "selected", "maxRows", "extraBtnClass", "minWidth", "disabled"], outputs: ["selectValue"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
37172
37374
|
}
|
|
37173
37375
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldUpdateFrequencyComponent, decorators: [{
|
|
37174
37376
|
type: Component,
|
|
37175
|
-
args: [{ selector: 'gn-ui-form-field-update-frequency', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CheckToggleComponent, DropdownSelectorComponent, TranslateModule], template: "<gn-ui-check-toggle\n
|
|
37377
|
+
args: [{ selector: 'gn-ui-form-field-update-frequency', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CheckToggleComponent, DropdownSelectorComponent, TranslateModule], template: "<div class=\"flex flex-col gap-2\">\n <gn-ui-check-toggle\n [label]=\"'editor.record.form.updateFrequency.planned' | translate\"\n [value]=\"planned\"\n (toggled)=\"onPlannedToggled()\"\n ></gn-ui-check-toggle>\n <gn-ui-dropdown-selector\n title=\"updateFrequency\"\n [showTitle]=\"false\"\n [choices]=\"choices\"\n [selected]=\"selectedFrequency\"\n (selectValue)=\"onSelectFrequencyValue($event)\"\n [disabled]=\"!planned\"\n >\n </gn-ui-dropdown-selector>\n</div>\n", styles: ["gn-ui-dropdown-selector{max-width:calc(50% - 16px)}\n"] }]
|
|
37176
37378
|
}], ctorParameters: function () { return [{ type: i1$1.TranslateService }]; }, propDecorators: { value: [{
|
|
37177
37379
|
type: Input
|
|
37178
37380
|
}], valueChange: [{
|
|
@@ -37386,7 +37588,7 @@ class FormFieldOnlineLinkResourcesComponent {
|
|
|
37386
37588
|
});
|
|
37387
37589
|
}
|
|
37388
37590
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldOnlineLinkResourcesComponent, deps: [{ token: NotificationsService }, { token: i1$1.TranslateService }, { token: PlatformServiceInterface }, { token: i0.ChangeDetectorRef }, { token: i1$8.MatDialog }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
37389
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormFieldOnlineLinkResourcesComponent, isStandalone: true, selector: "gn-ui-form-field-online-link-resources", inputs: { metadataUuid: "metadataUuid", value: "value" }, outputs: { valueChange: "valueChange" }, viewQueries: [{ propertyName: "dialogTemplate", first: true, predicate: ["dialogTemplate"], descendants: true }], ngImport: i0, template: "<gn-ui-file-input\n [maxSizeMB]=\"MAX_UPLOAD_SIZE_MB\"\n (fileChange)=\"handleFileChange($event)\"\n (uploadCancel)=\"handleUploadCancel()\"\n [uploadProgress]=\"uploadProgress\"\n (urlChange)=\"handleUrlChange($event)\"\n></gn-ui-file-input>\n<gn-ui-sortable-list\n [items]=\"linkResources\"\n (itemsOrderChange)=\"handleResourcesChange($event)\"\n [elementTemplate]=\"template\"\n>\n</gn-ui-sortable-list>\n<ng-template #template let-onlineResource let-index=\"index\">\n <gn-ui-online-resource-card\n [onlineResource]=\"onlineResource\"\n (modifyClick)=\"handleResourceModify(onlineResource, index)\"\n ></gn-ui-online-resource-card>\n</ng-template>\n\n<ng-template #dialogTemplate let-onlineResource>\n <h3 class=\"text-[16px] font-bold text-main mb-[12px]\" translate>\n editor.record.form.field.onlineResource.edit.title\n </h3>\n <gn-ui-text-input\n extraClass=\"mb-[16px]\"\n [(value)]=\"onlineResource.name\"\n ></gn-ui-text-input>\n <h3 class=\"text-[16px] font-bold text-main mb-[12px]\" translate>\n editor.record.form.field.onlineResource.edit.description\n </h3>\n <gn-ui-text-area [(value)]=\"onlineResource.description\"></gn-ui-text-area>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "component", type: FileInputComponent, selector: "gn-ui-file-input", inputs: ["maxSizeMB", "uploadProgress"], outputs: ["fileChange", "urlChange", "uploadCancel"] }, { kind: "ngmodule", type: CommonModule }, { kind: "component", type: SortableListComponent, selector: "gn-ui-sortable-list", inputs: ["elementTemplate", "items"], outputs: ["itemsOrderChange"] }, { kind: "component", type: OnlineResourceCardComponent, selector: "gn-ui-online-resource-card", inputs: ["onlineResource"], outputs: ["modifyClick"] }, { kind: "component", type: TextInputComponent, selector: "gn-ui-text-input", inputs: ["value", "extraClass", "placeholder", "required", "disabled"], outputs: ["valueChange"] }, { kind: "component", type: TextAreaComponent, selector: "gn-ui-text-area", inputs: ["value", "disabled", "extraClass", "placeholder", "required"], outputs: ["valueChange"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
37591
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormFieldOnlineLinkResourcesComponent, isStandalone: true, selector: "gn-ui-form-field-online-link-resources", inputs: { metadataUuid: "metadataUuid", value: "value" }, outputs: { valueChange: "valueChange" }, viewQueries: [{ propertyName: "dialogTemplate", first: true, predicate: ["dialogTemplate"], descendants: true }], ngImport: i0, template: "<gn-ui-file-input\n [maxSizeMB]=\"MAX_UPLOAD_SIZE_MB\"\n (fileChange)=\"handleFileChange($event)\"\n (uploadCancel)=\"handleUploadCancel()\"\n [uploadProgress]=\"uploadProgress\"\n (urlChange)=\"handleUrlChange($event)\"\n></gn-ui-file-input>\n<div class=\"h-[8px]\"></div>\n<gn-ui-sortable-list\n [items]=\"linkResources\"\n (itemsOrderChange)=\"handleResourcesChange($event)\"\n [elementTemplate]=\"template\"\n>\n</gn-ui-sortable-list>\n<ng-template #template let-onlineResource let-index=\"index\">\n <gn-ui-online-resource-card\n [onlineResource]=\"onlineResource\"\n (modifyClick)=\"handleResourceModify(onlineResource, index)\"\n ></gn-ui-online-resource-card>\n</ng-template>\n\n<ng-template #dialogTemplate let-onlineResource>\n <h3 class=\"text-[16px] font-bold text-main mb-[12px]\" translate>\n editor.record.form.field.onlineResource.edit.title\n </h3>\n <gn-ui-text-input\n extraClass=\"mb-[16px]\"\n [(value)]=\"onlineResource.name\"\n ></gn-ui-text-input>\n <h3 class=\"text-[16px] font-bold text-main mb-[12px]\" translate>\n editor.record.form.field.onlineResource.edit.description\n </h3>\n <gn-ui-text-area [(value)]=\"onlineResource.description\"></gn-ui-text-area>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "component", type: FileInputComponent, selector: "gn-ui-file-input", inputs: ["maxSizeMB", "uploadProgress"], outputs: ["fileChange", "urlChange", "uploadCancel"] }, { kind: "ngmodule", type: CommonModule }, { kind: "component", type: SortableListComponent, selector: "gn-ui-sortable-list", inputs: ["elementTemplate", "items"], outputs: ["itemsOrderChange"] }, { kind: "component", type: OnlineResourceCardComponent, selector: "gn-ui-online-resource-card", inputs: ["onlineResource"], outputs: ["modifyClick"] }, { kind: "component", type: TextInputComponent, selector: "gn-ui-text-input", inputs: ["value", "extraClass", "placeholder", "required", "disabled"], outputs: ["valueChange"] }, { kind: "component", type: TextAreaComponent, selector: "gn-ui-text-area", inputs: ["value", "disabled", "extraClass", "placeholder", "required"], outputs: ["valueChange"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
37390
37592
|
}
|
|
37391
37593
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldOnlineLinkResourcesComponent, decorators: [{
|
|
37392
37594
|
type: Component,
|
|
@@ -37398,7 +37600,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
37398
37600
|
TextInputComponent,
|
|
37399
37601
|
TextAreaComponent,
|
|
37400
37602
|
TranslateModule,
|
|
37401
|
-
], template: "<gn-ui-file-input\n [maxSizeMB]=\"MAX_UPLOAD_SIZE_MB\"\n (fileChange)=\"handleFileChange($event)\"\n (uploadCancel)=\"handleUploadCancel()\"\n [uploadProgress]=\"uploadProgress\"\n (urlChange)=\"handleUrlChange($event)\"\n></gn-ui-file-input>\n<gn-ui-sortable-list\n [items]=\"linkResources\"\n (itemsOrderChange)=\"handleResourcesChange($event)\"\n [elementTemplate]=\"template\"\n>\n</gn-ui-sortable-list>\n<ng-template #template let-onlineResource let-index=\"index\">\n <gn-ui-online-resource-card\n [onlineResource]=\"onlineResource\"\n (modifyClick)=\"handleResourceModify(onlineResource, index)\"\n ></gn-ui-online-resource-card>\n</ng-template>\n\n<ng-template #dialogTemplate let-onlineResource>\n <h3 class=\"text-[16px] font-bold text-main mb-[12px]\" translate>\n editor.record.form.field.onlineResource.edit.title\n </h3>\n <gn-ui-text-input\n extraClass=\"mb-[16px]\"\n [(value)]=\"onlineResource.name\"\n ></gn-ui-text-input>\n <h3 class=\"text-[16px] font-bold text-main mb-[12px]\" translate>\n editor.record.form.field.onlineResource.edit.description\n </h3>\n <gn-ui-text-area [(value)]=\"onlineResource.description\"></gn-ui-text-area>\n</ng-template>\n" }]
|
|
37603
|
+
], template: "<gn-ui-file-input\n [maxSizeMB]=\"MAX_UPLOAD_SIZE_MB\"\n (fileChange)=\"handleFileChange($event)\"\n (uploadCancel)=\"handleUploadCancel()\"\n [uploadProgress]=\"uploadProgress\"\n (urlChange)=\"handleUrlChange($event)\"\n></gn-ui-file-input>\n<div class=\"h-[8px]\"></div>\n<gn-ui-sortable-list\n [items]=\"linkResources\"\n (itemsOrderChange)=\"handleResourcesChange($event)\"\n [elementTemplate]=\"template\"\n>\n</gn-ui-sortable-list>\n<ng-template #template let-onlineResource let-index=\"index\">\n <gn-ui-online-resource-card\n [onlineResource]=\"onlineResource\"\n (modifyClick)=\"handleResourceModify(onlineResource, index)\"\n ></gn-ui-online-resource-card>\n</ng-template>\n\n<ng-template #dialogTemplate let-onlineResource>\n <h3 class=\"text-[16px] font-bold text-main mb-[12px]\" translate>\n editor.record.form.field.onlineResource.edit.title\n </h3>\n <gn-ui-text-input\n extraClass=\"mb-[16px]\"\n [(value)]=\"onlineResource.name\"\n ></gn-ui-text-input>\n <h3 class=\"text-[16px] font-bold text-main mb-[12px]\" translate>\n editor.record.form.field.onlineResource.edit.description\n </h3>\n <gn-ui-text-area [(value)]=\"onlineResource.description\"></gn-ui-text-area>\n</ng-template>\n" }]
|
|
37402
37604
|
}], ctorParameters: function () { return [{ type: NotificationsService }, { type: i1$1.TranslateService }, { type: PlatformServiceInterface }, { type: i0.ChangeDetectorRef }, { type: i1$8.MatDialog }]; }, propDecorators: { metadataUuid: [{
|
|
37403
37605
|
type: Input
|
|
37404
37606
|
}], value: [{
|
|
@@ -37449,7 +37651,7 @@ class FormFieldComponent {
|
|
|
37449
37651
|
return this.value;
|
|
37450
37652
|
}
|
|
37451
37653
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
37452
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormFieldComponent, isStandalone: true, selector: "gn-ui-form-field", inputs: { uniqueIdentifier: "uniqueIdentifier", model: "model", modelSpecifier: "modelSpecifier", config: "config", value: "value" }, outputs: { valueChange: "valueChange" }, viewQueries: [{ propertyName: "titleInput", first: true, predicate: ["titleInput"], descendants: true }], ngImport: i0, template: "<ng-container *ngIf=\"model === 'licenses'\">\n <gn-ui-form-field-open-data\n [value]=\"valueAsConstraints\"\n (valueChange)=\"valueChange.emit($event)\"\n (openDataChange)=\"isHidden = $event\"\n ></gn-ui-form-field-open-data>\n</ng-container>\n<div class=\"flex flex-col h-full\" *ngIf=\"!isHidden\">\n <ng-container *ngIf=\"withoutWrapper; else withGenericWrapper\">\n <ng-container *ngTemplateOutlet=\"fieldContent\"></ng-container>\n </ng-container>\n <ng-template #withGenericWrapper>\n <gn-ui-form-field-wrapper\n [label]=\"config.labelKey! | translate\"\n [hint]=\"config.hintKey! | translate\"\n >\n <ng-container *ngTemplateOutlet=\"fieldContent\"></ng-container>\n </gn-ui-form-field-wrapper>\n </ng-template>\n</div>\n\n<ng-template #fieldContent>\n <ng-container [ngSwitch]=\"model\">\n <ng-container *ngSwitchCase=\"'title'\">\n <div class=\"flex
|
|
37654
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormFieldComponent, isStandalone: true, selector: "gn-ui-form-field", inputs: { uniqueIdentifier: "uniqueIdentifier", model: "model", modelSpecifier: "modelSpecifier", config: "config", value: "value" }, outputs: { valueChange: "valueChange" }, viewQueries: [{ propertyName: "titleInput", first: true, predicate: ["titleInput"], descendants: true }], ngImport: i0, template: "<ng-container *ngIf=\"model === 'licenses'\">\n <gn-ui-form-field-open-data\n [value]=\"valueAsConstraints\"\n (valueChange)=\"valueChange.emit($event)\"\n (openDataChange)=\"isHidden = $event\"\n ></gn-ui-form-field-open-data>\n</ng-container>\n<div class=\"flex flex-col h-full\" *ngIf=\"!isHidden\">\n <ng-container *ngIf=\"withoutWrapper; else withGenericWrapper\">\n <ng-container *ngTemplateOutlet=\"fieldContent\"></ng-container>\n </ng-container>\n <ng-template #withGenericWrapper>\n <gn-ui-form-field-wrapper\n [label]=\"config.labelKey! | translate\"\n [hint]=\"config.hintKey! | translate\"\n >\n <ng-container *ngTemplateOutlet=\"fieldContent\"></ng-container>\n </gn-ui-form-field-wrapper>\n </ng-template>\n</div>\n\n<ng-template #fieldContent>\n <ng-container [ngSwitch]=\"model\">\n <ng-container *ngSwitchCase=\"'title'\">\n <div class=\"flex flex-row flex-start items-center gap-3 mb-[12px]\">\n <span\n #titleInput\n class=\"grow font-title text-3xl font-normal\"\n [gnUiEditableLabel]=\"valueAsString\"\n (editableLabelChanged)=\"valueChange.emit($event)\"\n ></span>\n <div class=\"flex flex-row justify-between\">\n <span\n class=\"material-symbols-outlined gn-ui-icon-small m-2 cursor-pointer\"\n (click)=\"focusTitleInput()\"\n >edit</span\n >\n <span\n class=\"material-symbols-outlined gn-ui-icon-small m-2\"\n [matTooltip]=\"config.hintKey! | translate\"\n matTooltipPosition=\"above\"\n >\n help\n </span>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'abstract'\">\n <gn-ui-form-field-rich\n [label]=\"config.labelKey! | translate\"\n [hint]=\"config.hintKey! | translate\"\n [value]=\"valueAsString\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-rich>\n </ng-container>\n <ng-container *ngSwitchCase=\"'overviews'\">\n <gn-ui-form-field-overviews\n [metadataUuid]=\"uniqueIdentifier\"\n [value]=\"valueAsOverviews\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-overviews>\n </ng-container>\n <ng-container *ngSwitchCase=\"'uniqueIdentifier'\">\n <gn-ui-form-field-simple\n type=\"text\"\n [readonly]=\"true\"\n [value]=\"valueAsString\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-simple>\n </ng-container>\n <ng-container *ngSwitchCase=\"'resourceUpdated'\">\n <gn-ui-form-field-date-updated\n [value]=\"valueAsDate\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-date-updated>\n </ng-container>\n <ng-container *ngSwitchCase=\"'recordUpdated'\">\n <gn-ui-form-field-date-updated\n [value]=\"valueAsDate\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-date-updated>\n </ng-container>\n <ng-container *ngSwitchCase=\"'updateFrequency'\">\n <gn-ui-form-field-update-frequency\n [value]=\"valueAsUpdateFrequency\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-update-frequency>\n </ng-container>\n <ng-container *ngSwitchCase=\"'temporalExtents'\">\n <gn-ui-form-field-temporal-extents\n [value]=\"valueAsTemporalExtents\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-temporal-extents>\n </ng-container>\n <ng-container *ngSwitchCase=\"'spatialExtents'\">\n <gn-ui-form-field-spatial-extent></gn-ui-form-field-spatial-extent>\n </ng-container>\n <ng-container *ngSwitchCase=\"'keywords'\">\n <gn-ui-form-field-keywords\n [value]=\"valueAsKeywords\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-keywords>\n </ng-container>\n <ng-container *ngSwitchCase=\"'licenses'\">\n <gn-ui-form-field-license\n [label]=\"config.labelKey! | translate\"\n [value]=\"valueAsConstraints\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-license>\n </ng-container>\n <ng-container *ngSwitchCase=\"'contactsForResource'\">\n <gn-ui-form-field-contacts-for-resource\n [value]=\"valueAsIndividuals\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-contacts-for-resource>\n </ng-container>\n <ng-container *ngSwitchCase=\"'onlineResources'\">\n <gn-ui-form-field-online-link-resources\n *ngIf=\"modelSpecifier === 'onlineResourceType:link'\"\n [metadataUuid]=\"uniqueIdentifier\"\n [value]=\"valueAsOnlineResources\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-online-link-resources>\n </ng-container>\n </ng-container>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1$3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "directive", type: EditableLabelDirective, selector: "[gnUiEditableLabel]", inputs: ["gnUiEditableLabel"], outputs: ["editableLabelChanged"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: FormFieldWrapperComponent, selector: "gn-ui-form-field-wrapper", inputs: ["label", "hint"] }, { kind: "component", type: FormFieldLicenseComponent, selector: "gn-ui-form-field-license", inputs: ["label", "value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldDateUpdatedComponent, selector: "gn-ui-form-field-date-updated", inputs: ["value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldUpdateFrequencyComponent, selector: "gn-ui-form-field-update-frequency", inputs: ["value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldTemporalExtentsComponent, selector: "gn-ui-form-field-temporal-extents", inputs: ["value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldSimpleComponent, selector: "gn-ui-form-field-simple", inputs: ["type", "readonly", "invalid", "placeholder", "options", "value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldRichComponent, selector: "gn-ui-form-field-rich", inputs: ["label", "hint", "placeholder", "value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldSpatialExtentComponent, selector: "gn-ui-form-field-spatial-extent" }, { kind: "component", type: FormFieldKeywordsComponent, selector: "gn-ui-form-field-keywords", inputs: ["value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldOverviewsComponent, selector: "gn-ui-form-field-overviews", inputs: ["metadataUuid", "value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldContactsForResourceComponent, selector: "gn-ui-form-field-contacts-for-resource", inputs: ["value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldOpenDataComponent, selector: "gn-ui-form-field-open-data", inputs: ["value"], outputs: ["valueChange", "openDataChange"] }, { kind: "component", type: FormFieldOnlineLinkResourcesComponent, selector: "gn-ui-form-field-online-link-resources", inputs: ["metadataUuid", "value"], outputs: ["valueChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
37453
37655
|
}
|
|
37454
37656
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldComponent, decorators: [{
|
|
37455
37657
|
type: Component,
|
|
@@ -37461,7 +37663,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
37461
37663
|
MatTooltipModule,
|
|
37462
37664
|
FormFieldWrapperComponent,
|
|
37463
37665
|
FormFieldLicenseComponent,
|
|
37464
|
-
|
|
37666
|
+
FormFieldDateUpdatedComponent,
|
|
37465
37667
|
FormFieldUpdateFrequencyComponent,
|
|
37466
37668
|
FormFieldTemporalExtentsComponent,
|
|
37467
37669
|
FormFieldSimpleComponent,
|
|
@@ -37475,7 +37677,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
37475
37677
|
FormFieldContactsForResourceComponent,
|
|
37476
37678
|
FormFieldOpenDataComponent,
|
|
37477
37679
|
FormFieldOnlineLinkResourcesComponent,
|
|
37478
|
-
], template: "<ng-container *ngIf=\"model === 'licenses'\">\n <gn-ui-form-field-open-data\n [value]=\"valueAsConstraints\"\n (valueChange)=\"valueChange.emit($event)\"\n (openDataChange)=\"isHidden = $event\"\n ></gn-ui-form-field-open-data>\n</ng-container>\n<div class=\"flex flex-col h-full\" *ngIf=\"!isHidden\">\n <ng-container *ngIf=\"withoutWrapper; else withGenericWrapper\">\n <ng-container *ngTemplateOutlet=\"fieldContent\"></ng-container>\n </ng-container>\n <ng-template #withGenericWrapper>\n <gn-ui-form-field-wrapper\n [label]=\"config.labelKey! | translate\"\n [hint]=\"config.hintKey! | translate\"\n >\n <ng-container *ngTemplateOutlet=\"fieldContent\"></ng-container>\n </gn-ui-form-field-wrapper>\n </ng-template>\n</div>\n\n<ng-template #fieldContent>\n <ng-container [ngSwitch]=\"model\">\n <ng-container *ngSwitchCase=\"'title'\">\n <div class=\"flex
|
|
37680
|
+
], template: "<ng-container *ngIf=\"model === 'licenses'\">\n <gn-ui-form-field-open-data\n [value]=\"valueAsConstraints\"\n (valueChange)=\"valueChange.emit($event)\"\n (openDataChange)=\"isHidden = $event\"\n ></gn-ui-form-field-open-data>\n</ng-container>\n<div class=\"flex flex-col h-full\" *ngIf=\"!isHidden\">\n <ng-container *ngIf=\"withoutWrapper; else withGenericWrapper\">\n <ng-container *ngTemplateOutlet=\"fieldContent\"></ng-container>\n </ng-container>\n <ng-template #withGenericWrapper>\n <gn-ui-form-field-wrapper\n [label]=\"config.labelKey! | translate\"\n [hint]=\"config.hintKey! | translate\"\n >\n <ng-container *ngTemplateOutlet=\"fieldContent\"></ng-container>\n </gn-ui-form-field-wrapper>\n </ng-template>\n</div>\n\n<ng-template #fieldContent>\n <ng-container [ngSwitch]=\"model\">\n <ng-container *ngSwitchCase=\"'title'\">\n <div class=\"flex flex-row flex-start items-center gap-3 mb-[12px]\">\n <span\n #titleInput\n class=\"grow font-title text-3xl font-normal\"\n [gnUiEditableLabel]=\"valueAsString\"\n (editableLabelChanged)=\"valueChange.emit($event)\"\n ></span>\n <div class=\"flex flex-row justify-between\">\n <span\n class=\"material-symbols-outlined gn-ui-icon-small m-2 cursor-pointer\"\n (click)=\"focusTitleInput()\"\n >edit</span\n >\n <span\n class=\"material-symbols-outlined gn-ui-icon-small m-2\"\n [matTooltip]=\"config.hintKey! | translate\"\n matTooltipPosition=\"above\"\n >\n help\n </span>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'abstract'\">\n <gn-ui-form-field-rich\n [label]=\"config.labelKey! | translate\"\n [hint]=\"config.hintKey! | translate\"\n [value]=\"valueAsString\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-rich>\n </ng-container>\n <ng-container *ngSwitchCase=\"'overviews'\">\n <gn-ui-form-field-overviews\n [metadataUuid]=\"uniqueIdentifier\"\n [value]=\"valueAsOverviews\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-overviews>\n </ng-container>\n <ng-container *ngSwitchCase=\"'uniqueIdentifier'\">\n <gn-ui-form-field-simple\n type=\"text\"\n [readonly]=\"true\"\n [value]=\"valueAsString\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-simple>\n </ng-container>\n <ng-container *ngSwitchCase=\"'resourceUpdated'\">\n <gn-ui-form-field-date-updated\n [value]=\"valueAsDate\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-date-updated>\n </ng-container>\n <ng-container *ngSwitchCase=\"'recordUpdated'\">\n <gn-ui-form-field-date-updated\n [value]=\"valueAsDate\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-date-updated>\n </ng-container>\n <ng-container *ngSwitchCase=\"'updateFrequency'\">\n <gn-ui-form-field-update-frequency\n [value]=\"valueAsUpdateFrequency\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-update-frequency>\n </ng-container>\n <ng-container *ngSwitchCase=\"'temporalExtents'\">\n <gn-ui-form-field-temporal-extents\n [value]=\"valueAsTemporalExtents\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-temporal-extents>\n </ng-container>\n <ng-container *ngSwitchCase=\"'spatialExtents'\">\n <gn-ui-form-field-spatial-extent></gn-ui-form-field-spatial-extent>\n </ng-container>\n <ng-container *ngSwitchCase=\"'keywords'\">\n <gn-ui-form-field-keywords\n [value]=\"valueAsKeywords\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-keywords>\n </ng-container>\n <ng-container *ngSwitchCase=\"'licenses'\">\n <gn-ui-form-field-license\n [label]=\"config.labelKey! | translate\"\n [value]=\"valueAsConstraints\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-license>\n </ng-container>\n <ng-container *ngSwitchCase=\"'contactsForResource'\">\n <gn-ui-form-field-contacts-for-resource\n [value]=\"valueAsIndividuals\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-contacts-for-resource>\n </ng-container>\n <ng-container *ngSwitchCase=\"'onlineResources'\">\n <gn-ui-form-field-online-link-resources\n *ngIf=\"modelSpecifier === 'onlineResourceType:link'\"\n [metadataUuid]=\"uniqueIdentifier\"\n [value]=\"valueAsOnlineResources\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-online-link-resources>\n </ng-container>\n </ng-container>\n</ng-template>\n" }]
|
|
37479
37681
|
}], propDecorators: { uniqueIdentifier: [{
|
|
37480
37682
|
type: Input
|
|
37481
37683
|
}], model: [{
|
|
@@ -37511,11 +37713,11 @@ class RecordFormComponent {
|
|
|
37511
37713
|
return section.labelKey;
|
|
37512
37714
|
}
|
|
37513
37715
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RecordFormComponent, deps: [{ token: EditorFacade }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
37514
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RecordFormComponent, isStandalone: true, selector: "gn-ui-record-form", ngImport: i0, template: "<
|
|
37716
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RecordFormComponent, isStandalone: true, selector: "gn-ui-record-form", ngImport: i0, 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-8 border p-8 rounded-[8px] shadow\">\n <div\n class=\"flex flex-col gap-2\"\n [ngClass]=\"section.labelKey ? 'mb-4' : 'hidden'\"\n >\n <div\n *ngIf=\"section.labelKey\"\n class=\"text-2xl font-title text-main\"\n translate\n >\n {{ section.labelKey }}\n </div>\n <div *ngIf=\"section.descriptionKey\" class=\"text-gray-800\" translate>\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 (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", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$3.AsyncPipe, name: "async" }, { kind: "component", type: FormFieldComponent, selector: "gn-ui-form-field", inputs: ["uniqueIdentifier", "model", "modelSpecifier", "config", "value"], outputs: ["valueChange"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
37515
37717
|
}
|
|
37516
37718
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RecordFormComponent, decorators: [{
|
|
37517
37719
|
type: Component,
|
|
37518
|
-
args: [{ selector: 'gn-ui-record-form', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, FormFieldComponent, TranslateModule], template: "<
|
|
37720
|
+
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-8 border p-8 rounded-[8px] shadow\">\n <div\n class=\"flex flex-col gap-2\"\n [ngClass]=\"section.labelKey ? 'mb-4' : 'hidden'\"\n >\n <div\n *ngIf=\"section.labelKey\"\n class=\"text-2xl font-title text-main\"\n translate\n >\n {{ section.labelKey }}\n </div>\n <div *ngIf=\"section.descriptionKey\" class=\"text-gray-800\" translate>\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 (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" }]
|
|
37519
37721
|
}], ctorParameters: function () { return [{ type: EditorFacade }]; } });
|
|
37520
37722
|
|
|
37521
37723
|
const ROUTER_STATE_KEY = 'router';
|
|
@@ -37898,5 +38100,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
37898
38100
|
* Generated bundle index. Do not edit.
|
|
37899
38101
|
*/
|
|
37900
38102
|
|
|
37901
|
-
export { ADD_RESULTS, ADD_SEARCH, AbstractAction, AbstractSearchField, AddLayerFromCatalogComponent, AddLayerRecordPreviewComponent, AddResults, AddSearch, AnchorLinkDirective, ApiCardComponent, AuthService, AutocompleteComponent, AvatarComponent, AvatarServiceInterface, BadgeComponent, BaseReader, BlockListComponent, ButtonComponent, CLEAR_ERROR, CLEAR_RESULTS, CarouselComponent, CatalogTitleComponent, ChartComponent, ChartViewComponent, CheckToggleComponent, CheckboxComponent, ChipsInputComponent, ClearError, ClearResults, ColorScaleComponent, ConfirmationDialogComponent, ContentGhostComponent, CopyTextButtonComponent, DEFAULT_BASELAYER_CONTEXT, DEFAULT_GN4_LOGIN_URL, DEFAULT_LANG, DEFAULT_PAGE_SIZE, DEFAULT_RESULTS_LAYOUT_CONFIG, DEFAULT_SEARCH_KEY, DEFAULT_VIEW, DataService, DataViewComponent, DataViewPermalinkComponent, DataViewShareComponent, DataViewWebComponentComponent, DatePickerComponent, DateRangePickerComponent, DefaultRouterModule, DownloadItemComponent, DownloadsListComponent, DragAndDropFileInputComponent, DropdownMultiselectComponent, DropdownSelectorComponent, EDITOR_FEATURE_KEY, ES_QUERY_FIELDS_PRIORITY, ES_RESOURCES_VALUES, ES_SOURCE_SUMMARY, EditableLabelDirective, EditorFacade, EditorService, ElasticsearchService, EmbeddedTranslateLoader, ErrorComponent, ErrorType, ExpandablePanelButtonComponent, ExpandablePanelComponent, ExternalViewerButtonComponent, FEATURE_MAP_OPTIONS, FIELDS_BRIEF, FIELDS_SUMMARY, FILTER_GEOMETRY, FORMATS, FacetBlockComponent, FacetBlockStubComponent, FacetItemComponent, FacetItemStubComponent, FacetListComponent, FacetsContainerComponent, FacetsModule, FavoriteStarComponent, FavoritesService, FeatureAuthModule, FeatureCatalogModule, FeatureDatavizModule, FeatureDetailComponent, FeatureEditorModule, FeatureInfoService, FeatureMapModule, FeatureNotificationsModule, FeatureRecordModule, FeatureSearchModule, FetchError, FieldsService, FigureComponent, FigureContainerComponent, FileInputComponent, FileTranslateLoader, FilterDropdownComponent, FormFieldWrapperComponent, FullTextSearchField, FuzzySearchComponent, GN_UI_VERSION, GeoTableViewComponent, GeocodingComponent, Gn4Converter, Gn4PlatformMapper, Gn4PlatformService, Gn4Repository, Gn4SettingsService, GravatarService, HttpLoaderFactory, I18nInterceptor, ImageFallbackDirective, ImageInputComponent, ImageOverlayPreviewComponent, InteractiveTableColumnComponent, InteractiveTableComponent, IsSpatialSearchField, Iso191153Converter, Iso19139Converter, LANGUAGES_LIST, LANGUAGE_NAMES, LANGUAGE_STORAGE_KEY, LANG_2_TO_3_MAPPER, LANG_3_TO_2_MAPPER, LOGIN_URL, LONLAT_CRS_CODES, LangService, LanguageSwitcherComponent, LayersPanelComponent, LicenseSearchField, LinkCardComponent, LinkClassifierService, LinkUsage, LoadingMaskComponent, LogService, MAP_FEATURE_KEY, METADATA_LANGUAGE, MY_FORMATS, MapComponent, MapContainerComponent, MapContextComponent, MapContextLayerTypeEnum, MapContextService, MapFacade, MapInstanceDirective, MapManagerService, MapStyleService, MapUtilsService, MapViewComponent, MarkdownEditorComponent, MarkdownParserComponent, MaxLinesComponent, mdview_actions as MdViewActions, MdViewFacade, MetadataCatalogComponent, MetadataContactComponent, MetadataInfoComponent, MetadataLinkType, MetadataQualityComponent, MetadataQualityItemComponent, ModalDialogComponent, MultilingualSearchField, MyOrgService, NavigationButtonComponent, NotificationComponent, NotificationsContainerComponent, NotificationsService, ORGANIZATIONS_STRATEGY, ORGANIZATION_PAGE_URL_TOKEN, ORGANIZATION_URL_TOKEN, OrganisationPreviewComponent, OrganisationsComponent, OrganisationsFilterComponent, OrganisationsResultComponent, OrganizationSearchField, OrganizationsFromGroupsService, OrganizationsFromMetadataService, OwnerSearchField, PAGINATE, PARSE_DELIMITER, PATCH_RESULTS_AGGREGATIONS, PROXY_PATH, Paginate, PaginationButtonsComponent, PaginationComponent, PatchResultsAggregations, PopoverComponent, PopupAlertComponent, PreviousNextButtonsComponent, ProgressBarComponent, ProxyService, QUERY_FIELDS, RECORD_URL_TOKEN, REQUEST_MORE_ON_AGGREGATION, REQUEST_MORE_RESULTS, REQUEST_NEW_RESULTS, RESULTS_LAYOUT_CONFIG, ROUTER_CONFIG, ROUTER_ROUTE_DATASET, ROUTER_ROUTE_ORGANIZATION, ROUTER_ROUTE_SEARCH, ROUTER_STATE_KEY, ROUTE_PARAMS, RecordApiFormComponent, RecordFormComponent, RecordMetricComponent, RecordPreviewCardComponent, RecordPreviewComponent, RecordPreviewFeedComponent, RecordPreviewListComponent, RecordPreviewRowComponent, RecordPreviewTextComponent, RecordPreviewTitleComponent, RecordsMetricsComponent, RecordsService, RelatedRecordCardComponent, RequestMoreOnAggregation, RequestMoreResults, RequestNewResults, ResultsHitsContainerComponent, ResultsHitsNumberComponent, ResultsLayoutComponent, ResultsLayoutConfigItem, ResultsListComponent, ResultsListContainerComponent, ResultsListItemComponent, ResultsTableComponent, ResultsTableContainerComponent, RouterEffects, RouterFacade, RouterService, SEARCH_FEATURE_KEY, SET_CONFIG_AGGREGATIONS, SET_CONFIG_FILTERS, SET_CONFIG_REQUEST_FIELDS, SET_ERROR, SET_FAVORITES_ONLY, SET_FILTERS, SET_INCLUDE_ON_AGGREGATION, SET_PAGE_SIZE, SET_RESULTS_AGGREGATIONS, SET_RESULTS_HITS, SET_RESULTS_LAYOUT, SET_SEARCH, SET_SORT_BY, SET_SPATIAL_FILTER_ENABLED, SearchEffects, SearchFacade, SearchInputComponent, SearchRouterContainerDirective, SearchService, SearchStateContainerDirective, SelectionService, SetConfigAggregations, SetConfigFilters, SetConfigRequestFields, SetError, SetFavoritesOnly, SetFilters, SetIncludeOnAggregation, SetPageSize, SetResultsAggregations, SetResultsHits, SetResultsLayout, SetSearch, SetSortBy, SetSpatialFilterEnabled, SimpleSearchField, SiteTitleComponent, SortByComponent, SortableListComponent, SourceLabelComponent, SourcesService, SpinningLoaderComponent, StarToggleComponent, StepBarComponent, StickyHeaderComponent, SupportedTypes, SwitchToggleComponent, THUMBNAIL_PLACEHOLDER, TRANSLATE_DEFAULT_CONFIG, TRANSLATE_WITH_OVERRIDES_CONFIG, TableComponent, TableViewComponent, TextAreaComponent, TextInputComponent, ThemeService, ThumbnailComponent, TranslatedSearchField, UPDATE_CONFIG_AGGREGATIONS, UPDATE_FILTERS, UPDATE_REQUEST_AGGREGATION_TERM, UiCatalogModule, UiDatavizModule, UiElementsModule, FacetsModule$1 as UiFacetsModule, UiInputsModule, UiLayoutModule, UiMapModule, UiSearchModule, UiWidgetsModule, UpdateConfigAggregations, UpdateFilters, UrlInputComponent, UserFeedbackItemComponent, UserPreviewComponent, UtilI18nModule, UtilSharedModule, ViewportIntersectorComponent, WEB_COMPONENT_EMBEDDER_URL, WFS_MAX_FEATURES, WizardComponent, WizardFieldComponent, WizardFieldType, WizardService, WizardSummarizeComponent, _reset, addLayer, appConfigWithTranslationFixture, blockModelFixture, bytesToMegabytes, changeLayerOrder, checkFileFormat, clearLayerError, createFuzzyFilter, currentPage, defaultMapOptions, defaultMapStyleFixture, defaultMapStyleHlFixture, downgradeImage, downsizeImage, draftSaveSuccess, dragPanCondition, dropEmptyTranslations, editorReducer, emptyBlockModelFixture, findConverterForDocument, getArrayItem, getAsArray, getAsUrl, getBadgeColor, getCustomTranslations, getError, getFavoritesOnly, getFileFormat, getFileFormatFromServiceOutput, getFirstValue, getFormatPriority, getGeometryFromGeoJSON, getGlobalConfig, getJsonDataItemsProxy, getLangFromBrowser, getLinkLabel, getLinkPriority, getMapLayers, getMapState, getMetadataQualityConfig, getMimeTypeForFormat, getOptionalMapConfig, getOptionalSearchConfig, getPageSize, getSearchConfigAggregations, getSearchFilters, getSearchResults, getSearchResultsAggregations, getSearchResultsHits, getSearchResultsLayout, getSearchResultsLoading, getSearchSortBy, getSearchState, getSearchStateSearch, getSpatialFilterEnabled, getTemporalRangeUnion, getThemeConfig, initSearch, initialEditorState, initialMapState, initialState, isBeginningOfResults, isConfigLoaded, isEndOfResults, isFormatInQueryParam, itemModelFixture, loadAppConfig, malformedConfigFixture, mapConfigFixture, mapContact, mapKeywords, mapLogo, mapOrganization, mapReducer, markRecordAsChanged, megabytesToBytes, mimeTypeToFormat, minimalAppConfigFixture, missingMandatoryConfigFixture, mouseWheelZoomCondition, okAppConfigFixture, openDataset, openRecord, parse, placeholder, propagateToDocumentOnly, provideGn4, provideRepositoryUrl, readDataset, readDatasetHeaders, reducer$2 as reducer, reducerSearch, removeLayer, removeSearchParams, removeWhitespace, saveRecord, saveRecordFailure, saveRecordSuccess, selectCurrentPage, selectEditorConfig, selectEditorState, selectFallback, selectFallbackFields, selectField, selectRecord, selectRecordAlreadySavedOnce, selectRecordChangedSinceSave, selectRecordSaveError, selectRecordSaving, selectRecordSections, selectRecordSource, selectTranslatedField, selectTranslatedValue, setCurrentPage, setLayerError, someHabTableItemFixture, sortByFromString, sortByToString, sortByToStrings, stripHtml, tableItemFixture, toDate, totalPages, undoRecordDraft, unrecognizedKeysConfigFixture, updateLayer, updateRecordField, wrongLanguageCodeConfigFixture };
|
|
38103
|
+
export { ADD_RESULTS, ADD_SEARCH, AbstractAction, AbstractSearchField, AddLayerFromCatalogComponent, AddLayerRecordPreviewComponent, AddResults, AddSearch, AnchorLinkDirective, ApiCardComponent, AuthService, AutocompleteComponent, AvatarComponent, AvatarServiceInterface, BadgeComponent, BaseReader, BlockListComponent, ButtonComponent, CLEAR_ERROR, CLEAR_RESULTS, CarouselComponent, CatalogTitleComponent, ChartComponent, ChartViewComponent, CheckToggleComponent, CheckboxComponent, ChipsInputComponent, ClearError, ClearResults, ColorScaleComponent, ConfirmationDialogComponent, ContentGhostComponent, CopyTextButtonComponent, DEFAULT_BASELAYER_CONTEXT, DEFAULT_GN4_LOGIN_URL, DEFAULT_LANG, DEFAULT_PAGE_SIZE, DEFAULT_RESULTS_LAYOUT_CONFIG, DEFAULT_SEARCH_KEY, DEFAULT_VIEW, DataService, DataViewComponent, DataViewPermalinkComponent, DataViewShareComponent, DataViewWebComponentComponent, DatePickerComponent, DateRangePickerComponent, DefaultRouterModule, DownloadItemComponent, DownloadsListComponent, DragAndDropFileInputComponent, DropdownMultiselectComponent, DropdownSelectorComponent, EDITOR_FEATURE_KEY, ES_QUERY_FIELDS_PRIORITY, ES_RESOURCES_VALUES, ES_SOURCE_SUMMARY, EditableLabelDirective, EditorFacade, EditorService, ElasticsearchService, EmbeddedTranslateLoader, ErrorComponent, ErrorType, ExpandablePanelButtonComponent, ExpandablePanelComponent, ExternalViewerButtonComponent, FEATURE_MAP_OPTIONS, FIELDS_BRIEF, FIELDS_SUMMARY, FILTER_GEOMETRY, FORMATS, FacetBlockComponent, FacetBlockStubComponent, FacetItemComponent, FacetItemStubComponent, FacetListComponent, FacetsContainerComponent, FacetsModule, FavoriteStarComponent, FavoritesService, FeatureAuthModule, FeatureCatalogModule, FeatureDatavizModule, FeatureDetailComponent, FeatureEditorModule, FeatureInfoService, FeatureMapModule, FeatureNotificationsModule, FeatureRecordModule, FeatureSearchModule, FetchError, FieldsService, FigureComponent, FigureContainerComponent, FileInputComponent, FileTranslateLoader, FilterDropdownComponent, FormFieldWrapperComponent, FullTextSearchField, FuzzySearchComponent, GN_UI_VERSION, GeoTableViewComponent, GeocodingComponent, Gn4Converter, Gn4PlatformMapper, Gn4PlatformService, Gn4Repository, Gn4SettingsService, GravatarService, HttpLoaderFactory, I18nInterceptor, ImageFallbackDirective, ImageInputComponent, ImageOverlayPreviewComponent, ImportRecordComponent, InteractiveTableColumnComponent, InteractiveTableComponent, IsSpatialSearchField, Iso191153Converter, Iso19139Converter, LANGUAGES_LIST, LANGUAGE_NAMES, LANGUAGE_STORAGE_KEY, LANG_2_TO_3_MAPPER, LANG_3_TO_2_MAPPER, LOGIN_URL, LONLAT_CRS_CODES, LangService, LanguageSwitcherComponent, LayersPanelComponent, LicenseSearchField, LinkCardComponent, LinkClassifierService, LinkUsage, LoadingMaskComponent, LogService, MAP_FEATURE_KEY, METADATA_LANGUAGE, MY_FORMATS, MapComponent, MapContainerComponent, MapContextComponent, MapContextLayerTypeEnum, MapContextService, MapFacade, MapInstanceDirective, MapManagerService, MapStyleService, MapUtilsService, MapViewComponent, MarkdownEditorComponent, MarkdownParserComponent, MaxLinesComponent, mdview_actions as MdViewActions, MdViewFacade, MetadataCatalogComponent, MetadataContactComponent, MetadataInfoComponent, MetadataLinkType, MetadataQualityComponent, MetadataQualityItemComponent, ModalDialogComponent, MultilingualSearchField, MyOrgService, NavigationButtonComponent, NotificationComponent, NotificationsContainerComponent, NotificationsService, ORGANIZATIONS_STRATEGY, ORGANIZATION_PAGE_URL_TOKEN, ORGANIZATION_URL_TOKEN, OrganisationPreviewComponent, OrganisationsComponent, OrganisationsFilterComponent, OrganisationsResultComponent, OrganizationSearchField, OrganizationsFromGroupsService, OrganizationsFromMetadataService, OwnerSearchField, PAGINATE, PARSE_DELIMITER, PATCH_RESULTS_AGGREGATIONS, PROXY_PATH, Paginate, PaginationButtonsComponent, PaginationComponent, PatchResultsAggregations, PopoverComponent, PopupAlertComponent, PreviousNextButtonsComponent, ProgressBarComponent, ProxyService, QUERY_FIELDS, RECORD_URL_TOKEN, REQUEST_MORE_ON_AGGREGATION, REQUEST_MORE_RESULTS, REQUEST_NEW_RESULTS, RESULTS_LAYOUT_CONFIG, ROUTER_CONFIG, ROUTER_ROUTE_DATASET, ROUTER_ROUTE_ORGANIZATION, ROUTER_ROUTE_SEARCH, ROUTER_STATE_KEY, ROUTE_PARAMS, RecordApiFormComponent, RecordFormComponent, RecordMetricComponent, RecordPreviewCardComponent, RecordPreviewComponent, RecordPreviewFeedComponent, RecordPreviewListComponent, RecordPreviewRowComponent, RecordPreviewTextComponent, RecordPreviewTitleComponent, RecordsMetricsComponent, RecordsService, RelatedRecordCardComponent, RequestMoreOnAggregation, RequestMoreResults, RequestNewResults, ResultsHitsContainerComponent, ResultsHitsNumberComponent, ResultsLayoutComponent, ResultsLayoutConfigItem, ResultsListComponent, ResultsListContainerComponent, ResultsListItemComponent, ResultsTableComponent, ResultsTableContainerComponent, RouterEffects, RouterFacade, RouterService, SEARCH_FEATURE_KEY, SET_CONFIG_AGGREGATIONS, SET_CONFIG_FILTERS, SET_CONFIG_REQUEST_FIELDS, SET_ERROR, SET_FAVORITES_ONLY, SET_FILTERS, SET_INCLUDE_ON_AGGREGATION, SET_PAGE_SIZE, SET_RESULTS_AGGREGATIONS, SET_RESULTS_HITS, SET_RESULTS_LAYOUT, SET_SEARCH, SET_SORT_BY, SET_SPATIAL_FILTER_ENABLED, SearchEffects, SearchFacade, SearchInputComponent, SearchRouterContainerDirective, SearchService, SearchStateContainerDirective, SelectionService, SetConfigAggregations, SetConfigFilters, SetConfigRequestFields, SetError, SetFavoritesOnly, SetFilters, SetIncludeOnAggregation, SetPageSize, SetResultsAggregations, SetResultsHits, SetResultsLayout, SetSearch, SetSortBy, SetSpatialFilterEnabled, SimpleSearchField, SiteTitleComponent, SortByComponent, SortableListComponent, SourceLabelComponent, SourcesService, SpinningLoaderComponent, StarToggleComponent, StepBarComponent, StickyHeaderComponent, SupportedTypes, SwitchToggleComponent, THUMBNAIL_PLACEHOLDER, TRANSLATE_DEFAULT_CONFIG, TRANSLATE_WITH_OVERRIDES_CONFIG, TableComponent, TableViewComponent, TextAreaComponent, TextInputComponent, ThemeService, ThumbnailComponent, TranslatedSearchField, UPDATE_CONFIG_AGGREGATIONS, UPDATE_FILTERS, UPDATE_REQUEST_AGGREGATION_TERM, UiCatalogModule, UiDatavizModule, UiElementsModule, FacetsModule$1 as UiFacetsModule, UiInputsModule, UiLayoutModule, UiMapModule, UiSearchModule, UiWidgetsModule, UpdateConfigAggregations, UpdateFilters, UrlInputComponent, UserFeedbackItemComponent, UserPreviewComponent, UtilI18nModule, UtilSharedModule, ViewportIntersectorComponent, WEB_COMPONENT_EMBEDDER_URL, WFS_MAX_FEATURES, WizardComponent, WizardFieldComponent, WizardFieldType, WizardService, WizardSummarizeComponent, XmlParseError, _reset, addAttribute, addLayer, allChildrenElement, appConfigWithTranslationFixture, appendChildTree, appendChildren, assertValidXml, blockModelFixture, bytesToMegabytes, changeLayerOrder, checkFileFormat, clearLayerError, createChild, createDocument, createElement, createFuzzyFilter, currentPage, defaultMapOptions, defaultMapStyleFixture, defaultMapStyleHlFixture, downgradeImage, downsizeImage, draftSaveSuccess, dragPanCondition, dropEmptyTranslations, editorReducer, emptyBlockModelFixture, findChildElement, findChildOrCreate, findChildrenElement, findConverterForDocument, findNestedChildOrCreate, findNestedElement, findNestedElements, findParent, firstChildElement, getArrayItem, getAsArray, getAsUrl, getBadgeColor, getCustomTranslations, getError, getFavoritesOnly, getFileFormat, getFileFormatFromServiceOutput, getFirstValue, getFormatPriority, getGeometryFromGeoJSON, getGlobalConfig, getJsonDataItemsProxy, getLangFromBrowser, getLinkLabel, getLinkPriority, getMapLayers, getMapState, getMetadataQualityConfig, getMimeTypeForFormat, getNamespace, getOptionalMapConfig, getOptionalSearchConfig, getPageSize, getRootElement, getSearchConfigAggregations, getSearchFilters, getSearchResults, getSearchResultsAggregations, getSearchResultsHits, getSearchResultsLayout, getSearchResultsLoading, getSearchSortBy, getSearchState, getSearchStateSearch, getSpatialFilterEnabled, getTemporalRangeUnion, getThemeConfig, initSearch, initialEditorState, initialMapState, initialState, isBeginningOfResults, isConfigLoaded, isEndOfResults, isFormatInQueryParam, itemModelFixture, loadAppConfig, malformedConfigFixture, mapConfigFixture, mapContact, mapKeywords, mapLogo, mapOrganization, mapReducer, markRecordAsChanged, megabytesToBytes, mimeTypeToFormat, minimalAppConfigFixture, missingMandatoryConfigFixture, mouseWheelZoomCondition, okAppConfigFixture, openDataset, openRecord, parse, parseXmlString, placeholder, propagateToDocumentOnly, provideGn4, provideRepositoryUrl, readAttribute, readDataset, readDatasetHeaders, readText, reducer$2 as reducer, reducerSearch, removeAllChildren, removeChildren, removeChildrenByName, removeLayer, removeSearchParams, removeWhitespace, renameElements, saveRecord, saveRecordFailure, saveRecordSuccess, selectCurrentPage, selectEditorConfig, selectEditorState, selectFallback, selectFallbackFields, selectField, selectRecord, selectRecordAlreadySavedOnce, selectRecordChangedSinceSave, selectRecordSaveError, selectRecordSaving, selectRecordSections, selectRecordSource, selectTranslatedField, selectTranslatedValue, setCurrentPage, setLayerError, setTextContent, someHabTableItemFixture, sortByFromString, sortByToString, sortByToStrings, stripHtml, stripNamespace, tableItemFixture, toDate, totalPages, undoRecordDraft, unrecognizedKeysConfigFixture, updateLayer, updateRecordField, wrongLanguageCodeConfigFixture, xmlToString };
|
|
37902
38104
|
//# sourceMappingURL=geonetwork-ui.mjs.map
|