geonetwork-ui 2.4.0-dev.e7ff1d25 → 2.4.0-dev.e97caaf2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/libs/api/metadata-converter/src/lib/gn4/types/keywords.model.mjs +1 -1
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.mjs +4 -2
- package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.mjs +11 -1
- package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.mjs +11 -1
- package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +1 -1
- package/esm2022/libs/common/domain/src/lib/model/user/user.model.mjs +1 -1
- package/esm2022/libs/common/domain/src/lib/platform.service.interface.mjs +1 -1
- package/esm2022/libs/feature/editor/src/lib/+state/editor.actions.mjs +2 -1
- package/esm2022/libs/feature/editor/src/lib/+state/editor.effects.mjs +6 -1
- package/esm2022/libs/feature/editor/src/lib/+state/editor.facade.mjs +4 -1
- package/esm2022/libs/feature/editor/src/lib/components/contact-card/contact-card.component.mjs +3 -3
- package/esm2022/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.mjs +78 -0
- package/esm2022/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.mjs +44 -79
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.mjs +35 -41
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.mjs +19 -41
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-license/form-field-license.component.mjs +10 -8
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.mjs +101 -0
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.mjs +22 -25
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.mjs +14 -7
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-resource-updated/form-field-resource-updated.component.mjs +10 -6
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.mjs +11 -11
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-simple/form-field-simple.component.mjs +9 -8
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.mjs +111 -5
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.mjs +49 -53
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.mjs +16 -14
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.mjs +34 -64
- package/esm2022/libs/feature/editor/src/lib/components/record-form/record-form.component.mjs +5 -3
- package/esm2022/libs/feature/editor/src/lib/fields.config.mjs +8 -2
- package/esm2022/libs/feature/editor/src/lib/services/editor.service.mjs +5 -1
- package/esm2022/libs/ui/elements/src/lib/sortable-list/sortable-list.component.mjs +3 -11
- package/esm2022/libs/ui/inputs/src/index.mjs +2 -1
- package/esm2022/libs/ui/inputs/src/lib/editable-label/editable-label.directive.mjs +26 -24
- package/esm2022/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.mjs +32 -0
- package/esm2022/libs/ui/map/src/lib/ui-map.module.mjs +3 -3
- package/esm2022/translations/de.json +12 -0
- package/esm2022/translations/en.json +12 -0
- package/esm2022/translations/es.json +12 -0
- package/esm2022/translations/fr.json +14 -2
- package/esm2022/translations/it.json +12 -0
- package/esm2022/translations/nl.json +12 -0
- package/esm2022/translations/pt.json +12 -0
- package/fesm2022/geonetwork-ui.mjs +846 -521
- package/fesm2022/geonetwork-ui.mjs.map +1 -1
- package/libs/api/metadata-converter/src/lib/gn4/types/keywords.model.d.ts +2 -6
- package/libs/api/metadata-converter/src/lib/gn4/types/keywords.model.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts +1 -0
- package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts.map +1 -1
- package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +1 -0
- package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
- package/libs/common/domain/src/lib/model/user/user.model.d.ts +1 -1
- package/libs/common/domain/src/lib/model/user/user.model.d.ts.map +1 -1
- package/libs/common/domain/src/lib/platform.service.interface.d.ts +1 -0
- package/libs/common/domain/src/lib/platform.service.interface.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/+state/editor.actions.d.ts +1 -0
- package/libs/feature/editor/src/lib/+state/editor.actions.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/+state/editor.effects.d.ts +5 -0
- package/libs/feature/editor/src/lib/+state/editor.effects.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/+state/editor.facade.d.ts +1 -0
- package/libs/feature/editor/src/lib/+state/editor.facade.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.d.ts +32 -0
- package/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.d.ts.map +1 -0
- package/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.d.ts +13 -13
- package/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.d.ts +10 -13
- 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-keywords/form-field-keywords.component.d.ts +8 -19
- 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-license/form-field-license.component.d.ts +6 -4
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-license/form-field-license.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.d.ts +22 -0
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.d.ts.map +1 -0
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.d.ts +10 -12
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.d.ts +5 -3
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-resource-updated/form-field-resource-updated.component.d.ts +4 -3
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-resource-updated/form-field-resource-updated.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 +4 -4
- 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-simple/form-field-simple.component.d.ts +4 -3
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-simple/form-field-simple.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 +23 -0
- 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 +15 -17
- 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/form-field-update-frequency/form-field-update-frequency.component.d.ts +5 -5
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts +15 -27
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/record-form.component.d.ts +3 -2
- package/libs/feature/editor/src/lib/components/record-form/record-form.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/fields.config.d.ts +1 -0
- package/libs/feature/editor/src/lib/fields.config.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/services/editor.service.d.ts +1 -0
- package/libs/feature/editor/src/lib/services/editor.service.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/sortable-list/sortable-list.component.d.ts +1 -6
- package/libs/ui/elements/src/lib/sortable-list/sortable-list.component.d.ts.map +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/editable-label/editable-label.directive.d.ts +5 -3
- package/libs/ui/inputs/src/lib/editable-label/editable-label.directive.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.d.ts +17 -0
- package/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.d.ts.map +1 -0
- package/package.json +1 -1
- package/src/libs/api/metadata-converter/src/lib/fixtures/generic.records.ts +6 -1
- package/src/libs/api/metadata-converter/src/lib/gn4/types/keywords.model.ts +2 -6
- package/src/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.ts +3 -1
- package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.ts +12 -1
- package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +43 -12
- package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +1 -0
- package/src/libs/common/domain/src/lib/model/user/user.model.ts +1 -1
- package/src/libs/common/domain/src/lib/platform.service.interface.ts +4 -0
- package/src/libs/common/fixtures/src/lib/organisations.fixture.ts +10 -0
- package/src/libs/feature/editor/src/lib/+state/editor.actions.ts +2 -0
- package/src/libs/feature/editor/src/lib/+state/editor.effects.ts +15 -0
- package/src/libs/feature/editor/src/lib/+state/editor.facade.ts +4 -0
- package/src/libs/feature/editor/src/lib/components/contact-card/contact-card.component.html +4 -2
- package/src/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.css +0 -0
- package/src/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.html +26 -0
- package/src/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.ts +89 -0
- package/src/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.html +1 -1
- package/src/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.ts +46 -94
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.ts +63 -85
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.html +7 -17
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.ts +18 -51
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-license/form-field-license.component.ts +13 -5
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.css +0 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.html +4 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.ts +128 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.html +1 -1
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.ts +18 -29
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.html +1 -1
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.ts +16 -5
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-resource-updated/form-field-resource-updated.component.html +2 -2
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-resource-updated/form-field-resource-updated.component.ts +9 -3
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.html +2 -2
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.ts +13 -7
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-simple/form-field-simple.component.html +5 -3
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-simple/form-field-simple.component.ts +11 -4
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.html +15 -1
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.ts +156 -1
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.html +9 -2
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.ts +59 -71
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.ts +17 -15
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.html +99 -81
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.ts +37 -66
- package/src/libs/feature/editor/src/lib/components/record-form/record-form.component.html +1 -0
- package/src/libs/feature/editor/src/lib/components/record-form/record-form.component.ts +7 -2
- package/src/libs/feature/editor/src/lib/fields.config.ts +8 -1
- package/src/libs/feature/editor/src/lib/services/editor.service.ts +7 -0
- package/src/libs/ui/elements/src/lib/sortable-list/sortable-list.component.html +0 -9
- package/src/libs/ui/elements/src/lib/sortable-list/sortable-list.component.ts +0 -4
- package/src/libs/ui/inputs/src/index.ts +1 -0
- package/src/libs/ui/inputs/src/lib/editable-label/editable-label.directive.ts +40 -26
- package/src/libs/ui/map/src/lib/ui-map.module.ts +1 -1
- package/translations/de.json +12 -0
- package/translations/en.json +12 -0
- package/translations/es.json +12 -0
- package/translations/fr.json +14 -2
- package/translations/it.json +12 -0
- package/translations/nl.json +12 -0
- package/translations/pt.json +12 -0
- package/translations/sk.json +12 -0
|
@@ -15,7 +15,7 @@ import { map as map$1, catchError, tap as tap$1, shareReplay, filter, startWith,
|
|
|
15
15
|
import { marker } from '@biesbjerg/ngx-translate-extract-marker';
|
|
16
16
|
import * as i1$3 from '@angular/common';
|
|
17
17
|
import { CommonModule, NgFor, NgComponentOutlet, NgOptimizedImage, NgForOf } from '@angular/common';
|
|
18
|
-
import { of, map as map$2, lastValueFrom, Subject, switchMap, throwError, combineLatest, from, takeLast, forkJoin, firstValueFrom, merge, BehaviorSubject, fromEvent, timer, animationFrameScheduler, Subscription, ReplaySubject, 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, exhaustMap, mergeMap as mergeMap$1, withLatestFrom as withLatestFrom$1, startWith as startWith$1, pairwise as pairwise$1 } from 'rxjs';
|
|
18
|
+
import { of, map as map$2, lastValueFrom, Subject, switchMap, throwError, combineLatest, from, takeLast, forkJoin, firstValueFrom, merge, BehaviorSubject, fromEvent, timer, animationFrameScheduler, Subscription, ReplaySubject, 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, exhaustMap, mergeMap as mergeMap$1, withLatestFrom as withLatestFrom$1, shareReplay as shareReplay$1, startWith as startWith$1, pairwise as pairwise$1 } from 'rxjs';
|
|
19
19
|
import { valid, coerce, satisfies, ltr } from 'semver';
|
|
20
20
|
import * as i1$2 from '@ngrx/store';
|
|
21
21
|
import { createAction, props, createReducer, on, createFeatureSelector, createSelector, select, StoreModule, Store } from '@ngrx/store';
|
|
@@ -53,34 +53,36 @@ import ImageLayer from 'ol/layer/Image';
|
|
|
53
53
|
import EmblaCarousel from 'embla-carousel';
|
|
54
54
|
import * as i3 from '@angular/material/tooltip';
|
|
55
55
|
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
56
|
-
import * as i2$
|
|
56
|
+
import * as i2$3 from '@angular/material/tabs';
|
|
57
57
|
import { MatTabsModule } from '@angular/material/tabs';
|
|
58
|
-
import * as
|
|
58
|
+
import * as i5 from '@angular/forms';
|
|
59
59
|
import { FormsModule, ReactiveFormsModule, UntypedFormControl, FormArray, FormControl } from '@angular/forms';
|
|
60
|
-
import * as i1$
|
|
60
|
+
import * as i1$9 from '@angular/router';
|
|
61
61
|
import { RouterModule, RouterLink, RouteReuseStrategy } from '@angular/router';
|
|
62
62
|
import * as i3$2 from 'ngx-dropzone';
|
|
63
63
|
import { NgxDropzoneModule } from 'ngx-dropzone';
|
|
64
64
|
import tippy from 'tippy.js';
|
|
65
65
|
import Duration from 'duration-relativetimeformat';
|
|
66
|
-
import * as i5 from 'ngx-chips';
|
|
66
|
+
import * as i5$1 from 'ngx-chips';
|
|
67
67
|
import { TagInputModule } from 'ngx-chips';
|
|
68
68
|
import * as i1$4 from '@angular/material/progress-spinner';
|
|
69
69
|
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
|
|
70
|
-
import * as i1$
|
|
70
|
+
import * as i1$8 from '@angular/material/dialog';
|
|
71
71
|
import { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';
|
|
72
|
-
import * as i2$
|
|
72
|
+
import * as i2$1 from '@angular/material/autocomplete';
|
|
73
73
|
import { MatAutocompleteTrigger, MatAutocomplete, MatAutocompleteModule } from '@angular/material/autocomplete';
|
|
74
74
|
import * as i3$1 from '@angular/material/core';
|
|
75
75
|
import { MatNativeDateModule, MAT_DATE_LOCALE, DateAdapter, MAT_DATE_FORMATS } from '@angular/material/core';
|
|
76
76
|
import * as i1$5 from '@angular/material/checkbox';
|
|
77
77
|
import { MatCheckboxModule } from '@angular/material/checkbox';
|
|
78
|
-
import * as i2$
|
|
78
|
+
import * as i2$2 from '@angular/material/datepicker';
|
|
79
79
|
import { MatDatepickerModule } from '@angular/material/datepicker';
|
|
80
80
|
import * as i1$6 from '@angular/cdk/overlay';
|
|
81
81
|
import { CdkConnectedOverlay, OverlayModule } from '@angular/cdk/overlay';
|
|
82
82
|
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
83
83
|
import { MatInputModule } from '@angular/material/input';
|
|
84
|
+
import * as i1$7 from '@angular/material/button-toggle';
|
|
85
|
+
import { MatButtonToggleModule } from '@angular/material/button-toggle';
|
|
84
86
|
import * as basicLightbox from 'basiclightbox';
|
|
85
87
|
import { marked } from 'marked';
|
|
86
88
|
import { moveItemInArray, CdkDropList, CdkDrag, CdkDragHandle } from '@angular/cdk/drag-drop';
|
|
@@ -88,7 +90,7 @@ import { formatDistance } from 'date-fns';
|
|
|
88
90
|
import { enUS, sk, pt as pt$1, nl as nl$1, it as it$1, es as es$1, de as de$1, fr as fr$1 } from 'date-fns/locale';
|
|
89
91
|
import * as i4 from '@angular/material/menu';
|
|
90
92
|
import { MatMenuTrigger, MatMenuModule } from '@angular/material/menu';
|
|
91
|
-
import * as i1$
|
|
93
|
+
import * as i1$a from '@ngrx/effects';
|
|
92
94
|
import { createEffect, ofType, EffectsModule, Actions } from '@ngrx/effects';
|
|
93
95
|
import { valid as valid$1 } from 'geojson-validation';
|
|
94
96
|
import { trigger, transition, animate, keyframes, style } from '@angular/animations';
|
|
@@ -97,9 +99,9 @@ import { queryDataGouvFr, queryGeonames, queryGeoadmin } from '@geospatial-sdk/g
|
|
|
97
99
|
import { Chart, BarController, BarElement, CategoryScale, LinearScale, LineController, LineElement, PointElement, PieController, ArcElement, ScatterController, Tooltip, Colors, Legend } from 'chart.js';
|
|
98
100
|
import * as i4$1 from '@angular/cdk/scrolling';
|
|
99
101
|
import { ScrollingModule } from '@angular/cdk/scrolling';
|
|
100
|
-
import * as i2$
|
|
102
|
+
import * as i2$4 from '@angular/material/sort';
|
|
101
103
|
import { MatSort, MatSortModule } from '@angular/material/sort';
|
|
102
|
-
import * as i1$
|
|
104
|
+
import * as i1$b from '@angular/material/table';
|
|
103
105
|
import { MatTableModule } from '@angular/material/table';
|
|
104
106
|
import * as i3$3 from 'ng-table-virtual-scroll';
|
|
105
107
|
import { TableVirtualScrollDataSource, TableVirtualScrollModule } from 'ng-table-virtual-scroll';
|
|
@@ -1647,7 +1649,7 @@ class Iso19139Converter extends BaseConverter {
|
|
|
1647
1649
|
distributions: writeDistributions$1,
|
|
1648
1650
|
onlineResources: writeOnlineResources,
|
|
1649
1651
|
temporalExtents: writeTemporalExtents,
|
|
1650
|
-
spatialExtents:
|
|
1652
|
+
spatialExtents: writeSpatialExtents,
|
|
1651
1653
|
// TODO
|
|
1652
1654
|
extras: () => undefined,
|
|
1653
1655
|
landingPage: () => undefined,
|
|
@@ -1807,6 +1809,8 @@ class Iso19139Converter extends BaseConverter {
|
|
|
1807
1809
|
fieldChanged('overviews') && this.writers['overviews'](record, rootEl);
|
|
1808
1810
|
fieldChanged('temporalExtents') &&
|
|
1809
1811
|
this.writers['temporalExtents'](record, rootEl);
|
|
1812
|
+
fieldChanged('spatialExtents') &&
|
|
1813
|
+
this.writers['spatialExtents'](record, rootEl);
|
|
1810
1814
|
fieldChanged('distributions') &&
|
|
1811
1815
|
this.writers['distributions'](record, rootEl);
|
|
1812
1816
|
fieldChanged('lineage') && this.writers['lineage'](record, rootEl);
|
|
@@ -17578,6 +17582,7 @@ var de = {
|
|
|
17578
17582
|
"downloads.format.unknown": "unbekannt",
|
|
17579
17583
|
"downloads.wfs.featuretype.not.found": "Der Layer wurde nicht gefunden",
|
|
17580
17584
|
dropFile: dropFile$6,
|
|
17585
|
+
"editor.form.placeKeywordWithoutExtent": "",
|
|
17581
17586
|
"editor.record.delete.confirmation.cancelText": "Stornieren",
|
|
17582
17587
|
"editor.record.delete.confirmation.confirmText": "Löschen",
|
|
17583
17588
|
"editor.record.delete.confirmation.message": "Sind Sie sicher, dass Sie diesen Datensatz löschen möchten?",
|
|
@@ -17598,6 +17603,7 @@ var de = {
|
|
|
17598
17603
|
"editor.record.form.field.overviews": "",
|
|
17599
17604
|
"editor.record.form.field.recordUpdated": "Datensatz zuletzt aktualisiert",
|
|
17600
17605
|
"editor.record.form.field.resourceUpdated": "Letztes Aktualisierungsdatum",
|
|
17606
|
+
"editor.record.form.field.spatialExtents": "",
|
|
17601
17607
|
"editor.record.form.field.temporalExtents": "Zeitlicher Umfang",
|
|
17602
17608
|
"editor.record.form.field.title": "Metadaten-Titel",
|
|
17603
17609
|
"editor.record.form.field.uniqueIdentifier": "Eindeutige Kennung (ID)",
|
|
@@ -17635,15 +17641,25 @@ var de = {
|
|
|
17635
17641
|
"editor.record.loadError.body": "Der Datensatz konnte nicht geladen werden:",
|
|
17636
17642
|
"editor.record.loadError.closeMessage": "Verstanden",
|
|
17637
17643
|
"editor.record.loadError.title": "Fehler beim Laden des Datensatzes",
|
|
17644
|
+
"editor.record.placeKeywordWithoutLabel": "",
|
|
17638
17645
|
"editor.record.publish": "Diesen Datensatz veröffentlichen",
|
|
17639
17646
|
"editor.record.publishError.body": "Der Datensatz konnte nicht veröffentlicht werden:",
|
|
17640
17647
|
"editor.record.publishError.closeMessage": "Verstanden",
|
|
17641
17648
|
"editor.record.publishError.title": "Fehler beim Veröffentlichen des Datensatzes",
|
|
17642
17649
|
"editor.record.publishSuccess.body": "Der Datensatz wurde erfolgreich veröffentlicht!",
|
|
17643
17650
|
"editor.record.publishSuccess.title": "Veröffentlichung erfolgreich",
|
|
17651
|
+
"editor.record.resourceError.body": "",
|
|
17652
|
+
"editor.record.resourceError.closeMessage": "",
|
|
17653
|
+
"editor.record.resourceError.title": "",
|
|
17644
17654
|
"editor.record.saveStatus.asDraftOnly": "Nur als Entwurf gespeichert - noch nicht veröffentlicht",
|
|
17645
17655
|
"editor.record.saveStatus.draftWithChangesPending": "Als Entwurf gespeichert - Änderungen stehen aus",
|
|
17646
17656
|
"editor.record.saveStatus.recordUpToDate": "Datensatz ist auf dem neuesten Stand",
|
|
17657
|
+
"editor.record.undo.confirmation.cancelText": "",
|
|
17658
|
+
"editor.record.undo.confirmation.confirmText": "",
|
|
17659
|
+
"editor.record.undo.confirmation.message": "",
|
|
17660
|
+
"editor.record.undo.confirmation.title": "",
|
|
17661
|
+
"editor.record.undo.tooltip.disabled": "",
|
|
17662
|
+
"editor.record.undo.tooltip.enabled": "",
|
|
17647
17663
|
"editor.record.upToDate": "Dieser Datensatz ist auf dem neuesten Stand",
|
|
17648
17664
|
"editor.sidebar.menu.editor": "",
|
|
17649
17665
|
"externalviewer.dataset.unnamed": "Datensatz aus dem Datahub",
|
|
@@ -18073,6 +18089,7 @@ var en = {
|
|
|
18073
18089
|
"downloads.format.unknown": "unknown",
|
|
18074
18090
|
"downloads.wfs.featuretype.not.found": "The layer was not found",
|
|
18075
18091
|
dropFile: dropFile$5,
|
|
18092
|
+
"editor.form.placeKeywordWithoutExtent": "This keyword is not associated with a geographical extent",
|
|
18076
18093
|
"editor.record.delete.confirmation.cancelText": "Cancel",
|
|
18077
18094
|
"editor.record.delete.confirmation.confirmText": "Delete",
|
|
18078
18095
|
"editor.record.delete.confirmation.message": "Are you sure you want to delete this record?",
|
|
@@ -18093,6 +18110,7 @@ var en = {
|
|
|
18093
18110
|
"editor.record.form.field.overviews": "Overviews",
|
|
18094
18111
|
"editor.record.form.field.recordUpdated": "Record Updated",
|
|
18095
18112
|
"editor.record.form.field.resourceUpdated": "Resource Updated",
|
|
18113
|
+
"editor.record.form.field.spatialExtents": "Spatial extents",
|
|
18096
18114
|
"editor.record.form.field.temporalExtents": "Temporal extents",
|
|
18097
18115
|
"editor.record.form.field.title": "Metadata title",
|
|
18098
18116
|
"editor.record.form.field.uniqueIdentifier": "Unique identifier",
|
|
@@ -18130,15 +18148,25 @@ var en = {
|
|
|
18130
18148
|
"editor.record.loadError.body": "The record could not be loaded:",
|
|
18131
18149
|
"editor.record.loadError.closeMessage": "Understood",
|
|
18132
18150
|
"editor.record.loadError.title": "Error loading record",
|
|
18151
|
+
"editor.record.placeKeywordWithoutLabel": "Unnamed location",
|
|
18133
18152
|
"editor.record.publish": "Publish this record",
|
|
18134
18153
|
"editor.record.publishError.body": "The record could not be published:",
|
|
18135
18154
|
"editor.record.publishError.closeMessage": "Understood",
|
|
18136
18155
|
"editor.record.publishError.title": "Error publishing record",
|
|
18137
18156
|
"editor.record.publishSuccess.body": "The record was successfully published!",
|
|
18138
18157
|
"editor.record.publishSuccess.title": "Publish success",
|
|
18158
|
+
"editor.record.resourceError.body": "There was an issue with the record attachments:",
|
|
18159
|
+
"editor.record.resourceError.closeMessage": "Understood",
|
|
18160
|
+
"editor.record.resourceError.title": "Error with the record attachments",
|
|
18139
18161
|
"editor.record.saveStatus.asDraftOnly": "Saved as draft only - not published yet",
|
|
18140
18162
|
"editor.record.saveStatus.draftWithChangesPending": "Saved as draft - changes are pending",
|
|
18141
18163
|
"editor.record.saveStatus.recordUpToDate": "Record is up to date",
|
|
18164
|
+
"editor.record.undo.confirmation.cancelText": "Keep the changes",
|
|
18165
|
+
"editor.record.undo.confirmation.confirmText": "Discard the changes",
|
|
18166
|
+
"editor.record.undo.confirmation.message": "Are you sure you want to cancel the pending changes on this record?",
|
|
18167
|
+
"editor.record.undo.confirmation.title": "Cancel changes?",
|
|
18168
|
+
"editor.record.undo.tooltip.disabled": "There is no pending changes on this record",
|
|
18169
|
+
"editor.record.undo.tooltip.enabled": "Clicking this button will cancel the pending changes on this record.",
|
|
18142
18170
|
"editor.record.upToDate": "This record is up to date",
|
|
18143
18171
|
"editor.sidebar.menu.editor": "Editor",
|
|
18144
18172
|
"externalviewer.dataset.unnamed": "Datahub layer",
|
|
@@ -18568,6 +18596,7 @@ var es = {
|
|
|
18568
18596
|
"downloads.format.unknown": "",
|
|
18569
18597
|
"downloads.wfs.featuretype.not.found": "",
|
|
18570
18598
|
dropFile: dropFile$4,
|
|
18599
|
+
"editor.form.placeKeywordWithoutExtent": "",
|
|
18571
18600
|
"editor.record.delete.confirmation.cancelText": "",
|
|
18572
18601
|
"editor.record.delete.confirmation.confirmText": "",
|
|
18573
18602
|
"editor.record.delete.confirmation.message": "",
|
|
@@ -18588,6 +18617,7 @@ var es = {
|
|
|
18588
18617
|
"editor.record.form.field.overviews": "",
|
|
18589
18618
|
"editor.record.form.field.recordUpdated": "",
|
|
18590
18619
|
"editor.record.form.field.resourceUpdated": "",
|
|
18620
|
+
"editor.record.form.field.spatialExtents": "",
|
|
18591
18621
|
"editor.record.form.field.temporalExtents": "",
|
|
18592
18622
|
"editor.record.form.field.title": "",
|
|
18593
18623
|
"editor.record.form.field.uniqueIdentifier": "",
|
|
@@ -18625,15 +18655,25 @@ var es = {
|
|
|
18625
18655
|
"editor.record.loadError.body": "",
|
|
18626
18656
|
"editor.record.loadError.closeMessage": "",
|
|
18627
18657
|
"editor.record.loadError.title": "",
|
|
18658
|
+
"editor.record.placeKeywordWithoutLabel": "",
|
|
18628
18659
|
"editor.record.publish": "",
|
|
18629
18660
|
"editor.record.publishError.body": "",
|
|
18630
18661
|
"editor.record.publishError.closeMessage": "",
|
|
18631
18662
|
"editor.record.publishError.title": "",
|
|
18632
18663
|
"editor.record.publishSuccess.body": "",
|
|
18633
18664
|
"editor.record.publishSuccess.title": "",
|
|
18665
|
+
"editor.record.resourceError.body": "",
|
|
18666
|
+
"editor.record.resourceError.closeMessage": "",
|
|
18667
|
+
"editor.record.resourceError.title": "",
|
|
18634
18668
|
"editor.record.saveStatus.asDraftOnly": "",
|
|
18635
18669
|
"editor.record.saveStatus.draftWithChangesPending": "",
|
|
18636
18670
|
"editor.record.saveStatus.recordUpToDate": "",
|
|
18671
|
+
"editor.record.undo.confirmation.cancelText": "",
|
|
18672
|
+
"editor.record.undo.confirmation.confirmText": "",
|
|
18673
|
+
"editor.record.undo.confirmation.message": "",
|
|
18674
|
+
"editor.record.undo.confirmation.title": "",
|
|
18675
|
+
"editor.record.undo.tooltip.disabled": "",
|
|
18676
|
+
"editor.record.undo.tooltip.enabled": "",
|
|
18637
18677
|
"editor.record.upToDate": "",
|
|
18638
18678
|
"editor.sidebar.menu.editor": "",
|
|
18639
18679
|
"externalviewer.dataset.unnamed": "",
|
|
@@ -19063,10 +19103,11 @@ var fr = {
|
|
|
19063
19103
|
"downloads.format.unknown": "inconnu",
|
|
19064
19104
|
"downloads.wfs.featuretype.not.found": "La couche n'a pas été retrouvée",
|
|
19065
19105
|
dropFile: dropFile$3,
|
|
19106
|
+
"editor.form.placeKeywordWithoutExtent": "Ce mot-clé n'a pas de localisation géographique associée",
|
|
19066
19107
|
"editor.record.delete.confirmation.cancelText": "Annuler",
|
|
19067
19108
|
"editor.record.delete.confirmation.confirmText": "Supprimer",
|
|
19068
19109
|
"editor.record.delete.confirmation.message": "Etes-vous sûr de vouloir supprimer cette fiche ?",
|
|
19069
|
-
"editor.record.delete.confirmation.title": "Supprimer la fiche",
|
|
19110
|
+
"editor.record.delete.confirmation.title": "Supprimer la fiche ?",
|
|
19070
19111
|
"editor.record.deleteError.body": "La fiche n'a pas pu être supprimée :",
|
|
19071
19112
|
"editor.record.deleteError.closeMessage": "Compris",
|
|
19072
19113
|
"editor.record.deleteError.title": "Erreur lors de la suppression",
|
|
@@ -19083,8 +19124,9 @@ var fr = {
|
|
|
19083
19124
|
"editor.record.form.field.overviews": "Aperçus",
|
|
19084
19125
|
"editor.record.form.field.recordUpdated": "Date de dernière révision",
|
|
19085
19126
|
"editor.record.form.field.resourceUpdated": "Date de dernière révision",
|
|
19127
|
+
"editor.record.form.field.spatialExtents": "Étendue spatiale",
|
|
19086
19128
|
"editor.record.form.field.temporalExtents": "Étendue temporelle",
|
|
19087
|
-
"editor.record.form.field.title": "",
|
|
19129
|
+
"editor.record.form.field.title": "Titre",
|
|
19088
19130
|
"editor.record.form.field.uniqueIdentifier": "Identifiant unique",
|
|
19089
19131
|
"editor.record.form.field.updateFrequency": "Fréquence de mise à jour",
|
|
19090
19132
|
"editor.record.form.license.cc-by": "",
|
|
@@ -19120,15 +19162,25 @@ var fr = {
|
|
|
19120
19162
|
"editor.record.loadError.body": "La fiche n'a pas pu être chargée :",
|
|
19121
19163
|
"editor.record.loadError.closeMessage": "Compris",
|
|
19122
19164
|
"editor.record.loadError.title": "Erreur lors du chargement",
|
|
19165
|
+
"editor.record.placeKeywordWithoutLabel": "Localisation sans nom",
|
|
19123
19166
|
"editor.record.publish": "Publier cette fiche",
|
|
19124
19167
|
"editor.record.publishError.body": "La fiche n'a pas pu être publiée :",
|
|
19125
19168
|
"editor.record.publishError.closeMessage": "Compris",
|
|
19126
19169
|
"editor.record.publishError.title": "Erreur lors de la publication",
|
|
19127
19170
|
"editor.record.publishSuccess.body": "La fiche a bien été publiée !",
|
|
19128
19171
|
"editor.record.publishSuccess.title": "Publication réussie",
|
|
19172
|
+
"editor.record.resourceError.body": "Une erreur est survenue lors de la gestion des pièces jointes :",
|
|
19173
|
+
"editor.record.resourceError.closeMessage": "Compris",
|
|
19174
|
+
"editor.record.resourceError.title": "Erreur avec les pièces jointes",
|
|
19129
19175
|
"editor.record.saveStatus.asDraftOnly": "Brouillon enregistré - fiche non publiée",
|
|
19130
19176
|
"editor.record.saveStatus.draftWithChangesPending": "Brouillon enregistré - modifications en cours",
|
|
19131
19177
|
"editor.record.saveStatus.recordUpToDate": "La fiche publiée est à jour",
|
|
19178
|
+
"editor.record.undo.confirmation.cancelText": "Garder les modifications",
|
|
19179
|
+
"editor.record.undo.confirmation.confirmText": "Retirer les modifications",
|
|
19180
|
+
"editor.record.undo.confirmation.message": "Etes-vous sûr de vouloir annuler les modifications apportées à cette fiche ?",
|
|
19181
|
+
"editor.record.undo.confirmation.title": "Annuler les modifications ?",
|
|
19182
|
+
"editor.record.undo.tooltip.disabled": "Il n'y a pas de modifications en cours sur cette fiche",
|
|
19183
|
+
"editor.record.undo.tooltip.enabled": "Cliquer sur ce bouton pour annuler les modifications apportées à cette fiche",
|
|
19132
19184
|
"editor.record.upToDate": "",
|
|
19133
19185
|
"editor.sidebar.menu.editor": "",
|
|
19134
19186
|
"externalviewer.dataset.unnamed": "Couche du datahub",
|
|
@@ -19558,6 +19610,7 @@ var it = {
|
|
|
19558
19610
|
"downloads.format.unknown": "sconosciuto",
|
|
19559
19611
|
"downloads.wfs.featuretype.not.found": "Il layer non è stato trovato",
|
|
19560
19612
|
dropFile: dropFile$2,
|
|
19613
|
+
"editor.form.placeKeywordWithoutExtent": "",
|
|
19561
19614
|
"editor.record.delete.confirmation.cancelText": "",
|
|
19562
19615
|
"editor.record.delete.confirmation.confirmText": "",
|
|
19563
19616
|
"editor.record.delete.confirmation.message": "",
|
|
@@ -19578,6 +19631,7 @@ var it = {
|
|
|
19578
19631
|
"editor.record.form.field.overviews": "",
|
|
19579
19632
|
"editor.record.form.field.recordUpdated": "",
|
|
19580
19633
|
"editor.record.form.field.resourceUpdated": "",
|
|
19634
|
+
"editor.record.form.field.spatialExtents": "",
|
|
19581
19635
|
"editor.record.form.field.temporalExtents": "",
|
|
19582
19636
|
"editor.record.form.field.title": "",
|
|
19583
19637
|
"editor.record.form.field.uniqueIdentifier": "",
|
|
@@ -19615,15 +19669,25 @@ var it = {
|
|
|
19615
19669
|
"editor.record.loadError.body": "",
|
|
19616
19670
|
"editor.record.loadError.closeMessage": "",
|
|
19617
19671
|
"editor.record.loadError.title": "",
|
|
19672
|
+
"editor.record.placeKeywordWithoutLabel": "",
|
|
19618
19673
|
"editor.record.publish": "",
|
|
19619
19674
|
"editor.record.publishError.body": "",
|
|
19620
19675
|
"editor.record.publishError.closeMessage": "",
|
|
19621
19676
|
"editor.record.publishError.title": "",
|
|
19622
19677
|
"editor.record.publishSuccess.body": "",
|
|
19623
19678
|
"editor.record.publishSuccess.title": "",
|
|
19679
|
+
"editor.record.resourceError.body": "",
|
|
19680
|
+
"editor.record.resourceError.closeMessage": "",
|
|
19681
|
+
"editor.record.resourceError.title": "",
|
|
19624
19682
|
"editor.record.saveStatus.asDraftOnly": "",
|
|
19625
19683
|
"editor.record.saveStatus.draftWithChangesPending": "",
|
|
19626
19684
|
"editor.record.saveStatus.recordUpToDate": "",
|
|
19685
|
+
"editor.record.undo.confirmation.cancelText": "",
|
|
19686
|
+
"editor.record.undo.confirmation.confirmText": "",
|
|
19687
|
+
"editor.record.undo.confirmation.message": "",
|
|
19688
|
+
"editor.record.undo.confirmation.title": "",
|
|
19689
|
+
"editor.record.undo.tooltip.disabled": "",
|
|
19690
|
+
"editor.record.undo.tooltip.enabled": "",
|
|
19627
19691
|
"editor.record.upToDate": "",
|
|
19628
19692
|
"editor.sidebar.menu.editor": "",
|
|
19629
19693
|
"externalviewer.dataset.unnamed": "Layer del datahub",
|
|
@@ -20053,6 +20117,7 @@ var nl = {
|
|
|
20053
20117
|
"downloads.format.unknown": "",
|
|
20054
20118
|
"downloads.wfs.featuretype.not.found": "",
|
|
20055
20119
|
dropFile: dropFile$1,
|
|
20120
|
+
"editor.form.placeKeywordWithoutExtent": "",
|
|
20056
20121
|
"editor.record.delete.confirmation.cancelText": "",
|
|
20057
20122
|
"editor.record.delete.confirmation.confirmText": "",
|
|
20058
20123
|
"editor.record.delete.confirmation.message": "",
|
|
@@ -20073,6 +20138,7 @@ var nl = {
|
|
|
20073
20138
|
"editor.record.form.field.overviews": "",
|
|
20074
20139
|
"editor.record.form.field.recordUpdated": "",
|
|
20075
20140
|
"editor.record.form.field.resourceUpdated": "",
|
|
20141
|
+
"editor.record.form.field.spatialExtents": "",
|
|
20076
20142
|
"editor.record.form.field.temporalExtents": "",
|
|
20077
20143
|
"editor.record.form.field.title": "",
|
|
20078
20144
|
"editor.record.form.field.uniqueIdentifier": "",
|
|
@@ -20110,15 +20176,25 @@ var nl = {
|
|
|
20110
20176
|
"editor.record.loadError.body": "",
|
|
20111
20177
|
"editor.record.loadError.closeMessage": "",
|
|
20112
20178
|
"editor.record.loadError.title": "",
|
|
20179
|
+
"editor.record.placeKeywordWithoutLabel": "",
|
|
20113
20180
|
"editor.record.publish": "",
|
|
20114
20181
|
"editor.record.publishError.body": "",
|
|
20115
20182
|
"editor.record.publishError.closeMessage": "",
|
|
20116
20183
|
"editor.record.publishError.title": "",
|
|
20117
20184
|
"editor.record.publishSuccess.body": "",
|
|
20118
20185
|
"editor.record.publishSuccess.title": "",
|
|
20186
|
+
"editor.record.resourceError.body": "",
|
|
20187
|
+
"editor.record.resourceError.closeMessage": "",
|
|
20188
|
+
"editor.record.resourceError.title": "",
|
|
20119
20189
|
"editor.record.saveStatus.asDraftOnly": "",
|
|
20120
20190
|
"editor.record.saveStatus.draftWithChangesPending": "",
|
|
20121
20191
|
"editor.record.saveStatus.recordUpToDate": "",
|
|
20192
|
+
"editor.record.undo.confirmation.cancelText": "",
|
|
20193
|
+
"editor.record.undo.confirmation.confirmText": "",
|
|
20194
|
+
"editor.record.undo.confirmation.message": "",
|
|
20195
|
+
"editor.record.undo.confirmation.title": "",
|
|
20196
|
+
"editor.record.undo.tooltip.disabled": "",
|
|
20197
|
+
"editor.record.undo.tooltip.enabled": "",
|
|
20122
20198
|
"editor.record.upToDate": "",
|
|
20123
20199
|
"editor.sidebar.menu.editor": "",
|
|
20124
20200
|
"externalviewer.dataset.unnamed": "",
|
|
@@ -20548,6 +20624,7 @@ var pt = {
|
|
|
20548
20624
|
"downloads.format.unknown": "",
|
|
20549
20625
|
"downloads.wfs.featuretype.not.found": "",
|
|
20550
20626
|
dropFile: dropFile,
|
|
20627
|
+
"editor.form.placeKeywordWithoutExtent": "",
|
|
20551
20628
|
"editor.record.delete.confirmation.cancelText": "",
|
|
20552
20629
|
"editor.record.delete.confirmation.confirmText": "",
|
|
20553
20630
|
"editor.record.delete.confirmation.message": "",
|
|
@@ -20568,6 +20645,7 @@ var pt = {
|
|
|
20568
20645
|
"editor.record.form.field.overviews": "",
|
|
20569
20646
|
"editor.record.form.field.recordUpdated": "",
|
|
20570
20647
|
"editor.record.form.field.resourceUpdated": "",
|
|
20648
|
+
"editor.record.form.field.spatialExtents": "",
|
|
20571
20649
|
"editor.record.form.field.temporalExtents": "",
|
|
20572
20650
|
"editor.record.form.field.title": "",
|
|
20573
20651
|
"editor.record.form.field.uniqueIdentifier": "",
|
|
@@ -20605,15 +20683,25 @@ var pt = {
|
|
|
20605
20683
|
"editor.record.loadError.body": "",
|
|
20606
20684
|
"editor.record.loadError.closeMessage": "",
|
|
20607
20685
|
"editor.record.loadError.title": "",
|
|
20686
|
+
"editor.record.placeKeywordWithoutLabel": "",
|
|
20608
20687
|
"editor.record.publish": "",
|
|
20609
20688
|
"editor.record.publishError.body": "",
|
|
20610
20689
|
"editor.record.publishError.closeMessage": "",
|
|
20611
20690
|
"editor.record.publishError.title": "",
|
|
20612
20691
|
"editor.record.publishSuccess.body": "",
|
|
20613
20692
|
"editor.record.publishSuccess.title": "",
|
|
20693
|
+
"editor.record.resourceError.body": "",
|
|
20694
|
+
"editor.record.resourceError.closeMessage": "",
|
|
20695
|
+
"editor.record.resourceError.title": "",
|
|
20614
20696
|
"editor.record.saveStatus.asDraftOnly": "",
|
|
20615
20697
|
"editor.record.saveStatus.draftWithChangesPending": "",
|
|
20616
20698
|
"editor.record.saveStatus.recordUpToDate": "",
|
|
20699
|
+
"editor.record.undo.confirmation.cancelText": "",
|
|
20700
|
+
"editor.record.undo.confirmation.confirmText": "",
|
|
20701
|
+
"editor.record.undo.confirmation.message": "",
|
|
20702
|
+
"editor.record.undo.confirmation.title": "",
|
|
20703
|
+
"editor.record.undo.tooltip.disabled": "",
|
|
20704
|
+
"editor.record.undo.tooltip.enabled": "",
|
|
20617
20705
|
"editor.record.upToDate": "",
|
|
20618
20706
|
"editor.sidebar.menu.editor": "",
|
|
20619
20707
|
"externalviewer.dataset.unnamed": "",
|
|
@@ -22404,6 +22492,15 @@ class Gn4PlatformMapper {
|
|
|
22404
22492
|
? keyword.definitions[lang3]
|
|
22405
22493
|
: keyword.definition;
|
|
22406
22494
|
const matchedThesaurus = thesaurus.find((thes) => keyword.thesaurusKey === thes.key);
|
|
22495
|
+
let bbox;
|
|
22496
|
+
if (keyword.coordWest) {
|
|
22497
|
+
bbox = [
|
|
22498
|
+
parseFloat(keyword.coordWest),
|
|
22499
|
+
parseFloat(keyword.coordSouth),
|
|
22500
|
+
parseFloat(keyword.coordEast),
|
|
22501
|
+
parseFloat(keyword.coordNorth),
|
|
22502
|
+
];
|
|
22503
|
+
}
|
|
22407
22504
|
return {
|
|
22408
22505
|
key,
|
|
22409
22506
|
label,
|
|
@@ -22415,6 +22512,7 @@ class Gn4PlatformMapper {
|
|
|
22415
22512
|
url: new URL(matchedThesaurus?.url),
|
|
22416
22513
|
type: matchedThesaurus?.dname,
|
|
22417
22514
|
},
|
|
22515
|
+
...(bbox && { bbox }),
|
|
22418
22516
|
};
|
|
22419
22517
|
});
|
|
22420
22518
|
}
|
|
@@ -22559,6 +22657,16 @@ class Gn4PlatformService {
|
|
|
22559
22657
|
}), shareReplay(1));
|
|
22560
22658
|
return this.keywordsByThesauri[uri];
|
|
22561
22659
|
}
|
|
22660
|
+
searchKeywordsInThesaurus(query, thesaurusId) {
|
|
22661
|
+
return this.allThesaurus$.pipe(switchMap((thesauri) => {
|
|
22662
|
+
const strippedThesaurusId = thesaurusId.replace('geonetwork.thesaurus.', '');
|
|
22663
|
+
if (!thesauri.find((thes) => thes.key === strippedThesaurusId))
|
|
22664
|
+
return of([]);
|
|
22665
|
+
return this.registriesApiService
|
|
22666
|
+
.searchKeywords(query, this.langService.iso3, 100, 0, null, [strippedThesaurusId], null)
|
|
22667
|
+
.pipe(map$1((keywords) => this.mapper.keywordsFromApi(keywords, thesauri, this.langService.iso3)));
|
|
22668
|
+
}));
|
|
22669
|
+
}
|
|
22562
22670
|
getUserFeedbacks(uuid) {
|
|
22563
22671
|
return this.userfeedbackApiService.getUserComments(uuid).pipe(map$1((userFeedbacks) => userFeedbacks.map(this.mapper.userFeedbacksFromApi)), catchError((error) => {
|
|
22564
22672
|
console.error('Error fetching user feedbacks:', error);
|
|
@@ -22752,7 +22860,7 @@ class UiMapModule {
|
|
|
22752
22860
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UiMapModule, imports: [CommonModule,
|
|
22753
22861
|
HttpClientModule,
|
|
22754
22862
|
MatIconModule,
|
|
22755
|
-
TranslateModule.
|
|
22863
|
+
TranslateModule.forChild()] }); }
|
|
22756
22864
|
}
|
|
22757
22865
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UiMapModule, decorators: [{
|
|
22758
22866
|
type: NgModule,
|
|
@@ -22762,7 +22870,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
22762
22870
|
CommonModule,
|
|
22763
22871
|
HttpClientModule,
|
|
22764
22872
|
MatIconModule,
|
|
22765
|
-
TranslateModule.
|
|
22873
|
+
TranslateModule.forChild(),
|
|
22766
22874
|
],
|
|
22767
22875
|
exports: [MapComponent, FeatureDetailComponent],
|
|
22768
22876
|
}]
|
|
@@ -25534,7 +25642,7 @@ class FacetItemComponent {
|
|
|
25534
25642
|
this.onInvertedChange(this.inverted);
|
|
25535
25643
|
}
|
|
25536
25644
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FacetItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
25537
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FacetItemComponent, selector: "gn-ui-facet-item", inputs: { label: "label", count: "count", selected: "selected", inverted: "inverted" }, outputs: { selectedChange: "selectedChange", invertedChange: "invertedChange" }, ngImport: i0, template: "<div\n class=\"flex flex-row items-center group px-1 my-1 hover:bg-gray-100 rounded-sm\"\n>\n <label class=\"grow shrink truncate cursor-pointer group-hover:text-black\">\n <input\n type=\"checkbox\"\n class=\"cursor-pointer\"\n [ngModel]=\"selected\"\n (ngModelChange)=\"onSelectedChange($event)\"\n />\n {{ label | translate }}\n <span class=\"group-hover:text-black\">({{ count }})</span>\n </label>\n <div\n *ngIf=\"!inverted\"\n class=\"shrink-0 cursor-pointer invisible group-hover:visible icon-exclude\"\n style=\"min-width: 20px\"\n (click)=\"toggleInverted()\"\n >\n <!-- minus svg -->\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n >\n <path\n fill-rule=\"evenodd\"\n d=\"M3 10a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1z\"\n clip-rule=\"evenodd\"\n />\n </svg>\n </div>\n <div\n *ngIf=\"inverted\"\n class=\"shrink-0 cursor-pointer invisible group-hover:visible icon-include\"\n style=\"min-width: 20px\"\n (click)=\"toggleInverted()\"\n >\n <!-- check svg -->\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n >\n <path\n fill-rule=\"evenodd\"\n d=\"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z\"\n clip-rule=\"evenodd\"\n />\n </svg>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type:
|
|
25645
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FacetItemComponent, selector: "gn-ui-facet-item", inputs: { label: "label", count: "count", selected: "selected", inverted: "inverted" }, outputs: { selectedChange: "selectedChange", invertedChange: "invertedChange" }, ngImport: i0, template: "<div\n class=\"flex flex-row items-center group px-1 my-1 hover:bg-gray-100 rounded-sm\"\n>\n <label class=\"grow shrink truncate cursor-pointer group-hover:text-black\">\n <input\n type=\"checkbox\"\n class=\"cursor-pointer\"\n [ngModel]=\"selected\"\n (ngModelChange)=\"onSelectedChange($event)\"\n />\n {{ label | translate }}\n <span class=\"group-hover:text-black\">({{ count }})</span>\n </label>\n <div\n *ngIf=\"!inverted\"\n class=\"shrink-0 cursor-pointer invisible group-hover:visible icon-exclude\"\n style=\"min-width: 20px\"\n (click)=\"toggleInverted()\"\n >\n <!-- minus svg -->\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n >\n <path\n fill-rule=\"evenodd\"\n d=\"M3 10a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1z\"\n clip-rule=\"evenodd\"\n />\n </svg>\n </div>\n <div\n *ngIf=\"inverted\"\n class=\"shrink-0 cursor-pointer invisible group-hover:visible icon-include\"\n style=\"min-width: 20px\"\n (click)=\"toggleInverted()\"\n >\n <!-- check svg -->\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n >\n <path\n fill-rule=\"evenodd\"\n d=\"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z\"\n clip-rule=\"evenodd\"\n />\n </svg>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }] }); }
|
|
25538
25646
|
}
|
|
25539
25647
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FacetItemComponent, decorators: [{
|
|
25540
25648
|
type: Component,
|
|
@@ -26721,7 +26829,7 @@ class AutocompleteComponent {
|
|
|
26721
26829
|
}
|
|
26722
26830
|
}
|
|
26723
26831
|
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 }); }
|
|
26724
|
-
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: "<div class=\"relative\">\n <input\n #searchInput\n type=\"text\"\n class=\"appearance-none focus:outline-white focus:outline-2 focus:outline-dotted focus:outline-offset-2 leading-tight rounded w-full text-black shadow-xl focus:shadow-[0_0_24px_0_rgba(21,40,184,0.09)]\"\n [placeholder]=\"placeholder\"\n [formControl]=\"control\"\n [matAutocomplete]=\"auto\"\n (keyup.enter)=\"handleEnter(searchInput.value)\"\n />\n <div class=\"flex flex-row absolute inset-y-0 right-0\">\n <button\n type=\"button\"\n class=\"text-primary-lightest hover:text-primary hover:bg-gray-50 transition-all duration-100 clear-btn\"\n *ngIf=\"searchInput.value\"\n aria-label=\"Clear\"\n (click)=\"clear()\"\n >\n <mat-icon class=\"material-symbols-outlined\">close</mat-icon>\n </button>\n <button\n type=\"button\"\n class=\"text-primary bg-white hover:text-primary-darkest hover:bg-gray-100 border-gray-300 hover:border-gray-500 transition-all duration-100 search-btn rounded-r\"\n aria-label=\"Trigger search\"\n *ngIf=\"allowSubmit\"\n data-test=\"autocomplete-submit-btn\"\n (click)=\"handleClickSearch()\"\n >\n <mat-icon class=\"material-symbols-outlined\">search</mat-icon>\n </button>\n </div>\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</div>\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: [":host{--input-height: 3.5em}.clear-btn{width:var(--input-height);height:100%}.search-btn{width:var(--input-height);height:100%;border-left-width:.1em}mat-icon{width:100%;height:100%;padding:.65em;font-size:1.5em}input{height:var(--input-height);padding:1.05em;padding-right:calc(2 * var(--input-height))}input:placeholder-shown{text-overflow:ellipsis}.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$
|
|
26832
|
+
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: "<div class=\"relative\">\n <input\n #searchInput\n type=\"text\"\n class=\"appearance-none focus:outline-white focus:outline-2 focus:outline-dotted focus:outline-offset-2 leading-tight rounded w-full text-black shadow-xl focus:shadow-[0_0_24px_0_rgba(21,40,184,0.09)]\"\n [placeholder]=\"placeholder\"\n [formControl]=\"control\"\n [matAutocomplete]=\"auto\"\n (keyup.enter)=\"handleEnter(searchInput.value)\"\n />\n <div class=\"flex flex-row absolute inset-y-0 right-0\">\n <button\n type=\"button\"\n class=\"text-primary-lightest hover:text-primary hover:bg-gray-50 transition-all duration-100 clear-btn\"\n *ngIf=\"searchInput.value\"\n aria-label=\"Clear\"\n (click)=\"clear()\"\n >\n <mat-icon class=\"material-symbols-outlined\">close</mat-icon>\n </button>\n <button\n type=\"button\"\n class=\"text-primary bg-white hover:text-primary-darkest hover:bg-gray-100 border-gray-300 hover:border-gray-500 transition-all duration-100 search-btn rounded-r\"\n aria-label=\"Trigger search\"\n *ngIf=\"allowSubmit\"\n data-test=\"autocomplete-submit-btn\"\n (click)=\"handleClickSearch()\"\n >\n <mat-icon class=\"material-symbols-outlined\">search</mat-icon>\n </button>\n </div>\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</div>\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: [":host{--input-height: 3.5em}.clear-btn{width:var(--input-height);height:100%}.search-btn{width:var(--input-height);height:100%;border-left-width:.1em}mat-icon{width:100%;height:100%;padding:.65em;font-size:1.5em}input{height:var(--input-height);padding:1.05em;padding-right:calc(2 * var(--input-height))}input:placeholder-shown{text-overflow:ellipsis}.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.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"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
26725
26833
|
}
|
|
26726
26834
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AutocompleteComponent, decorators: [{
|
|
26727
26835
|
type: Component,
|
|
@@ -26851,7 +26959,7 @@ class CheckToggleComponent {
|
|
|
26851
26959
|
this.toggled.emit(event);
|
|
26852
26960
|
}
|
|
26853
26961
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CheckToggleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
26854
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CheckToggleComponent, isStandalone: true, selector: "gn-ui-check-toggle", inputs: { title: "title", label: "label", value: "value", color: "color" }, outputs: { toggled: "toggled" }, ngImport: i0, template: "<label class=\"inline-flex relative items-start cursor-pointer\" [title]=\"title\">\n <span class=\"shrink-0\">\n <input\n type=\"checkbox\"\n class=\"sr-only peer\"\n [ngModel]=\"value\"\n (ngModelChange)=\"toggle($event)\"\n />\n <div\n class=\"w-11 h-6 bg-gray-200 peer-focus:outline-none peer-focus:ring-2 rounded-full peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:border-gray-300 after:border after:rounded-full after:h-5 after:w-5 after:transition-all\"\n [class]=\"\n color === 'secondary'\n ? 'peer-focus:ring-secondary-lighter peer-checked:bg-secondary'\n : 'peer-focus:ring-primary-lighter peer-checked:bg-primary'\n \"\n ></div>\n </span>\n <span class=\"ml-3 mt-[2px] text-sm font-medium\">{{ label }}</span>\n</label>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type:
|
|
26962
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CheckToggleComponent, isStandalone: true, selector: "gn-ui-check-toggle", inputs: { title: "title", label: "label", value: "value", color: "color" }, outputs: { toggled: "toggled" }, ngImport: i0, template: "<label class=\"inline-flex relative items-start cursor-pointer\" [title]=\"title\">\n <span class=\"shrink-0\">\n <input\n type=\"checkbox\"\n class=\"sr-only peer\"\n [ngModel]=\"value\"\n (ngModelChange)=\"toggle($event)\"\n />\n <div\n class=\"w-11 h-6 bg-gray-200 peer-focus:outline-none peer-focus:ring-2 rounded-full peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:border-gray-300 after:border after:rounded-full after:h-5 after:w-5 after:transition-all\"\n [class]=\"\n color === 'secondary'\n ? 'peer-focus:ring-secondary-lighter peer-checked:bg-secondary'\n : 'peer-focus:ring-primary-lighter peer-checked:bg-primary'\n \"\n ></div>\n </span>\n <span class=\"ml-3 mt-[2px] text-sm font-medium\">{{ label }}</span>\n</label>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
26855
26963
|
}
|
|
26856
26964
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CheckToggleComponent, decorators: [{
|
|
26857
26965
|
type: Component,
|
|
@@ -26944,7 +27052,7 @@ class ChipsInputComponent {
|
|
|
26944
27052
|
this.subscription.unsubscribe();
|
|
26945
27053
|
}
|
|
26946
27054
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ChipsInputComponent, deps: [{ token: i1.HttpClient }, { token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
26947
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ChipsInputComponent, selector: "gn-ui-chips-input", inputs: { url: "url", placeholder: "placeholder", selectedItems: "selectedItems", required: "required", loadOnce: "loadOnce", autocompleteItems: "autocompleteItems" }, outputs: { itemsChange: "itemsChange" }, ngImport: i0, template: "<tag-input\n [ngModel]=\"items\"\n (ngModelChange)=\"onChange($event)\"\n onlyFromAutocomplete=\"true\"\n [placeholder]=\"placeholder\"\n [secondaryPlaceholder]=\"placeholder\"\n [ripple]=\"false\"\n [animationDuration]=\"{ enter: '0ms', leave: '0ms' }\"\n [onTextChangeDebounce]=\"100\"\n class=\"border-2 border-primary h-full rounded-lg p-2 bg-white text-sm focus:border-primary\"\n [ngClass]=\"{ invalid: invalid }\"\n>\n <tag-input-dropdown\n [autocompleteObservable]=\"requestAutocompleteItems\"\n [minimumTextLength]=\"0\"\n [keepOpen]=\"false\"\n [showDropdownIfEmpty]=\"true\"\n >\n <ng-template let-item=\"item\" let-index=\"index\">\n {{ item.display }}\n </ng-template>\n </tag-input-dropdown>\n</tag-input>\n", styles: ["tag-input::ng-deep .ng2-tag-input{border-bottom:none}tag-input::ng-deep .ng2-tag-input.ng2-tag-input--focused{border-bottom:none}tag-input::ng-deep tag{border-radius:5px;background:var(--color-primary-lightest);font-family:inherit;align-content:center;font-style:italic}tag-input::ng-deep tag::ng-deep:not(:focus):not(.tag--editing):not(:active):not(.readonly):hover,tag-input::ng-deep tag:not(:focus):not(.tag--editing):not(:active):not(.readonly):hover{background:var(--color-primary)!important}tag-input::ng-deep .tag__text{padding-right:7px}tag-input::ng-deep div,tag-input::ng-deep form{height:100%}tag-input.invalid{border-color:var(--color-secondary)}\n"], dependencies: [{ kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type:
|
|
27055
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ChipsInputComponent, selector: "gn-ui-chips-input", inputs: { url: "url", placeholder: "placeholder", selectedItems: "selectedItems", required: "required", loadOnce: "loadOnce", autocompleteItems: "autocompleteItems" }, outputs: { itemsChange: "itemsChange" }, ngImport: i0, template: "<tag-input\n [ngModel]=\"items\"\n (ngModelChange)=\"onChange($event)\"\n onlyFromAutocomplete=\"true\"\n [placeholder]=\"placeholder\"\n [secondaryPlaceholder]=\"placeholder\"\n [ripple]=\"false\"\n [animationDuration]=\"{ enter: '0ms', leave: '0ms' }\"\n [onTextChangeDebounce]=\"100\"\n class=\"border-2 border-primary h-full rounded-lg p-2 bg-white text-sm focus:border-primary\"\n [ngClass]=\"{ invalid: invalid }\"\n>\n <tag-input-dropdown\n [autocompleteObservable]=\"requestAutocompleteItems\"\n [minimumTextLength]=\"0\"\n [keepOpen]=\"false\"\n [showDropdownIfEmpty]=\"true\"\n >\n <ng-template let-item=\"item\" let-index=\"index\">\n {{ item.display }}\n </ng-template>\n </tag-input-dropdown>\n</tag-input>\n", styles: ["tag-input::ng-deep .ng2-tag-input{border-bottom:none}tag-input::ng-deep .ng2-tag-input.ng2-tag-input--focused{border-bottom:none}tag-input::ng-deep tag{border-radius:5px;background:var(--color-primary-lightest);font-family:inherit;align-content:center;font-style:italic}tag-input::ng-deep tag::ng-deep:not(:focus):not(.tag--editing):not(:active):not(.readonly):hover,tag-input::ng-deep tag:not(:focus):not(.tag--editing):not(:active):not(.readonly):hover{background:var(--color-primary)!important}tag-input::ng-deep .tag__text{padding-right:7px}tag-input::ng-deep div,tag-input::ng-deep form{height:100%}tag-input.invalid{border-color:var(--color-secondary)}\n"], dependencies: [{ kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5$1.TagInputComponent, selector: "tag-input", inputs: ["separatorKeys", "separatorKeyCodes", "placeholder", "secondaryPlaceholder", "maxItems", "validators", "asyncValidators", "onlyFromAutocomplete", "errorMessages", "theme", "onTextChangeDebounce", "inputId", "inputClass", "clearOnBlur", "hideForm", "addOnBlur", "addOnPaste", "pasteSplitPattern", "blinkIfDupe", "removable", "editable", "allowDupes", "modelAsStrings", "trimTags", "inputText", "ripple", "tabindex", "disable", "dragZone", "onRemoving", "onAdding", "animationDuration"], outputs: ["onAdd", "onRemove", "onSelect", "onFocus", "onBlur", "onTextChange", "onPaste", "onValidationError", "onTagEdited", "inputTextChange"] }, { kind: "component", type: i5$1.TagInputDropdown, selector: "tag-input-dropdown", inputs: ["offset", "focusFirstElement", "showDropdownIfEmpty", "autocompleteObservable", "minimumTextLength", "limitItemsTo", "displayBy", "identifyBy", "matchingFn", "appendToBody", "keepOpen", "dynamicUpdate", "zIndex", "autocompleteItems"] }] }); }
|
|
26948
27056
|
}
|
|
26949
27057
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ChipsInputComponent, decorators: [{
|
|
26950
27058
|
type: Component,
|
|
@@ -26970,7 +27078,7 @@ class DatePickerComponent {
|
|
|
26970
27078
|
this.dateChange = new EventEmitter();
|
|
26971
27079
|
}
|
|
26972
27080
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DatePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
26973
|
-
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: "<div\n class=\"flex items-center justify-between rounded-lg border border-gray-300 bg-white\"\n>\n <input\n class=\"pl-3\"\n [matDatepicker]=\"picker\"\n [value]=\"date\"\n (dateChange)=\"dateChange.emit($event.value)\"\n />\n <mat-datepicker-toggle matIconSuffix [for]=\"picker\"></mat-datepicker-toggle>\n</div>\n<mat-datepicker #picker></mat-datepicker>\n", styles: ["mat-datepicker-toggle{@apply text-primary;}\n"], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatNativeDateModule }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i2$
|
|
27081
|
+
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: "<div\n class=\"flex items-center justify-between rounded-lg border border-gray-300 bg-white\"\n>\n <input\n class=\"pl-3\"\n [matDatepicker]=\"picker\"\n [value]=\"date\"\n (dateChange)=\"dateChange.emit($event.value)\"\n />\n <mat-datepicker-toggle matIconSuffix [for]=\"picker\"></mat-datepicker-toggle>\n</div>\n<mat-datepicker #picker></mat-datepicker>\n", styles: ["mat-datepicker-toggle{@apply text-primary;}\n"], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { 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: i2$2.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
26974
27082
|
}
|
|
26975
27083
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DatePickerComponent, decorators: [{
|
|
26976
27084
|
type: Component,
|
|
@@ -26987,7 +27095,7 @@ class DateRangePickerComponent {
|
|
|
26987
27095
|
this.endDateChange = new EventEmitter();
|
|
26988
27096
|
}
|
|
26989
27097
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DateRangePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
26990
|
-
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: "<div\n class=\"flex items-center justify-between rounded-lg border border-gray-300 bg-white\"\n>\n <div class=\"pl-3 flex justify-center\">\n <mat-date-range-input [rangePicker]=\"picker\" class=\"w-full\">\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 </div>\n <mat-datepicker-toggle matSuffix [for]=\"picker\">\n <mat-icon>calendar_today</mat-icon>\n </mat-datepicker-toggle>\n</div>\n<mat-date-range-picker #picker></mat-date-range-picker>\n", styles: ["mat-datepicker-toggle{@apply text-primary;}\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$
|
|
27098
|
+
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: "<div\n class=\"flex items-center justify-between rounded-lg border border-gray-300 bg-white\"\n>\n <div class=\"pl-3 flex justify-center\">\n <mat-date-range-input [rangePicker]=\"picker\" class=\"w-full\">\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 </div>\n <mat-datepicker-toggle matSuffix [for]=\"picker\">\n <mat-icon>calendar_today</mat-icon>\n </mat-datepicker-toggle>\n</div>\n<mat-date-range-picker #picker></mat-date-range-picker>\n", styles: ["mat-datepicker-toggle{@apply text-primary;}\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.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { 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"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
26991
27099
|
}
|
|
26992
27100
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DateRangePickerComponent, decorators: [{
|
|
26993
27101
|
type: Component,
|
|
@@ -27178,7 +27286,7 @@ class DropdownMultiselectComponent {
|
|
|
27178
27286
|
this.setFocus();
|
|
27179
27287
|
}
|
|
27180
27288
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DropdownMultiselectComponent, deps: [{ token: i1$6.ScrollStrategyOptions }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27181
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DropdownMultiselectComponent, selector: "gn-ui-dropdown-multiselect", inputs: { title: "title", choices: "choices", selected: "selected", allowSearch: "allowSearch", maxRows: "maxRows", searchInputValue: "searchInputValue" }, outputs: { selectValues: "selectValues" }, viewQueries: [{ propertyName: "overlayOrigin", first: true, predicate: ["overlayOrigin"], descendants: true }, { propertyName: "overlay", first: true, predicate: CdkConnectedOverlay, descendants: true }, { propertyName: "overlayContainer", first: true, predicate: ["overlayContainer"], descendants: true, read: ElementRef }, { propertyName: "searchFieldInput", first: true, predicate: ["searchFieldInput"], descendants: true }, { propertyName: "checkboxes", predicate: ["checkBox"], descendants: true, read: ElementRef }], ngImport: i0, template: "<gn-ui-button\n type=\"outline\"\n extraClass=\"bg-background w-full !p-[8px] !pl-[16px]\"\n [title]=\"title\"\n [attr.aria-owns]=\"id\"\n (buttonClick)=\"openOverlay()\"\n (keydown)=\"handleTriggerKeydown($event)\"\n cdkOverlayOrigin\n #overlayOrigin=\"cdkOverlayOrigin\"\n>\n <div class=\"grow flex items-center mr-2 gap-2 overflow-hidden\">\n <div class=\"text-left font-medium truncate py-1\">\n {{ title }}\n </div>\n <div\n *ngIf=\"hasSelectedChoices\"\n class=\"shrink-0 rounded-full text-primary bg-primary-opacity-25 text-white font-bold text-[12px] w-5 h-5 flex items-center justify-center mr-1 selected-count\"\n >\n {{ selected.length }}\n </div>\n </div>\n <button class=\"h-6 w-6\" data-cy=\"clearSelection\">\n <mat-icon\n class=\"material-symbols-outlined shrink-0 opacity-40 mr-1.5 hover:opacity-80 transition-colors clear-btn\"\n *ngIf=\"hasSelectedChoices && !overlayOpen\"\n (click)=\"clearSelection($event)\"\n >\n close\n </mat-icon>\n </button>\n <mat-icon class=\"material-symbols-outlined shrink-0 opacity-40\">\n <ng-container *ngIf=\"overlayOpen\">expand_less</ng-container>\n <ng-container *ngIf=\"!overlayOpen\">expand_more</ng-container>\n </mat-icon>\n</gn-ui-button>\n\n<ng-template\n cdkConnectedOverlay\n cdkConnectedOverlayHasBackdrop\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n [cdkConnectedOverlayOrigin]=\"overlayOrigin\"\n [cdkConnectedOverlayOpen]=\"overlayOpen\"\n [cdkConnectedOverlayPositions]=\"overlayPositions\"\n [cdkConnectedOverlayScrollStrategy]=\"scrollStrategy\"\n [cdkConnectedOverlayFlexibleDimensions]=\"true\"\n (overlayOutsideClick)=\"closeOverlay()\"\n (detach)=\"closeOverlay()\"\n>\n <div\n class=\"bg-white border border-gray-300 rounded shadow-lg py-2 w-full overflow-x-hidden overflow-y-auto overlay-container\"\n [style.max-height]=\"overlayMaxHeight\"\n [style.width]=\"overlayWidth\"\n role=\"listbox\"\n tabindex=\"-1\"\n [attr.id]=\"id\"\n [attr.aria-multiselectable]=\"true\"\n [attr.aria-label]=\"title\"\n (keydown)=\"handleOverlayKeydown($event)\"\n #overlayContainer\n >\n <div\n class=\"border border-gray-300 rounded mb-2 mx-2 min-h-[44px] flex flex-row flex-wrap p-2 focus-within:rounded focus-within:border-2 focus-within:border-primary\"\n >\n <button\n type=\"button\"\n *ngFor=\"let selected of selectedChoices\"\n [title]=\"selected.label\"\n class=\"max-w-full bg-main text-white rounded pr-[7px] flex gap-1 items-center opacity-70 hover:opacity-100 focus:opacity-100 transition-opacity mb-1\"\n (click)=\"select(selected, false)\"\n >\n <div class=\"text-sm truncate leading-[26px] px-2\">\n {{ selected.label }}\n </div>\n <div\n class=\"flex items-center justify-center rounded-full bg-white text-main h-[13px] w-[13px] pt-px -mt-px shrink-0\"\n >\n <mat-icon\n class=\"material-symbols-outlined !h-[12px] !w-[12px] text-[12px]\"\n >\n close</mat-icon\n >\n </div>\n </button>\n\n <div *ngIf=\"allowSearch\" class=\"w-[50%] relative grow shrink\">\n <input\n #searchFieldInput\n class=\"w-full px-2 truncate text-[14px] h-full overlaySearchInput focus:outline-none\"\n [(ngModel)]=\"searchInputValue\"\n [placeholder]=\"'multiselect.filter.placeholder' | translate\"\n />\n <button\n *ngIf=\"!!searchInputValue\"\n class=\"absolute top-1/2 -translate-y-1/2 right-0 px-[7px] leading-tight clear-search-input mr-2\"\n (click)=\"clearSearchInputValue($event)\"\n >\n <mat-icon\n class=\"material-symbols-outlined !h-[10px] !w-[12px] text-[12px]\"\n >\n close\n </mat-icon>\n </button>\n </div>\n </div>\n\n <label\n *ngFor=\"let choice of filteredChoicesByText\"\n [title]=\"choice.label\"\n class=\"flex px-5 py-1 w-full text-gray-900 cursor-pointer hover:text-primary-darkest hover:bg-gray-50 focus-within:text-primary-darkest focus-within:bg-gray-50 transition-colors\"\n >\n <input\n class=\"w-[18px] h-[18px] align-text-top shrink-0\"\n type=\"checkbox\"\n #checkBox\n [checked]=\"isSelected(choice)\"\n (change)=\"select(choice, checkBox.checked)\"\n />\n <span class=\"ml-[8px] text-[14px] truncate\">\n {{ choice.label }}\n </span>\n </label>\n </div>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "directive", type: i1$3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type:
|
|
27289
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DropdownMultiselectComponent, selector: "gn-ui-dropdown-multiselect", inputs: { title: "title", choices: "choices", selected: "selected", allowSearch: "allowSearch", maxRows: "maxRows", searchInputValue: "searchInputValue" }, outputs: { selectValues: "selectValues" }, viewQueries: [{ propertyName: "overlayOrigin", first: true, predicate: ["overlayOrigin"], descendants: true }, { propertyName: "overlay", first: true, predicate: CdkConnectedOverlay, descendants: true }, { propertyName: "overlayContainer", first: true, predicate: ["overlayContainer"], descendants: true, read: ElementRef }, { propertyName: "searchFieldInput", first: true, predicate: ["searchFieldInput"], descendants: true }, { propertyName: "checkboxes", predicate: ["checkBox"], descendants: true, read: ElementRef }], ngImport: i0, template: "<gn-ui-button\n type=\"outline\"\n extraClass=\"bg-background w-full !p-[8px] !pl-[16px]\"\n [title]=\"title\"\n [attr.aria-owns]=\"id\"\n (buttonClick)=\"openOverlay()\"\n (keydown)=\"handleTriggerKeydown($event)\"\n cdkOverlayOrigin\n #overlayOrigin=\"cdkOverlayOrigin\"\n>\n <div class=\"grow flex items-center mr-2 gap-2 overflow-hidden\">\n <div class=\"text-left font-medium truncate py-1\">\n {{ title }}\n </div>\n <div\n *ngIf=\"hasSelectedChoices\"\n class=\"shrink-0 rounded-full text-primary bg-primary-opacity-25 text-white font-bold text-[12px] w-5 h-5 flex items-center justify-center mr-1 selected-count\"\n >\n {{ selected.length }}\n </div>\n </div>\n <button class=\"h-6 w-6\" data-cy=\"clearSelection\">\n <mat-icon\n class=\"material-symbols-outlined shrink-0 opacity-40 mr-1.5 hover:opacity-80 transition-colors clear-btn\"\n *ngIf=\"hasSelectedChoices && !overlayOpen\"\n (click)=\"clearSelection($event)\"\n >\n close\n </mat-icon>\n </button>\n <mat-icon class=\"material-symbols-outlined shrink-0 opacity-40\">\n <ng-container *ngIf=\"overlayOpen\">expand_less</ng-container>\n <ng-container *ngIf=\"!overlayOpen\">expand_more</ng-container>\n </mat-icon>\n</gn-ui-button>\n\n<ng-template\n cdkConnectedOverlay\n cdkConnectedOverlayHasBackdrop\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n [cdkConnectedOverlayOrigin]=\"overlayOrigin\"\n [cdkConnectedOverlayOpen]=\"overlayOpen\"\n [cdkConnectedOverlayPositions]=\"overlayPositions\"\n [cdkConnectedOverlayScrollStrategy]=\"scrollStrategy\"\n [cdkConnectedOverlayFlexibleDimensions]=\"true\"\n (overlayOutsideClick)=\"closeOverlay()\"\n (detach)=\"closeOverlay()\"\n>\n <div\n class=\"bg-white border border-gray-300 rounded shadow-lg py-2 w-full overflow-x-hidden overflow-y-auto overlay-container\"\n [style.max-height]=\"overlayMaxHeight\"\n [style.width]=\"overlayWidth\"\n role=\"listbox\"\n tabindex=\"-1\"\n [attr.id]=\"id\"\n [attr.aria-multiselectable]=\"true\"\n [attr.aria-label]=\"title\"\n (keydown)=\"handleOverlayKeydown($event)\"\n #overlayContainer\n >\n <div\n class=\"border border-gray-300 rounded mb-2 mx-2 min-h-[44px] flex flex-row flex-wrap p-2 focus-within:rounded focus-within:border-2 focus-within:border-primary\"\n >\n <button\n type=\"button\"\n *ngFor=\"let selected of selectedChoices\"\n [title]=\"selected.label\"\n class=\"max-w-full bg-main text-white rounded pr-[7px] flex gap-1 items-center opacity-70 hover:opacity-100 focus:opacity-100 transition-opacity mb-1\"\n (click)=\"select(selected, false)\"\n >\n <div class=\"text-sm truncate leading-[26px] px-2\">\n {{ selected.label }}\n </div>\n <div\n class=\"flex items-center justify-center rounded-full bg-white text-main h-[13px] w-[13px] pt-px -mt-px shrink-0\"\n >\n <mat-icon\n class=\"material-symbols-outlined !h-[12px] !w-[12px] text-[12px]\"\n >\n close</mat-icon\n >\n </div>\n </button>\n\n <div *ngIf=\"allowSearch\" class=\"w-[50%] relative grow shrink\">\n <input\n #searchFieldInput\n class=\"w-full px-2 truncate text-[14px] h-full overlaySearchInput focus:outline-none\"\n [(ngModel)]=\"searchInputValue\"\n [placeholder]=\"'multiselect.filter.placeholder' | translate\"\n />\n <button\n *ngIf=\"!!searchInputValue\"\n class=\"absolute top-1/2 -translate-y-1/2 right-0 px-[7px] leading-tight clear-search-input mr-2\"\n (click)=\"clearSearchInputValue($event)\"\n >\n <mat-icon\n class=\"material-symbols-outlined !h-[10px] !w-[12px] text-[12px]\"\n >\n close\n </mat-icon>\n </button>\n </div>\n </div>\n\n <label\n *ngFor=\"let choice of filteredChoicesByText\"\n [title]=\"choice.label\"\n class=\"flex px-5 py-1 w-full text-gray-900 cursor-pointer hover:text-primary-darkest hover:bg-gray-50 focus-within:text-primary-darkest focus-within:bg-gray-50 transition-colors\"\n >\n <input\n class=\"w-[18px] h-[18px] align-text-top shrink-0\"\n type=\"checkbox\"\n #checkBox\n [checked]=\"isSelected(choice)\"\n (change)=\"select(choice, checkBox.checked)\"\n />\n <span class=\"ml-[8px] text-[14px] truncate\">\n {{ choice.label }}\n </span>\n </label>\n </div>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "directive", type: i1$3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "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.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i1$6.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: i1$6.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
27182
27290
|
}
|
|
27183
27291
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DropdownMultiselectComponent, decorators: [{
|
|
27184
27292
|
type: Component,
|
|
@@ -27395,31 +27503,33 @@ class EditableLabelDirective {
|
|
|
27395
27503
|
this.renderer = renderer;
|
|
27396
27504
|
this.editableLabelChanged = new EventEmitter();
|
|
27397
27505
|
}
|
|
27506
|
+
ngOnChanges() {
|
|
27507
|
+
if (this.appendedInput) {
|
|
27508
|
+
this.renderer.setProperty(this.appendedInput, 'value', this.gnUiEditableLabel);
|
|
27509
|
+
}
|
|
27510
|
+
}
|
|
27398
27511
|
ngAfterViewInit() {
|
|
27399
|
-
if (this.gnUiEditableLabel !==
|
|
27400
|
-
|
|
27401
|
-
this.renderer.setStyle(appendedInput, 'background', 'inherit');
|
|
27402
|
-
this.renderer.setStyle(appendedInput, 'color', 'inherit');
|
|
27403
|
-
this.renderer.setStyle(appendedInput, 'font', 'inherit');
|
|
27404
|
-
this.renderer.setStyle(appendedInput, 'border', 'inherit');
|
|
27405
|
-
this.renderer.setStyle(appendedInput, 'width', '100%');
|
|
27406
|
-
this.renderer.setStyle(appendedInput, 'padding', 'inherit');
|
|
27407
|
-
this.renderer.setStyle(appendedInput, 'margin', '0');
|
|
27408
|
-
this.renderer.setStyle(appendedInput, 'height', 'inherit');
|
|
27409
|
-
this.renderer.setStyle(appendedInput, 'line-height', 'inherit');
|
|
27410
|
-
this.renderer.setStyle(appendedInput, 'text-decoration', 'inherit');
|
|
27411
|
-
|
|
27412
|
-
|
|
27413
|
-
this.renderer.setProperty(appendedInput, 'value', formattedContent);
|
|
27414
|
-
this.renderer.setProperty(this.el.nativeElement, 'innerHTML', '');
|
|
27415
|
-
this.renderer.listen(appendedInput, 'input', (event) => {
|
|
27512
|
+
if (this.gnUiEditableLabel !== undefined) {
|
|
27513
|
+
this.appendedInput = this.renderer.createElement('input');
|
|
27514
|
+
this.renderer.setStyle(this.appendedInput, 'background', 'inherit');
|
|
27515
|
+
this.renderer.setStyle(this.appendedInput, 'color', 'inherit');
|
|
27516
|
+
this.renderer.setStyle(this.appendedInput, 'font', 'inherit');
|
|
27517
|
+
this.renderer.setStyle(this.appendedInput, 'border', 'inherit');
|
|
27518
|
+
this.renderer.setStyle(this.appendedInput, 'width', '100%');
|
|
27519
|
+
this.renderer.setStyle(this.appendedInput, 'padding', 'inherit');
|
|
27520
|
+
this.renderer.setStyle(this.appendedInput, 'margin', '0');
|
|
27521
|
+
this.renderer.setStyle(this.appendedInput, 'height', 'inherit');
|
|
27522
|
+
this.renderer.setStyle(this.appendedInput, 'line-height', 'inherit');
|
|
27523
|
+
this.renderer.setStyle(this.appendedInput, 'text-decoration', 'inherit');
|
|
27524
|
+
this.renderer.setProperty(this.appendedInput, 'value', this.gnUiEditableLabel);
|
|
27525
|
+
this.renderer.listen(this.appendedInput, 'input', (event) => {
|
|
27416
27526
|
this.editableLabelChanged.emit(event.target.value);
|
|
27417
27527
|
});
|
|
27418
|
-
this.renderer.appendChild(this.el.nativeElement, appendedInput);
|
|
27528
|
+
this.renderer.appendChild(this.el.nativeElement, this.appendedInput);
|
|
27419
27529
|
}
|
|
27420
27530
|
}
|
|
27421
27531
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EditableLabelDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
27422
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: EditableLabelDirective, isStandalone: true, selector: "[gnUiEditableLabel]", inputs: { gnUiEditableLabel: "gnUiEditableLabel" }, outputs: { editableLabelChanged: "editableLabelChanged" }, ngImport: i0 }); }
|
|
27532
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: EditableLabelDirective, isStandalone: true, selector: "[gnUiEditableLabel]", inputs: { gnUiEditableLabel: "gnUiEditableLabel" }, outputs: { editableLabelChanged: "editableLabelChanged" }, usesOnChanges: true, ngImport: i0 }); }
|
|
27423
27533
|
}
|
|
27424
27534
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EditableLabelDirective, decorators: [{
|
|
27425
27535
|
type: Directive,
|
|
@@ -27427,10 +27537,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
27427
27537
|
selector: '[gnUiEditableLabel]',
|
|
27428
27538
|
standalone: true,
|
|
27429
27539
|
}]
|
|
27430
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: {
|
|
27431
|
-
type: Output
|
|
27432
|
-
}], gnUiEditableLabel: [{
|
|
27540
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { gnUiEditableLabel: [{
|
|
27433
27541
|
type: Input
|
|
27542
|
+
}], editableLabelChanged: [{
|
|
27543
|
+
type: Output
|
|
27434
27544
|
}] } });
|
|
27435
27545
|
|
|
27436
27546
|
class NavigationButtonComponent {
|
|
@@ -28055,6 +28165,32 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
28055
28165
|
type: Output
|
|
28056
28166
|
}] } });
|
|
28057
28167
|
|
|
28168
|
+
class SwitchToggleComponent {
|
|
28169
|
+
constructor() {
|
|
28170
|
+
this.ariaLabel = '';
|
|
28171
|
+
this.extraClasses = '';
|
|
28172
|
+
this.selectedValue = new EventEmitter();
|
|
28173
|
+
}
|
|
28174
|
+
onChange(selectedOption) {
|
|
28175
|
+
this.options.find((option) => option.value === selectedOption.value).checked = true;
|
|
28176
|
+
this.selectedValue.emit(selectedOption);
|
|
28177
|
+
}
|
|
28178
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SwitchToggleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
28179
|
+
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 [value]=\"option.value\"\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:var(--color-main);background-color:var(--color-gray-200);border-radius:4px;border-left:none}.mat-button-toggle-appearance-standard.mat-button-toggle-checked{background-color:var(--color-main);color:var(--color-primary-white)}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 }); }
|
|
28180
|
+
}
|
|
28181
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SwitchToggleComponent, decorators: [{
|
|
28182
|
+
type: Component,
|
|
28183
|
+
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 [value]=\"option.value\"\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:var(--color-main);background-color:var(--color-gray-200);border-radius:4px;border-left:none}.mat-button-toggle-appearance-standard.mat-button-toggle-checked{background-color:var(--color-main);color:var(--color-primary-white)}button.mat-button-toggle-button.mat-focus-indicator.mat-button-toggle-label-content,.mat-button-toggle-label-content{line-height:32px}\n"] }]
|
|
28184
|
+
}], propDecorators: { options: [{
|
|
28185
|
+
type: Input
|
|
28186
|
+
}], ariaLabel: [{
|
|
28187
|
+
type: Input
|
|
28188
|
+
}], extraClasses: [{
|
|
28189
|
+
type: Input
|
|
28190
|
+
}], selectedValue: [{
|
|
28191
|
+
type: Output
|
|
28192
|
+
}] } });
|
|
28193
|
+
|
|
28058
28194
|
class ConfirmationDialogComponent {
|
|
28059
28195
|
constructor(dialogRef, data) {
|
|
28060
28196
|
this.dialogRef = dialogRef;
|
|
@@ -28066,13 +28202,13 @@ class ConfirmationDialogComponent {
|
|
|
28066
28202
|
onCancel() {
|
|
28067
28203
|
this.dialogRef.close(false);
|
|
28068
28204
|
}
|
|
28069
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConfirmationDialogComponent, deps: [{ token: i1$
|
|
28070
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ConfirmationDialogComponent, isStandalone: true, selector: "gn-ui-confirmation-dialog", ngImport: i0, template: "<h1 mat-dialog-title>{{ data.title }}</h1>\n<div mat-dialog-content>{{ data.message }}</div>\n<div mat-dialog-actions>\n <gn-ui-button (buttonClick)=\"onCancel()\">{{ data.cancelText }}</gn-ui-button>\n <gn-ui-button\n (buttonClick)=\"onConfirm()\"\n cdkFocusInitial\n class=\"ml-2\"\n data-cy=\"confirm-button\"\n >{{ data.confirmText }}</gn-ui-button\n >\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i1$
|
|
28205
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConfirmationDialogComponent, deps: [{ token: i1$8.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
28206
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ConfirmationDialogComponent, isStandalone: true, selector: "gn-ui-confirmation-dialog", ngImport: i0, template: "<h1 mat-dialog-title>{{ data.title }}</h1>\n<div mat-dialog-content>{{ data.message }}</div>\n<div mat-dialog-actions>\n <gn-ui-button (buttonClick)=\"onCancel()\">{{ data.cancelText }}</gn-ui-button>\n <gn-ui-button\n (buttonClick)=\"onConfirm()\"\n cdkFocusInitial\n class=\"ml-2\"\n data-cy=\"confirm-button\"\n >{{ data.confirmText }}</gn-ui-button\n >\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i1$8.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1$8.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i1$8.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
28071
28207
|
}
|
|
28072
28208
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConfirmationDialogComponent, decorators: [{
|
|
28073
28209
|
type: Component,
|
|
28074
28210
|
args: [{ selector: 'gn-ui-confirmation-dialog', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [MatDialogModule, ButtonComponent], template: "<h1 mat-dialog-title>{{ data.title }}</h1>\n<div mat-dialog-content>{{ data.message }}</div>\n<div mat-dialog-actions>\n <gn-ui-button (buttonClick)=\"onCancel()\">{{ data.cancelText }}</gn-ui-button>\n <gn-ui-button\n (buttonClick)=\"onConfirm()\"\n cdkFocusInitial\n class=\"ml-2\"\n data-cy=\"confirm-button\"\n >{{ data.confirmText }}</gn-ui-button\n >\n</div>\n" }]
|
|
28075
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
28211
|
+
}], ctorParameters: function () { return [{ type: i1$8.MatDialogRef }, { type: undefined, decorators: [{
|
|
28076
28212
|
type: Inject,
|
|
28077
28213
|
args: [MAT_DIALOG_DATA]
|
|
28078
28214
|
}] }]; } });
|
|
@@ -28628,7 +28764,7 @@ class PaginationComponent {
|
|
|
28628
28764
|
this.setPage(this.currentPage - 1);
|
|
28629
28765
|
}
|
|
28630
28766
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PaginationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
28631
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PaginationComponent, selector: "gn-ui-pagination", inputs: { currentPage: "currentPage", nPages: "nPages", hideButton: "hideButton" }, outputs: { newCurrentPageEvent: "newCurrentPageEvent" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"relative\">\n <div class=\"sm:absolute sm:inset-0\" *ngIf=\"!hideButton\">\n <gn-ui-button\n (buttonClick)=\"nextPage()\"\n type=\"secondary\"\n [disabled]=\"currentPage === nPages\"\n extraClass=\"lg:m-auto !p-[22px]\"\n >\n <span class=\"uppercase font-medium tracking-widest\" translate\n >pagination.nextPage</span\n >\n </gn-ui-button>\n </div>\n <div\n class=\"relative pointer-events-none flex flex-row justify-start sm:justify-end\"\n >\n <div class=\"pointer-events-auto flex flex-row items-center py-[13px]\">\n <span class=\"mr-3 capitalize text-sm text-gray-900\" translate\n >pagination.page</span\n >\n <input\n type=\"number\"\n [ngModel]=\"currentPage\"\n [min]=\"1\"\n [max]=\"nPages\"\n (ngModelChange)=\"setPage($event)\"\n class=\"border border-gray-300 rounded w-[54px] h-[34px] pl-[12px] mr-3 text-center\"\n />\n <span class=\"mr-3 text-sm text-gray-900\"\n ><span translate>pagination.pageOf</span> {{ nPages }}</span\n >\n <gn-ui-button\n (buttonClick)=\"previousPage()\"\n id=\"navigate_previous\"\n class=\"mr-2\"\n [disabled]=\"currentPage === 1\"\n [type]=\"'light'\"\n extraClass=\"!px-[3px]\"\n data-cy=\"prev-page\"\n >\n <mat-icon class=\"material-symbols-outlined\">navigate_before</mat-icon>\n </gn-ui-button>\n <gn-ui-button\n (buttonClick)=\"nextPage()\"\n id=\"navigate_next\"\n [disabled]=\"currentPage === nPages\"\n [type]=\"'light'\"\n extraClass=\"!px-[3px]\"\n data-cy=\"next-page\"\n >\n <mat-icon class=\"material-symbols-outlined\">navigate_next</mat-icon>\n </gn-ui-button>\n </div>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "directive", type:
|
|
28767
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PaginationComponent, selector: "gn-ui-pagination", inputs: { currentPage: "currentPage", nPages: "nPages", hideButton: "hideButton" }, outputs: { newCurrentPageEvent: "newCurrentPageEvent" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"relative\">\n <div class=\"sm:absolute sm:inset-0\" *ngIf=\"!hideButton\">\n <gn-ui-button\n (buttonClick)=\"nextPage()\"\n type=\"secondary\"\n [disabled]=\"currentPage === nPages\"\n extraClass=\"lg:m-auto !p-[22px]\"\n >\n <span class=\"uppercase font-medium tracking-widest\" translate\n >pagination.nextPage</span\n >\n </gn-ui-button>\n </div>\n <div\n class=\"relative pointer-events-none flex flex-row justify-start sm:justify-end\"\n >\n <div class=\"pointer-events-auto flex flex-row items-center py-[13px]\">\n <span class=\"mr-3 capitalize text-sm text-gray-900\" translate\n >pagination.page</span\n >\n <input\n type=\"number\"\n [ngModel]=\"currentPage\"\n [min]=\"1\"\n [max]=\"nPages\"\n (ngModelChange)=\"setPage($event)\"\n class=\"border border-gray-300 rounded w-[54px] h-[34px] pl-[12px] mr-3 text-center\"\n />\n <span class=\"mr-3 text-sm text-gray-900\"\n ><span translate>pagination.pageOf</span> {{ nPages }}</span\n >\n <gn-ui-button\n (buttonClick)=\"previousPage()\"\n id=\"navigate_previous\"\n class=\"mr-2\"\n [disabled]=\"currentPage === 1\"\n [type]=\"'light'\"\n extraClass=\"!px-[3px]\"\n data-cy=\"prev-page\"\n >\n <mat-icon class=\"material-symbols-outlined\">navigate_before</mat-icon>\n </gn-ui-button>\n <gn-ui-button\n (buttonClick)=\"nextPage()\"\n id=\"navigate_next\"\n [disabled]=\"currentPage === nPages\"\n [type]=\"'light'\"\n extraClass=\"!px-[3px]\"\n data-cy=\"next-page\"\n >\n <mat-icon class=\"material-symbols-outlined\">navigate_next</mat-icon>\n </gn-ui-button>\n </div>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "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.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i5.MaxValidator, selector: "input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]", inputs: ["max"] }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
28632
28768
|
}
|
|
28633
28769
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PaginationComponent, decorators: [{
|
|
28634
28770
|
type: Component,
|
|
@@ -28784,7 +28920,7 @@ class RelatedRecordCardComponent {
|
|
|
28784
28920
|
return `${this.baseClasses} ${this.extraClass}`;
|
|
28785
28921
|
}
|
|
28786
28922
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RelatedRecordCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
28787
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RelatedRecordCardComponent, selector: "gn-ui-related-record-card", inputs: { record: "record", extraClass: "extraClass" }, ngImport: i0, template: "<a\n [class]=\"classList\"\n [routerLink]=\"['/dataset', record.uniqueIdentifier]\"\n target=\"_blank\"\n>\n <div class=\"h-52 bg-gray-100\">\n <gn-ui-thumbnail\n class=\"h-52 w-full object-cover\"\n [thumbnailUrl]=\"record.overviews?.[0]?.url.toString()\"\n ></gn-ui-thumbnail>\n </div>\n <div class=\"flex flex-col justify-between h-44 px-5 pt-4 pb-6\">\n <h4\n class=\"max-h-24 font-title text-21 text-black text-ellipsis overflow-hidden\"\n >\n {{ record.title }}\n </h4>\n <div>\n <button\n mat-raised-button\n [matTooltip]=\"'tooltip.url.open' | translate\"\n matTooltipPosition=\"above\"\n >\n <mat-icon class=\"material-symbols-outlined align-middle text-secondary\"\n >open_in_new</mat-icon\n >\n </button>\n </div>\n </div>\n</a>\n", styles: [""], dependencies: [{ kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "directive", type: i1$
|
|
28923
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RelatedRecordCardComponent, selector: "gn-ui-related-record-card", inputs: { record: "record", extraClass: "extraClass" }, ngImport: i0, template: "<a\n [class]=\"classList\"\n [routerLink]=\"['/dataset', record.uniqueIdentifier]\"\n target=\"_blank\"\n>\n <div class=\"h-52 bg-gray-100\">\n <gn-ui-thumbnail\n class=\"h-52 w-full object-cover\"\n [thumbnailUrl]=\"record.overviews?.[0]?.url.toString()\"\n ></gn-ui-thumbnail>\n </div>\n <div class=\"flex flex-col justify-between h-44 px-5 pt-4 pb-6\">\n <h4\n class=\"max-h-24 font-title text-21 text-black text-ellipsis overflow-hidden\"\n >\n {{ record.title }}\n </h4>\n <div>\n <button\n mat-raised-button\n [matTooltip]=\"'tooltip.url.open' | translate\"\n matTooltipPosition=\"above\"\n >\n <mat-icon class=\"material-symbols-outlined align-middle text-secondary\"\n >open_in_new</mat-icon\n >\n </button>\n </div>\n </div>\n</a>\n", styles: [""], dependencies: [{ kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "directive", type: i1$9.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: ThumbnailComponent, selector: "gn-ui-thumbnail", inputs: ["thumbnailUrl", "fit"], outputs: ["placeholderShown"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
28788
28924
|
}
|
|
28789
28925
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RelatedRecordCardComponent, decorators: [{
|
|
28790
28926
|
type: Component,
|
|
@@ -28797,9 +28933,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
28797
28933
|
|
|
28798
28934
|
class SortableListComponent {
|
|
28799
28935
|
constructor() {
|
|
28800
|
-
this.addOptions = [];
|
|
28801
28936
|
this.elementsChange = new EventEmitter();
|
|
28802
|
-
this.add = new EventEmitter();
|
|
28803
28937
|
}
|
|
28804
28938
|
drop(event) {
|
|
28805
28939
|
moveItemInArray(this.elements, event.previousIndex, event.currentIndex);
|
|
@@ -28813,7 +28947,7 @@ class SortableListComponent {
|
|
|
28813
28947
|
return index;
|
|
28814
28948
|
}
|
|
28815
28949
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SortableListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
28816
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SortableListComponent, isStandalone: true, selector: "gn-ui-sortable-list", inputs: { elements: "elements"
|
|
28950
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SortableListComponent, isStandalone: true, selector: "gn-ui-sortable-list", inputs: { elements: "elements" }, outputs: { elementsChange: "elementsChange" }, ngImport: i0, template: "<div\n cdkDropList\n class=\"sortable-list flex flex-col gap-3 p-2\"\n (cdkDropListDropped)=\"drop($event)\"\n>\n <ng-container\n *ngFor=\"let element of elements; index as index; trackBy: trackByFn\"\n >\n <div class=\"sortable-box bg-white flex items-center\" cdkDrag>\n <span\n cdkDragHandle\n class=\"material-symbols-outlined mx-[10px] cursor-grab gn-ui-icon-medium flex-none\"\n >\n drag_handle\n </span>\n <div class=\"flex-1\">\n <ng-container\n *ngComponentOutlet=\"element.component; inputs: element.inputs\"\n ></ng-container>\n </div>\n <span\n (click)=\"removeElement(index)\"\n class=\"material-symbols-outlined mx-[10px] cursor-pointer gn-ui-icon-medium flex-none\"\n >\n close\n </span>\n </div>\n </ng-container>\n</div>\n", styles: [".cdk-drag-preview{box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.sortable-list.cdk-drop-list-dragging .sortable-box:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}\n"], dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "directive", type: CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "ngmodule", type: MatIconModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
28817
28951
|
}
|
|
28818
28952
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SortableListComponent, decorators: [{
|
|
28819
28953
|
type: Component,
|
|
@@ -28824,16 +28958,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
28824
28958
|
CdkDrag,
|
|
28825
28959
|
CdkDragHandle,
|
|
28826
28960
|
MatIconModule,
|
|
28827
|
-
|
|
28828
|
-
], template: "<div class=\"flex gap-2 mb-2\">\n <gn-ui-button\n *ngFor=\"let addOption of addOptions\"\n (buttonClick)=\"add.emit(addOption.eventName)\"\n >\n <span class=\"material-symbols-outlined gn-ui-icon-small\"> add </span>\n {{ addOption.buttonLabel }}</gn-ui-button\n >\n</div>\n<div\n cdkDropList\n class=\"sortable-list flex flex-col gap-3 p-2\"\n (cdkDropListDropped)=\"drop($event)\"\n>\n <ng-container\n *ngFor=\"let element of elements; index as index; trackBy: trackByFn\"\n >\n <div class=\"sortable-box bg-white flex items-center\" cdkDrag>\n <span\n cdkDragHandle\n class=\"material-symbols-outlined mx-[10px] cursor-grab gn-ui-icon-medium flex-none\"\n >\n drag_handle\n </span>\n <div class=\"flex-1\">\n <ng-container\n *ngComponentOutlet=\"element.component; inputs: element.inputs\"\n ></ng-container>\n </div>\n <span\n (click)=\"removeElement(index)\"\n class=\"material-symbols-outlined mx-[10px] cursor-pointer gn-ui-icon-medium flex-none\"\n >\n close\n </span>\n </div>\n </ng-container>\n</div>\n", styles: [".cdk-drag-preview{box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.sortable-list.cdk-drop-list-dragging .sortable-box:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}\n"] }]
|
|
28961
|
+
], template: "<div\n cdkDropList\n class=\"sortable-list flex flex-col gap-3 p-2\"\n (cdkDropListDropped)=\"drop($event)\"\n>\n <ng-container\n *ngFor=\"let element of elements; index as index; trackBy: trackByFn\"\n >\n <div class=\"sortable-box bg-white flex items-center\" cdkDrag>\n <span\n cdkDragHandle\n class=\"material-symbols-outlined mx-[10px] cursor-grab gn-ui-icon-medium flex-none\"\n >\n drag_handle\n </span>\n <div class=\"flex-1\">\n <ng-container\n *ngComponentOutlet=\"element.component; inputs: element.inputs\"\n ></ng-container>\n </div>\n <span\n (click)=\"removeElement(index)\"\n class=\"material-symbols-outlined mx-[10px] cursor-pointer gn-ui-icon-medium flex-none\"\n >\n close\n </span>\n </div>\n </ng-container>\n</div>\n", styles: [".cdk-drag-preview{box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.sortable-list.cdk-drop-list-dragging .sortable-box:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}\n"] }]
|
|
28829
28962
|
}], propDecorators: { elements: [{
|
|
28830
28963
|
type: Input
|
|
28831
|
-
}], addOptions: [{
|
|
28832
|
-
type: Input
|
|
28833
28964
|
}], elementsChange: [{
|
|
28834
28965
|
type: Output
|
|
28835
|
-
}], add: [{
|
|
28836
|
-
type: Output
|
|
28837
28966
|
}] } });
|
|
28838
28967
|
|
|
28839
28968
|
class UserPreviewComponent {
|
|
@@ -29229,7 +29358,7 @@ class ActionMenuComponent {
|
|
|
29229
29358
|
}
|
|
29230
29359
|
});
|
|
29231
29360
|
}
|
|
29232
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ActionMenuComponent, deps: [{ token: i1$
|
|
29361
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ActionMenuComponent, deps: [{ token: i1$8.MatDialog }, { token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
29233
29362
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ActionMenuComponent, isStandalone: true, selector: "gn-ui-action-menu", inputs: { canDuplicate: "canDuplicate", canDelete: "canDelete" }, outputs: { duplicate: "duplicate", delete: "delete" }, viewQueries: [{ propertyName: "trigger", first: true, predicate: MatMenuTrigger, descendants: true }], ngImport: i0, template: "<gn-ui-button\n type=\"light\"\n [matMenuTriggerFor]=\"menu\"\n (buttonClick)=\"openMenu()\"\n data-test=\"record-menu-button\"\n>\n <mat-icon class=\"material-symbols-outlined\">more_vert</mat-icon>\n</gn-ui-button>\n<mat-menu #menu=\"matMenu\">\n <button\n mat-menu-item\n [disabled]=\"!canDuplicate\"\n (click)=\"duplicate.emit()\"\n data-test=\"record-menu-duplicate-button\"\n >\n <span translate>record.action.duplicate</span>\n </button>\n <button\n mat-menu-item\n [disabled]=\"!canDelete\"\n (click)=\"openDeleteConfirmationDialog()\"\n data-test=\"record-menu-delete-button\"\n >\n <span translate>record.action.delete</span>\n </button>\n</mat-menu>\n", styles: [""], dependencies: [{ 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: "ngmodule", type: MatMenuModule }, { kind: "component", type: i4.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i4.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i4.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }] }); }
|
|
29234
29363
|
}
|
|
29235
29364
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ActionMenuComponent, decorators: [{
|
|
@@ -29242,7 +29371,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
29242
29371
|
ConfirmationDialogComponent,
|
|
29243
29372
|
TranslateModule,
|
|
29244
29373
|
], template: "<gn-ui-button\n type=\"light\"\n [matMenuTriggerFor]=\"menu\"\n (buttonClick)=\"openMenu()\"\n data-test=\"record-menu-button\"\n>\n <mat-icon class=\"material-symbols-outlined\">more_vert</mat-icon>\n</gn-ui-button>\n<mat-menu #menu=\"matMenu\">\n <button\n mat-menu-item\n [disabled]=\"!canDuplicate\"\n (click)=\"duplicate.emit()\"\n data-test=\"record-menu-duplicate-button\"\n >\n <span translate>record.action.duplicate</span>\n </button>\n <button\n mat-menu-item\n [disabled]=\"!canDelete\"\n (click)=\"openDeleteConfirmationDialog()\"\n data-test=\"record-menu-delete-button\"\n >\n <span translate>record.action.delete</span>\n </button>\n</mat-menu>\n" }]
|
|
29245
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
29374
|
+
}], ctorParameters: function () { return [{ type: i1$8.MatDialog }, { type: i1$1.TranslateService }]; }, propDecorators: { canDuplicate: [{
|
|
29246
29375
|
type: Input
|
|
29247
29376
|
}], canDelete: [{
|
|
29248
29377
|
type: Input
|
|
@@ -30845,12 +30974,12 @@ class SearchEffects {
|
|
|
30845
30974
|
);
|
|
30846
30975
|
});
|
|
30847
30976
|
}
|
|
30848
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SearchEffects, deps: [{ token: i1$
|
|
30977
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SearchEffects, deps: [{ token: i1$a.Actions }, { token: i1$2.Store }, { token: RecordsRepositoryInterface }, { token: FavoritesService }, { token: PlatformServiceInterface }, { token: FILTER_GEOMETRY, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
30849
30978
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SearchEffects }); }
|
|
30850
30979
|
}
|
|
30851
30980
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SearchEffects, decorators: [{
|
|
30852
30981
|
type: Injectable
|
|
30853
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
30982
|
+
}], ctorParameters: function () { return [{ type: i1$a.Actions }, { type: i1$2.Store }, { type: RecordsRepositoryInterface }, { type: FavoritesService }, { type: PlatformServiceInterface }, { type: Promise, decorators: [{
|
|
30854
30983
|
type: Optional
|
|
30855
30984
|
}, {
|
|
30856
30985
|
type: Inject,
|
|
@@ -31264,7 +31393,7 @@ class FeatureSearchModule {
|
|
|
31264
31393
|
ResultsHitsContainerComponent,
|
|
31265
31394
|
SearchStateContainerDirective,
|
|
31266
31395
|
FavoriteStarComponent,
|
|
31267
|
-
FilterDropdownComponent], imports: [CommonModule, i1$1.TranslateModule, i1$2.StoreFeatureModule, i1$
|
|
31396
|
+
FilterDropdownComponent], imports: [CommonModule, i1$1.TranslateModule, i1$2.StoreFeatureModule, i1$a.EffectsFeatureModule, HttpClientModule,
|
|
31268
31397
|
HttpClientXsrfModule,
|
|
31269
31398
|
UiSearchModule,
|
|
31270
31399
|
UiInputsModule,
|
|
@@ -31511,12 +31640,12 @@ class MapEffects {
|
|
|
31511
31640
|
constructor(actions$) {
|
|
31512
31641
|
this.actions$ = actions$;
|
|
31513
31642
|
}
|
|
31514
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MapEffects, deps: [{ token: i1$
|
|
31643
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MapEffects, deps: [{ token: i1$a.Actions }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
31515
31644
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MapEffects }); }
|
|
31516
31645
|
}
|
|
31517
31646
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MapEffects, decorators: [{
|
|
31518
31647
|
type: Injectable
|
|
31519
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
31648
|
+
}], ctorParameters: function () { return [{ type: i1$a.Actions }]; } });
|
|
31520
31649
|
|
|
31521
31650
|
class MapContainerComponent {
|
|
31522
31651
|
constructor(mapFacade) {
|
|
@@ -31775,7 +31904,7 @@ class FeatureMapModule {
|
|
|
31775
31904
|
MatIconModule,
|
|
31776
31905
|
MatTabsModule,
|
|
31777
31906
|
TranslateModule,
|
|
31778
|
-
FeatureSearchModule, i1$2.StoreFeatureModule, i1$
|
|
31907
|
+
FeatureSearchModule, i1$2.StoreFeatureModule, i1$a.EffectsFeatureModule, UiElementsModule,
|
|
31779
31908
|
UiInputsModule,
|
|
31780
31909
|
AddLayerFromOgcApiComponent,
|
|
31781
31910
|
TextInputComponent], exports: [MapContextComponent,
|
|
@@ -32189,7 +32318,7 @@ class LayersPanelComponent {
|
|
|
32189
32318
|
this.mapFacade.addLayer(layer);
|
|
32190
32319
|
}
|
|
32191
32320
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LayersPanelComponent, deps: [{ token: MapFacade }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
32192
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: LayersPanelComponent, isStandalone: true, selector: "gn-ui-layers-panel", ngImport: i0, template: "<div\n class=\"bg-white rounded shadow shadow-lg relative h-full w-[400px] overflow-hidden\"\n>\n <div class=\"p-3 border-b border-gray-300 flex items-center\">\n <mat-icon class=\"material-symbols-outlined mr-2\">layers</mat-icon>\n <span translate>map.layers.list</span>\n </div>\n <div class=\"flex flex-col px-4 divide-y divide-y-gray-50\">\n <div\n *ngFor=\"let layer of layers$ | async; let index = index\"\n class=\"flex flex-row py-3\"\n >\n <mat-icon class=\"material-symbols-outlined -ml-2 mr-2 shrink-0\"\n >chevron_right</mat-icon\n >\n <span class=\"mr-2 grow\">{{ layer.title }}</span>\n <a\n href\n class=\"underline text-sm text-red-700 hover:text-red-900\"\n (click)=\"deleteLayer(index)\"\n >\n delete\n </a>\n </div>\n </div>\n <gn-ui-expandable-panel-button [titleTemplate]=\"addLayerTitle\">\n <mat-tab-group animationDuration=\"200ms\" class=\"h-full\">\n <mat-tab [label]=\"'map.add.layer.catalog' | translate\">\n <div class=\"p-3\">\n <gn-ui-add-layer-from-catalog></gn-ui-add-layer-from-catalog>\n </div>\n </mat-tab>\n <mat-tab [label]=\"'map.add.layer.wms' | translate\" bodyClass=\"h-full\">\n <div class=\"p-3\">\n <gn-ui-add-layer-from-wms></gn-ui-add-layer-from-wms>\n </div>\n </mat-tab>\n <mat-tab [label]=\"'map.add.layer.wfs' | translate\" bodyClass=\"h-full\">\n <div class=\"p-3\">\n <gn-ui-add-layer-from-wfs></gn-ui-add-layer-from-wfs>\n </div>\n </mat-tab>\n <mat-tab [label]=\"'map.add.layer.ogc.api' | translate\" bodyClass=\"h-full\">\n <div class=\"p-3\">\n <gn-ui-add-layer-from-ogc-api\n [ogcUrl]=\"ogcUrl\"\n (layerAdded)=\"addLayer($event)\"\n ></gn-ui-add-layer-from-ogc-api>\n </div>\n </mat-tab>\n <mat-tab [label]=\"'map.add.layer.file' | translate\" bodyClass=\"h-full\">\n <div class=\"p-3\">\n <gn-ui-add-layer-from-file></gn-ui-add-layer-from-file>\n </div>\n </mat-tab>\n </mat-tab-group>\n </gn-ui-expandable-panel-button>\n</div>\n\n<ng-template #addLayerTitle>\n <mat-icon class=\"material-symbols-outlined mr-4\">add_circle</mat-icon>\n <span translate>map.add.layer</span>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: UiLayoutModule }, { kind: "component", type: ExpandablePanelButtonComponent, selector: "gn-ui-expandable-panel-button", inputs: ["titleTemplate", "collapsed"] }, { kind: "ngmodule", type: MatTabsModule }, { kind: "component", type: i2$
|
|
32321
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: LayersPanelComponent, isStandalone: true, selector: "gn-ui-layers-panel", ngImport: i0, template: "<div\n class=\"bg-white rounded shadow shadow-lg relative h-full w-[400px] overflow-hidden\"\n>\n <div class=\"p-3 border-b border-gray-300 flex items-center\">\n <mat-icon class=\"material-symbols-outlined mr-2\">layers</mat-icon>\n <span translate>map.layers.list</span>\n </div>\n <div class=\"flex flex-col px-4 divide-y divide-y-gray-50\">\n <div\n *ngFor=\"let layer of layers$ | async; let index = index\"\n class=\"flex flex-row py-3\"\n >\n <mat-icon class=\"material-symbols-outlined -ml-2 mr-2 shrink-0\"\n >chevron_right</mat-icon\n >\n <span class=\"mr-2 grow\">{{ layer.title }}</span>\n <a\n href\n class=\"underline text-sm text-red-700 hover:text-red-900\"\n (click)=\"deleteLayer(index)\"\n >\n delete\n </a>\n </div>\n </div>\n <gn-ui-expandable-panel-button [titleTemplate]=\"addLayerTitle\">\n <mat-tab-group animationDuration=\"200ms\" class=\"h-full\">\n <mat-tab [label]=\"'map.add.layer.catalog' | translate\">\n <div class=\"p-3\">\n <gn-ui-add-layer-from-catalog></gn-ui-add-layer-from-catalog>\n </div>\n </mat-tab>\n <mat-tab [label]=\"'map.add.layer.wms' | translate\" bodyClass=\"h-full\">\n <div class=\"p-3\">\n <gn-ui-add-layer-from-wms></gn-ui-add-layer-from-wms>\n </div>\n </mat-tab>\n <mat-tab [label]=\"'map.add.layer.wfs' | translate\" bodyClass=\"h-full\">\n <div class=\"p-3\">\n <gn-ui-add-layer-from-wfs></gn-ui-add-layer-from-wfs>\n </div>\n </mat-tab>\n <mat-tab [label]=\"'map.add.layer.ogc.api' | translate\" bodyClass=\"h-full\">\n <div class=\"p-3\">\n <gn-ui-add-layer-from-ogc-api\n [ogcUrl]=\"ogcUrl\"\n (layerAdded)=\"addLayer($event)\"\n ></gn-ui-add-layer-from-ogc-api>\n </div>\n </mat-tab>\n <mat-tab [label]=\"'map.add.layer.file' | translate\" bodyClass=\"h-full\">\n <div class=\"p-3\">\n <gn-ui-add-layer-from-file></gn-ui-add-layer-from-file>\n </div>\n </mat-tab>\n </mat-tab-group>\n </gn-ui-expandable-panel-button>\n</div>\n\n<ng-template #addLayerTitle>\n <mat-icon class=\"material-symbols-outlined mr-4\">add_circle</mat-icon>\n <span translate>map.add.layer</span>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: UiLayoutModule }, { kind: "component", type: ExpandablePanelButtonComponent, selector: "gn-ui-expandable-panel-button", inputs: ["titleTemplate", "collapsed"] }, { kind: "ngmodule", type: MatTabsModule }, { kind: "component", type: i2$3.MatTab, selector: "mat-tab", inputs: ["disabled"], exportAs: ["matTab"] }, { kind: "component", type: i2$3.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "disableRipple", "fitInkBarToContent", "mat-stretch-tabs"], exportAs: ["matTabGroup"] }, { kind: "component", type: AddLayerFromOgcApiComponent, selector: "gn-ui-add-layer-from-ogc-api", inputs: ["ogcUrl"], outputs: ["layerAdded"] }, { kind: "component", type: AddLayerFromWfsComponent, selector: "gn-ui-add-layer-from-wfs" }, { kind: "component", type: AddLayerFromWmsComponent, selector: "gn-ui-add-layer-from-wms" }, { kind: "component", type: AddLayerFromCatalogComponent, selector: "gn-ui-add-layer-from-catalog" }, { kind: "component", type: AddLayerFromFileComponent, selector: "gn-ui-add-layer-from-file" }, { 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: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: i1$3.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
32193
32322
|
}
|
|
32194
32323
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LayersPanelComponent, decorators: [{
|
|
32195
32324
|
type: Component,
|
|
@@ -32574,7 +32703,7 @@ class TableComponent {
|
|
|
32574
32703
|
return rowIdPrefix + id;
|
|
32575
32704
|
}
|
|
32576
32705
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TableComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
32577
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TableComponent, isStandalone: true, selector: "gn-ui-table", inputs: { data: "data", activeId: "activeId" }, outputs: { selected: "selected" }, viewQueries: [{ propertyName: "sort", first: true, predicate: MatSort, descendants: true, static: true }], ngImport: i0, template: "<div class=\"border border-gray-300 rounded-lg overflow-hidden bg-white h-full\">\n <cdk-virtual-scroll-viewport\n tvsItemSize=\"48\"\n headerHeight=\"56\"\n style=\"height: calc(100% - 37px)\"\n >\n <table mat-table [dataSource]=\"dataSource\" class=\"mat-elevation-z8\" matSort>\n <ng-container *ngFor=\"let prop of properties\" [matColumnDef]=\"prop\">\n <th\n mat-header-cell\n *matHeaderCellDef\n mat-sort-header\n class=\"text-sm text-black bg-white\"\n >\n {{ prop }}\n </th>\n <td\n mat-cell\n *matCellDef=\"let element\"\n class=\"whitespace-nowrap pr-1 truncate\"\n >\n {{ element[prop] }}\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"properties; sticky: true\"></tr>\n <tr\n [id]=\"getRowEltId(row.id)\"\n mat-row\n *matRowDef=\"let row; columns: properties\"\n (click)=\"selected.emit(row)\"\n [class.active]=\"row.id === activeId\"\n ></tr>\n </table>\n </cdk-virtual-scroll-viewport>\n <div class=\"text-gray-900 border-t border-gray-300 px-4 py-2 text-sm\">\n <span class=\"count font-extrabold text-primary\">{{ count }}</span\n > <span translate>table.object.count</span>.\n </div>\n</div>\n", styles: ["table{width:100%;background:white}th.mat-mdc-header-cell,td.mat-mdc-cell,td.mat-mdc-footer-cell{padding-right:20px}tr.mat-mdc-row,tr.mat-mdc-footer-row{height:36px}tr:hover{background:whitesmoke}tr.mat-mdc-header-row{height:48px}[mat-header-cell]{color:#0000008a;font-size:12px;font-weight:500}tr{cursor:pointer}.active .mat-mdc-cell{color:var(--color-primary)}\n"], dependencies: [{ kind: "ngmodule", type: MatTableModule }, { kind: "component", type: i1$
|
|
32706
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TableComponent, isStandalone: true, selector: "gn-ui-table", inputs: { data: "data", activeId: "activeId" }, outputs: { selected: "selected" }, viewQueries: [{ propertyName: "sort", first: true, predicate: MatSort, descendants: true, static: true }], ngImport: i0, template: "<div class=\"border border-gray-300 rounded-lg overflow-hidden bg-white h-full\">\n <cdk-virtual-scroll-viewport\n tvsItemSize=\"48\"\n headerHeight=\"56\"\n style=\"height: calc(100% - 37px)\"\n >\n <table mat-table [dataSource]=\"dataSource\" class=\"mat-elevation-z8\" matSort>\n <ng-container *ngFor=\"let prop of properties\" [matColumnDef]=\"prop\">\n <th\n mat-header-cell\n *matHeaderCellDef\n mat-sort-header\n class=\"text-sm text-black bg-white\"\n >\n {{ prop }}\n </th>\n <td\n mat-cell\n *matCellDef=\"let element\"\n class=\"whitespace-nowrap pr-1 truncate\"\n >\n {{ element[prop] }}\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"properties; sticky: true\"></tr>\n <tr\n [id]=\"getRowEltId(row.id)\"\n mat-row\n *matRowDef=\"let row; columns: properties\"\n (click)=\"selected.emit(row)\"\n [class.active]=\"row.id === activeId\"\n ></tr>\n </table>\n </cdk-virtual-scroll-viewport>\n <div class=\"text-gray-900 border-t border-gray-300 px-4 py-2 text-sm\">\n <span class=\"count font-extrabold text-primary\">{{ count }}</span\n > <span translate>table.object.count</span>.\n </div>\n</div>\n", styles: ["table{width:100%;background:white}th.mat-mdc-header-cell,td.mat-mdc-cell,td.mat-mdc-footer-cell{padding-right:20px}tr.mat-mdc-row,tr.mat-mdc-footer-row{height:36px}tr:hover{background:whitesmoke}tr.mat-mdc-header-row{height:48px}[mat-header-cell]{color:#0000008a;font-size:12px;font-weight:500}tr{cursor:pointer}.active .mat-mdc-cell{color:var(--color-primary)}\n"], dependencies: [{ kind: "ngmodule", type: MatTableModule }, { kind: "component", type: i1$b.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i1$b.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i1$b.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i1$b.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i1$b.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i1$b.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i1$b.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i1$b.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i1$b.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i1$b.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "ngmodule", type: MatSortModule }, { kind: "directive", type: i2$4.MatSort, selector: "[matSort]", inputs: ["matSortDisabled", "matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i2$4.MatSortHeader, selector: "[mat-sort-header]", inputs: ["disabled", "mat-sort-header", "arrowPosition", "start", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "ngmodule", type: TableVirtualScrollModule }, { kind: "directive", type: i3$3.TableItemSizeDirective, selector: "cdk-virtual-scroll-viewport[tvsItemSize]", inputs: ["tvsItemSize", "headerEnabled", "headerHeight", "footerEnabled", "footerHeight", "bufferMultiplier"] }, { kind: "ngmodule", type: ScrollingModule }, { kind: "component", type: i4$1.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
32578
32707
|
}
|
|
32579
32708
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TableComponent, decorators: [{
|
|
32580
32709
|
type: Component,
|
|
@@ -34040,12 +34169,12 @@ class MdViewEffects {
|
|
|
34040
34169
|
}));
|
|
34041
34170
|
})))));
|
|
34042
34171
|
}
|
|
34043
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MdViewEffects, deps: [{ token: i1$
|
|
34172
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MdViewEffects, deps: [{ token: i1$a.Actions }, { token: RecordsRepositoryInterface }, { token: PlatformServiceInterface }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
34044
34173
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MdViewEffects }); }
|
|
34045
34174
|
}
|
|
34046
34175
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MdViewEffects, decorators: [{
|
|
34047
34176
|
type: Injectable
|
|
34048
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
34177
|
+
}], ctorParameters: function () { return [{ type: i1$a.Actions }, { type: RecordsRepositoryInterface }, { type: PlatformServiceInterface }]; } });
|
|
34049
34178
|
|
|
34050
34179
|
marker('externalviewer.dataset.unnamed');
|
|
34051
34180
|
class ExternalViewerButtonComponent {
|
|
@@ -34873,7 +35002,7 @@ class DataViewShareComponent {
|
|
|
34873
35002
|
this.wcEmbedderBaseUrl = wcEmbedderBaseUrl;
|
|
34874
35003
|
}
|
|
34875
35004
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataViewShareComponent, deps: [{ token: WEB_COMPONENT_EMBEDDER_URL, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
34876
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DataViewShareComponent, selector: "gn-ui-data-view-share", inputs: { viewType: "viewType" }, ngImport: i0, template: "<div class=\"container-lg px-5 my-1 lg:mx-auto\">\n <mat-tab-group\n [selectedIndex]=\"0\"\n animationDuration=\"0ms\"\n mat-stretch-tabs=\"false\"\n mat-align-tabs=\"start\"\n [disableRipple]=\"!wcEmbedderBaseUrl\"\n >\n <mat-tab *ngIf=\"wcEmbedderBaseUrl\">\n <ng-template mat-tab-label>\n <span class=\"tab-header-label-gray\" translate>share.tab.permalink</span>\n </ng-template>\n <gn-ui-data-view-permalink\n [viewType]=\"viewType\"\n ></gn-ui-data-view-permalink>\n </mat-tab>\n <mat-tab>\n <ng-template mat-tab-label>\n <span\n [class]=\"\n wcEmbedderBaseUrl\n ? 'tab-header-label-gray'\n : 'single-tab-header-label-gray'\n \"\n translate\n >share.tab.webComponent</span\n >\n </ng-template>\n <gn-ui-data-view-web-component\n [viewType]=\"viewType\"\n ></gn-ui-data-view-web-component>\n </mat-tab>\n </mat-tab-group>\n</div>\n", styles: ["::ng-deep .mat-mdc-tab.mdc-tab.mdc-tab--active .tab-header-label-gray{opacity:100%;font-weight:700}.tab-header-label-gray{@apply text-sm text-gray-700 opacity-75 hover:text-gray-900;}.single-tab-header-label-gray{@apply text-sm text-gray-900;}\n"], dependencies: [{ kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$
|
|
35005
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DataViewShareComponent, selector: "gn-ui-data-view-share", inputs: { viewType: "viewType" }, ngImport: i0, template: "<div class=\"container-lg px-5 my-1 lg:mx-auto\">\n <mat-tab-group\n [selectedIndex]=\"0\"\n animationDuration=\"0ms\"\n mat-stretch-tabs=\"false\"\n mat-align-tabs=\"start\"\n [disableRipple]=\"!wcEmbedderBaseUrl\"\n >\n <mat-tab *ngIf=\"wcEmbedderBaseUrl\">\n <ng-template mat-tab-label>\n <span class=\"tab-header-label-gray\" translate>share.tab.permalink</span>\n </ng-template>\n <gn-ui-data-view-permalink\n [viewType]=\"viewType\"\n ></gn-ui-data-view-permalink>\n </mat-tab>\n <mat-tab>\n <ng-template mat-tab-label>\n <span\n [class]=\"\n wcEmbedderBaseUrl\n ? 'tab-header-label-gray'\n : 'single-tab-header-label-gray'\n \"\n translate\n >share.tab.webComponent</span\n >\n </ng-template>\n <gn-ui-data-view-web-component\n [viewType]=\"viewType\"\n ></gn-ui-data-view-web-component>\n </mat-tab>\n </mat-tab-group>\n</div>\n", styles: ["::ng-deep .mat-mdc-tab.mdc-tab.mdc-tab--active .tab-header-label-gray{opacity:100%;font-weight:700}.tab-header-label-gray{@apply text-sm text-gray-700 opacity-75 hover:text-gray-900;}.single-tab-header-label-gray{@apply text-sm text-gray-900;}\n"], dependencies: [{ kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$3.MatTabLabel, selector: "[mat-tab-label], [matTabLabel]" }, { kind: "component", type: i2$3.MatTab, selector: "mat-tab", inputs: ["disabled"], exportAs: ["matTab"] }, { kind: "component", type: i2$3.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "disableRipple", "fitInkBarToContent", "mat-stretch-tabs"], exportAs: ["matTabGroup"] }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: DataViewPermalinkComponent, selector: "gn-ui-data-view-permalink", inputs: ["viewType"] }, { kind: "component", type: DataViewWebComponentComponent, selector: "gn-ui-data-view-web-component", inputs: ["viewType"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
34877
35006
|
}
|
|
34878
35007
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataViewShareComponent, decorators: [{
|
|
34879
35008
|
type: Component,
|
|
@@ -34894,7 +35023,7 @@ class FeatureRecordModule {
|
|
|
34894
35023
|
ExternalViewerButtonComponent,
|
|
34895
35024
|
DataViewPermalinkComponent,
|
|
34896
35025
|
DataViewWebComponentComponent,
|
|
34897
|
-
DataViewShareComponent], imports: [CommonModule, i1$2.StoreFeatureModule, i1$
|
|
35026
|
+
DataViewShareComponent], imports: [CommonModule, i1$2.StoreFeatureModule, i1$a.EffectsFeatureModule, UiLayoutModule,
|
|
34898
35027
|
FeatureMapModule,
|
|
34899
35028
|
FeatureCatalogModule,
|
|
34900
35029
|
UiMapModule,
|
|
@@ -34975,6 +35104,7 @@ const saveRecord = createAction('[Editor] Save record');
|
|
|
34975
35104
|
const saveRecordSuccess = createAction('[Editor] Save record success');
|
|
34976
35105
|
const saveRecordFailure = createAction('[Editor] Save record failure', props());
|
|
34977
35106
|
const draftSaveSuccess = createAction('[Editor] Draft save success');
|
|
35107
|
+
const undoRecordDraft = createAction('[Editor] Undo record draft');
|
|
34978
35108
|
const setCurrentPage = createAction('[Editor] Set current page', props());
|
|
34979
35109
|
|
|
34980
35110
|
/**
|
|
@@ -35056,6 +35186,12 @@ const RECORD_GRAPHICAL_OVERVIEW_FIELD = {
|
|
|
35056
35186
|
labelKey: marker('editor.record.form.field.overviews'),
|
|
35057
35187
|
},
|
|
35058
35188
|
};
|
|
35189
|
+
const RECORD_SPATIAL_EXTENTS_FIELD = {
|
|
35190
|
+
model: 'spatialExtents',
|
|
35191
|
+
formFieldConfig: {
|
|
35192
|
+
labelKey: marker('editor.record.form.field.spatialExtents'),
|
|
35193
|
+
},
|
|
35194
|
+
};
|
|
35059
35195
|
/************************************************************
|
|
35060
35196
|
*************** SECTIONS *****************
|
|
35061
35197
|
************************************************************
|
|
@@ -35083,7 +35219,7 @@ const ABOUT_SECTION = {
|
|
|
35083
35219
|
const GEOGRAPHICAL_COVERAGE_SECTION = {
|
|
35084
35220
|
labelKey: marker('editor.record.form.section.geographicalCoverage.label'),
|
|
35085
35221
|
hidden: false,
|
|
35086
|
-
fields: [],
|
|
35222
|
+
fields: [RECORD_SPATIAL_EXTENTS_FIELD],
|
|
35087
35223
|
};
|
|
35088
35224
|
const ASSOCIATED_RESOURCES_SECTION = {
|
|
35089
35225
|
labelKey: marker('editor.record.form.section.associatedResources.label'),
|
|
@@ -35248,6 +35384,9 @@ class EditorFacade {
|
|
|
35248
35384
|
saveRecord() {
|
|
35249
35385
|
this.store.dispatch(saveRecord());
|
|
35250
35386
|
}
|
|
35387
|
+
undoRecordDraft() {
|
|
35388
|
+
this.store.dispatch(undoRecordDraft());
|
|
35389
|
+
}
|
|
35251
35390
|
updateRecordField(field, value) {
|
|
35252
35391
|
this.store.dispatch(updateRecordField({ field, value }));
|
|
35253
35392
|
}
|
|
@@ -35308,6 +35447,10 @@ class EditorService {
|
|
|
35308
35447
|
.saveRecordAsDraft(record)
|
|
35309
35448
|
.pipe(map$1(() => undefined));
|
|
35310
35449
|
}
|
|
35450
|
+
undoRecordDraft(record) {
|
|
35451
|
+
this.recordsRepository.clearRecordDraft(record.uniqueIdentifier);
|
|
35452
|
+
return this.recordsRepository.openRecordForEdition(record.uniqueIdentifier);
|
|
35453
|
+
}
|
|
35311
35454
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EditorService, deps: [{ token: RecordsRepositoryInterface }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
35312
35455
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EditorService, providedIn: 'root' }); }
|
|
35313
35456
|
}
|
|
@@ -35335,6 +35478,11 @@ class EditorEffects {
|
|
|
35335
35478
|
})))))));
|
|
35336
35479
|
this.markAsChanged$ = createEffect(() => this.actions$.pipe(ofType(updateRecordField), map$1(() => markRecordAsChanged())));
|
|
35337
35480
|
this.saveRecordDraft$ = createEffect(() => this.actions$.pipe(ofType(updateRecordField), debounceTime$1(1000), withLatestFrom$1(this.store.select(selectRecord)), switchMap$1(([, record]) => this.editorService.saveRecordAsDraft(record)), map$1(() => draftSaveSuccess())));
|
|
35481
|
+
this.undoRecordDraft$ = createEffect(() => this.actions$.pipe(ofType(undoRecordDraft), withLatestFrom$1(this.store.select(selectRecord)), switchMap$1(([, record]) => this.editorService.undoRecordDraft(record)), map$1(([record, recordSource, alreadySavedOnce]) => openRecord({
|
|
35482
|
+
record,
|
|
35483
|
+
alreadySavedOnce,
|
|
35484
|
+
recordSource,
|
|
35485
|
+
}))));
|
|
35338
35486
|
this.checkHasChangesOnOpen$ = createEffect(() => this.actions$.pipe(ofType(openRecord), map$1(({ record }) => this.recordsRepository.recordHasDraft(record.uniqueIdentifier)), filter$1((hasDraft) => hasDraft), map$1(() => markRecordAsChanged())));
|
|
35339
35487
|
}
|
|
35340
35488
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EditorEffects, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
@@ -35565,7 +35713,7 @@ class WizardFieldComponent {
|
|
|
35565
35713
|
deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],
|
|
35566
35714
|
},
|
|
35567
35715
|
{ provide: MAT_DATE_FORMATS, useValue: MY_FORMATS },
|
|
35568
|
-
], viewQueries: [{ propertyName: "searchText", first: true, predicate: ["searchText"], descendants: true }, { propertyName: "chips", first: true, predicate: ["chips"], descendants: true }, { propertyName: "textArea", first: true, predicate: ["textArea"], descendants: true }, { propertyName: "dropdown", first: true, predicate: ["dropdown"], descendants: true }], ngImport: i0, template: "<div class=\"flex flex-1\">\n <span [class]=\"wizardFieldConfig.icon + ' pr-10'\"></span>\n <div class=\"flex flex-col flex-1\">\n <div translate class=\"text-xl font-bold pb-1\">\n {{ wizardFieldConfig.label }}\n </div>\n <div\n class=\"w-1/2 h-12\"\n *ngIf=\"wizardFieldType.TEXT === wizardFieldConfig.type\"\n >\n <gn-ui-text-input\n #searchText\n [id]=\"wizardFieldConfig.id\"\n [value]=\"wizardFieldData\"\n [required]=\"wizardFieldConfig.required || false\"\n placeholder=\"\"\n ></gn-ui-text-input>\n </div>\n <div\n class=\"flex-1 w-11/12\"\n *ngIf=\"wizardFieldType.CHIPS === wizardFieldConfig.type\"\n >\n <gn-ui-chips-input\n #chips\n [selectedItems]=\"wizardFieldData\"\n placeholder=\"\"\n [id]=\"wizardFieldConfig.id\"\n [url]=\"wizardFieldConfig.options.url\"\n [loadOnce]=\"wizardFieldConfig.options.loadOnce\"\n ></gn-ui-chips-input>\n </div>\n <div\n class=\"h-32 w-11/12\"\n *ngIf=\"wizardFieldType.TEXT_AREA === wizardFieldConfig.type\"\n >\n <gn-ui-text-area\n #textArea\n [id]=\"wizardFieldConfig.id\"\n [value]=\"wizardFieldData\"\n [required]=\"wizardFieldConfig.required || false\"\n placeholder=\"\"\n ></gn-ui-text-area>\n </div>\n <div\n class=\"w-1/2 h-12\"\n *ngIf=\"wizardFieldType.DATA_PICKER === wizardFieldConfig.type\"\n >\n <input\n [id]=\"wizardFieldConfig.id\"\n type=\"text\"\n (click)=\"datepicker.open()\"\n class=\"rounded p-2 text-gray-700 w-full leading-tight focus:outline-none focus:border-primary\"\n [value]=\"wizardFieldData\"\n [matDatepicker]=\"datepicker\"\n (dateChange)=\"onDateChange($event)\"\n />\n <mat-datepicker #datepicker></mat-datepicker>\n </div>\n <div\n class=\"w-1/2 h-12\"\n *ngIf=\"wizardFieldType.DROPDOWN === wizardFieldConfig.type\"\n >\n <gn-ui-dropdown-selector\n #dropdown\n [id]=\"wizardFieldConfig.id\"\n [title]=\"''\"\n [extraBtnClass]=\"'secondary min-w-full'\"\n [showTitle]=\"false\"\n [choices]=\"dropdownChoices\"\n [selected]=\"wizardFieldData\"\n ariaName=\"search-sort-by\"\n ></gn-ui-dropdown-selector>\n </div>\n </div>\n</div>\n", styles: [":host{display:flex;flex:1}gn-ui-text-input::ng-deep input,input[type=text]{height:100%;background:white;color:#000;font-style:italic;border-width:2px;border-color:var(--color-primary)}gn-ui-text-area::ng-deep textarea{border-width:2px;border-color:var(--color-primary)}gn-ui-dropdown-selector::ng-deep div{height:100%}gn-ui-dropdown-selector::ng-deep select{height:100%;border-width:2px;border-color:var(--color-primary);background-color:#fff}\n"], dependencies: [{ kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: DropdownSelectorComponent, selector: "gn-ui-dropdown-selector", inputs: ["title", "showTitle", "ariaName", "choices", "selected", "maxRows", "extraBtnClass", "minWidth", "disabled"], outputs: ["selectValue"] }, { kind: "component", type: TextAreaComponent, selector: "gn-ui-text-area", inputs: ["value", "disabled", "extraClass", "placeholder", "required"], outputs: ["valueChange"] }, { kind: "component", type: ChipsInputComponent, selector: "gn-ui-chips-input", inputs: ["url", "placeholder", "selectedItems", "required", "loadOnce", "autocompleteItems"], outputs: ["itemsChange"] }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i2$
|
|
35716
|
+
], viewQueries: [{ propertyName: "searchText", first: true, predicate: ["searchText"], descendants: true }, { propertyName: "chips", first: true, predicate: ["chips"], descendants: true }, { propertyName: "textArea", first: true, predicate: ["textArea"], descendants: true }, { propertyName: "dropdown", first: true, predicate: ["dropdown"], descendants: true }], ngImport: i0, template: "<div class=\"flex flex-1\">\n <span [class]=\"wizardFieldConfig.icon + ' pr-10'\"></span>\n <div class=\"flex flex-col flex-1\">\n <div translate class=\"text-xl font-bold pb-1\">\n {{ wizardFieldConfig.label }}\n </div>\n <div\n class=\"w-1/2 h-12\"\n *ngIf=\"wizardFieldType.TEXT === wizardFieldConfig.type\"\n >\n <gn-ui-text-input\n #searchText\n [id]=\"wizardFieldConfig.id\"\n [value]=\"wizardFieldData\"\n [required]=\"wizardFieldConfig.required || false\"\n placeholder=\"\"\n ></gn-ui-text-input>\n </div>\n <div\n class=\"flex-1 w-11/12\"\n *ngIf=\"wizardFieldType.CHIPS === wizardFieldConfig.type\"\n >\n <gn-ui-chips-input\n #chips\n [selectedItems]=\"wizardFieldData\"\n placeholder=\"\"\n [id]=\"wizardFieldConfig.id\"\n [url]=\"wizardFieldConfig.options.url\"\n [loadOnce]=\"wizardFieldConfig.options.loadOnce\"\n ></gn-ui-chips-input>\n </div>\n <div\n class=\"h-32 w-11/12\"\n *ngIf=\"wizardFieldType.TEXT_AREA === wizardFieldConfig.type\"\n >\n <gn-ui-text-area\n #textArea\n [id]=\"wizardFieldConfig.id\"\n [value]=\"wizardFieldData\"\n [required]=\"wizardFieldConfig.required || false\"\n placeholder=\"\"\n ></gn-ui-text-area>\n </div>\n <div\n class=\"w-1/2 h-12\"\n *ngIf=\"wizardFieldType.DATA_PICKER === wizardFieldConfig.type\"\n >\n <input\n [id]=\"wizardFieldConfig.id\"\n type=\"text\"\n (click)=\"datepicker.open()\"\n class=\"rounded p-2 text-gray-700 w-full leading-tight focus:outline-none focus:border-primary\"\n [value]=\"wizardFieldData\"\n [matDatepicker]=\"datepicker\"\n (dateChange)=\"onDateChange($event)\"\n />\n <mat-datepicker #datepicker></mat-datepicker>\n </div>\n <div\n class=\"w-1/2 h-12\"\n *ngIf=\"wizardFieldType.DROPDOWN === wizardFieldConfig.type\"\n >\n <gn-ui-dropdown-selector\n #dropdown\n [id]=\"wizardFieldConfig.id\"\n [title]=\"''\"\n [extraBtnClass]=\"'secondary min-w-full'\"\n [showTitle]=\"false\"\n [choices]=\"dropdownChoices\"\n [selected]=\"wizardFieldData\"\n ariaName=\"search-sort-by\"\n ></gn-ui-dropdown-selector>\n </div>\n </div>\n</div>\n", styles: [":host{display:flex;flex:1}gn-ui-text-input::ng-deep input,input[type=text]{height:100%;background:white;color:#000;font-style:italic;border-width:2px;border-color:var(--color-primary)}gn-ui-text-area::ng-deep textarea{border-width:2px;border-color:var(--color-primary)}gn-ui-dropdown-selector::ng-deep div{height:100%}gn-ui-dropdown-selector::ng-deep select{height:100%;border-width:2px;border-color:var(--color-primary);background-color:#fff}\n"], dependencies: [{ kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: DropdownSelectorComponent, selector: "gn-ui-dropdown-selector", inputs: ["title", "showTitle", "ariaName", "choices", "selected", "maxRows", "extraBtnClass", "minWidth", "disabled"], outputs: ["selectValue"] }, { kind: "component", type: TextAreaComponent, selector: "gn-ui-text-area", inputs: ["value", "disabled", "extraClass", "placeholder", "required"], outputs: ["valueChange"] }, { kind: "component", type: ChipsInputComponent, selector: "gn-ui-chips-input", inputs: ["url", "placeholder", "selectedItems", "required", "loadOnce", "autocompleteItems"], outputs: ["itemsChange"] }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { 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: TextInputComponent, selector: "gn-ui-text-input", inputs: ["value", "extraClass", "placeholder", "required", "disabled"], outputs: ["valueChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
35569
35717
|
}
|
|
35570
35718
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: WizardFieldComponent, decorators: [{
|
|
35571
35719
|
type: Component,
|
|
@@ -35715,7 +35863,7 @@ class FeatureEditorModule {
|
|
|
35715
35863
|
MatNativeDateModule,
|
|
35716
35864
|
MatFormFieldModule,
|
|
35717
35865
|
HttpClientModule,
|
|
35718
|
-
HttpClientXsrfModule, i1$2.StoreFeatureModule, i1$
|
|
35866
|
+
HttpClientXsrfModule, i1$2.StoreFeatureModule, i1$a.EffectsFeatureModule, TextInputComponent], exports: [WizardComponent, WizardSummarizeComponent] }); }
|
|
35719
35867
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FeatureEditorModule, providers: [EditorFacade, Gn4PlatformService], imports: [CommonModule,
|
|
35720
35868
|
UiInputsModule,
|
|
35721
35869
|
UiWidgetsModule,
|
|
@@ -35756,16 +35904,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
35756
35904
|
}]
|
|
35757
35905
|
}] });
|
|
35758
35906
|
|
|
35759
|
-
class
|
|
35907
|
+
class GenericKeywordsComponent {
|
|
35760
35908
|
constructor(platformService) {
|
|
35761
35909
|
this.platformService = platformService;
|
|
35910
|
+
this.changedKeywords = new EventEmitter();
|
|
35911
|
+
this.addedKeyword = new EventEmitter();
|
|
35912
|
+
this.deletedKeyword = new EventEmitter();
|
|
35762
35913
|
this.displayWithFn = (item) => {
|
|
35763
35914
|
return `${item.title} (${item.value.thesaurus?.name})`;
|
|
35764
35915
|
};
|
|
35765
35916
|
this.autoCompleteAction = (query) => {
|
|
35766
|
-
return this.platformService
|
|
35767
|
-
.searchKeywords(query, ['temporal', 'theme', 'other'])
|
|
35768
|
-
.pipe(map$2((keywords) => keywords.map((keyword) => {
|
|
35917
|
+
return this.platformService.searchKeywords(query, this.keywordTypes).pipe(map$2((keywords) => keywords.map((keyword) => {
|
|
35769
35918
|
return { title: keyword.label, value: keyword };
|
|
35770
35919
|
})));
|
|
35771
35920
|
};
|
|
@@ -35774,22 +35923,62 @@ class FormFieldKeywordsComponent {
|
|
|
35774
35923
|
this.addKeyword(item.value);
|
|
35775
35924
|
}
|
|
35776
35925
|
addKeyword(keyword) {
|
|
35777
|
-
const
|
|
35778
|
-
|
|
35779
|
-
|
|
35780
|
-
|
|
35781
|
-
|
|
35782
|
-
|
|
35783
|
-
t?.type === value?.type));
|
|
35784
|
-
});
|
|
35785
|
-
this.control.setValue(filteredKeywords);
|
|
35926
|
+
const duplicatedKeyword = this.keywords.find((k) => k.label === keyword.label);
|
|
35927
|
+
if (!duplicatedKeyword) {
|
|
35928
|
+
this.keywords = [...this.keywords, keyword];
|
|
35929
|
+
this.changedKeywords.emit(this.keywords);
|
|
35930
|
+
this.addedKeyword.emit(keyword);
|
|
35931
|
+
}
|
|
35786
35932
|
}
|
|
35787
|
-
removeKeyword(
|
|
35788
|
-
|
|
35789
|
-
this.
|
|
35933
|
+
removeKeyword(keyword) {
|
|
35934
|
+
this.keywords = this.keywords.filter((k) => k.label !== keyword.label);
|
|
35935
|
+
this.changedKeywords.emit(this.keywords);
|
|
35936
|
+
this.deletedKeyword.emit(keyword);
|
|
35790
35937
|
}
|
|
35791
|
-
|
|
35792
|
-
|
|
35938
|
+
isPlaceWithoutExtent(keyword) {
|
|
35939
|
+
if (keyword.type !== 'place')
|
|
35940
|
+
return false;
|
|
35941
|
+
return !keyword.bbox;
|
|
35942
|
+
}
|
|
35943
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GenericKeywordsComponent, deps: [{ token: PlatformServiceInterface }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
35944
|
+
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 }); }
|
|
35945
|
+
}
|
|
35946
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GenericKeywordsComponent, decorators: [{
|
|
35947
|
+
type: Component,
|
|
35948
|
+
args: [{ selector: 'gn-ui-generic-keywords', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
35949
|
+
DropdownSelectorComponent,
|
|
35950
|
+
UiInputsModule,
|
|
35951
|
+
CommonModule,
|
|
35952
|
+
UiWidgetsModule,
|
|
35953
|
+
AutocompleteComponent,
|
|
35954
|
+
MatIconModule,
|
|
35955
|
+
TranslateModule,
|
|
35956
|
+
], 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" }]
|
|
35957
|
+
}], ctorParameters: function () { return [{ type: PlatformServiceInterface }]; }, propDecorators: { keywords: [{
|
|
35958
|
+
type: Input
|
|
35959
|
+
}], keywordTypes: [{
|
|
35960
|
+
type: Input
|
|
35961
|
+
}], placeholder: [{
|
|
35962
|
+
type: Input
|
|
35963
|
+
}], changedKeywords: [{
|
|
35964
|
+
type: Output
|
|
35965
|
+
}], addedKeyword: [{
|
|
35966
|
+
type: Output
|
|
35967
|
+
}], deletedKeyword: [{
|
|
35968
|
+
type: Output
|
|
35969
|
+
}] } });
|
|
35970
|
+
|
|
35971
|
+
class FormFieldKeywordsComponent {
|
|
35972
|
+
constructor() {
|
|
35973
|
+
this.valueChange = new EventEmitter();
|
|
35974
|
+
this.keywordTypes = ['temporal', 'theme', 'other'];
|
|
35975
|
+
this.placeholder = 'editor.form.keywords.placeholder';
|
|
35976
|
+
}
|
|
35977
|
+
handleKeywordsChange(keywords) {
|
|
35978
|
+
this.valueChange.emit(keywords);
|
|
35979
|
+
}
|
|
35980
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldKeywordsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
35981
|
+
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]=\"value\"\n [keywordTypes]=\"keywordTypes\"\n [placeholder]=\"placeholder | translate\"\n (changedKeywords)=\"handleKeywordsChange($event)\"\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"], outputs: ["changedKeywords", "addedKeyword", "deletedKeyword"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
35793
35982
|
}
|
|
35794
35983
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldKeywordsComponent, decorators: [{
|
|
35795
35984
|
type: Component,
|
|
@@ -35799,13 +35988,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
35799
35988
|
CommonModule,
|
|
35800
35989
|
UiWidgetsModule,
|
|
35801
35990
|
AutocompleteComponent,
|
|
35802
|
-
|
|
35803
|
-
|
|
35991
|
+
GenericKeywordsComponent,
|
|
35992
|
+
TranslateModule,
|
|
35993
|
+
], template: "<div class=\"flex flex-col gap-3\">\n <gn-ui-generic-keywords\n [keywords]=\"value\"\n [keywordTypes]=\"keywordTypes\"\n [placeholder]=\"placeholder | translate\"\n (changedKeywords)=\"handleKeywordsChange($event)\"\n >\n </gn-ui-generic-keywords>\n</div>\n" }]
|
|
35994
|
+
}], propDecorators: { value: [{
|
|
35804
35995
|
type: Input
|
|
35996
|
+
}], valueChange: [{
|
|
35997
|
+
type: Output
|
|
35805
35998
|
}] } });
|
|
35806
35999
|
|
|
35807
36000
|
class FormFieldLicenseComponent {
|
|
35808
36001
|
constructor() {
|
|
36002
|
+
this.valueChange = new EventEmitter();
|
|
35809
36003
|
this.choices = [
|
|
35810
36004
|
{
|
|
35811
36005
|
value: 'cc-by',
|
|
@@ -35846,32 +36040,39 @@ class FormFieldLicenseComponent {
|
|
|
35846
36040
|
];
|
|
35847
36041
|
}
|
|
35848
36042
|
get selected() {
|
|
35849
|
-
return this.
|
|
36043
|
+
return this.value[0]?.text;
|
|
35850
36044
|
}
|
|
35851
36045
|
onSelectValue(value) {
|
|
35852
|
-
this.
|
|
36046
|
+
this.valueChange.emit([{ text: value }]);
|
|
35853
36047
|
}
|
|
35854
36048
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldLicenseComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
35855
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormFieldLicenseComponent, isStandalone: true, selector: "gn-ui-form-field-license", inputs: {
|
|
36049
|
+
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 }); }
|
|
35856
36050
|
}
|
|
35857
36051
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldLicenseComponent, decorators: [{
|
|
35858
36052
|
type: Component,
|
|
35859
36053
|
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" }]
|
|
35860
|
-
}], propDecorators: {
|
|
36054
|
+
}], propDecorators: { label: [{
|
|
35861
36055
|
type: Input
|
|
35862
|
-
}],
|
|
36056
|
+
}], value: [{
|
|
35863
36057
|
type: Input
|
|
36058
|
+
}], valueChange: [{
|
|
36059
|
+
type: Output
|
|
35864
36060
|
}] } });
|
|
35865
36061
|
|
|
35866
36062
|
class FormFieldResourceUpdatedComponent {
|
|
36063
|
+
constructor() {
|
|
36064
|
+
this.valueChange = new EventEmitter();
|
|
36065
|
+
}
|
|
35867
36066
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldResourceUpdatedComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
35868
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormFieldResourceUpdatedComponent, isStandalone: true, selector: "gn-ui-form-field-resource-updated", inputs: {
|
|
36067
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormFieldResourceUpdatedComponent, isStandalone: true, selector: "gn-ui-form-field-resource-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 }); }
|
|
35869
36068
|
}
|
|
35870
36069
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldResourceUpdatedComponent, decorators: [{
|
|
35871
36070
|
type: Component,
|
|
35872
|
-
args: [{ selector: 'gn-ui-form-field-resource-updated', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [DatePickerComponent], template: "<gn-ui-date-picker\n [date]=\"
|
|
35873
|
-
}], propDecorators: {
|
|
36071
|
+
args: [{ selector: 'gn-ui-form-field-resource-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" }]
|
|
36072
|
+
}], propDecorators: { value: [{
|
|
35874
36073
|
type: Input
|
|
36074
|
+
}], valueChange: [{
|
|
36075
|
+
type: Output
|
|
35875
36076
|
}] } });
|
|
35876
36077
|
|
|
35877
36078
|
class FormFieldTemporalExtentsDateComponent {
|
|
@@ -35900,6 +36101,7 @@ class FormFieldTemporalExtentsComponent {
|
|
|
35900
36101
|
constructor(translateService) {
|
|
35901
36102
|
this.translateService = translateService;
|
|
35902
36103
|
this.array = new FormArray([]);
|
|
36104
|
+
this.elements = [];
|
|
35903
36105
|
this.addOptions$ = combineLatest([
|
|
35904
36106
|
this.translateService
|
|
35905
36107
|
.get('editor.record.form.temporalExtents.addDate')
|
|
@@ -35908,87 +36110,81 @@ class FormFieldTemporalExtentsComponent {
|
|
|
35908
36110
|
.get('editor.record.form.temporalExtents.addRange')
|
|
35909
36111
|
.pipe(map$2((buttonLabel) => ({ buttonLabel, eventName: 'range' }))),
|
|
35910
36112
|
]);
|
|
36113
|
+
this.valueChange = this.array.valueChanges;
|
|
35911
36114
|
}
|
|
35912
|
-
|
|
35913
|
-
this.resetValueFromInput(this.
|
|
35914
|
-
this.subscription = new Subscription();
|
|
35915
|
-
this.subscription.add(this.control.valueChanges.subscribe((value) => {
|
|
35916
|
-
this.resetValueFromInput(value);
|
|
35917
|
-
}));
|
|
35918
|
-
this.subscription.add(this.array.valueChanges.subscribe((value) => {
|
|
35919
|
-
this.control.setValue(value);
|
|
35920
|
-
}));
|
|
36115
|
+
ngOnChanges() {
|
|
36116
|
+
this.resetValueFromInput(this.value);
|
|
35921
36117
|
}
|
|
35922
36118
|
onElementsChange(elements) {
|
|
36119
|
+
this.elements = elements;
|
|
35923
36120
|
this.array.clear({ emitEvent: false });
|
|
35924
|
-
elements.forEach((e, i) => this.array.push(e.inputs.control, {
|
|
36121
|
+
this.elements.forEach((e, i) => this.array.push(e.inputs.control, {
|
|
35925
36122
|
emitEvent: i === elements.length - 1,
|
|
35926
36123
|
}));
|
|
35927
36124
|
}
|
|
35928
36125
|
onAdd(eventName) {
|
|
35929
36126
|
switch (eventName) {
|
|
35930
36127
|
case 'date': {
|
|
35931
|
-
const
|
|
35932
|
-
this.
|
|
36128
|
+
const instant = { start: new Date() };
|
|
36129
|
+
this.pushDate(instant, this.elements, true);
|
|
35933
36130
|
break;
|
|
35934
36131
|
}
|
|
35935
36132
|
case 'range': {
|
|
35936
|
-
const
|
|
36133
|
+
const range = {
|
|
35937
36134
|
start: new Date(),
|
|
35938
36135
|
end: new Date(),
|
|
35939
|
-
}
|
|
35940
|
-
this.
|
|
36136
|
+
};
|
|
36137
|
+
this.pushRange(range, this.elements, true);
|
|
35941
36138
|
break;
|
|
35942
36139
|
}
|
|
35943
36140
|
}
|
|
35944
36141
|
}
|
|
35945
|
-
ngOnDestroy() {
|
|
35946
|
-
this.subscription.unsubscribe();
|
|
35947
|
-
}
|
|
35948
36142
|
resetValueFromInput(value) {
|
|
35949
36143
|
this.array.clear({ emitEvent: false });
|
|
35950
|
-
|
|
36144
|
+
this.elements = [];
|
|
36145
|
+
if (!value)
|
|
36146
|
+
return;
|
|
36147
|
+
const newElements = [];
|
|
35951
36148
|
value.forEach((v) => {
|
|
35952
36149
|
if ('start' in v && 'end' in v) {
|
|
35953
|
-
|
|
35954
|
-
start: v.start,
|
|
35955
|
-
end: v.end,
|
|
35956
|
-
});
|
|
35957
|
-
this.array.push(rangeControl, { emitEvent: false });
|
|
35958
|
-
newElements = [
|
|
35959
|
-
...newElements,
|
|
35960
|
-
{
|
|
35961
|
-
component: FormFieldTemporalExtentsRangeComponent,
|
|
35962
|
-
inputs: {
|
|
35963
|
-
control: rangeControl,
|
|
35964
|
-
},
|
|
35965
|
-
},
|
|
35966
|
-
];
|
|
36150
|
+
this.pushRange(v, newElements, false);
|
|
35967
36151
|
}
|
|
35968
36152
|
else {
|
|
35969
|
-
|
|
35970
|
-
this.array.push(dateControl, { emitEvent: false });
|
|
35971
|
-
newElements = [
|
|
35972
|
-
...newElements,
|
|
35973
|
-
{
|
|
35974
|
-
component: FormFieldTemporalExtentsDateComponent,
|
|
35975
|
-
inputs: {
|
|
35976
|
-
control: dateControl,
|
|
35977
|
-
},
|
|
35978
|
-
},
|
|
35979
|
-
];
|
|
36153
|
+
this.pushDate(v, newElements, false);
|
|
35980
36154
|
}
|
|
35981
36155
|
});
|
|
35982
36156
|
this.elements = newElements;
|
|
35983
36157
|
}
|
|
36158
|
+
pushDate(instant, elements, emitEvent) {
|
|
36159
|
+
const dateControl = new FormControl(instant);
|
|
36160
|
+
this.array.push(dateControl, { emitEvent });
|
|
36161
|
+
elements.push({
|
|
36162
|
+
component: FormFieldTemporalExtentsDateComponent,
|
|
36163
|
+
inputs: {
|
|
36164
|
+
control: dateControl,
|
|
36165
|
+
},
|
|
36166
|
+
});
|
|
36167
|
+
}
|
|
36168
|
+
pushRange(period, elements, emitEvent) {
|
|
36169
|
+
const rangeControl = new FormControl(period);
|
|
36170
|
+
this.array.push(rangeControl, { emitEvent });
|
|
36171
|
+
elements.push({
|
|
36172
|
+
component: FormFieldTemporalExtentsRangeComponent,
|
|
36173
|
+
inputs: {
|
|
36174
|
+
control: rangeControl,
|
|
36175
|
+
},
|
|
36176
|
+
});
|
|
36177
|
+
}
|
|
35984
36178
|
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 }); }
|
|
35985
|
-
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: {
|
|
36179
|
+
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" }, usesOnChanges: true, 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 <span class=\"material-symbols-outlined gn-ui-icon-small\"> add </span>\n {{ addOption.buttonLabel }}</gn-ui-button\n >\n</div>\n<gn-ui-sortable-list\n [elements]=\"elements\"\n (elementsChange)=\"onElementsChange($event)\"\n></gn-ui-sortable-list>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { 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: ["elements"], outputs: ["elementsChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
35986
36180
|
}
|
|
35987
36181
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldTemporalExtentsComponent, decorators: [{
|
|
35988
36182
|
type: Component,
|
|
35989
|
-
args: [{ selector: 'gn-ui-form-field-temporal-extents', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, SortableListComponent], template: "<gn-ui-
|
|
35990
|
-
}], ctorParameters: function () { return [{ type: i1$1.TranslateService }]; }, propDecorators: {
|
|
36183
|
+
args: [{ selector: 'gn-ui-form-field-temporal-extents', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, ButtonComponent, SortableListComponent], 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 <span class=\"material-symbols-outlined gn-ui-icon-small\"> add </span>\n {{ addOption.buttonLabel }}</gn-ui-button\n >\n</div>\n<gn-ui-sortable-list\n [elements]=\"elements\"\n (elementsChange)=\"onElementsChange($event)\"\n></gn-ui-sortable-list>\n" }]
|
|
36184
|
+
}], ctorParameters: function () { return [{ type: i1$1.TranslateService }]; }, propDecorators: { value: [{
|
|
35991
36185
|
type: Input
|
|
36186
|
+
}], valueChange: [{
|
|
36187
|
+
type: Output
|
|
35992
36188
|
}] } });
|
|
35993
36189
|
|
|
35994
36190
|
class FormFieldSimpleComponent {
|
|
@@ -35996,6 +36192,7 @@ class FormFieldSimpleComponent {
|
|
|
35996
36192
|
this.readonly = false;
|
|
35997
36193
|
this.invalid = false;
|
|
35998
36194
|
this.placeholder = '';
|
|
36195
|
+
this.valueChange = new EventEmitter();
|
|
35999
36196
|
}
|
|
36000
36197
|
get inputType() {
|
|
36001
36198
|
switch (this.type) {
|
|
@@ -36016,15 +36213,13 @@ class FormFieldSimpleComponent {
|
|
|
36016
36213
|
return this.type === 'list';
|
|
36017
36214
|
}
|
|
36018
36215
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldSimpleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
36019
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormFieldSimpleComponent, isStandalone: true, selector: "gn-ui-form-field-simple", inputs: { type: "type",
|
|
36216
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormFieldSimpleComponent, isStandalone: true, selector: "gn-ui-form-field-simple", inputs: { type: "type", readonly: "readonly", invalid: "invalid", placeholder: "placeholder", options: "options", value: "value" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<input\n *ngIf=\"!isSelect\"\n [type]=\"inputType\"\n [readonly]=\"readonly\"\n [placeholder]=\"placeholder\"\n [value]=\"value\"\n (valueChange)=\"valueChange.emit($event)\"\n class=\"border rounded-md p-3 w-full bg-white transition-colors\"\n [ngClass]=\"{\n 'border-pink-500': invalid,\n 'border-gray-200': !invalid,\n 'text-gray-600': readonly\n }\"\n/>\n<select\n *ngIf=\"isSelect\"\n [value]=\"value\"\n (valueChange)=\"valueChange.emit($event)\"\n class=\"border rounded-md p-3 w-full bg-white transition-colors\"\n [ngClass]=\"{\n 'border-pink-500': invalid,\n 'border-gray-200': !invalid,\n 'text-gray-600': readonly\n }\"\n>\n <option *ngFor=\"let option of options\" [value]=\"option.value\">\n {{ option.label }}\n </option>\n</select>\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"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
36020
36217
|
}
|
|
36021
36218
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldSimpleComponent, decorators: [{
|
|
36022
36219
|
type: Component,
|
|
36023
|
-
args: [{ selector: 'gn-ui-form-field-simple', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule
|
|
36220
|
+
args: [{ selector: 'gn-ui-form-field-simple', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule], template: "<input\n *ngIf=\"!isSelect\"\n [type]=\"inputType\"\n [readonly]=\"readonly\"\n [placeholder]=\"placeholder\"\n [value]=\"value\"\n (valueChange)=\"valueChange.emit($event)\"\n class=\"border rounded-md p-3 w-full bg-white transition-colors\"\n [ngClass]=\"{\n 'border-pink-500': invalid,\n 'border-gray-200': !invalid,\n 'text-gray-600': readonly\n }\"\n/>\n<select\n *ngIf=\"isSelect\"\n [value]=\"value\"\n (valueChange)=\"valueChange.emit($event)\"\n class=\"border rounded-md p-3 w-full bg-white transition-colors\"\n [ngClass]=\"{\n 'border-pink-500': invalid,\n 'border-gray-200': !invalid,\n 'text-gray-600': readonly\n }\"\n>\n <option *ngFor=\"let option of options\" [value]=\"option.value\">\n {{ option.label }}\n </option>\n</select>\n" }]
|
|
36024
36221
|
}], propDecorators: { type: [{
|
|
36025
36222
|
type: Input
|
|
36026
|
-
}], control: [{
|
|
36027
|
-
type: Input
|
|
36028
36223
|
}], readonly: [{
|
|
36029
36224
|
type: Input
|
|
36030
36225
|
}], invalid: [{
|
|
@@ -36033,6 +36228,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
36033
36228
|
type: Input
|
|
36034
36229
|
}], options: [{
|
|
36035
36230
|
type: Input
|
|
36231
|
+
}], value: [{
|
|
36232
|
+
type: Input
|
|
36233
|
+
}], valueChange: [{
|
|
36234
|
+
type: Output
|
|
36036
36235
|
}] } });
|
|
36037
36236
|
|
|
36038
36237
|
class FormFieldFileComponent {
|
|
@@ -36042,7 +36241,7 @@ class FormFieldFileComponent {
|
|
|
36042
36241
|
this.placeholder = '';
|
|
36043
36242
|
}
|
|
36044
36243
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldFileComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
36045
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormFieldFileComponent, isStandalone: true, selector: "gn-ui-form-field-file", inputs: { control: "control", readonly: "readonly", invalid: "invalid", placeholder: "placeholder" }, ngImport: i0, template: "<input\n type=\"file\"\n [readonly]=\"readonly\"\n [formControl]=\"control\"\n [placeholder]=\"placeholder\"\n class=\"border rounded-md p-3 w-full bg-white transition-colors\"\n [ngClass]=\"{\n 'border-pink-500': invalid,\n 'border-gray-200': !invalid,\n 'text-gray-600': readonly\n }\"\n/>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type:
|
|
36244
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormFieldFileComponent, isStandalone: true, selector: "gn-ui-form-field-file", inputs: { control: "control", readonly: "readonly", invalid: "invalid", placeholder: "placeholder" }, ngImport: i0, template: "<input\n type=\"file\"\n [readonly]=\"readonly\"\n [formControl]=\"control\"\n [placeholder]=\"placeholder\"\n class=\"border rounded-md p-3 w-full bg-white transition-colors\"\n [ngClass]=\"{\n 'border-pink-500': invalid,\n 'border-gray-200': !invalid,\n 'text-gray-600': readonly\n }\"\n/>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
36046
36245
|
}
|
|
36047
36246
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldFileComponent, decorators: [{
|
|
36048
36247
|
type: Component,
|
|
@@ -36060,6 +36259,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
36060
36259
|
class FormFieldRichComponent {
|
|
36061
36260
|
constructor() {
|
|
36062
36261
|
this.placeholder = 'Votre texte ici'; //TODO: translate
|
|
36262
|
+
this.valueChange = new EventEmitter();
|
|
36063
36263
|
this.preview = false;
|
|
36064
36264
|
}
|
|
36065
36265
|
getButtonExtraClass() {
|
|
@@ -36068,11 +36268,8 @@ class FormFieldRichComponent {
|
|
|
36068
36268
|
togglePreview() {
|
|
36069
36269
|
this.preview = !this.preview;
|
|
36070
36270
|
}
|
|
36071
|
-
handleTextContentChanged(textContent) {
|
|
36072
|
-
this.control.setValue(textContent);
|
|
36073
|
-
}
|
|
36074
36271
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldRichComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
36075
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormFieldRichComponent, isStandalone: true, selector: "gn-ui-form-field-rich", inputs: {
|
|
36272
|
+
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", helperText: "helperText", 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 [extraClass]=\"getButtonExtraClass()\"\n (buttonClick)=\"togglePreview()\"\n >\n <span class=\"material-symbols-outlined mr-1 gn-ui-icon-small\">{{\n preview ? 'visibility' : 'visibility_off'\n }}</span>\n {{ preview ? 'WYSIWYG' : 'Markdown' }}\n </gn-ui-button>\n <gn-ui-markdown-editor\n class=\"h-full\"\n [preview]=\"preview\"\n [helperText]=\"helperText\"\n [placeholder]=\"placeholder\"\n [textContent]=\"value\"\n (textContentChanged)=\"valueChange.emit($event)\"\n ></gn-ui-markdown-editor>\n</gn-ui-form-field-wrapper>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type: MarkdownEditorComponent, selector: "gn-ui-markdown-editor", inputs: ["preview", "helperText", "placeholder", "textContent"], 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 }); }
|
|
36076
36273
|
}
|
|
36077
36274
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldRichComponent, decorators: [{
|
|
36078
36275
|
type: Component,
|
|
@@ -36082,10 +36279,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
36082
36279
|
MarkdownEditorComponent,
|
|
36083
36280
|
FormFieldWrapperComponent,
|
|
36084
36281
|
ButtonComponent,
|
|
36085
|
-
], template: "<gn-ui-form-field-wrapper [label]=\"label\" [hint]=\"hint\">\n <gn-ui-button\n form-field-interaction\n [extraClass]=\"getButtonExtraClass()\"\n (buttonClick)=\"togglePreview()\"\n >\n <span class=\"material-symbols-outlined mr-1 gn-ui-icon-small\">{{\n preview ? 'visibility' : 'visibility_off'\n }}</span>\n {{ preview ? 'WYSIWYG' : 'Markdown' }}\n </gn-ui-button>\n <gn-ui-markdown-editor\n class=\"h-full\"\n [preview]=\"preview\"\n [helperText]=\"helperText\"\n [placeholder]=\"placeholder\"\n [textContent]=\"
|
|
36086
|
-
}], propDecorators: {
|
|
36087
|
-
type: Input
|
|
36088
|
-
}], label: [{
|
|
36282
|
+
], template: "<gn-ui-form-field-wrapper [label]=\"label\" [hint]=\"hint\">\n <gn-ui-button\n form-field-interaction\n [extraClass]=\"getButtonExtraClass()\"\n (buttonClick)=\"togglePreview()\"\n >\n <span class=\"material-symbols-outlined mr-1 gn-ui-icon-small\">{{\n preview ? 'visibility' : 'visibility_off'\n }}</span>\n {{ preview ? 'WYSIWYG' : 'Markdown' }}\n </gn-ui-button>\n <gn-ui-markdown-editor\n class=\"h-full\"\n [preview]=\"preview\"\n [helperText]=\"helperText\"\n [placeholder]=\"placeholder\"\n [textContent]=\"value\"\n (textContentChanged)=\"valueChange.emit($event)\"\n ></gn-ui-markdown-editor>\n</gn-ui-form-field-wrapper>\n" }]
|
|
36283
|
+
}], propDecorators: { label: [{
|
|
36089
36284
|
type: Input
|
|
36090
36285
|
}], hint: [{
|
|
36091
36286
|
type: Input
|
|
@@ -36093,6 +36288,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
36093
36288
|
type: Input
|
|
36094
36289
|
}], placeholder: [{
|
|
36095
36290
|
type: Input
|
|
36291
|
+
}], value: [{
|
|
36292
|
+
type: Input
|
|
36293
|
+
}], valueChange: [{
|
|
36294
|
+
type: Output
|
|
36096
36295
|
}] } });
|
|
36097
36296
|
|
|
36098
36297
|
class FormFieldObjectComponent {
|
|
@@ -36113,264 +36312,197 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
36113
36312
|
args: [{ selector: 'gn-ui-form-field-array', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<p>form-field-array works!</p>\n" }]
|
|
36114
36313
|
}] });
|
|
36115
36314
|
|
|
36116
|
-
class
|
|
36117
|
-
|
|
36118
|
-
|
|
36119
|
-
|
|
36120
|
-
|
|
36121
|
-
|
|
36122
|
-
|
|
36123
|
-
|
|
36124
|
-
|
|
36125
|
-
|
|
36126
|
-
|
|
36127
|
-
|
|
36128
|
-
|
|
36129
|
-
|
|
36130
|
-
this.translateService = translateService;
|
|
36131
|
-
this.choices = [];
|
|
36132
|
-
}
|
|
36133
|
-
async ngOnInit() {
|
|
36134
|
-
this.choices = await this.getInitialChoices();
|
|
36135
|
-
if (typeof this.control.value === 'string') {
|
|
36136
|
-
return;
|
|
36137
|
-
}
|
|
36138
|
-
const updatedTimes = this.control.value.updatedTimes;
|
|
36139
|
-
const per = this.control.value.per;
|
|
36140
|
-
// the update frequency is not in the list; make it appear there
|
|
36141
|
-
if (updatedTimes && updatedTimes !== 1 && updatedTimes !== 2) {
|
|
36142
|
-
this.choices = [
|
|
36143
|
-
{
|
|
36144
|
-
value: `${per}.${updatedTimes}`,
|
|
36145
|
-
label: await firstValueFrom(this.translateService.get(`domain.record.updateFrequency.${per}`, {
|
|
36146
|
-
count: updatedTimes,
|
|
36147
|
-
})),
|
|
36315
|
+
class FormFieldMapContainerComponent {
|
|
36316
|
+
constructor(mapFacade, mapUtils, styleService) {
|
|
36317
|
+
this.mapFacade = mapFacade;
|
|
36318
|
+
this.mapUtils = mapUtils;
|
|
36319
|
+
this.styleService = styleService;
|
|
36320
|
+
this.error = '';
|
|
36321
|
+
this.mapContext$ = this.mapFacade.layers$.pipe(switchMap((layers) => from(this.mapUtils.getLayerExtent(layers[0])).pipe(catchError$1(() => {
|
|
36322
|
+
this.error = 'The layer has no extent';
|
|
36323
|
+
return of(undefined);
|
|
36324
|
+
}), map$2((extent) => {
|
|
36325
|
+
return {
|
|
36326
|
+
layers: [DEFAULT_BASELAYER_CONTEXT, ...layers],
|
|
36327
|
+
view: {
|
|
36328
|
+
extent: extent,
|
|
36148
36329
|
},
|
|
36149
|
-
|
|
36150
|
-
|
|
36151
|
-
|
|
36330
|
+
};
|
|
36331
|
+
}))));
|
|
36332
|
+
this.mapConfig = getOptionalMapConfig();
|
|
36333
|
+
const fill = new Fill({
|
|
36334
|
+
color: 'transparent',
|
|
36335
|
+
});
|
|
36336
|
+
const stroke = new Stroke({
|
|
36337
|
+
color: 'black',
|
|
36338
|
+
width: 2,
|
|
36339
|
+
});
|
|
36340
|
+
const styles = [
|
|
36341
|
+
new Style$1({
|
|
36342
|
+
fill: fill,
|
|
36343
|
+
stroke: stroke,
|
|
36344
|
+
}),
|
|
36345
|
+
];
|
|
36346
|
+
this.styleService.styles.default = this.styleService.createStyleFunction({
|
|
36347
|
+
...this.styleService.createGeometryStyles({ color: 'black' }),
|
|
36348
|
+
polygon: styles,
|
|
36349
|
+
});
|
|
36152
36350
|
}
|
|
36153
|
-
|
|
36154
|
-
|
|
36155
|
-
|
|
36156
|
-
|
|
36157
|
-
|
|
36158
|
-
|
|
36351
|
+
ngOnChanges() {
|
|
36352
|
+
this.mapFacade.removeLayer(0);
|
|
36353
|
+
if (this.spatialExtents) {
|
|
36354
|
+
const featureCollection = {
|
|
36355
|
+
type: 'FeatureCollection',
|
|
36356
|
+
features: [],
|
|
36357
|
+
};
|
|
36358
|
+
this.spatialExtents.forEach((extent) => {
|
|
36359
|
+
if (extent.geometry) {
|
|
36360
|
+
featureCollection.features.push({
|
|
36361
|
+
type: 'Feature',
|
|
36362
|
+
properties: {},
|
|
36363
|
+
geometry: extent.geometry,
|
|
36364
|
+
});
|
|
36365
|
+
}
|
|
36366
|
+
else if (extent.bbox?.length >= 0) {
|
|
36367
|
+
featureCollection.features.push({
|
|
36368
|
+
type: 'Feature',
|
|
36369
|
+
properties: {},
|
|
36370
|
+
geometry: this.bboxCoordsToGeometry(extent.bbox),
|
|
36371
|
+
});
|
|
36372
|
+
}
|
|
36373
|
+
});
|
|
36374
|
+
this.mapFacade.addLayer({
|
|
36375
|
+
type: MapContextLayerTypeEnum.GEOJSON,
|
|
36376
|
+
data: featureCollection,
|
|
36377
|
+
title: 'Spatial extents',
|
|
36378
|
+
});
|
|
36159
36379
|
}
|
|
36160
36380
|
}
|
|
36161
|
-
|
|
36162
|
-
|
|
36163
|
-
|
|
36164
|
-
|
|
36165
|
-
|
|
36166
|
-
|
|
36167
|
-
|
|
36168
|
-
|
|
36169
|
-
|
|
36170
|
-
|
|
36171
|
-
|
|
36172
|
-
|
|
36173
|
-
}
|
|
36174
|
-
async getInitialChoices() {
|
|
36175
|
-
return [
|
|
36176
|
-
{
|
|
36177
|
-
value: 'day.1',
|
|
36178
|
-
label: await firstValueFrom(this.translateService.get('domain.record.updateFrequency.day', {
|
|
36179
|
-
count: 1,
|
|
36180
|
-
})),
|
|
36181
|
-
},
|
|
36182
|
-
{
|
|
36183
|
-
value: 'day.2',
|
|
36184
|
-
label: await firstValueFrom(this.translateService.get('domain.record.updateFrequency.day', {
|
|
36185
|
-
count: 2,
|
|
36186
|
-
})),
|
|
36187
|
-
},
|
|
36188
|
-
{
|
|
36189
|
-
value: 'week.1',
|
|
36190
|
-
label: await firstValueFrom(this.translateService.get('domain.record.updateFrequency.week', {
|
|
36191
|
-
count: 1,
|
|
36192
|
-
})),
|
|
36193
|
-
},
|
|
36194
|
-
{
|
|
36195
|
-
value: 'week.2',
|
|
36196
|
-
label: await firstValueFrom(this.translateService.get('domain.record.updateFrequency.week', {
|
|
36197
|
-
count: 2,
|
|
36198
|
-
})),
|
|
36199
|
-
},
|
|
36200
|
-
{
|
|
36201
|
-
value: 'month.1',
|
|
36202
|
-
label: await firstValueFrom(this.translateService.get('domain.record.updateFrequency.month', {
|
|
36203
|
-
count: 1,
|
|
36204
|
-
})),
|
|
36205
|
-
},
|
|
36206
|
-
{
|
|
36207
|
-
value: 'month.2',
|
|
36208
|
-
label: await firstValueFrom(this.translateService.get('domain.record.updateFrequency.month', {
|
|
36209
|
-
count: 2,
|
|
36210
|
-
})),
|
|
36211
|
-
},
|
|
36212
|
-
{
|
|
36213
|
-
value: 'year.1',
|
|
36214
|
-
label: await firstValueFrom(this.translateService.get('domain.record.updateFrequency.year', {
|
|
36215
|
-
count: 1,
|
|
36216
|
-
})),
|
|
36217
|
-
},
|
|
36218
|
-
{
|
|
36219
|
-
value: 'year.2',
|
|
36220
|
-
label: await firstValueFrom(this.translateService.get('domain.record.updateFrequency.year', {
|
|
36221
|
-
count: 2,
|
|
36222
|
-
})),
|
|
36223
|
-
},
|
|
36224
|
-
];
|
|
36381
|
+
bboxCoordsToGeometry(bbox) {
|
|
36382
|
+
const geometry = new Polygon([
|
|
36383
|
+
[
|
|
36384
|
+
[bbox[0], bbox[1]],
|
|
36385
|
+
[bbox[0], bbox[3]],
|
|
36386
|
+
[bbox[2], bbox[3]],
|
|
36387
|
+
[bbox[2], bbox[1]],
|
|
36388
|
+
[bbox[0], bbox[1]],
|
|
36389
|
+
],
|
|
36390
|
+
]);
|
|
36391
|
+
const geoJSONGeom = new GeoJSON().writeGeometryObject(geometry);
|
|
36392
|
+
return geoJSONGeom;
|
|
36225
36393
|
}
|
|
36226
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type:
|
|
36227
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type:
|
|
36394
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldMapContainerComponent, deps: [{ token: MapFacade }, { token: MapUtilsService }, { token: MapStyleService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
36395
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormFieldMapContainerComponent, isStandalone: true, selector: "gn-ui-form-field-map-container", inputs: { spatialExtents: "spatialExtents" }, usesOnChanges: true, ngImport: i0, template: "<gn-ui-map-context\n [context]=\"mapContext$ | async\"\n [mapConfig]=\"mapConfig\"\n></gn-ui-map-context>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1$3.AsyncPipe, name: "async" }, { kind: "ngmodule", type: FeatureMapModule }, { kind: "component", type: MapContextComponent, selector: "gn-ui-map-context", inputs: ["context", "mapConfig"], outputs: ["featureClicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
36228
36396
|
}
|
|
36229
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type:
|
|
36397
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldMapContainerComponent, decorators: [{
|
|
36230
36398
|
type: Component,
|
|
36231
|
-
args: [{ selector: 'gn-ui-form-field-
|
|
36232
|
-
}], ctorParameters: function () { return [{ type:
|
|
36399
|
+
args: [{ selector: 'gn-ui-form-field-map-container', standalone: true, imports: [CommonModule, FeatureMapModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<gn-ui-map-context\n [context]=\"mapContext$ | async\"\n [mapConfig]=\"mapConfig\"\n></gn-ui-map-context>\n" }]
|
|
36400
|
+
}], ctorParameters: function () { return [{ type: MapFacade }, { type: MapUtilsService }, { type: MapStyleService }]; }, propDecorators: { spatialExtents: [{
|
|
36233
36401
|
type: Input
|
|
36234
36402
|
}] } });
|
|
36235
36403
|
|
|
36236
|
-
|
|
36237
|
-
|
|
36238
|
-
|
|
36239
|
-
|
|
36240
|
-
|
|
36241
|
-
|
|
36242
|
-
|
|
36243
|
-
|
|
36244
|
-
|
|
36245
|
-
|
|
36246
|
-
|
|
36247
|
-
|
|
36248
|
-
|
|
36249
|
-
|
|
36250
|
-
|
|
36251
|
-
|
|
36252
|
-
|
|
36253
|
-
|
|
36254
|
-
|
|
36255
|
-
|
|
36256
|
-
|
|
36257
|
-
|
|
36258
|
-
|
|
36259
|
-
|
|
36404
|
+
/**
|
|
36405
|
+
* This form field is not like the others, as it will read directly from the state to handle both spatial extents
|
|
36406
|
+
* and place keywords.
|
|
36407
|
+
* Other types of keywords will not be touched by this field.
|
|
36408
|
+
*/
|
|
36409
|
+
class FormFieldSpatialExtentComponent {
|
|
36410
|
+
constructor(platformService, editorFacade, translateService) {
|
|
36411
|
+
this.platformService = platformService;
|
|
36412
|
+
this.editorFacade = editorFacade;
|
|
36413
|
+
this.translateService = translateService;
|
|
36414
|
+
this.spatialExtents$ = this.editorFacade.record$.pipe(map$2((record) => ('spatialExtents' in record ? record?.spatialExtents : [])));
|
|
36415
|
+
this.shownKeywords$ = this.editorFacade.record$.pipe(map$2((record) => record?.keywords.filter((k) => k.type === 'place')),
|
|
36416
|
+
// look for full keywords in the thesauri
|
|
36417
|
+
switchMap$1((keywords) => Promise.all(keywords.map(async (keyword) => {
|
|
36418
|
+
if (!keyword.thesaurus)
|
|
36419
|
+
return keyword;
|
|
36420
|
+
const allKeywords = await firstValueFrom(this.platformService.searchKeywordsInThesaurus(keyword.label, keyword.thesaurus.id));
|
|
36421
|
+
const found = allKeywords.find((k) => k.label === keyword.label);
|
|
36422
|
+
return found ?? keyword;
|
|
36423
|
+
}))),
|
|
36424
|
+
// add additional "unnamed" keywords for extents without a matching keyword
|
|
36425
|
+
switchMap$1(async (keywords) => {
|
|
36426
|
+
const spatialExtents = await firstValueFrom(this.spatialExtents$);
|
|
36427
|
+
const keywordsFromExtents = await Promise.all(spatialExtents.map(async (extent) => {
|
|
36428
|
+
const existingKeyword = extent.description &&
|
|
36429
|
+
keywords.find((k) => k.key === extent.description);
|
|
36430
|
+
if (existingKeyword) {
|
|
36431
|
+
existingKeyword._linkedExtent = extent;
|
|
36432
|
+
return null;
|
|
36260
36433
|
}
|
|
36261
|
-
|
|
36262
|
-
|
|
36263
|
-
|
|
36264
|
-
this.resourceFileName = '';
|
|
36434
|
+
let bbox = null;
|
|
36435
|
+
if ('geometry' in extent) {
|
|
36436
|
+
bbox = extent.geometry; // FIXME: this should be a bbox too but for now it works...
|
|
36265
36437
|
}
|
|
36266
|
-
|
|
36267
|
-
|
|
36268
|
-
|
|
36269
|
-
|
|
36270
|
-
|
|
36271
|
-
|
|
36272
|
-
|
|
36273
|
-
|
|
36274
|
-
|
|
36275
|
-
|
|
36276
|
-
|
|
36277
|
-
|
|
36278
|
-
|
|
36279
|
-
|
|
36280
|
-
|
|
36281
|
-
|
|
36282
|
-
|
|
36283
|
-
|
|
36284
|
-
|
|
36285
|
-
|
|
36286
|
-
|
|
36287
|
-
|
|
36288
|
-
|
|
36289
|
-
|
|
36290
|
-
|
|
36291
|
-
|
|
36292
|
-
|
|
36293
|
-
|
|
36294
|
-
|
|
36295
|
-
|
|
36296
|
-
|
|
36297
|
-
|
|
36298
|
-
|
|
36299
|
-
|
|
36300
|
-
|
|
36301
|
-
|
|
36302
|
-
|
|
36303
|
-
|
|
36304
|
-
this.resourceAltText = newAltText;
|
|
36305
|
-
this.overviewChange.emit({
|
|
36306
|
-
url: new URL(this.resourceUrl),
|
|
36307
|
-
description: this.resourceAltText,
|
|
36308
|
-
});
|
|
36309
|
-
this.cd.markForCheck();
|
|
36310
|
-
}
|
|
36311
|
-
handleDelete() {
|
|
36312
|
-
//this.formControl.markAsDirty()
|
|
36313
|
-
this.recordsApiService
|
|
36314
|
-
.delResource(this.metadataUuid, this.resourceFileName)
|
|
36315
|
-
.subscribe({
|
|
36316
|
-
next: () => {
|
|
36317
|
-
this.resourceAltText = '';
|
|
36318
|
-
this.resourceUrl = '';
|
|
36319
|
-
this.overviewChange.emit(null);
|
|
36320
|
-
this.cd.markForCheck();
|
|
36321
|
-
},
|
|
36322
|
-
error: this.errorHandle,
|
|
36323
|
-
});
|
|
36324
|
-
}
|
|
36325
|
-
ngOnChanges(changes) {
|
|
36326
|
-
const overviewChanges = changes['formControl'];
|
|
36327
|
-
if (overviewChanges &&
|
|
36328
|
-
overviewChanges.currentValue !== overviewChanges.previousValue) {
|
|
36329
|
-
let overview;
|
|
36330
|
-
if (overviewChanges.currentValue.value &&
|
|
36331
|
-
overviewChanges.currentValue.value.length > 0) {
|
|
36332
|
-
overview = overviewChanges.currentValue.value[0];
|
|
36333
|
-
}
|
|
36334
|
-
else {
|
|
36335
|
-
return;
|
|
36336
|
-
}
|
|
36337
|
-
if (overview.description) {
|
|
36338
|
-
this.resourceAltText = overview.description;
|
|
36339
|
-
this.cd.markForCheck();
|
|
36340
|
-
}
|
|
36438
|
+
else if ('bbox' in extent) {
|
|
36439
|
+
bbox = extent.bbox;
|
|
36440
|
+
}
|
|
36441
|
+
const label = await firstValueFrom(this.translateService.get('editor.record.placeKeywordWithoutLabel'));
|
|
36442
|
+
return {
|
|
36443
|
+
label,
|
|
36444
|
+
type: 'place',
|
|
36445
|
+
...(bbox && { bbox }),
|
|
36446
|
+
_linkedExtent: extent,
|
|
36447
|
+
_doNotSave: true,
|
|
36448
|
+
};
|
|
36449
|
+
})).then((keywords) => keywords.filter((k) => !!k));
|
|
36450
|
+
return [...keywords, ...keywordsFromExtents];
|
|
36451
|
+
}), shareReplay$1(1));
|
|
36452
|
+
}
|
|
36453
|
+
async handleKeywordDelete(keyword) {
|
|
36454
|
+
const spatialExtents = await firstValueFrom(this.spatialExtents$);
|
|
36455
|
+
const shownKeywords = (await firstValueFrom(this.shownKeywords$));
|
|
36456
|
+
const newKeywords = shownKeywords.filter((k) => k !== keyword);
|
|
36457
|
+
const linkedExtent = '_linkedExtent' in keyword ? keyword._linkedExtent : null;
|
|
36458
|
+
const newExtents = linkedExtent
|
|
36459
|
+
? spatialExtents.filter((extent) => linkedExtent !== extent)
|
|
36460
|
+
: spatialExtents;
|
|
36461
|
+
return this.emitChanges(newKeywords, newExtents);
|
|
36462
|
+
}
|
|
36463
|
+
async handleKeywordAdd(keyword) {
|
|
36464
|
+
const spatialExtents = await firstValueFrom(this.spatialExtents$);
|
|
36465
|
+
const shownKeywords = await firstValueFrom(this.shownKeywords$);
|
|
36466
|
+
const newKeywords = [...shownKeywords, keyword];
|
|
36467
|
+
let newExtents = spatialExtents;
|
|
36468
|
+
if (keyword.bbox) {
|
|
36469
|
+
newExtents = [
|
|
36470
|
+
...spatialExtents,
|
|
36471
|
+
{
|
|
36472
|
+
bbox: keyword.bbox,
|
|
36473
|
+
description: keyword.key ?? undefined,
|
|
36474
|
+
},
|
|
36475
|
+
];
|
|
36341
36476
|
}
|
|
36477
|
+
return this.emitChanges(newKeywords, newExtents);
|
|
36342
36478
|
}
|
|
36343
|
-
|
|
36344
|
-
|
|
36345
|
-
|
|
36346
|
-
|
|
36347
|
-
type
|
|
36348
|
-
|
|
36349
|
-
|
|
36350
|
-
|
|
36351
|
-
|
|
36352
|
-
|
|
36353
|
-
|
|
36354
|
-
|
|
36355
|
-
|
|
36356
|
-
|
|
36357
|
-
|
|
36358
|
-
|
|
36359
|
-
class FormFieldOverviewsComponent {
|
|
36360
|
-
handleOverviewChange(overView) {
|
|
36361
|
-
this.control.setValue(overView ? [overView] : []);
|
|
36479
|
+
async emitChanges(placeKeywords, spatialExtents) {
|
|
36480
|
+
// some keywords are only present to allow control over extents; they **should not** be saved!
|
|
36481
|
+
const filteredPlaceKeywords = placeKeywords
|
|
36482
|
+
.filter((keyword) => !keyword._doNotSave)
|
|
36483
|
+
.map(({ label, thesaurus, type }) => ({
|
|
36484
|
+
label,
|
|
36485
|
+
type,
|
|
36486
|
+
...(thesaurus && { thesaurus }),
|
|
36487
|
+
}));
|
|
36488
|
+
const notPlaceKeywords = await firstValueFrom(this.editorFacade.record$.pipe(map$2((record) => record.keywords.filter((k) => k.type !== 'place'))));
|
|
36489
|
+
this.editorFacade.updateRecordField('keywords', [
|
|
36490
|
+
...notPlaceKeywords,
|
|
36491
|
+
...filteredPlaceKeywords,
|
|
36492
|
+
]);
|
|
36493
|
+
this.editorFacade.updateRecordField('spatialExtents', spatialExtents);
|
|
36362
36494
|
}
|
|
36363
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type:
|
|
36364
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type:
|
|
36495
|
+
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 }); }
|
|
36496
|
+
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-3\">\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"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
36365
36497
|
}
|
|
36366
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type:
|
|
36498
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldSpatialExtentComponent, decorators: [{
|
|
36367
36499
|
type: Component,
|
|
36368
|
-
args: [{ selector: 'gn-ui-form-field-
|
|
36369
|
-
|
|
36370
|
-
|
|
36371
|
-
|
|
36372
|
-
|
|
36373
|
-
|
|
36500
|
+
args: [{ selector: 'gn-ui-form-field-spatial-extent', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
36501
|
+
CommonModule,
|
|
36502
|
+
GenericKeywordsComponent,
|
|
36503
|
+
FormFieldMapContainerComponent,
|
|
36504
|
+
], template: "<div class=\"flex flex-col gap-3\">\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" }]
|
|
36505
|
+
}], ctorParameters: function () { return [{ type: PlatformServiceInterface }, { type: EditorFacade }, { type: i1$1.TranslateService }]; } });
|
|
36374
36506
|
|
|
36375
36507
|
const RoleValues = [
|
|
36376
36508
|
'unspecified',
|
|
@@ -36454,11 +36586,11 @@ class ContactCardComponent {
|
|
|
36454
36586
|
this.contactRemoved.emit(contact);
|
|
36455
36587
|
}
|
|
36456
36588
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ContactCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
36457
|
-
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", removable: "removable" }, outputs: { contactRemoved: "contactRemoved" }, ngImport: i0, template: "<div class=\"flex flex-row gap-4 items-center\">\n <div class=\"flex flex-row border border-gray-200 rounded-xl p-4 gap-4 w-full\">\n <gn-ui-thumbnail\n class=\"w-[56px] h-[56px] rounded-[4px]\"\n [thumbnailUrl]=\"contact.organization.logoUrl?.href\"\n [fit]=\"'contain'\"\n ></gn-ui-thumbnail>\n <div class=\"flex flex-col w-full\">\n <div class=\"flex flex-row justify-between\">\n <span
|
|
36589
|
+
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", removable: "removable" }, outputs: { contactRemoved: "contactRemoved" }, ngImport: i0, template: "<div class=\"flex flex-row gap-4 items-center\">\n <div class=\"flex flex-row border border-gray-200 rounded-xl p-4 gap-4 w-full\">\n <gn-ui-thumbnail\n class=\"w-[56px] h-[56px] rounded-[4px]\"\n [thumbnailUrl]=\"contact.organization.logoUrl?.href\"\n [fit]=\"'contain'\"\n ></gn-ui-thumbnail>\n <div class=\"flex flex-col w-full\">\n <div class=\"flex flex-row justify-between\">\n <span\n class=\"flex flex-wrap font-bold w-full\"\n data-test=\"contactCardName\"\n >{{ contact.firstName }} {{ contact.lastName }}</span\n >\n </div>\n <div data-test=\"contactCardEmail\">{{ contact.email }}</div>\n </div>\n </div>\n <gn-ui-button\n *ngIf=\"removable\"\n data-test=\"removeContactButton\"\n type=\"light\"\n extraClass=\"w-[20px] h-[20px] flex items-center justify-center\"\n (buttonClick)=\"removeContact(contact)\"\n ><span class=\"material-symbols-outlined\"> close </span>\n </gn-ui-button>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "component", type: ThumbnailComponent, selector: "gn-ui-thumbnail", inputs: ["thumbnailUrl", "fit"], outputs: ["placeholderShown"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
36458
36590
|
}
|
|
36459
36591
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ContactCardComponent, decorators: [{
|
|
36460
36592
|
type: Component,
|
|
36461
|
-
args: [{ selector: 'gn-ui-contact-card', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, MatIconModule, ButtonComponent, ThumbnailComponent], template: "<div class=\"flex flex-row gap-4 items-center\">\n <div class=\"flex flex-row border border-gray-200 rounded-xl p-4 gap-4 w-full\">\n <gn-ui-thumbnail\n class=\"w-[56px] h-[56px] rounded-[4px]\"\n [thumbnailUrl]=\"contact.organization.logoUrl?.href\"\n [fit]=\"'contain'\"\n ></gn-ui-thumbnail>\n <div class=\"flex flex-col w-full\">\n <div class=\"flex flex-row justify-between\">\n <span
|
|
36593
|
+
args: [{ selector: 'gn-ui-contact-card', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, MatIconModule, ButtonComponent, ThumbnailComponent], template: "<div class=\"flex flex-row gap-4 items-center\">\n <div class=\"flex flex-row border border-gray-200 rounded-xl p-4 gap-4 w-full\">\n <gn-ui-thumbnail\n class=\"w-[56px] h-[56px] rounded-[4px]\"\n [thumbnailUrl]=\"contact.organization.logoUrl?.href\"\n [fit]=\"'contain'\"\n ></gn-ui-thumbnail>\n <div class=\"flex flex-col w-full\">\n <div class=\"flex flex-row justify-between\">\n <span\n class=\"flex flex-wrap font-bold w-full\"\n data-test=\"contactCardName\"\n >{{ contact.firstName }} {{ contact.lastName }}</span\n >\n </div>\n <div data-test=\"contactCardEmail\">{{ contact.email }}</div>\n </div>\n </div>\n <gn-ui-button\n *ngIf=\"removable\"\n data-test=\"removeContactButton\"\n type=\"light\"\n extraClass=\"w-[20px] h-[20px] flex items-center justify-center\"\n (buttonClick)=\"removeContact(contact)\"\n ><span class=\"material-symbols-outlined\"> close </span>\n </gn-ui-button>\n</div>\n" }]
|
|
36462
36594
|
}], propDecorators: { contact: [{
|
|
36463
36595
|
type: Input
|
|
36464
36596
|
}], removable: [{
|
|
@@ -36468,11 +36600,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
36468
36600
|
}] } });
|
|
36469
36601
|
|
|
36470
36602
|
class FormFieldContactsForResourceComponent {
|
|
36471
|
-
constructor(platformServiceInterface, organizationsServiceInterface
|
|
36603
|
+
constructor(platformServiceInterface, organizationsServiceInterface) {
|
|
36472
36604
|
this.platformServiceInterface = platformServiceInterface;
|
|
36473
36605
|
this.organizationsServiceInterface = organizationsServiceInterface;
|
|
36474
|
-
this.
|
|
36475
|
-
this.subscription = new Subscription();
|
|
36606
|
+
this.valueChange = new EventEmitter();
|
|
36476
36607
|
this.contactsForRessourceByRole = new Map();
|
|
36477
36608
|
this.contactsAsDynElemByRole = new Map();
|
|
36478
36609
|
this.rolesToPick = [
|
|
@@ -36493,24 +36624,21 @@ class FormFieldContactsForResourceComponent {
|
|
|
36493
36624
|
*/
|
|
36494
36625
|
this.autoCompleteAction = (query) => {
|
|
36495
36626
|
const fuzzyFilter = createFuzzyFilter(query);
|
|
36496
|
-
return this.
|
|
36627
|
+
return this.platformServiceInterface.getUsers().pipe(switchMap((users) => [
|
|
36497
36628
|
users.filter((user) => fuzzyFilter(user.username)),
|
|
36498
36629
|
]), map$1((results) => results.slice(0, 10)), debounceTime$1(300), distinctUntilChanged$1());
|
|
36499
36630
|
};
|
|
36500
|
-
|
|
36631
|
+
}
|
|
36632
|
+
ngOnChanges() {
|
|
36633
|
+
this.updateContactsForRessource();
|
|
36634
|
+
this.manageRoleSectionsToDisplay(this.value);
|
|
36635
|
+
this.filterRolesToPick();
|
|
36501
36636
|
}
|
|
36502
36637
|
async ngOnInit() {
|
|
36503
36638
|
this.allOrganizations = new Map((await firstValueFrom(this.organizationsServiceInterface.organisations$)).map((organization) => [organization.name, organization]));
|
|
36504
36639
|
this.updateContactsForRessource();
|
|
36505
|
-
this.manageRoleSectionsToDisplay(this.
|
|
36640
|
+
this.manageRoleSectionsToDisplay(this.value);
|
|
36506
36641
|
this.filterRolesToPick();
|
|
36507
|
-
this.changeDetectorRef.markForCheck();
|
|
36508
|
-
this.subscription.add(this.control.valueChanges.subscribe((contactsForResource) => {
|
|
36509
|
-
this.updateContactsForRessource();
|
|
36510
|
-
this.manageRoleSectionsToDisplay(contactsForResource);
|
|
36511
|
-
this.filterRolesToPick();
|
|
36512
|
-
this.changeDetectorRef.markForCheck();
|
|
36513
|
-
}));
|
|
36514
36642
|
}
|
|
36515
36643
|
addRoleToDisplay(roleToAdd) {
|
|
36516
36644
|
this.roleSectionsToDisplay.push(roleToAdd);
|
|
@@ -36520,7 +36648,7 @@ class FormFieldContactsForResourceComponent {
|
|
|
36520
36648
|
this.rolesToPick = this.rolesToPick.filter((role) => !this.roleSectionsToDisplay.includes(role));
|
|
36521
36649
|
}
|
|
36522
36650
|
updateContactsForRessource() {
|
|
36523
|
-
this.contactsForRessourceByRole = this.
|
|
36651
|
+
this.contactsForRessourceByRole = this.value.reduce((acc, contact) => {
|
|
36524
36652
|
const completeOrganization = this.allOrganizations.get(contact.organization.name);
|
|
36525
36653
|
const updatedContact = {
|
|
36526
36654
|
...contact,
|
|
@@ -36533,7 +36661,7 @@ class FormFieldContactsForResourceComponent {
|
|
|
36533
36661
|
acc.get(contact.role).push(updatedContact);
|
|
36534
36662
|
return acc;
|
|
36535
36663
|
}, new Map());
|
|
36536
|
-
this.contactsAsDynElemByRole = this.
|
|
36664
|
+
this.contactsAsDynElemByRole = this.value.reduce((acc, contact) => {
|
|
36537
36665
|
const completeOrganization = this.allOrganizations.get(contact.organization.name);
|
|
36538
36666
|
const updatedContact = {
|
|
36539
36667
|
...contact,
|
|
@@ -36553,7 +36681,6 @@ class FormFieldContactsForResourceComponent {
|
|
|
36553
36681
|
acc.get(contact.role).push(contactAsDynElem);
|
|
36554
36682
|
return acc;
|
|
36555
36683
|
}, new Map());
|
|
36556
|
-
this.changeDetectorRef.markForCheck();
|
|
36557
36684
|
}
|
|
36558
36685
|
manageRoleSectionsToDisplay(contactsForResource) {
|
|
36559
36686
|
const roles = contactsForResource.map((contact) => contact.role);
|
|
@@ -36564,15 +36691,15 @@ class FormFieldContactsForResourceComponent {
|
|
|
36564
36691
|
});
|
|
36565
36692
|
}
|
|
36566
36693
|
removeContact(index) {
|
|
36567
|
-
const newContactsforRessource = this.
|
|
36568
|
-
this.
|
|
36694
|
+
const newContactsforRessource = this.value.filter((_, i) => i !== index);
|
|
36695
|
+
this.valueChange.emit(newContactsforRessource);
|
|
36569
36696
|
}
|
|
36570
36697
|
handleContactsChanged(event) {
|
|
36571
36698
|
const newContactsOrdered = event.map((contactAsDynElem) => contactAsDynElem.inputs['contact']);
|
|
36572
36699
|
const role = newContactsOrdered[0].role;
|
|
36573
36700
|
this.contactsForRessourceByRole.set(role, newContactsOrdered);
|
|
36574
36701
|
const newControlValue = Array.from(this.contactsForRessourceByRole.values()).flat();
|
|
36575
|
-
this.
|
|
36702
|
+
this.valueChange.emit(newControlValue);
|
|
36576
36703
|
}
|
|
36577
36704
|
roleToLabel(role) {
|
|
36578
36705
|
return RoleLabels.get(role);
|
|
@@ -36581,25 +36708,23 @@ class FormFieldContactsForResourceComponent {
|
|
|
36581
36708
|
* gn-ui-autocomplete
|
|
36582
36709
|
*/
|
|
36583
36710
|
addContact(contact, role) {
|
|
36711
|
+
const newContact = contact;
|
|
36584
36712
|
const newContactsForRessource = {
|
|
36585
|
-
firstName:
|
|
36586
|
-
lastName:
|
|
36587
|
-
organization: this.allOrganizations.get(
|
|
36588
|
-
{ name:
|
|
36589
|
-
email:
|
|
36713
|
+
firstName: newContact.name ?? '',
|
|
36714
|
+
lastName: newContact.surname ?? '',
|
|
36715
|
+
organization: this.allOrganizations.get(newContact.organisation) ??
|
|
36716
|
+
{ name: newContact.organisation },
|
|
36717
|
+
email: newContact.email ?? '',
|
|
36590
36718
|
role,
|
|
36591
36719
|
address: '',
|
|
36592
36720
|
phone: '',
|
|
36593
36721
|
position: '',
|
|
36594
36722
|
};
|
|
36595
|
-
const newControlValue = [...this.
|
|
36596
|
-
this.
|
|
36597
|
-
}
|
|
36598
|
-
ngOnDestroy() {
|
|
36599
|
-
this.subscription.unsubscribe();
|
|
36723
|
+
const newControlValue = [...this.value, newContactsForRessource];
|
|
36724
|
+
this.valueChange.emit(newControlValue);
|
|
36600
36725
|
}
|
|
36601
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldContactsForResourceComponent, deps: [{ token: PlatformServiceInterface }, { token: OrganizationsServiceInterface }
|
|
36602
|
-
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: {
|
|
36726
|
+
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 }); }
|
|
36727
|
+
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\n extraClass=\"px-2 py-1.5\"\n (buttonClick)=\"addRoleToDisplay(role)\"\n >\n <div class=\"flex flex-row gap-1 items-center\">\n <span class=\"text-primary text-[20px] leading-[0] font-bold pb-[5px]\"\n >₊</span\n >\n <span class=\"font-bold\" translate>{{ roleToLabel(role) }}</span>\n </div>\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 >\n </gn-ui-autocomplete>\n\n <ng-container *ngIf=\"contactsForRessourceByRole.get(role) as contacts\">\n <ng-container *ngIf=\"contacts.length > 1\">\n <gn-ui-sortable-list\n [elements]=\"contactsAsDynElemByRole.get(role)\"\n (elementsChange)=\"handleContactsChanged($event)\"\n ></gn-ui-sortable-list>\n </ng-container>\n <ng-container *ngIf=\"contacts.length === 1\">\n <ng-container *ngFor=\"let contact of contacts\">\n <gn-ui-contact-card\n [contact]=\"contact\"\n (contactRemoved)=\"removeContact(index)\"\n ></gn-ui-contact-card> </ng-container\n ></ng-container>\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: [""], 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", "removable"], outputs: ["contactRemoved"] }, { kind: "component", type: SortableListComponent, selector: "gn-ui-sortable-list", inputs: ["elements"], outputs: ["elementsChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
36603
36728
|
}
|
|
36604
36729
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldContactsForResourceComponent, decorators: [{
|
|
36605
36730
|
type: Component,
|
|
@@ -36613,118 +36738,316 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
36613
36738
|
ContactCardComponent,
|
|
36614
36739
|
SortableListComponent,
|
|
36615
36740
|
], 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\n extraClass=\"px-2 py-1.5\"\n (buttonClick)=\"addRoleToDisplay(role)\"\n >\n <div class=\"flex flex-row gap-1 items-center\">\n <span class=\"text-primary text-[20px] leading-[0] font-bold pb-[5px]\"\n >₊</span\n >\n <span class=\"font-bold\" translate>{{ roleToLabel(role) }}</span>\n </div>\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 >\n </gn-ui-autocomplete>\n\n <ng-container *ngIf=\"contactsForRessourceByRole.get(role) as contacts\">\n <ng-container *ngIf=\"contacts.length > 1\">\n <gn-ui-sortable-list\n [elements]=\"contactsAsDynElemByRole.get(role)\"\n (elementsChange)=\"handleContactsChanged($event)\"\n ></gn-ui-sortable-list>\n </ng-container>\n <ng-container *ngIf=\"contacts.length === 1\">\n <ng-container *ngFor=\"let contact of contacts\">\n <gn-ui-contact-card\n [contact]=\"contact\"\n (contactRemoved)=\"removeContact(index)\"\n ></gn-ui-contact-card> </ng-container\n ></ng-container>\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" }]
|
|
36616
|
-
}], ctorParameters: function () { return [{ type: PlatformServiceInterface }, { type: OrganizationsServiceInterface }
|
|
36741
|
+
}], ctorParameters: function () { return [{ type: PlatformServiceInterface }, { type: OrganizationsServiceInterface }]; }, propDecorators: { value: [{
|
|
36742
|
+
type: Input
|
|
36743
|
+
}], valueChange: [{
|
|
36744
|
+
type: Output
|
|
36745
|
+
}] } });
|
|
36746
|
+
|
|
36747
|
+
class OverviewUploadComponent {
|
|
36748
|
+
set overview(value) {
|
|
36749
|
+
this._overview = value;
|
|
36750
|
+
if (this._overview) {
|
|
36751
|
+
this.recordsApiService.getAllResources(this.metadataUuid).subscribe({
|
|
36752
|
+
next: (resources) => {
|
|
36753
|
+
const resource = resources.find((r) => r.url === this._overview.url.toString());
|
|
36754
|
+
if (resource) {
|
|
36755
|
+
this.resourceFileName = resource.filename;
|
|
36756
|
+
}
|
|
36757
|
+
},
|
|
36758
|
+
error: this.errorHandle,
|
|
36759
|
+
});
|
|
36760
|
+
this.resourceUrl = this._overview.url.toString();
|
|
36761
|
+
this.altText = this._overview.description;
|
|
36762
|
+
}
|
|
36763
|
+
else {
|
|
36764
|
+
this.resourceUrl = '';
|
|
36765
|
+
this.resourceFileName = '';
|
|
36766
|
+
this.altText = '';
|
|
36767
|
+
}
|
|
36768
|
+
}
|
|
36769
|
+
constructor(recordsApiService, notificationsService, translateService) {
|
|
36770
|
+
this.recordsApiService = recordsApiService;
|
|
36771
|
+
this.notificationsService = notificationsService;
|
|
36772
|
+
this.translateService = translateService;
|
|
36773
|
+
this.overviewChange = new EventEmitter();
|
|
36774
|
+
this.errorHandle = (error) => {
|
|
36775
|
+
this.notificationsService.showNotification({
|
|
36776
|
+
type: 'error',
|
|
36777
|
+
title: this.translateService.instant('editor.record.resourceError.title'),
|
|
36778
|
+
text: `${this.translateService.instant('editor.record.resourceError.body')} ${error.message}`,
|
|
36779
|
+
closeMessage: this.translateService.instant('editor.record.resourceError.closeMessage'),
|
|
36780
|
+
});
|
|
36781
|
+
};
|
|
36782
|
+
}
|
|
36783
|
+
handleFileChange(file) {
|
|
36784
|
+
this.recordsApiService
|
|
36785
|
+
.putResource(this.metadataUuid, file, 'public')
|
|
36786
|
+
.subscribe({
|
|
36787
|
+
next: (resource) => {
|
|
36788
|
+
this.overviewChange.emit({
|
|
36789
|
+
url: new URL(resource.url),
|
|
36790
|
+
description: resource.filename,
|
|
36791
|
+
});
|
|
36792
|
+
},
|
|
36793
|
+
error: this.errorHandle,
|
|
36794
|
+
});
|
|
36795
|
+
}
|
|
36796
|
+
handleUrlChange(url) {
|
|
36797
|
+
this.recordsApiService
|
|
36798
|
+
.putResourceFromURL(this.metadataUuid, url, 'public')
|
|
36799
|
+
.subscribe({
|
|
36800
|
+
next: (resource) => {
|
|
36801
|
+
this.overviewChange.emit({
|
|
36802
|
+
url: new URL(resource.url),
|
|
36803
|
+
description: resource.filename,
|
|
36804
|
+
});
|
|
36805
|
+
},
|
|
36806
|
+
error: this.errorHandle,
|
|
36807
|
+
});
|
|
36808
|
+
}
|
|
36809
|
+
handleAltTextChange(newAltText) {
|
|
36810
|
+
this.overviewChange.emit({
|
|
36811
|
+
url: new URL(this.resourceUrl),
|
|
36812
|
+
description: newAltText,
|
|
36813
|
+
});
|
|
36814
|
+
}
|
|
36815
|
+
handleDelete() {
|
|
36816
|
+
this.overviewChange.emit(null);
|
|
36817
|
+
}
|
|
36818
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OverviewUploadComponent, deps: [{ token: RecordsApiService }, { token: NotificationsService }, { token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
36819
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: OverviewUploadComponent, isStandalone: true, selector: "gn-ui-overview-upload", inputs: { metadataUuid: "metadataUuid", overview: "overview" }, outputs: { overviewChange: "overviewChange" }, ngImport: i0, template: "<gn-ui-image-input\n [maxSizeMB]=\"5\"\n [previewUrl]=\"resourceUrl\"\n [altText]=\"altText\"\n (fileChange)=\"handleFileChange($event)\"\n (urlChange)=\"handleUrlChange($event)\"\n (altTextChange)=\"handleAltTextChange($event)\"\n (delete)=\"handleDelete()\"\n></gn-ui-image-input>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: UiInputsModule }, { kind: "component", type: ImageInputComponent, selector: "gn-ui-image-input", inputs: ["maxSizeMB", "previewUrl", "altText", "uploadProgress", "uploadError"], outputs: ["fileChange", "urlChange", "uploadCancel", "delete", "altTextChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
36820
|
+
}
|
|
36821
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OverviewUploadComponent, decorators: [{
|
|
36822
|
+
type: Component,
|
|
36823
|
+
args: [{ selector: 'gn-ui-overview-upload', standalone: true, imports: [CommonModule, UiInputsModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<gn-ui-image-input\n [maxSizeMB]=\"5\"\n [previewUrl]=\"resourceUrl\"\n [altText]=\"altText\"\n (fileChange)=\"handleFileChange($event)\"\n (urlChange)=\"handleUrlChange($event)\"\n (altTextChange)=\"handleAltTextChange($event)\"\n (delete)=\"handleDelete()\"\n></gn-ui-image-input>\n" }]
|
|
36824
|
+
}], ctorParameters: function () { return [{ type: RecordsApiService }, { type: NotificationsService }, { type: i1$1.TranslateService }]; }, propDecorators: { metadataUuid: [{
|
|
36617
36825
|
type: Input
|
|
36826
|
+
}], overview: [{
|
|
36827
|
+
type: Input
|
|
36828
|
+
}], overviewChange: [{
|
|
36829
|
+
type: Output
|
|
36830
|
+
}] } });
|
|
36831
|
+
|
|
36832
|
+
class FormFieldOverviewsComponent {
|
|
36833
|
+
constructor() {
|
|
36834
|
+
this.valueChange = new EventEmitter();
|
|
36835
|
+
}
|
|
36836
|
+
get firstOverview() {
|
|
36837
|
+
return this.value[0];
|
|
36838
|
+
}
|
|
36839
|
+
handleOverviewChange(overView) {
|
|
36840
|
+
this.valueChange.emit(overView ? [overView] : []);
|
|
36841
|
+
}
|
|
36842
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldOverviewsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
36843
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormFieldOverviewsComponent, isStandalone: true, selector: "gn-ui-form-field-overviews", inputs: { metadataUuid: "metadataUuid", value: "value" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<gn-ui-overview-upload\n [metadataUuid]=\"metadataUuid\"\n [overview]=\"firstOverview\"\n (overviewChange)=\"handleOverviewChange($event)\"\n></gn-ui-overview-upload>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: OverviewUploadComponent, selector: "gn-ui-overview-upload", inputs: ["metadataUuid", "overview"], outputs: ["overviewChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
36844
|
+
}
|
|
36845
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldOverviewsComponent, decorators: [{
|
|
36846
|
+
type: Component,
|
|
36847
|
+
args: [{ selector: 'gn-ui-form-field-overviews', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, OverviewUploadComponent], template: "<gn-ui-overview-upload\n [metadataUuid]=\"metadataUuid\"\n [overview]=\"firstOverview\"\n (overviewChange)=\"handleOverviewChange($event)\"\n></gn-ui-overview-upload>\n" }]
|
|
36848
|
+
}], propDecorators: { metadataUuid: [{
|
|
36849
|
+
type: Input
|
|
36850
|
+
}], value: [{
|
|
36851
|
+
type: Input
|
|
36852
|
+
}], valueChange: [{
|
|
36853
|
+
type: Output
|
|
36854
|
+
}] } });
|
|
36855
|
+
|
|
36856
|
+
class FormFieldUpdateFrequencyComponent {
|
|
36857
|
+
get planned() {
|
|
36858
|
+
return typeof this.value !== 'string';
|
|
36859
|
+
}
|
|
36860
|
+
constructor(translateService) {
|
|
36861
|
+
this.translateService = translateService;
|
|
36862
|
+
this.valueChange = new EventEmitter();
|
|
36863
|
+
this.choices = [];
|
|
36864
|
+
}
|
|
36865
|
+
async ngOnInit() {
|
|
36866
|
+
this.choices = await this.getInitialChoices();
|
|
36867
|
+
if (typeof this.value === 'string') {
|
|
36868
|
+
return;
|
|
36869
|
+
}
|
|
36870
|
+
const updatedTimes = this.value.updatedTimes;
|
|
36871
|
+
const per = this.value.per;
|
|
36872
|
+
// the update frequency is not in the list; make it appear there
|
|
36873
|
+
if (updatedTimes && updatedTimes !== 1 && updatedTimes !== 2) {
|
|
36874
|
+
this.choices = [
|
|
36875
|
+
{
|
|
36876
|
+
value: `${per}.${updatedTimes}`,
|
|
36877
|
+
label: await firstValueFrom(this.translateService.get(`domain.record.updateFrequency.${per}`, {
|
|
36878
|
+
count: updatedTimes,
|
|
36879
|
+
})),
|
|
36880
|
+
},
|
|
36881
|
+
...this.choices,
|
|
36882
|
+
];
|
|
36883
|
+
}
|
|
36884
|
+
}
|
|
36885
|
+
onPlannedToggled() {
|
|
36886
|
+
if (this.planned) {
|
|
36887
|
+
this.valueChange.emit('notPlanned');
|
|
36888
|
+
}
|
|
36889
|
+
else {
|
|
36890
|
+
this.valueChange.emit({ updatedTimes: 1, per: 'day' });
|
|
36891
|
+
}
|
|
36892
|
+
}
|
|
36893
|
+
get selectedFrequency() {
|
|
36894
|
+
if (typeof this.value === 'string')
|
|
36895
|
+
return null;
|
|
36896
|
+
const { updatedTimes, per } = this.value;
|
|
36897
|
+
return `${per}.${updatedTimes}`;
|
|
36898
|
+
}
|
|
36899
|
+
onSelectFrequencyValue(value) {
|
|
36900
|
+
const split = value.split('.');
|
|
36901
|
+
this.valueChange.emit({
|
|
36902
|
+
updatedTimes: Number(split[1]),
|
|
36903
|
+
per: split[0],
|
|
36904
|
+
});
|
|
36905
|
+
}
|
|
36906
|
+
async getInitialChoices() {
|
|
36907
|
+
return [
|
|
36908
|
+
{
|
|
36909
|
+
value: 'day.1',
|
|
36910
|
+
label: await firstValueFrom(this.translateService.get('domain.record.updateFrequency.day', {
|
|
36911
|
+
count: 1,
|
|
36912
|
+
})),
|
|
36913
|
+
},
|
|
36914
|
+
{
|
|
36915
|
+
value: 'day.2',
|
|
36916
|
+
label: await firstValueFrom(this.translateService.get('domain.record.updateFrequency.day', {
|
|
36917
|
+
count: 2,
|
|
36918
|
+
})),
|
|
36919
|
+
},
|
|
36920
|
+
{
|
|
36921
|
+
value: 'week.1',
|
|
36922
|
+
label: await firstValueFrom(this.translateService.get('domain.record.updateFrequency.week', {
|
|
36923
|
+
count: 1,
|
|
36924
|
+
})),
|
|
36925
|
+
},
|
|
36926
|
+
{
|
|
36927
|
+
value: 'week.2',
|
|
36928
|
+
label: await firstValueFrom(this.translateService.get('domain.record.updateFrequency.week', {
|
|
36929
|
+
count: 2,
|
|
36930
|
+
})),
|
|
36931
|
+
},
|
|
36932
|
+
{
|
|
36933
|
+
value: 'month.1',
|
|
36934
|
+
label: await firstValueFrom(this.translateService.get('domain.record.updateFrequency.month', {
|
|
36935
|
+
count: 1,
|
|
36936
|
+
})),
|
|
36937
|
+
},
|
|
36938
|
+
{
|
|
36939
|
+
value: 'month.2',
|
|
36940
|
+
label: await firstValueFrom(this.translateService.get('domain.record.updateFrequency.month', {
|
|
36941
|
+
count: 2,
|
|
36942
|
+
})),
|
|
36943
|
+
},
|
|
36944
|
+
{
|
|
36945
|
+
value: 'year.1',
|
|
36946
|
+
label: await firstValueFrom(this.translateService.get('domain.record.updateFrequency.year', {
|
|
36947
|
+
count: 1,
|
|
36948
|
+
})),
|
|
36949
|
+
},
|
|
36950
|
+
{
|
|
36951
|
+
value: 'year.2',
|
|
36952
|
+
label: await firstValueFrom(this.translateService.get('domain.record.updateFrequency.year', {
|
|
36953
|
+
count: 2,
|
|
36954
|
+
})),
|
|
36955
|
+
},
|
|
36956
|
+
];
|
|
36957
|
+
}
|
|
36958
|
+
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 }); }
|
|
36959
|
+
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 [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", styles: [""], 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 }); }
|
|
36960
|
+
}
|
|
36961
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldUpdateFrequencyComponent, decorators: [{
|
|
36962
|
+
type: Component,
|
|
36963
|
+
args: [{ selector: 'gn-ui-form-field-update-frequency', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CheckToggleComponent, DropdownSelectorComponent, TranslateModule], template: "<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" }]
|
|
36964
|
+
}], ctorParameters: function () { return [{ type: i1$1.TranslateService }]; }, propDecorators: { value: [{
|
|
36965
|
+
type: Input
|
|
36966
|
+
}], valueChange: [{
|
|
36967
|
+
type: Output
|
|
36618
36968
|
}] } });
|
|
36619
36969
|
|
|
36620
36970
|
class FormFieldOpenDataComponent {
|
|
36621
36971
|
constructor() {
|
|
36622
|
-
this.
|
|
36623
|
-
this.
|
|
36972
|
+
this.valueChange = new EventEmitter();
|
|
36973
|
+
this.openDataChange = new EventEmitter();
|
|
36974
|
+
this.openData = false;
|
|
36624
36975
|
}
|
|
36625
36976
|
get config() {
|
|
36626
36977
|
return OPEN_DATA_LICENSES;
|
|
36627
36978
|
}
|
|
36628
|
-
|
|
36629
|
-
this.
|
|
36630
|
-
|
|
36631
|
-
|
|
36632
|
-
|
|
36633
|
-
this.
|
|
36634
|
-
}
|
|
36635
|
-
|
|
36636
|
-
initToggle() {
|
|
36637
|
-
this.value = this.config.includes(this.control.value[0].text);
|
|
36638
|
-
this.visibilityChange.emit(this.value);
|
|
36979
|
+
ngOnChanges() {
|
|
36980
|
+
if (this.value && this.value.length > 0) {
|
|
36981
|
+
this.openData = this.config.includes(this.value[0].text);
|
|
36982
|
+
}
|
|
36983
|
+
else {
|
|
36984
|
+
this.openData = false;
|
|
36985
|
+
}
|
|
36986
|
+
this.openDataChange.emit(this.openData);
|
|
36639
36987
|
}
|
|
36640
|
-
onOpenDataToggled(
|
|
36641
|
-
|
|
36642
|
-
|
|
36988
|
+
onOpenDataToggled(openData) {
|
|
36989
|
+
this.openDataChange.emit(openData);
|
|
36990
|
+
if (openData) {
|
|
36991
|
+
this.valueChange.emit([{ text: this.config[0] }]);
|
|
36643
36992
|
}
|
|
36644
|
-
this.value = !this.value;
|
|
36645
|
-
this.visibilityChange.emit(boolean);
|
|
36646
36993
|
}
|
|
36647
36994
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldOpenDataComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
36648
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormFieldOpenDataComponent, isStandalone: true, selector: "gn-ui-form-field-open-data", inputs: {
|
|
36995
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormFieldOpenDataComponent, isStandalone: true, selector: "gn-ui-form-field-open-data", inputs: { value: "value" }, outputs: { valueChange: "valueChange", openDataChange: "openDataChange" }, usesOnChanges: true, ngImport: i0, template: "<gn-ui-check-toggle\n [label]=\"'editor.record.form.classification.opendata' | translate\"\n [value]=\"openData\"\n (toggled)=\"onOpenDataToggled($event)\"\n data-cy=\"openDataToggle\"\n></gn-ui-check-toggle>\n", styles: [""], dependencies: [{ kind: "component", type: CheckToggleComponent, selector: "gn-ui-check-toggle", inputs: ["title", "label", "value", "color"], outputs: ["toggled"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
36649
36996
|
}
|
|
36650
36997
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldOpenDataComponent, decorators: [{
|
|
36651
36998
|
type: Component,
|
|
36652
|
-
args: [{ selector: 'gn-ui-form-field-open-data', standalone: true, imports: [CheckToggleComponent, TranslateModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<gn-ui-check-toggle\n [label]=\"'editor.record.form.classification.opendata' | translate\"\n [value]=\"
|
|
36653
|
-
}], propDecorators: {
|
|
36999
|
+
args: [{ selector: 'gn-ui-form-field-open-data', standalone: true, imports: [CheckToggleComponent, TranslateModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<gn-ui-check-toggle\n [label]=\"'editor.record.form.classification.opendata' | translate\"\n [value]=\"openData\"\n (toggled)=\"onOpenDataToggled($event)\"\n data-cy=\"openDataToggle\"\n></gn-ui-check-toggle>\n" }]
|
|
37000
|
+
}], propDecorators: { value: [{
|
|
36654
37001
|
type: Input
|
|
36655
|
-
}],
|
|
37002
|
+
}], valueChange: [{
|
|
37003
|
+
type: Output
|
|
37004
|
+
}], openDataChange: [{
|
|
36656
37005
|
type: Output
|
|
36657
37006
|
}] } });
|
|
36658
37007
|
|
|
36659
37008
|
class FormFieldComponent {
|
|
36660
|
-
|
|
36661
|
-
this.
|
|
36662
|
-
emitEvent: false,
|
|
36663
|
-
});
|
|
36664
|
-
}
|
|
36665
|
-
constructor(facade) {
|
|
36666
|
-
this.facade = facade;
|
|
37009
|
+
constructor() {
|
|
37010
|
+
this.valueChange = new EventEmitter();
|
|
36667
37011
|
this.isHidden = false;
|
|
36668
|
-
this.metadataUuid$ = this.facade.record$.pipe(take(1), map$1((record) => record.uniqueIdentifier));
|
|
36669
|
-
this.formControl = new FormControl();
|
|
36670
|
-
this.valueChange = this.formControl.valueChanges;
|
|
36671
37012
|
}
|
|
36672
37013
|
focusTitleInput() {
|
|
36673
37014
|
this.titleInput.nativeElement.children[0].focus();
|
|
36674
37015
|
}
|
|
36675
|
-
|
|
36676
|
-
this.
|
|
36677
|
-
}
|
|
36678
|
-
get isTitle() {
|
|
36679
|
-
return this.model === 'title';
|
|
36680
|
-
}
|
|
36681
|
-
get isAbstract() {
|
|
36682
|
-
return this.model === 'abstract';
|
|
36683
|
-
}
|
|
36684
|
-
get isLicenses() {
|
|
36685
|
-
return this.model === 'licenses';
|
|
36686
|
-
}
|
|
36687
|
-
get isResourceUpdated() {
|
|
36688
|
-
return this.model === 'resourceUpdated';
|
|
36689
|
-
}
|
|
36690
|
-
get isUpdateFrequency() {
|
|
36691
|
-
return this.model === 'updateFrequency';
|
|
36692
|
-
}
|
|
36693
|
-
get isTemporalExtents() {
|
|
36694
|
-
return this.model === 'temporalExtents';
|
|
37016
|
+
get withoutWrapper() {
|
|
37017
|
+
return this.model === 'title' || this.model === 'abstract';
|
|
36695
37018
|
}
|
|
36696
|
-
get
|
|
36697
|
-
return this.
|
|
37019
|
+
get valueAsString() {
|
|
37020
|
+
return this.value;
|
|
36698
37021
|
}
|
|
36699
|
-
get
|
|
36700
|
-
return this.
|
|
37022
|
+
get valueAsDate() {
|
|
37023
|
+
return this.value;
|
|
36701
37024
|
}
|
|
36702
|
-
get
|
|
36703
|
-
return this.
|
|
37025
|
+
get valueAsOverviews() {
|
|
37026
|
+
return this.value;
|
|
36704
37027
|
}
|
|
36705
|
-
get
|
|
36706
|
-
return this.
|
|
37028
|
+
get valueAsUpdateFrequency() {
|
|
37029
|
+
return this.value;
|
|
36707
37030
|
}
|
|
36708
|
-
get
|
|
36709
|
-
return this.
|
|
37031
|
+
get valueAsTemporalExtents() {
|
|
37032
|
+
return this.value;
|
|
36710
37033
|
}
|
|
36711
|
-
get
|
|
36712
|
-
return this.
|
|
37034
|
+
get valueAsKeywords() {
|
|
37035
|
+
return this.value;
|
|
36713
37036
|
}
|
|
36714
|
-
get
|
|
36715
|
-
return this.
|
|
37037
|
+
get valueAsConstraints() {
|
|
37038
|
+
return this.value;
|
|
36716
37039
|
}
|
|
36717
|
-
get
|
|
36718
|
-
return this.
|
|
37040
|
+
get valueAsIndividuals() {
|
|
37041
|
+
return this.value;
|
|
36719
37042
|
}
|
|
36720
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldComponent, deps: [
|
|
36721
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormFieldComponent, isStandalone: true, selector: "gn-ui-form-field", inputs: { model: "model", config: "config", value: "value" }, outputs: { valueChange: "valueChange" }, viewQueries: [{ propertyName: "titleInput", first: true, predicate: ["titleInput"], descendants: true }], ngImport: i0, template: "<ng-container *ngIf=\"
|
|
37043
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
37044
|
+
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", 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 justify-between items-center gap-3\">\n <span\n #titleInput\n class=\"grow font-title text-3xl font-normal\"\n [gnUiEditableLabel]=\"valueAsString\"\n (editableLabelChanged)=\"valueChange.emit($event)\"\n ></span>\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 </ng-container>\n <ng-container *ngSwitchCase=\"'abstract'\">\n <gn-ui-form-field-rich\n class=\"h-[8rem]\"\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-resource-updated\n [value]=\"valueAsDate\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-resource-updated>\n </ng-container>\n <ng-container *ngSwitchCase=\"'recordUpdated'\">\n <gn-ui-form-field-simple\n type=\"date\"\n [readonly]=\"true\"\n [value]=\"valueAsDate\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-simple>\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>\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: FormFieldResourceUpdatedComponent, selector: "gn-ui-form-field-resource-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", "helperText", "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"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
36722
37045
|
}
|
|
36723
37046
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldComponent, decorators: [{
|
|
36724
37047
|
type: Component,
|
|
36725
37048
|
args: [{ selector: 'gn-ui-form-field', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
36726
37049
|
CommonModule,
|
|
36727
|
-
|
|
37050
|
+
TranslateModule,
|
|
36728
37051
|
EditableLabelDirective,
|
|
36729
37052
|
MatIconModule,
|
|
36730
37053
|
MatTooltipModule,
|
|
@@ -36740,12 +37063,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
36740
37063
|
FormFieldFileComponent,
|
|
36741
37064
|
FormFieldArrayComponent,
|
|
36742
37065
|
FormFieldKeywordsComponent,
|
|
36743
|
-
TranslateModule,
|
|
36744
37066
|
FormFieldOverviewsComponent,
|
|
36745
37067
|
FormFieldContactsForResourceComponent,
|
|
36746
37068
|
FormFieldOpenDataComponent,
|
|
36747
|
-
], template: "<ng-container *ngIf=\"
|
|
36748
|
-
}],
|
|
37069
|
+
], 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 justify-between items-center gap-3\">\n <span\n #titleInput\n class=\"grow font-title text-3xl font-normal\"\n [gnUiEditableLabel]=\"valueAsString\"\n (editableLabelChanged)=\"valueChange.emit($event)\"\n ></span>\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 </ng-container>\n <ng-container *ngSwitchCase=\"'abstract'\">\n <gn-ui-form-field-rich\n class=\"h-[8rem]\"\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-resource-updated\n [value]=\"valueAsDate\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-resource-updated>\n </ng-container>\n <ng-container *ngSwitchCase=\"'recordUpdated'\">\n <gn-ui-form-field-simple\n type=\"date\"\n [readonly]=\"true\"\n [value]=\"valueAsDate\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-simple>\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>\n</ng-template>\n" }]
|
|
37070
|
+
}], propDecorators: { uniqueIdentifier: [{
|
|
37071
|
+
type: Input
|
|
37072
|
+
}], model: [{
|
|
36749
37073
|
type: Input
|
|
36750
37074
|
}], config: [{
|
|
36751
37075
|
type: Input
|
|
@@ -36761,6 +37085,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
36761
37085
|
class RecordFormComponent {
|
|
36762
37086
|
constructor(facade) {
|
|
36763
37087
|
this.facade = facade;
|
|
37088
|
+
this.recordUniqueIdentifier$ = this.facade.record$.pipe(map$2((record) => record.uniqueIdentifier));
|
|
36764
37089
|
}
|
|
36765
37090
|
handleFieldValueChange(model, newValue) {
|
|
36766
37091
|
if (!model) {
|
|
@@ -36775,11 +37100,11 @@ class RecordFormComponent {
|
|
|
36775
37100
|
return section.labelKey;
|
|
36776
37101
|
}
|
|
36777
37102
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RecordFormComponent, deps: [{ token: EditorFacade }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
36778
|
-
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: "<ng-container>\n <div class=\"flex flex-col gap-6 p-8\">\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-secondary\"\n translate\n >\n {{ section.labelKey }}\n </div>\n <div\n *ngIf=\"section.descriptionKey\"\n class=\"text-secondary-lightest\"\n translate\n >\n {{ section.descriptionKey }}\n </div>\n </div>\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 [model]=\"field.config.model!\"\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 </ng-container>\n </ng-container>\n </div>\n</ng-container>\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: ["model", "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 }); }
|
|
37103
|
+
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: "<ng-container>\n <div class=\"flex flex-col gap-6 p-8\">\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-secondary\"\n translate\n >\n {{ section.labelKey }}\n </div>\n <div\n *ngIf=\"section.descriptionKey\"\n class=\"text-secondary-lightest\"\n translate\n >\n {{ section.descriptionKey }}\n </div>\n </div>\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 [uniqueIdentifier]=\"recordUniqueIdentifier$ | async\"\n [model]=\"field.config.model!\"\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 </ng-container>\n </ng-container>\n </div>\n</ng-container>\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", "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 }); }
|
|
36779
37104
|
}
|
|
36780
37105
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RecordFormComponent, decorators: [{
|
|
36781
37106
|
type: Component,
|
|
36782
|
-
args: [{ selector: 'gn-ui-record-form', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, FormFieldComponent, TranslateModule], template: "<ng-container>\n <div class=\"flex flex-col gap-6 p-8\">\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-secondary\"\n translate\n >\n {{ section.labelKey }}\n </div>\n <div\n *ngIf=\"section.descriptionKey\"\n class=\"text-secondary-lightest\"\n translate\n >\n {{ section.descriptionKey }}\n </div>\n </div>\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 [model]=\"field.config.model!\"\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 </ng-container>\n </ng-container>\n </div>\n</ng-container>\n" }]
|
|
37107
|
+
args: [{ selector: 'gn-ui-record-form', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, FormFieldComponent, TranslateModule], template: "<ng-container>\n <div class=\"flex flex-col gap-6 p-8\">\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-secondary\"\n translate\n >\n {{ section.labelKey }}\n </div>\n <div\n *ngIf=\"section.descriptionKey\"\n class=\"text-secondary-lightest\"\n translate\n >\n {{ section.descriptionKey }}\n </div>\n </div>\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 [uniqueIdentifier]=\"recordUniqueIdentifier$ | async\"\n [model]=\"field.config.model!\"\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 </ng-container>\n </ng-container>\n </div>\n</ng-container>\n" }]
|
|
36783
37108
|
}], ctorParameters: function () { return [{ type: EditorFacade }]; } });
|
|
36784
37109
|
|
|
36785
37110
|
const ROUTER_STATE_KEY = 'router';
|
|
@@ -36829,7 +37154,7 @@ class RouterService {
|
|
|
36829
37154
|
getOrganizationPageRoute() {
|
|
36830
37155
|
return ROUTER_ROUTE_ORGANIZATION;
|
|
36831
37156
|
}
|
|
36832
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RouterService, deps: [{ token: ROUTER_CONFIG }, { token: i1$
|
|
37157
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RouterService, deps: [{ token: ROUTER_CONFIG }, { token: i1$9.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
36833
37158
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RouterService, providedIn: 'root' }); }
|
|
36834
37159
|
}
|
|
36835
37160
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RouterService, decorators: [{
|
|
@@ -36840,7 +37165,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
36840
37165
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
36841
37166
|
type: Inject,
|
|
36842
37167
|
args: [ROUTER_CONFIG]
|
|
36843
|
-
}] }, { type: i1$
|
|
37168
|
+
}] }, { type: i1$9.Router }]; } });
|
|
36844
37169
|
|
|
36845
37170
|
const goAction = createAction('[Router] Go', props());
|
|
36846
37171
|
const backAction = createAction('[Router] Back');
|
|
@@ -37097,12 +37422,12 @@ class RouterEffects {
|
|
|
37097
37422
|
this.navigateBack$ = createEffect(() => this._actions$.pipe(ofType(backAction), tap$1(() => this._location.back())), { dispatch: false });
|
|
37098
37423
|
this.navigateForward$ = createEffect(() => this._actions$.pipe(ofType(forwardAction), tap$1(() => this._location.forward())), { dispatch: false });
|
|
37099
37424
|
}
|
|
37100
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RouterEffects, deps: [{ token: i1$
|
|
37425
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RouterEffects, deps: [{ token: i1$a.Actions }, { token: i1$9.Router }, { token: i1$3.Location }, { token: RouterFacade }, { token: ROUTER_CONFIG }, { token: FieldsService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
37101
37426
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RouterEffects }); }
|
|
37102
37427
|
}
|
|
37103
37428
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RouterEffects, decorators: [{
|
|
37104
37429
|
type: Injectable
|
|
37105
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
37430
|
+
}], ctorParameters: function () { return [{ type: i1$a.Actions }, { type: i1$9.Router }, { type: i1$3.Location }, { type: RouterFacade }, { type: undefined, decorators: [{
|
|
37106
37431
|
type: Inject,
|
|
37107
37432
|
args: [ROUTER_CONFIG]
|
|
37108
37433
|
}] }, { type: FieldsService }]; } });
|
|
@@ -37119,7 +37444,7 @@ class DefaultRouterModule {
|
|
|
37119
37444
|
};
|
|
37120
37445
|
}
|
|
37121
37446
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DefaultRouterModule, deps: [{ token: RouterService }], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
37122
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: DefaultRouterModule, declarations: [SearchRouterContainerDirective], imports: [i1$2.StoreFeatureModule, i3$4.StoreRouterConnectingModule, i1$
|
|
37447
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: DefaultRouterModule, declarations: [SearchRouterContainerDirective], imports: [i1$2.StoreFeatureModule, i3$4.StoreRouterConnectingModule, i1$a.EffectsFeatureModule], exports: [SearchRouterContainerDirective] }); }
|
|
37123
37448
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DefaultRouterModule, providers: [
|
|
37124
37449
|
RouterFacade,
|
|
37125
37450
|
{
|
|
@@ -37162,5 +37487,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
37162
37487
|
* Generated bundle index. Do not edit.
|
|
37163
37488
|
*/
|
|
37164
37489
|
|
|
37165
|
-
export { ADD_RESULTS, ADD_SEARCH, AbstractAction, AbstractSearchField, AddLayerFromCatalogComponent, AddLayerRecordPreviewComponent, AddResults, AddSearch, AnchorLinkDirective, ApiCardComponent, AuthService, AutocompleteComponent, AvatarComponent, AvatarServiceInterface, BLOCK_MODEL_FIXTURE, BadgeComponent, BaseReader, BlockListComponent, ButtonComponent, CLEAR_ERROR, CLEAR_RESULTS, CONFIG_MALFORMED, CONFIG_MINIMAL, CONFIG_MISSING_MANDATORY, CONFIG_OK, CONFIG_UNRECOGNIZED_KEYS, CONFIG_WITH_TRANSLATIONS, CONFIG_WRONG_LANGUAGE_CODE, CarouselComponent, CatalogTitleComponent, ChartComponent, ChartViewComponent, CheckToggleComponent, CheckboxComponent, ChipsInputComponent, ClearError, ClearResults, ColorScaleComponent, ConfirmationDialogComponent, ContentGhostComponent, CopyTextButtonComponent, DEFAULT_BASELAYER_CONTEXT, DEFAULT_GN4_LOGIN_URL, DEFAULT_LANG, DEFAULT_PAGE_SIZE, DEFAULT_RESULTS_LAYOUT_CONFIG, DEFAULT_SEARCH_KEY, DEFAULT_STYLE_FIXTURE, DEFAULT_STYLE_HL_FIXTURE, DEFAULT_VIEW, DataService, DataViewComponent, DataViewPermalinkComponent, DataViewShareComponent, DataViewWebComponentComponent, DatePickerComponent, DateRangePickerComponent, DefaultRouterModule, DownloadItemComponent, DownloadsListComponent, DragAndDropFileInputComponent, DropdownMultiselectComponent, DropdownSelectorComponent, EDITOR_FEATURE_KEY, EMPTY_BLOCK_MODEL_FIXTURE, ES_QUERY_FIELDS_PRIORITY, ES_RESOURCES_VALUES, ES_SOURCE_SUMMARY, EditableLabelDirective, EditorFacade, EditorService, ElasticsearchService, EmbeddedTranslateLoader, ErrorComponent, ErrorType, ExpandablePanelButtonComponent, ExpandablePanelComponent, ExternalViewerButtonComponent, FACET_ITEM_FIXTURE, FEATURE_MAP_OPTIONS, FIELDS_BRIEF, FIELDS_SUMMARY, FILTER_GEOMETRY, FORMATS, FacetBlockComponent, FacetBlockStubComponent, FacetItemComponent, FacetItemStubComponent, FacetListComponent, FacetsContainerComponent, FacetsModule, FavoriteStarComponent, FavoritesService, FeatureAuthModule, FeatureCatalogModule, FeatureDatavizModule, FeatureDetailComponent, FeatureEditorModule, FeatureInfoService, FeatureMapModule, FeatureNotificationsModule, FeatureRecordModule, FeatureSearchModule, FetchError, FieldsService, FigureComponent, FigureContainerComponent, FileTranslateLoader, FilterDropdownComponent, FormFieldWrapperComponent, FullTextSearchField, FuzzySearchComponent, GN_UI_VERSION, GeoTableViewComponent, GeocodingComponent, Gn4Converter, Gn4PlatformMapper, Gn4PlatformService, Gn4Repository, Gn4SettingsService, GravatarService, HttpLoaderFactory, I18nInterceptor, ImageFallbackDirective, 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_CONFIG_FIXTURE, 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, 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, TABLE_ITEM_FIXTURE, TABLE_ITEM_FIXTURE_HAB, 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, UserPreviewComponent, UtilI18nModule, UtilSharedModule, ViewportIntersectorComponent, WEB_COMPONENT_EMBEDDER_URL, WFS_MAX_FEATURES, WizardComponent, WizardFieldComponent, WizardFieldType, WizardService, WizardSummarizeComponent, _reset, addLayer, changeLayerOrder, checkFileFormat, clearLayerError, createFuzzyFilter, currentPage, defaultMapOptions, downgradeImage, downsizeImage, draftSaveSuccess, dragPanCondition, dropEmptyTranslations, editorReducer, 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, loadAppConfig, mapContact, mapKeywords, mapLogo, mapOrganization, mapReducer, markRecordAsChanged, megabytesToBytes, mimeTypeToFormat, mouseWheelZoomCondition, 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, sortByFromString, sortByToString, sortByToStrings, stripHtml, toDate, totalPages, updateLayer, updateRecordField };
|
|
37490
|
+
export { ADD_RESULTS, ADD_SEARCH, AbstractAction, AbstractSearchField, AddLayerFromCatalogComponent, AddLayerRecordPreviewComponent, AddResults, AddSearch, AnchorLinkDirective, ApiCardComponent, AuthService, AutocompleteComponent, AvatarComponent, AvatarServiceInterface, BLOCK_MODEL_FIXTURE, BadgeComponent, BaseReader, BlockListComponent, ButtonComponent, CLEAR_ERROR, CLEAR_RESULTS, CONFIG_MALFORMED, CONFIG_MINIMAL, CONFIG_MISSING_MANDATORY, CONFIG_OK, CONFIG_UNRECOGNIZED_KEYS, CONFIG_WITH_TRANSLATIONS, CONFIG_WRONG_LANGUAGE_CODE, CarouselComponent, CatalogTitleComponent, ChartComponent, ChartViewComponent, CheckToggleComponent, CheckboxComponent, ChipsInputComponent, ClearError, ClearResults, ColorScaleComponent, ConfirmationDialogComponent, ContentGhostComponent, CopyTextButtonComponent, DEFAULT_BASELAYER_CONTEXT, DEFAULT_GN4_LOGIN_URL, DEFAULT_LANG, DEFAULT_PAGE_SIZE, DEFAULT_RESULTS_LAYOUT_CONFIG, DEFAULT_SEARCH_KEY, DEFAULT_STYLE_FIXTURE, DEFAULT_STYLE_HL_FIXTURE, DEFAULT_VIEW, DataService, DataViewComponent, DataViewPermalinkComponent, DataViewShareComponent, DataViewWebComponentComponent, DatePickerComponent, DateRangePickerComponent, DefaultRouterModule, DownloadItemComponent, DownloadsListComponent, DragAndDropFileInputComponent, DropdownMultiselectComponent, DropdownSelectorComponent, EDITOR_FEATURE_KEY, EMPTY_BLOCK_MODEL_FIXTURE, ES_QUERY_FIELDS_PRIORITY, ES_RESOURCES_VALUES, ES_SOURCE_SUMMARY, EditableLabelDirective, EditorFacade, EditorService, ElasticsearchService, EmbeddedTranslateLoader, ErrorComponent, ErrorType, ExpandablePanelButtonComponent, ExpandablePanelComponent, ExternalViewerButtonComponent, FACET_ITEM_FIXTURE, FEATURE_MAP_OPTIONS, FIELDS_BRIEF, FIELDS_SUMMARY, FILTER_GEOMETRY, FORMATS, FacetBlockComponent, FacetBlockStubComponent, FacetItemComponent, FacetItemStubComponent, FacetListComponent, FacetsContainerComponent, FacetsModule, FavoriteStarComponent, FavoritesService, FeatureAuthModule, FeatureCatalogModule, FeatureDatavizModule, FeatureDetailComponent, FeatureEditorModule, FeatureInfoService, FeatureMapModule, FeatureNotificationsModule, FeatureRecordModule, FeatureSearchModule, FetchError, FieldsService, FigureComponent, FigureContainerComponent, FileTranslateLoader, FilterDropdownComponent, FormFieldWrapperComponent, FullTextSearchField, FuzzySearchComponent, GN_UI_VERSION, GeoTableViewComponent, GeocodingComponent, Gn4Converter, Gn4PlatformMapper, Gn4PlatformService, Gn4Repository, Gn4SettingsService, GravatarService, HttpLoaderFactory, I18nInterceptor, ImageFallbackDirective, 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_CONFIG_FIXTURE, 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, 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, TABLE_ITEM_FIXTURE, TABLE_ITEM_FIXTURE_HAB, 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, UserPreviewComponent, UtilI18nModule, UtilSharedModule, ViewportIntersectorComponent, WEB_COMPONENT_EMBEDDER_URL, WFS_MAX_FEATURES, WizardComponent, WizardFieldComponent, WizardFieldType, WizardService, WizardSummarizeComponent, _reset, addLayer, changeLayerOrder, checkFileFormat, clearLayerError, createFuzzyFilter, currentPage, defaultMapOptions, downgradeImage, downsizeImage, draftSaveSuccess, dragPanCondition, dropEmptyTranslations, editorReducer, 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, loadAppConfig, mapContact, mapKeywords, mapLogo, mapOrganization, mapReducer, markRecordAsChanged, megabytesToBytes, mimeTypeToFormat, mouseWheelZoomCondition, 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, sortByFromString, sortByToString, sortByToStrings, stripHtml, toDate, totalPages, undoRecordDraft, updateLayer, updateRecordField };
|
|
37166
37491
|
//# sourceMappingURL=geonetwork-ui.mjs.map
|