geonetwork-ui 2.4.0-dev.573bccd7 → 2.4.0-dev.5cc37149
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/atomic-operations.mjs +2 -1
- 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/gn4/types/metadata.model.mjs +1 -1
- 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 +1188 -688
- package/fesm2022/geonetwork-ui.mjs.map +1 -1
- package/libs/api/metadata-converter/src/lib/gn4/atomic-operations.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/gn4/types/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/gn4/types/metadata.model.d.ts +1 -0
- package/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/iso19139/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/atomic-operations.ts +1 -0
- 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/gn4/types/metadata.model.ts +1 -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
|
|
|
@@ -2176,6 +2176,7 @@ const mapKeywords = (thesauri, language) => {
|
|
|
2176
2176
|
keywords.push({
|
|
2177
2177
|
label: selectTranslatedValue(keyword, language),
|
|
2178
2178
|
type: getKeywordTypeFromKeywordTypeCode(rawThesaurus.theme),
|
|
2179
|
+
...(keyword.link && { key: keyword.link }),
|
|
2179
2180
|
...(thesaurus && { thesaurus }),
|
|
2180
2181
|
});
|
|
2181
2182
|
}
|
|
@@ -17306,9 +17307,10 @@ var next$6 = "weiter";
|
|
|
17306
17307
|
var previous$6 = "zurück";
|
|
17307
17308
|
var records$6 = "Datensätze";
|
|
17308
17309
|
var de = {
|
|
17310
|
+
"Add Layer As": "",
|
|
17309
17311
|
"button.login": "",
|
|
17310
17312
|
"catalog.figures.datasets": "{count, plural, =0{Datensätze} one{Datensatz} other{Datensätze}}",
|
|
17311
|
-
"catalog.figures.
|
|
17313
|
+
"catalog.figures.organizations": "{count, plural, =0{Organisationen} one{Organisation} other{Organisationen}}",
|
|
17312
17314
|
"chart.aggregation.average": "Durchschnitt",
|
|
17313
17315
|
"chart.aggregation.count": "Anzahl",
|
|
17314
17316
|
"chart.aggregation.max": "Maximum",
|
|
@@ -17324,16 +17326,22 @@ var de = {
|
|
|
17324
17326
|
"chart.type.line": "Liniendiagramm",
|
|
17325
17327
|
"chart.type.lineSmooth": "Geglättes Liniendiagramm",
|
|
17326
17328
|
"chart.type.pie": "Kreisdiagramm",
|
|
17329
|
+
"dashboard.catalog.allRecords": "Metadatenkatalog",
|
|
17330
|
+
"dashboard.catalog.calendar": "Kalender",
|
|
17331
|
+
"dashboard.catalog.contacts": "Kontakte",
|
|
17332
|
+
"dashboard.catalog.discussion": "Diskussion",
|
|
17333
|
+
"dashboard.catalog.thesaurus": "Thesaurus",
|
|
17327
17334
|
"dashboard.createRecord": "Neuer Eintrag",
|
|
17335
|
+
"dashboard.labels.catalog": "Katalog",
|
|
17328
17336
|
"dashboard.labels.mySpace": "Mein Bereich",
|
|
17329
17337
|
"dashboard.records.all": "Katalog",
|
|
17330
17338
|
"dashboard.records.hasDraft": "",
|
|
17331
17339
|
"dashboard.records.myDraft": "Meine Entwürfe",
|
|
17332
17340
|
"dashboard.records.myLibrary": "Meine Bibliothek",
|
|
17333
|
-
"dashboard.records.myOrg": "Meine Organisation",
|
|
17334
17341
|
"dashboard.records.myRecords": "Meine Datensätze",
|
|
17335
17342
|
"dashboard.records.publishedRecords": "{count, plural, =1{veröffentlichter Datensatz} other{veröffentlichte Datensätze}}",
|
|
17336
17343
|
"dashboard.records.search": "Suche nach \"{searchText}\"",
|
|
17344
|
+
"dashboard.records.templates": "Vorlagen",
|
|
17337
17345
|
"dashboard.records.userDetail": "Name",
|
|
17338
17346
|
"dashboard.records.userEmail": "E-Mail",
|
|
17339
17347
|
"dashboard.records.username": "Benutzername",
|
|
@@ -17349,6 +17357,8 @@ var de = {
|
|
|
17349
17357
|
"datafeeder.datasetValidation.submitButton": "OK, meine Daten sind korrekt",
|
|
17350
17358
|
"datafeeder.datasetValidation.title": "Stellen Sie sicher, dass Ihre Daten korrekt sind",
|
|
17351
17359
|
"datafeeder.datasetValidation.unknown": " - ",
|
|
17360
|
+
"datafeeder.datasetValidationCsv.explicitLineNumbers": "",
|
|
17361
|
+
"datafeeder.datasetValidationCsv.lineNumbers": "",
|
|
17352
17362
|
"datafeeder.form.abstract": "Wie würden Sie Ihren Datensatz beschreiben?",
|
|
17353
17363
|
"datafeeder.form.datepicker": "Wissen Sie, wann der Datensatz erstellt wurde?",
|
|
17354
17364
|
"datafeeder.form.description": "Beschreiben Sie abschließend den Prozess, der zur Erstellung des Datensatzes verwendet wurde",
|
|
@@ -17376,6 +17386,7 @@ var de = {
|
|
|
17376
17386
|
"datafeeder.publishSuccess.geonetworkRecord": "Metadatensatz",
|
|
17377
17387
|
"datafeeder.publishSuccess.illustration.title": "Erledigt, alles ist gut!",
|
|
17378
17388
|
"datafeeder.publishSuccess.mapViewer": "Kartenviewer",
|
|
17389
|
+
"datafeeder.publishSuccess.ogcFeature": "",
|
|
17379
17390
|
"datafeeder.publishSuccess.subtitle": "Zeigen Sie Ihre Daten an in:",
|
|
17380
17391
|
"datafeeder.publishSuccess.title": "Herzlichen Glückwunsch! \n Ihr Datensatz wurde veröffentlicht",
|
|
17381
17392
|
"datafeeder.publishSuccess.uploadAnotherData": "Ein weiteren Datensatz hochladen",
|
|
@@ -17404,6 +17415,15 @@ var de = {
|
|
|
17404
17415
|
"datafeeder.upload.maxFileSize": "Maximale Dateigröße beträgt {size} MB",
|
|
17405
17416
|
"datafeeder.upload.title": "Laden Sie Ihren Datensatz hoch",
|
|
17406
17417
|
"datafeeder.upload.uploadButton": "Hochladen",
|
|
17418
|
+
"datafeeder.validation.csv.delimiter": "",
|
|
17419
|
+
"datafeeder.validation.csv.delimiter.comma": "",
|
|
17420
|
+
"datafeeder.validation.csv.delimiter.semicolon": "",
|
|
17421
|
+
"datafeeder.validation.csv.lat.field": "",
|
|
17422
|
+
"datafeeder.validation.csv.lng.field": "",
|
|
17423
|
+
"datafeeder.validation.csv.quote.double": "",
|
|
17424
|
+
"datafeeder.validation.csv.quote.none": "",
|
|
17425
|
+
"datafeeder.validation.csv.quote.simple": "",
|
|
17426
|
+
"datafeeder.validation.csv.quoteChar": "",
|
|
17407
17427
|
"datafeeder.validation.encoding": "Codierung",
|
|
17408
17428
|
"datafeeder.validation.extent.title": "Hier ist der Datensatzumfang",
|
|
17409
17429
|
"datafeeder.validation.extent.title.unknown": "Das Projektionssystem ist unbekannt",
|
|
@@ -17417,7 +17437,7 @@ var de = {
|
|
|
17417
17437
|
"datahub.header.lastRecords": "Die neuesten",
|
|
17418
17438
|
"datahub.header.myfavorites": "Meine Favoriten",
|
|
17419
17439
|
"datahub.header.news": "Startseite",
|
|
17420
|
-
"datahub.header.
|
|
17440
|
+
"datahub.header.organizations": "Organisationen",
|
|
17421
17441
|
"datahub.header.popularRecords": "Die beliebtesten",
|
|
17422
17442
|
"datahub.header.title.html": "<div class=\"text-white\">Entdecken Sie offene<br> Daten meiner Organisation</div>",
|
|
17423
17443
|
"datahub.news.contact.contactus": "Kontaktieren Sie uns",
|
|
@@ -17453,37 +17473,42 @@ var de = {
|
|
|
17453
17473
|
"downloads.format.unknown": "unbekannt",
|
|
17454
17474
|
"downloads.wfs.featuretype.not.found": "Der Layer wurde nicht gefunden",
|
|
17455
17475
|
dropFile: dropFile$6,
|
|
17476
|
+
"editor.record.form.abstract": "Kurzbeschreibung",
|
|
17477
|
+
"editor.record.form.keywords": "Schlüsselwörter",
|
|
17456
17478
|
"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": "",
|
|
17479
|
+
"editor.record.form.license.cc-by": "Creative Commons CC-BY",
|
|
17480
|
+
"editor.record.form.license.cc-by-sa": "Creative Commons CC-BY-SA",
|
|
17481
|
+
"editor.record.form.license.cc-zero": "Creative Commons CC-0",
|
|
17482
|
+
"editor.record.form.license.etalab": "Offene Lizenz (Etalab)",
|
|
17483
|
+
"editor.record.form.license.etalab-v2": "Offene Lizenz v2.0 (Etalab)",
|
|
17484
|
+
"editor.record.form.license.odbl": "Open Data Commons ODbL",
|
|
17485
|
+
"editor.record.form.license.odc-by": "Open Data Commons ODC-By",
|
|
17486
|
+
"editor.record.form.license.pddl": "Open Data Commons PDDL",
|
|
17465
17487
|
"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.
|
|
17488
|
+
"editor.record.form.metadata.title": "Metadaten-Titel",
|
|
17489
|
+
"editor.record.form.record.updated": "Datensatz zuletzt aktualisiert",
|
|
17490
|
+
"editor.record.form.resourceUpdated": "Letztes Aktualisierungsdatum",
|
|
17491
|
+
"editor.record.form.temporalExtents": "Zeitlicher Umfang",
|
|
17492
|
+
"editor.record.form.temporalExtents.addDate": "Zeitpunkt",
|
|
17493
|
+
"editor.record.form.temporalExtents.addRange": "Zeitraum",
|
|
17494
|
+
"editor.record.form.temporalExtents.date": "Datum",
|
|
17495
|
+
"editor.record.form.temporalExtents.range": "Datumsbereich",
|
|
17496
|
+
"editor.record.form.unique.identifier": "Eindeutige Kennung (ID)",
|
|
17497
|
+
"editor.record.form.updateFrequency": "Aktualisierungshäufigkeit",
|
|
17498
|
+
"editor.record.form.updateFrequency.planned": "Die Daten sollten regelmäßig aktualisiert werden.",
|
|
17499
|
+
"editor.record.loadError.body": "Der Datensatz konnte nicht geladen werden:",
|
|
17500
|
+
"editor.record.loadError.closeMessage": "Verstanden",
|
|
17501
|
+
"editor.record.loadError.title": "Fehler beim Laden des Datensatzes",
|
|
17502
|
+
"editor.record.publish": "Diesen Datensatz veröffentlichen",
|
|
17503
|
+
"editor.record.publishError.body": "Der Datensatz konnte nicht veröffentlicht werden:",
|
|
17504
|
+
"editor.record.publishError.closeMessage": "Verstanden",
|
|
17505
|
+
"editor.record.publishError.title": "Fehler beim Veröffentlichen des Datensatzes",
|
|
17506
|
+
"editor.record.publishSuccess.body": "Der Datensatz wurde erfolgreich veröffentlicht!",
|
|
17507
|
+
"editor.record.publishSuccess.title": "Veröffentlichung erfolgreich",
|
|
17508
|
+
"editor.record.saveStatus.asDraftOnly": "Nur als Entwurf gespeichert - noch nicht veröffentlicht",
|
|
17509
|
+
"editor.record.saveStatus.draftWithChangesPending": "Als Entwurf gespeichert - Änderungen stehen aus",
|
|
17510
|
+
"editor.record.saveStatus.recordUpToDate": "Datensatz ist auf dem neuesten Stand",
|
|
17511
|
+
"editor.record.upToDate": "Dieser Datensatz ist auf dem neuesten Stand",
|
|
17487
17512
|
"externalviewer.dataset.unnamed": "Datensatz aus dem Datahub",
|
|
17488
17513
|
"facets.block.title.OrgForResource": "Organisation",
|
|
17489
17514
|
"facets.block.title.availableInServices": "Verfügbar für",
|
|
@@ -17552,6 +17577,10 @@ var de = {
|
|
|
17552
17577
|
"organisations.sortBy.nameDesc": "Name Z → A",
|
|
17553
17578
|
"organisations.sortBy.recordCountAsc": "Veröffentlichungen 0 → 9",
|
|
17554
17579
|
"organisations.sortBy.recordCountDesc": "Veröffentlichungen 9 → 0",
|
|
17580
|
+
"organization.details.lastPublishedDatasets": "",
|
|
17581
|
+
"organization.details.lastPublishedDatasets.searchAllButton": "",
|
|
17582
|
+
"organization.details.mailContact": "",
|
|
17583
|
+
"organization.header.recordCount": "{count, plural, =0{} one{} other{}}",
|
|
17555
17584
|
"pagination.nextPage": "Nächste Seite",
|
|
17556
17585
|
"pagination.page": "Seite",
|
|
17557
17586
|
"pagination.pageOf": "von",
|
|
@@ -17589,7 +17618,7 @@ var de = {
|
|
|
17589
17618
|
"record.metadata.preview": "Vorschau",
|
|
17590
17619
|
"record.metadata.producer": "Datenproduzent",
|
|
17591
17620
|
"record.metadata.publication": "Veröffentlichungsdatum",
|
|
17592
|
-
"record.metadata.publications": "Veröffentlichungen",
|
|
17621
|
+
"record.metadata.publications": "{count, plural, =0{Veröffentlichungsdatum} one{Veröffentlichungsdatum} other{Veröffentlichungen}}",
|
|
17593
17622
|
"record.metadata.quality": "Metadatenqualität",
|
|
17594
17623
|
"record.metadata.quality.contact.failed": "Kontakt nicht angegeben",
|
|
17595
17624
|
"record.metadata.quality.contact.success": "Kontakt angegeben",
|
|
@@ -17649,6 +17678,8 @@ var de = {
|
|
|
17649
17678
|
"results.sortBy.relevancy": "Relevanz",
|
|
17650
17679
|
"search.autocomplete.error": "Vorschläge konnten nicht abgerufen werden:",
|
|
17651
17680
|
"search.error.couldNotReachApi": "Die API konnte nicht erreicht werden",
|
|
17681
|
+
"search.error.organizationHasNoDataset": "",
|
|
17682
|
+
"search.error.organizationNotFound": "",
|
|
17652
17683
|
"search.error.receivedError": "Ein Fehler ist aufgetreten",
|
|
17653
17684
|
"search.error.recordHasnolink": "",
|
|
17654
17685
|
"search.error.recordNotFound": "Der Datensatz mit der Kennung \"{ id }\" konnte nicht gefunden werden.",
|
|
@@ -17676,9 +17707,11 @@ var de = {
|
|
|
17676
17707
|
"search.filters.minimize": "Minimieren",
|
|
17677
17708
|
"search.filters.myRecords": "Nur meine Datensätze anzeigen",
|
|
17678
17709
|
"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.",
|
|
17710
|
+
"search.filters.organization": "",
|
|
17679
17711
|
"search.filters.otherRecords": "Datensätze von einer anderen Person anzeigen",
|
|
17712
|
+
"search.filters.producerOrg": "",
|
|
17680
17713
|
"search.filters.publicationYear": "Veröffentlichungsjahr",
|
|
17681
|
-
"search.filters.
|
|
17714
|
+
"search.filters.publisherOrg": "",
|
|
17682
17715
|
"search.filters.representationType": "Repräsentationstyp",
|
|
17683
17716
|
"search.filters.resourceType": "Ressourcentyp",
|
|
17684
17717
|
"search.filters.standard": "Standard",
|
|
@@ -17709,9 +17742,10 @@ var next$5 = "next";
|
|
|
17709
17742
|
var previous$5 = "previous";
|
|
17710
17743
|
var records$5 = "records";
|
|
17711
17744
|
var en = {
|
|
17745
|
+
"Add Layer As": "",
|
|
17712
17746
|
"button.login": "Log in",
|
|
17713
17747
|
"catalog.figures.datasets": "{count, plural, =0{datasets} one{dataset} other{datasets}}",
|
|
17714
|
-
"catalog.figures.
|
|
17748
|
+
"catalog.figures.organizations": "{count, plural, =0{organizations} one{organization} other{organizations}}",
|
|
17715
17749
|
"chart.aggregation.average": "average",
|
|
17716
17750
|
"chart.aggregation.count": "count",
|
|
17717
17751
|
"chart.aggregation.max": "max",
|
|
@@ -17727,16 +17761,22 @@ var en = {
|
|
|
17727
17761
|
"chart.type.line": "line chart",
|
|
17728
17762
|
"chart.type.lineSmooth": "smooth line chart",
|
|
17729
17763
|
"chart.type.pie": "pie chart",
|
|
17764
|
+
"dashboard.catalog.allRecords": "Metadata records",
|
|
17765
|
+
"dashboard.catalog.calendar": "Calendar",
|
|
17766
|
+
"dashboard.catalog.contacts": "Contacts",
|
|
17767
|
+
"dashboard.catalog.discussion": "Discussion",
|
|
17768
|
+
"dashboard.catalog.thesaurus": "Thesaurus",
|
|
17730
17769
|
"dashboard.createRecord": "New record",
|
|
17770
|
+
"dashboard.labels.catalog": "Catalog",
|
|
17731
17771
|
"dashboard.labels.mySpace": "My space",
|
|
17732
17772
|
"dashboard.records.all": "Metadata records",
|
|
17733
17773
|
"dashboard.records.hasDraft": "draft",
|
|
17734
17774
|
"dashboard.records.myDraft": "My drafts",
|
|
17735
17775
|
"dashboard.records.myLibrary": "My library",
|
|
17736
|
-
"dashboard.records.myOrg": "Organization",
|
|
17737
17776
|
"dashboard.records.myRecords": "My Records",
|
|
17738
17777
|
"dashboard.records.publishedRecords": "{count, plural, =1{published record} other{published records}}",
|
|
17739
17778
|
"dashboard.records.search": "Search for \"{searchText}\"",
|
|
17779
|
+
"dashboard.records.templates": "Templates",
|
|
17740
17780
|
"dashboard.records.userDetail": "Name",
|
|
17741
17781
|
"dashboard.records.userEmail": "Email",
|
|
17742
17782
|
"dashboard.records.username": "Username",
|
|
@@ -17752,6 +17792,8 @@ var en = {
|
|
|
17752
17792
|
"datafeeder.datasetValidation.submitButton": "OK, my data are correct",
|
|
17753
17793
|
"datafeeder.datasetValidation.title": "Make sure your data are correct",
|
|
17754
17794
|
"datafeeder.datasetValidation.unknown": " - ",
|
|
17795
|
+
"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",
|
|
17796
|
+
"datafeeder.datasetValidationCsv.lineNumbers": "Sample of the first 5 lines* of the dataset:",
|
|
17755
17797
|
"datafeeder.form.abstract": "How would you describe your dataset?",
|
|
17756
17798
|
"datafeeder.form.datepicker": "Do you know when the dataset was created?",
|
|
17757
17799
|
"datafeeder.form.description": "Finally, please describe the process that was used to create the dataset",
|
|
@@ -17779,6 +17821,7 @@ var en = {
|
|
|
17779
17821
|
"datafeeder.publishSuccess.geonetworkRecord": "Metadata record",
|
|
17780
17822
|
"datafeeder.publishSuccess.illustration.title": "Done, all is good!",
|
|
17781
17823
|
"datafeeder.publishSuccess.mapViewer": "Map viewer",
|
|
17824
|
+
"datafeeder.publishSuccess.ogcFeature": "OGC API",
|
|
17782
17825
|
"datafeeder.publishSuccess.subtitle": "View your data in:",
|
|
17783
17826
|
"datafeeder.publishSuccess.title": "Congratulation! \n Your dataset has been published",
|
|
17784
17827
|
"datafeeder.publishSuccess.uploadAnotherData": "Upload another dataset",
|
|
@@ -17807,6 +17850,15 @@ var en = {
|
|
|
17807
17850
|
"datafeeder.upload.maxFileSize": "Maximum file size is {size} MB",
|
|
17808
17851
|
"datafeeder.upload.title": "Upload your dataset",
|
|
17809
17852
|
"datafeeder.upload.uploadButton": "Upload",
|
|
17853
|
+
"datafeeder.validation.csv.delimiter": "Delimiter",
|
|
17854
|
+
"datafeeder.validation.csv.delimiter.comma": "Comma",
|
|
17855
|
+
"datafeeder.validation.csv.delimiter.semicolon": "Semicolon",
|
|
17856
|
+
"datafeeder.validation.csv.lat.field": "Latitude column",
|
|
17857
|
+
"datafeeder.validation.csv.lng.field": "Longitude column",
|
|
17858
|
+
"datafeeder.validation.csv.quote.double": "Double quote",
|
|
17859
|
+
"datafeeder.validation.csv.quote.none": "None",
|
|
17860
|
+
"datafeeder.validation.csv.quote.simple": "Simple quote",
|
|
17861
|
+
"datafeeder.validation.csv.quoteChar": "Quote separator",
|
|
17810
17862
|
"datafeeder.validation.encoding": "encoding",
|
|
17811
17863
|
"datafeeder.validation.extent.title": "Here is the dataset extent",
|
|
17812
17864
|
"datafeeder.validation.extent.title.unknown": "The projection system is unknown",
|
|
@@ -17820,7 +17872,7 @@ var en = {
|
|
|
17820
17872
|
"datahub.header.lastRecords": "The latest",
|
|
17821
17873
|
"datahub.header.myfavorites": "My favorites",
|
|
17822
17874
|
"datahub.header.news": "Home",
|
|
17823
|
-
"datahub.header.
|
|
17875
|
+
"datahub.header.organizations": "Organizations",
|
|
17824
17876
|
"datahub.header.popularRecords": "The most popular",
|
|
17825
17877
|
"datahub.header.title.html": "<div class=\"text-white\">Discover open<br> data from my Organization</div>",
|
|
17826
17878
|
"datahub.news.contact.contactus": "Contact us",
|
|
@@ -17856,6 +17908,8 @@ var en = {
|
|
|
17856
17908
|
"downloads.format.unknown": "unknown",
|
|
17857
17909
|
"downloads.wfs.featuretype.not.found": "The layer was not found",
|
|
17858
17910
|
dropFile: dropFile$5,
|
|
17911
|
+
"editor.record.form.abstract": "Abstract",
|
|
17912
|
+
"editor.record.form.keywords": "Keywords",
|
|
17859
17913
|
"editor.record.form.license": "License",
|
|
17860
17914
|
"editor.record.form.license.cc-by": "Creative Commons CC-BY",
|
|
17861
17915
|
"editor.record.form.license.cc-by-sa": "Creative Commons CC-BY-SA",
|
|
@@ -17866,12 +17920,15 @@ var en = {
|
|
|
17866
17920
|
"editor.record.form.license.odc-by": "Open Data Commons ODC-By",
|
|
17867
17921
|
"editor.record.form.license.pddl": "Open Data Commons PDDL",
|
|
17868
17922
|
"editor.record.form.license.unknown": "Unknown or absent",
|
|
17923
|
+
"editor.record.form.metadata.title": "Metadata title",
|
|
17924
|
+
"editor.record.form.record.updated": "Record updated",
|
|
17869
17925
|
"editor.record.form.resourceUpdated": "Last update date",
|
|
17870
17926
|
"editor.record.form.temporalExtents": "Temporal extent",
|
|
17871
17927
|
"editor.record.form.temporalExtents.addDate": "Time instant",
|
|
17872
17928
|
"editor.record.form.temporalExtents.addRange": "Time period",
|
|
17873
17929
|
"editor.record.form.temporalExtents.date": "Date",
|
|
17874
17930
|
"editor.record.form.temporalExtents.range": "Date range",
|
|
17931
|
+
"editor.record.form.unique.identifier": "Unique identifier",
|
|
17875
17932
|
"editor.record.form.updateFrequency": "Update frequency",
|
|
17876
17933
|
"editor.record.form.updateFrequency.planned": "The data should be updated regularly.",
|
|
17877
17934
|
"editor.record.loadError.body": "The record could not be loaded:",
|
|
@@ -17955,6 +18012,10 @@ var en = {
|
|
|
17955
18012
|
"organisations.sortBy.nameDesc": "Name Z → A",
|
|
17956
18013
|
"organisations.sortBy.recordCountAsc": "Publications 0 → 9",
|
|
17957
18014
|
"organisations.sortBy.recordCountDesc": "Publications 9 → 0",
|
|
18015
|
+
"organization.details.lastPublishedDatasets": "",
|
|
18016
|
+
"organization.details.lastPublishedDatasets.searchAllButton": "",
|
|
18017
|
+
"organization.details.mailContact": "Contact by email",
|
|
18018
|
+
"organization.header.recordCount": "{count, plural, =0{data} one{data} other{datas}}",
|
|
17958
18019
|
"pagination.nextPage": "Next page",
|
|
17959
18020
|
"pagination.page": "page",
|
|
17960
18021
|
"pagination.pageOf": "of",
|
|
@@ -17992,7 +18053,7 @@ var en = {
|
|
|
17992
18053
|
"record.metadata.preview": "Preview",
|
|
17993
18054
|
"record.metadata.producer": "Data producer",
|
|
17994
18055
|
"record.metadata.publication": "Date of publication",
|
|
17995
|
-
"record.metadata.publications": "publications",
|
|
18056
|
+
"record.metadata.publications": "{count, plural, =0{publication} one{publication} other{publications}}",
|
|
17996
18057
|
"record.metadata.quality": "Metadata Quality",
|
|
17997
18058
|
"record.metadata.quality.contact.failed": "Contact is not specified",
|
|
17998
18059
|
"record.metadata.quality.contact.success": "Contact is specified",
|
|
@@ -18052,6 +18113,8 @@ var en = {
|
|
|
18052
18113
|
"results.sortBy.relevancy": "Relevancy",
|
|
18053
18114
|
"search.autocomplete.error": "Suggestions could not be fetched:",
|
|
18054
18115
|
"search.error.couldNotReachApi": "The API could not be reached",
|
|
18116
|
+
"search.error.organizationHasNoDataset": "This organization has no dataset yet.",
|
|
18117
|
+
"search.error.organizationNotFound": "This organization could not be found.",
|
|
18055
18118
|
"search.error.receivedError": "An error was received",
|
|
18056
18119
|
"search.error.recordHasnolink": "This record currently has no link yet, please come back later.",
|
|
18057
18120
|
"search.error.recordNotFound": "The record with identifier \"{ id }\" could not be found.",
|
|
@@ -18079,9 +18142,11 @@ var en = {
|
|
|
18079
18142
|
"search.filters.minimize": "Minimize",
|
|
18080
18143
|
"search.filters.myRecords": "Show only my records",
|
|
18081
18144
|
"search.filters.myRecordsHelp": "When this is enabled, records only created by myself are shown; records created by others will not show up.",
|
|
18145
|
+
"search.filters.organization": "Organization",
|
|
18082
18146
|
"search.filters.otherRecords": "Showing records from another person",
|
|
18147
|
+
"search.filters.producerOrg": "Producer",
|
|
18083
18148
|
"search.filters.publicationYear": "Publication year",
|
|
18084
|
-
"search.filters.
|
|
18149
|
+
"search.filters.publisherOrg": "Publisher",
|
|
18085
18150
|
"search.filters.representationType": "Representation type",
|
|
18086
18151
|
"search.filters.resourceType": "Resource type",
|
|
18087
18152
|
"search.filters.standard": "Standard",
|
|
@@ -18112,9 +18177,10 @@ var next$4 = "";
|
|
|
18112
18177
|
var previous$4 = "";
|
|
18113
18178
|
var records$4 = "";
|
|
18114
18179
|
var es = {
|
|
18180
|
+
"Add Layer As": "",
|
|
18115
18181
|
"button.login": "",
|
|
18116
18182
|
"catalog.figures.datasets": "conjuntos de datos",
|
|
18117
|
-
"catalog.figures.
|
|
18183
|
+
"catalog.figures.organizations": "organizaciones",
|
|
18118
18184
|
"chart.aggregation.average": "promedio",
|
|
18119
18185
|
"chart.aggregation.count": "conteo",
|
|
18120
18186
|
"chart.aggregation.max": "máximo",
|
|
@@ -18130,16 +18196,22 @@ var es = {
|
|
|
18130
18196
|
"chart.type.line": "gráfico de líneas",
|
|
18131
18197
|
"chart.type.lineSmooth": "gráfico de líneas suave",
|
|
18132
18198
|
"chart.type.pie": "gráfico circular",
|
|
18199
|
+
"dashboard.catalog.allRecords": "",
|
|
18200
|
+
"dashboard.catalog.calendar": "",
|
|
18201
|
+
"dashboard.catalog.contacts": "",
|
|
18202
|
+
"dashboard.catalog.discussion": "",
|
|
18203
|
+
"dashboard.catalog.thesaurus": "",
|
|
18133
18204
|
"dashboard.createRecord": "",
|
|
18205
|
+
"dashboard.labels.catalog": "Catálogo",
|
|
18134
18206
|
"dashboard.labels.mySpace": "Mi espacio",
|
|
18135
18207
|
"dashboard.records.all": "Catálogo",
|
|
18136
18208
|
"dashboard.records.hasDraft": "",
|
|
18137
18209
|
"dashboard.records.myDraft": "Mis borradores",
|
|
18138
18210
|
"dashboard.records.myLibrary": "Mi biblioteca",
|
|
18139
|
-
"dashboard.records.myOrg": "Organización",
|
|
18140
18211
|
"dashboard.records.myRecords": "Mis Registros",
|
|
18141
18212
|
"dashboard.records.publishedRecords": "",
|
|
18142
18213
|
"dashboard.records.search": "Buscar \"{searchText}\"",
|
|
18214
|
+
"dashboard.records.templates": "",
|
|
18143
18215
|
"dashboard.records.userDetail": "",
|
|
18144
18216
|
"dashboard.records.userEmail": "",
|
|
18145
18217
|
"dashboard.records.username": "",
|
|
@@ -18155,6 +18227,8 @@ var es = {
|
|
|
18155
18227
|
"datafeeder.datasetValidation.submitButton": "",
|
|
18156
18228
|
"datafeeder.datasetValidation.title": "",
|
|
18157
18229
|
"datafeeder.datasetValidation.unknown": "",
|
|
18230
|
+
"datafeeder.datasetValidationCsv.explicitLineNumbers": "",
|
|
18231
|
+
"datafeeder.datasetValidationCsv.lineNumbers": "",
|
|
18158
18232
|
"datafeeder.form.abstract": "",
|
|
18159
18233
|
"datafeeder.form.datepicker": "",
|
|
18160
18234
|
"datafeeder.form.description": "",
|
|
@@ -18182,6 +18256,7 @@ var es = {
|
|
|
18182
18256
|
"datafeeder.publishSuccess.geonetworkRecord": "",
|
|
18183
18257
|
"datafeeder.publishSuccess.illustration.title": "",
|
|
18184
18258
|
"datafeeder.publishSuccess.mapViewer": "",
|
|
18259
|
+
"datafeeder.publishSuccess.ogcFeature": "",
|
|
18185
18260
|
"datafeeder.publishSuccess.subtitle": "",
|
|
18186
18261
|
"datafeeder.publishSuccess.title": "",
|
|
18187
18262
|
"datafeeder.publishSuccess.uploadAnotherData": "",
|
|
@@ -18210,6 +18285,15 @@ var es = {
|
|
|
18210
18285
|
"datafeeder.upload.maxFileSize": "",
|
|
18211
18286
|
"datafeeder.upload.title": "",
|
|
18212
18287
|
"datafeeder.upload.uploadButton": "",
|
|
18288
|
+
"datafeeder.validation.csv.delimiter": "",
|
|
18289
|
+
"datafeeder.validation.csv.delimiter.comma": "Coma",
|
|
18290
|
+
"datafeeder.validation.csv.delimiter.semicolon": "Punto y coma",
|
|
18291
|
+
"datafeeder.validation.csv.lat.field": "",
|
|
18292
|
+
"datafeeder.validation.csv.lng.field": "",
|
|
18293
|
+
"datafeeder.validation.csv.quote.double": "Comillas dobles",
|
|
18294
|
+
"datafeeder.validation.csv.quote.none": "Ninguno",
|
|
18295
|
+
"datafeeder.validation.csv.quote.simple": "Comillas simples",
|
|
18296
|
+
"datafeeder.validation.csv.quoteChar": "",
|
|
18213
18297
|
"datafeeder.validation.encoding": "",
|
|
18214
18298
|
"datafeeder.validation.extent.title": "",
|
|
18215
18299
|
"datafeeder.validation.extent.title.unknown": "",
|
|
@@ -18223,7 +18307,7 @@ var es = {
|
|
|
18223
18307
|
"datahub.header.lastRecords": "",
|
|
18224
18308
|
"datahub.header.myfavorites": "",
|
|
18225
18309
|
"datahub.header.news": "",
|
|
18226
|
-
"datahub.header.
|
|
18310
|
+
"datahub.header.organizations": "",
|
|
18227
18311
|
"datahub.header.popularRecords": "",
|
|
18228
18312
|
"datahub.header.title.html": "",
|
|
18229
18313
|
"datahub.news.contact.contactus": "",
|
|
@@ -18259,6 +18343,8 @@ var es = {
|
|
|
18259
18343
|
"downloads.format.unknown": "",
|
|
18260
18344
|
"downloads.wfs.featuretype.not.found": "",
|
|
18261
18345
|
dropFile: dropFile$4,
|
|
18346
|
+
"editor.record.form.abstract": "",
|
|
18347
|
+
"editor.record.form.keywords": "",
|
|
18262
18348
|
"editor.record.form.license": "",
|
|
18263
18349
|
"editor.record.form.license.cc-by": "",
|
|
18264
18350
|
"editor.record.form.license.cc-by-sa": "",
|
|
@@ -18269,12 +18355,15 @@ var es = {
|
|
|
18269
18355
|
"editor.record.form.license.odc-by": "",
|
|
18270
18356
|
"editor.record.form.license.pddl": "",
|
|
18271
18357
|
"editor.record.form.license.unknown": "",
|
|
18358
|
+
"editor.record.form.metadata.title": "",
|
|
18359
|
+
"editor.record.form.record.updated": "",
|
|
18272
18360
|
"editor.record.form.resourceUpdated": "",
|
|
18273
18361
|
"editor.record.form.temporalExtents": "",
|
|
18274
18362
|
"editor.record.form.temporalExtents.addDate": "",
|
|
18275
18363
|
"editor.record.form.temporalExtents.addRange": "",
|
|
18276
18364
|
"editor.record.form.temporalExtents.date": "",
|
|
18277
18365
|
"editor.record.form.temporalExtents.range": "",
|
|
18366
|
+
"editor.record.form.unique.identifier": "",
|
|
18278
18367
|
"editor.record.form.updateFrequency": "",
|
|
18279
18368
|
"editor.record.form.updateFrequency.planned": "",
|
|
18280
18369
|
"editor.record.loadError.body": "",
|
|
@@ -18358,6 +18447,10 @@ var es = {
|
|
|
18358
18447
|
"organisations.sortBy.nameDesc": "",
|
|
18359
18448
|
"organisations.sortBy.recordCountAsc": "",
|
|
18360
18449
|
"organisations.sortBy.recordCountDesc": "",
|
|
18450
|
+
"organization.details.lastPublishedDatasets": "",
|
|
18451
|
+
"organization.details.lastPublishedDatasets.searchAllButton": "",
|
|
18452
|
+
"organization.details.mailContact": "",
|
|
18453
|
+
"organization.header.recordCount": "{count, plural, =0{} one{} other{}}",
|
|
18361
18454
|
"pagination.nextPage": "",
|
|
18362
18455
|
"pagination.page": "",
|
|
18363
18456
|
"pagination.pageOf": "",
|
|
@@ -18395,7 +18488,7 @@ var es = {
|
|
|
18395
18488
|
"record.metadata.preview": "",
|
|
18396
18489
|
"record.metadata.producer": "",
|
|
18397
18490
|
"record.metadata.publication": "",
|
|
18398
|
-
"record.metadata.publications": "",
|
|
18491
|
+
"record.metadata.publications": "{count, plural, =0{} one{} other{}}",
|
|
18399
18492
|
"record.metadata.quality": "",
|
|
18400
18493
|
"record.metadata.quality.contact.failed": "",
|
|
18401
18494
|
"record.metadata.quality.contact.success": "",
|
|
@@ -18455,6 +18548,8 @@ var es = {
|
|
|
18455
18548
|
"results.sortBy.relevancy": "",
|
|
18456
18549
|
"search.autocomplete.error": "",
|
|
18457
18550
|
"search.error.couldNotReachApi": "",
|
|
18551
|
+
"search.error.organizationHasNoDataset": "",
|
|
18552
|
+
"search.error.organizationNotFound": "",
|
|
18458
18553
|
"search.error.receivedError": "",
|
|
18459
18554
|
"search.error.recordHasnolink": "",
|
|
18460
18555
|
"search.error.recordNotFound": "",
|
|
@@ -18482,9 +18577,11 @@ var es = {
|
|
|
18482
18577
|
"search.filters.minimize": "",
|
|
18483
18578
|
"search.filters.myRecords": "",
|
|
18484
18579
|
"search.filters.myRecordsHelp": "",
|
|
18580
|
+
"search.filters.organization": "",
|
|
18485
18581
|
"search.filters.otherRecords": "",
|
|
18582
|
+
"search.filters.producerOrg": "",
|
|
18486
18583
|
"search.filters.publicationYear": "",
|
|
18487
|
-
"search.filters.
|
|
18584
|
+
"search.filters.publisherOrg": "",
|
|
18488
18585
|
"search.filters.representationType": "",
|
|
18489
18586
|
"search.filters.resourceType": "",
|
|
18490
18587
|
"search.filters.standard": "",
|
|
@@ -18515,9 +18612,10 @@ var next$3 = "suivant";
|
|
|
18515
18612
|
var previous$3 = "précédent";
|
|
18516
18613
|
var records$3 = "enregistrements";
|
|
18517
18614
|
var fr = {
|
|
18615
|
+
"Add Layer As": "",
|
|
18518
18616
|
"button.login": "Se connecter",
|
|
18519
18617
|
"catalog.figures.datasets": "{count, plural, =0{données} one{donnée} other{données}}",
|
|
18520
|
-
"catalog.figures.
|
|
18618
|
+
"catalog.figures.organizations": "{count, plural, =0{organisations} one{organisation} other{organisations}}",
|
|
18521
18619
|
"chart.aggregation.average": "moyenne",
|
|
18522
18620
|
"chart.aggregation.count": "nombre",
|
|
18523
18621
|
"chart.aggregation.max": "maximum",
|
|
@@ -18533,16 +18631,22 @@ var fr = {
|
|
|
18533
18631
|
"chart.type.line": "ligne",
|
|
18534
18632
|
"chart.type.lineSmooth": "ligne lisse",
|
|
18535
18633
|
"chart.type.pie": "camembert",
|
|
18634
|
+
"dashboard.catalog.allRecords": "Fiches de métadonnée",
|
|
18635
|
+
"dashboard.catalog.calendar": "Calendrier",
|
|
18636
|
+
"dashboard.catalog.contacts": "Annuaire",
|
|
18637
|
+
"dashboard.catalog.discussion": "Discussions",
|
|
18638
|
+
"dashboard.catalog.thesaurus": "Thesaurus",
|
|
18536
18639
|
"dashboard.createRecord": "Nouvel enregistrement",
|
|
18640
|
+
"dashboard.labels.catalog": "Catalogue",
|
|
18537
18641
|
"dashboard.labels.mySpace": "Mon espace",
|
|
18538
18642
|
"dashboard.records.all": "Catalogue",
|
|
18539
18643
|
"dashboard.records.hasDraft": "brouillon",
|
|
18540
18644
|
"dashboard.records.myDraft": "Mes brouillons",
|
|
18541
18645
|
"dashboard.records.myLibrary": "Ma bibliothèque",
|
|
18542
|
-
"dashboard.records.myOrg": "Mon organisation",
|
|
18543
18646
|
"dashboard.records.myRecords": "Mes fiches publiées",
|
|
18544
18647
|
"dashboard.records.publishedRecords": "{count, plural, =1{donnée publiée} other{données publiées}}",
|
|
18545
18648
|
"dashboard.records.search": "Résultats pour \"{searchText}\"",
|
|
18649
|
+
"dashboard.records.templates": "Modèles pré-remplis",
|
|
18546
18650
|
"dashboard.records.userDetail": "Nom",
|
|
18547
18651
|
"dashboard.records.userEmail": "Email",
|
|
18548
18652
|
"dashboard.records.username": "Nom d'utilisateur",
|
|
@@ -18558,6 +18662,8 @@ var fr = {
|
|
|
18558
18662
|
"datafeeder.datasetValidation.submitButton": "OK, mes données sont correctes",
|
|
18559
18663
|
"datafeeder.datasetValidation.title": "Vérifiez que vos données sont correctes",
|
|
18560
18664
|
"datafeeder.datasetValidation.unknown": " - ",
|
|
18665
|
+
"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é",
|
|
18666
|
+
"datafeeder.datasetValidationCsv.lineNumbers": "Résumé des 5 premières lignes* du CSV :",
|
|
18561
18667
|
"datafeeder.form.abstract": "Comment décrire votre jeu de données ?",
|
|
18562
18668
|
"datafeeder.form.datepicker": "Savez-vous quand la donnée a été créée ?",
|
|
18563
18669
|
"datafeeder.form.description": "Enfin, décrivez le processus utilisé pour créer la donnée",
|
|
@@ -18584,7 +18690,8 @@ var fr = {
|
|
|
18584
18690
|
"datafeeder.publish.upload": "Upload maintenant",
|
|
18585
18691
|
"datafeeder.publishSuccess.geonetworkRecord": "Fiche de métadonnée",
|
|
18586
18692
|
"datafeeder.publishSuccess.illustration.title": "Terminé, tout s'est bien passé !",
|
|
18587
|
-
"datafeeder.publishSuccess.mapViewer": "
|
|
18693
|
+
"datafeeder.publishSuccess.mapViewer": "Visualiseur",
|
|
18694
|
+
"datafeeder.publishSuccess.ogcFeature": "OGC API",
|
|
18588
18695
|
"datafeeder.publishSuccess.subtitle": "Visualisez vos données :",
|
|
18589
18696
|
"datafeeder.publishSuccess.title": "Félicitations! \n Vos données ont été publiées",
|
|
18590
18697
|
"datafeeder.publishSuccess.uploadAnotherData": "Importer une autre donnée",
|
|
@@ -18613,6 +18720,15 @@ var fr = {
|
|
|
18613
18720
|
"datafeeder.upload.maxFileSize": "La taille maximale est {size} Mo",
|
|
18614
18721
|
"datafeeder.upload.title": "Importez vos données",
|
|
18615
18722
|
"datafeeder.upload.uploadButton": "Transférer",
|
|
18723
|
+
"datafeeder.validation.csv.delimiter": "Séparateur de colonne",
|
|
18724
|
+
"datafeeder.validation.csv.delimiter.comma": "Virgule",
|
|
18725
|
+
"datafeeder.validation.csv.delimiter.semicolon": "Point-virgule",
|
|
18726
|
+
"datafeeder.validation.csv.lat.field": "Colonne latitude",
|
|
18727
|
+
"datafeeder.validation.csv.lng.field": "Colonne longitude",
|
|
18728
|
+
"datafeeder.validation.csv.quote.double": "Double guillemets",
|
|
18729
|
+
"datafeeder.validation.csv.quote.none": "Aucun",
|
|
18730
|
+
"datafeeder.validation.csv.quote.simple": "Simple guillemet",
|
|
18731
|
+
"datafeeder.validation.csv.quoteChar": "Séparateur de texte",
|
|
18616
18732
|
"datafeeder.validation.encoding": "encodage",
|
|
18617
18733
|
"datafeeder.validation.extent.title": "Voici l'emprise du jeu de données",
|
|
18618
18734
|
"datafeeder.validation.extent.title.unknown": "Le système de projection est inconnu",
|
|
@@ -18626,7 +18742,7 @@ var fr = {
|
|
|
18626
18742
|
"datahub.header.lastRecords": "Les plus récentes",
|
|
18627
18743
|
"datahub.header.myfavorites": "Mes favoris",
|
|
18628
18744
|
"datahub.header.news": "Accueil",
|
|
18629
|
-
"datahub.header.
|
|
18745
|
+
"datahub.header.organizations": "Organisations",
|
|
18630
18746
|
"datahub.header.popularRecords": "Les plus appréciées",
|
|
18631
18747
|
"datahub.header.title.html": "<div class=\"text-white\">Toutes les données<br>publiques de mon organisation</div>",
|
|
18632
18748
|
"datahub.news.contact.contactus": "Contactez-nous",
|
|
@@ -18662,6 +18778,8 @@ var fr = {
|
|
|
18662
18778
|
"downloads.format.unknown": "inconnu",
|
|
18663
18779
|
"downloads.wfs.featuretype.not.found": "La couche n'a pas été retrouvée",
|
|
18664
18780
|
dropFile: dropFile$3,
|
|
18781
|
+
"editor.record.form.abstract": "",
|
|
18782
|
+
"editor.record.form.keywords": "",
|
|
18665
18783
|
"editor.record.form.license": "Licence",
|
|
18666
18784
|
"editor.record.form.license.cc-by": "",
|
|
18667
18785
|
"editor.record.form.license.cc-by-sa": "",
|
|
@@ -18672,12 +18790,15 @@ var fr = {
|
|
|
18672
18790
|
"editor.record.form.license.odc-by": "",
|
|
18673
18791
|
"editor.record.form.license.pddl": "",
|
|
18674
18792
|
"editor.record.form.license.unknown": "Non-reconnue ou absente",
|
|
18793
|
+
"editor.record.form.metadata.title": "",
|
|
18794
|
+
"editor.record.form.record.updated": "",
|
|
18675
18795
|
"editor.record.form.resourceUpdated": "Date de dernière révision",
|
|
18676
18796
|
"editor.record.form.temporalExtents": "Étendue temporelle",
|
|
18677
18797
|
"editor.record.form.temporalExtents.addDate": "Date déterminée",
|
|
18678
18798
|
"editor.record.form.temporalExtents.addRange": "Période de temps",
|
|
18679
18799
|
"editor.record.form.temporalExtents.date": "Date concernée",
|
|
18680
18800
|
"editor.record.form.temporalExtents.range": "Période concernée",
|
|
18801
|
+
"editor.record.form.unique.identifier": "",
|
|
18681
18802
|
"editor.record.form.updateFrequency": "Fréquence de mise à jour",
|
|
18682
18803
|
"editor.record.form.updateFrequency.planned": "Ces données doivent être mise à jour régulièrement.",
|
|
18683
18804
|
"editor.record.loadError.body": "",
|
|
@@ -18761,6 +18882,10 @@ var fr = {
|
|
|
18761
18882
|
"organisations.sortBy.nameDesc": "Nom Z → A",
|
|
18762
18883
|
"organisations.sortBy.recordCountAsc": "Données 0 → 9",
|
|
18763
18884
|
"organisations.sortBy.recordCountDesc": "Données 9 → 0",
|
|
18885
|
+
"organization.details.lastPublishedDatasets": "",
|
|
18886
|
+
"organization.details.lastPublishedDatasets.searchAllButton": "",
|
|
18887
|
+
"organization.details.mailContact": "Contacter par mail",
|
|
18888
|
+
"organization.header.recordCount": "{count, plural, =0{donnée} one{donnée} other{données}}",
|
|
18764
18889
|
"pagination.nextPage": "Page suivante",
|
|
18765
18890
|
"pagination.page": "page",
|
|
18766
18891
|
"pagination.pageOf": "sur",
|
|
@@ -18798,7 +18923,7 @@ var fr = {
|
|
|
18798
18923
|
"record.metadata.preview": "Aperçu",
|
|
18799
18924
|
"record.metadata.producer": "Producteur de la donnée",
|
|
18800
18925
|
"record.metadata.publication": "Date de publication",
|
|
18801
|
-
"record.metadata.publications": "données",
|
|
18926
|
+
"record.metadata.publications": "{count, plural, =0{donnée} one{donnée} other{données}}",
|
|
18802
18927
|
"record.metadata.quality": "Qualité des métadonnées",
|
|
18803
18928
|
"record.metadata.quality.contact.failed": "Contact n'est pas renseigné",
|
|
18804
18929
|
"record.metadata.quality.contact.success": "Contact est renseigné",
|
|
@@ -18858,6 +18983,8 @@ var fr = {
|
|
|
18858
18983
|
"results.sortBy.relevancy": "Pertinence",
|
|
18859
18984
|
"search.autocomplete.error": "Les suggestions ne peuvent pas être récupérées",
|
|
18860
18985
|
"search.error.couldNotReachApi": "Problème de connexion à l'API",
|
|
18986
|
+
"search.error.organizationHasNoDataset": "Cette organisation n'a pas encore de données.",
|
|
18987
|
+
"search.error.organizationNotFound": "L'organisation n'a pas pu être trouvée.",
|
|
18861
18988
|
"search.error.receivedError": "Erreur retournée",
|
|
18862
18989
|
"search.error.recordHasnolink": "Ce dataset n'a pas encore de lien, réessayez plus tard s'il vous plaît.",
|
|
18863
18990
|
"search.error.recordNotFound": "Cette donnée n'a pu être trouvée.",
|
|
@@ -18885,9 +19012,11 @@ var fr = {
|
|
|
18885
19012
|
"search.filters.minimize": "Réduire",
|
|
18886
19013
|
"search.filters.myRecords": "Voir mes données",
|
|
18887
19014
|
"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.",
|
|
19015
|
+
"search.filters.organization": "Organisation",
|
|
18888
19016
|
"search.filters.otherRecords": "Affichage des données d'un autre utilisateur",
|
|
19017
|
+
"search.filters.producerOrg": "Producteur",
|
|
18889
19018
|
"search.filters.publicationYear": "Année de publication",
|
|
18890
|
-
"search.filters.
|
|
19019
|
+
"search.filters.publisherOrg": "Distributeur",
|
|
18891
19020
|
"search.filters.representationType": "Type de représentation",
|
|
18892
19021
|
"search.filters.resourceType": "Type de ressource",
|
|
18893
19022
|
"search.filters.standard": "Standard",
|
|
@@ -18918,9 +19047,10 @@ var next$2 = "successivo";
|
|
|
18918
19047
|
var previous$2 = "precedente";
|
|
18919
19048
|
var records$2 = "record";
|
|
18920
19049
|
var it = {
|
|
19050
|
+
"Add Layer As": "",
|
|
18921
19051
|
"button.login": "",
|
|
18922
19052
|
"catalog.figures.datasets": "{count, plural, =0{datasets} one{dataset} other{datasets}}",
|
|
18923
|
-
"catalog.figures.
|
|
19053
|
+
"catalog.figures.organizations": "{count, plural, =0{organizzazioni} one{organizzazione} other{organizzazioni}}",
|
|
18924
19054
|
"chart.aggregation.average": "media",
|
|
18925
19055
|
"chart.aggregation.count": "conteggio",
|
|
18926
19056
|
"chart.aggregation.max": "massimo",
|
|
@@ -18936,16 +19066,22 @@ var it = {
|
|
|
18936
19066
|
"chart.type.line": "grafico a linee",
|
|
18937
19067
|
"chart.type.lineSmooth": "grafico a linea liscia",
|
|
18938
19068
|
"chart.type.pie": "grafico a torta",
|
|
19069
|
+
"dashboard.catalog.allRecords": "",
|
|
19070
|
+
"dashboard.catalog.calendar": "",
|
|
19071
|
+
"dashboard.catalog.contacts": "",
|
|
19072
|
+
"dashboard.catalog.discussion": "",
|
|
19073
|
+
"dashboard.catalog.thesaurus": "",
|
|
18939
19074
|
"dashboard.createRecord": "Crea un record",
|
|
19075
|
+
"dashboard.labels.catalog": "Catalogo",
|
|
18940
19076
|
"dashboard.labels.mySpace": "Il mio spazio",
|
|
18941
19077
|
"dashboard.records.all": "Catalogo",
|
|
18942
19078
|
"dashboard.records.hasDraft": "",
|
|
18943
19079
|
"dashboard.records.myDraft": "Le mie bozze",
|
|
18944
19080
|
"dashboard.records.myLibrary": "La mia biblioteca",
|
|
18945
|
-
"dashboard.records.myOrg": "La mia organizzazione",
|
|
18946
19081
|
"dashboard.records.myRecords": "I miei dati",
|
|
18947
19082
|
"dashboard.records.publishedRecords": "dati pubblicati",
|
|
18948
19083
|
"dashboard.records.search": "Risultati per \"{searchText}\"",
|
|
19084
|
+
"dashboard.records.templates": "",
|
|
18949
19085
|
"dashboard.records.userDetail": "Nome",
|
|
18950
19086
|
"dashboard.records.userEmail": "Email",
|
|
18951
19087
|
"dashboard.records.username": "Nome utente",
|
|
@@ -18961,6 +19097,8 @@ var it = {
|
|
|
18961
19097
|
"datafeeder.datasetValidation.submitButton": "OK, i miei dati sono corretti",
|
|
18962
19098
|
"datafeeder.datasetValidation.title": "Controllare che i dati siano corretti",
|
|
18963
19099
|
"datafeeder.datasetValidation.unknown": " - ",
|
|
19100
|
+
"datafeeder.datasetValidationCsv.explicitLineNumbers": "",
|
|
19101
|
+
"datafeeder.datasetValidationCsv.lineNumbers": "",
|
|
18964
19102
|
"datafeeder.form.abstract": "Come descrivere il suo dataset?",
|
|
18965
19103
|
"datafeeder.form.datepicker": "Sa quando è stato creato il suo dataset ?",
|
|
18966
19104
|
"datafeeder.form.description": "Infine, descrivere il processo utilizzato per creare il dataset",
|
|
@@ -18988,6 +19126,7 @@ var it = {
|
|
|
18988
19126
|
"datafeeder.publishSuccess.geonetworkRecord": "Scheda di metadati",
|
|
18989
19127
|
"datafeeder.publishSuccess.illustration.title": "Completato, tutto è andato bene!",
|
|
18990
19128
|
"datafeeder.publishSuccess.mapViewer": "Visualizzatore",
|
|
19129
|
+
"datafeeder.publishSuccess.ogcFeature": "",
|
|
18991
19130
|
"datafeeder.publishSuccess.subtitle": "Visualizzare i dati:",
|
|
18992
19131
|
"datafeeder.publishSuccess.title": "Congratulazioni! \n I suoi dati sono stati pubblicati",
|
|
18993
19132
|
"datafeeder.publishSuccess.uploadAnotherData": "Caricare un altro dato",
|
|
@@ -19016,6 +19155,15 @@ var it = {
|
|
|
19016
19155
|
"datafeeder.upload.maxFileSize": "Dimensione massima: {size} MB",
|
|
19017
19156
|
"datafeeder.upload.title": "Importa i suoi dati",
|
|
19018
19157
|
"datafeeder.upload.uploadButton": "Carica",
|
|
19158
|
+
"datafeeder.validation.csv.delimiter": "",
|
|
19159
|
+
"datafeeder.validation.csv.delimiter.comma": "",
|
|
19160
|
+
"datafeeder.validation.csv.delimiter.semicolon": "",
|
|
19161
|
+
"datafeeder.validation.csv.lat.field": "",
|
|
19162
|
+
"datafeeder.validation.csv.lng.field": "",
|
|
19163
|
+
"datafeeder.validation.csv.quote.double": "",
|
|
19164
|
+
"datafeeder.validation.csv.quote.none": "",
|
|
19165
|
+
"datafeeder.validation.csv.quote.simple": "",
|
|
19166
|
+
"datafeeder.validation.csv.quoteChar": "",
|
|
19019
19167
|
"datafeeder.validation.encoding": "Codifica",
|
|
19020
19168
|
"datafeeder.validation.extent.title": "Ecco l'estensione del dataset",
|
|
19021
19169
|
"datafeeder.validation.extent.title.unknown": "Sistema di proiezione sconosciuto",
|
|
@@ -19029,7 +19177,7 @@ var it = {
|
|
|
19029
19177
|
"datahub.header.lastRecords": "Ultimi",
|
|
19030
19178
|
"datahub.header.myfavorites": "Miei preferiti",
|
|
19031
19179
|
"datahub.header.news": "Home",
|
|
19032
|
-
"datahub.header.
|
|
19180
|
+
"datahub.header.organizations": "Organizzazioni",
|
|
19033
19181
|
"datahub.header.popularRecords": "Più popolari",
|
|
19034
19182
|
"datahub.header.title.html": "<div class=\"text-white\">Tutti i dati<br>pubblici della mia organizzazione</div>",
|
|
19035
19183
|
"datahub.news.contact.contactus": "Contattateci",
|
|
@@ -19065,6 +19213,8 @@ var it = {
|
|
|
19065
19213
|
"downloads.format.unknown": "sconosciuto",
|
|
19066
19214
|
"downloads.wfs.featuretype.not.found": "Il layer non è stato trovato",
|
|
19067
19215
|
dropFile: dropFile$2,
|
|
19216
|
+
"editor.record.form.abstract": "",
|
|
19217
|
+
"editor.record.form.keywords": "",
|
|
19068
19218
|
"editor.record.form.license": "Licenza",
|
|
19069
19219
|
"editor.record.form.license.cc-by": "",
|
|
19070
19220
|
"editor.record.form.license.cc-by-sa": "",
|
|
@@ -19075,12 +19225,15 @@ var it = {
|
|
|
19075
19225
|
"editor.record.form.license.odc-by": "",
|
|
19076
19226
|
"editor.record.form.license.pddl": "",
|
|
19077
19227
|
"editor.record.form.license.unknown": "Non riconosciuta o assente",
|
|
19228
|
+
"editor.record.form.metadata.title": "",
|
|
19229
|
+
"editor.record.form.record.updated": "",
|
|
19078
19230
|
"editor.record.form.resourceUpdated": "",
|
|
19079
19231
|
"editor.record.form.temporalExtents": "",
|
|
19080
19232
|
"editor.record.form.temporalExtents.addDate": "",
|
|
19081
19233
|
"editor.record.form.temporalExtents.addRange": "",
|
|
19082
19234
|
"editor.record.form.temporalExtents.date": "",
|
|
19083
19235
|
"editor.record.form.temporalExtents.range": "",
|
|
19236
|
+
"editor.record.form.unique.identifier": "",
|
|
19084
19237
|
"editor.record.form.updateFrequency": "",
|
|
19085
19238
|
"editor.record.form.updateFrequency.planned": "",
|
|
19086
19239
|
"editor.record.loadError.body": "",
|
|
@@ -19164,6 +19317,10 @@ var it = {
|
|
|
19164
19317
|
"organisations.sortBy.nameDesc": "Nome Z → A",
|
|
19165
19318
|
"organisations.sortBy.recordCountAsc": "Dati 0 → 9",
|
|
19166
19319
|
"organisations.sortBy.recordCountDesc": "Dati 9 → 0",
|
|
19320
|
+
"organization.details.lastPublishedDatasets": "",
|
|
19321
|
+
"organization.details.lastPublishedDatasets.searchAllButton": "",
|
|
19322
|
+
"organization.details.mailContact": "",
|
|
19323
|
+
"organization.header.recordCount": "{count, plural, =0{} one{} other{}}",
|
|
19167
19324
|
"pagination.nextPage": "Pagina successiva",
|
|
19168
19325
|
"pagination.page": "pagina",
|
|
19169
19326
|
"pagination.pageOf": "di",
|
|
@@ -19201,7 +19358,7 @@ var it = {
|
|
|
19201
19358
|
"record.metadata.preview": "Anteprima",
|
|
19202
19359
|
"record.metadata.producer": "Produttore dei dati",
|
|
19203
19360
|
"record.metadata.publication": "Data di pubblicazione",
|
|
19204
|
-
"record.metadata.publications": "pubblicazioni",
|
|
19361
|
+
"record.metadata.publications": "{count, plural, =0{pubblicazione} one{pubblicazione} other{pubblicazioni}}",
|
|
19205
19362
|
"record.metadata.quality": "Qualità dei metadati",
|
|
19206
19363
|
"record.metadata.quality.contact.failed": "Il contatto non è specificato",
|
|
19207
19364
|
"record.metadata.quality.contact.success": "Il contatto è specificato",
|
|
@@ -19261,6 +19418,8 @@ var it = {
|
|
|
19261
19418
|
"results.sortBy.relevancy": "Rilevanza",
|
|
19262
19419
|
"search.autocomplete.error": "Impossibile recuperare le suggerimenti",
|
|
19263
19420
|
"search.error.couldNotReachApi": "Problema di connessione all'API",
|
|
19421
|
+
"search.error.organizationHasNoDataset": "",
|
|
19422
|
+
"search.error.organizationNotFound": "",
|
|
19264
19423
|
"search.error.receivedError": "Errore ricevuto",
|
|
19265
19424
|
"search.error.recordHasnolink": "",
|
|
19266
19425
|
"search.error.recordNotFound": "Impossibile trovare questo dato",
|
|
@@ -19288,9 +19447,11 @@ var it = {
|
|
|
19288
19447
|
"search.filters.minimize": "Riduci",
|
|
19289
19448
|
"search.filters.myRecords": "Visualizza i miei dati",
|
|
19290
19449
|
"search.filters.myRecordsHelp": "Quando attivato, mostra solo i dati creati con il mio utente. I dati creati da altri utenti non sono visualizzati.",
|
|
19450
|
+
"search.filters.organization": "",
|
|
19291
19451
|
"search.filters.otherRecords": "Visualizzazione dei dati di un altro utente",
|
|
19452
|
+
"search.filters.producerOrg": "",
|
|
19292
19453
|
"search.filters.publicationYear": "Anno di pubblicazione",
|
|
19293
|
-
"search.filters.
|
|
19454
|
+
"search.filters.publisherOrg": "",
|
|
19294
19455
|
"search.filters.representationType": "Tipo di rappresentazione",
|
|
19295
19456
|
"search.filters.resourceType": "Tipo di risorsa",
|
|
19296
19457
|
"search.filters.standard": "Standard",
|
|
@@ -19321,9 +19482,10 @@ var next$1 = "";
|
|
|
19321
19482
|
var previous$1 = "";
|
|
19322
19483
|
var records$1 = "";
|
|
19323
19484
|
var nl = {
|
|
19485
|
+
"Add Layer As": "",
|
|
19324
19486
|
"button.login": "",
|
|
19325
19487
|
"catalog.figures.datasets": "datasets",
|
|
19326
|
-
"catalog.figures.
|
|
19488
|
+
"catalog.figures.organizations": "organisaties",
|
|
19327
19489
|
"chart.aggregation.average": "gemiddelde",
|
|
19328
19490
|
"chart.aggregation.count": "aantal",
|
|
19329
19491
|
"chart.aggregation.max": "max",
|
|
@@ -19339,16 +19501,22 @@ var nl = {
|
|
|
19339
19501
|
"chart.type.line": "lijndiagram",
|
|
19340
19502
|
"chart.type.lineSmooth": "glad lijndiagram",
|
|
19341
19503
|
"chart.type.pie": "cirkeldiagram",
|
|
19504
|
+
"dashboard.catalog.allRecords": "",
|
|
19505
|
+
"dashboard.catalog.calendar": "",
|
|
19506
|
+
"dashboard.catalog.contacts": "",
|
|
19507
|
+
"dashboard.catalog.discussion": "",
|
|
19508
|
+
"dashboard.catalog.thesaurus": "",
|
|
19342
19509
|
"dashboard.createRecord": "",
|
|
19510
|
+
"dashboard.labels.catalog": "Catalogus",
|
|
19343
19511
|
"dashboard.labels.mySpace": "Mijn ruimte",
|
|
19344
19512
|
"dashboard.records.all": "Catalogus",
|
|
19345
19513
|
"dashboard.records.hasDraft": "",
|
|
19346
19514
|
"dashboard.records.myDraft": "Mijn concepten",
|
|
19347
19515
|
"dashboard.records.myLibrary": "Mijn bibliotheek",
|
|
19348
|
-
"dashboard.records.myOrg": "Organisatie",
|
|
19349
19516
|
"dashboard.records.myRecords": "Mijn Records",
|
|
19350
19517
|
"dashboard.records.publishedRecords": "",
|
|
19351
19518
|
"dashboard.records.search": "Zoeken naar \"{searchText}\"",
|
|
19519
|
+
"dashboard.records.templates": "",
|
|
19352
19520
|
"dashboard.records.userDetail": "",
|
|
19353
19521
|
"dashboard.records.userEmail": "",
|
|
19354
19522
|
"dashboard.records.username": "",
|
|
@@ -19364,6 +19532,8 @@ var nl = {
|
|
|
19364
19532
|
"datafeeder.datasetValidation.submitButton": "",
|
|
19365
19533
|
"datafeeder.datasetValidation.title": "",
|
|
19366
19534
|
"datafeeder.datasetValidation.unknown": "",
|
|
19535
|
+
"datafeeder.datasetValidationCsv.explicitLineNumbers": "",
|
|
19536
|
+
"datafeeder.datasetValidationCsv.lineNumbers": "",
|
|
19367
19537
|
"datafeeder.form.abstract": "",
|
|
19368
19538
|
"datafeeder.form.datepicker": "",
|
|
19369
19539
|
"datafeeder.form.description": "",
|
|
@@ -19391,6 +19561,7 @@ var nl = {
|
|
|
19391
19561
|
"datafeeder.publishSuccess.geonetworkRecord": "",
|
|
19392
19562
|
"datafeeder.publishSuccess.illustration.title": "",
|
|
19393
19563
|
"datafeeder.publishSuccess.mapViewer": "",
|
|
19564
|
+
"datafeeder.publishSuccess.ogcFeature": "",
|
|
19394
19565
|
"datafeeder.publishSuccess.subtitle": "",
|
|
19395
19566
|
"datafeeder.publishSuccess.title": "",
|
|
19396
19567
|
"datafeeder.publishSuccess.uploadAnotherData": "",
|
|
@@ -19419,6 +19590,15 @@ var nl = {
|
|
|
19419
19590
|
"datafeeder.upload.maxFileSize": "",
|
|
19420
19591
|
"datafeeder.upload.title": "",
|
|
19421
19592
|
"datafeeder.upload.uploadButton": "",
|
|
19593
|
+
"datafeeder.validation.csv.delimiter": "",
|
|
19594
|
+
"datafeeder.validation.csv.delimiter.comma": "",
|
|
19595
|
+
"datafeeder.validation.csv.delimiter.semicolon": "",
|
|
19596
|
+
"datafeeder.validation.csv.lat.field": "",
|
|
19597
|
+
"datafeeder.validation.csv.lng.field": "",
|
|
19598
|
+
"datafeeder.validation.csv.quote.double": "",
|
|
19599
|
+
"datafeeder.validation.csv.quote.none": "",
|
|
19600
|
+
"datafeeder.validation.csv.quote.simple": "",
|
|
19601
|
+
"datafeeder.validation.csv.quoteChar": "",
|
|
19422
19602
|
"datafeeder.validation.encoding": "",
|
|
19423
19603
|
"datafeeder.validation.extent.title": "",
|
|
19424
19604
|
"datafeeder.validation.extent.title.unknown": "",
|
|
@@ -19432,7 +19612,7 @@ var nl = {
|
|
|
19432
19612
|
"datahub.header.lastRecords": "",
|
|
19433
19613
|
"datahub.header.myfavorites": "",
|
|
19434
19614
|
"datahub.header.news": "",
|
|
19435
|
-
"datahub.header.
|
|
19615
|
+
"datahub.header.organizations": "",
|
|
19436
19616
|
"datahub.header.popularRecords": "",
|
|
19437
19617
|
"datahub.header.title.html": "",
|
|
19438
19618
|
"datahub.news.contact.contactus": "",
|
|
@@ -19468,6 +19648,8 @@ var nl = {
|
|
|
19468
19648
|
"downloads.format.unknown": "",
|
|
19469
19649
|
"downloads.wfs.featuretype.not.found": "",
|
|
19470
19650
|
dropFile: dropFile$1,
|
|
19651
|
+
"editor.record.form.abstract": "",
|
|
19652
|
+
"editor.record.form.keywords": "",
|
|
19471
19653
|
"editor.record.form.license": "",
|
|
19472
19654
|
"editor.record.form.license.cc-by": "",
|
|
19473
19655
|
"editor.record.form.license.cc-by-sa": "",
|
|
@@ -19478,12 +19660,15 @@ var nl = {
|
|
|
19478
19660
|
"editor.record.form.license.odc-by": "",
|
|
19479
19661
|
"editor.record.form.license.pddl": "",
|
|
19480
19662
|
"editor.record.form.license.unknown": "",
|
|
19663
|
+
"editor.record.form.metadata.title": "",
|
|
19664
|
+
"editor.record.form.record.updated": "",
|
|
19481
19665
|
"editor.record.form.resourceUpdated": "",
|
|
19482
19666
|
"editor.record.form.temporalExtents": "",
|
|
19483
19667
|
"editor.record.form.temporalExtents.addDate": "",
|
|
19484
19668
|
"editor.record.form.temporalExtents.addRange": "",
|
|
19485
19669
|
"editor.record.form.temporalExtents.date": "",
|
|
19486
19670
|
"editor.record.form.temporalExtents.range": "",
|
|
19671
|
+
"editor.record.form.unique.identifier": "",
|
|
19487
19672
|
"editor.record.form.updateFrequency": "",
|
|
19488
19673
|
"editor.record.form.updateFrequency.planned": "",
|
|
19489
19674
|
"editor.record.loadError.body": "",
|
|
@@ -19567,6 +19752,10 @@ var nl = {
|
|
|
19567
19752
|
"organisations.sortBy.nameDesc": "",
|
|
19568
19753
|
"organisations.sortBy.recordCountAsc": "",
|
|
19569
19754
|
"organisations.sortBy.recordCountDesc": "",
|
|
19755
|
+
"organization.details.lastPublishedDatasets": "",
|
|
19756
|
+
"organization.details.lastPublishedDatasets.searchAllButton": "",
|
|
19757
|
+
"organization.details.mailContact": "",
|
|
19758
|
+
"organization.header.recordCount": "{count, plural, =0{} one{} other{}}",
|
|
19570
19759
|
"pagination.nextPage": "",
|
|
19571
19760
|
"pagination.page": "",
|
|
19572
19761
|
"pagination.pageOf": "",
|
|
@@ -19604,7 +19793,7 @@ var nl = {
|
|
|
19604
19793
|
"record.metadata.preview": "",
|
|
19605
19794
|
"record.metadata.producer": "",
|
|
19606
19795
|
"record.metadata.publication": "",
|
|
19607
|
-
"record.metadata.publications": "",
|
|
19796
|
+
"record.metadata.publications": "{count, plural, =0{} one{} other{}}",
|
|
19608
19797
|
"record.metadata.quality": "",
|
|
19609
19798
|
"record.metadata.quality.contact.failed": "",
|
|
19610
19799
|
"record.metadata.quality.contact.success": "",
|
|
@@ -19664,6 +19853,8 @@ var nl = {
|
|
|
19664
19853
|
"results.sortBy.relevancy": "",
|
|
19665
19854
|
"search.autocomplete.error": "",
|
|
19666
19855
|
"search.error.couldNotReachApi": "",
|
|
19856
|
+
"search.error.organizationHasNoDataset": "",
|
|
19857
|
+
"search.error.organizationNotFound": "",
|
|
19667
19858
|
"search.error.receivedError": "",
|
|
19668
19859
|
"search.error.recordHasnolink": "",
|
|
19669
19860
|
"search.error.recordNotFound": "",
|
|
@@ -19691,9 +19882,11 @@ var nl = {
|
|
|
19691
19882
|
"search.filters.minimize": "",
|
|
19692
19883
|
"search.filters.myRecords": "",
|
|
19693
19884
|
"search.filters.myRecordsHelp": "",
|
|
19885
|
+
"search.filters.organization": "",
|
|
19694
19886
|
"search.filters.otherRecords": "",
|
|
19887
|
+
"search.filters.producerOrg": "",
|
|
19695
19888
|
"search.filters.publicationYear": "",
|
|
19696
|
-
"search.filters.
|
|
19889
|
+
"search.filters.publisherOrg": "",
|
|
19697
19890
|
"search.filters.representationType": "",
|
|
19698
19891
|
"search.filters.resourceType": "",
|
|
19699
19892
|
"search.filters.standard": "",
|
|
@@ -19724,9 +19917,10 @@ var next = "";
|
|
|
19724
19917
|
var previous = "";
|
|
19725
19918
|
var records = "";
|
|
19726
19919
|
var pt = {
|
|
19920
|
+
"Add Layer As": "",
|
|
19727
19921
|
"button.login": "",
|
|
19728
19922
|
"catalog.figures.datasets": "conjuntos de dados",
|
|
19729
|
-
"catalog.figures.
|
|
19923
|
+
"catalog.figures.organizations": "organizações",
|
|
19730
19924
|
"chart.aggregation.average": "média",
|
|
19731
19925
|
"chart.aggregation.count": "contagem",
|
|
19732
19926
|
"chart.aggregation.max": "máximo",
|
|
@@ -19742,16 +19936,22 @@ var pt = {
|
|
|
19742
19936
|
"chart.type.line": "gráfico de linha",
|
|
19743
19937
|
"chart.type.lineSmooth": "gráfico de linha suave",
|
|
19744
19938
|
"chart.type.pie": "gráfico de pizza",
|
|
19939
|
+
"dashboard.catalog.allRecords": "",
|
|
19940
|
+
"dashboard.catalog.calendar": "",
|
|
19941
|
+
"dashboard.catalog.contacts": "",
|
|
19942
|
+
"dashboard.catalog.discussion": "",
|
|
19943
|
+
"dashboard.catalog.thesaurus": "",
|
|
19745
19944
|
"dashboard.createRecord": "",
|
|
19945
|
+
"dashboard.labels.catalog": "Catálogo",
|
|
19746
19946
|
"dashboard.labels.mySpace": "Meu espaço",
|
|
19747
19947
|
"dashboard.records.all": "Catálogo",
|
|
19748
19948
|
"dashboard.records.hasDraft": "",
|
|
19749
19949
|
"dashboard.records.myDraft": "Meus rascunhos",
|
|
19750
19950
|
"dashboard.records.myLibrary": "Minha biblioteca",
|
|
19751
|
-
"dashboard.records.myOrg": "Organização",
|
|
19752
19951
|
"dashboard.records.myRecords": "Meus Registros",
|
|
19753
19952
|
"dashboard.records.publishedRecords": "",
|
|
19754
19953
|
"dashboard.records.search": "Buscar por \"{searchText}\"",
|
|
19954
|
+
"dashboard.records.templates": "",
|
|
19755
19955
|
"dashboard.records.userDetail": "",
|
|
19756
19956
|
"dashboard.records.userEmail": "",
|
|
19757
19957
|
"dashboard.records.username": "",
|
|
@@ -19767,6 +19967,8 @@ var pt = {
|
|
|
19767
19967
|
"datafeeder.datasetValidation.submitButton": "",
|
|
19768
19968
|
"datafeeder.datasetValidation.title": "",
|
|
19769
19969
|
"datafeeder.datasetValidation.unknown": "",
|
|
19970
|
+
"datafeeder.datasetValidationCsv.explicitLineNumbers": "",
|
|
19971
|
+
"datafeeder.datasetValidationCsv.lineNumbers": "",
|
|
19770
19972
|
"datafeeder.form.abstract": "",
|
|
19771
19973
|
"datafeeder.form.datepicker": "",
|
|
19772
19974
|
"datafeeder.form.description": "",
|
|
@@ -19794,6 +19996,7 @@ var pt = {
|
|
|
19794
19996
|
"datafeeder.publishSuccess.geonetworkRecord": "",
|
|
19795
19997
|
"datafeeder.publishSuccess.illustration.title": "",
|
|
19796
19998
|
"datafeeder.publishSuccess.mapViewer": "",
|
|
19999
|
+
"datafeeder.publishSuccess.ogcFeature": "",
|
|
19797
20000
|
"datafeeder.publishSuccess.subtitle": "",
|
|
19798
20001
|
"datafeeder.publishSuccess.title": "",
|
|
19799
20002
|
"datafeeder.publishSuccess.uploadAnotherData": "",
|
|
@@ -19822,6 +20025,15 @@ var pt = {
|
|
|
19822
20025
|
"datafeeder.upload.maxFileSize": "",
|
|
19823
20026
|
"datafeeder.upload.title": "",
|
|
19824
20027
|
"datafeeder.upload.uploadButton": "",
|
|
20028
|
+
"datafeeder.validation.csv.delimiter": "",
|
|
20029
|
+
"datafeeder.validation.csv.delimiter.comma": "",
|
|
20030
|
+
"datafeeder.validation.csv.delimiter.semicolon": "",
|
|
20031
|
+
"datafeeder.validation.csv.lat.field": "",
|
|
20032
|
+
"datafeeder.validation.csv.lng.field": "",
|
|
20033
|
+
"datafeeder.validation.csv.quote.double": "",
|
|
20034
|
+
"datafeeder.validation.csv.quote.none": "",
|
|
20035
|
+
"datafeeder.validation.csv.quote.simple": "",
|
|
20036
|
+
"datafeeder.validation.csv.quoteChar": "",
|
|
19825
20037
|
"datafeeder.validation.encoding": "",
|
|
19826
20038
|
"datafeeder.validation.extent.title": "",
|
|
19827
20039
|
"datafeeder.validation.extent.title.unknown": "",
|
|
@@ -19835,7 +20047,7 @@ var pt = {
|
|
|
19835
20047
|
"datahub.header.lastRecords": "",
|
|
19836
20048
|
"datahub.header.myfavorites": "",
|
|
19837
20049
|
"datahub.header.news": "",
|
|
19838
|
-
"datahub.header.
|
|
20050
|
+
"datahub.header.organizations": "",
|
|
19839
20051
|
"datahub.header.popularRecords": "",
|
|
19840
20052
|
"datahub.header.title.html": "",
|
|
19841
20053
|
"datahub.news.contact.contactus": "",
|
|
@@ -19871,6 +20083,8 @@ var pt = {
|
|
|
19871
20083
|
"downloads.format.unknown": "",
|
|
19872
20084
|
"downloads.wfs.featuretype.not.found": "",
|
|
19873
20085
|
dropFile: dropFile,
|
|
20086
|
+
"editor.record.form.abstract": "",
|
|
20087
|
+
"editor.record.form.keywords": "",
|
|
19874
20088
|
"editor.record.form.license": "",
|
|
19875
20089
|
"editor.record.form.license.cc-by": "",
|
|
19876
20090
|
"editor.record.form.license.cc-by-sa": "",
|
|
@@ -19881,12 +20095,15 @@ var pt = {
|
|
|
19881
20095
|
"editor.record.form.license.odc-by": "",
|
|
19882
20096
|
"editor.record.form.license.pddl": "",
|
|
19883
20097
|
"editor.record.form.license.unknown": "",
|
|
20098
|
+
"editor.record.form.metadata.title": "",
|
|
20099
|
+
"editor.record.form.record.updated": "",
|
|
19884
20100
|
"editor.record.form.resourceUpdated": "",
|
|
19885
20101
|
"editor.record.form.temporalExtents": "",
|
|
19886
20102
|
"editor.record.form.temporalExtents.addDate": "",
|
|
19887
20103
|
"editor.record.form.temporalExtents.addRange": "",
|
|
19888
20104
|
"editor.record.form.temporalExtents.date": "",
|
|
19889
20105
|
"editor.record.form.temporalExtents.range": "",
|
|
20106
|
+
"editor.record.form.unique.identifier": "",
|
|
19890
20107
|
"editor.record.form.updateFrequency": "",
|
|
19891
20108
|
"editor.record.form.updateFrequency.planned": "",
|
|
19892
20109
|
"editor.record.loadError.body": "",
|
|
@@ -19970,6 +20187,10 @@ var pt = {
|
|
|
19970
20187
|
"organisations.sortBy.nameDesc": "",
|
|
19971
20188
|
"organisations.sortBy.recordCountAsc": "",
|
|
19972
20189
|
"organisations.sortBy.recordCountDesc": "",
|
|
20190
|
+
"organization.details.lastPublishedDatasets": "",
|
|
20191
|
+
"organization.details.lastPublishedDatasets.searchAllButton": "",
|
|
20192
|
+
"organization.details.mailContact": "",
|
|
20193
|
+
"organization.header.recordCount": "{count, plural, =0{} one{} other{}}",
|
|
19973
20194
|
"pagination.nextPage": "",
|
|
19974
20195
|
"pagination.page": "",
|
|
19975
20196
|
"pagination.pageOf": "",
|
|
@@ -20007,7 +20228,7 @@ var pt = {
|
|
|
20007
20228
|
"record.metadata.preview": "",
|
|
20008
20229
|
"record.metadata.producer": "",
|
|
20009
20230
|
"record.metadata.publication": "",
|
|
20010
|
-
"record.metadata.publications": "",
|
|
20231
|
+
"record.metadata.publications": "{count, plural, =0{} one{} other{}}",
|
|
20011
20232
|
"record.metadata.quality": "",
|
|
20012
20233
|
"record.metadata.quality.contact.failed": "",
|
|
20013
20234
|
"record.metadata.quality.contact.success": "",
|
|
@@ -20067,6 +20288,8 @@ var pt = {
|
|
|
20067
20288
|
"results.sortBy.relevancy": "",
|
|
20068
20289
|
"search.autocomplete.error": "",
|
|
20069
20290
|
"search.error.couldNotReachApi": "",
|
|
20291
|
+
"search.error.organizationHasNoDataset": "",
|
|
20292
|
+
"search.error.organizationNotFound": "",
|
|
20070
20293
|
"search.error.receivedError": "",
|
|
20071
20294
|
"search.error.recordHasnolink": "",
|
|
20072
20295
|
"search.error.recordNotFound": "",
|
|
@@ -20094,9 +20317,11 @@ var pt = {
|
|
|
20094
20317
|
"search.filters.minimize": "",
|
|
20095
20318
|
"search.filters.myRecords": "",
|
|
20096
20319
|
"search.filters.myRecordsHelp": "",
|
|
20320
|
+
"search.filters.organization": "",
|
|
20097
20321
|
"search.filters.otherRecords": "",
|
|
20322
|
+
"search.filters.producerOrg": "",
|
|
20098
20323
|
"search.filters.publicationYear": "",
|
|
20099
|
-
"search.filters.
|
|
20324
|
+
"search.filters.publisherOrg": "",
|
|
20100
20325
|
"search.filters.representationType": "",
|
|
20101
20326
|
"search.filters.resourceType": "",
|
|
20102
20327
|
"search.filters.standard": "",
|
|
@@ -21113,10 +21338,10 @@ class Gn4Repository {
|
|
|
21113
21338
|
saveRecord(record, referenceRecordSource) {
|
|
21114
21339
|
return this.serializeRecordToXml(record, referenceRecordSource).pipe(switchMap((recordXml) => this.gn4RecordsApi
|
|
21115
21340
|
.insert('METADATA', undefined, undefined, undefined, true, undefined, 'OVERWRITE', undefined, undefined, undefined, '_none_', undefined, undefined, undefined, recordXml)
|
|
21116
|
-
.pipe(map$1(() =>
|
|
21117
|
-
|
|
21118
|
-
|
|
21119
|
-
}));
|
|
21341
|
+
.pipe(map$1((response) => {
|
|
21342
|
+
const metadataId = Object.keys(response.metadataInfos)[0];
|
|
21343
|
+
return response.metadataInfos[metadataId][0].uuid;
|
|
21344
|
+
}))));
|
|
21120
21345
|
}
|
|
21121
21346
|
saveRecordAsDraft(record, referenceRecordSource) {
|
|
21122
21347
|
return this.serializeRecordToXml(record, referenceRecordSource).pipe(tap$1((recordXml) => window.localStorage.setItem(this.getLocalStorageKeyForRecord(record.uniqueIdentifier), recordXml)));
|
|
@@ -21127,6 +21352,15 @@ class Gn4Repository {
|
|
|
21127
21352
|
recordHasDraft(uniqueIdentifier) {
|
|
21128
21353
|
return (window.localStorage.getItem(this.getLocalStorageKeyForRecord(uniqueIdentifier)) !== null);
|
|
21129
21354
|
}
|
|
21355
|
+
// generated by copilot
|
|
21356
|
+
getAllDrafts() {
|
|
21357
|
+
const items = { ...window.localStorage };
|
|
21358
|
+
const drafts = Object.keys(items)
|
|
21359
|
+
.filter((key) => key.startsWith('geonetwork-ui-draft-'))
|
|
21360
|
+
.map((key) => window.localStorage.getItem(key))
|
|
21361
|
+
.filter((draft) => draft !== null);
|
|
21362
|
+
return from(Promise.all(drafts.map((draft) => findConverterForDocument(draft).readRecord(draft))));
|
|
21363
|
+
}
|
|
21130
21364
|
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
21365
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: Gn4Repository }); }
|
|
21132
21366
|
}
|
|
@@ -21253,9 +21487,11 @@ class OrganizationsFromMetadataService {
|
|
|
21253
21487
|
return fullOrg;
|
|
21254
21488
|
return {
|
|
21255
21489
|
...fullOrg,
|
|
21490
|
+
email: emails[0],
|
|
21256
21491
|
...(group.description && { description: group.description }),
|
|
21257
21492
|
...(group.logo && { logoUrl: getAsUrl(`${IMAGE_URL$1}${group.logo}`) }),
|
|
21258
21493
|
...(group.website && { website: getAsUrl(group.website) }),
|
|
21494
|
+
...(group.email && { email: group.email }),
|
|
21259
21495
|
};
|
|
21260
21496
|
});
|
|
21261
21497
|
}
|
|
@@ -21356,6 +21592,7 @@ class OrganizationsFromGroupsService {
|
|
|
21356
21592
|
return {
|
|
21357
21593
|
name: group.label[lang3],
|
|
21358
21594
|
...(group.description && { description: group.description }),
|
|
21595
|
+
...(group.email && { email: group.email }),
|
|
21359
21596
|
...(group.logo && {
|
|
21360
21597
|
logoUrl: getAsUrl(`${IMAGE_URL}${group.logo}`),
|
|
21361
21598
|
}),
|
|
@@ -21620,11 +21857,11 @@ class Gn4PlatformMapper {
|
|
|
21620
21857
|
userFromApi(apiUser) {
|
|
21621
21858
|
if (!apiUser)
|
|
21622
21859
|
return null;
|
|
21623
|
-
const { enabled, emailAddresses,
|
|
21860
|
+
const { enabled, emailAddresses, organization, kind, lastLoginDate, accountNonExpired, accountNonLocked, id, credentialsNonExpired, ...user } = apiUser;
|
|
21624
21861
|
return { ...apiUser, id: id.toString() };
|
|
21625
21862
|
}
|
|
21626
|
-
|
|
21627
|
-
return
|
|
21863
|
+
keywordsFromApi(keywords, thesaurus, lang3) {
|
|
21864
|
+
return keywords.map((keyword) => {
|
|
21628
21865
|
let key = keyword.uri;
|
|
21629
21866
|
// sometines GN can prefix an URI with an "all thesaurus" URI; only keep the last one
|
|
21630
21867
|
if (key.indexOf('@@@') > -1) {
|
|
@@ -21634,10 +21871,18 @@ class Gn4PlatformMapper {
|
|
|
21634
21871
|
const description = lang3 && lang3 in keyword.definitions
|
|
21635
21872
|
? keyword.definitions[lang3]
|
|
21636
21873
|
: keyword.definition;
|
|
21874
|
+
const matchedThesaurus = thesaurus.find((thes) => keyword.thesaurusKey === thes.key);
|
|
21637
21875
|
return {
|
|
21638
21876
|
key,
|
|
21639
21877
|
label,
|
|
21640
21878
|
description,
|
|
21879
|
+
type: matchedThesaurus?.dname,
|
|
21880
|
+
thesaurus: {
|
|
21881
|
+
id: matchedThesaurus?.key,
|
|
21882
|
+
name: matchedThesaurus?.title,
|
|
21883
|
+
url: new URL(matchedThesaurus?.url),
|
|
21884
|
+
type: matchedThesaurus?.dname,
|
|
21885
|
+
},
|
|
21641
21886
|
};
|
|
21642
21887
|
});
|
|
21643
21888
|
}
|
|
@@ -21683,7 +21928,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
21683
21928
|
|
|
21684
21929
|
const minApiVersion = '4.2.2';
|
|
21685
21930
|
class Gn4PlatformService {
|
|
21686
|
-
constructor(siteApiService, meApi, usersApi, mapper, toolsApiService, registriesApiService, langService, userfeedbackApiService) {
|
|
21931
|
+
constructor(siteApiService, meApi, usersApi, mapper, toolsApiService, registriesApiService, langService, userfeedbackApiService, httpClient) {
|
|
21687
21932
|
this.siteApiService = siteApiService;
|
|
21688
21933
|
this.meApi = meApi;
|
|
21689
21934
|
this.usersApi = usersApi;
|
|
@@ -21692,6 +21937,7 @@ class Gn4PlatformService {
|
|
|
21692
21937
|
this.registriesApiService = registriesApiService;
|
|
21693
21938
|
this.langService = langService;
|
|
21694
21939
|
this.userfeedbackApiService = userfeedbackApiService;
|
|
21940
|
+
this.httpClient = httpClient;
|
|
21695
21941
|
this.type = 'GeoNetwork';
|
|
21696
21942
|
this.keyTranslations$ = this.toolsApiService
|
|
21697
21943
|
.getTranslationsPackage1('gnui')
|
|
@@ -21709,7 +21955,12 @@ class Gn4PlatformService {
|
|
|
21709
21955
|
* A map of already loaded thesauri (groups of keywords); the key is a URI
|
|
21710
21956
|
* @private
|
|
21711
21957
|
*/
|
|
21712
|
-
this.
|
|
21958
|
+
this.keywordsByThesauri = {};
|
|
21959
|
+
this.allThesaurus$ = this.httpClient
|
|
21960
|
+
.get(`${this.registriesApiService.configuration.basePath}/thesaurus?_content_type=json`)
|
|
21961
|
+
.pipe(map$1((thesaurus) => {
|
|
21962
|
+
return thesaurus[0];
|
|
21963
|
+
}), shareReplay(1));
|
|
21713
21964
|
this.me$ = this.meApi.getMe().pipe(switchMap((apiUser) => this.mapper.userFromMeApi(apiUser)), shareReplay({ bufferSize: 1, refCount: true }));
|
|
21714
21965
|
this.isUserAnonymous$ = this.me$.pipe(map$1((user) => !user || !('id' in user)));
|
|
21715
21966
|
this.users$ = this.usersApi.getUsers().pipe(map$1((users) => users.map((user) => this.mapper.userFromApi(user))), shareReplay());
|
|
@@ -21741,7 +21992,7 @@ class Gn4PlatformService {
|
|
|
21741
21992
|
// the thesaurus URI is inferred by removing a part of the keyword URI
|
|
21742
21993
|
// this is not exact science but it's OK, we'll still end up loading a bunch of keywords at once anyway
|
|
21743
21994
|
const thesaurusUri = key.replace(/\/([^/]+)$/, '/');
|
|
21744
|
-
return this.
|
|
21995
|
+
return this.getKeywordsByUri(thesaurusUri).pipe(map$1((thesaurus) => {
|
|
21745
21996
|
for (const item of thesaurus) {
|
|
21746
21997
|
if (item.key === key)
|
|
21747
21998
|
return item.label;
|
|
@@ -21751,14 +22002,30 @@ class Gn4PlatformService {
|
|
|
21751
22002
|
}
|
|
21752
22003
|
return this.keyTranslations$.pipe(map$1((translations) => translations[key]));
|
|
21753
22004
|
}
|
|
21754
|
-
|
|
21755
|
-
|
|
21756
|
-
|
|
22005
|
+
searchKeywords(query, keywordTypes) {
|
|
22006
|
+
const keywords$ = this.allThesaurus$.pipe(switchMap((thesaurus) => {
|
|
22007
|
+
const selectedThesauri = [];
|
|
22008
|
+
keywordTypes.map((keywordType) => {
|
|
22009
|
+
selectedThesauri.push(...thesaurus.filter((thes) => thes.dname === keywordType));
|
|
22010
|
+
});
|
|
22011
|
+
return this.registriesApiService.searchKeywords(query, this.langService.iso3, 10, 0, null, selectedThesauri.map((thes) => thes.key), null, `*${query}*`);
|
|
22012
|
+
}));
|
|
22013
|
+
return combineLatest([keywords$, this.allThesaurus$]).pipe(map$1(([keywords, thesaurus]) => {
|
|
22014
|
+
return this.mapper.keywordsFromApi(keywords, thesaurus, this.langService.iso3);
|
|
22015
|
+
}));
|
|
22016
|
+
}
|
|
22017
|
+
getKeywordsByUri(uri) {
|
|
22018
|
+
if (this.keywordsByThesauri[uri]) {
|
|
22019
|
+
return this.keywordsByThesauri[uri];
|
|
21757
22020
|
}
|
|
21758
|
-
|
|
21759
|
-
|
|
21760
|
-
|
|
21761
|
-
|
|
22021
|
+
const keywords$ = this.registriesApiService.searchKeywords(null, this.langService.iso3, 1000, 0, null, null, null, `${uri}*`);
|
|
22022
|
+
this.keywordsByThesauri[uri] = combineLatest([
|
|
22023
|
+
keywords$,
|
|
22024
|
+
this.allThesaurus$,
|
|
22025
|
+
]).pipe(map$1(([keywords, thesaurus]) => {
|
|
22026
|
+
return this.mapper.keywordsFromApi(keywords, thesaurus, this.langService.iso3);
|
|
22027
|
+
}), shareReplay(1));
|
|
22028
|
+
return this.keywordsByThesauri[uri];
|
|
21762
22029
|
}
|
|
21763
22030
|
getUserFeedbacks(uuid) {
|
|
21764
22031
|
return this.userfeedbackApiService.getUserComments(uuid).pipe(map$1((userFeedbacks) => userFeedbacks.map(this.mapper.userFeedbacksFromApi)), catchError((error) => {
|
|
@@ -21773,12 +22040,12 @@ class Gn4PlatformService {
|
|
|
21773
22040
|
return of(undefined);
|
|
21774
22041
|
}));
|
|
21775
22042
|
}
|
|
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 }); }
|
|
22043
|
+
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
22044
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: Gn4PlatformService }); }
|
|
21778
22045
|
}
|
|
21779
22046
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: Gn4PlatformService, decorators: [{
|
|
21780
22047
|
type: Injectable
|
|
21781
|
-
}], ctorParameters: function () { return [{ type: SiteApiService }, { type: MeApiService }, { type: UsersApiService }, { type: Gn4PlatformMapper }, { type: ToolsApiService }, { type: RegistriesApiService }, { type: LangService }, { type: UserfeedbackApiService }]; } });
|
|
22048
|
+
}], ctorParameters: function () { return [{ type: SiteApiService }, { type: MeApiService }, { type: UsersApiService }, { type: Gn4PlatformMapper }, { type: ToolsApiService }, { type: RegistriesApiService }, { type: LangService }, { type: UserfeedbackApiService }, { type: i1.HttpClient }]; } });
|
|
21782
22049
|
|
|
21783
22050
|
function provideGn4() {
|
|
21784
22051
|
return [
|
|
@@ -24244,6 +24511,185 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
24244
24511
|
type: Input
|
|
24245
24512
|
}] } });
|
|
24246
24513
|
|
|
24514
|
+
class ColorScaleComponent {
|
|
24515
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColorScaleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
24516
|
+
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: [""] }); }
|
|
24517
|
+
}
|
|
24518
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColorScaleComponent, decorators: [{
|
|
24519
|
+
type: Component,
|
|
24520
|
+
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" }]
|
|
24521
|
+
}] });
|
|
24522
|
+
|
|
24523
|
+
class ProgressBarComponent {
|
|
24524
|
+
constructor() {
|
|
24525
|
+
this.value = 0;
|
|
24526
|
+
this.type = 'default';
|
|
24527
|
+
}
|
|
24528
|
+
get progress() {
|
|
24529
|
+
return this.value > 0 ? (this.value < 100 ? this.value : 100) : 0;
|
|
24530
|
+
}
|
|
24531
|
+
get color() {
|
|
24532
|
+
switch (this.type) {
|
|
24533
|
+
case 'default':
|
|
24534
|
+
return {
|
|
24535
|
+
outerBar: 'bg-gray-200',
|
|
24536
|
+
innerBar: 'bg-gray-100',
|
|
24537
|
+
text: 'text-gray-900',
|
|
24538
|
+
};
|
|
24539
|
+
case 'primary':
|
|
24540
|
+
return {
|
|
24541
|
+
outerBar: 'bg-primary',
|
|
24542
|
+
innerBar: 'bg-primary-lighter',
|
|
24543
|
+
text: 'text-white',
|
|
24544
|
+
};
|
|
24545
|
+
case 'secondary':
|
|
24546
|
+
return {
|
|
24547
|
+
outerBar: 'bg-secondary',
|
|
24548
|
+
innerBar: 'bg-secondary-lighter',
|
|
24549
|
+
text: 'text-white',
|
|
24550
|
+
};
|
|
24551
|
+
}
|
|
24552
|
+
}
|
|
24553
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ProgressBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
24554
|
+
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"] }); }
|
|
24555
|
+
}
|
|
24556
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ProgressBarComponent, decorators: [{
|
|
24557
|
+
type: Component,
|
|
24558
|
+
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"] }]
|
|
24559
|
+
}], propDecorators: { value: [{
|
|
24560
|
+
type: Input
|
|
24561
|
+
}], type: [{
|
|
24562
|
+
type: Input
|
|
24563
|
+
}] } });
|
|
24564
|
+
|
|
24565
|
+
class StepBarComponent {
|
|
24566
|
+
constructor(cdr) {
|
|
24567
|
+
this.cdr = cdr;
|
|
24568
|
+
this.currentStep = 1;
|
|
24569
|
+
this.type = 'default';
|
|
24570
|
+
}
|
|
24571
|
+
get stepCounter() {
|
|
24572
|
+
return new Array(this.steps);
|
|
24573
|
+
}
|
|
24574
|
+
get color() {
|
|
24575
|
+
switch (this.type) {
|
|
24576
|
+
case 'default':
|
|
24577
|
+
return {
|
|
24578
|
+
outerBar: 'bg-gray-200',
|
|
24579
|
+
innerBar: 'bg-gray-100',
|
|
24580
|
+
};
|
|
24581
|
+
case 'primary':
|
|
24582
|
+
return {
|
|
24583
|
+
outerBar: 'bg-primary',
|
|
24584
|
+
innerBar: 'bg-primary-lighter',
|
|
24585
|
+
};
|
|
24586
|
+
case 'secondary':
|
|
24587
|
+
return {
|
|
24588
|
+
outerBar: 'bg-secondary',
|
|
24589
|
+
innerBar: 'bg-secondary-lighter',
|
|
24590
|
+
};
|
|
24591
|
+
}
|
|
24592
|
+
}
|
|
24593
|
+
getCircleColor(index) {
|
|
24594
|
+
return index === this.currentStep
|
|
24595
|
+
? 'bg-black'
|
|
24596
|
+
: index < this.currentStep
|
|
24597
|
+
? 'bg-white'
|
|
24598
|
+
: this.color.innerBar;
|
|
24599
|
+
}
|
|
24600
|
+
getChecked(index) {
|
|
24601
|
+
return index + 1 < this.currentStep;
|
|
24602
|
+
}
|
|
24603
|
+
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 }); }
|
|
24604
|
+
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"] }] }); }
|
|
24605
|
+
}
|
|
24606
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: StepBarComponent, decorators: [{
|
|
24607
|
+
type: Component,
|
|
24608
|
+
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"] }]
|
|
24609
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { steps: [{
|
|
24610
|
+
type: Input
|
|
24611
|
+
}], currentStep: [{
|
|
24612
|
+
type: Input
|
|
24613
|
+
}], type: [{
|
|
24614
|
+
type: Input
|
|
24615
|
+
}] } });
|
|
24616
|
+
|
|
24617
|
+
class LoadingMaskComponent {
|
|
24618
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LoadingMaskComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
24619
|
+
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 }); }
|
|
24620
|
+
}
|
|
24621
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LoadingMaskComponent, decorators: [{
|
|
24622
|
+
type: Component,
|
|
24623
|
+
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"] }]
|
|
24624
|
+
}], propDecorators: { message: [{
|
|
24625
|
+
type: Input
|
|
24626
|
+
}] } });
|
|
24627
|
+
|
|
24628
|
+
class SpinningLoaderComponent {
|
|
24629
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpinningLoaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
24630
|
+
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: [""] }); }
|
|
24631
|
+
}
|
|
24632
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpinningLoaderComponent, decorators: [{
|
|
24633
|
+
type: Component,
|
|
24634
|
+
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" }]
|
|
24635
|
+
}] });
|
|
24636
|
+
|
|
24637
|
+
class UiWidgetsModule {
|
|
24638
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UiWidgetsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
24639
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: UiWidgetsModule, declarations: [ColorScaleComponent,
|
|
24640
|
+
ProgressBarComponent,
|
|
24641
|
+
StepBarComponent,
|
|
24642
|
+
LoadingMaskComponent,
|
|
24643
|
+
SpinningLoaderComponent], imports: [CommonModule, i1$1.TranslateModule, NgxDropzoneModule,
|
|
24644
|
+
FormsModule,
|
|
24645
|
+
ReactiveFormsModule,
|
|
24646
|
+
TagInputModule,
|
|
24647
|
+
UtilSharedModule,
|
|
24648
|
+
MatProgressSpinnerModule,
|
|
24649
|
+
MatIconModule], exports: [ProgressBarComponent,
|
|
24650
|
+
StepBarComponent,
|
|
24651
|
+
LoadingMaskComponent,
|
|
24652
|
+
SpinningLoaderComponent] }); }
|
|
24653
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UiWidgetsModule, imports: [CommonModule,
|
|
24654
|
+
TranslateModule.forChild(),
|
|
24655
|
+
NgxDropzoneModule,
|
|
24656
|
+
FormsModule,
|
|
24657
|
+
ReactiveFormsModule,
|
|
24658
|
+
TagInputModule,
|
|
24659
|
+
UtilSharedModule,
|
|
24660
|
+
MatProgressSpinnerModule,
|
|
24661
|
+
MatIconModule] }); }
|
|
24662
|
+
}
|
|
24663
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UiWidgetsModule, decorators: [{
|
|
24664
|
+
type: NgModule,
|
|
24665
|
+
args: [{
|
|
24666
|
+
declarations: [
|
|
24667
|
+
ColorScaleComponent,
|
|
24668
|
+
ProgressBarComponent,
|
|
24669
|
+
StepBarComponent,
|
|
24670
|
+
LoadingMaskComponent,
|
|
24671
|
+
SpinningLoaderComponent,
|
|
24672
|
+
],
|
|
24673
|
+
imports: [
|
|
24674
|
+
CommonModule,
|
|
24675
|
+
TranslateModule.forChild(),
|
|
24676
|
+
NgxDropzoneModule,
|
|
24677
|
+
FormsModule,
|
|
24678
|
+
ReactiveFormsModule,
|
|
24679
|
+
TagInputModule,
|
|
24680
|
+
UtilSharedModule,
|
|
24681
|
+
MatProgressSpinnerModule,
|
|
24682
|
+
MatIconModule,
|
|
24683
|
+
],
|
|
24684
|
+
exports: [
|
|
24685
|
+
ProgressBarComponent,
|
|
24686
|
+
StepBarComponent,
|
|
24687
|
+
LoadingMaskComponent,
|
|
24688
|
+
SpinningLoaderComponent,
|
|
24689
|
+
],
|
|
24690
|
+
}]
|
|
24691
|
+
}] });
|
|
24692
|
+
|
|
24247
24693
|
class PopupAlertComponent {
|
|
24248
24694
|
constructor(changeDetector) {
|
|
24249
24695
|
this.changeDetector = changeDetector;
|
|
@@ -24274,11 +24720,11 @@ class PopupAlertComponent {
|
|
|
24274
24720
|
}, this.showDuration);
|
|
24275
24721
|
}
|
|
24276
24722
|
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 }); }
|
|
24723
|
+
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
24724
|
}
|
|
24279
24725
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PopupAlertComponent, decorators: [{
|
|
24280
24726
|
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"] }]
|
|
24727
|
+
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
24728
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { icon: [{
|
|
24283
24729
|
type: Input
|
|
24284
24730
|
}], type: [{
|
|
@@ -24295,37 +24741,59 @@ class AutocompleteComponent {
|
|
|
24295
24741
|
this.cdRef = cdRef;
|
|
24296
24742
|
this.clearOnSelection = false;
|
|
24297
24743
|
this.autoFocus = false;
|
|
24744
|
+
this.minCharacterCount = 3;
|
|
24745
|
+
this.allowSubmit = true;
|
|
24298
24746
|
this.itemSelected = new EventEmitter();
|
|
24299
24747
|
this.inputSubmitted = new EventEmitter();
|
|
24300
24748
|
this.inputCleared = new EventEmitter();
|
|
24301
24749
|
this.control = new UntypedFormControl();
|
|
24302
|
-
this.subscription = new Subscription();
|
|
24303
24750
|
this.cancelEnter = true;
|
|
24304
24751
|
this.selectionSubject = new ReplaySubject(1);
|
|
24305
24752
|
this.lastInputValue$ = new ReplaySubject(1);
|
|
24306
24753
|
this.error = null;
|
|
24307
|
-
this.
|
|
24754
|
+
this.subscription = new Subscription();
|
|
24755
|
+
this.displayWithFn = (item) => item.toString();
|
|
24756
|
+
this.displayWithFnInternal = (item) => {
|
|
24757
|
+
if (item === null || item === undefined)
|
|
24758
|
+
return null;
|
|
24759
|
+
return this.displayWithFn(item);
|
|
24760
|
+
};
|
|
24308
24761
|
}
|
|
24309
24762
|
ngOnChanges(changes) {
|
|
24310
24763
|
const { value } = changes;
|
|
24311
24764
|
if (value) {
|
|
24312
|
-
const previousTextValue = this.
|
|
24313
|
-
const currentTextValue = this.
|
|
24765
|
+
const previousTextValue = this.displayWithFnInternal(value.previousValue);
|
|
24766
|
+
const currentTextValue = this.displayWithFnInternal(value.currentValue);
|
|
24314
24767
|
if (previousTextValue !== currentTextValue) {
|
|
24315
24768
|
this.updateInputValue(value.currentValue);
|
|
24316
24769
|
}
|
|
24317
24770
|
}
|
|
24318
24771
|
}
|
|
24319
24772
|
ngOnInit() {
|
|
24320
|
-
|
|
24773
|
+
const newValue$ = merge(of(''), this.inputCleared.pipe(map$1(() => '')), this.control.valueChanges.pipe(filter((value) => typeof value === 'string'), distinctUntilChanged(), debounceTime(400)));
|
|
24774
|
+
const externalValueChange$ = this.control.valueChanges.pipe(filter((value) => typeof value === 'object' && value.title), map$1((item) => item.title));
|
|
24775
|
+
// this observable emits arrays of suggestions loaded using the given action
|
|
24776
|
+
const suggestionsFromAction = merge(newValue$.pipe(filter((value) => value.length >= this.minCharacterCount)), externalValueChange$).pipe(tap$1(() => {
|
|
24777
|
+
this.searching = true;
|
|
24778
|
+
this.error = null;
|
|
24779
|
+
}), switchMap$1((value) => this.action(value)), catchError((error) => {
|
|
24321
24780
|
this.error = error.message;
|
|
24322
24781
|
return of([]);
|
|
24323
24782
|
}), finalize(() => (this.searching = false)));
|
|
24324
|
-
this.
|
|
24783
|
+
this.suggestions$ = merge(suggestionsFromAction,
|
|
24784
|
+
// if a new value is under the min char count, clear suggestions
|
|
24785
|
+
newValue$.pipe(filter((value) => value.length < this.minCharacterCount), map$1(() => [])));
|
|
24786
|
+
// close the panel whenever suggestions are cleared
|
|
24787
|
+
this.subscription.add(this.suggestions$
|
|
24788
|
+
.pipe(filter((suggestions) => suggestions.length === 0))
|
|
24789
|
+
.subscribe(() => {
|
|
24790
|
+
this.triggerRef?.closePanel();
|
|
24791
|
+
}));
|
|
24792
|
+
this.subscription.add(this.control.valueChanges.subscribe((any) => {
|
|
24325
24793
|
if (any !== '') {
|
|
24326
24794
|
this.cancelEnter = false;
|
|
24327
24795
|
}
|
|
24328
|
-
});
|
|
24796
|
+
}));
|
|
24329
24797
|
this.control.valueChanges
|
|
24330
24798
|
.pipe(filter((value) => typeof value === 'string'))
|
|
24331
24799
|
.subscribe(this.lastInputValue$);
|
|
@@ -24338,7 +24806,7 @@ class AutocompleteComponent {
|
|
|
24338
24806
|
}
|
|
24339
24807
|
}
|
|
24340
24808
|
ngOnDestroy() {
|
|
24341
|
-
this.subscription
|
|
24809
|
+
this.subscription?.unsubscribe();
|
|
24342
24810
|
}
|
|
24343
24811
|
updateInputValue(value) {
|
|
24344
24812
|
if (value) {
|
|
@@ -24355,17 +24823,14 @@ class AutocompleteComponent {
|
|
|
24355
24823
|
.pipe(take(1))
|
|
24356
24824
|
.subscribe((selection) => selection && selection.option.deselect());
|
|
24357
24825
|
this.inputRef.nativeElement.focus();
|
|
24358
|
-
this.triggerRef.closePanel();
|
|
24359
24826
|
}
|
|
24360
24827
|
handleEnter(any) {
|
|
24361
|
-
if (!this.cancelEnter) {
|
|
24828
|
+
if (!this.cancelEnter && this.allowSubmit) {
|
|
24362
24829
|
this.inputSubmitted.emit(any);
|
|
24363
|
-
this.triggerRef.closePanel();
|
|
24364
24830
|
}
|
|
24365
24831
|
}
|
|
24366
24832
|
handleClickSearch() {
|
|
24367
24833
|
this.inputSubmitted.emit(this.inputRef.nativeElement.value);
|
|
24368
|
-
this.triggerRef.closePanel();
|
|
24369
24834
|
}
|
|
24370
24835
|
handleSelection(event) {
|
|
24371
24836
|
this.cancelEnter = true;
|
|
@@ -24377,11 +24842,18 @@ class AutocompleteComponent {
|
|
|
24377
24842
|
}
|
|
24378
24843
|
}
|
|
24379
24844
|
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
|
|
24845
|
+
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
24846
|
}
|
|
24382
24847
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AutocompleteComponent, decorators: [{
|
|
24383
24848
|
type: Component,
|
|
24384
|
-
args: [{ selector: 'gn-ui-autocomplete', changeDetection: ChangeDetectionStrategy.OnPush,
|
|
24849
|
+
args: [{ selector: 'gn-ui-autocomplete', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
24850
|
+
MatIconModule,
|
|
24851
|
+
PopupAlertComponent,
|
|
24852
|
+
MatAutocompleteModule,
|
|
24853
|
+
CommonModule,
|
|
24854
|
+
TranslateModule,
|
|
24855
|
+
ReactiveFormsModule,
|
|
24856
|
+
], 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
24857
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { placeholder: [{
|
|
24386
24858
|
type: Input
|
|
24387
24859
|
}], action: [{
|
|
@@ -24392,6 +24864,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
24392
24864
|
type: Input
|
|
24393
24865
|
}], autoFocus: [{
|
|
24394
24866
|
type: Input
|
|
24867
|
+
}], minCharacterCount: [{
|
|
24868
|
+
type: Input
|
|
24869
|
+
}], allowSubmit: [{
|
|
24870
|
+
type: Input
|
|
24395
24871
|
}], itemSelected: [{
|
|
24396
24872
|
type: Output
|
|
24397
24873
|
}], inputSubmitted: [{
|
|
@@ -24462,6 +24938,29 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
24462
24938
|
type: Output
|
|
24463
24939
|
}] } });
|
|
24464
24940
|
|
|
24941
|
+
class BadgeComponent {
|
|
24942
|
+
constructor() {
|
|
24943
|
+
this.clickable = false;
|
|
24944
|
+
this.removable = false;
|
|
24945
|
+
this.badgeRemoveClicked = new EventEmitter();
|
|
24946
|
+
}
|
|
24947
|
+
removeBadge() {
|
|
24948
|
+
this.badgeRemoveClicked.emit();
|
|
24949
|
+
}
|
|
24950
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BadgeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
24951
|
+
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 }); }
|
|
24952
|
+
}
|
|
24953
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BadgeComponent, decorators: [{
|
|
24954
|
+
type: Component,
|
|
24955
|
+
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" }]
|
|
24956
|
+
}], propDecorators: { clickable: [{
|
|
24957
|
+
type: Input
|
|
24958
|
+
}], removable: [{
|
|
24959
|
+
type: Input
|
|
24960
|
+
}], badgeRemoveClicked: [{
|
|
24961
|
+
type: Output
|
|
24962
|
+
}] } });
|
|
24963
|
+
|
|
24465
24964
|
class CheckToggleComponent {
|
|
24466
24965
|
constructor() {
|
|
24467
24966
|
this.color = 'primary';
|
|
@@ -24471,7 +24970,7 @@ class CheckToggleComponent {
|
|
|
24471
24970
|
this.toggled.emit(event);
|
|
24472
24971
|
}
|
|
24473
24972
|
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$
|
|
24973
|
+
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
24974
|
}
|
|
24476
24975
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CheckToggleComponent, decorators: [{
|
|
24477
24976
|
type: Component,
|
|
@@ -24504,7 +25003,7 @@ class CheckboxComponent {
|
|
|
24504
25003
|
this.changed.emit(this.checked);
|
|
24505
25004
|
}
|
|
24506
25005
|
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$
|
|
25006
|
+
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
25007
|
}
|
|
24509
25008
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CheckboxComponent, decorators: [{
|
|
24510
25009
|
type: Component,
|
|
@@ -24564,7 +25063,7 @@ class ChipsInputComponent {
|
|
|
24564
25063
|
this.subscription.unsubscribe();
|
|
24565
25064
|
}
|
|
24566
25065
|
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$
|
|
25066
|
+
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
25067
|
}
|
|
24569
25068
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ChipsInputComponent, decorators: [{
|
|
24570
25069
|
type: Component,
|
|
@@ -24595,7 +25094,7 @@ class CopyTextButtonComponent {
|
|
|
24595
25094
|
event.target.blur();
|
|
24596
25095
|
}
|
|
24597
25096
|
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$
|
|
25097
|
+
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
25098
|
}
|
|
24600
25099
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CopyTextButtonComponent, decorators: [{
|
|
24601
25100
|
type: Component,
|
|
@@ -24615,7 +25114,7 @@ class DatePickerComponent {
|
|
|
24615
25114
|
this.dateChange = new EventEmitter();
|
|
24616
25115
|
}
|
|
24617
25116
|
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$
|
|
25117
|
+
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
25118
|
}
|
|
24620
25119
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DatePickerComponent, decorators: [{
|
|
24621
25120
|
type: Component,
|
|
@@ -24632,7 +25131,7 @@ class DateRangePickerComponent {
|
|
|
24632
25131
|
this.endDateChange = new EventEmitter();
|
|
24633
25132
|
}
|
|
24634
25133
|
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$
|
|
25134
|
+
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
25135
|
}
|
|
24637
25136
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DateRangePickerComponent, decorators: [{
|
|
24638
25137
|
type: Component,
|
|
@@ -24664,7 +25163,7 @@ class DragAndDropFileInputComponent {
|
|
|
24664
25163
|
this.fileChange.emit(this.selectedFile);
|
|
24665
25164
|
}
|
|
24666
25165
|
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"] }] }); }
|
|
25166
|
+
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
25167
|
}
|
|
24669
25168
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DragAndDropFileInputComponent, decorators: [{
|
|
24670
25169
|
type: Component,
|
|
@@ -24822,13 +25321,13 @@ class DropdownMultiselectComponent {
|
|
|
24822
25321
|
propagateToDocumentOnly(event);
|
|
24823
25322
|
this.setFocus();
|
|
24824
25323
|
}
|
|
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$
|
|
25324
|
+
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 }); }
|
|
25325
|
+
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
25326
|
}
|
|
24828
25327
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DropdownMultiselectComponent, decorators: [{
|
|
24829
25328
|
type: Component,
|
|
24830
25329
|
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$
|
|
25330
|
+
}], ctorParameters: function () { return [{ type: i1$6.ScrollStrategyOptions }]; }, propDecorators: { title: [{
|
|
24832
25331
|
type: Input
|
|
24833
25332
|
}], choices: [{
|
|
24834
25333
|
type: Input
|
|
@@ -24992,7 +25491,7 @@ class DropdownSelectorComponent {
|
|
|
24992
25491
|
}
|
|
24993
25492
|
}
|
|
24994
25493
|
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$
|
|
25494
|
+
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
25495
|
}
|
|
24997
25496
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DropdownSelectorComponent, decorators: [{
|
|
24998
25497
|
type: Component,
|
|
@@ -25270,203 +25769,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
25270
25769
|
args: ['input']
|
|
25271
25770
|
}] } });
|
|
25272
25771
|
|
|
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
25772
|
class ViewportIntersectorComponent {
|
|
25471
25773
|
constructor(vcRef) {
|
|
25472
25774
|
this.vcRef = vcRef;
|
|
@@ -25698,7 +26000,7 @@ class ImageInputComponent {
|
|
|
25698
26000
|
});
|
|
25699
26001
|
}
|
|
25700
26002
|
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$
|
|
26003
|
+
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
26004
|
}
|
|
25703
26005
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ImageInputComponent, decorators: [{
|
|
25704
26006
|
type: Component,
|
|
@@ -25734,8 +26036,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
25734
26036
|
|
|
25735
26037
|
class UiInputsModule {
|
|
25736
26038
|
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,
|
|
26039
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: UiInputsModule, declarations: [TextInputComponent,
|
|
25739
26040
|
DragAndDropFileInputComponent,
|
|
25740
26041
|
ChipsInputComponent,
|
|
25741
26042
|
NavigationButtonComponent,
|
|
@@ -25765,8 +26066,8 @@ class UiInputsModule {
|
|
|
25765
26066
|
ImageInputComponent,
|
|
25766
26067
|
DropdownSelectorComponent,
|
|
25767
26068
|
DateRangePickerComponent,
|
|
25768
|
-
CheckToggleComponent
|
|
25769
|
-
|
|
26069
|
+
CheckToggleComponent,
|
|
26070
|
+
BadgeComponent], exports: [DropdownSelectorComponent,
|
|
25770
26071
|
ButtonComponent,
|
|
25771
26072
|
TextInputComponent,
|
|
25772
26073
|
DragAndDropFileInputComponent,
|
|
@@ -25782,7 +26083,8 @@ class UiInputsModule {
|
|
|
25782
26083
|
SearchInputComponent,
|
|
25783
26084
|
DateRangePickerComponent,
|
|
25784
26085
|
EditableLabelDirective,
|
|
25785
|
-
ImageInputComponent
|
|
26086
|
+
ImageInputComponent,
|
|
26087
|
+
BadgeComponent] }); }
|
|
25786
26088
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UiInputsModule, imports: [CommonModule,
|
|
25787
26089
|
TranslateModule.forChild(),
|
|
25788
26090
|
NgxDropzoneModule,
|
|
@@ -25803,13 +26105,13 @@ class UiInputsModule {
|
|
|
25803
26105
|
ImageInputComponent,
|
|
25804
26106
|
DropdownSelectorComponent,
|
|
25805
26107
|
DateRangePickerComponent,
|
|
25806
|
-
CheckToggleComponent
|
|
26108
|
+
CheckToggleComponent,
|
|
26109
|
+
BadgeComponent] }); }
|
|
25807
26110
|
}
|
|
25808
26111
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UiInputsModule, decorators: [{
|
|
25809
26112
|
type: NgModule,
|
|
25810
26113
|
args: [{
|
|
25811
26114
|
declarations: [
|
|
25812
|
-
AutocompleteComponent,
|
|
25813
26115
|
TextInputComponent,
|
|
25814
26116
|
DragAndDropFileInputComponent,
|
|
25815
26117
|
ChipsInputComponent,
|
|
@@ -25846,10 +26148,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
25846
26148
|
DropdownSelectorComponent,
|
|
25847
26149
|
DateRangePickerComponent,
|
|
25848
26150
|
CheckToggleComponent,
|
|
26151
|
+
BadgeComponent,
|
|
25849
26152
|
],
|
|
25850
26153
|
exports: [
|
|
25851
26154
|
DropdownSelectorComponent,
|
|
25852
|
-
AutocompleteComponent,
|
|
25853
26155
|
ButtonComponent,
|
|
25854
26156
|
TextInputComponent,
|
|
25855
26157
|
DragAndDropFileInputComponent,
|
|
@@ -25866,6 +26168,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
25866
26168
|
DateRangePickerComponent,
|
|
25867
26169
|
EditableLabelDirective,
|
|
25868
26170
|
ImageInputComponent,
|
|
26171
|
+
BadgeComponent,
|
|
25869
26172
|
],
|
|
25870
26173
|
}]
|
|
25871
26174
|
}] });
|
|
@@ -26022,7 +26325,7 @@ class FacetItemComponent {
|
|
|
26022
26325
|
this.onInvertedChange(this.inverted);
|
|
26023
26326
|
}
|
|
26024
26327
|
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$
|
|
26328
|
+
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
26329
|
}
|
|
26027
26330
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FacetItemComponent, decorators: [{
|
|
26028
26331
|
type: Component,
|
|
@@ -26755,11 +27058,11 @@ class ApiCardComponent {
|
|
|
26755
27058
|
}
|
|
26756
27059
|
}
|
|
26757
27060
|
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
|
|
27061
|
+
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
27062
|
}
|
|
26760
27063
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ApiCardComponent, decorators: [{
|
|
26761
27064
|
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
|
|
27065
|
+
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
27066
|
}], propDecorators: { link: [{
|
|
26764
27067
|
type: Input
|
|
26765
27068
|
}], currentLink: [{
|
|
@@ -26904,17 +27207,19 @@ var ErrorType;
|
|
|
26904
27207
|
ErrorType[ErrorType["RECEIVED_ERROR"] = 1] = "RECEIVED_ERROR";
|
|
26905
27208
|
ErrorType[ErrorType["RECORD_NOT_FOUND"] = 2] = "RECORD_NOT_FOUND";
|
|
26906
27209
|
ErrorType[ErrorType["DATASET_HAS_NO_LINK"] = 3] = "DATASET_HAS_NO_LINK";
|
|
27210
|
+
ErrorType[ErrorType["ORGANIZATION_HAS_NO_DATASET"] = 4] = "ORGANIZATION_HAS_NO_DATASET";
|
|
27211
|
+
ErrorType[ErrorType["ORGANIZATION_NOT_FOUND"] = 5] = "ORGANIZATION_NOT_FOUND";
|
|
26907
27212
|
})(ErrorType || (ErrorType = {}));
|
|
26908
27213
|
class ErrorComponent {
|
|
26909
27214
|
constructor() {
|
|
26910
27215
|
this.types = ErrorType;
|
|
26911
27216
|
}
|
|
26912
27217
|
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
|
|
27218
|
+
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
27219
|
}
|
|
26915
27220
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ErrorComponent, decorators: [{
|
|
26916
27221
|
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
|
|
27222
|
+
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
27223
|
}], propDecorators: { type: [{
|
|
26919
27224
|
type: Input
|
|
26920
27225
|
}], error: [{
|
|
@@ -27014,71 +27319,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
27014
27319
|
type: Output
|
|
27015
27320
|
}] } });
|
|
27016
27321
|
|
|
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
27322
|
class MetadataCatalogComponent {
|
|
27083
27323
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MetadataCatalogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27084
27324
|
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 +27393,71 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
27153
27393
|
args: ['contentDiv']
|
|
27154
27394
|
}] } });
|
|
27155
27395
|
|
|
27396
|
+
class MaxLinesComponent {
|
|
27397
|
+
constructor(cdr) {
|
|
27398
|
+
this.cdr = cdr;
|
|
27399
|
+
this.maxLines = 6;
|
|
27400
|
+
this.isExpanded = false;
|
|
27401
|
+
this.maxHeight = '';
|
|
27402
|
+
this.showToggleButton = false;
|
|
27403
|
+
}
|
|
27404
|
+
ngAfterViewInit() {
|
|
27405
|
+
this.calculateMaxHeight();
|
|
27406
|
+
this.observer = new ResizeObserver((mutations) => {
|
|
27407
|
+
mutations.forEach(() => {
|
|
27408
|
+
this.calculateMaxHeight();
|
|
27409
|
+
});
|
|
27410
|
+
});
|
|
27411
|
+
this.observer.observe(this.container.nativeElement.children[0]);
|
|
27412
|
+
}
|
|
27413
|
+
toggleDisplay() {
|
|
27414
|
+
this.isExpanded = !this.isExpanded;
|
|
27415
|
+
this.calculateMaxHeight();
|
|
27416
|
+
}
|
|
27417
|
+
calculateMaxHeight() {
|
|
27418
|
+
const containerElement = this.container.nativeElement;
|
|
27419
|
+
const contentElement = containerElement.children[0];
|
|
27420
|
+
const contentHeight = contentElement.getBoundingClientRect().height;
|
|
27421
|
+
if (contentHeight) {
|
|
27422
|
+
if (contentHeight > this.maxLines * this.getLineHeight(contentElement)) {
|
|
27423
|
+
this.showToggleButton = true;
|
|
27424
|
+
this.maxHeight = this.isExpanded
|
|
27425
|
+
? `${contentHeight}px`
|
|
27426
|
+
: `${this.maxLines * this.getLineHeight(contentElement)}px`;
|
|
27427
|
+
}
|
|
27428
|
+
else {
|
|
27429
|
+
this.showToggleButton = false;
|
|
27430
|
+
this.maxHeight = `${contentHeight}px`;
|
|
27431
|
+
}
|
|
27432
|
+
containerElement.setAttribute('style', `max-height: ${this.maxHeight}; overflow: hidden`);
|
|
27433
|
+
this.cdr.detectChanges();
|
|
27434
|
+
}
|
|
27435
|
+
}
|
|
27436
|
+
getLineHeight(element) {
|
|
27437
|
+
const computedStyle = window.getComputedStyle(element);
|
|
27438
|
+
const lineHeight = parseFloat(computedStyle.lineHeight);
|
|
27439
|
+
const fontSize = parseFloat(computedStyle.fontSize || '14');
|
|
27440
|
+
const result = isNaN(lineHeight) ? fontSize * 1.2 : lineHeight; // Use a default if line height is not specified
|
|
27441
|
+
return result;
|
|
27442
|
+
}
|
|
27443
|
+
ngOnDestroy() {
|
|
27444
|
+
if (!this.observer)
|
|
27445
|
+
return;
|
|
27446
|
+
this.observer.unobserve(this.container.nativeElement.children[0]);
|
|
27447
|
+
}
|
|
27448
|
+
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 }); }
|
|
27449
|
+
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 }); }
|
|
27450
|
+
}
|
|
27451
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MaxLinesComponent, decorators: [{
|
|
27452
|
+
type: Component,
|
|
27453
|
+
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" }]
|
|
27454
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { maxLines: [{
|
|
27455
|
+
type: Input
|
|
27456
|
+
}], container: [{
|
|
27457
|
+
type: ViewChild,
|
|
27458
|
+
args: ['container']
|
|
27459
|
+
}] } });
|
|
27460
|
+
|
|
27156
27461
|
/* eslint-disable @angular-eslint/directive-selector */
|
|
27157
27462
|
class GnUiLinkifyDirective {
|
|
27158
27463
|
constructor(el, renderer) {
|
|
@@ -27292,7 +27597,7 @@ class MetadataInfoComponent {
|
|
|
27292
27597
|
this.keyword.emit(keyword);
|
|
27293
27598
|
}
|
|
27294
27599
|
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 }); }
|
|
27600
|
+
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
27601
|
}
|
|
27297
27602
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MetadataInfoComponent, decorators: [{
|
|
27298
27603
|
type: Component,
|
|
@@ -27425,7 +27730,7 @@ class PaginationComponent {
|
|
|
27425
27730
|
this.setPage(this.currentPage - 1);
|
|
27426
27731
|
}
|
|
27427
27732
|
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$
|
|
27733
|
+
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
27734
|
}
|
|
27430
27735
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PaginationComponent, decorators: [{
|
|
27431
27736
|
type: Component,
|
|
@@ -27553,7 +27858,7 @@ class RecordApiFormComponent {
|
|
|
27553
27858
|
}
|
|
27554
27859
|
}
|
|
27555
27860
|
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$
|
|
27861
|
+
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
27862
|
}
|
|
27558
27863
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RecordApiFormComponent, decorators: [{
|
|
27559
27864
|
type: Component,
|
|
@@ -27563,13 +27868,32 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
27563
27868
|
}] } });
|
|
27564
27869
|
|
|
27565
27870
|
class RelatedRecordCardComponent {
|
|
27871
|
+
constructor() {
|
|
27872
|
+
this.extraClass = '';
|
|
27873
|
+
this.baseClasses = [
|
|
27874
|
+
'w-72',
|
|
27875
|
+
'h-96',
|
|
27876
|
+
'overflow-hidden',
|
|
27877
|
+
'rounded-lg',
|
|
27878
|
+
'bg-white',
|
|
27879
|
+
'cursor-pointer',
|
|
27880
|
+
'block',
|
|
27881
|
+
'hover:-translate-y-2 ',
|
|
27882
|
+
'duration-[180ms]',
|
|
27883
|
+
].join(' ');
|
|
27884
|
+
}
|
|
27885
|
+
get classList() {
|
|
27886
|
+
return `${this.baseClasses} ${this.extraClass}`;
|
|
27887
|
+
}
|
|
27566
27888
|
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=\"
|
|
27889
|
+
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
27890
|
}
|
|
27569
27891
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RelatedRecordCardComponent, decorators: [{
|
|
27570
27892
|
type: Component,
|
|
27571
|
-
args: [{ selector: 'gn-ui-related-record-card', changeDetection: ChangeDetectionStrategy.OnPush, template: "<a\n class=\"
|
|
27572
|
-
}], propDecorators: { record: [{
|
|
27893
|
+
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" }]
|
|
27894
|
+
}], ctorParameters: function () { return []; }, propDecorators: { record: [{
|
|
27895
|
+
type: Input
|
|
27896
|
+
}], extraClass: [{
|
|
27573
27897
|
type: Input
|
|
27574
27898
|
}] } });
|
|
27575
27899
|
|
|
@@ -27737,7 +28061,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
27737
28061
|
|
|
27738
28062
|
class FormFieldWrapperComponent {
|
|
27739
28063
|
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$
|
|
28064
|
+
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
28065
|
}
|
|
27742
28066
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldWrapperComponent, decorators: [{
|
|
27743
28067
|
type: Component,
|
|
@@ -27993,7 +28317,7 @@ class UserPreviewComponent {
|
|
|
27993
28317
|
return (this.user.name + ' ' + this.user.surname).trim();
|
|
27994
28318
|
}
|
|
27995
28319
|
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$
|
|
28320
|
+
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
28321
|
}
|
|
27998
28322
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UserPreviewComponent, decorators: [{
|
|
27999
28323
|
type: Component,
|
|
@@ -28126,7 +28450,6 @@ class UiElementsModule {
|
|
|
28126
28450
|
UserPreviewComponent,
|
|
28127
28451
|
GnUiLinkifyDirective,
|
|
28128
28452
|
PaginationButtonsComponent,
|
|
28129
|
-
MaxLinesComponent,
|
|
28130
28453
|
RecordApiFormComponent,
|
|
28131
28454
|
UserFeedbackItemComponent,
|
|
28132
28455
|
ImageOverlayPreviewComponent], imports: [CommonModule,
|
|
@@ -28141,7 +28464,8 @@ class UiElementsModule {
|
|
|
28141
28464
|
MarkdownParserComponent,
|
|
28142
28465
|
ThumbnailComponent,
|
|
28143
28466
|
TimeSincePipe,
|
|
28144
|
-
BadgeComponent
|
|
28467
|
+
BadgeComponent,
|
|
28468
|
+
MaxLinesComponent], exports: [MetadataInfoComponent,
|
|
28145
28469
|
ContentGhostComponent,
|
|
28146
28470
|
DownloadItemComponent,
|
|
28147
28471
|
DownloadsListComponent,
|
|
@@ -28157,7 +28481,6 @@ class UiElementsModule {
|
|
|
28157
28481
|
AvatarComponent,
|
|
28158
28482
|
UserPreviewComponent,
|
|
28159
28483
|
PaginationButtonsComponent,
|
|
28160
|
-
MaxLinesComponent,
|
|
28161
28484
|
RecordApiFormComponent,
|
|
28162
28485
|
MarkdownParserComponent,
|
|
28163
28486
|
UserFeedbackItemComponent,
|
|
@@ -28173,7 +28496,8 @@ class UiElementsModule {
|
|
|
28173
28496
|
UiInputsModule,
|
|
28174
28497
|
FormsModule,
|
|
28175
28498
|
ThumbnailComponent,
|
|
28176
|
-
BadgeComponent
|
|
28499
|
+
BadgeComponent,
|
|
28500
|
+
MaxLinesComponent] }); }
|
|
28177
28501
|
}
|
|
28178
28502
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UiElementsModule, decorators: [{
|
|
28179
28503
|
type: NgModule,
|
|
@@ -28194,6 +28518,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
28194
28518
|
ThumbnailComponent,
|
|
28195
28519
|
TimeSincePipe,
|
|
28196
28520
|
BadgeComponent,
|
|
28521
|
+
MaxLinesComponent,
|
|
28197
28522
|
],
|
|
28198
28523
|
declarations: [
|
|
28199
28524
|
MetadataInfoComponent,
|
|
@@ -28212,7 +28537,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
28212
28537
|
UserPreviewComponent,
|
|
28213
28538
|
GnUiLinkifyDirective,
|
|
28214
28539
|
PaginationButtonsComponent,
|
|
28215
|
-
MaxLinesComponent,
|
|
28216
28540
|
RecordApiFormComponent,
|
|
28217
28541
|
UserFeedbackItemComponent,
|
|
28218
28542
|
ImageOverlayPreviewComponent,
|
|
@@ -28234,7 +28558,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
28234
28558
|
AvatarComponent,
|
|
28235
28559
|
UserPreviewComponent,
|
|
28236
28560
|
PaginationButtonsComponent,
|
|
28237
|
-
MaxLinesComponent,
|
|
28238
28561
|
RecordApiFormComponent,
|
|
28239
28562
|
MarkdownParserComponent,
|
|
28240
28563
|
UserFeedbackItemComponent,
|
|
@@ -28347,6 +28670,113 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
28347
28670
|
}]
|
|
28348
28671
|
}] });
|
|
28349
28672
|
|
|
28673
|
+
class ResultsTableComponent {
|
|
28674
|
+
constructor() {
|
|
28675
|
+
this.records = [];
|
|
28676
|
+
this.selectedRecordsIdentifiers = [];
|
|
28677
|
+
this.sortOrder = null;
|
|
28678
|
+
this.recordHasDraft = () => false;
|
|
28679
|
+
// emits the column (field) as well as the order
|
|
28680
|
+
this.sortByChange = new EventEmitter();
|
|
28681
|
+
this.recordClick = new EventEmitter();
|
|
28682
|
+
this.recordsSelectedChange = new EventEmitter();
|
|
28683
|
+
}
|
|
28684
|
+
dateToString(date) {
|
|
28685
|
+
return date?.toLocaleDateString(undefined, {
|
|
28686
|
+
year: 'numeric',
|
|
28687
|
+
month: 'long',
|
|
28688
|
+
day: 'numeric',
|
|
28689
|
+
timeZone: 'UTC',
|
|
28690
|
+
});
|
|
28691
|
+
}
|
|
28692
|
+
getStatus(isPublishedToAll) {
|
|
28693
|
+
return isPublishedToAll ? 'published' : 'not published';
|
|
28694
|
+
}
|
|
28695
|
+
getRecordFormats(record) {
|
|
28696
|
+
if (record.kind === 'service' || !('distributions' in record)) {
|
|
28697
|
+
return [];
|
|
28698
|
+
}
|
|
28699
|
+
const formats = Array.from(new Set(record.distributions.map((distribution) => getFileFormat(distribution)))).filter((format) => !!format);
|
|
28700
|
+
formats.sort((a, b) => getFormatPriority(b) - getFormatPriority(a));
|
|
28701
|
+
return formats;
|
|
28702
|
+
}
|
|
28703
|
+
formatUserInfo(userInfo) {
|
|
28704
|
+
const infos = (typeof userInfo === 'string' ? userInfo : '').split('|');
|
|
28705
|
+
if (infos && infos.length === 4) {
|
|
28706
|
+
return `${infos[2]} ${infos[1]}`;
|
|
28707
|
+
}
|
|
28708
|
+
return undefined;
|
|
28709
|
+
}
|
|
28710
|
+
getBadgeColor(format) {
|
|
28711
|
+
return getBadgeColor(format);
|
|
28712
|
+
}
|
|
28713
|
+
handleRecordClick(item) {
|
|
28714
|
+
this.recordClick.emit(item);
|
|
28715
|
+
}
|
|
28716
|
+
setSortBy(col, order) {
|
|
28717
|
+
this.sortByChange.emit([col, order]);
|
|
28718
|
+
}
|
|
28719
|
+
isSortedBy(col) {
|
|
28720
|
+
if (!this.sortOrder) {
|
|
28721
|
+
return null;
|
|
28722
|
+
}
|
|
28723
|
+
const sortArray = Array.isArray(this.sortOrder[0])
|
|
28724
|
+
? this.sortOrder
|
|
28725
|
+
: [this.sortOrder];
|
|
28726
|
+
for (const sort of sortArray) {
|
|
28727
|
+
if (sort[1] === col) {
|
|
28728
|
+
return sort[0];
|
|
28729
|
+
}
|
|
28730
|
+
}
|
|
28731
|
+
return null;
|
|
28732
|
+
}
|
|
28733
|
+
isChecked(record) {
|
|
28734
|
+
return this.selectedRecordsIdentifiers.includes(record.uniqueIdentifier);
|
|
28735
|
+
}
|
|
28736
|
+
handleRecordSelectedChange(selected, record) {
|
|
28737
|
+
this.recordsSelectedChange.emit([[record], selected]);
|
|
28738
|
+
}
|
|
28739
|
+
async toggleSelectAll() {
|
|
28740
|
+
this.recordsSelectedChange.emit([this.records, !this.isAllSelected()]);
|
|
28741
|
+
}
|
|
28742
|
+
isAllSelected() {
|
|
28743
|
+
return this.records.every((record) => this.selectedRecordsIdentifiers.includes(record.uniqueIdentifier));
|
|
28744
|
+
}
|
|
28745
|
+
isSomeSelected() {
|
|
28746
|
+
const allSelected = this.records.every((record) => this.selectedRecordsIdentifiers.includes(record.uniqueIdentifier));
|
|
28747
|
+
const someSelected = this.records.some((record) => this.selectedRecordsIdentifiers.includes(record.uniqueIdentifier));
|
|
28748
|
+
return !allSelected && someSelected;
|
|
28749
|
+
}
|
|
28750
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ResultsTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
28751
|
+
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"] }] }); }
|
|
28752
|
+
}
|
|
28753
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ResultsTableComponent, decorators: [{
|
|
28754
|
+
type: Component,
|
|
28755
|
+
args: [{ selector: 'gn-ui-results-table', standalone: true, imports: [
|
|
28756
|
+
CommonModule,
|
|
28757
|
+
UiInputsModule,
|
|
28758
|
+
InteractiveTableComponent,
|
|
28759
|
+
InteractiveTableColumnComponent,
|
|
28760
|
+
MatIconModule,
|
|
28761
|
+
TranslateModule,
|
|
28762
|
+
BadgeComponent,
|
|
28763
|
+
], 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" }]
|
|
28764
|
+
}], propDecorators: { records: [{
|
|
28765
|
+
type: Input
|
|
28766
|
+
}], selectedRecordsIdentifiers: [{
|
|
28767
|
+
type: Input
|
|
28768
|
+
}], sortOrder: [{
|
|
28769
|
+
type: Input
|
|
28770
|
+
}], recordHasDraft: [{
|
|
28771
|
+
type: Input
|
|
28772
|
+
}], sortByChange: [{
|
|
28773
|
+
type: Output
|
|
28774
|
+
}], recordClick: [{
|
|
28775
|
+
type: Output
|
|
28776
|
+
}], recordsSelectedChange: [{
|
|
28777
|
+
type: Output
|
|
28778
|
+
}] } });
|
|
28779
|
+
|
|
28350
28780
|
const ADD_SEARCH = '[Search] Add search instance';
|
|
28351
28781
|
const SET_FILTERS = '[Search] Set Filters';
|
|
28352
28782
|
const SET_CONFIG_FILTERS = '[Search] Set config filters';
|
|
@@ -28884,6 +29314,9 @@ const getSearchResults = createSelector(getSearchStateSearch, (state) => state.r
|
|
|
28884
29314
|
const getSearchResultsLoading = createSelector(getSearchStateSearch, (state) => state.loadingResults);
|
|
28885
29315
|
const getSearchResultsAggregations = createSelector(getSearchStateSearch, (state) => state.results.aggregations);
|
|
28886
29316
|
const getSearchResultsHits = createSelector(getSearchStateSearch, (state) => state.results.count);
|
|
29317
|
+
const isBeginningOfResults = createSelector(getSearchStateSearch, (state) => {
|
|
29318
|
+
return state.params.currentPage === 0;
|
|
29319
|
+
});
|
|
28887
29320
|
const isEndOfResults = createSelector(getSearchStateSearch, (state) => {
|
|
28888
29321
|
return (state.params.currentPage * state.params.pageSize +
|
|
28889
29322
|
state.params.pageSize >=
|
|
@@ -28917,6 +29350,7 @@ class SearchFacade {
|
|
|
28917
29350
|
this.isLoading$ = this.store.pipe(select(getSearchResultsLoading, searchId));
|
|
28918
29351
|
this.searchFilters$ = this.store.pipe(select(getSearchFilters, searchId));
|
|
28919
29352
|
this.resultsHits$ = this.store.pipe(select(getSearchResultsHits, searchId));
|
|
29353
|
+
this.isBeginningOfResults$ = this.store.pipe(select(isBeginningOfResults, searchId));
|
|
28920
29354
|
this.isEndOfResults$ = this.store.pipe(select(isEndOfResults, searchId));
|
|
28921
29355
|
this.totalPages$ = this.store.pipe(select(totalPages, searchId));
|
|
28922
29356
|
this.currentPage$ = this.store.pipe(select(currentPage, searchId));
|
|
@@ -29324,7 +29758,7 @@ class SearchService {
|
|
|
29324
29758
|
}
|
|
29325
29759
|
updateFilters(params) {
|
|
29326
29760
|
this.facade.searchFilters$
|
|
29327
|
-
.pipe(first(), map$1((filters) => ({ ...filters, ...params })))
|
|
29761
|
+
.pipe(first$1(), map$1((filters) => ({ ...filters, ...params })))
|
|
29328
29762
|
.subscribe((filters) => this.facade.setFilters(filters));
|
|
29329
29763
|
}
|
|
29330
29764
|
setFilters(params) {
|
|
@@ -29357,7 +29791,7 @@ class FuzzySearchComponent {
|
|
|
29357
29791
|
this.autoFocus = false;
|
|
29358
29792
|
this.itemSelected = new EventEmitter();
|
|
29359
29793
|
this.inputSubmitted = new EventEmitter();
|
|
29360
|
-
this.displayWithFn = (record) => record
|
|
29794
|
+
this.displayWithFn = (record) => record.title;
|
|
29361
29795
|
this.autoCompleteAction = (query) => this.recordsRepository
|
|
29362
29796
|
.fuzzySearch(query)
|
|
29363
29797
|
.pipe(map$1((result) => result.records));
|
|
@@ -29397,7 +29831,7 @@ class FuzzySearchComponent {
|
|
|
29397
29831
|
}
|
|
29398
29832
|
}
|
|
29399
29833
|
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 }); }
|
|
29834
|
+
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
29835
|
}
|
|
29402
29836
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FuzzySearchComponent, decorators: [{
|
|
29403
29837
|
type: Component,
|
|
@@ -30113,12 +30547,14 @@ marker('search.filters.keyword');
|
|
|
30113
30547
|
marker('search.filters.isSpatial');
|
|
30114
30548
|
marker('search.filters.license');
|
|
30115
30549
|
marker('search.filters.publicationYear');
|
|
30116
|
-
marker('search.filters.
|
|
30550
|
+
marker('search.filters.organization');
|
|
30117
30551
|
marker('search.filters.representationType');
|
|
30118
30552
|
marker('search.filters.resourceType');
|
|
30119
30553
|
marker('search.filters.standard');
|
|
30120
30554
|
marker('search.filters.topic');
|
|
30121
30555
|
marker('search.filters.contact');
|
|
30556
|
+
marker('search.filters.producerOrg');
|
|
30557
|
+
marker('search.filters.publisherOrg');
|
|
30122
30558
|
class FieldsService {
|
|
30123
30559
|
get supportedFields() {
|
|
30124
30560
|
return Object.keys(this.fields);
|
|
@@ -30126,7 +30562,7 @@ class FieldsService {
|
|
|
30126
30562
|
constructor(injector) {
|
|
30127
30563
|
this.injector = injector;
|
|
30128
30564
|
this.fields = {
|
|
30129
|
-
|
|
30565
|
+
organization: new OrganizationSearchField(this.injector),
|
|
30130
30566
|
format: new SimpleSearchField('format', this.injector, 'asc'),
|
|
30131
30567
|
resourceType: new TranslatedSearchField('resourceType', this.injector, 'asc'),
|
|
30132
30568
|
representationType: new TranslatedSearchField('cl_spatialRepresentationType.key', this.injector, 'asc'),
|
|
@@ -30139,6 +30575,8 @@ class FieldsService {
|
|
|
30139
30575
|
q: new FullTextSearchField(),
|
|
30140
30576
|
license: new LicenseSearchField(this.injector),
|
|
30141
30577
|
owner: new OwnerSearchField(this.injector),
|
|
30578
|
+
producerOrg: new MultilingualSearchField('originatorOrgForResourceObject', this.injector, 'asc', 'key'),
|
|
30579
|
+
publisherOrg: new MultilingualSearchField('distributorOrgForResourceObject', this.injector, 'asc', 'key'),
|
|
30142
30580
|
};
|
|
30143
30581
|
}
|
|
30144
30582
|
getAvailableValues(fieldName) {
|
|
@@ -30225,7 +30663,8 @@ class FeatureSearchModule {
|
|
|
30225
30663
|
UiElementsModule,
|
|
30226
30664
|
FacetsModule,
|
|
30227
30665
|
MatIconModule,
|
|
30228
|
-
UiWidgetsModule
|
|
30666
|
+
UiWidgetsModule,
|
|
30667
|
+
AutocompleteComponent], exports: [SortByComponent,
|
|
30229
30668
|
ResultsLayoutComponent,
|
|
30230
30669
|
FuzzySearchComponent,
|
|
30231
30670
|
RecordsMetricsComponent,
|
|
@@ -30253,7 +30692,8 @@ class FeatureSearchModule {
|
|
|
30253
30692
|
UiElementsModule,
|
|
30254
30693
|
FacetsModule,
|
|
30255
30694
|
MatIconModule,
|
|
30256
|
-
UiWidgetsModule,
|
|
30695
|
+
UiWidgetsModule,
|
|
30696
|
+
AutocompleteComponent, FacetsModule] }); }
|
|
30257
30697
|
}
|
|
30258
30698
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FeatureSearchModule, decorators: [{
|
|
30259
30699
|
type: NgModule,
|
|
@@ -30284,6 +30724,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
30284
30724
|
FacetsModule,
|
|
30285
30725
|
MatIconModule,
|
|
30286
30726
|
UiWidgetsModule,
|
|
30727
|
+
AutocompleteComponent,
|
|
30287
30728
|
],
|
|
30288
30729
|
exports: [
|
|
30289
30730
|
SortByComponent,
|
|
@@ -30306,7 +30747,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
30306
30747
|
}]
|
|
30307
30748
|
}] });
|
|
30308
30749
|
|
|
30309
|
-
class
|
|
30750
|
+
class ResultsTableContainerComponent {
|
|
30310
30751
|
constructor(searchFacade, searchService, selectionService, recordsRepository) {
|
|
30311
30752
|
this.searchFacade = searchFacade;
|
|
30312
30753
|
this.searchService = searchService;
|
|
@@ -30315,106 +30756,29 @@ class ResultsTableComponent {
|
|
|
30315
30756
|
this.recordClick = new EventEmitter();
|
|
30316
30757
|
this.records$ = this.searchFacade.results$;
|
|
30317
30758
|
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);
|
|
30759
|
+
this.sortBy$ = this.searchFacade.sortBy$;
|
|
30760
|
+
this.hasDraft = (record) => this.recordsRepository.recordHasDraft(record.uniqueIdentifier);
|
|
30347
30761
|
}
|
|
30348
30762
|
handleRecordClick(item) {
|
|
30349
30763
|
this.recordClick.emit(item);
|
|
30350
30764
|
}
|
|
30351
|
-
|
|
30765
|
+
handleSortByChange(col, order) {
|
|
30352
30766
|
this.searchService.setSortBy([order, col]);
|
|
30353
30767
|
}
|
|
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) {
|
|
30768
|
+
handleRecordsSelectedChange(records, selected) {
|
|
30373
30769
|
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
30770
|
this.selectionService.deselectRecords(records);
|
|
30384
30771
|
}
|
|
30385
30772
|
else {
|
|
30386
30773
|
this.selectionService.selectRecords(records);
|
|
30387
30774
|
}
|
|
30388
30775
|
}
|
|
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"] }] }); }
|
|
30776
|
+
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 }); }
|
|
30777
|
+
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
30778
|
}
|
|
30407
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type:
|
|
30779
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ResultsTableContainerComponent, decorators: [{
|
|
30408
30780
|
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" }]
|
|
30781
|
+
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
30782
|
}], ctorParameters: function () { return [{ type: SearchFacade }, { type: SearchService }, { type: SelectionService }, { type: RecordsRepositoryInterface }]; }, propDecorators: { recordClick: [{
|
|
30419
30783
|
type: Output
|
|
30420
30784
|
}] } });
|
|
@@ -30716,7 +31080,7 @@ class LayersPanelComponent {
|
|
|
30716
31080
|
this.mapFacade.addLayer(layer);
|
|
30717
31081
|
}
|
|
30718
31082
|
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$
|
|
31083
|
+
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
31084
|
}
|
|
30721
31085
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LayersPanelComponent, decorators: [{
|
|
30722
31086
|
type: Component,
|
|
@@ -31230,12 +31594,9 @@ const getAddUserFeedbacksLoading = createSelector(getMdViewState, (state) => sta
|
|
|
31230
31594
|
|
|
31231
31595
|
class FigureComponent {
|
|
31232
31596
|
constructor() {
|
|
31597
|
+
this.unit = '';
|
|
31233
31598
|
this.color = 'primary';
|
|
31234
31599
|
}
|
|
31235
|
-
get hoverTitle() {
|
|
31236
|
-
return `${this.figure.toString()} ${this.unit || ''}
|
|
31237
|
-
${this.title}`;
|
|
31238
|
-
}
|
|
31239
31600
|
get textClass() {
|
|
31240
31601
|
return this.color === 'primary' ? 'text-primary' : 'text-secondary';
|
|
31241
31602
|
}
|
|
@@ -31243,11 +31604,11 @@ ${this.title}`;
|
|
|
31243
31604
|
return this.color === 'primary' ? 'bg-primary-white' : 'bg-secondary-white';
|
|
31244
31605
|
}
|
|
31245
31606
|
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
|
|
31607
|
+
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
31608
|
}
|
|
31248
31609
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FigureComponent, decorators: [{
|
|
31249
31610
|
type: Component,
|
|
31250
|
-
args: [{ selector: 'gn-ui-figure', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n
|
|
31611
|
+
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
31612
|
}], propDecorators: { icon: [{
|
|
31252
31613
|
type: Input
|
|
31253
31614
|
}], title: [{
|
|
@@ -31461,7 +31822,7 @@ class TableComponent {
|
|
|
31461
31822
|
return rowIdPrefix + id;
|
|
31462
31823
|
}
|
|
31463
31824
|
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$
|
|
31825
|
+
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
31826
|
}
|
|
31466
31827
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TableComponent, decorators: [{
|
|
31467
31828
|
type: Component,
|
|
@@ -32562,7 +32923,7 @@ class TableViewComponent {
|
|
|
32562
32923
|
this.loading = false;
|
|
32563
32924
|
}
|
|
32564
32925
|
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: "
|
|
32926
|
+
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
32927
|
}
|
|
32567
32928
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TableViewComponent, decorators: [{
|
|
32568
32929
|
type: Component,
|
|
@@ -32724,7 +33085,7 @@ class ChartViewComponent {
|
|
|
32724
33085
|
this.changeDetector.detectChanges();
|
|
32725
33086
|
}
|
|
32726
33087
|
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:
|
|
33088
|
+
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
33089
|
}
|
|
32729
33090
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ChartViewComponent, decorators: [{
|
|
32730
33091
|
type: Component,
|
|
@@ -32756,7 +33117,8 @@ class FeatureDatavizModule {
|
|
|
32756
33117
|
UiWidgetsModule,
|
|
32757
33118
|
TranslateModule,
|
|
32758
33119
|
ChartComponent,
|
|
32759
|
-
UiInputsModule
|
|
33120
|
+
UiInputsModule,
|
|
33121
|
+
PopupAlertComponent], exports: [GeoTableViewComponent,
|
|
32760
33122
|
FigureContainerComponent,
|
|
32761
33123
|
TableViewComponent,
|
|
32762
33124
|
ChartViewComponent] }); }
|
|
@@ -32767,7 +33129,8 @@ class FeatureDatavizModule {
|
|
|
32767
33129
|
TableComponent,
|
|
32768
33130
|
UiWidgetsModule,
|
|
32769
33131
|
TranslateModule,
|
|
32770
|
-
UiInputsModule
|
|
33132
|
+
UiInputsModule,
|
|
33133
|
+
PopupAlertComponent] }); }
|
|
32771
33134
|
}
|
|
32772
33135
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FeatureDatavizModule, decorators: [{
|
|
32773
33136
|
type: NgModule,
|
|
@@ -32782,6 +33145,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
32782
33145
|
TranslateModule,
|
|
32783
33146
|
ChartComponent,
|
|
32784
33147
|
UiInputsModule,
|
|
33148
|
+
PopupAlertComponent,
|
|
32785
33149
|
],
|
|
32786
33150
|
declarations: [
|
|
32787
33151
|
GeoTableViewComponent,
|
|
@@ -32823,9 +33187,7 @@ class MdViewFacade {
|
|
|
32823
33187
|
this.downloadLinks$ = this.allLinks$.pipe(map$1((links) => links.filter((link) => this.linkClassifier.hasUsage(link, LinkUsage.DOWNLOAD))));
|
|
32824
33188
|
this.dataLinks$ = this.allLinks$.pipe(map$1((links) => links.filter((link) => this.linkClassifier.hasUsage(link, LinkUsage.DATA))));
|
|
32825
33189
|
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) => {
|
|
33190
|
+
this.geoDataLinksWithGeometry$ = this.allLinks$.pipe(switchMap$1((links) => from(links).pipe(mergeMap((link) => {
|
|
32829
33191
|
if (this.linkClassifier.hasUsage(link, LinkUsage.GEODATA)) {
|
|
32830
33192
|
if (link.type === 'service' &&
|
|
32831
33193
|
link.accessServiceProtocol === 'ogcFeatures') {
|
|
@@ -32833,7 +33195,10 @@ class MdViewFacade {
|
|
|
32833
33195
|
return collectionRecords && collectionRecords.geometry
|
|
32834
33196
|
? link
|
|
32835
33197
|
: null;
|
|
32836
|
-
}), defaultIfEmpty(null))
|
|
33198
|
+
}), defaultIfEmpty(null), catchError((e) => {
|
|
33199
|
+
console.error(e);
|
|
33200
|
+
return of(null);
|
|
33201
|
+
}));
|
|
32837
33202
|
}
|
|
32838
33203
|
else {
|
|
32839
33204
|
return of(link);
|
|
@@ -32842,12 +33207,7 @@ class MdViewFacade {
|
|
|
32842
33207
|
else {
|
|
32843
33208
|
return of(null);
|
|
32844
33209
|
}
|
|
32845
|
-
}),
|
|
32846
|
-
if (val !== null && !acc.includes(val)) {
|
|
32847
|
-
acc.push(val);
|
|
32848
|
-
}
|
|
32849
|
-
return acc;
|
|
32850
|
-
}, []));
|
|
33210
|
+
}), toArray(), map$1((links) => links.filter((link) => link !== null)))));
|
|
32851
33211
|
this.landingPageLinks$ = this.metadata$.pipe(map$1((record) => ('landingPage' in record ? [record.landingPage] : [])));
|
|
32852
33212
|
this.otherLinks$ = this.allLinks$.pipe(map$1((links) => links.filter((link) => this.linkClassifier.hasUsage(link, LinkUsage.UNKNOWN))));
|
|
32853
33213
|
this.userFeedbacks$ = this.store.pipe(select(getUserFeedbacks));
|
|
@@ -33114,7 +33474,7 @@ class MapViewComponent {
|
|
|
33114
33474
|
this.selectedLinkIndex$.next(link);
|
|
33115
33475
|
}
|
|
33116
33476
|
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: "
|
|
33477
|
+
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
33478
|
}
|
|
33119
33479
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MapViewComponent, decorators: [{
|
|
33120
33480
|
type: Component,
|
|
@@ -33199,15 +33559,15 @@ class OrganisationPreviewComponent {
|
|
|
33199
33559
|
}
|
|
33200
33560
|
clickOrganisation(event) {
|
|
33201
33561
|
event.preventDefault();
|
|
33202
|
-
this.clickedOrganisation.emit(this.
|
|
33562
|
+
this.clickedOrganisation.emit(this.organization);
|
|
33203
33563
|
}
|
|
33204
33564
|
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: {
|
|
33565
|
+
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
33566
|
}
|
|
33207
33567
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OrganisationPreviewComponent, decorators: [{
|
|
33208
33568
|
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: {
|
|
33569
|
+
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"] }]
|
|
33570
|
+
}], propDecorators: { organization: [{
|
|
33211
33571
|
type: Input
|
|
33212
33572
|
}], organisationUrl: [{
|
|
33213
33573
|
type: Input
|
|
@@ -33319,7 +33679,8 @@ class UiCatalogModule {
|
|
|
33319
33679
|
LanguageSwitcherComponent,
|
|
33320
33680
|
OrganisationsResultComponent], imports: [CommonModule, i1$1.TranslateModule, UiElementsModule,
|
|
33321
33681
|
UiInputsModule,
|
|
33322
|
-
MatIconModule
|
|
33682
|
+
MatIconModule,
|
|
33683
|
+
RouterLink], exports: [CatalogTitleComponent,
|
|
33323
33684
|
OrganisationPreviewComponent,
|
|
33324
33685
|
OrganisationsFilterComponent,
|
|
33325
33686
|
LanguageSwitcherComponent,
|
|
@@ -33346,6 +33707,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
33346
33707
|
UiElementsModule,
|
|
33347
33708
|
UiInputsModule,
|
|
33348
33709
|
MatIconModule,
|
|
33710
|
+
RouterLink,
|
|
33349
33711
|
],
|
|
33350
33712
|
exports: [
|
|
33351
33713
|
CatalogTitleComponent,
|
|
@@ -33393,6 +33755,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
33393
33755
|
type: Input
|
|
33394
33756
|
}] } });
|
|
33395
33757
|
|
|
33758
|
+
// expects the replacement key ${name}
|
|
33759
|
+
const ORGANIZATION_PAGE_URL_TOKEN = new InjectionToken('organization-page-url-token');
|
|
33760
|
+
|
|
33396
33761
|
class OrganisationsComponent {
|
|
33397
33762
|
constructor(organisationsService, urlTemplate) {
|
|
33398
33763
|
this.organisationsService = organisationsService;
|
|
@@ -33464,17 +33829,17 @@ class OrganisationsComponent {
|
|
|
33464
33829
|
return null;
|
|
33465
33830
|
return this.urlTemplate.replace('${name}', organisation.name);
|
|
33466
33831
|
}
|
|
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 [
|
|
33832
|
+
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 }); }
|
|
33833
|
+
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
33834
|
}
|
|
33470
33835
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OrganisationsComponent, decorators: [{
|
|
33471
33836
|
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 [
|
|
33837
|
+
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
33838
|
}], ctorParameters: function () { return [{ type: OrganizationsServiceInterface }, { type: undefined, decorators: [{
|
|
33474
33839
|
type: Optional
|
|
33475
33840
|
}, {
|
|
33476
33841
|
type: Inject,
|
|
33477
|
-
args: [
|
|
33842
|
+
args: [ORGANIZATION_PAGE_URL_TOKEN]
|
|
33478
33843
|
}] }]; }, propDecorators: { itemsOnPage: [{
|
|
33479
33844
|
type: Input
|
|
33480
33845
|
}], orgSelect: [{
|
|
@@ -33553,9 +33918,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
33553
33918
|
class RecordsService {
|
|
33554
33919
|
constructor(recordsRepository) {
|
|
33555
33920
|
this.recordsRepository = recordsRepository;
|
|
33556
|
-
this.recordsCount$ = this.recordsRepository
|
|
33557
|
-
.getMatchesCount({})
|
|
33558
|
-
.pipe(shareReplay(1), catchError(() => of(0)));
|
|
33921
|
+
this.recordsCount$ = of(true).pipe(switchMap(() => this.recordsRepository.getMatchesCount({})), shareReplay(1));
|
|
33559
33922
|
}
|
|
33560
33923
|
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
33924
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RecordsService, providedIn: 'root' }); }
|
|
@@ -33605,37 +33968,54 @@ const GN_UI_VERSION = new InjectionToken('gnUiVersion');
|
|
|
33605
33968
|
|
|
33606
33969
|
const WEB_COMPONENT_EMBEDDER_URL = new InjectionToken('webComponentEmbedderUrl');
|
|
33607
33970
|
class DataViewPermalinkComponent {
|
|
33971
|
+
set viewType(value) {
|
|
33972
|
+
this.viewType$.next(value);
|
|
33973
|
+
}
|
|
33608
33974
|
constructor(config, wcEmbedderBaseUrl, version, facade) {
|
|
33609
33975
|
this.config = config;
|
|
33610
33976
|
this.wcEmbedderBaseUrl = wcEmbedderBaseUrl;
|
|
33611
33977
|
this.version = version;
|
|
33612
33978
|
this.facade = facade;
|
|
33979
|
+
this.viewType$ = new BehaviorSubject('map');
|
|
33613
33980
|
this.permalinkUrl$ = combineLatest([
|
|
33981
|
+
this.viewType$,
|
|
33614
33982
|
this.facade.chartConfig$,
|
|
33615
33983
|
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();
|
|
33984
|
+
]).pipe(map$2(([viewType, config, metadata]) => {
|
|
33985
|
+
const url = new URL(`${this.wcEmbedderBaseUrl}`, window.location.origin);
|
|
33986
|
+
url.searchParams.set('v', `${this.version}`);
|
|
33987
|
+
if (viewType === 'chart') {
|
|
33988
|
+
if (config) {
|
|
33989
|
+
const { aggregation, xProperty, yProperty, chartType } = config;
|
|
33990
|
+
url.searchParams.append('e', `gn-dataset-view-chart`);
|
|
33991
|
+
url.searchParams.append('a', `aggregation=${aggregation}`);
|
|
33992
|
+
url.searchParams.append('a', `x-property=${xProperty}`);
|
|
33993
|
+
url.searchParams.append('a', `y-property=${yProperty}`);
|
|
33994
|
+
url.searchParams.append('a', `chart-type=${chartType}`);
|
|
33995
|
+
}
|
|
33996
|
+
else {
|
|
33997
|
+
return '';
|
|
33998
|
+
}
|
|
33633
33999
|
}
|
|
33634
|
-
|
|
34000
|
+
else if (viewType === 'table') {
|
|
34001
|
+
// table
|
|
34002
|
+
url.searchParams.append('e', `gn-dataset-view-table`);
|
|
34003
|
+
}
|
|
34004
|
+
else {
|
|
34005
|
+
// map
|
|
34006
|
+
url.searchParams.append('e', `gn-dataset-view-map`);
|
|
34007
|
+
}
|
|
34008
|
+
url.searchParams.append('a', `api-url=${this.config.basePath}`);
|
|
34009
|
+
url.searchParams.append('a', `dataset-id=${metadata.uniqueIdentifier}`);
|
|
34010
|
+
url.searchParams.append('a', `primary-color=#0f4395`);
|
|
34011
|
+
url.searchParams.append('a', `secondary-color=#8bc832`);
|
|
34012
|
+
url.searchParams.append('a', `main-color=#555`);
|
|
34013
|
+
url.searchParams.append('a', `background-color=#fdfbff`);
|
|
34014
|
+
return url.toString();
|
|
33635
34015
|
}));
|
|
33636
34016
|
}
|
|
33637
34017
|
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 }); }
|
|
34018
|
+
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
34019
|
}
|
|
33640
34020
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataViewPermalinkComponent, decorators: [{
|
|
33641
34021
|
type: Component,
|
|
@@ -33651,37 +34031,71 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
33651
34031
|
}] }, { type: undefined, decorators: [{
|
|
33652
34032
|
type: Inject,
|
|
33653
34033
|
args: [GN_UI_VERSION]
|
|
33654
|
-
}] }, { type: MdViewFacade }]; }
|
|
34034
|
+
}] }, { type: MdViewFacade }]; }, propDecorators: { viewType: [{
|
|
34035
|
+
type: Input
|
|
34036
|
+
}] } });
|
|
33655
34037
|
|
|
33656
34038
|
class DataViewWebComponentComponent {
|
|
34039
|
+
set viewType(value) {
|
|
34040
|
+
this.viewType$.next(value);
|
|
34041
|
+
}
|
|
33657
34042
|
constructor(config, version, facade) {
|
|
33658
34043
|
this.config = config;
|
|
33659
34044
|
this.version = version;
|
|
33660
34045
|
this.facade = facade;
|
|
33661
|
-
this.
|
|
33662
|
-
|
|
33663
|
-
|
|
34046
|
+
this.viewType$ = new BehaviorSubject('map');
|
|
34047
|
+
this.webComponentHtml$ = combineLatest(this.viewType$, this.facade.chartConfig$, this.facade.metadata$).pipe(map$2(([viewType, config, metadata]) => {
|
|
34048
|
+
if (viewType === 'chart') {
|
|
34049
|
+
if (config) {
|
|
34050
|
+
const { aggregation, xProperty, yProperty, chartType } = config;
|
|
34051
|
+
return `<script src="https://cdn.jsdelivr.net/gh/geonetwork/geonetwork-ui@wc-dist-${this.version}/gn-wc.js"></script>
|
|
34052
|
+
<gn-dataset-view-chart
|
|
34053
|
+
api-url="${new URL(this.config.basePath, window.location.origin).toString()}"
|
|
34054
|
+
dataset-id="${metadata.uniqueIdentifier}"
|
|
34055
|
+
aggregation="${aggregation}"
|
|
34056
|
+
x-property="${xProperty}"
|
|
34057
|
+
y-property="${yProperty}"
|
|
34058
|
+
chart-type="${chartType}"
|
|
34059
|
+
primary-color="#0f4395"
|
|
34060
|
+
secondary-color="#8bc832"
|
|
34061
|
+
main-color="#555"
|
|
34062
|
+
background-color="#fdfbff"
|
|
34063
|
+
main-font="'Inter', sans-serif"
|
|
34064
|
+
title-font="'DM Serif Display', serif"
|
|
34065
|
+
></gn-dataset-view-chart>`;
|
|
34066
|
+
}
|
|
34067
|
+
return '';
|
|
34068
|
+
}
|
|
34069
|
+
else if (viewType === 'table') {
|
|
34070
|
+
return `<script src="https://cdn.jsdelivr.net/gh/geonetwork/geonetwork-ui@wc-dist-${this.version}/gn-wc.js"></script>
|
|
34071
|
+
<gn-dataset-view-table
|
|
34072
|
+
api-url="${new URL(this.config.basePath, window.location.origin).toString()}"
|
|
34073
|
+
dataset-id="${metadata.uniqueIdentifier}"
|
|
34074
|
+
primary-color="#0f4395"
|
|
34075
|
+
secondary-color="#8bc832"
|
|
34076
|
+
main-color="#555"
|
|
34077
|
+
background-color="#fdfbff"
|
|
34078
|
+
main-font="'Inter', sans-serif"
|
|
34079
|
+
title-font="'DM Serif Display', serif"
|
|
34080
|
+
></gn-dataset-view-table>`;
|
|
34081
|
+
}
|
|
34082
|
+
else {
|
|
33664
34083
|
return `<script src="https://cdn.jsdelivr.net/gh/geonetwork/geonetwork-ui@wc-dist-${this.version}/gn-wc.js"></script>
|
|
33665
|
-
<gn-dataset-view-
|
|
34084
|
+
<gn-dataset-view-map
|
|
33666
34085
|
api-url="${new URL(this.config.basePath, window.location.origin).toString()}"
|
|
33667
34086
|
dataset-id="${metadata.uniqueIdentifier}"
|
|
33668
|
-
aggregation="${aggregation}"
|
|
33669
|
-
x-property="${xProperty}"
|
|
33670
|
-
y-property="${yProperty}"
|
|
33671
|
-
chart-type="${chartType}"
|
|
33672
34087
|
primary-color="#0f4395"
|
|
33673
34088
|
secondary-color="#8bc832"
|
|
33674
34089
|
main-color="#555"
|
|
33675
34090
|
background-color="#fdfbff"
|
|
33676
34091
|
main-font="'Inter', sans-serif"
|
|
33677
34092
|
title-font="'DM Serif Display', serif"
|
|
33678
|
-
></gn-dataset-view-
|
|
34093
|
+
></gn-dataset-view-map>`;
|
|
33679
34094
|
}
|
|
33680
|
-
return '';
|
|
33681
34095
|
}));
|
|
33682
34096
|
}
|
|
33683
34097
|
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 }); }
|
|
34098
|
+
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
34099
|
}
|
|
33686
34100
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataViewWebComponentComponent, decorators: [{
|
|
33687
34101
|
type: Component,
|
|
@@ -33692,24 +34106,34 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
33692
34106
|
}] }, { type: undefined, decorators: [{
|
|
33693
34107
|
type: Inject,
|
|
33694
34108
|
args: [GN_UI_VERSION]
|
|
33695
|
-
}] }, { type: MdViewFacade }]; }
|
|
34109
|
+
}] }, { type: MdViewFacade }]; }, propDecorators: { viewType: [{
|
|
34110
|
+
type: Input
|
|
34111
|
+
}] } });
|
|
33696
34112
|
|
|
33697
34113
|
class DataViewShareComponent {
|
|
34114
|
+
set viewType(value) {
|
|
34115
|
+
this._viewType = value;
|
|
34116
|
+
}
|
|
34117
|
+
get viewType() {
|
|
34118
|
+
return this._viewType;
|
|
34119
|
+
}
|
|
33698
34120
|
constructor(wcEmbedderBaseUrl) {
|
|
33699
34121
|
this.wcEmbedderBaseUrl = wcEmbedderBaseUrl;
|
|
33700
34122
|
}
|
|
33701
34123
|
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$
|
|
34124
|
+
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
34125
|
}
|
|
33704
34126
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataViewShareComponent, decorators: [{
|
|
33705
34127
|
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"] }]
|
|
34128
|
+
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
34129
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
33708
34130
|
type: Optional
|
|
33709
34131
|
}, {
|
|
33710
34132
|
type: Inject,
|
|
33711
34133
|
args: [WEB_COMPONENT_EMBEDDER_URL]
|
|
33712
|
-
}] }]; }
|
|
34134
|
+
}] }]; }, propDecorators: { viewType: [{
|
|
34135
|
+
type: Input
|
|
34136
|
+
}] } });
|
|
33713
34137
|
|
|
33714
34138
|
class FeatureRecordModule {
|
|
33715
34139
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FeatureRecordModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
@@ -33729,7 +34153,8 @@ class FeatureRecordModule {
|
|
|
33729
34153
|
UiWidgetsModule,
|
|
33730
34154
|
TranslateModule,
|
|
33731
34155
|
TableComponent,
|
|
33732
|
-
FeatureDatavizModule
|
|
34156
|
+
FeatureDatavizModule,
|
|
34157
|
+
PopupAlertComponent], exports: [MapViewComponent,
|
|
33733
34158
|
DataViewComponent,
|
|
33734
34159
|
DataViewPermalinkComponent,
|
|
33735
34160
|
DataViewWebComponentComponent,
|
|
@@ -33748,7 +34173,8 @@ class FeatureRecordModule {
|
|
|
33748
34173
|
UiWidgetsModule,
|
|
33749
34174
|
TranslateModule,
|
|
33750
34175
|
TableComponent,
|
|
33751
|
-
FeatureDatavizModule
|
|
34176
|
+
FeatureDatavizModule,
|
|
34177
|
+
PopupAlertComponent] }); }
|
|
33752
34178
|
}
|
|
33753
34179
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FeatureRecordModule, decorators: [{
|
|
33754
34180
|
type: NgModule,
|
|
@@ -33777,6 +34203,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
33777
34203
|
TranslateModule,
|
|
33778
34204
|
TableComponent,
|
|
33779
34205
|
FeatureDatavizModule,
|
|
34206
|
+
PopupAlertComponent,
|
|
33780
34207
|
],
|
|
33781
34208
|
providers: [MdViewFacade],
|
|
33782
34209
|
exports: [
|
|
@@ -33795,26 +34222,27 @@ const markRecordAsChanged = createAction('[Editor] Mark record as changed');
|
|
|
33795
34222
|
const saveRecord = createAction('[Editor] Save record');
|
|
33796
34223
|
const saveRecordSuccess = createAction('[Editor] Save record success');
|
|
33797
34224
|
const saveRecordFailure = createAction('[Editor] Save record failure', props());
|
|
34225
|
+
const draftSaveSuccess = createAction('[Editor] Draft save success');
|
|
33798
34226
|
|
|
33799
34227
|
const DEFAULT_FIELDS = [
|
|
33800
34228
|
{
|
|
33801
34229
|
model: 'title',
|
|
33802
34230
|
formFieldConfig: {
|
|
33803
|
-
labelKey: '
|
|
34231
|
+
labelKey: marker('editor.record.form.metadata.title'),
|
|
33804
34232
|
type: 'text',
|
|
33805
34233
|
},
|
|
33806
34234
|
},
|
|
33807
34235
|
{
|
|
33808
34236
|
model: 'abstract',
|
|
33809
34237
|
formFieldConfig: {
|
|
33810
|
-
labelKey: '
|
|
34238
|
+
labelKey: marker('editor.record.form.abstract'),
|
|
33811
34239
|
type: 'rich',
|
|
33812
34240
|
},
|
|
33813
34241
|
},
|
|
33814
34242
|
{
|
|
33815
34243
|
model: 'uniqueIdentifier',
|
|
33816
34244
|
formFieldConfig: {
|
|
33817
|
-
labelKey: '
|
|
34245
|
+
labelKey: marker('editor.record.form.unique.identifier'),
|
|
33818
34246
|
type: 'text',
|
|
33819
34247
|
locked: true,
|
|
33820
34248
|
},
|
|
@@ -33822,7 +34250,7 @@ const DEFAULT_FIELDS = [
|
|
|
33822
34250
|
{
|
|
33823
34251
|
model: 'recordUpdated',
|
|
33824
34252
|
formFieldConfig: {
|
|
33825
|
-
labelKey: '
|
|
34253
|
+
labelKey: marker('editor.record.form.record.updated'),
|
|
33826
34254
|
type: 'text',
|
|
33827
34255
|
locked: true,
|
|
33828
34256
|
},
|
|
@@ -33856,6 +34284,13 @@ const DEFAULT_FIELDS = [
|
|
|
33856
34284
|
type: 'list',
|
|
33857
34285
|
},
|
|
33858
34286
|
},
|
|
34287
|
+
{
|
|
34288
|
+
model: 'keywords',
|
|
34289
|
+
formFieldConfig: {
|
|
34290
|
+
labelKey: marker('editor.record.form.keywords'),
|
|
34291
|
+
type: 'list',
|
|
34292
|
+
},
|
|
34293
|
+
},
|
|
33859
34294
|
];
|
|
33860
34295
|
|
|
33861
34296
|
const EDITOR_FEATURE_KEY = 'editor';
|
|
@@ -33911,7 +34346,7 @@ const selectRecordAlreadySavedOnce = createSelector(selectEditorState, (state) =
|
|
|
33911
34346
|
const selectRecordFieldsConfig = createSelector(selectEditorState, (state) => state.fieldsConfig);
|
|
33912
34347
|
const selectRecordFields = createSelector(selectEditorState, (state) => state.fieldsConfig.map((fieldConfig) => ({
|
|
33913
34348
|
config: fieldConfig,
|
|
33914
|
-
value: state.record?.[fieldConfig.model]
|
|
34349
|
+
value: state.record?.[fieldConfig.model] ?? null,
|
|
33915
34350
|
})));
|
|
33916
34351
|
|
|
33917
34352
|
class EditorFacade {
|
|
@@ -33926,6 +34361,7 @@ class EditorFacade {
|
|
|
33926
34361
|
this.saveSuccess$ = this.actions$.pipe(ofType(saveRecordSuccess));
|
|
33927
34362
|
this.changedSinceSave$ = this.store.pipe(select(selectRecordChangedSinceSave));
|
|
33928
34363
|
this.recordFields$ = this.store.pipe(select(selectRecordFields));
|
|
34364
|
+
this.draftSaveSuccess$ = this.actions$.pipe(ofType(draftSaveSuccess));
|
|
33929
34365
|
}
|
|
33930
34366
|
openRecord(record, recordSource, alreadySavedOnce) {
|
|
33931
34367
|
this.store.dispatch(openRecord({ record, recordSource, alreadySavedOnce }));
|
|
@@ -33961,7 +34397,7 @@ class EditorService {
|
|
|
33961
34397
|
this.recordsRepository = recordsRepository;
|
|
33962
34398
|
}
|
|
33963
34399
|
// returns the record as it was when saved, alongside its source
|
|
33964
|
-
saveRecord(record, fieldsConfig) {
|
|
34400
|
+
saveRecord(record, fieldsConfig, generateNewUniqueIdentifier = false) {
|
|
33965
34401
|
const savedRecord = { ...record };
|
|
33966
34402
|
// run onSave processes
|
|
33967
34403
|
for (const field of fieldsConfig) {
|
|
@@ -33973,9 +34409,14 @@ class EditorService {
|
|
|
33973
34409
|
});
|
|
33974
34410
|
}
|
|
33975
34411
|
}
|
|
33976
|
-
|
|
33977
|
-
|
|
33978
|
-
.
|
|
34412
|
+
// if we want a new unique identifier, clear the existing one
|
|
34413
|
+
if (generateNewUniqueIdentifier) {
|
|
34414
|
+
savedRecord.uniqueIdentifier = null;
|
|
34415
|
+
}
|
|
34416
|
+
return this.recordsRepository.saveRecord(savedRecord).pipe(switchMap((uniqueIdentifier) => this.recordsRepository.openRecordForEdition(uniqueIdentifier)), tap$1(() => {
|
|
34417
|
+
// if saving was successful, the original draft can be discarded
|
|
34418
|
+
this.recordsRepository.clearRecordDraft(record.uniqueIdentifier);
|
|
34419
|
+
}), map$1(([record, recordSource]) => [record, recordSource]));
|
|
33979
34420
|
}
|
|
33980
34421
|
// emits and completes once saving is done
|
|
33981
34422
|
// note: onSave processes are not run for drafts
|
|
@@ -34000,7 +34441,9 @@ class EditorEffects {
|
|
|
34000
34441
|
this.editorService = inject(EditorService);
|
|
34001
34442
|
this.recordsRepository = inject(RecordsRepositoryInterface);
|
|
34002
34443
|
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
|
|
34444
|
+
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
|
|
34445
|
+
.saveRecord(record, fieldsConfig, !alreadySavedOnce)
|
|
34446
|
+
.pipe(switchMap$1(([record, recordSource]) => of(saveRecordSuccess(), openRecord({
|
|
34004
34447
|
record,
|
|
34005
34448
|
alreadySavedOnce: true,
|
|
34006
34449
|
recordSource,
|
|
@@ -34008,7 +34451,7 @@ class EditorEffects {
|
|
|
34008
34451
|
error: error.message,
|
|
34009
34452
|
})))))));
|
|
34010
34453
|
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))
|
|
34454
|
+
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
34455
|
this.checkHasChangesOnOpen$ = createEffect(() => this.actions$.pipe(ofType(openRecord), map$1(({ record }) => this.recordsRepository.recordHasDraft(record.uniqueIdentifier)), filter$1((hasDraft) => hasDraft), map$1(() => markRecordAsChanged())));
|
|
34013
34456
|
}
|
|
34014
34457
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EditorEffects, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
@@ -34239,7 +34682,7 @@ class WizardFieldComponent {
|
|
|
34239
34682
|
deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],
|
|
34240
34683
|
},
|
|
34241
34684
|
{ 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$
|
|
34685
|
+
], 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
34686
|
}
|
|
34244
34687
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: WizardFieldComponent, decorators: [{
|
|
34245
34688
|
type: Component,
|
|
@@ -34390,7 +34833,7 @@ class FeatureEditorModule {
|
|
|
34390
34833
|
MatFormFieldModule,
|
|
34391
34834
|
HttpClientModule,
|
|
34392
34835
|
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,
|
|
34836
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FeatureEditorModule, providers: [EditorFacade, Gn4PlatformService], imports: [CommonModule,
|
|
34394
34837
|
UiInputsModule,
|
|
34395
34838
|
UiWidgetsModule,
|
|
34396
34839
|
TranslateModule.forChild(),
|
|
@@ -34424,10 +34867,58 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
34424
34867
|
EffectsModule.forFeature([EditorEffects]),
|
|
34425
34868
|
],
|
|
34426
34869
|
exports: [WizardComponent, WizardSummarizeComponent],
|
|
34427
|
-
providers: [EditorFacade],
|
|
34870
|
+
providers: [EditorFacade, Gn4PlatformService],
|
|
34428
34871
|
}]
|
|
34429
34872
|
}] });
|
|
34430
34873
|
|
|
34874
|
+
class FormFieldKeywordsComponent {
|
|
34875
|
+
constructor(platformService) {
|
|
34876
|
+
this.platformService = platformService;
|
|
34877
|
+
this.displayWithFn = (item) => {
|
|
34878
|
+
return `${item.title} (${item.value.thesaurus?.name})`;
|
|
34879
|
+
};
|
|
34880
|
+
this.autoCompleteAction = (query) => {
|
|
34881
|
+
return this.platformService
|
|
34882
|
+
.searchKeywords(query, ['temporal', 'theme', 'other'])
|
|
34883
|
+
.pipe(map$2((keywords) => keywords.map((keyword) => {
|
|
34884
|
+
return { title: keyword.label, value: keyword };
|
|
34885
|
+
})));
|
|
34886
|
+
};
|
|
34887
|
+
}
|
|
34888
|
+
handleItemSelection(item) {
|
|
34889
|
+
this.addKeyword(item.value);
|
|
34890
|
+
}
|
|
34891
|
+
addKeyword(keyword) {
|
|
34892
|
+
const addedKeywords = [...this.control.value, keyword];
|
|
34893
|
+
// remove duplicates from keyword
|
|
34894
|
+
const filteredKeywords = addedKeywords.filter((value, index, self) => {
|
|
34895
|
+
return (index ===
|
|
34896
|
+
self.findIndex((t) => t?.label === value?.label &&
|
|
34897
|
+
t?.thesaurus?.id === value?.thesaurus?.id &&
|
|
34898
|
+
t?.type === value?.type));
|
|
34899
|
+
});
|
|
34900
|
+
this.control.setValue(filteredKeywords);
|
|
34901
|
+
}
|
|
34902
|
+
removeKeyword(index) {
|
|
34903
|
+
const removeKeywords = this.control.value.filter((_, i) => i !== index);
|
|
34904
|
+
this.control.setValue(removeKeywords);
|
|
34905
|
+
}
|
|
34906
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldKeywordsComponent, deps: [{ token: PlatformServiceInterface }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
34907
|
+
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 }); }
|
|
34908
|
+
}
|
|
34909
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldKeywordsComponent, decorators: [{
|
|
34910
|
+
type: Component,
|
|
34911
|
+
args: [{ selector: 'gn-ui-form-field-keywords', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
34912
|
+
DropdownSelectorComponent,
|
|
34913
|
+
UiInputsModule,
|
|
34914
|
+
CommonModule,
|
|
34915
|
+
UiWidgetsModule,
|
|
34916
|
+
AutocompleteComponent,
|
|
34917
|
+
], 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" }]
|
|
34918
|
+
}], ctorParameters: function () { return [{ type: PlatformServiceInterface }]; }, propDecorators: { control: [{
|
|
34919
|
+
type: Input
|
|
34920
|
+
}] } });
|
|
34921
|
+
|
|
34431
34922
|
class FormFieldLicenseComponent {
|
|
34432
34923
|
constructor() {
|
|
34433
34924
|
this.choices = [
|
|
@@ -34639,7 +35130,7 @@ class FormFieldSimpleComponent {
|
|
|
34639
35130
|
return this.type === 'list';
|
|
34640
35131
|
}
|
|
34641
35132
|
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$
|
|
35133
|
+
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
35134
|
}
|
|
34644
35135
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldSimpleComponent, decorators: [{
|
|
34645
35136
|
type: Component,
|
|
@@ -34665,7 +35156,7 @@ class FormFieldFileComponent {
|
|
|
34665
35156
|
this.placeholder = '';
|
|
34666
35157
|
}
|
|
34667
35158
|
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$
|
|
35159
|
+
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
35160
|
}
|
|
34670
35161
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldFileComponent, decorators: [{
|
|
34671
35162
|
type: Component,
|
|
@@ -34747,92 +35238,105 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
34747
35238
|
|
|
34748
35239
|
class FormFieldUpdateFrequencyComponent {
|
|
34749
35240
|
get planned() {
|
|
34750
|
-
return this.control.value !== '
|
|
35241
|
+
return typeof this.control.value !== 'string';
|
|
34751
35242
|
}
|
|
34752
35243
|
constructor(translateService) {
|
|
34753
35244
|
this.translateService = translateService;
|
|
34754
|
-
this.choices = [
|
|
35245
|
+
this.choices = [];
|
|
35246
|
+
}
|
|
35247
|
+
async ngOnInit() {
|
|
35248
|
+
this.choices = await this.getInitialChoices();
|
|
35249
|
+
if (typeof this.control.value === 'string') {
|
|
35250
|
+
return;
|
|
35251
|
+
}
|
|
35252
|
+
const updatedTimes = this.control.value.updatedTimes;
|
|
35253
|
+
const per = this.control.value.per;
|
|
35254
|
+
// the update frequency is not in the list; make it appear there
|
|
35255
|
+
if (updatedTimes && updatedTimes !== 1 && updatedTimes !== 2) {
|
|
35256
|
+
this.choices = [
|
|
35257
|
+
{
|
|
35258
|
+
value: `${per}.${updatedTimes}`,
|
|
35259
|
+
label: await firstValueFrom(this.translateService.get(`domain.record.updateFrequency.${per}`, {
|
|
35260
|
+
count: updatedTimes,
|
|
35261
|
+
})),
|
|
35262
|
+
},
|
|
35263
|
+
...this.choices,
|
|
35264
|
+
];
|
|
35265
|
+
}
|
|
35266
|
+
}
|
|
35267
|
+
onPlannedToggled() {
|
|
35268
|
+
if (this.planned) {
|
|
35269
|
+
this.control.setValue('notPlanned');
|
|
35270
|
+
}
|
|
35271
|
+
else {
|
|
35272
|
+
this.control.setValue({ updatedTimes: 1, per: 'day' });
|
|
35273
|
+
}
|
|
35274
|
+
}
|
|
35275
|
+
get selectedFrequency() {
|
|
35276
|
+
if (typeof this.control.value === 'string')
|
|
35277
|
+
return null;
|
|
35278
|
+
const { updatedTimes, per } = this.control.value;
|
|
35279
|
+
return `${per}.${updatedTimes}`;
|
|
35280
|
+
}
|
|
35281
|
+
onSelectFrequencyValue(value) {
|
|
35282
|
+
const split = value.split('.');
|
|
35283
|
+
this.control.setValue({
|
|
35284
|
+
updatedTimes: Number(split[1]),
|
|
35285
|
+
per: split[0],
|
|
35286
|
+
});
|
|
35287
|
+
}
|
|
35288
|
+
async getInitialChoices() {
|
|
35289
|
+
return [
|
|
34755
35290
|
{
|
|
34756
35291
|
value: 'day.1',
|
|
34757
|
-
label: this.translateService.
|
|
35292
|
+
label: await firstValueFrom(this.translateService.get('domain.record.updateFrequency.day', {
|
|
34758
35293
|
count: 1,
|
|
34759
|
-
}),
|
|
35294
|
+
})),
|
|
34760
35295
|
},
|
|
34761
35296
|
{
|
|
34762
35297
|
value: 'day.2',
|
|
34763
|
-
label: this.translateService.
|
|
35298
|
+
label: await firstValueFrom(this.translateService.get('domain.record.updateFrequency.day', {
|
|
34764
35299
|
count: 2,
|
|
34765
|
-
}),
|
|
35300
|
+
})),
|
|
34766
35301
|
},
|
|
34767
35302
|
{
|
|
34768
35303
|
value: 'week.1',
|
|
34769
|
-
label: this.translateService.
|
|
35304
|
+
label: await firstValueFrom(this.translateService.get('domain.record.updateFrequency.week', {
|
|
34770
35305
|
count: 1,
|
|
34771
|
-
}),
|
|
35306
|
+
})),
|
|
34772
35307
|
},
|
|
34773
35308
|
{
|
|
34774
35309
|
value: 'week.2',
|
|
34775
|
-
label: this.translateService.
|
|
35310
|
+
label: await firstValueFrom(this.translateService.get('domain.record.updateFrequency.week', {
|
|
34776
35311
|
count: 2,
|
|
34777
|
-
}),
|
|
35312
|
+
})),
|
|
34778
35313
|
},
|
|
34779
35314
|
{
|
|
34780
35315
|
value: 'month.1',
|
|
34781
|
-
label: this.translateService.
|
|
35316
|
+
label: await firstValueFrom(this.translateService.get('domain.record.updateFrequency.month', {
|
|
34782
35317
|
count: 1,
|
|
34783
|
-
}),
|
|
35318
|
+
})),
|
|
34784
35319
|
},
|
|
34785
35320
|
{
|
|
34786
35321
|
value: 'month.2',
|
|
34787
|
-
label: this.translateService.
|
|
35322
|
+
label: await firstValueFrom(this.translateService.get('domain.record.updateFrequency.month', {
|
|
34788
35323
|
count: 2,
|
|
34789
|
-
}),
|
|
35324
|
+
})),
|
|
34790
35325
|
},
|
|
34791
35326
|
{
|
|
34792
35327
|
value: 'year.1',
|
|
34793
|
-
label: this.translateService.
|
|
35328
|
+
label: await firstValueFrom(this.translateService.get('domain.record.updateFrequency.year', {
|
|
34794
35329
|
count: 1,
|
|
34795
|
-
}),
|
|
35330
|
+
})),
|
|
34796
35331
|
},
|
|
34797
35332
|
{
|
|
34798
35333
|
value: 'year.2',
|
|
34799
|
-
label: this.translateService.
|
|
35334
|
+
label: await firstValueFrom(this.translateService.get('domain.record.updateFrequency.year', {
|
|
34800
35335
|
count: 2,
|
|
34801
|
-
}),
|
|
35336
|
+
})),
|
|
34802
35337
|
},
|
|
34803
35338
|
];
|
|
34804
35339
|
}
|
|
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
35340
|
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
35341
|
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
35342
|
}
|
|
@@ -34856,38 +35360,6 @@ class FormFieldComponent {
|
|
|
34856
35360
|
focusTitleInput() {
|
|
34857
35361
|
this.titleInput.nativeElement.children[0].focus();
|
|
34858
35362
|
}
|
|
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
35363
|
get isTitle() {
|
|
34892
35364
|
return this.model === 'title';
|
|
34893
35365
|
}
|
|
@@ -34906,11 +35378,23 @@ class FormFieldComponent {
|
|
|
34906
35378
|
get isTemporalExtents() {
|
|
34907
35379
|
return this.model === 'temporalExtents';
|
|
34908
35380
|
}
|
|
35381
|
+
get isSpatialExtentField() {
|
|
35382
|
+
return this.model === 'spatialExtents';
|
|
35383
|
+
}
|
|
35384
|
+
get isSimpleField() {
|
|
35385
|
+
return this.model === 'uniqueIdentifier' || this.model === 'recordUpdated';
|
|
35386
|
+
}
|
|
35387
|
+
get isReadOnly() {
|
|
35388
|
+
return this.model === 'uniqueIdentifier' || this.model === 'recordUpdated';
|
|
35389
|
+
}
|
|
35390
|
+
get isKeywords() {
|
|
35391
|
+
return this.model === 'keywords';
|
|
35392
|
+
}
|
|
34909
35393
|
get withoutWrapper() {
|
|
34910
35394
|
return this.model === 'title' || this.model === 'abstract';
|
|
34911
35395
|
}
|
|
34912
35396
|
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
|
|
35397
|
+
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
35398
|
}
|
|
34915
35399
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldComponent, decorators: [{
|
|
34916
35400
|
type: Component,
|
|
@@ -34931,8 +35415,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
34931
35415
|
FormFieldSpatialExtentComponent,
|
|
34932
35416
|
FormFieldFileComponent,
|
|
34933
35417
|
FormFieldArrayComponent,
|
|
35418
|
+
FormFieldKeywordsComponent,
|
|
34934
35419
|
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
|
|
35420
|
+
], 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
35421
|
}], ctorParameters: function () { return []; }, propDecorators: { model: [{
|
|
34937
35422
|
type: Input
|
|
34938
35423
|
}], config: [{
|
|
@@ -34971,6 +35456,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
34971
35456
|
const ROUTER_STATE_KEY = 'router';
|
|
34972
35457
|
const ROUTER_ROUTE_SEARCH = 'search';
|
|
34973
35458
|
const ROUTER_ROUTE_DATASET = 'dataset';
|
|
35459
|
+
const ROUTER_ROUTE_ORGANIZATION = 'organization';
|
|
34974
35460
|
var ROUTE_PARAMS;
|
|
34975
35461
|
(function (ROUTE_PARAMS) {
|
|
34976
35462
|
ROUTE_PARAMS["SORT"] = "_sort";
|
|
@@ -35002,11 +35488,18 @@ class RouterService {
|
|
|
35002
35488
|
path: `${ROUTER_ROUTE_DATASET}/:metadataUuid`,
|
|
35003
35489
|
component: this.routerConfig.recordRouteComponent,
|
|
35004
35490
|
},
|
|
35491
|
+
{
|
|
35492
|
+
path: `${ROUTER_ROUTE_ORGANIZATION}/:name`,
|
|
35493
|
+
component: this.routerConfig.organizationRouteComponent,
|
|
35494
|
+
},
|
|
35005
35495
|
];
|
|
35006
35496
|
}
|
|
35007
35497
|
getSearchRoute() {
|
|
35008
35498
|
return ROUTER_ROUTE_SEARCH;
|
|
35009
35499
|
}
|
|
35500
|
+
getOrganizationPageRoute() {
|
|
35501
|
+
return ROUTER_ROUTE_ORGANIZATION;
|
|
35502
|
+
}
|
|
35010
35503
|
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
35504
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RouterService, providedIn: 'root' }); }
|
|
35012
35505
|
}
|
|
@@ -35053,6 +35546,13 @@ class RouterFacade {
|
|
|
35053
35546
|
this.store.dispatch(setIncompleteMetadata({ incomplete: metadata }));
|
|
35054
35547
|
});
|
|
35055
35548
|
}
|
|
35549
|
+
goToOrganization(organizationName) {
|
|
35550
|
+
const path = `${this.routerService.getOrganizationPageRoute()}/${organizationName}`;
|
|
35551
|
+
this.go({
|
|
35552
|
+
path,
|
|
35553
|
+
queryParamsHandling: '',
|
|
35554
|
+
});
|
|
35555
|
+
}
|
|
35056
35556
|
updateSearch(query) {
|
|
35057
35557
|
this.go({
|
|
35058
35558
|
path: this.routerService.getSearchRoute(),
|
|
@@ -35290,7 +35790,7 @@ class DefaultRouterModule {
|
|
|
35290
35790
|
};
|
|
35291
35791
|
}
|
|
35292
35792
|
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$
|
|
35793
|
+
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
35794
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DefaultRouterModule, providers: [
|
|
35295
35795
|
RouterFacade,
|
|
35296
35796
|
{
|
|
@@ -35333,5 +35833,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
35333
35833
|
* Generated bundle index. Do not edit.
|
|
35334
35834
|
*/
|
|
35335
35835
|
|
|
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 };
|
|
35836
|
+
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
35837
|
//# sourceMappingURL=geonetwork-ui.mjs.map
|