geonetwork-ui 2.4.0-dev.cec60ff1 → 2.4.0-dev.e079151e
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/libs/api/metadata-converter/src/index.mjs +2 -1
- package/esm2022/libs/api/metadata-converter/src/lib/gn4/atomic-operations.mjs +2 -1
- package/esm2022/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.mjs +1 -1
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.mjs +5 -5
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/read-parts.mjs +30 -2
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/utils/geometry.mjs +31 -0
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/write-parts.mjs +23 -1
- package/esm2022/libs/api/metadata-converter/src/lib/xml-utils.mjs +6 -1
- package/esm2022/libs/api/repository/src/lib/gn4/gn4-repository.mjs +12 -1
- package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +1 -1
- package/esm2022/libs/common/domain/src/lib/repository/records-repository.interface.mjs +1 -1
- package/esm2022/libs/data-access/gn4/src/openapi/api/records.api.service.mjs +2 -6
- package/esm2022/libs/feature/editor/src/lib/+state/editor.actions.mjs +2 -1
- package/esm2022/libs/feature/editor/src/lib/+state/editor.effects.mjs +3 -3
- package/esm2022/libs/feature/editor/src/lib/+state/editor.facade.mjs +7 -2
- package/esm2022/libs/feature/editor/src/lib/+state/editor.models.mjs +1 -1
- package/esm2022/libs/feature/editor/src/lib/+state/editor.reducer.mjs +7 -3
- package/esm2022/libs/feature/editor/src/lib/+state/editor.selectors.mjs +16 -6
- package/esm2022/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.mjs +138 -0
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.mjs +21 -0
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.mjs +19 -9
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/index.mjs +1 -2
- package/esm2022/libs/feature/editor/src/lib/components/record-form/record-form.component.mjs +12 -7
- package/esm2022/libs/feature/editor/src/lib/expressions.mjs +1 -1
- package/esm2022/libs/feature/editor/src/lib/fields.config.mjs +153 -60
- package/esm2022/libs/feature/editor/src/lib/models/editor-config.model.mjs +2 -0
- package/esm2022/libs/feature/editor/src/lib/models/index.mjs +2 -1
- package/esm2022/libs/feature/editor/src/lib/services/editor.service.mjs +4 -3
- package/esm2022/libs/feature/map/src/lib/utils/map-utils.service.mjs +3 -4
- package/esm2022/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.mjs +42 -23
- package/esm2022/libs/feature/record/src/lib/data-view-share/data-view-share.component.mjs +13 -5
- package/esm2022/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.mjs +49 -15
- package/esm2022/libs/feature/search/src/lib/results-table/results-table-container.component.mjs +9 -3
- package/esm2022/libs/ui/elements/src/lib/api-card/api-card.component.mjs +3 -3
- package/esm2022/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.mjs +5 -11
- package/esm2022/libs/ui/elements/src/lib/metadata-quality-item/metadata-quality-item.component.mjs +3 -3
- package/esm2022/libs/ui/elements/src/lib/ui-elements.module.mjs +5 -2
- package/esm2022/libs/ui/elements/src/lib/user-preview/user-preview.component.mjs +3 -3
- package/esm2022/libs/ui/inputs/src/lib/image-input/image-input.component.mjs +11 -5
- package/esm2022/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.mjs +29 -0
- package/esm2022/libs/ui/search/src/lib/results-table/results-table.component.mjs +15 -7
- package/esm2022/libs/ui/widgets/src/index.mjs +2 -1
- package/esm2022/libs/ui/widgets/src/lib/popover/popover.component.mjs +68 -0
- package/esm2022/translations/de.json +58 -32
- package/esm2022/translations/en.json +34 -8
- package/esm2022/translations/es.json +31 -5
- package/esm2022/translations/fr.json +34 -8
- package/esm2022/translations/it.json +32 -6
- package/esm2022/translations/nl.json +31 -5
- package/esm2022/translations/pt.json +31 -5
- package/fesm2022/geonetwork-ui.mjs +937 -236
- package/fesm2022/geonetwork-ui.mjs.map +1 -1
- package/libs/api/metadata-converter/src/index.d.ts +1 -0
- package/libs/api/metadata-converter/src/index.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/gn4/atomic-operations.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.d.ts +1 -0
- package/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts +8 -1
- package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/iso19139/utils/geometry.d.ts +5 -0
- package/libs/api/metadata-converter/src/lib/iso19139/utils/geometry.d.ts.map +1 -0
- package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts +3 -1
- package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/xml-utils.d.ts +1 -0
- package/libs/api/metadata-converter/src/lib/xml-utils.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts +1 -0
- package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts.map +1 -1
- package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +2 -1
- package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
- package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts +9 -0
- package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts.map +1 -1
- package/libs/data-access/gn4/src/openapi/api/records.api.service.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/+state/editor.actions.d.ts +5 -0
- package/libs/feature/editor/src/lib/+state/editor.actions.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/+state/editor.facade.d.ts +4 -4
- package/libs/feature/editor/src/lib/+state/editor.facade.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/+state/editor.models.d.ts +8 -0
- package/libs/feature/editor/src/lib/+state/editor.models.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/+state/editor.reducer.d.ts +4 -3
- package/libs/feature/editor/src/lib/+state/editor.reducer.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/+state/editor.selectors.d.ts +4 -8
- package/libs/feature/editor/src/lib/+state/editor.selectors.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.d.ts +27 -0
- package/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.d.ts.map +1 -0
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.d.ts +11 -0
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.d.ts.map +1 -0
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts +6 -2
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/index.d.ts +0 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/index.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/record-form.component.d.ts +5 -7
- package/libs/feature/editor/src/lib/components/record-form/record-form.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/expressions.d.ts +1 -1
- package/libs/feature/editor/src/lib/expressions.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/fields.config.d.ts +39 -2
- package/libs/feature/editor/src/lib/fields.config.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/models/editor-config.model.d.ts +36 -0
- package/libs/feature/editor/src/lib/models/editor-config.model.d.ts.map +1 -0
- package/libs/feature/editor/src/lib/models/index.d.ts +1 -0
- package/libs/feature/editor/src/lib/models/index.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/services/editor.service.d.ts +2 -2
- package/libs/feature/editor/src/lib/services/editor.service.d.ts.map +1 -1
- package/libs/feature/map/src/lib/utils/map-utils.service.d.ts.map +1 -1
- package/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.d.ts +4 -1
- package/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.d.ts.map +1 -1
- package/libs/feature/record/src/lib/data-view-share/data-view-share.component.d.ts +4 -1
- package/libs/feature/record/src/lib/data-view-share/data-view-share.component.d.ts.map +1 -1
- package/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.d.ts +4 -1
- package/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.d.ts.map +1 -1
- package/libs/feature/search/src/lib/results-table/results-table-container.component.d.ts +3 -1
- package/libs/feature/search/src/lib/results-table/results-table-container.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts +1 -1
- package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts +0 -3
- package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts +1 -1
- package/libs/ui/elements/src/lib/ui-elements.module.d.ts +7 -6
- package/libs/ui/elements/src/lib/ui-elements.module.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/image-input/image-input.component.d.ts +4 -2
- package/libs/ui/inputs/src/lib/image-input/image-input.component.d.ts.map +1 -1
- package/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.d.ts +11 -0
- package/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.d.ts.map +1 -0
- package/libs/ui/search/src/lib/results-table/results-table.component.d.ts +4 -2
- package/libs/ui/search/src/lib/results-table/results-table.component.d.ts.map +1 -1
- package/libs/ui/widgets/src/index.d.ts +1 -0
- package/libs/ui/widgets/src/index.d.ts.map +1 -1
- package/libs/ui/widgets/src/lib/popover/popover.component.d.ts +19 -0
- package/libs/ui/widgets/src/lib/popover/popover.component.d.ts.map +1 -0
- package/package.json +1 -1
- package/src/libs/api/metadata-converter/src/index.ts +1 -0
- package/src/libs/api/metadata-converter/src/lib/fixtures/geo2france.records.ts +5 -1
- package/src/libs/api/metadata-converter/src/lib/fixtures/geocat-ch.records.ts +37 -12
- package/src/libs/api/metadata-converter/src/lib/fixtures/metawal.records.ts +5 -1
- package/src/libs/api/metadata-converter/src/lib/gn4/atomic-operations.ts +1 -0
- package/src/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.ts +1 -0
- package/src/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.ts +4 -2
- package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +72 -2
- package/src/libs/api/metadata-converter/src/lib/iso19139/utils/geometry.ts +39 -0
- package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +70 -1
- package/src/libs/api/metadata-converter/src/lib/xml-utils.ts +8 -0
- package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +20 -0
- package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +2 -1
- package/src/libs/common/domain/src/lib/repository/records-repository.interface.ts +12 -0
- package/src/libs/common/fixtures/src/index.ts +2 -0
- package/src/libs/common/fixtures/src/lib/editor/editor.fixtures.ts +156 -0
- package/src/libs/common/fixtures/src/lib/editor/index.ts +1 -0
- package/src/libs/data-access/gn4/src/openapi/api/records.api.service.ts +1 -5
- package/src/libs/data-access/gn4/src/spec.yaml +0 -8
- package/src/libs/feature/editor/src/lib/+state/editor.actions.ts +5 -0
- package/src/libs/feature/editor/src/lib/+state/editor.effects.ts +2 -2
- package/src/libs/feature/editor/src/lib/+state/editor.facade.ts +9 -1
- package/src/libs/feature/editor/src/lib/+state/editor.models.ts +11 -0
- package/src/libs/feature/editor/src/lib/+state/editor.reducer.ts +11 -5
- package/src/libs/feature/editor/src/lib/+state/editor.selectors.ts +22 -8
- package/src/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.html +3 -1
- package/src/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.ts +117 -21
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.css +0 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.html +5 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.ts +22 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.html +15 -9
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.ts +15 -2
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/index.ts +0 -1
- package/src/libs/feature/editor/src/lib/components/record-form/record-form.component.html +51 -11
- package/src/libs/feature/editor/src/lib/components/record-form/record-form.component.ts +16 -8
- package/src/libs/feature/editor/src/lib/expressions.ts +1 -1
- package/src/libs/feature/editor/src/lib/fields.config.ts +186 -61
- package/src/libs/feature/editor/src/lib/models/editor-config.model.ts +53 -0
- package/src/libs/feature/editor/src/lib/models/index.ts +1 -0
- package/src/libs/feature/editor/src/lib/services/editor.service.ts +8 -4
- package/src/libs/feature/map/src/lib/utils/map-utils.service.ts +2 -3
- package/src/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.ts +36 -19
- package/src/libs/feature/record/src/lib/data-view-share/data-view-share.component.html +6 -2
- package/src/libs/feature/record/src/lib/data-view-share/data-view-share.component.ts +11 -0
- package/src/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.ts +59 -12
- package/src/libs/feature/search/src/lib/results-table/results-table-container.component.html +1 -0
- package/src/libs/feature/search/src/lib/results-table/results-table-container.component.ts +5 -0
- package/src/libs/ui/elements/src/lib/api-card/api-card.component.html +29 -29
- package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.html +14 -20
- package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.ts +0 -10
- package/src/libs/ui/elements/src/lib/metadata-quality-item/metadata-quality-item.component.html +1 -1
- package/src/libs/ui/elements/src/lib/ui-elements.module.ts +2 -1
- package/src/libs/ui/elements/src/lib/user-preview/user-preview.component.html +1 -1
- package/src/libs/ui/inputs/src/lib/image-input/image-input.component.html +1 -1
- package/src/libs/ui/inputs/src/lib/image-input/image-input.component.ts +7 -2
- package/src/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.css +31 -0
- package/src/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.html +15 -0
- package/src/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.ts +38 -0
- package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.css +0 -0
- package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.html +17 -0
- package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.ts +22 -0
- package/src/libs/ui/search/src/lib/results-table/results-table.component.html +9 -0
- package/src/libs/ui/search/src/lib/results-table/results-table.component.ts +26 -12
- package/src/libs/ui/widgets/src/index.ts +1 -0
- package/src/libs/ui/widgets/src/lib/popover/popover.component.css +0 -0
- package/src/libs/ui/widgets/src/lib/popover/popover.component.html +3 -0
- package/src/libs/ui/widgets/src/lib/popover/popover.component.ts +85 -0
- package/tailwind.base.css +2 -1
- package/translations/de.json +58 -32
- package/translations/en.json +34 -8
- package/translations/es.json +31 -5
- package/translations/fr.json +34 -8
- package/translations/it.json +32 -6
- package/translations/nl.json +31 -5
- package/translations/pt.json +31 -5
- package/translations/sk.json +32 -6
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field.model.mjs +0 -2
- package/esm2022/libs/feature/editor/src/lib/models/fields.model.mjs +0 -2
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.model.d.ts +0 -26
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.model.d.ts.map +0 -1
- package/libs/feature/editor/src/lib/models/fields.model.d.ts +0 -15
- package/libs/feature/editor/src/lib/models/fields.model.d.ts.map +0 -1
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.model.ts +0 -43
- package/src/libs/feature/editor/src/lib/models/fields.model.ts +0 -29
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import { parseXml, XmlDocument, XmlElement, XmlText } from '@rgrove/parse-xml';
|
|
2
|
+
import GML32 from 'ol/format/GML32';
|
|
3
|
+
import GeoJSON from 'ol/format/GeoJSON';
|
|
4
|
+
import { parse as parse$1 } from 'ol/xml';
|
|
2
5
|
import format from 'date-fns/format';
|
|
3
6
|
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,
|
|
7
|
+
import { InjectionToken, Injectable, Optional, Inject, NgModule, SkipSelf, Component, ChangeDetectionStrategy, Input, ViewChild, Directive, HostListener, EventEmitter, Output, TemplateRef, ElementRef, ViewChildren, ViewContainerRef, HostBinding, ContentChild, ContentChildren, Host, Pipe, inject } from '@angular/core';
|
|
5
8
|
import * as i1 from '@angular/common/http';
|
|
6
9
|
import { HttpHeaders, HttpParams, HttpClient, HttpClientModule, HTTP_INTERCEPTORS, HttpClientXsrfModule } from '@angular/common/http';
|
|
7
10
|
import * as i1$1 from '@ngx-translate/core';
|
|
@@ -23,7 +26,6 @@ import 'ol/Feature';
|
|
|
23
26
|
import { Circle, Fill, Stroke, Style as Style$1 } from 'ol/style';
|
|
24
27
|
import Style, { createDefaultStyle } from 'ol/style/Style';
|
|
25
28
|
import { extend, isEmpty } from 'ol/extent';
|
|
26
|
-
import GeoJSON from 'ol/format/GeoJSON';
|
|
27
29
|
import { transformExtent, fromLonLat } from 'ol/proj';
|
|
28
30
|
import ImageWMS from 'ol/source/ImageWMS';
|
|
29
31
|
import TileWMS from 'ol/source/TileWMS';
|
|
@@ -54,19 +56,20 @@ import * as i2$2 from '@angular/forms';
|
|
|
54
56
|
import { FormsModule, ReactiveFormsModule, UntypedFormControl, FormArray, FormControl } from '@angular/forms';
|
|
55
57
|
import * as i2$1 from '@angular/material/autocomplete';
|
|
56
58
|
import { MatAutocompleteTrigger, MatAutocomplete, MatAutocompleteModule } from '@angular/material/autocomplete';
|
|
57
|
-
import * as i3$
|
|
59
|
+
import * as i3$2 from 'ngx-dropzone';
|
|
58
60
|
import { NgxDropzoneModule } from 'ngx-dropzone';
|
|
59
61
|
import * as i5 from 'ngx-chips';
|
|
60
62
|
import { TagInputModule } from 'ngx-chips';
|
|
61
63
|
import * as i1$4 from '@angular/material/progress-spinner';
|
|
62
64
|
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
|
|
65
|
+
import tippy from 'tippy.js';
|
|
63
66
|
import * as i3 from '@angular/material/core';
|
|
64
67
|
import { MatNativeDateModule, MAT_DATE_LOCALE, DateAdapter, MAT_DATE_FORMATS } from '@angular/material/core';
|
|
65
68
|
import * as i1$5 from '@angular/material/checkbox';
|
|
66
69
|
import { MatCheckboxModule } from '@angular/material/checkbox';
|
|
67
|
-
import * as
|
|
70
|
+
import * as i3$1 from '@angular/material/tooltip';
|
|
68
71
|
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
69
|
-
import * as i2$
|
|
72
|
+
import * as i2$3 from '@angular/material/datepicker';
|
|
70
73
|
import { MatDatepickerModule } from '@angular/material/datepicker';
|
|
71
74
|
import * as i1$6 from '@angular/cdk/overlay';
|
|
72
75
|
import { CdkConnectedOverlay, OverlayModule } from '@angular/cdk/overlay';
|
|
@@ -81,9 +84,10 @@ import { moveItemInArray, CdkDropList, CdkDrag, CdkDragHandle } from '@angular/c
|
|
|
81
84
|
import EmblaCarousel from 'embla-carousel';
|
|
82
85
|
import { formatDistance } from 'date-fns';
|
|
83
86
|
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';
|
|
87
|
+
import * as i2$4 from '@angular/material/menu';
|
|
88
|
+
import { MatMenuTrigger, MatMenuModule } from '@angular/material/menu';
|
|
84
89
|
import * as i1$8 from '@ngrx/effects';
|
|
85
90
|
import { createEffect, ofType, EffectsModule, Actions } from '@ngrx/effects';
|
|
86
|
-
import tippy from 'tippy.js';
|
|
87
91
|
import { valid as valid$1 } from 'geojson-validation';
|
|
88
92
|
import { Polygon } from 'ol/geom';
|
|
89
93
|
import { queryDataGouvFr, queryGeonames, queryGeoadmin } from '@geospatial-sdk/geocoding';
|
|
@@ -95,13 +99,13 @@ import * as i2$6 from '@angular/material/sort';
|
|
|
95
99
|
import { MatSort, MatSortModule } from '@angular/material/sort';
|
|
96
100
|
import * as i1$9 from '@angular/material/table';
|
|
97
101
|
import { MatTableModule } from '@angular/material/table';
|
|
98
|
-
import * as i3$
|
|
102
|
+
import * as i3$3 from 'ng-table-virtual-scroll';
|
|
99
103
|
import { TableVirtualScrollDataSource, TableVirtualScrollModule } from 'ng-table-virtual-scroll';
|
|
100
104
|
import * as Papa from 'papaparse';
|
|
101
105
|
import parseDate from 'date-fns/parse';
|
|
102
106
|
import parseIsoDate from 'date-fns/parseISO';
|
|
103
107
|
import { MomentDateAdapter, MAT_MOMENT_DATE_ADAPTER_OPTIONS } from '@angular/material-moment-adapter';
|
|
104
|
-
import * as i3$
|
|
108
|
+
import * as i3$4 from '@ngrx/router-store';
|
|
105
109
|
import { getRouterSelectors, routerReducer, StoreRouterConnectingModule, FullRouterStateSerializer } from '@ngrx/router-store';
|
|
106
110
|
import { navigation } from '@ngrx/router-store/data-persistence';
|
|
107
111
|
|
|
@@ -269,6 +273,9 @@ function allChildrenElement(element) {
|
|
|
269
273
|
...element.children.filter((el) => el instanceof XmlElement),
|
|
270
274
|
];
|
|
271
275
|
}
|
|
276
|
+
function firstChildElement(element) {
|
|
277
|
+
return allChildrenElement(element)[0] ?? null;
|
|
278
|
+
}
|
|
272
279
|
/**
|
|
273
280
|
* Will return all matching elements nested according to the given
|
|
274
281
|
* names (similar to a path), starting form the input element;
|
|
@@ -427,10 +434,12 @@ function getTreeRoot(element) {
|
|
|
427
434
|
}
|
|
428
435
|
// stays on the parent element
|
|
429
436
|
// if the given elements are part of a subtree, will add the root of subtree
|
|
437
|
+
// will filter out falsy elements
|
|
430
438
|
function appendChildren(...childrenFns) {
|
|
431
439
|
return (element) => {
|
|
432
440
|
if (!element)
|
|
433
441
|
return null;
|
|
442
|
+
childrenFns = childrenFns.filter((fn) => fn);
|
|
434
443
|
element.children.push(...childrenFns.map((fn) => fn()).map(getTreeRoot));
|
|
435
444
|
element.children.forEach((el) => (el.parent = element));
|
|
436
445
|
return element;
|
|
@@ -559,6 +568,33 @@ function matchMimeType(format) {
|
|
|
559
568
|
return format || null;
|
|
560
569
|
}
|
|
561
570
|
|
|
571
|
+
function readGeometry(el) {
|
|
572
|
+
const xmlDoc = createDocument(el);
|
|
573
|
+
xmlDoc.root.attributes['xmlns'] = 'http://www.opengis.net/gml/3.2';
|
|
574
|
+
const gmlString = xmlToString(xmlDoc);
|
|
575
|
+
const doc = parse$1(gmlString);
|
|
576
|
+
// we need an intermediate node to be able to parse the GML
|
|
577
|
+
const node = document.createElement('pre');
|
|
578
|
+
node.appendChild(doc.documentElement);
|
|
579
|
+
const gml32Format = new GML32();
|
|
580
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
581
|
+
// @ts-ignore
|
|
582
|
+
const geometry = gml32Format.readGeometryFromNode(node);
|
|
583
|
+
const geojsonFormat = new GeoJSON();
|
|
584
|
+
return geojsonFormat.writeGeometryObject(geometry);
|
|
585
|
+
}
|
|
586
|
+
function writeGeometry(geometryObject) {
|
|
587
|
+
const geojsonFormat = new GeoJSON();
|
|
588
|
+
const geometry = geojsonFormat.readGeometry(geometryObject);
|
|
589
|
+
const gml32Format = new GML32();
|
|
590
|
+
const node = gml32Format.writeGeometryNode(geometry);
|
|
591
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
592
|
+
// @ts-ignore
|
|
593
|
+
const element = node.firstElementChild;
|
|
594
|
+
const gmlString = new XMLSerializer().serializeToString(element);
|
|
595
|
+
return getRootElement(parseXmlString(gmlString));
|
|
596
|
+
}
|
|
597
|
+
|
|
562
598
|
/**
|
|
563
599
|
* Parts are [firstName, lastName]
|
|
564
600
|
* Second part will be null if no separation could be done
|
|
@@ -727,6 +763,9 @@ function extractCharacterString() {
|
|
|
727
763
|
function extractDateTime() {
|
|
728
764
|
return pipe(fallback(findChildElement('gco:DateTime', false), findChildElement('gco:Date', false)), readText(), map((dateStr) => (dateStr ? new Date(dateStr) : null)));
|
|
729
765
|
}
|
|
766
|
+
function extractDecimal() {
|
|
767
|
+
return pipe(findChildElement('gco:Decimal', false), readText(), map((numberStr) => (numberStr ? Number(numberStr) : null)));
|
|
768
|
+
}
|
|
730
769
|
function extractUrl() {
|
|
731
770
|
const getUrl = pipe(findChildElement('gmd:URL', false), readText());
|
|
732
771
|
const getCharacterString = pipe(findChildElement('gco:CharacterString', false), readText());
|
|
@@ -1084,6 +1123,30 @@ function readTemporalExtents(rootEl) {
|
|
|
1084
1123
|
}
|
|
1085
1124
|
}))(rootEl);
|
|
1086
1125
|
}
|
|
1126
|
+
function readSpatialExtents(rootEl) {
|
|
1127
|
+
const extractGeometry = (rootEl) => {
|
|
1128
|
+
if (!rootEl)
|
|
1129
|
+
return null;
|
|
1130
|
+
return pipe(findChildElement('gmd:polygon', false), firstChildElement, map((el) => readGeometry(el)))(rootEl);
|
|
1131
|
+
};
|
|
1132
|
+
const extractBBox = (rootEl) => {
|
|
1133
|
+
if (!rootEl)
|
|
1134
|
+
return null;
|
|
1135
|
+
return pipe(combine(pipe(findChildElement('gmd:westBoundLongitude'), extractDecimal()), pipe(findChildElement('gmd:southBoundLatitude'), extractDecimal()), pipe(findChildElement('gmd:eastBoundLongitude'), extractDecimal()), pipe(findChildElement('gmd:northBoundLatitude'), extractDecimal())))(rootEl);
|
|
1136
|
+
};
|
|
1137
|
+
const extractDescription = (rootEl) => {
|
|
1138
|
+
if (!rootEl)
|
|
1139
|
+
return null;
|
|
1140
|
+
return pipe(findNestedElement('gmd:geographicIdentifier', 'gmd:MD_Identifier', 'gmd:code'), extractCharacterString())(rootEl);
|
|
1141
|
+
};
|
|
1142
|
+
return pipe(findIdentification(), findNestedElements('gmd:extent', 'gmd:EX_Extent', 'gmd:geographicElement'), mapArray(combine(pipe(findChildElement('gmd:EX_BoundingPolygon'), extractGeometry), pipe(findChildElement('gmd:EX_GeographicBoundingBox'), extractBBox), pipe(findChildElement('gmd:EX_GeographicDescription'), extractDescription))), mapArray(([geometry, bbox, description]) => {
|
|
1143
|
+
return {
|
|
1144
|
+
...(geometry && { geometry }),
|
|
1145
|
+
...(bbox && { bbox }),
|
|
1146
|
+
...(description && { description }),
|
|
1147
|
+
};
|
|
1148
|
+
}))(rootEl);
|
|
1149
|
+
}
|
|
1087
1150
|
|
|
1088
1151
|
function writeCharacterString(text) {
|
|
1089
1152
|
return tap(pipe(findChildOrCreate('gco:CharacterString'), setTextContent(text)));
|
|
@@ -1100,6 +1163,9 @@ function writeDateTime(date) {
|
|
|
1100
1163
|
function writeDate(date) {
|
|
1101
1164
|
return tap(pipe(findChildOrCreate('gco:Date'), setTextContent(format(date, 'yyyy-MM-dd'))));
|
|
1102
1165
|
}
|
|
1166
|
+
function writeDecimal(decimal) {
|
|
1167
|
+
return tap(pipe(findChildOrCreate('gco:Decimal'), setTextContent(decimal.toString())));
|
|
1168
|
+
}
|
|
1103
1169
|
function getProgressCode(status) {
|
|
1104
1170
|
switch (status) {
|
|
1105
1171
|
case 'completed':
|
|
@@ -1493,6 +1559,24 @@ function writeTemporalExtents(record, rootEl) {
|
|
|
1493
1559
|
? setTextContent(format(extent.start, 'yyyy-MM-dd'))
|
|
1494
1560
|
: addAttribute('indeterminatePosition', 'unknown'))))))))))(rootEl);
|
|
1495
1561
|
}
|
|
1562
|
+
function writeSpatialExtents(record, rootEl) {
|
|
1563
|
+
const appendBoundingPolygon = (geometry) => {
|
|
1564
|
+
if (!geometry)
|
|
1565
|
+
return null;
|
|
1566
|
+
return pipe(createElement('gmd:EX_BoundingPolygon'), appendChildren(pipe(createElement('gmd:polygon'), appendChildren(() => writeGeometry(geometry)))));
|
|
1567
|
+
};
|
|
1568
|
+
const appendGeographicBoundingBox = (bbox) => {
|
|
1569
|
+
if (!bbox)
|
|
1570
|
+
return null;
|
|
1571
|
+
return pipe(createElement('gmd:EX_GeographicBoundingBox'), appendChildren(pipe(createElement('gmd:westBoundLongitude'), writeDecimal(bbox[0])), pipe(createElement('gmd:eastBoundLongitude'), writeDecimal(bbox[2])), pipe(createElement('gmd:southBoundLatitude'), writeDecimal(bbox[1])), pipe(createElement('gmd:northBoundLatitude'), writeDecimal(bbox[3]))));
|
|
1572
|
+
};
|
|
1573
|
+
const appendGeographicDescription = (description) => {
|
|
1574
|
+
if (!description)
|
|
1575
|
+
return null;
|
|
1576
|
+
return pipe(createElement('gmd:EX_GeographicDescription'), createChild('gmd:geographicIdentifier'), createChild('gmd:MD_Identifier'), createChild('gmd:code'), writeCharacterString(description));
|
|
1577
|
+
};
|
|
1578
|
+
pipe(findOrCreateIdentification(), findNestedChildOrCreate('gmd:extent', 'gmd:EX_Extent'), removeChildrenByName('gmd:geographicElement'), appendChildren(...record.spatialExtents.map((extent) => pipe(createElement('gmd:geographicElement'), appendChildren(appendBoundingPolygon(extent.geometry), appendGeographicBoundingBox(extent.bbox), appendGeographicDescription(extent.description))))))(rootEl);
|
|
1579
|
+
}
|
|
1496
1580
|
|
|
1497
1581
|
class Iso19139Converter extends BaseConverter {
|
|
1498
1582
|
constructor() {
|
|
@@ -1525,8 +1609,8 @@ class Iso19139Converter extends BaseConverter {
|
|
|
1525
1609
|
distributions: readDistributions$1,
|
|
1526
1610
|
onlineResources: readOnlineResources,
|
|
1527
1611
|
temporalExtents: readTemporalExtents,
|
|
1612
|
+
spatialExtents: readSpatialExtents,
|
|
1528
1613
|
// TODO
|
|
1529
|
-
spatialExtents: () => [],
|
|
1530
1614
|
extras: () => undefined,
|
|
1531
1615
|
landingPage: () => undefined,
|
|
1532
1616
|
languages: () => [],
|
|
@@ -1559,8 +1643,8 @@ class Iso19139Converter extends BaseConverter {
|
|
|
1559
1643
|
distributions: writeDistributions$1,
|
|
1560
1644
|
onlineResources: writeOnlineResources,
|
|
1561
1645
|
temporalExtents: writeTemporalExtents,
|
|
1646
|
+
spatialExtents: () => writeSpatialExtents,
|
|
1562
1647
|
// TODO
|
|
1563
|
-
spatialExtents: () => undefined,
|
|
1564
1648
|
extras: () => undefined,
|
|
1565
1649
|
landingPage: () => undefined,
|
|
1566
1650
|
languages: () => undefined,
|
|
@@ -2176,6 +2260,7 @@ const mapKeywords = (thesauri, language) => {
|
|
|
2176
2260
|
keywords.push({
|
|
2177
2261
|
label: selectTranslatedValue(keyword, language),
|
|
2178
2262
|
type: getKeywordTypeFromKeywordTypeCode(rawThesaurus.theme),
|
|
2263
|
+
...(keyword.link && { key: keyword.link }),
|
|
2179
2264
|
...(thesaurus && { thesaurus }),
|
|
2180
2265
|
});
|
|
2181
2266
|
}
|
|
@@ -8641,11 +8726,7 @@ class RecordsApiService {
|
|
|
8641
8726
|
headers = headers.set('Accept', httpHeaderAcceptSelected);
|
|
8642
8727
|
}
|
|
8643
8728
|
// to determine the Content-Type header
|
|
8644
|
-
const consumes = [
|
|
8645
|
-
'application/xml',
|
|
8646
|
-
'application/json',
|
|
8647
|
-
'application/x-www-form-urlencoded',
|
|
8648
|
-
];
|
|
8729
|
+
const consumes = ['application/xml'];
|
|
8649
8730
|
const httpContentTypeSelected = this.configuration.selectHeaderContentType(consumes);
|
|
8650
8731
|
if (httpContentTypeSelected !== undefined) {
|
|
8651
8732
|
headers = headers.set('Content-Type', httpContentTypeSelected);
|
|
@@ -17472,38 +17553,63 @@ var de = {
|
|
|
17472
17553
|
"downloads.format.unknown": "unbekannt",
|
|
17473
17554
|
"downloads.wfs.featuretype.not.found": "Der Layer wurde nicht gefunden",
|
|
17474
17555
|
dropFile: dropFile$6,
|
|
17475
|
-
"editor.record.form.
|
|
17476
|
-
"editor.record.form.
|
|
17477
|
-
"editor.record.form.
|
|
17478
|
-
"editor.record.form.
|
|
17479
|
-
"editor.record.form.
|
|
17480
|
-
"editor.record.form.license
|
|
17481
|
-
"editor.record.form.
|
|
17482
|
-
"editor.record.form.
|
|
17483
|
-
"editor.record.form.
|
|
17484
|
-
"editor.record.form.
|
|
17556
|
+
"editor.record.form.bottomButtons.comeBackLater": "",
|
|
17557
|
+
"editor.record.form.bottomButtons.next": "",
|
|
17558
|
+
"editor.record.form.bottomButtons.previous": "",
|
|
17559
|
+
"editor.record.form.field.abstract": "Kurzbeschreibung",
|
|
17560
|
+
"editor.record.form.field.keywords": "Schlagwörter",
|
|
17561
|
+
"editor.record.form.field.license": "Lizenz",
|
|
17562
|
+
"editor.record.form.field.overviews": "",
|
|
17563
|
+
"editor.record.form.field.recordUpdated": "Datensatz zuletzt aktualisiert",
|
|
17564
|
+
"editor.record.form.field.resourceUpdated": "Letztes Aktualisierungsdatum",
|
|
17565
|
+
"editor.record.form.field.temporalExtents": "Zeitlicher Umfang",
|
|
17566
|
+
"editor.record.form.field.title": "Metadaten-Titel",
|
|
17567
|
+
"editor.record.form.field.uniqueIdentifier": "Eindeutige Kennung (ID)",
|
|
17568
|
+
"editor.record.form.field.updateFrequency": "Aktualisierungshäufigkeit",
|
|
17569
|
+
"editor.record.form.license.cc-by": "Creative Commons CC-BY",
|
|
17570
|
+
"editor.record.form.license.cc-by-sa": "Creative Commons CC-BY-SA",
|
|
17571
|
+
"editor.record.form.license.cc-zero": "Creative Commons CC-0",
|
|
17572
|
+
"editor.record.form.license.etalab": "Offene Lizenz (Etalab)",
|
|
17573
|
+
"editor.record.form.license.etalab-v2": "Offene Lizenz v2.0 (Etalab)",
|
|
17574
|
+
"editor.record.form.license.odbl": "Open Data Commons ODbL",
|
|
17575
|
+
"editor.record.form.license.odc-by": "Open Data Commons ODC-By",
|
|
17576
|
+
"editor.record.form.license.pddl": "Open Data Commons PDDL",
|
|
17485
17577
|
"editor.record.form.license.unknown": "Unbekannt oder nicht vorhanden",
|
|
17486
|
-
"editor.record.form.
|
|
17487
|
-
"editor.record.form.
|
|
17488
|
-
"editor.record.form.
|
|
17489
|
-
"editor.record.form.
|
|
17490
|
-
"editor.record.form.
|
|
17491
|
-
"editor.record.form.
|
|
17492
|
-
"editor.record.form.
|
|
17493
|
-
"editor.record.form.
|
|
17494
|
-
"editor.record.
|
|
17495
|
-
"editor.record.
|
|
17496
|
-
"editor.record.
|
|
17497
|
-
"editor.record.
|
|
17498
|
-
"editor.record.
|
|
17499
|
-
"editor.record.
|
|
17500
|
-
"editor.record.
|
|
17501
|
-
"editor.record.
|
|
17502
|
-
"editor.record.
|
|
17503
|
-
"editor.record.
|
|
17504
|
-
"editor.record.
|
|
17505
|
-
"editor.record.
|
|
17506
|
-
"editor.record.
|
|
17578
|
+
"editor.record.form.page.accessAndContact": "",
|
|
17579
|
+
"editor.record.form.page.description": "",
|
|
17580
|
+
"editor.record.form.page.ressources": "",
|
|
17581
|
+
"editor.record.form.section.about.description": "",
|
|
17582
|
+
"editor.record.form.section.about.label": "",
|
|
17583
|
+
"editor.record.form.section.annexes.label": "",
|
|
17584
|
+
"editor.record.form.section.associatedResources.description": "",
|
|
17585
|
+
"editor.record.form.section.associatedResources.label": "",
|
|
17586
|
+
"editor.record.form.section.classification.description": "",
|
|
17587
|
+
"editor.record.form.section.classification.label": "",
|
|
17588
|
+
"editor.record.form.section.dataManagers.description": "",
|
|
17589
|
+
"editor.record.form.section.dataManagers.label": "",
|
|
17590
|
+
"editor.record.form.section.dataPointOfContact.description": "",
|
|
17591
|
+
"editor.record.form.section.dataPointOfContact.label": "",
|
|
17592
|
+
"editor.record.form.section.geographicalCoverage.label": "",
|
|
17593
|
+
"editor.record.form.section.useAndAccessConditions.label": "",
|
|
17594
|
+
"editor.record.form.temporalExtents.addDate": "Zeitpunkt",
|
|
17595
|
+
"editor.record.form.temporalExtents.addRange": "Zeitraum",
|
|
17596
|
+
"editor.record.form.temporalExtents.date": "Datum",
|
|
17597
|
+
"editor.record.form.temporalExtents.range": "Datumsbereich",
|
|
17598
|
+
"editor.record.form.updateFrequency.planned": "Die Daten sollten regelmäßig aktualisiert werden.",
|
|
17599
|
+
"editor.record.loadError.body": "Der Datensatz konnte nicht geladen werden:",
|
|
17600
|
+
"editor.record.loadError.closeMessage": "Verstanden",
|
|
17601
|
+
"editor.record.loadError.title": "Fehler beim Laden des Datensatzes",
|
|
17602
|
+
"editor.record.publish": "Diesen Datensatz veröffentlichen",
|
|
17603
|
+
"editor.record.publishError.body": "Der Datensatz konnte nicht veröffentlicht werden:",
|
|
17604
|
+
"editor.record.publishError.closeMessage": "Verstanden",
|
|
17605
|
+
"editor.record.publishError.title": "Fehler beim Veröffentlichen des Datensatzes",
|
|
17606
|
+
"editor.record.publishSuccess.body": "Der Datensatz wurde erfolgreich veröffentlicht!",
|
|
17607
|
+
"editor.record.publishSuccess.title": "Veröffentlichung erfolgreich",
|
|
17608
|
+
"editor.record.saveStatus.asDraftOnly": "Nur als Entwurf gespeichert - noch nicht veröffentlicht",
|
|
17609
|
+
"editor.record.saveStatus.draftWithChangesPending": "Als Entwurf gespeichert - Änderungen stehen aus",
|
|
17610
|
+
"editor.record.saveStatus.recordUpToDate": "Datensatz ist auf dem neuesten Stand",
|
|
17611
|
+
"editor.record.upToDate": "Dieser Datensatz ist auf dem neuesten Stand",
|
|
17612
|
+
"editor.sidebar.menu.editor": "",
|
|
17507
17613
|
"externalviewer.dataset.unnamed": "Datensatz aus dem Datahub",
|
|
17508
17614
|
"facets.block.title.OrgForResource": "Organisation",
|
|
17509
17615
|
"facets.block.title.availableInServices": "Verfügbar für",
|
|
@@ -17581,6 +17687,7 @@ var de = {
|
|
|
17581
17687
|
"pagination.pageOf": "von",
|
|
17582
17688
|
previous: previous$6,
|
|
17583
17689
|
"record.action.download": "Herunterladen",
|
|
17690
|
+
"record.action.duplicate": "",
|
|
17584
17691
|
"record.action.view": "Anzeigen",
|
|
17585
17692
|
"record.externalViewer.open": "In externem Kartenviewer öffnen",
|
|
17586
17693
|
"record.metadata.about": "Beschreibung",
|
|
@@ -17711,7 +17818,7 @@ var de = {
|
|
|
17711
17818
|
"search.filters.resourceType": "Ressourcentyp",
|
|
17712
17819
|
"search.filters.standard": "Standard",
|
|
17713
17820
|
"search.filters.title": "Ergebnisse filtern",
|
|
17714
|
-
"search.filters.topic": "
|
|
17821
|
+
"search.filters.topic": "Themen",
|
|
17715
17822
|
"search.filters.useSpatialFilter": "Zuerst Datensätze im Interessenbereich anzeigen",
|
|
17716
17823
|
"search.filters.useSpatialFilterHelp": "Wenn diese Option aktiviert ist, werden Datensätze im Bereich des Katalogs zuerst angezeigt. Datensätze außerhalb dieses Bereichs werden nicht angezeigt.",
|
|
17717
17824
|
"share.tab.permalink": "Teilen",
|
|
@@ -17903,8 +18010,19 @@ var en = {
|
|
|
17903
18010
|
"downloads.format.unknown": "unknown",
|
|
17904
18011
|
"downloads.wfs.featuretype.not.found": "The layer was not found",
|
|
17905
18012
|
dropFile: dropFile$5,
|
|
17906
|
-
"editor.record.form.
|
|
17907
|
-
"editor.record.form.
|
|
18013
|
+
"editor.record.form.bottomButtons.comeBackLater": "Come back later",
|
|
18014
|
+
"editor.record.form.bottomButtons.next": "Next",
|
|
18015
|
+
"editor.record.form.bottomButtons.previous": "Previous",
|
|
18016
|
+
"editor.record.form.field.abstract": "Abstract",
|
|
18017
|
+
"editor.record.form.field.keywords": "Keywords",
|
|
18018
|
+
"editor.record.form.field.license": "License",
|
|
18019
|
+
"editor.record.form.field.overviews": "Overviews",
|
|
18020
|
+
"editor.record.form.field.recordUpdated": "Record Updated",
|
|
18021
|
+
"editor.record.form.field.resourceUpdated": "Resource Updated",
|
|
18022
|
+
"editor.record.form.field.temporalExtents": "Temporal extents",
|
|
18023
|
+
"editor.record.form.field.title": "Metadata title",
|
|
18024
|
+
"editor.record.form.field.uniqueIdentifier": "Unique identifier",
|
|
18025
|
+
"editor.record.form.field.updateFrequency": "Update frequency",
|
|
17908
18026
|
"editor.record.form.license.cc-by": "Creative Commons CC-BY",
|
|
17909
18027
|
"editor.record.form.license.cc-by-sa": "Creative Commons CC-BY-SA",
|
|
17910
18028
|
"editor.record.form.license.cc-zero": "Creative Commons CC-0",
|
|
@@ -17914,13 +18032,26 @@ var en = {
|
|
|
17914
18032
|
"editor.record.form.license.odc-by": "Open Data Commons ODC-By",
|
|
17915
18033
|
"editor.record.form.license.pddl": "Open Data Commons PDDL",
|
|
17916
18034
|
"editor.record.form.license.unknown": "Unknown or absent",
|
|
17917
|
-
"editor.record.form.
|
|
17918
|
-
"editor.record.form.
|
|
18035
|
+
"editor.record.form.page.accessAndContact": "Access and contact",
|
|
18036
|
+
"editor.record.form.page.description": "Resource description",
|
|
18037
|
+
"editor.record.form.page.ressources": "Resources",
|
|
18038
|
+
"editor.record.form.section.about.description": "This section describes the resource.",
|
|
18039
|
+
"editor.record.form.section.about.label": "About the resource",
|
|
18040
|
+
"editor.record.form.section.annexes.label": "Annexes",
|
|
18041
|
+
"editor.record.form.section.associatedResources.description": "Drop files here to associate them with the resource.",
|
|
18042
|
+
"editor.record.form.section.associatedResources.label": "Associated resources",
|
|
18043
|
+
"editor.record.form.section.classification.description": "The classification has an impact on the access to the data.",
|
|
18044
|
+
"editor.record.form.section.classification.label": "Classification",
|
|
18045
|
+
"editor.record.form.section.dataManagers.description": "The data managers are responsible for the data.",
|
|
18046
|
+
"editor.record.form.section.dataManagers.label": "Data managers",
|
|
18047
|
+
"editor.record.form.section.dataPointOfContact.description": "This information concerns the metadata.",
|
|
18048
|
+
"editor.record.form.section.dataPointOfContact.label": "Data point of contact",
|
|
18049
|
+
"editor.record.form.section.geographicalCoverage.label": "Geographical coverage",
|
|
18050
|
+
"editor.record.form.section.useAndAccessConditions.label": "Use and access conditions",
|
|
17919
18051
|
"editor.record.form.temporalExtents.addDate": "Time instant",
|
|
17920
18052
|
"editor.record.form.temporalExtents.addRange": "Time period",
|
|
17921
18053
|
"editor.record.form.temporalExtents.date": "Date",
|
|
17922
18054
|
"editor.record.form.temporalExtents.range": "Date range",
|
|
17923
|
-
"editor.record.form.updateFrequency": "Update frequency",
|
|
17924
18055
|
"editor.record.form.updateFrequency.planned": "The data should be updated regularly.",
|
|
17925
18056
|
"editor.record.loadError.body": "The record could not be loaded:",
|
|
17926
18057
|
"editor.record.loadError.closeMessage": "Understood",
|
|
@@ -17935,6 +18066,7 @@ var en = {
|
|
|
17935
18066
|
"editor.record.saveStatus.draftWithChangesPending": "Saved as draft - changes are pending",
|
|
17936
18067
|
"editor.record.saveStatus.recordUpToDate": "Record is up to date",
|
|
17937
18068
|
"editor.record.upToDate": "This record is up to date",
|
|
18069
|
+
"editor.sidebar.menu.editor": "Editor",
|
|
17938
18070
|
"externalviewer.dataset.unnamed": "Datahub layer",
|
|
17939
18071
|
"facets.block.title.OrgForResource": "Organisation",
|
|
17940
18072
|
"facets.block.title.availableInServices": "Available for",
|
|
@@ -18003,8 +18135,8 @@ var en = {
|
|
|
18003
18135
|
"organisations.sortBy.nameDesc": "Name Z → A",
|
|
18004
18136
|
"organisations.sortBy.recordCountAsc": "Publications 0 → 9",
|
|
18005
18137
|
"organisations.sortBy.recordCountDesc": "Publications 9 → 0",
|
|
18006
|
-
"organization.details.lastPublishedDatasets": "
|
|
18007
|
-
"organization.details.lastPublishedDatasets.searchAllButton": "
|
|
18138
|
+
"organization.details.lastPublishedDatasets": "",
|
|
18139
|
+
"organization.details.lastPublishedDatasets.searchAllButton": "",
|
|
18008
18140
|
"organization.details.mailContact": "Contact by email",
|
|
18009
18141
|
"organization.header.recordCount": "{count, plural, =0{data} one{data} other{datas}}",
|
|
18010
18142
|
"pagination.nextPage": "Next page",
|
|
@@ -18012,6 +18144,7 @@ var en = {
|
|
|
18012
18144
|
"pagination.pageOf": "of",
|
|
18013
18145
|
previous: previous$5,
|
|
18014
18146
|
"record.action.download": "Download",
|
|
18147
|
+
"record.action.duplicate": "Duplicate",
|
|
18015
18148
|
"record.action.view": "View",
|
|
18016
18149
|
"record.externalViewer.open": "Open in the external map viewer",
|
|
18017
18150
|
"record.metadata.about": "Description",
|
|
@@ -18142,7 +18275,7 @@ var en = {
|
|
|
18142
18275
|
"search.filters.resourceType": "Resource type",
|
|
18143
18276
|
"search.filters.standard": "Standard",
|
|
18144
18277
|
"search.filters.title": "Filter your results",
|
|
18145
|
-
"search.filters.topic": "
|
|
18278
|
+
"search.filters.topic": "Topics",
|
|
18146
18279
|
"search.filters.useSpatialFilter": "Show records in the area of interest first",
|
|
18147
18280
|
"search.filters.useSpatialFilterHelp": "When this is enabled, records situated in the catalog's area of interest are shown first; records outside of this area will not show up.",
|
|
18148
18281
|
"share.tab.permalink": "Share",
|
|
@@ -18334,8 +18467,19 @@ var es = {
|
|
|
18334
18467
|
"downloads.format.unknown": "",
|
|
18335
18468
|
"downloads.wfs.featuretype.not.found": "",
|
|
18336
18469
|
dropFile: dropFile$4,
|
|
18337
|
-
"editor.record.form.
|
|
18338
|
-
"editor.record.form.
|
|
18470
|
+
"editor.record.form.bottomButtons.comeBackLater": "",
|
|
18471
|
+
"editor.record.form.bottomButtons.next": "",
|
|
18472
|
+
"editor.record.form.bottomButtons.previous": "",
|
|
18473
|
+
"editor.record.form.field.abstract": "",
|
|
18474
|
+
"editor.record.form.field.keywords": "",
|
|
18475
|
+
"editor.record.form.field.license": "",
|
|
18476
|
+
"editor.record.form.field.overviews": "",
|
|
18477
|
+
"editor.record.form.field.recordUpdated": "",
|
|
18478
|
+
"editor.record.form.field.resourceUpdated": "",
|
|
18479
|
+
"editor.record.form.field.temporalExtents": "",
|
|
18480
|
+
"editor.record.form.field.title": "",
|
|
18481
|
+
"editor.record.form.field.uniqueIdentifier": "",
|
|
18482
|
+
"editor.record.form.field.updateFrequency": "",
|
|
18339
18483
|
"editor.record.form.license.cc-by": "",
|
|
18340
18484
|
"editor.record.form.license.cc-by-sa": "",
|
|
18341
18485
|
"editor.record.form.license.cc-zero": "",
|
|
@@ -18345,13 +18489,26 @@ var es = {
|
|
|
18345
18489
|
"editor.record.form.license.odc-by": "",
|
|
18346
18490
|
"editor.record.form.license.pddl": "",
|
|
18347
18491
|
"editor.record.form.license.unknown": "",
|
|
18348
|
-
"editor.record.form.
|
|
18349
|
-
"editor.record.form.
|
|
18492
|
+
"editor.record.form.page.accessAndContact": "",
|
|
18493
|
+
"editor.record.form.page.description": "",
|
|
18494
|
+
"editor.record.form.page.ressources": "",
|
|
18495
|
+
"editor.record.form.section.about.description": "",
|
|
18496
|
+
"editor.record.form.section.about.label": "",
|
|
18497
|
+
"editor.record.form.section.annexes.label": "",
|
|
18498
|
+
"editor.record.form.section.associatedResources.description": "",
|
|
18499
|
+
"editor.record.form.section.associatedResources.label": "",
|
|
18500
|
+
"editor.record.form.section.classification.description": "",
|
|
18501
|
+
"editor.record.form.section.classification.label": "",
|
|
18502
|
+
"editor.record.form.section.dataManagers.description": "",
|
|
18503
|
+
"editor.record.form.section.dataManagers.label": "",
|
|
18504
|
+
"editor.record.form.section.dataPointOfContact.description": "",
|
|
18505
|
+
"editor.record.form.section.dataPointOfContact.label": "",
|
|
18506
|
+
"editor.record.form.section.geographicalCoverage.label": "",
|
|
18507
|
+
"editor.record.form.section.useAndAccessConditions.label": "",
|
|
18350
18508
|
"editor.record.form.temporalExtents.addDate": "",
|
|
18351
18509
|
"editor.record.form.temporalExtents.addRange": "",
|
|
18352
18510
|
"editor.record.form.temporalExtents.date": "",
|
|
18353
18511
|
"editor.record.form.temporalExtents.range": "",
|
|
18354
|
-
"editor.record.form.updateFrequency": "",
|
|
18355
18512
|
"editor.record.form.updateFrequency.planned": "",
|
|
18356
18513
|
"editor.record.loadError.body": "",
|
|
18357
18514
|
"editor.record.loadError.closeMessage": "",
|
|
@@ -18366,6 +18523,7 @@ var es = {
|
|
|
18366
18523
|
"editor.record.saveStatus.draftWithChangesPending": "",
|
|
18367
18524
|
"editor.record.saveStatus.recordUpToDate": "",
|
|
18368
18525
|
"editor.record.upToDate": "",
|
|
18526
|
+
"editor.sidebar.menu.editor": "",
|
|
18369
18527
|
"externalviewer.dataset.unnamed": "",
|
|
18370
18528
|
"facets.block.title.OrgForResource": "",
|
|
18371
18529
|
"facets.block.title.availableInServices": "",
|
|
@@ -18443,6 +18601,7 @@ var es = {
|
|
|
18443
18601
|
"pagination.pageOf": "",
|
|
18444
18602
|
previous: previous$4,
|
|
18445
18603
|
"record.action.download": "",
|
|
18604
|
+
"record.action.duplicate": "",
|
|
18446
18605
|
"record.action.view": "",
|
|
18447
18606
|
"record.externalViewer.open": "",
|
|
18448
18607
|
"record.metadata.about": "",
|
|
@@ -18765,8 +18924,19 @@ var fr = {
|
|
|
18765
18924
|
"downloads.format.unknown": "inconnu",
|
|
18766
18925
|
"downloads.wfs.featuretype.not.found": "La couche n'a pas été retrouvée",
|
|
18767
18926
|
dropFile: dropFile$3,
|
|
18768
|
-
"editor.record.form.
|
|
18769
|
-
"editor.record.form.
|
|
18927
|
+
"editor.record.form.bottomButtons.comeBackLater": "Revenir plus tard",
|
|
18928
|
+
"editor.record.form.bottomButtons.next": "Suivant",
|
|
18929
|
+
"editor.record.form.bottomButtons.previous": "Précédent",
|
|
18930
|
+
"editor.record.form.field.abstract": "Résumé",
|
|
18931
|
+
"editor.record.form.field.keywords": "Mots-clés",
|
|
18932
|
+
"editor.record.form.field.license": "Licence",
|
|
18933
|
+
"editor.record.form.field.overviews": "Aperçus",
|
|
18934
|
+
"editor.record.form.field.recordUpdated": "Date de dernière révision",
|
|
18935
|
+
"editor.record.form.field.resourceUpdated": "Date de dernière révision",
|
|
18936
|
+
"editor.record.form.field.temporalExtents": "Étendue temporelle",
|
|
18937
|
+
"editor.record.form.field.title": "Titre",
|
|
18938
|
+
"editor.record.form.field.uniqueIdentifier": "Identifiant unique",
|
|
18939
|
+
"editor.record.form.field.updateFrequency": "Fréquence de mise à jour",
|
|
18770
18940
|
"editor.record.form.license.cc-by": "",
|
|
18771
18941
|
"editor.record.form.license.cc-by-sa": "",
|
|
18772
18942
|
"editor.record.form.license.cc-zero": "",
|
|
@@ -18776,13 +18946,26 @@ var fr = {
|
|
|
18776
18946
|
"editor.record.form.license.odc-by": "",
|
|
18777
18947
|
"editor.record.form.license.pddl": "",
|
|
18778
18948
|
"editor.record.form.license.unknown": "Non-reconnue ou absente",
|
|
18779
|
-
"editor.record.form.
|
|
18780
|
-
"editor.record.form.
|
|
18949
|
+
"editor.record.form.page.accessAndContact": "Acces et contact",
|
|
18950
|
+
"editor.record.form.page.description": "Description de la ressource",
|
|
18951
|
+
"editor.record.form.page.ressources": "Ressources",
|
|
18952
|
+
"editor.record.form.section.about.description": "Ces informations concernent la donnée.",
|
|
18953
|
+
"editor.record.form.section.about.label": "A propos de la ressource",
|
|
18954
|
+
"editor.record.form.section.annexes.label": "Annexes",
|
|
18955
|
+
"editor.record.form.section.associatedResources.description": "Déposez les jeux de données associées à cette fiche de métadonnée.",
|
|
18956
|
+
"editor.record.form.section.associatedResources.label": "Ressources associees",
|
|
18957
|
+
"editor.record.form.section.classification.description": "La classification a un impact sur la recherche du jeux de données.",
|
|
18958
|
+
"editor.record.form.section.classification.label": "Classification",
|
|
18959
|
+
"editor.record.form.section.dataManagers.description": "Cette information concerne la donnée.",
|
|
18960
|
+
"editor.record.form.section.dataManagers.label": "Responsables de la donnee",
|
|
18961
|
+
"editor.record.form.section.dataPointOfContact.description": "Cette information concerne la fiche de métadonnée.",
|
|
18962
|
+
"editor.record.form.section.dataPointOfContact.label": "Point de contact de la metadonee",
|
|
18963
|
+
"editor.record.form.section.geographicalCoverage.label": "Couverture geographique",
|
|
18964
|
+
"editor.record.form.section.useAndAccessConditions.label": "Conditions d'acces et usage",
|
|
18781
18965
|
"editor.record.form.temporalExtents.addDate": "Date déterminée",
|
|
18782
18966
|
"editor.record.form.temporalExtents.addRange": "Période de temps",
|
|
18783
18967
|
"editor.record.form.temporalExtents.date": "Date concernée",
|
|
18784
18968
|
"editor.record.form.temporalExtents.range": "Période concernée",
|
|
18785
|
-
"editor.record.form.updateFrequency": "Fréquence de mise à jour",
|
|
18786
18969
|
"editor.record.form.updateFrequency.planned": "Ces données doivent être mise à jour régulièrement.",
|
|
18787
18970
|
"editor.record.loadError.body": "",
|
|
18788
18971
|
"editor.record.loadError.closeMessage": "",
|
|
@@ -18797,6 +18980,7 @@ var fr = {
|
|
|
18797
18980
|
"editor.record.saveStatus.draftWithChangesPending": "Brouillon enregistré - modifications en cours",
|
|
18798
18981
|
"editor.record.saveStatus.recordUpToDate": "La fiche publiée est à jour",
|
|
18799
18982
|
"editor.record.upToDate": "",
|
|
18983
|
+
"editor.sidebar.menu.editor": "",
|
|
18800
18984
|
"externalviewer.dataset.unnamed": "Couche du datahub",
|
|
18801
18985
|
"facets.block.title.OrgForResource": "Organisation",
|
|
18802
18986
|
"facets.block.title.availableInServices": "Disponible pour",
|
|
@@ -18865,8 +19049,8 @@ var fr = {
|
|
|
18865
19049
|
"organisations.sortBy.nameDesc": "Nom Z → A",
|
|
18866
19050
|
"organisations.sortBy.recordCountAsc": "Données 0 → 9",
|
|
18867
19051
|
"organisations.sortBy.recordCountDesc": "Données 9 → 0",
|
|
18868
|
-
"organization.details.lastPublishedDatasets": "
|
|
18869
|
-
"organization.details.lastPublishedDatasets.searchAllButton": "
|
|
19052
|
+
"organization.details.lastPublishedDatasets": "",
|
|
19053
|
+
"organization.details.lastPublishedDatasets.searchAllButton": "",
|
|
18870
19054
|
"organization.details.mailContact": "Contacter par mail",
|
|
18871
19055
|
"organization.header.recordCount": "{count, plural, =0{donnée} one{donnée} other{données}}",
|
|
18872
19056
|
"pagination.nextPage": "Page suivante",
|
|
@@ -18874,6 +19058,7 @@ var fr = {
|
|
|
18874
19058
|
"pagination.pageOf": "sur",
|
|
18875
19059
|
previous: previous$3,
|
|
18876
19060
|
"record.action.download": "Télécharger",
|
|
19061
|
+
"record.action.duplicate": "Dupliquer",
|
|
18877
19062
|
"record.action.view": "Voir",
|
|
18878
19063
|
"record.externalViewer.open": "Ouvrir dans le visualiseur externe",
|
|
18879
19064
|
"record.metadata.about": "Description",
|
|
@@ -19004,7 +19189,7 @@ var fr = {
|
|
|
19004
19189
|
"search.filters.resourceType": "Type de ressource",
|
|
19005
19190
|
"search.filters.standard": "Standard",
|
|
19006
19191
|
"search.filters.title": "Affiner votre recherche",
|
|
19007
|
-
"search.filters.topic": "
|
|
19192
|
+
"search.filters.topic": "Thèmes",
|
|
19008
19193
|
"search.filters.useSpatialFilter": "Mettre en avant les résultats sur la zone d'intérêt",
|
|
19009
19194
|
"search.filters.useSpatialFilterHelp": "Si cette option est activée, les fiches portant sur la zone d'intérêt du catalogue seront montrées en premier; les fiches en dehors de cette zone n'apparaîtront pas dans les résultats.",
|
|
19010
19195
|
"share.tab.permalink": "Partager",
|
|
@@ -19196,8 +19381,19 @@ var it = {
|
|
|
19196
19381
|
"downloads.format.unknown": "sconosciuto",
|
|
19197
19382
|
"downloads.wfs.featuretype.not.found": "Il layer non è stato trovato",
|
|
19198
19383
|
dropFile: dropFile$2,
|
|
19199
|
-
"editor.record.form.
|
|
19200
|
-
"editor.record.form.
|
|
19384
|
+
"editor.record.form.bottomButtons.comeBackLater": "",
|
|
19385
|
+
"editor.record.form.bottomButtons.next": "",
|
|
19386
|
+
"editor.record.form.bottomButtons.previous": "",
|
|
19387
|
+
"editor.record.form.field.abstract": "",
|
|
19388
|
+
"editor.record.form.field.keywords": "",
|
|
19389
|
+
"editor.record.form.field.license": "Licenza",
|
|
19390
|
+
"editor.record.form.field.overviews": "",
|
|
19391
|
+
"editor.record.form.field.recordUpdated": "",
|
|
19392
|
+
"editor.record.form.field.resourceUpdated": "",
|
|
19393
|
+
"editor.record.form.field.temporalExtents": "",
|
|
19394
|
+
"editor.record.form.field.title": "",
|
|
19395
|
+
"editor.record.form.field.uniqueIdentifier": "",
|
|
19396
|
+
"editor.record.form.field.updateFrequency": "",
|
|
19201
19397
|
"editor.record.form.license.cc-by": "",
|
|
19202
19398
|
"editor.record.form.license.cc-by-sa": "",
|
|
19203
19399
|
"editor.record.form.license.cc-zero": "",
|
|
@@ -19207,13 +19403,26 @@ var it = {
|
|
|
19207
19403
|
"editor.record.form.license.odc-by": "",
|
|
19208
19404
|
"editor.record.form.license.pddl": "",
|
|
19209
19405
|
"editor.record.form.license.unknown": "Non riconosciuta o assente",
|
|
19210
|
-
"editor.record.form.
|
|
19211
|
-
"editor.record.form.
|
|
19406
|
+
"editor.record.form.page.accessAndContact": "",
|
|
19407
|
+
"editor.record.form.page.description": "",
|
|
19408
|
+
"editor.record.form.page.ressources": "",
|
|
19409
|
+
"editor.record.form.section.about.description": "",
|
|
19410
|
+
"editor.record.form.section.about.label": "",
|
|
19411
|
+
"editor.record.form.section.annexes.label": "",
|
|
19412
|
+
"editor.record.form.section.associatedResources.description": "",
|
|
19413
|
+
"editor.record.form.section.associatedResources.label": "",
|
|
19414
|
+
"editor.record.form.section.classification.description": "",
|
|
19415
|
+
"editor.record.form.section.classification.label": "",
|
|
19416
|
+
"editor.record.form.section.dataManagers.description": "",
|
|
19417
|
+
"editor.record.form.section.dataManagers.label": "",
|
|
19418
|
+
"editor.record.form.section.dataPointOfContact.description": "",
|
|
19419
|
+
"editor.record.form.section.dataPointOfContact.label": "",
|
|
19420
|
+
"editor.record.form.section.geographicalCoverage.label": "",
|
|
19421
|
+
"editor.record.form.section.useAndAccessConditions.label": "",
|
|
19212
19422
|
"editor.record.form.temporalExtents.addDate": "",
|
|
19213
19423
|
"editor.record.form.temporalExtents.addRange": "",
|
|
19214
19424
|
"editor.record.form.temporalExtents.date": "",
|
|
19215
19425
|
"editor.record.form.temporalExtents.range": "",
|
|
19216
|
-
"editor.record.form.updateFrequency": "",
|
|
19217
19426
|
"editor.record.form.updateFrequency.planned": "",
|
|
19218
19427
|
"editor.record.loadError.body": "",
|
|
19219
19428
|
"editor.record.loadError.closeMessage": "",
|
|
@@ -19228,6 +19437,7 @@ var it = {
|
|
|
19228
19437
|
"editor.record.saveStatus.draftWithChangesPending": "",
|
|
19229
19438
|
"editor.record.saveStatus.recordUpToDate": "",
|
|
19230
19439
|
"editor.record.upToDate": "",
|
|
19440
|
+
"editor.sidebar.menu.editor": "",
|
|
19231
19441
|
"externalviewer.dataset.unnamed": "Layer del datahub",
|
|
19232
19442
|
"facets.block.title.OrgForResource": "Organizzazione",
|
|
19233
19443
|
"facets.block.title.availableInServices": "Disponibile per",
|
|
@@ -19305,6 +19515,7 @@ var it = {
|
|
|
19305
19515
|
"pagination.pageOf": "di",
|
|
19306
19516
|
previous: previous$2,
|
|
19307
19517
|
"record.action.download": "Scarica",
|
|
19518
|
+
"record.action.duplicate": "",
|
|
19308
19519
|
"record.action.view": "Visualizza",
|
|
19309
19520
|
"record.externalViewer.open": "Apri nell'visualizzatore esterno",
|
|
19310
19521
|
"record.metadata.about": "Descrizione",
|
|
@@ -19435,7 +19646,7 @@ var it = {
|
|
|
19435
19646
|
"search.filters.resourceType": "Tipo di risorsa",
|
|
19436
19647
|
"search.filters.standard": "Standard",
|
|
19437
19648
|
"search.filters.title": "Affina la sua ricerca",
|
|
19438
|
-
"search.filters.topic": "
|
|
19649
|
+
"search.filters.topic": "Argomenti",
|
|
19439
19650
|
"search.filters.useSpatialFilter": "Evidenzia i risultati nell'area di interesse",
|
|
19440
19651
|
"search.filters.useSpatialFilterHelp": "Se attivata, le schede relative all'area di interesse del catalogo saranno mostrate per prime; le schede al di fuori di questa area non appariranno nei risultati.",
|
|
19441
19652
|
"share.tab.permalink": "Condividere",
|
|
@@ -19627,8 +19838,19 @@ var nl = {
|
|
|
19627
19838
|
"downloads.format.unknown": "",
|
|
19628
19839
|
"downloads.wfs.featuretype.not.found": "",
|
|
19629
19840
|
dropFile: dropFile$1,
|
|
19630
|
-
"editor.record.form.
|
|
19631
|
-
"editor.record.form.
|
|
19841
|
+
"editor.record.form.bottomButtons.comeBackLater": "",
|
|
19842
|
+
"editor.record.form.bottomButtons.next": "",
|
|
19843
|
+
"editor.record.form.bottomButtons.previous": "",
|
|
19844
|
+
"editor.record.form.field.abstract": "",
|
|
19845
|
+
"editor.record.form.field.keywords": "",
|
|
19846
|
+
"editor.record.form.field.license": "",
|
|
19847
|
+
"editor.record.form.field.overviews": "",
|
|
19848
|
+
"editor.record.form.field.recordUpdated": "",
|
|
19849
|
+
"editor.record.form.field.resourceUpdated": "",
|
|
19850
|
+
"editor.record.form.field.temporalExtents": "",
|
|
19851
|
+
"editor.record.form.field.title": "",
|
|
19852
|
+
"editor.record.form.field.uniqueIdentifier": "",
|
|
19853
|
+
"editor.record.form.field.updateFrequency": "",
|
|
19632
19854
|
"editor.record.form.license.cc-by": "",
|
|
19633
19855
|
"editor.record.form.license.cc-by-sa": "",
|
|
19634
19856
|
"editor.record.form.license.cc-zero": "",
|
|
@@ -19638,13 +19860,26 @@ var nl = {
|
|
|
19638
19860
|
"editor.record.form.license.odc-by": "",
|
|
19639
19861
|
"editor.record.form.license.pddl": "",
|
|
19640
19862
|
"editor.record.form.license.unknown": "",
|
|
19641
|
-
"editor.record.form.
|
|
19642
|
-
"editor.record.form.
|
|
19863
|
+
"editor.record.form.page.accessAndContact": "",
|
|
19864
|
+
"editor.record.form.page.description": "",
|
|
19865
|
+
"editor.record.form.page.ressources": "",
|
|
19866
|
+
"editor.record.form.section.about.description": "",
|
|
19867
|
+
"editor.record.form.section.about.label": "",
|
|
19868
|
+
"editor.record.form.section.annexes.label": "",
|
|
19869
|
+
"editor.record.form.section.associatedResources.description": "",
|
|
19870
|
+
"editor.record.form.section.associatedResources.label": "",
|
|
19871
|
+
"editor.record.form.section.classification.description": "",
|
|
19872
|
+
"editor.record.form.section.classification.label": "",
|
|
19873
|
+
"editor.record.form.section.dataManagers.description": "",
|
|
19874
|
+
"editor.record.form.section.dataManagers.label": "",
|
|
19875
|
+
"editor.record.form.section.dataPointOfContact.description": "",
|
|
19876
|
+
"editor.record.form.section.dataPointOfContact.label": "",
|
|
19877
|
+
"editor.record.form.section.geographicalCoverage.label": "",
|
|
19878
|
+
"editor.record.form.section.useAndAccessConditions.label": "",
|
|
19643
19879
|
"editor.record.form.temporalExtents.addDate": "",
|
|
19644
19880
|
"editor.record.form.temporalExtents.addRange": "",
|
|
19645
19881
|
"editor.record.form.temporalExtents.date": "",
|
|
19646
19882
|
"editor.record.form.temporalExtents.range": "",
|
|
19647
|
-
"editor.record.form.updateFrequency": "",
|
|
19648
19883
|
"editor.record.form.updateFrequency.planned": "",
|
|
19649
19884
|
"editor.record.loadError.body": "",
|
|
19650
19885
|
"editor.record.loadError.closeMessage": "",
|
|
@@ -19659,6 +19894,7 @@ var nl = {
|
|
|
19659
19894
|
"editor.record.saveStatus.draftWithChangesPending": "",
|
|
19660
19895
|
"editor.record.saveStatus.recordUpToDate": "",
|
|
19661
19896
|
"editor.record.upToDate": "",
|
|
19897
|
+
"editor.sidebar.menu.editor": "",
|
|
19662
19898
|
"externalviewer.dataset.unnamed": "",
|
|
19663
19899
|
"facets.block.title.OrgForResource": "",
|
|
19664
19900
|
"facets.block.title.availableInServices": "",
|
|
@@ -19736,6 +19972,7 @@ var nl = {
|
|
|
19736
19972
|
"pagination.pageOf": "",
|
|
19737
19973
|
previous: previous$1,
|
|
19738
19974
|
"record.action.download": "",
|
|
19975
|
+
"record.action.duplicate": "",
|
|
19739
19976
|
"record.action.view": "",
|
|
19740
19977
|
"record.externalViewer.open": "",
|
|
19741
19978
|
"record.metadata.about": "",
|
|
@@ -20058,8 +20295,19 @@ var pt = {
|
|
|
20058
20295
|
"downloads.format.unknown": "",
|
|
20059
20296
|
"downloads.wfs.featuretype.not.found": "",
|
|
20060
20297
|
dropFile: dropFile,
|
|
20061
|
-
"editor.record.form.
|
|
20062
|
-
"editor.record.form.
|
|
20298
|
+
"editor.record.form.bottomButtons.comeBackLater": "",
|
|
20299
|
+
"editor.record.form.bottomButtons.next": "",
|
|
20300
|
+
"editor.record.form.bottomButtons.previous": "",
|
|
20301
|
+
"editor.record.form.field.abstract": "",
|
|
20302
|
+
"editor.record.form.field.keywords": "",
|
|
20303
|
+
"editor.record.form.field.license": "",
|
|
20304
|
+
"editor.record.form.field.overviews": "",
|
|
20305
|
+
"editor.record.form.field.recordUpdated": "",
|
|
20306
|
+
"editor.record.form.field.resourceUpdated": "",
|
|
20307
|
+
"editor.record.form.field.temporalExtents": "",
|
|
20308
|
+
"editor.record.form.field.title": "",
|
|
20309
|
+
"editor.record.form.field.uniqueIdentifier": "",
|
|
20310
|
+
"editor.record.form.field.updateFrequency": "",
|
|
20063
20311
|
"editor.record.form.license.cc-by": "",
|
|
20064
20312
|
"editor.record.form.license.cc-by-sa": "",
|
|
20065
20313
|
"editor.record.form.license.cc-zero": "",
|
|
@@ -20069,13 +20317,26 @@ var pt = {
|
|
|
20069
20317
|
"editor.record.form.license.odc-by": "",
|
|
20070
20318
|
"editor.record.form.license.pddl": "",
|
|
20071
20319
|
"editor.record.form.license.unknown": "",
|
|
20072
|
-
"editor.record.form.
|
|
20073
|
-
"editor.record.form.
|
|
20320
|
+
"editor.record.form.page.accessAndContact": "",
|
|
20321
|
+
"editor.record.form.page.description": "",
|
|
20322
|
+
"editor.record.form.page.ressources": "",
|
|
20323
|
+
"editor.record.form.section.about.description": "",
|
|
20324
|
+
"editor.record.form.section.about.label": "",
|
|
20325
|
+
"editor.record.form.section.annexes.label": "",
|
|
20326
|
+
"editor.record.form.section.associatedResources.description": "",
|
|
20327
|
+
"editor.record.form.section.associatedResources.label": "",
|
|
20328
|
+
"editor.record.form.section.classification.description": "",
|
|
20329
|
+
"editor.record.form.section.classification.label": "",
|
|
20330
|
+
"editor.record.form.section.dataManagers.description": "",
|
|
20331
|
+
"editor.record.form.section.dataManagers.label": "",
|
|
20332
|
+
"editor.record.form.section.dataPointOfContact.description": "",
|
|
20333
|
+
"editor.record.form.section.dataPointOfContact.label": "",
|
|
20334
|
+
"editor.record.form.section.geographicalCoverage.label": "",
|
|
20335
|
+
"editor.record.form.section.useAndAccessConditions.label": "",
|
|
20074
20336
|
"editor.record.form.temporalExtents.addDate": "",
|
|
20075
20337
|
"editor.record.form.temporalExtents.addRange": "",
|
|
20076
20338
|
"editor.record.form.temporalExtents.date": "",
|
|
20077
20339
|
"editor.record.form.temporalExtents.range": "",
|
|
20078
|
-
"editor.record.form.updateFrequency": "",
|
|
20079
20340
|
"editor.record.form.updateFrequency.planned": "",
|
|
20080
20341
|
"editor.record.loadError.body": "",
|
|
20081
20342
|
"editor.record.loadError.closeMessage": "",
|
|
@@ -20090,6 +20351,7 @@ var pt = {
|
|
|
20090
20351
|
"editor.record.saveStatus.draftWithChangesPending": "",
|
|
20091
20352
|
"editor.record.saveStatus.recordUpToDate": "",
|
|
20092
20353
|
"editor.record.upToDate": "",
|
|
20354
|
+
"editor.sidebar.menu.editor": "",
|
|
20093
20355
|
"externalviewer.dataset.unnamed": "",
|
|
20094
20356
|
"facets.block.title.OrgForResource": "",
|
|
20095
20357
|
"facets.block.title.availableInServices": "",
|
|
@@ -20167,6 +20429,7 @@ var pt = {
|
|
|
20167
20429
|
"pagination.pageOf": "",
|
|
20168
20430
|
previous: previous,
|
|
20169
20431
|
"record.action.download": "",
|
|
20432
|
+
"record.action.duplicate": "",
|
|
20170
20433
|
"record.action.view": "",
|
|
20171
20434
|
"record.externalViewer.open": "",
|
|
20172
20435
|
"record.metadata.about": "",
|
|
@@ -21299,6 +21562,17 @@ class Gn4Repository {
|
|
|
21299
21562
|
.then((record) => [record, xml, isSavedAlready]);
|
|
21300
21563
|
}));
|
|
21301
21564
|
}
|
|
21565
|
+
openRecordForDuplication(uniqueIdentifier) {
|
|
21566
|
+
return this.loadRecordAsXml(uniqueIdentifier).pipe(switchMap(async (recordAsXml) => {
|
|
21567
|
+
const converter = findConverterForDocument(recordAsXml);
|
|
21568
|
+
const record = await converter.readRecord(recordAsXml);
|
|
21569
|
+
record.uniqueIdentifier = `TEMP-ID-${Date.now()}`;
|
|
21570
|
+
record.title = `${record.title} (Copy)`;
|
|
21571
|
+
const xml = await converter.writeRecord(record, recordAsXml);
|
|
21572
|
+
window.localStorage.setItem(this.getLocalStorageKeyForRecord(record.uniqueIdentifier), xml);
|
|
21573
|
+
return [record, xml, false];
|
|
21574
|
+
}));
|
|
21575
|
+
}
|
|
21302
21576
|
serializeRecordToXml(record, referenceRecordSource) {
|
|
21303
21577
|
// if there's a reference record, use that standard; otherwise, use iso19139
|
|
21304
21578
|
const converter = referenceRecordSource
|
|
@@ -23072,10 +23346,9 @@ class MapUtilsService {
|
|
|
23072
23346
|
if (!('spatialExtents' in record) || record.spatialExtents.length === 0) {
|
|
23073
23347
|
return null;
|
|
23074
23348
|
}
|
|
23075
|
-
//
|
|
23349
|
+
// extend all the spatial extents bbox into an including bbox
|
|
23076
23350
|
const totalExtent = record.spatialExtents.reduce((prev, curr) => {
|
|
23077
|
-
|
|
23078
|
-
return extend(prev, geom.getExtent());
|
|
23351
|
+
return extend(prev, curr.bbox);
|
|
23079
23352
|
}, [Infinity, Infinity, -Infinity, -Infinity]);
|
|
23080
23353
|
return transformExtent(totalExtent, 'EPSG:4326', 'EPSG:3857');
|
|
23081
23354
|
}
|
|
@@ -24661,6 +24934,70 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
24661
24934
|
}]
|
|
24662
24935
|
}] });
|
|
24663
24936
|
|
|
24937
|
+
class PopoverComponent {
|
|
24938
|
+
constructor(viewContainerRef, renderer) {
|
|
24939
|
+
this.viewContainerRef = viewContainerRef;
|
|
24940
|
+
this.renderer = renderer;
|
|
24941
|
+
}
|
|
24942
|
+
getContent() {
|
|
24943
|
+
if (this.content instanceof TemplateRef) {
|
|
24944
|
+
if (this.view) {
|
|
24945
|
+
this.view.destroy();
|
|
24946
|
+
}
|
|
24947
|
+
this.view = this.viewContainerRef.createEmbeddedView(this.content);
|
|
24948
|
+
this.view.detectChanges();
|
|
24949
|
+
const wrapper = this.renderer.createElement('div'); // Create a wrapper div
|
|
24950
|
+
this.view.rootNodes.forEach((node) => {
|
|
24951
|
+
this.renderer.appendChild(wrapper, node); // Append each root node to the wrapper
|
|
24952
|
+
});
|
|
24953
|
+
return wrapper;
|
|
24954
|
+
}
|
|
24955
|
+
return this.content;
|
|
24956
|
+
}
|
|
24957
|
+
ngAfterViewInit() {
|
|
24958
|
+
this.tippyInstance = tippy(this.popoverContent.nativeElement, {
|
|
24959
|
+
content: this.getContent(),
|
|
24960
|
+
allowHTML: true,
|
|
24961
|
+
theme: this.theme,
|
|
24962
|
+
});
|
|
24963
|
+
}
|
|
24964
|
+
ngOnChanges(changes) {
|
|
24965
|
+
if (changes['theme']) {
|
|
24966
|
+
this.theme = changes['theme'].currentValue;
|
|
24967
|
+
if (this.tippyInstance) {
|
|
24968
|
+
this.tippyInstance.setProps({ theme: this.theme });
|
|
24969
|
+
}
|
|
24970
|
+
}
|
|
24971
|
+
if (changes['content']) {
|
|
24972
|
+
this.content = changes['content'].currentValue;
|
|
24973
|
+
if (this.tippyInstance) {
|
|
24974
|
+
this.tippyInstance.setContent(this.getContent());
|
|
24975
|
+
}
|
|
24976
|
+
}
|
|
24977
|
+
}
|
|
24978
|
+
ngOnDestroy() {
|
|
24979
|
+
if (this.tippyInstance) {
|
|
24980
|
+
this.tippyInstance.destroy();
|
|
24981
|
+
}
|
|
24982
|
+
if (this.view) {
|
|
24983
|
+
this.view.destroy();
|
|
24984
|
+
}
|
|
24985
|
+
}
|
|
24986
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PopoverComponent, deps: [{ token: i0.ViewContainerRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
24987
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PopoverComponent, isStandalone: true, selector: "gn-ui-popover", inputs: { content: "content", theme: "theme" }, viewQueries: [{ propertyName: "popoverContent", first: true, predicate: ["popoverContent"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<span #popoverContent>\n <ng-content></ng-content>\n</span>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
|
|
24988
|
+
}
|
|
24989
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PopoverComponent, decorators: [{
|
|
24990
|
+
type: Component,
|
|
24991
|
+
args: [{ selector: 'gn-ui-popover', standalone: true, imports: [CommonModule], template: "<span #popoverContent>\n <ng-content></ng-content>\n</span>\n" }]
|
|
24992
|
+
}], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.Renderer2 }]; }, propDecorators: { popoverContent: [{
|
|
24993
|
+
type: ViewChild,
|
|
24994
|
+
args: ['popoverContent', { static: false }]
|
|
24995
|
+
}], content: [{
|
|
24996
|
+
type: Input
|
|
24997
|
+
}], theme: [{
|
|
24998
|
+
type: Input
|
|
24999
|
+
}] } });
|
|
25000
|
+
|
|
24664
25001
|
class PopupAlertComponent {
|
|
24665
25002
|
constructor(changeDetector) {
|
|
24666
25003
|
this.changeDetector = changeDetector;
|
|
@@ -25065,7 +25402,7 @@ class CopyTextButtonComponent {
|
|
|
25065
25402
|
event.target.blur();
|
|
25066
25403
|
}
|
|
25067
25404
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CopyTextButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
25068
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CopyTextButtonComponent, selector: "gn-ui-copy-text-button", inputs: { text: "text", tooltipText: "tooltipText", displayText: "displayText", rows: "rows" }, ngImport: i0, template: "<div class=\"flex\">\n <input\n *ngIf=\"displayText && rows <= 1\"\n type=\"text\"\n class=\"grow py-2 px-4 bg-gray-200 opacity-50 rounded-l-md border border-gray-300 truncate\"\n value=\"{{ text }}\"\n readonly\n />\n <textarea\n *ngIf=\"displayText && rows > 1\"\n [rows]=\"rows\"\n class=\"grow py-2 px-4 bg-gray-200 opacity-50 rounded-l-md border border-gray-300 overflow-y-auto h-max\"\n readonly\n >{{ text }}</textarea\n >\n <button\n type=\"button\"\n (click)=\"copyText($event)\"\n [ngClass]=\"{\n 'py-2 px-4 rounded-r-md bg-gray-400 hover:bg-gray-600 focus:bg-gray-800 text-white':\n displayText\n }\"\n mat-raised-button\n [matTooltip]=\"tooltipText\"\n matTooltipPosition=\"above\"\n >\n <mat-icon\n class=\"material-symbols-outlined pointer-events-none align-middle card-icon\"\n >content_copy</mat-icon\n >\n </button>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type:
|
|
25405
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CopyTextButtonComponent, selector: "gn-ui-copy-text-button", inputs: { text: "text", tooltipText: "tooltipText", displayText: "displayText", rows: "rows" }, ngImport: i0, template: "<div class=\"flex\">\n <input\n *ngIf=\"displayText && rows <= 1\"\n type=\"text\"\n class=\"grow py-2 px-4 bg-gray-200 opacity-50 rounded-l-md border border-gray-300 truncate\"\n value=\"{{ text }}\"\n readonly\n />\n <textarea\n *ngIf=\"displayText && rows > 1\"\n [rows]=\"rows\"\n class=\"grow py-2 px-4 bg-gray-200 opacity-50 rounded-l-md border border-gray-300 overflow-y-auto h-max\"\n readonly\n >{{ text }}</textarea\n >\n <button\n type=\"button\"\n (click)=\"copyText($event)\"\n [ngClass]=\"{\n 'py-2 px-4 rounded-r-md bg-gray-400 hover:bg-gray-600 focus:bg-gray-800 text-white':\n displayText\n }\"\n mat-raised-button\n [matTooltip]=\"tooltipText\"\n matTooltipPosition=\"above\"\n >\n <mat-icon\n class=\"material-symbols-outlined pointer-events-none align-middle card-icon\"\n >content_copy</mat-icon\n >\n </button>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i3$1.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
25069
25406
|
}
|
|
25070
25407
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CopyTextButtonComponent, decorators: [{
|
|
25071
25408
|
type: Component,
|
|
@@ -25085,7 +25422,7 @@ class DatePickerComponent {
|
|
|
25085
25422
|
this.dateChange = new EventEmitter();
|
|
25086
25423
|
}
|
|
25087
25424
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DatePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
25088
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DatePickerComponent, isStandalone: true, selector: "gn-ui-date-picker", inputs: { date: "date" }, outputs: { dateChange: "dateChange" }, ngImport: i0, template: "<div\n class=\"flex items-center justify-between rounded-lg border border-gray-300 bg-white\"\n>\n <input\n class=\"pl-3\"\n [matDatepicker]=\"picker\"\n [value]=\"date\"\n (dateChange)=\"dateChange.emit($event.value)\"\n />\n <mat-datepicker-toggle matIconSuffix [for]=\"picker\"></mat-datepicker-toggle>\n</div>\n<mat-datepicker #picker></mat-datepicker>\n", styles: ["mat-datepicker-toggle{@apply text-primary;}\n"], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatNativeDateModule }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i2$
|
|
25425
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DatePickerComponent, isStandalone: true, selector: "gn-ui-date-picker", inputs: { date: "date" }, outputs: { dateChange: "dateChange" }, ngImport: i0, template: "<div\n class=\"flex items-center justify-between rounded-lg border border-gray-300 bg-white\"\n>\n <input\n class=\"pl-3\"\n [matDatepicker]=\"picker\"\n [value]=\"date\"\n (dateChange)=\"dateChange.emit($event.value)\"\n />\n <mat-datepicker-toggle matIconSuffix [for]=\"picker\"></mat-datepicker-toggle>\n</div>\n<mat-datepicker #picker></mat-datepicker>\n", styles: ["mat-datepicker-toggle{@apply text-primary;}\n"], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatNativeDateModule }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i2$3.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i2$3.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i2$3.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
25089
25426
|
}
|
|
25090
25427
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DatePickerComponent, decorators: [{
|
|
25091
25428
|
type: Component,
|
|
@@ -25102,7 +25439,7 @@ class DateRangePickerComponent {
|
|
|
25102
25439
|
this.endDateChange = new EventEmitter();
|
|
25103
25440
|
}
|
|
25104
25441
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DateRangePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
25105
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DateRangePickerComponent, isStandalone: true, selector: "gn-ui-date-range-picker", inputs: { startDate: "startDate", endDate: "endDate" }, outputs: { startDateChange: "startDateChange", endDateChange: "endDateChange" }, ngImport: i0, template: "<div\n class=\"flex items-center justify-between rounded-lg border border-gray-300 bg-white\"\n>\n <div class=\"pl-3 flex justify-center\">\n <mat-date-range-input [rangePicker]=\"picker\" class=\"w-full\">\n <input\n matStartDate\n placeholder=\"Start date\"\n [value]=\"startDate\"\n (dateInput)=\"startDateChange.emit($event.value)\"\n />\n <input\n matEndDate\n placeholder=\"End date\"\n [value]=\"endDate\"\n (dateInput)=\"endDateChange.emit($event.value)\"\n />\n </mat-date-range-input>\n </div>\n <mat-datepicker-toggle matSuffix [for]=\"picker\">\n <mat-icon>calendar_today</mat-icon>\n </mat-datepicker-toggle>\n</div>\n<mat-date-range-picker #picker></mat-date-range-picker>\n", styles: ["mat-datepicker-toggle{@apply text-primary;}\n"], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatNativeDateModule }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i2$
|
|
25442
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DateRangePickerComponent, isStandalone: true, selector: "gn-ui-date-range-picker", inputs: { startDate: "startDate", endDate: "endDate" }, outputs: { startDateChange: "startDateChange", endDateChange: "endDateChange" }, ngImport: i0, template: "<div\n class=\"flex items-center justify-between rounded-lg border border-gray-300 bg-white\"\n>\n <div class=\"pl-3 flex justify-center\">\n <mat-date-range-input [rangePicker]=\"picker\" class=\"w-full\">\n <input\n matStartDate\n placeholder=\"Start date\"\n [value]=\"startDate\"\n (dateInput)=\"startDateChange.emit($event.value)\"\n />\n <input\n matEndDate\n placeholder=\"End date\"\n [value]=\"endDate\"\n (dateInput)=\"endDateChange.emit($event.value)\"\n />\n </mat-date-range-input>\n </div>\n <mat-datepicker-toggle matSuffix [for]=\"picker\">\n <mat-icon>calendar_today</mat-icon>\n </mat-datepicker-toggle>\n</div>\n<mat-date-range-picker #picker></mat-date-range-picker>\n", styles: ["mat-datepicker-toggle{@apply text-primary;}\n"], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatNativeDateModule }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i2$3.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "component", type: i2$3.MatDateRangeInput, selector: "mat-date-range-input", inputs: ["rangePicker", "required", "dateFilter", "min", "max", "disabled", "separator", "comparisonStart", "comparisonEnd"], exportAs: ["matDateRangeInput"] }, { kind: "directive", type: i2$3.MatStartDate, selector: "input[matStartDate]", inputs: ["errorStateMatcher"], outputs: ["dateChange", "dateInput"] }, { kind: "directive", type: i2$3.MatEndDate, selector: "input[matEndDate]", inputs: ["errorStateMatcher"], outputs: ["dateChange", "dateInput"] }, { kind: "component", type: i2$3.MatDateRangePicker, selector: "mat-date-range-picker", exportAs: ["matDateRangePicker"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
25106
25443
|
}
|
|
25107
25444
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DateRangePickerComponent, decorators: [{
|
|
25108
25445
|
type: Component,
|
|
@@ -25134,7 +25471,7 @@ class DragAndDropFileInputComponent {
|
|
|
25134
25471
|
this.fileChange.emit(this.selectedFile);
|
|
25135
25472
|
}
|
|
25136
25473
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DragAndDropFileInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
25137
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DragAndDropFileInputComponent, selector: "gn-ui-drag-and-drop-file-input", inputs: { placeholder: "placeholder", accept: "accept" }, outputs: { fileChange: "fileChange" }, ngImport: i0, template: "<div class=\"flex h-full\">\n <ngx-dropzone\n class=\"flex-1\"\n multiple=\"false\"\n (change)=\"selectFile($event)\"\n [accept]=\"accept\"\n >\n <div *ngIf=\"!fileName\" class=\"text-gray-900 pl-2 py-2\" translate=\"\">\n {{ placeholder }}\n </div>\n\n <div *ngIf=\"fileName\" class=\"text-gray-900 pl-2 py-2\">{{ fileName }}</div>\n </ngx-dropzone>\n</div>\n", styles: ["ngx-dropzone{height:auto;border:none}\n"], dependencies: [{ 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: i3$
|
|
25474
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DragAndDropFileInputComponent, selector: "gn-ui-drag-and-drop-file-input", inputs: { placeholder: "placeholder", accept: "accept" }, outputs: { fileChange: "fileChange" }, ngImport: i0, template: "<div class=\"flex h-full\">\n <ngx-dropzone\n class=\"flex-1\"\n multiple=\"false\"\n (change)=\"selectFile($event)\"\n [accept]=\"accept\"\n >\n <div *ngIf=\"!fileName\" class=\"text-gray-900 pl-2 py-2\" translate=\"\">\n {{ placeholder }}\n </div>\n\n <div *ngIf=\"fileName\" class=\"text-gray-900 pl-2 py-2\">{{ fileName }}</div>\n </ngx-dropzone>\n</div>\n", styles: ["ngx-dropzone{height:auto;border:none}\n"], dependencies: [{ 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: i3$2.NgxDropzoneComponent, selector: "ngx-dropzone, [ngx-dropzone]", inputs: ["accept", "disabled", "multiple", "maxFileSize", "expandable", "disableClick", "processDirectoryDrop", "id", "aria-label", "aria-labelledby", "aria-describedby"], outputs: ["change"] }] }); }
|
|
25138
25475
|
}
|
|
25139
25476
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DragAndDropFileInputComponent, decorators: [{
|
|
25140
25477
|
type: Component,
|
|
@@ -25913,7 +26250,8 @@ class ImageInputComponent {
|
|
|
25913
26250
|
const file = new File([blob], name);
|
|
25914
26251
|
this.fileChange.emit(file);
|
|
25915
26252
|
},
|
|
25916
|
-
error: () => {
|
|
26253
|
+
error: (error) => {
|
|
26254
|
+
console.error(error);
|
|
25917
26255
|
this.downloadError = true;
|
|
25918
26256
|
this.cd.markForCheck();
|
|
25919
26257
|
this.urlChange.emit(this.urlInputValue);
|
|
@@ -25949,6 +26287,7 @@ class ImageInputComponent {
|
|
|
25949
26287
|
}
|
|
25950
26288
|
}
|
|
25951
26289
|
handleDelete() {
|
|
26290
|
+
this.formControl.markAsDirty();
|
|
25952
26291
|
this.delete.emit();
|
|
25953
26292
|
}
|
|
25954
26293
|
toggleAltTextInput() {
|
|
@@ -25971,7 +26310,7 @@ class ImageInputComponent {
|
|
|
25971
26310
|
});
|
|
25972
26311
|
}
|
|
25973
26312
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ImageInputComponent, deps: [{ token: i1.HttpClient }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
25974
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ImageInputComponent, isStandalone: true, selector: "gn-ui-image-input", inputs: { maxSizeMB: "maxSizeMB", previewUrl: "previewUrl", altText: "altText", uploadProgress: "uploadProgress", uploadError: "uploadError" }, outputs: { fileChange: "fileChange", urlChange: "urlChange", uploadCancel: "uploadCancel", delete: "delete", altTextChange: "altTextChange" }, ngImport: i0, template: "<ng-container *ngIf=\"previewUrl; then withImage; else withoutImage\">\n</ng-container>\n\n<ng-template #withImage>\n <div class=\"w-full h-full flex flex-col gap-2\">\n <div class=\"flex-1 group relative\">\n <img\n class=\"w-full h-full object-cover border-2 border-gray-300 rounded-lg\"\n [alt]=\"altText\"\n loading=\"lazy\"\n [src]=\"previewUrl\"\n />\n <gn-ui-button\n [extraClass]=\"\n 'bg-gray-200 absolute right-2 bottom-2 invisible group-hover:visible'\n \"\n (buttonClick)=\"handleDelete()\"\n >\n <mat-icon class=\"material-symbols-outlined\">delete</mat-icon>\n </gn-ui-button>\n </div>\n <input\n *ngIf=\"showAltTextInput\"\n type=\"text\"\n class=\"py-3 px-2 border-2 border-gray-300 rounded-lg text-sm font-medium\"\n [placeholder]=\"'input.image.altTextPlaceholder' | translate\"\n [value]=\"altText\"\n (change)=\"handleAltTextChange($event)\"\n />\n <div class=\"flex flex-row gap-2\">\n <gn-ui-button\n [extraClass]=\"'bg-gray-200 font-bold'\"\n (buttonClick)=\"handleDelete()\"\n >\n <mat-icon class=\"material-symbols-outlined me-1\">delete</mat-icon>\n {{ 'input.image.delete' | translate }}\n </gn-ui-button>\n <gn-ui-button\n *ngIf=\"!showAltTextInput\"\n [extraClass]=\"'bg-gray-200 font-bold'\"\n (buttonClick)=\"toggleAltTextInput()\"\n >\n <mat-icon class=\"material-symbols-outlined me-1\">add</mat-icon>\n {{ 'input.image.displayAltTextInput' | translate }}\n </gn-ui-button>\n </div>\n </div>\n</ng-template>\n\n<ng-template #withoutImage>\n <div class=\"w-full h-full flex flex-col gap-2\">\n <label\n gnUiFilesDrop\n class=\"block flex-1 border-2 border-dashed border-gray-300 rounded-lg p-6 flex flex-col items-center justify-center gap-4\"\n (dragFilesOver)=\"handleDragFilesOver($event)\"\n (dropFiles)=\"handleDropFiles($event)\"\n >\n <div class=\"w-14 h-14 rounded-md bg-gray-200 grid\">\n <mat-icon\n *ngIf=\"!dragFilesOver && !uploadProgress && !uploadError\"\n class=\"material-symbols-outlined place-self-center text-blue-500\"\n >image</mat-icon\n >\n <mat-icon\n *ngIf=\"dragFilesOver && !uploadProgress && !uploadError\"\n class=\"material-symbols-outlined place-self-center text-blue-500\"\n >add_box</mat-icon\n >\n <div *ngIf=\"uploadProgress\">\n <mat-progress-spinner\n class=\"place-self-center\"\n [diameter]=\"56\"\n [mode]=\"'determinate'\"\n [value]=\"uploadProgress\"\n ></mat-progress-spinner>\n <span\n class=\"text-sm font-medium relative inline-block width-[30px] bottom-[40px] left-[15px]\"\n >\n {{ uploadProgress }}%\n </span>\n </div>\n <mat-icon\n *ngIf=\"uploadError\"\n class=\"material-symbols-outlined place-self-center text-rose-500\"\n >broken_image</mat-icon\n >\n </div>\n <div class=\"flex flex-col items-center gap-1\">\n <p class=\"font-medium\">{{ getPrimaryText() | translate }}</p>\n <p\n class=\"text-sm\"\n [class]=\"\n uploadProgress || uploadError\n ? 'font-bold text-blue-500 cursor-pointer'\n : 'font-medium text-gray-500'\n \"\n (click)=\"handleSecondaryTextClick()\"\n >\n {{ getSecondaryText() | translate }}\n </p>\n </div>\n <input\n type=\"file\"\n class=\"hidden\"\n (change)=\"handleFileInput($event)\"\n [disabled]=\"showUrlInput || uploadProgress || uploadError\"\n />\n </label>\n <div *ngIf=\"!showUrlInput\" class=\"flex-none\">\n <gn-ui-button\n [extraClass]=\"'bg-gray-200 font-bold'\"\n (buttonClick)=\"displayUrlInput()\"\n >\n <mat-icon class=\"material-symbols-outlined me-1\">link</mat-icon>\n {{ 'input.image.displayUrlInput' | translate }}\n </gn-ui-button>\n </div>\n <div *ngIf=\"showUrlInput\" class=\"flex-none flex flex-col gap-2\">\n <div class=\"h-2\"></div>\n <div class=\"flex gap-2 items-center\">\n <div class=\"flex-1 flex rounded-lg\">\n <span\n class=\"material-symbols-outlined px-4 inline-flex items-center min-w-fit rounded-s-lg border-2 border-e-0 border-gray-300\"\n >link</span\n >\n <input\n type=\"text\"\n class=\"py-3 ps-1 block w-full border-2 border-s-0 border-e-0 border-gray-300 text-sm font-medium\"\n placeholder=\"https://exemple.com/image.jpg\"\n (change)=\"handleUrlChange($event)\"\n />\n <gn-ui-button\n class=\"px-1 inline-flex items-center min-w-fit rounded-e-lg border-2 border-s-0 border-gray-300 text-white\"\n [extraClass]=\"\n urlInputValue && !downloadError ? 'bg-blue-500' : 'bg-gray-500'\n \"\n [disabled]=\"!urlInputValue || downloadError\"\n (buttonClick)=\"downloadUrl()\"\n >\n <mat-icon class=\"material-symbols-outlined\">arrow_upward</mat-icon>\n </gn-ui-button>\n </div>\n </div>\n </div>\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: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: FilesDropDirective, selector: "[gnUiFilesDrop]", outputs: ["dragFilesOver", "dropFiles"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i1$4.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
26313
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ImageInputComponent, isStandalone: true, selector: "gn-ui-image-input", inputs: { formControl: "formControl", maxSizeMB: "maxSizeMB", previewUrl: "previewUrl", altText: "altText", uploadProgress: "uploadProgress", uploadError: "uploadError" }, outputs: { fileChange: "fileChange", urlChange: "urlChange", uploadCancel: "uploadCancel", delete: "delete", altTextChange: "altTextChange" }, ngImport: i0, template: "<ng-container *ngIf=\"previewUrl; then withImage; else withoutImage\">\n</ng-container>\n\n<ng-template #withImage>\n <div class=\"w-full h-full flex flex-col gap-2\">\n <div class=\"flex-1 group relative\">\n <img\n class=\"w-full h-full object-cover border-2 border-gray-300 rounded-lg\"\n [alt]=\"altText\"\n loading=\"lazy\"\n [src]=\"previewUrl\"\n />\n <gn-ui-button\n [extraClass]=\"\n 'bg-gray-200 absolute right-2 bottom-2 invisible group-hover:visible'\n \"\n (buttonClick)=\"handleDelete()\"\n >\n <mat-icon class=\"material-symbols-outlined\">delete</mat-icon>\n </gn-ui-button>\n </div>\n <input\n *ngIf=\"showAltTextInput\"\n type=\"text\"\n class=\"py-3 px-2 border-2 border-gray-300 rounded-lg text-sm font-medium\"\n [placeholder]=\"'input.image.altTextPlaceholder' | translate\"\n [value]=\"altText\"\n (change)=\"handleAltTextChange($event)\"\n />\n <div class=\"flex flex-row gap-2\">\n <gn-ui-button\n [extraClass]=\"'bg-gray-200 font-bold'\"\n (buttonClick)=\"handleDelete()\"\n >\n <mat-icon class=\"material-symbols-outlined me-1\">delete</mat-icon>\n {{ 'input.image.delete' | translate }}\n </gn-ui-button>\n <gn-ui-button\n *ngIf=\"!showAltTextInput\"\n [extraClass]=\"'bg-gray-200 font-bold'\"\n (buttonClick)=\"toggleAltTextInput()\"\n >\n <mat-icon class=\"material-symbols-outlined me-1\">add</mat-icon>\n {{ 'input.image.displayAltTextInput' | translate }}\n </gn-ui-button>\n </div>\n </div>\n</ng-template>\n\n<ng-template #withoutImage>\n <div class=\"w-full h-full flex flex-col gap-2\">\n <label\n gnUiFilesDrop\n class=\"block flex-1 border-2 border-dashed border-gray-300 rounded-lg p-6 flex flex-col items-center justify-center gap-4 hover:cursor-pointer\"\n (dragFilesOver)=\"handleDragFilesOver($event)\"\n (dropFiles)=\"handleDropFiles($event)\"\n >\n <div class=\"w-14 h-14 rounded-md bg-gray-200 grid\">\n <mat-icon\n *ngIf=\"!dragFilesOver && !uploadProgress && !uploadError\"\n class=\"material-symbols-outlined place-self-center text-blue-500\"\n >image</mat-icon\n >\n <mat-icon\n *ngIf=\"dragFilesOver && !uploadProgress && !uploadError\"\n class=\"material-symbols-outlined place-self-center text-blue-500\"\n >add_box</mat-icon\n >\n <div *ngIf=\"uploadProgress\">\n <mat-progress-spinner\n class=\"place-self-center\"\n [diameter]=\"56\"\n [mode]=\"'determinate'\"\n [value]=\"uploadProgress\"\n ></mat-progress-spinner>\n <span\n class=\"text-sm font-medium relative inline-block width-[30px] bottom-[40px] left-[15px]\"\n >\n {{ uploadProgress }}%\n </span>\n </div>\n <mat-icon\n *ngIf=\"uploadError\"\n class=\"material-symbols-outlined place-self-center text-rose-500\"\n >broken_image</mat-icon\n >\n </div>\n <div class=\"flex flex-col items-center gap-1\">\n <p class=\"font-medium\">{{ getPrimaryText() | translate }}</p>\n <p\n class=\"text-sm\"\n [class]=\"\n uploadProgress || uploadError\n ? 'font-bold text-blue-500 cursor-pointer'\n : 'font-medium text-gray-500'\n \"\n (click)=\"handleSecondaryTextClick()\"\n >\n {{ getSecondaryText() | translate }}\n </p>\n </div>\n <input\n type=\"file\"\n class=\"hidden\"\n (change)=\"handleFileInput($event)\"\n [disabled]=\"showUrlInput || uploadProgress || uploadError\"\n />\n </label>\n <div *ngIf=\"!showUrlInput\" class=\"flex-none\">\n <gn-ui-button\n [extraClass]=\"'bg-gray-200 font-bold'\"\n (buttonClick)=\"displayUrlInput()\"\n >\n <mat-icon class=\"material-symbols-outlined me-1\">link</mat-icon>\n {{ 'input.image.displayUrlInput' | translate }}\n </gn-ui-button>\n </div>\n <div *ngIf=\"showUrlInput\" class=\"flex-none flex flex-col gap-2\">\n <div class=\"h-2\"></div>\n <div class=\"flex gap-2 items-center\">\n <div class=\"flex-1 flex rounded-lg\">\n <span\n class=\"material-symbols-outlined px-4 inline-flex items-center min-w-fit rounded-s-lg border-2 border-e-0 border-gray-300\"\n >link</span\n >\n <input\n type=\"text\"\n class=\"py-3 ps-1 block w-full border-2 border-s-0 border-e-0 border-gray-300 text-sm font-medium\"\n placeholder=\"https://exemple.com/image.jpg\"\n (change)=\"handleUrlChange($event)\"\n />\n <gn-ui-button\n class=\"px-1 inline-flex items-center min-w-fit rounded-e-lg border-2 border-s-0 border-gray-300 text-white\"\n [extraClass]=\"\n urlInputValue && !downloadError ? 'bg-blue-500' : 'bg-gray-500'\n \"\n [disabled]=\"!urlInputValue || downloadError\"\n (buttonClick)=\"downloadUrl()\"\n >\n <mat-icon class=\"material-symbols-outlined\">arrow_upward</mat-icon>\n </gn-ui-button>\n </div>\n </div>\n </div>\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: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: FilesDropDirective, selector: "[gnUiFilesDrop]", outputs: ["dragFilesOver", "dropFiles"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i1$4.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ReactiveFormsModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
25975
26314
|
}
|
|
25976
26315
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ImageInputComponent, decorators: [{
|
|
25977
26316
|
type: Component,
|
|
@@ -25982,8 +26321,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
25982
26321
|
FilesDropDirective,
|
|
25983
26322
|
MatProgressSpinnerModule,
|
|
25984
26323
|
TranslateModule,
|
|
25985
|
-
|
|
25986
|
-
|
|
26324
|
+
ReactiveFormsModule,
|
|
26325
|
+
], template: "<ng-container *ngIf=\"previewUrl; then withImage; else withoutImage\">\n</ng-container>\n\n<ng-template #withImage>\n <div class=\"w-full h-full flex flex-col gap-2\">\n <div class=\"flex-1 group relative\">\n <img\n class=\"w-full h-full object-cover border-2 border-gray-300 rounded-lg\"\n [alt]=\"altText\"\n loading=\"lazy\"\n [src]=\"previewUrl\"\n />\n <gn-ui-button\n [extraClass]=\"\n 'bg-gray-200 absolute right-2 bottom-2 invisible group-hover:visible'\n \"\n (buttonClick)=\"handleDelete()\"\n >\n <mat-icon class=\"material-symbols-outlined\">delete</mat-icon>\n </gn-ui-button>\n </div>\n <input\n *ngIf=\"showAltTextInput\"\n type=\"text\"\n class=\"py-3 px-2 border-2 border-gray-300 rounded-lg text-sm font-medium\"\n [placeholder]=\"'input.image.altTextPlaceholder' | translate\"\n [value]=\"altText\"\n (change)=\"handleAltTextChange($event)\"\n />\n <div class=\"flex flex-row gap-2\">\n <gn-ui-button\n [extraClass]=\"'bg-gray-200 font-bold'\"\n (buttonClick)=\"handleDelete()\"\n >\n <mat-icon class=\"material-symbols-outlined me-1\">delete</mat-icon>\n {{ 'input.image.delete' | translate }}\n </gn-ui-button>\n <gn-ui-button\n *ngIf=\"!showAltTextInput\"\n [extraClass]=\"'bg-gray-200 font-bold'\"\n (buttonClick)=\"toggleAltTextInput()\"\n >\n <mat-icon class=\"material-symbols-outlined me-1\">add</mat-icon>\n {{ 'input.image.displayAltTextInput' | translate }}\n </gn-ui-button>\n </div>\n </div>\n</ng-template>\n\n<ng-template #withoutImage>\n <div class=\"w-full h-full flex flex-col gap-2\">\n <label\n gnUiFilesDrop\n class=\"block flex-1 border-2 border-dashed border-gray-300 rounded-lg p-6 flex flex-col items-center justify-center gap-4 hover:cursor-pointer\"\n (dragFilesOver)=\"handleDragFilesOver($event)\"\n (dropFiles)=\"handleDropFiles($event)\"\n >\n <div class=\"w-14 h-14 rounded-md bg-gray-200 grid\">\n <mat-icon\n *ngIf=\"!dragFilesOver && !uploadProgress && !uploadError\"\n class=\"material-symbols-outlined place-self-center text-blue-500\"\n >image</mat-icon\n >\n <mat-icon\n *ngIf=\"dragFilesOver && !uploadProgress && !uploadError\"\n class=\"material-symbols-outlined place-self-center text-blue-500\"\n >add_box</mat-icon\n >\n <div *ngIf=\"uploadProgress\">\n <mat-progress-spinner\n class=\"place-self-center\"\n [diameter]=\"56\"\n [mode]=\"'determinate'\"\n [value]=\"uploadProgress\"\n ></mat-progress-spinner>\n <span\n class=\"text-sm font-medium relative inline-block width-[30px] bottom-[40px] left-[15px]\"\n >\n {{ uploadProgress }}%\n </span>\n </div>\n <mat-icon\n *ngIf=\"uploadError\"\n class=\"material-symbols-outlined place-self-center text-rose-500\"\n >broken_image</mat-icon\n >\n </div>\n <div class=\"flex flex-col items-center gap-1\">\n <p class=\"font-medium\">{{ getPrimaryText() | translate }}</p>\n <p\n class=\"text-sm\"\n [class]=\"\n uploadProgress || uploadError\n ? 'font-bold text-blue-500 cursor-pointer'\n : 'font-medium text-gray-500'\n \"\n (click)=\"handleSecondaryTextClick()\"\n >\n {{ getSecondaryText() | translate }}\n </p>\n </div>\n <input\n type=\"file\"\n class=\"hidden\"\n (change)=\"handleFileInput($event)\"\n [disabled]=\"showUrlInput || uploadProgress || uploadError\"\n />\n </label>\n <div *ngIf=\"!showUrlInput\" class=\"flex-none\">\n <gn-ui-button\n [extraClass]=\"'bg-gray-200 font-bold'\"\n (buttonClick)=\"displayUrlInput()\"\n >\n <mat-icon class=\"material-symbols-outlined me-1\">link</mat-icon>\n {{ 'input.image.displayUrlInput' | translate }}\n </gn-ui-button>\n </div>\n <div *ngIf=\"showUrlInput\" class=\"flex-none flex flex-col gap-2\">\n <div class=\"h-2\"></div>\n <div class=\"flex gap-2 items-center\">\n <div class=\"flex-1 flex rounded-lg\">\n <span\n class=\"material-symbols-outlined px-4 inline-flex items-center min-w-fit rounded-s-lg border-2 border-e-0 border-gray-300\"\n >link</span\n >\n <input\n type=\"text\"\n class=\"py-3 ps-1 block w-full border-2 border-s-0 border-e-0 border-gray-300 text-sm font-medium\"\n placeholder=\"https://exemple.com/image.jpg\"\n (change)=\"handleUrlChange($event)\"\n />\n <gn-ui-button\n class=\"px-1 inline-flex items-center min-w-fit rounded-e-lg border-2 border-s-0 border-gray-300 text-white\"\n [extraClass]=\"\n urlInputValue && !downloadError ? 'bg-blue-500' : 'bg-gray-500'\n \"\n [disabled]=\"!urlInputValue || downloadError\"\n (buttonClick)=\"downloadUrl()\"\n >\n <mat-icon class=\"material-symbols-outlined\">arrow_upward</mat-icon>\n </gn-ui-button>\n </div>\n </div>\n </div>\n </div>\n</ng-template>\n" }]
|
|
26326
|
+
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { formControl: [{
|
|
26327
|
+
type: Input
|
|
26328
|
+
}], maxSizeMB: [{
|
|
25987
26329
|
type: Input
|
|
25988
26330
|
}], previewUrl: [{
|
|
25989
26331
|
type: Input
|
|
@@ -26775,11 +27117,11 @@ class MetadataQualityItemComponent {
|
|
|
26775
27117
|
return `record.metadata.quality.${this.name}.${this.value ? 'success' : 'failed'}`;
|
|
26776
27118
|
}
|
|
26777
27119
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MetadataQualityItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
26778
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MetadataQualityItemComponent, selector: "gn-ui-metadata-quality-item", inputs: { name: "name", value: "value" }, ngImport: i0, template: "<div class=\"ml-4 flex flex-row\">\n <mat-icon class=\"material-symbols-outlined\">{{ icon }}</mat-icon>\n <p class=\"ml-2 text\">{{ labelKey | translate }}</p>\n</div>\n", dependencies: [{ kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
27120
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MetadataQualityItemComponent, selector: "gn-ui-metadata-quality-item", inputs: { name: "name", value: "value" }, ngImport: i0, template: "<div class=\"ml-4 flex flex-row\">\n <mat-icon class=\"material-symbols-outlined min-w-fit\">{{ icon }}</mat-icon>\n <p class=\"ml-2 text\">{{ labelKey | translate }}</p>\n</div>\n", dependencies: [{ kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
26779
27121
|
}
|
|
26780
27122
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MetadataQualityItemComponent, decorators: [{
|
|
26781
27123
|
type: Component,
|
|
26782
|
-
args: [{ selector: 'gn-ui-metadata-quality-item', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"ml-4 flex flex-row\">\n <mat-icon class=\"material-symbols-outlined\">{{ icon }}</mat-icon>\n <p class=\"ml-2 text\">{{ labelKey | translate }}</p>\n</div>\n" }]
|
|
27124
|
+
args: [{ selector: 'gn-ui-metadata-quality-item', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"ml-4 flex flex-row\">\n <mat-icon class=\"material-symbols-outlined min-w-fit\">{{ icon }}</mat-icon>\n <p class=\"ml-2 text\">{{ labelKey | translate }}</p>\n</div>\n" }]
|
|
26783
27125
|
}], propDecorators: { name: [{
|
|
26784
27126
|
type: Input
|
|
26785
27127
|
}], value: [{
|
|
@@ -26790,7 +27132,6 @@ class MetadataQualityComponent {
|
|
|
26790
27132
|
constructor() {
|
|
26791
27133
|
this.smaller = false;
|
|
26792
27134
|
this.items = [];
|
|
26793
|
-
this.isMenuShown = false;
|
|
26794
27135
|
}
|
|
26795
27136
|
get qualityScore() {
|
|
26796
27137
|
const qualityScore = this.metadata?.extras?.qualityScore;
|
|
@@ -26801,12 +27142,6 @@ class MetadataQualityComponent {
|
|
|
26801
27142
|
get calculatedQualityScore() {
|
|
26802
27143
|
return Math.round((this.items.filter(({ value }) => value).length * 100) / this.items.length);
|
|
26803
27144
|
}
|
|
26804
|
-
showMenu() {
|
|
26805
|
-
this.isMenuShown = true;
|
|
26806
|
-
}
|
|
26807
|
-
hideMenu() {
|
|
26808
|
-
this.isMenuShown = false;
|
|
26809
|
-
}
|
|
26810
27145
|
add(name, value) {
|
|
26811
27146
|
if (this.metadataQualityDisplay?.[name] !== false) {
|
|
26812
27147
|
this.items.push({ name, value });
|
|
@@ -26830,11 +27165,11 @@ class MetadataQualityComponent {
|
|
|
26830
27165
|
}
|
|
26831
27166
|
}
|
|
26832
27167
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MetadataQualityComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
26833
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MetadataQualityComponent, selector: "gn-ui-metadata-quality", inputs: { metadata: "metadata", smaller: "smaller", metadataQualityDisplay: "metadataQualityDisplay" }, usesOnChanges: true, ngImport: i0, template: "<div
|
|
27168
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MetadataQualityComponent, selector: "gn-ui-metadata-quality", inputs: { metadata: "metadata", smaller: "smaller", metadataQualityDisplay: "metadataQualityDisplay" }, usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"metadataQualityDisplay\" class=\"mb-6 metadata-quality\">\n <gn-ui-popover [content]=\"popoverItems\" theme=\"light-border\">\n <div class=\"min-w-[200px]\" [class]=\"smaller ? 'leading-[8px]' : ''\">\n <gn-ui-progress-bar\n tabindex=\"0\"\n [value]=\"qualityScore\"\n type=\"primary\"\n ></gn-ui-progress-bar>\n </div>\n </gn-ui-popover>\n</div>\n<ng-template #popoverItems>\n <div class=\"p-2 py-4\">\n <div class=\"mb-4 font-bold\" translate>record.metadata.quality.details</div>\n <gn-ui-metadata-quality-item\n *ngFor=\"let e of items\"\n [name]=\"e.name\"\n [value]=\"e.value\"\n ></gn-ui-metadata-quality-item>\n </div>\n</ng-template>\n", styles: [":host gn-ui-progress-bar{--progress-bar-font-weight: \"normal\"}\n"], 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: "component", type: ProgressBarComponent, selector: "gn-ui-progress-bar", inputs: ["value", "type"] }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: PopoverComponent, selector: "gn-ui-popover", inputs: ["content", "theme"] }, { kind: "component", type: MetadataQualityItemComponent, selector: "gn-ui-metadata-quality-item", inputs: ["name", "value"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
26834
27169
|
}
|
|
26835
27170
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MetadataQualityComponent, decorators: [{
|
|
26836
27171
|
type: Component,
|
|
26837
|
-
args: [{ selector: 'gn-ui-metadata-quality', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div
|
|
27172
|
+
args: [{ selector: 'gn-ui-metadata-quality', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngIf=\"metadataQualityDisplay\" class=\"mb-6 metadata-quality\">\n <gn-ui-popover [content]=\"popoverItems\" theme=\"light-border\">\n <div class=\"min-w-[200px]\" [class]=\"smaller ? 'leading-[8px]' : ''\">\n <gn-ui-progress-bar\n tabindex=\"0\"\n [value]=\"qualityScore\"\n type=\"primary\"\n ></gn-ui-progress-bar>\n </div>\n </gn-ui-popover>\n</div>\n<ng-template #popoverItems>\n <div class=\"p-2 py-4\">\n <div class=\"mb-4 font-bold\" translate>record.metadata.quality.details</div>\n <gn-ui-metadata-quality-item\n *ngFor=\"let e of items\"\n [name]=\"e.name\"\n [value]=\"e.value\"\n ></gn-ui-metadata-quality-item>\n </div>\n</ng-template>\n", styles: [":host gn-ui-progress-bar{--progress-bar-font-weight: \"normal\"}\n"] }]
|
|
26838
27173
|
}], propDecorators: { metadata: [{
|
|
26839
27174
|
type: Input
|
|
26840
27175
|
}], smaller: [{
|
|
@@ -27029,11 +27364,11 @@ class ApiCardComponent {
|
|
|
27029
27364
|
}
|
|
27030
27365
|
}
|
|
27031
27366
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ApiCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27032
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ApiCardComponent, selector: "gn-ui-api-card", inputs: { link: "link", currentLink: "currentLink" }, outputs: { openRecordApiForm: "openRecordApiForm" }, usesOnChanges: true, ngImport: i0, template: "<div\n class=\"group flex flex-col justify-between h-40 pt-5 pb-6 px-7 rounded filter overflow-hidden
|
|
27367
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ApiCardComponent, selector: "gn-ui-api-card", inputs: { link: "link", currentLink: "currentLink" }, outputs: { openRecordApiForm: "openRecordApiForm" }, usesOnChanges: true, ngImport: i0, template: "<div\n class=\"group flex flex-col justify-between h-40 pt-5 pb-6 px-7 rounded filter overflow-hidden cursor-default\"\n>\n <div\n class=\"font-title font-medium text-21 text-black text-ellipsis overflow-hidden break-words pb-5 h-[4.5rem]\"\n >\n {{ link.name || link.description }}\n </div>\n <div class=\"\">\n <div class=\"flex flex-row justify-between\">\n <span\n class=\"bg-primary-opacity-50 uppercase inline-flex items-center justify-center px-2 py-1 text-13 font-medium leading-none text-white rounded text-primary-lightest group-hover:bg-primary transition-colors\"\n [ngClass]=\"{\n '!bg-primary': currentlyActive\n }\"\n >{{ link.accessServiceProtocol }}</span\n >\n <div class=\"flex flex-row gap-2 items-center\">\n <gn-ui-copy-text-button\n [text]=\"link.url\"\n [tooltipText]=\"'tooltip.url.copy' | translate\"\n [displayText]=\"false\"\n ></gn-ui-copy-text-button>\n <button\n *ngIf=\"displayApiFormButton\"\n type=\"button\"\n [ngClass]=\"{\n 'py-2 px-4 rounded-r-md bg-gray-400 hover:bg-gray-600 focus:bg-gray-800 text-white':\n displayText\n }\"\n mat-raised-button\n [matTooltip]=\"\n !currentlyActive\n ? ('record.metadata.api.form.openForm' | translate)\n : ('record.metadata.api.form.closeForm' | translate)\n \"\n matTooltipPosition=\"above\"\n (click)=\"openRecordApiFormPanel()\"\n >\n <mat-icon\n class=\"material-symbols-outlined pointer-events-none align-middle card-icon\"\n [ngClass]=\"{\n 'text-secondary opacity-100': currentlyActive\n }\"\n >more_horiz</mat-icon\n >\n </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.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i3$1.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: CopyTextButtonComponent, selector: "gn-ui-copy-text-button", inputs: ["text", "tooltipText", "displayText", "rows"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
27033
27368
|
}
|
|
27034
27369
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ApiCardComponent, decorators: [{
|
|
27035
27370
|
type: Component,
|
|
27036
|
-
args: [{ selector: 'gn-ui-api-card', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"group flex flex-col justify-between h-40 pt-5 pb-6 px-7 rounded filter overflow-hidden
|
|
27371
|
+
args: [{ selector: 'gn-ui-api-card', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"group flex flex-col justify-between h-40 pt-5 pb-6 px-7 rounded filter overflow-hidden cursor-default\"\n>\n <div\n class=\"font-title font-medium text-21 text-black text-ellipsis overflow-hidden break-words pb-5 h-[4.5rem]\"\n >\n {{ link.name || link.description }}\n </div>\n <div class=\"\">\n <div class=\"flex flex-row justify-between\">\n <span\n class=\"bg-primary-opacity-50 uppercase inline-flex items-center justify-center px-2 py-1 text-13 font-medium leading-none text-white rounded text-primary-lightest group-hover:bg-primary transition-colors\"\n [ngClass]=\"{\n '!bg-primary': currentlyActive\n }\"\n >{{ link.accessServiceProtocol }}</span\n >\n <div class=\"flex flex-row gap-2 items-center\">\n <gn-ui-copy-text-button\n [text]=\"link.url\"\n [tooltipText]=\"'tooltip.url.copy' | translate\"\n [displayText]=\"false\"\n ></gn-ui-copy-text-button>\n <button\n *ngIf=\"displayApiFormButton\"\n type=\"button\"\n [ngClass]=\"{\n 'py-2 px-4 rounded-r-md bg-gray-400 hover:bg-gray-600 focus:bg-gray-800 text-white':\n displayText\n }\"\n mat-raised-button\n [matTooltip]=\"\n !currentlyActive\n ? ('record.metadata.api.form.openForm' | translate)\n : ('record.metadata.api.form.closeForm' | translate)\n \"\n matTooltipPosition=\"above\"\n (click)=\"openRecordApiFormPanel()\"\n >\n <mat-icon\n class=\"material-symbols-outlined pointer-events-none align-middle card-icon\"\n [ngClass]=\"{\n 'text-secondary opacity-100': currentlyActive\n }\"\n >more_horiz</mat-icon\n >\n </button>\n </div>\n </div>\n </div>\n</div>\n" }]
|
|
27037
27372
|
}], propDecorators: { link: [{
|
|
27038
27373
|
type: Input
|
|
27039
27374
|
}], currentLink: [{
|
|
@@ -27829,7 +28164,7 @@ class RecordApiFormComponent {
|
|
|
27829
28164
|
}
|
|
27830
28165
|
}
|
|
27831
28166
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RecordApiFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27832
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", 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 relative\">\n <p class=\"text-sm\" [class.text-gray-600]=\"!supportOffset\" translate>\n record.metadata.api.form.offset\n </p>\n <div class=\"flex items-center\">\n <gn-ui-text-input\n class=\"w-20\"\n [value]=\"offset$ | async\"\n [disabled]=\"!supportOffset\"\n (valueChange)=\"supportOffset ? setOffset($event) : null\"\n hint=\"\"\n >\n </gn-ui-text-input>\n <div\n *ngIf=\"!supportOffset\"\n class=\"flex items-center gap-2 text-orange-500 z-10 ml-3\"\n >\n <span\n class=\"material-symbols-outlined\"\n matTooltip=\"Not supported on this service\"\n >\n warning\n </span>\n </div>\n </div>\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]=\"outputFormats\"\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$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type:
|
|
28167
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", 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 relative\">\n <p class=\"text-sm\" [class.text-gray-600]=\"!supportOffset\" translate>\n record.metadata.api.form.offset\n </p>\n <div class=\"flex items-center\">\n <gn-ui-text-input\n class=\"w-20\"\n [value]=\"offset$ | async\"\n [disabled]=\"!supportOffset\"\n (valueChange)=\"supportOffset ? setOffset($event) : null\"\n hint=\"\"\n >\n </gn-ui-text-input>\n <div\n *ngIf=\"!supportOffset\"\n class=\"flex items-center gap-2 text-orange-500 z-10 ml-3\"\n >\n <span\n class=\"material-symbols-outlined\"\n matTooltip=\"Not supported on this service\"\n >\n warning\n </span>\n </div>\n </div>\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]=\"outputFormats\"\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$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3$1.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { 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", "disabled"], outputs: ["selectValue"] }, { kind: "component", type: TextInputComponent, selector: "gn-ui-text-input", inputs: ["value", "extraClass", "hint", "required", "disabled"], 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 }); }
|
|
27833
28168
|
}
|
|
27834
28169
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RecordApiFormComponent, decorators: [{
|
|
27835
28170
|
type: Component,
|
|
@@ -27857,7 +28192,7 @@ class RelatedRecordCardComponent {
|
|
|
27857
28192
|
return `${this.baseClasses} ${this.extraClass}`;
|
|
27858
28193
|
}
|
|
27859
28194
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RelatedRecordCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27860
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RelatedRecordCardComponent, selector: "gn-ui-related-record-card", inputs: { record: "record", extraClass: "extraClass" }, ngImport: i0, template: "<a\n [class]=\"classList\"\n [routerLink]=\"['/dataset', record.uniqueIdentifier]\"\n target=\"_blank\"\n>\n <div class=\"h-52 bg-gray-100\">\n <gn-ui-thumbnail\n class=\"h-52 w-full object-cover\"\n [thumbnailUrl]=\"record.overviews?.[0]?.url.toString()\"\n ></gn-ui-thumbnail>\n </div>\n <div class=\"flex flex-col justify-between h-44 px-5 pt-4 pb-6\">\n <h4\n class=\"max-h-24 font-title text-21 text-black text-ellipsis overflow-hidden\"\n >\n {{ record.title }}\n </h4>\n <div>\n <button\n mat-raised-button\n [matTooltip]=\"'tooltip.url.open' | translate\"\n matTooltipPosition=\"above\"\n >\n <mat-icon class=\"material-symbols-outlined align-middle text-secondary\"\n >open_in_new</mat-icon\n >\n </button>\n </div>\n </div>\n</a>\n", styles: [""], dependencies: [{ kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type:
|
|
28195
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RelatedRecordCardComponent, selector: "gn-ui-related-record-card", inputs: { record: "record", extraClass: "extraClass" }, ngImport: i0, template: "<a\n [class]=\"classList\"\n [routerLink]=\"['/dataset', record.uniqueIdentifier]\"\n target=\"_blank\"\n>\n <div class=\"h-52 bg-gray-100\">\n <gn-ui-thumbnail\n class=\"h-52 w-full object-cover\"\n [thumbnailUrl]=\"record.overviews?.[0]?.url.toString()\"\n ></gn-ui-thumbnail>\n </div>\n <div class=\"flex flex-col justify-between h-44 px-5 pt-4 pb-6\">\n <h4\n class=\"max-h-24 font-title text-21 text-black text-ellipsis overflow-hidden\"\n >\n {{ record.title }}\n </h4>\n <div>\n <button\n mat-raised-button\n [matTooltip]=\"'tooltip.url.open' | translate\"\n matTooltipPosition=\"above\"\n >\n <mat-icon class=\"material-symbols-outlined align-middle text-secondary\"\n >open_in_new</mat-icon\n >\n </button>\n </div>\n </div>\n</a>\n", styles: [""], dependencies: [{ kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i3$1.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "directive", type: i1$7.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: ThumbnailComponent, selector: "gn-ui-thumbnail", inputs: ["thumbnailUrl", "fit"], outputs: ["placeholderShown"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
27861
28196
|
}
|
|
27862
28197
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RelatedRecordCardComponent, decorators: [{
|
|
27863
28198
|
type: Component,
|
|
@@ -28032,7 +28367,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
28032
28367
|
|
|
28033
28368
|
class FormFieldWrapperComponent {
|
|
28034
28369
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
28035
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormFieldWrapperComponent, isStandalone: true, selector: "gn-ui-form-field-wrapper", inputs: { label: "label", hint: "hint" }, ngImport: i0, template: "<div class=\"h-full flex flex-col\">\n <div class=\"flex-none w-full flex flex-row items-center\">\n <span class=\"flex-none font-bold\">{{ label }}</span>\n <div class=\"flex-1 flex justify-end items-center\">\n <ng-content select=\"[form-field-interaction]\"></ng-content>\n <span\n class=\"material-symbols-outlined m-2 gn-ui-icon-small\"\n [matTooltip]=\"hint\"\n matTooltipPosition=\"above\"\n >\n help\n </span>\n </div>\n </div>\n <div class=\"flex-1\">\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type:
|
|
28370
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormFieldWrapperComponent, isStandalone: true, selector: "gn-ui-form-field-wrapper", inputs: { label: "label", hint: "hint" }, ngImport: i0, template: "<div class=\"h-full flex flex-col\">\n <div class=\"flex-none w-full flex flex-row items-center\">\n <span class=\"flex-none font-bold\">{{ label }}</span>\n <div class=\"flex-1 flex justify-end items-center\">\n <ng-content select=\"[form-field-interaction]\"></ng-content>\n <span\n class=\"material-symbols-outlined m-2 gn-ui-icon-small\"\n [matTooltip]=\"hint\"\n matTooltipPosition=\"above\"\n >\n help\n </span>\n </div>\n </div>\n <div class=\"flex-1\">\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3$1.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
28036
28371
|
}
|
|
28037
28372
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldWrapperComponent, decorators: [{
|
|
28038
28373
|
type: Component,
|
|
@@ -28288,11 +28623,11 @@ class UserPreviewComponent {
|
|
|
28288
28623
|
return (this.user.name + ' ' + this.user.surname).trim();
|
|
28289
28624
|
}
|
|
28290
28625
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UserPreviewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
28291
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: UserPreviewComponent, selector: "gn-ui-user-preview", inputs: { user: "user", avatarPlaceholder: "avatarPlaceholder" }, ngImport: i0, template: "<figure class=\"text-center\">\n <div\n class=\"w-
|
|
28626
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: UserPreviewComponent, selector: "gn-ui-user-preview", inputs: { user: "user", avatarPlaceholder: "avatarPlaceholder" }, ngImport: i0, template: "<figure class=\"text-center\">\n <div\n class=\"w-10 h-10 border border-primary rounded-full capitalize\"\n [matTooltip]=\"userFullName\"\n >\n <gn-ui-avatar\n [avatarUrl]=\"user.profileIcon\"\n [avatarPlaceholder]=\"avatarPlaceholder\"\n ></gn-ui-avatar>\n </div>\n</figure>\n", dependencies: [{ kind: "directive", type: i3$1.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: AvatarComponent, selector: "gn-ui-avatar", inputs: ["avatarUrl", "avatarPlaceholder"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
28292
28627
|
}
|
|
28293
28628
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UserPreviewComponent, decorators: [{
|
|
28294
28629
|
type: Component,
|
|
28295
|
-
args: [{ selector: 'gn-ui-user-preview', changeDetection: ChangeDetectionStrategy.OnPush, template: "<figure class=\"text-center\">\n <div\n class=\"w-
|
|
28630
|
+
args: [{ selector: 'gn-ui-user-preview', changeDetection: ChangeDetectionStrategy.OnPush, template: "<figure class=\"text-center\">\n <div\n class=\"w-10 h-10 border border-primary rounded-full capitalize\"\n [matTooltip]=\"userFullName\"\n >\n <gn-ui-avatar\n [avatarUrl]=\"user.profileIcon\"\n [avatarPlaceholder]=\"avatarPlaceholder\"\n ></gn-ui-avatar>\n </div>\n</figure>\n" }]
|
|
28296
28631
|
}], propDecorators: { user: [{
|
|
28297
28632
|
type: Input
|
|
28298
28633
|
}], avatarPlaceholder: [{
|
|
@@ -28432,6 +28767,7 @@ class UiElementsModule {
|
|
|
28432
28767
|
UiInputsModule,
|
|
28433
28768
|
FormsModule,
|
|
28434
28769
|
NgOptimizedImage,
|
|
28770
|
+
PopoverComponent,
|
|
28435
28771
|
MarkdownParserComponent,
|
|
28436
28772
|
ThumbnailComponent,
|
|
28437
28773
|
TimeSincePipe,
|
|
@@ -28466,6 +28802,7 @@ class UiElementsModule {
|
|
|
28466
28802
|
RouterModule,
|
|
28467
28803
|
UiInputsModule,
|
|
28468
28804
|
FormsModule,
|
|
28805
|
+
PopoverComponent,
|
|
28469
28806
|
ThumbnailComponent,
|
|
28470
28807
|
BadgeComponent,
|
|
28471
28808
|
MaxLinesComponent] }); }
|
|
@@ -28485,6 +28822,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
28485
28822
|
UiInputsModule,
|
|
28486
28823
|
FormsModule,
|
|
28487
28824
|
NgOptimizedImage,
|
|
28825
|
+
PopoverComponent,
|
|
28488
28826
|
MarkdownParserComponent,
|
|
28489
28827
|
ThumbnailComponent,
|
|
28490
28828
|
TimeSincePipe,
|
|
@@ -28641,6 +28979,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
28641
28979
|
}]
|
|
28642
28980
|
}] });
|
|
28643
28981
|
|
|
28982
|
+
class ActionMenuComponent {
|
|
28983
|
+
constructor() {
|
|
28984
|
+
this.duplicate = new EventEmitter();
|
|
28985
|
+
}
|
|
28986
|
+
openMenu() {
|
|
28987
|
+
this.trigger.openMenu();
|
|
28988
|
+
}
|
|
28989
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ActionMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
28990
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ActionMenuComponent, isStandalone: true, selector: "gn-ui-action-menu", outputs: { duplicate: "duplicate" }, viewQueries: [{ propertyName: "trigger", first: true, predicate: MatMenuTrigger, descendants: true }], ngImport: i0, template: "<gn-ui-button\n type=\"outline\"\n [matMenuTriggerFor]=\"menu\"\n (buttonClick)=\"openMenu()\"\n data-test=\"record-menu-button\"\n>\n <mat-icon class=\"material-symbols-outlined\">more_vert</mat-icon>\n</gn-ui-button>\n<mat-menu #menu=\"matMenu\">\n <button\n mat-menu-item\n (click)=\"duplicate.emit()\"\n data-test=\"record-menu-duplicate-button\"\n >\n <span translate>record.action.duplicate</span>\n </button>\n</mat-menu>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i2$4.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i2$4.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i2$4.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }] }); }
|
|
28991
|
+
}
|
|
28992
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ActionMenuComponent, decorators: [{
|
|
28993
|
+
type: Component,
|
|
28994
|
+
args: [{ selector: 'gn-ui-action-menu', standalone: true, imports: [MatIconModule, ButtonComponent, MatMenuModule, TranslateModule], template: "<gn-ui-button\n type=\"outline\"\n [matMenuTriggerFor]=\"menu\"\n (buttonClick)=\"openMenu()\"\n data-test=\"record-menu-button\"\n>\n <mat-icon class=\"material-symbols-outlined\">more_vert</mat-icon>\n</gn-ui-button>\n<mat-menu #menu=\"matMenu\">\n <button\n mat-menu-item\n (click)=\"duplicate.emit()\"\n data-test=\"record-menu-duplicate-button\"\n >\n <span translate>record.action.duplicate</span>\n </button>\n</mat-menu>\n" }]
|
|
28995
|
+
}], propDecorators: { duplicate: [{
|
|
28996
|
+
type: Output
|
|
28997
|
+
}], trigger: [{
|
|
28998
|
+
type: ViewChild,
|
|
28999
|
+
args: [MatMenuTrigger]
|
|
29000
|
+
}] } });
|
|
29001
|
+
|
|
28644
29002
|
class ResultsTableComponent {
|
|
28645
29003
|
constructor() {
|
|
28646
29004
|
this.records = [];
|
|
@@ -28650,6 +29008,7 @@ class ResultsTableComponent {
|
|
|
28650
29008
|
// emits the column (field) as well as the order
|
|
28651
29009
|
this.sortByChange = new EventEmitter();
|
|
28652
29010
|
this.recordClick = new EventEmitter();
|
|
29011
|
+
this.duplicateRecord = new EventEmitter();
|
|
28653
29012
|
this.recordsSelectedChange = new EventEmitter();
|
|
28654
29013
|
}
|
|
28655
29014
|
dateToString(date) {
|
|
@@ -28684,6 +29043,9 @@ class ResultsTableComponent {
|
|
|
28684
29043
|
handleRecordClick(item) {
|
|
28685
29044
|
this.recordClick.emit(item);
|
|
28686
29045
|
}
|
|
29046
|
+
handleDuplicate(item) {
|
|
29047
|
+
this.duplicateRecord.emit(item);
|
|
29048
|
+
}
|
|
28687
29049
|
setSortBy(col, order) {
|
|
28688
29050
|
this.sortByChange.emit([col, order]);
|
|
28689
29051
|
}
|
|
@@ -28719,7 +29081,7 @@ class ResultsTableComponent {
|
|
|
28719
29081
|
return !allSelected && someSelected;
|
|
28720
29082
|
}
|
|
28721
29083
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ResultsTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
28722
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ResultsTableComponent, isStandalone: true, selector: "gn-ui-results-table", inputs: { records: "records", selectedRecordsIdentifiers: "selectedRecordsIdentifiers", sortOrder: "sortOrder", recordHasDraft: "recordHasDraft" }, outputs: { sortByChange: "sortByChange", recordClick: "recordClick", recordsSelectedChange: "recordsSelectedChange" }, ngImport: i0, template: "<gn-ui-interactive-table\n [items]=\"records\"\n (itemClick)=\"handleRecordClick($event)\"\n>\n <!-- SELECTED COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header>\n <gn-ui-checkbox\n [checked]=\"isAllSelected()\"\n [indeterminate]=\"isSomeSelected()\"\n (changed)=\"toggleSelectAll()\"\n type=\"default\"\n class=\"-m-2 mr-3\"\n >\n </gn-ui-checkbox>\n </ng-template>\n <ng-template #cell let-item>\n <gn-ui-checkbox\n [checked]=\"isChecked(item)\"\n (changed)=\"handleRecordSelectedChange($event, item)\"\n class=\"-m-2\"\n type=\"default\"\n ></gn-ui-checkbox>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- TITLE COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('resourceTitleObject.default.keyword')\"\n (sortChange)=\"setSortBy('resourceTitleObject.default.keyword', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.title</span>\n </ng-template>\n <ng-template #cell let-item>\n <div class=\"flex flex-row items-center gap-2 max-w-full\">\n <span class=\"overflow-hidden text-ellipsis\">{{ item.title }}</span>\n <gn-ui-badge\n *ngIf=\"recordHasDraft(item)\"\n [style.--gn-ui-badge-padding]=\"'0.4em 0.6em'\"\n [style.--gn-ui-badge-text-color]=\"'#3d2006'\"\n [style.--gn-ui-badge-background-color]=\"'#ffbc7b'\"\n [style.--gn-ui-badge-rounded]=\"'4px'\"\n >\n <span translate>dashboard.records.hasDraft</span>\n </gn-ui-badge>\n </div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- FORMATS COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header>\n <span translate>record.metadata.formats</span>\n </ng-template>\n <ng-template #cell let-item>\n <div\n class=\"flex justify-start items-center gap-2\"\n *ngIf=\"getRecordFormats(item) as formats\"\n [title]=\"formats.join(', ')\"\n >\n <span\n class=\"badge-btn min-w-[45px] text-sm text-white px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[0])\"\n *ngIf=\"formats[0]\"\n >\n {{ formats[0] }}\n </span>\n <span\n class=\"badge-btn min-w-[45px] text-sm text-white px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[1])\"\n *ngIf=\"formats[1]\"\n >\n {{ formats[1] }}\n </span>\n <div class=\"shrink-0\" *ngIf=\"formats.slice(2).length > 0\">\n <span>+{{ formats.slice(2).length }}</span>\n </div>\n </div>\n <div *ngIf=\"!getRecordFormats(item)\"></div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- OWNER COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('recordOwner')\"\n (sortChange)=\"setSortBy('recordOwner', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.author</span>\n </ng-template>\n <ng-template #cell let-item>\n <mat-icon class=\"material-symbols-outlined\">person</mat-icon>\n <span>{{ formatUserInfo(item.extras?.ownerInfo) }}</span>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- STATUS COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header>\n <span translate>record.metadata.status</span>\n </ng-template>\n <ng-template #cell let-item>\n {{ item.status }}\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- UPDATE DATE COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('changeDate')\"\n (sortChange)=\"setSortBy('changeDate', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.updatedOn</span>\n </ng-template>\n <ng-template #cell let-item>\n {{ dateToString(item.recordUpdated) }}\n </ng-template>\n </gn-ui-interactive-table-column>\n</gn-ui-interactive-table>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: UiInputsModule }, { kind: "component", type: CheckboxComponent, selector: "gn-ui-checkbox", inputs: ["type", "checked", "indeterminate"], outputs: ["changed"] }, { kind: "component", type: BadgeComponent, selector: "gn-ui-badge", inputs: ["clickable", "removable"], outputs: ["badgeRemoveClicked"] }, { kind: "component", type: InteractiveTableComponent, selector: "gn-ui-interactive-table", inputs: ["items"], outputs: ["itemClick"] }, { kind: "component", type: InteractiveTableColumnComponent, selector: "gn-ui-interactive-table-column", inputs: ["grow", "sortable", "activeSort"], outputs: ["sortChange"] }, { 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: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }] }); }
|
|
29084
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ResultsTableComponent, isStandalone: true, selector: "gn-ui-results-table", inputs: { records: "records", selectedRecordsIdentifiers: "selectedRecordsIdentifiers", sortOrder: "sortOrder", recordHasDraft: "recordHasDraft" }, outputs: { sortByChange: "sortByChange", recordClick: "recordClick", duplicateRecord: "duplicateRecord", recordsSelectedChange: "recordsSelectedChange" }, ngImport: i0, template: "<gn-ui-interactive-table\n [items]=\"records\"\n (itemClick)=\"handleRecordClick($event)\"\n>\n <!-- SELECTED COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header>\n <gn-ui-checkbox\n [checked]=\"isAllSelected()\"\n [indeterminate]=\"isSomeSelected()\"\n (changed)=\"toggleSelectAll()\"\n type=\"default\"\n class=\"-m-2 mr-3\"\n >\n </gn-ui-checkbox>\n </ng-template>\n <ng-template #cell let-item>\n <gn-ui-checkbox\n [checked]=\"isChecked(item)\"\n (changed)=\"handleRecordSelectedChange($event, item)\"\n class=\"-m-2\"\n type=\"default\"\n ></gn-ui-checkbox>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- TITLE COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('resourceTitleObject.default.keyword')\"\n (sortChange)=\"setSortBy('resourceTitleObject.default.keyword', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.title</span>\n </ng-template>\n <ng-template #cell let-item>\n <div class=\"flex flex-row items-center gap-2 max-w-full\">\n <span class=\"overflow-hidden text-ellipsis\">{{ item.title }}</span>\n <gn-ui-badge\n *ngIf=\"recordHasDraft(item)\"\n [style.--gn-ui-badge-padding]=\"'0.4em 0.6em'\"\n [style.--gn-ui-badge-text-color]=\"'#3d2006'\"\n [style.--gn-ui-badge-background-color]=\"'#ffbc7b'\"\n [style.--gn-ui-badge-rounded]=\"'4px'\"\n >\n <span translate>dashboard.records.hasDraft</span>\n </gn-ui-badge>\n </div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- FORMATS COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header>\n <span translate>record.metadata.formats</span>\n </ng-template>\n <ng-template #cell let-item>\n <div\n class=\"flex justify-start items-center gap-2\"\n *ngIf=\"getRecordFormats(item) as formats\"\n [title]=\"formats.join(', ')\"\n >\n <span\n class=\"badge-btn min-w-[45px] text-sm text-white px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[0])\"\n *ngIf=\"formats[0]\"\n >\n {{ formats[0] }}\n </span>\n <span\n class=\"badge-btn min-w-[45px] text-sm text-white px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[1])\"\n *ngIf=\"formats[1]\"\n >\n {{ formats[1] }}\n </span>\n <div class=\"shrink-0\" *ngIf=\"formats.slice(2).length > 0\">\n <span>+{{ formats.slice(2).length }}</span>\n </div>\n </div>\n <div *ngIf=\"!getRecordFormats(item)\"></div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- OWNER COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('recordOwner')\"\n (sortChange)=\"setSortBy('recordOwner', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.author</span>\n </ng-template>\n <ng-template #cell let-item>\n <mat-icon class=\"material-symbols-outlined\">person</mat-icon>\n <span>{{ formatUserInfo(item.extras?.ownerInfo) }}</span>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- STATUS COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header>\n <span translate>record.metadata.status</span>\n </ng-template>\n <ng-template #cell let-item>\n {{ item.status }}\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- UPDATE DATE COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('changeDate')\"\n (sortChange)=\"setSortBy('changeDate', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.updatedOn</span>\n </ng-template>\n <ng-template #cell let-item>\n {{ dateToString(item.recordUpdated) }}\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- ACTION MENU COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header> </ng-template>\n <ng-template #cell let-item>\n <gn-ui-action-menu (duplicate)=\"handleDuplicate(item)\">\n </gn-ui-action-menu>\n </ng-template>\n </gn-ui-interactive-table-column>\n</gn-ui-interactive-table>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: UiInputsModule }, { kind: "component", type: CheckboxComponent, selector: "gn-ui-checkbox", inputs: ["type", "checked", "indeterminate"], outputs: ["changed"] }, { kind: "component", type: BadgeComponent, selector: "gn-ui-badge", inputs: ["clickable", "removable"], outputs: ["badgeRemoveClicked"] }, { kind: "component", type: InteractiveTableComponent, selector: "gn-ui-interactive-table", inputs: ["items"], outputs: ["itemClick"] }, { kind: "component", type: InteractiveTableColumnComponent, selector: "gn-ui-interactive-table-column", inputs: ["grow", "sortable", "activeSort"], outputs: ["sortChange"] }, { 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: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: ActionMenuComponent, selector: "gn-ui-action-menu", outputs: ["duplicate"] }] }); }
|
|
28723
29085
|
}
|
|
28724
29086
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ResultsTableComponent, decorators: [{
|
|
28725
29087
|
type: Component,
|
|
@@ -28731,7 +29093,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
28731
29093
|
MatIconModule,
|
|
28732
29094
|
TranslateModule,
|
|
28733
29095
|
BadgeComponent,
|
|
28734
|
-
|
|
29096
|
+
ActionMenuComponent,
|
|
29097
|
+
], template: "<gn-ui-interactive-table\n [items]=\"records\"\n (itemClick)=\"handleRecordClick($event)\"\n>\n <!-- SELECTED COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header>\n <gn-ui-checkbox\n [checked]=\"isAllSelected()\"\n [indeterminate]=\"isSomeSelected()\"\n (changed)=\"toggleSelectAll()\"\n type=\"default\"\n class=\"-m-2 mr-3\"\n >\n </gn-ui-checkbox>\n </ng-template>\n <ng-template #cell let-item>\n <gn-ui-checkbox\n [checked]=\"isChecked(item)\"\n (changed)=\"handleRecordSelectedChange($event, item)\"\n class=\"-m-2\"\n type=\"default\"\n ></gn-ui-checkbox>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- TITLE COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('resourceTitleObject.default.keyword')\"\n (sortChange)=\"setSortBy('resourceTitleObject.default.keyword', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.title</span>\n </ng-template>\n <ng-template #cell let-item>\n <div class=\"flex flex-row items-center gap-2 max-w-full\">\n <span class=\"overflow-hidden text-ellipsis\">{{ item.title }}</span>\n <gn-ui-badge\n *ngIf=\"recordHasDraft(item)\"\n [style.--gn-ui-badge-padding]=\"'0.4em 0.6em'\"\n [style.--gn-ui-badge-text-color]=\"'#3d2006'\"\n [style.--gn-ui-badge-background-color]=\"'#ffbc7b'\"\n [style.--gn-ui-badge-rounded]=\"'4px'\"\n >\n <span translate>dashboard.records.hasDraft</span>\n </gn-ui-badge>\n </div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- FORMATS COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header>\n <span translate>record.metadata.formats</span>\n </ng-template>\n <ng-template #cell let-item>\n <div\n class=\"flex justify-start items-center gap-2\"\n *ngIf=\"getRecordFormats(item) as formats\"\n [title]=\"formats.join(', ')\"\n >\n <span\n class=\"badge-btn min-w-[45px] text-sm text-white px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[0])\"\n *ngIf=\"formats[0]\"\n >\n {{ formats[0] }}\n </span>\n <span\n class=\"badge-btn min-w-[45px] text-sm text-white px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[1])\"\n *ngIf=\"formats[1]\"\n >\n {{ formats[1] }}\n </span>\n <div class=\"shrink-0\" *ngIf=\"formats.slice(2).length > 0\">\n <span>+{{ formats.slice(2).length }}</span>\n </div>\n </div>\n <div *ngIf=\"!getRecordFormats(item)\"></div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- OWNER COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('recordOwner')\"\n (sortChange)=\"setSortBy('recordOwner', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.author</span>\n </ng-template>\n <ng-template #cell let-item>\n <mat-icon class=\"material-symbols-outlined\">person</mat-icon>\n <span>{{ formatUserInfo(item.extras?.ownerInfo) }}</span>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- STATUS COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header>\n <span translate>record.metadata.status</span>\n </ng-template>\n <ng-template #cell let-item>\n {{ item.status }}\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- UPDATE DATE COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('changeDate')\"\n (sortChange)=\"setSortBy('changeDate', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.updatedOn</span>\n </ng-template>\n <ng-template #cell let-item>\n {{ dateToString(item.recordUpdated) }}\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- ACTION MENU COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header> </ng-template>\n <ng-template #cell let-item>\n <gn-ui-action-menu (duplicate)=\"handleDuplicate(item)\">\n </gn-ui-action-menu>\n </ng-template>\n </gn-ui-interactive-table-column>\n</gn-ui-interactive-table>\n" }]
|
|
28735
29098
|
}], propDecorators: { records: [{
|
|
28736
29099
|
type: Input
|
|
28737
29100
|
}], selectedRecordsIdentifiers: [{
|
|
@@ -28744,6 +29107,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
28744
29107
|
type: Output
|
|
28745
29108
|
}], recordClick: [{
|
|
28746
29109
|
type: Output
|
|
29110
|
+
}], duplicateRecord: [{
|
|
29111
|
+
type: Output
|
|
28747
29112
|
}], recordsSelectedChange: [{
|
|
28748
29113
|
type: Output
|
|
28749
29114
|
}] } });
|
|
@@ -30725,6 +31090,7 @@ class ResultsTableContainerComponent {
|
|
|
30725
31090
|
this.selectionService = selectionService;
|
|
30726
31091
|
this.recordsRepository = recordsRepository;
|
|
30727
31092
|
this.recordClick = new EventEmitter();
|
|
31093
|
+
this.duplicateRecord = new EventEmitter();
|
|
30728
31094
|
this.records$ = this.searchFacade.results$;
|
|
30729
31095
|
this.selectedRecords$ = this.selectionService.selectedRecordsIdentifiers$;
|
|
30730
31096
|
this.sortBy$ = this.searchFacade.sortBy$;
|
|
@@ -30733,6 +31099,9 @@ class ResultsTableContainerComponent {
|
|
|
30733
31099
|
handleRecordClick(item) {
|
|
30734
31100
|
this.recordClick.emit(item);
|
|
30735
31101
|
}
|
|
31102
|
+
handleDuplicateRecord(item) {
|
|
31103
|
+
this.duplicateRecord.emit(item);
|
|
31104
|
+
}
|
|
30736
31105
|
handleSortByChange(col, order) {
|
|
30737
31106
|
this.searchService.setSortBy([order, col]);
|
|
30738
31107
|
}
|
|
@@ -30745,13 +31114,15 @@ class ResultsTableContainerComponent {
|
|
|
30745
31114
|
}
|
|
30746
31115
|
}
|
|
30747
31116
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ResultsTableContainerComponent, deps: [{ token: SearchFacade }, { token: SearchService }, { token: SelectionService }, { token: RecordsRepositoryInterface }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
30748
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ResultsTableContainerComponent, isStandalone: true, selector: "gn-ui-results-table-container", outputs: { recordClick: "recordClick" }, ngImport: i0, template: "<gn-ui-results-table\n [records]=\"records$ | async\"\n [recordHasDraft]=\"hasDraft\"\n [selectedRecordsIdentifiers]=\"selectedRecords$ | async\"\n [sortOrder]=\"sortBy$ | async\"\n (recordClick)=\"handleRecordClick($event)\"\n (recordsSelectedChange)=\"handleRecordsSelectedChange($event[0], $event[1])\"\n (sortByChange)=\"handleSortByChange($event[0], $event[1])\"\n></gn-ui-results-table>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1$3.AsyncPipe, name: "async" }, { kind: "component", type: ResultsTableComponent, selector: "gn-ui-results-table", inputs: ["records", "selectedRecordsIdentifiers", "sortOrder", "recordHasDraft"], outputs: ["sortByChange", "recordClick", "recordsSelectedChange"] }] }); }
|
|
31117
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ResultsTableContainerComponent, isStandalone: true, selector: "gn-ui-results-table-container", outputs: { recordClick: "recordClick", duplicateRecord: "duplicateRecord" }, ngImport: i0, template: "<gn-ui-results-table\n [records]=\"records$ | async\"\n [recordHasDraft]=\"hasDraft\"\n [selectedRecordsIdentifiers]=\"selectedRecords$ | async\"\n [sortOrder]=\"sortBy$ | async\"\n (recordClick)=\"handleRecordClick($event)\"\n (duplicateRecord)=\"handleDuplicateRecord($event)\"\n (recordsSelectedChange)=\"handleRecordsSelectedChange($event[0], $event[1])\"\n (sortByChange)=\"handleSortByChange($event[0], $event[1])\"\n></gn-ui-results-table>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1$3.AsyncPipe, name: "async" }, { kind: "component", type: ResultsTableComponent, selector: "gn-ui-results-table", inputs: ["records", "selectedRecordsIdentifiers", "sortOrder", "recordHasDraft"], outputs: ["sortByChange", "recordClick", "duplicateRecord", "recordsSelectedChange"] }] }); }
|
|
30749
31118
|
}
|
|
30750
31119
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ResultsTableContainerComponent, decorators: [{
|
|
30751
31120
|
type: Component,
|
|
30752
|
-
args: [{ selector: 'gn-ui-results-table-container', standalone: true, imports: [CommonModule, ResultsTableComponent], template: "<gn-ui-results-table\n [records]=\"records$ | async\"\n [recordHasDraft]=\"hasDraft\"\n [selectedRecordsIdentifiers]=\"selectedRecords$ | async\"\n [sortOrder]=\"sortBy$ | async\"\n (recordClick)=\"handleRecordClick($event)\"\n (recordsSelectedChange)=\"handleRecordsSelectedChange($event[0], $event[1])\"\n (sortByChange)=\"handleSortByChange($event[0], $event[1])\"\n></gn-ui-results-table>\n" }]
|
|
31121
|
+
args: [{ selector: 'gn-ui-results-table-container', standalone: true, imports: [CommonModule, ResultsTableComponent], template: "<gn-ui-results-table\n [records]=\"records$ | async\"\n [recordHasDraft]=\"hasDraft\"\n [selectedRecordsIdentifiers]=\"selectedRecords$ | async\"\n [sortOrder]=\"sortBy$ | async\"\n (recordClick)=\"handleRecordClick($event)\"\n (duplicateRecord)=\"handleDuplicateRecord($event)\"\n (recordsSelectedChange)=\"handleRecordsSelectedChange($event[0], $event[1])\"\n (sortByChange)=\"handleSortByChange($event[0], $event[1])\"\n></gn-ui-results-table>\n" }]
|
|
30753
31122
|
}], ctorParameters: function () { return [{ type: SearchFacade }, { type: SearchService }, { type: SelectionService }, { type: RecordsRepositoryInterface }]; }, propDecorators: { recordClick: [{
|
|
30754
31123
|
type: Output
|
|
31124
|
+
}], duplicateRecord: [{
|
|
31125
|
+
type: Output
|
|
30755
31126
|
}] } });
|
|
30756
31127
|
|
|
30757
31128
|
class AddLayerRecordPreviewComponent extends RecordPreviewComponent {
|
|
@@ -31793,7 +32164,7 @@ class TableComponent {
|
|
|
31793
32164
|
return rowIdPrefix + id;
|
|
31794
32165
|
}
|
|
31795
32166
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TableComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
31796
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TableComponent, isStandalone: true, selector: "gn-ui-table", inputs: { data: "data", activeId: "activeId" }, outputs: { selected: "selected" }, viewQueries: [{ propertyName: "sort", first: true, predicate: MatSort, descendants: true, static: true }], ngImport: i0, template: "<div class=\"border border-gray-300 rounded-lg overflow-hidden bg-white h-full\">\n <cdk-virtual-scroll-viewport\n tvsItemSize=\"48\"\n headerHeight=\"56\"\n style=\"height: calc(100% - 37px)\"\n >\n <table mat-table [dataSource]=\"dataSource\" class=\"mat-elevation-z8\" matSort>\n <ng-container *ngFor=\"let prop of properties\" [matColumnDef]=\"prop\">\n <th\n mat-header-cell\n *matHeaderCellDef\n mat-sort-header\n class=\"text-sm text-black bg-white\"\n >\n {{ prop }}\n </th>\n <td\n mat-cell\n *matCellDef=\"let element\"\n class=\"whitespace-nowrap pr-1 truncate\"\n >\n {{ element[prop] }}\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"properties; sticky: true\"></tr>\n <tr\n [id]=\"getRowEltId(row.id)\"\n mat-row\n *matRowDef=\"let row; columns: properties\"\n (click)=\"selected.emit(row)\"\n [class.active]=\"row.id === activeId\"\n ></tr>\n </table>\n </cdk-virtual-scroll-viewport>\n <div class=\"text-gray-900 border-t border-gray-300 px-4 py-2 text-sm\">\n <span class=\"count font-extrabold text-primary\">{{ count }}</span\n > <span translate>table.object.count</span>.\n </div>\n</div>\n", styles: ["table{width:100%;background:white}th.mat-mdc-header-cell,td.mat-mdc-cell,td.mat-mdc-footer-cell{padding-right:20px}tr.mat-mdc-row,tr.mat-mdc-footer-row{height:36px}tr:hover{background:whitesmoke}tr.mat-mdc-header-row{height:48px}[mat-header-cell]{color:#0000008a;font-size:12px;font-weight:500}tr{cursor:pointer}.active .mat-mdc-cell{color:var(--color-primary)}\n"], dependencies: [{ kind: "ngmodule", type: MatTableModule }, { kind: "component", type: i1$9.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i1$9.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i1$9.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i1$9.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i1$9.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i1$9.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i1$9.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i1$9.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i1$9.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i1$9.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "ngmodule", type: MatSortModule }, { kind: "directive", type: i2$6.MatSort, selector: "[matSort]", inputs: ["matSortDisabled", "matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i2$6.MatSortHeader, selector: "[mat-sort-header]", inputs: ["disabled", "mat-sort-header", "arrowPosition", "start", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "ngmodule", type: TableVirtualScrollModule }, { kind: "directive", type: i3$
|
|
32167
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TableComponent, isStandalone: true, selector: "gn-ui-table", inputs: { data: "data", activeId: "activeId" }, outputs: { selected: "selected" }, viewQueries: [{ propertyName: "sort", first: true, predicate: MatSort, descendants: true, static: true }], ngImport: i0, template: "<div class=\"border border-gray-300 rounded-lg overflow-hidden bg-white h-full\">\n <cdk-virtual-scroll-viewport\n tvsItemSize=\"48\"\n headerHeight=\"56\"\n style=\"height: calc(100% - 37px)\"\n >\n <table mat-table [dataSource]=\"dataSource\" class=\"mat-elevation-z8\" matSort>\n <ng-container *ngFor=\"let prop of properties\" [matColumnDef]=\"prop\">\n <th\n mat-header-cell\n *matHeaderCellDef\n mat-sort-header\n class=\"text-sm text-black bg-white\"\n >\n {{ prop }}\n </th>\n <td\n mat-cell\n *matCellDef=\"let element\"\n class=\"whitespace-nowrap pr-1 truncate\"\n >\n {{ element[prop] }}\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"properties; sticky: true\"></tr>\n <tr\n [id]=\"getRowEltId(row.id)\"\n mat-row\n *matRowDef=\"let row; columns: properties\"\n (click)=\"selected.emit(row)\"\n [class.active]=\"row.id === activeId\"\n ></tr>\n </table>\n </cdk-virtual-scroll-viewport>\n <div class=\"text-gray-900 border-t border-gray-300 px-4 py-2 text-sm\">\n <span class=\"count font-extrabold text-primary\">{{ count }}</span\n > <span translate>table.object.count</span>.\n </div>\n</div>\n", styles: ["table{width:100%;background:white}th.mat-mdc-header-cell,td.mat-mdc-cell,td.mat-mdc-footer-cell{padding-right:20px}tr.mat-mdc-row,tr.mat-mdc-footer-row{height:36px}tr:hover{background:whitesmoke}tr.mat-mdc-header-row{height:48px}[mat-header-cell]{color:#0000008a;font-size:12px;font-weight:500}tr{cursor:pointer}.active .mat-mdc-cell{color:var(--color-primary)}\n"], dependencies: [{ kind: "ngmodule", type: MatTableModule }, { kind: "component", type: i1$9.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i1$9.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i1$9.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i1$9.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i1$9.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i1$9.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i1$9.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i1$9.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i1$9.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i1$9.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "ngmodule", type: MatSortModule }, { kind: "directive", type: i2$6.MatSort, selector: "[matSort]", inputs: ["matSortDisabled", "matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i2$6.MatSortHeader, selector: "[mat-sort-header]", inputs: ["disabled", "mat-sort-header", "arrowPosition", "start", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "ngmodule", type: TableVirtualScrollModule }, { kind: "directive", type: i3$3.TableItemSizeDirective, selector: "cdk-virtual-scroll-viewport[tvsItemSize]", inputs: ["tvsItemSize", "headerEnabled", "headerHeight", "footerEnabled", "footerHeight", "bufferMultiplier"] }, { kind: "ngmodule", type: ScrollingModule }, { kind: "component", type: i4.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
31797
32168
|
}
|
|
31798
32169
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TableComponent, decorators: [{
|
|
31799
32170
|
type: Component,
|
|
@@ -33939,37 +34310,54 @@ const GN_UI_VERSION = new InjectionToken('gnUiVersion');
|
|
|
33939
34310
|
|
|
33940
34311
|
const WEB_COMPONENT_EMBEDDER_URL = new InjectionToken('webComponentEmbedderUrl');
|
|
33941
34312
|
class DataViewPermalinkComponent {
|
|
34313
|
+
set viewType(value) {
|
|
34314
|
+
this.viewType$.next(value);
|
|
34315
|
+
}
|
|
33942
34316
|
constructor(config, wcEmbedderBaseUrl, version, facade) {
|
|
33943
34317
|
this.config = config;
|
|
33944
34318
|
this.wcEmbedderBaseUrl = wcEmbedderBaseUrl;
|
|
33945
34319
|
this.version = version;
|
|
33946
34320
|
this.facade = facade;
|
|
34321
|
+
this.viewType$ = new BehaviorSubject('map');
|
|
33947
34322
|
this.permalinkUrl$ = combineLatest([
|
|
34323
|
+
this.viewType$,
|
|
33948
34324
|
this.facade.chartConfig$,
|
|
33949
34325
|
this.facade.metadata$,
|
|
33950
|
-
]).pipe(map$2(([config, metadata]) => {
|
|
33951
|
-
|
|
33952
|
-
|
|
33953
|
-
|
|
33954
|
-
|
|
33955
|
-
|
|
33956
|
-
|
|
33957
|
-
|
|
33958
|
-
|
|
33959
|
-
|
|
33960
|
-
|
|
33961
|
-
|
|
33962
|
-
|
|
33963
|
-
|
|
33964
|
-
|
|
33965
|
-
url.searchParams.append('a', `chart-type=${chartType}`);
|
|
33966
|
-
return url.toString();
|
|
34326
|
+
]).pipe(map$2(([viewType, config, metadata]) => {
|
|
34327
|
+
const url = new URL(`${this.wcEmbedderBaseUrl}`, window.location.origin);
|
|
34328
|
+
url.searchParams.set('v', `${this.version}`);
|
|
34329
|
+
if (viewType === 'chart') {
|
|
34330
|
+
if (config) {
|
|
34331
|
+
const { aggregation, xProperty, yProperty, chartType } = config;
|
|
34332
|
+
url.searchParams.append('e', `gn-dataset-view-chart`);
|
|
34333
|
+
url.searchParams.append('a', `aggregation=${aggregation}`);
|
|
34334
|
+
url.searchParams.append('a', `x-property=${xProperty}`);
|
|
34335
|
+
url.searchParams.append('a', `y-property=${yProperty}`);
|
|
34336
|
+
url.searchParams.append('a', `chart-type=${chartType}`);
|
|
34337
|
+
}
|
|
34338
|
+
else {
|
|
34339
|
+
return '';
|
|
34340
|
+
}
|
|
33967
34341
|
}
|
|
33968
|
-
|
|
34342
|
+
else if (viewType === 'table') {
|
|
34343
|
+
// table
|
|
34344
|
+
url.searchParams.append('e', `gn-dataset-view-table`);
|
|
34345
|
+
}
|
|
34346
|
+
else {
|
|
34347
|
+
// map
|
|
34348
|
+
url.searchParams.append('e', `gn-dataset-view-map`);
|
|
34349
|
+
}
|
|
34350
|
+
url.searchParams.append('a', `api-url=${this.config.basePath}`);
|
|
34351
|
+
url.searchParams.append('a', `dataset-id=${metadata.uniqueIdentifier}`);
|
|
34352
|
+
url.searchParams.append('a', `primary-color=#0f4395`);
|
|
34353
|
+
url.searchParams.append('a', `secondary-color=#8bc832`);
|
|
34354
|
+
url.searchParams.append('a', `main-color=#555`);
|
|
34355
|
+
url.searchParams.append('a', `background-color=#fdfbff`);
|
|
34356
|
+
return url.toString();
|
|
33969
34357
|
}));
|
|
33970
34358
|
}
|
|
33971
34359
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataViewPermalinkComponent, deps: [{ token: Configuration }, { token: WEB_COMPONENT_EMBEDDER_URL, optional: true }, { token: GN_UI_VERSION }, { token: MdViewFacade }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
33972
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DataViewPermalinkComponent, selector: "gn-ui-data-view-permalink", ngImport: i0, template: "<gn-ui-copy-text-button\n *ngIf=\"wcEmbedderBaseUrl\"\n [text]=\"permalinkUrl$ | async\"\n [tooltipText]=\"'tooltip.url.copy' | translate\"\n></gn-ui-copy-text-button>\n", styles: [""], dependencies: [{ kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: CopyTextButtonComponent, selector: "gn-ui-copy-text-button", inputs: ["text", "tooltipText", "displayText", "rows"] }, { kind: "pipe", type: i1$3.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
34360
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DataViewPermalinkComponent, selector: "gn-ui-data-view-permalink", inputs: { viewType: "viewType" }, ngImport: i0, template: "<gn-ui-copy-text-button\n *ngIf=\"wcEmbedderBaseUrl\"\n [text]=\"permalinkUrl$ | async\"\n [tooltipText]=\"'tooltip.url.copy' | translate\"\n></gn-ui-copy-text-button>\n", styles: [""], dependencies: [{ kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: CopyTextButtonComponent, selector: "gn-ui-copy-text-button", inputs: ["text", "tooltipText", "displayText", "rows"] }, { kind: "pipe", type: i1$3.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
33973
34361
|
}
|
|
33974
34362
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataViewPermalinkComponent, decorators: [{
|
|
33975
34363
|
type: Component,
|
|
@@ -33985,37 +34373,71 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
33985
34373
|
}] }, { type: undefined, decorators: [{
|
|
33986
34374
|
type: Inject,
|
|
33987
34375
|
args: [GN_UI_VERSION]
|
|
33988
|
-
}] }, { type: MdViewFacade }]; }
|
|
34376
|
+
}] }, { type: MdViewFacade }]; }, propDecorators: { viewType: [{
|
|
34377
|
+
type: Input
|
|
34378
|
+
}] } });
|
|
33989
34379
|
|
|
33990
34380
|
class DataViewWebComponentComponent {
|
|
34381
|
+
set viewType(value) {
|
|
34382
|
+
this.viewType$.next(value);
|
|
34383
|
+
}
|
|
33991
34384
|
constructor(config, version, facade) {
|
|
33992
34385
|
this.config = config;
|
|
33993
34386
|
this.version = version;
|
|
33994
34387
|
this.facade = facade;
|
|
33995
|
-
this.
|
|
33996
|
-
|
|
33997
|
-
|
|
34388
|
+
this.viewType$ = new BehaviorSubject('map');
|
|
34389
|
+
this.webComponentHtml$ = combineLatest(this.viewType$, this.facade.chartConfig$, this.facade.metadata$).pipe(map$2(([viewType, config, metadata]) => {
|
|
34390
|
+
if (viewType === 'chart') {
|
|
34391
|
+
if (config) {
|
|
34392
|
+
const { aggregation, xProperty, yProperty, chartType } = config;
|
|
34393
|
+
return `<script src="https://cdn.jsdelivr.net/gh/geonetwork/geonetwork-ui@wc-dist-${this.version}/gn-wc.js"></script>
|
|
34394
|
+
<gn-dataset-view-chart
|
|
34395
|
+
api-url="${new URL(this.config.basePath, window.location.origin).toString()}"
|
|
34396
|
+
dataset-id="${metadata.uniqueIdentifier}"
|
|
34397
|
+
aggregation="${aggregation}"
|
|
34398
|
+
x-property="${xProperty}"
|
|
34399
|
+
y-property="${yProperty}"
|
|
34400
|
+
chart-type="${chartType}"
|
|
34401
|
+
primary-color="#0f4395"
|
|
34402
|
+
secondary-color="#8bc832"
|
|
34403
|
+
main-color="#555"
|
|
34404
|
+
background-color="#fdfbff"
|
|
34405
|
+
main-font="'Inter', sans-serif"
|
|
34406
|
+
title-font="'DM Serif Display', serif"
|
|
34407
|
+
></gn-dataset-view-chart>`;
|
|
34408
|
+
}
|
|
34409
|
+
return '';
|
|
34410
|
+
}
|
|
34411
|
+
else if (viewType === 'table') {
|
|
34412
|
+
return `<script src="https://cdn.jsdelivr.net/gh/geonetwork/geonetwork-ui@wc-dist-${this.version}/gn-wc.js"></script>
|
|
34413
|
+
<gn-dataset-view-table
|
|
34414
|
+
api-url="${new URL(this.config.basePath, window.location.origin).toString()}"
|
|
34415
|
+
dataset-id="${metadata.uniqueIdentifier}"
|
|
34416
|
+
primary-color="#0f4395"
|
|
34417
|
+
secondary-color="#8bc832"
|
|
34418
|
+
main-color="#555"
|
|
34419
|
+
background-color="#fdfbff"
|
|
34420
|
+
main-font="'Inter', sans-serif"
|
|
34421
|
+
title-font="'DM Serif Display', serif"
|
|
34422
|
+
></gn-dataset-view-table>`;
|
|
34423
|
+
}
|
|
34424
|
+
else {
|
|
33998
34425
|
return `<script src="https://cdn.jsdelivr.net/gh/geonetwork/geonetwork-ui@wc-dist-${this.version}/gn-wc.js"></script>
|
|
33999
|
-
<gn-dataset-view-
|
|
34426
|
+
<gn-dataset-view-map
|
|
34000
34427
|
api-url="${new URL(this.config.basePath, window.location.origin).toString()}"
|
|
34001
34428
|
dataset-id="${metadata.uniqueIdentifier}"
|
|
34002
|
-
aggregation="${aggregation}"
|
|
34003
|
-
x-property="${xProperty}"
|
|
34004
|
-
y-property="${yProperty}"
|
|
34005
|
-
chart-type="${chartType}"
|
|
34006
34429
|
primary-color="#0f4395"
|
|
34007
34430
|
secondary-color="#8bc832"
|
|
34008
34431
|
main-color="#555"
|
|
34009
34432
|
background-color="#fdfbff"
|
|
34010
34433
|
main-font="'Inter', sans-serif"
|
|
34011
34434
|
title-font="'DM Serif Display', serif"
|
|
34012
|
-
></gn-dataset-view-
|
|
34435
|
+
></gn-dataset-view-map>`;
|
|
34013
34436
|
}
|
|
34014
|
-
return '';
|
|
34015
34437
|
}));
|
|
34016
34438
|
}
|
|
34017
34439
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataViewWebComponentComponent, deps: [{ token: Configuration }, { token: GN_UI_VERSION }, { token: MdViewFacade }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
34018
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DataViewWebComponentComponent, selector: "gn-ui-data-view-web-component", ngImport: i0, template: "<gn-ui-copy-text-button\n [text]=\"webComponentHtml$ | async\"\n [rows]=\"3\"\n [tooltipText]=\"'tooltip.html.copy' | translate\"\n></gn-ui-copy-text-button>\n", styles: [""], dependencies: [{ kind: "component", type: CopyTextButtonComponent, selector: "gn-ui-copy-text-button", inputs: ["text", "tooltipText", "displayText", "rows"] }, { kind: "pipe", type: i1$3.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
34440
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DataViewWebComponentComponent, selector: "gn-ui-data-view-web-component", inputs: { viewType: "viewType" }, ngImport: i0, template: "<gn-ui-copy-text-button\n [text]=\"webComponentHtml$ | async\"\n [rows]=\"3\"\n [tooltipText]=\"'tooltip.html.copy' | translate\"\n></gn-ui-copy-text-button>\n", styles: [""], dependencies: [{ kind: "component", type: CopyTextButtonComponent, selector: "gn-ui-copy-text-button", inputs: ["text", "tooltipText", "displayText", "rows"] }, { kind: "pipe", type: i1$3.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
34019
34441
|
}
|
|
34020
34442
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataViewWebComponentComponent, decorators: [{
|
|
34021
34443
|
type: Component,
|
|
@@ -34026,24 +34448,34 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
34026
34448
|
}] }, { type: undefined, decorators: [{
|
|
34027
34449
|
type: Inject,
|
|
34028
34450
|
args: [GN_UI_VERSION]
|
|
34029
|
-
}] }, { type: MdViewFacade }]; }
|
|
34451
|
+
}] }, { type: MdViewFacade }]; }, propDecorators: { viewType: [{
|
|
34452
|
+
type: Input
|
|
34453
|
+
}] } });
|
|
34030
34454
|
|
|
34031
34455
|
class DataViewShareComponent {
|
|
34456
|
+
set viewType(value) {
|
|
34457
|
+
this._viewType = value;
|
|
34458
|
+
}
|
|
34459
|
+
get viewType() {
|
|
34460
|
+
return this._viewType;
|
|
34461
|
+
}
|
|
34032
34462
|
constructor(wcEmbedderBaseUrl) {
|
|
34033
34463
|
this.wcEmbedderBaseUrl = wcEmbedderBaseUrl;
|
|
34034
34464
|
}
|
|
34035
34465
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataViewShareComponent, deps: [{ token: WEB_COMPONENT_EMBEDDER_URL, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
34036
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DataViewShareComponent, selector: "gn-ui-data-view-share", ngImport: i0, template: "<div class=\"container-lg px-5 my-1 lg:mx-auto\">\n <mat-tab-group\n [selectedIndex]=\"0\"\n animationDuration=\"0ms\"\n mat-stretch-tabs=\"false\"\n mat-align-tabs=\"start\"\n [disableRipple]=\"!wcEmbedderBaseUrl\"\n >\n <mat-tab *ngIf=\"wcEmbedderBaseUrl\">\n <ng-template mat-tab-label>\n <span class=\"tab-header-label-gray\" translate>share.tab.permalink</span>\n </ng-template>\n <gn-ui-data-view-permalink></gn-ui-data-view-permalink>\n </mat-tab>\n <mat-tab>\n <ng-template mat-tab-label>\n <span\n [class]=\"\n wcEmbedderBaseUrl\n ? 'tab-header-label-gray'\n : 'single-tab-header-label-gray'\n \"\n translate\n >share.tab.webComponent</span\n >\n </ng-template>\n <gn-ui-data-view-web-component></gn-ui-data-view-web-component>\n </mat-tab>\n </mat-tab-group>\n</div>\n", styles: ["::ng-deep .mat-mdc-tab.mdc-tab.mdc-tab--active .tab-header-label-gray{opacity:100%;font-weight:700}.tab-header-label-gray{@apply text-sm text-gray-700 opacity-75 hover:text-gray-900;}.single-tab-header-label-gray{@apply text-sm text-gray-900;}\n"], dependencies: [{ kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$5.MatTabLabel, selector: "[mat-tab-label], [matTabLabel]" }, { kind: "component", type: i2$5.MatTab, selector: "mat-tab", inputs: ["disabled"], exportAs: ["matTab"] }, { kind: "component", type: i2$5.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "disableRipple", "fitInkBarToContent", "mat-stretch-tabs"], exportAs: ["matTabGroup"] }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: DataViewPermalinkComponent, selector: "gn-ui-data-view-permalink" }, { kind: "component", type: DataViewWebComponentComponent, selector: "gn-ui-data-view-web-component" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
34466
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DataViewShareComponent, selector: "gn-ui-data-view-share", inputs: { viewType: "viewType" }, ngImport: i0, template: "<div class=\"container-lg px-5 my-1 lg:mx-auto\">\n <mat-tab-group\n [selectedIndex]=\"0\"\n animationDuration=\"0ms\"\n mat-stretch-tabs=\"false\"\n mat-align-tabs=\"start\"\n [disableRipple]=\"!wcEmbedderBaseUrl\"\n >\n <mat-tab *ngIf=\"wcEmbedderBaseUrl\">\n <ng-template mat-tab-label>\n <span class=\"tab-header-label-gray\" translate>share.tab.permalink</span>\n </ng-template>\n <gn-ui-data-view-permalink\n [viewType]=\"viewType\"\n ></gn-ui-data-view-permalink>\n </mat-tab>\n <mat-tab>\n <ng-template mat-tab-label>\n <span\n [class]=\"\n wcEmbedderBaseUrl\n ? 'tab-header-label-gray'\n : 'single-tab-header-label-gray'\n \"\n translate\n >share.tab.webComponent</span\n >\n </ng-template>\n <gn-ui-data-view-web-component\n [viewType]=\"viewType\"\n ></gn-ui-data-view-web-component>\n </mat-tab>\n </mat-tab-group>\n</div>\n", styles: ["::ng-deep .mat-mdc-tab.mdc-tab.mdc-tab--active .tab-header-label-gray{opacity:100%;font-weight:700}.tab-header-label-gray{@apply text-sm text-gray-700 opacity-75 hover:text-gray-900;}.single-tab-header-label-gray{@apply text-sm text-gray-900;}\n"], dependencies: [{ kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$5.MatTabLabel, selector: "[mat-tab-label], [matTabLabel]" }, { kind: "component", type: i2$5.MatTab, selector: "mat-tab", inputs: ["disabled"], exportAs: ["matTab"] }, { kind: "component", type: i2$5.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "disableRipple", "fitInkBarToContent", "mat-stretch-tabs"], exportAs: ["matTabGroup"] }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: DataViewPermalinkComponent, selector: "gn-ui-data-view-permalink", inputs: ["viewType"] }, { kind: "component", type: DataViewWebComponentComponent, selector: "gn-ui-data-view-web-component", inputs: ["viewType"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
34037
34467
|
}
|
|
34038
34468
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataViewShareComponent, decorators: [{
|
|
34039
34469
|
type: Component,
|
|
34040
|
-
args: [{ selector: 'gn-ui-data-view-share', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"container-lg px-5 my-1 lg:mx-auto\">\n <mat-tab-group\n [selectedIndex]=\"0\"\n animationDuration=\"0ms\"\n mat-stretch-tabs=\"false\"\n mat-align-tabs=\"start\"\n [disableRipple]=\"!wcEmbedderBaseUrl\"\n >\n <mat-tab *ngIf=\"wcEmbedderBaseUrl\">\n <ng-template mat-tab-label>\n <span class=\"tab-header-label-gray\" translate>share.tab.permalink</span>\n </ng-template>\n <gn-ui-data-view-permalink></gn-ui-data-view-permalink>\n </mat-tab>\n <mat-tab>\n <ng-template mat-tab-label>\n <span\n [class]=\"\n wcEmbedderBaseUrl\n ? 'tab-header-label-gray'\n : 'single-tab-header-label-gray'\n \"\n translate\n >share.tab.webComponent</span\n >\n </ng-template>\n <gn-ui-data-view-web-component></gn-ui-data-view-web-component>\n </mat-tab>\n </mat-tab-group>\n</div>\n", styles: ["::ng-deep .mat-mdc-tab.mdc-tab.mdc-tab--active .tab-header-label-gray{opacity:100%;font-weight:700}.tab-header-label-gray{@apply text-sm text-gray-700 opacity-75 hover:text-gray-900;}.single-tab-header-label-gray{@apply text-sm text-gray-900;}\n"] }]
|
|
34470
|
+
args: [{ selector: 'gn-ui-data-view-share', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"container-lg px-5 my-1 lg:mx-auto\">\n <mat-tab-group\n [selectedIndex]=\"0\"\n animationDuration=\"0ms\"\n mat-stretch-tabs=\"false\"\n mat-align-tabs=\"start\"\n [disableRipple]=\"!wcEmbedderBaseUrl\"\n >\n <mat-tab *ngIf=\"wcEmbedderBaseUrl\">\n <ng-template mat-tab-label>\n <span class=\"tab-header-label-gray\" translate>share.tab.permalink</span>\n </ng-template>\n <gn-ui-data-view-permalink\n [viewType]=\"viewType\"\n ></gn-ui-data-view-permalink>\n </mat-tab>\n <mat-tab>\n <ng-template mat-tab-label>\n <span\n [class]=\"\n wcEmbedderBaseUrl\n ? 'tab-header-label-gray'\n : 'single-tab-header-label-gray'\n \"\n translate\n >share.tab.webComponent</span\n >\n </ng-template>\n <gn-ui-data-view-web-component\n [viewType]=\"viewType\"\n ></gn-ui-data-view-web-component>\n </mat-tab>\n </mat-tab-group>\n</div>\n", styles: ["::ng-deep .mat-mdc-tab.mdc-tab.mdc-tab--active .tab-header-label-gray{opacity:100%;font-weight:700}.tab-header-label-gray{@apply text-sm text-gray-700 opacity-75 hover:text-gray-900;}.single-tab-header-label-gray{@apply text-sm text-gray-900;}\n"] }]
|
|
34041
34471
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
34042
34472
|
type: Optional
|
|
34043
34473
|
}, {
|
|
34044
34474
|
type: Inject,
|
|
34045
34475
|
args: [WEB_COMPONENT_EMBEDDER_URL]
|
|
34046
|
-
}] }]; }
|
|
34476
|
+
}] }]; }, propDecorators: { viewType: [{
|
|
34477
|
+
type: Input
|
|
34478
|
+
}] } });
|
|
34047
34479
|
|
|
34048
34480
|
class FeatureRecordModule {
|
|
34049
34481
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FeatureRecordModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
@@ -34133,75 +34565,169 @@ const saveRecord = createAction('[Editor] Save record');
|
|
|
34133
34565
|
const saveRecordSuccess = createAction('[Editor] Save record success');
|
|
34134
34566
|
const saveRecordFailure = createAction('[Editor] Save record failure', props());
|
|
34135
34567
|
const draftSaveSuccess = createAction('[Editor] Draft save success');
|
|
34568
|
+
const setCurrentPage = createAction('[Editor] Set current page', props());
|
|
34136
34569
|
|
|
34137
|
-
|
|
34138
|
-
|
|
34139
|
-
|
|
34140
|
-
|
|
34141
|
-
|
|
34142
|
-
|
|
34143
|
-
|
|
34570
|
+
/**
|
|
34571
|
+
* This file contains the configuration of the fields that will be displayed in the editor.
|
|
34572
|
+
* To add a new field, you need to create a new EditorField object in the fields part of this file.
|
|
34573
|
+
* Then add it to the corresponding section in the sections part of this file.
|
|
34574
|
+
* Finally, add the section to the corresponding page in the pages part of this file.
|
|
34575
|
+
*/
|
|
34576
|
+
/************************************************************
|
|
34577
|
+
*************** FIELDS *****************
|
|
34578
|
+
************************************************************
|
|
34579
|
+
*/
|
|
34580
|
+
const RECORD_LICENSE_FIELD = {
|
|
34581
|
+
model: 'licenses',
|
|
34582
|
+
formFieldConfig: {
|
|
34583
|
+
labelKey: marker('editor.record.form.field.license'),
|
|
34144
34584
|
},
|
|
34145
|
-
|
|
34146
|
-
|
|
34147
|
-
|
|
34148
|
-
|
|
34149
|
-
|
|
34150
|
-
},
|
|
34585
|
+
};
|
|
34586
|
+
const RECORD_KEYWORDS_FIELD = {
|
|
34587
|
+
model: 'keywords',
|
|
34588
|
+
formFieldConfig: {
|
|
34589
|
+
labelKey: marker('editor.record.form.field.keywords'),
|
|
34151
34590
|
},
|
|
34152
|
-
|
|
34153
|
-
|
|
34154
|
-
|
|
34155
|
-
|
|
34156
|
-
|
|
34157
|
-
|
|
34158
|
-
},
|
|
34591
|
+
};
|
|
34592
|
+
const RECORD_UNIQUE_IDENTIFIER_FIELD = {
|
|
34593
|
+
model: 'uniqueIdentifier',
|
|
34594
|
+
formFieldConfig: {
|
|
34595
|
+
labelKey: marker('editor.record.form.field.uniqueIdentifier'),
|
|
34596
|
+
locked: true,
|
|
34159
34597
|
},
|
|
34160
|
-
|
|
34161
|
-
|
|
34162
|
-
|
|
34163
|
-
|
|
34164
|
-
|
|
34165
|
-
locked: true,
|
|
34166
|
-
},
|
|
34167
|
-
onSaveProcess: '${dateNow()}',
|
|
34598
|
+
};
|
|
34599
|
+
const RECORD_RESOURCE_UPDATED_FIELD = {
|
|
34600
|
+
model: 'resourceUpdated',
|
|
34601
|
+
formFieldConfig: {
|
|
34602
|
+
labelKey: marker('editor.record.form.field.resourceUpdated'),
|
|
34168
34603
|
},
|
|
34169
|
-
|
|
34170
|
-
|
|
34171
|
-
|
|
34172
|
-
|
|
34173
|
-
|
|
34174
|
-
|
|
34604
|
+
};
|
|
34605
|
+
const RECORD_UPDATED_FIELD = {
|
|
34606
|
+
model: 'recordUpdated',
|
|
34607
|
+
formFieldConfig: {
|
|
34608
|
+
labelKey: marker('editor.record.form.field.recordUpdated'),
|
|
34609
|
+
locked: true,
|
|
34175
34610
|
},
|
|
34176
|
-
{
|
|
34177
|
-
|
|
34178
|
-
|
|
34179
|
-
|
|
34180
|
-
|
|
34181
|
-
|
|
34611
|
+
onSaveProcess: '${dateNow()}',
|
|
34612
|
+
};
|
|
34613
|
+
const RECORD_UPDATE_FREQUENCY_FIELD = {
|
|
34614
|
+
model: 'updateFrequency',
|
|
34615
|
+
formFieldConfig: {
|
|
34616
|
+
labelKey: marker('editor.record.form.field.updateFrequency'),
|
|
34182
34617
|
},
|
|
34183
|
-
|
|
34184
|
-
|
|
34185
|
-
|
|
34186
|
-
|
|
34187
|
-
|
|
34188
|
-
},
|
|
34618
|
+
};
|
|
34619
|
+
const RECORD_TEMPORAL_EXTENTS_FIELD = {
|
|
34620
|
+
model: 'temporalExtents',
|
|
34621
|
+
formFieldConfig: {
|
|
34622
|
+
labelKey: marker('editor.record.form.field.temporalExtents'),
|
|
34189
34623
|
},
|
|
34190
|
-
|
|
34191
|
-
|
|
34192
|
-
|
|
34193
|
-
|
|
34194
|
-
|
|
34195
|
-
},
|
|
34624
|
+
};
|
|
34625
|
+
const RECORD_TITLE_FIELD = {
|
|
34626
|
+
model: 'title',
|
|
34627
|
+
formFieldConfig: {
|
|
34628
|
+
labelKey: marker('editor.record.form.field.title'),
|
|
34196
34629
|
},
|
|
34197
|
-
|
|
34198
|
-
|
|
34199
|
-
|
|
34200
|
-
|
|
34201
|
-
|
|
34202
|
-
},
|
|
34630
|
+
};
|
|
34631
|
+
const RECORD_ABSTRACT_FIELD = {
|
|
34632
|
+
model: 'abstract',
|
|
34633
|
+
formFieldConfig: {
|
|
34634
|
+
labelKey: marker('editor.record.form.field.abstract'),
|
|
34203
34635
|
},
|
|
34204
|
-
|
|
34636
|
+
};
|
|
34637
|
+
const RECORD_GRAPHICAL_OVERVIEW_FIELD = {
|
|
34638
|
+
model: 'overviews',
|
|
34639
|
+
formFieldConfig: {
|
|
34640
|
+
labelKey: marker('editor.record.form.field.overviews'),
|
|
34641
|
+
},
|
|
34642
|
+
};
|
|
34643
|
+
/************************************************************
|
|
34644
|
+
*************** SECTIONS *****************
|
|
34645
|
+
************************************************************
|
|
34646
|
+
*/
|
|
34647
|
+
const TITLE_SECTION = {
|
|
34648
|
+
hidden: false,
|
|
34649
|
+
fields: [
|
|
34650
|
+
RECORD_TITLE_FIELD,
|
|
34651
|
+
RECORD_ABSTRACT_FIELD,
|
|
34652
|
+
RECORD_GRAPHICAL_OVERVIEW_FIELD,
|
|
34653
|
+
],
|
|
34654
|
+
};
|
|
34655
|
+
const ABOUT_SECTION = {
|
|
34656
|
+
labelKey: marker('editor.record.form.section.about.label'),
|
|
34657
|
+
descriptionKey: marker('editor.record.form.section.about.description'),
|
|
34658
|
+
hidden: false,
|
|
34659
|
+
fields: [
|
|
34660
|
+
RECORD_UNIQUE_IDENTIFIER_FIELD,
|
|
34661
|
+
RECORD_RESOURCE_UPDATED_FIELD,
|
|
34662
|
+
RECORD_UPDATED_FIELD,
|
|
34663
|
+
RECORD_UPDATE_FREQUENCY_FIELD,
|
|
34664
|
+
RECORD_TEMPORAL_EXTENTS_FIELD,
|
|
34665
|
+
],
|
|
34666
|
+
};
|
|
34667
|
+
const GEOGRAPHICAL_COVERAGE_SECTION = {
|
|
34668
|
+
labelKey: marker('editor.record.form.section.geographicalCoverage.label'),
|
|
34669
|
+
hidden: false,
|
|
34670
|
+
fields: [],
|
|
34671
|
+
};
|
|
34672
|
+
const ASSOCIATED_RESOURCES_SECTION = {
|
|
34673
|
+
labelKey: marker('editor.record.form.section.associatedResources.label'),
|
|
34674
|
+
descriptionKey: marker('editor.record.form.section.associatedResources.description'),
|
|
34675
|
+
hidden: false,
|
|
34676
|
+
fields: [],
|
|
34677
|
+
};
|
|
34678
|
+
const ANNEXES_SECTION = {
|
|
34679
|
+
labelKey: marker('editor.record.form.section.annexes.label'),
|
|
34680
|
+
hidden: false,
|
|
34681
|
+
fields: [],
|
|
34682
|
+
};
|
|
34683
|
+
const CLASSIFICATION_SECTION = {
|
|
34684
|
+
labelKey: marker('editor.record.form.section.classification.label'),
|
|
34685
|
+
descriptionKey: marker('editor.record.form.section.classification.description'),
|
|
34686
|
+
hidden: false,
|
|
34687
|
+
fields: [RECORD_KEYWORDS_FIELD],
|
|
34688
|
+
};
|
|
34689
|
+
const USE_AND_ACCESS_CONDITIONS_SECTION = {
|
|
34690
|
+
labelKey: marker('editor.record.form.section.useAndAccessConditions.label'),
|
|
34691
|
+
hidden: false,
|
|
34692
|
+
fields: [RECORD_LICENSE_FIELD],
|
|
34693
|
+
};
|
|
34694
|
+
const DATA_MANAGERS_SECTION = {
|
|
34695
|
+
labelKey: marker('editor.record.form.section.dataManagers.label'),
|
|
34696
|
+
descriptionKey: marker('editor.record.form.section.dataManagers.description'),
|
|
34697
|
+
hidden: false,
|
|
34698
|
+
fields: [],
|
|
34699
|
+
};
|
|
34700
|
+
const DATA_POINT_OF_CONTACT_SECTION = {
|
|
34701
|
+
labelKey: marker('editor.record.form.section.dataPointOfContact.label'),
|
|
34702
|
+
descriptionKey: marker('editor.record.form.section.dataPointOfContact.description'),
|
|
34703
|
+
hidden: false,
|
|
34704
|
+
fields: [],
|
|
34705
|
+
};
|
|
34706
|
+
/************************************************************
|
|
34707
|
+
*************** PAGES *****************
|
|
34708
|
+
************************************************************
|
|
34709
|
+
*/
|
|
34710
|
+
const DEFAULT_CONFIGURATION = {
|
|
34711
|
+
pages: [
|
|
34712
|
+
{
|
|
34713
|
+
labelKey: marker('editor.record.form.page.description'),
|
|
34714
|
+
sections: [TITLE_SECTION, ABOUT_SECTION, GEOGRAPHICAL_COVERAGE_SECTION],
|
|
34715
|
+
},
|
|
34716
|
+
{
|
|
34717
|
+
labelKey: marker('editor.record.form.page.ressources'),
|
|
34718
|
+
sections: [ASSOCIATED_RESOURCES_SECTION, ANNEXES_SECTION],
|
|
34719
|
+
},
|
|
34720
|
+
{
|
|
34721
|
+
labelKey: marker('editor.record.form.page.accessAndContact'),
|
|
34722
|
+
sections: [
|
|
34723
|
+
CLASSIFICATION_SECTION,
|
|
34724
|
+
USE_AND_ACCESS_CONDITIONS_SECTION,
|
|
34725
|
+
DATA_MANAGERS_SECTION,
|
|
34726
|
+
DATA_POINT_OF_CONTACT_SECTION,
|
|
34727
|
+
],
|
|
34728
|
+
},
|
|
34729
|
+
],
|
|
34730
|
+
};
|
|
34205
34731
|
|
|
34206
34732
|
const EDITOR_FEATURE_KEY = 'editor';
|
|
34207
34733
|
const initialEditorState = {
|
|
@@ -34211,7 +34737,8 @@ const initialEditorState = {
|
|
|
34211
34737
|
saving: false,
|
|
34212
34738
|
saveError: null,
|
|
34213
34739
|
changedSinceSave: false,
|
|
34214
|
-
|
|
34740
|
+
editorConfig: DEFAULT_CONFIGURATION,
|
|
34741
|
+
currentPage: 0,
|
|
34215
34742
|
};
|
|
34216
34743
|
const reducer = createReducer(initialEditorState, on(openRecord, (state, { record, recordSource, alreadySavedOnce }) => ({
|
|
34217
34744
|
...state,
|
|
@@ -34241,6 +34768,9 @@ const reducer = createReducer(initialEditorState, on(openRecord, (state, { recor
|
|
|
34241
34768
|
})), on(markRecordAsChanged, (state) => ({
|
|
34242
34769
|
...state,
|
|
34243
34770
|
changedSinceSave: true,
|
|
34771
|
+
})), on(setCurrentPage, (state, { page }) => ({
|
|
34772
|
+
...state,
|
|
34773
|
+
currentPage: page,
|
|
34244
34774
|
})));
|
|
34245
34775
|
function editorReducer(state, action) {
|
|
34246
34776
|
return reducer(state, action);
|
|
@@ -34253,11 +34783,21 @@ const selectRecordSaving = createSelector(selectEditorState, (state) => state.sa
|
|
|
34253
34783
|
const selectRecordSaveError = createSelector(selectEditorState, (state) => state.saveError);
|
|
34254
34784
|
const selectRecordChangedSinceSave = createSelector(selectEditorState, (state) => state.changedSinceSave);
|
|
34255
34785
|
const selectRecordAlreadySavedOnce = createSelector(selectEditorState, (state) => state.alreadySavedOnce);
|
|
34256
|
-
const
|
|
34257
|
-
const
|
|
34258
|
-
|
|
34259
|
-
|
|
34260
|
-
|
|
34786
|
+
const selectEditorConfig = createSelector(selectEditorState, (state) => state.editorConfig);
|
|
34787
|
+
const selectCurrentPage = createSelector(selectEditorState, (state) => state.currentPage);
|
|
34788
|
+
const selectRecordSections = createSelector(selectEditorState, (state) => {
|
|
34789
|
+
const currentPage = state.editorConfig.pages[state.currentPage];
|
|
34790
|
+
if (!currentPage) {
|
|
34791
|
+
return [];
|
|
34792
|
+
}
|
|
34793
|
+
return currentPage.sections.map((section) => ({
|
|
34794
|
+
...section,
|
|
34795
|
+
fieldsWithValues: section.fields.map((fieldConfig) => ({
|
|
34796
|
+
config: fieldConfig,
|
|
34797
|
+
value: state.record?.[fieldConfig.model] ?? null,
|
|
34798
|
+
})),
|
|
34799
|
+
}));
|
|
34800
|
+
});
|
|
34261
34801
|
|
|
34262
34802
|
class EditorFacade {
|
|
34263
34803
|
constructor() {
|
|
@@ -34270,8 +34810,10 @@ class EditorFacade {
|
|
|
34270
34810
|
this.saveError$ = this.store.pipe(select(selectRecordSaveError), filter$1((error) => !!error));
|
|
34271
34811
|
this.saveSuccess$ = this.actions$.pipe(ofType(saveRecordSuccess));
|
|
34272
34812
|
this.changedSinceSave$ = this.store.pipe(select(selectRecordChangedSinceSave));
|
|
34273
|
-
this.
|
|
34813
|
+
this.currentSections$ = this.store.pipe(select(selectRecordSections));
|
|
34274
34814
|
this.draftSaveSuccess$ = this.actions$.pipe(ofType(draftSaveSuccess));
|
|
34815
|
+
this.currentPage$ = this.store.pipe(select(selectCurrentPage));
|
|
34816
|
+
this.editorConfig$ = this.store.pipe(select(selectEditorConfig));
|
|
34275
34817
|
}
|
|
34276
34818
|
openRecord(record, recordSource, alreadySavedOnce) {
|
|
34277
34819
|
this.store.dispatch(openRecord({ record, recordSource, alreadySavedOnce }));
|
|
@@ -34282,6 +34824,9 @@ class EditorFacade {
|
|
|
34282
34824
|
updateRecordField(field, value) {
|
|
34283
34825
|
this.store.dispatch(updateRecordField({ field, value }));
|
|
34284
34826
|
}
|
|
34827
|
+
setCurrentPage(page) {
|
|
34828
|
+
this.store.dispatch(setCurrentPage({ page }));
|
|
34829
|
+
}
|
|
34285
34830
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EditorFacade, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
34286
34831
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EditorFacade }); }
|
|
34287
34832
|
}
|
|
@@ -34309,12 +34854,13 @@ class EditorService {
|
|
|
34309
34854
|
// returns the record as it was when saved, alongside its source
|
|
34310
34855
|
saveRecord(record, fieldsConfig, generateNewUniqueIdentifier = false) {
|
|
34311
34856
|
const savedRecord = { ...record };
|
|
34857
|
+
const fields = fieldsConfig.pages.flatMap((page) => page.sections.flatMap((section) => section.fields));
|
|
34312
34858
|
// run onSave processes
|
|
34313
|
-
for (const field of
|
|
34859
|
+
for (const field of fields) {
|
|
34314
34860
|
if (field.onSaveProcess && field.model) {
|
|
34315
34861
|
const evaluator = evaluate(field.onSaveProcess);
|
|
34316
34862
|
savedRecord[field.model] = evaluator({
|
|
34317
|
-
|
|
34863
|
+
model: field.model,
|
|
34318
34864
|
value: record[field.model],
|
|
34319
34865
|
});
|
|
34320
34866
|
}
|
|
@@ -34351,7 +34897,7 @@ class EditorEffects {
|
|
|
34351
34897
|
this.editorService = inject(EditorService);
|
|
34352
34898
|
this.recordsRepository = inject(RecordsRepositoryInterface);
|
|
34353
34899
|
this.store = inject(Store);
|
|
34354
|
-
this.saveRecord$ = createEffect(() => this.actions$.pipe(ofType(saveRecord), withLatestFrom$1(this.store.select(selectRecord), this.store.select(
|
|
34900
|
+
this.saveRecord$ = createEffect(() => this.actions$.pipe(ofType(saveRecord), withLatestFrom$1(this.store.select(selectRecord), this.store.select(selectEditorConfig), this.store.select(selectRecordAlreadySavedOnce)), switchMap$1(([, record, fieldsConfig, alreadySavedOnce]) => this.editorService
|
|
34355
34901
|
.saveRecord(record, fieldsConfig, !alreadySavedOnce)
|
|
34356
34902
|
.pipe(switchMap$1(([record, recordSource]) => of(saveRecordSuccess(), openRecord({
|
|
34357
34903
|
record,
|
|
@@ -34592,7 +35138,7 @@ class WizardFieldComponent {
|
|
|
34592
35138
|
deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],
|
|
34593
35139
|
},
|
|
34594
35140
|
{ provide: MAT_DATE_FORMATS, useValue: MY_FORMATS },
|
|
34595
|
-
], 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", "disabled"], outputs: ["selectValue"] }, { kind: "component", type: TextInputComponent, selector: "gn-ui-text-input", inputs: ["value", "extraClass", "hint", "required", "disabled"], 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: i2$
|
|
35141
|
+
], 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", "disabled"], outputs: ["selectValue"] }, { kind: "component", type: TextInputComponent, selector: "gn-ui-text-input", inputs: ["value", "extraClass", "hint", "required", "disabled"], 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: i2$3.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i2$3.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
34596
35142
|
}
|
|
34597
35143
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: WizardFieldComponent, decorators: [{
|
|
34598
35144
|
type: Component,
|
|
@@ -35257,13 +35803,161 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
35257
35803
|
type: Input
|
|
35258
35804
|
}] } });
|
|
35259
35805
|
|
|
35806
|
+
const extractFileNameFromUrl = (url) => {
|
|
35807
|
+
const pattern = new RegExp(`attachments/([^/?#]+)(?:[/?#]|$)`, 'i');
|
|
35808
|
+
const match = url.match(pattern);
|
|
35809
|
+
return match ? match[1] : '';
|
|
35810
|
+
};
|
|
35811
|
+
class OverviewUploadComponent {
|
|
35812
|
+
constructor(recordsApiService, cd) {
|
|
35813
|
+
this.recordsApiService = recordsApiService;
|
|
35814
|
+
this.cd = cd;
|
|
35815
|
+
this.overviewChange = new EventEmitter();
|
|
35816
|
+
this.altTextChange = new EventEmitter();
|
|
35817
|
+
this.resourceAltText = ''; // = ressourceFileName by default
|
|
35818
|
+
this.resourceFileName = '';
|
|
35819
|
+
this.errorHandle = (error) => {
|
|
35820
|
+
console.error(error);
|
|
35821
|
+
this.resourceUrl = null;
|
|
35822
|
+
this.resourceAltText = '';
|
|
35823
|
+
this.resourceFileName = '';
|
|
35824
|
+
this.overviewChange.emit(null);
|
|
35825
|
+
this.cd.markForCheck();
|
|
35826
|
+
};
|
|
35827
|
+
}
|
|
35828
|
+
ngOnInit() {
|
|
35829
|
+
this.recordsApiService.getAllResources(this.metadataUuid).subscribe({
|
|
35830
|
+
next: (resources) => {
|
|
35831
|
+
if (resources && resources.length > 0) {
|
|
35832
|
+
this.resourceUrl = new URL(resources[0]?.url);
|
|
35833
|
+
this.resourceAltText =
|
|
35834
|
+
this.resourceAltText === ''
|
|
35835
|
+
? resources[0].filename
|
|
35836
|
+
: this.resourceAltText;
|
|
35837
|
+
this.resourceFileName = extractFileNameFromUrl(resources[0]?.url);
|
|
35838
|
+
}
|
|
35839
|
+
else {
|
|
35840
|
+
this.resourceUrl = null;
|
|
35841
|
+
this.resourceAltText = '';
|
|
35842
|
+
this.resourceFileName = '';
|
|
35843
|
+
}
|
|
35844
|
+
this.cd.markForCheck();
|
|
35845
|
+
},
|
|
35846
|
+
error: this.errorHandle,
|
|
35847
|
+
});
|
|
35848
|
+
}
|
|
35849
|
+
handleFileChange(file) {
|
|
35850
|
+
this.recordsApiService
|
|
35851
|
+
.putResource(this.metadataUuid, file, 'public')
|
|
35852
|
+
.subscribe({
|
|
35853
|
+
next: (resource) => {
|
|
35854
|
+
this.resourceUrl = new URL(resource.url);
|
|
35855
|
+
this.resourceAltText = resource.filename;
|
|
35856
|
+
this.overviewChange.emit({
|
|
35857
|
+
url: new URL(resource.url),
|
|
35858
|
+
description: resource.filename,
|
|
35859
|
+
});
|
|
35860
|
+
this.cd.markForCheck();
|
|
35861
|
+
},
|
|
35862
|
+
error: this.errorHandle,
|
|
35863
|
+
});
|
|
35864
|
+
}
|
|
35865
|
+
handleUrlChange(url) {
|
|
35866
|
+
this.recordsApiService
|
|
35867
|
+
.putResourceFromURL(this.metadataUuid, url, 'public')
|
|
35868
|
+
.subscribe({
|
|
35869
|
+
next: (resource) => {
|
|
35870
|
+
this.resourceUrl = new URL(resource.url);
|
|
35871
|
+
this.resourceAltText = resource.filename;
|
|
35872
|
+
this.overviewChange.emit({
|
|
35873
|
+
url: new URL(resource.url),
|
|
35874
|
+
description: resource.filename,
|
|
35875
|
+
});
|
|
35876
|
+
this.cd.markForCheck();
|
|
35877
|
+
},
|
|
35878
|
+
error: this.errorHandle,
|
|
35879
|
+
});
|
|
35880
|
+
}
|
|
35881
|
+
handleAltTextChange(newAltText) {
|
|
35882
|
+
this.resourceAltText = newAltText;
|
|
35883
|
+
this.overviewChange.emit({
|
|
35884
|
+
url: this.resourceUrl,
|
|
35885
|
+
description: this.resourceAltText,
|
|
35886
|
+
});
|
|
35887
|
+
this.cd.markForCheck();
|
|
35888
|
+
}
|
|
35889
|
+
handleDelete() {
|
|
35890
|
+
this.recordsApiService
|
|
35891
|
+
.delResource(this.metadataUuid, this.resourceFileName)
|
|
35892
|
+
.subscribe({
|
|
35893
|
+
next: () => {
|
|
35894
|
+
this.resourceAltText = null;
|
|
35895
|
+
this.resourceUrl = null;
|
|
35896
|
+
this.overviewChange.emit(null);
|
|
35897
|
+
this.cd.markForCheck();
|
|
35898
|
+
},
|
|
35899
|
+
error: this.errorHandle,
|
|
35900
|
+
});
|
|
35901
|
+
}
|
|
35902
|
+
ngOnChanges(changes) {
|
|
35903
|
+
const overviewChanges = changes['formControl'];
|
|
35904
|
+
if (overviewChanges &&
|
|
35905
|
+
overviewChanges.currentValue !== overviewChanges.previousValue) {
|
|
35906
|
+
let overview;
|
|
35907
|
+
if (overviewChanges.currentValue.value &&
|
|
35908
|
+
overviewChanges.currentValue.value.length > 0) {
|
|
35909
|
+
overview = overviewChanges.currentValue.value[0];
|
|
35910
|
+
}
|
|
35911
|
+
else {
|
|
35912
|
+
return;
|
|
35913
|
+
}
|
|
35914
|
+
if (overview.description && overview.description !== '') {
|
|
35915
|
+
this.resourceAltText = overview.description;
|
|
35916
|
+
this.cd.markForCheck();
|
|
35917
|
+
}
|
|
35918
|
+
}
|
|
35919
|
+
}
|
|
35920
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OverviewUploadComponent, deps: [{ token: RecordsApiService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
35921
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: OverviewUploadComponent, isStandalone: true, selector: "gn-ui-overview-upload", inputs: { metadataUuid: "metadataUuid", formControl: "formControl" }, outputs: { overviewChange: "overviewChange", altTextChange: "altTextChange" }, usesOnChanges: true, ngImport: i0, template: "<gn-ui-image-input\n [maxSizeMB]=\"5\"\n [previewUrl]=\"resourceUrl\"\n [altText]=\"resourceAltText\"\n [formControl]=\"formControl\"\n (fileChange)=\"handleFileChange($event)\"\n (urlChange)=\"handleUrlChange($event)\"\n (altTextChange)=\"handleAltTextChange($event)\"\n (delete)=\"handleDelete()\"\n></gn-ui-image-input>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: UiInputsModule }, { kind: "component", type: ImageInputComponent, selector: "gn-ui-image-input", inputs: ["formControl", "maxSizeMB", "previewUrl", "altText", "uploadProgress", "uploadError"], outputs: ["fileChange", "urlChange", "uploadCancel", "delete", "altTextChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
35922
|
+
}
|
|
35923
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OverviewUploadComponent, decorators: [{
|
|
35924
|
+
type: Component,
|
|
35925
|
+
args: [{ selector: 'gn-ui-overview-upload', standalone: true, imports: [CommonModule, UiInputsModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<gn-ui-image-input\n [maxSizeMB]=\"5\"\n [previewUrl]=\"resourceUrl\"\n [altText]=\"resourceAltText\"\n [formControl]=\"formControl\"\n (fileChange)=\"handleFileChange($event)\"\n (urlChange)=\"handleUrlChange($event)\"\n (altTextChange)=\"handleAltTextChange($event)\"\n (delete)=\"handleDelete()\"\n></gn-ui-image-input>\n" }]
|
|
35926
|
+
}], ctorParameters: function () { return [{ type: RecordsApiService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { metadataUuid: [{
|
|
35927
|
+
type: Input
|
|
35928
|
+
}], formControl: [{
|
|
35929
|
+
type: Input
|
|
35930
|
+
}], overviewChange: [{
|
|
35931
|
+
type: Output
|
|
35932
|
+
}], altTextChange: [{
|
|
35933
|
+
type: Output
|
|
35934
|
+
}] } });
|
|
35935
|
+
|
|
35936
|
+
class FormFieldOverviewsComponent {
|
|
35937
|
+
handleOverviewChange(overView) {
|
|
35938
|
+
this.control.setValue(overView ? [overView] : []);
|
|
35939
|
+
}
|
|
35940
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldOverviewsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
35941
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormFieldOverviewsComponent, isStandalone: true, selector: "gn-ui-form-field-overviews", inputs: { metadataUuid: "metadataUuid", control: "control" }, ngImport: i0, template: "<gn-ui-overview-upload\n [metadataUuid]=\"metadataUuid\"\n [formControl]=\"control\"\n (overviewChange)=\"handleOverviewChange($event)\"\n></gn-ui-overview-upload>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: OverviewUploadComponent, selector: "gn-ui-overview-upload", inputs: ["metadataUuid", "formControl"], outputs: ["overviewChange", "altTextChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
35942
|
+
}
|
|
35943
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldOverviewsComponent, decorators: [{
|
|
35944
|
+
type: Component,
|
|
35945
|
+
args: [{ selector: 'gn-ui-form-field-overviews', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, OverviewUploadComponent], template: "<gn-ui-overview-upload\n [metadataUuid]=\"metadataUuid\"\n [formControl]=\"control\"\n (overviewChange)=\"handleOverviewChange($event)\"\n></gn-ui-overview-upload>\n" }]
|
|
35946
|
+
}], propDecorators: { metadataUuid: [{
|
|
35947
|
+
type: Input
|
|
35948
|
+
}], control: [{
|
|
35949
|
+
type: Input
|
|
35950
|
+
}] } });
|
|
35951
|
+
|
|
35260
35952
|
class FormFieldComponent {
|
|
35261
35953
|
set value(v) {
|
|
35262
35954
|
this.formControl.setValue(v, {
|
|
35263
35955
|
emitEvent: false,
|
|
35264
35956
|
});
|
|
35265
35957
|
}
|
|
35266
|
-
constructor() {
|
|
35958
|
+
constructor(facade) {
|
|
35959
|
+
this.facade = facade;
|
|
35960
|
+
this.metadataUuid$ = this.facade.record$.pipe(take(1), map$1((record) => record.uniqueIdentifier));
|
|
35267
35961
|
this.formControl = new FormControl();
|
|
35268
35962
|
this.valueChange = this.formControl.valueChanges;
|
|
35269
35963
|
}
|
|
@@ -35291,6 +35985,9 @@ class FormFieldComponent {
|
|
|
35291
35985
|
get isSpatialExtentField() {
|
|
35292
35986
|
return this.model === 'spatialExtents';
|
|
35293
35987
|
}
|
|
35988
|
+
get isGraphicOverview() {
|
|
35989
|
+
return this.model === 'overviews';
|
|
35990
|
+
}
|
|
35294
35991
|
get isSimpleField() {
|
|
35295
35992
|
return this.model === 'uniqueIdentifier' || this.model === 'recordUpdated';
|
|
35296
35993
|
}
|
|
@@ -35303,8 +36000,8 @@ class FormFieldComponent {
|
|
|
35303
36000
|
get withoutWrapper() {
|
|
35304
36001
|
return this.model === 'title' || this.model === 'abstract';
|
|
35305
36002
|
}
|
|
35306
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
35307
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormFieldComponent, isStandalone: true, selector: "gn-ui-form-field", inputs: { model: "model", config: "config", value: "value" }, outputs: { valueChange: "valueChange" }, viewQueries: [{ propertyName: "titleInput", first: true, predicate: ["titleInput"], descendants: true }], ngImport: i0, template: "<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 <
|
|
36003
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldComponent, deps: [{ token: EditorFacade }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
36004
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormFieldComponent, isStandalone: true, selector: "gn-ui-form-field", inputs: { model: "model", config: "config", value: "value" }, outputs: { valueChange: "valueChange" }, viewQueries: [{ propertyName: "titleInput", first: true, predicate: ["titleInput"], descendants: true }], ngImport: i0, template: "<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 <span\n #titleInput\n class=\"grow font-title text-3xl font-normal\"\n [gnUiEditableLabel]=\"true\"\n (editableLabelChanged)=\"formControl.setValue($event)\"\n >\n {{ formControl.value }}\n </span>\n <span\n class=\"material-symbols-outlined gn-ui-icon-small m-2 cursor-pointer\"\n (click)=\"focusTitleInput()\"\n >edit</span\n >\n <span\n class=\"material-symbols-outlined gn-ui-icon-small m-2\"\n [matTooltip]=\"config.hintKey! | translate\"\n matTooltipPosition=\"above\"\n >\n help\n </span>\n </div>\n </ng-container>\n <ng-container *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=\"isResourceUpdated\">\n <gn-ui-form-field-resource-updated\n [control]=\"formControl\"\n ></gn-ui-form-field-resource-updated>\n </ng-container>\n <ng-container *ngIf=\"isUpdateFrequency\">\n <gn-ui-form-field-update-frequency\n [control]=\"formControl\"\n ></gn-ui-form-field-update-frequency>\n </ng-container>\n <ng-container *ngIf=\"isTemporalExtents\">\n <gn-ui-form-field-temporal-extents\n [control]=\"formControl\"\n ></gn-ui-form-field-temporal-extents>\n </ng-container>\n <ng-container *ngIf=\"isSimpleField\">\n <gn-ui-form-field-simple\n type=\"text\"\n [control]=\"formControl\"\n [readonly]=\"isReadOnly\"\n ></gn-ui-form-field-simple>\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=\"isGraphicOverview\">\n <gn-ui-form-field-overviews\n [control]=\"formControl\"\n [metadataUuid]=\"metadataUuid$ | async\"\n ></gn-ui-form-field-overviews>\n </ng-container>\n <ng-container *ngIf=\"isKeywords\">\n <gn-ui-form-field-keywords\n [control]=\"formControl\"\n ></gn-ui-form-field-keywords>\n </ng-container>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i1$3.AsyncPipe, name: "async" }, { 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: FormFieldLicenseComponent, selector: "gn-ui-form-field-license", inputs: ["control", "label"] }, { kind: "component", type: FormFieldResourceUpdatedComponent, selector: "gn-ui-form-field-resource-updated", inputs: ["control"] }, { kind: "component", type: FormFieldUpdateFrequencyComponent, selector: "gn-ui-form-field-update-frequency", inputs: ["control"] }, { kind: "component", type: FormFieldTemporalExtentsComponent, selector: "gn-ui-form-field-temporal-extents", inputs: ["control"] }, { 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: FormFieldSpatialExtentComponent, selector: "gn-ui-form-field-spatial-extent" }, { kind: "component", type: FormFieldKeywordsComponent, selector: "gn-ui-form-field-keywords", inputs: ["control"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "component", type: FormFieldOverviewsComponent, selector: "gn-ui-form-field-overviews", inputs: ["metadataUuid", "control"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
35308
36005
|
}
|
|
35309
36006
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldComponent, decorators: [{
|
|
35310
36007
|
type: Component,
|
|
@@ -35327,8 +36024,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
35327
36024
|
FormFieldArrayComponent,
|
|
35328
36025
|
FormFieldKeywordsComponent,
|
|
35329
36026
|
TranslateModule,
|
|
35330
|
-
|
|
35331
|
-
|
|
36027
|
+
FormFieldOverviewsComponent,
|
|
36028
|
+
], 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 <span\n #titleInput\n class=\"grow font-title text-3xl font-normal\"\n [gnUiEditableLabel]=\"true\"\n (editableLabelChanged)=\"formControl.setValue($event)\"\n >\n {{ formControl.value }}\n </span>\n <span\n class=\"material-symbols-outlined gn-ui-icon-small m-2 cursor-pointer\"\n (click)=\"focusTitleInput()\"\n >edit</span\n >\n <span\n class=\"material-symbols-outlined gn-ui-icon-small m-2\"\n [matTooltip]=\"config.hintKey! | translate\"\n matTooltipPosition=\"above\"\n >\n help\n </span>\n </div>\n </ng-container>\n <ng-container *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=\"isResourceUpdated\">\n <gn-ui-form-field-resource-updated\n [control]=\"formControl\"\n ></gn-ui-form-field-resource-updated>\n </ng-container>\n <ng-container *ngIf=\"isUpdateFrequency\">\n <gn-ui-form-field-update-frequency\n [control]=\"formControl\"\n ></gn-ui-form-field-update-frequency>\n </ng-container>\n <ng-container *ngIf=\"isTemporalExtents\">\n <gn-ui-form-field-temporal-extents\n [control]=\"formControl\"\n ></gn-ui-form-field-temporal-extents>\n </ng-container>\n <ng-container *ngIf=\"isSimpleField\">\n <gn-ui-form-field-simple\n type=\"text\"\n [control]=\"formControl\"\n [readonly]=\"isReadOnly\"\n ></gn-ui-form-field-simple>\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=\"isGraphicOverview\">\n <gn-ui-form-field-overviews\n [control]=\"formControl\"\n [metadataUuid]=\"metadataUuid$ | async\"\n ></gn-ui-form-field-overviews>\n </ng-container>\n <ng-container *ngIf=\"isKeywords\">\n <gn-ui-form-field-keywords\n [control]=\"formControl\"\n ></gn-ui-form-field-keywords>\n </ng-container>\n</ng-template>\n" }]
|
|
36029
|
+
}], ctorParameters: function () { return [{ type: EditorFacade }]; }, propDecorators: { model: [{
|
|
35332
36030
|
type: Input
|
|
35333
36031
|
}], config: [{
|
|
35334
36032
|
type: Input
|
|
@@ -35344,23 +36042,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
35344
36042
|
class RecordFormComponent {
|
|
35345
36043
|
constructor(facade) {
|
|
35346
36044
|
this.facade = facade;
|
|
35347
|
-
this.fields$ = this.facade.recordFields$;
|
|
35348
36045
|
}
|
|
35349
|
-
handleFieldValueChange(
|
|
35350
|
-
if (!
|
|
36046
|
+
handleFieldValueChange(model, newValue) {
|
|
36047
|
+
if (!model) {
|
|
35351
36048
|
return;
|
|
35352
36049
|
}
|
|
35353
|
-
|
|
36050
|
+
console.log(newValue);
|
|
36051
|
+
this.facade.updateRecordField(model, newValue);
|
|
35354
36052
|
}
|
|
35355
36053
|
fieldTracker(index, field) {
|
|
35356
36054
|
return field.config.model;
|
|
35357
36055
|
}
|
|
36056
|
+
sectionTracker(index, section) {
|
|
36057
|
+
return section.labelKey;
|
|
36058
|
+
}
|
|
35358
36059
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RecordFormComponent, deps: [{ token: EditorFacade }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
35359
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RecordFormComponent, isStandalone: true, selector: "gn-ui-record-form", ngImport: i0, template: "<div class=\"flex flex-col gap-6 p-
|
|
36060
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RecordFormComponent, isStandalone: true, selector: "gn-ui-record-form", ngImport: i0, template: "<ng-container>\n <div class=\"flex flex-col gap-6 p-8\">\n <ng-container\n *ngFor=\"\n let section of facade.currentSections$ | async;\n trackBy: sectionTracker\n \"\n >\n <ng-container *ngIf=\"!section.hidden\">\n <div class=\"flex flex-col gap-8 border p-8 rounded-[8px] shadow\">\n <div\n class=\"flex flex-col gap-2\"\n [ngClass]=\"section.labelKey ? 'mb-4' : 'hidden'\"\n >\n <div\n *ngIf=\"section.labelKey\"\n class=\"text-2xl font-petrona text-secondary\"\n translate\n >\n {{ section.labelKey }}\n </div>\n <div\n *ngIf=\"section.descriptionKey\"\n class=\"text-secondary-lightest\"\n translate\n >\n {{ section.descriptionKey }}\n </div>\n </div>\n <ng-container\n *ngFor=\"\n let field of section.fieldsWithValues;\n trackBy: fieldTracker\n \"\n >\n <ng-container *ngIf=\"!field.config.hidden\">\n <gn-ui-form-field\n [model]=\"field.config.model!\"\n [config]=\"field.config.formFieldConfig\"\n [value]=\"field.value\"\n (valueChange)=\"\n handleFieldValueChange(field.config.model!, $event)\n \"\n ></gn-ui-form-field>\n </ng-container>\n </ng-container>\n </div>\n </ng-container>\n </ng-container>\n </div>\n</ng-container>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$3.AsyncPipe, name: "async" }, { kind: "component", type: FormFieldComponent, selector: "gn-ui-form-field", inputs: ["model", "config", "value"], outputs: ["valueChange"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
35360
36061
|
}
|
|
35361
36062
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RecordFormComponent, decorators: [{
|
|
35362
36063
|
type: Component,
|
|
35363
|
-
args: [{ selector: 'gn-ui-record-form', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, FormFieldComponent], template: "<div class=\"flex flex-col gap-6 p-
|
|
36064
|
+
args: [{ selector: 'gn-ui-record-form', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, FormFieldComponent, TranslateModule], template: "<ng-container>\n <div class=\"flex flex-col gap-6 p-8\">\n <ng-container\n *ngFor=\"\n let section of facade.currentSections$ | async;\n trackBy: sectionTracker\n \"\n >\n <ng-container *ngIf=\"!section.hidden\">\n <div class=\"flex flex-col gap-8 border p-8 rounded-[8px] shadow\">\n <div\n class=\"flex flex-col gap-2\"\n [ngClass]=\"section.labelKey ? 'mb-4' : 'hidden'\"\n >\n <div\n *ngIf=\"section.labelKey\"\n class=\"text-2xl font-petrona text-secondary\"\n translate\n >\n {{ section.labelKey }}\n </div>\n <div\n *ngIf=\"section.descriptionKey\"\n class=\"text-secondary-lightest\"\n translate\n >\n {{ section.descriptionKey }}\n </div>\n </div>\n <ng-container\n *ngFor=\"\n let field of section.fieldsWithValues;\n trackBy: fieldTracker\n \"\n >\n <ng-container *ngIf=\"!field.config.hidden\">\n <gn-ui-form-field\n [model]=\"field.config.model!\"\n [config]=\"field.config.formFieldConfig\"\n [value]=\"field.value\"\n (valueChange)=\"\n handleFieldValueChange(field.config.model!, $event)\n \"\n ></gn-ui-form-field>\n </ng-container>\n </ng-container>\n </div>\n </ng-container>\n </ng-container>\n </div>\n</ng-container>\n" }]
|
|
35364
36065
|
}], ctorParameters: function () { return [{ type: EditorFacade }]; } });
|
|
35365
36066
|
|
|
35366
36067
|
const ROUTER_STATE_KEY = 'router';
|
|
@@ -35700,7 +36401,7 @@ class DefaultRouterModule {
|
|
|
35700
36401
|
};
|
|
35701
36402
|
}
|
|
35702
36403
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DefaultRouterModule, deps: [{ token: RouterService }], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
35703
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: DefaultRouterModule, declarations: [SearchRouterContainerDirective], imports: [i1$2.StoreFeatureModule, i3$
|
|
36404
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: DefaultRouterModule, declarations: [SearchRouterContainerDirective], imports: [i1$2.StoreFeatureModule, i3$4.StoreRouterConnectingModule, i1$8.EffectsFeatureModule], exports: [SearchRouterContainerDirective] }); }
|
|
35704
36405
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DefaultRouterModule, providers: [
|
|
35705
36406
|
RouterFacade,
|
|
35706
36407
|
{
|
|
@@ -35743,5 +36444,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
35743
36444
|
* Generated bundle index. Do not edit.
|
|
35744
36445
|
*/
|
|
35745
36446
|
|
|
35746
|
-
export { ADD_RESULTS, ADD_SEARCH, AbstractAction, AbstractSearchField, AddLayerFromCatalogComponent, AddLayerRecordPreviewComponent, AddResults, AddSearch, AnchorLinkDirective, ApiCardComponent, AuthService, AutocompleteComponent, AvatarComponent, AvatarServiceInterface, BLOCK_MODEL_FIXTURE, BadgeComponent, BaseReader, BlockListComponent, ButtonComponent, CLEAR_ERROR, CLEAR_RESULTS, CONFIG_MALFORMED, CONFIG_MINIMAL, CONFIG_MISSING_MANDATORY, CONFIG_OK, CONFIG_UNRECOGNIZED_KEYS, CONFIG_WITH_TRANSLATIONS, CONFIG_WRONG_LANGUAGE_CODE, CarouselComponent, CatalogTitleComponent, ChartComponent, ChartViewComponent, CheckToggleComponent, CheckboxComponent, ChipsInputComponent, ClearError, ClearResults, ColorScaleComponent, ContentGhostComponent, CopyTextButtonComponent, DEFAULT_BASELAYER_CONTEXT, DEFAULT_GN4_LOGIN_URL, DEFAULT_LANG, DEFAULT_PAGE_SIZE, DEFAULT_RESULTS_LAYOUT_CONFIG, DEFAULT_SEARCH_KEY, DEFAULT_STYLE_FIXTURE, DEFAULT_STYLE_HL_FIXTURE, DEFAULT_VIEW, DataService, DataViewComponent, DataViewPermalinkComponent, DataViewShareComponent, DataViewWebComponentComponent, DatePickerComponent, DateRangePickerComponent, DefaultRouterModule, DownloadItemComponent, DownloadsListComponent, DragAndDropFileInputComponent, DropdownMultiselectComponent, DropdownSelectorComponent, EDITOR_FEATURE_KEY, EMPTY_BLOCK_MODEL_FIXTURE, ES_QUERY_FIELDS_PRIORITY, ES_RESOURCES_VALUES, ES_SOURCE_SUMMARY, EditableLabelDirective, EditorFacade, EditorService, ElasticsearchService, EmbeddedTranslateLoader, ErrorComponent, ErrorType, ExpandablePanelButtonComponent, ExpandablePanelComponent, ExternalViewerButtonComponent, FACET_ITEM_FIXTURE, FEATURE_MAP_OPTIONS, FIELDS_BRIEF, FIELDS_SUMMARY, FILTER_GEOMETRY, FORMATS, FacetBlockComponent, FacetBlockStubComponent, FacetItemComponent, FacetItemStubComponent, FacetListComponent, FacetsContainerComponent, FacetsModule, FavoriteStarComponent, FavoritesService, FeatureAuthModule, FeatureCatalogModule, FeatureDatavizModule, FeatureDetailComponent, FeatureEditorModule, FeatureInfoService, FeatureMapModule, FeatureNotificationsModule, FeatureRecordModule, FeatureSearchModule, FetchError, FieldsService, FigureComponent, FigureContainerComponent, FileTranslateLoader, FilterDropdownComponent, FormFieldWrapperComponent, FullTextSearchField, FuzzySearchComponent, GN_UI_VERSION, GeoTableViewComponent, GeocodingComponent, Gn4Converter, Gn4PlatformMapper, Gn4PlatformService, Gn4Repository, Gn4SettingsService, GravatarService, HttpLoaderFactory, I18nInterceptor, ImageFallbackDirective, ImageOverlayPreviewComponent, InteractiveTableColumnComponent, InteractiveTableComponent, IsSpatialSearchField, Iso191153Converter, Iso19139Converter, LANGUAGES_LIST, LANGUAGE_NAMES, LANGUAGE_STORAGE_KEY, LANG_2_TO_3_MAPPER, LANG_3_TO_2_MAPPER, LOGIN_URL, LONLAT_CRS_CODES, LangService, LanguageSwitcherComponent, LayersPanelComponent, LicenseSearchField, LinkCardComponent, LinkClassifierService, LinkUsage, LoadingMaskComponent, LogService, MAP_CONFIG_FIXTURE, MAP_FEATURE_KEY, METADATA_LANGUAGE, MY_FORMATS, MapComponent, MapContainerComponent, MapContextComponent, MapContextLayerTypeEnum, MapContextService, MapFacade, MapInstanceDirective, MapManagerService, MapStyleService, MapUtilsService, MapViewComponent, MarkdownEditorComponent, MarkdownParserComponent, MaxLinesComponent, mdview_actions as MdViewActions, MdViewFacade, MetadataCatalogComponent, MetadataContactComponent, MetadataInfoComponent, MetadataLinkType, MetadataQualityComponent, MetadataQualityItemComponent, MultilingualSearchField, MyOrgService, NavigationButtonComponent, NotificationComponent, NotificationsContainerComponent, NotificationsService, ORGANIZATIONS_STRATEGY, ORGANIZATION_PAGE_URL_TOKEN, ORGANIZATION_URL_TOKEN, OrganisationPreviewComponent, OrganisationsComponent, OrganisationsFilterComponent, OrganisationsResultComponent, OrganizationSearchField, OrganizationsFromGroupsService, OrganizationsFromMetadataService, OwnerSearchField, PAGINATE, PARSE_DELIMITER, PATCH_RESULTS_AGGREGATIONS, PROXY_PATH, Paginate, PaginationButtonsComponent, PaginationComponent, PatchResultsAggregations, PopupAlertComponent, PreviousNextButtonsComponent, ProgressBarComponent, ProxyService, QUERY_FIELDS, RECORD_URL_TOKEN, REQUEST_MORE_ON_AGGREGATION, REQUEST_MORE_RESULTS, REQUEST_NEW_RESULTS, RESULTS_LAYOUT_CONFIG, ROUTER_CONFIG, ROUTER_ROUTE_DATASET, ROUTER_ROUTE_ORGANIZATION, ROUTER_ROUTE_SEARCH, ROUTER_STATE_KEY, ROUTE_PARAMS, RecordApiFormComponent, RecordFormComponent, RecordMetricComponent, RecordPreviewCardComponent, RecordPreviewComponent, RecordPreviewFeedComponent, RecordPreviewListComponent, RecordPreviewRowComponent, RecordPreviewTextComponent, RecordPreviewTitleComponent, RecordsMetricsComponent, RecordsService, RelatedRecordCardComponent, RequestMoreOnAggregation, RequestMoreResults, RequestNewResults, ResultsHitsContainerComponent, ResultsHitsNumberComponent, ResultsLayoutComponent, ResultsLayoutConfigItem, ResultsListComponent, ResultsListContainerComponent, ResultsListItemComponent, ResultsTableComponent, ResultsTableContainerComponent, RouterEffects, RouterFacade, RouterService, SEARCH_FEATURE_KEY, SET_CONFIG_AGGREGATIONS, SET_CONFIG_FILTERS, SET_CONFIG_REQUEST_FIELDS, SET_ERROR, SET_FAVORITES_ONLY, SET_FILTERS, SET_INCLUDE_ON_AGGREGATION, SET_PAGE_SIZE, SET_RESULTS_AGGREGATIONS, SET_RESULTS_HITS, SET_RESULTS_LAYOUT, SET_SEARCH, SET_SORT_BY, SET_SPATIAL_FILTER_ENABLED, SearchEffects, SearchFacade, SearchInputComponent, SearchRouterContainerDirective, SearchService, SearchStateContainerDirective, SelectionService, SetConfigAggregations, SetConfigFilters, SetConfigRequestFields, SetError, SetFavoritesOnly, SetFilters, SetIncludeOnAggregation, SetPageSize, SetResultsAggregations, SetResultsHits, SetResultsLayout, SetSearch, SetSortBy, SetSpatialFilterEnabled, SimpleSearchField, SiteTitleComponent, SortByComponent, SortableListComponent, SourceLabelComponent, SourcesService, SpinningLoaderComponent, StarToggleComponent, StepBarComponent, StickyHeaderComponent, SupportedTypes, TABLE_ITEM_FIXTURE, TABLE_ITEM_FIXTURE_HAB, THUMBNAIL_PLACEHOLDER, TRANSLATE_DEFAULT_CONFIG, TRANSLATE_WITH_OVERRIDES_CONFIG, TableComponent, TableViewComponent, TextAreaComponent, TextInputComponent, ThemeService, ThumbnailComponent, TranslatedSearchField, UPDATE_CONFIG_AGGREGATIONS, UPDATE_FILTERS, UPDATE_REQUEST_AGGREGATION_TERM, UiCatalogModule, UiDatavizModule, UiElementsModule, FacetsModule$1 as UiFacetsModule, UiInputsModule, UiLayoutModule, UiMapModule, UiSearchModule, UiWidgetsModule, UpdateConfigAggregations, UpdateFilters, UserPreviewComponent, UtilI18nModule, UtilSharedModule, ViewportIntersectorComponent, WEB_COMPONENT_EMBEDDER_URL, WFS_MAX_FEATURES, WizardComponent, WizardFieldComponent, WizardFieldType, WizardService, WizardSummarizeComponent, _reset, addLayer, changeLayerOrder, checkFileFormat, clearLayerError, createFuzzyFilter, currentPage, defaultMapOptions, downgradeImage, downsizeImage, draftSaveSuccess, dragPanCondition, dropEmptyTranslations, editorReducer, findConverterForDocument, getArrayItem, getAsArray, getAsUrl, getBadgeColor, getCustomTranslations, getError, getFavoritesOnly, getFileFormat, getFileFormatFromServiceOutput, getFirstValue, getFormatPriority, getGeometryFromGeoJSON, getGlobalConfig, getJsonDataItemsProxy, getLangFromBrowser, getLinkLabel, getLinkPriority, getMapLayers, getMapState, getMetadataQualityConfig, getMimeTypeForFormat, getOptionalMapConfig, getOptionalSearchConfig, getPageSize, getSearchConfigAggregations, getSearchFilters, getSearchResults, getSearchResultsAggregations, getSearchResultsHits, getSearchResultsLayout, getSearchResultsLoading, getSearchSortBy, getSearchState, getSearchStateSearch, getSpatialFilterEnabled, getTemporalRangeUnion, getThemeConfig, initSearch, initialEditorState, initialMapState, initialState, isBeginningOfResults, isConfigLoaded, isEndOfResults, isFormatInQueryParam, loadAppConfig, mapContact, mapKeywords, mapLogo, mapOrganization, mapReducer, markRecordAsChanged, megabytesToBytes, mimeTypeToFormat, mouseWheelZoomCondition, openDataset, openRecord, parse, placeholder, propagateToDocumentOnly, provideGn4, provideRepositoryUrl, readDataset, readDatasetHeaders, reducer$2 as reducer, reducerSearch, removeLayer, removeSearchParams, removeWhitespace, saveRecord, saveRecordFailure, saveRecordSuccess, selectEditorState, selectFallback, selectFallbackFields, selectField, selectRecord, selectRecordAlreadySavedOnce, selectRecordChangedSinceSave,
|
|
36447
|
+
export { ADD_RESULTS, ADD_SEARCH, AbstractAction, AbstractSearchField, AddLayerFromCatalogComponent, AddLayerRecordPreviewComponent, AddResults, AddSearch, AnchorLinkDirective, ApiCardComponent, AuthService, AutocompleteComponent, AvatarComponent, AvatarServiceInterface, BLOCK_MODEL_FIXTURE, BadgeComponent, BaseConverter, BaseReader, BlockListComponent, ButtonComponent, CLEAR_ERROR, CLEAR_RESULTS, CONFIG_MALFORMED, CONFIG_MINIMAL, CONFIG_MISSING_MANDATORY, CONFIG_OK, CONFIG_UNRECOGNIZED_KEYS, CONFIG_WITH_TRANSLATIONS, CONFIG_WRONG_LANGUAGE_CODE, CarouselComponent, CatalogTitleComponent, ChartComponent, ChartViewComponent, CheckToggleComponent, CheckboxComponent, ChipsInputComponent, ClearError, ClearResults, ColorScaleComponent, ContentGhostComponent, CopyTextButtonComponent, DEFAULT_BASELAYER_CONTEXT, DEFAULT_GN4_LOGIN_URL, DEFAULT_LANG, DEFAULT_PAGE_SIZE, DEFAULT_RESULTS_LAYOUT_CONFIG, DEFAULT_SEARCH_KEY, DEFAULT_STYLE_FIXTURE, DEFAULT_STYLE_HL_FIXTURE, DEFAULT_VIEW, DataService, DataViewComponent, DataViewPermalinkComponent, DataViewShareComponent, DataViewWebComponentComponent, DatePickerComponent, DateRangePickerComponent, DefaultRouterModule, DownloadItemComponent, DownloadsListComponent, DragAndDropFileInputComponent, DropdownMultiselectComponent, DropdownSelectorComponent, EDITOR_FEATURE_KEY, EMPTY_BLOCK_MODEL_FIXTURE, ES_QUERY_FIELDS_PRIORITY, ES_RESOURCES_VALUES, ES_SOURCE_SUMMARY, EditableLabelDirective, EditorFacade, EditorService, ElasticsearchService, EmbeddedTranslateLoader, ErrorComponent, ErrorType, ExpandablePanelButtonComponent, ExpandablePanelComponent, ExternalViewerButtonComponent, FACET_ITEM_FIXTURE, FEATURE_MAP_OPTIONS, FIELDS_BRIEF, FIELDS_SUMMARY, FILTER_GEOMETRY, FORMATS, FacetBlockComponent, FacetBlockStubComponent, FacetItemComponent, FacetItemStubComponent, FacetListComponent, FacetsContainerComponent, FacetsModule, FavoriteStarComponent, FavoritesService, FeatureAuthModule, FeatureCatalogModule, FeatureDatavizModule, FeatureDetailComponent, FeatureEditorModule, FeatureInfoService, FeatureMapModule, FeatureNotificationsModule, FeatureRecordModule, FeatureSearchModule, FetchError, FieldsService, FigureComponent, FigureContainerComponent, FileTranslateLoader, FilterDropdownComponent, FormFieldWrapperComponent, FullTextSearchField, FuzzySearchComponent, GN_UI_VERSION, GeoTableViewComponent, GeocodingComponent, Gn4Converter, Gn4PlatformMapper, Gn4PlatformService, Gn4Repository, Gn4SettingsService, GravatarService, HttpLoaderFactory, I18nInterceptor, ImageFallbackDirective, ImageOverlayPreviewComponent, InteractiveTableColumnComponent, InteractiveTableComponent, IsSpatialSearchField, Iso191153Converter, Iso19139Converter, LANGUAGES_LIST, LANGUAGE_NAMES, LANGUAGE_STORAGE_KEY, LANG_2_TO_3_MAPPER, LANG_3_TO_2_MAPPER, LOGIN_URL, LONLAT_CRS_CODES, LangService, LanguageSwitcherComponent, LayersPanelComponent, LicenseSearchField, LinkCardComponent, LinkClassifierService, LinkUsage, LoadingMaskComponent, LogService, MAP_CONFIG_FIXTURE, MAP_FEATURE_KEY, METADATA_LANGUAGE, MY_FORMATS, MapComponent, MapContainerComponent, MapContextComponent, MapContextLayerTypeEnum, MapContextService, MapFacade, MapInstanceDirective, MapManagerService, MapStyleService, MapUtilsService, MapViewComponent, MarkdownEditorComponent, MarkdownParserComponent, MaxLinesComponent, mdview_actions as MdViewActions, MdViewFacade, MetadataCatalogComponent, MetadataContactComponent, MetadataInfoComponent, MetadataLinkType, MetadataMapperContext, MetadataQualityComponent, MetadataQualityItemComponent, MultilingualSearchField, MyOrgService, NavigationButtonComponent, NotificationComponent, NotificationsContainerComponent, NotificationsService, ORGANIZATIONS_STRATEGY, ORGANIZATION_PAGE_URL_TOKEN, ORGANIZATION_URL_TOKEN, OrganisationPreviewComponent, OrganisationsComponent, OrganisationsFilterComponent, OrganisationsResultComponent, OrganizationSearchField, OrganizationsFromGroupsService, OrganizationsFromMetadataService, OwnerSearchField, PAGINATE, PARSE_DELIMITER, PATCH_RESULTS_AGGREGATIONS, PROXY_PATH, Paginate, PaginationButtonsComponent, PaginationComponent, PatchResultsAggregations, PopoverComponent, PopupAlertComponent, PreviousNextButtonsComponent, ProgressBarComponent, ProxyService, QUERY_FIELDS, RECORD_URL_TOKEN, REQUEST_MORE_ON_AGGREGATION, REQUEST_MORE_RESULTS, REQUEST_NEW_RESULTS, RESULTS_LAYOUT_CONFIG, ROUTER_CONFIG, ROUTER_ROUTE_DATASET, ROUTER_ROUTE_ORGANIZATION, ROUTER_ROUTE_SEARCH, ROUTER_STATE_KEY, ROUTE_PARAMS, RecordApiFormComponent, RecordFormComponent, RecordMetricComponent, RecordPreviewCardComponent, RecordPreviewComponent, RecordPreviewFeedComponent, RecordPreviewListComponent, RecordPreviewRowComponent, RecordPreviewTextComponent, RecordPreviewTitleComponent, RecordsMetricsComponent, RecordsService, RelatedRecordCardComponent, RequestMoreOnAggregation, RequestMoreResults, RequestNewResults, ResultsHitsContainerComponent, ResultsHitsNumberComponent, ResultsLayoutComponent, ResultsLayoutConfigItem, ResultsListComponent, ResultsListContainerComponent, ResultsListItemComponent, ResultsTableComponent, ResultsTableContainerComponent, RouterEffects, RouterFacade, RouterService, SEARCH_FEATURE_KEY, SET_CONFIG_AGGREGATIONS, SET_CONFIG_FILTERS, SET_CONFIG_REQUEST_FIELDS, SET_ERROR, SET_FAVORITES_ONLY, SET_FILTERS, SET_INCLUDE_ON_AGGREGATION, SET_PAGE_SIZE, SET_RESULTS_AGGREGATIONS, SET_RESULTS_HITS, SET_RESULTS_LAYOUT, SET_SEARCH, SET_SORT_BY, SET_SPATIAL_FILTER_ENABLED, SearchEffects, SearchFacade, SearchInputComponent, SearchRouterContainerDirective, SearchService, SearchStateContainerDirective, SelectionService, SetConfigAggregations, SetConfigFilters, SetConfigRequestFields, SetError, SetFavoritesOnly, SetFilters, SetIncludeOnAggregation, SetPageSize, SetResultsAggregations, SetResultsHits, SetResultsLayout, SetSearch, SetSortBy, SetSpatialFilterEnabled, SimpleSearchField, SiteTitleComponent, SortByComponent, SortableListComponent, SourceLabelComponent, SourcesService, SpinningLoaderComponent, StarToggleComponent, StepBarComponent, StickyHeaderComponent, SupportedTypes, TABLE_ITEM_FIXTURE, TABLE_ITEM_FIXTURE_HAB, THUMBNAIL_PLACEHOLDER, TRANSLATE_DEFAULT_CONFIG, TRANSLATE_WITH_OVERRIDES_CONFIG, TableComponent, TableViewComponent, TextAreaComponent, TextInputComponent, ThemeService, ThumbnailComponent, TranslatedSearchField, UPDATE_CONFIG_AGGREGATIONS, UPDATE_FILTERS, UPDATE_REQUEST_AGGREGATION_TERM, UiCatalogModule, UiDatavizModule, UiElementsModule, FacetsModule$1 as UiFacetsModule, UiInputsModule, UiLayoutModule, UiMapModule, UiSearchModule, UiWidgetsModule, UpdateConfigAggregations, UpdateFilters, UserPreviewComponent, UtilI18nModule, UtilSharedModule, ViewportIntersectorComponent, WEB_COMPONENT_EMBEDDER_URL, WFS_MAX_FEATURES, WizardComponent, WizardFieldComponent, WizardFieldType, WizardService, WizardSummarizeComponent, _reset, addLayer, changeLayerOrder, checkFileFormat, clearLayerError, createFuzzyFilter, currentPage, defaultMapOptions, downgradeImage, downsizeImage, draftSaveSuccess, dragPanCondition, dropEmptyTranslations, editorReducer, findConverterForDocument, getArrayItem, getAsArray, getAsUrl, getBadgeColor, getCustomTranslations, getError, getFavoritesOnly, getFileFormat, getFileFormatFromServiceOutput, getFirstValue, getFormatPriority, getGeometryFromGeoJSON, getGlobalConfig, getJsonDataItemsProxy, getLangFromBrowser, getLinkLabel, getLinkPriority, getMapLayers, getMapState, getMetadataQualityConfig, getMimeTypeForFormat, getOptionalMapConfig, getOptionalSearchConfig, getPageSize, getSearchConfigAggregations, getSearchFilters, getSearchResults, getSearchResultsAggregations, getSearchResultsHits, getSearchResultsLayout, getSearchResultsLoading, getSearchSortBy, getSearchState, getSearchStateSearch, getSpatialFilterEnabled, getTemporalRangeUnion, getThemeConfig, initSearch, initialEditorState, initialMapState, initialState, isBeginningOfResults, isConfigLoaded, isEndOfResults, isFormatInQueryParam, loadAppConfig, mapContact, mapKeywords, mapLogo, mapOrganization, mapReducer, markRecordAsChanged, megabytesToBytes, mimeTypeToFormat, mouseWheelZoomCondition, openDataset, openRecord, parse, placeholder, propagateToDocumentOnly, provideGn4, provideRepositoryUrl, readDataset, readDatasetHeaders, reducer$2 as reducer, reducerSearch, removeLayer, removeSearchParams, removeWhitespace, saveRecord, saveRecordFailure, saveRecordSuccess, selectCurrentPage, selectEditorConfig, selectEditorState, selectFallback, selectFallbackFields, selectField, selectRecord, selectRecordAlreadySavedOnce, selectRecordChangedSinceSave, selectRecordSaveError, selectRecordSaving, selectRecordSections, selectRecordSource, selectTranslatedField, selectTranslatedValue, setCurrentPage, setLayerError, sortByFromString, sortByToString, sortByToStrings, stripHtml, toDate, totalPages, updateLayer, updateRecordField };
|
|
35747
36448
|
//# sourceMappingURL=geonetwork-ui.mjs.map
|