geonetwork-ui 2.4.0-dev.6c8dcba0 → 2.4.0-dev.71a43b38
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/libs/api/metadata-converter/src/lib/gn4/types/index.mjs +2 -1
- package/esm2022/libs/api/metadata-converter/src/lib/gn4/types/keywords.model.mjs +2 -0
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/read-parts.mjs +1 -1
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/utils/keyword.mapper.mjs +1 -1
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/write-parts.mjs +1 -1
- package/esm2022/libs/api/repository/src/lib/gn4/gn4-repository.mjs +14 -5
- package/esm2022/libs/api/repository/src/lib/gn4/organizations/organizations-from-groups.service.mjs +2 -1
- package/esm2022/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.mjs +3 -1
- package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.mjs +12 -4
- package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.mjs +38 -14
- package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +1 -1
- package/esm2022/libs/common/domain/src/lib/model/record/organization.model.mjs +1 -1
- package/esm2022/libs/common/domain/src/lib/model/thesaurus/thesaurus.model.mjs +1 -1
- package/esm2022/libs/common/domain/src/lib/platform.service.interface.mjs +1 -1
- package/esm2022/libs/common/domain/src/lib/repository/records-repository.interface.mjs +1 -1
- package/esm2022/libs/data-access/gn4/src/openapi/model/user.api.model.mjs +1 -1
- package/esm2022/libs/feature/catalog/src/index.mjs +2 -1
- package/esm2022/libs/feature/catalog/src/lib/feature-catalog.module.mjs +1 -1
- package/esm2022/libs/feature/catalog/src/lib/organisations/organisations.component.mjs +6 -6
- package/esm2022/libs/feature/catalog/src/lib/organization-url.token.mjs +4 -0
- package/esm2022/libs/feature/catalog/src/lib/records/records.service.mjs +4 -6
- package/esm2022/libs/feature/dataviz/src/lib/chart-view/chart-view.component.mjs +4 -4
- package/esm2022/libs/feature/dataviz/src/lib/feature-dataviz.module.mjs +7 -4
- package/esm2022/libs/feature/dataviz/src/lib/table-view/table-view.component.mjs +1 -1
- package/esm2022/libs/feature/editor/src/lib/+state/editor.actions.mjs +2 -1
- package/esm2022/libs/feature/editor/src/lib/+state/editor.effects.mjs +6 -4
- package/esm2022/libs/feature/editor/src/lib/+state/editor.facade.mjs +2 -1
- package/esm2022/libs/feature/editor/src/lib/+state/editor.selectors.mjs +2 -2
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.mjs +59 -0
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.mjs +64 -50
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.mjs +17 -35
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/index.mjs +2 -1
- package/esm2022/libs/feature/editor/src/lib/feature-editor.module.mjs +4 -3
- package/esm2022/libs/feature/editor/src/lib/fields.config.mjs +12 -5
- package/esm2022/libs/feature/editor/src/lib/services/editor.service.mjs +12 -6
- package/esm2022/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.mjs +42 -23
- package/esm2022/libs/feature/record/src/lib/data-view-share/data-view-share.component.mjs +13 -5
- package/esm2022/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.mjs +49 -15
- package/esm2022/libs/feature/record/src/lib/feature-record.module.mjs +7 -4
- package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +3 -3
- package/esm2022/libs/feature/record/src/lib/state/mdview.facade.mjs +8 -12
- package/esm2022/libs/feature/router/src/lib/default/constants.mjs +2 -1
- package/esm2022/libs/feature/router/src/lib/default/router.config.mjs +1 -1
- package/esm2022/libs/feature/router/src/lib/default/router.service.mjs +9 -2
- package/esm2022/libs/feature/router/src/lib/default/state/router.facade.mjs +8 -1
- package/esm2022/libs/feature/search/src/index.mjs +2 -2
- package/esm2022/libs/feature/search/src/lib/feature-search.module.mjs +7 -4
- package/esm2022/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.mjs +3 -3
- package/esm2022/libs/feature/search/src/lib/results-table/results-table-container.component.mjs +49 -0
- package/esm2022/libs/feature/search/src/lib/state/search.facade.mjs +3 -2
- package/esm2022/libs/feature/search/src/lib/state/selectors.mjs +4 -1
- package/esm2022/libs/feature/search/src/lib/utils/service/fields.service.mjs +7 -3
- package/esm2022/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.mjs +5 -5
- package/esm2022/libs/ui/catalog/src/lib/ui-catalog.module.mjs +5 -2
- package/esm2022/libs/ui/dataviz/src/lib/figure/figure.component.mjs +5 -8
- package/esm2022/libs/ui/elements/src/index.mjs +1 -2
- package/esm2022/libs/ui/elements/src/lib/api-card/api-card.component.mjs +3 -3
- package/esm2022/libs/ui/elements/src/lib/error/error.component.mjs +5 -3
- package/esm2022/libs/ui/elements/src/lib/metadata-info/metadata-info.component.mjs +7 -7
- package/esm2022/libs/ui/elements/src/lib/related-record-card/related-record-card.component.mjs +24 -5
- package/esm2022/libs/ui/elements/src/lib/ui-elements.module.mjs +9 -11
- package/esm2022/libs/ui/inputs/src/index.mjs +2 -1
- package/esm2022/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.mjs +59 -26
- package/esm2022/libs/ui/inputs/src/lib/badge/badge.component.mjs +28 -0
- package/esm2022/libs/ui/inputs/src/lib/ui-inputs.module.mjs +11 -10
- package/esm2022/libs/ui/layout/src/index.mjs +2 -1
- package/esm2022/libs/ui/layout/src/lib/max-lines/max-lines.component.mjs +71 -0
- package/esm2022/libs/ui/layout/src/lib/ui-layout.module.mjs +1 -1
- package/esm2022/libs/ui/search/src/index.mjs +2 -1
- package/esm2022/libs/ui/search/src/lib/results-table/results-table.component.mjs +120 -0
- package/esm2022/libs/ui/widgets/src/index.mjs +1 -2
- package/esm2022/libs/ui/widgets/src/lib/popup-alert/popup-alert.component.mjs +5 -3
- package/esm2022/libs/ui/widgets/src/lib/ui-widgets.module.mjs +1 -6
- package/esm2022/translations/de.json +66 -34
- package/esm2022/translations/en.json +37 -5
- package/esm2022/translations/es.json +37 -5
- package/esm2022/translations/fr.json +38 -6
- package/esm2022/translations/it.json +37 -5
- package/esm2022/translations/nl.json +37 -5
- package/esm2022/translations/pt.json +37 -5
- package/fesm2022/geonetwork-ui.mjs +1187 -688
- package/fesm2022/geonetwork-ui.mjs.map +1 -1
- package/libs/api/metadata-converter/src/lib/gn4/types/index.d.ts +1 -0
- package/libs/api/metadata-converter/src/lib/gn4/types/index.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/gn4/types/keywords.model.d.ts +31 -0
- package/libs/api/metadata-converter/src/lib/gn4/types/keywords.model.d.ts.map +1 -0
- package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts +3 -2
- package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/iso19139/utils/keyword.mapper.d.ts +1 -1
- package/libs/api/metadata-converter/src/lib/iso19139/utils/keyword.mapper.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts +3 -2
- package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts +1 -0
- package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/organizations/organizations-from-groups.service.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.d.ts +3 -3
- package/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts +9 -5
- package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts.map +1 -1
- package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +4 -7
- package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
- package/libs/common/domain/src/lib/model/record/organization.model.d.ts +1 -0
- package/libs/common/domain/src/lib/model/record/organization.model.d.ts.map +1 -1
- package/libs/common/domain/src/lib/model/thesaurus/thesaurus.model.d.ts +12 -5
- package/libs/common/domain/src/lib/model/thesaurus/thesaurus.model.d.ts.map +1 -1
- package/libs/common/domain/src/lib/platform.service.interface.d.ts +4 -3
- package/libs/common/domain/src/lib/platform.service.interface.d.ts.map +1 -1
- package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts +3 -1
- package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts.map +1 -1
- package/libs/data-access/gn4/src/openapi/model/user.api.model.d.ts +1 -1
- package/libs/feature/catalog/src/index.d.ts +1 -0
- package/libs/feature/catalog/src/index.d.ts.map +1 -1
- package/libs/feature/catalog/src/lib/feature-catalog.module.d.ts.map +1 -1
- package/libs/feature/catalog/src/lib/organisations/organisations.component.d.ts.map +1 -1
- package/libs/feature/catalog/src/lib/organization-url.token.d.ts +3 -0
- package/libs/feature/catalog/src/lib/organization-url.token.d.ts.map +1 -0
- package/libs/feature/catalog/src/lib/records/records.service.d.ts.map +1 -1
- package/libs/feature/dataviz/src/lib/feature-dataviz.module.d.ts +2 -1
- package/libs/feature/dataviz/src/lib/feature-dataviz.module.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/+state/editor.actions.d.ts +1 -0
- package/libs/feature/editor/src/lib/+state/editor.actions.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/+state/editor.effects.d.ts +1 -1
- package/libs/feature/editor/src/lib/+state/editor.effects.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/+state/editor.facade.d.ts +1 -0
- package/libs/feature/editor/src/lib/+state/editor.facade.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.d.ts +25 -0
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.d.ts.map +1 -0
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.d.ts +6 -6
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts +6 -10
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/index.d.ts +1 -0
- package/libs/feature/editor/src/lib/components/record-form/form-field/index.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/feature-editor.module.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/fields.config.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/services/editor.service.d.ts +1 -1
- package/libs/feature/editor/src/lib/services/editor.service.d.ts.map +1 -1
- package/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.d.ts +4 -1
- package/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.d.ts.map +1 -1
- package/libs/feature/record/src/lib/data-view-share/data-view-share.component.d.ts +4 -1
- package/libs/feature/record/src/lib/data-view-share/data-view-share.component.d.ts.map +1 -1
- package/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.d.ts +4 -1
- package/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.d.ts.map +1 -1
- package/libs/feature/record/src/lib/feature-record.module.d.ts +2 -1
- package/libs/feature/record/src/lib/feature-record.module.d.ts.map +1 -1
- package/libs/feature/record/src/lib/state/mdview.facade.d.ts.map +1 -1
- package/libs/feature/router/src/lib/default/constants.d.ts +1 -0
- package/libs/feature/router/src/lib/default/constants.d.ts.map +1 -1
- package/libs/feature/router/src/lib/default/router.config.d.ts +1 -0
- package/libs/feature/router/src/lib/default/router.config.d.ts.map +1 -1
- package/libs/feature/router/src/lib/default/router.service.d.ts +1 -0
- package/libs/feature/router/src/lib/default/router.service.d.ts.map +1 -1
- package/libs/feature/router/src/lib/default/state/router.facade.d.ts +1 -0
- package/libs/feature/router/src/lib/default/state/router.facade.d.ts.map +1 -1
- package/libs/feature/search/src/index.d.ts +1 -1
- package/libs/feature/search/src/index.d.ts.map +1 -1
- package/libs/feature/search/src/lib/feature-search.module.d.ts +2 -1
- package/libs/feature/search/src/lib/feature-search.module.d.ts.map +1 -1
- package/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.d.ts.map +1 -1
- package/libs/feature/search/src/lib/results-table/results-table-container.component.d.ts +25 -0
- package/libs/feature/search/src/lib/results-table/results-table-container.component.d.ts.map +1 -0
- package/libs/feature/search/src/lib/state/search.facade.d.ts +1 -0
- package/libs/feature/search/src/lib/state/search.facade.d.ts.map +1 -1
- package/libs/feature/search/src/lib/state/selectors.d.ts +1 -0
- package/libs/feature/search/src/lib/state/selectors.d.ts.map +1 -1
- package/libs/feature/search/src/lib/utils/service/fields.service.d.ts.map +1 -1
- package/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.d.ts +2 -2
- package/libs/ui/catalog/src/lib/ui-catalog.module.d.ts +2 -1
- package/libs/ui/catalog/src/lib/ui-catalog.module.d.ts.map +1 -1
- package/libs/ui/dataviz/src/lib/figure/figure.component.d.ts +1 -2
- package/libs/ui/dataviz/src/lib/figure/figure.component.d.ts.map +1 -1
- package/libs/ui/elements/src/index.d.ts +0 -1
- package/libs/ui/elements/src/index.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/error/error.component.d.ts +3 -1
- package/libs/ui/elements/src/lib/error/error.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/related-record-card/related-record-card.component.d.ts +5 -1
- package/libs/ui/elements/src/lib/related-record-card/related-record-card.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/ui-elements.module.d.ts +19 -19
- package/libs/ui/elements/src/lib/ui-elements.module.d.ts.map +1 -1
- package/libs/ui/inputs/src/index.d.ts +1 -0
- package/libs/ui/inputs/src/index.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.d.ts +7 -4
- package/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/badge/badge.component.d.ts +11 -0
- package/libs/ui/inputs/src/lib/badge/badge.component.d.ts.map +1 -0
- package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts +35 -35
- package/libs/ui/layout/src/index.d.ts +1 -0
- package/libs/ui/layout/src/index.d.ts.map +1 -1
- package/libs/ui/{elements → layout}/src/lib/max-lines/max-lines.component.d.ts +2 -2
- package/libs/ui/layout/src/lib/max-lines/max-lines.component.d.ts.map +1 -0
- package/libs/ui/layout/src/lib/ui-layout.module.d.ts.map +1 -1
- package/libs/ui/search/src/index.d.ts +1 -0
- package/libs/ui/search/src/index.d.ts.map +1 -1
- package/libs/ui/search/src/lib/results-table/results-table.component.d.ts +30 -0
- package/libs/ui/search/src/lib/results-table/results-table.component.d.ts.map +1 -0
- package/libs/ui/widgets/src/index.d.ts +0 -1
- package/libs/ui/widgets/src/index.d.ts.map +1 -1
- package/libs/ui/widgets/src/lib/popup-alert/popup-alert.component.d.ts +1 -1
- package/libs/ui/widgets/src/lib/popup-alert/popup-alert.component.d.ts.map +1 -1
- package/libs/ui/widgets/src/lib/ui-widgets.module.d.ts +10 -11
- package/libs/ui/widgets/src/lib/ui-widgets.module.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/libs/api/metadata-converter/src/lib/gn4/types/index.ts +1 -0
- package/src/libs/api/metadata-converter/src/lib/gn4/types/keywords.model.ts +31 -0
- package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +2 -2
- package/src/libs/api/metadata-converter/src/lib/iso19139/utils/keyword.mapper.ts +1 -1
- package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +2 -2
- package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +21 -8
- package/src/libs/api/repository/src/lib/gn4/organizations/organizations-from-groups.service.ts +1 -0
- package/src/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.ts +3 -1
- package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.ts +25 -4
- package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +81 -21
- package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +4 -9
- package/src/libs/common/domain/src/lib/model/record/organization.model.ts +1 -0
- package/src/libs/common/domain/src/lib/model/thesaurus/thesaurus.model.ts +13 -6
- package/src/libs/common/domain/src/lib/platform.service.interface.ts +7 -3
- package/src/libs/common/domain/src/lib/repository/records-repository.interface.ts +4 -1
- package/src/libs/common/fixtures/src/lib/organisations.fixture.ts +28 -0
- package/src/libs/common/fixtures/src/lib/records.fixtures.ts +8 -0
- package/src/libs/data-access/datafeeder/src/openapi/model/datasetMetadata.api.model.ts +4 -0
- package/src/libs/data-access/datafeeder/src/openapi/model/datasetUploadStatus.api.model.ts +2 -0
- package/src/libs/data-access/gn4/src/openapi/model/user.api.model.ts +1 -1
- package/src/libs/feature/catalog/src/index.ts +1 -0
- package/src/libs/feature/catalog/src/lib/feature-catalog.module.ts +0 -1
- package/src/libs/feature/catalog/src/lib/organisations/organisations.component.html +1 -1
- package/src/libs/feature/catalog/src/lib/organisations/organisations.component.ts +2 -2
- package/src/libs/feature/catalog/src/lib/organization-url.token.ts +6 -0
- package/src/libs/feature/catalog/src/lib/records/records.service.ts +6 -8
- package/src/libs/feature/dataviz/src/lib/feature-dataviz.module.ts +2 -1
- package/src/libs/feature/editor/src/lib/+state/editor.actions.ts +2 -0
- package/src/libs/feature/editor/src/lib/+state/editor.effects.ts +35 -29
- package/src/libs/feature/editor/src/lib/+state/editor.facade.ts +1 -0
- package/src/libs/feature/editor/src/lib/+state/editor.selectors.ts +1 -1
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.html +19 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.ts +79 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.ts +95 -86
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.html +7 -22
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.ts +16 -44
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/index.ts +1 -1
- package/src/libs/feature/editor/src/lib/feature-editor.module.ts +2 -1
- package/src/libs/feature/editor/src/lib/fields.config.ts +11 -4
- package/src/libs/feature/editor/src/lib/services/editor.service.ts +20 -6
- package/src/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.ts +36 -19
- package/src/libs/feature/record/src/lib/data-view-share/data-view-share.component.html +6 -2
- package/src/libs/feature/record/src/lib/data-view-share/data-view-share.component.ts +11 -0
- package/src/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.ts +59 -12
- package/src/libs/feature/record/src/lib/feature-record.module.ts +3 -2
- package/src/libs/feature/record/src/lib/state/mdview.facade.ts +42 -31
- package/src/libs/feature/router/src/lib/default/constants.ts +1 -0
- package/src/libs/feature/router/src/lib/default/router.config.ts +1 -0
- package/src/libs/feature/router/src/lib/default/router.service.ts +13 -1
- package/src/libs/feature/router/src/lib/default/state/router.facade.ts +9 -1
- package/src/libs/feature/search/src/index.ts +1 -1
- package/src/libs/feature/search/src/lib/feature-search.module.ts +2 -1
- package/src/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.ts +2 -2
- package/src/libs/feature/search/src/lib/results-table/results-table-container.component.html +9 -0
- package/src/libs/feature/search/src/lib/results-table/results-table-container.component.ts +49 -0
- package/src/libs/feature/search/src/lib/state/search.facade.ts +5 -0
- package/src/libs/feature/search/src/lib/state/selectors.ts +7 -0
- package/src/libs/feature/search/src/lib/utils/service/fields.service.ts +16 -2
- package/src/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.html +8 -6
- package/src/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.ts +2 -2
- package/src/libs/ui/catalog/src/lib/ui-catalog.module.ts +2 -0
- package/src/libs/ui/dataviz/src/lib/figure/figure.component.html +11 -3
- package/src/libs/ui/dataviz/src/lib/figure/figure.component.ts +3 -7
- package/src/libs/ui/elements/src/index.ts +0 -1
- package/src/libs/ui/elements/src/lib/api-card/api-card.component.html +29 -29
- package/src/libs/ui/elements/src/lib/error/error.component.html +30 -6
- package/src/libs/ui/elements/src/lib/error/error.component.ts +2 -0
- package/src/libs/ui/elements/src/lib/related-record-card/related-record-card.component.html +1 -1
- package/src/libs/ui/elements/src/lib/related-record-card/related-record-card.component.ts +22 -1
- package/src/libs/ui/elements/src/lib/ui-elements.module.ts +4 -6
- package/src/libs/ui/inputs/src/index.ts +1 -0
- package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.css +0 -1
- package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.html +23 -19
- package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.ts +79 -27
- package/src/libs/ui/inputs/src/lib/badge/badge.component.html +18 -0
- package/src/libs/ui/inputs/src/lib/badge/badge.component.ts +27 -0
- package/src/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.css +31 -0
- package/src/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.html +15 -0
- package/src/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.ts +38 -0
- package/src/libs/ui/inputs/src/lib/ui-inputs.module.ts +3 -3
- package/src/libs/ui/layout/src/index.ts +1 -0
- package/src/libs/ui/layout/src/lib/max-lines/max-lines.component.css +0 -0
- package/src/libs/ui/{elements → layout}/src/lib/max-lines/max-lines.component.html +1 -0
- package/src/libs/ui/{elements → layout}/src/lib/max-lines/max-lines.component.ts +9 -5
- package/src/libs/ui/layout/src/lib/ui-layout.module.ts +0 -1
- package/src/libs/ui/search/src/index.ts +1 -0
- package/src/libs/ui/search/src/lib/results-table/results-table.component.css +0 -0
- package/src/libs/{feature → ui}/search/src/lib/results-table/results-table.component.html +8 -8
- package/src/libs/ui/search/src/lib/results-table/results-table.component.ts +138 -0
- package/src/libs/ui/widgets/src/index.ts +0 -1
- package/src/libs/ui/widgets/src/lib/popup-alert/popup-alert.component.ts +4 -0
- package/src/libs/ui/widgets/src/lib/ui-widgets.module.ts +0 -3
- package/translations/de.json +66 -34
- package/translations/en.json +37 -5
- package/translations/es.json +37 -5
- package/translations/fr.json +38 -6
- package/translations/it.json +37 -5
- package/translations/nl.json +37 -5
- package/translations/pt.json +37 -5
- package/translations/sk.json +38 -6
- package/esm2022/libs/feature/search/src/lib/results-table/results-table.component.mjs +0 -136
- package/esm2022/libs/ui/elements/src/lib/max-lines/max-lines.component.mjs +0 -69
- package/esm2022/libs/ui/widgets/src/lib/badge/badge.component.mjs +0 -18
- package/libs/feature/search/src/lib/results-table/results-table.component.d.ts +0 -36
- package/libs/feature/search/src/lib/results-table/results-table.component.d.ts.map +0 -1
- package/libs/ui/elements/src/lib/max-lines/max-lines.component.d.ts.map +0 -1
- package/libs/ui/widgets/src/lib/badge/badge.component.d.ts +0 -7
- package/libs/ui/widgets/src/lib/badge/badge.component.d.ts.map +0 -1
- package/src/libs/feature/search/src/lib/results-table/results-table.component.ts +0 -172
- package/src/libs/ui/widgets/src/lib/badge/badge.component.html +0 -10
- package/src/libs/ui/widgets/src/lib/badge/badge.component.ts +0 -14
- /package/src/libs/feature/{search/src/lib/results-table/results-table.component.css → editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.css} +0 -0
- /package/src/libs/{ui/elements/src/lib/max-lines/max-lines.component.css → feature/search/src/lib/results-table/results-table-container.component.css} +0 -0
- /package/src/libs/ui/{widgets → inputs}/src/lib/badge/badge.component.css +0 -0
|
@@ -8,11 +8,11 @@ import * as i1$1 from '@ngx-translate/core';
|
|
|
8
8
|
import { TranslateCompiler, TranslateLoader, TranslateModule, TranslateService } from '@ngx-translate/core';
|
|
9
9
|
import { TranslateMessageFormatCompiler } from 'ngx-translate-messageformat-compiler';
|
|
10
10
|
import { TranslateHttpLoader } from '@ngx-translate/http-loader';
|
|
11
|
-
import { map as map$1, catchError, tap as tap$1, shareReplay, filter, startWith, withLatestFrom, switchMap as switchMap$1, take, delay,
|
|
11
|
+
import { map as map$1, catchError, tap as tap$1, shareReplay, filter, startWith, withLatestFrom, switchMap as switchMap$1, take, delay, distinctUntilChanged, debounceTime, finalize, throttleTime, first as first$1, share, pairwise, mergeMap, defaultIfEmpty, toArray } from 'rxjs/operators';
|
|
12
12
|
import { marker } from '@biesbjerg/ngx-translate-extract-marker';
|
|
13
13
|
import * as i1$3 from '@angular/common';
|
|
14
14
|
import { CommonModule, NgFor, NgComponentOutlet, NgOptimizedImage, NgForOf } from '@angular/common';
|
|
15
|
-
import { of, map as map$2, lastValueFrom, switchMap, throwError, combineLatest, from, takeLast, forkJoin, firstValueFrom, Subject, merge, BehaviorSubject, fromEvent, timer, Subscription,
|
|
15
|
+
import { of, map as map$2, lastValueFrom, switchMap, throwError, combineLatest, from, takeLast, forkJoin, firstValueFrom, Subject, merge, BehaviorSubject, fromEvent, timer, ReplaySubject, Subscription, first, distinctUntilChanged as distinctUntilChanged$1, debounceTime as debounceTime$1, filter as filter$1, animationFrameScheduler, tap as tap$2, Observable, buffer, combineLatestWith, catchError as catchError$1, takeUntil, EMPTY, exhaustMap, mergeMap as mergeMap$1, withLatestFrom as withLatestFrom$1, startWith as startWith$1, pairwise as pairwise$1 } from 'rxjs';
|
|
16
16
|
import { valid, coerce, satisfies, ltr } from 'semver';
|
|
17
17
|
import * as i1$2 from '@ngrx/store';
|
|
18
18
|
import { createAction, props, createReducer, on, createFeatureSelector, createSelector, select, StoreModule, Store } from '@ngrx/store';
|
|
@@ -48,28 +48,28 @@ import { MVT, WFS, GeoJSON as GeoJSON$1 } from 'ol/format';
|
|
|
48
48
|
import VectorTileLayer from 'ol/layer/VectorTile';
|
|
49
49
|
import OGCMapTile from 'ol/source/OGCMapTile.js';
|
|
50
50
|
import ImageLayer from 'ol/layer/Image';
|
|
51
|
-
import * as i2$
|
|
51
|
+
import * as i2$5 from '@angular/material/tabs';
|
|
52
52
|
import { MatTabsModule } from '@angular/material/tabs';
|
|
53
|
-
import * as i2$
|
|
54
|
-
import {
|
|
55
|
-
import * as
|
|
53
|
+
import * as i2$2 from '@angular/forms';
|
|
54
|
+
import { FormsModule, ReactiveFormsModule, UntypedFormControl, FormArray, FormControl } from '@angular/forms';
|
|
55
|
+
import * as i2$1 from '@angular/material/autocomplete';
|
|
56
56
|
import { MatAutocompleteTrigger, MatAutocomplete, MatAutocompleteModule } from '@angular/material/autocomplete';
|
|
57
|
-
import * as
|
|
57
|
+
import * as i3$1 from 'ngx-dropzone';
|
|
58
|
+
import { NgxDropzoneModule } from 'ngx-dropzone';
|
|
59
|
+
import * as i5 from 'ngx-chips';
|
|
60
|
+
import { TagInputModule } from 'ngx-chips';
|
|
61
|
+
import * as i1$4 from '@angular/material/progress-spinner';
|
|
62
|
+
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
|
|
63
|
+
import * as i3 from '@angular/material/core';
|
|
58
64
|
import { MatNativeDateModule, MAT_DATE_LOCALE, DateAdapter, MAT_DATE_FORMATS } from '@angular/material/core';
|
|
59
|
-
import * as i1$
|
|
65
|
+
import * as i1$5 from '@angular/material/checkbox';
|
|
60
66
|
import { MatCheckboxModule } from '@angular/material/checkbox';
|
|
61
|
-
import * as
|
|
62
|
-
import { TagInputModule } from 'ngx-chips';
|
|
63
|
-
import * as i2$2 from '@angular/material/tooltip';
|
|
67
|
+
import * as i2$3 from '@angular/material/tooltip';
|
|
64
68
|
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
65
|
-
import * as i2$
|
|
69
|
+
import * as i2$4 from '@angular/material/datepicker';
|
|
66
70
|
import { MatDatepickerModule } from '@angular/material/datepicker';
|
|
67
|
-
import * as
|
|
68
|
-
import { NgxDropzoneModule } from 'ngx-dropzone';
|
|
69
|
-
import * as i1$5 from '@angular/cdk/overlay';
|
|
71
|
+
import * as i1$6 from '@angular/cdk/overlay';
|
|
70
72
|
import { CdkConnectedOverlay, OverlayModule } from '@angular/cdk/overlay';
|
|
71
|
-
import * as i1$6 from '@angular/material/progress-spinner';
|
|
72
|
-
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
|
|
73
73
|
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
74
74
|
import { MatInputModule } from '@angular/material/input';
|
|
75
75
|
import * as i1$7 from '@angular/router';
|
|
@@ -89,19 +89,19 @@ import { Polygon } from 'ol/geom';
|
|
|
89
89
|
import { queryDataGouvFr, queryGeonames, queryGeoadmin } from '@geospatial-sdk/geocoding';
|
|
90
90
|
import { trigger, transition, animate, keyframes, style } from '@angular/animations';
|
|
91
91
|
import { Chart, BarController, BarElement, CategoryScale, LinearScale, LineController, LineElement, PointElement, PieController, ArcElement, ScatterController, Tooltip, Colors, Legend } from 'chart.js';
|
|
92
|
-
import * as i4
|
|
92
|
+
import * as i4 from '@angular/cdk/scrolling';
|
|
93
93
|
import { ScrollingModule } from '@angular/cdk/scrolling';
|
|
94
|
-
import * as i2$
|
|
94
|
+
import * as i2$6 from '@angular/material/sort';
|
|
95
95
|
import { MatSort, MatSortModule } from '@angular/material/sort';
|
|
96
96
|
import * as i1$9 from '@angular/material/table';
|
|
97
97
|
import { MatTableModule } from '@angular/material/table';
|
|
98
|
-
import * as i3$
|
|
98
|
+
import * as i3$2 from 'ng-table-virtual-scroll';
|
|
99
99
|
import { TableVirtualScrollDataSource, TableVirtualScrollModule } from 'ng-table-virtual-scroll';
|
|
100
100
|
import * as Papa from 'papaparse';
|
|
101
101
|
import parseDate from 'date-fns/parse';
|
|
102
102
|
import parseIsoDate from 'date-fns/parseISO';
|
|
103
103
|
import { MomentDateAdapter, MAT_MOMENT_DATE_ADAPTER_OPTIONS } from '@angular/material-moment-adapter';
|
|
104
|
-
import * as i3$
|
|
104
|
+
import * as i3$3 from '@ngrx/router-store';
|
|
105
105
|
import { getRouterSelectors, routerReducer, StoreRouterConnectingModule, FullRouterStateSerializer } from '@ngrx/router-store';
|
|
106
106
|
import { navigation } from '@ngrx/router-store/data-persistence';
|
|
107
107
|
|
|
@@ -17306,9 +17306,10 @@ var next$6 = "weiter";
|
|
|
17306
17306
|
var previous$6 = "zurück";
|
|
17307
17307
|
var records$6 = "Datensätze";
|
|
17308
17308
|
var de = {
|
|
17309
|
+
"Add Layer As": "",
|
|
17309
17310
|
"button.login": "",
|
|
17310
17311
|
"catalog.figures.datasets": "{count, plural, =0{Datensätze} one{Datensatz} other{Datensätze}}",
|
|
17311
|
-
"catalog.figures.
|
|
17312
|
+
"catalog.figures.organizations": "{count, plural, =0{Organisationen} one{Organisation} other{Organisationen}}",
|
|
17312
17313
|
"chart.aggregation.average": "Durchschnitt",
|
|
17313
17314
|
"chart.aggregation.count": "Anzahl",
|
|
17314
17315
|
"chart.aggregation.max": "Maximum",
|
|
@@ -17324,16 +17325,22 @@ var de = {
|
|
|
17324
17325
|
"chart.type.line": "Liniendiagramm",
|
|
17325
17326
|
"chart.type.lineSmooth": "Geglättes Liniendiagramm",
|
|
17326
17327
|
"chart.type.pie": "Kreisdiagramm",
|
|
17328
|
+
"dashboard.catalog.allRecords": "Metadatenkatalog",
|
|
17329
|
+
"dashboard.catalog.calendar": "Kalender",
|
|
17330
|
+
"dashboard.catalog.contacts": "Kontakte",
|
|
17331
|
+
"dashboard.catalog.discussion": "Diskussion",
|
|
17332
|
+
"dashboard.catalog.thesaurus": "Thesaurus",
|
|
17327
17333
|
"dashboard.createRecord": "Neuer Eintrag",
|
|
17334
|
+
"dashboard.labels.catalog": "Katalog",
|
|
17328
17335
|
"dashboard.labels.mySpace": "Mein Bereich",
|
|
17329
17336
|
"dashboard.records.all": "Katalog",
|
|
17330
17337
|
"dashboard.records.hasDraft": "",
|
|
17331
17338
|
"dashboard.records.myDraft": "Meine Entwürfe",
|
|
17332
17339
|
"dashboard.records.myLibrary": "Meine Bibliothek",
|
|
17333
|
-
"dashboard.records.myOrg": "Meine Organisation",
|
|
17334
17340
|
"dashboard.records.myRecords": "Meine Datensätze",
|
|
17335
17341
|
"dashboard.records.publishedRecords": "{count, plural, =1{veröffentlichter Datensatz} other{veröffentlichte Datensätze}}",
|
|
17336
17342
|
"dashboard.records.search": "Suche nach \"{searchText}\"",
|
|
17343
|
+
"dashboard.records.templates": "Vorlagen",
|
|
17337
17344
|
"dashboard.records.userDetail": "Name",
|
|
17338
17345
|
"dashboard.records.userEmail": "E-Mail",
|
|
17339
17346
|
"dashboard.records.username": "Benutzername",
|
|
@@ -17349,6 +17356,8 @@ var de = {
|
|
|
17349
17356
|
"datafeeder.datasetValidation.submitButton": "OK, meine Daten sind korrekt",
|
|
17350
17357
|
"datafeeder.datasetValidation.title": "Stellen Sie sicher, dass Ihre Daten korrekt sind",
|
|
17351
17358
|
"datafeeder.datasetValidation.unknown": " - ",
|
|
17359
|
+
"datafeeder.datasetValidationCsv.explicitLineNumbers": "",
|
|
17360
|
+
"datafeeder.datasetValidationCsv.lineNumbers": "",
|
|
17352
17361
|
"datafeeder.form.abstract": "Wie würden Sie Ihren Datensatz beschreiben?",
|
|
17353
17362
|
"datafeeder.form.datepicker": "Wissen Sie, wann der Datensatz erstellt wurde?",
|
|
17354
17363
|
"datafeeder.form.description": "Beschreiben Sie abschließend den Prozess, der zur Erstellung des Datensatzes verwendet wurde",
|
|
@@ -17376,6 +17385,7 @@ var de = {
|
|
|
17376
17385
|
"datafeeder.publishSuccess.geonetworkRecord": "Metadatensatz",
|
|
17377
17386
|
"datafeeder.publishSuccess.illustration.title": "Erledigt, alles ist gut!",
|
|
17378
17387
|
"datafeeder.publishSuccess.mapViewer": "Kartenviewer",
|
|
17388
|
+
"datafeeder.publishSuccess.ogcFeature": "",
|
|
17379
17389
|
"datafeeder.publishSuccess.subtitle": "Zeigen Sie Ihre Daten an in:",
|
|
17380
17390
|
"datafeeder.publishSuccess.title": "Herzlichen Glückwunsch! \n Ihr Datensatz wurde veröffentlicht",
|
|
17381
17391
|
"datafeeder.publishSuccess.uploadAnotherData": "Ein weiteren Datensatz hochladen",
|
|
@@ -17404,6 +17414,15 @@ var de = {
|
|
|
17404
17414
|
"datafeeder.upload.maxFileSize": "Maximale Dateigröße beträgt {size} MB",
|
|
17405
17415
|
"datafeeder.upload.title": "Laden Sie Ihren Datensatz hoch",
|
|
17406
17416
|
"datafeeder.upload.uploadButton": "Hochladen",
|
|
17417
|
+
"datafeeder.validation.csv.delimiter": "",
|
|
17418
|
+
"datafeeder.validation.csv.delimiter.comma": "",
|
|
17419
|
+
"datafeeder.validation.csv.delimiter.semicolon": "",
|
|
17420
|
+
"datafeeder.validation.csv.lat.field": "",
|
|
17421
|
+
"datafeeder.validation.csv.lng.field": "",
|
|
17422
|
+
"datafeeder.validation.csv.quote.double": "",
|
|
17423
|
+
"datafeeder.validation.csv.quote.none": "",
|
|
17424
|
+
"datafeeder.validation.csv.quote.simple": "",
|
|
17425
|
+
"datafeeder.validation.csv.quoteChar": "",
|
|
17407
17426
|
"datafeeder.validation.encoding": "Codierung",
|
|
17408
17427
|
"datafeeder.validation.extent.title": "Hier ist der Datensatzumfang",
|
|
17409
17428
|
"datafeeder.validation.extent.title.unknown": "Das Projektionssystem ist unbekannt",
|
|
@@ -17417,7 +17436,7 @@ var de = {
|
|
|
17417
17436
|
"datahub.header.lastRecords": "Die neuesten",
|
|
17418
17437
|
"datahub.header.myfavorites": "Meine Favoriten",
|
|
17419
17438
|
"datahub.header.news": "Startseite",
|
|
17420
|
-
"datahub.header.
|
|
17439
|
+
"datahub.header.organizations": "Organisationen",
|
|
17421
17440
|
"datahub.header.popularRecords": "Die beliebtesten",
|
|
17422
17441
|
"datahub.header.title.html": "<div class=\"text-white\">Entdecken Sie offene<br> Daten meiner Organisation</div>",
|
|
17423
17442
|
"datahub.news.contact.contactus": "Kontaktieren Sie uns",
|
|
@@ -17453,37 +17472,42 @@ var de = {
|
|
|
17453
17472
|
"downloads.format.unknown": "unbekannt",
|
|
17454
17473
|
"downloads.wfs.featuretype.not.found": "Der Layer wurde nicht gefunden",
|
|
17455
17474
|
dropFile: dropFile$6,
|
|
17475
|
+
"editor.record.form.abstract": "Kurzbeschreibung",
|
|
17476
|
+
"editor.record.form.keywords": "Schlüsselwörter",
|
|
17456
17477
|
"editor.record.form.license": "Lizenz",
|
|
17457
|
-
"editor.record.form.license.cc-by": "",
|
|
17458
|
-
"editor.record.form.license.cc-by-sa": "",
|
|
17459
|
-
"editor.record.form.license.cc-zero": "",
|
|
17460
|
-
"editor.record.form.license.etalab": "",
|
|
17461
|
-
"editor.record.form.license.etalab-v2": "",
|
|
17462
|
-
"editor.record.form.license.odbl": "",
|
|
17463
|
-
"editor.record.form.license.odc-by": "",
|
|
17464
|
-
"editor.record.form.license.pddl": "",
|
|
17478
|
+
"editor.record.form.license.cc-by": "Creative Commons CC-BY",
|
|
17479
|
+
"editor.record.form.license.cc-by-sa": "Creative Commons CC-BY-SA",
|
|
17480
|
+
"editor.record.form.license.cc-zero": "Creative Commons CC-0",
|
|
17481
|
+
"editor.record.form.license.etalab": "Offene Lizenz (Etalab)",
|
|
17482
|
+
"editor.record.form.license.etalab-v2": "Offene Lizenz v2.0 (Etalab)",
|
|
17483
|
+
"editor.record.form.license.odbl": "Open Data Commons ODbL",
|
|
17484
|
+
"editor.record.form.license.odc-by": "Open Data Commons ODC-By",
|
|
17485
|
+
"editor.record.form.license.pddl": "Open Data Commons PDDL",
|
|
17465
17486
|
"editor.record.form.license.unknown": "Unbekannt oder nicht vorhanden",
|
|
17466
|
-
"editor.record.form.
|
|
17467
|
-
"editor.record.form.
|
|
17468
|
-
"editor.record.form.
|
|
17469
|
-
"editor.record.form.temporalExtents
|
|
17470
|
-
"editor.record.form.temporalExtents.
|
|
17471
|
-
"editor.record.form.temporalExtents.
|
|
17472
|
-
"editor.record.form.
|
|
17473
|
-
"editor.record.form.
|
|
17474
|
-
"editor.record.
|
|
17475
|
-
"editor.record.
|
|
17476
|
-
"editor.record.
|
|
17477
|
-
"editor.record.
|
|
17478
|
-
"editor.record.
|
|
17479
|
-
"editor.record.
|
|
17480
|
-
"editor.record.
|
|
17481
|
-
"editor.record.
|
|
17482
|
-
"editor.record.
|
|
17483
|
-
"editor.record.
|
|
17484
|
-
"editor.record.
|
|
17485
|
-
"editor.record.
|
|
17486
|
-
"editor.record.
|
|
17487
|
+
"editor.record.form.metadata.title": "Metadaten-Titel",
|
|
17488
|
+
"editor.record.form.record.updated": "Datensatz zuletzt aktualisiert",
|
|
17489
|
+
"editor.record.form.resourceUpdated": "Letztes Aktualisierungsdatum",
|
|
17490
|
+
"editor.record.form.temporalExtents": "Zeitlicher Umfang",
|
|
17491
|
+
"editor.record.form.temporalExtents.addDate": "Zeitpunkt",
|
|
17492
|
+
"editor.record.form.temporalExtents.addRange": "Zeitraum",
|
|
17493
|
+
"editor.record.form.temporalExtents.date": "Datum",
|
|
17494
|
+
"editor.record.form.temporalExtents.range": "Datumsbereich",
|
|
17495
|
+
"editor.record.form.unique.identifier": "Eindeutige Kennung (ID)",
|
|
17496
|
+
"editor.record.form.updateFrequency": "Aktualisierungshäufigkeit",
|
|
17497
|
+
"editor.record.form.updateFrequency.planned": "Die Daten sollten regelmäßig aktualisiert werden.",
|
|
17498
|
+
"editor.record.loadError.body": "Der Datensatz konnte nicht geladen werden:",
|
|
17499
|
+
"editor.record.loadError.closeMessage": "Verstanden",
|
|
17500
|
+
"editor.record.loadError.title": "Fehler beim Laden des Datensatzes",
|
|
17501
|
+
"editor.record.publish": "Diesen Datensatz veröffentlichen",
|
|
17502
|
+
"editor.record.publishError.body": "Der Datensatz konnte nicht veröffentlicht werden:",
|
|
17503
|
+
"editor.record.publishError.closeMessage": "Verstanden",
|
|
17504
|
+
"editor.record.publishError.title": "Fehler beim Veröffentlichen des Datensatzes",
|
|
17505
|
+
"editor.record.publishSuccess.body": "Der Datensatz wurde erfolgreich veröffentlicht!",
|
|
17506
|
+
"editor.record.publishSuccess.title": "Veröffentlichung erfolgreich",
|
|
17507
|
+
"editor.record.saveStatus.asDraftOnly": "Nur als Entwurf gespeichert - noch nicht veröffentlicht",
|
|
17508
|
+
"editor.record.saveStatus.draftWithChangesPending": "Als Entwurf gespeichert - Änderungen stehen aus",
|
|
17509
|
+
"editor.record.saveStatus.recordUpToDate": "Datensatz ist auf dem neuesten Stand",
|
|
17510
|
+
"editor.record.upToDate": "Dieser Datensatz ist auf dem neuesten Stand",
|
|
17487
17511
|
"externalviewer.dataset.unnamed": "Datensatz aus dem Datahub",
|
|
17488
17512
|
"facets.block.title.OrgForResource": "Organisation",
|
|
17489
17513
|
"facets.block.title.availableInServices": "Verfügbar für",
|
|
@@ -17552,6 +17576,10 @@ var de = {
|
|
|
17552
17576
|
"organisations.sortBy.nameDesc": "Name Z → A",
|
|
17553
17577
|
"organisations.sortBy.recordCountAsc": "Veröffentlichungen 0 → 9",
|
|
17554
17578
|
"organisations.sortBy.recordCountDesc": "Veröffentlichungen 9 → 0",
|
|
17579
|
+
"organization.details.lastPublishedDatasets": "",
|
|
17580
|
+
"organization.details.lastPublishedDatasets.searchAllButton": "",
|
|
17581
|
+
"organization.details.mailContact": "",
|
|
17582
|
+
"organization.header.recordCount": "{count, plural, =0{} one{} other{}}",
|
|
17555
17583
|
"pagination.nextPage": "Nächste Seite",
|
|
17556
17584
|
"pagination.page": "Seite",
|
|
17557
17585
|
"pagination.pageOf": "von",
|
|
@@ -17589,7 +17617,7 @@ var de = {
|
|
|
17589
17617
|
"record.metadata.preview": "Vorschau",
|
|
17590
17618
|
"record.metadata.producer": "Datenproduzent",
|
|
17591
17619
|
"record.metadata.publication": "Veröffentlichungsdatum",
|
|
17592
|
-
"record.metadata.publications": "Veröffentlichungen",
|
|
17620
|
+
"record.metadata.publications": "{count, plural, =0{Veröffentlichungsdatum} one{Veröffentlichungsdatum} other{Veröffentlichungen}}",
|
|
17593
17621
|
"record.metadata.quality": "Metadatenqualität",
|
|
17594
17622
|
"record.metadata.quality.contact.failed": "Kontakt nicht angegeben",
|
|
17595
17623
|
"record.metadata.quality.contact.success": "Kontakt angegeben",
|
|
@@ -17649,6 +17677,8 @@ var de = {
|
|
|
17649
17677
|
"results.sortBy.relevancy": "Relevanz",
|
|
17650
17678
|
"search.autocomplete.error": "Vorschläge konnten nicht abgerufen werden:",
|
|
17651
17679
|
"search.error.couldNotReachApi": "Die API konnte nicht erreicht werden",
|
|
17680
|
+
"search.error.organizationHasNoDataset": "",
|
|
17681
|
+
"search.error.organizationNotFound": "",
|
|
17652
17682
|
"search.error.receivedError": "Ein Fehler ist aufgetreten",
|
|
17653
17683
|
"search.error.recordHasnolink": "",
|
|
17654
17684
|
"search.error.recordNotFound": "Der Datensatz mit der Kennung \"{ id }\" konnte nicht gefunden werden.",
|
|
@@ -17676,9 +17706,11 @@ var de = {
|
|
|
17676
17706
|
"search.filters.minimize": "Minimieren",
|
|
17677
17707
|
"search.filters.myRecords": "Nur meine Datensätze anzeigen",
|
|
17678
17708
|
"search.filters.myRecordsHelp": "Wenn dies aktiviert ist, werden nur von mir erstellte Datensätze angezeigt; Datensätze, die von anderen erstellt wurden, werden nicht angezeigt.",
|
|
17709
|
+
"search.filters.organization": "",
|
|
17679
17710
|
"search.filters.otherRecords": "Datensätze von einer anderen Person anzeigen",
|
|
17711
|
+
"search.filters.producerOrg": "",
|
|
17680
17712
|
"search.filters.publicationYear": "Veröffentlichungsjahr",
|
|
17681
|
-
"search.filters.
|
|
17713
|
+
"search.filters.publisherOrg": "",
|
|
17682
17714
|
"search.filters.representationType": "Repräsentationstyp",
|
|
17683
17715
|
"search.filters.resourceType": "Ressourcentyp",
|
|
17684
17716
|
"search.filters.standard": "Standard",
|
|
@@ -17709,9 +17741,10 @@ var next$5 = "next";
|
|
|
17709
17741
|
var previous$5 = "previous";
|
|
17710
17742
|
var records$5 = "records";
|
|
17711
17743
|
var en = {
|
|
17744
|
+
"Add Layer As": "",
|
|
17712
17745
|
"button.login": "Log in",
|
|
17713
17746
|
"catalog.figures.datasets": "{count, plural, =0{datasets} one{dataset} other{datasets}}",
|
|
17714
|
-
"catalog.figures.
|
|
17747
|
+
"catalog.figures.organizations": "{count, plural, =0{organizations} one{organization} other{organizations}}",
|
|
17715
17748
|
"chart.aggregation.average": "average",
|
|
17716
17749
|
"chart.aggregation.count": "count",
|
|
17717
17750
|
"chart.aggregation.max": "max",
|
|
@@ -17727,16 +17760,22 @@ var en = {
|
|
|
17727
17760
|
"chart.type.line": "line chart",
|
|
17728
17761
|
"chart.type.lineSmooth": "smooth line chart",
|
|
17729
17762
|
"chart.type.pie": "pie chart",
|
|
17763
|
+
"dashboard.catalog.allRecords": "Metadata records",
|
|
17764
|
+
"dashboard.catalog.calendar": "Calendar",
|
|
17765
|
+
"dashboard.catalog.contacts": "Contacts",
|
|
17766
|
+
"dashboard.catalog.discussion": "Discussion",
|
|
17767
|
+
"dashboard.catalog.thesaurus": "Thesaurus",
|
|
17730
17768
|
"dashboard.createRecord": "New record",
|
|
17769
|
+
"dashboard.labels.catalog": "Catalog",
|
|
17731
17770
|
"dashboard.labels.mySpace": "My space",
|
|
17732
17771
|
"dashboard.records.all": "Metadata records",
|
|
17733
17772
|
"dashboard.records.hasDraft": "draft",
|
|
17734
17773
|
"dashboard.records.myDraft": "My drafts",
|
|
17735
17774
|
"dashboard.records.myLibrary": "My library",
|
|
17736
|
-
"dashboard.records.myOrg": "Organization",
|
|
17737
17775
|
"dashboard.records.myRecords": "My Records",
|
|
17738
17776
|
"dashboard.records.publishedRecords": "{count, plural, =1{published record} other{published records}}",
|
|
17739
17777
|
"dashboard.records.search": "Search for \"{searchText}\"",
|
|
17778
|
+
"dashboard.records.templates": "Templates",
|
|
17740
17779
|
"dashboard.records.userDetail": "Name",
|
|
17741
17780
|
"dashboard.records.userEmail": "Email",
|
|
17742
17781
|
"dashboard.records.username": "Username",
|
|
@@ -17752,6 +17791,8 @@ var en = {
|
|
|
17752
17791
|
"datafeeder.datasetValidation.submitButton": "OK, my data are correct",
|
|
17753
17792
|
"datafeeder.datasetValidation.title": "Make sure your data are correct",
|
|
17754
17793
|
"datafeeder.datasetValidation.unknown": " - ",
|
|
17794
|
+
"datafeeder.datasetValidationCsv.explicitLineNumbers": "*The table must display the first 5 lines (excluding the header)<br>If this is not the case, check that the file is correctly formatted",
|
|
17795
|
+
"datafeeder.datasetValidationCsv.lineNumbers": "Sample of the first 5 lines* of the dataset:",
|
|
17755
17796
|
"datafeeder.form.abstract": "How would you describe your dataset?",
|
|
17756
17797
|
"datafeeder.form.datepicker": "Do you know when the dataset was created?",
|
|
17757
17798
|
"datafeeder.form.description": "Finally, please describe the process that was used to create the dataset",
|
|
@@ -17779,6 +17820,7 @@ var en = {
|
|
|
17779
17820
|
"datafeeder.publishSuccess.geonetworkRecord": "Metadata record",
|
|
17780
17821
|
"datafeeder.publishSuccess.illustration.title": "Done, all is good!",
|
|
17781
17822
|
"datafeeder.publishSuccess.mapViewer": "Map viewer",
|
|
17823
|
+
"datafeeder.publishSuccess.ogcFeature": "OGC API",
|
|
17782
17824
|
"datafeeder.publishSuccess.subtitle": "View your data in:",
|
|
17783
17825
|
"datafeeder.publishSuccess.title": "Congratulation! \n Your dataset has been published",
|
|
17784
17826
|
"datafeeder.publishSuccess.uploadAnotherData": "Upload another dataset",
|
|
@@ -17807,6 +17849,15 @@ var en = {
|
|
|
17807
17849
|
"datafeeder.upload.maxFileSize": "Maximum file size is {size} MB",
|
|
17808
17850
|
"datafeeder.upload.title": "Upload your dataset",
|
|
17809
17851
|
"datafeeder.upload.uploadButton": "Upload",
|
|
17852
|
+
"datafeeder.validation.csv.delimiter": "Delimiter",
|
|
17853
|
+
"datafeeder.validation.csv.delimiter.comma": "Comma",
|
|
17854
|
+
"datafeeder.validation.csv.delimiter.semicolon": "Semicolon",
|
|
17855
|
+
"datafeeder.validation.csv.lat.field": "Latitude column",
|
|
17856
|
+
"datafeeder.validation.csv.lng.field": "Longitude column",
|
|
17857
|
+
"datafeeder.validation.csv.quote.double": "Double quote",
|
|
17858
|
+
"datafeeder.validation.csv.quote.none": "None",
|
|
17859
|
+
"datafeeder.validation.csv.quote.simple": "Simple quote",
|
|
17860
|
+
"datafeeder.validation.csv.quoteChar": "Quote separator",
|
|
17810
17861
|
"datafeeder.validation.encoding": "encoding",
|
|
17811
17862
|
"datafeeder.validation.extent.title": "Here is the dataset extent",
|
|
17812
17863
|
"datafeeder.validation.extent.title.unknown": "The projection system is unknown",
|
|
@@ -17820,7 +17871,7 @@ var en = {
|
|
|
17820
17871
|
"datahub.header.lastRecords": "The latest",
|
|
17821
17872
|
"datahub.header.myfavorites": "My favorites",
|
|
17822
17873
|
"datahub.header.news": "Home",
|
|
17823
|
-
"datahub.header.
|
|
17874
|
+
"datahub.header.organizations": "Organizations",
|
|
17824
17875
|
"datahub.header.popularRecords": "The most popular",
|
|
17825
17876
|
"datahub.header.title.html": "<div class=\"text-white\">Discover open<br> data from my Organization</div>",
|
|
17826
17877
|
"datahub.news.contact.contactus": "Contact us",
|
|
@@ -17856,6 +17907,8 @@ var en = {
|
|
|
17856
17907
|
"downloads.format.unknown": "unknown",
|
|
17857
17908
|
"downloads.wfs.featuretype.not.found": "The layer was not found",
|
|
17858
17909
|
dropFile: dropFile$5,
|
|
17910
|
+
"editor.record.form.abstract": "Abstract",
|
|
17911
|
+
"editor.record.form.keywords": "Keywords",
|
|
17859
17912
|
"editor.record.form.license": "License",
|
|
17860
17913
|
"editor.record.form.license.cc-by": "Creative Commons CC-BY",
|
|
17861
17914
|
"editor.record.form.license.cc-by-sa": "Creative Commons CC-BY-SA",
|
|
@@ -17866,12 +17919,15 @@ var en = {
|
|
|
17866
17919
|
"editor.record.form.license.odc-by": "Open Data Commons ODC-By",
|
|
17867
17920
|
"editor.record.form.license.pddl": "Open Data Commons PDDL",
|
|
17868
17921
|
"editor.record.form.license.unknown": "Unknown or absent",
|
|
17922
|
+
"editor.record.form.metadata.title": "Metadata title",
|
|
17923
|
+
"editor.record.form.record.updated": "Record updated",
|
|
17869
17924
|
"editor.record.form.resourceUpdated": "Last update date",
|
|
17870
17925
|
"editor.record.form.temporalExtents": "Temporal extent",
|
|
17871
17926
|
"editor.record.form.temporalExtents.addDate": "Time instant",
|
|
17872
17927
|
"editor.record.form.temporalExtents.addRange": "Time period",
|
|
17873
17928
|
"editor.record.form.temporalExtents.date": "Date",
|
|
17874
17929
|
"editor.record.form.temporalExtents.range": "Date range",
|
|
17930
|
+
"editor.record.form.unique.identifier": "Unique identifier",
|
|
17875
17931
|
"editor.record.form.updateFrequency": "Update frequency",
|
|
17876
17932
|
"editor.record.form.updateFrequency.planned": "The data should be updated regularly.",
|
|
17877
17933
|
"editor.record.loadError.body": "The record could not be loaded:",
|
|
@@ -17955,6 +18011,10 @@ var en = {
|
|
|
17955
18011
|
"organisations.sortBy.nameDesc": "Name Z → A",
|
|
17956
18012
|
"organisations.sortBy.recordCountAsc": "Publications 0 → 9",
|
|
17957
18013
|
"organisations.sortBy.recordCountDesc": "Publications 9 → 0",
|
|
18014
|
+
"organization.details.lastPublishedDatasets": "",
|
|
18015
|
+
"organization.details.lastPublishedDatasets.searchAllButton": "",
|
|
18016
|
+
"organization.details.mailContact": "Contact by email",
|
|
18017
|
+
"organization.header.recordCount": "{count, plural, =0{data} one{data} other{datas}}",
|
|
17958
18018
|
"pagination.nextPage": "Next page",
|
|
17959
18019
|
"pagination.page": "page",
|
|
17960
18020
|
"pagination.pageOf": "of",
|
|
@@ -17992,7 +18052,7 @@ var en = {
|
|
|
17992
18052
|
"record.metadata.preview": "Preview",
|
|
17993
18053
|
"record.metadata.producer": "Data producer",
|
|
17994
18054
|
"record.metadata.publication": "Date of publication",
|
|
17995
|
-
"record.metadata.publications": "publications",
|
|
18055
|
+
"record.metadata.publications": "{count, plural, =0{publication} one{publication} other{publications}}",
|
|
17996
18056
|
"record.metadata.quality": "Metadata Quality",
|
|
17997
18057
|
"record.metadata.quality.contact.failed": "Contact is not specified",
|
|
17998
18058
|
"record.metadata.quality.contact.success": "Contact is specified",
|
|
@@ -18052,6 +18112,8 @@ var en = {
|
|
|
18052
18112
|
"results.sortBy.relevancy": "Relevancy",
|
|
18053
18113
|
"search.autocomplete.error": "Suggestions could not be fetched:",
|
|
18054
18114
|
"search.error.couldNotReachApi": "The API could not be reached",
|
|
18115
|
+
"search.error.organizationHasNoDataset": "This organization has no dataset yet.",
|
|
18116
|
+
"search.error.organizationNotFound": "This organization could not be found.",
|
|
18055
18117
|
"search.error.receivedError": "An error was received",
|
|
18056
18118
|
"search.error.recordHasnolink": "This record currently has no link yet, please come back later.",
|
|
18057
18119
|
"search.error.recordNotFound": "The record with identifier \"{ id }\" could not be found.",
|
|
@@ -18079,9 +18141,11 @@ var en = {
|
|
|
18079
18141
|
"search.filters.minimize": "Minimize",
|
|
18080
18142
|
"search.filters.myRecords": "Show only my records",
|
|
18081
18143
|
"search.filters.myRecordsHelp": "When this is enabled, records only created by myself are shown; records created by others will not show up.",
|
|
18144
|
+
"search.filters.organization": "Organization",
|
|
18082
18145
|
"search.filters.otherRecords": "Showing records from another person",
|
|
18146
|
+
"search.filters.producerOrg": "Producer",
|
|
18083
18147
|
"search.filters.publicationYear": "Publication year",
|
|
18084
|
-
"search.filters.
|
|
18148
|
+
"search.filters.publisherOrg": "Publisher",
|
|
18085
18149
|
"search.filters.representationType": "Representation type",
|
|
18086
18150
|
"search.filters.resourceType": "Resource type",
|
|
18087
18151
|
"search.filters.standard": "Standard",
|
|
@@ -18112,9 +18176,10 @@ var next$4 = "";
|
|
|
18112
18176
|
var previous$4 = "";
|
|
18113
18177
|
var records$4 = "";
|
|
18114
18178
|
var es = {
|
|
18179
|
+
"Add Layer As": "",
|
|
18115
18180
|
"button.login": "",
|
|
18116
18181
|
"catalog.figures.datasets": "conjuntos de datos",
|
|
18117
|
-
"catalog.figures.
|
|
18182
|
+
"catalog.figures.organizations": "organizaciones",
|
|
18118
18183
|
"chart.aggregation.average": "promedio",
|
|
18119
18184
|
"chart.aggregation.count": "conteo",
|
|
18120
18185
|
"chart.aggregation.max": "máximo",
|
|
@@ -18130,16 +18195,22 @@ var es = {
|
|
|
18130
18195
|
"chart.type.line": "gráfico de líneas",
|
|
18131
18196
|
"chart.type.lineSmooth": "gráfico de líneas suave",
|
|
18132
18197
|
"chart.type.pie": "gráfico circular",
|
|
18198
|
+
"dashboard.catalog.allRecords": "",
|
|
18199
|
+
"dashboard.catalog.calendar": "",
|
|
18200
|
+
"dashboard.catalog.contacts": "",
|
|
18201
|
+
"dashboard.catalog.discussion": "",
|
|
18202
|
+
"dashboard.catalog.thesaurus": "",
|
|
18133
18203
|
"dashboard.createRecord": "",
|
|
18204
|
+
"dashboard.labels.catalog": "Catálogo",
|
|
18134
18205
|
"dashboard.labels.mySpace": "Mi espacio",
|
|
18135
18206
|
"dashboard.records.all": "Catálogo",
|
|
18136
18207
|
"dashboard.records.hasDraft": "",
|
|
18137
18208
|
"dashboard.records.myDraft": "Mis borradores",
|
|
18138
18209
|
"dashboard.records.myLibrary": "Mi biblioteca",
|
|
18139
|
-
"dashboard.records.myOrg": "Organización",
|
|
18140
18210
|
"dashboard.records.myRecords": "Mis Registros",
|
|
18141
18211
|
"dashboard.records.publishedRecords": "",
|
|
18142
18212
|
"dashboard.records.search": "Buscar \"{searchText}\"",
|
|
18213
|
+
"dashboard.records.templates": "",
|
|
18143
18214
|
"dashboard.records.userDetail": "",
|
|
18144
18215
|
"dashboard.records.userEmail": "",
|
|
18145
18216
|
"dashboard.records.username": "",
|
|
@@ -18155,6 +18226,8 @@ var es = {
|
|
|
18155
18226
|
"datafeeder.datasetValidation.submitButton": "",
|
|
18156
18227
|
"datafeeder.datasetValidation.title": "",
|
|
18157
18228
|
"datafeeder.datasetValidation.unknown": "",
|
|
18229
|
+
"datafeeder.datasetValidationCsv.explicitLineNumbers": "",
|
|
18230
|
+
"datafeeder.datasetValidationCsv.lineNumbers": "",
|
|
18158
18231
|
"datafeeder.form.abstract": "",
|
|
18159
18232
|
"datafeeder.form.datepicker": "",
|
|
18160
18233
|
"datafeeder.form.description": "",
|
|
@@ -18182,6 +18255,7 @@ var es = {
|
|
|
18182
18255
|
"datafeeder.publishSuccess.geonetworkRecord": "",
|
|
18183
18256
|
"datafeeder.publishSuccess.illustration.title": "",
|
|
18184
18257
|
"datafeeder.publishSuccess.mapViewer": "",
|
|
18258
|
+
"datafeeder.publishSuccess.ogcFeature": "",
|
|
18185
18259
|
"datafeeder.publishSuccess.subtitle": "",
|
|
18186
18260
|
"datafeeder.publishSuccess.title": "",
|
|
18187
18261
|
"datafeeder.publishSuccess.uploadAnotherData": "",
|
|
@@ -18210,6 +18284,15 @@ var es = {
|
|
|
18210
18284
|
"datafeeder.upload.maxFileSize": "",
|
|
18211
18285
|
"datafeeder.upload.title": "",
|
|
18212
18286
|
"datafeeder.upload.uploadButton": "",
|
|
18287
|
+
"datafeeder.validation.csv.delimiter": "",
|
|
18288
|
+
"datafeeder.validation.csv.delimiter.comma": "Coma",
|
|
18289
|
+
"datafeeder.validation.csv.delimiter.semicolon": "Punto y coma",
|
|
18290
|
+
"datafeeder.validation.csv.lat.field": "",
|
|
18291
|
+
"datafeeder.validation.csv.lng.field": "",
|
|
18292
|
+
"datafeeder.validation.csv.quote.double": "Comillas dobles",
|
|
18293
|
+
"datafeeder.validation.csv.quote.none": "Ninguno",
|
|
18294
|
+
"datafeeder.validation.csv.quote.simple": "Comillas simples",
|
|
18295
|
+
"datafeeder.validation.csv.quoteChar": "",
|
|
18213
18296
|
"datafeeder.validation.encoding": "",
|
|
18214
18297
|
"datafeeder.validation.extent.title": "",
|
|
18215
18298
|
"datafeeder.validation.extent.title.unknown": "",
|
|
@@ -18223,7 +18306,7 @@ var es = {
|
|
|
18223
18306
|
"datahub.header.lastRecords": "",
|
|
18224
18307
|
"datahub.header.myfavorites": "",
|
|
18225
18308
|
"datahub.header.news": "",
|
|
18226
|
-
"datahub.header.
|
|
18309
|
+
"datahub.header.organizations": "",
|
|
18227
18310
|
"datahub.header.popularRecords": "",
|
|
18228
18311
|
"datahub.header.title.html": "",
|
|
18229
18312
|
"datahub.news.contact.contactus": "",
|
|
@@ -18259,6 +18342,8 @@ var es = {
|
|
|
18259
18342
|
"downloads.format.unknown": "",
|
|
18260
18343
|
"downloads.wfs.featuretype.not.found": "",
|
|
18261
18344
|
dropFile: dropFile$4,
|
|
18345
|
+
"editor.record.form.abstract": "",
|
|
18346
|
+
"editor.record.form.keywords": "",
|
|
18262
18347
|
"editor.record.form.license": "",
|
|
18263
18348
|
"editor.record.form.license.cc-by": "",
|
|
18264
18349
|
"editor.record.form.license.cc-by-sa": "",
|
|
@@ -18269,12 +18354,15 @@ var es = {
|
|
|
18269
18354
|
"editor.record.form.license.odc-by": "",
|
|
18270
18355
|
"editor.record.form.license.pddl": "",
|
|
18271
18356
|
"editor.record.form.license.unknown": "",
|
|
18357
|
+
"editor.record.form.metadata.title": "",
|
|
18358
|
+
"editor.record.form.record.updated": "",
|
|
18272
18359
|
"editor.record.form.resourceUpdated": "",
|
|
18273
18360
|
"editor.record.form.temporalExtents": "",
|
|
18274
18361
|
"editor.record.form.temporalExtents.addDate": "",
|
|
18275
18362
|
"editor.record.form.temporalExtents.addRange": "",
|
|
18276
18363
|
"editor.record.form.temporalExtents.date": "",
|
|
18277
18364
|
"editor.record.form.temporalExtents.range": "",
|
|
18365
|
+
"editor.record.form.unique.identifier": "",
|
|
18278
18366
|
"editor.record.form.updateFrequency": "",
|
|
18279
18367
|
"editor.record.form.updateFrequency.planned": "",
|
|
18280
18368
|
"editor.record.loadError.body": "",
|
|
@@ -18358,6 +18446,10 @@ var es = {
|
|
|
18358
18446
|
"organisations.sortBy.nameDesc": "",
|
|
18359
18447
|
"organisations.sortBy.recordCountAsc": "",
|
|
18360
18448
|
"organisations.sortBy.recordCountDesc": "",
|
|
18449
|
+
"organization.details.lastPublishedDatasets": "",
|
|
18450
|
+
"organization.details.lastPublishedDatasets.searchAllButton": "",
|
|
18451
|
+
"organization.details.mailContact": "",
|
|
18452
|
+
"organization.header.recordCount": "{count, plural, =0{} one{} other{}}",
|
|
18361
18453
|
"pagination.nextPage": "",
|
|
18362
18454
|
"pagination.page": "",
|
|
18363
18455
|
"pagination.pageOf": "",
|
|
@@ -18395,7 +18487,7 @@ var es = {
|
|
|
18395
18487
|
"record.metadata.preview": "",
|
|
18396
18488
|
"record.metadata.producer": "",
|
|
18397
18489
|
"record.metadata.publication": "",
|
|
18398
|
-
"record.metadata.publications": "",
|
|
18490
|
+
"record.metadata.publications": "{count, plural, =0{} one{} other{}}",
|
|
18399
18491
|
"record.metadata.quality": "",
|
|
18400
18492
|
"record.metadata.quality.contact.failed": "",
|
|
18401
18493
|
"record.metadata.quality.contact.success": "",
|
|
@@ -18455,6 +18547,8 @@ var es = {
|
|
|
18455
18547
|
"results.sortBy.relevancy": "",
|
|
18456
18548
|
"search.autocomplete.error": "",
|
|
18457
18549
|
"search.error.couldNotReachApi": "",
|
|
18550
|
+
"search.error.organizationHasNoDataset": "",
|
|
18551
|
+
"search.error.organizationNotFound": "",
|
|
18458
18552
|
"search.error.receivedError": "",
|
|
18459
18553
|
"search.error.recordHasnolink": "",
|
|
18460
18554
|
"search.error.recordNotFound": "",
|
|
@@ -18482,9 +18576,11 @@ var es = {
|
|
|
18482
18576
|
"search.filters.minimize": "",
|
|
18483
18577
|
"search.filters.myRecords": "",
|
|
18484
18578
|
"search.filters.myRecordsHelp": "",
|
|
18579
|
+
"search.filters.organization": "",
|
|
18485
18580
|
"search.filters.otherRecords": "",
|
|
18581
|
+
"search.filters.producerOrg": "",
|
|
18486
18582
|
"search.filters.publicationYear": "",
|
|
18487
|
-
"search.filters.
|
|
18583
|
+
"search.filters.publisherOrg": "",
|
|
18488
18584
|
"search.filters.representationType": "",
|
|
18489
18585
|
"search.filters.resourceType": "",
|
|
18490
18586
|
"search.filters.standard": "",
|
|
@@ -18515,9 +18611,10 @@ var next$3 = "suivant";
|
|
|
18515
18611
|
var previous$3 = "précédent";
|
|
18516
18612
|
var records$3 = "enregistrements";
|
|
18517
18613
|
var fr = {
|
|
18614
|
+
"Add Layer As": "",
|
|
18518
18615
|
"button.login": "Se connecter",
|
|
18519
18616
|
"catalog.figures.datasets": "{count, plural, =0{données} one{donnée} other{données}}",
|
|
18520
|
-
"catalog.figures.
|
|
18617
|
+
"catalog.figures.organizations": "{count, plural, =0{organisations} one{organisation} other{organisations}}",
|
|
18521
18618
|
"chart.aggregation.average": "moyenne",
|
|
18522
18619
|
"chart.aggregation.count": "nombre",
|
|
18523
18620
|
"chart.aggregation.max": "maximum",
|
|
@@ -18533,16 +18630,22 @@ var fr = {
|
|
|
18533
18630
|
"chart.type.line": "ligne",
|
|
18534
18631
|
"chart.type.lineSmooth": "ligne lisse",
|
|
18535
18632
|
"chart.type.pie": "camembert",
|
|
18633
|
+
"dashboard.catalog.allRecords": "Fiches de métadonnée",
|
|
18634
|
+
"dashboard.catalog.calendar": "Calendrier",
|
|
18635
|
+
"dashboard.catalog.contacts": "Annuaire",
|
|
18636
|
+
"dashboard.catalog.discussion": "Discussions",
|
|
18637
|
+
"dashboard.catalog.thesaurus": "Thesaurus",
|
|
18536
18638
|
"dashboard.createRecord": "Nouvel enregistrement",
|
|
18639
|
+
"dashboard.labels.catalog": "Catalogue",
|
|
18537
18640
|
"dashboard.labels.mySpace": "Mon espace",
|
|
18538
18641
|
"dashboard.records.all": "Catalogue",
|
|
18539
18642
|
"dashboard.records.hasDraft": "brouillon",
|
|
18540
18643
|
"dashboard.records.myDraft": "Mes brouillons",
|
|
18541
18644
|
"dashboard.records.myLibrary": "Ma bibliothèque",
|
|
18542
|
-
"dashboard.records.myOrg": "Mon organisation",
|
|
18543
18645
|
"dashboard.records.myRecords": "Mes fiches publiées",
|
|
18544
18646
|
"dashboard.records.publishedRecords": "{count, plural, =1{donnée publiée} other{données publiées}}",
|
|
18545
18647
|
"dashboard.records.search": "Résultats pour \"{searchText}\"",
|
|
18648
|
+
"dashboard.records.templates": "Modèles pré-remplis",
|
|
18546
18649
|
"dashboard.records.userDetail": "Nom",
|
|
18547
18650
|
"dashboard.records.userEmail": "Email",
|
|
18548
18651
|
"dashboard.records.username": "Nom d'utilisateur",
|
|
@@ -18558,6 +18661,8 @@ var fr = {
|
|
|
18558
18661
|
"datafeeder.datasetValidation.submitButton": "OK, mes données sont correctes",
|
|
18559
18662
|
"datafeeder.datasetValidation.title": "Vérifiez que vos données sont correctes",
|
|
18560
18663
|
"datafeeder.datasetValidation.unknown": " - ",
|
|
18664
|
+
"datafeeder.datasetValidationCsv.explicitLineNumbers": "*Le tableau doit afficher les 5 premières lignes (hors en-tête)<br>Si ce n'est pas le cas, vérifier que le fichier est bien formatté",
|
|
18665
|
+
"datafeeder.datasetValidationCsv.lineNumbers": "Résumé des 5 premières lignes* du CSV :",
|
|
18561
18666
|
"datafeeder.form.abstract": "Comment décrire votre jeu de données ?",
|
|
18562
18667
|
"datafeeder.form.datepicker": "Savez-vous quand la donnée a été créée ?",
|
|
18563
18668
|
"datafeeder.form.description": "Enfin, décrivez le processus utilisé pour créer la donnée",
|
|
@@ -18584,7 +18689,8 @@ var fr = {
|
|
|
18584
18689
|
"datafeeder.publish.upload": "Upload maintenant",
|
|
18585
18690
|
"datafeeder.publishSuccess.geonetworkRecord": "Fiche de métadonnée",
|
|
18586
18691
|
"datafeeder.publishSuccess.illustration.title": "Terminé, tout s'est bien passé !",
|
|
18587
|
-
"datafeeder.publishSuccess.mapViewer": "
|
|
18692
|
+
"datafeeder.publishSuccess.mapViewer": "Visualiseur",
|
|
18693
|
+
"datafeeder.publishSuccess.ogcFeature": "OGC API",
|
|
18588
18694
|
"datafeeder.publishSuccess.subtitle": "Visualisez vos données :",
|
|
18589
18695
|
"datafeeder.publishSuccess.title": "Félicitations! \n Vos données ont été publiées",
|
|
18590
18696
|
"datafeeder.publishSuccess.uploadAnotherData": "Importer une autre donnée",
|
|
@@ -18613,6 +18719,15 @@ var fr = {
|
|
|
18613
18719
|
"datafeeder.upload.maxFileSize": "La taille maximale est {size} Mo",
|
|
18614
18720
|
"datafeeder.upload.title": "Importez vos données",
|
|
18615
18721
|
"datafeeder.upload.uploadButton": "Transférer",
|
|
18722
|
+
"datafeeder.validation.csv.delimiter": "Séparateur de colonne",
|
|
18723
|
+
"datafeeder.validation.csv.delimiter.comma": "Virgule",
|
|
18724
|
+
"datafeeder.validation.csv.delimiter.semicolon": "Point-virgule",
|
|
18725
|
+
"datafeeder.validation.csv.lat.field": "Colonne latitude",
|
|
18726
|
+
"datafeeder.validation.csv.lng.field": "Colonne longitude",
|
|
18727
|
+
"datafeeder.validation.csv.quote.double": "Double guillemets",
|
|
18728
|
+
"datafeeder.validation.csv.quote.none": "Aucun",
|
|
18729
|
+
"datafeeder.validation.csv.quote.simple": "Simple guillemet",
|
|
18730
|
+
"datafeeder.validation.csv.quoteChar": "Séparateur de texte",
|
|
18616
18731
|
"datafeeder.validation.encoding": "encodage",
|
|
18617
18732
|
"datafeeder.validation.extent.title": "Voici l'emprise du jeu de données",
|
|
18618
18733
|
"datafeeder.validation.extent.title.unknown": "Le système de projection est inconnu",
|
|
@@ -18626,7 +18741,7 @@ var fr = {
|
|
|
18626
18741
|
"datahub.header.lastRecords": "Les plus récentes",
|
|
18627
18742
|
"datahub.header.myfavorites": "Mes favoris",
|
|
18628
18743
|
"datahub.header.news": "Accueil",
|
|
18629
|
-
"datahub.header.
|
|
18744
|
+
"datahub.header.organizations": "Organisations",
|
|
18630
18745
|
"datahub.header.popularRecords": "Les plus appréciées",
|
|
18631
18746
|
"datahub.header.title.html": "<div class=\"text-white\">Toutes les données<br>publiques de mon organisation</div>",
|
|
18632
18747
|
"datahub.news.contact.contactus": "Contactez-nous",
|
|
@@ -18662,6 +18777,8 @@ var fr = {
|
|
|
18662
18777
|
"downloads.format.unknown": "inconnu",
|
|
18663
18778
|
"downloads.wfs.featuretype.not.found": "La couche n'a pas été retrouvée",
|
|
18664
18779
|
dropFile: dropFile$3,
|
|
18780
|
+
"editor.record.form.abstract": "",
|
|
18781
|
+
"editor.record.form.keywords": "",
|
|
18665
18782
|
"editor.record.form.license": "Licence",
|
|
18666
18783
|
"editor.record.form.license.cc-by": "",
|
|
18667
18784
|
"editor.record.form.license.cc-by-sa": "",
|
|
@@ -18672,12 +18789,15 @@ var fr = {
|
|
|
18672
18789
|
"editor.record.form.license.odc-by": "",
|
|
18673
18790
|
"editor.record.form.license.pddl": "",
|
|
18674
18791
|
"editor.record.form.license.unknown": "Non-reconnue ou absente",
|
|
18792
|
+
"editor.record.form.metadata.title": "",
|
|
18793
|
+
"editor.record.form.record.updated": "",
|
|
18675
18794
|
"editor.record.form.resourceUpdated": "Date de dernière révision",
|
|
18676
18795
|
"editor.record.form.temporalExtents": "Étendue temporelle",
|
|
18677
18796
|
"editor.record.form.temporalExtents.addDate": "Date déterminée",
|
|
18678
18797
|
"editor.record.form.temporalExtents.addRange": "Période de temps",
|
|
18679
18798
|
"editor.record.form.temporalExtents.date": "Date concernée",
|
|
18680
18799
|
"editor.record.form.temporalExtents.range": "Période concernée",
|
|
18800
|
+
"editor.record.form.unique.identifier": "",
|
|
18681
18801
|
"editor.record.form.updateFrequency": "Fréquence de mise à jour",
|
|
18682
18802
|
"editor.record.form.updateFrequency.planned": "Ces données doivent être mise à jour régulièrement.",
|
|
18683
18803
|
"editor.record.loadError.body": "",
|
|
@@ -18761,6 +18881,10 @@ var fr = {
|
|
|
18761
18881
|
"organisations.sortBy.nameDesc": "Nom Z → A",
|
|
18762
18882
|
"organisations.sortBy.recordCountAsc": "Données 0 → 9",
|
|
18763
18883
|
"organisations.sortBy.recordCountDesc": "Données 9 → 0",
|
|
18884
|
+
"organization.details.lastPublishedDatasets": "",
|
|
18885
|
+
"organization.details.lastPublishedDatasets.searchAllButton": "",
|
|
18886
|
+
"organization.details.mailContact": "Contacter par mail",
|
|
18887
|
+
"organization.header.recordCount": "{count, plural, =0{donnée} one{donnée} other{données}}",
|
|
18764
18888
|
"pagination.nextPage": "Page suivante",
|
|
18765
18889
|
"pagination.page": "page",
|
|
18766
18890
|
"pagination.pageOf": "sur",
|
|
@@ -18798,7 +18922,7 @@ var fr = {
|
|
|
18798
18922
|
"record.metadata.preview": "Aperçu",
|
|
18799
18923
|
"record.metadata.producer": "Producteur de la donnée",
|
|
18800
18924
|
"record.metadata.publication": "Date de publication",
|
|
18801
|
-
"record.metadata.publications": "données",
|
|
18925
|
+
"record.metadata.publications": "{count, plural, =0{donnée} one{donnée} other{données}}",
|
|
18802
18926
|
"record.metadata.quality": "Qualité des métadonnées",
|
|
18803
18927
|
"record.metadata.quality.contact.failed": "Contact n'est pas renseigné",
|
|
18804
18928
|
"record.metadata.quality.contact.success": "Contact est renseigné",
|
|
@@ -18858,6 +18982,8 @@ var fr = {
|
|
|
18858
18982
|
"results.sortBy.relevancy": "Pertinence",
|
|
18859
18983
|
"search.autocomplete.error": "Les suggestions ne peuvent pas être récupérées",
|
|
18860
18984
|
"search.error.couldNotReachApi": "Problème de connexion à l'API",
|
|
18985
|
+
"search.error.organizationHasNoDataset": "Cette organisation n'a pas encore de données.",
|
|
18986
|
+
"search.error.organizationNotFound": "L'organisation n'a pas pu être trouvée.",
|
|
18861
18987
|
"search.error.receivedError": "Erreur retournée",
|
|
18862
18988
|
"search.error.recordHasnolink": "Ce dataset n'a pas encore de lien, réessayez plus tard s'il vous plaît.",
|
|
18863
18989
|
"search.error.recordNotFound": "Cette donnée n'a pu être trouvée.",
|
|
@@ -18885,9 +19011,11 @@ var fr = {
|
|
|
18885
19011
|
"search.filters.minimize": "Réduire",
|
|
18886
19012
|
"search.filters.myRecords": "Voir mes données",
|
|
18887
19013
|
"search.filters.myRecordsHelp": "Quand activé, n'affiche que les données créées avec mon utilisateur. Les données créées par les autres utilisateurs ne sont pas affichées.",
|
|
19014
|
+
"search.filters.organization": "Organisation",
|
|
18888
19015
|
"search.filters.otherRecords": "Affichage des données d'un autre utilisateur",
|
|
19016
|
+
"search.filters.producerOrg": "Producteur",
|
|
18889
19017
|
"search.filters.publicationYear": "Année de publication",
|
|
18890
|
-
"search.filters.
|
|
19018
|
+
"search.filters.publisherOrg": "Distributeur",
|
|
18891
19019
|
"search.filters.representationType": "Type de représentation",
|
|
18892
19020
|
"search.filters.resourceType": "Type de ressource",
|
|
18893
19021
|
"search.filters.standard": "Standard",
|
|
@@ -18918,9 +19046,10 @@ var next$2 = "successivo";
|
|
|
18918
19046
|
var previous$2 = "precedente";
|
|
18919
19047
|
var records$2 = "record";
|
|
18920
19048
|
var it = {
|
|
19049
|
+
"Add Layer As": "",
|
|
18921
19050
|
"button.login": "",
|
|
18922
19051
|
"catalog.figures.datasets": "{count, plural, =0{datasets} one{dataset} other{datasets}}",
|
|
18923
|
-
"catalog.figures.
|
|
19052
|
+
"catalog.figures.organizations": "{count, plural, =0{organizzazioni} one{organizzazione} other{organizzazioni}}",
|
|
18924
19053
|
"chart.aggregation.average": "media",
|
|
18925
19054
|
"chart.aggregation.count": "conteggio",
|
|
18926
19055
|
"chart.aggregation.max": "massimo",
|
|
@@ -18936,16 +19065,22 @@ var it = {
|
|
|
18936
19065
|
"chart.type.line": "grafico a linee",
|
|
18937
19066
|
"chart.type.lineSmooth": "grafico a linea liscia",
|
|
18938
19067
|
"chart.type.pie": "grafico a torta",
|
|
19068
|
+
"dashboard.catalog.allRecords": "",
|
|
19069
|
+
"dashboard.catalog.calendar": "",
|
|
19070
|
+
"dashboard.catalog.contacts": "",
|
|
19071
|
+
"dashboard.catalog.discussion": "",
|
|
19072
|
+
"dashboard.catalog.thesaurus": "",
|
|
18939
19073
|
"dashboard.createRecord": "Crea un record",
|
|
19074
|
+
"dashboard.labels.catalog": "Catalogo",
|
|
18940
19075
|
"dashboard.labels.mySpace": "Il mio spazio",
|
|
18941
19076
|
"dashboard.records.all": "Catalogo",
|
|
18942
19077
|
"dashboard.records.hasDraft": "",
|
|
18943
19078
|
"dashboard.records.myDraft": "Le mie bozze",
|
|
18944
19079
|
"dashboard.records.myLibrary": "La mia biblioteca",
|
|
18945
|
-
"dashboard.records.myOrg": "La mia organizzazione",
|
|
18946
19080
|
"dashboard.records.myRecords": "I miei dati",
|
|
18947
19081
|
"dashboard.records.publishedRecords": "dati pubblicati",
|
|
18948
19082
|
"dashboard.records.search": "Risultati per \"{searchText}\"",
|
|
19083
|
+
"dashboard.records.templates": "",
|
|
18949
19084
|
"dashboard.records.userDetail": "Nome",
|
|
18950
19085
|
"dashboard.records.userEmail": "Email",
|
|
18951
19086
|
"dashboard.records.username": "Nome utente",
|
|
@@ -18961,6 +19096,8 @@ var it = {
|
|
|
18961
19096
|
"datafeeder.datasetValidation.submitButton": "OK, i miei dati sono corretti",
|
|
18962
19097
|
"datafeeder.datasetValidation.title": "Controllare che i dati siano corretti",
|
|
18963
19098
|
"datafeeder.datasetValidation.unknown": " - ",
|
|
19099
|
+
"datafeeder.datasetValidationCsv.explicitLineNumbers": "",
|
|
19100
|
+
"datafeeder.datasetValidationCsv.lineNumbers": "",
|
|
18964
19101
|
"datafeeder.form.abstract": "Come descrivere il suo dataset?",
|
|
18965
19102
|
"datafeeder.form.datepicker": "Sa quando è stato creato il suo dataset ?",
|
|
18966
19103
|
"datafeeder.form.description": "Infine, descrivere il processo utilizzato per creare il dataset",
|
|
@@ -18988,6 +19125,7 @@ var it = {
|
|
|
18988
19125
|
"datafeeder.publishSuccess.geonetworkRecord": "Scheda di metadati",
|
|
18989
19126
|
"datafeeder.publishSuccess.illustration.title": "Completato, tutto è andato bene!",
|
|
18990
19127
|
"datafeeder.publishSuccess.mapViewer": "Visualizzatore",
|
|
19128
|
+
"datafeeder.publishSuccess.ogcFeature": "",
|
|
18991
19129
|
"datafeeder.publishSuccess.subtitle": "Visualizzare i dati:",
|
|
18992
19130
|
"datafeeder.publishSuccess.title": "Congratulazioni! \n I suoi dati sono stati pubblicati",
|
|
18993
19131
|
"datafeeder.publishSuccess.uploadAnotherData": "Caricare un altro dato",
|
|
@@ -19016,6 +19154,15 @@ var it = {
|
|
|
19016
19154
|
"datafeeder.upload.maxFileSize": "Dimensione massima: {size} MB",
|
|
19017
19155
|
"datafeeder.upload.title": "Importa i suoi dati",
|
|
19018
19156
|
"datafeeder.upload.uploadButton": "Carica",
|
|
19157
|
+
"datafeeder.validation.csv.delimiter": "",
|
|
19158
|
+
"datafeeder.validation.csv.delimiter.comma": "",
|
|
19159
|
+
"datafeeder.validation.csv.delimiter.semicolon": "",
|
|
19160
|
+
"datafeeder.validation.csv.lat.field": "",
|
|
19161
|
+
"datafeeder.validation.csv.lng.field": "",
|
|
19162
|
+
"datafeeder.validation.csv.quote.double": "",
|
|
19163
|
+
"datafeeder.validation.csv.quote.none": "",
|
|
19164
|
+
"datafeeder.validation.csv.quote.simple": "",
|
|
19165
|
+
"datafeeder.validation.csv.quoteChar": "",
|
|
19019
19166
|
"datafeeder.validation.encoding": "Codifica",
|
|
19020
19167
|
"datafeeder.validation.extent.title": "Ecco l'estensione del dataset",
|
|
19021
19168
|
"datafeeder.validation.extent.title.unknown": "Sistema di proiezione sconosciuto",
|
|
@@ -19029,7 +19176,7 @@ var it = {
|
|
|
19029
19176
|
"datahub.header.lastRecords": "Ultimi",
|
|
19030
19177
|
"datahub.header.myfavorites": "Miei preferiti",
|
|
19031
19178
|
"datahub.header.news": "Home",
|
|
19032
|
-
"datahub.header.
|
|
19179
|
+
"datahub.header.organizations": "Organizzazioni",
|
|
19033
19180
|
"datahub.header.popularRecords": "Più popolari",
|
|
19034
19181
|
"datahub.header.title.html": "<div class=\"text-white\">Tutti i dati<br>pubblici della mia organizzazione</div>",
|
|
19035
19182
|
"datahub.news.contact.contactus": "Contattateci",
|
|
@@ -19065,6 +19212,8 @@ var it = {
|
|
|
19065
19212
|
"downloads.format.unknown": "sconosciuto",
|
|
19066
19213
|
"downloads.wfs.featuretype.not.found": "Il layer non è stato trovato",
|
|
19067
19214
|
dropFile: dropFile$2,
|
|
19215
|
+
"editor.record.form.abstract": "",
|
|
19216
|
+
"editor.record.form.keywords": "",
|
|
19068
19217
|
"editor.record.form.license": "Licenza",
|
|
19069
19218
|
"editor.record.form.license.cc-by": "",
|
|
19070
19219
|
"editor.record.form.license.cc-by-sa": "",
|
|
@@ -19075,12 +19224,15 @@ var it = {
|
|
|
19075
19224
|
"editor.record.form.license.odc-by": "",
|
|
19076
19225
|
"editor.record.form.license.pddl": "",
|
|
19077
19226
|
"editor.record.form.license.unknown": "Non riconosciuta o assente",
|
|
19227
|
+
"editor.record.form.metadata.title": "",
|
|
19228
|
+
"editor.record.form.record.updated": "",
|
|
19078
19229
|
"editor.record.form.resourceUpdated": "",
|
|
19079
19230
|
"editor.record.form.temporalExtents": "",
|
|
19080
19231
|
"editor.record.form.temporalExtents.addDate": "",
|
|
19081
19232
|
"editor.record.form.temporalExtents.addRange": "",
|
|
19082
19233
|
"editor.record.form.temporalExtents.date": "",
|
|
19083
19234
|
"editor.record.form.temporalExtents.range": "",
|
|
19235
|
+
"editor.record.form.unique.identifier": "",
|
|
19084
19236
|
"editor.record.form.updateFrequency": "",
|
|
19085
19237
|
"editor.record.form.updateFrequency.planned": "",
|
|
19086
19238
|
"editor.record.loadError.body": "",
|
|
@@ -19164,6 +19316,10 @@ var it = {
|
|
|
19164
19316
|
"organisations.sortBy.nameDesc": "Nome Z → A",
|
|
19165
19317
|
"organisations.sortBy.recordCountAsc": "Dati 0 → 9",
|
|
19166
19318
|
"organisations.sortBy.recordCountDesc": "Dati 9 → 0",
|
|
19319
|
+
"organization.details.lastPublishedDatasets": "",
|
|
19320
|
+
"organization.details.lastPublishedDatasets.searchAllButton": "",
|
|
19321
|
+
"organization.details.mailContact": "",
|
|
19322
|
+
"organization.header.recordCount": "{count, plural, =0{} one{} other{}}",
|
|
19167
19323
|
"pagination.nextPage": "Pagina successiva",
|
|
19168
19324
|
"pagination.page": "pagina",
|
|
19169
19325
|
"pagination.pageOf": "di",
|
|
@@ -19201,7 +19357,7 @@ var it = {
|
|
|
19201
19357
|
"record.metadata.preview": "Anteprima",
|
|
19202
19358
|
"record.metadata.producer": "Produttore dei dati",
|
|
19203
19359
|
"record.metadata.publication": "Data di pubblicazione",
|
|
19204
|
-
"record.metadata.publications": "pubblicazioni",
|
|
19360
|
+
"record.metadata.publications": "{count, plural, =0{pubblicazione} one{pubblicazione} other{pubblicazioni}}",
|
|
19205
19361
|
"record.metadata.quality": "Qualità dei metadati",
|
|
19206
19362
|
"record.metadata.quality.contact.failed": "Il contatto non è specificato",
|
|
19207
19363
|
"record.metadata.quality.contact.success": "Il contatto è specificato",
|
|
@@ -19261,6 +19417,8 @@ var it = {
|
|
|
19261
19417
|
"results.sortBy.relevancy": "Rilevanza",
|
|
19262
19418
|
"search.autocomplete.error": "Impossibile recuperare le suggerimenti",
|
|
19263
19419
|
"search.error.couldNotReachApi": "Problema di connessione all'API",
|
|
19420
|
+
"search.error.organizationHasNoDataset": "",
|
|
19421
|
+
"search.error.organizationNotFound": "",
|
|
19264
19422
|
"search.error.receivedError": "Errore ricevuto",
|
|
19265
19423
|
"search.error.recordHasnolink": "",
|
|
19266
19424
|
"search.error.recordNotFound": "Impossibile trovare questo dato",
|
|
@@ -19288,9 +19446,11 @@ var it = {
|
|
|
19288
19446
|
"search.filters.minimize": "Riduci",
|
|
19289
19447
|
"search.filters.myRecords": "Visualizza i miei dati",
|
|
19290
19448
|
"search.filters.myRecordsHelp": "Quando attivato, mostra solo i dati creati con il mio utente. I dati creati da altri utenti non sono visualizzati.",
|
|
19449
|
+
"search.filters.organization": "",
|
|
19291
19450
|
"search.filters.otherRecords": "Visualizzazione dei dati di un altro utente",
|
|
19451
|
+
"search.filters.producerOrg": "",
|
|
19292
19452
|
"search.filters.publicationYear": "Anno di pubblicazione",
|
|
19293
|
-
"search.filters.
|
|
19453
|
+
"search.filters.publisherOrg": "",
|
|
19294
19454
|
"search.filters.representationType": "Tipo di rappresentazione",
|
|
19295
19455
|
"search.filters.resourceType": "Tipo di risorsa",
|
|
19296
19456
|
"search.filters.standard": "Standard",
|
|
@@ -19321,9 +19481,10 @@ var next$1 = "";
|
|
|
19321
19481
|
var previous$1 = "";
|
|
19322
19482
|
var records$1 = "";
|
|
19323
19483
|
var nl = {
|
|
19484
|
+
"Add Layer As": "",
|
|
19324
19485
|
"button.login": "",
|
|
19325
19486
|
"catalog.figures.datasets": "datasets",
|
|
19326
|
-
"catalog.figures.
|
|
19487
|
+
"catalog.figures.organizations": "organisaties",
|
|
19327
19488
|
"chart.aggregation.average": "gemiddelde",
|
|
19328
19489
|
"chart.aggregation.count": "aantal",
|
|
19329
19490
|
"chart.aggregation.max": "max",
|
|
@@ -19339,16 +19500,22 @@ var nl = {
|
|
|
19339
19500
|
"chart.type.line": "lijndiagram",
|
|
19340
19501
|
"chart.type.lineSmooth": "glad lijndiagram",
|
|
19341
19502
|
"chart.type.pie": "cirkeldiagram",
|
|
19503
|
+
"dashboard.catalog.allRecords": "",
|
|
19504
|
+
"dashboard.catalog.calendar": "",
|
|
19505
|
+
"dashboard.catalog.contacts": "",
|
|
19506
|
+
"dashboard.catalog.discussion": "",
|
|
19507
|
+
"dashboard.catalog.thesaurus": "",
|
|
19342
19508
|
"dashboard.createRecord": "",
|
|
19509
|
+
"dashboard.labels.catalog": "Catalogus",
|
|
19343
19510
|
"dashboard.labels.mySpace": "Mijn ruimte",
|
|
19344
19511
|
"dashboard.records.all": "Catalogus",
|
|
19345
19512
|
"dashboard.records.hasDraft": "",
|
|
19346
19513
|
"dashboard.records.myDraft": "Mijn concepten",
|
|
19347
19514
|
"dashboard.records.myLibrary": "Mijn bibliotheek",
|
|
19348
|
-
"dashboard.records.myOrg": "Organisatie",
|
|
19349
19515
|
"dashboard.records.myRecords": "Mijn Records",
|
|
19350
19516
|
"dashboard.records.publishedRecords": "",
|
|
19351
19517
|
"dashboard.records.search": "Zoeken naar \"{searchText}\"",
|
|
19518
|
+
"dashboard.records.templates": "",
|
|
19352
19519
|
"dashboard.records.userDetail": "",
|
|
19353
19520
|
"dashboard.records.userEmail": "",
|
|
19354
19521
|
"dashboard.records.username": "",
|
|
@@ -19364,6 +19531,8 @@ var nl = {
|
|
|
19364
19531
|
"datafeeder.datasetValidation.submitButton": "",
|
|
19365
19532
|
"datafeeder.datasetValidation.title": "",
|
|
19366
19533
|
"datafeeder.datasetValidation.unknown": "",
|
|
19534
|
+
"datafeeder.datasetValidationCsv.explicitLineNumbers": "",
|
|
19535
|
+
"datafeeder.datasetValidationCsv.lineNumbers": "",
|
|
19367
19536
|
"datafeeder.form.abstract": "",
|
|
19368
19537
|
"datafeeder.form.datepicker": "",
|
|
19369
19538
|
"datafeeder.form.description": "",
|
|
@@ -19391,6 +19560,7 @@ var nl = {
|
|
|
19391
19560
|
"datafeeder.publishSuccess.geonetworkRecord": "",
|
|
19392
19561
|
"datafeeder.publishSuccess.illustration.title": "",
|
|
19393
19562
|
"datafeeder.publishSuccess.mapViewer": "",
|
|
19563
|
+
"datafeeder.publishSuccess.ogcFeature": "",
|
|
19394
19564
|
"datafeeder.publishSuccess.subtitle": "",
|
|
19395
19565
|
"datafeeder.publishSuccess.title": "",
|
|
19396
19566
|
"datafeeder.publishSuccess.uploadAnotherData": "",
|
|
@@ -19419,6 +19589,15 @@ var nl = {
|
|
|
19419
19589
|
"datafeeder.upload.maxFileSize": "",
|
|
19420
19590
|
"datafeeder.upload.title": "",
|
|
19421
19591
|
"datafeeder.upload.uploadButton": "",
|
|
19592
|
+
"datafeeder.validation.csv.delimiter": "",
|
|
19593
|
+
"datafeeder.validation.csv.delimiter.comma": "",
|
|
19594
|
+
"datafeeder.validation.csv.delimiter.semicolon": "",
|
|
19595
|
+
"datafeeder.validation.csv.lat.field": "",
|
|
19596
|
+
"datafeeder.validation.csv.lng.field": "",
|
|
19597
|
+
"datafeeder.validation.csv.quote.double": "",
|
|
19598
|
+
"datafeeder.validation.csv.quote.none": "",
|
|
19599
|
+
"datafeeder.validation.csv.quote.simple": "",
|
|
19600
|
+
"datafeeder.validation.csv.quoteChar": "",
|
|
19422
19601
|
"datafeeder.validation.encoding": "",
|
|
19423
19602
|
"datafeeder.validation.extent.title": "",
|
|
19424
19603
|
"datafeeder.validation.extent.title.unknown": "",
|
|
@@ -19432,7 +19611,7 @@ var nl = {
|
|
|
19432
19611
|
"datahub.header.lastRecords": "",
|
|
19433
19612
|
"datahub.header.myfavorites": "",
|
|
19434
19613
|
"datahub.header.news": "",
|
|
19435
|
-
"datahub.header.
|
|
19614
|
+
"datahub.header.organizations": "",
|
|
19436
19615
|
"datahub.header.popularRecords": "",
|
|
19437
19616
|
"datahub.header.title.html": "",
|
|
19438
19617
|
"datahub.news.contact.contactus": "",
|
|
@@ -19468,6 +19647,8 @@ var nl = {
|
|
|
19468
19647
|
"downloads.format.unknown": "",
|
|
19469
19648
|
"downloads.wfs.featuretype.not.found": "",
|
|
19470
19649
|
dropFile: dropFile$1,
|
|
19650
|
+
"editor.record.form.abstract": "",
|
|
19651
|
+
"editor.record.form.keywords": "",
|
|
19471
19652
|
"editor.record.form.license": "",
|
|
19472
19653
|
"editor.record.form.license.cc-by": "",
|
|
19473
19654
|
"editor.record.form.license.cc-by-sa": "",
|
|
@@ -19478,12 +19659,15 @@ var nl = {
|
|
|
19478
19659
|
"editor.record.form.license.odc-by": "",
|
|
19479
19660
|
"editor.record.form.license.pddl": "",
|
|
19480
19661
|
"editor.record.form.license.unknown": "",
|
|
19662
|
+
"editor.record.form.metadata.title": "",
|
|
19663
|
+
"editor.record.form.record.updated": "",
|
|
19481
19664
|
"editor.record.form.resourceUpdated": "",
|
|
19482
19665
|
"editor.record.form.temporalExtents": "",
|
|
19483
19666
|
"editor.record.form.temporalExtents.addDate": "",
|
|
19484
19667
|
"editor.record.form.temporalExtents.addRange": "",
|
|
19485
19668
|
"editor.record.form.temporalExtents.date": "",
|
|
19486
19669
|
"editor.record.form.temporalExtents.range": "",
|
|
19670
|
+
"editor.record.form.unique.identifier": "",
|
|
19487
19671
|
"editor.record.form.updateFrequency": "",
|
|
19488
19672
|
"editor.record.form.updateFrequency.planned": "",
|
|
19489
19673
|
"editor.record.loadError.body": "",
|
|
@@ -19567,6 +19751,10 @@ var nl = {
|
|
|
19567
19751
|
"organisations.sortBy.nameDesc": "",
|
|
19568
19752
|
"organisations.sortBy.recordCountAsc": "",
|
|
19569
19753
|
"organisations.sortBy.recordCountDesc": "",
|
|
19754
|
+
"organization.details.lastPublishedDatasets": "",
|
|
19755
|
+
"organization.details.lastPublishedDatasets.searchAllButton": "",
|
|
19756
|
+
"organization.details.mailContact": "",
|
|
19757
|
+
"organization.header.recordCount": "{count, plural, =0{} one{} other{}}",
|
|
19570
19758
|
"pagination.nextPage": "",
|
|
19571
19759
|
"pagination.page": "",
|
|
19572
19760
|
"pagination.pageOf": "",
|
|
@@ -19604,7 +19792,7 @@ var nl = {
|
|
|
19604
19792
|
"record.metadata.preview": "",
|
|
19605
19793
|
"record.metadata.producer": "",
|
|
19606
19794
|
"record.metadata.publication": "",
|
|
19607
|
-
"record.metadata.publications": "",
|
|
19795
|
+
"record.metadata.publications": "{count, plural, =0{} one{} other{}}",
|
|
19608
19796
|
"record.metadata.quality": "",
|
|
19609
19797
|
"record.metadata.quality.contact.failed": "",
|
|
19610
19798
|
"record.metadata.quality.contact.success": "",
|
|
@@ -19664,6 +19852,8 @@ var nl = {
|
|
|
19664
19852
|
"results.sortBy.relevancy": "",
|
|
19665
19853
|
"search.autocomplete.error": "",
|
|
19666
19854
|
"search.error.couldNotReachApi": "",
|
|
19855
|
+
"search.error.organizationHasNoDataset": "",
|
|
19856
|
+
"search.error.organizationNotFound": "",
|
|
19667
19857
|
"search.error.receivedError": "",
|
|
19668
19858
|
"search.error.recordHasnolink": "",
|
|
19669
19859
|
"search.error.recordNotFound": "",
|
|
@@ -19691,9 +19881,11 @@ var nl = {
|
|
|
19691
19881
|
"search.filters.minimize": "",
|
|
19692
19882
|
"search.filters.myRecords": "",
|
|
19693
19883
|
"search.filters.myRecordsHelp": "",
|
|
19884
|
+
"search.filters.organization": "",
|
|
19694
19885
|
"search.filters.otherRecords": "",
|
|
19886
|
+
"search.filters.producerOrg": "",
|
|
19695
19887
|
"search.filters.publicationYear": "",
|
|
19696
|
-
"search.filters.
|
|
19888
|
+
"search.filters.publisherOrg": "",
|
|
19697
19889
|
"search.filters.representationType": "",
|
|
19698
19890
|
"search.filters.resourceType": "",
|
|
19699
19891
|
"search.filters.standard": "",
|
|
@@ -19724,9 +19916,10 @@ var next = "";
|
|
|
19724
19916
|
var previous = "";
|
|
19725
19917
|
var records = "";
|
|
19726
19918
|
var pt = {
|
|
19919
|
+
"Add Layer As": "",
|
|
19727
19920
|
"button.login": "",
|
|
19728
19921
|
"catalog.figures.datasets": "conjuntos de dados",
|
|
19729
|
-
"catalog.figures.
|
|
19922
|
+
"catalog.figures.organizations": "organizações",
|
|
19730
19923
|
"chart.aggregation.average": "média",
|
|
19731
19924
|
"chart.aggregation.count": "contagem",
|
|
19732
19925
|
"chart.aggregation.max": "máximo",
|
|
@@ -19742,16 +19935,22 @@ var pt = {
|
|
|
19742
19935
|
"chart.type.line": "gráfico de linha",
|
|
19743
19936
|
"chart.type.lineSmooth": "gráfico de linha suave",
|
|
19744
19937
|
"chart.type.pie": "gráfico de pizza",
|
|
19938
|
+
"dashboard.catalog.allRecords": "",
|
|
19939
|
+
"dashboard.catalog.calendar": "",
|
|
19940
|
+
"dashboard.catalog.contacts": "",
|
|
19941
|
+
"dashboard.catalog.discussion": "",
|
|
19942
|
+
"dashboard.catalog.thesaurus": "",
|
|
19745
19943
|
"dashboard.createRecord": "",
|
|
19944
|
+
"dashboard.labels.catalog": "Catálogo",
|
|
19746
19945
|
"dashboard.labels.mySpace": "Meu espaço",
|
|
19747
19946
|
"dashboard.records.all": "Catálogo",
|
|
19748
19947
|
"dashboard.records.hasDraft": "",
|
|
19749
19948
|
"dashboard.records.myDraft": "Meus rascunhos",
|
|
19750
19949
|
"dashboard.records.myLibrary": "Minha biblioteca",
|
|
19751
|
-
"dashboard.records.myOrg": "Organização",
|
|
19752
19950
|
"dashboard.records.myRecords": "Meus Registros",
|
|
19753
19951
|
"dashboard.records.publishedRecords": "",
|
|
19754
19952
|
"dashboard.records.search": "Buscar por \"{searchText}\"",
|
|
19953
|
+
"dashboard.records.templates": "",
|
|
19755
19954
|
"dashboard.records.userDetail": "",
|
|
19756
19955
|
"dashboard.records.userEmail": "",
|
|
19757
19956
|
"dashboard.records.username": "",
|
|
@@ -19767,6 +19966,8 @@ var pt = {
|
|
|
19767
19966
|
"datafeeder.datasetValidation.submitButton": "",
|
|
19768
19967
|
"datafeeder.datasetValidation.title": "",
|
|
19769
19968
|
"datafeeder.datasetValidation.unknown": "",
|
|
19969
|
+
"datafeeder.datasetValidationCsv.explicitLineNumbers": "",
|
|
19970
|
+
"datafeeder.datasetValidationCsv.lineNumbers": "",
|
|
19770
19971
|
"datafeeder.form.abstract": "",
|
|
19771
19972
|
"datafeeder.form.datepicker": "",
|
|
19772
19973
|
"datafeeder.form.description": "",
|
|
@@ -19794,6 +19995,7 @@ var pt = {
|
|
|
19794
19995
|
"datafeeder.publishSuccess.geonetworkRecord": "",
|
|
19795
19996
|
"datafeeder.publishSuccess.illustration.title": "",
|
|
19796
19997
|
"datafeeder.publishSuccess.mapViewer": "",
|
|
19998
|
+
"datafeeder.publishSuccess.ogcFeature": "",
|
|
19797
19999
|
"datafeeder.publishSuccess.subtitle": "",
|
|
19798
20000
|
"datafeeder.publishSuccess.title": "",
|
|
19799
20001
|
"datafeeder.publishSuccess.uploadAnotherData": "",
|
|
@@ -19822,6 +20024,15 @@ var pt = {
|
|
|
19822
20024
|
"datafeeder.upload.maxFileSize": "",
|
|
19823
20025
|
"datafeeder.upload.title": "",
|
|
19824
20026
|
"datafeeder.upload.uploadButton": "",
|
|
20027
|
+
"datafeeder.validation.csv.delimiter": "",
|
|
20028
|
+
"datafeeder.validation.csv.delimiter.comma": "",
|
|
20029
|
+
"datafeeder.validation.csv.delimiter.semicolon": "",
|
|
20030
|
+
"datafeeder.validation.csv.lat.field": "",
|
|
20031
|
+
"datafeeder.validation.csv.lng.field": "",
|
|
20032
|
+
"datafeeder.validation.csv.quote.double": "",
|
|
20033
|
+
"datafeeder.validation.csv.quote.none": "",
|
|
20034
|
+
"datafeeder.validation.csv.quote.simple": "",
|
|
20035
|
+
"datafeeder.validation.csv.quoteChar": "",
|
|
19825
20036
|
"datafeeder.validation.encoding": "",
|
|
19826
20037
|
"datafeeder.validation.extent.title": "",
|
|
19827
20038
|
"datafeeder.validation.extent.title.unknown": "",
|
|
@@ -19835,7 +20046,7 @@ var pt = {
|
|
|
19835
20046
|
"datahub.header.lastRecords": "",
|
|
19836
20047
|
"datahub.header.myfavorites": "",
|
|
19837
20048
|
"datahub.header.news": "",
|
|
19838
|
-
"datahub.header.
|
|
20049
|
+
"datahub.header.organizations": "",
|
|
19839
20050
|
"datahub.header.popularRecords": "",
|
|
19840
20051
|
"datahub.header.title.html": "",
|
|
19841
20052
|
"datahub.news.contact.contactus": "",
|
|
@@ -19871,6 +20082,8 @@ var pt = {
|
|
|
19871
20082
|
"downloads.format.unknown": "",
|
|
19872
20083
|
"downloads.wfs.featuretype.not.found": "",
|
|
19873
20084
|
dropFile: dropFile,
|
|
20085
|
+
"editor.record.form.abstract": "",
|
|
20086
|
+
"editor.record.form.keywords": "",
|
|
19874
20087
|
"editor.record.form.license": "",
|
|
19875
20088
|
"editor.record.form.license.cc-by": "",
|
|
19876
20089
|
"editor.record.form.license.cc-by-sa": "",
|
|
@@ -19881,12 +20094,15 @@ var pt = {
|
|
|
19881
20094
|
"editor.record.form.license.odc-by": "",
|
|
19882
20095
|
"editor.record.form.license.pddl": "",
|
|
19883
20096
|
"editor.record.form.license.unknown": "",
|
|
20097
|
+
"editor.record.form.metadata.title": "",
|
|
20098
|
+
"editor.record.form.record.updated": "",
|
|
19884
20099
|
"editor.record.form.resourceUpdated": "",
|
|
19885
20100
|
"editor.record.form.temporalExtents": "",
|
|
19886
20101
|
"editor.record.form.temporalExtents.addDate": "",
|
|
19887
20102
|
"editor.record.form.temporalExtents.addRange": "",
|
|
19888
20103
|
"editor.record.form.temporalExtents.date": "",
|
|
19889
20104
|
"editor.record.form.temporalExtents.range": "",
|
|
20105
|
+
"editor.record.form.unique.identifier": "",
|
|
19890
20106
|
"editor.record.form.updateFrequency": "",
|
|
19891
20107
|
"editor.record.form.updateFrequency.planned": "",
|
|
19892
20108
|
"editor.record.loadError.body": "",
|
|
@@ -19970,6 +20186,10 @@ var pt = {
|
|
|
19970
20186
|
"organisations.sortBy.nameDesc": "",
|
|
19971
20187
|
"organisations.sortBy.recordCountAsc": "",
|
|
19972
20188
|
"organisations.sortBy.recordCountDesc": "",
|
|
20189
|
+
"organization.details.lastPublishedDatasets": "",
|
|
20190
|
+
"organization.details.lastPublishedDatasets.searchAllButton": "",
|
|
20191
|
+
"organization.details.mailContact": "",
|
|
20192
|
+
"organization.header.recordCount": "{count, plural, =0{} one{} other{}}",
|
|
19973
20193
|
"pagination.nextPage": "",
|
|
19974
20194
|
"pagination.page": "",
|
|
19975
20195
|
"pagination.pageOf": "",
|
|
@@ -20007,7 +20227,7 @@ var pt = {
|
|
|
20007
20227
|
"record.metadata.preview": "",
|
|
20008
20228
|
"record.metadata.producer": "",
|
|
20009
20229
|
"record.metadata.publication": "",
|
|
20010
|
-
"record.metadata.publications": "",
|
|
20230
|
+
"record.metadata.publications": "{count, plural, =0{} one{} other{}}",
|
|
20011
20231
|
"record.metadata.quality": "",
|
|
20012
20232
|
"record.metadata.quality.contact.failed": "",
|
|
20013
20233
|
"record.metadata.quality.contact.success": "",
|
|
@@ -20067,6 +20287,8 @@ var pt = {
|
|
|
20067
20287
|
"results.sortBy.relevancy": "",
|
|
20068
20288
|
"search.autocomplete.error": "",
|
|
20069
20289
|
"search.error.couldNotReachApi": "",
|
|
20290
|
+
"search.error.organizationHasNoDataset": "",
|
|
20291
|
+
"search.error.organizationNotFound": "",
|
|
20070
20292
|
"search.error.receivedError": "",
|
|
20071
20293
|
"search.error.recordHasnolink": "",
|
|
20072
20294
|
"search.error.recordNotFound": "",
|
|
@@ -20094,9 +20316,11 @@ var pt = {
|
|
|
20094
20316
|
"search.filters.minimize": "",
|
|
20095
20317
|
"search.filters.myRecords": "",
|
|
20096
20318
|
"search.filters.myRecordsHelp": "",
|
|
20319
|
+
"search.filters.organization": "",
|
|
20097
20320
|
"search.filters.otherRecords": "",
|
|
20321
|
+
"search.filters.producerOrg": "",
|
|
20098
20322
|
"search.filters.publicationYear": "",
|
|
20099
|
-
"search.filters.
|
|
20323
|
+
"search.filters.publisherOrg": "",
|
|
20100
20324
|
"search.filters.representationType": "",
|
|
20101
20325
|
"search.filters.resourceType": "",
|
|
20102
20326
|
"search.filters.standard": "",
|
|
@@ -21113,10 +21337,10 @@ class Gn4Repository {
|
|
|
21113
21337
|
saveRecord(record, referenceRecordSource) {
|
|
21114
21338
|
return this.serializeRecordToXml(record, referenceRecordSource).pipe(switchMap((recordXml) => this.gn4RecordsApi
|
|
21115
21339
|
.insert('METADATA', undefined, undefined, undefined, true, undefined, 'OVERWRITE', undefined, undefined, undefined, '_none_', undefined, undefined, undefined, recordXml)
|
|
21116
|
-
.pipe(map$1(() =>
|
|
21117
|
-
|
|
21118
|
-
|
|
21119
|
-
}));
|
|
21340
|
+
.pipe(map$1((response) => {
|
|
21341
|
+
const metadataId = Object.keys(response.metadataInfos)[0];
|
|
21342
|
+
return response.metadataInfos[metadataId][0].uuid;
|
|
21343
|
+
}))));
|
|
21120
21344
|
}
|
|
21121
21345
|
saveRecordAsDraft(record, referenceRecordSource) {
|
|
21122
21346
|
return this.serializeRecordToXml(record, referenceRecordSource).pipe(tap$1((recordXml) => window.localStorage.setItem(this.getLocalStorageKeyForRecord(record.uniqueIdentifier), recordXml)));
|
|
@@ -21127,6 +21351,15 @@ class Gn4Repository {
|
|
|
21127
21351
|
recordHasDraft(uniqueIdentifier) {
|
|
21128
21352
|
return (window.localStorage.getItem(this.getLocalStorageKeyForRecord(uniqueIdentifier)) !== null);
|
|
21129
21353
|
}
|
|
21354
|
+
// generated by copilot
|
|
21355
|
+
getAllDrafts() {
|
|
21356
|
+
const items = { ...window.localStorage };
|
|
21357
|
+
const drafts = Object.keys(items)
|
|
21358
|
+
.filter((key) => key.startsWith('geonetwork-ui-draft-'))
|
|
21359
|
+
.map((key) => window.localStorage.getItem(key))
|
|
21360
|
+
.filter((draft) => draft !== null);
|
|
21361
|
+
return from(Promise.all(drafts.map((draft) => findConverterForDocument(draft).readRecord(draft))));
|
|
21362
|
+
}
|
|
21130
21363
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: Gn4Repository, deps: [{ token: SearchApiService }, { token: ElasticsearchService }, { token: Gn4Converter }, { token: RecordsApiService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
21131
21364
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: Gn4Repository }); }
|
|
21132
21365
|
}
|
|
@@ -21253,9 +21486,11 @@ class OrganizationsFromMetadataService {
|
|
|
21253
21486
|
return fullOrg;
|
|
21254
21487
|
return {
|
|
21255
21488
|
...fullOrg,
|
|
21489
|
+
email: emails[0],
|
|
21256
21490
|
...(group.description && { description: group.description }),
|
|
21257
21491
|
...(group.logo && { logoUrl: getAsUrl(`${IMAGE_URL$1}${group.logo}`) }),
|
|
21258
21492
|
...(group.website && { website: getAsUrl(group.website) }),
|
|
21493
|
+
...(group.email && { email: group.email }),
|
|
21259
21494
|
};
|
|
21260
21495
|
});
|
|
21261
21496
|
}
|
|
@@ -21356,6 +21591,7 @@ class OrganizationsFromGroupsService {
|
|
|
21356
21591
|
return {
|
|
21357
21592
|
name: group.label[lang3],
|
|
21358
21593
|
...(group.description && { description: group.description }),
|
|
21594
|
+
...(group.email && { email: group.email }),
|
|
21359
21595
|
...(group.logo && {
|
|
21360
21596
|
logoUrl: getAsUrl(`${IMAGE_URL}${group.logo}`),
|
|
21361
21597
|
}),
|
|
@@ -21620,11 +21856,11 @@ class Gn4PlatformMapper {
|
|
|
21620
21856
|
userFromApi(apiUser) {
|
|
21621
21857
|
if (!apiUser)
|
|
21622
21858
|
return null;
|
|
21623
|
-
const { enabled, emailAddresses,
|
|
21859
|
+
const { enabled, emailAddresses, organization, kind, lastLoginDate, accountNonExpired, accountNonLocked, id, credentialsNonExpired, ...user } = apiUser;
|
|
21624
21860
|
return { ...apiUser, id: id.toString() };
|
|
21625
21861
|
}
|
|
21626
|
-
|
|
21627
|
-
return
|
|
21862
|
+
keywordsFromApi(keywords, thesaurus, lang3) {
|
|
21863
|
+
return keywords.map((keyword) => {
|
|
21628
21864
|
let key = keyword.uri;
|
|
21629
21865
|
// sometines GN can prefix an URI with an "all thesaurus" URI; only keep the last one
|
|
21630
21866
|
if (key.indexOf('@@@') > -1) {
|
|
@@ -21634,10 +21870,18 @@ class Gn4PlatformMapper {
|
|
|
21634
21870
|
const description = lang3 && lang3 in keyword.definitions
|
|
21635
21871
|
? keyword.definitions[lang3]
|
|
21636
21872
|
: keyword.definition;
|
|
21873
|
+
const matchedThesaurus = thesaurus.find((thes) => keyword.thesaurusKey === thes.key);
|
|
21637
21874
|
return {
|
|
21638
21875
|
key,
|
|
21639
21876
|
label,
|
|
21640
21877
|
description,
|
|
21878
|
+
type: matchedThesaurus?.dname,
|
|
21879
|
+
thesaurus: {
|
|
21880
|
+
id: matchedThesaurus?.key,
|
|
21881
|
+
name: matchedThesaurus?.title,
|
|
21882
|
+
url: new URL(matchedThesaurus?.url),
|
|
21883
|
+
type: matchedThesaurus?.dname,
|
|
21884
|
+
},
|
|
21641
21885
|
};
|
|
21642
21886
|
});
|
|
21643
21887
|
}
|
|
@@ -21683,7 +21927,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
21683
21927
|
|
|
21684
21928
|
const minApiVersion = '4.2.2';
|
|
21685
21929
|
class Gn4PlatformService {
|
|
21686
|
-
constructor(siteApiService, meApi, usersApi, mapper, toolsApiService, registriesApiService, langService, userfeedbackApiService) {
|
|
21930
|
+
constructor(siteApiService, meApi, usersApi, mapper, toolsApiService, registriesApiService, langService, userfeedbackApiService, httpClient) {
|
|
21687
21931
|
this.siteApiService = siteApiService;
|
|
21688
21932
|
this.meApi = meApi;
|
|
21689
21933
|
this.usersApi = usersApi;
|
|
@@ -21692,6 +21936,7 @@ class Gn4PlatformService {
|
|
|
21692
21936
|
this.registriesApiService = registriesApiService;
|
|
21693
21937
|
this.langService = langService;
|
|
21694
21938
|
this.userfeedbackApiService = userfeedbackApiService;
|
|
21939
|
+
this.httpClient = httpClient;
|
|
21695
21940
|
this.type = 'GeoNetwork';
|
|
21696
21941
|
this.keyTranslations$ = this.toolsApiService
|
|
21697
21942
|
.getTranslationsPackage1('gnui')
|
|
@@ -21709,7 +21954,12 @@ class Gn4PlatformService {
|
|
|
21709
21954
|
* A map of already loaded thesauri (groups of keywords); the key is a URI
|
|
21710
21955
|
* @private
|
|
21711
21956
|
*/
|
|
21712
|
-
this.
|
|
21957
|
+
this.keywordsByThesauri = {};
|
|
21958
|
+
this.allThesaurus$ = this.httpClient
|
|
21959
|
+
.get(`${this.registriesApiService.configuration.basePath}/thesaurus?_content_type=json`)
|
|
21960
|
+
.pipe(map$1((thesaurus) => {
|
|
21961
|
+
return thesaurus[0];
|
|
21962
|
+
}), shareReplay(1));
|
|
21713
21963
|
this.me$ = this.meApi.getMe().pipe(switchMap((apiUser) => this.mapper.userFromMeApi(apiUser)), shareReplay({ bufferSize: 1, refCount: true }));
|
|
21714
21964
|
this.isUserAnonymous$ = this.me$.pipe(map$1((user) => !user || !('id' in user)));
|
|
21715
21965
|
this.users$ = this.usersApi.getUsers().pipe(map$1((users) => users.map((user) => this.mapper.userFromApi(user))), shareReplay());
|
|
@@ -21741,7 +21991,7 @@ class Gn4PlatformService {
|
|
|
21741
21991
|
// the thesaurus URI is inferred by removing a part of the keyword URI
|
|
21742
21992
|
// this is not exact science but it's OK, we'll still end up loading a bunch of keywords at once anyway
|
|
21743
21993
|
const thesaurusUri = key.replace(/\/([^/]+)$/, '/');
|
|
21744
|
-
return this.
|
|
21994
|
+
return this.getKeywordsByUri(thesaurusUri).pipe(map$1((thesaurus) => {
|
|
21745
21995
|
for (const item of thesaurus) {
|
|
21746
21996
|
if (item.key === key)
|
|
21747
21997
|
return item.label;
|
|
@@ -21751,14 +22001,30 @@ class Gn4PlatformService {
|
|
|
21751
22001
|
}
|
|
21752
22002
|
return this.keyTranslations$.pipe(map$1((translations) => translations[key]));
|
|
21753
22003
|
}
|
|
21754
|
-
|
|
21755
|
-
|
|
21756
|
-
|
|
22004
|
+
searchKeywords(query, keywordTypes) {
|
|
22005
|
+
const keywords$ = this.allThesaurus$.pipe(switchMap((thesaurus) => {
|
|
22006
|
+
const selectedThesauri = [];
|
|
22007
|
+
keywordTypes.map((keywordType) => {
|
|
22008
|
+
selectedThesauri.push(...thesaurus.filter((thes) => thes.dname === keywordType));
|
|
22009
|
+
});
|
|
22010
|
+
return this.registriesApiService.searchKeywords(query, this.langService.iso3, 10, 0, null, selectedThesauri.map((thes) => thes.key), null, `*${query}*`);
|
|
22011
|
+
}));
|
|
22012
|
+
return combineLatest([keywords$, this.allThesaurus$]).pipe(map$1(([keywords, thesaurus]) => {
|
|
22013
|
+
return this.mapper.keywordsFromApi(keywords, thesaurus, this.langService.iso3);
|
|
22014
|
+
}));
|
|
22015
|
+
}
|
|
22016
|
+
getKeywordsByUri(uri) {
|
|
22017
|
+
if (this.keywordsByThesauri[uri]) {
|
|
22018
|
+
return this.keywordsByThesauri[uri];
|
|
21757
22019
|
}
|
|
21758
|
-
|
|
21759
|
-
|
|
21760
|
-
|
|
21761
|
-
|
|
22020
|
+
const keywords$ = this.registriesApiService.searchKeywords(null, this.langService.iso3, 1000, 0, null, null, null, `${uri}*`);
|
|
22021
|
+
this.keywordsByThesauri[uri] = combineLatest([
|
|
22022
|
+
keywords$,
|
|
22023
|
+
this.allThesaurus$,
|
|
22024
|
+
]).pipe(map$1(([keywords, thesaurus]) => {
|
|
22025
|
+
return this.mapper.keywordsFromApi(keywords, thesaurus, this.langService.iso3);
|
|
22026
|
+
}), shareReplay(1));
|
|
22027
|
+
return this.keywordsByThesauri[uri];
|
|
21762
22028
|
}
|
|
21763
22029
|
getUserFeedbacks(uuid) {
|
|
21764
22030
|
return this.userfeedbackApiService.getUserComments(uuid).pipe(map$1((userFeedbacks) => userFeedbacks.map(this.mapper.userFeedbacksFromApi)), catchError((error) => {
|
|
@@ -21773,12 +22039,12 @@ class Gn4PlatformService {
|
|
|
21773
22039
|
return of(undefined);
|
|
21774
22040
|
}));
|
|
21775
22041
|
}
|
|
21776
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: Gn4PlatformService, deps: [{ token: SiteApiService }, { token: MeApiService }, { token: UsersApiService }, { token: Gn4PlatformMapper }, { token: ToolsApiService }, { token: RegistriesApiService }, { token: LangService }, { token: UserfeedbackApiService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
22042
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: Gn4PlatformService, deps: [{ token: SiteApiService }, { token: MeApiService }, { token: UsersApiService }, { token: Gn4PlatformMapper }, { token: ToolsApiService }, { token: RegistriesApiService }, { token: LangService }, { token: UserfeedbackApiService }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
21777
22043
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: Gn4PlatformService }); }
|
|
21778
22044
|
}
|
|
21779
22045
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: Gn4PlatformService, decorators: [{
|
|
21780
22046
|
type: Injectable
|
|
21781
|
-
}], ctorParameters: function () { return [{ type: SiteApiService }, { type: MeApiService }, { type: UsersApiService }, { type: Gn4PlatformMapper }, { type: ToolsApiService }, { type: RegistriesApiService }, { type: LangService }, { type: UserfeedbackApiService }]; } });
|
|
22047
|
+
}], ctorParameters: function () { return [{ type: SiteApiService }, { type: MeApiService }, { type: UsersApiService }, { type: Gn4PlatformMapper }, { type: ToolsApiService }, { type: RegistriesApiService }, { type: LangService }, { type: UserfeedbackApiService }, { type: i1.HttpClient }]; } });
|
|
21782
22048
|
|
|
21783
22049
|
function provideGn4() {
|
|
21784
22050
|
return [
|
|
@@ -24244,6 +24510,185 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
24244
24510
|
type: Input
|
|
24245
24511
|
}] } });
|
|
24246
24512
|
|
|
24513
|
+
class ColorScaleComponent {
|
|
24514
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColorScaleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
24515
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ColorScaleComponent, selector: "gn-ui-color-scale", ngImport: i0, template: "<div class=\"flex flex-row items-center\">\n <div class=\"text-xs text-gray-700 font-bold m-2 w-32 text-right\">primary</div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-primary-black\"\n title=\"primary-black\"\n ></div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-primary-darkest\"\n title=\"primary-darkest\"\n ></div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-primary-darker\"\n title=\"primary-darker\"\n ></div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-primary border-2 border-primary-darkest\"\n title=\"primary\"\n ></div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-primary-lighter\"\n title=\"primary-lighter\"\n ></div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-primary-lightest\"\n title=\"primary-lightest\"\n ></div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-primary-white\"\n title=\"primary-white\"\n ></div>\n</div>\n<div class=\"flex flex-row\">\n <div class=\"text-xs text-gray-700 font-bold m-2 w-32 text-right\">\n secondary\n </div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-secondary-black\"\n title=\"secondary-black\"\n ></div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-secondary-darkest\"\n title=\"secondary-darkest\"\n ></div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-secondary-darker\"\n title=\"secondary-darker\"\n ></div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-secondary border-2 border-secondary-darkest\"\n title=\"secondary\"\n ></div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-secondary-lighter\"\n title=\"secondary-lighter\"\n ></div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-secondary-lightest\"\n title=\"secondary-lightest\"\n ></div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-secondary-white\"\n title=\"secondary-white\"\n ></div>\n</div>\n<div class=\"flex flex-row\">\n <div class=\"text-xs text-gray-700 font-bold m-2 w-32 text-right\">main</div>\n <div class=\"shadow-md rounded w-6 h-6 m-2 bg-main\" title=\"main\"></div>\n <div class=\"shadow-md rounded w-6 h-6 m-2 bg-gray-900\" title=\"gray-900\"></div>\n <div class=\"shadow-md rounded w-6 h-6 m-2 bg-gray-800\" title=\"gray-800\"></div>\n <div class=\"shadow-md rounded w-6 h-6 m-2 bg-gray-700\" title=\"gray-700\"></div>\n <div class=\"shadow-md rounded w-6 h-6 m-2 bg-gray-600\" title=\"gray-600\"></div>\n <div class=\"shadow-md rounded w-6 h-6 m-2 bg-gray-500\" title=\"gray-500\"></div>\n <div class=\"shadow-md rounded w-6 h-6 m-2 bg-gray-400\" title=\"gray-400\"></div>\n <div class=\"shadow-md rounded w-6 h-6 m-2 bg-gray-300\" title=\"gray-300\"></div>\n <div class=\"shadow-md rounded w-6 h-6 m-2 bg-gray-200\" title=\"gray-200\"></div>\n <div class=\"shadow-md rounded w-6 h-6 m-2 bg-gray-100\" title=\"gray-100\"></div>\n <div class=\"shadow-md rounded w-6 h-6 m-2 bg-gray-50\" title=\"gray-50\"></div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-background\"\n title=\"background\"\n ></div>\n <div class=\"text-xs text-gray-700 font-bold m-2 w-32\">background</div>\n</div>\n", styles: [""] }); }
|
|
24516
|
+
}
|
|
24517
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColorScaleComponent, decorators: [{
|
|
24518
|
+
type: Component,
|
|
24519
|
+
args: [{ selector: 'gn-ui-color-scale', template: "<div class=\"flex flex-row items-center\">\n <div class=\"text-xs text-gray-700 font-bold m-2 w-32 text-right\">primary</div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-primary-black\"\n title=\"primary-black\"\n ></div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-primary-darkest\"\n title=\"primary-darkest\"\n ></div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-primary-darker\"\n title=\"primary-darker\"\n ></div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-primary border-2 border-primary-darkest\"\n title=\"primary\"\n ></div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-primary-lighter\"\n title=\"primary-lighter\"\n ></div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-primary-lightest\"\n title=\"primary-lightest\"\n ></div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-primary-white\"\n title=\"primary-white\"\n ></div>\n</div>\n<div class=\"flex flex-row\">\n <div class=\"text-xs text-gray-700 font-bold m-2 w-32 text-right\">\n secondary\n </div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-secondary-black\"\n title=\"secondary-black\"\n ></div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-secondary-darkest\"\n title=\"secondary-darkest\"\n ></div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-secondary-darker\"\n title=\"secondary-darker\"\n ></div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-secondary border-2 border-secondary-darkest\"\n title=\"secondary\"\n ></div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-secondary-lighter\"\n title=\"secondary-lighter\"\n ></div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-secondary-lightest\"\n title=\"secondary-lightest\"\n ></div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-secondary-white\"\n title=\"secondary-white\"\n ></div>\n</div>\n<div class=\"flex flex-row\">\n <div class=\"text-xs text-gray-700 font-bold m-2 w-32 text-right\">main</div>\n <div class=\"shadow-md rounded w-6 h-6 m-2 bg-main\" title=\"main\"></div>\n <div class=\"shadow-md rounded w-6 h-6 m-2 bg-gray-900\" title=\"gray-900\"></div>\n <div class=\"shadow-md rounded w-6 h-6 m-2 bg-gray-800\" title=\"gray-800\"></div>\n <div class=\"shadow-md rounded w-6 h-6 m-2 bg-gray-700\" title=\"gray-700\"></div>\n <div class=\"shadow-md rounded w-6 h-6 m-2 bg-gray-600\" title=\"gray-600\"></div>\n <div class=\"shadow-md rounded w-6 h-6 m-2 bg-gray-500\" title=\"gray-500\"></div>\n <div class=\"shadow-md rounded w-6 h-6 m-2 bg-gray-400\" title=\"gray-400\"></div>\n <div class=\"shadow-md rounded w-6 h-6 m-2 bg-gray-300\" title=\"gray-300\"></div>\n <div class=\"shadow-md rounded w-6 h-6 m-2 bg-gray-200\" title=\"gray-200\"></div>\n <div class=\"shadow-md rounded w-6 h-6 m-2 bg-gray-100\" title=\"gray-100\"></div>\n <div class=\"shadow-md rounded w-6 h-6 m-2 bg-gray-50\" title=\"gray-50\"></div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-background\"\n title=\"background\"\n ></div>\n <div class=\"text-xs text-gray-700 font-bold m-2 w-32\">background</div>\n</div>\n" }]
|
|
24520
|
+
}] });
|
|
24521
|
+
|
|
24522
|
+
class ProgressBarComponent {
|
|
24523
|
+
constructor() {
|
|
24524
|
+
this.value = 0;
|
|
24525
|
+
this.type = 'default';
|
|
24526
|
+
}
|
|
24527
|
+
get progress() {
|
|
24528
|
+
return this.value > 0 ? (this.value < 100 ? this.value : 100) : 0;
|
|
24529
|
+
}
|
|
24530
|
+
get color() {
|
|
24531
|
+
switch (this.type) {
|
|
24532
|
+
case 'default':
|
|
24533
|
+
return {
|
|
24534
|
+
outerBar: 'bg-gray-200',
|
|
24535
|
+
innerBar: 'bg-gray-100',
|
|
24536
|
+
text: 'text-gray-900',
|
|
24537
|
+
};
|
|
24538
|
+
case 'primary':
|
|
24539
|
+
return {
|
|
24540
|
+
outerBar: 'bg-primary',
|
|
24541
|
+
innerBar: 'bg-primary-lighter',
|
|
24542
|
+
text: 'text-white',
|
|
24543
|
+
};
|
|
24544
|
+
case 'secondary':
|
|
24545
|
+
return {
|
|
24546
|
+
outerBar: 'bg-secondary',
|
|
24547
|
+
innerBar: 'bg-secondary-lighter',
|
|
24548
|
+
text: 'text-white',
|
|
24549
|
+
};
|
|
24550
|
+
}
|
|
24551
|
+
}
|
|
24552
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ProgressBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
24553
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ProgressBarComponent, selector: "gn-ui-progress-bar", inputs: { value: "value", type: "type" }, ngImport: i0, template: "<div class=\"flex h-full {{ color.outerBar }} rounded-t-lg rounded-b-lg\">\n <div\n [style.width.%]=\"progress\"\n class=\"flex {{\n color.innerBar\n }} my-1 mx-1 transition-width duration-500 ease-in-out rounded-t-md rounded-b-md shadow-xl\"\n >\n <div class=\"flex items-center pl-2 py-1 {{ color.text }} font-bold text-4\">\n {{ progress }}%\n </div>\n </div>\n</div>\n", styles: [".font-bold{font-weight:var(--progress-bar-font-weight, \"bold\")}\n"] }); }
|
|
24554
|
+
}
|
|
24555
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ProgressBarComponent, decorators: [{
|
|
24556
|
+
type: Component,
|
|
24557
|
+
args: [{ selector: 'gn-ui-progress-bar', template: "<div class=\"flex h-full {{ color.outerBar }} rounded-t-lg rounded-b-lg\">\n <div\n [style.width.%]=\"progress\"\n class=\"flex {{\n color.innerBar\n }} my-1 mx-1 transition-width duration-500 ease-in-out rounded-t-md rounded-b-md shadow-xl\"\n >\n <div class=\"flex items-center pl-2 py-1 {{ color.text }} font-bold text-4\">\n {{ progress }}%\n </div>\n </div>\n</div>\n", styles: [".font-bold{font-weight:var(--progress-bar-font-weight, \"bold\")}\n"] }]
|
|
24558
|
+
}], propDecorators: { value: [{
|
|
24559
|
+
type: Input
|
|
24560
|
+
}], type: [{
|
|
24561
|
+
type: Input
|
|
24562
|
+
}] } });
|
|
24563
|
+
|
|
24564
|
+
class StepBarComponent {
|
|
24565
|
+
constructor(cdr) {
|
|
24566
|
+
this.cdr = cdr;
|
|
24567
|
+
this.currentStep = 1;
|
|
24568
|
+
this.type = 'default';
|
|
24569
|
+
}
|
|
24570
|
+
get stepCounter() {
|
|
24571
|
+
return new Array(this.steps);
|
|
24572
|
+
}
|
|
24573
|
+
get color() {
|
|
24574
|
+
switch (this.type) {
|
|
24575
|
+
case 'default':
|
|
24576
|
+
return {
|
|
24577
|
+
outerBar: 'bg-gray-200',
|
|
24578
|
+
innerBar: 'bg-gray-100',
|
|
24579
|
+
};
|
|
24580
|
+
case 'primary':
|
|
24581
|
+
return {
|
|
24582
|
+
outerBar: 'bg-primary',
|
|
24583
|
+
innerBar: 'bg-primary-lighter',
|
|
24584
|
+
};
|
|
24585
|
+
case 'secondary':
|
|
24586
|
+
return {
|
|
24587
|
+
outerBar: 'bg-secondary',
|
|
24588
|
+
innerBar: 'bg-secondary-lighter',
|
|
24589
|
+
};
|
|
24590
|
+
}
|
|
24591
|
+
}
|
|
24592
|
+
getCircleColor(index) {
|
|
24593
|
+
return index === this.currentStep
|
|
24594
|
+
? 'bg-black'
|
|
24595
|
+
: index < this.currentStep
|
|
24596
|
+
? 'bg-white'
|
|
24597
|
+
: this.color.innerBar;
|
|
24598
|
+
}
|
|
24599
|
+
getChecked(index) {
|
|
24600
|
+
return index + 1 < this.currentStep;
|
|
24601
|
+
}
|
|
24602
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: StepBarComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
24603
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: StepBarComponent, selector: "gn-ui-step-bar", inputs: { steps: "steps", currentStep: "currentStep", type: "type" }, ngImport: i0, template: "<div class=\"relative flex flex-col justify-center\">\n <div class=\"flex justify-between ml-16 mr-16 z-10 circle-steps\">\n <div\n *ngFor=\"let step of stepCounter; let i = index\"\n class=\"shadow-md rounded-full h-6 w-6 {{ getCircleColor(i + 1) }}\"\n >\n <span class=\"icon-check pl-1\" *ngIf=\"getChecked(i)\"></span>\n </div>\n </div>\n <div\n class=\"absolute rounded-lg right-0 w-full {{ color.outerBar }} h-2 z-0\"\n ></div>\n</div>\n", styles: [".icon-check{color:var(--color-primary)}\n"], dependencies: [{ kind: "directive", type: i1$3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
|
|
24604
|
+
}
|
|
24605
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: StepBarComponent, decorators: [{
|
|
24606
|
+
type: Component,
|
|
24607
|
+
args: [{ selector: 'gn-ui-step-bar', template: "<div class=\"relative flex flex-col justify-center\">\n <div class=\"flex justify-between ml-16 mr-16 z-10 circle-steps\">\n <div\n *ngFor=\"let step of stepCounter; let i = index\"\n class=\"shadow-md rounded-full h-6 w-6 {{ getCircleColor(i + 1) }}\"\n >\n <span class=\"icon-check pl-1\" *ngIf=\"getChecked(i)\"></span>\n </div>\n </div>\n <div\n class=\"absolute rounded-lg right-0 w-full {{ color.outerBar }} h-2 z-0\"\n ></div>\n</div>\n", styles: [".icon-check{color:var(--color-primary)}\n"] }]
|
|
24608
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { steps: [{
|
|
24609
|
+
type: Input
|
|
24610
|
+
}], currentStep: [{
|
|
24611
|
+
type: Input
|
|
24612
|
+
}], type: [{
|
|
24613
|
+
type: Input
|
|
24614
|
+
}] } });
|
|
24615
|
+
|
|
24616
|
+
class LoadingMaskComponent {
|
|
24617
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LoadingMaskComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
24618
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: LoadingMaskComponent, selector: "gn-ui-loading-mask", inputs: { message: "message" }, ngImport: i0, template: "<div class=\"h-full flex flex-col justify-center items-center relative backdrop\">\n <div class=\"absolute background bg-white inset-0\"></div>\n <mat-spinner [diameter]=\"28\" class=\"relative\"></mat-spinner>\n <span class=\"text-sm text-gray-700 mt-3 relative\">{{ message }}</span>\n</div>\n", styles: ["::ng-deep .mat-spinner circle{stroke:var(--color-gray-700);opacity:.5}.backdrop{background-color:#fff6}@supports ((-webkit-backdrop-filter: blur()) or (backdrop-filter: blur())){.backdrop{background-color:transparent;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}}.background{opacity:.7}\n"], dependencies: [{ kind: "component", type: i1$4.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
24619
|
+
}
|
|
24620
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LoadingMaskComponent, decorators: [{
|
|
24621
|
+
type: Component,
|
|
24622
|
+
args: [{ selector: 'gn-ui-loading-mask', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"h-full flex flex-col justify-center items-center relative backdrop\">\n <div class=\"absolute background bg-white inset-0\"></div>\n <mat-spinner [diameter]=\"28\" class=\"relative\"></mat-spinner>\n <span class=\"text-sm text-gray-700 mt-3 relative\">{{ message }}</span>\n</div>\n", styles: ["::ng-deep .mat-spinner circle{stroke:var(--color-gray-700);opacity:.5}.backdrop{background-color:#fff6}@supports ((-webkit-backdrop-filter: blur()) or (backdrop-filter: blur())){.backdrop{background-color:transparent;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}}.background{opacity:.7}\n"] }]
|
|
24623
|
+
}], propDecorators: { message: [{
|
|
24624
|
+
type: Input
|
|
24625
|
+
}] } });
|
|
24626
|
+
|
|
24627
|
+
class SpinningLoaderComponent {
|
|
24628
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpinningLoaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
24629
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SpinningLoaderComponent, selector: "gn-ui-spinning-loader", ngImport: i0, template: "<span>\n <svg\n class=\"animate-spin h-8 w-8 text-primary\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <circle\n class=\"opacity-25\"\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n stroke=\"currentColor\"\n stroke-width=\"4\"\n ></circle>\n <path\n class=\"opacity-75\"\n fill=\"currentColor\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\n ></path>\n </svg>\n</span>\n", styles: [""] }); }
|
|
24630
|
+
}
|
|
24631
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpinningLoaderComponent, decorators: [{
|
|
24632
|
+
type: Component,
|
|
24633
|
+
args: [{ selector: 'gn-ui-spinning-loader', template: "<span>\n <svg\n class=\"animate-spin h-8 w-8 text-primary\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <circle\n class=\"opacity-25\"\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n stroke=\"currentColor\"\n stroke-width=\"4\"\n ></circle>\n <path\n class=\"opacity-75\"\n fill=\"currentColor\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\n ></path>\n </svg>\n</span>\n" }]
|
|
24634
|
+
}] });
|
|
24635
|
+
|
|
24636
|
+
class UiWidgetsModule {
|
|
24637
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UiWidgetsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
24638
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: UiWidgetsModule, declarations: [ColorScaleComponent,
|
|
24639
|
+
ProgressBarComponent,
|
|
24640
|
+
StepBarComponent,
|
|
24641
|
+
LoadingMaskComponent,
|
|
24642
|
+
SpinningLoaderComponent], imports: [CommonModule, i1$1.TranslateModule, NgxDropzoneModule,
|
|
24643
|
+
FormsModule,
|
|
24644
|
+
ReactiveFormsModule,
|
|
24645
|
+
TagInputModule,
|
|
24646
|
+
UtilSharedModule,
|
|
24647
|
+
MatProgressSpinnerModule,
|
|
24648
|
+
MatIconModule], exports: [ProgressBarComponent,
|
|
24649
|
+
StepBarComponent,
|
|
24650
|
+
LoadingMaskComponent,
|
|
24651
|
+
SpinningLoaderComponent] }); }
|
|
24652
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UiWidgetsModule, imports: [CommonModule,
|
|
24653
|
+
TranslateModule.forChild(),
|
|
24654
|
+
NgxDropzoneModule,
|
|
24655
|
+
FormsModule,
|
|
24656
|
+
ReactiveFormsModule,
|
|
24657
|
+
TagInputModule,
|
|
24658
|
+
UtilSharedModule,
|
|
24659
|
+
MatProgressSpinnerModule,
|
|
24660
|
+
MatIconModule] }); }
|
|
24661
|
+
}
|
|
24662
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UiWidgetsModule, decorators: [{
|
|
24663
|
+
type: NgModule,
|
|
24664
|
+
args: [{
|
|
24665
|
+
declarations: [
|
|
24666
|
+
ColorScaleComponent,
|
|
24667
|
+
ProgressBarComponent,
|
|
24668
|
+
StepBarComponent,
|
|
24669
|
+
LoadingMaskComponent,
|
|
24670
|
+
SpinningLoaderComponent,
|
|
24671
|
+
],
|
|
24672
|
+
imports: [
|
|
24673
|
+
CommonModule,
|
|
24674
|
+
TranslateModule.forChild(),
|
|
24675
|
+
NgxDropzoneModule,
|
|
24676
|
+
FormsModule,
|
|
24677
|
+
ReactiveFormsModule,
|
|
24678
|
+
TagInputModule,
|
|
24679
|
+
UtilSharedModule,
|
|
24680
|
+
MatProgressSpinnerModule,
|
|
24681
|
+
MatIconModule,
|
|
24682
|
+
],
|
|
24683
|
+
exports: [
|
|
24684
|
+
ProgressBarComponent,
|
|
24685
|
+
StepBarComponent,
|
|
24686
|
+
LoadingMaskComponent,
|
|
24687
|
+
SpinningLoaderComponent,
|
|
24688
|
+
],
|
|
24689
|
+
}]
|
|
24690
|
+
}] });
|
|
24691
|
+
|
|
24247
24692
|
class PopupAlertComponent {
|
|
24248
24693
|
constructor(changeDetector) {
|
|
24249
24694
|
this.changeDetector = changeDetector;
|
|
@@ -24274,11 +24719,11 @@ class PopupAlertComponent {
|
|
|
24274
24719
|
}, this.showDuration);
|
|
24275
24720
|
}
|
|
24276
24721
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PopupAlertComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
24277
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PopupAlertComponent, selector: "gn-ui-popup-alert", inputs: { icon: "icon", type: "type", position: "position" }, viewQueries: [{ propertyName: "content", first: true, predicate: ["content"], descendants: true }], ngImport: i0, template: "<div class=\"h-full relative container\">\n <div\n class=\"pointer-events-auto absolute text-white flex flex-row p-2 rounded message\"\n role=\"alert\"\n [ngClass]=\"{\n 'position-bottom': position === 'bottom',\n 'position-top': position === 'top',\n expanded: this.expanded,\n 'bg-red-500': type === 'danger',\n 'bg-yellow-500': type === 'warning',\n 'bg-blue-500': type === 'info'\n }\"\n (mouseenter)=\"expand()\"\n (mouseleave)=\"expandAndClose()\"\n >\n <mat-icon class=\"material-symbols-outlined mr-2 shrink-0 select-none\">{{\n icon\n }}</mat-icon>\n <div class=\"grow\" #content [ngClass]=\"{ invisible: !expanded }\">\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n", styles: [":host{pointer-events:none}.container{filter:drop-shadow(0px 4px 3px rgba(0,0,0,.2))}.message{transition:clip-path .3s cubic-bezier(.25,.46,.45,.94)}.message.expanded{clip-path:circle(100%)}.position-top{clip-path:circle(19px at 20px 20px);align-items:start;top:0;left:0}.position-bottom{clip-path:circle(19px at 20px calc(100% - 20px));align-items:end;bottom:0;left:0}.container ::ng-deep a{text-decoration:underline;font-weight:700}.container ::ng-deep a:hover{opacity:.85}\n"], dependencies: [{ kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
24722
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PopupAlertComponent, isStandalone: true, selector: "gn-ui-popup-alert", inputs: { icon: "icon", type: "type", position: "position" }, viewQueries: [{ propertyName: "content", first: true, predicate: ["content"], descendants: true }], ngImport: i0, template: "<div class=\"h-full relative container\">\n <div\n class=\"pointer-events-auto absolute text-white flex flex-row p-2 rounded message\"\n role=\"alert\"\n [ngClass]=\"{\n 'position-bottom': position === 'bottom',\n 'position-top': position === 'top',\n expanded: this.expanded,\n 'bg-red-500': type === 'danger',\n 'bg-yellow-500': type === 'warning',\n 'bg-blue-500': type === 'info'\n }\"\n (mouseenter)=\"expand()\"\n (mouseleave)=\"expandAndClose()\"\n >\n <mat-icon class=\"material-symbols-outlined mr-2 shrink-0 select-none\">{{\n icon\n }}</mat-icon>\n <div class=\"grow\" #content [ngClass]=\"{ invisible: !expanded }\">\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n", styles: [":host{pointer-events:none}.container{filter:drop-shadow(0px 4px 3px rgba(0,0,0,.2))}.message{transition:clip-path .3s cubic-bezier(.25,.46,.45,.94)}.message.expanded{clip-path:circle(100%)}.position-top{clip-path:circle(19px at 20px 20px);align-items:start;top:0;left:0}.position-bottom{clip-path:circle(19px at 20px calc(100% - 20px));align-items:end;bottom:0;left:0}.container ::ng-deep a{text-decoration:underline;font-weight:700}.container ::ng-deep a:hover{opacity:.85}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
24278
24723
|
}
|
|
24279
24724
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PopupAlertComponent, decorators: [{
|
|
24280
24725
|
type: Component,
|
|
24281
|
-
args: [{ selector: 'gn-ui-popup-alert', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"h-full relative container\">\n <div\n class=\"pointer-events-auto absolute text-white flex flex-row p-2 rounded message\"\n role=\"alert\"\n [ngClass]=\"{\n 'position-bottom': position === 'bottom',\n 'position-top': position === 'top',\n expanded: this.expanded,\n 'bg-red-500': type === 'danger',\n 'bg-yellow-500': type === 'warning',\n 'bg-blue-500': type === 'info'\n }\"\n (mouseenter)=\"expand()\"\n (mouseleave)=\"expandAndClose()\"\n >\n <mat-icon class=\"material-symbols-outlined mr-2 shrink-0 select-none\">{{\n icon\n }}</mat-icon>\n <div class=\"grow\" #content [ngClass]=\"{ invisible: !expanded }\">\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n", styles: [":host{pointer-events:none}.container{filter:drop-shadow(0px 4px 3px rgba(0,0,0,.2))}.message{transition:clip-path .3s cubic-bezier(.25,.46,.45,.94)}.message.expanded{clip-path:circle(100%)}.position-top{clip-path:circle(19px at 20px 20px);align-items:start;top:0;left:0}.position-bottom{clip-path:circle(19px at 20px calc(100% - 20px));align-items:end;bottom:0;left:0}.container ::ng-deep a{text-decoration:underline;font-weight:700}.container ::ng-deep a:hover{opacity:.85}\n"] }]
|
|
24726
|
+
args: [{ selector: 'gn-ui-popup-alert', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, MatIconModule], template: "<div class=\"h-full relative container\">\n <div\n class=\"pointer-events-auto absolute text-white flex flex-row p-2 rounded message\"\n role=\"alert\"\n [ngClass]=\"{\n 'position-bottom': position === 'bottom',\n 'position-top': position === 'top',\n expanded: this.expanded,\n 'bg-red-500': type === 'danger',\n 'bg-yellow-500': type === 'warning',\n 'bg-blue-500': type === 'info'\n }\"\n (mouseenter)=\"expand()\"\n (mouseleave)=\"expandAndClose()\"\n >\n <mat-icon class=\"material-symbols-outlined mr-2 shrink-0 select-none\">{{\n icon\n }}</mat-icon>\n <div class=\"grow\" #content [ngClass]=\"{ invisible: !expanded }\">\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n", styles: [":host{pointer-events:none}.container{filter:drop-shadow(0px 4px 3px rgba(0,0,0,.2))}.message{transition:clip-path .3s cubic-bezier(.25,.46,.45,.94)}.message.expanded{clip-path:circle(100%)}.position-top{clip-path:circle(19px at 20px 20px);align-items:start;top:0;left:0}.position-bottom{clip-path:circle(19px at 20px calc(100% - 20px));align-items:end;bottom:0;left:0}.container ::ng-deep a{text-decoration:underline;font-weight:700}.container ::ng-deep a:hover{opacity:.85}\n"] }]
|
|
24282
24727
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { icon: [{
|
|
24283
24728
|
type: Input
|
|
24284
24729
|
}], type: [{
|
|
@@ -24295,37 +24740,59 @@ class AutocompleteComponent {
|
|
|
24295
24740
|
this.cdRef = cdRef;
|
|
24296
24741
|
this.clearOnSelection = false;
|
|
24297
24742
|
this.autoFocus = false;
|
|
24743
|
+
this.minCharacterCount = 3;
|
|
24744
|
+
this.allowSubmit = true;
|
|
24298
24745
|
this.itemSelected = new EventEmitter();
|
|
24299
24746
|
this.inputSubmitted = new EventEmitter();
|
|
24300
24747
|
this.inputCleared = new EventEmitter();
|
|
24301
24748
|
this.control = new UntypedFormControl();
|
|
24302
|
-
this.subscription = new Subscription();
|
|
24303
24749
|
this.cancelEnter = true;
|
|
24304
24750
|
this.selectionSubject = new ReplaySubject(1);
|
|
24305
24751
|
this.lastInputValue$ = new ReplaySubject(1);
|
|
24306
24752
|
this.error = null;
|
|
24307
|
-
this.
|
|
24753
|
+
this.subscription = new Subscription();
|
|
24754
|
+
this.displayWithFn = (item) => item.toString();
|
|
24755
|
+
this.displayWithFnInternal = (item) => {
|
|
24756
|
+
if (item === null || item === undefined)
|
|
24757
|
+
return null;
|
|
24758
|
+
return this.displayWithFn(item);
|
|
24759
|
+
};
|
|
24308
24760
|
}
|
|
24309
24761
|
ngOnChanges(changes) {
|
|
24310
24762
|
const { value } = changes;
|
|
24311
24763
|
if (value) {
|
|
24312
|
-
const previousTextValue = this.
|
|
24313
|
-
const currentTextValue = this.
|
|
24764
|
+
const previousTextValue = this.displayWithFnInternal(value.previousValue);
|
|
24765
|
+
const currentTextValue = this.displayWithFnInternal(value.currentValue);
|
|
24314
24766
|
if (previousTextValue !== currentTextValue) {
|
|
24315
24767
|
this.updateInputValue(value.currentValue);
|
|
24316
24768
|
}
|
|
24317
24769
|
}
|
|
24318
24770
|
}
|
|
24319
24771
|
ngOnInit() {
|
|
24320
|
-
|
|
24772
|
+
const newValue$ = merge(of(''), this.inputCleared.pipe(map$1(() => '')), this.control.valueChanges.pipe(filter((value) => typeof value === 'string'), distinctUntilChanged(), debounceTime(400)));
|
|
24773
|
+
const externalValueChange$ = this.control.valueChanges.pipe(filter((value) => typeof value === 'object' && value.title), map$1((item) => item.title));
|
|
24774
|
+
// this observable emits arrays of suggestions loaded using the given action
|
|
24775
|
+
const suggestionsFromAction = merge(newValue$.pipe(filter((value) => value.length >= this.minCharacterCount)), externalValueChange$).pipe(tap$1(() => {
|
|
24776
|
+
this.searching = true;
|
|
24777
|
+
this.error = null;
|
|
24778
|
+
}), switchMap$1((value) => this.action(value)), catchError((error) => {
|
|
24321
24779
|
this.error = error.message;
|
|
24322
24780
|
return of([]);
|
|
24323
24781
|
}), finalize(() => (this.searching = false)));
|
|
24324
|
-
this.
|
|
24782
|
+
this.suggestions$ = merge(suggestionsFromAction,
|
|
24783
|
+
// if a new value is under the min char count, clear suggestions
|
|
24784
|
+
newValue$.pipe(filter((value) => value.length < this.minCharacterCount), map$1(() => [])));
|
|
24785
|
+
// close the panel whenever suggestions are cleared
|
|
24786
|
+
this.subscription.add(this.suggestions$
|
|
24787
|
+
.pipe(filter((suggestions) => suggestions.length === 0))
|
|
24788
|
+
.subscribe(() => {
|
|
24789
|
+
this.triggerRef?.closePanel();
|
|
24790
|
+
}));
|
|
24791
|
+
this.subscription.add(this.control.valueChanges.subscribe((any) => {
|
|
24325
24792
|
if (any !== '') {
|
|
24326
24793
|
this.cancelEnter = false;
|
|
24327
24794
|
}
|
|
24328
|
-
});
|
|
24795
|
+
}));
|
|
24329
24796
|
this.control.valueChanges
|
|
24330
24797
|
.pipe(filter((value) => typeof value === 'string'))
|
|
24331
24798
|
.subscribe(this.lastInputValue$);
|
|
@@ -24338,7 +24805,7 @@ class AutocompleteComponent {
|
|
|
24338
24805
|
}
|
|
24339
24806
|
}
|
|
24340
24807
|
ngOnDestroy() {
|
|
24341
|
-
this.subscription
|
|
24808
|
+
this.subscription?.unsubscribe();
|
|
24342
24809
|
}
|
|
24343
24810
|
updateInputValue(value) {
|
|
24344
24811
|
if (value) {
|
|
@@ -24355,17 +24822,14 @@ class AutocompleteComponent {
|
|
|
24355
24822
|
.pipe(take(1))
|
|
24356
24823
|
.subscribe((selection) => selection && selection.option.deselect());
|
|
24357
24824
|
this.inputRef.nativeElement.focus();
|
|
24358
|
-
this.triggerRef.closePanel();
|
|
24359
24825
|
}
|
|
24360
24826
|
handleEnter(any) {
|
|
24361
|
-
if (!this.cancelEnter) {
|
|
24827
|
+
if (!this.cancelEnter && this.allowSubmit) {
|
|
24362
24828
|
this.inputSubmitted.emit(any);
|
|
24363
|
-
this.triggerRef.closePanel();
|
|
24364
24829
|
}
|
|
24365
24830
|
}
|
|
24366
24831
|
handleClickSearch() {
|
|
24367
24832
|
this.inputSubmitted.emit(this.inputRef.nativeElement.value);
|
|
24368
|
-
this.triggerRef.closePanel();
|
|
24369
24833
|
}
|
|
24370
24834
|
handleSelection(event) {
|
|
24371
24835
|
this.cancelEnter = true;
|
|
@@ -24377,11 +24841,18 @@ class AutocompleteComponent {
|
|
|
24377
24841
|
}
|
|
24378
24842
|
}
|
|
24379
24843
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AutocompleteComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
24380
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AutocompleteComponent, selector: "gn-ui-autocomplete", inputs: { placeholder: "placeholder", action: "action", value: "value", clearOnSelection: "clearOnSelection", autoFocus: "autoFocus", displayWithFn: "displayWithFn" }, outputs: { itemSelected: "itemSelected", inputSubmitted: "inputSubmitted", inputCleared: "inputCleared" }, viewQueries: [{ propertyName: "triggerRef", first: true, predicate: MatAutocompleteTrigger, descendants: true }, { propertyName: "autocomplete", first: true, predicate: MatAutocomplete, descendants: true }, { propertyName: "inputRef", first: true, predicate: ["searchInput"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"relative\">\n <input\n #searchInput\n type=\"text\"\n class=\"appearance-none focus:outline-white focus:outline-2 focus:outline-dotted focus:outline-offset-2 leading-tight rounded w-full text-black shadow-xl focus:shadow-[0_0_24px_0_rgba(21,40,184,0.09)]\"\n [placeholder]=\"placeholder\"\n [formControl]=\"control\"\n [matAutocomplete]=\"auto\"\n (keyup.enter)=\"handleEnter(searchInput.value)\"\n />\n <button\n
|
|
24844
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AutocompleteComponent, isStandalone: true, selector: "gn-ui-autocomplete", inputs: { placeholder: "placeholder", action: "action", value: "value", clearOnSelection: "clearOnSelection", autoFocus: "autoFocus", minCharacterCount: "minCharacterCount", allowSubmit: "allowSubmit", displayWithFn: "displayWithFn" }, outputs: { itemSelected: "itemSelected", inputSubmitted: "inputSubmitted", inputCleared: "inputCleared" }, viewQueries: [{ propertyName: "triggerRef", first: true, predicate: MatAutocompleteTrigger, descendants: true }, { propertyName: "autocomplete", first: true, predicate: MatAutocomplete, descendants: true }, { propertyName: "inputRef", first: true, predicate: ["searchInput"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"relative\">\n <input\n #searchInput\n type=\"text\"\n class=\"appearance-none focus:outline-white focus:outline-2 focus:outline-dotted focus:outline-offset-2 leading-tight rounded w-full text-black shadow-xl focus:shadow-[0_0_24px_0_rgba(21,40,184,0.09)]\"\n [placeholder]=\"placeholder\"\n [formControl]=\"control\"\n [matAutocomplete]=\"auto\"\n (keyup.enter)=\"handleEnter(searchInput.value)\"\n />\n <div class=\"flex flex-row absolute inset-y-0 right-0\">\n <button\n type=\"button\"\n class=\"text-primary-lightest hover:text-primary hover:bg-gray-50 transition-all duration-100 clear-btn\"\n *ngIf=\"searchInput.value\"\n aria-label=\"Clear\"\n (click)=\"clear()\"\n >\n <mat-icon class=\"material-symbols-outlined\">close</mat-icon>\n </button>\n <button\n type=\"button\"\n class=\"text-primary bg-white hover:text-primary-darkest hover:bg-gray-100 border-gray-300 hover:border-gray-500 transition-all duration-100 search-btn rounded-r\"\n aria-label=\"Trigger search\"\n *ngIf=\"allowSubmit\"\n data-test=\"autocomplete-submit-btn\"\n (click)=\"handleClickSearch()\"\n >\n <mat-icon class=\"material-symbols-outlined\">search</mat-icon>\n </button>\n </div>\n <gn-ui-popup-alert\n *ngIf=\"error\"\n class=\"absolute mt-2 w-full top-[100%] left-0\"\n icon=\"error_outline\"\n position=\"top\"\n type=\"warning\"\n >\n <span translate>search.autocomplete.error</span>\n {{ error }}\n </gn-ui-popup-alert>\n</div>\n<mat-autocomplete\n #auto=\"matAutocomplete\"\n (optionSelected)=\"handleSelection($event)\"\n [displayWith]=\"displayWithFnInternal\"\n>\n <mat-option\n *ngFor=\"let suggestion of suggestions$ | async\"\n [value]=\"suggestion\"\n class=\"p-2 suggestion\"\n >\n {{ displayWithFnInternal(suggestion) }}\n </mat-option>\n</mat-autocomplete>\n", styles: [":host{--input-height: 3.5em}.clear-btn{width:var(--input-height);height:100%}.search-btn{width:var(--input-height);height:100%;border-left-width:.1em}mat-icon{width:100%;height:100%;padding:.65em;font-size:1.5em}input{height:var(--input-height);padding:1.05em;padding-right:calc(2 * var(--input-height))}input:placeholder-shown{text-overflow:ellipsis}.mat-mdc-option.suggestion.mat-mdc-option-active{background-color:var(--color-primary-lightest)}\n"], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: PopupAlertComponent, selector: "gn-ui-popup-alert", inputs: ["icon", "type", "position"] }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i2$1.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple", "hideSingleSelectionIndicator"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i3.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i2$1.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$3.AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
24381
24845
|
}
|
|
24382
24846
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AutocompleteComponent, decorators: [{
|
|
24383
24847
|
type: Component,
|
|
24384
|
-
args: [{ selector: 'gn-ui-autocomplete', changeDetection: ChangeDetectionStrategy.OnPush,
|
|
24848
|
+
args: [{ selector: 'gn-ui-autocomplete', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
24849
|
+
MatIconModule,
|
|
24850
|
+
PopupAlertComponent,
|
|
24851
|
+
MatAutocompleteModule,
|
|
24852
|
+
CommonModule,
|
|
24853
|
+
TranslateModule,
|
|
24854
|
+
ReactiveFormsModule,
|
|
24855
|
+
], template: "<div class=\"relative\">\n <input\n #searchInput\n type=\"text\"\n class=\"appearance-none focus:outline-white focus:outline-2 focus:outline-dotted focus:outline-offset-2 leading-tight rounded w-full text-black shadow-xl focus:shadow-[0_0_24px_0_rgba(21,40,184,0.09)]\"\n [placeholder]=\"placeholder\"\n [formControl]=\"control\"\n [matAutocomplete]=\"auto\"\n (keyup.enter)=\"handleEnter(searchInput.value)\"\n />\n <div class=\"flex flex-row absolute inset-y-0 right-0\">\n <button\n type=\"button\"\n class=\"text-primary-lightest hover:text-primary hover:bg-gray-50 transition-all duration-100 clear-btn\"\n *ngIf=\"searchInput.value\"\n aria-label=\"Clear\"\n (click)=\"clear()\"\n >\n <mat-icon class=\"material-symbols-outlined\">close</mat-icon>\n </button>\n <button\n type=\"button\"\n class=\"text-primary bg-white hover:text-primary-darkest hover:bg-gray-100 border-gray-300 hover:border-gray-500 transition-all duration-100 search-btn rounded-r\"\n aria-label=\"Trigger search\"\n *ngIf=\"allowSubmit\"\n data-test=\"autocomplete-submit-btn\"\n (click)=\"handleClickSearch()\"\n >\n <mat-icon class=\"material-symbols-outlined\">search</mat-icon>\n </button>\n </div>\n <gn-ui-popup-alert\n *ngIf=\"error\"\n class=\"absolute mt-2 w-full top-[100%] left-0\"\n icon=\"error_outline\"\n position=\"top\"\n type=\"warning\"\n >\n <span translate>search.autocomplete.error</span>\n {{ error }}\n </gn-ui-popup-alert>\n</div>\n<mat-autocomplete\n #auto=\"matAutocomplete\"\n (optionSelected)=\"handleSelection($event)\"\n [displayWith]=\"displayWithFnInternal\"\n>\n <mat-option\n *ngFor=\"let suggestion of suggestions$ | async\"\n [value]=\"suggestion\"\n class=\"p-2 suggestion\"\n >\n {{ displayWithFnInternal(suggestion) }}\n </mat-option>\n</mat-autocomplete>\n", styles: [":host{--input-height: 3.5em}.clear-btn{width:var(--input-height);height:100%}.search-btn{width:var(--input-height);height:100%;border-left-width:.1em}mat-icon{width:100%;height:100%;padding:.65em;font-size:1.5em}input{height:var(--input-height);padding:1.05em;padding-right:calc(2 * var(--input-height))}input:placeholder-shown{text-overflow:ellipsis}.mat-mdc-option.suggestion.mat-mdc-option-active{background-color:var(--color-primary-lightest)}\n"] }]
|
|
24385
24856
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { placeholder: [{
|
|
24386
24857
|
type: Input
|
|
24387
24858
|
}], action: [{
|
|
@@ -24392,6 +24863,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
24392
24863
|
type: Input
|
|
24393
24864
|
}], autoFocus: [{
|
|
24394
24865
|
type: Input
|
|
24866
|
+
}], minCharacterCount: [{
|
|
24867
|
+
type: Input
|
|
24868
|
+
}], allowSubmit: [{
|
|
24869
|
+
type: Input
|
|
24395
24870
|
}], itemSelected: [{
|
|
24396
24871
|
type: Output
|
|
24397
24872
|
}], inputSubmitted: [{
|
|
@@ -24462,6 +24937,29 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
24462
24937
|
type: Output
|
|
24463
24938
|
}] } });
|
|
24464
24939
|
|
|
24940
|
+
class BadgeComponent {
|
|
24941
|
+
constructor() {
|
|
24942
|
+
this.clickable = false;
|
|
24943
|
+
this.removable = false;
|
|
24944
|
+
this.badgeRemoveClicked = new EventEmitter();
|
|
24945
|
+
}
|
|
24946
|
+
removeBadge() {
|
|
24947
|
+
this.badgeRemoveClicked.emit();
|
|
24948
|
+
}
|
|
24949
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BadgeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
24950
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: BadgeComponent, isStandalone: true, selector: "gn-ui-badge", inputs: { clickable: "clickable", removable: "removable" }, outputs: { badgeRemoveClicked: "badgeRemoveClicked" }, ngImport: i0, template: "<div\n class=\"gn-ui-badge flex items-center gap-1.5\"\n [ngClass]=\"\n clickable\n ? 'hover:bg-primary cursor-pointer transition-colors duration-100'\n : ''\n \"\n>\n <span><ng-content></ng-content></span>\n <gn-ui-button\n class=\"material-symbols-outlined cursor-pointer text-xs\"\n *ngIf=\"removable\"\n (buttonClick)=\"removeBadge()\"\n extraClass=\"p-1 bg-transparent border-0 border-transparent \"\n >\n close\n </gn-ui-button>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
24951
|
+
}
|
|
24952
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BadgeComponent, decorators: [{
|
|
24953
|
+
type: Component,
|
|
24954
|
+
args: [{ selector: 'gn-ui-badge', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, ButtonComponent], template: "<div\n class=\"gn-ui-badge flex items-center gap-1.5\"\n [ngClass]=\"\n clickable\n ? 'hover:bg-primary cursor-pointer transition-colors duration-100'\n : ''\n \"\n>\n <span><ng-content></ng-content></span>\n <gn-ui-button\n class=\"material-symbols-outlined cursor-pointer text-xs\"\n *ngIf=\"removable\"\n (buttonClick)=\"removeBadge()\"\n extraClass=\"p-1 bg-transparent border-0 border-transparent \"\n >\n close\n </gn-ui-button>\n</div>\n" }]
|
|
24955
|
+
}], propDecorators: { clickable: [{
|
|
24956
|
+
type: Input
|
|
24957
|
+
}], removable: [{
|
|
24958
|
+
type: Input
|
|
24959
|
+
}], badgeRemoveClicked: [{
|
|
24960
|
+
type: Output
|
|
24961
|
+
}] } });
|
|
24962
|
+
|
|
24465
24963
|
class CheckToggleComponent {
|
|
24466
24964
|
constructor() {
|
|
24467
24965
|
this.color = 'primary';
|
|
@@ -24471,7 +24969,7 @@ class CheckToggleComponent {
|
|
|
24471
24969
|
this.toggled.emit(event);
|
|
24472
24970
|
}
|
|
24473
24971
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CheckToggleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
24474
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CheckToggleComponent, isStandalone: true, selector: "gn-ui-check-toggle", inputs: { title: "title", label: "label", value: "value", color: "color" }, outputs: { toggled: "toggled" }, ngImport: i0, template: "<label class=\"inline-flex relative items-start cursor-pointer\" [title]=\"title\">\n <span class=\"shrink-0\">\n <input\n type=\"checkbox\"\n class=\"sr-only peer\"\n [ngModel]=\"value\"\n (ngModelChange)=\"toggle($event)\"\n />\n <div\n class=\"w-11 h-6 bg-gray-200 peer-focus:outline-none peer-focus:ring-2 rounded-full peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:border-gray-300 after:border after:rounded-full after:h-5 after:w-5 after:transition-all\"\n [class]=\"\n color === 'secondary'\n ? 'peer-focus:ring-secondary-lighter peer-checked:bg-secondary'\n : 'peer-focus:ring-primary-lighter peer-checked:bg-primary'\n \"\n ></div>\n </span>\n <span class=\"ml-3 mt-[2px] text-sm font-medium\">{{ label }}</span>\n</label>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$
|
|
24972
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CheckToggleComponent, isStandalone: true, selector: "gn-ui-check-toggle", inputs: { title: "title", label: "label", value: "value", color: "color" }, outputs: { toggled: "toggled" }, ngImport: i0, template: "<label class=\"inline-flex relative items-start cursor-pointer\" [title]=\"title\">\n <span class=\"shrink-0\">\n <input\n type=\"checkbox\"\n class=\"sr-only peer\"\n [ngModel]=\"value\"\n (ngModelChange)=\"toggle($event)\"\n />\n <div\n class=\"w-11 h-6 bg-gray-200 peer-focus:outline-none peer-focus:ring-2 rounded-full peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:border-gray-300 after:border after:rounded-full after:h-5 after:w-5 after:transition-all\"\n [class]=\"\n color === 'secondary'\n ? 'peer-focus:ring-secondary-lighter peer-checked:bg-secondary'\n : 'peer-focus:ring-primary-lighter peer-checked:bg-primary'\n \"\n ></div>\n </span>\n <span class=\"ml-3 mt-[2px] text-sm font-medium\">{{ label }}</span>\n</label>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
24475
24973
|
}
|
|
24476
24974
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CheckToggleComponent, decorators: [{
|
|
24477
24975
|
type: Component,
|
|
@@ -24504,7 +25002,7 @@ class CheckboxComponent {
|
|
|
24504
25002
|
this.changed.emit(this.checked);
|
|
24505
25003
|
}
|
|
24506
25004
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CheckboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
24507
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CheckboxComponent, selector: "gn-ui-checkbox", inputs: { type: "type", checked: "checked", indeterminate: "indeterminate" }, outputs: { changed: "changed" }, ngImport: i0, template: "<mat-checkbox\n class=\"cursor-pointer\"\n [class]=\"classList\"\n [checked]=\"checked\"\n [indeterminate]=\"indeterminate\"\n (click)=\"handleClick($event)\"\n></mat-checkbox>\n", styles: [".default{--gn-ui-checkbox-color: var(--color-main)}.secondary{--gn-ui-checkbox-color: var(--color-secondary)}.primary{--gn-ui-checkbox-color: var(--color-primary)}mat-checkbox{--mdc-checkbox-selected-focus-icon-color: var(--gn-ui-checkbox-color);--mdc-checkbox-selected-hover-icon-color: var(--gn-ui-checkbox-color);--mdc-checkbox-selected-icon-color: var(--gn-ui-checkbox-color);--mdc-checkbox-selected-pressed-icon-color: var(--gn-ui-checkbox-color);--mdc-checkbox-selected-focus-state-layer-color: var(--gn-ui-checkbox-color);--mdc-checkbox-selected-hover-state-layer-color: var(--gn-ui-checkbox-color);--mdc-checkbox-selected-pressed-state-layer-color: var( --gn-ui-checkbox-color )}\n"], dependencies: [{ kind: "component", type: i1$
|
|
25005
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CheckboxComponent, selector: "gn-ui-checkbox", inputs: { type: "type", checked: "checked", indeterminate: "indeterminate" }, outputs: { changed: "changed" }, ngImport: i0, template: "<mat-checkbox\n class=\"cursor-pointer\"\n [class]=\"classList\"\n [checked]=\"checked\"\n [indeterminate]=\"indeterminate\"\n (click)=\"handleClick($event)\"\n></mat-checkbox>\n", styles: [".default{--gn-ui-checkbox-color: var(--color-main)}.secondary{--gn-ui-checkbox-color: var(--color-secondary)}.primary{--gn-ui-checkbox-color: var(--color-primary)}mat-checkbox{--mdc-checkbox-selected-focus-icon-color: var(--gn-ui-checkbox-color);--mdc-checkbox-selected-hover-icon-color: var(--gn-ui-checkbox-color);--mdc-checkbox-selected-icon-color: var(--gn-ui-checkbox-color);--mdc-checkbox-selected-pressed-icon-color: var(--gn-ui-checkbox-color);--mdc-checkbox-selected-focus-state-layer-color: var(--gn-ui-checkbox-color);--mdc-checkbox-selected-hover-state-layer-color: var(--gn-ui-checkbox-color);--mdc-checkbox-selected-pressed-state-layer-color: var( --gn-ui-checkbox-color )}\n"], dependencies: [{ kind: "component", type: i1$5.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
24508
25006
|
}
|
|
24509
25007
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CheckboxComponent, decorators: [{
|
|
24510
25008
|
type: Component,
|
|
@@ -24564,7 +25062,7 @@ class ChipsInputComponent {
|
|
|
24564
25062
|
this.subscription.unsubscribe();
|
|
24565
25063
|
}
|
|
24566
25064
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ChipsInputComponent, deps: [{ token: i1.HttpClient }, { token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
24567
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ChipsInputComponent, selector: "gn-ui-chips-input", inputs: { url: "url", placeholder: "placeholder", selectedItems: "selectedItems", required: "required", loadOnce: "loadOnce", autocompleteItems: "autocompleteItems" }, outputs: { itemsChange: "itemsChange" }, ngImport: i0, template: "<tag-input\n [ngModel]=\"items\"\n (ngModelChange)=\"onChange($event)\"\n onlyFromAutocomplete=\"true\"\n [placeholder]=\"placeholder\"\n [secondaryPlaceholder]=\"placeholder\"\n [ripple]=\"false\"\n [animationDuration]=\"{ enter: '0ms', leave: '0ms' }\"\n [onTextChangeDebounce]=\"100\"\n class=\"border-2 border-primary h-full rounded-lg p-2 bg-white text-sm focus:border-primary\"\n [ngClass]=\"{ invalid: invalid }\"\n>\n <tag-input-dropdown\n [autocompleteObservable]=\"requestAutocompleteItems\"\n [minimumTextLength]=\"0\"\n [keepOpen]=\"false\"\n [showDropdownIfEmpty]=\"true\"\n >\n <ng-template let-item=\"item\" let-index=\"index\">\n {{ item.display }}\n </ng-template>\n </tag-input-dropdown>\n</tag-input>\n", styles: ["tag-input::ng-deep .ng2-tag-input{border-bottom:none}tag-input::ng-deep .ng2-tag-input.ng2-tag-input--focused{border-bottom:none}tag-input::ng-deep tag{border-radius:5px;background:var(--color-primary-lightest);font-family:inherit;align-content:center;font-style:italic}tag-input::ng-deep tag::ng-deep:not(:focus):not(.tag--editing):not(:active):not(.readonly):hover,tag-input::ng-deep tag:not(:focus):not(.tag--editing):not(:active):not(.readonly):hover{background:var(--color-primary)!important}tag-input::ng-deep .tag__text{padding-right:7px}tag-input::ng-deep div,tag-input::ng-deep form{height:100%}tag-input.invalid{border-color:var(--color-secondary)}\n"], dependencies: [{ kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$
|
|
25065
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ChipsInputComponent, selector: "gn-ui-chips-input", inputs: { url: "url", placeholder: "placeholder", selectedItems: "selectedItems", required: "required", loadOnce: "loadOnce", autocompleteItems: "autocompleteItems" }, outputs: { itemsChange: "itemsChange" }, ngImport: i0, template: "<tag-input\n [ngModel]=\"items\"\n (ngModelChange)=\"onChange($event)\"\n onlyFromAutocomplete=\"true\"\n [placeholder]=\"placeholder\"\n [secondaryPlaceholder]=\"placeholder\"\n [ripple]=\"false\"\n [animationDuration]=\"{ enter: '0ms', leave: '0ms' }\"\n [onTextChangeDebounce]=\"100\"\n class=\"border-2 border-primary h-full rounded-lg p-2 bg-white text-sm focus:border-primary\"\n [ngClass]=\"{ invalid: invalid }\"\n>\n <tag-input-dropdown\n [autocompleteObservable]=\"requestAutocompleteItems\"\n [minimumTextLength]=\"0\"\n [keepOpen]=\"false\"\n [showDropdownIfEmpty]=\"true\"\n >\n <ng-template let-item=\"item\" let-index=\"index\">\n {{ item.display }}\n </ng-template>\n </tag-input-dropdown>\n</tag-input>\n", styles: ["tag-input::ng-deep .ng2-tag-input{border-bottom:none}tag-input::ng-deep .ng2-tag-input.ng2-tag-input--focused{border-bottom:none}tag-input::ng-deep tag{border-radius:5px;background:var(--color-primary-lightest);font-family:inherit;align-content:center;font-style:italic}tag-input::ng-deep tag::ng-deep:not(:focus):not(.tag--editing):not(:active):not(.readonly):hover,tag-input::ng-deep tag:not(:focus):not(.tag--editing):not(:active):not(.readonly):hover{background:var(--color-primary)!important}tag-input::ng-deep .tag__text{padding-right:7px}tag-input::ng-deep div,tag-input::ng-deep form{height:100%}tag-input.invalid{border-color:var(--color-secondary)}\n"], dependencies: [{ kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.TagInputComponent, selector: "tag-input", inputs: ["separatorKeys", "separatorKeyCodes", "placeholder", "secondaryPlaceholder", "maxItems", "validators", "asyncValidators", "onlyFromAutocomplete", "errorMessages", "theme", "onTextChangeDebounce", "inputId", "inputClass", "clearOnBlur", "hideForm", "addOnBlur", "addOnPaste", "pasteSplitPattern", "blinkIfDupe", "removable", "editable", "allowDupes", "modelAsStrings", "trimTags", "inputText", "ripple", "tabindex", "disable", "dragZone", "onRemoving", "onAdding", "animationDuration"], outputs: ["onAdd", "onRemove", "onSelect", "onFocus", "onBlur", "onTextChange", "onPaste", "onValidationError", "onTagEdited", "inputTextChange"] }, { kind: "component", type: i5.TagInputDropdown, selector: "tag-input-dropdown", inputs: ["offset", "focusFirstElement", "showDropdownIfEmpty", "autocompleteObservable", "minimumTextLength", "limitItemsTo", "displayBy", "identifyBy", "matchingFn", "appendToBody", "keepOpen", "dynamicUpdate", "zIndex", "autocompleteItems"] }] }); }
|
|
24568
25066
|
}
|
|
24569
25067
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ChipsInputComponent, decorators: [{
|
|
24570
25068
|
type: Component,
|
|
@@ -24595,7 +25093,7 @@ class CopyTextButtonComponent {
|
|
|
24595
25093
|
event.target.blur();
|
|
24596
25094
|
}
|
|
24597
25095
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CopyTextButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
24598
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CopyTextButtonComponent, selector: "gn-ui-copy-text-button", inputs: { text: "text", tooltipText: "tooltipText", displayText: "displayText", rows: "rows" }, ngImport: i0, template: "<div class=\"flex\">\n <input\n *ngIf=\"displayText && rows <= 1\"\n type=\"text\"\n class=\"grow py-2 px-4 bg-gray-200 opacity-50 rounded-l-md border border-gray-300 truncate\"\n value=\"{{ text }}\"\n readonly\n />\n <textarea\n *ngIf=\"displayText && rows > 1\"\n [rows]=\"rows\"\n class=\"grow py-2 px-4 bg-gray-200 opacity-50 rounded-l-md border border-gray-300 overflow-y-auto h-max\"\n readonly\n >{{ text }}</textarea\n >\n <button\n type=\"button\"\n (click)=\"copyText($event)\"\n [ngClass]=\"{\n 'py-2 px-4 rounded-r-md bg-gray-400 hover:bg-gray-600 focus:bg-gray-800 text-white':\n displayText\n }\"\n mat-raised-button\n [matTooltip]=\"tooltipText\"\n matTooltipPosition=\"above\"\n >\n <mat-icon\n class=\"material-symbols-outlined pointer-events-none align-middle card-icon\"\n >content_copy</mat-icon\n >\n </button>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i2$
|
|
25096
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CopyTextButtonComponent, selector: "gn-ui-copy-text-button", inputs: { text: "text", tooltipText: "tooltipText", displayText: "displayText", rows: "rows" }, ngImport: i0, template: "<div class=\"flex\">\n <input\n *ngIf=\"displayText && rows <= 1\"\n type=\"text\"\n class=\"grow py-2 px-4 bg-gray-200 opacity-50 rounded-l-md border border-gray-300 truncate\"\n value=\"{{ text }}\"\n readonly\n />\n <textarea\n *ngIf=\"displayText && rows > 1\"\n [rows]=\"rows\"\n class=\"grow py-2 px-4 bg-gray-200 opacity-50 rounded-l-md border border-gray-300 overflow-y-auto h-max\"\n readonly\n >{{ text }}</textarea\n >\n <button\n type=\"button\"\n (click)=\"copyText($event)\"\n [ngClass]=\"{\n 'py-2 px-4 rounded-r-md bg-gray-400 hover:bg-gray-600 focus:bg-gray-800 text-white':\n displayText\n }\"\n mat-raised-button\n [matTooltip]=\"tooltipText\"\n matTooltipPosition=\"above\"\n >\n <mat-icon\n class=\"material-symbols-outlined pointer-events-none align-middle card-icon\"\n >content_copy</mat-icon\n >\n </button>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i2$3.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
24599
25097
|
}
|
|
24600
25098
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CopyTextButtonComponent, decorators: [{
|
|
24601
25099
|
type: Component,
|
|
@@ -24615,7 +25113,7 @@ class DatePickerComponent {
|
|
|
24615
25113
|
this.dateChange = new EventEmitter();
|
|
24616
25114
|
}
|
|
24617
25115
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DatePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
24618
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DatePickerComponent, isStandalone: true, selector: "gn-ui-date-picker", inputs: { date: "date" }, outputs: { dateChange: "dateChange" }, ngImport: i0, template: "<div\n class=\"flex items-center justify-between rounded-lg border border-gray-300 bg-white\"\n>\n <input\n class=\"pl-3\"\n [matDatepicker]=\"picker\"\n [value]=\"date\"\n (dateChange)=\"dateChange.emit($event.value)\"\n />\n <mat-datepicker-toggle matIconSuffix [for]=\"picker\"></mat-datepicker-toggle>\n</div>\n<mat-datepicker #picker></mat-datepicker>\n", styles: ["mat-datepicker-toggle{@apply text-primary;}\n"], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatNativeDateModule }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i2$
|
|
25116
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DatePickerComponent, isStandalone: true, selector: "gn-ui-date-picker", inputs: { date: "date" }, outputs: { dateChange: "dateChange" }, ngImport: i0, template: "<div\n class=\"flex items-center justify-between rounded-lg border border-gray-300 bg-white\"\n>\n <input\n class=\"pl-3\"\n [matDatepicker]=\"picker\"\n [value]=\"date\"\n (dateChange)=\"dateChange.emit($event.value)\"\n />\n <mat-datepicker-toggle matIconSuffix [for]=\"picker\"></mat-datepicker-toggle>\n</div>\n<mat-datepicker #picker></mat-datepicker>\n", styles: ["mat-datepicker-toggle{@apply text-primary;}\n"], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatNativeDateModule }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i2$4.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i2$4.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i2$4.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
24619
25117
|
}
|
|
24620
25118
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DatePickerComponent, decorators: [{
|
|
24621
25119
|
type: Component,
|
|
@@ -24632,7 +25130,7 @@ class DateRangePickerComponent {
|
|
|
24632
25130
|
this.endDateChange = new EventEmitter();
|
|
24633
25131
|
}
|
|
24634
25132
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DateRangePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
24635
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DateRangePickerComponent, isStandalone: true, selector: "gn-ui-date-range-picker", inputs: { startDate: "startDate", endDate: "endDate" }, outputs: { startDateChange: "startDateChange", endDateChange: "endDateChange" }, ngImport: i0, template: "<div\n class=\"flex items-center justify-between rounded-lg border border-gray-300 bg-white\"\n>\n <div class=\"pl-3 flex justify-center\">\n <mat-date-range-input [rangePicker]=\"picker\" class=\"w-full\">\n <input\n matStartDate\n placeholder=\"Start date\"\n [value]=\"startDate\"\n (dateInput)=\"startDateChange.emit($event.value)\"\n />\n <input\n matEndDate\n placeholder=\"End date\"\n [value]=\"endDate\"\n (dateInput)=\"endDateChange.emit($event.value)\"\n />\n </mat-date-range-input>\n </div>\n <mat-datepicker-toggle matSuffix [for]=\"picker\">\n <mat-icon>calendar_today</mat-icon>\n </mat-datepicker-toggle>\n</div>\n<mat-date-range-picker #picker></mat-date-range-picker>\n", styles: ["mat-datepicker-toggle{@apply text-primary;}\n"], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatNativeDateModule }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i2$
|
|
25133
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DateRangePickerComponent, isStandalone: true, selector: "gn-ui-date-range-picker", inputs: { startDate: "startDate", endDate: "endDate" }, outputs: { startDateChange: "startDateChange", endDateChange: "endDateChange" }, ngImport: i0, template: "<div\n class=\"flex items-center justify-between rounded-lg border border-gray-300 bg-white\"\n>\n <div class=\"pl-3 flex justify-center\">\n <mat-date-range-input [rangePicker]=\"picker\" class=\"w-full\">\n <input\n matStartDate\n placeholder=\"Start date\"\n [value]=\"startDate\"\n (dateInput)=\"startDateChange.emit($event.value)\"\n />\n <input\n matEndDate\n placeholder=\"End date\"\n [value]=\"endDate\"\n (dateInput)=\"endDateChange.emit($event.value)\"\n />\n </mat-date-range-input>\n </div>\n <mat-datepicker-toggle matSuffix [for]=\"picker\">\n <mat-icon>calendar_today</mat-icon>\n </mat-datepicker-toggle>\n</div>\n<mat-date-range-picker #picker></mat-date-range-picker>\n", styles: ["mat-datepicker-toggle{@apply text-primary;}\n"], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatNativeDateModule }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i2$4.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "component", type: i2$4.MatDateRangeInput, selector: "mat-date-range-input", inputs: ["rangePicker", "required", "dateFilter", "min", "max", "disabled", "separator", "comparisonStart", "comparisonEnd"], exportAs: ["matDateRangeInput"] }, { kind: "directive", type: i2$4.MatStartDate, selector: "input[matStartDate]", inputs: ["errorStateMatcher"], outputs: ["dateChange", "dateInput"] }, { kind: "directive", type: i2$4.MatEndDate, selector: "input[matEndDate]", inputs: ["errorStateMatcher"], outputs: ["dateChange", "dateInput"] }, { kind: "component", type: i2$4.MatDateRangePicker, selector: "mat-date-range-picker", exportAs: ["matDateRangePicker"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
24636
25134
|
}
|
|
24637
25135
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DateRangePickerComponent, decorators: [{
|
|
24638
25136
|
type: Component,
|
|
@@ -24664,7 +25162,7 @@ class DragAndDropFileInputComponent {
|
|
|
24664
25162
|
this.fileChange.emit(this.selectedFile);
|
|
24665
25163
|
}
|
|
24666
25164
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DragAndDropFileInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
24667
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DragAndDropFileInputComponent, selector: "gn-ui-drag-and-drop-file-input", inputs: { placeholder: "placeholder", accept: "accept" }, outputs: { fileChange: "fileChange" }, ngImport: i0, template: "<div class=\"flex h-full\">\n <ngx-dropzone\n class=\"flex-1\"\n multiple=\"false\"\n (change)=\"selectFile($event)\"\n [accept]=\"accept\"\n >\n <div *ngIf=\"!fileName\" class=\"text-gray-900 pl-2 py-2\" translate=\"\">\n {{ placeholder }}\n </div>\n\n <div *ngIf=\"fileName\" class=\"text-gray-900 pl-2 py-2\">{{ fileName }}</div>\n </ngx-dropzone>\n</div>\n", styles: ["ngx-dropzone{height:auto;border:none}\n"], dependencies: [{ kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i3.NgxDropzoneComponent, selector: "ngx-dropzone, [ngx-dropzone]", inputs: ["accept", "disabled", "multiple", "maxFileSize", "expandable", "disableClick", "processDirectoryDrop", "id", "aria-label", "aria-labelledby", "aria-describedby"], outputs: ["change"] }] }); }
|
|
25165
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DragAndDropFileInputComponent, selector: "gn-ui-drag-and-drop-file-input", inputs: { placeholder: "placeholder", accept: "accept" }, outputs: { fileChange: "fileChange" }, ngImport: i0, template: "<div class=\"flex h-full\">\n <ngx-dropzone\n class=\"flex-1\"\n multiple=\"false\"\n (change)=\"selectFile($event)\"\n [accept]=\"accept\"\n >\n <div *ngIf=\"!fileName\" class=\"text-gray-900 pl-2 py-2\" translate=\"\">\n {{ placeholder }}\n </div>\n\n <div *ngIf=\"fileName\" class=\"text-gray-900 pl-2 py-2\">{{ fileName }}</div>\n </ngx-dropzone>\n</div>\n", styles: ["ngx-dropzone{height:auto;border:none}\n"], dependencies: [{ kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i3$1.NgxDropzoneComponent, selector: "ngx-dropzone, [ngx-dropzone]", inputs: ["accept", "disabled", "multiple", "maxFileSize", "expandable", "disableClick", "processDirectoryDrop", "id", "aria-label", "aria-labelledby", "aria-describedby"], outputs: ["change"] }] }); }
|
|
24668
25166
|
}
|
|
24669
25167
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DragAndDropFileInputComponent, decorators: [{
|
|
24670
25168
|
type: Component,
|
|
@@ -24822,13 +25320,13 @@ class DropdownMultiselectComponent {
|
|
|
24822
25320
|
propagateToDocumentOnly(event);
|
|
24823
25321
|
this.setFocus();
|
|
24824
25322
|
}
|
|
24825
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DropdownMultiselectComponent, deps: [{ token: i1$
|
|
24826
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DropdownMultiselectComponent, selector: "gn-ui-dropdown-multiselect", inputs: { title: "title", choices: "choices", selected: "selected", allowSearch: "allowSearch", maxRows: "maxRows", searchInputValue: "searchInputValue" }, outputs: { selectValues: "selectValues" }, viewQueries: [{ propertyName: "overlayOrigin", first: true, predicate: ["overlayOrigin"], descendants: true }, { propertyName: "overlay", first: true, predicate: CdkConnectedOverlay, descendants: true }, { propertyName: "overlayContainer", first: true, predicate: ["overlayContainer"], descendants: true, read: ElementRef }, { propertyName: "searchFieldInput", first: true, predicate: ["searchFieldInput"], descendants: true }, { propertyName: "checkboxes", predicate: ["checkBox"], descendants: true, read: ElementRef }], ngImport: i0, template: "<gn-ui-button\n type=\"outline\"\n extraClass=\"bg-background w-full !p-[8px] !pl-[16px]\"\n [title]=\"title\"\n [attr.aria-owns]=\"id\"\n (buttonClick)=\"openOverlay()\"\n (keydown)=\"handleTriggerKeydown($event)\"\n cdkOverlayOrigin\n #overlayOrigin=\"cdkOverlayOrigin\"\n>\n <div class=\"grow flex items-center mr-2 gap-2 overflow-hidden\">\n <div class=\"text-left font-medium truncate py-1\">\n {{ title }}\n </div>\n <div\n *ngIf=\"hasSelectedChoices\"\n class=\"shrink-0 rounded-full text-primary bg-primary-opacity-25 text-white font-bold text-[12px] w-5 h-5 flex items-center justify-center mr-1 selected-count\"\n >\n {{ selected.length }}\n </div>\n </div>\n <button class=\"h-6 w-6\" data-cy=\"clearSelection\">\n <mat-icon\n class=\"material-symbols-outlined shrink-0 opacity-40 mr-1.5 hover:opacity-80 transition-colors clear-btn\"\n *ngIf=\"hasSelectedChoices && !overlayOpen\"\n (click)=\"clearSelection($event)\"\n >\n close\n </mat-icon>\n </button>\n <mat-icon class=\"material-symbols-outlined shrink-0 opacity-40\">\n <ng-container *ngIf=\"overlayOpen\">expand_less</ng-container>\n <ng-container *ngIf=\"!overlayOpen\">expand_more</ng-container>\n </mat-icon>\n</gn-ui-button>\n\n<ng-template\n cdkConnectedOverlay\n cdkConnectedOverlayHasBackdrop\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n [cdkConnectedOverlayOrigin]=\"overlayOrigin\"\n [cdkConnectedOverlayOpen]=\"overlayOpen\"\n [cdkConnectedOverlayPositions]=\"overlayPositions\"\n [cdkConnectedOverlayScrollStrategy]=\"scrollStrategy\"\n [cdkConnectedOverlayFlexibleDimensions]=\"true\"\n (overlayOutsideClick)=\"closeOverlay()\"\n (detach)=\"closeOverlay()\"\n>\n <div\n class=\"bg-white border border-gray-300 rounded shadow-lg py-2 w-full overflow-x-hidden overflow-y-auto overlay-container\"\n [style.max-height]=\"overlayMaxHeight\"\n [style.width]=\"overlayWidth\"\n role=\"listbox\"\n tabindex=\"-1\"\n [attr.id]=\"id\"\n [attr.aria-multiselectable]=\"true\"\n [attr.aria-label]=\"title\"\n (keydown)=\"handleOverlayKeydown($event)\"\n #overlayContainer\n >\n <div\n class=\"border border-gray-300 rounded mb-2 mx-2 min-h-[44px] flex flex-row flex-wrap p-2 focus-within:rounded focus-within:border-2 focus-within:border-primary\"\n >\n <button\n type=\"button\"\n *ngFor=\"let selected of selectedChoices\"\n [title]=\"selected.label\"\n class=\"max-w-full bg-main text-white rounded pr-[7px] flex gap-1 items-center opacity-70 hover:opacity-100 focus:opacity-100 transition-opacity mb-1\"\n (click)=\"select(selected, false)\"\n >\n <div class=\"text-sm truncate leading-[26px] px-2\">\n {{ selected.label }}\n </div>\n <div\n class=\"flex items-center justify-center rounded-full bg-white text-main h-[13px] w-[13px] pt-px -mt-px shrink-0\"\n >\n <mat-icon\n class=\"material-symbols-outlined !h-[12px] !w-[12px] text-[12px]\"\n >\n close</mat-icon\n >\n </div>\n </button>\n\n <div *ngIf=\"allowSearch\" class=\"w-[50%] relative grow shrink\">\n <input\n #searchFieldInput\n class=\"w-full px-2 truncate text-[14px] h-full overlaySearchInput focus:outline-none\"\n [(ngModel)]=\"searchInputValue\"\n [placeholder]=\"'multiselect.filter.placeholder' | translate\"\n />\n <button\n *ngIf=\"!!searchInputValue\"\n class=\"absolute top-1/2 -translate-y-1/2 right-0 px-[7px] leading-tight clear-search-input mr-2\"\n (click)=\"clearSearchInputValue($event)\"\n >\n <mat-icon\n class=\"material-symbols-outlined !h-[10px] !w-[12px] text-[12px]\"\n >\n close\n </mat-icon>\n </button>\n </div>\n </div>\n\n <label\n *ngFor=\"let choice of filteredChoicesByText\"\n [title]=\"choice.label\"\n class=\"flex px-5 py-1 w-full text-gray-900 cursor-pointer hover:text-primary-darkest hover:bg-gray-50 focus-within:text-primary-darkest focus-within:bg-gray-50 transition-colors\"\n >\n <input\n class=\"w-[18px] h-[18px] align-text-top shrink-0\"\n type=\"checkbox\"\n #checkBox\n [checked]=\"isSelected(choice)\"\n (change)=\"select(choice, checkBox.checked)\"\n />\n <span class=\"ml-[8px] text-[14px] truncate\">\n {{ choice.label }}\n </span>\n </label>\n </div>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "directive", type: i1$3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$
|
|
25323
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DropdownMultiselectComponent, deps: [{ token: i1$6.ScrollStrategyOptions }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
25324
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DropdownMultiselectComponent, selector: "gn-ui-dropdown-multiselect", inputs: { title: "title", choices: "choices", selected: "selected", allowSearch: "allowSearch", maxRows: "maxRows", searchInputValue: "searchInputValue" }, outputs: { selectValues: "selectValues" }, viewQueries: [{ propertyName: "overlayOrigin", first: true, predicate: ["overlayOrigin"], descendants: true }, { propertyName: "overlay", first: true, predicate: CdkConnectedOverlay, descendants: true }, { propertyName: "overlayContainer", first: true, predicate: ["overlayContainer"], descendants: true, read: ElementRef }, { propertyName: "searchFieldInput", first: true, predicate: ["searchFieldInput"], descendants: true }, { propertyName: "checkboxes", predicate: ["checkBox"], descendants: true, read: ElementRef }], ngImport: i0, template: "<gn-ui-button\n type=\"outline\"\n extraClass=\"bg-background w-full !p-[8px] !pl-[16px]\"\n [title]=\"title\"\n [attr.aria-owns]=\"id\"\n (buttonClick)=\"openOverlay()\"\n (keydown)=\"handleTriggerKeydown($event)\"\n cdkOverlayOrigin\n #overlayOrigin=\"cdkOverlayOrigin\"\n>\n <div class=\"grow flex items-center mr-2 gap-2 overflow-hidden\">\n <div class=\"text-left font-medium truncate py-1\">\n {{ title }}\n </div>\n <div\n *ngIf=\"hasSelectedChoices\"\n class=\"shrink-0 rounded-full text-primary bg-primary-opacity-25 text-white font-bold text-[12px] w-5 h-5 flex items-center justify-center mr-1 selected-count\"\n >\n {{ selected.length }}\n </div>\n </div>\n <button class=\"h-6 w-6\" data-cy=\"clearSelection\">\n <mat-icon\n class=\"material-symbols-outlined shrink-0 opacity-40 mr-1.5 hover:opacity-80 transition-colors clear-btn\"\n *ngIf=\"hasSelectedChoices && !overlayOpen\"\n (click)=\"clearSelection($event)\"\n >\n close\n </mat-icon>\n </button>\n <mat-icon class=\"material-symbols-outlined shrink-0 opacity-40\">\n <ng-container *ngIf=\"overlayOpen\">expand_less</ng-container>\n <ng-container *ngIf=\"!overlayOpen\">expand_more</ng-container>\n </mat-icon>\n</gn-ui-button>\n\n<ng-template\n cdkConnectedOverlay\n cdkConnectedOverlayHasBackdrop\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n [cdkConnectedOverlayOrigin]=\"overlayOrigin\"\n [cdkConnectedOverlayOpen]=\"overlayOpen\"\n [cdkConnectedOverlayPositions]=\"overlayPositions\"\n [cdkConnectedOverlayScrollStrategy]=\"scrollStrategy\"\n [cdkConnectedOverlayFlexibleDimensions]=\"true\"\n (overlayOutsideClick)=\"closeOverlay()\"\n (detach)=\"closeOverlay()\"\n>\n <div\n class=\"bg-white border border-gray-300 rounded shadow-lg py-2 w-full overflow-x-hidden overflow-y-auto overlay-container\"\n [style.max-height]=\"overlayMaxHeight\"\n [style.width]=\"overlayWidth\"\n role=\"listbox\"\n tabindex=\"-1\"\n [attr.id]=\"id\"\n [attr.aria-multiselectable]=\"true\"\n [attr.aria-label]=\"title\"\n (keydown)=\"handleOverlayKeydown($event)\"\n #overlayContainer\n >\n <div\n class=\"border border-gray-300 rounded mb-2 mx-2 min-h-[44px] flex flex-row flex-wrap p-2 focus-within:rounded focus-within:border-2 focus-within:border-primary\"\n >\n <button\n type=\"button\"\n *ngFor=\"let selected of selectedChoices\"\n [title]=\"selected.label\"\n class=\"max-w-full bg-main text-white rounded pr-[7px] flex gap-1 items-center opacity-70 hover:opacity-100 focus:opacity-100 transition-opacity mb-1\"\n (click)=\"select(selected, false)\"\n >\n <div class=\"text-sm truncate leading-[26px] px-2\">\n {{ selected.label }}\n </div>\n <div\n class=\"flex items-center justify-center rounded-full bg-white text-main h-[13px] w-[13px] pt-px -mt-px shrink-0\"\n >\n <mat-icon\n class=\"material-symbols-outlined !h-[12px] !w-[12px] text-[12px]\"\n >\n close</mat-icon\n >\n </div>\n </button>\n\n <div *ngIf=\"allowSearch\" class=\"w-[50%] relative grow shrink\">\n <input\n #searchFieldInput\n class=\"w-full px-2 truncate text-[14px] h-full overlaySearchInput focus:outline-none\"\n [(ngModel)]=\"searchInputValue\"\n [placeholder]=\"'multiselect.filter.placeholder' | translate\"\n />\n <button\n *ngIf=\"!!searchInputValue\"\n class=\"absolute top-1/2 -translate-y-1/2 right-0 px-[7px] leading-tight clear-search-input mr-2\"\n (click)=\"clearSearchInputValue($event)\"\n >\n <mat-icon\n class=\"material-symbols-outlined !h-[10px] !w-[12px] text-[12px]\"\n >\n close\n </mat-icon>\n </button>\n </div>\n </div>\n\n <label\n *ngFor=\"let choice of filteredChoicesByText\"\n [title]=\"choice.label\"\n class=\"flex px-5 py-1 w-full text-gray-900 cursor-pointer hover:text-primary-darkest hover:bg-gray-50 focus-within:text-primary-darkest focus-within:bg-gray-50 transition-colors\"\n >\n <input\n class=\"w-[18px] h-[18px] align-text-top shrink-0\"\n type=\"checkbox\"\n #checkBox\n [checked]=\"isSelected(choice)\"\n (change)=\"select(choice, checkBox.checked)\"\n />\n <span class=\"ml-[8px] text-[14px] truncate\">\n {{ choice.label }}\n </span>\n </label>\n </div>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "directive", type: i1$3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i1$6.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: i1$6.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
24827
25325
|
}
|
|
24828
25326
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DropdownMultiselectComponent, decorators: [{
|
|
24829
25327
|
type: Component,
|
|
24830
25328
|
args: [{ selector: 'gn-ui-dropdown-multiselect', changeDetection: ChangeDetectionStrategy.OnPush, template: "<gn-ui-button\n type=\"outline\"\n extraClass=\"bg-background w-full !p-[8px] !pl-[16px]\"\n [title]=\"title\"\n [attr.aria-owns]=\"id\"\n (buttonClick)=\"openOverlay()\"\n (keydown)=\"handleTriggerKeydown($event)\"\n cdkOverlayOrigin\n #overlayOrigin=\"cdkOverlayOrigin\"\n>\n <div class=\"grow flex items-center mr-2 gap-2 overflow-hidden\">\n <div class=\"text-left font-medium truncate py-1\">\n {{ title }}\n </div>\n <div\n *ngIf=\"hasSelectedChoices\"\n class=\"shrink-0 rounded-full text-primary bg-primary-opacity-25 text-white font-bold text-[12px] w-5 h-5 flex items-center justify-center mr-1 selected-count\"\n >\n {{ selected.length }}\n </div>\n </div>\n <button class=\"h-6 w-6\" data-cy=\"clearSelection\">\n <mat-icon\n class=\"material-symbols-outlined shrink-0 opacity-40 mr-1.5 hover:opacity-80 transition-colors clear-btn\"\n *ngIf=\"hasSelectedChoices && !overlayOpen\"\n (click)=\"clearSelection($event)\"\n >\n close\n </mat-icon>\n </button>\n <mat-icon class=\"material-symbols-outlined shrink-0 opacity-40\">\n <ng-container *ngIf=\"overlayOpen\">expand_less</ng-container>\n <ng-container *ngIf=\"!overlayOpen\">expand_more</ng-container>\n </mat-icon>\n</gn-ui-button>\n\n<ng-template\n cdkConnectedOverlay\n cdkConnectedOverlayHasBackdrop\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n [cdkConnectedOverlayOrigin]=\"overlayOrigin\"\n [cdkConnectedOverlayOpen]=\"overlayOpen\"\n [cdkConnectedOverlayPositions]=\"overlayPositions\"\n [cdkConnectedOverlayScrollStrategy]=\"scrollStrategy\"\n [cdkConnectedOverlayFlexibleDimensions]=\"true\"\n (overlayOutsideClick)=\"closeOverlay()\"\n (detach)=\"closeOverlay()\"\n>\n <div\n class=\"bg-white border border-gray-300 rounded shadow-lg py-2 w-full overflow-x-hidden overflow-y-auto overlay-container\"\n [style.max-height]=\"overlayMaxHeight\"\n [style.width]=\"overlayWidth\"\n role=\"listbox\"\n tabindex=\"-1\"\n [attr.id]=\"id\"\n [attr.aria-multiselectable]=\"true\"\n [attr.aria-label]=\"title\"\n (keydown)=\"handleOverlayKeydown($event)\"\n #overlayContainer\n >\n <div\n class=\"border border-gray-300 rounded mb-2 mx-2 min-h-[44px] flex flex-row flex-wrap p-2 focus-within:rounded focus-within:border-2 focus-within:border-primary\"\n >\n <button\n type=\"button\"\n *ngFor=\"let selected of selectedChoices\"\n [title]=\"selected.label\"\n class=\"max-w-full bg-main text-white rounded pr-[7px] flex gap-1 items-center opacity-70 hover:opacity-100 focus:opacity-100 transition-opacity mb-1\"\n (click)=\"select(selected, false)\"\n >\n <div class=\"text-sm truncate leading-[26px] px-2\">\n {{ selected.label }}\n </div>\n <div\n class=\"flex items-center justify-center rounded-full bg-white text-main h-[13px] w-[13px] pt-px -mt-px shrink-0\"\n >\n <mat-icon\n class=\"material-symbols-outlined !h-[12px] !w-[12px] text-[12px]\"\n >\n close</mat-icon\n >\n </div>\n </button>\n\n <div *ngIf=\"allowSearch\" class=\"w-[50%] relative grow shrink\">\n <input\n #searchFieldInput\n class=\"w-full px-2 truncate text-[14px] h-full overlaySearchInput focus:outline-none\"\n [(ngModel)]=\"searchInputValue\"\n [placeholder]=\"'multiselect.filter.placeholder' | translate\"\n />\n <button\n *ngIf=\"!!searchInputValue\"\n class=\"absolute top-1/2 -translate-y-1/2 right-0 px-[7px] leading-tight clear-search-input mr-2\"\n (click)=\"clearSearchInputValue($event)\"\n >\n <mat-icon\n class=\"material-symbols-outlined !h-[10px] !w-[12px] text-[12px]\"\n >\n close\n </mat-icon>\n </button>\n </div>\n </div>\n\n <label\n *ngFor=\"let choice of filteredChoicesByText\"\n [title]=\"choice.label\"\n class=\"flex px-5 py-1 w-full text-gray-900 cursor-pointer hover:text-primary-darkest hover:bg-gray-50 focus-within:text-primary-darkest focus-within:bg-gray-50 transition-colors\"\n >\n <input\n class=\"w-[18px] h-[18px] align-text-top shrink-0\"\n type=\"checkbox\"\n #checkBox\n [checked]=\"isSelected(choice)\"\n (change)=\"select(choice, checkBox.checked)\"\n />\n <span class=\"ml-[8px] text-[14px] truncate\">\n {{ choice.label }}\n </span>\n </label>\n </div>\n</ng-template>\n" }]
|
|
24831
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
25329
|
+
}], ctorParameters: function () { return [{ type: i1$6.ScrollStrategyOptions }]; }, propDecorators: { title: [{
|
|
24832
25330
|
type: Input
|
|
24833
25331
|
}], choices: [{
|
|
24834
25332
|
type: Input
|
|
@@ -24992,7 +25490,7 @@ class DropdownSelectorComponent {
|
|
|
24992
25490
|
}
|
|
24993
25491
|
}
|
|
24994
25492
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DropdownSelectorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
24995
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DropdownSelectorComponent, isStandalone: true, selector: "gn-ui-dropdown-selector", inputs: { title: "title", showTitle: "showTitle", ariaName: "ariaName", choices: "choices", selected: "selected", maxRows: "maxRows", extraBtnClass: "extraBtnClass", minWidth: "minWidth", disabled: "disabled" }, outputs: { selectValue: "selectValue" }, viewQueries: [{ propertyName: "overlayOrigin", first: true, predicate: ["overlayOrigin"], descendants: true }, { propertyName: "overlay", first: true, predicate: CdkConnectedOverlay, descendants: true }, { propertyName: "choiceInputs", predicate: ["choiceInputs"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div class=\"flex flex-col sm:flex-row sm:items-center relative w-full\">\n <span\n *ngIf=\"showTitle\"\n class=\"tracking-wide text-sm mb-2 sm:mb-0 sm:mr-2 whitespace-nowrap\"\n [attr.for]=\"id\"\n >\n {{ title }}\n </span>\n <gn-ui-button\n type=\"outline\"\n class=\"grow min-w-0\"\n extraClass=\"bg-background !p-[8px] !pl-[16px] flex flex-row w-full {{\n extraBtnClass\n }}\"\n [title]=\"title\"\n [attr.aria-owns]=\"id\"\n (buttonClick)=\"openOverlay()\"\n cdkOverlayOrigin\n #overlayOrigin=\"cdkOverlayOrigin\"\n (keydown)=\"handleTriggerKeydown($event)\"\n [disabled]=\"disabled\"\n >\n <div class=\"grow font-medium truncate py-1 mr-2 text-left\">\n {{ getChoiceLabel() | translate }}\n </div>\n <mat-icon class=\"material-symbols-outlined shrink-0 opacity-40\">\n <ng-container *ngIf=\"overlayOpen\">expand_less</ng-container>\n <ng-container *ngIf=\"!overlayOpen\">expand_more</ng-container>\n </mat-icon>\n </gn-ui-button>\n</div>\n\n<ng-template\n cdkConnectedOverlay\n cdkConnectedOverlayHasBackdrop\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n [cdkConnectedOverlayOrigin]=\"overlayOrigin\"\n [cdkConnectedOverlayOpen]=\"overlayOpen\"\n [cdkConnectedOverlayPositions]=\"overlayPositions\"\n [cdkConnectedOverlayFlexibleDimensions]=\"true\"\n (overlayOutsideClick)=\"closeOverlay()\"\n (detach)=\"closeOverlay()\"\n>\n <div\n class=\"bg-white border border-gray-300 rounded shadow-lg py-2 w-full overflow-x-hidden overflow-y-auto overlay-container\"\n [style.max-height]=\"overlayMaxHeight\"\n [style.min-width]=\"overlayWidth\"\n role=\"listbox\"\n tabindex=\"-1\"\n [attr.id]=\"id\"\n [attr.aria-multiselectable]=\"true\"\n [attr.aria-label]=\"title\"\n (keydown)=\"handleOverlayKeydown($event)\"\n >\n <button\n #choiceInputs\n type=\"button\"\n *ngFor=\"let choice of choices\"\n [title]=\"choice.label | translate\"\n class=\"flex px-5 py-1 w-full text-start cursor-pointer transition-colors\"\n [ngClass]=\"\n isSelected(choice)\n ? 'text-white bg-primary hover:text-white hover:bg-primary-darker focus:text-white focus:bg-primary-darker'\n : 'text-gray-900 hover:text-primary-darkest hover:bg-gray-50 focus:text-primary-darkest focus:bg-gray-50'\n \"\n (click)=\"onSelectValue(choice)\"\n (keydown)=\"selectIfEnter($event, choice)\"\n [attr.data-cy-value]=\"choice.value.toString()\"\n [attr.data-cy-active]=\"isSelected(choice) ? 'true' : undefined\"\n >\n <span class=\"text-[14px]\">\n {{ choice.label | translate }}\n </span>\n </button>\n </div>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "ngmodule", type: OverlayModule }, { kind: "directive", type: i1$
|
|
25493
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DropdownSelectorComponent, isStandalone: true, selector: "gn-ui-dropdown-selector", inputs: { title: "title", showTitle: "showTitle", ariaName: "ariaName", choices: "choices", selected: "selected", maxRows: "maxRows", extraBtnClass: "extraBtnClass", minWidth: "minWidth", disabled: "disabled" }, outputs: { selectValue: "selectValue" }, viewQueries: [{ propertyName: "overlayOrigin", first: true, predicate: ["overlayOrigin"], descendants: true }, { propertyName: "overlay", first: true, predicate: CdkConnectedOverlay, descendants: true }, { propertyName: "choiceInputs", predicate: ["choiceInputs"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div class=\"flex flex-col sm:flex-row sm:items-center relative w-full\">\n <span\n *ngIf=\"showTitle\"\n class=\"tracking-wide text-sm mb-2 sm:mb-0 sm:mr-2 whitespace-nowrap\"\n [attr.for]=\"id\"\n >\n {{ title }}\n </span>\n <gn-ui-button\n type=\"outline\"\n class=\"grow min-w-0\"\n extraClass=\"bg-background !p-[8px] !pl-[16px] flex flex-row w-full {{\n extraBtnClass\n }}\"\n [title]=\"title\"\n [attr.aria-owns]=\"id\"\n (buttonClick)=\"openOverlay()\"\n cdkOverlayOrigin\n #overlayOrigin=\"cdkOverlayOrigin\"\n (keydown)=\"handleTriggerKeydown($event)\"\n [disabled]=\"disabled\"\n >\n <div class=\"grow font-medium truncate py-1 mr-2 text-left\">\n {{ getChoiceLabel() | translate }}\n </div>\n <mat-icon class=\"material-symbols-outlined shrink-0 opacity-40\">\n <ng-container *ngIf=\"overlayOpen\">expand_less</ng-container>\n <ng-container *ngIf=\"!overlayOpen\">expand_more</ng-container>\n </mat-icon>\n </gn-ui-button>\n</div>\n\n<ng-template\n cdkConnectedOverlay\n cdkConnectedOverlayHasBackdrop\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n [cdkConnectedOverlayOrigin]=\"overlayOrigin\"\n [cdkConnectedOverlayOpen]=\"overlayOpen\"\n [cdkConnectedOverlayPositions]=\"overlayPositions\"\n [cdkConnectedOverlayFlexibleDimensions]=\"true\"\n (overlayOutsideClick)=\"closeOverlay()\"\n (detach)=\"closeOverlay()\"\n>\n <div\n class=\"bg-white border border-gray-300 rounded shadow-lg py-2 w-full overflow-x-hidden overflow-y-auto overlay-container\"\n [style.max-height]=\"overlayMaxHeight\"\n [style.min-width]=\"overlayWidth\"\n role=\"listbox\"\n tabindex=\"-1\"\n [attr.id]=\"id\"\n [attr.aria-multiselectable]=\"true\"\n [attr.aria-label]=\"title\"\n (keydown)=\"handleOverlayKeydown($event)\"\n >\n <button\n #choiceInputs\n type=\"button\"\n *ngFor=\"let choice of choices\"\n [title]=\"choice.label | translate\"\n class=\"flex px-5 py-1 w-full text-start cursor-pointer transition-colors\"\n [ngClass]=\"\n isSelected(choice)\n ? 'text-white bg-primary hover:text-white hover:bg-primary-darker focus:text-white focus:bg-primary-darker'\n : 'text-gray-900 hover:text-primary-darkest hover:bg-gray-50 focus:text-primary-darkest focus:bg-gray-50'\n \"\n (click)=\"onSelectValue(choice)\"\n (keydown)=\"selectIfEnter($event, choice)\"\n [attr.data-cy-value]=\"choice.value.toString()\"\n [attr.data-cy-active]=\"isSelected(choice) ? 'true' : undefined\"\n >\n <span class=\"text-[14px]\">\n {{ choice.label | translate }}\n </span>\n </button>\n </div>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "ngmodule", type: OverlayModule }, { kind: "directive", type: i1$6.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: i1$6.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
24996
25494
|
}
|
|
24997
25495
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DropdownSelectorComponent, decorators: [{
|
|
24998
25496
|
type: Component,
|
|
@@ -25270,203 +25768,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
25270
25768
|
args: ['input']
|
|
25271
25769
|
}] } });
|
|
25272
25770
|
|
|
25273
|
-
class ColorScaleComponent {
|
|
25274
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColorScaleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
25275
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ColorScaleComponent, selector: "gn-ui-color-scale", ngImport: i0, template: "<div class=\"flex flex-row items-center\">\n <div class=\"text-xs text-gray-700 font-bold m-2 w-32 text-right\">primary</div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-primary-black\"\n title=\"primary-black\"\n ></div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-primary-darkest\"\n title=\"primary-darkest\"\n ></div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-primary-darker\"\n title=\"primary-darker\"\n ></div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-primary border-2 border-primary-darkest\"\n title=\"primary\"\n ></div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-primary-lighter\"\n title=\"primary-lighter\"\n ></div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-primary-lightest\"\n title=\"primary-lightest\"\n ></div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-primary-white\"\n title=\"primary-white\"\n ></div>\n</div>\n<div class=\"flex flex-row\">\n <div class=\"text-xs text-gray-700 font-bold m-2 w-32 text-right\">\n secondary\n </div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-secondary-black\"\n title=\"secondary-black\"\n ></div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-secondary-darkest\"\n title=\"secondary-darkest\"\n ></div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-secondary-darker\"\n title=\"secondary-darker\"\n ></div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-secondary border-2 border-secondary-darkest\"\n title=\"secondary\"\n ></div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-secondary-lighter\"\n title=\"secondary-lighter\"\n ></div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-secondary-lightest\"\n title=\"secondary-lightest\"\n ></div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-secondary-white\"\n title=\"secondary-white\"\n ></div>\n</div>\n<div class=\"flex flex-row\">\n <div class=\"text-xs text-gray-700 font-bold m-2 w-32 text-right\">main</div>\n <div class=\"shadow-md rounded w-6 h-6 m-2 bg-main\" title=\"main\"></div>\n <div class=\"shadow-md rounded w-6 h-6 m-2 bg-gray-900\" title=\"gray-900\"></div>\n <div class=\"shadow-md rounded w-6 h-6 m-2 bg-gray-800\" title=\"gray-800\"></div>\n <div class=\"shadow-md rounded w-6 h-6 m-2 bg-gray-700\" title=\"gray-700\"></div>\n <div class=\"shadow-md rounded w-6 h-6 m-2 bg-gray-600\" title=\"gray-600\"></div>\n <div class=\"shadow-md rounded w-6 h-6 m-2 bg-gray-500\" title=\"gray-500\"></div>\n <div class=\"shadow-md rounded w-6 h-6 m-2 bg-gray-400\" title=\"gray-400\"></div>\n <div class=\"shadow-md rounded w-6 h-6 m-2 bg-gray-300\" title=\"gray-300\"></div>\n <div class=\"shadow-md rounded w-6 h-6 m-2 bg-gray-200\" title=\"gray-200\"></div>\n <div class=\"shadow-md rounded w-6 h-6 m-2 bg-gray-100\" title=\"gray-100\"></div>\n <div class=\"shadow-md rounded w-6 h-6 m-2 bg-gray-50\" title=\"gray-50\"></div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-background\"\n title=\"background\"\n ></div>\n <div class=\"text-xs text-gray-700 font-bold m-2 w-32\">background</div>\n</div>\n", styles: [""] }); }
|
|
25276
|
-
}
|
|
25277
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColorScaleComponent, decorators: [{
|
|
25278
|
-
type: Component,
|
|
25279
|
-
args: [{ selector: 'gn-ui-color-scale', template: "<div class=\"flex flex-row items-center\">\n <div class=\"text-xs text-gray-700 font-bold m-2 w-32 text-right\">primary</div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-primary-black\"\n title=\"primary-black\"\n ></div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-primary-darkest\"\n title=\"primary-darkest\"\n ></div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-primary-darker\"\n title=\"primary-darker\"\n ></div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-primary border-2 border-primary-darkest\"\n title=\"primary\"\n ></div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-primary-lighter\"\n title=\"primary-lighter\"\n ></div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-primary-lightest\"\n title=\"primary-lightest\"\n ></div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-primary-white\"\n title=\"primary-white\"\n ></div>\n</div>\n<div class=\"flex flex-row\">\n <div class=\"text-xs text-gray-700 font-bold m-2 w-32 text-right\">\n secondary\n </div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-secondary-black\"\n title=\"secondary-black\"\n ></div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-secondary-darkest\"\n title=\"secondary-darkest\"\n ></div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-secondary-darker\"\n title=\"secondary-darker\"\n ></div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-secondary border-2 border-secondary-darkest\"\n title=\"secondary\"\n ></div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-secondary-lighter\"\n title=\"secondary-lighter\"\n ></div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-secondary-lightest\"\n title=\"secondary-lightest\"\n ></div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-secondary-white\"\n title=\"secondary-white\"\n ></div>\n</div>\n<div class=\"flex flex-row\">\n <div class=\"text-xs text-gray-700 font-bold m-2 w-32 text-right\">main</div>\n <div class=\"shadow-md rounded w-6 h-6 m-2 bg-main\" title=\"main\"></div>\n <div class=\"shadow-md rounded w-6 h-6 m-2 bg-gray-900\" title=\"gray-900\"></div>\n <div class=\"shadow-md rounded w-6 h-6 m-2 bg-gray-800\" title=\"gray-800\"></div>\n <div class=\"shadow-md rounded w-6 h-6 m-2 bg-gray-700\" title=\"gray-700\"></div>\n <div class=\"shadow-md rounded w-6 h-6 m-2 bg-gray-600\" title=\"gray-600\"></div>\n <div class=\"shadow-md rounded w-6 h-6 m-2 bg-gray-500\" title=\"gray-500\"></div>\n <div class=\"shadow-md rounded w-6 h-6 m-2 bg-gray-400\" title=\"gray-400\"></div>\n <div class=\"shadow-md rounded w-6 h-6 m-2 bg-gray-300\" title=\"gray-300\"></div>\n <div class=\"shadow-md rounded w-6 h-6 m-2 bg-gray-200\" title=\"gray-200\"></div>\n <div class=\"shadow-md rounded w-6 h-6 m-2 bg-gray-100\" title=\"gray-100\"></div>\n <div class=\"shadow-md rounded w-6 h-6 m-2 bg-gray-50\" title=\"gray-50\"></div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-background\"\n title=\"background\"\n ></div>\n <div class=\"text-xs text-gray-700 font-bold m-2 w-32\">background</div>\n</div>\n" }]
|
|
25280
|
-
}] });
|
|
25281
|
-
|
|
25282
|
-
class ProgressBarComponent {
|
|
25283
|
-
constructor() {
|
|
25284
|
-
this.value = 0;
|
|
25285
|
-
this.type = 'default';
|
|
25286
|
-
}
|
|
25287
|
-
get progress() {
|
|
25288
|
-
return this.value > 0 ? (this.value < 100 ? this.value : 100) : 0;
|
|
25289
|
-
}
|
|
25290
|
-
get color() {
|
|
25291
|
-
switch (this.type) {
|
|
25292
|
-
case 'default':
|
|
25293
|
-
return {
|
|
25294
|
-
outerBar: 'bg-gray-200',
|
|
25295
|
-
innerBar: 'bg-gray-100',
|
|
25296
|
-
text: 'text-gray-900',
|
|
25297
|
-
};
|
|
25298
|
-
case 'primary':
|
|
25299
|
-
return {
|
|
25300
|
-
outerBar: 'bg-primary',
|
|
25301
|
-
innerBar: 'bg-primary-lighter',
|
|
25302
|
-
text: 'text-white',
|
|
25303
|
-
};
|
|
25304
|
-
case 'secondary':
|
|
25305
|
-
return {
|
|
25306
|
-
outerBar: 'bg-secondary',
|
|
25307
|
-
innerBar: 'bg-secondary-lighter',
|
|
25308
|
-
text: 'text-white',
|
|
25309
|
-
};
|
|
25310
|
-
}
|
|
25311
|
-
}
|
|
25312
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ProgressBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
25313
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ProgressBarComponent, selector: "gn-ui-progress-bar", inputs: { value: "value", type: "type" }, ngImport: i0, template: "<div class=\"flex h-full {{ color.outerBar }} rounded-t-lg rounded-b-lg\">\n <div\n [style.width.%]=\"progress\"\n class=\"flex {{\n color.innerBar\n }} my-1 mx-1 transition-width duration-500 ease-in-out rounded-t-md rounded-b-md shadow-xl\"\n >\n <div class=\"flex items-center pl-2 py-1 {{ color.text }} font-bold text-4\">\n {{ progress }}%\n </div>\n </div>\n</div>\n", styles: [".font-bold{font-weight:var(--progress-bar-font-weight, \"bold\")}\n"] }); }
|
|
25314
|
-
}
|
|
25315
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ProgressBarComponent, decorators: [{
|
|
25316
|
-
type: Component,
|
|
25317
|
-
args: [{ selector: 'gn-ui-progress-bar', template: "<div class=\"flex h-full {{ color.outerBar }} rounded-t-lg rounded-b-lg\">\n <div\n [style.width.%]=\"progress\"\n class=\"flex {{\n color.innerBar\n }} my-1 mx-1 transition-width duration-500 ease-in-out rounded-t-md rounded-b-md shadow-xl\"\n >\n <div class=\"flex items-center pl-2 py-1 {{ color.text }} font-bold text-4\">\n {{ progress }}%\n </div>\n </div>\n</div>\n", styles: [".font-bold{font-weight:var(--progress-bar-font-weight, \"bold\")}\n"] }]
|
|
25318
|
-
}], propDecorators: { value: [{
|
|
25319
|
-
type: Input
|
|
25320
|
-
}], type: [{
|
|
25321
|
-
type: Input
|
|
25322
|
-
}] } });
|
|
25323
|
-
|
|
25324
|
-
class StepBarComponent {
|
|
25325
|
-
constructor(cdr) {
|
|
25326
|
-
this.cdr = cdr;
|
|
25327
|
-
this.currentStep = 1;
|
|
25328
|
-
this.type = 'default';
|
|
25329
|
-
}
|
|
25330
|
-
get stepCounter() {
|
|
25331
|
-
return new Array(this.steps);
|
|
25332
|
-
}
|
|
25333
|
-
get color() {
|
|
25334
|
-
switch (this.type) {
|
|
25335
|
-
case 'default':
|
|
25336
|
-
return {
|
|
25337
|
-
outerBar: 'bg-gray-200',
|
|
25338
|
-
innerBar: 'bg-gray-100',
|
|
25339
|
-
};
|
|
25340
|
-
case 'primary':
|
|
25341
|
-
return {
|
|
25342
|
-
outerBar: 'bg-primary',
|
|
25343
|
-
innerBar: 'bg-primary-lighter',
|
|
25344
|
-
};
|
|
25345
|
-
case 'secondary':
|
|
25346
|
-
return {
|
|
25347
|
-
outerBar: 'bg-secondary',
|
|
25348
|
-
innerBar: 'bg-secondary-lighter',
|
|
25349
|
-
};
|
|
25350
|
-
}
|
|
25351
|
-
}
|
|
25352
|
-
getCircleColor(index) {
|
|
25353
|
-
return index === this.currentStep
|
|
25354
|
-
? 'bg-black'
|
|
25355
|
-
: index < this.currentStep
|
|
25356
|
-
? 'bg-white'
|
|
25357
|
-
: this.color.innerBar;
|
|
25358
|
-
}
|
|
25359
|
-
getChecked(index) {
|
|
25360
|
-
return index + 1 < this.currentStep;
|
|
25361
|
-
}
|
|
25362
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: StepBarComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
25363
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: StepBarComponent, selector: "gn-ui-step-bar", inputs: { steps: "steps", currentStep: "currentStep", type: "type" }, ngImport: i0, template: "<div class=\"relative flex flex-col justify-center\">\n <div class=\"flex justify-between ml-16 mr-16 z-10 circle-steps\">\n <div\n *ngFor=\"let step of stepCounter; let i = index\"\n class=\"shadow-md rounded-full h-6 w-6 {{ getCircleColor(i + 1) }}\"\n >\n <span class=\"icon-check pl-1\" *ngIf=\"getChecked(i)\"></span>\n </div>\n </div>\n <div\n class=\"absolute rounded-lg right-0 w-full {{ color.outerBar }} h-2 z-0\"\n ></div>\n</div>\n", styles: [".icon-check{color:var(--color-primary)}\n"], dependencies: [{ kind: "directive", type: i1$3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
|
|
25364
|
-
}
|
|
25365
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: StepBarComponent, decorators: [{
|
|
25366
|
-
type: Component,
|
|
25367
|
-
args: [{ selector: 'gn-ui-step-bar', template: "<div class=\"relative flex flex-col justify-center\">\n <div class=\"flex justify-between ml-16 mr-16 z-10 circle-steps\">\n <div\n *ngFor=\"let step of stepCounter; let i = index\"\n class=\"shadow-md rounded-full h-6 w-6 {{ getCircleColor(i + 1) }}\"\n >\n <span class=\"icon-check pl-1\" *ngIf=\"getChecked(i)\"></span>\n </div>\n </div>\n <div\n class=\"absolute rounded-lg right-0 w-full {{ color.outerBar }} h-2 z-0\"\n ></div>\n</div>\n", styles: [".icon-check{color:var(--color-primary)}\n"] }]
|
|
25368
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { steps: [{
|
|
25369
|
-
type: Input
|
|
25370
|
-
}], currentStep: [{
|
|
25371
|
-
type: Input
|
|
25372
|
-
}], type: [{
|
|
25373
|
-
type: Input
|
|
25374
|
-
}] } });
|
|
25375
|
-
|
|
25376
|
-
class LoadingMaskComponent {
|
|
25377
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LoadingMaskComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
25378
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: LoadingMaskComponent, selector: "gn-ui-loading-mask", inputs: { message: "message" }, ngImport: i0, template: "<div class=\"h-full flex flex-col justify-center items-center relative backdrop\">\n <div class=\"absolute background bg-white inset-0\"></div>\n <mat-spinner [diameter]=\"28\" class=\"relative\"></mat-spinner>\n <span class=\"text-sm text-gray-700 mt-3 relative\">{{ message }}</span>\n</div>\n", styles: ["::ng-deep .mat-spinner circle{stroke:var(--color-gray-700);opacity:.5}.backdrop{background-color:#fff6}@supports ((-webkit-backdrop-filter: blur()) or (backdrop-filter: blur())){.backdrop{background-color:transparent;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}}.background{opacity:.7}\n"], dependencies: [{ kind: "component", type: i1$6.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
25379
|
-
}
|
|
25380
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LoadingMaskComponent, decorators: [{
|
|
25381
|
-
type: Component,
|
|
25382
|
-
args: [{ selector: 'gn-ui-loading-mask', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"h-full flex flex-col justify-center items-center relative backdrop\">\n <div class=\"absolute background bg-white inset-0\"></div>\n <mat-spinner [diameter]=\"28\" class=\"relative\"></mat-spinner>\n <span class=\"text-sm text-gray-700 mt-3 relative\">{{ message }}</span>\n</div>\n", styles: ["::ng-deep .mat-spinner circle{stroke:var(--color-gray-700);opacity:.5}.backdrop{background-color:#fff6}@supports ((-webkit-backdrop-filter: blur()) or (backdrop-filter: blur())){.backdrop{background-color:transparent;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}}.background{opacity:.7}\n"] }]
|
|
25383
|
-
}], propDecorators: { message: [{
|
|
25384
|
-
type: Input
|
|
25385
|
-
}] } });
|
|
25386
|
-
|
|
25387
|
-
class SpinningLoaderComponent {
|
|
25388
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpinningLoaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
25389
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SpinningLoaderComponent, selector: "gn-ui-spinning-loader", ngImport: i0, template: "<span>\n <svg\n class=\"animate-spin h-8 w-8 text-primary\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <circle\n class=\"opacity-25\"\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n stroke=\"currentColor\"\n stroke-width=\"4\"\n ></circle>\n <path\n class=\"opacity-75\"\n fill=\"currentColor\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\n ></path>\n </svg>\n</span>\n", styles: [""] }); }
|
|
25390
|
-
}
|
|
25391
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpinningLoaderComponent, decorators: [{
|
|
25392
|
-
type: Component,
|
|
25393
|
-
args: [{ selector: 'gn-ui-spinning-loader', template: "<span>\n <svg\n class=\"animate-spin h-8 w-8 text-primary\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <circle\n class=\"opacity-25\"\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n stroke=\"currentColor\"\n stroke-width=\"4\"\n ></circle>\n <path\n class=\"opacity-75\"\n fill=\"currentColor\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\n ></path>\n </svg>\n</span>\n" }]
|
|
25394
|
-
}] });
|
|
25395
|
-
|
|
25396
|
-
class UiWidgetsModule {
|
|
25397
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UiWidgetsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
25398
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: UiWidgetsModule, declarations: [ColorScaleComponent,
|
|
25399
|
-
ProgressBarComponent,
|
|
25400
|
-
StepBarComponent,
|
|
25401
|
-
LoadingMaskComponent,
|
|
25402
|
-
PopupAlertComponent,
|
|
25403
|
-
SpinningLoaderComponent], imports: [CommonModule, i1$1.TranslateModule, NgxDropzoneModule,
|
|
25404
|
-
FormsModule,
|
|
25405
|
-
ReactiveFormsModule,
|
|
25406
|
-
TagInputModule,
|
|
25407
|
-
UtilSharedModule,
|
|
25408
|
-
MatProgressSpinnerModule,
|
|
25409
|
-
MatIconModule], exports: [ProgressBarComponent,
|
|
25410
|
-
StepBarComponent,
|
|
25411
|
-
LoadingMaskComponent,
|
|
25412
|
-
PopupAlertComponent,
|
|
25413
|
-
SpinningLoaderComponent] }); }
|
|
25414
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UiWidgetsModule, imports: [CommonModule,
|
|
25415
|
-
TranslateModule.forChild(),
|
|
25416
|
-
NgxDropzoneModule,
|
|
25417
|
-
FormsModule,
|
|
25418
|
-
ReactiveFormsModule,
|
|
25419
|
-
TagInputModule,
|
|
25420
|
-
UtilSharedModule,
|
|
25421
|
-
MatProgressSpinnerModule,
|
|
25422
|
-
MatIconModule] }); }
|
|
25423
|
-
}
|
|
25424
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UiWidgetsModule, decorators: [{
|
|
25425
|
-
type: NgModule,
|
|
25426
|
-
args: [{
|
|
25427
|
-
declarations: [
|
|
25428
|
-
ColorScaleComponent,
|
|
25429
|
-
ProgressBarComponent,
|
|
25430
|
-
StepBarComponent,
|
|
25431
|
-
LoadingMaskComponent,
|
|
25432
|
-
PopupAlertComponent,
|
|
25433
|
-
SpinningLoaderComponent,
|
|
25434
|
-
],
|
|
25435
|
-
imports: [
|
|
25436
|
-
CommonModule,
|
|
25437
|
-
TranslateModule.forChild(),
|
|
25438
|
-
NgxDropzoneModule,
|
|
25439
|
-
FormsModule,
|
|
25440
|
-
ReactiveFormsModule,
|
|
25441
|
-
TagInputModule,
|
|
25442
|
-
UtilSharedModule,
|
|
25443
|
-
MatProgressSpinnerModule,
|
|
25444
|
-
MatIconModule,
|
|
25445
|
-
],
|
|
25446
|
-
exports: [
|
|
25447
|
-
ProgressBarComponent,
|
|
25448
|
-
StepBarComponent,
|
|
25449
|
-
LoadingMaskComponent,
|
|
25450
|
-
PopupAlertComponent,
|
|
25451
|
-
SpinningLoaderComponent,
|
|
25452
|
-
],
|
|
25453
|
-
}]
|
|
25454
|
-
}] });
|
|
25455
|
-
|
|
25456
|
-
class BadgeComponent {
|
|
25457
|
-
constructor() {
|
|
25458
|
-
this.clickable = false;
|
|
25459
|
-
}
|
|
25460
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BadgeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
25461
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: BadgeComponent, isStandalone: true, selector: "gn-ui-badge", inputs: { clickable: "clickable" }, ngImport: i0, template: "<div\n class=\"gn-ui-badge\"\n [ngClass]=\"\n clickable\n ? 'hover:bg-primary cursor-pointer transition-colors duration-100'\n : ''\n \"\n>\n <ng-content></ng-content>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
25462
|
-
}
|
|
25463
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BadgeComponent, decorators: [{
|
|
25464
|
-
type: Component,
|
|
25465
|
-
args: [{ selector: 'gn-ui-badge', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule], template: "<div\n class=\"gn-ui-badge\"\n [ngClass]=\"\n clickable\n ? 'hover:bg-primary cursor-pointer transition-colors duration-100'\n : ''\n \"\n>\n <ng-content></ng-content>\n</div>\n" }]
|
|
25466
|
-
}], propDecorators: { clickable: [{
|
|
25467
|
-
type: Input
|
|
25468
|
-
}] } });
|
|
25469
|
-
|
|
25470
25771
|
class ViewportIntersectorComponent {
|
|
25471
25772
|
constructor(vcRef) {
|
|
25472
25773
|
this.vcRef = vcRef;
|
|
@@ -25698,7 +25999,7 @@ class ImageInputComponent {
|
|
|
25698
25999
|
});
|
|
25699
26000
|
}
|
|
25700
26001
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ImageInputComponent, deps: [{ token: i1.HttpClient }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
25701
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ImageInputComponent, isStandalone: true, selector: "gn-ui-image-input", inputs: { maxSizeMB: "maxSizeMB", previewUrl: "previewUrl", altText: "altText", uploadProgress: "uploadProgress", uploadError: "uploadError" }, outputs: { fileChange: "fileChange", urlChange: "urlChange", uploadCancel: "uploadCancel", delete: "delete", altTextChange: "altTextChange" }, ngImport: i0, template: "<ng-container *ngIf=\"previewUrl; then withImage; else withoutImage\">\n</ng-container>\n\n<ng-template #withImage>\n <div class=\"w-full h-full flex flex-col gap-2\">\n <div class=\"flex-1 group relative\">\n <img\n class=\"w-full h-full object-cover border-2 border-gray-300 rounded-lg\"\n [alt]=\"altText\"\n loading=\"lazy\"\n [src]=\"previewUrl\"\n />\n <gn-ui-button\n [extraClass]=\"\n 'bg-gray-200 absolute right-2 bottom-2 invisible group-hover:visible'\n \"\n (buttonClick)=\"handleDelete()\"\n >\n <mat-icon class=\"material-symbols-outlined\">delete</mat-icon>\n </gn-ui-button>\n </div>\n <input\n *ngIf=\"showAltTextInput\"\n type=\"text\"\n class=\"py-3 px-2 border-2 border-gray-300 rounded-lg text-sm font-medium\"\n [placeholder]=\"'input.image.altTextPlaceholder' | translate\"\n [value]=\"altText\"\n (change)=\"handleAltTextChange($event)\"\n />\n <div class=\"flex flex-row gap-2\">\n <gn-ui-button\n [extraClass]=\"'bg-gray-200 font-bold'\"\n (buttonClick)=\"handleDelete()\"\n >\n <mat-icon class=\"material-symbols-outlined me-1\">delete</mat-icon>\n {{ 'input.image.delete' | translate }}\n </gn-ui-button>\n <gn-ui-button\n *ngIf=\"!showAltTextInput\"\n [extraClass]=\"'bg-gray-200 font-bold'\"\n (buttonClick)=\"toggleAltTextInput()\"\n >\n <mat-icon class=\"material-symbols-outlined me-1\">add</mat-icon>\n {{ 'input.image.displayAltTextInput' | translate }}\n </gn-ui-button>\n </div>\n </div>\n</ng-template>\n\n<ng-template #withoutImage>\n <div class=\"w-full h-full flex flex-col gap-2\">\n <label\n gnUiFilesDrop\n class=\"block flex-1 border-2 border-dashed border-gray-300 rounded-lg p-6 flex flex-col items-center justify-center gap-4\"\n (dragFilesOver)=\"handleDragFilesOver($event)\"\n (dropFiles)=\"handleDropFiles($event)\"\n >\n <div class=\"w-14 h-14 rounded-md bg-gray-200 grid\">\n <mat-icon\n *ngIf=\"!dragFilesOver && !uploadProgress && !uploadError\"\n class=\"material-symbols-outlined place-self-center text-blue-500\"\n >image</mat-icon\n >\n <mat-icon\n *ngIf=\"dragFilesOver && !uploadProgress && !uploadError\"\n class=\"material-symbols-outlined place-self-center text-blue-500\"\n >add_box</mat-icon\n >\n <div *ngIf=\"uploadProgress\">\n <mat-progress-spinner\n class=\"place-self-center\"\n [diameter]=\"56\"\n [mode]=\"'determinate'\"\n [value]=\"uploadProgress\"\n ></mat-progress-spinner>\n <span\n class=\"text-sm font-medium relative inline-block width-[30px] bottom-[40px] left-[15px]\"\n >\n {{ uploadProgress }}%\n </span>\n </div>\n <mat-icon\n *ngIf=\"uploadError\"\n class=\"material-symbols-outlined place-self-center text-rose-500\"\n >broken_image</mat-icon\n >\n </div>\n <div class=\"flex flex-col items-center gap-1\">\n <p class=\"font-medium\">{{ getPrimaryText() | translate }}</p>\n <p\n class=\"text-sm\"\n [class]=\"\n uploadProgress || uploadError\n ? 'font-bold text-blue-500 cursor-pointer'\n : 'font-medium text-gray-500'\n \"\n (click)=\"handleSecondaryTextClick()\"\n >\n {{ getSecondaryText() | translate }}\n </p>\n </div>\n <input\n type=\"file\"\n class=\"hidden\"\n (change)=\"handleFileInput($event)\"\n [disabled]=\"showUrlInput || uploadProgress || uploadError\"\n />\n </label>\n <div *ngIf=\"!showUrlInput\" class=\"flex-none\">\n <gn-ui-button\n [extraClass]=\"'bg-gray-200 font-bold'\"\n (buttonClick)=\"displayUrlInput()\"\n >\n <mat-icon class=\"material-symbols-outlined me-1\">link</mat-icon>\n {{ 'input.image.displayUrlInput' | translate }}\n </gn-ui-button>\n </div>\n <div *ngIf=\"showUrlInput\" class=\"flex-none flex flex-col gap-2\">\n <div class=\"h-2\"></div>\n <div class=\"flex gap-2 items-center\">\n <div class=\"flex-1 flex rounded-lg\">\n <span\n class=\"material-symbols-outlined px-4 inline-flex items-center min-w-fit rounded-s-lg border-2 border-e-0 border-gray-300\"\n >link</span\n >\n <input\n type=\"text\"\n class=\"py-3 ps-1 block w-full border-2 border-s-0 border-e-0 border-gray-300 text-sm font-medium\"\n placeholder=\"https://exemple.com/image.jpg\"\n (change)=\"handleUrlChange($event)\"\n />\n <gn-ui-button\n class=\"px-1 inline-flex items-center min-w-fit rounded-e-lg border-2 border-s-0 border-gray-300 text-white\"\n [extraClass]=\"\n urlInputValue && !downloadError ? 'bg-blue-500' : 'bg-gray-500'\n \"\n [disabled]=\"!urlInputValue || downloadError\"\n (buttonClick)=\"downloadUrl()\"\n >\n <mat-icon class=\"material-symbols-outlined\">arrow_upward</mat-icon>\n </gn-ui-button>\n </div>\n </div>\n </div>\n </div>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: FilesDropDirective, selector: "[gnUiFilesDrop]", outputs: ["dragFilesOver", "dropFiles"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i1$
|
|
26002
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ImageInputComponent, isStandalone: true, selector: "gn-ui-image-input", inputs: { maxSizeMB: "maxSizeMB", previewUrl: "previewUrl", altText: "altText", uploadProgress: "uploadProgress", uploadError: "uploadError" }, outputs: { fileChange: "fileChange", urlChange: "urlChange", uploadCancel: "uploadCancel", delete: "delete", altTextChange: "altTextChange" }, ngImport: i0, template: "<ng-container *ngIf=\"previewUrl; then withImage; else withoutImage\">\n</ng-container>\n\n<ng-template #withImage>\n <div class=\"w-full h-full flex flex-col gap-2\">\n <div class=\"flex-1 group relative\">\n <img\n class=\"w-full h-full object-cover border-2 border-gray-300 rounded-lg\"\n [alt]=\"altText\"\n loading=\"lazy\"\n [src]=\"previewUrl\"\n />\n <gn-ui-button\n [extraClass]=\"\n 'bg-gray-200 absolute right-2 bottom-2 invisible group-hover:visible'\n \"\n (buttonClick)=\"handleDelete()\"\n >\n <mat-icon class=\"material-symbols-outlined\">delete</mat-icon>\n </gn-ui-button>\n </div>\n <input\n *ngIf=\"showAltTextInput\"\n type=\"text\"\n class=\"py-3 px-2 border-2 border-gray-300 rounded-lg text-sm font-medium\"\n [placeholder]=\"'input.image.altTextPlaceholder' | translate\"\n [value]=\"altText\"\n (change)=\"handleAltTextChange($event)\"\n />\n <div class=\"flex flex-row gap-2\">\n <gn-ui-button\n [extraClass]=\"'bg-gray-200 font-bold'\"\n (buttonClick)=\"handleDelete()\"\n >\n <mat-icon class=\"material-symbols-outlined me-1\">delete</mat-icon>\n {{ 'input.image.delete' | translate }}\n </gn-ui-button>\n <gn-ui-button\n *ngIf=\"!showAltTextInput\"\n [extraClass]=\"'bg-gray-200 font-bold'\"\n (buttonClick)=\"toggleAltTextInput()\"\n >\n <mat-icon class=\"material-symbols-outlined me-1\">add</mat-icon>\n {{ 'input.image.displayAltTextInput' | translate }}\n </gn-ui-button>\n </div>\n </div>\n</ng-template>\n\n<ng-template #withoutImage>\n <div class=\"w-full h-full flex flex-col gap-2\">\n <label\n gnUiFilesDrop\n class=\"block flex-1 border-2 border-dashed border-gray-300 rounded-lg p-6 flex flex-col items-center justify-center gap-4\"\n (dragFilesOver)=\"handleDragFilesOver($event)\"\n (dropFiles)=\"handleDropFiles($event)\"\n >\n <div class=\"w-14 h-14 rounded-md bg-gray-200 grid\">\n <mat-icon\n *ngIf=\"!dragFilesOver && !uploadProgress && !uploadError\"\n class=\"material-symbols-outlined place-self-center text-blue-500\"\n >image</mat-icon\n >\n <mat-icon\n *ngIf=\"dragFilesOver && !uploadProgress && !uploadError\"\n class=\"material-symbols-outlined place-self-center text-blue-500\"\n >add_box</mat-icon\n >\n <div *ngIf=\"uploadProgress\">\n <mat-progress-spinner\n class=\"place-self-center\"\n [diameter]=\"56\"\n [mode]=\"'determinate'\"\n [value]=\"uploadProgress\"\n ></mat-progress-spinner>\n <span\n class=\"text-sm font-medium relative inline-block width-[30px] bottom-[40px] left-[15px]\"\n >\n {{ uploadProgress }}%\n </span>\n </div>\n <mat-icon\n *ngIf=\"uploadError\"\n class=\"material-symbols-outlined place-self-center text-rose-500\"\n >broken_image</mat-icon\n >\n </div>\n <div class=\"flex flex-col items-center gap-1\">\n <p class=\"font-medium\">{{ getPrimaryText() | translate }}</p>\n <p\n class=\"text-sm\"\n [class]=\"\n uploadProgress || uploadError\n ? 'font-bold text-blue-500 cursor-pointer'\n : 'font-medium text-gray-500'\n \"\n (click)=\"handleSecondaryTextClick()\"\n >\n {{ getSecondaryText() | translate }}\n </p>\n </div>\n <input\n type=\"file\"\n class=\"hidden\"\n (change)=\"handleFileInput($event)\"\n [disabled]=\"showUrlInput || uploadProgress || uploadError\"\n />\n </label>\n <div *ngIf=\"!showUrlInput\" class=\"flex-none\">\n <gn-ui-button\n [extraClass]=\"'bg-gray-200 font-bold'\"\n (buttonClick)=\"displayUrlInput()\"\n >\n <mat-icon class=\"material-symbols-outlined me-1\">link</mat-icon>\n {{ 'input.image.displayUrlInput' | translate }}\n </gn-ui-button>\n </div>\n <div *ngIf=\"showUrlInput\" class=\"flex-none flex flex-col gap-2\">\n <div class=\"h-2\"></div>\n <div class=\"flex gap-2 items-center\">\n <div class=\"flex-1 flex rounded-lg\">\n <span\n class=\"material-symbols-outlined px-4 inline-flex items-center min-w-fit rounded-s-lg border-2 border-e-0 border-gray-300\"\n >link</span\n >\n <input\n type=\"text\"\n class=\"py-3 ps-1 block w-full border-2 border-s-0 border-e-0 border-gray-300 text-sm font-medium\"\n placeholder=\"https://exemple.com/image.jpg\"\n (change)=\"handleUrlChange($event)\"\n />\n <gn-ui-button\n class=\"px-1 inline-flex items-center min-w-fit rounded-e-lg border-2 border-s-0 border-gray-300 text-white\"\n [extraClass]=\"\n urlInputValue && !downloadError ? 'bg-blue-500' : 'bg-gray-500'\n \"\n [disabled]=\"!urlInputValue || downloadError\"\n (buttonClick)=\"downloadUrl()\"\n >\n <mat-icon class=\"material-symbols-outlined\">arrow_upward</mat-icon>\n </gn-ui-button>\n </div>\n </div>\n </div>\n </div>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: FilesDropDirective, selector: "[gnUiFilesDrop]", outputs: ["dragFilesOver", "dropFiles"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i1$4.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
25702
26003
|
}
|
|
25703
26004
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ImageInputComponent, decorators: [{
|
|
25704
26005
|
type: Component,
|
|
@@ -25734,8 +26035,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
25734
26035
|
|
|
25735
26036
|
class UiInputsModule {
|
|
25736
26037
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UiInputsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
25737
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: UiInputsModule, declarations: [
|
|
25738
|
-
TextInputComponent,
|
|
26038
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: UiInputsModule, declarations: [TextInputComponent,
|
|
25739
26039
|
DragAndDropFileInputComponent,
|
|
25740
26040
|
ChipsInputComponent,
|
|
25741
26041
|
NavigationButtonComponent,
|
|
@@ -25765,8 +26065,8 @@ class UiInputsModule {
|
|
|
25765
26065
|
ImageInputComponent,
|
|
25766
26066
|
DropdownSelectorComponent,
|
|
25767
26067
|
DateRangePickerComponent,
|
|
25768
|
-
CheckToggleComponent
|
|
25769
|
-
|
|
26068
|
+
CheckToggleComponent,
|
|
26069
|
+
BadgeComponent], exports: [DropdownSelectorComponent,
|
|
25770
26070
|
ButtonComponent,
|
|
25771
26071
|
TextInputComponent,
|
|
25772
26072
|
DragAndDropFileInputComponent,
|
|
@@ -25782,7 +26082,8 @@ class UiInputsModule {
|
|
|
25782
26082
|
SearchInputComponent,
|
|
25783
26083
|
DateRangePickerComponent,
|
|
25784
26084
|
EditableLabelDirective,
|
|
25785
|
-
ImageInputComponent
|
|
26085
|
+
ImageInputComponent,
|
|
26086
|
+
BadgeComponent] }); }
|
|
25786
26087
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UiInputsModule, imports: [CommonModule,
|
|
25787
26088
|
TranslateModule.forChild(),
|
|
25788
26089
|
NgxDropzoneModule,
|
|
@@ -25803,13 +26104,13 @@ class UiInputsModule {
|
|
|
25803
26104
|
ImageInputComponent,
|
|
25804
26105
|
DropdownSelectorComponent,
|
|
25805
26106
|
DateRangePickerComponent,
|
|
25806
|
-
CheckToggleComponent
|
|
26107
|
+
CheckToggleComponent,
|
|
26108
|
+
BadgeComponent] }); }
|
|
25807
26109
|
}
|
|
25808
26110
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UiInputsModule, decorators: [{
|
|
25809
26111
|
type: NgModule,
|
|
25810
26112
|
args: [{
|
|
25811
26113
|
declarations: [
|
|
25812
|
-
AutocompleteComponent,
|
|
25813
26114
|
TextInputComponent,
|
|
25814
26115
|
DragAndDropFileInputComponent,
|
|
25815
26116
|
ChipsInputComponent,
|
|
@@ -25846,10 +26147,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
25846
26147
|
DropdownSelectorComponent,
|
|
25847
26148
|
DateRangePickerComponent,
|
|
25848
26149
|
CheckToggleComponent,
|
|
26150
|
+
BadgeComponent,
|
|
25849
26151
|
],
|
|
25850
26152
|
exports: [
|
|
25851
26153
|
DropdownSelectorComponent,
|
|
25852
|
-
AutocompleteComponent,
|
|
25853
26154
|
ButtonComponent,
|
|
25854
26155
|
TextInputComponent,
|
|
25855
26156
|
DragAndDropFileInputComponent,
|
|
@@ -25866,6 +26167,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
25866
26167
|
DateRangePickerComponent,
|
|
25867
26168
|
EditableLabelDirective,
|
|
25868
26169
|
ImageInputComponent,
|
|
26170
|
+
BadgeComponent,
|
|
25869
26171
|
],
|
|
25870
26172
|
}]
|
|
25871
26173
|
}] });
|
|
@@ -26022,7 +26324,7 @@ class FacetItemComponent {
|
|
|
26022
26324
|
this.onInvertedChange(this.inverted);
|
|
26023
26325
|
}
|
|
26024
26326
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FacetItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
26025
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FacetItemComponent, selector: "gn-ui-facet-item", inputs: { label: "label", count: "count", selected: "selected", inverted: "inverted" }, outputs: { selectedChange: "selectedChange", invertedChange: "invertedChange" }, ngImport: i0, template: "<div\n class=\"flex flex-row items-center group px-1 my-1 hover:bg-gray-100 rounded-sm\"\n>\n <label class=\"grow shrink truncate cursor-pointer group-hover:text-black\">\n <input\n type=\"checkbox\"\n class=\"cursor-pointer\"\n [ngModel]=\"selected\"\n (ngModelChange)=\"onSelectedChange($event)\"\n />\n {{ label | translate }}\n <span class=\"group-hover:text-black\">({{ count }})</span>\n </label>\n <div\n *ngIf=\"!inverted\"\n class=\"shrink-0 cursor-pointer invisible group-hover:visible icon-exclude\"\n style=\"min-width: 20px\"\n (click)=\"toggleInverted()\"\n >\n <!-- minus svg -->\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n >\n <path\n fill-rule=\"evenodd\"\n d=\"M3 10a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1z\"\n clip-rule=\"evenodd\"\n />\n </svg>\n </div>\n <div\n *ngIf=\"inverted\"\n class=\"shrink-0 cursor-pointer invisible group-hover:visible icon-include\"\n style=\"min-width: 20px\"\n (click)=\"toggleInverted()\"\n >\n <!-- check svg -->\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n >\n <path\n fill-rule=\"evenodd\"\n d=\"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z\"\n clip-rule=\"evenodd\"\n />\n </svg>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$
|
|
26327
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FacetItemComponent, selector: "gn-ui-facet-item", inputs: { label: "label", count: "count", selected: "selected", inverted: "inverted" }, outputs: { selectedChange: "selectedChange", invertedChange: "invertedChange" }, ngImport: i0, template: "<div\n class=\"flex flex-row items-center group px-1 my-1 hover:bg-gray-100 rounded-sm\"\n>\n <label class=\"grow shrink truncate cursor-pointer group-hover:text-black\">\n <input\n type=\"checkbox\"\n class=\"cursor-pointer\"\n [ngModel]=\"selected\"\n (ngModelChange)=\"onSelectedChange($event)\"\n />\n {{ label | translate }}\n <span class=\"group-hover:text-black\">({{ count }})</span>\n </label>\n <div\n *ngIf=\"!inverted\"\n class=\"shrink-0 cursor-pointer invisible group-hover:visible icon-exclude\"\n style=\"min-width: 20px\"\n (click)=\"toggleInverted()\"\n >\n <!-- minus svg -->\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n >\n <path\n fill-rule=\"evenodd\"\n d=\"M3 10a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1z\"\n clip-rule=\"evenodd\"\n />\n </svg>\n </div>\n <div\n *ngIf=\"inverted\"\n class=\"shrink-0 cursor-pointer invisible group-hover:visible icon-include\"\n style=\"min-width: 20px\"\n (click)=\"toggleInverted()\"\n >\n <!-- check svg -->\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n >\n <path\n fill-rule=\"evenodd\"\n d=\"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z\"\n clip-rule=\"evenodd\"\n />\n </svg>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }] }); }
|
|
26026
26328
|
}
|
|
26027
26329
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FacetItemComponent, decorators: [{
|
|
26028
26330
|
type: Component,
|
|
@@ -26755,11 +27057,11 @@ class ApiCardComponent {
|
|
|
26755
27057
|
}
|
|
26756
27058
|
}
|
|
26757
27059
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ApiCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
26758
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ApiCardComponent, selector: "gn-ui-api-card", inputs: { link: "link", currentLink: "currentLink" }, outputs: { openRecordApiForm: "openRecordApiForm" }, usesOnChanges: true, ngImport: i0, template: "<div\n class=\"group flex flex-col justify-between h-40 pt-5 pb-6 px-7 rounded filter overflow-hidden
|
|
27060
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ApiCardComponent, selector: "gn-ui-api-card", inputs: { link: "link", currentLink: "currentLink" }, outputs: { openRecordApiForm: "openRecordApiForm" }, usesOnChanges: true, ngImport: i0, template: "<div\n class=\"group flex flex-col justify-between h-40 pt-5 pb-6 px-7 rounded filter overflow-hidden cursor-default\"\n>\n <div\n class=\"font-title font-medium text-21 text-black text-ellipsis overflow-hidden break-words pb-5 h-[4.5rem]\"\n >\n {{ link.name || link.description }}\n </div>\n <div class=\"\">\n <div class=\"flex flex-row justify-between\">\n <span\n class=\"bg-primary-opacity-50 uppercase inline-flex items-center justify-center px-2 py-1 text-13 font-medium leading-none text-white rounded text-primary-lightest group-hover:bg-primary transition-colors\"\n [ngClass]=\"{\n '!bg-primary': currentlyActive\n }\"\n >{{ link.accessServiceProtocol }}</span\n >\n <div class=\"flex flex-row gap-2 items-center\">\n <gn-ui-copy-text-button\n [text]=\"link.url\"\n [tooltipText]=\"'tooltip.url.copy' | translate\"\n [displayText]=\"false\"\n ></gn-ui-copy-text-button>\n <button\n *ngIf=\"displayApiFormButton\"\n type=\"button\"\n [ngClass]=\"{\n 'py-2 px-4 rounded-r-md bg-gray-400 hover:bg-gray-600 focus:bg-gray-800 text-white':\n displayText\n }\"\n mat-raised-button\n [matTooltip]=\"\n !currentlyActive\n ? ('record.metadata.api.form.openForm' | translate)\n : ('record.metadata.api.form.closeForm' | translate)\n \"\n matTooltipPosition=\"above\"\n (click)=\"openRecordApiFormPanel()\"\n >\n <mat-icon\n class=\"material-symbols-outlined pointer-events-none align-middle card-icon\"\n [ngClass]=\"{\n 'text-secondary opacity-100': currentlyActive\n }\"\n >more_horiz</mat-icon\n >\n </button>\n </div>\n </div>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i2$3.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: CopyTextButtonComponent, selector: "gn-ui-copy-text-button", inputs: ["text", "tooltipText", "displayText", "rows"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
26759
27061
|
}
|
|
26760
27062
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ApiCardComponent, decorators: [{
|
|
26761
27063
|
type: Component,
|
|
26762
|
-
args: [{ selector: 'gn-ui-api-card', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"group flex flex-col justify-between h-40 pt-5 pb-6 px-7 rounded filter overflow-hidden
|
|
27064
|
+
args: [{ selector: 'gn-ui-api-card', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"group flex flex-col justify-between h-40 pt-5 pb-6 px-7 rounded filter overflow-hidden cursor-default\"\n>\n <div\n class=\"font-title font-medium text-21 text-black text-ellipsis overflow-hidden break-words pb-5 h-[4.5rem]\"\n >\n {{ link.name || link.description }}\n </div>\n <div class=\"\">\n <div class=\"flex flex-row justify-between\">\n <span\n class=\"bg-primary-opacity-50 uppercase inline-flex items-center justify-center px-2 py-1 text-13 font-medium leading-none text-white rounded text-primary-lightest group-hover:bg-primary transition-colors\"\n [ngClass]=\"{\n '!bg-primary': currentlyActive\n }\"\n >{{ link.accessServiceProtocol }}</span\n >\n <div class=\"flex flex-row gap-2 items-center\">\n <gn-ui-copy-text-button\n [text]=\"link.url\"\n [tooltipText]=\"'tooltip.url.copy' | translate\"\n [displayText]=\"false\"\n ></gn-ui-copy-text-button>\n <button\n *ngIf=\"displayApiFormButton\"\n type=\"button\"\n [ngClass]=\"{\n 'py-2 px-4 rounded-r-md bg-gray-400 hover:bg-gray-600 focus:bg-gray-800 text-white':\n displayText\n }\"\n mat-raised-button\n [matTooltip]=\"\n !currentlyActive\n ? ('record.metadata.api.form.openForm' | translate)\n : ('record.metadata.api.form.closeForm' | translate)\n \"\n matTooltipPosition=\"above\"\n (click)=\"openRecordApiFormPanel()\"\n >\n <mat-icon\n class=\"material-symbols-outlined pointer-events-none align-middle card-icon\"\n [ngClass]=\"{\n 'text-secondary opacity-100': currentlyActive\n }\"\n >more_horiz</mat-icon\n >\n </button>\n </div>\n </div>\n </div>\n</div>\n" }]
|
|
26763
27065
|
}], propDecorators: { link: [{
|
|
26764
27066
|
type: Input
|
|
26765
27067
|
}], currentLink: [{
|
|
@@ -26904,17 +27206,19 @@ var ErrorType;
|
|
|
26904
27206
|
ErrorType[ErrorType["RECEIVED_ERROR"] = 1] = "RECEIVED_ERROR";
|
|
26905
27207
|
ErrorType[ErrorType["RECORD_NOT_FOUND"] = 2] = "RECORD_NOT_FOUND";
|
|
26906
27208
|
ErrorType[ErrorType["DATASET_HAS_NO_LINK"] = 3] = "DATASET_HAS_NO_LINK";
|
|
27209
|
+
ErrorType[ErrorType["ORGANIZATION_HAS_NO_DATASET"] = 4] = "ORGANIZATION_HAS_NO_DATASET";
|
|
27210
|
+
ErrorType[ErrorType["ORGANIZATION_NOT_FOUND"] = 5] = "ORGANIZATION_NOT_FOUND";
|
|
26907
27211
|
})(ErrorType || (ErrorType = {}));
|
|
26908
27212
|
class ErrorComponent {
|
|
26909
27213
|
constructor() {
|
|
26910
27214
|
this.types = ErrorType;
|
|
26911
27215
|
}
|
|
26912
27216
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ErrorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
26913
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ErrorComponent, selector: "gn-ui-error", inputs: { type: "type", error: "error", recordId: "recordId" }, ngImport: i0, template: "<div\n class=\"p-[1.7em] bg-red-50 text-red-800 text-[1.5em] text-center rounded-lg\"\n>\n <div\n *ngIf=\"type === types.COULD_NOT_REACH_API\"\n data-test=\"could-not-reach-api-error\"\n >\n <div class=\"relative opacity-40\">\n <mat-icon class=\"material-symbols-outlined face\">face</mat-icon>\n <mat-icon class=\"material-symbols-outlined question-mark1\"\n >question_mark</mat-icon
|
|
27217
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ErrorComponent, selector: "gn-ui-error", inputs: { type: "type", error: "error", recordId: "recordId" }, ngImport: i0, template: "<div\n class=\"p-[1.7em] bg-red-50 text-red-800 text-[1.5em] text-center rounded-lg\"\n>\n <div\n *ngIf=\"type === types.COULD_NOT_REACH_API\"\n data-test=\"could-not-reach-api-error\"\n >\n <div class=\"relative opacity-40\">\n <mat-icon class=\"material-symbols-outlined face\">face</mat-icon>\n <mat-icon class=\"material-symbols-outlined question-mark1\"\n >question_mark\n </mat-icon>\n <mat-icon class=\"material-symbols-outlined question-mark2\"\n >question_mark\n </mat-icon>\n </div>\n <div translate>search.error.couldNotReachApi</div>\n </div>\n <div\n *ngIf=\"type === types.DATASET_HAS_NO_LINK\"\n data-test=\"dataset-has-no-link-error\"\n >\n <div class=\"relative opacity-40\">\n <mat-icon class=\"material-symbols-outlined face\">computer</mat-icon>\n </div>\n <div translate>search.error.recordHasnolink</div>\n </div>\n <div *ngIf=\"type === types.RECEIVED_ERROR\" data-test=\"received-error-error\">\n <div class=\"relative opacity-40\">\n <mat-icon class=\"material-symbols-outlined face\">mood_bad</mat-icon>\n </div>\n <div translate>search.error.receivedError</div>\n <div *ngIf=\"error\">{{ error }}</div>\n </div>\n <div *ngIf=\"type === types.ORGANIZATION_HAS_NO_DATASET\">\n <div class=\"relative opacity-40\">\n <mat-icon class=\"material-symbols-outlined computer\">computer</mat-icon>\n <mat-icon class=\"material-symbols-outlined computer-question-mark\"\n >question_mark\n </mat-icon>\n </div>\n <div translate>search.error.organizationHasNoDataset</div>\n </div>\n <div\n *ngIf=\"type === types.RECORD_NOT_FOUND\"\n data-test=\"record-not-found-error\"\n >\n <div class=\"relative opacity-40\">\n <mat-icon class=\"material-symbols-outlined computer\">computer</mat-icon>\n <mat-icon class=\"material-symbols-outlined computer-question-mark\"\n >question_mark\n </mat-icon>\n </div>\n <div translate [translateParams]=\"{ id: recordId }\">\n search.error.recordNotFound\n </div>\n <div *ngIf=\"error\">{{ error }}</div>\n </div>\n <div\n *ngIf=\"type === types.ORGANIZATION_NOT_FOUND\"\n data-test=\"org-not-found-error\"\n >\n <div class=\"relative opacity-40\">\n <mat-icon class=\"material-symbols-outlined computer\">computer</mat-icon>\n <mat-icon class=\"material-symbols-outlined computer-question-mark\"\n >question_mark\n </mat-icon>\n </div>\n <div translate [translateParams]=\"{ id: recordId }\">\n search.error.organizationNotFound\n </div>\n <div *ngIf=\"error\">{{ error }}</div>\n </div>\n</div>\n", styles: ["mat-icon{width:auto;height:auto}mat-icon.face{font-size:3em}mat-icon.question-mark1{position:absolute;bottom:1.1em;left:calc(50% + .7em);font-size:1.7em}mat-icon.question-mark2{position:absolute;bottom:1.6em;left:calc(50% + 1.6em);font-size:1.4em}.computer{font-size:3em}.computer-question-mark{position:absolute;top:.6em;left:calc(50% - .5em);font-size:1.2em}\n"], dependencies: [{ kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
26914
27218
|
}
|
|
26915
27219
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ErrorComponent, decorators: [{
|
|
26916
27220
|
type: Component,
|
|
26917
|
-
args: [{ selector: 'gn-ui-error', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"p-[1.7em] bg-red-50 text-red-800 text-[1.5em] text-center rounded-lg\"\n>\n <div\n *ngIf=\"type === types.COULD_NOT_REACH_API\"\n data-test=\"could-not-reach-api-error\"\n >\n <div class=\"relative opacity-40\">\n <mat-icon class=\"material-symbols-outlined face\">face</mat-icon>\n <mat-icon class=\"material-symbols-outlined question-mark1\"\n >question_mark</mat-icon
|
|
27221
|
+
args: [{ selector: 'gn-ui-error', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"p-[1.7em] bg-red-50 text-red-800 text-[1.5em] text-center rounded-lg\"\n>\n <div\n *ngIf=\"type === types.COULD_NOT_REACH_API\"\n data-test=\"could-not-reach-api-error\"\n >\n <div class=\"relative opacity-40\">\n <mat-icon class=\"material-symbols-outlined face\">face</mat-icon>\n <mat-icon class=\"material-symbols-outlined question-mark1\"\n >question_mark\n </mat-icon>\n <mat-icon class=\"material-symbols-outlined question-mark2\"\n >question_mark\n </mat-icon>\n </div>\n <div translate>search.error.couldNotReachApi</div>\n </div>\n <div\n *ngIf=\"type === types.DATASET_HAS_NO_LINK\"\n data-test=\"dataset-has-no-link-error\"\n >\n <div class=\"relative opacity-40\">\n <mat-icon class=\"material-symbols-outlined face\">computer</mat-icon>\n </div>\n <div translate>search.error.recordHasnolink</div>\n </div>\n <div *ngIf=\"type === types.RECEIVED_ERROR\" data-test=\"received-error-error\">\n <div class=\"relative opacity-40\">\n <mat-icon class=\"material-symbols-outlined face\">mood_bad</mat-icon>\n </div>\n <div translate>search.error.receivedError</div>\n <div *ngIf=\"error\">{{ error }}</div>\n </div>\n <div *ngIf=\"type === types.ORGANIZATION_HAS_NO_DATASET\">\n <div class=\"relative opacity-40\">\n <mat-icon class=\"material-symbols-outlined computer\">computer</mat-icon>\n <mat-icon class=\"material-symbols-outlined computer-question-mark\"\n >question_mark\n </mat-icon>\n </div>\n <div translate>search.error.organizationHasNoDataset</div>\n </div>\n <div\n *ngIf=\"type === types.RECORD_NOT_FOUND\"\n data-test=\"record-not-found-error\"\n >\n <div class=\"relative opacity-40\">\n <mat-icon class=\"material-symbols-outlined computer\">computer</mat-icon>\n <mat-icon class=\"material-symbols-outlined computer-question-mark\"\n >question_mark\n </mat-icon>\n </div>\n <div translate [translateParams]=\"{ id: recordId }\">\n search.error.recordNotFound\n </div>\n <div *ngIf=\"error\">{{ error }}</div>\n </div>\n <div\n *ngIf=\"type === types.ORGANIZATION_NOT_FOUND\"\n data-test=\"org-not-found-error\"\n >\n <div class=\"relative opacity-40\">\n <mat-icon class=\"material-symbols-outlined computer\">computer</mat-icon>\n <mat-icon class=\"material-symbols-outlined computer-question-mark\"\n >question_mark\n </mat-icon>\n </div>\n <div translate [translateParams]=\"{ id: recordId }\">\n search.error.organizationNotFound\n </div>\n <div *ngIf=\"error\">{{ error }}</div>\n </div>\n</div>\n", styles: ["mat-icon{width:auto;height:auto}mat-icon.face{font-size:3em}mat-icon.question-mark1{position:absolute;bottom:1.1em;left:calc(50% + .7em);font-size:1.7em}mat-icon.question-mark2{position:absolute;bottom:1.6em;left:calc(50% + 1.6em);font-size:1.4em}.computer{font-size:3em}.computer-question-mark{position:absolute;top:.6em;left:calc(50% - .5em);font-size:1.2em}\n"] }]
|
|
26918
27222
|
}], propDecorators: { type: [{
|
|
26919
27223
|
type: Input
|
|
26920
27224
|
}], error: [{
|
|
@@ -27014,71 +27318,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
27014
27318
|
type: Output
|
|
27015
27319
|
}] } });
|
|
27016
27320
|
|
|
27017
|
-
class MaxLinesComponent {
|
|
27018
|
-
constructor(cdr) {
|
|
27019
|
-
this.cdr = cdr;
|
|
27020
|
-
this.maxLines = 6;
|
|
27021
|
-
this.isExpanded = false;
|
|
27022
|
-
this.maxHeight = '';
|
|
27023
|
-
this.showToggleButton = false;
|
|
27024
|
-
}
|
|
27025
|
-
ngAfterViewInit() {
|
|
27026
|
-
this.calculateMaxHeight();
|
|
27027
|
-
this.observer = new ResizeObserver((mutations) => {
|
|
27028
|
-
mutations.forEach(() => {
|
|
27029
|
-
this.calculateMaxHeight();
|
|
27030
|
-
});
|
|
27031
|
-
});
|
|
27032
|
-
this.observer.observe(this.container.nativeElement.children[0]);
|
|
27033
|
-
}
|
|
27034
|
-
toggleDisplay() {
|
|
27035
|
-
this.isExpanded = !this.isExpanded;
|
|
27036
|
-
this.calculateMaxHeight();
|
|
27037
|
-
}
|
|
27038
|
-
calculateMaxHeight() {
|
|
27039
|
-
const containerElement = this.container.nativeElement;
|
|
27040
|
-
const contentElement = containerElement.children[0];
|
|
27041
|
-
const contentHeight = contentElement.getBoundingClientRect().height;
|
|
27042
|
-
if (contentHeight) {
|
|
27043
|
-
if (contentHeight > this.maxLines * this.getLineHeight(contentElement)) {
|
|
27044
|
-
this.showToggleButton = true;
|
|
27045
|
-
this.maxHeight = this.isExpanded
|
|
27046
|
-
? `${contentHeight}px`
|
|
27047
|
-
: `${this.maxLines * this.getLineHeight(contentElement)}px`;
|
|
27048
|
-
}
|
|
27049
|
-
else {
|
|
27050
|
-
this.showToggleButton = false;
|
|
27051
|
-
this.maxHeight = `${contentHeight}px`;
|
|
27052
|
-
}
|
|
27053
|
-
containerElement.setAttribute('style', `max-height: ${this.maxHeight}; overflow: hidden`);
|
|
27054
|
-
this.cdr.detectChanges();
|
|
27055
|
-
}
|
|
27056
|
-
}
|
|
27057
|
-
getLineHeight(element) {
|
|
27058
|
-
const computedStyle = window.getComputedStyle(element);
|
|
27059
|
-
const lineHeight = parseFloat(computedStyle.lineHeight);
|
|
27060
|
-
const fontSize = parseFloat(computedStyle.fontSize || '14');
|
|
27061
|
-
const result = isNaN(lineHeight) ? fontSize * 1.2 : lineHeight; // Use a default if line height is not specified
|
|
27062
|
-
return result;
|
|
27063
|
-
}
|
|
27064
|
-
ngOnDestroy() {
|
|
27065
|
-
if (!this.observer)
|
|
27066
|
-
return;
|
|
27067
|
-
this.observer.unobserve(this.container.nativeElement.children[0]);
|
|
27068
|
-
}
|
|
27069
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MaxLinesComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27070
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MaxLinesComponent, selector: "gn-ui-max-lines", inputs: { maxLines: "maxLines" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }], ngImport: i0, template: "<div\n #container\n class=\"max-lines overflow-hidden transition-[max-height] duration-300 relative\"\n [ngClass]=\"isExpanded ? 'ease-in' : 'ease-out'\"\n [style.maxHeight]=\"maxHeight\"\n>\n <ng-content></ng-content>\n <div\n *ngIf=\"showToggleButton && !isExpanded\"\n class=\"absolute inset-x-0 bottom-0 bg-gradient-to-b from-transparent to-white h-3\"\n ></div>\n</div>\n<div\n *ngIf=\"showToggleButton\"\n (click)=\"toggleDisplay()\"\n class=\"text-secondary cursor-pointer pt-2.5\"\n>\n {{ (isExpanded ? 'ui.readLess' : 'ui.readMore') | translate }}\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
27071
|
-
}
|
|
27072
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MaxLinesComponent, decorators: [{
|
|
27073
|
-
type: Component,
|
|
27074
|
-
args: [{ selector: 'gn-ui-max-lines', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n #container\n class=\"max-lines overflow-hidden transition-[max-height] duration-300 relative\"\n [ngClass]=\"isExpanded ? 'ease-in' : 'ease-out'\"\n [style.maxHeight]=\"maxHeight\"\n>\n <ng-content></ng-content>\n <div\n *ngIf=\"showToggleButton && !isExpanded\"\n class=\"absolute inset-x-0 bottom-0 bg-gradient-to-b from-transparent to-white h-3\"\n ></div>\n</div>\n<div\n *ngIf=\"showToggleButton\"\n (click)=\"toggleDisplay()\"\n class=\"text-secondary cursor-pointer pt-2.5\"\n>\n {{ (isExpanded ? 'ui.readLess' : 'ui.readMore') | translate }}\n</div>\n" }]
|
|
27075
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { maxLines: [{
|
|
27076
|
-
type: Input
|
|
27077
|
-
}], container: [{
|
|
27078
|
-
type: ViewChild,
|
|
27079
|
-
args: ['container']
|
|
27080
|
-
}] } });
|
|
27081
|
-
|
|
27082
27321
|
class MetadataCatalogComponent {
|
|
27083
27322
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MetadataCatalogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27084
27323
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MetadataCatalogComponent, selector: "gn-ui-metadata-catalog", inputs: { sourceLabel: "sourceLabel" }, ngImport: i0, template: "<div>\n <p class=\"text-gray-700 text-xs mb-3 uppercase\" translate>\n record.metadata.catalog\n </p>\n <p class=\"text-primary font-title text-21 mb-1\">\n {{ sourceLabel }}\n </p>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
@@ -27153,6 +27392,71 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
27153
27392
|
args: ['contentDiv']
|
|
27154
27393
|
}] } });
|
|
27155
27394
|
|
|
27395
|
+
class MaxLinesComponent {
|
|
27396
|
+
constructor(cdr) {
|
|
27397
|
+
this.cdr = cdr;
|
|
27398
|
+
this.maxLines = 6;
|
|
27399
|
+
this.isExpanded = false;
|
|
27400
|
+
this.maxHeight = '';
|
|
27401
|
+
this.showToggleButton = false;
|
|
27402
|
+
}
|
|
27403
|
+
ngAfterViewInit() {
|
|
27404
|
+
this.calculateMaxHeight();
|
|
27405
|
+
this.observer = new ResizeObserver((mutations) => {
|
|
27406
|
+
mutations.forEach(() => {
|
|
27407
|
+
this.calculateMaxHeight();
|
|
27408
|
+
});
|
|
27409
|
+
});
|
|
27410
|
+
this.observer.observe(this.container.nativeElement.children[0]);
|
|
27411
|
+
}
|
|
27412
|
+
toggleDisplay() {
|
|
27413
|
+
this.isExpanded = !this.isExpanded;
|
|
27414
|
+
this.calculateMaxHeight();
|
|
27415
|
+
}
|
|
27416
|
+
calculateMaxHeight() {
|
|
27417
|
+
const containerElement = this.container.nativeElement;
|
|
27418
|
+
const contentElement = containerElement.children[0];
|
|
27419
|
+
const contentHeight = contentElement.getBoundingClientRect().height;
|
|
27420
|
+
if (contentHeight) {
|
|
27421
|
+
if (contentHeight > this.maxLines * this.getLineHeight(contentElement)) {
|
|
27422
|
+
this.showToggleButton = true;
|
|
27423
|
+
this.maxHeight = this.isExpanded
|
|
27424
|
+
? `${contentHeight}px`
|
|
27425
|
+
: `${this.maxLines * this.getLineHeight(contentElement)}px`;
|
|
27426
|
+
}
|
|
27427
|
+
else {
|
|
27428
|
+
this.showToggleButton = false;
|
|
27429
|
+
this.maxHeight = `${contentHeight}px`;
|
|
27430
|
+
}
|
|
27431
|
+
containerElement.setAttribute('style', `max-height: ${this.maxHeight}; overflow: hidden`);
|
|
27432
|
+
this.cdr.detectChanges();
|
|
27433
|
+
}
|
|
27434
|
+
}
|
|
27435
|
+
getLineHeight(element) {
|
|
27436
|
+
const computedStyle = window.getComputedStyle(element);
|
|
27437
|
+
const lineHeight = parseFloat(computedStyle.lineHeight);
|
|
27438
|
+
const fontSize = parseFloat(computedStyle.fontSize || '14');
|
|
27439
|
+
const result = isNaN(lineHeight) ? fontSize * 1.2 : lineHeight; // Use a default if line height is not specified
|
|
27440
|
+
return result;
|
|
27441
|
+
}
|
|
27442
|
+
ngOnDestroy() {
|
|
27443
|
+
if (!this.observer)
|
|
27444
|
+
return;
|
|
27445
|
+
this.observer.unobserve(this.container.nativeElement.children[0]);
|
|
27446
|
+
}
|
|
27447
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MaxLinesComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27448
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MaxLinesComponent, isStandalone: true, selector: "gn-ui-max-lines", inputs: { maxLines: "maxLines" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }], ngImport: i0, template: "<div\n #container\n class=\"max-lines overflow-hidden transition-[max-height] duration-300 relative\"\n [ngClass]=\"isExpanded ? 'ease-in' : 'ease-out'\"\n [style.maxHeight]=\"maxHeight\"\n>\n <ng-content></ng-content>\n <div\n *ngIf=\"showToggleButton && !isExpanded\"\n class=\"absolute inset-x-0 bottom-0 bg-gradient-to-b from-transparent to-white h-3\"\n ></div>\n</div>\n<div\n *ngIf=\"showToggleButton\"\n (click)=\"toggleDisplay()\"\n class=\"text-secondary cursor-pointer pt-2.5\"\n data-cy=\"readMoreButton\"\n>\n {{ (isExpanded ? 'ui.readLess' : 'ui.readMore') | translate }}\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
27449
|
+
}
|
|
27450
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MaxLinesComponent, decorators: [{
|
|
27451
|
+
type: Component,
|
|
27452
|
+
args: [{ selector: 'gn-ui-max-lines', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, TranslateModule], template: "<div\n #container\n class=\"max-lines overflow-hidden transition-[max-height] duration-300 relative\"\n [ngClass]=\"isExpanded ? 'ease-in' : 'ease-out'\"\n [style.maxHeight]=\"maxHeight\"\n>\n <ng-content></ng-content>\n <div\n *ngIf=\"showToggleButton && !isExpanded\"\n class=\"absolute inset-x-0 bottom-0 bg-gradient-to-b from-transparent to-white h-3\"\n ></div>\n</div>\n<div\n *ngIf=\"showToggleButton\"\n (click)=\"toggleDisplay()\"\n class=\"text-secondary cursor-pointer pt-2.5\"\n data-cy=\"readMoreButton\"\n>\n {{ (isExpanded ? 'ui.readLess' : 'ui.readMore') | translate }}\n</div>\n" }]
|
|
27453
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { maxLines: [{
|
|
27454
|
+
type: Input
|
|
27455
|
+
}], container: [{
|
|
27456
|
+
type: ViewChild,
|
|
27457
|
+
args: ['container']
|
|
27458
|
+
}] } });
|
|
27459
|
+
|
|
27156
27460
|
/* eslint-disable @angular-eslint/directive-selector */
|
|
27157
27461
|
class GnUiLinkifyDirective {
|
|
27158
27462
|
constructor(el, renderer) {
|
|
@@ -27292,7 +27596,7 @@ class MetadataInfoComponent {
|
|
|
27292
27596
|
this.keyword.emit(keyword);
|
|
27293
27597
|
}
|
|
27294
27598
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MetadataInfoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27295
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MetadataInfoComponent, selector: "gn-ui-metadata-info", inputs: { metadata: "metadata", incomplete: "incomplete" }, outputs: { keyword: "keyword" }, ngImport: i0, template: "<div class=\"mb-6 md-description sm:mb-4 sm:pr-16\">\n <gn-ui-content-ghost ghostClass=\"h-32\" [showContent]=\"fieldReady('abstract')\">\n <gn-ui-max-lines [maxLines]=\"6\" *ngIf=\"metadata.abstract\">\n <div>\n <gn-ui-markdown-parser\n [textContent]=\"metadata.abstract\"\n ></gn-ui-markdown-parser>\n </div>\n </gn-ui-max-lines>\n <div *ngIf=\"metadata.keywords?.length\">\n <p class=\"mt-6 mb-3 font-medium text-primary text-sm\" translate>\n record.metadata.keywords\n </p>\n <div class=\"sm:pb-4 flex flex-wrap gap-2\">\n <gn-ui-badge\n class=\"inline-block lowercase\"\n (click)=\"onKeywordClick(keyword)\"\n [clickable]=\"true\"\n *ngFor=\"let keyword of metadata.keywords\"\n >{{ keyword.label }}</gn-ui-badge\n >\n </div>\n </div>\n </gn-ui-content-ghost>\n</div>\n\n<gn-ui-expandable-panel [title]=\"'record.metadata.usage' | translate\">\n <div class=\"flex flex-col gap-[10px] mr-4 py-[12px] rounded text-gray-900\">\n <ng-container *ngFor=\"let license of licenses\">\n <div *ngIf=\"license.url; else noUrl\" class=\"text-primary\">\n <a\n [href]=\"license.url\"\n target=\"_blank\"\n class=\"cursor-pointer hover:underline transition-all\"\n >\n {{ license.text }}\n <mat-icon\n class=\"material-symbols-outlined !w-[12px] !h-[12px] !text-[12px] opacity-75 shrink-0\"\n >open_in_new</mat-icon\n >\n </a>\n </div>\n <ng-template #noUrl>\n <div class=\"text-primary\" gnUiLinkify>\n {{ license.text }}\n </div>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"legalConstraints.length\">\n <gn-ui-markdown-parser\n *ngFor=\"let constraint of legalConstraints\"\n [textContent]=\"constraint\"\n >\n </gn-ui-markdown-parser>\n </ng-container>\n <ng-container *ngIf=\"otherConstraints.length\">\n <div gnUiLinkify *ngFor=\"let constraint of otherConstraints\">\n <h5 translate class=\"font-medium text-black text-sm mb-[2px] mt-[16px]\">\n record.metadata.otherConstraints\n </h5>\n <gn-ui-markdown-parser [textContent]=\"constraint\">\n </gn-ui-markdown-parser>\n </div>\n </ng-container>\n\n <span class=\"noUsage\" *ngIf=\"!hasUsage\">\n {{ 'record.metadata.noUsage' | translate }}\n </span>\n </div>\n</gn-ui-expandable-panel>\n<gn-ui-expandable-panel\n *ngIf=\"\n metadata.lineage ||\n metadata.recordUpdated ||\n metadata.updateFrequency ||\n metadata.status\n \"\n [title]=\"'record.metadata.details' | translate\"\n>\n <div *ngIf=\"metadata.lineage\" class=\"text-gray-900 flex flex-col mt-4 gap-2\">\n <p class=\"whitespace-pre-line break-words text-gray-900\" gnUiLinkify>\n {{ metadata.lineage }}\n </p>\n </div>\n <div class=\"flex flex-row gap-6 mt-5 mb-8\" *ngIf=\"resourceContact\">\n <div\n *ngIf=\"resourceContact.organization?.logoUrl?.href\"\n class=\"flex items-center justify-center border-solid border border-gray-300 rounded-md bg-white h-32 overflow-hidden\"\n >\n <gn-ui-thumbnail\n class=\"relative h-full w-full\"\n [thumbnailUrl]=\"resourceContact.organization.logoUrl.href\"\n fit=\"contain\"\n ></gn-ui-thumbnail>\n </div>\n <div class=\"flex flex-col gap-1\">\n <p class=\"text-sm font-medium\" translate>record.metadata.producer</p>\n <div\n class=\"text-primary font-title text-21 mr-2 cursor-pointer hover:underline\"\n data-cy=\"organization-name\"\n >\n {{ resourceContact.organization?.name }}\n </div>\n <div *ngIf=\"resourceContact.organization?.website\">\n <a\n [href]=\"resourceContact.organization.website\"\n target=\"_blank\"\n class=\"contact-website text-primary text-sm cursor-pointer hover:underline transition-all\"\n >{{ resourceContact.organization.website }}\n <mat-icon\n class=\"material-symbols-outlined !w-[12px] !h-[12px] !text-[12px] opacity-75 shrink-0\"\n >open_in_new</mat-icon\n >\n </a>\n </div>\n <div class=\"mt-4\" *ngIf=\"resourceContact.email\">\n <div class=\"flex\">\n <mat-icon\n class=\"material-symbols-outlined !w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n >\n mail_outline</mat-icon\n >\n <a\n *ngIf=\"resourceContact.email\"\n [href]=\"'mailto:' + resourceContact.email\"\n class=\"text-sm hover:underline ml-2\"\n target=\"_blank\"\n data-cy=\"contact-email\"\n >{{ resourceContact?.email }}</a\n >\n </div>\n </div>\n </div>\n </div>\n <div\n class=\"py-6 px-6 rounded bg-gray-100 grid grid-cols-2 gap-y-6 gap-x-[20px] text-gray-700\"\n >\n <div *ngIf=\"metadata.recordCreated\">\n <p class=\"text-sm\" translate>record.metadata.creation</p>\n <p class=\"text-primary font-medium mt-1\">\n {{ metadata.recordCreated.toLocaleDateString() }}\n </p>\n </div>\n <div *ngIf=\"metadata.recordPublished\">\n <p class=\"text-sm\" translate>record.metadata.publication</p>\n <p class=\"text-primary font-medium mt-1\">\n {{ metadata.recordPublished.toLocaleDateString() }}\n </p>\n </div>\n <div *ngIf=\"updateFrequency\">\n <p class=\"text-sm\" translate>record.metadata.updateFrequency</p>\n <p\n class=\"text-primary font-medium mt-1 updateFrequency\"\n translate\n [translateParams]=\"{ count: updatedTimes }\"\n >\n {{ updateFrequency }}\n </p>\n </div>\n <div *ngIf=\"metadata.languages\">\n <p class=\"text-sm mb-1\" translate>record.metadata.languages</p>\n <div class=\"flex flex-row gap-1 flex-wrap\">\n <p\n class=\"text-primary font-medium\"\n translate\n *ngFor=\"let language of metadata.languages\"\n >\n language.{{ language }}\n </p>\n </div>\n </div>\n <div *ngIf=\"temporalExtent\">\n <p class=\"text-sm\" translate>record.metadata.temporalExtent</p>\n <div class=\"flex flex-row gap-1 mb-1 text-primary font-medium\">\n <p\n *ngIf=\"temporalExtent.start && temporalExtent.end\"\n translate\n [translateParams]=\"{\n start: temporalExtent.start,\n end: temporalExtent.end\n }\"\n >\n record.metadata.temporalExtent.fromDateToDate\n </p>\n <p\n *ngIf=\"temporalExtent.start && !temporalExtent.end\"\n translate\n [translateParams]=\"{ start: temporalExtent.start }\"\n >\n record.metadata.temporalExtent.sinceDate\n </p>\n <p\n *ngIf=\"!temporalExtent.start && temporalExtent.end\"\n translate\n [translateParams]=\"{ end: temporalExtent.end }\"\n >\n record.metadata.temporalExtent.untilDate\n </p>\n </div>\n </div>\n </div>\n</gn-ui-expandable-panel>\n<gn-ui-expandable-panel\n *ngIf=\"metadata.landingPage\"\n [title]=\"'record.metadata.technical' | translate\"\n>\n <div class=\"flex flex-col gap-4 mr-4 py-5 rounded text-gray-700\">\n <div *ngIf=\"metadata.recordUpdated\">\n <p class=\"text-sm\" translate>record.metadata.updatedOn</p>\n <p class=\"text-primary font-medium\">\n {{ metadata.recordUpdated && metadata.recordUpdated.toLocaleString() }}\n </p>\n </div>\n <div *ngIf=\"metadata.landingPage\">\n <p class=\"text-sm\" translate>record.metadata.sheet</p>\n <p class=\"text-primary font-medium\" translate>\n <a [href]=\"metadata.landingPage\" target=\"_blank\">\n <span class=\"break-all\" gnUiLinkify>{{ metadata.landingPage }}</span>\n </a>\n </p>\n </div>\n <div *ngIf=\"metadata.ownerOrganization\">\n <p class=\"text-sm\" translate>record.metadata.owner</p>\n <p class=\"text-primary font-medium\">\n {{ metadata.ownerOrganization.name }}\n </p>\n </div>\n <div *ngIf=\"metadata.uniqueIdentifier\">\n <p class=\"text-sm\" translate>record.metadata.uniqueId</p>\n <div class=\"flex flex-row content-align items-end gap-1\">\n <gn-ui-copy-text-button\n [text]=\"metadata.uniqueIdentifier\"\n [tooltipText]=\"'tooltip.id.copy' | translate\"\n [displayText]=\"false\"\n ></gn-ui-copy-text-button>\n <p class=\"text-primary font-medium\">\n {{ metadata.uniqueIdentifier }}\n </p>\n </div>\n </div>\n <div *ngIf=\"metadata.topics?.length\">\n <p class=\"text-sm mb-1\" translate>record.metadata.topics</p>\n <div class=\"sm:pb-4 sm:pr-16\">\n <gn-ui-badge\n class=\"inline-block mr-2 mb-2 lowercase\"\n *ngFor=\"let topic of metadata.topics\"\n >{{ topic }}</gn-ui-badge\n >\n </div>\n </div>\n </div>\n</gn-ui-expandable-panel>\n", styles: [".md-description ::ng-deep a{@apply underline text-blue-600 hover:text-blue-800;}.info-grid>:nth-last-child(n+3){padding-bottom:10px;@apply border-b border-gray-300;}:host ::ng-deep gn-ui-copy-text-button button mat-icon{transform:scale(.8)}\n"], dependencies: [{ kind: "directive", type: i1$3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: ExpandablePanelComponent, selector: "gn-ui-expandable-panel", inputs: ["title", "collapsed"] }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: CopyTextButtonComponent, selector: "gn-ui-copy-text-button", inputs: ["text", "tooltipText", "displayText", "rows"] }, { kind: "component", type: MarkdownParserComponent, selector: "gn-ui-markdown-parser", inputs: ["textContent"] }, { kind: "component", type: ThumbnailComponent, selector: "gn-ui-thumbnail", inputs: ["thumbnailUrl", "fit"], outputs: ["placeholderShown"] }, { kind: "component", type: BadgeComponent, selector: "gn-ui-badge", inputs: ["clickable"] }, { kind: "component", type: ContentGhostComponent, selector: "gn-ui-content-ghost", inputs: ["showContent", "ghostClass"] }, { kind: "directive", type: GnUiLinkifyDirective, selector: "[gnUiLinkify]" }, { kind: "component", type: MaxLinesComponent, selector: "gn-ui-max-lines", inputs: ["maxLines"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
27599
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MetadataInfoComponent, selector: "gn-ui-metadata-info", inputs: { metadata: "metadata", incomplete: "incomplete" }, outputs: { keyword: "keyword" }, ngImport: i0, template: "<div class=\"mb-6 md-description sm:mb-4 sm:pr-16\">\n <gn-ui-content-ghost ghostClass=\"h-32\" [showContent]=\"fieldReady('abstract')\">\n <gn-ui-max-lines [maxLines]=\"6\" *ngIf=\"metadata.abstract\">\n <div>\n <gn-ui-markdown-parser\n [textContent]=\"metadata.abstract\"\n ></gn-ui-markdown-parser>\n </div>\n </gn-ui-max-lines>\n <div *ngIf=\"metadata.keywords?.length\">\n <p class=\"mt-6 mb-3 font-medium text-primary text-sm\" translate>\n record.metadata.keywords\n </p>\n <div class=\"sm:pb-4 flex flex-wrap gap-2\">\n <gn-ui-badge\n class=\"inline-block lowercase\"\n (click)=\"onKeywordClick(keyword)\"\n [clickable]=\"true\"\n *ngFor=\"let keyword of metadata.keywords\"\n >{{ keyword.label }}</gn-ui-badge\n >\n </div>\n </div>\n </gn-ui-content-ghost>\n</div>\n\n<gn-ui-expandable-panel [title]=\"'record.metadata.usage' | translate\">\n <div class=\"flex flex-col gap-[10px] mr-4 py-[12px] rounded text-gray-900\">\n <ng-container *ngFor=\"let license of licenses\">\n <div *ngIf=\"license.url; else noUrl\" class=\"text-primary\">\n <a\n [href]=\"license.url\"\n target=\"_blank\"\n class=\"cursor-pointer hover:underline transition-all\"\n >\n {{ license.text }}\n <mat-icon\n class=\"material-symbols-outlined !w-[12px] !h-[12px] !text-[12px] opacity-75 shrink-0\"\n >open_in_new</mat-icon\n >\n </a>\n </div>\n <ng-template #noUrl>\n <div class=\"text-primary\" gnUiLinkify>\n {{ license.text }}\n </div>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"legalConstraints.length\">\n <gn-ui-markdown-parser\n *ngFor=\"let constraint of legalConstraints\"\n [textContent]=\"constraint\"\n >\n </gn-ui-markdown-parser>\n </ng-container>\n <ng-container *ngIf=\"otherConstraints.length\">\n <div gnUiLinkify *ngFor=\"let constraint of otherConstraints\">\n <h5 translate class=\"font-medium text-black text-sm mb-[2px] mt-[16px]\">\n record.metadata.otherConstraints\n </h5>\n <gn-ui-markdown-parser [textContent]=\"constraint\">\n </gn-ui-markdown-parser>\n </div>\n </ng-container>\n\n <span class=\"noUsage\" *ngIf=\"!hasUsage\">\n {{ 'record.metadata.noUsage' | translate }}\n </span>\n </div>\n</gn-ui-expandable-panel>\n<gn-ui-expandable-panel\n *ngIf=\"\n metadata.lineage ||\n metadata.recordUpdated ||\n metadata.updateFrequency ||\n metadata.status\n \"\n [title]=\"'record.metadata.details' | translate\"\n>\n <div *ngIf=\"metadata.lineage\" class=\"text-gray-900 flex flex-col mt-4 gap-2\">\n <p class=\"whitespace-pre-line break-words text-gray-900\" gnUiLinkify>\n {{ metadata.lineage }}\n </p>\n </div>\n <div class=\"flex flex-row gap-6 mt-5 mb-8\" *ngIf=\"resourceContact\">\n <div\n *ngIf=\"resourceContact.organization?.logoUrl?.href\"\n class=\"flex items-center justify-center border-solid border border-gray-300 rounded-md bg-white h-32 overflow-hidden\"\n >\n <gn-ui-thumbnail\n class=\"relative h-full w-full\"\n [thumbnailUrl]=\"resourceContact.organization.logoUrl.href\"\n fit=\"contain\"\n ></gn-ui-thumbnail>\n </div>\n <div class=\"flex flex-col gap-1\">\n <p class=\"text-sm font-medium\" translate>record.metadata.producer</p>\n <div\n class=\"text-primary font-title text-21 mr-2 cursor-pointer hover:underline\"\n data-cy=\"organization-name\"\n >\n {{ resourceContact.organization?.name }}\n </div>\n <div *ngIf=\"resourceContact.organization?.website\">\n <a\n [href]=\"resourceContact.organization.website\"\n target=\"_blank\"\n class=\"contact-website text-primary text-sm cursor-pointer hover:underline transition-all\"\n >{{ resourceContact.organization.website }}\n <mat-icon\n class=\"material-symbols-outlined !w-[12px] !h-[12px] !text-[12px] opacity-75 shrink-0\"\n >open_in_new</mat-icon\n >\n </a>\n </div>\n <div class=\"mt-4\" *ngIf=\"resourceContact.email\">\n <div class=\"flex\">\n <mat-icon\n class=\"material-symbols-outlined !w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n >\n mail_outline</mat-icon\n >\n <a\n *ngIf=\"resourceContact.email\"\n [href]=\"'mailto:' + resourceContact.email\"\n class=\"text-sm hover:underline ml-2\"\n target=\"_blank\"\n data-cy=\"contact-email\"\n >{{ resourceContact?.email }}</a\n >\n </div>\n </div>\n </div>\n </div>\n <div\n class=\"py-6 px-6 rounded bg-gray-100 grid grid-cols-2 gap-y-6 gap-x-[20px] text-gray-700\"\n >\n <div *ngIf=\"metadata.recordCreated\">\n <p class=\"text-sm\" translate>record.metadata.creation</p>\n <p class=\"text-primary font-medium mt-1\">\n {{ metadata.recordCreated.toLocaleDateString() }}\n </p>\n </div>\n <div *ngIf=\"metadata.recordPublished\">\n <p class=\"text-sm\" translate>record.metadata.publication</p>\n <p class=\"text-primary font-medium mt-1\">\n {{ metadata.recordPublished.toLocaleDateString() }}\n </p>\n </div>\n <div *ngIf=\"updateFrequency\">\n <p class=\"text-sm\" translate>record.metadata.updateFrequency</p>\n <p\n class=\"text-primary font-medium mt-1 updateFrequency\"\n translate\n [translateParams]=\"{ count: updatedTimes }\"\n >\n {{ updateFrequency }}\n </p>\n </div>\n <div *ngIf=\"metadata.languages\">\n <p class=\"text-sm mb-1\" translate>record.metadata.languages</p>\n <div class=\"flex flex-row gap-1 flex-wrap\">\n <p\n class=\"text-primary font-medium\"\n translate\n *ngFor=\"let language of metadata.languages\"\n >\n language.{{ language }}\n </p>\n </div>\n </div>\n <div *ngIf=\"temporalExtent\">\n <p class=\"text-sm\" translate>record.metadata.temporalExtent</p>\n <div class=\"flex flex-row gap-1 mb-1 text-primary font-medium\">\n <p\n *ngIf=\"temporalExtent.start && temporalExtent.end\"\n translate\n [translateParams]=\"{\n start: temporalExtent.start,\n end: temporalExtent.end\n }\"\n >\n record.metadata.temporalExtent.fromDateToDate\n </p>\n <p\n *ngIf=\"temporalExtent.start && !temporalExtent.end\"\n translate\n [translateParams]=\"{ start: temporalExtent.start }\"\n >\n record.metadata.temporalExtent.sinceDate\n </p>\n <p\n *ngIf=\"!temporalExtent.start && temporalExtent.end\"\n translate\n [translateParams]=\"{ end: temporalExtent.end }\"\n >\n record.metadata.temporalExtent.untilDate\n </p>\n </div>\n </div>\n </div>\n</gn-ui-expandable-panel>\n<gn-ui-expandable-panel\n *ngIf=\"metadata.landingPage\"\n [title]=\"'record.metadata.technical' | translate\"\n>\n <div class=\"flex flex-col gap-4 mr-4 py-5 rounded text-gray-700\">\n <div *ngIf=\"metadata.recordUpdated\">\n <p class=\"text-sm\" translate>record.metadata.updatedOn</p>\n <p class=\"text-primary font-medium\">\n {{ metadata.recordUpdated && metadata.recordUpdated.toLocaleString() }}\n </p>\n </div>\n <div *ngIf=\"metadata.landingPage\">\n <p class=\"text-sm\" translate>record.metadata.sheet</p>\n <p class=\"text-primary font-medium\" translate>\n <a [href]=\"metadata.landingPage\" target=\"_blank\">\n <span class=\"break-all\" gnUiLinkify>{{ metadata.landingPage }}</span>\n </a>\n </p>\n </div>\n <div *ngIf=\"metadata.ownerOrganization\">\n <p class=\"text-sm\" translate>record.metadata.owner</p>\n <p class=\"text-primary font-medium\">\n {{ metadata.ownerOrganization.name }}\n </p>\n </div>\n <div *ngIf=\"metadata.uniqueIdentifier\">\n <p class=\"text-sm\" translate>record.metadata.uniqueId</p>\n <div class=\"flex flex-row content-align items-end gap-1\">\n <gn-ui-copy-text-button\n [text]=\"metadata.uniqueIdentifier\"\n [tooltipText]=\"'tooltip.id.copy' | translate\"\n [displayText]=\"false\"\n ></gn-ui-copy-text-button>\n <p class=\"text-primary font-medium\">\n {{ metadata.uniqueIdentifier }}\n </p>\n </div>\n </div>\n <div *ngIf=\"metadata.topics?.length\">\n <p class=\"text-sm mb-1\" translate>record.metadata.topics</p>\n <div class=\"sm:pb-4 sm:pr-16\">\n <gn-ui-badge\n class=\"inline-block mr-2 mb-2 lowercase\"\n *ngFor=\"let topic of metadata.topics\"\n >{{ topic }}</gn-ui-badge\n >\n </div>\n </div>\n </div>\n</gn-ui-expandable-panel>\n", styles: [".md-description ::ng-deep a{@apply underline text-blue-600 hover:text-blue-800;}.info-grid>:nth-last-child(n+3){padding-bottom:10px;@apply border-b border-gray-300;}:host ::ng-deep gn-ui-copy-text-button button mat-icon{transform:scale(.8)}\n"], dependencies: [{ kind: "directive", type: i1$3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: ExpandablePanelComponent, selector: "gn-ui-expandable-panel", inputs: ["title", "collapsed"] }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: CopyTextButtonComponent, selector: "gn-ui-copy-text-button", inputs: ["text", "tooltipText", "displayText", "rows"] }, { kind: "component", type: BadgeComponent, selector: "gn-ui-badge", inputs: ["clickable", "removable"], outputs: ["badgeRemoveClicked"] }, { kind: "component", type: MarkdownParserComponent, selector: "gn-ui-markdown-parser", inputs: ["textContent"] }, { kind: "component", type: ThumbnailComponent, selector: "gn-ui-thumbnail", inputs: ["thumbnailUrl", "fit"], outputs: ["placeholderShown"] }, { kind: "component", type: MaxLinesComponent, selector: "gn-ui-max-lines", inputs: ["maxLines"] }, { kind: "component", type: ContentGhostComponent, selector: "gn-ui-content-ghost", inputs: ["showContent", "ghostClass"] }, { kind: "directive", type: GnUiLinkifyDirective, selector: "[gnUiLinkify]" }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
27296
27600
|
}
|
|
27297
27601
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MetadataInfoComponent, decorators: [{
|
|
27298
27602
|
type: Component,
|
|
@@ -27425,7 +27729,7 @@ class PaginationComponent {
|
|
|
27425
27729
|
this.setPage(this.currentPage - 1);
|
|
27426
27730
|
}
|
|
27427
27731
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PaginationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27428
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PaginationComponent, selector: "gn-ui-pagination", inputs: { currentPage: "currentPage", nPages: "nPages", hideButton: "hideButton" }, outputs: { newCurrentPageEvent: "newCurrentPageEvent" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"relative\">\n <div class=\"sm:absolute sm:inset-0\" *ngIf=\"!hideButton\">\n <gn-ui-button\n (buttonClick)=\"nextPage()\"\n type=\"secondary\"\n [disabled]=\"currentPage === nPages\"\n extraClass=\"lg:m-auto !p-[22px]\"\n >\n <span class=\"uppercase font-medium tracking-widest\" translate\n >pagination.nextPage</span\n >\n </gn-ui-button>\n </div>\n <div\n class=\"relative pointer-events-none flex flex-row justify-start sm:justify-end\"\n >\n <div class=\"pointer-events-auto flex flex-row items-center py-[13px]\">\n <span class=\"mr-3 capitalize text-sm text-gray-900\" translate\n >pagination.page</span\n >\n <input\n type=\"number\"\n [ngModel]=\"currentPage\"\n [min]=\"1\"\n [max]=\"nPages\"\n (ngModelChange)=\"setPage($event)\"\n class=\"border border-gray-300 rounded w-[54px] h-[34px] pl-[12px] mr-3 text-center\"\n />\n <span class=\"mr-3 text-sm text-gray-900\"\n ><span translate>pagination.pageOf</span> {{ nPages }}</span\n >\n <gn-ui-button\n (buttonClick)=\"previousPage()\"\n id=\"navigate_previous\"\n class=\"mr-2\"\n [disabled]=\"currentPage === 1\"\n [type]=\"'light'\"\n extraClass=\"!px-[3px]\"\n data-cy=\"prev-page\"\n >\n <mat-icon class=\"material-symbols-outlined\">navigate_before</mat-icon>\n </gn-ui-button>\n <gn-ui-button\n (buttonClick)=\"nextPage()\"\n id=\"navigate_next\"\n [disabled]=\"currentPage === nPages\"\n [type]=\"'light'\"\n extraClass=\"!px-[3px]\"\n data-cy=\"next-page\"\n >\n <mat-icon class=\"material-symbols-outlined\">navigate_next</mat-icon>\n </gn-ui-button>\n </div>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "directive", type: i2$
|
|
27732
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PaginationComponent, selector: "gn-ui-pagination", inputs: { currentPage: "currentPage", nPages: "nPages", hideButton: "hideButton" }, outputs: { newCurrentPageEvent: "newCurrentPageEvent" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"relative\">\n <div class=\"sm:absolute sm:inset-0\" *ngIf=\"!hideButton\">\n <gn-ui-button\n (buttonClick)=\"nextPage()\"\n type=\"secondary\"\n [disabled]=\"currentPage === nPages\"\n extraClass=\"lg:m-auto !p-[22px]\"\n >\n <span class=\"uppercase font-medium tracking-widest\" translate\n >pagination.nextPage</span\n >\n </gn-ui-button>\n </div>\n <div\n class=\"relative pointer-events-none flex flex-row justify-start sm:justify-end\"\n >\n <div class=\"pointer-events-auto flex flex-row items-center py-[13px]\">\n <span class=\"mr-3 capitalize text-sm text-gray-900\" translate\n >pagination.page</span\n >\n <input\n type=\"number\"\n [ngModel]=\"currentPage\"\n [min]=\"1\"\n [max]=\"nPages\"\n (ngModelChange)=\"setPage($event)\"\n class=\"border border-gray-300 rounded w-[54px] h-[34px] pl-[12px] mr-3 text-center\"\n />\n <span class=\"mr-3 text-sm text-gray-900\"\n ><span translate>pagination.pageOf</span> {{ nPages }}</span\n >\n <gn-ui-button\n (buttonClick)=\"previousPage()\"\n id=\"navigate_previous\"\n class=\"mr-2\"\n [disabled]=\"currentPage === 1\"\n [type]=\"'light'\"\n extraClass=\"!px-[3px]\"\n data-cy=\"prev-page\"\n >\n <mat-icon class=\"material-symbols-outlined\">navigate_before</mat-icon>\n </gn-ui-button>\n <gn-ui-button\n (buttonClick)=\"nextPage()\"\n id=\"navigate_next\"\n [disabled]=\"currentPage === nPages\"\n [type]=\"'light'\"\n extraClass=\"!px-[3px]\"\n data-cy=\"next-page\"\n >\n <mat-icon class=\"material-symbols-outlined\">navigate_next</mat-icon>\n </gn-ui-button>\n </div>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "directive", type: i2$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$2.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i2$2.MaxValidator, selector: "input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]", inputs: ["max"] }, { kind: "directive", type: i2$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
27429
27733
|
}
|
|
27430
27734
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PaginationComponent, decorators: [{
|
|
27431
27735
|
type: Component,
|
|
@@ -27553,7 +27857,7 @@ class RecordApiFormComponent {
|
|
|
27553
27857
|
}
|
|
27554
27858
|
}
|
|
27555
27859
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RecordApiFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27556
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RecordApiFormComponent, selector: "gn-ui-record-api-form", inputs: { apiLink: "apiLink" }, ngImport: i0, template: "<div class=\"flex flex-col gap-8\">\n <div class=\"flex flex-col bg-white p-8 ng-star-inserted shadow-xl gap-8\">\n <div class=\"flex flex-row\">\n <div class=\"text-[16px] text-black truncate font-title w-11/12\" translate>\n record.metadata.api.form.create\n </div>\n <button\n (click)=\"resetUrl()\"\n class=\"bg-primary-opacity-50 inline-flex items-center justify-center px-2 py-1 text-13 font-medium leading-none text-white rounded capitalize text-primary-lightest hover:bg-primary transition-colors\"\n >\n <p class=\"text-[13px] uppercase\" translate>\n record.metadata.api.form.reset\n </p>\n </button>\n </div>\n <div class=\"flex flex-row flex-wrap justify-between grow gap-5\">\n <div class=\"flex flex-col gap-3\">\n <p class=\"text-[14px]\" translate>record.metadata.api.form.limit</p>\n <div class=\"flex flex-row items-center gap-2\">\n <gn-ui-text-input\n class=\"mr-2 w-20\"\n (valueChange)=\"setLimit($event)\"\n [value]=\"displayLimit$ | async\"\n hint=\"\"\n >\n </gn-ui-text-input>\n <div class=\"flex items-center\">\n <input\n class=\"mr-2 cursor-pointer\"\n type=\"checkbox\"\n [checked]=\"noLimitChecked$ | async\"\n (change)=\"setLimit('-1')\"\n />\n <span class=\"text-sm\" translate\n >record.metadata.api.form.limit.all</span\n >\n </div>\n </div>\n </div>\n <div class=\"flex flex-col gap-3 relative\">\n <p class=\"text-sm\" [class.text-gray-600]=\"!supportOffset\" translate>\n record.metadata.api.form.offset\n </p>\n <div class=\"flex items-center\">\n <gn-ui-text-input\n class=\"w-20\"\n [value]=\"offset$ | async\"\n [disabled]=\"!supportOffset\"\n (valueChange)=\"supportOffset ? setOffset($event) : null\"\n hint=\"\"\n >\n </gn-ui-text-input>\n <div\n *ngIf=\"!supportOffset\"\n class=\"flex items-center gap-2 text-orange-500 z-10 ml-3\"\n >\n <span\n class=\"material-symbols-outlined\"\n matTooltip=\"Not supported on this service\"\n >\n warning\n </span>\n </div>\n </div>\n </div>\n <div class=\"flex flex-col gap-3\">\n <p class=\"text-sm\" translate>record.metadata.api.form.type</p>\n <gn-ui-dropdown-selector\n #dropdown\n [title]=\"''\"\n extraBtnClass=\"secondary min-w-full !w-40 !text-black\"\n [showTitle]=\"false\"\n class=\"text-black\"\n [choices]=\"outputFormats\"\n (selectValue)=\"setFormat($event)\"\n [selected]=\"format$ | async\"\n ></gn-ui-dropdown-selector>\n </div>\n </div>\n </div>\n <div class=\"flex flex-col gap-3 mb-3\">\n <div class=\"text-sm text-black truncate font-title w-11/12\" translate>\n record.metadata.api.form.customUrl\n </div>\n <div class=\"bg-white rounded-lg\">\n <gn-ui-copy-text-button\n [text]=\"apiQueryUrl$ | async\"\n ></gn-ui-copy-text-button>\n </div>\n </div>\n</div>\n", styles: [":host ::ng-deep input{color:#000;opacity:1}:host ::ng-deep gn-ui-copy-text-button input[type=text]{color:#000;background-color:#fff}:host ::ng-deep gn-ui-copy-text-button button,host ::ng-deep gn-ui-copy-text-button button:hover{background-color:var(--color-secondary)!important}:host ::ng-deep gn-ui-copy-text-button button mat-icon{color:#fff!important;opacity:1!important}:host ::ng-deep gn-ui-copy-text-button button:hover mat-icon{color:#d3d3d3!important}\n"], dependencies: [{ kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$
|
|
27860
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RecordApiFormComponent, selector: "gn-ui-record-api-form", inputs: { apiLink: "apiLink" }, ngImport: i0, template: "<div class=\"flex flex-col gap-8\">\n <div class=\"flex flex-col bg-white p-8 ng-star-inserted shadow-xl gap-8\">\n <div class=\"flex flex-row\">\n <div class=\"text-[16px] text-black truncate font-title w-11/12\" translate>\n record.metadata.api.form.create\n </div>\n <button\n (click)=\"resetUrl()\"\n class=\"bg-primary-opacity-50 inline-flex items-center justify-center px-2 py-1 text-13 font-medium leading-none text-white rounded capitalize text-primary-lightest hover:bg-primary transition-colors\"\n >\n <p class=\"text-[13px] uppercase\" translate>\n record.metadata.api.form.reset\n </p>\n </button>\n </div>\n <div class=\"flex flex-row flex-wrap justify-between grow gap-5\">\n <div class=\"flex flex-col gap-3\">\n <p class=\"text-[14px]\" translate>record.metadata.api.form.limit</p>\n <div class=\"flex flex-row items-center gap-2\">\n <gn-ui-text-input\n class=\"mr-2 w-20\"\n (valueChange)=\"setLimit($event)\"\n [value]=\"displayLimit$ | async\"\n hint=\"\"\n >\n </gn-ui-text-input>\n <div class=\"flex items-center\">\n <input\n class=\"mr-2 cursor-pointer\"\n type=\"checkbox\"\n [checked]=\"noLimitChecked$ | async\"\n (change)=\"setLimit('-1')\"\n />\n <span class=\"text-sm\" translate\n >record.metadata.api.form.limit.all</span\n >\n </div>\n </div>\n </div>\n <div class=\"flex flex-col gap-3 relative\">\n <p class=\"text-sm\" [class.text-gray-600]=\"!supportOffset\" translate>\n record.metadata.api.form.offset\n </p>\n <div class=\"flex items-center\">\n <gn-ui-text-input\n class=\"w-20\"\n [value]=\"offset$ | async\"\n [disabled]=\"!supportOffset\"\n (valueChange)=\"supportOffset ? setOffset($event) : null\"\n hint=\"\"\n >\n </gn-ui-text-input>\n <div\n *ngIf=\"!supportOffset\"\n class=\"flex items-center gap-2 text-orange-500 z-10 ml-3\"\n >\n <span\n class=\"material-symbols-outlined\"\n matTooltip=\"Not supported on this service\"\n >\n warning\n </span>\n </div>\n </div>\n </div>\n <div class=\"flex flex-col gap-3\">\n <p class=\"text-sm\" translate>record.metadata.api.form.type</p>\n <gn-ui-dropdown-selector\n #dropdown\n [title]=\"''\"\n extraBtnClass=\"secondary min-w-full !w-40 !text-black\"\n [showTitle]=\"false\"\n class=\"text-black\"\n [choices]=\"outputFormats\"\n (selectValue)=\"setFormat($event)\"\n [selected]=\"format$ | async\"\n ></gn-ui-dropdown-selector>\n </div>\n </div>\n </div>\n <div class=\"flex flex-col gap-3 mb-3\">\n <div class=\"text-sm text-black truncate font-title w-11/12\" translate>\n record.metadata.api.form.customUrl\n </div>\n <div class=\"bg-white rounded-lg\">\n <gn-ui-copy-text-button\n [text]=\"apiQueryUrl$ | async\"\n ></gn-ui-copy-text-button>\n </div>\n </div>\n</div>\n", styles: [":host ::ng-deep input{color:#000;opacity:1}:host ::ng-deep gn-ui-copy-text-button input[type=text]{color:#000;background-color:#fff}:host ::ng-deep gn-ui-copy-text-button button,host ::ng-deep gn-ui-copy-text-button button:hover{background-color:var(--color-secondary)!important}:host ::ng-deep gn-ui-copy-text-button button mat-icon{color:#fff!important;opacity:1!important}:host ::ng-deep gn-ui-copy-text-button button:hover mat-icon{color:#d3d3d3!important}\n"], dependencies: [{ kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$3.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: DropdownSelectorComponent, selector: "gn-ui-dropdown-selector", inputs: ["title", "showTitle", "ariaName", "choices", "selected", "maxRows", "extraBtnClass", "minWidth", "disabled"], outputs: ["selectValue"] }, { kind: "component", type: TextInputComponent, selector: "gn-ui-text-input", inputs: ["value", "extraClass", "hint", "required", "disabled"], outputs: ["valueChange"] }, { kind: "component", type: CopyTextButtonComponent, selector: "gn-ui-copy-text-button", inputs: ["text", "tooltipText", "displayText", "rows"] }, { kind: "pipe", type: i1$3.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
27557
27861
|
}
|
|
27558
27862
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RecordApiFormComponent, decorators: [{
|
|
27559
27863
|
type: Component,
|
|
@@ -27563,13 +27867,32 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
27563
27867
|
}] } });
|
|
27564
27868
|
|
|
27565
27869
|
class RelatedRecordCardComponent {
|
|
27870
|
+
constructor() {
|
|
27871
|
+
this.extraClass = '';
|
|
27872
|
+
this.baseClasses = [
|
|
27873
|
+
'w-72',
|
|
27874
|
+
'h-96',
|
|
27875
|
+
'overflow-hidden',
|
|
27876
|
+
'rounded-lg',
|
|
27877
|
+
'bg-white',
|
|
27878
|
+
'cursor-pointer',
|
|
27879
|
+
'block',
|
|
27880
|
+
'hover:-translate-y-2 ',
|
|
27881
|
+
'duration-[180ms]',
|
|
27882
|
+
].join(' ');
|
|
27883
|
+
}
|
|
27884
|
+
get classList() {
|
|
27885
|
+
return `${this.baseClasses} ${this.extraClass}`;
|
|
27886
|
+
}
|
|
27566
27887
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RelatedRecordCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27567
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RelatedRecordCardComponent, selector: "gn-ui-related-record-card", inputs: { record: "record" }, ngImport: i0, template: "<a\n class=\"
|
|
27888
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RelatedRecordCardComponent, selector: "gn-ui-related-record-card", inputs: { record: "record", extraClass: "extraClass" }, ngImport: i0, template: "<a\n [class]=\"classList\"\n [routerLink]=\"['/dataset', record.uniqueIdentifier]\"\n target=\"_blank\"\n>\n <div class=\"h-52 bg-gray-100\">\n <gn-ui-thumbnail\n class=\"h-52 w-full object-cover\"\n [thumbnailUrl]=\"record.overviews?.[0]?.url.toString()\"\n ></gn-ui-thumbnail>\n </div>\n <div class=\"flex flex-col justify-between h-44 px-5 pt-4 pb-6\">\n <h4\n class=\"max-h-24 font-title text-21 text-black text-ellipsis overflow-hidden\"\n >\n {{ record.title }}\n </h4>\n <div>\n <button\n mat-raised-button\n [matTooltip]=\"'tooltip.url.open' | translate\"\n matTooltipPosition=\"above\"\n >\n <mat-icon class=\"material-symbols-outlined align-middle text-secondary\"\n >open_in_new</mat-icon\n >\n </button>\n </div>\n </div>\n</a>\n", styles: [""], dependencies: [{ kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i2$3.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "directive", type: i1$7.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: ThumbnailComponent, selector: "gn-ui-thumbnail", inputs: ["thumbnailUrl", "fit"], outputs: ["placeholderShown"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
27568
27889
|
}
|
|
27569
27890
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RelatedRecordCardComponent, decorators: [{
|
|
27570
27891
|
type: Component,
|
|
27571
|
-
args: [{ selector: 'gn-ui-related-record-card', changeDetection: ChangeDetectionStrategy.OnPush, template: "<a\n class=\"
|
|
27572
|
-
}], propDecorators: { record: [{
|
|
27892
|
+
args: [{ selector: 'gn-ui-related-record-card', changeDetection: ChangeDetectionStrategy.OnPush, template: "<a\n [class]=\"classList\"\n [routerLink]=\"['/dataset', record.uniqueIdentifier]\"\n target=\"_blank\"\n>\n <div class=\"h-52 bg-gray-100\">\n <gn-ui-thumbnail\n class=\"h-52 w-full object-cover\"\n [thumbnailUrl]=\"record.overviews?.[0]?.url.toString()\"\n ></gn-ui-thumbnail>\n </div>\n <div class=\"flex flex-col justify-between h-44 px-5 pt-4 pb-6\">\n <h4\n class=\"max-h-24 font-title text-21 text-black text-ellipsis overflow-hidden\"\n >\n {{ record.title }}\n </h4>\n <div>\n <button\n mat-raised-button\n [matTooltip]=\"'tooltip.url.open' | translate\"\n matTooltipPosition=\"above\"\n >\n <mat-icon class=\"material-symbols-outlined align-middle text-secondary\"\n >open_in_new</mat-icon\n >\n </button>\n </div>\n </div>\n</a>\n" }]
|
|
27893
|
+
}], ctorParameters: function () { return []; }, propDecorators: { record: [{
|
|
27894
|
+
type: Input
|
|
27895
|
+
}], extraClass: [{
|
|
27573
27896
|
type: Input
|
|
27574
27897
|
}] } });
|
|
27575
27898
|
|
|
@@ -27737,7 +28060,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
27737
28060
|
|
|
27738
28061
|
class FormFieldWrapperComponent {
|
|
27739
28062
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27740
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormFieldWrapperComponent, isStandalone: true, selector: "gn-ui-form-field-wrapper", inputs: { label: "label", hint: "hint" }, ngImport: i0, template: "<div class=\"h-full flex flex-col\">\n <div class=\"flex-none w-full flex flex-row items-center\">\n <span class=\"flex-none font-bold\">{{ label }}</span>\n <div class=\"flex-1 flex justify-end items-center\">\n <ng-content select=\"[form-field-interaction]\"></ng-content>\n <span\n class=\"material-symbols-outlined m-2 gn-ui-icon-small\"\n [matTooltip]=\"hint\"\n matTooltipPosition=\"above\"\n >\n help\n </span>\n </div>\n </div>\n <div class=\"flex-1\">\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i2$
|
|
28063
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormFieldWrapperComponent, isStandalone: true, selector: "gn-ui-form-field-wrapper", inputs: { label: "label", hint: "hint" }, ngImport: i0, template: "<div class=\"h-full flex flex-col\">\n <div class=\"flex-none w-full flex flex-row items-center\">\n <span class=\"flex-none font-bold\">{{ label }}</span>\n <div class=\"flex-1 flex justify-end items-center\">\n <ng-content select=\"[form-field-interaction]\"></ng-content>\n <span\n class=\"material-symbols-outlined m-2 gn-ui-icon-small\"\n [matTooltip]=\"hint\"\n matTooltipPosition=\"above\"\n >\n help\n </span>\n </div>\n </div>\n <div class=\"flex-1\">\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i2$3.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
27741
28064
|
}
|
|
27742
28065
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldWrapperComponent, decorators: [{
|
|
27743
28066
|
type: Component,
|
|
@@ -27993,7 +28316,7 @@ class UserPreviewComponent {
|
|
|
27993
28316
|
return (this.user.name + ' ' + this.user.surname).trim();
|
|
27994
28317
|
}
|
|
27995
28318
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UserPreviewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27996
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: UserPreviewComponent, selector: "gn-ui-user-preview", inputs: { user: "user", avatarPlaceholder: "avatarPlaceholder" }, ngImport: i0, template: "<figure class=\"text-center\">\n <div\n class=\"w-12 h-12 border border-primary rounded-full capitalize\"\n [matTooltip]=\"userFullName\"\n >\n <gn-ui-avatar\n [avatarUrl]=\"user.profileIcon\"\n [avatarPlaceholder]=\"avatarPlaceholder\"\n ></gn-ui-avatar>\n </div>\n</figure>\n", dependencies: [{ kind: "directive", type: i2$
|
|
28319
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: UserPreviewComponent, selector: "gn-ui-user-preview", inputs: { user: "user", avatarPlaceholder: "avatarPlaceholder" }, ngImport: i0, template: "<figure class=\"text-center\">\n <div\n class=\"w-12 h-12 border border-primary rounded-full capitalize\"\n [matTooltip]=\"userFullName\"\n >\n <gn-ui-avatar\n [avatarUrl]=\"user.profileIcon\"\n [avatarPlaceholder]=\"avatarPlaceholder\"\n ></gn-ui-avatar>\n </div>\n</figure>\n", dependencies: [{ kind: "directive", type: i2$3.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: AvatarComponent, selector: "gn-ui-avatar", inputs: ["avatarUrl", "avatarPlaceholder"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
27997
28320
|
}
|
|
27998
28321
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UserPreviewComponent, decorators: [{
|
|
27999
28322
|
type: Component,
|
|
@@ -28126,7 +28449,6 @@ class UiElementsModule {
|
|
|
28126
28449
|
UserPreviewComponent,
|
|
28127
28450
|
GnUiLinkifyDirective,
|
|
28128
28451
|
PaginationButtonsComponent,
|
|
28129
|
-
MaxLinesComponent,
|
|
28130
28452
|
RecordApiFormComponent,
|
|
28131
28453
|
UserFeedbackItemComponent,
|
|
28132
28454
|
ImageOverlayPreviewComponent], imports: [CommonModule,
|
|
@@ -28141,7 +28463,8 @@ class UiElementsModule {
|
|
|
28141
28463
|
MarkdownParserComponent,
|
|
28142
28464
|
ThumbnailComponent,
|
|
28143
28465
|
TimeSincePipe,
|
|
28144
|
-
BadgeComponent
|
|
28466
|
+
BadgeComponent,
|
|
28467
|
+
MaxLinesComponent], exports: [MetadataInfoComponent,
|
|
28145
28468
|
ContentGhostComponent,
|
|
28146
28469
|
DownloadItemComponent,
|
|
28147
28470
|
DownloadsListComponent,
|
|
@@ -28157,7 +28480,6 @@ class UiElementsModule {
|
|
|
28157
28480
|
AvatarComponent,
|
|
28158
28481
|
UserPreviewComponent,
|
|
28159
28482
|
PaginationButtonsComponent,
|
|
28160
|
-
MaxLinesComponent,
|
|
28161
28483
|
RecordApiFormComponent,
|
|
28162
28484
|
MarkdownParserComponent,
|
|
28163
28485
|
UserFeedbackItemComponent,
|
|
@@ -28173,7 +28495,8 @@ class UiElementsModule {
|
|
|
28173
28495
|
UiInputsModule,
|
|
28174
28496
|
FormsModule,
|
|
28175
28497
|
ThumbnailComponent,
|
|
28176
|
-
BadgeComponent
|
|
28498
|
+
BadgeComponent,
|
|
28499
|
+
MaxLinesComponent] }); }
|
|
28177
28500
|
}
|
|
28178
28501
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UiElementsModule, decorators: [{
|
|
28179
28502
|
type: NgModule,
|
|
@@ -28194,6 +28517,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
28194
28517
|
ThumbnailComponent,
|
|
28195
28518
|
TimeSincePipe,
|
|
28196
28519
|
BadgeComponent,
|
|
28520
|
+
MaxLinesComponent,
|
|
28197
28521
|
],
|
|
28198
28522
|
declarations: [
|
|
28199
28523
|
MetadataInfoComponent,
|
|
@@ -28212,7 +28536,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
28212
28536
|
UserPreviewComponent,
|
|
28213
28537
|
GnUiLinkifyDirective,
|
|
28214
28538
|
PaginationButtonsComponent,
|
|
28215
|
-
MaxLinesComponent,
|
|
28216
28539
|
RecordApiFormComponent,
|
|
28217
28540
|
UserFeedbackItemComponent,
|
|
28218
28541
|
ImageOverlayPreviewComponent,
|
|
@@ -28234,7 +28557,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
28234
28557
|
AvatarComponent,
|
|
28235
28558
|
UserPreviewComponent,
|
|
28236
28559
|
PaginationButtonsComponent,
|
|
28237
|
-
MaxLinesComponent,
|
|
28238
28560
|
RecordApiFormComponent,
|
|
28239
28561
|
MarkdownParserComponent,
|
|
28240
28562
|
UserFeedbackItemComponent,
|
|
@@ -28347,6 +28669,113 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
28347
28669
|
}]
|
|
28348
28670
|
}] });
|
|
28349
28671
|
|
|
28672
|
+
class ResultsTableComponent {
|
|
28673
|
+
constructor() {
|
|
28674
|
+
this.records = [];
|
|
28675
|
+
this.selectedRecordsIdentifiers = [];
|
|
28676
|
+
this.sortOrder = null;
|
|
28677
|
+
this.recordHasDraft = () => false;
|
|
28678
|
+
// emits the column (field) as well as the order
|
|
28679
|
+
this.sortByChange = new EventEmitter();
|
|
28680
|
+
this.recordClick = new EventEmitter();
|
|
28681
|
+
this.recordsSelectedChange = new EventEmitter();
|
|
28682
|
+
}
|
|
28683
|
+
dateToString(date) {
|
|
28684
|
+
return date?.toLocaleDateString(undefined, {
|
|
28685
|
+
year: 'numeric',
|
|
28686
|
+
month: 'long',
|
|
28687
|
+
day: 'numeric',
|
|
28688
|
+
timeZone: 'UTC',
|
|
28689
|
+
});
|
|
28690
|
+
}
|
|
28691
|
+
getStatus(isPublishedToAll) {
|
|
28692
|
+
return isPublishedToAll ? 'published' : 'not published';
|
|
28693
|
+
}
|
|
28694
|
+
getRecordFormats(record) {
|
|
28695
|
+
if (record.kind === 'service' || !('distributions' in record)) {
|
|
28696
|
+
return [];
|
|
28697
|
+
}
|
|
28698
|
+
const formats = Array.from(new Set(record.distributions.map((distribution) => getFileFormat(distribution)))).filter((format) => !!format);
|
|
28699
|
+
formats.sort((a, b) => getFormatPriority(b) - getFormatPriority(a));
|
|
28700
|
+
return formats;
|
|
28701
|
+
}
|
|
28702
|
+
formatUserInfo(userInfo) {
|
|
28703
|
+
const infos = (typeof userInfo === 'string' ? userInfo : '').split('|');
|
|
28704
|
+
if (infos && infos.length === 4) {
|
|
28705
|
+
return `${infos[2]} ${infos[1]}`;
|
|
28706
|
+
}
|
|
28707
|
+
return undefined;
|
|
28708
|
+
}
|
|
28709
|
+
getBadgeColor(format) {
|
|
28710
|
+
return getBadgeColor(format);
|
|
28711
|
+
}
|
|
28712
|
+
handleRecordClick(item) {
|
|
28713
|
+
this.recordClick.emit(item);
|
|
28714
|
+
}
|
|
28715
|
+
setSortBy(col, order) {
|
|
28716
|
+
this.sortByChange.emit([col, order]);
|
|
28717
|
+
}
|
|
28718
|
+
isSortedBy(col) {
|
|
28719
|
+
if (!this.sortOrder) {
|
|
28720
|
+
return null;
|
|
28721
|
+
}
|
|
28722
|
+
const sortArray = Array.isArray(this.sortOrder[0])
|
|
28723
|
+
? this.sortOrder
|
|
28724
|
+
: [this.sortOrder];
|
|
28725
|
+
for (const sort of sortArray) {
|
|
28726
|
+
if (sort[1] === col) {
|
|
28727
|
+
return sort[0];
|
|
28728
|
+
}
|
|
28729
|
+
}
|
|
28730
|
+
return null;
|
|
28731
|
+
}
|
|
28732
|
+
isChecked(record) {
|
|
28733
|
+
return this.selectedRecordsIdentifiers.includes(record.uniqueIdentifier);
|
|
28734
|
+
}
|
|
28735
|
+
handleRecordSelectedChange(selected, record) {
|
|
28736
|
+
this.recordsSelectedChange.emit([[record], selected]);
|
|
28737
|
+
}
|
|
28738
|
+
async toggleSelectAll() {
|
|
28739
|
+
this.recordsSelectedChange.emit([this.records, !this.isAllSelected()]);
|
|
28740
|
+
}
|
|
28741
|
+
isAllSelected() {
|
|
28742
|
+
return this.records.every((record) => this.selectedRecordsIdentifiers.includes(record.uniqueIdentifier));
|
|
28743
|
+
}
|
|
28744
|
+
isSomeSelected() {
|
|
28745
|
+
const allSelected = this.records.every((record) => this.selectedRecordsIdentifiers.includes(record.uniqueIdentifier));
|
|
28746
|
+
const someSelected = this.records.some((record) => this.selectedRecordsIdentifiers.includes(record.uniqueIdentifier));
|
|
28747
|
+
return !allSelected && someSelected;
|
|
28748
|
+
}
|
|
28749
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ResultsTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
28750
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ResultsTableComponent, isStandalone: true, selector: "gn-ui-results-table", inputs: { records: "records", selectedRecordsIdentifiers: "selectedRecordsIdentifiers", sortOrder: "sortOrder", recordHasDraft: "recordHasDraft" }, outputs: { sortByChange: "sortByChange", recordClick: "recordClick", recordsSelectedChange: "recordsSelectedChange" }, ngImport: i0, template: "<gn-ui-interactive-table\n [items]=\"records\"\n (itemClick)=\"handleRecordClick($event)\"\n>\n <!-- SELECTED COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header>\n <gn-ui-checkbox\n [checked]=\"isAllSelected()\"\n [indeterminate]=\"isSomeSelected()\"\n (changed)=\"toggleSelectAll()\"\n type=\"default\"\n class=\"-m-2 mr-3\"\n >\n </gn-ui-checkbox>\n </ng-template>\n <ng-template #cell let-item>\n <gn-ui-checkbox\n [checked]=\"isChecked(item)\"\n (changed)=\"handleRecordSelectedChange($event, item)\"\n class=\"-m-2\"\n type=\"default\"\n ></gn-ui-checkbox>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- TITLE COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('resourceTitleObject.default.keyword')\"\n (sortChange)=\"setSortBy('resourceTitleObject.default.keyword', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.title</span>\n </ng-template>\n <ng-template #cell let-item>\n <div class=\"flex flex-row items-center gap-2 max-w-full\">\n <span class=\"overflow-hidden text-ellipsis\">{{ item.title }}</span>\n <gn-ui-badge\n *ngIf=\"recordHasDraft(item)\"\n [style.--gn-ui-badge-padding]=\"'0.4em 0.6em'\"\n [style.--gn-ui-badge-text-color]=\"'#3d2006'\"\n [style.--gn-ui-badge-background-color]=\"'#ffbc7b'\"\n [style.--gn-ui-badge-rounded]=\"'4px'\"\n >\n <span translate>dashboard.records.hasDraft</span>\n </gn-ui-badge>\n </div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- FORMATS COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header>\n <span translate>record.metadata.formats</span>\n </ng-template>\n <ng-template #cell let-item>\n <div\n class=\"flex justify-start items-center gap-2\"\n *ngIf=\"getRecordFormats(item) as formats\"\n [title]=\"formats.join(', ')\"\n >\n <span\n class=\"badge-btn min-w-[45px] text-sm text-white px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[0])\"\n *ngIf=\"formats[0]\"\n >\n {{ formats[0] }}\n </span>\n <span\n class=\"badge-btn min-w-[45px] text-sm text-white px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[1])\"\n *ngIf=\"formats[1]\"\n >\n {{ formats[1] }}\n </span>\n <div class=\"shrink-0\" *ngIf=\"formats.slice(2).length > 0\">\n <span>+{{ formats.slice(2).length }}</span>\n </div>\n </div>\n <div *ngIf=\"!getRecordFormats(item)\"></div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- OWNER COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('recordOwner')\"\n (sortChange)=\"setSortBy('recordOwner', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.author</span>\n </ng-template>\n <ng-template #cell let-item>\n <mat-icon class=\"material-symbols-outlined\">person</mat-icon>\n <span>{{ formatUserInfo(item.extras?.ownerInfo) }}</span>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- STATUS COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header>\n <span translate>record.metadata.status</span>\n </ng-template>\n <ng-template #cell let-item>\n {{ item.status }}\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- UPDATE DATE COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('changeDate')\"\n (sortChange)=\"setSortBy('changeDate', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.updatedOn</span>\n </ng-template>\n <ng-template #cell let-item>\n {{ dateToString(item.recordUpdated) }}\n </ng-template>\n </gn-ui-interactive-table-column>\n</gn-ui-interactive-table>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: UiInputsModule }, { kind: "component", type: CheckboxComponent, selector: "gn-ui-checkbox", inputs: ["type", "checked", "indeterminate"], outputs: ["changed"] }, { kind: "component", type: BadgeComponent, selector: "gn-ui-badge", inputs: ["clickable", "removable"], outputs: ["badgeRemoveClicked"] }, { kind: "component", type: InteractiveTableComponent, selector: "gn-ui-interactive-table", inputs: ["items"], outputs: ["itemClick"] }, { kind: "component", type: InteractiveTableColumnComponent, selector: "gn-ui-interactive-table-column", inputs: ["grow", "sortable", "activeSort"], outputs: ["sortChange"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }] }); }
|
|
28751
|
+
}
|
|
28752
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ResultsTableComponent, decorators: [{
|
|
28753
|
+
type: Component,
|
|
28754
|
+
args: [{ selector: 'gn-ui-results-table', standalone: true, imports: [
|
|
28755
|
+
CommonModule,
|
|
28756
|
+
UiInputsModule,
|
|
28757
|
+
InteractiveTableComponent,
|
|
28758
|
+
InteractiveTableColumnComponent,
|
|
28759
|
+
MatIconModule,
|
|
28760
|
+
TranslateModule,
|
|
28761
|
+
BadgeComponent,
|
|
28762
|
+
], template: "<gn-ui-interactive-table\n [items]=\"records\"\n (itemClick)=\"handleRecordClick($event)\"\n>\n <!-- SELECTED COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header>\n <gn-ui-checkbox\n [checked]=\"isAllSelected()\"\n [indeterminate]=\"isSomeSelected()\"\n (changed)=\"toggleSelectAll()\"\n type=\"default\"\n class=\"-m-2 mr-3\"\n >\n </gn-ui-checkbox>\n </ng-template>\n <ng-template #cell let-item>\n <gn-ui-checkbox\n [checked]=\"isChecked(item)\"\n (changed)=\"handleRecordSelectedChange($event, item)\"\n class=\"-m-2\"\n type=\"default\"\n ></gn-ui-checkbox>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- TITLE COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('resourceTitleObject.default.keyword')\"\n (sortChange)=\"setSortBy('resourceTitleObject.default.keyword', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.title</span>\n </ng-template>\n <ng-template #cell let-item>\n <div class=\"flex flex-row items-center gap-2 max-w-full\">\n <span class=\"overflow-hidden text-ellipsis\">{{ item.title }}</span>\n <gn-ui-badge\n *ngIf=\"recordHasDraft(item)\"\n [style.--gn-ui-badge-padding]=\"'0.4em 0.6em'\"\n [style.--gn-ui-badge-text-color]=\"'#3d2006'\"\n [style.--gn-ui-badge-background-color]=\"'#ffbc7b'\"\n [style.--gn-ui-badge-rounded]=\"'4px'\"\n >\n <span translate>dashboard.records.hasDraft</span>\n </gn-ui-badge>\n </div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- FORMATS COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header>\n <span translate>record.metadata.formats</span>\n </ng-template>\n <ng-template #cell let-item>\n <div\n class=\"flex justify-start items-center gap-2\"\n *ngIf=\"getRecordFormats(item) as formats\"\n [title]=\"formats.join(', ')\"\n >\n <span\n class=\"badge-btn min-w-[45px] text-sm text-white px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[0])\"\n *ngIf=\"formats[0]\"\n >\n {{ formats[0] }}\n </span>\n <span\n class=\"badge-btn min-w-[45px] text-sm text-white px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[1])\"\n *ngIf=\"formats[1]\"\n >\n {{ formats[1] }}\n </span>\n <div class=\"shrink-0\" *ngIf=\"formats.slice(2).length > 0\">\n <span>+{{ formats.slice(2).length }}</span>\n </div>\n </div>\n <div *ngIf=\"!getRecordFormats(item)\"></div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- OWNER COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('recordOwner')\"\n (sortChange)=\"setSortBy('recordOwner', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.author</span>\n </ng-template>\n <ng-template #cell let-item>\n <mat-icon class=\"material-symbols-outlined\">person</mat-icon>\n <span>{{ formatUserInfo(item.extras?.ownerInfo) }}</span>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- STATUS COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header>\n <span translate>record.metadata.status</span>\n </ng-template>\n <ng-template #cell let-item>\n {{ item.status }}\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- UPDATE DATE COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('changeDate')\"\n (sortChange)=\"setSortBy('changeDate', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.updatedOn</span>\n </ng-template>\n <ng-template #cell let-item>\n {{ dateToString(item.recordUpdated) }}\n </ng-template>\n </gn-ui-interactive-table-column>\n</gn-ui-interactive-table>\n" }]
|
|
28763
|
+
}], propDecorators: { records: [{
|
|
28764
|
+
type: Input
|
|
28765
|
+
}], selectedRecordsIdentifiers: [{
|
|
28766
|
+
type: Input
|
|
28767
|
+
}], sortOrder: [{
|
|
28768
|
+
type: Input
|
|
28769
|
+
}], recordHasDraft: [{
|
|
28770
|
+
type: Input
|
|
28771
|
+
}], sortByChange: [{
|
|
28772
|
+
type: Output
|
|
28773
|
+
}], recordClick: [{
|
|
28774
|
+
type: Output
|
|
28775
|
+
}], recordsSelectedChange: [{
|
|
28776
|
+
type: Output
|
|
28777
|
+
}] } });
|
|
28778
|
+
|
|
28350
28779
|
const ADD_SEARCH = '[Search] Add search instance';
|
|
28351
28780
|
const SET_FILTERS = '[Search] Set Filters';
|
|
28352
28781
|
const SET_CONFIG_FILTERS = '[Search] Set config filters';
|
|
@@ -28884,6 +29313,9 @@ const getSearchResults = createSelector(getSearchStateSearch, (state) => state.r
|
|
|
28884
29313
|
const getSearchResultsLoading = createSelector(getSearchStateSearch, (state) => state.loadingResults);
|
|
28885
29314
|
const getSearchResultsAggregations = createSelector(getSearchStateSearch, (state) => state.results.aggregations);
|
|
28886
29315
|
const getSearchResultsHits = createSelector(getSearchStateSearch, (state) => state.results.count);
|
|
29316
|
+
const isBeginningOfResults = createSelector(getSearchStateSearch, (state) => {
|
|
29317
|
+
return state.params.currentPage === 0;
|
|
29318
|
+
});
|
|
28887
29319
|
const isEndOfResults = createSelector(getSearchStateSearch, (state) => {
|
|
28888
29320
|
return (state.params.currentPage * state.params.pageSize +
|
|
28889
29321
|
state.params.pageSize >=
|
|
@@ -28917,6 +29349,7 @@ class SearchFacade {
|
|
|
28917
29349
|
this.isLoading$ = this.store.pipe(select(getSearchResultsLoading, searchId));
|
|
28918
29350
|
this.searchFilters$ = this.store.pipe(select(getSearchFilters, searchId));
|
|
28919
29351
|
this.resultsHits$ = this.store.pipe(select(getSearchResultsHits, searchId));
|
|
29352
|
+
this.isBeginningOfResults$ = this.store.pipe(select(isBeginningOfResults, searchId));
|
|
28920
29353
|
this.isEndOfResults$ = this.store.pipe(select(isEndOfResults, searchId));
|
|
28921
29354
|
this.totalPages$ = this.store.pipe(select(totalPages, searchId));
|
|
28922
29355
|
this.currentPage$ = this.store.pipe(select(currentPage, searchId));
|
|
@@ -29324,7 +29757,7 @@ class SearchService {
|
|
|
29324
29757
|
}
|
|
29325
29758
|
updateFilters(params) {
|
|
29326
29759
|
this.facade.searchFilters$
|
|
29327
|
-
.pipe(first(), map$1((filters) => ({ ...filters, ...params })))
|
|
29760
|
+
.pipe(first$1(), map$1((filters) => ({ ...filters, ...params })))
|
|
29328
29761
|
.subscribe((filters) => this.facade.setFilters(filters));
|
|
29329
29762
|
}
|
|
29330
29763
|
setFilters(params) {
|
|
@@ -29357,7 +29790,7 @@ class FuzzySearchComponent {
|
|
|
29357
29790
|
this.autoFocus = false;
|
|
29358
29791
|
this.itemSelected = new EventEmitter();
|
|
29359
29792
|
this.inputSubmitted = new EventEmitter();
|
|
29360
|
-
this.displayWithFn = (record) => record
|
|
29793
|
+
this.displayWithFn = (record) => record.title;
|
|
29361
29794
|
this.autoCompleteAction = (query) => this.recordsRepository
|
|
29362
29795
|
.fuzzySearch(query)
|
|
29363
29796
|
.pipe(map$1((result) => result.records));
|
|
@@ -29397,7 +29830,7 @@ class FuzzySearchComponent {
|
|
|
29397
29830
|
}
|
|
29398
29831
|
}
|
|
29399
29832
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FuzzySearchComponent, deps: [{ token: SearchFacade }, { token: SearchService }, { token: RecordsRepositoryInterface }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
29400
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FuzzySearchComponent, selector: "gn-ui-fuzzy-search", inputs: { autoFocus: "autoFocus" }, outputs: { itemSelected: "itemSelected", inputSubmitted: "inputSubmitted" }, viewQueries: [{ propertyName: "autocomplete", first: true, predicate: AutocompleteComponent, descendants: true }], ngImport: i0, template: "<gn-ui-autocomplete\n [placeholder]=\"'search.field.any.placeholder' | translate\"\n [displayWithFn]=\"displayWithFn\"\n [action]=\"autoCompleteAction\"\n (itemSelected)=\"handleItemSelection($event)\"\n (inputSubmitted)=\"handleInputSubmission($event)\"\n (inputCleared)=\"handleInputCleared()\"\n [value]=\"searchInputValue$ | async\"\n [clearOnSelection]=\"true\"\n [autoFocus]=\"autoFocus\"\n></gn-ui-autocomplete>\n", styles: [""], dependencies: [{ kind: "component", type: AutocompleteComponent, selector: "gn-ui-autocomplete", inputs: ["placeholder", "action", "value", "clearOnSelection", "autoFocus", "displayWithFn"], outputs: ["itemSelected", "inputSubmitted", "inputCleared"] }, { kind: "pipe", type: i1$3.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
29833
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FuzzySearchComponent, selector: "gn-ui-fuzzy-search", inputs: { autoFocus: "autoFocus" }, outputs: { itemSelected: "itemSelected", inputSubmitted: "inputSubmitted" }, viewQueries: [{ propertyName: "autocomplete", first: true, predicate: AutocompleteComponent, descendants: true }], ngImport: i0, template: "<gn-ui-autocomplete\n [placeholder]=\"'search.field.any.placeholder' | translate\"\n [displayWithFn]=\"displayWithFn\"\n [action]=\"autoCompleteAction\"\n (itemSelected)=\"handleItemSelection($event)\"\n (inputSubmitted)=\"handleInputSubmission($event)\"\n (inputCleared)=\"handleInputCleared()\"\n [value]=\"searchInputValue$ | async\"\n [clearOnSelection]=\"true\"\n [autoFocus]=\"autoFocus\"\n></gn-ui-autocomplete>\n", styles: [""], dependencies: [{ kind: "component", type: AutocompleteComponent, selector: "gn-ui-autocomplete", inputs: ["placeholder", "action", "value", "clearOnSelection", "autoFocus", "minCharacterCount", "allowSubmit", "displayWithFn"], outputs: ["itemSelected", "inputSubmitted", "inputCleared"] }, { kind: "pipe", type: i1$3.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
29401
29834
|
}
|
|
29402
29835
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FuzzySearchComponent, decorators: [{
|
|
29403
29836
|
type: Component,
|
|
@@ -30113,12 +30546,14 @@ marker('search.filters.keyword');
|
|
|
30113
30546
|
marker('search.filters.isSpatial');
|
|
30114
30547
|
marker('search.filters.license');
|
|
30115
30548
|
marker('search.filters.publicationYear');
|
|
30116
|
-
marker('search.filters.
|
|
30549
|
+
marker('search.filters.organization');
|
|
30117
30550
|
marker('search.filters.representationType');
|
|
30118
30551
|
marker('search.filters.resourceType');
|
|
30119
30552
|
marker('search.filters.standard');
|
|
30120
30553
|
marker('search.filters.topic');
|
|
30121
30554
|
marker('search.filters.contact');
|
|
30555
|
+
marker('search.filters.producerOrg');
|
|
30556
|
+
marker('search.filters.publisherOrg');
|
|
30122
30557
|
class FieldsService {
|
|
30123
30558
|
get supportedFields() {
|
|
30124
30559
|
return Object.keys(this.fields);
|
|
@@ -30126,7 +30561,7 @@ class FieldsService {
|
|
|
30126
30561
|
constructor(injector) {
|
|
30127
30562
|
this.injector = injector;
|
|
30128
30563
|
this.fields = {
|
|
30129
|
-
|
|
30564
|
+
organization: new OrganizationSearchField(this.injector),
|
|
30130
30565
|
format: new SimpleSearchField('format', this.injector, 'asc'),
|
|
30131
30566
|
resourceType: new TranslatedSearchField('resourceType', this.injector, 'asc'),
|
|
30132
30567
|
representationType: new TranslatedSearchField('cl_spatialRepresentationType.key', this.injector, 'asc'),
|
|
@@ -30139,6 +30574,8 @@ class FieldsService {
|
|
|
30139
30574
|
q: new FullTextSearchField(),
|
|
30140
30575
|
license: new LicenseSearchField(this.injector),
|
|
30141
30576
|
owner: new OwnerSearchField(this.injector),
|
|
30577
|
+
producerOrg: new MultilingualSearchField('originatorOrgForResourceObject', this.injector, 'asc', 'key'),
|
|
30578
|
+
publisherOrg: new MultilingualSearchField('distributorOrgForResourceObject', this.injector, 'asc', 'key'),
|
|
30142
30579
|
};
|
|
30143
30580
|
}
|
|
30144
30581
|
getAvailableValues(fieldName) {
|
|
@@ -30225,7 +30662,8 @@ class FeatureSearchModule {
|
|
|
30225
30662
|
UiElementsModule,
|
|
30226
30663
|
FacetsModule,
|
|
30227
30664
|
MatIconModule,
|
|
30228
|
-
UiWidgetsModule
|
|
30665
|
+
UiWidgetsModule,
|
|
30666
|
+
AutocompleteComponent], exports: [SortByComponent,
|
|
30229
30667
|
ResultsLayoutComponent,
|
|
30230
30668
|
FuzzySearchComponent,
|
|
30231
30669
|
RecordsMetricsComponent,
|
|
@@ -30253,7 +30691,8 @@ class FeatureSearchModule {
|
|
|
30253
30691
|
UiElementsModule,
|
|
30254
30692
|
FacetsModule,
|
|
30255
30693
|
MatIconModule,
|
|
30256
|
-
UiWidgetsModule,
|
|
30694
|
+
UiWidgetsModule,
|
|
30695
|
+
AutocompleteComponent, FacetsModule] }); }
|
|
30257
30696
|
}
|
|
30258
30697
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FeatureSearchModule, decorators: [{
|
|
30259
30698
|
type: NgModule,
|
|
@@ -30284,6 +30723,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
30284
30723
|
FacetsModule,
|
|
30285
30724
|
MatIconModule,
|
|
30286
30725
|
UiWidgetsModule,
|
|
30726
|
+
AutocompleteComponent,
|
|
30287
30727
|
],
|
|
30288
30728
|
exports: [
|
|
30289
30729
|
SortByComponent,
|
|
@@ -30306,7 +30746,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
30306
30746
|
}]
|
|
30307
30747
|
}] });
|
|
30308
30748
|
|
|
30309
|
-
class
|
|
30749
|
+
class ResultsTableContainerComponent {
|
|
30310
30750
|
constructor(searchFacade, searchService, selectionService, recordsRepository) {
|
|
30311
30751
|
this.searchFacade = searchFacade;
|
|
30312
30752
|
this.searchService = searchService;
|
|
@@ -30315,106 +30755,29 @@ class ResultsTableComponent {
|
|
|
30315
30755
|
this.recordClick = new EventEmitter();
|
|
30316
30756
|
this.records$ = this.searchFacade.results$;
|
|
30317
30757
|
this.selectedRecords$ = this.selectionService.selectedRecordsIdentifiers$;
|
|
30318
|
-
|
|
30319
|
-
|
|
30320
|
-
return date?.toLocaleDateString(undefined, {
|
|
30321
|
-
year: 'numeric',
|
|
30322
|
-
month: 'long',
|
|
30323
|
-
day: 'numeric',
|
|
30324
|
-
timeZone: 'UTC',
|
|
30325
|
-
});
|
|
30326
|
-
}
|
|
30327
|
-
getStatus(isPublishedToAll) {
|
|
30328
|
-
return isPublishedToAll ? 'published' : 'not published';
|
|
30329
|
-
}
|
|
30330
|
-
getRecordFormats(record) {
|
|
30331
|
-
if (record.kind === 'service' || !('distributions' in record)) {
|
|
30332
|
-
return [];
|
|
30333
|
-
}
|
|
30334
|
-
const formats = Array.from(new Set(record.distributions.map((distribution) => getFileFormat(distribution)))).filter((format) => !!format);
|
|
30335
|
-
formats.sort((a, b) => getFormatPriority(b) - getFormatPriority(a));
|
|
30336
|
-
return formats;
|
|
30337
|
-
}
|
|
30338
|
-
formatUserInfo(userInfo) {
|
|
30339
|
-
const infos = (typeof userInfo === 'string' ? userInfo : '').split('|');
|
|
30340
|
-
if (infos && infos.length === 4) {
|
|
30341
|
-
return `${infos[2]} ${infos[1]}`;
|
|
30342
|
-
}
|
|
30343
|
-
return undefined;
|
|
30344
|
-
}
|
|
30345
|
-
getBadgeColor(format) {
|
|
30346
|
-
return getBadgeColor(format);
|
|
30758
|
+
this.sortBy$ = this.searchFacade.sortBy$;
|
|
30759
|
+
this.hasDraft = (record) => this.recordsRepository.recordHasDraft(record.uniqueIdentifier);
|
|
30347
30760
|
}
|
|
30348
30761
|
handleRecordClick(item) {
|
|
30349
30762
|
this.recordClick.emit(item);
|
|
30350
30763
|
}
|
|
30351
|
-
|
|
30764
|
+
handleSortByChange(col, order) {
|
|
30352
30765
|
this.searchService.setSortBy([order, col]);
|
|
30353
30766
|
}
|
|
30354
|
-
|
|
30355
|
-
return this.searchFacade.sortBy$.pipe(take(1), map$1((sortOrder) => {
|
|
30356
|
-
const sortArray = Array.isArray(sortOrder[0])
|
|
30357
|
-
? sortOrder
|
|
30358
|
-
: [sortOrder];
|
|
30359
|
-
for (const sort of sortArray) {
|
|
30360
|
-
if (sort[1] === col) {
|
|
30361
|
-
return sort[0];
|
|
30362
|
-
}
|
|
30363
|
-
}
|
|
30364
|
-
return null;
|
|
30365
|
-
}));
|
|
30366
|
-
}
|
|
30367
|
-
isChecked(record) {
|
|
30368
|
-
return this.selectedRecords$.pipe(take(1), map$1((selectedRecords) => {
|
|
30369
|
-
return selectedRecords.includes(record.uniqueIdentifier);
|
|
30370
|
-
}));
|
|
30371
|
-
}
|
|
30372
|
-
handleRecordSelectedChange(selected, record) {
|
|
30767
|
+
handleRecordsSelectedChange(records, selected) {
|
|
30373
30768
|
if (!selected) {
|
|
30374
|
-
this.selectionService.deselectRecords([record]);
|
|
30375
|
-
}
|
|
30376
|
-
else {
|
|
30377
|
-
this.selectionService.selectRecords([record]);
|
|
30378
|
-
}
|
|
30379
|
-
}
|
|
30380
|
-
async toggleSelectAll() {
|
|
30381
|
-
const records = await firstValueFrom(this.records$);
|
|
30382
|
-
if (await firstValueFrom(this.isAllSelected())) {
|
|
30383
30769
|
this.selectionService.deselectRecords(records);
|
|
30384
30770
|
}
|
|
30385
30771
|
else {
|
|
30386
30772
|
this.selectionService.selectRecords(records);
|
|
30387
30773
|
}
|
|
30388
30774
|
}
|
|
30389
|
-
|
|
30390
|
-
|
|
30391
|
-
return records.every((record) => selectedRecords.includes(record.uniqueIdentifier));
|
|
30392
|
-
}));
|
|
30393
|
-
}
|
|
30394
|
-
isSomeSelected() {
|
|
30395
|
-
return combineLatest([this.records$, this.selectedRecords$]).pipe(take(1), map$1(([records, selectedRecords]) => {
|
|
30396
|
-
const allSelected = records.every((record) => selectedRecords.includes(record.uniqueIdentifier));
|
|
30397
|
-
const someSelected = records.some((record) => selectedRecords.includes(record.uniqueIdentifier));
|
|
30398
|
-
return !allSelected && someSelected;
|
|
30399
|
-
}));
|
|
30400
|
-
}
|
|
30401
|
-
hasDraft(record) {
|
|
30402
|
-
return this.recordsRepository.recordHasDraft(record.uniqueIdentifier);
|
|
30403
|
-
}
|
|
30404
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ResultsTableComponent, deps: [{ token: SearchFacade }, { token: SearchService }, { token: SelectionService }, { token: RecordsRepositoryInterface }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
30405
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ResultsTableComponent, isStandalone: true, selector: "gn-ui-results-table", outputs: { recordClick: "recordClick" }, ngImport: i0, template: "<gn-ui-interactive-table\n [items]=\"records$ | async\"\n (itemClick)=\"handleRecordClick($event)\"\n>\n <!-- SELECTED COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header>\n <gn-ui-checkbox\n [checked]=\"isAllSelected() | async\"\n [indeterminate]=\"isSomeSelected() | async\"\n (changed)=\"toggleSelectAll()\"\n type=\"default\"\n class=\"-m-2 mr-3\"\n >\n </gn-ui-checkbox>\n </ng-template>\n <ng-template #cell let-item>\n <gn-ui-checkbox\n [checked]=\"isChecked(item) | async\"\n (changed)=\"handleRecordSelectedChange($event, item)\"\n class=\"-m-2\"\n type=\"default\"\n ></gn-ui-checkbox>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- TITLE COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('resourceTitleObject.default.keyword') | async\"\n (sortChange)=\"setSortBy('resourceTitleObject.default.keyword', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.title</span>\n </ng-template>\n <ng-template #cell let-item>\n <div class=\"flex flex-row items-center gap-2 max-w-full\">\n <span class=\"overflow-hidden text-ellipsis\">{{ item.title }}</span>\n <gn-ui-badge\n *ngIf=\"hasDraft(item)\"\n [style.--gn-ui-badge-padding]=\"'0.4em 0.6em'\"\n [style.--gn-ui-badge-text-color]=\"'#3d2006'\"\n [style.--gn-ui-badge-background-color]=\"'#ffbc7b'\"\n [style.--gn-ui-badge-rounded]=\"'4px'\"\n >\n <span translate>dashboard.records.hasDraft</span>\n </gn-ui-badge>\n </div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- FORMATS COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header>\n <span translate>record.metadata.formats</span>\n </ng-template>\n <ng-template #cell let-item>\n <div\n class=\"flex justify-start items-center gap-2\"\n *ngIf=\"getRecordFormats(item) as formats\"\n [title]=\"formats.join(', ')\"\n >\n <span\n class=\"badge-btn min-w-[45px] text-sm text-white px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[0])\"\n *ngIf=\"formats[0]\"\n >\n {{ formats[0] }}\n </span>\n <span\n class=\"badge-btn min-w-[45px] text-sm text-white px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[1])\"\n *ngIf=\"formats[1]\"\n >\n {{ formats[1] }}\n </span>\n <div class=\"shrink-0\" *ngIf=\"formats.slice(2).length > 0\">\n <span>+{{ formats.slice(2).length }}</span>\n </div>\n </div>\n <div *ngIf=\"!getRecordFormats(item)\"></div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- OWNER COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('recordOwner') | async\"\n (sortChange)=\"setSortBy('recordOwner', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.author</span>\n </ng-template>\n <ng-template #cell let-item>\n <mat-icon class=\"material-symbols-outlined\">person</mat-icon>\n <span>{{ formatUserInfo(item.extras?.ownerInfo) }}</span>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- STATUS COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header>\n <span translate>record.metadata.status</span>\n </ng-template>\n <ng-template #cell let-item>\n {{ item.status }}\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- UPDATE DATE COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('changeDate') | async\"\n (sortChange)=\"setSortBy('changeDate', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.updatedOn</span>\n </ng-template>\n <ng-template #cell let-item>\n {{ dateToString(item.recordUpdated) }}\n </ng-template>\n </gn-ui-interactive-table-column>\n</gn-ui-interactive-table>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$3.AsyncPipe, name: "async" }, { kind: "ngmodule", type: UiInputsModule }, { kind: "component", type: CheckboxComponent, selector: "gn-ui-checkbox", inputs: ["type", "checked", "indeterminate"], outputs: ["changed"] }, { kind: "component", type: InteractiveTableComponent, selector: "gn-ui-interactive-table", inputs: ["items"], outputs: ["itemClick"] }, { kind: "component", type: InteractiveTableColumnComponent, selector: "gn-ui-interactive-table-column", inputs: ["grow", "sortable", "activeSort"], outputs: ["sortChange"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: BadgeComponent, selector: "gn-ui-badge", inputs: ["clickable"] }] }); }
|
|
30775
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ResultsTableContainerComponent, deps: [{ token: SearchFacade }, { token: SearchService }, { token: SelectionService }, { token: RecordsRepositoryInterface }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
30776
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ResultsTableContainerComponent, isStandalone: true, selector: "gn-ui-results-table-container", outputs: { recordClick: "recordClick" }, ngImport: i0, template: "<gn-ui-results-table\n [records]=\"records$ | async\"\n [recordHasDraft]=\"hasDraft\"\n [selectedRecordsIdentifiers]=\"selectedRecords$ | async\"\n [sortOrder]=\"sortBy$ | async\"\n (recordClick)=\"handleRecordClick($event)\"\n (recordsSelectedChange)=\"handleRecordsSelectedChange($event[0], $event[1])\"\n (sortByChange)=\"handleSortByChange($event[0], $event[1])\"\n></gn-ui-results-table>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1$3.AsyncPipe, name: "async" }, { kind: "component", type: ResultsTableComponent, selector: "gn-ui-results-table", inputs: ["records", "selectedRecordsIdentifiers", "sortOrder", "recordHasDraft"], outputs: ["sortByChange", "recordClick", "recordsSelectedChange"] }] }); }
|
|
30406
30777
|
}
|
|
30407
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type:
|
|
30778
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ResultsTableContainerComponent, decorators: [{
|
|
30408
30779
|
type: Component,
|
|
30409
|
-
args: [{ selector: 'gn-ui-results-table', standalone: true, imports: [
|
|
30410
|
-
CommonModule,
|
|
30411
|
-
UiInputsModule,
|
|
30412
|
-
InteractiveTableComponent,
|
|
30413
|
-
InteractiveTableColumnComponent,
|
|
30414
|
-
MatIconModule,
|
|
30415
|
-
TranslateModule,
|
|
30416
|
-
BadgeComponent,
|
|
30417
|
-
], template: "<gn-ui-interactive-table\n [items]=\"records$ | async\"\n (itemClick)=\"handleRecordClick($event)\"\n>\n <!-- SELECTED COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header>\n <gn-ui-checkbox\n [checked]=\"isAllSelected() | async\"\n [indeterminate]=\"isSomeSelected() | async\"\n (changed)=\"toggleSelectAll()\"\n type=\"default\"\n class=\"-m-2 mr-3\"\n >\n </gn-ui-checkbox>\n </ng-template>\n <ng-template #cell let-item>\n <gn-ui-checkbox\n [checked]=\"isChecked(item) | async\"\n (changed)=\"handleRecordSelectedChange($event, item)\"\n class=\"-m-2\"\n type=\"default\"\n ></gn-ui-checkbox>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- TITLE COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('resourceTitleObject.default.keyword') | async\"\n (sortChange)=\"setSortBy('resourceTitleObject.default.keyword', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.title</span>\n </ng-template>\n <ng-template #cell let-item>\n <div class=\"flex flex-row items-center gap-2 max-w-full\">\n <span class=\"overflow-hidden text-ellipsis\">{{ item.title }}</span>\n <gn-ui-badge\n *ngIf=\"hasDraft(item)\"\n [style.--gn-ui-badge-padding]=\"'0.4em 0.6em'\"\n [style.--gn-ui-badge-text-color]=\"'#3d2006'\"\n [style.--gn-ui-badge-background-color]=\"'#ffbc7b'\"\n [style.--gn-ui-badge-rounded]=\"'4px'\"\n >\n <span translate>dashboard.records.hasDraft</span>\n </gn-ui-badge>\n </div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- FORMATS COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header>\n <span translate>record.metadata.formats</span>\n </ng-template>\n <ng-template #cell let-item>\n <div\n class=\"flex justify-start items-center gap-2\"\n *ngIf=\"getRecordFormats(item) as formats\"\n [title]=\"formats.join(', ')\"\n >\n <span\n class=\"badge-btn min-w-[45px] text-sm text-white px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[0])\"\n *ngIf=\"formats[0]\"\n >\n {{ formats[0] }}\n </span>\n <span\n class=\"badge-btn min-w-[45px] text-sm text-white px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[1])\"\n *ngIf=\"formats[1]\"\n >\n {{ formats[1] }}\n </span>\n <div class=\"shrink-0\" *ngIf=\"formats.slice(2).length > 0\">\n <span>+{{ formats.slice(2).length }}</span>\n </div>\n </div>\n <div *ngIf=\"!getRecordFormats(item)\"></div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- OWNER COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('recordOwner') | async\"\n (sortChange)=\"setSortBy('recordOwner', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.author</span>\n </ng-template>\n <ng-template #cell let-item>\n <mat-icon class=\"material-symbols-outlined\">person</mat-icon>\n <span>{{ formatUserInfo(item.extras?.ownerInfo) }}</span>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- STATUS COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header>\n <span translate>record.metadata.status</span>\n </ng-template>\n <ng-template #cell let-item>\n {{ item.status }}\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- UPDATE DATE COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('changeDate') | async\"\n (sortChange)=\"setSortBy('changeDate', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.updatedOn</span>\n </ng-template>\n <ng-template #cell let-item>\n {{ dateToString(item.recordUpdated) }}\n </ng-template>\n </gn-ui-interactive-table-column>\n</gn-ui-interactive-table>\n" }]
|
|
30780
|
+
args: [{ selector: 'gn-ui-results-table-container', standalone: true, imports: [CommonModule, ResultsTableComponent], template: "<gn-ui-results-table\n [records]=\"records$ | async\"\n [recordHasDraft]=\"hasDraft\"\n [selectedRecordsIdentifiers]=\"selectedRecords$ | async\"\n [sortOrder]=\"sortBy$ | async\"\n (recordClick)=\"handleRecordClick($event)\"\n (recordsSelectedChange)=\"handleRecordsSelectedChange($event[0], $event[1])\"\n (sortByChange)=\"handleSortByChange($event[0], $event[1])\"\n></gn-ui-results-table>\n" }]
|
|
30418
30781
|
}], ctorParameters: function () { return [{ type: SearchFacade }, { type: SearchService }, { type: SelectionService }, { type: RecordsRepositoryInterface }]; }, propDecorators: { recordClick: [{
|
|
30419
30782
|
type: Output
|
|
30420
30783
|
}] } });
|
|
@@ -30716,7 +31079,7 @@ class LayersPanelComponent {
|
|
|
30716
31079
|
this.mapFacade.addLayer(layer);
|
|
30717
31080
|
}
|
|
30718
31081
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LayersPanelComponent, deps: [{ token: MapFacade }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
30719
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: LayersPanelComponent, selector: "gn-ui-layers-panel", ngImport: i0, template: "<div\n class=\"bg-white rounded shadow shadow-lg relative h-full w-[400px] overflow-hidden\"\n>\n <div class=\"p-3 border-b border-gray-300 flex items-center\">\n <mat-icon class=\"material-symbols-outlined mr-2\">layers</mat-icon>\n <span translate>map.layers.list</span>\n </div>\n <div class=\"flex flex-col px-4 divide-y divide-y-gray-50\">\n <div\n *ngFor=\"let layer of layers$ | async; let index = index\"\n class=\"flex flex-row py-3\"\n >\n <mat-icon class=\"material-symbols-outlined -ml-2 mr-2 shrink-0\"\n >chevron_right</mat-icon\n >\n <span class=\"mr-2 grow\">{{ layer.title }}</span>\n <a\n href\n class=\"underline text-sm text-red-700 hover:text-red-900\"\n (click)=\"deleteLayer(index)\"\n >\n delete\n </a>\n </div>\n </div>\n <gn-ui-expandable-panel-button [titleTemplate]=\"addLayerTitle\">\n <mat-tab-group animationDuration=\"200ms\" class=\"h-full\">\n <mat-tab [label]=\"'map.add.layer.catalog' | translate\">\n <div class=\"p-3\">\n <gn-ui-add-layer-from-catalog></gn-ui-add-layer-from-catalog>\n </div>\n </mat-tab>\n <mat-tab [label]=\"'map.add.layer.wms' | translate\" bodyClass=\"h-full\">\n <div class=\"p-3\">\n <gn-ui-add-layer-from-wms></gn-ui-add-layer-from-wms>\n </div>\n </mat-tab>\n <mat-tab [label]=\"'map.add.layer.wfs' | translate\" bodyClass=\"h-full\">\n <div class=\"p-3\">\n <gn-ui-add-layer-from-wfs></gn-ui-add-layer-from-wfs>\n </div>\n </mat-tab>\n <mat-tab [label]=\"'map.add.layer.ogc.api' | translate\" bodyClass=\"h-full\">\n <div class=\"p-3\">\n <gn-ui-add-layer-from-ogc-api\n [ogcUrl]=\"ogcUrl\"\n (layerAdded)=\"addLayer($event)\"\n ></gn-ui-add-layer-from-ogc-api>\n </div>\n </mat-tab>\n <mat-tab [label]=\"'map.add.layer.file' | translate\" bodyClass=\"h-full\">\n <div class=\"p-3\">\n <gn-ui-add-layer-from-file></gn-ui-add-layer-from-file>\n </div>\n </mat-tab>\n </mat-tab-group>\n </gn-ui-expandable-panel-button>\n</div>\n\n<ng-template #addLayerTitle>\n <mat-icon class=\"material-symbols-outlined mr-4\">add_circle</mat-icon>\n <span translate>map.add.layer</span>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "directive", type: i1$3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: ExpandablePanelButtonComponent, selector: "gn-ui-expandable-panel-button", inputs: ["titleTemplate", "collapsed"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i2$
|
|
31082
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: LayersPanelComponent, selector: "gn-ui-layers-panel", ngImport: i0, template: "<div\n class=\"bg-white rounded shadow shadow-lg relative h-full w-[400px] overflow-hidden\"\n>\n <div class=\"p-3 border-b border-gray-300 flex items-center\">\n <mat-icon class=\"material-symbols-outlined mr-2\">layers</mat-icon>\n <span translate>map.layers.list</span>\n </div>\n <div class=\"flex flex-col px-4 divide-y divide-y-gray-50\">\n <div\n *ngFor=\"let layer of layers$ | async; let index = index\"\n class=\"flex flex-row py-3\"\n >\n <mat-icon class=\"material-symbols-outlined -ml-2 mr-2 shrink-0\"\n >chevron_right</mat-icon\n >\n <span class=\"mr-2 grow\">{{ layer.title }}</span>\n <a\n href\n class=\"underline text-sm text-red-700 hover:text-red-900\"\n (click)=\"deleteLayer(index)\"\n >\n delete\n </a>\n </div>\n </div>\n <gn-ui-expandable-panel-button [titleTemplate]=\"addLayerTitle\">\n <mat-tab-group animationDuration=\"200ms\" class=\"h-full\">\n <mat-tab [label]=\"'map.add.layer.catalog' | translate\">\n <div class=\"p-3\">\n <gn-ui-add-layer-from-catalog></gn-ui-add-layer-from-catalog>\n </div>\n </mat-tab>\n <mat-tab [label]=\"'map.add.layer.wms' | translate\" bodyClass=\"h-full\">\n <div class=\"p-3\">\n <gn-ui-add-layer-from-wms></gn-ui-add-layer-from-wms>\n </div>\n </mat-tab>\n <mat-tab [label]=\"'map.add.layer.wfs' | translate\" bodyClass=\"h-full\">\n <div class=\"p-3\">\n <gn-ui-add-layer-from-wfs></gn-ui-add-layer-from-wfs>\n </div>\n </mat-tab>\n <mat-tab [label]=\"'map.add.layer.ogc.api' | translate\" bodyClass=\"h-full\">\n <div class=\"p-3\">\n <gn-ui-add-layer-from-ogc-api\n [ogcUrl]=\"ogcUrl\"\n (layerAdded)=\"addLayer($event)\"\n ></gn-ui-add-layer-from-ogc-api>\n </div>\n </mat-tab>\n <mat-tab [label]=\"'map.add.layer.file' | translate\" bodyClass=\"h-full\">\n <div class=\"p-3\">\n <gn-ui-add-layer-from-file></gn-ui-add-layer-from-file>\n </div>\n </mat-tab>\n </mat-tab-group>\n </gn-ui-expandable-panel-button>\n</div>\n\n<ng-template #addLayerTitle>\n <mat-icon class=\"material-symbols-outlined mr-4\">add_circle</mat-icon>\n <span translate>map.add.layer</span>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "directive", type: i1$3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: ExpandablePanelButtonComponent, selector: "gn-ui-expandable-panel-button", inputs: ["titleTemplate", "collapsed"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i2$5.MatTab, selector: "mat-tab", inputs: ["disabled"], exportAs: ["matTab"] }, { kind: "component", type: i2$5.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "disableRipple", "fitInkBarToContent", "mat-stretch-tabs"], exportAs: ["matTabGroup"] }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: AddLayerFromOgcApiComponent, selector: "gn-ui-add-layer-from-ogc-api", inputs: ["ogcUrl"], outputs: ["layerAdded"] }, { kind: "component", type: AddLayerFromCatalogComponent, selector: "gn-ui-add-layer-from-catalog" }, { kind: "component", type: AddLayerFromWmsComponent, selector: "gn-ui-add-layer-from-wms" }, { kind: "component", type: AddLayerFromFileComponent, selector: "gn-ui-add-layer-from-file" }, { kind: "component", type: AddLayerFromWfsComponent, selector: "gn-ui-add-layer-from-wfs" }, { kind: "pipe", type: i1$3.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
30720
31083
|
}
|
|
30721
31084
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LayersPanelComponent, decorators: [{
|
|
30722
31085
|
type: Component,
|
|
@@ -31230,12 +31593,9 @@ const getAddUserFeedbacksLoading = createSelector(getMdViewState, (state) => sta
|
|
|
31230
31593
|
|
|
31231
31594
|
class FigureComponent {
|
|
31232
31595
|
constructor() {
|
|
31596
|
+
this.unit = '';
|
|
31233
31597
|
this.color = 'primary';
|
|
31234
31598
|
}
|
|
31235
|
-
get hoverTitle() {
|
|
31236
|
-
return `${this.figure.toString()} ${this.unit || ''}
|
|
31237
|
-
${this.title}`;
|
|
31238
|
-
}
|
|
31239
31599
|
get textClass() {
|
|
31240
31600
|
return this.color === 'primary' ? 'text-primary' : 'text-secondary';
|
|
31241
31601
|
}
|
|
@@ -31243,11 +31603,11 @@ ${this.title}`;
|
|
|
31243
31603
|
return this.color === 'primary' ? 'bg-primary-white' : 'bg-secondary-white';
|
|
31244
31604
|
}
|
|
31245
31605
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FigureComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
31246
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FigureComponent, selector: "gn-ui-figure", inputs: { icon: "icon", title: "title", figure: "figure", unit: "unit", color: "color" }, ngImport: i0, template: "<div\n
|
|
31606
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FigureComponent, selector: "gn-ui-figure", inputs: { icon: "icon", title: "title", figure: "figure", unit: "unit", color: "color" }, ngImport: i0, template: "<div\n class=\"flex flex-row justify-start items-center overflow-hidden\"\n data-test=\"figureTitle\"\n [title]=\"\n figure.toString() +\n ' ' +\n unit +\n ' ' +\n (title | translate: { count: figure })\n \"\n>\n <mat-icon\n class=\"material-symbols-outlined {{ bgClass }} {{\n textClass\n }} text-[1.875em] rounded-full mr-[0.55em] p-[0.6em] w-[2.2em] h-[2.2em] shrink-0\"\n style=\"width: 2.2em; height: 2.2em\"\n >\n {{ icon }}\n </mat-icon>\n <div class=\"shrink overflow-hidden\">\n <div class=\"figure-block text-[1.5em] text-black\">\n <span class=\"figure font-medium mr-[0.3em]\" data-test=\"figure\">{{\n figure\n }}</span>\n <span class=\"unit text-[0.665em]\">{{ unit }}</span>\n </div>\n <div translate class=\"title truncate\" [translateParams]=\"{ count: figure }\">\n {{ title }}\n </div>\n </div>\n</div>\n", styles: [":host{display:inherit}\n"], dependencies: [{ kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
31247
31607
|
}
|
|
31248
31608
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FigureComponent, decorators: [{
|
|
31249
31609
|
type: Component,
|
|
31250
|
-
args: [{ selector: 'gn-ui-figure', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n
|
|
31610
|
+
args: [{ selector: 'gn-ui-figure', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"flex flex-row justify-start items-center overflow-hidden\"\n data-test=\"figureTitle\"\n [title]=\"\n figure.toString() +\n ' ' +\n unit +\n ' ' +\n (title | translate: { count: figure })\n \"\n>\n <mat-icon\n class=\"material-symbols-outlined {{ bgClass }} {{\n textClass\n }} text-[1.875em] rounded-full mr-[0.55em] p-[0.6em] w-[2.2em] h-[2.2em] shrink-0\"\n style=\"width: 2.2em; height: 2.2em\"\n >\n {{ icon }}\n </mat-icon>\n <div class=\"shrink overflow-hidden\">\n <div class=\"figure-block text-[1.5em] text-black\">\n <span class=\"figure font-medium mr-[0.3em]\" data-test=\"figure\">{{\n figure\n }}</span>\n <span class=\"unit text-[0.665em]\">{{ unit }}</span>\n </div>\n <div translate class=\"title truncate\" [translateParams]=\"{ count: figure }\">\n {{ title }}\n </div>\n </div>\n</div>\n", styles: [":host{display:inherit}\n"] }]
|
|
31251
31611
|
}], propDecorators: { icon: [{
|
|
31252
31612
|
type: Input
|
|
31253
31613
|
}], title: [{
|
|
@@ -31461,7 +31821,7 @@ class TableComponent {
|
|
|
31461
31821
|
return rowIdPrefix + id;
|
|
31462
31822
|
}
|
|
31463
31823
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TableComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
31464
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TableComponent, isStandalone: true, selector: "gn-ui-table", inputs: { data: "data", activeId: "activeId" }, outputs: { selected: "selected" }, viewQueries: [{ propertyName: "sort", first: true, predicate: MatSort, descendants: true, static: true }], ngImport: i0, template: "<div class=\"border border-gray-300 rounded-lg overflow-hidden bg-white h-full\">\n <cdk-virtual-scroll-viewport\n tvsItemSize=\"48\"\n headerHeight=\"56\"\n style=\"height: calc(100% - 37px)\"\n >\n <table mat-table [dataSource]=\"dataSource\" class=\"mat-elevation-z8\" matSort>\n <ng-container *ngFor=\"let prop of properties\" [matColumnDef]=\"prop\">\n <th\n mat-header-cell\n *matHeaderCellDef\n mat-sort-header\n class=\"text-sm text-black bg-white\"\n >\n {{ prop }}\n </th>\n <td\n mat-cell\n *matCellDef=\"let element\"\n class=\"whitespace-nowrap pr-1 truncate\"\n >\n {{ element[prop] }}\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"properties; sticky: true\"></tr>\n <tr\n [id]=\"getRowEltId(row.id)\"\n mat-row\n *matRowDef=\"let row; columns: properties\"\n (click)=\"selected.emit(row)\"\n [class.active]=\"row.id === activeId\"\n ></tr>\n </table>\n </cdk-virtual-scroll-viewport>\n <div class=\"text-gray-900 border-t border-gray-300 px-4 py-2 text-sm\">\n <span class=\"count font-extrabold text-primary\">{{ count }}</span\n > <span translate>table.object.count</span>.\n </div>\n</div>\n", styles: ["table{width:100%;background:white}th.mat-mdc-header-cell,td.mat-mdc-cell,td.mat-mdc-footer-cell{padding-right:20px}tr.mat-mdc-row,tr.mat-mdc-footer-row{height:36px}tr:hover{background:whitesmoke}tr.mat-mdc-header-row{height:48px}[mat-header-cell]{color:#0000008a;font-size:12px;font-weight:500}tr{cursor:pointer}.active .mat-mdc-cell{color:var(--color-primary)}\n"], dependencies: [{ kind: "ngmodule", type: MatTableModule }, { kind: "component", type: i1$9.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i1$9.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i1$9.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i1$9.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i1$9.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i1$9.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i1$9.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i1$9.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i1$9.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i1$9.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "ngmodule", type: MatSortModule }, { kind: "directive", type: i2$
|
|
31824
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TableComponent, isStandalone: true, selector: "gn-ui-table", inputs: { data: "data", activeId: "activeId" }, outputs: { selected: "selected" }, viewQueries: [{ propertyName: "sort", first: true, predicate: MatSort, descendants: true, static: true }], ngImport: i0, template: "<div class=\"border border-gray-300 rounded-lg overflow-hidden bg-white h-full\">\n <cdk-virtual-scroll-viewport\n tvsItemSize=\"48\"\n headerHeight=\"56\"\n style=\"height: calc(100% - 37px)\"\n >\n <table mat-table [dataSource]=\"dataSource\" class=\"mat-elevation-z8\" matSort>\n <ng-container *ngFor=\"let prop of properties\" [matColumnDef]=\"prop\">\n <th\n mat-header-cell\n *matHeaderCellDef\n mat-sort-header\n class=\"text-sm text-black bg-white\"\n >\n {{ prop }}\n </th>\n <td\n mat-cell\n *matCellDef=\"let element\"\n class=\"whitespace-nowrap pr-1 truncate\"\n >\n {{ element[prop] }}\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"properties; sticky: true\"></tr>\n <tr\n [id]=\"getRowEltId(row.id)\"\n mat-row\n *matRowDef=\"let row; columns: properties\"\n (click)=\"selected.emit(row)\"\n [class.active]=\"row.id === activeId\"\n ></tr>\n </table>\n </cdk-virtual-scroll-viewport>\n <div class=\"text-gray-900 border-t border-gray-300 px-4 py-2 text-sm\">\n <span class=\"count font-extrabold text-primary\">{{ count }}</span\n > <span translate>table.object.count</span>.\n </div>\n</div>\n", styles: ["table{width:100%;background:white}th.mat-mdc-header-cell,td.mat-mdc-cell,td.mat-mdc-footer-cell{padding-right:20px}tr.mat-mdc-row,tr.mat-mdc-footer-row{height:36px}tr:hover{background:whitesmoke}tr.mat-mdc-header-row{height:48px}[mat-header-cell]{color:#0000008a;font-size:12px;font-weight:500}tr{cursor:pointer}.active .mat-mdc-cell{color:var(--color-primary)}\n"], dependencies: [{ kind: "ngmodule", type: MatTableModule }, { kind: "component", type: i1$9.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i1$9.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i1$9.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i1$9.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i1$9.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i1$9.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i1$9.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i1$9.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i1$9.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i1$9.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "ngmodule", type: MatSortModule }, { kind: "directive", type: i2$6.MatSort, selector: "[matSort]", inputs: ["matSortDisabled", "matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i2$6.MatSortHeader, selector: "[mat-sort-header]", inputs: ["disabled", "mat-sort-header", "arrowPosition", "start", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "ngmodule", type: TableVirtualScrollModule }, { kind: "directive", type: i3$2.TableItemSizeDirective, selector: "cdk-virtual-scroll-viewport[tvsItemSize]", inputs: ["tvsItemSize", "headerEnabled", "headerHeight", "footerEnabled", "footerHeight", "bufferMultiplier"] }, { kind: "ngmodule", type: ScrollingModule }, { kind: "component", type: i4.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
31465
31825
|
}
|
|
31466
31826
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TableComponent, decorators: [{
|
|
31467
31827
|
type: Component,
|
|
@@ -32562,7 +32922,7 @@ class TableViewComponent {
|
|
|
32562
32922
|
this.loading = false;
|
|
32563
32923
|
}
|
|
32564
32924
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TableViewComponent, deps: [{ token: DataService }, { token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
32565
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TableViewComponent, selector: "gn-ui-table-view", inputs: { link: "link" }, ngImport: i0, template: "<div class=\"w-full h-full flex flex-col\">\n <div class=\"relative h-full\">\n <gn-ui-table\n class=\"overflow-auto grow\"\n [data]=\"tableData$ | async\"\n (selected)=\"onTableSelect($event)\"\n ></gn-ui-table>\n <gn-ui-loading-mask\n *ngIf=\"loading\"\n class=\"absolute inset-0\"\n [message]=\"'table.loading.data' | translate\"\n ></gn-ui-loading-mask>\n <gn-ui-popup-alert\n *ngIf=\"error\"\n type=\"warning\"\n icon=\"error_outline\"\n class=\"absolute m-2 inset-0\"\n >\n <span translate>{{ error }}</span>\n </gn-ui-popup-alert>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: TableComponent, selector: "gn-ui-table", inputs: ["data", "activeId"], outputs: ["selected"] }, { kind: "component", type: LoadingMaskComponent, selector: "gn-ui-loading-mask", inputs: ["message"] }, { kind: "
|
|
32925
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TableViewComponent, selector: "gn-ui-table-view", inputs: { link: "link" }, ngImport: i0, template: "<div class=\"w-full h-full flex flex-col\">\n <div class=\"relative h-full\">\n <gn-ui-table\n class=\"overflow-auto grow\"\n [data]=\"tableData$ | async\"\n (selected)=\"onTableSelect($event)\"\n ></gn-ui-table>\n <gn-ui-loading-mask\n *ngIf=\"loading\"\n class=\"absolute inset-0\"\n [message]=\"'table.loading.data' | translate\"\n ></gn-ui-loading-mask>\n <gn-ui-popup-alert\n *ngIf=\"error\"\n type=\"warning\"\n icon=\"error_outline\"\n class=\"absolute m-2 inset-0\"\n >\n <span translate>{{ error }}</span>\n </gn-ui-popup-alert>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: TableComponent, selector: "gn-ui-table", inputs: ["data", "activeId"], outputs: ["selected"] }, { kind: "component", type: LoadingMaskComponent, selector: "gn-ui-loading-mask", inputs: ["message"] }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: PopupAlertComponent, selector: "gn-ui-popup-alert", inputs: ["icon", "type", "position"] }, { kind: "pipe", type: i1$3.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
32566
32926
|
}
|
|
32567
32927
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TableViewComponent, decorators: [{
|
|
32568
32928
|
type: Component,
|
|
@@ -32724,7 +33084,7 @@ class ChartViewComponent {
|
|
|
32724
33084
|
this.changeDetector.detectChanges();
|
|
32725
33085
|
}
|
|
32726
33086
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ChartViewComponent, deps: [{ token: DataService }, { token: i0.ChangeDetectorRef }, { token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
32727
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ChartViewComponent, selector: "gn-ui-chart-view", inputs: { link: "link", aggregation: "aggregation", xProperty: "xProperty", yProperty: "yProperty", chartType: "chartType" }, outputs: { chartConfig$: "chartConfig$" }, ngImport: i0, template: "<div class=\"w-full h-full flex flex-col\">\n <div\n class=\"flex flex-col space-y-2 sm:flex-row sm:space-y-0 sm:space-x-2 justify-between text-[13px]\"\n >\n <gn-ui-dropdown-selector\n class=\"basis-1/4\"\n [choices]=\"typeChoices\"\n [extraBtnClass]=\"'secondary min-w-full'\"\n (selectValue)=\"chartType$.next($event)\"\n [selected]=\"chartType$.value\"\n [title]=\"'chart.dropdown.type' | translate\"\n ></gn-ui-dropdown-selector>\n <gn-ui-dropdown-selector\n class=\"basis-1/4\"\n [choices]=\"xChoices$ | async\"\n [extraBtnClass]=\"'secondary min-w-full'\"\n (selectValue)=\"xProperty$.next($event)\"\n [selected]=\"xProperty$.value\"\n [title]=\"'chart.dropdown.xProperty' | translate\"\n ></gn-ui-dropdown-selector>\n <gn-ui-dropdown-selector\n class=\"basis-1/4\"\n *ngIf=\"!isCountAggregation\"\n [choices]=\"yChoices$ | async\"\n (selectValue)=\"yProperty$.next($event)\"\n [selected]=\"yProperty$.value\"\n [title]=\"'chart.dropdown.yProperty' | translate\"\n class=\"select-y-prop\"\n ></gn-ui-dropdown-selector>\n <gn-ui-dropdown-selector\n class=\"basis-1/4\"\n [choices]=\"aggregationChoices\"\n class=\"aggregation-choices\"\n (selectValue)=\"aggregation$.next($event)\"\n [selected]=\"aggregation$.value\"\n [title]=\"'chart.dropdown.aggregation' | translate\"\n ></gn-ui-dropdown-selector>\n </div>\n <div\n class=\"relative h-full mt-2 bg-white border border-gray-300 rounded-lg overflow-hidden\"\n >\n <gn-ui-chart\n [data]=\"chartData$ | async\"\n [type]=\"chartType$.value\"\n [labelProperty]=\"labelProperty\"\n [valueProperty]=\"valueProperty\"\n ></gn-ui-chart>\n <gn-ui-loading-mask\n *ngIf=\"loading\"\n class=\"absolute inset-0\"\n [message]=\"'chart.loading.data' | translate\"\n ></gn-ui-loading-mask>\n <gn-ui-popup-alert\n *ngIf=\"error\"\n type=\"warning\"\n icon=\"error_outline\"\n class=\"absolute m-2 inset-0\"\n >\n <span>{{ error }}</span>\n </gn-ui-popup-alert>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: LoadingMaskComponent, selector: "gn-ui-loading-mask", inputs: ["message"] }, { kind: "component", type:
|
|
33087
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ChartViewComponent, selector: "gn-ui-chart-view", inputs: { link: "link", aggregation: "aggregation", xProperty: "xProperty", yProperty: "yProperty", chartType: "chartType" }, outputs: { chartConfig$: "chartConfig$" }, ngImport: i0, template: "<div class=\"w-full h-full flex flex-col\">\n <div\n class=\"flex flex-col space-y-2 sm:flex-row sm:space-y-0 sm:space-x-2 justify-between text-[13px]\"\n >\n <gn-ui-dropdown-selector\n class=\"basis-1/4\"\n [choices]=\"typeChoices\"\n [extraBtnClass]=\"'secondary min-w-full'\"\n (selectValue)=\"chartType$.next($event)\"\n [selected]=\"chartType$.value\"\n [title]=\"'chart.dropdown.type' | translate\"\n ></gn-ui-dropdown-selector>\n <gn-ui-dropdown-selector\n class=\"basis-1/4\"\n [choices]=\"xChoices$ | async\"\n [extraBtnClass]=\"'secondary min-w-full'\"\n (selectValue)=\"xProperty$.next($event)\"\n [selected]=\"xProperty$.value\"\n [title]=\"'chart.dropdown.xProperty' | translate\"\n ></gn-ui-dropdown-selector>\n <gn-ui-dropdown-selector\n class=\"basis-1/4\"\n *ngIf=\"!isCountAggregation\"\n [choices]=\"yChoices$ | async\"\n (selectValue)=\"yProperty$.next($event)\"\n [selected]=\"yProperty$.value\"\n [title]=\"'chart.dropdown.yProperty' | translate\"\n class=\"select-y-prop\"\n ></gn-ui-dropdown-selector>\n <gn-ui-dropdown-selector\n class=\"basis-1/4\"\n [choices]=\"aggregationChoices\"\n class=\"aggregation-choices\"\n (selectValue)=\"aggregation$.next($event)\"\n [selected]=\"aggregation$.value\"\n [title]=\"'chart.dropdown.aggregation' | translate\"\n ></gn-ui-dropdown-selector>\n </div>\n <div\n class=\"relative h-full mt-2 bg-white border border-gray-300 rounded-lg overflow-hidden\"\n >\n <gn-ui-chart\n [data]=\"chartData$ | async\"\n [type]=\"chartType$.value\"\n [labelProperty]=\"labelProperty\"\n [valueProperty]=\"valueProperty\"\n ></gn-ui-chart>\n <gn-ui-loading-mask\n *ngIf=\"loading\"\n class=\"absolute inset-0\"\n [message]=\"'chart.loading.data' | translate\"\n ></gn-ui-loading-mask>\n <gn-ui-popup-alert\n *ngIf=\"error\"\n type=\"warning\"\n icon=\"error_outline\"\n class=\"absolute m-2 inset-0\"\n >\n <span>{{ error }}</span>\n </gn-ui-popup-alert>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: LoadingMaskComponent, selector: "gn-ui-loading-mask", inputs: ["message"] }, { kind: "component", type: ChartComponent, selector: "gn-ui-chart", inputs: ["data", "labelProperty", "valueProperty", "secondaryValueProperty", "type"] }, { kind: "component", type: DropdownSelectorComponent, selector: "gn-ui-dropdown-selector", inputs: ["title", "showTitle", "ariaName", "choices", "selected", "maxRows", "extraBtnClass", "minWidth", "disabled"], outputs: ["selectValue"] }, { kind: "component", type: PopupAlertComponent, selector: "gn-ui-popup-alert", inputs: ["icon", "type", "position"] }, { kind: "pipe", type: i1$3.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
32728
33088
|
}
|
|
32729
33089
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ChartViewComponent, decorators: [{
|
|
32730
33090
|
type: Component,
|
|
@@ -32756,7 +33116,8 @@ class FeatureDatavizModule {
|
|
|
32756
33116
|
UiWidgetsModule,
|
|
32757
33117
|
TranslateModule,
|
|
32758
33118
|
ChartComponent,
|
|
32759
|
-
UiInputsModule
|
|
33119
|
+
UiInputsModule,
|
|
33120
|
+
PopupAlertComponent], exports: [GeoTableViewComponent,
|
|
32760
33121
|
FigureContainerComponent,
|
|
32761
33122
|
TableViewComponent,
|
|
32762
33123
|
ChartViewComponent] }); }
|
|
@@ -32767,7 +33128,8 @@ class FeatureDatavizModule {
|
|
|
32767
33128
|
TableComponent,
|
|
32768
33129
|
UiWidgetsModule,
|
|
32769
33130
|
TranslateModule,
|
|
32770
|
-
UiInputsModule
|
|
33131
|
+
UiInputsModule,
|
|
33132
|
+
PopupAlertComponent] }); }
|
|
32771
33133
|
}
|
|
32772
33134
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FeatureDatavizModule, decorators: [{
|
|
32773
33135
|
type: NgModule,
|
|
@@ -32782,6 +33144,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
32782
33144
|
TranslateModule,
|
|
32783
33145
|
ChartComponent,
|
|
32784
33146
|
UiInputsModule,
|
|
33147
|
+
PopupAlertComponent,
|
|
32785
33148
|
],
|
|
32786
33149
|
declarations: [
|
|
32787
33150
|
GeoTableViewComponent,
|
|
@@ -32823,9 +33186,7 @@ class MdViewFacade {
|
|
|
32823
33186
|
this.downloadLinks$ = this.allLinks$.pipe(map$1((links) => links.filter((link) => this.linkClassifier.hasUsage(link, LinkUsage.DOWNLOAD))));
|
|
32824
33187
|
this.dataLinks$ = this.allLinks$.pipe(map$1((links) => links.filter((link) => this.linkClassifier.hasUsage(link, LinkUsage.DATA))));
|
|
32825
33188
|
this.geoDataLinks$ = this.allLinks$.pipe(map$1((links) => links.filter((link) => this.linkClassifier.hasUsage(link, LinkUsage.GEODATA))));
|
|
32826
|
-
this.geoDataLinksWithGeometry$ = this.allLinks$.pipe(
|
|
32827
|
-
return from(links);
|
|
32828
|
-
}), mergeMap((link) => {
|
|
33189
|
+
this.geoDataLinksWithGeometry$ = this.allLinks$.pipe(switchMap$1((links) => from(links).pipe(mergeMap((link) => {
|
|
32829
33190
|
if (this.linkClassifier.hasUsage(link, LinkUsage.GEODATA)) {
|
|
32830
33191
|
if (link.type === 'service' &&
|
|
32831
33192
|
link.accessServiceProtocol === 'ogcFeatures') {
|
|
@@ -32833,7 +33194,10 @@ class MdViewFacade {
|
|
|
32833
33194
|
return collectionRecords && collectionRecords.geometry
|
|
32834
33195
|
? link
|
|
32835
33196
|
: null;
|
|
32836
|
-
}), defaultIfEmpty(null))
|
|
33197
|
+
}), defaultIfEmpty(null), catchError((e) => {
|
|
33198
|
+
console.error(e);
|
|
33199
|
+
return of(null);
|
|
33200
|
+
}));
|
|
32837
33201
|
}
|
|
32838
33202
|
else {
|
|
32839
33203
|
return of(link);
|
|
@@ -32842,12 +33206,7 @@ class MdViewFacade {
|
|
|
32842
33206
|
else {
|
|
32843
33207
|
return of(null);
|
|
32844
33208
|
}
|
|
32845
|
-
}),
|
|
32846
|
-
if (val !== null && !acc.includes(val)) {
|
|
32847
|
-
acc.push(val);
|
|
32848
|
-
}
|
|
32849
|
-
return acc;
|
|
32850
|
-
}, []));
|
|
33209
|
+
}), toArray(), map$1((links) => links.filter((link) => link !== null)))));
|
|
32851
33210
|
this.landingPageLinks$ = this.metadata$.pipe(map$1((record) => ('landingPage' in record ? [record.landingPage] : [])));
|
|
32852
33211
|
this.otherLinks$ = this.allLinks$.pipe(map$1((links) => links.filter((link) => this.linkClassifier.hasUsage(link, LinkUsage.UNKNOWN))));
|
|
32853
33212
|
this.userFeedbacks$ = this.store.pipe(select(getUserFeedbacks));
|
|
@@ -33114,7 +33473,7 @@ class MapViewComponent {
|
|
|
33114
33473
|
this.selectedLinkIndex$.next(link);
|
|
33115
33474
|
}
|
|
33116
33475
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MapViewComponent, deps: [{ token: MdViewFacade }, { token: MapManagerService }, { token: MapUtilsService }, { token: DataService }, { token: FeatureInfoService }, { token: i0.ChangeDetectorRef }, { token: MapStyleService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
33117
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MapViewComponent, selector: "gn-ui-map-view", ngImport: i0, template: "<div class=\"w-full h-full flex flex-col p-1\">\n <div class=\"w-full flex justify-end mb-7 mt-1\">\n <gn-ui-dropdown-selector\n class=\"truncate p-1 -mx-1\"\n extraBtnClass=\"!text-primary font-sans font-medium\"\n [title]=\"'map.select.layer' | translate\"\n [choices]=\"dropdownChoices$ | async\"\n (selectValue)=\"selectLinkToDisplay($event)\"\n ></gn-ui-dropdown-selector>\n <gn-ui-external-viewer-button\n class=\"shrink-0 py-1 place-self-end\"\n [link]=\"selectedLink$ | async\"\n [mapConfig]=\"mapConfig\"\n >\n </gn-ui-external-viewer-button>\n </div>\n <div\n class=\"relative w-full h-full bg-white border border-gray-300 rounded-lg overflow-hidden\"\n >\n <gn-ui-map-context\n [context]=\"mapContext$ | async\"\n [mapConfig]=\"mapConfig\"\n ></gn-ui-map-context>\n <div\n class=\"top-[1em] right-[1em] p-3 bg-white absolute overflow-y-auto overflow-x-hidden max-h-72 w-56\"\n [class.hidden]=\"!selection\"\n >\n <button\n (click)=\"resetSelection()\"\n class=\"rounded bg-primary-opacity-25 text-white absolute right-[0.5em]\"\n >\n <mat-icon\n class=\"material-symbols-outlined align-middle text-sm\"\n style=\"height: 21px\"\n >close</mat-icon\n >\n </button>\n <gn-ui-feature-detail [feature]=\"selection\"></gn-ui-feature-detail>\n </div>\n <gn-ui-loading-mask\n *ngIf=\"loading\"\n class=\"absolute inset-0\"\n [message]=\"'map.loading.data' | translate\"\n ></gn-ui-loading-mask>\n <gn-ui-popup-alert\n *ngIf=\"error\"\n type=\"warning\"\n icon=\"error_outline\"\n class=\"absolute m-2 inset-0\"\n >\n <span translate>{{ error }}</span>\n </gn-ui-popup-alert>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: MapContextComponent, selector: "gn-ui-map-context", inputs: ["context", "mapConfig"], outputs: ["featureClicked"] }, { kind: "component", type: FeatureDetailComponent, selector: "gn-ui-feature-detail", inputs: ["feature"] }, { kind: "component", type: DropdownSelectorComponent, selector: "gn-ui-dropdown-selector", inputs: ["title", "showTitle", "ariaName", "choices", "selected", "maxRows", "extraBtnClass", "minWidth", "disabled"], outputs: ["selectValue"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: LoadingMaskComponent, selector: "gn-ui-loading-mask", inputs: ["message"] }, { kind: "
|
|
33476
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MapViewComponent, selector: "gn-ui-map-view", ngImport: i0, template: "<div class=\"w-full h-full flex flex-col p-1\">\n <div class=\"w-full flex justify-end mb-7 mt-1\">\n <gn-ui-dropdown-selector\n class=\"truncate p-1 -mx-1\"\n extraBtnClass=\"!text-primary font-sans font-medium\"\n [title]=\"'map.select.layer' | translate\"\n [choices]=\"dropdownChoices$ | async\"\n (selectValue)=\"selectLinkToDisplay($event)\"\n ></gn-ui-dropdown-selector>\n <gn-ui-external-viewer-button\n class=\"shrink-0 py-1 place-self-end\"\n [link]=\"selectedLink$ | async\"\n [mapConfig]=\"mapConfig\"\n >\n </gn-ui-external-viewer-button>\n </div>\n <div\n class=\"relative w-full h-full bg-white border border-gray-300 rounded-lg overflow-hidden\"\n >\n <gn-ui-map-context\n [context]=\"mapContext$ | async\"\n [mapConfig]=\"mapConfig\"\n ></gn-ui-map-context>\n <div\n class=\"top-[1em] right-[1em] p-3 bg-white absolute overflow-y-auto overflow-x-hidden max-h-72 w-56\"\n [class.hidden]=\"!selection\"\n >\n <button\n (click)=\"resetSelection()\"\n class=\"rounded bg-primary-opacity-25 text-white absolute right-[0.5em]\"\n >\n <mat-icon\n class=\"material-symbols-outlined align-middle text-sm\"\n style=\"height: 21px\"\n >close</mat-icon\n >\n </button>\n <gn-ui-feature-detail [feature]=\"selection\"></gn-ui-feature-detail>\n </div>\n <gn-ui-loading-mask\n *ngIf=\"loading\"\n class=\"absolute inset-0\"\n [message]=\"'map.loading.data' | translate\"\n ></gn-ui-loading-mask>\n <gn-ui-popup-alert\n *ngIf=\"error\"\n type=\"warning\"\n icon=\"error_outline\"\n class=\"absolute m-2 inset-0\"\n >\n <span translate>{{ error }}</span>\n </gn-ui-popup-alert>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: MapContextComponent, selector: "gn-ui-map-context", inputs: ["context", "mapConfig"], outputs: ["featureClicked"] }, { kind: "component", type: FeatureDetailComponent, selector: "gn-ui-feature-detail", inputs: ["feature"] }, { kind: "component", type: DropdownSelectorComponent, selector: "gn-ui-dropdown-selector", inputs: ["title", "showTitle", "ariaName", "choices", "selected", "maxRows", "extraBtnClass", "minWidth", "disabled"], outputs: ["selectValue"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: LoadingMaskComponent, selector: "gn-ui-loading-mask", inputs: ["message"] }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: PopupAlertComponent, selector: "gn-ui-popup-alert", inputs: ["icon", "type", "position"] }, { kind: "component", type: ExternalViewerButtonComponent, selector: "gn-ui-external-viewer-button", inputs: ["link", "mapConfig"] }, { kind: "pipe", type: i1$3.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
33118
33477
|
}
|
|
33119
33478
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MapViewComponent, decorators: [{
|
|
33120
33479
|
type: Component,
|
|
@@ -33199,15 +33558,15 @@ class OrganisationPreviewComponent {
|
|
|
33199
33558
|
}
|
|
33200
33559
|
clickOrganisation(event) {
|
|
33201
33560
|
event.preventDefault();
|
|
33202
|
-
this.clickedOrganisation.emit(this.
|
|
33561
|
+
this.clickedOrganisation.emit(this.organization);
|
|
33203
33562
|
}
|
|
33204
33563
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OrganisationPreviewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
33205
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: OrganisationPreviewComponent, selector: "gn-ui-organisation-preview", inputs: {
|
|
33564
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: OrganisationPreviewComponent, selector: "gn-ui-organisation-preview", inputs: { organization: "organization", organisationUrl: "organisationUrl" }, outputs: { clickedOrganisation: "clickedOrganisation" }, ngImport: i0, template: "<a href (click)=\"clickOrganisation($event)\" [attr.href]=\"organisationUrl\">\n <div\n class=\"group cursor-pointer rounded-lg h-full flex flex-col\"\n [title]=\"organization.name\"\n >\n <div\n class=\"shrink-0 bg-gray-100 rounded-lg overflow-hidden w-full border border-gray-300 h-36\"\n >\n <gn-ui-thumbnail\n class=\"relative h-full w-full\"\n [thumbnailUrl]=\"organization.logoUrl\"\n [fit]=\"'contain'\"\n >\n </gn-ui-thumbnail>\n </div>\n <div class=\"px-3 pb-2 capitalize flex flex-col grow overflow-hidden\">\n <span\n class=\"shrink-0 mb-3 mt-5 font-title text-21 text-title group-hover:text-primary line-clamp-2 sm:mt-2 transition-colors\"\n data-cy=\"organizationName\"\n >\n {{ organization.name }}</span\n >\n <p\n class=\"abstract mt-4 mb-5 sm:mb-2 sm:mt-0 grow shrink-1 overflow-hidden\"\n data-cy=\"organizationDesc\"\n >\n {{ organization.description }}\n </p>\n <div class=\"shrink-0 text-primary opacity-50 flex leading-6\">\n <mat-icon class=\"material-symbols-outlined text-primary opacity-50 mr-1\"\n >folder_open\n </mat-icon>\n <span class=\"mx-1\" data-cy=\"organizationRecordsCount\">{{\n organization.recordCount\n }}</span>\n <span translate [translateParams]=\"{ count: organization.recordCount }\"\n >record.metadata.publications</span\n >\n </div>\n </div>\n </div>\n</a>\n", styles: [".abstract{position:relative}.abstract:after{content:\"\";position:absolute;bottom:0;left:0;right:0;background:linear-gradient(0deg,white,transparent);height:10px}\n"], dependencies: [{ kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: ThumbnailComponent, selector: "gn-ui-thumbnail", inputs: ["thumbnailUrl", "fit"], outputs: ["placeholderShown"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
33206
33565
|
}
|
|
33207
33566
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OrganisationPreviewComponent, decorators: [{
|
|
33208
33567
|
type: Component,
|
|
33209
|
-
args: [{ selector: 'gn-ui-organisation-preview', changeDetection: ChangeDetectionStrategy.OnPush, template: "<a href (click)=\"clickOrganisation($event)\" [attr.href]=\"organisationUrl\">\n <div\n class=\"group cursor-pointer rounded-lg h-full flex flex-col\"\n [title]=\"
|
|
33210
|
-
}], propDecorators: {
|
|
33568
|
+
args: [{ selector: 'gn-ui-organisation-preview', changeDetection: ChangeDetectionStrategy.OnPush, template: "<a href (click)=\"clickOrganisation($event)\" [attr.href]=\"organisationUrl\">\n <div\n class=\"group cursor-pointer rounded-lg h-full flex flex-col\"\n [title]=\"organization.name\"\n >\n <div\n class=\"shrink-0 bg-gray-100 rounded-lg overflow-hidden w-full border border-gray-300 h-36\"\n >\n <gn-ui-thumbnail\n class=\"relative h-full w-full\"\n [thumbnailUrl]=\"organization.logoUrl\"\n [fit]=\"'contain'\"\n >\n </gn-ui-thumbnail>\n </div>\n <div class=\"px-3 pb-2 capitalize flex flex-col grow overflow-hidden\">\n <span\n class=\"shrink-0 mb-3 mt-5 font-title text-21 text-title group-hover:text-primary line-clamp-2 sm:mt-2 transition-colors\"\n data-cy=\"organizationName\"\n >\n {{ organization.name }}</span\n >\n <p\n class=\"abstract mt-4 mb-5 sm:mb-2 sm:mt-0 grow shrink-1 overflow-hidden\"\n data-cy=\"organizationDesc\"\n >\n {{ organization.description }}\n </p>\n <div class=\"shrink-0 text-primary opacity-50 flex leading-6\">\n <mat-icon class=\"material-symbols-outlined text-primary opacity-50 mr-1\"\n >folder_open\n </mat-icon>\n <span class=\"mx-1\" data-cy=\"organizationRecordsCount\">{{\n organization.recordCount\n }}</span>\n <span translate [translateParams]=\"{ count: organization.recordCount }\"\n >record.metadata.publications</span\n >\n </div>\n </div>\n </div>\n</a>\n", styles: [".abstract{position:relative}.abstract:after{content:\"\";position:absolute;bottom:0;left:0;right:0;background:linear-gradient(0deg,white,transparent);height:10px}\n"] }]
|
|
33569
|
+
}], propDecorators: { organization: [{
|
|
33211
33570
|
type: Input
|
|
33212
33571
|
}], organisationUrl: [{
|
|
33213
33572
|
type: Input
|
|
@@ -33319,7 +33678,8 @@ class UiCatalogModule {
|
|
|
33319
33678
|
LanguageSwitcherComponent,
|
|
33320
33679
|
OrganisationsResultComponent], imports: [CommonModule, i1$1.TranslateModule, UiElementsModule,
|
|
33321
33680
|
UiInputsModule,
|
|
33322
|
-
MatIconModule
|
|
33681
|
+
MatIconModule,
|
|
33682
|
+
RouterLink], exports: [CatalogTitleComponent,
|
|
33323
33683
|
OrganisationPreviewComponent,
|
|
33324
33684
|
OrganisationsFilterComponent,
|
|
33325
33685
|
LanguageSwitcherComponent,
|
|
@@ -33346,6 +33706,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
33346
33706
|
UiElementsModule,
|
|
33347
33707
|
UiInputsModule,
|
|
33348
33708
|
MatIconModule,
|
|
33709
|
+
RouterLink,
|
|
33349
33710
|
],
|
|
33350
33711
|
exports: [
|
|
33351
33712
|
CatalogTitleComponent,
|
|
@@ -33393,6 +33754,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
33393
33754
|
type: Input
|
|
33394
33755
|
}] } });
|
|
33395
33756
|
|
|
33757
|
+
// expects the replacement key ${name}
|
|
33758
|
+
const ORGANIZATION_PAGE_URL_TOKEN = new InjectionToken('organization-page-url-token');
|
|
33759
|
+
|
|
33396
33760
|
class OrganisationsComponent {
|
|
33397
33761
|
constructor(organisationsService, urlTemplate) {
|
|
33398
33762
|
this.organisationsService = organisationsService;
|
|
@@ -33464,17 +33828,17 @@ class OrganisationsComponent {
|
|
|
33464
33828
|
return null;
|
|
33465
33829
|
return this.urlTemplate.replace('${name}', organisation.name);
|
|
33466
33830
|
}
|
|
33467
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OrganisationsComponent, deps: [{ token: OrganizationsServiceInterface }, { token:
|
|
33468
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: OrganisationsComponent, selector: "gn-ui-organisations", inputs: { itemsOnPage: "itemsOnPage" }, outputs: { orgSelect: "orgSelect" }, ngImport: i0, template: "<gn-ui-organisations-filter\n (sortBy)=\"setSortBy($event)\"\n (filterBy)=\"setFilterBy($event)\"\n></gn-ui-organisations-filter>\n<div class=\"mt-6 rounded-lg text-gray-800 p-4 bg-slate-100\">\n <gn-ui-organisations-result\n *ngIf=\"organisationsTotal$ | async\"\n [hits]=\"organisationResults\"\n [total]=\"organisationsTotal$ | async\"\n ></gn-ui-organisations-result>\n</div>\n<div\n class=\"grid grid-cols-1 mt-6 gap-x-6 gap-y-8 sm:grid-cols-2 lg:grid-cols-3\"\n>\n <gn-ui-content-ghost\n class=\"h-[300px]\"\n ghostClass=\"h-full mb-36\"\n *ngFor=\"let organisation of organisations$ | async; trackBy: trackByIndex\"\n [showContent]=\"!!organisation.name\"\n >\n <gn-ui-organisation-preview\n [
|
|
33831
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OrganisationsComponent, deps: [{ token: OrganizationsServiceInterface }, { token: ORGANIZATION_PAGE_URL_TOKEN, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
33832
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: OrganisationsComponent, selector: "gn-ui-organisations", inputs: { itemsOnPage: "itemsOnPage" }, outputs: { orgSelect: "orgSelect" }, ngImport: i0, template: "<gn-ui-organisations-filter\n (sortBy)=\"setSortBy($event)\"\n (filterBy)=\"setFilterBy($event)\"\n></gn-ui-organisations-filter>\n<div class=\"mt-6 rounded-lg text-gray-800 p-4 bg-slate-100\">\n <gn-ui-organisations-result\n *ngIf=\"organisationsTotal$ | async\"\n [hits]=\"organisationResults\"\n [total]=\"organisationsTotal$ | async\"\n ></gn-ui-organisations-result>\n</div>\n<div\n class=\"grid grid-cols-1 mt-6 gap-x-6 gap-y-8 sm:grid-cols-2 lg:grid-cols-3\"\n>\n <gn-ui-content-ghost\n class=\"h-[300px]\"\n ghostClass=\"h-full mb-36\"\n *ngFor=\"let organisation of organisations$ | async; trackBy: trackByIndex\"\n [showContent]=\"!!organisation.name\"\n >\n <gn-ui-organisation-preview\n [organization]=\"organisation\"\n [organisationUrl]=\"getOrganisationUrl(organisation)\"\n (clickedOrganisation)=\"orgSelect.emit($event)\"\n ></gn-ui-organisation-preview>\n </gn-ui-content-ghost>\n</div>\n<div class=\"py-20\">\n <gn-ui-pagination\n [currentPage]=\"currentPage$ | async\"\n [nPages]=\"totalPages\"\n (newCurrentPageEvent)=\"setCurrentPage($event)\"\n ></gn-ui-pagination>\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: OrganisationPreviewComponent, selector: "gn-ui-organisation-preview", inputs: ["organization", "organisationUrl"], outputs: ["clickedOrganisation"] }, { kind: "component", type: OrganisationsFilterComponent, selector: "gn-ui-organisations-filter", outputs: ["sortBy", "filterBy"] }, { kind: "component", type: OrganisationsResultComponent, selector: "gn-ui-organisations-result", inputs: ["hits", "total"] }, { kind: "directive", type: i1$3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ContentGhostComponent, selector: "gn-ui-content-ghost", inputs: ["showContent", "ghostClass"] }, { kind: "component", type: PaginationComponent, selector: "gn-ui-pagination", inputs: ["currentPage", "nPages", "hideButton"], outputs: ["newCurrentPageEvent"] }, { kind: "pipe", type: i1$3.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
33469
33833
|
}
|
|
33470
33834
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OrganisationsComponent, decorators: [{
|
|
33471
33835
|
type: Component,
|
|
33472
|
-
args: [{ selector: 'gn-ui-organisations', changeDetection: ChangeDetectionStrategy.OnPush, template: "<gn-ui-organisations-filter\n (sortBy)=\"setSortBy($event)\"\n (filterBy)=\"setFilterBy($event)\"\n></gn-ui-organisations-filter>\n<div class=\"mt-6 rounded-lg text-gray-800 p-4 bg-slate-100\">\n <gn-ui-organisations-result\n *ngIf=\"organisationsTotal$ | async\"\n [hits]=\"organisationResults\"\n [total]=\"organisationsTotal$ | async\"\n ></gn-ui-organisations-result>\n</div>\n<div\n class=\"grid grid-cols-1 mt-6 gap-x-6 gap-y-8 sm:grid-cols-2 lg:grid-cols-3\"\n>\n <gn-ui-content-ghost\n class=\"h-[300px]\"\n ghostClass=\"h-full mb-36\"\n *ngFor=\"let organisation of organisations$ | async; trackBy: trackByIndex\"\n [showContent]=\"!!organisation.name\"\n >\n <gn-ui-organisation-preview\n [
|
|
33836
|
+
args: [{ selector: 'gn-ui-organisations', changeDetection: ChangeDetectionStrategy.OnPush, template: "<gn-ui-organisations-filter\n (sortBy)=\"setSortBy($event)\"\n (filterBy)=\"setFilterBy($event)\"\n></gn-ui-organisations-filter>\n<div class=\"mt-6 rounded-lg text-gray-800 p-4 bg-slate-100\">\n <gn-ui-organisations-result\n *ngIf=\"organisationsTotal$ | async\"\n [hits]=\"organisationResults\"\n [total]=\"organisationsTotal$ | async\"\n ></gn-ui-organisations-result>\n</div>\n<div\n class=\"grid grid-cols-1 mt-6 gap-x-6 gap-y-8 sm:grid-cols-2 lg:grid-cols-3\"\n>\n <gn-ui-content-ghost\n class=\"h-[300px]\"\n ghostClass=\"h-full mb-36\"\n *ngFor=\"let organisation of organisations$ | async; trackBy: trackByIndex\"\n [showContent]=\"!!organisation.name\"\n >\n <gn-ui-organisation-preview\n [organization]=\"organisation\"\n [organisationUrl]=\"getOrganisationUrl(organisation)\"\n (clickedOrganisation)=\"orgSelect.emit($event)\"\n ></gn-ui-organisation-preview>\n </gn-ui-content-ghost>\n</div>\n<div class=\"py-20\">\n <gn-ui-pagination\n [currentPage]=\"currentPage$ | async\"\n [nPages]=\"totalPages\"\n (newCurrentPageEvent)=\"setCurrentPage($event)\"\n ></gn-ui-pagination>\n</div>\n" }]
|
|
33473
33837
|
}], ctorParameters: function () { return [{ type: OrganizationsServiceInterface }, { type: undefined, decorators: [{
|
|
33474
33838
|
type: Optional
|
|
33475
33839
|
}, {
|
|
33476
33840
|
type: Inject,
|
|
33477
|
-
args: [
|
|
33841
|
+
args: [ORGANIZATION_PAGE_URL_TOKEN]
|
|
33478
33842
|
}] }]; }, propDecorators: { itemsOnPage: [{
|
|
33479
33843
|
type: Input
|
|
33480
33844
|
}], orgSelect: [{
|
|
@@ -33553,9 +33917,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
33553
33917
|
class RecordsService {
|
|
33554
33918
|
constructor(recordsRepository) {
|
|
33555
33919
|
this.recordsRepository = recordsRepository;
|
|
33556
|
-
this.recordsCount$ = this.recordsRepository
|
|
33557
|
-
.getMatchesCount({})
|
|
33558
|
-
.pipe(shareReplay(1), catchError(() => of(0)));
|
|
33920
|
+
this.recordsCount$ = of(true).pipe(switchMap(() => this.recordsRepository.getMatchesCount({})), shareReplay(1));
|
|
33559
33921
|
}
|
|
33560
33922
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RecordsService, deps: [{ token: RecordsRepositoryInterface }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
33561
33923
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RecordsService, providedIn: 'root' }); }
|
|
@@ -33605,37 +33967,54 @@ const GN_UI_VERSION = new InjectionToken('gnUiVersion');
|
|
|
33605
33967
|
|
|
33606
33968
|
const WEB_COMPONENT_EMBEDDER_URL = new InjectionToken('webComponentEmbedderUrl');
|
|
33607
33969
|
class DataViewPermalinkComponent {
|
|
33970
|
+
set viewType(value) {
|
|
33971
|
+
this.viewType$.next(value);
|
|
33972
|
+
}
|
|
33608
33973
|
constructor(config, wcEmbedderBaseUrl, version, facade) {
|
|
33609
33974
|
this.config = config;
|
|
33610
33975
|
this.wcEmbedderBaseUrl = wcEmbedderBaseUrl;
|
|
33611
33976
|
this.version = version;
|
|
33612
33977
|
this.facade = facade;
|
|
33978
|
+
this.viewType$ = new BehaviorSubject('map');
|
|
33613
33979
|
this.permalinkUrl$ = combineLatest([
|
|
33980
|
+
this.viewType$,
|
|
33614
33981
|
this.facade.chartConfig$,
|
|
33615
33982
|
this.facade.metadata$,
|
|
33616
|
-
]).pipe(map$2(([config, metadata]) => {
|
|
33617
|
-
|
|
33618
|
-
|
|
33619
|
-
|
|
33620
|
-
|
|
33621
|
-
|
|
33622
|
-
|
|
33623
|
-
|
|
33624
|
-
|
|
33625
|
-
|
|
33626
|
-
|
|
33627
|
-
|
|
33628
|
-
|
|
33629
|
-
|
|
33630
|
-
|
|
33631
|
-
url.searchParams.append('a', `chart-type=${chartType}`);
|
|
33632
|
-
return url.toString();
|
|
33983
|
+
]).pipe(map$2(([viewType, config, metadata]) => {
|
|
33984
|
+
const url = new URL(`${this.wcEmbedderBaseUrl}`, window.location.origin);
|
|
33985
|
+
url.searchParams.set('v', `${this.version}`);
|
|
33986
|
+
if (viewType === 'chart') {
|
|
33987
|
+
if (config) {
|
|
33988
|
+
const { aggregation, xProperty, yProperty, chartType } = config;
|
|
33989
|
+
url.searchParams.append('e', `gn-dataset-view-chart`);
|
|
33990
|
+
url.searchParams.append('a', `aggregation=${aggregation}`);
|
|
33991
|
+
url.searchParams.append('a', `x-property=${xProperty}`);
|
|
33992
|
+
url.searchParams.append('a', `y-property=${yProperty}`);
|
|
33993
|
+
url.searchParams.append('a', `chart-type=${chartType}`);
|
|
33994
|
+
}
|
|
33995
|
+
else {
|
|
33996
|
+
return '';
|
|
33997
|
+
}
|
|
33633
33998
|
}
|
|
33634
|
-
|
|
33999
|
+
else if (viewType === 'table') {
|
|
34000
|
+
// table
|
|
34001
|
+
url.searchParams.append('e', `gn-dataset-view-table`);
|
|
34002
|
+
}
|
|
34003
|
+
else {
|
|
34004
|
+
// map
|
|
34005
|
+
url.searchParams.append('e', `gn-dataset-view-map`);
|
|
34006
|
+
}
|
|
34007
|
+
url.searchParams.append('a', `api-url=${this.config.basePath}`);
|
|
34008
|
+
url.searchParams.append('a', `dataset-id=${metadata.uniqueIdentifier}`);
|
|
34009
|
+
url.searchParams.append('a', `primary-color=#0f4395`);
|
|
34010
|
+
url.searchParams.append('a', `secondary-color=#8bc832`);
|
|
34011
|
+
url.searchParams.append('a', `main-color=#555`);
|
|
34012
|
+
url.searchParams.append('a', `background-color=#fdfbff`);
|
|
34013
|
+
return url.toString();
|
|
33635
34014
|
}));
|
|
33636
34015
|
}
|
|
33637
34016
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataViewPermalinkComponent, deps: [{ token: Configuration }, { token: WEB_COMPONENT_EMBEDDER_URL, optional: true }, { token: GN_UI_VERSION }, { token: MdViewFacade }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
33638
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DataViewPermalinkComponent, selector: "gn-ui-data-view-permalink", ngImport: i0, template: "<gn-ui-copy-text-button\n *ngIf=\"wcEmbedderBaseUrl\"\n [text]=\"permalinkUrl$ | async\"\n [tooltipText]=\"'tooltip.url.copy' | translate\"\n></gn-ui-copy-text-button>\n", styles: [""], dependencies: [{ kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: CopyTextButtonComponent, selector: "gn-ui-copy-text-button", inputs: ["text", "tooltipText", "displayText", "rows"] }, { kind: "pipe", type: i1$3.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
34017
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DataViewPermalinkComponent, selector: "gn-ui-data-view-permalink", inputs: { viewType: "viewType" }, ngImport: i0, template: "<gn-ui-copy-text-button\n *ngIf=\"wcEmbedderBaseUrl\"\n [text]=\"permalinkUrl$ | async\"\n [tooltipText]=\"'tooltip.url.copy' | translate\"\n></gn-ui-copy-text-button>\n", styles: [""], dependencies: [{ kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: CopyTextButtonComponent, selector: "gn-ui-copy-text-button", inputs: ["text", "tooltipText", "displayText", "rows"] }, { kind: "pipe", type: i1$3.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
33639
34018
|
}
|
|
33640
34019
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataViewPermalinkComponent, decorators: [{
|
|
33641
34020
|
type: Component,
|
|
@@ -33651,37 +34030,71 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
33651
34030
|
}] }, { type: undefined, decorators: [{
|
|
33652
34031
|
type: Inject,
|
|
33653
34032
|
args: [GN_UI_VERSION]
|
|
33654
|
-
}] }, { type: MdViewFacade }]; }
|
|
34033
|
+
}] }, { type: MdViewFacade }]; }, propDecorators: { viewType: [{
|
|
34034
|
+
type: Input
|
|
34035
|
+
}] } });
|
|
33655
34036
|
|
|
33656
34037
|
class DataViewWebComponentComponent {
|
|
34038
|
+
set viewType(value) {
|
|
34039
|
+
this.viewType$.next(value);
|
|
34040
|
+
}
|
|
33657
34041
|
constructor(config, version, facade) {
|
|
33658
34042
|
this.config = config;
|
|
33659
34043
|
this.version = version;
|
|
33660
34044
|
this.facade = facade;
|
|
33661
|
-
this.
|
|
33662
|
-
|
|
33663
|
-
|
|
34045
|
+
this.viewType$ = new BehaviorSubject('map');
|
|
34046
|
+
this.webComponentHtml$ = combineLatest(this.viewType$, this.facade.chartConfig$, this.facade.metadata$).pipe(map$2(([viewType, config, metadata]) => {
|
|
34047
|
+
if (viewType === 'chart') {
|
|
34048
|
+
if (config) {
|
|
34049
|
+
const { aggregation, xProperty, yProperty, chartType } = config;
|
|
34050
|
+
return `<script src="https://cdn.jsdelivr.net/gh/geonetwork/geonetwork-ui@wc-dist-${this.version}/gn-wc.js"></script>
|
|
34051
|
+
<gn-dataset-view-chart
|
|
34052
|
+
api-url="${new URL(this.config.basePath, window.location.origin).toString()}"
|
|
34053
|
+
dataset-id="${metadata.uniqueIdentifier}"
|
|
34054
|
+
aggregation="${aggregation}"
|
|
34055
|
+
x-property="${xProperty}"
|
|
34056
|
+
y-property="${yProperty}"
|
|
34057
|
+
chart-type="${chartType}"
|
|
34058
|
+
primary-color="#0f4395"
|
|
34059
|
+
secondary-color="#8bc832"
|
|
34060
|
+
main-color="#555"
|
|
34061
|
+
background-color="#fdfbff"
|
|
34062
|
+
main-font="'Inter', sans-serif"
|
|
34063
|
+
title-font="'DM Serif Display', serif"
|
|
34064
|
+
></gn-dataset-view-chart>`;
|
|
34065
|
+
}
|
|
34066
|
+
return '';
|
|
34067
|
+
}
|
|
34068
|
+
else if (viewType === 'table') {
|
|
34069
|
+
return `<script src="https://cdn.jsdelivr.net/gh/geonetwork/geonetwork-ui@wc-dist-${this.version}/gn-wc.js"></script>
|
|
34070
|
+
<gn-dataset-view-table
|
|
34071
|
+
api-url="${new URL(this.config.basePath, window.location.origin).toString()}"
|
|
34072
|
+
dataset-id="${metadata.uniqueIdentifier}"
|
|
34073
|
+
primary-color="#0f4395"
|
|
34074
|
+
secondary-color="#8bc832"
|
|
34075
|
+
main-color="#555"
|
|
34076
|
+
background-color="#fdfbff"
|
|
34077
|
+
main-font="'Inter', sans-serif"
|
|
34078
|
+
title-font="'DM Serif Display', serif"
|
|
34079
|
+
></gn-dataset-view-table>`;
|
|
34080
|
+
}
|
|
34081
|
+
else {
|
|
33664
34082
|
return `<script src="https://cdn.jsdelivr.net/gh/geonetwork/geonetwork-ui@wc-dist-${this.version}/gn-wc.js"></script>
|
|
33665
|
-
<gn-dataset-view-
|
|
34083
|
+
<gn-dataset-view-map
|
|
33666
34084
|
api-url="${new URL(this.config.basePath, window.location.origin).toString()}"
|
|
33667
34085
|
dataset-id="${metadata.uniqueIdentifier}"
|
|
33668
|
-
aggregation="${aggregation}"
|
|
33669
|
-
x-property="${xProperty}"
|
|
33670
|
-
y-property="${yProperty}"
|
|
33671
|
-
chart-type="${chartType}"
|
|
33672
34086
|
primary-color="#0f4395"
|
|
33673
34087
|
secondary-color="#8bc832"
|
|
33674
34088
|
main-color="#555"
|
|
33675
34089
|
background-color="#fdfbff"
|
|
33676
34090
|
main-font="'Inter', sans-serif"
|
|
33677
34091
|
title-font="'DM Serif Display', serif"
|
|
33678
|
-
></gn-dataset-view-
|
|
34092
|
+
></gn-dataset-view-map>`;
|
|
33679
34093
|
}
|
|
33680
|
-
return '';
|
|
33681
34094
|
}));
|
|
33682
34095
|
}
|
|
33683
34096
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataViewWebComponentComponent, deps: [{ token: Configuration }, { token: GN_UI_VERSION }, { token: MdViewFacade }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
33684
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DataViewWebComponentComponent, selector: "gn-ui-data-view-web-component", ngImport: i0, template: "<gn-ui-copy-text-button\n [text]=\"webComponentHtml$ | async\"\n [rows]=\"3\"\n [tooltipText]=\"'tooltip.html.copy' | translate\"\n></gn-ui-copy-text-button>\n", styles: [""], dependencies: [{ kind: "component", type: CopyTextButtonComponent, selector: "gn-ui-copy-text-button", inputs: ["text", "tooltipText", "displayText", "rows"] }, { kind: "pipe", type: i1$3.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
34097
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DataViewWebComponentComponent, selector: "gn-ui-data-view-web-component", inputs: { viewType: "viewType" }, ngImport: i0, template: "<gn-ui-copy-text-button\n [text]=\"webComponentHtml$ | async\"\n [rows]=\"3\"\n [tooltipText]=\"'tooltip.html.copy' | translate\"\n></gn-ui-copy-text-button>\n", styles: [""], dependencies: [{ kind: "component", type: CopyTextButtonComponent, selector: "gn-ui-copy-text-button", inputs: ["text", "tooltipText", "displayText", "rows"] }, { kind: "pipe", type: i1$3.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
33685
34098
|
}
|
|
33686
34099
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataViewWebComponentComponent, decorators: [{
|
|
33687
34100
|
type: Component,
|
|
@@ -33692,24 +34105,34 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
33692
34105
|
}] }, { type: undefined, decorators: [{
|
|
33693
34106
|
type: Inject,
|
|
33694
34107
|
args: [GN_UI_VERSION]
|
|
33695
|
-
}] }, { type: MdViewFacade }]; }
|
|
34108
|
+
}] }, { type: MdViewFacade }]; }, propDecorators: { viewType: [{
|
|
34109
|
+
type: Input
|
|
34110
|
+
}] } });
|
|
33696
34111
|
|
|
33697
34112
|
class DataViewShareComponent {
|
|
34113
|
+
set viewType(value) {
|
|
34114
|
+
this._viewType = value;
|
|
34115
|
+
}
|
|
34116
|
+
get viewType() {
|
|
34117
|
+
return this._viewType;
|
|
34118
|
+
}
|
|
33698
34119
|
constructor(wcEmbedderBaseUrl) {
|
|
33699
34120
|
this.wcEmbedderBaseUrl = wcEmbedderBaseUrl;
|
|
33700
34121
|
}
|
|
33701
34122
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataViewShareComponent, deps: [{ token: WEB_COMPONENT_EMBEDDER_URL, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
33702
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DataViewShareComponent, selector: "gn-ui-data-view-share", ngImport: i0, template: "<div class=\"container-lg px-5 my-1 lg:mx-auto\">\n <mat-tab-group\n [selectedIndex]=\"0\"\n animationDuration=\"0ms\"\n mat-stretch-tabs=\"false\"\n mat-align-tabs=\"start\"\n [disableRipple]=\"!wcEmbedderBaseUrl\"\n >\n <mat-tab *ngIf=\"wcEmbedderBaseUrl\">\n <ng-template mat-tab-label>\n <span class=\"tab-header-label-gray\" translate>share.tab.permalink</span>\n </ng-template>\n <gn-ui-data-view-permalink></gn-ui-data-view-permalink>\n </mat-tab>\n <mat-tab>\n <ng-template mat-tab-label>\n <span\n [class]=\"\n wcEmbedderBaseUrl\n ? 'tab-header-label-gray'\n : 'single-tab-header-label-gray'\n \"\n translate\n >share.tab.webComponent</span\n >\n </ng-template>\n <gn-ui-data-view-web-component></gn-ui-data-view-web-component>\n </mat-tab>\n </mat-tab-group>\n</div>\n", styles: ["::ng-deep .mat-mdc-tab.mdc-tab.mdc-tab--active .tab-header-label-gray{opacity:100%;font-weight:700}.tab-header-label-gray{@apply text-sm text-gray-700 opacity-75 hover:text-gray-900;}.single-tab-header-label-gray{@apply text-sm text-gray-900;}\n"], dependencies: [{ kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$
|
|
34123
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DataViewShareComponent, selector: "gn-ui-data-view-share", inputs: { viewType: "viewType" }, ngImport: i0, template: "<div class=\"container-lg px-5 my-1 lg:mx-auto\">\n <mat-tab-group\n [selectedIndex]=\"0\"\n animationDuration=\"0ms\"\n mat-stretch-tabs=\"false\"\n mat-align-tabs=\"start\"\n [disableRipple]=\"!wcEmbedderBaseUrl\"\n >\n <mat-tab *ngIf=\"wcEmbedderBaseUrl\">\n <ng-template mat-tab-label>\n <span class=\"tab-header-label-gray\" translate>share.tab.permalink</span>\n </ng-template>\n <gn-ui-data-view-permalink\n [viewType]=\"viewType\"\n ></gn-ui-data-view-permalink>\n </mat-tab>\n <mat-tab>\n <ng-template mat-tab-label>\n <span\n [class]=\"\n wcEmbedderBaseUrl\n ? 'tab-header-label-gray'\n : 'single-tab-header-label-gray'\n \"\n translate\n >share.tab.webComponent</span\n >\n </ng-template>\n <gn-ui-data-view-web-component\n [viewType]=\"viewType\"\n ></gn-ui-data-view-web-component>\n </mat-tab>\n </mat-tab-group>\n</div>\n", styles: ["::ng-deep .mat-mdc-tab.mdc-tab.mdc-tab--active .tab-header-label-gray{opacity:100%;font-weight:700}.tab-header-label-gray{@apply text-sm text-gray-700 opacity-75 hover:text-gray-900;}.single-tab-header-label-gray{@apply text-sm text-gray-900;}\n"], dependencies: [{ kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$5.MatTabLabel, selector: "[mat-tab-label], [matTabLabel]" }, { kind: "component", type: i2$5.MatTab, selector: "mat-tab", inputs: ["disabled"], exportAs: ["matTab"] }, { kind: "component", type: i2$5.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "disableRipple", "fitInkBarToContent", "mat-stretch-tabs"], exportAs: ["matTabGroup"] }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: DataViewPermalinkComponent, selector: "gn-ui-data-view-permalink", inputs: ["viewType"] }, { kind: "component", type: DataViewWebComponentComponent, selector: "gn-ui-data-view-web-component", inputs: ["viewType"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
33703
34124
|
}
|
|
33704
34125
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataViewShareComponent, decorators: [{
|
|
33705
34126
|
type: Component,
|
|
33706
|
-
args: [{ selector: 'gn-ui-data-view-share', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"container-lg px-5 my-1 lg:mx-auto\">\n <mat-tab-group\n [selectedIndex]=\"0\"\n animationDuration=\"0ms\"\n mat-stretch-tabs=\"false\"\n mat-align-tabs=\"start\"\n [disableRipple]=\"!wcEmbedderBaseUrl\"\n >\n <mat-tab *ngIf=\"wcEmbedderBaseUrl\">\n <ng-template mat-tab-label>\n <span class=\"tab-header-label-gray\" translate>share.tab.permalink</span>\n </ng-template>\n <gn-ui-data-view-permalink></gn-ui-data-view-permalink>\n </mat-tab>\n <mat-tab>\n <ng-template mat-tab-label>\n <span\n [class]=\"\n wcEmbedderBaseUrl\n ? 'tab-header-label-gray'\n : 'single-tab-header-label-gray'\n \"\n translate\n >share.tab.webComponent</span\n >\n </ng-template>\n <gn-ui-data-view-web-component></gn-ui-data-view-web-component>\n </mat-tab>\n </mat-tab-group>\n</div>\n", styles: ["::ng-deep .mat-mdc-tab.mdc-tab.mdc-tab--active .tab-header-label-gray{opacity:100%;font-weight:700}.tab-header-label-gray{@apply text-sm text-gray-700 opacity-75 hover:text-gray-900;}.single-tab-header-label-gray{@apply text-sm text-gray-900;}\n"] }]
|
|
34127
|
+
args: [{ selector: 'gn-ui-data-view-share', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"container-lg px-5 my-1 lg:mx-auto\">\n <mat-tab-group\n [selectedIndex]=\"0\"\n animationDuration=\"0ms\"\n mat-stretch-tabs=\"false\"\n mat-align-tabs=\"start\"\n [disableRipple]=\"!wcEmbedderBaseUrl\"\n >\n <mat-tab *ngIf=\"wcEmbedderBaseUrl\">\n <ng-template mat-tab-label>\n <span class=\"tab-header-label-gray\" translate>share.tab.permalink</span>\n </ng-template>\n <gn-ui-data-view-permalink\n [viewType]=\"viewType\"\n ></gn-ui-data-view-permalink>\n </mat-tab>\n <mat-tab>\n <ng-template mat-tab-label>\n <span\n [class]=\"\n wcEmbedderBaseUrl\n ? 'tab-header-label-gray'\n : 'single-tab-header-label-gray'\n \"\n translate\n >share.tab.webComponent</span\n >\n </ng-template>\n <gn-ui-data-view-web-component\n [viewType]=\"viewType\"\n ></gn-ui-data-view-web-component>\n </mat-tab>\n </mat-tab-group>\n</div>\n", styles: ["::ng-deep .mat-mdc-tab.mdc-tab.mdc-tab--active .tab-header-label-gray{opacity:100%;font-weight:700}.tab-header-label-gray{@apply text-sm text-gray-700 opacity-75 hover:text-gray-900;}.single-tab-header-label-gray{@apply text-sm text-gray-900;}\n"] }]
|
|
33707
34128
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
33708
34129
|
type: Optional
|
|
33709
34130
|
}, {
|
|
33710
34131
|
type: Inject,
|
|
33711
34132
|
args: [WEB_COMPONENT_EMBEDDER_URL]
|
|
33712
|
-
}] }]; }
|
|
34133
|
+
}] }]; }, propDecorators: { viewType: [{
|
|
34134
|
+
type: Input
|
|
34135
|
+
}] } });
|
|
33713
34136
|
|
|
33714
34137
|
class FeatureRecordModule {
|
|
33715
34138
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FeatureRecordModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
@@ -33729,7 +34152,8 @@ class FeatureRecordModule {
|
|
|
33729
34152
|
UiWidgetsModule,
|
|
33730
34153
|
TranslateModule,
|
|
33731
34154
|
TableComponent,
|
|
33732
|
-
FeatureDatavizModule
|
|
34155
|
+
FeatureDatavizModule,
|
|
34156
|
+
PopupAlertComponent], exports: [MapViewComponent,
|
|
33733
34157
|
DataViewComponent,
|
|
33734
34158
|
DataViewPermalinkComponent,
|
|
33735
34159
|
DataViewWebComponentComponent,
|
|
@@ -33748,7 +34172,8 @@ class FeatureRecordModule {
|
|
|
33748
34172
|
UiWidgetsModule,
|
|
33749
34173
|
TranslateModule,
|
|
33750
34174
|
TableComponent,
|
|
33751
|
-
FeatureDatavizModule
|
|
34175
|
+
FeatureDatavizModule,
|
|
34176
|
+
PopupAlertComponent] }); }
|
|
33752
34177
|
}
|
|
33753
34178
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FeatureRecordModule, decorators: [{
|
|
33754
34179
|
type: NgModule,
|
|
@@ -33777,6 +34202,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
33777
34202
|
TranslateModule,
|
|
33778
34203
|
TableComponent,
|
|
33779
34204
|
FeatureDatavizModule,
|
|
34205
|
+
PopupAlertComponent,
|
|
33780
34206
|
],
|
|
33781
34207
|
providers: [MdViewFacade],
|
|
33782
34208
|
exports: [
|
|
@@ -33795,26 +34221,27 @@ const markRecordAsChanged = createAction('[Editor] Mark record as changed');
|
|
|
33795
34221
|
const saveRecord = createAction('[Editor] Save record');
|
|
33796
34222
|
const saveRecordSuccess = createAction('[Editor] Save record success');
|
|
33797
34223
|
const saveRecordFailure = createAction('[Editor] Save record failure', props());
|
|
34224
|
+
const draftSaveSuccess = createAction('[Editor] Draft save success');
|
|
33798
34225
|
|
|
33799
34226
|
const DEFAULT_FIELDS = [
|
|
33800
34227
|
{
|
|
33801
34228
|
model: 'title',
|
|
33802
34229
|
formFieldConfig: {
|
|
33803
|
-
labelKey: '
|
|
34230
|
+
labelKey: marker('editor.record.form.metadata.title'),
|
|
33804
34231
|
type: 'text',
|
|
33805
34232
|
},
|
|
33806
34233
|
},
|
|
33807
34234
|
{
|
|
33808
34235
|
model: 'abstract',
|
|
33809
34236
|
formFieldConfig: {
|
|
33810
|
-
labelKey: '
|
|
34237
|
+
labelKey: marker('editor.record.form.abstract'),
|
|
33811
34238
|
type: 'rich',
|
|
33812
34239
|
},
|
|
33813
34240
|
},
|
|
33814
34241
|
{
|
|
33815
34242
|
model: 'uniqueIdentifier',
|
|
33816
34243
|
formFieldConfig: {
|
|
33817
|
-
labelKey: '
|
|
34244
|
+
labelKey: marker('editor.record.form.unique.identifier'),
|
|
33818
34245
|
type: 'text',
|
|
33819
34246
|
locked: true,
|
|
33820
34247
|
},
|
|
@@ -33822,7 +34249,7 @@ const DEFAULT_FIELDS = [
|
|
|
33822
34249
|
{
|
|
33823
34250
|
model: 'recordUpdated',
|
|
33824
34251
|
formFieldConfig: {
|
|
33825
|
-
labelKey: '
|
|
34252
|
+
labelKey: marker('editor.record.form.record.updated'),
|
|
33826
34253
|
type: 'text',
|
|
33827
34254
|
locked: true,
|
|
33828
34255
|
},
|
|
@@ -33856,6 +34283,13 @@ const DEFAULT_FIELDS = [
|
|
|
33856
34283
|
type: 'list',
|
|
33857
34284
|
},
|
|
33858
34285
|
},
|
|
34286
|
+
{
|
|
34287
|
+
model: 'keywords',
|
|
34288
|
+
formFieldConfig: {
|
|
34289
|
+
labelKey: marker('editor.record.form.keywords'),
|
|
34290
|
+
type: 'list',
|
|
34291
|
+
},
|
|
34292
|
+
},
|
|
33859
34293
|
];
|
|
33860
34294
|
|
|
33861
34295
|
const EDITOR_FEATURE_KEY = 'editor';
|
|
@@ -33911,7 +34345,7 @@ const selectRecordAlreadySavedOnce = createSelector(selectEditorState, (state) =
|
|
|
33911
34345
|
const selectRecordFieldsConfig = createSelector(selectEditorState, (state) => state.fieldsConfig);
|
|
33912
34346
|
const selectRecordFields = createSelector(selectEditorState, (state) => state.fieldsConfig.map((fieldConfig) => ({
|
|
33913
34347
|
config: fieldConfig,
|
|
33914
|
-
value: state.record?.[fieldConfig.model]
|
|
34348
|
+
value: state.record?.[fieldConfig.model] ?? null,
|
|
33915
34349
|
})));
|
|
33916
34350
|
|
|
33917
34351
|
class EditorFacade {
|
|
@@ -33926,6 +34360,7 @@ class EditorFacade {
|
|
|
33926
34360
|
this.saveSuccess$ = this.actions$.pipe(ofType(saveRecordSuccess));
|
|
33927
34361
|
this.changedSinceSave$ = this.store.pipe(select(selectRecordChangedSinceSave));
|
|
33928
34362
|
this.recordFields$ = this.store.pipe(select(selectRecordFields));
|
|
34363
|
+
this.draftSaveSuccess$ = this.actions$.pipe(ofType(draftSaveSuccess));
|
|
33929
34364
|
}
|
|
33930
34365
|
openRecord(record, recordSource, alreadySavedOnce) {
|
|
33931
34366
|
this.store.dispatch(openRecord({ record, recordSource, alreadySavedOnce }));
|
|
@@ -33961,7 +34396,7 @@ class EditorService {
|
|
|
33961
34396
|
this.recordsRepository = recordsRepository;
|
|
33962
34397
|
}
|
|
33963
34398
|
// returns the record as it was when saved, alongside its source
|
|
33964
|
-
saveRecord(record, fieldsConfig) {
|
|
34399
|
+
saveRecord(record, fieldsConfig, generateNewUniqueIdentifier = false) {
|
|
33965
34400
|
const savedRecord = { ...record };
|
|
33966
34401
|
// run onSave processes
|
|
33967
34402
|
for (const field of fieldsConfig) {
|
|
@@ -33973,9 +34408,14 @@ class EditorService {
|
|
|
33973
34408
|
});
|
|
33974
34409
|
}
|
|
33975
34410
|
}
|
|
33976
|
-
|
|
33977
|
-
|
|
33978
|
-
.
|
|
34411
|
+
// if we want a new unique identifier, clear the existing one
|
|
34412
|
+
if (generateNewUniqueIdentifier) {
|
|
34413
|
+
savedRecord.uniqueIdentifier = null;
|
|
34414
|
+
}
|
|
34415
|
+
return this.recordsRepository.saveRecord(savedRecord).pipe(switchMap((uniqueIdentifier) => this.recordsRepository.openRecordForEdition(uniqueIdentifier)), tap$1(() => {
|
|
34416
|
+
// if saving was successful, the original draft can be discarded
|
|
34417
|
+
this.recordsRepository.clearRecordDraft(record.uniqueIdentifier);
|
|
34418
|
+
}), map$1(([record, recordSource]) => [record, recordSource]));
|
|
33979
34419
|
}
|
|
33980
34420
|
// emits and completes once saving is done
|
|
33981
34421
|
// note: onSave processes are not run for drafts
|
|
@@ -34000,7 +34440,9 @@ class EditorEffects {
|
|
|
34000
34440
|
this.editorService = inject(EditorService);
|
|
34001
34441
|
this.recordsRepository = inject(RecordsRepositoryInterface);
|
|
34002
34442
|
this.store = inject(Store);
|
|
34003
|
-
this.saveRecord$ = createEffect(() => this.actions$.pipe(ofType(saveRecord), withLatestFrom$1(this.store.select(selectRecord), this.store.select(selectRecordFieldsConfig)), switchMap$1(([, record, fieldsConfig]) => this.editorService
|
|
34443
|
+
this.saveRecord$ = createEffect(() => this.actions$.pipe(ofType(saveRecord), withLatestFrom$1(this.store.select(selectRecord), this.store.select(selectRecordFieldsConfig), this.store.select(selectRecordAlreadySavedOnce)), switchMap$1(([, record, fieldsConfig, alreadySavedOnce]) => this.editorService
|
|
34444
|
+
.saveRecord(record, fieldsConfig, !alreadySavedOnce)
|
|
34445
|
+
.pipe(switchMap$1(([record, recordSource]) => of(saveRecordSuccess(), openRecord({
|
|
34004
34446
|
record,
|
|
34005
34447
|
alreadySavedOnce: true,
|
|
34006
34448
|
recordSource,
|
|
@@ -34008,7 +34450,7 @@ class EditorEffects {
|
|
|
34008
34450
|
error: error.message,
|
|
34009
34451
|
})))))));
|
|
34010
34452
|
this.markAsChanged$ = createEffect(() => this.actions$.pipe(ofType(updateRecordField), map$1(() => markRecordAsChanged())));
|
|
34011
|
-
this.saveRecordDraft$ = createEffect(() => this.actions$.pipe(ofType(updateRecordField), debounceTime$1(1000), withLatestFrom$1(this.store.select(selectRecord)), switchMap$1(([, record]) => this.editorService.saveRecordAsDraft(record))
|
|
34453
|
+
this.saveRecordDraft$ = createEffect(() => this.actions$.pipe(ofType(updateRecordField), debounceTime$1(1000), withLatestFrom$1(this.store.select(selectRecord)), switchMap$1(([, record]) => this.editorService.saveRecordAsDraft(record)), map$1(() => draftSaveSuccess())));
|
|
34012
34454
|
this.checkHasChangesOnOpen$ = createEffect(() => this.actions$.pipe(ofType(openRecord), map$1(({ record }) => this.recordsRepository.recordHasDraft(record.uniqueIdentifier)), filter$1((hasDraft) => hasDraft), map$1(() => markRecordAsChanged())));
|
|
34013
34455
|
}
|
|
34014
34456
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EditorEffects, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
@@ -34239,7 +34681,7 @@ class WizardFieldComponent {
|
|
|
34239
34681
|
deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],
|
|
34240
34682
|
},
|
|
34241
34683
|
{ provide: MAT_DATE_FORMATS, useValue: MY_FORMATS },
|
|
34242
|
-
], viewQueries: [{ propertyName: "searchText", first: true, predicate: ["searchText"], descendants: true }, { propertyName: "chips", first: true, predicate: ["chips"], descendants: true }, { propertyName: "textArea", first: true, predicate: ["textArea"], descendants: true }, { propertyName: "dropdown", first: true, predicate: ["dropdown"], descendants: true }], ngImport: i0, template: "<div class=\"flex flex-1\">\n <span [class]=\"wizardFieldConfig.icon + ' pr-10'\"></span>\n <div class=\"flex flex-col flex-1\">\n <div translate class=\"text-xl font-bold pb-1\">\n {{ wizardFieldConfig.label }}\n </div>\n <div\n class=\"w-1/2 h-12\"\n *ngIf=\"wizardFieldType.TEXT === wizardFieldConfig.type\"\n >\n <gn-ui-text-input\n #searchText\n [id]=\"wizardFieldConfig.id\"\n [value]=\"wizardFieldData\"\n [required]=\"wizardFieldConfig.required || false\"\n hint=\"\"\n ></gn-ui-text-input>\n </div>\n <div\n class=\"flex-1 w-11/12\"\n *ngIf=\"wizardFieldType.CHIPS === wizardFieldConfig.type\"\n >\n <gn-ui-chips-input\n #chips\n [selectedItems]=\"wizardFieldData\"\n placeholder=\"\"\n [id]=\"wizardFieldConfig.id\"\n [url]=\"wizardFieldConfig.options.url\"\n [loadOnce]=\"wizardFieldConfig.options.loadOnce\"\n ></gn-ui-chips-input>\n </div>\n <div\n class=\"h-32 w-11/12\"\n *ngIf=\"wizardFieldType.TEXT_AREA === wizardFieldConfig.type\"\n >\n <gn-ui-text-area\n #textArea\n [id]=\"wizardFieldConfig.id\"\n [value]=\"wizardFieldData\"\n [required]=\"wizardFieldConfig.required || false\"\n placeholder=\"\"\n ></gn-ui-text-area>\n </div>\n <div\n class=\"w-1/2 h-12\"\n *ngIf=\"wizardFieldType.DATA_PICKER === wizardFieldConfig.type\"\n >\n <input\n [id]=\"wizardFieldConfig.id\"\n type=\"text\"\n (click)=\"datepicker.open()\"\n class=\"rounded p-2 text-gray-700 w-full leading-tight focus:outline-none focus:border-primary\"\n [value]=\"wizardFieldData\"\n [matDatepicker]=\"datepicker\"\n (dateChange)=\"onDateChange($event)\"\n />\n <mat-datepicker #datepicker></mat-datepicker>\n </div>\n <div\n class=\"w-1/2 h-12\"\n *ngIf=\"wizardFieldType.DROPDOWN === wizardFieldConfig.type\"\n >\n <gn-ui-dropdown-selector\n #dropdown\n [id]=\"wizardFieldConfig.id\"\n [title]=\"''\"\n [extraBtnClass]=\"'secondary min-w-full'\"\n [showTitle]=\"false\"\n [choices]=\"dropdownChoices\"\n [selected]=\"wizardFieldData\"\n ariaName=\"search-sort-by\"\n ></gn-ui-dropdown-selector>\n </div>\n </div>\n</div>\n", styles: [":host{display:flex;flex:1}gn-ui-text-input::ng-deep input,input[type=text]{height:100%;background:white;color:#000;font-style:italic;border-width:2px;border-color:var(--color-primary)}gn-ui-text-area::ng-deep textarea{border-width:2px;border-color:var(--color-primary)}gn-ui-dropdown-selector::ng-deep div{height:100%}gn-ui-dropdown-selector::ng-deep select{height:100%;border-width:2px;border-color:var(--color-primary);background-color:#fff}\n"], dependencies: [{ kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: DropdownSelectorComponent, selector: "gn-ui-dropdown-selector", inputs: ["title", "showTitle", "ariaName", "choices", "selected", "maxRows", "extraBtnClass", "minWidth", "disabled"], outputs: ["selectValue"] }, { kind: "component", type: TextInputComponent, selector: "gn-ui-text-input", inputs: ["value", "extraClass", "hint", "required", "disabled"], outputs: ["valueChange"] }, { kind: "component", type: TextAreaComponent, selector: "gn-ui-text-area", inputs: ["value", "disabled", "extraClass", "placeholder", "required"], outputs: ["valueChange"] }, { kind: "component", type: ChipsInputComponent, selector: "gn-ui-chips-input", inputs: ["url", "placeholder", "selectedItems", "required", "loadOnce", "autocompleteItems"], outputs: ["itemsChange"] }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i2$
|
|
34684
|
+
], viewQueries: [{ propertyName: "searchText", first: true, predicate: ["searchText"], descendants: true }, { propertyName: "chips", first: true, predicate: ["chips"], descendants: true }, { propertyName: "textArea", first: true, predicate: ["textArea"], descendants: true }, { propertyName: "dropdown", first: true, predicate: ["dropdown"], descendants: true }], ngImport: i0, template: "<div class=\"flex flex-1\">\n <span [class]=\"wizardFieldConfig.icon + ' pr-10'\"></span>\n <div class=\"flex flex-col flex-1\">\n <div translate class=\"text-xl font-bold pb-1\">\n {{ wizardFieldConfig.label }}\n </div>\n <div\n class=\"w-1/2 h-12\"\n *ngIf=\"wizardFieldType.TEXT === wizardFieldConfig.type\"\n >\n <gn-ui-text-input\n #searchText\n [id]=\"wizardFieldConfig.id\"\n [value]=\"wizardFieldData\"\n [required]=\"wizardFieldConfig.required || false\"\n hint=\"\"\n ></gn-ui-text-input>\n </div>\n <div\n class=\"flex-1 w-11/12\"\n *ngIf=\"wizardFieldType.CHIPS === wizardFieldConfig.type\"\n >\n <gn-ui-chips-input\n #chips\n [selectedItems]=\"wizardFieldData\"\n placeholder=\"\"\n [id]=\"wizardFieldConfig.id\"\n [url]=\"wizardFieldConfig.options.url\"\n [loadOnce]=\"wizardFieldConfig.options.loadOnce\"\n ></gn-ui-chips-input>\n </div>\n <div\n class=\"h-32 w-11/12\"\n *ngIf=\"wizardFieldType.TEXT_AREA === wizardFieldConfig.type\"\n >\n <gn-ui-text-area\n #textArea\n [id]=\"wizardFieldConfig.id\"\n [value]=\"wizardFieldData\"\n [required]=\"wizardFieldConfig.required || false\"\n placeholder=\"\"\n ></gn-ui-text-area>\n </div>\n <div\n class=\"w-1/2 h-12\"\n *ngIf=\"wizardFieldType.DATA_PICKER === wizardFieldConfig.type\"\n >\n <input\n [id]=\"wizardFieldConfig.id\"\n type=\"text\"\n (click)=\"datepicker.open()\"\n class=\"rounded p-2 text-gray-700 w-full leading-tight focus:outline-none focus:border-primary\"\n [value]=\"wizardFieldData\"\n [matDatepicker]=\"datepicker\"\n (dateChange)=\"onDateChange($event)\"\n />\n <mat-datepicker #datepicker></mat-datepicker>\n </div>\n <div\n class=\"w-1/2 h-12\"\n *ngIf=\"wizardFieldType.DROPDOWN === wizardFieldConfig.type\"\n >\n <gn-ui-dropdown-selector\n #dropdown\n [id]=\"wizardFieldConfig.id\"\n [title]=\"''\"\n [extraBtnClass]=\"'secondary min-w-full'\"\n [showTitle]=\"false\"\n [choices]=\"dropdownChoices\"\n [selected]=\"wizardFieldData\"\n ariaName=\"search-sort-by\"\n ></gn-ui-dropdown-selector>\n </div>\n </div>\n</div>\n", styles: [":host{display:flex;flex:1}gn-ui-text-input::ng-deep input,input[type=text]{height:100%;background:white;color:#000;font-style:italic;border-width:2px;border-color:var(--color-primary)}gn-ui-text-area::ng-deep textarea{border-width:2px;border-color:var(--color-primary)}gn-ui-dropdown-selector::ng-deep div{height:100%}gn-ui-dropdown-selector::ng-deep select{height:100%;border-width:2px;border-color:var(--color-primary);background-color:#fff}\n"], dependencies: [{ kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: DropdownSelectorComponent, selector: "gn-ui-dropdown-selector", inputs: ["title", "showTitle", "ariaName", "choices", "selected", "maxRows", "extraBtnClass", "minWidth", "disabled"], outputs: ["selectValue"] }, { kind: "component", type: TextInputComponent, selector: "gn-ui-text-input", inputs: ["value", "extraClass", "hint", "required", "disabled"], outputs: ["valueChange"] }, { kind: "component", type: TextAreaComponent, selector: "gn-ui-text-area", inputs: ["value", "disabled", "extraClass", "placeholder", "required"], outputs: ["valueChange"] }, { kind: "component", type: ChipsInputComponent, selector: "gn-ui-chips-input", inputs: ["url", "placeholder", "selectedItems", "required", "loadOnce", "autocompleteItems"], outputs: ["itemsChange"] }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i2$4.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i2$4.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
34243
34685
|
}
|
|
34244
34686
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: WizardFieldComponent, decorators: [{
|
|
34245
34687
|
type: Component,
|
|
@@ -34390,7 +34832,7 @@ class FeatureEditorModule {
|
|
|
34390
34832
|
MatFormFieldModule,
|
|
34391
34833
|
HttpClientModule,
|
|
34392
34834
|
HttpClientXsrfModule, i1$2.StoreFeatureModule, i1$8.EffectsFeatureModule], exports: [WizardComponent, WizardSummarizeComponent] }); }
|
|
34393
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FeatureEditorModule, providers: [EditorFacade], imports: [CommonModule,
|
|
34835
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FeatureEditorModule, providers: [EditorFacade, Gn4PlatformService], imports: [CommonModule,
|
|
34394
34836
|
UiInputsModule,
|
|
34395
34837
|
UiWidgetsModule,
|
|
34396
34838
|
TranslateModule.forChild(),
|
|
@@ -34424,10 +34866,58 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
34424
34866
|
EffectsModule.forFeature([EditorEffects]),
|
|
34425
34867
|
],
|
|
34426
34868
|
exports: [WizardComponent, WizardSummarizeComponent],
|
|
34427
|
-
providers: [EditorFacade],
|
|
34869
|
+
providers: [EditorFacade, Gn4PlatformService],
|
|
34428
34870
|
}]
|
|
34429
34871
|
}] });
|
|
34430
34872
|
|
|
34873
|
+
class FormFieldKeywordsComponent {
|
|
34874
|
+
constructor(platformService) {
|
|
34875
|
+
this.platformService = platformService;
|
|
34876
|
+
this.displayWithFn = (item) => {
|
|
34877
|
+
return `${item.title} (${item.value.thesaurus?.name})`;
|
|
34878
|
+
};
|
|
34879
|
+
this.autoCompleteAction = (query) => {
|
|
34880
|
+
return this.platformService
|
|
34881
|
+
.searchKeywords(query, ['temporal', 'theme', 'other'])
|
|
34882
|
+
.pipe(map$2((keywords) => keywords.map((keyword) => {
|
|
34883
|
+
return { title: keyword.label, value: keyword };
|
|
34884
|
+
})));
|
|
34885
|
+
};
|
|
34886
|
+
}
|
|
34887
|
+
handleItemSelection(item) {
|
|
34888
|
+
this.addKeyword(item.value);
|
|
34889
|
+
}
|
|
34890
|
+
addKeyword(keyword) {
|
|
34891
|
+
const addedKeywords = [...this.control.value, keyword];
|
|
34892
|
+
// remove duplicates from keyword
|
|
34893
|
+
const filteredKeywords = addedKeywords.filter((value, index, self) => {
|
|
34894
|
+
return (index ===
|
|
34895
|
+
self.findIndex((t) => t?.label === value?.label &&
|
|
34896
|
+
t?.thesaurus?.id === value?.thesaurus?.id &&
|
|
34897
|
+
t?.type === value?.type));
|
|
34898
|
+
});
|
|
34899
|
+
this.control.setValue(filteredKeywords);
|
|
34900
|
+
}
|
|
34901
|
+
removeKeyword(index) {
|
|
34902
|
+
const removeKeywords = this.control.value.filter((_, i) => i !== index);
|
|
34903
|
+
this.control.setValue(removeKeywords);
|
|
34904
|
+
}
|
|
34905
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldKeywordsComponent, deps: [{ token: PlatformServiceInterface }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
34906
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormFieldKeywordsComponent, isStandalone: true, selector: "gn-ui-form-field-keywords", inputs: { control: "control" }, ngImport: i0, template: "<div class=\"flex flex-col gap-3\">\n <gn-ui-autocomplete\n [placeholder]=\"'Search for keywords in all thesaurus'\"\n [displayWithFn]=\"displayWithFn\"\n [action]=\"autoCompleteAction\"\n (itemSelected)=\"handleItemSelection($event)\"\n [clearOnSelection]=\"true\"\n [minCharacterCount]=\"0\"\n [allowSubmit]=\"false\"\n ></gn-ui-autocomplete>\n <div class=\"flex gap-2 flex-wrap\">\n <gn-ui-badge\n *ngFor=\"let keyword of control.value; let index = index\"\n [removable]=\"true\"\n (badgeRemoveClicked)=\"removeKeyword(index)\"\n >{{ keyword.label }}</gn-ui-badge\n >\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: UiInputsModule }, { kind: "component", type: BadgeComponent, selector: "gn-ui-badge", inputs: ["clickable", "removable"], outputs: ["badgeRemoveClicked"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: UiWidgetsModule }, { kind: "component", type: AutocompleteComponent, selector: "gn-ui-autocomplete", inputs: ["placeholder", "action", "value", "clearOnSelection", "autoFocus", "minCharacterCount", "allowSubmit", "displayWithFn"], outputs: ["itemSelected", "inputSubmitted", "inputCleared"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
34907
|
+
}
|
|
34908
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldKeywordsComponent, decorators: [{
|
|
34909
|
+
type: Component,
|
|
34910
|
+
args: [{ selector: 'gn-ui-form-field-keywords', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
34911
|
+
DropdownSelectorComponent,
|
|
34912
|
+
UiInputsModule,
|
|
34913
|
+
CommonModule,
|
|
34914
|
+
UiWidgetsModule,
|
|
34915
|
+
AutocompleteComponent,
|
|
34916
|
+
], template: "<div class=\"flex flex-col gap-3\">\n <gn-ui-autocomplete\n [placeholder]=\"'Search for keywords in all thesaurus'\"\n [displayWithFn]=\"displayWithFn\"\n [action]=\"autoCompleteAction\"\n (itemSelected)=\"handleItemSelection($event)\"\n [clearOnSelection]=\"true\"\n [minCharacterCount]=\"0\"\n [allowSubmit]=\"false\"\n ></gn-ui-autocomplete>\n <div class=\"flex gap-2 flex-wrap\">\n <gn-ui-badge\n *ngFor=\"let keyword of control.value; let index = index\"\n [removable]=\"true\"\n (badgeRemoveClicked)=\"removeKeyword(index)\"\n >{{ keyword.label }}</gn-ui-badge\n >\n </div>\n</div>\n" }]
|
|
34917
|
+
}], ctorParameters: function () { return [{ type: PlatformServiceInterface }]; }, propDecorators: { control: [{
|
|
34918
|
+
type: Input
|
|
34919
|
+
}] } });
|
|
34920
|
+
|
|
34431
34921
|
class FormFieldLicenseComponent {
|
|
34432
34922
|
constructor() {
|
|
34433
34923
|
this.choices = [
|
|
@@ -34639,7 +35129,7 @@ class FormFieldSimpleComponent {
|
|
|
34639
35129
|
return this.type === 'list';
|
|
34640
35130
|
}
|
|
34641
35131
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldSimpleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
34642
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormFieldSimpleComponent, isStandalone: true, selector: "gn-ui-form-field-simple", inputs: { type: "type", control: "control", readonly: "readonly", invalid: "invalid", placeholder: "placeholder", options: "options" }, ngImport: i0, template: "<input\n *ngIf=\"!isSelect\"\n [type]=\"inputType\"\n [readonly]=\"readonly\"\n [formControl]=\"control\"\n [placeholder]=\"placeholder\"\n class=\"border rounded-md p-3 w-full bg-white transition-colors\"\n [ngClass]=\"{\n 'border-pink-500': invalid,\n 'border-gray-200': !invalid,\n 'text-gray-600': readonly\n }\"\n/>\n<select\n *ngIf=\"isSelect\"\n [formControl]=\"control\"\n class=\"border rounded-md p-3 w-full bg-white transition-colors\"\n [ngClass]=\"{\n 'border-pink-500': invalid,\n 'border-gray-200': !invalid,\n 'text-gray-600': readonly\n }\"\n>\n <option *ngFor=\"let option of options\" [ngValue]=\"option.value\">\n {{ option.label }}\n </option>\n</select>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$
|
|
35132
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormFieldSimpleComponent, isStandalone: true, selector: "gn-ui-form-field-simple", inputs: { type: "type", control: "control", readonly: "readonly", invalid: "invalid", placeholder: "placeholder", options: "options" }, ngImport: i0, template: "<input\n *ngIf=\"!isSelect\"\n [type]=\"inputType\"\n [readonly]=\"readonly\"\n [formControl]=\"control\"\n [placeholder]=\"placeholder\"\n class=\"border rounded-md p-3 w-full bg-white transition-colors\"\n [ngClass]=\"{\n 'border-pink-500': invalid,\n 'border-gray-200': !invalid,\n 'text-gray-600': readonly\n }\"\n/>\n<select\n *ngIf=\"isSelect\"\n [formControl]=\"control\"\n class=\"border rounded-md p-3 w-full bg-white transition-colors\"\n [ngClass]=\"{\n 'border-pink-500': invalid,\n 'border-gray-200': !invalid,\n 'text-gray-600': readonly\n }\"\n>\n <option *ngFor=\"let option of options\" [ngValue]=\"option.value\">\n {{ option.label }}\n </option>\n</select>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2$2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
34643
35133
|
}
|
|
34644
35134
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldSimpleComponent, decorators: [{
|
|
34645
35135
|
type: Component,
|
|
@@ -34665,7 +35155,7 @@ class FormFieldFileComponent {
|
|
|
34665
35155
|
this.placeholder = '';
|
|
34666
35156
|
}
|
|
34667
35157
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldFileComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
34668
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormFieldFileComponent, isStandalone: true, selector: "gn-ui-form-field-file", inputs: { control: "control", readonly: "readonly", invalid: "invalid", placeholder: "placeholder" }, ngImport: i0, template: "<input\n type=\"file\"\n [readonly]=\"readonly\"\n [formControl]=\"control\"\n [placeholder]=\"placeholder\"\n class=\"border rounded-md p-3 w-full bg-white transition-colors\"\n [ngClass]=\"{\n 'border-pink-500': invalid,\n 'border-gray-200': !invalid,\n 'text-gray-600': readonly\n }\"\n/>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$
|
|
35158
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormFieldFileComponent, isStandalone: true, selector: "gn-ui-form-field-file", inputs: { control: "control", readonly: "readonly", invalid: "invalid", placeholder: "placeholder" }, ngImport: i0, template: "<input\n type=\"file\"\n [readonly]=\"readonly\"\n [formControl]=\"control\"\n [placeholder]=\"placeholder\"\n class=\"border rounded-md p-3 w-full bg-white transition-colors\"\n [ngClass]=\"{\n 'border-pink-500': invalid,\n 'border-gray-200': !invalid,\n 'text-gray-600': readonly\n }\"\n/>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
34669
35159
|
}
|
|
34670
35160
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldFileComponent, decorators: [{
|
|
34671
35161
|
type: Component,
|
|
@@ -34747,92 +35237,105 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
34747
35237
|
|
|
34748
35238
|
class FormFieldUpdateFrequencyComponent {
|
|
34749
35239
|
get planned() {
|
|
34750
|
-
return this.control.value !== '
|
|
35240
|
+
return typeof this.control.value !== 'string';
|
|
34751
35241
|
}
|
|
34752
35242
|
constructor(translateService) {
|
|
34753
35243
|
this.translateService = translateService;
|
|
34754
|
-
this.choices = [
|
|
35244
|
+
this.choices = [];
|
|
35245
|
+
}
|
|
35246
|
+
async ngOnInit() {
|
|
35247
|
+
this.choices = await this.getInitialChoices();
|
|
35248
|
+
if (typeof this.control.value === 'string') {
|
|
35249
|
+
return;
|
|
35250
|
+
}
|
|
35251
|
+
const updatedTimes = this.control.value.updatedTimes;
|
|
35252
|
+
const per = this.control.value.per;
|
|
35253
|
+
// the update frequency is not in the list; make it appear there
|
|
35254
|
+
if (updatedTimes && updatedTimes !== 1 && updatedTimes !== 2) {
|
|
35255
|
+
this.choices = [
|
|
35256
|
+
{
|
|
35257
|
+
value: `${per}.${updatedTimes}`,
|
|
35258
|
+
label: await firstValueFrom(this.translateService.get(`domain.record.updateFrequency.${per}`, {
|
|
35259
|
+
count: updatedTimes,
|
|
35260
|
+
})),
|
|
35261
|
+
},
|
|
35262
|
+
...this.choices,
|
|
35263
|
+
];
|
|
35264
|
+
}
|
|
35265
|
+
}
|
|
35266
|
+
onPlannedToggled() {
|
|
35267
|
+
if (this.planned) {
|
|
35268
|
+
this.control.setValue('notPlanned');
|
|
35269
|
+
}
|
|
35270
|
+
else {
|
|
35271
|
+
this.control.setValue({ updatedTimes: 1, per: 'day' });
|
|
35272
|
+
}
|
|
35273
|
+
}
|
|
35274
|
+
get selectedFrequency() {
|
|
35275
|
+
if (typeof this.control.value === 'string')
|
|
35276
|
+
return null;
|
|
35277
|
+
const { updatedTimes, per } = this.control.value;
|
|
35278
|
+
return `${per}.${updatedTimes}`;
|
|
35279
|
+
}
|
|
35280
|
+
onSelectFrequencyValue(value) {
|
|
35281
|
+
const split = value.split('.');
|
|
35282
|
+
this.control.setValue({
|
|
35283
|
+
updatedTimes: Number(split[1]),
|
|
35284
|
+
per: split[0],
|
|
35285
|
+
});
|
|
35286
|
+
}
|
|
35287
|
+
async getInitialChoices() {
|
|
35288
|
+
return [
|
|
34755
35289
|
{
|
|
34756
35290
|
value: 'day.1',
|
|
34757
|
-
label: this.translateService.
|
|
35291
|
+
label: await firstValueFrom(this.translateService.get('domain.record.updateFrequency.day', {
|
|
34758
35292
|
count: 1,
|
|
34759
|
-
}),
|
|
35293
|
+
})),
|
|
34760
35294
|
},
|
|
34761
35295
|
{
|
|
34762
35296
|
value: 'day.2',
|
|
34763
|
-
label: this.translateService.
|
|
35297
|
+
label: await firstValueFrom(this.translateService.get('domain.record.updateFrequency.day', {
|
|
34764
35298
|
count: 2,
|
|
34765
|
-
}),
|
|
35299
|
+
})),
|
|
34766
35300
|
},
|
|
34767
35301
|
{
|
|
34768
35302
|
value: 'week.1',
|
|
34769
|
-
label: this.translateService.
|
|
35303
|
+
label: await firstValueFrom(this.translateService.get('domain.record.updateFrequency.week', {
|
|
34770
35304
|
count: 1,
|
|
34771
|
-
}),
|
|
35305
|
+
})),
|
|
34772
35306
|
},
|
|
34773
35307
|
{
|
|
34774
35308
|
value: 'week.2',
|
|
34775
|
-
label: this.translateService.
|
|
35309
|
+
label: await firstValueFrom(this.translateService.get('domain.record.updateFrequency.week', {
|
|
34776
35310
|
count: 2,
|
|
34777
|
-
}),
|
|
35311
|
+
})),
|
|
34778
35312
|
},
|
|
34779
35313
|
{
|
|
34780
35314
|
value: 'month.1',
|
|
34781
|
-
label: this.translateService.
|
|
35315
|
+
label: await firstValueFrom(this.translateService.get('domain.record.updateFrequency.month', {
|
|
34782
35316
|
count: 1,
|
|
34783
|
-
}),
|
|
35317
|
+
})),
|
|
34784
35318
|
},
|
|
34785
35319
|
{
|
|
34786
35320
|
value: 'month.2',
|
|
34787
|
-
label: this.translateService.
|
|
35321
|
+
label: await firstValueFrom(this.translateService.get('domain.record.updateFrequency.month', {
|
|
34788
35322
|
count: 2,
|
|
34789
|
-
}),
|
|
35323
|
+
})),
|
|
34790
35324
|
},
|
|
34791
35325
|
{
|
|
34792
35326
|
value: 'year.1',
|
|
34793
|
-
label: this.translateService.
|
|
35327
|
+
label: await firstValueFrom(this.translateService.get('domain.record.updateFrequency.year', {
|
|
34794
35328
|
count: 1,
|
|
34795
|
-
}),
|
|
35329
|
+
})),
|
|
34796
35330
|
},
|
|
34797
35331
|
{
|
|
34798
35332
|
value: 'year.2',
|
|
34799
|
-
label: this.translateService.
|
|
35333
|
+
label: await firstValueFrom(this.translateService.get('domain.record.updateFrequency.year', {
|
|
34800
35334
|
count: 2,
|
|
34801
|
-
}),
|
|
35335
|
+
})),
|
|
34802
35336
|
},
|
|
34803
35337
|
];
|
|
34804
35338
|
}
|
|
34805
|
-
ngOnInit() {
|
|
34806
|
-
const updatedTimes = this.control.value?.updatedTimes;
|
|
34807
|
-
const per = this.control.value?.per;
|
|
34808
|
-
if (updatedTimes && updatedTimes !== 1 && updatedTimes !== 2) {
|
|
34809
|
-
this.choices = [
|
|
34810
|
-
{
|
|
34811
|
-
value: `${per}.${updatedTimes}`,
|
|
34812
|
-
label: this.translateService.instant(`domain.record.updateFrequency.${per}`, {
|
|
34813
|
-
count: updatedTimes,
|
|
34814
|
-
}),
|
|
34815
|
-
},
|
|
34816
|
-
...this.choices,
|
|
34817
|
-
];
|
|
34818
|
-
}
|
|
34819
|
-
}
|
|
34820
|
-
onPlannedToggled() {
|
|
34821
|
-
if (this.planned) {
|
|
34822
|
-
this.control.setValue('notPlanned');
|
|
34823
|
-
}
|
|
34824
|
-
else {
|
|
34825
|
-
this.control.setValue({ updatedTimes: 1, per: 'day' });
|
|
34826
|
-
}
|
|
34827
|
-
}
|
|
34828
|
-
get selectedFrequency() {
|
|
34829
|
-
const { updatedTimes, per } = this.control.value;
|
|
34830
|
-
return `${per}.${updatedTimes}`;
|
|
34831
|
-
}
|
|
34832
|
-
onSelectFrequencyValue(value) {
|
|
34833
|
-
const split = value.split('.');
|
|
34834
|
-
this.control.setValue({ updatedTimes: Number(split[1]), per: split[0] });
|
|
34835
|
-
}
|
|
34836
35339
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldUpdateFrequencyComponent, deps: [{ token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
34837
35340
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormFieldUpdateFrequencyComponent, isStandalone: true, selector: "gn-ui-form-field-update-frequency", inputs: { control: "control" }, ngImport: i0, template: "<gn-ui-check-toggle\n [label]=\"'editor.record.form.updateFrequency.planned' | translate\"\n [value]=\"planned\"\n (toggled)=\"onPlannedToggled()\"\n></gn-ui-check-toggle>\n<gn-ui-dropdown-selector\n title=\"updateFrequency\"\n [showTitle]=\"false\"\n [choices]=\"choices\"\n [selected]=\"selectedFrequency\"\n (selectValue)=\"onSelectFrequencyValue($event)\"\n [disabled]=\"!planned\"\n>\n</gn-ui-dropdown-selector>\n", styles: [""], dependencies: [{ kind: "component", type: CheckToggleComponent, selector: "gn-ui-check-toggle", inputs: ["title", "label", "value", "color"], outputs: ["toggled"] }, { kind: "component", type: DropdownSelectorComponent, selector: "gn-ui-dropdown-selector", inputs: ["title", "showTitle", "ariaName", "choices", "selected", "maxRows", "extraBtnClass", "minWidth", "disabled"], outputs: ["selectValue"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
34838
35341
|
}
|
|
@@ -34856,38 +35359,6 @@ class FormFieldComponent {
|
|
|
34856
35359
|
focusTitleInput() {
|
|
34857
35360
|
this.titleInput.nativeElement.children[0].focus();
|
|
34858
35361
|
}
|
|
34859
|
-
get simpleType() {
|
|
34860
|
-
return this.config.type;
|
|
34861
|
-
}
|
|
34862
|
-
get isSimpleField() {
|
|
34863
|
-
return (this.config.type === 'text' ||
|
|
34864
|
-
this.config.type === 'number' ||
|
|
34865
|
-
this.config.type === 'date' ||
|
|
34866
|
-
this.config.type === 'list' ||
|
|
34867
|
-
this.config.type === 'url' ||
|
|
34868
|
-
this.config.type === 'toggle');
|
|
34869
|
-
}
|
|
34870
|
-
get isFileField() {
|
|
34871
|
-
return this.config.type === 'file';
|
|
34872
|
-
}
|
|
34873
|
-
get isSpatialExtentField() {
|
|
34874
|
-
return this.config.type === 'spatial_extent';
|
|
34875
|
-
}
|
|
34876
|
-
get isArrayField() {
|
|
34877
|
-
return this.config.type === 'array';
|
|
34878
|
-
}
|
|
34879
|
-
get isObjectField() {
|
|
34880
|
-
return this.config.type === 'object';
|
|
34881
|
-
}
|
|
34882
|
-
get isFieldOk() {
|
|
34883
|
-
return !this.config.locked && !this.config.invalid;
|
|
34884
|
-
}
|
|
34885
|
-
get isFieldLocked() {
|
|
34886
|
-
return this.config.locked;
|
|
34887
|
-
}
|
|
34888
|
-
get isFieldInvalid() {
|
|
34889
|
-
return !this.config.locked && this.config.invalid;
|
|
34890
|
-
}
|
|
34891
35362
|
get isTitle() {
|
|
34892
35363
|
return this.model === 'title';
|
|
34893
35364
|
}
|
|
@@ -34906,11 +35377,23 @@ class FormFieldComponent {
|
|
|
34906
35377
|
get isTemporalExtents() {
|
|
34907
35378
|
return this.model === 'temporalExtents';
|
|
34908
35379
|
}
|
|
35380
|
+
get isSpatialExtentField() {
|
|
35381
|
+
return this.model === 'spatialExtents';
|
|
35382
|
+
}
|
|
35383
|
+
get isSimpleField() {
|
|
35384
|
+
return this.model === 'uniqueIdentifier' || this.model === 'recordUpdated';
|
|
35385
|
+
}
|
|
35386
|
+
get isReadOnly() {
|
|
35387
|
+
return this.model === 'uniqueIdentifier' || this.model === 'recordUpdated';
|
|
35388
|
+
}
|
|
35389
|
+
get isKeywords() {
|
|
35390
|
+
return this.model === 'keywords';
|
|
35391
|
+
}
|
|
34909
35392
|
get withoutWrapper() {
|
|
34910
35393
|
return this.model === 'title' || this.model === 'abstract';
|
|
34911
35394
|
}
|
|
34912
35395
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
34913
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormFieldComponent, isStandalone: true, selector: "gn-ui-form-field", inputs: { model: "model", config: "config", value: "value" }, outputs: { valueChange: "valueChange" }, viewQueries: [{ propertyName: "titleInput", first: true, predicate: ["titleInput"], descendants: true }], ngImport: i0, template: "<div class=\"flex flex-col h-full\">\n <ng-container *ngIf=\"withoutWrapper; else withGenericWrapper\">\n <ng-container *ngTemplateOutlet=\"fieldContent\"></ng-container>\n </ng-container>\n <ng-template #withGenericWrapper>\n <gn-ui-form-field-wrapper\n [label]=\"config.labelKey | translate\"\n [hint]=\"config.hintKey | translate\"\n >\n <ng-container *ngTemplateOutlet=\"fieldContent\"></ng-container>\n </gn-ui-form-field-wrapper>\n </ng-template>\n</div>\n\n<ng-template #fieldContent>\n <ng-container *ngIf=\"isTitle\">\n <div class=\"flex justify-between items-center gap-3\">\n <h2\n #titleInput\n class=\"grow text-3xl font-normal\"\n [gnUiEditableLabel]=\"true\"\n (editableLabelChanged)=\"formControl.setValue($event)\"\n >\n {{ formControl.value }}\n </h2>\n <span\n class=\"material-symbols-outlined gn-ui-icon-small m-2 cursor-pointer\"\n (click)=\"focusTitleInput()\"\n >edit</span\n >\n <span\n class=\"material-symbols-outlined gn-ui-icon-small m-2\"\n [matTooltip]=\"config.hintKey | translate\"\n matTooltipPosition=\"above\"\n >\n help\n </span>\n </div>\n </ng-container>\n <ng-container *ngIf=\"isAbstract\">\n <gn-ui-form-field-rich\n class=\"h-[8rem]\"\n [control]=\"formControl\"\n [label]=\"config.labelKey | translate\"\n [hint]=\"config.hintKey | translate\"\n ></gn-ui-form-field-rich>\n </ng-container>\n <ng-container *ngIf=\"isLicenses\">\n <gn-ui-form-field-license\n [control]=\"formControl\"\n [label]=\"config.labelKey | translate\"\n ></gn-ui-form-field-license>\n </ng-container>\n <ng-container *ngIf=\"isResourceUpdated\">\n <gn-ui-form-field-resource-updated\n [control]=\"formControl\"\n ></gn-ui-form-field-resource-updated>\n </ng-container>\n <ng-container *ngIf=\"isUpdateFrequency\">\n <gn-ui-form-field-update-frequency\n [control]=\"formControl\"\n ></gn-ui-form-field-update-frequency>\n </ng-container>\n <ng-container *ngIf=\"isTemporalExtents\">\n <gn-ui-form-field-temporal-extents\n [control]=\"formControl\"\n ></gn-ui-form-field-temporal-extents>\n </ng-container>\n <ng-container *ngIf=\"isSimpleField\">\n <gn-ui-form-field-simple\n
|
|
35396
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormFieldComponent, isStandalone: true, selector: "gn-ui-form-field", inputs: { model: "model", config: "config", value: "value" }, outputs: { valueChange: "valueChange" }, viewQueries: [{ propertyName: "titleInput", first: true, predicate: ["titleInput"], descendants: true }], ngImport: i0, template: "<div class=\"flex flex-col h-full\">\n <ng-container *ngIf=\"withoutWrapper; else withGenericWrapper\">\n <ng-container *ngTemplateOutlet=\"fieldContent\"></ng-container>\n </ng-container>\n <ng-template #withGenericWrapper>\n <gn-ui-form-field-wrapper\n [label]=\"config.labelKey | translate\"\n [hint]=\"config.hintKey | translate\"\n >\n <ng-container *ngTemplateOutlet=\"fieldContent\"></ng-container>\n </gn-ui-form-field-wrapper>\n </ng-template>\n</div>\n\n<ng-template #fieldContent>\n <ng-container *ngIf=\"isTitle\">\n <div class=\"flex justify-between items-center gap-3\">\n <h2\n #titleInput\n class=\"grow text-3xl font-normal\"\n [gnUiEditableLabel]=\"true\"\n (editableLabelChanged)=\"formControl.setValue($event)\"\n >\n {{ formControl.value }}\n </h2>\n <span\n class=\"material-symbols-outlined gn-ui-icon-small m-2 cursor-pointer\"\n (click)=\"focusTitleInput()\"\n >edit</span\n >\n <span\n class=\"material-symbols-outlined gn-ui-icon-small m-2\"\n [matTooltip]=\"config.hintKey | translate\"\n matTooltipPosition=\"above\"\n >\n help\n </span>\n </div>\n </ng-container>\n <ng-container *ngIf=\"isAbstract\">\n <gn-ui-form-field-rich\n class=\"h-[8rem]\"\n [control]=\"formControl\"\n [label]=\"config.labelKey | translate\"\n [hint]=\"config.hintKey | translate\"\n ></gn-ui-form-field-rich>\n </ng-container>\n <ng-container *ngIf=\"isLicenses\">\n <gn-ui-form-field-license\n [control]=\"formControl\"\n [label]=\"config.labelKey | translate\"\n ></gn-ui-form-field-license>\n </ng-container>\n <ng-container *ngIf=\"isResourceUpdated\">\n <gn-ui-form-field-resource-updated\n [control]=\"formControl\"\n ></gn-ui-form-field-resource-updated>\n </ng-container>\n <ng-container *ngIf=\"isUpdateFrequency\">\n <gn-ui-form-field-update-frequency\n [control]=\"formControl\"\n ></gn-ui-form-field-update-frequency>\n </ng-container>\n <ng-container *ngIf=\"isTemporalExtents\">\n <gn-ui-form-field-temporal-extents\n [control]=\"formControl\"\n ></gn-ui-form-field-temporal-extents>\n </ng-container>\n <ng-container *ngIf=\"isSimpleField\">\n <gn-ui-form-field-simple\n type=\"text\"\n [control]=\"formControl\"\n [readonly]=\"isReadOnly\"\n ></gn-ui-form-field-simple>\n </ng-container>\n <ng-container *ngIf=\"isSpatialExtentField\">\n <gn-ui-form-field-spatial-extent></gn-ui-form-field-spatial-extent>\n </ng-container>\n <ng-container *ngIf=\"isKeywords\">\n <gn-ui-form-field-keywords\n [control]=\"formControl\"\n ></gn-ui-form-field-keywords>\n </ng-container>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: EditableLabelDirective, selector: "[gnUiEditableLabel]", inputs: ["gnUiEditableLabel"], outputs: ["editableLabelChanged"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i2$3.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: FormFieldWrapperComponent, selector: "gn-ui-form-field-wrapper", inputs: ["label", "hint"] }, { kind: "component", type: FormFieldLicenseComponent, selector: "gn-ui-form-field-license", inputs: ["control", "label"] }, { kind: "component", type: FormFieldResourceUpdatedComponent, selector: "gn-ui-form-field-resource-updated", inputs: ["control"] }, { kind: "component", type: FormFieldUpdateFrequencyComponent, selector: "gn-ui-form-field-update-frequency", inputs: ["control"] }, { kind: "component", type: FormFieldTemporalExtentsComponent, selector: "gn-ui-form-field-temporal-extents", inputs: ["control"] }, { kind: "component", type: FormFieldSimpleComponent, selector: "gn-ui-form-field-simple", inputs: ["type", "control", "readonly", "invalid", "placeholder", "options"] }, { kind: "component", type: FormFieldRichComponent, selector: "gn-ui-form-field-rich", inputs: ["control", "label", "hint", "helperText", "placeholder"] }, { kind: "component", type: FormFieldSpatialExtentComponent, selector: "gn-ui-form-field-spatial-extent" }, { kind: "component", type: FormFieldKeywordsComponent, selector: "gn-ui-form-field-keywords", inputs: ["control"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
34914
35397
|
}
|
|
34915
35398
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldComponent, decorators: [{
|
|
34916
35399
|
type: Component,
|
|
@@ -34931,8 +35414,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
34931
35414
|
FormFieldSpatialExtentComponent,
|
|
34932
35415
|
FormFieldFileComponent,
|
|
34933
35416
|
FormFieldArrayComponent,
|
|
35417
|
+
FormFieldKeywordsComponent,
|
|
34934
35418
|
TranslateModule,
|
|
34935
|
-
], template: "<div class=\"flex flex-col h-full\">\n <ng-container *ngIf=\"withoutWrapper; else withGenericWrapper\">\n <ng-container *ngTemplateOutlet=\"fieldContent\"></ng-container>\n </ng-container>\n <ng-template #withGenericWrapper>\n <gn-ui-form-field-wrapper\n [label]=\"config.labelKey | translate\"\n [hint]=\"config.hintKey | translate\"\n >\n <ng-container *ngTemplateOutlet=\"fieldContent\"></ng-container>\n </gn-ui-form-field-wrapper>\n </ng-template>\n</div>\n\n<ng-template #fieldContent>\n <ng-container *ngIf=\"isTitle\">\n <div class=\"flex justify-between items-center gap-3\">\n <h2\n #titleInput\n class=\"grow text-3xl font-normal\"\n [gnUiEditableLabel]=\"true\"\n (editableLabelChanged)=\"formControl.setValue($event)\"\n >\n {{ formControl.value }}\n </h2>\n <span\n class=\"material-symbols-outlined gn-ui-icon-small m-2 cursor-pointer\"\n (click)=\"focusTitleInput()\"\n >edit</span\n >\n <span\n class=\"material-symbols-outlined gn-ui-icon-small m-2\"\n [matTooltip]=\"config.hintKey | translate\"\n matTooltipPosition=\"above\"\n >\n help\n </span>\n </div>\n </ng-container>\n <ng-container *ngIf=\"isAbstract\">\n <gn-ui-form-field-rich\n class=\"h-[8rem]\"\n [control]=\"formControl\"\n [label]=\"config.labelKey | translate\"\n [hint]=\"config.hintKey | translate\"\n ></gn-ui-form-field-rich>\n </ng-container>\n <ng-container *ngIf=\"isLicenses\">\n <gn-ui-form-field-license\n [control]=\"formControl\"\n [label]=\"config.labelKey | translate\"\n ></gn-ui-form-field-license>\n </ng-container>\n <ng-container *ngIf=\"isResourceUpdated\">\n <gn-ui-form-field-resource-updated\n [control]=\"formControl\"\n ></gn-ui-form-field-resource-updated>\n </ng-container>\n <ng-container *ngIf=\"isUpdateFrequency\">\n <gn-ui-form-field-update-frequency\n [control]=\"formControl\"\n ></gn-ui-form-field-update-frequency>\n </ng-container>\n <ng-container *ngIf=\"isTemporalExtents\">\n <gn-ui-form-field-temporal-extents\n [control]=\"formControl\"\n ></gn-ui-form-field-temporal-extents>\n </ng-container>\n <ng-container *ngIf=\"isSimpleField\">\n <gn-ui-form-field-simple\n
|
|
35419
|
+
], template: "<div class=\"flex flex-col h-full\">\n <ng-container *ngIf=\"withoutWrapper; else withGenericWrapper\">\n <ng-container *ngTemplateOutlet=\"fieldContent\"></ng-container>\n </ng-container>\n <ng-template #withGenericWrapper>\n <gn-ui-form-field-wrapper\n [label]=\"config.labelKey | translate\"\n [hint]=\"config.hintKey | translate\"\n >\n <ng-container *ngTemplateOutlet=\"fieldContent\"></ng-container>\n </gn-ui-form-field-wrapper>\n </ng-template>\n</div>\n\n<ng-template #fieldContent>\n <ng-container *ngIf=\"isTitle\">\n <div class=\"flex justify-between items-center gap-3\">\n <h2\n #titleInput\n class=\"grow text-3xl font-normal\"\n [gnUiEditableLabel]=\"true\"\n (editableLabelChanged)=\"formControl.setValue($event)\"\n >\n {{ formControl.value }}\n </h2>\n <span\n class=\"material-symbols-outlined gn-ui-icon-small m-2 cursor-pointer\"\n (click)=\"focusTitleInput()\"\n >edit</span\n >\n <span\n class=\"material-symbols-outlined gn-ui-icon-small m-2\"\n [matTooltip]=\"config.hintKey | translate\"\n matTooltipPosition=\"above\"\n >\n help\n </span>\n </div>\n </ng-container>\n <ng-container *ngIf=\"isAbstract\">\n <gn-ui-form-field-rich\n class=\"h-[8rem]\"\n [control]=\"formControl\"\n [label]=\"config.labelKey | translate\"\n [hint]=\"config.hintKey | translate\"\n ></gn-ui-form-field-rich>\n </ng-container>\n <ng-container *ngIf=\"isLicenses\">\n <gn-ui-form-field-license\n [control]=\"formControl\"\n [label]=\"config.labelKey | translate\"\n ></gn-ui-form-field-license>\n </ng-container>\n <ng-container *ngIf=\"isResourceUpdated\">\n <gn-ui-form-field-resource-updated\n [control]=\"formControl\"\n ></gn-ui-form-field-resource-updated>\n </ng-container>\n <ng-container *ngIf=\"isUpdateFrequency\">\n <gn-ui-form-field-update-frequency\n [control]=\"formControl\"\n ></gn-ui-form-field-update-frequency>\n </ng-container>\n <ng-container *ngIf=\"isTemporalExtents\">\n <gn-ui-form-field-temporal-extents\n [control]=\"formControl\"\n ></gn-ui-form-field-temporal-extents>\n </ng-container>\n <ng-container *ngIf=\"isSimpleField\">\n <gn-ui-form-field-simple\n type=\"text\"\n [control]=\"formControl\"\n [readonly]=\"isReadOnly\"\n ></gn-ui-form-field-simple>\n </ng-container>\n <ng-container *ngIf=\"isSpatialExtentField\">\n <gn-ui-form-field-spatial-extent></gn-ui-form-field-spatial-extent>\n </ng-container>\n <ng-container *ngIf=\"isKeywords\">\n <gn-ui-form-field-keywords\n [control]=\"formControl\"\n ></gn-ui-form-field-keywords>\n </ng-container>\n</ng-template>\n" }]
|
|
34936
35420
|
}], ctorParameters: function () { return []; }, propDecorators: { model: [{
|
|
34937
35421
|
type: Input
|
|
34938
35422
|
}], config: [{
|
|
@@ -34971,6 +35455,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
34971
35455
|
const ROUTER_STATE_KEY = 'router';
|
|
34972
35456
|
const ROUTER_ROUTE_SEARCH = 'search';
|
|
34973
35457
|
const ROUTER_ROUTE_DATASET = 'dataset';
|
|
35458
|
+
const ROUTER_ROUTE_ORGANIZATION = 'organization';
|
|
34974
35459
|
var ROUTE_PARAMS;
|
|
34975
35460
|
(function (ROUTE_PARAMS) {
|
|
34976
35461
|
ROUTE_PARAMS["SORT"] = "_sort";
|
|
@@ -35002,11 +35487,18 @@ class RouterService {
|
|
|
35002
35487
|
path: `${ROUTER_ROUTE_DATASET}/:metadataUuid`,
|
|
35003
35488
|
component: this.routerConfig.recordRouteComponent,
|
|
35004
35489
|
},
|
|
35490
|
+
{
|
|
35491
|
+
path: `${ROUTER_ROUTE_ORGANIZATION}/:name`,
|
|
35492
|
+
component: this.routerConfig.organizationRouteComponent,
|
|
35493
|
+
},
|
|
35005
35494
|
];
|
|
35006
35495
|
}
|
|
35007
35496
|
getSearchRoute() {
|
|
35008
35497
|
return ROUTER_ROUTE_SEARCH;
|
|
35009
35498
|
}
|
|
35499
|
+
getOrganizationPageRoute() {
|
|
35500
|
+
return ROUTER_ROUTE_ORGANIZATION;
|
|
35501
|
+
}
|
|
35010
35502
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RouterService, deps: [{ token: ROUTER_CONFIG }, { token: i1$7.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
35011
35503
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RouterService, providedIn: 'root' }); }
|
|
35012
35504
|
}
|
|
@@ -35053,6 +35545,13 @@ class RouterFacade {
|
|
|
35053
35545
|
this.store.dispatch(setIncompleteMetadata({ incomplete: metadata }));
|
|
35054
35546
|
});
|
|
35055
35547
|
}
|
|
35548
|
+
goToOrganization(organizationName) {
|
|
35549
|
+
const path = `${this.routerService.getOrganizationPageRoute()}/${organizationName}`;
|
|
35550
|
+
this.go({
|
|
35551
|
+
path,
|
|
35552
|
+
queryParamsHandling: '',
|
|
35553
|
+
});
|
|
35554
|
+
}
|
|
35056
35555
|
updateSearch(query) {
|
|
35057
35556
|
this.go({
|
|
35058
35557
|
path: this.routerService.getSearchRoute(),
|
|
@@ -35290,7 +35789,7 @@ class DefaultRouterModule {
|
|
|
35290
35789
|
};
|
|
35291
35790
|
}
|
|
35292
35791
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DefaultRouterModule, deps: [{ token: RouterService }], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
35293
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: DefaultRouterModule, declarations: [SearchRouterContainerDirective], imports: [i1$2.StoreFeatureModule, i3$
|
|
35792
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: DefaultRouterModule, declarations: [SearchRouterContainerDirective], imports: [i1$2.StoreFeatureModule, i3$3.StoreRouterConnectingModule, i1$8.EffectsFeatureModule], exports: [SearchRouterContainerDirective] }); }
|
|
35294
35793
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DefaultRouterModule, providers: [
|
|
35295
35794
|
RouterFacade,
|
|
35296
35795
|
{
|
|
@@ -35333,5 +35832,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
35333
35832
|
* Generated bundle index. Do not edit.
|
|
35334
35833
|
*/
|
|
35335
35834
|
|
|
35336
|
-
export { ADD_RESULTS, ADD_SEARCH, AbstractAction, AbstractSearchField, AddLayerFromCatalogComponent, AddLayerRecordPreviewComponent, AddResults, AddSearch, AnchorLinkDirective, ApiCardComponent, AuthService, AutocompleteComponent, AvatarComponent, AvatarServiceInterface, BLOCK_MODEL_FIXTURE, BadgeComponent, BaseReader, BlockListComponent, ButtonComponent, CLEAR_ERROR, CLEAR_RESULTS, CONFIG_MALFORMED, CONFIG_MINIMAL, CONFIG_MISSING_MANDATORY, CONFIG_OK, CONFIG_UNRECOGNIZED_KEYS, CONFIG_WITH_TRANSLATIONS, CONFIG_WRONG_LANGUAGE_CODE, CarouselComponent, CatalogTitleComponent, ChartComponent, ChartViewComponent, CheckToggleComponent, CheckboxComponent, ChipsInputComponent, ClearError, ClearResults, ColorScaleComponent, ContentGhostComponent, CopyTextButtonComponent, DEFAULT_BASELAYER_CONTEXT, DEFAULT_GN4_LOGIN_URL, DEFAULT_LANG, DEFAULT_PAGE_SIZE, DEFAULT_RESULTS_LAYOUT_CONFIG, DEFAULT_SEARCH_KEY, DEFAULT_STYLE_FIXTURE, DEFAULT_STYLE_HL_FIXTURE, DEFAULT_VIEW, DataService, DataViewComponent, DataViewPermalinkComponent, DataViewShareComponent, DataViewWebComponentComponent, DatePickerComponent, DateRangePickerComponent, DefaultRouterModule, DownloadItemComponent, DownloadsListComponent, DragAndDropFileInputComponent, DropdownMultiselectComponent, DropdownSelectorComponent, EDITOR_FEATURE_KEY, EMPTY_BLOCK_MODEL_FIXTURE, ES_QUERY_FIELDS_PRIORITY, ES_RESOURCES_VALUES, ES_SOURCE_SUMMARY, EditableLabelDirective, EditorFacade, EditorService, ElasticsearchService, EmbeddedTranslateLoader, ErrorComponent, ErrorType, ExpandablePanelButtonComponent, ExpandablePanelComponent, ExternalViewerButtonComponent, FACET_ITEM_FIXTURE, FEATURE_MAP_OPTIONS, FIELDS_BRIEF, FIELDS_SUMMARY, FILTER_GEOMETRY, FORMATS, FacetBlockComponent, FacetBlockStubComponent, FacetItemComponent, FacetItemStubComponent, FacetListComponent, FacetsContainerComponent, FacetsModule, FavoriteStarComponent, FavoritesService, FeatureAuthModule, FeatureCatalogModule, FeatureDatavizModule, FeatureDetailComponent, FeatureEditorModule, FeatureInfoService, FeatureMapModule, FeatureNotificationsModule, FeatureRecordModule, FeatureSearchModule, FetchError, FieldsService, FigureComponent, FigureContainerComponent, FileTranslateLoader, FilterDropdownComponent, FormFieldWrapperComponent, FullTextSearchField, FuzzySearchComponent, GN_UI_VERSION, GeoTableViewComponent, GeocodingComponent, Gn4Converter, Gn4PlatformMapper, Gn4PlatformService, Gn4Repository, Gn4SettingsService, GravatarService, HttpLoaderFactory, I18nInterceptor, ImageFallbackDirective, ImageOverlayPreviewComponent, InteractiveTableColumnComponent, InteractiveTableComponent, IsSpatialSearchField, Iso191153Converter, Iso19139Converter, LANGUAGES_LIST, LANGUAGE_NAMES, LANGUAGE_STORAGE_KEY, LANG_2_TO_3_MAPPER, LANG_3_TO_2_MAPPER, LOGIN_URL, LONLAT_CRS_CODES, LangService, LanguageSwitcherComponent, LayersPanelComponent, LicenseSearchField, LinkCardComponent, LinkClassifierService, LinkUsage, LoadingMaskComponent, LogService, MAP_CONFIG_FIXTURE, MAP_FEATURE_KEY, METADATA_LANGUAGE, MY_FORMATS, MapComponent, MapContainerComponent, MapContextComponent, MapContextLayerTypeEnum, MapContextService, MapFacade, MapInstanceDirective, MapManagerService, MapStyleService, MapUtilsService, MapViewComponent, MarkdownEditorComponent, MarkdownParserComponent, MaxLinesComponent, mdview_actions as MdViewActions, MdViewFacade, MetadataCatalogComponent, MetadataContactComponent, MetadataInfoComponent, MetadataLinkType, MetadataQualityComponent, MetadataQualityItemComponent, MultilingualSearchField, MyOrgService, NavigationButtonComponent, NotificationComponent, NotificationsContainerComponent, NotificationsService, ORGANIZATIONS_STRATEGY, ORGANIZATION_URL_TOKEN, OrganisationPreviewComponent, OrganisationsComponent, OrganisationsFilterComponent, OrganisationsResultComponent, OrganizationSearchField, OrganizationsFromGroupsService, OrganizationsFromMetadataService, OwnerSearchField, PAGINATE, PARSE_DELIMITER, PATCH_RESULTS_AGGREGATIONS, PROXY_PATH, Paginate, PaginationButtonsComponent, PaginationComponent, PatchResultsAggregations, PopupAlertComponent, PreviousNextButtonsComponent, ProgressBarComponent, ProxyService, QUERY_FIELDS, RECORD_URL_TOKEN, REQUEST_MORE_ON_AGGREGATION, REQUEST_MORE_RESULTS, REQUEST_NEW_RESULTS, RESULTS_LAYOUT_CONFIG, ROUTER_CONFIG, ROUTER_ROUTE_DATASET, ROUTER_ROUTE_SEARCH, ROUTER_STATE_KEY, ROUTE_PARAMS, RecordApiFormComponent, RecordFormComponent, RecordMetricComponent, RecordPreviewCardComponent, RecordPreviewComponent, RecordPreviewFeedComponent, RecordPreviewListComponent, RecordPreviewRowComponent, RecordPreviewTextComponent, RecordPreviewTitleComponent, RecordsMetricsComponent, RecordsService, RelatedRecordCardComponent, RequestMoreOnAggregation, RequestMoreResults, RequestNewResults, ResultsHitsContainerComponent, ResultsHitsNumberComponent, ResultsLayoutComponent, ResultsLayoutConfigItem, ResultsListComponent, ResultsListContainerComponent, ResultsListItemComponent, ResultsTableComponent, RouterEffects, RouterFacade, RouterService, SEARCH_FEATURE_KEY, SET_CONFIG_AGGREGATIONS, SET_CONFIG_FILTERS, SET_CONFIG_REQUEST_FIELDS, SET_ERROR, SET_FAVORITES_ONLY, SET_FILTERS, SET_INCLUDE_ON_AGGREGATION, SET_PAGE_SIZE, SET_RESULTS_AGGREGATIONS, SET_RESULTS_HITS, SET_RESULTS_LAYOUT, SET_SEARCH, SET_SORT_BY, SET_SPATIAL_FILTER_ENABLED, SearchEffects, SearchFacade, SearchInputComponent, SearchRouterContainerDirective, SearchService, SearchStateContainerDirective, SelectionService, SetConfigAggregations, SetConfigFilters, SetConfigRequestFields, SetError, SetFavoritesOnly, SetFilters, SetIncludeOnAggregation, SetPageSize, SetResultsAggregations, SetResultsHits, SetResultsLayout, SetSearch, SetSortBy, SetSpatialFilterEnabled, SimpleSearchField, SiteTitleComponent, SortByComponent, SortableListComponent, SourceLabelComponent, SourcesService, SpinningLoaderComponent, StarToggleComponent, StepBarComponent, StickyHeaderComponent, SupportedTypes, TABLE_ITEM_FIXTURE, TABLE_ITEM_FIXTURE_HAB, THUMBNAIL_PLACEHOLDER, TRANSLATE_DEFAULT_CONFIG, TRANSLATE_WITH_OVERRIDES_CONFIG, TableComponent, TableViewComponent, TextAreaComponent, TextInputComponent, ThemeService, ThumbnailComponent, TranslatedSearchField, UPDATE_CONFIG_AGGREGATIONS, UPDATE_FILTERS, UPDATE_REQUEST_AGGREGATION_TERM, UiCatalogModule, UiDatavizModule, UiElementsModule, FacetsModule$1 as UiFacetsModule, UiInputsModule, UiLayoutModule, UiMapModule, UiSearchModule, UiWidgetsModule, UpdateConfigAggregations, UpdateFilters, UserPreviewComponent, UtilI18nModule, UtilSharedModule, ViewportIntersectorComponent, WEB_COMPONENT_EMBEDDER_URL, WFS_MAX_FEATURES, WizardComponent, WizardFieldComponent, WizardFieldType, WizardService, WizardSummarizeComponent, _reset, addLayer, changeLayerOrder, checkFileFormat, clearLayerError, createFuzzyFilter, currentPage, defaultMapOptions, downgradeImage, downsizeImage, dragPanCondition, dropEmptyTranslations, editorReducer, findConverterForDocument, getArrayItem, getAsArray, getAsUrl, getBadgeColor, getCustomTranslations, getError, getFavoritesOnly, getFileFormat, getFileFormatFromServiceOutput, getFirstValue, getFormatPriority, getGeometryFromGeoJSON, getGlobalConfig, getJsonDataItemsProxy, getLangFromBrowser, getLinkLabel, getLinkPriority, getMapLayers, getMapState, getMetadataQualityConfig, getMimeTypeForFormat, getOptionalMapConfig, getOptionalSearchConfig, getPageSize, getSearchConfigAggregations, getSearchFilters, getSearchResults, getSearchResultsAggregations, getSearchResultsHits, getSearchResultsLayout, getSearchResultsLoading, getSearchSortBy, getSearchState, getSearchStateSearch, getSpatialFilterEnabled, getTemporalRangeUnion, getThemeConfig, initSearch, initialEditorState, initialMapState, initialState, isConfigLoaded, isEndOfResults, isFormatInQueryParam, loadAppConfig, mapContact, mapKeywords, mapLogo, mapOrganization, mapReducer, markRecordAsChanged, megabytesToBytes, mimeTypeToFormat, mouseWheelZoomCondition, openDataset, openRecord, parse, placeholder, propagateToDocumentOnly, provideGn4, provideRepositoryUrl, readDataset, readDatasetHeaders, reducer$2 as reducer, reducerSearch, removeLayer, removeSearchParams, removeWhitespace, saveRecord, saveRecordFailure, saveRecordSuccess, selectEditorState, selectFallback, selectFallbackFields, selectField, selectRecord, selectRecordAlreadySavedOnce, selectRecordChangedSinceSave, selectRecordFields, selectRecordFieldsConfig, selectRecordSaveError, selectRecordSaving, selectRecordSource, selectTranslatedField, selectTranslatedValue, setLayerError, sortByFromString, sortByToString, sortByToStrings, stripHtml, toDate, totalPages, updateLayer, updateRecordField };
|
|
35835
|
+
export { ADD_RESULTS, ADD_SEARCH, AbstractAction, AbstractSearchField, AddLayerFromCatalogComponent, AddLayerRecordPreviewComponent, AddResults, AddSearch, AnchorLinkDirective, ApiCardComponent, AuthService, AutocompleteComponent, AvatarComponent, AvatarServiceInterface, BLOCK_MODEL_FIXTURE, BadgeComponent, BaseReader, BlockListComponent, ButtonComponent, CLEAR_ERROR, CLEAR_RESULTS, CONFIG_MALFORMED, CONFIG_MINIMAL, CONFIG_MISSING_MANDATORY, CONFIG_OK, CONFIG_UNRECOGNIZED_KEYS, CONFIG_WITH_TRANSLATIONS, CONFIG_WRONG_LANGUAGE_CODE, CarouselComponent, CatalogTitleComponent, ChartComponent, ChartViewComponent, CheckToggleComponent, CheckboxComponent, ChipsInputComponent, ClearError, ClearResults, ColorScaleComponent, ContentGhostComponent, CopyTextButtonComponent, DEFAULT_BASELAYER_CONTEXT, DEFAULT_GN4_LOGIN_URL, DEFAULT_LANG, DEFAULT_PAGE_SIZE, DEFAULT_RESULTS_LAYOUT_CONFIG, DEFAULT_SEARCH_KEY, DEFAULT_STYLE_FIXTURE, DEFAULT_STYLE_HL_FIXTURE, DEFAULT_VIEW, DataService, DataViewComponent, DataViewPermalinkComponent, DataViewShareComponent, DataViewWebComponentComponent, DatePickerComponent, DateRangePickerComponent, DefaultRouterModule, DownloadItemComponent, DownloadsListComponent, DragAndDropFileInputComponent, DropdownMultiselectComponent, DropdownSelectorComponent, EDITOR_FEATURE_KEY, EMPTY_BLOCK_MODEL_FIXTURE, ES_QUERY_FIELDS_PRIORITY, ES_RESOURCES_VALUES, ES_SOURCE_SUMMARY, EditableLabelDirective, EditorFacade, EditorService, ElasticsearchService, EmbeddedTranslateLoader, ErrorComponent, ErrorType, ExpandablePanelButtonComponent, ExpandablePanelComponent, ExternalViewerButtonComponent, FACET_ITEM_FIXTURE, FEATURE_MAP_OPTIONS, FIELDS_BRIEF, FIELDS_SUMMARY, FILTER_GEOMETRY, FORMATS, FacetBlockComponent, FacetBlockStubComponent, FacetItemComponent, FacetItemStubComponent, FacetListComponent, FacetsContainerComponent, FacetsModule, FavoriteStarComponent, FavoritesService, FeatureAuthModule, FeatureCatalogModule, FeatureDatavizModule, FeatureDetailComponent, FeatureEditorModule, FeatureInfoService, FeatureMapModule, FeatureNotificationsModule, FeatureRecordModule, FeatureSearchModule, FetchError, FieldsService, FigureComponent, FigureContainerComponent, FileTranslateLoader, FilterDropdownComponent, FormFieldWrapperComponent, FullTextSearchField, FuzzySearchComponent, GN_UI_VERSION, GeoTableViewComponent, GeocodingComponent, Gn4Converter, Gn4PlatformMapper, Gn4PlatformService, Gn4Repository, Gn4SettingsService, GravatarService, HttpLoaderFactory, I18nInterceptor, ImageFallbackDirective, ImageOverlayPreviewComponent, InteractiveTableColumnComponent, InteractiveTableComponent, IsSpatialSearchField, Iso191153Converter, Iso19139Converter, LANGUAGES_LIST, LANGUAGE_NAMES, LANGUAGE_STORAGE_KEY, LANG_2_TO_3_MAPPER, LANG_3_TO_2_MAPPER, LOGIN_URL, LONLAT_CRS_CODES, LangService, LanguageSwitcherComponent, LayersPanelComponent, LicenseSearchField, LinkCardComponent, LinkClassifierService, LinkUsage, LoadingMaskComponent, LogService, MAP_CONFIG_FIXTURE, MAP_FEATURE_KEY, METADATA_LANGUAGE, MY_FORMATS, MapComponent, MapContainerComponent, MapContextComponent, MapContextLayerTypeEnum, MapContextService, MapFacade, MapInstanceDirective, MapManagerService, MapStyleService, MapUtilsService, MapViewComponent, MarkdownEditorComponent, MarkdownParserComponent, MaxLinesComponent, mdview_actions as MdViewActions, MdViewFacade, MetadataCatalogComponent, MetadataContactComponent, MetadataInfoComponent, MetadataLinkType, MetadataQualityComponent, MetadataQualityItemComponent, MultilingualSearchField, MyOrgService, NavigationButtonComponent, NotificationComponent, NotificationsContainerComponent, NotificationsService, ORGANIZATIONS_STRATEGY, ORGANIZATION_PAGE_URL_TOKEN, ORGANIZATION_URL_TOKEN, OrganisationPreviewComponent, OrganisationsComponent, OrganisationsFilterComponent, OrganisationsResultComponent, OrganizationSearchField, OrganizationsFromGroupsService, OrganizationsFromMetadataService, OwnerSearchField, PAGINATE, PARSE_DELIMITER, PATCH_RESULTS_AGGREGATIONS, PROXY_PATH, Paginate, PaginationButtonsComponent, PaginationComponent, PatchResultsAggregations, PopupAlertComponent, PreviousNextButtonsComponent, ProgressBarComponent, ProxyService, QUERY_FIELDS, RECORD_URL_TOKEN, REQUEST_MORE_ON_AGGREGATION, REQUEST_MORE_RESULTS, REQUEST_NEW_RESULTS, RESULTS_LAYOUT_CONFIG, ROUTER_CONFIG, ROUTER_ROUTE_DATASET, ROUTER_ROUTE_ORGANIZATION, ROUTER_ROUTE_SEARCH, ROUTER_STATE_KEY, ROUTE_PARAMS, RecordApiFormComponent, RecordFormComponent, RecordMetricComponent, RecordPreviewCardComponent, RecordPreviewComponent, RecordPreviewFeedComponent, RecordPreviewListComponent, RecordPreviewRowComponent, RecordPreviewTextComponent, RecordPreviewTitleComponent, RecordsMetricsComponent, RecordsService, RelatedRecordCardComponent, RequestMoreOnAggregation, RequestMoreResults, RequestNewResults, ResultsHitsContainerComponent, ResultsHitsNumberComponent, ResultsLayoutComponent, ResultsLayoutConfigItem, ResultsListComponent, ResultsListContainerComponent, ResultsListItemComponent, ResultsTableComponent, ResultsTableContainerComponent, RouterEffects, RouterFacade, RouterService, SEARCH_FEATURE_KEY, SET_CONFIG_AGGREGATIONS, SET_CONFIG_FILTERS, SET_CONFIG_REQUEST_FIELDS, SET_ERROR, SET_FAVORITES_ONLY, SET_FILTERS, SET_INCLUDE_ON_AGGREGATION, SET_PAGE_SIZE, SET_RESULTS_AGGREGATIONS, SET_RESULTS_HITS, SET_RESULTS_LAYOUT, SET_SEARCH, SET_SORT_BY, SET_SPATIAL_FILTER_ENABLED, SearchEffects, SearchFacade, SearchInputComponent, SearchRouterContainerDirective, SearchService, SearchStateContainerDirective, SelectionService, SetConfigAggregations, SetConfigFilters, SetConfigRequestFields, SetError, SetFavoritesOnly, SetFilters, SetIncludeOnAggregation, SetPageSize, SetResultsAggregations, SetResultsHits, SetResultsLayout, SetSearch, SetSortBy, SetSpatialFilterEnabled, SimpleSearchField, SiteTitleComponent, SortByComponent, SortableListComponent, SourceLabelComponent, SourcesService, SpinningLoaderComponent, StarToggleComponent, StepBarComponent, StickyHeaderComponent, SupportedTypes, TABLE_ITEM_FIXTURE, TABLE_ITEM_FIXTURE_HAB, THUMBNAIL_PLACEHOLDER, TRANSLATE_DEFAULT_CONFIG, TRANSLATE_WITH_OVERRIDES_CONFIG, TableComponent, TableViewComponent, TextAreaComponent, TextInputComponent, ThemeService, ThumbnailComponent, TranslatedSearchField, UPDATE_CONFIG_AGGREGATIONS, UPDATE_FILTERS, UPDATE_REQUEST_AGGREGATION_TERM, UiCatalogModule, UiDatavizModule, UiElementsModule, FacetsModule$1 as UiFacetsModule, UiInputsModule, UiLayoutModule, UiMapModule, UiSearchModule, UiWidgetsModule, UpdateConfigAggregations, UpdateFilters, UserPreviewComponent, UtilI18nModule, UtilSharedModule, ViewportIntersectorComponent, WEB_COMPONENT_EMBEDDER_URL, WFS_MAX_FEATURES, WizardComponent, WizardFieldComponent, WizardFieldType, WizardService, WizardSummarizeComponent, _reset, addLayer, changeLayerOrder, checkFileFormat, clearLayerError, createFuzzyFilter, currentPage, defaultMapOptions, downgradeImage, downsizeImage, draftSaveSuccess, dragPanCondition, dropEmptyTranslations, editorReducer, findConverterForDocument, getArrayItem, getAsArray, getAsUrl, getBadgeColor, getCustomTranslations, getError, getFavoritesOnly, getFileFormat, getFileFormatFromServiceOutput, getFirstValue, getFormatPriority, getGeometryFromGeoJSON, getGlobalConfig, getJsonDataItemsProxy, getLangFromBrowser, getLinkLabel, getLinkPriority, getMapLayers, getMapState, getMetadataQualityConfig, getMimeTypeForFormat, getOptionalMapConfig, getOptionalSearchConfig, getPageSize, getSearchConfigAggregations, getSearchFilters, getSearchResults, getSearchResultsAggregations, getSearchResultsHits, getSearchResultsLayout, getSearchResultsLoading, getSearchSortBy, getSearchState, getSearchStateSearch, getSpatialFilterEnabled, getTemporalRangeUnion, getThemeConfig, initSearch, initialEditorState, initialMapState, initialState, isBeginningOfResults, isConfigLoaded, isEndOfResults, isFormatInQueryParam, loadAppConfig, mapContact, mapKeywords, mapLogo, mapOrganization, mapReducer, markRecordAsChanged, megabytesToBytes, mimeTypeToFormat, mouseWheelZoomCondition, openDataset, openRecord, parse, placeholder, propagateToDocumentOnly, provideGn4, provideRepositoryUrl, readDataset, readDatasetHeaders, reducer$2 as reducer, reducerSearch, removeLayer, removeSearchParams, removeWhitespace, saveRecord, saveRecordFailure, saveRecordSuccess, selectEditorState, selectFallback, selectFallbackFields, selectField, selectRecord, selectRecordAlreadySavedOnce, selectRecordChangedSinceSave, selectRecordFields, selectRecordFieldsConfig, selectRecordSaveError, selectRecordSaving, selectRecordSource, selectTranslatedField, selectTranslatedValue, setLayerError, sortByFromString, sortByToString, sortByToStrings, stripHtml, toDate, totalPages, updateLayer, updateRecordField };
|
|
35337
35836
|
//# sourceMappingURL=geonetwork-ui.mjs.map
|