geonetwork-ui 2.5.0-dev.da7bc314b → 2.5.0-dev.e122921ef
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/gn4.field.mapper.mjs +11 -1
- package/esm2022/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.mjs +1 -1
- package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.mjs +20 -17
- package/esm2022/libs/api/repository/src/lib/gn4/gn4-repository.mjs +25 -9
- package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.mjs +14 -13
- package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +1 -1
- package/esm2022/libs/common/domain/src/lib/repository/records-repository.interface.mjs +1 -1
- package/esm2022/libs/feature/dataviz/src/lib/chart-view/chart-view.component.mjs +7 -4
- package/esm2022/libs/feature/dataviz/src/lib/service/data.service.mjs +8 -8
- package/esm2022/libs/feature/dataviz/src/lib/table-view/table-view.component.mjs +7 -4
- package/esm2022/libs/feature/editor/src/index.mjs +2 -1
- package/esm2022/libs/feature/editor/src/lib/components/constraint-card/constraint-card.component.mjs +3 -3
- package/esm2022/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.mjs +2 -2
- package/esm2022/libs/feature/editor/src/lib/components/import-record/import-record.component.mjs +5 -5
- package/esm2022/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.mjs +5 -3
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts/form-field-contacts.component.mjs +2 -2
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.mjs +9 -11
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.mjs +2 -2
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.mjs +2 -2
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.mjs +2 -2
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.mjs +2 -2
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/index.mjs +2 -1
- package/esm2022/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.mjs +7 -23
- package/esm2022/libs/feature/editor/src/lib/fields.config.mjs +2 -2
- package/esm2022/libs/feature/editor/src/lib/models/wizard-field.type.mjs +3 -4
- package/esm2022/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-from-catalog.component.mjs +1 -1
- package/esm2022/libs/feature/record/src/lib/data-view/data-view.component.mjs +25 -5
- package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +10 -7
- package/esm2022/libs/feature/record/src/lib/state/mdview.actions.mjs +4 -1
- package/esm2022/libs/feature/record/src/lib/state/mdview.effects.mjs +7 -2
- package/esm2022/libs/feature/record/src/lib/state/mdview.facade.mjs +9 -1
- package/esm2022/libs/feature/record/src/lib/state/mdview.reducer.mjs +19 -1
- package/esm2022/libs/feature/record/src/lib/state/mdview.selectors.mjs +6 -1
- package/esm2022/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.mjs +15 -3
- package/esm2022/libs/feature/search/src/lib/results-table/results-table-container.component.mjs +1 -1
- package/esm2022/libs/ui/dataviz/src/lib/data-table/data-table.component.mjs +3 -3
- package/esm2022/libs/ui/elements/src/lib/application-banner/application-banner.component.mjs +3 -3
- package/esm2022/libs/ui/elements/src/lib/image-input/image-input.component.mjs +32 -31
- package/esm2022/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.mjs +3 -3
- package/esm2022/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.mjs +23 -3
- package/esm2022/libs/ui/inputs/src/index.mjs +1 -2
- package/esm2022/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.mjs +94 -8
- package/esm2022/libs/ui/inputs/src/lib/file-input/file-input.component.mjs +2 -2
- package/esm2022/libs/ui/inputs/src/lib/ui-inputs.module.mjs +1 -6
- package/esm2022/libs/ui/inputs/src/lib/url-input/url-input.component.mjs +6 -4
- package/esm2022/libs/ui/search/src/lib/record-preview-row/record-preview-row.component.mjs +3 -3
- package/esm2022/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.mjs +14 -4
- package/esm2022/libs/ui/search/src/lib/results-table/results-table.component.mjs +10 -3
- package/esm2022/libs/ui/widgets/src/index.mjs +1 -2
- package/esm2022/libs/ui/widgets/src/lib/progress-bar/progress-bar.component.mjs +10 -3
- package/esm2022/libs/ui/widgets/src/lib/ui-widgets.module.mjs +5 -6
- package/esm2022/libs/util/data-fetcher/src/lib/data-fetcher.mjs +5 -4
- package/esm2022/libs/util/data-fetcher/src/lib/readers/base-cache.mjs +12 -0
- package/esm2022/libs/util/data-fetcher/src/lib/readers/base-file.mjs +3 -3
- package/esm2022/libs/util/data-fetcher/src/lib/readers/base.mjs +1 -1
- package/esm2022/libs/util/data-fetcher/src/lib/readers/csv.mjs +2 -2
- package/esm2022/libs/util/data-fetcher/src/lib/readers/excel.mjs +2 -2
- package/esm2022/libs/util/data-fetcher/src/lib/readers/geojson.mjs +2 -2
- package/esm2022/libs/util/data-fetcher/src/lib/readers/gml.mjs +5 -3
- package/esm2022/libs/util/data-fetcher/src/lib/readers/json.mjs +2 -2
- package/esm2022/libs/util/data-fetcher/src/lib/readers/wfs.mjs +19 -11
- package/esm2022/libs/util/data-fetcher/src/lib/utils.mjs +13 -9
- package/esm2022/translations/de.json +5 -77
- package/esm2022/translations/en.json +5 -77
- package/esm2022/translations/es.json +3 -75
- package/esm2022/translations/fr.json +17 -89
- package/esm2022/translations/it.json +22 -93
- package/esm2022/translations/nl.json +3 -75
- package/esm2022/translations/pt.json +3 -75
- package/fesm2022/geonetwork-ui.mjs +567 -944
- package/fesm2022/geonetwork-ui.mjs.map +1 -1
- package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.d.ts +3 -0
- package/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts +1 -0
- package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts +2 -1
- package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts.map +1 -1
- package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +6 -0
- package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
- package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts +2 -1
- package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts.map +1 -1
- package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts +2 -1
- package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts.map +1 -1
- package/libs/feature/dataviz/src/lib/service/data.service.d.ts +2 -2
- package/libs/feature/dataviz/src/lib/service/data.service.d.ts.map +1 -1
- package/libs/feature/dataviz/src/lib/table-view/table-view.component.d.ts +2 -1
- package/libs/feature/dataviz/src/lib/table-view/table-view.component.d.ts.map +1 -1
- package/libs/feature/editor/src/index.d.ts +1 -0
- package/libs/feature/editor/src/index.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.d.ts +1 -0
- package/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.d.ts +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.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/index.d.ts +1 -0
- package/libs/feature/editor/src/lib/components/record-form/form-field/index.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.d.ts +1 -3
- package/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/models/wizard-field.type.d.ts +2 -3
- package/libs/feature/editor/src/lib/models/wizard-field.type.d.ts.map +1 -1
- package/libs/feature/record/src/lib/data-view/data-view.component.d.ts +5 -1
- package/libs/feature/record/src/lib/data-view/data-view.component.d.ts.map +1 -1
- package/libs/feature/record/src/lib/map-view/map-view.component.d.ts +3 -2
- package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
- package/libs/feature/record/src/lib/state/mdview.actions.d.ts +16 -1
- package/libs/feature/record/src/lib/state/mdview.actions.d.ts.map +1 -1
- package/libs/feature/record/src/lib/state/mdview.effects.d.ts +5 -0
- 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 +2 -0
- package/libs/feature/record/src/lib/state/mdview.facade.d.ts.map +1 -1
- package/libs/feature/record/src/lib/state/mdview.reducer.d.ts +4 -1
- package/libs/feature/record/src/lib/state/mdview.reducer.d.ts.map +1 -1
- package/libs/feature/record/src/lib/state/mdview.selectors.d.ts +2 -0
- package/libs/feature/record/src/lib/state/mdview.selectors.d.ts.map +1 -1
- package/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.d.ts +5 -1
- package/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/image-input/image-input.component.d.ts +6 -6
- package/libs/ui/elements/src/lib/image-input/image-input.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts.map +1 -1
- package/libs/ui/inputs/src/index.d.ts +0 -1
- package/libs/ui/inputs/src/index.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.d.ts +23 -1
- package/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts +27 -28
- package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/url-input/url-input.component.d.ts +2 -1
- package/libs/ui/inputs/src/lib/url-input/url-input.component.d.ts.map +1 -1
- package/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.d.ts +4 -2
- package/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.d.ts.map +1 -1
- package/libs/ui/search/src/lib/results-table/results-table.component.d.ts +3 -1
- package/libs/ui/search/src/lib/results-table/results-table.component.d.ts.map +1 -1
- package/libs/ui/widgets/src/index.d.ts +0 -1
- package/libs/ui/widgets/src/index.d.ts.map +1 -1
- package/libs/ui/widgets/src/lib/progress-bar/progress-bar.component.d.ts +1 -1
- package/libs/ui/widgets/src/lib/progress-bar/progress-bar.component.d.ts.map +1 -1
- package/libs/ui/widgets/src/lib/ui-widgets.module.d.ts +8 -9
- package/libs/ui/widgets/src/lib/ui-widgets.module.d.ts.map +1 -1
- package/libs/util/data-fetcher/src/lib/data-fetcher.d.ts +2 -2
- package/libs/util/data-fetcher/src/lib/data-fetcher.d.ts.map +1 -1
- package/libs/util/data-fetcher/src/lib/readers/base-cache.d.ts +8 -0
- package/libs/util/data-fetcher/src/lib/readers/base-cache.d.ts.map +1 -0
- package/libs/util/data-fetcher/src/lib/readers/base-file.d.ts +2 -2
- package/libs/util/data-fetcher/src/lib/readers/base-file.d.ts.map +1 -1
- package/libs/util/data-fetcher/src/lib/readers/base.d.ts +2 -2
- package/libs/util/data-fetcher/src/lib/readers/base.d.ts.map +1 -1
- package/libs/util/data-fetcher/src/lib/readers/gml.d.ts +5 -3
- package/libs/util/data-fetcher/src/lib/readers/gml.d.ts.map +1 -1
- package/libs/util/data-fetcher/src/lib/readers/wfs.d.ts +7 -4
- package/libs/util/data-fetcher/src/lib/readers/wfs.d.ts.map +1 -1
- package/libs/util/data-fetcher/src/lib/utils.d.ts +2 -2
- package/libs/util/data-fetcher/src/lib/utils.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +25 -0
- package/src/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.ts +4 -0
- package/src/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.ts +22 -16
- package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +44 -13
- package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +24 -26
- package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +3 -1
- package/src/libs/common/domain/src/lib/repository/records-repository.interface.ts +4 -1
- package/src/libs/common/fixtures/src/lib/records.fixtures.ts +165 -0
- package/src/libs/feature/dataviz/src/lib/chart-view/chart-view.component.ts +4 -1
- package/src/libs/feature/dataviz/src/lib/service/data.service.ts +22 -9
- package/src/libs/feature/dataviz/src/lib/table-view/table-view.component.ts +2 -1
- package/src/libs/feature/editor/src/index.ts +1 -0
- package/src/libs/feature/editor/src/lib/components/constraint-card/constraint-card.component.html +1 -1
- package/src/libs/feature/editor/src/lib/components/import-record/import-record.component.ts +3 -3
- package/src/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.html +1 -0
- package/src/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.ts +2 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.html +1 -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 +10 -10
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.ts +1 -1
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.ts +1 -1
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/index.ts +1 -0
- package/src/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.html +0 -13
- package/src/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.ts +0 -20
- package/src/libs/feature/editor/src/lib/fields.config.ts +1 -1
- package/src/libs/feature/editor/src/lib/models/wizard-field.type.ts +0 -1
- package/src/libs/feature/record/src/lib/data-view/data-view.component.html +24 -11
- package/src/libs/feature/record/src/lib/data-view/data-view.component.ts +26 -4
- package/src/libs/feature/record/src/lib/map-view/map-view.component.html +71 -60
- package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +6 -3
- package/src/libs/feature/record/src/lib/state/mdview.actions.ts +16 -0
- package/src/libs/feature/record/src/lib/state/mdview.effects.ts +21 -2
- package/src/libs/feature/record/src/lib/state/mdview.facade.ts +15 -0
- package/src/libs/feature/record/src/lib/state/mdview.reducer.ts +30 -1
- package/src/libs/feature/record/src/lib/state/mdview.selectors.ts +12 -0
- package/src/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.html +3 -0
- package/src/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.ts +7 -0
- package/src/libs/ui/dataviz/src/lib/data-table/data-table.component.html +3 -1
- package/src/libs/ui/elements/src/lib/application-banner/application-banner.component.html +2 -2
- package/src/libs/ui/elements/src/lib/image-input/image-input.component.html +20 -15
- package/src/libs/ui/elements/src/lib/image-input/image-input.component.ts +30 -33
- package/src/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.ts +2 -2
- package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.html +21 -9
- package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.ts +13 -0
- package/src/libs/ui/inputs/src/index.ts +0 -1
- package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.html +36 -19
- package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.ts +91 -2
- package/src/libs/ui/inputs/src/lib/ui-inputs.module.ts +0 -3
- package/src/libs/ui/inputs/src/lib/url-input/url-input.component.ts +3 -2
- package/src/libs/ui/search/src/lib/record-preview-row/record-preview-row.component.html +1 -1
- package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.html +37 -1
- package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.ts +8 -2
- package/src/libs/ui/search/src/lib/results-table/results-table.component.html +2 -0
- package/src/libs/ui/search/src/lib/results-table/results-table.component.ts +6 -0
- package/src/libs/ui/widgets/src/index.ts +0 -1
- package/src/libs/ui/widgets/src/lib/progress-bar/progress-bar.component.html +36 -11
- package/src/libs/ui/widgets/src/lib/progress-bar/progress-bar.component.ts +9 -1
- package/src/libs/ui/widgets/src/lib/ui-widgets.module.ts +2 -3
- package/src/libs/util/data-fetcher/src/lib/data-fetcher.ts +13 -4
- package/src/libs/util/data-fetcher/src/lib/readers/base-cache.ts +14 -0
- package/src/libs/util/data-fetcher/src/lib/readers/base-file.ts +2 -1
- package/src/libs/util/data-fetcher/src/lib/readers/base.ts +2 -2
- package/src/libs/util/data-fetcher/src/lib/readers/csv.ts +1 -1
- package/src/libs/util/data-fetcher/src/lib/readers/excel.ts +1 -1
- package/src/libs/util/data-fetcher/src/lib/readers/geojson.ts +1 -1
- package/src/libs/util/data-fetcher/src/lib/readers/gml.ts +7 -7
- package/src/libs/util/data-fetcher/src/lib/readers/json.ts +1 -1
- package/src/libs/util/data-fetcher/src/lib/readers/wfs.ts +34 -11
- package/src/libs/util/data-fetcher/src/lib/utils.ts +38 -32
- package/translations/de.json +5 -77
- package/translations/en.json +5 -77
- package/translations/es.json +3 -75
- package/translations/fr.json +17 -89
- package/translations/it.json +22 -93
- package/translations/nl.json +3 -75
- package/translations/pt.json +3 -75
- package/translations/sk.json +3 -75
- package/esm2022/libs/ui/inputs/src/lib/chips-input/chips-input.component.mjs +0 -78
- package/esm2022/libs/ui/widgets/src/lib/step-bar/step-bar.component.mjs +0 -55
- package/libs/ui/inputs/src/lib/chips-input/chips-input.component.d.ts +0 -33
- package/libs/ui/inputs/src/lib/chips-input/chips-input.component.d.ts.map +0 -1
- package/libs/ui/widgets/src/lib/step-bar/step-bar.component.d.ts +0 -21
- package/libs/ui/widgets/src/lib/step-bar/step-bar.component.d.ts.map +0 -1
- package/src/libs/data-access/datafeeder/src/index.ts +0 -1
- package/src/libs/data-access/datafeeder/src/openapi/api/api.ts +0 -11
- package/src/libs/data-access/datafeeder/src/openapi/api/config.api.service.ts +0 -168
- package/src/libs/data-access/datafeeder/src/openapi/api/dataPublishing.api.service.ts +0 -270
- package/src/libs/data-access/datafeeder/src/openapi/api/fileUpload.api.service.ts +0 -734
- package/src/libs/data-access/datafeeder/src/openapi/api.module.ts +0 -46
- package/src/libs/data-access/datafeeder/src/openapi/configuration.ts +0 -125
- package/src/libs/data-access/datafeeder/src/openapi/encoder.ts +0 -20
- package/src/libs/data-access/datafeeder/src/openapi/index.ts +0 -5
- package/src/libs/data-access/datafeeder/src/openapi/model/analysisStatusEnum.api.model.ts +0 -24
- package/src/libs/data-access/datafeeder/src/openapi/model/boundingBox.api.model.ts +0 -20
- package/src/libs/data-access/datafeeder/src/openapi/model/cRS.api.model.ts +0 -25
- package/src/libs/data-access/datafeeder/src/openapi/model/datasetMetadata.api.model.ts +0 -45
- package/src/libs/data-access/datafeeder/src/openapi/model/datasetPublishRequest.api.model.ts +0 -39
- package/src/libs/data-access/datafeeder/src/openapi/model/datasetPublishingStatus.api.model.ts +0 -50
- package/src/libs/data-access/datafeeder/src/openapi/model/datasetUploadStatus.api.model.ts +0 -39
- package/src/libs/data-access/datafeeder/src/openapi/model/models.ts +0 -13
- package/src/libs/data-access/datafeeder/src/openapi/model/property.api.model.ts +0 -17
- package/src/libs/data-access/datafeeder/src/openapi/model/publishJobStatus.api.model.ts +0 -33
- package/src/libs/data-access/datafeeder/src/openapi/model/publishRequest.api.model.ts +0 -16
- package/src/libs/data-access/datafeeder/src/openapi/model/publishStatusEnum.api.model.ts +0 -20
- package/src/libs/data-access/datafeeder/src/openapi/model/publishStepEnum.api.model.ts +0 -42
- package/src/libs/data-access/datafeeder/src/openapi/model/uploadJobStatus.api.model.ts +0 -33
- package/src/libs/data-access/datafeeder/src/openapi/variables.ts +0 -9
- package/src/libs/data-access/datafeeder/src/spec.yaml +0 -537
- package/src/libs/ui/inputs/src/lib/chips-input/chips-input.component.css +0 -36
- package/src/libs/ui/inputs/src/lib/chips-input/chips-input.component.html +0 -23
- package/src/libs/ui/inputs/src/lib/chips-input/chips-input.component.ts +0 -81
- package/src/libs/ui/widgets/src/lib/step-bar/step-bar.component.css +0 -3
- package/src/libs/ui/widgets/src/lib/step-bar/step-bar.component.html +0 -13
- package/src/libs/ui/widgets/src/lib/step-bar/step-bar.component.ts +0 -55
|
@@ -16,7 +16,7 @@ import { TranslateMessageFormatCompiler } from 'ngx-translate-messageformat-comp
|
|
|
16
16
|
import { TranslateHttpLoader } from '@ngx-translate/http-loader';
|
|
17
17
|
import { map as map$1, catchError, tap as tap$1, shareReplay, filter, startWith, withLatestFrom, switchMap as switchMap$1, take, mergeMap, throttleTime, distinctUntilChanged, debounceTime, finalize, first as first$1, share, pairwise, delay, defaultIfEmpty, toArray } from 'rxjs/operators';
|
|
18
18
|
import * as i1$2 from '@angular/common';
|
|
19
|
-
import { CommonModule, NgOptimizedImage, DatePipe, NgIf } from '@angular/common';
|
|
19
|
+
import { CommonModule, NgSwitch, NgSwitchCase, NgSwitchDefault, NgOptimizedImage, DatePipe, NgIf } from '@angular/common';
|
|
20
20
|
import { of, map as map$2, lastValueFrom, Subject, switchMap, combineLatest, from, exhaustMap, throwError, forkJoin, takeLast, firstValueFrom, merge, BehaviorSubject, fromEvent, animationFrameScheduler, ReplaySubject, Subscription, first, distinctUntilChanged as distinctUntilChanged$1, filter as filter$1, tap as tap$2, Observable, buffer, debounceTime as debounceTime$1, combineLatestWith, catchError as catchError$1, timer, takeUntil, EMPTY, mergeMap as mergeMap$1, startWith as startWith$1, withLatestFrom as withLatestFrom$1, shareReplay as shareReplay$1, pairwise as pairwise$1 } from 'rxjs';
|
|
21
21
|
import { lt, valid, coerce, satisfies, ltr } from 'semver';
|
|
22
22
|
import chroma from 'chroma-js';
|
|
@@ -26,7 +26,7 @@ import { createAction, props, createReducer, on, createFeatureSelector, createSe
|
|
|
26
26
|
import EmblaCarousel from 'embla-carousel';
|
|
27
27
|
import * as i2$2 from '@ng-icons/core';
|
|
28
28
|
import { provideIcons, NgIcon, NgIconComponent, provideNgIconsConfig, NgIconsModule } from '@ng-icons/core';
|
|
29
|
-
import { iconoirNavArrowRight, iconoirNavArrowLeft, iconoirNavArrowDown, iconoirNavArrowUp, iconoirSearch, iconoirCalendar, iconoirLink, iconoirArrowUp, iconoirCloudUpload, iconoirFramePlusIn, iconoirMediaImage, iconoirMediaImageXmark, iconoirBin, iconoirPlus, iconoirUser, iconoirLock, iconoirImport, iconoirLightBulbOn, iconoirArrowLeft, iconoirAttachment, iconoirRefresh } from '@ng-icons/iconoir';
|
|
29
|
+
import { iconoirNavArrowRight, iconoirNavArrowLeft, iconoirNavArrowDown, iconoirNavArrowUp, iconoirSearch, iconoirLongArrowDownLeft, iconoirCalendar, iconoirLink, iconoirArrowUp, iconoirCloudUpload, iconoirFramePlusIn, iconoirMediaImage, iconoirMediaImageXmark, iconoirBin, iconoirPlus, iconoirUser, iconoirLock, iconoirImport, iconoirLightBulbOn, iconoirArrowLeft, iconoirAttachment, iconoirRefresh } from '@ng-icons/iconoir';
|
|
30
30
|
import { matExpandMore, matExpandLess, matAdd, matRemove, matClose, matContentCopy, matSearch, matStar, matStarBorder, matChevronLeft, matChevronRight, matArrowForward, matArrowBack, matCheck, matWarningAmber, matMoreHoriz, matFace, matQuestionMark, matMoodBad, matZoomOutMap, matOpenInNew, matMailOutline, matPersonOutline, matCheckCircleOutline, matWarning, matMoreVert, matCorporateFare } from '@ng-icons/material-icons/baseline';
|
|
31
31
|
import * as i1$4 from '@angular/material/tooltip';
|
|
32
32
|
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
@@ -37,12 +37,11 @@ import * as i1$6 from '@angular/material/autocomplete';
|
|
|
37
37
|
import { MatAutocompleteTrigger, MatAutocomplete, MatAutocompleteModule } from '@angular/material/autocomplete';
|
|
38
38
|
import * as i3 from 'ngx-dropzone';
|
|
39
39
|
import { NgxDropzoneModule } from 'ngx-dropzone';
|
|
40
|
-
import * as i5 from 'ngx-chips';
|
|
41
40
|
import { TagInputModule } from 'ngx-chips';
|
|
42
41
|
import * as i1$5 from '@angular/material/progress-spinner';
|
|
43
42
|
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
|
|
44
43
|
import tippy from 'tippy.js';
|
|
45
|
-
import { matErrorOutlineOutline, matCloudDownloadOutline, matComputerOutline, matCallOutline, matLocationOnOutline, matMailOutline as matMailOutline$1, matWarningAmberOutline,
|
|
44
|
+
import { matErrorOutlineOutline, matInfoOutline, matCloudDownloadOutline, matComputerOutline, matCallOutline, matLocationOnOutline, matMailOutline as matMailOutline$1, matWarningAmberOutline, matCloseOutline, matSendOutline, matMapOutline, matHomeWorkOutline, matSwipeOutline, matLayersOutline, matAddCircleOutlineOutline } from '@ng-icons/material-icons/outline';
|
|
46
45
|
import * as i2 from '@angular/material/core';
|
|
47
46
|
import { MatNativeDateModule, MAT_DATE_LOCALE, DateAdapter, MAT_DATE_FORMATS } from '@angular/material/core';
|
|
48
47
|
import * as i1$7 from '@angular/material/checkbox';
|
|
@@ -18621,8 +18620,6 @@ var de = {
|
|
|
18621
18620
|
"chart.type.lineSmooth": "Geglättes Liniendiagramm",
|
|
18622
18621
|
"chart.type.pie": "Kreisdiagramm",
|
|
18623
18622
|
"dashboard.catalog.allRecords": "Metadatenkatalog",
|
|
18624
|
-
"dashboard.catalog.contacts": "Kontakte",
|
|
18625
|
-
"dashboard.catalog.thesaurus": "Thesaurus",
|
|
18626
18623
|
"dashboard.createRecord": "Neuer Eintrag",
|
|
18627
18624
|
"dashboard.importRecord": "",
|
|
18628
18625
|
"dashboard.importRecord.importExternal": "",
|
|
@@ -18635,29 +18632,10 @@ var de = {
|
|
|
18635
18632
|
"dashboard.records.myDraft": "Meine Entwürfe",
|
|
18636
18633
|
"dashboard.records.myRecords": "Meine Datensätze",
|
|
18637
18634
|
"dashboard.records.search": "Suche nach \"{searchText}\"",
|
|
18638
|
-
"dashboard.records.templates": "Vorlagen",
|
|
18639
18635
|
"dashboard.records.userDetail": "Name",
|
|
18640
18636
|
"dashboard.records.userEmail": "E-Mail",
|
|
18641
18637
|
"dashboard.records.username": "Benutzername",
|
|
18642
18638
|
"dashboard.records.users": "{count, plural, =1{Benutzer} other{Benutzer}}",
|
|
18643
|
-
"datafeeder.analysisProgressBar.illustration.fileFormatDetection": "Dateiformat-Erkennung",
|
|
18644
|
-
"datafeeder.analysisProgressBar.illustration.gatheringDatasetInformation": "Sammeln von Datensatzinformationen",
|
|
18645
|
-
"datafeeder.analysisProgressBar.illustration.samplingData": "Datenauswahl",
|
|
18646
|
-
"datafeeder.analysisProgressBar.subtitle": "Die Analyse kann einige Minuten dauern. Bitte warten Sie.",
|
|
18647
|
-
"datafeeder.analysisProgressBar.title": "Analyse in Bearbeitung",
|
|
18648
|
-
"datafeeder.datasetValidation.datasetInformation": "Der bereitgestellte Datensatz enthält {number} Elemente",
|
|
18649
|
-
"datafeeder.datasetValidation.submitButton": "OK, meine Daten sind korrekt",
|
|
18650
|
-
"datafeeder.datasetValidation.title": "Stellen Sie sicher, dass Ihre Daten korrekt sind",
|
|
18651
|
-
"datafeeder.datasetValidation.unknown": " - ",
|
|
18652
|
-
"datafeeder.datasetValidationCsv.explicitLineNumbers": "",
|
|
18653
|
-
"datafeeder.datasetValidationCsv.lineNumbers": "",
|
|
18654
|
-
"datafeeder.form.abstract": "Wie würden Sie Ihren Datensatz beschreiben?",
|
|
18655
|
-
"datafeeder.form.datepicker": "Wissen Sie, wann der Datensatz erstellt wurde?",
|
|
18656
|
-
"datafeeder.form.description": "Beschreiben Sie abschließend den Prozess, der zur Erstellung des Datensatzes verwendet wurde",
|
|
18657
|
-
"datafeeder.form.dropdown": "Für welche Skala wurde er erstellt?",
|
|
18658
|
-
"datafeeder.form.tags": "Wählen Sie einen oder mehrere Tage aus, die zu Ihrem Datensatz passen",
|
|
18659
|
-
"datafeeder.form.title": "Geben Sie Ihrem Datensatz den besten Titel",
|
|
18660
|
-
"datafeeder.formsPage.title": "Erzählen Sie uns mehr über Ihren Datensatz",
|
|
18661
18639
|
"datafeeder.month.april": "April",
|
|
18662
18640
|
"datafeeder.month.august": "August",
|
|
18663
18641
|
"datafeeder.month.december": "Dezember",
|
|
@@ -18670,59 +18648,6 @@ var de = {
|
|
|
18670
18648
|
"datafeeder.month.november": "November",
|
|
18671
18649
|
"datafeeder.month.october": "Oktober",
|
|
18672
18650
|
"datafeeder.month.september": "September",
|
|
18673
|
-
"datafeeder.publish.hint": "Sie können diese Seite sicher verlassen. Sie werden benachrichtigt, wenn der Vorgang abgeschlossen ist.",
|
|
18674
|
-
"datafeeder.publish.illustration.title": "Ein weiterer Datensatz \n zum Veröffentlichen?",
|
|
18675
|
-
"datafeeder.publish.subtitle": "Das Veröffentlichen kann einige Minuten dauern.",
|
|
18676
|
-
"datafeeder.publish.title": "Vielen Dank! \n Ihr Datensatz wird veröffentlicht",
|
|
18677
|
-
"datafeeder.publish.upload": "Jetzt hochladen",
|
|
18678
|
-
"datafeeder.publishSuccess.geonetworkRecord": "Metadatensatz",
|
|
18679
|
-
"datafeeder.publishSuccess.illustration.title": "Erledigt, alles ist gut!",
|
|
18680
|
-
"datafeeder.publishSuccess.mapViewer": "Kartenviewer",
|
|
18681
|
-
"datafeeder.publishSuccess.ogcFeature": "",
|
|
18682
|
-
"datafeeder.publishSuccess.subtitle": "Zeigen Sie Ihre Daten an in:",
|
|
18683
|
-
"datafeeder.publishSuccess.title": "Herzlichen Glückwunsch! \n Ihr Datensatz wurde veröffentlicht",
|
|
18684
|
-
"datafeeder.publishSuccess.uploadAnotherData": "Ein weiteren Datensatz hochladen",
|
|
18685
|
-
"datafeeder.summarizePage.illustration": "Kein Fehler? Los geht's!",
|
|
18686
|
-
"datafeeder.summarizePage.previous": "Zurück",
|
|
18687
|
-
"datafeeder.summarizePage.submit": "Absenden",
|
|
18688
|
-
"datafeeder.summarizePage.title": "Sie sind fast fertig...",
|
|
18689
|
-
"datafeeder.upload.acceptedFormats": "Akzeptierte Dateiformate:",
|
|
18690
|
-
"datafeeder.upload.checkboxLabel": "Ich besitze die Rechte zur Veröffentlichung dieses Datensatzes",
|
|
18691
|
-
"datafeeder.upload.error.subtitle.analysis": "Überprüfen Sie, ob die Datei einen gültigen geografischen Datensatz enthält",
|
|
18692
|
-
"datafeeder.upload.error.subtitle.cantOpenFile": "Bitte überprüfen Sie, ob die Datei gültig ist",
|
|
18693
|
-
"datafeeder.upload.error.subtitle.fileFormat": "Beachten Sie: Nur SHP-Dateien",
|
|
18694
|
-
"datafeeder.upload.error.subtitle.fileSize": "Beachten Sie: Maximale Dateigröße {size} MB",
|
|
18695
|
-
"datafeeder.upload.error.title.analysis": "Fehler während der Datensatzanalyse",
|
|
18696
|
-
"datafeeder.upload.error.title.cantOpenFile": "Fehler beim Öffnen der Datei",
|
|
18697
|
-
"datafeeder.upload.error.title.fileFormat": "Das ausgewählte Dateiformat wird nicht unterstützt",
|
|
18698
|
-
"datafeeder.upload.error.title.fileHasntSelected": "Keine Datei ausgewählt",
|
|
18699
|
-
"datafeeder.upload.error.title.fileSize": "Die Dateigröße ist zu groß",
|
|
18700
|
-
"datafeeder.upload.error.title.noRightsToSendData": "Sie dürfen diesen Datensatz nicht veröffentlichen",
|
|
18701
|
-
"datafeeder.upload.illustration.enrichment": "Anreicherung",
|
|
18702
|
-
"datafeeder.upload.illustration.import": "Import",
|
|
18703
|
-
"datafeeder.upload.illustration.title": "Das Hinzufügen von Daten \n war noch nie so einfach",
|
|
18704
|
-
"datafeeder.upload.illustration.validation": "Validierung",
|
|
18705
|
-
"datafeeder.upload.illustration.verification": "Überprüfung",
|
|
18706
|
-
"datafeeder.upload.inputLabel": "Importieren Sie Ihre Datei",
|
|
18707
|
-
"datafeeder.upload.maxFileSize": "Maximale Dateigröße beträgt {size} MB",
|
|
18708
|
-
"datafeeder.upload.title": "Laden Sie Ihren Datensatz hoch",
|
|
18709
|
-
"datafeeder.upload.uploadButton": "Hochladen",
|
|
18710
|
-
"datafeeder.validation.csv.delimiter": "",
|
|
18711
|
-
"datafeeder.validation.csv.delimiter.comma": "",
|
|
18712
|
-
"datafeeder.validation.csv.delimiter.semicolon": "",
|
|
18713
|
-
"datafeeder.validation.csv.lat.field": "",
|
|
18714
|
-
"datafeeder.validation.csv.lng.field": "",
|
|
18715
|
-
"datafeeder.validation.csv.quote.double": "",
|
|
18716
|
-
"datafeeder.validation.csv.quote.none": "",
|
|
18717
|
-
"datafeeder.validation.csv.quote.simple": "",
|
|
18718
|
-
"datafeeder.validation.csv.quoteChar": "",
|
|
18719
|
-
"datafeeder.validation.encoding": "Codierung",
|
|
18720
|
-
"datafeeder.validation.extent.title": "Hier ist der Datensatzumfang",
|
|
18721
|
-
"datafeeder.validation.extent.title.unknown": "Das Projektionssystem ist unbekannt",
|
|
18722
|
-
"datafeeder.validation.projection": "Raumbezugssystem:",
|
|
18723
|
-
"datafeeder.validation.projection.unknown": "Wählen Sie ein Raumbezugssystem aus",
|
|
18724
|
-
"datafeeder.validation.sample.title": "Und eine Beispielentität aus dem Datensatz",
|
|
18725
|
-
"datafeeder.wizard.emptyRequiredValuesMessage": "Bitte füllen Sie die obligatorischen Felder aus",
|
|
18726
18651
|
"datafeeder.wizardSummarize.createdAt": "Erstellt am",
|
|
18727
18652
|
"datafeeder.wizardSummarize.scale": "Maßstab",
|
|
18728
18653
|
"datahub.header.datasets": "Datensätze",
|
|
@@ -19026,9 +18951,10 @@ var de = {
|
|
|
19026
18951
|
"record.action.download": "Herunterladen",
|
|
19027
18952
|
"record.action.duplicate": "",
|
|
19028
18953
|
"record.action.duplicating": "",
|
|
18954
|
+
"record.action.rollback": "",
|
|
19029
18955
|
"record.action.view": "Anzeigen",
|
|
19030
18956
|
"record.externalViewer.open": "In externem Kartenviewer öffnen",
|
|
19031
|
-
"record.feature.limit": "Die
|
|
18957
|
+
"record.feature.limit": "Die Vorschau wurde aufgrund zu vieler Elemente deaktiviert",
|
|
19032
18958
|
"record.metadata.about": "Beschreibung",
|
|
19033
18959
|
"record.metadata.api": "API",
|
|
19034
18960
|
"record.metadata.api.form.closeButton": "Schließen",
|
|
@@ -19146,8 +19072,10 @@ var de = {
|
|
|
19146
19072
|
"search.error.receivedError": "Ein Fehler ist aufgetreten",
|
|
19147
19073
|
"search.error.recordHasnolink": "",
|
|
19148
19074
|
"search.error.recordNotFound": "Der Datensatz mit der Kennung \"{ id }\" konnte nicht gefunden werden.",
|
|
19149
|
-
"search.field.any.placeholder": "Suche
|
|
19075
|
+
"search.field.any.placeholder": "Suche im katalog ...",
|
|
19150
19076
|
"search.field.sortBy": "Sortieren nach:",
|
|
19077
|
+
"search.filters.availableServices.download": "",
|
|
19078
|
+
"search.filters.availableServices.view": "",
|
|
19151
19079
|
"search.filters.changeDate": "Letzte Aktualisierung",
|
|
19152
19080
|
"search.filters.clear": "Zurücksetzen",
|
|
19153
19081
|
"search.filters.contact": "Kontakte",
|
|
@@ -19203,7 +19131,6 @@ var de = {
|
|
|
19203
19131
|
"tooltip.url.open": "URL öffnen",
|
|
19204
19132
|
"ui.readLess": "Weniger lesen",
|
|
19205
19133
|
"ui.readMore": "Weiterlesen",
|
|
19206
|
-
"wfs.aggregations.notsupported": "",
|
|
19207
19134
|
"wfs.feature.limit": "Zu viele Features, um den WFS-Layer anzuzeigen!",
|
|
19208
19135
|
"wfs.featuretype.notfound": "Kein passender Feature-Typ wurde im Dienst gefunden",
|
|
19209
19136
|
"wfs.geojsongml.notsupported": "Dieser Dienst unterstützt das GeoJSON- oder GML-Format nicht",
|
|
@@ -19238,8 +19165,6 @@ var en = {
|
|
|
19238
19165
|
"chart.type.lineSmooth": "smooth line chart",
|
|
19239
19166
|
"chart.type.pie": "pie chart",
|
|
19240
19167
|
"dashboard.catalog.allRecords": "Datasets",
|
|
19241
|
-
"dashboard.catalog.contacts": "Contacts",
|
|
19242
|
-
"dashboard.catalog.thesaurus": "Thesaurus",
|
|
19243
19168
|
"dashboard.createRecord": "New dataset",
|
|
19244
19169
|
"dashboard.importRecord": "Import",
|
|
19245
19170
|
"dashboard.importRecord.importExternal": "Import an external file",
|
|
@@ -19252,29 +19177,10 @@ var en = {
|
|
|
19252
19177
|
"dashboard.records.myDraft": "My drafts",
|
|
19253
19178
|
"dashboard.records.myRecords": "My datasets",
|
|
19254
19179
|
"dashboard.records.search": "Search for \"{searchText}\"",
|
|
19255
|
-
"dashboard.records.templates": "Templates",
|
|
19256
19180
|
"dashboard.records.userDetail": "Name",
|
|
19257
19181
|
"dashboard.records.userEmail": "Email",
|
|
19258
19182
|
"dashboard.records.username": "Username",
|
|
19259
19183
|
"dashboard.records.users": "{count, plural, =1{user} other{users}}",
|
|
19260
|
-
"datafeeder.analysisProgressBar.illustration.fileFormatDetection": "File format \n detection",
|
|
19261
|
-
"datafeeder.analysisProgressBar.illustration.gatheringDatasetInformation": "Gathering dataset \n information",
|
|
19262
|
-
"datafeeder.analysisProgressBar.illustration.samplingData": "Sampling \n data",
|
|
19263
|
-
"datafeeder.analysisProgressBar.subtitle": "The analysis may take several minutes, please wait.",
|
|
19264
|
-
"datafeeder.analysisProgressBar.title": "Analysis in progress",
|
|
19265
|
-
"datafeeder.datasetValidation.datasetInformation": "The provided dataset contains {number} entities",
|
|
19266
|
-
"datafeeder.datasetValidation.submitButton": "OK, my data is correct",
|
|
19267
|
-
"datafeeder.datasetValidation.title": "Make sure your data is correct",
|
|
19268
|
-
"datafeeder.datasetValidation.unknown": " - ",
|
|
19269
|
-
"datafeeder.datasetValidationCsv.explicitLineNumbers": "*The table must display the first 5 lines (excluding the header)<br>If this is not the case, check that the file is correctly formatted",
|
|
19270
|
-
"datafeeder.datasetValidationCsv.lineNumbers": "Sample of the first 5 lines* of the dataset:",
|
|
19271
|
-
"datafeeder.form.abstract": "How would you describe your dataset?",
|
|
19272
|
-
"datafeeder.form.datepicker": "Do you know when the dataset was created?",
|
|
19273
|
-
"datafeeder.form.description": "Finally, please describe the process used to create the dataset",
|
|
19274
|
-
"datafeeder.form.dropdown": "For which scale was it created?",
|
|
19275
|
-
"datafeeder.form.tags": "Select one or more tags that fit your dataset",
|
|
19276
|
-
"datafeeder.form.title": "Give your dataset the best title",
|
|
19277
|
-
"datafeeder.formsPage.title": "Tell us more about your dataset",
|
|
19278
19184
|
"datafeeder.month.april": "April",
|
|
19279
19185
|
"datafeeder.month.august": "August",
|
|
19280
19186
|
"datafeeder.month.december": "December",
|
|
@@ -19287,59 +19193,6 @@ var en = {
|
|
|
19287
19193
|
"datafeeder.month.november": "November",
|
|
19288
19194
|
"datafeeder.month.october": "October",
|
|
19289
19195
|
"datafeeder.month.september": "September",
|
|
19290
|
-
"datafeeder.publish.hint": "You can safely exit this page, you will be notified when the process is over",
|
|
19291
|
-
"datafeeder.publish.illustration.title": "Another dataset \n to publish?",
|
|
19292
|
-
"datafeeder.publish.subtitle": "Publishing may take several minutes.",
|
|
19293
|
-
"datafeeder.publish.title": "Thank you! \n Your dataset is being published",
|
|
19294
|
-
"datafeeder.publish.upload": "Upload it now",
|
|
19295
|
-
"datafeeder.publishSuccess.geonetworkRecord": "Metadata record",
|
|
19296
|
-
"datafeeder.publishSuccess.illustration.title": "Done, all is good!",
|
|
19297
|
-
"datafeeder.publishSuccess.mapViewer": "Map viewer",
|
|
19298
|
-
"datafeeder.publishSuccess.ogcFeature": "OGC API",
|
|
19299
|
-
"datafeeder.publishSuccess.subtitle": "View your data in:",
|
|
19300
|
-
"datafeeder.publishSuccess.title": "Congratulations! \n Your dataset has been published",
|
|
19301
|
-
"datafeeder.publishSuccess.uploadAnotherData": "Upload another dataset",
|
|
19302
|
-
"datafeeder.summarizePage.illustration": "No mistake? Let's go!",
|
|
19303
|
-
"datafeeder.summarizePage.previous": "Previous",
|
|
19304
|
-
"datafeeder.summarizePage.submit": "Submit",
|
|
19305
|
-
"datafeeder.summarizePage.title": "You're almost there...",
|
|
19306
|
-
"datafeeder.upload.acceptedFormats": "Accepted file formats:",
|
|
19307
|
-
"datafeeder.upload.checkboxLabel": "I hold the rights to publish this dataset",
|
|
19308
|
-
"datafeeder.upload.error.subtitle.analysis": "Check that the file contains a valid geospatial dataset",
|
|
19309
|
-
"datafeeder.upload.error.subtitle.cantOpenFile": "Please check that the file is valid",
|
|
19310
|
-
"datafeeder.upload.error.subtitle.fileFormat": "Remember: only SHP",
|
|
19311
|
-
"datafeeder.upload.error.subtitle.fileSize": "Remember: {size} MB maximum",
|
|
19312
|
-
"datafeeder.upload.error.title.analysis": "Error during the dataset analysis",
|
|
19313
|
-
"datafeeder.upload.error.title.cantOpenFile": "Error while opening the file",
|
|
19314
|
-
"datafeeder.upload.error.title.fileFormat": "The selected file format is not supported",
|
|
19315
|
-
"datafeeder.upload.error.title.fileHasntSelected": "No file selected",
|
|
19316
|
-
"datafeeder.upload.error.title.fileSize": "The file size is too large",
|
|
19317
|
-
"datafeeder.upload.error.title.noRightsToSendData": "You are not allowed to publish this dataset",
|
|
19318
|
-
"datafeeder.upload.illustration.enrichment": "Enrichment",
|
|
19319
|
-
"datafeeder.upload.illustration.import": "Import",
|
|
19320
|
-
"datafeeder.upload.illustration.title": "Adding data \n has never been easier",
|
|
19321
|
-
"datafeeder.upload.illustration.validation": "Validation",
|
|
19322
|
-
"datafeeder.upload.illustration.verification": "Verification",
|
|
19323
|
-
"datafeeder.upload.inputLabel": "Import your file",
|
|
19324
|
-
"datafeeder.upload.maxFileSize": "Maximum file size is {size} MB",
|
|
19325
|
-
"datafeeder.upload.title": "Upload your dataset",
|
|
19326
|
-
"datafeeder.upload.uploadButton": "Upload",
|
|
19327
|
-
"datafeeder.validation.csv.delimiter": "Delimiter",
|
|
19328
|
-
"datafeeder.validation.csv.delimiter.comma": "Comma",
|
|
19329
|
-
"datafeeder.validation.csv.delimiter.semicolon": "Semicolon",
|
|
19330
|
-
"datafeeder.validation.csv.lat.field": "Latitude column",
|
|
19331
|
-
"datafeeder.validation.csv.lng.field": "Longitude column",
|
|
19332
|
-
"datafeeder.validation.csv.quote.double": "Double quote",
|
|
19333
|
-
"datafeeder.validation.csv.quote.none": "None",
|
|
19334
|
-
"datafeeder.validation.csv.quote.simple": "Single quote",
|
|
19335
|
-
"datafeeder.validation.csv.quoteChar": "Quote separator",
|
|
19336
|
-
"datafeeder.validation.encoding": "Encoding",
|
|
19337
|
-
"datafeeder.validation.extent.title": "Here is the dataset extent",
|
|
19338
|
-
"datafeeder.validation.extent.title.unknown": "The projection system is unknown",
|
|
19339
|
-
"datafeeder.validation.projection": "Spatial reference system:",
|
|
19340
|
-
"datafeeder.validation.projection.unknown": "Choose a spatial reference system",
|
|
19341
|
-
"datafeeder.validation.sample.title": "And a sample entity from the dataset",
|
|
19342
|
-
"datafeeder.wizard.emptyRequiredValuesMessage": "Please fill in mandatory fields",
|
|
19343
19196
|
"datafeeder.wizardSummarize.createdAt": "Created at",
|
|
19344
19197
|
"datafeeder.wizardSummarize.scale": "Scale",
|
|
19345
19198
|
"datahub.header.datasets": "Datasets",
|
|
@@ -19643,9 +19496,10 @@ var en = {
|
|
|
19643
19496
|
"record.action.download": "Download",
|
|
19644
19497
|
"record.action.duplicate": "Duplicate",
|
|
19645
19498
|
"record.action.duplicating": "Duplicating...",
|
|
19499
|
+
"record.action.rollback": "Rollback",
|
|
19646
19500
|
"record.action.view": "View",
|
|
19647
19501
|
"record.externalViewer.open": "Open in the external map viewer",
|
|
19648
|
-
"record.feature.limit": "
|
|
19502
|
+
"record.feature.limit": "Preview disabled due to too many elements",
|
|
19649
19503
|
"record.metadata.about": "Description",
|
|
19650
19504
|
"record.metadata.api": "API",
|
|
19651
19505
|
"record.metadata.api.form.closeButton": "Close",
|
|
@@ -19763,8 +19617,10 @@ var en = {
|
|
|
19763
19617
|
"search.error.receivedError": "An error was received",
|
|
19764
19618
|
"search.error.recordHasnolink": "This dataset currently has no link yet, please come back later.",
|
|
19765
19619
|
"search.error.recordNotFound": "The dataset with identifier \"{ id }\" could not be found.",
|
|
19766
|
-
"search.field.any.placeholder": "Search
|
|
19620
|
+
"search.field.any.placeholder": "Search in the catalog ...",
|
|
19767
19621
|
"search.field.sortBy": "Sort by:",
|
|
19622
|
+
"search.filters.availableServices.download": "",
|
|
19623
|
+
"search.filters.availableServices.view": "",
|
|
19768
19624
|
"search.filters.changeDate": "Updated",
|
|
19769
19625
|
"search.filters.clear": "Reset",
|
|
19770
19626
|
"search.filters.contact": "Contacts",
|
|
@@ -19820,7 +19676,6 @@ var en = {
|
|
|
19820
19676
|
"tooltip.url.open": "Open URL",
|
|
19821
19677
|
"ui.readLess": "Read less",
|
|
19822
19678
|
"ui.readMore": "Read more",
|
|
19823
|
-
"wfs.aggregations.notsupported": "Aggregations are currently not supported for WFS services",
|
|
19824
19679
|
"wfs.feature.limit": "Too many features to display the WFS layer!",
|
|
19825
19680
|
"wfs.featuretype.notfound": "No matching feature type was found in the service",
|
|
19826
19681
|
"wfs.geojsongml.notsupported": "This service does not support the GeoJSON or GML format",
|
|
@@ -19855,8 +19710,6 @@ var es = {
|
|
|
19855
19710
|
"chart.type.lineSmooth": "gráfico de líneas suave",
|
|
19856
19711
|
"chart.type.pie": "gráfico circular",
|
|
19857
19712
|
"dashboard.catalog.allRecords": "",
|
|
19858
|
-
"dashboard.catalog.contacts": "",
|
|
19859
|
-
"dashboard.catalog.thesaurus": "",
|
|
19860
19713
|
"dashboard.createRecord": "",
|
|
19861
19714
|
"dashboard.importRecord": "",
|
|
19862
19715
|
"dashboard.importRecord.importExternal": "",
|
|
@@ -19869,29 +19722,10 @@ var es = {
|
|
|
19869
19722
|
"dashboard.records.myDraft": "Mis borradores",
|
|
19870
19723
|
"dashboard.records.myRecords": "Mis Registros",
|
|
19871
19724
|
"dashboard.records.search": "Buscar \"{searchText}\"",
|
|
19872
|
-
"dashboard.records.templates": "",
|
|
19873
19725
|
"dashboard.records.userDetail": "",
|
|
19874
19726
|
"dashboard.records.userEmail": "",
|
|
19875
19727
|
"dashboard.records.username": "",
|
|
19876
19728
|
"dashboard.records.users": "",
|
|
19877
|
-
"datafeeder.analysisProgressBar.illustration.fileFormatDetection": "",
|
|
19878
|
-
"datafeeder.analysisProgressBar.illustration.gatheringDatasetInformation": "",
|
|
19879
|
-
"datafeeder.analysisProgressBar.illustration.samplingData": "",
|
|
19880
|
-
"datafeeder.analysisProgressBar.subtitle": "",
|
|
19881
|
-
"datafeeder.analysisProgressBar.title": "",
|
|
19882
|
-
"datafeeder.datasetValidation.datasetInformation": "",
|
|
19883
|
-
"datafeeder.datasetValidation.submitButton": "",
|
|
19884
|
-
"datafeeder.datasetValidation.title": "",
|
|
19885
|
-
"datafeeder.datasetValidation.unknown": "",
|
|
19886
|
-
"datafeeder.datasetValidationCsv.explicitLineNumbers": "",
|
|
19887
|
-
"datafeeder.datasetValidationCsv.lineNumbers": "",
|
|
19888
|
-
"datafeeder.form.abstract": "",
|
|
19889
|
-
"datafeeder.form.datepicker": "",
|
|
19890
|
-
"datafeeder.form.description": "",
|
|
19891
|
-
"datafeeder.form.dropdown": "",
|
|
19892
|
-
"datafeeder.form.tags": "",
|
|
19893
|
-
"datafeeder.form.title": "",
|
|
19894
|
-
"datafeeder.formsPage.title": "",
|
|
19895
19729
|
"datafeeder.month.april": "",
|
|
19896
19730
|
"datafeeder.month.august": "",
|
|
19897
19731
|
"datafeeder.month.december": "",
|
|
@@ -19904,59 +19738,6 @@ var es = {
|
|
|
19904
19738
|
"datafeeder.month.november": "",
|
|
19905
19739
|
"datafeeder.month.october": "",
|
|
19906
19740
|
"datafeeder.month.september": "",
|
|
19907
|
-
"datafeeder.publish.hint": "",
|
|
19908
|
-
"datafeeder.publish.illustration.title": "",
|
|
19909
|
-
"datafeeder.publish.subtitle": "",
|
|
19910
|
-
"datafeeder.publish.title": "",
|
|
19911
|
-
"datafeeder.publish.upload": "",
|
|
19912
|
-
"datafeeder.publishSuccess.geonetworkRecord": "",
|
|
19913
|
-
"datafeeder.publishSuccess.illustration.title": "",
|
|
19914
|
-
"datafeeder.publishSuccess.mapViewer": "",
|
|
19915
|
-
"datafeeder.publishSuccess.ogcFeature": "",
|
|
19916
|
-
"datafeeder.publishSuccess.subtitle": "",
|
|
19917
|
-
"datafeeder.publishSuccess.title": "",
|
|
19918
|
-
"datafeeder.publishSuccess.uploadAnotherData": "",
|
|
19919
|
-
"datafeeder.summarizePage.illustration": "",
|
|
19920
|
-
"datafeeder.summarizePage.previous": "",
|
|
19921
|
-
"datafeeder.summarizePage.submit": "",
|
|
19922
|
-
"datafeeder.summarizePage.title": "",
|
|
19923
|
-
"datafeeder.upload.acceptedFormats": "",
|
|
19924
|
-
"datafeeder.upload.checkboxLabel": "",
|
|
19925
|
-
"datafeeder.upload.error.subtitle.analysis": "",
|
|
19926
|
-
"datafeeder.upload.error.subtitle.cantOpenFile": "",
|
|
19927
|
-
"datafeeder.upload.error.subtitle.fileFormat": "",
|
|
19928
|
-
"datafeeder.upload.error.subtitle.fileSize": "",
|
|
19929
|
-
"datafeeder.upload.error.title.analysis": "",
|
|
19930
|
-
"datafeeder.upload.error.title.cantOpenFile": "",
|
|
19931
|
-
"datafeeder.upload.error.title.fileFormat": "",
|
|
19932
|
-
"datafeeder.upload.error.title.fileHasntSelected": "",
|
|
19933
|
-
"datafeeder.upload.error.title.fileSize": "",
|
|
19934
|
-
"datafeeder.upload.error.title.noRightsToSendData": "",
|
|
19935
|
-
"datafeeder.upload.illustration.enrichment": "",
|
|
19936
|
-
"datafeeder.upload.illustration.import": "",
|
|
19937
|
-
"datafeeder.upload.illustration.title": "",
|
|
19938
|
-
"datafeeder.upload.illustration.validation": "",
|
|
19939
|
-
"datafeeder.upload.illustration.verification": "",
|
|
19940
|
-
"datafeeder.upload.inputLabel": "",
|
|
19941
|
-
"datafeeder.upload.maxFileSize": "",
|
|
19942
|
-
"datafeeder.upload.title": "",
|
|
19943
|
-
"datafeeder.upload.uploadButton": "",
|
|
19944
|
-
"datafeeder.validation.csv.delimiter": "",
|
|
19945
|
-
"datafeeder.validation.csv.delimiter.comma": "Coma",
|
|
19946
|
-
"datafeeder.validation.csv.delimiter.semicolon": "Punto y coma",
|
|
19947
|
-
"datafeeder.validation.csv.lat.field": "",
|
|
19948
|
-
"datafeeder.validation.csv.lng.field": "",
|
|
19949
|
-
"datafeeder.validation.csv.quote.double": "Comillas dobles",
|
|
19950
|
-
"datafeeder.validation.csv.quote.none": "Ninguno",
|
|
19951
|
-
"datafeeder.validation.csv.quote.simple": "Comillas simples",
|
|
19952
|
-
"datafeeder.validation.csv.quoteChar": "",
|
|
19953
|
-
"datafeeder.validation.encoding": "",
|
|
19954
|
-
"datafeeder.validation.extent.title": "",
|
|
19955
|
-
"datafeeder.validation.extent.title.unknown": "",
|
|
19956
|
-
"datafeeder.validation.projection": "",
|
|
19957
|
-
"datafeeder.validation.projection.unknown": "",
|
|
19958
|
-
"datafeeder.validation.sample.title": "",
|
|
19959
|
-
"datafeeder.wizard.emptyRequiredValuesMessage": "",
|
|
19960
19741
|
"datafeeder.wizardSummarize.createdAt": "",
|
|
19961
19742
|
"datafeeder.wizardSummarize.scale": "",
|
|
19962
19743
|
"datahub.header.datasets": "",
|
|
@@ -20260,6 +20041,7 @@ var es = {
|
|
|
20260
20041
|
"record.action.download": "",
|
|
20261
20042
|
"record.action.duplicate": "",
|
|
20262
20043
|
"record.action.duplicating": "",
|
|
20044
|
+
"record.action.rollback": "",
|
|
20263
20045
|
"record.action.view": "",
|
|
20264
20046
|
"record.externalViewer.open": "",
|
|
20265
20047
|
"record.feature.limit": "",
|
|
@@ -20382,6 +20164,8 @@ var es = {
|
|
|
20382
20164
|
"search.error.recordNotFound": "",
|
|
20383
20165
|
"search.field.any.placeholder": "",
|
|
20384
20166
|
"search.field.sortBy": "",
|
|
20167
|
+
"search.filters.availableServices.download": "",
|
|
20168
|
+
"search.filters.availableServices.view": "",
|
|
20385
20169
|
"search.filters.changeDate": "Última actualización",
|
|
20386
20170
|
"search.filters.clear": "",
|
|
20387
20171
|
"search.filters.contact": "",
|
|
@@ -20437,7 +20221,6 @@ var es = {
|
|
|
20437
20221
|
"tooltip.url.open": "",
|
|
20438
20222
|
"ui.readLess": "",
|
|
20439
20223
|
"ui.readMore": "",
|
|
20440
|
-
"wfs.aggregations.notsupported": "",
|
|
20441
20224
|
"wfs.feature.limit": "",
|
|
20442
20225
|
"wfs.featuretype.notfound": "",
|
|
20443
20226
|
"wfs.geojsongml.notsupported": "",
|
|
@@ -20472,8 +20255,6 @@ var fr = {
|
|
|
20472
20255
|
"chart.type.lineSmooth": "ligne lisse",
|
|
20473
20256
|
"chart.type.pie": "camembert",
|
|
20474
20257
|
"dashboard.catalog.allRecords": "Jeux de données",
|
|
20475
|
-
"dashboard.catalog.contacts": "Annuaire",
|
|
20476
|
-
"dashboard.catalog.thesaurus": "Thésaurus",
|
|
20477
20258
|
"dashboard.createRecord": "Nouveau jeu de données",
|
|
20478
20259
|
"dashboard.importRecord": "Importer",
|
|
20479
20260
|
"dashboard.importRecord.importExternal": "Importer un jeu de données externe",
|
|
@@ -20486,29 +20267,10 @@ var fr = {
|
|
|
20486
20267
|
"dashboard.records.myDraft": "Mes brouillons",
|
|
20487
20268
|
"dashboard.records.myRecords": "Mes jeux de données",
|
|
20488
20269
|
"dashboard.records.search": "Résultats pour \"{searchText}\"",
|
|
20489
|
-
"dashboard.records.templates": "Modèles pré-remplis",
|
|
20490
20270
|
"dashboard.records.userDetail": "Nom",
|
|
20491
20271
|
"dashboard.records.userEmail": "Email",
|
|
20492
20272
|
"dashboard.records.username": "Nom d'utilisateur",
|
|
20493
20273
|
"dashboard.records.users": "{count, plural, =1{utilisateur} other{utilisateurs}}",
|
|
20494
|
-
"datafeeder.analysisProgressBar.illustration.fileFormatDetection": "Détection du \n format de fichier",
|
|
20495
|
-
"datafeeder.analysisProgressBar.illustration.gatheringDatasetInformation": "Récupération des informations \n sur le jeu de données",
|
|
20496
|
-
"datafeeder.analysisProgressBar.illustration.samplingData": "Échantillonnage \n des données",
|
|
20497
|
-
"datafeeder.analysisProgressBar.subtitle": "L'analyse peut prendre plusieurs minutes, merci de patienter.",
|
|
20498
|
-
"datafeeder.analysisProgressBar.title": "Analyse en cours",
|
|
20499
|
-
"datafeeder.datasetValidation.datasetInformation": "Le jeu de données fourni contient {number} entités",
|
|
20500
|
-
"datafeeder.datasetValidation.submitButton": "OK, mes données sont correctes",
|
|
20501
|
-
"datafeeder.datasetValidation.title": "Vérifiez que vos données sont correctes",
|
|
20502
|
-
"datafeeder.datasetValidation.unknown": " - ",
|
|
20503
|
-
"datafeeder.datasetValidationCsv.explicitLineNumbers": "*Le tableau doit afficher les 5 premières lignes (hors en-tête)<br>Si ce n'est pas le cas, vérifiez que le fichier est bien formaté",
|
|
20504
|
-
"datafeeder.datasetValidationCsv.lineNumbers": "Résumé des 5 premières lignes* du CSV :",
|
|
20505
|
-
"datafeeder.form.abstract": "Comment décrire votre jeu de données ?",
|
|
20506
|
-
"datafeeder.form.datepicker": "Savez-vous quand la donnée a été créée ?",
|
|
20507
|
-
"datafeeder.form.description": "Enfin, décrivez le processus utilisé pour créer la donnée",
|
|
20508
|
-
"datafeeder.form.dropdown": "Et pour quelle échelle ?",
|
|
20509
|
-
"datafeeder.form.tags": "Choisissez un ou plusieurs mots-clés correspondant à vos données",
|
|
20510
|
-
"datafeeder.form.title": "Donnez un titre à votre jeu de données",
|
|
20511
|
-
"datafeeder.formsPage.title": "Dites-nous en plus sur ces données",
|
|
20512
20274
|
"datafeeder.month.april": "Avril",
|
|
20513
20275
|
"datafeeder.month.august": "Août",
|
|
20514
20276
|
"datafeeder.month.december": "Décembre",
|
|
@@ -20521,59 +20283,6 @@ var fr = {
|
|
|
20521
20283
|
"datafeeder.month.november": "Novembre",
|
|
20522
20284
|
"datafeeder.month.october": "Octobre",
|
|
20523
20285
|
"datafeeder.month.september": "Septembre",
|
|
20524
|
-
"datafeeder.publish.hint": "Vous pouvez quitter cette page en toute sécurité, vous serez prévenus quand le processus sera terminé",
|
|
20525
|
-
"datafeeder.publish.illustration.title": "Une autre donnée \n à publier ?",
|
|
20526
|
-
"datafeeder.publish.subtitle": "La publication peut prendre plusieurs minutes.",
|
|
20527
|
-
"datafeeder.publish.title": "Merci! \n Vos données sont en cours de publication",
|
|
20528
|
-
"datafeeder.publish.upload": "Télécharger maintenant",
|
|
20529
|
-
"datafeeder.publishSuccess.geonetworkRecord": "Fiche de métadonnées",
|
|
20530
|
-
"datafeeder.publishSuccess.illustration.title": "Terminé, tout s'est bien passé !",
|
|
20531
|
-
"datafeeder.publishSuccess.mapViewer": "Visualiseur",
|
|
20532
|
-
"datafeeder.publishSuccess.ogcFeature": "OGC API",
|
|
20533
|
-
"datafeeder.publishSuccess.subtitle": "Visualisez vos données :",
|
|
20534
|
-
"datafeeder.publishSuccess.title": "Félicitations! \n Vos données ont été publiées",
|
|
20535
|
-
"datafeeder.publishSuccess.uploadAnotherData": "Importer une autre donnée",
|
|
20536
|
-
"datafeeder.summarizePage.illustration": "Pas d'erreur ? C'est parti !",
|
|
20537
|
-
"datafeeder.summarizePage.previous": "Précédent",
|
|
20538
|
-
"datafeeder.summarizePage.submit": "Publier",
|
|
20539
|
-
"datafeeder.summarizePage.title": "On y est presque...",
|
|
20540
|
-
"datafeeder.upload.acceptedFormats": "Formats de fichier acceptés :",
|
|
20541
|
-
"datafeeder.upload.checkboxLabel": "J'ai le droit de publier cette donnée",
|
|
20542
|
-
"datafeeder.upload.error.subtitle.analysis": "Le fichier transféré contient-il des données géographiques valides ?",
|
|
20543
|
-
"datafeeder.upload.error.subtitle.cantOpenFile": "Vérifiez la validité du fichier sélectionné",
|
|
20544
|
-
"datafeeder.upload.error.subtitle.fileFormat": "Rappel : uniquement des SHP",
|
|
20545
|
-
"datafeeder.upload.error.subtitle.fileSize": "Rappel : {size} Mo maximum",
|
|
20546
|
-
"datafeeder.upload.error.title.analysis": "Erreur lors de l'analyse des données",
|
|
20547
|
-
"datafeeder.upload.error.title.cantOpenFile": "Erreur lors de l'ouverture du fichier",
|
|
20548
|
-
"datafeeder.upload.error.title.fileFormat": "Le format du fichier n'est pas supporté",
|
|
20549
|
-
"datafeeder.upload.error.title.fileHasntSelected": "Aucun fichier n'a été sélectionné",
|
|
20550
|
-
"datafeeder.upload.error.title.fileSize": "La taille du fichier est trop importante",
|
|
20551
|
-
"datafeeder.upload.error.title.noRightsToSendData": "Vous n'avez pas validé les droits de publication",
|
|
20552
|
-
"datafeeder.upload.illustration.enrichment": "Enrichissement",
|
|
20553
|
-
"datafeeder.upload.illustration.import": "Import",
|
|
20554
|
-
"datafeeder.upload.illustration.title": "Ajouter des données n'a jamais été aussi simple",
|
|
20555
|
-
"datafeeder.upload.illustration.validation": "Validation",
|
|
20556
|
-
"datafeeder.upload.illustration.verification": "Vérification",
|
|
20557
|
-
"datafeeder.upload.inputLabel": "Ajouter votre fichier",
|
|
20558
|
-
"datafeeder.upload.maxFileSize": "La taille maximale est {size} Mo",
|
|
20559
|
-
"datafeeder.upload.title": "Importez vos données",
|
|
20560
|
-
"datafeeder.upload.uploadButton": "Transférer",
|
|
20561
|
-
"datafeeder.validation.csv.delimiter": "Séparateur de colonne",
|
|
20562
|
-
"datafeeder.validation.csv.delimiter.comma": "Virgule",
|
|
20563
|
-
"datafeeder.validation.csv.delimiter.semicolon": "Point-virgule",
|
|
20564
|
-
"datafeeder.validation.csv.lat.field": "Colonne latitude",
|
|
20565
|
-
"datafeeder.validation.csv.lng.field": "Colonne longitude",
|
|
20566
|
-
"datafeeder.validation.csv.quote.double": "Double guillemets",
|
|
20567
|
-
"datafeeder.validation.csv.quote.none": "Aucun",
|
|
20568
|
-
"datafeeder.validation.csv.quote.simple": "Simple guillemet",
|
|
20569
|
-
"datafeeder.validation.csv.quoteChar": "Séparateur de texte",
|
|
20570
|
-
"datafeeder.validation.encoding": "Encodage",
|
|
20571
|
-
"datafeeder.validation.extent.title": "Voici l'emprise du jeu de données",
|
|
20572
|
-
"datafeeder.validation.extent.title.unknown": "Le système de projection est inconnu",
|
|
20573
|
-
"datafeeder.validation.projection": "Projection :",
|
|
20574
|
-
"datafeeder.validation.projection.unknown": "Choisissez une projection",
|
|
20575
|
-
"datafeeder.validation.sample.title": "Et un exemple d'objet",
|
|
20576
|
-
"datafeeder.wizard.emptyRequiredValuesMessage": "Veuillez remplir les champs obligatoires",
|
|
20577
20286
|
"datafeeder.wizardSummarize.createdAt": "Créée le",
|
|
20578
20287
|
"datafeeder.wizardSummarize.scale": "Échelle",
|
|
20579
20288
|
"datahub.header.datasets": "Données",
|
|
@@ -20613,7 +20322,7 @@ var fr = {
|
|
|
20613
20322
|
"domain.contact.role.point_of_contact": "Point de contact",
|
|
20614
20323
|
"domain.contact.role.principal_investigator": "Chercheur principal",
|
|
20615
20324
|
"domain.contact.role.processor": "Processeur",
|
|
20616
|
-
"domain.contact.role.publisher": "
|
|
20325
|
+
"domain.contact.role.publisher": "Producteur",
|
|
20617
20326
|
"domain.contact.role.resource_provider": "Fournisseur",
|
|
20618
20327
|
"domain.contact.role.rights_holder": "Détenteur des droits",
|
|
20619
20328
|
"domain.contact.role.sponsor": "Sponsor",
|
|
@@ -20677,7 +20386,7 @@ var fr = {
|
|
|
20677
20386
|
"editor.record.form.constraint.otherConstraints": "Autres contraintes",
|
|
20678
20387
|
"editor.record.form.constraint.securityConstraints": "Contraintes de sécurité",
|
|
20679
20388
|
"editor.record.form.draft.updateAlert": "Depuis la création de ce brouillon, ce jeu de données a été modifié le { date } par { user }. Publier votre version peut supprimer ses modifications. Pour éviter cela, vous pouvez annuler vos changements, ou publier votre version en connaissance de cause.",
|
|
20680
|
-
"editor.record.form.field.abstract": "
|
|
20389
|
+
"editor.record.form.field.abstract": "Description",
|
|
20681
20390
|
"editor.record.form.field.constraintsShortcuts": "",
|
|
20682
20391
|
"editor.record.form.field.contacts.noContact": "Veuillez renseigner au moins un point de contact.",
|
|
20683
20392
|
"editor.record.form.field.contacts.placeholder": "Choisissez un contact",
|
|
@@ -20719,14 +20428,14 @@ var fr = {
|
|
|
20719
20428
|
"editor.record.form.keywords.place.placeholder": "Rechercher une localisation par mot-clé",
|
|
20720
20429
|
"editor.record.form.keywords.place.withoutExtent": "Ce mot-clé n'a pas de localisation géographique associée",
|
|
20721
20430
|
"editor.record.form.keywords.placeholder": "Sélectionnez un mot-clé",
|
|
20722
|
-
"editor.record.form.license.cc-by": "",
|
|
20723
|
-
"editor.record.form.license.cc-by-sa": "",
|
|
20724
|
-
"editor.record.form.license.cc-zero": "",
|
|
20431
|
+
"editor.record.form.license.cc-by": "Creative Commons CC-BY",
|
|
20432
|
+
"editor.record.form.license.cc-by-sa": "Creative Commons CC-BY-SA",
|
|
20433
|
+
"editor.record.form.license.cc-zero": "Creative Commons CC-0",
|
|
20725
20434
|
"editor.record.form.license.etalab": "Licence Ouverte (Etalab)",
|
|
20726
20435
|
"editor.record.form.license.etalab-v2": "Licence Ouverte v2.0 (Etalab)",
|
|
20727
|
-
"editor.record.form.license.odbl": "",
|
|
20728
|
-
"editor.record.form.license.odc-by": "",
|
|
20729
|
-
"editor.record.form.license.pddl": "",
|
|
20436
|
+
"editor.record.form.license.odbl": "Open Data Commons ODbL",
|
|
20437
|
+
"editor.record.form.license.odc-by": "Open Data Commons ODC-By",
|
|
20438
|
+
"editor.record.form.license.pddl": "Open Data Commons PDDL",
|
|
20730
20439
|
"editor.record.form.license.unknown": "Inconnue ou absente",
|
|
20731
20440
|
"editor.record.form.page.accessAndContact": "Informations pour l'utilisation",
|
|
20732
20441
|
"editor.record.form.page.description": "Description du jeu de données",
|
|
@@ -20779,7 +20488,7 @@ var fr = {
|
|
|
20779
20488
|
"editor.record.resourceError.closeMessage": "Compris",
|
|
20780
20489
|
"editor.record.resourceError.title": "Erreur avec les pièces jointes",
|
|
20781
20490
|
"editor.record.saveStatus.draftWithChangesPending": "Sauvegardé - Modifications non publiées",
|
|
20782
|
-
"editor.record.saveStatus.recordNotPublished": "",
|
|
20491
|
+
"editor.record.saveStatus.recordNotPublished": "Sauvegardé - non publié",
|
|
20783
20492
|
"editor.record.saveStatus.recordUpToDate": "Sauvegardé - Jeu de données à jour",
|
|
20784
20493
|
"editor.record.undo.confirmation.cancelText": "Garder les modifications",
|
|
20785
20494
|
"editor.record.undo.confirmation.confirmText": "Retirer les modifications",
|
|
@@ -20789,7 +20498,7 @@ var fr = {
|
|
|
20789
20498
|
"editor.record.undo.tooltip.enabled": "Cliquer sur ce bouton pour annuler les modifications apportées à ce jeu de données",
|
|
20790
20499
|
"editor.record.upToDate": "Ce jeu de données est à jour",
|
|
20791
20500
|
"editor.sidebar.logout": "Se déconnecter",
|
|
20792
|
-
"editor.sidebar.menu.editor": "",
|
|
20501
|
+
"editor.sidebar.menu.editor": "Editeur",
|
|
20793
20502
|
"editor.temporary.disabled": "Pas encore implémenté",
|
|
20794
20503
|
"externalviewer.dataset.unnamed": "Couche du datahub",
|
|
20795
20504
|
"facets.block.title.OrgForResource": "Organisation",
|
|
@@ -20837,7 +20546,7 @@ var fr = {
|
|
|
20837
20546
|
"map.add.layer": "Ajouter une couche",
|
|
20838
20547
|
"map.add.layer.catalog": "Du catalogue",
|
|
20839
20548
|
"map.add.layer.file": "À partir d'un fichier",
|
|
20840
|
-
"map.add.layer.ogc.api": "",
|
|
20549
|
+
"map.add.layer.ogc.api": "Depuis un service OGC API",
|
|
20841
20550
|
"map.add.layer.wfs": "Depuis un service WFS",
|
|
20842
20551
|
"map.add.layer.wms": "Depuis un service WMS",
|
|
20843
20552
|
"map.addFromFile.placeholder": "Cliquez ou déposez un fichier ici",
|
|
@@ -20850,7 +20559,7 @@ var fr = {
|
|
|
20850
20559
|
"map.loading.data": "Chargement des données...",
|
|
20851
20560
|
"map.loading.service": "Chargement du service...",
|
|
20852
20561
|
"map.navigation.message": "Veuillez utiliser CTRL + souris (ou deux doigts sur mobile) pour naviguer sur la carte",
|
|
20853
|
-
"map.ogc.urlInput.hint": "",
|
|
20562
|
+
"map.ogc.urlInput.hint": "Entrez l'URL du service OGC API",
|
|
20854
20563
|
"map.select.layer": "Source de données",
|
|
20855
20564
|
"map.wfs.urlInput.hint": "Entrez l'URL du service WFS",
|
|
20856
20565
|
"map.wms.urlInput.hint": "Entrez l'URL du service WMS",
|
|
@@ -20877,9 +20586,10 @@ var fr = {
|
|
|
20877
20586
|
"record.action.download": "Télécharger",
|
|
20878
20587
|
"record.action.duplicate": "Dupliquer",
|
|
20879
20588
|
"record.action.duplicating": "Duplication...",
|
|
20589
|
+
"record.action.rollback": "Restaurer",
|
|
20880
20590
|
"record.action.view": "Voir",
|
|
20881
20591
|
"record.externalViewer.open": "Ouvrir dans le visualiseur externe",
|
|
20882
|
-
"record.feature.limit": "
|
|
20592
|
+
"record.feature.limit": "L’aperçu a été désactivé en raison d’un trop grand nombre d'éléments",
|
|
20883
20593
|
"record.metadata.about": "Description",
|
|
20884
20594
|
"record.metadata.api": "API",
|
|
20885
20595
|
"record.metadata.api.form.closeButton": "Fermer",
|
|
@@ -20997,8 +20707,10 @@ var fr = {
|
|
|
20997
20707
|
"search.error.receivedError": "Erreur retournée",
|
|
20998
20708
|
"search.error.recordHasnolink": "Ce jeu de données n'a pas encore de lien, réessayez plus tard s'il vous plaît.",
|
|
20999
20709
|
"search.error.recordNotFound": "Cette donnée n'a pu être trouvée.",
|
|
21000
|
-
"search.field.any.placeholder": "Rechercher
|
|
20710
|
+
"search.field.any.placeholder": "Rechercher dans le catalogue...",
|
|
21001
20711
|
"search.field.sortBy": "Trier par :",
|
|
20712
|
+
"search.filters.availableServices.download": "",
|
|
20713
|
+
"search.filters.availableServices.view": "",
|
|
21002
20714
|
"search.filters.changeDate": "Mise à jour",
|
|
21003
20715
|
"search.filters.clear": "Réinitialiser",
|
|
21004
20716
|
"search.filters.contact": "Contacts",
|
|
@@ -21054,7 +20766,6 @@ var fr = {
|
|
|
21054
20766
|
"tooltip.url.open": "Ouvrir l'URL",
|
|
21055
20767
|
"ui.readLess": "Réduire",
|
|
21056
20768
|
"ui.readMore": "Lire la suite",
|
|
21057
|
-
"wfs.aggregations.notsupported": "Agrégations non supportées pour les services WFS",
|
|
21058
20769
|
"wfs.feature.limit": "Trop d'objets pour afficher la couche WFS !",
|
|
21059
20770
|
"wfs.featuretype.notfound": "La classe d'objets n'a pas été trouvée dans le service",
|
|
21060
20771
|
"wfs.geojsongml.notsupported": "Le service ne supporte pas le format GeoJSON ou GML",
|
|
@@ -21089,8 +20800,6 @@ var it = {
|
|
|
21089
20800
|
"chart.type.lineSmooth": "grafico a linea liscia",
|
|
21090
20801
|
"chart.type.pie": "grafico a torta",
|
|
21091
20802
|
"dashboard.catalog.allRecords": "Datasets",
|
|
21092
|
-
"dashboard.catalog.contacts": "Contatti",
|
|
21093
|
-
"dashboard.catalog.thesaurus": "Thesauri",
|
|
21094
20803
|
"dashboard.createRecord": "Crea un record",
|
|
21095
20804
|
"dashboard.importRecord": "Importare",
|
|
21096
20805
|
"dashboard.importRecord.importExternal": "Importare un dataset esterno",
|
|
@@ -21103,29 +20812,10 @@ var it = {
|
|
|
21103
20812
|
"dashboard.records.myDraft": "Le mie bozze",
|
|
21104
20813
|
"dashboard.records.myRecords": "I miei dati",
|
|
21105
20814
|
"dashboard.records.search": "Risultati per \"{searchText}\"",
|
|
21106
|
-
"dashboard.records.templates": "Modelli precompilati",
|
|
21107
20815
|
"dashboard.records.userDetail": "Nome",
|
|
21108
20816
|
"dashboard.records.userEmail": "Email",
|
|
21109
20817
|
"dashboard.records.username": "Nome utente",
|
|
21110
20818
|
"dashboard.records.users": "utenti",
|
|
21111
|
-
"datafeeder.analysisProgressBar.illustration.fileFormatDetection": "Rilevamento del formato dei file",
|
|
21112
|
-
"datafeeder.analysisProgressBar.illustration.gatheringDatasetInformation": "Recupero delle informazioni dal dataset",
|
|
21113
|
-
"datafeeder.analysisProgressBar.illustration.samplingData": "Campionatura dei dati",
|
|
21114
|
-
"datafeeder.analysisProgressBar.subtitle": "L'analisi potrebbe richiedere alcuni minuti, si prega di attendere.",
|
|
21115
|
-
"datafeeder.analysisProgressBar.title": "Analisi in corso",
|
|
21116
|
-
"datafeeder.datasetValidation.datasetInformation": "Il dataset fornito contiene {number} entità",
|
|
21117
|
-
"datafeeder.datasetValidation.submitButton": "OK, i miei dati sono corretti",
|
|
21118
|
-
"datafeeder.datasetValidation.title": "Controllare che i dati siano corretti",
|
|
21119
|
-
"datafeeder.datasetValidation.unknown": " - ",
|
|
21120
|
-
"datafeeder.datasetValidationCsv.explicitLineNumbers": "*La tabella dovrebbe visualizzare le prime 5 righe (esclusa l'intestazione)<br>In caso contrario, verificare che il file sia formattato correttamente",
|
|
21121
|
-
"datafeeder.datasetValidationCsv.lineNumbers": "Riepilogo delle prime 5 righe del CSV:",
|
|
21122
|
-
"datafeeder.form.abstract": "Come descrivere il suo dataset?",
|
|
21123
|
-
"datafeeder.form.datepicker": "Sa quando è stato creato il suo dataset ?",
|
|
21124
|
-
"datafeeder.form.description": "Infine, descrivere il processo utilizzato per creare il dataset",
|
|
21125
|
-
"datafeeder.form.dropdown": "Per quale scala è stato creato?",
|
|
21126
|
-
"datafeeder.form.tags": "Seleziona uno o più parole chiave che corrispondano al suo dataset",
|
|
21127
|
-
"datafeeder.form.title": "Dà al suo dataset il miglior titolo",
|
|
21128
|
-
"datafeeder.formsPage.title": "Diteci di più sul suo dataset",
|
|
21129
20819
|
"datafeeder.month.april": "Aprile",
|
|
21130
20820
|
"datafeeder.month.august": "Agosto",
|
|
21131
20821
|
"datafeeder.month.december": "Dicembre",
|
|
@@ -21138,59 +20828,6 @@ var it = {
|
|
|
21138
20828
|
"datafeeder.month.november": "Novembre",
|
|
21139
20829
|
"datafeeder.month.october": "Ottobre",
|
|
21140
20830
|
"datafeeder.month.september": "Settembre",
|
|
21141
|
-
"datafeeder.publish.hint": "Puo lasciare questa pagina in sicurezza, sarà avvisato quando il processo sarà completo",
|
|
21142
|
-
"datafeeder.publish.illustration.title": "Un altro dato da pubblicare?",
|
|
21143
|
-
"datafeeder.publish.subtitle": "La pubblicazione potrebbe richiedere alcuni minuti.",
|
|
21144
|
-
"datafeeder.publish.title": "Grazie! \n I suei dati sono in fase di pubblicazione",
|
|
21145
|
-
"datafeeder.publish.upload": "Carica ora",
|
|
21146
|
-
"datafeeder.publishSuccess.geonetworkRecord": "Scheda di metadati",
|
|
21147
|
-
"datafeeder.publishSuccess.illustration.title": "Completato, tutto è andato bene!",
|
|
21148
|
-
"datafeeder.publishSuccess.mapViewer": "Visualizzatore",
|
|
21149
|
-
"datafeeder.publishSuccess.ogcFeature": "OGC API",
|
|
21150
|
-
"datafeeder.publishSuccess.subtitle": "Visualizzare i dati:",
|
|
21151
|
-
"datafeeder.publishSuccess.title": "Congratulazioni! \n I suoi dati sono stati pubblicati",
|
|
21152
|
-
"datafeeder.publishSuccess.uploadAnotherData": "Caricare un altro dato",
|
|
21153
|
-
"datafeeder.summarizePage.illustration": "Nessun errore? Avanti!",
|
|
21154
|
-
"datafeeder.summarizePage.previous": "Precedente",
|
|
21155
|
-
"datafeeder.summarizePage.submit": "Pubblica",
|
|
21156
|
-
"datafeeder.summarizePage.title": "Ci siamo quasi...",
|
|
21157
|
-
"datafeeder.upload.acceptedFormats": "Formati di file accettati:",
|
|
21158
|
-
"datafeeder.upload.checkboxLabel": "Ho il diritto di pubblicare questi dati",
|
|
21159
|
-
"datafeeder.upload.error.subtitle.analysis": "Il file trasferito contiene dati geografici validi?",
|
|
21160
|
-
"datafeeder.upload.error.subtitle.cantOpenFile": "Verifica la validità del file selezionato",
|
|
21161
|
-
"datafeeder.upload.error.subtitle.fileFormat": "Ricorda: solo SHP",
|
|
21162
|
-
"datafeeder.upload.error.subtitle.fileSize": "Ricorda: dimensione massima {size} MB",
|
|
21163
|
-
"datafeeder.upload.error.title.analysis": "Errore durante l'analisi dei dati",
|
|
21164
|
-
"datafeeder.upload.error.title.cantOpenFile": "Errore durante l'apertura del file",
|
|
21165
|
-
"datafeeder.upload.error.title.fileFormat": "Formato del file non supportato",
|
|
21166
|
-
"datafeeder.upload.error.title.fileHasntSelected": "Nessun file selezionato",
|
|
21167
|
-
"datafeeder.upload.error.title.fileSize": "Dimensione del file troppo grande",
|
|
21168
|
-
"datafeeder.upload.error.title.noRightsToSendData": "Non avete validato i diritti di pubblicazione",
|
|
21169
|
-
"datafeeder.upload.illustration.enrichment": "Arricchimento",
|
|
21170
|
-
"datafeeder.upload.illustration.import": "Importazione",
|
|
21171
|
-
"datafeeder.upload.illustration.title": "Aggiungere dati non è mai stato così facile",
|
|
21172
|
-
"datafeeder.upload.illustration.validation": "Validazione",
|
|
21173
|
-
"datafeeder.upload.illustration.verification": "Verifica",
|
|
21174
|
-
"datafeeder.upload.inputLabel": "Aggiunge il suo file",
|
|
21175
|
-
"datafeeder.upload.maxFileSize": "Dimensione massima: {size} MB",
|
|
21176
|
-
"datafeeder.upload.title": "Importa i suoi dati",
|
|
21177
|
-
"datafeeder.upload.uploadButton": "Carica",
|
|
21178
|
-
"datafeeder.validation.csv.delimiter": "Separatore di colonne",
|
|
21179
|
-
"datafeeder.validation.csv.delimiter.comma": "Virgola",
|
|
21180
|
-
"datafeeder.validation.csv.delimiter.semicolon": "Punto e virgola",
|
|
21181
|
-
"datafeeder.validation.csv.lat.field": "Colonna di latitudine",
|
|
21182
|
-
"datafeeder.validation.csv.lng.field": "Colonna di longitudine",
|
|
21183
|
-
"datafeeder.validation.csv.quote.double": "Virgolette doppie",
|
|
21184
|
-
"datafeeder.validation.csv.quote.none": "Nessun",
|
|
21185
|
-
"datafeeder.validation.csv.quote.simple": "Citazione semplice",
|
|
21186
|
-
"datafeeder.validation.csv.quoteChar": "Separatore di testo",
|
|
21187
|
-
"datafeeder.validation.encoding": "Codifica",
|
|
21188
|
-
"datafeeder.validation.extent.title": "Ecco l'estensione del dataset",
|
|
21189
|
-
"datafeeder.validation.extent.title.unknown": "Sistema di proiezione sconosciuto",
|
|
21190
|
-
"datafeeder.validation.projection": "Proiezione:",
|
|
21191
|
-
"datafeeder.validation.projection.unknown": "Seleziona una proiezione",
|
|
21192
|
-
"datafeeder.validation.sample.title": "E un esempio di oggetto",
|
|
21193
|
-
"datafeeder.wizard.emptyRequiredValuesMessage": "Si prega di compilare i campi obbligatori",
|
|
21194
20831
|
"datafeeder.wizardSummarize.createdAt": "Creato il",
|
|
21195
20832
|
"datafeeder.wizardSummarize.scale": "Scala",
|
|
21196
20833
|
"datahub.header.datasets": "Dati",
|
|
@@ -21274,9 +20911,9 @@ var it = {
|
|
|
21274
20911
|
"editor.record.deleteError.title": "Errore durante l'eliminazione",
|
|
21275
20912
|
"editor.record.deleteSuccess.body": "Il dataset è stato eliminato correttamente",
|
|
21276
20913
|
"editor.record.deleteSuccess.title": "Eliminazione riuscita",
|
|
21277
|
-
"editor.record.error.back": "",
|
|
21278
|
-
"editor.record.error.explanation": "",
|
|
21279
|
-
"editor.record.error.message": "",
|
|
20914
|
+
"editor.record.error.back": "Ritorna al catalogo",
|
|
20915
|
+
"editor.record.error.explanation": "Forse non ha accesso a questa pagina oppure questo collegamento potrebbe non essere valido.",
|
|
20916
|
+
"editor.record.error.message": "Qualcosa è andato storto",
|
|
21280
20917
|
"editor.record.form.bottomButtons.comeBackLater": "Ritorna più tardi",
|
|
21281
20918
|
"editor.record.form.bottomButtons.next": "Avanti",
|
|
21282
20919
|
"editor.record.form.bottomButtons.previous": "Precedente",
|
|
@@ -21336,18 +20973,18 @@ var it = {
|
|
|
21336
20973
|
"editor.record.form.keywords.place.placeholder": "Cerca una posizione per parola chiave",
|
|
21337
20974
|
"editor.record.form.keywords.place.withoutExtent": "Questa parola chiave non ha una posizione geografica associata",
|
|
21338
20975
|
"editor.record.form.keywords.placeholder": "Seleziona una parola chiave",
|
|
21339
|
-
"editor.record.form.license.cc-by": "",
|
|
21340
|
-
"editor.record.form.license.cc-by-sa": "",
|
|
21341
|
-
"editor.record.form.license.cc-zero": "",
|
|
20976
|
+
"editor.record.form.license.cc-by": "Creative Commons CC-BY",
|
|
20977
|
+
"editor.record.form.license.cc-by-sa": "Creative Commons CC-BY-SA",
|
|
20978
|
+
"editor.record.form.license.cc-zero": "Creative Commons CC-0",
|
|
21342
20979
|
"editor.record.form.license.etalab": "Licenza aperta (Etalab)",
|
|
21343
20980
|
"editor.record.form.license.etalab-v2": "Licenza aperta v2.0 (Etalab)",
|
|
21344
|
-
"editor.record.form.license.odbl": "",
|
|
21345
|
-
"editor.record.form.license.odc-by": "",
|
|
21346
|
-
"editor.record.form.license.pddl": "",
|
|
20981
|
+
"editor.record.form.license.odbl": "Open Data Commons ODbL",
|
|
20982
|
+
"editor.record.form.license.odc-by": "Open Data Commons ODC-By",
|
|
20983
|
+
"editor.record.form.license.pddl": "Open Data Commons PDDL",
|
|
21347
20984
|
"editor.record.form.license.unknown": "Sconosciuto o assente",
|
|
21348
20985
|
"editor.record.form.page.accessAndContact": "Informazioni per l'uso",
|
|
21349
20986
|
"editor.record.form.page.description": "Descrizione del dataset",
|
|
21350
|
-
"editor.record.form.page.resources": "",
|
|
20987
|
+
"editor.record.form.page.resources": "Risorse",
|
|
21351
20988
|
"editor.record.form.section.about.description": "Queste informazioni riguardano il dataset",
|
|
21352
20989
|
"editor.record.form.section.about.label": "Informazioni sul dataset",
|
|
21353
20990
|
"editor.record.form.section.annexes.description": "Gli allegati sono risorse facoltative. Sono allegati al dataset e aiutano a comprendere meglio i dati (avviso, ecc.).",
|
|
@@ -21374,7 +21011,7 @@ var it = {
|
|
|
21374
21011
|
"editor.record.loadError.body": "Impossibile caricare il dataset:",
|
|
21375
21012
|
"editor.record.loadError.closeMessage": "Capito",
|
|
21376
21013
|
"editor.record.loadError.title": "Errore durante il caricamento",
|
|
21377
|
-
"editor.record.lock.reason": "",
|
|
21014
|
+
"editor.record.lock.reason": "Non è un editore di uno dei gruppi autorizzati",
|
|
21378
21015
|
"editor.record.onlineResource.protocol.other": "Altro",
|
|
21379
21016
|
"editor.record.onlineResourceError.body": "Ha successo un'errore durante l'aggiunta della risorsa:",
|
|
21380
21017
|
"editor.record.onlineResourceError.closeMessage": "Capito",
|
|
@@ -21396,7 +21033,7 @@ var it = {
|
|
|
21396
21033
|
"editor.record.resourceError.closeMessage": "Capito",
|
|
21397
21034
|
"editor.record.resourceError.title": "Errore con gli allegati",
|
|
21398
21035
|
"editor.record.saveStatus.draftWithChangesPending": "Salvato - Modifiche non pubblicate",
|
|
21399
|
-
"editor.record.saveStatus.recordNotPublished": "",
|
|
21036
|
+
"editor.record.saveStatus.recordNotPublished": "Salvato - non pubblicato",
|
|
21400
21037
|
"editor.record.saveStatus.recordUpToDate": "Salvato - Dataset aggiornato",
|
|
21401
21038
|
"editor.record.undo.confirmation.cancelText": "Mantieni le modifiche",
|
|
21402
21039
|
"editor.record.undo.confirmation.confirmText": "Annulla le modifiche",
|
|
@@ -21406,7 +21043,7 @@ var it = {
|
|
|
21406
21043
|
"editor.record.undo.tooltip.enabled": "Fare clic su questo pulsante per annullare le modifiche apportate a questo dataset",
|
|
21407
21044
|
"editor.record.upToDate": "Questo dataset è aggiornato",
|
|
21408
21045
|
"editor.sidebar.logout": "Esci",
|
|
21409
|
-
"editor.sidebar.menu.editor": "",
|
|
21046
|
+
"editor.sidebar.menu.editor": "Editore",
|
|
21410
21047
|
"editor.temporary.disabled": "Non ancora implementato",
|
|
21411
21048
|
"externalviewer.dataset.unnamed": "Layer del datahub",
|
|
21412
21049
|
"facets.block.title.OrgForResource": "Organizzazione",
|
|
@@ -21454,7 +21091,7 @@ var it = {
|
|
|
21454
21091
|
"map.add.layer": "Aggiungere un layer",
|
|
21455
21092
|
"map.add.layer.catalog": "Dal catalogo",
|
|
21456
21093
|
"map.add.layer.file": "Da un file",
|
|
21457
|
-
"map.add.layer.ogc.api": "",
|
|
21094
|
+
"map.add.layer.ogc.api": "Da OGC API",
|
|
21458
21095
|
"map.add.layer.wfs": "Da un WFS",
|
|
21459
21096
|
"map.add.layer.wms": "Da un WMS",
|
|
21460
21097
|
"map.addFromFile.placeholder": "Clicca o trascina un file qui",
|
|
@@ -21467,7 +21104,7 @@ var it = {
|
|
|
21467
21104
|
"map.loading.data": "Caricamento dati...",
|
|
21468
21105
|
"map.loading.service": "Caricamento del servizio...",
|
|
21469
21106
|
"map.navigation.message": "Si prega di utilizzare CTRL + mouse (o due dita su mobile) per navigare sulla mappa",
|
|
21470
|
-
"map.ogc.urlInput.hint": "",
|
|
21107
|
+
"map.ogc.urlInput.hint": "Inserisci URL del servizio OGC API",
|
|
21471
21108
|
"map.select.layer": "Sorgente dati",
|
|
21472
21109
|
"map.wfs.urlInput.hint": "Inserisci URL del servizio WFS",
|
|
21473
21110
|
"map.wms.urlInput.hint": "Inserisci URL del servizio WMS",
|
|
@@ -21493,10 +21130,11 @@ var it = {
|
|
|
21493
21130
|
"record.action.delete": "Elimina",
|
|
21494
21131
|
"record.action.download": "Scarica",
|
|
21495
21132
|
"record.action.duplicate": "Duplicato",
|
|
21496
|
-
"record.action.duplicating": "",
|
|
21133
|
+
"record.action.duplicating": "Duplicazione",
|
|
21134
|
+
"record.action.rollback": "Annulla",
|
|
21497
21135
|
"record.action.view": "Visualizza",
|
|
21498
21136
|
"record.externalViewer.open": "Aprire nel visualizzatore esterno",
|
|
21499
|
-
"record.feature.limit": "La
|
|
21137
|
+
"record.feature.limit": "La visualizzazione è stata disabilitata a causa di troppi elementi ",
|
|
21500
21138
|
"record.metadata.about": "Descrizione",
|
|
21501
21139
|
"record.metadata.api": "API",
|
|
21502
21140
|
"record.metadata.api.form.closeButton": "Chiude",
|
|
@@ -21614,8 +21252,10 @@ var it = {
|
|
|
21614
21252
|
"search.error.receivedError": "Errore restituito",
|
|
21615
21253
|
"search.error.recordHasnolink": "Questo dataset non ha ancora alcun collegamento, riprova più tardi.",
|
|
21616
21254
|
"search.error.recordNotFound": "Impossibile trovare questi dati.",
|
|
21617
|
-
"search.field.any.placeholder": "Cerca
|
|
21255
|
+
"search.field.any.placeholder": "Cerca del catalogo...",
|
|
21618
21256
|
"search.field.sortBy": "Ordina per:",
|
|
21257
|
+
"search.filters.availableServices.download": "",
|
|
21258
|
+
"search.filters.availableServices.view": "",
|
|
21619
21259
|
"search.filters.changeDate": "Aggiornato",
|
|
21620
21260
|
"search.filters.clear": "Ripristina",
|
|
21621
21261
|
"search.filters.contact": "Contatti",
|
|
@@ -21671,7 +21311,7 @@ var it = {
|
|
|
21671
21311
|
"tooltip.url.open": "Aprire l'URL",
|
|
21672
21312
|
"ui.readLess": "Ridurre",
|
|
21673
21313
|
"ui.readMore": "Leggere di più",
|
|
21674
|
-
"wfs.aggregations.notsupported": "",
|
|
21314
|
+
"wfs.aggregations.notsupported": "Aggregazioni non supportate per i servizi WFS",
|
|
21675
21315
|
"wfs.feature.limit": "Troppi oggetti per visualizzare il WFS layer!",
|
|
21676
21316
|
"wfs.featuretype.notfound": "La classe di oggetto non è stata trovata nel servizio",
|
|
21677
21317
|
"wfs.geojsongml.notsupported": "Il servizio non supporta il formato GeoJSON o GML",
|
|
@@ -21706,8 +21346,6 @@ var nl = {
|
|
|
21706
21346
|
"chart.type.lineSmooth": "glad lijndiagram",
|
|
21707
21347
|
"chart.type.pie": "cirkeldiagram",
|
|
21708
21348
|
"dashboard.catalog.allRecords": "",
|
|
21709
|
-
"dashboard.catalog.contacts": "",
|
|
21710
|
-
"dashboard.catalog.thesaurus": "",
|
|
21711
21349
|
"dashboard.createRecord": "",
|
|
21712
21350
|
"dashboard.importRecord": "",
|
|
21713
21351
|
"dashboard.importRecord.importExternal": "",
|
|
@@ -21720,29 +21358,10 @@ var nl = {
|
|
|
21720
21358
|
"dashboard.records.myDraft": "Mijn concepten",
|
|
21721
21359
|
"dashboard.records.myRecords": "Mijn Records",
|
|
21722
21360
|
"dashboard.records.search": "Zoeken naar \"{searchText}\"",
|
|
21723
|
-
"dashboard.records.templates": "",
|
|
21724
21361
|
"dashboard.records.userDetail": "",
|
|
21725
21362
|
"dashboard.records.userEmail": "",
|
|
21726
21363
|
"dashboard.records.username": "",
|
|
21727
21364
|
"dashboard.records.users": "",
|
|
21728
|
-
"datafeeder.analysisProgressBar.illustration.fileFormatDetection": "",
|
|
21729
|
-
"datafeeder.analysisProgressBar.illustration.gatheringDatasetInformation": "",
|
|
21730
|
-
"datafeeder.analysisProgressBar.illustration.samplingData": "",
|
|
21731
|
-
"datafeeder.analysisProgressBar.subtitle": "",
|
|
21732
|
-
"datafeeder.analysisProgressBar.title": "",
|
|
21733
|
-
"datafeeder.datasetValidation.datasetInformation": "",
|
|
21734
|
-
"datafeeder.datasetValidation.submitButton": "",
|
|
21735
|
-
"datafeeder.datasetValidation.title": "",
|
|
21736
|
-
"datafeeder.datasetValidation.unknown": "",
|
|
21737
|
-
"datafeeder.datasetValidationCsv.explicitLineNumbers": "",
|
|
21738
|
-
"datafeeder.datasetValidationCsv.lineNumbers": "",
|
|
21739
|
-
"datafeeder.form.abstract": "",
|
|
21740
|
-
"datafeeder.form.datepicker": "",
|
|
21741
|
-
"datafeeder.form.description": "",
|
|
21742
|
-
"datafeeder.form.dropdown": "",
|
|
21743
|
-
"datafeeder.form.tags": "",
|
|
21744
|
-
"datafeeder.form.title": "",
|
|
21745
|
-
"datafeeder.formsPage.title": "",
|
|
21746
21365
|
"datafeeder.month.april": "",
|
|
21747
21366
|
"datafeeder.month.august": "",
|
|
21748
21367
|
"datafeeder.month.december": "",
|
|
@@ -21755,59 +21374,6 @@ var nl = {
|
|
|
21755
21374
|
"datafeeder.month.november": "",
|
|
21756
21375
|
"datafeeder.month.october": "",
|
|
21757
21376
|
"datafeeder.month.september": "",
|
|
21758
|
-
"datafeeder.publish.hint": "",
|
|
21759
|
-
"datafeeder.publish.illustration.title": "",
|
|
21760
|
-
"datafeeder.publish.subtitle": "",
|
|
21761
|
-
"datafeeder.publish.title": "",
|
|
21762
|
-
"datafeeder.publish.upload": "",
|
|
21763
|
-
"datafeeder.publishSuccess.geonetworkRecord": "",
|
|
21764
|
-
"datafeeder.publishSuccess.illustration.title": "",
|
|
21765
|
-
"datafeeder.publishSuccess.mapViewer": "",
|
|
21766
|
-
"datafeeder.publishSuccess.ogcFeature": "",
|
|
21767
|
-
"datafeeder.publishSuccess.subtitle": "",
|
|
21768
|
-
"datafeeder.publishSuccess.title": "",
|
|
21769
|
-
"datafeeder.publishSuccess.uploadAnotherData": "",
|
|
21770
|
-
"datafeeder.summarizePage.illustration": "",
|
|
21771
|
-
"datafeeder.summarizePage.previous": "",
|
|
21772
|
-
"datafeeder.summarizePage.submit": "",
|
|
21773
|
-
"datafeeder.summarizePage.title": "",
|
|
21774
|
-
"datafeeder.upload.acceptedFormats": "",
|
|
21775
|
-
"datafeeder.upload.checkboxLabel": "",
|
|
21776
|
-
"datafeeder.upload.error.subtitle.analysis": "",
|
|
21777
|
-
"datafeeder.upload.error.subtitle.cantOpenFile": "",
|
|
21778
|
-
"datafeeder.upload.error.subtitle.fileFormat": "",
|
|
21779
|
-
"datafeeder.upload.error.subtitle.fileSize": "",
|
|
21780
|
-
"datafeeder.upload.error.title.analysis": "",
|
|
21781
|
-
"datafeeder.upload.error.title.cantOpenFile": "",
|
|
21782
|
-
"datafeeder.upload.error.title.fileFormat": "",
|
|
21783
|
-
"datafeeder.upload.error.title.fileHasntSelected": "",
|
|
21784
|
-
"datafeeder.upload.error.title.fileSize": "",
|
|
21785
|
-
"datafeeder.upload.error.title.noRightsToSendData": "",
|
|
21786
|
-
"datafeeder.upload.illustration.enrichment": "",
|
|
21787
|
-
"datafeeder.upload.illustration.import": "",
|
|
21788
|
-
"datafeeder.upload.illustration.title": "",
|
|
21789
|
-
"datafeeder.upload.illustration.validation": "",
|
|
21790
|
-
"datafeeder.upload.illustration.verification": "",
|
|
21791
|
-
"datafeeder.upload.inputLabel": "",
|
|
21792
|
-
"datafeeder.upload.maxFileSize": "",
|
|
21793
|
-
"datafeeder.upload.title": "",
|
|
21794
|
-
"datafeeder.upload.uploadButton": "",
|
|
21795
|
-
"datafeeder.validation.csv.delimiter": "",
|
|
21796
|
-
"datafeeder.validation.csv.delimiter.comma": "",
|
|
21797
|
-
"datafeeder.validation.csv.delimiter.semicolon": "",
|
|
21798
|
-
"datafeeder.validation.csv.lat.field": "",
|
|
21799
|
-
"datafeeder.validation.csv.lng.field": "",
|
|
21800
|
-
"datafeeder.validation.csv.quote.double": "",
|
|
21801
|
-
"datafeeder.validation.csv.quote.none": "",
|
|
21802
|
-
"datafeeder.validation.csv.quote.simple": "",
|
|
21803
|
-
"datafeeder.validation.csv.quoteChar": "",
|
|
21804
|
-
"datafeeder.validation.encoding": "",
|
|
21805
|
-
"datafeeder.validation.extent.title": "",
|
|
21806
|
-
"datafeeder.validation.extent.title.unknown": "",
|
|
21807
|
-
"datafeeder.validation.projection": "",
|
|
21808
|
-
"datafeeder.validation.projection.unknown": "",
|
|
21809
|
-
"datafeeder.validation.sample.title": "",
|
|
21810
|
-
"datafeeder.wizard.emptyRequiredValuesMessage": "",
|
|
21811
21377
|
"datafeeder.wizardSummarize.createdAt": "",
|
|
21812
21378
|
"datafeeder.wizardSummarize.scale": "",
|
|
21813
21379
|
"datahub.header.datasets": "",
|
|
@@ -22111,6 +21677,7 @@ var nl = {
|
|
|
22111
21677
|
"record.action.download": "",
|
|
22112
21678
|
"record.action.duplicate": "",
|
|
22113
21679
|
"record.action.duplicating": "",
|
|
21680
|
+
"record.action.rollback": "",
|
|
22114
21681
|
"record.action.view": "",
|
|
22115
21682
|
"record.externalViewer.open": "",
|
|
22116
21683
|
"record.feature.limit": "",
|
|
@@ -22233,6 +21800,8 @@ var nl = {
|
|
|
22233
21800
|
"search.error.recordNotFound": "",
|
|
22234
21801
|
"search.field.any.placeholder": "",
|
|
22235
21802
|
"search.field.sortBy": "",
|
|
21803
|
+
"search.filters.availableServices.download": "",
|
|
21804
|
+
"search.filters.availableServices.view": "",
|
|
22236
21805
|
"search.filters.changeDate": "",
|
|
22237
21806
|
"search.filters.clear": "",
|
|
22238
21807
|
"search.filters.contact": "",
|
|
@@ -22288,7 +21857,6 @@ var nl = {
|
|
|
22288
21857
|
"tooltip.url.open": "",
|
|
22289
21858
|
"ui.readLess": "",
|
|
22290
21859
|
"ui.readMore": "",
|
|
22291
|
-
"wfs.aggregations.notsupported": "",
|
|
22292
21860
|
"wfs.feature.limit": "",
|
|
22293
21861
|
"wfs.featuretype.notfound": "",
|
|
22294
21862
|
"wfs.geojsongml.notsupported": "",
|
|
@@ -22323,8 +21891,6 @@ var pt = {
|
|
|
22323
21891
|
"chart.type.lineSmooth": "gráfico de linha suave",
|
|
22324
21892
|
"chart.type.pie": "gráfico de pizza",
|
|
22325
21893
|
"dashboard.catalog.allRecords": "",
|
|
22326
|
-
"dashboard.catalog.contacts": "",
|
|
22327
|
-
"dashboard.catalog.thesaurus": "",
|
|
22328
21894
|
"dashboard.createRecord": "",
|
|
22329
21895
|
"dashboard.importRecord": "",
|
|
22330
21896
|
"dashboard.importRecord.importExternal": "",
|
|
@@ -22337,29 +21903,10 @@ var pt = {
|
|
|
22337
21903
|
"dashboard.records.myDraft": "Meus rascunhos",
|
|
22338
21904
|
"dashboard.records.myRecords": "Meus Registros",
|
|
22339
21905
|
"dashboard.records.search": "Buscar por \"{searchText}\"",
|
|
22340
|
-
"dashboard.records.templates": "",
|
|
22341
21906
|
"dashboard.records.userDetail": "",
|
|
22342
21907
|
"dashboard.records.userEmail": "",
|
|
22343
21908
|
"dashboard.records.username": "",
|
|
22344
21909
|
"dashboard.records.users": "",
|
|
22345
|
-
"datafeeder.analysisProgressBar.illustration.fileFormatDetection": "",
|
|
22346
|
-
"datafeeder.analysisProgressBar.illustration.gatheringDatasetInformation": "",
|
|
22347
|
-
"datafeeder.analysisProgressBar.illustration.samplingData": "",
|
|
22348
|
-
"datafeeder.analysisProgressBar.subtitle": "",
|
|
22349
|
-
"datafeeder.analysisProgressBar.title": "",
|
|
22350
|
-
"datafeeder.datasetValidation.datasetInformation": "",
|
|
22351
|
-
"datafeeder.datasetValidation.submitButton": "",
|
|
22352
|
-
"datafeeder.datasetValidation.title": "",
|
|
22353
|
-
"datafeeder.datasetValidation.unknown": "",
|
|
22354
|
-
"datafeeder.datasetValidationCsv.explicitLineNumbers": "",
|
|
22355
|
-
"datafeeder.datasetValidationCsv.lineNumbers": "",
|
|
22356
|
-
"datafeeder.form.abstract": "",
|
|
22357
|
-
"datafeeder.form.datepicker": "",
|
|
22358
|
-
"datafeeder.form.description": "",
|
|
22359
|
-
"datafeeder.form.dropdown": "",
|
|
22360
|
-
"datafeeder.form.tags": "",
|
|
22361
|
-
"datafeeder.form.title": "",
|
|
22362
|
-
"datafeeder.formsPage.title": "",
|
|
22363
21910
|
"datafeeder.month.april": "",
|
|
22364
21911
|
"datafeeder.month.august": "",
|
|
22365
21912
|
"datafeeder.month.december": "",
|
|
@@ -22372,59 +21919,6 @@ var pt = {
|
|
|
22372
21919
|
"datafeeder.month.november": "",
|
|
22373
21920
|
"datafeeder.month.october": "",
|
|
22374
21921
|
"datafeeder.month.september": "",
|
|
22375
|
-
"datafeeder.publish.hint": "",
|
|
22376
|
-
"datafeeder.publish.illustration.title": "",
|
|
22377
|
-
"datafeeder.publish.subtitle": "",
|
|
22378
|
-
"datafeeder.publish.title": "",
|
|
22379
|
-
"datafeeder.publish.upload": "",
|
|
22380
|
-
"datafeeder.publishSuccess.geonetworkRecord": "",
|
|
22381
|
-
"datafeeder.publishSuccess.illustration.title": "",
|
|
22382
|
-
"datafeeder.publishSuccess.mapViewer": "",
|
|
22383
|
-
"datafeeder.publishSuccess.ogcFeature": "",
|
|
22384
|
-
"datafeeder.publishSuccess.subtitle": "",
|
|
22385
|
-
"datafeeder.publishSuccess.title": "",
|
|
22386
|
-
"datafeeder.publishSuccess.uploadAnotherData": "",
|
|
22387
|
-
"datafeeder.summarizePage.illustration": "",
|
|
22388
|
-
"datafeeder.summarizePage.previous": "",
|
|
22389
|
-
"datafeeder.summarizePage.submit": "",
|
|
22390
|
-
"datafeeder.summarizePage.title": "",
|
|
22391
|
-
"datafeeder.upload.acceptedFormats": "",
|
|
22392
|
-
"datafeeder.upload.checkboxLabel": "",
|
|
22393
|
-
"datafeeder.upload.error.subtitle.analysis": "",
|
|
22394
|
-
"datafeeder.upload.error.subtitle.cantOpenFile": "",
|
|
22395
|
-
"datafeeder.upload.error.subtitle.fileFormat": "",
|
|
22396
|
-
"datafeeder.upload.error.subtitle.fileSize": "",
|
|
22397
|
-
"datafeeder.upload.error.title.analysis": "",
|
|
22398
|
-
"datafeeder.upload.error.title.cantOpenFile": "",
|
|
22399
|
-
"datafeeder.upload.error.title.fileFormat": "",
|
|
22400
|
-
"datafeeder.upload.error.title.fileHasntSelected": "",
|
|
22401
|
-
"datafeeder.upload.error.title.fileSize": "",
|
|
22402
|
-
"datafeeder.upload.error.title.noRightsToSendData": "",
|
|
22403
|
-
"datafeeder.upload.illustration.enrichment": "",
|
|
22404
|
-
"datafeeder.upload.illustration.import": "",
|
|
22405
|
-
"datafeeder.upload.illustration.title": "",
|
|
22406
|
-
"datafeeder.upload.illustration.validation": "",
|
|
22407
|
-
"datafeeder.upload.illustration.verification": "",
|
|
22408
|
-
"datafeeder.upload.inputLabel": "",
|
|
22409
|
-
"datafeeder.upload.maxFileSize": "",
|
|
22410
|
-
"datafeeder.upload.title": "",
|
|
22411
|
-
"datafeeder.upload.uploadButton": "",
|
|
22412
|
-
"datafeeder.validation.csv.delimiter": "",
|
|
22413
|
-
"datafeeder.validation.csv.delimiter.comma": "",
|
|
22414
|
-
"datafeeder.validation.csv.delimiter.semicolon": "",
|
|
22415
|
-
"datafeeder.validation.csv.lat.field": "",
|
|
22416
|
-
"datafeeder.validation.csv.lng.field": "",
|
|
22417
|
-
"datafeeder.validation.csv.quote.double": "",
|
|
22418
|
-
"datafeeder.validation.csv.quote.none": "",
|
|
22419
|
-
"datafeeder.validation.csv.quote.simple": "",
|
|
22420
|
-
"datafeeder.validation.csv.quoteChar": "",
|
|
22421
|
-
"datafeeder.validation.encoding": "",
|
|
22422
|
-
"datafeeder.validation.extent.title": "",
|
|
22423
|
-
"datafeeder.validation.extent.title.unknown": "",
|
|
22424
|
-
"datafeeder.validation.projection": "",
|
|
22425
|
-
"datafeeder.validation.projection.unknown": "",
|
|
22426
|
-
"datafeeder.validation.sample.title": "",
|
|
22427
|
-
"datafeeder.wizard.emptyRequiredValuesMessage": "",
|
|
22428
21922
|
"datafeeder.wizardSummarize.createdAt": "",
|
|
22429
21923
|
"datafeeder.wizardSummarize.scale": "",
|
|
22430
21924
|
"datahub.header.datasets": "",
|
|
@@ -22728,6 +22222,7 @@ var pt = {
|
|
|
22728
22222
|
"record.action.download": "",
|
|
22729
22223
|
"record.action.duplicate": "",
|
|
22730
22224
|
"record.action.duplicating": "",
|
|
22225
|
+
"record.action.rollback": "",
|
|
22731
22226
|
"record.action.view": "",
|
|
22732
22227
|
"record.externalViewer.open": "",
|
|
22733
22228
|
"record.feature.limit": "",
|
|
@@ -22850,6 +22345,8 @@ var pt = {
|
|
|
22850
22345
|
"search.error.recordNotFound": "",
|
|
22851
22346
|
"search.field.any.placeholder": "",
|
|
22852
22347
|
"search.field.sortBy": "",
|
|
22348
|
+
"search.filters.availableServices.download": "",
|
|
22349
|
+
"search.filters.availableServices.view": "",
|
|
22853
22350
|
"search.filters.changeDate": "",
|
|
22854
22351
|
"search.filters.clear": "",
|
|
22855
22352
|
"search.filters.contact": "",
|
|
@@ -22905,7 +22402,6 @@ var pt = {
|
|
|
22905
22402
|
"tooltip.url.open": "",
|
|
22906
22403
|
"ui.readLess": "",
|
|
22907
22404
|
"ui.readMore": "",
|
|
22908
|
-
"wfs.aggregations.notsupported": "",
|
|
22909
22405
|
"wfs.feature.limit": "",
|
|
22910
22406
|
"wfs.featuretype.notfound": "",
|
|
22911
22407
|
"wfs.geojsongml.notsupported": "",
|
|
@@ -23092,6 +22588,16 @@ class Gn4FieldMapper {
|
|
|
23092
22588
|
isOpenData: (output, source) => this.addExtra({
|
|
23093
22589
|
isOpenData: selectField(source, 'isOpenData') !== 'false',
|
|
23094
22590
|
}, output),
|
|
22591
|
+
featureTypes: (output, source) => this.addExtra({
|
|
22592
|
+
featureTypes: selectField(source, 'featureTypes'),
|
|
22593
|
+
}, output),
|
|
22594
|
+
related: (output, source) => {
|
|
22595
|
+
const fcatSource = selectField(getFirstValue(selectField(selectField(source, 'related'), 'fcats')) ?? {}, '_source');
|
|
22596
|
+
const featureCatalogIdentifier = selectField(fcatSource, 'uuid');
|
|
22597
|
+
return featureCatalogIdentifier
|
|
22598
|
+
? this.addExtra({ featureCatalogIdentifier }, output)
|
|
22599
|
+
: output;
|
|
22600
|
+
},
|
|
23095
22601
|
isPublishedToAll: (output, source) => this.addExtra({
|
|
23096
22602
|
isPublishedToAll: selectField(source, 'isPublishedToAll'),
|
|
23097
22603
|
}, output),
|
|
@@ -23617,16 +23123,26 @@ class ElasticsearchService {
|
|
|
23617
23123
|
].filter(Boolean);
|
|
23618
23124
|
return queryParts.length > 0 ? queryParts : undefined;
|
|
23619
23125
|
}
|
|
23126
|
+
mustNotFilters() {
|
|
23127
|
+
return [
|
|
23128
|
+
{
|
|
23129
|
+
...this.queryFilterOnValues('resourceType', [
|
|
23130
|
+
'service',
|
|
23131
|
+
'map',
|
|
23132
|
+
'map/static',
|
|
23133
|
+
'mapDigital',
|
|
23134
|
+
]),
|
|
23135
|
+
},
|
|
23136
|
+
{
|
|
23137
|
+
query_string: {
|
|
23138
|
+
query: 'resourceType:featureCatalog AND !resourceType:dataset AND !cl_level.key:dataset',
|
|
23139
|
+
},
|
|
23140
|
+
},
|
|
23141
|
+
];
|
|
23142
|
+
}
|
|
23620
23143
|
buildPayloadQuery({ any, ...fieldSearchFilters }, configFilters, uuids, geometry) {
|
|
23621
23144
|
const must = [];
|
|
23622
|
-
const must_not =
|
|
23623
|
-
...this.queryFilterOnValues('resourceType', [
|
|
23624
|
-
'service',
|
|
23625
|
-
'map',
|
|
23626
|
-
'map/static',
|
|
23627
|
-
'mapDigital',
|
|
23628
|
-
]),
|
|
23629
|
-
};
|
|
23145
|
+
const must_not = this.mustNotFilters();
|
|
23630
23146
|
const should = [];
|
|
23631
23147
|
const filter = [this.queryFilterOnValues('isTemplate', 'n')];
|
|
23632
23148
|
if (any) {
|
|
@@ -23712,14 +23228,7 @@ class ElasticsearchService {
|
|
|
23712
23228
|
},
|
|
23713
23229
|
},
|
|
23714
23230
|
],
|
|
23715
|
-
must_not:
|
|
23716
|
-
...this.queryFilterOnValues('resourceType', [
|
|
23717
|
-
'service',
|
|
23718
|
-
'map',
|
|
23719
|
-
'map/static',
|
|
23720
|
-
'mapDigital',
|
|
23721
|
-
]),
|
|
23722
|
-
},
|
|
23231
|
+
must_not: this.mustNotFilters(),
|
|
23723
23232
|
},
|
|
23724
23233
|
},
|
|
23725
23234
|
_source: ['resourceTitleObject', 'uuid'],
|
|
@@ -23936,9 +23445,29 @@ class Gn4Repository {
|
|
|
23936
23445
|
}
|
|
23937
23446
|
getRecord(uniqueIdentifier) {
|
|
23938
23447
|
return this.gn4SearchApi
|
|
23939
|
-
.search('bucket',
|
|
23448
|
+
.search('bucket', ['fcats'], JSON.stringify(this.gn4SearchHelper.getMetadataByIdPayload(uniqueIdentifier)))
|
|
23940
23449
|
.pipe(map$1((results) => results.hits.hits[0]), switchMap((record) => record ? this.gn4Mapper.readRecord(record) : of(null)));
|
|
23941
23450
|
}
|
|
23451
|
+
getFeatureCatalog(record, visited = new Set() // prevent looping
|
|
23452
|
+
) {
|
|
23453
|
+
if (record.extras &&
|
|
23454
|
+
record.extras['featureTypes'] &&
|
|
23455
|
+
record.extras['featureTypes'][0]?.attributeTable &&
|
|
23456
|
+
Array.isArray(record.extras['featureTypes'][0].attributeTable)) {
|
|
23457
|
+
return of({
|
|
23458
|
+
attributes: record.extras['featureTypes'][0]?.attributeTable?.map((attr) => ({
|
|
23459
|
+
name: attr.name,
|
|
23460
|
+
title: attr.definition,
|
|
23461
|
+
})),
|
|
23462
|
+
});
|
|
23463
|
+
}
|
|
23464
|
+
const featureCatalogIdentifier = record.extras['featureCatalogIdentifier'];
|
|
23465
|
+
if (featureCatalogIdentifier && !visited.has(featureCatalogIdentifier)) {
|
|
23466
|
+
visited.add(featureCatalogIdentifier);
|
|
23467
|
+
return this.getRecord(featureCatalogIdentifier).pipe(switchMap((record) => record ? this.getFeatureCatalog(record, visited) : of(null)));
|
|
23468
|
+
}
|
|
23469
|
+
return of(null);
|
|
23470
|
+
}
|
|
23942
23471
|
getSimilarRecords(similarTo) {
|
|
23943
23472
|
return this.gn4SearchApi
|
|
23944
23473
|
.search('bucket', null, JSON.stringify(this.gn4SearchHelper.getRelatedRecordPayload(similarTo, 3)))
|
|
@@ -24015,14 +23544,10 @@ class Gn4Repository {
|
|
|
24015
23544
|
return this.getExternalRecordAsXml(recordDownloadUrl).pipe(exhaustMap(async (fetchedRecordAsXml) => {
|
|
24016
23545
|
const converter = findConverterForDocument(fetchedRecordAsXml);
|
|
24017
23546
|
const record = await converter.readRecord(fetchedRecordAsXml);
|
|
24018
|
-
const tempId = this.generateTemporaryId();
|
|
24019
23547
|
record.title = `${record.title} (Copy)`;
|
|
24020
|
-
record
|
|
24021
|
-
|
|
24022
|
-
|
|
24023
|
-
this._draftsChanged.next();
|
|
24024
|
-
return tempId;
|
|
24025
|
-
}), catchError((error) => {
|
|
23548
|
+
await converter.writeRecord(record, fetchedRecordAsXml);
|
|
23549
|
+
return this.saveRecord(record, '', false);
|
|
23550
|
+
}), exhaustMap((uuidObservable) => uuidObservable), catchError((error) => {
|
|
24026
23551
|
return throwError(() => error);
|
|
24027
23552
|
}));
|
|
24028
23553
|
}
|
|
@@ -25673,18 +25198,19 @@ class Gn4PlatformService {
|
|
|
25673
25198
|
return combineLatest([
|
|
25674
25199
|
this.recordsApiService.getAssociatedResources(record.uniqueIdentifier),
|
|
25675
25200
|
this.recordsApiService.getAllResources(record.uniqueIdentifier),
|
|
25676
|
-
]).pipe(map$1(([
|
|
25677
|
-
|
|
25678
|
-
|
|
25679
|
-
|
|
25680
|
-
...(
|
|
25681
|
-
|
|
25682
|
-
|
|
25683
|
-
|
|
25684
|
-
.map((
|
|
25685
|
-
|
|
25686
|
-
|
|
25687
|
-
|
|
25201
|
+
]).pipe(map$1(([associated, attachments]) => {
|
|
25202
|
+
const { onlines = [], thumbnails = [] } = associated;
|
|
25203
|
+
const urlsToKeep = [
|
|
25204
|
+
...(Array.isArray(onlines) ? onlines : []),
|
|
25205
|
+
...(Array.isArray(thumbnails) ? thumbnails : []),
|
|
25206
|
+
].map((resource) => Object.values(resource.url)[0]);
|
|
25207
|
+
const fileToDelete = attachments
|
|
25208
|
+
.filter((attachment) => !urlsToKeep.includes(attachment.url))
|
|
25209
|
+
.map((attachment) => attachment.filename);
|
|
25210
|
+
return fileToDelete;
|
|
25211
|
+
}), mergeMap((filesToDelete) => filesToDelete.length
|
|
25212
|
+
? forkJoin(filesToDelete.map((filename) => this.recordsApiService.delResource(record.uniqueIdentifier, filename))).pipe(map$1(() => undefined))
|
|
25213
|
+
: of(undefined)), catchError((error) => {
|
|
25688
25214
|
console.error('Error while cleaning attachments:', error);
|
|
25689
25215
|
throw error;
|
|
25690
25216
|
}));
|
|
@@ -26324,66 +25850,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
26324
25850
|
args: [{ selector: 'gn-ui-color-scale', template: "<div class=\"flex flex-row items-center\">\n <div class=\"text-xs text-gray-700 font-bold m-2 w-32 text-right\">primary</div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-primary-black\"\n title=\"primary-black\"\n ></div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-primary-darkest\"\n title=\"primary-darkest\"\n ></div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-primary-darker\"\n title=\"primary-darker\"\n ></div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-primary border-2 border-primary-darkest\"\n title=\"primary\"\n ></div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-primary-lighter\"\n title=\"primary-lighter\"\n ></div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-primary-lightest\"\n title=\"primary-lightest\"\n ></div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-primary-white\"\n title=\"primary-white\"\n ></div>\n</div>\n<div class=\"flex flex-row\">\n <div class=\"text-xs text-gray-700 font-bold m-2 w-32 text-right\">\n secondary\n </div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-secondary-black\"\n title=\"secondary-black\"\n ></div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-secondary-darkest\"\n title=\"secondary-darkest\"\n ></div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-secondary-darker\"\n title=\"secondary-darker\"\n ></div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-secondary border-2 border-secondary-darkest\"\n title=\"secondary\"\n ></div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-secondary-lighter\"\n title=\"secondary-lighter\"\n ></div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-secondary-lightest\"\n title=\"secondary-lightest\"\n ></div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-secondary-white\"\n title=\"secondary-white\"\n ></div>\n</div>\n<div class=\"flex flex-row\">\n <div class=\"text-xs text-gray-700 font-bold m-2 w-32 text-right\">main</div>\n <div class=\"shadow-md rounded w-6 h-6 m-2 bg-main\" title=\"main\"></div>\n <div class=\"shadow-md rounded w-6 h-6 m-2 bg-gray-900\" title=\"gray-900\"></div>\n <div class=\"shadow-md rounded w-6 h-6 m-2 bg-gray-800\" title=\"gray-800\"></div>\n <div class=\"shadow-md rounded w-6 h-6 m-2 bg-gray-700\" title=\"gray-700\"></div>\n <div class=\"shadow-md rounded w-6 h-6 m-2 bg-gray-600\" title=\"gray-600\"></div>\n <div class=\"shadow-md rounded w-6 h-6 m-2 bg-gray-500\" title=\"gray-500\"></div>\n <div class=\"shadow-md rounded w-6 h-6 m-2 bg-gray-400\" title=\"gray-400\"></div>\n <div class=\"shadow-md rounded w-6 h-6 m-2 bg-gray-300\" title=\"gray-300\"></div>\n <div class=\"shadow-md rounded w-6 h-6 m-2 bg-gray-200\" title=\"gray-200\"></div>\n <div class=\"shadow-md rounded w-6 h-6 m-2 bg-gray-100\" title=\"gray-100\"></div>\n <div class=\"shadow-md rounded w-6 h-6 m-2 bg-gray-50\" title=\"gray-50\"></div>\n <div\n class=\"shadow-md rounded w-6 h-6 m-2 bg-background\"\n title=\"background\"\n ></div>\n <div class=\"text-xs text-gray-700 font-bold m-2 w-32\">background</div>\n</div>\n" }]
|
|
26325
25851
|
}] });
|
|
26326
25852
|
|
|
26327
|
-
class StepBarComponent {
|
|
26328
|
-
constructor(cdr) {
|
|
26329
|
-
this.cdr = cdr;
|
|
26330
|
-
this.currentStep = 1;
|
|
26331
|
-
this.type = 'default';
|
|
26332
|
-
}
|
|
26333
|
-
get stepCounter() {
|
|
26334
|
-
return new Array(this.steps);
|
|
26335
|
-
}
|
|
26336
|
-
get color() {
|
|
26337
|
-
switch (this.type) {
|
|
26338
|
-
case 'default':
|
|
26339
|
-
return {
|
|
26340
|
-
outerBar: 'bg-gray-200',
|
|
26341
|
-
innerBar: 'bg-gray-100',
|
|
26342
|
-
};
|
|
26343
|
-
case 'primary':
|
|
26344
|
-
return {
|
|
26345
|
-
outerBar: 'bg-primary',
|
|
26346
|
-
innerBar: 'bg-primary-lighter',
|
|
26347
|
-
};
|
|
26348
|
-
case 'secondary':
|
|
26349
|
-
return {
|
|
26350
|
-
outerBar: 'bg-secondary',
|
|
26351
|
-
innerBar: 'bg-secondary-lighter',
|
|
26352
|
-
};
|
|
26353
|
-
}
|
|
26354
|
-
}
|
|
26355
|
-
getCircleColor(index) {
|
|
26356
|
-
return index === this.currentStep
|
|
26357
|
-
? 'bg-black'
|
|
26358
|
-
: index < this.currentStep
|
|
26359
|
-
? 'bg-white'
|
|
26360
|
-
: this.color.innerBar;
|
|
26361
|
-
}
|
|
26362
|
-
getChecked(index) {
|
|
26363
|
-
return index + 1 < this.currentStep;
|
|
26364
|
-
}
|
|
26365
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StepBarComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
26366
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: StepBarComponent, selector: "gn-ui-step-bar", inputs: { steps: "steps", currentStep: "currentStep", type: "type" }, ngImport: i0, template: "<div class=\"relative flex flex-col justify-center\">\n <div class=\"flex justify-between ml-16 mr-16 z-10 circle-steps\">\n <div\n *ngFor=\"let step of stepCounter; let i = index\"\n class=\"shadow-md rounded-full h-6 w-6 {{ getCircleColor(i + 1) }}\"\n >\n <span class=\"icon-check pl-1\" *ngIf=\"getChecked(i)\"></span>\n </div>\n </div>\n <div\n class=\"absolute rounded-lg right-0 w-full {{ color.outerBar }} h-2 z-0\"\n ></div>\n</div>\n", styles: [".icon-check{color:var(--color-primary)}\n"], dependencies: [{ kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
|
|
26367
|
-
}
|
|
26368
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StepBarComponent, decorators: [{
|
|
26369
|
-
type: Component,
|
|
26370
|
-
args: [{ selector: 'gn-ui-step-bar', template: "<div class=\"relative flex flex-col justify-center\">\n <div class=\"flex justify-between ml-16 mr-16 z-10 circle-steps\">\n <div\n *ngFor=\"let step of stepCounter; let i = index\"\n class=\"shadow-md rounded-full h-6 w-6 {{ getCircleColor(i + 1) }}\"\n >\n <span class=\"icon-check pl-1\" *ngIf=\"getChecked(i)\"></span>\n </div>\n </div>\n <div\n class=\"absolute rounded-lg right-0 w-full {{ color.outerBar }} h-2 z-0\"\n ></div>\n</div>\n", styles: [".icon-check{color:var(--color-primary)}\n"] }]
|
|
26371
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { steps: [{
|
|
26372
|
-
type: Input
|
|
26373
|
-
}], currentStep: [{
|
|
26374
|
-
type: Input
|
|
26375
|
-
}], type: [{
|
|
26376
|
-
type: Input
|
|
26377
|
-
}] } });
|
|
26378
|
-
|
|
26379
25853
|
class UiWidgetsModule {
|
|
26380
25854
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiWidgetsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
26381
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: UiWidgetsModule, declarations: [ColorScaleComponent
|
|
25855
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: UiWidgetsModule, declarations: [ColorScaleComponent], imports: [CommonModule, i1$1.TranslateModule, NgxDropzoneModule,
|
|
26382
25856
|
FormsModule,
|
|
26383
25857
|
ReactiveFormsModule,
|
|
26384
25858
|
TagInputModule,
|
|
26385
25859
|
UtilSharedModule,
|
|
26386
|
-
MatProgressSpinnerModule]
|
|
25860
|
+
MatProgressSpinnerModule] }); }
|
|
26387
25861
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiWidgetsModule, imports: [CommonModule,
|
|
26388
25862
|
TranslateModule.forChild(),
|
|
26389
25863
|
NgxDropzoneModule,
|
|
@@ -26396,7 +25870,7 @@ class UiWidgetsModule {
|
|
|
26396
25870
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiWidgetsModule, decorators: [{
|
|
26397
25871
|
type: NgModule,
|
|
26398
25872
|
args: [{
|
|
26399
|
-
declarations: [ColorScaleComponent
|
|
25873
|
+
declarations: [ColorScaleComponent],
|
|
26400
25874
|
imports: [
|
|
26401
25875
|
CommonModule,
|
|
26402
25876
|
TranslateModule.forChild(),
|
|
@@ -26407,7 +25881,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
26407
25881
|
UtilSharedModule,
|
|
26408
25882
|
MatProgressSpinnerModule,
|
|
26409
25883
|
],
|
|
26410
|
-
exports: [
|
|
25884
|
+
exports: [],
|
|
26411
25885
|
}]
|
|
26412
25886
|
}] });
|
|
26413
25887
|
|
|
@@ -26439,14 +25913,20 @@ class ProgressBarComponent {
|
|
|
26439
25913
|
innerBar: 'bg-secondary-lighter',
|
|
26440
25914
|
text: 'text-white',
|
|
26441
25915
|
};
|
|
25916
|
+
case 'light':
|
|
25917
|
+
return {
|
|
25918
|
+
outerBar: 'bg-primary-white',
|
|
25919
|
+
innerBar: 'bg-primary',
|
|
25920
|
+
text: 'text-main',
|
|
25921
|
+
};
|
|
26442
25922
|
}
|
|
26443
25923
|
}
|
|
26444
25924
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ProgressBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
26445
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ProgressBarComponent, isStandalone: true, selector: "gn-ui-progress-bar", inputs: { value: "value", type: "type" }, ngImport: i0, template: "<div class=\"flex h-full {{ color.outerBar }} rounded-t-lg rounded-b-lg\">\n
|
|
25925
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ProgressBarComponent, isStandalone: true, selector: "gn-ui-progress-bar", inputs: { value: "value", type: "type" }, ngImport: i0, template: "<ng-container [ngSwitch]=\"type\">\n <!-- Light Theme -->\n <ng-container *ngSwitchCase=\"'light'\">\n <div class=\"flex items-center relative\">\n <div\n class=\"flex-shrink-0 {{ color.text }} text-xs font-medium mr-2\n text-opacity-100 !text-slate-800\"\n >\n {{ progress }}%\n </div>\n <div class=\"flex-grow h-[6px] w-full {{ color.outerBar }} rounded-full\">\n <div\n [style.width.%]=\"progress\"\n class=\"{{ color.innerBar }} transition-width duration-500\n ease-in-out rounded-full shadow-sm h-full\"\n ></div>\n </div>\n </div>\n </ng-container>\n\n <!-- Default / Primary / Secondary Themes -->\n <ng-container *ngSwitchDefault>\n <div class=\"flex h-full {{ color.outerBar }} rounded-t-lg rounded-b-lg\">\n <div\n [style.width.%]=\"progress\"\n class=\"flex {{ color.innerBar }} my-1 mx-1 transition-width\n duration-500 ease-in-out rounded-t-md rounded-b-md shadow-xl\"\n >\n <div\n class=\"flex items-center pl-2 py-1 {{ color.text }} font-bold text-4\"\n >\n {{ progress }}%\n </div>\n </div>\n </div>\n </ng-container>\n</ng-container>\n", styles: [".font-bold{font-weight:var(--progress-bar-font-weight, \"bold\")}\n"], dependencies: [{ kind: "directive", type: NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: NgSwitchDefault, selector: "[ngSwitchDefault]" }] }); }
|
|
26446
25926
|
}
|
|
26447
25927
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ProgressBarComponent, decorators: [{
|
|
26448
25928
|
type: Component,
|
|
26449
|
-
args: [{ selector: 'gn-ui-progress-bar', standalone: true, template: "<div class=\"flex h-full {{ color.outerBar }} rounded-t-lg rounded-b-lg\">\n
|
|
25929
|
+
args: [{ selector: 'gn-ui-progress-bar', standalone: true, imports: [NgSwitch, NgSwitchCase, NgSwitchDefault], template: "<ng-container [ngSwitch]=\"type\">\n <!-- Light Theme -->\n <ng-container *ngSwitchCase=\"'light'\">\n <div class=\"flex items-center relative\">\n <div\n class=\"flex-shrink-0 {{ color.text }} text-xs font-medium mr-2\n text-opacity-100 !text-slate-800\"\n >\n {{ progress }}%\n </div>\n <div class=\"flex-grow h-[6px] w-full {{ color.outerBar }} rounded-full\">\n <div\n [style.width.%]=\"progress\"\n class=\"{{ color.innerBar }} transition-width duration-500\n ease-in-out rounded-full shadow-sm h-full\"\n ></div>\n </div>\n </div>\n </ng-container>\n\n <!-- Default / Primary / Secondary Themes -->\n <ng-container *ngSwitchDefault>\n <div class=\"flex h-full {{ color.outerBar }} rounded-t-lg rounded-b-lg\">\n <div\n [style.width.%]=\"progress\"\n class=\"flex {{ color.innerBar }} my-1 mx-1 transition-width\n duration-500 ease-in-out rounded-t-md rounded-b-md shadow-xl\"\n >\n <div\n class=\"flex items-center pl-2 py-1 {{ color.text }} font-bold text-4\"\n >\n {{ progress }}%\n </div>\n </div>\n </div>\n </ng-container>\n</ng-container>\n", styles: [".font-bold{font-weight:var(--progress-bar-font-weight, \"bold\")}\n"] }]
|
|
26450
25930
|
}], propDecorators: { value: [{
|
|
26451
25931
|
type: Input
|
|
26452
25932
|
}], type: [{
|
|
@@ -26643,29 +26123,71 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
26643
26123
|
}] } });
|
|
26644
26124
|
|
|
26645
26125
|
class AutocompleteComponent {
|
|
26126
|
+
get displayEnterBtn() {
|
|
26127
|
+
return this.enterButton && this.allowSubmit && !this.searchActive;
|
|
26128
|
+
}
|
|
26129
|
+
getExtraClass() {
|
|
26130
|
+
if (this.allowSubmit) {
|
|
26131
|
+
if (this.enterButton) {
|
|
26132
|
+
return 'border rounded-lg absolute w-8 h-8 right-[calc(var(--icon-width)+var(--icon-padding))] inset-y-[--icon-padding]';
|
|
26133
|
+
}
|
|
26134
|
+
else {
|
|
26135
|
+
return 'border rounded-lg absolute w-8 h-8 right-[calc(var(--icon-width)+0.25*var(--icon-width))] inset-y-[calc(0.25*var(--icon-width))]';
|
|
26136
|
+
}
|
|
26137
|
+
}
|
|
26138
|
+
else {
|
|
26139
|
+
if (!this.enterButton) {
|
|
26140
|
+
return 'border rounded-lg absolute w-8 h-8 right-2 inset-y-2';
|
|
26141
|
+
}
|
|
26142
|
+
}
|
|
26143
|
+
return 'border rounded-lg absolute w-8 h-8';
|
|
26144
|
+
}
|
|
26646
26145
|
constructor(cdRef) {
|
|
26647
26146
|
this.cdRef = cdRef;
|
|
26147
|
+
this.enterButton = false;
|
|
26648
26148
|
this.clearOnSelection = false;
|
|
26649
26149
|
this.preventCompleteOnSelection = false;
|
|
26650
26150
|
this.autoFocus = false;
|
|
26651
26151
|
this.minCharacterCount = 3;
|
|
26652
26152
|
// this will show a submit button next to the input; if false, a search icon will appear on the left
|
|
26653
26153
|
this.allowSubmit = false;
|
|
26154
|
+
this.forceTrackPosition = false;
|
|
26654
26155
|
this.itemSelected = new EventEmitter();
|
|
26655
26156
|
this.inputSubmitted = new EventEmitter();
|
|
26656
26157
|
this.inputCleared = new EventEmitter();
|
|
26158
|
+
this.isSearchActive = new EventEmitter();
|
|
26657
26159
|
this.control = new UntypedFormControl();
|
|
26658
26160
|
this.cancelEnter = true;
|
|
26659
26161
|
this.selectionSubject = new ReplaySubject(1);
|
|
26660
26162
|
this.lastInputValue$ = new ReplaySubject(1);
|
|
26661
26163
|
this.error = null;
|
|
26662
26164
|
this.subscription = new Subscription();
|
|
26165
|
+
this.lastPosition = null;
|
|
26166
|
+
this.enterBtnPosition = 0;
|
|
26167
|
+
this.searchActive = false;
|
|
26663
26168
|
this.displayWithFn = (item) => item.toString();
|
|
26664
26169
|
this.displayWithFnInternal = (item) => {
|
|
26665
26170
|
if (item === null || item === undefined)
|
|
26666
26171
|
return null;
|
|
26667
26172
|
return this.displayWithFn(item);
|
|
26668
26173
|
};
|
|
26174
|
+
/**
|
|
26175
|
+
* !!! This function is used only for web component mode,
|
|
26176
|
+
* the autocomplete dropdown may not update its position
|
|
26177
|
+
* if the page or container is disabling wind scroll.
|
|
26178
|
+
*/
|
|
26179
|
+
this.trackPosition = () => {
|
|
26180
|
+
const dropdownOpened = this.triggerRef && this.triggerRef.panelOpen;
|
|
26181
|
+
const rect = this.inputRef.nativeElement.getBoundingClientRect();
|
|
26182
|
+
if (dropdownOpened &&
|
|
26183
|
+
(!this.lastPosition ||
|
|
26184
|
+
rect.top !== this.lastPosition.top ||
|
|
26185
|
+
rect.left !== this.lastPosition.left)) {
|
|
26186
|
+
this.triggerRef.updatePosition();
|
|
26187
|
+
}
|
|
26188
|
+
this.lastPosition = rect;
|
|
26189
|
+
requestAnimationFrame(this.trackPosition);
|
|
26190
|
+
};
|
|
26669
26191
|
}
|
|
26670
26192
|
ngOnChanges(changes) {
|
|
26671
26193
|
const { value } = changes;
|
|
@@ -26673,6 +26195,14 @@ class AutocompleteComponent {
|
|
|
26673
26195
|
const previousTextValue = this.displayWithFnInternal(value.previousValue);
|
|
26674
26196
|
const currentTextValue = this.displayWithFnInternal(value.currentValue);
|
|
26675
26197
|
if (previousTextValue !== currentTextValue) {
|
|
26198
|
+
if (currentTextValue) {
|
|
26199
|
+
this.searchActive = true;
|
|
26200
|
+
this.isSearchActive.emit(true);
|
|
26201
|
+
}
|
|
26202
|
+
else {
|
|
26203
|
+
this.searchActive = false;
|
|
26204
|
+
this.isSearchActive.emit(false);
|
|
26205
|
+
}
|
|
26676
26206
|
this.updateInputValue(value.currentValue);
|
|
26677
26207
|
}
|
|
26678
26208
|
}
|
|
@@ -26684,7 +26214,12 @@ class AutocompleteComponent {
|
|
|
26684
26214
|
const suggestionsFromAction = merge(newValue$.pipe(filter((value) => value.length >= this.minCharacterCount)), externalValueChange$).pipe(tap$1(() => {
|
|
26685
26215
|
this.searching = true;
|
|
26686
26216
|
this.error = null;
|
|
26687
|
-
}), switchMap$1((value) => this.action(value)),
|
|
26217
|
+
}), switchMap$1((value) => this.action(value)), tap$1((suggestions) => {
|
|
26218
|
+
// forcing the panel to open if there are suggestions
|
|
26219
|
+
if (suggestions.length > 0) {
|
|
26220
|
+
this.triggerRef?.openPanel();
|
|
26221
|
+
}
|
|
26222
|
+
}), catchError((error) => {
|
|
26688
26223
|
this.error = error.message;
|
|
26689
26224
|
return of([]);
|
|
26690
26225
|
}), finalize(() => (this.searching = false)));
|
|
@@ -26712,9 +26247,23 @@ class AutocompleteComponent {
|
|
|
26712
26247
|
this.inputRef.nativeElement.focus();
|
|
26713
26248
|
this.cdRef.detectChanges();
|
|
26714
26249
|
}
|
|
26250
|
+
this.startTrackingPosition();
|
|
26251
|
+
}
|
|
26252
|
+
/**
|
|
26253
|
+
* !!! This function is used only for web component mode,
|
|
26254
|
+
* the autocomplete dropdown may not update its position
|
|
26255
|
+
* if the page or container is disabling wind scroll.
|
|
26256
|
+
*/
|
|
26257
|
+
startTrackingPosition() {
|
|
26258
|
+
if (this.forceTrackPosition) {
|
|
26259
|
+
requestAnimationFrame(this.trackPosition);
|
|
26260
|
+
}
|
|
26715
26261
|
}
|
|
26716
26262
|
ngOnDestroy() {
|
|
26717
26263
|
this.subscription?.unsubscribe();
|
|
26264
|
+
if (this.intervalIdPosition) {
|
|
26265
|
+
clearInterval(this.intervalIdPosition);
|
|
26266
|
+
}
|
|
26718
26267
|
}
|
|
26719
26268
|
updateInputValue(value) {
|
|
26720
26269
|
if (value) {
|
|
@@ -26726,6 +26275,8 @@ class AutocompleteComponent {
|
|
|
26726
26275
|
}
|
|
26727
26276
|
clear() {
|
|
26728
26277
|
this.inputRef.nativeElement.value = '';
|
|
26278
|
+
this.searchActive = false;
|
|
26279
|
+
this.isSearchActive.emit(false);
|
|
26729
26280
|
this.inputCleared.emit();
|
|
26730
26281
|
this.selectionSubject
|
|
26731
26282
|
.pipe(take(1))
|
|
@@ -26734,6 +26285,8 @@ class AutocompleteComponent {
|
|
|
26734
26285
|
}
|
|
26735
26286
|
handleEnter(any) {
|
|
26736
26287
|
if (!this.cancelEnter && this.allowSubmit) {
|
|
26288
|
+
this.isSearchActive.emit(true);
|
|
26289
|
+
this.searchActive = true;
|
|
26737
26290
|
this.inputSubmitted.emit(any);
|
|
26738
26291
|
}
|
|
26739
26292
|
}
|
|
@@ -26761,16 +26314,22 @@ class AutocompleteComponent {
|
|
|
26761
26314
|
this.control.setValue('');
|
|
26762
26315
|
}
|
|
26763
26316
|
}
|
|
26317
|
+
handleInput(event) {
|
|
26318
|
+
this.searchActive = false;
|
|
26319
|
+
this.isSearchActive.emit(false);
|
|
26320
|
+
this.enterBtnPosition = event.target['value'].length * 8 + 80;
|
|
26321
|
+
}
|
|
26764
26322
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AutocompleteComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
26765
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: AutocompleteComponent, isStandalone: true, selector: "gn-ui-autocomplete", inputs: { placeholder: "placeholder", action: "action", value: "value", clearOnSelection: "clearOnSelection", preventCompleteOnSelection: "preventCompleteOnSelection", autoFocus: "autoFocus", minCharacterCount: "minCharacterCount", allowSubmit: "allowSubmit", displayWithFn: "displayWithFn" }, outputs: { itemSelected: "itemSelected", inputSubmitted: "inputSubmitted", inputCleared: "inputCleared" }, providers: [
|
|
26323
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: AutocompleteComponent, isStandalone: true, selector: "gn-ui-autocomplete", inputs: { placeholder: "placeholder", enterButton: "enterButton", action: "action", value: "value", clearOnSelection: "clearOnSelection", preventCompleteOnSelection: "preventCompleteOnSelection", autoFocus: "autoFocus", minCharacterCount: "minCharacterCount", allowSubmit: "allowSubmit", forceTrackPosition: "forceTrackPosition", displayWithFn: "displayWithFn" }, outputs: { itemSelected: "itemSelected", inputSubmitted: "inputSubmitted", inputCleared: "inputCleared", isSearchActive: "isSearchActive" }, providers: [
|
|
26766
26324
|
provideIcons({
|
|
26767
26325
|
iconoirSearch,
|
|
26768
26326
|
matClose,
|
|
26327
|
+
iconoirLongArrowDownLeft,
|
|
26769
26328
|
}),
|
|
26770
26329
|
provideNgIconsConfig({
|
|
26771
|
-
size: '1.
|
|
26330
|
+
size: '1.75rem',
|
|
26772
26331
|
}),
|
|
26773
|
-
], viewQueries: [{ propertyName: "triggerRef", first: true, predicate: MatAutocompleteTrigger, descendants: true }, { propertyName: "autocomplete", first: true, predicate: MatAutocomplete, descendants: true }, { propertyName: "inputRef", first: true, predicate: ["searchInput"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<span class=\"w-full inline-block relative\">\n <div\n class=\"absolute inset-y-[--icon-padding] left-[--icon-padding] w-[--icon-width] pointer-events-none\"\n *ngIf=\"!allowSubmit\"\n >\n <ng-icon name=\"iconoirSearch\" class=\"text-primary search\"></ng-icon>\n </div>\n <input\n
|
|
26332
|
+
], viewQueries: [{ propertyName: "triggerRef", first: true, predicate: MatAutocompleteTrigger, descendants: true }, { propertyName: "autocomplete", first: true, predicate: MatAutocomplete, descendants: true }, { propertyName: "inputRef", first: true, predicate: ["searchInput"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<span class=\"w-full inline-block relative\">\n <div\n class=\"absolute inset-y-[--icon-padding] left-[--icon-padding] w-[--icon-width] pointer-events-none\"\n *ngIf=\"!allowSubmit\"\n >\n <ng-icon name=\"iconoirSearch\" class=\"text-primary search\"></ng-icon>\n </div>\n <div class=\"flex flex-row\">\n <input\n #searchInput\n type=\"text\"\n class=\"gn-ui-text-input\"\n (input)=\"handleInput($event)\"\n [placeholder]=\"placeholder\"\n [formControl]=\"control\"\n [matAutocomplete]=\"auto\"\n (keyup.enter)=\"handleEnter(searchInput.value)\"\n [ngClass]=\"{\n 'text-primary': searchActive && enterButton,\n 'text-gray-900': !searchActive,\n 'px-[--icon-width]': !allowSubmit,\n }\"\n />\n <gn-ui-button\n type=\"gray\"\n *ngIf=\"searchInput.value && displayEnterBtn\"\n extraClass=\"w-32 h-8 !opacity-100\"\n [ngStyle]=\"{ left: enterBtnPosition + 'px' }\"\n class=\"absolute\"\n disabled=\"true\"\n >\n <ng-icon\n name=\"iconoirLongArrowDownLeft\"\n class=\"!w-4 text-gray-900 font-bold\"\n ></ng-icon>\n <span translate class=\"text-bold text-gray-900 font-bold\">\n Enter to search\n </span>\n </gn-ui-button>\n </div>\n <gn-ui-button\n type=\"primary\"\n [extraClass]=\"getExtraClass()\"\n data-test=\"clear-btn\"\n *ngIf=\"searchInput.value\"\n aria-label=\"Clear\"\n (buttonClick)=\"clear()\"\n >\n <ng-icon class=\"text-white\" name=\"matClose\"></ng-icon>\n </gn-ui-button>\n <gn-ui-button\n type=\"light\"\n extraClass=\"border-0 border-l-[1px] border-gray-300 hover:border-gray-500 text-primary hover:text-primary-darkest focus:text-primary-darkest absolute inset-y-[--icon-padding] right-[--icon-padding]\"\n aria-label=\"Trigger search\"\n *ngIf=\"allowSubmit\"\n data-test=\"autocomplete-submit-btn\"\n (buttonClick)=\"handleClickSearch()\"\n >\n <ng-icon name=\"iconoirSearch\"></ng-icon>\n </gn-ui-button>\n\n <gn-ui-popup-alert\n *ngIf=\"error\"\n class=\"absolute mt-2 w-full top-[100%] left-0\"\n icon=\"matErrorOutlineOutline\"\n position=\"top\"\n type=\"warning\"\n >\n <span translate>search.autocomplete.error</span>\n {{ error }}\n </gn-ui-popup-alert>\n</span>\n\n<mat-autocomplete\n #auto=\"matAutocomplete\"\n (optionSelected)=\"handleSelection($event)\"\n [displayWith]=\"displayWithFnInternal\"\n>\n <mat-option\n *ngFor=\"let suggestion of suggestions$ | async\"\n [value]=\"suggestion\"\n class=\"p-2 suggestion\"\n >\n {{ displayWithFnInternal(suggestion) }}\n </mat-option>\n</mat-autocomplete>\n", styles: ["span{--icon-padding: var(--gn-ui-text-input-border-size, 2px);--icon-width: calc(var(--gn-ui-text-input-padding, .6em) * 2 + 1.25em)}span>*:not(gn-ui-popup-alert){font-size:var(--gn-ui-text-input-font-size, 1em)}input:placeholder-shown{text-overflow:ellipsis}gn-ui-button{--gn-ui-button-rounded: 0;--gn-ui-button-width: var(--icon-width);--gn-ui-button-padding: 0;font-size:1em}ng-icon.search{margin-top:.6rem;margin-left:.6rem}gn-ui-button:last-of-type{--gn-ui-button-rounded: 0 var(--gn-ui-text-input-rounded, .25em) var(--gn-ui-text-input-rounded, .25em) 0}.mat-mdc-option.suggestion.mat-mdc-option-active{background-color:var(--color-primary-lightest)}\n"], dependencies: [{ kind: "component", type: PopupAlertComponent, selector: "gn-ui-popup-alert", inputs: ["icon", "type", "position"] }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i1$6.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i2.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i1$6.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
26774
26333
|
}
|
|
26775
26334
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AutocompleteComponent, decorators: [{
|
|
26776
26335
|
type: Component,
|
|
@@ -26786,13 +26345,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
26786
26345
|
provideIcons({
|
|
26787
26346
|
iconoirSearch,
|
|
26788
26347
|
matClose,
|
|
26348
|
+
iconoirLongArrowDownLeft,
|
|
26789
26349
|
}),
|
|
26790
26350
|
provideNgIconsConfig({
|
|
26791
|
-
size: '1.
|
|
26351
|
+
size: '1.75rem',
|
|
26792
26352
|
}),
|
|
26793
|
-
], template: "<span class=\"w-full inline-block relative\">\n <div\n class=\"absolute inset-y-[--icon-padding] left-[--icon-padding] w-[--icon-width] pointer-events-none\"\n *ngIf=\"!allowSubmit\"\n >\n <ng-icon name=\"iconoirSearch\" class=\"text-primary search\"></ng-icon>\n </div>\n <input\n
|
|
26353
|
+
], template: "<span class=\"w-full inline-block relative\">\n <div\n class=\"absolute inset-y-[--icon-padding] left-[--icon-padding] w-[--icon-width] pointer-events-none\"\n *ngIf=\"!allowSubmit\"\n >\n <ng-icon name=\"iconoirSearch\" class=\"text-primary search\"></ng-icon>\n </div>\n <div class=\"flex flex-row\">\n <input\n #searchInput\n type=\"text\"\n class=\"gn-ui-text-input\"\n (input)=\"handleInput($event)\"\n [placeholder]=\"placeholder\"\n [formControl]=\"control\"\n [matAutocomplete]=\"auto\"\n (keyup.enter)=\"handleEnter(searchInput.value)\"\n [ngClass]=\"{\n 'text-primary': searchActive && enterButton,\n 'text-gray-900': !searchActive,\n 'px-[--icon-width]': !allowSubmit,\n }\"\n />\n <gn-ui-button\n type=\"gray\"\n *ngIf=\"searchInput.value && displayEnterBtn\"\n extraClass=\"w-32 h-8 !opacity-100\"\n [ngStyle]=\"{ left: enterBtnPosition + 'px' }\"\n class=\"absolute\"\n disabled=\"true\"\n >\n <ng-icon\n name=\"iconoirLongArrowDownLeft\"\n class=\"!w-4 text-gray-900 font-bold\"\n ></ng-icon>\n <span translate class=\"text-bold text-gray-900 font-bold\">\n Enter to search\n </span>\n </gn-ui-button>\n </div>\n <gn-ui-button\n type=\"primary\"\n [extraClass]=\"getExtraClass()\"\n data-test=\"clear-btn\"\n *ngIf=\"searchInput.value\"\n aria-label=\"Clear\"\n (buttonClick)=\"clear()\"\n >\n <ng-icon class=\"text-white\" name=\"matClose\"></ng-icon>\n </gn-ui-button>\n <gn-ui-button\n type=\"light\"\n extraClass=\"border-0 border-l-[1px] border-gray-300 hover:border-gray-500 text-primary hover:text-primary-darkest focus:text-primary-darkest absolute inset-y-[--icon-padding] right-[--icon-padding]\"\n aria-label=\"Trigger search\"\n *ngIf=\"allowSubmit\"\n data-test=\"autocomplete-submit-btn\"\n (buttonClick)=\"handleClickSearch()\"\n >\n <ng-icon name=\"iconoirSearch\"></ng-icon>\n </gn-ui-button>\n\n <gn-ui-popup-alert\n *ngIf=\"error\"\n class=\"absolute mt-2 w-full top-[100%] left-0\"\n icon=\"matErrorOutlineOutline\"\n position=\"top\"\n type=\"warning\"\n >\n <span translate>search.autocomplete.error</span>\n {{ error }}\n </gn-ui-popup-alert>\n</span>\n\n<mat-autocomplete\n #auto=\"matAutocomplete\"\n (optionSelected)=\"handleSelection($event)\"\n [displayWith]=\"displayWithFnInternal\"\n>\n <mat-option\n *ngFor=\"let suggestion of suggestions$ | async\"\n [value]=\"suggestion\"\n class=\"p-2 suggestion\"\n >\n {{ displayWithFnInternal(suggestion) }}\n </mat-option>\n</mat-autocomplete>\n", styles: ["span{--icon-padding: var(--gn-ui-text-input-border-size, 2px);--icon-width: calc(var(--gn-ui-text-input-padding, .6em) * 2 + 1.25em)}span>*:not(gn-ui-popup-alert){font-size:var(--gn-ui-text-input-font-size, 1em)}input:placeholder-shown{text-overflow:ellipsis}gn-ui-button{--gn-ui-button-rounded: 0;--gn-ui-button-width: var(--icon-width);--gn-ui-button-padding: 0;font-size:1em}ng-icon.search{margin-top:.6rem;margin-left:.6rem}gn-ui-button:last-of-type{--gn-ui-button-rounded: 0 var(--gn-ui-text-input-rounded, .25em) var(--gn-ui-text-input-rounded, .25em) 0}.mat-mdc-option.suggestion.mat-mdc-option-active{background-color:var(--color-primary-lightest)}\n"] }]
|
|
26794
26354
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { placeholder: [{
|
|
26795
26355
|
type: Input
|
|
26356
|
+
}], enterButton: [{
|
|
26357
|
+
type: Input
|
|
26796
26358
|
}], action: [{
|
|
26797
26359
|
type: Input
|
|
26798
26360
|
}], value: [{
|
|
@@ -26807,12 +26369,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
26807
26369
|
type: Input
|
|
26808
26370
|
}], allowSubmit: [{
|
|
26809
26371
|
type: Input
|
|
26372
|
+
}], forceTrackPosition: [{
|
|
26373
|
+
type: Input
|
|
26810
26374
|
}], itemSelected: [{
|
|
26811
26375
|
type: Output
|
|
26812
26376
|
}], inputSubmitted: [{
|
|
26813
26377
|
type: Output
|
|
26814
26378
|
}], inputCleared: [{
|
|
26815
26379
|
type: Output
|
|
26380
|
+
}], isSearchActive: [{
|
|
26381
|
+
type: Output
|
|
26816
26382
|
}], triggerRef: [{
|
|
26817
26383
|
type: ViewChild,
|
|
26818
26384
|
args: [MatAutocompleteTrigger]
|
|
@@ -26920,72 +26486,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
26920
26486
|
type: Output
|
|
26921
26487
|
}] } });
|
|
26922
26488
|
|
|
26923
|
-
class ChipsInputComponent {
|
|
26924
|
-
onChange(event) {
|
|
26925
|
-
this.rawChange.next(event);
|
|
26926
|
-
}
|
|
26927
|
-
constructor(http, translate) {
|
|
26928
|
-
this.http = http;
|
|
26929
|
-
this.translate = translate;
|
|
26930
|
-
this.required = false;
|
|
26931
|
-
this.loadOnce = false;
|
|
26932
|
-
this.autocompleteItems = [];
|
|
26933
|
-
this.invalid = false;
|
|
26934
|
-
this.items = [];
|
|
26935
|
-
this.requestAutocompleteItems = (text) => {
|
|
26936
|
-
if (this.url) {
|
|
26937
|
-
if (this.loadOnce && this.loadedItems) {
|
|
26938
|
-
return this.loadedItems;
|
|
26939
|
-
}
|
|
26940
|
-
const url = this.url(text);
|
|
26941
|
-
const lang = LANG_2_TO_3_MAPPER[this.translate.currentLang.slice(0, 2)];
|
|
26942
|
-
return this.http
|
|
26943
|
-
.get(url.replace('${lang}', lang))
|
|
26944
|
-
.pipe(map$1((item) => item.map((i) => i.values[lang])));
|
|
26945
|
-
}
|
|
26946
|
-
else {
|
|
26947
|
-
return of(this.autocompleteItems || []);
|
|
26948
|
-
}
|
|
26949
|
-
};
|
|
26950
|
-
this.rawChange = new Subject();
|
|
26951
|
-
this.itemsChange = this.rawChange.pipe(distinctUntilChanged());
|
|
26952
|
-
this.subscription = new Subscription();
|
|
26953
|
-
}
|
|
26954
|
-
ngOnInit() {
|
|
26955
|
-
if (this.loadOnce) {
|
|
26956
|
-
this.loadedItems = this.requestAutocompleteItems('*').pipe(shareReplay(1));
|
|
26957
|
-
}
|
|
26958
|
-
this.items = this.selectedItems;
|
|
26959
|
-
this.subscription = this.rawChange
|
|
26960
|
-
.pipe(tap$1((v) => (this.invalid = v.length === 0)))
|
|
26961
|
-
.subscribe();
|
|
26962
|
-
this.rawChange.next(this.items);
|
|
26963
|
-
}
|
|
26964
|
-
ngOnDestroy() {
|
|
26965
|
-
this.subscription.unsubscribe();
|
|
26966
|
-
}
|
|
26967
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ChipsInputComponent, deps: [{ token: i1.HttpClient }, { token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
26968
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ChipsInputComponent, selector: "gn-ui-chips-input", inputs: { url: "url", placeholder: "placeholder", selectedItems: "selectedItems", required: "required", loadOnce: "loadOnce", autocompleteItems: "autocompleteItems" }, outputs: { itemsChange: "itemsChange" }, ngImport: i0, template: "<tag-input\n [ngModel]=\"items\"\n (ngModelChange)=\"onChange($event)\"\n onlyFromAutocomplete=\"true\"\n [placeholder]=\"placeholder\"\n [secondaryPlaceholder]=\"placeholder\"\n [ripple]=\"false\"\n [animationDuration]=\"{ enter: '0ms', leave: '0ms' }\"\n [onTextChangeDebounce]=\"100\"\n class=\"border-2 border-primary h-full rounded-lg p-2 bg-white text-sm focus:border-primary\"\n [ngClass]=\"{ invalid: invalid }\"\n>\n <tag-input-dropdown\n [autocompleteObservable]=\"requestAutocompleteItems\"\n [minimumTextLength]=\"0\"\n [keepOpen]=\"false\"\n [showDropdownIfEmpty]=\"true\"\n >\n <ng-template let-item=\"item\" let-index=\"index\">\n {{ item.display }}\n </ng-template>\n </tag-input-dropdown>\n</tag-input>\n", styles: ["tag-input::ng-deep .ng2-tag-input{border-bottom:none}tag-input::ng-deep .ng2-tag-input.ng2-tag-input--focused{border-bottom:none}tag-input::ng-deep tag{border-radius:5px;background:var(--color-primary-lightest);font-family:inherit;align-content:center;font-style:italic}tag-input::ng-deep tag::ng-deep:not(:focus):not(.tag--editing):not(:active):not(.readonly):hover,tag-input::ng-deep tag:not(:focus):not(.tag--editing):not(:active):not(.readonly):hover{background:var(--color-primary)!important}tag-input::ng-deep .tag__text{padding-right:7px}tag-input::ng-deep div,tag-input::ng-deep form{height:100%}tag-input.invalid{border-color:var(--color-secondary)}\n"], dependencies: [{ kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.TagInputComponent, selector: "tag-input", inputs: ["separatorKeys", "separatorKeyCodes", "placeholder", "secondaryPlaceholder", "maxItems", "validators", "asyncValidators", "onlyFromAutocomplete", "errorMessages", "theme", "onTextChangeDebounce", "inputId", "inputClass", "clearOnBlur", "hideForm", "addOnBlur", "addOnPaste", "pasteSplitPattern", "blinkIfDupe", "removable", "editable", "allowDupes", "modelAsStrings", "trimTags", "inputText", "ripple", "tabindex", "disable", "dragZone", "onRemoving", "onAdding", "animationDuration"], outputs: ["onAdd", "onRemove", "onSelect", "onFocus", "onBlur", "onTextChange", "onPaste", "onValidationError", "onTagEdited", "inputTextChange"] }, { kind: "component", type: i5.TagInputDropdown, selector: "tag-input-dropdown", inputs: ["offset", "focusFirstElement", "showDropdownIfEmpty", "autocompleteObservable", "minimumTextLength", "limitItemsTo", "displayBy", "identifyBy", "matchingFn", "appendToBody", "keepOpen", "dynamicUpdate", "zIndex", "autocompleteItems"] }] }); }
|
|
26969
|
-
}
|
|
26970
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ChipsInputComponent, decorators: [{
|
|
26971
|
-
type: Component,
|
|
26972
|
-
args: [{ selector: 'gn-ui-chips-input', template: "<tag-input\n [ngModel]=\"items\"\n (ngModelChange)=\"onChange($event)\"\n onlyFromAutocomplete=\"true\"\n [placeholder]=\"placeholder\"\n [secondaryPlaceholder]=\"placeholder\"\n [ripple]=\"false\"\n [animationDuration]=\"{ enter: '0ms', leave: '0ms' }\"\n [onTextChangeDebounce]=\"100\"\n class=\"border-2 border-primary h-full rounded-lg p-2 bg-white text-sm focus:border-primary\"\n [ngClass]=\"{ invalid: invalid }\"\n>\n <tag-input-dropdown\n [autocompleteObservable]=\"requestAutocompleteItems\"\n [minimumTextLength]=\"0\"\n [keepOpen]=\"false\"\n [showDropdownIfEmpty]=\"true\"\n >\n <ng-template let-item=\"item\" let-index=\"index\">\n {{ item.display }}\n </ng-template>\n </tag-input-dropdown>\n</tag-input>\n", styles: ["tag-input::ng-deep .ng2-tag-input{border-bottom:none}tag-input::ng-deep .ng2-tag-input.ng2-tag-input--focused{border-bottom:none}tag-input::ng-deep tag{border-radius:5px;background:var(--color-primary-lightest);font-family:inherit;align-content:center;font-style:italic}tag-input::ng-deep tag::ng-deep:not(:focus):not(.tag--editing):not(:active):not(.readonly):hover,tag-input::ng-deep tag:not(:focus):not(.tag--editing):not(:active):not(.readonly):hover{background:var(--color-primary)!important}tag-input::ng-deep .tag__text{padding-right:7px}tag-input::ng-deep div,tag-input::ng-deep form{height:100%}tag-input.invalid{border-color:var(--color-secondary)}\n"] }]
|
|
26973
|
-
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: i1$1.TranslateService }], propDecorators: { url: [{
|
|
26974
|
-
type: Input
|
|
26975
|
-
}], placeholder: [{
|
|
26976
|
-
type: Input
|
|
26977
|
-
}], selectedItems: [{
|
|
26978
|
-
type: Input
|
|
26979
|
-
}], required: [{
|
|
26980
|
-
type: Input
|
|
26981
|
-
}], loadOnce: [{
|
|
26982
|
-
type: Input
|
|
26983
|
-
}], autocompleteItems: [{
|
|
26984
|
-
type: Input
|
|
26985
|
-
}], itemsChange: [{
|
|
26986
|
-
type: Output
|
|
26987
|
-
}] } });
|
|
26988
|
-
|
|
26989
26489
|
class CopyTextButtonComponent {
|
|
26990
26490
|
constructor() {
|
|
26991
26491
|
this.displayText = true;
|
|
@@ -27663,8 +27163,8 @@ class UrlInputComponent {
|
|
|
27663
27163
|
this.inputValue = '';
|
|
27664
27164
|
}
|
|
27665
27165
|
ngOnChanges(changes) {
|
|
27666
|
-
if (changes['
|
|
27667
|
-
this.inputValue =
|
|
27166
|
+
if (changes['resetUrlOnChange']) {
|
|
27167
|
+
this.inputValue = '';
|
|
27668
27168
|
}
|
|
27669
27169
|
}
|
|
27670
27170
|
handleInput(event) {
|
|
@@ -27693,7 +27193,7 @@ class UrlInputComponent {
|
|
|
27693
27193
|
}
|
|
27694
27194
|
}
|
|
27695
27195
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UrlInputComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27696
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: UrlInputComponent, isStandalone: true, selector: "gn-ui-url-input", inputs: { value: "value", extraClass: "extraClass", placeholder: "placeholder", disabled: "disabled", showValidateButton: "showValidateButton" }, outputs: { valueChange: "valueChange", uploadClick: "uploadClick" }, providers: [
|
|
27196
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: UrlInputComponent, isStandalone: true, selector: "gn-ui-url-input", inputs: { value: "value", extraClass: "extraClass", placeholder: "placeholder", disabled: "disabled", showValidateButton: "showValidateButton", resetUrlOnChange: "resetUrlOnChange" }, outputs: { valueChange: "valueChange", uploadClick: "uploadClick" }, providers: [
|
|
27697
27197
|
provideIcons({ iconoirLink, iconoirArrowUp }),
|
|
27698
27198
|
provideNgIconsConfig({
|
|
27699
27199
|
size: '1.5em',
|
|
@@ -27718,6 +27218,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
27718
27218
|
type: Input
|
|
27719
27219
|
}], showValidateButton: [{
|
|
27720
27220
|
type: Input
|
|
27221
|
+
}], resetUrlOnChange: [{
|
|
27222
|
+
type: Input
|
|
27721
27223
|
}], valueChange: [{
|
|
27722
27224
|
type: Output
|
|
27723
27225
|
}], uploadClick: [{
|
|
@@ -27783,7 +27285,7 @@ class FileInputComponent {
|
|
|
27783
27285
|
provideNgIconsConfig({
|
|
27784
27286
|
size: '1.5em',
|
|
27785
27287
|
}),
|
|
27786
|
-
], ngImport: i0, template: "<div class=\"w-full flex flex-col gap-[16px]\">\n <label\n gnUiFilesDrop\n class=\"flex-1 border-2 border-dashed rounded-lg p-6 flex flex-col items-center justify-center gap-4 transition-colors duration-100\"\n [ngClass]=\"{\n 'border-primary-lighter bg-primary-white': dragFilesOver,\n 'border-gray-300': !dragFilesOver,\n 'cursor-pointer hover:border-gray-500': !isUploadInProgress && !disabled,\n 'cursor-not-allowed': disabled,\n }\"\n [attr.tabindex]=\"isUploadInProgress || disabled ? null : 0\"\n (dragFilesOver)=\"handleDragFilesOver($event)\"\n (dropFiles)=\"handleDropFiles($event)\"\n (keydown.enter)=\"fileInput.click()\"\n >\n <input\n #fileInput\n type=\"file\"\n class=\"hidden\"\n (change)=\"handleFileInput($event)\"\n [disabled]=\"isUploadInProgress || disabled\"\n />\n\n <div\n class=\"w-14 h-14 rounded-md bg-gray-50 grid\"\n *ngIf=\"!isUploadInProgress\"\n >\n <ng-icon\n *ngIf=\"!dragFilesOver\"\n class=\"place-self-center text-primary\"\n name=\"iconoirCloudUpload\"\n ></ng-icon>\n <ng-icon\n *ngIf=\"dragFilesOver\"\n class=\"place-self-center text-primary\"\n name=\"iconoirFramePlusIn\"\n ></ng-icon>\n </div>\n <div\n *ngIf=\"isUploadInProgress\"\n class=\"w-14 h-14 grid items-center justify-center relative\"\n >\n <div class=\"text-gray-100 absolute\">\n <mat-progress-spinner\n class=\"place-self-center\"\n [diameter]=\"56\"\n mode=\"determinate\"\n [value]=\"100\"\n ></mat-progress-spinner>\n </div>\n <div class=\"text-primary absolute\">\n <mat-progress-spinner\n class=\"place-self-center\"\n [diameter]=\"56\"\n mode=\"determinate\"\n [value]=\"uploadProgress\"\n ></mat-progress-spinner>\n </div>\n <span class=\"text-sm text-main font-bold\">{{ uploadProgress }}%</span>\n </div>\n <div class=\"flex flex-col items-center gap-1\">\n <p class=\"font-medium\">\n {{ getPrimaryText() | translate: { sizeMB: maxSizeMB.toFixed(0) } }}\n </p>\n <p\n class=\"text-sm\"\n [class]=\"\n isUploadInProgress\n ? 'font-bold text-primary cursor-pointer'\n : 'font-medium text-gray-500'\n \"\n (click)=\"handleSecondaryTextClick($event)\"\n >\n {{ getSecondaryText() | translate }}\n </p>\n </div>\n <p class=\"w-full flex flex-row items-center justify-stretch gap-[16px]\">\n <span class=\"border-b border-gray-300 grow\"></span>\n <span class=\"text-sm font-medium text-gray-500 or-input-url\" translate>\n input.file.orInputUrl</span\n >\n <span class=\"border-b border-gray-300 grow\"></span>\n </p>\n <gn-ui-url-input\n class=\"w-full\"\n [disabled]=\"isUploadInProgress || disabled\"\n (uploadClick)=\"handleUrlChange($event)\"\n ></gn-ui-url-input>\n </label>\n</div>\n", styles: [":host{--gn-ui-button-padding: 8px 8px;--gn-ui-button-rounded: 8px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: FilesDropDirective, selector: "[gnUiFilesDrop]", outputs: ["dragFilesOver", "dropFiles"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i1$5.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: UrlInputComponent, selector: "gn-ui-url-input", inputs: ["value", "extraClass", "placeholder", "disabled", "showValidateButton"], outputs: ["valueChange", "uploadClick"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
27288
|
+
], ngImport: i0, template: "<div class=\"w-full flex flex-col gap-[16px]\">\n <label\n gnUiFilesDrop\n class=\"flex-1 border-2 border-dashed rounded-lg p-6 flex flex-col items-center justify-center gap-4 transition-colors duration-100\"\n [ngClass]=\"{\n 'border-primary-lighter bg-primary-white': dragFilesOver,\n 'border-gray-300': !dragFilesOver,\n 'cursor-pointer hover:border-gray-500': !isUploadInProgress && !disabled,\n 'cursor-not-allowed': disabled,\n }\"\n [attr.tabindex]=\"isUploadInProgress || disabled ? null : 0\"\n (dragFilesOver)=\"handleDragFilesOver($event)\"\n (dropFiles)=\"handleDropFiles($event)\"\n (keydown.enter)=\"fileInput.click()\"\n >\n <input\n #fileInput\n type=\"file\"\n class=\"hidden\"\n (change)=\"handleFileInput($event)\"\n [disabled]=\"isUploadInProgress || disabled\"\n />\n\n <div\n class=\"w-14 h-14 rounded-md bg-gray-50 grid\"\n *ngIf=\"!isUploadInProgress\"\n >\n <ng-icon\n *ngIf=\"!dragFilesOver\"\n class=\"place-self-center text-primary\"\n name=\"iconoirCloudUpload\"\n ></ng-icon>\n <ng-icon\n *ngIf=\"dragFilesOver\"\n class=\"place-self-center text-primary\"\n name=\"iconoirFramePlusIn\"\n ></ng-icon>\n </div>\n <div\n *ngIf=\"isUploadInProgress\"\n class=\"w-14 h-14 grid items-center justify-center relative\"\n >\n <div class=\"text-gray-100 absolute\">\n <mat-progress-spinner\n class=\"place-self-center\"\n [diameter]=\"56\"\n mode=\"determinate\"\n [value]=\"100\"\n ></mat-progress-spinner>\n </div>\n <div class=\"text-primary absolute\">\n <mat-progress-spinner\n class=\"place-self-center\"\n [diameter]=\"56\"\n mode=\"determinate\"\n [value]=\"uploadProgress\"\n ></mat-progress-spinner>\n </div>\n <span class=\"text-sm text-main font-bold\">{{ uploadProgress }}%</span>\n </div>\n <div class=\"flex flex-col items-center gap-1\">\n <p class=\"font-medium\">\n {{ getPrimaryText() | translate: { sizeMB: maxSizeMB.toFixed(0) } }}\n </p>\n <p\n class=\"text-sm\"\n [class]=\"\n isUploadInProgress\n ? 'font-bold text-primary cursor-pointer'\n : 'font-medium text-gray-500'\n \"\n (click)=\"handleSecondaryTextClick($event)\"\n >\n {{ getSecondaryText() | translate }}\n </p>\n </div>\n <p class=\"w-full flex flex-row items-center justify-stretch gap-[16px]\">\n <span class=\"border-b border-gray-300 grow\"></span>\n <span class=\"text-sm font-medium text-gray-500 or-input-url\" translate>\n input.file.orInputUrl</span\n >\n <span class=\"border-b border-gray-300 grow\"></span>\n </p>\n <gn-ui-url-input\n class=\"w-full\"\n [disabled]=\"isUploadInProgress || disabled\"\n (uploadClick)=\"handleUrlChange($event)\"\n ></gn-ui-url-input>\n </label>\n</div>\n", styles: [":host{--gn-ui-button-padding: 8px 8px;--gn-ui-button-rounded: 8px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: FilesDropDirective, selector: "[gnUiFilesDrop]", outputs: ["dragFilesOver", "dropFiles"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i1$5.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: UrlInputComponent, selector: "gn-ui-url-input", inputs: ["value", "extraClass", "placeholder", "disabled", "showValidateButton", "resetUrlOnChange"], outputs: ["valueChange", "uploadClick"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
27787
27289
|
}
|
|
27788
27290
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FileInputComponent, decorators: [{
|
|
27789
27291
|
type: Component,
|
|
@@ -28065,7 +27567,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
28065
27567
|
class UiInputsModule {
|
|
28066
27568
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiInputsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
28067
27569
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: UiInputsModule, declarations: [DragAndDropFileInputComponent,
|
|
28068
|
-
ChipsInputComponent,
|
|
28069
27570
|
DropdownMultiselectComponent,
|
|
28070
27571
|
ViewportIntersectorComponent,
|
|
28071
27572
|
CheckboxComponent], imports: [CommonModule, i1$1.TranslateModule, NgxDropzoneModule,
|
|
@@ -28093,7 +27594,6 @@ class UiInputsModule {
|
|
|
28093
27594
|
ButtonComponent,
|
|
28094
27595
|
DragAndDropFileInputComponent,
|
|
28095
27596
|
TextAreaComponent,
|
|
28096
|
-
ChipsInputComponent,
|
|
28097
27597
|
DropdownMultiselectComponent,
|
|
28098
27598
|
ViewportIntersectorComponent,
|
|
28099
27599
|
CheckToggleComponent,
|
|
@@ -28138,7 +27638,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
28138
27638
|
args: [{
|
|
28139
27639
|
declarations: [
|
|
28140
27640
|
DragAndDropFileInputComponent,
|
|
28141
|
-
ChipsInputComponent,
|
|
28142
27641
|
DropdownMultiselectComponent,
|
|
28143
27642
|
ViewportIntersectorComponent,
|
|
28144
27643
|
CheckboxComponent,
|
|
@@ -28184,7 +27683,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
28184
27683
|
ButtonComponent,
|
|
28185
27684
|
DragAndDropFileInputComponent,
|
|
28186
27685
|
TextAreaComponent,
|
|
28187
|
-
ChipsInputComponent,
|
|
28188
27686
|
DropdownMultiselectComponent,
|
|
28189
27687
|
ViewportIntersectorComponent,
|
|
28190
27688
|
CheckToggleComponent,
|
|
@@ -28850,7 +28348,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
28850
28348
|
|
|
28851
28349
|
class MarkdownParserComponent {
|
|
28852
28350
|
get parsedMarkdown() {
|
|
28853
|
-
return marked.parse(this.textContent);
|
|
28351
|
+
return marked.parse(this.textContent ?? '');
|
|
28854
28352
|
}
|
|
28855
28353
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MarkdownParserComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
28856
28354
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MarkdownParserComponent, isStandalone: true, selector: "gn-ui-markdown-parser", inputs: { textContent: "textContent", whitoutStyles: "whitoutStyles" }, ngImport: i0, template: "<div\n [class]=\"whitoutStyles ? '' : 'markdown-body'\"\n [innerHTML]=\"parsedMarkdown\"\n></div>\n", styles: [":host ::ng-deep .markdown-body{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;margin:0;line-height:1.5;word-wrap:break-word;height:100%}:host ::ng-deep .markdown-body strong{@apply font-bold;color:var(--color-secondary-darker)}:host ::ng-deep .markdown-body h1,:host ::ng-deep .markdown-body h2,:host ::ng-deep .markdown-body h3,:host ::ng-deep .markdown-body h4,:host ::ng-deep .markdown-body h5,:host ::ng-deep .markdown-body h6{margin-top:24px;margin-bottom:16px;line-height:1.25;@apply text-title font-title font-bold;}:host ::ng-deep .markdown-body :first-child{margin-top:0}:host ::ng-deep .markdown-body h1{margin:.67em 0;padding-bottom:.3em;font-size:2em;color:var(--color-primary)}:host ::ng-deep .markdown-body h2{padding-bottom:.3em;font-size:1.5em;color:var(--color-secondary)}:host ::ng-deep .markdown-body h3{font-size:1.25em;color:var(--color-secondary)}:host ::ng-deep .markdown-body h4{font-size:1em;color:var(--color-secondary)}:host ::ng-deep .markdown-body h5{font-size:.875em;color:var(--color-secondary)}:host ::ng-deep .markdown-body h6{font-size:.85em;color:var(--color-secondary-lighter)}:host ::ng-deep .markdown-body p{margin-top:0;margin-bottom:10px}:host ::ng-deep .markdown-body p>a{margin-top:0;margin-bottom:10px;color:var(--color-primary)!important;text-decoration:none}:host ::ng-deep .markdown-body p>a:hover{color:var(--color-primary-darker)!important;@apply underline;}:host ::ng-deep .markdown-body blockquote{margin:0;padding:0 1em;color:var(--color-secondary-lighter);border-left:.25em solid var(--color-primary-lighter)}:host ::ng-deep .markdown-body pre{margin-top:0;margin-bottom:0;font-size:12px;background-color:var(--color-gray-100);word-wrap:normal}:host ::ng-deep .markdown-body pre{padding:16px;overflow:auto;font-size:85%;line-height:1.45;color:var(--color-secondary);border-radius:6px}:host ::ng-deep .markdown-body code{padding:.2em .4em;margin:0;font-size:85%;white-space:break-spaces;border-radius:6px}:host ::ng-deep .markdown-body pre code{display:inline;max-width:auto;padding:0;margin:0;overflow:visible;line-height:inherit;word-wrap:normal;border:0}:host ::ng-deep .markdown-body hr{box-sizing:content-box;overflow:hidden;background:transparent;border-bottom:1px solid var(--color-secondary);height:.15em;padding:0;margin:24px 0;background-color:var(--color-secondary);border:0}:host ::ng-deep .markdown-body hr:before{display:table;content:\"\"}:host ::ng-deep .markdown-body hr:after{display:table;clear:both;content:\"\"}:host ::ng-deep .markdown-body ul,:host ::ng-deep .markdown-body ol{margin-top:0;margin-bottom:0;padding-left:2em;list-style:revert}:host ::ng-deep .markdown-body ol ol,:host ::ng-deep .markdown-body ul ol{list-style-type:lower-roman}:host ::ng-deep .markdown-body ul ul ol,:host ::ng-deep .markdown-body ul ol ol,:host ::ng-deep .markdown-body ol ul ol,:host ::ng-deep .markdown-body ol ol ol{list-style-type:lower-alpha}:host ::ng-deep .markdown-body ol[type=\"a s\"]{list-style-type:lower-alpha}:host ::ng-deep .markdown-body ol[type=\"A s\"]{list-style-type:upper-alpha}:host ::ng-deep .markdown-body ol[type=\"i s\"]{list-style-type:lower-roman}:host ::ng-deep .markdown-body ol[type=\"I s\"]{list-style-type:upper-roman}:host ::ng-deep .markdown-body ol[type=\"1\"]{list-style:unset;list-style-type:decimal}:host ::ng-deep .markdown-body div>ol:not([type]){list-style:unset;list-style-type:decimal}:host ::ng-deep .markdown-body table{border-spacing:0;border-collapse:collapse;display:block;width:max-content;max-width:100%;overflow:auto;padding-bottom:15px}:host ::ng-deep .markdown-body td,:host ::ng-deep .markdown-body th{padding:0}:host ::ng-deep .markdown-body th{color:var(--color-secondary)}:host ::ng-deep .markdown-body table th,:host ::ng-deep .markdown-body table td{padding:6px 13px;border:1px solid var(--color-gray-500)}:host ::ng-deep .markdown-body table td>:last-child{margin-bottom:0}:host ::ng-deep .markdown-body table tr{background-color:#fff;border-top:1px solid var(--color-secondary-lighter)}:host ::ng-deep .markdown-body table tr:nth-child(2n){background-color:var(--color-gray-100)}:host ::ng-deep .markdown-body table img{background-color:transparent}:host ::ng-deep .markdown-body img{border-style:none;max-width:100%;box-sizing:content-box;background-color:transparent}:host ::ng-deep .markdown-body img[align=right]{padding-left:20px}:host ::ng-deep .markdown-body img[align=left]{padding-right:20px}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
@@ -28936,7 +28434,15 @@ class MetadataQualityComponent {
|
|
|
28936
28434
|
}
|
|
28937
28435
|
}
|
|
28938
28436
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MetadataQualityComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
28939
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MetadataQualityComponent, isStandalone: true, selector: "gn-ui-metadata-quality", inputs: { metadata: "metadata", smaller: "smaller", metadataQualityDisplay: "metadataQualityDisplay" },
|
|
28437
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MetadataQualityComponent, isStandalone: true, selector: "gn-ui-metadata-quality", inputs: { metadata: "metadata", smaller: "smaller", metadataQualityDisplay: "metadataQualityDisplay" }, providers: [
|
|
28438
|
+
provideIcons({
|
|
28439
|
+
matInfoOutline,
|
|
28440
|
+
}),
|
|
28441
|
+
provideNgIconsConfig({
|
|
28442
|
+
size: '1.2em',
|
|
28443
|
+
strokeWidth: '1.5px',
|
|
28444
|
+
}),
|
|
28445
|
+
], usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"metadataQualityDisplay\" class=\"mb-6 metadata-quality\">\n <div\n class=\"flex items-center\"\n [class]=\"smaller ? 'leading-[8px] min-w-[120px]' : 'min-w-[200px]'\"\n >\n <gn-ui-progress-bar\n tabindex=\"0\"\n [value]=\"qualityScore\"\n [type]=\"'light'\"\n class=\"flex-grow\"\n ></gn-ui-progress-bar>\n <gn-ui-popover\n [content]=\"popoverItems\"\n theme=\"light-border\"\n [class]=\"smaller ? 'ml-2' : 'ml-2 mt-1'\"\n >\n <ng-icon\n name=\"matInfoOutline\"\n class=\"flex-shrink-0 text-gray-600\"\n ></ng-icon>\n </gn-ui-popover>\n </div>\n</div>\n<ng-template #popoverItems>\n <div class=\"p-2 py-4\">\n <div class=\"mb-4 font-bold\" translate>record.metadata.quality.details</div>\n <gn-ui-metadata-quality-item\n *ngFor=\"let e of items\"\n [name]=\"e.name\"\n [value]=\"e.value\"\n ></gn-ui-metadata-quality-item>\n </div>\n</ng-template>\n", styles: [":host gn-ui-progress-bar{--progress-bar-font-weight: \"normal\"}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: PopoverComponent, selector: "gn-ui-popover", inputs: ["content", "theme"] }, { kind: "component", type: ProgressBarComponent, selector: "gn-ui-progress-bar", inputs: ["value", "type"] }, { kind: "component", type: MetadataQualityItemComponent, selector: "gn-ui-metadata-quality-item", inputs: ["name", "value"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
28940
28446
|
}
|
|
28941
28447
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MetadataQualityComponent, decorators: [{
|
|
28942
28448
|
type: Component,
|
|
@@ -28946,7 +28452,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
28946
28452
|
ProgressBarComponent,
|
|
28947
28453
|
MetadataQualityItemComponent,
|
|
28948
28454
|
TranslateModule,
|
|
28949
|
-
|
|
28455
|
+
NgIcon,
|
|
28456
|
+
], providers: [
|
|
28457
|
+
provideIcons({
|
|
28458
|
+
matInfoOutline,
|
|
28459
|
+
}),
|
|
28460
|
+
provideNgIconsConfig({
|
|
28461
|
+
size: '1.2em',
|
|
28462
|
+
strokeWidth: '1.5px',
|
|
28463
|
+
}),
|
|
28464
|
+
], template: "<div *ngIf=\"metadataQualityDisplay\" class=\"mb-6 metadata-quality\">\n <div\n class=\"flex items-center\"\n [class]=\"smaller ? 'leading-[8px] min-w-[120px]' : 'min-w-[200px]'\"\n >\n <gn-ui-progress-bar\n tabindex=\"0\"\n [value]=\"qualityScore\"\n [type]=\"'light'\"\n class=\"flex-grow\"\n ></gn-ui-progress-bar>\n <gn-ui-popover\n [content]=\"popoverItems\"\n theme=\"light-border\"\n [class]=\"smaller ? 'ml-2' : 'ml-2 mt-1'\"\n >\n <ng-icon\n name=\"matInfoOutline\"\n class=\"flex-shrink-0 text-gray-600\"\n ></ng-icon>\n </gn-ui-popover>\n </div>\n</div>\n<ng-template #popoverItems>\n <div class=\"p-2 py-4\">\n <div class=\"mb-4 font-bold\" translate>record.metadata.quality.details</div>\n <gn-ui-metadata-quality-item\n *ngFor=\"let e of items\"\n [name]=\"e.name\"\n [value]=\"e.value\"\n ></gn-ui-metadata-quality-item>\n </div>\n</ng-template>\n", styles: [":host gn-ui-progress-bar{--progress-bar-font-weight: \"normal\"}\n"] }]
|
|
28950
28465
|
}], propDecorators: { metadata: [{
|
|
28951
28466
|
type: Input
|
|
28952
28467
|
}], smaller: [{
|
|
@@ -28961,11 +28476,11 @@ class RecordPreviewRowComponent extends RecordPreviewComponent {
|
|
|
28961
28476
|
this.elementRef = elementRef;
|
|
28962
28477
|
}
|
|
28963
28478
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RecordPreviewRowComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
28964
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: RecordPreviewRowComponent, selector: "gn-ui-record-preview-row", usesInheritance: true, ngImport: i0, template: "<a\n class=\"group container-lg mx-auto flex cursor-pointer flex-wrap sm:flex-nowrap\"\n [title]=\"record.title\"\n [attr.href]=\"linkHref\"\n>\n <div class=\"shrink-0 w-full sm:w-52\">\n <div\n class=\"overflow-hidden bg-gray-100 rounded-lg w-full border border-gray-300 h-36\"\n >\n <gn-ui-thumbnail\n class=\"relative h-full w-full object-cover object-left-top\"\n [thumbnailUrl]=\"[\n record.overviews?.[0]?.url?.toString(),\n organization?.logoUrl?.toString(),\n ]\"\n [fit]=\"['cover', 'contain']\"\n ></gn-ui-thumbnail>\n </div>\n </div>\n <div\n class=\"content grid grow relative sm:pl-6 sm:pr-12\"\n style=\"grid-template-columns: auto 70px\"\n >\n <div class=\"mb-3 mt-5 sm:mt-2\">\n <div\n class=\"font-title text-21 text-title line-clamp-2 col-start-1 col-span-2 sm:line-clamp-1 group-hover:text-primary transition-colors\"\n data-cy=\"recordTitle\"\n >\n {{ record.title }}\n </div>\n </div>\n <div\n class=\"abstract mt-4 mb-5 h-36 line-clamp-6 col-start-1 col-span-2 row-start-3 sm:mb-2 sm:h-[4.5rem] sm:line-clamp-3 sm:row-start-2 sm:mt-0\"\n data-cy=\"recordAbstract\"\n >\n <gn-ui-markdown-parser\n [textContent]=\"abstract\"\n whitoutStyles=\"true\"\n ></gn-ui-markdown-parser>\n </div>\n <div\n class=\"text-primary opacity-45 uppercase col-start-1 col-span-2 row-start-2 sm:truncate sm:row-start-3 sm:col-span-1\"\n data-cy=\"recordOrg\"\n [class]=\"metadataQualityDisplay ? 'limit-organisation-with-quality' : ''\"\n >\n {{ organization?.name }}\n </div>\n <div\n class=\"icons flex flex-row col-start-1 row-start-4 sm:col-start-2 sm:row-start-3 sm:absolute sm:right-[0.4em]\"\n >\n <ng-icon\n *ngIf=\"isDownloadable\"\n class=\"text-primary opacity-45 mx-1\"\n name=\"matCloudDownloadOutline\"\n ></ng-icon>\n <ng-icon\n *ngIf=\"isViewable\"\n class=\"text-primary opacity-45 mx-1\"\n name=\"matMapOutline\"\n ></ng-icon>\n </div>\n <div\n *ngIf=\"metadataQualityDisplay\"\n class=\"col-start-2 row-start-4 sm:row-start-3 absolute right-[4em] sm:right-[5em]\"\n >\n <gn-ui-metadata-quality\n smaller=\"true\"\n [metadata]=\"record\"\n [metadataQualityDisplay]=\"metadataQualityDisplay\"\n ></gn-ui-metadata-quality>\n </div>\n <div\n class=\"text-right col-start-3 row-start-4 sm:absolute sm:col-start-2 sm:row-start-1 sm:top-[-1.125em] sm:right-[0.4em]\"\n data-cy=\"recordFav\"\n >\n <ng-container\n [ngTemplateOutlet]=\"favoriteTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: record }\"\n ></ng-container>\n </div>\n </div>\n</a>\n", styles: [".limit-organisation-with-quality{max-width:calc(100% - 170px)}\n"], dependencies: [{ kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ThumbnailComponent, selector: "gn-ui-thumbnail", inputs: ["thumbnailUrl", "fit"], outputs: ["placeholderShown"] }, { kind: "component", type: MarkdownParserComponent, selector: "gn-ui-markdown-parser", inputs: ["textContent", "whitoutStyles"] }, { kind: "component", type: i2$2.NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "component", type: MetadataQualityComponent, selector: "gn-ui-metadata-quality", inputs: ["metadata", "smaller", "metadataQualityDisplay"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
28479
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: RecordPreviewRowComponent, selector: "gn-ui-record-preview-row", usesInheritance: true, ngImport: i0, template: "<a\n class=\"group container-lg mx-auto flex cursor-pointer flex-wrap sm:flex-nowrap\"\n [title]=\"record.title\"\n [attr.href]=\"linkHref\"\n>\n <div class=\"shrink-0 w-full sm:w-52\">\n <div\n class=\"overflow-hidden bg-gray-100 rounded-lg w-full border border-gray-300 h-36\"\n >\n <gn-ui-thumbnail\n class=\"relative h-full w-full object-cover object-left-top\"\n [thumbnailUrl]=\"[\n record.overviews?.[0]?.url?.toString(),\n organization?.logoUrl?.toString(),\n ]\"\n [fit]=\"['cover', 'contain']\"\n ></gn-ui-thumbnail>\n </div>\n </div>\n <div\n class=\"content grid grow relative sm:pl-6 sm:pr-12\"\n style=\"grid-template-columns: auto 70px\"\n >\n <div class=\"mb-3 mt-5 sm:mt-2\">\n <div\n class=\"font-title text-21 text-title line-clamp-2 col-start-1 col-span-2 sm:line-clamp-1 group-hover:text-primary transition-colors\"\n data-cy=\"recordTitle\"\n >\n {{ record.title }}\n </div>\n </div>\n <div\n class=\"abstract mt-4 mb-5 h-36 line-clamp-6 col-start-1 col-span-2 row-start-3 sm:mb-2 sm:h-[4.5rem] sm:line-clamp-3 sm:row-start-2 sm:mt-0\"\n data-cy=\"recordAbstract\"\n >\n <gn-ui-markdown-parser\n [textContent]=\"abstract\"\n whitoutStyles=\"true\"\n ></gn-ui-markdown-parser>\n </div>\n <div\n class=\"text-primary opacity-45 uppercase col-start-1 col-span-2 row-start-2 sm:truncate sm:row-start-3 sm:col-span-1\"\n data-cy=\"recordOrg\"\n [class]=\"metadataQualityDisplay ? 'limit-organisation-with-quality' : ''\"\n >\n {{ organization?.name }}\n </div>\n <div\n class=\"icons flex flex-row col-start-1 row-start-4 sm:col-start-2 sm:row-start-3 sm:absolute sm:right-[0.4em]\"\n >\n <ng-icon\n *ngIf=\"isDownloadable\"\n class=\"text-primary opacity-45 mx-1\"\n name=\"matCloudDownloadOutline\"\n ></ng-icon>\n <ng-icon\n *ngIf=\"isViewable\"\n class=\"text-primary opacity-45 mx-1\"\n name=\"matMapOutline\"\n ></ng-icon>\n </div>\n <div\n *ngIf=\"metadataQualityDisplay\"\n class=\"col-start-2 row-start-4 sm:row-start-3 absolute right-[4em] sm:right-[5em]\"\n >\n <gn-ui-metadata-quality\n [smaller]=\"true\"\n [metadata]=\"record\"\n [metadataQualityDisplay]=\"metadataQualityDisplay\"\n ></gn-ui-metadata-quality>\n </div>\n <div\n class=\"text-right col-start-3 row-start-4 sm:absolute sm:col-start-2 sm:row-start-1 sm:top-[-1.125em] sm:right-[0.4em]\"\n data-cy=\"recordFav\"\n >\n <ng-container\n [ngTemplateOutlet]=\"favoriteTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: record }\"\n ></ng-container>\n </div>\n </div>\n</a>\n", styles: [".limit-organisation-with-quality{max-width:calc(100% - 170px)}\n"], dependencies: [{ kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ThumbnailComponent, selector: "gn-ui-thumbnail", inputs: ["thumbnailUrl", "fit"], outputs: ["placeholderShown"] }, { kind: "component", type: MarkdownParserComponent, selector: "gn-ui-markdown-parser", inputs: ["textContent", "whitoutStyles"] }, { kind: "component", type: i2$2.NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "component", type: MetadataQualityComponent, selector: "gn-ui-metadata-quality", inputs: ["metadata", "smaller", "metadataQualityDisplay"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
28965
28480
|
}
|
|
28966
28481
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RecordPreviewRowComponent, decorators: [{
|
|
28967
28482
|
type: Component,
|
|
28968
|
-
args: [{ selector: 'gn-ui-record-preview-row', changeDetection: ChangeDetectionStrategy.OnPush, template: "<a\n class=\"group container-lg mx-auto flex cursor-pointer flex-wrap sm:flex-nowrap\"\n [title]=\"record.title\"\n [attr.href]=\"linkHref\"\n>\n <div class=\"shrink-0 w-full sm:w-52\">\n <div\n class=\"overflow-hidden bg-gray-100 rounded-lg w-full border border-gray-300 h-36\"\n >\n <gn-ui-thumbnail\n class=\"relative h-full w-full object-cover object-left-top\"\n [thumbnailUrl]=\"[\n record.overviews?.[0]?.url?.toString(),\n organization?.logoUrl?.toString(),\n ]\"\n [fit]=\"['cover', 'contain']\"\n ></gn-ui-thumbnail>\n </div>\n </div>\n <div\n class=\"content grid grow relative sm:pl-6 sm:pr-12\"\n style=\"grid-template-columns: auto 70px\"\n >\n <div class=\"mb-3 mt-5 sm:mt-2\">\n <div\n class=\"font-title text-21 text-title line-clamp-2 col-start-1 col-span-2 sm:line-clamp-1 group-hover:text-primary transition-colors\"\n data-cy=\"recordTitle\"\n >\n {{ record.title }}\n </div>\n </div>\n <div\n class=\"abstract mt-4 mb-5 h-36 line-clamp-6 col-start-1 col-span-2 row-start-3 sm:mb-2 sm:h-[4.5rem] sm:line-clamp-3 sm:row-start-2 sm:mt-0\"\n data-cy=\"recordAbstract\"\n >\n <gn-ui-markdown-parser\n [textContent]=\"abstract\"\n whitoutStyles=\"true\"\n ></gn-ui-markdown-parser>\n </div>\n <div\n class=\"text-primary opacity-45 uppercase col-start-1 col-span-2 row-start-2 sm:truncate sm:row-start-3 sm:col-span-1\"\n data-cy=\"recordOrg\"\n [class]=\"metadataQualityDisplay ? 'limit-organisation-with-quality' : ''\"\n >\n {{ organization?.name }}\n </div>\n <div\n class=\"icons flex flex-row col-start-1 row-start-4 sm:col-start-2 sm:row-start-3 sm:absolute sm:right-[0.4em]\"\n >\n <ng-icon\n *ngIf=\"isDownloadable\"\n class=\"text-primary opacity-45 mx-1\"\n name=\"matCloudDownloadOutline\"\n ></ng-icon>\n <ng-icon\n *ngIf=\"isViewable\"\n class=\"text-primary opacity-45 mx-1\"\n name=\"matMapOutline\"\n ></ng-icon>\n </div>\n <div\n *ngIf=\"metadataQualityDisplay\"\n class=\"col-start-2 row-start-4 sm:row-start-3 absolute right-[4em] sm:right-[5em]\"\n >\n <gn-ui-metadata-quality\n smaller=\"true\"\n [metadata]=\"record\"\n [metadataQualityDisplay]=\"metadataQualityDisplay\"\n ></gn-ui-metadata-quality>\n </div>\n <div\n class=\"text-right col-start-3 row-start-4 sm:absolute sm:col-start-2 sm:row-start-1 sm:top-[-1.125em] sm:right-[0.4em]\"\n data-cy=\"recordFav\"\n >\n <ng-container\n [ngTemplateOutlet]=\"favoriteTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: record }\"\n ></ng-container>\n </div>\n </div>\n</a>\n", styles: [".limit-organisation-with-quality{max-width:calc(100% - 170px)}\n"] }]
|
|
28483
|
+
args: [{ selector: 'gn-ui-record-preview-row', changeDetection: ChangeDetectionStrategy.OnPush, template: "<a\n class=\"group container-lg mx-auto flex cursor-pointer flex-wrap sm:flex-nowrap\"\n [title]=\"record.title\"\n [attr.href]=\"linkHref\"\n>\n <div class=\"shrink-0 w-full sm:w-52\">\n <div\n class=\"overflow-hidden bg-gray-100 rounded-lg w-full border border-gray-300 h-36\"\n >\n <gn-ui-thumbnail\n class=\"relative h-full w-full object-cover object-left-top\"\n [thumbnailUrl]=\"[\n record.overviews?.[0]?.url?.toString(),\n organization?.logoUrl?.toString(),\n ]\"\n [fit]=\"['cover', 'contain']\"\n ></gn-ui-thumbnail>\n </div>\n </div>\n <div\n class=\"content grid grow relative sm:pl-6 sm:pr-12\"\n style=\"grid-template-columns: auto 70px\"\n >\n <div class=\"mb-3 mt-5 sm:mt-2\">\n <div\n class=\"font-title text-21 text-title line-clamp-2 col-start-1 col-span-2 sm:line-clamp-1 group-hover:text-primary transition-colors\"\n data-cy=\"recordTitle\"\n >\n {{ record.title }}\n </div>\n </div>\n <div\n class=\"abstract mt-4 mb-5 h-36 line-clamp-6 col-start-1 col-span-2 row-start-3 sm:mb-2 sm:h-[4.5rem] sm:line-clamp-3 sm:row-start-2 sm:mt-0\"\n data-cy=\"recordAbstract\"\n >\n <gn-ui-markdown-parser\n [textContent]=\"abstract\"\n whitoutStyles=\"true\"\n ></gn-ui-markdown-parser>\n </div>\n <div\n class=\"text-primary opacity-45 uppercase col-start-1 col-span-2 row-start-2 sm:truncate sm:row-start-3 sm:col-span-1\"\n data-cy=\"recordOrg\"\n [class]=\"metadataQualityDisplay ? 'limit-organisation-with-quality' : ''\"\n >\n {{ organization?.name }}\n </div>\n <div\n class=\"icons flex flex-row col-start-1 row-start-4 sm:col-start-2 sm:row-start-3 sm:absolute sm:right-[0.4em]\"\n >\n <ng-icon\n *ngIf=\"isDownloadable\"\n class=\"text-primary opacity-45 mx-1\"\n name=\"matCloudDownloadOutline\"\n ></ng-icon>\n <ng-icon\n *ngIf=\"isViewable\"\n class=\"text-primary opacity-45 mx-1\"\n name=\"matMapOutline\"\n ></ng-icon>\n </div>\n <div\n *ngIf=\"metadataQualityDisplay\"\n class=\"col-start-2 row-start-4 sm:row-start-3 absolute right-[4em] sm:right-[5em]\"\n >\n <gn-ui-metadata-quality\n [smaller]=\"true\"\n [metadata]=\"record\"\n [metadataQualityDisplay]=\"metadataQualityDisplay\"\n ></gn-ui-metadata-quality>\n </div>\n <div\n class=\"text-right col-start-3 row-start-4 sm:absolute sm:col-start-2 sm:row-start-1 sm:top-[-1.125em] sm:right-[0.4em]\"\n data-cy=\"recordFav\"\n >\n <ng-container\n [ngTemplateOutlet]=\"favoriteTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: record }\"\n ></ng-container>\n </div>\n </div>\n</a>\n", styles: [".limit-organisation-with-quality{max-width:calc(100% - 170px)}\n"] }]
|
|
28969
28484
|
}], ctorParameters: () => [{ type: i0.ElementRef }] });
|
|
28970
28485
|
|
|
28971
28486
|
class RecordPreviewTextComponent extends RecordPreviewComponent {
|
|
@@ -29438,11 +28953,14 @@ class ImageInputComponent {
|
|
|
29438
28953
|
this.altTextChange = new EventEmitter();
|
|
29439
28954
|
this.dragFilesOver = false;
|
|
29440
28955
|
this.showUrlInput = false;
|
|
29441
|
-
this.
|
|
28956
|
+
this.imageFileError = this.uploadError;
|
|
29442
28957
|
this.showAltTextInput = false;
|
|
29443
28958
|
}
|
|
28959
|
+
getIsActionBlocked() {
|
|
28960
|
+
return this.isUploadInProgress || this.disabled;
|
|
28961
|
+
}
|
|
29444
28962
|
getPrimaryText() {
|
|
29445
|
-
if (this.
|
|
28963
|
+
if (this.imageFileError) {
|
|
29446
28964
|
return marker('input.image.uploadErrorLabel');
|
|
29447
28965
|
}
|
|
29448
28966
|
if (this.uploadProgress) {
|
|
@@ -29451,8 +28969,8 @@ class ImageInputComponent {
|
|
|
29451
28969
|
return marker('input.image.selectFileLabel');
|
|
29452
28970
|
}
|
|
29453
28971
|
getSecondaryText() {
|
|
29454
|
-
if (this.
|
|
29455
|
-
return
|
|
28972
|
+
if (this.imageFileError) {
|
|
28973
|
+
return '\u00A0'; // (only to keep same spacing, next step is to handle "Retry")
|
|
29456
28974
|
}
|
|
29457
28975
|
if (this.uploadProgress) {
|
|
29458
28976
|
return marker('input.image.uploadProgressCancel');
|
|
@@ -29466,26 +28984,33 @@ class ImageInputComponent {
|
|
|
29466
28984
|
}
|
|
29467
28985
|
}
|
|
29468
28986
|
handleDropFiles(files) {
|
|
29469
|
-
|
|
29470
|
-
|
|
29471
|
-
|
|
29472
|
-
|
|
29473
|
-
|
|
28987
|
+
this.resetErrors();
|
|
28988
|
+
const validFiles = this.filterTypeImage(files);
|
|
28989
|
+
if (validFiles.length > 0) {
|
|
28990
|
+
this.showUrlInput = false;
|
|
28991
|
+
this.resizeAndEmit(validFiles[0]);
|
|
28992
|
+
}
|
|
28993
|
+
else {
|
|
28994
|
+
this.imageFileError = true;
|
|
29474
28995
|
}
|
|
29475
28996
|
}
|
|
29476
28997
|
handleFileInput(event) {
|
|
28998
|
+
this.resetErrors();
|
|
29477
28999
|
const inputFiles = Array.from(event.target.files);
|
|
29478
29000
|
const validFiles = this.filterTypeImage(inputFiles);
|
|
29479
29001
|
if (validFiles.length > 0) {
|
|
29480
29002
|
this.resizeAndEmit(validFiles[0]);
|
|
29481
29003
|
}
|
|
29004
|
+
else {
|
|
29005
|
+
this.imageFileError = true;
|
|
29006
|
+
}
|
|
29482
29007
|
}
|
|
29483
29008
|
displayUrlInput() {
|
|
29484
29009
|
this.uploadCancel.emit();
|
|
29485
29010
|
this.showUrlInput = true;
|
|
29486
29011
|
}
|
|
29487
29012
|
async downloadUrl(url) {
|
|
29488
|
-
this.
|
|
29013
|
+
this.resetErrors();
|
|
29489
29014
|
const name = url.split('/').pop();
|
|
29490
29015
|
try {
|
|
29491
29016
|
const response = await firstValueFrom(this.http.head(url, { observe: 'response' }));
|
|
@@ -29499,7 +29024,7 @@ class ImageInputComponent {
|
|
|
29499
29024
|
this.fileChange.emit(file);
|
|
29500
29025
|
},
|
|
29501
29026
|
error: () => {
|
|
29502
|
-
this.
|
|
29027
|
+
this.imageFileError = true;
|
|
29503
29028
|
this.cd.markForCheck();
|
|
29504
29029
|
this.urlChange.emit(url);
|
|
29505
29030
|
},
|
|
@@ -29507,36 +29032,27 @@ class ImageInputComponent {
|
|
|
29507
29032
|
}
|
|
29508
29033
|
}
|
|
29509
29034
|
catch {
|
|
29510
|
-
this.
|
|
29035
|
+
this.imageFileError = true;
|
|
29511
29036
|
this.cd.markForCheck();
|
|
29512
29037
|
return;
|
|
29513
29038
|
}
|
|
29514
29039
|
}
|
|
29515
29040
|
handleSecondaryTextClick(event) {
|
|
29516
|
-
if (this.
|
|
29517
|
-
this.
|
|
29518
|
-
}
|
|
29519
|
-
else if (this.uploadProgress) {
|
|
29520
|
-
this.handleCancel();
|
|
29041
|
+
if (this.uploadProgress) {
|
|
29042
|
+
this.handleCancelUpload();
|
|
29521
29043
|
event.preventDefault();
|
|
29522
29044
|
}
|
|
29523
29045
|
}
|
|
29524
|
-
|
|
29046
|
+
handleCancelUpload() {
|
|
29525
29047
|
this.uploadCancel.emit();
|
|
29526
29048
|
}
|
|
29527
|
-
handleRetry() {
|
|
29528
|
-
switch (this.lastUploadType) {
|
|
29529
|
-
case 'file':
|
|
29530
|
-
this.fileChange.emit(this.lastUploadContent);
|
|
29531
|
-
break;
|
|
29532
|
-
case 'url':
|
|
29533
|
-
this.urlChange.emit(this.lastUploadContent);
|
|
29534
|
-
break;
|
|
29535
|
-
}
|
|
29536
|
-
}
|
|
29537
29049
|
handleDelete() {
|
|
29538
29050
|
this.delete.emit();
|
|
29539
29051
|
}
|
|
29052
|
+
resetErrors() {
|
|
29053
|
+
this.imageFileError = false;
|
|
29054
|
+
this.uploadError = false;
|
|
29055
|
+
}
|
|
29540
29056
|
toggleAltTextInput() {
|
|
29541
29057
|
this.showAltTextInput = !this.showAltTextInput;
|
|
29542
29058
|
}
|
|
@@ -29568,7 +29084,7 @@ class ImageInputComponent {
|
|
|
29568
29084
|
provideNgIconsConfig({
|
|
29569
29085
|
size: '1.5rem',
|
|
29570
29086
|
}),
|
|
29571
|
-
], ngImport: i0, template: "<ng-container *ngIf=\"previewUrl; then withImage; else withoutImage\">\n</ng-container>\n\n<ng-template #withImage>\n <div class=\"w-80 h-full flex flex-col gap-2\">\n <gn-ui-image-overlay-preview class=\"h-48\" [imageUrl]=\"previewUrl\">\n </gn-ui-image-overlay-preview>\n <gn-ui-text-input\n *ngIf=\"showAltTextInput\"\n [placeholder]=\"'input.image.altTextPlaceholder' | translate\"\n [value]=\"altText ?? ''\"\n (valueChange)=\"handleAltTextChange($event)\"\n extraClass=\"gn-ui-editor-textarea\"\n
|
|
29087
|
+
], ngImport: i0, template: "<ng-container *ngIf=\"previewUrl; then withImage; else withoutImage\">\n</ng-container>\n\n<ng-template #withImage>\n <div class=\"w-80 h-full flex flex-col gap-2\">\n <gn-ui-image-overlay-preview class=\"h-48\" [imageUrl]=\"previewUrl\">\n </gn-ui-image-overlay-preview>\n <gn-ui-text-input\n *ngIf=\"showAltTextInput\"\n [placeholder]=\"'input.image.altTextPlaceholder' | translate\"\n [value]=\"altText ?? ''\"\n (valueChange)=\"handleAltTextChange($event)\"\n extraClass=\"gn-ui-editor-textarea\"\n ></gn-ui-text-input>\n <div class=\"flex flex-row gap-2 mt-2\">\n <gn-ui-button\n type=\"gray\"\n (buttonClick)=\"handleDelete()\"\n data-cy=\"delete-image\"\n >\n <ng-icon class=\"me-1 text-primary\" name=\"iconoirBin\"></ng-icon>\n {{ 'input.image.delete' | translate }}\n </gn-ui-button>\n <gn-ui-button\n *ngIf=\"!showAltTextInput\"\n type=\"gray\"\n (buttonClick)=\"toggleAltTextInput()\"\n >\n <ng-icon name=\"iconoirPlus\" class=\"me-1 text-primary\"></ng-icon>\n {{ 'input.image.displayAltTextInput' | translate }}\n </gn-ui-button>\n </div>\n </div>\n</ng-template>\n\n<ng-template #withoutImage>\n <div class=\"w-full h-full flex flex-col gap-2\">\n <label\n gnUiFilesDrop\n class=\"flex-1 border-2 border-dashed rounded-lg p-6 flex flex-col items-center justify-center gap-4 transition-colors duration-100\"\n [ngClass]=\"{\n 'border-primary-lighter bg-primary-white': dragFilesOver,\n 'border-gray-300': !dragFilesOver,\n 'cursor-pointer hover:border-gray-500': !getIsActionBlocked(),\n 'cursor-not-allowed': disabled,\n }\"\n [attr.tabindex]=\"getIsActionBlocked() ? null : 0\"\n (keydown.enter)=\"fileInput.click()\"\n (dragFilesOver)=\"handleDragFilesOver($event)\"\n (dropFiles)=\"handleDropFiles($event)\"\n >\n <div\n class=\"w-14 h-14 rounded-md bg-gray-50 grid\"\n *ngIf=\"!isUploadInProgress && !imageFileError\"\n >\n <ng-icon\n *ngIf=\"!dragFilesOver\"\n class=\"place-self-center text-primary\"\n name=\"iconoirMediaImage\"\n ></ng-icon>\n <ng-icon\n *ngIf=\"dragFilesOver\"\n class=\"place-self-center text-primary\"\n name=\"iconoirFramePlusIn\"\n ></ng-icon>\n </div>\n\n <div\n *ngIf=\"isUploadInProgress && !imageFileError\"\n class=\"w-14 h-14 grid items-center justify-center relative\"\n >\n <div class=\"text-gray-100 absolute\">\n <mat-progress-spinner\n class=\"place-self-center\"\n [diameter]=\"56\"\n mode=\"determinate\"\n [value]=\"100\"\n ></mat-progress-spinner>\n </div>\n <div class=\"text-primary absolute\">\n <mat-progress-spinner\n class=\"place-self-center\"\n [diameter]=\"56\"\n mode=\"determinate\"\n [value]=\"uploadProgress\"\n ></mat-progress-spinner>\n </div>\n <span class=\"text-sm text-main font-bold\">{{ uploadProgress }}%</span>\n </div>\n\n <div class=\"w-14 h-14 rounded-md bg-gray-50 grid\" *ngIf=\"imageFileError\">\n <ng-icon\n name=\"iconoirMediaImageXmark\"\n class=\"place-self-center text-rose-500\"\n data-cy=\"imgErrorIcon\"\n ></ng-icon>\n </div>\n\n <div class=\"flex flex-col items-center gap-1\">\n <p class=\"font-medium\" data-cy=\"imgInputMsgPrimary\">\n {{ getPrimaryText() | translate }}\n </p>\n <p\n class=\"text-sm\"\n data-cy=\"imgInputMsgSecondary\"\n [class]=\"\n isUploadInProgress\n ? 'font-bold text-blue-500 cursor-pointer'\n : 'font-medium text-gray-500'\n \"\n (click)=\"handleSecondaryTextClick($event)\"\n >\n {{ getSecondaryText() | translate }}\n </p>\n </div>\n <input\n #fileInput\n accept=\"image/*\"\n type=\"file\"\n class=\"hidden\"\n (change)=\"handleFileInput($event)\"\n [disabled]=\"isUploadInProgress || disabled\"\n />\n </label>\n\n <div *ngIf=\"!showUrlInput\" class=\"flex-none mt-2\">\n <gn-ui-button\n data-cy=\"imgUrlBtn\"\n (buttonClick)=\"displayUrlInput()\"\n type=\"gray\"\n [disabled]=\"disabled\"\n [extraClass]=\"disabled && 'cursor-not-allowed'\"\n >\n <ng-icon class=\"me-1 text-primary\" name=\"iconoirLink\"></ng-icon>\n {{ 'input.image.displayUrlInput' | translate }}\n </gn-ui-button>\n </div>\n\n <gn-ui-url-input\n *ngIf=\"showUrlInput\"\n class=\"mt-3.5\"\n data-cy=\"imgUrlInput\"\n (uploadClick)=\"downloadUrl($event)\"\n [disabled]=\"isUploadInProgress || disabled\"\n >\n </gn-ui-url-input>\n </div>\n</ng-template>\n", styles: [":host{--gn-ui-button-padding: 8px 8px;--gn-ui-button-rounded: 8px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "directive", type: FilesDropDirective, selector: "[gnUiFilesDrop]", outputs: ["dragFilesOver", "dropFiles"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i1$5.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "component", type: UrlInputComponent, selector: "gn-ui-url-input", inputs: ["value", "extraClass", "placeholder", "disabled", "showValidateButton", "resetUrlOnChange"], outputs: ["valueChange", "uploadClick"] }, { kind: "component", type: TextInputComponent, selector: "gn-ui-text-input", inputs: ["value", "extraClass", "placeholder", "required", "disabled"], outputs: ["valueChange"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "component", type: ImageOverlayPreviewComponent, selector: "gn-ui-image-overlay-preview", inputs: ["imageUrl"], outputs: ["isPlaceholderShown"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
29572
29088
|
}
|
|
29573
29089
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ImageInputComponent, decorators: [{
|
|
29574
29090
|
type: Component,
|
|
@@ -29594,7 +29110,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
29594
29110
|
provideNgIconsConfig({
|
|
29595
29111
|
size: '1.5rem',
|
|
29596
29112
|
}),
|
|
29597
|
-
], template: "<ng-container *ngIf=\"previewUrl; then withImage; else withoutImage\">\n</ng-container>\n\n<ng-template #withImage>\n <div class=\"w-80 h-full flex flex-col gap-2\">\n <gn-ui-image-overlay-preview class=\"h-48\" [imageUrl]=\"previewUrl\">\n </gn-ui-image-overlay-preview>\n <gn-ui-text-input\n *ngIf=\"showAltTextInput\"\n [placeholder]=\"'input.image.altTextPlaceholder' | translate\"\n [value]=\"altText ?? ''\"\n (valueChange)=\"handleAltTextChange($event)\"\n extraClass=\"gn-ui-editor-textarea\"\n
|
|
29113
|
+
], template: "<ng-container *ngIf=\"previewUrl; then withImage; else withoutImage\">\n</ng-container>\n\n<ng-template #withImage>\n <div class=\"w-80 h-full flex flex-col gap-2\">\n <gn-ui-image-overlay-preview class=\"h-48\" [imageUrl]=\"previewUrl\">\n </gn-ui-image-overlay-preview>\n <gn-ui-text-input\n *ngIf=\"showAltTextInput\"\n [placeholder]=\"'input.image.altTextPlaceholder' | translate\"\n [value]=\"altText ?? ''\"\n (valueChange)=\"handleAltTextChange($event)\"\n extraClass=\"gn-ui-editor-textarea\"\n ></gn-ui-text-input>\n <div class=\"flex flex-row gap-2 mt-2\">\n <gn-ui-button\n type=\"gray\"\n (buttonClick)=\"handleDelete()\"\n data-cy=\"delete-image\"\n >\n <ng-icon class=\"me-1 text-primary\" name=\"iconoirBin\"></ng-icon>\n {{ 'input.image.delete' | translate }}\n </gn-ui-button>\n <gn-ui-button\n *ngIf=\"!showAltTextInput\"\n type=\"gray\"\n (buttonClick)=\"toggleAltTextInput()\"\n >\n <ng-icon name=\"iconoirPlus\" class=\"me-1 text-primary\"></ng-icon>\n {{ 'input.image.displayAltTextInput' | translate }}\n </gn-ui-button>\n </div>\n </div>\n</ng-template>\n\n<ng-template #withoutImage>\n <div class=\"w-full h-full flex flex-col gap-2\">\n <label\n gnUiFilesDrop\n class=\"flex-1 border-2 border-dashed rounded-lg p-6 flex flex-col items-center justify-center gap-4 transition-colors duration-100\"\n [ngClass]=\"{\n 'border-primary-lighter bg-primary-white': dragFilesOver,\n 'border-gray-300': !dragFilesOver,\n 'cursor-pointer hover:border-gray-500': !getIsActionBlocked(),\n 'cursor-not-allowed': disabled,\n }\"\n [attr.tabindex]=\"getIsActionBlocked() ? null : 0\"\n (keydown.enter)=\"fileInput.click()\"\n (dragFilesOver)=\"handleDragFilesOver($event)\"\n (dropFiles)=\"handleDropFiles($event)\"\n >\n <div\n class=\"w-14 h-14 rounded-md bg-gray-50 grid\"\n *ngIf=\"!isUploadInProgress && !imageFileError\"\n >\n <ng-icon\n *ngIf=\"!dragFilesOver\"\n class=\"place-self-center text-primary\"\n name=\"iconoirMediaImage\"\n ></ng-icon>\n <ng-icon\n *ngIf=\"dragFilesOver\"\n class=\"place-self-center text-primary\"\n name=\"iconoirFramePlusIn\"\n ></ng-icon>\n </div>\n\n <div\n *ngIf=\"isUploadInProgress && !imageFileError\"\n class=\"w-14 h-14 grid items-center justify-center relative\"\n >\n <div class=\"text-gray-100 absolute\">\n <mat-progress-spinner\n class=\"place-self-center\"\n [diameter]=\"56\"\n mode=\"determinate\"\n [value]=\"100\"\n ></mat-progress-spinner>\n </div>\n <div class=\"text-primary absolute\">\n <mat-progress-spinner\n class=\"place-self-center\"\n [diameter]=\"56\"\n mode=\"determinate\"\n [value]=\"uploadProgress\"\n ></mat-progress-spinner>\n </div>\n <span class=\"text-sm text-main font-bold\">{{ uploadProgress }}%</span>\n </div>\n\n <div class=\"w-14 h-14 rounded-md bg-gray-50 grid\" *ngIf=\"imageFileError\">\n <ng-icon\n name=\"iconoirMediaImageXmark\"\n class=\"place-self-center text-rose-500\"\n data-cy=\"imgErrorIcon\"\n ></ng-icon>\n </div>\n\n <div class=\"flex flex-col items-center gap-1\">\n <p class=\"font-medium\" data-cy=\"imgInputMsgPrimary\">\n {{ getPrimaryText() | translate }}\n </p>\n <p\n class=\"text-sm\"\n data-cy=\"imgInputMsgSecondary\"\n [class]=\"\n isUploadInProgress\n ? 'font-bold text-blue-500 cursor-pointer'\n : 'font-medium text-gray-500'\n \"\n (click)=\"handleSecondaryTextClick($event)\"\n >\n {{ getSecondaryText() | translate }}\n </p>\n </div>\n <input\n #fileInput\n accept=\"image/*\"\n type=\"file\"\n class=\"hidden\"\n (change)=\"handleFileInput($event)\"\n [disabled]=\"isUploadInProgress || disabled\"\n />\n </label>\n\n <div *ngIf=\"!showUrlInput\" class=\"flex-none mt-2\">\n <gn-ui-button\n data-cy=\"imgUrlBtn\"\n (buttonClick)=\"displayUrlInput()\"\n type=\"gray\"\n [disabled]=\"disabled\"\n [extraClass]=\"disabled && 'cursor-not-allowed'\"\n >\n <ng-icon class=\"me-1 text-primary\" name=\"iconoirLink\"></ng-icon>\n {{ 'input.image.displayUrlInput' | translate }}\n </gn-ui-button>\n </div>\n\n <gn-ui-url-input\n *ngIf=\"showUrlInput\"\n class=\"mt-3.5\"\n data-cy=\"imgUrlInput\"\n (uploadClick)=\"downloadUrl($event)\"\n [disabled]=\"isUploadInProgress || disabled\"\n >\n </gn-ui-url-input>\n </div>\n</ng-template>\n", styles: [":host{--gn-ui-button-padding: 8px 8px;--gn-ui-button-rounded: 8px}\n"] }]
|
|
29598
29114
|
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: i0.ChangeDetectorRef }], propDecorators: { maxSizeMB: [{
|
|
29599
29115
|
type: Input
|
|
29600
29116
|
}], previewUrl: [{
|
|
@@ -30270,7 +29786,7 @@ class ApplicationBannerComponent {
|
|
|
30270
29786
|
matWarning,
|
|
30271
29787
|
}),
|
|
30272
29788
|
provideNgIconsConfig({ size: '1.5em' }),
|
|
30273
|
-
], ngImport: i0, template: "<div\n *ngIf=\"message && bannerOpen\"\n class=\"absolute
|
|
29789
|
+
], ngImport: i0, template: "<div\n *ngIf=\"message && bannerOpen\"\n class=\"absolute left-0 right-0 text-wrap bg-white mt-4 max-h-24\"\n>\n <div\n class=\"flex flex-row py-2.5 px-5 gap-5 justify-start border max-h-20\"\n [ngClass]=\"classList\"\n >\n <div [ngClass]=\"message.length > 200 ? 'pt-5' : 'pt-1'\">\n <ng-icon [name]=\"icon\"></ng-icon>\n </div>\n <div class=\"flex flex-col justify-start gap-2.5\">\n <span *ngIf=\"title\" class=\"font-bold\">{{ title }}</span>\n <span class=\"font-medium max-w-2xl\" [innerHTML]=\"message\"></span>\n </div>\n <button\n *ngIf=\"closeEnabled\"\n class=\"self-start\"\n type=\"button\"\n (click)=\"closeMessage()\"\n >\n <ng-icon name=\"matCloseOutline\"> </ng-icon>\n </button>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
30274
29790
|
}
|
|
30275
29791
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApplicationBannerComponent, decorators: [{
|
|
30276
29792
|
type: Component,
|
|
@@ -30282,7 +29798,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
30282
29798
|
matWarning,
|
|
30283
29799
|
}),
|
|
30284
29800
|
provideNgIconsConfig({ size: '1.5em' }),
|
|
30285
|
-
], template: "<div\n *ngIf=\"message && bannerOpen\"\n class=\"absolute
|
|
29801
|
+
], template: "<div\n *ngIf=\"message && bannerOpen\"\n class=\"absolute left-0 right-0 text-wrap bg-white mt-4 max-h-24\"\n>\n <div\n class=\"flex flex-row py-2.5 px-5 gap-5 justify-start border max-h-20\"\n [ngClass]=\"classList\"\n >\n <div [ngClass]=\"message.length > 200 ? 'pt-5' : 'pt-1'\">\n <ng-icon [name]=\"icon\"></ng-icon>\n </div>\n <div class=\"flex flex-col justify-start gap-2.5\">\n <span *ngIf=\"title\" class=\"font-bold\">{{ title }}</span>\n <span class=\"font-medium max-w-2xl\" [innerHTML]=\"message\"></span>\n </div>\n <button\n *ngIf=\"closeEnabled\"\n class=\"self-start\"\n type=\"button\"\n (click)=\"closeMessage()\"\n >\n <ng-icon name=\"matCloseOutline\"> </ng-icon>\n </button>\n </div>\n</div>\n" }]
|
|
30286
29802
|
}], propDecorators: { message: [{
|
|
30287
29803
|
type: Input
|
|
30288
29804
|
}], title: [{
|
|
@@ -30580,6 +30096,7 @@ class ActionMenuComponent {
|
|
|
30580
30096
|
this.duplicate = new EventEmitter();
|
|
30581
30097
|
this.delete = new EventEmitter();
|
|
30582
30098
|
this.closeActionMenu = new EventEmitter();
|
|
30099
|
+
this.rollback = new EventEmitter();
|
|
30583
30100
|
this.sectionDisplayed = 'mainMenu';
|
|
30584
30101
|
}
|
|
30585
30102
|
openMenu() {
|
|
@@ -30590,11 +30107,16 @@ class ActionMenuComponent {
|
|
|
30590
30107
|
this.cdr.markForCheck();
|
|
30591
30108
|
}
|
|
30592
30109
|
displayDeleteMenu() {
|
|
30593
|
-
this.
|
|
30110
|
+
if (this.isDraftPage) {
|
|
30111
|
+
this.sectionDisplayed = 'rollbackMenu';
|
|
30112
|
+
}
|
|
30113
|
+
else {
|
|
30114
|
+
this.sectionDisplayed = 'deleteMenu';
|
|
30115
|
+
}
|
|
30594
30116
|
this.cdr.markForCheck();
|
|
30595
30117
|
}
|
|
30596
30118
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ActionMenuComponent, deps: [{ token: i1$b.MatDialog }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
30597
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ActionMenuComponent, isStandalone: true, selector: "gn-ui-action-menu", inputs: { canDuplicate: "canDuplicate", canDelete: "canDelete" }, outputs: { duplicate: "duplicate", delete: "delete", closeActionMenu: "closeActionMenu" }, viewQueries: [{ propertyName: "trigger", first: true, predicate: MatMenuTrigger, descendants: true }], ngImport: i0, template: "<ng-container [ngSwitch]=\"sectionDisplayed\">\n <ng-container *ngSwitchCase=\"'mainMenu'\">\n <div\n data-test=\"mainMenuSection\"\n class=\"mt-2 border border-gray-100 p-2 flex items-center bg-white shadow-2xl rounded-2xl\"\n >\n <ul class=\"flex flex-col gap-2 w-full\">\n <gn-ui-button\n type=\"light\"\n extraClass=\"flex flex-row items-center gap-2 w-full justify-start\"\n (buttonClick)=\"duplicate.emit()\"\n [disabled]=\"!canDuplicate\"\n data-test=\"record-menu-duplicate-button\"\n >\n <span *ngIf=\"canDuplicate\" translate>record.action.duplicate</span>\n <span *ngIf=\"!canDuplicate\" translate\n >record.action.duplicating</span\n ></gn-ui-button\n >\n <gn-ui-button\n type=\"light\"\n extraClass=\"flex flex-row items-center gap-2 w-full justify-start\"\n (buttonClick)=\"displayDeleteMenu()\"\n [disabled]=\"!canDelete\"\n data-test=\"record-menu-delete-button\"\n ><span translate>record.action.delete</span></gn-ui-button\n >\n </ul>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'deleteMenu'\">\n <div\n data-test=\"deleteMenuSection\"\n class=\"w-72 p-6 flex flex-col gap-3 mt-2 border border-gray-100 bg-white shadow-2xl rounded-2xl\"\n >\n <span class=\"text-lg font-bold text-center\">{{\n 'editor.record.delete.confirmation.title' | translate\n }}</span>\n <span class=\"text-center\">{{\n 'editor.record.delete.confirmation.message' | translate\n }}</span>\n <div class=\"flex flex-row gap-8 justify-center\">\n <gn-ui-button\n (buttonClick)=\"delete.emit()\"\n cdkFocusInitial\n type=\"primary\"\n data-cy=\"confirm-button\"\n [style.--gn-ui-button-width]=\"'100px'\"\n >{{\n 'editor.record.delete.confirmation.confirmText' | translate\n }}</gn-ui-button\n >\n <gn-ui-button\n [style.--gn-ui-button-width]=\"'100px'\"\n (buttonClick)=\"closeActionMenu.emit()\"\n >{{\n 'editor.record.delete.confirmation.cancelText' | translate\n }}</gn-ui-button\n >\n </div>\n </div>\n </ng-container>\n</ng-container>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1$2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "ngmodule", type: MatDialogModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }] }); }
|
|
30119
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ActionMenuComponent, isStandalone: true, selector: "gn-ui-action-menu", inputs: { canDuplicate: "canDuplicate", canDelete: "canDelete", isDraftPage: "isDraftPage" }, outputs: { duplicate: "duplicate", delete: "delete", closeActionMenu: "closeActionMenu", rollback: "rollback" }, viewQueries: [{ propertyName: "trigger", first: true, predicate: MatMenuTrigger, descendants: true }], ngImport: i0, template: "<ng-container [ngSwitch]=\"sectionDisplayed\">\n <ng-container *ngSwitchCase=\"'mainMenu'\">\n <div\n data-test=\"mainMenuSection\"\n class=\"mt-2 border border-gray-100 p-2 flex items-center bg-white shadow-2xl rounded-2xl\"\n >\n <ul class=\"flex flex-col gap-2 w-full\">\n <gn-ui-button\n *ngIf=\"!isDraftPage\"\n type=\"light\"\n extraClass=\"flex flex-row items-center gap-2 w-full justify-start\"\n (buttonClick)=\"duplicate.emit()\"\n [disabled]=\"!canDuplicate\"\n data-test=\"record-menu-duplicate-button\"\n >\n <span *ngIf=\"canDuplicate\" translate>record.action.duplicate</span>\n <span *ngIf=\"!canDuplicate\" translate\n >record.action.duplicating</span\n ></gn-ui-button\n >\n <gn-ui-button\n type=\"light\"\n extraClass=\"flex flex-row items-center gap-2 w-full justify-start\"\n (buttonClick)=\"displayDeleteMenu()\"\n [disabled]=\"!canDelete\"\n data-test=\"record-menu-delete-button\"\n ><span *ngIf=\"!isDraftPage\" translate>record.action.delete</span>\n <span *ngIf=\"isDraftPage\" translate\n >record.action.rollback</span\n ></gn-ui-button\n >\n </ul>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'deleteMenu'\">\n <div\n data-test=\"deleteMenuSection\"\n class=\"w-72 p-6 flex flex-col gap-3 mt-2 border border-gray-100 bg-white shadow-2xl rounded-2xl\"\n >\n <span class=\"text-lg font-bold text-center\">{{\n 'editor.record.delete.confirmation.title' | translate\n }}</span>\n <span class=\"text-center\">{{\n 'editor.record.delete.confirmation.message' | translate\n }}</span>\n <div class=\"flex flex-row gap-8 justify-center\">\n <gn-ui-button\n (buttonClick)=\"delete.emit()\"\n cdkFocusInitial\n type=\"primary\"\n data-cy=\"confirm-button\"\n [style.--gn-ui-button-width]=\"'100px'\"\n >{{\n 'editor.record.delete.confirmation.confirmText' | translate\n }}</gn-ui-button\n >\n <gn-ui-button\n [style.--gn-ui-button-width]=\"'100px'\"\n (buttonClick)=\"closeActionMenu.emit()\"\n >{{\n 'editor.record.delete.confirmation.cancelText' | translate\n }}</gn-ui-button\n >\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'rollbackMenu'\">\n <div\n data-test=\"rollbackMenuSection\"\n class=\"w-80 p-6 flex flex-col gap-3 mt-2 border border-gray-100 bg-white shadow-2xl rounded-2xl\"\n >\n <span class=\"text-lg font-bold text-center\">{{\n 'editor.record.undo.confirmation.title' | translate\n }}</span>\n <span class=\"text-center\">{{\n 'editor.record.undo.confirmation.message' | translate\n }}</span>\n <div class=\"flex flex-row gap-8 justify-center\">\n <gn-ui-button\n (buttonClick)=\"rollback.emit()\"\n cdkFocusInitial\n type=\"primary\"\n data-cy=\"confirm-button\"\n [style.--gn-ui-button-width]=\"'120px'\"\n >{{\n 'editor.record.undo.confirmation.confirmText' | translate\n }}</gn-ui-button\n >\n <gn-ui-button\n [style.--gn-ui-button-width]=\"'120px'\"\n (buttonClick)=\"closeActionMenu.emit()\"\n >{{\n 'editor.record.undo.confirmation.cancelText' | translate\n }}</gn-ui-button\n >\n </div>\n </div>\n </ng-container>\n</ng-container>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1$2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "ngmodule", type: MatDialogModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }] }); }
|
|
30598
30120
|
}
|
|
30599
30121
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ActionMenuComponent, decorators: [{
|
|
30600
30122
|
type: Component,
|
|
@@ -30605,17 +30127,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
30605
30127
|
MatDialogModule,
|
|
30606
30128
|
ConfirmationDialogComponent,
|
|
30607
30129
|
TranslateModule,
|
|
30608
|
-
], template: "<ng-container [ngSwitch]=\"sectionDisplayed\">\n <ng-container *ngSwitchCase=\"'mainMenu'\">\n <div\n data-test=\"mainMenuSection\"\n class=\"mt-2 border border-gray-100 p-2 flex items-center bg-white shadow-2xl rounded-2xl\"\n >\n <ul class=\"flex flex-col gap-2 w-full\">\n <gn-ui-button\n type=\"light\"\n extraClass=\"flex flex-row items-center gap-2 w-full justify-start\"\n (buttonClick)=\"duplicate.emit()\"\n [disabled]=\"!canDuplicate\"\n data-test=\"record-menu-duplicate-button\"\n >\n <span *ngIf=\"canDuplicate\" translate>record.action.duplicate</span>\n <span *ngIf=\"!canDuplicate\" translate\n >record.action.duplicating</span\n ></gn-ui-button\n >\n <gn-ui-button\n type=\"light\"\n extraClass=\"flex flex-row items-center gap-2 w-full justify-start\"\n (buttonClick)=\"displayDeleteMenu()\"\n [disabled]=\"!canDelete\"\n data-test=\"record-menu-delete-button\"\n ><span translate>record.action.delete</span></gn-ui-button\n >\n </ul>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'deleteMenu'\">\n <div\n data-test=\"deleteMenuSection\"\n class=\"w-72 p-6 flex flex-col gap-3 mt-2 border border-gray-100 bg-white shadow-2xl rounded-2xl\"\n >\n <span class=\"text-lg font-bold text-center\">{{\n 'editor.record.delete.confirmation.title' | translate\n }}</span>\n <span class=\"text-center\">{{\n 'editor.record.delete.confirmation.message' | translate\n }}</span>\n <div class=\"flex flex-row gap-8 justify-center\">\n <gn-ui-button\n (buttonClick)=\"delete.emit()\"\n cdkFocusInitial\n type=\"primary\"\n data-cy=\"confirm-button\"\n [style.--gn-ui-button-width]=\"'100px'\"\n >{{\n 'editor.record.delete.confirmation.confirmText' | translate\n }}</gn-ui-button\n >\n <gn-ui-button\n [style.--gn-ui-button-width]=\"'100px'\"\n (buttonClick)=\"closeActionMenu.emit()\"\n >{{\n 'editor.record.delete.confirmation.cancelText' | translate\n }}</gn-ui-button\n >\n </div>\n </div>\n </ng-container>\n</ng-container>\n" }]
|
|
30130
|
+
], template: "<ng-container [ngSwitch]=\"sectionDisplayed\">\n <ng-container *ngSwitchCase=\"'mainMenu'\">\n <div\n data-test=\"mainMenuSection\"\n class=\"mt-2 border border-gray-100 p-2 flex items-center bg-white shadow-2xl rounded-2xl\"\n >\n <ul class=\"flex flex-col gap-2 w-full\">\n <gn-ui-button\n *ngIf=\"!isDraftPage\"\n type=\"light\"\n extraClass=\"flex flex-row items-center gap-2 w-full justify-start\"\n (buttonClick)=\"duplicate.emit()\"\n [disabled]=\"!canDuplicate\"\n data-test=\"record-menu-duplicate-button\"\n >\n <span *ngIf=\"canDuplicate\" translate>record.action.duplicate</span>\n <span *ngIf=\"!canDuplicate\" translate\n >record.action.duplicating</span\n ></gn-ui-button\n >\n <gn-ui-button\n type=\"light\"\n extraClass=\"flex flex-row items-center gap-2 w-full justify-start\"\n (buttonClick)=\"displayDeleteMenu()\"\n [disabled]=\"!canDelete\"\n data-test=\"record-menu-delete-button\"\n ><span *ngIf=\"!isDraftPage\" translate>record.action.delete</span>\n <span *ngIf=\"isDraftPage\" translate\n >record.action.rollback</span\n ></gn-ui-button\n >\n </ul>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'deleteMenu'\">\n <div\n data-test=\"deleteMenuSection\"\n class=\"w-72 p-6 flex flex-col gap-3 mt-2 border border-gray-100 bg-white shadow-2xl rounded-2xl\"\n >\n <span class=\"text-lg font-bold text-center\">{{\n 'editor.record.delete.confirmation.title' | translate\n }}</span>\n <span class=\"text-center\">{{\n 'editor.record.delete.confirmation.message' | translate\n }}</span>\n <div class=\"flex flex-row gap-8 justify-center\">\n <gn-ui-button\n (buttonClick)=\"delete.emit()\"\n cdkFocusInitial\n type=\"primary\"\n data-cy=\"confirm-button\"\n [style.--gn-ui-button-width]=\"'100px'\"\n >{{\n 'editor.record.delete.confirmation.confirmText' | translate\n }}</gn-ui-button\n >\n <gn-ui-button\n [style.--gn-ui-button-width]=\"'100px'\"\n (buttonClick)=\"closeActionMenu.emit()\"\n >{{\n 'editor.record.delete.confirmation.cancelText' | translate\n }}</gn-ui-button\n >\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'rollbackMenu'\">\n <div\n data-test=\"rollbackMenuSection\"\n class=\"w-80 p-6 flex flex-col gap-3 mt-2 border border-gray-100 bg-white shadow-2xl rounded-2xl\"\n >\n <span class=\"text-lg font-bold text-center\">{{\n 'editor.record.undo.confirmation.title' | translate\n }}</span>\n <span class=\"text-center\">{{\n 'editor.record.undo.confirmation.message' | translate\n }}</span>\n <div class=\"flex flex-row gap-8 justify-center\">\n <gn-ui-button\n (buttonClick)=\"rollback.emit()\"\n cdkFocusInitial\n type=\"primary\"\n data-cy=\"confirm-button\"\n [style.--gn-ui-button-width]=\"'120px'\"\n >{{\n 'editor.record.undo.confirmation.confirmText' | translate\n }}</gn-ui-button\n >\n <gn-ui-button\n [style.--gn-ui-button-width]=\"'120px'\"\n (buttonClick)=\"closeActionMenu.emit()\"\n >{{\n 'editor.record.undo.confirmation.cancelText' | translate\n }}</gn-ui-button\n >\n </div>\n </div>\n </ng-container>\n</ng-container>\n" }]
|
|
30609
30131
|
}], ctorParameters: () => [{ type: i1$b.MatDialog }, { type: i0.ChangeDetectorRef }], propDecorators: { canDuplicate: [{
|
|
30610
30132
|
type: Input
|
|
30611
30133
|
}], canDelete: [{
|
|
30612
30134
|
type: Input
|
|
30135
|
+
}], isDraftPage: [{
|
|
30136
|
+
type: Input
|
|
30613
30137
|
}], duplicate: [{
|
|
30614
30138
|
type: Output
|
|
30615
30139
|
}], delete: [{
|
|
30616
30140
|
type: Output
|
|
30617
30141
|
}], closeActionMenu: [{
|
|
30618
30142
|
type: Output
|
|
30143
|
+
}], rollback: [{
|
|
30144
|
+
type: Output
|
|
30619
30145
|
}], trigger: [{
|
|
30620
30146
|
type: ViewChild,
|
|
30621
30147
|
args: [MatMenuTrigger]
|
|
@@ -30640,6 +30166,7 @@ class ResultsTableComponent {
|
|
|
30640
30166
|
this.recordClick = new EventEmitter();
|
|
30641
30167
|
this.duplicateRecord = new EventEmitter();
|
|
30642
30168
|
this.deleteRecord = new EventEmitter();
|
|
30169
|
+
this.rollbackDraft = new EventEmitter();
|
|
30643
30170
|
this.recordsSelectedChange = new EventEmitter();
|
|
30644
30171
|
this.isActionMenuOpen = false;
|
|
30645
30172
|
}
|
|
@@ -30718,6 +30245,10 @@ class ResultsTableComponent {
|
|
|
30718
30245
|
this.deleteRecord.emit(item);
|
|
30719
30246
|
this.closeActionMenu();
|
|
30720
30247
|
}
|
|
30248
|
+
handleRollback(item) {
|
|
30249
|
+
this.rollbackDraft.emit(item);
|
|
30250
|
+
this.closeActionMenu();
|
|
30251
|
+
}
|
|
30721
30252
|
setSortBy(col, order) {
|
|
30722
30253
|
this.sortByChange.emit([col, order]);
|
|
30723
30254
|
}
|
|
@@ -30742,7 +30273,7 @@ class ResultsTableComponent {
|
|
|
30742
30273
|
this.recordsSelectedChange.emit([[record], selected]);
|
|
30743
30274
|
}
|
|
30744
30275
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ResultsTableComponent, deps: [{ token: i1$9.Overlay }, { token: i0.ViewContainerRef }, { token: i0.ChangeDetectorRef }, { token: DateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
30745
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ResultsTableComponent, isStandalone: true, selector: "gn-ui-results-table", inputs: { records: "records", selectedRecordsIdentifiers: "selectedRecordsIdentifiers", sortOrder: "sortOrder", hasDraft: "hasDraft", canDuplicate: "canDuplicate", canDelete: "canDelete", isDraftPage: "isDraftPage", isDuplicating: "isDuplicating" }, outputs: { sortByChange: "sortByChange", recordClick: "recordClick", duplicateRecord: "duplicateRecord", deleteRecord: "deleteRecord", recordsSelectedChange: "recordsSelectedChange" }, providers: [provideIcons({ iconoirUser, iconoirLock, matMoreVert })], viewQueries: [{ propertyName: "actionMenuButtons", predicate: ["actionMenuButton"], descendants: true, read: ElementRef }], ngImport: i0, template: "<gn-ui-interactive-table\n [items]=\"records\"\n [isDraftPage]=\"isDraftPage\"\n (itemClick)=\"handleRecordClick($event)\"\n>\n <!-- SELECTED COLUMN -->\n <gn-ui-interactive-table-column [width]=\"'3rem'\">\n <ng-template #cell let-item let-i=\"index\">\n <ng-icon\n name=\"iconoirLock\"\n class=\"text-purple\"\n *ngIf=\"!item.extras?.edit && !isDraftPage\"\n ></ng-icon>\n <gn-ui-checkbox\n *ngIf=\"item.extras?.edit || isDraftPage\"\n [checked]=\"isChecked(item)\"\n (changed)=\"handleRecordSelectedChange($event, item)\"\n class=\"-m-2\"\n type=\"default\"\n ></gn-ui-checkbox>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- TITLE COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [grow]=\"true\"\n [activeSort]=\"isSortedBy('resourceTitleObject.default.keyword')\"\n (sortChange)=\"setSortBy('resourceTitleObject.default.keyword', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.title</span>\n </ng-template>\n <ng-template #cell let-item>\n <div class=\"flex flex-row items-center gap-2 max-w-full font-semibold\">\n <span data-cy=\"resultItemTitle\" class=\"overflow-hidden text-ellipsis\">{{\n item.title\n }}</span>\n <gn-ui-badge\n *ngIf=\"hasDraft(item)\"\n [style.--gn-ui-badge-padding]=\"'0.2em 0.6em'\"\n [style.--gn-ui-badge-text-size]=\"'12px'\"\n [style.--gn-ui-badge-text-color]=\"'#3d2006'\"\n [style.--gn-ui-badge-background-color]=\"'#ffbc7b'\"\n [style.--gn-ui-badge-rounded]=\"'4px'\"\n >\n <span translate>dashboard.records.hasDraft</span>\n </gn-ui-badge>\n </div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- FORMATS COLUMN -->\n <gn-ui-interactive-table-column [width]=\"'9rem'\">\n <ng-template #header>\n <span translate>record.metadata.formats</span>\n </ng-template>\n <ng-template #cell let-item>\n <div\n class=\"flex justify-start items-center gap-2 font-medium\"\n *ngIf=\"getRecordFormats(item) as formats\"\n [title]=\"formats.join(', ')\"\n >\n <span\n class=\"badge-btn min-w-[45px] text-xs text-gray-900 px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[0])\"\n *ngIf=\"formats[0]\"\n >\n {{ formats[0] }}\n </span>\n <span\n class=\"badge-btn min-w-[45px] text-xs text-gray-900 px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[1])\"\n *ngIf=\"formats[1]\"\n >\n {{ formats[1] }}\n </span>\n <div class=\"shrink-0 text-xs\" *ngIf=\"formats.slice(2).length > 0\">\n <span>+{{ formats.slice(2).length }}</span>\n </div>\n </div>\n <div *ngIf=\"!getRecordFormats(item)\"></div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- OWNER COLUMN -->\n <gn-ui-interactive-table-column\n [width]=\"'12rem'\"\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('recordOwner')\"\n (sortChange)=\"setSortBy('recordOwner', $event)\"\n >\n <ng-template #header>\n <span translate>search.filters.user</span>\n </ng-template>\n <ng-template #cell let-item>\n <ng-icon name=\"iconoirUser\" size=\"16px\"></ng-icon>\n <span data-cy=\"ownerInfo\" class=\"text-xs\">{{\n formatUserInfo(item.extras?.ownerInfo)\n }}</span>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- STATUS COLUMN -->\n <gn-ui-interactive-table-column [width]=\"'6rem'\">\n <ng-template #header>\n <span translate>record.metadata.status</span>\n </ng-template>\n <ng-template #cell let-item>\n <span class=\"text-xs\">\n {{\n (item.extras?.['isPublishedToAll']\n ? 'record.metadata.status.published'\n : 'record.metadata.status.notPublished'\n ) | translate\n }}</span\n >\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- UPDATE DATE COLUMN -->\n <gn-ui-interactive-table-column\n [width]=\"'8rem'\"\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('changeDate')\"\n (sortChange)=\"setSortBy('changeDate', $event)\"\n >\n <ng-template #header>\n <span translate>search.filters.changeDate</span>\n </ng-template>\n <ng-template #cell let-item>\n <div class=\"flex text-left w-full text-xs\">\n {{\n item.extras?.['isPublishedToAll']\n ? dateToString(item.recordUpdated)\n : '-'\n }}\n </div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- ACTION MENU COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header> </ng-template>\n <ng-template #cell let-item>\n <gn-ui-button\n cdkOverlayOrigin\n #actionMenuButton\n (buttonClick)=\"openActionMenu(item, template)\"\n type=\"light\"\n data-test=\"record-menu-button\"\n [disabled]=\"!item.extras?.edit && !isDraftPage\"\n >\n <ng-icon\n [ngClass]=\"{\n 'text-purple-light': !item.extras?.edit && !isDraftPage,\n }\"\n name=\"matMoreVert\"\n ></ng-icon>\n </gn-ui-button>\n <ng-template #template>\n <gn-ui-action-menu\n [canDuplicate]=\"canDuplicate(item) && !isDuplicating\"\n [canDelete]=\"canDelete(item)\"\n (duplicate)=\"handleDuplicate(item)\"\n (delete)=\"handleDelete(item)\"\n (closeActionMenu)=\"closeActionMenu()\"\n >\n </gn-ui-action-menu>\n </ng-template>\n </ng-template>\n </gn-ui-interactive-table-column>\n</gn-ui-interactive-table>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: UiInputsModule }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "component", type: CheckboxComponent, selector: "gn-ui-checkbox", inputs: ["type", "checked", "indeterminate"], outputs: ["changed"] }, { kind: "component", type: BadgeComponent, selector: "gn-ui-badge", inputs: ["clickable", "removable"], outputs: ["badgeRemoveClicked"] }, { kind: "component", type: InteractiveTableComponent, selector: "gn-ui-interactive-table", inputs: ["items", "isDraftPage"], outputs: ["itemClick"] }, { kind: "component", type: InteractiveTableColumnComponent, selector: "gn-ui-interactive-table-column", inputs: ["grow", "width", "sortable", "activeSort"], outputs: ["sortChange"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: ActionMenuComponent, selector: "gn-ui-action-menu", inputs: ["canDuplicate", "canDelete"], outputs: ["duplicate", "delete", "closeActionMenu"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "directive", type: CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }] }); }
|
|
30276
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ResultsTableComponent, isStandalone: true, selector: "gn-ui-results-table", inputs: { records: "records", selectedRecordsIdentifiers: "selectedRecordsIdentifiers", sortOrder: "sortOrder", hasDraft: "hasDraft", canDuplicate: "canDuplicate", canDelete: "canDelete", isDraftPage: "isDraftPage", isDuplicating: "isDuplicating" }, outputs: { sortByChange: "sortByChange", recordClick: "recordClick", duplicateRecord: "duplicateRecord", deleteRecord: "deleteRecord", rollbackDraft: "rollbackDraft", recordsSelectedChange: "recordsSelectedChange" }, providers: [provideIcons({ iconoirUser, iconoirLock, matMoreVert })], viewQueries: [{ propertyName: "actionMenuButtons", predicate: ["actionMenuButton"], descendants: true, read: ElementRef }], ngImport: i0, template: "<gn-ui-interactive-table\n [items]=\"records\"\n [isDraftPage]=\"isDraftPage\"\n (itemClick)=\"handleRecordClick($event)\"\n>\n <!-- SELECTED COLUMN -->\n <gn-ui-interactive-table-column [width]=\"'3rem'\">\n <ng-template #cell let-item let-i=\"index\">\n <ng-icon\n name=\"iconoirLock\"\n class=\"text-purple\"\n *ngIf=\"!item.extras?.edit && !isDraftPage\"\n ></ng-icon>\n <gn-ui-checkbox\n *ngIf=\"item.extras?.edit || isDraftPage\"\n [checked]=\"isChecked(item)\"\n (changed)=\"handleRecordSelectedChange($event, item)\"\n class=\"-m-2\"\n type=\"default\"\n ></gn-ui-checkbox>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- TITLE COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [grow]=\"true\"\n [activeSort]=\"isSortedBy('resourceTitleObject.default.keyword')\"\n (sortChange)=\"setSortBy('resourceTitleObject.default.keyword', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.title</span>\n </ng-template>\n <ng-template #cell let-item>\n <div class=\"flex flex-row items-center gap-2 max-w-full font-semibold\">\n <span data-cy=\"resultItemTitle\" class=\"overflow-hidden text-ellipsis\">{{\n item.title\n }}</span>\n <gn-ui-badge\n *ngIf=\"hasDraft(item)\"\n [style.--gn-ui-badge-padding]=\"'0.2em 0.6em'\"\n [style.--gn-ui-badge-text-size]=\"'12px'\"\n [style.--gn-ui-badge-text-color]=\"'#3d2006'\"\n [style.--gn-ui-badge-background-color]=\"'#ffbc7b'\"\n [style.--gn-ui-badge-rounded]=\"'4px'\"\n >\n <span translate>dashboard.records.hasDraft</span>\n </gn-ui-badge>\n </div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- FORMATS COLUMN -->\n <gn-ui-interactive-table-column [width]=\"'9rem'\">\n <ng-template #header>\n <span translate>record.metadata.formats</span>\n </ng-template>\n <ng-template #cell let-item>\n <div\n class=\"flex justify-start items-center gap-2 font-medium\"\n *ngIf=\"getRecordFormats(item) as formats\"\n [title]=\"formats.join(', ')\"\n >\n <span\n class=\"badge-btn min-w-[45px] text-xs text-gray-900 px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[0])\"\n *ngIf=\"formats[0]\"\n >\n {{ formats[0] }}\n </span>\n <span\n class=\"badge-btn min-w-[45px] text-xs text-gray-900 px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[1])\"\n *ngIf=\"formats[1]\"\n >\n {{ formats[1] }}\n </span>\n <div class=\"shrink-0 text-xs\" *ngIf=\"formats.slice(2).length > 0\">\n <span>+{{ formats.slice(2).length }}</span>\n </div>\n </div>\n <div *ngIf=\"!getRecordFormats(item)\"></div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- OWNER COLUMN -->\n <gn-ui-interactive-table-column\n [width]=\"'12rem'\"\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('recordOwner')\"\n (sortChange)=\"setSortBy('recordOwner', $event)\"\n >\n <ng-template #header>\n <span translate>search.filters.user</span>\n </ng-template>\n <ng-template #cell let-item>\n <ng-icon name=\"iconoirUser\" size=\"16px\"></ng-icon>\n <span data-cy=\"ownerInfo\" class=\"text-xs\">{{\n formatUserInfo(item.extras?.ownerInfo)\n }}</span>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- STATUS COLUMN -->\n <gn-ui-interactive-table-column [width]=\"'6rem'\">\n <ng-template #header>\n <span translate>record.metadata.status</span>\n </ng-template>\n <ng-template #cell let-item>\n <span class=\"text-xs\">\n {{\n (item.extras?.['isPublishedToAll']\n ? 'record.metadata.status.published'\n : 'record.metadata.status.notPublished'\n ) | translate\n }}</span\n >\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- UPDATE DATE COLUMN -->\n <gn-ui-interactive-table-column\n [width]=\"'8rem'\"\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('changeDate')\"\n (sortChange)=\"setSortBy('changeDate', $event)\"\n >\n <ng-template #header>\n <span translate>search.filters.changeDate</span>\n </ng-template>\n <ng-template #cell let-item>\n <div class=\"flex text-left w-full text-xs\">\n {{\n item.extras?.['isPublishedToAll']\n ? dateToString(item.recordUpdated)\n : '-'\n }}\n </div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- ACTION MENU COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header> </ng-template>\n <ng-template #cell let-item>\n <gn-ui-button\n cdkOverlayOrigin\n #actionMenuButton\n (buttonClick)=\"openActionMenu(item, template)\"\n type=\"light\"\n data-test=\"record-menu-button\"\n [disabled]=\"!item.extras?.edit && !isDraftPage\"\n >\n <ng-icon\n [ngClass]=\"{\n 'text-purple-light': !item.extras?.edit && !isDraftPage,\n }\"\n name=\"matMoreVert\"\n ></ng-icon>\n </gn-ui-button>\n <ng-template #template>\n <gn-ui-action-menu\n [canDuplicate]=\"canDuplicate(item) && !isDuplicating\"\n [canDelete]=\"canDelete(item)\"\n [isDraftPage]=\"isDraftPage\"\n (duplicate)=\"handleDuplicate(item)\"\n (delete)=\"handleDelete(item)\"\n (closeActionMenu)=\"closeActionMenu()\"\n (rollback)=\"handleRollback(item)\"\n >\n </gn-ui-action-menu>\n </ng-template>\n </ng-template>\n </gn-ui-interactive-table-column>\n</gn-ui-interactive-table>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: UiInputsModule }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "component", type: CheckboxComponent, selector: "gn-ui-checkbox", inputs: ["type", "checked", "indeterminate"], outputs: ["changed"] }, { kind: "component", type: BadgeComponent, selector: "gn-ui-badge", inputs: ["clickable", "removable"], outputs: ["badgeRemoveClicked"] }, { kind: "component", type: InteractiveTableComponent, selector: "gn-ui-interactive-table", inputs: ["items", "isDraftPage"], outputs: ["itemClick"] }, { kind: "component", type: InteractiveTableColumnComponent, selector: "gn-ui-interactive-table-column", inputs: ["grow", "width", "sortable", "activeSort"], outputs: ["sortChange"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: ActionMenuComponent, selector: "gn-ui-action-menu", inputs: ["canDuplicate", "canDelete", "isDraftPage"], outputs: ["duplicate", "delete", "closeActionMenu", "rollback"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "directive", type: CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }] }); }
|
|
30746
30277
|
}
|
|
30747
30278
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ResultsTableComponent, decorators: [{
|
|
30748
30279
|
type: Component,
|
|
@@ -30756,7 +30287,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
30756
30287
|
ActionMenuComponent,
|
|
30757
30288
|
NgIconComponent,
|
|
30758
30289
|
CdkOverlayOrigin,
|
|
30759
|
-
], providers: [provideIcons({ iconoirUser, iconoirLock, matMoreVert })], template: "<gn-ui-interactive-table\n [items]=\"records\"\n [isDraftPage]=\"isDraftPage\"\n (itemClick)=\"handleRecordClick($event)\"\n>\n <!-- SELECTED COLUMN -->\n <gn-ui-interactive-table-column [width]=\"'3rem'\">\n <ng-template #cell let-item let-i=\"index\">\n <ng-icon\n name=\"iconoirLock\"\n class=\"text-purple\"\n *ngIf=\"!item.extras?.edit && !isDraftPage\"\n ></ng-icon>\n <gn-ui-checkbox\n *ngIf=\"item.extras?.edit || isDraftPage\"\n [checked]=\"isChecked(item)\"\n (changed)=\"handleRecordSelectedChange($event, item)\"\n class=\"-m-2\"\n type=\"default\"\n ></gn-ui-checkbox>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- TITLE COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [grow]=\"true\"\n [activeSort]=\"isSortedBy('resourceTitleObject.default.keyword')\"\n (sortChange)=\"setSortBy('resourceTitleObject.default.keyword', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.title</span>\n </ng-template>\n <ng-template #cell let-item>\n <div class=\"flex flex-row items-center gap-2 max-w-full font-semibold\">\n <span data-cy=\"resultItemTitle\" class=\"overflow-hidden text-ellipsis\">{{\n item.title\n }}</span>\n <gn-ui-badge\n *ngIf=\"hasDraft(item)\"\n [style.--gn-ui-badge-padding]=\"'0.2em 0.6em'\"\n [style.--gn-ui-badge-text-size]=\"'12px'\"\n [style.--gn-ui-badge-text-color]=\"'#3d2006'\"\n [style.--gn-ui-badge-background-color]=\"'#ffbc7b'\"\n [style.--gn-ui-badge-rounded]=\"'4px'\"\n >\n <span translate>dashboard.records.hasDraft</span>\n </gn-ui-badge>\n </div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- FORMATS COLUMN -->\n <gn-ui-interactive-table-column [width]=\"'9rem'\">\n <ng-template #header>\n <span translate>record.metadata.formats</span>\n </ng-template>\n <ng-template #cell let-item>\n <div\n class=\"flex justify-start items-center gap-2 font-medium\"\n *ngIf=\"getRecordFormats(item) as formats\"\n [title]=\"formats.join(', ')\"\n >\n <span\n class=\"badge-btn min-w-[45px] text-xs text-gray-900 px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[0])\"\n *ngIf=\"formats[0]\"\n >\n {{ formats[0] }}\n </span>\n <span\n class=\"badge-btn min-w-[45px] text-xs text-gray-900 px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[1])\"\n *ngIf=\"formats[1]\"\n >\n {{ formats[1] }}\n </span>\n <div class=\"shrink-0 text-xs\" *ngIf=\"formats.slice(2).length > 0\">\n <span>+{{ formats.slice(2).length }}</span>\n </div>\n </div>\n <div *ngIf=\"!getRecordFormats(item)\"></div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- OWNER COLUMN -->\n <gn-ui-interactive-table-column\n [width]=\"'12rem'\"\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('recordOwner')\"\n (sortChange)=\"setSortBy('recordOwner', $event)\"\n >\n <ng-template #header>\n <span translate>search.filters.user</span>\n </ng-template>\n <ng-template #cell let-item>\n <ng-icon name=\"iconoirUser\" size=\"16px\"></ng-icon>\n <span data-cy=\"ownerInfo\" class=\"text-xs\">{{\n formatUserInfo(item.extras?.ownerInfo)\n }}</span>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- STATUS COLUMN -->\n <gn-ui-interactive-table-column [width]=\"'6rem'\">\n <ng-template #header>\n <span translate>record.metadata.status</span>\n </ng-template>\n <ng-template #cell let-item>\n <span class=\"text-xs\">\n {{\n (item.extras?.['isPublishedToAll']\n ? 'record.metadata.status.published'\n : 'record.metadata.status.notPublished'\n ) | translate\n }}</span\n >\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- UPDATE DATE COLUMN -->\n <gn-ui-interactive-table-column\n [width]=\"'8rem'\"\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('changeDate')\"\n (sortChange)=\"setSortBy('changeDate', $event)\"\n >\n <ng-template #header>\n <span translate>search.filters.changeDate</span>\n </ng-template>\n <ng-template #cell let-item>\n <div class=\"flex text-left w-full text-xs\">\n {{\n item.extras?.['isPublishedToAll']\n ? dateToString(item.recordUpdated)\n : '-'\n }}\n </div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- ACTION MENU COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header> </ng-template>\n <ng-template #cell let-item>\n <gn-ui-button\n cdkOverlayOrigin\n #actionMenuButton\n (buttonClick)=\"openActionMenu(item, template)\"\n type=\"light\"\n data-test=\"record-menu-button\"\n [disabled]=\"!item.extras?.edit && !isDraftPage\"\n >\n <ng-icon\n [ngClass]=\"{\n 'text-purple-light': !item.extras?.edit && !isDraftPage,\n }\"\n name=\"matMoreVert\"\n ></ng-icon>\n </gn-ui-button>\n <ng-template #template>\n <gn-ui-action-menu\n [canDuplicate]=\"canDuplicate(item) && !isDuplicating\"\n [canDelete]=\"canDelete(item)\"\n (duplicate)=\"handleDuplicate(item)\"\n (delete)=\"handleDelete(item)\"\n (closeActionMenu)=\"closeActionMenu()\"\n >\n </gn-ui-action-menu>\n </ng-template>\n </ng-template>\n </gn-ui-interactive-table-column>\n</gn-ui-interactive-table>\n" }]
|
|
30290
|
+
], providers: [provideIcons({ iconoirUser, iconoirLock, matMoreVert })], template: "<gn-ui-interactive-table\n [items]=\"records\"\n [isDraftPage]=\"isDraftPage\"\n (itemClick)=\"handleRecordClick($event)\"\n>\n <!-- SELECTED COLUMN -->\n <gn-ui-interactive-table-column [width]=\"'3rem'\">\n <ng-template #cell let-item let-i=\"index\">\n <ng-icon\n name=\"iconoirLock\"\n class=\"text-purple\"\n *ngIf=\"!item.extras?.edit && !isDraftPage\"\n ></ng-icon>\n <gn-ui-checkbox\n *ngIf=\"item.extras?.edit || isDraftPage\"\n [checked]=\"isChecked(item)\"\n (changed)=\"handleRecordSelectedChange($event, item)\"\n class=\"-m-2\"\n type=\"default\"\n ></gn-ui-checkbox>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- TITLE COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [grow]=\"true\"\n [activeSort]=\"isSortedBy('resourceTitleObject.default.keyword')\"\n (sortChange)=\"setSortBy('resourceTitleObject.default.keyword', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.title</span>\n </ng-template>\n <ng-template #cell let-item>\n <div class=\"flex flex-row items-center gap-2 max-w-full font-semibold\">\n <span data-cy=\"resultItemTitle\" class=\"overflow-hidden text-ellipsis\">{{\n item.title\n }}</span>\n <gn-ui-badge\n *ngIf=\"hasDraft(item)\"\n [style.--gn-ui-badge-padding]=\"'0.2em 0.6em'\"\n [style.--gn-ui-badge-text-size]=\"'12px'\"\n [style.--gn-ui-badge-text-color]=\"'#3d2006'\"\n [style.--gn-ui-badge-background-color]=\"'#ffbc7b'\"\n [style.--gn-ui-badge-rounded]=\"'4px'\"\n >\n <span translate>dashboard.records.hasDraft</span>\n </gn-ui-badge>\n </div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- FORMATS COLUMN -->\n <gn-ui-interactive-table-column [width]=\"'9rem'\">\n <ng-template #header>\n <span translate>record.metadata.formats</span>\n </ng-template>\n <ng-template #cell let-item>\n <div\n class=\"flex justify-start items-center gap-2 font-medium\"\n *ngIf=\"getRecordFormats(item) as formats\"\n [title]=\"formats.join(', ')\"\n >\n <span\n class=\"badge-btn min-w-[45px] text-xs text-gray-900 px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[0])\"\n *ngIf=\"formats[0]\"\n >\n {{ formats[0] }}\n </span>\n <span\n class=\"badge-btn min-w-[45px] text-xs text-gray-900 px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[1])\"\n *ngIf=\"formats[1]\"\n >\n {{ formats[1] }}\n </span>\n <div class=\"shrink-0 text-xs\" *ngIf=\"formats.slice(2).length > 0\">\n <span>+{{ formats.slice(2).length }}</span>\n </div>\n </div>\n <div *ngIf=\"!getRecordFormats(item)\"></div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- OWNER COLUMN -->\n <gn-ui-interactive-table-column\n [width]=\"'12rem'\"\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('recordOwner')\"\n (sortChange)=\"setSortBy('recordOwner', $event)\"\n >\n <ng-template #header>\n <span translate>search.filters.user</span>\n </ng-template>\n <ng-template #cell let-item>\n <ng-icon name=\"iconoirUser\" size=\"16px\"></ng-icon>\n <span data-cy=\"ownerInfo\" class=\"text-xs\">{{\n formatUserInfo(item.extras?.ownerInfo)\n }}</span>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- STATUS COLUMN -->\n <gn-ui-interactive-table-column [width]=\"'6rem'\">\n <ng-template #header>\n <span translate>record.metadata.status</span>\n </ng-template>\n <ng-template #cell let-item>\n <span class=\"text-xs\">\n {{\n (item.extras?.['isPublishedToAll']\n ? 'record.metadata.status.published'\n : 'record.metadata.status.notPublished'\n ) | translate\n }}</span\n >\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- UPDATE DATE COLUMN -->\n <gn-ui-interactive-table-column\n [width]=\"'8rem'\"\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('changeDate')\"\n (sortChange)=\"setSortBy('changeDate', $event)\"\n >\n <ng-template #header>\n <span translate>search.filters.changeDate</span>\n </ng-template>\n <ng-template #cell let-item>\n <div class=\"flex text-left w-full text-xs\">\n {{\n item.extras?.['isPublishedToAll']\n ? dateToString(item.recordUpdated)\n : '-'\n }}\n </div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- ACTION MENU COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header> </ng-template>\n <ng-template #cell let-item>\n <gn-ui-button\n cdkOverlayOrigin\n #actionMenuButton\n (buttonClick)=\"openActionMenu(item, template)\"\n type=\"light\"\n data-test=\"record-menu-button\"\n [disabled]=\"!item.extras?.edit && !isDraftPage\"\n >\n <ng-icon\n [ngClass]=\"{\n 'text-purple-light': !item.extras?.edit && !isDraftPage,\n }\"\n name=\"matMoreVert\"\n ></ng-icon>\n </gn-ui-button>\n <ng-template #template>\n <gn-ui-action-menu\n [canDuplicate]=\"canDuplicate(item) && !isDuplicating\"\n [canDelete]=\"canDelete(item)\"\n [isDraftPage]=\"isDraftPage\"\n (duplicate)=\"handleDuplicate(item)\"\n (delete)=\"handleDelete(item)\"\n (closeActionMenu)=\"closeActionMenu()\"\n (rollback)=\"handleRollback(item)\"\n >\n </gn-ui-action-menu>\n </ng-template>\n </ng-template>\n </gn-ui-interactive-table-column>\n</gn-ui-interactive-table>\n" }]
|
|
30760
30291
|
}], ctorParameters: () => [{ type: i1$9.Overlay }, { type: i0.ViewContainerRef }, { type: i0.ChangeDetectorRef }, { type: DateService }], propDecorators: { records: [{
|
|
30761
30292
|
type: Input
|
|
30762
30293
|
}], selectedRecordsIdentifiers: [{
|
|
@@ -30781,6 +30312,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
30781
30312
|
type: Output
|
|
30782
30313
|
}], deleteRecord: [{
|
|
30783
30314
|
type: Output
|
|
30315
|
+
}], rollbackDraft: [{
|
|
30316
|
+
type: Output
|
|
30784
30317
|
}], recordsSelectedChange: [{
|
|
30785
30318
|
type: Output
|
|
30786
30319
|
}], actionMenuButtons: [{
|
|
@@ -31794,8 +31327,11 @@ class FuzzySearchComponent {
|
|
|
31794
31327
|
this.searchService = searchService;
|
|
31795
31328
|
this.recordsRepository = recordsRepository;
|
|
31796
31329
|
this.autoFocus = false;
|
|
31330
|
+
this.forceTrackPosition = false;
|
|
31331
|
+
this.enterButton = false;
|
|
31797
31332
|
this.itemSelected = new EventEmitter();
|
|
31798
31333
|
this.inputSubmitted = new EventEmitter();
|
|
31334
|
+
this.isSearchActive = new EventEmitter();
|
|
31799
31335
|
this.displayWithFn = (record) => record.title;
|
|
31800
31336
|
this.autoCompleteAction = (query) => this.recordsRepository
|
|
31801
31337
|
.fuzzySearch(query)
|
|
@@ -31835,21 +31371,30 @@ class FuzzySearchComponent {
|
|
|
31835
31371
|
this.searchService.updateFilters({ any: '' });
|
|
31836
31372
|
}
|
|
31837
31373
|
}
|
|
31374
|
+
handleSearchActive(event) {
|
|
31375
|
+
this.isSearchActive.emit(event);
|
|
31376
|
+
}
|
|
31838
31377
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FuzzySearchComponent, deps: [{ token: SearchFacade }, { token: SearchService }, { token: RecordsRepositoryInterface }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
31839
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FuzzySearchComponent, selector: "gn-ui-fuzzy-search", inputs: { autoFocus: "autoFocus" }, outputs: { itemSelected: "itemSelected", inputSubmitted: "inputSubmitted" }, viewQueries: [{ propertyName: "autocomplete", first: true, predicate: AutocompleteComponent, descendants: true }], ngImport: i0, template: "<gn-ui-autocomplete\n [placeholder]=\"'search.field.any.placeholder' | translate\"\n [displayWithFn]=\"displayWithFn\"\n [action]=\"autoCompleteAction\"\n (itemSelected)=\"handleItemSelection($event)\"\n (inputSubmitted)=\"handleInputSubmission($event)\"\n (inputCleared)=\"handleInputCleared()\"\n [value]=\"searchInputValue$ | async\"\n [preventCompleteOnSelection]=\"true\"\n [autoFocus]=\"autoFocus\"\n [allowSubmit]=\"true\"\n></gn-ui-autocomplete>\n", styles: [""], dependencies: [{ kind: "component", type: AutocompleteComponent, selector: "gn-ui-autocomplete", inputs: ["placeholder", "action", "value", "clearOnSelection", "preventCompleteOnSelection", "autoFocus", "minCharacterCount", "allowSubmit", "displayWithFn"], outputs: ["itemSelected", "inputSubmitted", "inputCleared"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
31378
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FuzzySearchComponent, selector: "gn-ui-fuzzy-search", inputs: { autoFocus: "autoFocus", forceTrackPosition: "forceTrackPosition", enterButton: "enterButton" }, outputs: { itemSelected: "itemSelected", inputSubmitted: "inputSubmitted", isSearchActive: "isSearchActive" }, viewQueries: [{ propertyName: "autocomplete", first: true, predicate: AutocompleteComponent, descendants: true }], ngImport: i0, template: "<gn-ui-autocomplete\n [placeholder]=\"'search.field.any.placeholder' | translate\"\n [displayWithFn]=\"displayWithFn\"\n [action]=\"autoCompleteAction\"\n (itemSelected)=\"handleItemSelection($event)\"\n (inputSubmitted)=\"handleInputSubmission($event)\"\n (inputCleared)=\"handleInputCleared()\"\n (isSearchActive)=\"handleSearchActive($event)\"\n [value]=\"searchInputValue$ | async\"\n [preventCompleteOnSelection]=\"true\"\n [autoFocus]=\"autoFocus\"\n [allowSubmit]=\"true\"\n [forceTrackPosition]=\"forceTrackPosition\"\n [enterButton]=\"enterButton\"\n></gn-ui-autocomplete>\n", styles: [""], dependencies: [{ kind: "component", type: AutocompleteComponent, selector: "gn-ui-autocomplete", inputs: ["placeholder", "enterButton", "action", "value", "clearOnSelection", "preventCompleteOnSelection", "autoFocus", "minCharacterCount", "allowSubmit", "forceTrackPosition", "displayWithFn"], outputs: ["itemSelected", "inputSubmitted", "inputCleared", "isSearchActive"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
31840
31379
|
}
|
|
31841
31380
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FuzzySearchComponent, decorators: [{
|
|
31842
31381
|
type: Component,
|
|
31843
|
-
args: [{ selector: 'gn-ui-fuzzy-search', changeDetection: ChangeDetectionStrategy.OnPush, template: "<gn-ui-autocomplete\n [placeholder]=\"'search.field.any.placeholder' | translate\"\n [displayWithFn]=\"displayWithFn\"\n [action]=\"autoCompleteAction\"\n (itemSelected)=\"handleItemSelection($event)\"\n (inputSubmitted)=\"handleInputSubmission($event)\"\n (inputCleared)=\"handleInputCleared()\"\n [value]=\"searchInputValue$ | async\"\n [preventCompleteOnSelection]=\"true\"\n [autoFocus]=\"autoFocus\"\n [allowSubmit]=\"true\"\n></gn-ui-autocomplete>\n" }]
|
|
31382
|
+
args: [{ selector: 'gn-ui-fuzzy-search', changeDetection: ChangeDetectionStrategy.OnPush, template: "<gn-ui-autocomplete\n [placeholder]=\"'search.field.any.placeholder' | translate\"\n [displayWithFn]=\"displayWithFn\"\n [action]=\"autoCompleteAction\"\n (itemSelected)=\"handleItemSelection($event)\"\n (inputSubmitted)=\"handleInputSubmission($event)\"\n (inputCleared)=\"handleInputCleared()\"\n (isSearchActive)=\"handleSearchActive($event)\"\n [value]=\"searchInputValue$ | async\"\n [preventCompleteOnSelection]=\"true\"\n [autoFocus]=\"autoFocus\"\n [allowSubmit]=\"true\"\n [forceTrackPosition]=\"forceTrackPosition\"\n [enterButton]=\"enterButton\"\n></gn-ui-autocomplete>\n" }]
|
|
31844
31383
|
}], ctorParameters: () => [{ type: SearchFacade }, { type: SearchService }, { type: RecordsRepositoryInterface }], propDecorators: { autocomplete: [{
|
|
31845
31384
|
type: ViewChild,
|
|
31846
31385
|
args: [AutocompleteComponent]
|
|
31847
31386
|
}], autoFocus: [{
|
|
31848
31387
|
type: Input
|
|
31388
|
+
}], forceTrackPosition: [{
|
|
31389
|
+
type: Input
|
|
31390
|
+
}], enterButton: [{
|
|
31391
|
+
type: Input
|
|
31849
31392
|
}], itemSelected: [{
|
|
31850
31393
|
type: Output
|
|
31851
31394
|
}], inputSubmitted: [{
|
|
31852
31395
|
type: Output
|
|
31396
|
+
}], isSearchActive: [{
|
|
31397
|
+
type: Output
|
|
31853
31398
|
}] } });
|
|
31854
31399
|
|
|
31855
31400
|
class RecordsMetricsComponent {
|
|
@@ -33037,7 +32582,7 @@ class ResultsTableContainerComponent {
|
|
|
33037
32582
|
this.subscription.unsubscribe();
|
|
33038
32583
|
}
|
|
33039
32584
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ResultsTableContainerComponent, deps: [{ token: SearchFacade }, { token: SearchService }, { token: SelectionService }, { token: RecordsRepositoryInterface }, { token: NotificationsService }, { token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
33040
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ResultsTableContainerComponent, isStandalone: true, selector: "gn-ui-results-table-container", inputs: { canDuplicate: "canDuplicate", canDelete: "canDelete", isDuplicating: "isDuplicating" }, outputs: { recordClick: "recordClick", duplicateRecord: "duplicateRecord" }, ngImport: i0, template: "<gn-ui-results-table\n *ngIf=\"searchFacade.results$ | async as records\"\n [records]=\"records\"\n [hasDraft]=\"hasDraft\"\n [selectedRecordsIdentifiers]=\"selectedRecords$ | async\"\n [sortOrder]=\"sortBy$ | async\"\n [canDelete]=\"canDelete\"\n [canDuplicate]=\"canDuplicate\"\n [isDuplicating]=\"isDuplicating\"\n (recordClick)=\"handleRecordClick($event)\"\n (duplicateRecord)=\"handleDuplicateRecord($event)\"\n (deleteRecord)=\"handleDeleteRecord($event)\"\n (recordsSelectedChange)=\"handleRecordsSelectedChange($event[0], $event[1])\"\n (sortByChange)=\"handleSortByChange($event[0], $event[1])\"\n></gn-ui-results-table>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "component", type: ResultsTableComponent, selector: "gn-ui-results-table", inputs: ["records", "selectedRecordsIdentifiers", "sortOrder", "hasDraft", "canDuplicate", "canDelete", "isDraftPage", "isDuplicating"], outputs: ["sortByChange", "recordClick", "duplicateRecord", "deleteRecord", "recordsSelectedChange"] }] }); }
|
|
32585
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ResultsTableContainerComponent, isStandalone: true, selector: "gn-ui-results-table-container", inputs: { canDuplicate: "canDuplicate", canDelete: "canDelete", isDuplicating: "isDuplicating" }, outputs: { recordClick: "recordClick", duplicateRecord: "duplicateRecord" }, ngImport: i0, template: "<gn-ui-results-table\n *ngIf=\"searchFacade.results$ | async as records\"\n [records]=\"records\"\n [hasDraft]=\"hasDraft\"\n [selectedRecordsIdentifiers]=\"selectedRecords$ | async\"\n [sortOrder]=\"sortBy$ | async\"\n [canDelete]=\"canDelete\"\n [canDuplicate]=\"canDuplicate\"\n [isDuplicating]=\"isDuplicating\"\n (recordClick)=\"handleRecordClick($event)\"\n (duplicateRecord)=\"handleDuplicateRecord($event)\"\n (deleteRecord)=\"handleDeleteRecord($event)\"\n (recordsSelectedChange)=\"handleRecordsSelectedChange($event[0], $event[1])\"\n (sortByChange)=\"handleSortByChange($event[0], $event[1])\"\n></gn-ui-results-table>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "component", type: ResultsTableComponent, selector: "gn-ui-results-table", inputs: ["records", "selectedRecordsIdentifiers", "sortOrder", "hasDraft", "canDuplicate", "canDelete", "isDraftPage", "isDuplicating"], outputs: ["sortByChange", "recordClick", "duplicateRecord", "deleteRecord", "rollbackDraft", "recordsSelectedChange"] }] }); }
|
|
33041
32586
|
}
|
|
33042
32587
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ResultsTableContainerComponent, decorators: [{
|
|
33043
32588
|
type: Component,
|
|
@@ -34908,7 +34453,7 @@ class AddLayerFromCatalogComponent {
|
|
|
34908
34453
|
ADDLAYER: new ResultsLayoutConfigItem(AddLayerRecordPreviewComponent, 'py-2', '', 'flex flex-col divide-y divide-y-grey-50'),
|
|
34909
34454
|
},
|
|
34910
34455
|
},
|
|
34911
|
-
], ngImport: i0, template: "<div class=\"h-full text-sm\">\n <gn-ui-fuzzy-search></gn-ui-fuzzy-search>\n <gn-ui-results-list-container\n layout=\"ADDLAYER\"\n ></gn-ui-results-list-container>\n</div>\n", styles: ["::ng-deep .mat-tab-body-wrapper{flex-grow:1}\n"], dependencies: [{ kind: "ngmodule", type: FeatureSearchModule }, { kind: "component", type: FuzzySearchComponent, selector: "gn-ui-fuzzy-search", inputs: ["autoFocus"], outputs: ["itemSelected", "inputSubmitted"] }, { kind: "component", type: ResultsListContainerComponent, selector: "gn-ui-results-list-container", inputs: ["metadataQualityDisplay", "layout", "showMore"], outputs: ["mdSelect"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
34456
|
+
], ngImport: i0, template: "<div class=\"h-full text-sm\">\n <gn-ui-fuzzy-search></gn-ui-fuzzy-search>\n <gn-ui-results-list-container\n layout=\"ADDLAYER\"\n ></gn-ui-results-list-container>\n</div>\n", styles: ["::ng-deep .mat-tab-body-wrapper{flex-grow:1}\n"], dependencies: [{ kind: "ngmodule", type: FeatureSearchModule }, { kind: "component", type: FuzzySearchComponent, selector: "gn-ui-fuzzy-search", inputs: ["autoFocus", "forceTrackPosition", "enterButton"], outputs: ["itemSelected", "inputSubmitted", "isSearchActive"] }, { kind: "component", type: ResultsListContainerComponent, selector: "gn-ui-results-list-container", inputs: ["metadataQualityDisplay", "layout", "showMore"], outputs: ["mdSelect"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
34912
34457
|
}
|
|
34913
34458
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AddLayerFromCatalogComponent, decorators: [{
|
|
34914
34459
|
type: Component,
|
|
@@ -35186,6 +34731,9 @@ const loadFullMetadata = createAction('[Metadata view] Load full metadata', prop
|
|
|
35186
34731
|
const setIncompleteMetadata = createAction('[Metadata view] Set incomplete metadata', props());
|
|
35187
34732
|
const loadFullMetadataSuccess = createAction('[Metadata view] Load full metadata success', props());
|
|
35188
34733
|
const loadFullMetadataFailure = createAction('[Metadata view] Load full metadata failure', props());
|
|
34734
|
+
const loadFeatureCatalog = createAction("[Metadata view] Load metadata's feature catalog", props());
|
|
34735
|
+
const loadFeatureCatalogSuccess = createAction('[Metadata view] Load metadata feature catalog success', props());
|
|
34736
|
+
const loadFeatureCatalogFailure = createAction('[Metadata view] Load metadata feature catalog failure', props());
|
|
35189
34737
|
const closeMetadata = createAction('[Metadata view] close');
|
|
35190
34738
|
/*
|
|
35191
34739
|
Related actions
|
|
@@ -35211,6 +34759,9 @@ var mdview_actions = /*#__PURE__*/Object.freeze({
|
|
|
35211
34759
|
addUserFeedbackFailure: addUserFeedbackFailure,
|
|
35212
34760
|
addUserFeedbackSuccess: addUserFeedbackSuccess,
|
|
35213
34761
|
closeMetadata: closeMetadata,
|
|
34762
|
+
loadFeatureCatalog: loadFeatureCatalog,
|
|
34763
|
+
loadFeatureCatalogFailure: loadFeatureCatalogFailure,
|
|
34764
|
+
loadFeatureCatalogSuccess: loadFeatureCatalogSuccess,
|
|
35214
34765
|
loadFullMetadata: loadFullMetadata,
|
|
35215
34766
|
loadFullMetadataFailure: loadFullMetadataFailure,
|
|
35216
34767
|
loadFullMetadataSuccess: loadFullMetadataSuccess,
|
|
@@ -35228,6 +34779,8 @@ const initialMetadataViewState = {
|
|
|
35228
34779
|
loadingFull: false,
|
|
35229
34780
|
allUserFeedbacksLoading: false,
|
|
35230
34781
|
addUserFeedbackLoading: false,
|
|
34782
|
+
featureCatalogLoading: false,
|
|
34783
|
+
featureCatalogError: null,
|
|
35231
34784
|
};
|
|
35232
34785
|
const metadataViewReducer = createReducer(initialMetadataViewState,
|
|
35233
34786
|
/*
|
|
@@ -35287,6 +34840,22 @@ on(loadUserFeedbacks, (state) => ({
|
|
|
35287
34840
|
error: { otherError, notFound },
|
|
35288
34841
|
addUserFeedbackLoading: false,
|
|
35289
34842
|
allUserFeedbacksLoading: false,
|
|
34843
|
+
})),
|
|
34844
|
+
/**
|
|
34845
|
+
* FeatureCatalog reducers
|
|
34846
|
+
*/
|
|
34847
|
+
on(loadFeatureCatalog, (state) => ({
|
|
34848
|
+
...state,
|
|
34849
|
+
featureCatalogError: null,
|
|
34850
|
+
featureCatalogLoading: true,
|
|
34851
|
+
})), on(loadFeatureCatalogSuccess, (state, { datasetCatalog }) => ({
|
|
34852
|
+
...state,
|
|
34853
|
+
featureCatalog: datasetCatalog,
|
|
34854
|
+
featureCatalogLoading: false,
|
|
34855
|
+
})), on(loadFeatureCatalogFailure, (state, { error }) => ({
|
|
34856
|
+
...state,
|
|
34857
|
+
featureCatalogError: error,
|
|
34858
|
+
featureCatalogLoading: false,
|
|
35290
34859
|
})));
|
|
35291
34860
|
function reducer$1(metadataViewState, action) {
|
|
35292
34861
|
return metadataViewReducer(metadataViewState, action);
|
|
@@ -35315,6 +34884,11 @@ const getChartConfig = createSelector(getMdViewState, (state) => state.chartConf
|
|
|
35315
34884
|
const getUserFeedbacks = createSelector(getMdViewState, (state) => state.userFeedbacks);
|
|
35316
34885
|
const getAllUserFeedbacksLoading = createSelector(getMdViewState, (state) => state.allUserFeedbacksLoading);
|
|
35317
34886
|
const getAddUserFeedbacksLoading = createSelector(getMdViewState, (state) => state.addUserFeedbackLoading);
|
|
34887
|
+
/*
|
|
34888
|
+
Feature Catalog Selectors
|
|
34889
|
+
*/
|
|
34890
|
+
const getFeatureCatalog = createSelector(getMdViewState, (state) => state.featureCatalog);
|
|
34891
|
+
const getFeatureCatalogIsLoading = createSelector(getMdViewState, (state) => state.featureCatalogLoading);
|
|
35318
34892
|
|
|
35319
34893
|
class FetchError {
|
|
35320
34894
|
constructor(type, info, httpStatus = 0) {
|
|
@@ -35430,20 +35004,23 @@ function fetchHeaders(url) {
|
|
|
35430
35004
|
return parseHeaders(response.headers);
|
|
35431
35005
|
});
|
|
35432
35006
|
}
|
|
35433
|
-
function fetchDataAsText(url) {
|
|
35434
|
-
|
|
35007
|
+
function fetchDataAsText(url, cacheActive) {
|
|
35008
|
+
const fetchFactory = () => sharedFetch(url)
|
|
35435
35009
|
.catch((error) => {
|
|
35436
35010
|
throw FetchError.corsOrNetwork(error.message);
|
|
35437
35011
|
})
|
|
35438
35012
|
.then(async (response) => {
|
|
35439
35013
|
if (!response.ok) {
|
|
35440
|
-
|
|
35014
|
+
const clonedResponse = response.clone();
|
|
35015
|
+
throw FetchError.http(response.status, await clonedResponse.text());
|
|
35441
35016
|
}
|
|
35442
|
-
|
|
35443
|
-
|
|
35017
|
+
const clonedResponse = response.clone();
|
|
35018
|
+
return clonedResponse.text();
|
|
35019
|
+
});
|
|
35020
|
+
return cacheActive ? useCache(fetchFactory, url, 'asText') : fetchFactory();
|
|
35444
35021
|
}
|
|
35445
|
-
function fetchDataAsArrayBuffer(url) {
|
|
35446
|
-
|
|
35022
|
+
function fetchDataAsArrayBuffer(url, cacheActive) {
|
|
35023
|
+
const fetchFactory = () => sharedFetch(url)
|
|
35447
35024
|
.catch((error) => {
|
|
35448
35025
|
throw FetchError.corsOrNetwork(error.message);
|
|
35449
35026
|
})
|
|
@@ -35453,7 +35030,8 @@ function fetchDataAsArrayBuffer(url) {
|
|
|
35453
35030
|
}
|
|
35454
35031
|
// convert to a numeric array so that we can store the response in cache
|
|
35455
35032
|
return Array.from(new Uint8Array(await response.arrayBuffer()));
|
|
35456
|
-
})
|
|
35033
|
+
});
|
|
35034
|
+
return (cacheActive ? useCache(fetchFactory, url, 'asArrayBuffer') : fetchFactory()).then((array) => {
|
|
35457
35035
|
return new Uint8Array(array).buffer;
|
|
35458
35036
|
});
|
|
35459
35037
|
}
|
|
@@ -35599,68 +35177,6 @@ function getJsonDataItemsProxy(items) {
|
|
|
35599
35177
|
});
|
|
35600
35178
|
}
|
|
35601
35179
|
|
|
35602
|
-
class BaseReader {
|
|
35603
|
-
constructor(url) {
|
|
35604
|
-
this.url = url;
|
|
35605
|
-
this.selected = null;
|
|
35606
|
-
this.groupedBy = null;
|
|
35607
|
-
this.aggregations = null;
|
|
35608
|
-
this.filter = null;
|
|
35609
|
-
this.sort = null;
|
|
35610
|
-
this.startIndex = null;
|
|
35611
|
-
this.count = null;
|
|
35612
|
-
}
|
|
35613
|
-
load() {
|
|
35614
|
-
throw new Error('not implemented');
|
|
35615
|
-
}
|
|
35616
|
-
get properties() {
|
|
35617
|
-
throw new Error('not implemented');
|
|
35618
|
-
}
|
|
35619
|
-
get info() {
|
|
35620
|
-
throw new Error('not implemented');
|
|
35621
|
-
}
|
|
35622
|
-
read() {
|
|
35623
|
-
throw new Error('not implemented');
|
|
35624
|
-
}
|
|
35625
|
-
selectAll() {
|
|
35626
|
-
this.groupedBy = null;
|
|
35627
|
-
this.aggregations = null;
|
|
35628
|
-
this.selected = null;
|
|
35629
|
-
this.filter = null;
|
|
35630
|
-
this.startIndex = null;
|
|
35631
|
-
this.count = null;
|
|
35632
|
-
return this;
|
|
35633
|
-
}
|
|
35634
|
-
select(...selectedFields) {
|
|
35635
|
-
this.selected = selectedFields;
|
|
35636
|
-
this.aggregations = null; // clear aggregations & groups when selecting fields
|
|
35637
|
-
this.groupedBy = null;
|
|
35638
|
-
return this;
|
|
35639
|
-
}
|
|
35640
|
-
groupBy(...groupBy) {
|
|
35641
|
-
this.groupedBy = groupBy;
|
|
35642
|
-
this.selected = null; // clear normal field selection when aggregating
|
|
35643
|
-
return this;
|
|
35644
|
-
}
|
|
35645
|
-
aggregate(...aggregations) {
|
|
35646
|
-
this.aggregations = aggregations;
|
|
35647
|
-
return this;
|
|
35648
|
-
}
|
|
35649
|
-
where(filter) {
|
|
35650
|
-
this.filter = filter;
|
|
35651
|
-
return this;
|
|
35652
|
-
}
|
|
35653
|
-
orderBy(...fieldSorts) {
|
|
35654
|
-
this.sort = fieldSorts;
|
|
35655
|
-
return this;
|
|
35656
|
-
}
|
|
35657
|
-
limit(startIndex, count) {
|
|
35658
|
-
this.startIndex = startIndex;
|
|
35659
|
-
this.count = count;
|
|
35660
|
-
return this;
|
|
35661
|
-
}
|
|
35662
|
-
}
|
|
35663
|
-
|
|
35664
35180
|
function filterToSql(filter) {
|
|
35665
35181
|
const operator = filter[0];
|
|
35666
35182
|
const args = filter.slice(1);
|
|
@@ -35754,7 +35270,80 @@ function generateSqlQuery(selected = null, filter = null, sort = null, startInde
|
|
|
35754
35270
|
return sqlSelect + sqlFrom + sqlGroupBy + sqlOrderBy + sqlWhere + sqlLimit;
|
|
35755
35271
|
}
|
|
35756
35272
|
|
|
35757
|
-
class
|
|
35273
|
+
class BaseReader {
|
|
35274
|
+
constructor(url) {
|
|
35275
|
+
this.url = url;
|
|
35276
|
+
this.selected = null;
|
|
35277
|
+
this.groupedBy = null;
|
|
35278
|
+
this.aggregations = null;
|
|
35279
|
+
this.filter = null;
|
|
35280
|
+
this.sort = null;
|
|
35281
|
+
this.startIndex = null;
|
|
35282
|
+
this.count = null;
|
|
35283
|
+
}
|
|
35284
|
+
load() {
|
|
35285
|
+
throw new Error('not implemented');
|
|
35286
|
+
}
|
|
35287
|
+
get properties() {
|
|
35288
|
+
throw new Error('not implemented');
|
|
35289
|
+
}
|
|
35290
|
+
get info() {
|
|
35291
|
+
throw new Error('not implemented');
|
|
35292
|
+
}
|
|
35293
|
+
read() {
|
|
35294
|
+
throw new Error('not implemented');
|
|
35295
|
+
}
|
|
35296
|
+
selectAll() {
|
|
35297
|
+
this.groupedBy = null;
|
|
35298
|
+
this.aggregations = null;
|
|
35299
|
+
this.selected = null;
|
|
35300
|
+
this.filter = null;
|
|
35301
|
+
this.startIndex = null;
|
|
35302
|
+
this.count = null;
|
|
35303
|
+
return this;
|
|
35304
|
+
}
|
|
35305
|
+
select(...selectedFields) {
|
|
35306
|
+
this.selected = selectedFields;
|
|
35307
|
+
this.aggregations = null; // clear aggregations & groups when selecting fields
|
|
35308
|
+
this.groupedBy = null;
|
|
35309
|
+
return this;
|
|
35310
|
+
}
|
|
35311
|
+
groupBy(...groupBy) {
|
|
35312
|
+
this.groupedBy = groupBy;
|
|
35313
|
+
this.selected = null; // clear normal field selection when aggregating
|
|
35314
|
+
return this;
|
|
35315
|
+
}
|
|
35316
|
+
aggregate(...aggregations) {
|
|
35317
|
+
this.aggregations = aggregations;
|
|
35318
|
+
return this;
|
|
35319
|
+
}
|
|
35320
|
+
where(filter) {
|
|
35321
|
+
this.filter = filter;
|
|
35322
|
+
return this;
|
|
35323
|
+
}
|
|
35324
|
+
orderBy(...fieldSorts) {
|
|
35325
|
+
this.sort = fieldSorts;
|
|
35326
|
+
return this;
|
|
35327
|
+
}
|
|
35328
|
+
limit(startIndex, count) {
|
|
35329
|
+
this.startIndex = startIndex;
|
|
35330
|
+
this.count = count;
|
|
35331
|
+
return this;
|
|
35332
|
+
}
|
|
35333
|
+
}
|
|
35334
|
+
|
|
35335
|
+
class BaseCacheReader extends BaseReader {
|
|
35336
|
+
constructor(url, cacheActive = true) {
|
|
35337
|
+
super(url);
|
|
35338
|
+
this.url = url;
|
|
35339
|
+
this.cacheActive = cacheActive;
|
|
35340
|
+
}
|
|
35341
|
+
setCacheActive(value) {
|
|
35342
|
+
this.cacheActive = value;
|
|
35343
|
+
}
|
|
35344
|
+
}
|
|
35345
|
+
|
|
35346
|
+
class BaseFileReader extends BaseCacheReader {
|
|
35758
35347
|
getData() {
|
|
35759
35348
|
throw new Error('not implemented');
|
|
35760
35349
|
}
|
|
@@ -35818,7 +35407,7 @@ function parseCsv(text) {
|
|
|
35818
35407
|
}
|
|
35819
35408
|
class CsvReader extends BaseFileReader {
|
|
35820
35409
|
getData() {
|
|
35821
|
-
return fetchDataAsText(this.url).then(parseCsv);
|
|
35410
|
+
return fetchDataAsText(this.url, this.cacheActive).then(parseCsv);
|
|
35822
35411
|
}
|
|
35823
35412
|
}
|
|
35824
35413
|
|
|
@@ -35835,7 +35424,7 @@ function parseJson(text) {
|
|
|
35835
35424
|
}
|
|
35836
35425
|
class JsonReader extends BaseFileReader {
|
|
35837
35426
|
getData() {
|
|
35838
|
-
return fetchDataAsText(this.url).then(parseJson);
|
|
35427
|
+
return fetchDataAsText(this.url, this.cacheActive).then(parseJson);
|
|
35839
35428
|
}
|
|
35840
35429
|
}
|
|
35841
35430
|
|
|
@@ -35854,7 +35443,7 @@ function parseGeojson(text) {
|
|
|
35854
35443
|
}
|
|
35855
35444
|
class GeojsonReader extends BaseFileReader {
|
|
35856
35445
|
getData() {
|
|
35857
|
-
return fetchDataAsText(this.url).then(parseGeojson);
|
|
35446
|
+
return fetchDataAsText(this.url, this.cacheActive).then(parseGeojson);
|
|
35858
35447
|
}
|
|
35859
35448
|
}
|
|
35860
35449
|
|
|
@@ -35876,7 +35465,7 @@ function parseExcel(buffer) {
|
|
|
35876
35465
|
}
|
|
35877
35466
|
class ExcelReader extends BaseFileReader {
|
|
35878
35467
|
getData() {
|
|
35879
|
-
return fetchDataAsArrayBuffer(this.url).then(parseExcel);
|
|
35468
|
+
return fetchDataAsArrayBuffer(this.url, this.cacheActive).then(parseExcel);
|
|
35880
35469
|
}
|
|
35881
35470
|
}
|
|
35882
35471
|
|
|
@@ -35903,19 +35492,21 @@ function parseGml(text, namespace, version) {
|
|
|
35903
35492
|
throw Error("Couldn't retrieve namespace url");
|
|
35904
35493
|
}
|
|
35905
35494
|
class GmlReader extends BaseFileReader {
|
|
35906
|
-
constructor(url, namespace, version) {
|
|
35495
|
+
constructor(url, namespace, version, cacheActive = true) {
|
|
35907
35496
|
super(url);
|
|
35497
|
+
this.url = url;
|
|
35908
35498
|
this.namespace = namespace;
|
|
35909
35499
|
this.version = version;
|
|
35500
|
+
this.cacheActive = cacheActive;
|
|
35910
35501
|
}
|
|
35911
35502
|
getData() {
|
|
35912
|
-
return fetchDataAsText(this.url).then((text) => parseGml(text, this.namespace, this.version));
|
|
35503
|
+
return fetchDataAsText(this.url, this.cacheActive).then((text) => parseGml(text, this.namespace, this.version));
|
|
35913
35504
|
}
|
|
35914
35505
|
}
|
|
35915
35506
|
|
|
35916
|
-
class WfsReader extends
|
|
35917
|
-
constructor(url, wfsEndpoint, featureTypeName) {
|
|
35918
|
-
super(url);
|
|
35507
|
+
class WfsReader extends BaseCacheReader {
|
|
35508
|
+
constructor(url, wfsEndpoint, featureTypeName, cacheActive) {
|
|
35509
|
+
super(url, cacheActive);
|
|
35919
35510
|
this.endpoint = wfsEndpoint;
|
|
35920
35511
|
this.featureTypeName = featureTypeName;
|
|
35921
35512
|
this.version = this.endpoint.getVersion();
|
|
@@ -35970,9 +35561,9 @@ class WfsReader extends BaseReader {
|
|
|
35970
35561
|
throw new Error('wfs.geojsongml.notsupported');
|
|
35971
35562
|
}
|
|
35972
35563
|
}
|
|
35973
|
-
getData() {
|
|
35974
|
-
if (
|
|
35975
|
-
|
|
35564
|
+
async getData(aggregation, groupedBy) {
|
|
35565
|
+
if (aggregation || groupedBy) {
|
|
35566
|
+
return { items: await this.getQueryData() };
|
|
35976
35567
|
}
|
|
35977
35568
|
const asJson = this.endpoint.supportsJson(this.featureTypeName);
|
|
35978
35569
|
const attributes = this.selected ?? undefined;
|
|
@@ -35992,19 +35583,26 @@ class WfsReader extends BaseReader {
|
|
|
35992
35583
|
// Direct update on string url to prevent encoding of +A and +D
|
|
35993
35584
|
url = `${url}${finalUrl.search ? '&' : ''}SORTBY=${sorts}`;
|
|
35994
35585
|
}
|
|
35995
|
-
return fetchDataAsText(url).then((text) => asJson
|
|
35586
|
+
return fetchDataAsText(url, this.cacheActive).then((text) => asJson
|
|
35996
35587
|
? parseGeojson(text)
|
|
35997
35588
|
: parseGml(text, this.featureTypeName, this.version));
|
|
35998
35589
|
}
|
|
35590
|
+
async getQueryData() {
|
|
35591
|
+
const items = (await this.getData()).items;
|
|
35592
|
+
const jsonItems = getJsonDataItemsProxy(items);
|
|
35593
|
+
const query = generateSqlQuery(this.selected, this.filter, this.sort, this.startIndex, this.count, this.groupedBy, this.aggregations);
|
|
35594
|
+
const result = await import('alasql').then((module) => module.default(query, [jsonItems]));
|
|
35595
|
+
return result.map(jsonToGeojsonFeature);
|
|
35596
|
+
}
|
|
35999
35597
|
load() {
|
|
36000
35598
|
// Nothing to load for Wfs
|
|
36001
35599
|
}
|
|
36002
35600
|
async read() {
|
|
36003
|
-
return (await this.getData()).items;
|
|
35601
|
+
return (await this.getData(this.aggregations, this.groupedBy)).items;
|
|
36004
35602
|
}
|
|
36005
35603
|
}
|
|
36006
35604
|
|
|
36007
|
-
async function openDataset(url, typeHint, options) {
|
|
35605
|
+
async function openDataset(url, typeHint, options, cacheActive) {
|
|
36008
35606
|
const fileType = await inferDatasetType(url, typeHint);
|
|
36009
35607
|
let reader;
|
|
36010
35608
|
try {
|
|
@@ -36028,6 +35626,7 @@ async function openDataset(url, typeHint, options) {
|
|
|
36028
35626
|
reader = await WfsReader.createReader(url, options.wfsFeatureType);
|
|
36029
35627
|
break;
|
|
36030
35628
|
}
|
|
35629
|
+
reader.setCacheActive(cacheActive);
|
|
36031
35630
|
reader.load();
|
|
36032
35631
|
return reader;
|
|
36033
35632
|
}
|
|
@@ -36044,8 +35643,8 @@ async function openDataset(url, typeHint, options) {
|
|
|
36044
35643
|
* 2. otherwise, look for a Content-Type header in the response with a supported mime type
|
|
36045
35644
|
* 3. if no valid mime type was found, look for an explicit file extension in the url (.csv, .geojson etc.)
|
|
36046
35645
|
*/
|
|
36047
|
-
async function readDataset(url, typeHint, options) {
|
|
36048
|
-
const reader = await openDataset(url, typeHint, options);
|
|
35646
|
+
async function readDataset(url, typeHint, options, cacheActive = true) {
|
|
35647
|
+
const reader = await openDataset(url, typeHint, options, cacheActive);
|
|
36049
35648
|
try {
|
|
36050
35649
|
return await reader.read();
|
|
36051
35650
|
}
|
|
@@ -36206,18 +35805,18 @@ class DataService {
|
|
|
36206
35805
|
mimeType: getMimeTypeForFormat(getFileFormatFromServiceOutput(format)),
|
|
36207
35806
|
}));
|
|
36208
35807
|
}
|
|
36209
|
-
readAsGeoJson(link) {
|
|
36210
|
-
return this.getDataset(link).pipe(switchMap$1((dataset) => dataset.selectAll().read()), map$1((features) => ({
|
|
35808
|
+
readAsGeoJson(link, cacheActive) {
|
|
35809
|
+
return this.getDataset(link, cacheActive).pipe(switchMap$1((dataset) => dataset.selectAll().read()), map$1((features) => ({
|
|
36211
35810
|
type: 'FeatureCollection',
|
|
36212
35811
|
features,
|
|
36213
35812
|
})));
|
|
36214
35813
|
}
|
|
36215
|
-
getDataset(link) {
|
|
35814
|
+
getDataset(link, cacheActive) {
|
|
36216
35815
|
if (link.type === 'service' && link.accessServiceProtocol === 'wfs') {
|
|
36217
35816
|
const wfsUrlEndpoint = this.proxy.getProxiedUrl(link.url.toString());
|
|
36218
35817
|
return from(openDataset(wfsUrlEndpoint, 'wfs', {
|
|
36219
35818
|
wfsFeatureType: link.name,
|
|
36220
|
-
}));
|
|
35819
|
+
}, cacheActive));
|
|
36221
35820
|
}
|
|
36222
35821
|
else if (link.type === 'download') {
|
|
36223
35822
|
const linkProxifiedUrl = this.proxy.getProxiedUrl(link.url.toString());
|
|
@@ -36225,18 +35824,18 @@ class DataService {
|
|
|
36225
35824
|
const supportedType = SupportedTypes.indexOf(format) > -1
|
|
36226
35825
|
? format
|
|
36227
35826
|
: undefined;
|
|
36228
|
-
return from(openDataset(linkProxifiedUrl, supportedType)).pipe();
|
|
35827
|
+
return from(openDataset(linkProxifiedUrl, supportedType, undefined, cacheActive)).pipe();
|
|
36229
35828
|
}
|
|
36230
35829
|
else if (link.type === 'service' &&
|
|
36231
35830
|
link.accessServiceProtocol === 'esriRest') {
|
|
36232
35831
|
const url = this.getDownloadUrlFromEsriRest(link.url.toString(), 'geojson');
|
|
36233
|
-
return from(openDataset(url, 'geojson')).pipe();
|
|
35832
|
+
return from(openDataset(url, 'geojson', undefined, cacheActive)).pipe();
|
|
36234
35833
|
}
|
|
36235
35834
|
else if (link.type === 'service' &&
|
|
36236
35835
|
link.accessServiceProtocol === 'ogcFeatures') {
|
|
36237
35836
|
return from(this.getDownloadUrlsFromOgcApi(link.url.href)).pipe(switchMap$1((collectionInfo) => {
|
|
36238
35837
|
const geojsonUrl = collectionInfo.jsonDownloadLink;
|
|
36239
|
-
return openDataset(geojsonUrl, 'geojson');
|
|
35838
|
+
return openDataset(geojsonUrl, 'geojson', undefined, cacheActive);
|
|
36240
35839
|
}), tap$1((url) => {
|
|
36241
35840
|
if (url === null) {
|
|
36242
35841
|
throw new Error('wfs.geojsongml.notsupported');
|
|
@@ -36635,7 +36234,7 @@ class DataTableComponent {
|
|
|
36635
36234
|
}
|
|
36636
36235
|
}
|
|
36637
36236
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DataTableComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
36638
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DataTableComponent, isStandalone: true, selector: "gn-ui-data-table", inputs: { dataset: "dataset", activeId: "activeId" }, outputs: { selected: "selected" }, providers: [{ provide: MatPaginatorIntl, useClass: CustomMatPaginatorIntl }], viewQueries: [{ propertyName: "sort", first: true, predicate: MatSort, descendants: true }, { propertyName: "paginator", first: true, predicate: MatPaginator, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"flex flex-col border border-gray-300 rounded-lg bg-white h-full\">\n <div class=\"flex-1 overflow-y-hidden overflow-x-auto rounded-lg relative\">\n <table\n mat-table\n [dataSource]=\"dataSource\"\n matSort\n (matSortChange)=\"setSort($event)\"\n [matSortDisableClear]=\"true\"\n *ngrxLet=\"properties$ as properties\"\n >\n <ng-container *ngFor=\"let prop of properties\" [matColumnDef]=\"prop\">\n <th\n mat-header-cell\n *matHeaderCellDef\n mat-sort-header\n class=\"text-sm text-black bg-white\"\n >\n {{ prop }}\n </th>\n <td\n mat-cell\n *matCellDef=\"let element\"\n class=\"whitespace-nowrap pr-1 truncate\"\n >\n {{ element[prop] }}\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"properties; sticky: true\"></tr>\n <tr\n [id]=\"getRowEltId(row.id)\"\n mat-row\n *matRowDef=\"let row; columns: properties\"\n (click)=\"selected.emit(row)\"\n [class.active]=\"row.id === activeId\"\n ></tr>\n </table>\n <gn-ui-loading-mask\n *ngIf=\"loading$ | async\"\n class=\"sticky inset-0\"\n [message]=\"'table.loading.data' | translate\"\n ></gn-ui-loading-mask>\n <gn-ui-popup-alert\n *ngIf=\"error\"\n type=\"warning\"\n icon=\"matErrorOutlineOutline\"\n class=\"absolute m-2 inset-0 z-[100]\"\n >\n <span translate>{{ error }}</span>\n </gn-ui-popup-alert>\n </div>\n <div class=\"flex justify-between items-center overflow-hidden\">\n <div class=\"text-gray-900 px-4 py-2 text-sm\">\n <span class=\"count font-extrabold text-primary\">{{ count }}</span\n > <span translate>table.object.count</span>.\n </div>\n\n <mat-paginator\n class=\"my-[-16px]\"\n (page)=\"setPagination()\"\n [length]=\"count\"\n [pageSize]=\"10\"\n [showFirstLastButtons]=\"true\"\n [hidePageSize]=\"true\"\n ></mat-paginator>\n </div>\n</div>\n", styles: ["table{width:100%;background:#fff}th.mat-mdc-header-cell,td.mat-mdc-cell,td.mat-mdc-footer-cell{padding-right:20px}tr.mat-mdc-row,tr.mat-mdc-footer-row{height:36px}tr:hover{background:#f5f5f5}tr.mat-mdc-header-row{height:48px}[mat-header-cell]{color:#0000008a;font-size:12px;font-weight:500}tr{cursor:pointer}.active .mat-mdc-cell{color:var(--color-primary)}.mat-mdc-paginator{background:none}\n"], dependencies: [{ kind: "ngmodule", type: MatTableModule }, { kind: "component", type: i2$4.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i2$4.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i2$4.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i2$4.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i2$4.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i2$4.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i2$4.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i2$4.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i2$4.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i2$4.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "ngmodule", type: MatSortModule }, { kind: "directive", type: i3$1.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i3$1.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "ngmodule", type: MatPaginatorModule }, { kind: "component", type: i4.MatPaginator, selector: "mat-paginator", inputs: ["color", "pageIndex", "length", "pageSize", "pageSizeOptions", "hidePageSize", "showFirstLastButtons", "selectConfig", "disabled"], outputs: ["page"], exportAs: ["matPaginator"] }, { kind: "ngmodule", type: ScrollingModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "component", type: LoadingMaskComponent, selector: "gn-ui-loading-mask", inputs: ["message"] }, { kind: "component", type: PopupAlertComponent, selector: "gn-ui-popup-alert", inputs: ["icon", "type", "position"] }, { kind: "directive", type: LetDirective, selector: "[ngrxLet]", inputs: ["ngrxLet", "ngrxLetSuspenseTpl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
36237
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DataTableComponent, isStandalone: true, selector: "gn-ui-data-table", inputs: { dataset: "dataset", activeId: "activeId" }, outputs: { selected: "selected" }, providers: [{ provide: MatPaginatorIntl, useClass: CustomMatPaginatorIntl }], viewQueries: [{ propertyName: "sort", first: true, predicate: MatSort, descendants: true }, { propertyName: "paginator", first: true, predicate: MatPaginator, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"flex flex-col border border-gray-300 rounded-lg bg-white h-full\">\n <div class=\"flex-1 overflow-y-hidden overflow-x-auto rounded-lg relative\">\n <table\n mat-table\n [dataSource]=\"dataSource\"\n matSort\n (matSortChange)=\"setSort($event)\"\n [matSortDisableClear]=\"true\"\n *ngrxLet=\"properties$ as properties\"\n >\n <ng-container *ngFor=\"let prop of properties\" [matColumnDef]=\"prop\">\n <th\n mat-header-cell\n *matHeaderCellDef\n mat-sort-header\n class=\"text-sm text-black bg-white\"\n >\n {{ prop }}\n </th>\n <td\n mat-cell\n *matCellDef=\"let element\"\n class=\"whitespace-nowrap pr-1 truncate\"\n >\n {{ element[prop] }}\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"properties; sticky: true\"></tr>\n <tr\n [id]=\"getRowEltId(row.id)\"\n mat-row\n *matRowDef=\"let row; columns: properties\"\n (click)=\"selected.emit(row)\"\n [class.active]=\"\n activeId !== undefined && activeId !== null && row.id === activeId\n \"\n ></tr>\n </table>\n <gn-ui-loading-mask\n *ngIf=\"loading$ | async\"\n class=\"sticky inset-0\"\n [message]=\"'table.loading.data' | translate\"\n ></gn-ui-loading-mask>\n <gn-ui-popup-alert\n *ngIf=\"error\"\n type=\"warning\"\n icon=\"matErrorOutlineOutline\"\n class=\"absolute m-2 inset-0 z-[100]\"\n >\n <span translate>{{ error }}</span>\n </gn-ui-popup-alert>\n </div>\n <div class=\"flex justify-between items-center overflow-hidden\">\n <div class=\"text-gray-900 px-4 py-2 text-sm\">\n <span class=\"count font-extrabold text-primary\">{{ count }}</span\n > <span translate>table.object.count</span>.\n </div>\n\n <mat-paginator\n class=\"my-[-16px]\"\n (page)=\"setPagination()\"\n [length]=\"count\"\n [pageSize]=\"10\"\n [showFirstLastButtons]=\"true\"\n [hidePageSize]=\"true\"\n ></mat-paginator>\n </div>\n</div>\n", styles: ["table{width:100%;background:#fff}th.mat-mdc-header-cell,td.mat-mdc-cell,td.mat-mdc-footer-cell{padding-right:20px}tr.mat-mdc-row,tr.mat-mdc-footer-row{height:36px}tr:hover{background:#f5f5f5}tr.mat-mdc-header-row{height:48px}[mat-header-cell]{color:#0000008a;font-size:12px;font-weight:500}tr{cursor:pointer}.active .mat-mdc-cell{color:var(--color-primary)}.mat-mdc-paginator{background:none}\n"], dependencies: [{ kind: "ngmodule", type: MatTableModule }, { kind: "component", type: i2$4.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i2$4.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i2$4.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i2$4.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i2$4.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i2$4.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i2$4.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i2$4.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i2$4.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i2$4.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "ngmodule", type: MatSortModule }, { kind: "directive", type: i3$1.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i3$1.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "ngmodule", type: MatPaginatorModule }, { kind: "component", type: i4.MatPaginator, selector: "mat-paginator", inputs: ["color", "pageIndex", "length", "pageSize", "pageSizeOptions", "hidePageSize", "showFirstLastButtons", "selectConfig", "disabled"], outputs: ["page"], exportAs: ["matPaginator"] }, { kind: "ngmodule", type: ScrollingModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "component", type: LoadingMaskComponent, selector: "gn-ui-loading-mask", inputs: ["message"] }, { kind: "component", type: PopupAlertComponent, selector: "gn-ui-popup-alert", inputs: ["icon", "type", "position"] }, { kind: "directive", type: LetDirective, selector: "[ngrxLet]", inputs: ["ngrxLet", "ngrxLetSuspenseTpl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
36639
36238
|
}
|
|
36640
36239
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DataTableComponent, decorators: [{
|
|
36641
36240
|
type: Component,
|
|
@@ -36649,7 +36248,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
36649
36248
|
LoadingMaskComponent,
|
|
36650
36249
|
PopupAlertComponent,
|
|
36651
36250
|
LetDirective,
|
|
36652
|
-
], providers: [{ provide: MatPaginatorIntl, useClass: CustomMatPaginatorIntl }], selector: 'gn-ui-data-table', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"flex flex-col border border-gray-300 rounded-lg bg-white h-full\">\n <div class=\"flex-1 overflow-y-hidden overflow-x-auto rounded-lg relative\">\n <table\n mat-table\n [dataSource]=\"dataSource\"\n matSort\n (matSortChange)=\"setSort($event)\"\n [matSortDisableClear]=\"true\"\n *ngrxLet=\"properties$ as properties\"\n >\n <ng-container *ngFor=\"let prop of properties\" [matColumnDef]=\"prop\">\n <th\n mat-header-cell\n *matHeaderCellDef\n mat-sort-header\n class=\"text-sm text-black bg-white\"\n >\n {{ prop }}\n </th>\n <td\n mat-cell\n *matCellDef=\"let element\"\n class=\"whitespace-nowrap pr-1 truncate\"\n >\n {{ element[prop] }}\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"properties; sticky: true\"></tr>\n <tr\n [id]=\"getRowEltId(row.id)\"\n mat-row\n *matRowDef=\"let row; columns: properties\"\n (click)=\"selected.emit(row)\"\n [class.active]=\"row.id === activeId\"\n ></tr>\n </table>\n <gn-ui-loading-mask\n *ngIf=\"loading$ | async\"\n class=\"sticky inset-0\"\n [message]=\"'table.loading.data' | translate\"\n ></gn-ui-loading-mask>\n <gn-ui-popup-alert\n *ngIf=\"error\"\n type=\"warning\"\n icon=\"matErrorOutlineOutline\"\n class=\"absolute m-2 inset-0 z-[100]\"\n >\n <span translate>{{ error }}</span>\n </gn-ui-popup-alert>\n </div>\n <div class=\"flex justify-between items-center overflow-hidden\">\n <div class=\"text-gray-900 px-4 py-2 text-sm\">\n <span class=\"count font-extrabold text-primary\">{{ count }}</span\n > <span translate>table.object.count</span>.\n </div>\n\n <mat-paginator\n class=\"my-[-16px]\"\n (page)=\"setPagination()\"\n [length]=\"count\"\n [pageSize]=\"10\"\n [showFirstLastButtons]=\"true\"\n [hidePageSize]=\"true\"\n ></mat-paginator>\n </div>\n</div>\n", styles: ["table{width:100%;background:#fff}th.mat-mdc-header-cell,td.mat-mdc-cell,td.mat-mdc-footer-cell{padding-right:20px}tr.mat-mdc-row,tr.mat-mdc-footer-row{height:36px}tr:hover{background:#f5f5f5}tr.mat-mdc-header-row{height:48px}[mat-header-cell]{color:#0000008a;font-size:12px;font-weight:500}tr{cursor:pointer}.active .mat-mdc-cell{color:var(--color-primary)}.mat-mdc-paginator{background:none}\n"] }]
|
|
36251
|
+
], providers: [{ provide: MatPaginatorIntl, useClass: CustomMatPaginatorIntl }], selector: 'gn-ui-data-table', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"flex flex-col border border-gray-300 rounded-lg bg-white h-full\">\n <div class=\"flex-1 overflow-y-hidden overflow-x-auto rounded-lg relative\">\n <table\n mat-table\n [dataSource]=\"dataSource\"\n matSort\n (matSortChange)=\"setSort($event)\"\n [matSortDisableClear]=\"true\"\n *ngrxLet=\"properties$ as properties\"\n >\n <ng-container *ngFor=\"let prop of properties\" [matColumnDef]=\"prop\">\n <th\n mat-header-cell\n *matHeaderCellDef\n mat-sort-header\n class=\"text-sm text-black bg-white\"\n >\n {{ prop }}\n </th>\n <td\n mat-cell\n *matCellDef=\"let element\"\n class=\"whitespace-nowrap pr-1 truncate\"\n >\n {{ element[prop] }}\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"properties; sticky: true\"></tr>\n <tr\n [id]=\"getRowEltId(row.id)\"\n mat-row\n *matRowDef=\"let row; columns: properties\"\n (click)=\"selected.emit(row)\"\n [class.active]=\"\n activeId !== undefined && activeId !== null && row.id === activeId\n \"\n ></tr>\n </table>\n <gn-ui-loading-mask\n *ngIf=\"loading$ | async\"\n class=\"sticky inset-0\"\n [message]=\"'table.loading.data' | translate\"\n ></gn-ui-loading-mask>\n <gn-ui-popup-alert\n *ngIf=\"error\"\n type=\"warning\"\n icon=\"matErrorOutlineOutline\"\n class=\"absolute m-2 inset-0 z-[100]\"\n >\n <span translate>{{ error }}</span>\n </gn-ui-popup-alert>\n </div>\n <div class=\"flex justify-between items-center overflow-hidden\">\n <div class=\"text-gray-900 px-4 py-2 text-sm\">\n <span class=\"count font-extrabold text-primary\">{{ count }}</span\n > <span translate>table.object.count</span>.\n </div>\n\n <mat-paginator\n class=\"my-[-16px]\"\n (page)=\"setPagination()\"\n [length]=\"count\"\n [pageSize]=\"10\"\n [showFirstLastButtons]=\"true\"\n [hidePageSize]=\"true\"\n ></mat-paginator>\n </div>\n</div>\n", styles: ["table{width:100%;background:#fff}th.mat-mdc-header-cell,td.mat-mdc-cell,td.mat-mdc-footer-cell{padding-right:20px}tr.mat-mdc-row,tr.mat-mdc-footer-row{height:36px}tr:hover{background:#f5f5f5}tr.mat-mdc-header-row{height:48px}[mat-header-cell]{color:#0000008a;font-size:12px;font-weight:500}tr{cursor:pointer}.active .mat-mdc-cell{color:var(--color-primary)}.mat-mdc-paginator{background:none}\n"] }]
|
|
36653
36252
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1$1.TranslateService }], propDecorators: { dataset: [{
|
|
36654
36253
|
type: Input
|
|
36655
36254
|
}], activeId: [{
|
|
@@ -36801,6 +36400,7 @@ class ChartViewComponent {
|
|
|
36801
36400
|
this.dataService = dataService;
|
|
36802
36401
|
this.changeDetector = changeDetector;
|
|
36803
36402
|
this.translateService = translateService;
|
|
36403
|
+
this.cacheActive = true;
|
|
36804
36404
|
this.currentLink$ = new BehaviorSubject(null);
|
|
36805
36405
|
this.aggregation$ = new BehaviorSubject('sum');
|
|
36806
36406
|
this.xProperty$ = new BehaviorSubject(undefined);
|
|
@@ -36830,7 +36430,7 @@ class ChartViewComponent {
|
|
|
36830
36430
|
this.dataset$ = this.currentLink$.pipe(filter((link) => !!link), switchMap$1((link) => {
|
|
36831
36431
|
this.error = null;
|
|
36832
36432
|
this.loading = true;
|
|
36833
|
-
return this.dataService.getDataset(link).pipe(catchError((error) => {
|
|
36433
|
+
return this.dataService.getDataset(link, this.cacheActive).pipe(catchError((error) => {
|
|
36834
36434
|
this.handleError(error);
|
|
36835
36435
|
return EMPTY;
|
|
36836
36436
|
}));
|
|
@@ -36899,7 +36499,7 @@ class ChartViewComponent {
|
|
|
36899
36499
|
this.changeDetector.detectChanges();
|
|
36900
36500
|
}
|
|
36901
36501
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ChartViewComponent, deps: [{ token: DataService }, { token: i0.ChangeDetectorRef }, { token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
36902
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ChartViewComponent, isStandalone: true, selector: "gn-ui-chart-view", inputs: { link: "link", aggregation: "aggregation", xProperty: "xProperty", yProperty: "yProperty", chartType: "chartType" }, outputs: { chartConfig$: "chartConfig$" }, ngImport: i0, template: "<div class=\"w-full h-full flex flex-col\">\n <div\n class=\"flex flex-col space-y-2 sm:flex-row sm:space-y-0 sm:space-x-2 justify-between text-[13px]\"\n >\n <gn-ui-dropdown-selector\n class=\"basis-1/4\"\n [choices]=\"typeChoices\"\n [extraBtnClass]=\"'secondary min-w-full'\"\n (selectValue)=\"chartType$.next($event)\"\n [selected]=\"chartType$.value\"\n [title]=\"'chart.dropdown.type' | translate\"\n ></gn-ui-dropdown-selector>\n <gn-ui-dropdown-selector\n class=\"basis-1/4\"\n [choices]=\"xChoices$ | async\"\n [extraBtnClass]=\"'secondary min-w-full'\"\n (selectValue)=\"xProperty$.next($event)\"\n [selected]=\"xProperty$.value\"\n [title]=\"'chart.dropdown.xProperty' | translate\"\n ></gn-ui-dropdown-selector>\n <gn-ui-dropdown-selector\n class=\"basis-1/4\"\n *ngIf=\"!isCountAggregation\"\n [choices]=\"yChoices$ | async\"\n (selectValue)=\"yProperty$.next($event)\"\n [selected]=\"yProperty$.value\"\n [title]=\"'chart.dropdown.yProperty' | translate\"\n class=\"select-y-prop\"\n ></gn-ui-dropdown-selector>\n <gn-ui-dropdown-selector\n class=\"basis-1/4\"\n [choices]=\"aggregationChoices\"\n class=\"aggregation-choices\"\n (selectValue)=\"aggregation$.next($event)\"\n [selected]=\"aggregation$.value\"\n [title]=\"'chart.dropdown.aggregation' | translate\"\n ></gn-ui-dropdown-selector>\n </div>\n <div\n class=\"relative h-full mt-2 bg-white border border-gray-300 rounded-lg overflow-hidden\"\n >\n <gn-ui-chart\n [data]=\"chartData$ | async\"\n [type]=\"chartType$.value\"\n [labelProperty]=\"labelProperty\"\n [valueProperty]=\"valueProperty\"\n ></gn-ui-chart>\n <gn-ui-loading-mask\n *ngIf=\"loading\"\n class=\"absolute inset-0\"\n [message]=\"'chart.loading.data' | translate\"\n ></gn-ui-loading-mask>\n <gn-ui-popup-alert\n *ngIf=\"error\"\n type=\"warning\"\n icon=\"matErrorOutlineOutline\"\n class=\"absolute m-2 inset-0\"\n >\n <span>{{ error }}</span>\n </gn-ui-popup-alert>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "component", type: DropdownSelectorComponent, selector: "gn-ui-dropdown-selector", inputs: ["title", "showTitle", "ariaName", "choices", "selected", "maxRows", "extraBtnClass", "minWidth", "disabled"], outputs: ["selectValue"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "component", type: ChartComponent, selector: "gn-ui-chart", inputs: ["data", "labelProperty", "valueProperty", "secondaryValueProperty", "type"] }, { kind: "component", type: LoadingMaskComponent, selector: "gn-ui-loading-mask", inputs: ["message"] }, { kind: "component", type: PopupAlertComponent, selector: "gn-ui-popup-alert", inputs: ["icon", "type", "position"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
36502
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ChartViewComponent, isStandalone: true, selector: "gn-ui-chart-view", inputs: { cacheActive: "cacheActive", link: "link", aggregation: "aggregation", xProperty: "xProperty", yProperty: "yProperty", chartType: "chartType" }, outputs: { chartConfig$: "chartConfig$" }, ngImport: i0, template: "<div class=\"w-full h-full flex flex-col\">\n <div\n class=\"flex flex-col space-y-2 sm:flex-row sm:space-y-0 sm:space-x-2 justify-between text-[13px]\"\n >\n <gn-ui-dropdown-selector\n class=\"basis-1/4\"\n [choices]=\"typeChoices\"\n [extraBtnClass]=\"'secondary min-w-full'\"\n (selectValue)=\"chartType$.next($event)\"\n [selected]=\"chartType$.value\"\n [title]=\"'chart.dropdown.type' | translate\"\n ></gn-ui-dropdown-selector>\n <gn-ui-dropdown-selector\n class=\"basis-1/4\"\n [choices]=\"xChoices$ | async\"\n [extraBtnClass]=\"'secondary min-w-full'\"\n (selectValue)=\"xProperty$.next($event)\"\n [selected]=\"xProperty$.value\"\n [title]=\"'chart.dropdown.xProperty' | translate\"\n ></gn-ui-dropdown-selector>\n <gn-ui-dropdown-selector\n class=\"basis-1/4\"\n *ngIf=\"!isCountAggregation\"\n [choices]=\"yChoices$ | async\"\n (selectValue)=\"yProperty$.next($event)\"\n [selected]=\"yProperty$.value\"\n [title]=\"'chart.dropdown.yProperty' | translate\"\n class=\"select-y-prop\"\n ></gn-ui-dropdown-selector>\n <gn-ui-dropdown-selector\n class=\"basis-1/4\"\n [choices]=\"aggregationChoices\"\n class=\"aggregation-choices\"\n (selectValue)=\"aggregation$.next($event)\"\n [selected]=\"aggregation$.value\"\n [title]=\"'chart.dropdown.aggregation' | translate\"\n ></gn-ui-dropdown-selector>\n </div>\n <div\n class=\"relative h-full mt-2 bg-white border border-gray-300 rounded-lg overflow-hidden\"\n >\n <gn-ui-chart\n [data]=\"chartData$ | async\"\n [type]=\"chartType$.value\"\n [labelProperty]=\"labelProperty\"\n [valueProperty]=\"valueProperty\"\n ></gn-ui-chart>\n <gn-ui-loading-mask\n *ngIf=\"loading\"\n class=\"absolute inset-0\"\n [message]=\"'chart.loading.data' | translate\"\n ></gn-ui-loading-mask>\n <gn-ui-popup-alert\n *ngIf=\"error\"\n type=\"warning\"\n icon=\"matErrorOutlineOutline\"\n class=\"absolute m-2 inset-0\"\n >\n <span>{{ error }}</span>\n </gn-ui-popup-alert>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "component", type: DropdownSelectorComponent, selector: "gn-ui-dropdown-selector", inputs: ["title", "showTitle", "ariaName", "choices", "selected", "maxRows", "extraBtnClass", "minWidth", "disabled"], outputs: ["selectValue"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "component", type: ChartComponent, selector: "gn-ui-chart", inputs: ["data", "labelProperty", "valueProperty", "secondaryValueProperty", "type"] }, { kind: "component", type: LoadingMaskComponent, selector: "gn-ui-loading-mask", inputs: ["message"] }, { kind: "component", type: PopupAlertComponent, selector: "gn-ui-popup-alert", inputs: ["icon", "type", "position"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
36903
36503
|
}
|
|
36904
36504
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ChartViewComponent, decorators: [{
|
|
36905
36505
|
type: Component,
|
|
@@ -36911,7 +36511,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
36911
36511
|
LoadingMaskComponent,
|
|
36912
36512
|
PopupAlertComponent,
|
|
36913
36513
|
], standalone: true, template: "<div class=\"w-full h-full flex flex-col\">\n <div\n class=\"flex flex-col space-y-2 sm:flex-row sm:space-y-0 sm:space-x-2 justify-between text-[13px]\"\n >\n <gn-ui-dropdown-selector\n class=\"basis-1/4\"\n [choices]=\"typeChoices\"\n [extraBtnClass]=\"'secondary min-w-full'\"\n (selectValue)=\"chartType$.next($event)\"\n [selected]=\"chartType$.value\"\n [title]=\"'chart.dropdown.type' | translate\"\n ></gn-ui-dropdown-selector>\n <gn-ui-dropdown-selector\n class=\"basis-1/4\"\n [choices]=\"xChoices$ | async\"\n [extraBtnClass]=\"'secondary min-w-full'\"\n (selectValue)=\"xProperty$.next($event)\"\n [selected]=\"xProperty$.value\"\n [title]=\"'chart.dropdown.xProperty' | translate\"\n ></gn-ui-dropdown-selector>\n <gn-ui-dropdown-selector\n class=\"basis-1/4\"\n *ngIf=\"!isCountAggregation\"\n [choices]=\"yChoices$ | async\"\n (selectValue)=\"yProperty$.next($event)\"\n [selected]=\"yProperty$.value\"\n [title]=\"'chart.dropdown.yProperty' | translate\"\n class=\"select-y-prop\"\n ></gn-ui-dropdown-selector>\n <gn-ui-dropdown-selector\n class=\"basis-1/4\"\n [choices]=\"aggregationChoices\"\n class=\"aggregation-choices\"\n (selectValue)=\"aggregation$.next($event)\"\n [selected]=\"aggregation$.value\"\n [title]=\"'chart.dropdown.aggregation' | translate\"\n ></gn-ui-dropdown-selector>\n </div>\n <div\n class=\"relative h-full mt-2 bg-white border border-gray-300 rounded-lg overflow-hidden\"\n >\n <gn-ui-chart\n [data]=\"chartData$ | async\"\n [type]=\"chartType$.value\"\n [labelProperty]=\"labelProperty\"\n [valueProperty]=\"valueProperty\"\n ></gn-ui-chart>\n <gn-ui-loading-mask\n *ngIf=\"loading\"\n class=\"absolute inset-0\"\n [message]=\"'chart.loading.data' | translate\"\n ></gn-ui-loading-mask>\n <gn-ui-popup-alert\n *ngIf=\"error\"\n type=\"warning\"\n icon=\"matErrorOutlineOutline\"\n class=\"absolute m-2 inset-0\"\n >\n <span>{{ error }}</span>\n </gn-ui-popup-alert>\n </div>\n</div>\n" }]
|
|
36914
|
-
}], ctorParameters: () => [{ type: DataService }, { type: i0.ChangeDetectorRef }, { type: i1$1.TranslateService }], propDecorators: {
|
|
36514
|
+
}], ctorParameters: () => [{ type: DataService }, { type: i0.ChangeDetectorRef }, { type: i1$1.TranslateService }], propDecorators: { cacheActive: [{
|
|
36515
|
+
type: Input
|
|
36516
|
+
}], link: [{
|
|
36915
36517
|
type: Input
|
|
36916
36518
|
}], aggregation: [{
|
|
36917
36519
|
type: Input
|
|
@@ -37084,6 +36686,7 @@ class TableViewComponent {
|
|
|
37084
36686
|
constructor(dataService, translateService) {
|
|
37085
36687
|
this.dataService = dataService;
|
|
37086
36688
|
this.translateService = translateService;
|
|
36689
|
+
this.cacheActive = true;
|
|
37087
36690
|
this.currentLink$ = new BehaviorSubject(null);
|
|
37088
36691
|
this.loading = false;
|
|
37089
36692
|
this.error = null;
|
|
@@ -37101,7 +36704,7 @@ class TableViewComponent {
|
|
|
37101
36704
|
}), startWith(undefined), shareReplay(1));
|
|
37102
36705
|
}
|
|
37103
36706
|
getDatasetReader(link) {
|
|
37104
|
-
return this.dataService.getDataset(link);
|
|
36707
|
+
return this.dataService.getDataset(link, this.cacheActive);
|
|
37105
36708
|
}
|
|
37106
36709
|
onTableSelect(event) {
|
|
37107
36710
|
console.log(event);
|
|
@@ -37124,7 +36727,7 @@ class TableViewComponent {
|
|
|
37124
36727
|
this.loading = false;
|
|
37125
36728
|
}
|
|
37126
36729
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TableViewComponent, deps: [{ token: DataService }, { token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
37127
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TableViewComponent, isStandalone: true, selector: "gn-ui-table-view", inputs: { link: "link" }, ngImport: i0, template: "<div class=\"w-full h-full flex flex-col\">\n <div class=\"relative h-full\">\n <gn-ui-data-table\n *ngIf=\"tableData$ | async as dataset\"\n class=\"overflow-auto grow\"\n [dataset]=\"dataset\"\n (selected)=\"onTableSelect($event)\"\n ></gn-ui-data-table>\n <gn-ui-loading-mask\n *ngIf=\"loading\"\n class=\"absolute inset-0\"\n [message]=\"'table.loading.data' | translate\"\n ></gn-ui-loading-mask>\n <gn-ui-popup-alert\n *ngIf=\"error\"\n type=\"warning\"\n icon=\"matErrorOutlineOutline\"\n class=\"absolute m-2 inset-0\"\n >\n <span translate>{{ error }}</span>\n </gn-ui-popup-alert>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "component", type: DataTableComponent, selector: "gn-ui-data-table", inputs: ["dataset", "activeId"], outputs: ["selected"] }, { kind: "component", type: LoadingMaskComponent, selector: "gn-ui-loading-mask", inputs: ["message"] }, { kind: "component", type: PopupAlertComponent, selector: "gn-ui-popup-alert", inputs: ["icon", "type", "position"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
36730
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TableViewComponent, isStandalone: true, selector: "gn-ui-table-view", inputs: { cacheActive: "cacheActive", link: "link" }, ngImport: i0, template: "<div class=\"w-full h-full flex flex-col\">\n <div class=\"relative h-full\">\n <gn-ui-data-table\n *ngIf=\"tableData$ | async as dataset\"\n class=\"overflow-auto grow\"\n [dataset]=\"dataset\"\n (selected)=\"onTableSelect($event)\"\n ></gn-ui-data-table>\n <gn-ui-loading-mask\n *ngIf=\"loading\"\n class=\"absolute inset-0\"\n [message]=\"'table.loading.data' | translate\"\n ></gn-ui-loading-mask>\n <gn-ui-popup-alert\n *ngIf=\"error\"\n type=\"warning\"\n icon=\"matErrorOutlineOutline\"\n class=\"absolute m-2 inset-0\"\n >\n <span translate>{{ error }}</span>\n </gn-ui-popup-alert>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "component", type: DataTableComponent, selector: "gn-ui-data-table", inputs: ["dataset", "activeId"], outputs: ["selected"] }, { kind: "component", type: LoadingMaskComponent, selector: "gn-ui-loading-mask", inputs: ["message"] }, { kind: "component", type: PopupAlertComponent, selector: "gn-ui-popup-alert", inputs: ["icon", "type", "position"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
37128
36731
|
}
|
|
37129
36732
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TableViewComponent, decorators: [{
|
|
37130
36733
|
type: Component,
|
|
@@ -37135,7 +36738,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
37135
36738
|
PopupAlertComponent,
|
|
37136
36739
|
TranslateModule,
|
|
37137
36740
|
], standalone: true, template: "<div class=\"w-full h-full flex flex-col\">\n <div class=\"relative h-full\">\n <gn-ui-data-table\n *ngIf=\"tableData$ | async as dataset\"\n class=\"overflow-auto grow\"\n [dataset]=\"dataset\"\n (selected)=\"onTableSelect($event)\"\n ></gn-ui-data-table>\n <gn-ui-loading-mask\n *ngIf=\"loading\"\n class=\"absolute inset-0\"\n [message]=\"'table.loading.data' | translate\"\n ></gn-ui-loading-mask>\n <gn-ui-popup-alert\n *ngIf=\"error\"\n type=\"warning\"\n icon=\"matErrorOutlineOutline\"\n class=\"absolute m-2 inset-0\"\n >\n <span translate>{{ error }}</span>\n </gn-ui-popup-alert>\n </div>\n</div>\n" }]
|
|
37138
|
-
}], ctorParameters: () => [{ type: DataService }, { type: i1$1.TranslateService }], propDecorators: {
|
|
36741
|
+
}], ctorParameters: () => [{ type: DataService }, { type: i1$1.TranslateService }], propDecorators: { cacheActive: [{
|
|
36742
|
+
type: Input
|
|
36743
|
+
}], link: [{
|
|
37139
36744
|
type: Input
|
|
37140
36745
|
}] } });
|
|
37141
36746
|
|
|
@@ -37154,7 +36759,15 @@ class MdViewFacade {
|
|
|
37154
36759
|
this.isPresent$ = this.store.pipe(select(getMetadataUuid), map$1((uuid) => !!uuid));
|
|
37155
36760
|
this.isMetadataLoading$ = this.store.pipe(select(getMetadataIsLoading));
|
|
37156
36761
|
this.metadata$ = this.store.pipe(select(getMetadata), filter((md) => !!md));
|
|
36762
|
+
this.featureCatalog$ = this.store.pipe(select(getFeatureCatalog));
|
|
37157
36763
|
this.isIncomplete$ = this.store.pipe(select(getMetadataIsIncomplete), filter((incomplete) => incomplete !== null));
|
|
36764
|
+
this.isHighUpdateFrequency$ = this.metadata$.pipe(map$1((record) => {
|
|
36765
|
+
if (record.updateFrequency instanceof Object) {
|
|
36766
|
+
return (record.updateFrequency.per === 'day' &&
|
|
36767
|
+
record.updateFrequency.updatedTimes > 1);
|
|
36768
|
+
}
|
|
36769
|
+
return record.updateFrequency === 'continual';
|
|
36770
|
+
}));
|
|
37158
36771
|
this.error$ = this.store.pipe(select(getMetadataError));
|
|
37159
36772
|
this.related$ = this.store.pipe(select(getRelated));
|
|
37160
36773
|
this.chartConfig$ = this.store.pipe(select(getChartConfig));
|
|
@@ -37250,6 +36863,11 @@ class MdViewEffects {
|
|
|
37250
36863
|
}
|
|
37251
36864
|
return loadFullMetadataSuccess({ full: record });
|
|
37252
36865
|
}), catchError((error) => of(loadFullMetadataFailure({ otherError: error.message })))));
|
|
36866
|
+
this.loadFeatureCatalog$ = createEffect(() => this.actions$.pipe(ofType(loadFullMetadataSuccess), filter(({ full }) => full !== undefined), switchMap$1(({ full }) => this.recordsRepository.getFeatureCatalog(full)), map$1((featureCatalog) => loadFeatureCatalogSuccess({
|
|
36867
|
+
datasetCatalog: featureCatalog,
|
|
36868
|
+
})), catchError((error) => of(loadFeatureCatalogFailure({
|
|
36869
|
+
error: error.message,
|
|
36870
|
+
})))));
|
|
37253
36871
|
/*
|
|
37254
36872
|
Related effects
|
|
37255
36873
|
*/
|
|
@@ -37835,10 +37453,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
37835
37453
|
}] } });
|
|
37836
37454
|
|
|
37837
37455
|
class DataViewComponent {
|
|
37456
|
+
set exceedsLimit(value) {
|
|
37457
|
+
this.excludeWfs$.next(value);
|
|
37458
|
+
}
|
|
37838
37459
|
constructor(mdViewFacade) {
|
|
37839
37460
|
this.mdViewFacade = mdViewFacade;
|
|
37840
37461
|
this.displaySource = true;
|
|
37841
37462
|
this.chartConfig$ = new BehaviorSubject(null);
|
|
37463
|
+
this.cacheActive$ = this.mdViewFacade.isHighUpdateFrequency$.pipe(map$1((highF) => !highF));
|
|
37464
|
+
this.hidePreview = false;
|
|
37465
|
+
this.excludeWfs$ = new BehaviorSubject(false);
|
|
37842
37466
|
this.compatibleDataLinks$ = combineLatest([
|
|
37843
37467
|
this.mdViewFacade.dataLinks$,
|
|
37844
37468
|
this.mdViewFacade.geoDataLinks$,
|
|
@@ -37849,7 +37473,7 @@ class DataViewComponent {
|
|
|
37849
37473
|
}));
|
|
37850
37474
|
this.dropdownChoices$ = this.compatibleDataLinks$.pipe(tap$1((links) => {
|
|
37851
37475
|
if (links.indexOf(this.selectedLink$.value) === -1) {
|
|
37852
|
-
this.
|
|
37476
|
+
this.selectLink(JSON.stringify(links[0]));
|
|
37853
37477
|
}
|
|
37854
37478
|
}), map$1((links) => links.map((link) => ({
|
|
37855
37479
|
label: getLinkLabel(link),
|
|
@@ -37863,10 +37487,20 @@ class DataViewComponent {
|
|
|
37863
37487
|
selectLink(linkAsString) {
|
|
37864
37488
|
const link = JSON.parse(linkAsString);
|
|
37865
37489
|
link.url = new URL(link.url);
|
|
37866
|
-
this.
|
|
37490
|
+
this.excludeWfs$
|
|
37491
|
+
.pipe(tap$1((excludeWfs) => {
|
|
37492
|
+
this.hidePreview =
|
|
37493
|
+
link['accessServiceProtocol'] === 'wfs' &&
|
|
37494
|
+
excludeWfs &&
|
|
37495
|
+
this.mode === 'chart'
|
|
37496
|
+
? true
|
|
37497
|
+
: false;
|
|
37498
|
+
this.selectedLink$.next(link);
|
|
37499
|
+
}))
|
|
37500
|
+
.subscribe();
|
|
37867
37501
|
}
|
|
37868
37502
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DataViewComponent, deps: [{ token: MdViewFacade }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
37869
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DataViewComponent, isStandalone: true, selector: "gn-ui-data-view", inputs: { mode: "mode", displaySource: "displaySource" }, outputs: { chartConfig$: "chartConfig$" }, ngImport: i0, template: "<div class=\"w-full h-full flex flex-col p-1\">\n <gn-ui-dropdown-selector\n *ngIf=\"dropdownChoices$ | async as choices\"\n [ngClass]=\"{ hidden: !displaySource }\"\n [title]=\"'table.select.data' | translate\"\n class=\"truncate p-1 -mx-1 self-end mb-1\"\n extraBtnClass=\"!text-primary font-sans font-medium\"\n [choices]=\"choices\"\n (selectValue)=\"selectLink($event)\"\n ></gn-ui-dropdown-selector>\n <div class=\"relative h-[460px]\">\n
|
|
37503
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DataViewComponent, isStandalone: true, selector: "gn-ui-data-view", inputs: { mode: "mode", displaySource: "displaySource", exceedsLimit: "exceedsLimit" }, outputs: { chartConfig$: "chartConfig$" }, ngImport: i0, template: "<div class=\"w-full h-full flex flex-col p-1\">\n <gn-ui-dropdown-selector\n *ngIf=\"dropdownChoices$ | async as choices\"\n [ngClass]=\"{ hidden: !displaySource }\"\n [title]=\"'table.select.data' | translate\"\n class=\"truncate p-1 -mx-1 self-end mb-1\"\n extraBtnClass=\"!text-primary font-sans font-medium\"\n [choices]=\"choices\"\n (selectValue)=\"selectLink($event)\"\n ></gn-ui-dropdown-selector>\n <ng-container *ngIf=\"hidePreview; else dataView\">\n <gn-ui-popup-alert\n type=\"warning\"\n icon=\"matErrorOutlineOutline\"\n class=\"block h-12 p-1\"\n >\n <span translate>record.feature.limit</span>\n </gn-ui-popup-alert>\n </ng-container>\n <ng-template #dataView>\n <div class=\"relative h-[460px]\">\n <gn-ui-table-view\n *ngIf=\"mode === 'table'\"\n [cacheActive]=\"cacheActive$ | async\"\n [link]=\"selectedLink$ | async\"\n ></gn-ui-table-view>\n <gn-ui-chart-view\n *ngIf=\"mode === 'chart'\"\n (chartConfig$)=\"setChartConfig($event)\"\n [cacheActive]=\"cacheActive$ | async\"\n [link]=\"selectedLink$ | async\"\n ></gn-ui-chart-view>\n </div>\n </ng-template>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "component", type: DropdownSelectorComponent, selector: "gn-ui-dropdown-selector", inputs: ["title", "showTitle", "ariaName", "choices", "selected", "maxRows", "extraBtnClass", "minWidth", "disabled"], outputs: ["selectValue"] }, { kind: "component", type: TableViewComponent, selector: "gn-ui-table-view", inputs: ["cacheActive", "link"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: ChartViewComponent, selector: "gn-ui-chart-view", inputs: ["cacheActive", "link", "aggregation", "xProperty", "yProperty", "chartType"], outputs: ["chartConfig$"] }, { kind: "component", type: PopupAlertComponent, selector: "gn-ui-popup-alert", inputs: ["icon", "type", "position"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
37870
37504
|
}
|
|
37871
37505
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DataViewComponent, decorators: [{
|
|
37872
37506
|
type: Component,
|
|
@@ -37876,11 +37510,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
37876
37510
|
TableViewComponent,
|
|
37877
37511
|
TranslateModule,
|
|
37878
37512
|
ChartViewComponent,
|
|
37879
|
-
|
|
37513
|
+
PopupAlertComponent,
|
|
37514
|
+
], template: "<div class=\"w-full h-full flex flex-col p-1\">\n <gn-ui-dropdown-selector\n *ngIf=\"dropdownChoices$ | async as choices\"\n [ngClass]=\"{ hidden: !displaySource }\"\n [title]=\"'table.select.data' | translate\"\n class=\"truncate p-1 -mx-1 self-end mb-1\"\n extraBtnClass=\"!text-primary font-sans font-medium\"\n [choices]=\"choices\"\n (selectValue)=\"selectLink($event)\"\n ></gn-ui-dropdown-selector>\n <ng-container *ngIf=\"hidePreview; else dataView\">\n <gn-ui-popup-alert\n type=\"warning\"\n icon=\"matErrorOutlineOutline\"\n class=\"block h-12 p-1\"\n >\n <span translate>record.feature.limit</span>\n </gn-ui-popup-alert>\n </ng-container>\n <ng-template #dataView>\n <div class=\"relative h-[460px]\">\n <gn-ui-table-view\n *ngIf=\"mode === 'table'\"\n [cacheActive]=\"cacheActive$ | async\"\n [link]=\"selectedLink$ | async\"\n ></gn-ui-table-view>\n <gn-ui-chart-view\n *ngIf=\"mode === 'chart'\"\n (chartConfig$)=\"setChartConfig($event)\"\n [cacheActive]=\"cacheActive$ | async\"\n [link]=\"selectedLink$ | async\"\n ></gn-ui-chart-view>\n </div>\n </ng-template>\n</div>\n" }]
|
|
37880
37515
|
}], ctorParameters: () => [{ type: MdViewFacade }], propDecorators: { mode: [{
|
|
37881
37516
|
type: Input
|
|
37882
37517
|
}], displaySource: [{
|
|
37883
37518
|
type: Input
|
|
37519
|
+
}], exceedsLimit: [{
|
|
37520
|
+
type: Input
|
|
37884
37521
|
}], chartConfig$: [{
|
|
37885
37522
|
type: Output
|
|
37886
37523
|
}] } });
|
|
@@ -38052,7 +37689,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
38052
37689
|
marker('map.dropdown.placeholder');
|
|
38053
37690
|
marker('wfs.feature.limit');
|
|
38054
37691
|
class MapViewComponent {
|
|
38055
|
-
set
|
|
37692
|
+
set exceedsLimit(value) {
|
|
38056
37693
|
this.excludeWfs$.next(value);
|
|
38057
37694
|
}
|
|
38058
37695
|
toggleLegend() {
|
|
@@ -38071,6 +37708,7 @@ class MapViewComponent {
|
|
|
38071
37708
|
this.changeRef = changeRef;
|
|
38072
37709
|
this.displaySource = true;
|
|
38073
37710
|
this.excludeWfs$ = new BehaviorSubject(false);
|
|
37711
|
+
this.hidePreview = false;
|
|
38074
37712
|
this.showLegend = true;
|
|
38075
37713
|
this.legendExists = false;
|
|
38076
37714
|
this.compatibleMapLinks$ = combineLatest([
|
|
@@ -38097,9 +37735,10 @@ class MapViewComponent {
|
|
|
38097
37735
|
return of([]);
|
|
38098
37736
|
}
|
|
38099
37737
|
if (excludeWfs && link.accessServiceProtocol === 'wfs') {
|
|
38100
|
-
this.
|
|
37738
|
+
this.hidePreview = true;
|
|
38101
37739
|
return of([]);
|
|
38102
37740
|
}
|
|
37741
|
+
this.hidePreview = false;
|
|
38103
37742
|
this.loading = true;
|
|
38104
37743
|
this.error = null;
|
|
38105
37744
|
return this.getLayerFromLink(link).pipe(map$1((layer) => [layer]), catchError((e) => {
|
|
@@ -38169,7 +37808,8 @@ class MapViewComponent {
|
|
|
38169
37808
|
link.accessServiceProtocol === 'esriRest' ||
|
|
38170
37809
|
link.accessServiceProtocol === 'ogcFeatures')) ||
|
|
38171
37810
|
link.type === 'download') {
|
|
38172
|
-
|
|
37811
|
+
const cacheActive = true; // TODO implement whether should be true or false
|
|
37812
|
+
return this.dataService.readAsGeoJson(link, cacheActive).pipe(map$1((data) => ({
|
|
38173
37813
|
type: 'geojson',
|
|
38174
37814
|
data,
|
|
38175
37815
|
})));
|
|
@@ -38180,7 +37820,7 @@ class MapViewComponent {
|
|
|
38180
37820
|
this.selectedLinkIndex$.next(link);
|
|
38181
37821
|
}
|
|
38182
37822
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MapViewComponent, deps: [{ token: MdViewFacade }, { token: MapUtilsService }, { token: DataService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
38183
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MapViewComponent, isStandalone: true, selector: "gn-ui-map-view", inputs: {
|
|
37823
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MapViewComponent, isStandalone: true, selector: "gn-ui-map-view", inputs: { exceedsLimit: "exceedsLimit", displaySource: "displaySource" }, viewQueries: [{ propertyName: "mapContainer", first: true, predicate: ["mapContainer"], descendants: true }], ngImport: i0, template: "<div class=\"w-full h-full flex flex-col p-1\">\n <div class=\"w-full flex justify-end\">\n <gn-ui-dropdown-selector\n [ngClass]=\"{ hidden: !displaySource }\"\n class=\"truncate p-1 -mx-1 mb-1\"\n extraBtnClass=\"!text-primary font-sans font-medium\"\n [title]=\"'map.select.layer' | translate\"\n [choices]=\"dropdownChoices$ | async\"\n (selectValue)=\"selectLinkToDisplay($event)\"\n ></gn-ui-dropdown-selector>\n <gn-ui-external-viewer-button\n class=\"shrink-0 py-1 place-self-end\"\n [link]=\"selectedLink$ | async\"\n >\n </gn-ui-external-viewer-button>\n </div>\n <ng-container *ngIf=\"hidePreview; else mapView\">\n <gn-ui-popup-alert\n type=\"warning\"\n icon=\"matErrorOutlineOutline\"\n class=\"block h-12 p-1\"\n >\n <span translate>record.feature.limit</span>\n </gn-ui-popup-alert>\n </ng-container>\n <ng-template #mapView>\n <div\n class=\"relative w-full h-full bg-white border border-gray-300 rounded-lg overflow-hidden\"\n >\n <gn-ui-map-container\n #mapContainer\n [context]=\"mapContext$ | async\"\n (featuresClick)=\"onMapFeatureSelect($event)\"\n ></gn-ui-map-container>\n <div\n class=\"top-[1em] right-[1em] p-3 bg-white absolute overflow-y-auto overflow-x-hidden max-h-72 w-56\"\n [class.hidden]=\"!selection\"\n >\n <gn-ui-button\n type=\"light\"\n (buttonClick)=\"resetSelection()\"\n style=\"\n --gn-ui-button-padding: 0px;\n --gn-ui-button-width: 24px;\n --gn-ui-button-height: 24px;\n \"\n extraClass=\"absolute right-[0.5em] ml-[8px] mr-[10px]\"\n >\n <ng-icon name=\"matClose\" class=\"align-middle text-sm\"></ng-icon>\n </gn-ui-button>\n <gn-ui-feature-detail [feature]=\"selection\"></gn-ui-feature-detail>\n </div>\n\n <div\n class=\"top-[1em] p-3 bg-white absolute overflow-y-auto overflow-x-hidden max-h-72 w-56\"\n [ngClass]=\"{ 'right-[1em]': !selection, 'right-[16em]': selection }\"\n [hidden]=\"!showLegend || !legendExists\"\n >\n <div class=\"flex justify-between items-center mb-2\">\n <div class=\"text-primary font-bold\">Legend</div>\n <gn-ui-button\n type=\"light\"\n (buttonClick)=\"toggleLegend()\"\n style=\"\n --gn-ui-button-padding: 0px;\n --gn-ui-button-width: 24px;\n --gn-ui-button-height: 24px;\n \"\n extraClass=\"ml-[8px] mr-[10px]\"\n >\n <ng-icon name=\"matClose\" class=\"align-middle text-sm\"></ng-icon>\n </gn-ui-button>\n </div>\n <gn-ui-map-legend\n [context]=\"mapContext$ | async\"\n (legendStatusChange)=\"onLegendStatusChange($event)\"\n ></gn-ui-map-legend>\n </div>\n\n <gn-ui-button\n *ngIf=\"!showLegend && legendExists && !selection\"\n type=\"outline\"\n (buttonClick)=\"toggleLegend()\"\n extraClass=\"absolute top-[1em] right-[1em] rounded p-1 text-xs bg-white\"\n >\n Legend\n </gn-ui-button>\n\n <gn-ui-loading-mask\n *ngIf=\"loading\"\n class=\"absolute inset-0\"\n [message]=\"'map.loading.data' | translate\"\n ></gn-ui-loading-mask>\n <gn-ui-popup-alert\n *ngIf=\"error\"\n type=\"warning\"\n icon=\"matErrorOutlineOutline\"\n class=\"absolute m-2 inset-0\"\n >\n <span translate>{{ error }}</span>\n </gn-ui-popup-alert>\n </div>\n </ng-template>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "component", type: DropdownSelectorComponent, selector: "gn-ui-dropdown-selector", inputs: ["title", "showTitle", "ariaName", "choices", "selected", "maxRows", "extraBtnClass", "minWidth", "disabled"], outputs: ["selectValue"] }, { kind: "component", type: MapContainerComponent, selector: "gn-ui-map-container", inputs: ["context"], outputs: ["featuresClick", "featuresHover", "mapClick"] }, { kind: "component", type: FeatureDetailComponent, selector: "gn-ui-feature-detail", inputs: ["feature"] }, { kind: "component", type: PopupAlertComponent, selector: "gn-ui-popup-alert", inputs: ["icon", "type", "position"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: LoadingMaskComponent, selector: "gn-ui-loading-mask", inputs: ["message"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "component", type: ExternalViewerButtonComponent, selector: "gn-ui-external-viewer-button", inputs: ["link"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "component", type: MapLegendComponent, selector: "gn-ui-map-legend", inputs: ["context"], outputs: ["legendStatusChange"] }], viewProviders: [provideIcons({ matClose })], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
38184
37824
|
}
|
|
38185
37825
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MapViewComponent, decorators: [{
|
|
38186
37826
|
type: Component,
|
|
@@ -38196,8 +37836,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
38196
37836
|
ExternalViewerButtonComponent,
|
|
38197
37837
|
ButtonComponent,
|
|
38198
37838
|
MapLegendComponent,
|
|
38199
|
-
], viewProviders: [provideIcons({ matClose })], template: "<div class=\"w-full h-full flex flex-col p-1\">\n <div class=\"w-full flex justify-end\">\n <gn-ui-dropdown-selector\n [ngClass]=\"{ hidden: !displaySource }\"\n class=\"truncate p-1 -mx-1 mb-1\"\n extraBtnClass=\"!text-primary font-sans font-medium\"\n [title]=\"'map.select.layer' | translate\"\n [choices]=\"dropdownChoices$ | async\"\n (selectValue)=\"selectLinkToDisplay($event)\"\n ></gn-ui-dropdown-selector>\n <gn-ui-external-viewer-button\n class=\"shrink-0 py-1 place-self-end\"\n [link]=\"selectedLink$ | async\"\n >\n </gn-ui-external-viewer-button>\n </div>\n <
|
|
38200
|
-
}], ctorParameters: () => [{ type: MdViewFacade }, { type: MapUtilsService }, { type: DataService }, { type: i0.ChangeDetectorRef }], propDecorators: {
|
|
37839
|
+
], viewProviders: [provideIcons({ matClose })], template: "<div class=\"w-full h-full flex flex-col p-1\">\n <div class=\"w-full flex justify-end\">\n <gn-ui-dropdown-selector\n [ngClass]=\"{ hidden: !displaySource }\"\n class=\"truncate p-1 -mx-1 mb-1\"\n extraBtnClass=\"!text-primary font-sans font-medium\"\n [title]=\"'map.select.layer' | translate\"\n [choices]=\"dropdownChoices$ | async\"\n (selectValue)=\"selectLinkToDisplay($event)\"\n ></gn-ui-dropdown-selector>\n <gn-ui-external-viewer-button\n class=\"shrink-0 py-1 place-self-end\"\n [link]=\"selectedLink$ | async\"\n >\n </gn-ui-external-viewer-button>\n </div>\n <ng-container *ngIf=\"hidePreview; else mapView\">\n <gn-ui-popup-alert\n type=\"warning\"\n icon=\"matErrorOutlineOutline\"\n class=\"block h-12 p-1\"\n >\n <span translate>record.feature.limit</span>\n </gn-ui-popup-alert>\n </ng-container>\n <ng-template #mapView>\n <div\n class=\"relative w-full h-full bg-white border border-gray-300 rounded-lg overflow-hidden\"\n >\n <gn-ui-map-container\n #mapContainer\n [context]=\"mapContext$ | async\"\n (featuresClick)=\"onMapFeatureSelect($event)\"\n ></gn-ui-map-container>\n <div\n class=\"top-[1em] right-[1em] p-3 bg-white absolute overflow-y-auto overflow-x-hidden max-h-72 w-56\"\n [class.hidden]=\"!selection\"\n >\n <gn-ui-button\n type=\"light\"\n (buttonClick)=\"resetSelection()\"\n style=\"\n --gn-ui-button-padding: 0px;\n --gn-ui-button-width: 24px;\n --gn-ui-button-height: 24px;\n \"\n extraClass=\"absolute right-[0.5em] ml-[8px] mr-[10px]\"\n >\n <ng-icon name=\"matClose\" class=\"align-middle text-sm\"></ng-icon>\n </gn-ui-button>\n <gn-ui-feature-detail [feature]=\"selection\"></gn-ui-feature-detail>\n </div>\n\n <div\n class=\"top-[1em] p-3 bg-white absolute overflow-y-auto overflow-x-hidden max-h-72 w-56\"\n [ngClass]=\"{ 'right-[1em]': !selection, 'right-[16em]': selection }\"\n [hidden]=\"!showLegend || !legendExists\"\n >\n <div class=\"flex justify-between items-center mb-2\">\n <div class=\"text-primary font-bold\">Legend</div>\n <gn-ui-button\n type=\"light\"\n (buttonClick)=\"toggleLegend()\"\n style=\"\n --gn-ui-button-padding: 0px;\n --gn-ui-button-width: 24px;\n --gn-ui-button-height: 24px;\n \"\n extraClass=\"ml-[8px] mr-[10px]\"\n >\n <ng-icon name=\"matClose\" class=\"align-middle text-sm\"></ng-icon>\n </gn-ui-button>\n </div>\n <gn-ui-map-legend\n [context]=\"mapContext$ | async\"\n (legendStatusChange)=\"onLegendStatusChange($event)\"\n ></gn-ui-map-legend>\n </div>\n\n <gn-ui-button\n *ngIf=\"!showLegend && legendExists && !selection\"\n type=\"outline\"\n (buttonClick)=\"toggleLegend()\"\n extraClass=\"absolute top-[1em] right-[1em] rounded p-1 text-xs bg-white\"\n >\n Legend\n </gn-ui-button>\n\n <gn-ui-loading-mask\n *ngIf=\"loading\"\n class=\"absolute inset-0\"\n [message]=\"'map.loading.data' | translate\"\n ></gn-ui-loading-mask>\n <gn-ui-popup-alert\n *ngIf=\"error\"\n type=\"warning\"\n icon=\"matErrorOutlineOutline\"\n class=\"absolute m-2 inset-0\"\n >\n <span translate>{{ error }}</span>\n </gn-ui-popup-alert>\n </div>\n </ng-template>\n</div>\n" }]
|
|
37840
|
+
}], ctorParameters: () => [{ type: MdViewFacade }, { type: MapUtilsService }, { type: DataService }, { type: i0.ChangeDetectorRef }], propDecorators: { exceedsLimit: [{
|
|
38201
37841
|
type: Input
|
|
38202
37842
|
}], displaySource: [{
|
|
38203
37843
|
type: Input
|
|
@@ -38684,8 +38324,8 @@ const DEFAULT_CONFIGURATION = {
|
|
|
38684
38324
|
labelKey: marker('editor.record.form.page.description'),
|
|
38685
38325
|
sections: [
|
|
38686
38326
|
TITLE_SECTION,
|
|
38687
|
-
ABOUT_SECTION,
|
|
38688
38327
|
CLASSIFICATION_SECTION,
|
|
38328
|
+
ABOUT_SECTION,
|
|
38689
38329
|
GEOGRAPHICAL_COVERAGE_SECTION,
|
|
38690
38330
|
],
|
|
38691
38331
|
},
|
|
@@ -39030,9 +38670,8 @@ var WizardFieldType;
|
|
|
39030
38670
|
(function (WizardFieldType) {
|
|
39031
38671
|
WizardFieldType[WizardFieldType["TEXT"] = 0] = "TEXT";
|
|
39032
38672
|
WizardFieldType[WizardFieldType["TEXT_AREA"] = 1] = "TEXT_AREA";
|
|
39033
|
-
WizardFieldType[WizardFieldType["
|
|
39034
|
-
WizardFieldType[WizardFieldType["
|
|
39035
|
-
WizardFieldType[WizardFieldType["DROPDOWN"] = 4] = "DROPDOWN";
|
|
38673
|
+
WizardFieldType[WizardFieldType["DATA_PICKER"] = 2] = "DATA_PICKER";
|
|
38674
|
+
WizardFieldType[WizardFieldType["DROPDOWN"] = 3] = "DROPDOWN";
|
|
39036
38675
|
})(WizardFieldType || (WizardFieldType = {}));
|
|
39037
38676
|
|
|
39038
38677
|
class WizardService {
|
|
@@ -39154,9 +38793,6 @@ class WizardFieldComponent {
|
|
|
39154
38793
|
case WizardFieldType.TEXT: {
|
|
39155
38794
|
return data || '';
|
|
39156
38795
|
}
|
|
39157
|
-
case WizardFieldType.CHIPS: {
|
|
39158
|
-
return data ? JSON.parse(data) : [];
|
|
39159
|
-
}
|
|
39160
38796
|
case WizardFieldType.TEXT_AREA: {
|
|
39161
38797
|
return data || '';
|
|
39162
38798
|
}
|
|
@@ -39186,10 +38822,6 @@ class WizardFieldComponent {
|
|
|
39186
38822
|
this.initializeTextInputListener();
|
|
39187
38823
|
break;
|
|
39188
38824
|
}
|
|
39189
|
-
case WizardFieldType.CHIPS: {
|
|
39190
|
-
this.initializeChipsListener();
|
|
39191
|
-
break;
|
|
39192
|
-
}
|
|
39193
38825
|
case WizardFieldType.TEXT_AREA: {
|
|
39194
38826
|
this.initializeTextAreaListener();
|
|
39195
38827
|
return;
|
|
@@ -39209,11 +38841,6 @@ class WizardFieldComponent {
|
|
|
39209
38841
|
this.wizardService.onWizardWizardFieldDataChanged(this.wizardFieldConfig.id, value);
|
|
39210
38842
|
}));
|
|
39211
38843
|
}
|
|
39212
|
-
initializeChipsListener() {
|
|
39213
|
-
this.subs.add(this.chips.itemsChange.subscribe((items) => {
|
|
39214
|
-
this.wizardService.onWizardWizardFieldDataChanged(this.wizardFieldConfig.id, JSON.stringify(items));
|
|
39215
|
-
}));
|
|
39216
|
-
}
|
|
39217
38844
|
initializeTextAreaListener() {
|
|
39218
38845
|
this.subs.add(this.textArea.valueChange.subscribe((value) => {
|
|
39219
38846
|
this.wizardService.onWizardWizardFieldDataChanged(this.wizardFieldConfig.id, value);
|
|
@@ -39247,7 +38874,7 @@ class WizardFieldComponent {
|
|
|
39247
38874
|
deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],
|
|
39248
38875
|
},
|
|
39249
38876
|
{ provide: MAT_DATE_FORMATS, useValue: MY_FORMATS },
|
|
39250
|
-
], viewQueries: [{ propertyName: "searchText", first: true, predicate: ["searchText"], descendants: true }, { propertyName: "
|
|
38877
|
+
], viewQueries: [{ propertyName: "searchText", first: true, predicate: ["searchText"], descendants: true }, { propertyName: "textArea", first: true, predicate: ["textArea"], descendants: true }, { propertyName: "dropdown", first: true, predicate: ["dropdown"], descendants: true }], ngImport: i0, template: "<div class=\"flex flex-1\">\n <span [class]=\"wizardFieldConfig.icon + ' pr-10'\"></span>\n <div class=\"flex flex-col flex-1\">\n <div translate class=\"text-xl font-bold pb-1\">\n {{ wizardFieldConfig.label }}\n </div>\n <div\n class=\"w-1/2 h-12\"\n *ngIf=\"wizardFieldType.TEXT === wizardFieldConfig.type\"\n >\n <gn-ui-text-input\n #searchText\n [id]=\"wizardFieldConfig.id\"\n [value]=\"wizardFieldData\"\n [required]=\"wizardFieldConfig.required || false\"\n placeholder=\"\"\n ></gn-ui-text-input>\n </div>\n <div\n class=\"h-32 w-11/12\"\n *ngIf=\"wizardFieldType.TEXT_AREA === wizardFieldConfig.type\"\n >\n <gn-ui-text-area\n #textArea\n [id]=\"wizardFieldConfig.id\"\n [value]=\"wizardFieldData\"\n [required]=\"wizardFieldConfig.required || false\"\n placeholder=\"\"\n ></gn-ui-text-area>\n </div>\n <div\n class=\"w-1/2 h-12\"\n *ngIf=\"wizardFieldType.DATA_PICKER === wizardFieldConfig.type\"\n >\n <input\n [id]=\"wizardFieldConfig.id\"\n type=\"text\"\n (click)=\"datepicker.open()\"\n class=\"rounded p-2 text-gray-700 w-full leading-tight focus:outline-none focus:border-primary\"\n [value]=\"wizardFieldData\"\n [matDatepicker]=\"datepicker\"\n (dateChange)=\"onDateChange($event)\"\n />\n <mat-datepicker #datepicker></mat-datepicker>\n </div>\n <div\n class=\"w-1/2 h-12\"\n *ngIf=\"wizardFieldType.DROPDOWN === wizardFieldConfig.type\"\n >\n <gn-ui-dropdown-selector\n #dropdown\n [id]=\"wizardFieldConfig.id\"\n [title]=\"''\"\n [extraBtnClass]=\"'secondary min-w-full'\"\n [showTitle]=\"false\"\n [choices]=\"dropdownChoices\"\n [selected]=\"wizardFieldData\"\n ariaName=\"search-sort-by\"\n ></gn-ui-dropdown-selector>\n </div>\n </div>\n</div>\n", styles: [":host{display:flex;flex:1}gn-ui-text-input::ng-deep input,input[type=text]{height:100%;background:#fff;color:#000;font-style:italic;border-width:2px;border-color:var(--color-primary)}gn-ui-text-area::ng-deep textarea{border-width:2px;border-color:var(--color-primary)}gn-ui-dropdown-selector::ng-deep div{height:100%}gn-ui-dropdown-selector::ng-deep select{height:100%;border-width:2px;border-color:var(--color-primary);background-color:#fff}\n"], dependencies: [{ kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: DropdownSelectorComponent, selector: "gn-ui-dropdown-selector", inputs: ["title", "showTitle", "ariaName", "choices", "selected", "maxRows", "extraBtnClass", "minWidth", "disabled"], outputs: ["selectValue"] }, { kind: "component", type: TextAreaComponent, selector: "gn-ui-text-area", inputs: ["value", "disabled", "extraClass", "placeholder", "required"], outputs: ["valueChange"] }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i1$8.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i1$8.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: TextInputComponent, selector: "gn-ui-text-input", inputs: ["value", "extraClass", "placeholder", "required", "disabled"], outputs: ["valueChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
39251
38878
|
}
|
|
39252
38879
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: WizardFieldComponent, decorators: [{
|
|
39253
38880
|
type: Component,
|
|
@@ -39259,15 +38886,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
39259
38886
|
deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],
|
|
39260
38887
|
},
|
|
39261
38888
|
{ provide: MAT_DATE_FORMATS, useValue: MY_FORMATS },
|
|
39262
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"flex flex-1\">\n <span [class]=\"wizardFieldConfig.icon + ' pr-10'\"></span>\n <div class=\"flex flex-col flex-1\">\n <div translate class=\"text-xl font-bold pb-1\">\n {{ wizardFieldConfig.label }}\n </div>\n <div\n class=\"w-1/2 h-12\"\n *ngIf=\"wizardFieldType.TEXT === wizardFieldConfig.type\"\n >\n <gn-ui-text-input\n #searchText\n [id]=\"wizardFieldConfig.id\"\n [value]=\"wizardFieldData\"\n [required]=\"wizardFieldConfig.required || false\"\n placeholder=\"\"\n ></gn-ui-text-input>\n </div>\n <div\n class=\"
|
|
38889
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"flex flex-1\">\n <span [class]=\"wizardFieldConfig.icon + ' pr-10'\"></span>\n <div class=\"flex flex-col flex-1\">\n <div translate class=\"text-xl font-bold pb-1\">\n {{ wizardFieldConfig.label }}\n </div>\n <div\n class=\"w-1/2 h-12\"\n *ngIf=\"wizardFieldType.TEXT === wizardFieldConfig.type\"\n >\n <gn-ui-text-input\n #searchText\n [id]=\"wizardFieldConfig.id\"\n [value]=\"wizardFieldData\"\n [required]=\"wizardFieldConfig.required || false\"\n placeholder=\"\"\n ></gn-ui-text-input>\n </div>\n <div\n class=\"h-32 w-11/12\"\n *ngIf=\"wizardFieldType.TEXT_AREA === wizardFieldConfig.type\"\n >\n <gn-ui-text-area\n #textArea\n [id]=\"wizardFieldConfig.id\"\n [value]=\"wizardFieldData\"\n [required]=\"wizardFieldConfig.required || false\"\n placeholder=\"\"\n ></gn-ui-text-area>\n </div>\n <div\n class=\"w-1/2 h-12\"\n *ngIf=\"wizardFieldType.DATA_PICKER === wizardFieldConfig.type\"\n >\n <input\n [id]=\"wizardFieldConfig.id\"\n type=\"text\"\n (click)=\"datepicker.open()\"\n class=\"rounded p-2 text-gray-700 w-full leading-tight focus:outline-none focus:border-primary\"\n [value]=\"wizardFieldData\"\n [matDatepicker]=\"datepicker\"\n (dateChange)=\"onDateChange($event)\"\n />\n <mat-datepicker #datepicker></mat-datepicker>\n </div>\n <div\n class=\"w-1/2 h-12\"\n *ngIf=\"wizardFieldType.DROPDOWN === wizardFieldConfig.type\"\n >\n <gn-ui-dropdown-selector\n #dropdown\n [id]=\"wizardFieldConfig.id\"\n [title]=\"''\"\n [extraBtnClass]=\"'secondary min-w-full'\"\n [showTitle]=\"false\"\n [choices]=\"dropdownChoices\"\n [selected]=\"wizardFieldData\"\n ariaName=\"search-sort-by\"\n ></gn-ui-dropdown-selector>\n </div>\n </div>\n</div>\n", styles: [":host{display:flex;flex:1}gn-ui-text-input::ng-deep input,input[type=text]{height:100%;background:#fff;color:#000;font-style:italic;border-width:2px;border-color:var(--color-primary)}gn-ui-text-area::ng-deep textarea{border-width:2px;border-color:var(--color-primary)}gn-ui-dropdown-selector::ng-deep div{height:100%}gn-ui-dropdown-selector::ng-deep select{height:100%;border-width:2px;border-color:var(--color-primary);background-color:#fff}\n"] }]
|
|
39263
38890
|
}], ctorParameters: () => [{ type: WizardService }, { type: i0.ChangeDetectorRef }], propDecorators: { wizardFieldConfig: [{
|
|
39264
38891
|
type: Input
|
|
39265
38892
|
}], searchText: [{
|
|
39266
38893
|
type: ViewChild,
|
|
39267
38894
|
args: ['searchText']
|
|
39268
|
-
}], chips: [{
|
|
39269
|
-
type: ViewChild,
|
|
39270
|
-
args: ['chips']
|
|
39271
38895
|
}], textArea: [{
|
|
39272
38896
|
type: ViewChild,
|
|
39273
38897
|
args: ['textArea']
|
|
@@ -39474,15 +39098,15 @@ class ImportRecordComponent {
|
|
|
39474
39098
|
importRecord(url) {
|
|
39475
39099
|
this.isRecordImportInProgress = true;
|
|
39476
39100
|
this.recordsRepository.duplicateExternalRecord(url).subscribe({
|
|
39477
|
-
next: (
|
|
39478
|
-
if (
|
|
39101
|
+
next: (uuid) => {
|
|
39102
|
+
if (uuid) {
|
|
39479
39103
|
this.notificationsService.showNotification({
|
|
39480
39104
|
type: 'success',
|
|
39481
39105
|
title: this.translateService.instant('editor.record.importFromExternalFile.success.title'),
|
|
39482
39106
|
text: `${this.translateService.instant('editor.record.importFromExternalFile.success.body')}`,
|
|
39483
39107
|
}, 2500);
|
|
39484
39108
|
this.router
|
|
39485
|
-
.navigate(['/edit',
|
|
39109
|
+
.navigate(['/edit', uuid])
|
|
39486
39110
|
.catch((err) => console.error(err));
|
|
39487
39111
|
}
|
|
39488
39112
|
this.closeImportMenu.next();
|
|
@@ -39508,7 +39132,7 @@ class ImportRecordComponent {
|
|
|
39508
39132
|
provideNgIconsConfig({
|
|
39509
39133
|
size: '1.5em',
|
|
39510
39134
|
}),
|
|
39511
|
-
], ngImport: i0, template: "<ng-container [ngSwitch]=\"sectionDisplayed\">\n <ng-container *ngSwitchCase=\"'mainMenu'\">\n <div\n data-test=\"importMenuMainSection\"\n class=\"mt-2 border border-gray-100 p-2 flex items-center bg-white shadow-2xl rounded-2xl\"\n >\n <ul class=\"flex flex-col gap-2 w-full\">\n <li *ngFor=\"let menuItem of importMenuItems\">\n <gn-ui-button\n [attr.data-test]=\"menuItem.dataTest\"\n type=\"light\"\n extraClass=\"flex flex-row items-center gap-2 w-full justify-start\"\n (buttonClick)=\"menuItem.action()\"\n [disabled]=\"menuItem.disabled\"\n [title]=\"\n (menuItem.disabled ? 'editor.temporary.disabled' : '') | translate\n \"\n ><ng-icon [name]=\"menuItem.icon\"></ng-icon\n ><span>{{ menuItem.label }}</span></gn-ui-button\n >\n </li>\n </ul>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'importExternalFile'\">\n <div\n data-test=\"importMenuImportExternalFileSection\"\n class=\"p-6 flex flex-col gap-2 mt-2 border border-gray-100 bg-white shadow-2xl rounded-2xl\"\n >\n <div class=\"flex flex-row items-center gap-2\">\n <gn-ui-button\n data-test=\"importMenuImportExternalFileSectionBackButton\"\n type=\"light\"\n (buttonClick)=\"displayMainMenu()\"\n >\n <ng-icon name=\"iconoirArrowLeft\"></ng-icon>\n </gn-ui-button>\n <span class=\"font-bold\" translate\n >dashboard.importRecord.importExternal.title</span\n >\n <span translate>dashboard.importRecord.importExternal.subtitle</span>\n </div>\n <gn-ui-url-input\n (uploadClick)=\"importRecord($event)\"\n [disabled]=\"isRecordImportInProgress\"\n ></gn-ui-url-input>\n </div>\n </ng-container>\n</ng-container>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1$2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "component", type: UrlInputComponent, selector: "gn-ui-url-input", inputs: ["value", "extraClass", "placeholder", "disabled", "showValidateButton"], outputs: ["valueChange", "uploadClick"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
39135
|
+
], ngImport: i0, template: "<ng-container [ngSwitch]=\"sectionDisplayed\">\n <ng-container *ngSwitchCase=\"'mainMenu'\">\n <div\n data-test=\"importMenuMainSection\"\n class=\"mt-2 border border-gray-100 p-2 flex items-center bg-white shadow-2xl rounded-2xl\"\n >\n <ul class=\"flex flex-col gap-2 w-full\">\n <li *ngFor=\"let menuItem of importMenuItems\">\n <gn-ui-button\n [attr.data-test]=\"menuItem.dataTest\"\n type=\"light\"\n extraClass=\"flex flex-row items-center gap-2 w-full justify-start\"\n (buttonClick)=\"menuItem.action()\"\n [disabled]=\"menuItem.disabled\"\n [title]=\"\n (menuItem.disabled ? 'editor.temporary.disabled' : '') | translate\n \"\n ><ng-icon [name]=\"menuItem.icon\"></ng-icon\n ><span>{{ menuItem.label }}</span></gn-ui-button\n >\n </li>\n </ul>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'importExternalFile'\">\n <div\n data-test=\"importMenuImportExternalFileSection\"\n class=\"p-6 flex flex-col gap-2 mt-2 border border-gray-100 bg-white shadow-2xl rounded-2xl\"\n >\n <div class=\"flex flex-row items-center gap-2\">\n <gn-ui-button\n data-test=\"importMenuImportExternalFileSectionBackButton\"\n type=\"light\"\n (buttonClick)=\"displayMainMenu()\"\n >\n <ng-icon name=\"iconoirArrowLeft\"></ng-icon>\n </gn-ui-button>\n <span class=\"font-bold\" translate\n >dashboard.importRecord.importExternal.title</span\n >\n <span translate>dashboard.importRecord.importExternal.subtitle</span>\n </div>\n <gn-ui-url-input\n (uploadClick)=\"importRecord($event)\"\n [disabled]=\"isRecordImportInProgress\"\n ></gn-ui-url-input>\n </div>\n </ng-container>\n</ng-container>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1$2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "component", type: UrlInputComponent, selector: "gn-ui-url-input", inputs: ["value", "extraClass", "placeholder", "disabled", "showValidateButton", "resetUrlOnChange"], outputs: ["valueChange", "uploadClick"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
39512
39136
|
}
|
|
39513
39137
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ImportRecordComponent, decorators: [{
|
|
39514
39138
|
type: Component,
|
|
@@ -39574,7 +39198,7 @@ class GenericKeywordsComponent {
|
|
|
39574
39198
|
provideIcons({
|
|
39575
39199
|
matWarningAmberOutline,
|
|
39576
39200
|
}),
|
|
39577
|
-
], ngImport: i0, template: "<div class=\"flex flex-col gap-4\">\n <gn-ui-autocomplete\n [placeholder]=\"placeholder\"\n [displayWithFn]=\"displayWithFn\"\n [action]=\"autoCompleteAction\"\n (itemSelected)=\"handleItemSelection($event)\"\n [preventCompleteOnSelection]=\"false\"\n [minCharacterCount]=\"1\"\n [allowSubmit]=\"false\"\n [clearOnSelection]=\"true\"\n ></gn-ui-autocomplete>\n <div class=\"flex gap-2 flex-wrap\">\n <gn-ui-badge\n *ngFor=\"let keyword of keywords\"\n [removable]=\"true\"\n (badgeRemoveClicked)=\"removeKeyword(keyword)\"\n >{{ keyword.label }}\n\n <ng-icon\n *ngIf=\"isPlaceWithoutExtent(keyword)\"\n [title]=\"'editor.record.form.keywords.place.withoutExtent' | translate\"\n class=\"badge-warning\"\n name=\"matWarningAmberOutline\"\n ></ng-icon>\n </gn-ui-badge>\n </div>\n</div>\n", styles: [".badge-warning{font-size:1.4em}\n"], dependencies: [{ kind: "ngmodule", type: UiInputsModule }, { kind: "component", type: BadgeComponent, selector: "gn-ui-badge", inputs: ["clickable", "removable"], outputs: ["badgeRemoveClicked"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: UiWidgetsModule }, { kind: "component", type: AutocompleteComponent, selector: "gn-ui-autocomplete", inputs: ["placeholder", "action", "value", "clearOnSelection", "preventCompleteOnSelection", "autoFocus", "minCharacterCount", "allowSubmit", "displayWithFn"], outputs: ["itemSelected", "inputSubmitted", "inputCleared"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
39201
|
+
], ngImport: i0, template: "<div class=\"flex flex-col gap-4\">\n <gn-ui-autocomplete\n [placeholder]=\"placeholder\"\n [displayWithFn]=\"displayWithFn\"\n [action]=\"autoCompleteAction\"\n (itemSelected)=\"handleItemSelection($event)\"\n [preventCompleteOnSelection]=\"false\"\n [minCharacterCount]=\"1\"\n [allowSubmit]=\"false\"\n [clearOnSelection]=\"true\"\n ></gn-ui-autocomplete>\n <div class=\"flex gap-2 flex-wrap\">\n <gn-ui-badge\n *ngFor=\"let keyword of keywords\"\n [removable]=\"true\"\n (badgeRemoveClicked)=\"removeKeyword(keyword)\"\n >{{ keyword.label }}\n\n <ng-icon\n *ngIf=\"isPlaceWithoutExtent(keyword)\"\n [title]=\"'editor.record.form.keywords.place.withoutExtent' | translate\"\n class=\"badge-warning\"\n name=\"matWarningAmberOutline\"\n ></ng-icon>\n </gn-ui-badge>\n </div>\n</div>\n", styles: [".badge-warning{font-size:1.4em}\n"], dependencies: [{ kind: "ngmodule", type: UiInputsModule }, { kind: "component", type: BadgeComponent, selector: "gn-ui-badge", inputs: ["clickable", "removable"], outputs: ["badgeRemoveClicked"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: UiWidgetsModule }, { kind: "component", type: AutocompleteComponent, selector: "gn-ui-autocomplete", inputs: ["placeholder", "enterButton", "action", "value", "clearOnSelection", "preventCompleteOnSelection", "autoFocus", "minCharacterCount", "allowSubmit", "forceTrackPosition", "displayWithFn"], outputs: ["itemSelected", "inputSubmitted", "inputCleared", "isSearchActive"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
39578
39202
|
}
|
|
39579
39203
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GenericKeywordsComponent, decorators: [{
|
|
39580
39204
|
type: Component,
|
|
@@ -39844,7 +39468,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
39844
39468
|
|
|
39845
39469
|
class FormFieldRichComponent {
|
|
39846
39470
|
constructor() {
|
|
39847
|
-
this.placeholder = '
|
|
39471
|
+
this.placeholder = '';
|
|
39848
39472
|
this.valueChange = new EventEmitter();
|
|
39849
39473
|
this.preview = false;
|
|
39850
39474
|
}
|
|
@@ -40087,19 +39711,16 @@ class FormFieldContactsForResourceComponent {
|
|
|
40087
39711
|
this.organizationsServiceInterface = organizationsServiceInterface;
|
|
40088
39712
|
this.valueChange = new EventEmitter();
|
|
40089
39713
|
this.contactsForRessourceByRole = new Map();
|
|
40090
|
-
this.
|
|
40091
|
-
|
|
40092
|
-
'custodian',
|
|
40093
|
-
'owner',
|
|
40094
|
-
'point_of_contact',
|
|
40095
|
-
'author',
|
|
40096
|
-
];
|
|
39714
|
+
this.roleValues = RoleValues;
|
|
39715
|
+
this.rolesToPick = this.roleValues.filter((role) => role !== 'other' && role !== 'unspecified');
|
|
40097
39716
|
this.roleSectionsToDisplay = [];
|
|
40098
39717
|
this.allOrganizations = new Map();
|
|
40099
39718
|
/**
|
|
40100
39719
|
* gn-ui-autocomplete
|
|
40101
39720
|
*/
|
|
40102
|
-
this.displayWithFn = (user) =>
|
|
39721
|
+
this.displayWithFn = (user) => user.name
|
|
39722
|
+
? `${user.name} ${user.surname} ${user.organisation ? `(${user.organisation})` : ''}`
|
|
39723
|
+
: ``;
|
|
40103
39724
|
/**
|
|
40104
39725
|
* gn-ui-autocomplete
|
|
40105
39726
|
*/
|
|
@@ -40191,7 +39812,7 @@ class FormFieldContactsForResourceComponent {
|
|
|
40191
39812
|
provideNgIconsConfig({
|
|
40192
39813
|
size: '1.5rem',
|
|
40193
39814
|
}),
|
|
40194
|
-
], usesOnChanges: true, 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 type=\"gray\" (buttonClick)=\"addRoleToDisplay(role)\">\n <ng-icon name=\"iconoirPlus\" class=\"text-primary\"></ng-icon>\n \n <span translate>{{ roleToLabel(role) }}</span>\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]=\"\n 'editor.record.form.field.contactsForResource.placeholder' | translate\n \"\n [action]=\"autoCompleteAction\"\n (itemSelected)=\"addContact($event, role)\"\n [displayWithFn]=\"displayWithFn\"\n [minCharacterCount]=\"1\"\n [clearOnSelection]=\"true\"\n [allowSubmit]=\"false\"\n >\n </gn-ui-autocomplete>\n\n <ng-container *ngIf=\"contactsForRessourceByRole.get(role) as contacts\">\n <gn-ui-sortable-list\n [items]=\"contacts\"\n (itemsOrderChange)=\"handleContactsChanged($event, role)\"\n [elementTemplate]=\"contactTemplate\"\n ></gn-ui-sortable-list>\n <ng-template #contactTemplate let-contact>\n <gn-ui-contact-card [contact]=\"contact\"></gn-ui-contact-card>\n </ng-template>\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: [":host{--gn-ui-button-padding: 8px 8px;--gn-ui-button-rounded: 8px}\n"], dependencies: [{ kind: "ngmodule", type: UiInputsModule }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: UiWidgetsModule }, { kind: "component", type: AutocompleteComponent, selector: "gn-ui-autocomplete", inputs: ["placeholder", "action", "value", "clearOnSelection", "preventCompleteOnSelection", "autoFocus", "minCharacterCount", "allowSubmit", "displayWithFn"], outputs: ["itemSelected", "inputSubmitted", "inputCleared"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: ContactCardComponent, selector: "gn-ui-contact-card", inputs: ["contact"] }, { kind: "component", type: SortableListComponent, selector: "gn-ui-sortable-list", inputs: ["elementTemplate", "items"], outputs: ["itemsOrderChange"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
39815
|
+
], usesOnChanges: true, 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 type=\"gray\" (buttonClick)=\"addRoleToDisplay(role)\">\n <ng-icon name=\"iconoirPlus\" class=\"text-primary\"></ng-icon>\n \n <span translate>{{ roleToLabel(role) }}</span>\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 *ngIf=\"role !== 'unspecified' && role !== 'other'\"\n [placeholder]=\"\n 'editor.record.form.field.contactsForResource.placeholder' | translate\n \"\n [action]=\"autoCompleteAction\"\n (itemSelected)=\"addContact($event, role)\"\n [displayWithFn]=\"displayWithFn\"\n [minCharacterCount]=\"1\"\n [clearOnSelection]=\"true\"\n [allowSubmit]=\"false\"\n >\n </gn-ui-autocomplete>\n\n <ng-container *ngIf=\"contactsForRessourceByRole.get(role) as contacts\">\n <gn-ui-sortable-list\n [items]=\"contacts\"\n (itemsOrderChange)=\"handleContactsChanged($event, role)\"\n [elementTemplate]=\"contactTemplate\"\n ></gn-ui-sortable-list>\n <ng-template #contactTemplate let-contact>\n <gn-ui-contact-card [contact]=\"contact\"></gn-ui-contact-card>\n </ng-template>\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: [":host{--gn-ui-button-padding: 8px 8px;--gn-ui-button-rounded: 8px}\n"], dependencies: [{ kind: "ngmodule", type: UiInputsModule }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: UiWidgetsModule }, { kind: "component", type: AutocompleteComponent, selector: "gn-ui-autocomplete", inputs: ["placeholder", "enterButton", "action", "value", "clearOnSelection", "preventCompleteOnSelection", "autoFocus", "minCharacterCount", "allowSubmit", "forceTrackPosition", "displayWithFn"], outputs: ["itemSelected", "inputSubmitted", "inputCleared", "isSearchActive"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: ContactCardComponent, selector: "gn-ui-contact-card", inputs: ["contact"] }, { kind: "component", type: SortableListComponent, selector: "gn-ui-sortable-list", inputs: ["elementTemplate", "items"], outputs: ["itemsOrderChange"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
40195
39816
|
}
|
|
40196
39817
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormFieldContactsForResourceComponent, decorators: [{
|
|
40197
39818
|
type: Component,
|
|
@@ -40210,7 +39831,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
40210
39831
|
provideNgIconsConfig({
|
|
40211
39832
|
size: '1.5rem',
|
|
40212
39833
|
}),
|
|
40213
|
-
], 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 type=\"gray\" (buttonClick)=\"addRoleToDisplay(role)\">\n <ng-icon name=\"iconoirPlus\" class=\"text-primary\"></ng-icon>\n \n <span translate>{{ roleToLabel(role) }}</span>\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]=\"\n 'editor.record.form.field.contactsForResource.placeholder' | translate\n \"\n [action]=\"autoCompleteAction\"\n (itemSelected)=\"addContact($event, role)\"\n [displayWithFn]=\"displayWithFn\"\n [minCharacterCount]=\"1\"\n [clearOnSelection]=\"true\"\n [allowSubmit]=\"false\"\n >\n </gn-ui-autocomplete>\n\n <ng-container *ngIf=\"contactsForRessourceByRole.get(role) as contacts\">\n <gn-ui-sortable-list\n [items]=\"contacts\"\n (itemsOrderChange)=\"handleContactsChanged($event, role)\"\n [elementTemplate]=\"contactTemplate\"\n ></gn-ui-sortable-list>\n <ng-template #contactTemplate let-contact>\n <gn-ui-contact-card [contact]=\"contact\"></gn-ui-contact-card>\n </ng-template>\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: [":host{--gn-ui-button-padding: 8px 8px;--gn-ui-button-rounded: 8px}\n"] }]
|
|
39834
|
+
], 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 type=\"gray\" (buttonClick)=\"addRoleToDisplay(role)\">\n <ng-icon name=\"iconoirPlus\" class=\"text-primary\"></ng-icon>\n \n <span translate>{{ roleToLabel(role) }}</span>\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 *ngIf=\"role !== 'unspecified' && role !== 'other'\"\n [placeholder]=\"\n 'editor.record.form.field.contactsForResource.placeholder' | translate\n \"\n [action]=\"autoCompleteAction\"\n (itemSelected)=\"addContact($event, role)\"\n [displayWithFn]=\"displayWithFn\"\n [minCharacterCount]=\"1\"\n [clearOnSelection]=\"true\"\n [allowSubmit]=\"false\"\n >\n </gn-ui-autocomplete>\n\n <ng-container *ngIf=\"contactsForRessourceByRole.get(role) as contacts\">\n <gn-ui-sortable-list\n [items]=\"contacts\"\n (itemsOrderChange)=\"handleContactsChanged($event, role)\"\n [elementTemplate]=\"contactTemplate\"\n ></gn-ui-sortable-list>\n <ng-template #contactTemplate let-contact>\n <gn-ui-contact-card [contact]=\"contact\"></gn-ui-contact-card>\n </ng-template>\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: [":host{--gn-ui-button-padding: 8px 8px;--gn-ui-button-rounded: 8px}\n"] }]
|
|
40214
39835
|
}], ctorParameters: () => [{ type: PlatformServiceInterface }, { type: OrganizationsServiceInterface }], propDecorators: { value: [{
|
|
40215
39836
|
type: Input
|
|
40216
39837
|
}], valueChange: [{
|
|
@@ -40289,7 +39910,7 @@ class FormFieldContactsComponent {
|
|
|
40289
39910
|
this.subscription.unsubscribe();
|
|
40290
39911
|
}
|
|
40291
39912
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormFieldContactsComponent, deps: [{ token: PlatformServiceInterface }, { token: OrganizationsServiceInterface }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
40292
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FormFieldContactsComponent, isStandalone: true, selector: "gn-ui-form-field-contacts", inputs: { value: "value" }, outputs: { valueChange: "valueChange" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"flex flex-col gap-3\">\n <gn-ui-autocomplete\n [placeholder]=\"'editor.record.form.field.contacts.placeholder' | translate\"\n [action]=\"autoCompleteAction\"\n (itemSelected)=\"addContact($event)\"\n [displayWithFn]=\"displayWithFn\"\n [minCharacterCount]=\"1\"\n [clearOnSelection]=\"true\"\n >\n </gn-ui-autocomplete>\n\n <ng-container *ngIf=\"contacts.length > 0; else noContact\">\n <ng-container *ngIf=\"contacts.length === 1\">\n <ng-container *ngFor=\"let contact of contacts; let index = index\">\n <gn-ui-contact-card\n [contact]=\"contact\"\n ></gn-ui-contact-card> </ng-container\n ></ng-container>\n\n <ng-container *ngIf=\"contacts.length > 1\">\n <gn-ui-sortable-list\n [items]=\"contacts\"\n (itemsOrderChange)=\"handleContactsChanged($event)\"\n [elementTemplate]=\"contactTemplate\"\n ></gn-ui-sortable-list>\n <ng-template #contactTemplate let-contact>\n <gn-ui-contact-card [contact]=\"contact\"></gn-ui-contact-card>\n </ng-template>\n </ng-container>\n </ng-container>\n</div>\n\n<ng-template #noContact>\n <div\n class=\"p-4 text-sm border border-primary bg-primary-lightest rounded-lg\"\n translate\n >\n editor.record.form.field.contacts.noContact\n </div>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: UiInputsModule }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: UiWidgetsModule }, { kind: "component", type: AutocompleteComponent, selector: "gn-ui-autocomplete", inputs: ["placeholder", "action", "value", "clearOnSelection", "preventCompleteOnSelection", "autoFocus", "minCharacterCount", "allowSubmit", "displayWithFn"], outputs: ["itemSelected", "inputSubmitted", "inputCleared"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: ContactCardComponent, selector: "gn-ui-contact-card", inputs: ["contact"] }, { kind: "component", type: SortableListComponent, selector: "gn-ui-sortable-list", inputs: ["elementTemplate", "items"], outputs: ["itemsOrderChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
39913
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FormFieldContactsComponent, isStandalone: true, selector: "gn-ui-form-field-contacts", inputs: { value: "value" }, outputs: { valueChange: "valueChange" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"flex flex-col gap-3\">\n <gn-ui-autocomplete\n [placeholder]=\"'editor.record.form.field.contacts.placeholder' | translate\"\n [action]=\"autoCompleteAction\"\n (itemSelected)=\"addContact($event)\"\n [displayWithFn]=\"displayWithFn\"\n [minCharacterCount]=\"1\"\n [clearOnSelection]=\"true\"\n >\n </gn-ui-autocomplete>\n\n <ng-container *ngIf=\"contacts.length > 0; else noContact\">\n <ng-container *ngIf=\"contacts.length === 1\">\n <ng-container *ngFor=\"let contact of contacts; let index = index\">\n <gn-ui-contact-card\n [contact]=\"contact\"\n ></gn-ui-contact-card> </ng-container\n ></ng-container>\n\n <ng-container *ngIf=\"contacts.length > 1\">\n <gn-ui-sortable-list\n [items]=\"contacts\"\n (itemsOrderChange)=\"handleContactsChanged($event)\"\n [elementTemplate]=\"contactTemplate\"\n ></gn-ui-sortable-list>\n <ng-template #contactTemplate let-contact>\n <gn-ui-contact-card [contact]=\"contact\"></gn-ui-contact-card>\n </ng-template>\n </ng-container>\n </ng-container>\n</div>\n\n<ng-template #noContact>\n <div\n class=\"p-4 text-sm border border-primary bg-primary-lightest rounded-lg\"\n translate\n >\n editor.record.form.field.contacts.noContact\n </div>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: UiInputsModule }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: UiWidgetsModule }, { kind: "component", type: AutocompleteComponent, selector: "gn-ui-autocomplete", inputs: ["placeholder", "enterButton", "action", "value", "clearOnSelection", "preventCompleteOnSelection", "autoFocus", "minCharacterCount", "allowSubmit", "forceTrackPosition", "displayWithFn"], outputs: ["itemSelected", "inputSubmitted", "inputCleared", "isSearchActive"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: ContactCardComponent, selector: "gn-ui-contact-card", inputs: ["contact"] }, { kind: "component", type: SortableListComponent, selector: "gn-ui-sortable-list", inputs: ["elementTemplate", "items"], outputs: ["itemsOrderChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
40293
39914
|
}
|
|
40294
39915
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormFieldContactsComponent, decorators: [{
|
|
40295
39916
|
type: Component,
|
|
@@ -40494,7 +40115,7 @@ class FormFieldOnlineLinkResourcesComponent {
|
|
|
40494
40115
|
});
|
|
40495
40116
|
}
|
|
40496
40117
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormFieldOnlineLinkResourcesComponent, deps: [{ token: NotificationsService }, { token: i1$1.TranslateService }, { token: PlatformServiceInterface }, { token: i0.ChangeDetectorRef }, { token: i1$b.MatDialog }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
40497
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FormFieldOnlineLinkResourcesComponent, isStandalone: true, selector: "gn-ui-form-field-online-link-resources", inputs: { metadataUuid: "metadataUuid", value: "value" }, outputs: { valueChange: "valueChange" }, viewQueries: [{ propertyName: "dialogTemplate", first: true, predicate: ["dialogTemplate"], descendants: true }], ngImport: i0, template: "<div class=\"flex flex-col\">\n <gn-ui-file-input\n [maxSizeMB]=\"MAX_UPLOAD_SIZE_MB\"\n (fileChange)=\"handleFileChange($event)\"\n (uploadCancel)=\"handleUploadCancel()\"\n [uploadProgress]=\"uploadProgress\"\n (urlChange)=\"handleUrlChange($event)\"\n ></gn-ui-file-input>\n <div class=\"h-[8px]\"></div>\n <gn-ui-sortable-list\n [items]=\"linkResources\"\n (itemsOrderChange)=\"handleResourcesChange($event)\"\n [elementTemplate]=\"template\"\n >\n </gn-ui-sortable-list>\n <ng-template #template let-onlineResource let-index=\"index\">\n <gn-ui-online-resource-card\n [onlineResource]=\"onlineResource\"\n (modifyClick)=\"handleResourceModify(onlineResource, index)\"\n ></gn-ui-online-resource-card>\n </ng-template>\n\n <ng-template #dialogTemplate let-onlineResource>\n <div class=\"flex flex-col gap-[16px]\">\n <div>\n <h3 class=\"text-[16px] font-bold text-main mb-[12px]\" translate>\n editor.record.form.field.onlineResource.edit.title\n </h3>\n <gn-ui-text-input [(value)]=\"onlineResource.name\"></gn-ui-text-input>\n </div>\n <div>\n <h3 class=\"text-[16px] font-bold text-main mb-[12px]\" translate>\n editor.record.form.field.onlineResource.edit.description\n </h3>\n <gn-ui-text-area\n [(value)]=\"onlineResource.description\"\n ></gn-ui-text-area>\n </div>\n <span class=\"w-full border-b border-gray-300\"></span>\n <gn-ui-url-input\n class=\"w-full\"\n [disabled]=\"true\"\n [value]=\"onlineResource.url\"\n [showValidateButton]=\"false\"\n ></gn-ui-url-input>\n </div>\n </ng-template>\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: FileInputComponent, selector: "gn-ui-file-input", inputs: ["maxSizeMB", "uploadProgress", "disabled"], outputs: ["fileChange", "urlChange", "uploadCancel"] }, { kind: "ngmodule", type: CommonModule }, { kind: "component", type: SortableListComponent, selector: "gn-ui-sortable-list", inputs: ["elementTemplate", "items"], outputs: ["itemsOrderChange"] }, { kind: "component", type: OnlineResourceCardComponent, selector: "gn-ui-online-resource-card", inputs: ["onlineResource"], outputs: ["modifyClick"] }, { kind: "component", type: TextInputComponent, selector: "gn-ui-text-input", inputs: ["value", "extraClass", "placeholder", "required", "disabled"], outputs: ["valueChange"] }, { kind: "component", type: TextAreaComponent, selector: "gn-ui-text-area", inputs: ["value", "disabled", "extraClass", "placeholder", "required"], outputs: ["valueChange"] }, { kind: "component", type: UrlInputComponent, selector: "gn-ui-url-input", inputs: ["value", "extraClass", "placeholder", "disabled", "showValidateButton"], outputs: ["valueChange", "uploadClick"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
40118
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FormFieldOnlineLinkResourcesComponent, isStandalone: true, selector: "gn-ui-form-field-online-link-resources", inputs: { metadataUuid: "metadataUuid", value: "value" }, outputs: { valueChange: "valueChange" }, viewQueries: [{ propertyName: "dialogTemplate", first: true, predicate: ["dialogTemplate"], descendants: true }], ngImport: i0, template: "<div class=\"flex flex-col\">\n <gn-ui-file-input\n [maxSizeMB]=\"MAX_UPLOAD_SIZE_MB\"\n (fileChange)=\"handleFileChange($event)\"\n (uploadCancel)=\"handleUploadCancel()\"\n [uploadProgress]=\"uploadProgress\"\n (urlChange)=\"handleUrlChange($event)\"\n ></gn-ui-file-input>\n <div class=\"h-[8px]\"></div>\n <gn-ui-sortable-list\n [items]=\"linkResources\"\n (itemsOrderChange)=\"handleResourcesChange($event)\"\n [elementTemplate]=\"template\"\n >\n </gn-ui-sortable-list>\n <ng-template #template let-onlineResource let-index=\"index\">\n <gn-ui-online-resource-card\n [onlineResource]=\"onlineResource\"\n (modifyClick)=\"handleResourceModify(onlineResource, index)\"\n ></gn-ui-online-resource-card>\n </ng-template>\n\n <ng-template #dialogTemplate let-onlineResource>\n <div class=\"flex flex-col gap-[16px]\">\n <div>\n <h3 class=\"text-[16px] font-bold text-main mb-[12px]\" translate>\n editor.record.form.field.onlineResource.edit.title\n </h3>\n <gn-ui-text-input [(value)]=\"onlineResource.name\"></gn-ui-text-input>\n </div>\n <div>\n <h3 class=\"text-[16px] font-bold text-main mb-[12px]\" translate>\n editor.record.form.field.onlineResource.edit.description\n </h3>\n <gn-ui-text-area\n [(value)]=\"onlineResource.description\"\n ></gn-ui-text-area>\n </div>\n <span class=\"w-full border-b border-gray-300\"></span>\n <gn-ui-url-input\n class=\"w-full\"\n [disabled]=\"true\"\n [value]=\"onlineResource.url\"\n [showValidateButton]=\"false\"\n ></gn-ui-url-input>\n </div>\n </ng-template>\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: FileInputComponent, selector: "gn-ui-file-input", inputs: ["maxSizeMB", "uploadProgress", "disabled"], outputs: ["fileChange", "urlChange", "uploadCancel"] }, { kind: "ngmodule", type: CommonModule }, { kind: "component", type: SortableListComponent, selector: "gn-ui-sortable-list", inputs: ["elementTemplate", "items"], outputs: ["itemsOrderChange"] }, { kind: "component", type: OnlineResourceCardComponent, selector: "gn-ui-online-resource-card", inputs: ["onlineResource"], outputs: ["modifyClick"] }, { kind: "component", type: TextInputComponent, selector: "gn-ui-text-input", inputs: ["value", "extraClass", "placeholder", "required", "disabled"], outputs: ["valueChange"] }, { kind: "component", type: TextAreaComponent, selector: "gn-ui-text-area", inputs: ["value", "disabled", "extraClass", "placeholder", "required"], outputs: ["valueChange"] }, { kind: "component", type: UrlInputComponent, selector: "gn-ui-url-input", inputs: ["value", "extraClass", "placeholder", "disabled", "showValidateButton", "resetUrlOnChange"], outputs: ["valueChange", "uploadClick"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
40498
40119
|
}
|
|
40499
40120
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormFieldOnlineLinkResourcesComponent, decorators: [{
|
|
40500
40121
|
type: Component,
|
|
@@ -40531,6 +40152,7 @@ class OnlineServiceResourceInputComponent {
|
|
|
40531
40152
|
this.modifyMode = false;
|
|
40532
40153
|
this.serviceChange = new EventEmitter();
|
|
40533
40154
|
this.errorMessage = false;
|
|
40155
|
+
this.resetUrlOnChange = Math.random();
|
|
40534
40156
|
this.layersSubject = new BehaviorSubject([]);
|
|
40535
40157
|
this.layers$ = this.layersSubject.asObservable();
|
|
40536
40158
|
this.protocolOptions = [
|
|
@@ -40595,6 +40217,7 @@ class OnlineServiceResourceInputComponent {
|
|
|
40595
40217
|
this.cdr.detectChanges();
|
|
40596
40218
|
}
|
|
40597
40219
|
resetAllFormFields() {
|
|
40220
|
+
this.resetUrlOnChange = Math.random();
|
|
40598
40221
|
this._service.url = null;
|
|
40599
40222
|
this.resetLayersSuggestion();
|
|
40600
40223
|
}
|
|
@@ -40638,7 +40261,7 @@ class OnlineServiceResourceInputComponent {
|
|
|
40638
40261
|
provideNgIconsConfig({
|
|
40639
40262
|
size: '1.5em',
|
|
40640
40263
|
}),
|
|
40641
|
-
], ngImport: i0, template: "<div class=\"flex flex-row justify-between\">\n <h3 class=\"text-[16px] font-bold text-main mb-[12px]\" translate>\n editor.record.form.field.onlineResource.edit.protocol\n </h3>\n <span\n *ngIf=\"protocolHint\"\n class=\"material-symbols-outlined m-2 gn-ui-icon-small\"\n [matTooltip]=\"protocolHint\"\n matTooltipPosition=\"above\"\n >\n help\n </span>\n</div>\n<div class=\"flex flex-row items-center gap-4 h-[48px]\">\n <mat-radio-group\n aria-labelledby=\"example-radio-group-label\"\n class=\"flex flex-row gap-[8px]\"\n [(ngModel)]=\"_service.accessServiceProtocol\"\n [disabled]=\"disabled\"\n (change)=\"resetAllFormFields()\"\n >\n <mat-radio-button\n *ngFor=\"let protocolOption of protocolOptions\"\n [value]=\"protocolOption.value\"\n >\n {{ protocolOption.label | translate }}\n </mat-radio-button>\n </mat-radio-group>\n</div>\n\n<div class=\"flex flex-col gap-4\">\n <gn-ui-url-input\n class=\"w-full\"\n (uploadClick)=\"handleUploadClick($event)\"\n (valueChange)=\"handleUrlValueChange($event)\"\n [disabled]=\"disabled\"\n [value]=\"_service.url?.toString()\"\n [showValidateButton]=\"activeLayerSuggestion\"\n >\n <ng-content *ngIf=\"activeLayerSuggestion\">\n <ng-icon name=\"iconoirRefresh\"></ng-icon>\n </ng-content>\n </gn-ui-url-input>\n\n <p class=\"text-sm text-red-500 pl-4\" *ngIf=\"errorMessage\" translate>\n editor.record.form.field.onlineResource.edit.identifier.error\n </p>\n\n <gn-ui-text-input\n class=\"grow border-b border-gray-300 pb-4\"\n [(value)]=\"_service.identifierInService\"\n [placeholder]=\"getIdentifierPlaceholder() | translate\"\n data-cy=\"identifier-in-service\"\n [disabled]=\"disabled\"\n *ngIf=\"\n !activeLayerSuggestion ||\n (_service.url && errorMessage) ||\n (modifyMode && (layers$ | async).length === 0)\n \"\n ></gn-ui-text-input>\n <gn-ui-autocomplete\n class=\"border-b border-gray-300 pb-4\"\n [placeholder]=\"\n 'editor.record.form.field.onlineResource.edit.identifier.select.label'\n | translate\n \"\n [action]=\"autoCompleteAction\"\n (itemSelected)=\"handleSelectValue($event)\"\n [displayWithFn]=\"displayWithFn\"\n [minCharacterCount]=\"0\"\n [clearOnSelection]=\"false\"\n *ngIf=\"activeLayerSuggestion && (layers$ | async)?.length > 0\"\n >\n </gn-ui-autocomplete>\n <gn-ui-button\n (buttonClick)=\"submit()\"\n [disabled]=\"disabled || !_service.identifierInService\"\n type=\"primary\"\n *ngIf=\"\n !modifyMode &&\n ((activeLayerSuggestion && (layers$ | async)) ||\n !activeLayerSuggestion ||\n (_service.url && errorMessage))\n \"\n >\n <span class=\"text-white font-bold\" translate>\n editor.record.form.field.onlineResource.edit.identifier.submit</span\n >\n </gn-ui-button>\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: AutocompleteComponent, selector: "gn-ui-autocomplete", inputs: ["placeholder", "action", "value", "clearOnSelection", "preventCompleteOnSelection", "autoFocus", "minCharacterCount", "allowSubmit", "displayWithFn"], outputs: ["itemSelected", "inputSubmitted", "inputCleared"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i1$4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatRadioModule }, { kind: "directive", type: i4$1.MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: i4$1.MatRadioButton, selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioButton"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "component", type: TextInputComponent, selector: "gn-ui-text-input", inputs: ["value", "extraClass", "placeholder", "required", "disabled"], outputs: ["valueChange"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: UrlInputComponent, selector: "gn-ui-url-input", inputs: ["value", "extraClass", "placeholder", "disabled", "showValidateButton"], outputs: ["valueChange", "uploadClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
40264
|
+
], ngImport: i0, template: "<div class=\"flex flex-row justify-between\">\n <h3 class=\"text-[16px] font-bold text-main mb-[12px]\" translate>\n editor.record.form.field.onlineResource.edit.protocol\n </h3>\n <span\n *ngIf=\"protocolHint\"\n class=\"material-symbols-outlined m-2 gn-ui-icon-small\"\n [matTooltip]=\"protocolHint\"\n matTooltipPosition=\"above\"\n >\n help\n </span>\n</div>\n<div class=\"flex flex-row items-center gap-4 h-[48px]\">\n <mat-radio-group\n aria-labelledby=\"example-radio-group-label\"\n class=\"flex flex-row gap-[8px]\"\n [(ngModel)]=\"_service.accessServiceProtocol\"\n [disabled]=\"disabled\"\n (change)=\"resetAllFormFields()\"\n >\n <mat-radio-button\n *ngFor=\"let protocolOption of protocolOptions\"\n [value]=\"protocolOption.value\"\n >\n {{ protocolOption.label | translate }}\n </mat-radio-button>\n </mat-radio-group>\n</div>\n\n<div class=\"flex flex-col gap-4\">\n <gn-ui-url-input\n class=\"w-full\"\n (uploadClick)=\"handleUploadClick($event)\"\n (valueChange)=\"handleUrlValueChange($event)\"\n [disabled]=\"disabled\"\n [value]=\"_service.url?.toString()\"\n [showValidateButton]=\"activeLayerSuggestion\"\n [resetUrlOnChange]=\"resetUrlOnChange\"\n >\n <ng-content *ngIf=\"activeLayerSuggestion\">\n <ng-icon name=\"iconoirRefresh\"></ng-icon>\n </ng-content>\n </gn-ui-url-input>\n\n <p class=\"text-sm text-red-500 pl-4\" *ngIf=\"errorMessage\" translate>\n editor.record.form.field.onlineResource.edit.identifier.error\n </p>\n\n <gn-ui-text-input\n class=\"grow border-b border-gray-300 pb-4\"\n [(value)]=\"_service.identifierInService\"\n [placeholder]=\"getIdentifierPlaceholder() | translate\"\n data-cy=\"identifier-in-service\"\n [disabled]=\"disabled\"\n *ngIf=\"\n !activeLayerSuggestion ||\n (_service.url && errorMessage) ||\n (modifyMode && (layers$ | async).length === 0)\n \"\n ></gn-ui-text-input>\n <gn-ui-autocomplete\n class=\"border-b border-gray-300 pb-4\"\n [placeholder]=\"\n 'editor.record.form.field.onlineResource.edit.identifier.select.label'\n | translate\n \"\n [action]=\"autoCompleteAction\"\n (itemSelected)=\"handleSelectValue($event)\"\n [displayWithFn]=\"displayWithFn\"\n [minCharacterCount]=\"0\"\n [clearOnSelection]=\"false\"\n *ngIf=\"activeLayerSuggestion && (layers$ | async)?.length > 0\"\n >\n </gn-ui-autocomplete>\n <gn-ui-button\n (buttonClick)=\"submit()\"\n [disabled]=\"disabled || !_service.identifierInService\"\n type=\"primary\"\n *ngIf=\"\n !modifyMode &&\n ((activeLayerSuggestion && (layers$ | async)) ||\n !activeLayerSuggestion ||\n (_service.url && errorMessage))\n \"\n >\n <span class=\"text-white font-bold\" translate>\n editor.record.form.field.onlineResource.edit.identifier.submit</span\n >\n </gn-ui-button>\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: AutocompleteComponent, selector: "gn-ui-autocomplete", inputs: ["placeholder", "enterButton", "action", "value", "clearOnSelection", "preventCompleteOnSelection", "autoFocus", "minCharacterCount", "allowSubmit", "forceTrackPosition", "displayWithFn"], outputs: ["itemSelected", "inputSubmitted", "inputCleared", "isSearchActive"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i1$4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatRadioModule }, { kind: "directive", type: i4$1.MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: i4$1.MatRadioButton, selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioButton"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "component", type: TextInputComponent, selector: "gn-ui-text-input", inputs: ["value", "extraClass", "placeholder", "required", "disabled"], outputs: ["valueChange"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: UrlInputComponent, selector: "gn-ui-url-input", inputs: ["value", "extraClass", "placeholder", "disabled", "showValidateButton", "resetUrlOnChange"], outputs: ["valueChange", "uploadClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
40642
40265
|
}
|
|
40643
40266
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OnlineServiceResourceInputComponent, decorators: [{
|
|
40644
40267
|
type: Component,
|
|
@@ -40658,7 +40281,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
40658
40281
|
provideNgIconsConfig({
|
|
40659
40282
|
size: '1.5em',
|
|
40660
40283
|
}),
|
|
40661
|
-
], template: "<div class=\"flex flex-row justify-between\">\n <h3 class=\"text-[16px] font-bold text-main mb-[12px]\" translate>\n editor.record.form.field.onlineResource.edit.protocol\n </h3>\n <span\n *ngIf=\"protocolHint\"\n class=\"material-symbols-outlined m-2 gn-ui-icon-small\"\n [matTooltip]=\"protocolHint\"\n matTooltipPosition=\"above\"\n >\n help\n </span>\n</div>\n<div class=\"flex flex-row items-center gap-4 h-[48px]\">\n <mat-radio-group\n aria-labelledby=\"example-radio-group-label\"\n class=\"flex flex-row gap-[8px]\"\n [(ngModel)]=\"_service.accessServiceProtocol\"\n [disabled]=\"disabled\"\n (change)=\"resetAllFormFields()\"\n >\n <mat-radio-button\n *ngFor=\"let protocolOption of protocolOptions\"\n [value]=\"protocolOption.value\"\n >\n {{ protocolOption.label | translate }}\n </mat-radio-button>\n </mat-radio-group>\n</div>\n\n<div class=\"flex flex-col gap-4\">\n <gn-ui-url-input\n class=\"w-full\"\n (uploadClick)=\"handleUploadClick($event)\"\n (valueChange)=\"handleUrlValueChange($event)\"\n [disabled]=\"disabled\"\n [value]=\"_service.url?.toString()\"\n [showValidateButton]=\"activeLayerSuggestion\"\n >\n <ng-content *ngIf=\"activeLayerSuggestion\">\n <ng-icon name=\"iconoirRefresh\"></ng-icon>\n </ng-content>\n </gn-ui-url-input>\n\n <p class=\"text-sm text-red-500 pl-4\" *ngIf=\"errorMessage\" translate>\n editor.record.form.field.onlineResource.edit.identifier.error\n </p>\n\n <gn-ui-text-input\n class=\"grow border-b border-gray-300 pb-4\"\n [(value)]=\"_service.identifierInService\"\n [placeholder]=\"getIdentifierPlaceholder() | translate\"\n data-cy=\"identifier-in-service\"\n [disabled]=\"disabled\"\n *ngIf=\"\n !activeLayerSuggestion ||\n (_service.url && errorMessage) ||\n (modifyMode && (layers$ | async).length === 0)\n \"\n ></gn-ui-text-input>\n <gn-ui-autocomplete\n class=\"border-b border-gray-300 pb-4\"\n [placeholder]=\"\n 'editor.record.form.field.onlineResource.edit.identifier.select.label'\n | translate\n \"\n [action]=\"autoCompleteAction\"\n (itemSelected)=\"handleSelectValue($event)\"\n [displayWithFn]=\"displayWithFn\"\n [minCharacterCount]=\"0\"\n [clearOnSelection]=\"false\"\n *ngIf=\"activeLayerSuggestion && (layers$ | async)?.length > 0\"\n >\n </gn-ui-autocomplete>\n <gn-ui-button\n (buttonClick)=\"submit()\"\n [disabled]=\"disabled || !_service.identifierInService\"\n type=\"primary\"\n *ngIf=\"\n !modifyMode &&\n ((activeLayerSuggestion && (layers$ | async)) ||\n !activeLayerSuggestion ||\n (_service.url && errorMessage))\n \"\n >\n <span class=\"text-white font-bold\" translate>\n editor.record.form.field.onlineResource.edit.identifier.submit</span\n >\n </gn-ui-button>\n</div>\n" }]
|
|
40284
|
+
], template: "<div class=\"flex flex-row justify-between\">\n <h3 class=\"text-[16px] font-bold text-main mb-[12px]\" translate>\n editor.record.form.field.onlineResource.edit.protocol\n </h3>\n <span\n *ngIf=\"protocolHint\"\n class=\"material-symbols-outlined m-2 gn-ui-icon-small\"\n [matTooltip]=\"protocolHint\"\n matTooltipPosition=\"above\"\n >\n help\n </span>\n</div>\n<div class=\"flex flex-row items-center gap-4 h-[48px]\">\n <mat-radio-group\n aria-labelledby=\"example-radio-group-label\"\n class=\"flex flex-row gap-[8px]\"\n [(ngModel)]=\"_service.accessServiceProtocol\"\n [disabled]=\"disabled\"\n (change)=\"resetAllFormFields()\"\n >\n <mat-radio-button\n *ngFor=\"let protocolOption of protocolOptions\"\n [value]=\"protocolOption.value\"\n >\n {{ protocolOption.label | translate }}\n </mat-radio-button>\n </mat-radio-group>\n</div>\n\n<div class=\"flex flex-col gap-4\">\n <gn-ui-url-input\n class=\"w-full\"\n (uploadClick)=\"handleUploadClick($event)\"\n (valueChange)=\"handleUrlValueChange($event)\"\n [disabled]=\"disabled\"\n [value]=\"_service.url?.toString()\"\n [showValidateButton]=\"activeLayerSuggestion\"\n [resetUrlOnChange]=\"resetUrlOnChange\"\n >\n <ng-content *ngIf=\"activeLayerSuggestion\">\n <ng-icon name=\"iconoirRefresh\"></ng-icon>\n </ng-content>\n </gn-ui-url-input>\n\n <p class=\"text-sm text-red-500 pl-4\" *ngIf=\"errorMessage\" translate>\n editor.record.form.field.onlineResource.edit.identifier.error\n </p>\n\n <gn-ui-text-input\n class=\"grow border-b border-gray-300 pb-4\"\n [(value)]=\"_service.identifierInService\"\n [placeholder]=\"getIdentifierPlaceholder() | translate\"\n data-cy=\"identifier-in-service\"\n [disabled]=\"disabled\"\n *ngIf=\"\n !activeLayerSuggestion ||\n (_service.url && errorMessage) ||\n (modifyMode && (layers$ | async).length === 0)\n \"\n ></gn-ui-text-input>\n <gn-ui-autocomplete\n class=\"border-b border-gray-300 pb-4\"\n [placeholder]=\"\n 'editor.record.form.field.onlineResource.edit.identifier.select.label'\n | translate\n \"\n [action]=\"autoCompleteAction\"\n (itemSelected)=\"handleSelectValue($event)\"\n [displayWithFn]=\"displayWithFn\"\n [minCharacterCount]=\"0\"\n [clearOnSelection]=\"false\"\n *ngIf=\"activeLayerSuggestion && (layers$ | async)?.length > 0\"\n >\n </gn-ui-autocomplete>\n <gn-ui-button\n (buttonClick)=\"submit()\"\n [disabled]=\"disabled || !_service.identifierInService\"\n type=\"primary\"\n *ngIf=\"\n !modifyMode &&\n ((activeLayerSuggestion && (layers$ | async)) ||\n !activeLayerSuggestion ||\n (_service.url && errorMessage))\n \"\n >\n <span class=\"text-white font-bold\" translate>\n editor.record.form.field.onlineResource.edit.identifier.submit</span\n >\n </gn-ui-button>\n</div>\n" }]
|
|
40662
40285
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { service: [{
|
|
40663
40286
|
type: Input
|
|
40664
40287
|
}], protocolHint: [{
|
|
@@ -40807,7 +40430,7 @@ class FormFieldOnlineResourcesComponent {
|
|
|
40807
40430
|
});
|
|
40808
40431
|
}
|
|
40809
40432
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormFieldOnlineResourcesComponent, deps: [{ token: NotificationsService }, { token: i1$1.TranslateService }, { token: PlatformServiceInterface }, { token: i0.ChangeDetectorRef }, { token: i1$b.MatDialog }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
40810
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FormFieldOnlineResourcesComponent, isStandalone: true, selector: "gn-ui-form-field-online-resources", inputs: { metadataUuid: "metadataUuid", value: "value" }, outputs: { valueChange: "valueChange" }, viewQueries: [{ propertyName: "dialogTemplate", first: true, predicate: ["dialogTemplate"], descendants: true }], ngImport: i0, template: "<div class=\"flex flex-col\">\n <gn-ui-switch-toggle\n [options]=\"typeOptions\"\n (selectedValue)=\"onSelectedTypeChange($event.value)\"\n extraClasses=\"grow text-sm\"\n data-cy=\"online-resources-type\"\n ></gn-ui-switch-toggle>\n <div class=\"h-[8px]\"></div>\n <gn-ui-file-input\n *ngIf=\"selectedType === 'download'\"\n [maxSizeMB]=\"MAX_UPLOAD_SIZE_MB\"\n (fileChange)=\"handleFileChange($event)\"\n (uploadCancel)=\"handleUploadCancel()\"\n [uploadProgress]=\"uploadProgress\"\n (urlChange)=\"handleDownloadUrlChange($event)\"\n ></gn-ui-file-input>\n <div\n *ngIf=\"selectedType === 'service'\"\n class=\"w-full border-2 border-dashed rounded-lg p-6 flex flex-col gap-[16px]\"\n >\n <gn-ui-online-service-resource-input\n [service]=\"newService\"\n (serviceChange)=\"handleServiceChange($event)\"\n ></gn-ui-online-service-resource-input>\n </div>\n <div class=\"h-[8px]\"></div>\n <gn-ui-sortable-list\n [items]=\"notLinkResources\"\n (itemsOrderChange)=\"handleResourcesChange($event)\"\n [elementTemplate]=\"template\"\n >\n </gn-ui-sortable-list>\n <ng-template #template let-onlineResource let-index=\"index\">\n <gn-ui-online-resource-card\n [onlineResource]=\"onlineResource\"\n (modifyClick)=\"handleResourceModify(onlineResource, index)\"\n ></gn-ui-online-resource-card>\n </ng-template>\n\n <ng-template #dialogTemplate let-onlineResource>\n <div class=\"flex flex-col gap-[16px]\">\n <ng-container *ngIf=\"onlineResource.type === 'service'; else urlInput\">\n <gn-ui-online-service-resource-input\n [service]=\"onlineResource\"\n [modifyMode]=\"true\"\n [disabled]=\"true\"\n ></gn-ui-online-service-resource-input>\n <div>\n <h3 class=\"text-[16px] font-bold text-main mb-[12px]\" translate>\n editor.record.form.field.onlineResource.edit.description\n </h3>\n <gn-ui-text-area\n [(value)]=\"onlineResource.description\"\n ></gn-ui-text-area>\n </div>\n </ng-container>\n <ng-template #urlInput>\n <div>\n <h3 class=\"text-[16px] font-bold text-main mb-[12px]\" translate>\n editor.record.form.field.onlineResource.edit.title\n </h3>\n <gn-ui-text-input [(value)]=\"onlineResource.name\"></gn-ui-text-input>\n </div>\n <div>\n <h3 class=\"text-[16px] font-bold text-main mb-[12px]\" translate>\n editor.record.form.field.onlineResource.edit.description\n </h3>\n <gn-ui-text-area\n [(value)]=\"onlineResource.description\"\n ></gn-ui-text-area>\n </div>\n <span class=\"w-full border-b border-gray-300\"></span>\n <gn-ui-url-input\n class=\"w-full\"\n [disabled]=\"true\"\n [value]=\"onlineResource.url\"\n [showValidateButton]=\"false\"\n ></gn-ui-url-input>\n </ng-template>\n </div>\n </ng-template>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: SwitchToggleComponent, selector: "gn-ui-switch-toggle", inputs: ["options", "ariaLabel", "extraClasses", "disabled"], outputs: ["selectedValue"] }, { kind: "component", type: FileInputComponent, selector: "gn-ui-file-input", inputs: ["maxSizeMB", "uploadProgress", "disabled"], outputs: ["fileChange", "urlChange", "uploadCancel"] }, { kind: "component", type: OnlineServiceResourceInputComponent, selector: "gn-ui-online-service-resource-input", inputs: ["service", "protocolHint", "disabled", "modifyMode"], outputs: ["serviceChange"] }, { kind: "component", type: UrlInputComponent, selector: "gn-ui-url-input", inputs: ["value", "extraClass", "placeholder", "disabled", "showValidateButton"], outputs: ["valueChange", "uploadClick"] }, { kind: "component", type: SortableListComponent, selector: "gn-ui-sortable-list", inputs: ["elementTemplate", "items"], outputs: ["itemsOrderChange"] }, { kind: "component", type: OnlineResourceCardComponent, selector: "gn-ui-online-resource-card", inputs: ["onlineResource"], outputs: ["modifyClick"] }, { kind: "component", type: TextInputComponent, selector: "gn-ui-text-input", inputs: ["value", "extraClass", "placeholder", "required", "disabled"], outputs: ["valueChange"] }, { kind: "component", type: TextAreaComponent, selector: "gn-ui-text-area", inputs: ["value", "disabled", "extraClass", "placeholder", "required"], outputs: ["valueChange"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
40433
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FormFieldOnlineResourcesComponent, isStandalone: true, selector: "gn-ui-form-field-online-resources", inputs: { metadataUuid: "metadataUuid", value: "value" }, outputs: { valueChange: "valueChange" }, viewQueries: [{ propertyName: "dialogTemplate", first: true, predicate: ["dialogTemplate"], descendants: true }], ngImport: i0, template: "<div class=\"flex flex-col\">\n <gn-ui-switch-toggle\n [options]=\"typeOptions\"\n (selectedValue)=\"onSelectedTypeChange($event.value)\"\n extraClasses=\"grow text-sm\"\n data-cy=\"online-resources-type\"\n ></gn-ui-switch-toggle>\n <div class=\"h-[8px]\"></div>\n <gn-ui-file-input\n *ngIf=\"selectedType === 'download'\"\n [maxSizeMB]=\"MAX_UPLOAD_SIZE_MB\"\n (fileChange)=\"handleFileChange($event)\"\n (uploadCancel)=\"handleUploadCancel()\"\n [uploadProgress]=\"uploadProgress\"\n (urlChange)=\"handleDownloadUrlChange($event)\"\n ></gn-ui-file-input>\n <div\n *ngIf=\"selectedType === 'service'\"\n class=\"w-full border-2 border-dashed rounded-lg p-6 flex flex-col gap-[16px]\"\n >\n <gn-ui-online-service-resource-input\n [service]=\"newService\"\n (serviceChange)=\"handleServiceChange($event)\"\n ></gn-ui-online-service-resource-input>\n </div>\n <div class=\"h-[8px]\"></div>\n <gn-ui-sortable-list\n [items]=\"notLinkResources\"\n (itemsOrderChange)=\"handleResourcesChange($event)\"\n [elementTemplate]=\"template\"\n >\n </gn-ui-sortable-list>\n <ng-template #template let-onlineResource let-index=\"index\">\n <gn-ui-online-resource-card\n [onlineResource]=\"onlineResource\"\n (modifyClick)=\"handleResourceModify(onlineResource, index)\"\n ></gn-ui-online-resource-card>\n </ng-template>\n\n <ng-template #dialogTemplate let-onlineResource>\n <div class=\"flex flex-col gap-[16px]\">\n <ng-container *ngIf=\"onlineResource.type === 'service'; else urlInput\">\n <gn-ui-online-service-resource-input\n [service]=\"onlineResource\"\n [modifyMode]=\"true\"\n [disabled]=\"true\"\n ></gn-ui-online-service-resource-input>\n <div>\n <h3 class=\"text-[16px] font-bold text-main mb-[12px]\" translate>\n editor.record.form.field.onlineResource.edit.description\n </h3>\n <gn-ui-text-area\n [(value)]=\"onlineResource.description\"\n ></gn-ui-text-area>\n </div>\n </ng-container>\n <ng-template #urlInput>\n <div>\n <h3 class=\"text-[16px] font-bold text-main mb-[12px]\" translate>\n editor.record.form.field.onlineResource.edit.title\n </h3>\n <gn-ui-text-input [(value)]=\"onlineResource.name\"></gn-ui-text-input>\n </div>\n <div>\n <h3 class=\"text-[16px] font-bold text-main mb-[12px]\" translate>\n editor.record.form.field.onlineResource.edit.description\n </h3>\n <gn-ui-text-area\n [(value)]=\"onlineResource.description\"\n ></gn-ui-text-area>\n </div>\n <span class=\"w-full border-b border-gray-300\"></span>\n <gn-ui-url-input\n class=\"w-full\"\n [disabled]=\"true\"\n [value]=\"onlineResource.url\"\n [showValidateButton]=\"false\"\n ></gn-ui-url-input>\n </ng-template>\n </div>\n </ng-template>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: SwitchToggleComponent, selector: "gn-ui-switch-toggle", inputs: ["options", "ariaLabel", "extraClasses", "disabled"], outputs: ["selectedValue"] }, { kind: "component", type: FileInputComponent, selector: "gn-ui-file-input", inputs: ["maxSizeMB", "uploadProgress", "disabled"], outputs: ["fileChange", "urlChange", "uploadCancel"] }, { kind: "component", type: OnlineServiceResourceInputComponent, selector: "gn-ui-online-service-resource-input", inputs: ["service", "protocolHint", "disabled", "modifyMode"], outputs: ["serviceChange"] }, { kind: "component", type: UrlInputComponent, selector: "gn-ui-url-input", inputs: ["value", "extraClass", "placeholder", "disabled", "showValidateButton", "resetUrlOnChange"], outputs: ["valueChange", "uploadClick"] }, { kind: "component", type: SortableListComponent, selector: "gn-ui-sortable-list", inputs: ["elementTemplate", "items"], outputs: ["itemsOrderChange"] }, { kind: "component", type: OnlineResourceCardComponent, selector: "gn-ui-online-resource-card", inputs: ["onlineResource"], outputs: ["modifyClick"] }, { kind: "component", type: TextInputComponent, selector: "gn-ui-text-input", inputs: ["value", "extraClass", "placeholder", "required", "disabled"], outputs: ["valueChange"] }, { kind: "component", type: TextAreaComponent, selector: "gn-ui-text-area", inputs: ["value", "disabled", "extraClass", "placeholder", "required"], outputs: ["valueChange"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
40811
40434
|
}
|
|
40812
40435
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormFieldOnlineResourcesComponent, decorators: [{
|
|
40813
40436
|
type: Component,
|
|
@@ -40914,7 +40537,7 @@ class FormFieldOverviewsComponent {
|
|
|
40914
40537
|
this.cd.detectChanges();
|
|
40915
40538
|
this.emitOverview({
|
|
40916
40539
|
url: event.attachment.url,
|
|
40917
|
-
description: event.attachment.fileName,
|
|
40540
|
+
description: event.attachment.fileName.replace(/\.[^/.]+$/, ''),
|
|
40918
40541
|
});
|
|
40919
40542
|
}
|
|
40920
40543
|
},
|
|
@@ -41233,7 +40856,7 @@ class ConstraintCardComponent {
|
|
|
41233
40856
|
provideNgIconsConfig({
|
|
41234
40857
|
size: '1.5rem',
|
|
41235
40858
|
}),
|
|
41236
|
-
], ngImport: i0, template: "<div class=\"flex flex-col gap-1 border rounded-lg p-4\">\n <gn-ui-form-field-rich\n class=\"mt-[-8px]\"\n [label]=\"label\"\n [
|
|
40859
|
+
], ngImport: i0, template: "<div class=\"flex flex-col gap-1 border rounded-lg p-4\">\n <gn-ui-form-field-rich\n class=\"mt-[-8px]\"\n [label]=\"label\"\n [placeholder]=\"hint | translate\"\n [value]=\"constraint_.text ?? ''\"\n (valueChange)=\"handleConstraintTextChange($event)\"\n ></gn-ui-form-field-rich>\n\n <div *ngIf=\"!showUrl\" class=\"flex-none mt-1\">\n <gn-ui-button\n (buttonClick)=\"showUrl = true\"\n type=\"gray\"\n data-cy=\"add-url-btn\"\n >\n <ng-icon name=\"iconoirPlus\" class=\"text-primary\"></ng-icon> \n <span translate>input.image.displayUrlInput</span>\n </gn-ui-button>\n </div>\n <gn-ui-url-input\n *ngIf=\"showUrl\"\n class=\"mt-3.5\"\n [value]=\"constraint_.url?.toString()\"\n (valueChange)=\"handleURLChange($event)\"\n [showValidateButton]=\"false\"\n >\n </gn-ui-url-input>\n</div>\n", styles: [":host{--gn-ui-button-padding: 8px 8px;--gn-ui-button-rounded: 8px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FormFieldRichComponent, selector: "gn-ui-form-field-rich", inputs: ["label", "hint", "placeholder", "value"], outputs: ["valueChange"] }, { kind: "component", type: UrlInputComponent, selector: "gn-ui-url-input", inputs: ["value", "extraClass", "placeholder", "disabled", "showValidateButton", "resetUrlOnChange"], outputs: ["valueChange", "uploadClick"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
41237
40860
|
}
|
|
41238
40861
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ConstraintCardComponent, decorators: [{
|
|
41239
40862
|
type: Component,
|
|
@@ -41251,7 +40874,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
41251
40874
|
provideNgIconsConfig({
|
|
41252
40875
|
size: '1.5rem',
|
|
41253
40876
|
}),
|
|
41254
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"flex flex-col gap-1 border rounded-lg p-4\">\n <gn-ui-form-field-rich\n class=\"mt-[-8px]\"\n [label]=\"label\"\n [
|
|
40877
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"flex flex-col gap-1 border rounded-lg p-4\">\n <gn-ui-form-field-rich\n class=\"mt-[-8px]\"\n [label]=\"label\"\n [placeholder]=\"hint | translate\"\n [value]=\"constraint_.text ?? ''\"\n (valueChange)=\"handleConstraintTextChange($event)\"\n ></gn-ui-form-field-rich>\n\n <div *ngIf=\"!showUrl\" class=\"flex-none mt-1\">\n <gn-ui-button\n (buttonClick)=\"showUrl = true\"\n type=\"gray\"\n data-cy=\"add-url-btn\"\n >\n <ng-icon name=\"iconoirPlus\" class=\"text-primary\"></ng-icon> \n <span translate>input.image.displayUrlInput</span>\n </gn-ui-button>\n </div>\n <gn-ui-url-input\n *ngIf=\"showUrl\"\n class=\"mt-3.5\"\n [value]=\"constraint_.url?.toString()\"\n (valueChange)=\"handleURLChange($event)\"\n [showValidateButton]=\"false\"\n >\n </gn-ui-url-input>\n</div>\n", styles: [":host{--gn-ui-button-padding: 8px 8px;--gn-ui-button-rounded: 8px}\n"] }]
|
|
41255
40878
|
}], propDecorators: { label: [{
|
|
41256
40879
|
type: Input
|
|
41257
40880
|
}], constraint: [{
|
|
@@ -41910,5 +41533,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
41910
41533
|
* Generated bundle index. Do not edit.
|
|
41911
41534
|
*/
|
|
41912
41535
|
|
|
41913
|
-
export { ADD_RESULTS, ADD_SEARCH, AbstractAction, AbstractSearchField, AddLayerFromCatalogComponent, AddLayerRecordPreviewComponent, AddResults, AddSearch, AnchorLinkDirective, ApiCardComponent, ApplicationBannerComponent, AuthService, AutocompleteComponent, AvailableServicesField, AvatarComponent, AvatarServiceInterface, BASEMAP_LAYERS, BadgeComponent, BaseConverter, BaseFileReader, BaseReader, BlockListComponent, ButtonComponent, CLEAR_ERROR, CLEAR_RESULTS, CarouselComponent, CatalogTitleComponent, ChartComponent, ChartViewComponent, CheckToggleComponent, CheckboxComponent, ChipsInputComponent, ClearError, ClearResults, ColorScaleComponent, ConfirmationDialogComponent, ContentGhostComponent, CopyTextButtonComponent, DEFAULT_GN4_LOGIN_URL, DEFAULT_GN4_LOGOUT_URL, DEFAULT_GN4_SETTINGS_URL, DEFAULT_LANG, DEFAULT_PAGE_SIZE, DEFAULT_RESULTS_LAYOUT_CONFIG, DEFAULT_SEARCH_KEY, DO_NOT_USE_DEFAULT_BASEMAP, DataService, DataTableComponent, DataViewComponent, DataViewPermalinkComponent, DataViewShareComponent, DataViewWebComponentComponent, DatePickerComponent, DateRangeDropdownComponent, DateRangePickerComponent, DateRangeSearchField, DateService, DcatApConverter, DefaultRouterModule, DownloadItemComponent, DownloadsListComponent, DragAndDropFileInputComponent, DropdownMultiselectComponent, DropdownSelectorComponent, EDITOR_FEATURE_KEY, ES_QUERY_FIELDS_PRIORITY, ES_RESOURCES_VALUES, ES_SOURCE_SUMMARY, EXTERNAL_VIEWER_OPEN_NEW_TAB, EXTERNAL_VIEWER_URL_TEMPLATE, EditableLabelDirective, EditorFacade, EditorService, ElasticsearchService, EmbeddedTranslateLoader, ErrorComponent, ErrorType, ExpandablePanelButtonComponent, ExpandablePanelComponent, ExternalViewerButtonComponent, FIELDS_BRIEF, FIELDS_SUMMARY, FILTER_GEOMETRY, FILTER_SUMMARY_IGNORE_LIST, FORMATS, FacetBlockComponent, FacetBlockStubComponent, FacetItemComponent, FacetItemStubComponent, FacetListComponent, FacetsContainerComponent, FacetsModule, FavoriteStarComponent, FavoritesService, FeatureAuthModule, FeatureCatalogModule, FeatureDetailComponent, FeatureEditorModule, FeatureMapModule, FeatureNotificationsModule, FeatureRecordModule, FeatureSearchModule, FetchError, FieldsService, FigureComponent, FigureContainerComponent, FileInputComponent, FileTranslateLoader, FilesDropDirective, FilterDropdownComponent, FormFieldWrapperComponent, FullTextSearchField, FuzzySearchComponent, GN_UI_VERSION, GeoTableViewComponent, GeocodingComponent, GeojsonReader, Gn4Converter, Gn4PlatformMapper, Gn4PlatformService, Gn4Repository, Gn4SettingsService, GpfApiDlComponent, GravatarService, HttpLoaderFactory, I18nInterceptor, ImageFallbackDirective, ImageInputComponent, ImageOverlayPreviewComponent, ImportRecordComponent, InteractiveTableColumnComponent, InteractiveTableComponent, IsSpatialSearchField, Iso191153Converter, Iso19139Converter, LANGUAGES_LIST, LANGUAGE_NAMES, LANGUAGE_STORAGE_KEY, LANG_2_TO_3_MAPPER, LANG_3_TO_2_MAPPER, LOGIN_URL, LOGOUT_URL, LONLAT_CRS_CODES, LangService, LanguageSwitcherComponent, LayersPanelComponent, LicenseSearchField, LinkCardComponent, LinkClassifierService, LinkUsage, LoadingMaskComponent, LogService, MAP_FEATURE_KEY, MAP_VIEW_CONSTRAINTS, METADATA_LANGUAGE, MY_FORMATS, MapContainerComponent, MapFacade, MapLegendComponent, MapStateContainerComponent, MapStyleService, MapUtilsService, MapViewComponent, MarkdownEditorComponent, MarkdownParserComponent, MaxLinesComponent, mdview_actions as MdViewActions, MdViewFacade, MetadataCatalogComponent, MetadataContactComponent, MetadataInfoComponent, MetadataLinkType, MetadataMapperContext, MetadataQualityComponent, MetadataQualityItemComponent, ModalDialogComponent, MultilingualSearchField, MyOrgService, NAMESPACES, NavigationButtonComponent, NotificationComponent, NotificationsContainerComponent, NotificationsService, ORGANIZATIONS_STRATEGY, ORGANIZATION_PAGE_URL_TOKEN, ORGANIZATION_URL_TOKEN, OrganisationPreviewComponent, OrganisationsComponent, OrganisationsFilterComponent, OrganisationsResultComponent, OrganizationSearchField, OrganizationsFromGroupsService, OrganizationsFromMetadataService, OwnerSearchField, PAGINATE, PARSE_DELIMITER, PATCH_RESULTS_AGGREGATIONS, PROXY_PATH, Paginate, PaginationButtonsComponent, PaginationComponent, PaginationDotsComponent, PatchResultsAggregations, PopoverComponent, PopupAlertComponent, PreviousNextButtonsComponent, ProgressBarComponent, ProxyService, QUERY_FIELDS, RECORD_URL_TOKEN, REQUEST_MORE_ON_AGGREGATION, REQUEST_MORE_RESULTS, REQUEST_NEW_RESULTS, RESULTS_LAYOUT_CONFIG, ROUTER_CONFIG, ROUTER_ROUTE_DATASET, ROUTER_ROUTE_ORGANIZATION, ROUTER_ROUTE_SEARCH, ROUTER_STATE_KEY, ROUTE_PARAMS, RecordApiFormComponent, RecordFormComponent, RecordMetaComponent, RecordMetricComponent, RecordPreviewCardComponent, RecordPreviewComponent, RecordPreviewFeedComponent, RecordPreviewListComponent, RecordPreviewRowComponent, RecordPreviewTextComponent, RecordPreviewTitleComponent, RecordsMetricsComponent, RecordsService, RelatedRecordCardComponent, RequestMoreOnAggregation, RequestMoreResults, RequestNewResults, ResultsHitsContainerComponent, ResultsHitsNumberComponent, ResultsLayoutComponent, ResultsLayoutConfigItem, ResultsListComponent, ResultsListContainerComponent, ResultsListItemComponent, ResultsTableComponent, ResultsTableContainerComponent, RouterEffects, RouterFacade, RouterService, SEARCH_FEATURE_KEY, SETTINGS_URL, SET_CONFIG_AGGREGATIONS, SET_CONFIG_FILTERS, SET_CONFIG_REQUEST_FIELDS, SET_ERROR, SET_FAVORITES_ONLY, SET_FILTERS, SET_INCLUDE_ON_AGGREGATION, SET_PAGE_SIZE, SET_RESULTS_AGGREGATIONS, SET_RESULTS_HITS, SET_RESULTS_LAYOUT, SET_SEARCH, SET_SORT_BY, SET_SPATIAL_FILTER_ENABLED, SearchEffects, SearchFacade, SearchFiltersSummaryComponent, SearchFiltersSummaryItemComponent, SearchInputComponent, SearchRouterContainerDirective, SearchService, SearchStateContainerDirective, SelectionService, SetConfigAggregations, SetConfigFilters, SetConfigRequestFields, SetError, SetFavoritesOnly, SetFilters, SetIncludeOnAggregation, SetPageSize, SetResultsAggregations, SetResultsHits, SetResultsLayout, SetSearch, SetSortBy, SetSpatialFilterEnabled, SimpleSearchField, SiteTitleComponent, SortByComponent, SortableListComponent, SourceLabelComponent, SourcesService, SpinningLoaderComponent, StarToggleComponent, StepBarComponent, StickyHeaderComponent, SupportedTypes, SwitchToggleComponent, THUMBNAIL_PLACEHOLDER, TRANSLATE_DEFAULT_CONFIG, TRANSLATE_WITH_OVERRIDES_CONFIG, TableViewComponent, TextAreaComponent, TextInputComponent, ThemeService, ThumbnailComponent, TranslatedSearchField, UPDATE_CONFIG_AGGREGATIONS, UPDATE_FILTERS, UPDATE_REQUEST_AGGREGATION_TERM, UiDatavizModule, UiElementsModule, FacetsModule$1 as UiFacetsModule, UiInputsModule, UiLayoutModule, UiSearchModule, UiWidgetsModule, UpdateConfigAggregations, UpdateFilters, UrlInputComponent, UserFeedbackItemComponent, UserPreviewComponent, UserSearchField, UtilI18nModule, UtilSharedModule, VECTOR_STYLE_DEFAULT, ViewportIntersectorComponent, WEB_COMPONENT_EMBEDDER_URL, WizardComponent, WizardFieldComponent, WizardFieldType, WizardService, WizardSummarizeComponent, XmlParseError, _reset, allChildrenElement, appConfigWithTranslationFixture, appendChildTree, appendChildren, assertValidXml, blockModelFixture, bytesToMegabytes, canEditRecord, checkFileFormat, clearSelectedFeatures, createChild, createDocument, createElement, createFuzzyFilter, createNestedChild, createNestedElement, currentPage, defaultMapStyleFixture, defaultMapStyleHlFixture, downgradeImage, downsizeImage, draftSaveSuccess, dragPanCondition, dropEmptyTranslations, editorReducer, emptyBlockModelFixture, findChildElement, findChildOrCreate, findChildrenElement, findConverterForDocument, findNestedChildOrCreate, findNestedElement, findNestedElements, findParent, firstChildElement, formatDate, formatUserInfo, getArrayItem, getAsArray, getAsUrl, getBadgeColor, getCustomTranslations, getError, getFavoritesOnly, getFileFormat, getFileFormatFromServiceOutput, getFirstValue, getFormatPriority, getGeometryFromGeoJSON, getGlobalConfig, getJsonDataItemsProxy, getLangFromBrowser, getLayers, getLinkLabel, getLinkPriority, getMapContext, getMapContextLayerFromConfig, getMapState, getMetadataQualityConfig, getMimeTypeForFormat, getNamespace, getOptionalMapConfig, getOptionalSearchConfig, getPageSize, getRootElement, getSearchConfigAggregations, getSearchFilters, getSearchResults, getSearchResultsAggregations, getSearchResultsHits, getSearchResultsLayout, getSearchResultsLoading, getSearchSortBy, getSearchState, getSearchStateSearch, getSelectedFeatures, getSpatialFilterEnabled, getTemporalRangeUnion, getThemeConfig, hasRecordChangedSinceDraft, hasRecordChangedSinceDraftSuccess, initSearch, initialEditorState, initialMapState, initialState, isConfigLoaded, isDateRange, isFormatInQueryParam, isPublished, itemModelFixture, loadAppConfig, malformedConfigFixture, mapConfigFixture, mapContact, mapKeywords, mapLogo, mapOrganization, mapReducer, markRecordAsChanged, megabytesToBytes, mimeTypeToFormat, minimalAppConfigFixture, missingMandatoryConfigFixture, mouseWheelZoomCondition, noDuplicateFileName, okAppConfigFixture, openDataset, openRecord, parse, parseXmlString, placeholder, prioritizePageScroll, propagateToDocumentOnly, provideGn4, provideRepositoryUrl, readAttribute, readDataset, readDatasetHeaders, readText, reducer$2 as reducer, reducerSearch, removeAllChildren, removeChildren, removeChildrenByName, removeSearchParams, removeWhitespace, renameElements, saveRecord, saveRecordFailure, saveRecordSuccess, selectCanEditRecord, selectCurrentPage, selectEditorConfig, selectEditorState, selectFallback, selectFallbackFields, selectField, selectHasRecordChanged, selectIsPublished, selectRecord, selectRecordChangedSinceSave, selectRecordSaveError, selectRecordSaving, selectRecordSections, selectRecordSource, selectTranslatedField, selectTranslatedValue, setContext, setCurrentPage, setFieldVisibility, setSelectedFeatures, setTextContent, someHabTableItemFixture, sortByFromString, sortByToString, sortByToStrings, stripHtml, stripNamespace, tableItemsFixture, toDate, totalPages, undoRecordDraft, unrecognizedKeysConfigFixture, updateRecordField, writeAttribute, wrongLanguageCodeConfigFixture, xmlToString };
|
|
41536
|
+
export { ADD_RESULTS, ADD_SEARCH, AbstractAction, AbstractSearchField, AddLayerFromCatalogComponent, AddLayerRecordPreviewComponent, AddResults, AddSearch, AnchorLinkDirective, ApiCardComponent, ApplicationBannerComponent, AuthService, AutocompleteComponent, AvailableServicesField, AvatarComponent, AvatarServiceInterface, BASEMAP_LAYERS, BadgeComponent, BaseConverter, BaseFileReader, BaseReader, BlockListComponent, ButtonComponent, CLEAR_ERROR, CLEAR_RESULTS, CarouselComponent, CatalogTitleComponent, ChartComponent, ChartViewComponent, CheckToggleComponent, CheckboxComponent, ClearError, ClearResults, ColorScaleComponent, ConfirmationDialogComponent, ContentGhostComponent, CopyTextButtonComponent, DEFAULT_GN4_LOGIN_URL, DEFAULT_GN4_LOGOUT_URL, DEFAULT_GN4_SETTINGS_URL, DEFAULT_LANG, DEFAULT_PAGE_SIZE, DEFAULT_RESULTS_LAYOUT_CONFIG, DEFAULT_SEARCH_KEY, DO_NOT_USE_DEFAULT_BASEMAP, DataService, DataTableComponent, DataViewComponent, DataViewPermalinkComponent, DataViewShareComponent, DataViewWebComponentComponent, DatePickerComponent, DateRangeDropdownComponent, DateRangePickerComponent, DateRangeSearchField, DateService, DcatApConverter, DefaultRouterModule, DownloadItemComponent, DownloadsListComponent, DragAndDropFileInputComponent, DropdownMultiselectComponent, DropdownSelectorComponent, EDITOR_FEATURE_KEY, ES_QUERY_FIELDS_PRIORITY, ES_RESOURCES_VALUES, ES_SOURCE_SUMMARY, EXTERNAL_VIEWER_OPEN_NEW_TAB, EXTERNAL_VIEWER_URL_TEMPLATE, EditableLabelDirective, EditorFacade, EditorService, ElasticsearchService, EmbeddedTranslateLoader, ErrorComponent, ErrorType, ExpandablePanelButtonComponent, ExpandablePanelComponent, ExternalViewerButtonComponent, FIELDS_BRIEF, FIELDS_SUMMARY, FILTER_GEOMETRY, FILTER_SUMMARY_IGNORE_LIST, FORMATS, FacetBlockComponent, FacetBlockStubComponent, FacetItemComponent, FacetItemStubComponent, FacetListComponent, FacetsContainerComponent, FacetsModule, FavoriteStarComponent, FavoritesService, FeatureAuthModule, FeatureCatalogModule, FeatureDetailComponent, FeatureEditorModule, FeatureMapModule, FeatureNotificationsModule, FeatureRecordModule, FeatureSearchModule, FetchError, FieldsService, FigureComponent, FigureContainerComponent, FileInputComponent, FileTranslateLoader, FilesDropDirective, FilterDropdownComponent, FormFieldArrayComponent, FormFieldComponent, FormFieldDateComponent, FormFieldFileComponent, FormFieldKeywordsComponent, FormFieldLicenseComponent, FormFieldObjectComponent, FormFieldRichComponent, FormFieldSimpleComponent, FormFieldSpatialExtentComponent, FormFieldTemporalExtentsComponent, FormFieldWrapperComponent, FullTextSearchField, FuzzySearchComponent, GN_UI_VERSION, GeoTableViewComponent, GeocodingComponent, GeojsonReader, Gn4Converter, Gn4PlatformMapper, Gn4PlatformService, Gn4Repository, Gn4SettingsService, GpfApiDlComponent, GravatarService, HttpLoaderFactory, I18nInterceptor, ImageFallbackDirective, ImageInputComponent, ImageOverlayPreviewComponent, ImportRecordComponent, InteractiveTableColumnComponent, InteractiveTableComponent, IsSpatialSearchField, Iso191153Converter, Iso19139Converter, LANGUAGES_LIST, LANGUAGE_NAMES, LANGUAGE_STORAGE_KEY, LANG_2_TO_3_MAPPER, LANG_3_TO_2_MAPPER, LOGIN_URL, LOGOUT_URL, LONLAT_CRS_CODES, LangService, LanguageSwitcherComponent, LayersPanelComponent, LicenseSearchField, LinkCardComponent, LinkClassifierService, LinkUsage, LoadingMaskComponent, LogService, MAP_FEATURE_KEY, MAP_VIEW_CONSTRAINTS, METADATA_LANGUAGE, MY_FORMATS, MapContainerComponent, MapFacade, MapLegendComponent, MapStateContainerComponent, MapStyleService, MapUtilsService, MapViewComponent, MarkdownEditorComponent, MarkdownParserComponent, MaxLinesComponent, mdview_actions as MdViewActions, MdViewFacade, MetadataCatalogComponent, MetadataContactComponent, MetadataInfoComponent, MetadataLinkType, MetadataMapperContext, MetadataQualityComponent, MetadataQualityItemComponent, ModalDialogComponent, MultilingualSearchField, MyOrgService, NAMESPACES, NOT_APPLICABLE_CONSTRAINT, NOT_KNOWN_CONSTRAINT, NavigationButtonComponent, NotificationComponent, NotificationsContainerComponent, NotificationsService, ORGANIZATIONS_STRATEGY, ORGANIZATION_PAGE_URL_TOKEN, ORGANIZATION_URL_TOKEN, OrganisationPreviewComponent, OrganisationsComponent, OrganisationsFilterComponent, OrganisationsResultComponent, OrganizationSearchField, OrganizationsFromGroupsService, OrganizationsFromMetadataService, OwnerSearchField, PAGINATE, PARSE_DELIMITER, PATCH_RESULTS_AGGREGATIONS, PROXY_PATH, Paginate, PaginationButtonsComponent, PaginationComponent, PaginationDotsComponent, PatchResultsAggregations, PopoverComponent, PopupAlertComponent, PreviousNextButtonsComponent, ProgressBarComponent, ProxyService, QUERY_FIELDS, RECORD_URL_TOKEN, REQUEST_MORE_ON_AGGREGATION, REQUEST_MORE_RESULTS, REQUEST_NEW_RESULTS, RESULTS_LAYOUT_CONFIG, ROUTER_CONFIG, ROUTER_ROUTE_DATASET, ROUTER_ROUTE_ORGANIZATION, ROUTER_ROUTE_SEARCH, ROUTER_STATE_KEY, ROUTE_PARAMS, RecordApiFormComponent, RecordFormComponent, RecordMetaComponent, RecordMetricComponent, RecordPreviewCardComponent, RecordPreviewComponent, RecordPreviewFeedComponent, RecordPreviewListComponent, RecordPreviewRowComponent, RecordPreviewTextComponent, RecordPreviewTitleComponent, RecordsMetricsComponent, RecordsService, RelatedRecordCardComponent, RequestMoreOnAggregation, RequestMoreResults, RequestNewResults, ResultsHitsContainerComponent, ResultsHitsNumberComponent, ResultsLayoutComponent, ResultsLayoutConfigItem, ResultsListComponent, ResultsListContainerComponent, ResultsListItemComponent, ResultsTableComponent, ResultsTableContainerComponent, RouterEffects, RouterFacade, RouterService, SEARCH_FEATURE_KEY, SETTINGS_URL, SET_CONFIG_AGGREGATIONS, SET_CONFIG_FILTERS, SET_CONFIG_REQUEST_FIELDS, SET_ERROR, SET_FAVORITES_ONLY, SET_FILTERS, SET_INCLUDE_ON_AGGREGATION, SET_PAGE_SIZE, SET_RESULTS_AGGREGATIONS, SET_RESULTS_HITS, SET_RESULTS_LAYOUT, SET_SEARCH, SET_SORT_BY, SET_SPATIAL_FILTER_ENABLED, SearchEffects, SearchFacade, SearchFiltersSummaryComponent, SearchFiltersSummaryItemComponent, SearchInputComponent, SearchRouterContainerDirective, SearchService, SearchStateContainerDirective, SelectionService, SetConfigAggregations, SetConfigFilters, SetConfigRequestFields, SetError, SetFavoritesOnly, SetFilters, SetIncludeOnAggregation, SetPageSize, SetResultsAggregations, SetResultsHits, SetResultsLayout, SetSearch, SetSortBy, SetSpatialFilterEnabled, SimpleSearchField, SiteTitleComponent, SortByComponent, SortableListComponent, SourceLabelComponent, SourcesService, SpinningLoaderComponent, StarToggleComponent, StickyHeaderComponent, SupportedTypes, SwitchToggleComponent, THUMBNAIL_PLACEHOLDER, TRANSLATE_DEFAULT_CONFIG, TRANSLATE_WITH_OVERRIDES_CONFIG, TableViewComponent, TextAreaComponent, TextInputComponent, ThemeService, ThumbnailComponent, TranslatedSearchField, UPDATE_CONFIG_AGGREGATIONS, UPDATE_FILTERS, UPDATE_REQUEST_AGGREGATION_TERM, UiDatavizModule, UiElementsModule, FacetsModule$1 as UiFacetsModule, UiInputsModule, UiLayoutModule, UiSearchModule, UiWidgetsModule, UpdateConfigAggregations, UpdateFilters, UrlInputComponent, UserFeedbackItemComponent, UserPreviewComponent, UserSearchField, UtilI18nModule, UtilSharedModule, VECTOR_STYLE_DEFAULT, ViewportIntersectorComponent, WEB_COMPONENT_EMBEDDER_URL, WizardComponent, WizardFieldComponent, WizardFieldType, WizardService, WizardSummarizeComponent, XmlParseError, _reset, allChildrenElement, appConfigWithTranslationFixture, appendChildTree, appendChildren, assertValidXml, blockModelFixture, bytesToMegabytes, canEditRecord, checkFileFormat, clearSelectedFeatures, createChild, createDocument, createElement, createFuzzyFilter, createNestedChild, createNestedElement, currentPage, defaultMapStyleFixture, defaultMapStyleHlFixture, downgradeImage, downsizeImage, draftSaveSuccess, dragPanCondition, dropEmptyTranslations, editorReducer, emptyBlockModelFixture, findChildElement, findChildOrCreate, findChildrenElement, findConverterForDocument, findNestedChildOrCreate, findNestedElement, findNestedElements, findParent, firstChildElement, formatDate, formatUserInfo, getArrayItem, getAsArray, getAsUrl, getBadgeColor, getCustomTranslations, getError, getFavoritesOnly, getFileFormat, getFileFormatFromServiceOutput, getFirstValue, getFormatPriority, getGeometryFromGeoJSON, getGlobalConfig, getJsonDataItemsProxy, getLangFromBrowser, getLayers, getLinkLabel, getLinkPriority, getMapContext, getMapContextLayerFromConfig, getMapState, getMetadataQualityConfig, getMimeTypeForFormat, getNamespace, getOptionalMapConfig, getOptionalSearchConfig, getPageSize, getRootElement, getSearchConfigAggregations, getSearchFilters, getSearchResults, getSearchResultsAggregations, getSearchResultsHits, getSearchResultsLayout, getSearchResultsLoading, getSearchSortBy, getSearchState, getSearchStateSearch, getSelectedFeatures, getSpatialFilterEnabled, getTemporalRangeUnion, getThemeConfig, hasRecordChangedSinceDraft, hasRecordChangedSinceDraftSuccess, initSearch, initialEditorState, initialMapState, initialState, isConfigLoaded, isDateRange, isFormatInQueryParam, isPublished, itemModelFixture, loadAppConfig, malformedConfigFixture, mapConfigFixture, mapContact, mapKeywords, mapLogo, mapOrganization, mapReducer, markRecordAsChanged, matchesNoApplicableConstraint, matchesNoKnownConstraint, megabytesToBytes, mimeTypeToFormat, minimalAppConfigFixture, missingMandatoryConfigFixture, mouseWheelZoomCondition, noDuplicateFileName, okAppConfigFixture, openDataset, openRecord, parse, parseXmlString, placeholder, prioritizePageScroll, propagateToDocumentOnly, provideGn4, provideRepositoryUrl, readAttribute, readDataset, readDatasetHeaders, readText, reducer$2 as reducer, reducerSearch, removeAllChildren, removeChildren, removeChildrenByName, removeSearchParams, removeWhitespace, renameElements, saveRecord, saveRecordFailure, saveRecordSuccess, selectCanEditRecord, selectCurrentPage, selectEditorConfig, selectEditorState, selectFallback, selectFallbackFields, selectField, selectHasRecordChanged, selectIsPublished, selectRecord, selectRecordChangedSinceSave, selectRecordSaveError, selectRecordSaving, selectRecordSections, selectRecordSource, selectTranslatedField, selectTranslatedValue, setContext, setCurrentPage, setFieldVisibility, setSelectedFeatures, setTextContent, someHabTableItemFixture, sortByFromString, sortByToString, sortByToStrings, stripHtml, stripNamespace, tableItemsFixture, toDate, totalPages, undoRecordDraft, unrecognizedKeysConfigFixture, updateRecordField, writeAttribute, wrongLanguageCodeConfigFixture, xmlToString };
|
|
41914
41537
|
//# sourceMappingURL=geonetwork-ui.mjs.map
|