@provoly/dashboard 1.4.22 → 1.4.23
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/dataset/components/dataset-detail/dataset-detail.component.mjs +1 -1
- package/esm2022/lib/core/store/search/search.effects.mjs +2 -2
- package/esm2022/lib/core/store/search/search.service.mjs +14 -5
- package/esm2022/lib/dashboard/components/dashboard.component.mjs +24 -9
- package/esm2022/lib/dashboard/components/widgets/data-widget.component.mjs +4 -2
- package/esm2022/lib/dashboard/components/widgets/header/widget-header.component.mjs +1 -1
- package/esm2022/lib/dashboard/filter/components/filter-group/filter-group.component.mjs +6 -4
- package/esm2022/lib/dashboard/resultset-utils.mjs +18 -11
- package/esm2022/lib/dashboard/store/dashboard.actions.mjs +2 -2
- package/esm2022/lib/dashboard/store/dashboard.effects.mjs +6 -4
- package/esm2022/lib/dashboard/store/dashboard.reducers.mjs +5 -2
- package/esm2022/toolbox/components/select-grid-layout/select-grid-layout.component.mjs +1 -1
- package/fesm2022/provoly-dashboard-dataset.mjs +1 -1
- package/fesm2022/provoly-dashboard-dataset.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-toolbox.mjs +1 -1
- package/fesm2022/provoly-dashboard-toolbox.mjs.map +1 -1
- package/fesm2022/provoly-dashboard.mjs +72 -32
- package/fesm2022/provoly-dashboard.mjs.map +1 -1
- package/lib/core/store/search/search.service.d.ts +2 -2
- package/lib/dashboard/components/dashboard.component.d.ts +3 -1
- package/lib/dashboard/filter/components/filter-group/filter-group.component.d.ts +2 -1
- package/lib/dashboard/resultset-utils.d.ts +1 -0
- package/lib/dashboard/store/dashboard.actions.d.ts +11 -1
- package/lib/dashboard/store/dashboard.effects.d.ts +1 -0
- package/package.json +43 -43
|
@@ -165,7 +165,7 @@ export class PryDatasetDetailComponent extends SubscriptionnerDirective {
|
|
|
165
165
|
$event?.stopPropagation();
|
|
166
166
|
}
|
|
167
167
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PryDatasetDetailComponent, deps: [{ token: i1.Store }, { token: PRY_ACCESS_TOKEN, optional: true }, { token: i2.PryDialogService }, { token: i2.PryTitleService }, { token: i2.PryI18nService }, { token: i2.WidgetFactoryService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
168
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: PryDatasetDetailComponent, selector: "pry-dataset-detail", inputs: { dataset: "dataset" }, outputs: { goToCatalog: "goToCatalog" }, usesInheritance: true, ngImport: i0, template: "<div class=\"o-manifest-layout__toolbox\">\n <button class=\"a-btn a-btn--primary\" (click)=\"goBack()\">{{ '@pry.dataset.returnToList' | i18n }}</button>\n <button class=\"a-btn a-btn--secondary\" (click)=\"refresh()\">\n {{ '@pry.dataset.refresh' | i18n }}\n <pry-icon iconSvg=\"synchro\"></pry-icon>\n </button>\n</div>\n\n<div class=\"o-dataset-layout\">\n <div class=\"o-dataset-layout__content\">\n <div class=\"a-p\">\n <h1 class=\"a-h1\">{{ (currentDataset$ | async)?.name }}</h1>\n </div>\n\n <div class=\"o-dataset-detail\">\n <div class=\"o-dataset-detail__content\">\n <pry-tab-group translationStringBase=\"@pry.dataset.\" (clickedTabIdx)=\"onTabSwitch($event)\">\n <pry-tab [templateRef]=\"information\" name=\"information\"></pry-tab>\n <pry-tab [templateRef]=\"table\" name=\"data\"></pry-tab>\n <pry-tab [templateRef]=\"map\" name=\"map\"></pry-tab>\n <pry-tab [templateRef]=\"datasetVersions\" name=\"versionHistory\"></pry-tab>\n </pry-tab-group>\n </div>\n </div>\n </div>\n @if (isPanelOpen) {\n <div class=\"o-dataset-layout__panel\">\n <div class=\"panel__header u-display-flex -justify-space-between\">\n <h3>{{ '@pry.dataset.information' | i18n }}</h3>\n <button role=\"button\" (click)=\"togglePanel()\">\n <pry-icon iconSvg=\"close\"></pry-icon>\n </button>\n </div>\n <div class=\"panel__content u-display-flex -column\">\n @if (!isEditingVersion) {\n <div>\n <span class=\"a-label\">{{ '@pry.dataset.version.productionDate' | i18n }}</span>\n <span>{{\n (selectedVersion?.productionDate | date: 'dd-MM-yyyy, HH:mm') ??\n ('@pry.dataset.version.notProvided' | i18n)\n }}</span>\n </div>\n <div>\n <span class=\"a-label\">{{ '@pry.dataset.version.producer' | i18n }}</span>\n <span>{{ selectedVersion?.producer ?? ('@pry.dataset.version.notProvided' | i18n) }}</span>\n </div>\n <div>\n <span class=\"a-label\">{{ '@pry.dataset.version.additionalInformation' | i18n }}</span>\n <div\n class=\"version-information\"\n [innerHTML]=\"\n selectedVersion?.additionalInformation ?? ('@pry.dataset.version.notProvided' | i18n) | mdToHtml\n \"\n ></div>\n </div>\n <button\n *pryAccess=\"{ module: 'admin', page: 'list-dataset', action: 'edit_version' }\"\n role=\"button\"\n class=\"a-btn a-btn--primary u-self-end\"\n (click)=\"editVersion()\"\n >\n {{ '@pry.action.edit' | i18n }}\n </button>\n } @else {\n <pry-dataset-version-form\n [version]=\"selectedVersion\"\n (formValidated)=\"formValidated($event)\"\n ></pry-dataset-version-form>\n }\n </div>\n </div>\n }\n</div>\n\n<ng-template #information>\n <div class=\"u-display-flex -column o-dataset-detail__information\">\n <div>\n <span class=\"a-label\">{{ '@pry.dataset.description' | i18n }}</span>\n <span>{{ dataset.description ?? ('@pry.dataset.version.notProvided' | i18n) }}</span>\n </div>\n @if (dataset.activeVersion) {\n <div>\n <span class=\"a-label\">{{ '@pry.dataset.version.productionDate' | i18n }}</span>\n <span>{{\n (dataset.activeVersion.productionDate | date: 'dd-MM-yyyy, HH:mm') ??\n ('@pry.dataset.version.notProvided' | i18n)\n }}</span>\n </div>\n <div>\n <span class=\"a-label\">{{ '@pry.dataset.version.producer' | i18n }}</span>\n <span>{{ dataset.activeVersion.producer ?? ('@pry.dataset.version.notProvided' | i18n) }}</span>\n </div>\n <div>\n <span class=\"a-label\">{{ '@pry.dataset.version.additionalInformation' | i18n }}</span>\n <div\n class=\"version-information\"\n [innerHTML]=\"\n dataset.activeVersion.additionalInformation ?? ('@pry.dataset.version.notProvided' | i18n) | mdToHtml\n \"\n ></div>\n </div>\n } @else {\n <div class=\"a-p\">\n <p>{{ '@pry.dataset.noActiveVersion' | i18n }}</p>\n </div>\n }\n <div>\n <span class=\"a-label\">{{ '@pry.dataset.tags' | i18n }}</span>\n <div class=\"u-display-flex -wrap\">\n @for (category of dataset.categories; track category.id) {\n <span class=\"a-chip -md\"> {{ category.name }}</span>\n }\n </div>\n </div>\n </div>\n</ng-template>\n\n<ng-template #table>\n <div class=\"dashboard-container\">\n <pry-dashboard [staticDashboard]=\"{ widgets: [widgetManifest['table']] }\"></pry-dashboard>\n </div>\n</ng-template>\n<ng-template #map>\n <div class=\"dashboard-container\">\n <pry-dashboard [staticDashboard]=\"{ widgets: [widgetManifest['map']] }\"></pry-dashboard>\n </div>\n</ng-template>\n<ng-template #datasetVersions>\n <div class=\"dataset-detail__table table-container\">\n <table class=\"a-table\">\n <caption>\n {{\n '@pry.admin.dataset.title' | i18n\n }},\n {{\n '@pry.action.sortableColumnHeader' | i18n\n }}\n </caption>\n <thead>\n <tr>\n <th>{{ '@pry.dataset.version.title' | i18n }}</th>\n <th>{{ '@pry.dataset.date' | i18n }}</th>\n <th>{{ '@pry.dataset.status' | i18n }}</th>\n <th></th>\n <th></th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n @for (version of datasetVersions$ | async; track version) {\n <tr\n (click)=\"togglePanel(version)\"\n [class.-selected]=\"version.id === selectedVersion?.id\"\n >\n <td>\n {{ version.version }}\n @if ((currentDataset$ | async)?.activeVersion?.id === version.id) {\n <pry-icon\n iconSvg=\"check\"\n class=\"check\"\n ></pry-icon>\n }\n </td>\n <td>\n <div\n class=\"a-tooltip\"\n [attr.data-tooltip]=\"version.lastModified | sinceDate: { onlyLocale: true }\"\n data-tooltip-position=\"right\"\n >\n {{ version.lastModified | sinceDate: { onlyLocale: true } }}\n </div>\n </td>\n <td>\n {{\n (version.id === (currentDataset$ | async)?.activeVersion?.id\n ? '@pry.dataset.version.state.currentlyActive'\n : '@pry.dataset.version.state.' + version.state\n ) | i18n\n }}\n @if (version.state !== 'DELETING') {\n <div\n class=\"m-info-icon a-tooltip -tooltip-width-md\"\n [attr.data-tooltip]=\"\n '@pry.dataset.tooltip.' +\n getVersionTooltipContent(version, (currentDataset$ | async)?.activeVersion?.id) | i18n\n \"\n data-tooltip-position=\"right\"\n >\n <span>i</span>\n </div>\n }\n </td>\n <td>\n @if (\n version.state !== 'LOADING' &&\n version.state !== 'INDEXING' &&\n version.state !== 'ERROR' &&\n version.state !== 'DELETING'\n ) {\n @if ((canModify$ | async) && (version.state === 'ACTIVE' || version.state === 'INACTIVE')) {\n <ng-container *pryAccess=\"{ module: 'dashboard', page: 'list-dataset', action: 'activate' }\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--primary a-btn--icon-text ng-star-inserted\"\n (click)=\"handleButtonAction($event, version)\"\n >\n {{ '@pry.dataset.buttonAction.' + version.state | i18n }}\n </button>\n @if (version.state === 'ACTIVE' || version.state === 'INACTIVE') {\n <div\n class=\"m-info-icon a-tooltip -tooltip-width-lg\"\n [attr.data-tooltip]=\"\n (version.state === 'ACTIVE'\n ? '@pry.dataset.tooltip.invalidateButton'\n : '@pry.dataset.tooltip.validateButton'\n ) | i18n\n \"\n data-tooltip-position=\"right\"\n >\n <span>i</span>\n </div>\n }\n </ng-container>\n }\n }\n </td>\n <td>\n @if (version.hasWarnings || version.state === 'ERROR') {\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary a-btn--icon-text ng-star-inserted\"\n (click)=\"consultErrors($event, version)\"\n >\n {{\n (version.state === 'ERROR' ? '@pry.dataset.buttonAction.ERROR' : '@pry.dataset.buttonAction.WARNING')\n | i18n\n }}\n </button>\n }\n </td>\n <td>\n @if (\n (canModify$ | async) &&\n (version.state === 'ACTIVE' || version.state === 'ERROR' || version.state === 'INACTIVE')\n ) {\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary a-btn--icon-text ng-star-inserted\"\n (click)=\"askDelete(version, $event)\"\n >\n {{ '@pry.dataset.buttonAction.delete' | i18n }}\n </button>\n }\n </td>\n </tr>\n }\n </tbody>\n </table>\n </div>\n</ng-template>\n", dependencies: [{ kind: "component", type: i2.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: i2.PryAccessDirective, selector: "[pryAccess]", inputs: ["pryAccess"] }, { kind: "component", type: i2.TabGroupComponent, selector: "pry-tab-group", inputs: ["translationStringBase"], outputs: ["clickedTabIdx"] }, { kind: "component", type: i2.TabComponent, selector: "pry-tab", inputs: ["name", "templateRef", "index"] }, { kind: "component", type: i2.DashboardComponent, selector: "pry-dashboard", inputs: ["staticDashboard", "forceModeEdition", "CloseOnDragOut", "displayOptions", "noBackground", "breakpoint"], outputs: ["rowHeight", "rows"] }, { kind: "component", type: i3.PryDatasetVersionFormComponent, selector: "pry-dataset-version-form", inputs: ["version"], outputs: ["formValidated"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.DatePipe, name: "date" }, { kind: "pipe", type: i2.I18nPipe, name: "i18n" }, { kind: "pipe", type: i5.MdToHtmlPipe, name: "mdToHtml" }, { kind: "pipe", type: i2.SinceDatePipe, name: "sinceDate" }] }); }
|
|
168
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: PryDatasetDetailComponent, selector: "pry-dataset-detail", inputs: { dataset: "dataset" }, outputs: { goToCatalog: "goToCatalog" }, usesInheritance: true, ngImport: i0, template: "<div class=\"o-manifest-layout__toolbox\">\n <button class=\"a-btn a-btn--primary\" (click)=\"goBack()\">{{ '@pry.dataset.returnToList' | i18n }}</button>\n <button class=\"a-btn a-btn--secondary\" (click)=\"refresh()\">\n {{ '@pry.dataset.refresh' | i18n }}\n <pry-icon iconSvg=\"synchro\"></pry-icon>\n </button>\n</div>\n\n<div class=\"o-dataset-layout\">\n <div class=\"o-dataset-layout__content\">\n <div class=\"a-p\">\n <h1 class=\"a-h1\">{{ (currentDataset$ | async)?.name }}</h1>\n </div>\n\n <div class=\"o-dataset-detail\">\n <div class=\"o-dataset-detail__content\">\n <pry-tab-group translationStringBase=\"@pry.dataset.\" (clickedTabIdx)=\"onTabSwitch($event)\">\n <pry-tab [templateRef]=\"information\" name=\"information\"></pry-tab>\n <pry-tab [templateRef]=\"table\" name=\"data\"></pry-tab>\n <pry-tab [templateRef]=\"map\" name=\"map\"></pry-tab>\n <pry-tab [templateRef]=\"datasetVersions\" name=\"versionHistory\"></pry-tab>\n </pry-tab-group>\n </div>\n </div>\n </div>\n @if (isPanelOpen) {\n <div class=\"o-dataset-layout__panel\">\n <div class=\"panel__header u-display-flex -justify-space-between\">\n <h3>{{ '@pry.dataset.information' | i18n }}</h3>\n <button role=\"button\" (click)=\"togglePanel()\">\n <pry-icon iconSvg=\"close\"></pry-icon>\n </button>\n </div>\n <div class=\"panel__content u-display-flex -column\">\n @if (!isEditingVersion) {\n <div>\n <span class=\"a-label\">{{ '@pry.dataset.version.productionDate' | i18n }}</span>\n <span>{{\n (selectedVersion?.productionDate | date: 'dd-MM-yyyy, HH:mm') ??\n ('@pry.dataset.version.notProvided' | i18n)\n }}</span>\n </div>\n <div>\n <span class=\"a-label\">{{ '@pry.dataset.version.producer' | i18n }}</span>\n <span>{{ selectedVersion?.producer ?? ('@pry.dataset.version.notProvided' | i18n) }}</span>\n </div>\n <div>\n <span class=\"a-label\">{{ '@pry.dataset.version.additionalInformation' | i18n }}</span>\n <div\n class=\"version-information\"\n [innerHTML]=\"\n selectedVersion?.additionalInformation ?? ('@pry.dataset.version.notProvided' | i18n) | mdToHtml\n \"\n ></div>\n </div>\n <button\n *pryAccess=\"{ module: 'admin', page: 'list-dataset', action: 'edit_version' }\"\n role=\"button\"\n class=\"a-btn a-btn--primary u-self-end\"\n (click)=\"editVersion()\"\n >\n {{ '@pry.action.edit' | i18n }}\n </button>\n } @else {\n <pry-dataset-version-form\n [version]=\"selectedVersion\"\n (formValidated)=\"formValidated($event)\"\n ></pry-dataset-version-form>\n }\n </div>\n </div>\n }\n</div>\n\n<ng-template #information>\n <div class=\"u-display-flex -column o-dataset-detail__information\">\n <div>\n <span class=\"a-label\">{{ '@pry.dataset.description' | i18n }}</span>\n <span>{{ dataset.description ?? ('@pry.dataset.version.notProvided' | i18n) }}</span>\n </div>\n @if (dataset.activeVersion) {\n <div>\n <span class=\"a-label\">{{ '@pry.dataset.version.productionDate' | i18n }}</span>\n <span>{{\n (dataset.activeVersion.productionDate | date: 'dd-MM-yyyy, HH:mm') ??\n ('@pry.dataset.version.notProvided' | i18n)\n }}</span>\n </div>\n <div>\n <span class=\"a-label\">{{ '@pry.dataset.version.producer' | i18n }}</span>\n <span>{{ dataset.activeVersion.producer ?? ('@pry.dataset.version.notProvided' | i18n) }}</span>\n </div>\n <div>\n <span class=\"a-label\">{{ '@pry.dataset.version.additionalInformation' | i18n }}</span>\n <div\n class=\"version-information\"\n [innerHTML]=\"\n dataset.activeVersion.additionalInformation ?? ('@pry.dataset.version.notProvided' | i18n) | mdToHtml\n \"\n ></div>\n </div>\n } @else {\n <div class=\"a-p\">\n <p>{{ '@pry.dataset.noActiveVersion' | i18n }}</p>\n </div>\n }\n <div>\n <span class=\"a-label\">{{ '@pry.dataset.tags' | i18n }}</span>\n <div class=\"u-display-flex -wrap\">\n @for (category of dataset.categories; track category.id) {\n <span class=\"a-chip -md\"> {{ category.name }}</span>\n }\n </div>\n </div>\n </div>\n</ng-template>\n\n<ng-template #table>\n <div class=\"dashboard-container\">\n <pry-dashboard [staticDashboard]=\"{ widgets: [widgetManifest['table']] }\"></pry-dashboard>\n </div>\n</ng-template>\n<ng-template #map>\n <div class=\"dashboard-container\">\n <pry-dashboard [staticDashboard]=\"{ widgets: [widgetManifest['map']] }\"></pry-dashboard>\n </div>\n</ng-template>\n<ng-template #datasetVersions>\n <div class=\"dataset-detail__table table-container\">\n <table class=\"a-table\">\n <caption>\n {{\n '@pry.admin.dataset.title' | i18n\n }},\n {{\n '@pry.action.sortableColumnHeader' | i18n\n }}\n </caption>\n <thead>\n <tr>\n <th>{{ '@pry.dataset.version.title' | i18n }}</th>\n <th>{{ '@pry.dataset.date' | i18n }}</th>\n <th>{{ '@pry.dataset.status' | i18n }}</th>\n <th></th>\n <th></th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n @for (version of datasetVersions$ | async; track version) {\n <tr\n (click)=\"togglePanel(version)\"\n [class.-selected]=\"version.id === selectedVersion?.id\"\n >\n <td>\n {{ version.version }}\n @if ((currentDataset$ | async)?.activeVersion?.id === version.id) {\n <pry-icon\n iconSvg=\"check\"\n class=\"check\"\n ></pry-icon>\n }\n </td>\n <td>\n <div\n class=\"a-tooltip\"\n [attr.data-tooltip]=\"version.lastModified | sinceDate: { onlyLocale: true }\"\n data-tooltip-position=\"right\"\n >\n {{ version.lastModified | sinceDate: { onlyLocale: true } }}\n </div>\n </td>\n <td>\n {{\n (version.id === (currentDataset$ | async)?.activeVersion?.id\n ? '@pry.dataset.version.state.currentlyActive'\n : '@pry.dataset.version.state.' + version.state\n ) | i18n\n }}\n @if (version.state !== 'DELETING') {\n <div\n class=\"m-info-icon a-tooltip -tooltip-width-md\"\n [attr.data-tooltip]=\"\n '@pry.dataset.tooltip.' +\n getVersionTooltipContent(version, (currentDataset$ | async)?.activeVersion?.id) | i18n\n \"\n data-tooltip-position=\"right\"\n >\n <span>i</span>\n </div>\n }\n </td>\n <td>\n @if (\n version.state !== 'LOADING' &&\n version.state !== 'INDEXING' &&\n version.state !== 'ERROR' &&\n version.state !== 'DELETING'\n ) {\n @if ((canModify$ | async) && (version.state === 'ACTIVE' || version.state === 'INACTIVE')) {\n <ng-container *pryAccess=\"{ module: 'dashboard', page: 'list-dataset', action: 'activate' }\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--primary a-btn--icon-text ng-star-inserted\"\n (click)=\"handleButtonAction($event, version)\"\n >\n {{ '@pry.dataset.buttonAction.' + version.state | i18n }}\n </button>\n @if (version.state === 'ACTIVE' || version.state === 'INACTIVE') {\n <div\n class=\"m-info-icon a-tooltip -tooltip-width-lg\"\n [attr.data-tooltip]=\"\n (version.state === 'ACTIVE'\n ? '@pry.dataset.tooltip.invalidateButton'\n : '@pry.dataset.tooltip.validateButton'\n ) | i18n\n \"\n data-tooltip-position=\"right\"\n >\n <span>i</span>\n </div>\n }\n </ng-container>\n }\n }\n </td>\n <td>\n @if (version.hasWarnings || version.state === 'ERROR') {\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary a-btn--icon-text ng-star-inserted\"\n (click)=\"consultErrors($event, version)\"\n >\n {{\n (version.state === 'ERROR' ? '@pry.dataset.buttonAction.ERROR' : '@pry.dataset.buttonAction.WARNING')\n | i18n\n }}\n </button>\n }\n </td>\n <td>\n @if (\n (canModify$ | async) &&\n (version.state === 'ACTIVE' || version.state === 'ERROR' || version.state === 'INACTIVE')\n ) {\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary a-btn--icon-text ng-star-inserted\"\n (click)=\"askDelete(version, $event)\"\n >\n {{ '@pry.dataset.buttonAction.delete' | i18n }}\n </button>\n }\n </td>\n </tr>\n }\n </tbody>\n </table>\n </div>\n</ng-template>\n", dependencies: [{ kind: "component", type: i2.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: i2.PryAccessDirective, selector: "[pryAccess]", inputs: ["pryAccess"] }, { kind: "component", type: i2.TabGroupComponent, selector: "pry-tab-group", inputs: ["translationStringBase"], outputs: ["clickedTabIdx"] }, { kind: "component", type: i2.TabComponent, selector: "pry-tab", inputs: ["name", "templateRef", "index"] }, { kind: "component", type: i2.DashboardComponent, selector: "pry-dashboard", inputs: ["staticDashboard", "forceModeEdition", "CloseOnDragOut", "displayOptions", "noBackground", "breakpoint", "linkedItems"], outputs: ["rowHeight", "rows"] }, { kind: "component", type: i3.PryDatasetVersionFormComponent, selector: "pry-dataset-version-form", inputs: ["version"], outputs: ["formValidated"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.DatePipe, name: "date" }, { kind: "pipe", type: i2.I18nPipe, name: "i18n" }, { kind: "pipe", type: i5.MdToHtmlPipe, name: "mdToHtml" }, { kind: "pipe", type: i2.SinceDatePipe, name: "sinceDate" }] }); }
|
|
169
169
|
}
|
|
170
170
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PryDatasetDetailComponent, decorators: [{
|
|
171
171
|
type: Component,
|
|
@@ -22,7 +22,7 @@ export class SearchEffects {
|
|
|
22
22
|
.pipe(map((resultSet) => SearchActions.searchSuccess({
|
|
23
23
|
resultSet,
|
|
24
24
|
id: props.id,
|
|
25
|
-
params: this.searchService.getItemsSerializedParams(props.id, quickOrder),
|
|
25
|
+
params: this.searchService.getItemsSerializedParams(props.id, quickOrder, props.excludeGeo, props.linkedItems),
|
|
26
26
|
next: props.next
|
|
27
27
|
})), catchError((error) => [SearchActions.searchFailure({ error, id: props.id })])))))));
|
|
28
28
|
this.fetchMore$ = createEffect(() => this.actions$.pipe(ofType(DashboardActions.fetchMoreItems), withLatestFrom(this.store.select(DashboardSelectors.rank), this.store.select(DashboardSelectors.resultSets)), filter(([props, rank, rs]) => rank === 0 && !!rs[props.id].searchAfter), debounceTime(300), mergeMap(([props]) => {
|
|
@@ -61,4 +61,4 @@ export class SearchEffects {
|
|
|
61
61
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: SearchEffects, decorators: [{
|
|
62
62
|
type: Injectable
|
|
63
63
|
}], ctorParameters: () => [{ type: i1.Actions }, { type: i2.SearchService }, { type: i3.Store }, { type: i4.WidgetFactoryService }] });
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLmVmZmVjdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9saWIvY29yZS9zdG9yZS9zZWFyY2gvc2VhcmNoLmVmZmVjdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQVcsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RILE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBR2xGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUlwRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7OztBQUdyRCxNQUFNLE9BQU8sYUFBYTtJQUN4QixZQUNVLFFBQWlCLEVBQ2pCLGFBQTRCLEVBQzVCLEtBQVksRUFDWixvQkFBMEM7UUFIMUMsYUFBUSxHQUFSLFFBQVEsQ0FBUztRQUNqQixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixVQUFLLEdBQUwsS0FBSyxDQUFPO1FBQ1oseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQUdwRCxpQkFBWSxHQUFHLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FDL0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQ2hC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Q2YsWUFBWSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFBRSxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUM7YUFDakQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsYUFBYSxDQUFDLHVCQUF1QixDQUFDLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQ3ZHLENBQ0YsQ0FDRixDQUFDO0lBckhDLENBQUM7OEdBTk8sYUFBYTtrSEFBYixhQUFhOzsyRkFBYixhQUFhO2tCQUR6QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aW9ucywgY3JlYXRlRWZmZWN0LCBvZlR5cGUgfSBmcm9tICdAbmdyeC9lZmZlY3RzJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZGVib3VuY2VUaW1lLCBFTVBUWSwgZmlsdGVyLCBncm91cEJ5LCBtYXAsIG1lcmdlTWFwLCBvZiwgc3dpdGNoTWFwLCB3aXRoTGF0ZXN0RnJvbSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRGFzaGJvYXJkQWN0aW9ucyB9IGZyb20gJy4uLy4uLy4uL2Rhc2hib2FyZC9zdG9yZS9kYXNoYm9hcmQuYWN0aW9ucyc7XG5pbXBvcnQgeyBEYXNoYm9hcmRTZWxlY3RvcnMgfSBmcm9tICcuLi8uLi8uLi9kYXNoYm9hcmQvc3RvcmUvZGFzaGJvYXJkLnNlbGVjdG9ycyc7XG5pbXBvcnQgeyBNb25vQ2xhc3NTZWFyY2hQYXlsb2FkIH0gZnJvbSAnLi4vLi4vbW9kZWwvc2VhcmNoLW1vbm8tY2xhc3MubW9kZWwnO1xuaW1wb3J0IHsgRnVsbFRleHRTZWFyY2hQYXlsb2FkLCBNdWx0aUNsYXNzU2VhcmNoUGF5bG9hZCB9IGZyb20gJy4uLy4uL21vZGVsL3NlYXJjaC1tdWx0aS1jbGFzcy5tb2RlbCc7XG5pbXBvcnQgeyBTZWFyY2hBY3Rpb25zIH0gZnJvbSAnLi9zZWFyY2guYWN0aW9ucyc7XG5pbXBvcnQgeyBERUZBVUxUX05BTUVEX1FVRVJZX0lELCBFWFBMT1JFX05BTUVEX1FVRVJZX0lEIH0gZnJvbSAnLi9zZWFyY2guY29uc3RhbnRzJztcbmltcG9ydCB7IFNlYXJjaFNlcnZpY2UgfSBmcm9tICcuL3NlYXJjaC5zZXJ2aWNlJztcbmltcG9ydCB7IFdpZGdldEZhY3RvcnlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vZGFzaGJvYXJkL2NvbXBvbmVudHMvd2lkZ2V0cy93aWRnZXQtaW5zdGFuY2lhdG9yL3dpZGdldC1mYWN0b3J5LnNlcnZpY2UnO1xuaW1wb3J0IHsgV2lkZ2V0TWFuaWZlc3QgfSBmcm9tICcuLi8uLi9tb2RlbC9tYW5pZmVzdC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgU2VhcmNoU2VsZWN0b3JzIH0gZnJvbSAnLi9zZWFyY2guc2VsZWN0b3JzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNlYXJjaEVmZmVjdHMge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGFjdGlvbnMkOiBBY3Rpb25zLFxuICAgIHByaXZhdGUgc2VhcmNoU2VydmljZTogU2VhcmNoU2VydmljZSxcbiAgICBwcml2YXRlIHN0b3JlOiBTdG9yZSxcbiAgICBwcml2YXRlIHdpZGdldEZhY3RvcnlTZXJ2aWNlOiBXaWRnZXRGYWN0b3J5U2VydmljZVxuICApIHt9XG5cbiAgc2VhcmNoTmFtZWQkID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgb2ZUeXBlKFNlYXJjaEFjdGlvbnMuZ2V0RGF0YXNvdXJjZUl0ZW1zKSxcbiAgICAgIHdpdGhMYXRlc3RGcm9tKFxuICAgICAgICB0aGlzLnN0b3JlLnNlbGVjdChEYXNoYm9hcmRTZWxlY3RvcnMucmFuayksXG4gICAgICAgIHRoaXMuc3RvcmUuc2VsZWN0KERhc2hib2FyZFNlbGVjdG9ycy5xdWlja09yZGVyKSxcbiAgICAgICAgdGhpcy5zdG9yZS5zZWxlY3QoRGFzaGJvYXJkU2VsZWN0b3JzLnJlc3VsdFNldHMpXG4gICAgICApLFxuICAgICAgZmlsdGVyKChbXywgcmFua10pID0+IHJhbmsgPT09IDApLFxuICAgICAgZmlsdGVyKChbcHJvcHMsIHJhbmtdKSA9PiBwcm9wcy5pZCAhPT0gREVGQVVMVF9OQU1FRF9RVUVSWV9JRCAmJiBwcm9wcy5pZCAhPT0gRVhQTE9SRV9OQU1FRF9RVUVSWV9JRCksXG4gICAgICBncm91cEJ5KChbcHJvcHMsIHJhbmssIHF1aWNrT3JkZXIsIHJzXSkgPT4gcHJvcHMuaWQpLFxuICAgICAgbWVyZ2VNYXAoKGdyb3VwJCkgPT5cbiAgICAgICAgZ3JvdXAkLnBpcGUoXG4gICAgICAgICAgZGVib3VuY2VUaW1lKDEwMCksXG4gICAgICAgICAgc3dpdGNoTWFwKChbcHJvcHMsIHJhbmssIHF1aWNrT3JkZXIsIHJzXSkgPT5cbiAgICAgICAgICAgIHRoaXMuc2VhcmNoU2VydmljZVxuICAgICAgICAgICAgICAuZ2V0SXRlbXMoXG4gICAgICAgICAgICAgICAgcHJvcHMuaWQsXG4gICAgICAgICAgICAgICAgcXVpY2tPcmRlcltwcm9wcy5pZF0sXG4gICAgICAgICAgICAgICAgcHJvcHMuZXhjbHVkZUdlbyxcbiAgICAgICAgICAgICAgICBwcm9wcy5uZXh0ID8gcnNbcHJvcHMuaWRdLnNlYXJjaEFmdGVyIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIHByb3BzLmxpbmtlZEl0ZW1zXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKChyZXN1bHRTZXQpID0+XG4gICAgICAgICAgICAgICAgICBTZWFyY2hBY3Rpb25zLnNlYXJjaFN1Y2Nlc3Moe1xuICAgICAgICAgICAgICAgICAgICByZXN1bHRTZXQsXG4gICAgICAgICAgICAgICAgICAgIGlkOiBwcm9wcy5pZCxcbiAgICAgICAgICAgICAgICAgICAgcGFyYW1zOiB0aGlzLnNlYXJjaFNlcnZpY2UuZ2V0SXRlbXNTZXJpYWxpemVkUGFyYW1zKHByb3BzLmlkLCBxdWlja09yZGVyKSxcbiAgICAgICAgICAgICAgICAgICAgbmV4dDogcHJvcHMubmV4dFxuICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiBbU2VhcmNoQWN0aW9ucy5zZWFyY2hGYWlsdXJlKHsgZXJyb3IsIGlkOiBwcm9wcy5pZCB9KV0pXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgZmV0Y2hNb3JlJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgIG9mVHlwZShEYXNoYm9hcmRBY3Rpb25zLmZldGNoTW9yZUl0ZW1zKSxcbiAgICAgIHdpdGhMYXRlc3RGcm9tKHRoaXMuc3RvcmUuc2VsZWN0KERhc2hib2FyZFNlbGVjdG9ycy5yYW5rKSwgdGhpcy5zdG9yZS5zZWxlY3QoRGFzaGJvYXJkU2VsZWN0b3JzLnJlc3VsdFNldHMpKSxcbiAgICAgIGZpbHRlcigoW3Byb3BzLCByYW5rLCByc10pID0+IHJhbmsgPT09IDAgJiYgISFyc1twcm9wcy5pZF0uc2VhcmNoQWZ0ZXIpLFxuICAgICAgZGVib3VuY2VUaW1lKDMwMCksXG4gICAgICBtZXJnZU1hcCgoW3Byb3BzXSkgPT4ge1xuICAgICAgICBjb25zdCBkcyA9IHRoaXMud2lkZ2V0RmFjdG9yeVNlcnZpY2UuZGF0YXNvdXJjZXNUb0F1dG9Mb2FkKHtcbiAgICAgICAgICB0eXBlOiBwcm9wcy53aWRnZXRUeXBlLFxuICAgICAgICAgIGRhdGFzb3VyY2U6IFtwcm9wcy5pZF1cbiAgICAgICAgfSBhcyBXaWRnZXRNYW5pZmVzdClbMF07XG5cbiAgICAgICAgaWYgKCEhZHMpIHtcbiAgICAgICAgICByZXR1cm4gb2YoXG4gICAgICAgICAgICBTZWFyY2hBY3Rpb25zLmdldERhdGFzb3VyY2VJdGVtcyh7XG4gICAgICAgICAgICAgIGlkOiBkcy5kYXRhc2V0SWQsXG4gICAgICAgICAgICAgIGV4Y2x1ZGVHZW86IGRzLmV4Y2x1ZGVHZW8sXG4gICAgICAgICAgICAgIGZyb206ICdmZXRjaE1vcmUnLFxuICAgICAgICAgICAgICBuZXh0OiB0cnVlXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIEVNUFRZO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgIClcbiAgKTtcblxuICBzZWFyY2gkID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgb2ZUeXBlKFNlYXJjaEFjdGlvbnMuc2VhcmNoKSxcbiAgICAgIG1lcmdlTWFwKFxuICAgICAgICAocHJvcHM6IHtcbiAgICAgICAgICBwYXlsb2FkOiBNb25vQ2xhc3NTZWFyY2hQYXlsb2FkIHwgTXVsdGlDbGFzc1NlYXJjaFBheWxvYWQgfCBGdWxsVGV4dFNlYXJjaFBheWxvYWQ7XG4gICAgICAgICAgaWQ/OiBzdHJpbmc7XG4gICAgICAgICAgbGlua2VkSXRlbXM/OiAoJ2Rlc3RpbmF0aW9uJyB8ICdzb3VyY2UnKVtdO1xuICAgICAgICB9KSA9PlxuICAgICAgICAgIHRoaXMuc2VhcmNoU2VydmljZS5zZWFyY2gocHJvcHMucGF5bG9hZCwgcHJvcHMuaWQsIHByb3BzLmxpbmtlZEl0ZW1zKS5waXBlKFxuICAgICAgICAgICAgbWFwKChyZXN1bHRTZXQpID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuIFNlYXJjaEFjdGlvbnMuc2VhcmNoU3VjY2Vzcyh7IHJlc3VsdFNldCwgaWQ6IHByb3BzLmlkIH0pO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4gW1NlYXJjaEFjdGlvbnMuc2VhcmNoRmFpbHVyZSh7IGVycm9yLCBpZDogcHJvcHMuaWQgfSldKVxuICAgICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgc2VhcmNoU3VjY2VzcyQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICBvZlR5cGUoU2VhcmNoQWN0aW9ucy5zZWFyY2hTdWNjZXNzKSxcbiAgICAgIG1hcCgoYWN0aW9uKSA9PlxuICAgICAgICBEYXNoYm9hcmRBY3Rpb25zLnVwZGF0ZVJlc3VsdFNldCh7XG4gICAgICAgICAgaWQ6IGFjdGlvbi5pZCA/PyBERUZBVUxUX05BTUVEX1FVRVJZX0lELFxuICAgICAgICAgIHJlc3VsdFNldDogYWN0aW9uLnJlc3VsdFNldCxcbiAgICAgICAgICBwYXJhbXM6IGFjdGlvbi5wYXJhbXMsXG4gICAgICAgICAgbmV4dDogYWN0aW9uLm5leHRcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgZ2V0UG9zc2libGVGaWx0ZXJWYWx1ZXMkID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgb2ZUeXBlKFNlYXJjaEFjdGlvbnMuZ2V0UG9zc2libGVGaWx0ZXJWYWx1ZXMpLFxuICAgICAgd2l0aExhdGVzdEZyb20odGhpcy5zdG9yZS5zZWxlY3QoU2VhcmNoU2VsZWN0b3JzLmZpbHRlclZhbHVlcyksIHRoaXMuc3RvcmUuc2VsZWN0KERhc2hib2FyZFNlbGVjdG9ycy5yYW5rKSksXG4gICAgICBmaWx0ZXIoXG4gICAgICAgIChbYWN0aW9uLCBmaWx0ZXJWYWx1ZXMsIHJhbmtdKSA9PlxuICAgICAgICAgIChhY3Rpb24uZm9yY2UgfHwgIWZpbHRlclZhbHVlc1thY3Rpb24uZmlsdGVySWRdIHx8IGZpbHRlclZhbHVlc1thY3Rpb24uZmlsdGVySWRdLmxlbmd0aCA9PT0gMCkgJiYgcmFuayA9PT0gMFxuICAgICAgKSxcbiAgICAgIG1lcmdlTWFwKChbYWN0aW9uXSkgPT5cbiAgICAgICAgdGhpcy5zZWFyY2hTZXJ2aWNlXG4gICAgICAgICAgLmF1dG9jb21wbGV0ZShhY3Rpb24uYXR0cmlidXRlcywgJycsIGFjdGlvbi5saW1pdClcbiAgICAgICAgICAucGlwZShtYXAoKHZhbHVlcykgPT4gU2VhcmNoQWN0aW9ucy5zZXRQb3NzaWJsZUZpbHRlclZhbHVlcyh7IGZpbHRlcklkOiBhY3Rpb24uZmlsdGVySWQsIHZhbHVlcyB9KSkpXG4gICAgICApXG4gICAgKVxuICApO1xufVxuIl19
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLmVmZmVjdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9saWIvY29yZS9zdG9yZS9zZWFyY2gvc2VhcmNoLmVmZmVjdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQVcsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RILE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBR2xGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUlwRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7OztBQUdyRCxNQUFNLE9BQU8sYUFBYTtJQUN4QixZQUNVLFFBQWlCLEVBQ2pCLGFBQTRCLEVBQzVCLEtBQVksRUFDWixvQkFBMEM7UUFIMUMsYUFBUSxHQUFSLFFBQVEsQ0FBUztRQUNqQixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixVQUFLLEdBQUwsS0FBSyxDQUFPO1FBQ1oseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQUdwRCxpQkFBWSxHQUFHLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FDL0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQ2hC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QUFNLENBQUMsRUFBRSxFQUFFLENBQ3BCLElBQUksQ0FBQyxhQUFhO2FBQ2YsWUFBWSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFBRSxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUM7YUFDakQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsYUFBYSxDQUFDLHVCQUF1QixDQUFDLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQ3ZHLENBQ0YsQ0FDRixDQUFDO0lBMUhDLENBQUM7OEdBTk8sYUFBYTtrSEFBYixhQUFhOzsyRkFBYixhQUFhO2tCQUR6QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aW9ucywgY3JlYXRlRWZmZWN0LCBvZlR5cGUgfSBmcm9tICdAbmdyeC9lZmZlY3RzJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZGVib3VuY2VUaW1lLCBFTVBUWSwgZmlsdGVyLCBncm91cEJ5LCBtYXAsIG1lcmdlTWFwLCBvZiwgc3dpdGNoTWFwLCB3aXRoTGF0ZXN0RnJvbSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRGFzaGJvYXJkQWN0aW9ucyB9IGZyb20gJy4uLy4uLy4uL2Rhc2hib2FyZC9zdG9yZS9kYXNoYm9hcmQuYWN0aW9ucyc7XG5pbXBvcnQgeyBEYXNoYm9hcmRTZWxlY3RvcnMgfSBmcm9tICcuLi8uLi8uLi9kYXNoYm9hcmQvc3RvcmUvZGFzaGJvYXJkLnNlbGVjdG9ycyc7XG5pbXBvcnQgeyBNb25vQ2xhc3NTZWFyY2hQYXlsb2FkIH0gZnJvbSAnLi4vLi4vbW9kZWwvc2VhcmNoLW1vbm8tY2xhc3MubW9kZWwnO1xuaW1wb3J0IHsgRnVsbFRleHRTZWFyY2hQYXlsb2FkLCBNdWx0aUNsYXNzU2VhcmNoUGF5bG9hZCB9IGZyb20gJy4uLy4uL21vZGVsL3NlYXJjaC1tdWx0aS1jbGFzcy5tb2RlbCc7XG5pbXBvcnQgeyBTZWFyY2hBY3Rpb25zIH0gZnJvbSAnLi9zZWFyY2guYWN0aW9ucyc7XG5pbXBvcnQgeyBERUZBVUxUX05BTUVEX1FVRVJZX0lELCBFWFBMT1JFX05BTUVEX1FVRVJZX0lEIH0gZnJvbSAnLi9zZWFyY2guY29uc3RhbnRzJztcbmltcG9ydCB7IFNlYXJjaFNlcnZpY2UgfSBmcm9tICcuL3NlYXJjaC5zZXJ2aWNlJztcbmltcG9ydCB7IFdpZGdldEZhY3RvcnlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vZGFzaGJvYXJkL2NvbXBvbmVudHMvd2lkZ2V0cy93aWRnZXQtaW5zdGFuY2lhdG9yL3dpZGdldC1mYWN0b3J5LnNlcnZpY2UnO1xuaW1wb3J0IHsgV2lkZ2V0TWFuaWZlc3QgfSBmcm9tICcuLi8uLi9tb2RlbC9tYW5pZmVzdC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgU2VhcmNoU2VsZWN0b3JzIH0gZnJvbSAnLi9zZWFyY2guc2VsZWN0b3JzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNlYXJjaEVmZmVjdHMge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGFjdGlvbnMkOiBBY3Rpb25zLFxuICAgIHByaXZhdGUgc2VhcmNoU2VydmljZTogU2VhcmNoU2VydmljZSxcbiAgICBwcml2YXRlIHN0b3JlOiBTdG9yZSxcbiAgICBwcml2YXRlIHdpZGdldEZhY3RvcnlTZXJ2aWNlOiBXaWRnZXRGYWN0b3J5U2VydmljZVxuICApIHt9XG5cbiAgc2VhcmNoTmFtZWQkID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgb2ZUeXBlKFNlYXJjaEFjdGlvbnMuZ2V0RGF0YXNvdXJjZUl0ZW1zKSxcbiAgICAgIHdpdGhMYXRlc3RGcm9tKFxuICAgICAgICB0aGlzLnN0b3JlLnNlbGVjdChEYXNoYm9hcmRTZWxlY3RvcnMucmFuayksXG4gICAgICAgIHRoaXMuc3RvcmUuc2VsZWN0KERhc2hib2FyZFNlbGVjdG9ycy5xdWlja09yZGVyKSxcbiAgICAgICAgdGhpcy5zdG9yZS5zZWxlY3QoRGFzaGJvYXJkU2VsZWN0b3JzLnJlc3VsdFNldHMpXG4gICAgICApLFxuICAgICAgZmlsdGVyKChbXywgcmFua10pID0+IHJhbmsgPT09IDApLFxuICAgICAgZmlsdGVyKChbcHJvcHMsIHJhbmtdKSA9PiBwcm9wcy5pZCAhPT0gREVGQVVMVF9OQU1FRF9RVUVSWV9JRCAmJiBwcm9wcy5pZCAhPT0gRVhQTE9SRV9OQU1FRF9RVUVSWV9JRCksXG4gICAgICBncm91cEJ5KChbcHJvcHMsIHJhbmssIHF1aWNrT3JkZXIsIHJzXSkgPT4gcHJvcHMuaWQpLFxuICAgICAgbWVyZ2VNYXAoKGdyb3VwJCkgPT5cbiAgICAgICAgZ3JvdXAkLnBpcGUoXG4gICAgICAgICAgZGVib3VuY2VUaW1lKDEwMCksXG4gICAgICAgICAgc3dpdGNoTWFwKChbcHJvcHMsIHJhbmssIHF1aWNrT3JkZXIsIHJzXSkgPT5cbiAgICAgICAgICAgIHRoaXMuc2VhcmNoU2VydmljZVxuICAgICAgICAgICAgICAuZ2V0SXRlbXMoXG4gICAgICAgICAgICAgICAgcHJvcHMuaWQsXG4gICAgICAgICAgICAgICAgcXVpY2tPcmRlcltwcm9wcy5pZF0sXG4gICAgICAgICAgICAgICAgcHJvcHMuZXhjbHVkZUdlbyxcbiAgICAgICAgICAgICAgICBwcm9wcy5uZXh0ID8gcnNbcHJvcHMuaWRdLnNlYXJjaEFmdGVyIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIHByb3BzLmxpbmtlZEl0ZW1zXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKChyZXN1bHRTZXQpID0+XG4gICAgICAgICAgICAgICAgICBTZWFyY2hBY3Rpb25zLnNlYXJjaFN1Y2Nlc3Moe1xuICAgICAgICAgICAgICAgICAgICByZXN1bHRTZXQsXG4gICAgICAgICAgICAgICAgICAgIGlkOiBwcm9wcy5pZCxcbiAgICAgICAgICAgICAgICAgICAgcGFyYW1zOiB0aGlzLnNlYXJjaFNlcnZpY2UuZ2V0SXRlbXNTZXJpYWxpemVkUGFyYW1zKFxuICAgICAgICAgICAgICAgICAgICAgIHByb3BzLmlkLFxuICAgICAgICAgICAgICAgICAgICAgIHF1aWNrT3JkZXIsXG4gICAgICAgICAgICAgICAgICAgICAgcHJvcHMuZXhjbHVkZUdlbyxcbiAgICAgICAgICAgICAgICAgICAgICBwcm9wcy5saW5rZWRJdGVtc1xuICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICBuZXh0OiBwcm9wcy5uZXh0XG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IFtTZWFyY2hBY3Rpb25zLnNlYXJjaEZhaWx1cmUoeyBlcnJvciwgaWQ6IHByb3BzLmlkIH0pXSlcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICBmZXRjaE1vcmUkID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgb2ZUeXBlKERhc2hib2FyZEFjdGlvbnMuZmV0Y2hNb3JlSXRlbXMpLFxuICAgICAgd2l0aExhdGVzdEZyb20odGhpcy5zdG9yZS5zZWxlY3QoRGFzaGJvYXJkU2VsZWN0b3JzLnJhbmspLCB0aGlzLnN0b3JlLnNlbGVjdChEYXNoYm9hcmRTZWxlY3RvcnMucmVzdWx0U2V0cykpLFxuICAgICAgZmlsdGVyKChbcHJvcHMsIHJhbmssIHJzXSkgPT4gcmFuayA9PT0gMCAmJiAhIXJzW3Byb3BzLmlkXS5zZWFyY2hBZnRlciksXG4gICAgICBkZWJvdW5jZVRpbWUoMzAwKSxcbiAgICAgIG1lcmdlTWFwKChbcHJvcHNdKSA9PiB7XG4gICAgICAgIGNvbnN0IGRzID0gdGhpcy53aWRnZXRGYWN0b3J5U2VydmljZS5kYXRhc291cmNlc1RvQXV0b0xvYWQoe1xuICAgICAgICAgIHR5cGU6IHByb3BzLndpZGdldFR5cGUsXG4gICAgICAgICAgZGF0YXNvdXJjZTogW3Byb3BzLmlkXVxuICAgICAgICB9IGFzIFdpZGdldE1hbmlmZXN0KVswXTtcblxuICAgICAgICBpZiAoISFkcykge1xuICAgICAgICAgIHJldHVybiBvZihcbiAgICAgICAgICAgIFNlYXJjaEFjdGlvbnMuZ2V0RGF0YXNvdXJjZUl0ZW1zKHtcbiAgICAgICAgICAgICAgaWQ6IGRzLmRhdGFzZXRJZCxcbiAgICAgICAgICAgICAgZXhjbHVkZUdlbzogZHMuZXhjbHVkZUdlbyxcbiAgICAgICAgICAgICAgZnJvbTogJ2ZldGNoTW9yZScsXG4gICAgICAgICAgICAgIG5leHQ6IHRydWVcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gRU1QVFk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKVxuICApO1xuXG4gIHNlYXJjaCQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICBvZlR5cGUoU2VhcmNoQWN0aW9ucy5zZWFyY2gpLFxuICAgICAgbWVyZ2VNYXAoXG4gICAgICAgIChwcm9wczoge1xuICAgICAgICAgIHBheWxvYWQ6IE1vbm9DbGFzc1NlYXJjaFBheWxvYWQgfCBNdWx0aUNsYXNzU2VhcmNoUGF5bG9hZCB8IEZ1bGxUZXh0U2VhcmNoUGF5bG9hZDtcbiAgICAgICAgICBpZD86IHN0cmluZztcbiAgICAgICAgICBsaW5rZWRJdGVtcz86ICgnZGVzdGluYXRpb24nIHwgJ3NvdXJjZScpW107XG4gICAgICAgIH0pID0+XG4gICAgICAgICAgdGhpcy5zZWFyY2hTZXJ2aWNlLnNlYXJjaChwcm9wcy5wYXlsb2FkLCBwcm9wcy5pZCwgcHJvcHMubGlua2VkSXRlbXMpLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHJlc3VsdFNldCkgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4gU2VhcmNoQWN0aW9ucy5zZWFyY2hTdWNjZXNzKHsgcmVzdWx0U2V0LCBpZDogcHJvcHMuaWQgfSk7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiBbU2VhcmNoQWN0aW9ucy5zZWFyY2hGYWlsdXJlKHsgZXJyb3IsIGlkOiBwcm9wcy5pZCB9KV0pXG4gICAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICBzZWFyY2hTdWNjZXNzJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgIG9mVHlwZShTZWFyY2hBY3Rpb25zLnNlYXJjaFN1Y2Nlc3MpLFxuICAgICAgbWFwKChhY3Rpb24pID0+XG4gICAgICAgIERhc2hib2FyZEFjdGlvbnMudXBkYXRlUmVzdWx0U2V0KHtcbiAgICAgICAgICBpZDogYWN0aW9uLmlkID8/IERFRkFVTFRfTkFNRURfUVVFUllfSUQsXG4gICAgICAgICAgcmVzdWx0U2V0OiBhY3Rpb24ucmVzdWx0U2V0LFxuICAgICAgICAgIHBhcmFtczogYWN0aW9uLnBhcmFtcyxcbiAgICAgICAgICBuZXh0OiBhY3Rpb24ubmV4dFxuICAgICAgICB9KVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICBnZXRQb3NzaWJsZUZpbHRlclZhbHVlcyQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICBvZlR5cGUoU2VhcmNoQWN0aW9ucy5nZXRQb3NzaWJsZUZpbHRlclZhbHVlcyksXG4gICAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLnN0b3JlLnNlbGVjdChTZWFyY2hTZWxlY3RvcnMuZmlsdGVyVmFsdWVzKSwgdGhpcy5zdG9yZS5zZWxlY3QoRGFzaGJvYXJkU2VsZWN0b3JzLnJhbmspKSxcbiAgICAgIGZpbHRlcihcbiAgICAgICAgKFthY3Rpb24sIGZpbHRlclZhbHVlcywgcmFua10pID0+XG4gICAgICAgICAgKGFjdGlvbi5mb3JjZSB8fCAhZmlsdGVyVmFsdWVzW2FjdGlvbi5maWx0ZXJJZF0gfHwgZmlsdGVyVmFsdWVzW2FjdGlvbi5maWx0ZXJJZF0ubGVuZ3RoID09PSAwKSAmJiByYW5rID09PSAwXG4gICAgICApLFxuICAgICAgbWVyZ2VNYXAoKFthY3Rpb25dKSA9PlxuICAgICAgICB0aGlzLnNlYXJjaFNlcnZpY2VcbiAgICAgICAgICAuYXV0b2NvbXBsZXRlKGFjdGlvbi5hdHRyaWJ1dGVzLCAnJywgYWN0aW9uLmxpbWl0KVxuICAgICAgICAgIC5waXBlKG1hcCgodmFsdWVzKSA9PiBTZWFyY2hBY3Rpb25zLnNldFBvc3NpYmxlRmlsdGVyVmFsdWVzKHsgZmlsdGVySWQ6IGFjdGlvbi5maWx0ZXJJZCwgdmFsdWVzIH0pKSlcbiAgICAgIClcbiAgICApXG4gICk7XG59XG4iXX0=
|
|
@@ -37,17 +37,26 @@ export class SearchService {
|
|
|
37
37
|
}
|
|
38
38
|
return this.store.select(ConfigSelectors.dataUrl).pipe(mergeMap((url) => {
|
|
39
39
|
const ds = this.datasources.find((d) => d.id === id);
|
|
40
|
+
const otherParams = {};
|
|
41
|
+
if (linkedItems.length > 0) {
|
|
42
|
+
if (linkedItems.includes('destination')) {
|
|
43
|
+
otherParams['withDestinationItems'] = 'true';
|
|
44
|
+
}
|
|
45
|
+
if (linkedItems.includes('source')) {
|
|
46
|
+
otherParams['withSourceItems'] = 'true';
|
|
47
|
+
}
|
|
48
|
+
}
|
|
40
49
|
return this.httpClient.post(encodeURI(`${url}/data-sources/id/${id}/items`), {
|
|
41
50
|
type: ds?.sourceType === 'namedQuery' ? ds.request.type : NamedQueryTypes.MONO_CLASS,
|
|
42
51
|
excludeGeo: excludeGeo ?? false,
|
|
43
52
|
searchAfter: searchAfter ?? undefined,
|
|
44
|
-
|
|
45
|
-
|
|
53
|
+
limit: this.limits[id] || this.limits['default'],
|
|
54
|
+
...otherParams
|
|
46
55
|
}, { params });
|
|
47
56
|
}), map((rs) => this.applyTransformations(id, rs)));
|
|
48
57
|
}
|
|
49
|
-
getItemsSerializedParams(id, quickOrder = {}) {
|
|
50
|
-
return
|
|
58
|
+
getItemsSerializedParams(id, quickOrder = {}, excludeGeo, linkedItems) {
|
|
59
|
+
return `|${this.getItemsFilter(id, this.getOrder(quickOrder[id])).toString()}|${excludeGeo ? 'excludeGeo' : ''}|${linkedItems?.join(',')}|`;
|
|
51
60
|
}
|
|
52
61
|
getItemsFilter(id, cumulative) {
|
|
53
62
|
let params = cumulative ?? new HttpParams({ encoder: new FilterParamEncoder() });
|
|
@@ -142,4 +151,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
142
151
|
providedIn: 'root'
|
|
143
152
|
}]
|
|
144
153
|
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.Store }] });
|
|
145
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9saWIvY29yZS9zdG9yZS9zZWFyY2gvc2VhcmNoLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzlELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFjLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQU9sRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFNUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzFELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7OztBQVEzRSxNQUFNLE9BQU8sYUFBYTtJQU14QixZQUNVLFVBQXNCLEVBQ3RCLEtBQXVDO1FBRHZDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsVUFBSyxHQUFMLEtBQUssQ0FBa0M7UUFQakQsb0JBQWUsR0FBOEIsRUFBRSxDQUFDO1FBQ2hELFlBQU8sR0FBOEMsRUFBRSxDQUFDO1FBQ3hELFdBQU0sR0FBNEIsRUFBRSxDQUFDO1FBQ3JDLGdCQUFXLEdBQWlCLEVBQUUsQ0FBQztRQU03QixLQUFLLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLGlCQUFpQixDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDdkUsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDekIsQ0FBQyxDQUFDLENBQUM7UUFDSCxLQUFLLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUN4RCxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUN2QixDQUFDLENBQUMsQ0FBQztRQUNILEtBQUssQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsY0FBYyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUU7WUFDekUsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7UUFDakMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsUUFBUSxDQUNOLEVBQVUsRUFDVixVQUF3QixFQUN4QixVQUFvQixFQUNwQixXQUFvQixFQUNwQixjQUE0QyxFQUFFO1FBRTlDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztRQUNsRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDUixPQUFPLENBQUMsSUFBSSxDQUFDLHdEQUF3RCxDQUFDLENBQUM7WUFDdkUsT0FBTyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQWUsQ0FBQyxDQUFDO1FBQ3ZELENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQ3BELFFBQVEsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ2YsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDckQsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FDekIsU0FBUyxDQUFDLEdBQUcsR0FBRyxvQkFBb0IsRUFBRSxRQUFRLENBQUMsRUFDL0M7Z0JBQ0UsSUFBSSxFQUFFLEVBQUUsRUFBRSxVQUFVLEtBQUssWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLFVBQVU7Z0JBQ3BGLFVBQVUsRUFBRSxVQUFVLElBQUksS0FBSztnQkFDL0IsV0FBVyxFQUFFLFdBQVcsSUFBSSxTQUFTO2dCQUNyQyxXQUFXO2dCQUNYLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDO2FBQ2pELEVBQ0QsRUFBRSxNQUFNLEVBQUUsQ0FDWCxDQUFDO1FBQ0osQ0FBQyxDQUFDLEVBQ0YsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQy9DLENBQUM7SUFDSixDQUFDO0lBRUQsd0JBQXdCLENBQUMsRUFBVSxFQUFFLGFBQXdELEVBQUU7UUFDN0YsT0FBTyxHQUFHLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxHQUFHLEdBQUcsQ0FBQztJQUN2RixDQUFDO0lBRUQsY0FBYyxDQUFDLEVBQVUsRUFBRSxVQUF1QjtRQUNoRCxJQUFJLE1BQU0sR0FBRyxVQUFVLElBQUksSUFBSSxVQUFVLENBQUMsRUFBRSxPQUFPLEVBQUUsSUFBSSxrQkFBa0IsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNqRixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztpQkFDYixNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEtBQUssSUFBSSxJQUFJLE1BQU0sQ0FBQyxLQUFLLEtBQUssU0FBUyxDQUFDO2lCQUN2RSxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtnQkFDbEIsSUFBSSxtQkFBbUIsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO2dCQUN2QyxzR0FBc0c7Z0JBQ3RHLDJEQUEyRDtnQkFDM0QsTUFBTSxhQUFhLEdBQUcsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLFNBQVMsQ0FBQztnQkFDakcsSUFBSSxhQUFhLEVBQUUsQ0FBQztvQkFDbEIsbUJBQW1CLEdBQUksTUFBTSxDQUFDLEtBQWdCLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUM1RCxDQUFDO2dCQUNELG9EQUFvRDtnQkFDcEQsSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLE1BQU0sRUFBRSxDQUFDO29CQUMzQixtQkFBbUIsR0FBRyxhQUFhO3dCQUNqQyxDQUFDLENBQUUsbUJBQWdDLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7d0JBQ3JGLENBQUMsQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsbUJBQTZCLENBQUMsQ0FBQztnQkFDaEUsQ0FBQztnQkFDRCxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDO29CQUM5QyxDQUFDLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztvQkFDbkcsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLG1CQUFvQixDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztnQkFDN0UsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLEdBQUcsTUFBTSxDQUFDLFNBQVMsSUFBSSxNQUFNLENBQUMsUUFBUSxJQUFJLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDdEYsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELFFBQVEsQ0FBQyxVQUFtQztRQUMxQyxJQUFJLE1BQU0sR0FBRyxJQUFJLFVBQVUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLGtCQUFrQixFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ25FLElBQUksVUFBVSxFQUFFLENBQUM7WUFDZixNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsR0FBRyxVQUFVLENBQUMsU0FBUyxJQUFJLFVBQVUsQ0FBQyxHQUFHLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNyRixDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQztRQUM5QyxDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FDSixTQUFtRixFQUNuRixFQUFXLEVBQ1gsa0JBQWdELEVBQUU7UUFFbEQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUNwRCxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFDdEIsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUNQLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsRUFDM0csUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsVUFBVSxFQUFFLE1BQU0sQ0FBQyxFQUFFLEVBQUU7WUFDckMsTUFBTSxNQUFNLEdBQUcsRUFBK0IsQ0FBQztZQUMvQyxJQUFJLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFLENBQUM7Z0JBQ3ZDLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxHQUFHLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFLFNBQVMsSUFDaEUsVUFBVSxDQUFDLHNCQUFzQixDQUFDLEVBQUUsR0FBRyxJQUFJLEVBQzdDLEVBQUUsQ0FBQztZQUNMLENBQUM7WUFDRCxNQUFNLFdBQVcsR0FBOEIsRUFBRSxDQUFDO1lBQ2xELElBQUksZUFBZSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDL0IsSUFBSSxlQUFlLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7b0JBQzVDLFdBQVcsQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLE1BQU0sQ0FBQztnQkFDL0MsQ0FBQztnQkFDRCxJQUFJLGVBQWUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztvQkFDdkMsV0FBVyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsTUFBTSxDQUFDO2dCQUMxQyxDQUFDO1lBQ0gsQ0FBQztZQUNELE1BQU0sVUFBVSxHQUFHLEVBQUUsR0FBRyxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxHQUFHLFdBQVcsRUFBRSxDQUFDO1lBQ2hILE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQVksU0FBUyxDQUFDLEdBQUcsR0FBRyxlQUFlLENBQUMsRUFBRSxVQUFVLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ25HLENBQUMsQ0FBQyxFQUNGLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEVBQUUsSUFBSSxzQkFBc0IsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUN6RSxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7T0FHRztJQUNILGlCQUFpQixDQUFDLElBQTZCO1FBQzdDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsb0JBQW9CLENBQUMsRUFBVSxFQUFFLEVBQWE7UUFDNUMsSUFBSSxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsRUFBRSxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM5RSxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0lBRUQsWUFBWSxDQUNWLFVBS2EsRUFDYixTQUFpQixFQUFFLEVBQ25CLEtBQWM7UUFFZCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQ3BELFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQ2hCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFXLFNBQVMsQ0FBQyxHQUFHLEdBQUcsc0JBQXNCLENBQUMsRUFBRTtZQUN0RSxVQUFVLEVBQUUsQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ25HLEtBQUssRUFBRSxNQUFNO1lBQ2IsS0FBSztTQUNOLENBQUMsQ0FDSCxDQUNGLENBQUM7SUFDSixDQUFDOzhHQXpLVSxhQUFhO2tIQUFiLGFBQWEsY0FGWixNQUFNOzsyRkFFUCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IGZpbHRlciwgbWFwLCBtZXJnZU1hcCwgT2JzZXJ2YWJsZSwgb2YsIHN3aXRjaE1hcCwgdGFrZSwgd2l0aExhdGVzdEZyb20gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERhc2hib2FyZFNlbGVjdG9ycyB9IGZyb20gJy4uLy4uLy4uL2Rhc2hib2FyZC9zdG9yZS9kYXNoYm9hcmQuc2VsZWN0b3JzJztcbmltcG9ydCB7IEZpbHRlckNvbnRleHQgfSBmcm9tICcuLi8uLi9tb2RlbC9maWx0ZXIuaW50ZXJmYWNlJztcbmltcG9ydCB7IFJlc3VsdE9yZGVyIH0gZnJvbSAnLi4vLi4vbW9kZWwvcmVzdWx0LW9yZGVyLmludGVyZmFjZSc7XG5pbXBvcnQgeyBSZXN1bHRTZXQgfSBmcm9tICcuLi8uLi9tb2RlbC9yZXN1bHQtc2V0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBNb25vQ2xhc3NTZWFyY2hQYXlsb2FkIH0gZnJvbSAnLi4vLi4vbW9kZWwvc2VhcmNoLW1vbm8tY2xhc3MubW9kZWwnO1xuaW1wb3J0IHsgRnVsbFRleHRTZWFyY2hQYXlsb2FkLCBNdWx0aUNsYXNzU2VhcmNoUGF5bG9hZCB9IGZyb20gJy4uLy4uL21vZGVsL3NlYXJjaC1tdWx0aS1jbGFzcy5tb2RlbCc7XG5pbXBvcnQgeyBDb25maWdTdGF0ZSB9IGZyb20gJy4uL2NvbmZpZy9jb25maWcucmVkdWNlcic7XG5pbXBvcnQgeyBDb25maWdTZWxlY3RvcnMgfSBmcm9tICcuLi9jb25maWcvY29uZmlnLnNlbGVjdG9ycyc7XG5pbXBvcnQgeyBERUZBVUxUX05BTUVEX1FVRVJZX0lEIH0gZnJvbSAnLi9zZWFyY2guY29uc3RhbnRzJztcbmltcG9ydCB7IFNlYXJjaFN0YXRlIH0gZnJvbSAnLi9zZWFyY2gucmVkdWNlcic7XG5pbXBvcnQgeyBGaWx0ZXJQYXJhbUVuY29kZXIgfSBmcm9tICcuL2ZpbHRlci1wYXJhbS1lbmNvZGVyJztcbmltcG9ydCB7IERhdGVVdGlscyB9IGZyb20gJy4uLy4uLy4uL2Rhc2hib2FyZC9kYXRlLXV0aWxzJztcbmltcG9ydCB7IE5hbWVkUXVlcnlUeXBlcyB9IGZyb20gJy4uL2RhdGEtc291cmNlL25hbWVkLXF1ZXJ5LXR5cGVzLm1vZGVsJztcbmltcG9ydCB7IERhdGFTb3VyY2VTZWxlY3RvcnMgfSBmcm9tICcuLi9kYXRhLXNvdXJjZS9kYXRhLXNvdXJjZS5zZWxlY3RvcnMnO1xuaW1wb3J0IHsgRGF0YVNvdXJjZSB9IGZyb20gJy4uL2RhdGEtc291cmNlL2RhdGEtc291cmNlLm1vZGVsJztcblxuZXhwb3J0IHR5cGUgUmVzdWx0c2V0VHJhbnNmb3JtYXRpb24gPSAoaWQ6IHN0cmluZywgcmVzdWx0OiBSZXN1bHRTZXQpID0+IFJlc3VsdFNldDtcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgU2VhcmNoU2VydmljZSB7XG4gIHRyYW5zZm9ybWF0aW9uczogUmVzdWx0c2V0VHJhbnNmb3JtYXRpb25bXSA9IFtdO1xuICBmaWx0ZXJzOiB7IFtkYXRhc291cmNlOiBzdHJpbmddOiBGaWx0ZXJDb250ZXh0W10gfSA9IHt9O1xuICBsaW1pdHM6IHsgW3A6IHN0cmluZ106IG51bWJlciB9ID0ge307XG4gIGRhdGFzb3VyY2VzOiBEYXRhU291cmNlW10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQsXG4gICAgcHJpdmF0ZSBzdG9yZTogU3RvcmU8Q29uZmlnU3RhdGUgfCBTZWFyY2hTdGF0ZT5cbiAgKSB7XG4gICAgc3RvcmUuc2VsZWN0KERhc2hib2FyZFNlbGVjdG9ycy5kYXRhc291cmNlRmlsdGVycykuc3Vic2NyaWJlKChmaWx0ZXJzKSA9PiB7XG4gICAgICB0aGlzLmZpbHRlcnMgPSBmaWx0ZXJzO1xuICAgIH0pO1xuICAgIHN0b3JlLnNlbGVjdChDb25maWdTZWxlY3RvcnMubGltaXRzKS5zdWJzY3JpYmUoKGxpbWl0cykgPT4ge1xuICAgICAgdGhpcy5saW1pdHMgPSBsaW1pdHM7XG4gICAgfSk7XG4gICAgc3RvcmUuc2VsZWN0KERhdGFTb3VyY2VTZWxlY3RvcnMuZ2V0RGF0YVNvdXJjZXMpLnN1YnNjcmliZSgoZGF0YXNvdXJjZXMpID0+IHtcbiAgICAgIHRoaXMuZGF0YXNvdXJjZXMgPSBkYXRhc291cmNlcztcbiAgICB9KTtcbiAgfVxuXG4gIGdldEl0ZW1zKFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcXVpY2tPcmRlcj86IFJlc3VsdE9yZGVyLFxuICAgIGV4Y2x1ZGVHZW8/OiBib29sZWFuLFxuICAgIHNlYXJjaEFmdGVyPzogc3RyaW5nLFxuICAgIGxpbmtlZEl0ZW1zOiAoJ2Rlc3RpbmF0aW9uJyB8ICdzb3VyY2UnKVtdID0gW11cbiAgKTogT2JzZXJ2YWJsZTxSZXN1bHRTZXQ+IHtcbiAgICBjb25zdCBwYXJhbXMgPSB0aGlzLmdldEl0ZW1zRmlsdGVyKGlkLCB0aGlzLmdldE9yZGVyKHF1aWNrT3JkZXIpKTtcbiAgICBpZiAoIWlkKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ05vdCBzZW5kaW5nIGl0ZW1zIHJlcXVlc3Qgd2l0aCBubyBkYXRhc291cmNlIGF0dGFjaGVkLicpO1xuICAgICAgcmV0dXJuIG9mKHsgaXRlbXM6IHt9LCByZWxhdGlvbnM6IFtdIH0gYXMgUmVzdWx0U2V0KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5zdG9yZS5zZWxlY3QoQ29uZmlnU2VsZWN0b3JzLmRhdGFVcmwpLnBpcGUoXG4gICAgICBtZXJnZU1hcCgodXJsKSA9PiB7XG4gICAgICAgIGNvbnN0IGRzID0gdGhpcy5kYXRhc291cmNlcy5maW5kKChkKSA9PiBkLmlkID09PSBpZCk7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdDxSZXN1bHRTZXQ+KFxuICAgICAgICAgIGVuY29kZVVSSShgJHt1cmx9L2RhdGEtc291cmNlcy9pZC8ke2lkfS9pdGVtc2ApLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHR5cGU6IGRzPy5zb3VyY2VUeXBlID09PSAnbmFtZWRRdWVyeScgPyBkcy5yZXF1ZXN0LnR5cGUgOiBOYW1lZFF1ZXJ5VHlwZXMuTU9OT19DTEFTUyxcbiAgICAgICAgICAgIGV4Y2x1ZGVHZW86IGV4Y2x1ZGVHZW8gPz8gZmFsc2UsXG4gICAgICAgICAgICBzZWFyY2hBZnRlcjogc2VhcmNoQWZ0ZXIgPz8gdW5kZWZpbmVkLFxuICAgICAgICAgICAgbGlua2VkSXRlbXMsXG4gICAgICAgICAgICBsaW1pdDogdGhpcy5saW1pdHNbaWRdIHx8IHRoaXMubGltaXRzWydkZWZhdWx0J11cbiAgICAgICAgICB9LFxuICAgICAgICAgIHsgcGFyYW1zIH1cbiAgICAgICAgKTtcbiAgICAgIH0pLFxuICAgICAgbWFwKChycykgPT4gdGhpcy5hcHBseVRyYW5zZm9ybWF0aW9ucyhpZCwgcnMpKVxuICAgICk7XG4gIH1cblxuICBnZXRJdGVtc1NlcmlhbGl6ZWRQYXJhbXMoaWQ6IHN0cmluZywgcXVpY2tPcmRlcjogeyBbaWQ6IHN0cmluZ106IFJlc3VsdE9yZGVyIHwgdW5kZWZpbmVkIH0gPSB7fSk6IHN0cmluZyB7XG4gICAgcmV0dXJuICd8JyArIHRoaXMuZ2V0SXRlbXNGaWx0ZXIoaWQsIHRoaXMuZ2V0T3JkZXIocXVpY2tPcmRlcltpZF0pKS50b1N0cmluZygpICsgJ3wnO1xuICB9XG5cbiAgZ2V0SXRlbXNGaWx0ZXIoaWQ6IHN0cmluZywgY3VtdWxhdGl2ZT86IEh0dHBQYXJhbXMpOiBIdHRwUGFyYW1zIHtcbiAgICBsZXQgcGFyYW1zID0gY3VtdWxhdGl2ZSA/PyBuZXcgSHR0cFBhcmFtcyh7IGVuY29kZXI6IG5ldyBGaWx0ZXJQYXJhbUVuY29kZXIoKSB9KTtcbiAgICBpZiAodGhpcy5maWx0ZXJzW2lkXSkge1xuICAgICAgdGhpcy5maWx0ZXJzW2lkXVxuICAgICAgICAuZmlsdGVyKChmaWx0ZXIpID0+IGZpbHRlci52YWx1ZSAhPT0gbnVsbCAmJiBmaWx0ZXIudmFsdWUgIT09IHVuZGVmaW5lZClcbiAgICAgICAgLmZvckVhY2goKGZpbHRlcikgPT4ge1xuICAgICAgICAgIGxldCB2YWx1ZXNUb0FkZFRvUGFyYW1zID0gZmlsdGVyLnZhbHVlO1xuICAgICAgICAgIC8vIElOU0lERSBhbmQgT1VUU0lERSBvcGVyYXRvcnMgdXNlcyAyIHZhbHVlcyBidXQgbm90IHNlbnQgaW4gYW4gYXJyYXksIHZhbHVlcyBhcmUgc2VwYXJhdGVkIGJ5IGEgY29tYVxuICAgICAgICAgIC8vIHdpY2ggbXVzdCBub3QgYmUgZW5jb2RlZCAoYXMgaWYgdmFsdWVzIHdlcmUgaW4gYW4gYXJyYXkpXG4gICAgICAgICAgY29uc3QgaXNNdWx0aVZhbHVlZCA9IFsnSU5TSURFJywgJ09VVFNJREUnXS5maW5kKCh2YWwpID0+IHZhbCA9PT0gZmlsdGVyLm9wZXJhdG9yKSAhPT0gdW5kZWZpbmVkO1xuICAgICAgICAgIGlmIChpc011bHRpVmFsdWVkKSB7XG4gICAgICAgICAgICB2YWx1ZXNUb0FkZFRvUGFyYW1zID0gKGZpbHRlci52YWx1ZSBhcyBzdHJpbmcpLnNwbGl0KCcsJyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIGRhdGUgZmlsdGVyIHZhbHVlIG11c3QgYmUgc2VuZCBpbiBJU08tODYwMSBmb3JtYXRcbiAgICAgICAgICBpZiAoZmlsdGVyLnR5cGUgPT09ICdkYXRlJykge1xuICAgICAgICAgICAgdmFsdWVzVG9BZGRUb1BhcmFtcyA9IGlzTXVsdGlWYWx1ZWRcbiAgICAgICAgICAgICAgPyAodmFsdWVzVG9BZGRUb1BhcmFtcyBhcyBzdHJpbmdbXSkubWFwKCh2YWx1ZSkgPT4gRGF0ZVV0aWxzLnBhcnNlVG9Jc29TdHJpbmcodmFsdWUpKVxuICAgICAgICAgICAgICA6IERhdGVVdGlscy5wYXJzZVRvSXNvU3RyaW5nKHZhbHVlc1RvQWRkVG9QYXJhbXMgYXMgc3RyaW5nKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgY29uc3QgdmFsdWUgPSBBcnJheS5pc0FycmF5KHZhbHVlc1RvQWRkVG9QYXJhbXMpXG4gICAgICAgICAgICA/IHZhbHVlc1RvQWRkVG9QYXJhbXMubWFwKCh2KSA9PiBlbmNvZGVVUklDb21wb25lbnQodi50b1N0cmluZygpLnNwbGl0KCcsJykuam9pbignXFxcXCwnKSkpLmpvaW4oJywnKVxuICAgICAgICAgICAgOiBlbmNvZGVVUklDb21wb25lbnQodmFsdWVzVG9BZGRUb1BhcmFtcyEudG9TdHJpbmcoKS5yZXBsYWNlKC8sL2csICdcXFxcLCcpKTtcbiAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuYXBwZW5kKCdmaWx0ZXInLCBgJHtmaWx0ZXIuYXR0cmlidXRlfSwke2ZpbHRlci5vcGVyYXRvcn0sJHt2YWx1ZX1gKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBwYXJhbXM7XG4gIH1cblxuICBnZXRPcmRlcihxdWlja09yZGVyOiBSZXN1bHRPcmRlciB8IHVuZGVmaW5lZCk6IEh0dHBQYXJhbXMge1xuICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcyh7IGVuY29kZXI6IG5ldyBGaWx0ZXJQYXJhbUVuY29kZXIoKSB9KTtcbiAgICBpZiAocXVpY2tPcmRlcikge1xuICAgICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZCgnb3JkZXInLCBgJHtxdWlja09yZGVyLmF0dHJpYnV0ZX0sJHtxdWlja09yZGVyLmFzYyA/PyAnJ31gKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZCgnb3JkZXInLCAndHJ1ZSxhc2MnKTtcbiAgICB9XG4gICAgcmV0dXJuIHBhcmFtcztcbiAgfVxuXG4gIC8qKlxuICAgKiBMYXVuY2ggYSBzZWFyY2ggcmVxdWVzdCAoYW5kIHNhdmVzIGl0IGFzIGN1cnJlbnQgc2VhcmNoKVxuICAgKiBAcGFyYW0gY29uZGl0aW9uXG4gICAqL1xuICBzZWFyY2goXG4gICAgY29uZGl0aW9uOiBNb25vQ2xhc3NTZWFyY2hQYXlsb2FkIHwgTXVsdGlDbGFzc1NlYXJjaFBheWxvYWQgfCBGdWxsVGV4dFNlYXJjaFBheWxvYWQsXG4gICAgaWQ/OiBzdHJpbmcsXG4gICAgd2l0aExpbmtlZEl0ZW1zOiAoJ2Rlc3RpbmF0aW9uJyB8ICdzb3VyY2UnKVtdID0gW11cbiAgKTogT2JzZXJ2YWJsZTxSZXN1bHRTZXQ+IHtcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5zZWxlY3QoQ29uZmlnU2VsZWN0b3JzLmRhdGFVcmwpLnBpcGUoXG4gICAgICBmaWx0ZXIoKHVybCkgPT4gISF1cmwpLFxuICAgICAgdGFrZSgxKSxcbiAgICAgIHdpdGhMYXRlc3RGcm9tKHRoaXMuc3RvcmUuc2VsZWN0KERhc2hib2FyZFNlbGVjdG9ycy5xdWlja09yZGVyKSwgdGhpcy5zdG9yZS5zZWxlY3QoQ29uZmlnU2VsZWN0b3JzLmxpbWl0cykpLFxuICAgICAgbWVyZ2VNYXAoKFt1cmwsIHF1aWNrT3JkZXIsIGxpbWl0c10pID0+IHtcbiAgICAgICAgY29uc3QgcGFyYW1zID0ge30gYXMgeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbiAgICAgICAgaWYgKHF1aWNrT3JkZXJbREVGQVVMVF9OQU1FRF9RVUVSWV9JRF0pIHtcbiAgICAgICAgICBwYXJhbXNbJ29yZGVyJ10gPSBgJHtxdWlja09yZGVyW0RFRkFVTFRfTkFNRURfUVVFUllfSURdPy5hdHRyaWJ1dGV9LCR7XG4gICAgICAgICAgICBxdWlja09yZGVyW0RFRkFVTFRfTkFNRURfUVVFUllfSURdPy5hc2MgPz8gJydcbiAgICAgICAgICB9YDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBvdGhlclBhcmFtczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9O1xuICAgICAgICBpZiAod2l0aExpbmtlZEl0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBpZiAod2l0aExpbmtlZEl0ZW1zLmluY2x1ZGVzKCdkZXN0aW5hdGlvbicpKSB7XG4gICAgICAgICAgICBvdGhlclBhcmFtc1snd2l0aERlc3RpbmF0aW9uSXRlbXMnXSA9ICd0cnVlJztcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHdpdGhMaW5rZWRJdGVtcy5pbmNsdWRlcygnc291cmNlJykpIHtcbiAgICAgICAgICAgIG90aGVyUGFyYW1zWyd3aXRoU291cmNlSXRlbXMnXSA9ICd0cnVlJztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgX2NvbmRpdGlvbiA9IHsgLi4uY29uZGl0aW9uLCBsaW1pdDogbGltaXRzW0RFRkFVTFRfTkFNRURfUVVFUllfSURdID8/IGxpbWl0c1snZGVmYXVsdCddLCAuLi5vdGhlclBhcmFtcyB9O1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3Q8UmVzdWx0U2V0PihlbmNvZGVVUkkoYCR7dXJsfS9pdGVtcy9zZWFyY2hgKSwgX2NvbmRpdGlvbiwgeyBwYXJhbXMgfSk7XG4gICAgICB9KSxcbiAgICAgIG1hcCgocnMpID0+IHRoaXMuYXBwbHlUcmFuc2Zvcm1hdGlvbnMoaWQgPz8gREVGQVVMVF9OQU1FRF9RVUVSWV9JRCwgcnMpKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQWxsb3dzIHRvIGFkZCBhIHRyYW5zZm9ybWF0aW9uIGZ1bmN0aW9uIHdoZW4gZ2V0dGluZyByZXN1bHRzIGZyb20gYmFja2VuZFxuICAgKiBAcGFyYW0gZnVuY1xuICAgKi9cbiAgYWRkVHJhbnNmb3JtYXRpb24oZnVuYzogUmVzdWx0c2V0VHJhbnNmb3JtYXRpb24pIHtcbiAgICB0aGlzLnRyYW5zZm9ybWF0aW9ucy5wdXNoKGZ1bmMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFwcGx5IGFsbCB0cmFuc2Zvcm1hdGlvbiBmdW5jdGlvbnNcbiAgICogQHBhcmFtIGlkXG4gICAqIEBwYXJhbSByc1xuICAgKi9cbiAgYXBwbHlUcmFuc2Zvcm1hdGlvbnMoaWQ6IHN0cmluZywgcnM6IFJlc3VsdFNldCkge1xuICAgIGxldCB0cmFuc2Zvcm1lZCA9IHJzO1xuICAgIHRoaXMudHJhbnNmb3JtYXRpb25zLmZvckVhY2goKGZ1bmMpID0+ICh0cmFuc2Zvcm1lZCA9IGZ1bmMoaWQsIHRyYW5zZm9ybWVkKSkpO1xuICAgIHJldHVybiB0cmFuc2Zvcm1lZDtcbiAgfVxuXG4gIGF1dG9jb21wbGV0ZShcbiAgICBhdHRyaWJ1dGVzOlxuICAgICAgfCB7XG4gICAgICAgICAgaWQ6IHN0cmluZztcbiAgICAgICAgICBkYXRhc291cmNlOiBzdHJpbmc7XG4gICAgICAgIH1bXVxuICAgICAgfCB1bmRlZmluZWQsXG4gICAgc2VhcmNoOiBzdHJpbmcgPSAnJyxcbiAgICBsaW1pdD86IG51bWJlclxuICApIHtcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5zZWxlY3QoQ29uZmlnU2VsZWN0b3JzLmRhdGFVcmwpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKHVybCkgPT5cbiAgICAgICAgdGhpcy5odHRwQ2xpZW50LnBvc3Q8c3RyaW5nW10+KGVuY29kZVVSSShgJHt1cmx9L2RhdGEtc291cmNlcy92YWx1ZXNgKSwge1xuICAgICAgICAgIGF0dHJpYnV0ZXM6IChhdHRyaWJ1dGVzID8/IFtdKS5tYXAoKGF0dHIpID0+ICh7IGRhdGFzb3VyY2U6IGF0dHIuZGF0YXNvdXJjZSwgYXR0cmlidXRlOiBhdHRyLmlkIH0pKSxcbiAgICAgICAgICB2YWx1ZTogc2VhcmNoLFxuICAgICAgICAgIGxpbWl0XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgKTtcbiAgfVxufVxuIl19
|
|
154
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9saWIvY29yZS9zdG9yZS9zZWFyY2gvc2VhcmNoLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzlELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFjLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQU9sRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFNUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzFELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7OztBQVEzRSxNQUFNLE9BQU8sYUFBYTtJQU14QixZQUNVLFVBQXNCLEVBQ3RCLEtBQXVDO1FBRHZDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsVUFBSyxHQUFMLEtBQUssQ0FBa0M7UUFQakQsb0JBQWUsR0FBOEIsRUFBRSxDQUFDO1FBQ2hELFlBQU8sR0FBOEMsRUFBRSxDQUFDO1FBQ3hELFdBQU0sR0FBNEIsRUFBRSxDQUFDO1FBQ3JDLGdCQUFXLEdBQWlCLEVBQUUsQ0FBQztRQU03QixL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QUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM5RSxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0lBRUQsWUFBWSxDQUNWLFVBS2EsRUFDYixTQUFpQixFQUFFLEVBQ25CLEtBQWM7UUFFZCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQ3BELFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQ2hCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFXLFNBQVMsQ0FBQyxHQUFHLEdBQUcsc0JBQXNCLENBQUMsRUFBRTtZQUN0RSxVQUFVLEVBQUUsQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ25HLEtBQUssRUFBRSxNQUFNO1lBQ2IsS0FBSztTQUNOLENBQUMsQ0FDSCxDQUNGLENBQUM7SUFDSixDQUFDOzhHQTNMVSxhQUFhO2tIQUFiLGFBQWEsY0FGWixNQUFNOzsyRkFFUCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IGZpbHRlciwgbWFwLCBtZXJnZU1hcCwgT2JzZXJ2YWJsZSwgb2YsIHN3aXRjaE1hcCwgdGFrZSwgd2l0aExhdGVzdEZyb20gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERhc2hib2FyZFNlbGVjdG9ycyB9IGZyb20gJy4uLy4uLy4uL2Rhc2hib2FyZC9zdG9yZS9kYXNoYm9hcmQuc2VsZWN0b3JzJztcbmltcG9ydCB7IEZpbHRlckNvbnRleHQgfSBmcm9tICcuLi8uLi9tb2RlbC9maWx0ZXIuaW50ZXJmYWNlJztcbmltcG9ydCB7IFJlc3VsdE9yZGVyIH0gZnJvbSAnLi4vLi4vbW9kZWwvcmVzdWx0LW9yZGVyLmludGVyZmFjZSc7XG5pbXBvcnQgeyBSZXN1bHRTZXQgfSBmcm9tICcuLi8uLi9tb2RlbC9yZXN1bHQtc2V0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBNb25vQ2xhc3NTZWFyY2hQYXlsb2FkIH0gZnJvbSAnLi4vLi4vbW9kZWwvc2VhcmNoLW1vbm8tY2xhc3MubW9kZWwnO1xuaW1wb3J0IHsgRnVsbFRleHRTZWFyY2hQYXlsb2FkLCBNdWx0aUNsYXNzU2VhcmNoUGF5bG9hZCB9IGZyb20gJy4uLy4uL21vZGVsL3NlYXJjaC1tdWx0aS1jbGFzcy5tb2RlbCc7XG5pbXBvcnQgeyBDb25maWdTdGF0ZSB9IGZyb20gJy4uL2NvbmZpZy9jb25maWcucmVkdWNlcic7XG5pbXBvcnQgeyBDb25maWdTZWxlY3RvcnMgfSBmcm9tICcuLi9jb25maWcvY29uZmlnLnNlbGVjdG9ycyc7XG5pbXBvcnQgeyBERUZBVUxUX05BTUVEX1FVRVJZX0lEIH0gZnJvbSAnLi9zZWFyY2guY29uc3RhbnRzJztcbmltcG9ydCB7IFNlYXJjaFN0YXRlIH0gZnJvbSAnLi9zZWFyY2gucmVkdWNlcic7XG5pbXBvcnQgeyBGaWx0ZXJQYXJhbUVuY29kZXIgfSBmcm9tICcuL2ZpbHRlci1wYXJhbS1lbmNvZGVyJztcbmltcG9ydCB7IERhdGVVdGlscyB9IGZyb20gJy4uLy4uLy4uL2Rhc2hib2FyZC9kYXRlLXV0aWxzJztcbmltcG9ydCB7IE5hbWVkUXVlcnlUeXBlcyB9IGZyb20gJy4uL2RhdGEtc291cmNlL25hbWVkLXF1ZXJ5LXR5cGVzLm1vZGVsJztcbmltcG9ydCB7IERhdGFTb3VyY2VTZWxlY3RvcnMgfSBmcm9tICcuLi9kYXRhLXNvdXJjZS9kYXRhLXNvdXJjZS5zZWxlY3RvcnMnO1xuaW1wb3J0IHsgRGF0YVNvdXJjZSB9IGZyb20gJy4uL2RhdGEtc291cmNlL2RhdGEtc291cmNlLm1vZGVsJztcblxuZXhwb3J0IHR5cGUgUmVzdWx0c2V0VHJhbnNmb3JtYXRpb24gPSAoaWQ6IHN0cmluZywgcmVzdWx0OiBSZXN1bHRTZXQpID0+IFJlc3VsdFNldDtcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgU2VhcmNoU2VydmljZSB7XG4gIHRyYW5zZm9ybWF0aW9uczogUmVzdWx0c2V0VHJhbnNmb3JtYXRpb25bXSA9IFtdO1xuICBmaWx0ZXJzOiB7IFtkYXRhc291cmNlOiBzdHJpbmddOiBGaWx0ZXJDb250ZXh0W10gfSA9IHt9O1xuICBsaW1pdHM6IHsgW3A6IHN0cmluZ106IG51bWJlciB9ID0ge307XG4gIGRhdGFzb3VyY2VzOiBEYXRhU291cmNlW10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQsXG4gICAgcHJpdmF0ZSBzdG9yZTogU3RvcmU8Q29uZmlnU3RhdGUgfCBTZWFyY2hTdGF0ZT5cbiAgKSB7XG4gICAgc3RvcmUuc2VsZWN0KERhc2hib2FyZFNlbGVjdG9ycy5kYXRhc291cmNlRmlsdGVycykuc3Vic2NyaWJlKChmaWx0ZXJzKSA9PiB7XG4gICAgICB0aGlzLmZpbHRlcnMgPSBmaWx0ZXJzO1xuICAgIH0pO1xuICAgIHN0b3JlLnNlbGVjdChDb25maWdTZWxlY3RvcnMubGltaXRzKS5zdWJzY3JpYmUoKGxpbWl0cykgPT4ge1xuICAgICAgdGhpcy5saW1pdHMgPSBsaW1pdHM7XG4gICAgfSk7XG4gICAgc3RvcmUuc2VsZWN0KERhdGFTb3VyY2VTZWxlY3RvcnMuZ2V0RGF0YVNvdXJjZXMpLnN1YnNjcmliZSgoZGF0YXNvdXJjZXMpID0+IHtcbiAgICAgIHRoaXMuZGF0YXNvdXJjZXMgPSBkYXRhc291cmNlcztcbiAgICB9KTtcbiAgfVxuXG4gIGdldEl0ZW1zKFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcXVpY2tPcmRlcj86IFJlc3VsdE9yZGVyLFxuICAgIGV4Y2x1ZGVHZW8/OiBib29sZWFuLFxuICAgIHNlYXJjaEFmdGVyPzogc3RyaW5nLFxuICAgIGxpbmtlZEl0ZW1zOiAoJ2Rlc3RpbmF0aW9uJyB8ICdzb3VyY2UnKVtdID0gW11cbiAgKTogT2JzZXJ2YWJsZTxSZXN1bHRTZXQ+IHtcbiAgICBjb25zdCBwYXJhbXMgPSB0aGlzLmdldEl0ZW1zRmlsdGVyKGlkLCB0aGlzLmdldE9yZGVyKHF1aWNrT3JkZXIpKTtcbiAgICBpZiAoIWlkKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ05vdCBzZW5kaW5nIGl0ZW1zIHJlcXVlc3Qgd2l0aCBubyBkYXRhc291cmNlIGF0dGFjaGVkLicpO1xuICAgICAgcmV0dXJuIG9mKHsgaXRlbXM6IHt9LCByZWxhdGlvbnM6IFtdIH0gYXMgUmVzdWx0U2V0KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5zdG9yZS5zZWxlY3QoQ29uZmlnU2VsZWN0b3JzLmRhdGFVcmwpLnBpcGUoXG4gICAgICBtZXJnZU1hcCgodXJsKSA9PiB7XG4gICAgICAgIGNvbnN0IGRzID0gdGhpcy5kYXRhc291cmNlcy5maW5kKChkKSA9PiBkLmlkID09PSBpZCk7XG5cbiAgICAgICAgY29uc3Qgb3RoZXJQYXJhbXM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcbiAgICAgICAgaWYgKGxpbmtlZEl0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBpZiAobGlua2VkSXRlbXMuaW5jbHVkZXMoJ2Rlc3RpbmF0aW9uJykpIHtcbiAgICAgICAgICAgIG90aGVyUGFyYW1zWyd3aXRoRGVzdGluYXRpb25JdGVtcyddID0gJ3RydWUnO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAobGlua2VkSXRlbXMuaW5jbHVkZXMoJ3NvdXJjZScpKSB7XG4gICAgICAgICAgICBvdGhlclBhcmFtc1snd2l0aFNvdXJjZUl0ZW1zJ10gPSAndHJ1ZSc7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0PFJlc3VsdFNldD4oXG4gICAgICAgICAgZW5jb2RlVVJJKGAke3VybH0vZGF0YS1zb3VyY2VzL2lkLyR7aWR9L2l0ZW1zYCksXG4gICAgICAgICAge1xuICAgICAgICAgICAgdHlwZTogZHM/LnNvdXJjZVR5cGUgPT09ICduYW1lZFF1ZXJ5JyA/IGRzLnJlcXVlc3QudHlwZSA6IE5hbWVkUXVlcnlUeXBlcy5NT05PX0NMQVNTLFxuICAgICAgICAgICAgZXhjbHVkZUdlbzogZXhjbHVkZUdlbyA/PyBmYWxzZSxcbiAgICAgICAgICAgIHNlYXJjaEFmdGVyOiBzZWFyY2hBZnRlciA/PyB1bmRlZmluZWQsXG4gICAgICAgICAgICBsaW1pdDogdGhpcy5saW1pdHNbaWRdIHx8IHRoaXMubGltaXRzWydkZWZhdWx0J10sXG4gICAgICAgICAgICAuLi5vdGhlclBhcmFtc1xuICAgICAgICAgIH0sXG4gICAgICAgICAgeyBwYXJhbXMgfVxuICAgICAgICApO1xuICAgICAgfSksXG4gICAgICBtYXAoKHJzKSA9PiB0aGlzLmFwcGx5VHJhbnNmb3JtYXRpb25zKGlkLCBycykpXG4gICAgKTtcbiAgfVxuXG4gIGdldEl0ZW1zU2VyaWFsaXplZFBhcmFtcyhcbiAgICBpZDogc3RyaW5nLFxuICAgIHF1aWNrT3JkZXI6IHtcbiAgICAgIFtpZDogc3RyaW5nXTogUmVzdWx0T3JkZXIgfCB1bmRlZmluZWQ7XG4gICAgfSA9IHt9LFxuICAgIGV4Y2x1ZGVHZW86IGJvb2xlYW4sXG4gICAgbGlua2VkSXRlbXM/OiAoJ2Rlc3RpbmF0aW9uJyB8ICdzb3VyY2UnKVtdXG4gICk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGB8JHt0aGlzLmdldEl0ZW1zRmlsdGVyKGlkLCB0aGlzLmdldE9yZGVyKHF1aWNrT3JkZXJbaWRdKSkudG9TdHJpbmcoKX18JHtleGNsdWRlR2VvID8gJ2V4Y2x1ZGVHZW8nIDogJyd9fCR7bGlua2VkSXRlbXM/LmpvaW4oJywnKX18YDtcbiAgfVxuXG4gIGdldEl0ZW1zRmlsdGVyKGlkOiBzdHJpbmcsIGN1bXVsYXRpdmU/OiBIdHRwUGFyYW1zKTogSHR0cFBhcmFtcyB7XG4gICAgbGV0IHBhcmFtcyA9IGN1bXVsYXRpdmUgPz8gbmV3IEh0dHBQYXJhbXMoeyBlbmNvZGVyOiBuZXcgRmlsdGVyUGFyYW1FbmNvZGVyKCkgfSk7XG4gICAgaWYgKHRoaXMuZmlsdGVyc1tpZF0pIHtcbiAgICAgIHRoaXMuZmlsdGVyc1tpZF1cbiAgICAgICAgLmZpbHRlcigoZmlsdGVyKSA9PiBmaWx0ZXIudmFsdWUgIT09IG51bGwgJiYgZmlsdGVyLnZhbHVlICE9PSB1bmRlZmluZWQpXG4gICAgICAgIC5mb3JFYWNoKChmaWx0ZXIpID0+IHtcbiAgICAgICAgICBsZXQgdmFsdWVzVG9BZGRUb1BhcmFtcyA9IGZpbHRlci52YWx1ZTtcbiAgICAgICAgICAvLyBJTlNJREUgYW5kIE9VVFNJREUgb3BlcmF0b3JzIHVzZXMgMiB2YWx1ZXMgYnV0IG5vdCBzZW50IGluIGFuIGFycmF5LCB2YWx1ZXMgYXJlIHNlcGFyYXRlZCBieSBhIGNvbWFcbiAgICAgICAgICAvLyB3aWNoIG11c3Qgbm90IGJlIGVuY29kZWQgKGFzIGlmIHZhbHVlcyB3ZXJlIGluIGFuIGFycmF5KVxuICAgICAgICAgIGNvbnN0IGlzTXVsdGlWYWx1ZWQgPSBbJ0lOU0lERScsICdPVVRTSURFJ10uZmluZCgodmFsKSA9PiB2YWwgPT09IGZpbHRlci5vcGVyYXRvcikgIT09IHVuZGVmaW5lZDtcbiAgICAgICAgICBpZiAoaXNNdWx0aVZhbHVlZCkge1xuICAgICAgICAgICAgdmFsdWVzVG9BZGRUb1BhcmFtcyA9IChmaWx0ZXIudmFsdWUgYXMgc3RyaW5nKS5zcGxpdCgnLCcpO1xuICAgICAgICAgIH1cbiAgICAgICAgICAvLyBkYXRlIGZpbHRlciB2YWx1ZSBtdXN0IGJlIHNlbmQgaW4gSVNPLTg2MDEgZm9ybWF0XG4gICAgICAgICAgaWYgKGZpbHRlci50eXBlID09PSAnZGF0ZScpIHtcbiAgICAgICAgICAgIHZhbHVlc1RvQWRkVG9QYXJhbXMgPSBpc011bHRpVmFsdWVkXG4gICAgICAgICAgICAgID8gKHZhbHVlc1RvQWRkVG9QYXJhbXMgYXMgc3RyaW5nW10pLm1hcCgodmFsdWUpID0+IERhdGVVdGlscy5wYXJzZVRvSXNvU3RyaW5nKHZhbHVlKSlcbiAgICAgICAgICAgICAgOiBEYXRlVXRpbHMucGFyc2VUb0lzb1N0cmluZyh2YWx1ZXNUb0FkZFRvUGFyYW1zIGFzIHN0cmluZyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IHZhbHVlID0gQXJyYXkuaXNBcnJheSh2YWx1ZXNUb0FkZFRvUGFyYW1zKVxuICAgICAgICAgICAgPyB2YWx1ZXNUb0FkZFRvUGFyYW1zLm1hcCgodikgPT4gZW5jb2RlVVJJQ29tcG9uZW50KHYudG9TdHJpbmcoKS5zcGxpdCgnLCcpLmpvaW4oJ1xcXFwsJykpKS5qb2luKCcsJylcbiAgICAgICAgICAgIDogZW5jb2RlVVJJQ29tcG9uZW50KHZhbHVlc1RvQWRkVG9QYXJhbXMhLnRvU3RyaW5nKCkucmVwbGFjZSgvLC9nLCAnXFxcXCwnKSk7XG4gICAgICAgICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZCgnZmlsdGVyJywgYCR7ZmlsdGVyLmF0dHJpYnV0ZX0sJHtmaWx0ZXIub3BlcmF0b3J9LCR7dmFsdWV9YCk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gcGFyYW1zO1xuICB9XG5cbiAgZ2V0T3JkZXIocXVpY2tPcmRlcjogUmVzdWx0T3JkZXIgfCB1bmRlZmluZWQpOiBIdHRwUGFyYW1zIHtcbiAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoeyBlbmNvZGVyOiBuZXcgRmlsdGVyUGFyYW1FbmNvZGVyKCkgfSk7XG4gICAgaWYgKHF1aWNrT3JkZXIpIHtcbiAgICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoJ29yZGVyJywgYCR7cXVpY2tPcmRlci5hdHRyaWJ1dGV9LCR7cXVpY2tPcmRlci5hc2MgPz8gJyd9YCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoJ29yZGVyJywgJ3RydWUsYXNjJyk7XG4gICAgfVxuICAgIHJldHVybiBwYXJhbXM7XG4gIH1cblxuICAvKipcbiAgICogTGF1bmNoIGEgc2VhcmNoIHJlcXVlc3QgKGFuZCBzYXZlcyBpdCBhcyBjdXJyZW50IHNlYXJjaClcbiAgICogQHBhcmFtIGNvbmRpdGlvblxuICAgKi9cbiAgc2VhcmNoKFxuICAgIGNvbmRpdGlvbjogTW9ub0NsYXNzU2VhcmNoUGF5bG9hZCB8IE11bHRpQ2xhc3NTZWFyY2hQYXlsb2FkIHwgRnVsbFRleHRTZWFyY2hQYXlsb2FkLFxuICAgIGlkPzogc3RyaW5nLFxuICAgIHdpdGhMaW5rZWRJdGVtczogKCdkZXN0aW5hdGlvbicgfCAnc291cmNlJylbXSA9IFtdXG4gICk6IE9ic2VydmFibGU8UmVzdWx0U2V0PiB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuc2VsZWN0KENvbmZpZ1NlbGVjdG9ycy5kYXRhVXJsKS5waXBlKFxuICAgICAgZmlsdGVyKCh1cmwpID0+ICEhdXJsKSxcbiAgICAgIHRha2UoMSksXG4gICAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLnN0b3JlLnNlbGVjdChEYXNoYm9hcmRTZWxlY3RvcnMucXVpY2tPcmRlciksIHRoaXMuc3RvcmUuc2VsZWN0KENvbmZpZ1NlbGVjdG9ycy5saW1pdHMpKSxcbiAgICAgIG1lcmdlTWFwKChbdXJsLCBxdWlja09yZGVyLCBsaW1pdHNdKSA9PiB7XG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IHt9IGFzIHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG4gICAgICAgIGlmIChxdWlja09yZGVyW0RFRkFVTFRfTkFNRURfUVVFUllfSURdKSB7XG4gICAgICAgICAgcGFyYW1zWydvcmRlciddID0gYCR7cXVpY2tPcmRlcltERUZBVUxUX05BTUVEX1FVRVJZX0lEXT8uYXR0cmlidXRlfSwke1xuICAgICAgICAgICAgcXVpY2tPcmRlcltERUZBVUxUX05BTUVEX1FVRVJZX0lEXT8uYXNjID8/ICcnXG4gICAgICAgICAgfWA7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgb3RoZXJQYXJhbXM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcbiAgICAgICAgaWYgKHdpdGhMaW5rZWRJdGVtcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgaWYgKHdpdGhMaW5rZWRJdGVtcy5pbmNsdWRlcygnZGVzdGluYXRpb24nKSkge1xuICAgICAgICAgICAgb3RoZXJQYXJhbXNbJ3dpdGhEZXN0aW5hdGlvbkl0ZW1zJ10gPSAndHJ1ZSc7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICh3aXRoTGlua2VkSXRlbXMuaW5jbHVkZXMoJ3NvdXJjZScpKSB7XG4gICAgICAgICAgICBvdGhlclBhcmFtc1snd2l0aFNvdXJjZUl0ZW1zJ10gPSAndHJ1ZSc7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IF9jb25kaXRpb24gPSB7IC4uLmNvbmRpdGlvbiwgbGltaXQ6IGxpbWl0c1tERUZBVUxUX05BTUVEX1FVRVJZX0lEXSA/PyBsaW1pdHNbJ2RlZmF1bHQnXSwgLi4ub3RoZXJQYXJhbXMgfTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0PFJlc3VsdFNldD4oZW5jb2RlVVJJKGAke3VybH0vaXRlbXMvc2VhcmNoYCksIF9jb25kaXRpb24sIHsgcGFyYW1zIH0pO1xuICAgICAgfSksXG4gICAgICBtYXAoKHJzKSA9PiB0aGlzLmFwcGx5VHJhbnNmb3JtYXRpb25zKGlkID8/IERFRkFVTFRfTkFNRURfUVVFUllfSUQsIHJzKSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEFsbG93cyB0byBhZGQgYSB0cmFuc2Zvcm1hdGlvbiBmdW5jdGlvbiB3aGVuIGdldHRpbmcgcmVzdWx0cyBmcm9tIGJhY2tlbmRcbiAgICogQHBhcmFtIGZ1bmNcbiAgICovXG4gIGFkZFRyYW5zZm9ybWF0aW9uKGZ1bmM6IFJlc3VsdHNldFRyYW5zZm9ybWF0aW9uKSB7XG4gICAgdGhpcy50cmFuc2Zvcm1hdGlvbnMucHVzaChmdW5jKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBcHBseSBhbGwgdHJhbnNmb3JtYXRpb24gZnVuY3Rpb25zXG4gICAqIEBwYXJhbSBpZFxuICAgKiBAcGFyYW0gcnNcbiAgICovXG4gIGFwcGx5VHJhbnNmb3JtYXRpb25zKGlkOiBzdHJpbmcsIHJzOiBSZXN1bHRTZXQpIHtcbiAgICBsZXQgdHJhbnNmb3JtZWQgPSBycztcbiAgICB0aGlzLnRyYW5zZm9ybWF0aW9ucy5mb3JFYWNoKChmdW5jKSA9PiAodHJhbnNmb3JtZWQgPSBmdW5jKGlkLCB0cmFuc2Zvcm1lZCkpKTtcbiAgICByZXR1cm4gdHJhbnNmb3JtZWQ7XG4gIH1cblxuICBhdXRvY29tcGxldGUoXG4gICAgYXR0cmlidXRlczpcbiAgICAgIHwge1xuICAgICAgICAgIGlkOiBzdHJpbmc7XG4gICAgICAgICAgZGF0YXNvdXJjZTogc3RyaW5nO1xuICAgICAgICB9W11cbiAgICAgIHwgdW5kZWZpbmVkLFxuICAgIHNlYXJjaDogc3RyaW5nID0gJycsXG4gICAgbGltaXQ/OiBudW1iZXJcbiAgKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuc2VsZWN0KENvbmZpZ1NlbGVjdG9ycy5kYXRhVXJsKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKCh1cmwpID0+XG4gICAgICAgIHRoaXMuaHR0cENsaWVudC5wb3N0PHN0cmluZ1tdPihlbmNvZGVVUkkoYCR7dXJsfS9kYXRhLXNvdXJjZXMvdmFsdWVzYCksIHtcbiAgICAgICAgICBhdHRyaWJ1dGVzOiAoYXR0cmlidXRlcyA/PyBbXSkubWFwKChhdHRyKSA9PiAoeyBkYXRhc291cmNlOiBhdHRyLmRhdGFzb3VyY2UsIGF0dHJpYnV0ZTogYXR0ci5pZCB9KSksXG4gICAgICAgICAgdmFsdWU6IHNlYXJjaCxcbiAgICAgICAgICBsaW1pdFxuICAgICAgICB9KVxuICAgICAgKVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
|