geonetwork-ui 2.2.0-dev.f866474c → 2.3.0-dev.139106e0
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/index.mjs +2 -1
- package/esm2022/libs/api/metadata-converter/src/index.mjs +5 -5
- package/esm2022/libs/api/metadata-converter/src/lib/base.converter.mjs +14 -0
- package/esm2022/libs/api/metadata-converter/src/lib/find-converter.mjs +15 -0
- package/esm2022/libs/api/metadata-converter/src/lib/gn4/atomic-operations.mjs +29 -2
- package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.converter.mjs +52 -0
- package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.mjs +103 -62
- package/esm2022/libs/api/metadata-converter/src/lib/gn4/index.mjs +4 -0
- package/esm2022/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.mjs +1 -1
- package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/index.mjs +2 -0
- package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/iso19115-3.converter.mjs +123 -0
- package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.mjs +116 -0
- package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.mjs +138 -0
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/index.mjs +2 -0
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.mjs +242 -0
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/read-parts.mjs +102 -74
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/utils/individual-name.mjs +18 -0
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/utils/keyword.mapper.mjs +14 -0
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/utils/role.mapper.mjs +48 -0
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/utils/status.mapper.mjs +18 -0
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/utils/update-frequency.mapper.mjs +64 -0
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/write-parts.mjs +116 -79
- package/esm2022/libs/api/metadata-converter/src/lib/xml-utils.mjs +76 -14
- package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.mjs +2 -2
- package/esm2022/libs/api/repository/src/lib/gn4/gn4-repository.mjs +4 -4
- package/esm2022/libs/api/repository/src/lib/gn4/index.mjs +3 -1
- package/esm2022/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.mjs +10 -3
- package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.mjs +14 -5
- package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.mjs +33 -8
- package/esm2022/libs/api/repository/src/lib/gn4/selection/selection.service.mjs +13 -26
- package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +1 -1
- package/esm2022/libs/common/domain/src/lib/model/search/aggregation.model.mjs +1 -1
- package/esm2022/libs/common/domain/src/lib/model/search/field.model.mjs +2 -0
- package/esm2022/libs/common/domain/src/lib/model/search/filter.model.mjs +1 -1
- package/esm2022/libs/common/domain/src/lib/model/search/index.mjs +2 -1
- package/esm2022/libs/common/domain/src/lib/model/search/search.model.mjs +1 -1
- package/esm2022/libs/common/domain/src/lib/model/thesaurus/thesaurus.model.mjs +1 -1
- package/esm2022/libs/common/domain/src/lib/platform.service.interface.mjs +1 -1
- package/esm2022/libs/data-access/gn4/src/openapi/api/records.api.service.mjs +35 -7
- package/esm2022/libs/data-access/gn4/src/openapi/model/models.mjs +1 -2
- package/esm2022/libs/feature/catalog/src/lib/my-org/my-org.service.mjs +4 -10
- package/esm2022/libs/feature/dataviz/src/lib/service/data.service.mjs +6 -5
- package/esm2022/libs/feature/editor/src/index.mjs +7 -2
- package/esm2022/libs/feature/editor/src/lib/+state/editor.actions.mjs +8 -0
- package/esm2022/libs/feature/editor/src/lib/+state/editor.effects.mjs +26 -0
- package/esm2022/libs/feature/editor/src/lib/+state/editor.facade.mjs +34 -0
- package/esm2022/libs/feature/editor/src/lib/+state/editor.models.mjs +2 -0
- package/esm2022/libs/feature/editor/src/lib/+state/editor.reducer.mjs +42 -0
- package/esm2022/libs/feature/editor/src/lib/+state/editor.selectors.mjs +13 -0
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-array/form-field-array.component.mjs +11 -0
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-file/form-field-file.component.mjs +28 -0
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-object/form-field-object.component.mjs +11 -0
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.mjs +45 -0
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-simple/form-field-simple.component.mjs +50 -0
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.mjs +11 -0
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extent/form-field-temporal-extent.component.mjs +11 -0
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.mjs +107 -0
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field.model.mjs +2 -0
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/index.mjs +10 -0
- package/esm2022/libs/feature/editor/src/lib/components/record-form/record-form.component.mjs +29 -0
- package/esm2022/libs/feature/editor/src/lib/expressions.mjs +13 -0
- package/esm2022/libs/feature/editor/src/lib/feature-editor.module.mjs +21 -9
- package/esm2022/libs/feature/editor/src/lib/fields.config.mjs +34 -0
- package/esm2022/libs/feature/editor/src/lib/models/fields.model.mjs +2 -0
- package/esm2022/libs/feature/editor/src/lib/services/editor.service.mjs +24 -46
- package/esm2022/libs/feature/map/src/index.mjs +2 -1
- package/esm2022/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-record-preview/add-layer-record-preview.component.mjs +7 -3
- package/esm2022/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.mjs +106 -0
- package/esm2022/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.mjs +72 -0
- package/esm2022/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.mjs +64 -0
- package/esm2022/libs/feature/map/src/lib/constant/index.mjs +2 -1
- package/esm2022/libs/feature/map/src/lib/constant/projections.mjs +2 -0
- package/esm2022/libs/feature/map/src/lib/feature-map.module.mjs +29 -5
- package/esm2022/libs/feature/map/src/lib/geocoding/geocoding.component.mjs +93 -0
- package/esm2022/libs/feature/map/src/lib/geocoding.service.mjs +40 -0
- package/esm2022/libs/feature/map/src/lib/layers-panel/layers-panel.component.mjs +12 -5
- package/esm2022/libs/feature/map/src/lib/map-context/map-context.model.mjs +2 -1
- package/esm2022/libs/feature/map/src/lib/map-context/map-context.service.mjs +61 -24
- package/esm2022/libs/feature/map/src/lib/utils/index.mjs +1 -3
- package/esm2022/libs/feature/map/src/lib/utils/map-utils.service.mjs +63 -69
- package/esm2022/libs/feature/notifications/src/index.mjs +4 -0
- package/esm2022/libs/feature/notifications/src/lib/feature-notifications.module.mjs +18 -0
- package/esm2022/libs/feature/notifications/src/lib/notification.model.mjs +2 -0
- package/esm2022/libs/feature/notifications/src/lib/notifications-container/notifications-container.component.mjs +49 -0
- package/esm2022/libs/feature/notifications/src/lib/notifications.service.mjs +29 -0
- package/esm2022/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.mjs +13 -13
- package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +34 -21
- package/esm2022/libs/feature/record/src/lib/state/mdview.reducer.mjs +2 -2
- package/esm2022/libs/feature/router/src/lib/default/index.mjs +2 -1
- package/esm2022/libs/feature/router/src/lib/default/router.service.mjs +1 -1
- package/esm2022/libs/feature/search/src/index.mjs +4 -1
- package/esm2022/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.mjs +7 -4
- package/esm2022/libs/feature/search/src/lib/feature-search.module.mjs +2 -6
- package/esm2022/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.mjs +1 -1
- package/esm2022/libs/feature/search/src/lib/filter-geometry.token.mjs +4 -0
- package/esm2022/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.mjs +7 -3
- package/esm2022/libs/feature/search/src/lib/record-url.token.mjs +4 -0
- package/esm2022/libs/feature/search/src/lib/results-list/results-list.container.component.mjs +3 -3
- package/esm2022/libs/feature/search/src/lib/results-table/results-table.component.mjs +128 -0
- package/esm2022/libs/feature/search/src/lib/state/effects.mjs +6 -4
- package/esm2022/libs/feature/search/src/lib/state/search.facade.mjs +3 -2
- package/esm2022/libs/feature/search/src/lib/utils/service/fields.mjs +41 -26
- package/esm2022/libs/feature/search/src/lib/utils/service/fields.service.mjs +11 -9
- package/esm2022/libs/ui/catalog/src/lib/language-switcher/language-switcher.component.mjs +4 -4
- package/esm2022/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.mjs +3 -3
- package/esm2022/libs/ui/elements/src/index.mjs +15 -12
- package/esm2022/libs/ui/elements/src/lib/downloads-list/downloads-list.component.mjs +3 -3
- package/esm2022/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.mjs +27 -0
- package/esm2022/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.mjs +45 -0
- package/esm2022/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.mjs +17 -0
- package/esm2022/libs/ui/elements/src/lib/max-lines/max-lines.component.mjs +5 -3
- package/esm2022/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.mjs +3 -3
- package/esm2022/libs/ui/elements/src/lib/metadata-info/metadata-info.component.mjs +47 -16
- package/esm2022/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.mjs +3 -4
- package/esm2022/libs/ui/elements/src/lib/notification/notification.component.mjs +34 -0
- package/esm2022/libs/ui/elements/src/lib/record-api-form/record-api-form.component.mjs +9 -6
- package/esm2022/libs/ui/elements/src/lib/related-record-card/related-record-card.component.mjs +3 -3
- package/esm2022/libs/ui/elements/src/lib/thumbnail/thumbnail.component.mjs +9 -4
- package/esm2022/libs/ui/elements/src/lib/ui-elements.module.mjs +20 -7
- package/esm2022/libs/ui/inputs/src/index.mjs +2 -2
- package/esm2022/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.mjs +3 -3
- package/esm2022/libs/ui/inputs/src/lib/button/button.component.mjs +10 -9
- package/esm2022/libs/ui/inputs/src/lib/checkbox/checkbox.component.mjs +3 -3
- package/esm2022/libs/ui/inputs/src/lib/dropdown-multiselect/dropdown-multiselect.component.mjs +3 -3
- package/esm2022/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.mjs +3 -3
- package/esm2022/libs/ui/inputs/src/lib/editable-label/editable-label.directive.mjs +46 -0
- package/esm2022/libs/ui/inputs/src/lib/files-drop/files-drop.directive.mjs +59 -0
- package/esm2022/libs/ui/inputs/src/lib/image-input/image-input.component.mjs +183 -0
- package/esm2022/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.mjs +3 -3
- package/esm2022/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.mjs +2 -2
- package/esm2022/libs/ui/inputs/src/lib/text-area/text-area.component.mjs +3 -3
- package/esm2022/libs/ui/inputs/src/lib/ui-inputs.module.mjs +19 -27
- package/esm2022/libs/ui/layout/src/index.mjs +6 -3
- package/esm2022/libs/ui/layout/src/lib/carousel/carousel.component.mjs +3 -3
- package/esm2022/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.mjs +18 -0
- package/esm2022/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.mjs +36 -0
- package/esm2022/libs/ui/layout/src/lib/interactive-table/interactive-table.component.mjs +37 -0
- package/esm2022/libs/ui/search/src/index.mjs +1 -2
- package/esm2022/libs/ui/search/src/lib/record-preview-card/record-preview-card.component.mjs +1 -1
- package/esm2022/libs/ui/search/src/lib/record-preview-feed/record-preview-feed.component.mjs +1 -1
- package/esm2022/libs/ui/search/src/lib/record-preview-list/record-preview-list.component.mjs +1 -1
- package/esm2022/libs/ui/search/src/lib/record-preview-row/record-preview-row.component.mjs +1 -1
- package/esm2022/libs/ui/search/src/lib/record-preview-title/record-preview-title.component.mjs +1 -1
- package/esm2022/libs/ui/search/src/lib/ui-search.module.mjs +9 -10
- package/esm2022/libs/ui/widgets/src/lib/badge/badge.component.mjs +3 -3
- package/esm2022/libs/util/i18n/src/index.mjs +1 -2
- package/esm2022/libs/util/i18n/src/lib/i18n.constants.mjs +18 -1
- package/esm2022/libs/util/shared/src/lib/links/link-utils.mjs +29 -13
- package/esm2022/libs/util/shared/src/lib/utils/bytes-convert.mjs +4 -0
- package/esm2022/libs/util/shared/src/lib/utils/image-resize.mjs +60 -0
- package/esm2022/libs/util/shared/src/lib/utils/index.mjs +8 -5
- package/esm2022/libs/util/shared/src/lib/utils/temporal-extent-union.mjs +32 -0
- package/esm2022/translations/de.json +151 -109
- package/esm2022/translations/en.json +83 -41
- package/esm2022/translations/es.json +61 -19
- package/esm2022/translations/fr.json +77 -35
- package/esm2022/translations/it.json +78 -36
- package/esm2022/translations/nl.json +62 -20
- package/esm2022/translations/pt.json +61 -19
- package/fesm2022/geonetwork-ui.mjs +6072 -3926
- package/fesm2022/geonetwork-ui.mjs.map +1 -1
- package/index.d.ts +1 -0
- package/index.d.ts.map +1 -1
- package/index.ts +1 -0
- package/libs/api/metadata-converter/src/index.d.ts +4 -4
- package/libs/api/metadata-converter/src/index.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/{metadata-base.mapper.d.ts → base.converter.d.ts} +3 -3
- package/libs/api/metadata-converter/src/lib/base.converter.d.ts.map +1 -0
- package/libs/api/metadata-converter/src/lib/find-converter.d.ts +3 -0
- package/libs/api/metadata-converter/src/lib/find-converter.d.ts.map +1 -0
- package/libs/api/metadata-converter/src/lib/gn4/atomic-operations.d.ts +3 -0
- package/libs/api/metadata-converter/src/lib/gn4/atomic-operations.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/gn4/{gn4.metadata.mapper.d.ts → gn4.converter.d.ts} +5 -5
- package/libs/api/metadata-converter/src/lib/gn4/gn4.converter.d.ts.map +1 -0
- package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts +0 -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/index.d.ts +4 -0
- package/libs/api/metadata-converter/src/lib/gn4/index.d.ts.map +1 -0
- package/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.d.ts +4 -5
- package/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/iso19115-3/index.d.ts +2 -0
- package/libs/api/metadata-converter/src/lib/iso19115-3/index.d.ts.map +1 -0
- package/libs/api/metadata-converter/src/lib/iso19115-3/iso19115-3.converter.d.ts +9 -0
- package/libs/api/metadata-converter/src/lib/iso19115-3/iso19115-3.converter.d.ts.map +1 -0
- package/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.d.ts +20 -0
- package/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.d.ts.map +1 -0
- package/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.d.ts +21 -0
- package/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.d.ts.map +1 -0
- package/libs/api/metadata-converter/src/lib/iso19139/index.d.ts +2 -0
- package/libs/api/metadata-converter/src/lib/iso19139/index.d.ts.map +1 -0
- package/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.d.ts +11 -0
- package/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.d.ts.map +1 -0
- package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts +39 -10
- package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/iso19139/utils/individual-name.d.ts +8 -0
- package/libs/api/metadata-converter/src/lib/iso19139/utils/individual-name.d.ts.map +1 -0
- package/libs/api/metadata-converter/src/lib/iso19139/utils/keyword.mapper.d.ts +3 -0
- package/libs/api/metadata-converter/src/lib/iso19139/utils/keyword.mapper.d.ts.map +1 -0
- package/libs/api/metadata-converter/src/lib/iso19139/utils/role.mapper.d.ts.map +1 -0
- package/libs/api/metadata-converter/src/lib/iso19139/utils/status.mapper.d.ts.map +1 -0
- package/libs/api/metadata-converter/src/lib/iso19139/utils/update-frequency.mapper.d.ts.map +1 -0
- package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts +43 -6
- package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/xml-utils.d.ts +14 -1
- package/libs/api/metadata-converter/src/lib/xml-utils.d.ts.map +1 -1
- 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 -2
- package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/index.d.ts +2 -0
- package/libs/api/repository/src/lib/gn4/index.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.d.ts +1 -1
- package/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts +9 -2
- package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/selection/selection.service.d.ts +4 -5
- package/libs/api/repository/src/lib/gn4/selection/selection.service.d.ts.map +1 -1
- package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +36 -20
- package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
- package/libs/common/domain/src/lib/model/search/aggregation.model.d.ts +1 -1
- package/libs/common/domain/src/lib/model/search/aggregation.model.d.ts.map +1 -1
- package/libs/common/domain/src/lib/model/search/field.model.d.ts +2 -0
- package/libs/common/domain/src/lib/model/search/field.model.d.ts.map +1 -0
- package/libs/common/domain/src/lib/model/search/filter.model.d.ts +1 -1
- package/libs/common/domain/src/lib/model/search/filter.model.d.ts.map +1 -1
- package/libs/common/domain/src/lib/model/search/index.d.ts +1 -0
- package/libs/common/domain/src/lib/model/search/index.d.ts.map +1 -1
- package/libs/common/domain/src/lib/model/search/search.model.d.ts +2 -3
- package/libs/common/domain/src/lib/model/search/search.model.d.ts.map +1 -1
- package/libs/common/domain/src/lib/model/thesaurus/thesaurus.model.d.ts +1 -0
- package/libs/common/domain/src/lib/model/thesaurus/thesaurus.model.d.ts.map +1 -1
- package/libs/common/domain/src/lib/platform.service.interface.d.ts +1 -1
- package/libs/common/domain/src/lib/platform.service.interface.d.ts.map +1 -1
- package/libs/data-access/gn4/src/openapi/api/records.api.service.d.ts +9 -5
- package/libs/data-access/gn4/src/openapi/api/records.api.service.d.ts.map +1 -1
- package/libs/data-access/gn4/src/openapi/model/models.d.ts +0 -1
- package/libs/data-access/gn4/src/openapi/model/models.d.ts.map +1 -1
- package/libs/feature/catalog/src/lib/my-org/my-org.service.d.ts +0 -1
- package/libs/feature/catalog/src/lib/my-org/my-org.service.d.ts.map +1 -1
- package/libs/feature/dataviz/src/lib/service/data.service.d.ts +15 -2
- package/libs/feature/dataviz/src/lib/service/data.service.d.ts.map +1 -1
- package/libs/feature/editor/src/index.d.ts +6 -1
- package/libs/feature/editor/src/index.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/+state/editor.actions.d.ts +23 -0
- package/libs/feature/editor/src/lib/+state/editor.actions.d.ts.map +1 -0
- package/libs/feature/editor/src/lib/+state/editor.effects.d.ts +15 -0
- package/libs/feature/editor/src/lib/+state/editor.effects.d.ts.map +1 -0
- package/libs/feature/editor/src/lib/+state/editor.facade.d.ts +22 -0
- package/libs/feature/editor/src/lib/+state/editor.facade.d.ts.map +1 -0
- package/libs/feature/editor/src/lib/+state/editor.models.d.ts +2 -0
- package/libs/feature/editor/src/lib/+state/editor.models.d.ts.map +1 -0
- package/libs/feature/editor/src/lib/+state/editor.reducer.d.ts +18 -0
- package/libs/feature/editor/src/lib/+state/editor.reducer.d.ts.map +1 -0
- package/libs/feature/editor/src/lib/+state/editor.selectors.d.ts +15 -0
- package/libs/feature/editor/src/lib/+state/editor.selectors.d.ts.map +1 -0
- package/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field-array/form-field-array.component.d.ts +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-array/form-field-array.component.d.ts.map +1 -0
- package/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field-file/form-field-file.component.d.ts +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-file/form-field-file.component.d.ts.map +1 -0
- package/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field-object/form-field-object.component.d.ts +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-object/form-field-object.component.d.ts.map +1 -0
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.d.ts +16 -0
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.d.ts.map +1 -0
- package/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field-simple/form-field-simple.component.d.ts +2 -2
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-simple/form-field-simple.component.d.ts.map +1 -0
- package/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field-spatial-extent/form-field-spatial-extent.component.d.ts +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.d.ts.map +1 -0
- package/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field-temporal-extent/form-field-temporal-extent.component.d.ts +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extent/form-field-temporal-extent.component.d.ts.map +1 -0
- package/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field.component.d.ts +8 -3
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts.map +1 -0
- package/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field.model.d.ts +0 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.model.d.ts.map +1 -0
- package/libs/feature/editor/src/lib/components/record-form/form-field/index.d.ts.map +1 -0
- package/libs/feature/editor/src/lib/components/record-form/record-form.component.d.ts +16 -0
- package/libs/feature/editor/src/lib/components/record-form/record-form.component.d.ts.map +1 -0
- package/libs/feature/editor/src/lib/expressions.d.ts +4 -0
- package/libs/feature/editor/src/lib/expressions.d.ts.map +1 -0
- package/libs/feature/editor/src/lib/feature-editor.module.d.ts +4 -2
- package/libs/feature/editor/src/lib/feature-editor.module.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/fields.config.d.ts +3 -0
- package/libs/feature/editor/src/lib/fields.config.d.ts.map +1 -0
- package/libs/feature/editor/src/lib/models/fields.model.d.ts +15 -0
- package/libs/feature/editor/src/lib/models/fields.model.d.ts.map +1 -0
- package/libs/feature/editor/src/lib/services/editor.service.d.ts +3 -13
- package/libs/feature/editor/src/lib/services/editor.service.d.ts.map +1 -1
- package/libs/feature/map/src/index.d.ts +1 -0
- package/libs/feature/map/src/index.d.ts.map +1 -1
- package/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-record-preview/add-layer-record-preview.component.d.ts.map +1 -1
- package/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.d.ts +22 -0
- package/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.d.ts.map +1 -0
- package/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.d.ts +23 -0
- package/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.d.ts.map +1 -0
- package/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.d.ts +22 -0
- package/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.d.ts.map +1 -0
- package/libs/feature/map/src/lib/constant/index.d.ts +1 -0
- package/libs/feature/map/src/lib/constant/index.d.ts.map +1 -1
- package/libs/feature/map/src/lib/constant/projections.d.ts.map +1 -0
- package/libs/feature/map/src/lib/feature-map.module.d.ts +16 -12
- package/libs/feature/map/src/lib/feature-map.module.d.ts.map +1 -1
- package/libs/feature/map/src/lib/geocoding/geocoding.component.d.ts +25 -0
- package/libs/feature/map/src/lib/geocoding/geocoding.component.d.ts.map +1 -0
- package/libs/feature/map/src/lib/geocoding.service.d.ts +18 -0
- package/libs/feature/map/src/lib/geocoding.service.d.ts.map +1 -0
- package/libs/feature/map/src/lib/layers-panel/layers-panel.component.d.ts +2 -0
- package/libs/feature/map/src/lib/layers-panel/layers-panel.component.d.ts.map +1 -1
- package/libs/feature/map/src/lib/map-context/map-context.model.d.ts +10 -5
- package/libs/feature/map/src/lib/map-context/map-context.model.d.ts.map +1 -1
- package/libs/feature/map/src/lib/map-context/map-context.service.d.ts +2 -0
- package/libs/feature/map/src/lib/map-context/map-context.service.d.ts.map +1 -1
- package/libs/feature/map/src/lib/utils/index.d.ts +0 -2
- package/libs/feature/map/src/lib/utils/index.d.ts.map +1 -1
- package/libs/feature/map/src/lib/utils/map-utils.service.d.ts +13 -12
- package/libs/feature/map/src/lib/utils/map-utils.service.d.ts.map +1 -1
- package/libs/feature/notifications/src/index.d.ts +4 -0
- package/libs/feature/notifications/src/index.d.ts.map +1 -0
- package/libs/feature/notifications/src/lib/feature-notifications.module.d.ts +7 -0
- package/libs/feature/notifications/src/lib/feature-notifications.module.d.ts.map +1 -0
- package/libs/feature/notifications/src/lib/notification.model.d.ts +7 -0
- package/libs/feature/notifications/src/lib/notification.model.d.ts.map +1 -0
- package/libs/feature/notifications/src/lib/notifications-container/notifications-container.component.d.ts +12 -0
- package/libs/feature/notifications/src/lib/notifications-container/notifications-container.component.d.ts.map +1 -0
- package/libs/feature/notifications/src/lib/notifications.service.d.ts +15 -0
- package/libs/feature/notifications/src/lib/notifications.service.d.ts.map +1 -0
- package/libs/feature/record/src/lib/map-view/map-view.component.d.ts +1 -3
- package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
- package/libs/feature/router/src/lib/default/index.d.ts +1 -0
- package/libs/feature/router/src/lib/default/index.d.ts.map +1 -1
- package/libs/feature/router/src/lib/default/router.service.d.ts +1 -1
- package/libs/feature/router/src/lib/default/router.service.d.ts.map +1 -1
- package/libs/feature/search/src/index.d.ts +3 -0
- package/libs/feature/search/src/index.d.ts.map +1 -1
- package/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.d.ts +5 -4
- package/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.d.ts.map +1 -1
- package/libs/feature/search/src/lib/feature-search.module.d.ts +0 -4
- package/libs/feature/search/src/lib/feature-search.module.d.ts.map +1 -1
- package/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.d.ts +3 -2
- package/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.d.ts.map +1 -1
- package/libs/feature/search/src/lib/filter-geometry.token.d.ts +4 -0
- package/libs/feature/search/src/lib/filter-geometry.token.d.ts.map +1 -0
- package/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.d.ts +1 -1
- package/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.d.ts.map +1 -1
- package/libs/feature/search/src/lib/record-url.token.d.ts +3 -0
- package/libs/feature/search/src/lib/record-url.token.d.ts.map +1 -0
- package/libs/feature/search/src/lib/results-table/results-table.component.d.ts +33 -0
- package/libs/feature/search/src/lib/results-table/results-table.component.d.ts.map +1 -0
- package/libs/feature/search/src/lib/state/effects.d.ts.map +1 -1
- package/libs/feature/search/src/lib/state/search.facade.d.ts +1 -1
- package/libs/feature/search/src/lib/state/search.facade.d.ts.map +1 -1
- package/libs/feature/search/src/lib/utils/service/fields.d.ts +21 -8
- package/libs/feature/search/src/lib/utils/service/fields.d.ts.map +1 -1
- package/libs/feature/search/src/lib/utils/service/fields.service.d.ts.map +1 -1
- package/libs/ui/dataviz/src/lib/chart/chart.component.d.ts +1 -1
- package/libs/ui/elements/src/index.d.ts +14 -11
- package/libs/ui/elements/src/index.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts +1 -1
- package/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.d.ts +10 -0
- package/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.d.ts.map +1 -0
- package/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.d.ts +13 -0
- package/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.d.ts.map +1 -0
- package/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.d.ts +8 -0
- package/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.d.ts.map +1 -0
- package/libs/ui/elements/src/lib/max-lines/max-lines.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/metadata-info/metadata-info.component.d.ts +16 -5
- package/libs/ui/elements/src/lib/metadata-info/metadata-info.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/elements/src/lib/notification/notification.component.d.ts +13 -0
- package/libs/ui/elements/src/lib/notification/notification.component.d.ts.map +1 -0
- package/libs/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts +3 -1
- package/libs/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/thumbnail/thumbnail.component.d.ts +3 -2
- package/libs/ui/elements/src/lib/thumbnail/thumbnail.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/ui-elements.module.d.ts +10 -8
- package/libs/ui/elements/src/lib/ui-elements.module.d.ts.map +1 -1
- package/libs/ui/inputs/src/index.d.ts +1 -1
- package/libs/ui/inputs/src/index.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/button/button.component.d.ts +1 -1
- package/libs/ui/inputs/src/lib/button/button.component.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/editable-label/editable-label.directive.d.ts +13 -0
- package/libs/ui/inputs/src/lib/editable-label/editable-label.directive.d.ts.map +1 -0
- package/libs/ui/inputs/src/lib/files-drop/files-drop.directive.d.ts +14 -0
- package/libs/ui/inputs/src/lib/files-drop/files-drop.directive.d.ts.map +1 -0
- package/libs/ui/inputs/src/lib/image-input/image-input.component.d.ts +44 -0
- package/libs/ui/inputs/src/lib/image-input/image-input.component.d.ts.map +1 -0
- package/libs/ui/inputs/src/lib/text-area/text-area.component.d.ts +1 -1
- package/libs/ui/inputs/src/lib/text-area/text-area.component.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts +33 -39
- package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts.map +1 -1
- package/libs/ui/layout/src/index.d.ts +5 -2
- package/libs/ui/layout/src/index.d.ts.map +1 -1
- package/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.d.ts +8 -0
- package/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.d.ts.map +1 -0
- package/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.d.ts +14 -0
- package/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.d.ts.map +1 -0
- package/libs/ui/layout/src/lib/interactive-table/interactive-table.component.d.ts +15 -0
- package/libs/ui/layout/src/lib/interactive-table/interactive-table.component.d.ts.map +1 -0
- package/libs/ui/search/src/index.d.ts +0 -1
- package/libs/ui/search/src/index.d.ts.map +1 -1
- package/libs/ui/search/src/lib/ui-search.module.d.ts +15 -15
- package/libs/ui/search/src/lib/ui-search.module.d.ts.map +1 -1
- package/libs/util/i18n/src/index.d.ts +0 -1
- package/libs/util/i18n/src/index.d.ts.map +1 -1
- package/libs/util/i18n/src/lib/i18n.constants.d.ts +17 -0
- package/libs/util/i18n/src/lib/i18n.constants.d.ts.map +1 -1
- package/libs/util/shared/src/lib/links/link-utils.d.ts +19 -7
- package/libs/util/shared/src/lib/links/link-utils.d.ts.map +1 -1
- package/libs/util/shared/src/lib/utils/bytes-convert.d.ts +2 -0
- package/libs/util/shared/src/lib/utils/bytes-convert.d.ts.map +1 -0
- package/libs/util/shared/src/lib/utils/image-resize.d.ts +3 -0
- package/libs/util/shared/src/lib/utils/image-resize.d.ts.map +1 -0
- package/libs/util/shared/src/lib/utils/index.d.ts +7 -4
- package/libs/util/shared/src/lib/utils/index.d.ts.map +1 -1
- package/libs/util/shared/src/lib/utils/temporal-extent-union.d.ts +5 -0
- package/libs/util/shared/src/lib/utils/temporal-extent-union.d.ts.map +1 -0
- package/package.json +5 -2
- package/src/libs/api/metadata-converter/src/index.ts +4 -4
- package/src/libs/api/metadata-converter/src/lib/{metadata-base.mapper.ts → base.converter.ts} +2 -2
- package/src/libs/api/metadata-converter/src/lib/find-converter.ts +16 -0
- package/src/libs/api/metadata-converter/src/lib/fixtures/generic.records.ts +94 -12
- package/src/libs/api/metadata-converter/src/lib/fixtures/geo2france.records.ts +67 -12
- package/src/libs/api/metadata-converter/src/lib/fixtures/geocat-ch.records.ts +260 -29
- package/src/libs/api/metadata-converter/src/lib/fixtures/metawal.records.ts +580 -0
- package/src/libs/api/metadata-converter/src/lib/gn4/atomic-operations.ts +33 -1
- package/src/libs/api/metadata-converter/src/lib/gn4/{gn4.metadata.mapper.ts → gn4.converter.ts} +9 -5
- package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +149 -77
- package/src/libs/api/metadata-converter/src/lib/gn4/index.ts +3 -0
- package/src/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.ts +4 -5
- package/src/libs/api/metadata-converter/src/lib/iso19115-3/index.ts +1 -0
- package/src/libs/api/metadata-converter/src/lib/iso19115-3/iso19115-3.converter.ts +176 -0
- package/src/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.ts +329 -0
- package/src/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.ts +513 -0
- package/src/libs/api/metadata-converter/src/lib/iso19139/index.ts +1 -0
- package/src/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.ts +327 -0
- package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +230 -134
- package/src/libs/api/metadata-converter/src/lib/iso19139/utils/individual-name.ts +20 -0
- package/src/libs/api/metadata-converter/src/lib/iso19139/utils/keyword.mapper.ts +16 -0
- package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +338 -178
- package/src/libs/api/metadata-converter/src/lib/xml-utils.ts +84 -16
- package/src/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.ts +1 -1
- package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +2 -2
- package/src/libs/api/repository/src/lib/gn4/index.ts +2 -0
- package/src/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.ts +22 -2
- package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.ts +15 -4
- package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +47 -8
- package/src/libs/api/repository/src/lib/gn4/selection/selection.service.ts +14 -38
- package/src/libs/common/domain/src/lib/index.ts +2 -0
- package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +45 -24
- package/src/libs/common/domain/src/lib/model/search/aggregation.model.ts +1 -1
- package/src/libs/common/domain/src/lib/model/search/field.model.ts +1 -0
- package/src/libs/common/domain/src/lib/model/search/filter.model.ts +1 -1
- package/src/libs/common/domain/src/lib/model/search/index.ts +1 -0
- package/src/libs/common/domain/src/lib/model/search/search.model.ts +2 -2
- package/src/libs/common/domain/src/lib/model/thesaurus/thesaurus.model.ts +1 -0
- package/src/libs/common/domain/src/lib/model/user/index.ts +1 -0
- package/src/libs/common/domain/src/lib/platform.service.interface.ts +1 -4
- package/src/libs/common/fixtures/src/lib/elasticsearch/full-response.ts +1 -1
- package/src/libs/common/fixtures/src/lib/gn4/groups.fixtures.ts +1 -1
- package/src/libs/common/fixtures/src/lib/records.fixtures.ts +52 -10
- package/src/libs/data-access/gn4/src/openapi/api/records.api.service.ts +43 -12
- package/src/libs/data-access/gn4/src/openapi/model/models.ts +0 -1
- package/src/libs/data-access/gn4/src/spec.yaml +1 -1
- package/src/libs/feature/catalog/src/lib/my-org/my-org.service.ts +4 -16
- package/src/libs/feature/dataviz/src/lib/service/data.service.ts +9 -6
- package/src/libs/feature/editor/src/index.ts +6 -1
- package/src/libs/feature/editor/src/lib/+state/editor.actions.ts +24 -0
- package/src/libs/feature/editor/src/lib/+state/editor.effects.ts +49 -0
- package/src/libs/feature/editor/src/lib/+state/editor.facade.ts +37 -0
- package/src/libs/feature/editor/src/lib/+state/editor.models.ts +1 -0
- package/src/libs/feature/editor/src/lib/+state/editor.reducer.ts +68 -0
- package/src/libs/feature/editor/src/lib/+state/editor.selectors.ts +39 -0
- package/src/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.html +8 -0
- package/src/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.ts +70 -0
- package/src/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field-array/form-field-array.component.ts +1 -0
- package/src/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field-file/form-field-file.component.ts +4 -1
- package/src/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field-object/form-field-object.component.ts +1 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.html +20 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.ts +44 -0
- package/src/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field-simple/form-field-simple.component.ts +4 -1
- package/src/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field-spatial-extent/form-field-spatial-extent.component.ts +1 -0
- package/src/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field-temporal-extent/form-field-temporal-extent.component.ts +1 -0
- package/src/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field.component.html +28 -4
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.ts +121 -0
- package/src/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field.model.ts +0 -1
- package/src/libs/feature/editor/src/lib/components/record-form/record-form.component.css +0 -0
- package/src/libs/feature/editor/src/lib/components/record-form/record-form.component.html +11 -0
- package/src/libs/feature/editor/src/lib/components/record-form/record-form.component.ts +30 -0
- package/src/libs/feature/editor/src/lib/expressions.ts +16 -0
- package/src/libs/feature/editor/src/lib/feature-editor.module.ts +16 -5
- package/src/libs/feature/editor/src/lib/fields.config.ts +35 -0
- package/src/libs/feature/editor/src/lib/models/fields.model.ts +29 -0
- package/src/libs/feature/editor/src/lib/services/editor.service.ts +39 -67
- package/src/libs/feature/map/src/index.ts +1 -0
- package/src/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-record-preview/add-layer-record-preview.component.ts +5 -1
- package/src/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.css +0 -0
- package/src/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.html +21 -0
- package/src/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.ts +107 -0
- package/src/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.css +0 -0
- package/src/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.html +36 -0
- package/src/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.ts +80 -0
- package/src/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.css +0 -0
- package/src/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.html +37 -0
- package/src/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.ts +64 -0
- package/src/libs/feature/map/src/lib/constant/index.ts +1 -0
- package/src/libs/feature/map/src/lib/feature-map.module.ts +14 -0
- package/src/libs/feature/map/src/lib/geocoding/geocoding.component.css +0 -0
- package/src/libs/feature/map/src/lib/geocoding/geocoding.component.html +39 -0
- package/src/libs/feature/map/src/lib/geocoding/geocoding.component.ts +99 -0
- package/src/libs/feature/map/src/lib/geocoding.service.ts +59 -0
- package/src/libs/feature/map/src/lib/layers-panel/layers-panel.component.html +14 -2
- package/src/libs/feature/map/src/lib/layers-panel/layers-panel.component.ts +5 -0
- package/src/libs/feature/map/src/lib/map-context/map-context.model.ts +10 -3
- package/src/libs/feature/map/src/lib/map-context/map-context.service.ts +72 -28
- package/src/libs/feature/map/src/lib/utils/index.ts +0 -2
- package/src/libs/feature/map/src/lib/utils/map-utils.service.ts +87 -96
- package/src/libs/feature/notifications/src/index.ts +3 -0
- package/src/libs/feature/notifications/src/lib/feature-notifications.module.ts +10 -0
- package/src/libs/feature/notifications/src/lib/notification.model.ts +6 -0
- package/src/libs/feature/notifications/src/lib/notifications-container/notifications-container.component.css +0 -0
- package/src/libs/feature/notifications/src/lib/notifications-container/notifications-container.component.html +17 -0
- package/src/libs/feature/notifications/src/lib/notifications-container/notifications-container.component.ts +44 -0
- package/src/libs/feature/notifications/src/lib/notifications.service.ts +27 -0
- package/src/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.ts +12 -12
- package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +23 -4
- package/src/libs/feature/record/src/lib/state/mdview.reducer.ts +1 -1
- package/src/libs/feature/router/src/lib/default/index.ts +1 -0
- package/src/libs/feature/router/src/lib/default/router.service.ts +1 -1
- package/src/libs/feature/search/src/index.ts +3 -0
- package/src/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.html +13 -4
- package/src/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.ts +2 -1
- package/src/libs/feature/search/src/lib/feature-search.module.ts +1 -10
- package/src/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.ts +4 -4
- package/src/libs/feature/search/src/lib/filter-geometry.token.ts +7 -0
- package/src/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.ts +9 -3
- package/src/libs/feature/search/src/lib/record-url.token.ts +4 -0
- package/src/libs/feature/search/src/lib/results-list/results-list.container.component.ts +1 -1
- package/src/libs/feature/search/src/lib/results-table/results-table.component.css +0 -0
- package/src/libs/feature/search/src/lib/results-table/results-table.component.html +112 -0
- package/src/libs/feature/search/src/lib/results-table/results-table.component.ts +164 -0
- package/src/libs/feature/search/src/lib/state/effects.ts +5 -4
- package/src/libs/feature/search/src/lib/state/search.facade.ts +2 -1
- package/src/libs/feature/search/src/lib/utils/service/fields.service.ts +21 -16
- package/src/libs/feature/search/src/lib/utils/service/fields.ts +43 -34
- package/src/libs/ui/catalog/src/lib/language-switcher/language-switcher.component.html +1 -0
- package/src/libs/ui/catalog/src/lib/language-switcher/language-switcher.component.ts +1 -1
- package/src/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.html +5 -5
- package/src/libs/ui/elements/src/index.ts +14 -11
- package/src/libs/ui/elements/src/lib/downloads-list/downloads-list.component.html +4 -1
- package/src/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.css +0 -0
- package/src/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.html +30 -0
- package/src/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.ts +15 -0
- package/src/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.css +0 -0
- package/src/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.html +18 -0
- package/src/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.ts +45 -0
- package/src/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.css +264 -0
- package/src/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.html +1 -0
- package/src/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.ts +17 -0
- package/src/libs/ui/elements/src/lib/max-lines/max-lines.component.html +5 -1
- package/src/libs/ui/elements/src/lib/max-lines/max-lines.component.ts +1 -0
- package/src/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.html +3 -3
- package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.css +4 -0
- package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.html +212 -68
- package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.ts +51 -10
- package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.ts +2 -3
- package/src/libs/ui/elements/src/lib/notification/notification.component.css +0 -0
- package/src/libs/ui/elements/src/lib/notification/notification.component.html +52 -0
- package/src/libs/ui/elements/src/lib/notification/notification.component.ts +31 -0
- package/src/libs/ui/elements/src/lib/record-api-form/record-api-form.component.html +6 -6
- package/src/libs/ui/elements/src/lib/record-api-form/record-api-form.component.ts +12 -4
- package/src/libs/ui/elements/src/lib/related-record-card/related-record-card.component.html +1 -1
- package/src/libs/ui/elements/src/lib/thumbnail/thumbnail.component.html +2 -2
- package/src/libs/ui/elements/src/lib/thumbnail/thumbnail.component.ts +9 -3
- package/src/libs/ui/elements/src/lib/ui-elements.module.ts +8 -1
- package/src/libs/ui/inputs/src/index.ts +1 -1
- package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.html +1 -1
- package/src/libs/ui/inputs/src/lib/button/button.component.css +0 -5
- package/src/libs/ui/inputs/src/lib/button/button.component.html +0 -1
- package/src/libs/ui/inputs/src/lib/button/button.component.ts +8 -7
- package/src/libs/ui/inputs/src/lib/checkbox/checkbox.component.html +0 -1
- package/src/libs/ui/inputs/src/lib/dropdown-multiselect/dropdown-multiselect.component.html +2 -2
- package/src/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.html +3 -1
- package/src/libs/ui/inputs/src/lib/editable-label/editable-label.directive.ts +48 -0
- package/src/libs/ui/inputs/src/lib/files-drop/files-drop.directive.ts +45 -0
- package/src/libs/ui/inputs/src/lib/image-input/image-input.component.css +0 -0
- package/src/libs/ui/inputs/src/lib/image-input/image-input.component.html +146 -0
- package/src/libs/ui/inputs/src/lib/image-input/image-input.component.ts +193 -0
- package/src/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.css +3 -0
- package/src/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.html +8 -3
- package/src/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.css +1 -0
- package/src/libs/ui/inputs/src/lib/text-area/text-area.component.ts +1 -0
- package/src/libs/ui/inputs/src/lib/ui-inputs.module.ts +8 -21
- package/src/libs/ui/layout/src/index.ts +5 -2
- package/src/libs/ui/layout/src/lib/carousel/carousel.component.css +1 -1
- package/src/libs/ui/layout/src/lib/carousel/carousel.component.html +1 -0
- package/src/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.css +0 -0
- package/src/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.html +18 -0
- package/src/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.ts +16 -0
- package/src/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.css +0 -0
- package/src/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.html +1 -0
- package/src/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.ts +33 -0
- package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.css +15 -0
- package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.html +54 -0
- package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.ts +42 -0
- package/src/libs/ui/search/src/index.ts +0 -1
- package/src/libs/ui/search/src/lib/ui-search.module.ts +2 -3
- package/src/libs/ui/widgets/src/lib/badge/badge.component.html +3 -1
- package/src/libs/util/i18n/src/index.ts +0 -1
- package/src/libs/util/i18n/src/lib/i18n.constants.ts +18 -0
- package/src/libs/util/shared/src/lib/links/link-utils.ts +34 -11
- package/src/libs/util/shared/src/lib/utils/bytes-convert.ts +3 -0
- package/src/libs/util/shared/src/lib/utils/image-resize.ts +72 -0
- package/src/libs/util/shared/src/lib/utils/index.ts +7 -4
- package/src/libs/util/shared/src/lib/utils/temporal-extent-union.ts +32 -0
- package/tailwind.base.css +80 -15
- package/translations/de.json +151 -109
- package/translations/en.json +83 -41
- package/translations/es.json +61 -19
- package/translations/fr.json +77 -35
- package/translations/it.json +78 -36
- package/translations/nl.json +62 -20
- package/translations/pt.json +61 -19
- package/translations/sk.json +139 -97
- package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.metadata.mapper.mjs +0 -48
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/codelists/role.mapper.mjs +0 -48
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/codelists/status.mapper.mjs +0 -18
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/codelists/update-frequency.mapper.mjs +0 -64
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/converter.mjs +0 -122
- package/esm2022/libs/api/metadata-converter/src/lib/metadata-base.mapper.mjs +0 -14
- package/esm2022/libs/data-access/gn4/src/openapi/model/inlineObject3.api.model.mjs +0 -13
- package/esm2022/libs/feature/editor/src/lib/record-form/record-form.component.mjs +0 -24
- package/esm2022/libs/feature/map/src/lib/utils/map-utils-wms.service.mjs +0 -55
- package/esm2022/libs/feature/map/src/lib/utils/projections.mjs +0 -2
- package/esm2022/libs/ui/inputs/src/lib/form-field/form-field-array/form-field-array.component.mjs +0 -11
- package/esm2022/libs/ui/inputs/src/lib/form-field/form-field-file/form-field-file.component.mjs +0 -27
- package/esm2022/libs/ui/inputs/src/lib/form-field/form-field-object/form-field-object.component.mjs +0 -11
- package/esm2022/libs/ui/inputs/src/lib/form-field/form-field-rich/form-field-rich.component.mjs +0 -27
- package/esm2022/libs/ui/inputs/src/lib/form-field/form-field-simple/form-field-simple.component.mjs +0 -49
- package/esm2022/libs/ui/inputs/src/lib/form-field/form-field-spatial-extent/form-field-spatial-extent.component.mjs +0 -11
- package/esm2022/libs/ui/inputs/src/lib/form-field/form-field-temporal-extent/form-field-temporal-extent.component.mjs +0 -11
- package/esm2022/libs/ui/inputs/src/lib/form-field/form-field.component.mjs +0 -74
- package/esm2022/libs/ui/inputs/src/lib/form-field/form-field.model.mjs +0 -2
- package/esm2022/libs/ui/inputs/src/lib/form-field/index.mjs +0 -10
- package/esm2022/libs/ui/search/src/lib/record-table/record-table.component.mjs +0 -145
- package/esm2022/libs/util/i18n/src/lib/testing/test.translate.loader.mjs +0 -24
- package/esm2022/libs/util/i18n/src/lib/testing/test.translate.module.mjs +0 -109
- package/esm2022/libs/util/i18n/src/lib/testing/translations.model.mjs +0 -6
- package/libs/api/metadata-converter/src/lib/gn4/gn4.metadata.mapper.d.ts.map +0 -1
- package/libs/api/metadata-converter/src/lib/iso19139/codelists/role.mapper.d.ts.map +0 -1
- package/libs/api/metadata-converter/src/lib/iso19139/codelists/status.mapper.d.ts.map +0 -1
- package/libs/api/metadata-converter/src/lib/iso19139/codelists/update-frequency.mapper.d.ts.map +0 -1
- package/libs/api/metadata-converter/src/lib/iso19139/converter.d.ts +0 -4
- package/libs/api/metadata-converter/src/lib/iso19139/converter.d.ts.map +0 -1
- package/libs/api/metadata-converter/src/lib/metadata-base.mapper.d.ts.map +0 -1
- package/libs/data-access/gn4/src/openapi/model/inlineObject3.api.model.d.ts +0 -18
- package/libs/data-access/gn4/src/openapi/model/inlineObject3.api.model.d.ts.map +0 -1
- package/libs/feature/editor/src/lib/record-form/record-form.component.d.ts +0 -11
- package/libs/feature/editor/src/lib/record-form/record-form.component.d.ts.map +0 -1
- package/libs/feature/map/src/lib/utils/map-utils-wms.service.d.ts +0 -17
- package/libs/feature/map/src/lib/utils/map-utils-wms.service.d.ts.map +0 -1
- package/libs/feature/map/src/lib/utils/projections.d.ts.map +0 -1
- package/libs/ui/inputs/src/lib/form-field/form-field-array/form-field-array.component.d.ts.map +0 -1
- package/libs/ui/inputs/src/lib/form-field/form-field-file/form-field-file.component.d.ts.map +0 -1
- package/libs/ui/inputs/src/lib/form-field/form-field-object/form-field-object.component.d.ts.map +0 -1
- package/libs/ui/inputs/src/lib/form-field/form-field-rich/form-field-rich.component.d.ts +0 -11
- package/libs/ui/inputs/src/lib/form-field/form-field-rich/form-field-rich.component.d.ts.map +0 -1
- package/libs/ui/inputs/src/lib/form-field/form-field-simple/form-field-simple.component.d.ts.map +0 -1
- package/libs/ui/inputs/src/lib/form-field/form-field-spatial-extent/form-field-spatial-extent.component.d.ts.map +0 -1
- package/libs/ui/inputs/src/lib/form-field/form-field-temporal-extent/form-field-temporal-extent.component.d.ts.map +0 -1
- package/libs/ui/inputs/src/lib/form-field/form-field.component.d.ts.map +0 -1
- package/libs/ui/inputs/src/lib/form-field/form-field.model.d.ts.map +0 -1
- package/libs/ui/inputs/src/lib/form-field/index.d.ts.map +0 -1
- package/libs/ui/search/src/lib/record-table/record-table.component.d.ts +0 -31
- package/libs/ui/search/src/lib/record-table/record-table.component.d.ts.map +0 -1
- package/libs/util/i18n/src/lib/testing/test.translate.loader.d.ts +0 -17
- package/libs/util/i18n/src/lib/testing/test.translate.loader.d.ts.map +0 -1
- package/libs/util/i18n/src/lib/testing/test.translate.module.d.ts +0 -131
- package/libs/util/i18n/src/lib/testing/test.translate.module.d.ts.map +0 -1
- package/libs/util/i18n/src/lib/testing/translations.model.d.ts +0 -21
- package/libs/util/i18n/src/lib/testing/translations.model.d.ts.map +0 -1
- package/src/libs/api/metadata-converter/src/lib/iso19139/converter.ts +0 -187
- package/src/libs/data-access/gn4/src/openapi/model/inlineObject3.api.model.ts +0 -18
- package/src/libs/feature/editor/src/lib/record-form/record-form.component.html +0 -8
- package/src/libs/feature/editor/src/lib/record-form/record-form.component.ts +0 -23
- package/src/libs/feature/map/src/lib/utils/map-utils-wms.service.ts +0 -58
- package/src/libs/ui/inputs/src/lib/form-field/form-field-rich/form-field-rich.component.html +0 -11
- package/src/libs/ui/inputs/src/lib/form-field/form-field-rich/form-field-rich.component.ts +0 -15
- package/src/libs/ui/inputs/src/lib/form-field/form-field.component.ts +0 -78
- package/src/libs/ui/search/src/lib/record-table/record-table.component.css +0 -7
- package/src/libs/ui/search/src/lib/record-table/record-table.component.html +0 -215
- package/src/libs/ui/search/src/lib/record-table/record-table.component.ts +0 -149
- package/src/libs/util/i18n/src/lib/testing/test.translate.loader.ts +0 -26
- package/src/libs/util/i18n/src/lib/testing/test.translate.module.ts +0 -235
- package/src/libs/util/i18n/src/lib/testing/translations.model.ts +0 -28
- /package/libs/api/metadata-converter/src/lib/iso19139/{codelists → utils}/role.mapper.d.ts +0 -0
- /package/libs/api/metadata-converter/src/lib/iso19139/{codelists → utils}/status.mapper.d.ts +0 -0
- /package/libs/api/metadata-converter/src/lib/iso19139/{codelists → utils}/update-frequency.mapper.d.ts +0 -0
- /package/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/index.d.ts +0 -0
- /package/libs/feature/map/src/lib/{utils → constant}/projections.d.ts +0 -0
- /package/src/libs/api/metadata-converter/src/lib/iso19139/{codelists → utils}/role.mapper.ts +0 -0
- /package/src/libs/api/metadata-converter/src/lib/iso19139/{codelists → utils}/status.mapper.ts +0 -0
- /package/src/libs/api/metadata-converter/src/lib/iso19139/{codelists → utils}/update-frequency.mapper.ts +0 -0
- /package/src/libs/feature/editor/src/lib/{record-form/record-form.component.css → components/overview-upload/overview-upload.component.css} +0 -0
- /package/src/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field-array/form-field-array.component.css +0 -0
- /package/src/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field-array/form-field-array.component.html +0 -0
- /package/src/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field-file/form-field-file.component.css +0 -0
- /package/src/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field-file/form-field-file.component.html +0 -0
- /package/src/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field-object/form-field-object.component.css +0 -0
- /package/src/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field-object/form-field-object.component.html +0 -0
- /package/src/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field-rich/form-field-rich.component.css +0 -0
- /package/src/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field-simple/form-field-simple.component.css +0 -0
- /package/src/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field-simple/form-field-simple.component.html +0 -0
- /package/src/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field-spatial-extent/form-field-spatial-extent.component.css +0 -0
- /package/src/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field-spatial-extent/form-field-spatial-extent.component.html +0 -0
- /package/src/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field-temporal-extent/form-field-temporal-extent.component.css +0 -0
- /package/src/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field-temporal-extent/form-field-temporal-extent.component.html +0 -0
- /package/src/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/form-field.component.css +0 -0
- /package/src/libs/{ui/inputs/src/lib → feature/editor/src/lib/components/record-form}/form-field/index.ts +0 -0
- /package/src/libs/feature/map/src/lib/{utils → constant}/projections.ts +0 -0
package/esm2022/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.mjs
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import * as basicLightbox from 'basiclightbox';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/common";
|
|
5
|
+
import * as i2 from "@angular/material/icon";
|
|
6
|
+
import * as i3 from "../../../../inputs/src/lib/button/button.component";
|
|
7
|
+
import * as i4 from "../thumbnail/thumbnail.component";
|
|
8
|
+
import * as i5 from "../content-ghost/content-ghost.component";
|
|
9
|
+
export class ImageOverlayPreviewComponent {
|
|
10
|
+
constructor() {
|
|
11
|
+
this.isPlaceholderShown = new EventEmitter();
|
|
12
|
+
}
|
|
13
|
+
openLightbox(src) {
|
|
14
|
+
basicLightbox.create(`<img src="${src}"/>`).show();
|
|
15
|
+
}
|
|
16
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: ImageOverlayPreviewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
17
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: ImageOverlayPreviewComponent, selector: "gn-ui-image-overlay-preview", inputs: { imageUrl: "imageUrl" }, outputs: { isPlaceholderShown: "isPlaceholderShown" }, ngImport: i0, template: "<gn-ui-content-ghost\n [showContent]=\"imageUrl !== undefined\"\n ghostClass=\"h-48 mb-3\"\n>\n <div\n *ngIf=\"imageUrl\"\n [showContent]=\"imageUrl !== undefined\"\n data-cy=\"record-thumbnail\"\n class=\"shrink-0 bg-gray-100 rounded-lg overflow-hidden w-full border border-gray-300 group-hover:shadow-xl group-hover:border-0 h-48 mb-3\"\n >\n <gn-ui-thumbnail\n class=\"relative h-full w-full\"\n [thumbnailUrl]=\"imageUrl\"\n fit=\"cover\"\n (placeholderShown)=\"isPlaceholderShown.emit($event)\"\n ></gn-ui-thumbnail>\n <div class=\"relative\">\n <gn-ui-button\n class=\"absolute bottom-0 right-0 z-10 mr-2 mb-2\"\n [type]=\"'outline'\"\n [extraClass]=\"'!py-2 !px-0'\"\n (buttonClick)=\"openLightbox(imageUrl)\"\n >\n <mat-icon class=\"material-symbols-outlined font-extralight\"\n >zoom_out_map</mat-icon\n >\n </gn-ui-button>\n </div>\n </div>\n</gn-ui-content-ghost>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i3.ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "component", type: i4.ThumbnailComponent, selector: "gn-ui-thumbnail", inputs: ["thumbnailUrl", "fit"], outputs: ["placeholderShown"] }, { kind: "component", type: i5.ContentGhostComponent, selector: "gn-ui-content-ghost", inputs: ["showContent", "ghostClass"] }] }); }
|
|
18
|
+
}
|
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: ImageOverlayPreviewComponent, decorators: [{
|
|
20
|
+
type: Component,
|
|
21
|
+
args: [{ selector: 'gn-ui-image-overlay-preview', template: "<gn-ui-content-ghost\n [showContent]=\"imageUrl !== undefined\"\n ghostClass=\"h-48 mb-3\"\n>\n <div\n *ngIf=\"imageUrl\"\n [showContent]=\"imageUrl !== undefined\"\n data-cy=\"record-thumbnail\"\n class=\"shrink-0 bg-gray-100 rounded-lg overflow-hidden w-full border border-gray-300 group-hover:shadow-xl group-hover:border-0 h-48 mb-3\"\n >\n <gn-ui-thumbnail\n class=\"relative h-full w-full\"\n [thumbnailUrl]=\"imageUrl\"\n fit=\"cover\"\n (placeholderShown)=\"isPlaceholderShown.emit($event)\"\n ></gn-ui-thumbnail>\n <div class=\"relative\">\n <gn-ui-button\n class=\"absolute bottom-0 right-0 z-10 mr-2 mb-2\"\n [type]=\"'outline'\"\n [extraClass]=\"'!py-2 !px-0'\"\n (buttonClick)=\"openLightbox(imageUrl)\"\n >\n <mat-icon class=\"material-symbols-outlined font-extralight\"\n >zoom_out_map</mat-icon\n >\n </gn-ui-button>\n </div>\n </div>\n</gn-ui-content-ghost>\n" }]
|
|
22
|
+
}], propDecorators: { imageUrl: [{
|
|
23
|
+
type: Input
|
|
24
|
+
}], isPlaceholderShown: [{
|
|
25
|
+
type: Output
|
|
26
|
+
}] } });
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2Utb3ZlcmxheS1wcmV2aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9pbWFnZS1vdmVybGF5LXByZXZpZXcvaW1hZ2Utb3ZlcmxheS1wcmV2aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9pbWFnZS1vdmVybGF5LXByZXZpZXcvaW1hZ2Utb3ZlcmxheS1wcmV2aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDdEUsT0FBTyxLQUFLLGFBQWEsTUFBTSxlQUFlLENBQUE7Ozs7Ozs7QUFPOUMsTUFBTSxPQUFPLDRCQUE0QjtJQUx6QztRQU9ZLHVCQUFrQixHQUFHLElBQUksWUFBWSxFQUFXLENBQUE7S0FJM0Q7SUFIQyxZQUFZLENBQUMsR0FBVztRQUN0QixhQUFhLENBQUMsTUFBTSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtJQUNwRCxDQUFDOzhHQUxVLDRCQUE0QjtrR0FBNUIsNEJBQTRCLDRKQ1J6QyxpK0JBOEJBOzsyRkR0QmEsNEJBQTRCO2tCQUx4QyxTQUFTOytCQUNFLDZCQUE2Qjs4QkFLOUIsUUFBUTtzQkFBaEIsS0FBSztnQkFDSSxrQkFBa0I7c0JBQTNCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgKiBhcyBiYXNpY0xpZ2h0Ym94IGZyb20gJ2Jhc2ljbGlnaHRib3gnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLWltYWdlLW92ZXJsYXktcHJldmlldycsXG4gIHRlbXBsYXRlVXJsOiAnLi9pbWFnZS1vdmVybGF5LXByZXZpZXcuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9pbWFnZS1vdmVybGF5LXByZXZpZXcuY29tcG9uZW50LmNzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBJbWFnZU92ZXJsYXlQcmV2aWV3Q29tcG9uZW50IHtcbiAgQElucHV0KCkgaW1hZ2VVcmw6IHN0cmluZ1xuICBAT3V0cHV0KCkgaXNQbGFjZWhvbGRlclNob3duID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpXG4gIG9wZW5MaWdodGJveChzcmM6IHN0cmluZykge1xuICAgIGJhc2ljTGlnaHRib3guY3JlYXRlKGA8aW1nIHNyYz1cIiR7c3JjfVwiLz5gKS5zaG93KClcbiAgfVxufVxuIiwiPGduLXVpLWNvbnRlbnQtZ2hvc3RcbiAgW3Nob3dDb250ZW50XT1cImltYWdlVXJsICE9PSB1bmRlZmluZWRcIlxuICBnaG9zdENsYXNzPVwiaC00OCBtYi0zXCJcbj5cbiAgPGRpdlxuICAgICpuZ0lmPVwiaW1hZ2VVcmxcIlxuICAgIFtzaG93Q29udGVudF09XCJpbWFnZVVybCAhPT0gdW5kZWZpbmVkXCJcbiAgICBkYXRhLWN5PVwicmVjb3JkLXRodW1ibmFpbFwiXG4gICAgY2xhc3M9XCJzaHJpbmstMCBiZy1ncmF5LTEwMCByb3VuZGVkLWxnIG92ZXJmbG93LWhpZGRlbiB3LWZ1bGwgYm9yZGVyIGJvcmRlci1ncmF5LTMwMCBncm91cC1ob3ZlcjpzaGFkb3cteGwgZ3JvdXAtaG92ZXI6Ym9yZGVyLTAgaC00OCBtYi0zXCJcbiAgPlxuICAgIDxnbi11aS10aHVtYm5haWxcbiAgICAgIGNsYXNzPVwicmVsYXRpdmUgaC1mdWxsIHctZnVsbFwiXG4gICAgICBbdGh1bWJuYWlsVXJsXT1cImltYWdlVXJsXCJcbiAgICAgIGZpdD1cImNvdmVyXCJcbiAgICAgIChwbGFjZWhvbGRlclNob3duKT1cImlzUGxhY2Vob2xkZXJTaG93bi5lbWl0KCRldmVudClcIlxuICAgID48L2duLXVpLXRodW1ibmFpbD5cbiAgICA8ZGl2IGNsYXNzPVwicmVsYXRpdmVcIj5cbiAgICAgIDxnbi11aS1idXR0b25cbiAgICAgICAgY2xhc3M9XCJhYnNvbHV0ZSBib3R0b20tMCByaWdodC0wIHotMTAgbXItMiBtYi0yXCJcbiAgICAgICAgW3R5cGVdPVwiJ291dGxpbmUnXCJcbiAgICAgICAgW2V4dHJhQ2xhc3NdPVwiJyFweS0yICFweC0wJ1wiXG4gICAgICAgIChidXR0b25DbGljayk9XCJvcGVuTGlnaHRib3goaW1hZ2VVcmwpXCJcbiAgICAgID5cbiAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCBmb250LWV4dHJhbGlnaHRcIlxuICAgICAgICAgID56b29tX291dF9tYXA8L21hdC1pY29uXG4gICAgICAgID5cbiAgICAgIDwvZ24tdWktYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZ24tdWktY29udGVudC1naG9zdD5cbiJdfQ==
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, } from '@angular/core';
|
|
3
|
+
import { FormsModule } from '@angular/forms';
|
|
4
|
+
import { MarkdownParserComponent } from '../markdown-parser/markdown-parser.component';
|
|
5
|
+
import { TranslateModule } from '@ngx-translate/core';
|
|
6
|
+
import { ButtonComponent, TextAreaComponent } from '../../../../../../libs/ui/inputs/src';
|
|
7
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
8
|
+
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
export class MarkdownEditorComponent {
|
|
11
|
+
constructor() {
|
|
12
|
+
this.preview = false;
|
|
13
|
+
this.textContentChanged = new EventEmitter();
|
|
14
|
+
}
|
|
15
|
+
textContentChangedHandler(textContent) {
|
|
16
|
+
this.textContent = textContent;
|
|
17
|
+
this.textContentChanged.emit(this.textContent);
|
|
18
|
+
}
|
|
19
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MarkdownEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
20
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: MarkdownEditorComponent, isStandalone: true, selector: "gn-ui-markdown-editor", inputs: { preview: "preview", helperText: "helperText", placeholder: "placeholder", textContent: "textContent" }, outputs: { textContentChanged: "textContentChanged" }, ngImport: i0, template: "<div class=\"h-full flex flex-col\">\n <p class=\"flex-none mb-2 font-medium text-sm text-gray-900\">\n {{ helperText }}\n </p>\n <div class=\"flex-1\" [hidden]=\"preview\">\n <gn-ui-text-area\n [placeholder]=\"placeholder\"\n [value]=\"textContent\"\n (valueChange)=\"textContentChangedHandler($event)\"\n ></gn-ui-text-area>\n </div>\n <div\n class=\"flex-1 border border-gray-800 rounded overflow-y-scroll\"\n [hidden]=\"!preview\"\n >\n <gn-ui-markdown-parser [textContent]=\"textContent\"></gn-ui-markdown-parser>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "component", type: TextAreaComponent, selector: "gn-ui-text-area", inputs: ["value", "placeholder", "required"], outputs: ["valueChange"] }, { kind: "component", type: MarkdownParserComponent, selector: "gn-ui-markdown-parser", inputs: ["textContent"] }, { kind: "ngmodule", type: TranslateModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
21
|
+
}
|
|
22
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MarkdownEditorComponent, decorators: [{
|
|
23
|
+
type: Component,
|
|
24
|
+
args: [{ selector: 'gn-ui-markdown-editor', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
25
|
+
CommonModule,
|
|
26
|
+
FormsModule,
|
|
27
|
+
MatIconModule,
|
|
28
|
+
MatTooltipModule,
|
|
29
|
+
ButtonComponent,
|
|
30
|
+
TextAreaComponent,
|
|
31
|
+
MarkdownParserComponent,
|
|
32
|
+
TranslateModule,
|
|
33
|
+
], template: "<div class=\"h-full flex flex-col\">\n <p class=\"flex-none mb-2 font-medium text-sm text-gray-900\">\n {{ helperText }}\n </p>\n <div class=\"flex-1\" [hidden]=\"preview\">\n <gn-ui-text-area\n [placeholder]=\"placeholder\"\n [value]=\"textContent\"\n (valueChange)=\"textContentChangedHandler($event)\"\n ></gn-ui-text-area>\n </div>\n <div\n class=\"flex-1 border border-gray-800 rounded overflow-y-scroll\"\n [hidden]=\"!preview\"\n >\n <gn-ui-markdown-parser [textContent]=\"textContent\"></gn-ui-markdown-parser>\n </div>\n</div>\n" }]
|
|
34
|
+
}], propDecorators: { preview: [{
|
|
35
|
+
type: Input
|
|
36
|
+
}], helperText: [{
|
|
37
|
+
type: Input
|
|
38
|
+
}], placeholder: [{
|
|
39
|
+
type: Input
|
|
40
|
+
}], textContent: [{
|
|
41
|
+
type: Input
|
|
42
|
+
}], textContentChanged: [{
|
|
43
|
+
type: Output
|
|
44
|
+
}] } });
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2Rvd24tZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9tYXJrZG93bi1lZGl0b3IvbWFya2Rvd24tZWRpdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9tYXJrZG93bi1lZGl0b3IvbWFya2Rvd24tZWRpdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDNUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOENBQThDLENBQUE7QUFDdEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3JELE9BQU8sRUFBRSxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQTtBQUN6RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFDdEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUE7O0FBbUI1RCxNQUFNLE9BQU8sdUJBQXVCO0lBakJwQztRQWtCVyxZQUFPLEdBQUcsS0FBSyxDQUFBO1FBSWQsdUJBQWtCLEdBQzFCLElBQUksWUFBWSxFQUFVLENBQUE7S0FNN0I7SUFKQyx5QkFBeUIsQ0FBQyxXQUFtQjtRQUMzQyxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQTtRQUM5QixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQTtJQUNoRCxDQUFDOzhHQVhVLHVCQUF1QjtrR0FBdkIsdUJBQXVCLDBQQ2hDcEMsbWtCQWtCQSx5RERJSSxZQUFZLDhCQUNaLFdBQVcsOEJBQ1gsYUFBYSw4QkFDYixnQkFBZ0IsK0JBRWhCLGlCQUFpQixvSUFDakIsdUJBQXVCLDBGQUN2QixlQUFlOzsyRkFHTix1QkFBdUI7a0JBakJuQyxTQUFTOytCQUNFLHVCQUF1QixtQkFHaEIsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLGFBQWE7d0JBQ2IsZ0JBQWdCO3dCQUNoQixlQUFlO3dCQUNmLGlCQUFpQjt3QkFDakIsdUJBQXVCO3dCQUN2QixlQUFlO3FCQUNoQjs4QkFHUSxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0ksa0JBQWtCO3NCQUEzQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3JtcydcbmltcG9ydCB7IE1hcmtkb3duUGFyc2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vbWFya2Rvd24tcGFyc2VyL21hcmtkb3duLXBhcnNlci5jb21wb25lbnQnXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50LCBUZXh0QXJlYUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvaW5wdXRzL3NyYydcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJ1xuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLW1hcmtkb3duLWVkaXRvcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9tYXJrZG93bi1lZGl0b3IuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tYXJrZG93bi1lZGl0b3IuY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXG4gICAgQnV0dG9uQ29tcG9uZW50LFxuICAgIFRleHRBcmVhQ29tcG9uZW50LFxuICAgIE1hcmtkb3duUGFyc2VyQ29tcG9uZW50LFxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTWFya2Rvd25FZGl0b3JDb21wb25lbnQge1xuICBASW5wdXQoKSBwcmV2aWV3ID0gZmFsc2VcbiAgQElucHV0KCkgaGVscGVyVGV4dD86IHN0cmluZ1xuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nXG4gIEBJbnB1dCgpIHRleHRDb250ZW50OiBzdHJpbmdcbiAgQE91dHB1dCgpIHRleHRDb250ZW50Q2hhbmdlZDogRXZlbnRFbWl0dGVyPHN0cmluZz4gPVxuICAgIG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpXG5cbiAgdGV4dENvbnRlbnRDaGFuZ2VkSGFuZGxlcih0ZXh0Q29udGVudDogc3RyaW5nKSB7XG4gICAgdGhpcy50ZXh0Q29udGVudCA9IHRleHRDb250ZW50XG4gICAgdGhpcy50ZXh0Q29udGVudENoYW5nZWQuZW1pdCh0aGlzLnRleHRDb250ZW50KVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiaC1mdWxsIGZsZXggZmxleC1jb2xcIj5cbiAgPHAgY2xhc3M9XCJmbGV4LW5vbmUgbWItMiBmb250LW1lZGl1bSB0ZXh0LXNtIHRleHQtZ3JheS05MDBcIj5cbiAgICB7eyBoZWxwZXJUZXh0IH19XG4gIDwvcD5cbiAgPGRpdiBjbGFzcz1cImZsZXgtMVwiIFtoaWRkZW5dPVwicHJldmlld1wiPlxuICAgIDxnbi11aS10ZXh0LWFyZWFcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICBbdmFsdWVdPVwidGV4dENvbnRlbnRcIlxuICAgICAgKHZhbHVlQ2hhbmdlKT1cInRleHRDb250ZW50Q2hhbmdlZEhhbmRsZXIoJGV2ZW50KVwiXG4gICAgPjwvZ24tdWktdGV4dC1hcmVhPlxuICA8L2Rpdj5cbiAgPGRpdlxuICAgIGNsYXNzPVwiZmxleC0xIGJvcmRlciBib3JkZXItZ3JheS04MDAgcm91bmRlZCBvdmVyZmxvdy15LXNjcm9sbFwiXG4gICAgW2hpZGRlbl09XCIhcHJldmlld1wiXG4gID5cbiAgICA8Z24tdWktbWFya2Rvd24tcGFyc2VyIFt0ZXh0Q29udGVudF09XCJ0ZXh0Q29udGVudFwiPjwvZ24tdWktbWFya2Rvd24tcGFyc2VyPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Component, Input, ChangeDetectionStrategy } from '@angular/core';
|
|
2
|
+
import { marked } from 'marked';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class MarkdownParserComponent {
|
|
5
|
+
get parsedMarkdown() {
|
|
6
|
+
return marked.parse(this.textContent);
|
|
7
|
+
}
|
|
8
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MarkdownParserComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: MarkdownParserComponent, isStandalone: true, selector: "gn-ui-markdown-parser", inputs: { textContent: "textContent" }, ngImport: i0, template: "<div class=\"markdown-body\" [innerHTML]=\"parsedMarkdown\"></div>\n", styles: [":host ::ng-deep .markdown-body{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;margin:0px 0px 1.5rem;line-height:1.5;word-wrap:break-word}: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 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 }); }
|
|
10
|
+
}
|
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MarkdownParserComponent, decorators: [{
|
|
12
|
+
type: Component,
|
|
13
|
+
args: [{ selector: 'gn-ui-markdown-parser', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<div class=\"markdown-body\" [innerHTML]=\"parsedMarkdown\"></div>\n", styles: [":host ::ng-deep .markdown-body{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;margin:0px 0px 1.5rem;line-height:1.5;word-wrap:break-word}: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 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"] }]
|
|
14
|
+
}], propDecorators: { textContent: [{
|
|
15
|
+
type: Input
|
|
16
|
+
}] } });
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2Rvd24tcGFyc2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9tYXJrZG93bi1wYXJzZXIvbWFya2Rvd24tcGFyc2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9tYXJrZG93bi1wYXJzZXIvbWFya2Rvd24tcGFyc2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3pFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxRQUFRLENBQUE7O0FBUy9CLE1BQU0sT0FBTyx1QkFBdUI7SUFHbEMsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUE7SUFDdkMsQ0FBQzs4R0FMVSx1QkFBdUI7a0dBQXZCLHVCQUF1Qix5SENWcEMsc0VBQ0E7OzJGRFNhLHVCQUF1QjtrQkFQbkMsU0FBUzsrQkFDRSx1QkFBdUIsbUJBR2hCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSTs4QkFHUCxXQUFXO3NCQUFuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgbWFya2VkIH0gZnJvbSAnbWFya2VkJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnbi11aS1tYXJrZG93bi1wYXJzZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vbWFya2Rvd24tcGFyc2VyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWFya2Rvd24tcGFyc2VyLmNvbXBvbmVudC5jc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIE1hcmtkb3duUGFyc2VyQ29tcG9uZW50IHtcbiAgQElucHV0KCkgdGV4dENvbnRlbnQ6IHN0cmluZ1xuXG4gIGdldCBwYXJzZWRNYXJrZG93bigpIHtcbiAgICByZXR1cm4gbWFya2VkLnBhcnNlKHRoaXMudGV4dENvbnRlbnQpXG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJtYXJrZG93bi1ib2R5XCIgW2lubmVySFRNTF09XCJwYXJzZWRNYXJrZG93blwiPjwvZGl2PlxuIl19
|
|
@@ -50,18 +50,20 @@ export class MaxLinesComponent {
|
|
|
50
50
|
return result;
|
|
51
51
|
}
|
|
52
52
|
ngOnDestroy() {
|
|
53
|
+
if (!this.observer)
|
|
54
|
+
return;
|
|
53
55
|
this.observer.unobserve(this.container.nativeElement.children[0]);
|
|
54
56
|
}
|
|
55
57
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MaxLinesComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
56
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: MaxLinesComponent, selector: "gn-ui-max-lines", inputs: { maxLines: "maxLines" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }], ngImport: i0, template: "<div\n #container\n class=\"max-lines overflow-hidden transition-[max-height] duration-300\"\n [ngClass]=\"isExpanded ? 'ease-in' : 'ease-out'\"\n [style.maxHeight]=\"maxHeight\"\n>\n <ng-content></ng-content>\n</div>\n<div\n *ngIf=\"showToggleButton\"\n (click)=\"toggleDisplay()\"\n class=\"text-secondary cursor-pointer pt-2.5\"\n>\n {{ (isExpanded ? 'ui.readLess' : 'ui.readMore') | translate }}\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
58
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: MaxLinesComponent, selector: "gn-ui-max-lines", inputs: { maxLines: "maxLines" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }], ngImport: i0, template: "<div\n #container\n class=\"max-lines overflow-hidden transition-[max-height] duration-300 relative\"\n [ngClass]=\"isExpanded ? 'ease-in' : 'ease-out'\"\n [style.maxHeight]=\"maxHeight\"\n>\n <ng-content></ng-content>\n <div\n *ngIf=\"showToggleButton && !isExpanded\"\n class=\"absolute inset-x-0 bottom-0 bg-gradient-to-b from-transparent to-white h-3\"\n ></div>\n</div>\n<div\n *ngIf=\"showToggleButton\"\n (click)=\"toggleDisplay()\"\n class=\"text-secondary cursor-pointer pt-2.5\"\n>\n {{ (isExpanded ? 'ui.readLess' : 'ui.readMore') | translate }}\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
57
59
|
}
|
|
58
60
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MaxLinesComponent, decorators: [{
|
|
59
61
|
type: Component,
|
|
60
|
-
args: [{ selector: 'gn-ui-max-lines', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n #container\n class=\"max-lines overflow-hidden transition-[max-height] duration-300\"\n [ngClass]=\"isExpanded ? 'ease-in' : 'ease-out'\"\n [style.maxHeight]=\"maxHeight\"\n>\n <ng-content></ng-content>\n</div>\n<div\n *ngIf=\"showToggleButton\"\n (click)=\"toggleDisplay()\"\n class=\"text-secondary cursor-pointer pt-2.5\"\n>\n {{ (isExpanded ? 'ui.readLess' : 'ui.readMore') | translate }}\n</div>\n" }]
|
|
62
|
+
args: [{ selector: 'gn-ui-max-lines', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n #container\n class=\"max-lines overflow-hidden transition-[max-height] duration-300 relative\"\n [ngClass]=\"isExpanded ? 'ease-in' : 'ease-out'\"\n [style.maxHeight]=\"maxHeight\"\n>\n <ng-content></ng-content>\n <div\n *ngIf=\"showToggleButton && !isExpanded\"\n class=\"absolute inset-x-0 bottom-0 bg-gradient-to-b from-transparent to-white h-3\"\n ></div>\n</div>\n<div\n *ngIf=\"showToggleButton\"\n (click)=\"toggleDisplay()\"\n class=\"text-secondary cursor-pointer pt-2.5\"\n>\n {{ (isExpanded ? 'ui.readLess' : 'ui.readMore') | translate }}\n</div>\n" }]
|
|
61
63
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { maxLines: [{
|
|
62
64
|
type: Input
|
|
63
65
|
}], container: [{
|
|
64
66
|
type: ViewChild,
|
|
65
67
|
args: ['container']
|
|
66
68
|
}] } });
|
|
67
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF4LWxpbmVzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9tYXgtbGluZXMvbWF4LWxpbmVzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9tYXgtbGluZXMvbWF4LWxpbmVzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUNMLFVBQVUsRUFDVix1QkFBdUIsRUFFdkIsU0FBUyxFQUVULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQTs7OztBQVF0QixNQUFNLE9BQU8saUJBQWlCO0lBVTVCLFlBQW9CLEdBQXNCO1FBQXRCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBVGpDLGFBQVEsR0FBRyxDQUFDLENBQUE7UUFFckIsZUFBVSxHQUFHLEtBQUssQ0FBQTtRQUNsQixjQUFTLEdBQUcsRUFBRSxDQUFBO1FBQ2QscUJBQWdCLEdBQUcsS0FBSyxDQUFBO0lBS3FCLENBQUM7SUFFOUMsZUFBZTtRQUNiLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFBO1FBRXpCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxjQUFjLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUMvQyxTQUFTLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRTtnQkFDckIsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUE7WUFDM0IsQ0FBQyxDQUFDLENBQUE7UUFDSixDQUFDLENBQUMsQ0FBQTtRQUVGLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ2pFLENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUE7UUFDbEMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUE7SUFDM0IsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFBO1FBQ3JELE1BQU0sY0FBYyxHQUFHLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUNuRCxNQUFNLGFBQWEsR0FBRyxjQUFjLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxNQUFNLENBQUE7UUFFbkUsSUFBSSxhQUFhLEVBQUU7WUFDakIsSUFBSSxhQUFhLEdBQUcsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxFQUFFO2dCQUN0RSxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFBO2dCQUU1QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVO29CQUM5QixDQUFDLENBQUMsR0FBRyxhQUFhLElBQUk7b0JBQ3RCLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFBO2FBQzlEO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUE7Z0JBQzdCLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxhQUFhLElBQUksQ0FBQTthQUN0QztZQUNELGdCQUFnQixDQUFDLFlBQVksQ0FDM0IsT0FBTyxFQUNQLGVBQWUsSUFBSSxDQUFDLFNBQVMsb0JBQW9CLENBQ2xELENBQUE7WUFFRCxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFBO1NBQ3pCO0lBQ0gsQ0FBQztJQUVELGFBQWEsQ0FBQyxPQUFvQjtRQUNoQyxNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDdEQsTUFBTSxVQUFVLEdBQUcsVUFBVSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQUN2RCxNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUMsYUFBYSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsQ0FBQTtRQUMzRCxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQSxDQUFDLGdEQUFnRDtRQUMvRyxPQUFPLE1BQU0sQ0FBQTtJQUNmLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRO1lBQUUsT0FBTTtRQUMxQixJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUNuRSxDQUFDOzhHQWpFVSxpQkFBaUI7a0dBQWpCLGlCQUFpQixpTUNqQjlCLHlrQkFtQkE7OzJGREZhLGlCQUFpQjtrQkFON0IsU0FBUzsrQkFDRSxpQkFBaUIsbUJBR1YsdUJBQXVCLENBQUMsTUFBTTt3R0FHdEMsUUFBUTtzQkFBaEIsS0FBSztnQkFPa0IsU0FBUztzQkFBaEMsU0FBUzt1QkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgRWxlbWVudFJlZixcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIEFmdGVyVmlld0luaXQsXG4gIFZpZXdDaGlsZCxcbiAgT25EZXN0cm95LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktbWF4LWxpbmVzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21heC1saW5lcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21heC1saW5lcy5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBNYXhMaW5lc0NvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIG1heExpbmVzID0gNlxuXG4gIGlzRXhwYW5kZWQgPSBmYWxzZVxuICBtYXhIZWlnaHQgPSAnJ1xuICBzaG93VG9nZ2xlQnV0dG9uID0gZmFsc2VcbiAgb2JzZXJ2ZXI6IFJlc2l6ZU9ic2VydmVyXG5cbiAgQFZpZXdDaGlsZCgnY29udGFpbmVyJykgY29udGFpbmVyITogRWxlbWVudFJlZlxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5jYWxjdWxhdGVNYXhIZWlnaHQoKVxuXG4gICAgdGhpcy5vYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcigobXV0YXRpb25zKSA9PiB7XG4gICAgICBtdXRhdGlvbnMuZm9yRWFjaCgoKSA9PiB7XG4gICAgICAgIHRoaXMuY2FsY3VsYXRlTWF4SGVpZ2h0KClcbiAgICAgIH0pXG4gICAgfSlcblxuICAgIHRoaXMub2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50LmNoaWxkcmVuWzBdKVxuICB9XG5cbiAgdG9nZ2xlRGlzcGxheSgpIHtcbiAgICB0aGlzLmlzRXhwYW5kZWQgPSAhdGhpcy5pc0V4cGFuZGVkXG4gICAgdGhpcy5jYWxjdWxhdGVNYXhIZWlnaHQoKVxuICB9XG5cbiAgY2FsY3VsYXRlTWF4SGVpZ2h0KCkge1xuICAgIGNvbnN0IGNvbnRhaW5lckVsZW1lbnQgPSB0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50XG4gICAgY29uc3QgY29udGVudEVsZW1lbnQgPSBjb250YWluZXJFbGVtZW50LmNoaWxkcmVuWzBdXG4gICAgY29uc3QgY29udGVudEhlaWdodCA9IGNvbnRlbnRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodFxuXG4gICAgaWYgKGNvbnRlbnRIZWlnaHQpIHtcbiAgICAgIGlmIChjb250ZW50SGVpZ2h0ID4gdGhpcy5tYXhMaW5lcyAqIHRoaXMuZ2V0TGluZUhlaWdodChjb250ZW50RWxlbWVudCkpIHtcbiAgICAgICAgdGhpcy5zaG93VG9nZ2xlQnV0dG9uID0gdHJ1ZVxuXG4gICAgICAgIHRoaXMubWF4SGVpZ2h0ID0gdGhpcy5pc0V4cGFuZGVkXG4gICAgICAgICAgPyBgJHtjb250ZW50SGVpZ2h0fXB4YFxuICAgICAgICAgIDogYCR7dGhpcy5tYXhMaW5lcyAqIHRoaXMuZ2V0TGluZUhlaWdodChjb250ZW50RWxlbWVudCl9cHhgXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNob3dUb2dnbGVCdXR0b24gPSBmYWxzZVxuICAgICAgICB0aGlzLm1heEhlaWdodCA9IGAke2NvbnRlbnRIZWlnaHR9cHhgXG4gICAgICB9XG4gICAgICBjb250YWluZXJFbGVtZW50LnNldEF0dHJpYnV0ZShcbiAgICAgICAgJ3N0eWxlJyxcbiAgICAgICAgYG1heC1oZWlnaHQ6ICR7dGhpcy5tYXhIZWlnaHR9OyBvdmVyZmxvdzogaGlkZGVuYFxuICAgICAgKVxuXG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKClcbiAgICB9XG4gIH1cblxuICBnZXRMaW5lSGVpZ2h0KGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogbnVtYmVyIHtcbiAgICBjb25zdCBjb21wdXRlZFN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudClcbiAgICBjb25zdCBsaW5lSGVpZ2h0ID0gcGFyc2VGbG9hdChjb21wdXRlZFN0eWxlLmxpbmVIZWlnaHQpXG4gICAgY29uc3QgZm9udFNpemUgPSBwYXJzZUZsb2F0KGNvbXB1dGVkU3R5bGUuZm9udFNpemUgfHwgJzE0JylcbiAgICBjb25zdCByZXN1bHQgPSBpc05hTihsaW5lSGVpZ2h0KSA/IGZvbnRTaXplICogMS4yIDogbGluZUhlaWdodCAvLyBVc2UgYSBkZWZhdWx0IGlmIGxpbmUgaGVpZ2h0IGlzIG5vdCBzcGVjaWZpZWRcbiAgICByZXR1cm4gcmVzdWx0XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMub2JzZXJ2ZXIpIHJldHVyblxuICAgIHRoaXMub2JzZXJ2ZXIudW5vYnNlcnZlKHRoaXMuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW5bMF0pXG4gIH1cbn1cbiIsIjxkaXZcbiAgI2NvbnRhaW5lclxuICBjbGFzcz1cIm1heC1saW5lcyBvdmVyZmxvdy1oaWRkZW4gdHJhbnNpdGlvbi1bbWF4LWhlaWdodF0gZHVyYXRpb24tMzAwIHJlbGF0aXZlXCJcbiAgW25nQ2xhc3NdPVwiaXNFeHBhbmRlZCA/ICdlYXNlLWluJyA6ICdlYXNlLW91dCdcIlxuICBbc3R5bGUubWF4SGVpZ2h0XT1cIm1heEhlaWdodFwiXG4+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPGRpdlxuICAgICpuZ0lmPVwic2hvd1RvZ2dsZUJ1dHRvbiAmJiAhaXNFeHBhbmRlZFwiXG4gICAgY2xhc3M9XCJhYnNvbHV0ZSBpbnNldC14LTAgYm90dG9tLTAgYmctZ3JhZGllbnQtdG8tYiBmcm9tLXRyYW5zcGFyZW50IHRvLXdoaXRlIGgtM1wiXG4gID48L2Rpdj5cbjwvZGl2PlxuPGRpdlxuICAqbmdJZj1cInNob3dUb2dnbGVCdXR0b25cIlxuICAoY2xpY2spPVwidG9nZ2xlRGlzcGxheSgpXCJcbiAgY2xhc3M9XCJ0ZXh0LXNlY29uZGFyeSBjdXJzb3ItcG9pbnRlciBwdC0yLjVcIlxuPlxuICB7eyAoaXNFeHBhbmRlZCA/ICd1aS5yZWFkTGVzcycgOiAndWkucmVhZE1vcmUnKSB8IHRyYW5zbGF0ZSB9fVxuPC9kaXY+XG4iXX0=
|
|
@@ -27,11 +27,11 @@ export class MetadataContactComponent {
|
|
|
27
27
|
this.organizationClick.emit(this.shownOrganization);
|
|
28
28
|
}
|
|
29
29
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MetadataContactComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
30
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: MetadataContactComponent, selector: "gn-ui-metadata-contact", inputs: { metadata: "metadata" }, outputs: { organizationClick: "organizationClick", contactClick: "contactClick" }, ngImport: i0, template: "<div class=\"py-5 px-5 rounded bg-gray-100 text-black mb-6
|
|
30
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: MetadataContactComponent, selector: "gn-ui-metadata-contact", inputs: { metadata: "metadata" }, outputs: { organizationClick: "organizationClick", contactClick: "contactClick" }, ngImport: i0, template: "<div class=\"py-5 px-5 rounded bg-gray-100 text-black mb-6\">\n <div class=\"grid gap-3 overflow-hidden\">\n <div>\n <p class=\"text-sm font-medium\" translate>record.metadata.contact</p>\n </div>\n <div\n *ngIf=\"shownOrganization?.logoUrl?.href\"\n class=\"flex items-center justify-center border-solid border border-gray-300 rounded-md bg-white h-32 overflow-hidden\"\n >\n <gn-ui-thumbnail\n class=\"relative h-full w-full\"\n [thumbnailUrl]=\"shownOrganization.logoUrl.href\"\n fit=\"contain\"\n ></gn-ui-thumbnail>\n </div>\n <div class=\"grid gap-1\">\n <div class=\"flex\">\n <div\n class=\"text-primary font-title text-21 mr-2 cursor-pointer hover:underline\"\n (click)=\"onOrganizationClick()\"\n data-cy=\"organization-name\"\n >\n {{ shownOrganization?.name }}\n </div>\n </div>\n <div *ngIf=\"shownOrganization?.website\">\n <a\n [href]=\"shownOrganization.website\"\n target=\"_blank\"\n class=\"contact-website text-primary text-sm cursor-pointer hover:underline transition-all\"\n >{{ shownOrganization.website }}\n <mat-icon\n class=\"material-symbols-outlined !w-[12px] !h-[12px] !text-[12px] opacity-75 shrink-0\"\n >open_in_new</mat-icon\n >\n </a>\n </div>\n </div>\n <div class=\"grid gap-5 py-3 overflow-hidden\">\n <div *ngIf=\"contacts[0]?.phone\">\n <div class=\"flex\">\n <mat-icon\n class=\"material-symbols-outlined !w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n >call_outline</mat-icon\n >\n <div class=\"flex flex-col ml-2\">\n <p class=\"text-sm\">{{ contacts[0].phone }}</p>\n </div>\n </div>\n </div>\n <div *ngIf=\"contacts[0]?.email\">\n <div class=\"flex\">\n <mat-icon\n class=\"material-symbols-outlined !w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n >\n mail_outline</mat-icon\n >\n <a\n *ngIf=\"contacts.length\"\n [href]=\"'mailto:' + contacts[0].email\"\n class=\"text-sm hover:underline ml-2\"\n target=\"_blank\"\n data-cy=\"contact-email\"\n >{{ contacts[0].email }}</a\n >\n </div>\n </div>\n <div *ngIf=\"contacts[0]?.firstName || contacts[0]?.lastName\">\n <div class=\"flex\">\n <mat-icon\n class=\"material-symbols-outlined !w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n >person_outline</mat-icon\n >\n <div class=\"flex flex-col ml-2\">\n <p class=\"text-sm\">\n {{ contacts[0]?.firstName || '' }}\n {{ contacts[0]?.lastName || '' }}\n </p>\n </div>\n </div>\n </div>\n <div *ngIf=\"contacts[0]?.address\">\n <div class=\"flex\">\n <mat-icon\n class=\"material-symbols-outlined !w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n >\n location_on</mat-icon\n >\n <div class=\"flex flex-col ml-2\">\n <p *ngFor=\"let addressPart of address\" class=\"text-sm\">\n {{ addressPart }}\n </p>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i3.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i4.ThumbnailComponent, selector: "gn-ui-thumbnail", inputs: ["thumbnailUrl", "fit"], outputs: ["placeholderShown"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
31
31
|
}
|
|
32
32
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MetadataContactComponent, decorators: [{
|
|
33
33
|
type: Component,
|
|
34
|
-
args: [{ selector: 'gn-ui-metadata-contact', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"py-5 px-5 rounded bg-gray-100 text-black mb-6
|
|
34
|
+
args: [{ selector: 'gn-ui-metadata-contact', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"py-5 px-5 rounded bg-gray-100 text-black mb-6\">\n <div class=\"grid gap-3 overflow-hidden\">\n <div>\n <p class=\"text-sm font-medium\" translate>record.metadata.contact</p>\n </div>\n <div\n *ngIf=\"shownOrganization?.logoUrl?.href\"\n class=\"flex items-center justify-center border-solid border border-gray-300 rounded-md bg-white h-32 overflow-hidden\"\n >\n <gn-ui-thumbnail\n class=\"relative h-full w-full\"\n [thumbnailUrl]=\"shownOrganization.logoUrl.href\"\n fit=\"contain\"\n ></gn-ui-thumbnail>\n </div>\n <div class=\"grid gap-1\">\n <div class=\"flex\">\n <div\n class=\"text-primary font-title text-21 mr-2 cursor-pointer hover:underline\"\n (click)=\"onOrganizationClick()\"\n data-cy=\"organization-name\"\n >\n {{ shownOrganization?.name }}\n </div>\n </div>\n <div *ngIf=\"shownOrganization?.website\">\n <a\n [href]=\"shownOrganization.website\"\n target=\"_blank\"\n class=\"contact-website text-primary text-sm cursor-pointer hover:underline transition-all\"\n >{{ shownOrganization.website }}\n <mat-icon\n class=\"material-symbols-outlined !w-[12px] !h-[12px] !text-[12px] opacity-75 shrink-0\"\n >open_in_new</mat-icon\n >\n </a>\n </div>\n </div>\n <div class=\"grid gap-5 py-3 overflow-hidden\">\n <div *ngIf=\"contacts[0]?.phone\">\n <div class=\"flex\">\n <mat-icon\n class=\"material-symbols-outlined !w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n >call_outline</mat-icon\n >\n <div class=\"flex flex-col ml-2\">\n <p class=\"text-sm\">{{ contacts[0].phone }}</p>\n </div>\n </div>\n </div>\n <div *ngIf=\"contacts[0]?.email\">\n <div class=\"flex\">\n <mat-icon\n class=\"material-symbols-outlined !w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n >\n mail_outline</mat-icon\n >\n <a\n *ngIf=\"contacts.length\"\n [href]=\"'mailto:' + contacts[0].email\"\n class=\"text-sm hover:underline ml-2\"\n target=\"_blank\"\n data-cy=\"contact-email\"\n >{{ contacts[0].email }}</a\n >\n </div>\n </div>\n <div *ngIf=\"contacts[0]?.firstName || contacts[0]?.lastName\">\n <div class=\"flex\">\n <mat-icon\n class=\"material-symbols-outlined !w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n >person_outline</mat-icon\n >\n <div class=\"flex flex-col ml-2\">\n <p class=\"text-sm\">\n {{ contacts[0]?.firstName || '' }}\n {{ contacts[0]?.lastName || '' }}\n </p>\n </div>\n </div>\n </div>\n <div *ngIf=\"contacts[0]?.address\">\n <div class=\"flex\">\n <mat-icon\n class=\"material-symbols-outlined !w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n >\n location_on</mat-icon\n >\n <div class=\"flex flex-col ml-2\">\n <p *ngFor=\"let addressPart of address\" class=\"text-sm\">\n {{ addressPart }}\n </p>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n" }]
|
|
35
35
|
}], propDecorators: { metadata: [{
|
|
36
36
|
type: Input
|
|
37
37
|
}], organizationClick: [{
|
|
@@ -39,4 +39,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
|
|
|
39
39
|
}], contactClick: [{
|
|
40
40
|
type: Output
|
|
41
41
|
}] } });
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEtY29udGFjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2VsZW1lbnRzL3NyYy9saWIvbWV0YWRhdGEtY29udGFjdC9tZXRhZGF0YS1jb250YWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9tZXRhZGF0YS1jb250YWN0L21ldGFkYXRhLWNvbnRhY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUE7Ozs7OztBQWF0QixNQUFNLE9BQU8sd0JBQXdCO0lBTnJDO1FBUVksc0JBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQWdCLENBQUE7UUFDcEQsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBYyxDQUFBO0tBd0J4RDtJQXRCQyxJQUFJLGlCQUFpQjtRQUNuQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUE7SUFDeEMsQ0FBQztJQUVELElBQUksUUFBUTtRQUNWLE9BQU8sQ0FDTCxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxLQUFLLFNBQVM7WUFDL0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsbUJBQW1CO1lBQ25DLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FDbEMsQ0FBQTtJQUNILENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU87YUFDMUMsS0FBSyxDQUFDLEdBQUcsQ0FBQzthQUNWLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUE7UUFDN0IsT0FBTyxZQUFZLENBQUE7SUFDckIsQ0FBQztJQUVELG1CQUFtQjtRQUNqQixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO0lBQ3JELENBQUM7OEdBMUJVLHdCQUF3QjtrR0FBeEIsd0JBQXdCLG1MQ25CckMsNjJHQWtHQTs7MkZEL0VhLHdCQUF3QjtrQkFOcEMsU0FBUzsrQkFDRSx3QkFBd0IsbUJBR2pCLHVCQUF1QixDQUFDLE1BQU07OEJBR3RDLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0ksaUJBQWlCO3NCQUExQixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQge1xuICBDYXRhbG9nUmVjb3JkLFxuICBJbmRpdmlkdWFsLFxuICBPcmdhbml6YXRpb24sXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3JlY29yZCdcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktbWV0YWRhdGEtY29udGFjdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9tZXRhZGF0YS1jb250YWN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWV0YWRhdGEtY29udGFjdC5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBNZXRhZGF0YUNvbnRhY3RDb21wb25lbnQge1xuICBASW5wdXQoKSBtZXRhZGF0YTogUGFydGlhbDxDYXRhbG9nUmVjb3JkPlxuICBAT3V0cHV0KCkgb3JnYW5pemF0aW9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPE9yZ2FuaXphdGlvbj4oKVxuICBAT3V0cHV0KCkgY29udGFjdENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxJbmRpdmlkdWFsPigpXG5cbiAgZ2V0IHNob3duT3JnYW5pemF0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLm1ldGFkYXRhLm93bmVyT3JnYW5pemF0aW9uXG4gIH1cblxuICBnZXQgY29udGFjdHMoKSB7XG4gICAgcmV0dXJuIChcbiAgICAgICh0aGlzLm1ldGFkYXRhLmtpbmQgPT09ICdkYXRhc2V0J1xuICAgICAgICA/IHRoaXMubWV0YWRhdGEuY29udGFjdHNGb3JSZXNvdXJjZVxuICAgICAgICA6IHRoaXMubWV0YWRhdGEuY29udGFjdHMpIHx8IFtdXG4gICAgKVxuICB9XG5cbiAgZ2V0IGFkZHJlc3MoKSB7XG4gICAgY29uc3QgYWRkcmVzc1BhcnRzID0gdGhpcy5jb250YWN0c1swXS5hZGRyZXNzXG4gICAgICAuc3BsaXQoJywnKVxuICAgICAgLm1hcCgocGFydCkgPT4gcGFydC50cmltKCkpXG4gICAgcmV0dXJuIGFkZHJlc3NQYXJ0c1xuICB9XG5cbiAgb25Pcmdhbml6YXRpb25DbGljaygpIHtcbiAgICB0aGlzLm9yZ2FuaXphdGlvbkNsaWNrLmVtaXQodGhpcy5zaG93bk9yZ2FuaXphdGlvbilcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInB5LTUgcHgtNSByb3VuZGVkIGJnLWdyYXktMTAwIHRleHQtYmxhY2sgbWItNlwiPlxuICA8ZGl2IGNsYXNzPVwiZ3JpZCBnYXAtMyBvdmVyZmxvdy1oaWRkZW5cIj5cbiAgICA8ZGl2PlxuICAgICAgPHAgY2xhc3M9XCJ0ZXh0LXNtIGZvbnQtbWVkaXVtXCIgdHJhbnNsYXRlPnJlY29yZC5tZXRhZGF0YS5jb250YWN0PC9wPlxuICAgIDwvZGl2PlxuICAgIDxkaXZcbiAgICAgICpuZ0lmPVwic2hvd25Pcmdhbml6YXRpb24/LmxvZ29Vcmw/LmhyZWZcIlxuICAgICAgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBib3JkZXItc29saWQgYm9yZGVyIGJvcmRlci1ncmF5LTMwMCByb3VuZGVkLW1kIGJnLXdoaXRlIGgtMzIgb3ZlcmZsb3ctaGlkZGVuXCJcbiAgICA+XG4gICAgICA8Z24tdWktdGh1bWJuYWlsXG4gICAgICAgIGNsYXNzPVwicmVsYXRpdmUgaC1mdWxsIHctZnVsbFwiXG4gICAgICAgIFt0aHVtYm5haWxVcmxdPVwic2hvd25Pcmdhbml6YXRpb24ubG9nb1VybC5ocmVmXCJcbiAgICAgICAgZml0PVwiY29udGFpblwiXG4gICAgICA+PC9nbi11aS10aHVtYm5haWw+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImdyaWQgZ2FwLTFcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4XCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cInRleHQtcHJpbWFyeSBmb250LXRpdGxlIHRleHQtMjEgbXItMiBjdXJzb3ItcG9pbnRlciBob3Zlcjp1bmRlcmxpbmVcIlxuICAgICAgICAgIChjbGljayk9XCJvbk9yZ2FuaXphdGlvbkNsaWNrKClcIlxuICAgICAgICAgIGRhdGEtY3k9XCJvcmdhbml6YXRpb24tbmFtZVwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBzaG93bk9yZ2FuaXphdGlvbj8ubmFtZSB9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cInNob3duT3JnYW5pemF0aW9uPy53ZWJzaXRlXCI+XG4gICAgICAgIDxhXG4gICAgICAgICAgW2hyZWZdPVwic2hvd25Pcmdhbml6YXRpb24ud2Vic2l0ZVwiXG4gICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICBjbGFzcz1cImNvbnRhY3Qtd2Vic2l0ZSB0ZXh0LXByaW1hcnkgdGV4dC1zbSBjdXJzb3ItcG9pbnRlciBob3Zlcjp1bmRlcmxpbmUgdHJhbnNpdGlvbi1hbGxcIlxuICAgICAgICAgID57eyBzaG93bk9yZ2FuaXphdGlvbi53ZWJzaXRlIH19XG4gICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWQgIXctWzEycHhdICFoLVsxMnB4XSAhdGV4dC1bMTJweF0gb3BhY2l0eS03NSBzaHJpbmstMFwiXG4gICAgICAgICAgICA+b3Blbl9pbl9uZXc8L21hdC1pY29uXG4gICAgICAgICAgPlxuICAgICAgICA8L2E+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZ3JpZCBnYXAtNSBweS0zIG92ZXJmbG93LWhpZGRlblwiPlxuICAgICAgPGRpdiAqbmdJZj1cImNvbnRhY3RzWzBdPy5waG9uZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleFwiPlxuICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkICF3LTUgIWgtNSAhdGV4dC1bMjBweF0gb3BhY2l0eS03NSBzaHJpbmstMFwiXG4gICAgICAgICAgICA+Y2FsbF9vdXRsaW5lPC9tYXQtaWNvblxuICAgICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBtbC0yXCI+XG4gICAgICAgICAgICA8cCBjbGFzcz1cInRleHQtc21cIj57eyBjb250YWN0c1swXS5waG9uZSB9fTwvcD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCJjb250YWN0c1swXT8uZW1haWxcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXhcIj5cbiAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCAhdy01ICFoLTUgIXRleHQtWzIwcHhdIG9wYWNpdHktNzUgc2hyaW5rLTBcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIG1haWxfb3V0bGluZTwvbWF0LWljb25cbiAgICAgICAgICA+XG4gICAgICAgICAgPGFcbiAgICAgICAgICAgICpuZ0lmPVwiY29udGFjdHMubGVuZ3RoXCJcbiAgICAgICAgICAgIFtocmVmXT1cIidtYWlsdG86JyArIGNvbnRhY3RzWzBdLmVtYWlsXCJcbiAgICAgICAgICAgIGNsYXNzPVwidGV4dC1zbSBob3Zlcjp1bmRlcmxpbmUgbWwtMlwiXG4gICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgZGF0YS1jeT1cImNvbnRhY3QtZW1haWxcIlxuICAgICAgICAgICAgPnt7IGNvbnRhY3RzWzBdLmVtYWlsIH19PC9hXG4gICAgICAgICAgPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cImNvbnRhY3RzWzBdPy5maXJzdE5hbWUgfHwgY29udGFjdHNbMF0/Lmxhc3ROYW1lXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4XCI+XG4gICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWQgIXctNSAhaC01ICF0ZXh0LVsyMHB4XSBvcGFjaXR5LTc1IHNocmluay0wXCJcbiAgICAgICAgICAgID5wZXJzb25fb3V0bGluZTwvbWF0LWljb25cbiAgICAgICAgICA+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgbWwtMlwiPlxuICAgICAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0LXNtXCI+XG4gICAgICAgICAgICAgIHt7IGNvbnRhY3RzWzBdPy5maXJzdE5hbWUgfHwgJycgfX1cbiAgICAgICAgICAgICAge3sgY29udGFjdHNbMF0/Lmxhc3ROYW1lIHx8ICcnIH19XG4gICAgICAgICAgICA8L3A+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiY29udGFjdHNbMF0/LmFkZHJlc3NcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXhcIj5cbiAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCAhdy01ICFoLTUgIXRleHQtWzIwcHhdIG9wYWNpdHktNzUgc2hyaW5rLTBcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIGxvY2F0aW9uX29uPC9tYXQtaWNvblxuICAgICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBtbC0yXCI+XG4gICAgICAgICAgICA8cCAqbmdGb3I9XCJsZXQgYWRkcmVzc1BhcnQgb2YgYWRkcmVzc1wiIGNsYXNzPVwidGV4dC1zbVwiPlxuICAgICAgICAgICAgICB7eyBhZGRyZXNzUGFydCB9fVxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -1,28 +1,49 @@
|
|
|
1
1
|
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, } from '@angular/core';
|
|
2
|
+
import { getTemporalRangeUnion } from '../../../../../../libs/util/shared/src';
|
|
2
3
|
import * as i0 from "@angular/core";
|
|
3
4
|
import * as i1 from "@angular/common";
|
|
4
|
-
import * as i2 from "
|
|
5
|
-
import * as i3 from "../../../../
|
|
6
|
-
import * as i4 from "
|
|
7
|
-
import * as i5 from "
|
|
8
|
-
import * as i6 from "
|
|
9
|
-
import * as i7 from "../
|
|
5
|
+
import * as i2 from "@angular/material/icon";
|
|
6
|
+
import * as i3 from "../../../../widgets/src/lib/badge/badge.component";
|
|
7
|
+
import * as i4 from "../../../../layout/src/lib/expandable-panel/expandable-panel.component";
|
|
8
|
+
import * as i5 from "@ngx-translate/core";
|
|
9
|
+
import * as i6 from "../../../../inputs/src/lib/copy-text-button/copy-text-button.component";
|
|
10
|
+
import * as i7 from "../markdown-parser/markdown-parser.component";
|
|
11
|
+
import * as i8 from "../thumbnail/thumbnail.component";
|
|
12
|
+
import * as i9 from "../content-ghost/content-ghost.component";
|
|
13
|
+
import * as i10 from "./linkify.directive";
|
|
14
|
+
import * as i11 from "../max-lines/max-lines.component";
|
|
10
15
|
export class MetadataInfoComponent {
|
|
11
16
|
constructor() {
|
|
12
17
|
this.keyword = new EventEmitter();
|
|
13
18
|
}
|
|
14
19
|
get hasUsage() {
|
|
15
20
|
return (this.metadata.extras?.isOpenData === true ||
|
|
16
|
-
this.metadata.
|
|
17
|
-
|
|
21
|
+
(this.metadata.legalConstraints?.length > 0 &&
|
|
22
|
+
this.legalConstraints.length > 0) ||
|
|
23
|
+
(this.metadata.otherConstraints?.length > 0 &&
|
|
24
|
+
this.otherConstraints.length > 0) ||
|
|
25
|
+
(this.metadata.licenses?.length > 0 && this.licenses.length > 0));
|
|
18
26
|
}
|
|
19
|
-
get
|
|
27
|
+
get legalConstraints() {
|
|
20
28
|
let array = [];
|
|
21
|
-
if (this.metadata.
|
|
22
|
-
array = array.concat(this.metadata.
|
|
29
|
+
if (this.metadata.legalConstraints?.length) {
|
|
30
|
+
array = array.concat(this.metadata.legalConstraints.filter((c) => c.text).map((c) => c.text));
|
|
23
31
|
}
|
|
24
|
-
|
|
25
|
-
|
|
32
|
+
return array;
|
|
33
|
+
}
|
|
34
|
+
get otherConstraints() {
|
|
35
|
+
let array = [];
|
|
36
|
+
if (this.metadata.otherConstraints?.length) {
|
|
37
|
+
array = array.concat(this.metadata.otherConstraints.filter((c) => c.text).map((c) => c.text));
|
|
38
|
+
}
|
|
39
|
+
return array;
|
|
40
|
+
}
|
|
41
|
+
get licenses() {
|
|
42
|
+
let array = [];
|
|
43
|
+
if (this.metadata.licenses?.length) {
|
|
44
|
+
array = array.concat(this.metadata.licenses
|
|
45
|
+
.filter((c) => c.text)
|
|
46
|
+
.map((c) => ({ text: c.text, url: c.url })));
|
|
26
47
|
}
|
|
27
48
|
return array;
|
|
28
49
|
}
|
|
@@ -38,6 +59,16 @@ export class MetadataInfoComponent {
|
|
|
38
59
|
return undefined;
|
|
39
60
|
}
|
|
40
61
|
}
|
|
62
|
+
get temporalExtent() {
|
|
63
|
+
const temporalExtents = this.metadata.temporalExtents;
|
|
64
|
+
return getTemporalRangeUnion(temporalExtents);
|
|
65
|
+
}
|
|
66
|
+
get shownOrganization() {
|
|
67
|
+
return this.metadata.ownerOrganization;
|
|
68
|
+
}
|
|
69
|
+
get resourceContact() {
|
|
70
|
+
return this.metadata.contactsForResource?.[0];
|
|
71
|
+
}
|
|
41
72
|
fieldReady(propName) {
|
|
42
73
|
return !this.incomplete || propName in this.metadata;
|
|
43
74
|
}
|
|
@@ -45,11 +76,11 @@ export class MetadataInfoComponent {
|
|
|
45
76
|
this.keyword.emit(keyword);
|
|
46
77
|
}
|
|
47
78
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MetadataInfoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
48
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: MetadataInfoComponent, selector: "gn-ui-metadata-info", inputs: { metadata: "metadata", incomplete: "incomplete" }, outputs: { keyword: "keyword" }, ngImport: i0, template: "<p\n class=\"text-[28px] text-title text-center mb-6 font-title sm:text-left\"\n translate\n>\n record.metadata.about\n</p>\n<div class=\"mb-6 md-description sm:mb-4 sm:pr-16\">\n <gn-ui-content-ghost ghostClass=\"h-32\" [showContent]=\"fieldReady('abstract')\">\n <gn-ui-max-lines [maxLines]=\"6\" *ngIf=\"metadata.abstract\">\n <div>\n <p\n class=\"whitespace-pre-line break-words sm:mb-4 sm:pr-16\"\n [innerHTML]=\"metadata.abstract\"\n gnUiLinkify\n ></p>\n <ng-container *ngIf=\"metadata.keywords?.length\">\n <p class=\"mb-3 font-medium text-primary text-sm\" translate>\n record.metadata.keywords\n </p>\n <div class=\"sm:pb-4 sm:pr-16\">\n <gn-ui-badge\n class=\"inline-block mr-2 mb-2 lowercase\"\n (click)=\"onKeywordClick(keyword)\"\n [clickable]=\"true\"\n *ngFor=\"let keyword of metadata.keywords\"\n >{{ keyword }}</gn-ui-badge\n >\n </div>\n </ng-container>\n </div>\n </gn-ui-max-lines>\n </gn-ui-content-ghost>\n</div>\n\n<gn-ui-expandable-panel\n class=\"metadata-origin\"\n *ngIf=\"\n metadata.lineage ||\n metadata.recordUpdated ||\n metadata.updateFrequency ||\n metadata.status\n \"\n [title]=\"'record.metadata.origin' | translate\"\n>\n <p\n *ngIf=\"metadata.lineage\"\n class=\"mb-5 pt-4 whitespace-pre-line break-words\"\n gnUiLinkify\n >\n {{ metadata.lineage }}\n </p>\n <div\n class=\"py-4 px-6 rounded bg-gray-100 grid grid-cols-2 gap-y-[10px] gap-x-[20px] text-gray-700 info-grid\"\n >\n <div *ngIf=\"metadata.recordUpdated\">\n <p class=\"text-sm\" translate>record.metadata.updatedOn</p>\n <p class=\"text-primary font-medium mt-1\">\n {{ metadata.recordUpdated && metadata.recordUpdated.toLocaleString() }}\n </p>\n </div>\n <div *ngIf=\"updateFrequency\">\n <p class=\"text-sm\" translate>record.metadata.updateFrequency</p>\n <p\n class=\"text-primary font-medium mt-1 updateFrequency\"\n translate\n [translateParams]=\"{ count: updatedTimes }\"\n >\n {{ updateFrequency }}\n </p>\n </div>\n <div *ngIf=\"metadata.status\">\n <p class=\"text-sm\" translate>record.metadata.updateStatus</p>\n <p class=\"text-primary font-medium mt-1\" translate>\n domain.record.status.{{ metadata.status }}\n </p>\n </div>\n </div>\n</gn-ui-expandable-panel>\n<gn-ui-expandable-panel [title]=\"'record.metadata.usage' | translate\">\n <div class=\"py-4 px-6 rounded bg-gray-100 text-gray-700 flex flex-wrap gap-2\">\n <gn-ui-badge *ngIf=\"metadata.extras?.isOpenData\">\n <span translate>record.metadata.isOpenData</span>\n </gn-ui-badge>\n <span\n class=\"text-primary font-medium\"\n *ngFor=\"let usage of usages\"\n gnUiLinkify\n >\n {{ usage }}\n </span>\n <span class=\"text-primary font-medium noUsage\" *ngIf=\"!hasUsage\">\n {{ 'record.metadata.noUsage' | translate }}\n </span>\n </div>\n</gn-ui-expandable-panel>\n<gn-ui-expandable-panel\n *ngIf=\"metadata.landingPage\"\n [title]=\"'record.metadata.details' | translate\"\n>\n <div class=\"py-5 px-5 rounded bg-gray-100 text-gray-700\">\n <p class=\"text-sm\" translate>record.metadata.sheet</p>\n <p class=\"text-primary font-medium mt-1\" translate>\n <a [href]=\"metadata.landingPage\" target=\"_blank\">\n <span class=\"break-all\" gnUiLinkify>{{ metadata.landingPage }}</span>\n </a>\n </p>\n </div>\n</gn-ui-expandable-panel>\n", styles: [".md-description ::ng-deep a{@apply underline text-blue-600 hover:text-blue-800;}.info-grid>:nth-last-child(n+3){padding-bottom:10px;@apply border-b border-gray-300;}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.BadgeComponent, selector: "gn-ui-badge", inputs: ["clickable"] }, { kind: "component", type: i3.ExpandablePanelComponent, selector: "gn-ui-expandable-panel", inputs: ["title", "collapsed"] }, { kind: "directive", type: i4.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i5.ContentGhostComponent, selector: "gn-ui-content-ghost", inputs: ["showContent", "ghostClass"] }, { kind: "directive", type: i6.GnUiLinkifyDirective, selector: "[gnUiLinkify]" }, { kind: "component", type: i7.MaxLinesComponent, selector: "gn-ui-max-lines", inputs: ["maxLines"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
79
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: MetadataInfoComponent, selector: "gn-ui-metadata-info", inputs: { metadata: "metadata", incomplete: "incomplete" }, outputs: { keyword: "keyword" }, ngImport: i0, template: "<div class=\"mb-6 md-description sm:mb-4 sm:pr-16\">\n <gn-ui-content-ghost ghostClass=\"h-32\" [showContent]=\"fieldReady('abstract')\">\n <gn-ui-max-lines [maxLines]=\"6\" *ngIf=\"metadata.abstract\">\n <div>\n <gn-ui-markdown-parser\n [textContent]=\"metadata.abstract\"\n ></gn-ui-markdown-parser>\n </div>\n </gn-ui-max-lines>\n <div *ngIf=\"metadata.keywords?.length\">\n <p class=\"mt-6 mb-3 font-medium text-primary text-sm\" translate>\n record.metadata.keywords\n </p>\n <div class=\"sm:pb-4 flex flex-wrap gap-2\">\n <gn-ui-badge\n class=\"inline-block lowercase\"\n (click)=\"onKeywordClick(keyword)\"\n [clickable]=\"true\"\n *ngFor=\"let keyword of metadata.keywords\"\n >{{ keyword.label }}</gn-ui-badge\n >\n </div>\n </div>\n </gn-ui-content-ghost>\n</div>\n\n<gn-ui-expandable-panel [title]=\"'record.metadata.usage' | translate\">\n <div class=\"flex flex-col gap-[10px] mr-4 py-[12px] rounded text-gray-900\">\n <ng-container *ngFor=\"let license of licenses\">\n <div *ngIf=\"license.url; else noUrl\" class=\"text-primary\">\n <a\n [href]=\"license.url\"\n target=\"_blank\"\n class=\"cursor-pointer hover:underline transition-all\"\n >\n {{ license.text }}\n <mat-icon\n class=\"material-symbols-outlined !w-[12px] !h-[12px] !text-[12px] opacity-75 shrink-0\"\n >open_in_new</mat-icon\n >\n </a>\n </div>\n <ng-template #noUrl>\n <div class=\"text-primary\" gnUiLinkify>\n {{ license.text }}\n </div>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"legalConstraints.length\">\n <gn-ui-markdown-parser\n *ngFor=\"let constraint of legalConstraints\"\n [textContent]=\"constraint\"\n >\n </gn-ui-markdown-parser>\n </ng-container>\n <ng-container *ngIf=\"otherConstraints.length\">\n <div gnUiLinkify *ngFor=\"let constraint of otherConstraints\">\n <h5 translate class=\"font-medium text-black text-sm mb-[2px] mt-[16px]\">\n record.metadata.otherConstraints\n </h5>\n <gn-ui-markdown-parser [textContent]=\"constraint\">\n </gn-ui-markdown-parser>\n </div>\n </ng-container>\n\n <span class=\"noUsage\" *ngIf=\"!hasUsage\">\n {{ 'record.metadata.noUsage' | translate }}\n </span>\n </div>\n</gn-ui-expandable-panel>\n<gn-ui-expandable-panel\n *ngIf=\"\n metadata.lineage ||\n metadata.recordUpdated ||\n metadata.updateFrequency ||\n metadata.status\n \"\n [title]=\"'record.metadata.details' | translate\"\n>\n <div *ngIf=\"metadata.lineage\" class=\"text-gray-900 flex flex-col mt-4 gap-2\">\n <p class=\"whitespace-pre-line break-words text-gray-900\" gnUiLinkify>\n {{ metadata.lineage }}\n </p>\n </div>\n <div class=\"flex flex-row gap-6 mt-5 mb-8\" *ngIf=\"resourceContact\">\n <div\n *ngIf=\"resourceContact.organization?.logoUrl?.href\"\n class=\"flex items-center justify-center border-solid border border-gray-300 rounded-md bg-white h-32 overflow-hidden\"\n >\n <gn-ui-thumbnail\n class=\"relative h-full w-full\"\n [thumbnailUrl]=\"resourceContact.organization.logoUrl.href\"\n fit=\"contain\"\n ></gn-ui-thumbnail>\n </div>\n <div class=\"flex flex-col gap-1\">\n <p class=\"text-sm font-medium\" translate>record.metadata.producer</p>\n <div\n class=\"text-primary font-title text-21 mr-2 cursor-pointer hover:underline\"\n data-cy=\"organization-name\"\n >\n {{ resourceContact.organization?.name }}\n </div>\n <div *ngIf=\"resourceContact.organization?.website\">\n <a\n [href]=\"resourceContact.organization.website\"\n target=\"_blank\"\n class=\"contact-website text-primary text-sm cursor-pointer hover:underline transition-all\"\n >{{ resourceContact.organization.website }}\n <mat-icon\n class=\"material-symbols-outlined !w-[12px] !h-[12px] !text-[12px] opacity-75 shrink-0\"\n >open_in_new</mat-icon\n >\n </a>\n </div>\n <div class=\"mt-4\" *ngIf=\"resourceContact.email\">\n <div class=\"flex\">\n <mat-icon\n class=\"material-symbols-outlined !w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n >\n mail_outline</mat-icon\n >\n <a\n *ngIf=\"resourceContact.email\"\n [href]=\"'mailto:' + resourceContact.email\"\n class=\"text-sm hover:underline ml-2\"\n target=\"_blank\"\n data-cy=\"contact-email\"\n >{{ resourceContact?.email }}</a\n >\n </div>\n </div>\n </div>\n </div>\n <div\n class=\"py-6 px-6 rounded bg-gray-100 grid grid-cols-2 gap-y-6 gap-x-[20px] text-gray-700\"\n >\n <div *ngIf=\"metadata.recordCreated\">\n <p class=\"text-sm\" translate>record.metadata.creation</p>\n <p class=\"text-primary font-medium mt-1\">\n {{ metadata.recordCreated.toLocaleDateString() }}\n </p>\n </div>\n <div *ngIf=\"metadata.recordPublished\">\n <p class=\"text-sm\" translate>record.metadata.publication</p>\n <p class=\"text-primary font-medium mt-1\">\n {{ metadata.recordPublished.toLocaleDateString() }}\n </p>\n </div>\n <div *ngIf=\"updateFrequency\">\n <p class=\"text-sm\" translate>record.metadata.updateFrequency</p>\n <p\n class=\"text-primary font-medium mt-1 updateFrequency\"\n translate\n [translateParams]=\"{ count: updatedTimes }\"\n >\n {{ updateFrequency }}\n </p>\n </div>\n <div *ngIf=\"metadata.languages\">\n <p class=\"text-sm mb-1\" translate>record.metadata.languages</p>\n <div class=\"flex flex-row gap-1 flex-wrap\">\n <p\n class=\"text-primary font-medium\"\n translate\n *ngFor=\"let language of metadata.languages\"\n >\n language.{{ language }}\n </p>\n </div>\n </div>\n <div *ngIf=\"temporalExtent\">\n <p class=\"text-sm\" translate>record.metadata.temporalExtent</p>\n <div class=\"flex flex-row gap-1 mb-1 text-primary font-medium\">\n <p\n *ngIf=\"temporalExtent.start && temporalExtent.end\"\n translate\n [translateParams]=\"{\n start: temporalExtent.start,\n end: temporalExtent.end\n }\"\n >\n record.metadata.temporalExtent.fromDateToDate\n </p>\n <p\n *ngIf=\"temporalExtent.start && !temporalExtent.end\"\n translate\n [translateParams]=\"{ start: temporalExtent.start }\"\n >\n record.metadata.temporalExtent.sinceDate\n </p>\n <p\n *ngIf=\"!temporalExtent.start && temporalExtent.end\"\n translate\n [translateParams]=\"{ end: temporalExtent.end }\"\n >\n record.metadata.temporalExtent.untilDate\n </p>\n </div>\n </div>\n </div>\n</gn-ui-expandable-panel>\n<gn-ui-expandable-panel\n *ngIf=\"metadata.landingPage\"\n [title]=\"'record.metadata.technical' | translate\"\n>\n <div class=\"flex flex-col gap-4 mr-4 py-5 rounded text-gray-700\">\n <div *ngIf=\"metadata.recordUpdated\">\n <p class=\"text-sm\" translate>record.metadata.updatedOn</p>\n <p class=\"text-primary font-medium\">\n {{ metadata.recordUpdated && metadata.recordUpdated.toLocaleString() }}\n </p>\n </div>\n <div *ngIf=\"metadata.landingPage\">\n <p class=\"text-sm\" translate>record.metadata.sheet</p>\n <p class=\"text-primary font-medium\" translate>\n <a [href]=\"metadata.landingPage\" target=\"_blank\">\n <span class=\"break-all\" gnUiLinkify>{{ metadata.landingPage }}</span>\n </a>\n </p>\n </div>\n <div *ngIf=\"metadata.ownerOrganization\">\n <p class=\"text-sm\" translate>record.metadata.owner</p>\n <p class=\"text-primary font-medium\">\n {{ metadata.ownerOrganization.name }}\n </p>\n </div>\n <div *ngIf=\"metadata.uniqueIdentifier\">\n <p class=\"text-sm\" translate>record.metadata.uniqueId</p>\n <div class=\"flex flex-row content-align items-end gap-1\">\n <gn-ui-copy-text-button\n [text]=\"metadata.uniqueIdentifier\"\n [tooltipText]=\"'tooltip.id.copy' | translate\"\n [displayText]=\"false\"\n ></gn-ui-copy-text-button>\n <p class=\"text-primary font-medium\">\n {{ metadata.uniqueIdentifier }}\n </p>\n </div>\n </div>\n <div *ngIf=\"metadata.topics?.length\">\n <p class=\"text-sm mb-1\" translate>record.metadata.topics</p>\n <div class=\"sm:pb-4 sm:pr-16\">\n <gn-ui-badge\n class=\"inline-block mr-2 mb-2 lowercase\"\n *ngFor=\"let topic of metadata.topics\"\n >{{ topic }}</gn-ui-badge\n >\n </div>\n </div>\n </div>\n</gn-ui-expandable-panel>\n", styles: [".md-description ::ng-deep a{@apply underline text-blue-600 hover:text-blue-800;}.info-grid>:nth-last-child(n+3){padding-bottom:10px;@apply border-b border-gray-300;}:host ::ng-deep gn-ui-copy-text-button button mat-icon{transform:scale(.8)}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i3.BadgeComponent, selector: "gn-ui-badge", inputs: ["clickable"] }, { kind: "component", type: i4.ExpandablePanelComponent, selector: "gn-ui-expandable-panel", inputs: ["title", "collapsed"] }, { kind: "directive", type: i5.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i6.CopyTextButtonComponent, selector: "gn-ui-copy-text-button", inputs: ["text", "tooltipText", "displayText", "rows"] }, { kind: "component", type: i7.MarkdownParserComponent, selector: "gn-ui-markdown-parser", inputs: ["textContent"] }, { kind: "component", type: i8.ThumbnailComponent, selector: "gn-ui-thumbnail", inputs: ["thumbnailUrl", "fit"], outputs: ["placeholderShown"] }, { kind: "component", type: i9.ContentGhostComponent, selector: "gn-ui-content-ghost", inputs: ["showContent", "ghostClass"] }, { kind: "directive", type: i10.GnUiLinkifyDirective, selector: "[gnUiLinkify]" }, { kind: "component", type: i11.MaxLinesComponent, selector: "gn-ui-max-lines", inputs: ["maxLines"] }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
49
80
|
}
|
|
50
81
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MetadataInfoComponent, decorators: [{
|
|
51
82
|
type: Component,
|
|
52
|
-
args: [{ selector: 'gn-ui-metadata-info', changeDetection: ChangeDetectionStrategy.OnPush, template: "<
|
|
83
|
+
args: [{ selector: 'gn-ui-metadata-info', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"mb-6 md-description sm:mb-4 sm:pr-16\">\n <gn-ui-content-ghost ghostClass=\"h-32\" [showContent]=\"fieldReady('abstract')\">\n <gn-ui-max-lines [maxLines]=\"6\" *ngIf=\"metadata.abstract\">\n <div>\n <gn-ui-markdown-parser\n [textContent]=\"metadata.abstract\"\n ></gn-ui-markdown-parser>\n </div>\n </gn-ui-max-lines>\n <div *ngIf=\"metadata.keywords?.length\">\n <p class=\"mt-6 mb-3 font-medium text-primary text-sm\" translate>\n record.metadata.keywords\n </p>\n <div class=\"sm:pb-4 flex flex-wrap gap-2\">\n <gn-ui-badge\n class=\"inline-block lowercase\"\n (click)=\"onKeywordClick(keyword)\"\n [clickable]=\"true\"\n *ngFor=\"let keyword of metadata.keywords\"\n >{{ keyword.label }}</gn-ui-badge\n >\n </div>\n </div>\n </gn-ui-content-ghost>\n</div>\n\n<gn-ui-expandable-panel [title]=\"'record.metadata.usage' | translate\">\n <div class=\"flex flex-col gap-[10px] mr-4 py-[12px] rounded text-gray-900\">\n <ng-container *ngFor=\"let license of licenses\">\n <div *ngIf=\"license.url; else noUrl\" class=\"text-primary\">\n <a\n [href]=\"license.url\"\n target=\"_blank\"\n class=\"cursor-pointer hover:underline transition-all\"\n >\n {{ license.text }}\n <mat-icon\n class=\"material-symbols-outlined !w-[12px] !h-[12px] !text-[12px] opacity-75 shrink-0\"\n >open_in_new</mat-icon\n >\n </a>\n </div>\n <ng-template #noUrl>\n <div class=\"text-primary\" gnUiLinkify>\n {{ license.text }}\n </div>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"legalConstraints.length\">\n <gn-ui-markdown-parser\n *ngFor=\"let constraint of legalConstraints\"\n [textContent]=\"constraint\"\n >\n </gn-ui-markdown-parser>\n </ng-container>\n <ng-container *ngIf=\"otherConstraints.length\">\n <div gnUiLinkify *ngFor=\"let constraint of otherConstraints\">\n <h5 translate class=\"font-medium text-black text-sm mb-[2px] mt-[16px]\">\n record.metadata.otherConstraints\n </h5>\n <gn-ui-markdown-parser [textContent]=\"constraint\">\n </gn-ui-markdown-parser>\n </div>\n </ng-container>\n\n <span class=\"noUsage\" *ngIf=\"!hasUsage\">\n {{ 'record.metadata.noUsage' | translate }}\n </span>\n </div>\n</gn-ui-expandable-panel>\n<gn-ui-expandable-panel\n *ngIf=\"\n metadata.lineage ||\n metadata.recordUpdated ||\n metadata.updateFrequency ||\n metadata.status\n \"\n [title]=\"'record.metadata.details' | translate\"\n>\n <div *ngIf=\"metadata.lineage\" class=\"text-gray-900 flex flex-col mt-4 gap-2\">\n <p class=\"whitespace-pre-line break-words text-gray-900\" gnUiLinkify>\n {{ metadata.lineage }}\n </p>\n </div>\n <div class=\"flex flex-row gap-6 mt-5 mb-8\" *ngIf=\"resourceContact\">\n <div\n *ngIf=\"resourceContact.organization?.logoUrl?.href\"\n class=\"flex items-center justify-center border-solid border border-gray-300 rounded-md bg-white h-32 overflow-hidden\"\n >\n <gn-ui-thumbnail\n class=\"relative h-full w-full\"\n [thumbnailUrl]=\"resourceContact.organization.logoUrl.href\"\n fit=\"contain\"\n ></gn-ui-thumbnail>\n </div>\n <div class=\"flex flex-col gap-1\">\n <p class=\"text-sm font-medium\" translate>record.metadata.producer</p>\n <div\n class=\"text-primary font-title text-21 mr-2 cursor-pointer hover:underline\"\n data-cy=\"organization-name\"\n >\n {{ resourceContact.organization?.name }}\n </div>\n <div *ngIf=\"resourceContact.organization?.website\">\n <a\n [href]=\"resourceContact.organization.website\"\n target=\"_blank\"\n class=\"contact-website text-primary text-sm cursor-pointer hover:underline transition-all\"\n >{{ resourceContact.organization.website }}\n <mat-icon\n class=\"material-symbols-outlined !w-[12px] !h-[12px] !text-[12px] opacity-75 shrink-0\"\n >open_in_new</mat-icon\n >\n </a>\n </div>\n <div class=\"mt-4\" *ngIf=\"resourceContact.email\">\n <div class=\"flex\">\n <mat-icon\n class=\"material-symbols-outlined !w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n >\n mail_outline</mat-icon\n >\n <a\n *ngIf=\"resourceContact.email\"\n [href]=\"'mailto:' + resourceContact.email\"\n class=\"text-sm hover:underline ml-2\"\n target=\"_blank\"\n data-cy=\"contact-email\"\n >{{ resourceContact?.email }}</a\n >\n </div>\n </div>\n </div>\n </div>\n <div\n class=\"py-6 px-6 rounded bg-gray-100 grid grid-cols-2 gap-y-6 gap-x-[20px] text-gray-700\"\n >\n <div *ngIf=\"metadata.recordCreated\">\n <p class=\"text-sm\" translate>record.metadata.creation</p>\n <p class=\"text-primary font-medium mt-1\">\n {{ metadata.recordCreated.toLocaleDateString() }}\n </p>\n </div>\n <div *ngIf=\"metadata.recordPublished\">\n <p class=\"text-sm\" translate>record.metadata.publication</p>\n <p class=\"text-primary font-medium mt-1\">\n {{ metadata.recordPublished.toLocaleDateString() }}\n </p>\n </div>\n <div *ngIf=\"updateFrequency\">\n <p class=\"text-sm\" translate>record.metadata.updateFrequency</p>\n <p\n class=\"text-primary font-medium mt-1 updateFrequency\"\n translate\n [translateParams]=\"{ count: updatedTimes }\"\n >\n {{ updateFrequency }}\n </p>\n </div>\n <div *ngIf=\"metadata.languages\">\n <p class=\"text-sm mb-1\" translate>record.metadata.languages</p>\n <div class=\"flex flex-row gap-1 flex-wrap\">\n <p\n class=\"text-primary font-medium\"\n translate\n *ngFor=\"let language of metadata.languages\"\n >\n language.{{ language }}\n </p>\n </div>\n </div>\n <div *ngIf=\"temporalExtent\">\n <p class=\"text-sm\" translate>record.metadata.temporalExtent</p>\n <div class=\"flex flex-row gap-1 mb-1 text-primary font-medium\">\n <p\n *ngIf=\"temporalExtent.start && temporalExtent.end\"\n translate\n [translateParams]=\"{\n start: temporalExtent.start,\n end: temporalExtent.end\n }\"\n >\n record.metadata.temporalExtent.fromDateToDate\n </p>\n <p\n *ngIf=\"temporalExtent.start && !temporalExtent.end\"\n translate\n [translateParams]=\"{ start: temporalExtent.start }\"\n >\n record.metadata.temporalExtent.sinceDate\n </p>\n <p\n *ngIf=\"!temporalExtent.start && temporalExtent.end\"\n translate\n [translateParams]=\"{ end: temporalExtent.end }\"\n >\n record.metadata.temporalExtent.untilDate\n </p>\n </div>\n </div>\n </div>\n</gn-ui-expandable-panel>\n<gn-ui-expandable-panel\n *ngIf=\"metadata.landingPage\"\n [title]=\"'record.metadata.technical' | translate\"\n>\n <div class=\"flex flex-col gap-4 mr-4 py-5 rounded text-gray-700\">\n <div *ngIf=\"metadata.recordUpdated\">\n <p class=\"text-sm\" translate>record.metadata.updatedOn</p>\n <p class=\"text-primary font-medium\">\n {{ metadata.recordUpdated && metadata.recordUpdated.toLocaleString() }}\n </p>\n </div>\n <div *ngIf=\"metadata.landingPage\">\n <p class=\"text-sm\" translate>record.metadata.sheet</p>\n <p class=\"text-primary font-medium\" translate>\n <a [href]=\"metadata.landingPage\" target=\"_blank\">\n <span class=\"break-all\" gnUiLinkify>{{ metadata.landingPage }}</span>\n </a>\n </p>\n </div>\n <div *ngIf=\"metadata.ownerOrganization\">\n <p class=\"text-sm\" translate>record.metadata.owner</p>\n <p class=\"text-primary font-medium\">\n {{ metadata.ownerOrganization.name }}\n </p>\n </div>\n <div *ngIf=\"metadata.uniqueIdentifier\">\n <p class=\"text-sm\" translate>record.metadata.uniqueId</p>\n <div class=\"flex flex-row content-align items-end gap-1\">\n <gn-ui-copy-text-button\n [text]=\"metadata.uniqueIdentifier\"\n [tooltipText]=\"'tooltip.id.copy' | translate\"\n [displayText]=\"false\"\n ></gn-ui-copy-text-button>\n <p class=\"text-primary font-medium\">\n {{ metadata.uniqueIdentifier }}\n </p>\n </div>\n </div>\n <div *ngIf=\"metadata.topics?.length\">\n <p class=\"text-sm mb-1\" translate>record.metadata.topics</p>\n <div class=\"sm:pb-4 sm:pr-16\">\n <gn-ui-badge\n class=\"inline-block mr-2 mb-2 lowercase\"\n *ngFor=\"let topic of metadata.topics\"\n >{{ topic }}</gn-ui-badge\n >\n </div>\n </div>\n </div>\n</gn-ui-expandable-panel>\n", styles: [".md-description ::ng-deep a{@apply underline text-blue-600 hover:text-blue-800;}.info-grid>:nth-last-child(n+3){padding-bottom:10px;@apply border-b border-gray-300;}:host ::ng-deep gn-ui-copy-text-button button mat-icon{transform:scale(.8)}\n"] }]
|
|
53
84
|
}], propDecorators: { metadata: [{
|
|
54
85
|
type: Input
|
|
55
86
|
}], incomplete: [{
|
|
@@ -57,4 +88,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
|
|
|
57
88
|
}], keyword: [{
|
|
58
89
|
type: Output
|
|
59
90
|
}] } });
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEtaW5mby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2VsZW1lbnRzL3NyYy9saWIvbWV0YWRhdGEtaW5mby9tZXRhZGF0YS1pbmZvLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9tZXRhZGF0YS1pbmZvL21ldGFkYXRhLWluZm8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUE7Ozs7Ozs7OztBQVN0QixNQUFNLE9BQU8scUJBQXFCO0lBTmxDO1FBU1ksWUFBTyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUE7S0F3Qy9DO0lBckNDLElBQUksUUFBUTtRQUNWLE9BQU8sQ0FDTCxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxVQUFVLEtBQUssSUFBSTtZQUN6QyxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsRUFBRSxNQUFNO1lBQ3BDLElBQUksQ0FBQyxRQUFRLENBQUMsaUJBQWlCLEVBQUUsTUFBTSxDQUN4QyxDQUFBO0lBQ0gsQ0FBQztJQUVELElBQUksTUFBTTtRQUNSLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQTtRQUNkLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLEVBQUUsTUFBTSxFQUFFO1lBQ3hDLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUE7U0FDbkQ7UUFDRCxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsaUJBQWlCLEVBQUUsTUFBTSxFQUFFO1lBQzNDLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtTQUN6RTtRQUNELE9BQU8sS0FBSyxDQUFBO0lBQ2QsQ0FBQztJQUVELElBQUksZUFBZTtRQUNqQixJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxZQUFZLE1BQU0sRUFBRTtZQUNuRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQTtZQUM5RCxPQUFPLGlDQUFpQyxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQUUsQ0FBQTtTQUM1RTthQUFNLElBQUksT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsS0FBSyxRQUFRLEVBQUU7WUFDNUQsT0FBTyxpQ0FBaUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLEVBQUUsQ0FBQTtTQUN4RTthQUFNO1lBQ0wsT0FBTyxTQUFTLENBQUE7U0FDakI7SUFDSCxDQUFDO0lBRUQsVUFBVSxDQUFDLFFBQWdCO1FBQ3pCLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFBO0lBQ3RELENBQUM7SUFFRCxjQUFjLENBQUMsT0FBZTtRQUM1QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUM1QixDQUFDOzhHQTFDVSxxQkFBcUI7a0dBQXJCLHFCQUFxQix3SkNmbEMsMGtIQTRHQTs7MkZEN0ZhLHFCQUFxQjtrQkFOakMsU0FBUzsrQkFDRSxxQkFBcUIsbUJBR2QsdUJBQXVCLENBQUMsTUFBTTs4QkFHdEMsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNJLE9BQU87c0JBQWhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBEYXRhc2V0UmVjb3JkIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnbi11aS1tZXRhZGF0YS1pbmZvJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21ldGFkYXRhLWluZm8uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tZXRhZGF0YS1pbmZvLmNvbXBvbmVudC5jc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE1ldGFkYXRhSW5mb0NvbXBvbmVudCB7XG4gIEBJbnB1dCgpIG1ldGFkYXRhOiBQYXJ0aWFsPERhdGFzZXRSZWNvcmQ+XG4gIEBJbnB1dCgpIGluY29tcGxldGU6IGJvb2xlYW5cbiAgQE91dHB1dCgpIGtleXdvcmQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKVxuICB1cGRhdGVkVGltZXM6IG51bWJlclxuXG4gIGdldCBoYXNVc2FnZSgpIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5tZXRhZGF0YS5leHRyYXM/LmlzT3BlbkRhdGEgPT09IHRydWUgfHxcbiAgICAgIHRoaXMubWV0YWRhdGEudXNlTGltaXRhdGlvbnM/Lmxlbmd0aCB8fFxuICAgICAgdGhpcy5tZXRhZGF0YS5hY2Nlc3NDb25zdHJhaW50cz8ubGVuZ3RoXG4gICAgKVxuICB9XG5cbiAgZ2V0IHVzYWdlcygpOiBzdHJpbmdbXSB7XG4gICAgbGV0IGFycmF5ID0gW11cbiAgICBpZiAodGhpcy5tZXRhZGF0YS51c2VMaW1pdGF0aW9ucz8ubGVuZ3RoKSB7XG4gICAgICBhcnJheSA9IGFycmF5LmNvbmNhdCh0aGlzLm1ldGFkYXRhLnVzZUxpbWl0YXRpb25zKVxuICAgIH1cbiAgICBpZiAodGhpcy5tZXRhZGF0YS5hY2Nlc3NDb25zdHJhaW50cz8ubGVuZ3RoKSB7XG4gICAgICBhcnJheSA9IGFycmF5LmNvbmNhdCh0aGlzLm1ldGFkYXRhLmFjY2Vzc0NvbnN0cmFpbnRzLm1hcCgoYykgPT4gYy50ZXh0KSlcbiAgICB9XG4gICAgcmV0dXJuIGFycmF5XG4gIH1cblxuICBnZXQgdXBkYXRlRnJlcXVlbmN5KCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMubWV0YWRhdGEudXBkYXRlRnJlcXVlbmN5IGluc3RhbmNlb2YgT2JqZWN0KSB7XG4gICAgICB0aGlzLnVwZGF0ZWRUaW1lcyA9IHRoaXMubWV0YWRhdGEudXBkYXRlRnJlcXVlbmN5LnVwZGF0ZWRUaW1lc1xuICAgICAgcmV0dXJuIGBkb21haW4ucmVjb3JkLnVwZGF0ZUZyZXF1ZW5jeS4ke3RoaXMubWV0YWRhdGEudXBkYXRlRnJlcXVlbmN5LnBlcn1gXG4gICAgfSBlbHNlIGlmICh0eXBlb2YgdGhpcy5tZXRhZGF0YS51cGRhdGVGcmVxdWVuY3kgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gYGRvbWFpbi5yZWNvcmQudXBkYXRlRnJlcXVlbmN5LiR7dGhpcy5tZXRhZGF0YS51cGRhdGVGcmVxdWVuY3l9YFxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfVxuICB9XG5cbiAgZmllbGRSZWFkeShwcm9wTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuICF0aGlzLmluY29tcGxldGUgfHwgcHJvcE5hbWUgaW4gdGhpcy5tZXRhZGF0YVxuICB9XG5cbiAgb25LZXl3b3JkQ2xpY2soa2V5d29yZDogc3RyaW5nKSB7XG4gICAgdGhpcy5rZXl3b3JkLmVtaXQoa2V5d29yZClcbiAgfVxufVxuIiwiPHBcbiAgY2xhc3M9XCJ0ZXh0LVsyOHB4XSB0ZXh0LXRpdGxlIHRleHQtY2VudGVyIG1iLTYgZm9udC10aXRsZSBzbTp0ZXh0LWxlZnRcIlxuICB0cmFuc2xhdGVcbj5cbiAgcmVjb3JkLm1ldGFkYXRhLmFib3V0XG48L3A+XG48ZGl2IGNsYXNzPVwibWItNiBtZC1kZXNjcmlwdGlvbiBzbTptYi00IHNtOnByLTE2XCI+XG4gIDxnbi11aS1jb250ZW50LWdob3N0IGdob3N0Q2xhc3M9XCJoLTMyXCIgW3Nob3dDb250ZW50XT1cImZpZWxkUmVhZHkoJ2Fic3RyYWN0JylcIj5cbiAgICA8Z24tdWktbWF4LWxpbmVzIFttYXhMaW5lc109XCI2XCIgKm5nSWY9XCJtZXRhZGF0YS5hYnN0cmFjdFwiPlxuICAgICAgPGRpdj5cbiAgICAgICAgPHBcbiAgICAgICAgICBjbGFzcz1cIndoaXRlc3BhY2UtcHJlLWxpbmUgYnJlYWstd29yZHMgc206bWItNCBzbTpwci0xNlwiXG4gICAgICAgICAgW2lubmVySFRNTF09XCJtZXRhZGF0YS5hYnN0cmFjdFwiXG4gICAgICAgICAgZ25VaUxpbmtpZnlcbiAgICAgICAgPjwvcD5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1ldGFkYXRhLmtleXdvcmRzPy5sZW5ndGhcIj5cbiAgICAgICAgICA8cCBjbGFzcz1cIm1iLTMgZm9udC1tZWRpdW0gdGV4dC1wcmltYXJ5IHRleHQtc21cIiB0cmFuc2xhdGU+XG4gICAgICAgICAgICByZWNvcmQubWV0YWRhdGEua2V5d29yZHNcbiAgICAgICAgICA8L3A+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNtOnBiLTQgc206cHItMTZcIj5cbiAgICAgICAgICAgIDxnbi11aS1iYWRnZVxuICAgICAgICAgICAgICBjbGFzcz1cImlubGluZS1ibG9jayBtci0yIG1iLTIgbG93ZXJjYXNlXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uS2V5d29yZENsaWNrKGtleXdvcmQpXCJcbiAgICAgICAgICAgICAgW2NsaWNrYWJsZV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGtleXdvcmQgb2YgbWV0YWRhdGEua2V5d29yZHNcIlxuICAgICAgICAgICAgICA+e3sga2V5d29yZCB9fTwvZ24tdWktYmFkZ2VcbiAgICAgICAgICAgID5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L2duLXVpLW1heC1saW5lcz5cbiAgPC9nbi11aS1jb250ZW50LWdob3N0PlxuPC9kaXY+XG5cbjxnbi11aS1leHBhbmRhYmxlLXBhbmVsXG4gIGNsYXNzPVwibWV0YWRhdGEtb3JpZ2luXCJcbiAgKm5nSWY9XCJcbiAgICBtZXRhZGF0YS5saW5lYWdlIHx8XG4gICAgbWV0YWRhdGEucmVjb3JkVXBkYXRlZCB8fFxuICAgIG1ldGFkYXRhLnVwZGF0ZUZyZXF1ZW5jeSB8fFxuICAgIG1ldGFkYXRhLnN0YXR1c1xuICBcIlxuICBbdGl0bGVdPVwiJ3JlY29yZC5tZXRhZGF0YS5vcmlnaW4nIHwgdHJhbnNsYXRlXCJcbj5cbiAgPHBcbiAgICAqbmdJZj1cIm1ldGFkYXRhLmxpbmVhZ2VcIlxuICAgIGNsYXNzPVwibWItNSBwdC00IHdoaXRlc3BhY2UtcHJlLWxpbmUgYnJlYWstd29yZHNcIlxuICAgIGduVWlMaW5raWZ5XG4gID5cbiAgICB7eyBtZXRhZGF0YS5saW5lYWdlIH19XG4gIDwvcD5cbiAgPGRpdlxuICAgIGNsYXNzPVwicHktNCBweC02IHJvdW5kZWQgYmctZ3JheS0xMDAgZ3JpZCBncmlkLWNvbHMtMiBnYXAteS1bMTBweF0gZ2FwLXgtWzIwcHhdIHRleHQtZ3JheS03MDAgaW5mby1ncmlkXCJcbiAgPlxuICAgIDxkaXYgKm5nSWY9XCJtZXRhZGF0YS5yZWNvcmRVcGRhdGVkXCI+XG4gICAgICA8cCBjbGFzcz1cInRleHQtc21cIiB0cmFuc2xhdGU+cmVjb3JkLm1ldGFkYXRhLnVwZGF0ZWRPbjwvcD5cbiAgICAgIDxwIGNsYXNzPVwidGV4dC1wcmltYXJ5IGZvbnQtbWVkaXVtIG10LTFcIj5cbiAgICAgICAge3sgbWV0YWRhdGEucmVjb3JkVXBkYXRlZCAmJiBtZXRhZGF0YS5yZWNvcmRVcGRhdGVkLnRvTG9jYWxlU3RyaW5nKCkgfX1cbiAgICAgIDwvcD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwidXBkYXRlRnJlcXVlbmN5XCI+XG4gICAgICA8cCBjbGFzcz1cInRleHQtc21cIiB0cmFuc2xhdGU+cmVjb3JkLm1ldGFkYXRhLnVwZGF0ZUZyZXF1ZW5jeTwvcD5cbiAgICAgIDxwXG4gICAgICAgIGNsYXNzPVwidGV4dC1wcmltYXJ5IGZvbnQtbWVkaXVtIG10LTEgdXBkYXRlRnJlcXVlbmN5XCJcbiAgICAgICAgdHJhbnNsYXRlXG4gICAgICAgIFt0cmFuc2xhdGVQYXJhbXNdPVwieyBjb3VudDogdXBkYXRlZFRpbWVzIH1cIlxuICAgICAgPlxuICAgICAgICB7eyB1cGRhdGVGcmVxdWVuY3kgfX1cbiAgICAgIDwvcD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwibWV0YWRhdGEuc3RhdHVzXCI+XG4gICAgICA8cCBjbGFzcz1cInRleHQtc21cIiB0cmFuc2xhdGU+cmVjb3JkLm1ldGFkYXRhLnVwZGF0ZVN0YXR1czwvcD5cbiAgICAgIDxwIGNsYXNzPVwidGV4dC1wcmltYXJ5IGZvbnQtbWVkaXVtIG10LTFcIiB0cmFuc2xhdGU+XG4gICAgICAgIGRvbWFpbi5yZWNvcmQuc3RhdHVzLnt7IG1ldGFkYXRhLnN0YXR1cyB9fVxuICAgICAgPC9wPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZ24tdWktZXhwYW5kYWJsZS1wYW5lbD5cbjxnbi11aS1leHBhbmRhYmxlLXBhbmVsIFt0aXRsZV09XCIncmVjb3JkLm1ldGFkYXRhLnVzYWdlJyB8IHRyYW5zbGF0ZVwiPlxuICA8ZGl2IGNsYXNzPVwicHktNCBweC02IHJvdW5kZWQgYmctZ3JheS0xMDAgdGV4dC1ncmF5LTcwMCBmbGV4IGZsZXgtd3JhcCBnYXAtMlwiPlxuICAgIDxnbi11aS1iYWRnZSAqbmdJZj1cIm1ldGFkYXRhLmV4dHJhcz8uaXNPcGVuRGF0YVwiPlxuICAgICAgPHNwYW4gdHJhbnNsYXRlPnJlY29yZC5tZXRhZGF0YS5pc09wZW5EYXRhPC9zcGFuPlxuICAgIDwvZ24tdWktYmFkZ2U+XG4gICAgPHNwYW5cbiAgICAgIGNsYXNzPVwidGV4dC1wcmltYXJ5IGZvbnQtbWVkaXVtXCJcbiAgICAgICpuZ0Zvcj1cImxldCB1c2FnZSBvZiB1c2FnZXNcIlxuICAgICAgZ25VaUxpbmtpZnlcbiAgICA+XG4gICAgICB7eyB1c2FnZSB9fVxuICAgIDwvc3Bhbj5cbiAgICA8c3BhbiBjbGFzcz1cInRleHQtcHJpbWFyeSBmb250LW1lZGl1bSBub1VzYWdlXCIgKm5nSWY9XCIhaGFzVXNhZ2VcIj5cbiAgICAgIHt7ICdyZWNvcmQubWV0YWRhdGEubm9Vc2FnZScgfCB0cmFuc2xhdGUgfX1cbiAgICA8L3NwYW4+XG4gIDwvZGl2PlxuPC9nbi11aS1leHBhbmRhYmxlLXBhbmVsPlxuPGduLXVpLWV4cGFuZGFibGUtcGFuZWxcbiAgKm5nSWY9XCJtZXRhZGF0YS5sYW5kaW5nUGFnZVwiXG4gIFt0aXRsZV09XCIncmVjb3JkLm1ldGFkYXRhLmRldGFpbHMnIHwgdHJhbnNsYXRlXCJcbj5cbiAgPGRpdiBjbGFzcz1cInB5LTUgcHgtNSByb3VuZGVkIGJnLWdyYXktMTAwIHRleHQtZ3JheS03MDBcIj5cbiAgICA8cCBjbGFzcz1cInRleHQtc21cIiB0cmFuc2xhdGU+cmVjb3JkLm1ldGFkYXRhLnNoZWV0PC9wPlxuICAgIDxwIGNsYXNzPVwidGV4dC1wcmltYXJ5IGZvbnQtbWVkaXVtIG10LTFcIiB0cmFuc2xhdGU+XG4gICAgICA8YSBbaHJlZl09XCJtZXRhZGF0YS5sYW5kaW5nUGFnZVwiIHRhcmdldD1cIl9ibGFua1wiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImJyZWFrLWFsbFwiIGduVWlMaW5raWZ5Pnt7IG1ldGFkYXRhLmxhbmRpbmdQYWdlIH19PC9zcGFuPlxuICAgICAgPC9hPlxuICAgIDwvcD5cbiAgPC9kaXY+XG48L2duLXVpLWV4cGFuZGFibGUtcGFuZWw+XG4iXX0=
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEtaW5mby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2VsZW1lbnRzL3NyYy9saWIvbWV0YWRhdGEtaW5mby9tZXRhZGF0YS1pbmZvLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9tZXRhZGF0YS1pbmZvL21ldGFkYXRhLWluZm8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUE7QUFLdEIsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0NBQXdDLENBQUE7Ozs7Ozs7Ozs7Ozs7QUFROUUsTUFBTSxPQUFPLHFCQUFxQjtJQU5sQztRQVNZLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFBO0tBNkVoRDtJQTFFQyxJQUFJLFFBQVE7UUFDVixPQUFPLENBQ0wsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsVUFBVSxLQUFLLElBQUk7WUFDekMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGdCQUFnQixFQUFFLE1BQU0sR0FBRyxDQUFDO2dCQUN6QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztZQUNuQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLEVBQUUsTUFBTSxHQUFHLENBQUM7Z0JBQ3pDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBQ25DLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsTUFBTSxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FDakUsQ0FBQTtJQUNILENBQUM7SUFFRCxJQUFJLGdCQUFnQjtRQUNsQixJQUFJLEtBQUssR0FBRyxFQUFFLENBQUE7UUFDZCxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFO1lBQzFDLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxDQUNsQixJQUFJLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUN4RSxDQUFBO1NBQ0Y7UUFDRCxPQUFPLEtBQUssQ0FBQTtJQUNkLENBQUM7SUFFRCxJQUFJLGdCQUFnQjtRQUNsQixJQUFJLEtBQUssR0FBRyxFQUFFLENBQUE7UUFDZCxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFO1lBQzFDLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxDQUNsQixJQUFJLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUN4RSxDQUFBO1NBQ0Y7UUFDRCxPQUFPLEtBQUssQ0FBQTtJQUNkLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixJQUFJLEtBQUssR0FBRyxFQUFFLENBQUE7UUFDZCxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRTtZQUNsQyxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FDbEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRO2lCQUNuQixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7aUJBQ3JCLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUM5QyxDQUFBO1NBQ0Y7UUFDRCxPQUFPLEtBQUssQ0FBQTtJQUNkLENBQUM7SUFFRCxJQUFJLGVBQWU7UUFDakIsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsWUFBWSxNQUFNLEVBQUU7WUFDbkQsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUE7WUFDOUQsT0FBTyxpQ0FBaUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsR0FBRyxFQUFFLENBQUE7U0FDNUU7YUFBTSxJQUFJLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLEtBQUssUUFBUSxFQUFFO1lBQzVELE9BQU8saUNBQWlDLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxFQUFFLENBQUE7U0FDeEU7YUFBTTtZQUNMLE9BQU8sU0FBUyxDQUFBO1NBQ2pCO0lBQ0gsQ0FBQztJQUVELElBQUksY0FBYztRQUNoQixNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQTtRQUNyRCxPQUFPLHFCQUFxQixDQUFDLGVBQWUsQ0FBQyxDQUFBO0lBQy9DLENBQUM7SUFFRCxJQUFJLGlCQUFpQjtRQUNuQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUE7SUFDeEMsQ0FBQztJQUVELElBQUksZUFBZTtRQUNqQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUMvQyxDQUFDO0lBRUQsVUFBVSxDQUFDLFFBQWdCO1FBQ3pCLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFBO0lBQ3RELENBQUM7SUFFRCxjQUFjLENBQUMsT0FBZ0I7UUFDN0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDNUIsQ0FBQzs4R0EvRVUscUJBQXFCO2tHQUFyQixxQkFBcUIsd0pDbkJsQyxvK1JBNFBBOzsyRkR6T2EscUJBQXFCO2tCQU5qQyxTQUFTOytCQUNFLHFCQUFxQixtQkFHZCx1QkFBdUIsQ0FBQyxNQUFNOzhCQUd0QyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0ksT0FBTztzQkFBaEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7XG4gIERhdGFzZXRSZWNvcmQsXG4gIEtleXdvcmQsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3JlY29yZCdcbmltcG9ydCB7IGdldFRlbXBvcmFsUmFuZ2VVbmlvbiB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdXRpbC9zaGFyZWQvc3JjJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnbi11aS1tZXRhZGF0YS1pbmZvJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21ldGFkYXRhLWluZm8uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tZXRhZGF0YS1pbmZvLmNvbXBvbmVudC5jc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE1ldGFkYXRhSW5mb0NvbXBvbmVudCB7XG4gIEBJbnB1dCgpIG1ldGFkYXRhOiBQYXJ0aWFsPERhdGFzZXRSZWNvcmQ+XG4gIEBJbnB1dCgpIGluY29tcGxldGU6IGJvb2xlYW5cbiAgQE91dHB1dCgpIGtleXdvcmQgPSBuZXcgRXZlbnRFbWl0dGVyPEtleXdvcmQ+KClcbiAgdXBkYXRlZFRpbWVzOiBudW1iZXJcblxuICBnZXQgaGFzVXNhZ2UoKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMubWV0YWRhdGEuZXh0cmFzPy5pc09wZW5EYXRhID09PSB0cnVlIHx8XG4gICAgICAodGhpcy5tZXRhZGF0YS5sZWdhbENvbnN0cmFpbnRzPy5sZW5ndGggPiAwICYmXG4gICAgICAgIHRoaXMubGVnYWxDb25zdHJhaW50cy5sZW5ndGggPiAwKSB8fFxuICAgICAgKHRoaXMubWV0YWRhdGEub3RoZXJDb25zdHJhaW50cz8ubGVuZ3RoID4gMCAmJlxuICAgICAgICB0aGlzLm90aGVyQ29uc3RyYWludHMubGVuZ3RoID4gMCkgfHxcbiAgICAgICh0aGlzLm1ldGFkYXRhLmxpY2Vuc2VzPy5sZW5ndGggPiAwICYmIHRoaXMubGljZW5zZXMubGVuZ3RoID4gMClcbiAgICApXG4gIH1cblxuICBnZXQgbGVnYWxDb25zdHJhaW50cygpIHtcbiAgICBsZXQgYXJyYXkgPSBbXVxuICAgIGlmICh0aGlzLm1ldGFkYXRhLmxlZ2FsQ29uc3RyYWludHM/Lmxlbmd0aCkge1xuICAgICAgYXJyYXkgPSBhcnJheS5jb25jYXQoXG4gICAgICAgIHRoaXMubWV0YWRhdGEubGVnYWxDb25zdHJhaW50cy5maWx0ZXIoKGMpID0+IGMudGV4dCkubWFwKChjKSA9PiBjLnRleHQpXG4gICAgICApXG4gICAgfVxuICAgIHJldHVybiBhcnJheVxuICB9XG5cbiAgZ2V0IG90aGVyQ29uc3RyYWludHMoKSB7XG4gICAgbGV0IGFycmF5ID0gW11cbiAgICBpZiAodGhpcy5tZXRhZGF0YS5vdGhlckNvbnN0cmFpbnRzPy5sZW5ndGgpIHtcbiAgICAgIGFycmF5ID0gYXJyYXkuY29uY2F0KFxuICAgICAgICB0aGlzLm1ldGFkYXRhLm90aGVyQ29uc3RyYWludHMuZmlsdGVyKChjKSA9PiBjLnRleHQpLm1hcCgoYykgPT4gYy50ZXh0KVxuICAgICAgKVxuICAgIH1cbiAgICByZXR1cm4gYXJyYXlcbiAgfVxuXG4gIGdldCBsaWNlbnNlcygpOiB7IHRleHQ6IHN0cmluZzsgdXJsOiBzdHJpbmcgfVtdIHtcbiAgICBsZXQgYXJyYXkgPSBbXVxuICAgIGlmICh0aGlzLm1ldGFkYXRhLmxpY2Vuc2VzPy5sZW5ndGgpIHtcbiAgICAgIGFycmF5ID0gYXJyYXkuY29uY2F0KFxuICAgICAgICB0aGlzLm1ldGFkYXRhLmxpY2Vuc2VzXG4gICAgICAgICAgLmZpbHRlcigoYykgPT4gYy50ZXh0KVxuICAgICAgICAgIC5tYXAoKGMpID0+ICh7IHRleHQ6IGMudGV4dCwgdXJsOiBjLnVybCB9KSlcbiAgICAgIClcbiAgICB9XG4gICAgcmV0dXJuIGFycmF5XG4gIH1cblxuICBnZXQgdXBkYXRlRnJlcXVlbmN5KCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMubWV0YWRhdGEudXBkYXRlRnJlcXVlbmN5IGluc3RhbmNlb2YgT2JqZWN0KSB7XG4gICAgICB0aGlzLnVwZGF0ZWRUaW1lcyA9IHRoaXMubWV0YWRhdGEudXBkYXRlRnJlcXVlbmN5LnVwZGF0ZWRUaW1lc1xuICAgICAgcmV0dXJuIGBkb21haW4ucmVjb3JkLnVwZGF0ZUZyZXF1ZW5jeS4ke3RoaXMubWV0YWRhdGEudXBkYXRlRnJlcXVlbmN5LnBlcn1gXG4gICAgfSBlbHNlIGlmICh0eXBlb2YgdGhpcy5tZXRhZGF0YS51cGRhdGVGcmVxdWVuY3kgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gYGRvbWFpbi5yZWNvcmQudXBkYXRlRnJlcXVlbmN5LiR7dGhpcy5tZXRhZGF0YS51cGRhdGVGcmVxdWVuY3l9YFxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfVxuICB9XG5cbiAgZ2V0IHRlbXBvcmFsRXh0ZW50KCk6IHsgc3RhcnQ6IHN0cmluZzsgZW5kOiBzdHJpbmcgfSB7XG4gICAgY29uc3QgdGVtcG9yYWxFeHRlbnRzID0gdGhpcy5tZXRhZGF0YS50ZW1wb3JhbEV4dGVudHNcbiAgICByZXR1cm4gZ2V0VGVtcG9yYWxSYW5nZVVuaW9uKHRlbXBvcmFsRXh0ZW50cylcbiAgfVxuXG4gIGdldCBzaG93bk9yZ2FuaXphdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5tZXRhZGF0YS5vd25lck9yZ2FuaXphdGlvblxuICB9XG5cbiAgZ2V0IHJlc291cmNlQ29udGFjdCgpIHtcbiAgICByZXR1cm4gdGhpcy5tZXRhZGF0YS5jb250YWN0c0ZvclJlc291cmNlPy5bMF1cbiAgfVxuXG4gIGZpZWxkUmVhZHkocHJvcE5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiAhdGhpcy5pbmNvbXBsZXRlIHx8IHByb3BOYW1lIGluIHRoaXMubWV0YWRhdGFcbiAgfVxuXG4gIG9uS2V5d29yZENsaWNrKGtleXdvcmQ6IEtleXdvcmQpIHtcbiAgICB0aGlzLmtleXdvcmQuZW1pdChrZXl3b3JkKVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibWItNiBtZC1kZXNjcmlwdGlvbiBzbTptYi00IHNtOnByLTE2XCI+XG4gIDxnbi11aS1jb250ZW50LWdob3N0IGdob3N0Q2xhc3M9XCJoLTMyXCIgW3Nob3dDb250ZW50XT1cImZpZWxkUmVhZHkoJ2Fic3RyYWN0JylcIj5cbiAgICA8Z24tdWktbWF4LWxpbmVzIFttYXhMaW5lc109XCI2XCIgKm5nSWY9XCJtZXRhZGF0YS5hYnN0cmFjdFwiPlxuICAgICAgPGRpdj5cbiAgICAgICAgPGduLXVpLW1hcmtkb3duLXBhcnNlclxuICAgICAgICAgIFt0ZXh0Q29udGVudF09XCJtZXRhZGF0YS5hYnN0cmFjdFwiXG4gICAgICAgID48L2duLXVpLW1hcmtkb3duLXBhcnNlcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZ24tdWktbWF4LWxpbmVzPlxuICAgIDxkaXYgKm5nSWY9XCJtZXRhZGF0YS5rZXl3b3Jkcz8ubGVuZ3RoXCI+XG4gICAgICA8cCBjbGFzcz1cIm10LTYgbWItMyBmb250LW1lZGl1bSB0ZXh0LXByaW1hcnkgdGV4dC1zbVwiIHRyYW5zbGF0ZT5cbiAgICAgICAgcmVjb3JkLm1ldGFkYXRhLmtleXdvcmRzXG4gICAgICA8L3A+XG4gICAgICA8ZGl2IGNsYXNzPVwic206cGItNCBmbGV4IGZsZXgtd3JhcCBnYXAtMlwiPlxuICAgICAgICA8Z24tdWktYmFkZ2VcbiAgICAgICAgICBjbGFzcz1cImlubGluZS1ibG9jayBsb3dlcmNhc2VcIlxuICAgICAgICAgIChjbGljayk9XCJvbktleXdvcmRDbGljayhrZXl3b3JkKVwiXG4gICAgICAgICAgW2NsaWNrYWJsZV09XCJ0cnVlXCJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQga2V5d29yZCBvZiBtZXRhZGF0YS5rZXl3b3Jkc1wiXG4gICAgICAgICAgPnt7IGtleXdvcmQubGFiZWwgfX08L2duLXVpLWJhZGdlXG4gICAgICAgID5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2duLXVpLWNvbnRlbnQtZ2hvc3Q+XG48L2Rpdj5cblxuPGduLXVpLWV4cGFuZGFibGUtcGFuZWwgW3RpdGxlXT1cIidyZWNvcmQubWV0YWRhdGEudXNhZ2UnIHwgdHJhbnNsYXRlXCI+XG4gIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC1bMTBweF0gbXItNCBweS1bMTJweF0gcm91bmRlZCB0ZXh0LWdyYXktOTAwXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgbGljZW5zZSBvZiBsaWNlbnNlc1wiPlxuICAgICAgPGRpdiAqbmdJZj1cImxpY2Vuc2UudXJsOyBlbHNlIG5vVXJsXCIgY2xhc3M9XCJ0ZXh0LXByaW1hcnlcIj5cbiAgICAgICAgPGFcbiAgICAgICAgICBbaHJlZl09XCJsaWNlbnNlLnVybFwiXG4gICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICBjbGFzcz1cImN1cnNvci1wb2ludGVyIGhvdmVyOnVuZGVybGluZSB0cmFuc2l0aW9uLWFsbFwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBsaWNlbnNlLnRleHQgfX1cbiAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCAhdy1bMTJweF0gIWgtWzEycHhdICF0ZXh0LVsxMnB4XSBvcGFjaXR5LTc1IHNocmluay0wXCJcbiAgICAgICAgICAgID5vcGVuX2luX25ldzwvbWF0LWljb25cbiAgICAgICAgICA+XG4gICAgICAgIDwvYT5cbiAgICAgIDwvZGl2PlxuICAgICAgPG5nLXRlbXBsYXRlICNub1VybD5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtcHJpbWFyeVwiIGduVWlMaW5raWZ5PlxuICAgICAgICAgIHt7IGxpY2Vuc2UudGV4dCB9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxlZ2FsQ29uc3RyYWludHMubGVuZ3RoXCI+XG4gICAgICA8Z24tdWktbWFya2Rvd24tcGFyc2VyXG4gICAgICAgICpuZ0Zvcj1cImxldCBjb25zdHJhaW50IG9mIGxlZ2FsQ29uc3RyYWludHNcIlxuICAgICAgICBbdGV4dENvbnRlbnRdPVwiY29uc3RyYWludFwiXG4gICAgICA+XG4gICAgICA8L2duLXVpLW1hcmtkb3duLXBhcnNlcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwib3RoZXJDb25zdHJhaW50cy5sZW5ndGhcIj5cbiAgICAgIDxkaXYgZ25VaUxpbmtpZnkgKm5nRm9yPVwibGV0IGNvbnN0cmFpbnQgb2Ygb3RoZXJDb25zdHJhaW50c1wiPlxuICAgICAgICA8aDUgdHJhbnNsYXRlIGNsYXNzPVwiZm9udC1tZWRpdW0gdGV4dC1ibGFjayB0ZXh0LXNtIG1iLVsycHhdIG10LVsxNnB4XVwiPlxuICAgICAgICAgIHJlY29yZC5tZXRhZGF0YS5vdGhlckNvbnN0cmFpbnRzXG4gICAgICAgIDwvaDU+XG4gICAgICAgIDxnbi11aS1tYXJrZG93bi1wYXJzZXIgW3RleHRDb250ZW50XT1cImNvbnN0cmFpbnRcIj5cbiAgICAgICAgPC9nbi11aS1tYXJrZG93bi1wYXJzZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxzcGFuIGNsYXNzPVwibm9Vc2FnZVwiICpuZ0lmPVwiIWhhc1VzYWdlXCI+XG4gICAgICB7eyAncmVjb3JkLm1ldGFkYXRhLm5vVXNhZ2UnIHwgdHJhbnNsYXRlIH19XG4gICAgPC9zcGFuPlxuICA8L2Rpdj5cbjwvZ24tdWktZXhwYW5kYWJsZS1wYW5lbD5cbjxnbi11aS1leHBhbmRhYmxlLXBhbmVsXG4gICpuZ0lmPVwiXG4gICAgbWV0YWRhdGEubGluZWFnZSB8fFxuICAgIG1ldGFkYXRhLnJlY29yZFVwZGF0ZWQgfHxcbiAgICBtZXRhZGF0YS51cGRhdGVGcmVxdWVuY3kgfHxcbiAgICBtZXRhZGF0YS5zdGF0dXNcbiAgXCJcbiAgW3RpdGxlXT1cIidyZWNvcmQubWV0YWRhdGEuZGV0YWlscycgfCB0cmFuc2xhdGVcIlxuPlxuICA8ZGl2ICpuZ0lmPVwibWV0YWRhdGEubGluZWFnZVwiIGNsYXNzPVwidGV4dC1ncmF5LTkwMCBmbGV4IGZsZXgtY29sIG10LTQgZ2FwLTJcIj5cbiAgICA8cCBjbGFzcz1cIndoaXRlc3BhY2UtcHJlLWxpbmUgYnJlYWstd29yZHMgdGV4dC1ncmF5LTkwMFwiIGduVWlMaW5raWZ5PlxuICAgICAge3sgbWV0YWRhdGEubGluZWFnZSB9fVxuICAgIDwvcD5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGdhcC02IG10LTUgbWItOFwiICpuZ0lmPVwicmVzb3VyY2VDb250YWN0XCI+XG4gICAgPGRpdlxuICAgICAgKm5nSWY9XCJyZXNvdXJjZUNvbnRhY3Qub3JnYW5pemF0aW9uPy5sb2dvVXJsPy5ocmVmXCJcbiAgICAgIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgYm9yZGVyLXNvbGlkIGJvcmRlciBib3JkZXItZ3JheS0zMDAgcm91bmRlZC1tZCBiZy13aGl0ZSBoLTMyIG92ZXJmbG93LWhpZGRlblwiXG4gICAgPlxuICAgICAgPGduLXVpLXRodW1ibmFpbFxuICAgICAgICBjbGFzcz1cInJlbGF0aXZlIGgtZnVsbCB3LWZ1bGxcIlxuICAgICAgICBbdGh1bWJuYWlsVXJsXT1cInJlc291cmNlQ29udGFjdC5vcmdhbml6YXRpb24ubG9nb1VybC5ocmVmXCJcbiAgICAgICAgZml0PVwiY29udGFpblwiXG4gICAgICA+PC9nbi11aS10aHVtYm5haWw+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZ2FwLTFcIj5cbiAgICAgIDxwIGNsYXNzPVwidGV4dC1zbSBmb250LW1lZGl1bVwiIHRyYW5zbGF0ZT5yZWNvcmQubWV0YWRhdGEucHJvZHVjZXI8L3A+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwidGV4dC1wcmltYXJ5IGZvbnQtdGl0bGUgdGV4dC0yMSBtci0yIGN1cnNvci1wb2ludGVyIGhvdmVyOnVuZGVybGluZVwiXG4gICAgICAgIGRhdGEtY3k9XCJvcmdhbml6YXRpb24tbmFtZVwiXG4gICAgICA+XG4gICAgICAgIHt7IHJlc291cmNlQ29udGFjdC5vcmdhbml6YXRpb24/Lm5hbWUgfX1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cInJlc291cmNlQ29udGFjdC5vcmdhbml6YXRpb24/LndlYnNpdGVcIj5cbiAgICAgICAgPGFcbiAgICAgICAgICBbaHJlZl09XCJyZXNvdXJjZUNvbnRhY3Qub3JnYW5pemF0aW9uLndlYnNpdGVcIlxuICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgY2xhc3M9XCJjb250YWN0LXdlYnNpdGUgdGV4dC1wcmltYXJ5IHRleHQtc20gY3Vyc29yLXBvaW50ZXIgaG92ZXI6dW5kZXJsaW5lIHRyYW5zaXRpb24tYWxsXCJcbiAgICAgICAgICA+e3sgcmVzb3VyY2VDb250YWN0Lm9yZ2FuaXphdGlvbi53ZWJzaXRlIH19XG4gICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWQgIXctWzEycHhdICFoLVsxMnB4XSAhdGV4dC1bMTJweF0gb3BhY2l0eS03NSBzaHJpbmstMFwiXG4gICAgICAgICAgICA+b3Blbl9pbl9uZXc8L21hdC1pY29uXG4gICAgICAgICAgPlxuICAgICAgICA8L2E+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtdC00XCIgKm5nSWY9XCJyZXNvdXJjZUNvbnRhY3QuZW1haWxcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXhcIj5cbiAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCAhdy01ICFoLTUgIXRleHQtWzIwcHhdIG9wYWNpdHktNzUgc2hyaW5rLTBcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIG1haWxfb3V0bGluZTwvbWF0LWljb25cbiAgICAgICAgICA+XG4gICAgICAgICAgPGFcbiAgICAgICAgICAgICpuZ0lmPVwicmVzb3VyY2VDb250YWN0LmVtYWlsXCJcbiAgICAgICAgICAgIFtocmVmXT1cIidtYWlsdG86JyArIHJlc291cmNlQ29udGFjdC5lbWFpbFwiXG4gICAgICAgICAgICBjbGFzcz1cInRleHQtc20gaG92ZXI6dW5kZXJsaW5lIG1sLTJcIlxuICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgIGRhdGEtY3k9XCJjb250YWN0LWVtYWlsXCJcbiAgICAgICAgICAgID57eyByZXNvdXJjZUNvbnRhY3Q/LmVtYWlsIH19PC9hXG4gICAgICAgICAgPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdlxuICAgIGNsYXNzPVwicHktNiBweC02IHJvdW5kZWQgYmctZ3JheS0xMDAgZ3JpZCBncmlkLWNvbHMtMiBnYXAteS02IGdhcC14LVsyMHB4XSB0ZXh0LWdyYXktNzAwXCJcbiAgPlxuICAgIDxkaXYgKm5nSWY9XCJtZXRhZGF0YS5yZWNvcmRDcmVhdGVkXCI+XG4gICAgICA8cCBjbGFzcz1cInRleHQtc21cIiB0cmFuc2xhdGU+cmVjb3JkLm1ldGFkYXRhLmNyZWF0aW9uPC9wPlxuICAgICAgPHAgY2xhc3M9XCJ0ZXh0LXByaW1hcnkgZm9udC1tZWRpdW0gbXQtMVwiPlxuICAgICAgICB7eyBtZXRhZGF0YS5yZWNvcmRDcmVhdGVkLnRvTG9jYWxlRGF0ZVN0cmluZygpIH19XG4gICAgICA8L3A+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cIm1ldGFkYXRhLnJlY29yZFB1Ymxpc2hlZFwiPlxuICAgICAgPHAgY2xhc3M9XCJ0ZXh0LXNtXCIgdHJhbnNsYXRlPnJlY29yZC5tZXRhZGF0YS5wdWJsaWNhdGlvbjwvcD5cbiAgICAgIDxwIGNsYXNzPVwidGV4dC1wcmltYXJ5IGZvbnQtbWVkaXVtIG10LTFcIj5cbiAgICAgICAge3sgbWV0YWRhdGEucmVjb3JkUHVibGlzaGVkLnRvTG9jYWxlRGF0ZVN0cmluZygpIH19XG4gICAgICA8L3A+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cInVwZGF0ZUZyZXF1ZW5jeVwiPlxuICAgICAgPHAgY2xhc3M9XCJ0ZXh0LXNtXCIgdHJhbnNsYXRlPnJlY29yZC5tZXRhZGF0YS51cGRhdGVGcmVxdWVuY3k8L3A+XG4gICAgICA8cFxuICAgICAgICBjbGFzcz1cInRleHQtcHJpbWFyeSBmb250LW1lZGl1bSBtdC0xIHVwZGF0ZUZyZXF1ZW5jeVwiXG4gICAgICAgIHRyYW5zbGF0ZVxuICAgICAgICBbdHJhbnNsYXRlUGFyYW1zXT1cInsgY291bnQ6IHVwZGF0ZWRUaW1lcyB9XCJcbiAgICAgID5cbiAgICAgICAge3sgdXBkYXRlRnJlcXVlbmN5IH19XG4gICAgICA8L3A+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cIm1ldGFkYXRhLmxhbmd1YWdlc1wiPlxuICAgICAgPHAgY2xhc3M9XCJ0ZXh0LXNtIG1iLTFcIiB0cmFuc2xhdGU+cmVjb3JkLm1ldGFkYXRhLmxhbmd1YWdlczwvcD5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGdhcC0xIGZsZXgtd3JhcFwiPlxuICAgICAgICA8cFxuICAgICAgICAgIGNsYXNzPVwidGV4dC1wcmltYXJ5IGZvbnQtbWVkaXVtXCJcbiAgICAgICAgICB0cmFuc2xhdGVcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgbGFuZ3VhZ2Ugb2YgbWV0YWRhdGEubGFuZ3VhZ2VzXCJcbiAgICAgICAgPlxuICAgICAgICAgIGxhbmd1YWdlLnt7IGxhbmd1YWdlIH19XG4gICAgICAgIDwvcD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJ0ZW1wb3JhbEV4dGVudFwiPlxuICAgICAgPHAgY2xhc3M9XCJ0ZXh0LXNtXCIgdHJhbnNsYXRlPnJlY29yZC5tZXRhZGF0YS50ZW1wb3JhbEV4dGVudDwvcD5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGdhcC0xIG1iLTEgdGV4dC1wcmltYXJ5IGZvbnQtbWVkaXVtXCI+XG4gICAgICAgIDxwXG4gICAgICAgICAgKm5nSWY9XCJ0ZW1wb3JhbEV4dGVudC5zdGFydCAmJiB0ZW1wb3JhbEV4dGVudC5lbmRcIlxuICAgICAgICAgIHRyYW5zbGF0ZVxuICAgICAgICAgIFt0cmFuc2xhdGVQYXJhbXNdPVwie1xuICAgICAgICAgICAgc3RhcnQ6IHRlbXBvcmFsRXh0ZW50LnN0YXJ0LFxuICAgICAgICAgICAgZW5kOiB0ZW1wb3JhbEV4dGVudC5lbmRcbiAgICAgICAgICB9XCJcbiAgICAgICAgPlxuICAgICAgICAgIHJlY29yZC5tZXRhZGF0YS50ZW1wb3JhbEV4dGVudC5mcm9tRGF0ZVRvRGF0ZVxuICAgICAgICA8L3A+XG4gICAgICAgIDxwXG4gICAgICAgICAgKm5nSWY9XCJ0ZW1wb3JhbEV4dGVudC5zdGFydCAmJiAhdGVtcG9yYWxFeHRlbnQuZW5kXCJcbiAgICAgICAgICB0cmFuc2xhdGVcbiAgICAgICAgICBbdHJhbnNsYXRlUGFyYW1zXT1cInsgc3RhcnQ6IHRlbXBvcmFsRXh0ZW50LnN0YXJ0IH1cIlxuICAgICAgICA+XG4gICAgICAgICAgcmVjb3JkLm1ldGFkYXRhLnRlbXBvcmFsRXh0ZW50LnNpbmNlRGF0ZVxuICAgICAgICA8L3A+XG4gICAgICAgIDxwXG4gICAgICAgICAgKm5nSWY9XCIhdGVtcG9yYWxFeHRlbnQuc3RhcnQgJiYgdGVtcG9yYWxFeHRlbnQuZW5kXCJcbiAgICAgICAgICB0cmFuc2xhdGVcbiAgICAgICAgICBbdHJhbnNsYXRlUGFyYW1zXT1cInsgZW5kOiB0ZW1wb3JhbEV4dGVudC5lbmQgfVwiXG4gICAgICAgID5cbiAgICAgICAgICByZWNvcmQubWV0YWRhdGEudGVtcG9yYWxFeHRlbnQudW50aWxEYXRlXG4gICAgICAgIDwvcD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZ24tdWktZXhwYW5kYWJsZS1wYW5lbD5cbjxnbi11aS1leHBhbmRhYmxlLXBhbmVsXG4gICpuZ0lmPVwibWV0YWRhdGEubGFuZGluZ1BhZ2VcIlxuICBbdGl0bGVdPVwiJ3JlY29yZC5tZXRhZGF0YS50ZWNobmljYWwnIHwgdHJhbnNsYXRlXCJcbj5cbiAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZ2FwLTQgbXItNCBweS01IHJvdW5kZWQgdGV4dC1ncmF5LTcwMFwiPlxuICAgIDxkaXYgKm5nSWY9XCJtZXRhZGF0YS5yZWNvcmRVcGRhdGVkXCI+XG4gICAgICA8cCBjbGFzcz1cInRleHQtc21cIiB0cmFuc2xhdGU+cmVjb3JkLm1ldGFkYXRhLnVwZGF0ZWRPbjwvcD5cbiAgICAgIDxwIGNsYXNzPVwidGV4dC1wcmltYXJ5IGZvbnQtbWVkaXVtXCI+XG4gICAgICAgIHt7IG1ldGFkYXRhLnJlY29yZFVwZGF0ZWQgJiYgbWV0YWRhdGEucmVjb3JkVXBkYXRlZC50b0xvY2FsZVN0cmluZygpIH19XG4gICAgICA8L3A+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cIm1ldGFkYXRhLmxhbmRpbmdQYWdlXCI+XG4gICAgICA8cCBjbGFzcz1cInRleHQtc21cIiB0cmFuc2xhdGU+cmVjb3JkLm1ldGFkYXRhLnNoZWV0PC9wPlxuICAgICAgPHAgY2xhc3M9XCJ0ZXh0LXByaW1hcnkgZm9udC1tZWRpdW1cIiB0cmFuc2xhdGU+XG4gICAgICAgIDxhIFtocmVmXT1cIm1ldGFkYXRhLmxhbmRpbmdQYWdlXCIgdGFyZ2V0PVwiX2JsYW5rXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJicmVhay1hbGxcIiBnblVpTGlua2lmeT57eyBtZXRhZGF0YS5sYW5kaW5nUGFnZSB9fTwvc3Bhbj5cbiAgICAgICAgPC9hPlxuICAgICAgPC9wPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJtZXRhZGF0YS5vd25lck9yZ2FuaXphdGlvblwiPlxuICAgICAgPHAgY2xhc3M9XCJ0ZXh0LXNtXCIgdHJhbnNsYXRlPnJlY29yZC5tZXRhZGF0YS5vd25lcjwvcD5cbiAgICAgIDxwIGNsYXNzPVwidGV4dC1wcmltYXJ5IGZvbnQtbWVkaXVtXCI+XG4gICAgICAgIHt7IG1ldGFkYXRhLm93bmVyT3JnYW5pemF0aW9uLm5hbWUgfX1cbiAgICAgIDwvcD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwibWV0YWRhdGEudW5pcXVlSWRlbnRpZmllclwiPlxuICAgICAgPHAgY2xhc3M9XCJ0ZXh0LXNtXCIgdHJhbnNsYXRlPnJlY29yZC5tZXRhZGF0YS51bmlxdWVJZDwvcD5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGNvbnRlbnQtYWxpZ24gaXRlbXMtZW5kIGdhcC0xXCI+XG4gICAgICAgIDxnbi11aS1jb3B5LXRleHQtYnV0dG9uXG4gICAgICAgICAgW3RleHRdPVwibWV0YWRhdGEudW5pcXVlSWRlbnRpZmllclwiXG4gICAgICAgICAgW3Rvb2x0aXBUZXh0XT1cIid0b29sdGlwLmlkLmNvcHknIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICBbZGlzcGxheVRleHRdPVwiZmFsc2VcIlxuICAgICAgICA+PC9nbi11aS1jb3B5LXRleHQtYnV0dG9uPlxuICAgICAgICA8cCBjbGFzcz1cInRleHQtcHJpbWFyeSBmb250LW1lZGl1bVwiPlxuICAgICAgICAgIHt7IG1ldGFkYXRhLnVuaXF1ZUlkZW50aWZpZXIgfX1cbiAgICAgICAgPC9wPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cIm1ldGFkYXRhLnRvcGljcz8ubGVuZ3RoXCI+XG4gICAgICA8cCBjbGFzcz1cInRleHQtc20gbWItMVwiIHRyYW5zbGF0ZT5yZWNvcmQubWV0YWRhdGEudG9waWNzPC9wPlxuICAgICAgPGRpdiBjbGFzcz1cInNtOnBiLTQgc206cHItMTZcIj5cbiAgICAgICAgPGduLXVpLWJhZGdlXG4gICAgICAgICAgY2xhc3M9XCJpbmxpbmUtYmxvY2sgbXItMiBtYi0yIGxvd2VyY2FzZVwiXG4gICAgICAgICAgKm5nRm9yPVwibGV0IHRvcGljIG9mIG1ldGFkYXRhLnRvcGljc1wiXG4gICAgICAgICAgPnt7IHRvcGljIH19PC9nbi11aS1iYWRnZVxuICAgICAgICA+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2duLXVpLWV4cGFuZGFibGUtcGFuZWw+XG4iXX0=
|