geonetwork-ui 2.4.0-dev.e1bb65c4 → 2.4.0-dev.e6ae55aa
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/libs/api/metadata-converter/src/index.mjs +2 -1
- package/esm2022/libs/api/metadata-converter/src/lib/gn4/atomic-operations.mjs +2 -1
- package/esm2022/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.mjs +1 -1
- package/esm2022/libs/api/repository/src/lib/gn4/gn4-repository.mjs +12 -1
- 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 +2 -2
- package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.mjs +9 -5
- package/esm2022/libs/common/domain/src/lib/model/record/organization.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/api/records.api.service.mjs +2 -6
- 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/editor/src/lib/+state/editor.actions.mjs +2 -1
- package/esm2022/libs/feature/editor/src/lib/+state/editor.effects.mjs +3 -3
- package/esm2022/libs/feature/editor/src/lib/+state/editor.facade.mjs +7 -2
- package/esm2022/libs/feature/editor/src/lib/+state/editor.models.mjs +1 -1
- package/esm2022/libs/feature/editor/src/lib/+state/editor.reducer.mjs +7 -3
- package/esm2022/libs/feature/editor/src/lib/+state/editor.selectors.mjs +16 -6
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.mjs +4 -2
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.mjs +3 -3
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/index.mjs +1 -2
- package/esm2022/libs/feature/editor/src/lib/components/record-form/record-form.component.mjs +11 -7
- package/esm2022/libs/feature/editor/src/lib/expressions.mjs +1 -1
- package/esm2022/libs/feature/editor/src/lib/fields.config.mjs +143 -60
- package/esm2022/libs/feature/editor/src/lib/models/editor-config.model.mjs +2 -0
- package/esm2022/libs/feature/editor/src/lib/models/index.mjs +2 -1
- package/esm2022/libs/feature/editor/src/lib/services/editor.service.mjs +4 -3
- package/esm2022/libs/feature/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/state/mdview.facade.mjs +6 -3
- 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/lib/results-table/results-table-container.component.mjs +9 -3
- 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 +4 -4
- 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 +7 -9
- package/esm2022/libs/ui/elements/src/lib/user-preview/user-preview.component.mjs +3 -3
- 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/lib/results-table/action-menu/action-menu.component.mjs +29 -0
- package/esm2022/libs/ui/search/src/lib/results-table/results-table.component.mjs +15 -7
- package/esm2022/translations/de.json +88 -33
- package/esm2022/translations/en.json +59 -4
- package/esm2022/translations/es.json +59 -4
- package/esm2022/translations/fr.json +60 -5
- package/esm2022/translations/it.json +59 -4
- package/esm2022/translations/nl.json +59 -4
- package/esm2022/translations/pt.json +59 -4
- package/fesm2022/geonetwork-ui.mjs +942 -292
- package/fesm2022/geonetwork-ui.mjs.map +1 -1
- package/libs/api/metadata-converter/src/index.d.ts +1 -0
- package/libs/api/metadata-converter/src/index.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/gn4/atomic-operations.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.d.ts +1 -0
- package/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.d.ts.map +1 -1
- package/libs/api/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.service.d.ts +2 -1
- package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.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/platform.service.interface.d.ts +2 -1
- 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 +9 -0
- package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts.map +1 -1
- package/libs/data-access/gn4/src/openapi/api/records.api.service.d.ts.map +1 -1
- package/libs/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/editor/src/lib/+state/editor.actions.d.ts +5 -0
- package/libs/feature/editor/src/lib/+state/editor.actions.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/+state/editor.facade.d.ts +4 -4
- package/libs/feature/editor/src/lib/+state/editor.facade.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/+state/editor.models.d.ts +8 -0
- package/libs/feature/editor/src/lib/+state/editor.models.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/+state/editor.reducer.d.ts +4 -3
- package/libs/feature/editor/src/lib/+state/editor.reducer.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/+state/editor.selectors.d.ts +4 -8
- package/libs/feature/editor/src/lib/+state/editor.selectors.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/index.d.ts +0 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/index.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/record-form.component.d.ts +5 -7
- package/libs/feature/editor/src/lib/components/record-form/record-form.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/expressions.d.ts +1 -1
- package/libs/feature/editor/src/lib/expressions.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/fields.config.d.ts +38 -2
- package/libs/feature/editor/src/lib/fields.config.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/models/editor-config.model.d.ts +36 -0
- package/libs/feature/editor/src/lib/models/editor-config.model.d.ts.map +1 -0
- package/libs/feature/editor/src/lib/models/index.d.ts +1 -0
- package/libs/feature/editor/src/lib/models/index.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/services/editor.service.d.ts +2 -2
- package/libs/feature/editor/src/lib/services/editor.service.d.ts.map +1 -1
- package/libs/feature/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/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/lib/results-table/results-table-container.component.d.ts +3 -1
- package/libs/feature/search/src/lib/results-table/results-table-container.component.d.ts.map +1 -1
- package/libs/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/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/lib/results-table/action-menu/action-menu.component.d.ts +11 -0
- package/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.d.ts.map +1 -0
- package/libs/ui/search/src/lib/results-table/results-table.component.d.ts +4 -2
- package/libs/ui/search/src/lib/results-table/results-table.component.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/libs/api/metadata-converter/src/index.ts +1 -0
- package/src/libs/api/metadata-converter/src/lib/gn4/atomic-operations.ts +1 -0
- package/src/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.ts +1 -0
- package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +20 -0
- 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 +1 -1
- package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +26 -15
- package/src/libs/common/domain/src/lib/model/record/organization.model.ts +1 -0
- package/src/libs/common/domain/src/lib/platform.service.interface.ts +5 -1
- package/src/libs/common/domain/src/lib/repository/records-repository.interface.ts +12 -0
- package/src/libs/common/fixtures/src/index.ts +2 -0
- package/src/libs/common/fixtures/src/lib/editor/editor.fixtures.ts +156 -0
- package/src/libs/common/fixtures/src/lib/editor/index.ts +1 -0
- package/src/libs/common/fixtures/src/lib/organisations.fixture.ts +28 -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/api/records.api.service.ts +1 -5
- package/src/libs/data-access/gn4/src/openapi/model/user.api.model.ts +1 -1
- package/src/libs/data-access/gn4/src/spec.yaml +0 -8
- 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/editor/src/lib/+state/editor.actions.ts +5 -0
- package/src/libs/feature/editor/src/lib/+state/editor.effects.ts +2 -2
- package/src/libs/feature/editor/src/lib/+state/editor.facade.ts +9 -1
- package/src/libs/feature/editor/src/lib/+state/editor.models.ts +11 -0
- package/src/libs/feature/editor/src/lib/+state/editor.reducer.ts +11 -5
- package/src/libs/feature/editor/src/lib/+state/editor.selectors.ts +22 -8
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.ts +8 -6
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.html +9 -9
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.ts +2 -1
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/index.ts +0 -1
- package/src/libs/feature/editor/src/lib/components/record-form/record-form.component.html +51 -11
- package/src/libs/feature/editor/src/lib/components/record-form/record-form.component.ts +15 -8
- package/src/libs/feature/editor/src/lib/expressions.ts +1 -1
- package/src/libs/feature/editor/src/lib/fields.config.ts +175 -61
- package/src/libs/feature/editor/src/lib/models/editor-config.model.ts +53 -0
- package/src/libs/feature/editor/src/lib/models/index.ts +1 -0
- package/src/libs/feature/editor/src/lib/services/editor.service.ts +8 -4
- package/src/libs/feature/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/state/mdview.facade.ts +6 -2
- 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/lib/results-table/results-table-container.component.html +1 -0
- package/src/libs/feature/search/src/lib/results-table/results-table-container.component.ts +5 -0
- package/src/libs/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 +2 -4
- package/src/libs/ui/elements/src/lib/user-preview/user-preview.component.html +1 -1
- 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/layout/src/index.ts +1 -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/lib/results-table/action-menu/action-menu.component.css +0 -0
- package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.html +17 -0
- package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.ts +22 -0
- package/src/libs/ui/search/src/lib/results-table/results-table.component.html +9 -0
- package/src/libs/ui/search/src/lib/results-table/results-table.component.ts +26 -12
- package/translations/de.json +88 -33
- package/translations/en.json +59 -4
- package/translations/es.json +59 -4
- package/translations/fr.json +60 -5
- package/translations/it.json +59 -4
- package/translations/nl.json +59 -4
- package/translations/pt.json +59 -4
- package/translations/sk.json +60 -5
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field.model.mjs +0 -2
- package/esm2022/libs/feature/editor/src/lib/models/fields.model.mjs +0 -2
- package/esm2022/libs/ui/elements/src/lib/max-lines/max-lines.component.mjs +0 -69
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.model.d.ts +0 -26
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.model.d.ts.map +0 -1
- package/libs/feature/editor/src/lib/models/fields.model.d.ts +0 -15
- package/libs/feature/editor/src/lib/models/fields.model.d.ts.map +0 -1
- package/libs/ui/elements/src/lib/max-lines/max-lines.component.d.ts.map +0 -1
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.model.ts +0 -43
- package/src/libs/feature/editor/src/lib/models/fields.model.ts +0 -29
- /package/src/libs/ui/{elements → layout}/src/lib/max-lines/max-lines.component.css +0 -0
package/src/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.ts
CHANGED
|
@@ -1,7 +1,12 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
ChangeDetectionStrategy,
|
|
3
|
+
Component,
|
|
4
|
+
Inject,
|
|
5
|
+
Input,
|
|
6
|
+
} from '@angular/core'
|
|
2
7
|
import { Configuration } from '../../../../../../libs/data-access/gn4/src'
|
|
3
8
|
import { MdViewFacade } from '../state'
|
|
4
|
-
import { combineLatest, map } from 'rxjs'
|
|
9
|
+
import { BehaviorSubject, combineLatest, map } from 'rxjs'
|
|
5
10
|
import { GN_UI_VERSION } from '../gn-ui-version.token'
|
|
6
11
|
|
|
7
12
|
@Component({
|
|
@@ -11,35 +16,77 @@ import { GN_UI_VERSION } from '../gn-ui-version.token'
|
|
|
11
16
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
12
17
|
})
|
|
13
18
|
export class DataViewWebComponentComponent {
|
|
19
|
+
viewType$ = new BehaviorSubject<string>('map')
|
|
20
|
+
@Input()
|
|
21
|
+
set viewType(value: string) {
|
|
22
|
+
this.viewType$.next(value)
|
|
23
|
+
}
|
|
14
24
|
webComponentHtml$ = combineLatest(
|
|
25
|
+
this.viewType$,
|
|
15
26
|
this.facade.chartConfig$,
|
|
16
27
|
this.facade.metadata$
|
|
17
28
|
).pipe(
|
|
18
|
-
map(([config, metadata]) => {
|
|
19
|
-
if (
|
|
20
|
-
|
|
29
|
+
map(([viewType, config, metadata]) => {
|
|
30
|
+
if (viewType === 'chart') {
|
|
31
|
+
if (config) {
|
|
32
|
+
const { aggregation, xProperty, yProperty, chartType } = config
|
|
33
|
+
return `<script src="https://cdn.jsdelivr.net/gh/geonetwork/geonetwork-ui@wc-dist-${
|
|
34
|
+
this.version
|
|
35
|
+
}/gn-wc.js"></script>
|
|
36
|
+
<gn-dataset-view-chart
|
|
37
|
+
api-url="${new URL(
|
|
38
|
+
this.config.basePath,
|
|
39
|
+
window.location.origin
|
|
40
|
+
).toString()}"
|
|
41
|
+
dataset-id="${metadata.uniqueIdentifier}"
|
|
42
|
+
aggregation="${aggregation}"
|
|
43
|
+
x-property="${xProperty}"
|
|
44
|
+
y-property="${yProperty}"
|
|
45
|
+
chart-type="${chartType}"
|
|
46
|
+
primary-color="#0f4395"
|
|
47
|
+
secondary-color="#8bc832"
|
|
48
|
+
main-color="#555"
|
|
49
|
+
background-color="#fdfbff"
|
|
50
|
+
main-font="'Inter', sans-serif"
|
|
51
|
+
title-font="'DM Serif Display', serif"
|
|
52
|
+
></gn-dataset-view-chart>`
|
|
53
|
+
}
|
|
54
|
+
return ''
|
|
55
|
+
} else if (viewType === 'table') {
|
|
21
56
|
return `<script src="https://cdn.jsdelivr.net/gh/geonetwork/geonetwork-ui@wc-dist-${
|
|
22
57
|
this.version
|
|
23
58
|
}/gn-wc.js"></script>
|
|
24
|
-
<gn-dataset-view-
|
|
59
|
+
<gn-dataset-view-table
|
|
60
|
+
api-url="${new URL(
|
|
61
|
+
this.config.basePath,
|
|
62
|
+
window.location.origin
|
|
63
|
+
).toString()}"
|
|
64
|
+
dataset-id="${metadata.uniqueIdentifier}"
|
|
65
|
+
primary-color="#0f4395"
|
|
66
|
+
secondary-color="#8bc832"
|
|
67
|
+
main-color="#555"
|
|
68
|
+
background-color="#fdfbff"
|
|
69
|
+
main-font="'Inter', sans-serif"
|
|
70
|
+
title-font="'DM Serif Display', serif"
|
|
71
|
+
></gn-dataset-view-table>`
|
|
72
|
+
} else {
|
|
73
|
+
return `<script src="https://cdn.jsdelivr.net/gh/geonetwork/geonetwork-ui@wc-dist-${
|
|
74
|
+
this.version
|
|
75
|
+
}/gn-wc.js"></script>
|
|
76
|
+
<gn-dataset-view-map
|
|
25
77
|
api-url="${new URL(
|
|
26
78
|
this.config.basePath,
|
|
27
79
|
window.location.origin
|
|
28
80
|
).toString()}"
|
|
29
81
|
dataset-id="${metadata.uniqueIdentifier}"
|
|
30
|
-
aggregation="${aggregation}"
|
|
31
|
-
x-property="${xProperty}"
|
|
32
|
-
y-property="${yProperty}"
|
|
33
|
-
chart-type="${chartType}"
|
|
34
82
|
primary-color="#0f4395"
|
|
35
83
|
secondary-color="#8bc832"
|
|
36
84
|
main-color="#555"
|
|
37
85
|
background-color="#fdfbff"
|
|
38
86
|
main-font="'Inter', sans-serif"
|
|
39
87
|
title-font="'DM Serif Display', serif"
|
|
40
|
-
></gn-dataset-view-
|
|
88
|
+
></gn-dataset-view-map>`
|
|
41
89
|
}
|
|
42
|
-
return ''
|
|
43
90
|
})
|
|
44
91
|
)
|
|
45
92
|
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core'
|
|
2
2
|
import { select, Store } from '@ngrx/store'
|
|
3
3
|
import {
|
|
4
|
+
catchError,
|
|
4
5
|
defaultIfEmpty,
|
|
5
6
|
filter,
|
|
6
7
|
map,
|
|
7
8
|
mergeMap,
|
|
8
|
-
scan,
|
|
9
9
|
switchMap,
|
|
10
10
|
toArray,
|
|
11
11
|
} from 'rxjs/operators'
|
|
@@ -119,7 +119,11 @@ export class MdViewFacade {
|
|
|
119
119
|
? link
|
|
120
120
|
: null
|
|
121
121
|
}),
|
|
122
|
-
defaultIfEmpty(null)
|
|
122
|
+
defaultIfEmpty(null),
|
|
123
|
+
catchError((e) => {
|
|
124
|
+
console.error(e)
|
|
125
|
+
return of(null)
|
|
126
|
+
})
|
|
123
127
|
)
|
|
124
128
|
} else {
|
|
125
129
|
return of(link)
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import { Inject, Injectable } from '@angular/core'
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
ROUTER_ROUTE_DATASET,
|
|
4
|
+
ROUTER_ROUTE_ORGANIZATION,
|
|
5
|
+
ROUTER_ROUTE_SEARCH,
|
|
6
|
+
} from '.'
|
|
3
7
|
import { Router, Routes } from '@angular/router'
|
|
4
8
|
import { ROUTER_CONFIG, RouterConfigModel } from './router.config'
|
|
5
9
|
|
|
@@ -30,10 +34,18 @@ export class RouterService {
|
|
|
30
34
|
path: `${ROUTER_ROUTE_DATASET}/:metadataUuid`,
|
|
31
35
|
component: this.routerConfig.recordRouteComponent,
|
|
32
36
|
},
|
|
37
|
+
{
|
|
38
|
+
path: `${ROUTER_ROUTE_ORGANIZATION}/:name`,
|
|
39
|
+
component: this.routerConfig.organizationRouteComponent,
|
|
40
|
+
},
|
|
33
41
|
]
|
|
34
42
|
}
|
|
35
43
|
|
|
36
44
|
getSearchRoute(): string {
|
|
37
45
|
return ROUTER_ROUTE_SEARCH
|
|
38
46
|
}
|
|
47
|
+
|
|
48
|
+
getOrganizationPageRoute(): string {
|
|
49
|
+
return ROUTER_ROUTE_ORGANIZATION
|
|
50
|
+
}
|
|
39
51
|
}
|
|
@@ -3,7 +3,7 @@ import { MdViewActions } from '../../../../../../../libs/feature/record/src'
|
|
|
3
3
|
import { RouterService } from '../router.service'
|
|
4
4
|
import { RouterReducerState } from '@ngrx/router-store'
|
|
5
5
|
import { select, Store } from '@ngrx/store'
|
|
6
|
-
import { distinctUntilChanged, filter, map, take } from 'rxjs/operators'
|
|
6
|
+
import { distinctUntilChanged, filter, map, take, tap } from 'rxjs/operators'
|
|
7
7
|
import {
|
|
8
8
|
ROUTER_ROUTE_DATASET,
|
|
9
9
|
ROUTER_ROUTE_SEARCH,
|
|
@@ -51,6 +51,14 @@ export class RouterFacade {
|
|
|
51
51
|
})
|
|
52
52
|
}
|
|
53
53
|
|
|
54
|
+
goToOrganization(organizationName: string) {
|
|
55
|
+
const path = `${this.routerService.getOrganizationPageRoute()}/${organizationName}`
|
|
56
|
+
this.go({
|
|
57
|
+
path,
|
|
58
|
+
queryParamsHandling: '',
|
|
59
|
+
})
|
|
60
|
+
}
|
|
61
|
+
|
|
54
62
|
updateSearch(query?: SearchRouteParams) {
|
|
55
63
|
this.go({
|
|
56
64
|
path: this.routerService.getSearchRoute(),
|
package/src/libs/feature/search/src/lib/results-table/results-table-container.component.html
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
[selectedRecordsIdentifiers]="selectedRecords$ | async"
|
|
5
5
|
[sortOrder]="sortBy$ | async"
|
|
6
6
|
(recordClick)="handleRecordClick($event)"
|
|
7
|
+
(duplicateRecord)="handleDuplicateRecord($event)"
|
|
7
8
|
(recordsSelectedChange)="handleRecordsSelectedChange($event[0], $event[1])"
|
|
8
9
|
(sortByChange)="handleSortByChange($event[0], $event[1])"
|
|
9
10
|
></gn-ui-results-table>
|
|
@@ -16,6 +16,7 @@ import { CommonModule } from '@angular/common'
|
|
|
16
16
|
})
|
|
17
17
|
export class ResultsTableContainerComponent {
|
|
18
18
|
@Output() recordClick = new EventEmitter<CatalogRecord>()
|
|
19
|
+
@Output() duplicateRecord = new EventEmitter<CatalogRecord>()
|
|
19
20
|
|
|
20
21
|
records$ = this.searchFacade.results$
|
|
21
22
|
selectedRecords$ = this.selectionService.selectedRecordsIdentifiers$
|
|
@@ -35,6 +36,10 @@ export class ResultsTableContainerComponent {
|
|
|
35
36
|
this.recordClick.emit(item as CatalogRecord)
|
|
36
37
|
}
|
|
37
38
|
|
|
39
|
+
handleDuplicateRecord(item: unknown) {
|
|
40
|
+
this.duplicateRecord.emit(item as CatalogRecord)
|
|
41
|
+
}
|
|
42
|
+
|
|
38
43
|
handleSortByChange(col: string, order: 'asc' | 'desc') {
|
|
39
44
|
this.searchService.setSortBy([order, col])
|
|
40
45
|
}
|
|
@@ -37,6 +37,7 @@ import {
|
|
|
37
37
|
getSearchResultsLoading,
|
|
38
38
|
getSearchSortBy,
|
|
39
39
|
getSpatialFilterEnabled,
|
|
40
|
+
isBeginningOfResults,
|
|
40
41
|
isEndOfResults,
|
|
41
42
|
totalPages,
|
|
42
43
|
} from './selectors'
|
|
@@ -58,6 +59,7 @@ export class SearchFacade {
|
|
|
58
59
|
layout$: Observable<string>
|
|
59
60
|
sortBy$: Observable<SortByField>
|
|
60
61
|
isLoading$: Observable<boolean>
|
|
62
|
+
isBeginningOfResults$: Observable<boolean>
|
|
61
63
|
isEndOfResults$: Observable<boolean>
|
|
62
64
|
totalPages$: Observable<number>
|
|
63
65
|
currentPage$: Observable<number>
|
|
@@ -98,6 +100,9 @@ export class SearchFacade {
|
|
|
98
100
|
this.isLoading$ = this.store.pipe(select(getSearchResultsLoading, searchId))
|
|
99
101
|
this.searchFilters$ = this.store.pipe(select(getSearchFilters, searchId))
|
|
100
102
|
this.resultsHits$ = this.store.pipe(select(getSearchResultsHits, searchId))
|
|
103
|
+
this.isBeginningOfResults$ = this.store.pipe(
|
|
104
|
+
select(isBeginningOfResults, searchId)
|
|
105
|
+
)
|
|
101
106
|
this.isEndOfResults$ = this.store.pipe(select(isEndOfResults, searchId))
|
|
102
107
|
this.totalPages$ = this.store.pipe(select(totalPages, searchId))
|
|
103
108
|
this.currentPage$ = this.store.pipe(select(currentPage, searchId))
|
|
@@ -50,6 +50,13 @@ export const getSearchResultsHits = createSelector(
|
|
|
50
50
|
(state: SearchStateSearch) => state.results.count
|
|
51
51
|
)
|
|
52
52
|
|
|
53
|
+
export const isBeginningOfResults = createSelector(
|
|
54
|
+
getSearchStateSearch,
|
|
55
|
+
(state: SearchStateSearch) => {
|
|
56
|
+
return state.params.currentPage === 0
|
|
57
|
+
}
|
|
58
|
+
)
|
|
59
|
+
|
|
53
60
|
export const isEndOfResults = createSelector(
|
|
54
61
|
getSearchStateSearch,
|
|
55
62
|
(state: SearchStateSearch) => {
|
|
@@ -25,19 +25,21 @@ marker('search.filters.keyword')
|
|
|
25
25
|
marker('search.filters.isSpatial')
|
|
26
26
|
marker('search.filters.license')
|
|
27
27
|
marker('search.filters.publicationYear')
|
|
28
|
-
marker('search.filters.
|
|
28
|
+
marker('search.filters.organization')
|
|
29
29
|
marker('search.filters.representationType')
|
|
30
30
|
marker('search.filters.resourceType')
|
|
31
31
|
marker('search.filters.standard')
|
|
32
32
|
marker('search.filters.topic')
|
|
33
33
|
marker('search.filters.contact')
|
|
34
|
+
marker('search.filters.producerOrg')
|
|
35
|
+
marker('search.filters.publisherOrg')
|
|
34
36
|
|
|
35
37
|
@Injectable({
|
|
36
38
|
providedIn: 'root',
|
|
37
39
|
})
|
|
38
40
|
export class FieldsService {
|
|
39
41
|
protected fields = {
|
|
40
|
-
|
|
42
|
+
organization: new OrganizationSearchField(this.injector),
|
|
41
43
|
format: new SimpleSearchField('format', this.injector, 'asc'),
|
|
42
44
|
resourceType: new TranslatedSearchField(
|
|
43
45
|
'resourceType',
|
|
@@ -70,6 +72,18 @@ export class FieldsService {
|
|
|
70
72
|
q: new FullTextSearchField(),
|
|
71
73
|
license: new LicenseSearchField(this.injector),
|
|
72
74
|
owner: new OwnerSearchField(this.injector),
|
|
75
|
+
producerOrg: new MultilingualSearchField(
|
|
76
|
+
'originatorOrgForResourceObject',
|
|
77
|
+
this.injector,
|
|
78
|
+
'asc',
|
|
79
|
+
'key'
|
|
80
|
+
),
|
|
81
|
+
publisherOrg: new MultilingualSearchField(
|
|
82
|
+
'distributorOrgForResourceObject',
|
|
83
|
+
this.injector,
|
|
84
|
+
'asc',
|
|
85
|
+
'key'
|
|
86
|
+
),
|
|
73
87
|
} as Record<string, AbstractSearchField>
|
|
74
88
|
|
|
75
89
|
get supportedFields() {
|
package/src/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.html
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
<a href (click)="clickOrganisation($event)" [attr.href]="organisationUrl">
|
|
2
2
|
<div
|
|
3
3
|
class="group cursor-pointer rounded-lg h-full flex flex-col"
|
|
4
|
-
[title]="
|
|
4
|
+
[title]="organization.name"
|
|
5
5
|
>
|
|
6
6
|
<div
|
|
7
7
|
class="shrink-0 bg-gray-100 rounded-lg overflow-hidden w-full border border-gray-300 h-36"
|
|
8
8
|
>
|
|
9
9
|
<gn-ui-thumbnail
|
|
10
10
|
class="relative h-full w-full"
|
|
11
|
-
[thumbnailUrl]="
|
|
11
|
+
[thumbnailUrl]="organization.logoUrl"
|
|
12
12
|
[fit]="'contain'"
|
|
13
13
|
>
|
|
14
14
|
</gn-ui-thumbnail>
|
|
@@ -18,22 +18,24 @@
|
|
|
18
18
|
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"
|
|
19
19
|
data-cy="organizationName"
|
|
20
20
|
>
|
|
21
|
-
{{
|
|
21
|
+
{{ organization.name }}</span
|
|
22
22
|
>
|
|
23
23
|
<p
|
|
24
24
|
class="abstract mt-4 mb-5 sm:mb-2 sm:mt-0 grow shrink-1 overflow-hidden"
|
|
25
25
|
data-cy="organizationDesc"
|
|
26
26
|
>
|
|
27
|
-
{{
|
|
27
|
+
{{ organization.description }}
|
|
28
28
|
</p>
|
|
29
29
|
<div class="shrink-0 text-primary opacity-50 flex leading-6">
|
|
30
30
|
<mat-icon class="material-symbols-outlined text-primary opacity-50 mr-1"
|
|
31
31
|
>folder_open
|
|
32
32
|
</mat-icon>
|
|
33
33
|
<span class="mx-1" data-cy="organizationRecordsCount">{{
|
|
34
|
-
|
|
34
|
+
organization.recordCount
|
|
35
35
|
}}</span>
|
|
36
|
-
<span translate
|
|
36
|
+
<span translate [translateParams]="{ count: organization.recordCount }"
|
|
37
|
+
>record.metadata.publications</span
|
|
38
|
+
>
|
|
37
39
|
</div>
|
|
38
40
|
</div>
|
|
39
41
|
</div>
|
|
@@ -14,12 +14,12 @@ import { Organization } from '../../../../../../libs/common/domain/src/lib/model
|
|
|
14
14
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
15
15
|
})
|
|
16
16
|
export class OrganisationPreviewComponent {
|
|
17
|
-
@Input()
|
|
17
|
+
@Input() organization: Organization
|
|
18
18
|
@Input() organisationUrl: string
|
|
19
19
|
@Output() clickedOrganisation = new EventEmitter<Organization>()
|
|
20
20
|
|
|
21
21
|
clickOrganisation(event: Event) {
|
|
22
22
|
event.preventDefault()
|
|
23
|
-
this.clickedOrganisation.emit(this.
|
|
23
|
+
this.clickedOrganisation.emit(this.organization)
|
|
24
24
|
}
|
|
25
25
|
}
|
|
@@ -9,6 +9,7 @@ import { OrganisationsFilterComponent } from './organisations-filter/organisatio
|
|
|
9
9
|
import { UiInputsModule } from '../../../../../libs/ui/inputs/src'
|
|
10
10
|
import { LanguageSwitcherComponent } from './language-switcher/language-switcher.component'
|
|
11
11
|
import { OrganisationsResultComponent } from './organisations-result/organisations-result.component'
|
|
12
|
+
import { RouterLink } from '@angular/router'
|
|
12
13
|
|
|
13
14
|
@NgModule({
|
|
14
15
|
declarations: [
|
|
@@ -24,6 +25,7 @@ import { OrganisationsResultComponent } from './organisations-result/organisatio
|
|
|
24
25
|
UiElementsModule,
|
|
25
26
|
UiInputsModule,
|
|
26
27
|
MatIconModule,
|
|
28
|
+
RouterLink,
|
|
27
29
|
],
|
|
28
30
|
exports: [
|
|
29
31
|
CatalogTitleComponent,
|
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
<div
|
|
2
|
-
translate
|
|
3
2
|
class="flex flex-row justify-start items-center overflow-hidden"
|
|
4
|
-
|
|
3
|
+
data-test="figureTitle"
|
|
4
|
+
[title]="
|
|
5
|
+
figure.toString() +
|
|
6
|
+
' ' +
|
|
7
|
+
unit +
|
|
8
|
+
' ' +
|
|
9
|
+
(title | translate: { count: figure })
|
|
10
|
+
"
|
|
5
11
|
>
|
|
6
12
|
<mat-icon
|
|
7
13
|
class="material-symbols-outlined {{ bgClass }} {{
|
|
@@ -13,7 +19,9 @@
|
|
|
13
19
|
</mat-icon>
|
|
14
20
|
<div class="shrink overflow-hidden">
|
|
15
21
|
<div class="figure-block text-[1.5em] text-black">
|
|
16
|
-
<span class="figure font-medium mr-[0.3em]">{{
|
|
22
|
+
<span class="figure font-medium mr-[0.3em]" data-test="figure">{{
|
|
23
|
+
figure
|
|
24
|
+
}}</span>
|
|
17
25
|
<span class="unit text-[0.665em]">{{ unit }}</span>
|
|
18
26
|
</div>
|
|
19
27
|
<div translate class="title truncate" [translateParams]="{ count: figure }">
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ChangeDetectionStrategy, Component, Input } from '@angular/core'
|
|
2
2
|
|
|
3
3
|
@Component({
|
|
4
4
|
selector: 'gn-ui-figure',
|
|
@@ -10,17 +10,13 @@ export class FigureComponent {
|
|
|
10
10
|
@Input() icon!: string
|
|
11
11
|
@Input() title!: string
|
|
12
12
|
@Input() figure!: string | number
|
|
13
|
-
@Input() unit
|
|
13
|
+
@Input() unit = ''
|
|
14
14
|
@Input() color: 'primary' | 'secondary' = 'primary'
|
|
15
15
|
|
|
16
|
-
get hoverTitle() {
|
|
17
|
-
return `${this.figure.toString()} ${this.unit || ''}
|
|
18
|
-
${this.title}`
|
|
19
|
-
}
|
|
20
|
-
|
|
21
16
|
get textClass() {
|
|
22
17
|
return this.color === 'primary' ? 'text-primary' : 'text-secondary'
|
|
23
18
|
}
|
|
19
|
+
|
|
24
20
|
get bgClass() {
|
|
25
21
|
return this.color === 'primary' ? 'bg-primary-white' : 'bg-secondary-white'
|
|
26
22
|
}
|
|
@@ -8,7 +8,6 @@ export * from './lib/image-overlay-preview/image-overlay-preview.component'
|
|
|
8
8
|
export * from './lib/link-card/link-card.component'
|
|
9
9
|
export * from './lib/markdown-editor/markdown-editor.component'
|
|
10
10
|
export * from './lib/markdown-parser/markdown-parser.component'
|
|
11
|
-
export * from './lib/max-lines/max-lines.component'
|
|
12
11
|
export * from './lib/metadata-catalog/metadata-catalog.component'
|
|
13
12
|
export * from './lib/metadata-contact/metadata-contact.component'
|
|
14
13
|
export * from './lib/metadata-info/metadata-info.component'
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
<div
|
|
2
|
-
class="group flex flex-col justify-between h-40 pt-5 pb-6 px-7 rounded filter overflow-hidden"
|
|
3
|
-
[ngClass]="{ 'cursor-pointer': displayApiFormButton }"
|
|
4
|
-
(click)="openRecordApiFormPanel()"
|
|
2
|
+
class="group flex flex-col justify-between h-40 pt-5 pb-6 px-7 rounded filter overflow-hidden cursor-default"
|
|
5
3
|
>
|
|
6
4
|
<div
|
|
7
5
|
class="font-title font-medium text-21 text-black text-ellipsis overflow-hidden break-words pb-5 h-[4.5rem]"
|
|
@@ -17,35 +15,37 @@
|
|
|
17
15
|
}"
|
|
18
16
|
>{{ link.accessServiceProtocol }}</span
|
|
19
17
|
>
|
|
20
|
-
<
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
[ngClass]="{
|
|
30
|
-
'py-2 px-4 rounded-r-md bg-gray-400 hover:bg-gray-600 focus:bg-gray-800 text-white':
|
|
31
|
-
displayText
|
|
32
|
-
}"
|
|
33
|
-
mat-raised-button
|
|
34
|
-
[matTooltip]="
|
|
35
|
-
!currentlyActive
|
|
36
|
-
? ('record.metadata.api.form.openForm' | translate)
|
|
37
|
-
: ('record.metadata.api.form.closeForm' | translate)
|
|
38
|
-
"
|
|
39
|
-
matTooltipPosition="above"
|
|
40
|
-
>
|
|
41
|
-
<mat-icon
|
|
42
|
-
class="material-symbols-outlined pointer-events-none align-middle card-icon"
|
|
18
|
+
<div class="flex flex-row gap-2 items-center">
|
|
19
|
+
<gn-ui-copy-text-button
|
|
20
|
+
[text]="link.url"
|
|
21
|
+
[tooltipText]="'tooltip.url.copy' | translate"
|
|
22
|
+
[displayText]="false"
|
|
23
|
+
></gn-ui-copy-text-button>
|
|
24
|
+
<button
|
|
25
|
+
*ngIf="displayApiFormButton"
|
|
26
|
+
type="button"
|
|
43
27
|
[ngClass]="{
|
|
44
|
-
'
|
|
28
|
+
'py-2 px-4 rounded-r-md bg-gray-400 hover:bg-gray-600 focus:bg-gray-800 text-white':
|
|
29
|
+
displayText
|
|
45
30
|
}"
|
|
46
|
-
|
|
31
|
+
mat-raised-button
|
|
32
|
+
[matTooltip]="
|
|
33
|
+
!currentlyActive
|
|
34
|
+
? ('record.metadata.api.form.openForm' | translate)
|
|
35
|
+
: ('record.metadata.api.form.closeForm' | translate)
|
|
36
|
+
"
|
|
37
|
+
matTooltipPosition="above"
|
|
38
|
+
(click)="openRecordApiFormPanel()"
|
|
47
39
|
>
|
|
48
|
-
|
|
40
|
+
<mat-icon
|
|
41
|
+
class="material-symbols-outlined pointer-events-none align-middle card-icon"
|
|
42
|
+
[ngClass]="{
|
|
43
|
+
'text-secondary opacity-100': currentlyActive
|
|
44
|
+
}"
|
|
45
|
+
>more_horiz</mat-icon
|
|
46
|
+
>
|
|
47
|
+
</button>
|
|
48
|
+
</div>
|
|
49
49
|
</div>
|
|
50
50
|
</div>
|
|
51
51
|
</div>
|
|
@@ -8,11 +8,11 @@
|
|
|
8
8
|
<div class="relative opacity-40">
|
|
9
9
|
<mat-icon class="material-symbols-outlined face">face</mat-icon>
|
|
10
10
|
<mat-icon class="material-symbols-outlined question-mark1"
|
|
11
|
-
>question_mark
|
|
12
|
-
>
|
|
11
|
+
>question_mark
|
|
12
|
+
</mat-icon>
|
|
13
13
|
<mat-icon class="material-symbols-outlined question-mark2"
|
|
14
|
-
>question_mark
|
|
15
|
-
>
|
|
14
|
+
>question_mark
|
|
15
|
+
</mat-icon>
|
|
16
16
|
</div>
|
|
17
17
|
<div translate>search.error.couldNotReachApi</div>
|
|
18
18
|
</div>
|
|
@@ -32,6 +32,15 @@
|
|
|
32
32
|
<div translate>search.error.receivedError</div>
|
|
33
33
|
<div *ngIf="error">{{ error }}</div>
|
|
34
34
|
</div>
|
|
35
|
+
<div *ngIf="type === types.ORGANIZATION_HAS_NO_DATASET">
|
|
36
|
+
<div class="relative opacity-40">
|
|
37
|
+
<mat-icon class="material-symbols-outlined computer">computer</mat-icon>
|
|
38
|
+
<mat-icon class="material-symbols-outlined computer-question-mark"
|
|
39
|
+
>question_mark
|
|
40
|
+
</mat-icon>
|
|
41
|
+
</div>
|
|
42
|
+
<div translate>search.error.organizationHasNoDataset</div>
|
|
43
|
+
</div>
|
|
35
44
|
<div
|
|
36
45
|
*ngIf="type === types.RECORD_NOT_FOUND"
|
|
37
46
|
data-test="record-not-found-error"
|
|
@@ -39,12 +48,27 @@
|
|
|
39
48
|
<div class="relative opacity-40">
|
|
40
49
|
<mat-icon class="material-symbols-outlined computer">computer</mat-icon>
|
|
41
50
|
<mat-icon class="material-symbols-outlined computer-question-mark"
|
|
42
|
-
>question_mark
|
|
43
|
-
>
|
|
51
|
+
>question_mark
|
|
52
|
+
</mat-icon>
|
|
44
53
|
</div>
|
|
45
54
|
<div translate [translateParams]="{ id: recordId }">
|
|
46
55
|
search.error.recordNotFound
|
|
47
56
|
</div>
|
|
48
57
|
<div *ngIf="error">{{ error }}</div>
|
|
49
58
|
</div>
|
|
59
|
+
<div
|
|
60
|
+
*ngIf="type === types.ORGANIZATION_NOT_FOUND"
|
|
61
|
+
data-test="org-not-found-error"
|
|
62
|
+
>
|
|
63
|
+
<div class="relative opacity-40">
|
|
64
|
+
<mat-icon class="material-symbols-outlined computer">computer</mat-icon>
|
|
65
|
+
<mat-icon class="material-symbols-outlined computer-question-mark"
|
|
66
|
+
>question_mark
|
|
67
|
+
</mat-icon>
|
|
68
|
+
</div>
|
|
69
|
+
<div translate [translateParams]="{ id: recordId }">
|
|
70
|
+
search.error.organizationNotFound
|
|
71
|
+
</div>
|
|
72
|
+
<div *ngIf="error">{{ error }}</div>
|
|
73
|
+
</div>
|
|
50
74
|
</div>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ChangeDetectionStrategy, Component, Input } from '@angular/core'
|
|
2
2
|
import { CatalogRecord } from '../../../../../../libs/common/domain/src/lib/model/record'
|
|
3
3
|
|
|
4
4
|
@Component({
|
|
@@ -8,5 +8,26 @@ import { CatalogRecord } from '../../../../../../libs/common/domain/src/lib/mode
|
|
|
8
8
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
9
9
|
})
|
|
10
10
|
export class RelatedRecordCardComponent {
|
|
11
|
+
private readonly baseClasses: string
|
|
12
|
+
|
|
11
13
|
@Input() record: CatalogRecord
|
|
14
|
+
@Input() extraClass = ''
|
|
15
|
+
|
|
16
|
+
constructor() {
|
|
17
|
+
this.baseClasses = [
|
|
18
|
+
'w-72',
|
|
19
|
+
'h-96',
|
|
20
|
+
'overflow-hidden',
|
|
21
|
+
'rounded-lg',
|
|
22
|
+
'bg-white',
|
|
23
|
+
'cursor-pointer',
|
|
24
|
+
'block',
|
|
25
|
+
'hover:-translate-y-2 ',
|
|
26
|
+
'duration-[180ms]',
|
|
27
|
+
].join(' ')
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
get classList() {
|
|
31
|
+
return `${this.baseClasses} ${this.extraClass}`
|
|
32
|
+
}
|
|
12
33
|
}
|