geonetwork-ui 2.4.1-dev.7a0dc5e3f → 2.4.1-dev.9ee0df3df
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/utils/update-frequency.mapper.mjs +6 -62
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/write-parts.mjs +19 -1
- package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +27 -1
- package/esm2022/libs/feature/editor/src/lib/components/constraint-card/constraint-card.component.mjs +3 -3
- package/esm2022/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.mjs +3 -3
- package/esm2022/libs/feature/editor/src/lib/components/import-record/import-record.component.mjs +2 -2
- package/esm2022/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.mjs +45 -9
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.mjs +3 -3
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.mjs +12 -3
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.mjs +2 -2
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.mjs +3 -3
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.mjs +36 -60
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.mjs +3 -3
- package/esm2022/libs/feature/editor/src/lib/components/record-form/record-form.component.mjs +3 -3
- package/esm2022/libs/feature/editor/src/lib/fields.config.mjs +11 -15
- package/esm2022/libs/ui/elements/src/index.mjs +3 -2
- package/esm2022/libs/ui/elements/src/lib/image-input/image-input.component.mjs +213 -0
- package/esm2022/libs/ui/elements/src/lib/ui-elements.module.mjs +19 -13
- package/esm2022/libs/ui/inputs/src/index.mjs +5 -6
- package/esm2022/libs/ui/inputs/src/lib/button/button.component.mjs +2 -1
- package/esm2022/libs/ui/inputs/src/lib/file-input/file-input.component.mjs +2 -2
- package/esm2022/libs/ui/inputs/src/lib/ui-inputs.module.mjs +19 -25
- package/esm2022/libs/ui/inputs/src/lib/url-input/url-input.component.mjs +6 -6
- package/esm2022/translations/de.json +23 -11
- package/esm2022/translations/en.json +19 -7
- package/esm2022/translations/es.json +23 -11
- package/esm2022/translations/fr.json +23 -11
- package/esm2022/translations/it.json +23 -11
- package/esm2022/translations/nl.json +23 -11
- package/esm2022/translations/pt.json +23 -11
- package/fesm2022/geonetwork-ui.mjs +922 -835
- package/fesm2022/geonetwork-ui.mjs.map +1 -1
- package/libs/api/metadata-converter/src/lib/iso19139/utils/update-frequency.mapper.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/iso19139/write-parts.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/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.d.ts +11 -2
- package/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.d.ts +4 -0
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.d.ts +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/fields.config.d.ts.map +1 -1
- package/libs/ui/elements/src/index.d.ts +2 -1
- package/libs/ui/elements/src/index.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/image-input/image-input.component.d.ts.map +1 -0
- package/libs/ui/elements/src/lib/ui-elements.module.d.ts +2 -1
- package/libs/ui/elements/src/lib/ui-elements.module.d.ts.map +1 -1
- package/libs/ui/inputs/src/index.d.ts +4 -5
- package/libs/ui/inputs/src/index.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/button/button.component.d.ts +1 -1
- package/libs/ui/inputs/src/lib/button/button.component.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts +6 -7
- package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/url-input/url-input.component.d.ts +2 -2
- package/libs/ui/inputs/src/lib/url-input/url-input.component.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/libs/api/metadata-converter/src/lib/iso19139/utils/update-frequency.mapper.ts +9 -62
- package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +18 -0
- package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +29 -7
- package/src/libs/feature/editor/src/lib/components/constraint-card/constraint-card.component.html +1 -1
- package/src/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.html +1 -1
- package/src/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.html +31 -6
- package/src/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.ts +47 -2
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.html +1 -1
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.html +3 -7
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.ts +10 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.ts +1 -1
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.html +6 -6
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.ts +46 -74
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.html +1 -1
- package/src/libs/feature/editor/src/lib/components/record-form/record-form.component.html +3 -6
- package/src/libs/feature/editor/src/lib/fields.config.ts +10 -14
- package/src/libs/ui/elements/src/index.ts +2 -1
- package/src/libs/ui/{inputs → elements}/src/lib/image-input/image-input.component.html +4 -19
- package/src/libs/ui/{inputs → elements}/src/lib/image-input/image-input.component.ts +13 -9
- package/src/libs/ui/elements/src/lib/ui-elements.module.ts +13 -10
- package/src/libs/ui/inputs/src/index.ts +4 -5
- package/src/libs/ui/inputs/src/lib/button/button.component.ts +2 -1
- package/src/libs/ui/inputs/src/lib/ui-inputs.module.ts +22 -25
- package/src/libs/ui/inputs/src/lib/url-input/url-input.component.html +5 -3
- package/src/libs/ui/inputs/src/lib/url-input/url-input.component.ts +1 -1
- package/translations/de.json +23 -11
- package/translations/en.json +19 -7
- package/translations/es.json +23 -11
- package/translations/fr.json +23 -11
- package/translations/it.json +23 -11
- package/translations/nl.json +23 -11
- package/translations/pt.json +23 -11
- package/translations/sk.json +23 -11
- package/esm2022/libs/ui/inputs/src/lib/image-input/image-input.component.mjs +0 -214
- package/libs/ui/inputs/src/lib/image-input/image-input.component.d.ts.map +0 -1
- package/src/libs/api/metadata-converter/src/lib/dcat-ap/utils/update-frequency.mapper.ts +0 -67
- /package/libs/ui/{inputs → elements}/src/lib/image-input/image-input.component.d.ts +0 -0
- /package/src/libs/ui/{inputs → elements}/src/lib/image-input/image-input.component.css +0 -0
|
@@ -3,6 +3,7 @@ export { XmlDocument, XmlElement } from '@rgrove/parse-xml';
|
|
|
3
3
|
import GML32 from 'ol/format/GML32';
|
|
4
4
|
import GeoJSON from 'ol/format/GeoJSON';
|
|
5
5
|
import { parse as parse$1 } from 'ol/xml';
|
|
6
|
+
import { marker } from '@biesbjerg/ngx-translate-extract-marker';
|
|
6
7
|
import { format } from 'date-fns/format';
|
|
7
8
|
import { Namespace, Literal, lit, parse as parse$2, sym, BlankNode, graph } from 'rdflib';
|
|
8
9
|
import * as i0 from '@angular/core';
|
|
@@ -14,7 +15,6 @@ import { TranslateCompiler, TranslateLoader, TranslateModule, TranslateService }
|
|
|
14
15
|
import { TranslateMessageFormatCompiler } from 'ngx-translate-messageformat-compiler';
|
|
15
16
|
import { TranslateHttpLoader } from '@ngx-translate/http-loader';
|
|
16
17
|
import { map as map$1, catchError, tap as tap$1, shareReplay, filter, startWith, withLatestFrom, switchMap as switchMap$1, take, mergeMap, throttleTime, distinctUntilChanged, debounceTime, finalize, first as first$1, share, pairwise, delay, defaultIfEmpty, toArray } from 'rxjs/operators';
|
|
17
|
-
import { marker } from '@biesbjerg/ngx-translate-extract-marker';
|
|
18
18
|
import * as i1$2 from '@angular/common';
|
|
19
19
|
import { CommonModule, NgOptimizedImage, DatePipe, NgIf, NgForOf } from '@angular/common';
|
|
20
20
|
import { of, map as map$2, lastValueFrom, Subject, switchMap, combineLatest, exhaustMap, throwError, from, forkJoin, takeLast, firstValueFrom, merge, BehaviorSubject, fromEvent, animationFrameScheduler, ReplaySubject, Subscription, first, distinctUntilChanged as distinctUntilChanged$1, filter as filter$1, tap as tap$2, Observable, buffer, debounceTime as debounceTime$1, combineLatestWith, catchError as catchError$1, timer, takeUntil, EMPTY, mergeMap as mergeMap$1, startWith as startWith$1, withLatestFrom as withLatestFrom$1, shareReplay as shareReplay$1, pairwise as pairwise$1 } from 'rxjs';
|
|
@@ -25,7 +25,7 @@ import { createAction, props, createReducer, on, createFeatureSelector, createSe
|
|
|
25
25
|
import EmblaCarousel from 'embla-carousel';
|
|
26
26
|
import * as i2$2 from '@ng-icons/core';
|
|
27
27
|
import { provideIcons, NgIcon, NgIconComponent, provideNgIconsConfig, NgIconsModule } from '@ng-icons/core';
|
|
28
|
-
import { iconoirNavArrowRight, iconoirNavArrowLeft, iconoirNavArrowDown, iconoirNavArrowUp, iconoirSearch, iconoirCalendar, iconoirLink, iconoirArrowUp,
|
|
28
|
+
import { iconoirNavArrowRight, iconoirNavArrowLeft, iconoirNavArrowDown, iconoirNavArrowUp, iconoirSearch, iconoirCalendar, iconoirLink, iconoirArrowUp, iconoirCloudUpload, iconoirFramePlusIn, iconoirMediaImage, iconoirMediaImageXmark, iconoirBin, iconoirPlus, iconoirUser, iconoirImport, iconoirLightBulbOn, iconoirArrowLeft, iconoirAttachment } from '@ng-icons/iconoir';
|
|
29
29
|
import { matExpandMore, matExpandLess, matAdd, matRemove, matClose, matContentCopy, matSearch, matStar, matStarBorder, matChevronLeft, matChevronRight, matArrowForward, matArrowBack, matCheck, matWarningAmber, matMoreHoriz, matFace, matQuestionMark, matMoodBad, matZoomOutMap, matOpenInNew, matMailOutline, matPersonOutline, matCheckCircleOutline, matMoreVert, matCorporateFare } from '@ng-icons/material-icons/baseline';
|
|
30
30
|
import * as i1$4 from '@angular/material/tooltip';
|
|
31
31
|
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
@@ -50,10 +50,10 @@ import * as i1$8 from '@angular/material/datepicker';
|
|
|
50
50
|
import { MatDatepickerModule } from '@angular/material/datepicker';
|
|
51
51
|
import * as i1$9 from '@angular/cdk/overlay';
|
|
52
52
|
import { CdkConnectedOverlay, OverlayModule, CdkOverlayOrigin } from '@angular/cdk/overlay';
|
|
53
|
-
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
54
|
-
import { MatInputModule } from '@angular/material/input';
|
|
55
53
|
import * as i1$a from '@angular/material/button-toggle';
|
|
56
54
|
import { MatButtonToggleModule } from '@angular/material/button-toggle';
|
|
55
|
+
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
56
|
+
import { MatInputModule } from '@angular/material/input';
|
|
57
57
|
import * as i1$b from '@angular/material/dialog';
|
|
58
58
|
import { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';
|
|
59
59
|
import * as i2$3 from '@angular/material/tabs';
|
|
@@ -101,12 +101,12 @@ import axios from 'axios';
|
|
|
101
101
|
import * as i1$e from '@angular/platform-browser';
|
|
102
102
|
import { MomentDateAdapter, MAT_MOMENT_DATE_ADAPTER_OPTIONS } from '@angular/material-moment-adapter';
|
|
103
103
|
import { Polygon } from 'ol/geom';
|
|
104
|
-
import * as
|
|
104
|
+
import * as i4$1 from '@angular/material/radio';
|
|
105
105
|
import { MatRadioModule } from '@angular/material/radio';
|
|
106
106
|
import { MatIconModule } from '@angular/material/icon';
|
|
107
|
-
import * as i4$
|
|
107
|
+
import * as i4$2 from '@angular/cdk/text-field';
|
|
108
108
|
import { TextFieldModule } from '@angular/cdk/text-field';
|
|
109
|
-
import * as i3$
|
|
109
|
+
import * as i3$2 from '@ngrx/router-store';
|
|
110
110
|
import { getRouterSelectors, routerReducer, StoreRouterConnectingModule, FullRouterStateSerializer } from '@ngrx/router-store';
|
|
111
111
|
import { navigation } from '@ngrx/router-store/data-persistence';
|
|
112
112
|
|
|
@@ -785,68 +785,110 @@ function getStatusFromStatusCode(statusCode) {
|
|
|
785
785
|
}
|
|
786
786
|
}
|
|
787
787
|
|
|
788
|
+
const RoleValues = [
|
|
789
|
+
'unspecified',
|
|
790
|
+
'other',
|
|
791
|
+
'author', // Party who authored the resource
|
|
792
|
+
'collaborator', // party who assists with the generation of the resource other than the principal investigator
|
|
793
|
+
'contributor', // party contributing to the resource
|
|
794
|
+
'custodian', // Party that accepts accountability and responsibility for the data and ensures appropriate care and maintenance of the resource
|
|
795
|
+
'distributor', // Party who distributes the resource
|
|
796
|
+
'editor', // party who reviewed or modified the resource to improve the content
|
|
797
|
+
'funder', // party providing monetary support for the resource
|
|
798
|
+
'mediator', // a class of entity that mediates access to the resource and for whom the resource is intended or useful
|
|
799
|
+
'originator', // Party who created the resource
|
|
800
|
+
'owner', // Party that owns the resource
|
|
801
|
+
'point_of_contact', // Party who can be contacted for acquiring knowledge about or acquisition of the resource
|
|
802
|
+
'principal_investigator', // Key party responsible for gathering information and conducting research
|
|
803
|
+
'processor', // Party who has processed the data in a manner such that the resource has been modified
|
|
804
|
+
'publisher', // Party who published the resource
|
|
805
|
+
'resource_provider', // Party that supplies the resource
|
|
806
|
+
'rights_holder', // party owning or managing rights over the resource
|
|
807
|
+
'sponsor', // party that sponsors the resource
|
|
808
|
+
'stakeholder', // party who has an interest in the resource or the use of the resource
|
|
809
|
+
'user', // Party who uses the resource
|
|
810
|
+
];
|
|
811
|
+
const RoleLabels = new Map([
|
|
812
|
+
['unspecified', marker('domain.contact.role.unspecified')],
|
|
813
|
+
['other', marker('domain.contact.role.other')],
|
|
814
|
+
['author', marker('domain.contact.role.author')],
|
|
815
|
+
['collaborator', marker('domain.contact.role.collaborator')],
|
|
816
|
+
['contributor', marker('domain.contact.role.contributor')],
|
|
817
|
+
['custodian', marker('domain.contact.role.custodian')],
|
|
818
|
+
['distributor', marker('domain.contact.role.distributor')],
|
|
819
|
+
['editor', marker('domain.contact.role.editor')],
|
|
820
|
+
['funder', marker('domain.contact.role.funder')],
|
|
821
|
+
['mediator', marker('domain.contact.role.mediator')],
|
|
822
|
+
['originator', marker('domain.contact.role.originator')],
|
|
823
|
+
['owner', marker('domain.contact.role.owner')],
|
|
824
|
+
['point_of_contact', marker('domain.contact.role.point_of_contact')],
|
|
825
|
+
[
|
|
826
|
+
'principal_investigator',
|
|
827
|
+
marker('domain.contact.role.principal_investigator'),
|
|
828
|
+
],
|
|
829
|
+
['processor', marker('domain.contact.role.processor')],
|
|
830
|
+
['publisher', marker('domain.contact.role.publisher')],
|
|
831
|
+
['resource_provider', marker('domain.contact.role.resource_provider')],
|
|
832
|
+
['rights_holder', marker('domain.contact.role.rights_holder')],
|
|
833
|
+
['sponsor', marker('domain.contact.role.sponsor')],
|
|
834
|
+
['stakeholder', marker('domain.contact.role.stakeholder')],
|
|
835
|
+
['user', marker('domain.contact.role.user')],
|
|
836
|
+
]);
|
|
837
|
+
|
|
838
|
+
marker('domain.record.updateFrequency.unknown');
|
|
839
|
+
marker('domain.record.updateFrequency.notPlanned');
|
|
840
|
+
marker('domain.record.updateFrequency.asNeeded');
|
|
841
|
+
marker('domain.record.updateFrequency.irregular');
|
|
842
|
+
marker('domain.record.updateFrequency.continual');
|
|
843
|
+
marker('domain.record.updateFrequency.periodic');
|
|
844
|
+
const updateFrequencyCodeValues = [
|
|
845
|
+
'unknown',
|
|
846
|
+
'notPlanned',
|
|
847
|
+
'asNeeded',
|
|
848
|
+
'irregular',
|
|
849
|
+
'continual',
|
|
850
|
+
'periodic',
|
|
851
|
+
'daily',
|
|
852
|
+
'weekly',
|
|
853
|
+
'fortnightly',
|
|
854
|
+
'semimonthly',
|
|
855
|
+
'monthly',
|
|
856
|
+
'quarterly',
|
|
857
|
+
'biannually',
|
|
858
|
+
'annually',
|
|
859
|
+
'biennially',
|
|
860
|
+
];
|
|
861
|
+
marker('domain.record.updateFrequency.day');
|
|
862
|
+
marker('domain.record.updateFrequency.week');
|
|
863
|
+
marker('domain.record.updateFrequency.month');
|
|
864
|
+
marker('domain.record.updateFrequency.year');
|
|
865
|
+
marker('domain.record.updateFrequency.daily');
|
|
866
|
+
marker('domain.record.updateFrequency.weekly');
|
|
867
|
+
marker('domain.record.updateFrequency.fortnightly');
|
|
868
|
+
marker('domain.record.updateFrequency.monthly');
|
|
869
|
+
marker('domain.record.updateFrequency.quarterly');
|
|
870
|
+
marker('domain.record.updateFrequency.biannually');
|
|
871
|
+
marker('domain.record.updateFrequency.annually');
|
|
872
|
+
marker('domain.record.updateFrequency.semimonthly');
|
|
873
|
+
marker('domain.record.updateFrequency.biennially');
|
|
874
|
+
marker('domain.record.status.completed');
|
|
875
|
+
marker('domain.record.status.ongoing');
|
|
876
|
+
marker('domain.record.status.under_development');
|
|
877
|
+
marker('domain.record.status.deprecated');
|
|
878
|
+
marker('domain.record.status.removed');
|
|
879
|
+
const RecordStatusValues = [
|
|
880
|
+
'completed',
|
|
881
|
+
'ongoing',
|
|
882
|
+
'under_development',
|
|
883
|
+
'deprecated',
|
|
884
|
+
'removed',
|
|
885
|
+
];
|
|
886
|
+
|
|
788
887
|
function getUpdateFrequencyFromFrequencyCode(frequencyCode) {
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
return 'unknown';
|
|
794
|
-
case 'irregular':
|
|
795
|
-
return 'irregular';
|
|
796
|
-
case 'notPlanned':
|
|
797
|
-
return 'notPlanned';
|
|
798
|
-
case 'continual':
|
|
799
|
-
return 'continual';
|
|
800
|
-
case 'periodic':
|
|
801
|
-
return 'periodic';
|
|
802
|
-
case 'daily':
|
|
803
|
-
return {
|
|
804
|
-
updatedTimes: 1,
|
|
805
|
-
per: 'day',
|
|
806
|
-
};
|
|
807
|
-
case 'weekly':
|
|
808
|
-
return {
|
|
809
|
-
updatedTimes: 1,
|
|
810
|
-
per: 'week',
|
|
811
|
-
};
|
|
812
|
-
case 'fortnightly':
|
|
813
|
-
return {
|
|
814
|
-
updatedTimes: 0.5,
|
|
815
|
-
per: 'week',
|
|
816
|
-
};
|
|
817
|
-
case 'semimonthly':
|
|
818
|
-
return {
|
|
819
|
-
updatedTimes: 2,
|
|
820
|
-
per: 'month',
|
|
821
|
-
};
|
|
822
|
-
case 'monthly':
|
|
823
|
-
return {
|
|
824
|
-
updatedTimes: 1,
|
|
825
|
-
per: 'month',
|
|
826
|
-
};
|
|
827
|
-
case 'quarterly':
|
|
828
|
-
return {
|
|
829
|
-
updatedTimes: 4,
|
|
830
|
-
per: 'year',
|
|
831
|
-
};
|
|
832
|
-
case 'biannually':
|
|
833
|
-
return {
|
|
834
|
-
updatedTimes: 2,
|
|
835
|
-
per: 'year',
|
|
836
|
-
};
|
|
837
|
-
case 'annually':
|
|
838
|
-
return {
|
|
839
|
-
updatedTimes: 1,
|
|
840
|
-
per: 'year',
|
|
841
|
-
};
|
|
842
|
-
case 'biennially':
|
|
843
|
-
return {
|
|
844
|
-
updatedTimes: 0.5,
|
|
845
|
-
per: 'year',
|
|
846
|
-
};
|
|
847
|
-
default:
|
|
848
|
-
return null;
|
|
849
|
-
}
|
|
888
|
+
return frequencyCode &&
|
|
889
|
+
updateFrequencyCodeValues.includes(frequencyCode)
|
|
890
|
+
? frequencyCode
|
|
891
|
+
: null;
|
|
850
892
|
}
|
|
851
893
|
|
|
852
894
|
const LANG_3_TO_2_MAPPER = {
|
|
@@ -1524,6 +1566,24 @@ function getMaintenanceFrequencyCode(updateFrequency) {
|
|
|
1524
1566
|
return 'continual';
|
|
1525
1567
|
case 'periodic':
|
|
1526
1568
|
return 'periodic';
|
|
1569
|
+
case 'daily':
|
|
1570
|
+
return 'daily';
|
|
1571
|
+
case 'weekly':
|
|
1572
|
+
return 'weekly';
|
|
1573
|
+
case 'fortnightly':
|
|
1574
|
+
return 'fortnightly';
|
|
1575
|
+
case 'monthly':
|
|
1576
|
+
return 'monthly';
|
|
1577
|
+
case 'quarterly':
|
|
1578
|
+
return 'quarterly';
|
|
1579
|
+
case 'biannually':
|
|
1580
|
+
return 'biannually';
|
|
1581
|
+
case 'annually':
|
|
1582
|
+
return 'annually';
|
|
1583
|
+
case 'semimonthly':
|
|
1584
|
+
return 'semimonthly';
|
|
1585
|
+
case 'biennially':
|
|
1586
|
+
return 'biennially';
|
|
1527
1587
|
}
|
|
1528
1588
|
}
|
|
1529
1589
|
function getISODuration(updateFrequency) {
|
|
@@ -18704,16 +18764,25 @@ var de = {
|
|
|
18704
18764
|
"domain.record.status.ongoing": "Kontinuierliche Aktualisierung",
|
|
18705
18765
|
"domain.record.status.removed": "Entfernt",
|
|
18706
18766
|
"domain.record.status.under_development": "In Erstellung",
|
|
18707
|
-
"domain.record.updateFrequency.
|
|
18708
|
-
"domain.record.updateFrequency.
|
|
18709
|
-
"domain.record.updateFrequency.
|
|
18710
|
-
"domain.record.updateFrequency.
|
|
18711
|
-
"domain.record.updateFrequency.
|
|
18712
|
-
"domain.record.updateFrequency.
|
|
18713
|
-
"domain.record.updateFrequency.
|
|
18714
|
-
"domain.record.updateFrequency.
|
|
18715
|
-
"domain.record.updateFrequency.
|
|
18716
|
-
"domain.record.updateFrequency.
|
|
18767
|
+
"domain.record.updateFrequency.annually": "Daten werden jedes Jahr aktualisiert",
|
|
18768
|
+
"domain.record.updateFrequency.asNeeded": "Daten werden nach Bedarf aktualisiert",
|
|
18769
|
+
"domain.record.updateFrequency.biannually": "Daten werden zweimal im Jahr aktualisiert",
|
|
18770
|
+
"domain.record.updateFrequency.biennially": "Daten werden alle 2 Jahre aktualisiert",
|
|
18771
|
+
"domain.record.updateFrequency.continual": "Daten werden wiederholt und häufig aktualisiert",
|
|
18772
|
+
"domain.record.updateFrequency.daily": "Daten werden täglich aktualisiert",
|
|
18773
|
+
"domain.record.updateFrequency.day": "{count, plural, =0{0 Mal} one{Einmal} other{{count} Mal}} pro Tag",
|
|
18774
|
+
"domain.record.updateFrequency.fortnightly": "Daten werden alle zwei Wochen aktualisiert",
|
|
18775
|
+
"domain.record.updateFrequency.irregular": "Daten werden in unregelmäßigen Abständen aktualisiert",
|
|
18776
|
+
"domain.record.updateFrequency.month": "{count, plural, =0{0 Mal} one{Einmal} other{{count} Mal}} pro Monat",
|
|
18777
|
+
"domain.record.updateFrequency.monthly": "Daten werden monatlich aktualisiert",
|
|
18778
|
+
"domain.record.updateFrequency.notPlanned": "Es gibt keine Pläne, die Daten zu aktualisieren",
|
|
18779
|
+
"domain.record.updateFrequency.periodic": "Daten werden in regelmäßigen Abständen aktualisiert",
|
|
18780
|
+
"domain.record.updateFrequency.quarterly": "Daten werden alle drei Monate aktualisiert",
|
|
18781
|
+
"domain.record.updateFrequency.semimonthly": "Daten werden zweimal im Monat aktualisiert",
|
|
18782
|
+
"domain.record.updateFrequency.unknown": "Die Häufigkeit der Datenaktualisierung ist unbekannt",
|
|
18783
|
+
"domain.record.updateFrequency.week": "{count, plural, =0{0 Mal} one{Einmal} other{{count} Mal}} pro Woche",
|
|
18784
|
+
"domain.record.updateFrequency.weekly": "Daten werden wöchentlich aktualisiert",
|
|
18785
|
+
"domain.record.updateFrequency.year": "{count, plural, =0{0 Mal} one{Einmal} other{{count} Mal}} pro Jahr",
|
|
18717
18786
|
"downloads.format.unknown": "unbekannt",
|
|
18718
18787
|
"downloads.wfs.featuretype.not.found": "Der Layer wurde nicht gefunden",
|
|
18719
18788
|
dropFile: dropFile$6,
|
|
@@ -18759,6 +18828,9 @@ var de = {
|
|
|
18759
18828
|
"editor.record.form.field.onlineResource.dialogTitle": "",
|
|
18760
18829
|
"editor.record.form.field.onlineResource.edit.description": "",
|
|
18761
18830
|
"editor.record.form.field.onlineResource.edit.protocol": "",
|
|
18831
|
+
"editor.record.form.field.onlineResource.edit.identifier.placeholder": "Ebenenname",
|
|
18832
|
+
"editor.record.form.field.onlineResource.edit.identifier.placeholder.wps": "Prozessname",
|
|
18833
|
+
"editor.record.form.field.onlineResource.edit.identifier.submit": "Link zum Dienst",
|
|
18762
18834
|
"editor.record.form.field.onlineResource.edit.title": "",
|
|
18763
18835
|
"editor.record.form.field.onlineResource.fileSize": "",
|
|
18764
18836
|
"editor.record.form.field.onlineResource.modify": "",
|
|
@@ -18808,7 +18880,7 @@ var de = {
|
|
|
18808
18880
|
"editor.record.form.temporalExtents.addRange": "Zeitraum",
|
|
18809
18881
|
"editor.record.form.temporalExtents.date": "Datum",
|
|
18810
18882
|
"editor.record.form.temporalExtents.range": "Datumsbereich",
|
|
18811
|
-
"editor.record.form.updateFrequency.planned": "
|
|
18883
|
+
"editor.record.form.updateFrequency.planned": "Dieses Dataset wird regelmäßig aktualisiert.",
|
|
18812
18884
|
"editor.record.importFromExternalFile.failure.body": "",
|
|
18813
18885
|
"editor.record.importFromExternalFile.failure.title": "",
|
|
18814
18886
|
"editor.record.importFromExternalFile.success.body": "",
|
|
@@ -19270,15 +19342,24 @@ var en = {
|
|
|
19270
19342
|
"domain.record.status.ongoing": "Ongoing",
|
|
19271
19343
|
"domain.record.status.removed": "Removed",
|
|
19272
19344
|
"domain.record.status.under_development": "Under development",
|
|
19273
|
-
"domain.record.updateFrequency.
|
|
19274
|
-
"domain.record.updateFrequency.
|
|
19345
|
+
"domain.record.updateFrequency.annually": "Data is updated every year",
|
|
19346
|
+
"domain.record.updateFrequency.asNeeded": "Data is updated as deemed necessary",
|
|
19347
|
+
"domain.record.updateFrequency.biannually": "Data is updated twice each year",
|
|
19348
|
+
"domain.record.updateFrequency.biennially": "Data is updated every 2 years",
|
|
19349
|
+
"domain.record.updateFrequency.continual": "Data is repeatedly and frequently updated",
|
|
19350
|
+
"domain.record.updateFrequency.daily": "Data is updated each day",
|
|
19275
19351
|
"domain.record.updateFrequency.day": "{count, plural, =0{0 times} one{Once} other{{count} times}} per day",
|
|
19276
|
-
"domain.record.updateFrequency.
|
|
19352
|
+
"domain.record.updateFrequency.fortnightly": "Data is updated every two weeks",
|
|
19353
|
+
"domain.record.updateFrequency.irregular": "Data is updated in intervals that are uneven in duration",
|
|
19277
19354
|
"domain.record.updateFrequency.month": "{count, plural, =0{0 times} one{Once} other{{count} times}} per month",
|
|
19278
|
-
"domain.record.updateFrequency.
|
|
19279
|
-
"domain.record.updateFrequency.
|
|
19280
|
-
"domain.record.updateFrequency.
|
|
19355
|
+
"domain.record.updateFrequency.monthly": "Data is updated each month",
|
|
19356
|
+
"domain.record.updateFrequency.notPlanned": "There are no plans to update the data",
|
|
19357
|
+
"domain.record.updateFrequency.periodic": "Data is updated at regular intervals",
|
|
19358
|
+
"domain.record.updateFrequency.quarterly": "Data is updated every three months",
|
|
19359
|
+
"domain.record.updateFrequency.semimonthly": "Data is updated twice a month",
|
|
19360
|
+
"domain.record.updateFrequency.unknown": "Frequency of maintenance for the data is not known",
|
|
19281
19361
|
"domain.record.updateFrequency.week": "{count, plural, =0{0 times} one{Once} other{{count} times}} per week",
|
|
19362
|
+
"domain.record.updateFrequency.weekly": "Data is updated on a weekly basis",
|
|
19282
19363
|
"domain.record.updateFrequency.year": "{count, plural, =0{0 times} one{Once} other{{count} times}} per year",
|
|
19283
19364
|
"downloads.format.unknown": "Unknown",
|
|
19284
19365
|
"downloads.wfs.featuretype.not.found": "The layer was not found",
|
|
@@ -19325,6 +19406,9 @@ var en = {
|
|
|
19325
19406
|
"editor.record.form.field.onlineResource.dialogTitle": "Modify the dataset preview",
|
|
19326
19407
|
"editor.record.form.field.onlineResource.edit.description": "Description",
|
|
19327
19408
|
"editor.record.form.field.onlineResource.edit.protocol": "Protocol",
|
|
19409
|
+
"editor.record.form.field.onlineResource.edit.identifier.placeholder": "Layer name",
|
|
19410
|
+
"editor.record.form.field.onlineResource.edit.identifier.placeholder.wps": "Process name",
|
|
19411
|
+
"editor.record.form.field.onlineResource.edit.identifier.submit": "Link to the service",
|
|
19328
19412
|
"editor.record.form.field.onlineResource.edit.title": "Title",
|
|
19329
19413
|
"editor.record.form.field.onlineResource.fileSize": "{sizeMB}MB",
|
|
19330
19414
|
"editor.record.form.field.onlineResource.modify": "Modify",
|
|
@@ -19374,7 +19458,7 @@ var en = {
|
|
|
19374
19458
|
"editor.record.form.temporalExtents.addRange": "Time period",
|
|
19375
19459
|
"editor.record.form.temporalExtents.date": "Date",
|
|
19376
19460
|
"editor.record.form.temporalExtents.range": "Date range",
|
|
19377
|
-
"editor.record.form.updateFrequency.planned": "
|
|
19461
|
+
"editor.record.form.updateFrequency.planned": "This dataset is updated regularly.",
|
|
19378
19462
|
"editor.record.importFromExternalFile.failure.body": "Failure",
|
|
19379
19463
|
"editor.record.importFromExternalFile.failure.title": "The dataset import failed: ",
|
|
19380
19464
|
"editor.record.importFromExternalFile.success.body": "Import successful",
|
|
@@ -19855,16 +19939,25 @@ var es = {
|
|
|
19855
19939
|
"domain.record.status.ongoing": "",
|
|
19856
19940
|
"domain.record.status.removed": "",
|
|
19857
19941
|
"domain.record.status.under_development": "",
|
|
19858
|
-
"domain.record.updateFrequency.
|
|
19859
|
-
"domain.record.updateFrequency.
|
|
19860
|
-
"domain.record.updateFrequency.
|
|
19861
|
-
"domain.record.updateFrequency.
|
|
19862
|
-
"domain.record.updateFrequency.
|
|
19863
|
-
"domain.record.updateFrequency.
|
|
19864
|
-
"domain.record.updateFrequency.
|
|
19865
|
-
"domain.record.updateFrequency.
|
|
19866
|
-
"domain.record.updateFrequency.
|
|
19867
|
-
"domain.record.updateFrequency.
|
|
19942
|
+
"domain.record.updateFrequency.annually": "Los datos se actualizan cada año",
|
|
19943
|
+
"domain.record.updateFrequency.asNeeded": "Los datos se actualizan según sea necesario",
|
|
19944
|
+
"domain.record.updateFrequency.biannually": "Los datos se actualizan dos veces al año",
|
|
19945
|
+
"domain.record.updateFrequency.biennially": "Los datos se actualizan cada 2 años",
|
|
19946
|
+
"domain.record.updateFrequency.continual": "Los datos se actualizan repetidamente y con frecuencia",
|
|
19947
|
+
"domain.record.updateFrequency.daily": "Los datos se actualizan cada día",
|
|
19948
|
+
"domain.record.updateFrequency.day": "{count, plural, =0{0 veces} one{Una vez} other{{count} veces}} al día",
|
|
19949
|
+
"domain.record.updateFrequency.fortnightly": "Los datos se actualizan cada dos semanas",
|
|
19950
|
+
"domain.record.updateFrequency.irregular": "Los datos se actualizan en intervalos irregulares",
|
|
19951
|
+
"domain.record.updateFrequency.month": "{count, plural, =0{0 veces} one{Una vez} other{{count} veces}} al mes",
|
|
19952
|
+
"domain.record.updateFrequency.monthly": "Los datos se actualizan cada mes",
|
|
19953
|
+
"domain.record.updateFrequency.notPlanned": "No hay planes para actualizar los datos",
|
|
19954
|
+
"domain.record.updateFrequency.periodic": "Los datos se actualizan a intervalos regulares",
|
|
19955
|
+
"domain.record.updateFrequency.quarterly": "Los datos se actualizan cada tres meses",
|
|
19956
|
+
"domain.record.updateFrequency.semimonthly": "Los datos se actualizan dos veces al mes",
|
|
19957
|
+
"domain.record.updateFrequency.unknown": "La frecuencia de actualización de los datos es desconocida",
|
|
19958
|
+
"domain.record.updateFrequency.week": "{count, plural, =0{0 veces} one{Una vez} other{{count} veces}} a la semana",
|
|
19959
|
+
"domain.record.updateFrequency.weekly": "Los datos se actualizan semanalmente",
|
|
19960
|
+
"domain.record.updateFrequency.year": "{count, plural, =0{0 veces} one{Una vez} other{{count} veces}} al año",
|
|
19868
19961
|
"downloads.format.unknown": "",
|
|
19869
19962
|
"downloads.wfs.featuretype.not.found": "",
|
|
19870
19963
|
dropFile: dropFile$4,
|
|
@@ -19910,6 +20003,9 @@ var es = {
|
|
|
19910
20003
|
"editor.record.form.field.onlineResource.dialogTitle": "",
|
|
19911
20004
|
"editor.record.form.field.onlineResource.edit.description": "",
|
|
19912
20005
|
"editor.record.form.field.onlineResource.edit.protocol": "",
|
|
20006
|
+
"editor.record.form.field.onlineResource.edit.identifier.placeholder": "Nombre de la capa",
|
|
20007
|
+
"editor.record.form.field.onlineResource.edit.identifier.placeholder.wps": "Nombre del proceso",
|
|
20008
|
+
"editor.record.form.field.onlineResource.edit.identifier.submit": "Enlace al servicio",
|
|
19913
20009
|
"editor.record.form.field.onlineResource.edit.title": "",
|
|
19914
20010
|
"editor.record.form.field.onlineResource.fileSize": "",
|
|
19915
20011
|
"editor.record.form.field.onlineResource.modify": "",
|
|
@@ -19959,7 +20055,7 @@ var es = {
|
|
|
19959
20055
|
"editor.record.form.temporalExtents.addRange": "",
|
|
19960
20056
|
"editor.record.form.temporalExtents.date": "",
|
|
19961
20057
|
"editor.record.form.temporalExtents.range": "",
|
|
19962
|
-
"editor.record.form.updateFrequency.planned": "",
|
|
20058
|
+
"editor.record.form.updateFrequency.planned": "Este conjunto de datos se actualiza regularmente.",
|
|
19963
20059
|
"editor.record.importFromExternalFile.failure.body": "",
|
|
19964
20060
|
"editor.record.importFromExternalFile.failure.title": "",
|
|
19965
20061
|
"editor.record.importFromExternalFile.success.body": "",
|
|
@@ -20421,16 +20517,25 @@ var fr = {
|
|
|
20421
20517
|
"domain.record.status.ongoing": "Mise à jour continue",
|
|
20422
20518
|
"domain.record.status.removed": "Supprimé",
|
|
20423
20519
|
"domain.record.status.under_development": "En cours de création",
|
|
20424
|
-
"domain.record.updateFrequency.
|
|
20425
|
-
"domain.record.updateFrequency.
|
|
20426
|
-
"domain.record.updateFrequency.
|
|
20427
|
-
"domain.record.updateFrequency.
|
|
20428
|
-
"domain.record.updateFrequency.
|
|
20429
|
-
"domain.record.updateFrequency.
|
|
20430
|
-
"domain.record.updateFrequency.
|
|
20431
|
-
"domain.record.updateFrequency.
|
|
20432
|
-
"domain.record.updateFrequency.
|
|
20433
|
-
"domain.record.updateFrequency.
|
|
20520
|
+
"domain.record.updateFrequency.annually": "Les données sont mises à jour chaque année",
|
|
20521
|
+
"domain.record.updateFrequency.asNeeded": "Les données sont mises à jour selon les besoins",
|
|
20522
|
+
"domain.record.updateFrequency.biannually": "Les données sont mises à jour deux fois par an",
|
|
20523
|
+
"domain.record.updateFrequency.biennially": "Les données sont mises à jour tous les 2 ans",
|
|
20524
|
+
"domain.record.updateFrequency.continual": "Les données sont mises à jour de manière répétée et fréquente",
|
|
20525
|
+
"domain.record.updateFrequency.daily": "Les données sont mises à jour chaque jour",
|
|
20526
|
+
"domain.record.updateFrequency.day": "{count, plural, =0{0 fois} one{Une fois} other{{count} fois}} par jour",
|
|
20527
|
+
"domain.record.updateFrequency.fortnightly": "Les données sont mises à jour toutes les deux semaines",
|
|
20528
|
+
"domain.record.updateFrequency.irregular": "Les données sont mises à jour à intervalles irréguliers",
|
|
20529
|
+
"domain.record.updateFrequency.month": "{count, plural, =0{0 fois} one{Une fois} other{{count} fois}} par mois",
|
|
20530
|
+
"domain.record.updateFrequency.monthly": "Les données sont mises à jour chaque mois",
|
|
20531
|
+
"domain.record.updateFrequency.notPlanned": "Il n'y a pas de plan pour mettre à jour les données",
|
|
20532
|
+
"domain.record.updateFrequency.periodic": "Les données sont mises à jour à intervalles réguliers",
|
|
20533
|
+
"domain.record.updateFrequency.quarterly": "Les données sont mises à jour tous les trois mois",
|
|
20534
|
+
"domain.record.updateFrequency.semimonthly": "Les données sont mises à jour deux fois par mois",
|
|
20535
|
+
"domain.record.updateFrequency.unknown": "La fréquence de mise à jour des données est inconnue",
|
|
20536
|
+
"domain.record.updateFrequency.week": "{count, plural, =0{0 fois} one{Une fois} other{{count} fois}} par semaine",
|
|
20537
|
+
"domain.record.updateFrequency.weekly": "Les données sont mises à jour chaque semaine",
|
|
20538
|
+
"domain.record.updateFrequency.year": "{count, plural, =0{0 fois} one{Une fois} other{{count} fois}} par an",
|
|
20434
20539
|
"downloads.format.unknown": "inconnu",
|
|
20435
20540
|
"downloads.wfs.featuretype.not.found": "La couche n'a pas été trouvée",
|
|
20436
20541
|
dropFile: dropFile$3,
|
|
@@ -20476,6 +20581,9 @@ var fr = {
|
|
|
20476
20581
|
"editor.record.form.field.onlineResource.dialogTitle": "Modifier l'aperçu du jeu de données",
|
|
20477
20582
|
"editor.record.form.field.onlineResource.edit.description": "Description",
|
|
20478
20583
|
"editor.record.form.field.onlineResource.edit.protocol": "Protocole",
|
|
20584
|
+
"editor.record.form.field.onlineResource.edit.identifier.placeholder": "Nom de la couche",
|
|
20585
|
+
"editor.record.form.field.onlineResource.edit.identifier.placeholder.wps": "Nom du processus",
|
|
20586
|
+
"editor.record.form.field.onlineResource.edit.identifier.submit": "Lier le service",
|
|
20479
20587
|
"editor.record.form.field.onlineResource.edit.title": "Titre",
|
|
20480
20588
|
"editor.record.form.field.onlineResource.fileSize": "{sizeMB} Mo",
|
|
20481
20589
|
"editor.record.form.field.onlineResource.modify": "Modifier",
|
|
@@ -20525,7 +20633,7 @@ var fr = {
|
|
|
20525
20633
|
"editor.record.form.temporalExtents.addRange": "Période de temps",
|
|
20526
20634
|
"editor.record.form.temporalExtents.date": "Date concernée",
|
|
20527
20635
|
"editor.record.form.temporalExtents.range": "Période concernée",
|
|
20528
|
-
"editor.record.form.updateFrequency.planned": "
|
|
20636
|
+
"editor.record.form.updateFrequency.planned": "Ce jeu de données est mis à jour régulièrement.",
|
|
20529
20637
|
"editor.record.importFromExternalFile.failure.body": "Une erreur est survenue pendant l'import du jeu de données : ",
|
|
20530
20638
|
"editor.record.importFromExternalFile.failure.title": "Erreur",
|
|
20531
20639
|
"editor.record.importFromExternalFile.success.body": "L'import du jeu de données à été realisé avec succès.",
|
|
@@ -21006,16 +21114,25 @@ var it = {
|
|
|
21006
21114
|
"domain.record.status.ongoing": "Aggiornamento continuo",
|
|
21007
21115
|
"domain.record.status.removed": "Rimosso",
|
|
21008
21116
|
"domain.record.status.under_development": "In fase di creazione",
|
|
21009
|
-
"domain.record.updateFrequency.
|
|
21010
|
-
"domain.record.updateFrequency.
|
|
21011
|
-
"domain.record.updateFrequency.
|
|
21012
|
-
"domain.record.updateFrequency.
|
|
21013
|
-
"domain.record.updateFrequency.
|
|
21014
|
-
"domain.record.updateFrequency.
|
|
21015
|
-
"domain.record.updateFrequency.
|
|
21016
|
-
"domain.record.updateFrequency.
|
|
21017
|
-
"domain.record.updateFrequency.
|
|
21018
|
-
"domain.record.updateFrequency.
|
|
21117
|
+
"domain.record.updateFrequency.annually": "I dati vengono aggiornati ogni anno",
|
|
21118
|
+
"domain.record.updateFrequency.asNeeded": "I dati vengono aggiornati secondo necessità",
|
|
21119
|
+
"domain.record.updateFrequency.biannually": "I dati vengono aggiornati due volte all'anno",
|
|
21120
|
+
"domain.record.updateFrequency.biennially": "I dati vengono aggiornati ogni 2 anni",
|
|
21121
|
+
"domain.record.updateFrequency.continual": "I dati vengono aggiornati ripetutamente e frequentemente",
|
|
21122
|
+
"domain.record.updateFrequency.daily": "I dati vengono aggiornati ogni giorno",
|
|
21123
|
+
"domain.record.updateFrequency.day": "{count, plural, =0{0 volte} one{Una volta} other{{count} volte}} al giorno",
|
|
21124
|
+
"domain.record.updateFrequency.fortnightly": "I dati vengono aggiornati ogni due settimane",
|
|
21125
|
+
"domain.record.updateFrequency.irregular": "I dati vengono aggiornati a intervalli irregolari",
|
|
21126
|
+
"domain.record.updateFrequency.month": "{count, plural, =0{0 volte} one{Una volta} other{{count} volte}} al mese",
|
|
21127
|
+
"domain.record.updateFrequency.monthly": "I dati vengono aggiornati ogni mese",
|
|
21128
|
+
"domain.record.updateFrequency.notPlanned": "Non ci sono piani per aggiornare i dati",
|
|
21129
|
+
"domain.record.updateFrequency.periodic": "I dati vengono aggiornati a intervalli regolari",
|
|
21130
|
+
"domain.record.updateFrequency.quarterly": "I dati vengono aggiornati ogni tre mesi",
|
|
21131
|
+
"domain.record.updateFrequency.semimonthly": "I dati vengono aggiornati due volte al mese",
|
|
21132
|
+
"domain.record.updateFrequency.unknown": "La frequenza di aggiornamento dei dati è sconosciuta",
|
|
21133
|
+
"domain.record.updateFrequency.week": "{count, plural, =0{0 volte} one{Una volta} other{{count} volte}} a settimana",
|
|
21134
|
+
"domain.record.updateFrequency.weekly": "I dati vengono aggiornati settimanalmente",
|
|
21135
|
+
"domain.record.updateFrequency.year": "{count, plural, =0{0 volte} one{Una volta} other{{count} volte}} all'anno",
|
|
21019
21136
|
"downloads.format.unknown": "sconosciuto",
|
|
21020
21137
|
"downloads.wfs.featuretype.not.found": "Il layer non è stato trovato",
|
|
21021
21138
|
dropFile: dropFile$2,
|
|
@@ -21061,6 +21178,9 @@ var it = {
|
|
|
21061
21178
|
"editor.record.form.field.onlineResource.dialogTitle": "",
|
|
21062
21179
|
"editor.record.form.field.onlineResource.edit.description": "",
|
|
21063
21180
|
"editor.record.form.field.onlineResource.edit.protocol": "",
|
|
21181
|
+
"editor.record.form.field.onlineResource.edit.identifier.placeholder": "Nome del livello",
|
|
21182
|
+
"editor.record.form.field.onlineResource.edit.identifier.placeholder.wps": "Nome del processo",
|
|
21183
|
+
"editor.record.form.field.onlineResource.edit.identifier.submit": "Collegare il servizio",
|
|
21064
21184
|
"editor.record.form.field.onlineResource.edit.title": "",
|
|
21065
21185
|
"editor.record.form.field.onlineResource.fileSize": "",
|
|
21066
21186
|
"editor.record.form.field.onlineResource.modify": "",
|
|
@@ -21110,7 +21230,7 @@ var it = {
|
|
|
21110
21230
|
"editor.record.form.temporalExtents.addRange": "",
|
|
21111
21231
|
"editor.record.form.temporalExtents.date": "",
|
|
21112
21232
|
"editor.record.form.temporalExtents.range": "",
|
|
21113
|
-
"editor.record.form.updateFrequency.planned": "",
|
|
21233
|
+
"editor.record.form.updateFrequency.planned": "Questo dataset viene aggiornato regolarmente.",
|
|
21114
21234
|
"editor.record.importFromExternalFile.failure.body": "",
|
|
21115
21235
|
"editor.record.importFromExternalFile.failure.title": "",
|
|
21116
21236
|
"editor.record.importFromExternalFile.success.body": "",
|
|
@@ -21572,16 +21692,25 @@ var nl = {
|
|
|
21572
21692
|
"domain.record.status.ongoing": "",
|
|
21573
21693
|
"domain.record.status.removed": "",
|
|
21574
21694
|
"domain.record.status.under_development": "",
|
|
21575
|
-
"domain.record.updateFrequency.
|
|
21576
|
-
"domain.record.updateFrequency.
|
|
21577
|
-
"domain.record.updateFrequency.
|
|
21578
|
-
"domain.record.updateFrequency.
|
|
21579
|
-
"domain.record.updateFrequency.
|
|
21580
|
-
"domain.record.updateFrequency.
|
|
21581
|
-
"domain.record.updateFrequency.
|
|
21582
|
-
"domain.record.updateFrequency.
|
|
21583
|
-
"domain.record.updateFrequency.
|
|
21584
|
-
"domain.record.updateFrequency.
|
|
21695
|
+
"domain.record.updateFrequency.annually": "Gegevens worden elk jaar bijgewerkt",
|
|
21696
|
+
"domain.record.updateFrequency.asNeeded": "Gegevens worden bijgewerkt naar behoefte",
|
|
21697
|
+
"domain.record.updateFrequency.biannually": "Gegevens worden twee keer per jaar bijgewerkt",
|
|
21698
|
+
"domain.record.updateFrequency.biennially": "Gegevens worden elke 2 jaar bijgewerkt",
|
|
21699
|
+
"domain.record.updateFrequency.continual": "Gegevens worden herhaaldelijk en frequent bijgewerkt",
|
|
21700
|
+
"domain.record.updateFrequency.daily": "Gegevens worden elke dag bijgewerkt",
|
|
21701
|
+
"domain.record.updateFrequency.day": "{count, plural, =0{0 keer} one{Een keer} other{{count} keer}} per dag",
|
|
21702
|
+
"domain.record.updateFrequency.fortnightly": "Gegevens worden elke twee weken bijgewerkt",
|
|
21703
|
+
"domain.record.updateFrequency.irregular": "Gegevens worden onregelmatig bijgewerkt",
|
|
21704
|
+
"domain.record.updateFrequency.month": "{count, plural, =0{0 keer} one{Een keer} other{{count} keer}} per maand",
|
|
21705
|
+
"domain.record.updateFrequency.monthly": "Gegevens worden elke maand bijgewerkt",
|
|
21706
|
+
"domain.record.updateFrequency.notPlanned": "Er zijn geen plannen om de gegevens bij te werken",
|
|
21707
|
+
"domain.record.updateFrequency.periodic": "Gegevens worden regelmatig bijgewerkt",
|
|
21708
|
+
"domain.record.updateFrequency.quarterly": "Gegevens worden elke drie maanden bijgewerkt",
|
|
21709
|
+
"domain.record.updateFrequency.semimonthly": "Gegevens worden twee keer per maand bijgewerkt",
|
|
21710
|
+
"domain.record.updateFrequency.unknown": "De frequentie van gegevensonderhoud is onbekend",
|
|
21711
|
+
"domain.record.updateFrequency.week": "{count, plural, =0{0 keer} one{Een keer} other{{count} keer}} per week",
|
|
21712
|
+
"domain.record.updateFrequency.weekly": "Gegevens worden wekelijks bijgewerkt",
|
|
21713
|
+
"domain.record.updateFrequency.year": "{count, plural, =0{0 keer} one{Een keer} other{{count} keer}} per jaar",
|
|
21585
21714
|
"downloads.format.unknown": "",
|
|
21586
21715
|
"downloads.wfs.featuretype.not.found": "",
|
|
21587
21716
|
dropFile: dropFile$1,
|
|
@@ -21627,6 +21756,9 @@ var nl = {
|
|
|
21627
21756
|
"editor.record.form.field.onlineResource.dialogTitle": "",
|
|
21628
21757
|
"editor.record.form.field.onlineResource.edit.description": "",
|
|
21629
21758
|
"editor.record.form.field.onlineResource.edit.protocol": "",
|
|
21759
|
+
"editor.record.form.field.onlineResource.edit.identifier.placeholder": "Laagnaam",
|
|
21760
|
+
"editor.record.form.field.onlineResource.edit.identifier.placeholder.wps": "Procesnaam",
|
|
21761
|
+
"editor.record.form.field.onlineResource.edit.identifier.submit": "Link naar de dienst",
|
|
21630
21762
|
"editor.record.form.field.onlineResource.edit.title": "",
|
|
21631
21763
|
"editor.record.form.field.onlineResource.fileSize": "",
|
|
21632
21764
|
"editor.record.form.field.onlineResource.modify": "",
|
|
@@ -21676,7 +21808,7 @@ var nl = {
|
|
|
21676
21808
|
"editor.record.form.temporalExtents.addRange": "",
|
|
21677
21809
|
"editor.record.form.temporalExtents.date": "",
|
|
21678
21810
|
"editor.record.form.temporalExtents.range": "",
|
|
21679
|
-
"editor.record.form.updateFrequency.planned": "",
|
|
21811
|
+
"editor.record.form.updateFrequency.planned": "Deze dataset wordt regelmatig bijgewerkt.",
|
|
21680
21812
|
"editor.record.importFromExternalFile.failure.body": "",
|
|
21681
21813
|
"editor.record.importFromExternalFile.failure.title": "",
|
|
21682
21814
|
"editor.record.importFromExternalFile.success.body": "",
|
|
@@ -22138,16 +22270,25 @@ var pt = {
|
|
|
22138
22270
|
"domain.record.status.ongoing": "",
|
|
22139
22271
|
"domain.record.status.removed": "",
|
|
22140
22272
|
"domain.record.status.under_development": "",
|
|
22141
|
-
"domain.record.updateFrequency.
|
|
22142
|
-
"domain.record.updateFrequency.
|
|
22143
|
-
"domain.record.updateFrequency.
|
|
22144
|
-
"domain.record.updateFrequency.
|
|
22145
|
-
"domain.record.updateFrequency.
|
|
22146
|
-
"domain.record.updateFrequency.
|
|
22147
|
-
"domain.record.updateFrequency.
|
|
22148
|
-
"domain.record.updateFrequency.
|
|
22149
|
-
"domain.record.updateFrequency.
|
|
22150
|
-
"domain.record.updateFrequency.
|
|
22273
|
+
"domain.record.updateFrequency.annually": "Os dados são atualizados anualmente",
|
|
22274
|
+
"domain.record.updateFrequency.asNeeded": "Os dados são atualizados conforme necessário",
|
|
22275
|
+
"domain.record.updateFrequency.biannually": "Os dados são atualizados duas vezes por ano",
|
|
22276
|
+
"domain.record.updateFrequency.biennially": "Os dados são atualizados a cada 2 anos",
|
|
22277
|
+
"domain.record.updateFrequency.continual": "Os dados são atualizados repetidamente e com frequência",
|
|
22278
|
+
"domain.record.updateFrequency.daily": "Os dados são atualizados diariamente",
|
|
22279
|
+
"domain.record.updateFrequency.day": "{count, plural, =0{0 vezes} one{Uma vez} other{{count} vezes}} por dia",
|
|
22280
|
+
"domain.record.updateFrequency.fortnightly": "Os dados são atualizados a cada duas semanas",
|
|
22281
|
+
"domain.record.updateFrequency.irregular": "Os dados são atualizados em intervalos irregulares",
|
|
22282
|
+
"domain.record.updateFrequency.month": "{count, plural, =0{0 vezes} one{Uma vez} other{{count} vezes}} por mês",
|
|
22283
|
+
"domain.record.updateFrequency.monthly": "Os dados são atualizados mensalmente",
|
|
22284
|
+
"domain.record.updateFrequency.notPlanned": "Não há planos para atualizar os dados",
|
|
22285
|
+
"domain.record.updateFrequency.periodic": "Os dados são atualizados em intervalos regulares",
|
|
22286
|
+
"domain.record.updateFrequency.quarterly": "Os dados são atualizados a cada três meses",
|
|
22287
|
+
"domain.record.updateFrequency.semimonthly": "Os dados são atualizados duas vezes por mês",
|
|
22288
|
+
"domain.record.updateFrequency.unknown": "A frequência de manutenção dos dados é desconhecida",
|
|
22289
|
+
"domain.record.updateFrequency.week": "{count, plural, =0{0 vezes} one{Uma vez} other{{count} vezes}} por semana",
|
|
22290
|
+
"domain.record.updateFrequency.weekly": "Os dados são atualizados semanalmente",
|
|
22291
|
+
"domain.record.updateFrequency.year": "{count, plural, =0{0 vezes} one{Uma vez} other{{count} vezes}} por ano",
|
|
22151
22292
|
"downloads.format.unknown": "",
|
|
22152
22293
|
"downloads.wfs.featuretype.not.found": "",
|
|
22153
22294
|
dropFile: dropFile,
|
|
@@ -22193,6 +22334,9 @@ var pt = {
|
|
|
22193
22334
|
"editor.record.form.field.onlineResource.dialogTitle": "",
|
|
22194
22335
|
"editor.record.form.field.onlineResource.edit.description": "",
|
|
22195
22336
|
"editor.record.form.field.onlineResource.edit.protocol": "",
|
|
22337
|
+
"editor.record.form.field.onlineResource.edit.identifier.placeholder": "Nome da camada",
|
|
22338
|
+
"editor.record.form.field.onlineResource.edit.identifier.placeholder.wps": "Nome do processo",
|
|
22339
|
+
"editor.record.form.field.onlineResource.edit.identifier.submit": "Link para o serviço",
|
|
22196
22340
|
"editor.record.form.field.onlineResource.edit.title": "",
|
|
22197
22341
|
"editor.record.form.field.onlineResource.fileSize": "",
|
|
22198
22342
|
"editor.record.form.field.onlineResource.modify": "",
|
|
@@ -22242,7 +22386,7 @@ var pt = {
|
|
|
22242
22386
|
"editor.record.form.temporalExtents.addRange": "",
|
|
22243
22387
|
"editor.record.form.temporalExtents.date": "",
|
|
22244
22388
|
"editor.record.form.temporalExtents.range": "",
|
|
22245
|
-
"editor.record.form.updateFrequency.planned": "",
|
|
22389
|
+
"editor.record.form.updateFrequency.planned": "Este conjunto de dados é atualizado regularmente.",
|
|
22246
22390
|
"editor.record.importFromExternalFile.failure.body": "",
|
|
22247
22391
|
"editor.record.importFromExternalFile.failure.title": "",
|
|
22248
22392
|
"editor.record.importFromExternalFile.success.body": "",
|
|
@@ -26131,6 +26275,7 @@ class ButtonComponent {
|
|
|
26131
26275
|
handleClick(event) {
|
|
26132
26276
|
this.buttonClick.emit();
|
|
26133
26277
|
event.preventDefault();
|
|
26278
|
+
event.currentTarget.blur();
|
|
26134
26279
|
propagateToDocumentOnly(event);
|
|
26135
26280
|
}
|
|
26136
26281
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
@@ -26549,42 +26694,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
26549
26694
|
type: Output
|
|
26550
26695
|
}] } });
|
|
26551
26696
|
|
|
26552
|
-
class DateRangePickerComponent {
|
|
26553
|
-
constructor() {
|
|
26554
|
-
this.startDateChange = new EventEmitter();
|
|
26555
|
-
this.endDateChange = new EventEmitter();
|
|
26556
|
-
}
|
|
26557
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DateRangePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
26558
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DateRangePickerComponent, isStandalone: true, selector: "gn-ui-date-range-picker", inputs: { startDate: "startDate", endDate: "endDate" }, outputs: { startDateChange: "startDateChange", endDateChange: "endDateChange" }, providers: [
|
|
26559
|
-
provideIcons({ iconoirCalendar }),
|
|
26560
|
-
provideNgIconsConfig({
|
|
26561
|
-
size: '1.5rem',
|
|
26562
|
-
}),
|
|
26563
|
-
], ngImport: i0, template: "<span class=\"w-full inline-block relative\">\n <mat-date-range-input [rangePicker]=\"picker\" class=\"gn-ui-text-input\">\n <input\n matStartDate\n placeholder=\"Start date\"\n [value]=\"startDate\"\n (dateInput)=\"startDateChange.emit($event.value)\"\n />\n <input\n matEndDate\n placeholder=\"End date\"\n [value]=\"endDate\"\n (dateInput)=\"endDateChange.emit($event.value)\"\n />\n </mat-date-range-input>\n\n <gn-ui-button\n type=\"light\"\n class=\"absolute inset-y-[var(--side-padding)] right-[var(--side-padding)] z-10\"\n (buttonClick)=\"picker.open()\"\n extraClass=\"h-full\"\n data-cy=\"date-picker-button\"\n >\n <ng-icon name=\"iconoirCalendar\" class=\"text-primary\"></ng-icon>\n </gn-ui-button>\n</span>\n<mat-date-range-picker #picker></mat-date-range-picker>\n", styles: [":host{--gn-ui-button-rounded: 8px;--gn-ui-button-width: 32px;--gn-ui-button-padding: 0;--side-padding: calc(var(--gn-ui-text-input-padding, .6em) - 6px);--text-padding: calc(var(--side-padding) + 40px)}\n"], dependencies: [{ kind: "ngmodule", type: MatNativeDateModule }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i1$8.MatDateRangeInput, selector: "mat-date-range-input", inputs: ["rangePicker", "required", "dateFilter", "min", "max", "disabled", "separator", "comparisonStart", "comparisonEnd"], exportAs: ["matDateRangeInput"] }, { kind: "directive", type: i1$8.MatStartDate, selector: "input[matStartDate]", outputs: ["dateChange", "dateInput"] }, { kind: "directive", type: i1$8.MatEndDate, selector: "input[matEndDate]", outputs: ["dateChange", "dateInput"] }, { kind: "component", type: i1$8.MatDateRangePicker, selector: "mat-date-range-picker", exportAs: ["matDateRangePicker"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
26564
|
-
}
|
|
26565
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DateRangePickerComponent, decorators: [{
|
|
26566
|
-
type: Component,
|
|
26567
|
-
args: [{ selector: 'gn-ui-date-range-picker', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
26568
|
-
MatNativeDateModule,
|
|
26569
|
-
MatDatepickerModule,
|
|
26570
|
-
ButtonComponent,
|
|
26571
|
-
NgIconComponent,
|
|
26572
|
-
], providers: [
|
|
26573
|
-
provideIcons({ iconoirCalendar }),
|
|
26574
|
-
provideNgIconsConfig({
|
|
26575
|
-
size: '1.5rem',
|
|
26576
|
-
}),
|
|
26577
|
-
], template: "<span class=\"w-full inline-block relative\">\n <mat-date-range-input [rangePicker]=\"picker\" class=\"gn-ui-text-input\">\n <input\n matStartDate\n placeholder=\"Start date\"\n [value]=\"startDate\"\n (dateInput)=\"startDateChange.emit($event.value)\"\n />\n <input\n matEndDate\n placeholder=\"End date\"\n [value]=\"endDate\"\n (dateInput)=\"endDateChange.emit($event.value)\"\n />\n </mat-date-range-input>\n\n <gn-ui-button\n type=\"light\"\n class=\"absolute inset-y-[var(--side-padding)] right-[var(--side-padding)] z-10\"\n (buttonClick)=\"picker.open()\"\n extraClass=\"h-full\"\n data-cy=\"date-picker-button\"\n >\n <ng-icon name=\"iconoirCalendar\" class=\"text-primary\"></ng-icon>\n </gn-ui-button>\n</span>\n<mat-date-range-picker #picker></mat-date-range-picker>\n", styles: [":host{--gn-ui-button-rounded: 8px;--gn-ui-button-width: 32px;--gn-ui-button-padding: 0;--side-padding: calc(var(--gn-ui-text-input-padding, .6em) - 6px);--text-padding: calc(var(--side-padding) + 40px)}\n"] }]
|
|
26578
|
-
}], propDecorators: { startDate: [{
|
|
26579
|
-
type: Input
|
|
26580
|
-
}], endDate: [{
|
|
26581
|
-
type: Input
|
|
26582
|
-
}], startDateChange: [{
|
|
26583
|
-
type: Output
|
|
26584
|
-
}], endDateChange: [{
|
|
26585
|
-
type: Output
|
|
26586
|
-
}] } });
|
|
26587
|
-
|
|
26588
26697
|
class DateRangeDropdownComponent {
|
|
26589
26698
|
constructor(overlayContainer, cdr) {
|
|
26590
26699
|
this.overlayContainer = overlayContainer;
|
|
@@ -26639,6 +26748,42 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
26639
26748
|
args: ['picker']
|
|
26640
26749
|
}] } });
|
|
26641
26750
|
|
|
26751
|
+
class DateRangePickerComponent {
|
|
26752
|
+
constructor() {
|
|
26753
|
+
this.startDateChange = new EventEmitter();
|
|
26754
|
+
this.endDateChange = new EventEmitter();
|
|
26755
|
+
}
|
|
26756
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DateRangePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
26757
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DateRangePickerComponent, isStandalone: true, selector: "gn-ui-date-range-picker", inputs: { startDate: "startDate", endDate: "endDate" }, outputs: { startDateChange: "startDateChange", endDateChange: "endDateChange" }, providers: [
|
|
26758
|
+
provideIcons({ iconoirCalendar }),
|
|
26759
|
+
provideNgIconsConfig({
|
|
26760
|
+
size: '1.5rem',
|
|
26761
|
+
}),
|
|
26762
|
+
], ngImport: i0, template: "<span class=\"w-full inline-block relative\">\n <mat-date-range-input [rangePicker]=\"picker\" class=\"gn-ui-text-input\">\n <input\n matStartDate\n placeholder=\"Start date\"\n [value]=\"startDate\"\n (dateInput)=\"startDateChange.emit($event.value)\"\n />\n <input\n matEndDate\n placeholder=\"End date\"\n [value]=\"endDate\"\n (dateInput)=\"endDateChange.emit($event.value)\"\n />\n </mat-date-range-input>\n\n <gn-ui-button\n type=\"light\"\n class=\"absolute inset-y-[var(--side-padding)] right-[var(--side-padding)] z-10\"\n (buttonClick)=\"picker.open()\"\n extraClass=\"h-full\"\n data-cy=\"date-picker-button\"\n >\n <ng-icon name=\"iconoirCalendar\" class=\"text-primary\"></ng-icon>\n </gn-ui-button>\n</span>\n<mat-date-range-picker #picker></mat-date-range-picker>\n", styles: [":host{--gn-ui-button-rounded: 8px;--gn-ui-button-width: 32px;--gn-ui-button-padding: 0;--side-padding: calc(var(--gn-ui-text-input-padding, .6em) - 6px);--text-padding: calc(var(--side-padding) + 40px)}\n"], dependencies: [{ kind: "ngmodule", type: MatNativeDateModule }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i1$8.MatDateRangeInput, selector: "mat-date-range-input", inputs: ["rangePicker", "required", "dateFilter", "min", "max", "disabled", "separator", "comparisonStart", "comparisonEnd"], exportAs: ["matDateRangeInput"] }, { kind: "directive", type: i1$8.MatStartDate, selector: "input[matStartDate]", outputs: ["dateChange", "dateInput"] }, { kind: "directive", type: i1$8.MatEndDate, selector: "input[matEndDate]", outputs: ["dateChange", "dateInput"] }, { kind: "component", type: i1$8.MatDateRangePicker, selector: "mat-date-range-picker", exportAs: ["matDateRangePicker"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
26763
|
+
}
|
|
26764
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DateRangePickerComponent, decorators: [{
|
|
26765
|
+
type: Component,
|
|
26766
|
+
args: [{ selector: 'gn-ui-date-range-picker', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
26767
|
+
MatNativeDateModule,
|
|
26768
|
+
MatDatepickerModule,
|
|
26769
|
+
ButtonComponent,
|
|
26770
|
+
NgIconComponent,
|
|
26771
|
+
], providers: [
|
|
26772
|
+
provideIcons({ iconoirCalendar }),
|
|
26773
|
+
provideNgIconsConfig({
|
|
26774
|
+
size: '1.5rem',
|
|
26775
|
+
}),
|
|
26776
|
+
], template: "<span class=\"w-full inline-block relative\">\n <mat-date-range-input [rangePicker]=\"picker\" class=\"gn-ui-text-input\">\n <input\n matStartDate\n placeholder=\"Start date\"\n [value]=\"startDate\"\n (dateInput)=\"startDateChange.emit($event.value)\"\n />\n <input\n matEndDate\n placeholder=\"End date\"\n [value]=\"endDate\"\n (dateInput)=\"endDateChange.emit($event.value)\"\n />\n </mat-date-range-input>\n\n <gn-ui-button\n type=\"light\"\n class=\"absolute inset-y-[var(--side-padding)] right-[var(--side-padding)] z-10\"\n (buttonClick)=\"picker.open()\"\n extraClass=\"h-full\"\n data-cy=\"date-picker-button\"\n >\n <ng-icon name=\"iconoirCalendar\" class=\"text-primary\"></ng-icon>\n </gn-ui-button>\n</span>\n<mat-date-range-picker #picker></mat-date-range-picker>\n", styles: [":host{--gn-ui-button-rounded: 8px;--gn-ui-button-width: 32px;--gn-ui-button-padding: 0;--side-padding: calc(var(--gn-ui-text-input-padding, .6em) - 6px);--text-padding: calc(var(--side-padding) + 40px)}\n"] }]
|
|
26777
|
+
}], propDecorators: { startDate: [{
|
|
26778
|
+
type: Input
|
|
26779
|
+
}], endDate: [{
|
|
26780
|
+
type: Input
|
|
26781
|
+
}], startDateChange: [{
|
|
26782
|
+
type: Output
|
|
26783
|
+
}], endDateChange: [{
|
|
26784
|
+
type: Output
|
|
26785
|
+
}] } });
|
|
26786
|
+
|
|
26642
26787
|
const placeholder = 'dropFile';
|
|
26643
26788
|
marker('dropFile');
|
|
26644
26789
|
class DragAndDropFileInputComponent {
|
|
@@ -27088,221 +27233,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
27088
27233
|
type: Output
|
|
27089
27234
|
}] } });
|
|
27090
27235
|
|
|
27091
|
-
class NavigationButtonComponent {
|
|
27092
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NavigationButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27093
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NavigationButtonComponent, isStandalone: true, selector: "gn-ui-navigation-button", inputs: { label: "label", icon: "icon" }, ngImport: i0, template: "<button\n class=\"group flex items-center justify-center gap-1 backdrop-blur p-1 bg-primary-opacity-30 rounded content-center\"\n>\n <ng-icon [name]=\"icon\" class=\"align-middle w-[18px]\"></ng-icon>\n <span\n class=\"mx-2 mt-0.5 text-[16px] tracking-widest content-center opacity-75\"\n >{{ label.toUpperCase() }}</span\n >\n</button>\n", styles: ["button{color:var(--navigation-button-color, --color-background)}\n"], dependencies: [{ kind: "component", type: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
27094
|
-
}
|
|
27095
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NavigationButtonComponent, decorators: [{
|
|
27096
|
-
type: Component,
|
|
27097
|
-
args: [{ selector: 'gn-ui-navigation-button', changeDetection: ChangeDetectionStrategy.OnPush, imports: [NgIcon], standalone: true, template: "<button\n class=\"group flex items-center justify-center gap-1 backdrop-blur p-1 bg-primary-opacity-30 rounded content-center\"\n>\n <ng-icon [name]=\"icon\" class=\"align-middle w-[18px]\"></ng-icon>\n <span\n class=\"mx-2 mt-0.5 text-[16px] tracking-widest content-center opacity-75\"\n >{{ label.toUpperCase() }}</span\n >\n</button>\n", styles: ["button{color:var(--navigation-button-color, --color-background)}\n"] }]
|
|
27098
|
-
}], propDecorators: { label: [{
|
|
27099
|
-
type: Input
|
|
27100
|
-
}], icon: [{
|
|
27101
|
-
type: Input
|
|
27102
|
-
}] } });
|
|
27103
|
-
|
|
27104
|
-
class SearchInputComponent {
|
|
27105
|
-
constructor() {
|
|
27106
|
-
this.value = '';
|
|
27107
|
-
this.placeholder = '';
|
|
27108
|
-
this.rawChange = new Subject();
|
|
27109
|
-
this.valueChange = this.rawChange.pipe(distinctUntilChanged$1());
|
|
27110
|
-
}
|
|
27111
|
-
handleChange($event) {
|
|
27112
|
-
const value = $event.target.value;
|
|
27113
|
-
this.rawChange.next(value);
|
|
27114
|
-
}
|
|
27115
|
-
clear() {
|
|
27116
|
-
this.value = null;
|
|
27117
|
-
this.rawChange.next(null);
|
|
27118
|
-
}
|
|
27119
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SearchInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27120
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SearchInputComponent, isStandalone: true, selector: "gn-ui-search-input", inputs: { value: "value", placeholder: "placeholder" }, outputs: { valueChange: "valueChange" }, providers: [
|
|
27121
|
-
provideIcons({ matSearch, matClose }),
|
|
27122
|
-
provideNgIconsConfig({
|
|
27123
|
-
size: '1.5em',
|
|
27124
|
-
}),
|
|
27125
|
-
], ngImport: i0, template: "<div class=\"h-full relative text-gray-300\">\n <input\n #input\n class=\"peer h-full appearance-none border border-gray-300 rounded w-full p-2 pl-10 text-gray-700 leading-tight hover:border-primary focus:text-primary focus:outline-none focus:border-primary focus:border-2\"\n type=\"text\"\n [value]=\"value\"\n [placeholder]=\"placeholder\"\n (change)=\"handleChange($event)\"\n (input)=\"handleChange($event)\"\n />\n <div\n class=\"absolute inset-y-0 left-0 pl-2.5 flex items-center peer-hover:text-primary peer-focus:text-primary\"\n >\n <ng-icon name=\"matSearch\"></ng-icon>\n </div>\n <button\n *ngIf=\"rawChange | async\"\n type=\"button\"\n class=\"text-primary-lightest hover:text-primary absolute transition-all duration-100 inset-y-0 right-0 pr-2.5\"\n aria-label=\"Clear\"\n (click)=\"clear()\"\n >\n <ng-icon name=\"matClose\" class=\"align-middle\"></ng-icon>\n </button>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
27126
|
-
}
|
|
27127
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SearchInputComponent, decorators: [{
|
|
27128
|
-
type: Component,
|
|
27129
|
-
args: [{ selector: 'gn-ui-search-input', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, NgIconComponent], providers: [
|
|
27130
|
-
provideIcons({ matSearch, matClose }),
|
|
27131
|
-
provideNgIconsConfig({
|
|
27132
|
-
size: '1.5em',
|
|
27133
|
-
}),
|
|
27134
|
-
], template: "<div class=\"h-full relative text-gray-300\">\n <input\n #input\n class=\"peer h-full appearance-none border border-gray-300 rounded w-full p-2 pl-10 text-gray-700 leading-tight hover:border-primary focus:text-primary focus:outline-none focus:border-primary focus:border-2\"\n type=\"text\"\n [value]=\"value\"\n [placeholder]=\"placeholder\"\n (change)=\"handleChange($event)\"\n (input)=\"handleChange($event)\"\n />\n <div\n class=\"absolute inset-y-0 left-0 pl-2.5 flex items-center peer-hover:text-primary peer-focus:text-primary\"\n >\n <ng-icon name=\"matSearch\"></ng-icon>\n </div>\n <button\n *ngIf=\"rawChange | async\"\n type=\"button\"\n class=\"text-primary-lightest hover:text-primary absolute transition-all duration-100 inset-y-0 right-0 pr-2.5\"\n aria-label=\"Clear\"\n (click)=\"clear()\"\n >\n <ng-icon name=\"matClose\" class=\"align-middle\"></ng-icon>\n </button>\n</div>\n" }]
|
|
27135
|
-
}], propDecorators: { value: [{
|
|
27136
|
-
type: Input
|
|
27137
|
-
}], placeholder: [{
|
|
27138
|
-
type: Input
|
|
27139
|
-
}], valueChange: [{
|
|
27140
|
-
type: Output
|
|
27141
|
-
}] } });
|
|
27142
|
-
|
|
27143
|
-
class StarToggleComponent {
|
|
27144
|
-
constructor() {
|
|
27145
|
-
this.disabled = false;
|
|
27146
|
-
this.newValue = new EventEmitter();
|
|
27147
|
-
}
|
|
27148
|
-
toggle(event) {
|
|
27149
|
-
if (!this.disabled) {
|
|
27150
|
-
this.toggled = !this.toggled;
|
|
27151
|
-
if (this.toggled) {
|
|
27152
|
-
const anim = this.overlay.nativeElement.getAnimations()[0];
|
|
27153
|
-
anim.cancel();
|
|
27154
|
-
anim.play();
|
|
27155
|
-
}
|
|
27156
|
-
this.newValue.emit(this.toggled);
|
|
27157
|
-
}
|
|
27158
|
-
propagateToDocumentOnly(event);
|
|
27159
|
-
event.preventDefault();
|
|
27160
|
-
}
|
|
27161
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StarToggleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27162
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: StarToggleComponent, isStandalone: true, selector: "gn-ui-star-toggle", inputs: { toggled: "toggled", disabled: "disabled" }, outputs: { newValue: "newValue" }, viewQueries: [{ propertyName: "overlay", first: true, predicate: ["starOverlay"], descendants: true }], ngImport: i0, template: "<div class=\"inline-block relative align-middle\" style=\"line-height: 0.7em\">\n <button\n type=\"button\"\n class=\"-m-[8px] p-[8px]\"\n (click)=\"toggle($event)\"\n [ngClass]=\"{\n enabled: toggled,\n 'disabled opacity-45': !toggled,\n 'transition hover:scale-125 will-change-transform': !disabled,\n 'cursor-default': disabled,\n }\"\n >\n <ng-icon [name]=\"toggled ? 'matStar' : 'matStarBorder'\"></ng-icon>\n </button>\n <svg\n #starOverlay\n class=\"star-toggle-overlay\"\n width=\"40px\"\n height=\"40px\"\n viewBox=\"-15 -15 30 30\"\n >\n <g>\n <path d=\"M 0,13.229167 V 0\" />\n <path d=\"M -12.484186,4.0880377 0,0\" />\n <path d=\"M -7.6784102,-10.70262 0,0\" />\n <path d=\"M 7.8734079,-10.70262 0,0\" />\n <path d=\"M 12.679184,4.0880376 0,0\" />\n </g>\n </svg>\n</div>\n", styles: ["button.enabled{color:var(--star-toggle-enabled-color, var(--color-secondary))}button.disabled{color:var(--star-toggle-disabled-color, var(--color-primary))}.star-filled{font-variation-settings:\"FILL\" 1}.star-toggle-overlay{stroke:var(--color-secondary);stroke-width:3.5px;stroke-linecap:round;position:absolute;top:50%;left:50%;width:2.5em;height:2.5em;transform:translate(-50%,-50%);pointer-events:none;stroke-dasharray:5 20;stroke-dashoffset:-15;animation:overlay-dash .8s cubic-bezier(.16,.66,.44,.96) forwards;animation-play-state:paused}@keyframes overlay-dash{to{stroke-dashoffset:7}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }], viewProviders: [provideIcons({ matStar, matStarBorder })], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
27163
|
-
}
|
|
27164
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StarToggleComponent, decorators: [{
|
|
27165
|
-
type: Component,
|
|
27166
|
-
args: [{ selector: 'gn-ui-star-toggle', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, NgIcon], viewProviders: [provideIcons({ matStar, matStarBorder })], template: "<div class=\"inline-block relative align-middle\" style=\"line-height: 0.7em\">\n <button\n type=\"button\"\n class=\"-m-[8px] p-[8px]\"\n (click)=\"toggle($event)\"\n [ngClass]=\"{\n enabled: toggled,\n 'disabled opacity-45': !toggled,\n 'transition hover:scale-125 will-change-transform': !disabled,\n 'cursor-default': disabled,\n }\"\n >\n <ng-icon [name]=\"toggled ? 'matStar' : 'matStarBorder'\"></ng-icon>\n </button>\n <svg\n #starOverlay\n class=\"star-toggle-overlay\"\n width=\"40px\"\n height=\"40px\"\n viewBox=\"-15 -15 30 30\"\n >\n <g>\n <path d=\"M 0,13.229167 V 0\" />\n <path d=\"M -12.484186,4.0880377 0,0\" />\n <path d=\"M -7.6784102,-10.70262 0,0\" />\n <path d=\"M 7.8734079,-10.70262 0,0\" />\n <path d=\"M 12.679184,4.0880376 0,0\" />\n </g>\n </svg>\n</div>\n", styles: ["button.enabled{color:var(--star-toggle-enabled-color, var(--color-secondary))}button.disabled{color:var(--star-toggle-disabled-color, var(--color-primary))}.star-filled{font-variation-settings:\"FILL\" 1}.star-toggle-overlay{stroke:var(--color-secondary);stroke-width:3.5px;stroke-linecap:round;position:absolute;top:50%;left:50%;width:2.5em;height:2.5em;transform:translate(-50%,-50%);pointer-events:none;stroke-dasharray:5 20;stroke-dashoffset:-15;animation:overlay-dash .8s cubic-bezier(.16,.66,.44,.96) forwards;animation-play-state:paused}@keyframes overlay-dash{to{stroke-dashoffset:7}}\n"] }]
|
|
27167
|
-
}], propDecorators: { toggled: [{
|
|
27168
|
-
type: Input
|
|
27169
|
-
}], disabled: [{
|
|
27170
|
-
type: Input
|
|
27171
|
-
}], newValue: [{
|
|
27172
|
-
type: Output
|
|
27173
|
-
}], overlay: [{
|
|
27174
|
-
type: ViewChild,
|
|
27175
|
-
args: ['starOverlay']
|
|
27176
|
-
}] } });
|
|
27177
|
-
|
|
27178
|
-
class TextAreaComponent {
|
|
27179
|
-
constructor() {
|
|
27180
|
-
this.value = '';
|
|
27181
|
-
this.disabled = false;
|
|
27182
|
-
this.extraClass = '';
|
|
27183
|
-
this.placeholder = '';
|
|
27184
|
-
this.required = false;
|
|
27185
|
-
this.rawChange = new Subject();
|
|
27186
|
-
this.valueChange = this.rawChange.pipe(distinctUntilChanged());
|
|
27187
|
-
}
|
|
27188
|
-
ngAfterViewInit() {
|
|
27189
|
-
this.checkRequired(this.input.nativeElement.value);
|
|
27190
|
-
}
|
|
27191
|
-
checkRequired(value) {
|
|
27192
|
-
this.input.nativeElement.classList.toggle('invalid', this.required && value === '');
|
|
27193
|
-
}
|
|
27194
|
-
handleChange($event) {
|
|
27195
|
-
const value = $event.target.value;
|
|
27196
|
-
this.checkRequired(value);
|
|
27197
|
-
this.rawChange.next(value);
|
|
27198
|
-
}
|
|
27199
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TextAreaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27200
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TextAreaComponent, isStandalone: true, selector: "gn-ui-text-area", inputs: { value: "value", disabled: "disabled", extraClass: "extraClass", placeholder: "placeholder", required: "required" }, outputs: { valueChange: "valueChange" }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], ngImport: i0, template: "<div class=\"h-full flex\">\n <textarea\n #input\n name=\"textArea\"\n class=\"gn-ui-text-input leading-tight\"\n [ngClass]=\"extraClass\"\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder\"\n [value]=\"value ?? ''\"\n (change)=\"handleChange($event)\"\n (input)=\"handleChange($event)\"\n [attr.required]=\"required || null\"\n ></textarea>\n</div>\n", styles: [".invalid{border-color:var(--color-secondary)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
|
|
27201
|
-
}
|
|
27202
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TextAreaComponent, decorators: [{
|
|
27203
|
-
type: Component,
|
|
27204
|
-
args: [{ selector: 'gn-ui-text-area', standalone: true, imports: [CommonModule], template: "<div class=\"h-full flex\">\n <textarea\n #input\n name=\"textArea\"\n class=\"gn-ui-text-input leading-tight\"\n [ngClass]=\"extraClass\"\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder\"\n [value]=\"value ?? ''\"\n (change)=\"handleChange($event)\"\n (input)=\"handleChange($event)\"\n [attr.required]=\"required || null\"\n ></textarea>\n</div>\n", styles: [".invalid{border-color:var(--color-secondary)}\n"] }]
|
|
27205
|
-
}], propDecorators: { value: [{
|
|
27206
|
-
type: Input
|
|
27207
|
-
}], disabled: [{
|
|
27208
|
-
type: Input
|
|
27209
|
-
}], extraClass: [{
|
|
27210
|
-
type: Input
|
|
27211
|
-
}], placeholder: [{
|
|
27212
|
-
type: Input
|
|
27213
|
-
}], required: [{
|
|
27214
|
-
type: Input
|
|
27215
|
-
}], valueChange: [{
|
|
27216
|
-
type: Output
|
|
27217
|
-
}], input: [{
|
|
27218
|
-
type: ViewChild,
|
|
27219
|
-
args: ['input']
|
|
27220
|
-
}] } });
|
|
27221
|
-
|
|
27222
|
-
class TextInputComponent {
|
|
27223
|
-
constructor() {
|
|
27224
|
-
this.value = '';
|
|
27225
|
-
this.extraClass = '';
|
|
27226
|
-
this.required = false;
|
|
27227
|
-
this.rawChange = new Subject();
|
|
27228
|
-
this.valueChange = this.rawChange.pipe(distinctUntilChanged());
|
|
27229
|
-
}
|
|
27230
|
-
ngAfterViewInit() {
|
|
27231
|
-
this.checkRequired(this.input.nativeElement.value);
|
|
27232
|
-
}
|
|
27233
|
-
checkRequired(value) {
|
|
27234
|
-
this.input.nativeElement.classList.toggle('invalid', this.required && value === '');
|
|
27235
|
-
}
|
|
27236
|
-
handleChange($event) {
|
|
27237
|
-
const value = $event.target.value;
|
|
27238
|
-
this.checkRequired(value);
|
|
27239
|
-
this.rawChange.next(value);
|
|
27240
|
-
}
|
|
27241
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TextInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27242
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TextInputComponent, isStandalone: true, selector: "gn-ui-text-input", inputs: { value: "value", extraClass: "extraClass", placeholder: "placeholder", required: "required", disabled: "disabled" }, outputs: { valueChange: "valueChange" }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], ngImport: i0, template: "<input\n #input\n class=\"gn-ui-text-input\"\n [ngClass]=\"extraClass\"\n type=\"text\"\n [value]=\"value\"\n (change)=\"handleChange($event)\"\n (input)=\"handleChange($event)\"\n [placeholder]=\"placeholder\"\n [attr.aria-label]=\"placeholder\"\n [attr.required]=\"required || null\"\n [disabled]=\"disabled\"\n/>\n", styles: [".invalid{border-color:var(--color-secondary)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
|
|
27243
|
-
}
|
|
27244
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TextInputComponent, decorators: [{
|
|
27245
|
-
type: Component,
|
|
27246
|
-
args: [{ selector: 'gn-ui-text-input', standalone: true, imports: [CommonModule], template: "<input\n #input\n class=\"gn-ui-text-input\"\n [ngClass]=\"extraClass\"\n type=\"text\"\n [value]=\"value\"\n (change)=\"handleChange($event)\"\n (input)=\"handleChange($event)\"\n [placeholder]=\"placeholder\"\n [attr.aria-label]=\"placeholder\"\n [attr.required]=\"required || null\"\n [disabled]=\"disabled\"\n/>\n", styles: [".invalid{border-color:var(--color-secondary)}\n"] }]
|
|
27247
|
-
}], propDecorators: { value: [{
|
|
27248
|
-
type: Input
|
|
27249
|
-
}], extraClass: [{
|
|
27250
|
-
type: Input
|
|
27251
|
-
}], placeholder: [{
|
|
27252
|
-
type: Input
|
|
27253
|
-
}], required: [{
|
|
27254
|
-
type: Input
|
|
27255
|
-
}], disabled: [{
|
|
27256
|
-
type: Input
|
|
27257
|
-
}], valueChange: [{
|
|
27258
|
-
type: Output
|
|
27259
|
-
}], input: [{
|
|
27260
|
-
type: ViewChild,
|
|
27261
|
-
args: ['input']
|
|
27262
|
-
}] } });
|
|
27263
|
-
|
|
27264
|
-
class ViewportIntersectorComponent {
|
|
27265
|
-
constructor(vcRef) {
|
|
27266
|
-
this.vcRef = vcRef;
|
|
27267
|
-
this.isInViewport = new EventEmitter();
|
|
27268
|
-
this.entersViewport = this.isInViewport.pipe(filter((inViewport) => inViewport), map$1(() => undefined));
|
|
27269
|
-
this.exitsViewport = this.isInViewport.pipe(filter((inViewport) => !inViewport), map$1(() => undefined));
|
|
27270
|
-
}
|
|
27271
|
-
ngOnInit() {
|
|
27272
|
-
const elToObserve = this.vcRef.element.nativeElement;
|
|
27273
|
-
this.observeInputElement(elToObserve);
|
|
27274
|
-
}
|
|
27275
|
-
ngOnDestroy() {
|
|
27276
|
-
const elToObserve = this.vcRef.element.nativeElement;
|
|
27277
|
-
this.unObserveInputElement(elToObserve);
|
|
27278
|
-
}
|
|
27279
|
-
observeInputElement(elToObserve) {
|
|
27280
|
-
if (!this.observer) {
|
|
27281
|
-
this.observer = new IntersectionObserver((entries) => {
|
|
27282
|
-
entries.forEach((entry) => {
|
|
27283
|
-
this.isInViewport.emit(entry.isIntersecting);
|
|
27284
|
-
});
|
|
27285
|
-
}, { root: null, threshold: 0 });
|
|
27286
|
-
}
|
|
27287
|
-
this.observer.observe(elToObserve);
|
|
27288
|
-
}
|
|
27289
|
-
unObserveInputElement(elToObserve) {
|
|
27290
|
-
this.observer?.unobserve(elToObserve);
|
|
27291
|
-
}
|
|
27292
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ViewportIntersectorComponent, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27293
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ViewportIntersectorComponent, selector: "gn-ui-viewport-intersector", outputs: { isInViewport: "isInViewport", entersViewport: "entersViewport", exitsViewport: "exitsViewport" }, ngImport: i0, template: "<div class=\"w-full h-full\"></div>\n", styles: [""] }); }
|
|
27294
|
-
}
|
|
27295
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ViewportIntersectorComponent, decorators: [{
|
|
27296
|
-
type: Component,
|
|
27297
|
-
args: [{ selector: 'gn-ui-viewport-intersector', template: "<div class=\"w-full h-full\"></div>\n" }]
|
|
27298
|
-
}], ctorParameters: () => [{ type: i0.ViewContainerRef }], propDecorators: { isInViewport: [{
|
|
27299
|
-
type: Output
|
|
27300
|
-
}], entersViewport: [{
|
|
27301
|
-
type: Output
|
|
27302
|
-
}], exitsViewport: [{
|
|
27303
|
-
type: Output
|
|
27304
|
-
}] } });
|
|
27305
|
-
|
|
27306
27236
|
class FilesDropDirective {
|
|
27307
27237
|
constructor() {
|
|
27308
27238
|
this.dragFilesOver = new EventEmitter();
|
|
@@ -27376,7 +27306,7 @@ class UrlInputComponent {
|
|
|
27376
27306
|
this.cd = cd;
|
|
27377
27307
|
this.extraClass = '';
|
|
27378
27308
|
this.placeholder = 'https://';
|
|
27379
|
-
this.
|
|
27309
|
+
this.showValidateButton = true;
|
|
27380
27310
|
/**
|
|
27381
27311
|
* This will emit null if the field is emptied
|
|
27382
27312
|
*/
|
|
@@ -27410,12 +27340,12 @@ class UrlInputComponent {
|
|
|
27410
27340
|
}
|
|
27411
27341
|
}
|
|
27412
27342
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UrlInputComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27413
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: UrlInputComponent, isStandalone: true, selector: "gn-ui-url-input", inputs: { value: "value", extraClass: "extraClass", placeholder: "placeholder", disabled: "disabled",
|
|
27343
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: UrlInputComponent, isStandalone: true, selector: "gn-ui-url-input", inputs: { value: "value", extraClass: "extraClass", placeholder: "placeholder", disabled: "disabled", showValidateButton: "showValidateButton" }, outputs: { valueChange: "valueChange", uploadClick: "uploadClick" }, providers: [
|
|
27414
27344
|
provideIcons({ iconoirLink, iconoirArrowUp }),
|
|
27415
27345
|
provideNgIconsConfig({
|
|
27416
27346
|
size: '1.5em',
|
|
27417
27347
|
}),
|
|
27418
|
-
], ngImport: i0, template: "<span class=\"w-full inline-block relative\">\n <input\n #input\n class=\"gn-ui-text-input px-[var(--text-padding)]\"\n [ngClass]=\"extraClass\"\n type=\"url\"\n [value]=\"inputValue\"\n (input)=\"handleInput($event)\"\n (keydown.enter)=\"handleUpload(input)\"\n [placeholder]=\"placeholder\"\n [attr.aria-label]=\"placeholder\"\n [disabled]=\"disabled\"\n />\n <div\n class=\"absolute inset-y-[var(--side-padding)] left-[var(--2x-side-padding)] grid justify-center items-center pointer-events-none\"\n [ngClass]=\"{\n 'text-primary': !disabled,\n 'text-primary-lightest': disabled,\n }\"\n >\n <ng-icon name=\"iconoirLink\"></ng-icon>\n </div>\n <gn-ui-button\n *ngIf=\"
|
|
27348
|
+
], ngImport: i0, template: "<span class=\"w-full inline-block relative\">\n <input\n #input\n class=\"gn-ui-text-input gn-ui-url-input px-[var(--text-padding)]\"\n [ngClass]=\"extraClass\"\n type=\"url\"\n [value]=\"inputValue\"\n (input)=\"handleInput($event)\"\n (keydown.enter)=\"handleUpload(input)\"\n [placeholder]=\"placeholder\"\n [attr.aria-label]=\"placeholder\"\n [disabled]=\"disabled\"\n />\n <div\n class=\"absolute inset-y-[var(--side-padding)] left-[var(--2x-side-padding)] grid justify-center items-center pointer-events-none\"\n [ngClass]=\"{\n 'text-primary': !disabled,\n 'text-primary-lightest': disabled,\n }\"\n >\n <ng-icon name=\"iconoirLink\"></ng-icon>\n </div>\n <gn-ui-button\n *ngIf=\"showValidateButton\"\n extraClass=\"absolute inset-y-[var(--side-padding)] right-[var(--side-padding)]\"\n type=\"primary\"\n [disabled]=\"disabled || input.value === '' || !isValidUrl(input.value)\"\n (buttonClick)=\"handleUpload(input)\"\n >\n <ng-content>\n <ng-icon name=\"iconoirArrowUp\"></ng-icon>\n </ng-content>\n </gn-ui-button>\n</span>\n", styles: [":host{--gn-ui-button-rounded: 8px;--gn-ui-button-width: 32px;--gn-ui-button-padding: 0;--side-padding: calc(var(--gn-ui-text-input-padding, .6rem) - 6px);--2x-side-padding: calc(var(--side-padding) * 2);--text-padding: calc(var(--side-padding) + 40px)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
27419
27349
|
}
|
|
27420
27350
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UrlInputComponent, decorators: [{
|
|
27421
27351
|
type: Component,
|
|
@@ -27424,7 +27354,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
27424
27354
|
provideNgIconsConfig({
|
|
27425
27355
|
size: '1.5em',
|
|
27426
27356
|
}),
|
|
27427
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<span class=\"w-full inline-block relative\">\n <input\n #input\n class=\"gn-ui-text-input px-[var(--text-padding)]\"\n [ngClass]=\"extraClass\"\n type=\"url\"\n [value]=\"inputValue\"\n (input)=\"handleInput($event)\"\n (keydown.enter)=\"handleUpload(input)\"\n [placeholder]=\"placeholder\"\n [attr.aria-label]=\"placeholder\"\n [disabled]=\"disabled\"\n />\n <div\n class=\"absolute inset-y-[var(--side-padding)] left-[var(--2x-side-padding)] grid justify-center items-center pointer-events-none\"\n [ngClass]=\"{\n 'text-primary': !disabled,\n 'text-primary-lightest': disabled,\n }\"\n >\n <ng-icon name=\"iconoirLink\"></ng-icon>\n </div>\n <gn-ui-button\n *ngIf=\"
|
|
27357
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<span class=\"w-full inline-block relative\">\n <input\n #input\n class=\"gn-ui-text-input gn-ui-url-input px-[var(--text-padding)]\"\n [ngClass]=\"extraClass\"\n type=\"url\"\n [value]=\"inputValue\"\n (input)=\"handleInput($event)\"\n (keydown.enter)=\"handleUpload(input)\"\n [placeholder]=\"placeholder\"\n [attr.aria-label]=\"placeholder\"\n [disabled]=\"disabled\"\n />\n <div\n class=\"absolute inset-y-[var(--side-padding)] left-[var(--2x-side-padding)] grid justify-center items-center pointer-events-none\"\n [ngClass]=\"{\n 'text-primary': !disabled,\n 'text-primary-lightest': disabled,\n }\"\n >\n <ng-icon name=\"iconoirLink\"></ng-icon>\n </div>\n <gn-ui-button\n *ngIf=\"showValidateButton\"\n extraClass=\"absolute inset-y-[var(--side-padding)] right-[var(--side-padding)]\"\n type=\"primary\"\n [disabled]=\"disabled || input.value === '' || !isValidUrl(input.value)\"\n (buttonClick)=\"handleUpload(input)\"\n >\n <ng-content>\n <ng-icon name=\"iconoirArrowUp\"></ng-icon>\n </ng-content>\n </gn-ui-button>\n</span>\n", styles: [":host{--gn-ui-button-rounded: 8px;--gn-ui-button-width: 32px;--gn-ui-button-padding: 0;--side-padding: calc(var(--gn-ui-text-input-padding, .6rem) - 6px);--2x-side-padding: calc(var(--side-padding) * 2);--text-padding: calc(var(--side-padding) + 40px)}\n"] }]
|
|
27428
27358
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { value: [{
|
|
27429
27359
|
type: Input
|
|
27430
27360
|
}], extraClass: [{
|
|
@@ -27433,7 +27363,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
27433
27363
|
type: Input
|
|
27434
27364
|
}], disabled: [{
|
|
27435
27365
|
type: Input
|
|
27436
|
-
}],
|
|
27366
|
+
}], showValidateButton: [{
|
|
27437
27367
|
type: Input
|
|
27438
27368
|
}], valueChange: [{
|
|
27439
27369
|
type: Output
|
|
@@ -27441,100 +27371,49 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
27441
27371
|
type: Output
|
|
27442
27372
|
}] } });
|
|
27443
27373
|
|
|
27444
|
-
class
|
|
27374
|
+
class FileInputComponent {
|
|
27445
27375
|
get isUploadInProgress() {
|
|
27446
27376
|
return this.uploadProgress !== undefined;
|
|
27447
27377
|
}
|
|
27448
|
-
constructor(
|
|
27449
|
-
this.http = http;
|
|
27378
|
+
constructor(cd) {
|
|
27450
27379
|
this.cd = cd;
|
|
27451
27380
|
this.disabled = false;
|
|
27452
27381
|
this.fileChange = new EventEmitter();
|
|
27453
27382
|
this.urlChange = new EventEmitter();
|
|
27454
27383
|
this.uploadCancel = new EventEmitter();
|
|
27455
|
-
this.delete = new EventEmitter();
|
|
27456
|
-
this.altTextChange = new EventEmitter();
|
|
27457
27384
|
this.dragFilesOver = false;
|
|
27458
|
-
this.showUrlInput = false;
|
|
27459
|
-
this.downloadError = false;
|
|
27460
|
-
this.showAltTextInput = false;
|
|
27461
27385
|
}
|
|
27462
27386
|
getPrimaryText() {
|
|
27463
|
-
if (this.uploadError) {
|
|
27464
|
-
return marker('input.image.uploadErrorLabel');
|
|
27465
|
-
}
|
|
27466
27387
|
if (this.uploadProgress) {
|
|
27467
|
-
return marker('input.
|
|
27388
|
+
return marker('input.file.uploadProgressLabel');
|
|
27468
27389
|
}
|
|
27469
|
-
return marker('input.
|
|
27390
|
+
return marker('input.file.selectFileLabel');
|
|
27470
27391
|
}
|
|
27471
27392
|
getSecondaryText() {
|
|
27472
|
-
if (this.uploadError) {
|
|
27473
|
-
return marker('input.image.uploadErrorRetry');
|
|
27474
|
-
}
|
|
27475
27393
|
if (this.uploadProgress) {
|
|
27476
|
-
return marker('input.
|
|
27394
|
+
return marker('input.file.uploadProgressCancel');
|
|
27477
27395
|
}
|
|
27478
|
-
return marker('input.
|
|
27396
|
+
return marker('input.file.dropFileLabel');
|
|
27479
27397
|
}
|
|
27480
27398
|
handleDragFilesOver(dragFilesOver) {
|
|
27481
|
-
|
|
27482
|
-
|
|
27483
|
-
this.cd.markForCheck();
|
|
27484
|
-
}
|
|
27399
|
+
this.dragFilesOver = dragFilesOver;
|
|
27400
|
+
this.cd.markForCheck();
|
|
27485
27401
|
}
|
|
27486
27402
|
handleDropFiles(files) {
|
|
27487
|
-
if (
|
|
27488
|
-
|
|
27489
|
-
if (validFiles.length > 0) {
|
|
27490
|
-
this.resizeAndEmit(validFiles[0]);
|
|
27491
|
-
}
|
|
27403
|
+
if (files.length > 0) {
|
|
27404
|
+
this.fileChange.emit(files[0]);
|
|
27492
27405
|
}
|
|
27493
27406
|
}
|
|
27494
27407
|
handleFileInput(event) {
|
|
27495
|
-
|
|
27496
|
-
const validFiles = this.filterTypeImage(inputFiles);
|
|
27497
|
-
if (validFiles.length > 0) {
|
|
27498
|
-
this.resizeAndEmit(validFiles[0]);
|
|
27499
|
-
}
|
|
27500
|
-
}
|
|
27501
|
-
displayUrlInput() {
|
|
27502
|
-
this.uploadCancel.emit();
|
|
27503
|
-
this.showUrlInput = true;
|
|
27408
|
+
this.handleDropFiles(Array.from(event.target.files));
|
|
27504
27409
|
}
|
|
27505
|
-
|
|
27506
|
-
|
|
27507
|
-
const name = url.split('/').pop();
|
|
27508
|
-
try {
|
|
27509
|
-
const response = await firstValueFrom(this.http.head(url, { observe: 'response' }));
|
|
27510
|
-
if (response.headers.get('content-type')?.startsWith('image/') &&
|
|
27511
|
-
parseInt(response.headers.get('content-length')) <
|
|
27512
|
-
megabytesToBytes(this.maxSizeMB)) {
|
|
27513
|
-
this.http.get(url, { responseType: 'blob' }).subscribe({
|
|
27514
|
-
next: (blob) => {
|
|
27515
|
-
this.cd.markForCheck();
|
|
27516
|
-
const file = new File([blob], name);
|
|
27517
|
-
this.fileChange.emit(file);
|
|
27518
|
-
},
|
|
27519
|
-
error: () => {
|
|
27520
|
-
this.downloadError = true;
|
|
27521
|
-
this.cd.markForCheck();
|
|
27522
|
-
this.urlChange.emit(url);
|
|
27523
|
-
},
|
|
27524
|
-
});
|
|
27525
|
-
}
|
|
27526
|
-
}
|
|
27527
|
-
catch {
|
|
27528
|
-
this.downloadError = true;
|
|
27529
|
-
this.cd.markForCheck();
|
|
27410
|
+
handleUrlChange(url) {
|
|
27411
|
+
if (!url)
|
|
27530
27412
|
return;
|
|
27531
|
-
|
|
27413
|
+
this.urlChange.emit(url);
|
|
27532
27414
|
}
|
|
27533
27415
|
handleSecondaryTextClick(event) {
|
|
27534
|
-
if (this.
|
|
27535
|
-
this.handleRetry();
|
|
27536
|
-
}
|
|
27537
|
-
else if (this.uploadProgress) {
|
|
27416
|
+
if (this.uploadProgress) {
|
|
27538
27417
|
this.handleCancel();
|
|
27539
27418
|
event.preventDefault();
|
|
27540
27419
|
}
|
|
@@ -27542,86 +27421,40 @@ class ImageInputComponent {
|
|
|
27542
27421
|
handleCancel() {
|
|
27543
27422
|
this.uploadCancel.emit();
|
|
27544
27423
|
}
|
|
27545
|
-
|
|
27546
|
-
|
|
27547
|
-
case 'file':
|
|
27548
|
-
this.fileChange.emit(this.lastUploadContent);
|
|
27549
|
-
break;
|
|
27550
|
-
case 'url':
|
|
27551
|
-
this.urlChange.emit(this.lastUploadContent);
|
|
27552
|
-
break;
|
|
27553
|
-
}
|
|
27554
|
-
}
|
|
27555
|
-
handleDelete() {
|
|
27556
|
-
this.delete.emit();
|
|
27557
|
-
}
|
|
27558
|
-
toggleAltTextInput() {
|
|
27559
|
-
this.showAltTextInput = !this.showAltTextInput;
|
|
27560
|
-
}
|
|
27561
|
-
handleAltTextChange(altText) {
|
|
27562
|
-
this.altTextChange.emit(altText);
|
|
27563
|
-
}
|
|
27564
|
-
filterTypeImage(files) {
|
|
27565
|
-
return files.filter((file) => {
|
|
27566
|
-
return file.type.startsWith('image/');
|
|
27567
|
-
});
|
|
27568
|
-
}
|
|
27569
|
-
resizeAndEmit(imageToResize) {
|
|
27570
|
-
const maxSizeBytes = megabytesToBytes(this.maxSizeMB);
|
|
27571
|
-
downgradeImage(imageToResize, maxSizeBytes).then((resizedImage) => {
|
|
27572
|
-
const fileToEmit = new File([resizedImage], imageToResize.name);
|
|
27573
|
-
this.fileChange.emit(fileToEmit);
|
|
27574
|
-
});
|
|
27575
|
-
}
|
|
27576
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ImageInputComponent, deps: [{ token: i1.HttpClient }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27577
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ImageInputComponent, isStandalone: true, selector: "gn-ui-image-input", inputs: { maxSizeMB: "maxSizeMB", previewUrl: "previewUrl", altText: "altText", uploadProgress: "uploadProgress", uploadError: "uploadError", disabled: "disabled" }, outputs: { fileChange: "fileChange", urlChange: "urlChange", uploadCancel: "uploadCancel", delete: "delete", altTextChange: "altTextChange" }, providers: [
|
|
27424
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FileInputComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27425
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FileInputComponent, isStandalone: true, selector: "gn-ui-file-input", inputs: { maxSizeMB: "maxSizeMB", uploadProgress: "uploadProgress", disabled: "disabled" }, outputs: { fileChange: "fileChange", urlChange: "urlChange", uploadCancel: "uploadCancel" }, providers: [
|
|
27578
27426
|
provideIcons({
|
|
27579
|
-
|
|
27427
|
+
iconoirCloudUpload,
|
|
27580
27428
|
iconoirFramePlusIn,
|
|
27581
|
-
iconoirMediaImageXmark,
|
|
27582
|
-
iconoirBin,
|
|
27583
|
-
iconoirPlus,
|
|
27584
|
-
iconoirLink,
|
|
27585
27429
|
}),
|
|
27586
27430
|
provideNgIconsConfig({
|
|
27587
|
-
size: '1.
|
|
27431
|
+
size: '1.5em',
|
|
27588
27432
|
}),
|
|
27589
|
-
], ngImport: i0, template: "<
|
|
27433
|
+
], ngImport: i0, template: "<div class=\"w-full flex flex-col gap-[16px]\">\n <label\n gnUiFilesDrop\n class=\"flex-1 border-2 border-dashed rounded-lg p-6 flex flex-col items-center justify-center gap-4 transition-colors duration-100\"\n [ngClass]=\"{\n 'border-primary-lighter bg-primary-white': dragFilesOver,\n 'border-gray-300': !dragFilesOver,\n 'cursor-pointer hover:border-gray-500': !isUploadInProgress && !disabled,\n 'cursor-not-allowed': disabled,\n }\"\n [attr.tabindex]=\"isUploadInProgress || disabled ? null : 0\"\n (dragFilesOver)=\"handleDragFilesOver($event)\"\n (dropFiles)=\"handleDropFiles($event)\"\n (keydown.enter)=\"fileInput.click()\"\n >\n <input\n #fileInput\n type=\"file\"\n class=\"hidden\"\n (change)=\"handleFileInput($event)\"\n [disabled]=\"isUploadInProgress || disabled\"\n />\n\n <div\n class=\"w-14 h-14 rounded-md bg-gray-50 grid\"\n *ngIf=\"!isUploadInProgress\"\n >\n <ng-icon\n *ngIf=\"!dragFilesOver\"\n class=\"place-self-center text-primary\"\n name=\"iconoirCloudUpload\"\n ></ng-icon>\n <ng-icon\n *ngIf=\"dragFilesOver\"\n class=\"place-self-center text-primary\"\n name=\"iconoirFramePlusIn\"\n ></ng-icon>\n </div>\n <div\n *ngIf=\"isUploadInProgress\"\n class=\"w-14 h-14 grid items-center justify-center relative\"\n >\n <div class=\"text-gray-100 absolute\">\n <mat-progress-spinner\n class=\"place-self-center\"\n [diameter]=\"56\"\n mode=\"determinate\"\n [value]=\"100\"\n ></mat-progress-spinner>\n </div>\n <div class=\"text-primary absolute\">\n <mat-progress-spinner\n class=\"place-self-center\"\n [diameter]=\"56\"\n mode=\"determinate\"\n [value]=\"uploadProgress\"\n ></mat-progress-spinner>\n </div>\n <span class=\"text-sm text-main font-bold\">{{ uploadProgress }}%</span>\n </div>\n <div class=\"flex flex-col items-center gap-1\">\n <p class=\"font-medium\">\n {{ getPrimaryText() | translate: { sizeMB: maxSizeMB.toFixed(0) } }}\n </p>\n <p\n class=\"text-sm\"\n [class]=\"\n isUploadInProgress\n ? 'font-bold text-primary cursor-pointer'\n : 'font-medium text-gray-500'\n \"\n (click)=\"handleSecondaryTextClick($event)\"\n >\n {{ getSecondaryText() | translate }}\n </p>\n </div>\n <p class=\"w-full flex flex-row items-center justify-stretch gap-[16px]\">\n <span class=\"border-b border-gray-300 grow\"></span>\n <span class=\"text-sm font-medium text-gray-500 or-input-url\" translate>\n input.file.orInputUrl</span\n >\n <span class=\"border-b border-gray-300 grow\"></span>\n </p>\n <gn-ui-url-input\n class=\"w-full\"\n [disabled]=\"isUploadInProgress || disabled\"\n (uploadClick)=\"handleUrlChange($event)\"\n ></gn-ui-url-input>\n </label>\n</div>\n", styles: [":host{--gn-ui-button-padding: 8px 8px;--gn-ui-button-rounded: 8px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: FilesDropDirective, selector: "[gnUiFilesDrop]", outputs: ["dragFilesOver", "dropFiles"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i1$5.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: UrlInputComponent, selector: "gn-ui-url-input", inputs: ["value", "extraClass", "placeholder", "disabled", "showValidateButton"], outputs: ["valueChange", "uploadClick"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
27590
27434
|
}
|
|
27591
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type:
|
|
27435
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FileInputComponent, decorators: [{
|
|
27592
27436
|
type: Component,
|
|
27593
|
-
args: [{ selector: 'gn-ui-
|
|
27437
|
+
args: [{ selector: 'gn-ui-file-input', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
27594
27438
|
CommonModule,
|
|
27595
27439
|
ButtonComponent,
|
|
27596
27440
|
FilesDropDirective,
|
|
27597
27441
|
MatProgressSpinnerModule,
|
|
27598
27442
|
TranslateModule,
|
|
27599
27443
|
UrlInputComponent,
|
|
27600
|
-
TextInputComponent,
|
|
27601
27444
|
NgIconComponent,
|
|
27602
27445
|
], providers: [
|
|
27603
27446
|
provideIcons({
|
|
27604
|
-
|
|
27447
|
+
iconoirCloudUpload,
|
|
27605
27448
|
iconoirFramePlusIn,
|
|
27606
|
-
iconoirMediaImageXmark,
|
|
27607
|
-
iconoirBin,
|
|
27608
|
-
iconoirPlus,
|
|
27609
|
-
iconoirLink,
|
|
27610
27449
|
}),
|
|
27611
27450
|
provideNgIconsConfig({
|
|
27612
|
-
size: '1.
|
|
27451
|
+
size: '1.5em',
|
|
27613
27452
|
}),
|
|
27614
|
-
], template: "<
|
|
27615
|
-
}], ctorParameters: () => [{ type:
|
|
27616
|
-
type: Input
|
|
27617
|
-
}], previewUrl: [{
|
|
27618
|
-
type: Input
|
|
27619
|
-
}], altText: [{
|
|
27453
|
+
], template: "<div class=\"w-full flex flex-col gap-[16px]\">\n <label\n gnUiFilesDrop\n class=\"flex-1 border-2 border-dashed rounded-lg p-6 flex flex-col items-center justify-center gap-4 transition-colors duration-100\"\n [ngClass]=\"{\n 'border-primary-lighter bg-primary-white': dragFilesOver,\n 'border-gray-300': !dragFilesOver,\n 'cursor-pointer hover:border-gray-500': !isUploadInProgress && !disabled,\n 'cursor-not-allowed': disabled,\n }\"\n [attr.tabindex]=\"isUploadInProgress || disabled ? null : 0\"\n (dragFilesOver)=\"handleDragFilesOver($event)\"\n (dropFiles)=\"handleDropFiles($event)\"\n (keydown.enter)=\"fileInput.click()\"\n >\n <input\n #fileInput\n type=\"file\"\n class=\"hidden\"\n (change)=\"handleFileInput($event)\"\n [disabled]=\"isUploadInProgress || disabled\"\n />\n\n <div\n class=\"w-14 h-14 rounded-md bg-gray-50 grid\"\n *ngIf=\"!isUploadInProgress\"\n >\n <ng-icon\n *ngIf=\"!dragFilesOver\"\n class=\"place-self-center text-primary\"\n name=\"iconoirCloudUpload\"\n ></ng-icon>\n <ng-icon\n *ngIf=\"dragFilesOver\"\n class=\"place-self-center text-primary\"\n name=\"iconoirFramePlusIn\"\n ></ng-icon>\n </div>\n <div\n *ngIf=\"isUploadInProgress\"\n class=\"w-14 h-14 grid items-center justify-center relative\"\n >\n <div class=\"text-gray-100 absolute\">\n <mat-progress-spinner\n class=\"place-self-center\"\n [diameter]=\"56\"\n mode=\"determinate\"\n [value]=\"100\"\n ></mat-progress-spinner>\n </div>\n <div class=\"text-primary absolute\">\n <mat-progress-spinner\n class=\"place-self-center\"\n [diameter]=\"56\"\n mode=\"determinate\"\n [value]=\"uploadProgress\"\n ></mat-progress-spinner>\n </div>\n <span class=\"text-sm text-main font-bold\">{{ uploadProgress }}%</span>\n </div>\n <div class=\"flex flex-col items-center gap-1\">\n <p class=\"font-medium\">\n {{ getPrimaryText() | translate: { sizeMB: maxSizeMB.toFixed(0) } }}\n </p>\n <p\n class=\"text-sm\"\n [class]=\"\n isUploadInProgress\n ? 'font-bold text-primary cursor-pointer'\n : 'font-medium text-gray-500'\n \"\n (click)=\"handleSecondaryTextClick($event)\"\n >\n {{ getSecondaryText() | translate }}\n </p>\n </div>\n <p class=\"w-full flex flex-row items-center justify-stretch gap-[16px]\">\n <span class=\"border-b border-gray-300 grow\"></span>\n <span class=\"text-sm font-medium text-gray-500 or-input-url\" translate>\n input.file.orInputUrl</span\n >\n <span class=\"border-b border-gray-300 grow\"></span>\n </p>\n <gn-ui-url-input\n class=\"w-full\"\n [disabled]=\"isUploadInProgress || disabled\"\n (uploadClick)=\"handleUrlChange($event)\"\n ></gn-ui-url-input>\n </label>\n</div>\n", styles: [":host{--gn-ui-button-padding: 8px 8px;--gn-ui-button-rounded: 8px}\n"] }]
|
|
27454
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { maxSizeMB: [{
|
|
27620
27455
|
type: Input
|
|
27621
27456
|
}], uploadProgress: [{
|
|
27622
27457
|
type: Input
|
|
27623
|
-
}], uploadError: [{
|
|
27624
|
-
type: Input
|
|
27625
27458
|
}], disabled: [{
|
|
27626
27459
|
type: Input
|
|
27627
27460
|
}], fileChange: [{
|
|
@@ -27630,9 +27463,249 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
27630
27463
|
type: Output
|
|
27631
27464
|
}], uploadCancel: [{
|
|
27632
27465
|
type: Output
|
|
27633
|
-
}]
|
|
27466
|
+
}] } });
|
|
27467
|
+
|
|
27468
|
+
class NavigationButtonComponent {
|
|
27469
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NavigationButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27470
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NavigationButtonComponent, isStandalone: true, selector: "gn-ui-navigation-button", inputs: { label: "label", icon: "icon" }, ngImport: i0, template: "<button\n class=\"group flex items-center justify-center gap-1 backdrop-blur p-1 bg-primary-opacity-30 rounded content-center\"\n>\n <ng-icon [name]=\"icon\" class=\"align-middle w-[18px]\"></ng-icon>\n <span\n class=\"mx-2 mt-0.5 text-[16px] tracking-widest content-center opacity-75\"\n >{{ label.toUpperCase() }}</span\n >\n</button>\n", styles: ["button{color:var(--navigation-button-color, --color-background)}\n"], dependencies: [{ kind: "component", type: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
27471
|
+
}
|
|
27472
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NavigationButtonComponent, decorators: [{
|
|
27473
|
+
type: Component,
|
|
27474
|
+
args: [{ selector: 'gn-ui-navigation-button', changeDetection: ChangeDetectionStrategy.OnPush, imports: [NgIcon], standalone: true, template: "<button\n class=\"group flex items-center justify-center gap-1 backdrop-blur p-1 bg-primary-opacity-30 rounded content-center\"\n>\n <ng-icon [name]=\"icon\" class=\"align-middle w-[18px]\"></ng-icon>\n <span\n class=\"mx-2 mt-0.5 text-[16px] tracking-widest content-center opacity-75\"\n >{{ label.toUpperCase() }}</span\n >\n</button>\n", styles: ["button{color:var(--navigation-button-color, --color-background)}\n"] }]
|
|
27475
|
+
}], propDecorators: { label: [{
|
|
27476
|
+
type: Input
|
|
27477
|
+
}], icon: [{
|
|
27478
|
+
type: Input
|
|
27479
|
+
}] } });
|
|
27480
|
+
|
|
27481
|
+
class SearchInputComponent {
|
|
27482
|
+
constructor() {
|
|
27483
|
+
this.value = '';
|
|
27484
|
+
this.placeholder = '';
|
|
27485
|
+
this.rawChange = new Subject();
|
|
27486
|
+
this.valueChange = this.rawChange.pipe(distinctUntilChanged$1());
|
|
27487
|
+
}
|
|
27488
|
+
handleChange($event) {
|
|
27489
|
+
const value = $event.target.value;
|
|
27490
|
+
this.rawChange.next(value);
|
|
27491
|
+
}
|
|
27492
|
+
clear() {
|
|
27493
|
+
this.value = null;
|
|
27494
|
+
this.rawChange.next(null);
|
|
27495
|
+
}
|
|
27496
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SearchInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27497
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SearchInputComponent, isStandalone: true, selector: "gn-ui-search-input", inputs: { value: "value", placeholder: "placeholder" }, outputs: { valueChange: "valueChange" }, providers: [
|
|
27498
|
+
provideIcons({ matSearch, matClose }),
|
|
27499
|
+
provideNgIconsConfig({
|
|
27500
|
+
size: '1.5em',
|
|
27501
|
+
}),
|
|
27502
|
+
], ngImport: i0, template: "<div class=\"h-full relative text-gray-300\">\n <input\n #input\n class=\"peer h-full appearance-none border border-gray-300 rounded w-full p-2 pl-10 text-gray-700 leading-tight hover:border-primary focus:text-primary focus:outline-none focus:border-primary focus:border-2\"\n type=\"text\"\n [value]=\"value\"\n [placeholder]=\"placeholder\"\n (change)=\"handleChange($event)\"\n (input)=\"handleChange($event)\"\n />\n <div\n class=\"absolute inset-y-0 left-0 pl-2.5 flex items-center peer-hover:text-primary peer-focus:text-primary\"\n >\n <ng-icon name=\"matSearch\"></ng-icon>\n </div>\n <button\n *ngIf=\"rawChange | async\"\n type=\"button\"\n class=\"text-primary-lightest hover:text-primary absolute transition-all duration-100 inset-y-0 right-0 pr-2.5\"\n aria-label=\"Clear\"\n (click)=\"clear()\"\n >\n <ng-icon name=\"matClose\" class=\"align-middle\"></ng-icon>\n </button>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
27503
|
+
}
|
|
27504
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SearchInputComponent, decorators: [{
|
|
27505
|
+
type: Component,
|
|
27506
|
+
args: [{ selector: 'gn-ui-search-input', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, NgIconComponent], providers: [
|
|
27507
|
+
provideIcons({ matSearch, matClose }),
|
|
27508
|
+
provideNgIconsConfig({
|
|
27509
|
+
size: '1.5em',
|
|
27510
|
+
}),
|
|
27511
|
+
], template: "<div class=\"h-full relative text-gray-300\">\n <input\n #input\n class=\"peer h-full appearance-none border border-gray-300 rounded w-full p-2 pl-10 text-gray-700 leading-tight hover:border-primary focus:text-primary focus:outline-none focus:border-primary focus:border-2\"\n type=\"text\"\n [value]=\"value\"\n [placeholder]=\"placeholder\"\n (change)=\"handleChange($event)\"\n (input)=\"handleChange($event)\"\n />\n <div\n class=\"absolute inset-y-0 left-0 pl-2.5 flex items-center peer-hover:text-primary peer-focus:text-primary\"\n >\n <ng-icon name=\"matSearch\"></ng-icon>\n </div>\n <button\n *ngIf=\"rawChange | async\"\n type=\"button\"\n class=\"text-primary-lightest hover:text-primary absolute transition-all duration-100 inset-y-0 right-0 pr-2.5\"\n aria-label=\"Clear\"\n (click)=\"clear()\"\n >\n <ng-icon name=\"matClose\" class=\"align-middle\"></ng-icon>\n </button>\n</div>\n" }]
|
|
27512
|
+
}], propDecorators: { value: [{
|
|
27513
|
+
type: Input
|
|
27514
|
+
}], placeholder: [{
|
|
27515
|
+
type: Input
|
|
27516
|
+
}], valueChange: [{
|
|
27634
27517
|
type: Output
|
|
27635
|
-
}]
|
|
27518
|
+
}] } });
|
|
27519
|
+
|
|
27520
|
+
class StarToggleComponent {
|
|
27521
|
+
constructor() {
|
|
27522
|
+
this.disabled = false;
|
|
27523
|
+
this.newValue = new EventEmitter();
|
|
27524
|
+
}
|
|
27525
|
+
toggle(event) {
|
|
27526
|
+
if (!this.disabled) {
|
|
27527
|
+
this.toggled = !this.toggled;
|
|
27528
|
+
if (this.toggled) {
|
|
27529
|
+
const anim = this.overlay.nativeElement.getAnimations()[0];
|
|
27530
|
+
anim.cancel();
|
|
27531
|
+
anim.play();
|
|
27532
|
+
}
|
|
27533
|
+
this.newValue.emit(this.toggled);
|
|
27534
|
+
}
|
|
27535
|
+
propagateToDocumentOnly(event);
|
|
27536
|
+
event.preventDefault();
|
|
27537
|
+
}
|
|
27538
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StarToggleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27539
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: StarToggleComponent, isStandalone: true, selector: "gn-ui-star-toggle", inputs: { toggled: "toggled", disabled: "disabled" }, outputs: { newValue: "newValue" }, viewQueries: [{ propertyName: "overlay", first: true, predicate: ["starOverlay"], descendants: true }], ngImport: i0, template: "<div class=\"inline-block relative align-middle\" style=\"line-height: 0.7em\">\n <button\n type=\"button\"\n class=\"-m-[8px] p-[8px]\"\n (click)=\"toggle($event)\"\n [ngClass]=\"{\n enabled: toggled,\n 'disabled opacity-45': !toggled,\n 'transition hover:scale-125 will-change-transform': !disabled,\n 'cursor-default': disabled,\n }\"\n >\n <ng-icon [name]=\"toggled ? 'matStar' : 'matStarBorder'\"></ng-icon>\n </button>\n <svg\n #starOverlay\n class=\"star-toggle-overlay\"\n width=\"40px\"\n height=\"40px\"\n viewBox=\"-15 -15 30 30\"\n >\n <g>\n <path d=\"M 0,13.229167 V 0\" />\n <path d=\"M -12.484186,4.0880377 0,0\" />\n <path d=\"M -7.6784102,-10.70262 0,0\" />\n <path d=\"M 7.8734079,-10.70262 0,0\" />\n <path d=\"M 12.679184,4.0880376 0,0\" />\n </g>\n </svg>\n</div>\n", styles: ["button.enabled{color:var(--star-toggle-enabled-color, var(--color-secondary))}button.disabled{color:var(--star-toggle-disabled-color, var(--color-primary))}.star-filled{font-variation-settings:\"FILL\" 1}.star-toggle-overlay{stroke:var(--color-secondary);stroke-width:3.5px;stroke-linecap:round;position:absolute;top:50%;left:50%;width:2.5em;height:2.5em;transform:translate(-50%,-50%);pointer-events:none;stroke-dasharray:5 20;stroke-dashoffset:-15;animation:overlay-dash .8s cubic-bezier(.16,.66,.44,.96) forwards;animation-play-state:paused}@keyframes overlay-dash{to{stroke-dashoffset:7}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }], viewProviders: [provideIcons({ matStar, matStarBorder })], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
27540
|
+
}
|
|
27541
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StarToggleComponent, decorators: [{
|
|
27542
|
+
type: Component,
|
|
27543
|
+
args: [{ selector: 'gn-ui-star-toggle', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, NgIcon], viewProviders: [provideIcons({ matStar, matStarBorder })], template: "<div class=\"inline-block relative align-middle\" style=\"line-height: 0.7em\">\n <button\n type=\"button\"\n class=\"-m-[8px] p-[8px]\"\n (click)=\"toggle($event)\"\n [ngClass]=\"{\n enabled: toggled,\n 'disabled opacity-45': !toggled,\n 'transition hover:scale-125 will-change-transform': !disabled,\n 'cursor-default': disabled,\n }\"\n >\n <ng-icon [name]=\"toggled ? 'matStar' : 'matStarBorder'\"></ng-icon>\n </button>\n <svg\n #starOverlay\n class=\"star-toggle-overlay\"\n width=\"40px\"\n height=\"40px\"\n viewBox=\"-15 -15 30 30\"\n >\n <g>\n <path d=\"M 0,13.229167 V 0\" />\n <path d=\"M -12.484186,4.0880377 0,0\" />\n <path d=\"M -7.6784102,-10.70262 0,0\" />\n <path d=\"M 7.8734079,-10.70262 0,0\" />\n <path d=\"M 12.679184,4.0880376 0,0\" />\n </g>\n </svg>\n</div>\n", styles: ["button.enabled{color:var(--star-toggle-enabled-color, var(--color-secondary))}button.disabled{color:var(--star-toggle-disabled-color, var(--color-primary))}.star-filled{font-variation-settings:\"FILL\" 1}.star-toggle-overlay{stroke:var(--color-secondary);stroke-width:3.5px;stroke-linecap:round;position:absolute;top:50%;left:50%;width:2.5em;height:2.5em;transform:translate(-50%,-50%);pointer-events:none;stroke-dasharray:5 20;stroke-dashoffset:-15;animation:overlay-dash .8s cubic-bezier(.16,.66,.44,.96) forwards;animation-play-state:paused}@keyframes overlay-dash{to{stroke-dashoffset:7}}\n"] }]
|
|
27544
|
+
}], propDecorators: { toggled: [{
|
|
27545
|
+
type: Input
|
|
27546
|
+
}], disabled: [{
|
|
27547
|
+
type: Input
|
|
27548
|
+
}], newValue: [{
|
|
27549
|
+
type: Output
|
|
27550
|
+
}], overlay: [{
|
|
27551
|
+
type: ViewChild,
|
|
27552
|
+
args: ['starOverlay']
|
|
27553
|
+
}] } });
|
|
27554
|
+
|
|
27555
|
+
class SwitchToggleComponent {
|
|
27556
|
+
constructor() {
|
|
27557
|
+
this.ariaLabel = '';
|
|
27558
|
+
this.extraClasses = '';
|
|
27559
|
+
this.disabled = false;
|
|
27560
|
+
this.selectedValue = new EventEmitter();
|
|
27561
|
+
}
|
|
27562
|
+
onChange(selectedOption) {
|
|
27563
|
+
this.options.find((option) => option.label === selectedOption.label).checked = true;
|
|
27564
|
+
this.selectedValue.emit(selectedOption);
|
|
27565
|
+
}
|
|
27566
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SwitchToggleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27567
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SwitchToggleComponent, isStandalone: true, selector: "gn-ui-switch-toggle", inputs: { options: "options", ariaLabel: "ariaLabel", extraClasses: "extraClasses", disabled: "disabled" }, outputs: { selectedValue: "selectedValue" }, ngImport: i0, template: "<mat-button-toggle-group\n #group=\"matButtonToggleGroup\"\n multiple=\"false\"\n class=\"flex w-full\"\n [disabled]=\"disabled\"\n>\n <mat-button-toggle\n *ngFor=\"let option of options\"\n [aria-label]=\"option.label\"\n [checked]=\"option.checked\"\n (change)=\"onChange(option)\"\n [class]=\"extraClasses\"\n >{{ option.label | translate }}</mat-button-toggle\n >\n</mat-button-toggle-group>\n", styles: [":host{--mat-standard-button-toggle-height: 32px}.mat-button-toggle-group-appearance-standard{background-color:var(--color-gray-200);padding:4px;display:flex;gap:4px;border-radius:8px}.mat-button-toggle-appearance-standard{color:#000;background-color:var(--color-gray-200);border-radius:4px;border-left:none;font-family:var(--font-family-main)}.mat-button-toggle-appearance-standard.mat-button-toggle-checked{background-color:#000;color:var(--color-background)}button.mat-button-toggle-button.mat-focus-indicator.mat-button-toggle-label-content,.mat-button-toggle-label-content{line-height:32px}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonToggleModule }, { kind: "directive", type: i1$a.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "disabledInteractive", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i1$a.MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled", "disabledInteractive"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
27568
|
+
}
|
|
27569
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SwitchToggleComponent, decorators: [{
|
|
27570
|
+
type: Component,
|
|
27571
|
+
args: [{ selector: 'gn-ui-switch-toggle', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [MatButtonToggleModule, CommonModule, TranslateModule], template: "<mat-button-toggle-group\n #group=\"matButtonToggleGroup\"\n multiple=\"false\"\n class=\"flex w-full\"\n [disabled]=\"disabled\"\n>\n <mat-button-toggle\n *ngFor=\"let option of options\"\n [aria-label]=\"option.label\"\n [checked]=\"option.checked\"\n (change)=\"onChange(option)\"\n [class]=\"extraClasses\"\n >{{ option.label | translate }}</mat-button-toggle\n >\n</mat-button-toggle-group>\n", styles: [":host{--mat-standard-button-toggle-height: 32px}.mat-button-toggle-group-appearance-standard{background-color:var(--color-gray-200);padding:4px;display:flex;gap:4px;border-radius:8px}.mat-button-toggle-appearance-standard{color:#000;background-color:var(--color-gray-200);border-radius:4px;border-left:none;font-family:var(--font-family-main)}.mat-button-toggle-appearance-standard.mat-button-toggle-checked{background-color:#000;color:var(--color-background)}button.mat-button-toggle-button.mat-focus-indicator.mat-button-toggle-label-content,.mat-button-toggle-label-content{line-height:32px}\n"] }]
|
|
27572
|
+
}], propDecorators: { options: [{
|
|
27573
|
+
type: Input
|
|
27574
|
+
}], ariaLabel: [{
|
|
27575
|
+
type: Input
|
|
27576
|
+
}], extraClasses: [{
|
|
27577
|
+
type: Input
|
|
27578
|
+
}], disabled: [{
|
|
27579
|
+
type: Input
|
|
27580
|
+
}], selectedValue: [{
|
|
27581
|
+
type: Output
|
|
27582
|
+
}] } });
|
|
27583
|
+
|
|
27584
|
+
class TextAreaComponent {
|
|
27585
|
+
constructor() {
|
|
27586
|
+
this.value = '';
|
|
27587
|
+
this.disabled = false;
|
|
27588
|
+
this.extraClass = '';
|
|
27589
|
+
this.placeholder = '';
|
|
27590
|
+
this.required = false;
|
|
27591
|
+
this.rawChange = new Subject();
|
|
27592
|
+
this.valueChange = this.rawChange.pipe(distinctUntilChanged());
|
|
27593
|
+
}
|
|
27594
|
+
ngAfterViewInit() {
|
|
27595
|
+
this.checkRequired(this.input.nativeElement.value);
|
|
27596
|
+
}
|
|
27597
|
+
checkRequired(value) {
|
|
27598
|
+
this.input.nativeElement.classList.toggle('invalid', this.required && value === '');
|
|
27599
|
+
}
|
|
27600
|
+
handleChange($event) {
|
|
27601
|
+
const value = $event.target.value;
|
|
27602
|
+
this.checkRequired(value);
|
|
27603
|
+
this.rawChange.next(value);
|
|
27604
|
+
}
|
|
27605
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TextAreaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27606
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TextAreaComponent, isStandalone: true, selector: "gn-ui-text-area", inputs: { value: "value", disabled: "disabled", extraClass: "extraClass", placeholder: "placeholder", required: "required" }, outputs: { valueChange: "valueChange" }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], ngImport: i0, template: "<div class=\"h-full flex\">\n <textarea\n #input\n name=\"textArea\"\n class=\"gn-ui-text-input leading-tight\"\n [ngClass]=\"extraClass\"\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder\"\n [value]=\"value ?? ''\"\n (change)=\"handleChange($event)\"\n (input)=\"handleChange($event)\"\n [attr.required]=\"required || null\"\n ></textarea>\n</div>\n", styles: [".invalid{border-color:var(--color-secondary)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
|
|
27607
|
+
}
|
|
27608
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TextAreaComponent, decorators: [{
|
|
27609
|
+
type: Component,
|
|
27610
|
+
args: [{ selector: 'gn-ui-text-area', standalone: true, imports: [CommonModule], template: "<div class=\"h-full flex\">\n <textarea\n #input\n name=\"textArea\"\n class=\"gn-ui-text-input leading-tight\"\n [ngClass]=\"extraClass\"\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder\"\n [value]=\"value ?? ''\"\n (change)=\"handleChange($event)\"\n (input)=\"handleChange($event)\"\n [attr.required]=\"required || null\"\n ></textarea>\n</div>\n", styles: [".invalid{border-color:var(--color-secondary)}\n"] }]
|
|
27611
|
+
}], propDecorators: { value: [{
|
|
27612
|
+
type: Input
|
|
27613
|
+
}], disabled: [{
|
|
27614
|
+
type: Input
|
|
27615
|
+
}], extraClass: [{
|
|
27616
|
+
type: Input
|
|
27617
|
+
}], placeholder: [{
|
|
27618
|
+
type: Input
|
|
27619
|
+
}], required: [{
|
|
27620
|
+
type: Input
|
|
27621
|
+
}], valueChange: [{
|
|
27622
|
+
type: Output
|
|
27623
|
+
}], input: [{
|
|
27624
|
+
type: ViewChild,
|
|
27625
|
+
args: ['input']
|
|
27626
|
+
}] } });
|
|
27627
|
+
|
|
27628
|
+
class TextInputComponent {
|
|
27629
|
+
constructor() {
|
|
27630
|
+
this.value = '';
|
|
27631
|
+
this.extraClass = '';
|
|
27632
|
+
this.required = false;
|
|
27633
|
+
this.rawChange = new Subject();
|
|
27634
|
+
this.valueChange = this.rawChange.pipe(distinctUntilChanged());
|
|
27635
|
+
}
|
|
27636
|
+
ngAfterViewInit() {
|
|
27637
|
+
this.checkRequired(this.input.nativeElement.value);
|
|
27638
|
+
}
|
|
27639
|
+
checkRequired(value) {
|
|
27640
|
+
this.input.nativeElement.classList.toggle('invalid', this.required && value === '');
|
|
27641
|
+
}
|
|
27642
|
+
handleChange($event) {
|
|
27643
|
+
const value = $event.target.value;
|
|
27644
|
+
this.checkRequired(value);
|
|
27645
|
+
this.rawChange.next(value);
|
|
27646
|
+
}
|
|
27647
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TextInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27648
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TextInputComponent, isStandalone: true, selector: "gn-ui-text-input", inputs: { value: "value", extraClass: "extraClass", placeholder: "placeholder", required: "required", disabled: "disabled" }, outputs: { valueChange: "valueChange" }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], ngImport: i0, template: "<input\n #input\n class=\"gn-ui-text-input\"\n [ngClass]=\"extraClass\"\n type=\"text\"\n [value]=\"value\"\n (change)=\"handleChange($event)\"\n (input)=\"handleChange($event)\"\n [placeholder]=\"placeholder\"\n [attr.aria-label]=\"placeholder\"\n [attr.required]=\"required || null\"\n [disabled]=\"disabled\"\n/>\n", styles: [".invalid{border-color:var(--color-secondary)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
|
|
27649
|
+
}
|
|
27650
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TextInputComponent, decorators: [{
|
|
27651
|
+
type: Component,
|
|
27652
|
+
args: [{ selector: 'gn-ui-text-input', standalone: true, imports: [CommonModule], template: "<input\n #input\n class=\"gn-ui-text-input\"\n [ngClass]=\"extraClass\"\n type=\"text\"\n [value]=\"value\"\n (change)=\"handleChange($event)\"\n (input)=\"handleChange($event)\"\n [placeholder]=\"placeholder\"\n [attr.aria-label]=\"placeholder\"\n [attr.required]=\"required || null\"\n [disabled]=\"disabled\"\n/>\n", styles: [".invalid{border-color:var(--color-secondary)}\n"] }]
|
|
27653
|
+
}], propDecorators: { value: [{
|
|
27654
|
+
type: Input
|
|
27655
|
+
}], extraClass: [{
|
|
27656
|
+
type: Input
|
|
27657
|
+
}], placeholder: [{
|
|
27658
|
+
type: Input
|
|
27659
|
+
}], required: [{
|
|
27660
|
+
type: Input
|
|
27661
|
+
}], disabled: [{
|
|
27662
|
+
type: Input
|
|
27663
|
+
}], valueChange: [{
|
|
27664
|
+
type: Output
|
|
27665
|
+
}], input: [{
|
|
27666
|
+
type: ViewChild,
|
|
27667
|
+
args: ['input']
|
|
27668
|
+
}] } });
|
|
27669
|
+
|
|
27670
|
+
class ViewportIntersectorComponent {
|
|
27671
|
+
constructor(vcRef) {
|
|
27672
|
+
this.vcRef = vcRef;
|
|
27673
|
+
this.isInViewport = new EventEmitter();
|
|
27674
|
+
this.entersViewport = this.isInViewport.pipe(filter((inViewport) => inViewport), map$1(() => undefined));
|
|
27675
|
+
this.exitsViewport = this.isInViewport.pipe(filter((inViewport) => !inViewport), map$1(() => undefined));
|
|
27676
|
+
}
|
|
27677
|
+
ngOnInit() {
|
|
27678
|
+
const elToObserve = this.vcRef.element.nativeElement;
|
|
27679
|
+
this.observeInputElement(elToObserve);
|
|
27680
|
+
}
|
|
27681
|
+
ngOnDestroy() {
|
|
27682
|
+
const elToObserve = this.vcRef.element.nativeElement;
|
|
27683
|
+
this.unObserveInputElement(elToObserve);
|
|
27684
|
+
}
|
|
27685
|
+
observeInputElement(elToObserve) {
|
|
27686
|
+
if (!this.observer) {
|
|
27687
|
+
this.observer = new IntersectionObserver((entries) => {
|
|
27688
|
+
entries.forEach((entry) => {
|
|
27689
|
+
this.isInViewport.emit(entry.isIntersecting);
|
|
27690
|
+
});
|
|
27691
|
+
}, { root: null, threshold: 0 });
|
|
27692
|
+
}
|
|
27693
|
+
this.observer.observe(elToObserve);
|
|
27694
|
+
}
|
|
27695
|
+
unObserveInputElement(elToObserve) {
|
|
27696
|
+
this.observer?.unobserve(elToObserve);
|
|
27697
|
+
}
|
|
27698
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ViewportIntersectorComponent, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27699
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ViewportIntersectorComponent, selector: "gn-ui-viewport-intersector", outputs: { isInViewport: "isInViewport", entersViewport: "entersViewport", exitsViewport: "exitsViewport" }, ngImport: i0, template: "<div class=\"w-full h-full\"></div>\n", styles: [""] }); }
|
|
27700
|
+
}
|
|
27701
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ViewportIntersectorComponent, decorators: [{
|
|
27702
|
+
type: Component,
|
|
27703
|
+
args: [{ selector: 'gn-ui-viewport-intersector', template: "<div class=\"w-full h-full\"></div>\n" }]
|
|
27704
|
+
}], ctorParameters: () => [{ type: i0.ViewContainerRef }], propDecorators: { isInViewport: [{
|
|
27705
|
+
type: Output
|
|
27706
|
+
}], entersViewport: [{
|
|
27707
|
+
type: Output
|
|
27708
|
+
}], exitsViewport: [{
|
|
27636
27709
|
type: Output
|
|
27637
27710
|
}] } });
|
|
27638
27711
|
|
|
@@ -27659,7 +27732,6 @@ class UiInputsModule {
|
|
|
27659
27732
|
EditableLabelDirective,
|
|
27660
27733
|
TextAreaComponent,
|
|
27661
27734
|
ButtonComponent,
|
|
27662
|
-
ImageInputComponent,
|
|
27663
27735
|
DropdownSelectorComponent,
|
|
27664
27736
|
DateRangePickerComponent,
|
|
27665
27737
|
CheckToggleComponent,
|
|
@@ -27675,7 +27747,6 @@ class UiInputsModule {
|
|
|
27675
27747
|
CheckboxComponent,
|
|
27676
27748
|
DateRangePickerComponent,
|
|
27677
27749
|
EditableLabelDirective,
|
|
27678
|
-
ImageInputComponent,
|
|
27679
27750
|
BadgeComponent] }); }
|
|
27680
27751
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiInputsModule, providers: [
|
|
27681
27752
|
provideIcons({
|
|
@@ -27703,7 +27774,6 @@ class UiInputsModule {
|
|
|
27703
27774
|
MatDatepickerModule,
|
|
27704
27775
|
MatNativeDateModule,
|
|
27705
27776
|
TextAreaComponent,
|
|
27706
|
-
ImageInputComponent,
|
|
27707
27777
|
DropdownSelectorComponent,
|
|
27708
27778
|
DateRangePickerComponent,
|
|
27709
27779
|
CheckToggleComponent,
|
|
@@ -27740,7 +27810,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
27740
27810
|
EditableLabelDirective,
|
|
27741
27811
|
TextAreaComponent,
|
|
27742
27812
|
ButtonComponent,
|
|
27743
|
-
ImageInputComponent,
|
|
27744
27813
|
DropdownSelectorComponent,
|
|
27745
27814
|
DateRangePickerComponent,
|
|
27746
27815
|
CheckToggleComponent,
|
|
@@ -27769,135 +27838,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
27769
27838
|
CheckboxComponent,
|
|
27770
27839
|
DateRangePickerComponent,
|
|
27771
27840
|
EditableLabelDirective,
|
|
27772
|
-
ImageInputComponent,
|
|
27773
27841
|
BadgeComponent,
|
|
27774
27842
|
],
|
|
27775
27843
|
}]
|
|
27776
27844
|
}] });
|
|
27777
27845
|
|
|
27778
|
-
class SwitchToggleComponent {
|
|
27779
|
-
constructor() {
|
|
27780
|
-
this.ariaLabel = '';
|
|
27781
|
-
this.extraClasses = '';
|
|
27782
|
-
this.disabled = false;
|
|
27783
|
-
this.selectedValue = new EventEmitter();
|
|
27784
|
-
}
|
|
27785
|
-
onChange(selectedOption) {
|
|
27786
|
-
this.options.find((option) => option.label === selectedOption.label).checked = true;
|
|
27787
|
-
this.selectedValue.emit(selectedOption);
|
|
27788
|
-
}
|
|
27789
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SwitchToggleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27790
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SwitchToggleComponent, isStandalone: true, selector: "gn-ui-switch-toggle", inputs: { options: "options", ariaLabel: "ariaLabel", extraClasses: "extraClasses", disabled: "disabled" }, outputs: { selectedValue: "selectedValue" }, ngImport: i0, template: "<mat-button-toggle-group\n #group=\"matButtonToggleGroup\"\n multiple=\"false\"\n class=\"flex w-full\"\n [disabled]=\"disabled\"\n>\n <mat-button-toggle\n *ngFor=\"let option of options\"\n [aria-label]=\"option.label\"\n [checked]=\"option.checked\"\n (change)=\"onChange(option)\"\n [class]=\"extraClasses\"\n >{{ option.label | translate }}</mat-button-toggle\n >\n</mat-button-toggle-group>\n", styles: [":host{--mat-standard-button-toggle-height: 32px}.mat-button-toggle-group-appearance-standard{background-color:var(--color-gray-200);padding:4px;display:flex;gap:4px;border-radius:8px}.mat-button-toggle-appearance-standard{color:#000;background-color:var(--color-gray-200);border-radius:4px;border-left:none;font-family:var(--font-family-main)}.mat-button-toggle-appearance-standard.mat-button-toggle-checked{background-color:#000;color:var(--color-background)}button.mat-button-toggle-button.mat-focus-indicator.mat-button-toggle-label-content,.mat-button-toggle-label-content{line-height:32px}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonToggleModule }, { kind: "directive", type: i1$a.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "disabledInteractive", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i1$a.MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled", "disabledInteractive"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
27791
|
-
}
|
|
27792
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SwitchToggleComponent, decorators: [{
|
|
27793
|
-
type: Component,
|
|
27794
|
-
args: [{ selector: 'gn-ui-switch-toggle', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [MatButtonToggleModule, CommonModule, TranslateModule], template: "<mat-button-toggle-group\n #group=\"matButtonToggleGroup\"\n multiple=\"false\"\n class=\"flex w-full\"\n [disabled]=\"disabled\"\n>\n <mat-button-toggle\n *ngFor=\"let option of options\"\n [aria-label]=\"option.label\"\n [checked]=\"option.checked\"\n (change)=\"onChange(option)\"\n [class]=\"extraClasses\"\n >{{ option.label | translate }}</mat-button-toggle\n >\n</mat-button-toggle-group>\n", styles: [":host{--mat-standard-button-toggle-height: 32px}.mat-button-toggle-group-appearance-standard{background-color:var(--color-gray-200);padding:4px;display:flex;gap:4px;border-radius:8px}.mat-button-toggle-appearance-standard{color:#000;background-color:var(--color-gray-200);border-radius:4px;border-left:none;font-family:var(--font-family-main)}.mat-button-toggle-appearance-standard.mat-button-toggle-checked{background-color:#000;color:var(--color-background)}button.mat-button-toggle-button.mat-focus-indicator.mat-button-toggle-label-content,.mat-button-toggle-label-content{line-height:32px}\n"] }]
|
|
27795
|
-
}], propDecorators: { options: [{
|
|
27796
|
-
type: Input
|
|
27797
|
-
}], ariaLabel: [{
|
|
27798
|
-
type: Input
|
|
27799
|
-
}], extraClasses: [{
|
|
27800
|
-
type: Input
|
|
27801
|
-
}], disabled: [{
|
|
27802
|
-
type: Input
|
|
27803
|
-
}], selectedValue: [{
|
|
27804
|
-
type: Output
|
|
27805
|
-
}] } });
|
|
27806
|
-
|
|
27807
|
-
class FileInputComponent {
|
|
27808
|
-
get isUploadInProgress() {
|
|
27809
|
-
return this.uploadProgress !== undefined;
|
|
27810
|
-
}
|
|
27811
|
-
constructor(cd) {
|
|
27812
|
-
this.cd = cd;
|
|
27813
|
-
this.disabled = false;
|
|
27814
|
-
this.fileChange = new EventEmitter();
|
|
27815
|
-
this.urlChange = new EventEmitter();
|
|
27816
|
-
this.uploadCancel = new EventEmitter();
|
|
27817
|
-
this.dragFilesOver = false;
|
|
27818
|
-
}
|
|
27819
|
-
getPrimaryText() {
|
|
27820
|
-
if (this.uploadProgress) {
|
|
27821
|
-
return marker('input.file.uploadProgressLabel');
|
|
27822
|
-
}
|
|
27823
|
-
return marker('input.file.selectFileLabel');
|
|
27824
|
-
}
|
|
27825
|
-
getSecondaryText() {
|
|
27826
|
-
if (this.uploadProgress) {
|
|
27827
|
-
return marker('input.file.uploadProgressCancel');
|
|
27828
|
-
}
|
|
27829
|
-
return marker('input.file.dropFileLabel');
|
|
27830
|
-
}
|
|
27831
|
-
handleDragFilesOver(dragFilesOver) {
|
|
27832
|
-
this.dragFilesOver = dragFilesOver;
|
|
27833
|
-
this.cd.markForCheck();
|
|
27834
|
-
}
|
|
27835
|
-
handleDropFiles(files) {
|
|
27836
|
-
if (files.length > 0) {
|
|
27837
|
-
this.fileChange.emit(files[0]);
|
|
27838
|
-
}
|
|
27839
|
-
}
|
|
27840
|
-
handleFileInput(event) {
|
|
27841
|
-
this.handleDropFiles(Array.from(event.target.files));
|
|
27842
|
-
}
|
|
27843
|
-
handleUrlChange(url) {
|
|
27844
|
-
if (!url)
|
|
27845
|
-
return;
|
|
27846
|
-
this.urlChange.emit(url);
|
|
27847
|
-
}
|
|
27848
|
-
handleSecondaryTextClick(event) {
|
|
27849
|
-
if (this.uploadProgress) {
|
|
27850
|
-
this.handleCancel();
|
|
27851
|
-
event.preventDefault();
|
|
27852
|
-
}
|
|
27853
|
-
}
|
|
27854
|
-
handleCancel() {
|
|
27855
|
-
this.uploadCancel.emit();
|
|
27856
|
-
}
|
|
27857
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FileInputComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27858
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FileInputComponent, isStandalone: true, selector: "gn-ui-file-input", inputs: { maxSizeMB: "maxSizeMB", uploadProgress: "uploadProgress", disabled: "disabled" }, outputs: { fileChange: "fileChange", urlChange: "urlChange", uploadCancel: "uploadCancel" }, providers: [
|
|
27859
|
-
provideIcons({
|
|
27860
|
-
iconoirCloudUpload,
|
|
27861
|
-
iconoirFramePlusIn,
|
|
27862
|
-
}),
|
|
27863
|
-
provideNgIconsConfig({
|
|
27864
|
-
size: '1.5em',
|
|
27865
|
-
}),
|
|
27866
|
-
], ngImport: i0, template: "<div class=\"w-full flex flex-col gap-[16px]\">\n <label\n gnUiFilesDrop\n class=\"flex-1 border-2 border-dashed rounded-lg p-6 flex flex-col items-center justify-center gap-4 transition-colors duration-100\"\n [ngClass]=\"{\n 'border-primary-lighter bg-primary-white': dragFilesOver,\n 'border-gray-300': !dragFilesOver,\n 'cursor-pointer hover:border-gray-500': !isUploadInProgress && !disabled,\n 'cursor-not-allowed': disabled,\n }\"\n [attr.tabindex]=\"isUploadInProgress || disabled ? null : 0\"\n (dragFilesOver)=\"handleDragFilesOver($event)\"\n (dropFiles)=\"handleDropFiles($event)\"\n (keydown.enter)=\"fileInput.click()\"\n >\n <input\n #fileInput\n type=\"file\"\n class=\"hidden\"\n (change)=\"handleFileInput($event)\"\n [disabled]=\"isUploadInProgress || disabled\"\n />\n\n <div\n class=\"w-14 h-14 rounded-md bg-gray-50 grid\"\n *ngIf=\"!isUploadInProgress\"\n >\n <ng-icon\n *ngIf=\"!dragFilesOver\"\n class=\"place-self-center text-primary\"\n name=\"iconoirCloudUpload\"\n ></ng-icon>\n <ng-icon\n *ngIf=\"dragFilesOver\"\n class=\"place-self-center text-primary\"\n name=\"iconoirFramePlusIn\"\n ></ng-icon>\n </div>\n <div\n *ngIf=\"isUploadInProgress\"\n class=\"w-14 h-14 grid items-center justify-center relative\"\n >\n <div class=\"text-gray-100 absolute\">\n <mat-progress-spinner\n class=\"place-self-center\"\n [diameter]=\"56\"\n mode=\"determinate\"\n [value]=\"100\"\n ></mat-progress-spinner>\n </div>\n <div class=\"text-primary absolute\">\n <mat-progress-spinner\n class=\"place-self-center\"\n [diameter]=\"56\"\n mode=\"determinate\"\n [value]=\"uploadProgress\"\n ></mat-progress-spinner>\n </div>\n <span class=\"text-sm text-main font-bold\">{{ uploadProgress }}%</span>\n </div>\n <div class=\"flex flex-col items-center gap-1\">\n <p class=\"font-medium\">\n {{ getPrimaryText() | translate: { sizeMB: maxSizeMB.toFixed(0) } }}\n </p>\n <p\n class=\"text-sm\"\n [class]=\"\n isUploadInProgress\n ? 'font-bold text-primary cursor-pointer'\n : 'font-medium text-gray-500'\n \"\n (click)=\"handleSecondaryTextClick($event)\"\n >\n {{ getSecondaryText() | translate }}\n </p>\n </div>\n <p class=\"w-full flex flex-row items-center justify-stretch gap-[16px]\">\n <span class=\"border-b border-gray-300 grow\"></span>\n <span class=\"text-sm font-medium text-gray-500 or-input-url\" translate>\n input.file.orInputUrl</span\n >\n <span class=\"border-b border-gray-300 grow\"></span>\n </p>\n <gn-ui-url-input\n class=\"w-full\"\n [disabled]=\"isUploadInProgress || disabled\"\n (uploadClick)=\"handleUrlChange($event)\"\n ></gn-ui-url-input>\n </label>\n</div>\n", styles: [":host{--gn-ui-button-padding: 8px 8px;--gn-ui-button-rounded: 8px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: FilesDropDirective, selector: "[gnUiFilesDrop]", outputs: ["dragFilesOver", "dropFiles"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i1$5.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: UrlInputComponent, selector: "gn-ui-url-input", inputs: ["value", "extraClass", "placeholder", "disabled", "showUploadButton"], outputs: ["valueChange", "uploadClick"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
27867
|
-
}
|
|
27868
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FileInputComponent, decorators: [{
|
|
27869
|
-
type: Component,
|
|
27870
|
-
args: [{ selector: 'gn-ui-file-input', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
27871
|
-
CommonModule,
|
|
27872
|
-
ButtonComponent,
|
|
27873
|
-
FilesDropDirective,
|
|
27874
|
-
MatProgressSpinnerModule,
|
|
27875
|
-
TranslateModule,
|
|
27876
|
-
UrlInputComponent,
|
|
27877
|
-
NgIconComponent,
|
|
27878
|
-
], providers: [
|
|
27879
|
-
provideIcons({
|
|
27880
|
-
iconoirCloudUpload,
|
|
27881
|
-
iconoirFramePlusIn,
|
|
27882
|
-
}),
|
|
27883
|
-
provideNgIconsConfig({
|
|
27884
|
-
size: '1.5em',
|
|
27885
|
-
}),
|
|
27886
|
-
], template: "<div class=\"w-full flex flex-col gap-[16px]\">\n <label\n gnUiFilesDrop\n class=\"flex-1 border-2 border-dashed rounded-lg p-6 flex flex-col items-center justify-center gap-4 transition-colors duration-100\"\n [ngClass]=\"{\n 'border-primary-lighter bg-primary-white': dragFilesOver,\n 'border-gray-300': !dragFilesOver,\n 'cursor-pointer hover:border-gray-500': !isUploadInProgress && !disabled,\n 'cursor-not-allowed': disabled,\n }\"\n [attr.tabindex]=\"isUploadInProgress || disabled ? null : 0\"\n (dragFilesOver)=\"handleDragFilesOver($event)\"\n (dropFiles)=\"handleDropFiles($event)\"\n (keydown.enter)=\"fileInput.click()\"\n >\n <input\n #fileInput\n type=\"file\"\n class=\"hidden\"\n (change)=\"handleFileInput($event)\"\n [disabled]=\"isUploadInProgress || disabled\"\n />\n\n <div\n class=\"w-14 h-14 rounded-md bg-gray-50 grid\"\n *ngIf=\"!isUploadInProgress\"\n >\n <ng-icon\n *ngIf=\"!dragFilesOver\"\n class=\"place-self-center text-primary\"\n name=\"iconoirCloudUpload\"\n ></ng-icon>\n <ng-icon\n *ngIf=\"dragFilesOver\"\n class=\"place-self-center text-primary\"\n name=\"iconoirFramePlusIn\"\n ></ng-icon>\n </div>\n <div\n *ngIf=\"isUploadInProgress\"\n class=\"w-14 h-14 grid items-center justify-center relative\"\n >\n <div class=\"text-gray-100 absolute\">\n <mat-progress-spinner\n class=\"place-self-center\"\n [diameter]=\"56\"\n mode=\"determinate\"\n [value]=\"100\"\n ></mat-progress-spinner>\n </div>\n <div class=\"text-primary absolute\">\n <mat-progress-spinner\n class=\"place-self-center\"\n [diameter]=\"56\"\n mode=\"determinate\"\n [value]=\"uploadProgress\"\n ></mat-progress-spinner>\n </div>\n <span class=\"text-sm text-main font-bold\">{{ uploadProgress }}%</span>\n </div>\n <div class=\"flex flex-col items-center gap-1\">\n <p class=\"font-medium\">\n {{ getPrimaryText() | translate: { sizeMB: maxSizeMB.toFixed(0) } }}\n </p>\n <p\n class=\"text-sm\"\n [class]=\"\n isUploadInProgress\n ? 'font-bold text-primary cursor-pointer'\n : 'font-medium text-gray-500'\n \"\n (click)=\"handleSecondaryTextClick($event)\"\n >\n {{ getSecondaryText() | translate }}\n </p>\n </div>\n <p class=\"w-full flex flex-row items-center justify-stretch gap-[16px]\">\n <span class=\"border-b border-gray-300 grow\"></span>\n <span class=\"text-sm font-medium text-gray-500 or-input-url\" translate>\n input.file.orInputUrl</span\n >\n <span class=\"border-b border-gray-300 grow\"></span>\n </p>\n <gn-ui-url-input\n class=\"w-full\"\n [disabled]=\"isUploadInProgress || disabled\"\n (uploadClick)=\"handleUrlChange($event)\"\n ></gn-ui-url-input>\n </label>\n</div>\n", styles: [":host{--gn-ui-button-padding: 8px 8px;--gn-ui-button-rounded: 8px}\n"] }]
|
|
27887
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { maxSizeMB: [{
|
|
27888
|
-
type: Input
|
|
27889
|
-
}], uploadProgress: [{
|
|
27890
|
-
type: Input
|
|
27891
|
-
}], disabled: [{
|
|
27892
|
-
type: Input
|
|
27893
|
-
}], fileChange: [{
|
|
27894
|
-
type: Output
|
|
27895
|
-
}], urlChange: [{
|
|
27896
|
-
type: Output
|
|
27897
|
-
}], uploadCancel: [{
|
|
27898
|
-
type: Output
|
|
27899
|
-
}] } });
|
|
27900
|
-
|
|
27901
27846
|
class SortableListComponent {
|
|
27902
27847
|
constructor() {
|
|
27903
27848
|
this.itemsOrderChange = new EventEmitter();
|
|
@@ -29124,6 +29069,202 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
29124
29069
|
type: Output
|
|
29125
29070
|
}] } });
|
|
29126
29071
|
|
|
29072
|
+
class ImageInputComponent {
|
|
29073
|
+
get isUploadInProgress() {
|
|
29074
|
+
return this.uploadProgress !== undefined;
|
|
29075
|
+
}
|
|
29076
|
+
constructor(http, cd) {
|
|
29077
|
+
this.http = http;
|
|
29078
|
+
this.cd = cd;
|
|
29079
|
+
this.disabled = false;
|
|
29080
|
+
this.fileChange = new EventEmitter();
|
|
29081
|
+
this.urlChange = new EventEmitter();
|
|
29082
|
+
this.uploadCancel = new EventEmitter();
|
|
29083
|
+
this.delete = new EventEmitter();
|
|
29084
|
+
this.altTextChange = new EventEmitter();
|
|
29085
|
+
this.dragFilesOver = false;
|
|
29086
|
+
this.showUrlInput = false;
|
|
29087
|
+
this.downloadError = false;
|
|
29088
|
+
this.showAltTextInput = false;
|
|
29089
|
+
}
|
|
29090
|
+
getPrimaryText() {
|
|
29091
|
+
if (this.uploadError) {
|
|
29092
|
+
return marker('input.image.uploadErrorLabel');
|
|
29093
|
+
}
|
|
29094
|
+
if (this.uploadProgress) {
|
|
29095
|
+
return marker('input.image.uploadProgressLabel');
|
|
29096
|
+
}
|
|
29097
|
+
return marker('input.image.selectFileLabel');
|
|
29098
|
+
}
|
|
29099
|
+
getSecondaryText() {
|
|
29100
|
+
if (this.uploadError) {
|
|
29101
|
+
return marker('input.image.uploadErrorRetry');
|
|
29102
|
+
}
|
|
29103
|
+
if (this.uploadProgress) {
|
|
29104
|
+
return marker('input.image.uploadProgressCancel');
|
|
29105
|
+
}
|
|
29106
|
+
return marker('input.image.dropFileLabel');
|
|
29107
|
+
}
|
|
29108
|
+
handleDragFilesOver(dragFilesOver) {
|
|
29109
|
+
if (!this.showUrlInput) {
|
|
29110
|
+
this.dragFilesOver = dragFilesOver;
|
|
29111
|
+
this.cd.markForCheck();
|
|
29112
|
+
}
|
|
29113
|
+
}
|
|
29114
|
+
handleDropFiles(files) {
|
|
29115
|
+
if (!this.showUrlInput) {
|
|
29116
|
+
const validFiles = this.filterTypeImage(files);
|
|
29117
|
+
if (validFiles.length > 0) {
|
|
29118
|
+
this.resizeAndEmit(validFiles[0]);
|
|
29119
|
+
}
|
|
29120
|
+
}
|
|
29121
|
+
}
|
|
29122
|
+
handleFileInput(event) {
|
|
29123
|
+
const inputFiles = Array.from(event.target.files);
|
|
29124
|
+
const validFiles = this.filterTypeImage(inputFiles);
|
|
29125
|
+
if (validFiles.length > 0) {
|
|
29126
|
+
this.resizeAndEmit(validFiles[0]);
|
|
29127
|
+
}
|
|
29128
|
+
}
|
|
29129
|
+
displayUrlInput() {
|
|
29130
|
+
this.uploadCancel.emit();
|
|
29131
|
+
this.showUrlInput = true;
|
|
29132
|
+
}
|
|
29133
|
+
async downloadUrl(url) {
|
|
29134
|
+
this.downloadError = false;
|
|
29135
|
+
const name = url.split('/').pop();
|
|
29136
|
+
try {
|
|
29137
|
+
const response = await firstValueFrom(this.http.head(url, { observe: 'response' }));
|
|
29138
|
+
if (response.headers.get('content-type')?.startsWith('image/') &&
|
|
29139
|
+
parseInt(response.headers.get('content-length')) <
|
|
29140
|
+
megabytesToBytes(this.maxSizeMB)) {
|
|
29141
|
+
this.http.get(url, { responseType: 'blob' }).subscribe({
|
|
29142
|
+
next: (blob) => {
|
|
29143
|
+
this.cd.markForCheck();
|
|
29144
|
+
const file = new File([blob], name);
|
|
29145
|
+
this.fileChange.emit(file);
|
|
29146
|
+
},
|
|
29147
|
+
error: () => {
|
|
29148
|
+
this.downloadError = true;
|
|
29149
|
+
this.cd.markForCheck();
|
|
29150
|
+
this.urlChange.emit(url);
|
|
29151
|
+
},
|
|
29152
|
+
});
|
|
29153
|
+
}
|
|
29154
|
+
}
|
|
29155
|
+
catch {
|
|
29156
|
+
this.downloadError = true;
|
|
29157
|
+
this.cd.markForCheck();
|
|
29158
|
+
return;
|
|
29159
|
+
}
|
|
29160
|
+
}
|
|
29161
|
+
handleSecondaryTextClick(event) {
|
|
29162
|
+
if (this.uploadError) {
|
|
29163
|
+
this.handleRetry();
|
|
29164
|
+
}
|
|
29165
|
+
else if (this.uploadProgress) {
|
|
29166
|
+
this.handleCancel();
|
|
29167
|
+
event.preventDefault();
|
|
29168
|
+
}
|
|
29169
|
+
}
|
|
29170
|
+
handleCancel() {
|
|
29171
|
+
this.uploadCancel.emit();
|
|
29172
|
+
}
|
|
29173
|
+
handleRetry() {
|
|
29174
|
+
switch (this.lastUploadType) {
|
|
29175
|
+
case 'file':
|
|
29176
|
+
this.fileChange.emit(this.lastUploadContent);
|
|
29177
|
+
break;
|
|
29178
|
+
case 'url':
|
|
29179
|
+
this.urlChange.emit(this.lastUploadContent);
|
|
29180
|
+
break;
|
|
29181
|
+
}
|
|
29182
|
+
}
|
|
29183
|
+
handleDelete() {
|
|
29184
|
+
this.delete.emit();
|
|
29185
|
+
}
|
|
29186
|
+
toggleAltTextInput() {
|
|
29187
|
+
this.showAltTextInput = !this.showAltTextInput;
|
|
29188
|
+
}
|
|
29189
|
+
handleAltTextChange(altText) {
|
|
29190
|
+
this.altTextChange.emit(altText);
|
|
29191
|
+
}
|
|
29192
|
+
filterTypeImage(files) {
|
|
29193
|
+
return files.filter((file) => {
|
|
29194
|
+
return file.type.startsWith('image/');
|
|
29195
|
+
});
|
|
29196
|
+
}
|
|
29197
|
+
resizeAndEmit(imageToResize) {
|
|
29198
|
+
const maxSizeBytes = megabytesToBytes(this.maxSizeMB);
|
|
29199
|
+
downgradeImage(imageToResize, maxSizeBytes).then((resizedImage) => {
|
|
29200
|
+
const fileToEmit = new File([resizedImage], imageToResize.name);
|
|
29201
|
+
this.fileChange.emit(fileToEmit);
|
|
29202
|
+
});
|
|
29203
|
+
}
|
|
29204
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ImageInputComponent, deps: [{ token: i1.HttpClient }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
29205
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ImageInputComponent, isStandalone: true, selector: "gn-ui-image-input", inputs: { maxSizeMB: "maxSizeMB", previewUrl: "previewUrl", altText: "altText", uploadProgress: "uploadProgress", uploadError: "uploadError", disabled: "disabled" }, outputs: { fileChange: "fileChange", urlChange: "urlChange", uploadCancel: "uploadCancel", delete: "delete", altTextChange: "altTextChange" }, providers: [
|
|
29206
|
+
provideIcons({
|
|
29207
|
+
iconoirMediaImage,
|
|
29208
|
+
iconoirFramePlusIn,
|
|
29209
|
+
iconoirMediaImageXmark,
|
|
29210
|
+
iconoirBin,
|
|
29211
|
+
iconoirPlus,
|
|
29212
|
+
iconoirLink,
|
|
29213
|
+
}),
|
|
29214
|
+
provideNgIconsConfig({
|
|
29215
|
+
size: '1.5rem',
|
|
29216
|
+
}),
|
|
29217
|
+
], ngImport: i0, template: "<ng-container *ngIf=\"previewUrl; then withImage; else withoutImage\">\n</ng-container>\n\n<ng-template #withImage>\n <div class=\"w-80 h-full flex flex-col gap-2\">\n <gn-ui-image-overlay-preview class=\"h-48\" [imageUrl]=\"previewUrl\">\n </gn-ui-image-overlay-preview>\n <gn-ui-text-input\n *ngIf=\"showAltTextInput\"\n [placeholder]=\"'input.image.altTextPlaceholder' | translate\"\n [value]=\"altText ?? ''\"\n (valueChange)=\"handleAltTextChange($event)\"\n extraClass=\"gn-ui-editor-textarea\"\n [disabled]=\"true\"\n ></gn-ui-text-input>\n <div class=\"flex flex-row gap-2 mt-2\">\n <gn-ui-button type=\"gray\" (buttonClick)=\"handleDelete()\">\n <ng-icon class=\"me-1 text-primary\" name=\"iconoirBin\"></ng-icon>\n {{ 'input.image.delete' | translate }}\n </gn-ui-button>\n <gn-ui-button\n *ngIf=\"!showAltTextInput\"\n type=\"gray\"\n (buttonClick)=\"toggleAltTextInput()\"\n >\n <ng-icon name=\"iconoirPlus\" class=\"me-1 text-primary\"></ng-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=\"flex-1 border-2 border-dashed rounded-lg p-6 flex flex-col items-center justify-center gap-4 transition-colors duration-100\"\n [ngClass]=\"{\n 'border-primary-lighter bg-primary-white': dragFilesOver,\n 'border-gray-300': !dragFilesOver,\n 'cursor-pointer hover:border-gray-500':\n !isUploadInProgress && !uploadError && !showUrlInput && !disabled,\n 'cursor-not-allowed': disabled,\n }\"\n [attr.tabindex]=\"\n isUploadInProgress || uploadError || showUrlInput || disabled ? null : 0\n \"\n (keydown.enter)=\"fileInput.click()\"\n (dragFilesOver)=\"handleDragFilesOver($event)\"\n (dropFiles)=\"handleDropFiles($event)\"\n >\n <div\n class=\"w-14 h-14 rounded-md bg-gray-50 grid\"\n *ngIf=\"!isUploadInProgress && !uploadError\"\n >\n <ng-icon\n *ngIf=\"!dragFilesOver\"\n class=\"place-self-center text-primary\"\n name=\"iconoirMediaImage\"\n ></ng-icon>\n <ng-icon\n *ngIf=\"dragFilesOver\"\n class=\"place-self-center text-primary\"\n name=\"iconoirFramePlusIn\"\n ></ng-icon>\n </div>\n\n <div\n *ngIf=\"isUploadInProgress && !uploadError\"\n class=\"w-14 h-14 grid items-center justify-center relative\"\n >\n <div class=\"text-gray-100 absolute\">\n <mat-progress-spinner\n class=\"place-self-center\"\n [diameter]=\"56\"\n mode=\"determinate\"\n [value]=\"100\"\n ></mat-progress-spinner>\n </div>\n <div class=\"text-primary absolute\">\n <mat-progress-spinner\n class=\"place-self-center\"\n [diameter]=\"56\"\n mode=\"determinate\"\n [value]=\"uploadProgress\"\n ></mat-progress-spinner>\n </div>\n <span class=\"text-sm text-main font-bold\">{{ uploadProgress }}%</span>\n </div>\n\n <div class=\"w-14 h-14 rounded-md bg-gray-50 grid\" *ngIf=\"uploadError\">\n <ng-icon\n name=\"iconoirMediaImageXmark\"\n class=\"place-self-center text-rose-500\"\n ></ng-icon>\n </div>\n\n <div class=\"flex flex-col items-center gap-1\">\n <p class=\"font-medium\">{{ getPrimaryText() | translate }}</p>\n <p\n class=\"text-sm\"\n [class]=\"\n isUploadInProgress || uploadError\n ? 'font-bold text-blue-500 cursor-pointer'\n : 'font-medium text-gray-500'\n \"\n (click)=\"handleSecondaryTextClick($event)\"\n >\n {{ getSecondaryText() | translate }}\n </p>\n </div>\n <input\n #fileInput\n type=\"file\"\n class=\"hidden\"\n (change)=\"handleFileInput($event)\"\n [disabled]=\"\n showUrlInput || isUploadInProgress || uploadError || disabled\n \"\n />\n </label>\n\n <div *ngIf=\"!showUrlInput\" class=\"flex-none mt-2\">\n <gn-ui-button\n (buttonClick)=\"displayUrlInput()\"\n type=\"gray\"\n [disabled]=\"disabled\"\n [extraClass]=\"disabled && 'cursor-not-allowed'\"\n >\n <ng-icon class=\"me-1 text-primary\" name=\"iconoirLink\"></ng-icon>\n {{ 'input.image.displayUrlInput' | translate }}\n </gn-ui-button>\n </div>\n\n <gn-ui-url-input\n *ngIf=\"showUrlInput\"\n class=\"mt-3.5\"\n (uploadClick)=\"downloadUrl($event)\"\n [disabled]=\"isUploadInProgress || disabled\"\n >\n </gn-ui-url-input>\n </div>\n</ng-template>\n", styles: [":host{--gn-ui-button-padding: 8px 8px;--gn-ui-button-rounded: 8px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "directive", type: FilesDropDirective, selector: "[gnUiFilesDrop]", outputs: ["dragFilesOver", "dropFiles"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i1$5.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "component", type: UrlInputComponent, selector: "gn-ui-url-input", inputs: ["value", "extraClass", "placeholder", "disabled", "showValidateButton"], outputs: ["valueChange", "uploadClick"] }, { kind: "component", type: TextInputComponent, selector: "gn-ui-text-input", inputs: ["value", "extraClass", "placeholder", "required", "disabled"], outputs: ["valueChange"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "component", type: ImageOverlayPreviewComponent, selector: "gn-ui-image-overlay-preview", inputs: ["imageUrl"], outputs: ["isPlaceholderShown"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
29218
|
+
}
|
|
29219
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ImageInputComponent, decorators: [{
|
|
29220
|
+
type: Component,
|
|
29221
|
+
args: [{ selector: 'gn-ui-image-input', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
29222
|
+
CommonModule,
|
|
29223
|
+
ButtonComponent,
|
|
29224
|
+
FilesDropDirective,
|
|
29225
|
+
MatProgressSpinnerModule,
|
|
29226
|
+
TranslateModule,
|
|
29227
|
+
UrlInputComponent,
|
|
29228
|
+
TextInputComponent,
|
|
29229
|
+
NgIconComponent,
|
|
29230
|
+
ImageOverlayPreviewComponent,
|
|
29231
|
+
], providers: [
|
|
29232
|
+
provideIcons({
|
|
29233
|
+
iconoirMediaImage,
|
|
29234
|
+
iconoirFramePlusIn,
|
|
29235
|
+
iconoirMediaImageXmark,
|
|
29236
|
+
iconoirBin,
|
|
29237
|
+
iconoirPlus,
|
|
29238
|
+
iconoirLink,
|
|
29239
|
+
}),
|
|
29240
|
+
provideNgIconsConfig({
|
|
29241
|
+
size: '1.5rem',
|
|
29242
|
+
}),
|
|
29243
|
+
], template: "<ng-container *ngIf=\"previewUrl; then withImage; else withoutImage\">\n</ng-container>\n\n<ng-template #withImage>\n <div class=\"w-80 h-full flex flex-col gap-2\">\n <gn-ui-image-overlay-preview class=\"h-48\" [imageUrl]=\"previewUrl\">\n </gn-ui-image-overlay-preview>\n <gn-ui-text-input\n *ngIf=\"showAltTextInput\"\n [placeholder]=\"'input.image.altTextPlaceholder' | translate\"\n [value]=\"altText ?? ''\"\n (valueChange)=\"handleAltTextChange($event)\"\n extraClass=\"gn-ui-editor-textarea\"\n [disabled]=\"true\"\n ></gn-ui-text-input>\n <div class=\"flex flex-row gap-2 mt-2\">\n <gn-ui-button type=\"gray\" (buttonClick)=\"handleDelete()\">\n <ng-icon class=\"me-1 text-primary\" name=\"iconoirBin\"></ng-icon>\n {{ 'input.image.delete' | translate }}\n </gn-ui-button>\n <gn-ui-button\n *ngIf=\"!showAltTextInput\"\n type=\"gray\"\n (buttonClick)=\"toggleAltTextInput()\"\n >\n <ng-icon name=\"iconoirPlus\" class=\"me-1 text-primary\"></ng-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=\"flex-1 border-2 border-dashed rounded-lg p-6 flex flex-col items-center justify-center gap-4 transition-colors duration-100\"\n [ngClass]=\"{\n 'border-primary-lighter bg-primary-white': dragFilesOver,\n 'border-gray-300': !dragFilesOver,\n 'cursor-pointer hover:border-gray-500':\n !isUploadInProgress && !uploadError && !showUrlInput && !disabled,\n 'cursor-not-allowed': disabled,\n }\"\n [attr.tabindex]=\"\n isUploadInProgress || uploadError || showUrlInput || disabled ? null : 0\n \"\n (keydown.enter)=\"fileInput.click()\"\n (dragFilesOver)=\"handleDragFilesOver($event)\"\n (dropFiles)=\"handleDropFiles($event)\"\n >\n <div\n class=\"w-14 h-14 rounded-md bg-gray-50 grid\"\n *ngIf=\"!isUploadInProgress && !uploadError\"\n >\n <ng-icon\n *ngIf=\"!dragFilesOver\"\n class=\"place-self-center text-primary\"\n name=\"iconoirMediaImage\"\n ></ng-icon>\n <ng-icon\n *ngIf=\"dragFilesOver\"\n class=\"place-self-center text-primary\"\n name=\"iconoirFramePlusIn\"\n ></ng-icon>\n </div>\n\n <div\n *ngIf=\"isUploadInProgress && !uploadError\"\n class=\"w-14 h-14 grid items-center justify-center relative\"\n >\n <div class=\"text-gray-100 absolute\">\n <mat-progress-spinner\n class=\"place-self-center\"\n [diameter]=\"56\"\n mode=\"determinate\"\n [value]=\"100\"\n ></mat-progress-spinner>\n </div>\n <div class=\"text-primary absolute\">\n <mat-progress-spinner\n class=\"place-self-center\"\n [diameter]=\"56\"\n mode=\"determinate\"\n [value]=\"uploadProgress\"\n ></mat-progress-spinner>\n </div>\n <span class=\"text-sm text-main font-bold\">{{ uploadProgress }}%</span>\n </div>\n\n <div class=\"w-14 h-14 rounded-md bg-gray-50 grid\" *ngIf=\"uploadError\">\n <ng-icon\n name=\"iconoirMediaImageXmark\"\n class=\"place-self-center text-rose-500\"\n ></ng-icon>\n </div>\n\n <div class=\"flex flex-col items-center gap-1\">\n <p class=\"font-medium\">{{ getPrimaryText() | translate }}</p>\n <p\n class=\"text-sm\"\n [class]=\"\n isUploadInProgress || uploadError\n ? 'font-bold text-blue-500 cursor-pointer'\n : 'font-medium text-gray-500'\n \"\n (click)=\"handleSecondaryTextClick($event)\"\n >\n {{ getSecondaryText() | translate }}\n </p>\n </div>\n <input\n #fileInput\n type=\"file\"\n class=\"hidden\"\n (change)=\"handleFileInput($event)\"\n [disabled]=\"\n showUrlInput || isUploadInProgress || uploadError || disabled\n \"\n />\n </label>\n\n <div *ngIf=\"!showUrlInput\" class=\"flex-none mt-2\">\n <gn-ui-button\n (buttonClick)=\"displayUrlInput()\"\n type=\"gray\"\n [disabled]=\"disabled\"\n [extraClass]=\"disabled && 'cursor-not-allowed'\"\n >\n <ng-icon class=\"me-1 text-primary\" name=\"iconoirLink\"></ng-icon>\n {{ 'input.image.displayUrlInput' | translate }}\n </gn-ui-button>\n </div>\n\n <gn-ui-url-input\n *ngIf=\"showUrlInput\"\n class=\"mt-3.5\"\n (uploadClick)=\"downloadUrl($event)\"\n [disabled]=\"isUploadInProgress || disabled\"\n >\n </gn-ui-url-input>\n </div>\n</ng-template>\n", styles: [":host{--gn-ui-button-padding: 8px 8px;--gn-ui-button-rounded: 8px}\n"] }]
|
|
29244
|
+
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: i0.ChangeDetectorRef }], propDecorators: { maxSizeMB: [{
|
|
29245
|
+
type: Input
|
|
29246
|
+
}], previewUrl: [{
|
|
29247
|
+
type: Input
|
|
29248
|
+
}], altText: [{
|
|
29249
|
+
type: Input
|
|
29250
|
+
}], uploadProgress: [{
|
|
29251
|
+
type: Input
|
|
29252
|
+
}], uploadError: [{
|
|
29253
|
+
type: Input
|
|
29254
|
+
}], disabled: [{
|
|
29255
|
+
type: Input
|
|
29256
|
+
}], fileChange: [{
|
|
29257
|
+
type: Output
|
|
29258
|
+
}], urlChange: [{
|
|
29259
|
+
type: Output
|
|
29260
|
+
}], uploadCancel: [{
|
|
29261
|
+
type: Output
|
|
29262
|
+
}], delete: [{
|
|
29263
|
+
type: Output
|
|
29264
|
+
}], altTextChange: [{
|
|
29265
|
+
type: Output
|
|
29266
|
+
}] } });
|
|
29267
|
+
|
|
29127
29268
|
class LinkCardComponent {
|
|
29128
29269
|
constructor() {
|
|
29129
29270
|
this.compact = false;
|
|
@@ -29654,22 +29795,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
29654
29795
|
type: Input
|
|
29655
29796
|
}] } });
|
|
29656
29797
|
|
|
29657
|
-
class UserPreviewComponent {
|
|
29658
|
-
get userFullName() {
|
|
29659
|
-
return (this.user.name + ' ' + this.user.surname).trim();
|
|
29660
|
-
}
|
|
29661
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserPreviewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
29662
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: UserPreviewComponent, selector: "gn-ui-user-preview", inputs: { user: "user", avatarPlaceholder: "avatarPlaceholder" }, ngImport: i0, template: "<figure class=\"text-center\">\n <div class=\"w-10 h-10 rounded-full capitalize\" [matTooltip]=\"userFullName\">\n <gn-ui-avatar\n [avatarUrl]=\"user.profileIcon\"\n [avatarPlaceholder]=\"avatarPlaceholder\"\n ></gn-ui-avatar>\n </div>\n</figure>\n", dependencies: [{ kind: "directive", type: i1$4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: AvatarComponent, selector: "gn-ui-avatar", inputs: ["avatarUrl", "avatarPlaceholder"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
29663
|
-
}
|
|
29664
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserPreviewComponent, decorators: [{
|
|
29665
|
-
type: Component,
|
|
29666
|
-
args: [{ selector: 'gn-ui-user-preview', changeDetection: ChangeDetectionStrategy.OnPush, template: "<figure class=\"text-center\">\n <div class=\"w-10 h-10 rounded-full capitalize\" [matTooltip]=\"userFullName\">\n <gn-ui-avatar\n [avatarUrl]=\"user.profileIcon\"\n [avatarPlaceholder]=\"avatarPlaceholder\"\n ></gn-ui-avatar>\n </div>\n</figure>\n" }]
|
|
29667
|
-
}], propDecorators: { user: [{
|
|
29668
|
-
type: Input
|
|
29669
|
-
}], avatarPlaceholder: [{
|
|
29670
|
-
type: Input
|
|
29671
|
-
}] } });
|
|
29672
|
-
|
|
29673
29798
|
class TimeSincePipe {
|
|
29674
29799
|
constructor(translate) {
|
|
29675
29800
|
this.translate = translate;
|
|
@@ -29723,6 +29848,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
29723
29848
|
}]
|
|
29724
29849
|
}], ctorParameters: () => [{ type: i1$1.TranslateService }] });
|
|
29725
29850
|
|
|
29851
|
+
class UserPreviewComponent {
|
|
29852
|
+
get userFullName() {
|
|
29853
|
+
return (this.user.name + ' ' + this.user.surname).trim();
|
|
29854
|
+
}
|
|
29855
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserPreviewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
29856
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: UserPreviewComponent, selector: "gn-ui-user-preview", inputs: { user: "user", avatarPlaceholder: "avatarPlaceholder" }, ngImport: i0, template: "<figure class=\"text-center\">\n <div class=\"w-10 h-10 rounded-full capitalize\" [matTooltip]=\"userFullName\">\n <gn-ui-avatar\n [avatarUrl]=\"user.profileIcon\"\n [avatarPlaceholder]=\"avatarPlaceholder\"\n ></gn-ui-avatar>\n </div>\n</figure>\n", dependencies: [{ kind: "directive", type: i1$4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: AvatarComponent, selector: "gn-ui-avatar", inputs: ["avatarUrl", "avatarPlaceholder"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
29857
|
+
}
|
|
29858
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserPreviewComponent, decorators: [{
|
|
29859
|
+
type: Component,
|
|
29860
|
+
args: [{ selector: 'gn-ui-user-preview', changeDetection: ChangeDetectionStrategy.OnPush, template: "<figure class=\"text-center\">\n <div class=\"w-10 h-10 rounded-full capitalize\" [matTooltip]=\"userFullName\">\n <gn-ui-avatar\n [avatarUrl]=\"user.profileIcon\"\n [avatarPlaceholder]=\"avatarPlaceholder\"\n ></gn-ui-avatar>\n </div>\n</figure>\n" }]
|
|
29861
|
+
}], propDecorators: { user: [{
|
|
29862
|
+
type: Input
|
|
29863
|
+
}], avatarPlaceholder: [{
|
|
29864
|
+
type: Input
|
|
29865
|
+
}] } });
|
|
29866
|
+
|
|
29726
29867
|
class UiElementsModule {
|
|
29727
29868
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiElementsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
29728
29869
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: UiElementsModule, declarations: [AvatarComponent, UserPreviewComponent], imports: [CommonModule,
|
|
@@ -29739,10 +29880,12 @@ class UiElementsModule {
|
|
|
29739
29880
|
TimeSincePipe,
|
|
29740
29881
|
BadgeComponent,
|
|
29741
29882
|
MaxLinesComponent,
|
|
29742
|
-
TextInputComponent
|
|
29883
|
+
TextInputComponent,
|
|
29884
|
+
ImageInputComponent], exports: [ThumbnailComponent,
|
|
29743
29885
|
AvatarComponent,
|
|
29744
29886
|
UserPreviewComponent,
|
|
29745
|
-
MarkdownParserComponent
|
|
29887
|
+
MarkdownParserComponent,
|
|
29888
|
+
ImageInputComponent] }); }
|
|
29746
29889
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiElementsModule, providers: [
|
|
29747
29890
|
provideNgIconsConfig({
|
|
29748
29891
|
size: '1.5em',
|
|
@@ -29760,7 +29903,8 @@ class UiElementsModule {
|
|
|
29760
29903
|
ThumbnailComponent,
|
|
29761
29904
|
BadgeComponent,
|
|
29762
29905
|
MaxLinesComponent,
|
|
29763
|
-
TextInputComponent
|
|
29906
|
+
TextInputComponent,
|
|
29907
|
+
ImageInputComponent] }); }
|
|
29764
29908
|
}
|
|
29765
29909
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiElementsModule, decorators: [{
|
|
29766
29910
|
type: NgModule,
|
|
@@ -29783,6 +29927,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
29783
29927
|
BadgeComponent,
|
|
29784
29928
|
MaxLinesComponent,
|
|
29785
29929
|
TextInputComponent,
|
|
29930
|
+
ImageInputComponent,
|
|
29786
29931
|
],
|
|
29787
29932
|
providers: [
|
|
29788
29933
|
provideNgIconsConfig({
|
|
@@ -29795,6 +29940,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
29795
29940
|
AvatarComponent,
|
|
29796
29941
|
UserPreviewComponent,
|
|
29797
29942
|
MarkdownParserComponent,
|
|
29943
|
+
ImageInputComponent,
|
|
29798
29944
|
],
|
|
29799
29945
|
}]
|
|
29800
29946
|
}] });
|
|
@@ -37588,9 +37734,7 @@ const RECORD_LICENSE_FIELD = {
|
|
|
37588
37734
|
};
|
|
37589
37735
|
const RECORD_KEYWORDS_FIELD = {
|
|
37590
37736
|
model: 'keywords',
|
|
37591
|
-
formFieldConfig: {
|
|
37592
|
-
labelKey: marker('editor.record.form.field.keywords'),
|
|
37593
|
-
},
|
|
37737
|
+
formFieldConfig: {},
|
|
37594
37738
|
};
|
|
37595
37739
|
const RECORD_RESOURCE_CREATED_FIELD = {
|
|
37596
37740
|
model: 'resourceCreated',
|
|
@@ -37670,23 +37814,17 @@ const RECORD_SPATIAL_TOGGLE_FIELD = {
|
|
|
37670
37814
|
};
|
|
37671
37815
|
const RECORD_SPATIAL_EXTENTS_FIELD = {
|
|
37672
37816
|
model: 'spatialExtents',
|
|
37673
|
-
formFieldConfig: {
|
|
37674
|
-
labelKey: marker('editor.record.form.field.spatialExtents'),
|
|
37675
|
-
},
|
|
37817
|
+
formFieldConfig: {},
|
|
37676
37818
|
};
|
|
37677
37819
|
const RECORD_ONLINE_RESOURCES = {
|
|
37678
37820
|
model: 'onlineResources',
|
|
37679
37821
|
modelSpecifier: 'onlineResourceType:!link',
|
|
37680
|
-
formFieldConfig: {
|
|
37681
|
-
labelKey: marker('editor.record.form.field.onlineResources'),
|
|
37682
|
-
},
|
|
37822
|
+
formFieldConfig: {},
|
|
37683
37823
|
};
|
|
37684
37824
|
const RECORD_ONLINE_LINK_RESOURCES = {
|
|
37685
37825
|
model: 'onlineResources',
|
|
37686
37826
|
modelSpecifier: 'onlineResourceType:link',
|
|
37687
|
-
formFieldConfig: {
|
|
37688
|
-
labelKey: marker('editor.record.form.field.onlineLinkResources'),
|
|
37689
|
-
},
|
|
37827
|
+
formFieldConfig: {},
|
|
37690
37828
|
};
|
|
37691
37829
|
/************************************************************
|
|
37692
37830
|
*************** SECTIONS *****************
|
|
@@ -37768,7 +37906,12 @@ const DEFAULT_CONFIGURATION = {
|
|
|
37768
37906
|
pages: [
|
|
37769
37907
|
{
|
|
37770
37908
|
labelKey: marker('editor.record.form.page.description'),
|
|
37771
|
-
sections: [
|
|
37909
|
+
sections: [
|
|
37910
|
+
TITLE_SECTION,
|
|
37911
|
+
ABOUT_SECTION,
|
|
37912
|
+
CLASSIFICATION_SECTION,
|
|
37913
|
+
GEOGRAPHICAL_COVERAGE_SECTION,
|
|
37914
|
+
],
|
|
37772
37915
|
},
|
|
37773
37916
|
{
|
|
37774
37917
|
labelKey: marker('editor.record.form.page.ressources'),
|
|
@@ -37777,7 +37920,6 @@ const DEFAULT_CONFIGURATION = {
|
|
|
37777
37920
|
{
|
|
37778
37921
|
labelKey: marker('editor.record.form.page.accessAndContact'),
|
|
37779
37922
|
sections: [
|
|
37780
|
-
CLASSIFICATION_SECTION,
|
|
37781
37923
|
USE_AND_ACCESS_CONDITIONS_SECTION,
|
|
37782
37924
|
DATA_MANAGERS_SECTION,
|
|
37783
37925
|
METADATA_POINT_OF_CONTACT_SECTION,
|
|
@@ -38567,7 +38709,7 @@ class ImportRecordComponent {
|
|
|
38567
38709
|
provideNgIconsConfig({
|
|
38568
38710
|
size: '1.5em',
|
|
38569
38711
|
}),
|
|
38570
|
-
], ngImport: i0, template: "<ng-container [ngSwitch]=\"sectionDisplayed\">\n <ng-container *ngSwitchCase=\"'mainMenu'\">\n <div\n data-test=\"importMenuMainSection\"\n class=\"mt-2 border border-gray-100 p-2 flex items-center bg-white shadow-2xl rounded-2xl\"\n >\n <ul class=\"flex flex-col gap-2 w-full\">\n <li *ngFor=\"let menuItem of importMenuItems\">\n <gn-ui-button\n [attr.data-test]=\"menuItem.dataTest\"\n type=\"light\"\n extraClass=\"flex flex-row items-center gap-2 w-full justify-start\"\n (buttonClick)=\"menuItem.action()\"\n [disabled]=\"menuItem.disabled\"\n [title]=\"\n (menuItem.disabled ? 'editor.temporary.disabled' : '') | translate\n \"\n ><ng-icon [name]=\"menuItem.icon\"></ng-icon\n ><span>{{ menuItem.label }}</span></gn-ui-button\n >\n </li>\n </ul>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'importExternalFile'\">\n <div\n data-test=\"importMenuImportExternalFileSection\"\n class=\"p-6 flex flex-col gap-2 mt-2 border border-gray-100 bg-white shadow-2xl rounded-2xl\"\n >\n <div class=\"flex flex-row items-center gap-2\">\n <gn-ui-button\n data-test=\"importMenuImportExternalFileSectionBackButton\"\n type=\"light\"\n (buttonClick)=\"displayMainMenu()\"\n >\n <ng-icon name=\"iconoirArrowLeft\"></ng-icon>\n </gn-ui-button>\n <span class=\"font-bold\"> {{ externalImportBackLabel }}</span>\n </div>\n <gn-ui-url-input\n (uploadClick)=\"importRecord($event)\"\n [disabled]=\"isRecordImportInProgress\"\n ></gn-ui-url-input>\n </div>\n </ng-container>\n</ng-container>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1$2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "component", type: UrlInputComponent, selector: "gn-ui-url-input", inputs: ["value", "extraClass", "placeholder", "disabled", "
|
|
38712
|
+
], ngImport: i0, template: "<ng-container [ngSwitch]=\"sectionDisplayed\">\n <ng-container *ngSwitchCase=\"'mainMenu'\">\n <div\n data-test=\"importMenuMainSection\"\n class=\"mt-2 border border-gray-100 p-2 flex items-center bg-white shadow-2xl rounded-2xl\"\n >\n <ul class=\"flex flex-col gap-2 w-full\">\n <li *ngFor=\"let menuItem of importMenuItems\">\n <gn-ui-button\n [attr.data-test]=\"menuItem.dataTest\"\n type=\"light\"\n extraClass=\"flex flex-row items-center gap-2 w-full justify-start\"\n (buttonClick)=\"menuItem.action()\"\n [disabled]=\"menuItem.disabled\"\n [title]=\"\n (menuItem.disabled ? 'editor.temporary.disabled' : '') | translate\n \"\n ><ng-icon [name]=\"menuItem.icon\"></ng-icon\n ><span>{{ menuItem.label }}</span></gn-ui-button\n >\n </li>\n </ul>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'importExternalFile'\">\n <div\n data-test=\"importMenuImportExternalFileSection\"\n class=\"p-6 flex flex-col gap-2 mt-2 border border-gray-100 bg-white shadow-2xl rounded-2xl\"\n >\n <div class=\"flex flex-row items-center gap-2\">\n <gn-ui-button\n data-test=\"importMenuImportExternalFileSectionBackButton\"\n type=\"light\"\n (buttonClick)=\"displayMainMenu()\"\n >\n <ng-icon name=\"iconoirArrowLeft\"></ng-icon>\n </gn-ui-button>\n <span class=\"font-bold\"> {{ externalImportBackLabel }}</span>\n </div>\n <gn-ui-url-input\n (uploadClick)=\"importRecord($event)\"\n [disabled]=\"isRecordImportInProgress\"\n ></gn-ui-url-input>\n </div>\n </ng-container>\n</ng-container>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1$2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "component", type: UrlInputComponent, selector: "gn-ui-url-input", inputs: ["value", "extraClass", "placeholder", "disabled", "showValidateButton"], outputs: ["valueChange", "uploadClick"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
38571
38713
|
}
|
|
38572
38714
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ImportRecordComponent, decorators: [{
|
|
38573
38715
|
type: Component,
|
|
@@ -38633,7 +38775,7 @@ class GenericKeywordsComponent {
|
|
|
38633
38775
|
provideIcons({
|
|
38634
38776
|
matWarningAmberOutline,
|
|
38635
38777
|
}),
|
|
38636
|
-
], ngImport: i0, template: "<div class=\"flex flex-col gap-
|
|
38778
|
+
], ngImport: i0, template: "<div class=\"flex flex-col gap-4\">\n <gn-ui-autocomplete\n [placeholder]=\"placeholder\"\n [displayWithFn]=\"displayWithFn\"\n [action]=\"autoCompleteAction\"\n (itemSelected)=\"handleItemSelection($event)\"\n [preventCompleteOnSelection]=\"false\"\n [minCharacterCount]=\"1\"\n [allowSubmit]=\"false\"\n [clearOnSelection]=\"true\"\n ></gn-ui-autocomplete>\n <div class=\"flex gap-2 flex-wrap\">\n <gn-ui-badge\n *ngFor=\"let keyword of keywords\"\n [removable]=\"true\"\n (badgeRemoveClicked)=\"removeKeyword(keyword)\"\n >{{ keyword.label }}\n\n <ng-icon\n *ngIf=\"isPlaceWithoutExtent(keyword)\"\n [title]=\"'editor.form.placeKeywordWithoutExtent' | translate\"\n class=\"badge-warning\"\n name=\"matWarningAmberOutline\"\n ></ng-icon>\n </gn-ui-badge>\n </div>\n</div>\n", styles: [".badge-warning{font-size:1.4em}\n"], dependencies: [{ kind: "ngmodule", type: UiInputsModule }, { kind: "component", type: BadgeComponent, selector: "gn-ui-badge", inputs: ["clickable", "removable"], outputs: ["badgeRemoveClicked"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: UiWidgetsModule }, { kind: "component", type: AutocompleteComponent, selector: "gn-ui-autocomplete", inputs: ["placeholder", "action", "value", "clearOnSelection", "preventCompleteOnSelection", "autoFocus", "minCharacterCount", "allowSubmit", "displayWithFn"], outputs: ["itemSelected", "inputSubmitted", "inputCleared"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
38637
38779
|
}
|
|
38638
38780
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GenericKeywordsComponent, decorators: [{
|
|
38639
38781
|
type: Component,
|
|
@@ -38649,7 +38791,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
38649
38791
|
provideIcons({
|
|
38650
38792
|
matWarningAmberOutline,
|
|
38651
38793
|
}),
|
|
38652
|
-
], template: "<div class=\"flex flex-col gap-
|
|
38794
|
+
], template: "<div class=\"flex flex-col gap-4\">\n <gn-ui-autocomplete\n [placeholder]=\"placeholder\"\n [displayWithFn]=\"displayWithFn\"\n [action]=\"autoCompleteAction\"\n (itemSelected)=\"handleItemSelection($event)\"\n [preventCompleteOnSelection]=\"false\"\n [minCharacterCount]=\"1\"\n [allowSubmit]=\"false\"\n [clearOnSelection]=\"true\"\n ></gn-ui-autocomplete>\n <div class=\"flex gap-2 flex-wrap\">\n <gn-ui-badge\n *ngFor=\"let keyword of keywords\"\n [removable]=\"true\"\n (badgeRemoveClicked)=\"removeKeyword(keyword)\"\n >{{ keyword.label }}\n\n <ng-icon\n *ngIf=\"isPlaceWithoutExtent(keyword)\"\n [title]=\"'editor.form.placeKeywordWithoutExtent' | translate\"\n class=\"badge-warning\"\n name=\"matWarningAmberOutline\"\n ></ng-icon>\n </gn-ui-badge>\n </div>\n</div>\n", styles: [".badge-warning{font-size:1.4em}\n"] }]
|
|
38653
38795
|
}], ctorParameters: () => [{ type: PlatformServiceInterface }], propDecorators: { keywords: [{
|
|
38654
38796
|
type: Input
|
|
38655
38797
|
}], keywordTypes: [{
|
|
@@ -39104,7 +39246,7 @@ class FormFieldSpatialExtentComponent {
|
|
|
39104
39246
|
this.editorFacade.updateRecordField('spatialExtents', spatialExtents);
|
|
39105
39247
|
}
|
|
39106
39248
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormFieldSpatialExtentComponent, deps: [{ token: PlatformServiceInterface }, { token: EditorFacade }, { token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
39107
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FormFieldSpatialExtentComponent, isStandalone: true, selector: "gn-ui-form-field-spatial-extent", ngImport: i0, template: "<div class=\"flex flex-col gap-
|
|
39249
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FormFieldSpatialExtentComponent, isStandalone: true, selector: "gn-ui-form-field-spatial-extent", ngImport: i0, template: "<div class=\"flex flex-col gap-3\">\n <gn-ui-generic-keywords\n [placeholder]=\"'Search for place keywords'\"\n [keywords]=\"shownKeywords$ | async\"\n [keywordTypes]=\"['place']\"\n (deletedKeyword)=\"handleKeywordDelete($event)\"\n (addedKeyword)=\"handleKeywordAdd($event)\"\n >\n </gn-ui-generic-keywords>\n <div class=\"w-full h-96 mt-2\">\n <gn-ui-form-field-map-container\n [spatialExtents]=\"spatialExtents$ | async\"\n ></gn-ui-form-field-map-container>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "component", type: GenericKeywordsComponent, selector: "gn-ui-generic-keywords", inputs: ["keywords", "keywordTypes", "placeholder", "allowSubmit"], outputs: ["changedKeywords", "addedKeyword", "deletedKeyword"] }, { kind: "component", type: FormFieldMapContainerComponent, selector: "gn-ui-form-field-map-container", inputs: ["spatialExtents"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
39108
39250
|
}
|
|
39109
39251
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormFieldSpatialExtentComponent, decorators: [{
|
|
39110
39252
|
type: Component,
|
|
@@ -39112,82 +39254,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
39112
39254
|
CommonModule,
|
|
39113
39255
|
GenericKeywordsComponent,
|
|
39114
39256
|
FormFieldMapContainerComponent,
|
|
39115
|
-
], template: "<div class=\"flex flex-col gap-
|
|
39257
|
+
], template: "<div class=\"flex flex-col gap-3\">\n <gn-ui-generic-keywords\n [placeholder]=\"'Search for place keywords'\"\n [keywords]=\"shownKeywords$ | async\"\n [keywordTypes]=\"['place']\"\n (deletedKeyword)=\"handleKeywordDelete($event)\"\n (addedKeyword)=\"handleKeywordAdd($event)\"\n >\n </gn-ui-generic-keywords>\n <div class=\"w-full h-96 mt-2\">\n <gn-ui-form-field-map-container\n [spatialExtents]=\"spatialExtents$ | async\"\n ></gn-ui-form-field-map-container>\n </div>\n</div>\n" }]
|
|
39116
39258
|
}], ctorParameters: () => [{ type: PlatformServiceInterface }, { type: EditorFacade }, { type: i1$1.TranslateService }] });
|
|
39117
39259
|
|
|
39118
|
-
const RoleValues = [
|
|
39119
|
-
'unspecified',
|
|
39120
|
-
'other',
|
|
39121
|
-
'author', // Party who authored the resource
|
|
39122
|
-
'collaborator', // party who assists with the generation of the resource other than the principal investigator
|
|
39123
|
-
'contributor', // party contributing to the resource
|
|
39124
|
-
'custodian', // Party that accepts accountability and responsibility for the data and ensures appropriate care and maintenance of the resource
|
|
39125
|
-
'distributor', // Party who distributes the resource
|
|
39126
|
-
'editor', // party who reviewed or modified the resource to improve the content
|
|
39127
|
-
'funder', // party providing monetary support for the resource
|
|
39128
|
-
'mediator', // a class of entity that mediates access to the resource and for whom the resource is intended or useful
|
|
39129
|
-
'originator', // Party who created the resource
|
|
39130
|
-
'owner', // Party that owns the resource
|
|
39131
|
-
'point_of_contact', // Party who can be contacted for acquiring knowledge about or acquisition of the resource
|
|
39132
|
-
'principal_investigator', // Key party responsible for gathering information and conducting research
|
|
39133
|
-
'processor', // Party who has processed the data in a manner such that the resource has been modified
|
|
39134
|
-
'publisher', // Party who published the resource
|
|
39135
|
-
'resource_provider', // Party that supplies the resource
|
|
39136
|
-
'rights_holder', // party owning or managing rights over the resource
|
|
39137
|
-
'sponsor', // party that sponsors the resource
|
|
39138
|
-
'stakeholder', // party who has an interest in the resource or the use of the resource
|
|
39139
|
-
'user', // Party who uses the resource
|
|
39140
|
-
];
|
|
39141
|
-
const RoleLabels = new Map([
|
|
39142
|
-
['unspecified', marker('domain.contact.role.unspecified')],
|
|
39143
|
-
['other', marker('domain.contact.role.other')],
|
|
39144
|
-
['author', marker('domain.contact.role.author')],
|
|
39145
|
-
['collaborator', marker('domain.contact.role.collaborator')],
|
|
39146
|
-
['contributor', marker('domain.contact.role.contributor')],
|
|
39147
|
-
['custodian', marker('domain.contact.role.custodian')],
|
|
39148
|
-
['distributor', marker('domain.contact.role.distributor')],
|
|
39149
|
-
['editor', marker('domain.contact.role.editor')],
|
|
39150
|
-
['funder', marker('domain.contact.role.funder')],
|
|
39151
|
-
['mediator', marker('domain.contact.role.mediator')],
|
|
39152
|
-
['originator', marker('domain.contact.role.originator')],
|
|
39153
|
-
['owner', marker('domain.contact.role.owner')],
|
|
39154
|
-
['point_of_contact', marker('domain.contact.role.point_of_contact')],
|
|
39155
|
-
[
|
|
39156
|
-
'principal_investigator',
|
|
39157
|
-
marker('domain.contact.role.principal_investigator'),
|
|
39158
|
-
],
|
|
39159
|
-
['processor', marker('domain.contact.role.processor')],
|
|
39160
|
-
['publisher', marker('domain.contact.role.publisher')],
|
|
39161
|
-
['resource_provider', marker('domain.contact.role.resource_provider')],
|
|
39162
|
-
['rights_holder', marker('domain.contact.role.rights_holder')],
|
|
39163
|
-
['sponsor', marker('domain.contact.role.sponsor')],
|
|
39164
|
-
['stakeholder', marker('domain.contact.role.stakeholder')],
|
|
39165
|
-
['user', marker('domain.contact.role.user')],
|
|
39166
|
-
]);
|
|
39167
|
-
|
|
39168
|
-
marker('domain.record.updateFrequency.unknown');
|
|
39169
|
-
marker('domain.record.updateFrequency.notPlanned');
|
|
39170
|
-
marker('domain.record.updateFrequency.asNeeded');
|
|
39171
|
-
marker('domain.record.updateFrequency.irregular');
|
|
39172
|
-
marker('domain.record.updateFrequency.continual');
|
|
39173
|
-
marker('domain.record.updateFrequency.periodic');
|
|
39174
|
-
marker('domain.record.updateFrequency.day');
|
|
39175
|
-
marker('domain.record.updateFrequency.week');
|
|
39176
|
-
marker('domain.record.updateFrequency.month');
|
|
39177
|
-
marker('domain.record.updateFrequency.year');
|
|
39178
|
-
marker('domain.record.status.completed');
|
|
39179
|
-
marker('domain.record.status.ongoing');
|
|
39180
|
-
marker('domain.record.status.under_development');
|
|
39181
|
-
marker('domain.record.status.deprecated');
|
|
39182
|
-
marker('domain.record.status.removed');
|
|
39183
|
-
const RecordStatusValues = [
|
|
39184
|
-
'completed',
|
|
39185
|
-
'ongoing',
|
|
39186
|
-
'under_development',
|
|
39187
|
-
'deprecated',
|
|
39188
|
-
'removed',
|
|
39189
|
-
];
|
|
39190
|
-
|
|
39191
39260
|
class ContactCardComponent {
|
|
39192
39261
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ContactCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
39193
39262
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ContactCardComponent, isStandalone: true, selector: "gn-ui-contact-card", inputs: { contact: "contact" }, ngImport: i0, template: "<div class=\"gn-ui-card\">\n <gn-ui-thumbnail\n class=\"w-[56px] h-[56px] rounded-[4px] overflow-hidden shrink-0\"\n [thumbnailUrl]=\"contact.organization?.logoUrl?.href\"\n [fit]=\"'contain'\"\n ></gn-ui-thumbnail>\n <div class=\"flex flex-col w-full overflow-hidden leading-snug\">\n <div class=\"text-[16px] font-bold text-main\" data-test=\"contactCardName\">\n {{ contact.firstName }} {{ contact.lastName }}\n </div>\n <div class=\"text-[14px] text-gray-900\" data-test=\"contactCardEmail\">\n {{ contact.email }}\n </div>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: ThumbnailComponent, selector: "gn-ui-thumbnail", inputs: ["thumbnailUrl", "fit"], outputs: ["placeholderShown"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
@@ -39614,7 +39683,7 @@ class FormFieldOnlineLinkResourcesComponent {
|
|
|
39614
39683
|
});
|
|
39615
39684
|
}
|
|
39616
39685
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormFieldOnlineLinkResourcesComponent, deps: [{ token: NotificationsService }, { token: i1$1.TranslateService }, { token: PlatformServiceInterface }, { token: i0.ChangeDetectorRef }, { token: i1$b.MatDialog }, { token: EditorFacade }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
39617
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FormFieldOnlineLinkResourcesComponent, isStandalone: true, selector: "gn-ui-form-field-online-link-resources", inputs: { metadataUuid: "metadataUuid", value: "value" }, outputs: { valueChange: "valueChange" }, viewQueries: [{ propertyName: "dialogTemplate", first: true, predicate: ["dialogTemplate"], descendants: true }], ngImport: i0, template: "<div class=\"flex flex-col\">\n <gn-ui-file-input\n [maxSizeMB]=\"MAX_UPLOAD_SIZE_MB\"\n (fileChange)=\"handleFileChange($event)\"\n (uploadCancel)=\"handleUploadCancel()\"\n [uploadProgress]=\"uploadProgress\"\n (urlChange)=\"handleUrlChange($event)\"\n [disabled]=\"disabled$ | async\"\n ></gn-ui-file-input>\n <div class=\"h-[8px]\"></div>\n <gn-ui-sortable-list\n [items]=\"linkResources\"\n (itemsOrderChange)=\"handleResourcesChange($event)\"\n [elementTemplate]=\"template\"\n >\n </gn-ui-sortable-list>\n <ng-template #template let-onlineResource let-index=\"index\">\n <gn-ui-online-resource-card\n [onlineResource]=\"onlineResource\"\n (modifyClick)=\"handleResourceModify(onlineResource, index)\"\n ></gn-ui-online-resource-card>\n </ng-template>\n\n <ng-template #dialogTemplate let-onlineResource>\n <div class=\"flex flex-col gap-[16px]\">\n <div>\n <h3 class=\"text-[16px] font-bold text-main mb-[12px]\" translate>\n editor.record.form.field.onlineResource.edit.title\n </h3>\n <gn-ui-text-input [(value)]=\"onlineResource.name\"></gn-ui-text-input>\n </div>\n <div>\n <h3 class=\"text-[16px] font-bold text-main mb-[12px]\" translate>\n editor.record.form.field.onlineResource.edit.description\n </h3>\n <gn-ui-text-area\n [(value)]=\"onlineResource.description\"\n ></gn-ui-text-area>\n </div>\n <span class=\"w-full border-b border-gray-300\"></span>\n <gn-ui-url-input\n class=\"w-full\"\n [disabled]=\"true\"\n [value]=\"onlineResource.url\"\n [
|
|
39686
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FormFieldOnlineLinkResourcesComponent, isStandalone: true, selector: "gn-ui-form-field-online-link-resources", inputs: { metadataUuid: "metadataUuid", value: "value" }, outputs: { valueChange: "valueChange" }, viewQueries: [{ propertyName: "dialogTemplate", first: true, predicate: ["dialogTemplate"], descendants: true }], ngImport: i0, template: "<div class=\"flex flex-col\">\n <gn-ui-file-input\n [maxSizeMB]=\"MAX_UPLOAD_SIZE_MB\"\n (fileChange)=\"handleFileChange($event)\"\n (uploadCancel)=\"handleUploadCancel()\"\n [uploadProgress]=\"uploadProgress\"\n (urlChange)=\"handleUrlChange($event)\"\n [disabled]=\"disabled$ | async\"\n ></gn-ui-file-input>\n <div class=\"h-[8px]\"></div>\n <gn-ui-sortable-list\n [items]=\"linkResources\"\n (itemsOrderChange)=\"handleResourcesChange($event)\"\n [elementTemplate]=\"template\"\n >\n </gn-ui-sortable-list>\n <ng-template #template let-onlineResource let-index=\"index\">\n <gn-ui-online-resource-card\n [onlineResource]=\"onlineResource\"\n (modifyClick)=\"handleResourceModify(onlineResource, index)\"\n ></gn-ui-online-resource-card>\n </ng-template>\n\n <ng-template #dialogTemplate let-onlineResource>\n <div class=\"flex flex-col gap-[16px]\">\n <div>\n <h3 class=\"text-[16px] font-bold text-main mb-[12px]\" translate>\n editor.record.form.field.onlineResource.edit.title\n </h3>\n <gn-ui-text-input [(value)]=\"onlineResource.name\"></gn-ui-text-input>\n </div>\n <div>\n <h3 class=\"text-[16px] font-bold text-main mb-[12px]\" translate>\n editor.record.form.field.onlineResource.edit.description\n </h3>\n <gn-ui-text-area\n [(value)]=\"onlineResource.description\"\n ></gn-ui-text-area>\n </div>\n <span class=\"w-full border-b border-gray-300\"></span>\n <gn-ui-url-input\n class=\"w-full\"\n [disabled]=\"true\"\n [value]=\"onlineResource.url\"\n [showValidateButton]=\"false\"\n [disabled]=\"disabled$ | async\"\n ></gn-ui-url-input>\n </div>\n </ng-template>\n <div\n *ngIf=\"disabled$ | async\"\n class=\"p-4 text-sm border border-primary bg-primary-lightest rounded-lg\"\n translate\n data-test=\"disabled-message\"\n >\n editor.record.form.field.draft.only.disabled\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: FileInputComponent, selector: "gn-ui-file-input", inputs: ["maxSizeMB", "uploadProgress", "disabled"], outputs: ["fileChange", "urlChange", "uploadCancel"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "component", type: SortableListComponent, selector: "gn-ui-sortable-list", inputs: ["elementTemplate", "items"], outputs: ["itemsOrderChange"] }, { kind: "component", type: OnlineResourceCardComponent, selector: "gn-ui-online-resource-card", inputs: ["onlineResource"], outputs: ["modifyClick"] }, { kind: "component", type: TextInputComponent, selector: "gn-ui-text-input", inputs: ["value", "extraClass", "placeholder", "required", "disabled"], outputs: ["valueChange"] }, { kind: "component", type: TextAreaComponent, selector: "gn-ui-text-area", inputs: ["value", "disabled", "extraClass", "placeholder", "required"], outputs: ["valueChange"] }, { kind: "component", type: UrlInputComponent, selector: "gn-ui-url-input", inputs: ["value", "extraClass", "placeholder", "disabled", "showValidateButton"], outputs: ["valueChange", "uploadClick"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
39618
39687
|
}
|
|
39619
39688
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormFieldOnlineLinkResourcesComponent, decorators: [{
|
|
39620
39689
|
type: Component,
|
|
@@ -39627,7 +39696,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
39627
39696
|
TextAreaComponent,
|
|
39628
39697
|
UrlInputComponent,
|
|
39629
39698
|
TranslateModule,
|
|
39630
|
-
], template: "<div class=\"flex flex-col\">\n <gn-ui-file-input\n [maxSizeMB]=\"MAX_UPLOAD_SIZE_MB\"\n (fileChange)=\"handleFileChange($event)\"\n (uploadCancel)=\"handleUploadCancel()\"\n [uploadProgress]=\"uploadProgress\"\n (urlChange)=\"handleUrlChange($event)\"\n [disabled]=\"disabled$ | async\"\n ></gn-ui-file-input>\n <div class=\"h-[8px]\"></div>\n <gn-ui-sortable-list\n [items]=\"linkResources\"\n (itemsOrderChange)=\"handleResourcesChange($event)\"\n [elementTemplate]=\"template\"\n >\n </gn-ui-sortable-list>\n <ng-template #template let-onlineResource let-index=\"index\">\n <gn-ui-online-resource-card\n [onlineResource]=\"onlineResource\"\n (modifyClick)=\"handleResourceModify(onlineResource, index)\"\n ></gn-ui-online-resource-card>\n </ng-template>\n\n <ng-template #dialogTemplate let-onlineResource>\n <div class=\"flex flex-col gap-[16px]\">\n <div>\n <h3 class=\"text-[16px] font-bold text-main mb-[12px]\" translate>\n editor.record.form.field.onlineResource.edit.title\n </h3>\n <gn-ui-text-input [(value)]=\"onlineResource.name\"></gn-ui-text-input>\n </div>\n <div>\n <h3 class=\"text-[16px] font-bold text-main mb-[12px]\" translate>\n editor.record.form.field.onlineResource.edit.description\n </h3>\n <gn-ui-text-area\n [(value)]=\"onlineResource.description\"\n ></gn-ui-text-area>\n </div>\n <span class=\"w-full border-b border-gray-300\"></span>\n <gn-ui-url-input\n class=\"w-full\"\n [disabled]=\"true\"\n [value]=\"onlineResource.url\"\n [
|
|
39699
|
+
], template: "<div class=\"flex flex-col\">\n <gn-ui-file-input\n [maxSizeMB]=\"MAX_UPLOAD_SIZE_MB\"\n (fileChange)=\"handleFileChange($event)\"\n (uploadCancel)=\"handleUploadCancel()\"\n [uploadProgress]=\"uploadProgress\"\n (urlChange)=\"handleUrlChange($event)\"\n [disabled]=\"disabled$ | async\"\n ></gn-ui-file-input>\n <div class=\"h-[8px]\"></div>\n <gn-ui-sortable-list\n [items]=\"linkResources\"\n (itemsOrderChange)=\"handleResourcesChange($event)\"\n [elementTemplate]=\"template\"\n >\n </gn-ui-sortable-list>\n <ng-template #template let-onlineResource let-index=\"index\">\n <gn-ui-online-resource-card\n [onlineResource]=\"onlineResource\"\n (modifyClick)=\"handleResourceModify(onlineResource, index)\"\n ></gn-ui-online-resource-card>\n </ng-template>\n\n <ng-template #dialogTemplate let-onlineResource>\n <div class=\"flex flex-col gap-[16px]\">\n <div>\n <h3 class=\"text-[16px] font-bold text-main mb-[12px]\" translate>\n editor.record.form.field.onlineResource.edit.title\n </h3>\n <gn-ui-text-input [(value)]=\"onlineResource.name\"></gn-ui-text-input>\n </div>\n <div>\n <h3 class=\"text-[16px] font-bold text-main mb-[12px]\" translate>\n editor.record.form.field.onlineResource.edit.description\n </h3>\n <gn-ui-text-area\n [(value)]=\"onlineResource.description\"\n ></gn-ui-text-area>\n </div>\n <span class=\"w-full border-b border-gray-300\"></span>\n <gn-ui-url-input\n class=\"w-full\"\n [disabled]=\"true\"\n [value]=\"onlineResource.url\"\n [showValidateButton]=\"false\"\n [disabled]=\"disabled$ | async\"\n ></gn-ui-url-input>\n </div>\n </ng-template>\n <div\n *ngIf=\"disabled$ | async\"\n class=\"p-4 text-sm border border-primary bg-primary-lightest rounded-lg\"\n translate\n data-test=\"disabled-message\"\n >\n editor.record.form.field.draft.only.disabled\n </div>\n</div>\n" }]
|
|
39631
39700
|
}], ctorParameters: () => [{ type: NotificationsService }, { type: i1$1.TranslateService }, { type: PlatformServiceInterface }, { type: i0.ChangeDetectorRef }, { type: i1$b.MatDialog }, { type: EditorFacade }], propDecorators: { metadataUuid: [{
|
|
39632
39701
|
type: Input
|
|
39633
39702
|
}], value: [{
|
|
@@ -39642,6 +39711,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
39642
39711
|
class OnlineServiceResourceInputComponent {
|
|
39643
39712
|
constructor() {
|
|
39644
39713
|
this.disabled = false;
|
|
39714
|
+
this.urlChange = new EventEmitter();
|
|
39715
|
+
this.identifierSubmit = new EventEmitter();
|
|
39645
39716
|
this.protocolOptions = [
|
|
39646
39717
|
{
|
|
39647
39718
|
label: 'OGC API',
|
|
@@ -39677,25 +39748,57 @@ class OnlineServiceResourceInputComponent {
|
|
|
39677
39748
|
this.selectedProtocol =
|
|
39678
39749
|
this.protocolOptions.find((option) => option.value === this.service.accessServiceProtocol)?.value ?? 'other';
|
|
39679
39750
|
}
|
|
39751
|
+
handleUrlChange(url) {
|
|
39752
|
+
this.url = url;
|
|
39753
|
+
}
|
|
39754
|
+
submitIdentifier(identifier) {
|
|
39755
|
+
if (!identifier)
|
|
39756
|
+
return;
|
|
39757
|
+
this.identifierSubmit.emit({ url: this.url, identifier });
|
|
39758
|
+
this.service.identifierInService = null;
|
|
39759
|
+
}
|
|
39760
|
+
getIdentifierPlaceholder() {
|
|
39761
|
+
const baseKey = 'editor.record.form.field.onlineResource.edit.identifier.placeholder';
|
|
39762
|
+
return this.service.accessServiceProtocol === 'wps'
|
|
39763
|
+
? `${baseKey}.wps`
|
|
39764
|
+
: baseKey;
|
|
39765
|
+
}
|
|
39680
39766
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OnlineServiceResourceInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
39681
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: OnlineServiceResourceInputComponent, isStandalone: true, selector: "gn-ui-online-service-resource-input", inputs: { service: "service", protocolHint: "protocolHint", disabled: "disabled" },
|
|
39767
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: OnlineServiceResourceInputComponent, isStandalone: true, selector: "gn-ui-online-service-resource-input", inputs: { service: "service", protocolHint: "protocolHint", disabled: "disabled" }, outputs: { urlChange: "urlChange", identifierSubmit: "identifierSubmit" }, providers: [
|
|
39768
|
+
provideIcons({ iconoirCloudUpload }),
|
|
39769
|
+
provideNgIconsConfig({
|
|
39770
|
+
size: '1.5em',
|
|
39771
|
+
}),
|
|
39772
|
+
], usesOnChanges: true, ngImport: i0, template: "<div class=\"flex flex-row justify-between\">\n <h3 class=\"text-[16px] font-bold text-main mb-[12px]\" translate>\n editor.record.form.field.onlineResource.edit.protocol\n </h3>\n <span\n *ngIf=\"protocolHint\"\n class=\"material-symbols-outlined m-2 gn-ui-icon-small\"\n [matTooltip]=\"protocolHint\"\n matTooltipPosition=\"above\"\n >\n help\n </span>\n</div>\n<div class=\"flex flex-row items-center gap-4 h-[48px]\">\n <mat-radio-group\n aria-labelledby=\"example-radio-group-label\"\n class=\"flex flex-row gap-[8px]\"\n [(ngModel)]=\"service.accessServiceProtocol\"\n [disabled]=\"disabled\"\n >\n <mat-radio-button\n *ngFor=\"let protocolOption of protocolOptions\"\n [value]=\"protocolOption.value\"\n >\n {{ protocolOption.label | translate }}\n </mat-radio-button>\n </mat-radio-group>\n</div>\n\n<div class=\"flex flex-col gap-4\">\n <gn-ui-url-input\n class=\"w-full\"\n (valueChange)=\"handleUrlChange($event)\"\n [disabled]=\"disabled\"\n [value]=\"url\"\n [showValidateButton]=\"false\"\n >\n <ng-icon name=\"iconoirCloudUpload\"></ng-icon>\n </gn-ui-url-input>\n\n <gn-ui-text-input\n class=\"grow border-b border-gray-300 pb-4\"\n [(value)]=\"service.identifierInService\"\n [placeholder]=\"getIdentifierPlaceholder() | translate\"\n data-cy=\"identifier-in-service\"\n [disabled]=\"disabled\"\n ></gn-ui-text-input>\n\n <gn-ui-button\n (buttonClick)=\"submitIdentifier(service.identifierInService)\"\n [disabled]=\"disabled || !service.identifierInService || !url\"\n type=\"primary\"\n >\n <span class=\"text-white font-bold\" translate\n >editor.record.form.field.onlineResource.edit.identifier.submit</span\n >\n </gn-ui-button>\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i1$4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatRadioModule }, { kind: "directive", type: i4$1.MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: i4$1.MatRadioButton, selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioButton"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "component", type: TextInputComponent, selector: "gn-ui-text-input", inputs: ["value", "extraClass", "placeholder", "required", "disabled"], outputs: ["valueChange"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: UrlInputComponent, selector: "gn-ui-url-input", inputs: ["value", "extraClass", "placeholder", "disabled", "showValidateButton"], outputs: ["valueChange", "uploadClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
39682
39773
|
}
|
|
39683
39774
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OnlineServiceResourceInputComponent, decorators: [{
|
|
39684
39775
|
type: Component,
|
|
39685
39776
|
args: [{ selector: 'gn-ui-online-service-resource-input', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
39777
|
+
ButtonComponent,
|
|
39686
39778
|
CommonModule,
|
|
39779
|
+
FormsModule,
|
|
39687
39780
|
MatTooltipModule,
|
|
39688
39781
|
MatRadioModule,
|
|
39689
|
-
|
|
39782
|
+
NgIconComponent,
|
|
39690
39783
|
TextInputComponent,
|
|
39691
39784
|
TranslateModule,
|
|
39692
|
-
|
|
39785
|
+
UrlInputComponent,
|
|
39786
|
+
], providers: [
|
|
39787
|
+
provideIcons({ iconoirCloudUpload }),
|
|
39788
|
+
provideNgIconsConfig({
|
|
39789
|
+
size: '1.5em',
|
|
39790
|
+
}),
|
|
39791
|
+
], template: "<div class=\"flex flex-row justify-between\">\n <h3 class=\"text-[16px] font-bold text-main mb-[12px]\" translate>\n editor.record.form.field.onlineResource.edit.protocol\n </h3>\n <span\n *ngIf=\"protocolHint\"\n class=\"material-symbols-outlined m-2 gn-ui-icon-small\"\n [matTooltip]=\"protocolHint\"\n matTooltipPosition=\"above\"\n >\n help\n </span>\n</div>\n<div class=\"flex flex-row items-center gap-4 h-[48px]\">\n <mat-radio-group\n aria-labelledby=\"example-radio-group-label\"\n class=\"flex flex-row gap-[8px]\"\n [(ngModel)]=\"service.accessServiceProtocol\"\n [disabled]=\"disabled\"\n >\n <mat-radio-button\n *ngFor=\"let protocolOption of protocolOptions\"\n [value]=\"protocolOption.value\"\n >\n {{ protocolOption.label | translate }}\n </mat-radio-button>\n </mat-radio-group>\n</div>\n\n<div class=\"flex flex-col gap-4\">\n <gn-ui-url-input\n class=\"w-full\"\n (valueChange)=\"handleUrlChange($event)\"\n [disabled]=\"disabled\"\n [value]=\"url\"\n [showValidateButton]=\"false\"\n >\n <ng-icon name=\"iconoirCloudUpload\"></ng-icon>\n </gn-ui-url-input>\n\n <gn-ui-text-input\n class=\"grow border-b border-gray-300 pb-4\"\n [(value)]=\"service.identifierInService\"\n [placeholder]=\"getIdentifierPlaceholder() | translate\"\n data-cy=\"identifier-in-service\"\n [disabled]=\"disabled\"\n ></gn-ui-text-input>\n\n <gn-ui-button\n (buttonClick)=\"submitIdentifier(service.identifierInService)\"\n [disabled]=\"disabled || !service.identifierInService || !url\"\n type=\"primary\"\n >\n <span class=\"text-white font-bold\" translate\n >editor.record.form.field.onlineResource.edit.identifier.submit</span\n >\n </gn-ui-button>\n</div>\n" }]
|
|
39693
39792
|
}], propDecorators: { service: [{
|
|
39694
39793
|
type: Input
|
|
39695
39794
|
}], protocolHint: [{
|
|
39696
39795
|
type: Input
|
|
39697
39796
|
}], disabled: [{
|
|
39698
39797
|
type: Input
|
|
39798
|
+
}], urlChange: [{
|
|
39799
|
+
type: Output
|
|
39800
|
+
}], identifierSubmit: [{
|
|
39801
|
+
type: Output
|
|
39699
39802
|
}] } });
|
|
39700
39803
|
|
|
39701
39804
|
class FormFieldOnlineResourcesComponent {
|
|
@@ -39793,6 +39896,15 @@ class FormFieldOnlineResourcesComponent {
|
|
|
39793
39896
|
},
|
|
39794
39897
|
]);
|
|
39795
39898
|
}
|
|
39899
|
+
handleIdentifierSubmit(payload) {
|
|
39900
|
+
this.valueChange.emit([
|
|
39901
|
+
...this.allResources,
|
|
39902
|
+
{
|
|
39903
|
+
...this.newService,
|
|
39904
|
+
url: new URL(payload.url),
|
|
39905
|
+
},
|
|
39906
|
+
]);
|
|
39907
|
+
}
|
|
39796
39908
|
handleServiceModify(oldService, newService) {
|
|
39797
39909
|
oldService.accessServiceProtocol = newService.accessServiceProtocol;
|
|
39798
39910
|
oldService.identifierInService = newService.identifierInService;
|
|
@@ -39846,7 +39958,7 @@ class FormFieldOnlineResourcesComponent {
|
|
|
39846
39958
|
});
|
|
39847
39959
|
}
|
|
39848
39960
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormFieldOnlineResourcesComponent, deps: [{ token: NotificationsService }, { token: i1$1.TranslateService }, { token: PlatformServiceInterface }, { token: i0.ChangeDetectorRef }, { token: i1$b.MatDialog }, { token: EditorFacade }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
39849
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FormFieldOnlineResourcesComponent, isStandalone: true, selector: "gn-ui-form-field-online-resources", inputs: { metadataUuid: "metadataUuid", value: "value" }, outputs: { valueChange: "valueChange" }, viewQueries: [{ propertyName: "dialogTemplate", first: true, predicate: ["dialogTemplate"], descendants: true }], ngImport: i0, template: "<div class=\"flex flex-col\">\n <gn-ui-switch-toggle\n [options]=\"typeOptions\"\n (selectedValue)=\"onSelectedTypeChange($event.value)\"\n extraClasses=\"grow text-sm\"\n data-cy=\"online-resources-type\"\n [disabled]=\"disabled$ | async\"\n ></gn-ui-switch-toggle>\n <div class=\"h-[8px]\"></div>\n <gn-ui-file-input\n *ngIf=\"selectedType === 'download'\"\n [maxSizeMB]=\"MAX_UPLOAD_SIZE_MB\"\n (fileChange)=\"handleFileChange($event)\"\n (uploadCancel)=\"handleUploadCancel()\"\n [uploadProgress]=\"uploadProgress\"\n (urlChange)=\"handleDownloadUrlChange($event)\"\n [disabled]=\"disabled$ | async\"\n ></gn-ui-file-input>\n <div\n *ngIf=\"selectedType === 'service'\"\n class=\"w-full border-2 border-dashed rounded-lg p-6 flex flex-col gap-[16px]\"\n >\n <gn-ui-online-service-resource-input\n [service]=\"newService\"\n [disabled]=\"disabled$ | async\"\n
|
|
39961
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FormFieldOnlineResourcesComponent, isStandalone: true, selector: "gn-ui-form-field-online-resources", inputs: { metadataUuid: "metadataUuid", value: "value" }, outputs: { valueChange: "valueChange" }, viewQueries: [{ propertyName: "dialogTemplate", first: true, predicate: ["dialogTemplate"], descendants: true }], ngImport: i0, template: "<div class=\"flex flex-col\">\n <gn-ui-switch-toggle\n [options]=\"typeOptions\"\n (selectedValue)=\"onSelectedTypeChange($event.value)\"\n extraClasses=\"grow text-sm\"\n data-cy=\"online-resources-type\"\n [disabled]=\"disabled$ | async\"\n ></gn-ui-switch-toggle>\n <div class=\"h-[8px]\"></div>\n <gn-ui-file-input\n *ngIf=\"selectedType === 'download'\"\n [maxSizeMB]=\"MAX_UPLOAD_SIZE_MB\"\n (fileChange)=\"handleFileChange($event)\"\n (uploadCancel)=\"handleUploadCancel()\"\n [uploadProgress]=\"uploadProgress\"\n (urlChange)=\"handleDownloadUrlChange($event)\"\n [disabled]=\"disabled$ | async\"\n ></gn-ui-file-input>\n <div\n *ngIf=\"selectedType === 'service'\"\n class=\"w-full border-2 border-dashed rounded-lg p-6 flex flex-col gap-[16px]\"\n >\n <gn-ui-online-service-resource-input\n [service]=\"newService\"\n [disabled]=\"disabled$ | async\"\n (urlChange)=\"handleServiceUrlChange($event)\"\n (identifierSubmit)=\"handleIdentifierSubmit($event)\"\n ></gn-ui-online-service-resource-input>\n </div>\n <div class=\"h-[8px]\"></div>\n <gn-ui-sortable-list\n [items]=\"notLinkResources\"\n (itemsOrderChange)=\"handleResourcesChange($event)\"\n [elementTemplate]=\"template\"\n >\n </gn-ui-sortable-list>\n <ng-template #template let-onlineResource let-index=\"index\">\n <gn-ui-online-resource-card\n [onlineResource]=\"onlineResource\"\n (modifyClick)=\"handleResourceModify(onlineResource, index)\"\n ></gn-ui-online-resource-card>\n </ng-template>\n\n <ng-template #dialogTemplate let-onlineResource>\n <div class=\"flex flex-col gap-[16px]\">\n <div>\n <h3 class=\"text-[16px] font-bold text-main mb-[12px]\" translate>\n editor.record.form.field.onlineResource.edit.title\n </h3>\n <gn-ui-text-input [(value)]=\"onlineResource.name\"></gn-ui-text-input>\n </div>\n <div>\n <h3 class=\"text-[16px] font-bold text-main mb-[12px]\" translate>\n editor.record.form.field.onlineResource.edit.description\n </h3>\n <gn-ui-text-area\n [(value)]=\"onlineResource.description\"\n ></gn-ui-text-area>\n </div>\n <ng-container *ngIf=\"onlineResource.type === 'service'\">\n <span class=\"w-full border-b border-gray-300\"></span>\n <gn-ui-online-service-resource-input\n [service]=\"onlineResource\"\n [disabled]=\"disabled$ | async\"\n ></gn-ui-online-service-resource-input>\n </ng-container>\n <span class=\"w-full border-b border-gray-300\"></span>\n <gn-ui-url-input\n class=\"w-full\"\n [disabled]=\"true\"\n [value]=\"onlineResource.url\"\n [showValidateButton]=\"false\"\n ></gn-ui-url-input>\n </div>\n </ng-template>\n <div\n *ngIf=\"disabled$ | async\"\n class=\"p-4 text-sm border border-primary bg-primary-lightest rounded-lg\"\n translate\n data-test=\"disabled-message\"\n >\n editor.record.form.field.draft.only.disabled\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "component", type: SwitchToggleComponent, selector: "gn-ui-switch-toggle", inputs: ["options", "ariaLabel", "extraClasses", "disabled"], outputs: ["selectedValue"] }, { kind: "component", type: FileInputComponent, selector: "gn-ui-file-input", inputs: ["maxSizeMB", "uploadProgress", "disabled"], outputs: ["fileChange", "urlChange", "uploadCancel"] }, { kind: "component", type: OnlineServiceResourceInputComponent, selector: "gn-ui-online-service-resource-input", inputs: ["service", "protocolHint", "disabled"], outputs: ["urlChange", "identifierSubmit"] }, { kind: "component", type: UrlInputComponent, selector: "gn-ui-url-input", inputs: ["value", "extraClass", "placeholder", "disabled", "showValidateButton"], outputs: ["valueChange", "uploadClick"] }, { kind: "component", type: SortableListComponent, selector: "gn-ui-sortable-list", inputs: ["elementTemplate", "items"], outputs: ["itemsOrderChange"] }, { kind: "component", type: OnlineResourceCardComponent, selector: "gn-ui-online-resource-card", inputs: ["onlineResource"], outputs: ["modifyClick"] }, { kind: "component", type: TextInputComponent, selector: "gn-ui-text-input", inputs: ["value", "extraClass", "placeholder", "required", "disabled"], outputs: ["valueChange"] }, { kind: "component", type: TextAreaComponent, selector: "gn-ui-text-area", inputs: ["value", "disabled", "extraClass", "placeholder", "required"], outputs: ["valueChange"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
39850
39962
|
}
|
|
39851
39963
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormFieldOnlineResourcesComponent, decorators: [{
|
|
39852
39964
|
type: Component,
|
|
@@ -39861,7 +39973,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
39861
39973
|
TextInputComponent,
|
|
39862
39974
|
TextAreaComponent,
|
|
39863
39975
|
TranslateModule,
|
|
39864
|
-
], template: "<div class=\"flex flex-col\">\n <gn-ui-switch-toggle\n [options]=\"typeOptions\"\n (selectedValue)=\"onSelectedTypeChange($event.value)\"\n extraClasses=\"grow text-sm\"\n data-cy=\"online-resources-type\"\n [disabled]=\"disabled$ | async\"\n ></gn-ui-switch-toggle>\n <div class=\"h-[8px]\"></div>\n <gn-ui-file-input\n *ngIf=\"selectedType === 'download'\"\n [maxSizeMB]=\"MAX_UPLOAD_SIZE_MB\"\n (fileChange)=\"handleFileChange($event)\"\n (uploadCancel)=\"handleUploadCancel()\"\n [uploadProgress]=\"uploadProgress\"\n (urlChange)=\"handleDownloadUrlChange($event)\"\n [disabled]=\"disabled$ | async\"\n ></gn-ui-file-input>\n <div\n *ngIf=\"selectedType === 'service'\"\n class=\"w-full border-2 border-dashed rounded-lg p-6 flex flex-col gap-[16px]\"\n >\n <gn-ui-online-service-resource-input\n [service]=\"newService\"\n [disabled]=\"disabled$ | async\"\n
|
|
39976
|
+
], template: "<div class=\"flex flex-col\">\n <gn-ui-switch-toggle\n [options]=\"typeOptions\"\n (selectedValue)=\"onSelectedTypeChange($event.value)\"\n extraClasses=\"grow text-sm\"\n data-cy=\"online-resources-type\"\n [disabled]=\"disabled$ | async\"\n ></gn-ui-switch-toggle>\n <div class=\"h-[8px]\"></div>\n <gn-ui-file-input\n *ngIf=\"selectedType === 'download'\"\n [maxSizeMB]=\"MAX_UPLOAD_SIZE_MB\"\n (fileChange)=\"handleFileChange($event)\"\n (uploadCancel)=\"handleUploadCancel()\"\n [uploadProgress]=\"uploadProgress\"\n (urlChange)=\"handleDownloadUrlChange($event)\"\n [disabled]=\"disabled$ | async\"\n ></gn-ui-file-input>\n <div\n *ngIf=\"selectedType === 'service'\"\n class=\"w-full border-2 border-dashed rounded-lg p-6 flex flex-col gap-[16px]\"\n >\n <gn-ui-online-service-resource-input\n [service]=\"newService\"\n [disabled]=\"disabled$ | async\"\n (urlChange)=\"handleServiceUrlChange($event)\"\n (identifierSubmit)=\"handleIdentifierSubmit($event)\"\n ></gn-ui-online-service-resource-input>\n </div>\n <div class=\"h-[8px]\"></div>\n <gn-ui-sortable-list\n [items]=\"notLinkResources\"\n (itemsOrderChange)=\"handleResourcesChange($event)\"\n [elementTemplate]=\"template\"\n >\n </gn-ui-sortable-list>\n <ng-template #template let-onlineResource let-index=\"index\">\n <gn-ui-online-resource-card\n [onlineResource]=\"onlineResource\"\n (modifyClick)=\"handleResourceModify(onlineResource, index)\"\n ></gn-ui-online-resource-card>\n </ng-template>\n\n <ng-template #dialogTemplate let-onlineResource>\n <div class=\"flex flex-col gap-[16px]\">\n <div>\n <h3 class=\"text-[16px] font-bold text-main mb-[12px]\" translate>\n editor.record.form.field.onlineResource.edit.title\n </h3>\n <gn-ui-text-input [(value)]=\"onlineResource.name\"></gn-ui-text-input>\n </div>\n <div>\n <h3 class=\"text-[16px] font-bold text-main mb-[12px]\" translate>\n editor.record.form.field.onlineResource.edit.description\n </h3>\n <gn-ui-text-area\n [(value)]=\"onlineResource.description\"\n ></gn-ui-text-area>\n </div>\n <ng-container *ngIf=\"onlineResource.type === 'service'\">\n <span class=\"w-full border-b border-gray-300\"></span>\n <gn-ui-online-service-resource-input\n [service]=\"onlineResource\"\n [disabled]=\"disabled$ | async\"\n ></gn-ui-online-service-resource-input>\n </ng-container>\n <span class=\"w-full border-b border-gray-300\"></span>\n <gn-ui-url-input\n class=\"w-full\"\n [disabled]=\"true\"\n [value]=\"onlineResource.url\"\n [showValidateButton]=\"false\"\n ></gn-ui-url-input>\n </div>\n </ng-template>\n <div\n *ngIf=\"disabled$ | async\"\n class=\"p-4 text-sm border border-primary bg-primary-lightest rounded-lg\"\n translate\n data-test=\"disabled-message\"\n >\n editor.record.form.field.draft.only.disabled\n </div>\n</div>\n" }]
|
|
39865
39977
|
}], ctorParameters: () => [{ type: NotificationsService }, { type: i1$1.TranslateService }, { type: PlatformServiceInterface }, { type: i0.ChangeDetectorRef }, { type: i1$b.MatDialog }, { type: EditorFacade }], propDecorators: { metadataUuid: [{
|
|
39866
39978
|
type: Input
|
|
39867
39979
|
}], value: [{
|
|
@@ -40006,9 +40118,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
40006
40118
|
type: Output
|
|
40007
40119
|
}] } });
|
|
40008
40120
|
|
|
40121
|
+
const initialListValues = updateFrequencyCodeValues.filter((code) => !['unknown', 'notPlanned', 'asNeeded', 'irregular'].includes(code));
|
|
40009
40122
|
class FormFieldUpdateFrequencyComponent {
|
|
40010
40123
|
get planned() {
|
|
40011
|
-
return
|
|
40124
|
+
return this.value && this.value !== 'notPlanned' && this.value !== 'unknown';
|
|
40012
40125
|
}
|
|
40013
40126
|
constructor(translateService) {
|
|
40014
40127
|
this.translateService = translateService;
|
|
@@ -40017,13 +40130,26 @@ class FormFieldUpdateFrequencyComponent {
|
|
|
40017
40130
|
}
|
|
40018
40131
|
async ngOnInit() {
|
|
40019
40132
|
this.choices = await this.getInitialChoices();
|
|
40133
|
+
if (!this.planned) {
|
|
40134
|
+
return;
|
|
40135
|
+
}
|
|
40136
|
+
if (typeof this.value === 'string' &&
|
|
40137
|
+
!this.choices.map((choice) => choice.value).includes(this.value)) {
|
|
40138
|
+
this.choices = [
|
|
40139
|
+
{
|
|
40140
|
+
value: this.value,
|
|
40141
|
+
label: await firstValueFrom(this.translateService.get(`domain.record.updateFrequency.${this.value}`)),
|
|
40142
|
+
},
|
|
40143
|
+
...this.choices,
|
|
40144
|
+
];
|
|
40145
|
+
}
|
|
40020
40146
|
if (typeof this.value === 'string') {
|
|
40021
40147
|
return;
|
|
40022
40148
|
}
|
|
40023
40149
|
const updatedTimes = this.value.updatedTimes;
|
|
40024
40150
|
const per = this.value.per;
|
|
40025
40151
|
// the update frequency is not in the list; make it appear there
|
|
40026
|
-
if (updatedTimes
|
|
40152
|
+
if (updatedTimes) {
|
|
40027
40153
|
this.choices = [
|
|
40028
40154
|
{
|
|
40029
40155
|
value: `${per}.${updatedTimes}`,
|
|
@@ -40040,73 +40166,34 @@ class FormFieldUpdateFrequencyComponent {
|
|
|
40040
40166
|
this.valueChange.emit('notPlanned');
|
|
40041
40167
|
}
|
|
40042
40168
|
else {
|
|
40043
|
-
this.valueChange.emit(
|
|
40169
|
+
this.valueChange.emit(this.choices[0].value);
|
|
40044
40170
|
}
|
|
40045
40171
|
}
|
|
40046
40172
|
get selectedFrequency() {
|
|
40047
|
-
if (!this.value
|
|
40173
|
+
if (!this.value)
|
|
40048
40174
|
return null;
|
|
40175
|
+
if (typeof this.value === 'string')
|
|
40176
|
+
return this.value;
|
|
40049
40177
|
const { updatedTimes, per } = this.value;
|
|
40050
40178
|
return `${per}.${updatedTimes}`;
|
|
40051
40179
|
}
|
|
40052
40180
|
onSelectFrequencyValue(value) {
|
|
40053
|
-
|
|
40054
|
-
|
|
40055
|
-
|
|
40056
|
-
|
|
40057
|
-
|
|
40181
|
+
if (!value.includes('.')) {
|
|
40182
|
+
this.valueChange.emit(value);
|
|
40183
|
+
}
|
|
40184
|
+
else {
|
|
40185
|
+
const split = value.split('.');
|
|
40186
|
+
this.valueChange.emit({
|
|
40187
|
+
updatedTimes: Number(split[1]),
|
|
40188
|
+
per: split[0],
|
|
40189
|
+
});
|
|
40190
|
+
}
|
|
40058
40191
|
}
|
|
40059
40192
|
async getInitialChoices() {
|
|
40060
|
-
return
|
|
40061
|
-
|
|
40062
|
-
|
|
40063
|
-
|
|
40064
|
-
count: 1,
|
|
40065
|
-
})),
|
|
40066
|
-
},
|
|
40067
|
-
{
|
|
40068
|
-
value: 'day.2',
|
|
40069
|
-
label: await firstValueFrom(this.translateService.get('domain.record.updateFrequency.day', {
|
|
40070
|
-
count: 2,
|
|
40071
|
-
})),
|
|
40072
|
-
},
|
|
40073
|
-
{
|
|
40074
|
-
value: 'week.1',
|
|
40075
|
-
label: await firstValueFrom(this.translateService.get('domain.record.updateFrequency.week', {
|
|
40076
|
-
count: 1,
|
|
40077
|
-
})),
|
|
40078
|
-
},
|
|
40079
|
-
{
|
|
40080
|
-
value: 'week.2',
|
|
40081
|
-
label: await firstValueFrom(this.translateService.get('domain.record.updateFrequency.week', {
|
|
40082
|
-
count: 2,
|
|
40083
|
-
})),
|
|
40084
|
-
},
|
|
40085
|
-
{
|
|
40086
|
-
value: 'month.1',
|
|
40087
|
-
label: await firstValueFrom(this.translateService.get('domain.record.updateFrequency.month', {
|
|
40088
|
-
count: 1,
|
|
40089
|
-
})),
|
|
40090
|
-
},
|
|
40091
|
-
{
|
|
40092
|
-
value: 'month.2',
|
|
40093
|
-
label: await firstValueFrom(this.translateService.get('domain.record.updateFrequency.month', {
|
|
40094
|
-
count: 2,
|
|
40095
|
-
})),
|
|
40096
|
-
},
|
|
40097
|
-
{
|
|
40098
|
-
value: 'year.1',
|
|
40099
|
-
label: await firstValueFrom(this.translateService.get('domain.record.updateFrequency.year', {
|
|
40100
|
-
count: 1,
|
|
40101
|
-
})),
|
|
40102
|
-
},
|
|
40103
|
-
{
|
|
40104
|
-
value: 'year.2',
|
|
40105
|
-
label: await firstValueFrom(this.translateService.get('domain.record.updateFrequency.year', {
|
|
40106
|
-
count: 2,
|
|
40107
|
-
})),
|
|
40108
|
-
},
|
|
40109
|
-
];
|
|
40193
|
+
return Promise.all(initialListValues.map(async (value) => ({
|
|
40194
|
+
value,
|
|
40195
|
+
label: await firstValueFrom(this.translateService.get(`domain.record.updateFrequency.${value}`)),
|
|
40196
|
+
})));
|
|
40110
40197
|
}
|
|
40111
40198
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormFieldUpdateFrequencyComponent, deps: [{ token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
40112
40199
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FormFieldUpdateFrequencyComponent, isStandalone: true, selector: "gn-ui-form-field-update-frequency", inputs: { value: "value" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div class=\"flex flex-col gap-2\">\n <gn-ui-check-toggle\n [label]=\"'editor.record.form.updateFrequency.planned' | translate\"\n [value]=\"planned\"\n (toggled)=\"onPlannedToggled()\"\n ></gn-ui-check-toggle>\n <gn-ui-dropdown-selector\n title=\"updateFrequency\"\n [showTitle]=\"false\"\n [choices]=\"choices\"\n [selected]=\"selectedFrequency\"\n (selectValue)=\"onSelectFrequencyValue($event)\"\n [disabled]=\"!planned\"\n [extraBtnClass]=\"'input-as-button gn-ui-text-input'\"\n >\n </gn-ui-dropdown-selector>\n</div>\n", styles: ["gn-ui-dropdown-selector{max-width:calc(50% - 16px)}\n"], dependencies: [{ kind: "component", type: CheckToggleComponent, selector: "gn-ui-check-toggle", inputs: ["title", "label", "value", "color"], outputs: ["toggled"] }, { kind: "component", type: DropdownSelectorComponent, selector: "gn-ui-dropdown-selector", inputs: ["title", "showTitle", "ariaName", "choices", "selected", "maxRows", "extraBtnClass", "minWidth", "disabled"], outputs: ["selectValue"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
@@ -40299,7 +40386,7 @@ class ConstraintCardComponent {
|
|
|
40299
40386
|
provideNgIconsConfig({
|
|
40300
40387
|
size: '1.5rem',
|
|
40301
40388
|
}),
|
|
40302
|
-
], ngImport: i0, template: "<div class=\"flex flex-col gap-1 border rounded-lg p-4\">\n <gn-ui-form-field-rich\n class=\"mt-[-8px]\"\n [label]=\"label\"\n [hint]=\"hint | translate\"\n [value]=\"constraint_.text ?? ''\"\n (valueChange)=\"handleConstraintTextChange($event)\"\n ></gn-ui-form-field-rich>\n\n <div *ngIf=\"!showUrl\" class=\"flex-none mt-1\">\n <gn-ui-button\n (buttonClick)=\"showUrl = true\"\n type=\"gray\"\n data-cy=\"add-url-btn\"\n >\n <ng-icon name=\"iconoirPlus\" class=\"text-primary\"></ng-icon> \n <span translate>input.image.displayUrlInput</span>\n </gn-ui-button>\n </div>\n <gn-ui-url-input\n *ngIf=\"showUrl\"\n class=\"mt-3.5\"\n [value]=\"constraint_.url?.toString()\"\n (valueChange)=\"handleURLChange($event)\"\n [
|
|
40389
|
+
], ngImport: i0, template: "<div class=\"flex flex-col gap-1 border rounded-lg p-4\">\n <gn-ui-form-field-rich\n class=\"mt-[-8px]\"\n [label]=\"label\"\n [hint]=\"hint | translate\"\n [value]=\"constraint_.text ?? ''\"\n (valueChange)=\"handleConstraintTextChange($event)\"\n ></gn-ui-form-field-rich>\n\n <div *ngIf=\"!showUrl\" class=\"flex-none mt-1\">\n <gn-ui-button\n (buttonClick)=\"showUrl = true\"\n type=\"gray\"\n data-cy=\"add-url-btn\"\n >\n <ng-icon name=\"iconoirPlus\" class=\"text-primary\"></ng-icon> \n <span translate>input.image.displayUrlInput</span>\n </gn-ui-button>\n </div>\n <gn-ui-url-input\n *ngIf=\"showUrl\"\n class=\"mt-3.5\"\n [value]=\"constraint_.url?.toString()\"\n (valueChange)=\"handleURLChange($event)\"\n [showValidateButton]=\"false\"\n >\n </gn-ui-url-input>\n</div>\n", styles: [":host{--gn-ui-button-padding: 8px 8px;--gn-ui-button-rounded: 8px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FormFieldRichComponent, selector: "gn-ui-form-field-rich", inputs: ["label", "hint", "placeholder", "value"], outputs: ["valueChange"] }, { kind: "component", type: UrlInputComponent, selector: "gn-ui-url-input", inputs: ["value", "extraClass", "placeholder", "disabled", "showValidateButton"], outputs: ["valueChange", "uploadClick"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
40303
40390
|
}
|
|
40304
40391
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ConstraintCardComponent, decorators: [{
|
|
40305
40392
|
type: Component,
|
|
@@ -40317,7 +40404,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
40317
40404
|
provideNgIconsConfig({
|
|
40318
40405
|
size: '1.5rem',
|
|
40319
40406
|
}),
|
|
40320
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"flex flex-col gap-1 border rounded-lg p-4\">\n <gn-ui-form-field-rich\n class=\"mt-[-8px]\"\n [label]=\"label\"\n [hint]=\"hint | translate\"\n [value]=\"constraint_.text ?? ''\"\n (valueChange)=\"handleConstraintTextChange($event)\"\n ></gn-ui-form-field-rich>\n\n <div *ngIf=\"!showUrl\" class=\"flex-none mt-1\">\n <gn-ui-button\n (buttonClick)=\"showUrl = true\"\n type=\"gray\"\n data-cy=\"add-url-btn\"\n >\n <ng-icon name=\"iconoirPlus\" class=\"text-primary\"></ng-icon> \n <span translate>input.image.displayUrlInput</span>\n </gn-ui-button>\n </div>\n <gn-ui-url-input\n *ngIf=\"showUrl\"\n class=\"mt-3.5\"\n [value]=\"constraint_.url?.toString()\"\n (valueChange)=\"handleURLChange($event)\"\n [
|
|
40407
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"flex flex-col gap-1 border rounded-lg p-4\">\n <gn-ui-form-field-rich\n class=\"mt-[-8px]\"\n [label]=\"label\"\n [hint]=\"hint | translate\"\n [value]=\"constraint_.text ?? ''\"\n (valueChange)=\"handleConstraintTextChange($event)\"\n ></gn-ui-form-field-rich>\n\n <div *ngIf=\"!showUrl\" class=\"flex-none mt-1\">\n <gn-ui-button\n (buttonClick)=\"showUrl = true\"\n type=\"gray\"\n data-cy=\"add-url-btn\"\n >\n <ng-icon name=\"iconoirPlus\" class=\"text-primary\"></ng-icon> \n <span translate>input.image.displayUrlInput</span>\n </gn-ui-button>\n </div>\n <gn-ui-url-input\n *ngIf=\"showUrl\"\n class=\"mt-3.5\"\n [value]=\"constraint_.url?.toString()\"\n (valueChange)=\"handleURLChange($event)\"\n [showValidateButton]=\"false\"\n >\n </gn-ui-url-input>\n</div>\n", styles: [":host{--gn-ui-button-padding: 8px 8px;--gn-ui-button-rounded: 8px}\n"] }]
|
|
40321
40408
|
}], propDecorators: { label: [{
|
|
40322
40409
|
type: Input
|
|
40323
40410
|
}], constraint: [{
|
|
@@ -40472,7 +40559,7 @@ class FormFieldComponent {
|
|
|
40472
40559
|
return this.value;
|
|
40473
40560
|
}
|
|
40474
40561
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
40475
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FormFieldComponent, isStandalone: true, selector: "gn-ui-form-field", inputs: { uniqueIdentifier: "uniqueIdentifier", model: "model", modelSpecifier: "modelSpecifier", componentName: "componentName", config: "config", value: "value" }, outputs: { valueChange: "valueChange" }, viewQueries: [{ propertyName: "titleInput", first: true, predicate: ["titleInput"], descendants: true }], ngImport: i0, template: "<!-- TEMPORARY - disabling the open data switch -->\n<!-- <ng-container *ngIf=\"model === 'licenses'\">\n <gn-ui-form-field-open-data\n [value]=\"valueAsConstraints\"\n (valueChange)=\"valueChange.emit($event)\"\n (openDataChange)=\"toggleIsOpenData($event)\"\n ></gn-ui-form-field-open-data>\n</ng-container> -->\n<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 [ngSwitch]=\"model\">\n <ng-container *ngSwitchCase=\"'title'\">\n <div class=\"flex flex-row flex-start items-center gap-3 mb-[12px]\">\n <textarea\n #titleInput\n cdkTextareaAutosize\n #autosize=\"cdkTextareaAutosize\"\n cdkAutosizeMinRows=\"1\"\n data-test=\"recordTitleInput\"\n class=\"grow font-title text-3xl font-normal overflow-hidden\"\n (change)=\"valueChange.emit($event.target.value)\"\n [placeholder]=\"\n 'editor.record.form.field.title.placeholder' | translate\n \"\n >{{ valueAsString }}</textarea\n >\n <div class=\"flex flex-row justify-between self-start mt-0.5\">\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 *ngIf=\"config.hintKey\"\n class=\"material-symbols-outlined gn-ui-icon-small m-2\"\n [matTooltip]=\"config.hintKey! | translate\"\n matTooltipPosition=\"above\"\n >\n help\n </span>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'abstract'\">\n <gn-ui-form-field-rich\n [label]=\"config.labelKey! | translate\"\n [hint]=\"config.hintKey! | translate\"\n [value]=\"valueAsString\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-rich>\n </ng-container>\n <ng-container *ngSwitchCase=\"'overviews'\">\n <gn-ui-form-field-overviews\n [metadataUuid]=\"uniqueIdentifier\"\n [value]=\"valueAsOverviews\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-overviews>\n </ng-container>\n <ng-container *ngSwitchCase=\"'resourceIdentifier'\">\n <gn-ui-form-field-simple\n [type]=\"'text'\"\n [value]=\"valueAsString\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-simple>\n </ng-container>\n <ng-container *ngSwitchCase=\"'resourceCreated'\">\n <gn-ui-form-field-date\n [value]=\"valueAsDate\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-date>\n </ng-container>\n <ng-container *ngSwitchCase=\"'resourceUpdated'\">\n <gn-ui-form-field-date\n [value]=\"valueAsDate\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-date>\n </ng-container>\n <ng-container *ngSwitchCase=\"'updateFrequency'\">\n <gn-ui-form-field-update-frequency\n [value]=\"valueAsUpdateFrequency\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-update-frequency>\n </ng-container>\n <ng-container *ngSwitchCase=\"'temporalExtents'\">\n <gn-ui-form-field-temporal-extents\n [value]=\"valueAsTemporalExtents\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-temporal-extents>\n </ng-container>\n <ng-container *ngSwitchCase=\"'spatialExtents'\">\n <gn-ui-form-field-spatial-extent></gn-ui-form-field-spatial-extent>\n </ng-container>\n <ng-container *ngSwitchCase=\"'keywords'\">\n <gn-ui-form-field-keywords\n [value]=\"valueAsKeywords\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-keywords>\n </ng-container>\n <ng-container *ngSwitchCase=\"'licenses'\">\n <gn-ui-form-field-license\n [label]=\"config.labelKey! | translate\"\n [recordConstraints]=\"valueAsConstraints\"\n (recordConstraintsChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-license>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'legalConstraints'\">\n <ng-container *ngTemplateOutlet=\"formFieldConstraints\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'securityConstraints'\">\n <ng-container *ngTemplateOutlet=\"formFieldConstraints\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'otherConstraints'\">\n <ng-container *ngTemplateOutlet=\"formFieldConstraints\"></ng-container\n ></ng-container>\n <ng-template #formFieldConstraints>\n <gn-ui-form-field-constraints\n [label]=\"config.labelKey\"\n [value]=\"valueAsConstraints\"\n [constraintType]=\"model\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-constraints\n ></ng-template>\n\n <ng-container *ngSwitchCase=\"'contactsForResource'\">\n <gn-ui-form-field-contacts-for-resource\n [value]=\"valueAsIndividuals\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-contacts-for-resource>\n </ng-container>\n <ng-container *ngSwitchCase=\"'contacts'\">\n <gn-ui-form-field-contacts\n [value]=\"valueAsIndividuals\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-contacts>\n </ng-container>\n <ng-container *ngSwitchCase=\"'onlineResources'\">\n <gn-ui-form-field-online-resources\n *ngIf=\"modelSpecifier === 'onlineResourceType:!link'\"\n [metadataUuid]=\"uniqueIdentifier\"\n [value]=\"valueAsOnlineResources\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-online-resources>\n </ng-container>\n <ng-container *ngSwitchCase=\"'onlineResources'\">\n <gn-ui-form-field-online-link-resources\n *ngIf=\"modelSpecifier === 'onlineResourceType:link'\"\n [metadataUuid]=\"uniqueIdentifier\"\n [value]=\"valueAsOnlineResources\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-online-link-resources>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"!model\">\n <ng-container [ngSwitch]=\"componentName\">\n <ng-container *ngSwitchCase=\"'form-field-constraints-shortcuts'\">\n <gn-ui-form-field-constraints-shortcuts></gn-ui-form-field-constraints-shortcuts>\n </ng-container>\n <ng-container *ngSwitchCase=\"'form-field-spatial-toggle'\">\n <gn-ui-form-field-spatial-toggle></gn-ui-form-field-spatial-toggle>\n </ng-container>\n </ng-container>\n </ng-container>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1$2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i1$4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: FormFieldWrapperComponent, selector: "gn-ui-form-field-wrapper", inputs: ["label", "hint"] }, { kind: "component", type: FormFieldLicenseComponent, selector: "gn-ui-form-field-license", inputs: ["label", "recordConstraints"], outputs: ["recordConstraintsChange"] }, { kind: "component", type: FormFieldDateComponent, selector: "gn-ui-form-field-date", inputs: ["value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldUpdateFrequencyComponent, selector: "gn-ui-form-field-update-frequency", inputs: ["value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldTemporalExtentsComponent, selector: "gn-ui-form-field-temporal-extents", inputs: ["value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldSimpleComponent, selector: "gn-ui-form-field-simple", inputs: ["type", "readonly", "invalid", "placeholder", "value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldRichComponent, selector: "gn-ui-form-field-rich", inputs: ["label", "hint", "placeholder", "value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldSpatialExtentComponent, selector: "gn-ui-form-field-spatial-extent" }, { kind: "component", type: FormFieldKeywordsComponent, selector: "gn-ui-form-field-keywords", inputs: ["value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldOverviewsComponent, selector: "gn-ui-form-field-overviews", inputs: ["metadataUuid", "value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldContactsForResourceComponent, selector: "gn-ui-form-field-contacts-for-resource", inputs: ["value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldOnlineResourcesComponent, selector: "gn-ui-form-field-online-resources", inputs: ["metadataUuid", "value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldOnlineLinkResourcesComponent, selector: "gn-ui-form-field-online-link-resources", inputs: ["metadataUuid", "value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldContactsComponent, selector: "gn-ui-form-field-contacts", inputs: ["value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldConstraintsComponent, selector: "gn-ui-form-field-constraints", inputs: ["label", "value", "constraintType"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldConstraintsShortcutsComponent, selector: "gn-ui-form-field-constraints-shortcuts" }, { kind: "component", type: FormFieldSpatialToggleComponent, selector: "gn-ui-form-field-spatial-toggle" }, { kind: "ngmodule", type: TextFieldModule }, { kind: "directive", type: i4$1.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
40562
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FormFieldComponent, isStandalone: true, selector: "gn-ui-form-field", inputs: { uniqueIdentifier: "uniqueIdentifier", model: "model", modelSpecifier: "modelSpecifier", componentName: "componentName", config: "config", value: "value" }, outputs: { valueChange: "valueChange" }, viewQueries: [{ propertyName: "titleInput", first: true, predicate: ["titleInput"], descendants: true }], ngImport: i0, template: "<!-- TEMPORARY - disabling the open data switch -->\n<!-- <ng-container *ngIf=\"model === 'licenses'\">\n <gn-ui-form-field-open-data\n [value]=\"valueAsConstraints\"\n (valueChange)=\"valueChange.emit($event)\"\n (openDataChange)=\"toggleIsOpenData($event)\"\n ></gn-ui-form-field-open-data>\n</ng-container> -->\n<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 [ngSwitch]=\"model\">\n <ng-container *ngSwitchCase=\"'title'\">\n <div class=\"flex flex-row flex-start items-center gap-3 mb-[12px]\">\n <textarea\n #titleInput\n cdkTextareaAutosize\n #autosize=\"cdkTextareaAutosize\"\n cdkAutosizeMinRows=\"1\"\n data-test=\"recordTitleInput\"\n class=\"grow font-title text-3xl font-normal overflow-hidden text-black/80\"\n (change)=\"valueChange.emit($event.target.value)\"\n [placeholder]=\"\n 'editor.record.form.field.title.placeholder' | translate\n \"\n >{{ valueAsString }}</textarea\n >\n <div class=\"flex flex-row justify-between self-start mt-0.5\">\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 *ngIf=\"config.hintKey\"\n class=\"material-symbols-outlined gn-ui-icon-small m-2\"\n [matTooltip]=\"config.hintKey! | translate\"\n matTooltipPosition=\"above\"\n >\n help\n </span>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'abstract'\">\n <gn-ui-form-field-rich\n [label]=\"config.labelKey! | translate\"\n [hint]=\"config.hintKey! | translate\"\n [value]=\"valueAsString\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-rich>\n </ng-container>\n <ng-container *ngSwitchCase=\"'overviews'\">\n <gn-ui-form-field-overviews\n [metadataUuid]=\"uniqueIdentifier\"\n [value]=\"valueAsOverviews\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-overviews>\n </ng-container>\n <ng-container *ngSwitchCase=\"'resourceIdentifier'\">\n <gn-ui-form-field-simple\n [type]=\"'text'\"\n [value]=\"valueAsString\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-simple>\n </ng-container>\n <ng-container *ngSwitchCase=\"'resourceCreated'\">\n <gn-ui-form-field-date\n [value]=\"valueAsDate\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-date>\n </ng-container>\n <ng-container *ngSwitchCase=\"'resourceUpdated'\">\n <gn-ui-form-field-date\n [value]=\"valueAsDate\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-date>\n </ng-container>\n <ng-container *ngSwitchCase=\"'updateFrequency'\">\n <gn-ui-form-field-update-frequency\n [value]=\"valueAsUpdateFrequency\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-update-frequency>\n </ng-container>\n <ng-container *ngSwitchCase=\"'temporalExtents'\">\n <gn-ui-form-field-temporal-extents\n [value]=\"valueAsTemporalExtents\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-temporal-extents>\n </ng-container>\n <ng-container *ngSwitchCase=\"'spatialExtents'\">\n <gn-ui-form-field-spatial-extent></gn-ui-form-field-spatial-extent>\n </ng-container>\n <ng-container *ngSwitchCase=\"'keywords'\">\n <gn-ui-form-field-keywords\n [value]=\"valueAsKeywords\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-keywords>\n </ng-container>\n <ng-container *ngSwitchCase=\"'licenses'\">\n <gn-ui-form-field-license\n [label]=\"config.labelKey! | translate\"\n [recordConstraints]=\"valueAsConstraints\"\n (recordConstraintsChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-license>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'legalConstraints'\">\n <ng-container *ngTemplateOutlet=\"formFieldConstraints\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'securityConstraints'\">\n <ng-container *ngTemplateOutlet=\"formFieldConstraints\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'otherConstraints'\">\n <ng-container *ngTemplateOutlet=\"formFieldConstraints\"></ng-container\n ></ng-container>\n <ng-template #formFieldConstraints>\n <gn-ui-form-field-constraints\n [label]=\"config.labelKey\"\n [value]=\"valueAsConstraints\"\n [constraintType]=\"model\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-constraints\n ></ng-template>\n\n <ng-container *ngSwitchCase=\"'contactsForResource'\">\n <gn-ui-form-field-contacts-for-resource\n [value]=\"valueAsIndividuals\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-contacts-for-resource>\n </ng-container>\n <ng-container *ngSwitchCase=\"'contacts'\">\n <gn-ui-form-field-contacts\n [value]=\"valueAsIndividuals\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-contacts>\n </ng-container>\n <ng-container *ngSwitchCase=\"'onlineResources'\">\n <gn-ui-form-field-online-resources\n *ngIf=\"modelSpecifier === 'onlineResourceType:!link'\"\n [metadataUuid]=\"uniqueIdentifier\"\n [value]=\"valueAsOnlineResources\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-online-resources>\n </ng-container>\n <ng-container *ngSwitchCase=\"'onlineResources'\">\n <gn-ui-form-field-online-link-resources\n *ngIf=\"modelSpecifier === 'onlineResourceType:link'\"\n [metadataUuid]=\"uniqueIdentifier\"\n [value]=\"valueAsOnlineResources\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-online-link-resources>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"!model\">\n <ng-container [ngSwitch]=\"componentName\">\n <ng-container *ngSwitchCase=\"'form-field-constraints-shortcuts'\">\n <gn-ui-form-field-constraints-shortcuts></gn-ui-form-field-constraints-shortcuts>\n </ng-container>\n <ng-container *ngSwitchCase=\"'form-field-spatial-toggle'\">\n <gn-ui-form-field-spatial-toggle></gn-ui-form-field-spatial-toggle>\n </ng-container>\n </ng-container>\n </ng-container>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1$2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i1$4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: FormFieldWrapperComponent, selector: "gn-ui-form-field-wrapper", inputs: ["label", "hint"] }, { kind: "component", type: FormFieldLicenseComponent, selector: "gn-ui-form-field-license", inputs: ["label", "recordConstraints"], outputs: ["recordConstraintsChange"] }, { kind: "component", type: FormFieldDateComponent, selector: "gn-ui-form-field-date", inputs: ["value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldUpdateFrequencyComponent, selector: "gn-ui-form-field-update-frequency", inputs: ["value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldTemporalExtentsComponent, selector: "gn-ui-form-field-temporal-extents", inputs: ["value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldSimpleComponent, selector: "gn-ui-form-field-simple", inputs: ["type", "readonly", "invalid", "placeholder", "value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldRichComponent, selector: "gn-ui-form-field-rich", inputs: ["label", "hint", "placeholder", "value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldSpatialExtentComponent, selector: "gn-ui-form-field-spatial-extent" }, { kind: "component", type: FormFieldKeywordsComponent, selector: "gn-ui-form-field-keywords", inputs: ["value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldOverviewsComponent, selector: "gn-ui-form-field-overviews", inputs: ["metadataUuid", "value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldContactsForResourceComponent, selector: "gn-ui-form-field-contacts-for-resource", inputs: ["value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldOnlineResourcesComponent, selector: "gn-ui-form-field-online-resources", inputs: ["metadataUuid", "value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldOnlineLinkResourcesComponent, selector: "gn-ui-form-field-online-link-resources", inputs: ["metadataUuid", "value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldContactsComponent, selector: "gn-ui-form-field-contacts", inputs: ["value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldConstraintsComponent, selector: "gn-ui-form-field-constraints", inputs: ["label", "value", "constraintType"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldConstraintsShortcutsComponent, selector: "gn-ui-form-field-constraints-shortcuts" }, { kind: "component", type: FormFieldSpatialToggleComponent, selector: "gn-ui-form-field-spatial-toggle" }, { kind: "ngmodule", type: TextFieldModule }, { kind: "directive", type: i4$2.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
40476
40563
|
}
|
|
40477
40564
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormFieldComponent, decorators: [{
|
|
40478
40565
|
type: Component,
|
|
@@ -40503,7 +40590,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
40503
40590
|
FormFieldConstraintsShortcutsComponent,
|
|
40504
40591
|
FormFieldSpatialToggleComponent,
|
|
40505
40592
|
TextFieldModule,
|
|
40506
|
-
], template: "<!-- TEMPORARY - disabling the open data switch -->\n<!-- <ng-container *ngIf=\"model === 'licenses'\">\n <gn-ui-form-field-open-data\n [value]=\"valueAsConstraints\"\n (valueChange)=\"valueChange.emit($event)\"\n (openDataChange)=\"toggleIsOpenData($event)\"\n ></gn-ui-form-field-open-data>\n</ng-container> -->\n<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 [ngSwitch]=\"model\">\n <ng-container *ngSwitchCase=\"'title'\">\n <div class=\"flex flex-row flex-start items-center gap-3 mb-[12px]\">\n <textarea\n #titleInput\n cdkTextareaAutosize\n #autosize=\"cdkTextareaAutosize\"\n cdkAutosizeMinRows=\"1\"\n data-test=\"recordTitleInput\"\n class=\"grow font-title text-3xl font-normal overflow-hidden\"\n (change)=\"valueChange.emit($event.target.value)\"\n [placeholder]=\"\n 'editor.record.form.field.title.placeholder' | translate\n \"\n >{{ valueAsString }}</textarea\n >\n <div class=\"flex flex-row justify-between self-start mt-0.5\">\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 *ngIf=\"config.hintKey\"\n class=\"material-symbols-outlined gn-ui-icon-small m-2\"\n [matTooltip]=\"config.hintKey! | translate\"\n matTooltipPosition=\"above\"\n >\n help\n </span>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'abstract'\">\n <gn-ui-form-field-rich\n [label]=\"config.labelKey! | translate\"\n [hint]=\"config.hintKey! | translate\"\n [value]=\"valueAsString\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-rich>\n </ng-container>\n <ng-container *ngSwitchCase=\"'overviews'\">\n <gn-ui-form-field-overviews\n [metadataUuid]=\"uniqueIdentifier\"\n [value]=\"valueAsOverviews\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-overviews>\n </ng-container>\n <ng-container *ngSwitchCase=\"'resourceIdentifier'\">\n <gn-ui-form-field-simple\n [type]=\"'text'\"\n [value]=\"valueAsString\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-simple>\n </ng-container>\n <ng-container *ngSwitchCase=\"'resourceCreated'\">\n <gn-ui-form-field-date\n [value]=\"valueAsDate\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-date>\n </ng-container>\n <ng-container *ngSwitchCase=\"'resourceUpdated'\">\n <gn-ui-form-field-date\n [value]=\"valueAsDate\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-date>\n </ng-container>\n <ng-container *ngSwitchCase=\"'updateFrequency'\">\n <gn-ui-form-field-update-frequency\n [value]=\"valueAsUpdateFrequency\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-update-frequency>\n </ng-container>\n <ng-container *ngSwitchCase=\"'temporalExtents'\">\n <gn-ui-form-field-temporal-extents\n [value]=\"valueAsTemporalExtents\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-temporal-extents>\n </ng-container>\n <ng-container *ngSwitchCase=\"'spatialExtents'\">\n <gn-ui-form-field-spatial-extent></gn-ui-form-field-spatial-extent>\n </ng-container>\n <ng-container *ngSwitchCase=\"'keywords'\">\n <gn-ui-form-field-keywords\n [value]=\"valueAsKeywords\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-keywords>\n </ng-container>\n <ng-container *ngSwitchCase=\"'licenses'\">\n <gn-ui-form-field-license\n [label]=\"config.labelKey! | translate\"\n [recordConstraints]=\"valueAsConstraints\"\n (recordConstraintsChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-license>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'legalConstraints'\">\n <ng-container *ngTemplateOutlet=\"formFieldConstraints\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'securityConstraints'\">\n <ng-container *ngTemplateOutlet=\"formFieldConstraints\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'otherConstraints'\">\n <ng-container *ngTemplateOutlet=\"formFieldConstraints\"></ng-container\n ></ng-container>\n <ng-template #formFieldConstraints>\n <gn-ui-form-field-constraints\n [label]=\"config.labelKey\"\n [value]=\"valueAsConstraints\"\n [constraintType]=\"model\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-constraints\n ></ng-template>\n\n <ng-container *ngSwitchCase=\"'contactsForResource'\">\n <gn-ui-form-field-contacts-for-resource\n [value]=\"valueAsIndividuals\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-contacts-for-resource>\n </ng-container>\n <ng-container *ngSwitchCase=\"'contacts'\">\n <gn-ui-form-field-contacts\n [value]=\"valueAsIndividuals\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-contacts>\n </ng-container>\n <ng-container *ngSwitchCase=\"'onlineResources'\">\n <gn-ui-form-field-online-resources\n *ngIf=\"modelSpecifier === 'onlineResourceType:!link'\"\n [metadataUuid]=\"uniqueIdentifier\"\n [value]=\"valueAsOnlineResources\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-online-resources>\n </ng-container>\n <ng-container *ngSwitchCase=\"'onlineResources'\">\n <gn-ui-form-field-online-link-resources\n *ngIf=\"modelSpecifier === 'onlineResourceType:link'\"\n [metadataUuid]=\"uniqueIdentifier\"\n [value]=\"valueAsOnlineResources\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-online-link-resources>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"!model\">\n <ng-container [ngSwitch]=\"componentName\">\n <ng-container *ngSwitchCase=\"'form-field-constraints-shortcuts'\">\n <gn-ui-form-field-constraints-shortcuts></gn-ui-form-field-constraints-shortcuts>\n </ng-container>\n <ng-container *ngSwitchCase=\"'form-field-spatial-toggle'\">\n <gn-ui-form-field-spatial-toggle></gn-ui-form-field-spatial-toggle>\n </ng-container>\n </ng-container>\n </ng-container>\n</ng-template>\n" }]
|
|
40593
|
+
], template: "<!-- TEMPORARY - disabling the open data switch -->\n<!-- <ng-container *ngIf=\"model === 'licenses'\">\n <gn-ui-form-field-open-data\n [value]=\"valueAsConstraints\"\n (valueChange)=\"valueChange.emit($event)\"\n (openDataChange)=\"toggleIsOpenData($event)\"\n ></gn-ui-form-field-open-data>\n</ng-container> -->\n<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 [ngSwitch]=\"model\">\n <ng-container *ngSwitchCase=\"'title'\">\n <div class=\"flex flex-row flex-start items-center gap-3 mb-[12px]\">\n <textarea\n #titleInput\n cdkTextareaAutosize\n #autosize=\"cdkTextareaAutosize\"\n cdkAutosizeMinRows=\"1\"\n data-test=\"recordTitleInput\"\n class=\"grow font-title text-3xl font-normal overflow-hidden text-black/80\"\n (change)=\"valueChange.emit($event.target.value)\"\n [placeholder]=\"\n 'editor.record.form.field.title.placeholder' | translate\n \"\n >{{ valueAsString }}</textarea\n >\n <div class=\"flex flex-row justify-between self-start mt-0.5\">\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 *ngIf=\"config.hintKey\"\n class=\"material-symbols-outlined gn-ui-icon-small m-2\"\n [matTooltip]=\"config.hintKey! | translate\"\n matTooltipPosition=\"above\"\n >\n help\n </span>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'abstract'\">\n <gn-ui-form-field-rich\n [label]=\"config.labelKey! | translate\"\n [hint]=\"config.hintKey! | translate\"\n [value]=\"valueAsString\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-rich>\n </ng-container>\n <ng-container *ngSwitchCase=\"'overviews'\">\n <gn-ui-form-field-overviews\n [metadataUuid]=\"uniqueIdentifier\"\n [value]=\"valueAsOverviews\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-overviews>\n </ng-container>\n <ng-container *ngSwitchCase=\"'resourceIdentifier'\">\n <gn-ui-form-field-simple\n [type]=\"'text'\"\n [value]=\"valueAsString\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-simple>\n </ng-container>\n <ng-container *ngSwitchCase=\"'resourceCreated'\">\n <gn-ui-form-field-date\n [value]=\"valueAsDate\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-date>\n </ng-container>\n <ng-container *ngSwitchCase=\"'resourceUpdated'\">\n <gn-ui-form-field-date\n [value]=\"valueAsDate\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-date>\n </ng-container>\n <ng-container *ngSwitchCase=\"'updateFrequency'\">\n <gn-ui-form-field-update-frequency\n [value]=\"valueAsUpdateFrequency\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-update-frequency>\n </ng-container>\n <ng-container *ngSwitchCase=\"'temporalExtents'\">\n <gn-ui-form-field-temporal-extents\n [value]=\"valueAsTemporalExtents\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-temporal-extents>\n </ng-container>\n <ng-container *ngSwitchCase=\"'spatialExtents'\">\n <gn-ui-form-field-spatial-extent></gn-ui-form-field-spatial-extent>\n </ng-container>\n <ng-container *ngSwitchCase=\"'keywords'\">\n <gn-ui-form-field-keywords\n [value]=\"valueAsKeywords\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-keywords>\n </ng-container>\n <ng-container *ngSwitchCase=\"'licenses'\">\n <gn-ui-form-field-license\n [label]=\"config.labelKey! | translate\"\n [recordConstraints]=\"valueAsConstraints\"\n (recordConstraintsChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-license>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'legalConstraints'\">\n <ng-container *ngTemplateOutlet=\"formFieldConstraints\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'securityConstraints'\">\n <ng-container *ngTemplateOutlet=\"formFieldConstraints\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'otherConstraints'\">\n <ng-container *ngTemplateOutlet=\"formFieldConstraints\"></ng-container\n ></ng-container>\n <ng-template #formFieldConstraints>\n <gn-ui-form-field-constraints\n [label]=\"config.labelKey\"\n [value]=\"valueAsConstraints\"\n [constraintType]=\"model\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-constraints\n ></ng-template>\n\n <ng-container *ngSwitchCase=\"'contactsForResource'\">\n <gn-ui-form-field-contacts-for-resource\n [value]=\"valueAsIndividuals\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-contacts-for-resource>\n </ng-container>\n <ng-container *ngSwitchCase=\"'contacts'\">\n <gn-ui-form-field-contacts\n [value]=\"valueAsIndividuals\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-contacts>\n </ng-container>\n <ng-container *ngSwitchCase=\"'onlineResources'\">\n <gn-ui-form-field-online-resources\n *ngIf=\"modelSpecifier === 'onlineResourceType:!link'\"\n [metadataUuid]=\"uniqueIdentifier\"\n [value]=\"valueAsOnlineResources\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-online-resources>\n </ng-container>\n <ng-container *ngSwitchCase=\"'onlineResources'\">\n <gn-ui-form-field-online-link-resources\n *ngIf=\"modelSpecifier === 'onlineResourceType:link'\"\n [metadataUuid]=\"uniqueIdentifier\"\n [value]=\"valueAsOnlineResources\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-online-link-resources>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"!model\">\n <ng-container [ngSwitch]=\"componentName\">\n <ng-container *ngSwitchCase=\"'form-field-constraints-shortcuts'\">\n <gn-ui-form-field-constraints-shortcuts></gn-ui-form-field-constraints-shortcuts>\n </ng-container>\n <ng-container *ngSwitchCase=\"'form-field-spatial-toggle'\">\n <gn-ui-form-field-spatial-toggle></gn-ui-form-field-spatial-toggle>\n </ng-container>\n </ng-container>\n </ng-container>\n</ng-template>\n" }]
|
|
40507
40594
|
}], propDecorators: { uniqueIdentifier: [{
|
|
40508
40595
|
type: Input
|
|
40509
40596
|
}], model: [{
|
|
@@ -40541,11 +40628,11 @@ class RecordFormComponent {
|
|
|
40541
40628
|
return section.labelKey;
|
|
40542
40629
|
}
|
|
40543
40630
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RecordFormComponent, deps: [{ token: EditorFacade }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
40544
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: RecordFormComponent, isStandalone: true, selector: "gn-ui-record-form", ngImport: i0, template: "<div class=\"flex flex-col gap-6\">\n <ng-container\n *ngFor=\"\n let section of facade.currentSections$ | async;\n trackBy: sectionTracker\n \"\n >\n <ng-container *ngIf=\"!section.hidden\">\n <div class=\"flex flex-col gap-
|
|
40631
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: RecordFormComponent, isStandalone: true, selector: "gn-ui-record-form", ngImport: i0, template: "<div class=\"flex flex-col gap-6\">\n <ng-container\n *ngFor=\"\n let section of facade.currentSections$ | async;\n trackBy: sectionTracker\n \"\n >\n <ng-container *ngIf=\"!section.hidden\">\n <div class=\"flex flex-col gap-6 border p-8 rounded-[8px] shadow\">\n <div class=\"flex flex-col gap-2\">\n <div\n *ngIf=\"section.labelKey\"\n class=\"text-2xl font-title text-black\"\n translate\n >\n {{ section.labelKey }}\n </div>\n <div\n *ngIf=\"section.descriptionKey\"\n class=\"text-gray-800 text-sm\"\n translate\n >\n {{ section.descriptionKey }}\n </div>\n </div>\n <div class=\"grid auto-rows-auto grid-cols-2 gap-[32px]\">\n <ng-container\n *ngFor=\"\n let field of section.fieldsWithValues;\n trackBy: fieldTracker\n \"\n >\n <ng-container *ngIf=\"!field.config.hidden\">\n <gn-ui-form-field\n [ngClass]=\"\n field.config.gridColumnSpan === 1\n ? 'col-span-1'\n : 'col-span-2'\n \"\n [uniqueIdentifier]=\"recordUniqueIdentifier$ | async\"\n [model]=\"field.config.model!\"\n [modelSpecifier]=\"field.config.modelSpecifier!\"\n [config]=\"field.config.formFieldConfig\"\n [value]=\"field.value\"\n [componentName]=\"field.config.componentName\"\n (valueChange)=\"\n handleFieldValueChange(field.config.model!, $event)\n \"\n ></gn-ui-form-field>\n </ng-container>\n </ng-container>\n </div>\n </div>\n </ng-container>\n </ng-container>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "component", type: FormFieldComponent, selector: "gn-ui-form-field", inputs: ["uniqueIdentifier", "model", "modelSpecifier", "componentName", "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 }); }
|
|
40545
40632
|
}
|
|
40546
40633
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RecordFormComponent, decorators: [{
|
|
40547
40634
|
type: Component,
|
|
40548
|
-
args: [{ selector: 'gn-ui-record-form', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, FormFieldComponent, TranslateModule], template: "<div class=\"flex flex-col gap-6\">\n <ng-container\n *ngFor=\"\n let section of facade.currentSections$ | async;\n trackBy: sectionTracker\n \"\n >\n <ng-container *ngIf=\"!section.hidden\">\n <div class=\"flex flex-col gap-
|
|
40635
|
+
args: [{ selector: 'gn-ui-record-form', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, FormFieldComponent, TranslateModule], template: "<div class=\"flex flex-col gap-6\">\n <ng-container\n *ngFor=\"\n let section of facade.currentSections$ | async;\n trackBy: sectionTracker\n \"\n >\n <ng-container *ngIf=\"!section.hidden\">\n <div class=\"flex flex-col gap-6 border p-8 rounded-[8px] shadow\">\n <div class=\"flex flex-col gap-2\">\n <div\n *ngIf=\"section.labelKey\"\n class=\"text-2xl font-title text-black\"\n translate\n >\n {{ section.labelKey }}\n </div>\n <div\n *ngIf=\"section.descriptionKey\"\n class=\"text-gray-800 text-sm\"\n translate\n >\n {{ section.descriptionKey }}\n </div>\n </div>\n <div class=\"grid auto-rows-auto grid-cols-2 gap-[32px]\">\n <ng-container\n *ngFor=\"\n let field of section.fieldsWithValues;\n trackBy: fieldTracker\n \"\n >\n <ng-container *ngIf=\"!field.config.hidden\">\n <gn-ui-form-field\n [ngClass]=\"\n field.config.gridColumnSpan === 1\n ? 'col-span-1'\n : 'col-span-2'\n \"\n [uniqueIdentifier]=\"recordUniqueIdentifier$ | async\"\n [model]=\"field.config.model!\"\n [modelSpecifier]=\"field.config.modelSpecifier!\"\n [config]=\"field.config.formFieldConfig\"\n [value]=\"field.value\"\n [componentName]=\"field.config.componentName\"\n (valueChange)=\"\n handleFieldValueChange(field.config.model!, $event)\n \"\n ></gn-ui-form-field>\n </ng-container>\n </ng-container>\n </div>\n </div>\n </ng-container>\n </ng-container>\n</div>\n" }]
|
|
40549
40636
|
}], ctorParameters: () => [{ type: EditorFacade }] });
|
|
40550
40637
|
|
|
40551
40638
|
const ROUTER_STATE_KEY = 'router';
|
|
@@ -40933,7 +41020,7 @@ class DefaultRouterModule {
|
|
|
40933
41020
|
};
|
|
40934
41021
|
}
|
|
40935
41022
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DefaultRouterModule, deps: [{ token: RouterService }], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
40936
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: DefaultRouterModule, declarations: [SearchRouterContainerDirective], imports: [i1$3.StoreFeatureModule, i3$
|
|
41023
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: DefaultRouterModule, declarations: [SearchRouterContainerDirective], imports: [i1$3.StoreFeatureModule, i3$2.StoreRouterConnectingModule, i1$c.EffectsFeatureModule], exports: [SearchRouterContainerDirective] }); }
|
|
40937
41024
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DefaultRouterModule, providers: [
|
|
40938
41025
|
RouterFacade,
|
|
40939
41026
|
{
|
|
@@ -40976,5 +41063,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
40976
41063
|
* Generated bundle index. Do not edit.
|
|
40977
41064
|
*/
|
|
40978
41065
|
|
|
40979
|
-
export { ADD_RESULTS, ADD_SEARCH, AbstractAction, AbstractSearchField, AddLayerFromCatalogComponent, AddLayerRecordPreviewComponent, AddResults, AddSearch, AnchorLinkDirective, ApiCardComponent, AuthService, AutocompleteComponent, AvatarComponent, AvatarServiceInterface, BASEMAP_LAYERS, BadgeComponent, BaseConverter, BaseReader, BlockListComponent, ButtonComponent, CLEAR_ERROR, CLEAR_RESULTS, CarouselComponent, CatalogTitleComponent, ChartComponent, ChartViewComponent, CheckToggleComponent, CheckboxComponent, ChipsInputComponent, ClearError, ClearResults, ColorScaleComponent, ConfirmationDialogComponent, ContentGhostComponent, CopyTextButtonComponent, DEFAULT_GN4_LOGIN_URL, DEFAULT_GN4_LOGOUT_URL, DEFAULT_GN4_SETTINGS_URL, DEFAULT_LANG, DEFAULT_PAGE_SIZE, DEFAULT_RESULTS_LAYOUT_CONFIG, DEFAULT_SEARCH_KEY, DO_NOT_USE_DEFAULT_BASEMAP, DataService, DataViewComponent, DataViewPermalinkComponent, DataViewShareComponent, DataViewWebComponentComponent, DatePickerComponent, DateRangeDropdownComponent, DateRangePickerComponent, DateRangeSearchField, DcatApConverter, DefaultRouterModule, DownloadItemComponent, DownloadsListComponent, DragAndDropFileInputComponent, DropdownMultiselectComponent, DropdownSelectorComponent, EDITOR_FEATURE_KEY, ES_QUERY_FIELDS_PRIORITY, ES_RESOURCES_VALUES, ES_SOURCE_SUMMARY, EXTERNAL_VIEWER_OPEN_NEW_TAB, EXTERNAL_VIEWER_URL_TEMPLATE, EditableLabelDirective, EditorFacade, EditorService, ElasticsearchService, EmbeddedTranslateLoader, ErrorComponent, ErrorType, ExpandablePanelButtonComponent, ExpandablePanelComponent, ExternalViewerButtonComponent, FIELDS_BRIEF, FIELDS_SUMMARY, FILTER_GEOMETRY, FILTER_SUMMARY_IGNORE_LIST, FORMATS, FacetBlockComponent, FacetBlockStubComponent, FacetItemComponent, FacetItemStubComponent, FacetListComponent, FacetsContainerComponent, FacetsModule, FavoriteStarComponent, FavoritesService, FeatureAuthModule, FeatureCatalogModule, FeatureDetailComponent, FeatureEditorModule, FeatureMapModule, FeatureNotificationsModule, FeatureRecordModule, FeatureSearchModule, FetchError, FieldsService, FigureComponent, FigureContainerComponent, FileInputComponent, FileTranslateLoader, FilterDropdownComponent, FormFieldWrapperComponent, FullTextSearchField, FuzzySearchComponent, GN_UI_VERSION, GeoTableViewComponent, GeocodingComponent, Gn4Converter, Gn4PlatformMapper, Gn4PlatformService, Gn4Repository, Gn4SettingsService, GpfApiDlComponent, GravatarService, HttpLoaderFactory, I18nInterceptor, ImageFallbackDirective, ImageInputComponent, ImageOverlayPreviewComponent, ImportRecordComponent, InteractiveTableColumnComponent, InteractiveTableComponent, IsSpatialSearchField, Iso191153Converter, Iso19139Converter, LANGUAGES_LIST, LANGUAGE_NAMES, LANGUAGE_STORAGE_KEY, LANG_2_TO_3_MAPPER, LANG_3_TO_2_MAPPER, LOGIN_URL, LOGOUT_URL, LONLAT_CRS_CODES, LangService, LanguageSwitcherComponent, LayersPanelComponent, LicenseSearchField, LinkCardComponent, LinkClassifierService, LinkUsage, LoadingMaskComponent, LogService, MAP_FEATURE_KEY, MAP_VIEW_CONSTRAINTS, METADATA_LANGUAGE, MY_FORMATS, MapContainerComponent, MapFacade, MapLegendComponent, MapStateContainerComponent, MapStyleService, MapUtilsService, MapViewComponent, MarkdownEditorComponent, MarkdownParserComponent, MaxLinesComponent, mdview_actions as MdViewActions, MdViewFacade, MetadataCatalogComponent, MetadataContactComponent, MetadataInfoComponent, MetadataLinkType, MetadataMapperContext, MetadataQualityComponent, MetadataQualityItemComponent, ModalDialogComponent, MultilingualSearchField, MyOrgService, NAMESPACES, 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, PaginationDotsComponent, 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, RecordMetaComponent, 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, SETTINGS_URL, SET_CONFIG_AGGREGATIONS, SET_CONFIG_FILTERS, SET_CONFIG_REQUEST_FIELDS, SET_ERROR, SET_FAVORITES_ONLY, SET_FILTERS, SET_INCLUDE_ON_AGGREGATION, SET_PAGE_SIZE, SET_RESULTS_AGGREGATIONS, SET_RESULTS_HITS, SET_RESULTS_LAYOUT, SET_SEARCH, SET_SORT_BY, SET_SPATIAL_FILTER_ENABLED, SearchEffects, SearchFacade, SearchFiltersSummaryComponent, SearchFiltersSummaryItemComponent, SearchInputComponent, SearchRouterContainerDirective, SearchService, SearchStateContainerDirective, SelectionService, SetConfigAggregations, SetConfigFilters, SetConfigRequestFields, SetError, SetFavoritesOnly, SetFilters, SetIncludeOnAggregation, SetPageSize, SetResultsAggregations, SetResultsHits, SetResultsLayout, SetSearch, SetSortBy, SetSpatialFilterEnabled, SimpleSearchField, SiteTitleComponent, SortByComponent, SortableListComponent, SourceLabelComponent, SourcesService, SpinningLoaderComponent, StarToggleComponent, StepBarComponent, StickyHeaderComponent, SupportedTypes, SwitchToggleComponent, THUMBNAIL_PLACEHOLDER, TRANSLATE_DEFAULT_CONFIG, TRANSLATE_WITH_OVERRIDES_CONFIG, TableComponent, TableViewComponent, TextAreaComponent, TextInputComponent, ThemeService, ThumbnailComponent, TranslatedSearchField, UPDATE_CONFIG_AGGREGATIONS, UPDATE_FILTERS, UPDATE_REQUEST_AGGREGATION_TERM, UiDatavizModule, UiElementsModule, FacetsModule$1 as UiFacetsModule, UiInputsModule, UiLayoutModule, UiSearchModule, UiWidgetsModule, UpdateConfigAggregations, UpdateFilters, UrlInputComponent, UserFeedbackItemComponent, UserPreviewComponent, UserSearchField, UtilI18nModule, UtilSharedModule, VECTOR_STYLE_DEFAULT, ViewportIntersectorComponent, WEB_COMPONENT_EMBEDDER_URL, WizardComponent, WizardFieldComponent, WizardFieldType, WizardService, WizardSummarizeComponent, XmlParseError, _reset, allChildrenElement, appConfigWithTranslationFixture, appendChildTree, appendChildren, assertValidXml, blockModelFixture, bytesToMegabytes, checkFileFormat, clearSelectedFeatures, createChild, createDocument, createElement, createFuzzyFilter, createNestedChild, createNestedElement, currentPage, defaultMapStyleFixture, defaultMapStyleHlFixture, downgradeImage, downsizeImage, draftSaveSuccess, dragPanCondition, dropEmptyTranslations, editorReducer, emptyBlockModelFixture, findChildElement, findChildOrCreate, findChildrenElement, findConverterForDocument, findNestedChildOrCreate, findNestedElement, findNestedElements, findParent, firstChildElement, formatDate, formatUserInfo, getArrayItem, getAsArray, getAsUrl, getBadgeColor, getCustomTranslations, getError, getFavoritesOnly, getFileFormat, getFileFormatFromServiceOutput, getFirstValue, getFormatPriority, getGeometryFromGeoJSON, getGlobalConfig, getJsonDataItemsProxy, getLangFromBrowser, getLinkLabel, getLinkPriority, getMapContext, getMapContextLayerFromConfig, getMapState, getMetadataQualityConfig, getMimeTypeForFormat, getNamespace, getOptionalMapConfig, getOptionalSearchConfig, getPageSize, getRootElement, getSearchConfigAggregations, getSearchFilters, getSearchResults, getSearchResultsAggregations, getSearchResultsHits, getSearchResultsLayout, getSearchResultsLoading, getSearchSortBy, getSearchState, getSearchStateSearch, getSelectedFeatures, getSpatialFilterEnabled, getTemporalRangeUnion, getThemeConfig, hasRecordChangedSinceDraft, hasRecordChangedSinceDraftSuccess, initSearch, initialEditorState, initialMapState, initialState, isConfigLoaded, isDateRange, isFormatInQueryParam, itemModelFixture, loadAppConfig, malformedConfigFixture, mapConfigFixture, mapContact, mapKeywords, mapLogo, mapOrganization, mapReducer, markRecordAsChanged, megabytesToBytes, mimeTypeToFormat, minimalAppConfigFixture, missingMandatoryConfigFixture, mouseWheelZoomCondition, noDuplicateFileName, okAppConfigFixture, openDataset, openRecord, parse, parseXmlString, placeholder, prioritizePageScroll, propagateToDocumentOnly, provideGn4, provideRepositoryUrl, readAttribute, readDataset, readDatasetHeaders, readText, reducer$2 as reducer, reducerSearch, removeAllChildren, removeChildren, removeChildrenByName, removeSearchParams, removeWhitespace, renameElements, saveRecord, saveRecordFailure, saveRecordSuccess, selectCurrentPage, selectEditorConfig, selectEditorState, selectFallback, selectFallbackFields, selectField, selectHasRecordChanged, selectRecord, selectRecordAlreadySavedOnce, selectRecordChangedSinceSave, selectRecordSaveError, selectRecordSaving, selectRecordSections, selectRecordSource, selectTranslatedField, selectTranslatedValue, setContext, setCurrentPage, setFieldVisibility, setSelectedFeatures, setTextContent, someHabTableItemFixture, sortByFromString, sortByToString, sortByToStrings, stripHtml, stripNamespace, tableItemFixture, toDate, totalPages, undoRecordDraft, unrecognizedKeysConfigFixture, updateRecordField, writeAttribute, wrongLanguageCodeConfigFixture, xmlToString };
|
|
41066
|
+
export { ADD_RESULTS, ADD_SEARCH, AbstractAction, AbstractSearchField, AddLayerFromCatalogComponent, AddLayerRecordPreviewComponent, AddResults, AddSearch, AnchorLinkDirective, ApiCardComponent, AuthService, AutocompleteComponent, AvatarComponent, AvatarServiceInterface, BASEMAP_LAYERS, BadgeComponent, BaseConverter, BaseReader, BlockListComponent, ButtonComponent, CLEAR_ERROR, CLEAR_RESULTS, CarouselComponent, CatalogTitleComponent, ChartComponent, ChartViewComponent, CheckToggleComponent, CheckboxComponent, ChipsInputComponent, ClearError, ClearResults, ColorScaleComponent, ConfirmationDialogComponent, ContentGhostComponent, CopyTextButtonComponent, DEFAULT_GN4_LOGIN_URL, DEFAULT_GN4_LOGOUT_URL, DEFAULT_GN4_SETTINGS_URL, DEFAULT_LANG, DEFAULT_PAGE_SIZE, DEFAULT_RESULTS_LAYOUT_CONFIG, DEFAULT_SEARCH_KEY, DO_NOT_USE_DEFAULT_BASEMAP, DataService, DataViewComponent, DataViewPermalinkComponent, DataViewShareComponent, DataViewWebComponentComponent, DatePickerComponent, DateRangeDropdownComponent, DateRangePickerComponent, DateRangeSearchField, DcatApConverter, DefaultRouterModule, DownloadItemComponent, DownloadsListComponent, DragAndDropFileInputComponent, DropdownMultiselectComponent, DropdownSelectorComponent, EDITOR_FEATURE_KEY, ES_QUERY_FIELDS_PRIORITY, ES_RESOURCES_VALUES, ES_SOURCE_SUMMARY, EXTERNAL_VIEWER_OPEN_NEW_TAB, EXTERNAL_VIEWER_URL_TEMPLATE, EditableLabelDirective, EditorFacade, EditorService, ElasticsearchService, EmbeddedTranslateLoader, ErrorComponent, ErrorType, ExpandablePanelButtonComponent, ExpandablePanelComponent, ExternalViewerButtonComponent, FIELDS_BRIEF, FIELDS_SUMMARY, FILTER_GEOMETRY, FILTER_SUMMARY_IGNORE_LIST, FORMATS, FacetBlockComponent, FacetBlockStubComponent, FacetItemComponent, FacetItemStubComponent, FacetListComponent, FacetsContainerComponent, FacetsModule, FavoriteStarComponent, FavoritesService, FeatureAuthModule, FeatureCatalogModule, FeatureDetailComponent, FeatureEditorModule, FeatureMapModule, FeatureNotificationsModule, FeatureRecordModule, FeatureSearchModule, FetchError, FieldsService, FigureComponent, FigureContainerComponent, FileInputComponent, FileTranslateLoader, FilesDropDirective, FilterDropdownComponent, FormFieldWrapperComponent, FullTextSearchField, FuzzySearchComponent, GN_UI_VERSION, GeoTableViewComponent, GeocodingComponent, Gn4Converter, Gn4PlatformMapper, Gn4PlatformService, Gn4Repository, Gn4SettingsService, GpfApiDlComponent, GravatarService, HttpLoaderFactory, I18nInterceptor, ImageFallbackDirective, ImageInputComponent, ImageOverlayPreviewComponent, ImportRecordComponent, InteractiveTableColumnComponent, InteractiveTableComponent, IsSpatialSearchField, Iso191153Converter, Iso19139Converter, LANGUAGES_LIST, LANGUAGE_NAMES, LANGUAGE_STORAGE_KEY, LANG_2_TO_3_MAPPER, LANG_3_TO_2_MAPPER, LOGIN_URL, LOGOUT_URL, LONLAT_CRS_CODES, LangService, LanguageSwitcherComponent, LayersPanelComponent, LicenseSearchField, LinkCardComponent, LinkClassifierService, LinkUsage, LoadingMaskComponent, LogService, MAP_FEATURE_KEY, MAP_VIEW_CONSTRAINTS, METADATA_LANGUAGE, MY_FORMATS, MapContainerComponent, MapFacade, MapLegendComponent, MapStateContainerComponent, MapStyleService, MapUtilsService, MapViewComponent, MarkdownEditorComponent, MarkdownParserComponent, MaxLinesComponent, mdview_actions as MdViewActions, MdViewFacade, MetadataCatalogComponent, MetadataContactComponent, MetadataInfoComponent, MetadataLinkType, MetadataMapperContext, MetadataQualityComponent, MetadataQualityItemComponent, ModalDialogComponent, MultilingualSearchField, MyOrgService, NAMESPACES, 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, PaginationDotsComponent, 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, RecordMetaComponent, 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, SETTINGS_URL, SET_CONFIG_AGGREGATIONS, SET_CONFIG_FILTERS, SET_CONFIG_REQUEST_FIELDS, SET_ERROR, SET_FAVORITES_ONLY, SET_FILTERS, SET_INCLUDE_ON_AGGREGATION, SET_PAGE_SIZE, SET_RESULTS_AGGREGATIONS, SET_RESULTS_HITS, SET_RESULTS_LAYOUT, SET_SEARCH, SET_SORT_BY, SET_SPATIAL_FILTER_ENABLED, SearchEffects, SearchFacade, SearchFiltersSummaryComponent, SearchFiltersSummaryItemComponent, SearchInputComponent, SearchRouterContainerDirective, SearchService, SearchStateContainerDirective, SelectionService, SetConfigAggregations, SetConfigFilters, SetConfigRequestFields, SetError, SetFavoritesOnly, SetFilters, SetIncludeOnAggregation, SetPageSize, SetResultsAggregations, SetResultsHits, SetResultsLayout, SetSearch, SetSortBy, SetSpatialFilterEnabled, SimpleSearchField, SiteTitleComponent, SortByComponent, SortableListComponent, SourceLabelComponent, SourcesService, SpinningLoaderComponent, StarToggleComponent, StepBarComponent, StickyHeaderComponent, SupportedTypes, SwitchToggleComponent, THUMBNAIL_PLACEHOLDER, TRANSLATE_DEFAULT_CONFIG, TRANSLATE_WITH_OVERRIDES_CONFIG, TableComponent, TableViewComponent, TextAreaComponent, TextInputComponent, ThemeService, ThumbnailComponent, TranslatedSearchField, UPDATE_CONFIG_AGGREGATIONS, UPDATE_FILTERS, UPDATE_REQUEST_AGGREGATION_TERM, UiDatavizModule, UiElementsModule, FacetsModule$1 as UiFacetsModule, UiInputsModule, UiLayoutModule, UiSearchModule, UiWidgetsModule, UpdateConfigAggregations, UpdateFilters, UrlInputComponent, UserFeedbackItemComponent, UserPreviewComponent, UserSearchField, UtilI18nModule, UtilSharedModule, VECTOR_STYLE_DEFAULT, ViewportIntersectorComponent, WEB_COMPONENT_EMBEDDER_URL, WizardComponent, WizardFieldComponent, WizardFieldType, WizardService, WizardSummarizeComponent, XmlParseError, _reset, allChildrenElement, appConfigWithTranslationFixture, appendChildTree, appendChildren, assertValidXml, blockModelFixture, bytesToMegabytes, checkFileFormat, clearSelectedFeatures, createChild, createDocument, createElement, createFuzzyFilter, createNestedChild, createNestedElement, currentPage, defaultMapStyleFixture, defaultMapStyleHlFixture, downgradeImage, downsizeImage, draftSaveSuccess, dragPanCondition, dropEmptyTranslations, editorReducer, emptyBlockModelFixture, findChildElement, findChildOrCreate, findChildrenElement, findConverterForDocument, findNestedChildOrCreate, findNestedElement, findNestedElements, findParent, firstChildElement, formatDate, formatUserInfo, getArrayItem, getAsArray, getAsUrl, getBadgeColor, getCustomTranslations, getError, getFavoritesOnly, getFileFormat, getFileFormatFromServiceOutput, getFirstValue, getFormatPriority, getGeometryFromGeoJSON, getGlobalConfig, getJsonDataItemsProxy, getLangFromBrowser, getLinkLabel, getLinkPriority, getMapContext, getMapContextLayerFromConfig, getMapState, getMetadataQualityConfig, getMimeTypeForFormat, getNamespace, getOptionalMapConfig, getOptionalSearchConfig, getPageSize, getRootElement, getSearchConfigAggregations, getSearchFilters, getSearchResults, getSearchResultsAggregations, getSearchResultsHits, getSearchResultsLayout, getSearchResultsLoading, getSearchSortBy, getSearchState, getSearchStateSearch, getSelectedFeatures, getSpatialFilterEnabled, getTemporalRangeUnion, getThemeConfig, hasRecordChangedSinceDraft, hasRecordChangedSinceDraftSuccess, initSearch, initialEditorState, initialMapState, initialState, isConfigLoaded, isDateRange, isFormatInQueryParam, itemModelFixture, loadAppConfig, malformedConfigFixture, mapConfigFixture, mapContact, mapKeywords, mapLogo, mapOrganization, mapReducer, markRecordAsChanged, megabytesToBytes, mimeTypeToFormat, minimalAppConfigFixture, missingMandatoryConfigFixture, mouseWheelZoomCondition, noDuplicateFileName, okAppConfigFixture, openDataset, openRecord, parse, parseXmlString, placeholder, prioritizePageScroll, propagateToDocumentOnly, provideGn4, provideRepositoryUrl, readAttribute, readDataset, readDatasetHeaders, readText, reducer$2 as reducer, reducerSearch, removeAllChildren, removeChildren, removeChildrenByName, removeSearchParams, removeWhitespace, renameElements, saveRecord, saveRecordFailure, saveRecordSuccess, selectCurrentPage, selectEditorConfig, selectEditorState, selectFallback, selectFallbackFields, selectField, selectHasRecordChanged, selectRecord, selectRecordAlreadySavedOnce, selectRecordChangedSinceSave, selectRecordSaveError, selectRecordSaving, selectRecordSections, selectRecordSource, selectTranslatedField, selectTranslatedValue, setContext, setCurrentPage, setFieldVisibility, setSelectedFeatures, setTextContent, someHabTableItemFixture, sortByFromString, sortByToString, sortByToStrings, stripHtml, stripNamespace, tableItemFixture, toDate, totalPages, undoRecordDraft, unrecognizedKeysConfigFixture, updateRecordField, writeAttribute, wrongLanguageCodeConfigFixture, xmlToString };
|
|
40980
41067
|
//# sourceMappingURL=geonetwork-ui.mjs.map
|