@provoly/dashboard 0.21.2 → 0.21.4

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.
Files changed (94) hide show
  1. package/esm2022/lib/core/auth/geoAuth.service.mjs +29 -5
  2. package/esm2022/lib/core/components/chips-selector/chips-selector.component.mjs +111 -0
  3. package/esm2022/lib/core/components/select/select.component.mjs +13 -3
  4. package/esm2022/lib/core/components/share/group-share/group-share.component.mjs +113 -0
  5. package/esm2022/lib/core/components/share/share.model.mjs +1 -1
  6. package/esm2022/lib/core/components/share/share.module.mjs +9 -6
  7. package/esm2022/lib/core/components/snackbar/snackbar.service.mjs +8 -3
  8. package/esm2022/lib/core/core.module.mjs +5 -1
  9. package/esm2022/lib/core/i18n/en.translations.mjs +32 -2
  10. package/esm2022/lib/core/i18n/fr.translations.mjs +32 -3
  11. package/esm2022/lib/core/model/display-options.interface.mjs +24 -7
  12. package/esm2022/lib/core/model/manifest.interface.mjs +1 -1
  13. package/esm2022/lib/core/public-api.mjs +3 -1
  14. package/esm2022/lib/core/store/config/config.actions.mjs +4 -2
  15. package/esm2022/lib/core/store/config/config.effects.mjs +9 -2
  16. package/esm2022/lib/core/store/config/config.reducer.mjs +6 -2
  17. package/esm2022/lib/core/store/config/config.selectors.mjs +4 -2
  18. package/esm2022/lib/core/store/config/config.service.mjs +6 -1
  19. package/esm2022/lib/core/store/item/item.effects.mjs +2 -2
  20. package/esm2022/lib/dashboard/components/dashboard.component.mjs +3 -3
  21. package/esm2022/lib/dashboard/components/widgets/datasource-selector/datasource-selector.component.mjs +33 -65
  22. package/esm2022/lib/dashboard/components/widgets/header/widget-header.component.mjs +4 -5
  23. package/esm2022/lib/dashboard/store/dashboard.actions.mjs +1 -1
  24. package/esm2022/lib/dashboard/store/dashboard.effects.mjs +13 -7
  25. package/esm2022/lib/dashboard/store/dashboard.reducers.mjs +8 -2
  26. package/esm2022/lib/dashboard/store/manifest.service.mjs +4 -4
  27. package/esm2022/presentation/components/presentation.component.mjs +13 -8
  28. package/esm2022/presentation/i18n/en.translations.mjs +2 -1
  29. package/esm2022/presentation/i18n/fr.translations.mjs +3 -2
  30. package/esm2022/restitution/components/restitution/restitution.component.mjs +7 -4
  31. package/esm2022/restitution/i18n/en.translations.mjs +1 -6
  32. package/esm2022/restitution/i18n/fr.translations.mjs +1 -6
  33. package/esm2022/toolbox/components/delete/delete.component.mjs +29 -0
  34. package/esm2022/toolbox/components/save-view/save-view.component.mjs +8 -8
  35. package/esm2022/toolbox/components/share/share.component.mjs +69 -0
  36. package/esm2022/toolbox/components/switch-to-edit-content/switch-to-edit-content.component.mjs +26 -0
  37. package/esm2022/toolbox/components/toolbox.component.mjs +3 -3
  38. package/esm2022/toolbox/public-api.mjs +4 -1
  39. package/esm2022/toolbox/toolbox.model.mjs +22 -2
  40. package/esm2022/toolbox/toolbox.module.mjs +16 -4
  41. package/esm2022/widgets/widget-map/component/widget-map-layer.service.mjs +27 -13
  42. package/esm2022/widgets/widget-map/component/widget-map.component.mjs +7 -8
  43. package/esm2022/widgets/widget-map/utils/cql-utils.class.mjs +6 -5
  44. package/esm2022/widgets/widget-vega/component/widget-vega.component.mjs +2 -2
  45. package/fesm2022/provoly-dashboard-presentation.mjs +15 -8
  46. package/fesm2022/provoly-dashboard-presentation.mjs.map +1 -1
  47. package/fesm2022/provoly-dashboard-restitution.mjs +6 -13
  48. package/fesm2022/provoly-dashboard-restitution.mjs.map +1 -1
  49. package/fesm2022/provoly-dashboard-toolbox.mjs +138 -14
  50. package/fesm2022/provoly-dashboard-toolbox.mjs.map +1 -1
  51. package/fesm2022/provoly-dashboard-widgets-widget-map.mjs +37 -23
  52. package/fesm2022/provoly-dashboard-widgets-widget-map.mjs.map +1 -1
  53. package/fesm2022/provoly-dashboard-widgets-widget-vega.mjs +1 -1
  54. package/fesm2022/provoly-dashboard-widgets-widget-vega.mjs.map +1 -1
  55. package/fesm2022/provoly-dashboard.mjs +1056 -738
  56. package/fesm2022/provoly-dashboard.mjs.map +1 -1
  57. package/lib/core/auth/geoAuth.service.d.ts +5 -1
  58. package/lib/core/components/chips-selector/chips-selector.component.d.ts +38 -0
  59. package/lib/core/components/select/select.component.d.ts +2 -0
  60. package/lib/core/components/share/group-share/group-share.component.d.ts +33 -0
  61. package/lib/core/components/share/share.model.d.ts +5 -0
  62. package/lib/core/components/share/share.module.d.ts +8 -5
  63. package/lib/core/components/snackbar/snackbar.service.d.ts +2 -1
  64. package/lib/core/core.module.d.ts +24 -23
  65. package/lib/core/i18n/en.translations.d.ts +30 -0
  66. package/lib/core/i18n/fr.translations.d.ts +30 -1
  67. package/lib/core/model/display-options.interface.d.ts +3 -0
  68. package/lib/core/model/manifest.interface.d.ts +1 -2
  69. package/lib/core/public-api.d.ts +2 -0
  70. package/lib/core/store/config/config.actions.d.ts +8 -1
  71. package/lib/core/store/config/config.effects.d.ts +4 -0
  72. package/lib/core/store/config/config.reducer.d.ts +2 -0
  73. package/lib/core/store/config/config.selectors.d.ts +1 -0
  74. package/lib/core/store/config/config.service.d.ts +2 -0
  75. package/lib/dashboard/components/widgets/datasource-selector/datasource-selector.component.d.ts +10 -23
  76. package/lib/dashboard/store/dashboard.actions.d.ts +2 -3
  77. package/lib/dashboard/store/dashboard.effects.d.ts +1 -1
  78. package/lib/dashboard/store/manifest.service.d.ts +2 -3
  79. package/package.json +19 -19
  80. package/presentation/components/presentation.component.d.ts +3 -3
  81. package/presentation/i18n/en.translations.d.ts +1 -0
  82. package/presentation/i18n/fr.translations.d.ts +1 -0
  83. package/restitution/components/restitution/restitution.component.d.ts +1 -0
  84. package/restitution/i18n/en.translations.d.ts +0 -5
  85. package/restitution/i18n/fr.translations.d.ts +0 -5
  86. package/styles/components/_o-draggable-menu.scss +8 -0
  87. package/toolbox/components/delete/delete.component.d.ts +19 -0
  88. package/toolbox/components/save-view/save-view.component.d.ts +3 -3
  89. package/toolbox/components/share/share.component.d.ts +25 -0
  90. package/toolbox/components/switch-to-edit-content/switch-to-edit-content.component.d.ts +15 -0
  91. package/toolbox/public-api.d.ts +3 -0
  92. package/toolbox/toolbox.module.d.ts +12 -9
  93. package/widgets/widget-map/component/widget-map-layer.service.d.ts +4 -3
  94. package/widgets/widget-map/component/widget-map.component.d.ts +3 -5
@@ -1,5 +1,5 @@
1
1
  import { Component, EventEmitter, Input, Output } from '@angular/core';
2
- import { ClassActions, ClassSelectors, ConfigActions, DashboardActions, DataSourceActions, DEFAULT_RESTITUTION_ICON_URL, FieldActions, getDisplayOptions, LibraryTypes, PryVisibilityType, SearchActions, SubscriptionnerDirective, ViewMode } from '@provoly/dashboard';
2
+ import { ClassActions, ClassSelectors, ConfigActions, DashboardActions, DataSourceActions, DataSourceSelectors, DEFAULT_RESTITUTION_ICON_URL, FieldActions, getDisplayOptions, LibraryTypes, PryVisibilityType, SearchActions, SubscriptionnerDirective, ViewMode } from '@provoly/dashboard';
3
3
  import { map, Subject } from 'rxjs';
4
4
  import { v4 } from 'uuid';
5
5
  import * as i0 from "@angular/core";
@@ -53,6 +53,9 @@ export class PryRestitutionComponent extends SubscriptionnerDirective {
53
53
  this.widgetsList$ = this.toolboxMenuService.menuStructure$.pipe(map((menu) => menu
54
54
  .map((items) => [...items.sub.filter((s) => this.toolboxManifestService.isModel(s.type))])
55
55
  .reduce((acc, items) => [...acc, ...items], [])));
56
+ this.usedDatasources$ = this.store
57
+ .select(DataSourceSelectors.getDataSourcesSorted)
58
+ .pipe(map((allDss) => allDss.filter((datasource) => this.form.selectedDataSources.includes(datasource.id))));
56
59
  }
57
60
  ngOnInit() {
58
61
  if (this.selectedRestitution) {
@@ -191,11 +194,11 @@ export class PryRestitutionComponent extends SubscriptionnerDirective {
191
194
  this.restitutionCreated.emit();
192
195
  }
193
196
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryRestitutionComponent, deps: [{ token: i1.ToolboxManifestService }, { token: i2.Store }, { token: i1.ToolboxMenuService }], target: i0.ɵɵFactoryTarget.Component }); }
194
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PryRestitutionComponent, selector: "pry-restitution", inputs: { selectedRestitution: "selectedRestitution", edit: "edit", isDataSourceSelected: "isDataSourceSelected", bindId: "bindId" }, outputs: { restitutionCreated: "restitutionCreated" }, usesInheritance: true, ngImport: i0, template: "<pry-restitution-css></pry-restitution-css>\n<div class=\"o-restitution\">\n <h3 class=\"a-h2 o-restitution__title\">\n {{ (consultMode ? '@pry.restitution.consult' : edit ? '@pry.restitution.edit' : '@pry.restitution.create') | i18n }}\n </h3>\n <pry-stepper #stepper [isConsultMode]=\"consultMode || edit\" (lastStepCompleted)=\"lastStepCompleted()\">\n <pry-step>\n <h4 class=\"m-stepper-item__title\" *stepTitle>{{ '@pry.restitution.configure' | i18n }}</h4>\n <div>\n <div class=\"m-form-label-field\">\n <label for=\"restitution\" class=\"a-label\">{{ '@pry.restitution.restitution_type' | i18n }}</label>\n <pry-select\n id=\"restitution\"\n [items]=\"types$ | async\"\n [(ngModel)]=\"form.selectedWidget\"\n [disabled]=\"consultMode\"\n bindIcon=\"icon\"\n bindLabel=\"label\"\n bindValue=\"type\"\n >\n </pry-select>\n </div>\n <div *ngIf=\"form.selectedWidget !== ''\">\n <div class=\"m-form-label-field\">\n <label for=\"graphTitle\" class=\"a-label\">{{ '@pry.restitution.graph_title' | i18n }}</label>\n <input\n name=\"title\"\n id=\"graphTitle\"\n class=\"a-form-field\"\n [(ngModel)]=\"form.title\"\n type=\"text\"\n [disabled]=\"consultMode\"\n maxlength=\"30\"\n ngDefaultControl\n />\n </div>\n <div class=\"m-form-label-field\">\n <label for=\"description\" class=\"a-label\">{{ '@pry.restitution.description' | i18n }}</label>\n <textarea\n name=\"description\"\n id=\"description\"\n class=\"a-form-field\"\n [(ngModel)]=\"form.description\"\n style=\"resize: none\"\n [disabled]=\"consultMode\"\n maxlength=\"255\"\n ngDefaultControl\n >\n </textarea>\n </div>\n <div class=\"m-form-label-field -width-full\">\n <label class=\"a-label\">{{ '@pry.presentation.form.image' | i18n }}</label>\n <div class=\"o-file-input\">\n <pry-select-image (changed)=\"image = $event\" [iconUrl]=\"image\" [mode]=\"type\"></pry-select-image>\n <pry-checkbox [(ngModel)]=\"form.cover\" name=\"cover\"> {{ '@pry.restitution.cover' | i18n }}</pry-checkbox>\n </div>\n </div>\n <div class=\"m-btn-group -space-evenly actions\">\n <button (click)=\"cancel(stepper)\" type=\"button\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.restitution.close' | i18n }}\n </button>\n <button\n (click)=\"goNext(stepper)\"\n [disabled]=\"form.selectedWidget === '' || form.title.trim().length === 0\"\n class=\"a-btn a-btn--primary\"\n >\n {{ '@pry.restitution.validate' | i18n }}\n </button>\n </div>\n </div>\n </div>\n </pry-step>\n <pry-step>\n <h4 class=\"m-stepper-item__title\" *stepTitle>{{ '@pry.restitution.dataSource' | i18n }}</h4>\n <pry-datasource-selector\n (cancel)=\"prev(stepper)\"\n (validated)=\"submit(stepper)\"\n (datasourcesChanged)=\"datasourcesChanged($event)\"\n [datasourceIds]=\"form.selectedDataSources\"\n ></pry-datasource-selector>\n </pry-step>\n <pry-step>\n <h4 class=\"m-stepper-item__title\" *stepTitle>{{ '@pry.restitution.visualize' | i18n }}</h4>\n <div class=\"widget-instanciator\">\n <pry-widget-instanciator\n [standalone]=\"true\"\n [staticManifest]=\"customManifest\"\n [open$]=\"openSettings$\"\n (manifestModified)=\"updateManifest($event)\"\n ></pry-widget-instanciator>\n </div>\n <div class=\"m-btn-group -space-evenly actions\" *ngIf=\"!consultMode; else consult\">\n <button (click)=\"prev(stepper)\" type=\"button\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.restitution.close' | i18n }}\n </button>\n <button (click)=\"goNext(stepper)\" type=\"button\" class=\"a-btn a-btn--primary\">\n {{ '@pry.restitution.validate' | i18n }}\n </button>\n </div>\n </pry-step>\n <pry-step>\n <h4 class=\"m-stepper-item__title\" *stepTitle>{{ '@pry.restitution.share' | i18n }}</h4>\n <div class=\"\">\n <h3>{{ '@pry.restitution.access' | i18n }}</h3>\n {{ '@pry.restitution.choice' | i18n }}\n <ul>\n <li>\n {{ '@pry.restitution.public' | i18n }}\n </li>\n </ul>\n {{ '@pry.restitution.or' | i18n }}\n <ul>\n <li>\n {{ '@pry.restitution.private' | i18n }}\n </li>\n </ul>\n </div>\n <pry-share\n [(ngModel)]=\"visibility\"\n [users$]=\"users$\"\n labelProperty=\"name\"\n valueProperty=\"id\"\n [disabled]=\"consultMode\"\n ></pry-share>\n <div class=\"m-btn-group -space-evenly actions\" *ngIf=\"!consultMode; else consult\">\n <button (click)=\"prev(stepper)\" type=\"button\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.restitution.close' | i18n }}\n </button>\n <button (click)=\"goNext(stepper)\" type=\"button\" class=\"a-btn a-btn--primary\">\n {{ '@pry.restitution.share' | i18n }}\n </button>\n </div>\n </pry-step>\n </pry-stepper>\n</div>\n\n<ng-template #consult>\n <div class=\"m-btn-group -space-evenly actions\">\n <button (click)=\"prev(stepper)\" type=\"button\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.restitution.close' | i18n }}\n </button>\n <button (click)=\"goNext(stepper)\" type=\"button\" class=\"a-btn a-btn--primary\">\n {{ '@pry.restitution.next' | i18n }}\n </button>\n </div>\n</ng-template>\n<ng-template #noDatasource>\n <p class=\"search-home__container-search\">{{ '@pry.restitution.noDataSource' | i18n }}</p>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i1.PrySelectImageComponent, selector: "pry-select-image", inputs: ["iconUrl", "size", "mode"], outputs: ["toggled", "changed"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.PryStepperComponent, selector: "pry-stepper", inputs: ["isConsultMode"], outputs: ["lastStepCompleted"] }, { kind: "component", type: i5.PryStepComponent, selector: "pry-step", inputs: ["setActiveState"] }, { kind: "directive", type: i5.PryStepTitleDirective, selector: "[stepTitle]" }, { kind: "component", type: i1.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "autocomplete", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "loading", "elementRef"], outputs: ["searched", "cleared"] }, { kind: "component", type: i1.WidgetInstanciatorComponent, selector: "pry-widget-instanciator", inputs: ["widgetIndex", "staticManifest", "standalone", "open$"], outputs: ["manifestModified"] }, { kind: "component", type: i1.DatasourceSelectorComponent, selector: "pry-datasource-selector", inputs: ["manifest", "datasourceIds"], outputs: ["cancel", "validated", "previousTab", "nextTab", "datasourcesChanged"] }, { kind: "component", type: i1.PryShareComponent, selector: "pry-share", inputs: ["value", "labelProperty", "valueProperty", "users$"] }, { kind: "component", type: i6.PryCheckboxComponent, selector: "pry-checkbox", inputs: ["circle"] }, { kind: "component", type: i7.PryCatalogCssComponent, selector: "pry-restitution-css" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.I18nPipe, name: "i18n" }] }); }
197
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PryRestitutionComponent, selector: "pry-restitution", inputs: { selectedRestitution: "selectedRestitution", edit: "edit", isDataSourceSelected: "isDataSourceSelected", bindId: "bindId" }, outputs: { restitutionCreated: "restitutionCreated" }, usesInheritance: true, ngImport: i0, template: "<pry-restitution-css></pry-restitution-css>\n<div class=\"o-restitution\">\n <h3 class=\"a-h2 o-restitution__title\">\n {{ (consultMode ? '@pry.restitution.consult' : edit ? '@pry.restitution.edit' : '@pry.restitution.create') | i18n }}\n </h3>\n <pry-stepper #stepper [isConsultMode]=\"consultMode || edit\" (lastStepCompleted)=\"lastStepCompleted()\">\n <pry-step>\n <h4 class=\"m-stepper-item__title\" *stepTitle>{{ '@pry.restitution.configure' | i18n }}</h4>\n <div>\n <div class=\"m-form-label-field\">\n <label for=\"restitution\" class=\"a-label\">{{ '@pry.restitution.restitution_type' | i18n }}</label>\n <pry-select\n id=\"restitution\"\n [items]=\"types$ | async\"\n [(ngModel)]=\"form.selectedWidget\"\n [disabled]=\"consultMode\"\n bindIcon=\"icon\"\n bindLabel=\"label\"\n bindValue=\"type\"\n >\n </pry-select>\n </div>\n <div *ngIf=\"form.selectedWidget !== ''\">\n <div class=\"m-form-label-field\">\n <label for=\"graphTitle\" class=\"a-label\">{{ '@pry.restitution.graph_title' | i18n }}</label>\n <input\n name=\"title\"\n id=\"graphTitle\"\n class=\"a-form-field\"\n [(ngModel)]=\"form.title\"\n type=\"text\"\n [disabled]=\"consultMode\"\n maxlength=\"30\"\n ngDefaultControl\n />\n </div>\n <div class=\"m-form-label-field\">\n <label for=\"description\" class=\"a-label\">{{ '@pry.restitution.description' | i18n }}</label>\n <textarea\n name=\"description\"\n id=\"description\"\n class=\"a-form-field\"\n [(ngModel)]=\"form.description\"\n style=\"resize: none\"\n [disabled]=\"consultMode\"\n maxlength=\"255\"\n ngDefaultControl\n >\n </textarea>\n </div>\n <div class=\"m-form-label-field -width-full\">\n <label class=\"a-label\">{{ '@pry.presentation.form.image' | i18n }}</label>\n <div class=\"o-file-input\">\n <pry-select-image (changed)=\"image = $event\" [iconUrl]=\"image\" [mode]=\"type\"></pry-select-image>\n <pry-checkbox [(ngModel)]=\"form.cover\" name=\"cover\"> {{ '@pry.restitution.cover' | i18n }}</pry-checkbox>\n </div>\n </div>\n <div class=\"m-btn-group -space-evenly actions\">\n <button (click)=\"cancel(stepper)\" type=\"button\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.restitution.close' | i18n }}\n </button>\n <button\n (click)=\"goNext(stepper)\"\n [disabled]=\"form.selectedWidget === '' || form.title.trim().length === 0\"\n class=\"a-btn a-btn--primary\"\n >\n {{ '@pry.restitution.validate' | i18n }}\n </button>\n </div>\n </div>\n </div>\n </pry-step>\n <pry-step>\n <h4 class=\"m-stepper-item__title\" *stepTitle>{{ '@pry.restitution.dataSource' | i18n }}</h4>\n <pry-datasource-selector\n bindLabel=\"name\"\n bindValue=\"id\"\n translationStringBase=\"@pry.components.chipsSelector.datasource.\"\n (cancel)=\"prev(stepper)\"\n (validated)=\"submit(stepper)\"\n (itemsChanged)=\"datasourcesChanged($event)\"\n [usedItems]=\"(usedDatasources$ | async) ?? []\"\n ></pry-datasource-selector>\n </pry-step>\n <pry-step>\n <h4 class=\"m-stepper-item__title\" *stepTitle>{{ '@pry.restitution.visualize' | i18n }}</h4>\n <div class=\"widget-instanciator\">\n <pry-widget-instanciator\n [standalone]=\"true\"\n [staticManifest]=\"customManifest\"\n [open$]=\"openSettings$\"\n (manifestModified)=\"updateManifest($event)\"\n ></pry-widget-instanciator>\n </div>\n <div class=\"m-btn-group -space-evenly actions\" *ngIf=\"!consultMode; else consult\">\n <button (click)=\"prev(stepper)\" type=\"button\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.restitution.close' | i18n }}\n </button>\n <button (click)=\"goNext(stepper)\" type=\"button\" class=\"a-btn a-btn--primary\">\n {{ '@pry.restitution.validate' | i18n }}\n </button>\n </div>\n </pry-step>\n <pry-step>\n <h4 class=\"m-stepper-item__title\" *stepTitle>{{ '@pry.restitution.share' | i18n }}</h4>\n <div class=\"\">\n <h3>{{ '@pry.restitution.access' | i18n }}</h3>\n {{ '@pry.restitution.choice' | i18n }}\n <ul>\n <li>\n {{ '@pry.restitution.public' | i18n }}\n </li>\n </ul>\n {{ '@pry.restitution.or' | i18n }}\n <ul>\n <li>\n {{ '@pry.restitution.private' | i18n }}\n </li>\n </ul>\n </div>\n <pry-share\n [(ngModel)]=\"visibility\"\n [users$]=\"users$\"\n labelProperty=\"name\"\n valueProperty=\"id\"\n [disabled]=\"consultMode\"\n ></pry-share>\n <div class=\"m-btn-group -space-evenly actions\" *ngIf=\"!consultMode; else consult\">\n <button (click)=\"prev(stepper)\" type=\"button\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.restitution.close' | i18n }}\n </button>\n <button (click)=\"goNext(stepper)\" type=\"button\" class=\"a-btn a-btn--primary\">\n {{ '@pry.restitution.share' | i18n }}\n </button>\n </div>\n </pry-step>\n </pry-stepper>\n</div>\n\n<ng-template #consult>\n <div class=\"m-btn-group -space-evenly actions\">\n <button (click)=\"prev(stepper)\" type=\"button\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.restitution.close' | i18n }}\n </button>\n <button (click)=\"goNext(stepper)\" type=\"button\" class=\"a-btn a-btn--primary\">\n {{ '@pry.restitution.next' | i18n }}\n </button>\n </div>\n</ng-template>\n<ng-template #noDatasource>\n <p class=\"search-home__container-search\">{{ '@pry.restitution.noDataSource' | i18n }}</p>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i1.PrySelectImageComponent, selector: "pry-select-image", inputs: ["iconUrl", "size", "mode"], outputs: ["toggled", "changed"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.PryStepperComponent, selector: "pry-stepper", inputs: ["isConsultMode"], outputs: ["lastStepCompleted"] }, { kind: "component", type: i5.PryStepComponent, selector: "pry-step", inputs: ["setActiveState"] }, { kind: "directive", type: i5.PryStepTitleDirective, selector: "[stepTitle]" }, { kind: "component", type: i1.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "autocomplete", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "loading", "elementRef"], outputs: ["searched", "cleared"] }, { kind: "component", type: i1.WidgetInstanciatorComponent, selector: "pry-widget-instanciator", inputs: ["widgetIndex", "staticManifest", "standalone", "open$"], outputs: ["manifestModified"] }, { kind: "component", type: i1.DatasourceSelectorComponent, selector: "pry-datasource-selector", inputs: ["usedItems", "manifest"] }, { kind: "component", type: i1.PryShareComponent, selector: "pry-share", inputs: ["value", "labelProperty", "valueProperty", "users$"] }, { kind: "component", type: i6.PryCheckboxComponent, selector: "pry-checkbox", inputs: ["circle"] }, { kind: "component", type: i7.PryCatalogCssComponent, selector: "pry-restitution-css" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.I18nPipe, name: "i18n" }] }); }
195
198
  }
196
199
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryRestitutionComponent, decorators: [{
197
200
  type: Component,
198
- args: [{ selector: 'pry-restitution', template: "<pry-restitution-css></pry-restitution-css>\n<div class=\"o-restitution\">\n <h3 class=\"a-h2 o-restitution__title\">\n {{ (consultMode ? '@pry.restitution.consult' : edit ? '@pry.restitution.edit' : '@pry.restitution.create') | i18n }}\n </h3>\n <pry-stepper #stepper [isConsultMode]=\"consultMode || edit\" (lastStepCompleted)=\"lastStepCompleted()\">\n <pry-step>\n <h4 class=\"m-stepper-item__title\" *stepTitle>{{ '@pry.restitution.configure' | i18n }}</h4>\n <div>\n <div class=\"m-form-label-field\">\n <label for=\"restitution\" class=\"a-label\">{{ '@pry.restitution.restitution_type' | i18n }}</label>\n <pry-select\n id=\"restitution\"\n [items]=\"types$ | async\"\n [(ngModel)]=\"form.selectedWidget\"\n [disabled]=\"consultMode\"\n bindIcon=\"icon\"\n bindLabel=\"label\"\n bindValue=\"type\"\n >\n </pry-select>\n </div>\n <div *ngIf=\"form.selectedWidget !== ''\">\n <div class=\"m-form-label-field\">\n <label for=\"graphTitle\" class=\"a-label\">{{ '@pry.restitution.graph_title' | i18n }}</label>\n <input\n name=\"title\"\n id=\"graphTitle\"\n class=\"a-form-field\"\n [(ngModel)]=\"form.title\"\n type=\"text\"\n [disabled]=\"consultMode\"\n maxlength=\"30\"\n ngDefaultControl\n />\n </div>\n <div class=\"m-form-label-field\">\n <label for=\"description\" class=\"a-label\">{{ '@pry.restitution.description' | i18n }}</label>\n <textarea\n name=\"description\"\n id=\"description\"\n class=\"a-form-field\"\n [(ngModel)]=\"form.description\"\n style=\"resize: none\"\n [disabled]=\"consultMode\"\n maxlength=\"255\"\n ngDefaultControl\n >\n </textarea>\n </div>\n <div class=\"m-form-label-field -width-full\">\n <label class=\"a-label\">{{ '@pry.presentation.form.image' | i18n }}</label>\n <div class=\"o-file-input\">\n <pry-select-image (changed)=\"image = $event\" [iconUrl]=\"image\" [mode]=\"type\"></pry-select-image>\n <pry-checkbox [(ngModel)]=\"form.cover\" name=\"cover\"> {{ '@pry.restitution.cover' | i18n }}</pry-checkbox>\n </div>\n </div>\n <div class=\"m-btn-group -space-evenly actions\">\n <button (click)=\"cancel(stepper)\" type=\"button\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.restitution.close' | i18n }}\n </button>\n <button\n (click)=\"goNext(stepper)\"\n [disabled]=\"form.selectedWidget === '' || form.title.trim().length === 0\"\n class=\"a-btn a-btn--primary\"\n >\n {{ '@pry.restitution.validate' | i18n }}\n </button>\n </div>\n </div>\n </div>\n </pry-step>\n <pry-step>\n <h4 class=\"m-stepper-item__title\" *stepTitle>{{ '@pry.restitution.dataSource' | i18n }}</h4>\n <pry-datasource-selector\n (cancel)=\"prev(stepper)\"\n (validated)=\"submit(stepper)\"\n (datasourcesChanged)=\"datasourcesChanged($event)\"\n [datasourceIds]=\"form.selectedDataSources\"\n ></pry-datasource-selector>\n </pry-step>\n <pry-step>\n <h4 class=\"m-stepper-item__title\" *stepTitle>{{ '@pry.restitution.visualize' | i18n }}</h4>\n <div class=\"widget-instanciator\">\n <pry-widget-instanciator\n [standalone]=\"true\"\n [staticManifest]=\"customManifest\"\n [open$]=\"openSettings$\"\n (manifestModified)=\"updateManifest($event)\"\n ></pry-widget-instanciator>\n </div>\n <div class=\"m-btn-group -space-evenly actions\" *ngIf=\"!consultMode; else consult\">\n <button (click)=\"prev(stepper)\" type=\"button\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.restitution.close' | i18n }}\n </button>\n <button (click)=\"goNext(stepper)\" type=\"button\" class=\"a-btn a-btn--primary\">\n {{ '@pry.restitution.validate' | i18n }}\n </button>\n </div>\n </pry-step>\n <pry-step>\n <h4 class=\"m-stepper-item__title\" *stepTitle>{{ '@pry.restitution.share' | i18n }}</h4>\n <div class=\"\">\n <h3>{{ '@pry.restitution.access' | i18n }}</h3>\n {{ '@pry.restitution.choice' | i18n }}\n <ul>\n <li>\n {{ '@pry.restitution.public' | i18n }}\n </li>\n </ul>\n {{ '@pry.restitution.or' | i18n }}\n <ul>\n <li>\n {{ '@pry.restitution.private' | i18n }}\n </li>\n </ul>\n </div>\n <pry-share\n [(ngModel)]=\"visibility\"\n [users$]=\"users$\"\n labelProperty=\"name\"\n valueProperty=\"id\"\n [disabled]=\"consultMode\"\n ></pry-share>\n <div class=\"m-btn-group -space-evenly actions\" *ngIf=\"!consultMode; else consult\">\n <button (click)=\"prev(stepper)\" type=\"button\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.restitution.close' | i18n }}\n </button>\n <button (click)=\"goNext(stepper)\" type=\"button\" class=\"a-btn a-btn--primary\">\n {{ '@pry.restitution.share' | i18n }}\n </button>\n </div>\n </pry-step>\n </pry-stepper>\n</div>\n\n<ng-template #consult>\n <div class=\"m-btn-group -space-evenly actions\">\n <button (click)=\"prev(stepper)\" type=\"button\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.restitution.close' | i18n }}\n </button>\n <button (click)=\"goNext(stepper)\" type=\"button\" class=\"a-btn a-btn--primary\">\n {{ '@pry.restitution.next' | i18n }}\n </button>\n </div>\n</ng-template>\n<ng-template #noDatasource>\n <p class=\"search-home__container-search\">{{ '@pry.restitution.noDataSource' | i18n }}</p>\n</ng-template>\n" }]
201
+ args: [{ selector: 'pry-restitution', template: "<pry-restitution-css></pry-restitution-css>\n<div class=\"o-restitution\">\n <h3 class=\"a-h2 o-restitution__title\">\n {{ (consultMode ? '@pry.restitution.consult' : edit ? '@pry.restitution.edit' : '@pry.restitution.create') | i18n }}\n </h3>\n <pry-stepper #stepper [isConsultMode]=\"consultMode || edit\" (lastStepCompleted)=\"lastStepCompleted()\">\n <pry-step>\n <h4 class=\"m-stepper-item__title\" *stepTitle>{{ '@pry.restitution.configure' | i18n }}</h4>\n <div>\n <div class=\"m-form-label-field\">\n <label for=\"restitution\" class=\"a-label\">{{ '@pry.restitution.restitution_type' | i18n }}</label>\n <pry-select\n id=\"restitution\"\n [items]=\"types$ | async\"\n [(ngModel)]=\"form.selectedWidget\"\n [disabled]=\"consultMode\"\n bindIcon=\"icon\"\n bindLabel=\"label\"\n bindValue=\"type\"\n >\n </pry-select>\n </div>\n <div *ngIf=\"form.selectedWidget !== ''\">\n <div class=\"m-form-label-field\">\n <label for=\"graphTitle\" class=\"a-label\">{{ '@pry.restitution.graph_title' | i18n }}</label>\n <input\n name=\"title\"\n id=\"graphTitle\"\n class=\"a-form-field\"\n [(ngModel)]=\"form.title\"\n type=\"text\"\n [disabled]=\"consultMode\"\n maxlength=\"30\"\n ngDefaultControl\n />\n </div>\n <div class=\"m-form-label-field\">\n <label for=\"description\" class=\"a-label\">{{ '@pry.restitution.description' | i18n }}</label>\n <textarea\n name=\"description\"\n id=\"description\"\n class=\"a-form-field\"\n [(ngModel)]=\"form.description\"\n style=\"resize: none\"\n [disabled]=\"consultMode\"\n maxlength=\"255\"\n ngDefaultControl\n >\n </textarea>\n </div>\n <div class=\"m-form-label-field -width-full\">\n <label class=\"a-label\">{{ '@pry.presentation.form.image' | i18n }}</label>\n <div class=\"o-file-input\">\n <pry-select-image (changed)=\"image = $event\" [iconUrl]=\"image\" [mode]=\"type\"></pry-select-image>\n <pry-checkbox [(ngModel)]=\"form.cover\" name=\"cover\"> {{ '@pry.restitution.cover' | i18n }}</pry-checkbox>\n </div>\n </div>\n <div class=\"m-btn-group -space-evenly actions\">\n <button (click)=\"cancel(stepper)\" type=\"button\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.restitution.close' | i18n }}\n </button>\n <button\n (click)=\"goNext(stepper)\"\n [disabled]=\"form.selectedWidget === '' || form.title.trim().length === 0\"\n class=\"a-btn a-btn--primary\"\n >\n {{ '@pry.restitution.validate' | i18n }}\n </button>\n </div>\n </div>\n </div>\n </pry-step>\n <pry-step>\n <h4 class=\"m-stepper-item__title\" *stepTitle>{{ '@pry.restitution.dataSource' | i18n }}</h4>\n <pry-datasource-selector\n bindLabel=\"name\"\n bindValue=\"id\"\n translationStringBase=\"@pry.components.chipsSelector.datasource.\"\n (cancel)=\"prev(stepper)\"\n (validated)=\"submit(stepper)\"\n (itemsChanged)=\"datasourcesChanged($event)\"\n [usedItems]=\"(usedDatasources$ | async) ?? []\"\n ></pry-datasource-selector>\n </pry-step>\n <pry-step>\n <h4 class=\"m-stepper-item__title\" *stepTitle>{{ '@pry.restitution.visualize' | i18n }}</h4>\n <div class=\"widget-instanciator\">\n <pry-widget-instanciator\n [standalone]=\"true\"\n [staticManifest]=\"customManifest\"\n [open$]=\"openSettings$\"\n (manifestModified)=\"updateManifest($event)\"\n ></pry-widget-instanciator>\n </div>\n <div class=\"m-btn-group -space-evenly actions\" *ngIf=\"!consultMode; else consult\">\n <button (click)=\"prev(stepper)\" type=\"button\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.restitution.close' | i18n }}\n </button>\n <button (click)=\"goNext(stepper)\" type=\"button\" class=\"a-btn a-btn--primary\">\n {{ '@pry.restitution.validate' | i18n }}\n </button>\n </div>\n </pry-step>\n <pry-step>\n <h4 class=\"m-stepper-item__title\" *stepTitle>{{ '@pry.restitution.share' | i18n }}</h4>\n <div class=\"\">\n <h3>{{ '@pry.restitution.access' | i18n }}</h3>\n {{ '@pry.restitution.choice' | i18n }}\n <ul>\n <li>\n {{ '@pry.restitution.public' | i18n }}\n </li>\n </ul>\n {{ '@pry.restitution.or' | i18n }}\n <ul>\n <li>\n {{ '@pry.restitution.private' | i18n }}\n </li>\n </ul>\n </div>\n <pry-share\n [(ngModel)]=\"visibility\"\n [users$]=\"users$\"\n labelProperty=\"name\"\n valueProperty=\"id\"\n [disabled]=\"consultMode\"\n ></pry-share>\n <div class=\"m-btn-group -space-evenly actions\" *ngIf=\"!consultMode; else consult\">\n <button (click)=\"prev(stepper)\" type=\"button\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.restitution.close' | i18n }}\n </button>\n <button (click)=\"goNext(stepper)\" type=\"button\" class=\"a-btn a-btn--primary\">\n {{ '@pry.restitution.share' | i18n }}\n </button>\n </div>\n </pry-step>\n </pry-stepper>\n</div>\n\n<ng-template #consult>\n <div class=\"m-btn-group -space-evenly actions\">\n <button (click)=\"prev(stepper)\" type=\"button\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.restitution.close' | i18n }}\n </button>\n <button (click)=\"goNext(stepper)\" type=\"button\" class=\"a-btn a-btn--primary\">\n {{ '@pry.restitution.next' | i18n }}\n </button>\n </div>\n</ng-template>\n<ng-template #noDatasource>\n <p class=\"search-home__container-search\">{{ '@pry.restitution.noDataSource' | i18n }}</p>\n</ng-template>\n" }]
199
202
  }], ctorParameters: function () { return [{ type: i1.ToolboxManifestService }, { type: i2.Store }, { type: i1.ToolboxMenuService }]; }, propDecorators: { selectedRestitution: [{
200
203
  type: Input
201
204
  }], edit: [{
@@ -207,4 +210,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
207
210
  }], bindId: [{
208
211
  type: Input
209
212
  }] } });
210
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdGl0dXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvcmVzdGl0dXRpb24vY29tcG9uZW50cy9yZXN0aXR1dGlvbi9yZXN0aXR1dGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9yZXN0aXR1dGlvbi9jb21wb25lbnRzL3Jlc3RpdHV0aW9uL3Jlc3RpdHV0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0UsT0FBTyxFQUdMLFlBQVksRUFDWixjQUFjLEVBQ2QsYUFBYSxFQUNiLGdCQUFnQixFQUVoQixpQkFBaUIsRUFDakIsNEJBQTRCLEVBQzVCLFlBQVksRUFDWixpQkFBaUIsRUFDakIsWUFBWSxFQUVaLGlCQUFpQixFQUNqQixhQUFhLEVBQ2Isd0JBQXdCLEVBR3hCLFFBQVEsRUFHVCxNQUFNLG9CQUFvQixDQUFDO0FBRTVCLE9BQU8sRUFBRSxHQUFHLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7OztBQU8xQixNQUFNLE9BQU8sdUJBQXdCLFNBQVEsd0JBQXdCO0lBaUNuRSxZQUNVLHNCQUE4QyxFQUM5QyxLQUFZLEVBQ1osa0JBQXNDO1FBRTlDLEtBQUssRUFBRSxDQUFDO1FBSkEsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQUM5QyxVQUFLLEdBQUwsS0FBSyxDQUFPO1FBQ1osdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQWpDaEQsbUJBQWMsR0FBbUI7WUFDL0IsSUFBSSxFQUFFLFFBQVE7WUFD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LFFBQVEsQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDakMsQ0FBQzsrR0FwTlUsdUJBQXVCO21HQUF2Qix1QkFBdUIsMlFDbENwQyx5L0xBcUpBOzs0RkRuSGEsdUJBQXVCO2tCQUpuQyxTQUFTOytCQUNFLGlCQUFpQjtrS0EwQmxCLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0ksa0JBQWtCO3NCQUEzQixNQUFNO2dCQUdFLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7XG4gIENhdGFsb2dFbnRyeSxcbiAgQ2xhc3MsXG4gIENsYXNzQWN0aW9ucyxcbiAgQ2xhc3NTZWxlY3RvcnMsXG4gIENvbmZpZ0FjdGlvbnMsXG4gIERhc2hib2FyZEFjdGlvbnMsXG4gIERhdGFTb3VyY2UsXG4gIERhdGFTb3VyY2VBY3Rpb25zLFxuICBERUZBVUxUX1JFU1RJVFVUSU9OX0lDT05fVVJMLFxuICBGaWVsZEFjdGlvbnMsXG4gIGdldERpc3BsYXlPcHRpb25zLFxuICBMaWJyYXJ5VHlwZXMsXG4gIFByeVZpc2liaWxpdHksXG4gIFByeVZpc2liaWxpdHlUeXBlLFxuICBTZWFyY2hBY3Rpb25zLFxuICBTdWJzY3JpcHRpb25uZXJEaXJlY3RpdmUsXG4gIFRvb2xib3hNYW5pZmVzdFNlcnZpY2UsXG4gIFRvb2xib3hNZW51U2VydmljZSxcbiAgVmlld01vZGUsXG4gIFdpZGdldCxcbiAgV2lkZ2V0TWFuaWZlc3Rcbn0gZnJvbSAnQHByb3ZvbHkvZGFzaGJvYXJkJztcbmltcG9ydCB7IFByeVN0ZXBwZXJDb21wb25lbnQgfSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQvY29tcG9uZW50cy9zdGVwcGVyJztcbmltcG9ydCB7IG1hcCwgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdjQgfSBmcm9tICd1dWlkJztcbmltcG9ydCB7IFJlc3RpdHV0aW9uRm9ybSB9IGZyb20gJy4uLy4uL21vZGVsL3Jlc3RpdHV0aW9uLm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncHJ5LXJlc3RpdHV0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Jlc3RpdHV0aW9uLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBQcnlSZXN0aXR1dGlvbkNvbXBvbmVudCBleHRlbmRzIFN1YnNjcmlwdGlvbm5lckRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHR5cGVzJDogT2JzZXJ2YWJsZTx7IGljb246IHN0cmluZzsgbGFiZWw6IHN0cmluZzsgdHlwZTogc3RyaW5nOyBtYW5pZmVzdDogV2lkZ2V0TWFuaWZlc3QgfVtdPjtcbiAgY2xhc3NlcyQ6IE9ic2VydmFibGU8Q2xhc3NbXT47XG4gIGN1c3RvbU1hbmlmZXN0OiBXaWRnZXRNYW5pZmVzdCA9IHtcbiAgICB0eXBlOiAnZGV0YWlsJyxcbiAgICBsYXlvdXQ6IHsgeDogMSwgeTogMSwgd2lkdGg6IDEsIGhlaWdodDogMSB9LFxuICAgIG9wdGlvbnM6IHsgaXRlbUlkczogW10gYXMgc3RyaW5nW10gfVxuICB9O1xuICBmb3JtOiBSZXN0aXR1dGlvbkZvcm0gPSB7XG4gICAgc2VsZWN0ZWRXaWRnZXQ6ICcnLFxuICAgIHNlbGVjdGVkRGF0YVNvdXJjZXM6IFtdLFxuICAgIHRpdGxlOiAnJyxcbiAgICBpbWFnZTogREVGQVVMVF9SRVNUSVRVVElPTl9JQ09OX1VSTCxcbiAgICBkZXNjcmlwdGlvbjogJycsXG4gICAgY292ZXI6IGZhbHNlXG4gIH07XG4gIHZpc2liaWxpdHk6IFByeVZpc2liaWxpdHkgPSB7XG4gICAgdHlwZTogUHJ5VmlzaWJpbGl0eVR5cGUuUFJJVkFURSxcbiAgICB1c2VyczogW11cbiAgfTtcbiAgb3BlblNldHRpbmdzJDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHVzZXJzJDogT2JzZXJ2YWJsZTxhbnlbXT4gfCBudWxsID0gbnVsbDtcbiAgY29uc3VsdE1vZGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgc2VsZWN0ZWRSZXN0aXR1dGlvbjogV2lkZ2V0IHwgbnVsbCA9IG51bGw7XG4gIEBJbnB1dCgpIGVkaXQ6IGJvb2xlYW4gPSB0cnVlO1xuICBAT3V0cHV0KCkgcmVzdGl0dXRpb25DcmVhdGVkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICB3aWRnZXRzTGlzdCQ6IE9ic2VydmFibGU8Q2F0YWxvZ0VudHJ5W10+O1xuICB0eXBlOiBMaWJyYXJ5VHlwZXMgPSBMaWJyYXJ5VHlwZXMuSUxMVVNUUkFUSU9OO1xuICBASW5wdXQoKSBpc0RhdGFTb3VyY2VTZWxlY3RlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBiaW5kSWQ6IGFueTtcbiAgaW1hZ2U6IHN0cmluZyA9IERFRkFVTFRfUkVTVElUVVRJT05fSUNPTl9VUkw7XG4gIHdpZGdldFR5cGVzOiB7IGljb246IHN0cmluZzsgbGFiZWw6IHN0cmluZzsgdHlwZTogc3RyaW5nOyBtYW5pZmVzdDogV2lkZ2V0TWFuaWZlc3QgfVtdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSB0b29sYm94TWFuaWZlc3RTZXJ2aWNlOiBUb29sYm94TWFuaWZlc3RTZXJ2aWNlLFxuICAgIHByaXZhdGUgc3RvcmU6IFN0b3JlLFxuICAgIHByaXZhdGUgdG9vbGJveE1lbnVTZXJ2aWNlOiBUb29sYm94TWVudVNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKERhdGFTb3VyY2VBY3Rpb25zLmxvYWQoKSk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChDbGFzc0FjdGlvbnMubG9hZCgpKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENvbmZpZ0FjdGlvbnMubG9hZEN1c3RvbWl6YXRpb24oKSk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChGaWVsZEFjdGlvbnMubG9hZCgpKTtcblxuICAgIHRoaXMudHlwZXMkID0gdGhpcy50b29sYm94TWVudVNlcnZpY2UudHlwZXMkLnBpcGUoXG4gICAgICBtYXAoKHR5cGUpID0+IHR5cGUuZmlsdGVyKChmaWx0ZXJlZFR5cGUpID0+IGZpbHRlcmVkVHlwZS50eXBlICE9PSAnZGV0YWlsJykpXG4gICAgKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKHRoaXMudHlwZXMkLnN1YnNjcmliZSgodHlwZXMpID0+ICh0aGlzLndpZGdldFR5cGVzID0gdHlwZXMpKSk7XG4gICAgdGhpcy5jbGFzc2VzJCA9IHRoaXMuc3RvcmUuc2VsZWN0KENsYXNzU2VsZWN0b3JzLmNsYXNzZXMpO1xuICAgIHRoaXMud2lkZ2V0c0xpc3QkID0gdGhpcy50b29sYm94TWVudVNlcnZpY2UubWVudVN0cnVjdHVyZSQucGlwZShcbiAgICAgIG1hcCgobWVudSkgPT5cbiAgICAgICAgbWVudVxuICAgICAgICAgIC5tYXAoKGl0ZW1zKSA9PiBbLi4uaXRlbXMuc3ViLmZpbHRlcigocykgPT4gdGhpcy50b29sYm94TWFuaWZlc3RTZXJ2aWNlLmlzTW9kZWwocy50eXBlKSldKVxuICAgICAgICAgIC5yZWR1Y2UoKGFjYywgaXRlbXMpID0+IFsuLi5hY2MsIC4uLml0ZW1zXSwgW10pXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnNlbGVjdGVkUmVzdGl0dXRpb24pIHtcbiAgICAgIGlmICghdGhpcy5lZGl0KSB7XG4gICAgICAgIHRoaXMuY29uc3VsdE1vZGUgPSB0cnVlO1xuICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKERhc2hib2FyZEFjdGlvbnMudXBkYXRlRGlzcGxheU9wdGlvbnMoeyBtb2RlOiBWaWV3TW9kZS5DT05TVUxUIH0pKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICAgICAgRGFzaGJvYXJkQWN0aW9ucy51cGRhdGVEaXNwbGF5T3B0aW9ucyh7XG4gICAgICAgICAgICBtb2RlOiBWaWV3TW9kZS5DVVNUT00sXG4gICAgICAgICAgICBjdXN0b21EaXNwbGF5OiB7XG4gICAgICAgICAgICAgIC4uLmdldERpc3BsYXlPcHRpb25zKFZpZXdNb2RlLkVESVRJT04pLFxuICAgICAgICAgICAgICB3aWRnZXRDb250ZXh0TWVudToge1xuICAgICAgICAgICAgICAgIGRhdGFzb3VyY2VTZWxlY3Rpb246IGZhbHNlLFxuICAgICAgICAgICAgICAgIHBhcmFtZXRlcnM6IHRydWUsXG4gICAgICAgICAgICAgICAgd2luZG93OiBmYWxzZSxcbiAgICAgICAgICAgICAgICBtYXhpbWl6ZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgYWRkVG9DYXRhbG9nOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBkZWxldGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGNoYW5nZVNwb3Q6IGZhbHNlXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgdGhpcy5jdXN0b21NYW5pZmVzdCA9IEpTT04ucGFyc2UodGhpcy5zZWxlY3RlZFJlc3RpdHV0aW9uLmNvbnRlbnQpO1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5jdXN0b21NYW5pZmVzdC5kYXRhc291cmNlKSkge1xuICAgICAgICB0aGlzLmN1c3RvbU1hbmlmZXN0LmRhdGFzb3VyY2UuZm9yRWFjaCgoZGF0YVNvdXJjZTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgICAgICAgIFNlYXJjaEFjdGlvbnMuZ2V0RGF0YXNvdXJjZUl0ZW1zKHtcbiAgICAgICAgICAgICAgaWQ6IGRhdGFTb3VyY2UsXG4gICAgICAgICAgICAgIGV4Y2x1ZGVHZW86IHRoaXMuY3VzdG9tTWFuaWZlc3QudHlwZSA9PT0gJ21hcCcsXG4gICAgICAgICAgICAgIGZyb206ICdQcnlSZXN0aXR1dGlvbkNvbXBvbmVudC5uZ09uSW5pdCgpLTEnXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgICAgICBTZWFyY2hBY3Rpb25zLmdldERhdGFzb3VyY2VJdGVtcyh7XG4gICAgICAgICAgICBpZDogdGhpcy5jdXN0b21NYW5pZmVzdC5kYXRhc291cmNlIGFzIHN0cmluZyxcbiAgICAgICAgICAgIGV4Y2x1ZGVHZW86IHRoaXMuY3VzdG9tTWFuaWZlc3QudHlwZSA9PT0gJ21hcCcsXG4gICAgICAgICAgICBmcm9tOiAnUHJ5UmVzdGl0dXRpb25Db21wb25lbnQubmdPbkluaXQoKS0yJ1xuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5zZWxlY3RlZFJlc3RpdHV0aW9uLnZpc2liaWxpdHkpIHtcbiAgICAgICAgdGhpcy52aXNpYmlsaXR5ID0gdGhpcy5zZWxlY3RlZFJlc3RpdHV0aW9uLnZpc2liaWxpdHk7XG4gICAgICB9XG4gICAgICB0aGlzLmZvcm0uc2VsZWN0ZWREYXRhU291cmNlcy5mb3JFYWNoKChkYXRhU291cmNlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgICAgICBTZWFyY2hBY3Rpb25zLmdldERhdGFzb3VyY2VJdGVtcyh7XG4gICAgICAgICAgICBpZDogZGF0YVNvdXJjZSxcbiAgICAgICAgICAgIGV4Y2x1ZGVHZW86IHRoaXMuY3VzdG9tTWFuaWZlc3QudHlwZSA9PT0gJ21hcCcsXG4gICAgICAgICAgICBmcm9tOiAnUHJ5UmVzdGl0dXRpb25Db21wb25lbnQubmdPbkluaXQoKS0zJ1xuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICAgIHRoaXMuY3VzdG9tTWFuaWZlc3QgPSBKU09OLnBhcnNlKHRoaXMuc2VsZWN0ZWRSZXN0aXR1dGlvbi5jb250ZW50KTtcbiAgICAgIHRoaXMuZm9ybSA9IHtcbiAgICAgICAgc2VsZWN0ZWRXaWRnZXQ6IHRoaXMuY3VzdG9tTWFuaWZlc3QudHlwZSxcbiAgICAgICAgc2VsZWN0ZWREYXRhU291cmNlczogKHRoaXMuY3VzdG9tTWFuaWZlc3QuZGF0YXNvdXJjZSA/PyBbXSkgYXMgc3RyaW5nW10sXG4gICAgICAgIHRpdGxlOiB0aGlzLnNlbGVjdGVkUmVzdGl0dXRpb24ubmFtZSxcbiAgICAgICAgY292ZXI6IHRoaXMuc2VsZWN0ZWRSZXN0aXR1dGlvbi5jb3ZlcixcbiAgICAgICAgLi4udGhpcy5zZWxlY3RlZFJlc3RpdHV0aW9uXG4gICAgICB9O1xuICAgIH1cbiAgICB0aGlzLmltYWdlID0gdGhpcy5zZWxlY3RlZFJlc3RpdHV0aW9uPy5pbWFnZSA/PyBERUZBVUxUX1JFU1RJVFVUSU9OX0lDT05fVVJMO1xuICB9XG5cbiAgY2FuY2VsKHN0ZXBwZXI6IFByeVN0ZXBwZXJDb21wb25lbnQpIHtcbiAgICB0aGlzLmZvcm0uc2VsZWN0ZWRXaWRnZXQgPSAnJztcbiAgICB0aGlzLmZvcm0uc2VsZWN0ZWREYXRhU291cmNlcyA9IFtdO1xuICAgIHRoaXMuZm9ybS50aXRsZSA9ICcnO1xuICAgIHRoaXMuZm9ybS5kZXNjcmlwdGlvbiA9ICcnO1xuICAgIHRoaXMuZm9ybS5pbWFnZSA9ICcnO1xuICAgIHRoaXMuZm9ybS5jb3ZlciA9IGZhbHNlO1xuICAgIGlmICh0aGlzLmNvbnN1bHRNb2RlIHx8IHRoaXMuc2VsZWN0ZWRSZXN0aXR1dGlvbikge1xuICAgICAgdGhpcy5yZXN0aXR1dGlvbkNyZWF0ZWQuZW1pdCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnByZXYoc3RlcHBlcik7XG4gIH1cblxuICBkYXRhc291cmNlc0NoYW5nZWQoJGV2ZW50OiBEYXRhU291cmNlW10pIHtcbiAgICB0aGlzLmZvcm0uc2VsZWN0ZWREYXRhU291cmNlcyA9ICgkZXZlbnQgPz8gW10pLm1hcCgoZHMpID0+IGRzLmlkKTtcbiAgfVxuXG4gIHN1Ym1pdChzdGVwcGVyOiBQcnlTdGVwcGVyQ29tcG9uZW50KSB7XG4gICAgaWYgKHRoaXMuY29uc3VsdE1vZGUpIHtcbiAgICAgIHRoaXMuZ29OZXh0KHN0ZXBwZXIpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHdpZGdldFR5cGUgPSB0aGlzLndpZGdldFR5cGVzLmZpbmQoKHdpZGdldFR5cGUpID0+IHdpZGdldFR5cGUudHlwZSA9PT0gdGhpcy5mb3JtLnNlbGVjdGVkV2lkZ2V0KTtcblxuICAgIHRoaXMuY3VzdG9tTWFuaWZlc3QgPSB7XG4gICAgICAuLi50aGlzLmN1c3RvbU1hbmlmZXN0LFxuICAgICAgdHlwZTogdGhpcy5mb3JtLnNlbGVjdGVkV2lkZ2V0LFxuICAgICAgdGl0bGU6IHRoaXMuZm9ybS50aXRsZSxcbiAgICAgIGRhdGFzb3VyY2U6IHRoaXMuZm9ybS5zZWxlY3RlZERhdGFTb3VyY2VzID8/IFtdLFxuICAgICAgY292ZXI6IHRoaXMuZm9ybS5jb3ZlciA/PyBmYWxzZSxcbiAgICAgIGhlYWRlcjogdHJ1ZSxcbiAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgLi4ud2lkZ2V0VHlwZT8ubWFuaWZlc3Qub3B0aW9ucyxcbiAgICAgICAgdGl0bGU6IHRoaXMuZm9ybS50aXRsZVxuICAgICAgfVxuICAgIH07XG4gICAgdGhpcy5mb3JtLnNlbGVjdGVkRGF0YVNvdXJjZXMuZm9yRWFjaCgobmFtZVF1ZXJ5OiBzdHJpbmcpID0+IHtcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICAgIFNlYXJjaEFjdGlvbnMuZ2V0RGF0YXNvdXJjZUl0ZW1zKHtcbiAgICAgICAgICBpZDogbmFtZVF1ZXJ5LFxuICAgICAgICAgIGV4Y2x1ZGVHZW86IHRoaXMuY3VzdG9tTWFuaWZlc3QudHlwZSA9PT0gJ21hcCcsXG4gICAgICAgICAgZnJvbTogJ1ByeVJlc3RpdHV0aW9uQ29tcG9uZW50LnN1Ym1pdCgpJ1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9KTtcbiAgICB0aGlzLmdvTmV4dChzdGVwcGVyKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMub3BlblNldHRpbmdzJC5uZXh0KCk7XG4gICAgfSwgMTUwKTtcbiAgfVxuXG4gIGdvTmV4dChzdGVwcGVyOiBQcnlTdGVwcGVyQ29tcG9uZW50KSB7XG4gICAgc3RlcHBlci5uZXh0KCk7XG4gIH1cblxuICBwcmV2KHN0ZXBwZXI6IFByeVN0ZXBwZXJDb21wb25lbnQpIHtcbiAgICBzdGVwcGVyLnByZXYoKTtcbiAgfVxuXG4gIHVwZGF0ZU1hbmlmZXN0KCRldmVudDogeyB3aWRnZXRJbmRleDogbnVtYmVyOyBtYW5pZmVzdDogV2lkZ2V0TWFuaWZlc3QgfSkge1xuICAgIHRoaXMuY3VzdG9tTWFuaWZlc3QgPSAkZXZlbnQubWFuaWZlc3Q7XG4gIH1cblxuICBsYXN0U3RlcENvbXBsZXRlZCgpIHtcbiAgICB0aGlzLmZvcm0uaW1hZ2UgPSB0aGlzLmltYWdlO1xuICAgIGlmICh0aGlzLmVkaXQpIHtcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICAgIENvbmZpZ0FjdGlvbnMuc2F2ZVdpZGdldCh7XG4gICAgICAgICAgd2lkZ2V0OiB7XG4gICAgICAgICAgICBpZDogdGhpcy5zZWxlY3RlZFJlc3RpdHV0aW9uPy5pZCA/PyB2NCgpLFxuICAgICAgICAgICAgY29udGVudDogSlNPTi5zdHJpbmdpZnkodGhpcy5jdXN0b21NYW5pZmVzdCksXG4gICAgICAgICAgICBuYW1lOiB0aGlzLmZvcm0udGl0bGUsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogdGhpcy5mb3JtLmRlc2NyaXB0aW9uLFxuICAgICAgICAgICAgaW1hZ2U6IHRoaXMuZm9ybS5pbWFnZSA/PyAnJyxcbiAgICAgICAgICAgIHZpc2liaWxpdHk6IHRoaXMudmlzaWJpbGl0eSxcbiAgICAgICAgICAgIGRhdGFzb3VyY2U6IHRoaXMuZm9ybS5zZWxlY3RlZERhdGFTb3VyY2VzID8/IFtdLFxuICAgICAgICAgICAgY292ZXI6IHRoaXMuZm9ybS5jb3ZlciA/PyBmYWxzZSxcbiAgICAgICAgICAgIG1vZGlmaWNhdGlvbkRhdGU6ICcnXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChDb25maWdBY3Rpb25zLmxvYWRXaWRnZXRzKCkpO1xuICAgIHRoaXMucmVzdGl0dXRpb25DcmVhdGVkLmVtaXQoKTtcbiAgfVxufVxuIiwiPHByeS1yZXN0aXR1dGlvbi1jc3M+PC9wcnktcmVzdGl0dXRpb24tY3NzPlxuPGRpdiBjbGFzcz1cIm8tcmVzdGl0dXRpb25cIj5cbiAgPGgzIGNsYXNzPVwiYS1oMiBvLXJlc3RpdHV0aW9uX190aXRsZVwiPlxuICAgIHt7IChjb25zdWx0TW9kZSA/ICdAcHJ5LnJlc3RpdHV0aW9uLmNvbnN1bHQnIDogZWRpdCA/ICdAcHJ5LnJlc3RpdHV0aW9uLmVkaXQnIDogJ0BwcnkucmVzdGl0dXRpb24uY3JlYXRlJykgfCBpMThuIH19XG4gIDwvaDM+XG4gIDxwcnktc3RlcHBlciAjc3RlcHBlciBbaXNDb25zdWx0TW9kZV09XCJjb25zdWx0TW9kZSB8fCBlZGl0XCIgKGxhc3RTdGVwQ29tcGxldGVkKT1cImxhc3RTdGVwQ29tcGxldGVkKClcIj5cbiAgICA8cHJ5LXN0ZXA+XG4gICAgICA8aDQgY2xhc3M9XCJtLXN0ZXBwZXItaXRlbV9fdGl0bGVcIiAqc3RlcFRpdGxlPnt7ICdAcHJ5LnJlc3RpdHV0aW9uLmNvbmZpZ3VyZScgfCBpMThuIH19PC9oND5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtLWZvcm0tbGFiZWwtZmllbGRcIj5cbiAgICAgICAgICA8bGFiZWwgZm9yPVwicmVzdGl0dXRpb25cIiBjbGFzcz1cImEtbGFiZWxcIj57eyAnQHByeS5yZXN0aXR1dGlvbi5yZXN0aXR1dGlvbl90eXBlJyB8IGkxOG4gfX08L2xhYmVsPlxuICAgICAgICAgIDxwcnktc2VsZWN0XG4gICAgICAgICAgICBpZD1cInJlc3RpdHV0aW9uXCJcbiAgICAgICAgICAgIFtpdGVtc109XCJ0eXBlcyQgfCBhc3luY1wiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZvcm0uc2VsZWN0ZWRXaWRnZXRcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImNvbnN1bHRNb2RlXCJcbiAgICAgICAgICAgIGJpbmRJY29uPVwiaWNvblwiXG4gICAgICAgICAgICBiaW5kTGFiZWw9XCJsYWJlbFwiXG4gICAgICAgICAgICBiaW5kVmFsdWU9XCJ0eXBlXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgPC9wcnktc2VsZWN0PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiAqbmdJZj1cImZvcm0uc2VsZWN0ZWRXaWRnZXQgIT09ICcnXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZFwiPlxuICAgICAgICAgICAgPGxhYmVsIGZvcj1cImdyYXBoVGl0bGVcIiBjbGFzcz1cImEtbGFiZWxcIj57eyAnQHByeS5yZXN0aXR1dGlvbi5ncmFwaF90aXRsZScgfCBpMThuIH19PC9sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICBuYW1lPVwidGl0bGVcIlxuICAgICAgICAgICAgICBpZD1cImdyYXBoVGl0bGVcIlxuICAgICAgICAgICAgICBjbGFzcz1cImEtZm9ybS1maWVsZFwiXG4gICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZm9ybS50aXRsZVwiXG4gICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImNvbnN1bHRNb2RlXCJcbiAgICAgICAgICAgICAgbWF4bGVuZ3RoPVwiMzBcIlxuICAgICAgICAgICAgICBuZ0RlZmF1bHRDb250cm9sXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtLWZvcm0tbGFiZWwtZmllbGRcIj5cbiAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJkZXNjcmlwdGlvblwiIGNsYXNzPVwiYS1sYWJlbFwiPnt7ICdAcHJ5LnJlc3RpdHV0aW9uLmRlc2NyaXB0aW9uJyB8IGkxOG4gfX08L2xhYmVsPlxuICAgICAgICAgICAgPHRleHRhcmVhXG4gICAgICAgICAgICAgIG5hbWU9XCJkZXNjcmlwdGlvblwiXG4gICAgICAgICAgICAgIGlkPVwiZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICBjbGFzcz1cImEtZm9ybS1maWVsZFwiXG4gICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZm9ybS5kZXNjcmlwdGlvblwiXG4gICAgICAgICAgICAgIHN0eWxlPVwicmVzaXplOiBub25lXCJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImNvbnN1bHRNb2RlXCJcbiAgICAgICAgICAgICAgbWF4bGVuZ3RoPVwiMjU1XCJcbiAgICAgICAgICAgICAgbmdEZWZhdWx0Q29udHJvbFxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC90ZXh0YXJlYT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkIC13aWR0aC1mdWxsXCI+XG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJhLWxhYmVsXCI+e3sgJ0BwcnkucHJlc2VudGF0aW9uLmZvcm0uaW1hZ2UnIHwgaTE4biB9fTwvbGFiZWw+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiby1maWxlLWlucHV0XCI+XG4gICAgICAgICAgICAgIDxwcnktc2VsZWN0LWltYWdlIChjaGFuZ2VkKT1cImltYWdlID0gJGV2ZW50XCIgW2ljb25VcmxdPVwiaW1hZ2VcIiBbbW9kZV09XCJ0eXBlXCI+PC9wcnktc2VsZWN0LWltYWdlPlxuICAgICAgICAgICAgICA8cHJ5LWNoZWNrYm94IFsobmdNb2RlbCldPVwiZm9ybS5jb3ZlclwiIG5hbWU9XCJjb3ZlclwiPiB7eyAnQHByeS5yZXN0aXR1dGlvbi5jb3ZlcicgfCBpMThuIH19PC9wcnktY2hlY2tib3g+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibS1idG4tZ3JvdXAgLXNwYWNlLWV2ZW5seSBhY3Rpb25zXCI+XG4gICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJjYW5jZWwoc3RlcHBlcilcIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tc2Vjb25kYXJ5XCI+XG4gICAgICAgICAgICAgIHt7ICdAcHJ5LnJlc3RpdHV0aW9uLmNsb3NlJyB8IGkxOG4gfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAoY2xpY2spPVwiZ29OZXh0KHN0ZXBwZXIpXCJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImZvcm0uc2VsZWN0ZWRXaWRnZXQgPT09ICcnIHx8IGZvcm0udGl0bGUudHJpbSgpLmxlbmd0aCA9PT0gMFwiXG4gICAgICAgICAgICAgIGNsYXNzPVwiYS1idG4gYS1idG4tLXByaW1hcnlcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyAnQHByeS5yZXN0aXR1dGlvbi52YWxpZGF0ZScgfCBpMThuIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L3ByeS1zdGVwPlxuICAgIDxwcnktc3RlcD5cbiAgICAgIDxoNCBjbGFzcz1cIm0tc3RlcHBlci1pdGVtX190aXRsZVwiICpzdGVwVGl0bGU+e3sgJ0BwcnkucmVzdGl0dXRpb24uZGF0YVNvdXJjZScgfCBpMThuIH19PC9oND5cbiAgICAgIDxwcnktZGF0YXNvdXJjZS1zZWxlY3RvclxuICAgICAgICAoY2FuY2VsKT1cInByZXYoc3RlcHBlcilcIlxuICAgICAgICAodmFsaWRhdGVkKT1cInN1Ym1pdChzdGVwcGVyKVwiXG4gICAgICAgIChkYXRhc291cmNlc0NoYW5nZWQpPVwiZGF0YXNvdXJjZXNDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICBbZGF0YXNvdXJjZUlkc109XCJmb3JtLnNlbGVjdGVkRGF0YVNvdXJjZXNcIlxuICAgICAgPjwvcHJ5LWRhdGFzb3VyY2Utc2VsZWN0b3I+XG4gICAgPC9wcnktc3RlcD5cbiAgICA8cHJ5LXN0ZXA+XG4gICAgICA8aDQgY2xhc3M9XCJtLXN0ZXBwZXItaXRlbV9fdGl0bGVcIiAqc3RlcFRpdGxlPnt7ICdAcHJ5LnJlc3RpdHV0aW9uLnZpc3VhbGl6ZScgfCBpMThuIH19PC9oND5cbiAgICAgIDxkaXYgY2xhc3M9XCJ3aWRnZXQtaW5zdGFuY2lhdG9yXCI+XG4gICAgICAgIDxwcnktd2lkZ2V0LWluc3RhbmNpYXRvclxuICAgICAgICAgIFtzdGFuZGFsb25lXT1cInRydWVcIlxuICAgICAgICAgIFtzdGF0aWNNYW5pZmVzdF09XCJjdXN0b21NYW5pZmVzdFwiXG4gICAgICAgICAgW29wZW4kXT1cIm9wZW5TZXR0aW5ncyRcIlxuICAgICAgICAgIChtYW5pZmVzdE1vZGlmaWVkKT1cInVwZGF0ZU1hbmlmZXN0KCRldmVudClcIlxuICAgICAgICA+PC9wcnktd2lkZ2V0LWluc3RhbmNpYXRvcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cIm0tYnRuLWdyb3VwIC1zcGFjZS1ldmVubHkgYWN0aW9uc1wiICpuZ0lmPVwiIWNvbnN1bHRNb2RlOyBlbHNlIGNvbnN1bHRcIj5cbiAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwicHJldihzdGVwcGVyKVwiIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImEtYnRuIGEtYnRuLS1zZWNvbmRhcnlcIj5cbiAgICAgICAgICB7eyAnQHByeS5yZXN0aXR1dGlvbi5jbG9zZScgfCBpMThuIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIChjbGljayk9XCJnb05leHQoc3RlcHBlcilcIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tcHJpbWFyeVwiPlxuICAgICAgICAgIHt7ICdAcHJ5LnJlc3RpdHV0aW9uLnZhbGlkYXRlJyB8IGkxOG4gfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L3ByeS1zdGVwPlxuICAgIDxwcnktc3RlcD5cbiAgICAgIDxoNCBjbGFzcz1cIm0tc3RlcHBlci1pdGVtX190aXRsZVwiICpzdGVwVGl0bGU+e3sgJ0BwcnkucmVzdGl0dXRpb24uc2hhcmUnIHwgaTE4biB9fTwvaDQ+XG4gICAgICA8ZGl2IGNsYXNzPVwiXCI+XG4gICAgICAgIDxoMz57eyAnQHByeS5yZXN0aXR1dGlvbi5hY2Nlc3MnIHwgaTE4biB9fTwvaDM+XG4gICAgICAgIHt7ICdAcHJ5LnJlc3RpdHV0aW9uLmNob2ljZScgfCBpMThuIH19XG4gICAgICAgIDx1bD5cbiAgICAgICAgICA8bGk+XG4gICAgICAgICAgICB7eyAnQHByeS5yZXN0aXR1dGlvbi5wdWJsaWMnIHwgaTE4biB9fVxuICAgICAgICAgIDwvbGk+XG4gICAgICAgIDwvdWw+XG4gICAgICAgIHt7ICdAcHJ5LnJlc3RpdHV0aW9uLm9yJyB8IGkxOG4gfX1cbiAgICAgICAgPHVsPlxuICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgIHt7ICdAcHJ5LnJlc3RpdHV0aW9uLnByaXZhdGUnIHwgaTE4biB9fVxuICAgICAgICAgIDwvbGk+XG4gICAgICAgIDwvdWw+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxwcnktc2hhcmVcbiAgICAgICAgWyhuZ01vZGVsKV09XCJ2aXNpYmlsaXR5XCJcbiAgICAgICAgW3VzZXJzJF09XCJ1c2VycyRcIlxuICAgICAgICBsYWJlbFByb3BlcnR5PVwibmFtZVwiXG4gICAgICAgIHZhbHVlUHJvcGVydHk9XCJpZFwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJjb25zdWx0TW9kZVwiXG4gICAgICA+PC9wcnktc2hhcmU+XG4gICAgICA8ZGl2IGNsYXNzPVwibS1idG4tZ3JvdXAgLXNwYWNlLWV2ZW5seSBhY3Rpb25zXCIgKm5nSWY9XCIhY29uc3VsdE1vZGU7IGVsc2UgY29uc3VsdFwiPlxuICAgICAgICA8YnV0dG9uIChjbGljayk9XCJwcmV2KHN0ZXBwZXIpXCIgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYS1idG4gYS1idG4tLXNlY29uZGFyeVwiPlxuICAgICAgICAgIHt7ICdAcHJ5LnJlc3RpdHV0aW9uLmNsb3NlJyB8IGkxOG4gfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b24gKGNsaWNrKT1cImdvTmV4dChzdGVwcGVyKVwiIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImEtYnRuIGEtYnRuLS1wcmltYXJ5XCI+XG4gICAgICAgICAge3sgJ0BwcnkucmVzdGl0dXRpb24uc2hhcmUnIHwgaTE4biB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvcHJ5LXN0ZXA+XG4gIDwvcHJ5LXN0ZXBwZXI+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNjb25zdWx0PlxuICA8ZGl2IGNsYXNzPVwibS1idG4tZ3JvdXAgLXNwYWNlLWV2ZW5seSBhY3Rpb25zXCI+XG4gICAgPGJ1dHRvbiAoY2xpY2spPVwicHJldihzdGVwcGVyKVwiIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImEtYnRuIGEtYnRuLS1zZWNvbmRhcnlcIj5cbiAgICAgIHt7ICdAcHJ5LnJlc3RpdHV0aW9uLmNsb3NlJyB8IGkxOG4gfX1cbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uIChjbGljayk9XCJnb05leHQoc3RlcHBlcilcIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tcHJpbWFyeVwiPlxuICAgICAge3sgJ0BwcnkucmVzdGl0dXRpb24ubmV4dCcgfCBpMThuIH19XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjbm9EYXRhc291cmNlPlxuICA8cCBjbGFzcz1cInNlYXJjaC1ob21lX19jb250YWluZXItc2VhcmNoXCI+e3sgJ0BwcnkucmVzdGl0dXRpb24ubm9EYXRhU291cmNlJyB8IGkxOG4gfX08L3A+XG48L25nLXRlbXBsYXRlPlxuIl19
213
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdGl0dXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvcmVzdGl0dXRpb24vY29tcG9uZW50cy9yZXN0aXR1dGlvbi9yZXN0aXR1dGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9yZXN0aXR1dGlvbi9jb21wb25lbnRzL3Jlc3RpdHV0aW9uL3Jlc3RpdHV0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0UsT0FBTyxFQUdMLFlBQVksRUFDWixjQUFjLEVBQ2QsYUFBYSxFQUNiLGdCQUFnQixFQUVoQixpQkFBaUIsRUFDakIsbUJBQW1CLEVBQ25CLDRCQUE0QixFQUM1QixZQUFZLEVBQ1osaUJBQWlCLEVBQ2pCLFlBQVksRUFFWixpQkFBaUIsRUFDakIsYUFBYSxFQUNiLHdCQUF3QixFQUd4QixRQUFRLEVBR1QsTUFBTSxvQkFBb0IsQ0FBQztBQUU1QixPQUFPLEVBQUUsR0FBRyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7QUFPMUIsTUFBTSxPQUFPLHVCQUF3QixTQUFRLHdCQUF3QjtJQWtDbkUsWUFDVSxzQkFBOEMsRUFDOUMsS0FBWSxFQUNaLGtCQUFzQztRQUU5QyxLQUFLLEVBQUUsQ0FBQztRQUpBLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUFDOUMsVUFBSyxHQUFMLEtBQUssQ0FBTztRQUNaLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFsQ2hELG1CQUFjLEdBQW1CO1lBQy9CLElBQUks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QUFXO29CQUNsQyxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRTtvQkFDNUIsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO29CQUMzQixVQUFVLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsSUFBSSxFQUFFO29CQUMvQyxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksS0FBSztvQkFDL0IsZ0JBQWdCLEVBQUUsRUFBRTtpQkFDckI7YUFDRixDQUFDLENBQ0gsQ0FBQztTQUNIO1FBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2pDLENBQUM7K0dBeE5VLHVCQUF1QjttR0FBdkIsdUJBQXVCLDJRQ25DcEMsMG5NQXdKQTs7NEZEckhhLHVCQUF1QjtrQkFKbkMsU0FBUzsrQkFDRSxpQkFBaUI7a0tBMEJsQixtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNJLGtCQUFrQjtzQkFBM0IsTUFBTTtnQkFHRSxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQge1xuICBDYXRhbG9nRW50cnksXG4gIENsYXNzLFxuICBDbGFzc0FjdGlvbnMsXG4gIENsYXNzU2VsZWN0b3JzLFxuICBDb25maWdBY3Rpb25zLFxuICBEYXNoYm9hcmRBY3Rpb25zLFxuICBEYXRhU291cmNlLFxuICBEYXRhU291cmNlQWN0aW9ucyxcbiAgRGF0YVNvdXJjZVNlbGVjdG9ycyxcbiAgREVGQVVMVF9SRVNUSVRVVElPTl9JQ09OX1VSTCxcbiAgRmllbGRBY3Rpb25zLFxuICBnZXREaXNwbGF5T3B0aW9ucyxcbiAgTGlicmFyeVR5cGVzLFxuICBQcnlWaXNpYmlsaXR5LFxuICBQcnlWaXNpYmlsaXR5VHlwZSxcbiAgU2VhcmNoQWN0aW9ucyxcbiAgU3Vic2NyaXB0aW9ubmVyRGlyZWN0aXZlLFxuICBUb29sYm94TWFuaWZlc3RTZXJ2aWNlLFxuICBUb29sYm94TWVudVNlcnZpY2UsXG4gIFZpZXdNb2RlLFxuICBXaWRnZXQsXG4gIFdpZGdldE1hbmlmZXN0XG59IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZCc7XG5pbXBvcnQgeyBQcnlTdGVwcGVyQ29tcG9uZW50IH0gZnJvbSAnQHByb3ZvbHkvZGFzaGJvYXJkL2NvbXBvbmVudHMvc3RlcHBlcic7XG5pbXBvcnQgeyBtYXAsIE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHY0IH0gZnJvbSAndXVpZCc7XG5pbXBvcnQgeyBSZXN0aXR1dGlvbkZvcm0gfSBmcm9tICcuLi8uLi9tb2RlbC9yZXN0aXR1dGlvbi5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ByeS1yZXN0aXR1dGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9yZXN0aXR1dGlvbi5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgUHJ5UmVzdGl0dXRpb25Db21wb25lbnQgZXh0ZW5kcyBTdWJzY3JpcHRpb25uZXJEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xuICB0eXBlcyQ6IE9ic2VydmFibGU8eyBpY29uOiBzdHJpbmc7IGxhYmVsOiBzdHJpbmc7IHR5cGU6IHN0cmluZzsgbWFuaWZlc3Q6IFdpZGdldE1hbmlmZXN0IH1bXT47XG4gIGNsYXNzZXMkOiBPYnNlcnZhYmxlPENsYXNzW10+O1xuICBjdXN0b21NYW5pZmVzdDogV2lkZ2V0TWFuaWZlc3QgPSB7XG4gICAgdHlwZTogJ2RldGFpbCcsXG4gICAgbGF5b3V0OiB7IHg6IDEsIHk6IDEsIHdpZHRoOiAxLCBoZWlnaHQ6IDEgfSxcbiAgICBvcHRpb25zOiB7IGl0ZW1JZHM6IFtdIGFzIHN0cmluZ1tdIH1cbiAgfTtcbiAgZm9ybTogUmVzdGl0dXRpb25Gb3JtID0ge1xuICAgIHNlbGVjdGVkV2lkZ2V0OiAnJyxcbiAgICBzZWxlY3RlZERhdGFTb3VyY2VzOiBbXSxcbiAgICB0aXRsZTogJycsXG4gICAgaW1hZ2U6IERFRkFVTFRfUkVTVElUVVRJT05fSUNPTl9VUkwsXG4gICAgZGVzY3JpcHRpb246ICcnLFxuICAgIGNvdmVyOiBmYWxzZVxuICB9O1xuICB2aXNpYmlsaXR5OiBQcnlWaXNpYmlsaXR5ID0ge1xuICAgIHR5cGU6IFByeVZpc2liaWxpdHlUeXBlLlBSSVZBVEUsXG4gICAgdXNlcnM6IFtdXG4gIH07XG4gIG9wZW5TZXR0aW5ncyQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICB1c2VycyQ6IE9ic2VydmFibGU8YW55W10+IHwgbnVsbCA9IG51bGw7XG4gIGNvbnN1bHRNb2RlOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNlbGVjdGVkUmVzdGl0dXRpb246IFdpZGdldCB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBlZGl0OiBib29sZWFuID0gdHJ1ZTtcbiAgQE91dHB1dCgpIHJlc3RpdHV0aW9uQ3JlYXRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgd2lkZ2V0c0xpc3QkOiBPYnNlcnZhYmxlPENhdGFsb2dFbnRyeVtdPjtcbiAgdHlwZTogTGlicmFyeVR5cGVzID0gTGlicmFyeVR5cGVzLklMTFVTVFJBVElPTjtcbiAgQElucHV0KCkgaXNEYXRhU291cmNlU2VsZWN0ZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgYmluZElkOiBhbnk7XG4gIGltYWdlOiBzdHJpbmcgPSBERUZBVUxUX1JFU1RJVFVUSU9OX0lDT05fVVJMO1xuICB3aWRnZXRUeXBlczogeyBpY29uOiBzdHJpbmc7IGxhYmVsOiBzdHJpbmc7IHR5cGU6IHN0cmluZzsgbWFuaWZlc3Q6IFdpZGdldE1hbmlmZXN0IH1bXSA9IFtdO1xuICB1c2VkRGF0YXNvdXJjZXMkOiBPYnNlcnZhYmxlPERhdGFTb3VyY2VbXT47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSB0b29sYm94TWFuaWZlc3RTZXJ2aWNlOiBUb29sYm94TWFuaWZlc3RTZXJ2aWNlLFxuICAgIHByaXZhdGUgc3RvcmU6IFN0b3JlLFxuICAgIHByaXZhdGUgdG9vbGJveE1lbnVTZXJ2aWNlOiBUb29sYm94TWVudVNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKERhdGFTb3VyY2VBY3Rpb25zLmxvYWQoKSk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChDbGFzc0FjdGlvbnMubG9hZCgpKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENvbmZpZ0FjdGlvbnMubG9hZEN1c3RvbWl6YXRpb24oKSk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChGaWVsZEFjdGlvbnMubG9hZCgpKTtcblxuICAgIHRoaXMudHlwZXMkID0gdGhpcy50b29sYm94TWVudVNlcnZpY2UudHlwZXMkLnBpcGUoXG4gICAgICBtYXAoKHR5cGUpID0+IHR5cGUuZmlsdGVyKChmaWx0ZXJlZFR5cGUpID0+IGZpbHRlcmVkVHlwZS50eXBlICE9PSAnZGV0YWlsJykpXG4gICAgKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKHRoaXMudHlwZXMkLnN1YnNjcmliZSgodHlwZXMpID0+ICh0aGlzLndpZGdldFR5cGVzID0gdHlwZXMpKSk7XG4gICAgdGhpcy5jbGFzc2VzJCA9IHRoaXMuc3RvcmUuc2VsZWN0KENsYXNzU2VsZWN0b3JzLmNsYXNzZXMpO1xuICAgIHRoaXMud2lkZ2V0c0xpc3QkID0gdGhpcy50b29sYm94TWVudVNlcnZpY2UubWVudVN0cnVjdHVyZSQucGlwZShcbiAgICAgIG1hcCgobWVudSkgPT5cbiAgICAgICAgbWVudVxuICAgICAgICAgIC5tYXAoKGl0ZW1zKSA9PiBbLi4uaXRlbXMuc3ViLmZpbHRlcigocykgPT4gdGhpcy50b29sYm94TWFuaWZlc3RTZXJ2aWNlLmlzTW9kZWwocy50eXBlKSldKVxuICAgICAgICAgIC5yZWR1Y2UoKGFjYywgaXRlbXMpID0+IFsuLi5hY2MsIC4uLml0ZW1zXSwgW10pXG4gICAgICApXG4gICAgKTtcbiAgICB0aGlzLnVzZWREYXRhc291cmNlcyQgPSB0aGlzLnN0b3JlXG4gICAgICAuc2VsZWN0KERhdGFTb3VyY2VTZWxlY3RvcnMuZ2V0RGF0YVNvdXJjZXNTb3J0ZWQpXG4gICAgICAucGlwZShtYXAoKGFsbERzcykgPT4gYWxsRHNzLmZpbHRlcigoZGF0YXNvdXJjZSkgPT4gdGhpcy5mb3JtLnNlbGVjdGVkRGF0YVNvdXJjZXMuaW5jbHVkZXMoZGF0YXNvdXJjZS5pZCkpKSk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zZWxlY3RlZFJlc3RpdHV0aW9uKSB7XG4gICAgICBpZiAoIXRoaXMuZWRpdCkge1xuICAgICAgICB0aGlzLmNvbnN1bHRNb2RlID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChEYXNoYm9hcmRBY3Rpb25zLnVwZGF0ZURpc3BsYXlPcHRpb25zKHsgbW9kZTogVmlld01vZGUuQ09OU1VMVCB9KSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgICAgIERhc2hib2FyZEFjdGlvbnMudXBkYXRlRGlzcGxheU9wdGlvbnMoe1xuICAgICAgICAgICAgbW9kZTogVmlld01vZGUuQ1VTVE9NLFxuICAgICAgICAgICAgY3VzdG9tRGlzcGxheToge1xuICAgICAgICAgICAgICAuLi5nZXREaXNwbGF5T3B0aW9ucyhWaWV3TW9kZS5FRElUSU9OKSxcbiAgICAgICAgICAgICAgd2lkZ2V0Q29udGV4dE1lbnU6IHtcbiAgICAgICAgICAgICAgICBkYXRhc291cmNlU2VsZWN0aW9uOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzOiB0cnVlLFxuICAgICAgICAgICAgICAgIHdpbmRvdzogZmFsc2UsXG4gICAgICAgICAgICAgICAgbWF4aW1pemU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGFkZFRvQ2F0YWxvZzogZmFsc2UsXG4gICAgICAgICAgICAgICAgZGVsZXRlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBjaGFuZ2VTcG90OiBmYWxzZVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuY3VzdG9tTWFuaWZlc3QgPSBKU09OLnBhcnNlKHRoaXMuc2VsZWN0ZWRSZXN0aXR1dGlvbi5jb250ZW50KTtcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMuY3VzdG9tTWFuaWZlc3QuZGF0YXNvdXJjZSkpIHtcbiAgICAgICAgdGhpcy5jdXN0b21NYW5pZmVzdC5kYXRhc291cmNlLmZvckVhY2goKGRhdGFTb3VyY2U6IHN0cmluZykgPT4ge1xuICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICAgICAgICBTZWFyY2hBY3Rpb25zLmdldERhdGFzb3VyY2VJdGVtcyh7XG4gICAgICAgICAgICAgIGlkOiBkYXRhU291cmNlLFxuICAgICAgICAgICAgICBleGNsdWRlR2VvOiB0aGlzLmN1c3RvbU1hbmlmZXN0LnR5cGUgPT09ICdtYXAnLFxuICAgICAgICAgICAgICBmcm9tOiAnUHJ5UmVzdGl0dXRpb25Db21wb25lbnQubmdPbkluaXQoKS0xJ1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICAgICAgU2VhcmNoQWN0aW9ucy5nZXREYXRhc291cmNlSXRlbXMoe1xuICAgICAgICAgICAgaWQ6IHRoaXMuY3VzdG9tTWFuaWZlc3QuZGF0YXNvdXJjZSBhcyBzdHJpbmcsXG4gICAgICAgICAgICBleGNsdWRlR2VvOiB0aGlzLmN1c3RvbU1hbmlmZXN0LnR5cGUgPT09ICdtYXAnLFxuICAgICAgICAgICAgZnJvbTogJ1ByeVJlc3RpdHV0aW9uQ29tcG9uZW50Lm5nT25Jbml0KCktMidcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRSZXN0aXR1dGlvbi52aXNpYmlsaXR5KSB7XG4gICAgICAgIHRoaXMudmlzaWJpbGl0eSA9IHRoaXMuc2VsZWN0ZWRSZXN0aXR1dGlvbi52aXNpYmlsaXR5O1xuICAgICAgfVxuICAgICAgdGhpcy5mb3JtLnNlbGVjdGVkRGF0YVNvdXJjZXMuZm9yRWFjaCgoZGF0YVNvdXJjZTogc3RyaW5nKSA9PiB7XG4gICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICAgICAgU2VhcmNoQWN0aW9ucy5nZXREYXRhc291cmNlSXRlbXMoe1xuICAgICAgICAgICAgaWQ6IGRhdGFTb3VyY2UsXG4gICAgICAgICAgICBleGNsdWRlR2VvOiB0aGlzLmN1c3RvbU1hbmlmZXN0LnR5cGUgPT09ICdtYXAnLFxuICAgICAgICAgICAgZnJvbTogJ1ByeVJlc3RpdHV0aW9uQ29tcG9uZW50Lm5nT25Jbml0KCktMydcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgICB0aGlzLmN1c3RvbU1hbmlmZXN0ID0gSlNPTi5wYXJzZSh0aGlzLnNlbGVjdGVkUmVzdGl0dXRpb24uY29udGVudCk7XG4gICAgICB0aGlzLmZvcm0gPSB7XG4gICAgICAgIHNlbGVjdGVkV2lkZ2V0OiB0aGlzLmN1c3RvbU1hbmlmZXN0LnR5cGUsXG4gICAgICAgIHNlbGVjdGVkRGF0YVNvdXJjZXM6ICh0aGlzLmN1c3RvbU1hbmlmZXN0LmRhdGFzb3VyY2UgPz8gW10pIGFzIHN0cmluZ1tdLFxuICAgICAgICB0aXRsZTogdGhpcy5zZWxlY3RlZFJlc3RpdHV0aW9uLm5hbWUsXG4gICAgICAgIGNvdmVyOiB0aGlzLnNlbGVjdGVkUmVzdGl0dXRpb24uY292ZXIsXG4gICAgICAgIC4uLnRoaXMuc2VsZWN0ZWRSZXN0aXR1dGlvblxuICAgICAgfTtcbiAgICB9XG4gICAgdGhpcy5pbWFnZSA9IHRoaXMuc2VsZWN0ZWRSZXN0aXR1dGlvbj8uaW1hZ2UgPz8gREVGQVVMVF9SRVNUSVRVVElPTl9JQ09OX1VSTDtcbiAgfVxuXG4gIGNhbmNlbChzdGVwcGVyOiBQcnlTdGVwcGVyQ29tcG9uZW50KSB7XG4gICAgdGhpcy5mb3JtLnNlbGVjdGVkV2lkZ2V0ID0gJyc7XG4gICAgdGhpcy5mb3JtLnNlbGVjdGVkRGF0YVNvdXJjZXMgPSBbXTtcbiAgICB0aGlzLmZvcm0udGl0bGUgPSAnJztcbiAgICB0aGlzLmZvcm0uZGVzY3JpcHRpb24gPSAnJztcbiAgICB0aGlzLmZvcm0uaW1hZ2UgPSAnJztcbiAgICB0aGlzLmZvcm0uY292ZXIgPSBmYWxzZTtcbiAgICBpZiAodGhpcy5jb25zdWx0TW9kZSB8fCB0aGlzLnNlbGVjdGVkUmVzdGl0dXRpb24pIHtcbiAgICAgIHRoaXMucmVzdGl0dXRpb25DcmVhdGVkLmVtaXQoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5wcmV2KHN0ZXBwZXIpO1xuICB9XG5cbiAgZGF0YXNvdXJjZXNDaGFuZ2VkKCRldmVudDogRGF0YVNvdXJjZVtdKSB7XG4gICAgdGhpcy5mb3JtLnNlbGVjdGVkRGF0YVNvdXJjZXMgPSAoJGV2ZW50ID8/IFtdKS5tYXAoKGRzKSA9PiBkcy5pZCk7XG4gIH1cblxuICBzdWJtaXQoc3RlcHBlcjogUHJ5U3RlcHBlckNvbXBvbmVudCkge1xuICAgIGlmICh0aGlzLmNvbnN1bHRNb2RlKSB7XG4gICAgICB0aGlzLmdvTmV4dChzdGVwcGVyKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB3aWRnZXRUeXBlID0gdGhpcy53aWRnZXRUeXBlcy5maW5kKCh3aWRnZXRUeXBlKSA9PiB3aWRnZXRUeXBlLnR5cGUgPT09IHRoaXMuZm9ybS5zZWxlY3RlZFdpZGdldCk7XG5cbiAgICB0aGlzLmN1c3RvbU1hbmlmZXN0ID0ge1xuICAgICAgLi4udGhpcy5jdXN0b21NYW5pZmVzdCxcbiAgICAgIHR5cGU6IHRoaXMuZm9ybS5zZWxlY3RlZFdpZGdldCxcbiAgICAgIHRpdGxlOiB0aGlzLmZvcm0udGl0bGUsXG4gICAgICBkYXRhc291cmNlOiB0aGlzLmZvcm0uc2VsZWN0ZWREYXRhU291cmNlcyA/PyBbXSxcbiAgICAgIGNvdmVyOiB0aGlzLmZvcm0uY292ZXIgPz8gZmFsc2UsXG4gICAgICBoZWFkZXI6IHRydWUsXG4gICAgICBvcHRpb25zOiB7XG4gICAgICAgIC4uLndpZGdldFR5cGU/Lm1hbmlmZXN0Lm9wdGlvbnMsXG4gICAgICAgIHRpdGxlOiB0aGlzLmZvcm0udGl0bGVcbiAgICAgIH1cbiAgICB9O1xuICAgIHRoaXMuZm9ybS5zZWxlY3RlZERhdGFTb3VyY2VzLmZvckVhY2goKG5hbWVRdWVyeTogc3RyaW5nKSA9PiB7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgICBTZWFyY2hBY3Rpb25zLmdldERhdGFzb3VyY2VJdGVtcyh7XG4gICAgICAgICAgaWQ6IG5hbWVRdWVyeSxcbiAgICAgICAgICBleGNsdWRlR2VvOiB0aGlzLmN1c3RvbU1hbmlmZXN0LnR5cGUgPT09ICdtYXAnLFxuICAgICAgICAgIGZyb206ICdQcnlSZXN0aXR1dGlvbkNvbXBvbmVudC5zdWJtaXQoKSdcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfSk7XG4gICAgdGhpcy5nb05leHQoc3RlcHBlcik7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLm9wZW5TZXR0aW5ncyQubmV4dCgpO1xuICAgIH0sIDE1MCk7XG4gIH1cblxuICBnb05leHQoc3RlcHBlcjogUHJ5U3RlcHBlckNvbXBvbmVudCkge1xuICAgIHN0ZXBwZXIubmV4dCgpO1xuICB9XG5cbiAgcHJldihzdGVwcGVyOiBQcnlTdGVwcGVyQ29tcG9uZW50KSB7XG4gICAgc3RlcHBlci5wcmV2KCk7XG4gIH1cblxuICB1cGRhdGVNYW5pZmVzdCgkZXZlbnQ6IHsgd2lkZ2V0SW5kZXg6IG51bWJlcjsgbWFuaWZlc3Q6IFdpZGdldE1hbmlmZXN0IH0pIHtcbiAgICB0aGlzLmN1c3RvbU1hbmlmZXN0ID0gJGV2ZW50Lm1hbmlmZXN0O1xuICB9XG5cbiAgbGFzdFN0ZXBDb21wbGV0ZWQoKSB7XG4gICAgdGhpcy5mb3JtLmltYWdlID0gdGhpcy5pbWFnZTtcbiAgICBpZiAodGhpcy5lZGl0KSB7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgICBDb25maWdBY3Rpb25zLnNhdmVXaWRnZXQoe1xuICAgICAgICAgIHdpZGdldDoge1xuICAgICAgICAgICAgaWQ6IHRoaXMuc2VsZWN0ZWRSZXN0aXR1dGlvbj8uaWQgPz8gdjQoKSxcbiAgICAgICAgICAgIGNvbnRlbnQ6IEpTT04uc3RyaW5naWZ5KHRoaXMuY3VzdG9tTWFuaWZlc3QpLFxuICAgICAgICAgICAgbmFtZTogdGhpcy5mb3JtLnRpdGxlLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IHRoaXMuZm9ybS5kZXNjcmlwdGlvbixcbiAgICAgICAgICAgIGltYWdlOiB0aGlzLmZvcm0uaW1hZ2UgPz8gJycsXG4gICAgICAgICAgICB2aXNpYmlsaXR5OiB0aGlzLnZpc2liaWxpdHksXG4gICAgICAgICAgICBkYXRhc291cmNlOiB0aGlzLmZvcm0uc2VsZWN0ZWREYXRhU291cmNlcyA/PyBbXSxcbiAgICAgICAgICAgIGNvdmVyOiB0aGlzLmZvcm0uY292ZXIgPz8gZmFsc2UsXG4gICAgICAgICAgICBtb2RpZmljYXRpb25EYXRlOiAnJ1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfVxuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQ29uZmlnQWN0aW9ucy5sb2FkV2lkZ2V0cygpKTtcbiAgICB0aGlzLnJlc3RpdHV0aW9uQ3JlYXRlZC5lbWl0KCk7XG4gIH1cbn1cbiIsIjxwcnktcmVzdGl0dXRpb24tY3NzPjwvcHJ5LXJlc3RpdHV0aW9uLWNzcz5cbjxkaXYgY2xhc3M9XCJvLXJlc3RpdHV0aW9uXCI+XG4gIDxoMyBjbGFzcz1cImEtaDIgby1yZXN0aXR1dGlvbl9fdGl0bGVcIj5cbiAgICB7eyAoY29uc3VsdE1vZGUgPyAnQHByeS5yZXN0aXR1dGlvbi5jb25zdWx0JyA6IGVkaXQgPyAnQHByeS5yZXN0aXR1dGlvbi5lZGl0JyA6ICdAcHJ5LnJlc3RpdHV0aW9uLmNyZWF0ZScpIHwgaTE4biB9fVxuICA8L2gzPlxuICA8cHJ5LXN0ZXBwZXIgI3N0ZXBwZXIgW2lzQ29uc3VsdE1vZGVdPVwiY29uc3VsdE1vZGUgfHwgZWRpdFwiIChsYXN0U3RlcENvbXBsZXRlZCk9XCJsYXN0U3RlcENvbXBsZXRlZCgpXCI+XG4gICAgPHByeS1zdGVwPlxuICAgICAgPGg0IGNsYXNzPVwibS1zdGVwcGVyLWl0ZW1fX3RpdGxlXCIgKnN0ZXBUaXRsZT57eyAnQHByeS5yZXN0aXR1dGlvbi5jb25maWd1cmUnIHwgaTE4biB9fTwvaDQ+XG4gICAgICA8ZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkXCI+XG4gICAgICAgICAgPGxhYmVsIGZvcj1cInJlc3RpdHV0aW9uXCIgY2xhc3M9XCJhLWxhYmVsXCI+e3sgJ0BwcnkucmVzdGl0dXRpb24ucmVzdGl0dXRpb25fdHlwZScgfCBpMThuIH19PC9sYWJlbD5cbiAgICAgICAgICA8cHJ5LXNlbGVjdFxuICAgICAgICAgICAgaWQ9XCJyZXN0aXR1dGlvblwiXG4gICAgICAgICAgICBbaXRlbXNdPVwidHlwZXMkIHwgYXN5bmNcIlxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmb3JtLnNlbGVjdGVkV2lkZ2V0XCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJjb25zdWx0TW9kZVwiXG4gICAgICAgICAgICBiaW5kSWNvbj1cImljb25cIlxuICAgICAgICAgICAgYmluZExhYmVsPVwibGFiZWxcIlxuICAgICAgICAgICAgYmluZFZhbHVlPVwidHlwZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgIDwvcHJ5LXNlbGVjdD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJmb3JtLnNlbGVjdGVkV2lkZ2V0ICE9PSAnJ1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtLWZvcm0tbGFiZWwtZmllbGRcIj5cbiAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJncmFwaFRpdGxlXCIgY2xhc3M9XCJhLWxhYmVsXCI+e3sgJ0BwcnkucmVzdGl0dXRpb24uZ3JhcGhfdGl0bGUnIHwgaTE4biB9fTwvbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgbmFtZT1cInRpdGxlXCJcbiAgICAgICAgICAgICAgaWQ9XCJncmFwaFRpdGxlXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJhLWZvcm0tZmllbGRcIlxuICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZvcm0udGl0bGVcIlxuICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJjb25zdWx0TW9kZVwiXG4gICAgICAgICAgICAgIG1heGxlbmd0aD1cIjMwXCJcbiAgICAgICAgICAgICAgbmdEZWZhdWx0Q29udHJvbFxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkXCI+XG4gICAgICAgICAgICA8bGFiZWwgZm9yPVwiZGVzY3JpcHRpb25cIiBjbGFzcz1cImEtbGFiZWxcIj57eyAnQHByeS5yZXN0aXR1dGlvbi5kZXNjcmlwdGlvbicgfCBpMThuIH19PC9sYWJlbD5cbiAgICAgICAgICAgIDx0ZXh0YXJlYVxuICAgICAgICAgICAgICBuYW1lPVwiZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICBpZD1cImRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJhLWZvcm0tZmllbGRcIlxuICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZvcm0uZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICBzdHlsZT1cInJlc2l6ZTogbm9uZVwiXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJjb25zdWx0TW9kZVwiXG4gICAgICAgICAgICAgIG1heGxlbmd0aD1cIjI1NVwiXG4gICAgICAgICAgICAgIG5nRGVmYXVsdENvbnRyb2xcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvdGV4dGFyZWE+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZCAtd2lkdGgtZnVsbFwiPlxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiYS1sYWJlbFwiPnt7ICdAcHJ5LnByZXNlbnRhdGlvbi5mb3JtLmltYWdlJyB8IGkxOG4gfX08L2xhYmVsPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm8tZmlsZS1pbnB1dFwiPlxuICAgICAgICAgICAgICA8cHJ5LXNlbGVjdC1pbWFnZSAoY2hhbmdlZCk9XCJpbWFnZSA9ICRldmVudFwiIFtpY29uVXJsXT1cImltYWdlXCIgW21vZGVdPVwidHlwZVwiPjwvcHJ5LXNlbGVjdC1pbWFnZT5cbiAgICAgICAgICAgICAgPHByeS1jaGVja2JveCBbKG5nTW9kZWwpXT1cImZvcm0uY292ZXJcIiBuYW1lPVwiY292ZXJcIj4ge3sgJ0BwcnkucmVzdGl0dXRpb24uY292ZXInIHwgaTE4biB9fTwvcHJ5LWNoZWNrYm94PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm0tYnRuLWdyb3VwIC1zcGFjZS1ldmVubHkgYWN0aW9uc1wiPlxuICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiY2FuY2VsKHN0ZXBwZXIpXCIgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYS1idG4gYS1idG4tLXNlY29uZGFyeVwiPlxuICAgICAgICAgICAgICB7eyAnQHByeS5yZXN0aXR1dGlvbi5jbG9zZScgfCBpMThuIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgKGNsaWNrKT1cImdvTmV4dChzdGVwcGVyKVwiXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJmb3JtLnNlbGVjdGVkV2lkZ2V0ID09PSAnJyB8fCBmb3JtLnRpdGxlLnRyaW0oKS5sZW5ndGggPT09IDBcIlxuICAgICAgICAgICAgICBjbGFzcz1cImEtYnRuIGEtYnRuLS1wcmltYXJ5XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3sgJ0BwcnkucmVzdGl0dXRpb24udmFsaWRhdGUnIHwgaTE4biB9fVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9wcnktc3RlcD5cbiAgICA8cHJ5LXN0ZXA+XG4gICAgICA8aDQgY2xhc3M9XCJtLXN0ZXBwZXItaXRlbV9fdGl0bGVcIiAqc3RlcFRpdGxlPnt7ICdAcHJ5LnJlc3RpdHV0aW9uLmRhdGFTb3VyY2UnIHwgaTE4biB9fTwvaDQ+XG4gICAgICA8cHJ5LWRhdGFzb3VyY2Utc2VsZWN0b3JcbiAgICAgICAgYmluZExhYmVsPVwibmFtZVwiXG4gICAgICAgIGJpbmRWYWx1ZT1cImlkXCJcbiAgICAgICAgdHJhbnNsYXRpb25TdHJpbmdCYXNlPVwiQHByeS5jb21wb25lbnRzLmNoaXBzU2VsZWN0b3IuZGF0YXNvdXJjZS5cIlxuICAgICAgICAoY2FuY2VsKT1cInByZXYoc3RlcHBlcilcIlxuICAgICAgICAodmFsaWRhdGVkKT1cInN1Ym1pdChzdGVwcGVyKVwiXG4gICAgICAgIChpdGVtc0NoYW5nZWQpPVwiZGF0YXNvdXJjZXNDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICBbdXNlZEl0ZW1zXT1cIih1c2VkRGF0YXNvdXJjZXMkIHwgYXN5bmMpID8/IFtdXCJcbiAgICAgID48L3ByeS1kYXRhc291cmNlLXNlbGVjdG9yPlxuICAgIDwvcHJ5LXN0ZXA+XG4gICAgPHByeS1zdGVwPlxuICAgICAgPGg0IGNsYXNzPVwibS1zdGVwcGVyLWl0ZW1fX3RpdGxlXCIgKnN0ZXBUaXRsZT57eyAnQHByeS5yZXN0aXR1dGlvbi52aXN1YWxpemUnIHwgaTE4biB9fTwvaDQ+XG4gICAgICA8ZGl2IGNsYXNzPVwid2lkZ2V0LWluc3RhbmNpYXRvclwiPlxuICAgICAgICA8cHJ5LXdpZGdldC1pbnN0YW5jaWF0b3JcbiAgICAgICAgICBbc3RhbmRhbG9uZV09XCJ0cnVlXCJcbiAgICAgICAgICBbc3RhdGljTWFuaWZlc3RdPVwiY3VzdG9tTWFuaWZlc3RcIlxuICAgICAgICAgIFtvcGVuJF09XCJvcGVuU2V0dGluZ3MkXCJcbiAgICAgICAgICAobWFuaWZlc3RNb2RpZmllZCk9XCJ1cGRhdGVNYW5pZmVzdCgkZXZlbnQpXCJcbiAgICAgICAgPjwvcHJ5LXdpZGdldC1pbnN0YW5jaWF0b3I+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtLWJ0bi1ncm91cCAtc3BhY2UtZXZlbmx5IGFjdGlvbnNcIiAqbmdJZj1cIiFjb25zdWx0TW9kZTsgZWxzZSBjb25zdWx0XCI+XG4gICAgICAgIDxidXR0b24gKGNsaWNrKT1cInByZXYoc3RlcHBlcilcIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tc2Vjb25kYXJ5XCI+XG4gICAgICAgICAge3sgJ0BwcnkucmVzdGl0dXRpb24uY2xvc2UnIHwgaTE4biB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiZ29OZXh0KHN0ZXBwZXIpXCIgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYS1idG4gYS1idG4tLXByaW1hcnlcIj5cbiAgICAgICAgICB7eyAnQHByeS5yZXN0aXR1dGlvbi52YWxpZGF0ZScgfCBpMThuIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9wcnktc3RlcD5cbiAgICA8cHJ5LXN0ZXA+XG4gICAgICA8aDQgY2xhc3M9XCJtLXN0ZXBwZXItaXRlbV9fdGl0bGVcIiAqc3RlcFRpdGxlPnt7ICdAcHJ5LnJlc3RpdHV0aW9uLnNoYXJlJyB8IGkxOG4gfX08L2g0PlxuICAgICAgPGRpdiBjbGFzcz1cIlwiPlxuICAgICAgICA8aDM+e3sgJ0BwcnkucmVzdGl0dXRpb24uYWNjZXNzJyB8IGkxOG4gfX08L2gzPlxuICAgICAgICB7eyAnQHByeS5yZXN0aXR1dGlvbi5jaG9pY2UnIHwgaTE4biB9fVxuICAgICAgICA8dWw+XG4gICAgICAgICAgPGxpPlxuICAgICAgICAgICAge3sgJ0BwcnkucmVzdGl0dXRpb24ucHVibGljJyB8IGkxOG4gfX1cbiAgICAgICAgICA8L2xpPlxuICAgICAgICA8L3VsPlxuICAgICAgICB7eyAnQHByeS5yZXN0aXR1dGlvbi5vcicgfCBpMThuIH19XG4gICAgICAgIDx1bD5cbiAgICAgICAgICA8bGk+XG4gICAgICAgICAgICB7eyAnQHByeS5yZXN0aXR1dGlvbi5wcml2YXRlJyB8IGkxOG4gfX1cbiAgICAgICAgICA8L2xpPlxuICAgICAgICA8L3VsPlxuICAgICAgPC9kaXY+XG4gICAgICA8cHJ5LXNoYXJlXG4gICAgICAgIFsobmdNb2RlbCldPVwidmlzaWJpbGl0eVwiXG4gICAgICAgIFt1c2VycyRdPVwidXNlcnMkXCJcbiAgICAgICAgbGFiZWxQcm9wZXJ0eT1cIm5hbWVcIlxuICAgICAgICB2YWx1ZVByb3BlcnR5PVwiaWRcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiY29uc3VsdE1vZGVcIlxuICAgICAgPjwvcHJ5LXNoYXJlPlxuICAgICAgPGRpdiBjbGFzcz1cIm0tYnRuLWdyb3VwIC1zcGFjZS1ldmVubHkgYWN0aW9uc1wiICpuZ0lmPVwiIWNvbnN1bHRNb2RlOyBlbHNlIGNvbnN1bHRcIj5cbiAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwicHJldihzdGVwcGVyKVwiIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImEtYnRuIGEtYnRuLS1zZWNvbmRhcnlcIj5cbiAgICAgICAgICB7eyAnQHByeS5yZXN0aXR1dGlvbi5jbG9zZScgfCBpMThuIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIChjbGljayk9XCJnb05leHQoc3RlcHBlcilcIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tcHJpbWFyeVwiPlxuICAgICAgICAgIHt7ICdAcHJ5LnJlc3RpdHV0aW9uLnNoYXJlJyB8IGkxOG4gfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L3ByeS1zdGVwPlxuICA8L3ByeS1zdGVwcGVyPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjY29uc3VsdD5cbiAgPGRpdiBjbGFzcz1cIm0tYnRuLWdyb3VwIC1zcGFjZS1ldmVubHkgYWN0aW9uc1wiPlxuICAgIDxidXR0b24gKGNsaWNrKT1cInByZXYoc3RlcHBlcilcIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tc2Vjb25kYXJ5XCI+XG4gICAgICB7eyAnQHByeS5yZXN0aXR1dGlvbi5jbG9zZScgfCBpMThuIH19XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvbiAoY2xpY2spPVwiZ29OZXh0KHN0ZXBwZXIpXCIgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYS1idG4gYS1idG4tLXByaW1hcnlcIj5cbiAgICAgIHt7ICdAcHJ5LnJlc3RpdHV0aW9uLm5leHQnIHwgaTE4biB9fVxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI25vRGF0YXNvdXJjZT5cbiAgPHAgY2xhc3M9XCJzZWFyY2gtaG9tZV9fY29udGFpbmVyLXNlYXJjaFwiPnt7ICdAcHJ5LnJlc3RpdHV0aW9uLm5vRGF0YVNvdXJjZScgfCBpMThuIH19PC9wPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -27,10 +27,6 @@ export const enTranslations = {
27
27
  consult: 'Consult',
28
28
  catalog: 'Restitutions catalog',
29
29
  add_icon: 'Add this restitution on the presentation',
30
- selection: 'Selected data source(s):',
31
- select: 'Select one or more data source(s) :',
32
- selectDataSource: 'Select this data source',
33
- unselectDataSource: 'Unselect this data source',
34
30
  dataSource: 'Data',
35
31
  noDataSource: 'No data available',
36
32
  delete: 'Delete restitution',
@@ -38,7 +34,6 @@ export const enTranslations = {
38
34
  lock: 'Private restitution',
39
35
  update: 'Edit information',
40
36
  cover: 'Image will cover the whole restitution card',
41
- noDataSourceSelected: 'No data source selected',
42
37
  catalogTabs: {
43
38
  model: 'Restitution models',
44
39
  noModel: 'Restitutions catalog'
@@ -46,4 +41,4 @@ export const enTranslations = {
46
41
  }
47
42
  }
48
43
  };
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW4udHJhbnNsYXRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvcmVzdGl0dXRpb24vaTE4bi9lbi50cmFuc2xhdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHO0lBQzVCLE1BQU0sRUFBRTtRQUNOLFdBQVcsRUFBRTtZQUNYLGdCQUFnQixFQUFFLGtCQUFrQjtZQUNwQyxTQUFTLEVBQUUsV0FBVztZQUN0QixXQUFXLEVBQUUsT0FBTztZQUNwQixXQUFXLEVBQUUsYUFBYTtZQUMxQixLQUFLLEVBQUUsT0FBTztZQUNkLEtBQUssRUFBRSxRQUFRO1lBQ2YsUUFBUSxFQUFFLE1BQU07WUFDaEIsS0FBSyxFQUFFLE9BQU87WUFDZCxJQUFJLEVBQUUsTUFBTTtZQUNaLE1BQU0sRUFBRSxvQkFBb0I7WUFDNUIsTUFBTSxFQUFFLFFBQVE7WUFDaEIsU0FBUyxFQUFFLFdBQVc7WUFDdEIsU0FBUyxFQUFFLFdBQVc7WUFDdEIsTUFBTSxFQUFFLDRDQUE0QztZQUNwRCxNQUFNLEVBQUUsbUZBQW1GO1lBQzNGLE9BQU8sRUFBRSw2RUFBNkU7WUFDdEYsTUFBTSxFQUFFLFdBQVc7WUFDbkIsRUFBRSxFQUFFLElBQUk7WUFDUixZQUFZLEVBQUUsc0JBQXNCO1lBQ3BDLGtCQUFrQixFQUFFLHlCQUF5QjtZQUM3QyxNQUFNLEVBQUUsUUFBUTtZQUNoQixhQUFhLEVBQUUsaUJBQWlCO1lBQ2hDLE9BQU8sRUFBRSxxQkFBcUI7WUFDOUIsT0FBTyxFQUFFLFNBQVM7WUFDbEIsT0FBTyxFQUFFLHNCQUFzQjtZQUMvQixRQUFRLEVBQUUsMENBQTBDO1lBQ3BELFNBQVMsRUFBRSwwQkFBMEI7WUFDckMsTUFBTSxFQUFFLHFDQUFxQztZQUM3QyxnQkFBZ0IsRUFBRSx5QkFBeUI7WUFDM0Msa0JBQWtCLEVBQUUsMkJBQTJCO1lBQy9DLFVBQVUsRUFBRSxNQUFNO1lBQ2xCLFlBQVksRUFBRSxtQkFBbUI7WUFDakMsTUFBTSxFQUFFLG9CQUFvQjtZQUM1QixJQUFJLEVBQUUsTUFBTTtZQUNaLElBQUksRUFBRSxxQkFBcUI7WUFDM0IsTUFBTSxFQUFFLGtCQUFrQjtZQUMxQixLQUFLLEVBQUUsNkNBQTZDO1lBQ3BELG9CQUFvQixFQUFFLHlCQUF5QjtZQUMvQyxXQUFXLEVBQUU7Z0JBQ1gsS0FBSyxFQUFFLG9CQUFvQjtnQkFDM0IsT0FBTyxFQUFFLHNCQUFzQjthQUNoQztTQUNGO0tBQ0Y7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGVuVHJhbnNsYXRpb25zID0ge1xuICAnQHByeSc6IHtcbiAgICByZXN0aXR1dGlvbjoge1xuICAgICAgcmVzdGl0dXRpb25fdHlwZTogJ1Jlc3RpdHV0aW9uIHR5cGUnLFxuICAgICAgZGF0YV90eXBlOiAnRGF0YSB0eXBlJyxcbiAgICAgIGdyYXBoX3RpdGxlOiAnVGl0bGUnLFxuICAgICAgZGVzY3JpcHRpb246ICdEZXNjcmlwdGlvbicsXG4gICAgICBpbWFnZTogJ0ltYWdlJyxcbiAgICAgIGNsb3NlOiAnQ2FuY2VsJyxcbiAgICAgIHZhbGlkYXRlOiAnU2F2ZScsXG4gICAgICBzaGFyZTogJ1NoYXJlJyxcbiAgICAgIHZpZXc6ICdWaWV3JyxcbiAgICAgIGNyZWF0ZTogJ0NyZWF0ZSByZXN0aXR1dGlvbicsXG4gICAgICBjYW5jZWw6ICdDYW5jZWwnLFxuICAgICAgY29uZmlndXJlOiAnQ29uZmlndXJlJyxcbiAgICAgIHZpc3VhbGl6ZTogJ1Zpc3VhbGl6ZScsXG4gICAgICBhY2Nlc3M6ICdEbyB5b3Ugd2FudCB0byBnaXZlIGFjY2VzcyAvIGludml0ZSB1c2Vycz8nLFxuICAgICAgcHVibGljOiAnTWFrZSB0aGlzIHBhcnRpY2lwYXRvcnkgc3VydmV5IGFjY2Vzc2libGUgdG8gYWxsIHVzZXJzIGluIHRoZSByZXN0aXR1dGlvbiBjYXRhbG9nJyxcbiAgICAgIHByaXZhdGU6ICdJbnZpdGUgY2VydGFpbiB1c2VycyBvZiB5b3VyIGNob2ljZSB0byByZXNwb25kIHRvIHRoaXMgcGFydGljaXBhdG9yeSBzdXJ2ZXknLFxuICAgICAgY2hvaWNlOiAnWW91IGNhbiA6JyxcbiAgICAgIG9yOiAnT3InLFxuICAgICAgY3JlYXRlX3RpdGxlOiAnQ3JlYXRlIGEgcmVzdGl0dXRpb24nLFxuICAgICAgY29uc3VsdFJlc3RpdHV0aW9uOiAnQ29uc3VsdCB0aGUgcmVzdGl0dXRpb24nLFxuICAgICAgc2VhcmNoOiAnU2VhcmNoJyxcbiAgICAgIGJhY2tUb0NhdGFsb2c6ICdCYWNrIHRvIGNhdGFsb2cnLFxuICAgICAgb3B0aW9uczogJ1Jlc3RpdHV0aW9uIG9wdGlvbnMnLFxuICAgICAgY29uc3VsdDogJ0NvbnN1bHQnLFxuICAgICAgY2F0YWxvZzogJ1Jlc3RpdHV0aW9ucyBjYXRhbG9nJyxcbiAgICAgIGFkZF9pY29uOiAnQWRkIHRoaXMgcmVzdGl0dXRpb24gb24gdGhlIHByZXNlbnRhdGlvbicsXG4gICAgICBzZWxlY3Rpb246ICdTZWxlY3RlZCBkYXRhIHNvdXJjZShzKTonLFxuICAgICAgc2VsZWN0OiAnU2VsZWN0IG9uZSBvciBtb3JlIGRhdGEgc291cmNlKHMpIDonLFxuICAgICAgc2VsZWN0RGF0YVNvdXJjZTogJ1NlbGVjdCB0aGlzIGRhdGEgc291cmNlJyxcbiAgICAgIHVuc2VsZWN0RGF0YVNvdXJjZTogJ1Vuc2VsZWN0IHRoaXMgZGF0YSBzb3VyY2UnLFxuICAgICAgZGF0YVNvdXJjZTogJ0RhdGEnLFxuICAgICAgbm9EYXRhU291cmNlOiAnTm8gZGF0YSBhdmFpbGFibGUnLFxuICAgICAgZGVsZXRlOiAnRGVsZXRlIHJlc3RpdHV0aW9uJyxcbiAgICAgIG5leHQ6ICdOZXh0JyxcbiAgICAgIGxvY2s6ICdQcml2YXRlIHJlc3RpdHV0aW9uJyxcbiAgICAgIHVwZGF0ZTogJ0VkaXQgaW5mb3JtYXRpb24nLFxuICAgICAgY292ZXI6ICdJbWFnZSB3aWxsIGNvdmVyIHRoZSB3aG9sZSByZXN0aXR1dGlvbiBjYXJkJyxcbiAgICAgIG5vRGF0YVNvdXJjZVNlbGVjdGVkOiAnTm8gZGF0YSBzb3VyY2Ugc2VsZWN0ZWQnLFxuICAgICAgY2F0YWxvZ1RhYnM6IHtcbiAgICAgICAgbW9kZWw6ICdSZXN0aXR1dGlvbiBtb2RlbHMnLFxuICAgICAgICBub01vZGVsOiAnUmVzdGl0dXRpb25zIGNhdGFsb2cnXG4gICAgICB9XG4gICAgfVxuICB9XG59O1xuIl19
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW4udHJhbnNsYXRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvcmVzdGl0dXRpb24vaTE4bi9lbi50cmFuc2xhdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHO0lBQzVCLE1BQU0sRUFBRTtRQUNOLFdBQVcsRUFBRTtZQUNYLGdCQUFnQixFQUFFLGtCQUFrQjtZQUNwQyxTQUFTLEVBQUUsV0FBVztZQUN0QixXQUFXLEVBQUUsT0FBTztZQUNwQixXQUFXLEVBQUUsYUFBYTtZQUMxQixLQUFLLEVBQUUsT0FBTztZQUNkLEtBQUssRUFBRSxRQUFRO1lBQ2YsUUFBUSxFQUFFLE1BQU07WUFDaEIsS0FBSyxFQUFFLE9BQU87WUFDZCxJQUFJLEVBQUUsTUFBTTtZQUNaLE1BQU0sRUFBRSxvQkFBb0I7WUFDNUIsTUFBTSxFQUFFLFFBQVE7WUFDaEIsU0FBUyxFQUFFLFdBQVc7WUFDdEIsU0FBUyxFQUFFLFdBQVc7WUFDdEIsTUFBTSxFQUFFLDRDQUE0QztZQUNwRCxNQUFNLEVBQUUsbUZBQW1GO1lBQzNGLE9BQU8sRUFBRSw2RUFBNkU7WUFDdEYsTUFBTSxFQUFFLFdBQVc7WUFDbkIsRUFBRSxFQUFFLElBQUk7WUFDUixZQUFZLEVBQUUsc0JBQXNCO1lBQ3BDLGtCQUFrQixFQUFFLHlCQUF5QjtZQUM3QyxNQUFNLEVBQUUsUUFBUTtZQUNoQixhQUFhLEVBQUUsaUJBQWlCO1lBQ2hDLE9BQU8sRUFBRSxxQkFBcUI7WUFDOUIsT0FBTyxFQUFFLFNBQVM7WUFDbEIsT0FBTyxFQUFFLHNCQUFzQjtZQUMvQixRQUFRLEVBQUUsMENBQTBDO1lBQ3BELFVBQVUsRUFBRSxNQUFNO1lBQ2xCLFlBQVksRUFBRSxtQkFBbUI7WUFDakMsTUFBTSxFQUFFLG9CQUFvQjtZQUM1QixJQUFJLEVBQUUsTUFBTTtZQUNaLElBQUksRUFBRSxxQkFBcUI7WUFDM0IsTUFBTSxFQUFFLGtCQUFrQjtZQUMxQixLQUFLLEVBQUUsNkNBQTZDO1lBQ3BELFdBQVcsRUFBRTtnQkFDWCxLQUFLLEVBQUUsb0JBQW9CO2dCQUMzQixPQUFPLEVBQUUsc0JBQXNCO2FBQ2hDO1NBQ0Y7S0FDRjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgZW5UcmFuc2xhdGlvbnMgPSB7XG4gICdAcHJ5Jzoge1xuICAgIHJlc3RpdHV0aW9uOiB7XG4gICAgICByZXN0aXR1dGlvbl90eXBlOiAnUmVzdGl0dXRpb24gdHlwZScsXG4gICAgICBkYXRhX3R5cGU6ICdEYXRhIHR5cGUnLFxuICAgICAgZ3JhcGhfdGl0bGU6ICdUaXRsZScsXG4gICAgICBkZXNjcmlwdGlvbjogJ0Rlc2NyaXB0aW9uJyxcbiAgICAgIGltYWdlOiAnSW1hZ2UnLFxuICAgICAgY2xvc2U6ICdDYW5jZWwnLFxuICAgICAgdmFsaWRhdGU6ICdTYXZlJyxcbiAgICAgIHNoYXJlOiAnU2hhcmUnLFxuICAgICAgdmlldzogJ1ZpZXcnLFxuICAgICAgY3JlYXRlOiAnQ3JlYXRlIHJlc3RpdHV0aW9uJyxcbiAgICAgIGNhbmNlbDogJ0NhbmNlbCcsXG4gICAgICBjb25maWd1cmU6ICdDb25maWd1cmUnLFxuICAgICAgdmlzdWFsaXplOiAnVmlzdWFsaXplJyxcbiAgICAgIGFjY2VzczogJ0RvIHlvdSB3YW50IHRvIGdpdmUgYWNjZXNzIC8gaW52aXRlIHVzZXJzPycsXG4gICAgICBwdWJsaWM6ICdNYWtlIHRoaXMgcGFydGljaXBhdG9yeSBzdXJ2ZXkgYWNjZXNzaWJsZSB0byBhbGwgdXNlcnMgaW4gdGhlIHJlc3RpdHV0aW9uIGNhdGFsb2cnLFxuICAgICAgcHJpdmF0ZTogJ0ludml0ZSBjZXJ0YWluIHVzZXJzIG9mIHlvdXIgY2hvaWNlIHRvIHJlc3BvbmQgdG8gdGhpcyBwYXJ0aWNpcGF0b3J5IHN1cnZleScsXG4gICAgICBjaG9pY2U6ICdZb3UgY2FuIDonLFxuICAgICAgb3I6ICdPcicsXG4gICAgICBjcmVhdGVfdGl0bGU6ICdDcmVhdGUgYSByZXN0aXR1dGlvbicsXG4gICAgICBjb25zdWx0UmVzdGl0dXRpb246ICdDb25zdWx0IHRoZSByZXN0aXR1dGlvbicsXG4gICAgICBzZWFyY2g6ICdTZWFyY2gnLFxuICAgICAgYmFja1RvQ2F0YWxvZzogJ0JhY2sgdG8gY2F0YWxvZycsXG4gICAgICBvcHRpb25zOiAnUmVzdGl0dXRpb24gb3B0aW9ucycsXG4gICAgICBjb25zdWx0OiAnQ29uc3VsdCcsXG4gICAgICBjYXRhbG9nOiAnUmVzdGl0dXRpb25zIGNhdGFsb2cnLFxuICAgICAgYWRkX2ljb246ICdBZGQgdGhpcyByZXN0aXR1dGlvbiBvbiB0aGUgcHJlc2VudGF0aW9uJyxcbiAgICAgIGRhdGFTb3VyY2U6ICdEYXRhJyxcbiAgICAgIG5vRGF0YVNvdXJjZTogJ05vIGRhdGEgYXZhaWxhYmxlJyxcbiAgICAgIGRlbGV0ZTogJ0RlbGV0ZSByZXN0aXR1dGlvbicsXG4gICAgICBuZXh0OiAnTmV4dCcsXG4gICAgICBsb2NrOiAnUHJpdmF0ZSByZXN0aXR1dGlvbicsXG4gICAgICB1cGRhdGU6ICdFZGl0IGluZm9ybWF0aW9uJyxcbiAgICAgIGNvdmVyOiAnSW1hZ2Ugd2lsbCBjb3ZlciB0aGUgd2hvbGUgcmVzdGl0dXRpb24gY2FyZCcsXG4gICAgICBjYXRhbG9nVGFiczoge1xuICAgICAgICBtb2RlbDogJ1Jlc3RpdHV0aW9uIG1vZGVscycsXG4gICAgICAgIG5vTW9kZWw6ICdSZXN0aXR1dGlvbnMgY2F0YWxvZydcbiAgICAgIH1cbiAgICB9XG4gIH1cbn07XG4iXX0=
@@ -28,10 +28,6 @@ export const frTranslations = {
28
28
  consultRestitution: 'Consulter la restitution',
29
29
  catalog: 'Catalogue des restitutions',
30
30
  add_icon: 'Ajouter cette restitution sur la présentation',
31
- selection: 'Source(s) de données sélectionnées:',
32
- select: 'Sélectionner une ou plusieurs source(s) de données :',
33
- selectDataSource: 'Sélectionner la source de données',
34
- unselectDataSource: 'Désélectionner la source de données',
35
31
  dataSource: 'Donnée(s)',
36
32
  noDataSource: 'Aucune donnée disponible',
37
33
  delete: 'Supprimer la restitution',
@@ -39,7 +35,6 @@ export const frTranslations = {
39
35
  lock: 'Restitution privée',
40
36
  update: 'Modifier les informations',
41
37
  cover: "L'image doit couvrir la carte de la restitution",
42
- noDataSourceSelected: 'Aucune source de données sélectionnée',
43
38
  catalogTabs: {
44
39
  model: 'Modèles de restitution',
45
40
  noModel: 'Restitutions du catalogue'
@@ -47,4 +42,4 @@ export const frTranslations = {
47
42
  }
48
43
  }
49
44
  };
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnIudHJhbnNsYXRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvcmVzdGl0dXRpb24vaTE4bi9mci50cmFuc2xhdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHO0lBQzVCLE1BQU0sRUFBRTtRQUNOLFdBQVcsRUFBRTtZQUNYLGdCQUFnQixFQUFFLHFCQUFxQjtZQUN2QyxTQUFTLEVBQUUsaUJBQWlCO1lBQzVCLFdBQVcsRUFBRSx5QkFBeUI7WUFDdEMsV0FBVyxFQUFFLGFBQWE7WUFDMUIsS0FBSyxFQUFFLE9BQU87WUFDZCxLQUFLLEVBQUUsU0FBUztZQUNoQixRQUFRLEVBQUUsU0FBUztZQUNuQixLQUFLLEVBQUUsVUFBVTtZQUNqQixJQUFJLEVBQUUsU0FBUztZQUNmLE9BQU8sRUFBRSwyQkFBMkI7WUFDcEMsSUFBSSxFQUFFLFdBQVc7WUFDakIsTUFBTSxFQUFFLHVCQUF1QjtZQUMvQixJQUFJLEVBQUUseUJBQXlCO1lBQy9CLE1BQU0sRUFBRSxTQUFTO1lBQ2pCLFNBQVMsRUFBRSxZQUFZO1lBQ3ZCLFNBQVMsRUFBRSxZQUFZO1lBQ3ZCLE1BQU0sRUFBRSwwREFBMEQ7WUFDbEUsTUFBTSxFQUFFLDZEQUE2RDtZQUNyRSxPQUFPLEVBQUUsNEVBQTRFO1lBQ3JGLE1BQU0sRUFBRSxlQUFlO1lBQ3ZCLEVBQUUsRUFBRSxJQUFJO1lBQ1IsTUFBTSxFQUFFLFlBQVk7WUFDcEIsYUFBYSxFQUFFLHFCQUFxQjtZQUNwQyxPQUFPLEVBQUUsV0FBVztZQUNwQixrQkFBa0IsRUFBRSwwQkFBMEI7WUFDOUMsT0FBTyxFQUFFLDRCQUE0QjtZQUNyQyxRQUFRLEVBQUUsK0NBQStDO1lBQ3pELFNBQVMsRUFBRSxxQ0FBcUM7WUFDaEQsTUFBTSxFQUFFLHNEQUFzRDtZQUM5RCxnQkFBZ0IsRUFBRSxtQ0FBbUM7WUFDckQsa0JBQWtCLEVBQUUscUNBQXFDO1lBQ3pELFVBQVUsRUFBRSxXQUFXO1lBQ3ZCLFlBQVksRUFBRSwwQkFBMEI7WUFDeEMsTUFBTSxFQUFFLDBCQUEwQjtZQUNsQyxJQUFJLEVBQUUsU0FBUztZQUNmLElBQUksRUFBRSxvQkFBb0I7WUFDMUIsTUFBTSxFQUFFLDJCQUEyQjtZQUNuQyxLQUFLLEVBQUUsaURBQWlEO1lBQ3hELG9CQUFvQixFQUFFLHVDQUF1QztZQUM3RCxXQUFXLEVBQUU7Z0JBQ1gsS0FBSyxFQUFFLHdCQUF3QjtnQkFDL0IsT0FBTyxFQUFFLDJCQUEyQjthQUNyQztTQUNGO0tBQ0Y7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGZyVHJhbnNsYXRpb25zID0ge1xuICAnQHByeSc6IHtcbiAgICByZXN0aXR1dGlvbjoge1xuICAgICAgcmVzdGl0dXRpb25fdHlwZTogJ1R5cGUgZGUgcmVzdGl0dXRpb24nLFxuICAgICAgZGF0YV90eXBlOiAnVHlwZSBkZSBkb25uw6llcycsXG4gICAgICBncmFwaF90aXRsZTogJ1RpdHJlIGRlIGxhIHJlc3RpdHV0aW9uJyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnRGVzY3JpcHRpb24nLFxuICAgICAgaW1hZ2U6ICdJbWFnZScsXG4gICAgICBjbG9zZTogJ0FubnVsZXInLFxuICAgICAgdmFsaWRhdGU6ICdWYWxpZGVyJyxcbiAgICAgIHNoYXJlOiAnUGFydGFnZXInLFxuICAgICAgbW9yZTogJ09wdGlvbnMnLFxuICAgICAgb3B0aW9uczogJ09wdGlvbnMgZGUgbGEgcmVzdGl0dXRpb24nLFxuICAgICAgdmlldzogJ0NvbnN1bHRlcicsXG4gICAgICBjcmVhdGU6ICdDcsOpZXIgdW5lIHJlc3RpdHV0aW9uJyxcbiAgICAgIGVkaXQ6ICdNb2RpZmllciBsYSByZXN0aXR1dGlvbicsXG4gICAgICBjYW5jZWw6ICdBbm51bGVyJyxcbiAgICAgIGNvbmZpZ3VyZTogJ0NvbmZpZ3VyZXInLFxuICAgICAgdmlzdWFsaXplOiAnVmlzdWFsaXNlcicsXG4gICAgICBhY2Nlc3M6ICdWb3VzIHNvdWhhaXRleiBkb25uZXIgYWNjw6hzIC8gaW52aXRlciBkZXMgdXRpbGlzYXRldXJzID8nLFxuICAgICAgcHVibGljOiAnUmVuZHJlIGFjY2Vzc2libGUgY2V0dGUgcmVzdGl0dXRpb24gw6AgdG91cyBsZXMgdXRpbGlzYXRldXJzJyxcbiAgICAgIHByaXZhdGU6ICdSZW5kcmUgYWNjZXNzaWJsZSDDoCBjZXJ0YWlucyB1dGlsaXNhdGV1cnMgZGUgdm90cmUgY2hvaXggY2V0dGUgcmVzdGl0dXRpb24nLFxuICAgICAgY2hvaWNlOiAnVm91cyBwb3V2ZXogOicsXG4gICAgICBvcjogJ091JyxcbiAgICAgIHNlYXJjaDogJ1JlY2hlcmNoZXInLFxuICAgICAgYmFja1RvQ2F0YWxvZzogJ1JldG91ciBhdSBjYXRhbG9ndWUnLFxuICAgICAgY29uc3VsdDogJ0NvbnN1bHRlcicsXG4gICAgICBjb25zdWx0UmVzdGl0dXRpb246ICdDb25zdWx0ZXIgbGEgcmVzdGl0dXRpb24nLFxuICAgICAgY2F0YWxvZzogJ0NhdGFsb2d1ZSBkZXMgcmVzdGl0dXRpb25zJyxcbiAgICAgIGFkZF9pY29uOiAnQWpvdXRlciBjZXR0ZSByZXN0aXR1dGlvbiBzdXIgbGEgcHLDqXNlbnRhdGlvbicsXG4gICAgICBzZWxlY3Rpb246ICdTb3VyY2UocykgZGUgZG9ubsOpZXMgc8OpbGVjdGlvbm7DqWVzOicsXG4gICAgICBzZWxlY3Q6ICdTw6lsZWN0aW9ubmVyIHVuZSBvdSBwbHVzaWV1cnMgc291cmNlKHMpIGRlIGRvbm7DqWVzIDonLFxuICAgICAgc2VsZWN0RGF0YVNvdXJjZTogJ1PDqWxlY3Rpb25uZXIgbGEgc291cmNlIGRlIGRvbm7DqWVzJyxcbiAgICAgIHVuc2VsZWN0RGF0YVNvdXJjZTogJ0TDqXPDqWxlY3Rpb25uZXIgbGEgc291cmNlIGRlIGRvbm7DqWVzJyxcbiAgICAgIGRhdGFTb3VyY2U6ICdEb25uw6llKHMpJyxcbiAgICAgIG5vRGF0YVNvdXJjZTogJ0F1Y3VuZSBkb25uw6llIGRpc3BvbmlibGUnLFxuICAgICAgZGVsZXRlOiAnU3VwcHJpbWVyIGxhIHJlc3RpdHV0aW9uJyxcbiAgICAgIG5leHQ6ICdTdWl2YW50JyxcbiAgICAgIGxvY2s6ICdSZXN0aXR1dGlvbiBwcml2w6llJyxcbiAgICAgIHVwZGF0ZTogJ01vZGlmaWVyIGxlcyBpbmZvcm1hdGlvbnMnLFxuICAgICAgY292ZXI6IFwiTCdpbWFnZSBkb2l0IGNvdXZyaXIgbGEgY2FydGUgZGUgbGEgcmVzdGl0dXRpb25cIixcbiAgICAgIG5vRGF0YVNvdXJjZVNlbGVjdGVkOiAnQXVjdW5lIHNvdXJjZSBkZSBkb25uw6llcyBzw6lsZWN0aW9ubsOpZScsXG4gICAgICBjYXRhbG9nVGFiczoge1xuICAgICAgICBtb2RlbDogJ01vZMOobGVzIGRlIHJlc3RpdHV0aW9uJyxcbiAgICAgICAgbm9Nb2RlbDogJ1Jlc3RpdHV0aW9ucyBkdSBjYXRhbG9ndWUnXG4gICAgICB9XG4gICAgfVxuICB9XG59O1xuIl19
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnIudHJhbnNsYXRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvcmVzdGl0dXRpb24vaTE4bi9mci50cmFuc2xhdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHO0lBQzVCLE1BQU0sRUFBRTtRQUNOLFdBQVcsRUFBRTtZQUNYLGdCQUFnQixFQUFFLHFCQUFxQjtZQUN2QyxTQUFTLEVBQUUsaUJBQWlCO1lBQzVCLFdBQVcsRUFBRSx5QkFBeUI7WUFDdEMsV0FBVyxFQUFFLGFBQWE7WUFDMUIsS0FBSyxFQUFFLE9BQU87WUFDZCxLQUFLLEVBQUUsU0FBUztZQUNoQixRQUFRLEVBQUUsU0FBUztZQUNuQixLQUFLLEVBQUUsVUFBVTtZQUNqQixJQUFJLEVBQUUsU0FBUztZQUNmLE9BQU8sRUFBRSwyQkFBMkI7WUFDcEMsSUFBSSxFQUFFLFdBQVc7WUFDakIsTUFBTSxFQUFFLHVCQUF1QjtZQUMvQixJQUFJLEVBQUUseUJBQXlCO1lBQy9CLE1BQU0sRUFBRSxTQUFTO1lBQ2pCLFNBQVMsRUFBRSxZQUFZO1lBQ3ZCLFNBQVMsRUFBRSxZQUFZO1lBQ3ZCLE1BQU0sRUFBRSwwREFBMEQ7WUFDbEUsTUFBTSxFQUFFLDZEQUE2RDtZQUNyRSxPQUFPLEVBQUUsNEVBQTRFO1lBQ3JGLE1BQU0sRUFBRSxlQUFlO1lBQ3ZCLEVBQUUsRUFBRSxJQUFJO1lBQ1IsTUFBTSxFQUFFLFlBQVk7WUFDcEIsYUFBYSxFQUFFLHFCQUFxQjtZQUNwQyxPQUFPLEVBQUUsV0FBVztZQUNwQixrQkFBa0IsRUFBRSwwQkFBMEI7WUFDOUMsT0FBTyxFQUFFLDRCQUE0QjtZQUNyQyxRQUFRLEVBQUUsK0NBQStDO1lBQ3pELFVBQVUsRUFBRSxXQUFXO1lBQ3ZCLFlBQVksRUFBRSwwQkFBMEI7WUFDeEMsTUFBTSxFQUFFLDBCQUEwQjtZQUNsQyxJQUFJLEVBQUUsU0FBUztZQUNmLElBQUksRUFBRSxvQkFBb0I7WUFDMUIsTUFBTSxFQUFFLDJCQUEyQjtZQUNuQyxLQUFLLEVBQUUsaURBQWlEO1lBQ3hELFdBQVcsRUFBRTtnQkFDWCxLQUFLLEVBQUUsd0JBQXdCO2dCQUMvQixPQUFPLEVBQUUsMkJBQTJCO2FBQ3JDO1NBQ0Y7S0FDRjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgZnJUcmFuc2xhdGlvbnMgPSB7XG4gICdAcHJ5Jzoge1xuICAgIHJlc3RpdHV0aW9uOiB7XG4gICAgICByZXN0aXR1dGlvbl90eXBlOiAnVHlwZSBkZSByZXN0aXR1dGlvbicsXG4gICAgICBkYXRhX3R5cGU6ICdUeXBlIGRlIGRvbm7DqWVzJyxcbiAgICAgIGdyYXBoX3RpdGxlOiAnVGl0cmUgZGUgbGEgcmVzdGl0dXRpb24nLFxuICAgICAgZGVzY3JpcHRpb246ICdEZXNjcmlwdGlvbicsXG4gICAgICBpbWFnZTogJ0ltYWdlJyxcbiAgICAgIGNsb3NlOiAnQW5udWxlcicsXG4gICAgICB2YWxpZGF0ZTogJ1ZhbGlkZXInLFxuICAgICAgc2hhcmU6ICdQYXJ0YWdlcicsXG4gICAgICBtb3JlOiAnT3B0aW9ucycsXG4gICAgICBvcHRpb25zOiAnT3B0aW9ucyBkZSBsYSByZXN0aXR1dGlvbicsXG4gICAgICB2aWV3OiAnQ29uc3VsdGVyJyxcbiAgICAgIGNyZWF0ZTogJ0Nyw6llciB1bmUgcmVzdGl0dXRpb24nLFxuICAgICAgZWRpdDogJ01vZGlmaWVyIGxhIHJlc3RpdHV0aW9uJyxcbiAgICAgIGNhbmNlbDogJ0FubnVsZXInLFxuICAgICAgY29uZmlndXJlOiAnQ29uZmlndXJlcicsXG4gICAgICB2aXN1YWxpemU6ICdWaXN1YWxpc2VyJyxcbiAgICAgIGFjY2VzczogJ1ZvdXMgc291aGFpdGV6IGRvbm5lciBhY2PDqHMgLyBpbnZpdGVyIGRlcyB1dGlsaXNhdGV1cnMgPycsXG4gICAgICBwdWJsaWM6ICdSZW5kcmUgYWNjZXNzaWJsZSBjZXR0ZSByZXN0aXR1dGlvbiDDoCB0b3VzIGxlcyB1dGlsaXNhdGV1cnMnLFxuICAgICAgcHJpdmF0ZTogJ1JlbmRyZSBhY2Nlc3NpYmxlIMOgIGNlcnRhaW5zIHV0aWxpc2F0ZXVycyBkZSB2b3RyZSBjaG9peCBjZXR0ZSByZXN0aXR1dGlvbicsXG4gICAgICBjaG9pY2U6ICdWb3VzIHBvdXZleiA6JyxcbiAgICAgIG9yOiAnT3UnLFxuICAgICAgc2VhcmNoOiAnUmVjaGVyY2hlcicsXG4gICAgICBiYWNrVG9DYXRhbG9nOiAnUmV0b3VyIGF1IGNhdGFsb2d1ZScsXG4gICAgICBjb25zdWx0OiAnQ29uc3VsdGVyJyxcbiAgICAgIGNvbnN1bHRSZXN0aXR1dGlvbjogJ0NvbnN1bHRlciBsYSByZXN0aXR1dGlvbicsXG4gICAgICBjYXRhbG9nOiAnQ2F0YWxvZ3VlIGRlcyByZXN0aXR1dGlvbnMnLFxuICAgICAgYWRkX2ljb246ICdBam91dGVyIGNldHRlIHJlc3RpdHV0aW9uIHN1ciBsYSBwcsOpc2VudGF0aW9uJyxcbiAgICAgIGRhdGFTb3VyY2U6ICdEb25uw6llKHMpJyxcbiAgICAgIG5vRGF0YVNvdXJjZTogJ0F1Y3VuZSBkb25uw6llIGRpc3BvbmlibGUnLFxuICAgICAgZGVsZXRlOiAnU3VwcHJpbWVyIGxhIHJlc3RpdHV0aW9uJyxcbiAgICAgIG5leHQ6ICdTdWl2YW50JyxcbiAgICAgIGxvY2s6ICdSZXN0aXR1dGlvbiBwcml2w6llJyxcbiAgICAgIHVwZGF0ZTogJ01vZGlmaWVyIGxlcyBpbmZvcm1hdGlvbnMnLFxuICAgICAgY292ZXI6IFwiTCdpbWFnZSBkb2l0IGNvdXZyaXIgbGEgY2FydGUgZGUgbGEgcmVzdGl0dXRpb25cIixcbiAgICAgIGNhdGFsb2dUYWJzOiB7XG4gICAgICAgIG1vZGVsOiAnTW9kw6hsZXMgZGUgcmVzdGl0dXRpb24nLFxuICAgICAgICBub01vZGVsOiAnUmVzdGl0dXRpb25zIGR1IGNhdGFsb2d1ZSdcbiAgICAgIH1cbiAgICB9XG4gIH1cbn07XG4iXX0=
@@ -0,0 +1,29 @@
1
+ import { Component } from '@angular/core';
2
+ import { DashboardActions, DashboardSelectors } from '@provoly/dashboard';
3
+ import { ToolboxActionComponent } from '../toolbox-action/toolbox-action.component';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@ngrx/store";
6
+ import * as i2 from "@angular/cdk/overlay";
7
+ import * as i3 from "@angular/common";
8
+ import * as i4 from "@provoly/dashboard";
9
+ export class DeleteComponent extends ToolboxActionComponent {
10
+ constructor(store, overlay, viewContainerRef) {
11
+ super(store);
12
+ this.overlay = overlay;
13
+ this.viewContainerRef = viewContainerRef;
14
+ this.subscriptions.add(this.store.select(DashboardSelectors.presentation).subscribe((prez) => {
15
+ this.presentation = prez;
16
+ }));
17
+ }
18
+ trigger() {
19
+ this.store.dispatch(DashboardActions.confirmManifestDeletion({ id: this.presentation?.current.id }));
20
+ this.close();
21
+ }
22
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DeleteComponent, deps: [{ token: i1.Store }, { token: i2.Overlay }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); }
23
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DeleteComponent, selector: "pry-delete-pres", usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"this.presentation?.current?.owner\">\n <button type=\"button\" class=\"a-btn a-btn--secondary -size-md\" (click)=\"trigger()\">\n <ng-container *ngIf=\"displayLabels\">{{ '@pry.toolbox.delete' | i18n }}</ng-container>\n </button>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
24
+ }
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DeleteComponent, decorators: [{
26
+ type: Component,
27
+ args: [{ selector: 'pry-delete-pres', template: "<ng-container *ngIf=\"this.presentation?.current?.owner\">\n <button type=\"button\" class=\"a-btn a-btn--secondary -size-md\" (click)=\"trigger()\">\n <ng-container *ngIf=\"displayLabels\">{{ '@pry.toolbox.delete' | i18n }}</ng-container>\n </button>\n</ng-container>\n" }]
28
+ }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Overlay }, { type: i0.ViewContainerRef }]; } });
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL3Rvb2xib3gvY29tcG9uZW50cy9kZWxldGUvZGVsZXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL3Rvb2xib3gvY29tcG9uZW50cy9kZWxldGUvZGVsZXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBRTVELE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsa0JBQWtCLEVBSW5CLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNENBQTRDLENBQUM7Ozs7OztBQU9wRixNQUFNLE9BQU8sZUFBZ0IsU0FBUSxzQkFBc0I7SUFTekQsWUFBWSxLQUFZLEVBQVUsT0FBZ0IsRUFBVSxnQkFBa0M7UUFDNUYsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRG1CLFlBQU8sR0FBUCxPQUFPLENBQVM7UUFBVSxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBRTVGLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUNwQixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNwRSxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLE9BQVEsQ0FBQyxFQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDdkcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2YsQ0FBQzsrR0FyQlUsZUFBZTttR0FBZixlQUFlLDhFQ2hCNUIscVJBS0E7OzRGRFdhLGVBQWU7a0JBSjNCLFNBQVM7K0JBQ0UsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7XG4gIERhc2hib2FyZEFjdGlvbnMsXG4gIERhc2hib2FyZFNlbGVjdG9ycyxcbiAgR2xvYmFsTWFuaWZlc3QsXG4gIE1hbmlmZXN0RGVzY3JpcHRpb24sXG4gIFZpZXdNb2RlXG59IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZCc7XG5pbXBvcnQgeyBUb29sYm94QWN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vdG9vbGJveC1hY3Rpb24vdG9vbGJveC1hY3Rpb24uY29tcG9uZW50JztcbmltcG9ydCB7IE92ZXJsYXkgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ByeS1kZWxldGUtcHJlcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9kZWxldGUuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIERlbGV0ZUNvbXBvbmVudCBleHRlbmRzIFRvb2xib3hBY3Rpb25Db21wb25lbnQge1xuICBwcmVzZW50YXRpb246XG4gICAgfCB7XG4gICAgICAgIGN1cnJlbnQ6IE1hbmlmZXN0RGVzY3JpcHRpb24gfCB1bmRlZmluZWQ7XG4gICAgICAgIHZpZXdNb2RlPzogVmlld01vZGU7XG4gICAgICAgIGluaXRpYWw6IEdsb2JhbE1hbmlmZXN0IHwgdW5kZWZpbmVkO1xuICAgICAgfVxuICAgIHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKHN0b3JlOiBTdG9yZSwgcHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5LCBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYpIHtcbiAgICBzdXBlcihzdG9yZSk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMuc3RvcmUuc2VsZWN0KERhc2hib2FyZFNlbGVjdG9ycy5wcmVzZW50YXRpb24pLnN1YnNjcmliZSgocHJleikgPT4ge1xuICAgICAgICB0aGlzLnByZXNlbnRhdGlvbiA9IHByZXo7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICB0cmlnZ2VyKCkge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRGFzaGJvYXJkQWN0aW9ucy5jb25maXJtTWFuaWZlc3REZWxldGlvbih7IGlkOiB0aGlzLnByZXNlbnRhdGlvbj8uY3VycmVudCEuaWQhIH0pKTtcbiAgICB0aGlzLmNsb3NlKCk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJ0aGlzLnByZXNlbnRhdGlvbj8uY3VycmVudD8ub3duZXJcIj5cbiAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tc2Vjb25kYXJ5IC1zaXplLW1kXCIgKGNsaWNrKT1cInRyaWdnZXIoKVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkaXNwbGF5TGFiZWxzXCI+e3sgJ0BwcnkudG9vbGJveC5kZWxldGUnIHwgaTE4biB9fTwvbmctY29udGFpbmVyPlxuICA8L2J1dHRvbj5cbjwvbmctY29udGFpbmVyPlxuIl19