geonetwork-ui 2.3.0-dev.c22cb78a → 2.3.0-dev.e07c5606
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.mjs +3 -3
- package/esm2022/libs/api/repository/src/lib/gn4/auth/avatar.service.interface.mjs +1 -1
- package/esm2022/libs/api/repository/src/lib/gn4/auth/gravatar.service.mjs +12 -1
- package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.mjs +36 -3
- package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.mjs +19 -7
- package/esm2022/libs/common/domain/src/lib/model/record/index.mjs +2 -1
- package/esm2022/libs/common/domain/src/lib/model/record/user-feedbacks.model.mjs +2 -0
- package/esm2022/libs/common/domain/src/lib/model/user/index.mjs +2 -0
- package/esm2022/libs/common/domain/src/lib/platform.service.interface.mjs +1 -1
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-license/form-field-license.component.mjs +64 -0
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.mjs +15 -6
- package/esm2022/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.mjs +1 -1
- package/esm2022/libs/feature/editor/src/lib/fields.config.mjs +9 -1
- package/esm2022/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.mjs +1 -1
- package/esm2022/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.mjs +1 -1
- package/esm2022/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.mjs +1 -1
- package/esm2022/libs/feature/record/src/lib/feature-record.module.mjs +4 -4
- package/esm2022/libs/feature/record/src/lib/state/mdview.actions.mjs +22 -4
- package/esm2022/libs/feature/record/src/lib/state/mdview.effects.mjs +37 -10
- package/esm2022/libs/feature/record/src/lib/state/mdview.facade.mjs +22 -7
- package/esm2022/libs/feature/record/src/lib/state/mdview.reducer.mjs +52 -17
- package/esm2022/libs/feature/record/src/lib/state/mdview.selectors.mjs +18 -3
- package/esm2022/libs/feature/router/src/lib/default/state/router.effects.mjs +2 -2
- package/esm2022/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.mjs +2 -2
- package/esm2022/libs/ui/elements/src/lib/record-api-form/record-api-form.component.mjs +1 -1
- package/esm2022/libs/ui/elements/src/lib/ui-elements.module.mjs +10 -2
- package/esm2022/libs/ui/elements/src/lib/user-feedback-item/time-since.pipe.mjs +59 -0
- package/esm2022/libs/ui/elements/src/lib/user-feedback-item/user-feedback-item.component.mjs +62 -0
- package/esm2022/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.mjs +17 -8
- package/esm2022/libs/ui/inputs/src/lib/text-area/text-area.component.mjs +27 -4
- package/esm2022/libs/ui/inputs/src/lib/text-input/text-input.component.mjs +19 -3
- package/esm2022/libs/ui/inputs/src/lib/ui-inputs.module.mjs +7 -6
- package/esm2022/translations/de.json +25 -0
- package/esm2022/translations/en.json +25 -0
- package/esm2022/translations/es.json +25 -0
- package/esm2022/translations/fr.json +25 -0
- package/esm2022/translations/it.json +25 -0
- package/esm2022/translations/nl.json +25 -0
- package/esm2022/translations/pt.json +25 -0
- package/fesm2022/geonetwork-ui.mjs +644 -68
- package/fesm2022/geonetwork-ui.mjs.map +1 -1
- package/libs/api/repository/src/lib/gn4/auth/avatar.service.interface.d.ts +1 -0
- package/libs/api/repository/src/lib/gn4/auth/avatar.service.interface.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/auth/gravatar.service.d.ts +1 -0
- package/libs/api/repository/src/lib/gn4/auth/gravatar.service.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.d.ts +6 -2
- package/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts +9 -6
- package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts.map +1 -1
- package/libs/common/domain/src/lib/model/record/index.d.ts +1 -0
- package/libs/common/domain/src/lib/model/record/index.d.ts.map +1 -1
- package/libs/common/domain/src/lib/model/record/user-feedbacks.model.d.ts +15 -0
- package/libs/common/domain/src/lib/model/record/user-feedbacks.model.d.ts.map +1 -0
- package/libs/common/domain/src/lib/model/user/index.d.ts +2 -0
- package/libs/common/domain/src/lib/model/user/index.d.ts.map +1 -0
- package/libs/common/domain/src/lib/platform.service.interface.d.ts +3 -0
- package/libs/common/domain/src/lib/platform.service.interface.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 +39 -0
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-license/form-field-license.component.d.ts.map +1 -0
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts +3 -1
- 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/fields.config.d.ts.map +1 -1
- package/libs/feature/record/src/lib/feature-record.module.d.ts.map +1 -1
- package/libs/feature/record/src/lib/state/mdview.actions.d.ts +40 -6
- package/libs/feature/record/src/lib/state/mdview.actions.d.ts.map +1 -1
- package/libs/feature/record/src/lib/state/mdview.effects.d.ts +24 -4
- package/libs/feature/record/src/lib/state/mdview.effects.d.ts.map +1 -1
- package/libs/feature/record/src/lib/state/mdview.facade.d.ts +14 -4
- package/libs/feature/record/src/lib/state/mdview.facade.d.ts.map +1 -1
- package/libs/feature/record/src/lib/state/mdview.reducer.d.ts +8 -5
- package/libs/feature/record/src/lib/state/mdview.reducer.d.ts.map +1 -1
- package/libs/feature/record/src/lib/state/mdview.selectors.d.ts +12 -9
- package/libs/feature/record/src/lib/state/mdview.selectors.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/ui-elements.module.d.ts +16 -14
- package/libs/ui/elements/src/lib/ui-elements.module.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/user-feedback-item/time-since.pipe.d.ts +11 -0
- package/libs/ui/elements/src/lib/user-feedback-item/time-since.pipe.d.ts.map +1 -0
- package/libs/ui/elements/src/lib/user-feedback-item/user-feedback-item.component.d.ts +22 -0
- package/libs/ui/elements/src/lib/user-feedback-item/user-feedback-item.component.d.ts.map +1 -0
- package/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.d.ts +1 -1
- package/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/text-area/text-area.component.d.ts +7 -1
- package/libs/ui/inputs/src/lib/text-area/text-area.component.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/text-input/text-input.component.d.ts +4 -1
- package/libs/ui/inputs/src/lib/text-input/text-input.component.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts +35 -35
- package/package.json +1 -1
- package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +2 -2
- package/src/libs/api/repository/src/lib/gn4/auth/avatar.service.interface.ts +1 -0
- package/src/libs/api/repository/src/lib/gn4/auth/gravatar.service.ts +12 -1
- package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.ts +51 -1
- package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +34 -7
- package/src/libs/common/domain/src/lib/model/record/index.ts +1 -0
- package/src/libs/common/domain/src/lib/model/record/user-feedbacks.model.ts +15 -0
- package/src/libs/common/domain/src/lib/platform.service.interface.ts +3 -0
- package/src/libs/common/fixtures/src/index.ts +8 -6
- package/src/libs/common/fixtures/src/lib/records.fixtures.ts +1 -1
- package/src/libs/common/fixtures/src/lib/user-feedbacks.fixtures.ts +83 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-license/form-field-license.component.css +0 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-license/form-field-license.component.html +8 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-license/form-field-license.component.ts +64 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.html +28 -33
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.ts +11 -0
- package/src/libs/feature/editor/src/lib/fields.config.ts +8 -0
- package/src/libs/feature/record/src/lib/feature-record.module.ts +5 -2
- package/src/libs/feature/record/src/lib/state/mdview.actions.ts +51 -6
- package/src/libs/feature/record/src/lib/state/mdview.effects.ts +82 -7
- package/src/libs/feature/record/src/lib/state/mdview.facade.ts +49 -8
- package/src/libs/feature/record/src/lib/state/mdview.reducer.ts +81 -24
- package/src/libs/feature/record/src/lib/state/mdview.selectors.ts +40 -10
- package/src/libs/feature/router/src/lib/default/state/router.effects.ts +2 -2
- package/src/libs/ui/elements/src/lib/ui-elements.module.ts +5 -0
- package/src/libs/ui/elements/src/lib/user-feedback-item/time-since.pipe.ts +54 -0
- package/src/libs/ui/elements/src/lib/user-feedback-item/user-feedback-item.component.css +0 -0
- package/src/libs/ui/elements/src/lib/user-feedback-item/user-feedback-item.component.html +75 -0
- package/src/libs/ui/elements/src/lib/user-feedback-item/user-feedback-item.component.ts +63 -0
- package/src/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.ts +13 -0
- package/src/libs/ui/inputs/src/lib/text-area/text-area.component.html +2 -1
- package/src/libs/ui/inputs/src/lib/text-area/text-area.component.ts +29 -0
- package/src/libs/ui/inputs/src/lib/text-input/text-input.component.html +1 -1
- package/src/libs/ui/inputs/src/lib/text-input/text-input.component.ts +16 -1
- package/src/libs/ui/inputs/src/lib/ui-inputs.module.ts +1 -1
- package/translations/de.json +25 -0
- package/translations/en.json +25 -0
- package/translations/es.json +25 -0
- package/translations/fr.json +25 -0
- package/translations/it.json +25 -0
- package/translations/nl.json +25 -0
- package/translations/pt.json +25 -0
- package/translations/sk.json +25 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { parseXml, XmlDocument, XmlElement, XmlText } from '@rgrove/parse-xml';
|
|
2
2
|
import format from 'date-fns/format';
|
|
3
3
|
import * as i0 from '@angular/core';
|
|
4
|
-
import { InjectionToken, Injectable, Optional, Inject, NgModule, SkipSelf, Component, ChangeDetectionStrategy, Input, ViewChild, Directive, HostListener, EventEmitter, Output, ElementRef, ViewChildren, ViewContainerRef, HostBinding, ContentChild, ContentChildren, TemplateRef, Host, inject } from '@angular/core';
|
|
4
|
+
import { InjectionToken, Injectable, Optional, Inject, NgModule, SkipSelf, Component, ChangeDetectionStrategy, Input, ViewChild, Directive, HostListener, EventEmitter, Output, ElementRef, ViewChildren, ViewContainerRef, HostBinding, ContentChild, ContentChildren, TemplateRef, Host, Pipe, inject } from '@angular/core';
|
|
5
5
|
import * as i1 from '@angular/common/http';
|
|
6
6
|
import { HttpHeaders, HttpParams, HttpClient, HttpClientModule, HTTP_INTERCEPTORS, HttpClientXsrfModule } from '@angular/common/http';
|
|
7
7
|
import * as i1$1 from '@ngx-translate/core';
|
|
@@ -12,7 +12,7 @@ import { map as map$1, shareReplay, filter, tap as tap$1, startWith, withLatestF
|
|
|
12
12
|
import { marker } from '@biesbjerg/ngx-translate-extract-marker';
|
|
13
13
|
import * as i1$3 from '@angular/common';
|
|
14
14
|
import { CommonModule, NgOptimizedImage, NgForOf } from '@angular/common';
|
|
15
|
-
import { of, map as map$2, lastValueFrom, switchMap, combineLatest, takeLast, forkJoin, Subject, merge, throwError, BehaviorSubject,
|
|
15
|
+
import { of, map as map$2, lastValueFrom, switchMap, combineLatest, takeLast, forkJoin, firstValueFrom, Subject, merge, throwError, BehaviorSubject, fromEvent, timer, Subscription, ReplaySubject, distinctUntilChanged as distinctUntilChanged$1, debounceTime as debounceTime$1, animationFrameScheduler, from, tap as tap$2, Observable, buffer, combineLatestWith, catchError as catchError$1, takeUntil, exhaustMap, mergeMap as mergeMap$1, EMPTY, withLatestFrom as withLatestFrom$1, filter as filter$1, startWith as startWith$1, pairwise as pairwise$1 } from 'rxjs';
|
|
16
16
|
import { valid, coerce, satisfies, ltr } from 'semver';
|
|
17
17
|
import * as i1$2 from '@ngrx/store';
|
|
18
18
|
import { createAction, props, createReducer, on, createFeatureSelector, createSelector, select, StoreModule, Store } from '@ngrx/store';
|
|
@@ -73,6 +73,8 @@ import Duration from 'duration-relativetimeformat';
|
|
|
73
73
|
import * as basicLightbox from 'basiclightbox';
|
|
74
74
|
import { marked } from 'marked';
|
|
75
75
|
import EmblaCarousel from 'embla-carousel';
|
|
76
|
+
import { formatDistance } from 'date-fns';
|
|
77
|
+
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';
|
|
76
78
|
import * as i1$8 from '@ngrx/effects';
|
|
77
79
|
import { createEffect, ofType, EffectsModule, Actions } from '@ngrx/effects';
|
|
78
80
|
import tippy from 'tippy.js';
|
|
@@ -17271,6 +17273,7 @@ var next$6 = "weiter";
|
|
|
17271
17273
|
var previous$6 = "zurück";
|
|
17272
17274
|
var records$6 = "Datensätze";
|
|
17273
17275
|
var de = {
|
|
17276
|
+
"button.login": "",
|
|
17274
17277
|
"catalog.figures.datasets": "{count, plural, =0{Datensätze} one{Datensatz} other{Datensätze}}",
|
|
17275
17278
|
"catalog.figures.organisations": "{count, plural, =0{Organisationen} one{Organisation} other{Organisationen}}",
|
|
17276
17279
|
"chart.aggregation.average": "Durchschnitt",
|
|
@@ -17416,6 +17419,16 @@ var de = {
|
|
|
17416
17419
|
"downloads.format.unknown": "unbekannt",
|
|
17417
17420
|
"downloads.wfs.featuretype.not.found": "Der Layer wurde nicht gefunden",
|
|
17418
17421
|
dropFile: dropFile$6,
|
|
17422
|
+
"editor.record.form.license": "Lizenz",
|
|
17423
|
+
"editor.record.form.license.cc-by": "",
|
|
17424
|
+
"editor.record.form.license.cc-by-sa": "",
|
|
17425
|
+
"editor.record.form.license.cc-zero": "",
|
|
17426
|
+
"editor.record.form.license.etalab": "",
|
|
17427
|
+
"editor.record.form.license.etalab-v2": "",
|
|
17428
|
+
"editor.record.form.license.odbl": "",
|
|
17429
|
+
"editor.record.form.license.odc-by": "",
|
|
17430
|
+
"editor.record.form.license.pddl": "",
|
|
17431
|
+
"editor.record.form.license.unknown": "Unbekannt oder nicht vorhanden",
|
|
17419
17432
|
"editor.record.loadError.body": "",
|
|
17420
17433
|
"editor.record.loadError.closeMessage": "",
|
|
17421
17434
|
"editor.record.loadError.title": "",
|
|
@@ -17550,6 +17563,14 @@ var de = {
|
|
|
17550
17563
|
"record.metadata.quality.updateFrequency.failed": "Aktualisierungsfrequenz nicht angegeben",
|
|
17551
17564
|
"record.metadata.quality.updateFrequency.success": "Aktualisierungsfrequenz angegeben",
|
|
17552
17565
|
"record.metadata.related": "Ähnliche Datensätze",
|
|
17566
|
+
"record.metadata.userFeedbacks": "",
|
|
17567
|
+
"record.metadata.userFeedbacks.anonymousUser": "",
|
|
17568
|
+
"record.metadata.userFeedbacks.sortSelector.label": "",
|
|
17569
|
+
"record.metadata.userFeedbacks.sortSelector.choices.newestFirst": "",
|
|
17570
|
+
"record.metadata.userFeedbacks.sortSelector.choices.oldestFirst": "",
|
|
17571
|
+
"record.metadata.userFeedbacks.newComment.placeholder": "",
|
|
17572
|
+
"record.metadata.userFeedbacks.newAnswer.placeholder": "",
|
|
17573
|
+
"record.metadata.userFeedbacks.newAnswer.buttonTitle": "",
|
|
17553
17574
|
"record.metadata.sheet": "Weitere Informationen verfügbar unter:",
|
|
17554
17575
|
"record.metadata.status": "Status",
|
|
17555
17576
|
"record.metadata.technical": "Technische Informationen",
|
|
@@ -17623,6 +17644,12 @@ var de = {
|
|
|
17623
17644
|
"table.loading.data": "Daten werden geladen...",
|
|
17624
17645
|
"table.object.count": "Objekte in diesem Datensatz",
|
|
17625
17646
|
"table.select.data": "Datenquelle",
|
|
17647
|
+
"timeSincePipe.lessThanAMinute": "",
|
|
17648
|
+
"timeSincePipe.minutesAgo": "",
|
|
17649
|
+
"timeSincePipe.hoursAgo": "",
|
|
17650
|
+
"timeSincePipe.daysAgo": "",
|
|
17651
|
+
"timeSincePipe.monthsAgo": "",
|
|
17652
|
+
"timeSincePipe.yearsAgo": "",
|
|
17626
17653
|
"tooltip.html.copy": "HTML kopieren",
|
|
17627
17654
|
"tooltip.id.copy": "Eindeutige Kennung kopieren",
|
|
17628
17655
|
"tooltip.url.copy": "URL kopieren",
|
|
@@ -17641,6 +17668,7 @@ var next$5 = "next";
|
|
|
17641
17668
|
var previous$5 = "previous";
|
|
17642
17669
|
var records$5 = "records";
|
|
17643
17670
|
var en = {
|
|
17671
|
+
"button.login": "Log in",
|
|
17644
17672
|
"catalog.figures.datasets": "{count, plural, =0{datasets} one{dataset} other{datasets}}",
|
|
17645
17673
|
"catalog.figures.organisations": "{count, plural, =0{organisations} one{organisation} other{organisations}}",
|
|
17646
17674
|
"chart.aggregation.average": "average",
|
|
@@ -17786,6 +17814,16 @@ var en = {
|
|
|
17786
17814
|
"downloads.format.unknown": "unknown",
|
|
17787
17815
|
"downloads.wfs.featuretype.not.found": "The layer was not found",
|
|
17788
17816
|
dropFile: dropFile$5,
|
|
17817
|
+
"editor.record.form.license": "License",
|
|
17818
|
+
"editor.record.form.license.cc-by": "Creative Commons CC-BY",
|
|
17819
|
+
"editor.record.form.license.cc-by-sa": "Creative Commons CC-BY-SA",
|
|
17820
|
+
"editor.record.form.license.cc-zero": "Creative Commons CC-0",
|
|
17821
|
+
"editor.record.form.license.etalab": "Open Licence (Etalab)",
|
|
17822
|
+
"editor.record.form.license.etalab-v2": "Open Licence v2.0 (Etalab)",
|
|
17823
|
+
"editor.record.form.license.odbl": "Open Data Commons ODbL",
|
|
17824
|
+
"editor.record.form.license.odc-by": "Open Data Commons ODC-By",
|
|
17825
|
+
"editor.record.form.license.pddl": "Open Data Commons PDDL",
|
|
17826
|
+
"editor.record.form.license.unknown": "Unknown or absent",
|
|
17789
17827
|
"editor.record.loadError.body": "The record could not be loaded:",
|
|
17790
17828
|
"editor.record.loadError.closeMessage": "Understood",
|
|
17791
17829
|
"editor.record.loadError.title": "Error loading record",
|
|
@@ -17920,6 +17958,14 @@ var en = {
|
|
|
17920
17958
|
"record.metadata.quality.updateFrequency.failed": "Update frequency is not specified",
|
|
17921
17959
|
"record.metadata.quality.updateFrequency.success": "Update frequency is specified",
|
|
17922
17960
|
"record.metadata.related": "Related records",
|
|
17961
|
+
"record.metadata.userFeedbacks": "Questions / Answers",
|
|
17962
|
+
"record.metadata.userFeedbacks.anonymousUser": "In order to leave a comment, please log in.",
|
|
17963
|
+
"record.metadata.userFeedbacks.sortSelector.label": "Sort by ...",
|
|
17964
|
+
"record.metadata.userFeedbacks.sortSelector.choices.newestFirst": "Newest comments first",
|
|
17965
|
+
"record.metadata.userFeedbacks.sortSelector.choices.oldestFirst": "Oldest comments first",
|
|
17966
|
+
"record.metadata.userFeedbacks.newComment.placeholder": "Write your comment here...",
|
|
17967
|
+
"record.metadata.userFeedbacks.newAnswer.placeholder": "Answer...",
|
|
17968
|
+
"record.metadata.userFeedbacks.newAnswer.buttonTitle": "Publish",
|
|
17923
17969
|
"record.metadata.sheet": "Original metadata",
|
|
17924
17970
|
"record.metadata.status": "Status",
|
|
17925
17971
|
"record.metadata.technical": "Technical information",
|
|
@@ -17993,6 +18039,12 @@ var en = {
|
|
|
17993
18039
|
"table.loading.data": "Loading data...",
|
|
17994
18040
|
"table.object.count": "objects in this dataset",
|
|
17995
18041
|
"table.select.data": "Data source",
|
|
18042
|
+
"timeSincePipe.lessThanAMinute": "Less than a minute ago",
|
|
18043
|
+
"timeSincePipe.minutesAgo": "{value} minute{s} ago",
|
|
18044
|
+
"timeSincePipe.hoursAgo": "{value} hour{s} ago",
|
|
18045
|
+
"timeSincePipe.daysAgo": "{value} day{s} ago",
|
|
18046
|
+
"timeSincePipe.monthsAgo": "{value} month{s} ago",
|
|
18047
|
+
"timeSincePipe.yearsAgo": "{value} year{s} ago",
|
|
17996
18048
|
"tooltip.html.copy": "Copy HTML",
|
|
17997
18049
|
"tooltip.id.copy": "Copy unique identifier",
|
|
17998
18050
|
"tooltip.url.copy": "Copy URL",
|
|
@@ -18011,6 +18063,7 @@ var next$4 = "";
|
|
|
18011
18063
|
var previous$4 = "";
|
|
18012
18064
|
var records$4 = "";
|
|
18013
18065
|
var es = {
|
|
18066
|
+
"button.login": "",
|
|
18014
18067
|
"catalog.figures.datasets": "conjuntos de datos",
|
|
18015
18068
|
"catalog.figures.organisations": "organizaciones",
|
|
18016
18069
|
"chart.aggregation.average": "promedio",
|
|
@@ -18156,6 +18209,16 @@ var es = {
|
|
|
18156
18209
|
"downloads.format.unknown": "",
|
|
18157
18210
|
"downloads.wfs.featuretype.not.found": "",
|
|
18158
18211
|
dropFile: dropFile$4,
|
|
18212
|
+
"editor.record.form.license": "",
|
|
18213
|
+
"editor.record.form.license.cc-by": "",
|
|
18214
|
+
"editor.record.form.license.cc-by-sa": "",
|
|
18215
|
+
"editor.record.form.license.cc-zero": "",
|
|
18216
|
+
"editor.record.form.license.etalab": "",
|
|
18217
|
+
"editor.record.form.license.etalab-v2": "",
|
|
18218
|
+
"editor.record.form.license.odbl": "",
|
|
18219
|
+
"editor.record.form.license.odc-by": "",
|
|
18220
|
+
"editor.record.form.license.pddl": "",
|
|
18221
|
+
"editor.record.form.license.unknown": "",
|
|
18159
18222
|
"editor.record.loadError.body": "",
|
|
18160
18223
|
"editor.record.loadError.closeMessage": "",
|
|
18161
18224
|
"editor.record.loadError.title": "",
|
|
@@ -18290,6 +18353,14 @@ var es = {
|
|
|
18290
18353
|
"record.metadata.quality.updateFrequency.failed": "",
|
|
18291
18354
|
"record.metadata.quality.updateFrequency.success": "",
|
|
18292
18355
|
"record.metadata.related": "",
|
|
18356
|
+
"record.metadata.userFeedbacks": "",
|
|
18357
|
+
"record.metadata.userFeedbacks.anonymousUser": "",
|
|
18358
|
+
"record.metadata.userFeedbacks.sortSelector.label": "",
|
|
18359
|
+
"record.metadata.userFeedbacks.sortSelector.choices.newestFirst": "",
|
|
18360
|
+
"record.metadata.userFeedbacks.sortSelector.choices.oldestFirst": "",
|
|
18361
|
+
"record.metadata.userFeedbacks.newComment.placeholder": "",
|
|
18362
|
+
"record.metadata.userFeedbacks.newAnswer.placeholder": "",
|
|
18363
|
+
"record.metadata.userFeedbacks.newAnswer.buttonTitle": "",
|
|
18293
18364
|
"record.metadata.sheet": "",
|
|
18294
18365
|
"record.metadata.status": "",
|
|
18295
18366
|
"record.metadata.technical": "",
|
|
@@ -18363,6 +18434,12 @@ var es = {
|
|
|
18363
18434
|
"table.loading.data": "",
|
|
18364
18435
|
"table.object.count": "",
|
|
18365
18436
|
"table.select.data": "",
|
|
18437
|
+
"timeSincePipe.lessThanAMinute": "",
|
|
18438
|
+
"timeSincePipe.minutesAgo": "",
|
|
18439
|
+
"timeSincePipe.hoursAgo": "",
|
|
18440
|
+
"timeSincePipe.daysAgo": "",
|
|
18441
|
+
"timeSincePipe.monthsAgo": "",
|
|
18442
|
+
"timeSincePipe.yearsAgo": "",
|
|
18366
18443
|
"tooltip.html.copy": "",
|
|
18367
18444
|
"tooltip.id.copy": "",
|
|
18368
18445
|
"tooltip.url.copy": "",
|
|
@@ -18381,6 +18458,7 @@ var next$3 = "suivant";
|
|
|
18381
18458
|
var previous$3 = "précédent";
|
|
18382
18459
|
var records$3 = "enregistrements";
|
|
18383
18460
|
var fr = {
|
|
18461
|
+
"button.login": "Se connecter",
|
|
18384
18462
|
"catalog.figures.datasets": "{count, plural, =0{données} one{donnée} other{données}}",
|
|
18385
18463
|
"catalog.figures.organisations": "{count, plural, =0{organisations} one{organisation} other{organisations}}",
|
|
18386
18464
|
"chart.aggregation.average": "moyenne",
|
|
@@ -18526,6 +18604,16 @@ var fr = {
|
|
|
18526
18604
|
"downloads.format.unknown": "inconnu",
|
|
18527
18605
|
"downloads.wfs.featuretype.not.found": "La couche n'a pas été retrouvée",
|
|
18528
18606
|
dropFile: dropFile$3,
|
|
18607
|
+
"editor.record.form.license": "Licence",
|
|
18608
|
+
"editor.record.form.license.cc-by": "",
|
|
18609
|
+
"editor.record.form.license.cc-by-sa": "",
|
|
18610
|
+
"editor.record.form.license.cc-zero": "",
|
|
18611
|
+
"editor.record.form.license.etalab": "Licence Ouverte (Etalab)",
|
|
18612
|
+
"editor.record.form.license.etalab-v2": "Licence Ouverte v2.0 (Etalab)",
|
|
18613
|
+
"editor.record.form.license.odbl": "",
|
|
18614
|
+
"editor.record.form.license.odc-by": "",
|
|
18615
|
+
"editor.record.form.license.pddl": "",
|
|
18616
|
+
"editor.record.form.license.unknown": "Non-reconnue ou absente",
|
|
18529
18617
|
"editor.record.loadError.body": "",
|
|
18530
18618
|
"editor.record.loadError.closeMessage": "",
|
|
18531
18619
|
"editor.record.loadError.title": "",
|
|
@@ -18660,6 +18748,14 @@ var fr = {
|
|
|
18660
18748
|
"record.metadata.quality.updateFrequency.failed": "Fréquence de mise à jour n'est pas renseignée",
|
|
18661
18749
|
"record.metadata.quality.updateFrequency.success": "Fréquence de mise à jour est renseignée",
|
|
18662
18750
|
"record.metadata.related": "Voir aussi",
|
|
18751
|
+
"record.metadata.userFeedbacks": "Questions / Réponses",
|
|
18752
|
+
"record.metadata.userFeedbacks.anonymousUser": "Pour rédiger un commentaire, veuillez vous identifier.",
|
|
18753
|
+
"record.metadata.userFeedbacks.sortSelector.label": "Trier par ...",
|
|
18754
|
+
"record.metadata.userFeedbacks.sortSelector.choices.newestFirst": "Les plus récents en premier",
|
|
18755
|
+
"record.metadata.userFeedbacks.sortSelector.choices.oldestFirst": "Les plus anciens en premier",
|
|
18756
|
+
"record.metadata.userFeedbacks.newComment.placeholder": "Rédiger votre commentaire ici...",
|
|
18757
|
+
"record.metadata.userFeedbacks.newAnswer.placeholder": "Répondre...",
|
|
18758
|
+
"record.metadata.userFeedbacks.newAnswer.buttonTitle": "Publier",
|
|
18663
18759
|
"record.metadata.sheet": "Fiche de métadonnées d'origine",
|
|
18664
18760
|
"record.metadata.status": "Statut",
|
|
18665
18761
|
"record.metadata.technical": "Informations techniques",
|
|
@@ -18733,6 +18829,12 @@ var fr = {
|
|
|
18733
18829
|
"table.loading.data": "Chargement des données...",
|
|
18734
18830
|
"table.object.count": "enregistrements dans ces données",
|
|
18735
18831
|
"table.select.data": "Source de données",
|
|
18832
|
+
"timeSincePipe.lessThanAMinute": "Il y a moins d'une minute",
|
|
18833
|
+
"timeSincePipe.minutesAgo": "Il y a {value} minute{s}",
|
|
18834
|
+
"timeSincePipe.hoursAgo": "Il y a {value} heure{s}",
|
|
18835
|
+
"timeSincePipe.daysAgo": "Il y a {value} jour{s}",
|
|
18836
|
+
"timeSincePipe.monthsAgo": "Il y a {value} mois",
|
|
18837
|
+
"timeSincePipe.yearsAgo": "Il y a {value} an{s}",
|
|
18736
18838
|
"tooltip.html.copy": "Copier le HTML",
|
|
18737
18839
|
"tooltip.id.copy": "Copier l'identifiant unique",
|
|
18738
18840
|
"tooltip.url.copy": "Copier l'URL",
|
|
@@ -18751,6 +18853,7 @@ var next$2 = "successivo";
|
|
|
18751
18853
|
var previous$2 = "precedente";
|
|
18752
18854
|
var records$2 = "record";
|
|
18753
18855
|
var it = {
|
|
18856
|
+
"button.login": "",
|
|
18754
18857
|
"catalog.figures.datasets": "{count, plural, =0{datasets} one{dataset} other{datasets}}",
|
|
18755
18858
|
"catalog.figures.organisations": "{count, plural, =0{organizzazioni} one{organizzazione} other{organizzazioni}}",
|
|
18756
18859
|
"chart.aggregation.average": "media",
|
|
@@ -18896,6 +18999,16 @@ var it = {
|
|
|
18896
18999
|
"downloads.format.unknown": "sconosciuto",
|
|
18897
19000
|
"downloads.wfs.featuretype.not.found": "Il layer non è stato trovato",
|
|
18898
19001
|
dropFile: dropFile$2,
|
|
19002
|
+
"editor.record.form.license": "Licenza",
|
|
19003
|
+
"editor.record.form.license.cc-by": "",
|
|
19004
|
+
"editor.record.form.license.cc-by-sa": "",
|
|
19005
|
+
"editor.record.form.license.cc-zero": "",
|
|
19006
|
+
"editor.record.form.license.etalab": "Licenza aperta (Etalab)",
|
|
19007
|
+
"editor.record.form.license.etalab-v2": "Licenza aperta v2.0 (Etalab)",
|
|
19008
|
+
"editor.record.form.license.odbl": "",
|
|
19009
|
+
"editor.record.form.license.odc-by": "",
|
|
19010
|
+
"editor.record.form.license.pddl": "",
|
|
19011
|
+
"editor.record.form.license.unknown": "Non riconosciuta o assente",
|
|
18899
19012
|
"editor.record.loadError.body": "",
|
|
18900
19013
|
"editor.record.loadError.closeMessage": "",
|
|
18901
19014
|
"editor.record.loadError.title": "",
|
|
@@ -19030,6 +19143,14 @@ var it = {
|
|
|
19030
19143
|
"record.metadata.quality.updateFrequency.failed": "La frequenza di aggiornamento non è specificata",
|
|
19031
19144
|
"record.metadata.quality.updateFrequency.success": "La frequenza di aggiornamento è specificata",
|
|
19032
19145
|
"record.metadata.related": "Vedi anche",
|
|
19146
|
+
"record.metadata.userFeedbacks": "",
|
|
19147
|
+
"record.metadata.userFeedbacks.anonymousUser": "",
|
|
19148
|
+
"record.metadata.userFeedbacks.sortSelector.label": "",
|
|
19149
|
+
"record.metadata.userFeedbacks.sortSelector.choices.newestFirst": "",
|
|
19150
|
+
"record.metadata.userFeedbacks.sortSelector.choices.oldestFirst": "",
|
|
19151
|
+
"record.metadata.userFeedbacks.newComment.placeholder": "",
|
|
19152
|
+
"record.metadata.userFeedbacks.newAnswer.placeholder": "",
|
|
19153
|
+
"record.metadata.userFeedbacks.newAnswer.buttonTitle": "",
|
|
19033
19154
|
"record.metadata.sheet": "Origine del metadata",
|
|
19034
19155
|
"record.metadata.status": "Stato",
|
|
19035
19156
|
"record.metadata.technical": "Informazioni tecniche",
|
|
@@ -19103,6 +19224,12 @@ var it = {
|
|
|
19103
19224
|
"table.loading.data": "Caricamento dei dati...",
|
|
19104
19225
|
"table.object.count": "record in questi dati",
|
|
19105
19226
|
"table.select.data": "Sorgente dati",
|
|
19227
|
+
"timeSincePipe.lessThanAMinute": "",
|
|
19228
|
+
"timeSincePipe.minutesAgo": "",
|
|
19229
|
+
"timeSincePipe.hoursAgo": "",
|
|
19230
|
+
"timeSincePipe.daysAgo": "",
|
|
19231
|
+
"timeSincePipe.monthsAgo": "",
|
|
19232
|
+
"timeSincePipe.yearsAgo": "",
|
|
19106
19233
|
"tooltip.html.copy": "Copiare il HTML",
|
|
19107
19234
|
"tooltip.id.copy": "Copiare l'identificatore unico",
|
|
19108
19235
|
"tooltip.url.copy": "Copiare l'URL",
|
|
@@ -19121,6 +19248,7 @@ var next$1 = "";
|
|
|
19121
19248
|
var previous$1 = "";
|
|
19122
19249
|
var records$1 = "";
|
|
19123
19250
|
var nl = {
|
|
19251
|
+
"button.login": "",
|
|
19124
19252
|
"catalog.figures.datasets": "datasets",
|
|
19125
19253
|
"catalog.figures.organisations": "organisaties",
|
|
19126
19254
|
"chart.aggregation.average": "gemiddelde",
|
|
@@ -19266,6 +19394,16 @@ var nl = {
|
|
|
19266
19394
|
"downloads.format.unknown": "",
|
|
19267
19395
|
"downloads.wfs.featuretype.not.found": "",
|
|
19268
19396
|
dropFile: dropFile$1,
|
|
19397
|
+
"editor.record.form.license": "",
|
|
19398
|
+
"editor.record.form.license.cc-by": "",
|
|
19399
|
+
"editor.record.form.license.cc-by-sa": "",
|
|
19400
|
+
"editor.record.form.license.cc-zero": "",
|
|
19401
|
+
"editor.record.form.license.etalab": "",
|
|
19402
|
+
"editor.record.form.license.etalab-v2": "",
|
|
19403
|
+
"editor.record.form.license.odbl": "",
|
|
19404
|
+
"editor.record.form.license.odc-by": "",
|
|
19405
|
+
"editor.record.form.license.pddl": "",
|
|
19406
|
+
"editor.record.form.license.unknown": "",
|
|
19269
19407
|
"editor.record.loadError.body": "",
|
|
19270
19408
|
"editor.record.loadError.closeMessage": "",
|
|
19271
19409
|
"editor.record.loadError.title": "",
|
|
@@ -19400,6 +19538,14 @@ var nl = {
|
|
|
19400
19538
|
"record.metadata.quality.updateFrequency.failed": "",
|
|
19401
19539
|
"record.metadata.quality.updateFrequency.success": "",
|
|
19402
19540
|
"record.metadata.related": "",
|
|
19541
|
+
"record.metadata.userFeedbacks": "",
|
|
19542
|
+
"record.metadata.userFeedbacks.anonymousUser": "",
|
|
19543
|
+
"record.metadata.userFeedbacks.sortSelector.label": "",
|
|
19544
|
+
"record.metadata.userFeedbacks.sortSelector.choices.newestFirst": "",
|
|
19545
|
+
"record.metadata.userFeedbacks.sortSelector.choices.oldestFirst": "",
|
|
19546
|
+
"record.metadata.userFeedbacks.newComment.placeholder": "",
|
|
19547
|
+
"record.metadata.userFeedbacks.newAnswer.placeholder": "",
|
|
19548
|
+
"record.metadata.userFeedbacks.newAnswer.buttonTitle": "",
|
|
19403
19549
|
"record.metadata.sheet": "",
|
|
19404
19550
|
"record.metadata.status": "",
|
|
19405
19551
|
"record.metadata.technical": "",
|
|
@@ -19473,6 +19619,12 @@ var nl = {
|
|
|
19473
19619
|
"table.loading.data": "",
|
|
19474
19620
|
"table.object.count": "",
|
|
19475
19621
|
"table.select.data": "",
|
|
19622
|
+
"timeSincePipe.lessThanAMinute": "",
|
|
19623
|
+
"timeSincePipe.minutesAgo": "",
|
|
19624
|
+
"timeSincePipe.hoursAgo": "",
|
|
19625
|
+
"timeSincePipe.daysAgo": "",
|
|
19626
|
+
"timeSincePipe.monthsAgo": "",
|
|
19627
|
+
"timeSincePipe.yearsAgo": "",
|
|
19476
19628
|
"tooltip.html.copy": "",
|
|
19477
19629
|
"tooltip.id.copy": "",
|
|
19478
19630
|
"tooltip.url.copy": "",
|
|
@@ -19491,6 +19643,7 @@ var next = "";
|
|
|
19491
19643
|
var previous = "";
|
|
19492
19644
|
var records = "";
|
|
19493
19645
|
var pt = {
|
|
19646
|
+
"button.login": "",
|
|
19494
19647
|
"catalog.figures.datasets": "conjuntos de dados",
|
|
19495
19648
|
"catalog.figures.organisations": "organizações",
|
|
19496
19649
|
"chart.aggregation.average": "média",
|
|
@@ -19636,6 +19789,16 @@ var pt = {
|
|
|
19636
19789
|
"downloads.format.unknown": "",
|
|
19637
19790
|
"downloads.wfs.featuretype.not.found": "",
|
|
19638
19791
|
dropFile: dropFile,
|
|
19792
|
+
"editor.record.form.license": "",
|
|
19793
|
+
"editor.record.form.license.cc-by": "",
|
|
19794
|
+
"editor.record.form.license.cc-by-sa": "",
|
|
19795
|
+
"editor.record.form.license.cc-zero": "",
|
|
19796
|
+
"editor.record.form.license.etalab": "",
|
|
19797
|
+
"editor.record.form.license.etalab-v2": "",
|
|
19798
|
+
"editor.record.form.license.odbl": "",
|
|
19799
|
+
"editor.record.form.license.odc-by": "",
|
|
19800
|
+
"editor.record.form.license.pddl": "",
|
|
19801
|
+
"editor.record.form.license.unknown": "",
|
|
19639
19802
|
"editor.record.loadError.body": "",
|
|
19640
19803
|
"editor.record.loadError.closeMessage": "",
|
|
19641
19804
|
"editor.record.loadError.title": "",
|
|
@@ -19770,6 +19933,14 @@ var pt = {
|
|
|
19770
19933
|
"record.metadata.quality.updateFrequency.failed": "",
|
|
19771
19934
|
"record.metadata.quality.updateFrequency.success": "",
|
|
19772
19935
|
"record.metadata.related": "",
|
|
19936
|
+
"record.metadata.userFeedbacks": "",
|
|
19937
|
+
"record.metadata.userFeedbacks.anonymousUser": "",
|
|
19938
|
+
"record.metadata.userFeedbacks.sortSelector.label": "",
|
|
19939
|
+
"record.metadata.userFeedbacks.sortSelector.choices.newestFirst": "",
|
|
19940
|
+
"record.metadata.userFeedbacks.sortSelector.choices.oldestFirst": "",
|
|
19941
|
+
"record.metadata.userFeedbacks.newComment.placeholder": "",
|
|
19942
|
+
"record.metadata.userFeedbacks.newAnswer.placeholder": "",
|
|
19943
|
+
"record.metadata.userFeedbacks.newAnswer.buttonTitle": "",
|
|
19773
19944
|
"record.metadata.sheet": "",
|
|
19774
19945
|
"record.metadata.status": "",
|
|
19775
19946
|
"record.metadata.technical": "",
|
|
@@ -19843,6 +20014,12 @@ var pt = {
|
|
|
19843
20014
|
"table.loading.data": "",
|
|
19844
20015
|
"table.object.count": "",
|
|
19845
20016
|
"table.select.data": "",
|
|
20017
|
+
"timeSincePipe.lessThanAMinute": "",
|
|
20018
|
+
"timeSincePipe.minutesAgo": "",
|
|
20019
|
+
"timeSincePipe.hoursAgo": "",
|
|
20020
|
+
"timeSincePipe.daysAgo": "",
|
|
20021
|
+
"timeSincePipe.monthsAgo": "",
|
|
20022
|
+
"timeSincePipe.yearsAgo": "",
|
|
19846
20023
|
"tooltip.html.copy": "",
|
|
19847
20024
|
"tooltip.id.copy": "",
|
|
19848
20025
|
"tooltip.url.copy": "",
|
|
@@ -19937,11 +20114,11 @@ class Gn4FieldMapper {
|
|
|
19937
20114
|
}),
|
|
19938
20115
|
creationDateForResource: (output, source) => ({
|
|
19939
20116
|
...output,
|
|
19940
|
-
|
|
20117
|
+
resourceCreated: toDate(getFirstValue(selectField(source, 'creationDateForResource'))),
|
|
19941
20118
|
}),
|
|
19942
20119
|
revisionDateForResource: (output, source) => ({
|
|
19943
20120
|
...output,
|
|
19944
|
-
|
|
20121
|
+
resourceUpdated: toDate(getFirstValue(selectField(source, 'revisionDateForResource'))),
|
|
19945
20122
|
}),
|
|
19946
20123
|
createDate: (output, source) => ({
|
|
19947
20124
|
...output,
|
|
@@ -21166,6 +21343,16 @@ class GravatarService {
|
|
|
21166
21343
|
getProfileIcon(hash) {
|
|
21167
21344
|
return this.identicon$.pipe(map$1((identicon) => identicon || this.GRAVATAR_IDENTICON), map$1((identicon) => `${this.GRAVATAR_URL}${hash}?d=${identicon}`));
|
|
21168
21345
|
}
|
|
21346
|
+
async getProfileIconUrl(userId) {
|
|
21347
|
+
let iconUrl = '';
|
|
21348
|
+
try {
|
|
21349
|
+
iconUrl = await firstValueFrom(this.getProfileIcon(userId));
|
|
21350
|
+
}
|
|
21351
|
+
catch (error) {
|
|
21352
|
+
return '';
|
|
21353
|
+
}
|
|
21354
|
+
return iconUrl;
|
|
21355
|
+
}
|
|
21169
21356
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: GravatarService, deps: [{ token: Gn4SettingsService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
21170
21357
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: GravatarService, providedIn: 'root' }); }
|
|
21171
21358
|
}
|
|
@@ -21317,6 +21504,39 @@ class Gn4PlatformMapper {
|
|
|
21317
21504
|
};
|
|
21318
21505
|
});
|
|
21319
21506
|
}
|
|
21507
|
+
userFeedbacksFromApi(userFeedback) {
|
|
21508
|
+
return {
|
|
21509
|
+
uuid: userFeedback.uuid,
|
|
21510
|
+
metadataUUID: userFeedback.metadataUUID,
|
|
21511
|
+
comment: userFeedback.comment,
|
|
21512
|
+
authorUserId: userFeedback.authorUserId.toString(),
|
|
21513
|
+
authorName: userFeedback.authorName,
|
|
21514
|
+
authorEmail: userFeedback.authorEmail,
|
|
21515
|
+
published: userFeedback.published,
|
|
21516
|
+
parentUuid: userFeedback.parentUuid ?? undefined,
|
|
21517
|
+
date: new Date(userFeedback.date),
|
|
21518
|
+
};
|
|
21519
|
+
}
|
|
21520
|
+
userFeedbacksToApi(userFeedback) {
|
|
21521
|
+
return {
|
|
21522
|
+
uuid: userFeedback.uuid,
|
|
21523
|
+
metadataUUID: userFeedback.metadataUUID,
|
|
21524
|
+
comment: userFeedback.comment,
|
|
21525
|
+
authorUserId: Number.parseInt(userFeedback.authorUserId),
|
|
21526
|
+
authorName: userFeedback.authorName,
|
|
21527
|
+
authorEmail: userFeedback.authorEmail,
|
|
21528
|
+
published: userFeedback.published,
|
|
21529
|
+
parentUuid: userFeedback.parentUuid,
|
|
21530
|
+
date: userFeedback.date.getTime().toString(),
|
|
21531
|
+
};
|
|
21532
|
+
}
|
|
21533
|
+
async createUserFeedbackViewModel(baseUserFeedback) {
|
|
21534
|
+
const userAvatarUrl = await this.avatarService.getProfileIconUrl(baseUserFeedback.authorUserId?.toString());
|
|
21535
|
+
return {
|
|
21536
|
+
...baseUserFeedback,
|
|
21537
|
+
avatarUrl: userAvatarUrl,
|
|
21538
|
+
};
|
|
21539
|
+
}
|
|
21320
21540
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: Gn4PlatformMapper, deps: [{ token: AvatarServiceInterface }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
21321
21541
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: Gn4PlatformMapper }); }
|
|
21322
21542
|
}
|
|
@@ -21326,7 +21546,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
|
|
|
21326
21546
|
|
|
21327
21547
|
const minApiVersion = '4.2.2';
|
|
21328
21548
|
class Gn4PlatformService {
|
|
21329
|
-
constructor(siteApiService, meApi, usersApi, mapper, toolsApiService, registriesApiService, langService) {
|
|
21549
|
+
constructor(siteApiService, meApi, usersApi, mapper, toolsApiService, registriesApiService, langService, userfeedbackApiService) {
|
|
21330
21550
|
this.siteApiService = siteApiService;
|
|
21331
21551
|
this.meApi = meApi;
|
|
21332
21552
|
this.usersApi = usersApi;
|
|
@@ -21334,6 +21554,7 @@ class Gn4PlatformService {
|
|
|
21334
21554
|
this.toolsApiService = toolsApiService;
|
|
21335
21555
|
this.registriesApiService = registriesApiService;
|
|
21336
21556
|
this.langService = langService;
|
|
21557
|
+
this.userfeedbackApiService = userfeedbackApiService;
|
|
21337
21558
|
this.type = 'GeoNetwork';
|
|
21338
21559
|
this.keyTranslations$ = this.toolsApiService
|
|
21339
21560
|
.getTranslationsPackage1('gnui')
|
|
@@ -21353,7 +21574,7 @@ class Gn4PlatformService {
|
|
|
21353
21574
|
*/
|
|
21354
21575
|
this.thesauri = {};
|
|
21355
21576
|
this.me$ = this.meApi.getMe().pipe(switchMap((apiUser) => this.mapper.userFromMeApi(apiUser)), shareReplay({ bufferSize: 1, refCount: true }));
|
|
21356
|
-
this.
|
|
21577
|
+
this.isUserAnonymous$ = this.me$.pipe(map$1((user) => !user || !('id' in user)));
|
|
21357
21578
|
this.users$ = this.usersApi.getUsers().pipe(map$1((users) => users.map((user) => this.mapper.userFromApi(user))), shareReplay());
|
|
21358
21579
|
}
|
|
21359
21580
|
getType() {
|
|
@@ -21366,7 +21587,7 @@ class Gn4PlatformService {
|
|
|
21366
21587
|
return this.me$;
|
|
21367
21588
|
}
|
|
21368
21589
|
isAnonymous() {
|
|
21369
|
-
return this.
|
|
21590
|
+
return this.isUserAnonymous$;
|
|
21370
21591
|
}
|
|
21371
21592
|
getOrganizations() {
|
|
21372
21593
|
return undefined;
|
|
@@ -21402,12 +21623,23 @@ class Gn4PlatformService {
|
|
|
21402
21623
|
.pipe(map$1((thesaurus) => this.mapper.thesaurusFromApi(thesaurus, this.langService.iso3)), shareReplay(1));
|
|
21403
21624
|
return this.thesauri[uri];
|
|
21404
21625
|
}
|
|
21405
|
-
|
|
21626
|
+
getUserFeedbacks(uuid) {
|
|
21627
|
+
return this.userfeedbackApiService
|
|
21628
|
+
.getUserComments(uuid)
|
|
21629
|
+
.pipe(map$1((userFeedbacks) => userFeedbacks.map(this.mapper.userFeedbacksFromApi)));
|
|
21630
|
+
}
|
|
21631
|
+
postUserFeedbacks(userFeedback) {
|
|
21632
|
+
const mappedUserFeedBack = this.mapper.userFeedbacksToApi(userFeedback);
|
|
21633
|
+
return this.userfeedbackApiService
|
|
21634
|
+
.newUserFeedback(mappedUserFeedBack)
|
|
21635
|
+
.pipe(map$1(() => undefined));
|
|
21636
|
+
}
|
|
21637
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: Gn4PlatformService, deps: [{ token: SiteApiService }, { token: MeApiService }, { token: UsersApiService }, { token: Gn4PlatformMapper }, { token: ToolsApiService }, { token: RegistriesApiService }, { token: LangService }, { token: UserfeedbackApiService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
21406
21638
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: Gn4PlatformService }); }
|
|
21407
21639
|
}
|
|
21408
21640
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: Gn4PlatformService, decorators: [{
|
|
21409
21641
|
type: Injectable
|
|
21410
|
-
}], ctorParameters: function () { return [{ type: SiteApiService }, { type: MeApiService }, { type: UsersApiService }, { type: Gn4PlatformMapper }, { type: ToolsApiService }, { type: RegistriesApiService }, { type: LangService }]; } });
|
|
21642
|
+
}], ctorParameters: function () { return [{ type: SiteApiService }, { type: MeApiService }, { type: UsersApiService }, { type: Gn4PlatformMapper }, { type: ToolsApiService }, { type: RegistriesApiService }, { type: LangService }, { type: UserfeedbackApiService }]; } });
|
|
21411
21643
|
|
|
21412
21644
|
function provideGn4() {
|
|
21413
21645
|
return [
|
|
@@ -23995,11 +24227,17 @@ class DropdownSelectorComponent {
|
|
|
23995
24227
|
}
|
|
23996
24228
|
}
|
|
23997
24229
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: DropdownSelectorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
23998
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: DropdownSelectorComponent, selector: "gn-ui-dropdown-selector", inputs: { title: "title", showTitle: "showTitle", ariaName: "ariaName", choices: "choices", selected: "selected", maxRows: "maxRows", extraBtnClass: "extraBtnClass", minWidth: "minWidth" }, outputs: { selectValue: "selectValue" }, viewQueries: [{ propertyName: "overlayOrigin", first: true, predicate: ["overlayOrigin"], descendants: true }, { propertyName: "overlay", first: true, predicate: CdkConnectedOverlay, descendants: true }, { propertyName: "choiceInputs", predicate: ["choiceInputs"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div class=\"flex flex-col sm:flex-row sm:items-center relative w-full\">\n <span\n *ngIf=\"showTitle\"\n class=\"tracking-wide text-sm mb-2 sm:mb-0 sm:mr-2 whitespace-nowrap\"\n [attr.for]=\"id\"\n >\n {{ title }}\n </span>\n <gn-ui-button\n type=\"outline\"\n class=\"grow min-w-0\"\n extraClass=\"bg-background !p-[8px] !pl-[16px] flex flex-row w-full {{\n extraBtnClass\n }}\"\n [title]=\"title\"\n [attr.aria-owns]=\"id\"\n (buttonClick)=\"openOverlay()\"\n cdkOverlayOrigin\n #overlayOrigin=\"cdkOverlayOrigin\"\n (keydown)=\"handleTriggerKeydown($event)\"\n >\n <div class=\"grow font-medium truncate py-1 mr-2 text-left\">\n {{ getChoiceLabel() | translate }}\n </div>\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</div>\n\n<ng-template\n cdkConnectedOverlay\n cdkConnectedOverlayHasBackdrop\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n [cdkConnectedOverlayOrigin]=\"overlayOrigin\"\n [cdkConnectedOverlayOpen]=\"overlayOpen\"\n [cdkConnectedOverlayPositions]=\"overlayPositions\"\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.min-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 >\n <button\n #choiceInputs\n type=\"button\"\n *ngFor=\"let choice of choices\"\n [title]=\"choice.label | translate\"\n class=\"flex px-5 py-1 w-full text-start cursor-pointer transition-colors\"\n [ngClass]=\"\n isSelected(choice)\n ? 'text-white bg-primary hover:text-white hover:bg-primary-darker focus:text-white focus:bg-primary-darker'\n : 'text-gray-900 hover:text-primary-darkest hover:bg-gray-50 focus:text-primary-darkest focus:bg-gray-50'\n \"\n (click)=\"onSelectValue(choice)\"\n (keydown)=\"selectIfEnter($event, choice)\"\n [attr.data-cy-value]=\"choice.value.toString()\"\n [attr.data-cy-active]=\"isSelected(choice) ? 'true' : undefined\"\n >\n <span class=\"text-[14px]\">\n {{ choice.label | translate }}\n </span>\n </button>\n </div>\n</ng-template>\n", styles: [""], dependencies: [{ 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: "component", type:
|
|
24230
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: DropdownSelectorComponent, isStandalone: true, selector: "gn-ui-dropdown-selector", inputs: { title: "title", showTitle: "showTitle", ariaName: "ariaName", choices: "choices", selected: "selected", maxRows: "maxRows", extraBtnClass: "extraBtnClass", minWidth: "minWidth" }, outputs: { selectValue: "selectValue" }, viewQueries: [{ propertyName: "overlayOrigin", first: true, predicate: ["overlayOrigin"], descendants: true }, { propertyName: "overlay", first: true, predicate: CdkConnectedOverlay, descendants: true }, { propertyName: "choiceInputs", predicate: ["choiceInputs"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div class=\"flex flex-col sm:flex-row sm:items-center relative w-full\">\n <span\n *ngIf=\"showTitle\"\n class=\"tracking-wide text-sm mb-2 sm:mb-0 sm:mr-2 whitespace-nowrap\"\n [attr.for]=\"id\"\n >\n {{ title }}\n </span>\n <gn-ui-button\n type=\"outline\"\n class=\"grow min-w-0\"\n extraClass=\"bg-background !p-[8px] !pl-[16px] flex flex-row w-full {{\n extraBtnClass\n }}\"\n [title]=\"title\"\n [attr.aria-owns]=\"id\"\n (buttonClick)=\"openOverlay()\"\n cdkOverlayOrigin\n #overlayOrigin=\"cdkOverlayOrigin\"\n (keydown)=\"handleTriggerKeydown($event)\"\n >\n <div class=\"grow font-medium truncate py-1 mr-2 text-left\">\n {{ getChoiceLabel() | translate }}\n </div>\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</div>\n\n<ng-template\n cdkConnectedOverlay\n cdkConnectedOverlayHasBackdrop\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n [cdkConnectedOverlayOrigin]=\"overlayOrigin\"\n [cdkConnectedOverlayOpen]=\"overlayOpen\"\n [cdkConnectedOverlayPositions]=\"overlayPositions\"\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.min-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 >\n <button\n #choiceInputs\n type=\"button\"\n *ngFor=\"let choice of choices\"\n [title]=\"choice.label | translate\"\n class=\"flex px-5 py-1 w-full text-start cursor-pointer transition-colors\"\n [ngClass]=\"\n isSelected(choice)\n ? 'text-white bg-primary hover:text-white hover:bg-primary-darker focus:text-white focus:bg-primary-darker'\n : 'text-gray-900 hover:text-primary-darkest hover:bg-gray-50 focus:text-primary-darkest focus:bg-gray-50'\n \"\n (click)=\"onSelectValue(choice)\"\n (keydown)=\"selectIfEnter($event, choice)\"\n [attr.data-cy-value]=\"choice.value.toString()\"\n [attr.data-cy-active]=\"isSelected(choice) ? 'true' : undefined\"\n >\n <span class=\"text-[14px]\">\n {{ choice.label | translate }}\n </span>\n </button>\n </div>\n</ng-template>\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: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "ngmodule", type: OverlayModule }, { kind: "directive", type: i1$4.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$4.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { 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 }); }
|
|
23999
24231
|
}
|
|
24000
24232
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: DropdownSelectorComponent, decorators: [{
|
|
24001
24233
|
type: Component,
|
|
24002
|
-
args: [{ selector: 'gn-ui-dropdown-selector', changeDetection: ChangeDetectionStrategy.OnPush,
|
|
24234
|
+
args: [{ selector: 'gn-ui-dropdown-selector', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
24235
|
+
CommonModule,
|
|
24236
|
+
ButtonComponent,
|
|
24237
|
+
OverlayModule,
|
|
24238
|
+
MatIconModule,
|
|
24239
|
+
TranslateModule,
|
|
24240
|
+
], template: "<div class=\"flex flex-col sm:flex-row sm:items-center relative w-full\">\n <span\n *ngIf=\"showTitle\"\n class=\"tracking-wide text-sm mb-2 sm:mb-0 sm:mr-2 whitespace-nowrap\"\n [attr.for]=\"id\"\n >\n {{ title }}\n </span>\n <gn-ui-button\n type=\"outline\"\n class=\"grow min-w-0\"\n extraClass=\"bg-background !p-[8px] !pl-[16px] flex flex-row w-full {{\n extraBtnClass\n }}\"\n [title]=\"title\"\n [attr.aria-owns]=\"id\"\n (buttonClick)=\"openOverlay()\"\n cdkOverlayOrigin\n #overlayOrigin=\"cdkOverlayOrigin\"\n (keydown)=\"handleTriggerKeydown($event)\"\n >\n <div class=\"grow font-medium truncate py-1 mr-2 text-left\">\n {{ getChoiceLabel() | translate }}\n </div>\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</div>\n\n<ng-template\n cdkConnectedOverlay\n cdkConnectedOverlayHasBackdrop\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n [cdkConnectedOverlayOrigin]=\"overlayOrigin\"\n [cdkConnectedOverlayOpen]=\"overlayOpen\"\n [cdkConnectedOverlayPositions]=\"overlayPositions\"\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.min-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 >\n <button\n #choiceInputs\n type=\"button\"\n *ngFor=\"let choice of choices\"\n [title]=\"choice.label | translate\"\n class=\"flex px-5 py-1 w-full text-start cursor-pointer transition-colors\"\n [ngClass]=\"\n isSelected(choice)\n ? 'text-white bg-primary hover:text-white hover:bg-primary-darker focus:text-white focus:bg-primary-darker'\n : 'text-gray-900 hover:text-primary-darkest hover:bg-gray-50 focus:text-primary-darkest focus:bg-gray-50'\n \"\n (click)=\"onSelectValue(choice)\"\n (keydown)=\"selectIfEnter($event, choice)\"\n [attr.data-cy-value]=\"choice.value.toString()\"\n [attr.data-cy-active]=\"isSelected(choice) ? 'true' : undefined\"\n >\n <span class=\"text-[14px]\">\n {{ choice.label | translate }}\n </span>\n </button>\n </div>\n</ng-template>\n" }]
|
|
24003
24241
|
}], propDecorators: { title: [{
|
|
24004
24242
|
type: Input
|
|
24005
24243
|
}], showTitle: [{
|
|
@@ -24213,11 +24451,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
|
|
|
24213
24451
|
|
|
24214
24452
|
class TextInputComponent {
|
|
24215
24453
|
constructor() {
|
|
24454
|
+
this.baseClass = [
|
|
24455
|
+
'appearance-none',
|
|
24456
|
+
'border border-gray-300',
|
|
24457
|
+
'rounded w-full',
|
|
24458
|
+
'p-2',
|
|
24459
|
+
'text-gray-700',
|
|
24460
|
+
'leading-tight',
|
|
24461
|
+
'focus:outline-none',
|
|
24462
|
+
'focus:border-primary',
|
|
24463
|
+
].join(' ');
|
|
24216
24464
|
this.value = '';
|
|
24465
|
+
this.extraClass = '';
|
|
24217
24466
|
this.required = false;
|
|
24218
24467
|
this.rawChange = new Subject();
|
|
24219
24468
|
this.valueChange = this.rawChange.pipe(distinctUntilChanged());
|
|
24220
24469
|
}
|
|
24470
|
+
get classList() {
|
|
24471
|
+
return `${this.baseClass} ${this.extraClass}`;
|
|
24472
|
+
}
|
|
24221
24473
|
ngAfterViewInit() {
|
|
24222
24474
|
this.checkRequired(this.input.nativeElement.value);
|
|
24223
24475
|
}
|
|
@@ -24230,13 +24482,15 @@ class TextInputComponent {
|
|
|
24230
24482
|
this.rawChange.next(value);
|
|
24231
24483
|
}
|
|
24232
24484
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: TextInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
24233
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: TextInputComponent, selector: "gn-ui-text-input", inputs: { value: "value", hint: "hint", required: "required" }, outputs: { valueChange: "valueChange" }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], ngImport: i0, template: "<input\n #input\n class=\"
|
|
24485
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: TextInputComponent, selector: "gn-ui-text-input", inputs: { value: "value", extraClass: "extraClass", hint: "hint", required: "required" }, outputs: { valueChange: "valueChange" }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], ngImport: i0, template: "<input\n #input\n [class]=\"classList\"\n type=\"text\"\n [value]=\"value\"\n (change)=\"handleChange($event)\"\n (input)=\"handleChange($event)\"\n [placeholder]=\"hint\"\n [attr.aria-label]=\"hint\"\n [attr.required]=\"required || null\"\n/>\n", styles: [".invalid{border-color:var(--color-secondary)}\n"] }); }
|
|
24234
24486
|
}
|
|
24235
24487
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: TextInputComponent, decorators: [{
|
|
24236
24488
|
type: Component,
|
|
24237
|
-
args: [{ selector: 'gn-ui-text-input', template: "<input\n #input\n class=\"
|
|
24489
|
+
args: [{ selector: 'gn-ui-text-input', template: "<input\n #input\n [class]=\"classList\"\n type=\"text\"\n [value]=\"value\"\n (change)=\"handleChange($event)\"\n (input)=\"handleChange($event)\"\n [placeholder]=\"hint\"\n [attr.aria-label]=\"hint\"\n [attr.required]=\"required || null\"\n/>\n", styles: [".invalid{border-color:var(--color-secondary)}\n"] }]
|
|
24238
24490
|
}], propDecorators: { value: [{
|
|
24239
24491
|
type: Input
|
|
24492
|
+
}], extraClass: [{
|
|
24493
|
+
type: Input
|
|
24240
24494
|
}], hint: [{
|
|
24241
24495
|
type: Input
|
|
24242
24496
|
}], required: [{
|
|
@@ -24317,9 +24571,28 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
|
|
|
24317
24571
|
class TextAreaComponent {
|
|
24318
24572
|
constructor() {
|
|
24319
24573
|
this.value = '';
|
|
24574
|
+
this.disabled = false;
|
|
24575
|
+
this.extraClass = '';
|
|
24320
24576
|
this.required = false;
|
|
24321
24577
|
this.rawChange = new Subject();
|
|
24322
24578
|
this.valueChange = this.rawChange.pipe(distinctUntilChanged());
|
|
24579
|
+
this.baseClasses = [
|
|
24580
|
+
'w-full',
|
|
24581
|
+
'pt-2',
|
|
24582
|
+
'pl-2',
|
|
24583
|
+
'resize-none',
|
|
24584
|
+
'border',
|
|
24585
|
+
'border-gray-800',
|
|
24586
|
+
'rounded italic',
|
|
24587
|
+
'leading-tight',
|
|
24588
|
+
'focus:outline-none',
|
|
24589
|
+
'focus:bg-background',
|
|
24590
|
+
'focus:border-primary',
|
|
24591
|
+
].join(' ');
|
|
24592
|
+
this.disabledClasses = ['cursor-not-allowed'].join(' ');
|
|
24593
|
+
}
|
|
24594
|
+
get classList() {
|
|
24595
|
+
return `${this.baseClasses} ${this.extraClass} ${this.disabled ? this.disabledClasses : ''}`;
|
|
24323
24596
|
}
|
|
24324
24597
|
ngAfterViewInit() {
|
|
24325
24598
|
this.checkRequired(this.input.nativeElement.value);
|
|
@@ -24333,12 +24606,16 @@ class TextAreaComponent {
|
|
|
24333
24606
|
this.rawChange.next(value);
|
|
24334
24607
|
}
|
|
24335
24608
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: TextAreaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
24336
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: TextAreaComponent, isStandalone: true, selector: "gn-ui-text-area", inputs: { value: "value", placeholder: "placeholder", required: "required" }, outputs: { valueChange: "valueChange" }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], ngImport: i0, template: "<div class=\"h-full flex\">\n <textarea\n #input\n name=\"textArea\"\n [placeholder]=\"placeholder\"\n [value]=\"value\"\n (change)=\"handleChange($event)\"\n (input)=\"handleChange($event)\"\n class=\"
|
|
24609
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: TextAreaComponent, isStandalone: true, selector: "gn-ui-text-area", inputs: { value: "value", disabled: "disabled", extraClass: "extraClass", placeholder: "placeholder", required: "required" }, outputs: { valueChange: "valueChange" }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], ngImport: i0, template: "<div class=\"h-full flex\">\n <textarea\n #input\n name=\"textArea\"\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder\"\n [value]=\"value\"\n (change)=\"handleChange($event)\"\n (input)=\"handleChange($event)\"\n [class]=\"classList\"\n [attr.required]=\"required || null\"\n ></textarea>\n</div>\n", styles: [".invalid{border-color:var(--color-secondary)}\n"] }); }
|
|
24337
24610
|
}
|
|
24338
24611
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: TextAreaComponent, decorators: [{
|
|
24339
24612
|
type: Component,
|
|
24340
|
-
args: [{ selector: 'gn-ui-text-area', standalone: true, template: "<div class=\"h-full flex\">\n <textarea\n #input\n name=\"textArea\"\n [placeholder]=\"placeholder\"\n [value]=\"value\"\n (change)=\"handleChange($event)\"\n (input)=\"handleChange($event)\"\n class=\"
|
|
24341
|
-
}], propDecorators: { value: [{
|
|
24613
|
+
args: [{ selector: 'gn-ui-text-area', standalone: true, template: "<div class=\"h-full flex\">\n <textarea\n #input\n name=\"textArea\"\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder\"\n [value]=\"value\"\n (change)=\"handleChange($event)\"\n (input)=\"handleChange($event)\"\n [class]=\"classList\"\n [attr.required]=\"required || null\"\n ></textarea>\n</div>\n", styles: [".invalid{border-color:var(--color-secondary)}\n"] }]
|
|
24614
|
+
}], ctorParameters: function () { return []; }, propDecorators: { value: [{
|
|
24615
|
+
type: Input
|
|
24616
|
+
}], disabled: [{
|
|
24617
|
+
type: Input
|
|
24618
|
+
}], extraClass: [{
|
|
24342
24619
|
type: Input
|
|
24343
24620
|
}], placeholder: [{
|
|
24344
24621
|
type: Input
|
|
@@ -25234,8 +25511,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
|
|
|
25234
25511
|
|
|
25235
25512
|
class UiInputsModule {
|
|
25236
25513
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: UiInputsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
25237
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.7", ngImport: i0, type: UiInputsModule, declarations: [
|
|
25238
|
-
AutocompleteComponent,
|
|
25514
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.7", ngImport: i0, type: UiInputsModule, declarations: [AutocompleteComponent,
|
|
25239
25515
|
TextInputComponent,
|
|
25240
25516
|
DragAndDropFileInputComponent,
|
|
25241
25517
|
ChipsInputComponent,
|
|
@@ -25265,7 +25541,8 @@ class UiInputsModule {
|
|
|
25265
25541
|
EditableLabelDirective,
|
|
25266
25542
|
TextAreaComponent,
|
|
25267
25543
|
ButtonComponent,
|
|
25268
|
-
ImageInputComponent
|
|
25544
|
+
ImageInputComponent,
|
|
25545
|
+
DropdownSelectorComponent], exports: [DropdownSelectorComponent,
|
|
25269
25546
|
AutocompleteComponent,
|
|
25270
25547
|
ButtonComponent,
|
|
25271
25548
|
TextInputComponent,
|
|
@@ -25300,13 +25577,13 @@ class UiInputsModule {
|
|
|
25300
25577
|
MatInputModule,
|
|
25301
25578
|
MatDatepickerModule,
|
|
25302
25579
|
MatNativeDateModule,
|
|
25303
|
-
ImageInputComponent
|
|
25580
|
+
ImageInputComponent,
|
|
25581
|
+
DropdownSelectorComponent] }); }
|
|
25304
25582
|
}
|
|
25305
25583
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: UiInputsModule, decorators: [{
|
|
25306
25584
|
type: NgModule,
|
|
25307
25585
|
args: [{
|
|
25308
25586
|
declarations: [
|
|
25309
|
-
DropdownSelectorComponent,
|
|
25310
25587
|
AutocompleteComponent,
|
|
25311
25588
|
TextInputComponent,
|
|
25312
25589
|
DragAndDropFileInputComponent,
|
|
@@ -25343,6 +25620,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
|
|
|
25343
25620
|
TextAreaComponent,
|
|
25344
25621
|
ButtonComponent,
|
|
25345
25622
|
ImageInputComponent,
|
|
25623
|
+
DropdownSelectorComponent,
|
|
25346
25624
|
],
|
|
25347
25625
|
exports: [
|
|
25348
25626
|
DropdownSelectorComponent,
|
|
@@ -25416,7 +25694,7 @@ class AddLayerFromOgcApiComponent {
|
|
|
25416
25694
|
this.layerAdded.emit({ ...layerToAdd, title: layer });
|
|
25417
25695
|
}
|
|
25418
25696
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: AddLayerFromOgcApiComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
25419
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: AddLayerFromOgcApiComponent, isStandalone: true, selector: "gn-ui-add-layer-from-ogc-api", inputs: { ogcUrl: "ogcUrl" }, outputs: { layerAdded: "layerAdded" }, ngImport: i0, template: "<div class=\"flex items-center mb-5\">\n <gn-ui-text-input\n [(value)]=\"ogcUrl\"\n (valueChange)=\"urlChange.next($event)\"\n [hint]=\"'map.ogc.urlInput.hint' | translate\"\n class=\"w-96\"\n >\n </gn-ui-text-input>\n</div>\n\n<div *ngIf=\"errorMessage\" class=\"text-red-500 mt-2\">\n {{ errorMessage }}\n</div>\n\n<div *ngIf=\"loading\">\n <p class=\"loading-message\" translate>map.loading.service</p>\n</div>\n\n<div *ngIf=\"!loading && layers.length > 0\">\n <h2 class=\"font-bold\" translate>map.layers.available</h2>\n <ng-container *ngFor=\"let layer of layers\">\n <div class=\"flex items-center justify-between my-2 layer-item-tree\">\n <p class=\"max-w-xs overflow-hidden overflow-ellipsis whitespace-nowrap\">\n {{ layer }}\n </p>\n <gn-ui-button\n class=\"layer-add-btn\"\n type=\"primary\"\n (buttonClick)=\"addLayer(layer)\"\n extraClass=\"text-sm !px-2 !py-1\"\n translate\n ><span translate> map.layer.add </span></gn-ui-button\n >\n </div>\n </ng-container>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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: UiInputsModule }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "component", type: TextInputComponent, selector: "gn-ui-text-input", inputs: ["value", "hint", "required"], outputs: ["valueChange"] }] }); }
|
|
25697
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: AddLayerFromOgcApiComponent, isStandalone: true, selector: "gn-ui-add-layer-from-ogc-api", inputs: { ogcUrl: "ogcUrl" }, outputs: { layerAdded: "layerAdded" }, ngImport: i0, template: "<div class=\"flex items-center mb-5\">\n <gn-ui-text-input\n [(value)]=\"ogcUrl\"\n (valueChange)=\"urlChange.next($event)\"\n [hint]=\"'map.ogc.urlInput.hint' | translate\"\n class=\"w-96\"\n >\n </gn-ui-text-input>\n</div>\n\n<div *ngIf=\"errorMessage\" class=\"text-red-500 mt-2\">\n {{ errorMessage }}\n</div>\n\n<div *ngIf=\"loading\">\n <p class=\"loading-message\" translate>map.loading.service</p>\n</div>\n\n<div *ngIf=\"!loading && layers.length > 0\">\n <h2 class=\"font-bold\" translate>map.layers.available</h2>\n <ng-container *ngFor=\"let layer of layers\">\n <div class=\"flex items-center justify-between my-2 layer-item-tree\">\n <p class=\"max-w-xs overflow-hidden overflow-ellipsis whitespace-nowrap\">\n {{ layer }}\n </p>\n <gn-ui-button\n class=\"layer-add-btn\"\n type=\"primary\"\n (buttonClick)=\"addLayer(layer)\"\n extraClass=\"text-sm !px-2 !py-1\"\n translate\n ><span translate> map.layer.add </span></gn-ui-button\n >\n </div>\n </ng-container>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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: UiInputsModule }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "component", type: TextInputComponent, selector: "gn-ui-text-input", inputs: ["value", "extraClass", "hint", "required"], outputs: ["valueChange"] }] }); }
|
|
25420
25698
|
}
|
|
25421
25699
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: AddLayerFromOgcApiComponent, decorators: [{
|
|
25422
25700
|
type: Component,
|
|
@@ -26372,7 +26650,7 @@ class MarkdownEditorComponent {
|
|
|
26372
26650
|
this.textContentChanged.emit(this.textContent);
|
|
26373
26651
|
}
|
|
26374
26652
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MarkdownEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
26375
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: MarkdownEditorComponent, isStandalone: true, selector: "gn-ui-markdown-editor", inputs: { preview: "preview", helperText: "helperText", placeholder: "placeholder", textContent: "textContent" }, outputs: { textContentChanged: "textContentChanged" }, ngImport: i0, template: "<div class=\"h-full flex flex-col\">\n <p class=\"flex-none mb-2 font-medium text-sm text-gray-900\">\n {{ helperText }}\n </p>\n <div class=\"flex-1\" [hidden]=\"preview\">\n <gn-ui-text-area\n [placeholder]=\"placeholder\"\n [value]=\"textContent\"\n (valueChange)=\"textContentChangedHandler($event)\"\n ></gn-ui-text-area>\n </div>\n <div\n class=\"flex-1 border border-gray-800 rounded overflow-y-scroll\"\n [hidden]=\"!preview\"\n >\n <gn-ui-markdown-parser [textContent]=\"textContent\"></gn-ui-markdown-parser>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "component", type: TextAreaComponent, selector: "gn-ui-text-area", inputs: ["value", "placeholder", "required"], outputs: ["valueChange"] }, { kind: "component", type: MarkdownParserComponent, selector: "gn-ui-markdown-parser", inputs: ["textContent"] }, { kind: "ngmodule", type: TranslateModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
26653
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: MarkdownEditorComponent, isStandalone: true, selector: "gn-ui-markdown-editor", inputs: { preview: "preview", helperText: "helperText", placeholder: "placeholder", textContent: "textContent" }, outputs: { textContentChanged: "textContentChanged" }, ngImport: i0, template: "<div class=\"h-full flex flex-col\">\n <p class=\"flex-none mb-2 font-medium text-sm text-gray-900\">\n {{ helperText }}\n </p>\n <div class=\"flex-1\" [hidden]=\"preview\">\n <gn-ui-text-area\n [placeholder]=\"placeholder\"\n [value]=\"textContent\"\n (valueChange)=\"textContentChangedHandler($event)\"\n ></gn-ui-text-area>\n </div>\n <div\n class=\"flex-1 border border-gray-800 rounded overflow-y-scroll\"\n [hidden]=\"!preview\"\n >\n <gn-ui-markdown-parser [textContent]=\"textContent\"></gn-ui-markdown-parser>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "component", type: TextAreaComponent, selector: "gn-ui-text-area", inputs: ["value", "disabled", "extraClass", "placeholder", "required"], outputs: ["valueChange"] }, { kind: "component", type: MarkdownParserComponent, selector: "gn-ui-markdown-parser", inputs: ["textContent"] }, { kind: "ngmodule", type: TranslateModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
26376
26654
|
}
|
|
26377
26655
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MarkdownEditorComponent, decorators: [{
|
|
26378
26656
|
type: Component,
|
|
@@ -26851,7 +27129,7 @@ class RecordApiFormComponent {
|
|
|
26851
27129
|
this.format$.next(DEFAULT_PARAMS.FORMAT);
|
|
26852
27130
|
}
|
|
26853
27131
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: RecordApiFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
26854
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: RecordApiFormComponent, selector: "gn-ui-record-api-form", inputs: { apiLink: "apiLink" }, ngImport: i0, template: "<div class=\"flex flex-col gap-8\">\n <div class=\"flex flex-col bg-white p-8 ng-star-inserted shadow-xl gap-8\">\n <div class=\"flex flex-row\">\n <div class=\"text-[16px] text-black truncate font-title w-11/12\" translate>\n record.metadata.api.form.create\n </div>\n <button\n (click)=\"resetUrl()\"\n class=\"bg-primary-opacity-50 inline-flex items-center justify-center px-2 py-1 text-13 font-medium leading-none text-white rounded capitalize text-primary-lightest hover:bg-primary transition-colors\"\n >\n <p class=\"text-[13px] uppercase\" translate>\n record.metadata.api.form.reset\n </p>\n </button>\n </div>\n <div class=\"flex flex-row flex-wrap justify-between grow gap-5\">\n <div class=\"flex flex-col gap-3\">\n <p class=\"text-[14px]\" translate>record.metadata.api.form.limit</p>\n <div class=\"flex flex-row items-center gap-2\">\n <gn-ui-text-input\n class=\"mr-2 w-20\"\n (valueChange)=\"setLimit($event)\"\n [value]=\"displayLimit$ | async\"\n hint=\"\"\n >\n </gn-ui-text-input>\n <div class=\"flex items-center\">\n <input\n class=\"mr-2 cursor-pointer\"\n type=\"checkbox\"\n [checked]=\"noLimitChecked$ | async\"\n (change)=\"setLimit('-1')\"\n />\n <span class=\"text-sm\" translate\n >record.metadata.api.form.limit.all</span\n >\n </div>\n </div>\n </div>\n <div class=\"flex flex-col gap-3\">\n <p class=\"text-sm\" translate>record.metadata.api.form.offset</p>\n <gn-ui-text-input\n class=\"w-20\"\n [value]=\"offset$ | async\"\n (valueChange)=\"setOffset($event)\"\n hint=\"\"\n >\n </gn-ui-text-input>\n </div>\n <div class=\"flex flex-col gap-3\">\n <p class=\"text-sm\" translate>record.metadata.api.form.type</p>\n <gn-ui-dropdown-selector\n #dropdown\n [title]=\"''\"\n extraBtnClass=\"secondary min-w-full !w-40 !text-black\"\n [showTitle]=\"false\"\n class=\"text-black\"\n [choices]=\"formatsList\"\n (selectValue)=\"setFormat($event)\"\n [selected]=\"format$ | async\"\n ></gn-ui-dropdown-selector>\n </div>\n </div>\n </div>\n <div class=\"flex flex-col gap-3 mb-3\">\n <div class=\"text-sm text-black truncate font-title w-11/12\" translate>\n record.metadata.api.form.customUrl\n </div>\n <div class=\"bg-white rounded-lg\">\n <gn-ui-copy-text-button\n [text]=\"apiQueryUrl$ | async\"\n ></gn-ui-copy-text-button>\n </div>\n </div>\n</div>\n", styles: [":host ::ng-deep input{color:#000;opacity:1}:host ::ng-deep gn-ui-copy-text-button input[type=text]{color:#000;background-color:#fff}:host ::ng-deep gn-ui-copy-text-button button,host ::ng-deep gn-ui-copy-text-button button:hover{background-color:var(--color-secondary)!important}:host ::ng-deep gn-ui-copy-text-button button mat-icon{color:#fff!important;opacity:1!important}:host ::ng-deep gn-ui-copy-text-button button:hover mat-icon{color:#d3d3d3!important}\n"], dependencies: [{ kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: DropdownSelectorComponent, selector: "gn-ui-dropdown-selector", inputs: ["title", "showTitle", "ariaName", "choices", "selected", "maxRows", "extraBtnClass", "minWidth"], outputs: ["selectValue"] }, { kind: "component", type: TextInputComponent, selector: "gn-ui-text-input", inputs: ["value", "hint", "required"], outputs: ["valueChange"] }, { kind: "component", type: CopyTextButtonComponent, selector: "gn-ui-copy-text-button", inputs: ["text", "tooltipText", "displayText", "rows"] }, { kind: "pipe", type: i1$3.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
27132
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: RecordApiFormComponent, selector: "gn-ui-record-api-form", inputs: { apiLink: "apiLink" }, ngImport: i0, template: "<div class=\"flex flex-col gap-8\">\n <div class=\"flex flex-col bg-white p-8 ng-star-inserted shadow-xl gap-8\">\n <div class=\"flex flex-row\">\n <div class=\"text-[16px] text-black truncate font-title w-11/12\" translate>\n record.metadata.api.form.create\n </div>\n <button\n (click)=\"resetUrl()\"\n class=\"bg-primary-opacity-50 inline-flex items-center justify-center px-2 py-1 text-13 font-medium leading-none text-white rounded capitalize text-primary-lightest hover:bg-primary transition-colors\"\n >\n <p class=\"text-[13px] uppercase\" translate>\n record.metadata.api.form.reset\n </p>\n </button>\n </div>\n <div class=\"flex flex-row flex-wrap justify-between grow gap-5\">\n <div class=\"flex flex-col gap-3\">\n <p class=\"text-[14px]\" translate>record.metadata.api.form.limit</p>\n <div class=\"flex flex-row items-center gap-2\">\n <gn-ui-text-input\n class=\"mr-2 w-20\"\n (valueChange)=\"setLimit($event)\"\n [value]=\"displayLimit$ | async\"\n hint=\"\"\n >\n </gn-ui-text-input>\n <div class=\"flex items-center\">\n <input\n class=\"mr-2 cursor-pointer\"\n type=\"checkbox\"\n [checked]=\"noLimitChecked$ | async\"\n (change)=\"setLimit('-1')\"\n />\n <span class=\"text-sm\" translate\n >record.metadata.api.form.limit.all</span\n >\n </div>\n </div>\n </div>\n <div class=\"flex flex-col gap-3\">\n <p class=\"text-sm\" translate>record.metadata.api.form.offset</p>\n <gn-ui-text-input\n class=\"w-20\"\n [value]=\"offset$ | async\"\n (valueChange)=\"setOffset($event)\"\n hint=\"\"\n >\n </gn-ui-text-input>\n </div>\n <div class=\"flex flex-col gap-3\">\n <p class=\"text-sm\" translate>record.metadata.api.form.type</p>\n <gn-ui-dropdown-selector\n #dropdown\n [title]=\"''\"\n extraBtnClass=\"secondary min-w-full !w-40 !text-black\"\n [showTitle]=\"false\"\n class=\"text-black\"\n [choices]=\"formatsList\"\n (selectValue)=\"setFormat($event)\"\n [selected]=\"format$ | async\"\n ></gn-ui-dropdown-selector>\n </div>\n </div>\n </div>\n <div class=\"flex flex-col gap-3 mb-3\">\n <div class=\"text-sm text-black truncate font-title w-11/12\" translate>\n record.metadata.api.form.customUrl\n </div>\n <div class=\"bg-white rounded-lg\">\n <gn-ui-copy-text-button\n [text]=\"apiQueryUrl$ | async\"\n ></gn-ui-copy-text-button>\n </div>\n </div>\n</div>\n", styles: [":host ::ng-deep input{color:#000;opacity:1}:host ::ng-deep gn-ui-copy-text-button input[type=text]{color:#000;background-color:#fff}:host ::ng-deep gn-ui-copy-text-button button,host ::ng-deep gn-ui-copy-text-button button:hover{background-color:var(--color-secondary)!important}:host ::ng-deep gn-ui-copy-text-button button mat-icon{color:#fff!important;opacity:1!important}:host ::ng-deep gn-ui-copy-text-button button:hover mat-icon{color:#d3d3d3!important}\n"], dependencies: [{ kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: DropdownSelectorComponent, selector: "gn-ui-dropdown-selector", inputs: ["title", "showTitle", "ariaName", "choices", "selected", "maxRows", "extraBtnClass", "minWidth"], outputs: ["selectValue"] }, { kind: "component", type: TextInputComponent, selector: "gn-ui-text-input", inputs: ["value", "extraClass", "hint", "required"], outputs: ["valueChange"] }, { kind: "component", type: CopyTextButtonComponent, selector: "gn-ui-copy-text-button", inputs: ["text", "tooltipText", "displayText", "rows"] }, { kind: "pipe", type: i1$3.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
26855
27133
|
}
|
|
26856
27134
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: RecordApiFormComponent, decorators: [{
|
|
26857
27135
|
type: Component,
|
|
@@ -27198,6 +27476,112 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
|
|
|
27198
27476
|
type: Input
|
|
27199
27477
|
}] } });
|
|
27200
27478
|
|
|
27479
|
+
class TimeSincePipe {
|
|
27480
|
+
constructor(translate) {
|
|
27481
|
+
this.translate = translate;
|
|
27482
|
+
}
|
|
27483
|
+
transform(value) {
|
|
27484
|
+
if (isNaN(value.getTime())) {
|
|
27485
|
+
throw new Error('Invalid Date');
|
|
27486
|
+
}
|
|
27487
|
+
const maintenant = new Date();
|
|
27488
|
+
let locale;
|
|
27489
|
+
switch (this.translate.currentLang) {
|
|
27490
|
+
case 'fr':
|
|
27491
|
+
locale = fr$1;
|
|
27492
|
+
break;
|
|
27493
|
+
case 'de':
|
|
27494
|
+
locale = de$1;
|
|
27495
|
+
break;
|
|
27496
|
+
case 'es':
|
|
27497
|
+
locale = es$1;
|
|
27498
|
+
break;
|
|
27499
|
+
case 'it':
|
|
27500
|
+
locale = it$1;
|
|
27501
|
+
break;
|
|
27502
|
+
case 'nl':
|
|
27503
|
+
locale = nl$1;
|
|
27504
|
+
break;
|
|
27505
|
+
case 'pt':
|
|
27506
|
+
locale = pt$1;
|
|
27507
|
+
break;
|
|
27508
|
+
case 'sk':
|
|
27509
|
+
locale = sk;
|
|
27510
|
+
break;
|
|
27511
|
+
case 'en':
|
|
27512
|
+
default:
|
|
27513
|
+
locale = enUS;
|
|
27514
|
+
break;
|
|
27515
|
+
}
|
|
27516
|
+
return formatDistance(value, maintenant, {
|
|
27517
|
+
addSuffix: true,
|
|
27518
|
+
locale: locale,
|
|
27519
|
+
});
|
|
27520
|
+
}
|
|
27521
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: TimeSincePipe, deps: [{ token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
27522
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.1.7", ngImport: i0, type: TimeSincePipe, isStandalone: true, name: "timeSince" }); }
|
|
27523
|
+
}
|
|
27524
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: TimeSincePipe, decorators: [{
|
|
27525
|
+
type: Pipe,
|
|
27526
|
+
args: [{
|
|
27527
|
+
name: 'timeSince',
|
|
27528
|
+
standalone: true,
|
|
27529
|
+
}]
|
|
27530
|
+
}], ctorParameters: function () { return [{ type: i1$1.TranslateService }]; } });
|
|
27531
|
+
|
|
27532
|
+
class UserFeedbackItemComponent {
|
|
27533
|
+
constructor() {
|
|
27534
|
+
this.newUserFeedbackAnswer = new EventEmitter();
|
|
27535
|
+
this.isAnAnswer = false;
|
|
27536
|
+
this.newAnswer = '';
|
|
27537
|
+
this.isAnswerEmpty = true;
|
|
27538
|
+
}
|
|
27539
|
+
ngOnInit() {
|
|
27540
|
+
this.isAnAnswer = !!this.userFeedbackParent.parentUuid;
|
|
27541
|
+
}
|
|
27542
|
+
onNewAnswerValueChange() {
|
|
27543
|
+
this.isAnswerEmpty = this.newAnswer.length === 0;
|
|
27544
|
+
}
|
|
27545
|
+
publishNewAnswer() {
|
|
27546
|
+
if (this.newAnswer.trim() === '')
|
|
27547
|
+
return;
|
|
27548
|
+
const newAnswer = {
|
|
27549
|
+
...this.userFeedbackParent,
|
|
27550
|
+
uuid: undefined,
|
|
27551
|
+
published: true,
|
|
27552
|
+
comment: this.newAnswer,
|
|
27553
|
+
parentUuid: this.userFeedbackParent.uuid,
|
|
27554
|
+
authorUserId: this.activeUser?.id,
|
|
27555
|
+
authorEmail: this.activeUser?.email,
|
|
27556
|
+
date: new Date(),
|
|
27557
|
+
authorName: `${this.activeUser?.name} ${this.activeUser?.surname}`,
|
|
27558
|
+
};
|
|
27559
|
+
this.newUserFeedbackAnswer.emit(newAnswer);
|
|
27560
|
+
this.newAnswer = '';
|
|
27561
|
+
this.onNewAnswerValueChange();
|
|
27562
|
+
}
|
|
27563
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: UserFeedbackItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27564
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: UserFeedbackItemComponent, selector: "gn-ui-user-feedback-item", inputs: { userFeedbackParent: "userFeedbackParent", userFeedBacksAnswers: "userFeedBacksAnswers", isActiveUserEditor: "isActiveUserEditor", activeUser: "activeUser", isLastComment: "isLastComment", isAddUserFeedbackLoading: "isAddUserFeedbackLoading" }, outputs: { newUserFeedbackAnswer: "newUserFeedbackAnswer" }, ngImport: i0, template: "<div\n *ngIf=\"userFeedbackParent.published\"\n class=\"flex flex-col bg-white rounded w-full\"\n [ngClass]=\"[isAnAnswer ? 'ps-4 ' : 'p-4']\"\n>\n <div class=\"flex flex-row\">\n <div class=\"avatar\">\n <img\n class=\"rounded-full\"\n [src]=\"userFeedbackParent.avatarUrl\"\n alt=\"avatar\"\n />\n </div>\n <div class=\"p-4 flex flex-col\">\n <span>{{ userFeedbackParent.authorName }}</span>\n <span> {{ userFeedbackParent.date | timeSince }}</span>\n </div>\n </div>\n <div data-cy=\"commentText\" class=\"mt-4 whitespace-pre-line\">\n {{ userFeedbackParent.comment }}\n </div>\n <div\n class=\"w-full\"\n *ngFor=\"let userFeedBacksAnswer of userFeedBacksAnswers; let last = last\"\n >\n <hr class=\"-mx-4 my-6\" />\n <gn-ui-user-feedback-item\n [userFeedbackParent]=\"userFeedBacksAnswer\"\n [isLastComment]=\"last\"\n ></gn-ui-user-feedback-item>\n </div>\n\n <div *ngIf=\"isActiveUserEditor\" class=\"mt-2 flex flex-col\">\n <hr class=\"-mx-4 my-4\" />\n <div\n id=\"new-comment-buttons\"\n class=\"flex flex-row gap-2 items-center justify-end\"\n >\n <gn-ui-text-area\n [disabled]=\"isAddUserFeedbackLoading\"\n [(value)]=\"newAnswer\"\n (valueChange)=\"onNewAnswerValueChange()\"\n (keyup.control.enter)=\"publishNewAnswer()\"\n [placeholder]=\"\n 'record.metadata.userFeedbacks.newAnswer.placeholder' | translate\n \"\n class=\"grow\"\n extraClass=\"bg-transparent border-0 placeholder-primary-darker text-primary-darker h-9\"\n ></gn-ui-text-area>\n <div *ngIf=\"!isAnswerEmpty\" class=\"flex flex-row justify-end\">\n <gn-ui-button\n [disabled]=\"isAddUserFeedbackLoading\"\n [type]=\"'outline'\"\n (buttonClick)=\"publishNewAnswer()\"\n [title]=\"\n 'record.metadata.userFeedbacks.newAnswer.buttonTitle' | translate\n \"\n extraClass=\"!p-[0.5em] text-primary-darker border-primary-darker h-9\"\n >\n <mat-icon\n class=\"material-symbols-outlined\"\n *ngIf=\"!isAddUserFeedbackLoading\"\n >\n send\n </mat-icon>\n <ng-container *ngIf=\"isAddUserFeedbackLoading\">\n <div class=\"flex justify-center w-full\">\n <gn-ui-spinning-loader></gn-ui-spinning-loader>\n </div>\n </ng-container>\n </gn-ui-button>\n </div>\n </div>\n </div>\n</div>\n", styles: [""], dependencies: [{ 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: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: SpinningLoaderComponent, selector: "gn-ui-spinning-loader" }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "component", type: TextAreaComponent, selector: "gn-ui-text-area", inputs: ["value", "disabled", "extraClass", "placeholder", "required"], outputs: ["valueChange"] }, { kind: "component", type: UserFeedbackItemComponent, selector: "gn-ui-user-feedback-item", inputs: ["userFeedbackParent", "userFeedBacksAnswers", "isActiveUserEditor", "activeUser", "isLastComment", "isAddUserFeedbackLoading"], outputs: ["newUserFeedbackAnswer"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "pipe", type: TimeSincePipe, name: "timeSince" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
27565
|
+
}
|
|
27566
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: UserFeedbackItemComponent, decorators: [{
|
|
27567
|
+
type: Component,
|
|
27568
|
+
args: [{ selector: 'gn-ui-user-feedback-item', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n *ngIf=\"userFeedbackParent.published\"\n class=\"flex flex-col bg-white rounded w-full\"\n [ngClass]=\"[isAnAnswer ? 'ps-4 ' : 'p-4']\"\n>\n <div class=\"flex flex-row\">\n <div class=\"avatar\">\n <img\n class=\"rounded-full\"\n [src]=\"userFeedbackParent.avatarUrl\"\n alt=\"avatar\"\n />\n </div>\n <div class=\"p-4 flex flex-col\">\n <span>{{ userFeedbackParent.authorName }}</span>\n <span> {{ userFeedbackParent.date | timeSince }}</span>\n </div>\n </div>\n <div data-cy=\"commentText\" class=\"mt-4 whitespace-pre-line\">\n {{ userFeedbackParent.comment }}\n </div>\n <div\n class=\"w-full\"\n *ngFor=\"let userFeedBacksAnswer of userFeedBacksAnswers; let last = last\"\n >\n <hr class=\"-mx-4 my-6\" />\n <gn-ui-user-feedback-item\n [userFeedbackParent]=\"userFeedBacksAnswer\"\n [isLastComment]=\"last\"\n ></gn-ui-user-feedback-item>\n </div>\n\n <div *ngIf=\"isActiveUserEditor\" class=\"mt-2 flex flex-col\">\n <hr class=\"-mx-4 my-4\" />\n <div\n id=\"new-comment-buttons\"\n class=\"flex flex-row gap-2 items-center justify-end\"\n >\n <gn-ui-text-area\n [disabled]=\"isAddUserFeedbackLoading\"\n [(value)]=\"newAnswer\"\n (valueChange)=\"onNewAnswerValueChange()\"\n (keyup.control.enter)=\"publishNewAnswer()\"\n [placeholder]=\"\n 'record.metadata.userFeedbacks.newAnswer.placeholder' | translate\n \"\n class=\"grow\"\n extraClass=\"bg-transparent border-0 placeholder-primary-darker text-primary-darker h-9\"\n ></gn-ui-text-area>\n <div *ngIf=\"!isAnswerEmpty\" class=\"flex flex-row justify-end\">\n <gn-ui-button\n [disabled]=\"isAddUserFeedbackLoading\"\n [type]=\"'outline'\"\n (buttonClick)=\"publishNewAnswer()\"\n [title]=\"\n 'record.metadata.userFeedbacks.newAnswer.buttonTitle' | translate\n \"\n extraClass=\"!p-[0.5em] text-primary-darker border-primary-darker h-9\"\n >\n <mat-icon\n class=\"material-symbols-outlined\"\n *ngIf=\"!isAddUserFeedbackLoading\"\n >\n send\n </mat-icon>\n <ng-container *ngIf=\"isAddUserFeedbackLoading\">\n <div class=\"flex justify-center w-full\">\n <gn-ui-spinning-loader></gn-ui-spinning-loader>\n </div>\n </ng-container>\n </gn-ui-button>\n </div>\n </div>\n </div>\n</div>\n" }]
|
|
27569
|
+
}], propDecorators: { userFeedbackParent: [{
|
|
27570
|
+
type: Input
|
|
27571
|
+
}], userFeedBacksAnswers: [{
|
|
27572
|
+
type: Input
|
|
27573
|
+
}], isActiveUserEditor: [{
|
|
27574
|
+
type: Input
|
|
27575
|
+
}], activeUser: [{
|
|
27576
|
+
type: Input
|
|
27577
|
+
}], isLastComment: [{
|
|
27578
|
+
type: Input
|
|
27579
|
+
}], isAddUserFeedbackLoading: [{
|
|
27580
|
+
type: Input
|
|
27581
|
+
}], newUserFeedbackAnswer: [{
|
|
27582
|
+
type: Output
|
|
27583
|
+
}] } });
|
|
27584
|
+
|
|
27201
27585
|
class UiElementsModule {
|
|
27202
27586
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: UiElementsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
27203
27587
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.7", ngImport: i0, type: UiElementsModule, declarations: [MetadataInfoComponent,
|
|
@@ -27219,6 +27603,7 @@ class UiElementsModule {
|
|
|
27219
27603
|
PaginationButtonsComponent,
|
|
27220
27604
|
MaxLinesComponent,
|
|
27221
27605
|
RecordApiFormComponent,
|
|
27606
|
+
UserFeedbackItemComponent,
|
|
27222
27607
|
ImageOverlayPreviewComponent], imports: [CommonModule,
|
|
27223
27608
|
MatIconModule,
|
|
27224
27609
|
MatTooltipModule,
|
|
@@ -27229,7 +27614,8 @@ class UiElementsModule {
|
|
|
27229
27614
|
FormsModule,
|
|
27230
27615
|
NgOptimizedImage,
|
|
27231
27616
|
MarkdownParserComponent,
|
|
27232
|
-
ThumbnailComponent
|
|
27617
|
+
ThumbnailComponent,
|
|
27618
|
+
TimeSincePipe], exports: [MetadataInfoComponent,
|
|
27233
27619
|
ContentGhostComponent,
|
|
27234
27620
|
DownloadItemComponent,
|
|
27235
27621
|
DownloadsListComponent,
|
|
@@ -27249,6 +27635,7 @@ class UiElementsModule {
|
|
|
27249
27635
|
MaxLinesComponent,
|
|
27250
27636
|
RecordApiFormComponent,
|
|
27251
27637
|
MarkdownParserComponent,
|
|
27638
|
+
UserFeedbackItemComponent,
|
|
27252
27639
|
ImageOverlayPreviewComponent] }); }
|
|
27253
27640
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: UiElementsModule, imports: [CommonModule,
|
|
27254
27641
|
MatIconModule,
|
|
@@ -27279,6 +27666,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
|
|
|
27279
27666
|
NgOptimizedImage,
|
|
27280
27667
|
MarkdownParserComponent,
|
|
27281
27668
|
ThumbnailComponent,
|
|
27669
|
+
TimeSincePipe,
|
|
27282
27670
|
],
|
|
27283
27671
|
declarations: [
|
|
27284
27672
|
MetadataInfoComponent,
|
|
@@ -27300,6 +27688,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
|
|
|
27300
27688
|
PaginationButtonsComponent,
|
|
27301
27689
|
MaxLinesComponent,
|
|
27302
27690
|
RecordApiFormComponent,
|
|
27691
|
+
UserFeedbackItemComponent,
|
|
27303
27692
|
ImageOverlayPreviewComponent,
|
|
27304
27693
|
],
|
|
27305
27694
|
exports: [
|
|
@@ -27323,6 +27712,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
|
|
|
27323
27712
|
MaxLinesComponent,
|
|
27324
27713
|
RecordApiFormComponent,
|
|
27325
27714
|
MarkdownParserComponent,
|
|
27715
|
+
UserFeedbackItemComponent,
|
|
27326
27716
|
ImageOverlayPreviewComponent,
|
|
27327
27717
|
],
|
|
27328
27718
|
}]
|
|
@@ -29652,7 +30042,7 @@ class AddLayerFromWmsComponent {
|
|
|
29652
30042
|
this.mapFacade.addLayer({ ...layerToAdd, title: layer.title });
|
|
29653
30043
|
}
|
|
29654
30044
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: AddLayerFromWmsComponent, deps: [{ token: MapFacade }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
29655
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: AddLayerFromWmsComponent, selector: "gn-ui-add-layer-from-wms", ngImport: i0, template: "<div class=\"flex items-center mb-5\">\n <gn-ui-text-input\n [(value)]=\"wmsUrl\"\n (valueChange)=\"urlChange.next($event)\"\n [hint]=\"'map.wms.urlInput.hint' | translate\"\n class=\"w-96\"\n >\n </gn-ui-text-input>\n</div>\n\n<div *ngIf=\"errorMessage\" class=\"text-red-500 mt-2\">\n {{ errorMessage }}\n</div>\n\n<div *ngIf=\"loading\">\n <p class=\"loading-message\" translate>map.loading.service</p>\n</div>\n\n<div *ngIf=\"!loading && layers.length > 0\">\n <h2 class=\"font-bold\" translate>map.layers.available</h2>\n <ng-container\n *ngFor=\"let layer of layers\"\n [ngTemplateOutlet]=\"layerTreeItem\"\n [ngTemplateOutletContext]=\"{\n layer: layer\n }\"\n ></ng-container>\n</div>\n\n<ng-template #layerTreeItem let-layer=\"layer\">\n <div class=\"flex items-center justify-between layer-tree-item my-2\">\n <p class=\"max-w-xs overflow-hidden overflow-ellipsis whitespace-nowrap\">\n {{ layer.title }}\n </p>\n <gn-ui-button\n *ngIf=\"layer.name\"\n class=\"layer-add-btn\"\n type=\"primary\"\n (buttonClick)=\"addLayer(layer)\"\n extraClass=\"text-sm !px-2 !py-1\"\n translate\n ><span translate> map.layer.add </span></gn-ui-button\n >\n </div>\n <div *ngIf=\"layer.children?.length > 0\" class=\"ml-4\">\n <ng-container\n *ngFor=\"let child of layer.children\"\n [ngTemplateOutlet]=\"layerTreeItem\"\n [ngTemplateOutletContext]=\"{\n layer: child\n }\"\n >\n </ng-container>\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: i1$3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "component", type: TextInputComponent, selector: "gn-ui-text-input", inputs: ["value", "hint", "required"], outputs: ["valueChange"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }] }); }
|
|
30045
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: AddLayerFromWmsComponent, selector: "gn-ui-add-layer-from-wms", ngImport: i0, template: "<div class=\"flex items-center mb-5\">\n <gn-ui-text-input\n [(value)]=\"wmsUrl\"\n (valueChange)=\"urlChange.next($event)\"\n [hint]=\"'map.wms.urlInput.hint' | translate\"\n class=\"w-96\"\n >\n </gn-ui-text-input>\n</div>\n\n<div *ngIf=\"errorMessage\" class=\"text-red-500 mt-2\">\n {{ errorMessage }}\n</div>\n\n<div *ngIf=\"loading\">\n <p class=\"loading-message\" translate>map.loading.service</p>\n</div>\n\n<div *ngIf=\"!loading && layers.length > 0\">\n <h2 class=\"font-bold\" translate>map.layers.available</h2>\n <ng-container\n *ngFor=\"let layer of layers\"\n [ngTemplateOutlet]=\"layerTreeItem\"\n [ngTemplateOutletContext]=\"{\n layer: layer\n }\"\n ></ng-container>\n</div>\n\n<ng-template #layerTreeItem let-layer=\"layer\">\n <div class=\"flex items-center justify-between layer-tree-item my-2\">\n <p class=\"max-w-xs overflow-hidden overflow-ellipsis whitespace-nowrap\">\n {{ layer.title }}\n </p>\n <gn-ui-button\n *ngIf=\"layer.name\"\n class=\"layer-add-btn\"\n type=\"primary\"\n (buttonClick)=\"addLayer(layer)\"\n extraClass=\"text-sm !px-2 !py-1\"\n translate\n ><span translate> map.layer.add </span></gn-ui-button\n >\n </div>\n <div *ngIf=\"layer.children?.length > 0\" class=\"ml-4\">\n <ng-container\n *ngFor=\"let child of layer.children\"\n [ngTemplateOutlet]=\"layerTreeItem\"\n [ngTemplateOutletContext]=\"{\n layer: child\n }\"\n >\n </ng-container>\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: i1$3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "component", type: TextInputComponent, selector: "gn-ui-text-input", inputs: ["value", "extraClass", "hint", "required"], outputs: ["valueChange"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }] }); }
|
|
29656
30046
|
}
|
|
29657
30047
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: AddLayerFromWmsComponent, decorators: [{
|
|
29658
30048
|
type: Component,
|
|
@@ -29803,7 +30193,7 @@ class AddLayerFromWfsComponent {
|
|
|
29803
30193
|
this.mapFacade.addLayer({ ...layerToAdd, title: layer.title });
|
|
29804
30194
|
}
|
|
29805
30195
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: AddLayerFromWfsComponent, deps: [{ token: MapFacade }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
29806
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: AddLayerFromWfsComponent, selector: "gn-ui-add-layer-from-wfs", ngImport: i0, template: "<div class=\"flex items-center mb-5\">\n <gn-ui-text-input\n [(value)]=\"wfsUrl\"\n (valueChange)=\"urlChange.next($event)\"\n [hint]=\"'map.wfs.urlInput.hint' | translate\"\n class=\"w-96\"\n >\n </gn-ui-text-input>\n</div>\n\n<div *ngIf=\"errorMessage\" class=\"text-red-500 mt-2\">\n {{ errorMessage }}\n</div>\n\n<div *ngIf=\"loading\">\n <p class=\"loading-message\" translate>map.loading.service</p>\n</div>\n\n<div *ngIf=\"!loading && layers.length > 0\">\n <h2 class=\"font-bold\" translate>map.layers.available</h2>\n <ng-container *ngFor=\"let layer of layers\">\n <div class=\"flex items-center justify-between my-2 layer-item-tree\">\n <p class=\"max-w-xs overflow-hidden overflow-ellipsis whitespace-nowrap\">\n {{ layer.title }}\n </p>\n <gn-ui-button\n *ngIf=\"layer.name\"\n class=\"layer-add-btn\"\n type=\"primary\"\n (buttonClick)=\"addLayer(layer)\"\n extraClass=\"text-sm !px-2 !py-1\"\n translate\n ><span translate> map.layer.add </span></gn-ui-button\n >\n </div>\n </ng-container>\n</div>\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: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "component", type: TextInputComponent, selector: "gn-ui-text-input", inputs: ["value", "hint", "required"], outputs: ["valueChange"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }] }); }
|
|
30196
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: AddLayerFromWfsComponent, selector: "gn-ui-add-layer-from-wfs", ngImport: i0, template: "<div class=\"flex items-center mb-5\">\n <gn-ui-text-input\n [(value)]=\"wfsUrl\"\n (valueChange)=\"urlChange.next($event)\"\n [hint]=\"'map.wfs.urlInput.hint' | translate\"\n class=\"w-96\"\n >\n </gn-ui-text-input>\n</div>\n\n<div *ngIf=\"errorMessage\" class=\"text-red-500 mt-2\">\n {{ errorMessage }}\n</div>\n\n<div *ngIf=\"loading\">\n <p class=\"loading-message\" translate>map.loading.service</p>\n</div>\n\n<div *ngIf=\"!loading && layers.length > 0\">\n <h2 class=\"font-bold\" translate>map.layers.available</h2>\n <ng-container *ngFor=\"let layer of layers\">\n <div class=\"flex items-center justify-between my-2 layer-item-tree\">\n <p class=\"max-w-xs overflow-hidden overflow-ellipsis whitespace-nowrap\">\n {{ layer.title }}\n </p>\n <gn-ui-button\n *ngIf=\"layer.name\"\n class=\"layer-add-btn\"\n type=\"primary\"\n (buttonClick)=\"addLayer(layer)\"\n extraClass=\"text-sm !px-2 !py-1\"\n translate\n ><span translate> map.layer.add </span></gn-ui-button\n >\n </div>\n </ng-container>\n</div>\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: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "component", type: TextInputComponent, selector: "gn-ui-text-input", inputs: ["value", "extraClass", "hint", "required"], outputs: ["valueChange"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }] }); }
|
|
29807
30197
|
}
|
|
29808
30198
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: AddLayerFromWfsComponent, decorators: [{
|
|
29809
30199
|
type: Component,
|
|
@@ -30198,31 +30588,61 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
|
|
|
30198
30588
|
], template: "<div class=\"flex flex-col gap-6 p-6 items-start pointer-events-none\">\n <gn-ui-notification\n *ngFor=\"\n let notification of notificationsService.notifications$ | async;\n trackBy: trackById\n \"\n class=\"max-w-full pointer-events-auto\"\n [text]=\"notification.text\"\n [type]=\"notification.type\"\n [title]=\"notification.title\"\n [closeMessage]=\"notification.closeMessage\"\n (notificationClose)=\"\n notificationsService.removeNotificationById(notification.id)\n \"\n [@enterExit]\n ></gn-ui-notification>\n</div>\n" }]
|
|
30199
30589
|
}], ctorParameters: function () { return [{ type: NotificationsService }]; } });
|
|
30200
30590
|
|
|
30591
|
+
/*
|
|
30592
|
+
Metadata actions
|
|
30593
|
+
*/
|
|
30201
30594
|
const loadFullMetadata = createAction('[Metadata view] Load full metadata', props());
|
|
30202
30595
|
const setIncompleteMetadata = createAction('[Metadata view] Set incomplete metadata', props());
|
|
30203
|
-
const
|
|
30204
|
-
const
|
|
30596
|
+
const loadFullMetadataSuccess = createAction('[Metadata view] Load full metadata success', props());
|
|
30597
|
+
const loadFullMetadataFailure = createAction('[Metadata view] Load full metadata failure', props());
|
|
30598
|
+
const closeMetadata = createAction('[Metadata view] close');
|
|
30599
|
+
/*
|
|
30600
|
+
Related actions
|
|
30601
|
+
*/
|
|
30205
30602
|
const setRelated = createAction('[Metadata view] Set related records', props());
|
|
30603
|
+
/*
|
|
30604
|
+
ChartConfig actions
|
|
30605
|
+
*/
|
|
30206
30606
|
const setChartConfig = createAction('[Metadata view] Set chart config', props());
|
|
30207
|
-
|
|
30607
|
+
/*
|
|
30608
|
+
User Feedbacks actions
|
|
30609
|
+
*/
|
|
30610
|
+
const addUserFeedback = createAction('[Metadata view] Add UserFeedback', props());
|
|
30611
|
+
const addUserFeedbackSuccess = createAction('[Metadata view] Add UserFeedback Success', props());
|
|
30612
|
+
const addUserFeedbackFailure = createAction('[Metadata view] Add UserFeedback Failure', props());
|
|
30613
|
+
const loadUserFeedbacks = createAction('[Metadata view] Load UserFeedbacks', props());
|
|
30614
|
+
const loadUserFeedbacksSuccess = createAction('[Metadata view] Load UserFeedbacks Success', props());
|
|
30615
|
+
const loadUserFeedbacksFailure = createAction('[Metadata view] Load UserFeedbacks Failure', props());
|
|
30208
30616
|
|
|
30209
30617
|
var mdview_actions = /*#__PURE__*/Object.freeze({
|
|
30210
30618
|
__proto__: null,
|
|
30211
|
-
|
|
30212
|
-
|
|
30619
|
+
addUserFeedback: addUserFeedback,
|
|
30620
|
+
addUserFeedbackFailure: addUserFeedbackFailure,
|
|
30621
|
+
addUserFeedbackSuccess: addUserFeedbackSuccess,
|
|
30622
|
+
closeMetadata: closeMetadata,
|
|
30213
30623
|
loadFullMetadata: loadFullMetadata,
|
|
30214
|
-
|
|
30624
|
+
loadFullMetadataFailure: loadFullMetadataFailure,
|
|
30625
|
+
loadFullMetadataSuccess: loadFullMetadataSuccess,
|
|
30626
|
+
loadUserFeedbacks: loadUserFeedbacks,
|
|
30627
|
+
loadUserFeedbacksFailure: loadUserFeedbacksFailure,
|
|
30628
|
+
loadUserFeedbacksSuccess: loadUserFeedbacksSuccess,
|
|
30215
30629
|
setChartConfig: setChartConfig,
|
|
30216
30630
|
setIncompleteMetadata: setIncompleteMetadata,
|
|
30217
30631
|
setRelated: setRelated
|
|
30218
30632
|
});
|
|
30219
30633
|
|
|
30220
|
-
const
|
|
30221
|
-
const
|
|
30634
|
+
const METADATA_VIEW_FEATURE_STATE_KEY = 'metadataView';
|
|
30635
|
+
const initialMetadataViewState = {
|
|
30222
30636
|
error: null,
|
|
30223
30637
|
loadingFull: false,
|
|
30638
|
+
allUserFeedbacksLoading: false,
|
|
30639
|
+
addUserFeedbackLoading: false,
|
|
30224
30640
|
};
|
|
30225
|
-
const
|
|
30641
|
+
const metadataViewReducer = createReducer(initialMetadataViewState,
|
|
30642
|
+
/*
|
|
30643
|
+
Metadata reducers
|
|
30644
|
+
*/
|
|
30645
|
+
on(loadFullMetadata, (state) => ({
|
|
30226
30646
|
...state,
|
|
30227
30647
|
error: null,
|
|
30228
30648
|
loadingFull: true,
|
|
@@ -30230,38 +30650,82 @@ const mdViewReducer = createReducer(initialMdviewState, on(loadFullMetadata, (st
|
|
|
30230
30650
|
...state,
|
|
30231
30651
|
error: null,
|
|
30232
30652
|
metadata: incomplete,
|
|
30233
|
-
})), on(
|
|
30653
|
+
})), on(loadFullMetadataSuccess, (state, { full }) => ({
|
|
30234
30654
|
...state,
|
|
30235
30655
|
error: null,
|
|
30236
30656
|
metadata: full,
|
|
30237
30657
|
loadingFull: false,
|
|
30238
|
-
})), on(
|
|
30658
|
+
})), on(loadFullMetadataFailure, (state, { otherError, notFound }) => ({
|
|
30239
30659
|
...state,
|
|
30240
30660
|
error: { otherError, notFound },
|
|
30241
30661
|
loadingFull: false,
|
|
30242
|
-
})), on(
|
|
30662
|
+
})), on(closeMetadata, (state) => {
|
|
30663
|
+
const { metadata, related, userFeedbacks, ...stateWithoutMetadata } = state;
|
|
30664
|
+
return stateWithoutMetadata;
|
|
30665
|
+
}),
|
|
30666
|
+
/*
|
|
30667
|
+
Related reducers
|
|
30668
|
+
*/
|
|
30669
|
+
on(setRelated, (state, { related }) => ({
|
|
30243
30670
|
...state,
|
|
30244
30671
|
related,
|
|
30245
|
-
})),
|
|
30672
|
+
})),
|
|
30673
|
+
/*
|
|
30674
|
+
ChartConfig reducers
|
|
30675
|
+
*/
|
|
30676
|
+
on(setChartConfig, (state, { chartConfig }) => ({
|
|
30246
30677
|
...state,
|
|
30247
30678
|
chartConfig,
|
|
30248
|
-
})),
|
|
30249
|
-
|
|
30250
|
-
|
|
30251
|
-
|
|
30252
|
-
|
|
30253
|
-
|
|
30254
|
-
|
|
30679
|
+
})),
|
|
30680
|
+
/*
|
|
30681
|
+
UserFeedbacks reducers
|
|
30682
|
+
*/
|
|
30683
|
+
on(loadUserFeedbacks, (state) => ({
|
|
30684
|
+
...state,
|
|
30685
|
+
error: null,
|
|
30686
|
+
allUserFeedbacksLoading: true,
|
|
30687
|
+
})), on(addUserFeedback, (state) => ({
|
|
30688
|
+
...state,
|
|
30689
|
+
addUserFeedbackLoading: true,
|
|
30690
|
+
})), on(loadUserFeedbacksSuccess, (state, { userFeedbacks }) => ({
|
|
30691
|
+
...state,
|
|
30692
|
+
error: null,
|
|
30693
|
+
userFeedbacks: userFeedbacks,
|
|
30694
|
+
addUserFeedbackLoading: false,
|
|
30695
|
+
allUserFeedbacksLoading: false,
|
|
30696
|
+
})), on(loadUserFeedbacksFailure, (state, { otherError, notFound }) => ({
|
|
30697
|
+
...state,
|
|
30698
|
+
error: { otherError, notFound },
|
|
30699
|
+
addUserFeedbackLoading: false,
|
|
30700
|
+
allUserFeedbacksLoading: false,
|
|
30701
|
+
})));
|
|
30702
|
+
function reducer$1(metadataViewState, action) {
|
|
30703
|
+
return metadataViewReducer(metadataViewState, action);
|
|
30255
30704
|
}
|
|
30256
30705
|
|
|
30257
|
-
const getMdViewState = createFeatureSelector(
|
|
30706
|
+
const getMdViewState = createFeatureSelector(METADATA_VIEW_FEATURE_STATE_KEY);
|
|
30707
|
+
/*
|
|
30708
|
+
Metadata selectors
|
|
30709
|
+
*/
|
|
30258
30710
|
const getMetadataUuid = createSelector(getMdViewState, (state) => state.metadata ? state.metadata.uniqueIdentifier : null);
|
|
30259
30711
|
const getMetadata = createSelector(getMdViewState, (state) => state.metadata);
|
|
30260
30712
|
const getMetadataIsIncomplete = createSelector(getMdViewState, (state) => (state.metadata ? state.loadingFull : null));
|
|
30261
30713
|
const getMetadataIsLoading = createSelector(getMdViewState, (state) => state.loadingFull);
|
|
30262
30714
|
const getMetadataError = createSelector(getMdViewState, (state) => state.error);
|
|
30715
|
+
/*
|
|
30716
|
+
Related selectors
|
|
30717
|
+
*/
|
|
30263
30718
|
const getRelated = createSelector(getMdViewState, (state) => state.related);
|
|
30719
|
+
/*
|
|
30720
|
+
Metadata selectors
|
|
30721
|
+
*/
|
|
30264
30722
|
const getChartConfig = createSelector(getMdViewState, (state) => state.chartConfig);
|
|
30723
|
+
/*
|
|
30724
|
+
UserFeedback selectors
|
|
30725
|
+
*/
|
|
30726
|
+
const getUserFeedbacks = createSelector(getMdViewState, (state) => state.userFeedbacks);
|
|
30727
|
+
const getAllUserFeedbacksLoading = createSelector(getMdViewState, (state) => state.allUserFeedbacksLoading);
|
|
30728
|
+
const getAddUserFeedbacksLoading = createSelector(getMdViewState, (state) => state.addUserFeedbackLoading);
|
|
30265
30729
|
|
|
30266
30730
|
/**
|
|
30267
30731
|
* The Metadata View Facade is used to render complete metadata records.
|
|
@@ -30270,11 +30734,12 @@ const getChartConfig = createSelector(getMdViewState, (state) => state.chartConf
|
|
|
30270
30734
|
* To clear the current record use the `close()` method.
|
|
30271
30735
|
*/
|
|
30272
30736
|
class MdViewFacade {
|
|
30273
|
-
constructor(store, linkClassifier) {
|
|
30737
|
+
constructor(store, linkClassifier, avatarService) {
|
|
30274
30738
|
this.store = store;
|
|
30275
30739
|
this.linkClassifier = linkClassifier;
|
|
30740
|
+
this.avatarService = avatarService;
|
|
30276
30741
|
this.isPresent$ = this.store.pipe(select(getMetadataUuid), map$1((uuid) => !!uuid));
|
|
30277
|
-
this.
|
|
30742
|
+
this.isMetadataLoading$ = this.store.pipe(select(getMetadataIsLoading));
|
|
30278
30743
|
this.metadata$ = this.store.pipe(select(getMetadata), filter((md) => !!md));
|
|
30279
30744
|
this.isIncomplete$ = this.store.pipe(select(getMetadataIsIncomplete), filter((incomplete) => incomplete !== null));
|
|
30280
30745
|
this.error$ = this.store.pipe(select(getMetadataError));
|
|
@@ -30288,6 +30753,9 @@ class MdViewFacade {
|
|
|
30288
30753
|
this.geoDataLinks$ = this.allLinks$.pipe(map$1((links) => links.filter((link) => this.linkClassifier.hasUsage(link, LinkUsage.GEODATA))));
|
|
30289
30754
|
this.landingPageLinks$ = this.metadata$.pipe(map$1((record) => ('landingPage' in record ? [record.landingPage] : [])));
|
|
30290
30755
|
this.otherLinks$ = this.allLinks$.pipe(map$1((links) => links.filter((link) => this.linkClassifier.hasUsage(link, LinkUsage.UNKNOWN))));
|
|
30756
|
+
this.userFeedbacks$ = this.store.pipe(select(getUserFeedbacks));
|
|
30757
|
+
this.isAllUserFeedbackLoading$ = this.store.pipe(select(getAllUserFeedbacksLoading));
|
|
30758
|
+
this.isAddUserFeedbackLoading$ = this.store.pipe(select(getAddUserFeedbacksLoading));
|
|
30291
30759
|
}
|
|
30292
30760
|
/**
|
|
30293
30761
|
* This will show an incomplete record (e.g. from a search result) as a preview
|
|
@@ -30302,39 +30770,73 @@ class MdViewFacade {
|
|
|
30302
30770
|
loadFull(uuid) {
|
|
30303
30771
|
this.store.dispatch(loadFullMetadata({ uuid }));
|
|
30304
30772
|
}
|
|
30305
|
-
|
|
30306
|
-
this.store.dispatch(
|
|
30773
|
+
closeMetadata() {
|
|
30774
|
+
this.store.dispatch(closeMetadata());
|
|
30307
30775
|
}
|
|
30308
30776
|
setChartConfig(chartConfig) {
|
|
30309
30777
|
this.store.dispatch(setChartConfig({ chartConfig }));
|
|
30310
30778
|
}
|
|
30311
|
-
|
|
30779
|
+
/**
|
|
30780
|
+
* UserFeedbacks
|
|
30781
|
+
*/
|
|
30782
|
+
addUserFeedback(userFeedback) {
|
|
30783
|
+
this.store.dispatch(addUserFeedback({ userFeedback }));
|
|
30784
|
+
}
|
|
30785
|
+
loadUserFeedbacks(datasetUuid) {
|
|
30786
|
+
this.store.dispatch(loadUserFeedbacks({ datasetUuid }));
|
|
30787
|
+
}
|
|
30788
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MdViewFacade, deps: [{ token: i1$2.Store }, { token: LinkClassifierService }, { token: AvatarServiceInterface }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
30312
30789
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MdViewFacade }); }
|
|
30313
30790
|
}
|
|
30314
30791
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MdViewFacade, decorators: [{
|
|
30315
30792
|
type: Injectable
|
|
30316
|
-
}], ctorParameters: function () { return [{ type: i1$2.Store }, { type: LinkClassifierService }]; } });
|
|
30793
|
+
}], ctorParameters: function () { return [{ type: i1$2.Store }, { type: LinkClassifierService }, { type: AvatarServiceInterface }]; } });
|
|
30317
30794
|
|
|
30318
30795
|
class MdViewEffects {
|
|
30319
|
-
constructor(actions$, recordsRepository) {
|
|
30796
|
+
constructor(actions$, recordsRepository, platformServiceInterface) {
|
|
30320
30797
|
this.actions$ = actions$;
|
|
30321
30798
|
this.recordsRepository = recordsRepository;
|
|
30322
|
-
this.
|
|
30799
|
+
this.platformServiceInterface = platformServiceInterface;
|
|
30800
|
+
/*
|
|
30801
|
+
Metadata effects
|
|
30802
|
+
*/
|
|
30803
|
+
this.loadFullMetadata$ = createEffect(() => this.actions$.pipe(ofType(loadFullMetadata), switchMap$1(({ uuid }) => this.recordsRepository.getByUniqueIdentifier(uuid)), map$1((record) => {
|
|
30323
30804
|
if (record === null) {
|
|
30324
|
-
return
|
|
30805
|
+
return loadFullMetadataFailure({ notFound: true });
|
|
30325
30806
|
}
|
|
30326
|
-
return
|
|
30327
|
-
}), catchError((error) => of(
|
|
30328
|
-
|
|
30807
|
+
return loadFullMetadataSuccess({ full: record });
|
|
30808
|
+
}), catchError((error) => of(loadFullMetadataFailure({ otherError: error.message })))));
|
|
30809
|
+
/*
|
|
30810
|
+
Related effects
|
|
30811
|
+
*/
|
|
30812
|
+
this.loadRelatedRecords$ = createEffect(() => this.actions$.pipe(ofType(loadFullMetadataSuccess), switchMap$1(({ full }) => this.recordsRepository.getSimilarRecords(full)), map$1((related) => {
|
|
30329
30813
|
return setRelated({ related });
|
|
30330
30814
|
}), catchError((error) => of(setRelated({ related: null })))));
|
|
30815
|
+
/*
|
|
30816
|
+
UserFeedback effects
|
|
30817
|
+
*/
|
|
30818
|
+
this.loadUserFeedbacks$ = createEffect(() => this.actions$.pipe(ofType(loadUserFeedbacks), exhaustMap(({ datasetUuid }) => this.platformServiceInterface.getUserFeedbacks(datasetUuid).pipe(map$1((userFeedbacks) => loadUserFeedbacksSuccess({ userFeedbacks })), catchError((error) => of(loadUserFeedbacksFailure({
|
|
30819
|
+
otherError: error.message,
|
|
30820
|
+
})))))));
|
|
30821
|
+
this.reloadUserFeedbacks$ = createEffect(() => this.actions$.pipe(ofType(addUserFeedbackSuccess), exhaustMap(({ datasetUuid }) => this.platformServiceInterface.getUserFeedbacks(datasetUuid).pipe(map$1((userFeedbacks) => loadUserFeedbacksSuccess({ userFeedbacks })), catchError((error) => of(loadUserFeedbacksFailure({
|
|
30822
|
+
otherError: error.message,
|
|
30823
|
+
})))))));
|
|
30824
|
+
this.addUserFeedback$ = createEffect(() => this.actions$.pipe(ofType(addUserFeedback), mergeMap$1((action) => this.platformServiceInterface
|
|
30825
|
+
.postUserFeedbacks(action.userFeedback)
|
|
30826
|
+
.pipe(map$1(() => addUserFeedbackSuccess({
|
|
30827
|
+
datasetUuid: action.userFeedback.metadataUUID,
|
|
30828
|
+
})), catchError((error) => {
|
|
30829
|
+
return of(addUserFeedbackFailure({
|
|
30830
|
+
otherError: error.message,
|
|
30831
|
+
}));
|
|
30832
|
+
})))));
|
|
30331
30833
|
}
|
|
30332
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MdViewEffects, deps: [{ token: i1$8.Actions }, { token: RecordsRepositoryInterface }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
30834
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MdViewEffects, deps: [{ token: i1$8.Actions }, { token: RecordsRepositoryInterface }, { token: PlatformServiceInterface }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
30333
30835
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MdViewEffects }); }
|
|
30334
30836
|
}
|
|
30335
30837
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MdViewEffects, decorators: [{
|
|
30336
30838
|
type: Injectable
|
|
30337
|
-
}], ctorParameters: function () { return [{ type: i1$8.Actions }, { type: RecordsRepositoryInterface }]; } });
|
|
30839
|
+
}], ctorParameters: function () { return [{ type: i1$8.Actions }, { type: RecordsRepositoryInterface }, { type: PlatformServiceInterface }]; } });
|
|
30338
30840
|
|
|
30339
30841
|
class FigureComponent {
|
|
30340
30842
|
constructor() {
|
|
@@ -32653,7 +33155,7 @@ class FeatureRecordModule {
|
|
|
32653
33155
|
DataViewWebComponentComponent,
|
|
32654
33156
|
DataViewShareComponent] }); }
|
|
32655
33157
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: FeatureRecordModule, providers: [MdViewFacade], imports: [CommonModule,
|
|
32656
|
-
StoreModule.forFeature(
|
|
33158
|
+
StoreModule.forFeature(METADATA_VIEW_FEATURE_STATE_KEY, reducer$1),
|
|
32657
33159
|
EffectsModule.forFeature([MdViewEffects]),
|
|
32658
33160
|
UiLayoutModule,
|
|
32659
33161
|
FeatureMapModule,
|
|
@@ -32681,7 +33183,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
|
|
|
32681
33183
|
],
|
|
32682
33184
|
imports: [
|
|
32683
33185
|
CommonModule,
|
|
32684
|
-
StoreModule.forFeature(
|
|
33186
|
+
StoreModule.forFeature(METADATA_VIEW_FEATURE_STATE_KEY, reducer$1),
|
|
32685
33187
|
EffectsModule.forFeature([MdViewEffects]),
|
|
32686
33188
|
UiLayoutModule,
|
|
32687
33189
|
FeatureMapModule,
|
|
@@ -32746,6 +33248,13 @@ const DEFAULT_FIELDS = [
|
|
|
32746
33248
|
},
|
|
32747
33249
|
onSaveProcess: '${dateNow()}',
|
|
32748
33250
|
},
|
|
33251
|
+
{
|
|
33252
|
+
model: 'licenses',
|
|
33253
|
+
formFieldConfig: {
|
|
33254
|
+
labelKey: marker('editor.record.form.license'),
|
|
33255
|
+
type: 'list',
|
|
33256
|
+
},
|
|
33257
|
+
},
|
|
32749
33258
|
];
|
|
32750
33259
|
|
|
32751
33260
|
const EDITOR_FEATURE_KEY = 'editor';
|
|
@@ -33130,7 +33639,7 @@ class WizardFieldComponent {
|
|
|
33130
33639
|
deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],
|
|
33131
33640
|
},
|
|
33132
33641
|
{ provide: MAT_DATE_FORMATS, useValue: MY_FORMATS },
|
|
33133
|
-
], 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 hint=\"\"\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"], outputs: ["selectValue"] }, { kind: "component", type: TextInputComponent, selector: "gn-ui-text-input", inputs: ["value", "hint", "required"], outputs: ["valueChange"] }, { kind: "component", type: TextAreaComponent, selector: "gn-ui-text-area", inputs: ["value", "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: i3$2.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i3$2.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
33642
|
+
], 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 hint=\"\"\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"], outputs: ["selectValue"] }, { kind: "component", type: TextInputComponent, selector: "gn-ui-text-input", inputs: ["value", "extraClass", "hint", "required"], outputs: ["valueChange"] }, { 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: i3$2.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i3$2.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
33134
33643
|
}
|
|
33135
33644
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: WizardFieldComponent, decorators: [{
|
|
33136
33645
|
type: Component,
|
|
@@ -33459,6 +33968,65 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
|
|
|
33459
33968
|
args: [{ selector: 'gn-ui-form-field-temporal-extent', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<p>form-field-temporal-extent works!</p>\n" }]
|
|
33460
33969
|
}] });
|
|
33461
33970
|
|
|
33971
|
+
class FormFieldLicenseComponent {
|
|
33972
|
+
constructor() {
|
|
33973
|
+
this.choices = [
|
|
33974
|
+
{
|
|
33975
|
+
value: 'cc-by',
|
|
33976
|
+
label: marker('editor.record.form.license.cc-by'),
|
|
33977
|
+
},
|
|
33978
|
+
{
|
|
33979
|
+
value: 'cc-by-sa',
|
|
33980
|
+
label: marker('editor.record.form.license.cc-by-sa'),
|
|
33981
|
+
},
|
|
33982
|
+
{
|
|
33983
|
+
value: 'cc-zero',
|
|
33984
|
+
label: marker('editor.record.form.license.cc-zero'),
|
|
33985
|
+
},
|
|
33986
|
+
{
|
|
33987
|
+
value: 'etalab',
|
|
33988
|
+
label: marker('editor.record.form.license.etalab'),
|
|
33989
|
+
},
|
|
33990
|
+
{
|
|
33991
|
+
value: 'etalab-v2',
|
|
33992
|
+
label: marker('editor.record.form.license.etalab-v2'),
|
|
33993
|
+
},
|
|
33994
|
+
{
|
|
33995
|
+
value: 'odbl',
|
|
33996
|
+
label: marker('editor.record.form.license.odbl'),
|
|
33997
|
+
},
|
|
33998
|
+
{
|
|
33999
|
+
value: 'odc-by',
|
|
34000
|
+
label: marker('editor.record.form.license.odc-by'),
|
|
34001
|
+
},
|
|
34002
|
+
{
|
|
34003
|
+
value: 'pddl',
|
|
34004
|
+
label: marker('editor.record.form.license.pddl'),
|
|
34005
|
+
},
|
|
34006
|
+
{
|
|
34007
|
+
value: 'unknown',
|
|
34008
|
+
label: marker('editor.record.form.license.unknown'),
|
|
34009
|
+
},
|
|
34010
|
+
];
|
|
34011
|
+
}
|
|
34012
|
+
get selected() {
|
|
34013
|
+
return this.control.value[0]?.text;
|
|
34014
|
+
}
|
|
34015
|
+
onSelectValue(value) {
|
|
34016
|
+
this.control.setValue([{ text: value }]);
|
|
34017
|
+
}
|
|
34018
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: FormFieldLicenseComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
34019
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: FormFieldLicenseComponent, isStandalone: true, selector: "gn-ui-form-field-license", inputs: { control: "control", label: "label" }, 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"], outputs: ["selectValue"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
34020
|
+
}
|
|
34021
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: FormFieldLicenseComponent, decorators: [{
|
|
34022
|
+
type: Component,
|
|
34023
|
+
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" }]
|
|
34024
|
+
}], propDecorators: { control: [{
|
|
34025
|
+
type: Input
|
|
34026
|
+
}], label: [{
|
|
34027
|
+
type: Input
|
|
34028
|
+
}] } });
|
|
34029
|
+
|
|
33462
34030
|
class FormFieldComponent {
|
|
33463
34031
|
set value(v) {
|
|
33464
34032
|
this.formControl.setValue(v, {
|
|
@@ -33513,8 +34081,14 @@ class FormFieldComponent {
|
|
|
33513
34081
|
get isAbstract() {
|
|
33514
34082
|
return this.model === 'abstract';
|
|
33515
34083
|
}
|
|
34084
|
+
get isLicenses() {
|
|
34085
|
+
return this.model === 'licenses';
|
|
34086
|
+
}
|
|
34087
|
+
get withoutWrapper() {
|
|
34088
|
+
return this.model === 'title' || this.model === 'abstract';
|
|
34089
|
+
}
|
|
33516
34090
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: FormFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
33517
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", 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: "<div class=\"flex flex-col h-full\">\n <
|
|
34091
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", 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: "<div class=\"flex flex-col h-full\">\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 *ngIf=\"isTitle\">\n <div class=\"flex justify-between items-center gap-3\">\n <h2\n #titleInput\n class=\"grow text-3xl font-normal\"\n [gnUiEditableLabel]=\"true\"\n (editableLabelChanged)=\"formControl.setValue($event)\"\n >\n {{ formControl.value }}\n </h2>\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 *ngIf=\"isAbstract\">\n <gn-ui-form-field-rich\n class=\"h-[8rem]\"\n [control]=\"formControl\"\n [label]=\"config.labelKey | translate\"\n [hint]=\"config.hintKey | translate\"\n ></gn-ui-form-field-rich>\n </ng-container>\n <ng-container *ngIf=\"isLicenses\">\n <gn-ui-form-field-license\n [control]=\"formControl\"\n [label]=\"config.labelKey | translate\"\n ></gn-ui-form-field-license>\n </ng-container>\n <ng-container *ngIf=\"isSimpleField\">\n <gn-ui-form-field-simple\n [type]=\"simpleType\"\n [control]=\"formControl\"\n [readonly]=\"isFieldLocked\"\n [invalid]=\"isFieldInvalid\"\n ></gn-ui-form-field-simple>\n </ng-container>\n <ng-container *ngIf=\"isFileField\">\n <gn-ui-form-field-file\n [control]=\"formControl\"\n [readonly]=\"isFieldLocked\"\n [invalid]=\"isFieldInvalid\"\n ></gn-ui-form-field-file>\n </ng-container>\n <ng-container *ngIf=\"isArrayField\">\n <gn-ui-form-field-array></gn-ui-form-field-array>\n </ng-container>\n <ng-container *ngIf=\"isObjectField\">\n <gn-ui-form-field-object></gn-ui-form-field-object>\n </ng-container>\n <ng-container *ngIf=\"isSpatialExtentField\">\n <gn-ui-form-field-spatial-extent></gn-ui-form-field-spatial-extent>\n </ng-container>\n <ng-container *ngIf=\"isTemporalExtentField\">\n <gn-ui-form-field-temporal-extent></gn-ui-form-field-temporal-extent>\n </ng-container>\n <div\n *ngIf=\"isFieldInvalid && config.invalidHintKey\"\n class=\"mt-2 text-pink-500 text-sm field-invalid-hint\"\n >\n {{ config.invalidHintKey | translate }}\n </div>\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: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: EditableLabelDirective, selector: "[gnUiEditableLabel]", inputs: ["gnUiEditableLabel"], outputs: ["editableLabelChanged"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3$1.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: FormFieldWrapperComponent, selector: "gn-ui-form-field-wrapper", inputs: ["label", "hint"] }, { kind: "component", type: FormFieldSimpleComponent, selector: "gn-ui-form-field-simple", inputs: ["type", "control", "readonly", "invalid", "placeholder", "options"] }, { kind: "component", type: FormFieldRichComponent, selector: "gn-ui-form-field-rich", inputs: ["control", "label", "hint", "helperText", "placeholder"] }, { kind: "component", type: FormFieldObjectComponent, selector: "gn-ui-form-field-object" }, { kind: "component", type: FormFieldSpatialExtentComponent, selector: "gn-ui-form-field-spatial-extent" }, { kind: "component", type: FormFieldTemporalExtentComponent, selector: "gn-ui-form-field-temporal-extent" }, { kind: "component", type: FormFieldFileComponent, selector: "gn-ui-form-field-file", inputs: ["control", "readonly", "invalid", "placeholder"] }, { kind: "component", type: FormFieldArrayComponent, selector: "gn-ui-form-field-array" }, { kind: "component", type: FormFieldLicenseComponent, selector: "gn-ui-form-field-license", inputs: ["control", "label"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
33518
34092
|
}
|
|
33519
34093
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: FormFieldComponent, decorators: [{
|
|
33520
34094
|
type: Component,
|
|
@@ -33524,6 +34098,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
|
|
|
33524
34098
|
EditableLabelDirective,
|
|
33525
34099
|
MatIconModule,
|
|
33526
34100
|
MatTooltipModule,
|
|
34101
|
+
FormFieldWrapperComponent,
|
|
33527
34102
|
FormFieldSimpleComponent,
|
|
33528
34103
|
FormFieldRichComponent,
|
|
33529
34104
|
FormFieldObjectComponent,
|
|
@@ -33531,8 +34106,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
|
|
|
33531
34106
|
FormFieldTemporalExtentComponent,
|
|
33532
34107
|
FormFieldFileComponent,
|
|
33533
34108
|
FormFieldArrayComponent,
|
|
34109
|
+
FormFieldLicenseComponent,
|
|
33534
34110
|
TranslateModule,
|
|
33535
|
-
], template: "<div class=\"flex flex-col h-full\">\n <
|
|
34111
|
+
], template: "<div class=\"flex flex-col h-full\">\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 *ngIf=\"isTitle\">\n <div class=\"flex justify-between items-center gap-3\">\n <h2\n #titleInput\n class=\"grow text-3xl font-normal\"\n [gnUiEditableLabel]=\"true\"\n (editableLabelChanged)=\"formControl.setValue($event)\"\n >\n {{ formControl.value }}\n </h2>\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 *ngIf=\"isAbstract\">\n <gn-ui-form-field-rich\n class=\"h-[8rem]\"\n [control]=\"formControl\"\n [label]=\"config.labelKey | translate\"\n [hint]=\"config.hintKey | translate\"\n ></gn-ui-form-field-rich>\n </ng-container>\n <ng-container *ngIf=\"isLicenses\">\n <gn-ui-form-field-license\n [control]=\"formControl\"\n [label]=\"config.labelKey | translate\"\n ></gn-ui-form-field-license>\n </ng-container>\n <ng-container *ngIf=\"isSimpleField\">\n <gn-ui-form-field-simple\n [type]=\"simpleType\"\n [control]=\"formControl\"\n [readonly]=\"isFieldLocked\"\n [invalid]=\"isFieldInvalid\"\n ></gn-ui-form-field-simple>\n </ng-container>\n <ng-container *ngIf=\"isFileField\">\n <gn-ui-form-field-file\n [control]=\"formControl\"\n [readonly]=\"isFieldLocked\"\n [invalid]=\"isFieldInvalid\"\n ></gn-ui-form-field-file>\n </ng-container>\n <ng-container *ngIf=\"isArrayField\">\n <gn-ui-form-field-array></gn-ui-form-field-array>\n </ng-container>\n <ng-container *ngIf=\"isObjectField\">\n <gn-ui-form-field-object></gn-ui-form-field-object>\n </ng-container>\n <ng-container *ngIf=\"isSpatialExtentField\">\n <gn-ui-form-field-spatial-extent></gn-ui-form-field-spatial-extent>\n </ng-container>\n <ng-container *ngIf=\"isTemporalExtentField\">\n <gn-ui-form-field-temporal-extent></gn-ui-form-field-temporal-extent>\n </ng-container>\n <div\n *ngIf=\"isFieldInvalid && config.invalidHintKey\"\n class=\"mt-2 text-pink-500 text-sm field-invalid-hint\"\n >\n {{ config.invalidHintKey | translate }}\n </div>\n</ng-template>\n" }]
|
|
33536
34112
|
}], ctorParameters: function () { return []; }, propDecorators: { model: [{
|
|
33537
34113
|
type: Input
|
|
33538
34114
|
}], config: [{
|
|
@@ -33863,7 +34439,7 @@ class RouterEffects {
|
|
|
33863
34439
|
* the search results happens
|
|
33864
34440
|
*/
|
|
33865
34441
|
this.navigateToSearch$ = createEffect(() => this._actions$.pipe(navigation(this.routerConfig.searchRouteComponent, {
|
|
33866
|
-
run: () =>
|
|
34442
|
+
run: () => closeMetadata(),
|
|
33867
34443
|
})));
|
|
33868
34444
|
this.navigateBack$ = createEffect(() => this._actions$.pipe(ofType(backAction), tap$1(() => this._location.back())), { dispatch: false });
|
|
33869
34445
|
this.navigateForward$ = createEffect(() => this._actions$.pipe(ofType(forwardAction), tap$1(() => this._location.forward())), { dispatch: false });
|