geonetwork-ui 2.7.0-dev.fa54bd3a5 → 2.7.0-dev.fb5b118d5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/index.mjs +1 -2
- package/esm2022/libs/api/metadata-converter/src/lib/dcat-ap/read-parts.mjs +4 -7
- package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.mjs +20 -20
- 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 +3 -3
- package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.mjs +3 -3
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/read-parts.mjs +4 -4
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/utils/status.mapper.mjs +4 -1
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/write-parts.mjs +9 -5
- package/esm2022/libs/api/repository/src/index.mjs +2 -2
- package/esm2022/libs/api/repository/src/lib/gn4/auth/auth.service.mjs +5 -5
- package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/constant.mjs +4 -6
- package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.mjs +55 -12
- package/esm2022/libs/api/repository/src/lib/gn4/gn4-repository.mjs +3 -3
- package/esm2022/libs/api/repository/src/lib/gn4/gn4.provider.mjs +26 -3
- package/esm2022/libs/api/repository/src/lib/gn4/organizations/index.mjs +3 -5
- package/esm2022/libs/api/repository/src/lib/gn4/organizations/organization-strategy.token.mjs +5 -0
- package/esm2022/libs/api/repository/src/lib/gn4/organizations/organizations-from-groups.service.mjs +3 -3
- package/esm2022/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.mjs +3 -3
- package/esm2022/libs/api/repository/src/lib/gn4/organizations/organizations-service.factory.mjs +6 -0
- package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.mjs +68 -26
- package/esm2022/libs/api/repository/src/lib/gn4/settings/gn4-settings.service.mjs +3 -1
- package/esm2022/libs/api/repository/src/lib/metadata-language.token.mjs +3 -0
- package/esm2022/libs/common/domain/src/lib/model/dataviz/dataviz-configuration.model.mjs +1 -1
- package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +15 -1
- package/esm2022/libs/common/domain/src/lib/platform.service.interface.mjs +1 -1
- package/esm2022/libs/feature/catalog/src/index.mjs +1 -2
- package/esm2022/libs/feature/catalog/src/lib/organization-url.token.mjs +3 -1
- package/esm2022/libs/feature/catalog/src/lib/site-title/site-title.component.mjs +5 -4
- package/esm2022/libs/feature/catalog/src/lib/source-label/source-label.component.mjs +4 -3
- package/esm2022/libs/feature/catalog/src/lib/sources/sources.service.mjs +3 -3
- package/esm2022/libs/feature/dataviz/src/lib/chart-view/chart-view.component.mjs +10 -2
- package/esm2022/libs/feature/dataviz/src/lib/service/data.service.mjs +5 -5
- package/esm2022/libs/feature/editor/src/index.mjs +2 -1
- package/esm2022/libs/feature/editor/src/lib/+state/editor.effects.mjs +4 -4
- package/esm2022/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.mjs +8 -2
- package/esm2022/libs/feature/editor/src/lib/components/metadata-quality-panel/metadata-quality-panel.component.mjs +80 -0
- package/esm2022/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.mjs +3 -3
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-inspire-field/form-field-inspire-theme.component.mjs +55 -0
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.mjs +8 -3
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/index.mjs +2 -1
- package/esm2022/libs/feature/editor/src/lib/feature-editor.module.mjs +6 -36
- package/esm2022/libs/feature/editor/src/lib/fields.config.mjs +77 -3
- package/esm2022/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-from-catalog.component.mjs +10 -5
- package/esm2022/libs/feature/map/src/lib/utils/map-utils.service.mjs +3 -5
- package/esm2022/libs/feature/notifications/src/index.mjs +1 -2
- package/esm2022/libs/feature/record/src/lib/data-view/data-view.component.mjs +33 -12
- package/esm2022/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.mjs +14 -4
- package/esm2022/libs/feature/record/src/lib/feature-record.module.mjs +5 -43
- package/esm2022/libs/feature/record/src/lib/gpf-api-dl-list-item/gpf-api-dl-list-item.component.mjs +10 -5
- package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +87 -28
- package/esm2022/libs/feature/record/src/lib/record-meta/record-meta.component.mjs +4 -2
- package/esm2022/libs/feature/record/src/lib/state/mdview.facade.mjs +4 -2
- package/esm2022/libs/feature/router/src/lib/default/container/search-router.container.directive.mjs +3 -2
- package/esm2022/libs/feature/router/src/lib/default/router.module.mjs +2 -5
- package/esm2022/libs/feature/router/src/lib/default/state/query-params.utils.mjs +4 -3
- package/esm2022/libs/feature/router/src/lib/default/state/router.facade.mjs +3 -2
- package/esm2022/libs/feature/search/src/index.mjs +1 -2
- package/esm2022/libs/feature/search/src/lib/facets/facets-container/facets-container.component.mjs +12 -5
- package/esm2022/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.mjs +24 -17
- package/esm2022/libs/feature/search/src/lib/feature-search.module.mjs +4 -100
- package/esm2022/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.mjs +9 -5
- package/esm2022/libs/feature/search/src/lib/records-metrics/records-metrics.component.mjs +6 -5
- package/esm2022/libs/feature/search/src/lib/results-hits/results-hits.container.component.mjs +9 -5
- package/esm2022/libs/feature/search/src/lib/results-layout/results-layout.component.mjs +7 -6
- package/esm2022/libs/feature/search/src/lib/results-list/results-list.container.component.mjs +19 -12
- package/esm2022/libs/feature/search/src/lib/results-table/results-table-container.component.mjs +2 -1
- package/esm2022/libs/feature/search/src/lib/sort-by/sort-by.component.mjs +7 -6
- package/esm2022/libs/feature/search/src/lib/state/container/search-state.container.directive.mjs +3 -2
- package/esm2022/libs/feature/search/src/lib/state/reducer.mjs +5 -2
- package/esm2022/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.mjs +8 -2
- package/esm2022/libs/ui/dataviz/src/lib/data-table/data-table.component.mjs +4 -3
- package/esm2022/libs/ui/elements/src/lib/api-card/api-card.component.mjs +10 -4
- package/esm2022/libs/ui/elements/src/lib/download-item/download-item.component.mjs +8 -2
- package/esm2022/libs/ui/elements/src/lib/downloads-list/downloads-list.component.mjs +5 -4
- package/esm2022/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.mjs +12 -5
- package/esm2022/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.mjs +14 -4
- package/esm2022/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.mjs +4 -4
- package/esm2022/libs/ui/elements/src/lib/kind-badge/kind-badge.component.mjs +8 -2
- package/esm2022/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.mjs +21 -46
- package/esm2022/libs/ui/elements/src/lib/metadata-quality-item/metadata-quality-item.component.mjs +7 -7
- package/esm2022/libs/ui/elements/src/lib/notification/notification.component.mjs +8 -2
- package/esm2022/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.mjs +1 -6
- package/esm2022/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.mjs +5 -4
- package/esm2022/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.mjs +15 -5
- package/esm2022/libs/ui/search/src/index.mjs +1 -3
- package/esm2022/libs/ui/search/src/lib/facets/facet-block/facet-block.component.mjs +14 -30
- package/esm2022/libs/ui/search/src/lib/facets/facet-item/facet-item.component.mjs +6 -27
- package/esm2022/libs/ui/search/src/lib/facets/facet-list/facet-list.component.mjs +7 -4
- package/esm2022/libs/ui/search/src/lib/record-metric/record-metric.component.mjs +5 -4
- package/esm2022/libs/ui/search/src/lib/record-preview/record-preview.component.mjs +5 -2
- package/esm2022/libs/ui/search/src/lib/record-preview-card/record-preview-card.component.mjs +5 -4
- package/esm2022/libs/ui/search/src/lib/record-preview-feed/record-preview-feed.component.mjs +36 -7
- package/esm2022/libs/ui/search/src/lib/record-preview-list/record-preview-list.component.mjs +11 -5
- package/esm2022/libs/ui/search/src/lib/record-preview-row/record-preview-row.component.mjs +5 -4
- package/esm2022/libs/ui/search/src/lib/record-preview-text/record-preview-text.component.mjs +5 -4
- package/esm2022/libs/ui/search/src/lib/record-preview-title/record-preview-title.component.mjs +5 -4
- package/esm2022/libs/ui/search/src/lib/results-hits-number/results-hits-number.component.mjs +5 -4
- package/esm2022/libs/ui/search/src/lib/results-hits-search-kind/results-hits-search-kind.component.mjs +17 -7
- package/esm2022/libs/ui/search/src/lib/results-list/results-layout.config.mjs +4 -2
- package/esm2022/libs/ui/search/src/lib/results-list/results-list.component.mjs +5 -4
- package/esm2022/libs/ui/search/src/lib/results-list-item/results-list-item.component.mjs +5 -3
- package/esm2022/libs/ui/widgets/src/lib/popup-alert/popup-alert.component.mjs +14 -4
- package/esm2022/libs/util/app-config/src/lib/app-config.mjs +3 -1
- package/esm2022/libs/util/app-config/src/lib/fixtures.mjs +2 -2
- package/esm2022/libs/util/app-config/src/lib/model.mjs +1 -1
- package/esm2022/libs/util/app-config/src/lib/parse-utils.mjs +5 -4
- package/esm2022/libs/util/i18n/src/lib/language-codes.mjs +50 -9
- package/esm2022/libs/util/shared/src/index.mjs +2 -2
- package/esm2022/libs/util/shared/src/lib/links/link-utils.mjs +44 -9
- package/esm2022/libs/util/shared/src/lib/record/index.mjs +3 -0
- package/esm2022/libs/util/shared/src/lib/record/quality-score.util.mjs +46 -0
- package/esm2022/libs/util/shared/src/lib/record/record.util.mjs +56 -0
- package/esm2022/libs/util/shared/src/lib/utils/geojson.mjs +58 -1
- package/esm2022/libs/util/shared/src/lib/utils/index.mjs +3 -1
- package/esm2022/libs/util/shared/src/lib/utils/mobile-screen.mjs +9 -0
- package/esm2022/libs/util/shared/src/lib/utils/scroll.mjs +40 -0
- package/esm2022/translations/de.json +62 -21
- package/esm2022/translations/en.json +63 -22
- package/esm2022/translations/es.json +49 -8
- package/esm2022/translations/fr.json +69 -28
- package/esm2022/translations/it.json +62 -21
- package/esm2022/translations/nl.json +49 -8
- package/esm2022/translations/pt.json +49 -8
- package/esm2022/translations/sk.json +53 -12
- package/fesm2022/geonetwork-ui.mjs +8416 -8166
- package/fesm2022/geonetwork-ui.mjs.map +1 -1
- package/index.d.ts +0 -1
- package/index.d.ts.map +1 -1
- package/index.ts +0 -1
- package/libs/api/metadata-converter/src/lib/dcat-ap/read-parts.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts +1 -1
- package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/iso19139/utils/status.mapper.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts +2 -2
- package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts.map +1 -1
- package/libs/api/repository/src/index.d.ts +1 -1
- package/libs/api/repository/src/index.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 +1 -2
- package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/gn4.provider.d.ts +5 -1
- package/libs/api/repository/src/lib/gn4/gn4.provider.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/organizations/index.d.ts +2 -3
- package/libs/api/repository/src/lib/gn4/organizations/index.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/organizations/organization-strategy.token.d.ts +4 -0
- package/libs/api/repository/src/lib/gn4/organizations/organization-strategy.token.d.ts.map +1 -0
- package/libs/api/repository/src/lib/gn4/organizations/organizations-service.factory.d.ts +9 -0
- package/libs/api/repository/src/lib/gn4/organizations/organizations-service.factory.d.ts.map +1 -0
- package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts +14 -8
- 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 +2 -0
- package/libs/api/repository/src/lib/gn4/settings/gn4-settings.service.d.ts.map +1 -1
- package/libs/api/repository/src/lib/metadata-language.token.d.ts +5 -0
- package/libs/api/repository/src/lib/metadata-language.token.d.ts.map +1 -0
- package/libs/common/domain/src/lib/model/dataviz/dataviz-configuration.model.d.ts +1 -0
- package/libs/common/domain/src/lib/model/dataviz/dataviz-configuration.model.d.ts.map +1 -1
- package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +5 -1
- package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
- package/libs/common/domain/src/lib/platform.service.interface.d.ts +3 -0
- package/libs/common/domain/src/lib/platform.service.interface.d.ts.map +1 -1
- package/libs/feature/catalog/src/index.d.ts +0 -1
- package/libs/feature/catalog/src/index.d.ts.map +1 -1
- package/libs/feature/catalog/src/lib/organization-url.token.d.ts +1 -0
- package/libs/feature/catalog/src/lib/organization-url.token.d.ts.map +1 -1
- package/libs/feature/catalog/src/lib/site-title/site-title.component.d.ts +1 -1
- package/libs/feature/catalog/src/lib/site-title/site-title.component.d.ts.map +1 -1
- package/libs/feature/catalog/src/lib/source-label/source-label.component.d.ts +1 -1
- package/libs/feature/catalog/src/lib/source-label/source-label.component.d.ts.map +1 -1
- 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 +3 -2
- package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts.map +1 -1
- package/libs/feature/dataviz/src/lib/service/data.service.d.ts +1 -1
- package/libs/feature/dataviz/src/lib/service/data.service.d.ts.map +1 -1
- package/libs/feature/editor/src/index.d.ts +1 -0
- package/libs/feature/editor/src/index.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/+state/editor.effects.d.ts +1 -1
- package/libs/feature/editor/src/lib/+state/editor.effects.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/metadata-quality-panel/metadata-quality-panel.component.d.ts +19 -0
- package/libs/feature/editor/src/lib/components/metadata-quality-panel/metadata-quality-panel.component.d.ts.map +1 -0
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-inspire-field/form-field-inspire-theme.component.d.ts +20 -0
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-inspire-field/form-field-inspire-theme.component.d.ts.map +1 -0
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts +1 -0
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/index.d.ts +1 -0
- package/libs/feature/editor/src/lib/components/record-form/form-field/index.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/feature-editor.module.d.ts +3 -10
- package/libs/feature/editor/src/lib/feature-editor.module.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/fields.config.d.ts +8 -1
- package/libs/feature/editor/src/lib/fields.config.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/utils/map-utils.service.d.ts +2 -2
- package/libs/feature/map/src/lib/utils/map-utils.service.d.ts.map +1 -1
- package/libs/feature/notifications/src/index.d.ts +0 -1
- package/libs/feature/notifications/src/index.d.ts.map +1 -1
- package/libs/feature/record/src/lib/data-view/data-view.component.d.ts +8 -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 +4 -11
- package/libs/feature/record/src/lib/feature-record.module.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 +12 -5
- package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
- package/libs/feature/record/src/lib/record-meta/record-meta.component.d.ts.map +1 -1
- package/libs/feature/record/src/lib/state/mdview.facade.d.ts.map +1 -1
- package/libs/feature/router/src/lib/default/container/search-router.container.directive.d.ts +1 -1
- package/libs/feature/router/src/lib/default/container/search-router.container.directive.d.ts.map +1 -1
- package/libs/feature/router/src/lib/default/router.module.d.ts +4 -5
- package/libs/feature/router/src/lib/default/router.module.d.ts.map +1 -1
- package/libs/feature/router/src/lib/default/state/query-params.utils.d.ts.map +1 -1
- package/libs/feature/router/src/lib/default/state/router.facade.d.ts.map +1 -1
- package/libs/feature/search/src/index.d.ts +0 -1
- package/libs/feature/search/src/index.d.ts.map +1 -1
- package/libs/feature/search/src/lib/facets/facets-container/facets-container.component.d.ts +1 -1
- package/libs/feature/search/src/lib/facets/facets-container/facets-container.component.d.ts.map +1 -1
- package/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.d.ts +1 -0
- 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 +3 -26
- package/libs/feature/search/src/lib/feature-search.module.d.ts.map +1 -1
- package/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.d.ts +1 -1
- package/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.d.ts.map +1 -1
- package/libs/feature/search/src/lib/records-metrics/records-metrics.component.d.ts +1 -1
- package/libs/feature/search/src/lib/records-metrics/records-metrics.component.d.ts.map +1 -1
- package/libs/feature/search/src/lib/results-hits/results-hits.container.component.d.ts +1 -1
- package/libs/feature/search/src/lib/results-hits/results-hits.container.component.d.ts.map +1 -1
- package/libs/feature/search/src/lib/results-layout/results-layout.component.d.ts +1 -1
- package/libs/feature/search/src/lib/results-layout/results-layout.component.d.ts.map +1 -1
- package/libs/feature/search/src/lib/results-list/results-list.container.component.d.ts +1 -1
- package/libs/feature/search/src/lib/results-list/results-list.container.component.d.ts.map +1 -1
- package/libs/feature/search/src/lib/results-table/results-table-container.component.d.ts +1 -1
- package/libs/feature/search/src/lib/results-table/results-table-container.component.d.ts.map +1 -1
- package/libs/feature/search/src/lib/sort-by/sort-by.component.d.ts +1 -1
- package/libs/feature/search/src/lib/sort-by/sort-by.component.d.ts.map +1 -1
- package/libs/feature/search/src/lib/state/container/search-state.container.directive.d.ts +1 -1
- package/libs/feature/search/src/lib/state/container/search-state.container.directive.d.ts.map +1 -1
- package/libs/feature/search/src/lib/state/reducer.d.ts.map +1 -1
- package/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.d.ts.map +1 -1
- package/libs/ui/dataviz/src/lib/data-table/data-table.component.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/download-item/download-item.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts +2 -1
- package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/external-link-card/external-link-card.component.d.ts +1 -1
- package/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.d.ts +1 -0
- package/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/kind-badge/kind-badge.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts +7 -7
- package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/notification/notification.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.d.ts +1 -0
- package/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.d.ts.map +1 -1
- package/libs/ui/search/src/index.d.ts +0 -2
- package/libs/ui/search/src/index.d.ts.map +1 -1
- package/libs/ui/search/src/lib/facets/facet-block/facet-block.component.d.ts +1 -11
- package/libs/ui/search/src/lib/facets/facet-block/facet-block.component.d.ts.map +1 -1
- package/libs/ui/search/src/lib/facets/facet-item/facet-item.component.d.ts +1 -11
- package/libs/ui/search/src/lib/facets/facet-item/facet-item.component.d.ts.map +1 -1
- package/libs/ui/search/src/lib/facets/facet-list/facet-list.component.d.ts +1 -1
- package/libs/ui/search/src/lib/facets/facet-list/facet-list.component.d.ts.map +1 -1
- package/libs/ui/search/src/lib/record-metric/record-metric.component.d.ts +1 -1
- package/libs/ui/search/src/lib/record-metric/record-metric.component.d.ts.map +1 -1
- package/libs/ui/search/src/lib/record-preview/record-preview.component.d.ts +1 -1
- package/libs/ui/search/src/lib/record-preview/record-preview.component.d.ts.map +1 -1
- package/libs/ui/search/src/lib/record-preview-card/record-preview-card.component.d.ts +1 -1
- package/libs/ui/search/src/lib/record-preview-card/record-preview-card.component.d.ts.map +1 -1
- package/libs/ui/search/src/lib/record-preview-feed/record-preview-feed.component.d.ts +1 -1
- package/libs/ui/search/src/lib/record-preview-feed/record-preview-feed.component.d.ts.map +1 -1
- package/libs/ui/search/src/lib/record-preview-list/record-preview-list.component.d.ts +1 -1
- package/libs/ui/search/src/lib/record-preview-list/record-preview-list.component.d.ts.map +1 -1
- package/libs/ui/search/src/lib/record-preview-row/record-preview-row.component.d.ts +1 -1
- package/libs/ui/search/src/lib/record-preview-row/record-preview-row.component.d.ts.map +1 -1
- package/libs/ui/search/src/lib/record-preview-text/record-preview-text.component.d.ts +1 -1
- package/libs/ui/search/src/lib/record-preview-text/record-preview-text.component.d.ts.map +1 -1
- package/libs/ui/search/src/lib/record-preview-title/record-preview-title.component.d.ts +1 -1
- package/libs/ui/search/src/lib/record-preview-title/record-preview-title.component.d.ts.map +1 -1
- package/libs/ui/search/src/lib/results-hits-number/results-hits-number.component.d.ts +1 -1
- package/libs/ui/search/src/lib/results-hits-number/results-hits-number.component.d.ts.map +1 -1
- package/libs/ui/search/src/lib/results-hits-search-kind/results-hits-search-kind.component.d.ts +1 -1
- package/libs/ui/search/src/lib/results-hits-search-kind/results-hits-search-kind.component.d.ts.map +1 -1
- package/libs/ui/search/src/lib/results-list/results-layout.config.d.ts +1 -1
- package/libs/ui/search/src/lib/results-list/results-layout.config.d.ts.map +1 -1
- package/libs/ui/search/src/lib/results-list/results-list.component.d.ts +1 -1
- package/libs/ui/search/src/lib/results-list/results-list.component.d.ts.map +1 -1
- package/libs/ui/search/src/lib/results-list-item/results-list-item.component.d.ts +1 -1
- package/libs/ui/search/src/lib/results-list-item/results-list-item.component.d.ts.map +1 -1
- package/libs/ui/widgets/src/lib/popup-alert/popup-alert.component.d.ts.map +1 -1
- package/libs/util/app-config/src/lib/app-config.d.ts.map +1 -1
- package/libs/util/app-config/src/lib/model.d.ts +1 -0
- package/libs/util/app-config/src/lib/model.d.ts.map +1 -1
- package/libs/util/app-config/src/lib/parse-utils.d.ts.map +1 -1
- package/libs/util/i18n/src/lib/language-codes.d.ts +91 -31
- 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/links/link-utils.d.ts +28 -8
- package/libs/util/shared/src/lib/links/link-utils.d.ts.map +1 -1
- package/libs/util/shared/src/lib/record/index.d.ts +3 -0
- package/libs/util/shared/src/lib/record/index.d.ts.map +1 -0
- package/libs/util/shared/src/lib/record/quality-score.util.d.ts +13 -0
- package/libs/util/shared/src/lib/record/quality-score.util.d.ts.map +1 -0
- package/libs/util/shared/src/lib/record/record.util.d.ts +3 -0
- package/libs/util/shared/src/lib/record/record.util.d.ts.map +1 -0
- package/libs/util/shared/src/lib/utils/geojson.d.ts +7 -2
- package/libs/util/shared/src/lib/utils/geojson.d.ts.map +1 -1
- package/libs/util/shared/src/lib/utils/index.d.ts +2 -0
- package/libs/util/shared/src/lib/utils/index.d.ts.map +1 -1
- package/libs/util/shared/src/lib/utils/mobile-screen.d.ts +2 -0
- package/libs/util/shared/src/lib/utils/mobile-screen.d.ts.map +1 -0
- package/libs/util/shared/src/lib/utils/scroll.d.ts +12 -0
- package/libs/util/shared/src/lib/utils/scroll.d.ts.map +1 -0
- package/package.json +11 -10
- package/src/libs/api/metadata-converter/src/lib/dcat-ap/read-parts.ts +3 -6
- package/src/libs/api/metadata-converter/src/lib/dcat-ap/utils/status.mapper.ts +3 -0
- package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +47 -22
- package/src/libs/api/metadata-converter/src/lib/gn4/metadata-url.service.ts +2 -2
- package/src/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.ts +2 -2
- package/src/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.ts +2 -2
- package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +3 -3
- package/src/libs/api/metadata-converter/src/lib/iso19139/utils/status.mapper.ts +3 -0
- package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +10 -6
- package/src/libs/api/repository/src/index.ts +1 -1
- package/src/libs/api/repository/src/lib/gn4/auth/auth.service.ts +4 -4
- package/src/libs/api/repository/src/lib/gn4/elasticsearch/constant.ts +3 -5
- package/src/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.ts +65 -14
- package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +2 -2
- package/src/libs/api/repository/src/lib/gn4/gn4.provider.ts +38 -2
- package/src/libs/api/repository/src/lib/gn4/organizations/index.ts +2 -11
- package/src/libs/api/repository/src/lib/gn4/organizations/organization-strategy.token.ts +10 -0
- package/src/libs/api/repository/src/lib/gn4/organizations/organizations-from-groups.service.ts +2 -2
- package/src/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.ts +2 -2
- package/src/libs/api/repository/src/lib/gn4/organizations/organizations-service.factory.ts +33 -0
- package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +76 -44
- package/src/libs/api/repository/src/lib/gn4/settings/gn4-settings.service.ts +8 -0
- package/src/libs/api/repository/src/lib/metadata-language.token.ts +8 -0
- package/src/libs/common/domain/src/lib/model/dataviz/dataviz-configuration.model.ts +1 -0
- package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +21 -1
- package/src/libs/common/domain/src/lib/platform.service.interface.ts +4 -0
- package/src/libs/common/fixtures/src/lib/editor/editor.fixtures.ts +0 -3
- package/src/libs/feature/catalog/src/index.ts +0 -1
- package/src/libs/feature/catalog/src/lib/organization-url.token.ts +5 -0
- package/src/libs/feature/catalog/src/lib/site-title/site-title.component.ts +4 -0
- package/src/libs/feature/catalog/src/lib/source-label/source-label.component.ts +3 -0
- package/src/libs/feature/catalog/src/lib/sources/sources.service.ts +2 -5
- package/src/libs/feature/dataviz/src/lib/chart-view/chart-view.component.ts +10 -1
- package/src/libs/feature/dataviz/src/lib/service/data.service.ts +7 -5
- package/src/libs/feature/editor/src/index.ts +1 -0
- package/src/libs/feature/editor/src/lib/+state/editor.effects.ts +3 -3
- package/src/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.ts +8 -1
- package/src/libs/feature/editor/src/lib/components/metadata-quality-panel/metadata-quality-panel.component.css +0 -0
- package/src/libs/feature/editor/src/lib/components/metadata-quality-panel/metadata-quality-panel.component.html +37 -0
- package/src/libs/feature/editor/src/lib/components/metadata-quality-panel/metadata-quality-panel.component.ts +90 -0
- package/src/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.html +2 -1
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-inspire-field/form-field-inspire-theme.component.css +0 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-inspire-field/form-field-inspire-theme.component.html +22 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-inspire-field/form-field-inspire-theme.component.ts +57 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.html +6 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.ts +5 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/index.ts +1 -0
- package/src/libs/feature/editor/src/lib/feature-editor.module.ts +2 -18
- package/src/libs/feature/editor/src/lib/fields.config.ts +85 -3
- package/src/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-from-catalog.component.ts +8 -1
- package/src/libs/feature/map/src/lib/utils/map-utils.service.ts +8 -8
- package/src/libs/feature/notifications/src/index.ts +0 -1
- package/src/libs/feature/record/src/lib/data-view/data-view.component.html +2 -0
- package/src/libs/feature/record/src/lib/data-view/data-view.component.ts +36 -15
- package/src/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.ts +7 -2
- package/src/libs/feature/record/src/lib/feature-record.module.ts +1 -21
- package/src/libs/feature/record/src/lib/gpf-api-dl-list-item/gpf-api-dl-list-item.component.ts +5 -2
- package/src/libs/feature/record/src/lib/map-view/map-view.component.html +2 -0
- package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +81 -25
- package/src/libs/feature/record/src/lib/record-meta/record-meta.component.ts +2 -0
- package/src/libs/feature/record/src/lib/state/mdview.facade.ts +4 -2
- package/src/libs/feature/router/src/lib/default/container/search-router.container.directive.ts +1 -0
- package/src/libs/feature/router/src/lib/default/router.module.ts +0 -3
- package/src/libs/feature/router/src/lib/default/state/query-params.utils.ts +5 -2
- package/src/libs/feature/router/src/lib/default/state/router.facade.ts +2 -1
- package/src/libs/feature/search/src/index.ts +0 -1
- package/src/libs/feature/search/src/lib/facets/facets-container/facets-container.component.ts +14 -1
- package/src/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.ts +23 -16
- package/src/libs/feature/search/src/lib/feature-search.module.ts +0 -61
- package/src/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.ts +12 -1
- package/src/libs/feature/search/src/lib/records-metrics/records-metrics.component.ts +5 -0
- package/src/libs/feature/search/src/lib/results-hits/results-hits.container.component.ts +11 -0
- package/src/libs/feature/search/src/lib/results-layout/results-layout.component.ts +5 -0
- package/src/libs/feature/search/src/lib/results-list/results-list.container.component.ts +21 -1
- package/src/libs/feature/search/src/lib/results-table/results-table-container.component.ts +1 -1
- package/src/libs/feature/search/src/lib/sort-by/sort-by.component.ts +5 -0
- package/src/libs/feature/search/src/lib/state/container/search-state.container.directive.ts +1 -0
- package/src/libs/feature/search/src/lib/state/reducer.ts +4 -1
- package/src/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.ts +4 -1
- package/src/libs/ui/dataviz/src/lib/data-table/data-table.component.ts +6 -1
- package/src/libs/ui/elements/src/lib/api-card/api-card.component.html +4 -1
- package/src/libs/ui/elements/src/lib/api-card/api-card.component.ts +4 -1
- package/src/libs/ui/elements/src/lib/download-item/download-item.component.ts +4 -1
- package/src/libs/ui/elements/src/lib/downloads-list/downloads-list.component.html +12 -11
- package/src/libs/ui/elements/src/lib/downloads-list/downloads-list.component.ts +7 -1
- package/src/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.html +4 -1
- package/src/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.ts +11 -2
- package/src/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.ts +7 -2
- package/src/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.html +1 -0
- package/src/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.ts +5 -1
- package/src/libs/ui/elements/src/lib/kind-badge/kind-badge.component.ts +8 -1
- package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.html +1 -0
- package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.ts +21 -58
- package/src/libs/ui/elements/src/lib/metadata-quality-item/metadata-quality-item.component.ts +6 -6
- package/src/libs/ui/elements/src/lib/notification/notification.component.ts +8 -1
- package/src/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.ts +0 -6
- package/src/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.html +7 -1
- package/src/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.ts +3 -1
- package/src/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.html +4 -3
- package/src/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.ts +9 -4
- package/src/libs/ui/search/src/index.ts +0 -2
- package/src/libs/ui/search/src/lib/facets/facet-block/facet-block.component.ts +12 -11
- package/src/libs/ui/search/src/lib/facets/facet-item/facet-item.component.ts +5 -11
- package/src/libs/ui/search/src/lib/facets/facet-list/facet-list.component.ts +6 -0
- package/src/libs/ui/search/src/lib/record-metric/record-metric.component.ts +4 -0
- package/src/libs/ui/search/src/lib/record-preview/record-preview.component.ts +3 -0
- package/src/libs/ui/search/src/lib/record-preview-card/record-preview-card.component.ts +4 -0
- package/src/libs/ui/search/src/lib/record-preview-feed/record-preview-feed.component.ts +33 -1
- package/src/libs/ui/search/src/lib/record-preview-list/record-preview-list.component.ts +10 -0
- package/src/libs/ui/search/src/lib/record-preview-row/record-preview-row.component.ts +4 -0
- package/src/libs/ui/search/src/lib/record-preview-text/record-preview-text.component.ts +4 -0
- package/src/libs/ui/search/src/lib/record-preview-title/record-preview-title.component.ts +4 -0
- package/src/libs/ui/search/src/lib/results-hits-number/results-hits-number.component.ts +4 -0
- package/src/libs/ui/search/src/lib/results-hits-search-kind/results-hits-search-kind.component.html +1 -4
- package/src/libs/ui/search/src/lib/results-hits-search-kind/results-hits-search-kind.component.ts +16 -2
- package/src/libs/ui/search/src/lib/results-list/results-layout.config.ts +5 -3
- package/src/libs/ui/search/src/lib/results-list/results-list.component.ts +4 -0
- package/src/libs/ui/search/src/lib/results-list-item/results-list-item.component.ts +3 -0
- package/src/libs/ui/widgets/src/lib/popup-alert/popup-alert.component.ts +6 -1
- package/src/libs/util/app-config/src/lib/app-config.ts +2 -0
- package/src/libs/util/app-config/src/lib/fixtures.ts +1 -1
- package/src/libs/util/app-config/src/lib/model.ts +1 -0
- package/src/libs/util/app-config/src/lib/parse-utils.ts +4 -7
- package/src/libs/util/i18n/src/lib/language-codes.ts +62 -11
- package/src/libs/util/shared/src/index.ts +1 -1
- package/src/libs/util/shared/src/lib/links/link-utils.ts +43 -8
- package/src/libs/util/shared/src/lib/record/index.ts +2 -0
- package/src/libs/util/shared/src/lib/record/quality-score.util.ts +72 -0
- package/src/libs/util/shared/src/lib/{record.util.ts → record/record.util.ts} +1 -1
- package/src/libs/util/shared/src/lib/utils/geojson.ts +72 -2
- package/src/libs/util/shared/src/lib/utils/index.ts +2 -0
- package/src/libs/util/shared/src/lib/utils/mobile-screen.ts +14 -0
- package/src/libs/util/shared/src/lib/utils/scroll.ts +48 -0
- package/translations/de.json +62 -21
- package/translations/en.json +63 -22
- package/translations/es.json +49 -8
- package/translations/fr.json +69 -28
- package/translations/it.json +62 -21
- package/translations/nl.json +49 -8
- package/translations/pt.json +49 -8
- package/translations/sk.json +53 -12
- package/esm2022/libs/api/repository/src/lib/metadata-language.mjs +0 -3
- package/esm2022/libs/feature/auth/src/index.mjs +0 -2
- package/esm2022/libs/feature/auth/src/lib/feature-auth.module.mjs +0 -17
- package/esm2022/libs/feature/catalog/src/lib/feature-catalog.module.mjs +0 -57
- package/esm2022/libs/feature/notifications/src/lib/feature-notifications.module.mjs +0 -18
- package/esm2022/libs/feature/search/src/lib/facets/facets.module.mjs +0 -21
- package/esm2022/libs/ui/search/src/lib/facets/facets.module.mjs +0 -23
- package/esm2022/libs/ui/search/src/lib/ui-search.module.mjs +0 -168
- package/esm2022/libs/util/app-config/src/lib/constants.mjs +0 -439
- package/esm2022/libs/util/shared/src/lib/record.util.mjs +0 -56
- package/libs/api/repository/src/lib/metadata-language.d.ts +0 -3
- package/libs/api/repository/src/lib/metadata-language.d.ts.map +0 -1
- package/libs/feature/auth/src/index.d.ts +0 -2
- package/libs/feature/auth/src/index.d.ts.map +0 -1
- package/libs/feature/auth/src/lib/feature-auth.module.d.ts +0 -8
- package/libs/feature/auth/src/lib/feature-auth.module.d.ts.map +0 -1
- package/libs/feature/catalog/src/lib/feature-catalog.module.d.ts +0 -14
- package/libs/feature/catalog/src/lib/feature-catalog.module.d.ts.map +0 -1
- package/libs/feature/notifications/src/lib/feature-notifications.module.d.ts +0 -7
- package/libs/feature/notifications/src/lib/feature-notifications.module.d.ts.map +0 -1
- package/libs/feature/search/src/lib/facets/facets.module.d.ts +0 -11
- package/libs/feature/search/src/lib/facets/facets.module.d.ts.map +0 -1
- package/libs/ui/search/src/lib/facets/facets.module.d.ts +0 -13
- package/libs/ui/search/src/lib/facets/facets.module.d.ts.map +0 -1
- package/libs/ui/search/src/lib/ui-search.module.d.ts +0 -36
- package/libs/ui/search/src/lib/ui-search.module.d.ts.map +0 -1
- package/libs/util/app-config/src/lib/constants.d.ts +0 -2
- package/libs/util/app-config/src/lib/constants.d.ts.map +0 -1
- package/libs/util/shared/src/lib/record.util.d.ts +0 -3
- package/libs/util/shared/src/lib/record.util.d.ts.map +0 -1
- package/src/libs/api/repository/src/lib/metadata-language.ts +0 -3
- package/src/libs/feature/auth/src/index.ts +0 -1
- package/src/libs/feature/auth/src/lib/feature-auth.module.ts +0 -12
- package/src/libs/feature/catalog/src/lib/feature-catalog.module.ts +0 -71
- package/src/libs/feature/notifications/src/lib/feature-notifications.module.ts +0 -10
- package/src/libs/feature/search/src/lib/facets/facets.module.ts +0 -12
- package/src/libs/ui/search/src/lib/facets/facets.module.ts +0 -14
- package/src/libs/ui/search/src/lib/ui-search.module.ts +0 -108
|
@@ -243,7 +243,7 @@ export class MultilingualPanelComponent {
|
|
|
243
243
|
provideNgIconsConfig({
|
|
244
244
|
size: '1.25em',
|
|
245
245
|
}),
|
|
246
|
-
], viewQueries: [{ propertyName: "actionMenuButtons", predicate: ["actionMenuButton"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div\n class=\"flex flex-col h-full w-[302px]
|
|
246
|
+
], viewQueries: [{ propertyName: "actionMenuButtons", predicate: ["actionMenuButton"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div\n class=\"flex flex-col h-full w-[302px] border-l border-gray-300 py-8 px-3 gap-6 overflow-auto\"\n style=\"background-color: #fafaf9\"\n>\n <div class=\"flex flex-row px-2 justify-between\">\n <span class=\"text-3xl font-title text-black/80\" translate\n >editor.record.form.multilingual.title</span\n >\n <button\n [title]=\"'editor.record.form.multilingual.open' | translate\"\n (click)=\"toggleLanguageSelection()\"\n *ngIf=\"isMultilingual\"\n data-test=\"activateSelection\"\n >\n <ng-icon class=\"mt-1\" name=\"iconoirSettings\"></ng-icon>\n </button>\n </div>\n <div class=\"flex flex-col gap-2\" *ngIf=\"editTranslations || !isMultilingual\">\n <gn-ui-check-toggle\n class=\"p-2\"\n [label]=\"'editor.record.form.multilingual.enable' | translate\"\n [color]=\"'primary'\"\n [(value)]=\"isMultilingual\"\n (toggled)=\"switchMultilingual($event)\"\n ></gn-ui-check-toggle>\n <div *ngIf=\"isMultilingual\" class=\"flex flex-col gap-2\">\n <div class=\"flex flex-row justify-between border-t border-gray-300 p-3\">\n <span class=\"mt-2 text-sm text-gray-600\" translate\n >editor.record.form.multilingual.activate</span\n >\n <gn-ui-button\n extraClass=\"w-16 h-8 font-bold\"\n type=\"gray\"\n (buttonClick)=\"validateTranslations()\"\n data-test=\"validateSelection\"\n >{{ 'editor.record.form.multilingual.validate' | translate }}\n </gn-ui-button>\n </div>\n <ng-container *ngIf=\"supportedLanguages$ | async as languages\">\n <div\n class=\"flex flex-col gap-2 w-full px-2\"\n data-test=\"langAvailable\"\n *ngFor=\"let lang of languages\"\n >\n <gn-ui-button\n [extraClass]=\"getExtraClass(lang)\"\n type=\"gray\"\n (buttonClick)=\"toggleLanguage(lang)\"\n [disabled]=\"lang === _record.defaultLanguage\"\n [title]=\"getToggleTitle(lang)\"\n >\n <span [class]=\"getIconClass(lang)\"></span>\n <span class=\"ml-2\">{{ 'language.' + lang | translate }}</span>\n </gn-ui-button>\n </div>\n </ng-container>\n </div>\n </div>\n <div *ngIf=\"!editTranslations && isMultilingual\" class=\"flex flex-col gap-2\">\n <gn-ui-button\n *ngFor=\"let recordLang of sortLanguages(recordLanguages); let i = index\"\n extraClass=\"flex flex-row justify-between bg-white border border-white rounded mb-1 h-[34px] w-full\"\n [ngClass]=\"{\n 'mt-8': isFirstUnsupported(i),\n '': true,\n }\"\n (buttonClick)=\"switchFormLang(recordLang)\"\n type=\"outline\"\n data-test=\"langSwitch\"\n >\n <div class=\"flex flex-row gap-2 items-center\">\n <ng-icon\n *ngIf=\"recordLang === formLanguage\"\n class=\"text-primary mt-1\"\n name=\"iconoirCheckCircle\"\n ></ng-icon>\n <ng-icon\n *ngIf=\"recordLang !== formLanguage\"\n class=\"text-gray-800 mt-1\"\n name=\"iconoirCircle\"\n ></ng-icon>\n <span\n *ngIf=\"recordLang.length === 2\"\n [class]=\"getIconClass(recordLang) + 'mt-1'\"\n ></span>\n <span [ngClass]=\"recordLang === formLanguage ? 'text-black' : ''\">{{\n isLangSupported(recordLang)\n ? ('language.' + recordLang | translate)\n : recordLang.toUpperCase()\n }}</span>\n </div>\n <div class=\"flex flex-row gap-2 items-center\">\n <span\n *ngIf=\"recordLang === formLanguage\"\n class=\"text-xs text-base\"\n translate\n >editor.record.form.multilingual.default</span\n >\n <button\n (click)=\"\n openActionMenu(recordLang, template); $event.stopPropagation()\n \"\n cdkOverlayOrigin\n #actionMenuButton\n >\n <ng-icon class=\"pb-5\" name=\"matMoreHorizOutline\"></ng-icon>\n </button>\n <ng-template #template>\n <gn-ui-action-menu\n [canDelete]=\"recordLang !== _record.defaultLanguage\"\n page=\"record\"\n (delete)=\"confirmDeleteAction(recordLang)\"\n (closeActionMenu)=\"closeActionMenu()\"\n (switch)=\"switchDefaultLang(recordLang)\"\n >\n </gn-ui-action-menu>\n </ng-template>\n </div>\n </gn-ui-button>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "component", type: CheckToggleComponent, selector: "gn-ui-check-toggle", inputs: ["title", "label", "value", "color"], outputs: ["toggled"] }, { kind: "directive", type: TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { 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: "component", type: ActionMenuComponent, selector: "gn-ui-action-menu", inputs: ["canDuplicate", "isDuplicating", "canDelete", "page"], outputs: ["duplicate", "delete", "closeActionMenu", "rollback", "switch"] }] }); }
|
|
247
247
|
}
|
|
248
248
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MultilingualPanelComponent, decorators: [{
|
|
249
249
|
type: Component,
|
|
@@ -265,11 +265,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
265
265
|
provideNgIconsConfig({
|
|
266
266
|
size: '1.25em',
|
|
267
267
|
}),
|
|
268
|
-
], template: "<div\n class=\"flex flex-col h-full w-[302px]
|
|
268
|
+
], template: "<div\n class=\"flex flex-col h-full w-[302px] border-l border-gray-300 py-8 px-3 gap-6 overflow-auto\"\n style=\"background-color: #fafaf9\"\n>\n <div class=\"flex flex-row px-2 justify-between\">\n <span class=\"text-3xl font-title text-black/80\" translate\n >editor.record.form.multilingual.title</span\n >\n <button\n [title]=\"'editor.record.form.multilingual.open' | translate\"\n (click)=\"toggleLanguageSelection()\"\n *ngIf=\"isMultilingual\"\n data-test=\"activateSelection\"\n >\n <ng-icon class=\"mt-1\" name=\"iconoirSettings\"></ng-icon>\n </button>\n </div>\n <div class=\"flex flex-col gap-2\" *ngIf=\"editTranslations || !isMultilingual\">\n <gn-ui-check-toggle\n class=\"p-2\"\n [label]=\"'editor.record.form.multilingual.enable' | translate\"\n [color]=\"'primary'\"\n [(value)]=\"isMultilingual\"\n (toggled)=\"switchMultilingual($event)\"\n ></gn-ui-check-toggle>\n <div *ngIf=\"isMultilingual\" class=\"flex flex-col gap-2\">\n <div class=\"flex flex-row justify-between border-t border-gray-300 p-3\">\n <span class=\"mt-2 text-sm text-gray-600\" translate\n >editor.record.form.multilingual.activate</span\n >\n <gn-ui-button\n extraClass=\"w-16 h-8 font-bold\"\n type=\"gray\"\n (buttonClick)=\"validateTranslations()\"\n data-test=\"validateSelection\"\n >{{ 'editor.record.form.multilingual.validate' | translate }}\n </gn-ui-button>\n </div>\n <ng-container *ngIf=\"supportedLanguages$ | async as languages\">\n <div\n class=\"flex flex-col gap-2 w-full px-2\"\n data-test=\"langAvailable\"\n *ngFor=\"let lang of languages\"\n >\n <gn-ui-button\n [extraClass]=\"getExtraClass(lang)\"\n type=\"gray\"\n (buttonClick)=\"toggleLanguage(lang)\"\n [disabled]=\"lang === _record.defaultLanguage\"\n [title]=\"getToggleTitle(lang)\"\n >\n <span [class]=\"getIconClass(lang)\"></span>\n <span class=\"ml-2\">{{ 'language.' + lang | translate }}</span>\n </gn-ui-button>\n </div>\n </ng-container>\n </div>\n </div>\n <div *ngIf=\"!editTranslations && isMultilingual\" class=\"flex flex-col gap-2\">\n <gn-ui-button\n *ngFor=\"let recordLang of sortLanguages(recordLanguages); let i = index\"\n extraClass=\"flex flex-row justify-between bg-white border border-white rounded mb-1 h-[34px] w-full\"\n [ngClass]=\"{\n 'mt-8': isFirstUnsupported(i),\n '': true,\n }\"\n (buttonClick)=\"switchFormLang(recordLang)\"\n type=\"outline\"\n data-test=\"langSwitch\"\n >\n <div class=\"flex flex-row gap-2 items-center\">\n <ng-icon\n *ngIf=\"recordLang === formLanguage\"\n class=\"text-primary mt-1\"\n name=\"iconoirCheckCircle\"\n ></ng-icon>\n <ng-icon\n *ngIf=\"recordLang !== formLanguage\"\n class=\"text-gray-800 mt-1\"\n name=\"iconoirCircle\"\n ></ng-icon>\n <span\n *ngIf=\"recordLang.length === 2\"\n [class]=\"getIconClass(recordLang) + 'mt-1'\"\n ></span>\n <span [ngClass]=\"recordLang === formLanguage ? 'text-black' : ''\">{{\n isLangSupported(recordLang)\n ? ('language.' + recordLang | translate)\n : recordLang.toUpperCase()\n }}</span>\n </div>\n <div class=\"flex flex-row gap-2 items-center\">\n <span\n *ngIf=\"recordLang === formLanguage\"\n class=\"text-xs text-base\"\n translate\n >editor.record.form.multilingual.default</span\n >\n <button\n (click)=\"\n openActionMenu(recordLang, template); $event.stopPropagation()\n \"\n cdkOverlayOrigin\n #actionMenuButton\n >\n <ng-icon class=\"pb-5\" name=\"matMoreHorizOutline\"></ng-icon>\n </button>\n <ng-template #template>\n <gn-ui-action-menu\n [canDelete]=\"recordLang !== _record.defaultLanguage\"\n page=\"record\"\n (delete)=\"confirmDeleteAction(recordLang)\"\n (closeActionMenu)=\"closeActionMenu()\"\n (switch)=\"switchDefaultLang(recordLang)\"\n >\n </gn-ui-action-menu>\n </ng-template>\n </div>\n </gn-ui-button>\n </div>\n</div>\n" }]
|
|
269
269
|
}], ctorParameters: () => [{ type: i1.EditorFacade }, { type: i2.MatDialog }, { type: i3.TranslateService }, { type: i4.RecordsRepositoryInterface }, { type: i5.Overlay }, { type: i0.ViewContainerRef }, { type: i0.ChangeDetectorRef }], propDecorators: { record: [{
|
|
270
270
|
type: Input
|
|
271
271
|
}], actionMenuButtons: [{
|
|
272
272
|
type: ViewChildren,
|
|
273
273
|
args: ['actionMenuButton', { read: ElementRef }]
|
|
274
274
|
}] } });
|
|
275
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlsaW5ndWFsLXBhbmVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9lZGl0b3Ivc3JjL2xpYi9jb21wb25lbnRzL211bHRpbGluZ3VhbC1wYW5lbC9tdWx0aWxpbmd1YWwtcGFuZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL2VkaXRvci9zcmMvbGliL2NvbXBvbmVudHMvbXVsdGlsaW5ndWFsLXBhbmVsL211bHRpbGluZ3VhbC1wYW5lbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsS0FBSyxFQUdMLFNBQVMsRUFDVCxZQUFZLEVBQ1osZ0JBQWdCLEdBQ2pCLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsZUFBZSxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUNBQXlDLENBQUE7QUFDL0YsT0FBTyxFQUNMLGtCQUFrQixFQUNsQixhQUFhLEVBQ2IsZ0JBQWdCLEdBQ2pCLE1BQU0scUJBQXFCLENBQUE7QUFFNUIsT0FBTyxFQUNMLGVBQWUsRUFDZixZQUFZLEVBQ1osb0JBQW9CLEdBQ3JCLE1BQU0sZ0JBQWdCLENBQUE7QUFDdkIsT0FBTyxFQUNMLGtCQUFrQixFQUNsQixhQUFhLEVBQ2IsZUFBZSxHQUNoQixNQUFNLG1CQUFtQixDQUFBO0FBQzFCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFBO0FBQ3RFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQTtBQUN6RCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQTtBQUN2RixPQUFPLEVBQUUs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QUFJLEVBQUUsUUFBUTthQUNmLENBQUM7U0FDSCwrR0FtQnlDLFVBQVUsNkJDaEd0RCxpNklBd0hBLHlERDdESSxZQUFZLG1aQUNaLG9CQUFvQixtSUFDcEIsa0JBQWtCLDZHQUNsQixhQUFhLGtEQUNiLGVBQWUsK0hBQ2YsZUFBZSw2R0FDZixtQkFBbUI7OzRGQWdCViwwQkFBMEI7a0JBMUJ0QyxTQUFTOytCQUNFLDBCQUEwQixjQUN4QixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixvQkFBb0I7d0JBQ3BCLGtCQUFrQjt3QkFDbEIsYUFBYTt3QkFDYixlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsbUJBQW1CO3FCQUNwQixhQUNVO3dCQUNULFlBQVksQ0FBQzs0QkFDWCxlQUFlOzRCQUNmLG1CQUFtQjs0QkFDbkIsa0JBQWtCOzRCQUNsQixhQUFhO3lCQUNkLENBQUM7d0JBQ0Ysb0JBQW9CLENBQUM7NEJBQ25CLElBQUksRUFBRSxRQUFRO3lCQUNmLENBQUM7cUJBQ0g7c1FBV1ksTUFBTTtzQkFBbEIsS0FBSztnQkFTTixpQkFBaUI7c0JBRGhCLFlBQVk7dUJBQUMsa0JBQWtCLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBRdWVyeUxpc3QsXG4gIFZpZXdDaGlsZHJlbixcbiAgVmlld0NvbnRhaW5lclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCwgQ2hlY2tUb2dnbGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2lucHV0cy9zcmMnXG5pbXBvcnQge1xuICBUcmFuc2xhdGVEaXJlY3RpdmUsXG4gIFRyYW5zbGF0ZVBpcGUsXG4gIFRyYW5zbGF0ZVNlcnZpY2UsXG59IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5pbXBvcnQgeyBDYXRhbG9nUmVjb3JkIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuaW1wb3J0IHtcbiAgTmdJY29uQ29tcG9uZW50LFxuICBwcm92aWRlSWNvbnMsXG4gIHByb3ZpZGVOZ0ljb25zQ29uZmlnLFxufSBmcm9tICdAbmctaWNvbnMvY29yZSdcbmltcG9ydCB7XG4gIGljb25vaXJDaGVja0NpcmNsZSxcbiAgaWNvbm9pckNpcmNsZSxcbiAgaWNvbm9pclNldHRpbmdzLFxufSBmcm9tICdAbmctaWNvbnMvaWNvbm9pcidcbmltcG9ydCB7IG1hdE1vcmVIb3Jpek91dGxpbmUgfSBmcm9tICdAbmctaWNvbnMvbWF0ZXJpYWwtaWNvbnMvb3V0bGluZSdcbmltcG9ydCB7IEVkaXRvckZhY2FkZSB9IGZyb20gJy4uLy4uLytzdGF0ZS9lZGl0b3IuZmFjYWRlJ1xuaW1wb3J0IHsgQ29uZmlybWF0aW9uRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9lbGVtZW50cy9zcmMnXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnXG5pbXBvcnQgeyBSZWNvcmRzUmVwb3NpdG9yeUludGVyZmFjZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL3JlcG9zaXRvcnkvcmVjb3Jkcy1yZXBvc2l0b3J5LmludGVyZmFjZSdcbmltcG9ydCB7IG1hcCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IE92ZXJsYXksIE92ZXJsYXlSZWYgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSdcbmltcG9ydCB7IFRlbXBsYXRlUG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCdcbmltcG9ydCB7IEFjdGlvbk1lbnVDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL3NlYXJjaC9zcmMnXG5cbmNvbnN0IGV4dHJhRmxhZ01hcDogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHtcbiAgYXI6ICdhcmFiJyxcbiAgZW46ICdnYicsXG4gIGtvOiAna3InLFxuICBjczogJ2N6JyxcbiAgemg6ICdjbicsXG4gIGNhOiAnZXMtY3QnLFxuICBybTogJ2NoJyxcbiAgZGE6ICdkaycsXG4gIHN2OiAnc2UnLFxuICBjeTogJ2diLXdscycsXG4gIGh5OiAnYW0nLFxuICBrYTogJ2dlJyxcbiAgdWs6ICd1YScsXG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLW11bHRpbGluZ3VhbC1wYW5lbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgQ2hlY2tUb2dnbGVDb21wb25lbnQsXG4gICAgVHJhbnNsYXRlRGlyZWN0aXZlLFxuICAgIFRyYW5zbGF0ZVBpcGUsXG4gICAgQnV0dG9uQ29tcG9uZW50LFxuICAgIE5nSWNvbkNvbXBvbmVudCxcbiAgICBBY3Rpb25NZW51Q29tcG9uZW50LFxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICBwcm92aWRlSWNvbnMoe1xuICAgICAgaWNvbm9pclNldHRpbmdzLFxuICAgICAgbWF0TW9yZUhvcml6T3V0bGluZSxcbiAgICAgIGljb25vaXJDaGVja0NpcmNsZSxcbiAgICAgIGljb25vaXJDaXJjbGUsXG4gICAgfSksXG4gICAgcHJvdmlkZU5nSWNvbnNDb25maWcoe1xuICAgICAgc2l6ZTogJzEuMjVlbScsXG4gICAgfSksXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9tdWx0aWxpbmd1YWwtcGFuZWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vbXVsdGlsaW5ndWFsLXBhbmVsLmNvbXBvbmVudC5jc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBNdWx0aWxpbmd1YWxQYW5lbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIGlzTXVsdGlsaW5ndWFsOiBib29sZWFuXG4gIF9yZWNvcmQ6IENhdGFsb2dSZWNvcmRcbiAgZWRpdFRyYW5zbGF0aW9uczogYm9vbGVhblxuICBzZWxlY3RlZExhbmd1YWdlcyA9IFtdXG4gIHJlY29yZExhbmd1YWdlcyA9IFtdXG4gIGZvcm1MYW5ndWFnZSA9ICcnXG4gIEBJbnB1dCgpIHNldCByZWNvcmQodmFsdWU6IENhdGFsb2dSZWNvcmQpIHtcbiAgICB0aGlzLl9yZWNvcmQgPSB2YWx1ZVxuICAgIHRoaXMuaXNNdWx0aWxpbmd1YWwgPSB2YWx1ZS5vdGhlckxhbmd1YWdlcy5sZW5ndGggPiAwXG4gICAgdGhpcy5lZGl0VHJhbnNsYXRpb25zID0gZmFsc2VcbiAgICB0aGlzLnJlY29yZExhbmd1YWdlcyA9IFsuLi52YWx1ZS5vdGhlckxhbmd1YWdlcywgdmFsdWUuZGVmYXVsdExhbmd1YWdlXVxuICAgIHRoaXMuc2VsZWN0ZWRMYW5ndWFnZXMgPSB0aGlzLnJlY29yZExhbmd1YWdlc1xuICAgIHRoaXMuZm9ybUxhbmd1YWdlID0gdmFsdWUuZGVmYXVsdExhbmd1YWdlXG4gIH1cbiAgQFZpZXdDaGlsZHJlbignYWN0aW9uTWVudUJ1dHRvbicsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICBhY3Rpb25NZW51QnV0dG9ucyE6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPlxuICBwcml2YXRlIG92ZXJsYXlSZWYhOiBPdmVybGF5UmVmXG5cbiAgaXNBY3Rpb25NZW51T3BlbiA9IGZhbHNlXG4gIHN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKVxuXG4gIHN1cHBvcnRlZExhbmd1YWdlcyQgPSB0aGlzLnJlY29yZHNSZXBvc2l0b3J5XG4gICAgLmdldEFwcGxpY2F0aW9uTGFuZ3VhZ2VzKClcbiAgICAucGlwZShtYXAoKGxhbmd1YWdlcykgPT4gdGhpcy5zb3J0TGFuZ3VhZ2VzKGxhbmd1YWdlcykpKVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBmYWNhZGU6IEVkaXRvckZhY2FkZSxcbiAgICBwdWJsaWMgZGlhbG9nOiBNYXREaWFsb2csXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVjb3Jkc1JlcG9zaXRvcnk6IFJlY29yZHNSZXBvc2l0b3J5SW50ZXJmYWNlLFxuICAgIHByaXZhdGUgb3ZlcmxheTogT3ZlcmxheSxcbiAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICkge31cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpXG4gIH1cblxuICBzb3J0TGFuZ3VhZ2VzKGxhbmd1YWdlczogc3RyaW5nW10pIHtcbiAgICByZXR1cm4gbGFuZ3VhZ2VzXG4gICAgICAubWFwKChsYW5nKSA9PiB7XG4gICAgICAgIGNvbnN0IGxhYmVsID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ2xhbmd1YWdlLicgKyBsYW5nKVxuICAgICAgICBjb25zdCBpc1RyYW5zbGF0ZWQgPSBsYWJlbCAhPT0gJ2xhbmd1YWdlLicgKyBsYW5nXG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBsYW5nLFxuICAgICAgICAgIGxhYmVsLFxuICAgICAgICAgIGlzVHJhbnNsYXRlZCxcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICAgIC5zb3J0KChhLCBiKSA9PiB7XG4gICAgICAgIGlmIChhLmlzVHJhbnNsYXRlZCAmJiAhYi5pc1RyYW5zbGF0ZWQpIHJldHVybiAtMVxuICAgICAgICBpZiAoIWEuaXNUcmFuc2xhdGVkICYmIGIuaXNUcmFuc2xhdGVkKSByZXR1cm4gMVxuXG4gICAgICAgIHJldHVybiBhLmxhYmVsLmxvY2FsZUNvbXBhcmUoYi5sYWJlbClcbiAgICAgIH0pXG4gICAgICAubWFwKChpdGVtKSA9PiBpdGVtLmxhbmcpXG4gIH1cblxuICB0b2dnbGVMYW5ndWFnZVNlbGVjdGlvbigpIHtcbiAgICB0aGlzLmVkaXRUcmFuc2xhdGlvbnMgPSAhdGhpcy5lZGl0VHJhbnNsYXRpb25zXG4gIH1cblxuICBnZXRJY29uQ2xhc3MobGFuZzogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGV4dHJhRmxhZ01hcFtsYW5nXVxuICAgICAgPyBgZmkgZmktJHtleHRyYUZsYWdNYXBbbGFuZ119IHctNCBoLTNgXG4gICAgICA6IGBmaSBmaS0ke2xhbmd9IHctNCBoLTNgXG4gIH1cblxuICBzd2l0Y2hNdWx0aWxpbmd1YWwoKSB7XG4gICAgaWYgKHRoaXMuaXNNdWx0aWxpbmd1YWwgJiYgdGhpcy5zZWxlY3RlZExhbmd1YWdlcy5sZW5ndGggPiAxKSB7XG4gICAgICB0aGlzLmNvbmZpcm1EZWxldGVBY3Rpb24oKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmlzTXVsdGlsaW5ndWFsID0gdHJ1ZVxuICAgICAgdGhpcy5lZGl0VHJhbnNsYXRpb25zID0gdHJ1ZVxuICAgIH1cbiAgfVxuXG4gIGdldEV4dHJhQ2xhc3MobGFuZzogc3RyaW5nKSB7XG4gICAgY29uc3QgYmFzZUNsYXNzID0gJ2gtWzM0cHhdIHctZnVsbCBmb250LWJvbGQganVzdGlmeS1zdGFydCBob3ZlcjpiZy13aGl0ZSdcbiAgICBpZiAodGhpcy5zZWxlY3RlZExhbmd1YWdlcy5pbmNsdWRlcyhsYW5nKSkge1xuICAgICAgcmV0dXJuIGAke2Jhc2VDbGFzc30gYmctd2hpdGUgYm9yZGVyIGJvcmRlci1ibGFja2BcbiAgICB9XG4gICAgcmV0dXJuIGJhc2VDbGFzc1xuICB9XG5cbiAgdG9nZ2xlTGFuZ3VhZ2UobGFuZzogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRMYW5ndWFnZXMuaW5jbHVkZXMobGFuZykpIHtcbiAgICAgIHRoaXMucmVtb3ZlU2VsZWN0ZWRMYW5ndWFnZShsYW5nKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbGVjdGVkTGFuZ3VhZ2VzLnB1c2gobGFuZylcbiAgICB9XG4gIH1cblxuICByZW1vdmVTZWxlY3RlZExhbmd1YWdlKGxhbmc6IHN0cmluZykge1xuICAgIHRoaXMuc2VsZWN0ZWRMYW5ndWFnZXMgPSB0aGlzLnNlbGVjdGVkTGFuZ3VhZ2VzLmZpbHRlcihcbiAgICAgIChsYW5ndWFnZSkgPT4gbGFuZ3VhZ2UgIT09IGxhbmdcbiAgICApXG4gIH1cblxuICB2YWxpZGF0ZVRyYW5zbGF0aW9ucygpIHtcbiAgICBjb25zdCBlcXVhbExlbmd0aCA9XG4gICAgICB0aGlzLnNlbGVjdGVkTGFuZ3VhZ2VzLmxlbmd0aCA9PT0gdGhpcy5yZWNvcmRMYW5ndWFnZXMubGVuZ3RoXG4gICAgaWYgKFxuICAgICAgdGhpcy5zZWxlY3RlZExhbmd1YWdlcy5sZW5ndGggPCB0aGlzLnJlY29yZExhbmd1YWdlcy5sZW5ndGggfHxcbiAgICAgIChlcXVhbExlbmd0aCAmJiB0aGlzLnNlbGVjdGVkTGFuZ3VhZ2VzICE9PSB0aGlzLnJlY29yZExhbmd1YWdlcylcbiAgICApIHtcbiAgICAgIHRoaXMuY29uZmlybURlbGV0ZUFjdGlvbih0aGlzLnNlbGVjdGVkTGFuZ3VhZ2VzKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnVwZGF0ZVRyYW5zbGF0aW9ucygpXG4gICAgfVxuICB9XG5cbiAgdXBkYXRlVHJhbnNsYXRpb25zKCkge1xuICAgIGNvbnN0IG5ld0xhbmd1YWdlU2VsZWN0aW9uID0gdGhpcy5zZWxlY3RlZExhbmd1YWdlcy5maWx0ZXIoXG4gICAgICAobGFuZykgPT4gbGFuZyAhPT0gdGhpcy5mb3JtTGFuZ3VhZ2VcbiAgICApXG4gICAgdGhpcy5mYWNhZGUudXBkYXRlUmVjb3JkTGFuZ3VhZ2VzKHRoaXMuZm9ybUxhbmd1YWdlLCBuZXdMYW5ndWFnZVNlbGVjdGlvbilcbiAgICB0aGlzLnJlY29yZExhbmd1YWdlcyA9IG5ld0xhbmd1YWdlU2VsZWN0aW9uXG4gICAgdGhpcy5lZGl0VHJhbnNsYXRpb25zID0gZmFsc2VcbiAgfVxuXG4gIHN3aXRjaEZvcm1MYW5nKGxhbmcpIHtcbiAgICAvLyBUTyBJTVBMRU1FTlQgRlVSVEhFUlxuICB9XG5cbiAgc3dpdGNoRGVmYXVsdExhbmcobGFuZzogc3RyaW5nKSB7XG4gICAgdGhpcy5mb3JtTGFuZ3VhZ2UgPSBsYW5nXG4gICAgdGhpcy5mYWNhZGUudXBkYXRlUmVjb3JkTGFuZ3VhZ2VzKFxuICAgICAgbGFuZyxcbiAgICAgIHRoaXMuc2VsZWN0ZWRMYW5ndWFnZXMuZmlsdGVyKChsYW5nKSA9PiBsYW5nICE9PSB0aGlzLmZvcm1MYW5ndWFnZSlcbiAgICApXG4gICAgdGhpcy5jbG9zZUFjdGlvbk1lbnUoKVxuICB9XG5cbiAgY29uZmlybURlbGV0ZUFjdGlvbihsYW5nPzogc3RyaW5nW10gfCBzdHJpbmcpIHtcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKENvbmZpcm1hdGlvbkRpYWxvZ0NvbXBvbmVudCwge1xuICAgICAgZGF0YToge1xuICAgICAgICB0aXRsZTogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXG4gICAgICAgICAgJ2VkaXRvci5yZWNvcmQubXVsdGlsaW5ndWFsLmNvbmZpcm1hdGlvbi50aXRsZSdcbiAgICAgICAgKSxcbiAgICAgICAgbWVzc2FnZTogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXG4gICAgICAgICAgJ2VkaXRvci5yZWNvcmQubXVsdGlsaW5ndWFsLmNvbmZpcm1hdGlvbi5tZXNzYWdlJ1xuICAgICAgICApLFxuICAgICAgICBjb25maXJtVGV4dDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXG4gICAgICAgICAgJ2VkaXRvci5yZWNvcmQubXVsdGlsaW5ndWFsLmNvbmZpcm1hdGlvbi5jb25maXJtVGV4dCdcbiAgICAgICAgKSxcbiAgICAgICAgY2FuY2VsVGV4dDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXG4gICAgICAgICAgJ2VkaXRvci5yZWNvcmQubXVsdGlsaW5ndWFsLmNvbmZpcm1hdGlvbi5jYW5jZWxUZXh0J1xuICAgICAgICApLFxuICAgICAgICBmb2N1c0NhbmNlbDogdHJ1ZSxcbiAgICAgIH0sXG4gICAgICByZXN0b3JlRm9jdXM6IHRydWUsXG4gICAgfSlcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGQoXG4gICAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKGNvbmZpcm1lZCkgPT4ge1xuICAgICAgICBpZiAoY29uZmlybWVkKSB7XG4gICAgICAgICAgaWYgKGxhbmcpIHtcbiAgICAgICAgICAgIGlmICghQXJyYXkuaXNBcnJheShsYW5nKSkge1xuICAgICAgICAgICAgICB0aGlzLnJlbW92ZVNlbGVjdGVkTGFuZ3VhZ2UobGFuZylcbiAgICAgICAgICAgICAgdGhpcy5jbG9zZUFjdGlvbk1lbnUoKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy51cGRhdGVUcmFuc2xhdGlvbnMoKVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmZhY2FkZS51cGRhdGVSZWNvcmRMYW5ndWFnZXModGhpcy5mb3JtTGFuZ3VhZ2UsIFtdKVxuICAgICAgICAgICAgdGhpcy5pc011bHRpbGluZ3VhbCA9IGZhbHNlXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkTGFuZ3VhZ2VzID0gW11cbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5pc011bHRpbGluZ3VhbCA9IHRydWVcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkTGFuZ3VhZ2VzID0gdGhpcy5yZWNvcmRMYW5ndWFnZXNcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmVkaXRUcmFuc2xhdGlvbnMgPSBmYWxzZVxuICAgICAgfSlcbiAgICApXG4gIH1cblxuICBpc0ZpcnN0VW5zdXBwb3J0ZWQoaW5kZXg6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGxhbmdzID0gdGhpcy5zb3J0TGFuZ3VhZ2VzKHRoaXMucmVjb3JkTGFuZ3VhZ2VzKVxuICAgIHJldHVybiAoXG4gICAgICBsYW5nc1tpbmRleF0ubGVuZ3RoID09PSAzICYmXG4gICAgICBsYW5ncy5zbGljZSgwLCBpbmRleCkuZXZlcnkoKGxhbmcpID0+IGxhbmcubGVuZ3RoICE9PSAzKVxuICAgIClcbiAgfVxuXG4gIGlzTGFuZ1N1cHBvcnRlZChsYW5nOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gbGFuZy5sZW5ndGggPT09IDJcbiAgfVxuXG4gIGdldFRvZ2dsZVRpdGxlKGxhbmc6IHN0cmluZykge1xuICAgIGlmIChsYW5nID09PSB0aGlzLl9yZWNvcmQuZGVmYXVsdExhbmd1YWdlKSB7XG4gICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXG4gICAgICAgICdlZGl0b3IucmVjb3JkLmZvcm0ubXVsdGlsaW5ndWFsLmZvcmJpZGRlbidcbiAgICAgIClcbiAgICB9XG4gICAgcmV0dXJuICcnXG4gIH1cblxuICBvcGVuQWN0aW9uTWVudShpdGVtOiBzdHJpbmcsIHRlbXBsYXRlKSB7XG4gICAgdGhpcy5pc0FjdGlvbk1lbnVPcGVuID0gdHJ1ZVxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5zb3J0TGFuZ3VhZ2VzKHRoaXMuc2VsZWN0ZWRMYW5ndWFnZXMpLmluZGV4T2YoaXRlbSlcbiAgICBjb25zdCBidXR0b25FbGVtZW50ID0gdGhpcy5hY3Rpb25NZW51QnV0dG9ucy50b0FycmF5KClbaW5kZXhdXG5cbiAgICBjb25zdCBwb3NpdGlvblN0cmF0ZWd5ID0gdGhpcy5vdmVybGF5XG4gICAgICAucG9zaXRpb24oKVxuICAgICAgLmZsZXhpYmxlQ29ubmVjdGVkVG8oYnV0dG9uRWxlbWVudClcbiAgICAgIC53aXRoRmxleGlibGVEaW1lbnNpb25zKHRydWUpXG4gICAgICAud2l0aFB1c2godHJ1ZSlcbiAgICAgIC53aXRoUG9zaXRpb25zKFtcbiAgICAgICAge1xuICAgICAgICAgIG9yaWdpblg6ICdlbmQnLFxuICAgICAgICAgIG9yaWdpblk6ICdib3R0b20nLFxuICAgICAgICAgIG92ZXJsYXlYOiAnZW5kJyxcbiAgICAgICAgICBvdmVybGF5WTogJ3RvcCcsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBvcmlnaW5YOiAnZW5kJyxcbiAgICAgICAgICBvcmlnaW5ZOiAndG9wJyxcbiAgICAgICAgICBvdmVybGF5WDogJ2VuZCcsXG4gICAgICAgICAgb3ZlcmxheVk6ICdib3R0b20nLFxuICAgICAgICB9LFxuICAgICAgXSlcblxuICAgIHRoaXMub3ZlcmxheVJlZiA9IHRoaXMub3ZlcmxheS5jcmVhdGUoe1xuICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXG4gICAgICBiYWNrZHJvcENsYXNzOiAnY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AnLFxuICAgICAgcG9zaXRpb25TdHJhdGVneTogcG9zaXRpb25TdHJhdGVneSxcbiAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKCksXG4gICAgfSlcblxuICAgIGNvbnN0IHBvcnRhbCA9IG5ldyBUZW1wbGF0ZVBvcnRhbCh0ZW1wbGF0ZSwgdGhpcy52aWV3Q29udGFpbmVyUmVmKVxuXG4gICAgdGhpcy5vdmVybGF5UmVmLmF0dGFjaChwb3J0YWwpXG4gICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKFxuICAgICAgdGhpcy5vdmVybGF5UmVmLmJhY2tkcm9wQ2xpY2soKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmNsb3NlQWN0aW9uTWVudSgpXG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIGNsb3NlQWN0aW9uTWVudSgpIHtcbiAgICBpZiAodGhpcy5vdmVybGF5UmVmKSB7XG4gICAgICB0aGlzLmlzQWN0aW9uTWVudU9wZW4gPSBmYWxzZVxuICAgICAgdGhpcy5vdmVybGF5UmVmLmRpc3Bvc2UoKVxuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKClcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGgtZnVsbCB3LVszMDJweF0gYmctbmV1dHJhbC0xMDAgYm9yZGVyLWwgYm9yZGVyLWdyYXktMzAwIHB5LTggcHgtMyBnYXAtNiBvdmVyZmxvdy1hdXRvXCJcbj5cbiAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cgcHgtMiBqdXN0aWZ5LWJldHdlZW5cIj5cbiAgICA8c3BhbiBjbGFzcz1cInRleHQtM3hsIGZvbnQtdGl0bGUgdGV4dC1ibGFjay84MFwiIHRyYW5zbGF0ZVxuICAgICAgPmVkaXRvci5yZWNvcmQuZm9ybS5tdWx0aWxpbmd1YWwudGl0bGU8L3NwYW5cbiAgICA+XG4gICAgPGJ1dHRvblxuICAgICAgW3RpdGxlXT1cIidlZGl0b3IucmVjb3JkLmZvcm0ubXVsdGlsaW5ndWFsLm9wZW4nIHwgdHJhbnNsYXRlXCJcbiAgICAgIChjbGljayk9XCJ0b2dnbGVMYW5ndWFnZVNlbGVjdGlvbigpXCJcbiAgICAgICpuZ0lmPVwiaXNNdWx0aWxpbmd1YWxcIlxuICAgICAgZGF0YS10ZXN0PVwiYWN0aXZhdGVTZWxlY3Rpb25cIlxuICAgID5cbiAgICAgIDxuZy1pY29uIGNsYXNzPVwibXQtMVwiIG5hbWU9XCJpY29ub2lyU2V0dGluZ3NcIj48L25nLWljb24+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtMlwiICpuZ0lmPVwiZWRpdFRyYW5zbGF0aW9ucyB8fCAhaXNNdWx0aWxpbmd1YWxcIj5cbiAgICA8Z24tdWktY2hlY2stdG9nZ2xlXG4gICAgICBjbGFzcz1cInAtMlwiXG4gICAgICBbbGFiZWxdPVwiJ2VkaXRvci5yZWNvcmQuZm9ybS5tdWx0aWxpbmd1YWwuZW5hYmxlJyB8IHRyYW5zbGF0ZVwiXG4gICAgICBbY29sb3JdPVwiJ3ByaW1hcnknXCJcbiAgICAgIFsodmFsdWUpXT1cImlzTXVsdGlsaW5ndWFsXCJcbiAgICAgICh0b2dnbGVkKT1cInN3aXRjaE11bHRpbGluZ3VhbCgkZXZlbnQpXCJcbiAgICA+PC9nbi11aS1jaGVjay10b2dnbGU+XG4gICAgPGRpdiAqbmdJZj1cImlzTXVsdGlsaW5ndWFsXCIgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC0yXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBqdXN0aWZ5LWJldHdlZW4gYm9yZGVyLXQgYm9yZGVyLWdyYXktMzAwIHAtM1wiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIm10LTIgdGV4dC1zbSB0ZXh0LWdyYXktNjAwXCIgdHJhbnNsYXRlXG4gICAgICAgICAgPmVkaXRvci5yZWNvcmQuZm9ybS5tdWx0aWxpbmd1YWwuYWN0aXZhdGU8L3NwYW5cbiAgICAgICAgPlxuICAgICAgICA8Z24tdWktYnV0dG9uXG4gICAgICAgICAgZXh0cmFDbGFzcz1cInctMTYgaC04IGZvbnQtYm9sZFwiXG4gICAgICAgICAgdHlwZT1cImdyYXlcIlxuICAgICAgICAgIChidXR0b25DbGljayk9XCJ2YWxpZGF0ZVRyYW5zbGF0aW9ucygpXCJcbiAgICAgICAgICBkYXRhLXRlc3Q9XCJ2YWxpZGF0ZVNlbGVjdGlvblwiXG4gICAgICAgICAgPnt7ICdlZGl0b3IucmVjb3JkLmZvcm0ubXVsdGlsaW5ndWFsLnZhbGlkYXRlJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L2duLXVpLWJ1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInN1cHBvcnRlZExhbmd1YWdlcyQgfCBhc3luYyBhcyBsYW5ndWFnZXNcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtMiB3LWZ1bGwgcHgtMlwiXG4gICAgICAgICAgZGF0YS10ZXN0PVwibGFuZ0F2YWlsYWJsZVwiXG4gICAgICAgICAgKm5nRm9yPVwibGV0IGxhbmcgb2YgbGFuZ3VhZ2VzXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxnbi11aS1idXR0b25cbiAgICAgICAgICAgIFtleHRyYUNsYXNzXT1cImdldEV4dHJhQ2xhc3MobGFuZylcIlxuICAgICAgICAgICAgdHlwZT1cImdyYXlcIlxuICAgICAgICAgICAgKGJ1dHRvbkNsaWNrKT1cInRvZ2dsZUxhbmd1YWdlKGxhbmcpXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJsYW5nID09PSBfcmVjb3JkLmRlZmF1bHRMYW5ndWFnZVwiXG4gICAgICAgICAgICBbdGl0bGVdPVwiZ2V0VG9nZ2xlVGl0bGUobGFuZylcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxzcGFuIFtjbGFzc109XCJnZXRJY29uQ2xhc3MobGFuZylcIj48L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1sLTJcIj57eyAnbGFuZ3VhZ2UuJyArIGxhbmcgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgPC9nbi11aS1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2ICpuZ0lmPVwiIWVkaXRUcmFuc2xhdGlvbnMgJiYgaXNNdWx0aWxpbmd1YWxcIiBjbGFzcz1cImZsZXggZmxleC1jb2wgZ2FwLTJcIj5cbiAgICA8Z24tdWktYnV0dG9uXG4gICAgICAqbmdGb3I9XCJsZXQgcmVjb3JkTGFuZyBvZiBzb3J0TGFuZ3VhZ2VzKHJlY29yZExhbmd1YWdlcyk7IGxldCBpID0gaW5kZXhcIlxuICAgICAgZXh0cmFDbGFzcz1cImZsZXggZmxleC1yb3cganVzdGlmeS1iZXR3ZWVuIGJnLXdoaXRlIGJvcmRlciBib3JkZXItd2hpdGUgcm91bmRlZCBtYi0xIGgtWzM0cHhdIHctZnVsbFwiXG4gICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICdtdC04JzogaXNGaXJzdFVuc3VwcG9ydGVkKGkpLFxuICAgICAgICAnJzogdHJ1ZSxcbiAgICAgIH1cIlxuICAgICAgKGJ1dHRvbkNsaWNrKT1cInN3aXRjaEZvcm1MYW5nKHJlY29yZExhbmcpXCJcbiAgICAgIHR5cGU9XCJvdXRsaW5lXCJcbiAgICAgIGRhdGEtdGVzdD1cImxhbmdTd2l0Y2hcIlxuICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGdhcC0yIGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICA8bmctaWNvblxuICAgICAgICAgICpuZ0lmPVwicmVjb3JkTGFuZyA9PT0gZm9ybUxhbmd1YWdlXCJcbiAgICAgICAgICBjbGFzcz1cInRleHQtcHJpbWFyeSBtdC0xXCJcbiAgICAgICAgICBuYW1lPVwiaWNvbm9pckNoZWNrQ2lyY2xlXCJcbiAgICAgICAgPjwvbmctaWNvbj5cbiAgICAgICAgPG5nLWljb25cbiAgICAgICAgICAqbmdJZj1cInJlY29yZExhbmcgIT09IGZvcm1MYW5ndWFnZVwiXG4gICAgICAgICAgY2xhc3M9XCJ0ZXh0LWdyYXktODAwIG10LTFcIlxuICAgICAgICAgIG5hbWU9XCJpY29ub2lyQ2lyY2xlXCJcbiAgICAgICAgPjwvbmctaWNvbj5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAqbmdJZj1cInJlY29yZExhbmcubGVuZ3RoID09PSAyXCJcbiAgICAgICAgICBbY2xhc3NdPVwiZ2V0SWNvbkNsYXNzKHJlY29yZExhbmcpICsgJ210LTEnXCJcbiAgICAgICAgPjwvc3Bhbj5cbiAgICAgICAgPHNwYW4gW25nQ2xhc3NdPVwicmVjb3JkTGFuZyA9PT0gZm9ybUxhbmd1YWdlID8gJ3RleHQtYmxhY2snIDogJydcIj57e1xuICAgICAgICAgIGlzTGFuZ1N1cHBvcnRlZChyZWNvcmRMYW5nKVxuICAgICAgICAgICAgPyAoJ2xhbmd1YWdlLicgKyByZWNvcmRMYW5nIHwgdHJhbnNsYXRlKVxuICAgICAgICAgICAgOiByZWNvcmRMYW5nLnRvVXBwZXJDYXNlKClcbiAgICAgICAgfX08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGdhcC0yIGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICA8c3BhblxuICAgICAgICAgICpuZ0lmPVwicmVjb3JkTGFuZyA9PT0gZm9ybUxhbmd1YWdlXCJcbiAgICAgICAgICBjbGFzcz1cInRleHQteHMgdGV4dC1iYXNlXCJcbiAgICAgICAgICB0cmFuc2xhdGVcbiAgICAgICAgICA+ZWRpdG9yLnJlY29yZC5mb3JtLm11bHRpbGluZ3VhbC5kZWZhdWx0PC9zcGFuXG4gICAgICAgID5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIChjbGljayk9XCJcbiAgICAgICAgICAgIG9wZW5BY3Rpb25NZW51KHJlY29yZExhbmcsIHRlbXBsYXRlKTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICAgICAgXCJcbiAgICAgICAgICBjZGtPdmVybGF5T3JpZ2luXG4gICAgICAgICAgI2FjdGlvbk1lbnVCdXR0b25cbiAgICAgICAgPlxuICAgICAgICAgIDxuZy1pY29uIGNsYXNzPVwicGItNVwiIG5hbWU9XCJtYXRNb3JlSG9yaXpPdXRsaW5lXCI+PC9uZy1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZT5cbiAgICAgICAgICA8Z24tdWktYWN0aW9uLW1lbnVcbiAgICAgICAgICAgIFtjYW5EZWxldGVdPVwicmVjb3JkTGFuZyAhPT0gX3JlY29yZC5kZWZhdWx0TGFuZ3VhZ2VcIlxuICAgICAgICAgICAgcGFnZT1cInJlY29yZFwiXG4gICAgICAgICAgICAoZGVsZXRlKT1cImNvbmZpcm1EZWxldGVBY3Rpb24ocmVjb3JkTGFuZylcIlxuICAgICAgICAgICAgKGNsb3NlQWN0aW9uTWVudSk9XCJjbG9zZUFjdGlvbk1lbnUoKVwiXG4gICAgICAgICAgICAoc3dpdGNoKT1cInN3aXRjaERlZmF1bHRMYW5nKHJlY29yZExhbmcpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgPC9nbi11aS1hY3Rpb24tbWVudT5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvZGl2PlxuICAgIDwvZ24tdWktYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
275
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlsaW5ndWFsLXBhbmVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9lZGl0b3Ivc3JjL2xpYi9jb21wb25lbnRzL211bHRpbGluZ3VhbC1wYW5lbC9tdWx0aWxpbmd1YWwtcGFuZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL2VkaXRvci9zcmMvbGliL2NvbXBvbmVudHMvbXVsdGlsaW5ndWFsLXBhbmVsL211bHRpbGluZ3VhbC1wYW5lbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsS0FBSyxFQUdMLFNBQVMsRUFDVCxZQUFZLEVBQ1osZ0JBQWdCLEdBQ2pCLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsZUFBZSxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUNBQXlDLENBQUE7QUFDL0YsT0FBTyxFQUNMLGtCQUFrQixFQUNsQixhQUFhLEVBQ2IsZ0JBQWdCLEdBQ2pCLE1BQU0scUJBQXFCLENBQUE7QUFFNUIsT0FBTyxFQUNMLGVBQWUsRUFDZixZQUFZLEVBQ1osb0JBQW9CLEdBQ3JCLE1BQU0sZ0JBQWdCLENBQUE7QUFDdkIsT0FBTyxFQUNMLGtCQUFrQixFQUNsQixhQUFhLEVBQ2IsZUFBZSxHQUNoQixNQUFNLG1CQUFtQixDQUFBO0FBQzFCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFBO0FBQ3RFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQTtBQUN6RCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQTtBQUN2RixPQUFPLEVBQUUs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QUFJLEVBQUUsUUFBUTthQUNmLENBQUM7U0FDSCwrR0FtQnlDLFVBQVUsNkJDaEd0RCx5N0lBeUhBLHlERDlESSxZQUFZLG1aQUNaLG9CQUFvQixtSUFDcEIsa0JBQWtCLDZHQUNsQixhQUFhLGtEQUNiLGVBQWUsK0hBQ2YsZUFBZSw2R0FDZixtQkFBbUI7OzRGQWdCViwwQkFBMEI7a0JBMUJ0QyxTQUFTOytCQUNFLDBCQUEwQixjQUN4QixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixvQkFBb0I7d0JBQ3BCLGtCQUFrQjt3QkFDbEIsYUFBYTt3QkFDYixlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsbUJBQW1CO3FCQUNwQixhQUNVO3dCQUNULFlBQVksQ0FBQzs0QkFDWCxlQUFlOzRCQUNmLG1CQUFtQjs0QkFDbkIsa0JBQWtCOzRCQUNsQixhQUFhO3lCQUNkLENBQUM7d0JBQ0Ysb0JBQW9CLENBQUM7NEJBQ25CLElBQUksRUFBRSxRQUFRO3lCQUNmLENBQUM7cUJBQ0g7c1FBV1ksTUFBTTtzQkFBbEIsS0FBSztnQkFTTixpQkFBaUI7c0JBRGhCLFlBQVk7dUJBQUMsa0JBQWtCLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBRdWVyeUxpc3QsXG4gIFZpZXdDaGlsZHJlbixcbiAgVmlld0NvbnRhaW5lclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCwgQ2hlY2tUb2dnbGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2lucHV0cy9zcmMnXG5pbXBvcnQge1xuICBUcmFuc2xhdGVEaXJlY3RpdmUsXG4gIFRyYW5zbGF0ZVBpcGUsXG4gIFRyYW5zbGF0ZVNlcnZpY2UsXG59IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5pbXBvcnQgeyBDYXRhbG9nUmVjb3JkIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuaW1wb3J0IHtcbiAgTmdJY29uQ29tcG9uZW50LFxuICBwcm92aWRlSWNvbnMsXG4gIHByb3ZpZGVOZ0ljb25zQ29uZmlnLFxufSBmcm9tICdAbmctaWNvbnMvY29yZSdcbmltcG9ydCB7XG4gIGljb25vaXJDaGVja0NpcmNsZSxcbiAgaWNvbm9pckNpcmNsZSxcbiAgaWNvbm9pclNldHRpbmdzLFxufSBmcm9tICdAbmctaWNvbnMvaWNvbm9pcidcbmltcG9ydCB7IG1hdE1vcmVIb3Jpek91dGxpbmUgfSBmcm9tICdAbmctaWNvbnMvbWF0ZXJpYWwtaWNvbnMvb3V0bGluZSdcbmltcG9ydCB7IEVkaXRvckZhY2FkZSB9IGZyb20gJy4uLy4uLytzdGF0ZS9lZGl0b3IuZmFjYWRlJ1xuaW1wb3J0IHsgQ29uZmlybWF0aW9uRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9lbGVtZW50cy9zcmMnXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnXG5pbXBvcnQgeyBSZWNvcmRzUmVwb3NpdG9yeUludGVyZmFjZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL3JlcG9zaXRvcnkvcmVjb3Jkcy1yZXBvc2l0b3J5LmludGVyZmFjZSdcbmltcG9ydCB7IG1hcCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IE92ZXJsYXksIE92ZXJsYXlSZWYgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSdcbmltcG9ydCB7IFRlbXBsYXRlUG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCdcbmltcG9ydCB7IEFjdGlvbk1lbnVDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL3NlYXJjaC9zcmMnXG5cbmNvbnN0IGV4dHJhRmxhZ01hcDogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHtcbiAgYXI6ICdhcmFiJyxcbiAgZW46ICdnYicsXG4gIGtvOiAna3InLFxuICBjczogJ2N6JyxcbiAgemg6ICdjbicsXG4gIGNhOiAnZXMtY3QnLFxuICBybTogJ2NoJyxcbiAgZGE6ICdkaycsXG4gIHN2OiAnc2UnLFxuICBjeTogJ2diLXdscycsXG4gIGh5OiAnYW0nLFxuICBrYTogJ2dlJyxcbiAgdWs6ICd1YScsXG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLW11bHRpbGluZ3VhbC1wYW5lbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgQ2hlY2tUb2dnbGVDb21wb25lbnQsXG4gICAgVHJhbnNsYXRlRGlyZWN0aXZlLFxuICAgIFRyYW5zbGF0ZVBpcGUsXG4gICAgQnV0dG9uQ29tcG9uZW50LFxuICAgIE5nSWNvbkNvbXBvbmVudCxcbiAgICBBY3Rpb25NZW51Q29tcG9uZW50LFxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICBwcm92aWRlSWNvbnMoe1xuICAgICAgaWNvbm9pclNldHRpbmdzLFxuICAgICAgbWF0TW9yZUhvcml6T3V0bGluZSxcbiAgICAgIGljb25vaXJDaGVja0NpcmNsZSxcbiAgICAgIGljb25vaXJDaXJjbGUsXG4gICAgfSksXG4gICAgcHJvdmlkZU5nSWNvbnNDb25maWcoe1xuICAgICAgc2l6ZTogJzEuMjVlbScsXG4gICAgfSksXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9tdWx0aWxpbmd1YWwtcGFuZWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vbXVsdGlsaW5ndWFsLXBhbmVsLmNvbXBvbmVudC5jc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBNdWx0aWxpbmd1YWxQYW5lbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIGlzTXVsdGlsaW5ndWFsOiBib29sZWFuXG4gIF9yZWNvcmQ6IENhdGFsb2dSZWNvcmRcbiAgZWRpdFRyYW5zbGF0aW9uczogYm9vbGVhblxuICBzZWxlY3RlZExhbmd1YWdlcyA9IFtdXG4gIHJlY29yZExhbmd1YWdlcyA9IFtdXG4gIGZvcm1MYW5ndWFnZSA9ICcnXG4gIEBJbnB1dCgpIHNldCByZWNvcmQodmFsdWU6IENhdGFsb2dSZWNvcmQpIHtcbiAgICB0aGlzLl9yZWNvcmQgPSB2YWx1ZVxuICAgIHRoaXMuaXNNdWx0aWxpbmd1YWwgPSB2YWx1ZS5vdGhlckxhbmd1YWdlcy5sZW5ndGggPiAwXG4gICAgdGhpcy5lZGl0VHJhbnNsYXRpb25zID0gZmFsc2VcbiAgICB0aGlzLnJlY29yZExhbmd1YWdlcyA9IFsuLi52YWx1ZS5vdGhlckxhbmd1YWdlcywgdmFsdWUuZGVmYXVsdExhbmd1YWdlXVxuICAgIHRoaXMuc2VsZWN0ZWRMYW5ndWFnZXMgPSB0aGlzLnJlY29yZExhbmd1YWdlc1xuICAgIHRoaXMuZm9ybUxhbmd1YWdlID0gdmFsdWUuZGVmYXVsdExhbmd1YWdlXG4gIH1cbiAgQFZpZXdDaGlsZHJlbignYWN0aW9uTWVudUJ1dHRvbicsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICBhY3Rpb25NZW51QnV0dG9ucyE6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPlxuICBwcml2YXRlIG92ZXJsYXlSZWYhOiBPdmVybGF5UmVmXG5cbiAgaXNBY3Rpb25NZW51T3BlbiA9IGZhbHNlXG4gIHN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKVxuXG4gIHN1cHBvcnRlZExhbmd1YWdlcyQgPSB0aGlzLnJlY29yZHNSZXBvc2l0b3J5XG4gICAgLmdldEFwcGxpY2F0aW9uTGFuZ3VhZ2VzKClcbiAgICAucGlwZShtYXAoKGxhbmd1YWdlcykgPT4gdGhpcy5zb3J0TGFuZ3VhZ2VzKGxhbmd1YWdlcykpKVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBmYWNhZGU6IEVkaXRvckZhY2FkZSxcbiAgICBwdWJsaWMgZGlhbG9nOiBNYXREaWFsb2csXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVjb3Jkc1JlcG9zaXRvcnk6IFJlY29yZHNSZXBvc2l0b3J5SW50ZXJmYWNlLFxuICAgIHByaXZhdGUgb3ZlcmxheTogT3ZlcmxheSxcbiAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICkge31cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpXG4gIH1cblxuICBzb3J0TGFuZ3VhZ2VzKGxhbmd1YWdlczogc3RyaW5nW10pIHtcbiAgICByZXR1cm4gbGFuZ3VhZ2VzXG4gICAgICAubWFwKChsYW5nKSA9PiB7XG4gICAgICAgIGNvbnN0IGxhYmVsID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ2xhbmd1YWdlLicgKyBsYW5nKVxuICAgICAgICBjb25zdCBpc1RyYW5zbGF0ZWQgPSBsYWJlbCAhPT0gJ2xhbmd1YWdlLicgKyBsYW5nXG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBsYW5nLFxuICAgICAgICAgIGxhYmVsLFxuICAgICAgICAgIGlzVHJhbnNsYXRlZCxcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICAgIC5zb3J0KChhLCBiKSA9PiB7XG4gICAgICAgIGlmIChhLmlzVHJhbnNsYXRlZCAmJiAhYi5pc1RyYW5zbGF0ZWQpIHJldHVybiAtMVxuICAgICAgICBpZiAoIWEuaXNUcmFuc2xhdGVkICYmIGIuaXNUcmFuc2xhdGVkKSByZXR1cm4gMVxuXG4gICAgICAgIHJldHVybiBhLmxhYmVsLmxvY2FsZUNvbXBhcmUoYi5sYWJlbClcbiAgICAgIH0pXG4gICAgICAubWFwKChpdGVtKSA9PiBpdGVtLmxhbmcpXG4gIH1cblxuICB0b2dnbGVMYW5ndWFnZVNlbGVjdGlvbigpIHtcbiAgICB0aGlzLmVkaXRUcmFuc2xhdGlvbnMgPSAhdGhpcy5lZGl0VHJhbnNsYXRpb25zXG4gIH1cblxuICBnZXRJY29uQ2xhc3MobGFuZzogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGV4dHJhRmxhZ01hcFtsYW5nXVxuICAgICAgPyBgZmkgZmktJHtleHRyYUZsYWdNYXBbbGFuZ119IHctNCBoLTNgXG4gICAgICA6IGBmaSBmaS0ke2xhbmd9IHctNCBoLTNgXG4gIH1cblxuICBzd2l0Y2hNdWx0aWxpbmd1YWwoKSB7XG4gICAgaWYgKHRoaXMuaXNNdWx0aWxpbmd1YWwgJiYgdGhpcy5zZWxlY3RlZExhbmd1YWdlcy5sZW5ndGggPiAxKSB7XG4gICAgICB0aGlzLmNvbmZpcm1EZWxldGVBY3Rpb24oKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmlzTXVsdGlsaW5ndWFsID0gdHJ1ZVxuICAgICAgdGhpcy5lZGl0VHJhbnNsYXRpb25zID0gdHJ1ZVxuICAgIH1cbiAgfVxuXG4gIGdldEV4dHJhQ2xhc3MobGFuZzogc3RyaW5nKSB7XG4gICAgY29uc3QgYmFzZUNsYXNzID0gJ2gtWzM0cHhdIHctZnVsbCBmb250LWJvbGQganVzdGlmeS1zdGFydCBob3ZlcjpiZy13aGl0ZSdcbiAgICBpZiAodGhpcy5zZWxlY3RlZExhbmd1YWdlcy5pbmNsdWRlcyhsYW5nKSkge1xuICAgICAgcmV0dXJuIGAke2Jhc2VDbGFzc30gYmctd2hpdGUgYm9yZGVyIGJvcmRlci1ibGFja2BcbiAgICB9XG4gICAgcmV0dXJuIGJhc2VDbGFzc1xuICB9XG5cbiAgdG9nZ2xlTGFuZ3VhZ2UobGFuZzogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRMYW5ndWFnZXMuaW5jbHVkZXMobGFuZykpIHtcbiAgICAgIHRoaXMucmVtb3ZlU2VsZWN0ZWRMYW5ndWFnZShsYW5nKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbGVjdGVkTGFuZ3VhZ2VzLnB1c2gobGFuZylcbiAgICB9XG4gIH1cblxuICByZW1vdmVTZWxlY3RlZExhbmd1YWdlKGxhbmc6IHN0cmluZykge1xuICAgIHRoaXMuc2VsZWN0ZWRMYW5ndWFnZXMgPSB0aGlzLnNlbGVjdGVkTGFuZ3VhZ2VzLmZpbHRlcihcbiAgICAgIChsYW5ndWFnZSkgPT4gbGFuZ3VhZ2UgIT09IGxhbmdcbiAgICApXG4gIH1cblxuICB2YWxpZGF0ZVRyYW5zbGF0aW9ucygpIHtcbiAgICBjb25zdCBlcXVhbExlbmd0aCA9XG4gICAgICB0aGlzLnNlbGVjdGVkTGFuZ3VhZ2VzLmxlbmd0aCA9PT0gdGhpcy5yZWNvcmRMYW5ndWFnZXMubGVuZ3RoXG4gICAgaWYgKFxuICAgICAgdGhpcy5zZWxlY3RlZExhbmd1YWdlcy5sZW5ndGggPCB0aGlzLnJlY29yZExhbmd1YWdlcy5sZW5ndGggfHxcbiAgICAgIChlcXVhbExlbmd0aCAmJiB0aGlzLnNlbGVjdGVkTGFuZ3VhZ2VzICE9PSB0aGlzLnJlY29yZExhbmd1YWdlcylcbiAgICApIHtcbiAgICAgIHRoaXMuY29uZmlybURlbGV0ZUFjdGlvbih0aGlzLnNlbGVjdGVkTGFuZ3VhZ2VzKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnVwZGF0ZVRyYW5zbGF0aW9ucygpXG4gICAgfVxuICB9XG5cbiAgdXBkYXRlVHJhbnNsYXRpb25zKCkge1xuICAgIGNvbnN0IG5ld0xhbmd1YWdlU2VsZWN0aW9uID0gdGhpcy5zZWxlY3RlZExhbmd1YWdlcy5maWx0ZXIoXG4gICAgICAobGFuZykgPT4gbGFuZyAhPT0gdGhpcy5mb3JtTGFuZ3VhZ2VcbiAgICApXG4gICAgdGhpcy5mYWNhZGUudXBkYXRlUmVjb3JkTGFuZ3VhZ2VzKHRoaXMuZm9ybUxhbmd1YWdlLCBuZXdMYW5ndWFnZVNlbGVjdGlvbilcbiAgICB0aGlzLnJlY29yZExhbmd1YWdlcyA9IG5ld0xhbmd1YWdlU2VsZWN0aW9uXG4gICAgdGhpcy5lZGl0VHJhbnNsYXRpb25zID0gZmFsc2VcbiAgfVxuXG4gIHN3aXRjaEZvcm1MYW5nKGxhbmcpIHtcbiAgICAvLyBUTyBJTVBMRU1FTlQgRlVSVEhFUlxuICB9XG5cbiAgc3dpdGNoRGVmYXVsdExhbmcobGFuZzogc3RyaW5nKSB7XG4gICAgdGhpcy5mb3JtTGFuZ3VhZ2UgPSBsYW5nXG4gICAgdGhpcy5mYWNhZGUudXBkYXRlUmVjb3JkTGFuZ3VhZ2VzKFxuICAgICAgbGFuZyxcbiAgICAgIHRoaXMuc2VsZWN0ZWRMYW5ndWFnZXMuZmlsdGVyKChsYW5nKSA9PiBsYW5nICE9PSB0aGlzLmZvcm1MYW5ndWFnZSlcbiAgICApXG4gICAgdGhpcy5jbG9zZUFjdGlvbk1lbnUoKVxuICB9XG5cbiAgY29uZmlybURlbGV0ZUFjdGlvbihsYW5nPzogc3RyaW5nW10gfCBzdHJpbmcpIHtcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKENvbmZpcm1hdGlvbkRpYWxvZ0NvbXBvbmVudCwge1xuICAgICAgZGF0YToge1xuICAgICAgICB0aXRsZTogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXG4gICAgICAgICAgJ2VkaXRvci5yZWNvcmQubXVsdGlsaW5ndWFsLmNvbmZpcm1hdGlvbi50aXRsZSdcbiAgICAgICAgKSxcbiAgICAgICAgbWVzc2FnZTogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXG4gICAgICAgICAgJ2VkaXRvci5yZWNvcmQubXVsdGlsaW5ndWFsLmNvbmZpcm1hdGlvbi5tZXNzYWdlJ1xuICAgICAgICApLFxuICAgICAgICBjb25maXJtVGV4dDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXG4gICAgICAgICAgJ2VkaXRvci5yZWNvcmQubXVsdGlsaW5ndWFsLmNvbmZpcm1hdGlvbi5jb25maXJtVGV4dCdcbiAgICAgICAgKSxcbiAgICAgICAgY2FuY2VsVGV4dDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXG4gICAgICAgICAgJ2VkaXRvci5yZWNvcmQubXVsdGlsaW5ndWFsLmNvbmZpcm1hdGlvbi5jYW5jZWxUZXh0J1xuICAgICAgICApLFxuICAgICAgICBmb2N1c0NhbmNlbDogdHJ1ZSxcbiAgICAgIH0sXG4gICAgICByZXN0b3JlRm9jdXM6IHRydWUsXG4gICAgfSlcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGQoXG4gICAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKGNvbmZpcm1lZCkgPT4ge1xuICAgICAgICBpZiAoY29uZmlybWVkKSB7XG4gICAgICAgICAgaWYgKGxhbmcpIHtcbiAgICAgICAgICAgIGlmICghQXJyYXkuaXNBcnJheShsYW5nKSkge1xuICAgICAgICAgICAgICB0aGlzLnJlbW92ZVNlbGVjdGVkTGFuZ3VhZ2UobGFuZylcbiAgICAgICAgICAgICAgdGhpcy5jbG9zZUFjdGlvbk1lbnUoKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy51cGRhdGVUcmFuc2xhdGlvbnMoKVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmZhY2FkZS51cGRhdGVSZWNvcmRMYW5ndWFnZXModGhpcy5mb3JtTGFuZ3VhZ2UsIFtdKVxuICAgICAgICAgICAgdGhpcy5pc011bHRpbGluZ3VhbCA9IGZhbHNlXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkTGFuZ3VhZ2VzID0gW11cbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5pc011bHRpbGluZ3VhbCA9IHRydWVcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkTGFuZ3VhZ2VzID0gdGhpcy5yZWNvcmRMYW5ndWFnZXNcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmVkaXRUcmFuc2xhdGlvbnMgPSBmYWxzZVxuICAgICAgfSlcbiAgICApXG4gIH1cblxuICBpc0ZpcnN0VW5zdXBwb3J0ZWQoaW5kZXg6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGxhbmdzID0gdGhpcy5zb3J0TGFuZ3VhZ2VzKHRoaXMucmVjb3JkTGFuZ3VhZ2VzKVxuICAgIHJldHVybiAoXG4gICAgICBsYW5nc1tpbmRleF0ubGVuZ3RoID09PSAzICYmXG4gICAgICBsYW5ncy5zbGljZSgwLCBpbmRleCkuZXZlcnkoKGxhbmcpID0+IGxhbmcubGVuZ3RoICE9PSAzKVxuICAgIClcbiAgfVxuXG4gIGlzTGFuZ1N1cHBvcnRlZChsYW5nOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gbGFuZy5sZW5ndGggPT09IDJcbiAgfVxuXG4gIGdldFRvZ2dsZVRpdGxlKGxhbmc6IHN0cmluZykge1xuICAgIGlmIChsYW5nID09PSB0aGlzLl9yZWNvcmQuZGVmYXVsdExhbmd1YWdlKSB7XG4gICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXG4gICAgICAgICdlZGl0b3IucmVjb3JkLmZvcm0ubXVsdGlsaW5ndWFsLmZvcmJpZGRlbidcbiAgICAgIClcbiAgICB9XG4gICAgcmV0dXJuICcnXG4gIH1cblxuICBvcGVuQWN0aW9uTWVudShpdGVtOiBzdHJpbmcsIHRlbXBsYXRlKSB7XG4gICAgdGhpcy5pc0FjdGlvbk1lbnVPcGVuID0gdHJ1ZVxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5zb3J0TGFuZ3VhZ2VzKHRoaXMuc2VsZWN0ZWRMYW5ndWFnZXMpLmluZGV4T2YoaXRlbSlcbiAgICBjb25zdCBidXR0b25FbGVtZW50ID0gdGhpcy5hY3Rpb25NZW51QnV0dG9ucy50b0FycmF5KClbaW5kZXhdXG5cbiAgICBjb25zdCBwb3NpdGlvblN0cmF0ZWd5ID0gdGhpcy5vdmVybGF5XG4gICAgICAucG9zaXRpb24oKVxuICAgICAgLmZsZXhpYmxlQ29ubmVjdGVkVG8oYnV0dG9uRWxlbWVudClcbiAgICAgIC53aXRoRmxleGlibGVEaW1lbnNpb25zKHRydWUpXG4gICAgICAud2l0aFB1c2godHJ1ZSlcbiAgICAgIC53aXRoUG9zaXRpb25zKFtcbiAgICAgICAge1xuICAgICAgICAgIG9yaWdpblg6ICdlbmQnLFxuICAgICAgICAgIG9yaWdpblk6ICdib3R0b20nLFxuICAgICAgICAgIG92ZXJsYXlYOiAnZW5kJyxcbiAgICAgICAgICBvdmVybGF5WTogJ3RvcCcsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBvcmlnaW5YOiAnZW5kJyxcbiAgICAgICAgICBvcmlnaW5ZOiAndG9wJyxcbiAgICAgICAgICBvdmVybGF5WDogJ2VuZCcsXG4gICAgICAgICAgb3ZlcmxheVk6ICdib3R0b20nLFxuICAgICAgICB9LFxuICAgICAgXSlcblxuICAgIHRoaXMub3ZlcmxheVJlZiA9IHRoaXMub3ZlcmxheS5jcmVhdGUoe1xuICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXG4gICAgICBiYWNrZHJvcENsYXNzOiAnY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AnLFxuICAgICAgcG9zaXRpb25TdHJhdGVneTogcG9zaXRpb25TdHJhdGVneSxcbiAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKCksXG4gICAgfSlcblxuICAgIGNvbnN0IHBvcnRhbCA9IG5ldyBUZW1wbGF0ZVBvcnRhbCh0ZW1wbGF0ZSwgdGhpcy52aWV3Q29udGFpbmVyUmVmKVxuXG4gICAgdGhpcy5vdmVybGF5UmVmLmF0dGFjaChwb3J0YWwpXG4gICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKFxuICAgICAgdGhpcy5vdmVybGF5UmVmLmJhY2tkcm9wQ2xpY2soKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmNsb3NlQWN0aW9uTWVudSgpXG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIGNsb3NlQWN0aW9uTWVudSgpIHtcbiAgICBpZiAodGhpcy5vdmVybGF5UmVmKSB7XG4gICAgICB0aGlzLmlzQWN0aW9uTWVudU9wZW4gPSBmYWxzZVxuICAgICAgdGhpcy5vdmVybGF5UmVmLmRpc3Bvc2UoKVxuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKClcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGgtZnVsbCB3LVszMDJweF0gYm9yZGVyLWwgYm9yZGVyLWdyYXktMzAwIHB5LTggcHgtMyBnYXAtNiBvdmVyZmxvdy1hdXRvXCJcbiAgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWY5XCJcbj5cbiAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cgcHgtMiBqdXN0aWZ5LWJldHdlZW5cIj5cbiAgICA8c3BhbiBjbGFzcz1cInRleHQtM3hsIGZvbnQtdGl0bGUgdGV4dC1ibGFjay84MFwiIHRyYW5zbGF0ZVxuICAgICAgPmVkaXRvci5yZWNvcmQuZm9ybS5tdWx0aWxpbmd1YWwudGl0bGU8L3NwYW5cbiAgICA+XG4gICAgPGJ1dHRvblxuICAgICAgW3RpdGxlXT1cIidlZGl0b3IucmVjb3JkLmZvcm0ubXVsdGlsaW5ndWFsLm9wZW4nIHwgdHJhbnNsYXRlXCJcbiAgICAgIChjbGljayk9XCJ0b2dnbGVMYW5ndWFnZVNlbGVjdGlvbigpXCJcbiAgICAgICpuZ0lmPVwiaXNNdWx0aWxpbmd1YWxcIlxuICAgICAgZGF0YS10ZXN0PVwiYWN0aXZhdGVTZWxlY3Rpb25cIlxuICAgID5cbiAgICAgIDxuZy1pY29uIGNsYXNzPVwibXQtMVwiIG5hbWU9XCJpY29ub2lyU2V0dGluZ3NcIj48L25nLWljb24+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtMlwiICpuZ0lmPVwiZWRpdFRyYW5zbGF0aW9ucyB8fCAhaXNNdWx0aWxpbmd1YWxcIj5cbiAgICA8Z24tdWktY2hlY2stdG9nZ2xlXG4gICAgICBjbGFzcz1cInAtMlwiXG4gICAgICBbbGFiZWxdPVwiJ2VkaXRvci5yZWNvcmQuZm9ybS5tdWx0aWxpbmd1YWwuZW5hYmxlJyB8IHRyYW5zbGF0ZVwiXG4gICAgICBbY29sb3JdPVwiJ3ByaW1hcnknXCJcbiAgICAgIFsodmFsdWUpXT1cImlzTXVsdGlsaW5ndWFsXCJcbiAgICAgICh0b2dnbGVkKT1cInN3aXRjaE11bHRpbGluZ3VhbCgkZXZlbnQpXCJcbiAgICA+PC9nbi11aS1jaGVjay10b2dnbGU+XG4gICAgPGRpdiAqbmdJZj1cImlzTXVsdGlsaW5ndWFsXCIgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC0yXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBqdXN0aWZ5LWJldHdlZW4gYm9yZGVyLXQgYm9yZGVyLWdyYXktMzAwIHAtM1wiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIm10LTIgdGV4dC1zbSB0ZXh0LWdyYXktNjAwXCIgdHJhbnNsYXRlXG4gICAgICAgICAgPmVkaXRvci5yZWNvcmQuZm9ybS5tdWx0aWxpbmd1YWwuYWN0aXZhdGU8L3NwYW5cbiAgICAgICAgPlxuICAgICAgICA8Z24tdWktYnV0dG9uXG4gICAgICAgICAgZXh0cmFDbGFzcz1cInctMTYgaC04IGZvbnQtYm9sZFwiXG4gICAgICAgICAgdHlwZT1cImdyYXlcIlxuICAgICAgICAgIChidXR0b25DbGljayk9XCJ2YWxpZGF0ZVRyYW5zbGF0aW9ucygpXCJcbiAgICAgICAgICBkYXRhLXRlc3Q9XCJ2YWxpZGF0ZVNlbGVjdGlvblwiXG4gICAgICAgICAgPnt7ICdlZGl0b3IucmVjb3JkLmZvcm0ubXVsdGlsaW5ndWFsLnZhbGlkYXRlJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L2duLXVpLWJ1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInN1cHBvcnRlZExhbmd1YWdlcyQgfCBhc3luYyBhcyBsYW5ndWFnZXNcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtMiB3LWZ1bGwgcHgtMlwiXG4gICAgICAgICAgZGF0YS10ZXN0PVwibGFuZ0F2YWlsYWJsZVwiXG4gICAgICAgICAgKm5nRm9yPVwibGV0IGxhbmcgb2YgbGFuZ3VhZ2VzXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxnbi11aS1idXR0b25cbiAgICAgICAgICAgIFtleHRyYUNsYXNzXT1cImdldEV4dHJhQ2xhc3MobGFuZylcIlxuICAgICAgICAgICAgdHlwZT1cImdyYXlcIlxuICAgICAgICAgICAgKGJ1dHRvbkNsaWNrKT1cInRvZ2dsZUxhbmd1YWdlKGxhbmcpXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJsYW5nID09PSBfcmVjb3JkLmRlZmF1bHRMYW5ndWFnZVwiXG4gICAgICAgICAgICBbdGl0bGVdPVwiZ2V0VG9nZ2xlVGl0bGUobGFuZylcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxzcGFuIFtjbGFzc109XCJnZXRJY29uQ2xhc3MobGFuZylcIj48L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1sLTJcIj57eyAnbGFuZ3VhZ2UuJyArIGxhbmcgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgPC9nbi11aS1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2ICpuZ0lmPVwiIWVkaXRUcmFuc2xhdGlvbnMgJiYgaXNNdWx0aWxpbmd1YWxcIiBjbGFzcz1cImZsZXggZmxleC1jb2wgZ2FwLTJcIj5cbiAgICA8Z24tdWktYnV0dG9uXG4gICAgICAqbmdGb3I9XCJsZXQgcmVjb3JkTGFuZyBvZiBzb3J0TGFuZ3VhZ2VzKHJlY29yZExhbmd1YWdlcyk7IGxldCBpID0gaW5kZXhcIlxuICAgICAgZXh0cmFDbGFzcz1cImZsZXggZmxleC1yb3cganVzdGlmeS1iZXR3ZWVuIGJnLXdoaXRlIGJvcmRlciBib3JkZXItd2hpdGUgcm91bmRlZCBtYi0xIGgtWzM0cHhdIHctZnVsbFwiXG4gICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICdtdC04JzogaXNGaXJzdFVuc3VwcG9ydGVkKGkpLFxuICAgICAgICAnJzogdHJ1ZSxcbiAgICAgIH1cIlxuICAgICAgKGJ1dHRvbkNsaWNrKT1cInN3aXRjaEZvcm1MYW5nKHJlY29yZExhbmcpXCJcbiAgICAgIHR5cGU9XCJvdXRsaW5lXCJcbiAgICAgIGRhdGEtdGVzdD1cImxhbmdTd2l0Y2hcIlxuICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGdhcC0yIGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICA8bmctaWNvblxuICAgICAgICAgICpuZ0lmPVwicmVjb3JkTGFuZyA9PT0gZm9ybUxhbmd1YWdlXCJcbiAgICAgICAgICBjbGFzcz1cInRleHQtcHJpbWFyeSBtdC0xXCJcbiAgICAgICAgICBuYW1lPVwiaWNvbm9pckNoZWNrQ2lyY2xlXCJcbiAgICAgICAgPjwvbmctaWNvbj5cbiAgICAgICAgPG5nLWljb25cbiAgICAgICAgICAqbmdJZj1cInJlY29yZExhbmcgIT09IGZvcm1MYW5ndWFnZVwiXG4gICAgICAgICAgY2xhc3M9XCJ0ZXh0LWdyYXktODAwIG10LTFcIlxuICAgICAgICAgIG5hbWU9XCJpY29ub2lyQ2lyY2xlXCJcbiAgICAgICAgPjwvbmctaWNvbj5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAqbmdJZj1cInJlY29yZExhbmcubGVuZ3RoID09PSAyXCJcbiAgICAgICAgICBbY2xhc3NdPVwiZ2V0SWNvbkNsYXNzKHJlY29yZExhbmcpICsgJ210LTEnXCJcbiAgICAgICAgPjwvc3Bhbj5cbiAgICAgICAgPHNwYW4gW25nQ2xhc3NdPVwicmVjb3JkTGFuZyA9PT0gZm9ybUxhbmd1YWdlID8gJ3RleHQtYmxhY2snIDogJydcIj57e1xuICAgICAgICAgIGlzTGFuZ1N1cHBvcnRlZChyZWNvcmRMYW5nKVxuICAgICAgICAgICAgPyAoJ2xhbmd1YWdlLicgKyByZWNvcmRMYW5nIHwgdHJhbnNsYXRlKVxuICAgICAgICAgICAgOiByZWNvcmRMYW5nLnRvVXBwZXJDYXNlKClcbiAgICAgICAgfX08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGdhcC0yIGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICA8c3BhblxuICAgICAgICAgICpuZ0lmPVwicmVjb3JkTGFuZyA9PT0gZm9ybUxhbmd1YWdlXCJcbiAgICAgICAgICBjbGFzcz1cInRleHQteHMgdGV4dC1iYXNlXCJcbiAgICAgICAgICB0cmFuc2xhdGVcbiAgICAgICAgICA+ZWRpdG9yLnJlY29yZC5mb3JtLm11bHRpbGluZ3VhbC5kZWZhdWx0PC9zcGFuXG4gICAgICAgID5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIChjbGljayk9XCJcbiAgICAgICAgICAgIG9wZW5BY3Rpb25NZW51KHJlY29yZExhbmcsIHRlbXBsYXRlKTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICAgICAgXCJcbiAgICAgICAgICBjZGtPdmVybGF5T3JpZ2luXG4gICAgICAgICAgI2FjdGlvbk1lbnVCdXR0b25cbiAgICAgICAgPlxuICAgICAgICAgIDxuZy1pY29uIGNsYXNzPVwicGItNVwiIG5hbWU9XCJtYXRNb3JlSG9yaXpPdXRsaW5lXCI+PC9uZy1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZT5cbiAgICAgICAgICA8Z24tdWktYWN0aW9uLW1lbnVcbiAgICAgICAgICAgIFtjYW5EZWxldGVdPVwicmVjb3JkTGFuZyAhPT0gX3JlY29yZC5kZWZhdWx0TGFuZ3VhZ2VcIlxuICAgICAgICAgICAgcGFnZT1cInJlY29yZFwiXG4gICAgICAgICAgICAoZGVsZXRlKT1cImNvbmZpcm1EZWxldGVBY3Rpb24ocmVjb3JkTGFuZylcIlxuICAgICAgICAgICAgKGNsb3NlQWN0aW9uTWVudSk9XCJjbG9zZUFjdGlvbk1lbnUoKVwiXG4gICAgICAgICAgICAoc3dpdGNoKT1cInN3aXRjaERlZmF1bHRMYW5nKHJlY29yZExhbmcpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgPC9nbi11aS1hY3Rpb24tbWVudT5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvZGl2PlxuICAgIDwvZ24tdWktYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { AutocompleteComponent, BadgeComponent, DropdownMultiselectComponent, } from '../../../../../../../../../libs/ui/inputs/src';
|
|
4
|
+
import { NgIconComponent } from '@ng-icons/core';
|
|
5
|
+
import { INSPIRE_THEMES } from '../../../../fields.config';
|
|
6
|
+
import { TranslatePipe, TranslateService } from '@ngx-translate/core';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@ngx-translate/core";
|
|
9
|
+
import * as i2 from "@angular/common";
|
|
10
|
+
export class FormFieldInspireThemeComponent {
|
|
11
|
+
set value(themes) {
|
|
12
|
+
this.themes = themes;
|
|
13
|
+
}
|
|
14
|
+
constructor(translateService) {
|
|
15
|
+
this.translateService = translateService;
|
|
16
|
+
this.themes = [];
|
|
17
|
+
this.valueChange = new EventEmitter();
|
|
18
|
+
this.availableThemes = INSPIRE_THEMES.map((theme) => {
|
|
19
|
+
return {
|
|
20
|
+
label: this.translateService.instant(theme.label),
|
|
21
|
+
value: theme.value,
|
|
22
|
+
};
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
handleItemSelection(selectedItems) {
|
|
26
|
+
this.themes = selectedItems;
|
|
27
|
+
this.valueChange.emit(this.themes);
|
|
28
|
+
}
|
|
29
|
+
removeTheme(theme) {
|
|
30
|
+
this.themes = this.themes.filter((t) => t !== theme);
|
|
31
|
+
this.valueChange.emit(this.themes);
|
|
32
|
+
}
|
|
33
|
+
getTranslatedTheme(theme) {
|
|
34
|
+
const themeKey = this.availableThemes.find((avail) => avail.value === theme)?.label;
|
|
35
|
+
return themeKey ? this.translateService.instant(themeKey) : '';
|
|
36
|
+
}
|
|
37
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormFieldInspireThemeComponent, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
38
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FormFieldInspireThemeComponent, isStandalone: true, selector: "gn-ui-form-field-inspire-theme", inputs: { value: "value" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div class=\"flex flex-col gap-3\">\n <div class=\"flex flex-col gap-4\">\n <gn-ui-dropdown-multiselect\n class=\"w-full\"\n [title]=\"'editor.record.form.inspire.placeholder' | translate\"\n [maxRows]=\"6\"\n [selected]=\"themes\"\n [choices]=\"availableThemes || []\"\n [allowSearch]=\"true\"\n (selectValues)=\"handleItemSelection($event)\"\n >\n </gn-ui-dropdown-multiselect>\n <div class=\"flex gap-2 flex-wrap\">\n <gn-ui-badge\n *ngFor=\"let theme of themes\"\n [removable]=\"true\"\n (badgeRemoveClicked)=\"removeTheme(theme)\"\n >{{ getTranslatedTheme(theme) }}\n </gn-ui-badge>\n </div>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: BadgeComponent, selector: "gn-ui-badge", inputs: ["clickable", "removable"], outputs: ["badgeRemoveClicked"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: DropdownMultiselectComponent, selector: "gn-ui-dropdown-multiselect", inputs: ["title", "choices", "selected", "allowSearch", "maxRows", "searchInputValue"], outputs: ["selectValues"] }] }); }
|
|
39
|
+
}
|
|
40
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormFieldInspireThemeComponent, decorators: [{
|
|
41
|
+
type: Component,
|
|
42
|
+
args: [{ selector: 'gn-ui-form-field-inspire-theme', standalone: true, imports: [
|
|
43
|
+
CommonModule,
|
|
44
|
+
AutocompleteComponent,
|
|
45
|
+
NgIconComponent,
|
|
46
|
+
BadgeComponent,
|
|
47
|
+
TranslatePipe,
|
|
48
|
+
DropdownMultiselectComponent,
|
|
49
|
+
], template: "<div class=\"flex flex-col gap-3\">\n <div class=\"flex flex-col gap-4\">\n <gn-ui-dropdown-multiselect\n class=\"w-full\"\n [title]=\"'editor.record.form.inspire.placeholder' | translate\"\n [maxRows]=\"6\"\n [selected]=\"themes\"\n [choices]=\"availableThemes || []\"\n [allowSearch]=\"true\"\n (selectValues)=\"handleItemSelection($event)\"\n >\n </gn-ui-dropdown-multiselect>\n <div class=\"flex gap-2 flex-wrap\">\n <gn-ui-badge\n *ngFor=\"let theme of themes\"\n [removable]=\"true\"\n (badgeRemoveClicked)=\"removeTheme(theme)\"\n >{{ getTranslatedTheme(theme) }}\n </gn-ui-badge>\n </div>\n </div>\n</div>\n" }]
|
|
50
|
+
}], ctorParameters: () => [{ type: i1.TranslateService }], propDecorators: { value: [{
|
|
51
|
+
type: Input
|
|
52
|
+
}], valueChange: [{
|
|
53
|
+
type: Output
|
|
54
|
+
}] } });
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC1pbnNwaXJlLXRoZW1lLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9lZGl0b3Ivc3JjL2xpYi9jb21wb25lbnRzL3JlY29yZC1mb3JtL2Zvcm0tZmllbGQvZm9ybS1maWVsZC1pbnNwaXJlLWZpZWxkL2Zvcm0tZmllbGQtaW5zcGlyZS10aGVtZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZWRpdG9yL3NyYy9saWIvY29tcG9uZW50cy9yZWNvcmQtZm9ybS9mb3JtLWZpZWxkL2Zvcm0tZmllbGQtaW5zcGlyZS1maWVsZC9mb3JtLWZpZWxkLWluc3BpcmUtdGhlbWUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUN0RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUNMLHFCQUFxQixFQUNyQixjQUFjLEVBQ2QsNEJBQTRCLEdBQzdCLE1BQU0sK0NBQStDLENBQUE7QUFDdEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQ2hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTtBQUMxRCxPQUFPLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUE7Ozs7QUFnQnJFLE1BQU0sT0FBTyw4QkFBOEI7SUFFekMsSUFBYSxLQUFLLENBQUMsTUFBZ0I7UUFDakMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUE7SUFDdEIsQ0FBQztJQVNELFlBQW9CLGdCQUFrQztRQUFsQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBWnRELFdBQU0sR0FBRyxFQUFFLENBQUE7UUFJRCxnQkFBVyxHQUEyQixJQUFJLFlBQVksRUFBRSxDQUFBO1FBQ2xFLG9CQUFlLEdBQUcsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQzdDLE9BQU87Z0JBQ0wsS0FBSyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztnQkFDakQsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLO2FBQ25CLENBQUE7UUFDSCxDQUFDLENBQUMsQ0FBQTtJQUV1RCxDQUFDO0lBRTFELG1CQUFtQixDQUFDLGFBQXVCO1FBQ3pDLElBQUksQ0FBQyxNQUFNLEdBQUcsYUFBYSxDQUFBO1FBQzNCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUNwQyxDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQWE7UUFDdkIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFBO1FBQ3BELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUNwQyxDQUFDO0lBRUQsa0JBQWtCLENBQUMsS0FBYTtRQUM5QixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FDeEMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLEtBQUssS0FBSyxDQUNqQyxFQUFFLEtBQUssQ0FBQTtRQUNSLE9BQU8sUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUE7SUFDaEUsQ0FBQzsrR0E5QlUsOEJBQThCO21HQUE5Qiw4QkFBOEIsK0pDekIzQyxtc0JBc0JBLHlERFBJLFlBQVksNEpBR1osY0FBYyx3SEFDZCxhQUFhLGtEQUNiLDRCQUE0Qjs7NEZBS25CLDhCQUE4QjtrQkFkMUMsU0FBUzsrQkFDRSxnQ0FBZ0MsY0FDOUIsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1oscUJBQXFCO3dCQUNyQixlQUFlO3dCQUNmLGNBQWM7d0JBQ2QsYUFBYTt3QkFDYiw0QkFBNEI7cUJBQzdCO3FGQU1ZLEtBQUs7c0JBQWpCLEtBQUs7Z0JBR0ksV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7XG4gIEF1dG9jb21wbGV0ZUNvbXBvbmVudCxcbiAgQmFkZ2VDb21wb25lbnQsXG4gIERyb3Bkb3duTXVsdGlzZWxlY3RDb21wb25lbnQsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvaW5wdXRzL3NyYydcbmltcG9ydCB7IE5nSWNvbkNvbXBvbmVudCB9IGZyb20gJ0BuZy1pY29ucy9jb3JlJ1xuaW1wb3J0IHsgSU5TUElSRV9USEVNRVMgfSBmcm9tICcuLi8uLi8uLi8uLi9maWVsZHMuY29uZmlnJ1xuaW1wb3J0IHsgVHJhbnNsYXRlUGlwZSwgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLWZvcm0tZmllbGQtaW5zcGlyZS10aGVtZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgQXV0b2NvbXBsZXRlQ29tcG9uZW50LFxuICAgIE5nSWNvbkNvbXBvbmVudCxcbiAgICBCYWRnZUNvbXBvbmVudCxcbiAgICBUcmFuc2xhdGVQaXBlLFxuICAgIERyb3Bkb3duTXVsdGlzZWxlY3RDb21wb25lbnQsXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLWZpZWxkLWluc3BpcmUtdGhlbWUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vZm9ybS1maWVsZC1pbnNwaXJlLXRoZW1lLmNvbXBvbmVudC5jc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBGb3JtRmllbGRJbnNwaXJlVGhlbWVDb21wb25lbnQge1xuICB0aGVtZXMgPSBbXVxuICBASW5wdXQoKSBzZXQgdmFsdWUodGhlbWVzOiBzdHJpbmdbXSkge1xuICAgIHRoaXMudGhlbWVzID0gdGhlbWVzXG4gIH1cbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nW10+ID0gbmV3IEV2ZW50RW1pdHRlcigpXG4gIGF2YWlsYWJsZVRoZW1lcyA9IElOU1BJUkVfVEhFTUVTLm1hcCgodGhlbWUpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KHRoZW1lLmxhYmVsKSxcbiAgICAgIHZhbHVlOiB0aGVtZS52YWx1ZSxcbiAgICB9XG4gIH0pXG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlKSB7fVxuXG4gIGhhbmRsZUl0ZW1TZWxlY3Rpb24oc2VsZWN0ZWRJdGVtczogc3RyaW5nW10pIHtcbiAgICB0aGlzLnRoZW1lcyA9IHNlbGVjdGVkSXRlbXNcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGhpcy50aGVtZXMpXG4gIH1cblxuICByZW1vdmVUaGVtZSh0aGVtZTogc3RyaW5nKSB7XG4gICAgdGhpcy50aGVtZXMgPSB0aGlzLnRoZW1lcy5maWx0ZXIoKHQpID0+IHQgIT09IHRoZW1lKVxuICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh0aGlzLnRoZW1lcylcbiAgfVxuXG4gIGdldFRyYW5zbGF0ZWRUaGVtZSh0aGVtZTogc3RyaW5nKSB7XG4gICAgY29uc3QgdGhlbWVLZXkgPSB0aGlzLmF2YWlsYWJsZVRoZW1lcy5maW5kKFxuICAgICAgKGF2YWlsKSA9PiBhdmFpbC52YWx1ZSA9PT0gdGhlbWVcbiAgICApPy5sYWJlbFxuICAgIHJldHVybiB0aGVtZUtleSA/IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KHRoZW1lS2V5KSA6ICcnXG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC0zXCI+XG4gIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC00XCI+XG4gICAgPGduLXVpLWRyb3Bkb3duLW11bHRpc2VsZWN0XG4gICAgICBjbGFzcz1cInctZnVsbFwiXG4gICAgICBbdGl0bGVdPVwiJ2VkaXRvci5yZWNvcmQuZm9ybS5pbnNwaXJlLnBsYWNlaG9sZGVyJyB8IHRyYW5zbGF0ZVwiXG4gICAgICBbbWF4Um93c109XCI2XCJcbiAgICAgIFtzZWxlY3RlZF09XCJ0aGVtZXNcIlxuICAgICAgW2Nob2ljZXNdPVwiYXZhaWxhYmxlVGhlbWVzIHx8IFtdXCJcbiAgICAgIFthbGxvd1NlYXJjaF09XCJ0cnVlXCJcbiAgICAgIChzZWxlY3RWYWx1ZXMpPVwiaGFuZGxlSXRlbVNlbGVjdGlvbigkZXZlbnQpXCJcbiAgICA+XG4gICAgPC9nbi11aS1kcm9wZG93bi1tdWx0aXNlbGVjdD5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBnYXAtMiBmbGV4LXdyYXBcIj5cbiAgICAgIDxnbi11aS1iYWRnZVxuICAgICAgICAqbmdGb3I9XCJsZXQgdGhlbWUgb2YgdGhlbWVzXCJcbiAgICAgICAgW3JlbW92YWJsZV09XCJ0cnVlXCJcbiAgICAgICAgKGJhZGdlUmVtb3ZlQ2xpY2tlZCk9XCJyZW1vdmVUaGVtZSh0aGVtZSlcIlxuICAgICAgICA+e3sgZ2V0VHJhbnNsYXRlZFRoZW1lKHRoZW1lKSB9fVxuICAgICAgPC9nbi11aS1iYWRnZT5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -18,6 +18,7 @@ import { FormFieldConstraintsShortcutsComponent } from './form-field-constraints
|
|
|
18
18
|
import { FormFieldConstraintsComponent } from './form-field-constraints/form-field-constraints.component';
|
|
19
19
|
import { TextFieldModule } from '@angular/cdk/text-field';
|
|
20
20
|
import { FormFieldSpatialToggleComponent } from './form-field-spatial-toggle/form-field-spatial-toggle.component';
|
|
21
|
+
import { FormFieldInspireThemeComponent } from './form-field-inspire-field/form-field-inspire-theme.component';
|
|
21
22
|
import * as i0 from "@angular/core";
|
|
22
23
|
import * as i1 from "@angular/common";
|
|
23
24
|
import * as i2 from "@angular/material/tooltip";
|
|
@@ -59,6 +60,9 @@ export class FormFieldComponent {
|
|
|
59
60
|
get valueAsKeywords() {
|
|
60
61
|
return this.value;
|
|
61
62
|
}
|
|
63
|
+
get valueAsInspireTheme() {
|
|
64
|
+
return this.value;
|
|
65
|
+
}
|
|
62
66
|
get valueAsConstraints() {
|
|
63
67
|
return this.value;
|
|
64
68
|
}
|
|
@@ -69,7 +73,7 @@ export class FormFieldComponent {
|
|
|
69
73
|
return this.value;
|
|
70
74
|
}
|
|
71
75
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
72
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FormFieldComponent, isStandalone: true, selector: "gn-ui-form-field", inputs: { uniqueIdentifier: "uniqueIdentifier", model: "model", modelSpecifier: "modelSpecifier", componentName: "componentName", config: "config", value: "value" }, outputs: { valueChange: "valueChange" }, viewQueries: [{ propertyName: "titleInput", first: true, predicate: ["titleInput"], descendants: true }], ngImport: i0, template: "<!-- TEMPORARY - disabling the open data switch -->\n<!-- <ng-container *ngIf=\"model === 'licenses'\">\n <gn-ui-form-field-open-data\n [value]=\"valueAsConstraints\"\n (valueChange)=\"valueChange.emit($event)\"\n (openDataChange)=\"toggleIsOpenData($event)\"\n ></gn-ui-form-field-open-data>\n</ng-container> -->\n<div class=\"flex flex-col h-full\">\n <ng-container *ngIf=\"withoutWrapper; else withGenericWrapper\">\n <ng-container *ngTemplateOutlet=\"fieldContent\"></ng-container>\n </ng-container>\n <ng-template #withGenericWrapper>\n <gn-ui-form-field-wrapper\n [label]=\"config.labelKey! | translate\"\n [hint]=\"config.hintKey! | translate\"\n >\n <ng-container *ngTemplateOutlet=\"fieldContent\"></ng-container>\n </gn-ui-form-field-wrapper>\n </ng-template>\n</div>\n\n<ng-template #fieldContent>\n <ng-container [ngSwitch]=\"model\">\n <ng-container *ngSwitchCase=\"'title'\">\n <div class=\"flex flex-row flex-start items-center gap-3 mb-[12px]\">\n <textarea\n #titleInput\n cdkTextareaAutosize\n #autosize=\"cdkTextareaAutosize\"\n cdkAutosizeMinRows=\"1\"\n data-test=\"recordTitleInput\"\n class=\"grow font-title text-3xl font-normal overflow-hidden text-black/80\"\n (change)=\"valueChange.emit($event.target.value)\"\n [placeholder]=\"\n 'editor.record.form.field.title.placeholder' | translate\n \"\n >{{ valueAsString }}</textarea\n >\n <div class=\"flex flex-row justify-between self-start mt-0.5\">\n <span\n class=\"material-symbols-outlined gn-ui-icon-small m-2 cursor-pointer\"\n (click)=\"focusTitleInput()\"\n >edit</span\n >\n <span\n *ngIf=\"config.hintKey\"\n class=\"material-symbols-outlined gn-ui-icon-small m-2\"\n [matTooltip]=\"config.hintKey! | translate\"\n matTooltipPosition=\"above\"\n >\n help\n </span>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'abstract'\">\n <gn-ui-form-field-rich\n [label]=\"config.labelKey! | translate\"\n [hint]=\"config.hintKey! | translate\"\n [value]=\"valueAsString\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-rich>\n </ng-container>\n <ng-container *ngSwitchCase=\"'overviews'\">\n <gn-ui-form-field-overviews\n [metadataUuid]=\"uniqueIdentifier\"\n [value]=\"valueAsOverviews\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-overviews>\n </ng-container>\n <ng-container *ngSwitchCase=\"'resourceIdentifier'\">\n <gn-ui-form-field-simple\n [type]=\"'text'\"\n [value]=\"valueAsString\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-simple>\n </ng-container>\n <ng-container *ngSwitchCase=\"'resourceCreated'\">\n <gn-ui-form-field-date\n [value]=\"valueAsDate\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-date>\n </ng-container>\n <ng-container *ngSwitchCase=\"'resourceUpdated'\">\n <gn-ui-form-field-date\n [value]=\"valueAsDate\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-date>\n </ng-container>\n <ng-container *ngSwitchCase=\"'updateFrequency'\">\n <gn-ui-form-field-update-frequency\n [value]=\"valueAsUpdateFrequency\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-update-frequency>\n </ng-container>\n <ng-container *ngSwitchCase=\"'temporalExtents'\">\n <gn-ui-form-field-temporal-extents\n [value]=\"valueAsTemporalExtents\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-temporal-extents>\n </ng-container>\n <ng-container *ngSwitchCase=\"'spatialExtents'\">\n <gn-ui-form-field-spatial-extent></gn-ui-form-field-spatial-extent>\n </ng-container>\n <ng-container *ngSwitchCase=\"'keywords'\">\n <gn-ui-form-field-keywords\n [value]=\"valueAsKeywords\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-keywords>\n </ng-container>\n <ng-container *ngSwitchCase=\"'licenses'\">\n <gn-ui-form-field-license\n [label]=\"config.labelKey! | translate\"\n [recordLicences]=\"valueAsConstraints\"\n (recordLicencesChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-license>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'legalConstraints'\">\n <ng-container *ngTemplateOutlet=\"formFieldConstraints\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'securityConstraints'\">\n <ng-container *ngTemplateOutlet=\"formFieldConstraints\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'otherConstraints'\">\n <ng-container *ngTemplateOutlet=\"formFieldConstraints\"></ng-container\n ></ng-container>\n <ng-template #formFieldConstraints>\n <gn-ui-form-field-constraints\n [label]=\"config.labelKey\"\n [value]=\"valueAsConstraints\"\n [constraintType]=\"model\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-constraints\n ></ng-template>\n\n <ng-container *ngSwitchCase=\"'contactsForResource'\">\n <gn-ui-form-field-contacts-for-resource\n [value]=\"valueAsIndividuals\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-contacts-for-resource>\n </ng-container>\n <ng-container *ngSwitchCase=\"'contacts'\">\n <gn-ui-form-field-contacts\n [value]=\"valueAsIndividuals\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-contacts>\n </ng-container>\n <ng-container *ngSwitchCase=\"'onlineResources'\">\n <gn-ui-form-field-online-resources\n *ngIf=\"modelSpecifier === 'onlineResourceType:!link'\"\n [metadataUuid]=\"uniqueIdentifier\"\n [value]=\"valueAsOnlineResources\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-online-resources>\n </ng-container>\n <ng-container *ngSwitchCase=\"'onlineResources'\">\n <gn-ui-form-field-online-link-resources\n *ngIf=\"modelSpecifier === 'onlineResourceType:link'\"\n [metadataUuid]=\"uniqueIdentifier\"\n [value]=\"valueAsOnlineResources\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-online-link-resources>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"!model\">\n <ng-container [ngSwitch]=\"componentName\">\n <ng-container *ngSwitchCase=\"'form-field-constraints-shortcuts'\">\n <gn-ui-form-field-constraints-shortcuts></gn-ui-form-field-constraints-shortcuts>\n </ng-container>\n <ng-container *ngSwitchCase=\"'form-field-spatial-toggle'\">\n <gn-ui-form-field-spatial-toggle></gn-ui-form-field-spatial-toggle>\n </ng-container>\n </ng-container>\n </ng-container>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: FormFieldWrapperComponent, selector: "gn-ui-form-field-wrapper", inputs: ["label", "hint"] }, { kind: "component", type: FormFieldLicenseComponent, selector: "gn-ui-form-field-license", inputs: ["label", "recordLicences"], outputs: ["recordLicencesChange"] }, { kind: "component", type: FormFieldDateComponent, selector: "gn-ui-form-field-date", inputs: ["value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldUpdateFrequencyComponent, selector: "gn-ui-form-field-update-frequency", inputs: ["value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldTemporalExtentsComponent, selector: "gn-ui-form-field-temporal-extents", inputs: ["value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldSimpleComponent, selector: "gn-ui-form-field-simple", inputs: ["type", "readonly", "invalid", "placeholder", "value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldRichComponent, selector: "gn-ui-form-field-rich", inputs: ["label", "hint", "placeholder", "value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldSpatialExtentComponent, selector: "gn-ui-form-field-spatial-extent" }, { kind: "component", type: FormFieldKeywordsComponent, selector: "gn-ui-form-field-keywords", inputs: ["value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldOverviewsComponent, selector: "gn-ui-form-field-overviews", inputs: ["metadataUuid", "value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldContactsForResourceComponent, selector: "gn-ui-form-field-contacts-for-resource", inputs: ["value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldOnlineResourcesComponent, selector: "gn-ui-form-field-online-resources", inputs: ["metadataUuid", "value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldOnlineLinkResourcesComponent, selector: "gn-ui-form-field-online-link-resources", inputs: ["metadataUuid", "value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldContactsComponent, selector: "gn-ui-form-field-contacts", inputs: ["value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldConstraintsComponent, selector: "gn-ui-form-field-constraints", inputs: ["label", "value", "constraintType"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldConstraintsShortcutsComponent, selector: "gn-ui-form-field-constraints-shortcuts" }, { kind: "component", type: FormFieldSpatialToggleComponent, selector: "gn-ui-form-field-spatial-toggle" }, { kind: "ngmodule", type: TextFieldModule }, { kind: "directive", type: i3.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
76
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FormFieldComponent, isStandalone: true, selector: "gn-ui-form-field", inputs: { uniqueIdentifier: "uniqueIdentifier", model: "model", modelSpecifier: "modelSpecifier", componentName: "componentName", config: "config", value: "value" }, outputs: { valueChange: "valueChange" }, viewQueries: [{ propertyName: "titleInput", first: true, predicate: ["titleInput"], descendants: true }], ngImport: i0, template: "<!-- TEMPORARY - disabling the open data switch -->\n<!-- <ng-container *ngIf=\"model === 'licenses'\">\n <gn-ui-form-field-open-data\n [value]=\"valueAsConstraints\"\n (valueChange)=\"valueChange.emit($event)\"\n (openDataChange)=\"toggleIsOpenData($event)\"\n ></gn-ui-form-field-open-data>\n</ng-container> -->\n<div class=\"flex flex-col h-full\">\n <ng-container *ngIf=\"withoutWrapper; else withGenericWrapper\">\n <ng-container *ngTemplateOutlet=\"fieldContent\"></ng-container>\n </ng-container>\n <ng-template #withGenericWrapper>\n <gn-ui-form-field-wrapper\n [label]=\"config.labelKey! | translate\"\n [hint]=\"config.hintKey! | translate\"\n >\n <ng-container *ngTemplateOutlet=\"fieldContent\"></ng-container>\n </gn-ui-form-field-wrapper>\n </ng-template>\n</div>\n\n<ng-template #fieldContent>\n <ng-container [ngSwitch]=\"model\">\n <ng-container *ngSwitchCase=\"'title'\">\n <div class=\"flex flex-row flex-start items-center gap-3 mb-[12px]\">\n <textarea\n #titleInput\n cdkTextareaAutosize\n #autosize=\"cdkTextareaAutosize\"\n cdkAutosizeMinRows=\"1\"\n data-test=\"recordTitleInput\"\n class=\"grow font-title text-3xl font-normal overflow-hidden text-black/80\"\n (change)=\"valueChange.emit($event.target.value)\"\n [placeholder]=\"\n 'editor.record.form.field.title.placeholder' | translate\n \"\n >{{ valueAsString }}</textarea\n >\n <div class=\"flex flex-row justify-between self-start mt-0.5\">\n <span\n class=\"material-symbols-outlined gn-ui-icon-small m-2 cursor-pointer\"\n (click)=\"focusTitleInput()\"\n >edit</span\n >\n <span\n *ngIf=\"config.hintKey\"\n class=\"material-symbols-outlined gn-ui-icon-small m-2\"\n [matTooltip]=\"config.hintKey! | translate\"\n matTooltipPosition=\"above\"\n >\n help\n </span>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'abstract'\">\n <gn-ui-form-field-rich\n [label]=\"config.labelKey! | translate\"\n [hint]=\"config.hintKey! | translate\"\n [value]=\"valueAsString\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-rich>\n </ng-container>\n <ng-container *ngSwitchCase=\"'overviews'\">\n <gn-ui-form-field-overviews\n [metadataUuid]=\"uniqueIdentifier\"\n [value]=\"valueAsOverviews\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-overviews>\n </ng-container>\n <ng-container *ngSwitchCase=\"'resourceIdentifier'\">\n <gn-ui-form-field-simple\n [type]=\"'text'\"\n [value]=\"valueAsString\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-simple>\n </ng-container>\n <ng-container *ngSwitchCase=\"'resourceCreated'\">\n <gn-ui-form-field-date\n [value]=\"valueAsDate\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-date>\n </ng-container>\n <ng-container *ngSwitchCase=\"'resourceUpdated'\">\n <gn-ui-form-field-date\n [value]=\"valueAsDate\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-date>\n </ng-container>\n <ng-container *ngSwitchCase=\"'updateFrequency'\">\n <gn-ui-form-field-update-frequency\n [value]=\"valueAsUpdateFrequency\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-update-frequency>\n </ng-container>\n <ng-container *ngSwitchCase=\"'temporalExtents'\">\n <gn-ui-form-field-temporal-extents\n [value]=\"valueAsTemporalExtents\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-temporal-extents>\n </ng-container>\n <ng-container *ngSwitchCase=\"'spatialExtents'\">\n <gn-ui-form-field-spatial-extent></gn-ui-form-field-spatial-extent>\n </ng-container>\n <ng-container *ngSwitchCase=\"'keywords'\">\n <gn-ui-form-field-keywords\n [value]=\"valueAsKeywords\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-keywords>\n </ng-container>\n <ng-container *ngSwitchCase=\"'topics'\">\n <gn-ui-form-field-inspire-theme\n [value]=\"valueAsInspireTheme\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-inspire-theme>\n </ng-container>\n <ng-container *ngSwitchCase=\"'licenses'\">\n <gn-ui-form-field-license\n [label]=\"config.labelKey! | translate\"\n [recordLicences]=\"valueAsConstraints\"\n (recordLicencesChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-license>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'legalConstraints'\">\n <ng-container *ngTemplateOutlet=\"formFieldConstraints\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'securityConstraints'\">\n <ng-container *ngTemplateOutlet=\"formFieldConstraints\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'otherConstraints'\">\n <ng-container *ngTemplateOutlet=\"formFieldConstraints\"></ng-container\n ></ng-container>\n <ng-template #formFieldConstraints>\n <gn-ui-form-field-constraints\n [label]=\"config.labelKey\"\n [value]=\"valueAsConstraints\"\n [constraintType]=\"model\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-constraints\n ></ng-template>\n\n <ng-container *ngSwitchCase=\"'contactsForResource'\">\n <gn-ui-form-field-contacts-for-resource\n [value]=\"valueAsIndividuals\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-contacts-for-resource>\n </ng-container>\n <ng-container *ngSwitchCase=\"'contacts'\">\n <gn-ui-form-field-contacts\n [value]=\"valueAsIndividuals\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-contacts>\n </ng-container>\n <ng-container *ngSwitchCase=\"'onlineResources'\">\n <gn-ui-form-field-online-resources\n *ngIf=\"modelSpecifier === 'onlineResourceType:!link'\"\n [metadataUuid]=\"uniqueIdentifier\"\n [value]=\"valueAsOnlineResources\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-online-resources>\n </ng-container>\n <ng-container *ngSwitchCase=\"'onlineResources'\">\n <gn-ui-form-field-online-link-resources\n *ngIf=\"modelSpecifier === 'onlineResourceType:link'\"\n [metadataUuid]=\"uniqueIdentifier\"\n [value]=\"valueAsOnlineResources\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-online-link-resources>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"!model\">\n <ng-container [ngSwitch]=\"componentName\">\n <ng-container *ngSwitchCase=\"'form-field-constraints-shortcuts'\">\n <gn-ui-form-field-constraints-shortcuts></gn-ui-form-field-constraints-shortcuts>\n </ng-container>\n <ng-container *ngSwitchCase=\"'form-field-spatial-toggle'\">\n <gn-ui-form-field-spatial-toggle></gn-ui-form-field-spatial-toggle>\n </ng-container>\n </ng-container>\n </ng-container>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: FormFieldWrapperComponent, selector: "gn-ui-form-field-wrapper", inputs: ["label", "hint"] }, { kind: "component", type: FormFieldLicenseComponent, selector: "gn-ui-form-field-license", inputs: ["label", "recordLicences"], outputs: ["recordLicencesChange"] }, { kind: "component", type: FormFieldDateComponent, selector: "gn-ui-form-field-date", inputs: ["value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldUpdateFrequencyComponent, selector: "gn-ui-form-field-update-frequency", inputs: ["value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldTemporalExtentsComponent, selector: "gn-ui-form-field-temporal-extents", inputs: ["value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldSimpleComponent, selector: "gn-ui-form-field-simple", inputs: ["type", "readonly", "invalid", "placeholder", "value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldRichComponent, selector: "gn-ui-form-field-rich", inputs: ["label", "hint", "placeholder", "value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldSpatialExtentComponent, selector: "gn-ui-form-field-spatial-extent" }, { kind: "component", type: FormFieldKeywordsComponent, selector: "gn-ui-form-field-keywords", inputs: ["value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldOverviewsComponent, selector: "gn-ui-form-field-overviews", inputs: ["metadataUuid", "value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldContactsForResourceComponent, selector: "gn-ui-form-field-contacts-for-resource", inputs: ["value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldOnlineResourcesComponent, selector: "gn-ui-form-field-online-resources", inputs: ["metadataUuid", "value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldOnlineLinkResourcesComponent, selector: "gn-ui-form-field-online-link-resources", inputs: ["metadataUuid", "value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldContactsComponent, selector: "gn-ui-form-field-contacts", inputs: ["value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldConstraintsComponent, selector: "gn-ui-form-field-constraints", inputs: ["label", "value", "constraintType"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldConstraintsShortcutsComponent, selector: "gn-ui-form-field-constraints-shortcuts" }, { kind: "component", type: FormFieldSpatialToggleComponent, selector: "gn-ui-form-field-spatial-toggle" }, { kind: "component", type: FormFieldInspireThemeComponent, selector: "gn-ui-form-field-inspire-theme", inputs: ["value"], outputs: ["valueChange"] }, { kind: "ngmodule", type: TextFieldModule }, { kind: "directive", type: i3.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
73
77
|
}
|
|
74
78
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormFieldComponent, decorators: [{
|
|
75
79
|
type: Component,
|
|
@@ -94,8 +98,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
94
98
|
FormFieldConstraintsComponent,
|
|
95
99
|
FormFieldConstraintsShortcutsComponent,
|
|
96
100
|
FormFieldSpatialToggleComponent,
|
|
101
|
+
FormFieldInspireThemeComponent,
|
|
97
102
|
TextFieldModule,
|
|
98
|
-
], template: "<!-- TEMPORARY - disabling the open data switch -->\n<!-- <ng-container *ngIf=\"model === 'licenses'\">\n <gn-ui-form-field-open-data\n [value]=\"valueAsConstraints\"\n (valueChange)=\"valueChange.emit($event)\"\n (openDataChange)=\"toggleIsOpenData($event)\"\n ></gn-ui-form-field-open-data>\n</ng-container> -->\n<div class=\"flex flex-col h-full\">\n <ng-container *ngIf=\"withoutWrapper; else withGenericWrapper\">\n <ng-container *ngTemplateOutlet=\"fieldContent\"></ng-container>\n </ng-container>\n <ng-template #withGenericWrapper>\n <gn-ui-form-field-wrapper\n [label]=\"config.labelKey! | translate\"\n [hint]=\"config.hintKey! | translate\"\n >\n <ng-container *ngTemplateOutlet=\"fieldContent\"></ng-container>\n </gn-ui-form-field-wrapper>\n </ng-template>\n</div>\n\n<ng-template #fieldContent>\n <ng-container [ngSwitch]=\"model\">\n <ng-container *ngSwitchCase=\"'title'\">\n <div class=\"flex flex-row flex-start items-center gap-3 mb-[12px]\">\n <textarea\n #titleInput\n cdkTextareaAutosize\n #autosize=\"cdkTextareaAutosize\"\n cdkAutosizeMinRows=\"1\"\n data-test=\"recordTitleInput\"\n class=\"grow font-title text-3xl font-normal overflow-hidden text-black/80\"\n (change)=\"valueChange.emit($event.target.value)\"\n [placeholder]=\"\n 'editor.record.form.field.title.placeholder' | translate\n \"\n >{{ valueAsString }}</textarea\n >\n <div class=\"flex flex-row justify-between self-start mt-0.5\">\n <span\n class=\"material-symbols-outlined gn-ui-icon-small m-2 cursor-pointer\"\n (click)=\"focusTitleInput()\"\n >edit</span\n >\n <span\n *ngIf=\"config.hintKey\"\n class=\"material-symbols-outlined gn-ui-icon-small m-2\"\n [matTooltip]=\"config.hintKey! | translate\"\n matTooltipPosition=\"above\"\n >\n help\n </span>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'abstract'\">\n <gn-ui-form-field-rich\n [label]=\"config.labelKey! | translate\"\n [hint]=\"config.hintKey! | translate\"\n [value]=\"valueAsString\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-rich>\n </ng-container>\n <ng-container *ngSwitchCase=\"'overviews'\">\n <gn-ui-form-field-overviews\n [metadataUuid]=\"uniqueIdentifier\"\n [value]=\"valueAsOverviews\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-overviews>\n </ng-container>\n <ng-container *ngSwitchCase=\"'resourceIdentifier'\">\n <gn-ui-form-field-simple\n [type]=\"'text'\"\n [value]=\"valueAsString\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-simple>\n </ng-container>\n <ng-container *ngSwitchCase=\"'resourceCreated'\">\n <gn-ui-form-field-date\n [value]=\"valueAsDate\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-date>\n </ng-container>\n <ng-container *ngSwitchCase=\"'resourceUpdated'\">\n <gn-ui-form-field-date\n [value]=\"valueAsDate\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-date>\n </ng-container>\n <ng-container *ngSwitchCase=\"'updateFrequency'\">\n <gn-ui-form-field-update-frequency\n [value]=\"valueAsUpdateFrequency\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-update-frequency>\n </ng-container>\n <ng-container *ngSwitchCase=\"'temporalExtents'\">\n <gn-ui-form-field-temporal-extents\n [value]=\"valueAsTemporalExtents\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-temporal-extents>\n </ng-container>\n <ng-container *ngSwitchCase=\"'spatialExtents'\">\n <gn-ui-form-field-spatial-extent></gn-ui-form-field-spatial-extent>\n </ng-container>\n <ng-container *ngSwitchCase=\"'keywords'\">\n <gn-ui-form-field-keywords\n [value]=\"valueAsKeywords\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-keywords>\n </ng-container>\n <ng-container *ngSwitchCase=\"'licenses'\">\n <gn-ui-form-field-license\n [label]=\"config.labelKey! | translate\"\n [recordLicences]=\"valueAsConstraints\"\n (recordLicencesChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-license>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'legalConstraints'\">\n <ng-container *ngTemplateOutlet=\"formFieldConstraints\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'securityConstraints'\">\n <ng-container *ngTemplateOutlet=\"formFieldConstraints\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'otherConstraints'\">\n <ng-container *ngTemplateOutlet=\"formFieldConstraints\"></ng-container\n ></ng-container>\n <ng-template #formFieldConstraints>\n <gn-ui-form-field-constraints\n [label]=\"config.labelKey\"\n [value]=\"valueAsConstraints\"\n [constraintType]=\"model\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-constraints\n ></ng-template>\n\n <ng-container *ngSwitchCase=\"'contactsForResource'\">\n <gn-ui-form-field-contacts-for-resource\n [value]=\"valueAsIndividuals\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-contacts-for-resource>\n </ng-container>\n <ng-container *ngSwitchCase=\"'contacts'\">\n <gn-ui-form-field-contacts\n [value]=\"valueAsIndividuals\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-contacts>\n </ng-container>\n <ng-container *ngSwitchCase=\"'onlineResources'\">\n <gn-ui-form-field-online-resources\n *ngIf=\"modelSpecifier === 'onlineResourceType:!link'\"\n [metadataUuid]=\"uniqueIdentifier\"\n [value]=\"valueAsOnlineResources\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-online-resources>\n </ng-container>\n <ng-container *ngSwitchCase=\"'onlineResources'\">\n <gn-ui-form-field-online-link-resources\n *ngIf=\"modelSpecifier === 'onlineResourceType:link'\"\n [metadataUuid]=\"uniqueIdentifier\"\n [value]=\"valueAsOnlineResources\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-online-link-resources>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"!model\">\n <ng-container [ngSwitch]=\"componentName\">\n <ng-container *ngSwitchCase=\"'form-field-constraints-shortcuts'\">\n <gn-ui-form-field-constraints-shortcuts></gn-ui-form-field-constraints-shortcuts>\n </ng-container>\n <ng-container *ngSwitchCase=\"'form-field-spatial-toggle'\">\n <gn-ui-form-field-spatial-toggle></gn-ui-form-field-spatial-toggle>\n </ng-container>\n </ng-container>\n </ng-container>\n</ng-template>\n" }]
|
|
103
|
+
], template: "<!-- TEMPORARY - disabling the open data switch -->\n<!-- <ng-container *ngIf=\"model === 'licenses'\">\n <gn-ui-form-field-open-data\n [value]=\"valueAsConstraints\"\n (valueChange)=\"valueChange.emit($event)\"\n (openDataChange)=\"toggleIsOpenData($event)\"\n ></gn-ui-form-field-open-data>\n</ng-container> -->\n<div class=\"flex flex-col h-full\">\n <ng-container *ngIf=\"withoutWrapper; else withGenericWrapper\">\n <ng-container *ngTemplateOutlet=\"fieldContent\"></ng-container>\n </ng-container>\n <ng-template #withGenericWrapper>\n <gn-ui-form-field-wrapper\n [label]=\"config.labelKey! | translate\"\n [hint]=\"config.hintKey! | translate\"\n >\n <ng-container *ngTemplateOutlet=\"fieldContent\"></ng-container>\n </gn-ui-form-field-wrapper>\n </ng-template>\n</div>\n\n<ng-template #fieldContent>\n <ng-container [ngSwitch]=\"model\">\n <ng-container *ngSwitchCase=\"'title'\">\n <div class=\"flex flex-row flex-start items-center gap-3 mb-[12px]\">\n <textarea\n #titleInput\n cdkTextareaAutosize\n #autosize=\"cdkTextareaAutosize\"\n cdkAutosizeMinRows=\"1\"\n data-test=\"recordTitleInput\"\n class=\"grow font-title text-3xl font-normal overflow-hidden text-black/80\"\n (change)=\"valueChange.emit($event.target.value)\"\n [placeholder]=\"\n 'editor.record.form.field.title.placeholder' | translate\n \"\n >{{ valueAsString }}</textarea\n >\n <div class=\"flex flex-row justify-between self-start mt-0.5\">\n <span\n class=\"material-symbols-outlined gn-ui-icon-small m-2 cursor-pointer\"\n (click)=\"focusTitleInput()\"\n >edit</span\n >\n <span\n *ngIf=\"config.hintKey\"\n class=\"material-symbols-outlined gn-ui-icon-small m-2\"\n [matTooltip]=\"config.hintKey! | translate\"\n matTooltipPosition=\"above\"\n >\n help\n </span>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'abstract'\">\n <gn-ui-form-field-rich\n [label]=\"config.labelKey! | translate\"\n [hint]=\"config.hintKey! | translate\"\n [value]=\"valueAsString\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-rich>\n </ng-container>\n <ng-container *ngSwitchCase=\"'overviews'\">\n <gn-ui-form-field-overviews\n [metadataUuid]=\"uniqueIdentifier\"\n [value]=\"valueAsOverviews\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-overviews>\n </ng-container>\n <ng-container *ngSwitchCase=\"'resourceIdentifier'\">\n <gn-ui-form-field-simple\n [type]=\"'text'\"\n [value]=\"valueAsString\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-simple>\n </ng-container>\n <ng-container *ngSwitchCase=\"'resourceCreated'\">\n <gn-ui-form-field-date\n [value]=\"valueAsDate\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-date>\n </ng-container>\n <ng-container *ngSwitchCase=\"'resourceUpdated'\">\n <gn-ui-form-field-date\n [value]=\"valueAsDate\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-date>\n </ng-container>\n <ng-container *ngSwitchCase=\"'updateFrequency'\">\n <gn-ui-form-field-update-frequency\n [value]=\"valueAsUpdateFrequency\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-update-frequency>\n </ng-container>\n <ng-container *ngSwitchCase=\"'temporalExtents'\">\n <gn-ui-form-field-temporal-extents\n [value]=\"valueAsTemporalExtents\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-temporal-extents>\n </ng-container>\n <ng-container *ngSwitchCase=\"'spatialExtents'\">\n <gn-ui-form-field-spatial-extent></gn-ui-form-field-spatial-extent>\n </ng-container>\n <ng-container *ngSwitchCase=\"'keywords'\">\n <gn-ui-form-field-keywords\n [value]=\"valueAsKeywords\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-keywords>\n </ng-container>\n <ng-container *ngSwitchCase=\"'topics'\">\n <gn-ui-form-field-inspire-theme\n [value]=\"valueAsInspireTheme\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-inspire-theme>\n </ng-container>\n <ng-container *ngSwitchCase=\"'licenses'\">\n <gn-ui-form-field-license\n [label]=\"config.labelKey! | translate\"\n [recordLicences]=\"valueAsConstraints\"\n (recordLicencesChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-license>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'legalConstraints'\">\n <ng-container *ngTemplateOutlet=\"formFieldConstraints\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'securityConstraints'\">\n <ng-container *ngTemplateOutlet=\"formFieldConstraints\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'otherConstraints'\">\n <ng-container *ngTemplateOutlet=\"formFieldConstraints\"></ng-container\n ></ng-container>\n <ng-template #formFieldConstraints>\n <gn-ui-form-field-constraints\n [label]=\"config.labelKey\"\n [value]=\"valueAsConstraints\"\n [constraintType]=\"model\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-constraints\n ></ng-template>\n\n <ng-container *ngSwitchCase=\"'contactsForResource'\">\n <gn-ui-form-field-contacts-for-resource\n [value]=\"valueAsIndividuals\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-contacts-for-resource>\n </ng-container>\n <ng-container *ngSwitchCase=\"'contacts'\">\n <gn-ui-form-field-contacts\n [value]=\"valueAsIndividuals\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-contacts>\n </ng-container>\n <ng-container *ngSwitchCase=\"'onlineResources'\">\n <gn-ui-form-field-online-resources\n *ngIf=\"modelSpecifier === 'onlineResourceType:!link'\"\n [metadataUuid]=\"uniqueIdentifier\"\n [value]=\"valueAsOnlineResources\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-online-resources>\n </ng-container>\n <ng-container *ngSwitchCase=\"'onlineResources'\">\n <gn-ui-form-field-online-link-resources\n *ngIf=\"modelSpecifier === 'onlineResourceType:link'\"\n [metadataUuid]=\"uniqueIdentifier\"\n [value]=\"valueAsOnlineResources\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-online-link-resources>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"!model\">\n <ng-container [ngSwitch]=\"componentName\">\n <ng-container *ngSwitchCase=\"'form-field-constraints-shortcuts'\">\n <gn-ui-form-field-constraints-shortcuts></gn-ui-form-field-constraints-shortcuts>\n </ng-container>\n <ng-container *ngSwitchCase=\"'form-field-spatial-toggle'\">\n <gn-ui-form-field-spatial-toggle></gn-ui-form-field-spatial-toggle>\n </ng-container>\n </ng-container>\n </ng-container>\n</ng-template>\n" }]
|
|
99
104
|
}], propDecorators: { uniqueIdentifier: [{
|
|
100
105
|
type: Input
|
|
101
106
|
}], model: [{
|
|
@@ -114,4 +119,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
114
119
|
type: ViewChild,
|
|
115
120
|
args: ['titleInput']
|
|
116
121
|
}] } });
|
|
117
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZWRpdG9yL3NyYy9saWIvY29tcG9uZW50cy9yZWNvcmQtZm9ybS9mb3JtLWZpZWxkL2Zvcm0tZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL2VkaXRvci9zcmMvbGliL2NvbXBvbmVudHMvcmVjb3JkLWZvcm0vZm9ybS1maWVsZC9mb3JtLWZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBVzVELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFBO0FBQ3RGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUNuRCxPQUFPLEVBQ0wsc0JBQXNCLEVBQ3RCLHlCQUF5QixFQUN6QixpQ0FBaUMsR0FDbEMsTUFBTSxHQUFHLENBQUE7QUFNVixPQUFPLEVBQUUscUNBQXFDLEVBQUUsTUFBTSwrRUFBK0UsQ0FBQTtBQUNySSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQTtBQUNoRyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQTtBQUNoRyxPQUFPLEVBQUUscUNBQXFDLEVBQUUsTUFBTSwrRUFBK0UsQ0FBQTtBQUNySSxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxxRUFBcUUsQ0FBQTtBQUN2SCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQTtBQUNuRyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQTtBQUNwRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQTtBQUMxRixPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxpRUFBaUUsQ0FBQTtBQUNqSCxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxxRUFBcUUsQ0FBQTtBQUN2SCxPQUFPLEVBQUUsc0NBQXNDLEVBQUUsTUFBTSwrRUFBK0UsQ0FBQTtBQUN0SSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSwyREFBMkQsQ0FBQTtBQUN6RyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUE7QUFDekQsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0saUVBQWlFLENBQUE7Ozs7O0FBZ0NqSCxNQUFNLE9BQU8sa0JBQWtCO0lBOUIvQjtRQXVDWSxnQkFBVyxHQUEwQixJQUFJLFlBQVksRUFBRSxDQUFBO1FBR2pFLGVBQVUsR0FBRyxLQUFLLENBQUE7S0FpRG5CO0lBL0NDLGdCQUFnQixDQUFDLEtBQWM7UUFDN0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUE7SUFDekIsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQTtJQUN2QyxDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sQ0FDTCxJQUFJLENBQUMsS0FBSyxLQUFLLE9BQU87WUFDdEIsSUFBSSxDQUFDLEtBQUssS0FBSyxVQUFVO1lBQ3pCLElBQUksQ0FBQyxLQUFLLEtBQUssa0JBQWtCO1lBQ2pDLElBQUksQ0FBQyxLQUFLLEtBQUsscUJBQXFCO1lBQ3BDLElBQUksQ0FBQyxLQUFLLEtBQUssa0JBQWtCO1lBQ2pDLElBQUksQ0FBQyxhQUFhLEtBQUssa0NBQWtDLENBQzFELENBQUE7SUFDSCxDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2YsT0FBTyxJQUFJLENBQUMsS0FBZSxDQUFBO0lBQzdCLENBQUM7SUFDRCxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxLQUFhLENBQUE7SUFDM0IsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLEtBQStCLENBQUE7SUFDN0MsQ0FBQztJQUNELElBQUksc0JBQXNCO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLEtBQXdCLENBQUE7SUFDdEMsQ0FBQztJQUNELElBQUksc0JBQXNCO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLEtBQXFDLENBQUE7SUFDbkQsQ0FBQztJQUNELElBQUksZUFBZTtRQUNqQixPQUFPLElBQUksQ0FBQyxLQUF1QixDQUFBO0lBQ3JDLENBQUM7SUFDRCxJQUFJLGtCQUFrQjtRQUNwQixPQUFPLElBQUksQ0FBQyxLQUEwQixDQUFBO0lBQ3hDLENBQUM7SUFDRCxJQUFJLGtCQUFrQjtRQUNwQixPQUFPLElBQUksQ0FBQyxLQUEwQixDQUFBO0lBQ3hDLENBQUM7SUFDRCxJQUFJLHNCQUFzQjtRQUN4QixPQUFPLElBQUksQ0FBQyxLQUE4QixDQUFBO0lBQzVDLENBQUM7K0dBNURVLGtCQUFrQjttR0FBbEIsa0JBQWtCLHFZQzlFL0IsbWdPQWtMQSx5REQzSEksWUFBWSxpZUFDWixhQUFhLGlEQUNiLGdCQUFnQiw2VEFDaEIseUJBQXlCLGdHQUN6Qix5QkFBeUIsNklBQ3pCLHNCQUFzQiwrR0FDdEIsaUNBQWlDLDJIQUNqQyxpQ0FBaUMsMkhBQ2pDLHdCQUF3QiwrSkFDeEIsc0JBQXNCLCtJQUN0QiwrQkFBK0IsNEVBQy9CLDBCQUEwQixtSEFDMUIsMkJBQTJCLG9JQUMzQixxQ0FBcUMsZ0lBQ3JDLGlDQUFpQywySUFDakMscUNBQXFDLGdKQUNyQywwQkFBMEIsbUhBQzFCLDZCQUE2QixpSkFDN0Isc0NBQXNDLG1GQUN0QywrQkFBK0IsMkVBQy9CLGVBQWU7OzRGQUdOLGtCQUFrQjtrQkE5QjlCLFNBQVM7K0JBQ0Usa0JBQWtCLG1CQUdYLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osYUFBYTt3QkFDYixnQkFBZ0I7d0JBQ2hCLHlCQUF5Qjt3QkFDekIseUJBQXlCO3dCQUN6QixzQkFBc0I7d0JBQ3RCLGlDQUFpQzt3QkFDakMsaUNBQWlDO3dCQUNqQyx3QkFBd0I7d0JBQ3hCLHNCQUFzQjt3QkFDdEIsK0JBQStCO3dCQUMvQiwwQkFBMEI7d0JBQzFCLDJCQUEyQjt3QkFDM0IscUNBQXFDO3dCQUNyQyxpQ0FBaUM7d0JBQ2pDLHFDQUFxQzt3QkFDckMsMEJBQTBCO3dCQUMxQiw2QkFBNkI7d0JBQzdCLHNDQUFzQzt3QkFDdEMsK0JBQStCO3dCQUMvQixlQUFlO3FCQUNoQjs4QkFHUSxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFFRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUVJLFdBQVc7c0JBQXBCLE1BQU07Z0JBRWtCLFVBQVU7c0JBQWxDLFNBQVM7dUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnXG5pbXBvcnQge1xuICBDYXRhbG9nUmVjb3JkS2V5cyxcbiAgQ29uc3RyYWludCxcbiAgRGF0YXNldFRlbXBvcmFsRXh0ZW50LFxuICBHcmFwaGljT3ZlcnZpZXcsXG4gIEluZGl2aWR1YWwsXG4gIEtleXdvcmQsXG4gIE9ubGluZVJlc291cmNlLFxuICBVcGRhdGVGcmVxdWVuY3ksXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3JlY29yZCdcbmltcG9ydCB7IEZvcm1GaWVsZFdyYXBwZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2xheW91dC9zcmMnXG5pbXBvcnQgeyBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcbmltcG9ydCB7XG4gIEZvcm1GaWVsZERhdGVDb21wb25lbnQsXG4gIEZvcm1GaWVsZExpY2Vuc2VDb21wb25lbnQsXG4gIEZvcm1GaWVsZFRlbXBvcmFsRXh0ZW50c0NvbXBvbmVudCxcbn0gZnJvbSAnLidcbmltcG9ydCB7XG4gIEZpZWxkTW9kZWxTcGVjaWZpZXIsXG4gIEZvcm1GaWVsZENvbXBvbmVudE5hbWUsXG4gIEZvcm1GaWVsZENvbmZpZyxcbn0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzJ1xuaW1wb3J0IHsgRm9ybUZpZWxkQ29udGFjdHNGb3JSZXNvdXJjZUNvbXBvbmVudCB9IGZyb20gJy4vZm9ybS1maWVsZC1jb250YWN0cy1mb3ItcmVzb3VyY2UvZm9ybS1maWVsZC1jb250YWN0cy1mb3ItcmVzb3VyY2UuY29tcG9uZW50J1xuaW1wb3J0IHsgRm9ybUZpZWxkQ29udGFjdHNDb21wb25lbnQgfSBmcm9tICcuL2Zvcm0tZmllbGQtY29udGFjdHMvZm9ybS1maWVsZC1jb250YWN0cy5jb21wb25lbnQnXG5pbXBvcnQgeyBGb3JtRmllbGRLZXl3b3Jkc0NvbXBvbmVudCB9IGZyb20gJy4vZm9ybS1maWVsZC1rZXl3b3Jkcy9mb3JtLWZpZWxkLWtleXdvcmRzLmNvbXBvbmVudCdcbmltcG9ydCB7IEZvcm1GaWVsZE9ubGluZUxpbmtSZXNvdXJjZXNDb21wb25lbnQgfSBmcm9tICcuL2Zvcm0tZmllbGQtb25saW5lLWxpbmstcmVzb3VyY2VzL2Zvcm0tZmllbGQtb25saW5lLWxpbmstcmVzb3VyY2VzLmNvbXBvbmVudCdcbmltcG9ydCB7IEZvcm1GaWVsZE9ubGluZVJlc291cmNlc0NvbXBvbmVudCB9IGZyb20gJy4vZm9ybS1maWVsZC1vbmxpbmUtcmVzb3VyY2VzL2Zvcm0tZmllbGQtb25saW5lLXJlc291cmNlcy5jb21wb25lbnQnXG5pbXBvcnQgeyBGb3JtRmllbGRPdmVydmlld3NDb21wb25lbnQgfSBmcm9tICcuL2Zvcm0tZmllbGQtb3ZlcnZpZXdzL2Zvcm0tZmllbGQtb3ZlcnZpZXdzLmNvbXBvbmVudCdcbmltcG9ydCB7IEZvcm1GaWVsZFJpY2hDb21wb25lbnQgfSBmcm9tICcuL2Zvcm0tZmllbGQtcmljaC9mb3JtLWZpZWxkLXJpY2guY29tcG9uZW50J1xuaW1wb3J0IHsgRm9ybUZpZWxkU2ltcGxlQ29tcG9uZW50IH0gZnJvbSAnLi9mb3JtLWZpZWxkLXNpbXBsZS9mb3JtLWZpZWxkLXNpbXBsZS5jb21wb25lbnQnXG5pbXBvcnQgeyBGb3JtRmllbGRTcGF0aWFsRXh0ZW50Q29tcG9uZW50IH0gZnJvbSAnLi9mb3JtLWZpZWxkLXNwYXRpYWwtZXh0ZW50L2Zvcm0tZmllbGQtc3BhdGlhbC1leHRlbnQuY29tcG9uZW50J1xuaW1wb3J0IHsgRm9ybUZpZWxkVXBkYXRlRnJlcXVlbmN5Q29tcG9uZW50IH0gZnJvbSAnLi9mb3JtLWZpZWxkLXVwZGF0ZS1mcmVxdWVuY3kvZm9ybS1maWVsZC11cGRhdGUtZnJlcXVlbmN5LmNvbXBvbmVudCdcbmltcG9ydCB7IEZvcm1GaWVsZENvbnN0cmFpbnRzU2hvcnRjdXRzQ29tcG9uZW50IH0gZnJvbSAnLi9mb3JtLWZpZWxkLWNvbnN0cmFpbnRzLXNob3J0Y3V0cy9mb3JtLWZpZWxkLWNvbnN0cmFpbnRzLXNob3J0Y3V0cy5jb21wb25lbnQnXG5pbXBvcnQgeyBGb3JtRmllbGRDb25zdHJhaW50c0NvbXBvbmVudCB9IGZyb20gJy4vZm9ybS1maWVsZC1jb25zdHJhaW50cy9mb3JtLWZpZWxkLWNvbnN0cmFpbnRzLmNvbXBvbmVudCdcbmltcG9ydCB7IFRleHRGaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90ZXh0LWZpZWxkJ1xuaW1wb3J0IHsgRm9ybUZpZWxkU3BhdGlhbFRvZ2dsZUNvbXBvbmVudCB9IGZyb20gJy4vZm9ybS1maWVsZC1zcGF0aWFsLXRvZ2dsZS9mb3JtLWZpZWxkLXNwYXRpYWwtdG9nZ2xlLmNvbXBvbmVudCdcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktZm9ybS1maWVsZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLWZpZWxkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZm9ybS1maWVsZC5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFRyYW5zbGF0ZVBpcGUsXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcbiAgICBGb3JtRmllbGRXcmFwcGVyQ29tcG9uZW50LFxuICAgIEZvcm1GaWVsZExpY2Vuc2VDb21wb25lbnQsXG4gICAgRm9ybUZpZWxkRGF0ZUNvbXBvbmVudCxcbiAgICBGb3JtRmllbGRVcGRhdGVGcmVxdWVuY3lDb21wb25lbnQsXG4gICAgRm9ybUZpZWxkVGVtcG9yYWxFeHRlbnRzQ29tcG9uZW50LFxuICAgIEZvcm1GaWVsZFNpbXBsZUNvbXBvbmVudCxcbiAgICBGb3JtRmllbGRSaWNoQ29tcG9uZW50LFxuICAgIEZvcm1GaWVsZFNwYXRpYWxFeHRlbnRDb21wb25lbnQsXG4gICAgRm9ybUZpZWxkS2V5d29yZHNDb21wb25lbnQsXG4gICAgRm9ybUZpZWxkT3ZlcnZpZXdzQ29tcG9uZW50LFxuICAgIEZvcm1GaWVsZENvbnRhY3RzRm9yUmVzb3VyY2VDb21wb25lbnQsXG4gICAgRm9ybUZpZWxkT25saW5lUmVzb3VyY2VzQ29tcG9uZW50LFxuICAgIEZvcm1GaWVsZE9ubGluZUxpbmtSZXNvdXJjZXNDb21wb25lbnQsXG4gICAgRm9ybUZpZWxkQ29udGFjdHNDb21wb25lbnQsXG4gICAgRm9ybUZpZWxkQ29uc3RyYWludHNDb21wb25lbnQsXG4gICAgRm9ybUZpZWxkQ29uc3RyYWludHNTaG9ydGN1dHNDb21wb25lbnQsXG4gICAgRm9ybUZpZWxkU3BhdGlhbFRvZ2dsZUNvbXBvbmVudCxcbiAgICBUZXh0RmllbGRNb2R1bGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1GaWVsZENvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHVuaXF1ZUlkZW50aWZpZXI6IHN0cmluZ1xuICBASW5wdXQoKSBtb2RlbDogQ2F0YWxvZ1JlY29yZEtleXNcbiAgQElucHV0KCkgbW9kZWxTcGVjaWZpZXI6IEZpZWxkTW9kZWxTcGVjaWZpZXJcbiAgQElucHV0KCkgY29tcG9uZW50TmFtZTogRm9ybUZpZWxkQ29tcG9uZW50TmFtZVxuXG4gIEBJbnB1dCgpIGNvbmZpZzogRm9ybUZpZWxkQ29uZmlnXG4gIEBJbnB1dCgpIHZhbHVlOiB1bmtub3duXG5cbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8dW5rbm93bj4gPSBuZXcgRXZlbnRFbWl0dGVyKClcblxuICBAVmlld0NoaWxkKCd0aXRsZUlucHV0JykgdGl0bGVJbnB1dDogRWxlbWVudFJlZlxuICBpc09wZW5EYXRhID0gZmFsc2VcblxuICB0b2dnbGVJc09wZW5EYXRhKGV2ZW50OiBib29sZWFuKSB7XG4gICAgdGhpcy5pc09wZW5EYXRhID0gZXZlbnRcbiAgfVxuXG4gIGZvY3VzVGl0bGVJbnB1dCgpIHtcbiAgICB0aGlzLnRpdGxlSW5wdXQubmF0aXZlRWxlbWVudC5mb2N1cygpXG4gIH1cblxuICBnZXQgd2l0aG91dFdyYXBwZXIoKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMubW9kZWwgPT09ICd0aXRsZScgfHxcbiAgICAgIHRoaXMubW9kZWwgPT09ICdhYnN0cmFjdCcgfHxcbiAgICAgIHRoaXMubW9kZWwgPT09ICdsZWdhbENvbnN0cmFpbnRzJyB8fFxuICAgICAgdGhpcy5tb2RlbCA9PT0gJ3NlY3VyaXR5Q29uc3RyYWludHMnIHx8XG4gICAgICB0aGlzLm1vZGVsID09PSAnb3RoZXJDb25zdHJhaW50cycgfHxcbiAgICAgIHRoaXMuY29tcG9uZW50TmFtZSA9PT0gJ2Zvcm0tZmllbGQtY29uc3RyYWludHMtc2hvcnRjdXRzJ1xuICAgIClcbiAgfVxuXG4gIGdldCB2YWx1ZUFzU3RyaW5nKCkge1xuICAgIHJldHVybiB0aGlzLnZhbHVlIGFzIHN0cmluZ1xuICB9XG4gIGdldCB2YWx1ZUFzRGF0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZSBhcyBEYXRlXG4gIH1cblxuICBnZXQgdmFsdWVBc092ZXJ2aWV3cygpIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZSBhcyBBcnJheTxHcmFwaGljT3ZlcnZpZXc+XG4gIH1cbiAgZ2V0IHZhbHVlQXNVcGRhdGVGcmVxdWVuY3koKSB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWUgYXMgVXBkYXRlRnJlcXVlbmN5XG4gIH1cbiAgZ2V0IHZhbHVlQXNUZW1wb3JhbEV4dGVudHMoKSB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWUgYXMgQXJyYXk8RGF0YXNldFRlbXBvcmFsRXh0ZW50PlxuICB9XG4gIGdldCB2YWx1ZUFzS2V5d29yZHMoKSB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWUgYXMgQXJyYXk8S2V5d29yZD5cbiAgfVxuICBnZXQgdmFsdWVBc0NvbnN0cmFpbnRzKCkge1xuICAgIHJldHVybiB0aGlzLnZhbHVlIGFzIEFycmF5PENvbnN0cmFpbnQ+XG4gIH1cbiAgZ2V0IHZhbHVlQXNJbmRpdmlkdWFscygpIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZSBhcyBBcnJheTxJbmRpdmlkdWFsPlxuICB9XG4gIGdldCB2YWx1ZUFzT25saW5lUmVzb3VyY2VzKCkge1xuICAgIHJldHVybiB0aGlzLnZhbHVlIGFzIEFycmF5PE9ubGluZVJlc291cmNlPlxuICB9XG59XG4iLCI8IS0tIFRFTVBPUkFSWSAtIGRpc2FibGluZyB0aGUgb3BlbiBkYXRhIHN3aXRjaCAtLT5cbjwhLS0gPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1vZGVsID09PSAnbGljZW5zZXMnXCI+XG4gIDxnbi11aS1mb3JtLWZpZWxkLW9wZW4tZGF0YVxuICAgIFt2YWx1ZV09XCJ2YWx1ZUFzQ29uc3RyYWludHNcIlxuICAgICh2YWx1ZUNoYW5nZSk9XCJ2YWx1ZUNoYW5nZS5lbWl0KCRldmVudClcIlxuICAgIChvcGVuRGF0YUNoYW5nZSk9XCJ0b2dnbGVJc09wZW5EYXRhKCRldmVudClcIlxuICA+PC9nbi11aS1mb3JtLWZpZWxkLW9wZW4tZGF0YT5cbjwvbmctY29udGFpbmVyPiAtLT5cbjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGgtZnVsbFwiPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwid2l0aG91dFdyYXBwZXI7IGVsc2Ugd2l0aEdlbmVyaWNXcmFwcGVyXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImZpZWxkQ29udGVudFwiPjwvbmctY29udGFpbmVyPlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLXRlbXBsYXRlICN3aXRoR2VuZXJpY1dyYXBwZXI+XG4gICAgPGduLXVpLWZvcm0tZmllbGQtd3JhcHBlclxuICAgICAgW2xhYmVsXT1cImNvbmZpZy5sYWJlbEtleSEgfCB0cmFuc2xhdGVcIlxuICAgICAgW2hpbnRdPVwiY29uZmlnLmhpbnRLZXkhIHwgdHJhbnNsYXRlXCJcbiAgICA+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZmllbGRDb250ZW50XCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9nbi11aS1mb3JtLWZpZWxkLXdyYXBwZXI+XG4gIDwvbmctdGVtcGxhdGU+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNmaWVsZENvbnRlbnQ+XG4gIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cIm1vZGVsXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3RpdGxlJ1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cgZmxleC1zdGFydCBpdGVtcy1jZW50ZXIgZ2FwLTMgbWItWzEycHhdXCI+XG4gICAgICAgIDx0ZXh0YXJlYVxuICAgICAgICAgICN0aXRsZUlucHV0XG4gICAgICAgICAgY2RrVGV4dGFyZWFBdXRvc2l6ZVxuICAgICAgICAgICNhdXRvc2l6ZT1cImNka1RleHRhcmVhQXV0b3NpemVcIlxuICAgICAgICAgIGNka0F1dG9zaXplTWluUm93cz1cIjFcIlxuICAgICAgICAgIGRhdGEtdGVzdD1cInJlY29yZFRpdGxlSW5wdXRcIlxuICAgICAgICAgIGNsYXNzPVwiZ3JvdyBmb250LXRpdGxlIHRleHQtM3hsIGZvbnQtbm9ybWFsIG92ZXJmbG93LWhpZGRlbiB0ZXh0LWJsYWNrLzgwXCJcbiAgICAgICAgICAoY2hhbmdlKT1cInZhbHVlQ2hhbmdlLmVtaXQoJGV2ZW50LnRhcmdldC52YWx1ZSlcIlxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJcbiAgICAgICAgICAgICdlZGl0b3IucmVjb3JkLmZvcm0uZmllbGQudGl0bGUucGxhY2Vob2xkZXInIHwgdHJhbnNsYXRlXG4gICAgICAgICAgXCJcbiAgICAgICAgICA+e3sgdmFsdWVBc1N0cmluZyB9fTwvdGV4dGFyZWFcbiAgICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBqdXN0aWZ5LWJldHdlZW4gc2VsZi1zdGFydCBtdC0wLjVcIj5cbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkIGduLXVpLWljb24tc21hbGwgbS0yIGN1cnNvci1wb2ludGVyXCJcbiAgICAgICAgICAgIChjbGljayk9XCJmb2N1c1RpdGxlSW5wdXQoKVwiXG4gICAgICAgICAgICA+ZWRpdDwvc3BhblxuICAgICAgICAgID5cbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgKm5nSWY9XCJjb25maWcuaGludEtleVwiXG4gICAgICAgICAgICBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWQgZ24tdWktaWNvbi1zbWFsbCBtLTJcIlxuICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwiY29uZmlnLmhpbnRLZXkhIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgIG1hdFRvb2x0aXBQb3NpdGlvbj1cImFib3ZlXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICBoZWxwXG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidhYnN0cmFjdCdcIj5cbiAgICAgIDxnbi11aS1mb3JtLWZpZWxkLXJpY2hcbiAgICAgICAgW2xhYmVsXT1cImNvbmZpZy5sYWJlbEtleSEgfCB0cmFuc2xhdGVcIlxuICAgICAgICBbaGludF09XCJjb25maWcuaGludEtleSEgfCB0cmFuc2xhdGVcIlxuICAgICAgICBbdmFsdWVdPVwidmFsdWVBc1N0cmluZ1wiXG4gICAgICAgICh2YWx1ZUNoYW5nZSk9XCJ2YWx1ZUNoYW5nZS5lbWl0KCRldmVudClcIlxuICAgICAgPjwvZ24tdWktZm9ybS1maWVsZC1yaWNoPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidvdmVydmlld3MnXCI+XG4gICAgICA8Z24tdWktZm9ybS1maWVsZC1vdmVydmlld3NcbiAgICAgICAgW21ldGFkYXRhVXVpZF09XCJ1bmlxdWVJZGVudGlmaWVyXCJcbiAgICAgICAgW3ZhbHVlXT1cInZhbHVlQXNPdmVydmlld3NcIlxuICAgICAgICAodmFsdWVDaGFuZ2UpPVwidmFsdWVDaGFuZ2UuZW1pdCgkZXZlbnQpXCJcbiAgICAgID48L2duLXVpLWZvcm0tZmllbGQtb3ZlcnZpZXdzPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidyZXNvdXJjZUlkZW50aWZpZXInXCI+XG4gICAgICA8Z24tdWktZm9ybS1maWVsZC1zaW1wbGVcbiAgICAgICAgW3R5cGVdPVwiJ3RleHQnXCJcbiAgICAgICAgW3ZhbHVlXT1cInZhbHVlQXNTdHJpbmdcIlxuICAgICAgICAodmFsdWVDaGFuZ2UpPVwidmFsdWVDaGFuZ2UuZW1pdCgkZXZlbnQpXCJcbiAgICAgID48L2duLXVpLWZvcm0tZmllbGQtc2ltcGxlPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidyZXNvdXJjZUNyZWF0ZWQnXCI+XG4gICAgICA8Z24tdWktZm9ybS1maWVsZC1kYXRlXG4gICAgICAgIFt2YWx1ZV09XCJ2YWx1ZUFzRGF0ZVwiXG4gICAgICAgICh2YWx1ZUNoYW5nZSk9XCJ2YWx1ZUNoYW5nZS5lbWl0KCRldmVudClcIlxuICAgICAgPjwvZ24tdWktZm9ybS1maWVsZC1kYXRlPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidyZXNvdXJjZVVwZGF0ZWQnXCI+XG4gICAgICA8Z24tdWktZm9ybS1maWVsZC1kYXRlXG4gICAgICAgIFt2YWx1ZV09XCJ2YWx1ZUFzRGF0ZVwiXG4gICAgICAgICh2YWx1ZUNoYW5nZSk9XCJ2YWx1ZUNoYW5nZS5lbWl0KCRldmVudClcIlxuICAgICAgPjwvZ24tdWktZm9ybS1maWVsZC1kYXRlPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIid1cGRhdGVGcmVxdWVuY3knXCI+XG4gICAgICA8Z24tdWktZm9ybS1maWVsZC11cGRhdGUtZnJlcXVlbmN5XG4gICAgICAgIFt2YWx1ZV09XCJ2YWx1ZUFzVXBkYXRlRnJlcXVlbmN5XCJcbiAgICAgICAgKHZhbHVlQ2hhbmdlKT1cInZhbHVlQ2hhbmdlLmVtaXQoJGV2ZW50KVwiXG4gICAgICA+PC9nbi11aS1mb3JtLWZpZWxkLXVwZGF0ZS1mcmVxdWVuY3k+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3RlbXBvcmFsRXh0ZW50cydcIj5cbiAgICAgIDxnbi11aS1mb3JtLWZpZWxkLXRlbXBvcmFsLWV4dGVudHNcbiAgICAgICAgW3ZhbHVlXT1cInZhbHVlQXNUZW1wb3JhbEV4dGVudHNcIlxuICAgICAgICAodmFsdWVDaGFuZ2UpPVwidmFsdWVDaGFuZ2UuZW1pdCgkZXZlbnQpXCJcbiAgICAgID48L2duLXVpLWZvcm0tZmllbGQtdGVtcG9yYWwtZXh0ZW50cz5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInc3BhdGlhbEV4dGVudHMnXCI+XG4gICAgICA8Z24tdWktZm9ybS1maWVsZC1zcGF0aWFsLWV4dGVudD48L2duLXVpLWZvcm0tZmllbGQtc3BhdGlhbC1leHRlbnQ+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2tleXdvcmRzJ1wiPlxuICAgICAgPGduLXVpLWZvcm0tZmllbGQta2V5d29yZHNcbiAgICAgICAgW3ZhbHVlXT1cInZhbHVlQXNLZXl3b3Jkc1wiXG4gICAgICAgICh2YWx1ZUNoYW5nZSk9XCJ2YWx1ZUNoYW5nZS5lbWl0KCRldmVudClcIlxuICAgICAgPjwvZ24tdWktZm9ybS1maWVsZC1rZXl3b3Jkcz5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInbGljZW5zZXMnXCI+XG4gICAgICA8Z24tdWktZm9ybS1maWVsZC1saWNlbnNlXG4gICAgICAgIFtsYWJlbF09XCJjb25maWcubGFiZWxLZXkhIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgW3JlY29yZExpY2VuY2VzXT1cInZhbHVlQXNDb25zdHJhaW50c1wiXG4gICAgICAgIChyZWNvcmRMaWNlbmNlc0NoYW5nZSk9XCJ2YWx1ZUNoYW5nZS5lbWl0KCRldmVudClcIlxuICAgICAgPjwvZ24tdWktZm9ybS1maWVsZC1saWNlbnNlPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2xlZ2FsQ29uc3RyYWludHMnXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZm9ybUZpZWxkQ29uc3RyYWludHNcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInc2VjdXJpdHlDb25zdHJhaW50cydcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJmb3JtRmllbGRDb25zdHJhaW50c1wiPjwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidvdGhlckNvbnN0cmFpbnRzJ1wiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImZvcm1GaWVsZENvbnN0cmFpbnRzXCI+PC9uZy1jb250YWluZXJcbiAgICA+PC9uZy1jb250YWluZXI+XG4gICAgPG5nLXRlbXBsYXRlICNmb3JtRmllbGRDb25zdHJhaW50cz5cbiAgICAgIDxnbi11aS1mb3JtLWZpZWxkLWNvbnN0cmFpbnRzXG4gICAgICAgIFtsYWJlbF09XCJjb25maWcubGFiZWxLZXlcIlxuICAgICAgICBbdmFsdWVdPVwidmFsdWVBc0NvbnN0cmFpbnRzXCJcbiAgICAgICAgW2NvbnN0cmFpbnRUeXBlXT1cIm1vZGVsXCJcbiAgICAgICAgKHZhbHVlQ2hhbmdlKT1cInZhbHVlQ2hhbmdlLmVtaXQoJGV2ZW50KVwiXG4gICAgICA+PC9nbi11aS1mb3JtLWZpZWxkLWNvbnN0cmFpbnRzXG4gICAgPjwvbmctdGVtcGxhdGU+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInY29udGFjdHNGb3JSZXNvdXJjZSdcIj5cbiAgICAgIDxnbi11aS1mb3JtLWZpZWxkLWNvbnRhY3RzLWZvci1yZXNvdXJjZVxuICAgICAgICBbdmFsdWVdPVwidmFsdWVBc0luZGl2aWR1YWxzXCJcbiAgICAgICAgKHZhbHVlQ2hhbmdlKT1cInZhbHVlQ2hhbmdlLmVtaXQoJGV2ZW50KVwiXG4gICAgICA+PC9nbi11aS1mb3JtLWZpZWxkLWNvbnRhY3RzLWZvci1yZXNvdXJjZT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInY29udGFjdHMnXCI+XG4gICAgICA8Z24tdWktZm9ybS1maWVsZC1jb250YWN0c1xuICAgICAgICBbdmFsdWVdPVwidmFsdWVBc0luZGl2aWR1YWxzXCJcbiAgICAgICAgKHZhbHVlQ2hhbmdlKT1cInZhbHVlQ2hhbmdlLmVtaXQoJGV2ZW50KVwiXG4gICAgICA+PC9nbi11aS1mb3JtLWZpZWxkLWNvbnRhY3RzPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidvbmxpbmVSZXNvdXJjZXMnXCI+XG4gICAgICA8Z24tdWktZm9ybS1maWVsZC1vbmxpbmUtcmVzb3VyY2VzXG4gICAgICAgICpuZ0lmPVwibW9kZWxTcGVjaWZpZXIgPT09ICdvbmxpbmVSZXNvdXJjZVR5cGU6IWxpbmsnXCJcbiAgICAgICAgW21ldGFkYXRhVXVpZF09XCJ1bmlxdWVJZGVudGlmaWVyXCJcbiAgICAgICAgW3ZhbHVlXT1cInZhbHVlQXNPbmxpbmVSZXNvdXJjZXNcIlxuICAgICAgICAodmFsdWVDaGFuZ2UpPVwidmFsdWVDaGFuZ2UuZW1pdCgkZXZlbnQpXCJcbiAgICAgID48L2duLXVpLWZvcm0tZmllbGQtb25saW5lLXJlc291cmNlcz5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInb25saW5lUmVzb3VyY2VzJ1wiPlxuICAgICAgPGduLXVpLWZvcm0tZmllbGQtb25saW5lLWxpbmstcmVzb3VyY2VzXG4gICAgICAgICpuZ0lmPVwibW9kZWxTcGVjaWZpZXIgPT09ICdvbmxpbmVSZXNvdXJjZVR5cGU6bGluaydcIlxuICAgICAgICBbbWV0YWRhdGFVdWlkXT1cInVuaXF1ZUlkZW50aWZpZXJcIlxuICAgICAgICBbdmFsdWVdPVwidmFsdWVBc09ubGluZVJlc291cmNlc1wiXG4gICAgICAgICh2YWx1ZUNoYW5nZSk9XCJ2YWx1ZUNoYW5nZS5lbWl0KCRldmVudClcIlxuICAgICAgPjwvZ24tdWktZm9ybS1maWVsZC1vbmxpbmUtbGluay1yZXNvdXJjZXM+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbW9kZWxcIj5cbiAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJjb21wb25lbnROYW1lXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInZm9ybS1maWVsZC1jb25zdHJhaW50cy1zaG9ydGN1dHMnXCI+XG4gICAgICAgIDxnbi11aS1mb3JtLWZpZWxkLWNvbnN0cmFpbnRzLXNob3J0Y3V0cz48L2duLXVpLWZvcm0tZmllbGQtY29uc3RyYWludHMtc2hvcnRjdXRzPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInZm9ybS1maWVsZC1zcGF0aWFsLXRvZ2dsZSdcIj5cbiAgICAgICAgPGduLXVpLWZvcm0tZmllbGQtc3BhdGlhbC10b2dnbGU+PC9nbi11aS1mb3JtLWZpZWxkLXNwYXRpYWwtdG9nZ2xlPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
122
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZWRpdG9yL3NyYy9saWIvY29tcG9uZW50cy9yZWNvcmQtZm9ybS9mb3JtLWZpZWxkL2Zvcm0tZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL2VkaXRvci9zcmMvbGliL2NvbXBvbmVudHMvcmVjb3JkLWZvcm0vZm9ybS1maWVsZC9mb3JtLWZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBVzVELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFBO0FBQ3RGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUNuRCxPQUFPLEVBQ0wsc0JBQXNCLEVBQ3RCLHlCQUF5QixFQUN6QixpQ0FBaUMsR0FDbEMsTUFBTSxHQUFHLENBQUE7QUFNVixPQUFPLEVBQUUscUNBQXFDLEVBQUUsTUFBTSwrRUFBK0UsQ0FBQTtBQUNySSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQTtBQUNoRyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQTtBQUNoRyxPQUFPLEVBQUUscUNBQXFDLEVBQUUsTUFBTSwrRUFBK0UsQ0FBQTtBQUNySSxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxxRUFB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QywwQkFBMEIsbUhBQzFCLDZCQUE2QixpSkFDN0Isc0NBQXNDLG1GQUN0QywrQkFBK0IsNEVBQy9CLDhCQUE4Qix1SEFDOUIsZUFBZTs7NEZBR04sa0JBQWtCO2tCQS9COUIsU0FBUzsrQkFDRSxrQkFBa0IsbUJBR1gsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixhQUFhO3dCQUNiLGdCQUFnQjt3QkFDaEIseUJBQXlCO3dCQUN6Qix5QkFBeUI7d0JBQ3pCLHNCQUFzQjt3QkFDdEIsaUNBQWlDO3dCQUNqQyxpQ0FBaUM7d0JBQ2pDLHdCQUF3Qjt3QkFDeEIsc0JBQXNCO3dCQUN0QiwrQkFBK0I7d0JBQy9CLDBCQUEwQjt3QkFDMUIsMkJBQTJCO3dCQUMzQixxQ0FBcUM7d0JBQ3JDLGlDQUFpQzt3QkFDakMscUNBQXFDO3dCQUNyQywwQkFBMEI7d0JBQzFCLDZCQUE2Qjt3QkFDN0Isc0NBQXNDO3dCQUN0QywrQkFBK0I7d0JBQy9CLDhCQUE4Qjt3QkFDOUIsZUFBZTtxQkFDaEI7OEJBR1EsZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBRUcsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFFSSxXQUFXO3NCQUFwQixNQUFNO2dCQUVrQixVQUFVO3NCQUFsQyxTQUFTO3VCQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJ1xuaW1wb3J0IHtcbiAgQ2F0YWxvZ1JlY29yZEtleXMsXG4gIENvbnN0cmFpbnQsXG4gIERhdGFzZXRUZW1wb3JhbEV4dGVudCxcbiAgR3JhcGhpY092ZXJ2aWV3LFxuICBJbmRpdmlkdWFsLFxuICBLZXl3b3JkLFxuICBPbmxpbmVSZXNvdXJjZSxcbiAgVXBkYXRlRnJlcXVlbmN5LFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5pbXBvcnQgeyBGb3JtRmllbGRXcmFwcGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9sYXlvdXQvc3JjJ1xuaW1wb3J0IHsgVHJhbnNsYXRlUGlwZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5pbXBvcnQge1xuICBGb3JtRmllbGREYXRlQ29tcG9uZW50LFxuICBGb3JtRmllbGRMaWNlbnNlQ29tcG9uZW50LFxuICBGb3JtRmllbGRUZW1wb3JhbEV4dGVudHNDb21wb25lbnQsXG59IGZyb20gJy4nXG5pbXBvcnQge1xuICBGaWVsZE1vZGVsU3BlY2lmaWVyLFxuICBGb3JtRmllbGRDb21wb25lbnROYW1lLFxuICBGb3JtRmllbGRDb25maWcsXG59IGZyb20gJy4uLy4uLy4uL21vZGVscydcbmltcG9ydCB7IEZvcm1GaWVsZENvbnRhY3RzRm9yUmVzb3VyY2VDb21wb25lbnQgfSBmcm9tICcuL2Zvcm0tZmllbGQtY29udGFjdHMtZm9yLXJlc291cmNlL2Zvcm0tZmllbGQtY29udGFjdHMtZm9yLXJlc291cmNlLmNvbXBvbmVudCdcbmltcG9ydCB7IEZvcm1GaWVsZENvbnRhY3RzQ29tcG9uZW50IH0gZnJvbSAnLi9mb3JtLWZpZWxkLWNvbnRhY3RzL2Zvcm0tZmllbGQtY29udGFjdHMuY29tcG9uZW50J1xuaW1wb3J0IHsgRm9ybUZpZWxkS2V5d29yZHNDb21wb25lbnQgfSBmcm9tICcuL2Zvcm0tZmllbGQta2V5d29yZHMvZm9ybS1maWVsZC1rZXl3b3Jkcy5jb21wb25lbnQnXG5pbXBvcnQgeyBGb3JtRmllbGRPbmxpbmVMaW5rUmVzb3VyY2VzQ29tcG9uZW50IH0gZnJvbSAnLi9mb3JtLWZpZWxkLW9ubGluZS1saW5rLXJlc291cmNlcy9mb3JtLWZpZWxkLW9ubGluZS1saW5rLXJlc291cmNlcy5jb21wb25lbnQnXG5pbXBvcnQgeyBGb3JtRmllbGRPbmxpbmVSZXNvdXJjZXNDb21wb25lbnQgfSBmcm9tICcuL2Zvcm0tZmllbGQtb25saW5lLXJlc291cmNlcy9mb3JtLWZpZWxkLW9ubGluZS1yZXNvdXJjZXMuY29tcG9uZW50J1xuaW1wb3J0IHsgRm9ybUZpZWxkT3ZlcnZpZXdzQ29tcG9uZW50IH0gZnJvbSAnLi9mb3JtLWZpZWxkLW92ZXJ2aWV3cy9mb3JtLWZpZWxkLW92ZXJ2aWV3cy5jb21wb25lbnQnXG5pbXBvcnQgeyBGb3JtRmllbGRSaWNoQ29tcG9uZW50IH0gZnJvbSAnLi9mb3JtLWZpZWxkLXJpY2gvZm9ybS1maWVsZC1yaWNoLmNvbXBvbmVudCdcbmltcG9ydCB7IEZvcm1GaWVsZFNpbXBsZUNvbXBvbmVudCB9IGZyb20gJy4vZm9ybS1maWVsZC1zaW1wbGUvZm9ybS1maWVsZC1zaW1wbGUuY29tcG9uZW50J1xuaW1wb3J0IHsgRm9ybUZpZWxkU3BhdGlhbEV4dGVudENvbXBvbmVudCB9IGZyb20gJy4vZm9ybS1maWVsZC1zcGF0aWFsLWV4dGVudC9mb3JtLWZpZWxkLXNwYXRpYWwtZXh0ZW50LmNvbXBvbmVudCdcbmltcG9ydCB7IEZvcm1GaWVsZFVwZGF0ZUZyZXF1ZW5jeUNvbXBvbmVudCB9IGZyb20gJy4vZm9ybS1maWVsZC11cGRhdGUtZnJlcXVlbmN5L2Zvcm0tZmllbGQtdXBkYXRlLWZyZXF1ZW5jeS5jb21wb25lbnQnXG5pbXBvcnQgeyBGb3JtRmllbGRDb25zdHJhaW50c1Nob3J0Y3V0c0NvbXBvbmVudCB9IGZyb20gJy4vZm9ybS1maWVsZC1jb25zdHJhaW50cy1zaG9ydGN1dHMvZm9ybS1maWVsZC1jb25zdHJhaW50cy1zaG9ydGN1dHMuY29tcG9uZW50J1xuaW1wb3J0IHsgRm9ybUZpZWxkQ29uc3RyYWludHNDb21wb25lbnQgfSBmcm9tICcuL2Zvcm0tZmllbGQtY29uc3RyYWludHMvZm9ybS1maWVsZC1jb25zdHJhaW50cy5jb21wb25lbnQnXG5pbXBvcnQgeyBUZXh0RmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvdGV4dC1maWVsZCdcbmltcG9ydCB7IEZvcm1GaWVsZFNwYXRpYWxUb2dnbGVDb21wb25lbnQgfSBmcm9tICcuL2Zvcm0tZmllbGQtc3BhdGlhbC10b2dnbGUvZm9ybS1maWVsZC1zcGF0aWFsLXRvZ2dsZS5jb21wb25lbnQnXG5pbXBvcnQgeyBGb3JtRmllbGRJbnNwaXJlVGhlbWVDb21wb25lbnQgfSBmcm9tICcuL2Zvcm0tZmllbGQtaW5zcGlyZS1maWVsZC9mb3JtLWZpZWxkLWluc3BpcmUtdGhlbWUuY29tcG9uZW50J1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnbi11aS1mb3JtLWZpZWxkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0tZmllbGQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9mb3JtLWZpZWxkLmNvbXBvbmVudC5jc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgVHJhbnNsYXRlUGlwZSxcbiAgICBNYXRUb29sdGlwTW9kdWxlLFxuICAgIEZvcm1GaWVsZFdyYXBwZXJDb21wb25lbnQsXG4gICAgRm9ybUZpZWxkTGljZW5zZUNvbXBvbmVudCxcbiAgICBGb3JtRmllbGREYXRlQ29tcG9uZW50LFxuICAgIEZvcm1GaWVsZFVwZGF0ZUZyZXF1ZW5jeUNvbXBvbmVudCxcbiAgICBGb3JtRmllbGRUZW1wb3JhbEV4dGVudHNDb21wb25lbnQsXG4gICAgRm9ybUZpZWxkU2ltcGxlQ29tcG9uZW50LFxuICAgIEZvcm1GaWVsZFJpY2hDb21wb25lbnQsXG4gICAgRm9ybUZpZWxkU3BhdGlhbEV4dGVudENvbXBvbmVudCxcbiAgICBGb3JtRmllbGRLZXl3b3Jkc0NvbXBvbmVudCxcbiAgICBGb3JtRmllbGRPdmVydmlld3NDb21wb25lbnQsXG4gICAgRm9ybUZpZWxkQ29udGFjdHNGb3JSZXNvdXJjZUNvbXBvbmVudCxcbiAgICBGb3JtRmllbGRPbmxpbmVSZXNvdXJjZXNDb21wb25lbnQsXG4gICAgRm9ybUZpZWxkT25saW5lTGlua1Jlc291cmNlc0NvbXBvbmVudCxcbiAgICBGb3JtRmllbGRDb250YWN0c0NvbXBvbmVudCxcbiAgICBGb3JtRmllbGRDb25zdHJhaW50c0NvbXBvbmVudCxcbiAgICBGb3JtRmllbGRDb25zdHJhaW50c1Nob3J0Y3V0c0NvbXBvbmVudCxcbiAgICBGb3JtRmllbGRTcGF0aWFsVG9nZ2xlQ29tcG9uZW50LFxuICAgIEZvcm1GaWVsZEluc3BpcmVUaGVtZUNvbXBvbmVudCxcbiAgICBUZXh0RmllbGRNb2R1bGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1GaWVsZENvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHVuaXF1ZUlkZW50aWZpZXI6IHN0cmluZ1xuICBASW5wdXQoKSBtb2RlbDogQ2F0YWxvZ1JlY29yZEtleXNcbiAgQElucHV0KCkgbW9kZWxTcGVjaWZpZXI6IEZpZWxkTW9kZWxTcGVjaWZpZXJcbiAgQElucHV0KCkgY29tcG9uZW50TmFtZTogRm9ybUZpZWxkQ29tcG9uZW50TmFtZVxuXG4gIEBJbnB1dCgpIGNvbmZpZzogRm9ybUZpZWxkQ29uZmlnXG4gIEBJbnB1dCgpIHZhbHVlOiB1bmtub3duXG5cbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8dW5rbm93bj4gPSBuZXcgRXZlbnRFbWl0dGVyKClcblxuICBAVmlld0NoaWxkKCd0aXRsZUlucHV0JykgdGl0bGVJbnB1dDogRWxlbWVudFJlZlxuICBpc09wZW5EYXRhID0gZmFsc2VcblxuICB0b2dnbGVJc09wZW5EYXRhKGV2ZW50OiBib29sZWFuKSB7XG4gICAgdGhpcy5pc09wZW5EYXRhID0gZXZlbnRcbiAgfVxuXG4gIGZvY3VzVGl0bGVJbnB1dCgpIHtcbiAgICB0aGlzLnRpdGxlSW5wdXQubmF0aXZlRWxlbWVudC5mb2N1cygpXG4gIH1cblxuICBnZXQgd2l0aG91dFdyYXBwZXIoKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMubW9kZWwgPT09ICd0aXRsZScgfHxcbiAgICAgIHRoaXMubW9kZWwgPT09ICdhYnN0cmFjdCcgfHxcbiAgICAgIHRoaXMubW9kZWwgPT09ICdsZWdhbENvbnN0cmFpbnRzJyB8fFxuICAgICAgdGhpcy5tb2RlbCA9PT0gJ3NlY3VyaXR5Q29uc3RyYWludHMnIHx8XG4gICAgICB0aGlzLm1vZGVsID09PSAnb3RoZXJDb25zdHJhaW50cycgfHxcbiAgICAgIHRoaXMuY29tcG9uZW50TmFtZSA9PT0gJ2Zvcm0tZmllbGQtY29uc3RyYWludHMtc2hvcnRjdXRzJ1xuICAgIClcbiAgfVxuXG4gIGdldCB2YWx1ZUFzU3RyaW5nKCkge1xuICAgIHJldHVybiB0aGlzLnZhbHVlIGFzIHN0cmluZ1xuICB9XG4gIGdldCB2YWx1ZUFzRGF0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZSBhcyBEYXRlXG4gIH1cblxuICBnZXQgdmFsdWVBc092ZXJ2aWV3cygpIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZSBhcyBBcnJheTxHcmFwaGljT3ZlcnZpZXc+XG4gIH1cbiAgZ2V0IHZhbHVlQXNVcGRhdGVGcmVxdWVuY3koKSB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWUgYXMgVXBkYXRlRnJlcXVlbmN5XG4gIH1cbiAgZ2V0IHZhbHVlQXNUZW1wb3JhbEV4dGVudHMoKSB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWUgYXMgQXJyYXk8RGF0YXNldFRlbXBvcmFsRXh0ZW50PlxuICB9XG4gIGdldCB2YWx1ZUFzS2V5d29yZHMoKSB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWUgYXMgQXJyYXk8S2V5d29yZD5cbiAgfVxuICBnZXQgdmFsdWVBc0luc3BpcmVUaGVtZSgpIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZSBhcyBBcnJheTxzdHJpbmc+XG4gIH1cbiAgZ2V0IHZhbHVlQXNDb25zdHJhaW50cygpIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZSBhcyBBcnJheTxDb25zdHJhaW50PlxuICB9XG4gIGdldCB2YWx1ZUFzSW5kaXZpZHVhbHMoKSB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWUgYXMgQXJyYXk8SW5kaXZpZHVhbD5cbiAgfVxuICBnZXQgdmFsdWVBc09ubGluZVJlc291cmNlcygpIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZSBhcyBBcnJheTxPbmxpbmVSZXNvdXJjZT5cbiAgfVxufVxuIiwiPCEtLSBURU1QT1JBUlkgLSBkaXNhYmxpbmcgdGhlIG9wZW4gZGF0YSBzd2l0Y2ggLS0+XG48IS0tIDxuZy1jb250YWluZXIgKm5nSWY9XCJtb2RlbCA9PT0gJ2xpY2Vuc2VzJ1wiPlxuICA8Z24tdWktZm9ybS1maWVsZC1vcGVuLWRhdGFcbiAgICBbdmFsdWVdPVwidmFsdWVBc0NvbnN0cmFpbnRzXCJcbiAgICAodmFsdWVDaGFuZ2UpPVwidmFsdWVDaGFuZ2UuZW1pdCgkZXZlbnQpXCJcbiAgICAob3BlbkRhdGFDaGFuZ2UpPVwidG9nZ2xlSXNPcGVuRGF0YSgkZXZlbnQpXCJcbiAgPjwvZ24tdWktZm9ybS1maWVsZC1vcGVuLWRhdGE+XG48L25nLWNvbnRhaW5lcj4gLS0+XG48ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBoLWZ1bGxcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIndpdGhvdXRXcmFwcGVyOyBlbHNlIHdpdGhHZW5lcmljV3JhcHBlclwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJmaWVsZENvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy10ZW1wbGF0ZSAjd2l0aEdlbmVyaWNXcmFwcGVyPlxuICAgIDxnbi11aS1mb3JtLWZpZWxkLXdyYXBwZXJcbiAgICAgIFtsYWJlbF09XCJjb25maWcubGFiZWxLZXkhIHwgdHJhbnNsYXRlXCJcbiAgICAgIFtoaW50XT1cImNvbmZpZy5oaW50S2V5ISB8IHRyYW5zbGF0ZVwiXG4gICAgPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImZpZWxkQ29udGVudFwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvZ24tdWktZm9ybS1maWVsZC13cmFwcGVyPlxuICA8L25nLXRlbXBsYXRlPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjZmllbGRDb250ZW50PlxuICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJtb2RlbFwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIid0aXRsZSdcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGZsZXgtc3RhcnQgaXRlbXMtY2VudGVyIGdhcC0zIG1iLVsxMnB4XVwiPlxuICAgICAgICA8dGV4dGFyZWFcbiAgICAgICAgICAjdGl0bGVJbnB1dFxuICAgICAgICAgIGNka1RleHRhcmVhQXV0b3NpemVcbiAgICAgICAgICAjYXV0b3NpemU9XCJjZGtUZXh0YXJlYUF1dG9zaXplXCJcbiAgICAgICAgICBjZGtBdXRvc2l6ZU1pblJvd3M9XCIxXCJcbiAgICAgICAgICBkYXRhLXRlc3Q9XCJyZWNvcmRUaXRsZUlucHV0XCJcbiAgICAgICAgICBjbGFzcz1cImdyb3cgZm9udC10aXRsZSB0ZXh0LTN4bCBmb250LW5vcm1hbCBvdmVyZmxvdy1oaWRkZW4gdGV4dC1ibGFjay84MFwiXG4gICAgICAgICAgKGNoYW5nZSk9XCJ2YWx1ZUNoYW5nZS5lbWl0KCRldmVudC50YXJnZXQudmFsdWUpXCJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiXG4gICAgICAgICAgICAnZWRpdG9yLnJlY29yZC5mb3JtLmZpZWxkLnRpdGxlLnBsYWNlaG9sZGVyJyB8IHRyYW5zbGF0ZVxuICAgICAgICAgIFwiXG4gICAgICAgICAgPnt7IHZhbHVlQXNTdHJpbmcgfX08L3RleHRhcmVhXG4gICAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cganVzdGlmeS1iZXR3ZWVuIHNlbGYtc3RhcnQgbXQtMC41XCI+XG4gICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCBnbi11aS1pY29uLXNtYWxsIG0tMiBjdXJzb3ItcG9pbnRlclwiXG4gICAgICAgICAgICAoY2xpY2spPVwiZm9jdXNUaXRsZUlucHV0KClcIlxuICAgICAgICAgICAgPmVkaXQ8L3NwYW5cbiAgICAgICAgICA+XG4gICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICpuZ0lmPVwiY29uZmlnLmhpbnRLZXlcIlxuICAgICAgICAgICAgY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkIGduLXVpLWljb24tc21hbGwgbS0yXCJcbiAgICAgICAgICAgIFttYXRUb29sdGlwXT1cImNvbmZpZy5oaW50S2V5ISB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICBtYXRUb29sdGlwUG9zaXRpb249XCJhYm92ZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgaGVscFxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInYWJzdHJhY3QnXCI+XG4gICAgICA8Z24tdWktZm9ybS1maWVsZC1yaWNoXG4gICAgICAgIFtsYWJlbF09XCJjb25maWcubGFiZWxLZXkhIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgW2hpbnRdPVwiY29uZmlnLmhpbnRLZXkhIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgW3ZhbHVlXT1cInZhbHVlQXNTdHJpbmdcIlxuICAgICAgICAodmFsdWVDaGFuZ2UpPVwidmFsdWVDaGFuZ2UuZW1pdCgkZXZlbnQpXCJcbiAgICAgID48L2duLXVpLWZvcm0tZmllbGQtcmljaD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInb3ZlcnZpZXdzJ1wiPlxuICAgICAgPGduLXVpLWZvcm0tZmllbGQtb3ZlcnZpZXdzXG4gICAgICAgIFttZXRhZGF0YVV1aWRdPVwidW5pcXVlSWRlbnRpZmllclwiXG4gICAgICAgIFt2YWx1ZV09XCJ2YWx1ZUFzT3ZlcnZpZXdzXCJcbiAgICAgICAgKHZhbHVlQ2hhbmdlKT1cInZhbHVlQ2hhbmdlLmVtaXQoJGV2ZW50KVwiXG4gICAgICA+PC9nbi11aS1mb3JtLWZpZWxkLW92ZXJ2aWV3cz5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIncmVzb3VyY2VJZGVudGlmaWVyJ1wiPlxuICAgICAgPGduLXVpLWZvcm0tZmllbGQtc2ltcGxlXG4gICAgICAgIFt0eXBlXT1cIid0ZXh0J1wiXG4gICAgICAgIFt2YWx1ZV09XCJ2YWx1ZUFzU3RyaW5nXCJcbiAgICAgICAgKHZhbHVlQ2hhbmdlKT1cInZhbHVlQ2hhbmdlLmVtaXQoJGV2ZW50KVwiXG4gICAgICA+PC9nbi11aS1mb3JtLWZpZWxkLXNpbXBsZT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIncmVzb3VyY2VDcmVhdGVkJ1wiPlxuICAgICAgPGduLXVpLWZvcm0tZmllbGQtZGF0ZVxuICAgICAgICBbdmFsdWVdPVwidmFsdWVBc0RhdGVcIlxuICAgICAgICAodmFsdWVDaGFuZ2UpPVwidmFsdWVDaGFuZ2UuZW1pdCgkZXZlbnQpXCJcbiAgICAgID48L2duLXVpLWZvcm0tZmllbGQtZGF0ZT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIncmVzb3VyY2VVcGRhdGVkJ1wiPlxuICAgICAgPGduLXVpLWZvcm0tZmllbGQtZGF0ZVxuICAgICAgICBbdmFsdWVdPVwidmFsdWVBc0RhdGVcIlxuICAgICAgICAodmFsdWVDaGFuZ2UpPVwidmFsdWVDaGFuZ2UuZW1pdCgkZXZlbnQpXCJcbiAgICAgID48L2duLXVpLWZvcm0tZmllbGQtZGF0ZT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIndXBkYXRlRnJlcXVlbmN5J1wiPlxuICAgICAgPGduLXVpLWZvcm0tZmllbGQtdXBkYXRlLWZyZXF1ZW5jeVxuICAgICAgICBbdmFsdWVdPVwidmFsdWVBc1VwZGF0ZUZyZXF1ZW5jeVwiXG4gICAgICAgICh2YWx1ZUNoYW5nZSk9XCJ2YWx1ZUNoYW5nZS5lbWl0KCRldmVudClcIlxuICAgICAgPjwvZ24tdWktZm9ybS1maWVsZC11cGRhdGUtZnJlcXVlbmN5PlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIid0ZW1wb3JhbEV4dGVudHMnXCI+XG4gICAgICA8Z24tdWktZm9ybS1maWVsZC10ZW1wb3JhbC1leHRlbnRzXG4gICAgICAgIFt2YWx1ZV09XCJ2YWx1ZUFzVGVtcG9yYWxFeHRlbnRzXCJcbiAgICAgICAgKHZhbHVlQ2hhbmdlKT1cInZhbHVlQ2hhbmdlLmVtaXQoJGV2ZW50KVwiXG4gICAgICA+PC9nbi11aS1mb3JtLWZpZWxkLXRlbXBvcmFsLWV4dGVudHM+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3NwYXRpYWxFeHRlbnRzJ1wiPlxuICAgICAgPGduLXVpLWZvcm0tZmllbGQtc3BhdGlhbC1leHRlbnQ+PC9nbi11aS1mb3JtLWZpZWxkLXNwYXRpYWwtZXh0ZW50PlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidrZXl3b3JkcydcIj5cbiAgICAgIDxnbi11aS1mb3JtLWZpZWxkLWtleXdvcmRzXG4gICAgICAgIFt2YWx1ZV09XCJ2YWx1ZUFzS2V5d29yZHNcIlxuICAgICAgICAodmFsdWVDaGFuZ2UpPVwidmFsdWVDaGFuZ2UuZW1pdCgkZXZlbnQpXCJcbiAgICAgID48L2duLXVpLWZvcm0tZmllbGQta2V5d29yZHM+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3RvcGljcydcIj5cbiAgICAgIDxnbi11aS1mb3JtLWZpZWxkLWluc3BpcmUtdGhlbWVcbiAgICAgICAgW3ZhbHVlXT1cInZhbHVlQXNJbnNwaXJlVGhlbWVcIlxuICAgICAgICAodmFsdWVDaGFuZ2UpPVwidmFsdWVDaGFuZ2UuZW1pdCgkZXZlbnQpXCJcbiAgICAgID48L2duLXVpLWZvcm0tZmllbGQtaW5zcGlyZS10aGVtZT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInbGljZW5zZXMnXCI+XG4gICAgICA8Z24tdWktZm9ybS1maWVsZC1saWNlbnNlXG4gICAgICAgIFtsYWJlbF09XCJjb25maWcubGFiZWxLZXkhIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgW3JlY29yZExpY2VuY2VzXT1cInZhbHVlQXNDb25zdHJhaW50c1wiXG4gICAgICAgIChyZWNvcmRMaWNlbmNlc0NoYW5nZSk9XCJ2YWx1ZUNoYW5nZS5lbWl0KCRldmVudClcIlxuICAgICAgPjwvZ24tdWktZm9ybS1maWVsZC1saWNlbnNlPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2xlZ2FsQ29uc3RyYWludHMnXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZm9ybUZpZWxkQ29uc3RyYWludHNcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInc2VjdXJpdHlDb25zdHJhaW50cydcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJmb3JtRmllbGRDb25zdHJhaW50c1wiPjwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidvdGhlckNvbnN0cmFpbnRzJ1wiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImZvcm1GaWVsZENvbnN0cmFpbnRzXCI+PC9uZy1jb250YWluZXJcbiAgICA+PC9uZy1jb250YWluZXI+XG4gICAgPG5nLXRlbXBsYXRlICNmb3JtRmllbGRDb25zdHJhaW50cz5cbiAgICAgIDxnbi11aS1mb3JtLWZpZWxkLWNvbnN0cmFpbnRzXG4gICAgICAgIFtsYWJlbF09XCJjb25maWcubGFiZWxLZXlcIlxuICAgICAgICBbdmFsdWVdPVwidmFsdWVBc0NvbnN0cmFpbnRzXCJcbiAgICAgICAgW2NvbnN0cmFpbnRUeXBlXT1cIm1vZGVsXCJcbiAgICAgICAgKHZhbHVlQ2hhbmdlKT1cInZhbHVlQ2hhbmdlLmVtaXQoJGV2ZW50KVwiXG4gICAgICA+PC9nbi11aS1mb3JtLWZpZWxkLWNvbnN0cmFpbnRzXG4gICAgPjwvbmctdGVtcGxhdGU+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInY29udGFjdHNGb3JSZXNvdXJjZSdcIj5cbiAgICAgIDxnbi11aS1mb3JtLWZpZWxkLWNvbnRhY3RzLWZvci1yZXNvdXJjZVxuICAgICAgICBbdmFsdWVdPVwidmFsdWVBc0luZGl2aWR1YWxzXCJcbiAgICAgICAgKHZhbHVlQ2hhbmdlKT1cInZhbHVlQ2hhbmdlLmVtaXQoJGV2ZW50KVwiXG4gICAgICA+PC9nbi11aS1mb3JtLWZpZWxkLWNvbnRhY3RzLWZvci1yZXNvdXJjZT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInY29udGFjdHMnXCI+XG4gICAgICA8Z24tdWktZm9ybS1maWVsZC1jb250YWN0c1xuICAgICAgICBbdmFsdWVdPVwidmFsdWVBc0luZGl2aWR1YWxzXCJcbiAgICAgICAgKHZhbHVlQ2hhbmdlKT1cInZhbHVlQ2hhbmdlLmVtaXQoJGV2ZW50KVwiXG4gICAgICA+PC9nbi11aS1mb3JtLWZpZWxkLWNvbnRhY3RzPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidvbmxpbmVSZXNvdXJjZXMnXCI+XG4gICAgICA8Z24tdWktZm9ybS1maWVsZC1vbmxpbmUtcmVzb3VyY2VzXG4gICAgICAgICpuZ0lmPVwibW9kZWxTcGVjaWZpZXIgPT09ICdvbmxpbmVSZXNvdXJjZVR5cGU6IWxpbmsnXCJcbiAgICAgICAgW21ldGFkYXRhVXVpZF09XCJ1bmlxdWVJZGVudGlmaWVyXCJcbiAgICAgICAgW3ZhbHVlXT1cInZhbHVlQXNPbmxpbmVSZXNvdXJjZXNcIlxuICAgICAgICAodmFsdWVDaGFuZ2UpPVwidmFsdWVDaGFuZ2UuZW1pdCgkZXZlbnQpXCJcbiAgICAgID48L2duLXVpLWZvcm0tZmllbGQtb25saW5lLXJlc291cmNlcz5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInb25saW5lUmVzb3VyY2VzJ1wiPlxuICAgICAgPGduLXVpLWZvcm0tZmllbGQtb25saW5lLWxpbmstcmVzb3VyY2VzXG4gICAgICAgICpuZ0lmPVwibW9kZWxTcGVjaWZpZXIgPT09ICdvbmxpbmVSZXNvdXJjZVR5cGU6bGluaydcIlxuICAgICAgICBbbWV0YWRhdGFVdWlkXT1cInVuaXF1ZUlkZW50aWZpZXJcIlxuICAgICAgICBbdmFsdWVdPVwidmFsdWVBc09ubGluZVJlc291cmNlc1wiXG4gICAgICAgICh2YWx1ZUNoYW5nZSk9XCJ2YWx1ZUNoYW5nZS5lbWl0KCRldmVudClcIlxuICAgICAgPjwvZ24tdWktZm9ybS1maWVsZC1vbmxpbmUtbGluay1yZXNvdXJjZXM+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbW9kZWxcIj5cbiAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJjb21wb25lbnROYW1lXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInZm9ybS1maWVsZC1jb25zdHJhaW50cy1zaG9ydGN1dHMnXCI+XG4gICAgICAgIDxnbi11aS1mb3JtLWZpZWxkLWNvbnN0cmFpbnRzLXNob3J0Y3V0cz48L2duLXVpLWZvcm0tZmllbGQtY29uc3RyYWludHMtc2hvcnRjdXRzPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInZm9ybS1maWVsZC1zcGF0aWFsLXRvZ2dsZSdcIj5cbiAgICAgICAgPGduLXVpLWZvcm0tZmllbGQtc3BhdGlhbC10b2dnbGU+PC9nbi11aS1mb3JtLWZpZWxkLXNwYXRpYWwtdG9nZ2xlPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -10,4 +10,5 @@ export * from './form-field-array/form-field-array.component';
|
|
|
10
10
|
export * from './form-field-spatial-extent/form-field-spatial-extent.component';
|
|
11
11
|
export * from './form-field.component';
|
|
12
12
|
export * from './form-field-constraints-shortcuts/constraints.utils';
|
|
13
|
-
|
|
13
|
+
export * from './form-field-inspire-field/form-field-inspire-theme.component';
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZWRpdG9yL3NyYy9saWIvY29tcG9uZW50cy9yZWNvcmQtZm9ybS9mb3JtLWZpZWxkL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMscURBQXFELENBQUE7QUFDbkUsY0FBYyxtREFBbUQsQ0FBQTtBQUNqRSxjQUFjLDZDQUE2QyxDQUFBO0FBQzNELGNBQWMscUVBQXFFLENBQUE7QUFDbkYsY0FBYyxpREFBaUQsQ0FBQTtBQUMvRCxjQUFjLDZDQUE2QyxDQUFBO0FBQzNELGNBQWMsNkNBQTZDLENBQUE7QUFDM0QsY0FBYyxpREFBaUQsQ0FBQTtBQUMvRCxjQUFjLCtDQUErQyxDQUFBO0FBQzdELGNBQWMsaUVBQWlFLENBQUE7QUFDL0UsY0FBYyx3QkFBd0IsQ0FBQTtBQUN0QyxjQUFjLHNEQUFzRCxDQUFBO0FBQ3BFLGNBQWMsK0RBQStELENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2Zvcm0tZmllbGQta2V5d29yZHMvZm9ybS1maWVsZC1rZXl3b3Jkcy5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2Zvcm0tZmllbGQtbGljZW5zZS9mb3JtLWZpZWxkLWxpY2Vuc2UuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9mb3JtLWZpZWxkLWRhdGUvZm9ybS1maWVsZC1kYXRlLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vZm9ybS1maWVsZC10ZW1wb3JhbC1leHRlbnRzL2Zvcm0tZmllbGQtdGVtcG9yYWwtZXh0ZW50cy5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2Zvcm0tZmllbGQtc2ltcGxlL2Zvcm0tZmllbGQtc2ltcGxlLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vZm9ybS1maWVsZC1maWxlL2Zvcm0tZmllbGQtZmlsZS5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2Zvcm0tZmllbGQtcmljaC9mb3JtLWZpZWxkLXJpY2guY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9mb3JtLWZpZWxkLW9iamVjdC9mb3JtLWZpZWxkLW9iamVjdC5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2Zvcm0tZmllbGQtYXJyYXkvZm9ybS1maWVsZC1hcnJheS5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2Zvcm0tZmllbGQtc3BhdGlhbC1leHRlbnQvZm9ybS1maWVsZC1zcGF0aWFsLWV4dGVudC5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2Zvcm0tZmllbGQuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9mb3JtLWZpZWxkLWNvbnN0cmFpbnRzLXNob3J0Y3V0cy9jb25zdHJhaW50cy51dGlscydcbmV4cG9ydCAqIGZyb20gJy4vZm9ybS1maWVsZC1pbnNwaXJlLWZpZWxkL2Zvcm0tZmllbGQtaW5zcGlyZS10aGVtZS5jb21wb25lbnQnXG4iXX0=
|