geonetwork-ui 2.6.0-dev.c5432f39f → 2.6.0-dev.cfd9cd166
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/README.md +2 -3
- package/esm2022/libs/api/metadata-converter/src/lib/dcat-ap/dcat-ap.converter.mjs +11 -2
- package/esm2022/libs/api/metadata-converter/src/lib/dcat-ap/read-parts.mjs +3 -3
- package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.mjs +17 -11
- package/esm2022/libs/api/metadata-converter/src/lib/gn4/metadata-url.service.mjs +3 -3
- package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.mjs +4 -8
- package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.mjs +3 -6
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.mjs +14 -6
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/read-parts.mjs +4 -4
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/write-parts.mjs +5 -5
- package/esm2022/libs/api/metadata-converter/src/lib/translate-utils.mjs +17 -0
- package/esm2022/libs/api/repository/src/lib/gn4/auth/auth.service.mjs +4 -4
- package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/constant.mjs +4 -2
- package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.mjs +18 -16
- package/esm2022/libs/api/repository/src/lib/gn4/gn4-repository.mjs +46 -16
- package/esm2022/libs/api/repository/src/lib/gn4/organizations/organizations-from-groups.service.mjs +8 -8
- package/esm2022/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.mjs +14 -11
- package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.mjs +23 -13
- package/esm2022/libs/api/repository/src/lib/gn4/settings/gn4-settings.service.mjs +2 -1
- package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +1 -1
- package/esm2022/libs/common/domain/src/lib/repository/records-repository.interface.mjs +1 -1
- package/esm2022/libs/feature/catalog/src/lib/feature-catalog.module.mjs +7 -31
- package/esm2022/libs/feature/catalog/src/lib/sources/sources.service.mjs +9 -8
- package/esm2022/libs/feature/dataviz/src/lib/chart-view/chart-view.component.mjs +4 -4
- package/esm2022/libs/feature/dataviz/src/lib/figure/figure-container/figure-container.component.mjs +4 -5
- package/esm2022/libs/feature/dataviz/src/lib/service/data.service.mjs +5 -3
- package/esm2022/libs/feature/dataviz/src/lib/table-view/table-view.component.mjs +4 -4
- package/esm2022/libs/feature/editor/src/index.mjs +1 -4
- package/esm2022/libs/feature/editor/src/lib/+state/editor.actions.mjs +2 -1
- package/esm2022/libs/feature/editor/src/lib/+state/editor.effects.mjs +13 -7
- package/esm2022/libs/feature/editor/src/lib/+state/editor.facade.mjs +4 -1
- package/esm2022/libs/feature/editor/src/lib/+state/editor.reducer.mjs +5 -1
- package/esm2022/libs/feature/editor/src/lib/components/constraint-card/constraint-card.component.mjs +5 -7
- package/esm2022/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.mjs +8 -13
- package/esm2022/libs/feature/editor/src/lib/components/import-record/import-record.component.mjs +5 -6
- package/esm2022/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.mjs +11 -9
- package/esm2022/libs/feature/editor/src/lib/components/online-resource-card/online-resource-card.component.mjs +4 -13
- package/esm2022/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.mjs +5 -5
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-constraints/form-field-constraints.component.mjs +5 -8
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-constraints-shortcuts/form-field-constraints-shortcuts.component.mjs +4 -5
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts/form-field-contacts.component.mjs +6 -10
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.mjs +8 -14
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.mjs +4 -15
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.mjs +4 -4
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.mjs +4 -4
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.mjs +4 -4
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.mjs +4 -4
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.mjs +4 -4
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.mjs +4 -4
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.mjs +6 -17
- package/esm2022/libs/feature/editor/src/lib/components/record-form/record-form.component.mjs +4 -5
- package/esm2022/libs/feature/editor/src/lib/feature-editor.module.mjs +12 -30
- package/esm2022/libs/feature/editor/src/lib/models/index.mjs +1 -3
- package/esm2022/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-from-catalog.component.mjs +5 -6
- package/esm2022/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.mjs +11 -8
- package/esm2022/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.mjs +11 -8
- package/esm2022/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.mjs +11 -6
- package/esm2022/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.mjs +10 -5
- package/esm2022/libs/feature/map/src/lib/feature-map.module.mjs +3 -36
- package/esm2022/libs/feature/map/src/lib/geocoding/geocoding.component.mjs +5 -11
- package/esm2022/libs/feature/map/src/lib/layers-panel/layers-panel.component.mjs +6 -6
- package/esm2022/libs/feature/record/src/lib/data-view/data-view.component.mjs +20 -19
- package/esm2022/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.mjs +6 -7
- package/esm2022/libs/feature/record/src/lib/data-view-share/data-view-share.component.mjs +4 -5
- package/esm2022/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.mjs +6 -7
- package/esm2022/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.mjs +4 -4
- package/esm2022/libs/feature/record/src/lib/feature-record.module.mjs +8 -22
- package/esm2022/libs/feature/record/src/lib/gpf-api-dl/gpf-api-dl.component.mjs +5 -5
- package/esm2022/libs/feature/record/src/lib/gpf-api-dl-list-item/gpf-api-dl-list-item.component.mjs +15 -7
- package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +77 -28
- package/esm2022/libs/feature/search/src/lib/constants.mjs +3 -2
- package/esm2022/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.mjs +4 -4
- package/esm2022/libs/feature/search/src/lib/feature-search.module.mjs +24 -27
- package/esm2022/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.mjs +3 -3
- package/esm2022/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.mjs +8 -6
- package/esm2022/libs/feature/search/src/lib/results-list/results-list.container.component.mjs +6 -6
- package/esm2022/libs/feature/search/src/lib/results-table/results-table-container.component.mjs +13 -10
- package/esm2022/libs/feature/search/src/lib/search-filters-summary/search-filters-summary.component.mjs +5 -7
- package/esm2022/libs/feature/search/src/lib/search-filters-summary-item/search-filters-summary-item.component.mjs +4 -4
- package/esm2022/libs/feature/search/src/lib/utils/service/fields.mjs +5 -4
- package/esm2022/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.mjs +4 -5
- package/esm2022/libs/ui/catalog/src/lib/organisations-filter/organisations-filter.component.mjs +4 -5
- package/esm2022/libs/ui/catalog/src/lib/organisations-result/organisations-result.component.mjs +4 -5
- package/esm2022/libs/ui/dataviz/src/index.mjs +1 -2
- package/esm2022/libs/ui/dataviz/src/lib/data-table/data-table.component.mjs +4 -4
- package/esm2022/libs/ui/dataviz/src/lib/figure/figure.component.mjs +5 -5
- package/esm2022/libs/ui/elements/src/index.mjs +1 -3
- package/esm2022/libs/ui/elements/src/lib/api-card/api-card.component.mjs +6 -6
- package/esm2022/libs/ui/elements/src/lib/application-banner/application-banner.component.mjs +5 -5
- package/esm2022/libs/ui/elements/src/lib/avatar/avatar.component.mjs +4 -3
- package/esm2022/libs/ui/elements/src/lib/confirmation-dialog/confirmation-dialog.component.mjs +5 -3
- package/esm2022/libs/ui/elements/src/lib/download-item/download-item.component.mjs +4 -5
- package/esm2022/libs/ui/elements/src/lib/downloads-list/downloads-list.component.mjs +4 -4
- package/esm2022/libs/ui/elements/src/lib/error/error.component.mjs +4 -5
- package/esm2022/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.mjs +4 -5
- package/esm2022/libs/ui/elements/src/lib/image-input/image-input.component.mjs +4 -5
- package/esm2022/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.mjs +19 -36
- package/esm2022/libs/ui/elements/src/lib/internal-link-card-contact/internal-link-card-contact.component.mjs +58 -0
- package/esm2022/libs/ui/elements/src/lib/kind-badge/kind-badge.component.mjs +7 -10
- package/esm2022/libs/ui/elements/src/lib/link-card/link-card.component.mjs +4 -5
- package/esm2022/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.mjs +3 -6
- package/esm2022/libs/ui/elements/src/lib/metadata-catalog/metadata-catalog.component.mjs +4 -5
- package/esm2022/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.mjs +4 -5
- package/esm2022/libs/ui/elements/src/lib/metadata-info/metadata-info.component.mjs +6 -7
- package/esm2022/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.mjs +39 -16
- package/esm2022/libs/ui/elements/src/lib/metadata-quality-item/metadata-quality-item.component.mjs +8 -5
- package/esm2022/libs/ui/elements/src/lib/record-api-form/record-api-form.component.mjs +7 -5
- package/esm2022/libs/ui/elements/src/lib/record-feature-catalog/feature-catalog-list/feature-catalog-list.component.mjs +52 -32
- package/esm2022/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.mjs +5 -4
- package/esm2022/libs/ui/elements/src/lib/user-feedback-item/user-feedback-item.component.mjs +4 -5
- package/esm2022/libs/ui/elements/src/lib/user-preview/user-preview.component.mjs +5 -4
- package/esm2022/libs/ui/inputs/src/index.mjs +1 -2
- package/esm2022/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.mjs +5 -6
- package/esm2022/libs/ui/inputs/src/lib/checkbox/checkbox.component.mjs +4 -3
- package/esm2022/libs/ui/inputs/src/lib/drag-and-drop-file-input/drag-and-drop-file-input.component.mjs +7 -6
- package/esm2022/libs/ui/inputs/src/lib/dropdown-multiselect/dropdown-multiselect.component.mjs +29 -7
- package/esm2022/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.mjs +4 -5
- package/esm2022/libs/ui/inputs/src/lib/file-input/file-input.component.mjs +5 -7
- package/esm2022/libs/ui/inputs/src/lib/inline-filter/inline-filter.component.mjs +4 -3
- package/esm2022/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.mjs +12 -7
- package/esm2022/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.mjs +4 -5
- package/esm2022/libs/ui/inputs/src/lib/viewport-intersector/viewport-intersector.component.mjs +3 -3
- package/esm2022/libs/ui/layout/src/index.mjs +2 -2
- package/esm2022/libs/ui/layout/src/lib/anchor-link/anchor-link.directive.mjs +3 -2
- package/esm2022/libs/ui/layout/src/lib/cell-popin/cell-popin.component.mjs +110 -0
- package/esm2022/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.mjs +4 -5
- package/esm2022/libs/ui/layout/src/lib/interactive-table/interactive-table.component.mjs +21 -12
- package/esm2022/libs/ui/layout/src/lib/max-lines/max-lines.component.mjs +4 -5
- package/esm2022/libs/ui/layout/src/lib/pagination/pagination.component.mjs +4 -5
- package/esm2022/libs/ui/layout/src/lib/sticky-header/sticky-header.component.mjs +4 -3
- package/esm2022/libs/ui/layout/src/lib/truncated-text/truncated-text.component.mjs +17 -53
- package/esm2022/libs/ui/map/src/lib/components/map-container/map-container.component.mjs +4 -5
- package/esm2022/libs/ui/search/src/lib/record-preview-feed/record-preview-feed.component.mjs +6 -6
- package/esm2022/libs/ui/search/src/lib/results-hits-search-kind/results-hits-search-kind.component.mjs +3 -3
- package/esm2022/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.mjs +8 -8
- package/esm2022/libs/ui/search/src/lib/results-table/results-table.component.mjs +28 -17
- package/esm2022/libs/ui/search/src/lib/ui-search.module.mjs +23 -24
- package/esm2022/libs/ui/widgets/src/index.mjs +1 -2
- package/esm2022/libs/ui/widgets/src/lib/color-scale/color-scale.component.mjs +3 -3
- package/esm2022/libs/util/app-config/src/lib/app-config.mjs +1 -3
- package/esm2022/libs/util/i18n/src/index.mjs +2 -3
- package/esm2022/libs/util/i18n/src/lib/embedded.translate.loader.mjs +3 -2
- package/esm2022/libs/util/i18n/src/lib/i18n.constants.mjs +36 -69
- package/esm2022/libs/util/i18n/src/lib/i18n.interceptor.mjs +10 -9
- package/esm2022/libs/util/i18n/src/lib/i18n.providers.mjs +41 -0
- package/esm2022/libs/util/i18n/src/lib/language-codes.mjs +40 -2
- package/esm2022/libs/util/shared/src/index.mjs +2 -2
- package/esm2022/libs/util/shared/src/lib/image-fallback.directive.mjs +3 -2
- package/esm2022/libs/util/shared/src/lib/record.util.mjs +56 -0
- package/esm2022/translations/de.json +20 -22
- package/esm2022/translations/en.json +21 -23
- package/esm2022/translations/es.json +19 -21
- package/esm2022/translations/fr.json +25 -27
- package/esm2022/translations/it.json +22 -24
- package/esm2022/translations/nl.json +19 -21
- package/esm2022/translations/pt.json +19 -21
- package/esm2022/translations/sk.json +602 -0
- package/fesm2022/geonetwork-ui.mjs +10826 -10689
- package/fesm2022/geonetwork-ui.mjs.map +1 -1
- package/libs/api/metadata-converter/src/lib/dcat-ap/dcat-ap.converter.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts +4 -4
- package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/translate-utils.d.ts +2 -0
- package/libs/api/metadata-converter/src/lib/translate-utils.d.ts.map +1 -0
- package/libs/api/repository/src/lib/gn4/auth/auth.service.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/elasticsearch/constant.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts +8 -6
- 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 +10 -4
- package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/organizations/organizations-from-groups.service.d.ts +1 -0
- package/libs/api/repository/src/lib/gn4/organizations/organizations-from-groups.service.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.d.ts +4 -4
- package/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts +6 -3
- package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/settings/gn4-settings.service.d.ts +1 -0
- package/libs/api/repository/src/lib/gn4/settings/gn4-settings.service.d.ts.map +1 -1
- package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +20 -17
- package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
- package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts +5 -2
- package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts.map +1 -1
- package/libs/feature/catalog/src/lib/feature-catalog.module.d.ts +4 -8
- package/libs/feature/catalog/src/lib/feature-catalog.module.d.ts.map +1 -1
- package/libs/feature/catalog/src/lib/sources/sources.service.d.ts +3 -3
- package/libs/feature/catalog/src/lib/sources/sources.service.d.ts.map +1 -1
- package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts.map +1 -1
- package/libs/feature/dataviz/src/lib/figure/figure-container/figure-container.component.d.ts.map +1 -1
- package/libs/feature/dataviz/src/lib/service/data.service.d.ts.map +1 -1
- package/libs/feature/dataviz/src/lib/table-view/table-view.component.d.ts.map +1 -1
- package/libs/feature/editor/src/index.d.ts +0 -3
- package/libs/feature/editor/src/index.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/+state/editor.actions.d.ts +8 -1
- package/libs/feature/editor/src/lib/+state/editor.actions.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/+state/editor.effects.d.ts +10 -12
- package/libs/feature/editor/src/lib/+state/editor.effects.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/+state/editor.facade.d.ts +2 -1
- package/libs/feature/editor/src/lib/+state/editor.facade.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/+state/editor.reducer.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/+state/editor.selectors.d.ts +1 -1
- package/libs/feature/editor/src/lib/+state/editor.selectors.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/constraint-card/constraint-card.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/import-record/import-record.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/online-resource-card/online-resource-card.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-constraints/form-field-constraints.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts/form-field-contacts.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.d.ts.map +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 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/feature-editor.module.d.ts +10 -17
- package/libs/feature/editor/src/lib/feature-editor.module.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/models/index.d.ts +0 -2
- package/libs/feature/editor/src/lib/models/index.d.ts.map +1 -1
- package/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-from-catalog.component.d.ts.map +1 -1
- package/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.d.ts.map +1 -1
- package/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.d.ts.map +1 -1
- package/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.d.ts.map +1 -1
- package/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.d.ts.map +1 -1
- package/libs/feature/map/src/lib/feature-map.module.d.ts +2 -11
- 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.map +1 -1
- package/libs/feature/map/src/lib/layers-panel/layers-panel.component.d.ts.map +1 -1
- package/libs/feature/record/src/lib/data-view/data-view.component.d.ts +7 -4
- package/libs/feature/record/src/lib/data-view/data-view.component.d.ts.map +1 -1
- package/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.d.ts.map +1 -1
- package/libs/feature/record/src/lib/feature-record.module.d.ts +8 -12
- package/libs/feature/record/src/lib/feature-record.module.d.ts.map +1 -1
- package/libs/feature/record/src/lib/gpf-api-dl/gpf-api-dl.component.d.ts.map +1 -1
- package/libs/feature/record/src/lib/gpf-api-dl-list-item/gpf-api-dl-list-item.component.d.ts.map +1 -1
- package/libs/feature/record/src/lib/map-view/map-view.component.d.ts +13 -6
- package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
- package/libs/feature/search/src/lib/constants.d.ts.map +1 -1
- 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 +24 -24
- package/libs/feature/search/src/lib/feature-search.module.d.ts.map +1 -1
- package/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.d.ts +2 -1
- package/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.d.ts.map +1 -1
- package/libs/feature/search/src/lib/results-table/results-table-container.component.d.ts +6 -5
- package/libs/feature/search/src/lib/results-table/results-table-container.component.d.ts.map +1 -1
- package/libs/feature/search/src/lib/search-filters-summary/search-filters-summary.component.d.ts +1 -2
- package/libs/feature/search/src/lib/search-filters-summary/search-filters-summary.component.d.ts.map +1 -1
- package/libs/feature/search/src/lib/search-filters-summary-item/search-filters-summary-item.component.d.ts.map +1 -1
- package/libs/feature/search/src/lib/utils/service/fields.d.ts +1 -2
- package/libs/feature/search/src/lib/utils/service/fields.d.ts.map +1 -1
- package/libs/ui/dataviz/src/index.d.ts +0 -1
- package/libs/ui/dataviz/src/index.d.ts.map +1 -1
- package/libs/ui/dataviz/src/lib/data-table/data-table.component.d.ts.map +1 -1
- package/libs/ui/dataviz/src/lib/figure/figure.component.d.ts +1 -1
- package/libs/ui/dataviz/src/lib/figure/figure.component.d.ts.map +1 -1
- package/libs/ui/elements/src/index.d.ts +0 -2
- package/libs/ui/elements/src/index.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/api-card/api-card.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/avatar/avatar.component.d.ts +1 -1
- package/libs/ui/elements/src/lib/avatar/avatar.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/confirmation-dialog/confirmation-dialog.component.d.ts +2 -0
- package/libs/ui/elements/src/lib/confirmation-dialog/confirmation-dialog.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.d.ts +4 -7
- package/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/internal-link-card-contact/internal-link-card-contact.component.d.ts +14 -0
- package/libs/ui/elements/src/lib/internal-link-card-contact/internal-link-card-contact.component.d.ts.map +1 -0
- package/libs/ui/elements/src/lib/kind-badge/kind-badge.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.d.ts.map +1 -1
- 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 +3 -0
- package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/metadata-quality-item/metadata-quality-item.component.d.ts.map +1 -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/record-feature-catalog/feature-catalog-list/feature-catalog-list.component.d.ts +20 -9
- package/libs/ui/elements/src/lib/record-feature-catalog/feature-catalog-list/feature-catalog-list.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/user-preview/user-preview.component.d.ts +1 -1
- package/libs/ui/elements/src/lib/user-preview/user-preview.component.d.ts.map +1 -1
- package/libs/ui/inputs/src/index.d.ts +0 -1
- package/libs/ui/inputs/src/index.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/checkbox/checkbox.component.d.ts +1 -1
- package/libs/ui/inputs/src/lib/checkbox/checkbox.component.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/drag-and-drop-file-input/drag-and-drop-file-input.component.d.ts +1 -1
- package/libs/ui/inputs/src/lib/drag-and-drop-file-input/drag-and-drop-file-input.component.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/dropdown-multiselect/dropdown-multiselect.component.d.ts +1 -1
- package/libs/ui/inputs/src/lib/dropdown-multiselect/dropdown-multiselect.component.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/file-input/file-input.component.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/inline-filter/inline-filter.component.d.ts +1 -1
- package/libs/ui/inputs/src/lib/inline-filter/inline-filter.component.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/viewport-intersector/viewport-intersector.component.d.ts +1 -1
- package/libs/ui/inputs/src/lib/viewport-intersector/viewport-intersector.component.d.ts.map +1 -1
- package/libs/ui/layout/src/index.d.ts +1 -1
- package/libs/ui/layout/src/index.d.ts.map +1 -1
- package/libs/ui/layout/src/lib/anchor-link/anchor-link.directive.d.ts +1 -1
- package/libs/ui/layout/src/lib/anchor-link/anchor-link.directive.d.ts.map +1 -1
- package/libs/ui/layout/src/lib/cell-popin/cell-popin.component.d.ts +28 -0
- package/libs/ui/layout/src/lib/cell-popin/cell-popin.component.d.ts.map +1 -0
- package/libs/ui/layout/src/lib/interactive-table/interactive-table.component.d.ts +4 -2
- package/libs/ui/layout/src/lib/interactive-table/interactive-table.component.d.ts.map +1 -1
- package/libs/ui/layout/src/lib/sticky-header/sticky-header.component.d.ts +1 -1
- package/libs/ui/layout/src/lib/sticky-header/sticky-header.component.d.ts.map +1 -1
- package/libs/ui/layout/src/lib/truncated-text/truncated-text.component.d.ts +6 -11
- package/libs/ui/layout/src/lib/truncated-text/truncated-text.component.d.ts.map +1 -1
- package/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.d.ts +2 -1
- package/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.d.ts.map +1 -1
- package/libs/ui/search/src/lib/results-table/results-table.component.d.ts +5 -3
- package/libs/ui/search/src/lib/results-table/results-table.component.d.ts.map +1 -1
- package/libs/ui/search/src/lib/ui-search.module.d.ts +11 -11
- package/libs/ui/search/src/lib/ui-search.module.d.ts.map +1 -1
- package/libs/ui/widgets/src/index.d.ts +0 -1
- package/libs/ui/widgets/src/index.d.ts.map +1 -1
- package/libs/ui/widgets/src/lib/color-scale/color-scale.component.d.ts +1 -1
- package/libs/ui/widgets/src/lib/color-scale/color-scale.component.d.ts.map +1 -1
- package/libs/util/app-config/src/lib/app-config.d.ts +0 -1
- package/libs/util/app-config/src/lib/app-config.d.ts.map +1 -1
- package/libs/util/i18n/src/index.d.ts +1 -2
- package/libs/util/i18n/src/index.d.ts.map +1 -1
- package/libs/util/i18n/src/lib/embedded.translate.loader.d.ts +1 -1
- package/libs/util/i18n/src/lib/embedded.translate.loader.d.ts.map +1 -1
- package/libs/util/i18n/src/lib/i18n.constants.d.ts +6 -16
- package/libs/util/i18n/src/lib/i18n.constants.d.ts.map +1 -1
- package/libs/util/i18n/src/lib/i18n.interceptor.d.ts +5 -5
- package/libs/util/i18n/src/lib/i18n.interceptor.d.ts.map +1 -1
- package/libs/util/i18n/src/lib/i18n.providers.d.ts +4 -0
- package/libs/util/i18n/src/lib/i18n.providers.d.ts.map +1 -0
- package/libs/util/i18n/src/lib/language-codes.d.ts +3 -29
- package/libs/util/i18n/src/lib/language-codes.d.ts.map +1 -1
- package/libs/util/shared/src/index.d.ts +1 -1
- package/libs/util/shared/src/index.d.ts.map +1 -1
- package/libs/util/shared/src/lib/image-fallback.directive.d.ts +1 -1
- package/libs/util/shared/src/lib/image-fallback.directive.d.ts.map +1 -1
- package/libs/util/shared/src/lib/record.util.d.ts +3 -0
- package/libs/util/shared/src/lib/record.util.d.ts.map +1 -0
- package/package.json +3 -3
- package/src/libs/api/metadata-converter/src/lib/dcat-ap/dcat-ap.converter.ts +10 -1
- package/src/libs/api/metadata-converter/src/lib/dcat-ap/read-parts.ts +2 -2
- package/src/libs/api/metadata-converter/src/lib/fixtures/metadata-for-i18n.records.ts +4196 -0
- package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +19 -6
- package/src/libs/api/metadata-converter/src/lib/gn4/metadata-url.service.ts +4 -4
- package/src/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.ts +3 -7
- package/src/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.ts +2 -6
- package/src/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.ts +14 -8
- package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +3 -3
- package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +5 -7
- package/src/libs/api/metadata-converter/src/lib/translate-utils.ts +17 -0
- package/src/libs/api/repository/src/lib/gn4/auth/auth.service.ts +3 -6
- package/src/libs/api/repository/src/lib/gn4/elasticsearch/constant.ts +3 -1
- package/src/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.ts +14 -6
- package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +60 -16
- package/src/libs/api/repository/src/lib/gn4/organizations/organizations-from-groups.service.ts +8 -7
- package/src/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.ts +13 -6
- package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +24 -20
- package/src/libs/api/repository/src/lib/gn4/settings/gn4-settings.service.ts +3 -0
- package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +20 -14
- package/src/libs/common/domain/src/lib/repository/records-repository.interface.ts +9 -2
- package/src/libs/common/fixtures/src/lib/records.fixtures.ts +113 -0
- package/src/libs/feature/catalog/src/lib/feature-catalog.module.ts +4 -17
- package/src/libs/feature/catalog/src/lib/sources/sources.service.ts +7 -3
- package/src/libs/feature/dataviz/src/lib/chart-view/chart-view.component.ts +2 -2
- package/src/libs/feature/dataviz/src/lib/figure/figure-container/figure-container.component.ts +2 -2
- package/src/libs/feature/dataviz/src/lib/service/data.service.ts +4 -2
- package/src/libs/feature/dataviz/src/lib/table-view/table-view.component.ts +2 -2
- package/src/libs/feature/editor/src/index.ts +0 -3
- package/src/libs/feature/editor/src/lib/+state/editor.actions.ts +9 -1
- package/src/libs/feature/editor/src/lib/+state/editor.effects.ts +23 -12
- package/src/libs/feature/editor/src/lib/+state/editor.facade.ts +13 -1
- package/src/libs/feature/editor/src/lib/+state/editor.reducer.ts +9 -1
- package/src/libs/feature/editor/src/lib/components/constraint-card/constraint-card.component.ts +3 -4
- package/src/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.ts +5 -16
- package/src/libs/feature/editor/src/lib/components/import-record/import-record.component.ts +7 -5
- package/src/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.ts +16 -10
- package/src/libs/feature/editor/src/lib/components/online-resource-card/online-resource-card.component.ts +2 -10
- package/src/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.ts +3 -2
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-constraints/form-field-constraints.component.ts +3 -4
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-constraints-shortcuts/form-field-constraints-shortcuts.component.ts +2 -2
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts/form-field-contacts.component.ts +4 -11
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.ts +5 -9
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.ts +2 -17
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.ts +2 -2
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.ts +2 -2
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.ts +2 -2
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.ts +2 -2
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.ts +2 -2
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.ts +2 -2
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.ts +2 -2
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.ts +2 -15
- package/src/libs/feature/editor/src/lib/components/record-form/record-form.component.ts +2 -2
- package/src/libs/feature/editor/src/lib/feature-editor.module.ts +4 -17
- package/src/libs/feature/editor/src/lib/models/index.ts +0 -2
- package/src/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-from-catalog.component.ts +2 -1
- package/src/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.ts +8 -3
- package/src/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.ts +10 -3
- package/src/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.ts +8 -2
- package/src/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.ts +8 -2
- package/src/libs/feature/map/src/lib/feature-map.module.ts +0 -17
- package/src/libs/feature/map/src/lib/geocoding/geocoding.component.ts +3 -8
- package/src/libs/feature/map/src/lib/layers-panel/layers-panel.component.ts +3 -2
- package/src/libs/feature/record/src/lib/data-view/data-view.component.html +1 -1
- package/src/libs/feature/record/src/lib/data-view/data-view.component.ts +22 -19
- package/src/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.ts +2 -2
- package/src/libs/feature/record/src/lib/data-view-share/data-view-share.component.ts +2 -2
- package/src/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.ts +2 -2
- package/src/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.ts +2 -2
- package/src/libs/feature/record/src/lib/feature-record.module.ts +4 -13
- package/src/libs/feature/record/src/lib/gpf-api-dl/gpf-api-dl.component.ts +4 -3
- package/src/libs/feature/record/src/lib/gpf-api-dl-list-item/gpf-api-dl-list-item.component.ts +10 -4
- package/src/libs/feature/record/src/lib/map-view/map-view.component.html +27 -9
- package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +113 -30
- package/src/libs/feature/search/src/lib/constants.ts +2 -1
- package/src/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.ts +2 -2
- package/src/libs/feature/search/src/lib/feature-search.module.ts +13 -18
- package/src/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.html +1 -1
- package/src/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.ts +5 -0
- package/src/libs/feature/search/src/lib/results-table/results-table-container.component.html +1 -0
- package/src/libs/feature/search/src/lib/results-table/results-table-container.component.ts +13 -3
- package/src/libs/feature/search/src/lib/search-filters-summary/search-filters-summary.component.ts +10 -4
- package/src/libs/feature/search/src/lib/search-filters-summary-item/search-filters-summary-item.component.ts +2 -2
- package/src/libs/feature/search/src/lib/utils/service/fields.ts +4 -3
- package/src/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.ts +2 -2
- package/src/libs/ui/catalog/src/lib/organisations-filter/organisations-filter.component.ts +2 -2
- package/src/libs/ui/catalog/src/lib/organisations-result/organisations-result.component.ts +2 -2
- package/src/libs/ui/dataviz/src/index.ts +0 -1
- package/src/libs/ui/dataviz/src/lib/data-table/data-table.component.ts +2 -2
- package/src/libs/ui/dataviz/src/lib/figure/figure.component.html +0 -1
- package/src/libs/ui/dataviz/src/lib/figure/figure.component.ts +4 -0
- package/src/libs/ui/elements/src/index.ts +0 -2
- package/src/libs/ui/elements/src/lib/api-card/api-card.component.ts +3 -2
- package/src/libs/ui/elements/src/lib/application-banner/application-banner.component.html +6 -6
- package/src/libs/ui/elements/src/lib/application-banner/application-banner.component.ts +2 -2
- package/src/libs/ui/elements/src/lib/avatar/avatar.component.ts +3 -0
- package/src/libs/ui/elements/src/lib/confirmation-dialog/confirmation-dialog.component.html +6 -2
- package/src/libs/ui/elements/src/lib/confirmation-dialog/confirmation-dialog.component.ts +5 -1
- package/src/libs/ui/elements/src/lib/download-item/download-item.component.ts +2 -2
- package/src/libs/ui/elements/src/lib/downloads-list/downloads-list.component.ts +2 -5
- package/src/libs/ui/elements/src/lib/error/error.component.ts +2 -2
- package/src/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.ts +2 -2
- package/src/libs/ui/elements/src/lib/image-input/image-input.component.ts +2 -2
- package/src/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.html +8 -76
- package/src/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.ts +22 -55
- package/src/libs/ui/elements/src/lib/internal-link-card-contact/internal-link-card-contact.component.html +69 -0
- package/src/libs/ui/elements/src/lib/internal-link-card-contact/internal-link-card-contact.component.ts +61 -0
- package/src/libs/ui/elements/src/lib/kind-badge/kind-badge.component.ts +4 -5
- package/src/libs/ui/elements/src/lib/link-card/link-card.component.ts +2 -2
- package/src/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.ts +1 -4
- package/src/libs/ui/elements/src/lib/metadata-catalog/metadata-catalog.component.ts +2 -2
- package/src/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.ts +2 -2
- package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.ts +4 -7
- package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.ts +51 -13
- package/src/libs/ui/elements/src/lib/metadata-quality-item/metadata-quality-item.component.ts +6 -2
- package/src/libs/ui/elements/src/lib/record-api-form/record-api-form.component.ts +4 -2
- package/src/libs/ui/elements/src/lib/record-feature-catalog/feature-catalog-list/feature-catalog-list.component.html +96 -37
- package/src/libs/ui/elements/src/lib/record-feature-catalog/feature-catalog-list/feature-catalog-list.component.ts +62 -31
- package/src/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.ts +7 -2
- package/src/libs/ui/elements/src/lib/user-feedback-item/user-feedback-item.component.ts +2 -2
- package/src/libs/ui/elements/src/lib/user-preview/user-preview.component.ts +4 -0
- package/src/libs/ui/inputs/src/index.ts +0 -1
- package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.ts +2 -2
- package/src/libs/ui/inputs/src/lib/checkbox/checkbox.component.ts +3 -0
- package/src/libs/ui/inputs/src/lib/drag-and-drop-file-input/drag-and-drop-file-input.component.html +1 -1
- package/src/libs/ui/inputs/src/lib/drag-and-drop-file-input/drag-and-drop-file-input.component.ts +4 -0
- package/src/libs/ui/inputs/src/lib/dropdown-multiselect/dropdown-multiselect.component.ts +27 -0
- package/src/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.ts +2 -2
- package/src/libs/ui/inputs/src/lib/file-input/file-input.component.ts +3 -4
- package/src/libs/ui/inputs/src/lib/inline-filter/inline-filter.component.ts +3 -0
- package/src/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.ts +9 -3
- package/src/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.ts +2 -2
- package/src/libs/ui/inputs/src/lib/viewport-intersector/viewport-intersector.component.ts +1 -0
- package/src/libs/ui/layout/src/index.ts +1 -1
- package/src/libs/ui/layout/src/lib/anchor-link/anchor-link.directive.ts +1 -0
- package/src/libs/ui/layout/src/lib/cell-popin/cell-popin.component.html +40 -0
- package/src/libs/ui/layout/src/lib/cell-popin/cell-popin.component.ts +141 -0
- package/src/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.ts +2 -2
- package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.html +2 -2
- package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.ts +15 -8
- package/src/libs/ui/layout/src/lib/max-lines/max-lines.component.ts +2 -2
- package/src/libs/ui/layout/src/lib/pagination/pagination.component.ts +2 -2
- package/src/libs/ui/layout/src/lib/sticky-header/sticky-header.component.ts +3 -0
- package/src/libs/ui/layout/src/lib/truncated-text/truncated-text.component.html +25 -42
- package/src/libs/ui/layout/src/lib/truncated-text/truncated-text.component.ts +12 -58
- package/src/libs/ui/map/src/lib/components/map-container/map-container.component.ts +2 -2
- package/src/libs/ui/search/src/lib/record-preview-feed/record-preview-feed.component.html +4 -1
- package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.html +6 -4
- package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.ts +4 -4
- package/src/libs/ui/search/src/lib/results-table/results-table.component.html +14 -22
- package/src/libs/ui/search/src/lib/results-table/results-table.component.ts +34 -13
- package/src/libs/ui/search/src/lib/ui-search.module.ts +12 -11
- package/src/libs/ui/widgets/src/index.ts +0 -1
- package/src/libs/ui/widgets/src/lib/color-scale/color-scale.component.ts +1 -0
- package/src/libs/util/app-config/src/lib/app-config.ts +0 -2
- package/src/libs/util/i18n/src/index.ts +1 -2
- package/src/libs/util/i18n/src/lib/embedded.translate.loader.ts +4 -3
- package/src/libs/util/i18n/src/lib/i18n.constants.ts +39 -71
- package/src/libs/util/i18n/src/lib/i18n.interceptor.ts +11 -9
- package/src/libs/util/i18n/src/lib/i18n.providers.ts +68 -0
- package/src/libs/util/i18n/src/lib/language-codes.ts +44 -1
- package/src/libs/util/shared/src/index.ts +1 -1
- package/src/libs/util/shared/src/lib/image-fallback.directive.ts +1 -0
- package/src/libs/util/shared/src/lib/record.util.ts +114 -0
- package/translations/de.json +20 -22
- package/translations/en.json +21 -23
- package/translations/es.json +19 -21
- package/translations/fr.json +25 -27
- package/translations/it.json +22 -24
- package/translations/nl.json +19 -21
- package/translations/pt.json +19 -21
- package/translations/sk.json +19 -21
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.mjs +0 -44
- package/esm2022/libs/feature/editor/src/lib/components/wizard/wizard.component.mjs +0 -75
- package/esm2022/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.mjs +0 -160
- package/esm2022/libs/feature/editor/src/lib/components/wizard-summarize/wizard-summarize.component.mjs +0 -53
- package/esm2022/libs/feature/editor/src/lib/models/wizard-field.model.mjs +0 -2
- package/esm2022/libs/feature/editor/src/lib/models/wizard-field.type.mjs +0 -8
- package/esm2022/libs/feature/editor/src/lib/services/wizard.service.mjs +0 -87
- package/esm2022/libs/ui/dataviz/src/lib/ui-dataviz.module.mjs +0 -47
- package/esm2022/libs/ui/elements/src/lib/related-record-card/related-record-card.component.mjs +0 -56
- package/esm2022/libs/ui/elements/src/lib/ui-elements.module.mjs +0 -130
- package/esm2022/libs/ui/inputs/src/lib/ui-inputs.module.mjs +0 -160
- package/esm2022/libs/ui/layout/src/lib/ui-layout.module.mjs +0 -23
- package/esm2022/libs/ui/widgets/src/lib/ui-widgets.module.mjs +0 -46
- package/esm2022/libs/util/i18n/src/lib/lang.service.mjs +0 -31
- package/esm2022/libs/util/i18n/src/lib/util-i18n.module.mjs +0 -37
- package/esm2022/libs/util/shared/src/lib/util-shared.module.mjs +0 -18
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.d.ts +0 -14
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.d.ts.map +0 -1
- package/libs/feature/editor/src/lib/components/wizard/wizard.component.d.ts +0 -31
- package/libs/feature/editor/src/lib/components/wizard/wizard.component.d.ts.map +0 -1
- package/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.d.ts +0 -43
- package/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.d.ts.map +0 -1
- package/libs/feature/editor/src/lib/components/wizard-summarize/wizard-summarize.component.d.ts +0 -17
- package/libs/feature/editor/src/lib/components/wizard-summarize/wizard-summarize.component.d.ts.map +0 -1
- package/libs/feature/editor/src/lib/models/wizard-field.model.d.ts +0 -10
- package/libs/feature/editor/src/lib/models/wizard-field.model.d.ts.map +0 -1
- package/libs/feature/editor/src/lib/models/wizard-field.type.d.ts +0 -7
- package/libs/feature/editor/src/lib/models/wizard-field.type.d.ts.map +0 -1
- package/libs/feature/editor/src/lib/services/wizard.service.d.ts +0 -33
- package/libs/feature/editor/src/lib/services/wizard.service.d.ts.map +0 -1
- package/libs/ui/dataviz/src/lib/ui-dataviz.module.d.ts +0 -11
- package/libs/ui/dataviz/src/lib/ui-dataviz.module.d.ts.map +0 -1
- package/libs/ui/elements/src/lib/related-record-card/related-record-card.component.d.ts +0 -19
- package/libs/ui/elements/src/lib/related-record-card/related-record-card.component.d.ts.map +0 -1
- package/libs/ui/elements/src/lib/ui-elements.module.d.ts +0 -31
- package/libs/ui/elements/src/lib/ui-elements.module.d.ts.map +0 -1
- package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts +0 -35
- package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts.map +0 -1
- package/libs/ui/layout/src/lib/ui-layout.module.d.ts +0 -12
- package/libs/ui/layout/src/lib/ui-layout.module.d.ts.map +0 -1
- package/libs/ui/widgets/src/lib/ui-widgets.module.d.ts +0 -15
- package/libs/ui/widgets/src/lib/ui-widgets.module.d.ts.map +0 -1
- package/libs/util/i18n/src/lib/lang.service.d.ts +0 -13
- package/libs/util/i18n/src/lib/lang.service.d.ts.map +0 -1
- package/libs/util/i18n/src/lib/util-i18n.module.d.ts +0 -12
- package/libs/util/i18n/src/lib/util-i18n.module.d.ts.map +0 -1
- package/libs/util/shared/src/lib/util-shared.module.d.ts +0 -9
- package/libs/util/shared/src/lib/util-shared.module.d.ts.map +0 -1
- package/src/libs/feature/editor/src/lib/components/wizard/wizard.component.css +0 -5
- package/src/libs/feature/editor/src/lib/components/wizard/wizard.component.html +0 -22
- package/src/libs/feature/editor/src/lib/components/wizard/wizard.component.ts +0 -93
- package/src/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.css +0 -31
- package/src/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.html +0 -62
- package/src/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.ts +0 -206
- package/src/libs/feature/editor/src/lib/components/wizard-summarize/wizard-summarize.component.css +0 -3
- package/src/libs/feature/editor/src/lib/components/wizard-summarize/wizard-summarize.component.html +0 -21
- package/src/libs/feature/editor/src/lib/components/wizard-summarize/wizard-summarize.component.ts +0 -58
- package/src/libs/feature/editor/src/lib/models/wizard-field.model.ts +0 -10
- package/src/libs/feature/editor/src/lib/models/wizard-field.type.ts +0 -6
- package/src/libs/feature/editor/src/lib/services/wizard.service.ts +0 -105
- package/src/libs/ui/dataviz/src/lib/ui-dataviz.module.ts +0 -27
- package/src/libs/ui/elements/src/lib/related-record-card/related-record-card.component.css +0 -0
- package/src/libs/ui/elements/src/lib/related-record-card/related-record-card.component.html +0 -9
- package/src/libs/ui/elements/src/lib/related-record-card/related-record-card.component.ts +0 -61
- package/src/libs/ui/elements/src/lib/ui-elements.module.ts +0 -72
- package/src/libs/ui/inputs/src/lib/ui-inputs.module.ts +0 -96
- package/src/libs/ui/layout/src/lib/ui-layout.module.ts +0 -14
- package/src/libs/ui/widgets/src/lib/ui-widgets.module.ts +0 -25
- package/src/libs/util/i18n/src/lib/lang.service.ts +0 -23
- package/src/libs/util/i18n/src/lib/util-i18n.module.ts +0 -26
- package/src/libs/util/shared/src/lib/util-shared.module.ts +0 -10
|
@@ -1,14 +1,11 @@
|
|
|
1
1
|
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, } from '@angular/core';
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
|
-
import { ThumbnailComponent } from '../../../../../../../libs/ui/elements/src';
|
|
4
3
|
import { bytesToMegabytes, getFileFormat } from '../../../../../../../libs/util/shared/src';
|
|
5
|
-
import {
|
|
6
|
-
import { TranslateModule } from '@ngx-translate/core';
|
|
4
|
+
import { TranslateDirective, TranslatePipe } from '@ngx-translate/core';
|
|
7
5
|
import { NgIconComponent, provideIcons, provideNgIconsConfig, } from '@ng-icons/core';
|
|
8
6
|
import { iconoirAttachment } from '@ng-icons/iconoir';
|
|
9
7
|
import * as i0 from "@angular/core";
|
|
10
8
|
import * as i1 from "@angular/common";
|
|
11
|
-
import * as i2 from "@ngx-translate/core";
|
|
12
9
|
export class OnlineResourceCardComponent {
|
|
13
10
|
constructor() {
|
|
14
11
|
this.modifyClick = new EventEmitter();
|
|
@@ -58,17 +55,11 @@ export class OnlineResourceCardComponent {
|
|
|
58
55
|
provideNgIconsConfig({
|
|
59
56
|
size: '1.5em',
|
|
60
57
|
}),
|
|
61
|
-
], ngImport: i0, template: "<div class=\"gn-ui-card\">\n <div\n class=\"bg-gray-100 w-[56px] h-[56px] rounded-[4px] text-primary grid justify-center items-center shrink-0\"\n >\n <ng-icon name=\"iconoirAttachment\"></ng-icon>\n </div>\n <div class=\"flex flex-col w-full items-start overflow-hidden leading-snug\">\n <div class=\"text-[16px] font-bold text-main\" data-test=\"card-title\">\n {{ title }}\n </div>\n <div\n class=\"text-[14px] text-gray-900\"\n *ngIf=\"subtitle\"\n data-test=\"card-subtitle\"\n >\n <span>{{ subtitle }}</span>\n <span *ngIf=\"fileSize\">\n \u2022\n {{\n 'editor.record.form.field.onlineResource.fileSize'\n | translate: { sizeMB: fileSize }\n }}</span\n >\n <span *ngIf=\"identifierInService\"> \u2022 {{ identifierInService }}</span>\n </div>\n <button\n class=\"gn-ui-link text-[14px]\"\n translate\n (click)=\"modifyClick.emit(onlineResource)\"\n data-test=\"card-modify\"\n >\n editor.record.form.field.onlineResource.modify\n </button>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "
|
|
58
|
+
], ngImport: i0, template: "<div class=\"gn-ui-card\">\n <div\n class=\"bg-gray-100 w-[56px] h-[56px] rounded-[4px] text-primary grid justify-center items-center shrink-0\"\n >\n <ng-icon name=\"iconoirAttachment\"></ng-icon>\n </div>\n <div class=\"flex flex-col w-full items-start overflow-hidden leading-snug\">\n <div class=\"text-[16px] font-bold text-main\" data-test=\"card-title\">\n {{ title }}\n </div>\n <div\n class=\"text-[14px] text-gray-900\"\n *ngIf=\"subtitle\"\n data-test=\"card-subtitle\"\n >\n <span>{{ subtitle }}</span>\n <span *ngIf=\"fileSize\">\n \u2022\n {{\n 'editor.record.form.field.onlineResource.fileSize'\n | translate: { sizeMB: fileSize }\n }}</span\n >\n <span *ngIf=\"identifierInService\"> \u2022 {{ identifierInService }}</span>\n </div>\n <button\n class=\"gn-ui-link text-[14px]\"\n translate\n (click)=\"modifyClick.emit(onlineResource)\"\n data-test=\"card-modify\"\n >\n editor.record.form.field.onlineResource.modify\n </button>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
62
59
|
}
|
|
63
60
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OnlineResourceCardComponent, decorators: [{
|
|
64
61
|
type: Component,
|
|
65
|
-
args: [{ selector: 'gn-ui-online-resource-card', standalone: true, imports: [
|
|
66
|
-
CommonModule,
|
|
67
|
-
ThumbnailComponent,
|
|
68
|
-
ButtonComponent,
|
|
69
|
-
TranslateModule,
|
|
70
|
-
NgIconComponent,
|
|
71
|
-
], providers: [
|
|
62
|
+
args: [{ selector: 'gn-ui-online-resource-card', standalone: true, imports: [CommonModule, TranslateDirective, TranslatePipe, NgIconComponent], providers: [
|
|
72
63
|
provideIcons({
|
|
73
64
|
iconoirAttachment,
|
|
74
65
|
}),
|
|
@@ -81,4 +72,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
81
72
|
}], modifyClick: [{
|
|
82
73
|
type: Output
|
|
83
74
|
}] } });
|
|
84
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25saW5lLXJlc291cmNlLWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL2VkaXRvci9zcmMvbGliL2NvbXBvbmVudHMvb25saW5lLXJlc291cmNlLWNhcmQvb25saW5lLXJlc291cmNlLWNhcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL2VkaXRvci9zcmMvbGliL2NvbXBvbmVudHMvb25saW5lLXJlc291cmNlLWNhcmQvb25saW5lLXJlc291cmNlLWNhcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBTTlDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQTtBQUMzRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDdkUsT0FBTyxFQUNMLGVBQWUsRUFDZixZQUFZLEVBQ1osb0JBQW9CLEdBQ3JCLE1BQU0sZ0JBQWdCLENBQUE7QUFDdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUE7OztBQWtCckQsTUFBTSxPQUFPLDJCQUEyQjtJQWhCeEM7UUFrQlksZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBa0IsQ0FBQTtLQTBDM0Q7SUF4Q0MsSUFBSSxLQUFLO1FBQ1AsUUFBUSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2pDLEtBQUssTUFBTSxDQUFDO1lBQ1osS0FBSyxTQUFTLENBQUM7WUFDZixLQUFLLFVBQVU7Z0JBQ2IsT0FBTyxDQUNMLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVztvQkFDL0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJO29CQUN4QixXQUFXLENBQ1osQ0FBQTtZQUNILEtBQUssVUFBVTtnQkFDYixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFBO1FBQzFDLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1YsUUFBUSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2pDLEtBQUssU0FBUyxDQUFDO1lBQ2YsS0FBSyxVQUFVO2dCQUNiLE9BQU8sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLHFCQUFxQixFQUFFLENBQUE7WUFDdkQsS0FBSyxNQUFNLENBQUM7WUFDWixLQUFLLFVBQVU7Z0JBQ2IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQTtRQUM5QyxDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUksUUFBUTtRQUNWLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEtBQUssVUFBVTtZQUFFLE9BQU8sRUFBRSxDQUFBO1FBQ3RELElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVM7WUFBRSxPQUFPLEVBQUUsQ0FBQTtRQUM3QyxPQUFPLGdCQUFnQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUE7SUFDekUsQ0FBQztJQUVELElBQUksbUJBQW1CO1FBQ3JCLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEtBQUssU0FBUztZQUFFLE9BQU8sRUFBRSxDQUFBO1FBQ3JELE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxtQkFBbUIsSUFBSSxFQUFFLENBQUE7SUFDdEQsQ0FBQztJQUVELFNBQVMsQ0FBQyxjQUFnRTtRQUN4RSxPQUFPLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFBO0lBQzVELENBQUM7K0dBM0NVLDJCQUEyQjttR0FBM0IsMkJBQTJCLGdLQVozQjtZQUNULFlBQVksQ0FBQztnQkFDWCxpQkFBaUI7YUFDbEIsQ0FBQztZQUNGLG9CQUFvQixDQUFDO2dCQUNuQixJQUFJLEVBQUUsT0FBTzthQUNkLENBQUM7U0FDSCwwQkNqQ0gsbWxDQW1DQSx5RERWWSxZQUFZLG1JQUFFLGtCQUFrQiw2R0FBRSxhQUFhLGtEQUFFLGVBQWU7OzRGQWEvRCwyQkFBMkI7a0JBaEJ2QyxTQUFTOytCQUNFLDRCQUE0QixjQUMxQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsYUFBYSxFQUFFLGVBQWUsQ0FBQyxhQUNoRTt3QkFDVCxZQUFZLENBQUM7NEJBQ1gsaUJBQWlCO3lCQUNsQixDQUFDO3dCQUNGLG9CQUFvQixDQUFDOzRCQUNuQixJQUFJLEVBQUUsT0FBTzt5QkFDZCxDQUFDO3FCQUNILG1CQUdnQix1QkFBdUIsQ0FBQyxNQUFNOzhCQUd0QyxjQUFjO3NCQUF0QixLQUFLO2dCQUNJLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQge1xuICBEYXRhc2V0RG93bmxvYWREaXN0cmlidXRpb24sXG4gIE9ubGluZUxpbmtSZXNvdXJjZSxcbiAgT25saW5lUmVzb3VyY2UsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3JlY29yZCdcbmltcG9ydCB7IGJ5dGVzVG9NZWdhYnl0ZXMsIGdldEZpbGVGb3JtYXQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvc2hhcmVkL3NyYydcbmltcG9ydCB7IFRyYW5zbGF0ZURpcmVjdGl2ZSwgVHJhbnNsYXRlUGlwZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5pbXBvcnQge1xuICBOZ0ljb25Db21wb25lbnQsXG4gIHByb3ZpZGVJY29ucyxcbiAgcHJvdmlkZU5nSWNvbnNDb25maWcsXG59IGZyb20gJ0BuZy1pY29ucy9jb3JlJ1xuaW1wb3J0IHsgaWNvbm9pckF0dGFjaG1lbnQgfSBmcm9tICdAbmctaWNvbnMvaWNvbm9pcidcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktb25saW5lLXJlc291cmNlLWNhcmQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBUcmFuc2xhdGVEaXJlY3RpdmUsIFRyYW5zbGF0ZVBpcGUsIE5nSWNvbkNvbXBvbmVudF0sXG4gIHByb3ZpZGVyczogW1xuICAgIHByb3ZpZGVJY29ucyh7XG4gICAgICBpY29ub2lyQXR0YWNobWVudCxcbiAgICB9KSxcbiAgICBwcm92aWRlTmdJY29uc0NvbmZpZyh7XG4gICAgICBzaXplOiAnMS41ZW0nLFxuICAgIH0pLFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vb25saW5lLXJlc291cmNlLWNhcmQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9vbmxpbmUtcmVzb3VyY2UtY2FyZC5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBPbmxpbmVSZXNvdXJjZUNhcmRDb21wb25lbnQge1xuICBASW5wdXQoKSBvbmxpbmVSZXNvdXJjZTogT25saW5lUmVzb3VyY2VcbiAgQE91dHB1dCgpIG1vZGlmeUNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxPbmxpbmVSZXNvdXJjZT4oKVxuXG4gIGdldCB0aXRsZSgpOiBzdHJpbmcge1xuICAgIHN3aXRjaCAodGhpcy5vbmxpbmVSZXNvdXJjZS50eXBlKSB7XG4gICAgICBjYXNlICdsaW5rJzpcbiAgICAgIGNhc2UgJ3NlcnZpY2UnOlxuICAgICAgY2FzZSAnZG93bmxvYWQnOlxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIHRoaXMub25saW5lUmVzb3VyY2UuZGVzY3JpcHRpb24gfHxcbiAgICAgICAgICB0aGlzLm9ubGluZVJlc291cmNlLm5hbWUgfHxcbiAgICAgICAgICAnKHVua25vd24pJ1xuICAgICAgICApXG4gICAgICBjYXNlICdlbmRwb2ludCc6XG4gICAgICAgIHJldHVybiB0aGlzLm9ubGluZVJlc291cmNlLmRlc2NyaXB0aW9uXG4gICAgfVxuICB9XG5cbiAgZ2V0IHN1YnRpdGxlKCk6IHN0cmluZyB7XG4gICAgc3dpdGNoICh0aGlzLm9ubGluZVJlc291cmNlLnR5cGUpIHtcbiAgICAgIGNhc2UgJ3NlcnZpY2UnOlxuICAgICAgY2FzZSAnZW5kcG9pbnQnOlxuICAgICAgICByZXR1cm4gYCR7dGhpcy5vbmxpbmVSZXNvdXJjZS5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2x9YFxuICAgICAgY2FzZSAnbGluayc6XG4gICAgICBjYXNlICdkb3dubG9hZCc6XG4gICAgICAgIHJldHVybiB0aGlzLmdldEZvcm1hdCh0aGlzLm9ubGluZVJlc291cmNlKVxuICAgIH1cbiAgfVxuXG4gIGdldCBmaWxlU2l6ZSgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLm9ubGluZVJlc291cmNlLnR5cGUgIT09ICdkb3dubG9hZCcpIHJldHVybiAnJ1xuICAgIGlmICghdGhpcy5vbmxpbmVSZXNvdXJjZS5zaXplQnl0ZXMpIHJldHVybiAnJ1xuICAgIHJldHVybiBieXRlc1RvTWVnYWJ5dGVzKHRoaXMub25saW5lUmVzb3VyY2Uuc2l6ZUJ5dGVzKS50b0xvY2FsZVN0cmluZygpXG4gIH1cblxuICBnZXQgaWRlbnRpZmllckluU2VydmljZSgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLm9ubGluZVJlc291cmNlLnR5cGUgIT09ICdzZXJ2aWNlJykgcmV0dXJuICcnXG4gICAgcmV0dXJuIHRoaXMub25saW5lUmVzb3VyY2UuaWRlbnRpZmllckluU2VydmljZSA/PyAnJ1xuICB9XG5cbiAgZ2V0Rm9ybWF0KG9ubGluZVJlc291cmNlOiBPbmxpbmVMaW5rUmVzb3VyY2UgfCBEYXRhc2V0RG93bmxvYWREaXN0cmlidXRpb24pIHtcbiAgICByZXR1cm4gKGdldEZpbGVGb3JtYXQob25saW5lUmVzb3VyY2UpIHx8ICcnKS50b1VwcGVyQ2FzZSgpXG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJnbi11aS1jYXJkXCI+XG4gIDxkaXZcbiAgICBjbGFzcz1cImJnLWdyYXktMTAwIHctWzU2cHhdIGgtWzU2cHhdIHJvdW5kZWQtWzRweF0gdGV4dC1wcmltYXJ5IGdyaWQganVzdGlmeS1jZW50ZXIgaXRlbXMtY2VudGVyIHNocmluay0wXCJcbiAgPlxuICAgIDxuZy1pY29uIG5hbWU9XCJpY29ub2lyQXR0YWNobWVudFwiPjwvbmctaWNvbj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIHctZnVsbCBpdGVtcy1zdGFydCBvdmVyZmxvdy1oaWRkZW4gbGVhZGluZy1zbnVnXCI+XG4gICAgPGRpdiBjbGFzcz1cInRleHQtWzE2cHhdIGZvbnQtYm9sZCB0ZXh0LW1haW5cIiBkYXRhLXRlc3Q9XCJjYXJkLXRpdGxlXCI+XG4gICAgICB7eyB0aXRsZSB9fVxuICAgIDwvZGl2PlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwidGV4dC1bMTRweF0gdGV4dC1ncmF5LTkwMFwiXG4gICAgICAqbmdJZj1cInN1YnRpdGxlXCJcbiAgICAgIGRhdGEtdGVzdD1cImNhcmQtc3VidGl0bGVcIlxuICAgID5cbiAgICAgIDxzcGFuPnt7IHN1YnRpdGxlIH19PC9zcGFuPlxuICAgICAgPHNwYW4gKm5nSWY9XCJmaWxlU2l6ZVwiPlxuICAgICAgICDigKJcbiAgICAgICAge3tcbiAgICAgICAgICAnZWRpdG9yLnJlY29yZC5mb3JtLmZpZWxkLm9ubGluZVJlc291cmNlLmZpbGVTaXplJ1xuICAgICAgICAgICAgfCB0cmFuc2xhdGU6IHsgc2l6ZU1COiBmaWxlU2l6ZSB9XG4gICAgICAgIH19PC9zcGFuXG4gICAgICA+XG4gICAgICA8c3BhbiAqbmdJZj1cImlkZW50aWZpZXJJblNlcnZpY2VcIj4g4oCiIHt7IGlkZW50aWZpZXJJblNlcnZpY2UgfX08L3NwYW4+XG4gICAgPC9kaXY+XG4gICAgPGJ1dHRvblxuICAgICAgY2xhc3M9XCJnbi11aS1saW5rIHRleHQtWzE0cHhdXCJcbiAgICAgIHRyYW5zbGF0ZVxuICAgICAgKGNsaWNrKT1cIm1vZGlmeUNsaWNrLmVtaXQob25saW5lUmVzb3VyY2UpXCJcbiAgICAgIGRhdGEtdGVzdD1cImNhcmQtbW9kaWZ5XCJcbiAgICA+XG4gICAgICBlZGl0b3IucmVjb3JkLmZvcm0uZmllbGQub25saW5lUmVzb3VyY2UubW9kaWZ5XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -8,14 +8,13 @@ import { AutocompleteComponent, ButtonComponent, TextInputComponent, UrlInputCom
|
|
|
8
8
|
import { createFuzzyFilter, getLayers } from '../../../../../../../libs/util/shared/src';
|
|
9
9
|
import { NgIconComponent, provideIcons, provideNgIconsConfig, } from '@ng-icons/core';
|
|
10
10
|
import { iconoirRefresh } from '@ng-icons/iconoir';
|
|
11
|
-
import {
|
|
11
|
+
import { TranslateDirective, TranslatePipe } from '@ngx-translate/core';
|
|
12
12
|
import { BehaviorSubject, debounceTime, distinctUntilChanged, switchMap, } from 'rxjs';
|
|
13
13
|
import * as i0 from "@angular/core";
|
|
14
14
|
import * as i1 from "@angular/common";
|
|
15
15
|
import * as i2 from "@angular/forms";
|
|
16
16
|
import * as i3 from "@angular/material/tooltip";
|
|
17
17
|
import * as i4 from "@angular/material/radio";
|
|
18
|
-
import * as i5 from "@ngx-translate/core";
|
|
19
18
|
marker('editor.record.form.field.onlineResource.edit.identifier.placeholder');
|
|
20
19
|
marker('editor.record.form.field.onlineResource.edit.identifier.placeholder.wps');
|
|
21
20
|
export class OnlineServiceResourceInputComponent {
|
|
@@ -137,7 +136,7 @@ export class OnlineServiceResourceInputComponent {
|
|
|
137
136
|
provideNgIconsConfig({
|
|
138
137
|
size: '1.5em',
|
|
139
138
|
}),
|
|
140
|
-
], ngImport: i0, template: "<div class=\"flex flex-row justify-between\">\n <h3 class=\"text-[16px] font-bold text-main mb-[12px]\" translate>\n editor.record.form.field.onlineResource.edit.protocol\n </h3>\n <span\n *ngIf=\"protocolHint\"\n class=\"material-symbols-outlined m-2 gn-ui-icon-small\"\n [matTooltip]=\"protocolHint\"\n matTooltipPosition=\"above\"\n >\n help\n </span>\n</div>\n<div class=\"flex flex-row items-center gap-4 h-[48px]\">\n <mat-radio-group\n aria-labelledby=\"example-radio-group-label\"\n class=\"flex flex-row gap-[8px]\"\n [(ngModel)]=\"_service.accessServiceProtocol\"\n [disabled]=\"disabled\"\n (change)=\"resetAllFormFields()\"\n >\n <mat-radio-button\n *ngFor=\"let protocolOption of protocolOptions\"\n [value]=\"protocolOption.value\"\n >\n {{ protocolOption.label | translate }}\n </mat-radio-button>\n </mat-radio-group>\n</div>\n\n<div class=\"flex flex-col gap-4\">\n <gn-ui-url-input\n class=\"w-full\"\n (uploadClick)=\"handleUploadClick($event)\"\n (valueChange)=\"handleUrlValueChange($event)\"\n [disabled]=\"disabled\"\n [value]=\"_service.url?.toString()\"\n [showValidateButton]=\"activeLayerSuggestion\"\n [resetUrlOnChange]=\"resetUrlOnChange\"\n >\n <ng-content *ngIf=\"activeLayerSuggestion\">\n <ng-icon name=\"iconoirRefresh\"></ng-icon>\n </ng-content>\n </gn-ui-url-input>\n\n <p class=\"text-sm text-red-500 pl-4\" *ngIf=\"errorMessage\" translate>\n editor.record.form.field.onlineResource.edit.identifier.error\n </p>\n\n <gn-ui-text-input\n class=\"grow border-b border-gray-300 pb-4\"\n [(value)]=\"_service.identifierInService\"\n [placeholder]=\"getIdentifierPlaceholder() | translate\"\n data-cy=\"identifier-in-service\"\n [disabled]=\"disabled\"\n *ngIf=\"\n !activeLayerSuggestion ||\n (_service.url && errorMessage) ||\n (modifyMode && (layers$ | async).length === 0)\n \"\n ></gn-ui-text-input>\n <gn-ui-autocomplete\n class=\"border-b border-gray-300 pb-4\"\n [placeholder]=\"\n 'editor.record.form.field.onlineResource.edit.identifier.select.label'\n | translate\n \"\n [action]=\"autoCompleteAction\"\n (itemSelected)=\"handleSelectValue($event)\"\n [displayWithFn]=\"displayWithFn\"\n [minCharacterCount]=\"0\"\n [clearOnSelection]=\"false\"\n *ngIf=\"activeLayerSuggestion && (layers$ | async)?.length > 0\"\n >\n </gn-ui-autocomplete>\n <gn-ui-button\n (buttonClick)=\"submit()\"\n [disabled]=\"disabled || !_service.identifierInService\"\n type=\"primary\"\n *ngIf=\"\n !modifyMode &&\n ((activeLayerSuggestion && (layers$ | async)) ||\n !activeLayerSuggestion ||\n (_service.url && errorMessage))\n \"\n >\n <span class=\"text-white font-bold\" translate>\n editor.record.form.field.onlineResource.edit.identifier.submit</span\n >\n </gn-ui-button>\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: AutocompleteComponent, selector: "gn-ui-autocomplete", inputs: ["placeholder", "enterButton", "action", "value", "clearOnSelection", "preventCompleteOnSelection", "autoFocus", "minCharacterCount", "allowSubmit", "forceTrackPosition", "displayWithFn"], outputs: ["itemSelected", "inputSubmitted", "inputCleared", "isSearchActive"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatRadioModule }, { kind: "directive", type: i4.MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: i4.MatRadioButton, selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioButton"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "component", type: TextInputComponent, selector: "gn-ui-text-input", inputs: ["value", "extraClass", "placeholder", "required", "disabled"], outputs: ["valueChange"] }, { kind: "
|
|
139
|
+
], ngImport: i0, template: "<div class=\"flex flex-row justify-between\">\n <h3 class=\"text-[16px] font-bold text-main mb-[12px]\" translate>\n editor.record.form.field.onlineResource.edit.protocol\n </h3>\n <span\n *ngIf=\"protocolHint\"\n class=\"material-symbols-outlined m-2 gn-ui-icon-small\"\n [matTooltip]=\"protocolHint\"\n matTooltipPosition=\"above\"\n >\n help\n </span>\n</div>\n<div class=\"flex flex-row items-center gap-4 h-[48px]\">\n <mat-radio-group\n aria-labelledby=\"example-radio-group-label\"\n class=\"flex flex-row gap-[8px]\"\n [(ngModel)]=\"_service.accessServiceProtocol\"\n [disabled]=\"disabled\"\n (change)=\"resetAllFormFields()\"\n >\n <mat-radio-button\n *ngFor=\"let protocolOption of protocolOptions\"\n [value]=\"protocolOption.value\"\n >\n {{ protocolOption.label | translate }}\n </mat-radio-button>\n </mat-radio-group>\n</div>\n\n<div class=\"flex flex-col gap-4\">\n <gn-ui-url-input\n class=\"w-full\"\n (uploadClick)=\"handleUploadClick($event)\"\n (valueChange)=\"handleUrlValueChange($event)\"\n [disabled]=\"disabled\"\n [value]=\"_service.url?.toString()\"\n [showValidateButton]=\"activeLayerSuggestion\"\n [resetUrlOnChange]=\"resetUrlOnChange\"\n >\n <ng-content *ngIf=\"activeLayerSuggestion\">\n <ng-icon name=\"iconoirRefresh\"></ng-icon>\n </ng-content>\n </gn-ui-url-input>\n\n <p class=\"text-sm text-red-500 pl-4\" *ngIf=\"errorMessage\" translate>\n editor.record.form.field.onlineResource.edit.identifier.error\n </p>\n\n <gn-ui-text-input\n class=\"grow border-b border-gray-300 pb-4\"\n [(value)]=\"_service.identifierInService\"\n [placeholder]=\"getIdentifierPlaceholder() | translate\"\n data-cy=\"identifier-in-service\"\n [disabled]=\"disabled\"\n *ngIf=\"\n !activeLayerSuggestion ||\n (_service.url && errorMessage) ||\n (modifyMode && (layers$ | async).length === 0)\n \"\n ></gn-ui-text-input>\n <gn-ui-autocomplete\n class=\"border-b border-gray-300 pb-4\"\n [placeholder]=\"\n 'editor.record.form.field.onlineResource.edit.identifier.select.label'\n | translate\n \"\n [action]=\"autoCompleteAction\"\n (itemSelected)=\"handleSelectValue($event)\"\n [displayWithFn]=\"displayWithFn\"\n [minCharacterCount]=\"0\"\n [clearOnSelection]=\"false\"\n *ngIf=\"activeLayerSuggestion && (layers$ | async)?.length > 0\"\n >\n </gn-ui-autocomplete>\n <gn-ui-button\n (buttonClick)=\"submit()\"\n [disabled]=\"disabled || !_service.identifierInService\"\n type=\"primary\"\n *ngIf=\"\n !modifyMode &&\n ((activeLayerSuggestion && (layers$ | async)) ||\n !activeLayerSuggestion ||\n (_service.url && errorMessage))\n \"\n >\n <span class=\"text-white font-bold\" translate>\n editor.record.form.field.onlineResource.edit.identifier.submit</span\n >\n </gn-ui-button>\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: AutocompleteComponent, selector: "gn-ui-autocomplete", inputs: ["placeholder", "enterButton", "action", "value", "clearOnSelection", "preventCompleteOnSelection", "autoFocus", "minCharacterCount", "allowSubmit", "forceTrackPosition", "displayWithFn"], outputs: ["itemSelected", "inputSubmitted", "inputCleared", "isSearchActive"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatRadioModule }, { kind: "directive", type: i4.MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: i4.MatRadioButton, selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioButton"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "component", type: TextInputComponent, selector: "gn-ui-text-input", inputs: ["value", "extraClass", "placeholder", "required", "disabled"], outputs: ["valueChange"] }, { kind: "directive", type: TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: UrlInputComponent, selector: "gn-ui-url-input", inputs: ["value", "extraClass", "placeholder", "disabled", "showValidateButton", "resetUrlOnChange"], outputs: ["valueChange", "uploadClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
141
140
|
}
|
|
142
141
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OnlineServiceResourceInputComponent, decorators: [{
|
|
143
142
|
type: Component,
|
|
@@ -150,7 +149,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
150
149
|
MatRadioModule,
|
|
151
150
|
NgIconComponent,
|
|
152
151
|
TextInputComponent,
|
|
153
|
-
|
|
152
|
+
TranslateDirective,
|
|
153
|
+
TranslatePipe,
|
|
154
154
|
UrlInputComponent,
|
|
155
155
|
], providers: [
|
|
156
156
|
provideIcons({ iconoirRefresh }),
|
|
@@ -169,4 +169,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
169
169
|
}], serviceChange: [{
|
|
170
170
|
type: Output
|
|
171
171
|
}] } });
|
|
172
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25saW5lLXNlcnZpY2UtcmVzb3VyY2UtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL2VkaXRvci9zcmMvbGliL2NvbXBvbmVudHMvb25saW5lLXNlcnZpY2UtcmVzb3VyY2UtaW5wdXQvb25saW5lLXNlcnZpY2UtcmVzb3VyY2UtaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL2VkaXRvci9zcmMvbGliL2NvbXBvbmVudHMvb25saW5lLXNlcnZpY2UtcmVzb3VyY2UtaW5wdXQvb25saW5lLXNlcnZpY2UtcmVzb3VyY2UtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzlDLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDNUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBQ3hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBQzVELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTtBQUtoRSxPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLGVBQWUsRUFDZixrQkFBa0IsRUFDbEIsaUJBQWlCLEdBQ2xCLE1BQU0seUNBQXlDLENBQUE7QUFDaEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxNQUFNLDJDQUEyQyxDQUFBO0FBQ3hGLE9BQU8sRUFDTCxlQUFlLEVBQ2YsWUFBWSxFQUNaLG9CQUFvQixHQUNyQixN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QUFtQztrQkF6Qi9DLFNBQVM7K0JBQ0UscUNBQXFDLG1CQUc5Qix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUDt3QkFDUCxxQkFBcUI7d0JBQ3JCLGVBQWU7d0JBQ2YsWUFBWTt3QkFDWixXQUFXO3dCQUNYLGdCQUFnQjt3QkFDaEIsY0FBYzt3QkFDZCxlQUFlO3dCQUNmLGtCQUFrQjt3QkFDbEIsZUFBZTt3QkFDZixpQkFBaUI7cUJBQ2xCLGFBQ1U7d0JBQ1QsWUFBWSxDQUFDLEVBQUUsY0FBYyxFQUFFLENBQUM7d0JBQ2hDLG9CQUFvQixDQUFDOzRCQUNuQixJQUFJLEVBQUUsT0FBTzt5QkFDZCxDQUFDO3FCQUNIO3NGQUlZLE9BQU87c0JBQW5CLEtBQUs7Z0JBR0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0ksYUFBYTtzQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJ1xuaW1wb3J0IHsgTWF0UmFkaW9Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9yYWRpbydcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJ1xuaW1wb3J0IHsgbWFya2VyIH0gZnJvbSAnQGJpZXNiamVyZy9uZ3gtdHJhbnNsYXRlLWV4dHJhY3QtbWFya2VyJ1xuaW1wb3J0IHtcbiAgRGF0YXNldFNlcnZpY2VEaXN0cmlidXRpb24sXG4gIFNlcnZpY2VQcm90b2NvbCxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuaW1wb3J0IHtcbiAgQXV0b2NvbXBsZXRlQ29tcG9uZW50LFxuICBCdXR0b25Db21wb25lbnQsXG4gIFRleHRJbnB1dENvbXBvbmVudCxcbiAgVXJsSW5wdXRDb21wb25lbnQsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvaW5wdXRzL3NyYydcbmltcG9ydCB7IGNyZWF0ZUZ1enp5RmlsdGVyLCBnZXRMYXllcnMgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvc2hhcmVkL3NyYydcbmltcG9ydCB7XG4gIE5nSWNvbkNvbXBvbmVudCxcbiAgcHJvdmlkZUljb25zLFxuICBwcm92aWRlTmdJY29uc0NvbmZpZyxcbn0gZnJvbSAnQG5nLWljb25zL2NvcmUnXG5pbXBvcnQgeyBpY29ub2lyUmVmcmVzaCB9IGZyb20gJ0BuZy1pY29ucy9pY29ub2lyJ1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcbmltcG9ydCB7XG4gIEJlaGF2aW9yU3ViamVjdCxcbiAgZGVib3VuY2VUaW1lLFxuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcbiAgT2JzZXJ2YWJsZSxcbiAgc3dpdGNoTWFwLFxufSBmcm9tICdyeGpzJ1xuXG5tYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5maWVsZC5vbmxpbmVSZXNvdXJjZS5lZGl0LmlkZW50aWZpZXIucGxhY2Vob2xkZXInKVxubWFya2VyKFxuICAnZWRpdG9yLnJlY29yZC5mb3JtLmZpZWxkLm9ubGluZVJlc291cmNlLmVkaXQuaWRlbnRpZmllci5wbGFjZWhvbGRlci53cHMnXG4pXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLW9ubGluZS1zZXJ2aWNlLXJlc291cmNlLWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL29ubGluZS1zZXJ2aWNlLXJlc291cmNlLWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vb25saW5lLXNlcnZpY2UtcmVzb3VyY2UtaW5wdXQuY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIEF1dG9jb21wbGV0ZUNvbXBvbmVudCxcbiAgICBCdXR0b25Db21wb25lbnQsXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXG4gICAgTWF0UmFkaW9Nb2R1bGUsXG4gICAgTmdJY29uQ29tcG9uZW50LFxuICAgIFRleHRJbnB1dENvbXBvbmVudCxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgVXJsSW5wdXRDb21wb25lbnQsXG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIHByb3ZpZGVJY29ucyh7IGljb25vaXJSZWZyZXNoIH0pLFxuICAgIHByb3ZpZGVOZ0ljb25zQ29uZmlnKHtcbiAgICAgIHNpemU6ICcxLjVlbScsXG4gICAgfSksXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIE9ubGluZVNlcnZpY2VSZXNvdXJjZUlucHV0Q29tcG9uZW50IHtcbiAgX3NlcnZpY2U6IERhdGFzZXRTZXJ2aWNlRGlzdHJpYnV0aW9uXG4gIEBJbnB1dCgpIHNldCBzZXJ2aWNlKHNlcnZpY2U6IERhdGFzZXRTZXJ2aWNlRGlzdHJpYnV0aW9uKSB7XG4gICAgdGhpcy5fc2VydmljZSA9IHsgLi4uc2VydmljZSB9XG4gIH1cbiAgQElucHV0KCkgcHJvdG9jb2xIaW50Pzogc3RyaW5nXG4gIEBJbnB1dCgpIGRpc2FibGVkPyA9IGZhbHNlXG4gIEBJbnB1dCgpIG1vZGlmeU1vZGU/ID0gZmFsc2VcbiAgQE91dHB1dCgpIHNlcnZpY2VDaGFuZ2U6IEV2ZW50RW1pdHRlcjxEYXRhc2V0U2VydmljZURpc3RyaWJ1dGlvbj4gPVxuICAgIG5ldyBFdmVudEVtaXR0ZXIoKVxuXG4gIGVycm9yTWVzc2FnZSA9IGZhbHNlXG4gIHJlc2V0VXJsT25DaGFuZ2UgPSBNYXRoLnJhbmRvbSgpXG5cbiAgbGF5ZXJzU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8eyBuYW1lPzogc3RyaW5nOyB0aXRsZT86IHN0cmluZyB9W10+KFtdKVxuICBsYXllcnMkOiBPYnNlcnZhYmxlPHsgbmFtZT86IHN0cmluZzsgdGl0bGU/OiBzdHJpbmcgfVtdPiA9XG4gICAgdGhpcy5sYXllcnNTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpXG5cbiAgcHJvdG9jb2xPcHRpb25zOiB7XG4gICAgbGFiZWw6IHN0cmluZ1xuICAgIHZhbHVlOiBTZXJ2aWNlUHJvdG9jb2xcbiAgfVtdID0gW1xuICAgIHtcbiAgICAgIGxhYmVsOiAnT0dDIEFQSScsXG4gICAgICB2YWx1ZTogJ29nY0ZlYXR1cmVzJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGxhYmVsOiAnV0ZTJyxcbiAgICAgIHZhbHVlOiAnd2ZzJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGxhYmVsOiAnV01TJyxcbiAgICAgIHZhbHVlOiAnd21zJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGxhYmVsOiAnV01UUycsXG4gICAgICB2YWx1ZTogJ3dtdHMnLFxuICAgIH0sXG4gICAge1xuICAgICAgbGFiZWw6ICdXUFMnLFxuICAgICAgdmFsdWU6ICd3cHMnLFxuICAgIH0sXG4gICAge1xuICAgICAgbGFiZWw6ICdFU1JJIFJFU1QnLFxuICAgICAgdmFsdWU6ICdlc3JpUmVzdCcsXG4gICAgfSxcbiAgICB7XG4gICAgICBsYWJlbDogbWFya2VyKCdlZGl0b3IucmVjb3JkLm9ubGluZVJlc291cmNlLnByb3RvY29sLm90aGVyJyksXG4gICAgICB2YWx1ZTogJ290aGVyJyxcbiAgICB9LFxuICBdXG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIGdldCBhY3RpdmVMYXllclN1Z2dlc3Rpb24oKSB7XG4gICAgcmV0dXJuICFbJ3dwcycsICdHUEZETCcsICdlc3JpUmVzdCcsICdvdGhlciddLmluY2x1ZGVzKFxuICAgICAgdGhpcy5fc2VydmljZS5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2xcbiAgICApXG4gIH1cblxuICBoYW5kbGVVcmxWYWx1ZUNoYW5nZSh1cmw6IHN0cmluZykge1xuICAgIHRoaXMuX3NlcnZpY2UudXJsID0gdXJsID8gbmV3IFVSTCh1cmwpIDogdW5kZWZpbmVkXG4gICAgdGhpcy5yZXNldExheWVyc1N1Z2dlc3Rpb24oKVxuICB9XG5cbiAgYXN5bmMgaGFuZGxlVXBsb2FkQ2xpY2sodXJsOiBzdHJpbmcpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgbGF5ZXJzID0gYXdhaXQgZ2V0TGF5ZXJzKHVybCwgdGhpcy5fc2VydmljZS5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wpXG5cbiAgICAgIGlmIChsYXllcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignTm8gbGF5ZXJzIGZvdW5kJylcbiAgICAgIH1cblxuICAgICAgdGhpcy5sYXllcnNTdWJqZWN0Lm5leHQoWy4uLmxheWVyc10pXG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSB0cnVlXG4gICAgICB0aGlzLmxheWVyc1N1YmplY3QubmV4dChbXSlcbiAgICB9XG5cbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKClcbiAgfVxuXG4gIHJlc2V0QWxsRm9ybUZpZWxkcygpIHtcbiAgICB0aGlzLnJlc2V0VXJsT25DaGFuZ2UgPSBNYXRoLnJhbmRvbSgpXG4gICAgdGhpcy5fc2VydmljZS51cmwgPSBudWxsXG4gICAgdGhpcy5yZXNldExheWVyc1N1Z2dlc3Rpb24oKVxuICB9XG5cbiAgcmVzZXRMYXllcnNTdWdnZXN0aW9uKCkge1xuICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gZmFsc2VcbiAgICB0aGlzLmxheWVyc1N1YmplY3QubmV4dChbXSlcbiAgICB0aGlzLl9zZXJ2aWNlLmlkZW50aWZpZXJJblNlcnZpY2UgPSBudWxsXG4gIH1cblxuICBzdWJtaXQoKSB7XG4gICAgdGhpcy5zZXJ2aWNlQ2hhbmdlLmVtaXQoe1xuICAgICAgLi4udGhpcy5fc2VydmljZSxcbiAgICAgIG5hbWU6IHRoaXMuX3NlcnZpY2UuaWRlbnRpZmllckluU2VydmljZSwgLy8gc2hvdWxkIHdlIGtlZXAgdGhlIGlkZW50aWZpZXJJblNlcnZpY2U/IHJlYWQtd3JpdGUgZHVwbGljYXRlIHdpdGggbmFtZVxuICAgIH0pXG4gICAgdGhpcy5fc2VydmljZS5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wgPSAnb2djRmVhdHVyZXMnXG4gICAgdGhpcy5yZXNldEFsbEZvcm1GaWVsZHMoKVxuICB9XG5cbiAgZ2V0SWRlbnRpZmllclBsYWNlaG9sZGVyKCk6IHN0cmluZyB7XG4gICAgY29uc3QgYmFzZUtleSA9XG4gICAgICAnZWRpdG9yLnJlY29yZC5mb3JtLmZpZWxkLm9ubGluZVJlc291cmNlLmVkaXQuaWRlbnRpZmllci5wbGFjZWhvbGRlcidcbiAgICByZXR1cm4gdGhpcy5fc2VydmljZS5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wgPT09ICd3cHMnXG4gICAgICA/IGAke2Jhc2VLZXl9Lndwc2BcbiAgICAgIDogYmFzZUtleVxuICB9XG5cbiAgLyoqXG4gICAqIGduLXVpLWF1dG9jb21wbGV0ZVxuICAgKi9cbiAgZGlzcGxheVdpdGhGbihpdGVtOiB7IG5hbWU6IHN0cmluZzsgdGl0bGU6IHN0cmluZyB9KSB7XG4gICAgcmV0dXJuIGl0ZW0udGl0bGVcbiAgICAgID8gYCR7aXRlbS50aXRsZX0gJHtpdGVtLm5hbWUgPyBgKCR7aXRlbS5uYW1lfSlgIDogJyd9YFxuICAgICAgOiBpdGVtLm5hbWVcbiAgfVxuXG4gIC8qKlxuICAgKiBnbi11aS1hdXRvY29tcGxldGVcbiAgICovXG4gIGF1dG9Db21wbGV0ZUFjdGlvbiA9IChxdWVyeTogc3RyaW5nKSA9PiB7XG4gICAgY29uc3QgZnV6enlGaWx0ZXIgPSBjcmVhdGVGdXp6eUZpbHRlcihxdWVyeSlcbiAgICByZXR1cm4gdGhpcy5sYXllcnMkLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKGxheWVycykgPT4gW1xuICAgICAgICBsYXllcnMuZmlsdGVyKChsYXllcikgPT4gZnV6enlGaWx0ZXIobGF5ZXIubmFtZSkpLFxuICAgICAgXSksXG4gICAgICBkZWJvdW5jZVRpbWUoMTAwKSxcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgICApXG4gIH1cblxuICAvKipcbiAgICogZ24tdWktYXV0b2NvbXBsZXRlXG4gICAqL1xuICBoYW5kbGVTZWxlY3RWYWx1ZSh2YWw6IHsgbmFtZTogc3RyaW5nOyB0aXRsZTogc3RyaW5nIH0pIHtcbiAgICB0aGlzLl9zZXJ2aWNlLmlkZW50aWZpZXJJblNlcnZpY2UgPSB2YWwubmFtZSAvLyBzaG91bGQgd2Uga2VlcCB0aGUgaWRlbnRpZmllckluU2VydmljZT8gcmVhZC13cml0ZSBkdXBsaWNhdGUgd2l0aCBuYW1lXG4gICAgdGhpcy5fc2VydmljZS5kZXNjcmlwdGlvbiA9IHZhbC50aXRsZVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBqdXN0aWZ5LWJldHdlZW5cIj5cbiAgPGgzIGNsYXNzPVwidGV4dC1bMTZweF0gZm9udC1ib2xkIHRleHQtbWFpbiBtYi1bMTJweF1cIiB0cmFuc2xhdGU+XG4gICAgZWRpdG9yLnJlY29yZC5mb3JtLmZpZWxkLm9ubGluZVJlc291cmNlLmVkaXQucHJvdG9jb2xcbiAgPC9oMz5cbiAgPHNwYW5cbiAgICAqbmdJZj1cInByb3RvY29sSGludFwiXG4gICAgY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkIG0tMiBnbi11aS1pY29uLXNtYWxsXCJcbiAgICBbbWF0VG9vbHRpcF09XCJwcm90b2NvbEhpbnRcIlxuICAgIG1hdFRvb2x0aXBQb3NpdGlvbj1cImFib3ZlXCJcbiAgPlxuICAgIGhlbHBcbiAgPC9zcGFuPlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBpdGVtcy1jZW50ZXIgZ2FwLTQgaC1bNDhweF1cIj5cbiAgPG1hdC1yYWRpby1ncm91cFxuICAgIGFyaWEtbGFiZWxsZWRieT1cImV4YW1wbGUtcmFkaW8tZ3JvdXAtbGFiZWxcIlxuICAgIGNsYXNzPVwiZmxleCBmbGV4LXJvdyBnYXAtWzhweF1cIlxuICAgIFsobmdNb2RlbCldPVwiX3NlcnZpY2UuYWNjZXNzU2VydmljZVByb3RvY29sXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIChjaGFuZ2UpPVwicmVzZXRBbGxGb3JtRmllbGRzKClcIlxuICA+XG4gICAgPG1hdC1yYWRpby1idXR0b25cbiAgICAgICpuZ0Zvcj1cImxldCBwcm90b2NvbE9wdGlvbiBvZiBwcm90b2NvbE9wdGlvbnNcIlxuICAgICAgW3ZhbHVlXT1cInByb3RvY29sT3B0aW9uLnZhbHVlXCJcbiAgICA+XG4gICAgICB7eyBwcm90b2NvbE9wdGlvbi5sYWJlbCB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvbWF0LXJhZGlvLWJ1dHRvbj5cbiAgPC9tYXQtcmFkaW8tZ3JvdXA+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZ2FwLTRcIj5cbiAgPGduLXVpLXVybC1pbnB1dFxuICAgIGNsYXNzPVwidy1mdWxsXCJcbiAgICAodXBsb2FkQ2xpY2spPVwiaGFuZGxlVXBsb2FkQ2xpY2soJGV2ZW50KVwiXG4gICAgKHZhbHVlQ2hhbmdlKT1cImhhbmRsZVVybFZhbHVlQ2hhbmdlKCRldmVudClcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW3ZhbHVlXT1cIl9zZXJ2aWNlLnVybD8udG9TdHJpbmcoKVwiXG4gICAgW3Nob3dWYWxpZGF0ZUJ1dHRvbl09XCJhY3RpdmVMYXllclN1Z2dlc3Rpb25cIlxuICAgIFtyZXNldFVybE9uQ2hhbmdlXT1cInJlc2V0VXJsT25DaGFuZ2VcIlxuICA+XG4gICAgPG5nLWNvbnRlbnQgKm5nSWY9XCJhY3RpdmVMYXllclN1Z2dlc3Rpb25cIj5cbiAgICAgIDxuZy1pY29uIG5hbWU9XCJpY29ub2lyUmVmcmVzaFwiPjwvbmctaWNvbj5cbiAgICA8L25nLWNvbnRlbnQ+XG4gIDwvZ24tdWktdXJsLWlucHV0PlxuXG4gIDxwIGNsYXNzPVwidGV4dC1zbSB0ZXh0LXJlZC01MDAgcGwtNFwiICpuZ0lmPVwiZXJyb3JNZXNzYWdlXCIgdHJhbnNsYXRlPlxuICAgIGVkaXRvci5yZWNvcmQuZm9ybS5maWVsZC5vbmxpbmVSZXNvdXJjZS5lZGl0LmlkZW50aWZpZXIuZXJyb3JcbiAgPC9wPlxuXG4gIDxnbi11aS10ZXh0LWlucHV0XG4gICAgY2xhc3M9XCJncm93IGJvcmRlci1iIGJvcmRlci1ncmF5LTMwMCBwYi00XCJcbiAgICBbKHZhbHVlKV09XCJfc2VydmljZS5pZGVudGlmaWVySW5TZXJ2aWNlXCJcbiAgICBbcGxhY2Vob2xkZXJdPVwiZ2V0SWRlbnRpZmllclBsYWNlaG9sZGVyKCkgfCB0cmFuc2xhdGVcIlxuICAgIGRhdGEtY3k9XCJpZGVudGlmaWVyLWluLXNlcnZpY2VcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgKm5nSWY9XCJcbiAgICAgICFhY3RpdmVMYXllclN1Z2dlc3Rpb24gfHxcbiAgICAgIChfc2VydmljZS51cmwgJiYgZXJyb3JNZXNzYWdlKSB8fFxuICAgICAgKG1vZGlmeU1vZGUgJiYgKGxheWVycyQgfCBhc3luYykubGVuZ3RoID09PSAwKVxuICAgIFwiXG4gID48L2duLXVpLXRleHQtaW5wdXQ+XG4gIDxnbi11aS1hdXRvY29tcGxldGVcbiAgICBjbGFzcz1cImJvcmRlci1iIGJvcmRlci1ncmF5LTMwMCBwYi00XCJcbiAgICBbcGxhY2Vob2xkZXJdPVwiXG4gICAgICAnZWRpdG9yLnJlY29yZC5mb3JtLmZpZWxkLm9ubGluZVJlc291cmNlLmVkaXQuaWRlbnRpZmllci5zZWxlY3QubGFiZWwnXG4gICAgICAgIHwgdHJhbnNsYXRlXG4gICAgXCJcbiAgICBbYWN0aW9uXT1cImF1dG9Db21wbGV0ZUFjdGlvblwiXG4gICAgKGl0ZW1TZWxlY3RlZCk9XCJoYW5kbGVTZWxlY3RWYWx1ZSgkZXZlbnQpXCJcbiAgICBbZGlzcGxheVdpdGhGbl09XCJkaXNwbGF5V2l0aEZuXCJcbiAgICBbbWluQ2hhcmFjdGVyQ291bnRdPVwiMFwiXG4gICAgW2NsZWFyT25TZWxlY3Rpb25dPVwiZmFsc2VcIlxuICAgICpuZ0lmPVwiYWN0aXZlTGF5ZXJTdWdnZXN0aW9uICYmIChsYXllcnMkIHwgYXN5bmMpPy5sZW5ndGggPiAwXCJcbiAgPlxuICA8L2duLXVpLWF1dG9jb21wbGV0ZT5cbiAgPGduLXVpLWJ1dHRvblxuICAgIChidXR0b25DbGljayk9XCJzdWJtaXQoKVwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8ICFfc2VydmljZS5pZGVudGlmaWVySW5TZXJ2aWNlXCJcbiAgICB0eXBlPVwicHJpbWFyeVwiXG4gICAgKm5nSWY9XCJcbiAgICAgICFtb2RpZnlNb2RlICYmXG4gICAgICAoKGFjdGl2ZUxheWVyU3VnZ2VzdGlvbiAmJiAobGF5ZXJzJCB8IGFzeW5jKSkgfHxcbiAgICAgICAgIWFjdGl2ZUxheWVyU3VnZ2VzdGlvbiB8fFxuICAgICAgICAoX3NlcnZpY2UudXJsICYmIGVycm9yTWVzc2FnZSkpXG4gICAgXCJcbiAgPlxuICAgIDxzcGFuIGNsYXNzPVwidGV4dC13aGl0ZSBmb250LWJvbGRcIiB0cmFuc2xhdGU+XG4gICAgICBlZGl0b3IucmVjb3JkLmZvcm0uZmllbGQub25saW5lUmVzb3VyY2UuZWRpdC5pZGVudGlmaWVyLnN1Ym1pdDwvc3BhblxuICAgID5cbiAgPC9nbi11aS1idXR0b24+XG48L2Rpdj5cbiJdfQ==
|
|
172
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25saW5lLXNlcnZpY2UtcmVzb3VyY2UtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL2VkaXRvci9zcmMvbGliL2NvbXBvbmVudHMvb25saW5lLXNlcnZpY2UtcmVzb3VyY2UtaW5wdXQvb25saW5lLXNlcnZpY2UtcmVzb3VyY2UtaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL2VkaXRvci9zcmMvbGliL2NvbXBvbmVudHMvb25saW5lLXNlcnZpY2UtcmVzb3VyY2UtaW5wdXQvb25saW5lLXNlcnZpY2UtcmVzb3VyY2UtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzlDLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDNUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBQ3hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBQzVELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTtBQUtoRSxPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLGVBQWUsRUFDZixrQkFBa0IsRUFDbEIsaUJBQWlCLEdBQ2xCLE1BQU0seUNBQXlDLENBQUE7QUFDaEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxNQUFNLDJDQUEyQyxDQUFBO0FBQ3hGLE9BQU8sRUFDTCxlQUFlLEVBQ2YsWUFBWSxFQUNaLG9CQUFvQixHQUNyQixN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QWEsa0RBQ2IsaUJBQWlCOzs0RkFTUixtQ0FBbUM7a0JBMUIvQyxTQUFTOytCQUNFLHFDQUFxQyxtQkFHOUIsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1A7d0JBQ1AscUJBQXFCO3dCQUNyQixlQUFlO3dCQUNmLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxnQkFBZ0I7d0JBQ2hCLGNBQWM7d0JBQ2QsZUFBZTt3QkFDZixrQkFBa0I7d0JBQ2xCLGtCQUFrQjt3QkFDbEIsYUFBYTt3QkFDYixpQkFBaUI7cUJBQ2xCLGFBQ1U7d0JBQ1QsWUFBWSxDQUFDLEVBQUUsY0FBYyxFQUFFLENBQUM7d0JBQ2hDLG9CQUFvQixDQUFDOzRCQUNuQixJQUFJLEVBQUUsT0FBTzt5QkFDZCxDQUFDO3FCQUNIO3NGQUlZLE9BQU87c0JBQW5CLEtBQUs7Z0JBR0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0ksYUFBYTtzQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJ1xuaW1wb3J0IHsgTWF0UmFkaW9Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9yYWRpbydcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJ1xuaW1wb3J0IHsgbWFya2VyIH0gZnJvbSAnQGJpZXNiamVyZy9uZ3gtdHJhbnNsYXRlLWV4dHJhY3QtbWFya2VyJ1xuaW1wb3J0IHtcbiAgRGF0YXNldFNlcnZpY2VEaXN0cmlidXRpb24sXG4gIFNlcnZpY2VQcm90b2NvbCxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuaW1wb3J0IHtcbiAgQXV0b2NvbXBsZXRlQ29tcG9uZW50LFxuICBCdXR0b25Db21wb25lbnQsXG4gIFRleHRJbnB1dENvbXBvbmVudCxcbiAgVXJsSW5wdXRDb21wb25lbnQsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvaW5wdXRzL3NyYydcbmltcG9ydCB7IGNyZWF0ZUZ1enp5RmlsdGVyLCBnZXRMYXllcnMgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvc2hhcmVkL3NyYydcbmltcG9ydCB7XG4gIE5nSWNvbkNvbXBvbmVudCxcbiAgcHJvdmlkZUljb25zLFxuICBwcm92aWRlTmdJY29uc0NvbmZpZyxcbn0gZnJvbSAnQG5nLWljb25zL2NvcmUnXG5pbXBvcnQgeyBpY29ub2lyUmVmcmVzaCB9IGZyb20gJ0BuZy1pY29ucy9pY29ub2lyJ1xuaW1wb3J0IHsgVHJhbnNsYXRlRGlyZWN0aXZlLCBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcbmltcG9ydCB7XG4gIEJlaGF2aW9yU3ViamVjdCxcbiAgZGVib3VuY2VUaW1lLFxuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcbiAgT2JzZXJ2YWJsZSxcbiAgc3dpdGNoTWFwLFxufSBmcm9tICdyeGpzJ1xuXG5tYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5maWVsZC5vbmxpbmVSZXNvdXJjZS5lZGl0LmlkZW50aWZpZXIucGxhY2Vob2xkZXInKVxubWFya2VyKFxuICAnZWRpdG9yLnJlY29yZC5mb3JtLmZpZWxkLm9ubGluZVJlc291cmNlLmVkaXQuaWRlbnRpZmllci5wbGFjZWhvbGRlci53cHMnXG4pXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLW9ubGluZS1zZXJ2aWNlLXJlc291cmNlLWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL29ubGluZS1zZXJ2aWNlLXJlc291cmNlLWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vb25saW5lLXNlcnZpY2UtcmVzb3VyY2UtaW5wdXQuY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIEF1dG9jb21wbGV0ZUNvbXBvbmVudCxcbiAgICBCdXR0b25Db21wb25lbnQsXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXG4gICAgTWF0UmFkaW9Nb2R1bGUsXG4gICAgTmdJY29uQ29tcG9uZW50LFxuICAgIFRleHRJbnB1dENvbXBvbmVudCxcbiAgICBUcmFuc2xhdGVEaXJlY3RpdmUsXG4gICAgVHJhbnNsYXRlUGlwZSxcbiAgICBVcmxJbnB1dENvbXBvbmVudCxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgcHJvdmlkZUljb25zKHsgaWNvbm9pclJlZnJlc2ggfSksXG4gICAgcHJvdmlkZU5nSWNvbnNDb25maWcoe1xuICAgICAgc2l6ZTogJzEuNWVtJyxcbiAgICB9KSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgT25saW5lU2VydmljZVJlc291cmNlSW5wdXRDb21wb25lbnQge1xuICBfc2VydmljZTogRGF0YXNldFNlcnZpY2VEaXN0cmlidXRpb25cbiAgQElucHV0KCkgc2V0IHNlcnZpY2Uoc2VydmljZTogRGF0YXNldFNlcnZpY2VEaXN0cmlidXRpb24pIHtcbiAgICB0aGlzLl9zZXJ2aWNlID0geyAuLi5zZXJ2aWNlIH1cbiAgfVxuICBASW5wdXQoKSBwcm90b2NvbEhpbnQ/OiBzdHJpbmdcbiAgQElucHV0KCkgZGlzYWJsZWQ/ID0gZmFsc2VcbiAgQElucHV0KCkgbW9kaWZ5TW9kZT8gPSBmYWxzZVxuICBAT3V0cHV0KCkgc2VydmljZUNoYW5nZTogRXZlbnRFbWl0dGVyPERhdGFzZXRTZXJ2aWNlRGlzdHJpYnV0aW9uPiA9XG4gICAgbmV3IEV2ZW50RW1pdHRlcigpXG5cbiAgZXJyb3JNZXNzYWdlID0gZmFsc2VcbiAgcmVzZXRVcmxPbkNoYW5nZSA9IE1hdGgucmFuZG9tKClcblxuICBsYXllcnNTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDx7IG5hbWU/OiBzdHJpbmc7IHRpdGxlPzogc3RyaW5nIH1bXT4oW10pXG4gIGxheWVycyQ6IE9ic2VydmFibGU8eyBuYW1lPzogc3RyaW5nOyB0aXRsZT86IHN0cmluZyB9W10+ID1cbiAgICB0aGlzLmxheWVyc1N1YmplY3QuYXNPYnNlcnZhYmxlKClcblxuICBwcm90b2NvbE9wdGlvbnM6IHtcbiAgICBsYWJlbDogc3RyaW5nXG4gICAgdmFsdWU6IFNlcnZpY2VQcm90b2NvbFxuICB9W10gPSBbXG4gICAge1xuICAgICAgbGFiZWw6ICdPR0MgQVBJJyxcbiAgICAgIHZhbHVlOiAnb2djRmVhdHVyZXMnLFxuICAgIH0sXG4gICAge1xuICAgICAgbGFiZWw6ICdXRlMnLFxuICAgICAgdmFsdWU6ICd3ZnMnLFxuICAgIH0sXG4gICAge1xuICAgICAgbGFiZWw6ICdXTVMnLFxuICAgICAgdmFsdWU6ICd3bXMnLFxuICAgIH0sXG4gICAge1xuICAgICAgbGFiZWw6ICdXTVRTJyxcbiAgICAgIHZhbHVlOiAnd210cycsXG4gICAgfSxcbiAgICB7XG4gICAgICBsYWJlbDogJ1dQUycsXG4gICAgICB2YWx1ZTogJ3dwcycsXG4gICAgfSxcbiAgICB7XG4gICAgICBsYWJlbDogJ0VTUkkgUkVTVCcsXG4gICAgICB2YWx1ZTogJ2VzcmlSZXN0JyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGxhYmVsOiBtYXJrZXIoJ2VkaXRvci5yZWNvcmQub25saW5lUmVzb3VyY2UucHJvdG9jb2wub3RoZXInKSxcbiAgICAgIHZhbHVlOiAnb3RoZXInLFxuICAgIH0sXG4gIF1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgZ2V0IGFjdGl2ZUxheWVyU3VnZ2VzdGlvbigpIHtcbiAgICByZXR1cm4gIVsnd3BzJywgJ0dQRkRMJywgJ2VzcmlSZXN0JywgJ290aGVyJ10uaW5jbHVkZXMoXG4gICAgICB0aGlzLl9zZXJ2aWNlLmFjY2Vzc1NlcnZpY2VQcm90b2NvbFxuICAgIClcbiAgfVxuXG4gIGhhbmRsZVVybFZhbHVlQ2hhbmdlKHVybDogc3RyaW5nKSB7XG4gICAgdGhpcy5fc2VydmljZS51cmwgPSB1cmwgPyBuZXcgVVJMKHVybCkgOiB1bmRlZmluZWRcbiAgICB0aGlzLnJlc2V0TGF5ZXJzU3VnZ2VzdGlvbigpXG4gIH1cblxuICBhc3luYyBoYW5kbGVVcGxvYWRDbGljayh1cmw6IHN0cmluZykge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBsYXllcnMgPSBhd2FpdCBnZXRMYXllcnModXJsLCB0aGlzLl9zZXJ2aWNlLmFjY2Vzc1NlcnZpY2VQcm90b2NvbClcblxuICAgICAgaWYgKGxheWVycy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyBsYXllcnMgZm91bmQnKVxuICAgICAgfVxuXG4gICAgICB0aGlzLmxheWVyc1N1YmplY3QubmV4dChbLi4ubGF5ZXJzXSlcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IHRydWVcbiAgICAgIHRoaXMubGF5ZXJzU3ViamVjdC5uZXh0KFtdKVxuICAgIH1cblxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKVxuICB9XG5cbiAgcmVzZXRBbGxGb3JtRmllbGRzKCkge1xuICAgIHRoaXMucmVzZXRVcmxPbkNoYW5nZSA9IE1hdGgucmFuZG9tKClcbiAgICB0aGlzLl9zZXJ2aWNlLnVybCA9IG51bGxcbiAgICB0aGlzLnJlc2V0TGF5ZXJzU3VnZ2VzdGlvbigpXG4gIH1cblxuICByZXNldExheWVyc1N1Z2dlc3Rpb24oKSB7XG4gICAgdGhpcy5lcnJvck1lc3NhZ2UgPSBmYWxzZVxuICAgIHRoaXMubGF5ZXJzU3ViamVjdC5uZXh0KFtdKVxuICAgIHRoaXMuX3NlcnZpY2UuaWRlbnRpZmllckluU2VydmljZSA9IG51bGxcbiAgfVxuXG4gIHN1Ym1pdCgpIHtcbiAgICB0aGlzLnNlcnZpY2VDaGFuZ2UuZW1pdCh7XG4gICAgICAuLi50aGlzLl9zZXJ2aWNlLFxuICAgICAgbmFtZTogdGhpcy5fc2VydmljZS5pZGVudGlmaWVySW5TZXJ2aWNlLCAvLyBzaG91bGQgd2Uga2VlcCB0aGUgaWRlbnRpZmllckluU2VydmljZT8gcmVhZC13cml0ZSBkdXBsaWNhdGUgd2l0aCBuYW1lXG4gICAgfSlcbiAgICB0aGlzLl9zZXJ2aWNlLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCA9ICdvZ2NGZWF0dXJlcydcbiAgICB0aGlzLnJlc2V0QWxsRm9ybUZpZWxkcygpXG4gIH1cblxuICBnZXRJZGVudGlmaWVyUGxhY2Vob2xkZXIoKTogc3RyaW5nIHtcbiAgICBjb25zdCBiYXNlS2V5ID1cbiAgICAgICdlZGl0b3IucmVjb3JkLmZvcm0uZmllbGQub25saW5lUmVzb3VyY2UuZWRpdC5pZGVudGlmaWVyLnBsYWNlaG9sZGVyJ1xuICAgIHJldHVybiB0aGlzLl9zZXJ2aWNlLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCA9PT0gJ3dwcydcbiAgICAgID8gYCR7YmFzZUtleX0ud3BzYFxuICAgICAgOiBiYXNlS2V5XG4gIH1cblxuICAvKipcbiAgICogZ24tdWktYXV0b2NvbXBsZXRlXG4gICAqL1xuICBkaXNwbGF5V2l0aEZuKGl0ZW06IHsgbmFtZTogc3RyaW5nOyB0aXRsZTogc3RyaW5nIH0pIHtcbiAgICByZXR1cm4gaXRlbS50aXRsZVxuICAgICAgPyBgJHtpdGVtLnRpdGxlfSAke2l0ZW0ubmFtZSA/IGAoJHtpdGVtLm5hbWV9KWAgOiAnJ31gXG4gICAgICA6IGl0ZW0ubmFtZVxuICB9XG5cbiAgLyoqXG4gICAqIGduLXVpLWF1dG9jb21wbGV0ZVxuICAgKi9cbiAgYXV0b0NvbXBsZXRlQWN0aW9uID0gKHF1ZXJ5OiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCBmdXp6eUZpbHRlciA9IGNyZWF0ZUZ1enp5RmlsdGVyKHF1ZXJ5KVxuICAgIHJldHVybiB0aGlzLmxheWVycyQucGlwZShcbiAgICAgIHN3aXRjaE1hcCgobGF5ZXJzKSA9PiBbXG4gICAgICAgIGxheWVycy5maWx0ZXIoKGxheWVyKSA9PiBmdXp6eUZpbHRlcihsYXllci5uYW1lKSksXG4gICAgICBdKSxcbiAgICAgIGRlYm91bmNlVGltZSgxMDApLFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICAgIClcbiAgfVxuXG4gIC8qKlxuICAgKiBnbi11aS1hdXRvY29tcGxldGVcbiAgICovXG4gIGhhbmRsZVNlbGVjdFZhbHVlKHZhbDogeyBuYW1lOiBzdHJpbmc7IHRpdGxlOiBzdHJpbmcgfSkge1xuICAgIHRoaXMuX3NlcnZpY2UuaWRlbnRpZmllckluU2VydmljZSA9IHZhbC5uYW1lIC8vIHNob3VsZCB3ZSBrZWVwIHRoZSBpZGVudGlmaWVySW5TZXJ2aWNlPyByZWFkLXdyaXRlIGR1cGxpY2F0ZSB3aXRoIG5hbWVcbiAgICB0aGlzLl9zZXJ2aWNlLmRlc2NyaXB0aW9uID0gdmFsLnRpdGxlXG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGp1c3RpZnktYmV0d2VlblwiPlxuICA8aDMgY2xhc3M9XCJ0ZXh0LVsxNnB4XSBmb250LWJvbGQgdGV4dC1tYWluIG1iLVsxMnB4XVwiIHRyYW5zbGF0ZT5cbiAgICBlZGl0b3IucmVjb3JkLmZvcm0uZmllbGQub25saW5lUmVzb3VyY2UuZWRpdC5wcm90b2NvbFxuICA8L2gzPlxuICA8c3BhblxuICAgICpuZ0lmPVwicHJvdG9jb2xIaW50XCJcbiAgICBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWQgbS0yIGduLXVpLWljb24tc21hbGxcIlxuICAgIFttYXRUb29sdGlwXT1cInByb3RvY29sSGludFwiXG4gICAgbWF0VG9vbHRpcFBvc2l0aW9uPVwiYWJvdmVcIlxuICA+XG4gICAgaGVscFxuICA8L3NwYW4+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGl0ZW1zLWNlbnRlciBnYXAtNCBoLVs0OHB4XVwiPlxuICA8bWF0LXJhZGlvLWdyb3VwXG4gICAgYXJpYS1sYWJlbGxlZGJ5PVwiZXhhbXBsZS1yYWRpby1ncm91cC1sYWJlbFwiXG4gICAgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGdhcC1bOHB4XVwiXG4gICAgWyhuZ01vZGVsKV09XCJfc2VydmljZS5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2xcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgKGNoYW5nZSk9XCJyZXNldEFsbEZvcm1GaWVsZHMoKVwiXG4gID5cbiAgICA8bWF0LXJhZGlvLWJ1dHRvblxuICAgICAgKm5nRm9yPVwibGV0IHByb3RvY29sT3B0aW9uIG9mIHByb3RvY29sT3B0aW9uc1wiXG4gICAgICBbdmFsdWVdPVwicHJvdG9jb2xPcHRpb24udmFsdWVcIlxuICAgID5cbiAgICAgIHt7IHByb3RvY29sT3B0aW9uLmxhYmVsIHwgdHJhbnNsYXRlIH19XG4gICAgPC9tYXQtcmFkaW8tYnV0dG9uPlxuICA8L21hdC1yYWRpby1ncm91cD5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtNFwiPlxuICA8Z24tdWktdXJsLWlucHV0XG4gICAgY2xhc3M9XCJ3LWZ1bGxcIlxuICAgICh1cGxvYWRDbGljayk9XCJoYW5kbGVVcGxvYWRDbGljaygkZXZlbnQpXCJcbiAgICAodmFsdWVDaGFuZ2UpPVwiaGFuZGxlVXJsVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICBbdmFsdWVdPVwiX3NlcnZpY2UudXJsPy50b1N0cmluZygpXCJcbiAgICBbc2hvd1ZhbGlkYXRlQnV0dG9uXT1cImFjdGl2ZUxheWVyU3VnZ2VzdGlvblwiXG4gICAgW3Jlc2V0VXJsT25DaGFuZ2VdPVwicmVzZXRVcmxPbkNoYW5nZVwiXG4gID5cbiAgICA8bmctY29udGVudCAqbmdJZj1cImFjdGl2ZUxheWVyU3VnZ2VzdGlvblwiPlxuICAgICAgPG5nLWljb24gbmFtZT1cImljb25vaXJSZWZyZXNoXCI+PC9uZy1pY29uPlxuICAgIDwvbmctY29udGVudD5cbiAgPC9nbi11aS11cmwtaW5wdXQ+XG5cbiAgPHAgY2xhc3M9XCJ0ZXh0LXNtIHRleHQtcmVkLTUwMCBwbC00XCIgKm5nSWY9XCJlcnJvck1lc3NhZ2VcIiB0cmFuc2xhdGU+XG4gICAgZWRpdG9yLnJlY29yZC5mb3JtLmZpZWxkLm9ubGluZVJlc291cmNlLmVkaXQuaWRlbnRpZmllci5lcnJvclxuICA8L3A+XG5cbiAgPGduLXVpLXRleHQtaW5wdXRcbiAgICBjbGFzcz1cImdyb3cgYm9yZGVyLWIgYm9yZGVyLWdyYXktMzAwIHBiLTRcIlxuICAgIFsodmFsdWUpXT1cIl9zZXJ2aWNlLmlkZW50aWZpZXJJblNlcnZpY2VcIlxuICAgIFtwbGFjZWhvbGRlcl09XCJnZXRJZGVudGlmaWVyUGxhY2Vob2xkZXIoKSB8IHRyYW5zbGF0ZVwiXG4gICAgZGF0YS1jeT1cImlkZW50aWZpZXItaW4tc2VydmljZVwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAqbmdJZj1cIlxuICAgICAgIWFjdGl2ZUxheWVyU3VnZ2VzdGlvbiB8fFxuICAgICAgKF9zZXJ2aWNlLnVybCAmJiBlcnJvck1lc3NhZ2UpIHx8XG4gICAgICAobW9kaWZ5TW9kZSAmJiAobGF5ZXJzJCB8IGFzeW5jKS5sZW5ndGggPT09IDApXG4gICAgXCJcbiAgPjwvZ24tdWktdGV4dC1pbnB1dD5cbiAgPGduLXVpLWF1dG9jb21wbGV0ZVxuICAgIGNsYXNzPVwiYm9yZGVyLWIgYm9yZGVyLWdyYXktMzAwIHBiLTRcIlxuICAgIFtwbGFjZWhvbGRlcl09XCJcbiAgICAgICdlZGl0b3IucmVjb3JkLmZvcm0uZmllbGQub25saW5lUmVzb3VyY2UuZWRpdC5pZGVudGlmaWVyLnNlbGVjdC5sYWJlbCdcbiAgICAgICAgfCB0cmFuc2xhdGVcbiAgICBcIlxuICAgIFthY3Rpb25dPVwiYXV0b0NvbXBsZXRlQWN0aW9uXCJcbiAgICAoaXRlbVNlbGVjdGVkKT1cImhhbmRsZVNlbGVjdFZhbHVlKCRldmVudClcIlxuICAgIFtkaXNwbGF5V2l0aEZuXT1cImRpc3BsYXlXaXRoRm5cIlxuICAgIFttaW5DaGFyYWN0ZXJDb3VudF09XCIwXCJcbiAgICBbY2xlYXJPblNlbGVjdGlvbl09XCJmYWxzZVwiXG4gICAgKm5nSWY9XCJhY3RpdmVMYXllclN1Z2dlc3Rpb24gJiYgKGxheWVycyQgfCBhc3luYyk/Lmxlbmd0aCA+IDBcIlxuICA+XG4gIDwvZ24tdWktYXV0b2NvbXBsZXRlPlxuICA8Z24tdWktYnV0dG9uXG4gICAgKGJ1dHRvbkNsaWNrKT1cInN1Ym1pdCgpXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgIV9zZXJ2aWNlLmlkZW50aWZpZXJJblNlcnZpY2VcIlxuICAgIHR5cGU9XCJwcmltYXJ5XCJcbiAgICAqbmdJZj1cIlxuICAgICAgIW1vZGlmeU1vZGUgJiZcbiAgICAgICgoYWN0aXZlTGF5ZXJTdWdnZXN0aW9uICYmIChsYXllcnMkIHwgYXN5bmMpKSB8fFxuICAgICAgICAhYWN0aXZlTGF5ZXJTdWdnZXN0aW9uIHx8XG4gICAgICAgIChfc2VydmljZS51cmwgJiYgZXJyb3JNZXNzYWdlKSlcbiAgICBcIlxuICA+XG4gICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXdoaXRlIGZvbnQtYm9sZFwiIHRyYW5zbGF0ZT5cbiAgICAgIGVkaXRvci5yZWNvcmQuZm9ybS5maWVsZC5vbmxpbmVSZXNvdXJjZS5lZGl0LmlkZW50aWZpZXIuc3VibWl0PC9zcGFuXG4gICAgPlxuICA8L2duLXVpLWJ1dHRvbj5cbjwvZGl2PlxuIl19
|
|
@@ -2,14 +2,12 @@ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, } from
|
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
3
|
import { SortableListComponent } from '../../../../../../../../../libs/ui/layout/src';
|
|
4
4
|
import { ConstraintCardComponent } from '../../../constraint-card/constraint-card.component';
|
|
5
|
-
import { ButtonComponent
|
|
5
|
+
import { ButtonComponent } from '../../../../../../../../../libs/ui/inputs/src';
|
|
6
6
|
import { marker } from '@biesbjerg/ngx-translate-extract-marker';
|
|
7
|
-
import {
|
|
7
|
+
import { TranslatePipe } from '@ngx-translate/core';
|
|
8
8
|
import { NgIconComponent, provideIcons, provideNgIconsConfig, } from '@ng-icons/core';
|
|
9
9
|
import { iconoirPlus } from '@ng-icons/iconoir';
|
|
10
10
|
import * as i0 from "@angular/core";
|
|
11
|
-
import * as i1 from "../../../../../../../../ui/inputs/src/lib/button/button.component";
|
|
12
|
-
import * as i2 from "@ngx-translate/core";
|
|
13
11
|
marker('editor.record.form.constraint.add.legalConstraints');
|
|
14
12
|
marker('editor.record.form.constraint.add.securityConstraints');
|
|
15
13
|
marker('editor.record.form.constraint.add.otherConstraints');
|
|
@@ -46,7 +44,7 @@ export class FormFieldConstraintsComponent {
|
|
|
46
44
|
provideNgIconsConfig({
|
|
47
45
|
size: '1.5rem',
|
|
48
46
|
}),
|
|
49
|
-
], ngImport: i0, template: "<div class=\"w-full flex flex-col gap-2\" [attr.data-cy]=\"constraintType\">\n <span class=\"border-t border-gray-300 flex grow pb-[32px]\"></span>\n <span class=\"font-bold mb-3\">{{ constraintsHeader | translate }}</span>\n <gn-ui-button\n type=\"gray\"\n (buttonClick)=\"addConstraintSectionToDisplay()\"\n data-cy=\"add-constraint-btn\"\n >\n <ng-icon name=\"iconoirPlus\" class=\"text-primary\"></ng-icon>\n <span>{{ additionalConstraintsButtonLabel | translate }}</span>\n </gn-ui-button>\n <gn-ui-sortable-list\n [items]=\"value\"\n (itemsOrderChange)=\"handleConstraintsOrderChange($event)\"\n [elementTemplate]=\"constraintTemplate\"\n ></gn-ui-sortable-list>\n <ng-template #constraintTemplate let-constraint let-index=\"index\">\n <gn-ui-constraint-card\n [label]=\"label\"\n [constraint]=\"constraint\"\n (constraintChange)=\"handleConstraintChange($event, index)\"\n ></gn-ui-constraint-card>\n </ng-template>\n</div>\n", styles: [":host{--gn-ui-button-padding: 8px 8px;--gn-ui-button-rounded: 8px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: SortableListComponent, selector: "gn-ui-sortable-list", inputs: ["elementTemplate", "items"], outputs: ["itemsOrderChange"] }, { kind: "component", type: ConstraintCardComponent, selector: "gn-ui-constraint-card", inputs: ["label", "constraint"], outputs: ["constraintChange"] }, { kind: "
|
|
47
|
+
], ngImport: i0, template: "<div class=\"w-full flex flex-col gap-2\" [attr.data-cy]=\"constraintType\">\n <span class=\"border-t border-gray-300 flex grow pb-[32px]\"></span>\n <span class=\"font-bold mb-3\">{{ constraintsHeader | translate }}</span>\n <gn-ui-button\n type=\"gray\"\n (buttonClick)=\"addConstraintSectionToDisplay()\"\n data-cy=\"add-constraint-btn\"\n >\n <ng-icon name=\"iconoirPlus\" class=\"text-primary\"></ng-icon>\n <span>{{ additionalConstraintsButtonLabel | translate }}</span>\n </gn-ui-button>\n <gn-ui-sortable-list\n [items]=\"value\"\n (itemsOrderChange)=\"handleConstraintsOrderChange($event)\"\n [elementTemplate]=\"constraintTemplate\"\n ></gn-ui-sortable-list>\n <ng-template #constraintTemplate let-constraint let-index=\"index\">\n <gn-ui-constraint-card\n [label]=\"label\"\n [constraint]=\"constraint\"\n (constraintChange)=\"handleConstraintChange($event, index)\"\n ></gn-ui-constraint-card>\n </ng-template>\n</div>\n", styles: [":host{--gn-ui-button-padding: 8px 8px;--gn-ui-button-rounded: 8px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: SortableListComponent, selector: "gn-ui-sortable-list", inputs: ["elementTemplate", "items"], outputs: ["itemsOrderChange"] }, { kind: "component", type: ConstraintCardComponent, selector: "gn-ui-constraint-card", inputs: ["label", "constraint"], outputs: ["constraintChange"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
50
48
|
}
|
|
51
49
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormFieldConstraintsComponent, decorators: [{
|
|
52
50
|
type: Component,
|
|
@@ -54,10 +52,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
54
52
|
CommonModule,
|
|
55
53
|
SortableListComponent,
|
|
56
54
|
ConstraintCardComponent,
|
|
57
|
-
UiInputsModule,
|
|
58
55
|
ButtonComponent,
|
|
59
|
-
TranslateModule,
|
|
60
56
|
NgIconComponent,
|
|
57
|
+
TranslatePipe,
|
|
61
58
|
], providers: [
|
|
62
59
|
provideIcons({ iconoirPlus }),
|
|
63
60
|
provideNgIconsConfig({
|
|
@@ -73,4 +70,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
73
70
|
}], valueChange: [{
|
|
74
71
|
type: Output
|
|
75
72
|
}] } });
|
|
76
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC1jb25zdHJhaW50cy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZWRpdG9yL3NyYy9saWIvY29tcG9uZW50cy9yZWNvcmQtZm9ybS9mb3JtLWZpZWxkL2Zvcm0tZmllbGQtY29uc3RyYWludHMvZm9ybS1maWVsZC1jb25zdHJhaW50cy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZWRpdG9yL3NyYy9saWIvY29tcG9uZW50cy9yZWNvcmQtZm9ybS9mb3JtLWZpZWxkL2Zvcm0tZmllbGQtY29uc3RyYWludHMvZm9ybS1maWVsZC1jb25zdHJhaW50cy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sK0NBQStDLENBQUE7QUFDckYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sb0RBQW9ELENBQUE7QUFLNUYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLCtDQUErQyxDQUFBO0FBQy9FLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTtBQUNoRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDbkQsT0FBTyxFQUNMLGVBQWUsRUFDZixZQUFZLEVBQ1osb0JBQW9CLEdBQ3JCLE1BQU0sZ0JBQWdCLENBQUE7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFBOztBQUUvQyxNQUFNLENBQUMsb0RBQW9ELENBQUMsQ0FBQTtBQUM1RCxNQUFNLENBQUMsdURBQXVELENBQUMsQ0FBQTtBQUMvRCxNQUFNLENBQUMsb0RBQW9ELENBQUMsQ0FBQTtBQUM1RCxNQUFNLENBQUMsdURBQXVELENBQUMsQ0FBQTtBQUMvRCxNQUFNLENBQUMsMERBQTBELENBQUMsQ0FBQTtBQUNsRSxNQUFNLENBQUMsdURBQXVELENBQUMsQ0FBQTtBQXVCL0QsTUFBTSxPQUFPLDZCQUE2QjtJQXJCMUM7UUF5QlksZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBZ0IsQ0FBQTtRQUV4RCxzQkFBaUIsR0FBRyxFQUFFLENBQUE7UUFDdEIscUNBQWdDLEdBQUcsRUFBRSxDQUFBO0tBdUJ0QztJQXJCQyxRQUFRO1FBQ04sSUFBSSxDQUFDLGdDQUFnQyxHQUFHLHFDQUFxQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUE7UUFDbEcsSUFBSSxDQUFDLGlCQUFpQixHQUFHLHdDQUF3QyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUE7SUFDeEYsQ0FBQztJQUVELHNCQUFzQixDQUFDLFVBQXNCLEVBQUUsS0FBYTtRQUMxRCxNQUFNLFFBQVEsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ2hDLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxVQUFVLENBQUE7UUFDNUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUE7SUFDakMsQ0FBQztJQUVELDRCQUE0QixDQUFDLFdBQXlCO1FBQ3BELE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxDQUFBO1FBQzNDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUE7SUFDM0MsQ0FBQztJQUVELDZCQUE2QjtRQUMzQixNQUFNLGtCQUFrQixHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDMUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUEsQ0FBQyxPQUFPO1FBQzdDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUE7SUFDM0MsQ0FBQzsrR0E3QlUsNkJBQTZCO21HQUE3Qiw2QkFBNkIsa01BWDdCO1lBQ1QsWUFBWSxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUM7WUFDN0Isb0JBQW9CLENBQUM7Z0JBQ25CLElBQUksRUFBRSxRQUFRO2FBQ2YsQ0FBQztTQUNILDBCQy9DSCxrK0JBd0JBLDZIRFdJLFlBQVksK0JBQ1oscUJBQXFCLHFJQUNyQix1QkFBdUIsa0lBQ3ZCLGVBQWUsK0hBQ2YsZUFBZSx3R0FDZixhQUFhOzs0RkFhSiw2QkFBNkI7a0JBckJ6QyxTQUFTOytCQUNFLDhCQUE4QixXQUMvQjt3QkFDUCxZQUFZO3dCQUNaLHFCQUFxQjt3QkFDckIsdUJBQXVCO3dCQUN2QixlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsYUFBYTtxQkFDZCxhQUNVO3dCQUNULFlBQVksQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDO3dCQUM3QixvQkFBb0IsQ0FBQzs0QkFDbkIsSUFBSSxFQUFFLFFBQVE7eUJBQ2YsQ0FBQztxQkFDSCxtQkFHZ0IsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJOzhCQUdQLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDSSxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBTb3J0YWJsZUxpc3RDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2xheW91dC9zcmMnXG5pbXBvcnQgeyBDb25zdHJhaW50Q2FyZENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvbnN0cmFpbnQtY2FyZC9jb25zdHJhaW50LWNhcmQuY29tcG9uZW50J1xuaW1wb3J0IHtcbiAgQ2F0YWxvZ1JlY29yZEtleXMsXG4gIENvbnN0cmFpbnQsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3JlY29yZCdcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvaW5wdXRzL3NyYydcbmltcG9ydCB7IG1hcmtlciB9IGZyb20gJ0BiaWVzYmplcmcvbmd4LXRyYW5zbGF0ZS1leHRyYWN0LW1hcmtlcidcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuaW1wb3J0IHtcbiAgTmdJY29uQ29tcG9uZW50LFxuICBwcm92aWRlSWNvbnMsXG4gIHByb3ZpZGVOZ0ljb25zQ29uZmlnLFxufSBmcm9tICdAbmctaWNvbnMvY29yZSdcbmltcG9ydCB7IGljb25vaXJQbHVzIH0gZnJvbSAnQG5nLWljb25zL2ljb25vaXInXG5cbm1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLmNvbnN0cmFpbnQuYWRkLmxlZ2FsQ29uc3RyYWludHMnKVxubWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0uY29uc3RyYWludC5hZGQuc2VjdXJpdHlDb25zdHJhaW50cycpXG5tYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5jb25zdHJhaW50LmFkZC5vdGhlckNvbnN0cmFpbnRzJylcbm1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLmNvbnN0cmFpbnQuaGVhZGVyLmxlZ2FsQ29uc3RyYWludHMnKVxubWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0uY29uc3RyYWludC5oZWFkZXIuc2VjdXJpdHlDb25zdHJhaW50cycpXG5tYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5jb25zdHJhaW50LmhlYWRlci5vdGhlckNvbnN0cmFpbnRzJylcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktZm9ybS1maWVsZC1jb25zdHJhaW50cycsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgU29ydGFibGVMaXN0Q29tcG9uZW50LFxuICAgIENvbnN0cmFpbnRDYXJkQ29tcG9uZW50LFxuICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgICBOZ0ljb25Db21wb25lbnQsXG4gICAgVHJhbnNsYXRlUGlwZSxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgcHJvdmlkZUljb25zKHsgaWNvbm9pclBsdXMgfSksXG4gICAgcHJvdmlkZU5nSWNvbnNDb25maWcoe1xuICAgICAgc2l6ZTogJzEuNXJlbScsXG4gICAgfSksXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLWZpZWxkLWNvbnN0cmFpbnRzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZm9ybS1maWVsZC1jb25zdHJhaW50cy5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBGb3JtRmllbGRDb25zdHJhaW50c0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmdcbiAgQElucHV0KCkgdmFsdWU6IENvbnN0cmFpbnRbXVxuICBASW5wdXQoKSBjb25zdHJhaW50VHlwZTogQ2F0YWxvZ1JlY29yZEtleXNcbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxDb25zdHJhaW50W10+KClcblxuICBjb25zdHJhaW50c0hlYWRlciA9ICcnXG4gIGFkZGl0aW9uYWxDb25zdHJhaW50c0J1dHRvbkxhYmVsID0gJydcblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmFkZGl0aW9uYWxDb25zdHJhaW50c0J1dHRvbkxhYmVsID0gYGVkaXRvci5yZWNvcmQuZm9ybS5jb25zdHJhaW50LmFkZC4ke3RoaXMuY29uc3RyYWludFR5cGV9YFxuICAgIHRoaXMuY29uc3RyYWludHNIZWFkZXIgPSBgZWRpdG9yLnJlY29yZC5mb3JtLmNvbnN0cmFpbnQuaGVhZGVyLiR7dGhpcy5jb25zdHJhaW50VHlwZX1gXG4gIH1cblxuICBoYW5kbGVDb25zdHJhaW50Q2hhbmdlKGNvbnN0cmFpbnQ6IENvbnN0cmFpbnQsIGluZGV4OiBudW1iZXIpIHtcbiAgICBjb25zdCBuZXdWYWx1ZSA9IFsuLi50aGlzLnZhbHVlXVxuICAgIG5ld1ZhbHVlW2luZGV4XSA9IGNvbnN0cmFpbnRcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQobmV3VmFsdWUpXG4gIH1cblxuICBoYW5kbGVDb25zdHJhaW50c09yZGVyQ2hhbmdlKGNvbnN0cmFpbnRzOiBDb25zdHJhaW50W10pIHtcbiAgICBjb25zdCB1cGRhdGVkQ29uc3RyYWludHMgPSBbLi4uY29uc3RyYWludHNdXG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHVwZGF0ZWRDb25zdHJhaW50cylcbiAgfVxuXG4gIGFkZENvbnN0cmFpbnRTZWN0aW9uVG9EaXNwbGF5KCkge1xuICAgIGNvbnN0IHVwZGF0ZWRDb25zdHJhaW50cyA9IFsuLi50aGlzLnZhbHVlXVxuICAgIHVwZGF0ZWRDb25zdHJhaW50cy5wdXNoKHsgdGV4dDogJycgfSkgLy8gdXJsP1xuICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh1cGRhdGVkQ29uc3RyYWludHMpXG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ3LWZ1bGwgZmxleCBmbGV4LWNvbCBnYXAtMlwiIFthdHRyLmRhdGEtY3ldPVwiY29uc3RyYWludFR5cGVcIj5cbiAgPHNwYW4gY2xhc3M9XCJib3JkZXItdCBib3JkZXItZ3JheS0zMDAgZmxleCBncm93IHBiLVszMnB4XVwiPjwvc3Bhbj5cbiAgPHNwYW4gY2xhc3M9XCJmb250LWJvbGQgbWItM1wiPnt7IGNvbnN0cmFpbnRzSGVhZGVyIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICA8Z24tdWktYnV0dG9uXG4gICAgdHlwZT1cImdyYXlcIlxuICAgIChidXR0b25DbGljayk9XCJhZGRDb25zdHJhaW50U2VjdGlvblRvRGlzcGxheSgpXCJcbiAgICBkYXRhLWN5PVwiYWRkLWNvbnN0cmFpbnQtYnRuXCJcbiAgPlxuICAgIDxuZy1pY29uIG5hbWU9XCJpY29ub2lyUGx1c1wiIGNsYXNzPVwidGV4dC1wcmltYXJ5XCI+PC9uZy1pY29uPlxuICAgICZuYnNwOzxzcGFuPnt7IGFkZGl0aW9uYWxDb25zdHJhaW50c0J1dHRvbkxhYmVsIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICA8L2duLXVpLWJ1dHRvbj5cbiAgPGduLXVpLXNvcnRhYmxlLWxpc3RcbiAgICBbaXRlbXNdPVwidmFsdWVcIlxuICAgIChpdGVtc09yZGVyQ2hhbmdlKT1cImhhbmRsZUNvbnN0cmFpbnRzT3JkZXJDaGFuZ2UoJGV2ZW50KVwiXG4gICAgW2VsZW1lbnRUZW1wbGF0ZV09XCJjb25zdHJhaW50VGVtcGxhdGVcIlxuICA+PC9nbi11aS1zb3J0YWJsZS1saXN0PlxuICA8bmctdGVtcGxhdGUgI2NvbnN0cmFpbnRUZW1wbGF0ZSBsZXQtY29uc3RyYWludCBsZXQtaW5kZXg9XCJpbmRleFwiPlxuICAgIDxnbi11aS1jb25zdHJhaW50LWNhcmRcbiAgICAgIFtsYWJlbF09XCJsYWJlbFwiXG4gICAgICBbY29uc3RyYWludF09XCJjb25zdHJhaW50XCJcbiAgICAgIChjb25zdHJhaW50Q2hhbmdlKT1cImhhbmRsZUNvbnN0cmFpbnRDaGFuZ2UoJGV2ZW50LCBpbmRleClcIlxuICAgID48L2duLXVpLWNvbnN0cmFpbnQtY2FyZD5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuIl19
|
|
@@ -2,7 +2,7 @@ import { ChangeDetectionStrategy, Component, } from '@angular/core';
|
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
3
|
import { EditorFacade } from '../../../../+state/editor.facade';
|
|
4
4
|
import { ButtonComponent, CheckToggleComponent } from '../../../../../../../../../libs/ui/inputs/src';
|
|
5
|
-
import {
|
|
5
|
+
import { TranslatePipe } from '@ngx-translate/core';
|
|
6
6
|
import { combineLatest, distinctUntilChanged, firstValueFrom, map, Subject, takeUntil, } from 'rxjs';
|
|
7
7
|
import { marker } from '@biesbjerg/ngx-translate-extract-marker';
|
|
8
8
|
import { matchesNoApplicableConstraint, matchesNoKnownConstraint, NOT_APPLICABLE_CONSTRAINT, NOT_KNOWN_CONSTRAINT, } from './constraints.utils';
|
|
@@ -11,7 +11,6 @@ import { iconoirPlus } from '@ng-icons/iconoir';
|
|
|
11
11
|
import * as i0 from "@angular/core";
|
|
12
12
|
import * as i1 from "../../../../+state/editor.facade";
|
|
13
13
|
import * as i2 from "@angular/common";
|
|
14
|
-
import * as i3 from "@ngx-translate/core";
|
|
15
14
|
marker('editor.record.form.constraint.legalConstraints');
|
|
16
15
|
marker('editor.record.form.constraint.securityConstraints');
|
|
17
16
|
marker('editor.record.form.constraint.otherConstraints');
|
|
@@ -110,7 +109,7 @@ export class FormFieldConstraintsShortcutsComponent {
|
|
|
110
109
|
provideNgIconsConfig({
|
|
111
110
|
size: '1.5rem',
|
|
112
111
|
}),
|
|
113
|
-
], ngImport: i0, template: "<div class=\"flex flex-col gap-2 mb-2\" data-cy=\"constraints-shortcut-toggles\">\n <gn-ui-check-toggle\n [label]=\"'editor.record.form.constraint.not.applicable' | translate\"\n [value]=\"noApplicableConstraint$ | async\"\n (toggled)=\"onToggleChange('noApplicableConstraint', $event)\"\n >\n </gn-ui-check-toggle>\n <gn-ui-check-toggle\n [label]=\"'editor.record.form.constraint.not.known' | translate\"\n [value]=\"noKnownConstraint$ | async\"\n (toggled)=\"onToggleChange('noKnownConstraint', $event)\"\n >\n </gn-ui-check-toggle>\n</div>\n\n<div\n *ngIf=\"(anyToggleActivated$ | async) === false\"\n class=\"flex flex-row flex-wrap gap-2\"\n data-cy=\"constraints-shortcut-btns\"\n>\n <ng-container *ngFor=\"let constraint of constraintButtonChoices\">\n <gn-ui-button\n type=\"gray\"\n (buttonClick)=\"addConstraintSectionToDisplay(constraint)\"\n [disabled]=\"isConstraintButtonDisabled$(constraint) | async\"\n >\n <ng-icon name=\"iconoirPlus\" class=\"text-primary\"></ng-icon>\n \n <span>{{\n 'editor.record.form.constraint.' + constraint | translate\n }}</span>\n </gn-ui-button>\n </ng-container>\n</div>\n", styles: [":host{--gn-ui-button-padding: 8px 8px;--gn-ui-button-rounded: 8px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "component", type: CheckToggleComponent, selector: "gn-ui-check-toggle", inputs: ["title", "label", "value", "color"], outputs: ["toggled"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "
|
|
112
|
+
], ngImport: i0, template: "<div class=\"flex flex-col gap-2 mb-2\" data-cy=\"constraints-shortcut-toggles\">\n <gn-ui-check-toggle\n [label]=\"'editor.record.form.constraint.not.applicable' | translate\"\n [value]=\"noApplicableConstraint$ | async\"\n (toggled)=\"onToggleChange('noApplicableConstraint', $event)\"\n >\n </gn-ui-check-toggle>\n <gn-ui-check-toggle\n [label]=\"'editor.record.form.constraint.not.known' | translate\"\n [value]=\"noKnownConstraint$ | async\"\n (toggled)=\"onToggleChange('noKnownConstraint', $event)\"\n >\n </gn-ui-check-toggle>\n</div>\n\n<div\n *ngIf=\"(anyToggleActivated$ | async) === false\"\n class=\"flex flex-row flex-wrap gap-2\"\n data-cy=\"constraints-shortcut-btns\"\n>\n <ng-container *ngFor=\"let constraint of constraintButtonChoices\">\n <gn-ui-button\n type=\"gray\"\n (buttonClick)=\"addConstraintSectionToDisplay(constraint)\"\n [disabled]=\"isConstraintButtonDisabled$(constraint) | async\"\n >\n <ng-icon name=\"iconoirPlus\" class=\"text-primary\"></ng-icon>\n \n <span>{{\n 'editor.record.form.constraint.' + constraint | translate\n }}</span>\n </gn-ui-button>\n </ng-container>\n</div>\n", styles: [":host{--gn-ui-button-padding: 8px 8px;--gn-ui-button-rounded: 8px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "component", type: CheckToggleComponent, selector: "gn-ui-check-toggle", inputs: ["title", "label", "value", "color"], outputs: ["toggled"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
114
113
|
}
|
|
115
114
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormFieldConstraintsShortcutsComponent, decorators: [{
|
|
116
115
|
type: Component,
|
|
@@ -118,7 +117,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
118
117
|
CommonModule,
|
|
119
118
|
CheckToggleComponent,
|
|
120
119
|
ButtonComponent,
|
|
121
|
-
|
|
120
|
+
TranslatePipe,
|
|
122
121
|
NgIconComponent,
|
|
123
122
|
], providers: [
|
|
124
123
|
provideIcons({ iconoirPlus }),
|
|
@@ -127,4 +126,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
127
126
|
}),
|
|
128
127
|
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"flex flex-col gap-2 mb-2\" data-cy=\"constraints-shortcut-toggles\">\n <gn-ui-check-toggle\n [label]=\"'editor.record.form.constraint.not.applicable' | translate\"\n [value]=\"noApplicableConstraint$ | async\"\n (toggled)=\"onToggleChange('noApplicableConstraint', $event)\"\n >\n </gn-ui-check-toggle>\n <gn-ui-check-toggle\n [label]=\"'editor.record.form.constraint.not.known' | translate\"\n [value]=\"noKnownConstraint$ | async\"\n (toggled)=\"onToggleChange('noKnownConstraint', $event)\"\n >\n </gn-ui-check-toggle>\n</div>\n\n<div\n *ngIf=\"(anyToggleActivated$ | async) === false\"\n class=\"flex flex-row flex-wrap gap-2\"\n data-cy=\"constraints-shortcut-btns\"\n>\n <ng-container *ngFor=\"let constraint of constraintButtonChoices\">\n <gn-ui-button\n type=\"gray\"\n (buttonClick)=\"addConstraintSectionToDisplay(constraint)\"\n [disabled]=\"isConstraintButtonDisabled$(constraint) | async\"\n >\n <ng-icon name=\"iconoirPlus\" class=\"text-primary\"></ng-icon>\n \n <span>{{\n 'editor.record.form.constraint.' + constraint | translate\n }}</span>\n </gn-ui-button>\n </ng-container>\n</div>\n", styles: [":host{--gn-ui-button-padding: 8px 8px;--gn-ui-button-rounded: 8px}\n"] }]
|
|
129
128
|
}], ctorParameters: () => [{ type: i1.EditorFacade }] });
|
|
130
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC1jb25zdHJhaW50cy1zaG9ydGN1dHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL2VkaXRvci9zcmMvbGliL2NvbXBvbmVudHMvcmVjb3JkLWZvcm0vZm9ybS1maWVsZC9mb3JtLWZpZWxkLWNvbnN0cmFpbnRzLXNob3J0Y3V0cy9mb3JtLWZpZWxkLWNvbnN0cmFpbnRzLXNob3J0Y3V0cy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZWRpdG9yL3NyYy9saWIvY29tcG9uZW50cy9yZWNvcmQtZm9ybS9mb3JtLWZpZWxkL2Zvcm0tZmllbGQtY29uc3RyYWludHMtc2hvcnRjdXRzL2Zvcm0tZmllbGQtY29uc3RyYWludHMtc2hvcnRjdXRzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxHQUdWLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0NBQWtDLENBQUE7QUFDL0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLCtDQUErQyxDQUFBO0FBQ3JHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUNyRCxPQUFPLEVBQ0wsYUFBYSxFQUNiLG9CQUFvQixFQUNwQixjQUFjLEVBQ2QsR0FBRyxFQUVILE9BQU8sRUFDUCxTQUFTLEdBQ1YsTUFBTSxNQUFNLENBQUE7QUFDYixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0seUNBQXlDLENBQUE7QUFFaEUsT0FBTyxFQUNMLDZCQUE2QixFQUM3Qix3QkFBd0IsRUFDeEIseUJBQXlCLEVBQ3pC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Z3ksXG4gIENvbXBvbmVudCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBFZGl0b3JGYWNhZGUgfSBmcm9tICcuLi8uLi8uLi8uLi8rc3RhdGUvZWRpdG9yLmZhY2FkZSdcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCwgQ2hlY2tUb2dnbGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2lucHV0cy9zcmMnXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuaW1wb3J0IHtcbiAgY29tYmluZUxhdGVzdCxcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIGZpcnN0VmFsdWVGcm9tLFxuICBtYXAsXG4gIE9ic2VydmFibGUsXG4gIFN1YmplY3QsXG4gIHRha2VVbnRpbCxcbn0gZnJvbSAncnhqcydcbmltcG9ydCB7IG1hcmtlciB9IGZyb20gJ0BiaWVzYmplcmcvbmd4LXRyYW5zbGF0ZS1leHRyYWN0LW1hcmtlcidcbmltcG9ydCB7IENvbnN0cmFpbnQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5pbXBvcnQge1xuICBtYXRjaGVzTm9BcHBsaWNhYmxlQ29uc3RyYWludCxcbiAgbWF0Y2hlc05vS25vd25Db25zdHJhaW50LFxuICBOT1RfQVBQTElDQUJMRV9DT05TVFJBSU5ULFxuICBOT1RfS05PV05fQ09OU1RSQUlOVCxcbn0gZnJvbSAnLi9jb25zdHJhaW50cy51dGlscydcbmltcG9ydCB7XG4gIE5nSWNvbkNvbXBvbmVudCxcbiAgcHJvdmlkZUljb25zLFxuICBwcm92aWRlTmdJY29uc0NvbmZpZyxcbn0gZnJvbSAnQG5nLWljb25zL2NvcmUnXG5pbXBvcnQgeyBpY29ub2lyUGx1cyB9IGZyb20gJ0BuZy1pY29ucy9pY29ub2lyJ1xuXG5tYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5jb25zdHJhaW50LmxlZ2FsQ29uc3RyYWludHMnKVxubWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0uY29uc3RyYWludC5zZWN1cml0eUNvbnN0cmFpbnRzJylcbm1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLmNvbnN0cmFpbnQub3RoZXJDb25zdHJhaW50cycpXG5cbmV4cG9ydCB0eXBlIENvbnN0cmFpbnRDaG9pY2UgPVxuICB8ICdsZWdhbENvbnN0cmFpbnRzJ1xuICB8ICdzZWN1cml0eUNvbnN0cmFpbnRzJ1xuICB8ICdvdGhlckNvbnN0cmFpbnRzJ1xuXG4vKipcbiAqIFRoaXMgY29tcG9uZW50IG9mZmVycyB0d28gdG9nZ2xlcyB0byBlYXNpbHkgZGVmaW5lIGNvbW1vbiBjb25zdHJhaW50cyAobm8gYXBwbGljYWJsZSBjb25zdHJhaW50XG4gKiBhbmQgbm8ga25vd24gY29uc3RyYWludCkgYW5kIHNob3dzIGFuZCBoaWRlcyB0aGUgdmFyaW91cyBjb25zdHJhaW50cyBmaWVsZHMgYWNjb3JkaW5nbHkgdXNpbmdcbiAqIHRoZSBmYWNhZGVcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktZm9ybS1maWVsZC1jb25zdHJhaW50cy1zaG9ydGN1dHMnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIENoZWNrVG9nZ2xlQ29tcG9uZW50LFxuICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgTmdJY29uQ29tcG9uZW50LFxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICBwcm92aWRlSWNvbnMoeyBpY29ub2lyUGx1cyB9KSxcbiAgICBwcm92aWRlTmdJY29uc0NvbmZpZyh7XG4gICAgICBzaXplOiAnMS41cmVtJyxcbiAgICB9KSxcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0tZmllbGQtY29uc3RyYWludHMtc2hvcnRjdXRzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZm9ybS1maWVsZC1jb25zdHJhaW50cy1zaG9ydGN1dHMuY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgRm9ybUZpZWxkQ29uc3RyYWludHNTaG9ydGN1dHNDb21wb25lbnRcbiAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveVxue1xuICBsZWdhbENvbnN0cmFpbnRzJCA9IHRoaXMuZWRpdG9yRmFjYWRlLnJlY29yZCQucGlwZShcbiAgICBtYXAoKHJlY29yZCkgPT4gcmVjb3JkPy5sZWdhbENvbnN0cmFpbnRzID8/IFtdKVxuICApXG4gIHNlY3VyaXR5Q29uc3RyYWludHMkID0gdGhpcy5lZGl0b3JGYWNhZGUucmVjb3JkJC5waXBlKFxuICAgIG1hcCgocmVjb3JkKSA9PiByZWNvcmQ/LnNlY3VyaXR5Q29uc3RyYWludHMgPz8gW10pXG4gIClcbiAgb3RoZXJDb25zdHJhaW50cyQgPSB0aGlzLmVkaXRvckZhY2FkZS5yZWNvcmQkLnBpcGUoXG4gICAgbWFwKChyZWNvcmQpID0+IHJlY29yZD8ub3RoZXJDb25zdHJhaW50cyA/PyBbXSlcbiAgKVxuXG4gIG5vQXBwbGljYWJsZUNvbnN0cmFpbnQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5sZWdhbENvbnN0cmFpbnRzJC5waXBlKFxuICAgIG1hcCgoY29uc3RyYWludHMpID0+XG4gICAgICBjb25zdHJhaW50cy5zb21lKChjb25zdHJhaW50KSA9PlxuICAgICAgICBtYXRjaGVzTm9BcHBsaWNhYmxlQ29uc3RyYWludChjb25zdHJhaW50KVxuICAgICAgKVxuICAgIClcbiAgKVxuICBub0tub3duQ29uc3RyYWludCQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLmxlZ2FsQ29uc3RyYWludHMkLnBpcGUoXG4gICAgbWFwKChjb25zdHJhaW50cykgPT5cbiAgICAgIGNvbnN0cmFpbnRzLnNvbWUoKGNvbnN0cmFpbnQpID0+IG1hdGNoZXNOb0tub3duQ29uc3RyYWludChjb25zdHJhaW50KSlcbiAgICApXG4gIClcbiAgYW55VG9nZ2xlQWN0aXZhdGVkJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMubm9BcHBsaWNhYmxlQ29uc3RyYWludCQsXG4gICAgdGhpcy5ub0tub3duQ29uc3RyYWludCQsXG4gIF0pLnBpcGUoXG4gICAgbWFwKFxuICAgICAgKFtub0FwcGxpY2FibGVDb25zdHJhaW50LCBub0tub3duQ29uc3RyYWludF0pID0+XG4gICAgICAgIG5vQXBwbGljYWJsZUNvbnN0cmFpbnQgfHwgbm9Lbm93bkNvbnN0cmFpbnRcbiAgICApXG4gIClcblxuICBjb25zdHJhaW50QnV0dG9uQ2hvaWNlczogQ29uc3RyYWludENob2ljZVtdID0gW1xuICAgICdsZWdhbENvbnN0cmFpbnRzJyxcbiAgICAnc2VjdXJpdHlDb25zdHJhaW50cycsXG4gICAgJ290aGVyQ29uc3RyYWludHMnLFxuICBdXG5cbiAgb25EZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KClcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVkaXRvckZhY2FkZTogRWRpdG9yRmFjYWRlKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vIGhpZGUgYWxsIGNvbnN0cmFpbnRzIGlmIGFueSB0b2dnbGUgaXMgYWN0aXZhdGVkXG4gICAgdGhpcy5hbnlUb2dnbGVBY3RpdmF0ZWQkXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kkKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSlcbiAgICAgIC5zdWJzY3JpYmUoKGFueVRvZ2dsZUFjdGl2YXRlZCkgPT4ge1xuICAgICAgICBpZiAoYW55VG9nZ2xlQWN0aXZhdGVkKSB7XG4gICAgICAgICAgdGhpcy5oaWRlQWxsQ29uc3RyYWludFNlY3Rpb25zKClcbiAgICAgICAgfVxuICAgICAgfSlcblxuICAgIC8vIGFsc28gaGlkZSBjb25zdHJhaW50cyB3aGljaCBhcmUgZW1wdHkgYXJyYXlzXG4gICAgY29uc3QgaGlkZUVtcHR5Q29uc3RyYWludHMgPSAoXG4gICAgICBjb25zdHJhaW50cyQ6IE9ic2VydmFibGU8Q29uc3RyYWludFtdPixcbiAgICAgIG1vZGVsOiBDb25zdHJhaW50Q2hvaWNlXG4gICAgKSA9PiB7XG4gICAgICBjb25zdCBpc0NvbnN0cmFpbnROb3RFbXB0eSQgPSBjb25zdHJhaW50cyQucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMub25EZXN0cm95JCksXG4gICAgICAgIG1hcCgoYykgPT4gYy5sZW5ndGggPiAwKSxcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICAgICAgKVxuICAgICAgY29tYmluZUxhdGVzdChbXG4gICAgICAgIGlzQ29uc3RyYWludE5vdEVtcHR5JCxcbiAgICAgICAgdGhpcy5hbnlUb2dnbGVBY3RpdmF0ZWQkLFxuICAgICAgXSkuc3Vic2NyaWJlKChbaXNOb3RFbXB0eSwgYW55VG9nZ2xlQWN0aXZhdGVkXSkgPT4ge1xuICAgICAgICBjb25zdCB2aXNpYmxlID0gaXNOb3RFbXB0eSAmJiAhYW55VG9nZ2xlQWN0aXZhdGVkXG4gICAgICAgIHRoaXMuZWRpdG9yRmFjYWRlLnNldEZpZWxkVmlzaWJpbGl0eSh7IG1vZGVsIH0sIHZpc2libGUpXG4gICAgICB9KVxuICAgIH1cbiAgICBoaWRlRW1wdHlDb25zdHJhaW50cyh0aGlzLmxlZ2FsQ29uc3RyYWludHMkLCAnbGVnYWxDb25zdHJhaW50cycpXG4gICAgaGlkZUVtcHR5Q29uc3RyYWludHModGhpcy5zZWN1cml0eUNvbnN0cmFpbnRzJCwgJ3NlY3VyaXR5Q29uc3RyYWludHMnKVxuICAgIGhpZGVFbXB0eUNvbnN0cmFpbnRzKHRoaXMub3RoZXJDb25zdHJhaW50cyQsICdvdGhlckNvbnN0cmFpbnRzJylcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMub25EZXN0cm95JC5uZXh0KClcbiAgfVxuXG4gIGhpZGVBbGxDb25zdHJhaW50U2VjdGlvbnMoKSB7XG4gICAgdGhpcy5lZGl0b3JGYWNhZGUuc2V0RmllbGRWaXNpYmlsaXR5KHsgbW9kZWw6ICdsZWdhbENvbnN0cmFpbnRzJyB9LCBmYWxzZSlcbiAgICB0aGlzLmVkaXRvckZhY2FkZS5zZXRGaWVsZFZpc2liaWxpdHkoXG4gICAgICB7IG1vZGVsOiAnc2VjdXJpdHlDb25zdHJhaW50cycgfSxcbiAgICAgIGZhbHNlXG4gICAgKVxuICAgIHRoaXMuZWRpdG9yRmFjYWRlLnNldEZpZWxkVmlzaWJpbGl0eSh7IG1vZGVsOiAnb3RoZXJDb25zdHJhaW50cycgfSwgZmFsc2UpXG4gIH1cblxuICBhc3luYyBvblRvZ2dsZUNoYW5nZShcbiAgICB0b2dnbGVOYW1lOiAnbm9BcHBsaWNhYmxlQ29uc3RyYWludCcgfCAnbm9Lbm93bkNvbnN0cmFpbnQnLFxuICAgIHZhbHVlOiBib29sZWFuXG4gICkge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgY29uc3QgcHJlc2V0Q29uc3RyYWludCA9XG4gICAgICAgIHRvZ2dsZU5hbWUgPT09ICdub0FwcGxpY2FibGVDb25zdHJhaW50J1xuICAgICAgICAgID8gTk9UX0FQUExJQ0FCTEVfQ09OU1RSQUlOVFxuICAgICAgICAgIDogTk9UX0tOT1dOX0NPTlNUUkFJTlRcbiAgICAgIHRoaXMuZWRpdG9yRmFjYWRlLnVwZGF0ZVJlY29yZEZpZWxkKCdsZWdhbENvbnN0cmFpbnRzJywgW1xuICAgICAgICBwcmVzZXRDb25zdHJhaW50LFxuICAgICAgXSlcbiAgICAgIHRoaXMuaGlkZUFsbENvbnN0cmFpbnRTZWN0aW9ucygpXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IG1hdGNoZXIgPVxuICAgICAgICB0b2dnbGVOYW1lID09PSAnbm9BcHBsaWNhYmxlQ29uc3RyYWludCdcbiAgICAgICAgICA/IG1hdGNoZXNOb0FwcGxpY2FibGVDb25zdHJhaW50XG4gICAgICAgICAgOiBtYXRjaGVzTm9Lbm93bkNvbnN0cmFpbnRcbiAgICAgIC8vIGlmIHRoZSB0b2dnbGUgaXMgdHVybmVkIG9mZiwgcmVtb3ZlIGFsbCBtYXRjaGluZyBjb25zdHJhaW50c1xuICAgICAgY29uc3QgY29uc3RyYWludHMgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLmxlZ2FsQ29uc3RyYWludHMkKVxuICAgICAgdGhpcy5lZGl0b3JGYWNhZGUudXBkYXRlUmVjb3JkRmllbGQoXG4gICAgICAgICdsZWdhbENvbnN0cmFpbnRzJyxcbiAgICAgICAgY29uc3RyYWludHMuZmlsdGVyKChjKSA9PiAhbWF0Y2hlcihjKSlcbiAgICAgIClcbiAgICB9XG4gIH1cblxuICBpc0NvbnN0cmFpbnRCdXR0b25EaXNhYmxlZCQoXG4gICAgY29uc3RyYWludFNlY3Rpb246IENvbnN0cmFpbnRDaG9pY2VcbiAgKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgc3dpdGNoIChjb25zdHJhaW50U2VjdGlvbikge1xuICAgICAgY2FzZSAnbGVnYWxDb25zdHJhaW50cyc6XG4gICAgICAgIHJldHVybiB0aGlzLmxlZ2FsQ29uc3RyYWludHMkLnBpcGUoXG4gICAgICAgICAgbWFwKChjb25zdHJhaW50cykgPT4gY29uc3RyYWludHMubGVuZ3RoID4gMClcbiAgICAgICAgKVxuICAgICAgY2FzZSAnc2VjdXJpdHlDb25zdHJhaW50cyc6XG4gICAgICAgIHJldHVybiB0aGlzLnNlY3VyaXR5Q29uc3RyYWludHMkLnBpcGUoXG4gICAgICAgICAgbWFwKChjb25zdHJhaW50cykgPT4gY29uc3RyYWludHMubGVuZ3RoID4gMClcbiAgICAgICAgKVxuICAgICAgY2FzZSAnb3RoZXJDb25zdHJhaW50cyc6XG4gICAgICAgIHJldHVybiB0aGlzLm90aGVyQ29uc3RyYWludHMkLnBpcGUoXG4gICAgICAgICAgbWFwKChjb25zdHJhaW50cykgPT4gY29uc3RyYWludHMubGVuZ3RoID4gMClcbiAgICAgICAgKVxuICAgIH1cbiAgfVxuXG4gIGFkZENvbnN0cmFpbnRTZWN0aW9uVG9EaXNwbGF5KGNvbnN0cmFpbnRTZWN0aW9uOiBDb25zdHJhaW50Q2hvaWNlKSB7XG4gICAgdGhpcy5lZGl0b3JGYWNhZGUudXBkYXRlUmVjb3JkRmllbGQoY29uc3RyYWludFNlY3Rpb24sIFt7IHRleHQ6ICcnIH1dKVxuICAgIHRoaXMuZWRpdG9yRmFjYWRlLnNldEZpZWxkVmlzaWJpbGl0eSh7IG1vZGVsOiBjb25zdHJhaW50U2VjdGlvbiB9LCB0cnVlKVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtMiBtYi0yXCIgZGF0YS1jeT1cImNvbnN0cmFpbnRzLXNob3J0Y3V0LXRvZ2dsZXNcIj5cbiAgPGduLXVpLWNoZWNrLXRvZ2dsZVxuICAgIFtsYWJlbF09XCInZWRpdG9yLnJlY29yZC5mb3JtLmNvbnN0cmFpbnQubm90LmFwcGxpY2FibGUnIHwgdHJhbnNsYXRlXCJcbiAgICBbdmFsdWVdPVwibm9BcHBsaWNhYmxlQ29uc3RyYWludCQgfCBhc3luY1wiXG4gICAgKHRvZ2dsZWQpPVwib25Ub2dnbGVDaGFuZ2UoJ25vQXBwbGljYWJsZUNvbnN0cmFpbnQnLCAkZXZlbnQpXCJcbiAgPlxuICA8L2duLXVpLWNoZWNrLXRvZ2dsZT5cbiAgPGduLXVpLWNoZWNrLXRvZ2dsZVxuICAgIFtsYWJlbF09XCInZWRpdG9yLnJlY29yZC5mb3JtLmNvbnN0cmFpbnQubm90Lmtub3duJyB8IHRyYW5zbGF0ZVwiXG4gICAgW3ZhbHVlXT1cIm5vS25vd25Db25zdHJhaW50JCB8IGFzeW5jXCJcbiAgICAodG9nZ2xlZCk9XCJvblRvZ2dsZUNoYW5nZSgnbm9Lbm93bkNvbnN0cmFpbnQnLCAkZXZlbnQpXCJcbiAgPlxuICA8L2duLXVpLWNoZWNrLXRvZ2dsZT5cbjwvZGl2PlxuXG48ZGl2XG4gICpuZ0lmPVwiKGFueVRvZ2dsZUFjdGl2YXRlZCQgfCBhc3luYykgPT09IGZhbHNlXCJcbiAgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGZsZXgtd3JhcCBnYXAtMlwiXG4gIGRhdGEtY3k9XCJjb25zdHJhaW50cy1zaG9ydGN1dC1idG5zXCJcbj5cbiAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29uc3RyYWludCBvZiBjb25zdHJhaW50QnV0dG9uQ2hvaWNlc1wiPlxuICAgIDxnbi11aS1idXR0b25cbiAgICAgIHR5cGU9XCJncmF5XCJcbiAgICAgIChidXR0b25DbGljayk9XCJhZGRDb25zdHJhaW50U2VjdGlvblRvRGlzcGxheShjb25zdHJhaW50KVwiXG4gICAgICBbZGlzYWJsZWRdPVwiaXNDb25zdHJhaW50QnV0dG9uRGlzYWJsZWQkKGNvbnN0cmFpbnQpIHwgYXN5bmNcIlxuICAgID5cbiAgICAgIDxuZy1pY29uIG5hbWU9XCJpY29ub2lyUGx1c1wiIGNsYXNzPVwidGV4dC1wcmltYXJ5XCI+PC9uZy1pY29uPlxuICAgICAgJm5ic3A7XG4gICAgICA8c3Bhbj57e1xuICAgICAgICAnZWRpdG9yLnJlY29yZC5mb3JtLmNvbnN0cmFpbnQuJyArIGNvbnN0cmFpbnQgfCB0cmFuc2xhdGVcbiAgICAgIH19PC9zcGFuPlxuICAgIDwvZ24tdWktYnV0dG9uPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuIl19
|
|
129
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC1jb25zdHJhaW50cy1zaG9ydGN1dHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL2VkaXRvci9zcmMvbGliL2NvbXBvbmVudHMvcmVjb3JkLWZvcm0vZm9ybS1maWVsZC9mb3JtLWZpZWxkLWNvbnN0cmFpbnRzLXNob3J0Y3V0cy9mb3JtLWZpZWxkLWNvbnN0cmFpbnRzLXNob3J0Y3V0cy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZWRpdG9yL3NyYy9saWIvY29tcG9uZW50cy9yZWNvcmQtZm9ybS9mb3JtLWZpZWxkL2Zvcm0tZmllbGQtY29uc3RyYWludHMtc2hvcnRjdXRzL2Zvcm0tZmllbGQtY29uc3RyYWludHMtc2hvcnRjdXRzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxHQUdWLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0NBQWtDLENBQUE7QUFDL0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLCtDQUErQyxDQUFBO0FBQ3JHLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUNuRCxPQUFPLEVBQ0wsYUFBYSxFQUNiLG9CQUFvQixFQUNwQixjQUFjLEVBQ2QsR0FBRyxFQUVILE9BQU8sRUFDUCxTQUFTLEdBQ1YsTUFBTSxNQUFNLENBQUE7QUFDYixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0seUNBQXlDLENBQUE7QUFFaEUsT0FBTyxFQUNMLDZCQUE2QixFQUM3Qix3QkFBd0IsRUFDeEIseUJBQXlCLEVBQ3pC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eSxcbiAgQ29tcG9uZW50LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7IEVkaXRvckZhY2FkZSB9IGZyb20gJy4uLy4uLy4uLy4uLytzdGF0ZS9lZGl0b3IuZmFjYWRlJ1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50LCBDaGVja1RvZ2dsZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvaW5wdXRzL3NyYydcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuaW1wb3J0IHtcbiAgY29tYmluZUxhdGVzdCxcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIGZpcnN0VmFsdWVGcm9tLFxuICBtYXAsXG4gIE9ic2VydmFibGUsXG4gIFN1YmplY3QsXG4gIHRha2VVbnRpbCxcbn0gZnJvbSAncnhqcydcbmltcG9ydCB7IG1hcmtlciB9IGZyb20gJ0BiaWVzYmplcmcvbmd4LXRyYW5zbGF0ZS1leHRyYWN0LW1hcmtlcidcbmltcG9ydCB7IENvbnN0cmFpbnQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5pbXBvcnQge1xuICBtYXRjaGVzTm9BcHBsaWNhYmxlQ29uc3RyYWludCxcbiAgbWF0Y2hlc05vS25vd25Db25zdHJhaW50LFxuICBOT1RfQVBQTElDQUJMRV9DT05TVFJBSU5ULFxuICBOT1RfS05PV05fQ09OU1RSQUlOVCxcbn0gZnJvbSAnLi9jb25zdHJhaW50cy51dGlscydcbmltcG9ydCB7XG4gIE5nSWNvbkNvbXBvbmVudCxcbiAgcHJvdmlkZUljb25zLFxuICBwcm92aWRlTmdJY29uc0NvbmZpZyxcbn0gZnJvbSAnQG5nLWljb25zL2NvcmUnXG5pbXBvcnQgeyBpY29ub2lyUGx1cyB9IGZyb20gJ0BuZy1pY29ucy9pY29ub2lyJ1xuXG5tYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5jb25zdHJhaW50LmxlZ2FsQ29uc3RyYWludHMnKVxubWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0uY29uc3RyYWludC5zZWN1cml0eUNvbnN0cmFpbnRzJylcbm1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLmNvbnN0cmFpbnQub3RoZXJDb25zdHJhaW50cycpXG5cbmV4cG9ydCB0eXBlIENvbnN0cmFpbnRDaG9pY2UgPVxuICB8ICdsZWdhbENvbnN0cmFpbnRzJ1xuICB8ICdzZWN1cml0eUNvbnN0cmFpbnRzJ1xuICB8ICdvdGhlckNvbnN0cmFpbnRzJ1xuXG4vKipcbiAqIFRoaXMgY29tcG9uZW50IG9mZmVycyB0d28gdG9nZ2xlcyB0byBlYXNpbHkgZGVmaW5lIGNvbW1vbiBjb25zdHJhaW50cyAobm8gYXBwbGljYWJsZSBjb25zdHJhaW50XG4gKiBhbmQgbm8ga25vd24gY29uc3RyYWludCkgYW5kIHNob3dzIGFuZCBoaWRlcyB0aGUgdmFyaW91cyBjb25zdHJhaW50cyBmaWVsZHMgYWNjb3JkaW5nbHkgdXNpbmdcbiAqIHRoZSBmYWNhZGVcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktZm9ybS1maWVsZC1jb25zdHJhaW50cy1zaG9ydGN1dHMnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIENoZWNrVG9nZ2xlQ29tcG9uZW50LFxuICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgICBUcmFuc2xhdGVQaXBlLFxuICAgIE5nSWNvbkNvbXBvbmVudCxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgcHJvdmlkZUljb25zKHsgaWNvbm9pclBsdXMgfSksXG4gICAgcHJvdmlkZU5nSWNvbnNDb25maWcoe1xuICAgICAgc2l6ZTogJzEuNXJlbScsXG4gICAgfSksXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLWZpZWxkLWNvbnN0cmFpbnRzLXNob3J0Y3V0cy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Zvcm0tZmllbGQtY29uc3RyYWludHMtc2hvcnRjdXRzLmNvbXBvbmVudC5jc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1GaWVsZENvbnN0cmFpbnRzU2hvcnRjdXRzQ29tcG9uZW50XG4gIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3lcbntcbiAgbGVnYWxDb25zdHJhaW50cyQgPSB0aGlzLmVkaXRvckZhY2FkZS5yZWNvcmQkLnBpcGUoXG4gICAgbWFwKChyZWNvcmQpID0+IHJlY29yZD8ubGVnYWxDb25zdHJhaW50cyA/PyBbXSlcbiAgKVxuICBzZWN1cml0eUNvbnN0cmFpbnRzJCA9IHRoaXMuZWRpdG9yRmFjYWRlLnJlY29yZCQucGlwZShcbiAgICBtYXAoKHJlY29yZCkgPT4gcmVjb3JkPy5zZWN1cml0eUNvbnN0cmFpbnRzID8/IFtdKVxuICApXG4gIG90aGVyQ29uc3RyYWludHMkID0gdGhpcy5lZGl0b3JGYWNhZGUucmVjb3JkJC5waXBlKFxuICAgIG1hcCgocmVjb3JkKSA9PiByZWNvcmQ/Lm90aGVyQ29uc3RyYWludHMgPz8gW10pXG4gIClcblxuICBub0FwcGxpY2FibGVDb25zdHJhaW50JDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMubGVnYWxDb25zdHJhaW50cyQucGlwZShcbiAgICBtYXAoKGNvbnN0cmFpbnRzKSA9PlxuICAgICAgY29uc3RyYWludHMuc29tZSgoY29uc3RyYWludCkgPT5cbiAgICAgICAgbWF0Y2hlc05vQXBwbGljYWJsZUNvbnN0cmFpbnQoY29uc3RyYWludClcbiAgICAgIClcbiAgICApXG4gIClcbiAgbm9Lbm93bkNvbnN0cmFpbnQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5sZWdhbENvbnN0cmFpbnRzJC5waXBlKFxuICAgIG1hcCgoY29uc3RyYWludHMpID0+XG4gICAgICBjb25zdHJhaW50cy5zb21lKChjb25zdHJhaW50KSA9PiBtYXRjaGVzTm9Lbm93bkNvbnN0cmFpbnQoY29uc3RyYWludCkpXG4gICAgKVxuICApXG4gIGFueVRvZ2dsZUFjdGl2YXRlZCQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLm5vQXBwbGljYWJsZUNvbnN0cmFpbnQkLFxuICAgIHRoaXMubm9Lbm93bkNvbnN0cmFpbnQkLFxuICBdKS5waXBlKFxuICAgIG1hcChcbiAgICAgIChbbm9BcHBsaWNhYmxlQ29uc3RyYWludCwgbm9Lbm93bkNvbnN0cmFpbnRdKSA9PlxuICAgICAgICBub0FwcGxpY2FibGVDb25zdHJhaW50IHx8IG5vS25vd25Db25zdHJhaW50XG4gICAgKVxuICApXG5cbiAgY29uc3RyYWludEJ1dHRvbkNob2ljZXM6IENvbnN0cmFpbnRDaG9pY2VbXSA9IFtcbiAgICAnbGVnYWxDb25zdHJhaW50cycsXG4gICAgJ3NlY3VyaXR5Q29uc3RyYWludHMnLFxuICAgICdvdGhlckNvbnN0cmFpbnRzJyxcbiAgXVxuXG4gIG9uRGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpXG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlZGl0b3JGYWNhZGU6IEVkaXRvckZhY2FkZSkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyBoaWRlIGFsbCBjb25zdHJhaW50cyBpZiBhbnkgdG9nZ2xlIGlzIGFjdGl2YXRlZFxuICAgIHRoaXMuYW55VG9nZ2xlQWN0aXZhdGVkJFxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMub25EZXN0cm95JCksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpXG4gICAgICAuc3Vic2NyaWJlKChhbnlUb2dnbGVBY3RpdmF0ZWQpID0+IHtcbiAgICAgICAgaWYgKGFueVRvZ2dsZUFjdGl2YXRlZCkge1xuICAgICAgICAgIHRoaXMuaGlkZUFsbENvbnN0cmFpbnRTZWN0aW9ucygpXG4gICAgICAgIH1cbiAgICAgIH0pXG5cbiAgICAvLyBhbHNvIGhpZGUgY29uc3RyYWludHMgd2hpY2ggYXJlIGVtcHR5IGFycmF5c1xuICAgIGNvbnN0IGhpZGVFbXB0eUNvbnN0cmFpbnRzID0gKFxuICAgICAgY29uc3RyYWludHMkOiBPYnNlcnZhYmxlPENvbnN0cmFpbnRbXT4sXG4gICAgICBtb2RlbDogQ29uc3RyYWludENob2ljZVxuICAgICkgPT4ge1xuICAgICAgY29uc3QgaXNDb25zdHJhaW50Tm90RW1wdHkkID0gY29uc3RyYWludHMkLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSQpLFxuICAgICAgICBtYXAoKGMpID0+IGMubGVuZ3RoID4gMCksXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgICAgIClcbiAgICAgIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICBpc0NvbnN0cmFpbnROb3RFbXB0eSQsXG4gICAgICAgIHRoaXMuYW55VG9nZ2xlQWN0aXZhdGVkJCxcbiAgICAgIF0pLnN1YnNjcmliZSgoW2lzTm90RW1wdHksIGFueVRvZ2dsZUFjdGl2YXRlZF0pID0+IHtcbiAgICAgICAgY29uc3QgdmlzaWJsZSA9IGlzTm90RW1wdHkgJiYgIWFueVRvZ2dsZUFjdGl2YXRlZFxuICAgICAgICB0aGlzLmVkaXRvckZhY2FkZS5zZXRGaWVsZFZpc2liaWxpdHkoeyBtb2RlbCB9LCB2aXNpYmxlKVxuICAgICAgfSlcbiAgICB9XG4gICAgaGlkZUVtcHR5Q29uc3RyYWludHModGhpcy5sZWdhbENvbnN0cmFpbnRzJCwgJ2xlZ2FsQ29uc3RyYWludHMnKVxuICAgIGhpZGVFbXB0eUNvbnN0cmFpbnRzKHRoaXMuc2VjdXJpdHlDb25zdHJhaW50cyQsICdzZWN1cml0eUNvbnN0cmFpbnRzJylcbiAgICBoaWRlRW1wdHlDb25zdHJhaW50cyh0aGlzLm90aGVyQ29uc3RyYWludHMkLCAnb3RoZXJDb25zdHJhaW50cycpXG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLm9uRGVzdHJveSQubmV4dCgpXG4gIH1cblxuICBoaWRlQWxsQ29uc3RyYWludFNlY3Rpb25zKCkge1xuICAgIHRoaXMuZWRpdG9yRmFjYWRlLnNldEZpZWxkVmlzaWJpbGl0eSh7IG1vZGVsOiAnbGVnYWxDb25zdHJhaW50cycgfSwgZmFsc2UpXG4gICAgdGhpcy5lZGl0b3JGYWNhZGUuc2V0RmllbGRWaXNpYmlsaXR5KFxuICAgICAgeyBtb2RlbDogJ3NlY3VyaXR5Q29uc3RyYWludHMnIH0sXG4gICAgICBmYWxzZVxuICAgIClcbiAgICB0aGlzLmVkaXRvckZhY2FkZS5zZXRGaWVsZFZpc2liaWxpdHkoeyBtb2RlbDogJ290aGVyQ29uc3RyYWludHMnIH0sIGZhbHNlKVxuICB9XG5cbiAgYXN5bmMgb25Ub2dnbGVDaGFuZ2UoXG4gICAgdG9nZ2xlTmFtZTogJ25vQXBwbGljYWJsZUNvbnN0cmFpbnQnIHwgJ25vS25vd25Db25zdHJhaW50JyxcbiAgICB2YWx1ZTogYm9vbGVhblxuICApIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIGNvbnN0IHByZXNldENvbnN0cmFpbnQgPVxuICAgICAgICB0b2dnbGVOYW1lID09PSAnbm9BcHBsaWNhYmxlQ29uc3RyYWludCdcbiAgICAgICAgICA/IE5PVF9BUFBMSUNBQkxFX0NPTlNUUkFJTlRcbiAgICAgICAgICA6IE5PVF9LTk9XTl9DT05TVFJBSU5UXG4gICAgICB0aGlzLmVkaXRvckZhY2FkZS51cGRhdGVSZWNvcmRGaWVsZCgnbGVnYWxDb25zdHJhaW50cycsIFtcbiAgICAgICAgcHJlc2V0Q29uc3RyYWludCxcbiAgICAgIF0pXG4gICAgICB0aGlzLmhpZGVBbGxDb25zdHJhaW50U2VjdGlvbnMoKVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBtYXRjaGVyID1cbiAgICAgICAgdG9nZ2xlTmFtZSA9PT0gJ25vQXBwbGljYWJsZUNvbnN0cmFpbnQnXG4gICAgICAgICAgPyBtYXRjaGVzTm9BcHBsaWNhYmxlQ29uc3RyYWludFxuICAgICAgICAgIDogbWF0Y2hlc05vS25vd25Db25zdHJhaW50XG4gICAgICAvLyBpZiB0aGUgdG9nZ2xlIGlzIHR1cm5lZCBvZmYsIHJlbW92ZSBhbGwgbWF0Y2hpbmcgY29uc3RyYWludHNcbiAgICAgIGNvbnN0IGNvbnN0cmFpbnRzID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5sZWdhbENvbnN0cmFpbnRzJClcbiAgICAgIHRoaXMuZWRpdG9yRmFjYWRlLnVwZGF0ZVJlY29yZEZpZWxkKFxuICAgICAgICAnbGVnYWxDb25zdHJhaW50cycsXG4gICAgICAgIGNvbnN0cmFpbnRzLmZpbHRlcigoYykgPT4gIW1hdGNoZXIoYykpXG4gICAgICApXG4gICAgfVxuICB9XG5cbiAgaXNDb25zdHJhaW50QnV0dG9uRGlzYWJsZWQkKFxuICAgIGNvbnN0cmFpbnRTZWN0aW9uOiBDb25zdHJhaW50Q2hvaWNlXG4gICk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHN3aXRjaCAoY29uc3RyYWludFNlY3Rpb24pIHtcbiAgICAgIGNhc2UgJ2xlZ2FsQ29uc3RyYWludHMnOlxuICAgICAgICByZXR1cm4gdGhpcy5sZWdhbENvbnN0cmFpbnRzJC5waXBlKFxuICAgICAgICAgIG1hcCgoY29uc3RyYWludHMpID0+IGNvbnN0cmFpbnRzLmxlbmd0aCA+IDApXG4gICAgICAgIClcbiAgICAgIGNhc2UgJ3NlY3VyaXR5Q29uc3RyYWludHMnOlxuICAgICAgICByZXR1cm4gdGhpcy5zZWN1cml0eUNvbnN0cmFpbnRzJC5waXBlKFxuICAgICAgICAgIG1hcCgoY29uc3RyYWludHMpID0+IGNvbnN0cmFpbnRzLmxlbmd0aCA+IDApXG4gICAgICAgIClcbiAgICAgIGNhc2UgJ290aGVyQ29uc3RyYWludHMnOlxuICAgICAgICByZXR1cm4gdGhpcy5vdGhlckNvbnN0cmFpbnRzJC5waXBlKFxuICAgICAgICAgIG1hcCgoY29uc3RyYWludHMpID0+IGNvbnN0cmFpbnRzLmxlbmd0aCA+IDApXG4gICAgICAgIClcbiAgICB9XG4gIH1cblxuICBhZGRDb25zdHJhaW50U2VjdGlvblRvRGlzcGxheShjb25zdHJhaW50U2VjdGlvbjogQ29uc3RyYWludENob2ljZSkge1xuICAgIHRoaXMuZWRpdG9yRmFjYWRlLnVwZGF0ZVJlY29yZEZpZWxkKGNvbnN0cmFpbnRTZWN0aW9uLCBbeyB0ZXh0OiAnJyB9XSlcbiAgICB0aGlzLmVkaXRvckZhY2FkZS5zZXRGaWVsZFZpc2liaWxpdHkoeyBtb2RlbDogY29uc3RyYWludFNlY3Rpb24gfSwgdHJ1ZSlcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZ2FwLTIgbWItMlwiIGRhdGEtY3k9XCJjb25zdHJhaW50cy1zaG9ydGN1dC10b2dnbGVzXCI+XG4gIDxnbi11aS1jaGVjay10b2dnbGVcbiAgICBbbGFiZWxdPVwiJ2VkaXRvci5yZWNvcmQuZm9ybS5jb25zdHJhaW50Lm5vdC5hcHBsaWNhYmxlJyB8IHRyYW5zbGF0ZVwiXG4gICAgW3ZhbHVlXT1cIm5vQXBwbGljYWJsZUNvbnN0cmFpbnQkIHwgYXN5bmNcIlxuICAgICh0b2dnbGVkKT1cIm9uVG9nZ2xlQ2hhbmdlKCdub0FwcGxpY2FibGVDb25zdHJhaW50JywgJGV2ZW50KVwiXG4gID5cbiAgPC9nbi11aS1jaGVjay10b2dnbGU+XG4gIDxnbi11aS1jaGVjay10b2dnbGVcbiAgICBbbGFiZWxdPVwiJ2VkaXRvci5yZWNvcmQuZm9ybS5jb25zdHJhaW50Lm5vdC5rbm93bicgfCB0cmFuc2xhdGVcIlxuICAgIFt2YWx1ZV09XCJub0tub3duQ29uc3RyYWludCQgfCBhc3luY1wiXG4gICAgKHRvZ2dsZWQpPVwib25Ub2dnbGVDaGFuZ2UoJ25vS25vd25Db25zdHJhaW50JywgJGV2ZW50KVwiXG4gID5cbiAgPC9nbi11aS1jaGVjay10b2dnbGU+XG48L2Rpdj5cblxuPGRpdlxuICAqbmdJZj1cIihhbnlUb2dnbGVBY3RpdmF0ZWQkIHwgYXN5bmMpID09PSBmYWxzZVwiXG4gIGNsYXNzPVwiZmxleCBmbGV4LXJvdyBmbGV4LXdyYXAgZ2FwLTJcIlxuICBkYXRhLWN5PVwiY29uc3RyYWludHMtc2hvcnRjdXQtYnRuc1wiXG4+XG4gIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvbnN0cmFpbnQgb2YgY29uc3RyYWludEJ1dHRvbkNob2ljZXNcIj5cbiAgICA8Z24tdWktYnV0dG9uXG4gICAgICB0eXBlPVwiZ3JheVwiXG4gICAgICAoYnV0dG9uQ2xpY2spPVwiYWRkQ29uc3RyYWludFNlY3Rpb25Ub0Rpc3BsYXkoY29uc3RyYWludClcIlxuICAgICAgW2Rpc2FibGVkXT1cImlzQ29uc3RyYWludEJ1dHRvbkRpc2FibGVkJChjb25zdHJhaW50KSB8IGFzeW5jXCJcbiAgICA+XG4gICAgICA8bmctaWNvbiBuYW1lPVwiaWNvbm9pclBsdXNcIiBjbGFzcz1cInRleHQtcHJpbWFyeVwiPjwvbmctaWNvbj5cbiAgICAgICZuYnNwO1xuICAgICAgPHNwYW4+e3tcbiAgICAgICAgJ2VkaXRvci5yZWNvcmQuZm9ybS5jb25zdHJhaW50LicgKyBjb25zdHJhaW50IHwgdHJhbnNsYXRlXG4gICAgICB9fTwvc3Bhbj5cbiAgICA8L2duLXVpLWJ1dHRvbj5cbiAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cbiJdfQ==
|