geonetwork-ui 2.4.0-alpha.2.d6fa0bfa → 2.4.0-alpha.2.da5f4364c
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/libs/api/repository/src/lib/gn4/auth/auth.service.mjs +27 -3
- package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/date-range.utils.mjs +12 -0
- package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.mjs +44 -19
- package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/index.mjs +2 -1
- package/esm2022/libs/common/domain/src/lib/model/search/filter.model.mjs +1 -1
- package/esm2022/libs/feature/catalog/src/lib/feature-catalog.module.mjs +11 -18
- package/esm2022/libs/feature/catalog/src/lib/organisations/organisations.component.mjs +37 -12
- package/esm2022/libs/feature/catalog/src/lib/site-title/site-title.component.mjs +3 -3
- package/esm2022/libs/feature/dataviz/src/index.mjs +1 -2
- package/esm2022/libs/feature/dataviz/src/lib/chart-view/chart-view.component.mjs +15 -8
- package/esm2022/libs/feature/dataviz/src/lib/figure/figure-container/figure-container.component.mjs +4 -3
- package/esm2022/libs/feature/dataviz/src/lib/geo-table-view/geo-table-view.component.mjs +4 -7
- package/esm2022/libs/feature/dataviz/src/lib/table-view/table-view.component.mjs +13 -7
- package/esm2022/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.mjs +3 -3
- package/esm2022/libs/feature/editor/src/lib/components/import-record/import-record.component.mjs +8 -8
- package/esm2022/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.mjs +6 -3
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts/form-field-contacts.component.mjs +3 -3
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-date/form-field-date.component.mjs +19 -0
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.mjs +12 -6
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.mjs +12 -7
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.mjs +13 -7
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.mjs +1 -1
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.mjs +5 -5
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/index.mjs +2 -2
- package/esm2022/libs/feature/editor/src/lib/fields.config.mjs +9 -1
- package/esm2022/libs/feature/map/src/lib/layers-panel/layers-panel.component.mjs +7 -8
- package/esm2022/libs/feature/record/src/lib/data-view/data-view.component.mjs +14 -7
- package/esm2022/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.mjs +9 -7
- package/esm2022/libs/feature/record/src/lib/data-view-share/data-view-share.component.mjs +14 -6
- package/esm2022/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.mjs +10 -8
- package/esm2022/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.mjs +8 -6
- package/esm2022/libs/feature/record/src/lib/feature-record.module.mjs +7 -65
- package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +22 -12
- package/esm2022/libs/feature/router/src/lib/default/constants.mjs +1 -1
- package/esm2022/libs/feature/router/src/lib/default/state/query-params.utils.mjs +50 -0
- package/esm2022/libs/feature/router/src/lib/default/state/router.facade.mjs +5 -4
- package/esm2022/libs/feature/search/src/index.mjs +3 -1
- package/esm2022/libs/feature/search/src/lib/constants.mjs +2 -2
- package/esm2022/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.mjs +4 -4
- package/esm2022/libs/feature/search/src/lib/feature-search.module.mjs +18 -11
- package/esm2022/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.mjs +27 -5
- package/esm2022/libs/feature/search/src/lib/results-list/results-list.container.component.mjs +11 -6
- package/esm2022/libs/feature/search/src/lib/search-filters-summary/search-filters-summary.component.mjs +67 -0
- package/esm2022/libs/feature/search/src/lib/search-filters-summary-item/search-filters-summary-item.component.mjs +84 -0
- package/esm2022/libs/feature/search/src/lib/state/search.facade.mjs +2 -4
- package/esm2022/libs/feature/search/src/lib/state/selectors.mjs +1 -9
- package/esm2022/libs/feature/search/src/lib/utils/service/fields.mjs +52 -16
- package/esm2022/libs/feature/search/src/lib/utils/service/fields.service.mjs +7 -2
- package/esm2022/libs/ui/catalog/src/index.mjs +1 -2
- package/esm2022/libs/ui/catalog/src/lib/catalog-title/catalog-title.component.mjs +4 -3
- package/esm2022/libs/ui/catalog/src/lib/language-switcher/language-switcher.component.mjs +4 -4
- package/esm2022/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.mjs +15 -5
- package/esm2022/libs/ui/catalog/src/lib/organisations-result/organisations-result.component.mjs +4 -3
- package/esm2022/libs/ui/elements/src/index.mjs +1 -3
- package/esm2022/libs/ui/elements/src/lib/api-card/api-card.component.mjs +25 -7
- package/esm2022/libs/ui/elements/src/lib/content-ghost/content-ghost.component.mjs +4 -3
- package/esm2022/libs/ui/elements/src/lib/download-item/download-item.component.mjs +15 -4
- package/esm2022/libs/ui/elements/src/lib/downloads-list/downloads-list.component.mjs +12 -6
- package/esm2022/libs/ui/elements/src/lib/error/error.component.mjs +22 -4
- package/esm2022/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.mjs +15 -7
- package/esm2022/libs/ui/elements/src/lib/metadata-catalog/metadata-catalog.component.mjs +5 -4
- package/esm2022/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.mjs +25 -5
- package/esm2022/libs/ui/elements/src/lib/metadata-info/linkify.directive.mjs +3 -2
- package/esm2022/libs/ui/elements/src/lib/metadata-info/metadata-info.component.mjs +37 -13
- package/esm2022/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.mjs +11 -7
- package/esm2022/libs/ui/elements/src/lib/metadata-quality-item/metadata-quality-item.component.mjs +7 -5
- package/esm2022/libs/ui/elements/src/lib/record-api-form/record-api-form.component.mjs +13 -8
- package/esm2022/libs/ui/elements/src/lib/related-record-card/related-record-card.component.mjs +16 -7
- package/esm2022/libs/ui/elements/src/lib/ui-elements.module.mjs +7 -140
- package/esm2022/libs/ui/elements/src/lib/user-feedback-item/user-feedback-item.component.mjs +27 -9
- package/esm2022/libs/ui/elements/src/lib/user-preview/user-preview.component.mjs +3 -3
- package/esm2022/libs/ui/inputs/src/index.mjs +2 -2
- package/esm2022/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.mjs +2 -1
- package/esm2022/libs/ui/inputs/src/lib/badge/badge.component.mjs +3 -3
- package/esm2022/libs/ui/inputs/src/lib/copy-text-button/copy-text-button.component.mjs +7 -4
- package/esm2022/libs/ui/inputs/src/lib/date-range-dropdown/date-range-dropdown.component.mjs +65 -0
- package/esm2022/libs/ui/inputs/src/lib/file-input/file-input.component.mjs +7 -4
- package/esm2022/libs/ui/inputs/src/lib/image-input/image-input.component.mjs +7 -4
- package/esm2022/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.mjs +5 -5
- package/esm2022/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.mjs +6 -4
- package/esm2022/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.mjs +6 -3
- package/esm2022/libs/ui/inputs/src/lib/ui-inputs.module.mjs +2 -25
- package/esm2022/libs/ui/layout/src/index.mjs +6 -1
- package/esm2022/libs/ui/layout/src/lib/block-list/block-list.component.mjs +17 -12
- package/esm2022/libs/ui/layout/src/lib/carousel/carousel.component.mjs +24 -19
- package/esm2022/libs/ui/layout/src/lib/expandable-panel/expandable-panel.component.mjs +7 -5
- package/esm2022/libs/ui/layout/src/lib/expandable-panel-button/expandable-panel-button.component.mjs +6 -4
- package/esm2022/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.mjs +4 -2
- package/esm2022/libs/ui/layout/src/lib/interactive-table/interactive-table.component.mjs +6 -2
- package/esm2022/libs/ui/layout/src/lib/paginable.interface.mjs +2 -0
- package/esm2022/libs/ui/layout/src/lib/pagination/pagination.component.mjs +52 -0
- package/esm2022/libs/ui/layout/src/lib/pagination-buttons/pagination-buttons.component.mjs +52 -0
- package/esm2022/libs/ui/layout/src/lib/pagination-dots/pagination-dots.component.mjs +36 -0
- package/esm2022/libs/ui/layout/src/lib/previous-next-buttons/previous-next-buttons.component.mjs +26 -0
- package/esm2022/libs/ui/layout/src/lib/ui-layout.module.mjs +5 -26
- package/esm2022/libs/ui/search/src/lib/record-preview-row/record-preview-row.component.mjs +4 -4
- package/esm2022/libs/ui/search/src/lib/results-table/results-table.component.mjs +5 -20
- package/esm2022/libs/ui/search/src/lib/ui-search.module.mjs +7 -5
- package/esm2022/libs/ui/widgets/src/lib/loading-mask/loading-mask.component.mjs +5 -4
- package/esm2022/libs/ui/widgets/src/lib/progress-bar/progress-bar.component.mjs +3 -3
- package/esm2022/libs/ui/widgets/src/lib/spinning-loader/spinning-loader.component.mjs +3 -3
- package/esm2022/libs/ui/widgets/src/lib/ui-widgets.module.mjs +5 -26
- package/esm2022/libs/util/app-config/src/lib/app-config.mjs +4 -1
- package/esm2022/libs/util/app-config/src/lib/fixtures.mjs +2 -1
- package/esm2022/libs/util/app-config/src/lib/model.mjs +1 -1
- package/esm2022/libs/util/shared/src/lib/links/link-utils.mjs +17 -17
- package/esm2022/libs/util/shared/src/lib/utils/format-fields.mjs +9 -0
- package/esm2022/libs/util/shared/src/lib/utils/index.mjs +2 -1
- package/esm2022/translations/de.json +6 -7
- package/esm2022/translations/en.json +6 -7
- package/esm2022/translations/es.json +6 -7
- package/esm2022/translations/fr.json +7 -8
- package/esm2022/translations/it.json +6 -7
- package/esm2022/translations/nl.json +6 -7
- package/esm2022/translations/pt.json +6 -7
- package/fesm2022/geonetwork-ui.mjs +2325 -2102
- package/fesm2022/geonetwork-ui.mjs.map +1 -1
- package/libs/api/repository/src/lib/gn4/auth/auth.service.d.ts +12 -2
- package/libs/api/repository/src/lib/gn4/auth/auth.service.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/elasticsearch/date-range.utils.d.ts +4 -0
- package/libs/api/repository/src/lib/gn4/elasticsearch/date-range.utils.d.ts.map +1 -0
- package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts +5 -1
- package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/elasticsearch/index.d.ts +1 -0
- package/libs/api/repository/src/lib/gn4/elasticsearch/index.d.ts.map +1 -1
- package/libs/common/domain/src/lib/model/search/filter.model.d.ts +16 -1
- package/libs/common/domain/src/lib/model/search/filter.model.d.ts.map +1 -1
- package/libs/feature/catalog/src/lib/feature-catalog.module.d.ts +8 -9
- package/libs/feature/catalog/src/lib/feature-catalog.module.d.ts.map +1 -1
- package/libs/feature/catalog/src/lib/organisations/organisations.component.d.ts +10 -3
- package/libs/feature/catalog/src/lib/organisations/organisations.component.d.ts.map +1 -1
- package/libs/feature/dataviz/src/index.d.ts +0 -1
- package/libs/feature/dataviz/src/index.d.ts.map +1 -1
- package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts +1 -1
- package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts.map +1 -1
- package/libs/feature/dataviz/src/lib/figure/figure-container/figure-container.component.d.ts +1 -1
- package/libs/feature/dataviz/src/lib/figure/figure-container/figure-container.component.d.ts.map +1 -1
- package/libs/feature/dataviz/src/lib/geo-table-view/geo-table-view.component.d.ts +1 -1
- package/libs/feature/dataviz/src/lib/geo-table-view/geo-table-view.component.d.ts.map +1 -1
- package/libs/feature/dataviz/src/lib/table-view/table-view.component.d.ts +1 -1
- package/libs/feature/dataviz/src/lib/table-view/table-view.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.d.ts +2 -1
- package/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-date/form-field-date.component.d.ts +9 -0
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-date/form-field-date.component.d.ts.map +1 -0
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.d.ts +4 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.d.ts +4 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.d.ts +4 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/index.d.ts +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/index.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/fields.config.d.ts +1 -0
- package/libs/feature/editor/src/lib/fields.config.d.ts.map +1 -1
- package/libs/feature/record/src/lib/data-view/data-view.component.d.ts +1 -1
- package/libs/feature/record/src/lib/data-view/data-view.component.d.ts.map +1 -1
- package/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.d.ts +1 -1
- package/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.d.ts.map +1 -1
- package/libs/feature/record/src/lib/data-view-share/data-view-share.component.d.ts +1 -1
- package/libs/feature/record/src/lib/data-view-share/data-view-share.component.d.ts.map +1 -1
- package/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.d.ts +1 -1
- package/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.d.ts.map +1 -1
- package/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.d.ts +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 +14 -25
- package/libs/feature/record/src/lib/feature-record.module.d.ts.map +1 -1
- package/libs/feature/record/src/lib/map-view/map-view.component.d.ts +1 -1
- package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
- package/libs/feature/router/src/lib/default/constants.d.ts +2 -1
- package/libs/feature/router/src/lib/default/constants.d.ts.map +1 -1
- package/libs/feature/router/src/lib/default/state/query-params.utils.d.ts +4 -0
- package/libs/feature/router/src/lib/default/state/query-params.utils.d.ts.map +1 -0
- package/libs/feature/router/src/lib/default/state/router.facade.d.ts +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 +2 -0
- package/libs/feature/search/src/index.d.ts.map +1 -1
- package/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.d.ts +1 -1
- package/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.d.ts.map +1 -1
- package/libs/feature/search/src/lib/feature-search.module.d.ts +17 -14
- 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 +7 -1
- package/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.d.ts.map +1 -1
- package/libs/feature/search/src/lib/results-list/results-list.container.component.d.ts +1 -0
- package/libs/feature/search/src/lib/results-list/results-list.container.component.d.ts.map +1 -1
- package/libs/feature/search/src/lib/search-filters-summary/search-filters-summary.component.d.ts +22 -0
- package/libs/feature/search/src/lib/search-filters-summary/search-filters-summary.component.d.ts.map +1 -0
- package/libs/feature/search/src/lib/search-filters-summary-item/search-filters-summary-item.component.d.ts +34 -0
- package/libs/feature/search/src/lib/search-filters-summary-item/search-filters-summary-item.component.d.ts.map +1 -0
- package/libs/feature/search/src/lib/state/search.facade.d.ts +0 -2
- package/libs/feature/search/src/lib/state/search.facade.d.ts.map +1 -1
- package/libs/feature/search/src/lib/state/selectors.d.ts +0 -2
- package/libs/feature/search/src/lib/state/selectors.d.ts.map +1 -1
- package/libs/feature/search/src/lib/utils/service/fields.d.ts +20 -7
- package/libs/feature/search/src/lib/utils/service/fields.d.ts.map +1 -1
- package/libs/feature/search/src/lib/utils/service/fields.service.d.ts +4 -2
- package/libs/feature/search/src/lib/utils/service/fields.service.d.ts.map +1 -1
- package/libs/ui/catalog/src/index.d.ts +0 -1
- package/libs/ui/catalog/src/index.d.ts.map +1 -1
- package/libs/ui/catalog/src/lib/catalog-title/catalog-title.component.d.ts +1 -1
- package/libs/ui/catalog/src/lib/catalog-title/catalog-title.component.d.ts.map +1 -1
- package/libs/ui/catalog/src/lib/language-switcher/language-switcher.component.d.ts +1 -1
- package/libs/ui/catalog/src/lib/language-switcher/language-switcher.component.d.ts.map +1 -1
- package/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.d.ts +1 -1
- package/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.d.ts.map +1 -1
- package/libs/ui/catalog/src/lib/organisations-result/organisations-result.component.d.ts +1 -1
- package/libs/ui/catalog/src/lib/organisations-result/organisations-result.component.d.ts.map +1 -1
- package/libs/ui/elements/src/index.d.ts +0 -2
- package/libs/ui/elements/src/index.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/api-card/api-card.component.d.ts +1 -1
- package/libs/ui/elements/src/lib/api-card/api-card.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/content-ghost/content-ghost.component.d.ts +1 -1
- package/libs/ui/elements/src/lib/content-ghost/content-ghost.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/download-item/download-item.component.d.ts +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 +1 -1
- package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/error/error.component.d.ts +1 -1
- package/libs/ui/elements/src/lib/error/error.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.d.ts +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/metadata-catalog/metadata-catalog.component.d.ts +1 -1
- package/libs/ui/elements/src/lib/metadata-catalog/metadata-catalog.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.d.ts +1 -1
- package/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/metadata-info/linkify.directive.d.ts +2 -2
- package/libs/ui/elements/src/lib/metadata-info/linkify.directive.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/metadata-info/metadata-info.component.d.ts +1 -1
- package/libs/ui/elements/src/lib/metadata-info/metadata-info.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts +1 -1
- package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/metadata-quality-item/metadata-quality-item.component.d.ts +1 -1
- package/libs/ui/elements/src/lib/metadata-quality-item/metadata-quality-item.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts +1 -1
- package/libs/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/related-record-card/related-record-card.component.d.ts +1 -1
- package/libs/ui/elements/src/lib/related-record-card/related-record-card.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/ui-elements.module.d.ts +19 -37
- package/libs/ui/elements/src/lib/ui-elements.module.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/user-feedback-item/user-feedback-item.component.d.ts +1 -1
- package/libs/ui/elements/src/lib/user-feedback-item/user-feedback-item.component.d.ts.map +1 -1
- package/libs/ui/inputs/src/index.d.ts +1 -1
- package/libs/ui/inputs/src/index.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/copy-text-button/copy-text-button.component.d.ts +1 -1
- package/libs/ui/inputs/src/lib/copy-text-button/copy-text-button.component.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/date-range-dropdown/date-range-dropdown.component.d.ts +20 -0
- package/libs/ui/inputs/src/lib/date-range-dropdown/date-range-dropdown.component.d.ts.map +1 -0
- package/libs/ui/inputs/src/lib/file-input/file-input.component.d.ts +2 -1
- package/libs/ui/inputs/src/lib/file-input/file-input.component.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/image-input/image-input.component.d.ts +2 -1
- package/libs/ui/inputs/src/lib/image-input/image-input.component.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.d.ts +1 -1
- package/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.d.ts +1 -1
- package/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.d.ts +2 -1
- package/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts +28 -31
- package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts.map +1 -1
- package/libs/ui/layout/src/index.d.ts +5 -0
- package/libs/ui/layout/src/index.d.ts.map +1 -1
- package/libs/ui/layout/src/lib/block-list/block-list.component.d.ts +7 -5
- package/libs/ui/layout/src/lib/block-list/block-list.component.d.ts.map +1 -1
- package/libs/ui/layout/src/lib/carousel/carousel.component.d.ts +9 -7
- package/libs/ui/layout/src/lib/carousel/carousel.component.d.ts.map +1 -1
- package/libs/ui/layout/src/lib/expandable-panel/expandable-panel.component.d.ts +1 -1
- package/libs/ui/layout/src/lib/expandable-panel/expandable-panel.component.d.ts.map +1 -1
- package/libs/ui/layout/src/lib/expandable-panel-button/expandable-panel-button.component.d.ts +1 -1
- package/libs/ui/layout/src/lib/expandable-panel-button/expandable-panel-button.component.d.ts.map +1 -1
- package/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.d.ts +2 -1
- package/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.d.ts.map +1 -1
- package/libs/ui/layout/src/lib/interactive-table/interactive-table.component.d.ts.map +1 -1
- package/libs/ui/layout/src/lib/paginable.interface.d.ts +15 -0
- package/libs/ui/layout/src/lib/paginable.interface.d.ts.map +1 -0
- package/libs/ui/layout/src/lib/pagination/pagination.component.d.ts +11 -0
- package/libs/ui/layout/src/lib/pagination/pagination.component.d.ts.map +1 -0
- package/libs/ui/layout/src/lib/pagination-buttons/pagination-buttons.component.d.ts +9 -0
- package/libs/ui/layout/src/lib/pagination-buttons/pagination-buttons.component.d.ts.map +1 -0
- package/libs/ui/layout/src/lib/pagination-dots/pagination-dots.component.d.ts +10 -0
- package/libs/ui/layout/src/lib/pagination-dots/pagination-dots.component.d.ts.map +1 -0
- package/libs/ui/layout/src/lib/previous-next-buttons/previous-next-buttons.component.d.ts +8 -0
- package/libs/ui/layout/src/lib/previous-next-buttons/previous-next-buttons.component.d.ts.map +1 -0
- package/libs/ui/layout/src/lib/ui-layout.module.d.ts +6 -8
- package/libs/ui/layout/src/lib/ui-layout.module.d.ts.map +1 -1
- package/libs/ui/search/src/lib/results-table/results-table.component.d.ts +0 -3
- package/libs/ui/search/src/lib/results-table/results-table.component.d.ts.map +1 -1
- package/libs/ui/search/src/lib/ui-search.module.d.ts +2 -1
- package/libs/ui/search/src/lib/ui-search.module.d.ts.map +1 -1
- package/libs/ui/widgets/src/lib/loading-mask/loading-mask.component.d.ts +1 -1
- package/libs/ui/widgets/src/lib/loading-mask/loading-mask.component.d.ts.map +1 -1
- package/libs/ui/widgets/src/lib/progress-bar/progress-bar.component.d.ts +1 -1
- package/libs/ui/widgets/src/lib/progress-bar/progress-bar.component.d.ts.map +1 -1
- package/libs/ui/widgets/src/lib/spinning-loader/spinning-loader.component.d.ts +1 -1
- package/libs/ui/widgets/src/lib/spinning-loader/spinning-loader.component.d.ts.map +1 -1
- package/libs/ui/widgets/src/lib/ui-widgets.module.d.ts +9 -12
- package/libs/ui/widgets/src/lib/ui-widgets.module.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/fixtures.d.ts.map +1 -1
- package/libs/util/app-config/src/lib/model.d.ts +2 -0
- package/libs/util/app-config/src/lib/model.d.ts.map +1 -1
- package/libs/util/shared/src/lib/links/link-utils.d.ts +16 -16
- package/libs/util/shared/src/lib/utils/format-fields.d.ts +2 -0
- package/libs/util/shared/src/lib/utils/format-fields.d.ts.map +1 -0
- package/libs/util/shared/src/lib/utils/index.d.ts +1 -0
- package/libs/util/shared/src/lib/utils/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/libs/api/repository/src/lib/gn4/auth/auth.service.ts +24 -3
- package/src/libs/api/repository/src/lib/gn4/elasticsearch/date-range.utils.ts +13 -0
- package/src/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.ts +58 -23
- package/src/libs/api/repository/src/lib/gn4/elasticsearch/index.ts +1 -0
- package/src/libs/common/domain/src/lib/model/search/filter.model.ts +17 -1
- package/src/libs/common/fixtures/src/lib/editor/editor.fixtures.ts +10 -0
- package/src/libs/feature/catalog/src/lib/feature-catalog.module.ts +4 -9
- package/src/libs/feature/catalog/src/lib/organisations/organisations.component.html +1 -5
- package/src/libs/feature/catalog/src/lib/organisations/organisations.component.ts +41 -5
- package/src/libs/feature/dataviz/src/index.ts +0 -1
- package/src/libs/feature/dataviz/src/lib/chart-view/chart-view.component.ts +20 -2
- package/src/libs/feature/dataviz/src/lib/figure/figure-container/figure-container.component.ts +3 -1
- package/src/libs/feature/dataviz/src/lib/geo-table-view/geo-table-view.component.ts +6 -1
- package/src/libs/feature/dataviz/src/lib/table-view/table-view.component.ts +15 -2
- package/src/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.html +3 -2
- package/src/libs/feature/editor/src/lib/components/import-record/import-record.component.ts +7 -7
- package/src/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.html +2 -0
- package/src/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.ts +1 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts/form-field-contacts.component.html +1 -1
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/{form-field-date-updated/form-field-date-updated.component.ts → form-field-date/form-field-date.component.ts} +4 -4
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.html +55 -41
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.ts +8 -2
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.html +83 -67
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.ts +8 -2
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.html +22 -11
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.ts +10 -4
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.html +9 -2
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.ts +2 -2
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/index.ts +1 -1
- package/src/libs/feature/editor/src/lib/fields.config.ts +9 -0
- package/src/libs/feature/map/src/lib/layers-panel/layers-panel.component.ts +2 -2
- package/src/libs/feature/record/src/lib/data-view/data-view.component.ts +15 -0
- package/src/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.ts +5 -0
- package/src/libs/feature/record/src/lib/data-view-share/data-view-share.component.ts +16 -1
- package/src/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.ts +5 -0
- package/src/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.ts +8 -1
- package/src/libs/feature/record/src/lib/feature-record.module.ts +3 -43
- package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +24 -0
- package/src/libs/feature/router/src/lib/default/constants.ts +6 -1
- package/src/libs/feature/router/src/lib/default/state/query-params.utils.ts +61 -0
- package/src/libs/feature/router/src/lib/default/state/router.facade.ts +5 -3
- package/src/libs/feature/search/src/index.ts +2 -0
- package/src/libs/feature/search/src/lib/constants.ts +1 -1
- package/src/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.ts +3 -0
- package/src/libs/feature/search/src/lib/feature-search.module.ts +15 -6
- package/src/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.html +20 -10
- package/src/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.ts +32 -1
- package/src/libs/feature/search/src/lib/results-list/results-list.container.component.html +1 -6
- package/src/libs/feature/search/src/lib/results-list/results-list.container.component.ts +12 -1
- package/src/libs/feature/search/src/lib/search-filters-summary/search-filters-summary.component.html +17 -0
- package/src/libs/feature/search/src/lib/search-filters-summary/search-filters-summary.component.ts +78 -0
- package/src/libs/feature/search/src/lib/search-filters-summary-item/search-filters-summary-item.component.html +20 -0
- package/src/libs/feature/search/src/lib/search-filters-summary-item/search-filters-summary-item.component.ts +118 -0
- package/src/libs/feature/search/src/lib/state/search.facade.ts +0 -8
- package/src/libs/feature/search/src/lib/state/selectors.ts +0 -18
- package/src/libs/feature/search/src/lib/utils/service/fields.service.ts +17 -3
- package/src/libs/feature/search/src/lib/utils/service/fields.ts +73 -20
- package/src/libs/ui/catalog/src/index.ts +0 -1
- package/src/libs/ui/catalog/src/lib/catalog-title/catalog-title.component.ts +3 -0
- package/src/libs/ui/catalog/src/lib/language-switcher/language-switcher.component.ts +3 -0
- package/src/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.ts +11 -0
- package/src/libs/ui/catalog/src/lib/organisations-result/organisations-result.component.ts +3 -0
- package/src/libs/ui/elements/src/index.ts +0 -2
- package/src/libs/ui/elements/src/lib/api-card/api-card.component.html +0 -1
- package/src/libs/ui/elements/src/lib/api-card/api-card.component.ts +19 -0
- package/src/libs/ui/elements/src/lib/content-ghost/content-ghost.component.ts +3 -0
- package/src/libs/ui/elements/src/lib/download-item/download-item.component.ts +11 -0
- package/src/libs/ui/elements/src/lib/downloads-list/downloads-list.component.ts +11 -1
- package/src/libs/ui/elements/src/lib/error/error.component.ts +19 -0
- package/src/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.html +1 -2
- package/src/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.ts +15 -0
- package/src/libs/ui/elements/src/lib/metadata-catalog/metadata-catalog.component.ts +4 -1
- package/src/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.ts +24 -0
- package/src/libs/ui/elements/src/lib/metadata-info/linkify.directive.ts +2 -1
- package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.ts +37 -0
- package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.ts +16 -1
- package/src/libs/ui/elements/src/lib/metadata-quality-item/metadata-quality-item.component.ts +6 -0
- package/src/libs/ui/elements/src/lib/record-api-form/record-api-form.component.ts +15 -0
- package/src/libs/ui/elements/src/lib/related-record-card/related-record-card.component.html +0 -1
- package/src/libs/ui/elements/src/lib/related-record-card/related-record-card.component.ts +15 -0
- package/src/libs/ui/elements/src/lib/ui-elements.module.ts +2 -97
- package/src/libs/ui/elements/src/lib/user-feedback-item/user-feedback-item.component.ts +22 -0
- package/src/libs/ui/elements/src/lib/user-preview/user-preview.component.html +1 -4
- package/src/libs/ui/inputs/src/index.ts +1 -1
- package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.ts +1 -0
- package/src/libs/ui/inputs/src/lib/badge/badge.component.html +1 -1
- package/src/libs/ui/inputs/src/lib/copy-text-button/copy-text-button.component.html +0 -1
- package/src/libs/ui/inputs/src/lib/copy-text-button/copy-text-button.component.ts +7 -0
- package/src/libs/ui/inputs/src/lib/date-range-dropdown/date-range-dropdown.component.css +5 -0
- package/src/libs/ui/inputs/src/lib/date-range-dropdown/date-range-dropdown.component.html +30 -0
- package/src/libs/ui/inputs/src/lib/date-range-dropdown/date-range-dropdown.component.ts +63 -0
- package/src/libs/ui/inputs/src/lib/file-input/file-input.component.html +5 -4
- package/src/libs/ui/inputs/src/lib/file-input/file-input.component.ts +1 -0
- package/src/libs/ui/inputs/src/lib/image-input/image-input.component.html +15 -5
- package/src/libs/ui/inputs/src/lib/image-input/image-input.component.ts +1 -0
- package/src/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.ts +4 -1
- package/src/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.ts +6 -0
- package/src/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.html +1 -0
- package/src/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.ts +1 -0
- package/src/libs/ui/inputs/src/lib/ui-inputs.module.ts +2 -19
- package/src/libs/ui/layout/src/index.ts +5 -0
- package/src/libs/ui/layout/src/lib/block-list/block-list.component.css +0 -16
- package/src/libs/ui/layout/src/lib/block-list/block-list.component.html +4 -12
- package/src/libs/ui/layout/src/lib/block-list/block-list.component.ts +20 -11
- package/src/libs/ui/layout/src/lib/carousel/carousel.component.css +0 -16
- package/src/libs/ui/layout/src/lib/carousel/carousel.component.html +4 -12
- package/src/libs/ui/layout/src/lib/carousel/carousel.component.ts +22 -19
- package/src/libs/ui/layout/src/lib/expandable-panel/expandable-panel.component.ts +8 -2
- package/src/libs/ui/layout/src/lib/expandable-panel-button/expandable-panel-button.component.ts +6 -0
- package/src/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.ts +1 -0
- package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.ts +5 -1
- package/src/libs/ui/layout/src/lib/paginable.interface.ts +14 -0
- package/src/libs/ui/layout/src/lib/pagination/pagination.component.css +0 -0
- package/src/libs/ui/{elements → layout}/src/lib/pagination/pagination.component.html +10 -11
- package/src/libs/ui/layout/src/lib/pagination/pagination.component.ts +45 -0
- package/src/libs/ui/layout/src/lib/pagination-buttons/pagination-buttons.component.css +0 -0
- package/src/libs/ui/layout/src/lib/pagination-buttons/pagination-buttons.component.html +51 -0
- package/src/libs/ui/layout/src/lib/pagination-buttons/pagination-buttons.component.ts +50 -0
- package/src/libs/ui/layout/src/lib/pagination-dots/pagination-dots.component.css +16 -0
- package/src/libs/ui/layout/src/lib/pagination-dots/pagination-dots.component.html +15 -0
- package/src/libs/ui/layout/src/lib/pagination-dots/pagination-dots.component.ts +31 -0
- package/src/libs/ui/{inputs → layout}/src/lib/previous-next-buttons/previous-next-buttons.component.html +6 -6
- package/src/libs/ui/{inputs → layout}/src/lib/previous-next-buttons/previous-next-buttons.component.ts +4 -21
- package/src/libs/ui/layout/src/lib/ui-layout.module.ts +3 -26
- package/src/libs/ui/search/src/lib/results-table/results-table.component.html +12 -18
- package/src/libs/ui/search/src/lib/results-table/results-table.component.ts +2 -25
- package/src/libs/ui/search/src/lib/ui-search.module.ts +6 -2
- package/src/libs/ui/widgets/src/lib/loading-mask/loading-mask.component.ts +4 -6
- package/src/libs/ui/widgets/src/lib/progress-bar/progress-bar.component.ts +1 -0
- package/src/libs/ui/widgets/src/lib/spinning-loader/spinning-loader.component.ts +1 -0
- package/src/libs/ui/widgets/src/lib/ui-widgets.module.ts +2 -16
- package/src/libs/util/app-config/src/lib/app-config.ts +3 -0
- package/src/libs/util/app-config/src/lib/fixtures.ts +1 -0
- package/src/libs/util/app-config/src/lib/model.ts +2 -0
- package/src/libs/util/shared/src/lib/links/link-utils.ts +16 -16
- package/src/libs/util/shared/src/lib/utils/format-fields.ts +11 -0
- package/src/libs/util/shared/src/lib/utils/index.ts +1 -0
- package/tailwind.base.css +2 -1
- package/translations/de.json +6 -7
- package/translations/en.json +6 -7
- package/translations/es.json +6 -7
- package/translations/fr.json +7 -8
- package/translations/it.json +6 -7
- package/translations/nl.json +6 -7
- package/translations/pt.json +6 -7
- package/translations/sk.json +6 -7
- package/esm2022/libs/feature/dataviz/src/lib/feature-dataviz.module.mjs +0 -74
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-date-updated/form-field-date-updated.component.mjs +0 -19
- package/esm2022/libs/ui/catalog/src/lib/ui-catalog.module.mjs +0 -73
- package/esm2022/libs/ui/elements/src/lib/pagination/pagination.component.mjs +0 -54
- package/esm2022/libs/ui/elements/src/lib/pagination-buttons/pagination-buttons.component.mjs +0 -66
- package/esm2022/libs/ui/inputs/src/lib/previous-next-buttons/previous-next-buttons.component.mjs +0 -39
- package/libs/feature/dataviz/src/lib/feature-dataviz.module.d.ts +0 -22
- package/libs/feature/dataviz/src/lib/feature-dataviz.module.d.ts.map +0 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-date-updated/form-field-date-updated.component.d.ts +0 -9
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-date-updated/form-field-date-updated.component.d.ts.map +0 -1
- package/libs/ui/catalog/src/lib/ui-catalog.module.d.ts +0 -17
- package/libs/ui/catalog/src/lib/ui-catalog.module.d.ts.map +0 -1
- package/libs/ui/elements/src/lib/pagination/pagination.component.d.ts +0 -16
- package/libs/ui/elements/src/lib/pagination/pagination.component.d.ts.map +0 -1
- package/libs/ui/elements/src/lib/pagination-buttons/pagination-buttons.component.d.ts +0 -17
- package/libs/ui/elements/src/lib/pagination-buttons/pagination-buttons.component.d.ts.map +0 -1
- package/libs/ui/inputs/src/lib/previous-next-buttons/previous-next-buttons.component.d.ts +0 -12
- package/libs/ui/inputs/src/lib/previous-next-buttons/previous-next-buttons.component.d.ts.map +0 -1
- package/src/libs/feature/dataviz/src/lib/feature-dataviz.module.ts +0 -48
- package/src/libs/ui/catalog/src/lib/ui-catalog.module.ts +0 -43
- package/src/libs/ui/elements/src/lib/pagination/pagination.component.ts +0 -50
- package/src/libs/ui/elements/src/lib/pagination-buttons/pagination-buttons.component.html +0 -33
- package/src/libs/ui/elements/src/lib/pagination-buttons/pagination-buttons.component.ts +0 -68
- /package/src/libs/feature/editor/src/lib/components/record-form/form-field/{form-field-date-updated/form-field-date-updated.component.css → form-field-date/form-field-date.component.css} +0 -0
- /package/src/libs/feature/editor/src/lib/components/record-form/form-field/{form-field-date-updated/form-field-date-updated.component.html → form-field-date/form-field-date.component.html} +0 -0
- /package/src/libs/{ui/elements/src/lib/pagination/pagination.component.css → feature/search/src/lib/search-filters-summary/search-filters-summary.component.css} +0 -0
- /package/src/libs/{ui/elements/src/lib/pagination-buttons/pagination-buttons.component.css → feature/search/src/lib/search-filters-summary-item/search-filters-summary-item.component.css} +0 -0
- /package/src/libs/ui/{inputs → layout}/src/lib/previous-next-buttons/previous-next-buttons.component.css +0 -0
|
@@ -5,6 +5,10 @@ import * as i0 from "@angular/core";
|
|
|
5
5
|
import * as i1 from "@ngx-translate/core";
|
|
6
6
|
export const DEFAULT_GN4_LOGIN_URL = `/geonetwork/srv/\${lang3}/catalog.signin?redirect=\${current_url}`;
|
|
7
7
|
export const LOGIN_URL = new InjectionToken('loginUrl');
|
|
8
|
+
export const DEFAULT_GN4_LOGOUT_URL = `/geonetwork/signout`;
|
|
9
|
+
export const LOGOUT_URL = new InjectionToken('logoutUrl');
|
|
10
|
+
export const DEFAULT_GN4_SETTINGS_URL = `/geonetwork/srv/\${lang3}/admin.console#/organization/users?userOrGroup=`;
|
|
11
|
+
export const SETTINGS_URL = new InjectionToken('settingsUrl');
|
|
8
12
|
export class AuthService {
|
|
9
13
|
get loginUrl() {
|
|
10
14
|
let baseUrl = this.baseLoginUrl;
|
|
@@ -18,12 +22,22 @@ export class AuthService {
|
|
|
18
22
|
.replace('${lang2}', this.translateService.currentLang)
|
|
19
23
|
.replace('${lang3}', LANG_2_TO_3_MAPPER[this.translateService.currentLang]);
|
|
20
24
|
}
|
|
21
|
-
|
|
25
|
+
get logoutUrl() {
|
|
26
|
+
return this.baseLogoutUrl;
|
|
27
|
+
}
|
|
28
|
+
get settingsUrl() {
|
|
29
|
+
return this.baseSettingsUrl.replace('${lang3}', LANG_2_TO_3_MAPPER[this.translateService.currentLang]);
|
|
30
|
+
}
|
|
31
|
+
constructor(baseLoginUrlToken, baseLogoutUrlToken, baseSettingsUrlToken, translateService) {
|
|
22
32
|
this.baseLoginUrlToken = baseLoginUrlToken;
|
|
33
|
+
this.baseLogoutUrlToken = baseLogoutUrlToken;
|
|
34
|
+
this.baseSettingsUrlToken = baseSettingsUrlToken;
|
|
23
35
|
this.translateService = translateService;
|
|
24
36
|
this.baseLoginUrl = this.baseLoginUrlToken || DEFAULT_GN4_LOGIN_URL;
|
|
37
|
+
this.baseLogoutUrl = this.baseLogoutUrlToken || DEFAULT_GN4_LOGOUT_URL;
|
|
38
|
+
this.baseSettingsUrl = this.baseSettingsUrlToken || DEFAULT_GN4_SETTINGS_URL;
|
|
25
39
|
}
|
|
26
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AuthService, deps: [{ token: LOGIN_URL, optional: true }, { token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
40
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AuthService, deps: [{ token: LOGIN_URL, optional: true }, { token: LOGOUT_URL, optional: true }, { token: SETTINGS_URL, optional: true }, { token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
27
41
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AuthService, providedIn: 'root' }); }
|
|
28
42
|
}
|
|
29
43
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AuthService, decorators: [{
|
|
@@ -36,5 +50,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
36
50
|
}, {
|
|
37
51
|
type: Inject,
|
|
38
52
|
args: [LOGIN_URL]
|
|
53
|
+
}] }, { type: undefined, decorators: [{
|
|
54
|
+
type: Optional
|
|
55
|
+
}, {
|
|
56
|
+
type: Inject,
|
|
57
|
+
args: [LOGOUT_URL]
|
|
58
|
+
}] }, { type: undefined, decorators: [{
|
|
59
|
+
type: Optional
|
|
60
|
+
}, {
|
|
61
|
+
type: Inject,
|
|
62
|
+
args: [SETTINGS_URL]
|
|
39
63
|
}] }, { type: i1.TranslateService }]; } });
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hcGkvcmVwb3NpdG9yeS9zcmMvbGliL2duNC9hdXRoL2F1dGguc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQzVFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFBO0FBQzVFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFBOzs7QUFFdEQsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsbUVBQW1FLENBQUE7QUFDeEcsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLElBQUksY0FBYyxDQUFTLFVBQVUsQ0FBQyxDQUFBO0FBRS9ELE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLHFCQUFxQixDQUFBO0FBQzNELE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxJQUFJLGNBQWMsQ0FBUyxXQUFXLENBQUMsQ0FBQTtBQUVqRSxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRywwRUFBMEUsQ0FBQTtBQUNsSCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsSUFBSSxjQUFjLENBQVMsYUFBYSxDQUFDLENBQUE7QUFLckUsTUFBTSxPQUFPLFdBQVc7SUFLdEIsSUFBSSxRQUFRO1FBQ1YsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQTtRQUMvQixNQUFNLHNCQUFzQixHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQTtRQUN2RCwwRUFBMEU7UUFDMUUsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLElBQUksc0JBQXNCLEVBQUU7WUFDbkUsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFBO1NBQ3BDO1FBQ0QsT0FBTyxPQUFPO2FBQ1gsT0FBTyxDQUFDLGdCQUFnQixFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7YUFDckQsT0FBTyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDO2FBQ3RELE9BQU8sQ0FDTixVQUFVLEVBQ1Ysa0JBQWtCLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxDQUN0RCxDQUFBO0lBQ0wsQ0FBQztJQUVELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQTtJQUMzQixDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FDakMsVUFBVSxFQUNWLGtCQUFrQixDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsQ0FDdEQsQ0FBQTtJQUNILENBQUM7SUFFRCxZQUN5QyxpQkFBeUIsRUFDeEIsa0JBQTBCLEVBQ3hCLG9CQUE0QixFQUM5RCxnQkFBa0M7UUFISCxzQkFBaUIsR0FBakIsaUJBQWlCLENBQVE7UUFDeEIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFRO1FBQ3hCLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBUTtRQUM5RCxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBbkM1QyxpQkFBWSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxxQkFBcUIsQ0FBQTtRQUM5RCxrQkFBYSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsSUFBSSxzQkFBc0IsQ0FBQTtRQUNqRSxvQkFBZSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsSUFBSSx3QkFBd0IsQ0FBQTtJQWtDcEUsQ0FBQzsrR0FyQ08sV0FBVyxrQkFpQ0EsU0FBUyw2QkFDVCxVQUFVLDZCQUNWLFlBQVk7bUhBbkN2QixXQUFXLGNBRlYsTUFBTTs7NEZBRVAsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQWtDSSxRQUFROzswQkFBSSxNQUFNOzJCQUFDLFNBQVM7OzBCQUM1QixRQUFROzswQkFBSSxNQUFNOzJCQUFDLFVBQVU7OzBCQUM3QixRQUFROzswQkFBSSxNQUFNOzJCQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIEluamVjdGlvblRva2VuLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBMQU5HXzJfVE9fM19NQVBQRVIgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvaTE4bi9zcmMnXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfR040X0xPR0lOX1VSTCA9IGAvZ2VvbmV0d29yay9zcnYvXFwke2xhbmczfS9jYXRhbG9nLnNpZ25pbj9yZWRpcmVjdD1cXCR7Y3VycmVudF91cmx9YFxuZXhwb3J0IGNvbnN0IExPR0lOX1VSTCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+KCdsb2dpblVybCcpXG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0dONF9MT0dPVVRfVVJMID0gYC9nZW9uZXR3b3JrL3NpZ25vdXRgXG5leHBvcnQgY29uc3QgTE9HT1VUX1VSTCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+KCdsb2dvdXRVcmwnKVxuXG5leHBvcnQgY29uc3QgREVGQVVMVF9HTjRfU0VUVElOR1NfVVJMID0gYC9nZW9uZXR3b3JrL3Nydi9cXCR7bGFuZzN9L2FkbWluLmNvbnNvbGUjL29yZ2FuaXphdGlvbi91c2Vycz91c2VyT3JHcm91cD1gXG5leHBvcnQgY29uc3QgU0VUVElOR1NfVVJMID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZz4oJ3NldHRpbmdzVXJsJylcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEF1dGhTZXJ2aWNlIHtcbiAgYmFzZUxvZ2luVXJsID0gdGhpcy5iYXNlTG9naW5VcmxUb2tlbiB8fCBERUZBVUxUX0dONF9MT0dJTl9VUkxcbiAgYmFzZUxvZ291dFVybCA9IHRoaXMuYmFzZUxvZ291dFVybFRva2VuIHx8IERFRkFVTFRfR040X0xPR09VVF9VUkxcbiAgYmFzZVNldHRpbmdzVXJsID0gdGhpcy5iYXNlU2V0dGluZ3NVcmxUb2tlbiB8fCBERUZBVUxUX0dONF9TRVRUSU5HU19VUkxcblxuICBnZXQgbG9naW5VcmwoKSB7XG4gICAgbGV0IGJhc2VVcmwgPSB0aGlzLmJhc2VMb2dpblVybFxuICAgIGNvbnN0IGxvY2F0aW9uSGFzUXVlcnlQYXJhbXMgPSAhIXdpbmRvdy5sb2NhdGlvbi5zZWFyY2hcbiAgICAvLyB0aGlzIGlzIHNwZWNpZmljIHRvIGdlb3JjaGVzdHJhIGxvZ2luIFVSTCBiYXNlZCBvbiBhID9sb2dpbiBxdWVyeSBwYXJhbVxuICAgIGlmIChiYXNlVXJsLnN0YXJ0c1dpdGgoJyR7Y3VycmVudF91cmx9PycpICYmIGxvY2F0aW9uSGFzUXVlcnlQYXJhbXMpIHtcbiAgICAgIGJhc2VVcmwgPSBiYXNlVXJsLnJlcGxhY2UoJz8nLCAnJicpXG4gICAgfVxuICAgIHJldHVybiBiYXNlVXJsXG4gICAgICAucmVwbGFjZSgnJHtjdXJyZW50X3VybH0nLCB3aW5kb3cubG9jYXRpb24udG9TdHJpbmcoKSlcbiAgICAgIC5yZXBsYWNlKCcke2xhbmcyfScsIHRoaXMudHJhbnNsYXRlU2VydmljZS5jdXJyZW50TGFuZylcbiAgICAgIC5yZXBsYWNlKFxuICAgICAgICAnJHtsYW5nM30nLFxuICAgICAgICBMQU5HXzJfVE9fM19NQVBQRVJbdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmN1cnJlbnRMYW5nXVxuICAgICAgKVxuICB9XG5cbiAgZ2V0IGxvZ291dFVybCgpIHtcbiAgICByZXR1cm4gdGhpcy5iYXNlTG9nb3V0VXJsXG4gIH1cblxuICBnZXQgc2V0dGluZ3NVcmwoKSB7XG4gICAgcmV0dXJuIHRoaXMuYmFzZVNldHRpbmdzVXJsLnJlcGxhY2UoXG4gICAgICAnJHtsYW5nM30nLFxuICAgICAgTEFOR18yX1RPXzNfTUFQUEVSW3RoaXMudHJhbnNsYXRlU2VydmljZS5jdXJyZW50TGFuZ11cbiAgICApXG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KExPR0lOX1VSTCkgcHJpdmF0ZSBiYXNlTG9naW5VcmxUb2tlbjogc3RyaW5nLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTE9HT1VUX1VSTCkgcHJpdmF0ZSBiYXNlTG9nb3V0VXJsVG9rZW46IHN0cmluZyxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFNFVFRJTkdTX1VSTCkgcHJpdmF0ZSBiYXNlU2V0dGluZ3NVcmxUb2tlbjogc3RyaW5nLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZVxuICApIHt9XG59XG4iXX0=
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export function isDateRange(filter) {
|
|
2
|
+
if (!filter)
|
|
3
|
+
return false;
|
|
4
|
+
return typeof filter === 'object' && ('start' in filter || 'end' in filter);
|
|
5
|
+
}
|
|
6
|
+
export function formatDate(date) {
|
|
7
|
+
const year = date.getFullYear();
|
|
8
|
+
const month = String(date.getMonth() + 1).padStart(2, '0');
|
|
9
|
+
const day = String(date.getDate()).padStart(2, '0');
|
|
10
|
+
return `${year}-${month}-${day}`;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBpL3JlcG9zaXRvcnkvc3JjL2xpYi9nbjQvZWxhc3RpY3NlYXJjaC9kYXRlLXJhbmdlLnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sVUFBVSxXQUFXLENBQUMsTUFBbUI7SUFDN0MsSUFBSSxDQUFDLE1BQU07UUFBRSxPQUFPLEtBQUssQ0FBQTtJQUN6QixPQUFPLE9BQU8sTUFBTSxLQUFLLFFBQVEsSUFBSSxDQUFDLE9BQU8sSUFBSSxNQUFNLElBQUksS0FBSyxJQUFJLE1BQU0sQ0FBQyxDQUFBO0FBQzdFLENBQUM7QUFFRCxNQUFNLFVBQVUsVUFBVSxDQUFDLElBQVU7SUFDbkMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFBO0lBQy9CLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQTtJQUMxRCxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQTtJQUNuRCxPQUFPLEdBQUcsSUFBSSxJQUFJLEtBQUssSUFBSSxHQUFHLEVBQUUsQ0FBQTtBQUNsQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmllbGRGaWx0ZXIgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9zZWFyY2gnXG5cbmV4cG9ydCBmdW5jdGlvbiBpc0RhdGVSYW5nZShmaWx0ZXI6IEZpZWxkRmlsdGVyKTogYm9vbGVhbiB7XG4gIGlmICghZmlsdGVyKSByZXR1cm4gZmFsc2VcbiAgcmV0dXJuIHR5cGVvZiBmaWx0ZXIgPT09ICdvYmplY3QnICYmICgnc3RhcnQnIGluIGZpbHRlciB8fCAnZW5kJyBpbiBmaWx0ZXIpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXREYXRlKGRhdGU6IERhdGUpOiBzdHJpbmcge1xuICBjb25zdCB5ZWFyID0gZGF0ZS5nZXRGdWxsWWVhcigpXG4gIGNvbnN0IG1vbnRoID0gU3RyaW5nKGRhdGUuZ2V0TW9udGgoKSArIDEpLnBhZFN0YXJ0KDIsICcwJylcbiAgY29uc3QgZGF5ID0gU3RyaW5nKGRhdGUuZ2V0RGF0ZSgpKS5wYWRTdGFydCgyLCAnMCcpXG4gIHJldHVybiBgJHt5ZWFyfS0ke21vbnRofS0ke2RheX1gXG59XG4iXX0=
|
|
@@ -2,6 +2,7 @@ import { Inject, Injectable, Optional } from '@angular/core';
|
|
|
2
2
|
import { ES_QUERY_FIELDS_PRIORITY, ES_SOURCE_SUMMARY, } from './constant';
|
|
3
3
|
import { METADATA_LANGUAGE } from '../../metadata-language';
|
|
4
4
|
import { LangService } from '../../../../../../../libs/util/i18n/src';
|
|
5
|
+
import { formatDate, isDateRange } from './date-range.utils';
|
|
5
6
|
import * as i0 from "@angular/core";
|
|
6
7
|
import * as i1 from "../../../../../../../libs/util/i18n/src";
|
|
7
8
|
export class ElasticsearchService {
|
|
@@ -155,7 +156,7 @@ export class ElasticsearchService {
|
|
|
155
156
|
isCurrentSearchLang() {
|
|
156
157
|
return this.metadataLang === 'current';
|
|
157
158
|
}
|
|
158
|
-
|
|
159
|
+
filtersToQuery(filters) {
|
|
159
160
|
const makeQuery = (filter) => {
|
|
160
161
|
if (typeof filter === 'string') {
|
|
161
162
|
return filter;
|
|
@@ -169,10 +170,44 @@ export class ElasticsearchService {
|
|
|
169
170
|
})
|
|
170
171
|
.join(' OR ');
|
|
171
172
|
};
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
.
|
|
175
|
-
|
|
173
|
+
const queryString = typeof filters === 'string'
|
|
174
|
+
? filters
|
|
175
|
+
: Object.keys(filters)
|
|
176
|
+
.filter((fieldname) => !isDateRange(filters[fieldname]))
|
|
177
|
+
.filter((fieldname) => filters[fieldname] &&
|
|
178
|
+
JSON.stringify(filters[fieldname]) !== '{}')
|
|
179
|
+
.map((fieldname) => `${fieldname}:(${makeQuery(filters[fieldname])})`)
|
|
180
|
+
.join(' AND ');
|
|
181
|
+
const queryRange = Object.entries(filters)
|
|
182
|
+
.filter(([, value]) => isDateRange(value))
|
|
183
|
+
.map(([searchField, dateRange]) => {
|
|
184
|
+
return {
|
|
185
|
+
searchField,
|
|
186
|
+
dateRange,
|
|
187
|
+
};
|
|
188
|
+
})[0];
|
|
189
|
+
const queryParts = [
|
|
190
|
+
queryString && {
|
|
191
|
+
query_string: {
|
|
192
|
+
query: queryString,
|
|
193
|
+
},
|
|
194
|
+
},
|
|
195
|
+
queryRange &&
|
|
196
|
+
queryRange.dateRange && {
|
|
197
|
+
range: {
|
|
198
|
+
[queryRange.searchField]: {
|
|
199
|
+
...(queryRange.dateRange.start && {
|
|
200
|
+
gte: formatDate(queryRange.dateRange.start),
|
|
201
|
+
}),
|
|
202
|
+
...(queryRange.dateRange.end && {
|
|
203
|
+
lte: formatDate(queryRange.dateRange.end),
|
|
204
|
+
}),
|
|
205
|
+
format: 'yyyy-MM-dd',
|
|
206
|
+
},
|
|
207
|
+
},
|
|
208
|
+
},
|
|
209
|
+
].filter(Boolean);
|
|
210
|
+
return queryParts.length > 0 ? queryParts : undefined;
|
|
176
211
|
}
|
|
177
212
|
buildPayloadQuery({ any, ...fieldSearchFilters }, configFilters, uuids, geometry) {
|
|
178
213
|
const must = [];
|
|
@@ -195,13 +230,9 @@ export class ElasticsearchService {
|
|
|
195
230
|
},
|
|
196
231
|
});
|
|
197
232
|
}
|
|
198
|
-
const queryFilters = this.
|
|
233
|
+
const queryFilters = this.filtersToQuery(fieldSearchFilters);
|
|
199
234
|
if (queryFilters) {
|
|
200
|
-
filter.push(
|
|
201
|
-
query_string: {
|
|
202
|
-
query: queryFilters,
|
|
203
|
-
},
|
|
204
|
-
});
|
|
235
|
+
filter.push(...queryFilters);
|
|
205
236
|
}
|
|
206
237
|
if (uuids) {
|
|
207
238
|
filter.push({
|
|
@@ -385,13 +416,7 @@ export class ElasticsearchService {
|
|
|
385
416
|
const filter = aggregation.filters[curr];
|
|
386
417
|
return {
|
|
387
418
|
...prev,
|
|
388
|
-
[curr]:
|
|
389
|
-
query_string: {
|
|
390
|
-
query: typeof filter === 'string'
|
|
391
|
-
? filter
|
|
392
|
-
: this.filtersToQueryString(filter),
|
|
393
|
-
},
|
|
394
|
-
},
|
|
419
|
+
[curr]: this.filtersToQuery(filter)[0],
|
|
395
420
|
};
|
|
396
421
|
}, {}),
|
|
397
422
|
};
|
|
@@ -469,4 +494,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
469
494
|
type: Inject,
|
|
470
495
|
args: [METADATA_LANGUAGE]
|
|
471
496
|
}] }]; } });
|
|
472
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxhc3RpY3NlYXJjaC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hcGkvcmVwb3NpdG9yeS9zcmMvbGliL2duNC9lbGFzdGljc2VhcmNoL2VsYXN0aWNzZWFyY2guc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFFNUQsT0FBTyxFQUNMLHdCQUF3QixFQUN4QixpQkFBaUIsR0FFbEIsTUFBTSxZQUFZLENBQUE7QUFVbkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUE7QUFXM0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlDQUF5QyxDQUFBOzs7QUFLckUsTUFBTSxPQUFPLG9CQUFvQjtJQU0vQixZQUNVLFdBQXdCLEVBQ2UsWUFBb0I7UUFEM0QsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDZSxpQkFBWSxHQUFaLFlBQVksQ0FBUTtRQVByRSxzREFBc0Q7UUFDdEQsbUdBQW1HO1FBQzNGLGtCQUFhLEdBQTJCLEVBQUUsQ0FBQTtRQUMxQyxVQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUE7SUFLbEMsQ0FBQztJQUVKLG9CQUFvQixDQUNsQixlQUFvQixFQUFFLEVBQ3RCLElBQUksR0FBRyxDQUFDLEVBQ1IsSUFBSSxHQUFHLENBQUMsRUFDUixTQUFzQixJQUFJLEVBQzFCLGdCQUErQixFQUFFLEVBQ2pDLGdCQUErQixFQUFFLEVBQ2pDLGdCQUErQixFQUFFLEVBQ2pDLEtBQWdCLEVBQ2hCLFFBQW1CO1FBRW5CLE1BQU0sT0FBTyxHQUFHO1lBQ2QsWUFBWTtZQUNaLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUM7WUFDbkMsS0FBSyxFQUFFLElB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TyxDQUFDLEdBQUcsQ0FBQyxDQUN0QyxDQUFBO2dCQUNMLE9BQU8sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztvQkFDeEMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxHQUFHO29CQUNwQixTQUFTLEVBQUUsT0FBTyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsRUFBRSxHQUFHO29CQUNsQyxLQUFLLEVBQUUsTUFBTSxDQUFDLFNBQVM7aUJBQ3hCLENBQUMsQ0FBQyxDQUFBO2dCQUNILE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQSxDQUFDLFlBQVk7Z0JBQzFCLE9BQU87b0JBQ0wsT0FBTztpQkFDUixDQUFBO2FBQ0Y7U0FDRjtJQUNILENBQUM7K0dBbmhCVSxvQkFBb0IsNkNBUVQsaUJBQWlCO21IQVI1QixvQkFBb0IsY0FGbkIsTUFBTTs7NEZBRVAsb0JBQW9CO2tCQUhoQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBU0ksUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IEdlb21ldHJ5IH0gZnJvbSAnZ2VvanNvbidcbmltcG9ydCB7XG4gIEVTX1FVRVJZX0ZJRUxEU19QUklPUklUWSxcbiAgRVNfU09VUkNFX1NVTU1BUlksXG4gIEVzUXVlcnlGaWVsZHNQcmlvcml0eVR5cGUsXG59IGZyb20gJy4vY29uc3RhbnQnXG5pbXBvcnQge1xuICBBZ2dyZWdhdGlvbixcbiAgQWdncmVnYXRpb25QYXJhbXMsXG4gIEFnZ3JlZ2F0aW9uc1BhcmFtcyxcbiAgRmllbGRGaWx0ZXIsXG4gIEZpZWxkRmlsdGVycyxcbiAgRmlsdGVyQWdncmVnYXRpb25QYXJhbXMsXG4gIFNvcnRCeUZpZWxkLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9zZWFyY2gnXG5pbXBvcnQgeyBNRVRBREFUQV9MQU5HVUFHRSB9IGZyb20gJy4uLy4uL21ldGFkYXRhLWxhbmd1YWdlJ1xuaW1wb3J0IHtcbiAgQWdncmVnYXRpb25SZXN1bHQsXG4gIEVzU2VhcmNoUGFyYW1zLFxuICBGaWx0ZXJzQWdncmVnYXRpb25SZXN1bHQsXG4gIEhpc3RvZ3JhbUFnZ3JlZ2F0aW9uUmVzdWx0LFxuICBSZXF1ZXN0RmllbGRzLFxuICBTZWFyY2hGaWx0ZXJzLFxuICBTb3J0UGFyYW1zLFxuICBUZXJtc0FnZ3JlZ2F0aW9uUmVzdWx0LFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwaS9tZXRhZGF0YS1jb252ZXJ0ZXIvc3JjJ1xuaW1wb3J0IHsgTGFuZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvaTE4bi9zcmMnXG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBFbGFzdGljc2VhcmNoU2VydmljZSB7XG4gIC8vIHJ1bnRpbWUgZmllbGRzIGFyZSBjb21wdXRlZCB1c2luZyBhIFBhaW5sZXNzIHNjcmlwdFxuICAvLyBzZWU6IGh0dHBzOi8vd3d3LmVsYXN0aWMuY28vZ3VpZGUvZW4vZWxhc3RpY3NlYXJjaC9yZWZlcmVuY2UvY3VycmVudC9ydW50aW1lLW1hcHBpbmctZmllbGRzLmh0bWxcbiAgcHJpdmF0ZSBydW50aW1lRmllbGRzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge31cbiAgcHJpdmF0ZSBsYW5nMyA9IHRoaXMubGFuZ1NlcnZpY2UuaXNvM1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgbGFuZ1NlcnZpY2U6IExhbmdTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTUVUQURBVEFfTEFOR1VBR0UpIHByaXZhdGUgbWV0YWRhdGFMYW5nOiBzdHJpbmdcbiAgKSB7fVxuXG4gIGdldFNlYXJjaFJlcXVlc3RCb2R5KFxuICAgIGFnZ3JlZ2F0aW9uczogYW55ID0ge30sXG4gICAgc2l6ZSA9IDAsXG4gICAgZnJvbSA9IDAsXG4gICAgc29ydEJ5OiBTb3J0QnlGaWVsZCA9IG51bGwsXG4gICAgcmVxdWVzdEZpZWxkczogUmVxdWVzdEZpZWxkcyA9IFtdLFxuICAgIHNlYXJjaEZpbHRlcnM6IFNlYXJjaEZpbHRlcnMgPSB7fSxcbiAgICBjb25maWdGaWx0ZXJzOiBTZWFyY2hGaWx0ZXJzID0ge30sXG4gICAgdXVpZHM/OiBzdHJpbmdbXSxcbiAgICBnZW9tZXRyeT86IEdlb21ldHJ5XG4gICk6IEVzU2VhcmNoUGFyYW1zIHtcbiAgICBjb25zdCBwYXlsb2FkID0ge1xuICAgICAgYWdncmVnYXRpb25zLFxuICAgICAgZnJvbSxcbiAgICAgIHNpemUsXG4gICAgICBzb3J0OiB0aGlzLmJ1aWxkUGF5bG9hZFNvcnQoc29ydEJ5KSxcbiAgICAgIHF1ZXJ5OiB0aGlzLmJ1aWxkUGF5bG9hZFF1ZXJ5KFxuICAgICAgICBzZWFyY2hGaWx0ZXJzLFxuICAgICAgICBjb25maWdGaWx0ZXJzLFxuICAgICAgICB1dWlkcyxcbiAgICAgICAgZ2VvbWV0cnlcbiAgICAgICksXG4gICAgICAuLi4oc2l6ZSA+IDAgPyB7IHRyYWNrX3RvdGFsX2hpdHM6IHRydWUgfSA6IHt9KSxcbiAgICAgIF9zb3VyY2U6IHJlcXVlc3RGaWVsZHMsXG4gICAgfVxuICAgIHRoaXMucHJvY2Vzc1J1bnRpbWVGaWVsZHMocGF5bG9hZClcbiAgICByZXR1cm4gcGF5bG9hZFxuICB9XG5cbiAgLy8gcGF5bG9hZCBvYmplY3Qgd2lsbCBiZSBtdXRhdGVkXG4gIHByaXZhdGUgcHJvY2Vzc1J1bnRpbWVGaWVsZHMocGF5bG9hZDogRXNTZWFyY2hQYXJhbXMpOiBFc1NlYXJjaFBhcmFtcyB7XG4gICAgY29uc3QgYWRkTWFwcGluZyA9IChmaWVsZE5hbWU6IHN0cmluZykgPT4ge1xuICAgICAgaWYgKCFwYXlsb2FkLnJ1bnRpbWVfbWFwcGluZ3MpIHBheWxvYWQucnVudGltZV9tYXBwaW5ncyA9IHt9XG4gICAgICBwYXlsb2FkLnJ1bnRpbWVfbWFwcGluZ3NbZmllbGROYW1lXSA9IHtcbiAgICAgICAgdHlwZTogJ2tleXdvcmQnLFxuICAgICAgICBzY3JpcHQ6IHRoaXMucnVudGltZUZpZWxkc1tmaWVsZE5hbWVdLFxuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBsb29rRm9yRmllbGQgPSAobm9kZTogdW5rbm93bikgPT4ge1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkobm9kZSkpIHtcbiAgICAgICAgbm9kZS5mb3JFYWNoKGxvb2tGb3JGaWVsZClcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIG5vZGUgIT09ICdvYmplY3QnKSByZXR1cm5cbiAgICAgIGlmICgnZmllbGQnIGluIG5vZGUgJiYgdHlwZW9mIG5vZGUuZmllbGQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGlmIChub2RlLmZpZWxkIGluIHRoaXMucnVudGltZUZpZWxkcykge1xuICAgICAgICAgIGFkZE1hcHBpbmcobm9kZS5maWVsZClcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgZm9yIChjb25zdCBydW50aW1lRmllbGQgaW4gdGhpcy5ydW50aW1lRmllbGRzKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBydW50aW1lRmllbGQgaW4gbm9kZSAmJlxuICAgICAgICAgIChub2RlW3J1bnRpbWVGaWVsZF0gPT09ICdhc2MnIHx8IG5vZGVbcnVudGltZUZpZWxkXSA9PT0gJ2Rlc2MnKVxuICAgICAgICApIHtcbiAgICAgICAgICBhZGRNYXBwaW5nKHJ1bnRpbWVGaWVsZClcbiAgICAgICAgfVxuICAgICAgICBpZiAoXG4gICAgICAgICAgJ3F1ZXJ5JyBpbiBub2RlICYmXG4gICAgICAgICAgdHlwZW9mIG5vZGUucXVlcnkgPT09ICdzdHJpbmcnICYmXG4gICAgICAgICAgbm9kZS5xdWVyeS5pbmRleE9mKHJ1bnRpbWVGaWVsZCArICc6JykgPiAtMVxuICAgICAgICApIHtcbiAgICAgICAgICBhZGRNYXBwaW5nKHJ1bnRpbWVGaWVsZClcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgZm9yIChjb25zdCBrZXkgaW4gbm9kZSkge1xuICAgICAgICBpZiAodHlwZW9mIG5vZGVba2V5XSA9PT0gJ29iamVjdCcpIGxvb2tGb3JGaWVsZChub2RlW2tleV0pXG4gICAgICB9XG4gICAgfVxuICAgIGxvb2tGb3JGaWVsZChwYXlsb2FkLmFnZ3JlZ2F0aW9ucylcbiAgICBsb29rRm9yRmllbGQocGF5bG9hZC5zb3J0KVxuICAgIGxvb2tGb3JGaWVsZChwYXlsb2FkLnF1ZXJ5KVxuICAgIHJldHVybiBwYXlsb2FkXG4gIH1cblxuICByZWdpc3RlclJ1bnRpbWVGaWVsZChmaWVsZE5hbWU6IHN0cmluZywgZXhwcmVzc2lvbjogc3RyaW5nKSB7XG4gICAgdGhpcy5ydW50aW1lRmllbGRzW2ZpZWxkTmFtZV0gPSBleHByZXNzaW9uXG4gIH1cblxuICBnZXRNZXRhZGF0YUJ5SWRQYXlsb2FkKHV1aWQ6IHN0cmluZyk6IEVzU2VhcmNoUGFyYW1zIHtcbiAgICByZXR1cm4ge1xuICAgICAgcXVlcnk6IHtcbiAgICAgICAgaWRzOiB7XG4gICAgICAgICAgdmFsdWVzOiBbdXVpZF0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH1cbiAgfVxuXG4gIGdldFJlbGF0ZWRSZWNvcmRQYXlsb2FkKFxuICAgIHRpdGxlOiBzdHJpbmcsXG4gICAgdXVpZDogc3RyaW5nLFxuICAgIHNpemUgPSA2LFxuICAgIF9zb3VyY2UgPSBbLi4uRVNfU09VUkNFX1NVTU1BUlksICdhbGxLZXl3b3JkcycsICdjcmVhdGVEYXRlJ11cbiAgKTogRXNTZWFyY2hQYXJhbXMge1xuICAgIHJldHVybiB7XG4gICAgICBxdWVyeToge1xuICAgICAgICBib29sOiB7XG4gICAgICAgICAgbXVzdDogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBtb3JlX2xpa2VfdGhpczoge1xuICAgICAgICAgICAgICAgIGZpZWxkczogW1xuICAgICAgICAgICAgICAgICAgJ3Jlc291cmNlVGl0bGVPYmplY3QuZGVmYXVsdCcsXG4gICAgICAgICAgICAgICAgICAncmVzb3VyY2VBYnN0cmFjdE9iamVjdC5kZWZhdWx0JyxcbiAgICAgICAgICAgICAgICAgICd0YWcucmF3JyxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIGxpa2U6IHRpdGxlLFxuICAgICAgICAgICAgICAgIG1pbl90ZXJtX2ZyZXE6IDEsXG4gICAgICAgICAgICAgICAgbWF4X3F1ZXJ5X3Rlcm1zOiAxMixcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHRlcm1zOiB7XG4gICAgICAgICAgICAgICAgaXNUZW1wbGF0ZTogWyduJ10sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0ZXJtczoge1xuICAgICAgICAgICAgICAgIGRyYWZ0OiBbJ24nLCAnZSddLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICAgIG11c3Rfbm90OiBbeyB3aWxkY2FyZDogeyB1dWlkOiB1dWlkIH0gfV0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgc2l6ZSxcbiAgICAgIF9zb3VyY2UsXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBidWlsZFBheWxvYWRTb3J0KHNvcnRCeTogU29ydEJ5RmllbGQpOiBTb3J0UGFyYW1zIHtcbiAgICBpZiAoc29ydEJ5ID09PSBudWxsKSByZXR1cm4gdW5kZWZpbmVkXG4gICAgY29uc3QgZmllbGRzID0gQXJyYXkuaXNBcnJheShzb3J0QnlbMF0pID8gc29ydEJ5IDogW3NvcnRCeV1cbiAgICByZXR1cm4gZmllbGRzLm1hcCgoZmllbGQpID0+ICh7IFtmaWVsZFsxXV06IGZpZWxkWzBdIH0pKVxuICB9XG5cbiAgcHJpdmF0ZSBpbmplY3RMYW5nSW5RdWVyeVN0cmluZ0ZpZWxkcyhcbiAgICBxdWVyeUZpZWxkc1ByaW9yaXR5OiBFc1F1ZXJ5RmllbGRzUHJpb3JpdHlUeXBlXG4gICkge1xuICAgIGNvbnN0IHF1ZXJ5TGFuZyA9IHRoaXMuZ2V0UXVlcnlMYW5nKClcbiAgICByZXR1cm4gT2JqZWN0LmtleXMocXVlcnlGaWVsZHNQcmlvcml0eSkucmVkdWNlKChxdWVyeSwgZmllbGQpID0+IHtcbiAgICAgIGNvbnN0IG11bHRpTGFuZ1JlZ0V4cCA9IC9cXCRcXHtzZWFyY2hMYW5nXFx9L2dcbiAgICAgIGNvbnN0IGlzTXVsdGlsYW5nRmllbGQgPSBtdWx0aUxhbmdSZWdFeHAudGVzdChmaWVsZClcbiAgICAgIGNvbnN0IGZpZWxkUHJpb3JpdHkgPSBxdWVyeUZpZWxkc1ByaW9yaXR5W2ZpZWxkXVxuICAgICAgcmV0dXJuIFtcbiAgICAgICAgLi4ucXVlcnksXG4gICAgICAgIC4uLih0aGlzLmlzQ3VycmVudFNlYXJjaExhbmcoKSAmJiBpc011bHRpbGFuZ0ZpZWxkXG4gICAgICAgICAgPyBbXG4gICAgICAgICAgICAgIGAke2ZpZWxkLnJlcGxhY2UobXVsdGlMYW5nUmVnRXhwLCBxdWVyeUxhbmcpfV4ke1xuICAgICAgICAgICAgICAgIGZpZWxkUHJpb3JpdHkgKyAxMFxuICAgICAgICAgICAgICB9YCxcbiAgICAgICAgICAgICAgZmllbGQucmVwbGFjZShtdWx0aUxhbmdSZWdFeHAsICcqJykgK1xuICAgICAgICAgICAgICAgIChmaWVsZFByaW9yaXR5ID4gMSA/IGBeJHtmaWVsZFByaW9yaXR5fWAgOiAnJyksXG4gICAgICAgICAgICBdXG4gICAgICAgICAgOiBbXG4gICAgICAgICAgICAgIGZpZWxkLnJlcGxhY2UobXVsdGlMYW5nUmVnRXhwLCBxdWVyeUxhbmcpICtcbiAgICAgICAgICAgICAgICAoZmllbGRQcmlvcml0eSA+IDEgPyBgXiR7ZmllbGRQcmlvcml0eX1gIDogJycpLFxuICAgICAgICAgICAgXSksXG4gICAgICBdXG4gICAgfSwgW10pXG4gIH1cblxuICBwcml2YXRlIGdldFF1ZXJ5TGFuZygpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLm1ldGFkYXRhTGFuZykge1xuICAgICAgcmV0dXJuIHRoaXMuaXNDdXJyZW50U2VhcmNoTGFuZygpXG4gICAgICAgID8gYGxhbmcke3RoaXMubGFuZzN9YFxuICAgICAgICA6IGBsYW5nJHt0aGlzLm1ldGFkYXRhTGFuZ31gXG4gICAgfSBlbHNlIHJldHVybiAnKidcbiAgfVxuICBwcml2YXRlIGlzQ3VycmVudFNlYXJjaExhbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMubWV0YWRhdGFMYW5nID09PSAnY3VycmVudCdcbiAgfVxuXG4gIHByaXZhdGUgZmlsdGVyc1RvUXVlcnlTdHJpbmcoZmlsdGVyczogRmllbGRGaWx0ZXJzKTogc3RyaW5nIHtcbiAgICBjb25zdCBtYWtlUXVlcnkgPSAoZmlsdGVyOiBGaWVsZEZpbHRlcik6IHN0cmluZyA9PiB7XG4gICAgICBpZiAodHlwZW9mIGZpbHRlciA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIGZpbHRlclxuICAgICAgfVxuICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKGZpbHRlcilcbiAgICAgICAgLm1hcCgoa2V5KSA9PiB7XG4gICAgICAgICAgaWYgKGZpbHRlcltrZXldID09PSB0cnVlKSB7XG4gICAgICAgICAgICByZXR1cm4gYFwiJHtrZXl9XCJgXG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBgLVwiJHtrZXl9XCJgXG4gICAgICAgIH0pXG4gICAgICAgIC5qb2luKCcgT1IgJylcbiAgICB9XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKGZpbHRlcnMpXG4gICAgICAuZmlsdGVyKFxuICAgICAgICAoZmllbGRuYW1lKSA9PlxuICAgICAgICAgIGZpbHRlcnNbZmllbGRuYW1lXSAmJiBKU09OLnN0cmluZ2lmeShmaWx0ZXJzW2ZpZWxkbmFtZV0pICE9PSAne30nXG4gICAgICApXG4gICAgICAubWFwKChmaWVsZG5hbWUpID0+IGAke2ZpZWxkbmFtZX06KCR7bWFrZVF1ZXJ5KGZpbHRlcnNbZmllbGRuYW1lXSl9KWApXG4gICAgICAuam9pbignIEFORCAnKVxuICB9XG5cbiAgcHJpdmF0ZSBidWlsZFBheWxvYWRRdWVyeShcbiAgICB7IGFueSwgLi4uZmllbGRTZWFyY2hGaWx0ZXJzIH06IFNlYXJjaEZpbHRlcnMsXG4gICAgY29uZmlnRmlsdGVyczogU2VhcmNoRmlsdGVycyxcbiAgICB1dWlkcz86IHN0cmluZ1tdLFxuICAgIGdlb21ldHJ5PzogR2VvbWV0cnlcbiAgKSB7XG4gICAgY29uc3QgbXVzdCA9IFtdIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+W11cbiAgICBjb25zdCBtdXN0X25vdCA9IHtcbiAgICAgIC4uLnRoaXMucXVlcnlGaWx0ZXJPblZhbHVlcygncmVzb3VyY2VUeXBlJywgW1xuICAgICAgICAnc2VydmljZScsXG4gICAgICAgICdtYXAnLFxuICAgICAgICAnbWFwL3N0YXRpYycsXG4gICAgICAgICdtYXBEaWdpdGFsJyxcbiAgICAgIF0pLFxuICAgIH1cbiAgICBjb25zdCBzaG91bGQgPSBbXSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPltdXG4gICAgY29uc3QgZmlsdGVyID0gW3RoaXMucXVlcnlGaWx0ZXJPblZhbHVlcygnaXNUZW1wbGF0ZScsICduJyldIGFzIFJlY29yZDxcbiAgICAgIHN0cmluZyxcbiAgICAgIHVua25vd25cbiAgICA+W11cblxuICAgIGlmIChhbnkpIHtcbiAgICAgIG11c3QucHVzaCh7XG4gICAgICAgIHF1ZXJ5X3N0cmluZzoge1xuICAgICAgICAgIHF1ZXJ5OiB0aGlzLmVzY2FwZVNwZWNpYWxDaGFyYWN0ZXJzKGFueSksXG4gICAgICAgICAgZGVmYXVsdF9vcGVyYXRvcjogJ0FORCcsXG4gICAgICAgICAgZmllbGRzOiB0aGlzLmluamVjdExhbmdJblF1ZXJ5U3RyaW5nRmllbGRzKEVTX1FVRVJZX0ZJRUxEU19QUklPUklUWSksXG4gICAgICAgIH0sXG4gICAgICB9KVxuICAgIH1cbiAgICBjb25zdCBxdWVyeUZpbHRlcnMgPSB0aGlzLmZpbHRlcnNUb1F1ZXJ5U3RyaW5nKGZpZWxkU2VhcmNoRmlsdGVycylcbiAgICBpZiAocXVlcnlGaWx0ZXJzKSB7XG4gICAgICBmaWx0ZXIucHVzaCh7XG4gICAgICAgIHF1ZXJ5X3N0cmluZzoge1xuICAgICAgICAgIHF1ZXJ5OiBxdWVyeUZpbHRlcnMsXG4gICAgICAgIH0sXG4gICAgICB9KVxuICAgIH1cbiAgICBpZiAodXVpZHMpIHtcbiAgICAgIGZpbHRlci5wdXNoKHtcbiAgICAgICAgaWRzOiB7XG4gICAgICAgICAgdmFsdWVzOiB1dWlkcyxcbiAgICAgICAgfSxcbiAgICAgIH0pXG4gICAgfVxuICAgIGlmIChnZW9tZXRyeSkge1xuICAgICAgc2hvdWxkLnB1c2goXG4gICAgICAgIHtcbiAgICAgICAgICBnZW9fc2hhcGU6IHtcbiAgICAgICAgICAgIGdlb206IHtcbiAgICAgICAgICAgICAgc2hhcGU6IGdlb21ldHJ5LFxuICAgICAgICAgICAgICByZWxhdGlvbjogJ3dpdGhpbicsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYm9vc3Q6IDEwLjAsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGdlb19zaGFwZToge1xuICAgICAgICAgICAgZ2VvbToge1xuICAgICAgICAgICAgICBzaGFwZTogZ2VvbWV0cnksXG4gICAgICAgICAgICAgIHJlbGF0aW9uOiAnaW50ZXJzZWN0cycsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYm9vc3Q6IDcuMCxcbiAgICAgICAgICB9LFxuICAgICAgICB9XG4gICAgICApXG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGJvb2w6IHtcbiAgICAgICAgbXVzdCxcbiAgICAgICAgbXVzdF9ub3QsXG4gICAgICAgIHNob3VsZCxcbiAgICAgICAgZmlsdGVyLFxuICAgICAgfSxcbiAgICB9XG4gIH1cblxuICBidWlsZE1vcmVPbkFnZ3JlZ2F0aW9uUGF5bG9hZChcbiAgICBhZ2dyZWdhdGlvbnM6IGFueSxcbiAgICBrZXk6IHN0cmluZyxcbiAgICBzZWFyY2hGaWx0ZXJzOiBTZWFyY2hGaWx0ZXJzLFxuICAgIGNvbmZpZ0ZpbHRlcnM6IFNlYXJjaEZpbHRlcnNcbiAgKTogRXNTZWFyY2hQYXJhbXMge1xuICAgIHJldHVybiB7XG4gICAgICBhZ2dyZWdhdGlvbnM6IHsgW2tleV06IGFnZ3JlZ2F0aW9uc1trZXldIH0sXG4gICAgICBzaXplOiAwLFxuICAgICAgcXVlcnk6IHRoaXMuYnVpbGRQYXlsb2FkUXVlcnkoc2VhcmNoRmlsdGVycywgY29uZmlnRmlsdGVycyksXG4gICAgfVxuICB9XG5cbiAgcXVlcnlGaWx0ZXJPblZhbHVlcyhrZXksIHZhbHVlcykge1xuICAgIHJldHVybiAhdmFsdWVzIHx8IHZhbHVlcy5sZW5ndGggPD0gMFxuICAgICAgPyB7fVxuICAgICAgOiB7XG4gICAgICAgICAgdGVybXM6IHtcbiAgICAgICAgICAgIFtrZXldOiBbLi4udmFsdWVzXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9XG4gIH1cblxuICBidWlsZEF1dG9jb21wbGV0ZVBheWxvYWQocXVlcnk6IHN0cmluZyk6IEVzU2VhcmNoUGFyYW1zIHtcbiAgICByZXR1cm4ge1xuICAgICAgcXVlcnk6IHtcbiAgICAgICAgYm9vbDoge1xuICAgICAgICAgIG11c3Q6IFtcbiAgICAgICAgICAgIHRoaXMucXVlcnlGaWx0ZXJPblZhbHVlcygnaXNUZW1wbGF0ZScsICduJyksXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG11bHRpX21hdGNoOiB7XG4gICAgICAgICAgICAgICAgcXVlcnksXG4gICAgICAgICAgICAgICAgdHlwZTogJ2Jvb2xfcHJlZml4JyxcbiAgICAgICAgICAgICAgICBmaWVsZHM6IHRoaXMuaW5qZWN0TGFuZ0luUXVlcnlTdHJpbmdGaWVsZHMoe1xuICAgICAgICAgICAgICAgICAgJ3Jlc291cmNlVGl0bGVPYmplY3QuJHtzZWFyY2hMYW5nfSc6IDQsXG4gICAgICAgICAgICAgICAgICAncmVzb3VyY2VBYnN0cmFjdE9iamVjdC4ke3NlYXJjaExhbmd9JzogMyxcbiAgICAgICAgICAgICAgICAgIHRhZzogMixcbiAgICAgICAgICAgICAgICAgIHJlc291cmNlSWRlbnRpZmllcjogMSxcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgICBtdXN0X25vdDoge1xuICAgICAgICAgICAgLi4udGhpcy5xdWVyeUZpbHRlck9uVmFsdWVzKCdyZXNvdXJjZVR5cGUnLCBbXG4gICAgICAgICAgICAgICdzZXJ2aWNlJyxcbiAgICAgICAgICAgICAgJ21hcCcsXG4gICAgICAgICAgICAgICdtYXAvc3RhdGljJyxcbiAgICAgICAgICAgICAgJ21hcERpZ2l0YWwnLFxuICAgICAgICAgICAgXSksXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBfc291cmNlOiBbJ3Jlc291cmNlVGl0bGVPYmplY3QnLCAndXVpZCddLFxuICAgICAgZnJvbTogMCxcbiAgICAgIHNpemU6IDIwLFxuICAgIH1cbiAgfVxuXG4gIGNvbWJpbmVRdWVyeUdyb3VwcyhxdWVyeUdyb3Vwcykge1xuICAgIHJldHVybiBxdWVyeUdyb3VwcyA/IHF1ZXJ5R3JvdXBzLmpvaW4oJyBBTkQgJykudHJpbSgpIDogJydcbiAgfVxuXG4gIC8qKlxuICAgKiBGYWNldHMgc3RhdGUgaXMgYW4gb2JqZWN0IGxpa2UgdGhpczpcbiAgICpcbiAgICoge1xuICAgKiAgICd0YWcnOiB7XG4gICAqICAgICAnd29ybGQnOiB0cnVlLFxuICAgKiAgICAgJ3ZlY3Rvcic6IHRydWVcbiAgICogICB9LFxuICAgKiAgICdhdmFpbGFibGVJblNlcnZpY2UnIDoge1xuICAgKiAgICAgJ2F2YWlsYWJsZUluVmlld1NlcnZpY2UnOiAnK2xpbmtQcm90b2NvbDpcXC9PR0M6V01TLipcXC8nXG4gICAqICAgfSxcbiAgICogICAncmVzb3VyY2VUeXBlJzoge1xuICAgKiAgICAgJ3NlcnZpY2UnOiB7XG4gICAqICAgICAgICdzZXJ2aWNlVHlwZSc6IHtcbiAgICogICAgICAgICAnT0dDOldNUyc6IHRydWVcbiAgICogICAgICAgICAnT0dDOldGUyc6IGZhbHNlXG4gICAqICAgICAgIH1cbiAgICogICAgIH0sXG4gICAqICAgICAnZG93bmxvYWQnOiB7XG4gICAqICAgICAgICdzZXJ2aWNlVHlwZSc6IHtcbiAgICogICAgICAgfVxuICAgKiAgICAgfSxcbiAgICogICAgICdkYXRhc2V0JzogdHJ1ZVxuICAgKiAgIH1cbiAgICogfVxuICAgKi9cbiAgLy8gRklYTUU6IHRoaXMgaXMgbm90IHVzZWQgYW55bW9yZVxuICBzdGF0ZUZpbHRlcnNUb1F1ZXJ5U3RyaW5nKGZhY2V0c1N0YXRlKSB7XG4gICAgY29uc3QgcXVlcnkgPSBbXVxuICAgIGZvciAoY29uc3QgaW5kZXhLZXkgaW4gZmFjZXRzU3RhdGUpIHtcbiAgICAgIGlmIChpbmRleEtleSBpbiBmYWNldHNTdGF0ZSkge1xuICAgICAgICBjb25zdCBxdWVyeUNodW5rID0gdGhpcy5wYXJzZVN0YXRlTm9kZShcbiAgICAgICAgICBpbmRleEtleSxcbiAgICAgICAgICBmYWNldHNTdGF0ZVtpbmRleEtleV0sXG4gICAgICAgICAgdW5kZWZpbmVkXG4gICAgICAgIClcbiAgICAgICAgaWYgKHF1ZXJ5Q2h1bmspIHtcbiAgICAgICAgICBxdWVyeS5wdXNoKHF1ZXJ5Q2h1bmspXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuY29tYmluZVF1ZXJ5R3JvdXBzKHF1ZXJ5KVxuICB9XG5cbiAgLy8gRklYTUU6IHRoaXMgaXMgbm90IHVzZWQgYW55bW9yZVxuICBwcml2YXRlIHBhcnNlU3RhdGVOb2RlKG5vZGVOYW1lLCBub2RlLCBpbmRleEtleSkge1xuICAgIGxldCBxdWVyeVN0cmluZyA9ICcnXG4gICAgaWYgKG5vZGUgJiYgdHlwZW9mIG5vZGUgPT09ICdvYmplY3QnKSB7XG4gICAgICBjb25zdCBjaHVua3MgPSBbXVxuICAgICAgZm9yIChjb25zdCBwIGluIG5vZGUpIHtcbiAgICAgICAgLy8gbmVzdGluZ1xuICAgICAgICBpZiAobm9kZVtwXSAmJiB0eXBlb2Ygbm9kZVtwXSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICBjb25zdCBuZXh0THZsS2V5ID0gT2JqZWN0LmtleXMobm9kZVtwXSlbMF1cbiAgICAgICAgICBjb25zdCBuZXh0THZsU3RhdGUgPSBub2RlW3BdW25leHRMdmxLZXldXG4gICAgICAgICAgaWYgKE9iamVjdC5rZXlzKG5leHRMdmxTdGF0ZSkubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCBuZXN0ZWRDaHVua3MgPSBbbm9kZU5hbWUgKyAnOicgKyAnXCInICsgcCArICdcIiddXG4gICAgICAgICAgICBjb25zdCBjaHVuayA9IHRoaXMucGFyc2VTdGF0ZU5vZGUoXG4gICAgICAgICAgICAgIG5leHRMdmxLZXksXG4gICAgICAgICAgICAgIG5leHRMdmxTdGF0ZSxcbiAgICAgICAgICAgICAgbmV4dEx2bEtleVxuICAgICAgICAgICAgKS50cmltKClcbiAgICAgICAgICAgIGlmIChjaHVuaykge1xuICAgICAgICAgICAgICBuZXN0ZWRDaHVua3MucHVzaChjaHVuaylcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNodW5rcy5wdXNoKCcoJyArIG5lc3RlZENodW5rcy5qb2luKCcgQU5EICcpICsgJyknKVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCBjaHVuayA9IHRoaXMucGFyc2VTdGF0ZU5vZGUocCwgbm9kZVtwXSwgbm9kZU5hbWUpLnRyaW0oKVxuICAgICAgICAgIGlmIChjaHVuaykge1xuICAgICAgICAgICAgY2h1bmtzLnB1c2goY2h1bmspXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoY2h1bmtzICYmIGNodW5rcy5sZW5ndGgpIHtcbiAgICAgICAgcXVlcnlTdHJpbmcgKz0gJygnXG4gICAgICAgIHF1ZXJ5U3RyaW5nICs9IGNodW5rcy5qb2luKCcgJylcbiAgICAgICAgcXVlcnlTdHJpbmcgKz0gJyknXG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0eXBlb2Ygbm9kZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHF1ZXJ5U3RyaW5nICs9IG5vZGVcbiAgICB9IGVsc2UgaWYgKG5vZGUgPT09IHRydWUpIHtcbiAgICAgIHF1ZXJ5U3RyaW5nICs9IGluZGV4S2V5ICsgJzpcIicgKyBub2RlTmFtZSArICdcIidcbiAgICB9IGVsc2UgaWYgKG5vZGUgPT09IGZhbHNlKSB7XG4gICAgICBxdWVyeVN0cmluZyArPSAnLScgKyBpbmRleEtleSArICc6XCInICsgbm9kZU5hbWUgKyAnXCInXG4gICAgfVxuICAgIHJldHVybiBxdWVyeVN0cmluZ1xuICB9XG5cbiAgcHJpdmF0ZSBlc2NhcGVTcGVjaWFsQ2hhcmFjdGVycyhxdWVyeXN0cmluZykge1xuICAgIHJldHVybiBxdWVyeXN0cmluZy5yZXBsYWNlKFxuICAgICAgLyhcXCt8LXxcXC98JiZ8XFx8XFx8fCF8XFx7fFxcfXxcXFt8XFxdXFxefH58XFw/fDp8XFxcXHsxfXxcXCh8XFwpKS9nLFxuICAgICAgJ1xcXFwkMSdcbiAgICApXG4gIH1cblxuICBidWlsZEFnZ3JlZ2F0aW9uc1BheWxvYWQoYWdncmVnYXRpb25zOiBBZ2dyZWdhdGlvbnNQYXJhbXMpOiBhbnkge1xuICAgIGNvbnN0IG1hcFRvRVNBZ2dyZWdhdGlvbiA9IChhZ2dyZWdhdGlvbjogQWdncmVnYXRpb25QYXJhbXMpID0+IHtcbiAgICAgIHN3aXRjaCAoYWdncmVnYXRpb24udHlwZSkge1xuICAgICAgICBjYXNlICdmaWx0ZXJzJzpcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZmlsdGVyczogT2JqZWN0LmtleXMoYWdncmVnYXRpb24uZmlsdGVycykucmVkdWNlKChwcmV2LCBjdXJyKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGZpbHRlciA9IGFnZ3JlZ2F0aW9uLmZpbHRlcnNbY3Vycl1cbiAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5wcmV2LFxuICAgICAgICAgICAgICAgIFtjdXJyXToge1xuICAgICAgICAgICAgICAgICAgcXVlcnlfc3RyaW5nOiB7XG4gICAgICAgICAgICAgICAgICAgIHF1ZXJ5OlxuICAgICAgICAgICAgICAgICAgICAgIHR5cGVvZiBmaWx0ZXIgPT09ICdzdHJpbmcnXG4gICAgICAgICAgICAgICAgICAgICAgICA/IGZpbHRlclxuICAgICAgICAgICAgICAgICAgICAgICAgOiB0aGlzLmZpbHRlcnNUb1F1ZXJ5U3RyaW5nKGZpbHRlciksXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIHt9KSxcbiAgICAgICAgICB9XG4gICAgICAgIGNhc2UgJ3Rlcm1zJzpcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdGVybXM6IHtcbiAgICAgICAgICAgICAgc2l6ZTogYWdncmVnYXRpb24ubGltaXQsXG4gICAgICAgICAgICAgIGZpZWxkOiBhZ2dyZWdhdGlvbi5maWVsZCxcbiAgICAgICAgICAgICAgb3JkZXI6IHtcbiAgICAgICAgICAgICAgICBbYF8ke2FnZ3JlZ2F0aW9uLnNvcnRbMV19YF06IGFnZ3JlZ2F0aW9uLnNvcnRbMF0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH1cbiAgICAgICAgY2FzZSAnaGlzdG9ncmFtJzpcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaGlzdG9ncmFtOiB7XG4gICAgICAgICAgICAgIGZpZWxkOiBhZ2dyZWdhdGlvbi5maWVsZCxcbiAgICAgICAgICAgICAgaW50ZXJ2YWw6IGFnZ3JlZ2F0aW9uLmludGVydmFsLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBPYmplY3Qua2V5cyhhZ2dyZWdhdGlvbnMpLnJlZHVjZShcbiAgICAgIChwcmV2LCBjdXJyKSA9PiAoe1xuICAgICAgICAuLi5wcmV2LFxuICAgICAgICBbY3Vycl06IG1hcFRvRVNBZ2dyZWdhdGlvbihhZ2dyZWdhdGlvbnNbY3Vycl0pLFxuICAgICAgfSksXG4gICAgICB7fVxuICAgIClcbiAgfVxuXG4gIHBhcnNlQWdncmVnYXRpb25SZXN1bHQoXG4gICAgcmVzdWx0OiBBZ2dyZWdhdGlvblJlc3VsdCxcbiAgICByZXF1ZXN0UGFyYW06IEFnZ3JlZ2F0aW9uUGFyYW1zXG4gICk6IEFnZ3JlZ2F0aW9uIHtcbiAgICBzd2l0Y2ggKHJlcXVlc3RQYXJhbS50eXBlKSB7XG4gICAgICBjYXNlICdmaWx0ZXJzJzpcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBidWNrZXRzOiBPYmplY3Qua2V5cyhcbiAgICAgICAgICAgIChyZXN1bHQgYXMgRmlsdGVyc0FnZ3JlZ2F0aW9uUmVzdWx0KS5idWNrZXRzXG4gICAgICAgICAgKS5tYXAoKGtleSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgYnVja2V0ID0gKHJlc3VsdCBhcyBGaWx0ZXJzQWdncmVnYXRpb25SZXN1bHQpLmJ1Y2tldHNba2V5XVxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgdGVybToga2V5LFxuICAgICAgICAgICAgICBjb3VudDogYnVja2V0LmRvY19jb3VudCxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSxcbiAgICAgICAgfVxuICAgICAgY2FzZSAndGVybXMnOlxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGJ1Y2tldHM6IChyZXN1bHQgYXMgVGVybXNBZ2dyZWdhdGlvblJlc3VsdCkuYnVja2V0cy5tYXAoKGJ1Y2tldCkgPT4gKHtcbiAgICAgICAgICAgIHRlcm06IGJ1Y2tldC5rZXksXG4gICAgICAgICAgICBjb3VudDogYnVja2V0LmRvY19jb3VudCxcbiAgICAgICAgICB9KSksXG4gICAgICAgIH1cbiAgICAgIGNhc2UgJ2hpc3RvZ3JhbSc6IHtcbiAgICAgICAgY29uc3QgaGlzdG9ncmFtUmVzdWx0ID0gcmVzdWx0IGFzIEhpc3RvZ3JhbUFnZ3JlZ2F0aW9uUmVzdWx0XG4gICAgICAgIGxldCBidWNrZXRzID0gQXJyYXkuaXNBcnJheShoaXN0b2dyYW1SZXN1bHQuYnVja2V0cylcbiAgICAgICAgICA/IGhpc3RvZ3JhbVJlc3VsdC5idWNrZXRzXG4gICAgICAgICAgOiBPYmplY3Qua2V5cyhoaXN0b2dyYW1SZXN1bHQuYnVja2V0cykubWFwKFxuICAgICAgICAgICAgICAoa2V5KSA9PiBoaXN0b2dyYW1SZXN1bHQuYnVja2V0c1trZXldXG4gICAgICAgICAgICApXG4gICAgICAgIGJ1Y2tldHMgPSBidWNrZXRzLm1hcCgoYnVja2V0LCBpbmRleCkgPT4gKHtcbiAgICAgICAgICBsb3dWYWx1ZTogYnVja2V0LmtleSxcbiAgICAgICAgICBoaWdoVmFsdWU6IGJ1Y2tldHNbaW5kZXggKyAxXT8ua2V5LCAvLyB0aGlzIHdpbGwgcmV0dXJuIHVuZGVmaW5lZCBvbiB0aGUgbGFzdCBlbGVtZW50ICh3aGljaCB3ZSByZW1vdmUgbGF0ZXIpXG4gICAgICAgICAgY291bnQ6IGJ1Y2tldC5kb2NfY291bnQsXG4gICAgICAgIH0pKVxuICAgICAgICBidWNrZXRzLnBvcCgpIC8vIHNlZSBhYm92ZVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGJ1Y2tldHMsXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
497
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxhc3RpY3NlYXJjaC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hcGkvcmVwb3NpdG9yeS9zcmMvbGliL2duNC9lbGFzdGljc2VhcmNoL2VsYXN0aWNzZWFyY2guc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFFNUQsT0FBTyxFQUNMLHdCQUF3QixFQUN4QixpQkFBaUIsR0FFbEIsTUFBTSxZQUFZLENBQUE7QUFXbkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUE7QUFXM0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlDQUF5QyxDQUFBO0FBQ3JFLE9BQU8sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUE7OztBQU81RCxNQUFNLE9BQU8sb0JBQW9CO0lBTS9CLFlBQ1UsV0FBd0IsRUFDZSxZQUFvQjtRQUQzRCxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUNlLGlCQUFZLEdBQVosWUFBWSxDQUFRO1FBUHJFLHNEQUFzRDtRQUN0RCxtR0FBbUc7UUFDM0Ysa0JBQWEsR0FBMkIsRUFBRSxDQUFBO1FBQzFDLFVBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQTtJQUtsQyxDQUFDO0lBRUosb0JBQW9CLENBQ2xCLGVBQW9CLEVBQUUsRUFDdEIsSUFBSSxHQUFHLENBQUMsRUFDUixJQUFJLEdBQUcsQ0FBQyxFQUNSLFNBQXNCLElBQUksRUFDMUIsZ0JBQStCLEVBQUUsRUFDakMsZ0JBQStCLEVBQUUsRUFDakMsZ0JBQStCLEVBQUUsRUFDakMsS0FBZ0IsRUFDaEIsUUFBbUI7UUFFbkIsTUFBTSxPQUFPLEdBQUc7WUFDZCxZQUFZO1lBQ1osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQztZQUNuQyxLQUFLLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUMzQixhQUFhLEVBQ2IsYUFBYSxFQUNiLEtBQUssRUFDTCxRQUFRLENBQ1Q7WUFDRCxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQy9DLE9BQU8sRUFBRSxhQUFhO1NBQ3ZCLENBQUE7UUFDRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDbEMsT0FBTyxPQUFPLENBQUE7SUFDaEIsQ0FBQztJQUVELGlDQUFpQztJQUN6QixvQkFBb0IsQ0FBQyxPQUF1QjtRQUNsRCxNQUFNLFVBQVUsR0FBRyxDQUFDLFNBQWlCLEVBQUUsRUFBRTtZQUN2QyxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQjtnQkFBRSxPQUFPLENBQUMsZ0JBQWdCLEdBQUcsRUFBRSxDQUFBO1lBQzVELE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsR0FBRztnQkFDcEMsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsTUFBTSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDO2FBQ3RDLENBQUE7UUFDSCxDQUFDLENBQUE7UUFDRCxNQUFNLFlBQVksR0FBRyxDQUFDLElBQWEsRUFBRSxFQUFFO1lBQ3JDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDdkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQTtnQkFDMUIsT0FBTTthQUNQO1lBQ0QsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRO2dCQUFFLE9BQU07WUFDcEMsSUFBSSxPQUFPLElBQUksSUFBSSxJQUFJLE9BQU8sSUFBSSxDQUFDLEtBQUssS0FBSyxRQUFRLEVBQUU7Z0JBQ3JELElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO29CQUNwQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO2lCQUN2QjthQUNGO1lBQ0QsS0FBSyxNQUFNLFlBQVksSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO2dCQUM3QyxJQUNFLFlBQVksSUFBSSxJQUFJO29CQUNwQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxLQUFLLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLE1BQU0sQ0FBQyxFQUMvRDtvQkFDQSxVQUFVLENBQUMsWUFBWSxDQUFDLENBQUE7aUJBQ3pCO2dCQUNELElBQ0UsT0FBTyxJQUFJLElBQUk7b0JBQ2YsT0FBTyxJQUFJLENBQUMsS0FBSyxLQUFLLFFBQVE7b0JBQzlCLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFlBQVksR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsRUFDM0M7b0JBQ0EsVUFBVSxDQUFDLFlBQVksQ0FBQyxDQUFBO2lCQUN6QjthQUNGO1lBQ0QsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLEVBQUU7Z0JBQ3RCLElBQUksT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssUUFBUTtvQkFBRSxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUE7YUFDM0Q7UUFDSCxDQUFDLENBQUE7UUFDRCxZQUFZLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFBO1FBQ2xDLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDMUIsWUFBWSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUMzQixPQUFPLE9BQU8sQ0FBQTtJQUNoQixDQUFDO0lBRUQsb0JBQW9CLENBQUMsU0FBaUIsRUFBRSxVQUFrQjtRQUN4RCxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxHQUFHLFVBQVUsQ0FBQTtJQUM1QyxDQUFDO0lBRUQsc0JBQXNCLENBQUMsSUFBWTtRQUNqQyxPQUFPO1lBQ0wsS0FBSyxFQUFFO2dCQUNMLEdBQUcsRUFBRTtvQkFDSCxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUM7aUJBQ2Y7YUFDRjtTQUNGLENBQUE7SUFDSCxDQUFDO0lBRUQsdUJBQXVCLENBQ3JCLEtBQWEsRUFDYixJQUFZLEVBQ1osSUFBSSxHQUFHLENBQUMsRUFDUixPQUFPLEdBQUcsQ0FBQyxHQUFHLGlCQUFpQixFQUFFLGFBQWEsRUFBRSxZQUFZLENBQUM7UUFFN0QsT0FBTztZQUNMLEtBQUssRUFBRTtnQkFDTCxJQUFJLEVBQUU7b0JBQ0osSUFBSSxFQUFFO3dCQUNKOzRCQUNFLGNBQWMsRUFBRTtnQ0FDZCxNQUFNLEVBQUU7b0NBQ04sNkJBQTZCO29DQUM3QixnQ0FBZ0M7b0NBQ2hDLFNBQVM7aUNBQ1Y7Z0NBQ0QsSUFBSSxFQUFFLEtBQUs7Z0NBQ1gsYUFBYSxFQUFFLENBQUM7Z0NBQ2hCLGVBQWUsRUFBRSxFQUFFOzZCQUNwQjt5QkFDRjt3QkFDRDs0QkFDRSxLQUFLLEVBQUU7Z0NBQ0wsVUFBVSxFQUFFLENBQUMsR0FBRyxDQUFDOzZCQUNsQjt5QkFDRjt3QkFDRDs0QkFDRSxLQUFLLEVBQUU7Z0NBQ0wsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQzs2QkFDbEI7eUJBQ0Y7cUJBQ0Y7b0JBQ0QsUUFBUSxFQUFFLENBQUMsRUFBRSxRQUFRLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQztpQkFDekM7YUFDRjtZQUNELElBQUk7WUFDSixPQUFPO1NBQ1IsQ0FBQTtJQUNILENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxNQUFtQjtRQUMxQyxJQUFJLE1BQU0sS0FBSyxJQUFJO1lBQUUsT0FBTyxTQUFTLENBQUE7UUFDckMsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQzNELE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO0lBQzFELENBQUM7SUFFTyw2QkFBNkIsQ0FDbkMsbUJBQThDO1FBRTlDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQTtRQUNyQyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDOUQsTUFBTSxlQUFlLEdBQUcsbUJBQW1CLENBQUE7WUFDM0MsTUFBTSxnQkFBZ0IsR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO1lBQ3BELE1BQU0sYUFBYSxHQUFHLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFBO1lBQ2hELE9BQU87Z0JBQ0wsR0FBRyxLQUFLO2dCQUNSLEdBQUcsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxnQkFBZ0I7b0JBQ2hELENBQUMsQ0FBQzt3QkFDRSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFLFNBQVMsQ0FBQyxJQUMxQyxhQUFhLEdBQUcsRUFDbEIsRUFBRTt3QkFDRixLQUFLLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSxHQUFHLENBQUM7NEJBQ2pDLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO3FCQUNqRDtvQkFDSCxDQUFDLENBQUM7d0JBQ0UsS0FBSyxDQUFDLE9BQU8sQ0FBQyxlQUFlLEVBQUUsU0FBUyxDQUFDOzRCQUN2QyxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztxQkFDakQsQ0FBQzthQUNQLENBQUE7UUFDSCxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUE7SUFDUixDQUFDO0lBRU8sWUFBWTtRQUNsQixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDckIsT0FBTyxJQUFJLENBQUMsbUJBQW1CLEVBQUU7Z0JBQy9CLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxLQUFLLEVBQUU7Z0JBQ3JCLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQTtTQUMvQjs7WUFBTSxPQUFPLEdBQUcsQ0FBQTtJQUNuQixDQUFDO0lBQ08sbUJBQW1CO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLFlBQVksS0FBSyxTQUFTLENBQUE7SUFDeEMsQ0FBQztJQUVPLGNBQWMsQ0FDcEIsT0FBeUQ7UUFFekQsTUFBTSxTQUFTLEdBQUcsQ0FBQyxNQUFtQixFQUFVLEVBQUU7WUFDaEQsSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLEVBQUU7Z0JBQzlCLE9BQU8sTUFBTSxDQUFBO2FBQ2Q7WUFDRCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO2lCQUN2QixHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDWCxJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxJQUFJLEVBQUU7b0JBQ3hCLE9BQU8sSUFBSSxHQUFHLEdBQUcsQ0FBQTtpQkFDbEI7Z0JBQ0QsT0FBTyxLQUFLLEdBQUcsR0FBRyxDQUFBO1lBQ3BCLENBQUMsQ0FBQztpQkFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDakIsQ0FBQyxDQUFBO1FBQ0QsTUFBTSxXQUFXLEdBQ2YsT0FBTyxPQUFPLEtBQUssUUFBUTtZQUN6QixDQUFDLENBQUMsT0FBTztZQUNULENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztpQkFDakIsTUFBTSxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztpQkFDdkQsTUFBTSxDQUNMLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FDWixPQUFPLENBQUMsU0FBUyxDQUFDO2dCQUNsQixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FDOUM7aUJBQ0EsR0FBRyxDQUNGLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxHQUFHLFNBQVMsS0FBSyxTQUFTLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FDakU7aUJBQ0EsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQ3RCLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDO2FBQ3ZDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ3pDLEdBQUcsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQyxFQUFFLEVBQUU7WUFDaEMsT0FBTztnQkFDTCxXQUFXO2dCQUNYLFNBQVM7YUFJVixDQUFBO1FBQ0gsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDUCxNQUFNLFVBQVUsR0FBRztZQUNqQixXQUFXLElBQUk7Z0JBQ2IsWUFBWSxFQUFFO29CQUNaLEtBQUssRUFBRSxXQUFXO2lCQUNuQjthQUNGO1lBQ0QsVUFBVTtnQkFDUixVQUFVLENBQUMsU0FBUyxJQUFJO2dCQUN0QixLQUFLLEVBQUU7b0JBQ0wsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLEVBQUU7d0JBQ3hCLEdBQUcsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEtBQUssSUFBSTs0QkFDaEMsR0FBRyxFQUFFLFVBQVUsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQzt5QkFDNUMsQ0FBQzt3QkFDRixHQUFHLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUk7NEJBQzlCLEdBQUcsRUFBRSxVQUFVLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUM7eUJBQzFDLENBQUM7d0JBQ0YsTUFBTSxFQUFFLFlBQVk7cUJBQ3JCO2lCQUNGO2FBQ0Y7U0FDSixDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUNqQixPQUFPLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBRSxVQUEwQixDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUE7SUFDeEUsQ0FBQztJQUVPLGlCQUFpQixDQUN2QixFQUFFLEdBQUcsRUFBRSxHQUFHLGtCQUFrQixFQUFpQixFQUM3QyxhQUE0QixFQUM1QixLQUFnQixFQUNoQixRQUFtQjtRQUVuQixNQUFNLElBQUksR0FBRyxFQUErQixDQUFBO1FBQzVDLE1BQU0sUUFBUSxHQUFHO1lBQ2YsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsY0FBYyxFQUFFO2dCQUMxQyxTQUFTO2dCQUNULEtBQUs7Z0JBQ0wsWUFBWTtnQkFDWixZQUFZO2FBQ2IsQ0FBQztTQUNILENBQUE7UUFDRCxNQUFNLE1BQU0sR0FBRyxFQUErQixDQUFBO1FBQzlDLE1BQU0sTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFlBQVksRUFBRSxHQUFHLENBQUMsQ0FHeEQsQ0FBQTtRQUVILElBQUksR0FBRyxFQUFFO1lBQ1AsSUFBSSxDQUFDLElBQUksQ0FBQztnQkFDUixZQUFZLEVBQUU7b0JBQ1osS0FBSyxFQUFFLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxHQUFHLENBQUM7b0JBQ3hDLGdCQUFnQixFQUFFLEtBQUs7b0JBQ3ZCLE1BQU0sRUFBRSxJQUFJLENBQUMsNkJBQTZCLENBQUMsd0JBQXdCLENBQUM7aUJBQ3JFO2FBQ0YsQ0FBQyxDQUFBO1NBQ0g7UUFDRCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGtCQUFrQixDQUFDLENBQUE7UUFDNUQsSUFBSSxZQUFZLEVBQUU7WUFDaEIsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLFlBQVksQ0FBQyxDQUFBO1NBQzdCO1FBQ0QsSUFBSSxLQUFLLEVBQUU7WUFDVCxNQUFNLENBQUMsSUFBSSxDQUFDO2dCQUNWLEdBQUcsRUFBRTtvQkFDSCxNQUFNLEVBQUUsS0FBSztpQkFDZDthQUNGLENBQUMsQ0FBQTtTQUNIO1FBQ0QsSUFBSSxRQUFRLEVBQUU7WUFDWixNQUFNLENBQUMsSUFBSSxDQUNUO2dCQUNFLFNBQVMsRUFBRTtvQkFDVCxJQUFJLEVBQUU7d0JBQ0osS0FBSyxFQUFFLFFBQVE7d0JBQ2YsUUFBUSxFQUFFLFFBQVE7cUJBQ25CO29CQUNELEtBQUssRUFBRSxJQUFJO2lCQUNaO2FBQ0YsRUFDRDtnQkFDRSxTQUFTLEVBQUU7b0JBQ1QsSUFBSSxFQUFFO3dCQUNKLEtBQUssRUFBRSxRQUFRO3dCQUNmLFFBQVEsRUFBRSxZQUFZO3FCQUN2QjtvQkFDRCxLQUFLLEVBQUUsR0FBRztpQkFDWDthQUNGLENBQ0YsQ0FBQTtTQUNGO1FBRUQsT0FBTztZQUNMLElBQUksRUFBRTtnQkFDSixJQUFJO2dCQUNKLFFBQVE7Z0JBQ1IsTUFBTTtnQkFDTixNQUFNO2FBQ1A7U0FDRixDQUFBO0lBQ0gsQ0FBQztJQUVELDZCQUE2QixDQUMzQixZQUFpQixFQUNqQixHQUFXLEVBQ1gsYUFBNEIsRUFDNUIsYUFBNEI7UUFFNUIsT0FBTztZQUNMLFlBQVksRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQzFDLElBQUksRUFBRSxDQUFDO1lBQ1AsS0FBSyxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsYUFBYSxDQUFDO1NBQzVELENBQUE7SUFDSCxDQUFDO0lBRUQsbUJBQW1CLENBQUMsR0FBRyxFQUFFLE1BQU07UUFDN0IsT0FBTyxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsTUFBTSxJQUFJLENBQUM7WUFDbEMsQ0FBQyxDQUFDLEVBQUU7WUFDSixDQUFDLENBQUM7Z0JBQ0UsS0FBSyxFQUFFO29CQUNMLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FBQztpQkFDbkI7YUFDRixDQUFBO0lBQ1AsQ0FBQztJQUVELHdCQUF3QixDQUFDLEtBQWE7UUFDcEMsT0FBTztZQUNMLEtBQUssRUFBRTtnQkFDTCxJQUFJLEVBQUU7b0JBQ0osSUFBSSxFQUFFO3dCQUNKLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLEVBQUUsR0FBRyxDQUFDO3dCQUMzQzs0QkFDRSxXQUFXLEVBQUU7Z0NBQ1gsS0FBSztnQ0FDTCxJQUFJLEVBQUUsYUFBYTtnQ0FDbkIsTUFBTSxFQUFFLElBQUksQ0FBQyw2QkFBNkIsQ0FBQztvQ0FDekMsbUNBQW1DLEVBQUUsQ0FBQztvQ0FDdEMsc0NBQXNDLEVBQUUsQ0FBQztvQ0FDekMsR0FBRyxFQUFFLENBQUM7b0NBQ04sa0JBQWtCLEVBQUUsQ0FBQztpQ0FDdEIsQ0FBQzs2QkFDSDt5QkFDRjtxQkFDRjtvQkFDRCxRQUFRLEVBQUU7d0JBQ1IsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsY0FBYyxFQUFFOzRCQUMxQyxTQUFTOzRCQUNULEtBQUs7NEJBQ0wsWUFBWTs0QkFDWixZQUFZO3lCQUNiLENBQUM7cUJBQ0g7aUJBQ0Y7YUFDRjtZQUNELE9BQU8sRUFBRSxDQUFDLHFCQUFxQixFQUFFLE1BQU0sQ0FBQztZQUN4QyxJQUFJLEVBQUUsQ0FBQztZQUNQLElBQUksRUFBRSxFQUFFO1NBQ1QsQ0FBQTtJQUNILENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxXQUFXO1FBQzVCLE9BQU8sV0FBVyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUE7SUFDNUQsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09BeUJHO0lBQ0gsa0NBQWtDO0lBQ2xDLHlCQUF5QixDQUFDLFdBQVc7UUFDbkMsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFBO1FBQ2hCLEtBQUssTUFBTSxRQUFRLElBQUksV0FBVyxFQUFFO1lBQ2xDLElBQUksUUFBUSxJQUFJLFdBQVcsRUFBRTtnQkFDM0IsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FDcEMsUUFBUSxFQUNSLFdBQVcsQ0FBQyxRQUFRLENBQUMsRUFDckIsU0FBUyxDQUNWLENBQUE7Z0JBQ0QsSUFBSSxVQUFVLEVBQUU7b0JBQ2QsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQTtpQkFDdkI7YUFDRjtTQUNGO1FBQ0QsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDdkMsQ0FBQztJQUVELGtDQUFrQztJQUMxQixjQUFjLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxRQUFRO1FBQzdDLElBQUksV0FBVyxHQUFHLEVBQUUsQ0FBQTtRQUNwQixJQUFJLElBQUksSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUU7WUFDcEMsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFBO1lBQ2pCLEtBQUssTUFBTSxDQUFDLElBQUksSUFBSSxFQUFFO2dCQUNwQixVQUFVO2dCQUNWLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLFFBQVEsRUFBRTtvQkFDMUMsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtvQkFDMUMsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFBO29CQUN4QyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsTUFBTSxFQUFFO3dCQUNwQyxNQUFNLFlBQVksR0FBRyxDQUFDLFFBQVEsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQTt3QkFDckQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FDL0IsVUFBVSxFQUNWLFlBQVksRUFDWixVQUFVLENBQ1gsQ0FBQyxJQUFJLEVBQUUsQ0FBQTt3QkFDUixJQUFJLEtBQUssRUFBRTs0QkFDVCxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO3lCQUN6Qjt3QkFDRCxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFBO3FCQUNwRDtpQkFDRjtxQkFBTTtvQkFDTCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUE7b0JBQzlELElBQUksS0FBSyxFQUFFO3dCQUNULE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7cUJBQ25CO2lCQUNGO2FBQ0Y7WUFDRCxJQUFJLE1BQU0sSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFO2dCQUMzQixXQUFXLElBQUksR0FBRyxDQUFBO2dCQUNsQixXQUFXLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtnQkFDL0IsV0FBVyxJQUFJLEdBQUcsQ0FBQTthQUNuQjtTQUNGO2FBQU0sSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUU7WUFDbkMsV0FBVyxJQUFJLElBQUksQ0FBQTtTQUNwQjthQUFNLElBQUksSUFBSSxLQUFLLElBQUksRUFBRTtZQUN4QixXQUFXLElBQUksUUFBUSxHQUFHLElBQUksR0FBRyxRQUFRLEdBQUcsR0FBRyxDQUFBO1NBQ2hEO2FBQU0sSUFBSSxJQUFJLEtBQUssS0FBSyxFQUFFO1lBQ3pCLFdBQVcsSUFBSSxHQUFHLEdBQUcsUUFBUSxHQUFHLElBQUksR0FBRyxRQUFRLEdBQUcsR0FBRyxDQUFBO1NBQ3REO1FBQ0QsT0FBTyxXQUFXLENBQUE7SUFDcEIsQ0FBQztJQUVPLHVCQUF1QixDQUFDLFdBQVc7UUFDekMsT0FBTyxXQUFXLENBQUMsT0FBTyxDQUN4Qix1REFBdUQsRUFDdkQsTUFBTSxDQUNQLENBQUE7SUFDSCxDQUFDO0lBRUQsd0JBQXdCLENBQUMsWUFBZ0M7UUFDdkQsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLFdBQThCLEVBQUUsRUFBRTtZQUM1RCxRQUFRLFdBQVcsQ0FBQyxJQUFJLEVBQUU7Z0JBQ3hCLEtBQUssU0FBUztvQkFDWixPQUFPO3dCQUNMLE9BQU8sRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUU7NEJBQzlELE1BQU0sTUFBTSxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUE7NEJBQ3hDLE9BQU87Z0NBQ0wsR0FBRyxJQUFJO2dDQUNQLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7NkJBQ3ZDLENBQUE7d0JBQ0gsQ0FBQyxFQUFFLEVBQUUsQ0FBQztxQkFDUCxDQUFBO2dCQUNILEtBQUssT0FBTztvQkFDVixPQUFPO3dCQUNMLEtBQUssRUFBRTs0QkFDTCxJQUFJLEVBQUUsV0FBVyxDQUFDLEtBQUs7NEJBQ3ZCLEtBQUssRUFBRSxXQUFXLENBQUMsS0FBSzs0QkFDeEIsS0FBSyxFQUFFO2dDQUNMLENBQUMsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQzs2QkFDakQ7eUJBQ0Y7cUJBQ0YsQ0FBQTtnQkFDSCxLQUFLLFdBQVc7b0JBQ2QsT0FBTzt3QkFDTCxTQUFTLEVBQUU7NEJBQ1QsS0FBSyxFQUFFLFdBQVcsQ0FBQyxLQUFLOzRCQUN4QixRQUFRLEVBQUUsV0FBVyxDQUFDLFFBQVE7eUJBQy9CO3FCQUNGLENBQUE7YUFDSjtRQUNILENBQUMsQ0FBQTtRQUNELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxNQUFNLENBQ3JDLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNmLEdBQUcsSUFBSTtZQUNQLENBQUMsSUFBSSxDQUFDLEVBQUUsa0JBQWtCLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQy9DLENBQUMsRUFDRixFQUFFLENBQ0gsQ0FBQTtJQUNILENBQUM7SUFFRCxzQkFBc0IsQ0FDcEIsTUFBeUIsRUFDekIsWUFBK0I7UUFFL0IsUUFBUSxZQUFZLENBQUMsSUFBSSxFQUFFO1lBQ3pCLEtBQUssU0FBUztnQkFDWixPQUFPO29CQUNMLE9BQU8sRUFBRSxNQUFNLENBQUMsSUFBSSxDQUNqQixNQUFtQyxDQUFDLE9BQU8sQ0FDN0MsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTt3QkFDWixNQUFNLE1BQU0sR0FBSSxNQUFtQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQTt3QkFDaEUsT0FBTzs0QkFDTCxJQUFJLEVBQUUsR0FBRzs0QkFDVCxLQUFLLEVBQUUsTUFBTSxDQUFDLFNBQVM7eUJBQ3hCLENBQUE7b0JBQ0gsQ0FBQyxDQUFDO2lCQUNILENBQUE7WUFDSCxLQUFLLE9BQU87Z0JBQ1YsT0FBTztvQkFDTCxPQUFPLEVBQUcsTUFBaUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO3dCQUNuRSxJQUFJLEVBQUUsTUFBTSxDQUFDLEdBQUc7d0JBQ2hCLEtBQUssRUFBRSxNQUFNLENBQUMsU0FBUztxQkFDeEIsQ0FBQyxDQUFDO2lCQUNKLENBQUE7WUFDSCxLQUFLLFdBQVcsQ0FBQyxDQUFDO2dCQUNoQixNQUFNLGVBQWUsR0FBRyxNQUFvQyxDQUFBO2dCQUM1RCxJQUFJLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUM7b0JBQ2xELENBQUMsQ0FBQyxlQUFlLENBQUMsT0FBTztvQkFDekIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FDdEMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQ3RDLENBQUE7Z0JBQ0wsT0FBTyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO29CQUN4QyxRQUFRLEVBQUUsTUFBTSxDQUFDLEdBQUc7b0JBQ3BCLFNBQVMsRUFBRSxPQUFPLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUc7b0JBQ2xDLEtBQUssRUFBRSxNQUFNLENBQUMsU0FBUztpQkFDeEIsQ0FBQyxDQUFDLENBQUE7Z0JBQ0gsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFBLENBQUMsWUFBWTtnQkFDMUIsT0FBTztvQkFDTCxPQUFPO2lCQUNSLENBQUE7YUFDRjtTQUNGO0lBQ0gsQ0FBQzsrR0FsakJVLG9CQUFvQiw2Q0FRVCxpQkFBaUI7bUhBUjVCLG9CQUFvQixjQUZuQixNQUFNOzs0RkFFUCxvQkFBb0I7a0JBSGhDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFTSSxRQUFROzswQkFBSSxNQUFNOzJCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgR2VvbWV0cnkgfSBmcm9tICdnZW9qc29uJ1xuaW1wb3J0IHtcbiAgRVNfUVVFUllfRklFTERTX1BSSU9SSVRZLFxuICBFU19TT1VSQ0VfU1VNTUFSWSxcbiAgRXNRdWVyeUZpZWxkc1ByaW9yaXR5VHlwZSxcbn0gZnJvbSAnLi9jb25zdGFudCdcbmltcG9ydCB7XG4gIEFnZ3JlZ2F0aW9uLFxuICBBZ2dyZWdhdGlvblBhcmFtcyxcbiAgQWdncmVnYXRpb25zUGFyYW1zLFxuICBGaWVsZEZpbHRlcixcbiAgRmllbGRGaWx0ZXJzLFxuICBGaWx0ZXJRdWVyeSxcbiAgRmlsdGVyc0FnZ3JlZ2F0aW9uUGFyYW1zLFxuICBTb3J0QnlGaWVsZCxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvc2VhcmNoJ1xuaW1wb3J0IHsgTUVUQURBVEFfTEFOR1VBR0UgfSBmcm9tICcuLi8uLi9tZXRhZGF0YS1sYW5ndWFnZSdcbmltcG9ydCB7XG4gIEFnZ3JlZ2F0aW9uUmVzdWx0LFxuICBFc1NlYXJjaFBhcmFtcyxcbiAgRmlsdGVyc0FnZ3JlZ2F0aW9uUmVzdWx0LFxuICBIaXN0b2dyYW1BZ2dyZWdhdGlvblJlc3VsdCxcbiAgUmVxdWVzdEZpZWxkcyxcbiAgU2VhcmNoRmlsdGVycyxcbiAgU29ydFBhcmFtcyxcbiAgVGVybXNBZ2dyZWdhdGlvblJlc3VsdCxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hcGkvbWV0YWRhdGEtY29udmVydGVyL3NyYydcbmltcG9ydCB7IExhbmdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91dGlsL2kxOG4vc3JjJ1xuaW1wb3J0IHsgZm9ybWF0RGF0ZSwgaXNEYXRlUmFuZ2UgfSBmcm9tICcuL2RhdGUtcmFuZ2UudXRpbHMnXG5cbmV4cG9ydCB0eXBlIERhdGVSYW5nZSA9IHsgc3RhcnQ/OiBEYXRlOyBlbmQ/OiBEYXRlIH1cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEVsYXN0aWNzZWFyY2hTZXJ2aWNlIHtcbiAgLy8gcnVudGltZSBmaWVsZHMgYXJlIGNvbXB1dGVkIHVzaW5nIGEgUGFpbmxlc3Mgc2NyaXB0XG4gIC8vIHNlZTogaHR0cHM6Ly93d3cuZWxhc3RpYy5jby9ndWlkZS9lbi9lbGFzdGljc2VhcmNoL3JlZmVyZW5jZS9jdXJyZW50L3J1bnRpbWUtbWFwcGluZy1maWVsZHMuaHRtbFxuICBwcml2YXRlIHJ1bnRpbWVGaWVsZHM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fVxuICBwcml2YXRlIGxhbmczID0gdGhpcy5sYW5nU2VydmljZS5pc28zXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBsYW5nU2VydmljZTogTGFuZ1NlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChNRVRBREFUQV9MQU5HVUFHRSkgcHJpdmF0ZSBtZXRhZGF0YUxhbmc6IHN0cmluZ1xuICApIHt9XG5cbiAgZ2V0U2VhcmNoUmVxdWVzdEJvZHkoXG4gICAgYWdncmVnYXRpb25zOiBhbnkgPSB7fSxcbiAgICBzaXplID0gMCxcbiAgICBmcm9tID0gMCxcbiAgICBzb3J0Qnk6IFNvcnRCeUZpZWxkID0gbnVsbCxcbiAgICByZXF1ZXN0RmllbGRzOiBSZXF1ZXN0RmllbGRzID0gW10sXG4gICAgc2VhcmNoRmlsdGVyczogU2VhcmNoRmlsdGVycyA9IHt9LFxuICAgIGNvbmZpZ0ZpbHRlcnM6IFNlYXJjaEZpbHRlcnMgPSB7fSxcbiAgICB1dWlkcz86IHN0cmluZ1tdLFxuICAgIGdlb21ldHJ5PzogR2VvbWV0cnlcbiAgKTogRXNTZWFyY2hQYXJhbXMge1xuICAgIGNvbnN0IHBheWxvYWQgPSB7XG4gICAgICBhZ2dyZWdhdGlvbnMsXG4gICAgICBmcm9tLFxuICAgICAgc2l6ZSxcbiAgICAgIHNvcnQ6IHRoaXMuYnVpbGRQYXlsb2FkU29ydChzb3J0QnkpLFxuICAgICAgcXVlcnk6IHRoaXMuYnVpbGRQYXlsb2FkUXVlcnkoXG4gICAgICAgIHNlYXJjaEZpbHRlcnMsXG4gICAgICAgIGNvbmZpZ0ZpbHRlcnMsXG4gICAgICAgIHV1aWRzLFxuICAgICAgICBnZW9tZXRyeVxuICAgICAgKSxcbiAgICAgIC4uLihzaXplID4gMCA/IHsgdHJhY2tfdG90YWxfaGl0czogdHJ1ZSB9IDoge30pLFxuICAgICAgX3NvdXJjZTogcmVxdWVzdEZpZWxkcyxcbiAgICB9XG4gICAgdGhpcy5wcm9jZXNzUnVudGltZUZpZWxkcyhwYXlsb2FkKVxuICAgIHJldHVybiBwYXlsb2FkXG4gIH1cblxuICAvLyBwYXlsb2FkIG9iamVjdCB3aWxsIGJlIG11dGF0ZWRcbiAgcHJpdmF0ZSBwcm9jZXNzUnVudGltZUZpZWxkcyhwYXlsb2FkOiBFc1NlYXJjaFBhcmFtcyk6IEVzU2VhcmNoUGFyYW1zIHtcbiAgICBjb25zdCBhZGRNYXBwaW5nID0gKGZpZWxkTmFtZTogc3RyaW5nKSA9PiB7XG4gICAgICBpZiAoIXBheWxvYWQucnVudGltZV9tYXBwaW5ncykgcGF5bG9hZC5ydW50aW1lX21hcHBpbmdzID0ge31cbiAgICAgIHBheWxvYWQucnVudGltZV9tYXBwaW5nc1tmaWVsZE5hbWVdID0ge1xuICAgICAgICB0eXBlOiAna2V5d29yZCcsXG4gICAgICAgIHNjcmlwdDogdGhpcy5ydW50aW1lRmllbGRzW2ZpZWxkTmFtZV0sXG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IGxvb2tGb3JGaWVsZCA9IChub2RlOiB1bmtub3duKSA9PiB7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShub2RlKSkge1xuICAgICAgICBub2RlLmZvckVhY2gobG9va0ZvckZpZWxkKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2Ygbm9kZSAhPT0gJ29iamVjdCcpIHJldHVyblxuICAgICAgaWYgKCdmaWVsZCcgaW4gbm9kZSAmJiB0eXBlb2Ygbm9kZS5maWVsZCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgaWYgKG5vZGUuZmllbGQgaW4gdGhpcy5ydW50aW1lRmllbGRzKSB7XG4gICAgICAgICAgYWRkTWFwcGluZyhub2RlLmZpZWxkKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBmb3IgKGNvbnN0IHJ1bnRpbWVGaWVsZCBpbiB0aGlzLnJ1bnRpbWVGaWVsZHMpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHJ1bnRpbWVGaWVsZCBpbiBub2RlICYmXG4gICAgICAgICAgKG5vZGVbcnVudGltZUZpZWxkXSA9PT0gJ2FzYycgfHwgbm9kZVtydW50aW1lRmllbGRdID09PSAnZGVzYycpXG4gICAgICAgICkge1xuICAgICAgICAgIGFkZE1hcHBpbmcocnVudGltZUZpZWxkKVxuICAgICAgICB9XG4gICAgICAgIGlmIChcbiAgICAgICAgICAncXVlcnknIGluIG5vZGUgJiZcbiAgICAgICAgICB0eXBlb2Ygbm9kZS5xdWVyeSA9PT0gJ3N0cmluZycgJiZcbiAgICAgICAgICBub2RlLnF1ZXJ5LmluZGV4T2YocnVudGltZUZpZWxkICsgJzonKSA+IC0xXG4gICAgICAgICkge1xuICAgICAgICAgIGFkZE1hcHBpbmcocnVudGltZUZpZWxkKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBmb3IgKGNvbnN0IGtleSBpbiBub2RlKSB7XG4gICAgICAgIGlmICh0eXBlb2Ygbm9kZVtrZXldID09PSAnb2JqZWN0JykgbG9va0ZvckZpZWxkKG5vZGVba2V5XSlcbiAgICAgIH1cbiAgICB9XG4gICAgbG9va0ZvckZpZWxkKHBheWxvYWQuYWdncmVnYXRpb25zKVxuICAgIGxvb2tGb3JGaWVsZChwYXlsb2FkLnNvcnQpXG4gICAgbG9va0ZvckZpZWxkKHBheWxvYWQucXVlcnkpXG4gICAgcmV0dXJuIHBheWxvYWRcbiAgfVxuXG4gIHJlZ2lzdGVyUnVudGltZUZpZWxkKGZpZWxkTmFtZTogc3RyaW5nLCBleHByZXNzaW9uOiBzdHJpbmcpIHtcbiAgICB0aGlzLnJ1bnRpbWVGaWVsZHNbZmllbGROYW1lXSA9IGV4cHJlc3Npb25cbiAgfVxuXG4gIGdldE1ldGFkYXRhQnlJZFBheWxvYWQodXVpZDogc3RyaW5nKTogRXNTZWFyY2hQYXJhbXMge1xuICAgIHJldHVybiB7XG4gICAgICBxdWVyeToge1xuICAgICAgICBpZHM6IHtcbiAgICAgICAgICB2YWx1ZXM6IFt1dWlkXSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfVxuICB9XG5cbiAgZ2V0UmVsYXRlZFJlY29yZFBheWxvYWQoXG4gICAgdGl0bGU6IHN0cmluZyxcbiAgICB1dWlkOiBzdHJpbmcsXG4gICAgc2l6ZSA9IDYsXG4gICAgX3NvdXJjZSA9IFsuLi5FU19TT1VSQ0VfU1VNTUFSWSwgJ2FsbEtleXdvcmRzJywgJ2NyZWF0ZURhdGUnXVxuICApOiBFc1NlYXJjaFBhcmFtcyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHF1ZXJ5OiB7XG4gICAgICAgIGJvb2w6IHtcbiAgICAgICAgICBtdXN0OiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG1vcmVfbGlrZV90aGlzOiB7XG4gICAgICAgICAgICAgICAgZmllbGRzOiBbXG4gICAgICAgICAgICAgICAgICAncmVzb3VyY2VUaXRsZU9iamVjdC5kZWZhdWx0JyxcbiAgICAgICAgICAgICAgICAgICdyZXNvdXJjZUFic3RyYWN0T2JqZWN0LmRlZmF1bHQnLFxuICAgICAgICAgICAgICAgICAgJ3RhZy5yYXcnLFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgbGlrZTogdGl0bGUsXG4gICAgICAgICAgICAgICAgbWluX3Rlcm1fZnJlcTogMSxcbiAgICAgICAgICAgICAgICBtYXhfcXVlcnlfdGVybXM6IDEyLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdGVybXM6IHtcbiAgICAgICAgICAgICAgICBpc1RlbXBsYXRlOiBbJ24nXSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHRlcm1zOiB7XG4gICAgICAgICAgICAgICAgZHJhZnQ6IFsnbicsICdlJ10sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgICAgbXVzdF9ub3Q6IFt7IHdpbGRjYXJkOiB7IHV1aWQ6IHV1aWQgfSB9XSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBzaXplLFxuICAgICAgX3NvdXJjZSxcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkUGF5bG9hZFNvcnQoc29ydEJ5OiBTb3J0QnlGaWVsZCk6IFNvcnRQYXJhbXMge1xuICAgIGlmIChzb3J0QnkgPT09IG51bGwpIHJldHVybiB1bmRlZmluZWRcbiAgICBjb25zdCBmaWVsZHMgPSBBcnJheS5pc0FycmF5KHNvcnRCeVswXSkgPyBzb3J0QnkgOiBbc29ydEJ5XVxuICAgIHJldHVybiBmaWVsZHMubWFwKChmaWVsZCkgPT4gKHsgW2ZpZWxkWzFdXTogZmllbGRbMF0gfSkpXG4gIH1cblxuICBwcml2YXRlIGluamVjdExhbmdJblF1ZXJ5U3RyaW5nRmllbGRzKFxuICAgIHF1ZXJ5RmllbGRzUHJpb3JpdHk6IEVzUXVlcnlGaWVsZHNQcmlvcml0eVR5cGVcbiAgKSB7XG4gICAgY29uc3QgcXVlcnlMYW5nID0gdGhpcy5nZXRRdWVyeUxhbmcoKVxuICAgIHJldHVybiBPYmplY3Qua2V5cyhxdWVyeUZpZWxkc1ByaW9yaXR5KS5yZWR1Y2UoKHF1ZXJ5LCBmaWVsZCkgPT4ge1xuICAgICAgY29uc3QgbXVsdGlMYW5nUmVnRXhwID0gL1xcJFxce3NlYXJjaExhbmdcXH0vZ1xuICAgICAgY29uc3QgaXNNdWx0aWxhbmdGaWVsZCA9IG11bHRpTGFuZ1JlZ0V4cC50ZXN0KGZpZWxkKVxuICAgICAgY29uc3QgZmllbGRQcmlvcml0eSA9IHF1ZXJ5RmllbGRzUHJpb3JpdHlbZmllbGRdXG4gICAgICByZXR1cm4gW1xuICAgICAgICAuLi5xdWVyeSxcbiAgICAgICAgLi4uKHRoaXMuaXNDdXJyZW50U2VhcmNoTGFuZygpICYmIGlzTXVsdGlsYW5nRmllbGRcbiAgICAgICAgICA/IFtcbiAgICAgICAgICAgICAgYCR7ZmllbGQucmVwbGFjZShtdWx0aUxhbmdSZWdFeHAsIHF1ZXJ5TGFuZyl9XiR7XG4gICAgICAgICAgICAgICAgZmllbGRQcmlvcml0eSArIDEwXG4gICAgICAgICAgICAgIH1gLFxuICAgICAgICAgICAgICBmaWVsZC5yZXBsYWNlKG11bHRpTGFuZ1JlZ0V4cCwgJyonKSArXG4gICAgICAgICAgICAgICAgKGZpZWxkUHJpb3JpdHkgPiAxID8gYF4ke2ZpZWxkUHJpb3JpdHl9YCA6ICcnKSxcbiAgICAgICAgICAgIF1cbiAgICAgICAgICA6IFtcbiAgICAgICAgICAgICAgZmllbGQucmVwbGFjZShtdWx0aUxhbmdSZWdFeHAsIHF1ZXJ5TGFuZykgK1xuICAgICAgICAgICAgICAgIChmaWVsZFByaW9yaXR5ID4gMSA/IGBeJHtmaWVsZFByaW9yaXR5fWAgOiAnJyksXG4gICAgICAgICAgICBdKSxcbiAgICAgIF1cbiAgICB9LCBbXSlcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UXVlcnlMYW5nKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMubWV0YWRhdGFMYW5nKSB7XG4gICAgICByZXR1cm4gdGhpcy5pc0N1cnJlbnRTZWFyY2hMYW5nKClcbiAgICAgICAgPyBgbGFuZyR7dGhpcy5sYW5nM31gXG4gICAgICAgIDogYGxhbmcke3RoaXMubWV0YWRhdGFMYW5nfWBcbiAgICB9IGVsc2UgcmV0dXJuICcqJ1xuICB9XG4gIHByaXZhdGUgaXNDdXJyZW50U2VhcmNoTGFuZygpIHtcbiAgICByZXR1cm4gdGhpcy5tZXRhZGF0YUxhbmcgPT09ICdjdXJyZW50J1xuICB9XG5cbiAgcHJpdmF0ZSBmaWx0ZXJzVG9RdWVyeShcbiAgICBmaWx0ZXJzOiBGaWVsZEZpbHRlcnMgfCBGaWx0ZXJzQWdncmVnYXRpb25QYXJhbXMgfCBzdHJpbmdcbiAgKTogRmlsdGVyUXVlcnkge1xuICAgIGNvbnN0IG1ha2VRdWVyeSA9IChmaWx0ZXI6IEZpZWxkRmlsdGVyKTogc3RyaW5nID0+IHtcbiAgICAgIGlmICh0eXBlb2YgZmlsdGVyID09PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gZmlsdGVyXG4gICAgICB9XG4gICAgICByZXR1cm4gT2JqZWN0LmtleXMoZmlsdGVyKVxuICAgICAgICAubWFwKChrZXkpID0+IHtcbiAgICAgICAgICBpZiAoZmlsdGVyW2tleV0gPT09IHRydWUpIHtcbiAgICAgICAgICAgIHJldHVybiBgXCIke2tleX1cImBcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGAtXCIke2tleX1cImBcbiAgICAgICAgfSlcbiAgICAgICAgLmpvaW4oJyBPUiAnKVxuICAgIH1cbiAgICBjb25zdCBxdWVyeVN0cmluZyA9XG4gICAgICB0eXBlb2YgZmlsdGVycyA9PT0gJ3N0cmluZydcbiAgICAgICAgPyBmaWx0ZXJzXG4gICAgICAgIDogT2JqZWN0LmtleXMoZmlsdGVycylcbiAgICAgICAgICAgIC5maWx0ZXIoKGZpZWxkbmFtZSkgPT4gIWlzRGF0ZVJhbmdlKGZpbHRlcnNbZmllbGRuYW1lXSkpXG4gICAgICAgICAgICAuZmlsdGVyKFxuICAgICAgICAgICAgICAoZmllbGRuYW1lKSA9PlxuICAgICAgICAgICAgICAgIGZpbHRlcnNbZmllbGRuYW1lXSAmJlxuICAgICAgICAgICAgICAgIEpTT04uc3RyaW5naWZ5KGZpbHRlcnNbZmllbGRuYW1lXSkgIT09ICd7fSdcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5tYXAoXG4gICAgICAgICAgICAgIChmaWVsZG5hbWUpID0+IGAke2ZpZWxkbmFtZX06KCR7bWFrZVF1ZXJ5KGZpbHRlcnNbZmllbGRuYW1lXSl9KWBcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5qb2luKCcgQU5EICcpXG4gICAgY29uc3QgcXVlcnlSYW5nZSA9IE9iamVjdC5lbnRyaWVzKGZpbHRlcnMpXG4gICAgICAuZmlsdGVyKChbLCB2YWx1ZV0pID0+IGlzRGF0ZVJhbmdlKHZhbHVlKSlcbiAgICAgIC5tYXAoKFtzZWFyY2hGaWVsZCwgZGF0ZVJhbmdlXSkgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHNlYXJjaEZpZWxkLFxuICAgICAgICAgIGRhdGVSYW5nZSxcbiAgICAgICAgfSBhcyB7XG4gICAgICAgICAgc2VhcmNoRmllbGQ6IHN0cmluZ1xuICAgICAgICAgIGRhdGVSYW5nZTogRGF0ZVJhbmdlXG4gICAgICAgIH1cbiAgICAgIH0pWzBdXG4gICAgY29uc3QgcXVlcnlQYXJ0cyA9IFtcbiAgICAgIHF1ZXJ5U3RyaW5nICYmIHtcbiAgICAgICAgcXVlcnlfc3RyaW5nOiB7XG4gICAgICAgICAgcXVlcnk6IHF1ZXJ5U3RyaW5nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHF1ZXJ5UmFuZ2UgJiZcbiAgICAgICAgcXVlcnlSYW5nZS5kYXRlUmFuZ2UgJiYge1xuICAgICAgICAgIHJhbmdlOiB7XG4gICAgICAgICAgICBbcXVlcnlSYW5nZS5zZWFyY2hGaWVsZF06IHtcbiAgICAgICAgICAgICAgLi4uKHF1ZXJ5UmFuZ2UuZGF0ZVJhbmdlLnN0YXJ0ICYmIHtcbiAgICAgICAgICAgICAgICBndGU6IGZvcm1hdERhdGUocXVlcnlSYW5nZS5kYXRlUmFuZ2Uuc3RhcnQpLFxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgLi4uKHF1ZXJ5UmFuZ2UuZGF0ZVJhbmdlLmVuZCAmJiB7XG4gICAgICAgICAgICAgICAgbHRlOiBmb3JtYXREYXRlKHF1ZXJ5UmFuZ2UuZGF0ZVJhbmdlLmVuZCksXG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICBmb3JtYXQ6ICd5eXl5LU1NLWRkJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICBdLmZpbHRlcihCb29sZWFuKVxuICAgIHJldHVybiBxdWVyeVBhcnRzLmxlbmd0aCA+IDAgPyAocXVlcnlQYXJ0cyBhcyBGaWx0ZXJRdWVyeSkgOiB1bmRlZmluZWRcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRQYXlsb2FkUXVlcnkoXG4gICAgeyBhbnksIC4uLmZpZWxkU2VhcmNoRmlsdGVycyB9OiBTZWFyY2hGaWx0ZXJzLFxuICAgIGNvbmZpZ0ZpbHRlcnM6IFNlYXJjaEZpbHRlcnMsXG4gICAgdXVpZHM/OiBzdHJpbmdbXSxcbiAgICBnZW9tZXRyeT86IEdlb21ldHJ5XG4gICkge1xuICAgIGNvbnN0IG11c3QgPSBbXSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPltdXG4gICAgY29uc3QgbXVzdF9ub3QgPSB7XG4gICAgICAuLi50aGlzLnF1ZXJ5RmlsdGVyT25WYWx1ZXMoJ3Jlc291cmNlVHlwZScsIFtcbiAgICAgICAgJ3NlcnZpY2UnLFxuICAgICAgICAnbWFwJyxcbiAgICAgICAgJ21hcC9zdGF0aWMnLFxuICAgICAgICAnbWFwRGlnaXRhbCcsXG4gICAgICBdKSxcbiAgICB9XG4gICAgY29uc3Qgc2hvdWxkID0gW10gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj5bXVxuICAgIGNvbnN0IGZpbHRlciA9IFt0aGlzLnF1ZXJ5RmlsdGVyT25WYWx1ZXMoJ2lzVGVtcGxhdGUnLCAnbicpXSBhcyBSZWNvcmQ8XG4gICAgICBzdHJpbmcsXG4gICAgICB1bmtub3duXG4gICAgPltdXG5cbiAgICBpZiAoYW55KSB7XG4gICAgICBtdXN0LnB1c2goe1xuICAgICAgICBxdWVyeV9zdHJpbmc6IHtcbiAgICAgICAgICBxdWVyeTogdGhpcy5lc2NhcGVTcGVjaWFsQ2hhcmFjdGVycyhhbnkpLFxuICAgICAgICAgIGRlZmF1bHRfb3BlcmF0b3I6ICdBTkQnLFxuICAgICAgICAgIGZpZWxkczogdGhpcy5pbmplY3RMYW5nSW5RdWVyeVN0cmluZ0ZpZWxkcyhFU19RVUVSWV9GSUVMRFNfUFJJT1JJVFkpLFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICB9XG4gICAgY29uc3QgcXVlcnlGaWx0ZXJzID0gdGhpcy5maWx0ZXJzVG9RdWVyeShmaWVsZFNlYXJjaEZpbHRlcnMpXG4gICAgaWYgKHF1ZXJ5RmlsdGVycykge1xuICAgICAgZmlsdGVyLnB1c2goLi4ucXVlcnlGaWx0ZXJzKVxuICAgIH1cbiAgICBpZiAodXVpZHMpIHtcbiAgICAgIGZpbHRlci5wdXNoKHtcbiAgICAgICAgaWRzOiB7XG4gICAgICAgICAgdmFsdWVzOiB1dWlkcyxcbiAgICAgICAgfSxcbiAgICAgIH0pXG4gICAgfVxuICAgIGlmIChnZW9tZXRyeSkge1xuICAgICAgc2hvdWxkLnB1c2goXG4gICAgICAgIHtcbiAgICAgICAgICBnZW9fc2hhcGU6IHtcbiAgICAgICAgICAgIGdlb206IHtcbiAgICAgICAgICAgICAgc2hhcGU6IGdlb21ldHJ5LFxuICAgICAgICAgICAgICByZWxhdGlvbjogJ3dpdGhpbicsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYm9vc3Q6IDEwLjAsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGdlb19zaGFwZToge1xuICAgICAgICAgICAgZ2VvbToge1xuICAgICAgICAgICAgICBzaGFwZTogZ2VvbWV0cnksXG4gICAgICAgICAgICAgIHJlbGF0aW9uOiAnaW50ZXJzZWN0cycsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYm9vc3Q6IDcuMCxcbiAgICAgICAgICB9LFxuICAgICAgICB9XG4gICAgICApXG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGJvb2w6IHtcbiAgICAgICAgbXVzdCxcbiAgICAgICAgbXVzdF9ub3QsXG4gICAgICAgIHNob3VsZCxcbiAgICAgICAgZmlsdGVyLFxuICAgICAgfSxcbiAgICB9XG4gIH1cblxuICBidWlsZE1vcmVPbkFnZ3JlZ2F0aW9uUGF5bG9hZChcbiAgICBhZ2dyZWdhdGlvbnM6IGFueSxcbiAgICBrZXk6IHN0cmluZyxcbiAgICBzZWFyY2hGaWx0ZXJzOiBTZWFyY2hGaWx0ZXJzLFxuICAgIGNvbmZpZ0ZpbHRlcnM6IFNlYXJjaEZpbHRlcnNcbiAgKTogRXNTZWFyY2hQYXJhbXMge1xuICAgIHJldHVybiB7XG4gICAgICBhZ2dyZWdhdGlvbnM6IHsgW2tleV06IGFnZ3JlZ2F0aW9uc1trZXldIH0sXG4gICAgICBzaXplOiAwLFxuICAgICAgcXVlcnk6IHRoaXMuYnVpbGRQYXlsb2FkUXVlcnkoc2VhcmNoRmlsdGVycywgY29uZmlnRmlsdGVycyksXG4gICAgfVxuICB9XG5cbiAgcXVlcnlGaWx0ZXJPblZhbHVlcyhrZXksIHZhbHVlcykge1xuICAgIHJldHVybiAhdmFsdWVzIHx8IHZhbHVlcy5sZW5ndGggPD0gMFxuICAgICAgPyB7fVxuICAgICAgOiB7XG4gICAgICAgICAgdGVybXM6IHtcbiAgICAgICAgICAgIFtrZXldOiBbLi4udmFsdWVzXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9XG4gIH1cblxuICBidWlsZEF1dG9jb21wbGV0ZVBheWxvYWQocXVlcnk6IHN0cmluZyk6IEVzU2VhcmNoUGFyYW1zIHtcbiAgICByZXR1cm4ge1xuICAgICAgcXVlcnk6IHtcbiAgICAgICAgYm9vbDoge1xuICAgICAgICAgIG11c3Q6IFtcbiAgICAgICAgICAgIHRoaXMucXVlcnlGaWx0ZXJPblZhbHVlcygnaXNUZW1wbGF0ZScsICduJyksXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG11bHRpX21hdGNoOiB7XG4gICAgICAgICAgICAgICAgcXVlcnksXG4gICAgICAgICAgICAgICAgdHlwZTogJ2Jvb2xfcHJlZml4JyxcbiAgICAgICAgICAgICAgICBmaWVsZHM6IHRoaXMuaW5qZWN0TGFuZ0luUXVlcnlTdHJpbmdGaWVsZHMoe1xuICAgICAgICAgICAgICAgICAgJ3Jlc291cmNlVGl0bGVPYmplY3QuJHtzZWFyY2hMYW5nfSc6IDQsXG4gICAgICAgICAgICAgICAgICAncmVzb3VyY2VBYnN0cmFjdE9iamVjdC4ke3NlYXJjaExhbmd9JzogMyxcbiAgICAgICAgICAgICAgICAgIHRhZzogMixcbiAgICAgICAgICAgICAgICAgIHJlc291cmNlSWRlbnRpZmllcjogMSxcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgICBtdXN0X25vdDoge1xuICAgICAgICAgICAgLi4udGhpcy5xdWVyeUZpbHRlck9uVmFsdWVzKCdyZXNvdXJjZVR5cGUnLCBbXG4gICAgICAgICAgICAgICdzZXJ2aWNlJyxcbiAgICAgICAgICAgICAgJ21hcCcsXG4gICAgICAgICAgICAgICdtYXAvc3RhdGljJyxcbiAgICAgICAgICAgICAgJ21hcERpZ2l0YWwnLFxuICAgICAgICAgICAgXSksXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBfc291cmNlOiBbJ3Jlc291cmNlVGl0bGVPYmplY3QnLCAndXVpZCddLFxuICAgICAgZnJvbTogMCxcbiAgICAgIHNpemU6IDIwLFxuICAgIH1cbiAgfVxuXG4gIGNvbWJpbmVRdWVyeUdyb3VwcyhxdWVyeUdyb3Vwcykge1xuICAgIHJldHVybiBxdWVyeUdyb3VwcyA/IHF1ZXJ5R3JvdXBzLmpvaW4oJyBBTkQgJykudHJpbSgpIDogJydcbiAgfVxuXG4gIC8qKlxuICAgKiBGYWNldHMgc3RhdGUgaXMgYW4gb2JqZWN0IGxpa2UgdGhpczpcbiAgICpcbiAgICoge1xuICAgKiAgICd0YWcnOiB7XG4gICAqICAgICAnd29ybGQnOiB0cnVlLFxuICAgKiAgICAgJ3ZlY3Rvcic6IHRydWVcbiAgICogICB9LFxuICAgKiAgICdhdmFpbGFibGVJblNlcnZpY2UnIDoge1xuICAgKiAgICAgJ2F2YWlsYWJsZUluVmlld1NlcnZpY2UnOiAnK2xpbmtQcm90b2NvbDpcXC9PR0M6V01TLipcXC8nXG4gICAqICAgfSxcbiAgICogICAncmVzb3VyY2VUeXBlJzoge1xuICAgKiAgICAgJ3NlcnZpY2UnOiB7XG4gICAqICAgICAgICdzZXJ2aWNlVHlwZSc6IHtcbiAgICogICAgICAgICAnT0dDOldNUyc6IHRydWVcbiAgICogICAgICAgICAnT0dDOldGUyc6IGZhbHNlXG4gICAqICAgICAgIH1cbiAgICogICAgIH0sXG4gICAqICAgICAnZG93bmxvYWQnOiB7XG4gICAqICAgICAgICdzZXJ2aWNlVHlwZSc6IHtcbiAgICogICAgICAgfVxuICAgKiAgICAgfSxcbiAgICogICAgICdkYXRhc2V0JzogdHJ1ZVxuICAgKiAgIH1cbiAgICogfVxuICAgKi9cbiAgLy8gRklYTUU6IHRoaXMgaXMgbm90IHVzZWQgYW55bW9yZVxuICBzdGF0ZUZpbHRlcnNUb1F1ZXJ5U3RyaW5nKGZhY2V0c1N0YXRlKSB7XG4gICAgY29uc3QgcXVlcnkgPSBbXVxuICAgIGZvciAoY29uc3QgaW5kZXhLZXkgaW4gZmFjZXRzU3RhdGUpIHtcbiAgICAgIGlmIChpbmRleEtleSBpbiBmYWNldHNTdGF0ZSkge1xuICAgICAgICBjb25zdCBxdWVyeUNodW5rID0gdGhpcy5wYXJzZVN0YXRlTm9kZShcbiAgICAgICAgICBpbmRleEtleSxcbiAgICAgICAgICBmYWNldHNTdGF0ZVtpbmRleEtleV0sXG4gICAgICAgICAgdW5kZWZpbmVkXG4gICAgICAgIClcbiAgICAgICAgaWYgKHF1ZXJ5Q2h1bmspIHtcbiAgICAgICAgICBxdWVyeS5wdXNoKHF1ZXJ5Q2h1bmspXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuY29tYmluZVF1ZXJ5R3JvdXBzKHF1ZXJ5KVxuICB9XG5cbiAgLy8gRklYTUU6IHRoaXMgaXMgbm90IHVzZWQgYW55bW9yZVxuICBwcml2YXRlIHBhcnNlU3RhdGVOb2RlKG5vZGVOYW1lLCBub2RlLCBpbmRleEtleSkge1xuICAgIGxldCBxdWVyeVN0cmluZyA9ICcnXG4gICAgaWYgKG5vZGUgJiYgdHlwZW9mIG5vZGUgPT09ICdvYmplY3QnKSB7XG4gICAgICBjb25zdCBjaHVua3MgPSBbXVxuICAgICAgZm9yIChjb25zdCBwIGluIG5vZGUpIHtcbiAgICAgICAgLy8gbmVzdGluZ1xuICAgICAgICBpZiAobm9kZVtwXSAmJiB0eXBlb2Ygbm9kZVtwXSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICBjb25zdCBuZXh0THZsS2V5ID0gT2JqZWN0LmtleXMobm9kZVtwXSlbMF1cbiAgICAgICAgICBjb25zdCBuZXh0THZsU3RhdGUgPSBub2RlW3BdW25leHRMdmxLZXldXG4gICAgICAgICAgaWYgKE9iamVjdC5rZXlzKG5leHRMdmxTdGF0ZSkubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCBuZXN0ZWRDaHVua3MgPSBbbm9kZU5hbWUgKyAnOicgKyAnXCInICsgcCArICdcIiddXG4gICAgICAgICAgICBjb25zdCBjaHVuayA9IHRoaXMucGFyc2VTdGF0ZU5vZGUoXG4gICAgICAgICAgICAgIG5leHRMdmxLZXksXG4gICAgICAgICAgICAgIG5leHRMdmxTdGF0ZSxcbiAgICAgICAgICAgICAgbmV4dEx2bEtleVxuICAgICAgICAgICAgKS50cmltKClcbiAgICAgICAgICAgIGlmIChjaHVuaykge1xuICAgICAgICAgICAgICBuZXN0ZWRDaHVua3MucHVzaChjaHVuaylcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNodW5rcy5wdXNoKCcoJyArIG5lc3RlZENodW5rcy5qb2luKCcgQU5EICcpICsgJyknKVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCBjaHVuayA9IHRoaXMucGFyc2VTdGF0ZU5vZGUocCwgbm9kZVtwXSwgbm9kZU5hbWUpLnRyaW0oKVxuICAgICAgICAgIGlmIChjaHVuaykge1xuICAgICAgICAgICAgY2h1bmtzLnB1c2goY2h1bmspXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoY2h1bmtzICYmIGNodW5rcy5sZW5ndGgpIHtcbiAgICAgICAgcXVlcnlTdHJpbmcgKz0gJygnXG4gICAgICAgIHF1ZXJ5U3RyaW5nICs9IGNodW5rcy5qb2luKCcgJylcbiAgICAgICAgcXVlcnlTdHJpbmcgKz0gJyknXG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0eXBlb2Ygbm9kZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHF1ZXJ5U3RyaW5nICs9IG5vZGVcbiAgICB9IGVsc2UgaWYgKG5vZGUgPT09IHRydWUpIHtcbiAgICAgIHF1ZXJ5U3RyaW5nICs9IGluZGV4S2V5ICsgJzpcIicgKyBub2RlTmFtZSArICdcIidcbiAgICB9IGVsc2UgaWYgKG5vZGUgPT09IGZhbHNlKSB7XG4gICAgICBxdWVyeVN0cmluZyArPSAnLScgKyBpbmRleEtleSArICc6XCInICsgbm9kZU5hbWUgKyAnXCInXG4gICAgfVxuICAgIHJldHVybiBxdWVyeVN0cmluZ1xuICB9XG5cbiAgcHJpdmF0ZSBlc2NhcGVTcGVjaWFsQ2hhcmFjdGVycyhxdWVyeXN0cmluZykge1xuICAgIHJldHVybiBxdWVyeXN0cmluZy5yZXBsYWNlKFxuICAgICAgLyhcXCt8LXxcXC98JiZ8XFx8XFx8fCF8XFx7fFxcfXxcXFt8XFxdXFxefH58XFw/fDp8XFxcXHsxfXxcXCh8XFwpKS9nLFxuICAgICAgJ1xcXFwkMSdcbiAgICApXG4gIH1cblxuICBidWlsZEFnZ3JlZ2F0aW9uc1BheWxvYWQoYWdncmVnYXRpb25zOiBBZ2dyZWdhdGlvbnNQYXJhbXMpOiBhbnkge1xuICAgIGNvbnN0IG1hcFRvRVNBZ2dyZWdhdGlvbiA9IChhZ2dyZWdhdGlvbjogQWdncmVnYXRpb25QYXJhbXMpID0+IHtcbiAgICAgIHN3aXRjaCAoYWdncmVnYXRpb24udHlwZSkge1xuICAgICAgICBjYXNlICdmaWx0ZXJzJzpcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZmlsdGVyczogT2JqZWN0LmtleXMoYWdncmVnYXRpb24uZmlsdGVycykucmVkdWNlKChwcmV2LCBjdXJyKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGZpbHRlciA9IGFnZ3JlZ2F0aW9uLmZpbHRlcnNbY3Vycl1cbiAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5wcmV2LFxuICAgICAgICAgICAgICAgIFtjdXJyXTogdGhpcy5maWx0ZXJzVG9RdWVyeShmaWx0ZXIpWzBdLFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCB7fSksXG4gICAgICAgICAgfVxuICAgICAgICBjYXNlICd0ZXJtcyc6XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHRlcm1zOiB7XG4gICAgICAgICAgICAgIHNpemU6IGFnZ3JlZ2F0aW9uLmxpbWl0LFxuICAgICAgICAgICAgICBmaWVsZDogYWdncmVnYXRpb24uZmllbGQsXG4gICAgICAgICAgICAgIG9yZGVyOiB7XG4gICAgICAgICAgICAgICAgW2BfJHthZ2dyZWdhdGlvbi5zb3J0WzFdfWBdOiBhZ2dyZWdhdGlvbi5zb3J0WzBdLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9XG4gICAgICAgIGNhc2UgJ2hpc3RvZ3JhbSc6XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGhpc3RvZ3JhbToge1xuICAgICAgICAgICAgICBmaWVsZDogYWdncmVnYXRpb24uZmllbGQsXG4gICAgICAgICAgICAgIGludGVydmFsOiBhZ2dyZWdhdGlvbi5pbnRlcnZhbCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gT2JqZWN0LmtleXMoYWdncmVnYXRpb25zKS5yZWR1Y2UoXG4gICAgICAocHJldiwgY3VycikgPT4gKHtcbiAgICAgICAgLi4ucHJldixcbiAgICAgICAgW2N1cnJdOiBtYXBUb0VTQWdncmVnYXRpb24oYWdncmVnYXRpb25zW2N1cnJdKSxcbiAgICAgIH0pLFxuICAgICAge31cbiAgICApXG4gIH1cblxuICBwYXJzZUFnZ3JlZ2F0aW9uUmVzdWx0KFxuICAgIHJlc3VsdDogQWdncmVnYXRpb25SZXN1bHQsXG4gICAgcmVxdWVzdFBhcmFtOiBBZ2dyZWdhdGlvblBhcmFtc1xuICApOiBBZ2dyZWdhdGlvbiB7XG4gICAgc3dpdGNoIChyZXF1ZXN0UGFyYW0udHlwZSkge1xuICAgICAgY2FzZSAnZmlsdGVycyc6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgYnVja2V0czogT2JqZWN0LmtleXMoXG4gICAgICAgICAgICAocmVzdWx0IGFzIEZpbHRlcnNBZ2dyZWdhdGlvblJlc3VsdCkuYnVja2V0c1xuICAgICAgICAgICkubWFwKChrZXkpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGJ1Y2tldCA9IChyZXN1bHQgYXMgRmlsdGVyc0FnZ3JlZ2F0aW9uUmVzdWx0KS5idWNrZXRzW2tleV1cbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIHRlcm06IGtleSxcbiAgICAgICAgICAgICAgY291bnQ6IGJ1Y2tldC5kb2NfY291bnQsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSksXG4gICAgICAgIH1cbiAgICAgIGNhc2UgJ3Rlcm1zJzpcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBidWNrZXRzOiAocmVzdWx0IGFzIFRlcm1zQWdncmVnYXRpb25SZXN1bHQpLmJ1Y2tldHMubWFwKChidWNrZXQpID0+ICh7XG4gICAgICAgICAgICB0ZXJtOiBidWNrZXQua2V5LFxuICAgICAgICAgICAgY291bnQ6IGJ1Y2tldC5kb2NfY291bnQsXG4gICAgICAgICAgfSkpLFxuICAgICAgICB9XG4gICAgICBjYXNlICdoaXN0b2dyYW0nOiB7XG4gICAgICAgIGNvbnN0IGhpc3RvZ3JhbVJlc3VsdCA9IHJlc3VsdCBhcyBIaXN0b2dyYW1BZ2dyZWdhdGlvblJlc3VsdFxuICAgICAgICBsZXQgYnVja2V0cyA9IEFycmF5LmlzQXJyYXkoaGlzdG9ncmFtUmVzdWx0LmJ1Y2tldHMpXG4gICAgICAgICAgPyBoaXN0b2dyYW1SZXN1bHQuYnVja2V0c1xuICAgICAgICAgIDogT2JqZWN0LmtleXMoaGlzdG9ncmFtUmVzdWx0LmJ1Y2tldHMpLm1hcChcbiAgICAgICAgICAgICAgKGtleSkgPT4gaGlzdG9ncmFtUmVzdWx0LmJ1Y2tldHNba2V5XVxuICAgICAgICAgICAgKVxuICAgICAgICBidWNrZXRzID0gYnVja2V0cy5tYXAoKGJ1Y2tldCwgaW5kZXgpID0+ICh7XG4gICAgICAgICAgbG93VmFsdWU6IGJ1Y2tldC5rZXksXG4gICAgICAgICAgaGlnaFZhbHVlOiBidWNrZXRzW2luZGV4ICsgMV0/LmtleSwgLy8gdGhpcyB3aWxsIHJldHVybiB1bmRlZmluZWQgb24gdGhlIGxhc3QgZWxlbWVudCAod2hpY2ggd2UgcmVtb3ZlIGxhdGVyKVxuICAgICAgICAgIGNvdW50OiBidWNrZXQuZG9jX2NvdW50LFxuICAgICAgICB9KSlcbiAgICAgICAgYnVja2V0cy5wb3AoKSAvLyBzZWUgYWJvdmVcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBidWNrZXRzLFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export * from './elasticsearch.service';
|
|
2
2
|
export * from './constant';
|
|
3
|
-
|
|
3
|
+
export * from './date-range.utils';
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwaS9yZXBvc2l0b3J5L3NyYy9saWIvZ240L2VsYXN0aWNzZWFyY2gvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx5QkFBeUIsQ0FBQTtBQUN2QyxjQUFjLFlBQVksQ0FBQTtBQUMxQixjQUFjLG9CQUFvQixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9lbGFzdGljc2VhcmNoLnNlcnZpY2UnXG5leHBvcnQgKiBmcm9tICcuL2NvbnN0YW50J1xuZXhwb3J0ICogZnJvbSAnLi9kYXRlLXJhbmdlLnV0aWxzJ1xuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvc2VhcmNoL2ZpbHRlci5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmllbGROYW1lIH0gZnJvbSAnLi9maWVsZC5tb2RlbCdcblxuZXhwb3J0IHR5cGUgRmllbGRGaWx0ZXJCeVZhbHVlcyA9IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvc2VhcmNoL2ZpbHRlci5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmllbGROYW1lIH0gZnJvbSAnLi9maWVsZC5tb2RlbCdcblxuZXhwb3J0IHR5cGUgRmllbGRGaWx0ZXJCeVZhbHVlcyA9IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+XG5leHBvcnQgdHlwZSBGaWVsZEZpbHRlckJ5RXhwcmVzc2lvbiA9IHN0cmluZyB8IG51bWJlclxuZXhwb3J0IHR5cGUgRmllbGRGaWx0ZXJCeVJhbmdlID0ge1xuICBzdGFydD86IERhdGVcbiAgZW5kPzogRGF0ZVxufVxuXG5leHBvcnQgdHlwZSBGaWVsZEZpbHRlciA9XG4gIHwgRmllbGRGaWx0ZXJCeUV4cHJlc3Npb25cbiAgfCBGaWVsZEZpbHRlckJ5VmFsdWVzXG4gIHwgRmllbGRGaWx0ZXJCeVJhbmdlXG5leHBvcnQgdHlwZSBGaWVsZEZpbHRlcnMgPSBSZWNvcmQ8RmllbGROYW1lLCBGaWVsZEZpbHRlcj5cblxuZXhwb3J0IHR5cGUgUXVlcnlTdHJpbmcgPSB7XG4gIHF1ZXJ5X3N0cmluZzogc3RyaW5nXG59XG5leHBvcnQgdHlwZSBRdWVyeVJhbmdlID0ge1xuICByYW5nZTogUmVjb3JkPHN0cmluZywgeyBmb3JtYXQ6IHN0cmluZzsgZ3RlOiBzdHJpbmc7IGx0ZTogc3RyaW5nIH0+XG59XG5leHBvcnQgdHlwZSBGaWx0ZXJRdWVyeSA9IEFycmF5PFF1ZXJ5U3RyaW5nIHwgUXVlcnlSYW5nZT5cbiJdfQ==
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { InjectionToken, NgModule } from '@angular/core';
|
|
2
2
|
import { SiteTitleComponent } from './site-title/site-title.component';
|
|
3
|
-
import {
|
|
3
|
+
import { CatalogTitleComponent, OrganisationsFilterComponent, } from '../../../../../libs/ui/catalog/src';
|
|
4
4
|
import { GroupsApiService, SearchApiService, } from '../../../../../libs/data-access/gn4/src';
|
|
5
5
|
import { CommonModule } from '@angular/common';
|
|
6
6
|
import { SourceLabelComponent } from './source-label/source-label.component';
|
|
7
7
|
import { LangService, UtilI18nModule } from '../../../../../libs/util/i18n/src';
|
|
8
|
-
import { OrganisationsComponent } from './organisations/organisations.component';
|
|
9
8
|
import { UiLayoutModule } from '../../../../../libs/ui/layout/src';
|
|
10
9
|
import { TranslateModule, TranslateService } from '@ngx-translate/core';
|
|
11
10
|
import { UiElementsModule } from '../../../../../libs/ui/elements/src';
|
|
@@ -21,13 +20,11 @@ const organizationsServiceFactory = (strategy, esService, searchApiService, grou
|
|
|
21
20
|
: new OrganizationsFromMetadataService(esService, searchApiService, groupsApiService, platformService, langService);
|
|
22
21
|
export class FeatureCatalogModule {
|
|
23
22
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FeatureCatalogModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
24
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: FeatureCatalogModule, declarations: [SiteTitleComponent,
|
|
25
|
-
SourceLabelComponent,
|
|
26
|
-
OrganisationsComponent], imports: [UiCatalogModule,
|
|
27
|
-
UiLayoutModule,
|
|
23
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: FeatureCatalogModule, declarations: [SiteTitleComponent, SourceLabelComponent], imports: [UiLayoutModule,
|
|
28
24
|
CommonModule,
|
|
29
25
|
UtilI18nModule, i1.TranslateModule, UiElementsModule,
|
|
30
|
-
OrganisationsFilterComponent
|
|
26
|
+
OrganisationsFilterComponent,
|
|
27
|
+
CatalogTitleComponent], exports: [SiteTitleComponent, SourceLabelComponent] }); }
|
|
31
28
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FeatureCatalogModule, providers: [
|
|
32
29
|
{
|
|
33
30
|
provide: OrganizationsServiceInterface,
|
|
@@ -42,32 +39,28 @@ export class FeatureCatalogModule {
|
|
|
42
39
|
LangService,
|
|
43
40
|
],
|
|
44
41
|
},
|
|
45
|
-
], imports: [
|
|
46
|
-
UiLayoutModule,
|
|
42
|
+
], imports: [UiLayoutModule,
|
|
47
43
|
CommonModule,
|
|
48
44
|
UtilI18nModule,
|
|
49
45
|
TranslateModule.forChild(),
|
|
50
46
|
UiElementsModule,
|
|
51
|
-
OrganisationsFilterComponent
|
|
47
|
+
OrganisationsFilterComponent,
|
|
48
|
+
CatalogTitleComponent] }); }
|
|
52
49
|
}
|
|
53
50
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FeatureCatalogModule, decorators: [{
|
|
54
51
|
type: NgModule,
|
|
55
52
|
args: [{
|
|
56
|
-
declarations: [
|
|
57
|
-
SiteTitleComponent,
|
|
58
|
-
SourceLabelComponent,
|
|
59
|
-
OrganisationsComponent,
|
|
60
|
-
],
|
|
53
|
+
declarations: [SiteTitleComponent, SourceLabelComponent],
|
|
61
54
|
imports: [
|
|
62
|
-
UiCatalogModule,
|
|
63
55
|
UiLayoutModule,
|
|
64
56
|
CommonModule,
|
|
65
57
|
UtilI18nModule,
|
|
66
58
|
TranslateModule.forChild(),
|
|
67
59
|
UiElementsModule,
|
|
68
60
|
OrganisationsFilterComponent,
|
|
61
|
+
CatalogTitleComponent,
|
|
69
62
|
],
|
|
70
|
-
exports: [SiteTitleComponent, SourceLabelComponent
|
|
63
|
+
exports: [SiteTitleComponent, SourceLabelComponent],
|
|
71
64
|
providers: [
|
|
72
65
|
{
|
|
73
66
|
provide: OrganizationsServiceInterface,
|
|
@@ -85,4 +78,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
85
78
|
],
|
|
86
79
|
}]
|
|
87
80
|
}] });
|
|
88
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1jYXRhbG9nLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9jYXRhbG9nL3NyYy9saWIvZmVhdHVyZS1jYXRhbG9nLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUN4RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQTtBQUN0RSxPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLDRCQUE0QixHQUM3QixNQUFNLG9DQUFvQyxDQUFBO0FBQzNDLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsZ0JBQWdCLEdBQ2pCLE1BQU0seUNBQXlDLENBQUE7QUFDaEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzlDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFBO0FBQzVFLE9BQU8sRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUNBQW1DLENBQUE7QUFDL0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFBO0FBQ2xFLE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUN2RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQTtBQUN0RSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSwyRUFBMkUsQ0FBQTtBQUN6SCxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLHNCQUFzQixFQUN0Qiw4QkFBOEIsRUFDOUIsZ0NBQWdDLEdBRWpDLE1BQU0sd0NBQXdDLENBQUE7QUFDL0MsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sc0VBQXNFLENBQUE7OztBQUUvRyxzQ0FBc0M7QUFDdEMsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsSUFBSSxjQUFjLENBQ3RELHdCQUF3QixDQUN6QixDQUFBO0FBRUQsTUFBTSwyQkFBMkIsR0FBRyxDQUNsQyxRQUErQixFQUMvQixTQUErQixFQUMvQixnQkFBa0MsRUFDbEMsZ0JBQWtDLEVBQ2xDLGdCQUFrQyxFQUNsQyxlQUF5QyxFQUN6QyxXQUF3QixFQUN4QixFQUFFLENBQ0YsUUFBUSxLQUFLLFFBQVE7SUFDbkIsQ0FBQyxDQUFDLElBQUksOEJBQThCLENBQ2hDLFNBQVMsRUFDVCxnQkFBZ0IsRUFDaEIsZ0JBQWdCLEVBQ2hCLGdCQUFnQixDQUNqQjtJQUNILENBQUMsQ0FBQyxJQUFJLGdDQUFnQyxDQUNsQyxTQUFTLEVBQ1QsZ0JBQWdCLEVBQ2hCLGdCQUFnQixFQUNoQixlQUFlLEVBQ2YsV0FBVyxDQUNaLENBQUE7QUE4QlAsTUFBTSxPQUFPLG9CQUFvQjsrR0FBcEIsb0JBQW9CO2dIQUFwQixvQkFBb0IsaUJBM0JoQixrQkFBa0IsRUFBRSxvQkFBb0IsYUFFckQsY0FBYztZQUNkLFlBQVk7WUFDWixjQUFjLHNCQUVkLGdCQUFnQjtZQUNoQiw0QkFBNEI7WUFDNUIscUJBQXFCLGFBRWIsa0JBQWtCLEVBQUUsb0JBQW9CO2dIQWlCdkMsb0JBQW9CLGFBaEJwQjtZQUNUO2dCQUNFLE9BQU8sRUFBRSw2QkFBNkI7Z0JBQ3RDLFVBQVUsRUFBRSwyQkFBMkI7Z0JBQ3ZDLElBQUksRUFBRTtvQkFDSixzQkFBc0I7b0JBQ3RCLG9CQUFvQjtvQkFDcEIsZ0JBQWdCO29CQUNoQixnQkFBZ0I7b0JBQ2hCLGdCQUFnQjtvQkFDaEIsd0JBQXdCO29CQUN4QixXQUFXO2lCQUNaO2FBQ0Y7U0FDRixZQXZCQyxjQUFjO1lBQ2QsWUFBWTtZQUNaLGNBQWM7WUFDZCxlQUFlLENBQUMsUUFBUSxFQUFFO1lBQzFCLGdCQUFnQjtZQUNoQiw0QkFBNEI7WUFDNUIscUJBQXFCOzs0RkFtQlosb0JBQW9CO2tCQTVCaEMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxvQkFBb0IsQ0FBQztvQkFDeEQsT0FBTyxFQUFFO3dCQUNQLGNBQWM7d0JBQ2QsWUFBWTt3QkFDWixjQUFjO3dCQUNkLGVBQWUsQ0FBQyxRQUFRLEVBQUU7d0JBQzFCLGdCQUFnQjt3QkFDaEIsNEJBQTRCO3dCQUM1QixxQkFBcUI7cUJBQ3RCO29CQUNELE9BQU8sRUFBRSxDQUFDLGtCQUFrQixFQUFFLG9CQUFvQixDQUFDO29CQUNuRCxTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLDZCQUE2Qjs0QkFDdEMsVUFBVSxFQUFFLDJCQUEyQjs0QkFDdkMsSUFBSSxFQUFFO2dDQUNKLHNCQUFzQjtnQ0FDdEIsb0JBQW9CO2dDQUNwQixnQkFBZ0I7Z0NBQ2hCLGdCQUFnQjtnQ0FDaEIsZ0JBQWdCO2dDQUNoQix3QkFBd0I7Z0NBQ3hCLFdBQVc7NkJBQ1o7eUJBQ0Y7cUJBQ0Y7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiwgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgU2l0ZVRpdGxlQ29tcG9uZW50IH0gZnJvbSAnLi9zaXRlLXRpdGxlL3NpdGUtdGl0bGUuY29tcG9uZW50J1xuaW1wb3J0IHtcbiAgQ2F0YWxvZ1RpdGxlQ29tcG9uZW50LFxuICBPcmdhbmlzYXRpb25zRmlsdGVyQ29tcG9uZW50LFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi9saWJzL3VpL2NhdGFsb2cvc3JjJ1xuaW1wb3J0IHtcbiAgR3JvdXBzQXBpU2VydmljZSxcbiAgU2VhcmNoQXBpU2VydmljZSxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vbGlicy9kYXRhLWFjY2Vzcy9nbjQvc3JjJ1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgU291cmNlTGFiZWxDb21wb25lbnQgfSBmcm9tICcuL3NvdXJjZS1sYWJlbC9zb3VyY2UtbGFiZWwuY29tcG9uZW50J1xuaW1wb3J0IHsgTGFuZ1NlcnZpY2UsIFV0aWxJMThuTW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vbGlicy91dGlsL2kxOG4vc3JjJ1xuaW1wb3J0IHsgVWlMYXlvdXRNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9saWJzL3VpL2xheW91dC9zcmMnXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUsIFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuaW1wb3J0IHsgVWlFbGVtZW50c01vZHVsZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjJ1xuaW1wb3J0IHsgT3JnYW5pemF0aW9uc1NlcnZpY2VJbnRlcmZhY2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9vcmdhbml6YXRpb25zLnNlcnZpY2UuaW50ZXJmYWNlJ1xuaW1wb3J0IHtcbiAgRWxhc3RpY3NlYXJjaFNlcnZpY2UsXG4gIE9SR0FOSVpBVElPTlNfU1RSQVRFR1ksXG4gIE9yZ2FuaXphdGlvbnNGcm9tR3JvdXBzU2VydmljZSxcbiAgT3JnYW5pemF0aW9uc0Zyb21NZXRhZGF0YVNlcnZpY2UsXG4gIE9yZ2FuaXphdGlvbnNTdHJhdGVneSxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vbGlicy9hcGkvcmVwb3NpdG9yeS9zcmMnXG5pbXBvcnQgeyBQbGF0Zm9ybVNlcnZpY2VJbnRlcmZhY2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9wbGF0Zm9ybS5zZXJ2aWNlLmludGVyZmFjZSdcblxuLy8gZXhwZWN0cyB0aGUgcmVwbGFjZW1lbnQga2V5ICR7bmFtZX1cbmV4cG9ydCBjb25zdCBPUkdBTklaQVRJT05fVVJMX1RPS0VOID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZz4oXG4gICdvcmdhbml6YXRpb24tdXJsLXRva2VuJ1xuKVxuXG5jb25zdCBvcmdhbml6YXRpb25zU2VydmljZUZhY3RvcnkgPSAoXG4gIHN0cmF0ZWd5OiBPcmdhbml6YXRpb25zU3RyYXRlZ3ksXG4gIGVzU2VydmljZTogRWxhc3RpY3NlYXJjaFNlcnZpY2UsXG4gIHNlYXJjaEFwaVNlcnZpY2U6IFNlYXJjaEFwaVNlcnZpY2UsXG4gIGdyb3Vwc0FwaVNlcnZpY2U6IEdyb3Vwc0FwaVNlcnZpY2UsXG4gIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gIHBsYXRmb3JtU2VydmljZTogUGxhdGZvcm1TZXJ2aWNlSW50ZXJmYWNlLFxuICBsYW5nU2VydmljZTogTGFuZ1NlcnZpY2VcbikgPT5cbiAgc3RyYXRlZ3kgPT09ICdncm91cHMnXG4gICAgPyBuZXcgT3JnYW5pemF0aW9uc0Zyb21Hcm91cHNTZXJ2aWNlKFxuICAgICAgICBlc1NlcnZpY2UsXG4gICAgICAgIHNlYXJjaEFwaVNlcnZpY2UsXG4gICAgICAgIGdyb3Vwc0FwaVNlcnZpY2UsXG4gICAgICAgIHRyYW5zbGF0ZVNlcnZpY2VcbiAgICAgIClcbiAgICA6IG5ldyBPcmdhbml6YXRpb25zRnJvbU1ldGFkYXRhU2VydmljZShcbiAgICAgICAgZXNTZXJ2aWNlLFxuICAgICAgICBzZWFyY2hBcGlTZXJ2aWNlLFxuICAgICAgICBncm91cHNBcGlTZXJ2aWNlLFxuICAgICAgICBwbGF0Zm9ybVNlcnZpY2UsXG4gICAgICAgIGxhbmdTZXJ2aWNlXG4gICAgICApXG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1NpdGVUaXRsZUNvbXBvbmVudCwgU291cmNlTGFiZWxDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbXG4gICAgVWlMYXlvdXRNb2R1bGUsXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFV0aWxJMThuTW9kdWxlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZS5mb3JDaGlsZCgpLFxuICAgIFVpRWxlbWVudHNNb2R1bGUsXG4gICAgT3JnYW5pc2F0aW9uc0ZpbHRlckNvbXBvbmVudCxcbiAgICBDYXRhbG9nVGl0bGVDb21wb25lbnQsXG4gIF0sXG4gIGV4cG9ydHM6IFtTaXRlVGl0bGVDb21wb25lbnQsIFNvdXJjZUxhYmVsQ29tcG9uZW50XSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogT3JnYW5pemF0aW9uc1NlcnZpY2VJbnRlcmZhY2UsXG4gICAgICB1c2VGYWN0b3J5OiBvcmdhbml6YXRpb25zU2VydmljZUZhY3RvcnksXG4gICAgICBkZXBzOiBbXG4gICAgICAgIE9SR0FOSVpBVElPTlNfU1RSQVRFR1ksXG4gICAgICAgIEVsYXN0aWNzZWFyY2hTZXJ2aWNlLFxuICAgICAgICBTZWFyY2hBcGlTZXJ2aWNlLFxuICAgICAgICBHcm91cHNBcGlTZXJ2aWNlLFxuICAgICAgICBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICBQbGF0Zm9ybVNlcnZpY2VJbnRlcmZhY2UsXG4gICAgICAgIExhbmdTZXJ2aWNlLFxuICAgICAgXSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBGZWF0dXJlQ2F0YWxvZ01vZHVsZSB7fVxuIl19
|