@provoly/dashboard 0.20.3 → 0.20.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 (173) hide show
  1. package/components/metadata-editor/style/_o-metadata-editor.scss +0 -5
  2. package/dataset/style/_o-pry-dataset-card.scss +5 -37
  3. package/esm2022/admin/components/admin-abac-rules/admin-abac-rules-form/admin-abac-rules-form.component.mjs +3 -3
  4. package/esm2022/admin/components/admin-abac-rules/components/attribute-condition/attribute-condition.component.mjs +3 -3
  5. package/esm2022/admin/components/admin-abac-rules/components/metadata-condition/metadata-condition.component.mjs +3 -3
  6. package/esm2022/admin/components/admin-classes/admin-classes-customize/symbol/admin-classes-customize-symbol.component.mjs +3 -3
  7. package/esm2022/admin/components/admin-classes/admin-classes-customize/tooltip/admin-classes-customize-tooltip.component.mjs +3 -3
  8. package/esm2022/admin/components/admin-classes/admin-classes-form/admin-classes-form.component.mjs +3 -3
  9. package/esm2022/admin/components/admin-classes/admin-classes-view/admin-attributes-form/admin-attributes-form.component.mjs +15 -10
  10. package/esm2022/admin/components/admin-dataset/shared/admin-form-dataset/admin-form-dataset.component.mjs +3 -3
  11. package/esm2022/admin/components/admin-environment/admin-environment-form/admin-environment-form.component.mjs +3 -3
  12. package/esm2022/admin/components/admin-fields/admin-fields-form/admin-fields-form.component.mjs +3 -3
  13. package/esm2022/admin/components/admin-links/admin-links-new/admin-links-new.component.mjs +3 -3
  14. package/esm2022/admin/components/admin-metadata/shared/form-metadata/form-metadata.component.mjs +3 -3
  15. package/esm2022/admin/components/admin-metadata-rules/shared/admin-form-metadata-rules/admin-form-metadata-rules.component.mjs +3 -3
  16. package/esm2022/components/metadata-editor/metadata-editor.component.mjs +3 -3
  17. package/esm2022/components/metadata-editor/style/css.component.mjs +2 -2
  18. package/esm2022/components/scheme-picker/scheme-picker.component.mjs +3 -3
  19. package/esm2022/dataset/components/dataset-card/dataset-card.component.mjs +5 -5
  20. package/esm2022/dataset/components/dataset-detail/dataset-detail.component.mjs +1 -2
  21. package/esm2022/dataset/i18n/fr.translations.mjs +2 -2
  22. package/esm2022/dataset/style/css.component.mjs +2 -2
  23. package/esm2022/filters/autocomplete/autocomplete.component.mjs +13 -6
  24. package/esm2022/filters/autocomplete/autocomplete.module.mjs +5 -5
  25. package/esm2022/filters/autocomplete/style/css.component.mjs +2 -2
  26. package/esm2022/filters/list/list-filter.component.mjs +1 -1
  27. package/esm2022/import/components/import.component.mjs +3 -3
  28. package/esm2022/lib/core/components/ellipsis.directive.mjs +31 -0
  29. package/esm2022/lib/core/components/select/select.component.mjs +163 -38
  30. package/esm2022/lib/core/components/select/select.module.mjs +4 -5
  31. package/esm2022/lib/core/components/share/share.component.mjs +3 -3
  32. package/esm2022/lib/core/components/translate-id/translate-id.pipe.mjs +7 -8
  33. package/esm2022/lib/core/core.module.mjs +8 -4
  34. package/esm2022/lib/core/i18n/en.translations.mjs +7 -5
  35. package/esm2022/lib/core/i18n/fr.translations.mjs +8 -5
  36. package/esm2022/lib/core/model/display-options.interface.mjs +18 -4
  37. package/esm2022/lib/core/model/manifest.interface.mjs +1 -1
  38. package/esm2022/lib/core/public-api.mjs +2 -1
  39. package/esm2022/lib/core/toolbox/toolbox-manifest.service.mjs +1 -4
  40. package/esm2022/lib/dashboard/components/context-menu/object-edition/object-edition.component.mjs +3 -3
  41. package/esm2022/lib/dashboard/components/widgets/header/widget-header.component.mjs +6 -15
  42. package/esm2022/lib/dashboard/components/widgets/settings/settings.component.mjs +3 -3
  43. package/esm2022/lib/dashboard/filter/components/filter-group/filter-group.component.mjs +3 -3
  44. package/esm2022/lib/dashboard/filter/style/css.component.mjs +2 -2
  45. package/esm2022/lib/dashboard/store/dashboard.effects.mjs +1 -4
  46. package/esm2022/pipeline-components/filter/component/filter.component.mjs +3 -3
  47. package/esm2022/pipeline-components/input-datasource/component/input-datasource.component.mjs +3 -3
  48. package/esm2022/pipeline-components/output-dataset/component/output-dataset.component.mjs +3 -3
  49. package/esm2022/presentation/components/add-edit-presentation/add-edit-presentation.component.mjs +3 -3
  50. package/esm2022/presentation/components/presentation.component.mjs +3 -3
  51. package/esm2022/presentation/i18n/fr.translations.mjs +9 -9
  52. package/esm2022/presentation/style/css.component.mjs +2 -2
  53. package/esm2022/restitution/components/restitution/restitution.component.mjs +23 -22
  54. package/esm2022/restitution/components/restitution-catalog/restitution-catalog.component.mjs +13 -6
  55. package/esm2022/restitution/i18n/en.translations.mjs +2 -2
  56. package/esm2022/restitution/i18n/fr.translations.mjs +4 -4
  57. package/esm2022/restitution/style/css.component.mjs +2 -2
  58. package/esm2022/search/search-mono-class/components/search-condition/search-condition.component.mjs +3 -3
  59. package/esm2022/search/search-mono-class/components/search-mono-class/search-mono-class.component.mjs +3 -3
  60. package/esm2022/search/search-mono-class/components/search-order/search-order.component.mjs +3 -3
  61. package/esm2022/search/search-multi-class/components/multi-class-condition/multi-class-condition.component.mjs +3 -3
  62. package/esm2022/supervision/components/supervision-integration-errors/supervision-integration-errors.component.mjs +3 -3
  63. package/esm2022/toolbox/components/automate-refresh/automate-refresh.component.mjs +3 -3
  64. package/esm2022/toolbox/components/clear-view/clear-view.component.mjs +3 -3
  65. package/esm2022/toolbox/components/drag-widgets/drag-widgets.component.mjs +3 -3
  66. package/esm2022/toolbox/components/filter-settings/filter-settings.component.mjs +4 -4
  67. package/esm2022/toolbox/components/launch-tab/launch-tab.component.mjs +3 -3
  68. package/esm2022/toolbox/components/named-query/named-query.component.mjs +3 -3
  69. package/esm2022/toolbox/components/refresh-datasets/refresh-datasets.component.mjs +3 -3
  70. package/esm2022/toolbox/components/save-view/save-view.component.mjs +3 -3
  71. package/esm2022/toolbox/components/select-grid-layout/select-grid-layout.component.mjs +3 -3
  72. package/esm2022/toolbox/components/toolbox.component.mjs +4 -3
  73. package/esm2022/tooltips/attribute/attribute-tooltip.component.mjs +8 -2
  74. package/esm2022/widgets/widget-aggregated-chart/component/widget-aggregated-chart.component.mjs +8 -7
  75. package/esm2022/widgets/widget-chart/component/widget-chart.component.mjs +3 -4
  76. package/esm2022/widgets/widget-graph/component/widget-graph.component.mjs +3 -3
  77. package/esm2022/widgets/widget-map/component/widget-map.component.mjs +10 -4
  78. package/esm2022/widgets/widget-map/i18n/en.translations.mjs +3 -2
  79. package/esm2022/widgets/widget-map/i18n/fr.translations.mjs +3 -2
  80. package/esm2022/widgets/widget-map/style/css.component.mjs +2 -2
  81. package/esm2022/widgets/widget-table/component/widget-table.component.mjs +7 -7
  82. package/esm2022/widgets/widget-tile/component/widget-tile.component.mjs +3 -3
  83. package/fesm2022/provoly-dashboard-admin.mjs +38 -33
  84. package/fesm2022/provoly-dashboard-admin.mjs.map +1 -1
  85. package/fesm2022/provoly-dashboard-components-metadata-editor.mjs +4 -4
  86. package/fesm2022/provoly-dashboard-components-metadata-editor.mjs.map +1 -1
  87. package/fesm2022/provoly-dashboard-components-scheme-picker.mjs +2 -2
  88. package/fesm2022/provoly-dashboard-components-scheme-picker.mjs.map +1 -1
  89. package/fesm2022/provoly-dashboard-dataset.mjs +5 -6
  90. package/fesm2022/provoly-dashboard-dataset.mjs.map +1 -1
  91. package/fesm2022/provoly-dashboard-filters-autocomplete.mjs +18 -11
  92. package/fesm2022/provoly-dashboard-filters-autocomplete.mjs.map +1 -1
  93. package/fesm2022/provoly-dashboard-filters-list.mjs +1 -1
  94. package/fesm2022/provoly-dashboard-filters-list.mjs.map +1 -1
  95. package/fesm2022/provoly-dashboard-import.mjs +2 -2
  96. package/fesm2022/provoly-dashboard-import.mjs.map +1 -1
  97. package/fesm2022/provoly-dashboard-pipeline-components-filter.mjs +2 -2
  98. package/fesm2022/provoly-dashboard-pipeline-components-filter.mjs.map +1 -1
  99. package/fesm2022/provoly-dashboard-pipeline-components-input-datasource.mjs +2 -2
  100. package/fesm2022/provoly-dashboard-pipeline-components-input-datasource.mjs.map +1 -1
  101. package/fesm2022/provoly-dashboard-pipeline-components-output-dataset.mjs +2 -2
  102. package/fesm2022/provoly-dashboard-pipeline-components-output-dataset.mjs.map +1 -1
  103. package/fesm2022/provoly-dashboard-presentation.mjs +14 -14
  104. package/fesm2022/provoly-dashboard-presentation.mjs.map +1 -1
  105. package/fesm2022/provoly-dashboard-restitution.mjs +39 -31
  106. package/fesm2022/provoly-dashboard-restitution.mjs.map +1 -1
  107. package/fesm2022/provoly-dashboard-search.mjs +8 -8
  108. package/fesm2022/provoly-dashboard-search.mjs.map +1 -1
  109. package/fesm2022/provoly-dashboard-supervision.mjs +2 -2
  110. package/fesm2022/provoly-dashboard-supervision.mjs.map +1 -1
  111. package/fesm2022/provoly-dashboard-toolbox.mjs +22 -21
  112. package/fesm2022/provoly-dashboard-toolbox.mjs.map +1 -1
  113. package/fesm2022/provoly-dashboard-tooltips-attribute.mjs +7 -1
  114. package/fesm2022/provoly-dashboard-tooltips-attribute.mjs.map +1 -1
  115. package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs +7 -6
  116. package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs.map +1 -1
  117. package/fesm2022/provoly-dashboard-widgets-widget-chart.mjs +2 -3
  118. package/fesm2022/provoly-dashboard-widgets-widget-chart.mjs.map +1 -1
  119. package/fesm2022/provoly-dashboard-widgets-widget-graph.mjs +2 -2
  120. package/fesm2022/provoly-dashboard-widgets-widget-graph.mjs.map +1 -1
  121. package/fesm2022/provoly-dashboard-widgets-widget-map.mjs +15 -7
  122. package/fesm2022/provoly-dashboard-widgets-widget-map.mjs.map +1 -1
  123. package/fesm2022/provoly-dashboard-widgets-widget-table.mjs +6 -6
  124. package/fesm2022/provoly-dashboard-widgets-widget-table.mjs.map +1 -1
  125. package/fesm2022/provoly-dashboard-widgets-widget-tile.mjs +2 -2
  126. package/fesm2022/provoly-dashboard-widgets-widget-tile.mjs.map +1 -1
  127. package/fesm2022/provoly-dashboard.mjs +245 -90
  128. package/fesm2022/provoly-dashboard.mjs.map +1 -1
  129. package/filters/autocomplete/autocomplete.component.d.ts +1 -0
  130. package/filters/autocomplete/autocomplete.module.d.ts +1 -1
  131. package/filters/autocomplete/style/_m-autocomplete.scss +16 -3
  132. package/lib/core/components/ellipsis.directive.d.ts +11 -0
  133. package/lib/core/components/select/select.component.d.ts +39 -19
  134. package/lib/core/components/select/select.module.d.ts +4 -5
  135. package/lib/core/components/translate-id/translate-id.pipe.d.ts +1 -3
  136. package/lib/core/core.module.d.ts +15 -14
  137. package/lib/core/i18n/en.translations.d.ts +4 -2
  138. package/lib/core/i18n/fr.translations.d.ts +5 -2
  139. package/lib/core/model/display-options.interface.d.ts +11 -0
  140. package/lib/core/model/manifest.interface.d.ts +1 -5
  141. package/lib/core/public-api.d.ts +1 -0
  142. package/lib/dashboard/components/widgets/header/widget-header.component.d.ts +2 -5
  143. package/lib/dashboard/filter/style/_o-pry-filter-group.scss +0 -11
  144. package/lib/dashboard/store/dashboard.effects.d.ts +0 -1
  145. package/lib/dashboard/store/dashboard.selectors.d.ts +0 -9
  146. package/package.json +1 -2
  147. package/presentation/style/_o-pry-new-presentation.scss +0 -7
  148. package/presentation/style/_o-pry-presentation.scss +20 -55
  149. package/restitution/components/restitution-catalog/restitution-catalog.component.d.ts +1 -1
  150. package/restitution/i18n/en.translations.d.ts +1 -1
  151. package/restitution/i18n/fr.translations.d.ts +3 -3
  152. package/schematics/migration.json +6 -1
  153. package/schematics/ng-update/version-0-20/index.d.ts +2 -0
  154. package/schematics/ng-update/version-0-20/index.js +19 -0
  155. package/schematics/ng-update/version-0-20/index.js.map +1 -0
  156. package/styles/components/_a-pry-select.scss +34 -10
  157. package/styles/components/_a-tooltip.scss +2 -2
  158. package/styles/components/_m-filter.scss +11 -20
  159. package/styles/components/_o-dashboard.scss +4 -0
  160. package/styles/components/_o-draggable-menu.scss +1 -1
  161. package/styles/components/_o-widget.scss +2 -2
  162. package/styles/main.scss +0 -1
  163. package/styles-theme/abstracts-theme/variables/_variables-typo.scss +9 -0
  164. package/styles-theme/components-theme/_a-pry-select.theme.scss +23 -96
  165. package/styles-theme/components-theme/_a-tooltip.theme.scss +2 -2
  166. package/styles-theme/components-theme/_o-pry-composed-condition.theme.scss +0 -12
  167. package/toolbox/components/toolbox.component.d.ts +1 -0
  168. package/tooltips/attribute/attribute-tooltip.component.d.ts +1 -0
  169. package/widgets/widget-chart/component/widget-chart.component.d.ts +0 -1
  170. package/widgets/widget-map/component/widget-map.component.d.ts +2 -0
  171. package/widgets/widget-map/i18n/en.translations.d.ts +1 -0
  172. package/widgets/widget-map/i18n/fr.translations.d.ts +1 -0
  173. package/widgets/widget-map/style/_o-layer-legend.scss +21 -0
@@ -1,5 +1,5 @@
1
1
  import { Component, EventEmitter, Input, Output } from '@angular/core';
2
- import { ClassActions, ClassSelectors, ConfigActions, DataSourceActions, DEFAULT_RESTITUTION_ICON_URL, FieldActions, LibraryTypes, PryVisibilityType, SearchActions, SubscriptionnerDirective } from '@provoly/dashboard';
2
+ import { ClassActions, ClassSelectors, ConfigActions, DashboardActions, DataSourceActions, 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";
@@ -58,6 +58,24 @@ export class PryRestitutionComponent extends SubscriptionnerDirective {
58
58
  if (this.selectedRestitution) {
59
59
  if (!this.edit) {
60
60
  this.consultMode = true;
61
+ this.store.dispatch(DashboardActions.updateDisplayOptions({ mode: ViewMode.CONSULT }));
62
+ }
63
+ else {
64
+ this.store.dispatch(DashboardActions.updateDisplayOptions({
65
+ mode: ViewMode.CUSTOM,
66
+ customDisplay: {
67
+ ...getDisplayOptions(ViewMode.EDITION),
68
+ widgetContextMenu: {
69
+ datasourceSelection: false,
70
+ parameters: true,
71
+ window: false,
72
+ maximize: false,
73
+ addToCatalog: false,
74
+ delete: false,
75
+ changeSpot: false
76
+ }
77
+ }
78
+ }));
61
79
  }
62
80
  this.customManifest = JSON.parse(this.selectedRestitution.content);
63
81
  if (Array.isArray(this.customManifest.datasource)) {
@@ -87,15 +105,6 @@ export class PryRestitutionComponent extends SubscriptionnerDirective {
87
105
  }));
88
106
  });
89
107
  this.customManifest = JSON.parse(this.selectedRestitution.content);
90
- this.customManifest.header = {
91
- datasourceSelection: false,
92
- parameters: true,
93
- window: false,
94
- maximize: false,
95
- addToCatalog: false,
96
- delete: false,
97
- changeSpot: false
98
- };
99
108
  this.form = {
100
109
  selectedWidget: this.customManifest.type,
101
110
  selectedDataSources: (this.customManifest.datasource ?? []),
@@ -134,15 +143,7 @@ export class PryRestitutionComponent extends SubscriptionnerDirective {
134
143
  title: this.form.title,
135
144
  datasource: this.form.selectedDataSources ?? [],
136
145
  cover: this.form.cover ?? false,
137
- header: {
138
- datasourceSelection: false,
139
- parameters: true,
140
- window: false,
141
- maximize: false,
142
- addToCatalog: false,
143
- delete: false,
144
- changeSpot: false
145
- },
146
+ header: true,
146
147
  options: {
147
148
  ...widgetType?.manifest.options,
148
149
  title: this.form.title
@@ -190,11 +191,11 @@ export class PryRestitutionComponent extends SubscriptionnerDirective {
190
191
  this.restitutionCreated.emit();
191
192
  }
192
193
  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 }); }
193
- 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_title' : '@pry.restitution.create_title') | 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 class=\"a-pry-select\"\n [itemsAsOption]=\"true\"\n [items]=\"types$ | async\"\n [labelTranslate]=\"true\"\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.broadcast' | 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.broadcast' | 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: ["labelTranslate", "baseTranslate", "translationFn", "translationFnArgs", "clearable", "multiple", "multipleClearRight", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "items", "itemsAsOption", "bindData", "bindValue", "bindLabel", "bindIcon", "iconSize", "templateLabel", "templateOption", "autocomplete"] }, { 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" }] }); }
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", "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" }] }); }
194
195
  }
195
196
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryRestitutionComponent, decorators: [{
196
197
  type: Component,
197
- 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_title' : '@pry.restitution.create_title') | 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 class=\"a-pry-select\"\n [itemsAsOption]=\"true\"\n [items]=\"types$ | async\"\n [labelTranslate]=\"true\"\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.broadcast' | 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.broadcast' | 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" }]
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" }]
198
199
  }], ctorParameters: function () { return [{ type: i1.ToolboxManifestService }, { type: i2.Store }, { type: i1.ToolboxMenuService }]; }, propDecorators: { selectedRestitution: [{
199
200
  type: Input
200
201
  }], edit: [{
@@ -206,4 +207,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
206
207
  }], bindId: [{
207
208
  type: Input
208
209
  }] } });
209
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdGl0dXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvcmVzdGl0dXRpb24vY29tcG9uZW50cy9yZXN0aXR1dGlvbi9yZXN0aXR1dGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9yZXN0aXR1dGlvbi9jb21wb25lbnRzL3Jlc3RpdHV0aW9uL3Jlc3RpdHV0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0UsT0FBTyxFQUdMLFlBQVksRUFDWixjQUFjLEVBQ2QsYUFBYSxFQUViLGlCQUFpQixFQUNqQiw0QkFBNEIsRUFDNUIsWUFBWSxFQUNaLFlBQVksRUFFWixpQkFBaUIsRUFDakIsYUFBYSxFQUNiLHdCQUF3QixFQUt6QixNQUFNLG9CQUFvQixDQUFDO0FBRTVCLE9BQU8sRUFBRSxHQUFHLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7OztBQU8xQixNQUFNLE9BQU8sdUJBQXdCLFNBQVEsd0JBQXdCO0lBaUNuRSxZQUNVLHNCQUE4QyxFQUM5QyxLQUFZLEVBQ1osa0JBQXNDO1FBRTlDLEtBQUssRUFBRSxDQUFDO1FBSkEsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQUM5QyxVQUFLLEdBQUwsS0FBSyxDQUFPO1FBQ1osdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQWpDaEQsbUJBQWMsR0FBbUI7WUFDL0IsSUFBSSxFQUFFLFFBQVE7WUFDZCxNQUFNLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFF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OytCQUNFLGlCQUFpQjtrS0EwQmxCLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0ksa0JBQWtCO3NCQUEzQixNQUFNO2dCQUdFLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7XG4gIENhdGFsb2dFbnRyeSxcbiAgQ2xhc3MsXG4gIENsYXNzQWN0aW9ucyxcbiAgQ2xhc3NTZWxlY3RvcnMsXG4gIENvbmZpZ0FjdGlvbnMsXG4gIERhdGFTb3VyY2UsXG4gIERhdGFTb3VyY2VBY3Rpb25zLFxuICBERUZBVUxUX1JFU1RJVFVUSU9OX0lDT05fVVJMLFxuICBGaWVsZEFjdGlvbnMsXG4gIExpYnJhcnlUeXBlcyxcbiAgUHJ5VmlzaWJpbGl0eSxcbiAgUHJ5VmlzaWJpbGl0eVR5cGUsXG4gIFNlYXJjaEFjdGlvbnMsXG4gIFN1YnNjcmlwdGlvbm5lckRpcmVjdGl2ZSxcbiAgVG9vbGJveE1hbmlmZXN0U2VydmljZSxcbiAgVG9vbGJveE1lbnVTZXJ2aWNlLFxuICBXaWRnZXQsXG4gIFdpZGdldE1hbmlmZXN0XG59IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZCc7XG5pbXBvcnQgeyBQcnlTdGVwcGVyQ29tcG9uZW50IH0gZnJvbSAnQHByb3ZvbHkvZGFzaGJvYXJkL2NvbXBvbmVudHMvc3RlcHBlcic7XG5pbXBvcnQgeyBtYXAsIE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHY0IH0gZnJvbSAndXVpZCc7XG5pbXBvcnQgeyBSZXN0aXR1dGlvbkZvcm0gfSBmcm9tICcuLi8uLi9tb2RlbC9yZXN0aXR1dGlvbi5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ByeS1yZXN0aXR1dGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9yZXN0aXR1dGlvbi5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgUHJ5UmVzdGl0dXRpb25Db21wb25lbnQgZXh0ZW5kcyBTdWJzY3JpcHRpb25uZXJEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xuICB0eXBlcyQ6IE9ic2VydmFibGU8eyBpY29uOiBzdHJpbmc7IGxhYmVsOiBzdHJpbmc7IHR5cGU6IHN0cmluZzsgbWFuaWZlc3Q6IFdpZGdldE1hbmlmZXN0IH1bXT47XG4gIGNsYXNzZXMkOiBPYnNlcnZhYmxlPENsYXNzW10+O1xuICBjdXN0b21NYW5pZmVzdDogV2lkZ2V0TWFuaWZlc3QgPSB7XG4gICAgdHlwZTogJ2RldGFpbCcsXG4gICAgbGF5b3V0OiB7IHg6IDEsIHk6IDEsIHdpZHRoOiAxLCBoZWlnaHQ6IDEgfSxcbiAgICBvcHRpb25zOiB7IGl0ZW1JZHM6IFtdIGFzIHN0cmluZ1tdIH1cbiAgfTtcbiAgZm9ybTogUmVzdGl0dXRpb25Gb3JtID0ge1xuICAgIHNlbGVjdGVkV2lkZ2V0OiAnJyxcbiAgICBzZWxlY3RlZERhdGFTb3VyY2VzOiBbXSxcbiAgICB0aXRsZTogJycsXG4gICAgaW1hZ2U6IERFRkFVTFRfUkVTVElUVVRJT05fSUNPTl9VUkwsXG4gICAgZGVzY3JpcHRpb246ICcnLFxuICAgIGNvdmVyOiBmYWxzZVxuICB9O1xuICB2aXNpYmlsaXR5OiBQcnlWaXNpYmlsaXR5ID0ge1xuICAgIHR5cGU6IFByeVZpc2liaWxpdHlUeXBlLlBSSVZBVEUsXG4gICAgdXNlcnM6IFtdXG4gIH07XG4gIG9wZW5TZXR0aW5ncyQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICB1c2VycyQ6IE9ic2VydmFibGU8YW55W10+IHwgbnVsbCA9IG51bGw7XG4gIGNvbnN1bHRNb2RlOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNlbGVjdGVkUmVzdGl0dXRpb246IFdpZGdldCB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBlZGl0OiBib29sZWFuID0gdHJ1ZTtcbiAgQE91dHB1dCgpIHJlc3RpdHV0aW9uQ3JlYXRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgd2lkZ2V0c0xpc3QkOiBPYnNlcnZhYmxlPENhdGFsb2dFbnRyeVtdPjtcbiAgdHlwZTogTGlicmFyeVR5cGVzID0gTGlicmFyeVR5cGVzLklMTFVTVFJBVElPTjtcbiAgQElucHV0KCkgaXNEYXRhU291cmNlU2VsZWN0ZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgYmluZElkOiBhbnk7XG4gIGltYWdlOiBzdHJpbmcgPSBERUZBVUxUX1JFU1RJVFVUSU9OX0lDT05fVVJMO1xuICB3aWRnZXRUeXBlczogeyBpY29uOiBzdHJpbmc7IGxhYmVsOiBzdHJpbmc7IHR5cGU6IHN0cmluZzsgbWFuaWZlc3Q6IFdpZGdldE1hbmlmZXN0IH1bXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgdG9vbGJveE1hbmlmZXN0U2VydmljZTogVG9vbGJveE1hbmlmZXN0U2VydmljZSxcbiAgICBwcml2YXRlIHN0b3JlOiBTdG9yZSxcbiAgICBwcml2YXRlIHRvb2xib3hNZW51U2VydmljZTogVG9vbGJveE1lbnVTZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChEYXRhU291cmNlQWN0aW9ucy5sb2FkKCkpO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQ2xhc3NBY3Rpb25zLmxvYWQoKSk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChDb25maWdBY3Rpb25zLmxvYWRDdXN0b21pemF0aW9uKCkpO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRmllbGRBY3Rpb25zLmxvYWQoKSk7XG5cbiAgICB0aGlzLnR5cGVzJCA9IHRoaXMudG9vbGJveE1lbnVTZXJ2aWNlLnR5cGVzJC5waXBlKFxuICAgICAgbWFwKCh0eXBlKSA9PiB0eXBlLmZpbHRlcigoZmlsdGVyZWRUeXBlKSA9PiBmaWx0ZXJlZFR5cGUudHlwZSAhPT0gJ2RldGFpbCcpKVxuICAgICk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZCh0aGlzLnR5cGVzJC5zdWJzY3JpYmUoKHR5cGVzKSA9PiAodGhpcy53aWRnZXRUeXBlcyA9IHR5cGVzKSkpO1xuICAgIHRoaXMuY2xhc3NlcyQgPSB0aGlzLnN0b3JlLnNlbGVjdChDbGFzc1NlbGVjdG9ycy5jbGFzc2VzKTtcbiAgICB0aGlzLndpZGdldHNMaXN0JCA9IHRoaXMudG9vbGJveE1lbnVTZXJ2aWNlLm1lbnVTdHJ1Y3R1cmUkLnBpcGUoXG4gICAgICBtYXAoKG1lbnUpID0+XG4gICAgICAgIG1lbnVcbiAgICAgICAgICAubWFwKChpdGVtcykgPT4gWy4uLml0ZW1zLnN1Yi5maWx0ZXIoKHMpID0+IHRoaXMudG9vbGJveE1hbmlmZXN0U2VydmljZS5pc01vZGVsKHMudHlwZSkpXSlcbiAgICAgICAgICAucmVkdWNlKChhY2MsIGl0ZW1zKSA9PiBbLi4uYWNjLCAuLi5pdGVtc10sIFtdKVxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zZWxlY3RlZFJlc3RpdHV0aW9uKSB7XG4gICAgICBpZiAoIXRoaXMuZWRpdCkge1xuICAgICAgICB0aGlzLmNvbnN1bHRNb2RlID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIHRoaXMuY3VzdG9tTWFuaWZlc3QgPSBKU09OLnBhcnNlKHRoaXMuc2VsZWN0ZWRSZXN0aXR1dGlvbi5jb250ZW50KTtcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMuY3VzdG9tTWFuaWZlc3QuZGF0YXNvdXJjZSkpIHtcbiAgICAgICAgdGhpcy5jdXN0b21NYW5pZmVzdC5kYXRhc291cmNlLmZvckVhY2goKGRhdGFTb3VyY2U6IHN0cmluZykgPT4ge1xuICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICAgICAgICBTZWFyY2hBY3Rpb25zLmdldERhdGFzb3VyY2VJdGVtcyh7XG4gICAgICAgICAgICAgIGlkOiBkYXRhU291cmNlLFxuICAgICAgICAgICAgICBleGNsdWRlR2VvOiB0aGlzLmN1c3RvbU1hbmlmZXN0LnR5cGUgPT09ICdtYXAnLFxuICAgICAgICAgICAgICBmcm9tOiAnUHJ5UmVzdGl0dXRpb25Db21wb25lbnQubmdPbkluaXQoKS0xJ1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICAgICAgU2VhcmNoQWN0aW9ucy5nZXREYXRhc291cmNlSXRlbXMoe1xuICAgICAgICAgICAgaWQ6IHRoaXMuY3VzdG9tTWFuaWZlc3QuZGF0YXNvdXJjZSBhcyBzdHJpbmcsXG4gICAgICAgICAgICBleGNsdWRlR2VvOiB0aGlzLmN1c3RvbU1hbmlmZXN0LnR5cGUgPT09ICdtYXAnLFxuICAgICAgICAgICAgZnJvbTogJ1ByeVJlc3RpdHV0aW9uQ29tcG9uZW50Lm5nT25Jbml0KCktMidcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRSZXN0aXR1dGlvbi52aXNpYmlsaXR5KSB7XG4gICAgICAgIHRoaXMudmlzaWJpbGl0eSA9IHRoaXMuc2VsZWN0ZWRSZXN0aXR1dGlvbi52aXNpYmlsaXR5O1xuICAgICAgfVxuICAgICAgdGhpcy5mb3JtLnNlbGVjdGVkRGF0YVNvdXJjZXMuZm9yRWFjaCgoZGF0YVNvdXJjZTogc3RyaW5nKSA9PiB7XG4gICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICAgICAgU2VhcmNoQWN0aW9ucy5nZXREYXRhc291cmNlSXRlbXMoe1xuICAgICAgICAgICAgaWQ6IGRhdGFTb3VyY2UsXG4gICAgICAgICAgICBleGNsdWRlR2VvOiB0aGlzLmN1c3RvbU1hbmlmZXN0LnR5cGUgPT09ICdtYXAnLFxuICAgICAgICAgICAgZnJvbTogJ1ByeVJlc3RpdHV0aW9uQ29tcG9uZW50Lm5nT25Jbml0KCktMydcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgICB0aGlzLmN1c3RvbU1hbmlmZXN0ID0gSlNPTi5wYXJzZSh0aGlzLnNlbGVjdGVkUmVzdGl0dXRpb24uY29udGVudCk7XG4gICAgICB0aGlzLmN1c3RvbU1hbmlmZXN0LmhlYWRlciA9IHtcbiAgICAgICAgZGF0YXNvdXJjZVNlbGVjdGlvbjogZmFsc2UsXG4gICAgICAgIHBhcmFtZXRlcnM6IHRydWUsXG4gICAgICAgIHdpbmRvdzogZmFsc2UsXG4gICAgICAgIG1heGltaXplOiBmYWxzZSxcbiAgICAgICAgYWRkVG9DYXRhbG9nOiBmYWxzZSxcbiAgICAgICAgZGVsZXRlOiBmYWxzZSxcbiAgICAgICAgY2hhbmdlU3BvdDogZmFsc2VcbiAgICAgIH07XG4gICAgICB0aGlzLmZvcm0gPSB7XG4gICAgICAgIHNlbGVjdGVkV2lkZ2V0OiB0aGlzLmN1c3RvbU1hbmlmZXN0LnR5cGUsXG4gICAgICAgIHNlbGVjdGVkRGF0YVNvdXJjZXM6ICh0aGlzLmN1c3RvbU1hbmlmZXN0LmRhdGFzb3VyY2UgPz8gW10pIGFzIHN0cmluZ1tdLFxuICAgICAgICB0aXRsZTogdGhpcy5zZWxlY3RlZFJlc3RpdHV0aW9uLm5hbWUsXG4gICAgICAgIGNvdmVyOiB0aGlzLnNlbGVjdGVkUmVzdGl0dXRpb24uY292ZXIsXG4gICAgICAgIC4uLnRoaXMuc2VsZWN0ZWRSZXN0aXR1dGlvblxuICAgICAgfTtcbiAgICB9XG4gICAgdGhpcy5pbWFnZSA9IHRoaXMuc2VsZWN0ZWRSZXN0aXR1dGlvbj8uaW1hZ2UgPz8gREVGQVVMVF9SRVNUSVRVVElPTl9JQ09OX1VSTDtcbiAgfVxuXG4gIGNhbmNlbChzdGVwcGVyOiBQcnlTdGVwcGVyQ29tcG9uZW50KSB7XG4gICAgdGhpcy5mb3JtLnNlbGVjdGVkV2lkZ2V0ID0gJyc7XG4gICAgdGhpcy5mb3JtLnNlbGVjdGVkRGF0YVNvdXJjZXMgPSBbXTtcbiAgICB0aGlzLmZvcm0udGl0bGUgPSAnJztcbiAgICB0aGlzLmZvcm0uZGVzY3JpcHRpb24gPSAnJztcbiAgICB0aGlzLmZvcm0uaW1hZ2UgPSAnJztcbiAgICB0aGlzLmZvcm0uY292ZXIgPSBmYWxzZTtcbiAgICBpZiAodGhpcy5jb25zdWx0TW9kZSB8fCB0aGlzLnNlbGVjdGVkUmVzdGl0dXRpb24pIHtcbiAgICAgIHRoaXMucmVzdGl0dXRpb25DcmVhdGVkLmVtaXQoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5wcmV2KHN0ZXBwZXIpO1xuICB9XG5cbiAgZGF0YXNvdXJjZXNDaGFuZ2VkKCRldmVudDogRGF0YVNvdXJjZVtdKSB7XG4gICAgdGhpcy5mb3JtLnNlbGVjdGVkRGF0YVNvdXJjZXMgPSAoJGV2ZW50ID8/IFtdKS5tYXAoKGRzKSA9PiBkcy5pZCk7XG4gIH1cblxuICBzdWJtaXQoc3RlcHBlcjogUHJ5U3RlcHBlckNvbXBvbmVudCkge1xuICAgIGlmICh0aGlzLmNvbnN1bHRNb2RlKSB7XG4gICAgICB0aGlzLmdvTmV4dChzdGVwcGVyKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB3aWRnZXRUeXBlID0gdGhpcy53aWRnZXRUeXBlcy5maW5kKCh3aWRnZXRUeXBlKSA9PiB3aWRnZXRUeXBlLnR5cGUgPT09IHRoaXMuZm9ybS5zZWxlY3RlZFdpZGdldCk7XG5cbiAgICB0aGlzLmN1c3RvbU1hbmlmZXN0ID0ge1xuICAgICAgLi4udGhpcy5jdXN0b21NYW5pZmVzdCxcbiAgICAgIHR5cGU6IHRoaXMuZm9ybS5zZWxlY3RlZFdpZGdldCxcbiAgICAgIHRpdGxlOiB0aGlzLmZvcm0udGl0bGUsXG4gICAgICBkYXRhc291cmNlOiB0aGlzLmZvcm0uc2VsZWN0ZWREYXRhU291cmNlcyA/PyBbXSxcbiAgICAgIGNvdmVyOiB0aGlzLmZvcm0uY292ZXIgPz8gZmFsc2UsXG4gICAgICBoZWFkZXI6IHtcbiAgICAgICAgZGF0YXNvdXJjZVNlbGVjdGlvbjogZmFsc2UsXG4gICAgICAgIHBhcmFtZXRlcnM6IHRydWUsXG4gICAgICAgIHdpbmRvdzogZmFsc2UsXG4gICAgICAgIG1heGltaXplOiBmYWxzZSxcbiAgICAgICAgYWRkVG9DYXRhbG9nOiBmYWxzZSxcbiAgICAgICAgZGVsZXRlOiBmYWxzZSxcbiAgICAgICAgY2hhbmdlU3BvdDogZmFsc2VcbiAgICAgIH0sXG4gICAgICBvcHRpb25zOiB7XG4gICAgICAgIC4uLndpZGdldFR5cGU/Lm1hbmlmZXN0Lm9wdGlvbnMsXG4gICAgICAgIHRpdGxlOiB0aGlzLmZvcm0udGl0bGVcbiAgICAgIH1cbiAgICB9O1xuICAgIHRoaXMuZm9ybS5zZWxlY3RlZERhdGFTb3VyY2VzLmZvckVhY2goKG5hbWVRdWVyeTogc3RyaW5nKSA9PiB7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgICBTZWFyY2hBY3Rpb25zLmdldERhdGFzb3VyY2VJdGVtcyh7XG4gICAgICAgICAgaWQ6IG5hbWVRdWVyeSxcbiAgICAgICAgICBleGNsdWRlR2VvOiB0aGlzLmN1c3RvbU1hbmlmZXN0LnR5cGUgPT09ICdtYXAnLFxuICAgICAgICAgIGZyb206ICdQcnlSZXN0aXR1dGlvbkNvbXBvbmVudC5zdWJtaXQoKSdcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfSk7XG4gICAgdGhpcy5nb05leHQoc3RlcHBlcik7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLm9wZW5TZXR0aW5ncyQubmV4dCgpO1xuICAgIH0sIDE1MCk7XG4gIH1cblxuICBnb05leHQoc3RlcHBlcjogUHJ5U3RlcHBlckNvbXBvbmVudCkge1xuICAgIHN0ZXBwZXIubmV4dCgpO1xuICB9XG5cbiAgcHJldihzdGVwcGVyOiBQcnlTdGVwcGVyQ29tcG9uZW50KSB7XG4gICAgc3RlcHBlci5wcmV2KCk7XG4gIH1cblxuICB1cGRhdGVNYW5pZmVzdCgkZXZlbnQ6IHsgd2lkZ2V0SW5kZXg6IG51bWJlcjsgbWFuaWZlc3Q6IFdpZGdldE1hbmlmZXN0IH0pIHtcbiAgICB0aGlzLmN1c3RvbU1hbmlmZXN0ID0gJGV2ZW50Lm1hbmlmZXN0O1xuICB9XG5cbiAgbGFzdFN0ZXBDb21wbGV0ZWQoKSB7XG4gICAgdGhpcy5mb3JtLmltYWdlID0gdGhpcy5pbWFnZTtcbiAgICBpZiAodGhpcy5lZGl0KSB7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgICBDb25maWdBY3Rpb25zLnNhdmVXaWRnZXQoe1xuICAgICAgICAgIHdpZGdldDoge1xuICAgICAgICAgICAgaWQ6IHRoaXMuc2VsZWN0ZWRSZXN0aXR1dGlvbj8uaWQgPz8gdjQoKSxcbiAgICAgICAgICAgIGNvbnRlbnQ6IEpTT04uc3RyaW5naWZ5KHRoaXMuY3VzdG9tTWFuaWZlc3QpLFxuICAgICAgICAgICAgbmFtZTogdGhpcy5mb3JtLnRpdGxlLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IHRoaXMuZm9ybS5kZXNjcmlwdGlvbixcbiAgICAgICAgICAgIGltYWdlOiB0aGlzLmZvcm0uaW1hZ2UgPz8gJycsXG4gICAgICAgICAgICB2aXNpYmlsaXR5OiB0aGlzLnZpc2liaWxpdHksXG4gICAgICAgICAgICBkYXRhc291cmNlOiB0aGlzLmZvcm0uc2VsZWN0ZWREYXRhU291cmNlcyA/PyBbXSxcbiAgICAgICAgICAgIGNvdmVyOiB0aGlzLmZvcm0uY292ZXIgPz8gZmFsc2UsXG4gICAgICAgICAgICBtb2RpZmljYXRpb25EYXRlOiAnJ1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfVxuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQ29uZmlnQWN0aW9ucy5sb2FkV2lkZ2V0cygpKTtcbiAgICB0aGlzLnJlc3RpdHV0aW9uQ3JlYXRlZC5lbWl0KCk7XG4gIH1cbn1cbiIsIjxwcnktcmVzdGl0dXRpb24tY3NzPjwvcHJ5LXJlc3RpdHV0aW9uLWNzcz5cbjxkaXYgY2xhc3M9XCJvLXJlc3RpdHV0aW9uXCI+XG4gIDxoMyBjbGFzcz1cImEtaDIgby1yZXN0aXR1dGlvbl9fdGl0bGVcIj5cbiAgICB7eyAoY29uc3VsdE1vZGUgPyAnQHByeS5yZXN0aXR1dGlvbi5jb25zdWx0X3RpdGxlJyA6ICdAcHJ5LnJlc3RpdHV0aW9uLmNyZWF0ZV90aXRsZScpIHwgaTE4biB9fVxuICA8L2gzPlxuICA8cHJ5LXN0ZXBwZXIgI3N0ZXBwZXIgW2lzQ29uc3VsdE1vZGVdPVwiY29uc3VsdE1vZGUgfHwgZWRpdFwiIChsYXN0U3RlcENvbXBsZXRlZCk9XCJsYXN0U3RlcENvbXBsZXRlZCgpXCI+XG4gICAgPHByeS1zdGVwPlxuICAgICAgPGg0IGNsYXNzPVwibS1zdGVwcGVyLWl0ZW1fX3RpdGxlXCIgKnN0ZXBUaXRsZT57eyAnQHByeS5yZXN0aXR1dGlvbi5jb25maWd1cmUnIHwgaTE4biB9fTwvaDQ+XG4gICAgICA8ZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkXCI+XG4gICAgICAgICAgPGxhYmVsIGZvcj1cInJlc3RpdHV0aW9uXCIgY2xhc3M9XCJhLWxhYmVsXCI+e3sgJ0BwcnkucmVzdGl0dXRpb24ucmVzdGl0dXRpb25fdHlwZScgfCBpMThuIH19PC9sYWJlbD5cbiAgICAgICAgICA8cHJ5LXNlbGVjdFxuICAgICAgICAgICAgaWQ9XCJyZXN0aXR1dGlvblwiXG4gICAgICAgICAgICBjbGFzcz1cImEtcHJ5LXNlbGVjdFwiXG4gICAgICAgICAgICBbaXRlbXNBc09wdGlvbl09XCJ0cnVlXCJcbiAgICAgICAgICAgIFtpdGVtc109XCJ0eXBlcyQgfCBhc3luY1wiXG4gICAgICAgICAgICBbbGFiZWxUcmFuc2xhdGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZvcm0uc2VsZWN0ZWRXaWRnZXRcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImNvbnN1bHRNb2RlXCJcbiAgICAgICAgICAgIGJpbmRJY29uPVwiaWNvblwiXG4gICAgICAgICAgICBiaW5kTGFiZWw9XCJsYWJlbFwiXG4gICAgICAgICAgICBiaW5kVmFsdWU9XCJ0eXBlXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgPC9wcnktc2VsZWN0PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiAqbmdJZj1cImZvcm0uc2VsZWN0ZWRXaWRnZXQgIT09ICcnXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZFwiPlxuICAgICAgICAgICAgPGxhYmVsIGZvcj1cImdyYXBoVGl0bGVcIiBjbGFzcz1cImEtbGFiZWxcIj57eyAnQHByeS5yZXN0aXR1dGlvbi5ncmFwaF90aXRsZScgfCBpMThuIH19PC9sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICBuYW1lPVwidGl0bGVcIlxuICAgICAgICAgICAgICBpZD1cImdyYXBoVGl0bGVcIlxuICAgICAgICAgICAgICBjbGFzcz1cImEtZm9ybS1maWVsZFwiXG4gICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZm9ybS50aXRsZVwiXG4gICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImNvbnN1bHRNb2RlXCJcbiAgICAgICAgICAgICAgbWF4bGVuZ3RoPVwiMzBcIlxuICAgICAgICAgICAgICBuZ0RlZmF1bHRDb250cm9sXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtLWZvcm0tbGFiZWwtZmllbGRcIj5cbiAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJkZXNjcmlwdGlvblwiIGNsYXNzPVwiYS1sYWJlbFwiPnt7ICdAcHJ5LnJlc3RpdHV0aW9uLmRlc2NyaXB0aW9uJyB8IGkxOG4gfX08L2xhYmVsPlxuICAgICAgICAgICAgPHRleHRhcmVhXG4gICAgICAgICAgICAgIG5hbWU9XCJkZXNjcmlwdGlvblwiXG4gICAgICAgICAgICAgIGlkPVwiZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICBjbGFzcz1cImEtZm9ybS1maWVsZFwiXG4gICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZm9ybS5kZXNjcmlwdGlvblwiXG4gICAgICAgICAgICAgIHN0eWxlPVwicmVzaXplOiBub25lXCJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImNvbnN1bHRNb2RlXCJcbiAgICAgICAgICAgICAgbWF4bGVuZ3RoPVwiMjU1XCJcbiAgICAgICAgICAgICAgbmdEZWZhdWx0Q29udHJvbFxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC90ZXh0YXJlYT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkIC13aWR0aC1mdWxsXCI+XG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJhLWxhYmVsXCI+e3sgJ0BwcnkucHJlc2VudGF0aW9uLmZvcm0uaW1hZ2UnIHwgaTE4biB9fTwvbGFiZWw+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiby1maWxlLWlucHV0XCI+XG4gICAgICAgICAgICAgIDxwcnktc2VsZWN0LWltYWdlIChjaGFuZ2VkKT1cImltYWdlID0gJGV2ZW50XCIgW2ljb25VcmxdPVwiaW1hZ2VcIiBbbW9kZV09XCJ0eXBlXCI+PC9wcnktc2VsZWN0LWltYWdlPlxuICAgICAgICAgICAgICA8cHJ5LWNoZWNrYm94IFsobmdNb2RlbCldPVwiZm9ybS5jb3ZlclwiIG5hbWU9XCJjb3ZlclwiPiB7eyAnQHByeS5yZXN0aXR1dGlvbi5jb3ZlcicgfCBpMThuIH19PC9wcnktY2hlY2tib3g+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibS1idG4tZ3JvdXAgLXNwYWNlLWV2ZW5seSBhY3Rpb25zXCI+XG4gICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJjYW5jZWwoc3RlcHBlcilcIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tc2Vjb25kYXJ5XCI+XG4gICAgICAgICAgICAgIHt7ICdAcHJ5LnJlc3RpdHV0aW9uLmNsb3NlJyB8IGkxOG4gfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAoY2xpY2spPVwiZ29OZXh0KHN0ZXBwZXIpXCJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImZvcm0uc2VsZWN0ZWRXaWRnZXQgPT09ICcnIHx8IGZvcm0udGl0bGUudHJpbSgpLmxlbmd0aCA9PT0gMFwiXG4gICAgICAgICAgICAgIGNsYXNzPVwiYS1idG4gYS1idG4tLXByaW1hcnlcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyAnQHByeS5yZXN0aXR1dGlvbi52YWxpZGF0ZScgfCBpMThuIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L3ByeS1zdGVwPlxuICAgIDxwcnktc3RlcD5cbiAgICAgIDxoNCBjbGFzcz1cIm0tc3RlcHBlci1pdGVtX190aXRsZVwiICpzdGVwVGl0bGU+e3sgJ0BwcnkucmVzdGl0dXRpb24uZGF0YVNvdXJjZScgfCBpMThuIH19PC9oND5cbiAgICAgIDxwcnktZGF0YXNvdXJjZS1zZWxlY3RvclxuICAgICAgICAoY2FuY2VsKT1cInByZXYoc3RlcHBlcilcIlxuICAgICAgICAodmFsaWRhdGVkKT1cInN1Ym1pdChzdGVwcGVyKVwiXG4gICAgICAgIChkYXRhc291cmNlc0NoYW5nZWQpPVwiZGF0YXNvdXJjZXNDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICBbZGF0YXNvdXJjZUlkc109XCJmb3JtLnNlbGVjdGVkRGF0YVNvdXJjZXNcIlxuICAgICAgPjwvcHJ5LWRhdGFzb3VyY2Utc2VsZWN0b3I+XG4gICAgPC9wcnktc3RlcD5cbiAgICA8cHJ5LXN0ZXA+XG4gICAgICA8aDQgY2xhc3M9XCJtLXN0ZXBwZXItaXRlbV9fdGl0bGVcIiAqc3RlcFRpdGxlPnt7ICdAcHJ5LnJlc3RpdHV0aW9uLnZpc3VhbGl6ZScgfCBpMThuIH19PC9oND5cbiAgICAgIDxkaXYgY2xhc3M9XCJ3aWRnZXQtaW5zdGFuY2lhdG9yXCI+XG4gICAgICAgIDxwcnktd2lkZ2V0LWluc3RhbmNpYXRvclxuICAgICAgICAgIFtzdGFuZGFsb25lXT1cInRydWVcIlxuICAgICAgICAgIFtzdGF0aWNNYW5pZmVzdF09XCJjdXN0b21NYW5pZmVzdFwiXG4gICAgICAgICAgW29wZW4kXT1cIm9wZW5TZXR0aW5ncyRcIlxuICAgICAgICAgIChtYW5pZmVzdE1vZGlmaWVkKT1cInVwZGF0ZU1hbmlmZXN0KCRldmVudClcIlxuICAgICAgICA+PC9wcnktd2lkZ2V0LWluc3RhbmNpYXRvcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cIm0tYnRuLWdyb3VwIC1zcGFjZS1ldmVubHkgYWN0aW9uc1wiICpuZ0lmPVwiIWNvbnN1bHRNb2RlOyBlbHNlIGNvbnN1bHRcIj5cbiAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwicHJldihzdGVwcGVyKVwiIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImEtYnRuIGEtYnRuLS1zZWNvbmRhcnlcIj5cbiAgICAgICAgICB7eyAnQHByeS5yZXN0aXR1dGlvbi5jbG9zZScgfCBpMThuIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIChjbGljayk9XCJnb05leHQoc3RlcHBlcilcIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tcHJpbWFyeVwiPlxuICAgICAgICAgIHt7ICdAcHJ5LnJlc3RpdHV0aW9uLnZhbGlkYXRlJyB8IGkxOG4gfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L3ByeS1zdGVwPlxuICAgIDxwcnktc3RlcD5cbiAgICAgIDxoNCBjbGFzcz1cIm0tc3RlcHBlci1pdGVtX190aXRsZVwiICpzdGVwVGl0bGU+e3sgJ0BwcnkucmVzdGl0dXRpb24uYnJvYWRjYXN0JyB8IGkxOG4gfX08L2g0PlxuICAgICAgPGRpdiBjbGFzcz1cIlwiPlxuICAgICAgICA8aDM+e3sgJ0BwcnkucmVzdGl0dXRpb24uYWNjZXNzJyB8IGkxOG4gfX08L2gzPlxuICAgICAgICB7eyAnQHByeS5yZXN0aXR1dGlvbi5jaG9pY2UnIHwgaTE4biB9fVxuICAgICAgICA8dWw+XG4gICAgICAgICAgPGxpPlxuICAgICAgICAgICAge3sgJ0BwcnkucmVzdGl0dXRpb24ucHVibGljJyB8IGkxOG4gfX1cbiAgICAgICAgICA8L2xpPlxuICAgICAgICA8L3VsPlxuICAgICAgICB7eyAnQHByeS5yZXN0aXR1dGlvbi5vcicgfCBpMThuIH19XG4gICAgICAgIDx1bD5cbiAgICAgICAgICA8bGk+XG4gICAgICAgICAgICB7eyAnQHByeS5yZXN0aXR1dGlvbi5wcml2YXRlJyB8IGkxOG4gfX1cbiAgICAgICAgICA8L2xpPlxuICAgICAgICA8L3VsPlxuICAgICAgPC9kaXY+XG4gICAgICA8cHJ5LXNoYXJlXG4gICAgICAgIFsobmdNb2RlbCldPVwidmlzaWJpbGl0eVwiXG4gICAgICAgIFt1c2VycyRdPVwidXNlcnMkXCJcbiAgICAgICAgbGFiZWxQcm9wZXJ0eT1cIm5hbWVcIlxuICAgICAgICB2YWx1ZVByb3BlcnR5PVwiaWRcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiY29uc3VsdE1vZGVcIlxuICAgICAgPjwvcHJ5LXNoYXJlPlxuICAgICAgPGRpdiBjbGFzcz1cIm0tYnRuLWdyb3VwIC1zcGFjZS1ldmVubHkgYWN0aW9uc1wiICpuZ0lmPVwiIWNvbnN1bHRNb2RlOyBlbHNlIGNvbnN1bHRcIj5cbiAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwicHJldihzdGVwcGVyKVwiIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImEtYnRuIGEtYnRuLS1zZWNvbmRhcnlcIj5cbiAgICAgICAgICB7eyAnQHByeS5yZXN0aXR1dGlvbi5jbG9zZScgfCBpMThuIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIChjbGljayk9XCJnb05leHQoc3RlcHBlcilcIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tcHJpbWFyeVwiPlxuICAgICAgICAgIHt7ICdAcHJ5LnJlc3RpdHV0aW9uLmJyb2FkY2FzdCcgfCBpMThuIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9wcnktc3RlcD5cbiAgPC9wcnktc3RlcHBlcj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI2NvbnN1bHQ+XG4gIDxkaXYgY2xhc3M9XCJtLWJ0bi1ncm91cCAtc3BhY2UtZXZlbmx5IGFjdGlvbnNcIj5cbiAgICA8YnV0dG9uIChjbGljayk9XCJwcmV2KHN0ZXBwZXIpXCIgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYS1idG4gYS1idG4tLXNlY29uZGFyeVwiPlxuICAgICAge3sgJ0BwcnkucmVzdGl0dXRpb24uY2xvc2UnIHwgaTE4biB9fVxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b24gKGNsaWNrKT1cImdvTmV4dChzdGVwcGVyKVwiIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImEtYnRuIGEtYnRuLS1wcmltYXJ5XCI+XG4gICAgICB7eyAnQHByeS5yZXN0aXR1dGlvbi5uZXh0JyB8IGkxOG4gfX1cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNub0RhdGFzb3VyY2U+XG4gIDxwIGNsYXNzPVwic2VhcmNoLWhvbWVfX2NvbnRhaW5lci1zZWFyY2hcIj57eyAnQHByeS5yZXN0aXR1dGlvbi5ub0RhdGFTb3VyY2UnIHwgaTE4biB9fTwvcD5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
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
@@ -2,7 +2,7 @@ import { OverlayConfig } from '@angular/cdk/overlay';
2
2
  import { Component, TemplateRef, ViewChild } from '@angular/core';
3
3
  import { ConfigActions, ConfigSelectors, PryVisibilityType, ViewMode } from '@provoly/dashboard';
4
4
  import { BehaviorSubject, combineLatest, map } from 'rxjs';
5
- import { TemplatePortal } from "@angular/cdk/portal";
5
+ import { TemplatePortal } from '@angular/cdk/portal';
6
6
  import * as i0 from "@angular/core";
7
7
  import * as i1 from "@ngrx/store";
8
8
  import * as i2 from "@angular/cdk/overlay";
@@ -52,16 +52,23 @@ export class PryRestitutionCatalogComponent {
52
52
  this.overlayRef?.dispose();
53
53
  this.overlayRef = undefined;
54
54
  }
55
- toggleModalActions(restitution) {
55
+ toggleModalActions(restitution, moreButton) {
56
56
  if (!this.overlayRef && restitution) {
57
57
  this.selectedRestitution = restitution;
58
58
  this.overlayRef = this.overlay.create(new OverlayConfig({
59
59
  hasBackdrop: true,
60
- panelClass: ['o-modal-wrapper'],
60
+ panelClass: ['m-context-menu-wrapper'],
61
61
  backdropClass: 'backdrop'
62
62
  }));
63
63
  this.overlayRef.backdropClick().subscribe(() => this.toggleModalActions(restitution));
64
64
  this.overlayRef.attach(new TemplatePortal(this.templateActions, this.viewContainerRef));
65
+ const contextMenu = document.querySelector('div.m-context-menu');
66
+ if (!!contextMenu && moreButton) {
67
+ const toggleActionsModalButton = document.querySelector('#' + moreButton.id);
68
+ const rect = toggleActionsModalButton?.getBoundingClientRect();
69
+ contextMenu.style.left = (rect?.left ?? 0) - (contextMenu?.clientWidth ?? 0) + 23 + 'px';
70
+ contextMenu.style.top = (rect?.top ?? 0) + 25 + 'px';
71
+ }
65
72
  }
66
73
  else {
67
74
  this.overlayRef?.dispose();
@@ -70,13 +77,13 @@ export class PryRestitutionCatalogComponent {
70
77
  }
71
78
  }
72
79
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryRestitutionCatalogComponent, deps: [{ token: i1.Store }, { token: i2.Overlay }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); }
73
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PryRestitutionCatalogComponent, selector: "pry-restitution-catalog", viewQueries: [{ propertyName: "templateActions", first: true, predicate: ["modalActions"], descendants: true, read: TemplateRef }], ngImport: i0, template: "<pry-restitution-css></pry-restitution-css>\n<div class=\"o-manifest-layout o-restitution-catalog\">\n <ng-template [ngIf]=\"selectedMode === mode.CATALOG\">\n <div class=\"o-manifest-layout__toolbox\">\n <button\n type=\"button\"\n (click)=\"selectMode(mode.CREATION)\"\n class=\"a-btn a-btn--primary a-tooltip\"\n [attr.data-tooltip]=\"'@pry.restitution.create_title' | i18n\"\n *pryAccess=\"{ module: 'dashboard', page: 'restitution', action: 'create' }\"\n >\n {{ '@pry.restitution.create_title' | i18n }}\n </button>\n <div>\n <div class=\"o-catalog__search\">\n <label id=\"catalog-search-label\" for=\"catalog-search\" class=\"u-visually-hidden\">\n <span>{{ '@pry.toolbox.catalog.filter.name' | i18n }}</span>\n </label>\n <input\n id=\"catalog-search\"\n type=\"text\"\n class=\"a-form-field\"\n [placeholder]=\"'@pry.restitution.search' | i18n\"\n [ngModel]=\"search$ | async\"\n (ngModelChange)=\"this.search$.next($event)\"\n />\n\n <pry-icon iconSvg=\"search\" [width]=\"17\" [height]=\"17\"></pry-icon>\n </div>\n </div>\n </div>\n <div class=\"o-manifest-layout__content\">\n <h1 class=\"a-h1\">{{ '@pry.restitution.catalog' | i18n }}</h1>\n\n <div class=\"o-presentation-wrapper\">\n <ul class=\"o-presentation\">\n <li class=\"o-presentation__item\" *ngFor=\"let restitution of filteredRestitution$ | async\">\n <div class=\"o-presentation__item__header\">\n <ng-container *ngIf=\"restitution.visibility?.type === PryVisibilityType.PRIVATE\">\n <pry-icon\n iconSvg=\"private\"\n class=\"is-private a-tooltip\"\n [attr.data-tooltip]=\"'@pry.restitution.lock' | i18n\"\n [height]=\"17\"\n [width]=\"17\"\n ></pry-icon>\n </ng-container>\n <div\n class=\"a-tooltip\"\n (click)=\"selectRestitution(restitution)\"\n [attr.data-tooltip]=\"'@pry.restitution.consult_title' | i18n\"\n >\n <div class=\"o-presentation__item__image\">\n <img\n alt=\"\"\n [height]=\"restitution.cover ? 600 : 128\"\n [width]=\"restitution.cover ? 600 : 128\"\n [class.is-full-width]=\"restitution.cover\"\n [src]=\"restitution.image | getSecuredImage : [600, 600] | async\"\n class=\"pointer\"\n />\n </div>\n </div>\n <ng-container *ngIf=\"restitution.visibility?.type === PryVisibilityType.PRIVATE\">\n <div class=\"more-actions\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--more a-tooltip\"\n [attr.data-tooltip]=\"'@pry.restitution.more' | i18n\"\n (click)=\"toggleModalActions(restitution)\"\n >\n <pry-icon [height]=\"25\" [width]=\"25\" iconSvg=\"more_horiz\"></pry-icon>\n </button>\n </div>\n </ng-container>\n </div>\n <div\n class=\"o-presentation__item__txt a-tooltip\"\n (click)=\"selectRestitution(restitution)\"\n [attr.data-tooltip]=\"'@pry.restitution.consult_title' | i18n\"\n >\n <h3 class=\"a-h3\">{{ restitution.name }}</h3>\n <p class=\"a-p -date\">{{ restitution.modificationDate | sinceDate }}</p>\n </div>\n\n <div\n class=\"o-presentation__item__footer a-tooltip\"\n (click)=\"selectRestitution(restitution)\"\n [attr.data-tooltip]=\"'@pry.restitution.consult_title' | i18n\"\n >\n <button class=\"a-btn\">\n {{ '@pry.restitution.view' | i18n }}\n <pry-icon [width]=\"20\" [height]=\"20\" iconSvg=\"arrow_right\"></pry-icon>\n </button>\n </div>\n </li>\n </ul>\n </div>\n </div>\n </ng-template>\n <ng-template #modalActions>\n <div\n class=\"o-modal\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog presenation options\"\n *ngIf=\"selectedRestitution\"\n >\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">{{ '@pry.restitution.options' | i18n }}</h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"toggleModalActions(selectedRestitution)\">\n <pry-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n <ul class=\"actions-list\">\n <li>\n <button\n type=\"button\"\n class=\"a-btn a-btn icon-only a-tooltip\"\n [attr.data-tooltip]=\"'@pry.restitution.update' | i18n\"\n (click)=\"editRestitution(selectedRestitution)\"\n *pryAccess=\"{ module: 'dashboard', page: 'restitution', action: 'edit' }\"\n >\n <pry-icon iconSvg=\"edit\"></pry-icon>\n </button>\n </li>\n <li>\n <button\n type=\"button\"\n class=\"a-btn a-btn icon-only a-tooltip\"\n [attr.data-tooltip]=\"'@pry.restitution.delete' | i18n\"\n (click)=\"deleteRestitution(selectedRestitution.id)\"\n *pryAccess=\"{ module: 'dashboard', page: 'restitution', action: 'delete' }\"\n >\n <pry-icon iconSvg=\"delete\"></pry-icon>\n </button>\n </li>\n </ul>\n </div>\n </ng-template>\n <ng-template [ngIf]=\"selectedMode === mode.CONSULT\">\n <div class=\"o-manifest-layout__toolbox\">\n <button type=\"button\" (click)=\"selectMode(mode.CATALOG)\" class=\"a-btn a-btn--primary\">\n {{ '@pry.restitution.backToCatalog' | i18n }}\n </button>\n </div>\n <div class=\"o-manifest-layout__content\">\n <pry-restitution\n [selectedRestitution]=\"selectedRestitution\"\n [edit]=\"false\"\n (restitutionCreated)=\"closeRestitution($event)\"\n class=\"restitution\"\n ></pry-restitution>\n </div>\n </ng-template>\n <ng-template [ngIf]=\"selectedMode === mode.CREATION\">\n <div class=\"o-manifest-layout__toolbox\">\n <button type=\"button\" (click)=\"selectMode(mode.CATALOG)\" class=\"a-btn a-btn--primary\">\n {{ '@pry.restitution.backToCatalog' | i18n }}\n </button>\n </div>\n <div class=\"o-manifest-layout__content\">\n <pry-restitution (restitutionCreated)=\"closeRestitution($event)\" class=\"restitution\"></pry-restitution>\n </div>\n </ng-template>\n <ng-template [ngIf]=\"selectedMode === mode.EDITION\">\n <div class=\"o-manifest-layout__toolbox\">\n <button type=\"button\" (click)=\"selectMode(mode.CATALOG)\" class=\"a-btn a-btn--primary\">\n {{ '@pry.restitution.backToCatalog' | i18n }}\n </button>\n </div>\n <div class=\"o-manifest-layout__content\">\n <pry-restitution\n (restitutionCreated)=\"closeRestitution($event)\"\n [selectedRestitution]=\"selectedRestitution\"\n class=\"restitution\"\n ></pry-restitution>\n </div>\n </ng-template>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.PryAccessDirective, selector: "[pryAccess]", inputs: ["pryAccess"] }, { kind: "component", type: i4.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: i5.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: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i6.PryRestitutionComponent, selector: "pry-restitution", inputs: ["selectedRestitution", "edit", "isDataSourceSelected", "bindId"], outputs: ["restitutionCreated"] }, { kind: "component", type: i7.PryCatalogCssComponent, selector: "pry-restitution-css" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.GetSecuredImagePipe, name: "getSecuredImage" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }, { kind: "pipe", type: i8.PrySinceDatePipe, name: "sinceDate" }] }); }
80
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PryRestitutionCatalogComponent, selector: "pry-restitution-catalog", viewQueries: [{ propertyName: "templateActions", first: true, predicate: ["modalActions"], descendants: true, read: TemplateRef }], ngImport: i0, template: "<pry-restitution-css></pry-restitution-css>\n<div class=\"o-manifest-layout o-restitution-catalog\">\n <ng-template [ngIf]=\"selectedMode === mode.CATALOG\">\n <div class=\"o-manifest-layout__toolbox\">\n <button\n type=\"button\"\n (click)=\"selectMode(mode.CREATION)\"\n class=\"a-btn a-btn--primary a-tooltip\"\n [attr.data-tooltip]=\"'@pry.restitution.create' | i18n\"\n *pryAccess=\"{ module: 'dashboard', page: 'restitution', action: 'create' }\"\n >\n {{ '@pry.restitution.create' | i18n }}\n </button>\n <div>\n <div class=\"o-catalog__search\">\n <label id=\"catalog-search-label\" for=\"catalog-search\" class=\"u-visually-hidden\">\n <span>{{ '@pry.toolbox.catalog.filter.name' | i18n }}</span>\n </label>\n <input\n id=\"catalog-search\"\n type=\"text\"\n class=\"a-form-field\"\n [placeholder]=\"'@pry.restitution.search' | i18n\"\n [ngModel]=\"search$ | async\"\n (ngModelChange)=\"this.search$.next($event)\"\n />\n\n <pry-icon iconSvg=\"search\" [width]=\"17\" [height]=\"17\"></pry-icon>\n </div>\n </div>\n </div>\n <div class=\"o-manifest-layout__content\">\n <h1 class=\"a-h1\">{{ '@pry.restitution.catalog' | i18n }}</h1>\n\n <div class=\"o-presentation-wrapper\">\n <ul class=\"o-presentation\">\n <li class=\"o-presentation__item\" *ngFor=\"let restitution of filteredRestitution$ | async; let index = index\">\n <div class=\"o-presentation__item__header\">\n <ng-container *ngIf=\"restitution.visibility?.type === PryVisibilityType.PRIVATE\">\n <pry-icon\n iconSvg=\"private\"\n class=\"is-private a-tooltip\"\n [attr.data-tooltip]=\"'@pry.restitution.lock' | i18n\"\n [height]=\"17\"\n [width]=\"17\"\n ></pry-icon>\n </ng-container>\n <div\n class=\"a-tooltip\"\n (click)=\"selectRestitution(restitution)\"\n [attr.data-tooltip]=\"'@pry.restitution.consult_title' | i18n\"\n >\n <div class=\"o-presentation__item__image\">\n <img\n alt=\"\"\n [height]=\"restitution.cover ? 600 : 128\"\n [width]=\"restitution.cover ? 600 : 128\"\n [class.is-full-width]=\"restitution.cover\"\n [src]=\"restitution.image | getSecuredImage : [600, 600] | async\"\n class=\"pointer\"\n />\n </div>\n </div>\n <ng-container *ngIf=\"restitution.visibility?.type === PryVisibilityType.PRIVATE\">\n <div class=\"more-actions\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--more a-tooltip\"\n [id]=\"'more-actions-' + index\"\n [attr.data-tooltip]=\"'@pry.restitution.more' | i18n\"\n (click)=\"toggleModalActions(restitution, button)\"\n #button\n >\n <pry-icon [height]=\"25\" [width]=\"25\" iconSvg=\"more_horiz\"></pry-icon>\n </button>\n </div>\n </ng-container>\n </div>\n <div\n class=\"o-presentation__item__txt a-tooltip\"\n (click)=\"selectRestitution(restitution)\"\n [attr.data-tooltip]=\"'@pry.restitution.consult_title' | i18n\"\n >\n <h3 class=\"a-h3\">{{ restitution.name }}</h3>\n <p class=\"a-p -date\">{{ restitution.modificationDate | sinceDate }}</p>\n </div>\n\n <div\n class=\"o-presentation__item__footer a-tooltip\"\n (click)=\"selectRestitution(restitution)\"\n [attr.data-tooltip]=\"'@pry.restitution.consult_title' | i18n\"\n >\n <button class=\"a-btn\">\n {{ '@pry.restitution.view' | i18n }}\n <pry-icon [width]=\"20\" [height]=\"20\" iconSvg=\"arrow_right\"></pry-icon>\n </button>\n </div>\n </li>\n </ul>\n </div>\n </div>\n </ng-template>\n <ng-template #modalActions>\n <div class=\"m-context-menu\">\n <ul\n *ngIf=\"selectedRestitution\"\n class=\"m-context-menu__list\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog restitution options\"\n >\n <li class=\"m-context-menu__list__item\">\n <button\n class=\"a-btn -link-like\"\n (click)=\"editRestitution(selectedRestitution)\"\n [disabled]=\"!selectedRestitution.owner\"\n *pryAccess=\"{ module: 'dashboard', page: 'restitution', action: 'edit' }\"\n >\n {{ '@pry.restitution.update' | i18n }}\n </button>\n </li>\n <li class=\"m-context-menu__list__item\">\n <button\n class=\"a-btn -link-like\"\n #openModal\n (click)=\"deleteRestitution(selectedRestitution.id)\"\n [disabled]=\"!selectedRestitution.owner\"\n *pryAccess=\"{ module: 'dashboard', page: 'restitution', action: 'delete' }\"\n >\n {{ '@pry.restitution.delete' | i18n }}\n </button>\n </li>\n </ul>\n </div>\n </ng-template>\n\n <ng-template [ngIf]=\"selectedMode === mode.CONSULT\">\n <div class=\"o-manifest-layout__toolbox\">\n <button type=\"button\" (click)=\"selectMode(mode.CATALOG)\" class=\"a-btn a-btn--primary\">\n {{ '@pry.restitution.backToCatalog' | i18n }}\n </button>\n </div>\n <div class=\"o-manifest-layout__content\">\n <pry-restitution\n [selectedRestitution]=\"selectedRestitution\"\n [edit]=\"false\"\n (restitutionCreated)=\"closeRestitution($event)\"\n class=\"restitution\"\n ></pry-restitution>\n </div>\n </ng-template>\n <ng-template [ngIf]=\"selectedMode === mode.CREATION\">\n <div class=\"o-manifest-layout__toolbox\">\n <button type=\"button\" (click)=\"selectMode(mode.CATALOG)\" class=\"a-btn a-btn--primary\">\n {{ '@pry.restitution.backToCatalog' | i18n }}\n </button>\n </div>\n <div class=\"o-manifest-layout__content\">\n <pry-restitution (restitutionCreated)=\"closeRestitution($event)\" [edit]=\"false\" class=\"restitution\"></pry-restitution>\n </div>\n </ng-template>\n <ng-template [ngIf]=\"selectedMode === mode.EDITION\">\n <div class=\"o-manifest-layout__toolbox\">\n <button type=\"button\" (click)=\"selectMode(mode.CATALOG)\" class=\"a-btn a-btn--primary\">\n {{ '@pry.restitution.backToCatalog' | i18n }}\n </button>\n </div>\n <div class=\"o-manifest-layout__content\">\n <pry-restitution\n (restitutionCreated)=\"closeRestitution($event)\"\n [selectedRestitution]=\"selectedRestitution\"\n class=\"restitution\"\n ></pry-restitution>\n </div>\n </ng-template>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.PryAccessDirective, selector: "[pryAccess]", inputs: ["pryAccess"] }, { kind: "component", type: i4.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: i5.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: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i6.PryRestitutionComponent, selector: "pry-restitution", inputs: ["selectedRestitution", "edit", "isDataSourceSelected", "bindId"], outputs: ["restitutionCreated"] }, { kind: "component", type: i7.PryCatalogCssComponent, selector: "pry-restitution-css" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.GetSecuredImagePipe, name: "getSecuredImage" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }, { kind: "pipe", type: i8.PrySinceDatePipe, name: "sinceDate" }] }); }
74
81
  }
75
82
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryRestitutionCatalogComponent, decorators: [{
76
83
  type: Component,
77
- args: [{ selector: 'pry-restitution-catalog', template: "<pry-restitution-css></pry-restitution-css>\n<div class=\"o-manifest-layout o-restitution-catalog\">\n <ng-template [ngIf]=\"selectedMode === mode.CATALOG\">\n <div class=\"o-manifest-layout__toolbox\">\n <button\n type=\"button\"\n (click)=\"selectMode(mode.CREATION)\"\n class=\"a-btn a-btn--primary a-tooltip\"\n [attr.data-tooltip]=\"'@pry.restitution.create_title' | i18n\"\n *pryAccess=\"{ module: 'dashboard', page: 'restitution', action: 'create' }\"\n >\n {{ '@pry.restitution.create_title' | i18n }}\n </button>\n <div>\n <div class=\"o-catalog__search\">\n <label id=\"catalog-search-label\" for=\"catalog-search\" class=\"u-visually-hidden\">\n <span>{{ '@pry.toolbox.catalog.filter.name' | i18n }}</span>\n </label>\n <input\n id=\"catalog-search\"\n type=\"text\"\n class=\"a-form-field\"\n [placeholder]=\"'@pry.restitution.search' | i18n\"\n [ngModel]=\"search$ | async\"\n (ngModelChange)=\"this.search$.next($event)\"\n />\n\n <pry-icon iconSvg=\"search\" [width]=\"17\" [height]=\"17\"></pry-icon>\n </div>\n </div>\n </div>\n <div class=\"o-manifest-layout__content\">\n <h1 class=\"a-h1\">{{ '@pry.restitution.catalog' | i18n }}</h1>\n\n <div class=\"o-presentation-wrapper\">\n <ul class=\"o-presentation\">\n <li class=\"o-presentation__item\" *ngFor=\"let restitution of filteredRestitution$ | async\">\n <div class=\"o-presentation__item__header\">\n <ng-container *ngIf=\"restitution.visibility?.type === PryVisibilityType.PRIVATE\">\n <pry-icon\n iconSvg=\"private\"\n class=\"is-private a-tooltip\"\n [attr.data-tooltip]=\"'@pry.restitution.lock' | i18n\"\n [height]=\"17\"\n [width]=\"17\"\n ></pry-icon>\n </ng-container>\n <div\n class=\"a-tooltip\"\n (click)=\"selectRestitution(restitution)\"\n [attr.data-tooltip]=\"'@pry.restitution.consult_title' | i18n\"\n >\n <div class=\"o-presentation__item__image\">\n <img\n alt=\"\"\n [height]=\"restitution.cover ? 600 : 128\"\n [width]=\"restitution.cover ? 600 : 128\"\n [class.is-full-width]=\"restitution.cover\"\n [src]=\"restitution.image | getSecuredImage : [600, 600] | async\"\n class=\"pointer\"\n />\n </div>\n </div>\n <ng-container *ngIf=\"restitution.visibility?.type === PryVisibilityType.PRIVATE\">\n <div class=\"more-actions\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--more a-tooltip\"\n [attr.data-tooltip]=\"'@pry.restitution.more' | i18n\"\n (click)=\"toggleModalActions(restitution)\"\n >\n <pry-icon [height]=\"25\" [width]=\"25\" iconSvg=\"more_horiz\"></pry-icon>\n </button>\n </div>\n </ng-container>\n </div>\n <div\n class=\"o-presentation__item__txt a-tooltip\"\n (click)=\"selectRestitution(restitution)\"\n [attr.data-tooltip]=\"'@pry.restitution.consult_title' | i18n\"\n >\n <h3 class=\"a-h3\">{{ restitution.name }}</h3>\n <p class=\"a-p -date\">{{ restitution.modificationDate | sinceDate }}</p>\n </div>\n\n <div\n class=\"o-presentation__item__footer a-tooltip\"\n (click)=\"selectRestitution(restitution)\"\n [attr.data-tooltip]=\"'@pry.restitution.consult_title' | i18n\"\n >\n <button class=\"a-btn\">\n {{ '@pry.restitution.view' | i18n }}\n <pry-icon [width]=\"20\" [height]=\"20\" iconSvg=\"arrow_right\"></pry-icon>\n </button>\n </div>\n </li>\n </ul>\n </div>\n </div>\n </ng-template>\n <ng-template #modalActions>\n <div\n class=\"o-modal\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog presenation options\"\n *ngIf=\"selectedRestitution\"\n >\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">{{ '@pry.restitution.options' | i18n }}</h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"toggleModalActions(selectedRestitution)\">\n <pry-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n <ul class=\"actions-list\">\n <li>\n <button\n type=\"button\"\n class=\"a-btn a-btn icon-only a-tooltip\"\n [attr.data-tooltip]=\"'@pry.restitution.update' | i18n\"\n (click)=\"editRestitution(selectedRestitution)\"\n *pryAccess=\"{ module: 'dashboard', page: 'restitution', action: 'edit' }\"\n >\n <pry-icon iconSvg=\"edit\"></pry-icon>\n </button>\n </li>\n <li>\n <button\n type=\"button\"\n class=\"a-btn a-btn icon-only a-tooltip\"\n [attr.data-tooltip]=\"'@pry.restitution.delete' | i18n\"\n (click)=\"deleteRestitution(selectedRestitution.id)\"\n *pryAccess=\"{ module: 'dashboard', page: 'restitution', action: 'delete' }\"\n >\n <pry-icon iconSvg=\"delete\"></pry-icon>\n </button>\n </li>\n </ul>\n </div>\n </ng-template>\n <ng-template [ngIf]=\"selectedMode === mode.CONSULT\">\n <div class=\"o-manifest-layout__toolbox\">\n <button type=\"button\" (click)=\"selectMode(mode.CATALOG)\" class=\"a-btn a-btn--primary\">\n {{ '@pry.restitution.backToCatalog' | i18n }}\n </button>\n </div>\n <div class=\"o-manifest-layout__content\">\n <pry-restitution\n [selectedRestitution]=\"selectedRestitution\"\n [edit]=\"false\"\n (restitutionCreated)=\"closeRestitution($event)\"\n class=\"restitution\"\n ></pry-restitution>\n </div>\n </ng-template>\n <ng-template [ngIf]=\"selectedMode === mode.CREATION\">\n <div class=\"o-manifest-layout__toolbox\">\n <button type=\"button\" (click)=\"selectMode(mode.CATALOG)\" class=\"a-btn a-btn--primary\">\n {{ '@pry.restitution.backToCatalog' | i18n }}\n </button>\n </div>\n <div class=\"o-manifest-layout__content\">\n <pry-restitution (restitutionCreated)=\"closeRestitution($event)\" class=\"restitution\"></pry-restitution>\n </div>\n </ng-template>\n <ng-template [ngIf]=\"selectedMode === mode.EDITION\">\n <div class=\"o-manifest-layout__toolbox\">\n <button type=\"button\" (click)=\"selectMode(mode.CATALOG)\" class=\"a-btn a-btn--primary\">\n {{ '@pry.restitution.backToCatalog' | i18n }}\n </button>\n </div>\n <div class=\"o-manifest-layout__content\">\n <pry-restitution\n (restitutionCreated)=\"closeRestitution($event)\"\n [selectedRestitution]=\"selectedRestitution\"\n class=\"restitution\"\n ></pry-restitution>\n </div>\n </ng-template>\n</div>\n" }]
84
+ args: [{ selector: 'pry-restitution-catalog', template: "<pry-restitution-css></pry-restitution-css>\n<div class=\"o-manifest-layout o-restitution-catalog\">\n <ng-template [ngIf]=\"selectedMode === mode.CATALOG\">\n <div class=\"o-manifest-layout__toolbox\">\n <button\n type=\"button\"\n (click)=\"selectMode(mode.CREATION)\"\n class=\"a-btn a-btn--primary a-tooltip\"\n [attr.data-tooltip]=\"'@pry.restitution.create' | i18n\"\n *pryAccess=\"{ module: 'dashboard', page: 'restitution', action: 'create' }\"\n >\n {{ '@pry.restitution.create' | i18n }}\n </button>\n <div>\n <div class=\"o-catalog__search\">\n <label id=\"catalog-search-label\" for=\"catalog-search\" class=\"u-visually-hidden\">\n <span>{{ '@pry.toolbox.catalog.filter.name' | i18n }}</span>\n </label>\n <input\n id=\"catalog-search\"\n type=\"text\"\n class=\"a-form-field\"\n [placeholder]=\"'@pry.restitution.search' | i18n\"\n [ngModel]=\"search$ | async\"\n (ngModelChange)=\"this.search$.next($event)\"\n />\n\n <pry-icon iconSvg=\"search\" [width]=\"17\" [height]=\"17\"></pry-icon>\n </div>\n </div>\n </div>\n <div class=\"o-manifest-layout__content\">\n <h1 class=\"a-h1\">{{ '@pry.restitution.catalog' | i18n }}</h1>\n\n <div class=\"o-presentation-wrapper\">\n <ul class=\"o-presentation\">\n <li class=\"o-presentation__item\" *ngFor=\"let restitution of filteredRestitution$ | async; let index = index\">\n <div class=\"o-presentation__item__header\">\n <ng-container *ngIf=\"restitution.visibility?.type === PryVisibilityType.PRIVATE\">\n <pry-icon\n iconSvg=\"private\"\n class=\"is-private a-tooltip\"\n [attr.data-tooltip]=\"'@pry.restitution.lock' | i18n\"\n [height]=\"17\"\n [width]=\"17\"\n ></pry-icon>\n </ng-container>\n <div\n class=\"a-tooltip\"\n (click)=\"selectRestitution(restitution)\"\n [attr.data-tooltip]=\"'@pry.restitution.consult_title' | i18n\"\n >\n <div class=\"o-presentation__item__image\">\n <img\n alt=\"\"\n [height]=\"restitution.cover ? 600 : 128\"\n [width]=\"restitution.cover ? 600 : 128\"\n [class.is-full-width]=\"restitution.cover\"\n [src]=\"restitution.image | getSecuredImage : [600, 600] | async\"\n class=\"pointer\"\n />\n </div>\n </div>\n <ng-container *ngIf=\"restitution.visibility?.type === PryVisibilityType.PRIVATE\">\n <div class=\"more-actions\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--more a-tooltip\"\n [id]=\"'more-actions-' + index\"\n [attr.data-tooltip]=\"'@pry.restitution.more' | i18n\"\n (click)=\"toggleModalActions(restitution, button)\"\n #button\n >\n <pry-icon [height]=\"25\" [width]=\"25\" iconSvg=\"more_horiz\"></pry-icon>\n </button>\n </div>\n </ng-container>\n </div>\n <div\n class=\"o-presentation__item__txt a-tooltip\"\n (click)=\"selectRestitution(restitution)\"\n [attr.data-tooltip]=\"'@pry.restitution.consult_title' | i18n\"\n >\n <h3 class=\"a-h3\">{{ restitution.name }}</h3>\n <p class=\"a-p -date\">{{ restitution.modificationDate | sinceDate }}</p>\n </div>\n\n <div\n class=\"o-presentation__item__footer a-tooltip\"\n (click)=\"selectRestitution(restitution)\"\n [attr.data-tooltip]=\"'@pry.restitution.consult_title' | i18n\"\n >\n <button class=\"a-btn\">\n {{ '@pry.restitution.view' | i18n }}\n <pry-icon [width]=\"20\" [height]=\"20\" iconSvg=\"arrow_right\"></pry-icon>\n </button>\n </div>\n </li>\n </ul>\n </div>\n </div>\n </ng-template>\n <ng-template #modalActions>\n <div class=\"m-context-menu\">\n <ul\n *ngIf=\"selectedRestitution\"\n class=\"m-context-menu__list\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog restitution options\"\n >\n <li class=\"m-context-menu__list__item\">\n <button\n class=\"a-btn -link-like\"\n (click)=\"editRestitution(selectedRestitution)\"\n [disabled]=\"!selectedRestitution.owner\"\n *pryAccess=\"{ module: 'dashboard', page: 'restitution', action: 'edit' }\"\n >\n {{ '@pry.restitution.update' | i18n }}\n </button>\n </li>\n <li class=\"m-context-menu__list__item\">\n <button\n class=\"a-btn -link-like\"\n #openModal\n (click)=\"deleteRestitution(selectedRestitution.id)\"\n [disabled]=\"!selectedRestitution.owner\"\n *pryAccess=\"{ module: 'dashboard', page: 'restitution', action: 'delete' }\"\n >\n {{ '@pry.restitution.delete' | i18n }}\n </button>\n </li>\n </ul>\n </div>\n </ng-template>\n\n <ng-template [ngIf]=\"selectedMode === mode.CONSULT\">\n <div class=\"o-manifest-layout__toolbox\">\n <button type=\"button\" (click)=\"selectMode(mode.CATALOG)\" class=\"a-btn a-btn--primary\">\n {{ '@pry.restitution.backToCatalog' | i18n }}\n </button>\n </div>\n <div class=\"o-manifest-layout__content\">\n <pry-restitution\n [selectedRestitution]=\"selectedRestitution\"\n [edit]=\"false\"\n (restitutionCreated)=\"closeRestitution($event)\"\n class=\"restitution\"\n ></pry-restitution>\n </div>\n </ng-template>\n <ng-template [ngIf]=\"selectedMode === mode.CREATION\">\n <div class=\"o-manifest-layout__toolbox\">\n <button type=\"button\" (click)=\"selectMode(mode.CATALOG)\" class=\"a-btn a-btn--primary\">\n {{ '@pry.restitution.backToCatalog' | i18n }}\n </button>\n </div>\n <div class=\"o-manifest-layout__content\">\n <pry-restitution (restitutionCreated)=\"closeRestitution($event)\" [edit]=\"false\" class=\"restitution\"></pry-restitution>\n </div>\n </ng-template>\n <ng-template [ngIf]=\"selectedMode === mode.EDITION\">\n <div class=\"o-manifest-layout__toolbox\">\n <button type=\"button\" (click)=\"selectMode(mode.CATALOG)\" class=\"a-btn a-btn--primary\">\n {{ '@pry.restitution.backToCatalog' | i18n }}\n </button>\n </div>\n <div class=\"o-manifest-layout__content\">\n <pry-restitution\n (restitutionCreated)=\"closeRestitution($event)\"\n [selectedRestitution]=\"selectedRestitution\"\n class=\"restitution\"\n ></pry-restitution>\n </div>\n </ng-template>\n</div>\n" }]
78
85
  }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Overlay }, { type: i0.ViewContainerRef }]; }, propDecorators: { templateActions: [{
79
86
  type: ViewChild,
80
87
  args: ['modalActions', { read: TemplateRef }]
81
88
  }] } });
82
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdGl0dXRpb24tY2F0YWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9yZXN0aXR1dGlvbi9jb21wb25lbnRzL3Jlc3RpdHV0aW9uLWNhdGFsb2cvcmVzdGl0dXRpb24tY2F0YWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9yZXN0aXR1dGlvbi9jb21wb25lbnRzL3Jlc3RpdHV0aW9uLWNhdGFsb2cvcmVzdGl0dXRpb24tY2F0YWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVcsYUFBYSxFQUFjLE1BQU0sc0JBQXNCLENBQUM7QUFDMUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFvQixNQUFNLGVBQWUsQ0FBQztBQUVwRixPQUFPLEVBQ0wsYUFBYSxFQUNiLGVBQWUsRUFFZixpQkFBaUIsRUFDakIsUUFBUSxFQUVULE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7Ozs7OztBQU1yRCxNQUFNLE9BQU8sOEJBQThCO0lBWXpDLFlBQW9CLEtBQVksRUFBWSxPQUFnQixFQUFZLGdCQUFrQztRQUF0RixVQUFLLEdBQUwsS0FBSyxDQUFPO1FBQVksWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUFZLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFWMUcsWUFBTyxHQUFHLElBQUksZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRWxDLFNBQUksR0FBRyxRQUFRLENBQUM7UUFDaEIsaUJBQVksR0FBYSxRQUFRLENBQUMsT0FB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LE1BQU0sQ0FDbkMsSUFBSSxhQUFhLENBQUM7Z0JBQ2hCLFdBQVcsRUFBRSxJQUFJO2dCQUNqQixVQUFVLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztnQkFDL0IsYUFBYSxFQUFFLFVBQVU7YUFDMUIsQ0FBQyxDQUNILENBQUM7WUFDRixJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztZQUN0RixJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLGNBQWMsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7U0FDekY7YUFBTTtZQUNMLElBQUksQ0FBQyxVQUFVLEVBQUUsT0FBTyxFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUE7WUFDM0IsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQztTQUNqQztJQUNILENBQUM7K0dBL0VVLDhCQUE4QjttR0FBOUIsOEJBQThCLDJKQVVOLFdBQVcsNkJDNUJoRCxtalBBeUxBOzs0RkR2S2EsOEJBQThCO2tCQUoxQyxTQUFTOytCQUNFLHlCQUF5QjtpSkFhZSxlQUFlO3NCQUFoRSxTQUFTO3VCQUFDLGNBQWMsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPdmVybGF5LCBPdmVybGF5Q29uZmlnLCBPdmVybGF5UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7XG4gIENvbmZpZ0FjdGlvbnMsXG4gIENvbmZpZ1NlbGVjdG9ycywgRGFzaGJvYXJkQWN0aW9ucyxcbiAgTWFuaWZlc3REZXNjcmlwdGlvbixcbiAgUHJ5VmlzaWJpbGl0eVR5cGUsXG4gIFZpZXdNb2RlLFxuICBXaWRnZXRcbn0gZnJvbSAnQHByb3ZvbHkvZGFzaGJvYXJkJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgbWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBUZW1wbGF0ZVBvcnRhbCB9IGZyb20gXCJAYW5ndWxhci9jZGsvcG9ydGFsXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ByeS1yZXN0aXR1dGlvbi1jYXRhbG9nJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Jlc3RpdHV0aW9uLWNhdGFsb2cuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFByeVJlc3RpdHV0aW9uQ2F0YWxvZ0NvbXBvbmVudCB7XG4gIHJlc3RpdHV0aW9ucyQ6IE9ic2VydmFibGU8V2lkZ2V0W10+O1xuICBzZWFyY2gkID0gbmV3IEJlaGF2aW9yU3ViamVjdCgnJyk7XG4gIGZpbHRlcmVkUmVzdGl0dXRpb24kOiBPYnNlcnZhYmxlPFdpZGdldFtdPjtcbiAgbW9kZSA9IFZpZXdNb2RlO1xuICBzZWxlY3RlZE1vZGU6IFZpZXdNb2RlID0gVmlld01vZGUuQ0FUQUxPRztcbiAgc2VsZWN0ZWRSZXN0aXR1dGlvbjogV2lkZ2V0IHwgbnVsbCA9IG51bGw7XG4gIHJlc3RpdHV0aW9uPzogV2lkZ2V0O1xuICBQcnlWaXNpYmlsaXR5VHlwZSA9IFByeVZpc2liaWxpdHlUeXBlO1xuICBvdmVybGF5UmVmPzogT3ZlcmxheVJlZjtcbiAgQFZpZXdDaGlsZCgnbW9kYWxBY3Rpb25zJywgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KSB0ZW1wbGF0ZUFjdGlvbnMhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc3RvcmU6IFN0b3JlLCBwcm90ZWN0ZWQgb3ZlcmxheTogT3ZlcmxheSwgcHJvdGVjdGVkIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYpIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENvbmZpZ0FjdGlvbnMubG9hZFdpZGdldHMoKSk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChDb25maWdBY3Rpb25zLmdldE1hcFN0eWxlcygpKTtcblxuICAgIHRoaXMucmVzdGl0dXRpb25zJCA9IHRoaXMuc3RvcmVcbiAgICAgIC5zZWxlY3QoQ29uZmlnU2VsZWN0b3JzLmNhdGFsb2cpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChyZXN0aXR1dGlvbkxpc3QpID0+XG4gICAgICAgICAgWy4uLnJlc3RpdHV0aW9uTGlzdF0uc29ydCgoYSwgYikgPT5cbiAgICAgICAgICAgIGEubW9kaWZpY2F0aW9uRGF0ZSA/IGIubW9kaWZpY2F0aW9uRGF0ZS5sb2NhbGVDb21wYXJlKGEubW9kaWZpY2F0aW9uRGF0ZSkgOiAxXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICApO1xuICAgIHRoaXMuZmlsdGVyZWRSZXN0aXR1dGlvbiQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLnJlc3RpdHV0aW9ucyQsIHRoaXMuc2VhcmNoJF0pLnBpcGUoXG4gICAgICBtYXAoKFtyZXN0aXR1dGlvbnMsIHNlYXJjaF0pID0+XG4gICAgICAgIHJlc3RpdHV0aW9ucy5maWx0ZXIoXG4gICAgICAgICAgKHJlc3RpdHV0aW9uKSA9PiBzZWFyY2gubGVuZ3RoID09PSAwIHx8IHJlc3RpdHV0aW9uLm5hbWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2gudG9Mb3dlckNhc2UoKSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBzZWxlY3RNb2RlKG5ld01vZGU6IFZpZXdNb2RlKSB7XG4gICAgdGhpcy5zZWxlY3RlZE1vZGUgPSBuZXdNb2RlO1xuICB9XG5cbiAgc2VsZWN0UmVzdGl0dXRpb24ocmVzdGl0dXRpb246IFdpZGdldCkge1xuICAgIHRoaXMuc2VsZWN0ZWRSZXN0aXR1dGlvbiA9IHJlc3RpdHV0aW9uO1xuICAgIHRoaXMuc2VsZWN0TW9kZSh0aGlzLm1vZGUuQ09OU1VMVCk7XG4gICAgdGhpcy5zZWFyY2gkLm5leHQoJycpO1xuICB9XG5cbiAgY2xvc2VSZXN0aXR1dGlvbigkZXZlbnQ6IHZvaWQpIHtcbiAgICB0aGlzLnNlbGVjdGVkUmVzdGl0dXRpb24gPSBudWxsO1xuICAgIHRoaXMuc2VsZWN0TW9kZSh0aGlzLm1vZGUuQ0FUQUxPRyk7XG4gIH1cblxuICBkZWxldGVSZXN0aXR1dGlvbihpZDogc3RyaW5nKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChDb25maWdBY3Rpb25zLmNvbmZpcm1SZXN0aXR1dGlvbkRlbGV0aW9uKHsgaWQgfSkpO1xuICAgIHRoaXMudG9nZ2xlTW9kYWxBY3Rpb25zKClcbiAgfVxuXG4gIGVkaXRSZXN0aXR1dGlvbihyZXN0aXR1dGlvbjogV2lkZ2V0KSB7XG4gICAgdGhpcy5zZWxlY3RlZFJlc3RpdHV0aW9uID0gcmVzdGl0dXRpb247XG4gICAgdGhpcy5zZWxlY3RNb2RlKFZpZXdNb2RlLkVESVRJT04pO1xuICAgIHRoaXMuc2VhcmNoJC5uZXh0KCcnKTtcbiAgICB0aGlzLm92ZXJsYXlSZWY/LmRpc3Bvc2UoKTtcbiAgICB0aGlzLm92ZXJsYXlSZWYgPSB1bmRlZmluZWRcbiAgfVxuXG4gIHRvZ2dsZU1vZGFsQWN0aW9ucyhyZXN0aXR1dGlvbj86IFdpZGdldCApIHtcbiAgICBpZiAoIXRoaXMub3ZlcmxheVJlZiAmJiByZXN0aXR1dGlvbil7XG4gICAgICB0aGlzLnNlbGVjdGVkUmVzdGl0dXRpb24gPSByZXN0aXR1dGlvblxuICAgICAgdGhpcy5vdmVybGF5UmVmID0gdGhpcy5vdmVybGF5LmNyZWF0ZShcbiAgICAgICAgbmV3IE92ZXJsYXlDb25maWcoe1xuICAgICAgICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxuICAgICAgICAgIHBhbmVsQ2xhc3M6IFsnby1tb2RhbC13cmFwcGVyJ10sXG4gICAgICAgICAgYmFja2Ryb3BDbGFzczogJ2JhY2tkcm9wJ1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgICAgIHRoaXMub3ZlcmxheVJlZi5iYWNrZHJvcENsaWNrKCkuc3Vic2NyaWJlKCgpID0+IHRoaXMudG9nZ2xlTW9kYWxBY3Rpb25zKHJlc3RpdHV0aW9uKSk7XG4gICAgICB0aGlzLm92ZXJsYXlSZWYuYXR0YWNoKG5ldyBUZW1wbGF0ZVBvcnRhbCh0aGlzLnRlbXBsYXRlQWN0aW9ucywgdGhpcy52aWV3Q29udGFpbmVyUmVmKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub3ZlcmxheVJlZj8uZGlzcG9zZSgpO1xuICAgICAgdGhpcy5vdmVybGF5UmVmID0gdW5kZWZpbmVkXG4gICAgICB0aGlzLnNlbGVjdGVkUmVzdGl0dXRpb24gPSBudWxsO1xuICAgIH1cbiAgfVxuXG59XG4iLCI8cHJ5LXJlc3RpdHV0aW9uLWNzcz48L3ByeS1yZXN0aXR1dGlvbi1jc3M+XG48ZGl2IGNsYXNzPVwiby1tYW5pZmVzdC1sYXlvdXQgby1yZXN0aXR1dGlvbi1jYXRhbG9nXCI+XG4gIDxuZy10ZW1wbGF0ZSBbbmdJZl09XCJzZWxlY3RlZE1vZGUgPT09IG1vZGUuQ0FUQUxPR1wiPlxuICAgIDxkaXYgY2xhc3M9XCJvLW1hbmlmZXN0LWxheW91dF9fdG9vbGJveFwiPlxuICAgICAgPGJ1dHRvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgKGNsaWNrKT1cInNlbGVjdE1vZGUobW9kZS5DUkVBVElPTilcIlxuICAgICAgICBjbGFzcz1cImEtYnRuIGEtYnRuLS1wcmltYXJ5IGEtdG9vbHRpcFwiXG4gICAgICAgIFthdHRyLmRhdGEtdG9vbHRpcF09XCInQHByeS5yZXN0aXR1dGlvbi5jcmVhdGVfdGl0bGUnIHwgaTE4blwiXG4gICAgICAgICpwcnlBY2Nlc3M9XCJ7IG1vZHVsZTogJ2Rhc2hib2FyZCcsIHBhZ2U6ICdyZXN0aXR1dGlvbicsIGFjdGlvbjogJ2NyZWF0ZScgfVwiXG4gICAgICA+XG4gICAgICAgIHt7ICdAcHJ5LnJlc3RpdHV0aW9uLmNyZWF0ZV90aXRsZScgfCBpMThuIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJvLWNhdGFsb2dfX3NlYXJjaFwiPlxuICAgICAgICAgIDxsYWJlbCBpZD1cImNhdGFsb2ctc2VhcmNoLWxhYmVsXCIgZm9yPVwiY2F0YWxvZy1zZWFyY2hcIiBjbGFzcz1cInUtdmlzdWFsbHktaGlkZGVuXCI+XG4gICAgICAgICAgICA8c3Bhbj57eyAnQHByeS50b29sYm94LmNhdGFsb2cuZmlsdGVyLm5hbWUnIHwgaTE4biB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgaWQ9XCJjYXRhbG9nLXNlYXJjaFwiXG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICBjbGFzcz1cImEtZm9ybS1maWVsZFwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0BwcnkucmVzdGl0dXRpb24uc2VhcmNoJyB8IGkxOG5cIlxuICAgICAgICAgICAgW25nTW9kZWxdPVwic2VhcmNoJCB8IGFzeW5jXCJcbiAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInRoaXMuc2VhcmNoJC5uZXh0KCRldmVudClcIlxuICAgICAgICAgIC8+XG5cbiAgICAgICAgICA8cHJ5LWljb24gaWNvblN2Zz1cInNlYXJjaFwiIFt3aWR0aF09XCIxN1wiIFtoZWlnaHRdPVwiMTdcIj48L3ByeS1pY29uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJvLW1hbmlmZXN0LWxheW91dF9fY29udGVudFwiPlxuICAgICAgPGgxIGNsYXNzPVwiYS1oMVwiPnt7ICdAcHJ5LnJlc3RpdHV0aW9uLmNhdGFsb2cnIHwgaTE4biB9fTwvaDE+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJvLXByZXNlbnRhdGlvbi13cmFwcGVyXCI+XG4gICAgICAgIDx1bCBjbGFzcz1cIm8tcHJlc2VudGF0aW9uXCI+XG4gICAgICAgICAgPGxpIGNsYXNzPVwiby1wcmVzZW50YXRpb25fX2l0ZW1cIiAqbmdGb3I9XCJsZXQgcmVzdGl0dXRpb24gb2YgZmlsdGVyZWRSZXN0aXR1dGlvbiQgfCBhc3luY1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm8tcHJlc2VudGF0aW9uX19pdGVtX19oZWFkZXJcIj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInJlc3RpdHV0aW9uLnZpc2liaWxpdHk/LnR5cGUgPT09IFByeVZpc2liaWxpdHlUeXBlLlBSSVZBVEVcIj5cbiAgICAgICAgICAgICAgICA8cHJ5LWljb25cbiAgICAgICAgICAgICAgICAgIGljb25Tdmc9XCJwcml2YXRlXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaXMtcHJpdmF0ZSBhLXRvb2x0aXBcIlxuICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS10b29sdGlwXT1cIidAcHJ5LnJlc3RpdHV0aW9uLmxvY2snIHwgaTE4blwiXG4gICAgICAgICAgICAgICAgICBbaGVpZ2h0XT1cIjE3XCJcbiAgICAgICAgICAgICAgICAgIFt3aWR0aF09XCIxN1wiXG4gICAgICAgICAgICAgICAgPjwvcHJ5LWljb24+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJhLXRvb2x0aXBcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RSZXN0aXR1dGlvbihyZXN0aXR1dGlvbilcIlxuICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtdG9vbHRpcF09XCInQHByeS5yZXN0aXR1dGlvbi5jb25zdWx0X3RpdGxlJyB8IGkxOG5cIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm8tcHJlc2VudGF0aW9uX19pdGVtX19pbWFnZVwiPlxuICAgICAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgICAgICBhbHQ9XCJcIlxuICAgICAgICAgICAgICAgICAgICBbaGVpZ2h0XT1cInJlc3RpdHV0aW9uLmNvdmVyID8gNjAwIDogMTI4XCJcbiAgICAgICAgICAgICAgICAgICAgW3dpZHRoXT1cInJlc3RpdHV0aW9uLmNvdmVyID8gNjAwIDogMTI4XCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmlzLWZ1bGwtd2lkdGhdPVwicmVzdGl0dXRpb24uY292ZXJcIlxuICAgICAgICAgICAgICAgICAgICBbc3JjXT1cInJlc3RpdHV0aW9uLmltYWdlIHwgZ2V0U2VjdXJlZEltYWdlIDogWzYwMCwgNjAwXSB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwb2ludGVyXCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicmVzdGl0dXRpb24udmlzaWJpbGl0eT8udHlwZSA9PT0gUHJ5VmlzaWJpbGl0eVR5cGUuUFJJVkFURVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb3JlLWFjdGlvbnNcIj5cbiAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYS1idG4gYS1idG4tLW1vcmUgYS10b29sdGlwXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS10b29sdGlwXT1cIidAcHJ5LnJlc3RpdHV0aW9uLm1vcmUnIHwgaTE4blwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVNb2RhbEFjdGlvbnMocmVzdGl0dXRpb24pXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPHByeS1pY29uIFtoZWlnaHRdPVwiMjVcIiBbd2lkdGhdPVwiMjVcIiBpY29uU3ZnPVwibW9yZV9ob3JpelwiPjwvcHJ5LWljb24+XG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJvLXByZXNlbnRhdGlvbl9faXRlbV9fdHh0IGEtdG9vbHRpcFwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RSZXN0aXR1dGlvbihyZXN0aXR1dGlvbilcIlxuICAgICAgICAgICAgICBbYXR0ci5kYXRhLXRvb2x0aXBdPVwiJ0BwcnkucmVzdGl0dXRpb24uY29uc3VsdF90aXRsZScgfCBpMThuXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGgzIGNsYXNzPVwiYS1oM1wiPnt7IHJlc3RpdHV0aW9uLm5hbWUgfX08L2gzPlxuICAgICAgICAgICAgICA8cCBjbGFzcz1cImEtcCAtZGF0ZVwiPnt7IHJlc3RpdHV0aW9uLm1vZGlmaWNhdGlvbkRhdGUgfCBzaW5jZURhdGUgfX08L3A+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cIm8tcHJlc2VudGF0aW9uX19pdGVtX19mb290ZXIgYS10b29sdGlwXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdFJlc3RpdHV0aW9uKHJlc3RpdHV0aW9uKVwiXG4gICAgICAgICAgICAgIFthdHRyLmRhdGEtdG9vbHRpcF09XCInQHByeS5yZXN0aXR1dGlvbi5jb25zdWx0X3RpdGxlJyB8IGkxOG5cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYS1idG5cIj5cbiAgICAgICAgICAgICAgICB7eyAnQHByeS5yZXN0aXR1dGlvbi52aWV3JyB8IGkxOG4gfX1cbiAgICAgICAgICAgICAgICA8cHJ5LWljb24gW3dpZHRoXT1cIjIwXCIgW2hlaWdodF09XCIyMFwiIGljb25Tdmc9XCJhcnJvd19yaWdodFwiPjwvcHJ5LWljb24+XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9saT5cbiAgICAgICAgPC91bD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L25nLXRlbXBsYXRlPlxuICA8bmctdGVtcGxhdGUgI21vZGFsQWN0aW9ucz5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cIm8tbW9kYWxcIlxuICAgICAgcm9sZT1cImRpYWxvZ1wiXG4gICAgICBhcmlhLW1vZGFsPVwidHJ1ZVwiXG4gICAgICBhcmlhLWxhYmVsbGVkYnk9XCJkaWFsb2cgcHJlc2VuYXRpb24gb3B0aW9uc1wiXG4gICAgICAqbmdJZj1cInNlbGVjdGVkUmVzdGl0dXRpb25cIlxuICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJvLW1vZGFsX190b3BcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm8tbW9kYWxfX3RvcF9fdGl0bGVcIj5cbiAgICAgICAgICA8aDIgY2xhc3M9XCJhLWgyXCIgaWQ9XCJkaWFsb2dfdGl0bGVcIj57eyAnQHByeS5yZXN0aXR1dGlvbi5vcHRpb25zJyB8IGkxOG4gfX08L2gyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm8tbW9kYWxfX3RvcF9fY2xvc2VcIj5cbiAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYS1idG4gYS1idG4tLWljb24tb25seVwiIChjbGljayk9XCJ0b2dnbGVNb2RhbEFjdGlvbnMoc2VsZWN0ZWRSZXN0aXR1dGlvbilcIj5cbiAgICAgICAgICAgIDxwcnktaWNvbiBpY29uU3ZnPVwiY2xvc2VcIiBbaGVpZ2h0XT1cIjM1XCIgW3dpZHRoXT1cIjM1XCI+PC9wcnktaWNvbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidS12aXN1YWxseS1oaWRkZW5cIj57eyAnQHByeS50b29sYm94LmNsb3NlJyB8IGkxOG4gfX08L3NwYW4+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8dWwgY2xhc3M9XCJhY3Rpb25zLWxpc3RcIj5cbiAgICAgICAgPGxpPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgY2xhc3M9XCJhLWJ0biBhLWJ0biBpY29uLW9ubHkgYS10b29sdGlwXCJcbiAgICAgICAgICAgIFthdHRyLmRhdGEtdG9vbHRpcF09XCInQHByeS5yZXN0aXR1dGlvbi51cGRhdGUnIHwgaTE4blwiXG4gICAgICAgICAgICAoY2xpY2spPVwiZWRpdFJlc3RpdHV0aW9uKHNlbGVjdGVkUmVzdGl0dXRpb24pXCJcbiAgICAgICAgICAgICpwcnlBY2Nlc3M9XCJ7IG1vZHVsZTogJ2Rhc2hib2FyZCcsIHBhZ2U6ICdyZXN0aXR1dGlvbicsIGFjdGlvbjogJ2VkaXQnIH1cIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxwcnktaWNvbiBpY29uU3ZnPVwiZWRpdFwiPjwvcHJ5LWljb24+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvbGk+XG4gICAgICAgIDxsaT5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYS1idG4gYS1idG4gaWNvbi1vbmx5IGEtdG9vbHRpcFwiXG4gICAgICAgICAgICBbYXR0ci5kYXRhLXRvb2x0aXBdPVwiJ0BwcnkucmVzdGl0dXRpb24uZGVsZXRlJyB8IGkxOG5cIlxuICAgICAgICAgICAgKGNsaWNrKT1cImRlbGV0ZVJlc3RpdHV0aW9uKHNlbGVjdGVkUmVzdGl0dXRpb24uaWQpXCJcbiAgICAgICAgICAgICpwcnlBY2Nlc3M9XCJ7IG1vZHVsZTogJ2Rhc2hib2FyZCcsIHBhZ2U6ICdyZXN0aXR1dGlvbicsIGFjdGlvbjogJ2RlbGV0ZScgfVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHByeS1pY29uIGljb25Tdmc9XCJkZWxldGVcIj48L3ByeS1pY29uPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2xpPlxuICAgICAgPC91bD5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbiAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cInNlbGVjdGVkTW9kZSA9PT0gbW9kZS5DT05TVUxUXCI+XG4gICAgPGRpdiBjbGFzcz1cIm8tbWFuaWZlc3QtbGF5b3V0X190b29sYm94XCI+XG4gICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwic2VsZWN0TW9kZShtb2RlLkNBVEFMT0cpXCIgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tcHJpbWFyeVwiPlxuICAgICAgICB7eyAnQHByeS5yZXN0aXR1dGlvbi5iYWNrVG9DYXRhbG9nJyB8IGkxOG4gfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJvLW1hbmlmZXN0LWxheW91dF9fY29udGVudFwiPlxuICAgICAgPHByeS1yZXN0aXR1dGlvblxuICAgICAgICBbc2VsZWN0ZWRSZXN0aXR1dGlvbl09XCJzZWxlY3RlZFJlc3RpdHV0aW9uXCJcbiAgICAgICAgW2VkaXRdPVwiZmFsc2VcIlxuICAgICAgICAocmVzdGl0dXRpb25DcmVhdGVkKT1cImNsb3NlUmVzdGl0dXRpb24oJGV2ZW50KVwiXG4gICAgICAgIGNsYXNzPVwicmVzdGl0dXRpb25cIlxuICAgICAgPjwvcHJ5LXJlc3RpdHV0aW9uPlxuICAgIDwvZGl2PlxuICA8L25nLXRlbXBsYXRlPlxuICA8bmctdGVtcGxhdGUgW25nSWZdPVwic2VsZWN0ZWRNb2RlID09PSBtb2RlLkNSRUFUSU9OXCI+XG4gICAgPGRpdiBjbGFzcz1cIm8tbWFuaWZlc3QtbGF5b3V0X190b29sYm94XCI+XG4gICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwic2VsZWN0TW9kZShtb2RlLkNBVEFMT0cpXCIgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tcHJpbWFyeVwiPlxuICAgICAgICB7eyAnQHByeS5yZXN0aXR1dGlvbi5iYWNrVG9DYXRhbG9nJyB8IGkxOG4gfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJvLW1hbmlmZXN0LWxheW91dF9fY29udGVudFwiPlxuICAgICAgPHByeS1yZXN0aXR1dGlvbiAocmVzdGl0dXRpb25DcmVhdGVkKT1cImNsb3NlUmVzdGl0dXRpb24oJGV2ZW50KVwiIGNsYXNzPVwicmVzdGl0dXRpb25cIj48L3ByeS1yZXN0aXR1dGlvbj5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbiAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cInNlbGVjdGVkTW9kZSA9PT0gbW9kZS5FRElUSU9OXCI+XG4gICAgPGRpdiBjbGFzcz1cIm8tbWFuaWZlc3QtbGF5b3V0X190b29sYm94XCI+XG4gICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwic2VsZWN0TW9kZShtb2RlLkNBVEFMT0cpXCIgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tcHJpbWFyeVwiPlxuICAgICAgICB7eyAnQHByeS5yZXN0aXR1dGlvbi5iYWNrVG9DYXRhbG9nJyB8IGkxOG4gfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJvLW1hbmlmZXN0LWxheW91dF9fY29udGVudFwiPlxuICAgICAgPHByeS1yZXN0aXR1dGlvblxuICAgICAgICAocmVzdGl0dXRpb25DcmVhdGVkKT1cImNsb3NlUmVzdGl0dXRpb24oJGV2ZW50KVwiXG4gICAgICAgIFtzZWxlY3RlZFJlc3RpdHV0aW9uXT1cInNlbGVjdGVkUmVzdGl0dXRpb25cIlxuICAgICAgICBjbGFzcz1cInJlc3RpdHV0aW9uXCJcbiAgICAgID48L3ByeS1yZXN0aXR1dGlvbj5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuIl19
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdGl0dXRpb24tY2F0YWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9yZXN0aXR1dGlvbi9jb21wb25lbnRzL3Jlc3RpdHV0aW9uLWNhdGFsb2cvcmVzdGl0dXRpb24tY2F0YWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9yZXN0aXR1dGlvbi9jb21wb25lbnRzL3Jlc3RpdHV0aW9uLWNhdGFsb2cvcmVzdGl0dXRpb24tY2F0YWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVcsYUFBYSxFQUFjLE1BQU0sc0JBQXNCLENBQUM7QUFDMUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFvQixNQUFNLGVBQWUsQ0FBQztBQUVwRixPQUFPLEVBQUUsYUFBYSxFQUFFLGVBQWUsRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQVUsTUFBTSxvQkFBb0IsQ0FBQztBQUN6RyxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxHQUFHLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDdkUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7Ozs7O0FBTXJELE1BQU0sT0FBTyw4QkFBOEI7SUFZekMsWUFBb0IsS0FBWSxFQUFZLE9BQWdCLEVBQVksZ0JBQWtDO1FBQXRGLFVBQUssR0FBTCxLQUFLLENBQU87UUFBWSxZQUFPLEdBQVAsT0FBTyxDQUFTO1FBQVkscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQVYxRyxZQUFPLEdBQUcsSUFBSSxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFbEMsU0FBSSxHQUFHLFFBQVEsQ0FBQztRQUNoQixpQkFBWSxHQUFhLFFBQVEsQ0FBQyxPQUFP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QztZQUM1QixJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDO1NBQ2pDO0lBQ0gsQ0FBQzsrR0F0RlUsOEJBQThCO21HQUE5Qiw4QkFBOEIsMkpBVU4sV0FBVyw2QkNyQmhELHduT0FnTEE7OzRGRHJLYSw4QkFBOEI7a0JBSjFDLFNBQVM7K0JBQ0UseUJBQXlCO2lKQWFlLGVBQWU7c0JBQWhFLFNBQVM7dUJBQUMsY0FBYyxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE92ZXJsYXksIE92ZXJsYXlDb25maWcsIE92ZXJsYXlSZWYgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBDb21wb25lbnQsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgQ29uZmlnQWN0aW9ucywgQ29uZmlnU2VsZWN0b3JzLCBQcnlWaXNpYmlsaXR5VHlwZSwgVmlld01vZGUsIFdpZGdldCB9IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZCc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIG1hcCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVGVtcGxhdGVQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncHJ5LXJlc3RpdHV0aW9uLWNhdGFsb2cnLFxuICB0ZW1wbGF0ZVVybDogJy4vcmVzdGl0dXRpb24tY2F0YWxvZy5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgUHJ5UmVzdGl0dXRpb25DYXRhbG9nQ29tcG9uZW50IHtcbiAgcmVzdGl0dXRpb25zJDogT2JzZXJ2YWJsZTxXaWRnZXRbXT47XG4gIHNlYXJjaCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KCcnKTtcbiAgZmlsdGVyZWRSZXN0aXR1dGlvbiQ6IE9ic2VydmFibGU8V2lkZ2V0W10+O1xuICBtb2RlID0gVmlld01vZGU7XG4gIHNlbGVjdGVkTW9kZTogVmlld01vZGUgPSBWaWV3TW9kZS5DQVRBTE9HO1xuICBzZWxlY3RlZFJlc3RpdHV0aW9uOiBXaWRnZXQgfCBudWxsID0gbnVsbDtcbiAgcmVzdGl0dXRpb24/OiBXaWRnZXQ7XG4gIFByeVZpc2liaWxpdHlUeXBlID0gUHJ5VmlzaWJpbGl0eVR5cGU7XG4gIG92ZXJsYXlSZWY/OiBPdmVybGF5UmVmO1xuICBAVmlld0NoaWxkKCdtb2RhbEFjdGlvbnMnLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pIHRlbXBsYXRlQWN0aW9ucyE6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzdG9yZTogU3RvcmUsIHByb3RlY3RlZCBvdmVybGF5OiBPdmVybGF5LCBwcm90ZWN0ZWQgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZikge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQ29uZmlnQWN0aW9ucy5sb2FkV2lkZ2V0cygpKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENvbmZpZ0FjdGlvbnMuZ2V0TWFwU3R5bGVzKCkpO1xuXG4gICAgdGhpcy5yZXN0aXR1dGlvbnMkID0gdGhpcy5zdG9yZVxuICAgICAgLnNlbGVjdChDb25maWdTZWxlY3RvcnMuY2F0YWxvZylcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHJlc3RpdHV0aW9uTGlzdCkgPT5cbiAgICAgICAgICBbLi4ucmVzdGl0dXRpb25MaXN0XS5zb3J0KChhLCBiKSA9PlxuICAgICAgICAgICAgYS5tb2RpZmljYXRpb25EYXRlID8gYi5tb2RpZmljYXRpb25EYXRlLmxvY2FsZUNvbXBhcmUoYS5tb2RpZmljYXRpb25EYXRlKSA6IDFcbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgdGhpcy5maWx0ZXJlZFJlc3RpdHV0aW9uJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMucmVzdGl0dXRpb25zJCwgdGhpcy5zZWFyY2gkXSkucGlwZShcbiAgICAgIG1hcCgoW3Jlc3RpdHV0aW9ucywgc2VhcmNoXSkgPT5cbiAgICAgICAgcmVzdGl0dXRpb25zLmZpbHRlcihcbiAgICAgICAgICAocmVzdGl0dXRpb24pID0+IHNlYXJjaC5sZW5ndGggPT09IDAgfHwgcmVzdGl0dXRpb24ubmFtZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaC50b0xvd2VyQ2FzZSgpKVxuICAgICAgICApXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIHNlbGVjdE1vZGUobmV3TW9kZTogVmlld01vZGUpIHtcbiAgICB0aGlzLnNlbGVjdGVkTW9kZSA9IG5ld01vZGU7XG4gIH1cblxuICBzZWxlY3RSZXN0aXR1dGlvbihyZXN0aXR1dGlvbjogV2lkZ2V0KSB7XG4gICAgdGhpcy5zZWxlY3RlZFJlc3RpdHV0aW9uID0gcmVzdGl0dXRpb247XG4gICAgdGhpcy5zZWxlY3RNb2RlKHRoaXMubW9kZS5DT05TVUxUKTtcbiAgICB0aGlzLnNlYXJjaCQubmV4dCgnJyk7XG4gIH1cblxuICBjbG9zZVJlc3RpdHV0aW9uKCRldmVudDogdm9pZCkge1xuICAgIHRoaXMuc2VsZWN0ZWRSZXN0aXR1dGlvbiA9IG51bGw7XG4gICAgdGhpcy5zZWxlY3RNb2RlKHRoaXMubW9kZS5DQVRBTE9HKTtcbiAgfVxuXG4gIGRlbGV0ZVJlc3RpdHV0aW9uKGlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENvbmZpZ0FjdGlvbnMuY29uZmlybVJlc3RpdHV0aW9uRGVsZXRpb24oeyBpZCB9KSk7XG4gICAgdGhpcy50b2dnbGVNb2RhbEFjdGlvbnMoKTtcbiAgfVxuXG4gIGVkaXRSZXN0aXR1dGlvbihyZXN0aXR1dGlvbjogV2lkZ2V0KSB7XG4gICAgdGhpcy5zZWxlY3RlZFJlc3RpdHV0aW9uID0gcmVzdGl0dXRpb247XG4gICAgdGhpcy5zZWxlY3RNb2RlKFZpZXdNb2RlLkVESVRJT04pO1xuICAgIHRoaXMuc2VhcmNoJC5uZXh0KCcnKTtcbiAgICB0aGlzLm92ZXJsYXlSZWY/LmRpc3Bvc2UoKTtcbiAgICB0aGlzLm92ZXJsYXlSZWYgPSB1bmRlZmluZWQ7XG4gIH1cblxuICB0b2dnbGVNb2RhbEFjdGlvbnMocmVzdGl0dXRpb24/OiBXaWRnZXQsIG1vcmVCdXR0b24/OiBIVE1MQnV0dG9uRWxlbWVudCkge1xuICAgIGlmICghdGhpcy5vdmVybGF5UmVmICYmIHJlc3RpdHV0aW9uKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkUmVzdGl0dXRpb24gPSByZXN0aXR1dGlvbjtcbiAgICAgIHRoaXMub3ZlcmxheVJlZiA9IHRoaXMub3ZlcmxheS5jcmVhdGUoXG4gICAgICAgIG5ldyBPdmVybGF5Q29uZmlnKHtcbiAgICAgICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcbiAgICAgICAgICBwYW5lbENsYXNzOiBbJ20tY29udGV4dC1tZW51LXdyYXBwZXInXSxcbiAgICAgICAgICBiYWNrZHJvcENsYXNzOiAnYmFja2Ryb3AnXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgICAgdGhpcy5vdmVybGF5UmVmLmJhY2tkcm9wQ2xpY2soKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy50b2dnbGVNb2RhbEFjdGlvbnMocmVzdGl0dXRpb24pKTtcbiAgICAgIHRoaXMub3ZlcmxheVJlZi5hdHRhY2gobmV3IFRlbXBsYXRlUG9ydGFsKHRoaXMudGVtcGxhdGVBY3Rpb25zLCB0aGlzLnZpZXdDb250YWluZXJSZWYpKTtcbiAgICAgIGNvbnN0IGNvbnRleHRNZW51ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignZGl2Lm0tY29udGV4dC1tZW51JykgYXMgSFRNTERpdkVsZW1lbnQ7XG4gICAgICBpZiAoISFjb250ZXh0TWVudSAmJiBtb3JlQnV0dG9uKSB7XG4gICAgICAgIGNvbnN0IHRvZ2dsZUFjdGlvbnNNb2RhbEJ1dHRvbiA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyMnICsgbW9yZUJ1dHRvbi5pZCk7XG4gICAgICAgIGNvbnN0IHJlY3QgPSB0b2dnbGVBY3Rpb25zTW9kYWxCdXR0b24/LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICBjb250ZXh0TWVudS5zdHlsZS5sZWZ0ID0gKHJlY3Q/LmxlZnQgPz8gMCkgLSAoY29udGV4dE1lbnU/LmNsaWVudFdpZHRoID8/IDApICsgMjMgKyAncHgnO1xuICAgICAgICBjb250ZXh0TWVudS5zdHlsZS50b3AgPSAocmVjdD8udG9wID8/IDApICsgMjUgKyAncHgnO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm92ZXJsYXlSZWY/LmRpc3Bvc2UoKTtcbiAgICAgIHRoaXMub3ZlcmxheVJlZiA9IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMuc2VsZWN0ZWRSZXN0aXR1dGlvbiA9IG51bGw7XG4gICAgfVxuICB9XG59XG4iLCI8cHJ5LXJlc3RpdHV0aW9uLWNzcz48L3ByeS1yZXN0aXR1dGlvbi1jc3M+XG48ZGl2IGNsYXNzPVwiby1tYW5pZmVzdC1sYXlvdXQgby1yZXN0aXR1dGlvbi1jYXRhbG9nXCI+XG4gIDxuZy10ZW1wbGF0ZSBbbmdJZl09XCJzZWxlY3RlZE1vZGUgPT09IG1vZGUuQ0FUQUxPR1wiPlxuICAgIDxkaXYgY2xhc3M9XCJvLW1hbmlmZXN0LWxheW91dF9fdG9vbGJveFwiPlxuICAgICAgPGJ1dHRvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgKGNsaWNrKT1cInNlbGVjdE1vZGUobW9kZS5DUkVBVElPTilcIlxuICAgICAgICBjbGFzcz1cImEtYnRuIGEtYnRuLS1wcmltYXJ5IGEtdG9vbHRpcFwiXG4gICAgICAgIFthdHRyLmRhdGEtdG9vbHRpcF09XCInQHByeS5yZXN0aXR1dGlvbi5jcmVhdGUnIHwgaTE4blwiXG4gICAgICAgICpwcnlBY2Nlc3M9XCJ7IG1vZHVsZTogJ2Rhc2hib2FyZCcsIHBhZ2U6ICdyZXN0aXR1dGlvbicsIGFjdGlvbjogJ2NyZWF0ZScgfVwiXG4gICAgICA+XG4gICAgICAgIHt7ICdAcHJ5LnJlc3RpdHV0aW9uLmNyZWF0ZScgfCBpMThuIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJvLWNhdGFsb2dfX3NlYXJjaFwiPlxuICAgICAgICAgIDxsYWJlbCBpZD1cImNhdGFsb2ctc2VhcmNoLWxhYmVsXCIgZm9yPVwiY2F0YWxvZy1zZWFyY2hcIiBjbGFzcz1cInUtdmlzdWFsbHktaGlkZGVuXCI+XG4gICAgICAgICAgICA8c3Bhbj57eyAnQHByeS50b29sYm94LmNhdGFsb2cuZmlsdGVyLm5hbWUnIHwgaTE4biB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgaWQ9XCJjYXRhbG9nLXNlYXJjaFwiXG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICBjbGFzcz1cImEtZm9ybS1maWVsZFwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0BwcnkucmVzdGl0dXRpb24uc2VhcmNoJyB8IGkxOG5cIlxuICAgICAgICAgICAgW25nTW9kZWxdPVwic2VhcmNoJCB8IGFzeW5jXCJcbiAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInRoaXMuc2VhcmNoJC5uZXh0KCRldmVudClcIlxuICAgICAgICAgIC8+XG5cbiAgICAgICAgICA8cHJ5LWljb24gaWNvblN2Zz1cInNlYXJjaFwiIFt3aWR0aF09XCIxN1wiIFtoZWlnaHRdPVwiMTdcIj48L3ByeS1pY29uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJvLW1hbmlmZXN0LWxheW91dF9fY29udGVudFwiPlxuICAgICAgPGgxIGNsYXNzPVwiYS1oMVwiPnt7ICdAcHJ5LnJlc3RpdHV0aW9uLmNhdGFsb2cnIHwgaTE4biB9fTwvaDE+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJvLXByZXNlbnRhdGlvbi13cmFwcGVyXCI+XG4gICAgICAgIDx1bCBjbGFzcz1cIm8tcHJlc2VudGF0aW9uXCI+XG4gICAgICAgICAgPGxpIGNsYXNzPVwiby1wcmVzZW50YXRpb25fX2l0ZW1cIiAqbmdGb3I9XCJsZXQgcmVzdGl0dXRpb24gb2YgZmlsdGVyZWRSZXN0aXR1dGlvbiQgfCBhc3luYzsgbGV0IGluZGV4ID0gaW5kZXhcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvLXByZXNlbnRhdGlvbl9faXRlbV9faGVhZGVyXCI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJyZXN0aXR1dGlvbi52aXNpYmlsaXR5Py50eXBlID09PSBQcnlWaXNpYmlsaXR5VHlwZS5QUklWQVRFXCI+XG4gICAgICAgICAgICAgICAgPHByeS1pY29uXG4gICAgICAgICAgICAgICAgICBpY29uU3ZnPVwicHJpdmF0ZVwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImlzLXByaXZhdGUgYS10b29sdGlwXCJcbiAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtdG9vbHRpcF09XCInQHByeS5yZXN0aXR1dGlvbi5sb2NrJyB8IGkxOG5cIlxuICAgICAgICAgICAgICAgICAgW2hlaWdodF09XCIxN1wiXG4gICAgICAgICAgICAgICAgICBbd2lkdGhdPVwiMTdcIlxuICAgICAgICAgICAgICAgID48L3ByeS1pY29uPlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYS10b29sdGlwXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0UmVzdGl0dXRpb24ocmVzdGl0dXRpb24pXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLXRvb2x0aXBdPVwiJ0BwcnkucmVzdGl0dXRpb24uY29uc3VsdF90aXRsZScgfCBpMThuXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvLXByZXNlbnRhdGlvbl9faXRlbV9faW1hZ2VcIj5cbiAgICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgICAgYWx0PVwiXCJcbiAgICAgICAgICAgICAgICAgICAgW2hlaWdodF09XCJyZXN0aXR1dGlvbi5jb3ZlciA/IDYwMCA6IDEyOFwiXG4gICAgICAgICAgICAgICAgICAgIFt3aWR0aF09XCJyZXN0aXR1dGlvbi5jb3ZlciA/IDYwMCA6IDEyOFwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5pcy1mdWxsLXdpZHRoXT1cInJlc3RpdHV0aW9uLmNvdmVyXCJcbiAgICAgICAgICAgICAgICAgICAgW3NyY109XCJyZXN0aXR1dGlvbi5pbWFnZSB8IGdldFNlY3VyZWRJbWFnZSA6IFs2MDAsIDYwMF0gfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicG9pbnRlclwiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInJlc3RpdHV0aW9uLnZpc2liaWxpdHk/LnR5cGUgPT09IFByeVZpc2liaWxpdHlUeXBlLlBSSVZBVEVcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9yZS1hY3Rpb25zXCI+XG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImEtYnRuIGEtYnRuLS1tb3JlIGEtdG9vbHRpcFwiXG4gICAgICAgICAgICAgICAgICAgIFtpZF09XCInbW9yZS1hY3Rpb25zLScgKyBpbmRleFwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtdG9vbHRpcF09XCInQHByeS5yZXN0aXR1dGlvbi5tb3JlJyB8IGkxOG5cIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlTW9kYWxBY3Rpb25zKHJlc3RpdHV0aW9uLCBidXR0b24pXCJcbiAgICAgICAgICAgICAgICAgICAgI2J1dHRvblxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8cHJ5LWljb24gW2hlaWdodF09XCIyNVwiIFt3aWR0aF09XCIyNVwiIGljb25Tdmc9XCJtb3JlX2hvcml6XCI+PC9wcnktaWNvbj5cbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cIm8tcHJlc2VudGF0aW9uX19pdGVtX190eHQgYS10b29sdGlwXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdFJlc3RpdHV0aW9uKHJlc3RpdHV0aW9uKVwiXG4gICAgICAgICAgICAgIFthdHRyLmRhdGEtdG9vbHRpcF09XCInQHByeS5yZXN0aXR1dGlvbi5jb25zdWx0X3RpdGxlJyB8IGkxOG5cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJhLWgzXCI+e3sgcmVzdGl0dXRpb24ubmFtZSB9fTwvaDM+XG4gICAgICAgICAgICAgIDxwIGNsYXNzPVwiYS1wIC1kYXRlXCI+e3sgcmVzdGl0dXRpb24ubW9kaWZpY2F0aW9uRGF0ZSB8IHNpbmNlRGF0ZSB9fTwvcD5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzPVwiby1wcmVzZW50YXRpb25fX2l0ZW1fX2Zvb3RlciBhLXRvb2x0aXBcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0UmVzdGl0dXRpb24ocmVzdGl0dXRpb24pXCJcbiAgICAgICAgICAgICAgW2F0dHIuZGF0YS10b29sdGlwXT1cIidAcHJ5LnJlc3RpdHV0aW9uLmNvbnN1bHRfdGl0bGUnIHwgaTE4blwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJhLWJ0blwiPlxuICAgICAgICAgICAgICAgIHt7ICdAcHJ5LnJlc3RpdHV0aW9uLnZpZXcnIHwgaTE4biB9fVxuICAgICAgICAgICAgICAgIDxwcnktaWNvbiBbd2lkdGhdPVwiMjBcIiBbaGVpZ2h0XT1cIjIwXCIgaWNvblN2Zz1cImFycm93X3JpZ2h0XCI+PC9wcnktaWNvbj5cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2xpPlxuICAgICAgICA8L3VsPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG4gIDxuZy10ZW1wbGF0ZSAjbW9kYWxBY3Rpb25zPlxuICAgIDxkaXYgY2xhc3M9XCJtLWNvbnRleHQtbWVudVwiPlxuICAgICAgPHVsXG4gICAgICAgICpuZ0lmPVwic2VsZWN0ZWRSZXN0aXR1dGlvblwiXG4gICAgICAgIGNsYXNzPVwibS1jb250ZXh0LW1lbnVfX2xpc3RcIlxuICAgICAgICByb2xlPVwiZGlhbG9nXCJcbiAgICAgICAgYXJpYS1tb2RhbD1cInRydWVcIlxuICAgICAgICBhcmlhLWxhYmVsbGVkYnk9XCJkaWFsb2cgcmVzdGl0dXRpb24gb3B0aW9uc1wiXG4gICAgICA+XG4gICAgICAgIDxsaSBjbGFzcz1cIm0tY29udGV4dC1tZW51X19saXN0X19pdGVtXCI+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgY2xhc3M9XCJhLWJ0biAtbGluay1saWtlXCJcbiAgICAgICAgICAgIChjbGljayk9XCJlZGl0UmVzdGl0dXRpb24oc2VsZWN0ZWRSZXN0aXR1dGlvbilcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFzZWxlY3RlZFJlc3RpdHV0aW9uLm93bmVyXCJcbiAgICAgICAgICAgICpwcnlBY2Nlc3M9XCJ7IG1vZHVsZTogJ2Rhc2hib2FyZCcsIHBhZ2U6ICdyZXN0aXR1dGlvbicsIGFjdGlvbjogJ2VkaXQnIH1cIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7ICdAcHJ5LnJlc3RpdHV0aW9uLnVwZGF0ZScgfCBpMThuIH19XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvbGk+XG4gICAgICAgIDxsaSBjbGFzcz1cIm0tY29udGV4dC1tZW51X19saXN0X19pdGVtXCI+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgY2xhc3M9XCJhLWJ0biAtbGluay1saWtlXCJcbiAgICAgICAgICAgICNvcGVuTW9kYWxcbiAgICAgICAgICAgIChjbGljayk9XCJkZWxldGVSZXN0aXR1dGlvbihzZWxlY3RlZFJlc3RpdHV0aW9uLmlkKVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiIXNlbGVjdGVkUmVzdGl0dXRpb24ub3duZXJcIlxuICAgICAgICAgICAgKnByeUFjY2Vzcz1cInsgbW9kdWxlOiAnZGFzaGJvYXJkJywgcGFnZTogJ3Jlc3RpdHV0aW9uJywgYWN0aW9uOiAnZGVsZXRlJyB9XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyAnQHByeS5yZXN0aXR1dGlvbi5kZWxldGUnIHwgaTE4biB9fVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2xpPlxuICAgICAgPC91bD5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cblxuICA8bmctdGVtcGxhdGUgW25nSWZdPVwic2VsZWN0ZWRNb2RlID09PSBtb2RlLkNPTlNVTFRcIj5cbiAgICA8ZGl2IGNsYXNzPVwiby1tYW5pZmVzdC1sYXlvdXRfX3Rvb2xib3hcIj5cbiAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJzZWxlY3RNb2RlKG1vZGUuQ0FUQUxPRylcIiBjbGFzcz1cImEtYnRuIGEtYnRuLS1wcmltYXJ5XCI+XG4gICAgICAgIHt7ICdAcHJ5LnJlc3RpdHV0aW9uLmJhY2tUb0NhdGFsb2cnIHwgaTE4biB9fVxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm8tbWFuaWZlc3QtbGF5b3V0X19jb250ZW50XCI+XG4gICAgICA8cHJ5LXJlc3RpdHV0aW9uXG4gICAgICAgIFtzZWxlY3RlZFJlc3RpdHV0aW9uXT1cInNlbGVjdGVkUmVzdGl0dXRpb25cIlxuICAgICAgICBbZWRpdF09XCJmYWxzZVwiXG4gICAgICAgIChyZXN0aXR1dGlvbkNyZWF0ZWQpPVwiY2xvc2VSZXN0aXR1dGlvbigkZXZlbnQpXCJcbiAgICAgICAgY2xhc3M9XCJyZXN0aXR1dGlvblwiXG4gICAgICA+PC9wcnktcmVzdGl0dXRpb24+XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG4gIDxuZy10ZW1wbGF0ZSBbbmdJZl09XCJzZWxlY3RlZE1vZGUgPT09IG1vZGUuQ1JFQVRJT05cIj5cbiAgICA8ZGl2IGNsYXNzPVwiby1tYW5pZmVzdC1sYXlvdXRfX3Rvb2xib3hcIj5cbiAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJzZWxlY3RNb2RlKG1vZGUuQ0FUQUxPRylcIiBjbGFzcz1cImEtYnRuIGEtYnRuLS1wcmltYXJ5XCI+XG4gICAgICAgIHt7ICdAcHJ5LnJlc3RpdHV0aW9uLmJhY2tUb0NhdGFsb2cnIHwgaTE4biB9fVxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm8tbWFuaWZlc3QtbGF5b3V0X19jb250ZW50XCI+XG4gICAgICA8cHJ5LXJlc3RpdHV0aW9uIChyZXN0aXR1dGlvbkNyZWF0ZWQpPVwiY2xvc2VSZXN0aXR1dGlvbigkZXZlbnQpXCIgW2VkaXRdPVwiZmFsc2VcIiBjbGFzcz1cInJlc3RpdHV0aW9uXCI+PC9wcnktcmVzdGl0dXRpb24+XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG4gIDxuZy10ZW1wbGF0ZSBbbmdJZl09XCJzZWxlY3RlZE1vZGUgPT09IG1vZGUuRURJVElPTlwiPlxuICAgIDxkaXYgY2xhc3M9XCJvLW1hbmlmZXN0LWxheW91dF9fdG9vbGJveFwiPlxuICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cInNlbGVjdE1vZGUobW9kZS5DQVRBTE9HKVwiIGNsYXNzPVwiYS1idG4gYS1idG4tLXByaW1hcnlcIj5cbiAgICAgICAge3sgJ0BwcnkucmVzdGl0dXRpb24uYmFja1RvQ2F0YWxvZycgfCBpMThuIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiby1tYW5pZmVzdC1sYXlvdXRfX2NvbnRlbnRcIj5cbiAgICAgIDxwcnktcmVzdGl0dXRpb25cbiAgICAgICAgKHJlc3RpdHV0aW9uQ3JlYXRlZCk9XCJjbG9zZVJlc3RpdHV0aW9uKCRldmVudClcIlxuICAgICAgICBbc2VsZWN0ZWRSZXN0aXR1dGlvbl09XCJzZWxlY3RlZFJlc3RpdHV0aW9uXCJcbiAgICAgICAgY2xhc3M9XCJyZXN0aXR1dGlvblwiXG4gICAgICA+PC9wcnktcmVzdGl0dXRpb24+XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG48L2Rpdj5cbiJdfQ==
@@ -8,7 +8,7 @@ export const enTranslations = {
8
8
  image: 'Image',
9
9
  close: 'Cancel',
10
10
  validate: 'Save',
11
- broadcast: 'Submit',
11
+ share: 'Share',
12
12
  view: 'View',
13
13
  create: 'Create restitution',
14
14
  cancel: 'Cancel',
@@ -46,4 +46,4 @@ export const enTranslations = {
46
46
  }
47
47
  }
48
48
  };
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW4udHJhbnNsYXRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvcmVzdGl0dXRpb24vaTE4bi9lbi50cmFuc2xhdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHO0lBQzVCLE1BQU0sRUFBRTtRQUNOLFdBQVcsRUFBRTtZQUNYLGdCQUFnQixFQUFFLGtCQUFrQjtZQUNwQyxTQUFTLEVBQUUsV0FBVztZQUN0QixXQUFXLEVBQUUsT0FBTztZQUNwQixXQUFXLEVBQUUsYUFBYTtZQUMxQixLQUFLLEVBQUUsT0FBTztZQUNkLEtBQUssRUFBRSxRQUFRO1lBQ2YsUUFBUSxFQUFFLE1BQU07WUFDaEIsU0FBUyxFQUFFLFFBQVE7WUFDbkIsSUFBSSxFQUFFLE1BQU07WUFDWixNQUFNLEVBQUUsb0JBQW9CO1lBQzVCLE1BQU0sRUFBRSxRQUFRO1lBQ2hCLFNBQVMsRUFBRSxXQUFXO1lBQ3RCLFNBQVMsRUFBRSxXQUFXO1lBQ3RCLE1BQU0sRUFBRSw0Q0FBNEM7WUFDcEQsTUFBTSxFQUFFLG1GQUFtRjtZQUMzRixPQUFPLEVBQUUsNkVBQTZFO1lBQ3RGLE1BQU0sRUFBRSxXQUFXO1lBQ25CLEVBQUUsRUFBRSxJQUFJO1lBQ1IsWUFBWSxFQUFFLHNCQUFzQjtZQUNwQyxhQUFhLEVBQUUseUJBQXlCO1lBQ3hDLE1BQU0sRUFBRSxRQUFRO1lBQ2hCLGFBQWEsRUFBRSxpQkFBaUI7WUFDaEMsT0FBTyxFQUFFLHFCQUFxQjtZQUM5QixPQUFPLEVBQUUsU0FBUztZQUNsQixPQUFPLEVBQUUsc0JBQXNCO1lBQy9CLFFBQVEsRUFBRSwwQ0FBMEM7WUFDcEQsU0FBUyxFQUFFLDBCQUEwQjtZQUNyQyxNQUFNLEVBQUUscUNBQXFDO1lBQzdDLGdCQUFnQixFQUFFLHlCQUF5QjtZQUMzQyxrQkFBa0IsRUFBRSwyQkFBMkI7WUFDL0MsVUFBVSxFQUFFLE1BQU07WUFDbEIsWUFBWSxFQUFFLG1CQUFtQjtZQUNqQyxNQUFNLEVBQUUsb0JBQW9CO1lBQzVCLElBQUksRUFBRSxNQUFNO1lBQ1osSUFBSSxFQUFFLHFCQUFxQjtZQUMzQixNQUFNLEVBQUUsa0JBQWtCO1lBQzFCLEtBQUssRUFBRSw2Q0FBNkM7WUFDcEQsb0JBQW9CLEVBQUUseUJBQXlCO1lBQy9DLFdBQVcsRUFBRTtnQkFDWCxLQUFLLEVBQUUsb0JBQW9CO2dCQUMzQixPQUFPLEVBQUUsc0JBQXNCO2FBQ2hDO1NBQ0Y7S0FDRjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgZW5UcmFuc2xhdGlvbnMgPSB7XG4gICdAcHJ5Jzoge1xuICAgIHJlc3RpdHV0aW9uOiB7XG4gICAgICByZXN0aXR1dGlvbl90eXBlOiAnUmVzdGl0dXRpb24gdHlwZScsXG4gICAgICBkYXRhX3R5cGU6ICdEYXRhIHR5cGUnLFxuICAgICAgZ3JhcGhfdGl0bGU6ICdUaXRsZScsXG4gICAgICBkZXNjcmlwdGlvbjogJ0Rlc2NyaXB0aW9uJyxcbiAgICAgIGltYWdlOiAnSW1hZ2UnLFxuICAgICAgY2xvc2U6ICdDYW5jZWwnLFxuICAgICAgdmFsaWRhdGU6ICdTYXZlJyxcbiAgICAgIGJyb2FkY2FzdDogJ1N1Ym1pdCcsXG4gICAgICB2aWV3OiAnVmlldycsXG4gICAgICBjcmVhdGU6ICdDcmVhdGUgcmVzdGl0dXRpb24nLFxuICAgICAgY2FuY2VsOiAnQ2FuY2VsJyxcbiAgICAgIGNvbmZpZ3VyZTogJ0NvbmZpZ3VyZScsXG4gICAgICB2aXN1YWxpemU6ICdWaXN1YWxpemUnLFxuICAgICAgYWNjZXNzOiAnRG8geW91IHdhbnQgdG8gZ2l2ZSBhY2Nlc3MgLyBpbnZpdGUgdXNlcnM/JyxcbiAgICAgIHB1YmxpYzogJ01ha2UgdGhpcyBwYXJ0aWNpcGF0b3J5IHN1cnZleSBhY2Nlc3NpYmxlIHRvIGFsbCB1c2VycyBpbiB0aGUgcmVzdGl0dXRpb24gY2F0YWxvZycsXG4gICAgICBwcml2YXRlOiAnSW52aXRlIGNlcnRhaW4gdXNlcnMgb2YgeW91ciBjaG9pY2UgdG8gcmVzcG9uZCB0byB0aGlzIHBhcnRpY2lwYXRvcnkgc3VydmV5JyxcbiAgICAgIGNob2ljZTogJ1lvdSBjYW4gOicsXG4gICAgICBvcjogJ09yJyxcbiAgICAgIGNyZWF0ZV90aXRsZTogJ0NyZWF0ZSBhIHJlc3RpdHV0aW9uJyxcbiAgICAgIGNvbnN1bHRfdGl0bGU6ICdDb25zdWx0IHRoZSByZXN0aXR1dGlvbicsXG4gICAgICBzZWFyY2g6ICdTZWFyY2gnLFxuICAgICAgYmFja1RvQ2F0YWxvZzogJ0JhY2sgdG8gY2F0YWxvZycsXG4gICAgICBvcHRpb25zOiAnUmVzdGl0dXRpb24gb3B0aW9ucycsXG4gICAgICBjb25zdWx0OiAnQ29uc3VsdCcsXG4gICAgICBjYXRhbG9nOiAnUmVzdGl0dXRpb25zIGNhdGFsb2cnLFxuICAgICAgYWRkX2ljb246ICdBZGQgdGhpcyByZXN0aXR1dGlvbiBvbiB0aGUgcHJlc2VudGF0aW9uJyxcbiAgICAgIHNlbGVjdGlvbjogJ1NlbGVjdGVkIGRhdGEgc291cmNlKHMpOicsXG4gICAgICBzZWxlY3Q6ICdTZWxlY3Qgb25lIG9yIG1vcmUgZGF0YSBzb3VyY2UocykgOicsXG4gICAgICBzZWxlY3REYXRhU291cmNlOiAnU2VsZWN0IHRoaXMgZGF0YSBzb3VyY2UnLFxuICAgICAgdW5zZWxlY3REYXRhU291cmNlOiAnVW5zZWxlY3QgdGhpcyBkYXRhIHNvdXJjZScsXG4gICAgICBkYXRhU291cmNlOiAnRGF0YScsXG4gICAgICBub0RhdGFTb3VyY2U6ICdObyBkYXRhIGF2YWlsYWJsZScsXG4gICAgICBkZWxldGU6ICdEZWxldGUgcmVzdGl0dXRpb24nLFxuICAgICAgbmV4dDogJ05leHQnLFxuICAgICAgbG9jazogJ1ByaXZhdGUgcmVzdGl0dXRpb24nLFxuICAgICAgdXBkYXRlOiAnRWRpdCBpbmZvcm1hdGlvbicsXG4gICAgICBjb3ZlcjogJ0ltYWdlIHdpbGwgY292ZXIgdGhlIHdob2xlIHJlc3RpdHV0aW9uIGNhcmQnLFxuICAgICAgbm9EYXRhU291cmNlU2VsZWN0ZWQ6ICdObyBkYXRhIHNvdXJjZSBzZWxlY3RlZCcsXG4gICAgICBjYXRhbG9nVGFiczoge1xuICAgICAgICBtb2RlbDogJ1Jlc3RpdHV0aW9uIG1vZGVscycsXG4gICAgICAgIG5vTW9kZWw6ICdSZXN0aXR1dGlvbnMgY2F0YWxvZydcbiAgICAgIH1cbiAgICB9XG4gIH1cbn07XG4iXX0=
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW4udHJhbnNsYXRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvcmVzdGl0dXRpb24vaTE4bi9lbi50cmFuc2xhdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHO0lBQzVCLE1BQU0sRUFBRTtRQUNOLFdBQVcsRUFBRTtZQUNYLGdCQUFnQixFQUFFLGtCQUFrQjtZQUNwQyxTQUFTLEVBQUUsV0FBVztZQUN0QixXQUFXLEVBQUUsT0FBTztZQUNwQixXQUFXLEVBQUUsYUFBYTtZQUMxQixLQUFLLEVBQUUsT0FBTztZQUNkLEtBQUssRUFBRSxRQUFRO1lBQ2YsUUFBUSxFQUFFLE1BQU07WUFDaEIsS0FBSyxFQUFFLE9BQU87WUFDZCxJQUFJLEVBQUUsTUFBTTtZQUNaLE1BQU0sRUFBRSxvQkFBb0I7WUFDNUIsTUFBTSxFQUFFLFFBQVE7WUFDaEIsU0FBUyxFQUFFLFdBQVc7WUFDdEIsU0FBUyxFQUFFLFdBQVc7WUFDdEIsTUFBTSxFQUFFLDRDQUE0QztZQUNwRCxNQUFNLEVBQUUsbUZBQW1GO1lBQzNGLE9BQU8sRUFBRSw2RUFBNkU7WUFDdEYsTUFBTSxFQUFFLFdBQVc7WUFDbkIsRUFBRSxFQUFFLElBQUk7WUFDUixZQUFZLEVBQUUsc0JBQXNCO1lBQ3BDLGFBQWEsRUFBRSx5QkFBeUI7WUFDeEMsTUFBTSxFQUFFLFFBQVE7WUFDaEIsYUFBYSxFQUFFLGlCQUFpQjtZQUNoQyxPQUFPLEVBQUUscUJBQXFCO1lBQzlCLE9BQU8sRUFBRSxTQUFTO1lBQ2xCLE9BQU8sRUFBRSxzQkFBc0I7WUFDL0IsUUFBUSxFQUFFLDBDQUEwQztZQUNwRCxTQUFTLEVBQUUsMEJBQTBCO1lBQ3JDLE1BQU0sRUFBRSxxQ0FBcUM7WUFDN0MsZ0JBQWdCLEVBQUUseUJBQXlCO1lBQzNDLGtCQUFrQixFQUFFLDJCQUEyQjtZQUMvQyxVQUFVLEVBQUUsTUFBTTtZQUNsQixZQUFZLEVBQUUsbUJBQW1CO1lBQ2pDLE1BQU0sRUFBRSxvQkFBb0I7WUFDNUIsSUFBSSxFQUFFLE1BQU07WUFDWixJQUFJLEVBQUUscUJBQXFCO1lBQzNCLE1BQU0sRUFBRSxrQkFBa0I7WUFDMUIsS0FBSyxFQUFFLDZDQUE2QztZQUNwRCxvQkFBb0IsRUFBRSx5QkFBeUI7WUFDL0MsV0FBVyxFQUFFO2dCQUNYLEtBQUssRUFBRSxvQkFBb0I7Z0JBQzNCLE9BQU8sRUFBRSxzQkFBc0I7YUFDaEM7U0FDRjtLQUNGO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBlblRyYW5zbGF0aW9ucyA9IHtcbiAgJ0BwcnknOiB7XG4gICAgcmVzdGl0dXRpb246IHtcbiAgICAgIHJlc3RpdHV0aW9uX3R5cGU6ICdSZXN0aXR1dGlvbiB0eXBlJyxcbiAgICAgIGRhdGFfdHlwZTogJ0RhdGEgdHlwZScsXG4gICAgICBncmFwaF90aXRsZTogJ1RpdGxlJyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnRGVzY3JpcHRpb24nLFxuICAgICAgaW1hZ2U6ICdJbWFnZScsXG4gICAgICBjbG9zZTogJ0NhbmNlbCcsXG4gICAgICB2YWxpZGF0ZTogJ1NhdmUnLFxuICAgICAgc2hhcmU6ICdTaGFyZScsXG4gICAgICB2aWV3OiAnVmlldycsXG4gICAgICBjcmVhdGU6ICdDcmVhdGUgcmVzdGl0dXRpb24nLFxuICAgICAgY2FuY2VsOiAnQ2FuY2VsJyxcbiAgICAgIGNvbmZpZ3VyZTogJ0NvbmZpZ3VyZScsXG4gICAgICB2aXN1YWxpemU6ICdWaXN1YWxpemUnLFxuICAgICAgYWNjZXNzOiAnRG8geW91IHdhbnQgdG8gZ2l2ZSBhY2Nlc3MgLyBpbnZpdGUgdXNlcnM/JyxcbiAgICAgIHB1YmxpYzogJ01ha2UgdGhpcyBwYXJ0aWNpcGF0b3J5IHN1cnZleSBhY2Nlc3NpYmxlIHRvIGFsbCB1c2VycyBpbiB0aGUgcmVzdGl0dXRpb24gY2F0YWxvZycsXG4gICAgICBwcml2YXRlOiAnSW52aXRlIGNlcnRhaW4gdXNlcnMgb2YgeW91ciBjaG9pY2UgdG8gcmVzcG9uZCB0byB0aGlzIHBhcnRpY2lwYXRvcnkgc3VydmV5JyxcbiAgICAgIGNob2ljZTogJ1lvdSBjYW4gOicsXG4gICAgICBvcjogJ09yJyxcbiAgICAgIGNyZWF0ZV90aXRsZTogJ0NyZWF0ZSBhIHJlc3RpdHV0aW9uJyxcbiAgICAgIGNvbnN1bHRfdGl0bGU6ICdDb25zdWx0IHRoZSByZXN0aXR1dGlvbicsXG4gICAgICBzZWFyY2g6ICdTZWFyY2gnLFxuICAgICAgYmFja1RvQ2F0YWxvZzogJ0JhY2sgdG8gY2F0YWxvZycsXG4gICAgICBvcHRpb25zOiAnUmVzdGl0dXRpb24gb3B0aW9ucycsXG4gICAgICBjb25zdWx0OiAnQ29uc3VsdCcsXG4gICAgICBjYXRhbG9nOiAnUmVzdGl0dXRpb25zIGNhdGFsb2cnLFxuICAgICAgYWRkX2ljb246ICdBZGQgdGhpcyByZXN0aXR1dGlvbiBvbiB0aGUgcHJlc2VudGF0aW9uJyxcbiAgICAgIHNlbGVjdGlvbjogJ1NlbGVjdGVkIGRhdGEgc291cmNlKHMpOicsXG4gICAgICBzZWxlY3Q6ICdTZWxlY3Qgb25lIG9yIG1vcmUgZGF0YSBzb3VyY2UocykgOicsXG4gICAgICBzZWxlY3REYXRhU291cmNlOiAnU2VsZWN0IHRoaXMgZGF0YSBzb3VyY2UnLFxuICAgICAgdW5zZWxlY3REYXRhU291cmNlOiAnVW5zZWxlY3QgdGhpcyBkYXRhIHNvdXJjZScsXG4gICAgICBkYXRhU291cmNlOiAnRGF0YScsXG4gICAgICBub0RhdGFTb3VyY2U6ICdObyBkYXRhIGF2YWlsYWJsZScsXG4gICAgICBkZWxldGU6ICdEZWxldGUgcmVzdGl0dXRpb24nLFxuICAgICAgbmV4dDogJ05leHQnLFxuICAgICAgbG9jazogJ1ByaXZhdGUgcmVzdGl0dXRpb24nLFxuICAgICAgdXBkYXRlOiAnRWRpdCBpbmZvcm1hdGlvbicsXG4gICAgICBjb3ZlcjogJ0ltYWdlIHdpbGwgY292ZXIgdGhlIHdob2xlIHJlc3RpdHV0aW9uIGNhcmQnLFxuICAgICAgbm9EYXRhU291cmNlU2VsZWN0ZWQ6ICdObyBkYXRhIHNvdXJjZSBzZWxlY3RlZCcsXG4gICAgICBjYXRhbG9nVGFiczoge1xuICAgICAgICBtb2RlbDogJ1Jlc3RpdHV0aW9uIG1vZGVscycsXG4gICAgICAgIG5vTW9kZWw6ICdSZXN0aXR1dGlvbnMgY2F0YWxvZydcbiAgICAgIH1cbiAgICB9XG4gIH1cbn07XG4iXX0=