geonetwork-ui 2.4.0-dev.a2f3bb9f → 2.4.0-dev.a6f221e3
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/gn4.converter.mjs +4 -4
- package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.mjs +4 -4
- package/esm2022/libs/api/metadata-converter/src/lib/gn4/metadata-url.service.mjs +4 -4
- 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/iso19139.converter.mjs +7 -5
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/read-parts.mjs +30 -2
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/utils/geometry.mjs +31 -0
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/utils/keyword.mapper.mjs +1 -1
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/write-parts.mjs +23 -1
- package/esm2022/libs/api/metadata-converter/src/lib/xml-utils.mjs +10 -3
- package/esm2022/libs/api/repository/src/lib/gn4/auth/auth.service.mjs +4 -4
- package/esm2022/libs/api/repository/src/lib/gn4/auth/gravatar.service.mjs +4 -4
- package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.mjs +4 -4
- package/esm2022/libs/api/repository/src/lib/gn4/favorites/favorites.service.mjs +4 -4
- package/esm2022/libs/api/repository/src/lib/gn4/gn4-repository.mjs +96 -11
- package/esm2022/libs/api/repository/src/lib/gn4/organizations/organizations-from-groups.service.mjs +5 -4
- package/esm2022/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.mjs +6 -4
- package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.mjs +25 -7
- package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.mjs +50 -16
- package/esm2022/libs/api/repository/src/lib/gn4/selection/selection.service.mjs +4 -4
- package/esm2022/libs/api/repository/src/lib/gn4/settings/gn4-settings.service.mjs +4 -4
- package/esm2022/libs/common/domain/src/lib/model/record/contact.model.mjs +28 -1
- 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/api/atom.api.service.mjs +4 -4
- package/esm2022/libs/data-access/gn4/src/openapi/api/customstyle.api.service.mjs +4 -4
- package/esm2022/libs/data-access/gn4/src/openapi/api/formatters.api.service.mjs +4 -4
- package/esm2022/libs/data-access/gn4/src/openapi/api/groups.api.service.mjs +4 -4
- package/esm2022/libs/data-access/gn4/src/openapi/api/harvesters.api.service.mjs +4 -4
- package/esm2022/libs/data-access/gn4/src/openapi/api/identifiers.api.service.mjs +4 -4
- package/esm2022/libs/data-access/gn4/src/openapi/api/languages.api.service.mjs +4 -4
- package/esm2022/libs/data-access/gn4/src/openapi/api/links.api.service.mjs +4 -4
- package/esm2022/libs/data-access/gn4/src/openapi/api/logos.api.service.mjs +4 -4
- package/esm2022/libs/data-access/gn4/src/openapi/api/mapservers.api.service.mjs +4 -4
- package/esm2022/libs/data-access/gn4/src/openapi/api/mapservices.api.service.mjs +4 -4
- package/esm2022/libs/data-access/gn4/src/openapi/api/me.api.service.mjs +4 -4
- package/esm2022/libs/data-access/gn4/src/openapi/api/operations.api.service.mjs +4 -4
- package/esm2022/libs/data-access/gn4/src/openapi/api/pages.api.service.mjs +4 -4
- package/esm2022/libs/data-access/gn4/src/openapi/api/processes.api.service.mjs +4 -4
- package/esm2022/libs/data-access/gn4/src/openapi/api/records.api.service.mjs +6 -10
- package/esm2022/libs/data-access/gn4/src/openapi/api/regions.api.service.mjs +4 -4
- package/esm2022/libs/data-access/gn4/src/openapi/api/registries.api.service.mjs +4 -4
- package/esm2022/libs/data-access/gn4/src/openapi/api/related.api.service.mjs +4 -4
- package/esm2022/libs/data-access/gn4/src/openapi/api/search.api.service.mjs +4 -4
- package/esm2022/libs/data-access/gn4/src/openapi/api/selections.api.service.mjs +4 -4
- package/esm2022/libs/data-access/gn4/src/openapi/api/site.api.service.mjs +4 -4
- package/esm2022/libs/data-access/gn4/src/openapi/api/sources.api.service.mjs +4 -4
- package/esm2022/libs/data-access/gn4/src/openapi/api/standards.api.service.mjs +4 -4
- package/esm2022/libs/data-access/gn4/src/openapi/api/status.api.service.mjs +4 -4
- package/esm2022/libs/data-access/gn4/src/openapi/api/tags.api.service.mjs +4 -4
- package/esm2022/libs/data-access/gn4/src/openapi/api/tools.api.service.mjs +4 -4
- package/esm2022/libs/data-access/gn4/src/openapi/api/ui.api.service.mjs +4 -4
- package/esm2022/libs/data-access/gn4/src/openapi/api/userfeedback.api.service.mjs +4 -4
- package/esm2022/libs/data-access/gn4/src/openapi/api/users.api.service.mjs +4 -4
- package/esm2022/libs/data-access/gn4/src/openapi/api/usersearches.api.service.mjs +4 -4
- package/esm2022/libs/data-access/gn4/src/openapi/api/userselections.api.service.mjs +4 -4
- package/esm2022/libs/data-access/gn4/src/openapi/api.module.mjs +5 -5
- package/esm2022/libs/data-access/gn4/src/openapi/model/user.api.model.mjs +1 -1
- package/esm2022/libs/feature/auth/src/lib/feature-auth.module.mjs +5 -5
- package/esm2022/libs/feature/catalog/src/index.mjs +2 -1
- package/esm2022/libs/feature/catalog/src/lib/feature-catalog.module.mjs +5 -5
- package/esm2022/libs/feature/catalog/src/lib/my-org/my-org.service.mjs +4 -4
- package/esm2022/libs/feature/catalog/src/lib/organisations/organisations.component.mjs +7 -7
- package/esm2022/libs/feature/catalog/src/lib/organization-url.token.mjs +4 -0
- package/esm2022/libs/feature/catalog/src/lib/records/records.service.mjs +7 -9
- package/esm2022/libs/feature/catalog/src/lib/site-title/site-title.component.mjs +4 -4
- package/esm2022/libs/feature/catalog/src/lib/source-label/source-label.component.mjs +4 -4
- package/esm2022/libs/feature/catalog/src/lib/sources/sources.service.mjs +4 -4
- package/esm2022/libs/feature/dataviz/src/lib/chart-view/chart-view.component.mjs +7 -7
- package/esm2022/libs/feature/dataviz/src/lib/feature-dataviz.module.mjs +11 -8
- package/esm2022/libs/feature/dataviz/src/lib/figure/figure-container/figure-container.component.mjs +4 -4
- package/esm2022/libs/feature/dataviz/src/lib/figure/figure.service.mjs +4 -4
- package/esm2022/libs/feature/dataviz/src/lib/geo-table-view/geo-table-view.component.mjs +4 -4
- package/esm2022/libs/feature/dataviz/src/lib/service/data.service.mjs +4 -4
- package/esm2022/libs/feature/dataviz/src/lib/table-view/table-view.component.mjs +4 -4
- package/esm2022/libs/feature/editor/src/lib/+state/editor.actions.mjs +3 -1
- package/esm2022/libs/feature/editor/src/lib/+state/editor.effects.mjs +17 -7
- package/esm2022/libs/feature/editor/src/lib/+state/editor.facade.mjs +15 -7
- package/esm2022/libs/feature/editor/src/lib/+state/editor.models.mjs +1 -1
- package/esm2022/libs/feature/editor/src/lib/+state/editor.reducer.mjs +12 -4
- package/esm2022/libs/feature/editor/src/lib/+state/editor.selectors.mjs +18 -6
- package/esm2022/libs/feature/editor/src/lib/components/contact-card/contact-card.component.mjs +29 -0
- package/esm2022/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.mjs +78 -0
- package/esm2022/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.mjs +131 -0
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-array/form-field-array.component.mjs +4 -4
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.mjs +170 -0
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-file/form-field-file.component.mjs +4 -4
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.mjs +35 -0
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-license/form-field-license.component.mjs +4 -4
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.mjs +101 -0
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-object/form-field-object.component.mjs +4 -4
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.mjs +47 -0
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.mjs +21 -0
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-resource-updated/form-field-resource-updated.component.mjs +4 -4
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.mjs +4 -4
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-simple/form-field-simple.component.mjs +4 -4
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.mjs +112 -6
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents-date/form-field-temporal-extents-date.component.mjs +17 -0
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents-range/form-field-temporal-extents-range.component.mjs +17 -0
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.mjs +106 -0
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.mjs +67 -53
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.mjs +52 -48
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/index.mjs +5 -3
- package/esm2022/libs/feature/editor/src/lib/components/record-form/record-form.component.mjs +13 -9
- package/esm2022/libs/feature/editor/src/lib/components/wizard/wizard.component.mjs +4 -4
- package/esm2022/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.mjs +11 -11
- package/esm2022/libs/feature/editor/src/lib/components/wizard-summarize/wizard-summarize.component.mjs +4 -4
- package/esm2022/libs/feature/editor/src/lib/expressions.mjs +1 -1
- package/esm2022/libs/feature/editor/src/lib/feature-editor.module.mjs +12 -9
- package/esm2022/libs/feature/editor/src/lib/fields.config.mjs +177 -47
- 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 +32 -45
- package/esm2022/libs/feature/editor/src/lib/services/wizard.service.mjs +4 -4
- package/esm2022/libs/feature/map/src/lib/+state/map.effects.mjs +4 -4
- package/esm2022/libs/feature/map/src/lib/+state/map.facade.mjs +4 -4
- package/esm2022/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-from-catalog.component.mjs +8 -8
- package/esm2022/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-record-preview/add-layer-record-preview.component.mjs +8 -7
- package/esm2022/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.mjs +10 -7
- package/esm2022/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.mjs +8 -9
- package/esm2022/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.mjs +10 -9
- package/esm2022/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.mjs +9 -8
- package/esm2022/libs/feature/map/src/lib/feature-info/feature-info.service.mjs +4 -4
- package/esm2022/libs/feature/map/src/lib/feature-map.module.mjs +11 -30
- package/esm2022/libs/feature/map/src/lib/geocoding/geocoding.component.mjs +4 -4
- package/esm2022/libs/feature/map/src/lib/geocoding.service.mjs +4 -4
- package/esm2022/libs/feature/map/src/lib/layers-panel/layers-panel.component.mjs +31 -15
- package/esm2022/libs/feature/map/src/lib/manager/map-instance.directive.mjs +4 -4
- package/esm2022/libs/feature/map/src/lib/manager/map-manager.service.mjs +4 -4
- package/esm2022/libs/feature/map/src/lib/map-container/map-container.component.mjs +4 -4
- package/esm2022/libs/feature/map/src/lib/map-context/component/map-context.component.mjs +4 -4
- package/esm2022/libs/feature/map/src/lib/map-context/map-context.service.mjs +4 -4
- package/esm2022/libs/feature/map/src/lib/style/map-style.service.mjs +4 -4
- package/esm2022/libs/feature/map/src/lib/utils/map-utils.service.mjs +13 -8
- package/esm2022/libs/feature/notifications/src/lib/feature-notifications.module.mjs +5 -5
- package/esm2022/libs/feature/notifications/src/lib/notifications-container/notifications-container.component.mjs +4 -4
- package/esm2022/libs/feature/notifications/src/lib/notifications.service.mjs +4 -4
- package/esm2022/libs/feature/record/src/lib/data-view/data-view.component.mjs +4 -4
- package/esm2022/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.mjs +44 -25
- package/esm2022/libs/feature/record/src/lib/data-view-share/data-view-share.component.mjs +15 -7
- package/esm2022/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.mjs +51 -17
- package/esm2022/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.mjs +4 -4
- package/esm2022/libs/feature/record/src/lib/feature-record.module.mjs +11 -8
- package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +6 -6
- package/esm2022/libs/feature/record/src/lib/state/mdview.effects.mjs +5 -5
- package/esm2022/libs/feature/record/src/lib/state/mdview.facade.mjs +11 -15
- package/esm2022/libs/feature/router/src/lib/default/constants.mjs +2 -1
- package/esm2022/libs/feature/router/src/lib/default/container/search-router.container.directive.mjs +4 -4
- package/esm2022/libs/feature/router/src/lib/default/router.config.mjs +1 -1
- package/esm2022/libs/feature/router/src/lib/default/router.module.mjs +5 -5
- package/esm2022/libs/feature/router/src/lib/default/router.service.mjs +12 -5
- package/esm2022/libs/feature/router/src/lib/default/services/router-search.service.mjs +4 -4
- package/esm2022/libs/feature/router/src/lib/default/state/router.effects.mjs +4 -4
- package/esm2022/libs/feature/router/src/lib/default/state/router.facade.mjs +11 -4
- package/esm2022/libs/feature/search/src/index.mjs +2 -2
- package/esm2022/libs/feature/search/src/lib/facets/facets-container/facets-container.component.mjs +4 -4
- package/esm2022/libs/feature/search/src/lib/facets/facets.module.mjs +5 -5
- package/esm2022/libs/feature/search/src/lib/facets/facets.service.mjs +4 -4
- package/esm2022/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.mjs +4 -4
- package/esm2022/libs/feature/search/src/lib/feature-search.module.mjs +11 -8
- package/esm2022/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.mjs +4 -4
- package/esm2022/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.mjs +6 -6
- package/esm2022/libs/feature/search/src/lib/records-metrics/records-metrics.component.mjs +4 -4
- package/esm2022/libs/feature/search/src/lib/results-hits-number/results-hits.container.component.mjs +4 -4
- package/esm2022/libs/feature/search/src/lib/results-layout/results-layout.component.mjs +4 -4
- package/esm2022/libs/feature/search/src/lib/results-list/results-list.container.component.mjs +4 -4
- package/esm2022/libs/feature/search/src/lib/results-table/results-table-container.component.mjs +88 -0
- package/esm2022/libs/feature/search/src/lib/sort-by/sort-by.component.mjs +4 -4
- package/esm2022/libs/feature/search/src/lib/state/container/search-state.container.directive.mjs +4 -4
- package/esm2022/libs/feature/search/src/lib/state/effects.mjs +4 -4
- package/esm2022/libs/feature/search/src/lib/state/search.facade.mjs +11 -6
- package/esm2022/libs/feature/search/src/lib/state/selectors.mjs +4 -1
- package/esm2022/libs/feature/search/src/lib/utils/service/fields.service.mjs +10 -6
- package/esm2022/libs/feature/search/src/lib/utils/service/search.service.mjs +4 -4
- package/esm2022/libs/ui/catalog/src/lib/catalog-title/catalog-title.component.mjs +4 -4
- package/esm2022/libs/ui/catalog/src/lib/language-switcher/language-switcher.component.mjs +4 -4
- package/esm2022/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.mjs +7 -7
- package/esm2022/libs/ui/catalog/src/lib/organisations-filter/organisations-filter.component.mjs +4 -4
- package/esm2022/libs/ui/catalog/src/lib/organisations-result/organisations-result.component.mjs +4 -4
- package/esm2022/libs/ui/catalog/src/lib/ui-catalog.module.mjs +9 -6
- package/esm2022/libs/ui/dataviz/src/lib/chart/chart.component.mjs +4 -4
- package/esm2022/libs/ui/dataviz/src/lib/figure/figure.component.mjs +7 -10
- package/esm2022/libs/ui/dataviz/src/lib/table/table.component.mjs +4 -4
- package/esm2022/libs/ui/dataviz/src/lib/ui-dataviz.module.mjs +5 -5
- package/esm2022/libs/ui/elements/src/index.mjs +5 -4
- package/esm2022/libs/ui/elements/src/lib/api-card/api-card.component.mjs +5 -5
- package/esm2022/libs/ui/elements/src/lib/avatar/avatar.component.mjs +4 -4
- package/esm2022/libs/ui/elements/src/lib/confirmation-dialog/confirmation-dialog.component.mjs +27 -0
- package/esm2022/libs/ui/elements/src/lib/content-ghost/content-ghost.component.mjs +4 -4
- package/esm2022/libs/ui/elements/src/lib/download-item/download-item.component.mjs +4 -4
- package/esm2022/libs/ui/elements/src/lib/downloads-list/downloads-list.component.mjs +4 -4
- package/esm2022/libs/ui/elements/src/lib/error/error.component.mjs +7 -5
- package/esm2022/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.mjs +4 -4
- package/esm2022/libs/ui/elements/src/lib/link-card/link-card.component.mjs +4 -4
- package/esm2022/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.mjs +6 -5
- package/esm2022/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.mjs +5 -5
- package/esm2022/libs/ui/elements/src/lib/metadata-catalog/metadata-catalog.component.mjs +4 -4
- package/esm2022/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.mjs +4 -4
- package/esm2022/libs/ui/elements/src/lib/metadata-info/linkify.directive.mjs +4 -4
- package/esm2022/libs/ui/elements/src/lib/metadata-info/metadata-info.component.mjs +12 -12
- package/esm2022/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.mjs +7 -13
- package/esm2022/libs/ui/elements/src/lib/metadata-quality-item/metadata-quality-item.component.mjs +5 -5
- package/esm2022/libs/ui/elements/src/lib/notification/notification.component.mjs +4 -4
- package/esm2022/libs/ui/elements/src/lib/pagination/pagination.component.mjs +4 -4
- package/esm2022/libs/ui/elements/src/lib/pagination-buttons/pagination-buttons.component.mjs +4 -4
- package/esm2022/libs/ui/elements/src/lib/record-api-form/record-api-form.component.mjs +7 -7
- package/esm2022/libs/ui/elements/src/lib/related-record-card/related-record-card.component.mjs +26 -7
- package/esm2022/libs/ui/elements/src/lib/sortable-list/sortable-list.component.mjs +47 -0
- package/esm2022/libs/ui/elements/src/lib/thumbnail/thumbnail.component.mjs +4 -4
- package/esm2022/libs/ui/elements/src/lib/ui-elements.module.mjs +22 -15
- package/esm2022/libs/ui/elements/src/lib/user-feedback-item/time-since.pipe.mjs +4 -4
- package/esm2022/libs/ui/elements/src/lib/user-feedback-item/user-feedback-item.component.mjs +4 -4
- package/esm2022/libs/ui/elements/src/lib/user-preview/user-preview.component.mjs +5 -5
- package/esm2022/libs/ui/inputs/src/index.mjs +3 -1
- package/esm2022/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.mjs +78 -31
- package/esm2022/libs/ui/inputs/src/lib/badge/badge.component.mjs +28 -0
- package/esm2022/libs/ui/inputs/src/lib/button/button.component.mjs +4 -4
- package/esm2022/libs/ui/inputs/src/lib/check-toggle/check-toggle.component.mjs +4 -4
- package/esm2022/libs/ui/inputs/src/lib/checkbox/checkbox.component.mjs +4 -4
- package/esm2022/libs/ui/inputs/src/lib/chips-input/chips-input.component.mjs +4 -4
- package/esm2022/libs/ui/inputs/src/lib/copy-text-button/copy-text-button.component.mjs +4 -4
- package/esm2022/libs/ui/inputs/src/lib/date-picker/date-picker.component.mjs +6 -6
- package/esm2022/libs/ui/inputs/src/lib/date-range-picker/date-range-picker.component.mjs +19 -13
- package/esm2022/libs/ui/inputs/src/lib/drag-and-drop-file-input/drag-and-drop-file-input.component.mjs +4 -4
- package/esm2022/libs/ui/inputs/src/lib/dropdown-multiselect/dropdown-multiselect.component.mjs +4 -4
- package/esm2022/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.mjs +4 -4
- package/esm2022/libs/ui/inputs/src/lib/editable-label/editable-label.directive.mjs +4 -4
- package/esm2022/libs/ui/inputs/src/lib/files-drop/files-drop.directive.mjs +4 -4
- package/esm2022/libs/ui/inputs/src/lib/image-input/image-input.component.mjs +19 -16
- package/esm2022/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.mjs +4 -4
- package/esm2022/libs/ui/inputs/src/lib/previous-next-buttons/previous-next-buttons.component.mjs +4 -4
- package/esm2022/libs/ui/inputs/src/lib/search-input/search-input.component.mjs +4 -4
- package/esm2022/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.mjs +4 -4
- package/esm2022/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.mjs +32 -0
- package/esm2022/libs/ui/inputs/src/lib/text-area/text-area.component.mjs +8 -23
- package/esm2022/libs/ui/inputs/src/lib/text-input/text-input.component.mjs +8 -19
- package/esm2022/libs/ui/inputs/src/lib/ui-inputs.module.mjs +15 -18
- package/esm2022/libs/ui/inputs/src/lib/url-input/url-input.component.mjs +43 -0
- package/esm2022/libs/ui/inputs/src/lib/viewport-intersector/viewport-intersector.component.mjs +4 -4
- package/esm2022/libs/ui/layout/src/index.mjs +2 -1
- package/esm2022/libs/ui/layout/src/lib/anchor-link/anchor-link.directive.mjs +4 -4
- package/esm2022/libs/ui/layout/src/lib/block-list/block-list.component.mjs +4 -4
- package/esm2022/libs/ui/layout/src/lib/carousel/carousel.component.mjs +4 -4
- package/esm2022/libs/ui/layout/src/lib/expandable-panel/expandable-panel.component.mjs +4 -4
- package/esm2022/libs/ui/layout/src/lib/expandable-panel-button/expandable-panel-button.component.mjs +4 -4
- package/esm2022/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.mjs +5 -5
- package/esm2022/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.mjs +4 -4
- package/esm2022/libs/ui/layout/src/lib/interactive-table/interactive-table.component.mjs +5 -5
- package/esm2022/libs/ui/layout/src/lib/max-lines/max-lines.component.mjs +71 -0
- package/esm2022/libs/ui/layout/src/lib/sticky-header/sticky-header.component.mjs +4 -4
- package/esm2022/libs/ui/layout/src/lib/ui-layout.module.mjs +5 -5
- package/esm2022/libs/ui/map/src/lib/components/feature-detail/feature-detail.component.mjs +4 -4
- package/esm2022/libs/ui/map/src/lib/components/map/map.component.mjs +4 -4
- package/esm2022/libs/ui/map/src/lib/ui-map.module.mjs +7 -7
- package/esm2022/libs/ui/search/src/index.mjs +2 -1
- package/esm2022/libs/ui/search/src/lib/facets/facet-block/facet-block.component.mjs +7 -7
- package/esm2022/libs/ui/search/src/lib/facets/facet-item/facet-item.component.mjs +7 -7
- package/esm2022/libs/ui/search/src/lib/facets/facet-list/facet-list.component.mjs +4 -4
- package/esm2022/libs/ui/search/src/lib/facets/facets.module.mjs +5 -5
- package/esm2022/libs/ui/search/src/lib/record-metric/record-metric.component.mjs +4 -4
- package/esm2022/libs/ui/search/src/lib/record-preview/record-preview.component.mjs +4 -4
- package/esm2022/libs/ui/search/src/lib/record-preview-card/record-preview-card.component.mjs +4 -4
- package/esm2022/libs/ui/search/src/lib/record-preview-feed/record-preview-feed.component.mjs +4 -4
- package/esm2022/libs/ui/search/src/lib/record-preview-list/record-preview-list.component.mjs +4 -4
- package/esm2022/libs/ui/search/src/lib/record-preview-row/record-preview-row.component.mjs +4 -4
- package/esm2022/libs/ui/search/src/lib/record-preview-text/record-preview-text.component.mjs +4 -4
- package/esm2022/libs/ui/search/src/lib/record-preview-title/record-preview-title.component.mjs +4 -4
- package/esm2022/libs/ui/search/src/lib/results-hits-number/results-hits-number.component.mjs +4 -4
- package/esm2022/libs/ui/search/src/lib/results-list/results-list.component.mjs +4 -4
- package/esm2022/libs/ui/search/src/lib/results-list-item/results-list-item.component.mjs +4 -4
- package/esm2022/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.mjs +67 -0
- package/esm2022/libs/ui/search/src/lib/results-table/results-table.component.mjs +140 -0
- package/esm2022/libs/ui/search/src/lib/ui-search.module.mjs +5 -5
- package/esm2022/libs/ui/widgets/src/index.mjs +2 -2
- package/esm2022/libs/ui/widgets/src/lib/color-scale/color-scale.component.mjs +4 -4
- package/esm2022/libs/ui/widgets/src/lib/loading-mask/loading-mask.component.mjs +4 -4
- package/esm2022/libs/ui/widgets/src/lib/popover/popover.component.mjs +68 -0
- package/esm2022/libs/ui/widgets/src/lib/popup-alert/popup-alert.component.mjs +7 -5
- package/esm2022/libs/ui/widgets/src/lib/progress-bar/progress-bar.component.mjs +4 -4
- package/esm2022/libs/ui/widgets/src/lib/spinning-loader/spinning-loader.component.mjs +4 -4
- package/esm2022/libs/ui/widgets/src/lib/step-bar/step-bar.component.mjs +4 -4
- package/esm2022/libs/ui/widgets/src/lib/ui-widgets.module.mjs +5 -15
- package/esm2022/libs/util/i18n/src/lib/i18n.interceptor.mjs +4 -4
- package/esm2022/libs/util/i18n/src/lib/lang.service.mjs +4 -4
- package/esm2022/libs/util/i18n/src/lib/util-i18n.module.mjs +5 -5
- package/esm2022/libs/util/shared/src/lib/image-fallback.directive.mjs +4 -4
- package/esm2022/libs/util/shared/src/lib/links/link-classifier.service.mjs +4 -4
- package/esm2022/libs/util/shared/src/lib/services/log.service.mjs +4 -4
- package/esm2022/libs/util/shared/src/lib/services/proxy.service.mjs +4 -4
- package/esm2022/libs/util/shared/src/lib/services/theme.service.mjs +4 -4
- package/esm2022/libs/util/shared/src/lib/util-shared.module.mjs +5 -5
- package/esm2022/translations/de.json +133 -29
- package/esm2022/translations/en.json +114 -10
- package/esm2022/translations/es.json +113 -9
- package/esm2022/translations/fr.json +126 -22
- package/esm2022/translations/it.json +114 -10
- package/esm2022/translations/nl.json +113 -9
- package/esm2022/translations/pt.json +113 -9
- package/fesm2022/geonetwork-ui.mjs +6880 -4477
- 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 +27 -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/iso19139.converter.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts +10 -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/geometry.d.ts +5 -0
- package/libs/api/metadata-converter/src/lib/iso19139/utils/geometry.d.ts.map +1 -0
- package/libs/api/metadata-converter/src/lib/iso19139/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 +5 -2
- package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/xml-utils.d.ts +1 -0
- package/libs/api/metadata-converter/src/lib/xml-utils.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts +23 -4
- 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 +10 -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/contact.model.d.ts +1 -0
- package/libs/common/domain/src/lib/model/record/contact.model.d.ts.map +1 -1
- package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +7 -8
- 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 +5 -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 +43 -1
- 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 +6 -6
- 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/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 +10 -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 +5 -0
- 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 +13 -11
- 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 +13 -2
- 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 +6 -8
- package/libs/feature/editor/src/lib/+state/editor.selectors.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/contact-card/contact-card.component.d.ts +12 -0
- package/libs/feature/editor/src/lib/components/contact-card/contact-card.component.d.ts.map +1 -0
- package/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.d.ts +32 -0
- package/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.d.ts.map +1 -0
- package/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.d.ts +27 -0
- package/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.d.ts.map +1 -0
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.d.ts +47 -0
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.d.ts.map +1 -0
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.d.ts +13 -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-map-container/form-field-map-container.component.d.ts +22 -0
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.d.ts.map +1 -0
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.d.ts +17 -0
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.d.ts.map +1 -0
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.d.ts +11 -0
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.d.ts.map +1 -0
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.d.ts +23 -0
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents-date/form-field-temporal-extents-date.component.d.ts +8 -0
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents-date/form-field-temporal-extents-date.component.d.ts.map +1 -0
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents-range/form-field-temporal-extents-range.component.d.ts +8 -0
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents-range/form-field-temporal-extents-range.component.d.ts.map +1 -0
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.d.ts +33 -0
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.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 +17 -13
- 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 +4 -2
- 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/feature-editor.module.d.ts +2 -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 +46 -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 +7 -10
- package/libs/feature/editor/src/lib/services/editor.service.d.ts.map +1 -1
- package/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-from-catalog.component.d.ts +1 -1
- package/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-from-catalog.component.d.ts.map +1 -1
- package/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-record-preview/add-layer-record-preview.component.d.ts +1 -1
- package/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-record-preview/add-layer-record-preview.component.d.ts.map +1 -1
- package/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.d.ts +1 -1
- package/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.d.ts.map +1 -1
- package/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.d.ts +1 -1
- package/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.d.ts.map +1 -1
- package/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.d.ts +1 -1
- package/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.d.ts.map +1 -1
- package/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.d.ts +1 -1
- package/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.d.ts.map +1 -1
- package/libs/feature/map/src/lib/feature-map.module.d.ts +16 -21
- package/libs/feature/map/src/lib/feature-map.module.d.ts.map +1 -1
- package/libs/feature/map/src/lib/layers-panel/layers-panel.component.d.ts +1 -1
- package/libs/feature/map/src/lib/layers-panel/layers-panel.component.d.ts.map +1 -1
- package/libs/feature/map/src/lib/utils/map-utils.service.d.ts.map +1 -1
- package/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.d.ts +4 -1
- package/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.d.ts.map +1 -1
- package/libs/feature/record/src/lib/data-view-share/data-view-share.component.d.ts +4 -1
- package/libs/feature/record/src/lib/data-view-share/data-view-share.component.d.ts.map +1 -1
- package/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.d.ts +4 -1
- package/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.d.ts.map +1 -1
- package/libs/feature/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.effects.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 +35 -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 +2 -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 +4 -3
- package/libs/ui/elements/src/index.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/confirmation-dialog/confirmation-dialog.component.d.ts +18 -0
- package/libs/ui/elements/src/lib/confirmation-dialog/confirmation-dialog.component.d.ts.map +1 -0
- package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts +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/metadata-quality/metadata-quality.component.d.ts +0 -3
- package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts +1 -1
- package/libs/ui/elements/src/lib/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/sortable-list/sortable-list.component.d.ts +22 -0
- package/libs/ui/elements/src/lib/sortable-list/sortable-list.component.d.ts.map +1 -0
- package/libs/ui/elements/src/lib/ui-elements.module.d.ts +18 -15
- package/libs/ui/elements/src/lib/ui-elements.module.d.ts.map +1 -1
- package/libs/ui/inputs/src/index.d.ts +2 -0
- package/libs/ui/inputs/src/index.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.d.ts +15 -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/date-picker/date-picker.component.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/date-range-picker/date-range-picker.component.d.ts +4 -4
- package/libs/ui/inputs/src/lib/date-range-picker/date-range-picker.component.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/image-input/image-input.component.d.ts +3 -4
- package/libs/ui/inputs/src/lib/image-input/image-input.component.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.d.ts +17 -0
- package/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.d.ts.map +1 -0
- package/libs/ui/inputs/src/lib/text-area/text-area.component.d.ts +0 -4
- package/libs/ui/inputs/src/lib/text-area/text-area.component.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/text-input/text-input.component.d.ts +2 -4
- package/libs/ui/inputs/src/lib/text-input/text-input.component.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts +34 -35
- package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/url-input/url-input.component.d.ts +18 -0
- package/libs/ui/inputs/src/lib/url-input/url-input.component.d.ts.map +1 -0
- 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/action-menu/action-menu.component.d.ts +20 -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 +36 -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 +1 -1
- package/libs/ui/widgets/src/index.d.ts.map +1 -1
- package/libs/ui/widgets/src/lib/popover/popover.component.d.ts +19 -0
- package/libs/ui/widgets/src/lib/popover/popover.component.d.ts.map +1 -0
- package/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 -12
- 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/fixtures/generic.records.ts +6 -1
- package/src/libs/api/metadata-converter/src/lib/fixtures/geo2france.records.ts +5 -1
- package/src/libs/api/metadata-converter/src/lib/fixtures/geocat-ch.records.ts +37 -12
- package/src/libs/api/metadata-converter/src/lib/fixtures/metawal.records.ts +5 -1
- package/src/libs/api/metadata-converter/src/lib/gn4/atomic-operations.ts +1 -0
- package/src/libs/api/metadata-converter/src/lib/gn4/types/index.ts +1 -0
- package/src/libs/api/metadata-converter/src/lib/gn4/types/keywords.model.ts +27 -0
- package/src/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.ts +1 -0
- package/src/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.ts +6 -2
- package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +73 -3
- package/src/libs/api/metadata-converter/src/lib/iso19139/utils/geometry.ts +39 -0
- 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 +71 -2
- package/src/libs/api/metadata-converter/src/lib/xml-utils.ts +13 -5
- package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +198 -7
- 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 +37 -5
- package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +120 -29
- package/src/libs/common/domain/src/lib/model/record/contact.model.ts +28 -0
- package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +7 -10
- 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 +11 -3
- package/src/libs/common/domain/src/lib/repository/records-repository.interface.ts +61 -3
- 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/common/fixtures/src/lib/records.fixtures.ts +211 -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 +10 -14
- package/src/libs/data-access/gn4/src/openapi/model/user.api.model.ts +1 -1
- package/src/libs/data-access/gn4/src/spec.yaml +4 -13
- 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 +12 -1
- package/src/libs/feature/editor/src/lib/+state/editor.effects.ts +51 -17
- package/src/libs/feature/editor/src/lib/+state/editor.facade.ts +23 -4
- package/src/libs/feature/editor/src/lib/+state/editor.models.ts +11 -0
- package/src/libs/feature/editor/src/lib/+state/editor.reducer.ts +32 -9
- package/src/libs/feature/editor/src/lib/+state/editor.selectors.ts +32 -8
- package/src/libs/feature/editor/src/lib/components/contact-card/contact-card.component.html +25 -0
- package/src/libs/feature/editor/src/lib/components/contact-card/contact-card.component.ts +30 -0
- package/src/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.html +26 -0
- package/src/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.ts +89 -0
- package/src/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.html +2 -1
- package/src/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.ts +110 -19
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.html +76 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.ts +271 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.html +9 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.ts +40 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.css +0 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.html +4 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.ts +128 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.css +0 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.html +6 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.ts +59 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.css +0 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.html +5 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.ts +22 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.html +15 -1
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.ts +156 -1
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents-date/form-field-temporal-extents-date.component.css +0 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents-date/form-field-temporal-extents-date.component.html +7 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents-date/form-field-temporal-extents-date.component.ts +16 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents-range/form-field-temporal-extents-range.component.css +0 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents-range/form-field-temporal-extents-range.component.html +13 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents-range/form-field-temporal-extents-range.component.ts +16 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.css +0 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.html +6 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.ts +131 -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 +35 -31
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.ts +55 -51
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/index.ts +4 -2
- 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/components/wizard-field/wizard-field.component.html +1 -1
- package/src/libs/feature/editor/src/lib/expressions.ts +1 -1
- package/src/libs/feature/editor/src/lib/feature-editor.module.ts +4 -2
- package/src/libs/feature/editor/src/lib/fields.config.ts +213 -48
- 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 +37 -54
- package/src/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-from-catalog.component.ts +3 -0
- package/src/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-record-preview/add-layer-record-preview.component.ts +5 -1
- package/src/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.ts +5 -0
- package/src/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.html +1 -1
- package/src/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.ts +10 -7
- package/src/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.html +1 -1
- package/src/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.ts +5 -0
- package/src/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.html +1 -1
- package/src/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.ts +6 -1
- package/src/libs/feature/map/src/lib/feature-map.module.ts +2 -15
- package/src/libs/feature/map/src/lib/layers-panel/layers-panel.component.ts +24 -1
- package/src/libs/feature/map/src/lib/utils/map-utils.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/feature-record.module.ts +3 -2
- package/src/libs/feature/record/src/lib/state/mdview.effects.ts +1 -3
- 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.html +1 -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.css +0 -0
- package/src/libs/feature/search/src/lib/results-table/results-table-container.component.html +11 -0
- package/src/libs/feature/search/src/lib/results-table/results-table-container.component.ts +103 -0
- package/src/libs/feature/search/src/lib/state/search.facade.ts +11 -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 +4 -3
- package/src/libs/ui/elements/src/lib/api-card/api-card.component.html +29 -29
- package/src/libs/ui/elements/src/lib/confirmation-dialog/confirmation-dialog.component.css +0 -0
- package/src/libs/ui/elements/src/lib/confirmation-dialog/confirmation-dialog.component.html +12 -0
- package/src/libs/ui/elements/src/lib/confirmation-dialog/confirmation-dialog.component.ts +37 -0
- 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/markdown-editor/markdown-editor.component.html +4 -1
- package/src/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.css +2 -1
- package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.html +12 -8
- package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.html +14 -20
- package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.ts +0 -10
- package/src/libs/ui/elements/src/lib/metadata-quality-item/metadata-quality-item.component.html +1 -1
- package/src/libs/ui/elements/src/lib/record-api-form/record-api-form.component.html +2 -2
- 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/sortable-list/sortable-list.component.css +18 -0
- package/src/libs/ui/elements/src/lib/sortable-list/sortable-list.component.html +38 -0
- package/src/libs/ui/elements/src/lib/sortable-list/sortable-list.component.ts +60 -0
- package/src/libs/ui/elements/src/lib/ui-elements.module.ts +11 -6
- package/src/libs/ui/elements/src/lib/user-preview/user-preview.component.html +1 -1
- package/src/libs/ui/inputs/src/index.ts +2 -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 +94 -30
- package/src/libs/ui/inputs/src/lib/badge/badge.component.css +0 -0
- 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/date-picker/date-picker.component.html +2 -1
- package/src/libs/ui/inputs/src/lib/date-picker/date-picker.component.ts +8 -1
- package/src/libs/ui/inputs/src/lib/date-range-picker/date-range-picker.component.html +7 -7
- package/src/libs/ui/inputs/src/lib/date-range-picker/date-range-picker.component.ts +13 -15
- package/src/libs/ui/inputs/src/lib/file-input/file-input.component.css +0 -0
- package/src/libs/ui/inputs/src/lib/file-input/file-input.component.html +85 -0
- package/src/libs/ui/inputs/src/lib/file-input/file-input.component.ts +91 -0
- package/src/libs/ui/inputs/src/lib/image-input/image-input.component.html +49 -49
- package/src/libs/ui/inputs/src/lib/image-input/image-input.component.ts +15 -13
- 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/text-area/text-area.component.html +2 -1
- package/src/libs/ui/inputs/src/lib/text-area/text-area.component.ts +2 -27
- package/src/libs/ui/inputs/src/lib/text-input/text-input.component.html +4 -3
- package/src/libs/ui/inputs/src/lib/text-input/text-input.component.ts +4 -16
- package/src/libs/ui/inputs/src/lib/ui-inputs.module.ts +3 -6
- package/src/libs/ui/inputs/src/lib/url-input/url-input.component.css +9 -0
- package/src/libs/ui/inputs/src/lib/url-input/url-input.component.html +37 -0
- package/src/libs/ui/inputs/src/lib/url-input/url-input.component.ts +33 -0
- package/src/libs/ui/layout/src/index.ts +1 -0
- package/src/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.html +1 -1
- package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.html +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/map/src/lib/ui-map.module.ts +1 -1
- package/src/libs/ui/search/src/index.ts +1 -0
- package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.css +0 -0
- package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.html +26 -0
- package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.ts +74 -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 +33 -8
- package/src/libs/ui/search/src/lib/results-table/results-table.component.ts +152 -0
- package/src/libs/ui/widgets/src/index.ts +1 -1
- package/src/libs/ui/widgets/src/lib/popover/popover.component.css +0 -0
- package/src/libs/ui/widgets/src/lib/popover/popover.component.html +3 -0
- package/src/libs/ui/widgets/src/lib/popover/popover.component.ts +85 -0
- package/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 -6
- package/tailwind.base.css +43 -5
- package/translations/de.json +133 -29
- package/translations/en.json +114 -10
- package/translations/es.json +113 -9
- package/translations/fr.json +126 -22
- package/translations/it.json +114 -10
- package/translations/nl.json +113 -9
- package/translations/pt.json +113 -9
- package/translations/sk.json +115 -11
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extent/form-field-temporal-extent.component.mjs +0 -11
- 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/feature/search/src/lib/results-table/results-table.component.mjs +0 -128
- 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 -17
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extent/form-field-temporal-extent.component.d.ts +0 -6
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extent/form-field-temporal-extent.component.d.ts.map +0 -1
- 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/feature/search/src/lib/results-table/results-table.component.d.ts +0 -33
- 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/editor/src/lib/components/record-form/form-field/form-field-temporal-extent/form-field-temporal-extent.component.html +0 -1
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extent/form-field-temporal-extent.component.ts +0 -10
- 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/feature/search/src/lib/results-table/results-table.component.ts +0 -164
- 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 -11
- /package/src/libs/feature/editor/src/lib/components/{record-form/form-field/form-field-temporal-extent/form-field-temporal-extent.component.css → contact-card/contact-card.component.css} +0 -0
- /package/src/libs/feature/{search/src/lib/results-table/results-table.component.css → editor/src/lib/components/generic-keywords/generic-keywords.component.css} +0 -0
- /package/src/libs/{ui/elements/src/lib/max-lines/max-lines.component.css → feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.css} +0 -0
- /package/src/libs/{ui/widgets/src/lib/badge/badge.component.css → feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.css} +0 -0
|
@@ -2,12 +2,24 @@ import { createFeatureSelector, createSelector } from '@ngrx/store';
|
|
|
2
2
|
import { EDITOR_FEATURE_KEY } from './editor.reducer';
|
|
3
3
|
export const selectEditorState = createFeatureSelector(EDITOR_FEATURE_KEY);
|
|
4
4
|
export const selectRecord = createSelector(selectEditorState, (state) => state.record);
|
|
5
|
+
export const selectRecordSource = createSelector(selectEditorState, (state) => state.recordSource);
|
|
5
6
|
export const selectRecordSaving = createSelector(selectEditorState, (state) => state.saving);
|
|
6
7
|
export const selectRecordSaveError = createSelector(selectEditorState, (state) => state.saveError);
|
|
7
8
|
export const selectRecordChangedSinceSave = createSelector(selectEditorState, (state) => state.changedSinceSave);
|
|
8
|
-
export const
|
|
9
|
-
export const
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
9
|
+
export const selectRecordAlreadySavedOnce = createSelector(selectEditorState, (state) => state.alreadySavedOnce);
|
|
10
|
+
export const selectEditorConfig = createSelector(selectEditorState, (state) => state.editorConfig);
|
|
11
|
+
export const selectCurrentPage = createSelector(selectEditorState, (state) => state.currentPage);
|
|
12
|
+
export const selectRecordSections = createSelector(selectEditorState, (state) => {
|
|
13
|
+
const currentPage = state.editorConfig.pages[state.currentPage];
|
|
14
|
+
if (!currentPage) {
|
|
15
|
+
return [];
|
|
16
|
+
}
|
|
17
|
+
return currentPage.sections.map((section) => ({
|
|
18
|
+
...section,
|
|
19
|
+
fieldsWithValues: section.fields.map((fieldConfig) => ({
|
|
20
|
+
config: fieldConfig,
|
|
21
|
+
value: state.record?.[fieldConfig.model] ?? null,
|
|
22
|
+
})),
|
|
23
|
+
}));
|
|
24
|
+
});
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLnNlbGVjdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9lZGl0b3Ivc3JjL2xpYi8rc3RhdGUvZWRpdG9yLnNlbGVjdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQ25FLE9BQU8sRUFBRSxrQkFBa0IsRUFBZSxNQUFNLGtCQUFrQixDQUFBO0FBR2xFLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUM1QixxQkFBcUIsQ0FBYyxrQkFBa0IsQ0FBQyxDQUFBO0FBRXhELE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxjQUFjLENBQ3hDLGlCQUFpQixFQUNqQixDQUFDLEtBQWtCLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQ3JDLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxjQUFjLENBQzlDLGlCQUFpQixFQUNqQixDQUFDLEtBQWtCLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQzNDLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxjQUFjLENBQzlDLGlCQUFpQixFQUNqQixDQUFDLEtBQWtCLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQ3JDLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxjQUFjLENBQ2pELGlCQUFpQixFQUNqQixDQUFDLEtBQWtCLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQ3hDLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBRyxjQUFjLENBQ3hELGlCQUFpQixFQUNqQixDQUFDLEtBQWtCLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FDL0MsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUFHLGNBQWMsQ0FDeEQsaUJBQWlCLEVBQ2pCLENBQUMsS0FBa0IsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUMvQyxDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsY0FBYyxDQUM5QyxpQkFBaUIsRUFDakIsQ0FBQyxLQUFrQixFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUMzQyxDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsY0FBYyxDQUM3QyxpQkFBaUIsRUFDakIsQ0FBQyxLQUFrQixFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUMxQyxDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsY0FBYyxDQUNoRCxpQkFBaUIsRUFDakIsQ0FBQyxLQUFrQixFQUFFLEVBQUU7SUFDckIsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFBO0lBQy9ELElBQUksQ0FBQyxXQUFXLEVBQUU7UUFDaEIsT0FBTyxFQUErQixDQUFBO0tBQ3ZDO0lBQ0QsT0FBTyxXQUFXLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM1QyxHQUFHLE9BQU87UUFDVixnQkFBZ0IsRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNyRCxNQUFNLEVBQUUsV0FBVztZQUNuQixLQUFLLEVBQUUsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJO1NBQ2pELENBQUMsQ0FBQztLQUNKLENBQUMsQ0FBOEIsQ0FBQTtBQUNsQyxDQUFDLENBQ0YsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZUZlYXR1cmVTZWxlY3RvciwgY3JlYXRlU2VsZWN0b3IgfSBmcm9tICdAbmdyeC9zdG9yZSdcbmltcG9ydCB7IEVESVRPUl9GRUFUVVJFX0tFWSwgRWRpdG9yU3RhdGUgfSBmcm9tICcuL2VkaXRvci5yZWR1Y2VyJ1xuaW1wb3J0IHsgRWRpdG9yU2VjdGlvbldpdGhWYWx1ZXMgfSBmcm9tICcuL2VkaXRvci5tb2RlbHMnXG5cbmV4cG9ydCBjb25zdCBzZWxlY3RFZGl0b3JTdGF0ZSA9XG4gIGNyZWF0ZUZlYXR1cmVTZWxlY3RvcjxFZGl0b3JTdGF0ZT4oRURJVE9SX0ZFQVRVUkVfS0VZKVxuXG5leHBvcnQgY29uc3Qgc2VsZWN0UmVjb3JkID0gY3JlYXRlU2VsZWN0b3IoXG4gIHNlbGVjdEVkaXRvclN0YXRlLFxuICAoc3RhdGU6IEVkaXRvclN0YXRlKSA9PiBzdGF0ZS5yZWNvcmRcbilcblxuZXhwb3J0IGNvbnN0IHNlbGVjdFJlY29yZFNvdXJjZSA9IGNyZWF0ZVNlbGVjdG9yKFxuICBzZWxlY3RFZGl0b3JTdGF0ZSxcbiAgKHN0YXRlOiBFZGl0b3JTdGF0ZSkgPT4gc3RhdGUucmVjb3JkU291cmNlXG4pXG5cbmV4cG9ydCBjb25zdCBzZWxlY3RSZWNvcmRTYXZpbmcgPSBjcmVhdGVTZWxlY3RvcihcbiAgc2VsZWN0RWRpdG9yU3RhdGUsXG4gIChzdGF0ZTogRWRpdG9yU3RhdGUpID0+IHN0YXRlLnNhdmluZ1xuKVxuXG5leHBvcnQgY29uc3Qgc2VsZWN0UmVjb3JkU2F2ZUVycm9yID0gY3JlYXRlU2VsZWN0b3IoXG4gIHNlbGVjdEVkaXRvclN0YXRlLFxuICAoc3RhdGU6IEVkaXRvclN0YXRlKSA9PiBzdGF0ZS5zYXZlRXJyb3JcbilcblxuZXhwb3J0IGNvbnN0IHNlbGVjdFJlY29yZENoYW5nZWRTaW5jZVNhdmUgPSBjcmVhdGVTZWxlY3RvcihcbiAgc2VsZWN0RWRpdG9yU3RhdGUsXG4gIChzdGF0ZTogRWRpdG9yU3RhdGUpID0+IHN0YXRlLmNoYW5nZWRTaW5jZVNhdmVcbilcblxuZXhwb3J0IGNvbnN0IHNlbGVjdFJlY29yZEFscmVhZHlTYXZlZE9uY2UgPSBjcmVhdGVTZWxlY3RvcihcbiAgc2VsZWN0RWRpdG9yU3RhdGUsXG4gIChzdGF0ZTogRWRpdG9yU3RhdGUpID0+IHN0YXRlLmFscmVhZHlTYXZlZE9uY2VcbilcblxuZXhwb3J0IGNvbnN0IHNlbGVjdEVkaXRvckNvbmZpZyA9IGNyZWF0ZVNlbGVjdG9yKFxuICBzZWxlY3RFZGl0b3JTdGF0ZSxcbiAgKHN0YXRlOiBFZGl0b3JTdGF0ZSkgPT4gc3RhdGUuZWRpdG9yQ29uZmlnXG4pXG5cbmV4cG9ydCBjb25zdCBzZWxlY3RDdXJyZW50UGFnZSA9IGNyZWF0ZVNlbGVjdG9yKFxuICBzZWxlY3RFZGl0b3JTdGF0ZSxcbiAgKHN0YXRlOiBFZGl0b3JTdGF0ZSkgPT4gc3RhdGUuY3VycmVudFBhZ2VcbilcblxuZXhwb3J0IGNvbnN0IHNlbGVjdFJlY29yZFNlY3Rpb25zID0gY3JlYXRlU2VsZWN0b3IoXG4gIHNlbGVjdEVkaXRvclN0YXRlLFxuICAoc3RhdGU6IEVkaXRvclN0YXRlKSA9PiB7XG4gICAgY29uc3QgY3VycmVudFBhZ2UgPSBzdGF0ZS5lZGl0b3JDb25maWcucGFnZXNbc3RhdGUuY3VycmVudFBhZ2VdXG4gICAgaWYgKCFjdXJyZW50UGFnZSkge1xuICAgICAgcmV0dXJuIFtdIGFzIEVkaXRvclNlY3Rpb25XaXRoVmFsdWVzW11cbiAgICB9XG4gICAgcmV0dXJuIGN1cnJlbnRQYWdlLnNlY3Rpb25zLm1hcCgoc2VjdGlvbikgPT4gKHtcbiAgICAgIC4uLnNlY3Rpb24sXG4gICAgICBmaWVsZHNXaXRoVmFsdWVzOiBzZWN0aW9uLmZpZWxkcy5tYXAoKGZpZWxkQ29uZmlnKSA9PiAoe1xuICAgICAgICBjb25maWc6IGZpZWxkQ29uZmlnLFxuICAgICAgICB2YWx1ZTogc3RhdGUucmVjb3JkPy5bZmllbGRDb25maWcubW9kZWxdID8/IG51bGwsXG4gICAgICB9KSksXG4gICAgfSkpIGFzIEVkaXRvclNlY3Rpb25XaXRoVmFsdWVzW11cbiAgfVxuKVxuIl19
|
package/esm2022/libs/feature/editor/src/lib/components/contact-card/contact-card.component.mjs
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, } from '@angular/core';
|
|
2
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
3
|
+
import { CommonModule } from '@angular/common';
|
|
4
|
+
import { ButtonComponent } from '../../../../../../../libs/ui/inputs/src';
|
|
5
|
+
import { ThumbnailComponent } from '../../../../../../../libs/ui/elements/src';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@angular/common";
|
|
8
|
+
export class ContactCardComponent {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.removable = true;
|
|
11
|
+
this.contactRemoved = new EventEmitter();
|
|
12
|
+
}
|
|
13
|
+
removeContact(contact) {
|
|
14
|
+
this.contactRemoved.emit(contact);
|
|
15
|
+
}
|
|
16
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ContactCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
17
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ContactCardComponent, isStandalone: true, selector: "gn-ui-contact-card", inputs: { contact: "contact", removable: "removable" }, outputs: { contactRemoved: "contactRemoved" }, ngImport: i0, template: "<div class=\"flex flex-row gap-4 items-center\">\n <div class=\"flex flex-row border border-gray-200 rounded-xl p-4 gap-4 w-full\">\n <gn-ui-thumbnail\n class=\"w-[56px] h-[56px] rounded-[4px]\"\n [thumbnailUrl]=\"contact.organization.logoUrl?.href\"\n [fit]=\"'contain'\"\n ></gn-ui-thumbnail>\n <div class=\"flex flex-col w-full\">\n <div class=\"flex flex-row justify-between\">\n <span class=\"flex flex-wrap font-bold w-full\"\n >{{ contact.firstName }} {{ contact.lastName }}</span\n >\n </div>\n <div>{{ contact.email }}</div>\n </div>\n </div>\n <gn-ui-button\n *ngIf=\"removable\"\n data-test=\"removeContactButton\"\n type=\"light\"\n extraClass=\"w-[20px] h-[20px] flex items-center justify-center\"\n (buttonClick)=\"removeContact(contact)\"\n ><span class=\"material-symbols-outlined\"> close </span>\n </gn-ui-button>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "component", type: ThumbnailComponent, selector: "gn-ui-thumbnail", inputs: ["thumbnailUrl", "fit"], outputs: ["placeholderShown"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
18
|
+
}
|
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ContactCardComponent, decorators: [{
|
|
20
|
+
type: Component,
|
|
21
|
+
args: [{ selector: 'gn-ui-contact-card', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, MatIconModule, ButtonComponent, ThumbnailComponent], template: "<div class=\"flex flex-row gap-4 items-center\">\n <div class=\"flex flex-row border border-gray-200 rounded-xl p-4 gap-4 w-full\">\n <gn-ui-thumbnail\n class=\"w-[56px] h-[56px] rounded-[4px]\"\n [thumbnailUrl]=\"contact.organization.logoUrl?.href\"\n [fit]=\"'contain'\"\n ></gn-ui-thumbnail>\n <div class=\"flex flex-col w-full\">\n <div class=\"flex flex-row justify-between\">\n <span class=\"flex flex-wrap font-bold w-full\"\n >{{ contact.firstName }} {{ contact.lastName }}</span\n >\n </div>\n <div>{{ contact.email }}</div>\n </div>\n </div>\n <gn-ui-button\n *ngIf=\"removable\"\n data-test=\"removeContactButton\"\n type=\"light\"\n extraClass=\"w-[20px] h-[20px] flex items-center justify-center\"\n (buttonClick)=\"removeContact(contact)\"\n ><span class=\"material-symbols-outlined\"> close </span>\n </gn-ui-button>\n</div>\n" }]
|
|
22
|
+
}], propDecorators: { contact: [{
|
|
23
|
+
type: Input
|
|
24
|
+
}], removable: [{
|
|
25
|
+
type: Input
|
|
26
|
+
}], contactRemoved: [{
|
|
27
|
+
type: Output
|
|
28
|
+
}] } });
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdC1jYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9lZGl0b3Ivc3JjL2xpYi9jb21wb25lbnRzL2NvbnRhY3QtY2FyZC9jb250YWN0LWNhcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL2VkaXRvci9zcmMvbGliL2NvbXBvbmVudHMvY29udGFjdC1jYXJkL2NvbnRhY3QtY2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQTtBQUV0QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFDdEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzlDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTtBQUN6RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQTs7O0FBVTlFLE1BQU0sT0FBTyxvQkFBb0I7SUFSakM7UUFVVyxjQUFTLEdBQUcsSUFBSSxDQUFBO1FBQ2YsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBYyxDQUFBO0tBSzFEO0lBSEMsYUFBYSxDQUFDLE9BQW1CO1FBQy9CLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQ25DLENBQUM7K0dBUFUsb0JBQW9CO21HQUFwQixvQkFBb0IscUxDckJqQyxrNkJBeUJBLHlERE5ZLFlBQVksa0lBQUUsYUFBYSwrQkFBRSxlQUFlLCtIQUFFLGtCQUFrQjs7NEZBRS9ELG9CQUFvQjtrQkFSaEMsU0FBUzsrQkFDRSxvQkFBb0IsbUJBR2IsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsYUFBYSxFQUFFLGVBQWUsRUFBRSxrQkFBa0IsQ0FBQzs4QkFHbEUsT0FBTztzQkFBZixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0ksY0FBYztzQkFBdkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IEluZGl2aWR1YWwgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbidcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvaW5wdXRzL3NyYydcbmltcG9ydCB7IFRodW1ibmFpbENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnbi11aS1jb250YWN0LWNhcmQnLFxuICB0ZW1wbGF0ZVVybDogJy4vY29udGFjdC1jYXJkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY29udGFjdC1jYXJkLmNvbXBvbmVudC5jc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE1hdEljb25Nb2R1bGUsIEJ1dHRvbkNvbXBvbmVudCwgVGh1bWJuYWlsQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgQ29udGFjdENhcmRDb21wb25lbnQge1xuICBASW5wdXQoKSBjb250YWN0OiBJbmRpdmlkdWFsXG4gIEBJbnB1dCgpIHJlbW92YWJsZSA9IHRydWVcbiAgQE91dHB1dCgpIGNvbnRhY3RSZW1vdmVkID0gbmV3IEV2ZW50RW1pdHRlcjxJbmRpdmlkdWFsPigpXG5cbiAgcmVtb3ZlQ29udGFjdChjb250YWN0OiBJbmRpdmlkdWFsKSB7XG4gICAgdGhpcy5jb250YWN0UmVtb3ZlZC5lbWl0KGNvbnRhY3QpXG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGdhcC00IGl0ZW1zLWNlbnRlclwiPlxuICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBib3JkZXIgYm9yZGVyLWdyYXktMjAwIHJvdW5kZWQteGwgcC00IGdhcC00IHctZnVsbFwiPlxuICAgIDxnbi11aS10aHVtYm5haWxcbiAgICAgIGNsYXNzPVwidy1bNTZweF0gaC1bNTZweF0gcm91bmRlZC1bNHB4XVwiXG4gICAgICBbdGh1bWJuYWlsVXJsXT1cImNvbnRhY3Qub3JnYW5pemF0aW9uLmxvZ29Vcmw/LmhyZWZcIlxuICAgICAgW2ZpdF09XCInY29udGFpbidcIlxuICAgID48L2duLXVpLXRodW1ibmFpbD5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCB3LWZ1bGxcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGp1c3RpZnktYmV0d2VlblwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImZsZXggZmxleC13cmFwIGZvbnQtYm9sZCB3LWZ1bGxcIlxuICAgICAgICAgID57eyBjb250YWN0LmZpcnN0TmFtZSB9fSB7eyBjb250YWN0Lmxhc3ROYW1lIH19PC9zcGFuXG4gICAgICAgID5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdj57eyBjb250YWN0LmVtYWlsIH19PC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8Z24tdWktYnV0dG9uXG4gICAgKm5nSWY9XCJyZW1vdmFibGVcIlxuICAgIGRhdGEtdGVzdD1cInJlbW92ZUNvbnRhY3RCdXR0b25cIlxuICAgIHR5cGU9XCJsaWdodFwiXG4gICAgZXh0cmFDbGFzcz1cInctWzIwcHhdIGgtWzIwcHhdIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyXCJcbiAgICAoYnV0dG9uQ2xpY2spPVwicmVtb3ZlQ29udGFjdChjb250YWN0KVwiXG4gICAgPjxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZFwiPiBjbG9zZSA8L3NwYW4+XG4gIDwvZ24tdWktYnV0dG9uPlxuPC9kaXY+XG4iXX0=
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, } from '@angular/core';
|
|
3
|
+
import { PlatformServiceInterface } from '../../../../../../../libs/common/domain/src/lib/platform.service.interface';
|
|
4
|
+
import { AutocompleteComponent, DropdownSelectorComponent, UiInputsModule, } from '../../../../../../../libs/ui/inputs/src';
|
|
5
|
+
import { UiWidgetsModule } from '../../../../../../../libs/ui/widgets/src';
|
|
6
|
+
import { map } from 'rxjs';
|
|
7
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
8
|
+
import { TranslateModule } from '@ngx-translate/core';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
import * as i1 from "../../../../../../../libs/common/domain/src/lib/platform.service.interface";
|
|
11
|
+
import * as i2 from "../../../../../../ui/inputs/src/lib/badge/badge.component";
|
|
12
|
+
import * as i3 from "@angular/common";
|
|
13
|
+
import * as i4 from "@angular/material/icon";
|
|
14
|
+
import * as i5 from "@ngx-translate/core";
|
|
15
|
+
export class GenericKeywordsComponent {
|
|
16
|
+
constructor(platformService) {
|
|
17
|
+
this.platformService = platformService;
|
|
18
|
+
this.changedKeywords = new EventEmitter();
|
|
19
|
+
this.addedKeyword = new EventEmitter();
|
|
20
|
+
this.deletedKeyword = new EventEmitter();
|
|
21
|
+
this.displayWithFn = (item) => {
|
|
22
|
+
return `${item.title} (${item.value.thesaurus?.name})`;
|
|
23
|
+
};
|
|
24
|
+
this.autoCompleteAction = (query) => {
|
|
25
|
+
return this.platformService.searchKeywords(query, this.keywordTypes).pipe(map((keywords) => keywords.map((keyword) => {
|
|
26
|
+
return { title: keyword.label, value: keyword };
|
|
27
|
+
})));
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
handleItemSelection(item) {
|
|
31
|
+
this.addKeyword(item.value);
|
|
32
|
+
}
|
|
33
|
+
addKeyword(keyword) {
|
|
34
|
+
const duplicatedKeyword = this.keywords.find((k) => k.label === keyword.label);
|
|
35
|
+
if (!duplicatedKeyword) {
|
|
36
|
+
this.keywords = [...this.keywords, keyword];
|
|
37
|
+
this.changedKeywords.emit(this.keywords);
|
|
38
|
+
this.addedKeyword.emit(keyword);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
removeKeyword(keyword) {
|
|
42
|
+
this.keywords = this.keywords.filter((k) => k.label !== keyword.label);
|
|
43
|
+
this.changedKeywords.emit(this.keywords);
|
|
44
|
+
this.deletedKeyword.emit(keyword);
|
|
45
|
+
}
|
|
46
|
+
isPlaceWithoutExtent(keyword) {
|
|
47
|
+
if (keyword.type !== 'place')
|
|
48
|
+
return false;
|
|
49
|
+
return !keyword.bbox;
|
|
50
|
+
}
|
|
51
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GenericKeywordsComponent, deps: [{ token: i1.PlatformServiceInterface }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
52
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: GenericKeywordsComponent, isStandalone: true, selector: "gn-ui-generic-keywords", inputs: { keywords: "keywords", keywordTypes: "keywordTypes", placeholder: "placeholder" }, outputs: { changedKeywords: "changedKeywords", addedKeyword: "addedKeyword", deletedKeyword: "deletedKeyword" }, ngImport: i0, template: "<div class=\"flex flex-col gap-3\">\n <gn-ui-autocomplete\n [placeholder]=\"placeholder\"\n [displayWithFn]=\"displayWithFn\"\n [action]=\"autoCompleteAction\"\n (itemSelected)=\"handleItemSelection($event)\"\n [preventCompleteOnSelection]=\"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 keywords\"\n [removable]=\"true\"\n (badgeRemoveClicked)=\"removeKeyword(keyword)\"\n >{{ keyword.label }}\n\n <mat-icon\n *ngIf=\"isPlaceWithoutExtent(keyword)\"\n [title]=\"'editor.form.placeKeywordWithoutExtent' | translate\"\n class=\"material-symbols-outlined\"\n >warning</mat-icon\n >\n </gn-ui-badge>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: UiInputsModule }, { kind: "component", type: i2.BadgeComponent, selector: "gn-ui-badge", inputs: ["clickable", "removable"], outputs: ["badgeRemoveClicked"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: UiWidgetsModule }, { kind: "component", type: AutocompleteComponent, selector: "gn-ui-autocomplete", inputs: ["placeholder", "action", "value", "clearOnSelection", "preventCompleteOnSelection", "autoFocus", "minCharacterCount", "allowSubmit", "displayWithFn"], outputs: ["itemSelected", "inputSubmitted", "inputCleared"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
53
|
+
}
|
|
54
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GenericKeywordsComponent, decorators: [{
|
|
55
|
+
type: Component,
|
|
56
|
+
args: [{ selector: 'gn-ui-generic-keywords', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
57
|
+
DropdownSelectorComponent,
|
|
58
|
+
UiInputsModule,
|
|
59
|
+
CommonModule,
|
|
60
|
+
UiWidgetsModule,
|
|
61
|
+
AutocompleteComponent,
|
|
62
|
+
MatIconModule,
|
|
63
|
+
TranslateModule,
|
|
64
|
+
], template: "<div class=\"flex flex-col gap-3\">\n <gn-ui-autocomplete\n [placeholder]=\"placeholder\"\n [displayWithFn]=\"displayWithFn\"\n [action]=\"autoCompleteAction\"\n (itemSelected)=\"handleItemSelection($event)\"\n [preventCompleteOnSelection]=\"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 keywords\"\n [removable]=\"true\"\n (badgeRemoveClicked)=\"removeKeyword(keyword)\"\n >{{ keyword.label }}\n\n <mat-icon\n *ngIf=\"isPlaceWithoutExtent(keyword)\"\n [title]=\"'editor.form.placeKeywordWithoutExtent' | translate\"\n class=\"material-symbols-outlined\"\n >warning</mat-icon\n >\n </gn-ui-badge>\n </div>\n</div>\n" }]
|
|
65
|
+
}], ctorParameters: function () { return [{ type: i1.PlatformServiceInterface }]; }, propDecorators: { keywords: [{
|
|
66
|
+
type: Input
|
|
67
|
+
}], keywordTypes: [{
|
|
68
|
+
type: Input
|
|
69
|
+
}], placeholder: [{
|
|
70
|
+
type: Input
|
|
71
|
+
}], changedKeywords: [{
|
|
72
|
+
type: Output
|
|
73
|
+
}], addedKeyword: [{
|
|
74
|
+
type: Output
|
|
75
|
+
}], deletedKeyword: [{
|
|
76
|
+
type: Output
|
|
77
|
+
}] } });
|
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy1rZXl3b3Jkcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZWRpdG9yL3NyYy9saWIvY29tcG9uZW50cy9nZW5lcmljLWtleXdvcmRzL2dlbmVyaWMta2V5d29yZHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL2VkaXRvci9zcmMvbGliL2NvbXBvbmVudHMvZ2VuZXJpYy1rZXl3b3Jkcy9nZW5lcmljLWtleXdvcmRzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw0RUFBNEUsQ0FBQTtBQUNySCxPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLHlCQUF5QixFQUN6QixjQUFjLEdBQ2YsTUFBTSx5Q0FBeUMsQ0FBQTtBQUNoRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMENBQTBDLENBQUE7QUFDMUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUcxQixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFDdEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFBOzs7Ozs7O0FBb0JyRCxNQUFNLE9BQU8sd0JBQXdCO0lBc0JuQyxZQUFvQixlQUF5QztRQUF6QyxvQkFBZSxHQUFmLGVBQWUsQ0FBMEI7UUFsQm5ELG9CQUFlLEdBQTRCLElBQUksWUFBWSxFQUFFLENBQUE7UUFDN0QsaUJBQVksR0FBMEIsSUFBSSxZQUFZLEVBQUUsQ0FBQTtR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dCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IFBsYXRmb3JtU2VydmljZUludGVyZmFjZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL3BsYXRmb3JtLnNlcnZpY2UuaW50ZXJmYWNlJ1xuaW1wb3J0IHtcbiAgQXV0b2NvbXBsZXRlQ29tcG9uZW50LFxuICBEcm9wZG93blNlbGVjdG9yQ29tcG9uZW50LFxuICBVaUlucHV0c01vZHVsZSxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9pbnB1dHMvc3JjJ1xuaW1wb3J0IHsgVWlXaWRnZXRzTW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS93aWRnZXRzL3NyYydcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBLZXl3b3JkIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuaW1wb3J0IHsgS2V5d29yZFR5cGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC90aGVzYXVydXMnXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbidcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5cbnR5cGUgQXV0b2NvbXBsZXRlSXRlbSA9IHsgdGl0bGU6IHN0cmluZzsgdmFsdWU6IEtleXdvcmQgfVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnbi11aS1nZW5lcmljLWtleXdvcmRzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2dlbmVyaWMta2V5d29yZHMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9nZW5lcmljLWtleXdvcmRzLmNvbXBvbmVudC5jc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBEcm9wZG93blNlbGVjdG9yQ29tcG9uZW50LFxuICAgIFVpSW5wdXRzTW9kdWxlLFxuICAgIENvbW1vbk1vZHVsZSxcbiAgICBVaVdpZGdldHNNb2R1bGUsXG4gICAgQXV0b2NvbXBsZXRlQ29tcG9uZW50LFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBHZW5lcmljS2V5d29yZHNDb21wb25lbnQge1xuICBASW5wdXQoKSBrZXl3b3JkczogS2V5d29yZFtdXG4gIEBJbnB1dCgpIGtleXdvcmRUeXBlczogS2V5d29yZFR5cGVbXVxuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nXG4gIEBPdXRwdXQoKSBjaGFuZ2VkS2V5d29yZHM6IEV2ZW50RW1pdHRlcjxLZXl3b3JkW10+ID0gbmV3IEV2ZW50RW1pdHRlcigpXG4gIEBPdXRwdXQoKSBhZGRlZEtleXdvcmQ6IEV2ZW50RW1pdHRlcjxLZXl3b3JkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKVxuICBAT3V0cHV0KCkgZGVsZXRlZEtleXdvcmQ6IEV2ZW50RW1pdHRlcjxLZXl3b3JkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKVxuXG4gIGRpc3BsYXlXaXRoRm4gPSAoaXRlbTogQXV0b2NvbXBsZXRlSXRlbSkgPT4ge1xuICAgIHJldHVybiBgJHtpdGVtLnRpdGxlfSAoJHtpdGVtLnZhbHVlLnRoZXNhdXJ1cz8ubmFtZX0pYFxuICB9XG5cbiAgYXV0b0NvbXBsZXRlQWN0aW9uID0gKHF1ZXJ5OiBzdHJpbmcpID0+IHtcbiAgICByZXR1cm4gdGhpcy5wbGF0Zm9ybVNlcnZpY2Uuc2VhcmNoS2V5d29yZHMocXVlcnksIHRoaXMua2V5d29yZFR5cGVzKS5waXBlKFxuICAgICAgbWFwKChrZXl3b3JkcykgPT5cbiAgICAgICAga2V5d29yZHMubWFwKChrZXl3b3JkKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHsgdGl0bGU6IGtleXdvcmQubGFiZWwsIHZhbHVlOiBrZXl3b3JkIH1cbiAgICAgICAgfSlcbiAgICAgIClcbiAgICApXG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHBsYXRmb3JtU2VydmljZTogUGxhdGZvcm1TZXJ2aWNlSW50ZXJmYWNlKSB7fVxuXG4gIGhhbmRsZUl0ZW1TZWxlY3Rpb24oaXRlbTogQXV0b2NvbXBsZXRlSXRlbSkge1xuICAgIHRoaXMuYWRkS2V5d29yZChpdGVtLnZhbHVlKVxuICB9XG5cbiAgYWRkS2V5d29yZChrZXl3b3JkOiBLZXl3b3JkKSB7XG4gICAgY29uc3QgZHVwbGljYXRlZEtleXdvcmQgPSB0aGlzLmtleXdvcmRzLmZpbmQoXG4gICAgICAoaykgPT4gay5sYWJlbCA9PT0ga2V5d29yZC5sYWJlbFxuICAgIClcbiAgICBpZiAoIWR1cGxpY2F0ZWRLZXl3b3JkKSB7XG4gICAgICB0aGlzLmtleXdvcmRzID0gWy4uLnRoaXMua2V5d29yZHMsIGtleXdvcmRdXG4gICAgICB0aGlzLmNoYW5nZWRLZXl3b3Jkcy5lbWl0KHRoaXMua2V5d29yZHMpXG4gICAgICB0aGlzLmFkZGVkS2V5d29yZC5lbWl0KGtleXdvcmQpXG4gICAgfVxuICB9XG5cbiAgcmVtb3ZlS2V5d29yZChrZXl3b3JkOiBLZXl3b3JkKSB7XG4gICAgdGhpcy5rZXl3b3JkcyA9IHRoaXMua2V5d29yZHMuZmlsdGVyKChrKSA9PiBrLmxhYmVsICE9PSBrZXl3b3JkLmxhYmVsKVxuICAgIHRoaXMuY2hhbmdlZEtleXdvcmRzLmVtaXQodGhpcy5rZXl3b3JkcylcbiAgICB0aGlzLmRlbGV0ZWRLZXl3b3JkLmVtaXQoa2V5d29yZClcbiAgfVxuXG4gIGlzUGxhY2VXaXRob3V0RXh0ZW50KGtleXdvcmQ6IEtleXdvcmQpOiBib29sZWFuIHtcbiAgICBpZiAoa2V5d29yZC50eXBlICE9PSAncGxhY2UnKSByZXR1cm4gZmFsc2VcbiAgICByZXR1cm4gIWtleXdvcmQuYmJveFxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtM1wiPlxuICA8Z24tdWktYXV0b2NvbXBsZXRlXG4gICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICBbZGlzcGxheVdpdGhGbl09XCJkaXNwbGF5V2l0aEZuXCJcbiAgICBbYWN0aW9uXT1cImF1dG9Db21wbGV0ZUFjdGlvblwiXG4gICAgKGl0ZW1TZWxlY3RlZCk9XCJoYW5kbGVJdGVtU2VsZWN0aW9uKCRldmVudClcIlxuICAgIFtwcmV2ZW50Q29tcGxldGVPblNlbGVjdGlvbl09XCJ0cnVlXCJcbiAgICBbbWluQ2hhcmFjdGVyQ291bnRdPVwiMFwiXG4gICAgW2FsbG93U3VibWl0XT1cImZhbHNlXCJcbiAgPjwvZ24tdWktYXV0b2NvbXBsZXRlPlxuICA8ZGl2IGNsYXNzPVwiZmxleCBnYXAtMiBmbGV4LXdyYXBcIj5cbiAgICA8Z24tdWktYmFkZ2VcbiAgICAgICpuZ0Zvcj1cImxldCBrZXl3b3JkIG9mIGtleXdvcmRzXCJcbiAgICAgIFtyZW1vdmFibGVdPVwidHJ1ZVwiXG4gICAgICAoYmFkZ2VSZW1vdmVDbGlja2VkKT1cInJlbW92ZUtleXdvcmQoa2V5d29yZClcIlxuICAgICAgPnt7IGtleXdvcmQubGFiZWwgfX1cblxuICAgICAgPG1hdC1pY29uXG4gICAgICAgICpuZ0lmPVwiaXNQbGFjZVdpdGhvdXRFeHRlbnQoa2V5d29yZClcIlxuICAgICAgICBbdGl0bGVdPVwiJ2VkaXRvci5mb3JtLnBsYWNlS2V5d29yZFdpdGhvdXRFeHRlbnQnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkXCJcbiAgICAgICAgPndhcm5pbmc8L21hdC1pY29uXG4gICAgICA+XG4gICAgPC9nbi11aS1iYWRnZT5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
package/esm2022/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.mjs
ADDED
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output, } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { RecordsApiService } from '../../../../../../../libs/data-access/gn4/src';
|
|
4
|
+
import { UiInputsModule } from '../../../../../../../libs/ui/inputs/src';
|
|
5
|
+
import { FormControl } from '@angular/forms';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "../../../../../../../libs/data-access/gn4/src";
|
|
8
|
+
import * as i2 from "../../../../../../ui/inputs/src/lib/image-input/image-input.component";
|
|
9
|
+
export class OverviewUploadComponent {
|
|
10
|
+
constructor(recordsApiService, cd) {
|
|
11
|
+
this.recordsApiService = recordsApiService;
|
|
12
|
+
this.cd = cd;
|
|
13
|
+
this.overviewChange = new EventEmitter();
|
|
14
|
+
this.altTextChange = new EventEmitter();
|
|
15
|
+
this.errorHandle = (error) => {
|
|
16
|
+
console.error(error);
|
|
17
|
+
this.resourceUrl = '';
|
|
18
|
+
this.resourceAltText = '';
|
|
19
|
+
this.resourceFileName = '';
|
|
20
|
+
this.overviewChange.emit(null);
|
|
21
|
+
this.cd.markForCheck();
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
ngOnInit() {
|
|
25
|
+
this.recordsApiService.getAllResources(this.metadataUuid).subscribe({
|
|
26
|
+
next: (resources) => {
|
|
27
|
+
if (resources && resources.length > 0) {
|
|
28
|
+
this.resourceUrl = resources[0].url;
|
|
29
|
+
this.resourceFileName = resources[0].filename;
|
|
30
|
+
if (!this.resourceAltText) {
|
|
31
|
+
this.resourceAltText = this.resourceFileName;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
this.resourceUrl = '';
|
|
36
|
+
this.resourceAltText = '';
|
|
37
|
+
this.resourceFileName = '';
|
|
38
|
+
}
|
|
39
|
+
this.cd.markForCheck();
|
|
40
|
+
},
|
|
41
|
+
error: this.errorHandle,
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
handleFileChange(file) {
|
|
45
|
+
this.recordsApiService
|
|
46
|
+
.putResource(this.metadataUuid, file, 'public')
|
|
47
|
+
.subscribe({
|
|
48
|
+
next: (resource) => {
|
|
49
|
+
this.resourceUrl = resource.url;
|
|
50
|
+
this.resourceAltText = resource.filename;
|
|
51
|
+
this.overviewChange.emit({
|
|
52
|
+
url: new URL(resource.url),
|
|
53
|
+
description: resource.filename,
|
|
54
|
+
});
|
|
55
|
+
this.cd.markForCheck();
|
|
56
|
+
},
|
|
57
|
+
error: this.errorHandle,
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
handleUrlChange(url) {
|
|
61
|
+
this.recordsApiService
|
|
62
|
+
.putResourceFromURL(this.metadataUuid, url, 'public')
|
|
63
|
+
.subscribe({
|
|
64
|
+
next: (resource) => {
|
|
65
|
+
this.resourceUrl = resource.url;
|
|
66
|
+
this.resourceAltText = resource.filename;
|
|
67
|
+
this.overviewChange.emit({
|
|
68
|
+
url: new URL(resource.url),
|
|
69
|
+
description: resource.filename,
|
|
70
|
+
});
|
|
71
|
+
this.cd.markForCheck();
|
|
72
|
+
},
|
|
73
|
+
error: this.errorHandle,
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
handleAltTextChange(newAltText) {
|
|
77
|
+
this.resourceAltText = newAltText;
|
|
78
|
+
this.overviewChange.emit({
|
|
79
|
+
url: new URL(this.resourceUrl),
|
|
80
|
+
description: this.resourceAltText,
|
|
81
|
+
});
|
|
82
|
+
this.cd.markForCheck();
|
|
83
|
+
}
|
|
84
|
+
handleDelete() {
|
|
85
|
+
//this.formControl.markAsDirty()
|
|
86
|
+
this.recordsApiService
|
|
87
|
+
.delResource(this.metadataUuid, this.resourceFileName)
|
|
88
|
+
.subscribe({
|
|
89
|
+
next: () => {
|
|
90
|
+
this.resourceAltText = '';
|
|
91
|
+
this.resourceUrl = '';
|
|
92
|
+
this.overviewChange.emit(null);
|
|
93
|
+
this.cd.markForCheck();
|
|
94
|
+
},
|
|
95
|
+
error: this.errorHandle,
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
ngOnChanges(changes) {
|
|
99
|
+
const overviewChanges = changes['formControl'];
|
|
100
|
+
if (overviewChanges &&
|
|
101
|
+
overviewChanges.currentValue !== overviewChanges.previousValue) {
|
|
102
|
+
let overview;
|
|
103
|
+
if (overviewChanges.currentValue.value &&
|
|
104
|
+
overviewChanges.currentValue.value.length > 0) {
|
|
105
|
+
overview = overviewChanges.currentValue.value[0];
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
if (overview.description) {
|
|
111
|
+
this.resourceAltText = overview.description;
|
|
112
|
+
this.cd.markForCheck();
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OverviewUploadComponent, deps: [{ token: i1.RecordsApiService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
117
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: OverviewUploadComponent, isStandalone: true, selector: "gn-ui-overview-upload", inputs: { metadataUuid: "metadataUuid", formControl: "formControl" }, outputs: { overviewChange: "overviewChange", altTextChange: "altTextChange" }, usesOnChanges: true, ngImport: i0, template: "<gn-ui-image-input\n [maxSizeMB]=\"5\"\n [previewUrl]=\"resourceUrl\"\n [altText]=\"resourceAltText\"\n (fileChange)=\"handleFileChange($event)\"\n (urlChange)=\"handleUrlChange($event)\"\n (altTextChange)=\"handleAltTextChange($event)\"\n (delete)=\"handleDelete()\"\n></gn-ui-image-input>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: UiInputsModule }, { kind: "component", type: i2.ImageInputComponent, selector: "gn-ui-image-input", inputs: ["maxSizeMB", "previewUrl", "altText", "uploadProgress", "uploadError"], outputs: ["fileChange", "urlChange", "uploadCancel", "delete", "altTextChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
118
|
+
}
|
|
119
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OverviewUploadComponent, decorators: [{
|
|
120
|
+
type: Component,
|
|
121
|
+
args: [{ selector: 'gn-ui-overview-upload', standalone: true, imports: [CommonModule, UiInputsModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<gn-ui-image-input\n [maxSizeMB]=\"5\"\n [previewUrl]=\"resourceUrl\"\n [altText]=\"resourceAltText\"\n (fileChange)=\"handleFileChange($event)\"\n (urlChange)=\"handleUrlChange($event)\"\n (altTextChange)=\"handleAltTextChange($event)\"\n (delete)=\"handleDelete()\"\n></gn-ui-image-input>\n" }]
|
|
122
|
+
}], ctorParameters: function () { return [{ type: i1.RecordsApiService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { metadataUuid: [{
|
|
123
|
+
type: Input
|
|
124
|
+
}], formControl: [{
|
|
125
|
+
type: Input
|
|
126
|
+
}], overviewChange: [{
|
|
127
|
+
type: Output
|
|
128
|
+
}], altTextChange: [{
|
|
129
|
+
type: Output
|
|
130
|
+
}] } });
|
|
131
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcnZpZXctdXBsb2FkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9lZGl0b3Ivc3JjL2xpYi9jb21wb25lbnRzL292ZXJ2aWV3LXVwbG9hZC9vdmVydmlldy11cGxvYWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL2VkaXRvci9zcmMvbGliL2NvbXBvbmVudHMvb3ZlcnZpZXctdXBsb2FkL292ZXJ2aWV3LXVwbG9hZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEdBRVAsTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzlDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtDQUErQyxDQUFBO0FBQ2pGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTtBQUN4RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7Ozs7QUFXNUMsTUFBTSxPQUFPLHVCQUF1QjtJQVVsQyxZQUNVLGlCQUFvQyxFQUNwQyxFQUFxQjtRQURyQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLE9BQUUsR0FBRixFQUFFLENBQW1CO1FBVHJCLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQTBCLENBQUE7UUFDM0Qsa0JBQWEsR0FBeUIsSUFBSSxZQUFZLEVBQUUsQ0FBQTtRQWtHMUQsZ0JBQVcsR0FBRyxDQUFDLEtBQVksRUFBRSxFQUFFO1lBQ3JDLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUE7WUFFcEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFF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QUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQW9CLENBQUE7YUFDcEU7aUJBQU07Z0JBQ0wsT0FBTTthQUNQO1lBQ0QsSUFBSSxRQUFRLENBQUMsV0FBVyxFQUFFO2dCQUN4QixJQUFJLENBQUMsZUFBZSxHQUFHLFFBQVEsQ0FBQyxXQUFXLENBQUE7Z0JBQzNDLElBQUksQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUE7YUFDdkI7U0FDRjtJQUNILENBQUM7K0dBdElVLHVCQUF1QjttR0FBdkIsdUJBQXVCLDJQQ3pCcEMsNlNBU0EseUREV1ksWUFBWSw4QkFBRSxjQUFjOzs0RkFLM0IsdUJBQXVCO2tCQVJuQyxTQUFTOytCQUNFLHVCQUF1QixjQUNyQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsY0FBYyxDQUFDLG1CQUd0Qix1QkFBdUIsQ0FBQyxNQUFNO3dJQUd0QyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0ksY0FBYztzQkFBdkIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBSZWNvcmRzQXBpU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGF0YS1hY2Nlc3MvZ240L3NyYydcbmltcG9ydCB7IFVpSW5wdXRzTW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9pbnB1dHMvc3JjJ1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3JtcydcbmltcG9ydCB7IEdyYXBoaWNPdmVydmlldyB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3JlY29yZCdcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktb3ZlcnZpZXctdXBsb2FkJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgVWlJbnB1dHNNb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vb3ZlcnZpZXctdXBsb2FkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vb3ZlcnZpZXctdXBsb2FkLmNvbXBvbmVudC5jc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE92ZXJ2aWV3VXBsb2FkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBtZXRhZGF0YVV1aWQ6IHN0cmluZ1xuICBASW5wdXQoKSBmb3JtQ29udHJvbCE6IEZvcm1Db250cm9sXG4gIEBPdXRwdXQoKSBvdmVydmlld0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8R3JhcGhpY092ZXJ2aWV3IHwgbnVsbD4oKVxuICBAT3V0cHV0KCkgYWx0VGV4dENoYW5nZTogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyKClcblxuICByZXNvdXJjZUFsdFRleHQ6IHN0cmluZ1xuICByZXNvdXJjZUZpbGVOYW1lOiBzdHJpbmdcbiAgcmVzb3VyY2VVcmw6IHN0cmluZ1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVjb3Jkc0FwaVNlcnZpY2U6IFJlY29yZHNBcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmXG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnJlY29yZHNBcGlTZXJ2aWNlLmdldEFsbFJlc291cmNlcyh0aGlzLm1ldGFkYXRhVXVpZCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXNvdXJjZXMpID0+IHtcbiAgICAgICAgaWYgKHJlc291cmNlcyAmJiByZXNvdXJjZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHRoaXMucmVzb3VyY2VVcmwgPSByZXNvdXJjZXNbMF0udXJsXG4gICAgICAgICAgdGhpcy5yZXNvdXJjZUZpbGVOYW1lID0gcmVzb3VyY2VzWzBdLmZpbGVuYW1lXG4gICAgICAgICAgaWYgKCF0aGlzLnJlc291cmNlQWx0VGV4dCkge1xuICAgICAgICAgICAgdGhpcy5yZXNvdXJjZUFsdFRleHQgPSB0aGlzLnJlc291cmNlRmlsZU5hbWVcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5yZXNvdXJjZVVybCA9ICcnXG4gICAgICAgICAgdGhpcy5yZXNvdXJjZUFsdFRleHQgPSAnJ1xuICAgICAgICAgIHRoaXMucmVzb3VyY2VGaWxlTmFtZSA9ICcnXG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpXG4gICAgICB9LFxuICAgICAgZXJyb3I6IHRoaXMuZXJyb3JIYW5kbGUsXG4gICAgfSlcbiAgfVxuXG4gIGhhbmRsZUZpbGVDaGFuZ2UoZmlsZTogRmlsZSkge1xuICAgIHRoaXMucmVjb3Jkc0FwaVNlcnZpY2VcbiAgICAgIC5wdXRSZXNvdXJjZSh0aGlzLm1ldGFkYXRhVXVpZCwgZmlsZSwgJ3B1YmxpYycpXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKHJlc291cmNlKSA9PiB7XG4gICAgICAgICAgdGhpcy5yZXNvdXJjZVVybCA9IHJlc291cmNlLnVybFxuICAgICAgICAgIHRoaXMucmVzb3VyY2VBbHRUZXh0ID0gcmVzb3VyY2UuZmlsZW5hbWVcblxuICAgICAgICAgIHRoaXMub3ZlcnZpZXdDaGFuZ2UuZW1pdCh7XG4gICAgICAgICAgICB1cmw6IG5ldyBVUkwocmVzb3VyY2UudXJsKSxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiByZXNvdXJjZS5maWxlbmFtZSxcbiAgICAgICAgICB9KVxuXG4gICAgICAgICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKVxuICAgICAgICB9LFxuICAgICAgICBlcnJvcjogdGhpcy5lcnJvckhhbmRsZSxcbiAgICAgIH0pXG4gIH1cblxuICBoYW5kbGVVcmxDaGFuZ2UodXJsOiBzdHJpbmcpIHtcbiAgICB0aGlzLnJlY29yZHNBcGlTZXJ2aWNlXG4gICAgICAucHV0UmVzb3VyY2VGcm9tVVJMKHRoaXMubWV0YWRhdGFVdWlkLCB1cmwsICdwdWJsaWMnKVxuICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IChyZXNvdXJjZSkgPT4ge1xuICAgICAgICAgIHRoaXMucmVzb3VyY2VVcmwgPSByZXNvdXJjZS51cmxcbiAgICAgICAgICB0aGlzLnJlc291cmNlQWx0VGV4dCA9IHJlc291cmNlLmZpbGVuYW1lXG5cbiAgICAgICAgICB0aGlzLm92ZXJ2aWV3Q2hhbmdlLmVtaXQoe1xuICAgICAgICAgICAgdXJsOiBuZXcgVVJMKHJlc291cmNlLnVybCksXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogcmVzb3VyY2UuZmlsZW5hbWUsXG4gICAgICAgICAgfSlcblxuICAgICAgICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKClcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IHRoaXMuZXJyb3JIYW5kbGUsXG4gICAgICB9KVxuICB9XG5cbiAgaGFuZGxlQWx0VGV4dENoYW5nZShuZXdBbHRUZXh0OiBzdHJpbmcpIHtcbiAgICB0aGlzLnJlc291cmNlQWx0VGV4dCA9IG5ld0FsdFRleHRcblxuICAgIHRoaXMub3ZlcnZpZXdDaGFuZ2UuZW1pdCh7XG4gICAgICB1cmw6IG5ldyBVUkwodGhpcy5yZXNvdXJjZVVybCksXG4gICAgICBkZXNjcmlwdGlvbjogdGhpcy5yZXNvdXJjZUFsdFRleHQsXG4gICAgfSlcblxuICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKClcbiAgfVxuXG4gIGhhbmRsZURlbGV0ZSgpIHtcbiAgICAvL3RoaXMuZm9ybUNvbnRyb2wubWFya0FzRGlydHkoKVxuICAgIHRoaXMucmVjb3Jkc0FwaVNlcnZpY2VcbiAgICAgIC5kZWxSZXNvdXJjZSh0aGlzLm1ldGFkYXRhVXVpZCwgdGhpcy5yZXNvdXJjZUZpbGVOYW1lKVxuICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgICB0aGlzLnJlc291cmNlQWx0VGV4dCA9ICcnXG4gICAgICAgICAgdGhpcy5yZXNvdXJjZVVybCA9ICcnXG5cbiAgICAgICAgICB0aGlzLm92ZXJ2aWV3Q2hhbmdlLmVtaXQobnVsbClcblxuICAgICAgICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKClcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IHRoaXMuZXJyb3JIYW5kbGUsXG4gICAgICB9KVxuICB9XG5cbiAgcHJpdmF0ZSBlcnJvckhhbmRsZSA9IChlcnJvcjogbmV2ZXIpID0+IHtcbiAgICBjb25zb2xlLmVycm9yKGVycm9yKVxuXG4gICAgdGhpcy5yZXNvdXJjZVVybCA9ICcnXG4gICAgdGhpcy5yZXNvdXJjZUFsdFRleHQgPSAnJ1xuICAgIHRoaXMucmVzb3VyY2VGaWxlTmFtZSA9ICcnXG5cbiAgICB0aGlzLm92ZXJ2aWV3Q2hhbmdlLmVtaXQobnVsbClcblxuICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKClcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBjb25zdCBvdmVydmlld0NoYW5nZXMgPSBjaGFuZ2VzWydmb3JtQ29udHJvbCddXG4gICAgaWYgKFxuICAgICAgb3ZlcnZpZXdDaGFuZ2VzICYmXG4gICAgICBvdmVydmlld0NoYW5nZXMuY3VycmVudFZhbHVlICE9PSBvdmVydmlld0NoYW5nZXMucHJldmlvdXNWYWx1ZVxuICAgICkge1xuICAgICAgbGV0IG92ZXJ2aWV3OiBHcmFwaGljT3ZlcnZpZXdcbiAgICAgIGlmIChcbiAgICAgICAgb3ZlcnZpZXdDaGFuZ2VzLmN1cnJlbnRWYWx1ZS52YWx1ZSAmJlxuICAgICAgICBvdmVydmlld0NoYW5nZXMuY3VycmVudFZhbHVlLnZhbHVlLmxlbmd0aCA+IDBcbiAgICAgICkge1xuICAgICAgICBvdmVydmlldyA9IG92ZXJ2aWV3Q2hhbmdlcy5jdXJyZW50VmFsdWUudmFsdWVbMF0gYXMgR3JhcGhpY092ZXJ2aWV3XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIGlmIChvdmVydmlldy5kZXNjcmlwdGlvbikge1xuICAgICAgICB0aGlzLnJlc291cmNlQWx0VGV4dCA9IG92ZXJ2aWV3LmRlc2NyaXB0aW9uXG4gICAgICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKClcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIjxnbi11aS1pbWFnZS1pbnB1dFxuICBbbWF4U2l6ZU1CXT1cIjVcIlxuICBbcHJldmlld1VybF09XCJyZXNvdXJjZVVybFwiXG4gIFthbHRUZXh0XT1cInJlc291cmNlQWx0VGV4dFwiXG4gIChmaWxlQ2hhbmdlKT1cImhhbmRsZUZpbGVDaGFuZ2UoJGV2ZW50KVwiXG4gICh1cmxDaGFuZ2UpPVwiaGFuZGxlVXJsQ2hhbmdlKCRldmVudClcIlxuICAoYWx0VGV4dENoYW5nZSk9XCJoYW5kbGVBbHRUZXh0Q2hhbmdlKCRldmVudClcIlxuICAoZGVsZXRlKT1cImhhbmRsZURlbGV0ZSgpXCJcbj48L2duLXVpLWltYWdlLWlucHV0PlxuIl19
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
export class FormFieldArrayComponent {
|
|
4
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.
|
|
5
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.
|
|
4
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldArrayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormFieldArrayComponent, isStandalone: true, selector: "gn-ui-form-field-array", ngImport: i0, template: "<p>form-field-array works!</p>\n", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
6
6
|
}
|
|
7
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.
|
|
7
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldArrayComponent, decorators: [{
|
|
8
8
|
type: Component,
|
|
9
9
|
args: [{ selector: 'gn-ui-form-field-array', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<p>form-field-array works!</p>\n" }]
|
|
10
10
|
}] });
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC1hcnJheS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZWRpdG9yL3NyYy9saWIvY29tcG9uZW50cy9yZWNvcmQtZm9ybS9mb3JtLWZpZWxkL2Zvcm0tZmllbGQtYXJyYXkvZm9ybS1maWVsZC1hcnJheS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZWRpdG9yL3NyYy9saWIvY29tcG9uZW50cy9yZWNvcmQtZm9ybS9mb3JtLWZpZWxkL2Zvcm0tZmllbGQtYXJyYXkvZm9ybS1maWVsZC1hcnJheS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFBOztBQVNsRSxNQUFNLE9BQU8sdUJBQXVCOytHQUF2Qix1QkFBdUI7bUdBQXZCLHVCQUF1QixrRkNUcEMsa0NBQ0E7OzRGRFFhLHVCQUF1QjtrQkFQbkMsU0FBUzsrQkFDRSx3QkFBd0IsbUJBR2pCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnbi11aS1mb3JtLWZpZWxkLWFycmF5JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0tZmllbGQtYXJyYXkuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9mb3JtLWZpZWxkLWFycmF5LmNvbXBvbmVudC5jc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1GaWVsZEFycmF5Q29tcG9uZW50IHt9XG4iLCI8cD5mb3JtLWZpZWxkLWFycmF5IHdvcmtzITwvcD5cbiJdfQ==
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, } from '@angular/core';
|
|
3
|
+
import { FormControl } from '@angular/forms';
|
|
4
|
+
import { AutocompleteComponent, DropdownSelectorComponent, UiInputsModule, } from '../../../../../../../../../libs/ui/inputs/src';
|
|
5
|
+
import { UiWidgetsModule } from '../../../../../../../../../libs/ui/widgets/src';
|
|
6
|
+
import { RoleLabels, } from '../../../../../../../../../libs/common/domain/src/lib/model/record';
|
|
7
|
+
import { TranslateModule } from '@ngx-translate/core';
|
|
8
|
+
import { debounceTime, distinctUntilChanged, firstValueFrom, Subscription, switchMap, } from 'rxjs';
|
|
9
|
+
import { PlatformServiceInterface } from '../../../../../../../../../libs/common/domain/src/lib/platform.service.interface';
|
|
10
|
+
import { OrganizationsServiceInterface } from '../../../../../../../../../libs/common/domain/src/lib/organizations.service.interface';
|
|
11
|
+
import { ContactCardComponent } from '../../../contact-card/contact-card.component';
|
|
12
|
+
import { SortableListComponent, } from '../../../../../../../../../libs/ui/elements/src';
|
|
13
|
+
import { createFuzzyFilter } from '../../../../../../../../../libs/util/shared/src';
|
|
14
|
+
import { map } from 'rxjs/operators';
|
|
15
|
+
import * as i0 from "@angular/core";
|
|
16
|
+
import * as i1 from "../../../../../../../../../libs/common/domain/src/lib/platform.service.interface";
|
|
17
|
+
import * as i2 from "../../../../../../../../../libs/common/domain/src/lib/organizations.service.interface";
|
|
18
|
+
import * as i3 from "../../../../../../../../ui/inputs/src/lib/button/button.component";
|
|
19
|
+
import * as i4 from "@angular/common";
|
|
20
|
+
import * as i5 from "@ngx-translate/core";
|
|
21
|
+
export class FormFieldContactsForResourceComponent {
|
|
22
|
+
constructor(platformServiceInterface, organizationsServiceInterface, changeDetectorRef) {
|
|
23
|
+
this.platformServiceInterface = platformServiceInterface;
|
|
24
|
+
this.organizationsServiceInterface = organizationsServiceInterface;
|
|
25
|
+
this.changeDetectorRef = changeDetectorRef;
|
|
26
|
+
this.subscription = new Subscription();
|
|
27
|
+
this.contactsForRessourceByRole = new Map();
|
|
28
|
+
this.contactsAsDynElemByRole = new Map();
|
|
29
|
+
this.rolesToPick = [
|
|
30
|
+
'resource_provider',
|
|
31
|
+
'custodian',
|
|
32
|
+
'owner',
|
|
33
|
+
'point_of_contact',
|
|
34
|
+
'author',
|
|
35
|
+
];
|
|
36
|
+
this.roleSectionsToDisplay = [];
|
|
37
|
+
this.allOrganizations = new Map();
|
|
38
|
+
/**
|
|
39
|
+
* gn-ui-autocomplete
|
|
40
|
+
*/
|
|
41
|
+
this.displayWithFn = (user) => `${user.name} ${user.surname} ${user.organisation ? `(${user.organisation})` : ''}`;
|
|
42
|
+
/**
|
|
43
|
+
* gn-ui-autocomplete
|
|
44
|
+
*/
|
|
45
|
+
this.autoCompleteAction = (query) => {
|
|
46
|
+
const fuzzyFilter = createFuzzyFilter(query);
|
|
47
|
+
return this.allUsers$.pipe(switchMap((users) => [
|
|
48
|
+
users.filter((user) => fuzzyFilter(user.username)),
|
|
49
|
+
]), map((results) => results.slice(0, 10)), debounceTime(300), distinctUntilChanged());
|
|
50
|
+
};
|
|
51
|
+
this.allUsers$ = this.platformServiceInterface.getUsers();
|
|
52
|
+
}
|
|
53
|
+
async ngOnInit() {
|
|
54
|
+
this.allOrganizations = new Map((await firstValueFrom(this.organizationsServiceInterface.organisations$)).map((organization) => [organization.name, organization]));
|
|
55
|
+
this.updateContactsForRessource();
|
|
56
|
+
this.manageRoleSectionsToDisplay(this.control.value);
|
|
57
|
+
this.filterRolesToPick();
|
|
58
|
+
this.changeDetectorRef.markForCheck();
|
|
59
|
+
this.subscription.add(this.control.valueChanges.subscribe((contactsForResource) => {
|
|
60
|
+
this.updateContactsForRessource();
|
|
61
|
+
this.manageRoleSectionsToDisplay(contactsForResource);
|
|
62
|
+
this.filterRolesToPick();
|
|
63
|
+
this.changeDetectorRef.markForCheck();
|
|
64
|
+
}));
|
|
65
|
+
}
|
|
66
|
+
addRoleToDisplay(roleToAdd) {
|
|
67
|
+
this.roleSectionsToDisplay.push(roleToAdd);
|
|
68
|
+
this.filterRolesToPick();
|
|
69
|
+
}
|
|
70
|
+
filterRolesToPick() {
|
|
71
|
+
this.rolesToPick = this.rolesToPick.filter((role) => !this.roleSectionsToDisplay.includes(role));
|
|
72
|
+
}
|
|
73
|
+
updateContactsForRessource() {
|
|
74
|
+
this.contactsForRessourceByRole = this.control.value.reduce((acc, contact) => {
|
|
75
|
+
const completeOrganization = this.allOrganizations.get(contact.organization.name);
|
|
76
|
+
const updatedContact = {
|
|
77
|
+
...contact,
|
|
78
|
+
organization: completeOrganization ??
|
|
79
|
+
{ name: contact.organization.name },
|
|
80
|
+
};
|
|
81
|
+
if (!acc.has(contact.role)) {
|
|
82
|
+
acc.set(contact.role, []);
|
|
83
|
+
}
|
|
84
|
+
acc.get(contact.role).push(updatedContact);
|
|
85
|
+
return acc;
|
|
86
|
+
}, new Map());
|
|
87
|
+
this.contactsAsDynElemByRole = this.control.value.reduce((acc, contact) => {
|
|
88
|
+
const completeOrganization = this.allOrganizations.get(contact.organization.name);
|
|
89
|
+
const updatedContact = {
|
|
90
|
+
...contact,
|
|
91
|
+
organization: completeOrganization ??
|
|
92
|
+
{ name: contact.organization.name },
|
|
93
|
+
};
|
|
94
|
+
const contactAsDynElem = {
|
|
95
|
+
component: ContactCardComponent,
|
|
96
|
+
inputs: {
|
|
97
|
+
contact: updatedContact,
|
|
98
|
+
removable: false,
|
|
99
|
+
},
|
|
100
|
+
};
|
|
101
|
+
if (!acc.has(contact.role)) {
|
|
102
|
+
acc.set(contact.role, []);
|
|
103
|
+
}
|
|
104
|
+
acc.get(contact.role).push(contactAsDynElem);
|
|
105
|
+
return acc;
|
|
106
|
+
}, new Map());
|
|
107
|
+
this.changeDetectorRef.markForCheck();
|
|
108
|
+
}
|
|
109
|
+
manageRoleSectionsToDisplay(contactsForResource) {
|
|
110
|
+
const roles = contactsForResource.map((contact) => contact.role);
|
|
111
|
+
roles.forEach((role) => {
|
|
112
|
+
if (!this.roleSectionsToDisplay.includes(role)) {
|
|
113
|
+
this.roleSectionsToDisplay.push(role);
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
removeContact(index) {
|
|
118
|
+
const newContactsforRessource = this.control.value.filter((_, i) => i !== index);
|
|
119
|
+
this.control.setValue(newContactsforRessource);
|
|
120
|
+
}
|
|
121
|
+
handleContactsChanged(event) {
|
|
122
|
+
const newContactsOrdered = event.map((contactAsDynElem) => contactAsDynElem.inputs['contact']);
|
|
123
|
+
const role = newContactsOrdered[0].role;
|
|
124
|
+
this.contactsForRessourceByRole.set(role, newContactsOrdered);
|
|
125
|
+
const newControlValue = Array.from(this.contactsForRessourceByRole.values()).flat();
|
|
126
|
+
this.control.setValue(newControlValue);
|
|
127
|
+
}
|
|
128
|
+
roleToLabel(role) {
|
|
129
|
+
return RoleLabels.get(role);
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* gn-ui-autocomplete
|
|
133
|
+
*/
|
|
134
|
+
addContact(contact, role) {
|
|
135
|
+
const newContactsForRessource = {
|
|
136
|
+
firstName: contact.name ?? '',
|
|
137
|
+
lastName: contact.surname ?? '',
|
|
138
|
+
organization: this.allOrganizations.get(contact.organisation) ??
|
|
139
|
+
{ name: contact.organisation },
|
|
140
|
+
email: contact.email ?? '',
|
|
141
|
+
role,
|
|
142
|
+
address: '',
|
|
143
|
+
phone: '',
|
|
144
|
+
position: '',
|
|
145
|
+
};
|
|
146
|
+
const newControlValue = [...this.control.value, newContactsForRessource];
|
|
147
|
+
this.control.setValue(newControlValue);
|
|
148
|
+
}
|
|
149
|
+
ngOnDestroy() {
|
|
150
|
+
this.subscription.unsubscribe();
|
|
151
|
+
}
|
|
152
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldContactsForResourceComponent, deps: [{ token: i1.PlatformServiceInterface }, { token: i2.OrganizationsServiceInterface }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
153
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormFieldContactsForResourceComponent, isStandalone: true, selector: "gn-ui-form-field-contacts-for-resource", inputs: { control: "control" }, ngImport: i0, template: "<div class=\"flex flex-col gap-3\">\n <div class=\"flex flex-row flex-wrap gap-2\" data-test=\"rolesToPick\">\n <ng-container *ngFor=\"let role of rolesToPick\">\n <gn-ui-button\n extraClass=\"px-2 py-1.5\"\n (buttonClick)=\"addRoleToDisplay(role)\"\n >\n <div class=\"flex flex-row gap-1 items-center\">\n <span class=\"text-primary text-[20px] leading-[0] font-bold pb-[5px]\"\n >₊</span\n >\n <span class=\"font-bold\" translate>{{ roleToLabel(role) }}</span>\n </div>\n </gn-ui-button>\n </ng-container>\n </div>\n <div\n class=\"mt-8\"\n *ngIf=\"\n roleSectionsToDisplay && roleSectionsToDisplay.length > 0;\n else noContact\n \"\n data-test=\"displayedRoles\"\n >\n <div\n *ngFor=\"\n let role of roleSectionsToDisplay;\n let index = index;\n let isLast = last\n \"\n class=\"flex flex-col gap-4\"\n >\n <div class=\"flex flex-row justify-between\">\n <span class=\"font-bold text-base\" translate>{{\n roleToLabel(role)\n }}</span>\n </div>\n\n <gn-ui-autocomplete\n [placeholder]=\"'Choose a contact'\"\n [action]=\"autoCompleteAction\"\n (itemSelected)=\"addContact($event, role)\"\n [displayWithFn]=\"displayWithFn\"\n [minCharacterCount]=\"1\"\n [clearOnSelection]=\"true\"\n >\n </gn-ui-autocomplete>\n\n <ng-container *ngIf=\"contactsForRessourceByRole.get(role) as contacts\">\n <ng-container *ngIf=\"contacts.length > 1\">\n <gn-ui-sortable-list\n [elements]=\"contactsAsDynElemByRole.get(role)\"\n (elementsChange)=\"handleContactsChanged($event)\"\n ></gn-ui-sortable-list>\n </ng-container>\n <ng-container *ngIf=\"contacts.length === 1\">\n <ng-container *ngFor=\"let contact of contacts\">\n <gn-ui-contact-card\n [contact]=\"contact\"\n (contactRemoved)=\"removeContact(index)\"\n ></gn-ui-contact-card> </ng-container\n ></ng-container>\n </ng-container>\n\n <hr class=\"border-t-[#D6D3D1] mt-4 mb-6\" *ngIf=\"!isLast\" />\n </div>\n </div>\n <ng-template #noContact>\n <div\n class=\"p-4 border border-primary bg-primary-lightest rounded-lg\"\n translate\n >\n editor.record.form.field.contactsForResource.noContact\n </div>\n </ng-template>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: UiInputsModule }, { kind: "component", type: i3.ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: UiWidgetsModule }, { kind: "component", type: AutocompleteComponent, selector: "gn-ui-autocomplete", inputs: ["placeholder", "action", "value", "clearOnSelection", "preventCompleteOnSelection", "autoFocus", "minCharacterCount", "allowSubmit", "displayWithFn"], outputs: ["itemSelected", "inputSubmitted", "inputCleared"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: i5.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: ContactCardComponent, selector: "gn-ui-contact-card", inputs: ["contact", "removable"], outputs: ["contactRemoved"] }, { kind: "component", type: SortableListComponent, selector: "gn-ui-sortable-list", inputs: ["elements", "addOptions"], outputs: ["elementsChange", "add"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
154
|
+
}
|
|
155
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldContactsForResourceComponent, decorators: [{
|
|
156
|
+
type: Component,
|
|
157
|
+
args: [{ selector: 'gn-ui-form-field-contacts-for-resource', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
158
|
+
DropdownSelectorComponent,
|
|
159
|
+
UiInputsModule,
|
|
160
|
+
CommonModule,
|
|
161
|
+
UiWidgetsModule,
|
|
162
|
+
AutocompleteComponent,
|
|
163
|
+
TranslateModule,
|
|
164
|
+
ContactCardComponent,
|
|
165
|
+
SortableListComponent,
|
|
166
|
+
], template: "<div class=\"flex flex-col gap-3\">\n <div class=\"flex flex-row flex-wrap gap-2\" data-test=\"rolesToPick\">\n <ng-container *ngFor=\"let role of rolesToPick\">\n <gn-ui-button\n extraClass=\"px-2 py-1.5\"\n (buttonClick)=\"addRoleToDisplay(role)\"\n >\n <div class=\"flex flex-row gap-1 items-center\">\n <span class=\"text-primary text-[20px] leading-[0] font-bold pb-[5px]\"\n >₊</span\n >\n <span class=\"font-bold\" translate>{{ roleToLabel(role) }}</span>\n </div>\n </gn-ui-button>\n </ng-container>\n </div>\n <div\n class=\"mt-8\"\n *ngIf=\"\n roleSectionsToDisplay && roleSectionsToDisplay.length > 0;\n else noContact\n \"\n data-test=\"displayedRoles\"\n >\n <div\n *ngFor=\"\n let role of roleSectionsToDisplay;\n let index = index;\n let isLast = last\n \"\n class=\"flex flex-col gap-4\"\n >\n <div class=\"flex flex-row justify-between\">\n <span class=\"font-bold text-base\" translate>{{\n roleToLabel(role)\n }}</span>\n </div>\n\n <gn-ui-autocomplete\n [placeholder]=\"'Choose a contact'\"\n [action]=\"autoCompleteAction\"\n (itemSelected)=\"addContact($event, role)\"\n [displayWithFn]=\"displayWithFn\"\n [minCharacterCount]=\"1\"\n [clearOnSelection]=\"true\"\n >\n </gn-ui-autocomplete>\n\n <ng-container *ngIf=\"contactsForRessourceByRole.get(role) as contacts\">\n <ng-container *ngIf=\"contacts.length > 1\">\n <gn-ui-sortable-list\n [elements]=\"contactsAsDynElemByRole.get(role)\"\n (elementsChange)=\"handleContactsChanged($event)\"\n ></gn-ui-sortable-list>\n </ng-container>\n <ng-container *ngIf=\"contacts.length === 1\">\n <ng-container *ngFor=\"let contact of contacts\">\n <gn-ui-contact-card\n [contact]=\"contact\"\n (contactRemoved)=\"removeContact(index)\"\n ></gn-ui-contact-card> </ng-container\n ></ng-container>\n </ng-container>\n\n <hr class=\"border-t-[#D6D3D1] mt-4 mb-6\" *ngIf=\"!isLast\" />\n </div>\n </div>\n <ng-template #noContact>\n <div\n class=\"p-4 border border-primary bg-primary-lightest rounded-lg\"\n translate\n >\n editor.record.form.field.contactsForResource.noContact\n </div>\n </ng-template>\n</div>\n" }]
|
|
167
|
+
}], ctorParameters: function () { return [{ type: i1.PlatformServiceInterface }, { type: i2.OrganizationsServiceInterface }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { control: [{
|
|
168
|
+
type: Input
|
|
169
|
+
}] } });
|
|
170
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC1jb250YWN0cy1mb3ItcmVzb3VyY2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL2VkaXRvci9zcmMvbGliL2NvbXBvbmVudHMvcmVjb3JkLWZvcm0vZm9ybS1maWVsZC9mb3JtLWZpZWxkLWNvbnRhY3RzLWZvci1yZXNvdXJjZS9mb3JtLWZpZWxkLWNvbnRhY3RzLWZvci1yZXNvdXJjZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZWRpdG9yL3NyYy9saWIvY29tcG9uZW50cy9yZWNvcmQtZm9ybS9mb3JtLWZpZWxkL2Zvcm0tZmllbGQtY29udGFjdHMtZm9yLXJlc291cmNlL2Zvcm0tZmllbGQtY29udGFjdHMtZm9yLXJlc291cmNlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsS0FBSyxHQUdOLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUM1QyxPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLHlCQUF5QixFQUN6QixjQUFjLEdBQ2YsTUFBTSwrQ0FBK0MsQ0FBQTtBQUN0RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0RBQWdELENBQUE7QUFDaEYsT0FBTyxFQUlMLFVBQVUsR0FDWCxNQUFNLG9FQUFvRSxDQUFBO0FBQzNFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUNyRCxPQUFPLEVBQ0wsWUFBWSxFQUNaLG9CQUFvQixFQUNwQixjQUFjLEVBRWQsWUFBWSxFQUNaLFNBQVMsR0FD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QUNmLHFCQUFxQiwyUkFDckIsZUFBZSxzS0FDZixvQkFBb0IsOEhBQ3BCLHFCQUFxQjs7NEZBR1oscUNBQXFDO2tCQWpCakQsU0FBUzsrQkFDRSx3Q0FBd0MsbUJBR2pDLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQO3dCQUNQLHlCQUF5Qjt3QkFDekIsY0FBYzt3QkFDZCxZQUFZO3dCQUNaLGVBQWU7d0JBQ2YscUJBQXFCO3dCQUNyQixlQUFlO3dCQUNmLG9CQUFvQjt3QkFDcEIscUJBQXFCO3FCQUN0QjsyTEFLUSxPQUFPO3NCQUFmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3JtcydcbmltcG9ydCB7XG4gIEF1dG9jb21wbGV0ZUNvbXBvbmVudCxcbiAgRHJvcGRvd25TZWxlY3RvckNvbXBvbmVudCxcbiAgVWlJbnB1dHNNb2R1bGUsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvaW5wdXRzL3NyYydcbmltcG9ydCB7IFVpV2lkZ2V0c01vZHVsZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvd2lkZ2V0cy9zcmMnXG5pbXBvcnQge1xuICBJbmRpdmlkdWFsLFxuICBPcmdhbml6YXRpb24sXG4gIFJvbGUsXG4gIFJvbGVMYWJlbHMsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3JlY29yZCdcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5pbXBvcnQge1xuICBkZWJvdW5jZVRpbWUsXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICBmaXJzdFZhbHVlRnJvbSxcbiAgT2JzZXJ2YWJsZSxcbiAgU3Vic2NyaXB0aW9uLFxuICBzd2l0Y2hNYXAsXG59IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBVc2VyTW9kZWwgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC91c2VyJ1xuaW1wb3J0IHsgUGxhdGZvcm1TZXJ2aWNlSW50ZXJmYWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvcGxhdGZvcm0uc2VydmljZS5pbnRlcmZhY2UnXG5pbXBvcnQgeyBPcmdhbml6YXRpb25zU2VydmljZUludGVyZmFjZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL29yZ2FuaXphdGlvbnMuc2VydmljZS5pbnRlcmZhY2UnXG5pbXBvcnQgeyBDb250YWN0Q2FyZENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvbnRhY3QtY2FyZC9jb250YWN0LWNhcmQuY29tcG9uZW50J1xuaW1wb3J0IHtcbiAgRHluYW1pY0VsZW1lbnQsXG4gIFNvcnRhYmxlTGlzdENvbXBvbmVudCxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9lbGVtZW50cy9zcmMnXG5pbXBvcnQgeyBjcmVhdGVGdXp6eUZpbHRlciB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdXRpbC9zaGFyZWQvc3JjJ1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLWZvcm0tZmllbGQtY29udGFjdHMtZm9yLXJlc291cmNlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0tZmllbGQtY29udGFjdHMtZm9yLXJlc291cmNlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZm9ybS1maWVsZC1jb250YWN0cy1mb3ItcmVzb3VyY2UuY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIERyb3Bkb3duU2VsZWN0b3JDb21wb25lbnQsXG4gICAgVWlJbnB1dHNNb2R1bGUsXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFVpV2lkZ2V0c01vZHVsZSxcbiAgICBBdXRvY29tcGxldGVDb21wb25lbnQsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIENvbnRhY3RDYXJkQ29tcG9uZW50LFxuICAgIFNvcnRhYmxlTGlzdENvbXBvbmVudCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRm9ybUZpZWxkQ29udGFjdHNGb3JSZXNvdXJjZUNvbXBvbmVudFxuICBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95XG57XG4gIEBJbnB1dCgpIGNvbnRyb2w6IEZvcm1Db250cm9sPEluZGl2aWR1YWxbXT5cblxuICBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKVxuXG4gIGFsbFVzZXJzJDogT2JzZXJ2YWJsZTxVc2VyTW9kZWxbXT5cblxuICBjb250YWN0c0ZvclJlc3NvdXJjZUJ5Um9sZTogTWFwPFJvbGUsIEluZGl2aWR1YWxbXT4gPSBuZXcgTWFwKClcblxuICBjb250YWN0c0FzRHluRWxlbUJ5Um9sZTogTWFwPFJvbGUsIER5bmFtaWNFbGVtZW50W10+ID0gbmV3IE1hcCgpXG5cbiAgcm9sZXNUb1BpY2s6IFJvbGVbXSA9IFtcbiAgICAncmVzb3VyY2VfcHJvdmlkZXInLFxuICAgICdjdXN0b2RpYW4nLFxuICAgICdvd25lcicsXG4gICAgJ3BvaW50X29mX2NvbnRhY3QnLFxuICAgICdhdXRob3InLFxuICBdXG5cbiAgcm9sZVNlY3Rpb25zVG9EaXNwbGF5OiBSb2xlW10gPSBbXVxuXG4gIGFsbE9yZ2FuaXphdGlvbnM6IE1hcDxzdHJpbmcsIE9yZ2FuaXphdGlvbj4gPSBuZXcgTWFwKClcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHBsYXRmb3JtU2VydmljZUludGVyZmFjZTogUGxhdGZvcm1TZXJ2aWNlSW50ZXJmYWNlLFxuICAgIHByaXZhdGUgb3JnYW5pemF0aW9uc1NlcnZpY2VJbnRlcmZhY2U6IE9yZ2FuaXphdGlvbnNTZXJ2aWNlSW50ZXJmYWNlLFxuICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmXG4gICkge1xuICAgIHRoaXMuYWxsVXNlcnMkID0gdGhpcy5wbGF0Zm9ybVNlcnZpY2VJbnRlcmZhY2UuZ2V0VXNlcnMoKVxuICB9XG5cbiAgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5hbGxPcmdhbml6YXRpb25zID0gbmV3IE1hcDxzdHJpbmcsIE9yZ2FuaXphdGlvbj4oXG4gICAgICAoXG4gICAgICAgIGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMub3JnYW5pemF0aW9uc1NlcnZpY2VJbnRlcmZhY2Uub3JnYW5pc2F0aW9ucyQpXG4gICAgICApLm1hcCgob3JnYW5pemF0aW9uKSA9PiBbb3JnYW5pemF0aW9uLm5hbWUsIG9yZ2FuaXphdGlvbl0pXG4gICAgKVxuICAgIHRoaXMudXBkYXRlQ29udGFjdHNGb3JSZXNzb3VyY2UoKVxuICAgIHRoaXMubWFuYWdlUm9sZVNlY3Rpb25zVG9EaXNwbGF5KHRoaXMuY29udHJvbC52YWx1ZSlcbiAgICB0aGlzLmZpbHRlclJvbGVzVG9QaWNrKClcblxuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKClcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9uLmFkZChcbiAgICAgIHRoaXMuY29udHJvbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKChjb250YWN0c0ZvclJlc291cmNlKSA9PiB7XG4gICAgICAgIHRoaXMudXBkYXRlQ29udGFjdHNGb3JSZXNzb3VyY2UoKVxuICAgICAgICB0aGlzLm1hbmFnZVJvbGVTZWN0aW9uc1RvRGlzcGxheShjb250YWN0c0ZvclJlc291cmNlKVxuICAgICAgICB0aGlzLmZpbHRlclJvbGVzVG9QaWNrKClcblxuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpXG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIGFkZFJvbGVUb0Rpc3BsYXkocm9sZVRvQWRkOiBzdHJpbmcpIHtcbiAgICB0aGlzLnJvbGVTZWN0aW9uc1RvRGlzcGxheS5wdXNoKHJvbGVUb0FkZClcbiAgICB0aGlzLmZpbHRlclJvbGVzVG9QaWNrKClcbiAgfVxuXG4gIGZpbHRlclJvbGVzVG9QaWNrKCkge1xuICAgIHRoaXMucm9sZXNUb1BpY2sgPSB0aGlzLnJvbGVzVG9QaWNrLmZpbHRlcihcbiAgICAgIChyb2xlKSA9PiAhdGhpcy5yb2xlU2VjdGlvbnNUb0Rpc3BsYXkuaW5jbHVkZXMocm9sZSlcbiAgICApXG4gIH1cblxuICB1cGRhdGVDb250YWN0c0ZvclJlc3NvdXJjZSgpIHtcbiAgICB0aGlzLmNvbnRhY3RzRm9yUmVzc291cmNlQnlSb2xlID0gdGhpcy5jb250cm9sLnZhbHVlLnJlZHVjZShcbiAgICAgIChhY2MsIGNvbnRhY3QpID0+IHtcbiAgICAgICAgY29uc3QgY29tcGxldGVPcmdhbml6YXRpb24gPSB0aGlzLmFsbE9yZ2FuaXphdGlvbnMuZ2V0KFxuICAgICAgICAgIGNvbnRhY3Qub3JnYW5pemF0aW9uLm5hbWVcbiAgICAgICAgKVxuXG4gICAgICAgIGNvbnN0IHVwZGF0ZWRDb250YWN0ID0ge1xuICAgICAgICAgIC4uLmNvbnRhY3QsXG4gICAgICAgICAgb3JnYW5pemF0aW9uOlxuICAgICAgICAgICAgY29tcGxldGVPcmdhbml6YXRpb24gPz9cbiAgICAgICAgICAgICh7IG5hbWU6IGNvbnRhY3Qub3JnYW5pemF0aW9uLm5hbWUgfSBhcyBPcmdhbml6YXRpb24pLFxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFhY2MuaGFzKGNvbnRhY3Qucm9sZSkpIHtcbiAgICAgICAgICBhY2Muc2V0KGNvbnRhY3Qucm9sZSwgW10pXG4gICAgICAgIH1cblxuICAgICAgICBhY2MuZ2V0KGNvbnRhY3Qucm9sZSkucHVzaCh1cGRhdGVkQ29udGFjdClcblxuICAgICAgICByZXR1cm4gYWNjXG4gICAgICB9LFxuICAgICAgbmV3IE1hcDxSb2xlLCBJbmRpdmlkdWFsW10+KClcbiAgICApXG5cbiAgICB0aGlzLmNvbnRhY3RzQXNEeW5FbGVtQnlSb2xlID0gdGhpcy5jb250cm9sLnZhbHVlLnJlZHVjZSgoYWNjLCBjb250YWN0KSA9PiB7XG4gICAgICBjb25zdCBjb21wbGV0ZU9yZ2FuaXphdGlvbiA9IHRoaXMuYWxsT3JnYW5pemF0aW9ucy5nZXQoXG4gICAgICAgIGNvbnRhY3Qub3JnYW5pemF0aW9uLm5hbWVcbiAgICAgIClcblxuICAgICAgY29uc3QgdXBkYXRlZENvbnRhY3QgPSB7XG4gICAgICAgIC4uLmNvbnRhY3QsXG4gICAgICAgIG9yZ2FuaXphdGlvbjpcbiAgICAgICAgICBjb21wbGV0ZU9yZ2FuaXphdGlvbiA/P1xuICAgICAgICAgICh7IG5hbWU6IGNvbnRhY3Qub3JnYW5pemF0aW9uLm5hbWUgfSBhcyBPcmdhbml6YXRpb24pLFxuICAgICAgfVxuXG4gICAgICBjb25zdCBjb250YWN0QXNEeW5FbGVtID0ge1xuICAgICAgICBjb21wb25lbnQ6IENvbnRhY3RDYXJkQ29tcG9uZW50LFxuICAgICAgICBpbnB1dHM6IHtcbiAgICAgICAgICBjb250YWN0OiB1cGRhdGVkQ29udGFjdCxcbiAgICAgICAgICByZW1vdmFibGU6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgfSBhcyBEeW5hbWljRWxlbWVudFxuXG4gICAgICBpZiAoIWFjYy5oYXMoY29udGFjdC5yb2xlKSkge1xuICAgICAgICBhY2Muc2V0KGNvbnRhY3Qucm9sZSwgW10pXG4gICAgICB9XG5cbiAgICAgIGFjYy5nZXQoY29udGFjdC5yb2xlKS5wdXNoKGNvbnRhY3RBc0R5bkVsZW0pXG5cbiAgICAgIHJldHVybiBhY2NcbiAgICB9LCBuZXcgTWFwPFJvbGUsIER5bmFtaWNFbGVtZW50W10+KCkpXG5cbiAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpXG4gIH1cblxuICBtYW5hZ2VSb2xlU2VjdGlvbnNUb0Rpc3BsYXkoY29udGFjdHNGb3JSZXNvdXJjZTogSW5kaXZpZHVhbFtdKSB7XG4gICAgY29uc3Qgcm9sZXMgPSBjb250YWN0c0ZvclJlc291cmNlLm1hcChcbiAgICAgIChjb250YWN0OiBJbmRpdmlkdWFsKSA9PiBjb250YWN0LnJvbGVcbiAgICApIGFzIFJvbGVbXVxuXG4gICAgcm9sZXMuZm9yRWFjaCgocm9sZTogUm9sZSkgPT4ge1xuICAgICAgaWYgKCF0aGlzLnJvbGVTZWN0aW9uc1RvRGlzcGxheS5pbmNsdWRlcyhyb2xlKSkge1xuICAgICAgICB0aGlzLnJvbGVTZWN0aW9uc1RvRGlzcGxheS5wdXNoKHJvbGUpXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIHJlbW92ZUNvbnRhY3QoaW5kZXg6IG51bWJlcikge1xuICAgIGNvbnN0IG5ld0NvbnRhY3RzZm9yUmVzc291cmNlID0gdGhpcy5jb250cm9sLnZhbHVlLmZpbHRlcihcbiAgICAgIChfLCBpKSA9PiBpICE9PSBpbmRleFxuICAgIClcbiAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUobmV3Q29udGFjdHNmb3JSZXNzb3VyY2UpXG4gIH1cblxuICBoYW5kbGVDb250YWN0c0NoYW5nZWQoZXZlbnQ6IER5bmFtaWNFbGVtZW50W10pIHtcbiAgICBjb25zdCBuZXdDb250YWN0c09yZGVyZWQgPSBldmVudC5tYXAoXG4gICAgICAoY29udGFjdEFzRHluRWxlbSkgPT4gY29udGFjdEFzRHluRWxlbS5pbnB1dHNbJ2NvbnRhY3QnXVxuICAgICkgYXMgSW5kaXZpZHVhbFtdXG5cbiAgICBjb25zdCByb2xlID0gbmV3Q29udGFjdHNPcmRlcmVkWzBdLnJvbGVcblxuICAgIHRoaXMuY29udGFjdHNGb3JSZXNzb3VyY2VCeVJvbGUuc2V0KHJvbGUsIG5ld0NvbnRhY3RzT3JkZXJlZClcblxuICAgIGNvbnN0IG5ld0NvbnRyb2xWYWx1ZSA9IEFycmF5LmZyb20oXG4gICAgICB0aGlzLmNvbnRhY3RzRm9yUmVzc291cmNlQnlSb2xlLnZhbHVlcygpXG4gICAgKS5mbGF0KClcblxuICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZShuZXdDb250cm9sVmFsdWUpXG4gIH1cblxuICBwcm90ZWN0ZWQgcm9sZVRvTGFiZWwocm9sZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gUm9sZUxhYmVscy5nZXQocm9sZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBnbi11aS1hdXRvY29tcGxldGVcbiAgICovXG4gIGRpc3BsYXlXaXRoRm46ICh1c2VyOiBVc2VyTW9kZWwpID0+IHN0cmluZyA9ICh1c2VyKSA9PlxuICAgIGAke3VzZXIubmFtZX0gJHt1c2VyLnN1cm5hbWV9ICR7XG4gICAgICB1c2VyLm9yZ2FuaXNhdGlvbiA/IGAoJHt1c2VyLm9yZ2FuaXNhdGlvbn0pYCA6ICcnXG4gICAgfWBcblxuICAvKipcbiAgICogZ24tdWktYXV0b2NvbXBsZXRlXG4gICAqL1xuICBhdXRvQ29tcGxldGVBY3Rpb24gPSAocXVlcnk6IHN0cmluZykgPT4ge1xuICAgIGNvbnN0IGZ1enp5RmlsdGVyID0gY3JlYXRlRnV6enlGaWx0ZXIocXVlcnkpXG4gICAgcmV0dXJuIHRoaXMuYWxsVXNlcnMkLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKHVzZXJzKSA9PiBbXG4gICAgICAgIHVzZXJzLmZpbHRlcigodXNlcikgPT4gZnV6enlGaWx0ZXIodXNlci51c2VybmFtZSkpLFxuICAgICAgXSksXG4gICAgICBtYXAoKHJlc3VsdHMpID0+IHJlc3VsdHMuc2xpY2UoMCwgMTApKSxcbiAgICAgIGRlYm91bmNlVGltZSgzMDApLFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICAgIClcbiAgfVxuXG4gIC8qKlxuICAgKiBnbi11aS1hdXRvY29tcGxldGVcbiAgICovXG4gIGFkZENvbnRhY3QoY29udGFjdDogVXNlck1vZGVsLCByb2xlOiBzdHJpbmcpIHtcbiAgICBjb25zdCBuZXdDb250YWN0c0ZvclJlc3NvdXJjZSA9IHtcbiAgICAgIGZpcnN0TmFtZTogY29udGFjdC5uYW1lID8/ICcnLFxuICAgICAgbGFzdE5hbWU6IGNvbnRhY3Quc3VybmFtZSA/PyAnJyxcbiAgICAgIG9yZ2FuaXphdGlvbjpcbiAgICAgICAgdGhpcy5hbGxPcmdhbml6YXRpb25zLmdldChjb250YWN0Lm9yZ2FuaXNhdGlvbikgPz9cbiAgICAgICAgKHsgbmFtZTogY29udGFjdC5vcmdhbmlzYXRpb24gfSBhcyBPcmdhbml6YXRpb24pLFxuICAgICAgZW1haWw6IGNvbnRhY3QuZW1haWwgPz8gJycsXG4gICAgICByb2xlLFxuICAgICAgYWRkcmVzczogJycsXG4gICAgICBwaG9uZTogJycsXG4gICAgICBwb3NpdGlvbjogJycsXG4gICAgfSBhcyBJbmRpdmlkdWFsXG5cbiAgICBjb25zdCBuZXdDb250cm9sVmFsdWUgPSBbLi4udGhpcy5jb250cm9sLnZhbHVlLCBuZXdDb250YWN0c0ZvclJlc3NvdXJjZV1cblxuICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZShuZXdDb250cm9sVmFsdWUpXG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpXG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC0zXCI+XG4gIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGZsZXgtd3JhcCBnYXAtMlwiIGRhdGEtdGVzdD1cInJvbGVzVG9QaWNrXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcm9sZSBvZiByb2xlc1RvUGlja1wiPlxuICAgICAgPGduLXVpLWJ1dHRvblxuICAgICAgICBleHRyYUNsYXNzPVwicHgtMiBweS0xLjVcIlxuICAgICAgICAoYnV0dG9uQ2xpY2spPVwiYWRkUm9sZVRvRGlzcGxheShyb2xlKVwiXG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGdhcC0xIGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1wcmltYXJ5IHRleHQtWzIwcHhdIGxlYWRpbmctWzBdIGZvbnQtYm9sZCBwYi1bNXB4XVwiXG4gICAgICAgICAgICA+JiM4MzMwOzwvc3BhblxuICAgICAgICAgID5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImZvbnQtYm9sZFwiIHRyYW5zbGF0ZT57eyByb2xlVG9MYWJlbChyb2xlKSB9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2duLXVpLWJ1dHRvbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG4gIDxkaXZcbiAgICBjbGFzcz1cIm10LThcIlxuICAgICpuZ0lmPVwiXG4gICAgICByb2xlU2VjdGlvbnNUb0Rpc3BsYXkgJiYgcm9sZVNlY3Rpb25zVG9EaXNwbGF5Lmxlbmd0aCA+IDA7XG4gICAgICBlbHNlIG5vQ29udGFjdFxuICAgIFwiXG4gICAgZGF0YS10ZXN0PVwiZGlzcGxheWVkUm9sZXNcIlxuICA+XG4gICAgPGRpdlxuICAgICAgKm5nRm9yPVwiXG4gICAgICAgIGxldCByb2xlIG9mIHJvbGVTZWN0aW9uc1RvRGlzcGxheTtcbiAgICAgICAgbGV0IGluZGV4ID0gaW5kZXg7XG4gICAgICAgIGxldCBpc0xhc3QgPSBsYXN0XG4gICAgICBcIlxuICAgICAgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC00XCJcbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBqdXN0aWZ5LWJldHdlZW5cIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJmb250LWJvbGQgdGV4dC1iYXNlXCIgdHJhbnNsYXRlPnt7XG4gICAgICAgICAgcm9sZVRvTGFiZWwocm9sZSlcbiAgICAgICAgfX08L3NwYW4+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGduLXVpLWF1dG9jb21wbGV0ZVxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0Nob29zZSBhIGNvbnRhY3QnXCJcbiAgICAgICAgW2FjdGlvbl09XCJhdXRvQ29tcGxldGVBY3Rpb25cIlxuICAgICAgICAoaXRlbVNlbGVjdGVkKT1cImFkZENvbnRhY3QoJGV2ZW50LCByb2xlKVwiXG4gICAgICAgIFtkaXNwbGF5V2l0aEZuXT1cImRpc3BsYXlXaXRoRm5cIlxuICAgICAgICBbbWluQ2hhcmFjdGVyQ291bnRdPVwiMVwiXG4gICAgICAgIFtjbGVhck9uU2VsZWN0aW9uXT1cInRydWVcIlxuICAgICAgPlxuICAgICAgPC9nbi11aS1hdXRvY29tcGxldGU+XG5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb250YWN0c0ZvclJlc3NvdXJjZUJ5Um9sZS5nZXQocm9sZSkgYXMgY29udGFjdHNcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbnRhY3RzLmxlbmd0aCA+IDFcIj5cbiAgICAgICAgICA8Z24tdWktc29ydGFibGUtbGlzdFxuICAgICAgICAgICAgW2VsZW1lbnRzXT1cImNvbnRhY3RzQXNEeW5FbGVtQnlSb2xlLmdldChyb2xlKVwiXG4gICAgICAgICAgICAoZWxlbWVudHNDaGFuZ2UpPVwiaGFuZGxlQ29udGFjdHNDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICAgID48L2duLXVpLXNvcnRhYmxlLWxpc3Q+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29udGFjdHMubGVuZ3RoID09PSAxXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29udGFjdCBvZiBjb250YWN0c1wiPlxuICAgICAgICAgICAgPGduLXVpLWNvbnRhY3QtY2FyZFxuICAgICAgICAgICAgICBbY29udGFjdF09XCJjb250YWN0XCJcbiAgICAgICAgICAgICAgKGNvbnRhY3RSZW1vdmVkKT1cInJlbW92ZUNvbnRhY3QoaW5kZXgpXCJcbiAgICAgICAgICAgID48L2duLXVpLWNvbnRhY3QtY2FyZD4gPC9uZy1jb250YWluZXJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxociBjbGFzcz1cImJvcmRlci10LVsjRDZEM0QxXSBtdC00IG1iLTZcIiAqbmdJZj1cIiFpc0xhc3RcIiAvPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPG5nLXRlbXBsYXRlICNub0NvbnRhY3Q+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJwLTQgYm9yZGVyIGJvcmRlci1wcmltYXJ5IGJnLXByaW1hcnktbGlnaHRlc3Qgcm91bmRlZC1sZ1wiXG4gICAgICB0cmFuc2xhdGVcbiAgICA+XG4gICAgICBlZGl0b3IucmVjb3JkLmZvcm0uZmllbGQuY29udGFjdHNGb3JSZXNvdXJjZS5ub0NvbnRhY3RcbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuIl19
|