@provoly/dashboard 0.20.2 → 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 (203) hide show
  1. package/admin/components/admin-classes/admin-classes-view/admin-attributes-form/admin-attributes-form.component.d.ts +5 -2
  2. package/admin/components/admin-fields/admin-fields-select/admin-fields-select.component.d.ts +1 -1
  3. package/admin/i18n/en.translations.d.ts +1 -0
  4. package/admin/i18n/fr.translations.d.ts +1 -0
  5. package/components/metadata-editor/style/_o-metadata-editor.scss +0 -5
  6. package/dataset/style/_o-pry-dataset-card.scss +5 -37
  7. package/esm2022/admin/components/admin-abac-rules/admin-abac-rules-form/admin-abac-rules-form.component.mjs +3 -3
  8. package/esm2022/admin/components/admin-abac-rules/components/attribute-condition/attribute-condition.component.mjs +3 -3
  9. package/esm2022/admin/components/admin-abac-rules/components/metadata-condition/metadata-condition.component.mjs +3 -3
  10. package/esm2022/admin/components/admin-classes/admin-classes-customize/admin-classes-customize.component.mjs +5 -5
  11. package/esm2022/admin/components/admin-classes/admin-classes-customize/symbol/admin-classes-customize-symbol.component.mjs +3 -3
  12. package/esm2022/admin/components/admin-classes/admin-classes-customize/tooltip/admin-classes-customize-tooltip.component.mjs +5 -5
  13. package/esm2022/admin/components/admin-classes/admin-classes-form/admin-classes-form.component.mjs +3 -3
  14. package/esm2022/admin/components/admin-classes/admin-classes-view/admin-attributes-form/admin-attributes-form.component.mjs +42 -12
  15. package/esm2022/admin/components/admin-classes/admin-classes-view/admin-attributes-new/admin-attributes-new.component.mjs +1 -1
  16. package/esm2022/admin/components/admin-classes/admin-classes-view/admin-attributes-select/admin-attributes-select.component.mjs +3 -3
  17. package/esm2022/admin/components/admin-classes/admin-classes-view/admin-classes-view.component.mjs +3 -3
  18. package/esm2022/admin/components/admin-dataset/shared/admin-form-dataset/admin-form-dataset.component.mjs +3 -3
  19. package/esm2022/admin/components/admin-environment/admin-environment-form/admin-environment-form.component.mjs +3 -3
  20. package/esm2022/admin/components/admin-fields/admin-fields-form/admin-fields-form.component.mjs +3 -3
  21. package/esm2022/admin/components/admin-fields/admin-fields-select/admin-fields-select.component.mjs +2 -2
  22. package/esm2022/admin/components/admin-links/admin-links-new/admin-links-new.component.mjs +3 -3
  23. package/esm2022/admin/components/admin-metadata/shared/form-metadata/form-metadata.component.mjs +3 -3
  24. package/esm2022/admin/components/admin-metadata-rules/shared/admin-form-metadata-rules/admin-form-metadata-rules.component.mjs +3 -3
  25. package/esm2022/admin/i18n/en.translations.mjs +3 -2
  26. package/esm2022/admin/i18n/fr.translations.mjs +3 -2
  27. package/esm2022/components/metadata-editor/metadata-editor.component.mjs +3 -3
  28. package/esm2022/components/metadata-editor/style/css.component.mjs +2 -2
  29. package/esm2022/components/scheme-picker/scheme-picker.component.mjs +3 -3
  30. package/esm2022/dataset/components/dataset-card/dataset-card.component.mjs +5 -5
  31. package/esm2022/dataset/components/dataset-detail/dataset-detail.component.mjs +1 -2
  32. package/esm2022/dataset/i18n/fr.translations.mjs +2 -2
  33. package/esm2022/dataset/style/css.component.mjs +2 -2
  34. package/esm2022/filters/autocomplete/autocomplete.component.mjs +13 -6
  35. package/esm2022/filters/autocomplete/autocomplete.module.mjs +5 -5
  36. package/esm2022/filters/autocomplete/style/css.component.mjs +2 -2
  37. package/esm2022/filters/list/list-filter.component.mjs +1 -1
  38. package/esm2022/import/components/import.component.mjs +3 -3
  39. package/esm2022/lib/core/components/ellipsis.directive.mjs +31 -0
  40. package/esm2022/lib/core/components/select/select.component.mjs +163 -38
  41. package/esm2022/lib/core/components/select/select.module.mjs +4 -5
  42. package/esm2022/lib/core/components/share/share.component.mjs +3 -3
  43. package/esm2022/lib/core/components/translate-id/translate-id.pipe.mjs +7 -8
  44. package/esm2022/lib/core/core.module.mjs +8 -4
  45. package/esm2022/lib/core/i18n/en.translations.mjs +7 -5
  46. package/esm2022/lib/core/i18n/fr.translations.mjs +8 -5
  47. package/esm2022/lib/core/model/admin-api.model.mjs +1 -1
  48. package/esm2022/lib/core/model/display-options.interface.mjs +18 -4
  49. package/esm2022/lib/core/model/filter.interface.mjs +1 -1
  50. package/esm2022/lib/core/model/manifest.interface.mjs +1 -1
  51. package/esm2022/lib/core/public-api.mjs +2 -1
  52. package/esm2022/lib/core/store/class/class.interface.mjs +1 -1
  53. package/esm2022/lib/core/store/class/class.selectors.mjs +6 -2
  54. package/esm2022/lib/core/store/search/search.service.mjs +1 -1
  55. package/esm2022/lib/core/toolbox/toolbox-manifest.service.mjs +1 -4
  56. package/esm2022/lib/dashboard/components/context-menu/object-edition/object-edition.component.mjs +28 -28
  57. package/esm2022/lib/dashboard/components/widgets/header/widget-header.component.mjs +6 -15
  58. package/esm2022/lib/dashboard/components/widgets/settings/settings.component.mjs +3 -3
  59. package/esm2022/lib/dashboard/filter/components/filter-group/filter-group.component.mjs +3 -3
  60. package/esm2022/lib/dashboard/filter/style/css.component.mjs +2 -2
  61. package/esm2022/lib/dashboard/item-utils.mjs +7 -7
  62. package/esm2022/lib/dashboard/store/dashboard.effects.mjs +1 -4
  63. package/esm2022/pipeline/store/pipeline.actions.mjs +1 -1
  64. package/esm2022/pipeline-components/filter/component/filter.component.mjs +4 -4
  65. package/esm2022/pipeline-components/input-datasource/component/input-datasource.component.mjs +3 -3
  66. package/esm2022/pipeline-components/output-dataset/component/output-dataset.component.mjs +3 -3
  67. package/esm2022/presentation/components/add-edit-presentation/add-edit-presentation.component.mjs +3 -3
  68. package/esm2022/presentation/components/presentation.component.mjs +3 -3
  69. package/esm2022/presentation/i18n/fr.translations.mjs +9 -9
  70. package/esm2022/presentation/style/css.component.mjs +2 -2
  71. package/esm2022/restitution/components/restitution/restitution.component.mjs +23 -22
  72. package/esm2022/restitution/components/restitution-catalog/restitution-catalog.component.mjs +13 -6
  73. package/esm2022/restitution/i18n/en.translations.mjs +2 -2
  74. package/esm2022/restitution/i18n/fr.translations.mjs +4 -4
  75. package/esm2022/restitution/style/css.component.mjs +2 -2
  76. package/esm2022/search/search-mono-class/components/search-condition/search-condition.component.mjs +3 -3
  77. package/esm2022/search/search-mono-class/components/search-mono-class/search-mono-class.component.mjs +3 -3
  78. package/esm2022/search/search-mono-class/components/search-order/search-order.component.mjs +3 -3
  79. package/esm2022/search/search-multi-class/components/multi-class-condition/multi-class-condition.component.mjs +3 -3
  80. package/esm2022/supervision/components/supervision-integration-errors/supervision-integration-errors.component.mjs +3 -3
  81. package/esm2022/toolbox/components/automate-refresh/automate-refresh.component.mjs +3 -3
  82. package/esm2022/toolbox/components/clear-view/clear-view.component.mjs +3 -3
  83. package/esm2022/toolbox/components/drag-widgets/drag-widgets.component.mjs +3 -3
  84. package/esm2022/toolbox/components/filter-settings/filter-settings.component.mjs +6 -6
  85. package/esm2022/toolbox/components/launch-tab/launch-tab.component.mjs +3 -3
  86. package/esm2022/toolbox/components/named-query/named-query.component.mjs +3 -3
  87. package/esm2022/toolbox/components/refresh-datasets/refresh-datasets.component.mjs +3 -3
  88. package/esm2022/toolbox/components/save-view/save-view.component.mjs +3 -3
  89. package/esm2022/toolbox/components/select-grid-layout/select-grid-layout.component.mjs +3 -3
  90. package/esm2022/toolbox/components/toolbox.component.mjs +4 -3
  91. package/esm2022/tooltips/attribute/attribute-tooltip.component.mjs +8 -2
  92. package/esm2022/widgets/widget-aggregated-chart/component/widget-aggregated-chart.component.mjs +8 -7
  93. package/esm2022/widgets/widget-chart/component/widget-chart.component.mjs +12 -13
  94. package/esm2022/widgets/widget-graph/component/widget-graph.component.mjs +3 -3
  95. package/esm2022/widgets/widget-map/component/widget-map.component.mjs +13 -7
  96. package/esm2022/widgets/widget-map/i18n/en.translations.mjs +3 -2
  97. package/esm2022/widgets/widget-map/i18n/fr.translations.mjs +3 -2
  98. package/esm2022/widgets/widget-map/pipe/widget-map-geometry-fields-for.pipe.mjs +3 -3
  99. package/esm2022/widgets/widget-map/style/css.component.mjs +2 -2
  100. package/esm2022/widgets/widget-map/utils/cql-utils.class.mjs +2 -2
  101. package/esm2022/widgets/widget-map/utils/widget-map.utils.mjs +6 -6
  102. package/esm2022/widgets/widget-table/component/widget-table.component.mjs +8 -8
  103. package/esm2022/widgets/widget-table/get-value/get-value.pipe.mjs +2 -2
  104. package/esm2022/widgets/widget-tile/component/widget-tile.component.mjs +3 -3
  105. package/fesm2022/provoly-dashboard-admin.mjs +80 -48
  106. package/fesm2022/provoly-dashboard-admin.mjs.map +1 -1
  107. package/fesm2022/provoly-dashboard-components-metadata-editor.mjs +4 -4
  108. package/fesm2022/provoly-dashboard-components-metadata-editor.mjs.map +1 -1
  109. package/fesm2022/provoly-dashboard-components-scheme-picker.mjs +2 -2
  110. package/fesm2022/provoly-dashboard-components-scheme-picker.mjs.map +1 -1
  111. package/fesm2022/provoly-dashboard-dataset.mjs +5 -6
  112. package/fesm2022/provoly-dashboard-dataset.mjs.map +1 -1
  113. package/fesm2022/provoly-dashboard-filters-autocomplete.mjs +18 -11
  114. package/fesm2022/provoly-dashboard-filters-autocomplete.mjs.map +1 -1
  115. package/fesm2022/provoly-dashboard-filters-list.mjs +1 -1
  116. package/fesm2022/provoly-dashboard-filters-list.mjs.map +1 -1
  117. package/fesm2022/provoly-dashboard-import.mjs +2 -2
  118. package/fesm2022/provoly-dashboard-import.mjs.map +1 -1
  119. package/fesm2022/provoly-dashboard-pipeline-components-filter.mjs +3 -3
  120. package/fesm2022/provoly-dashboard-pipeline-components-filter.mjs.map +1 -1
  121. package/fesm2022/provoly-dashboard-pipeline-components-input-datasource.mjs +2 -2
  122. package/fesm2022/provoly-dashboard-pipeline-components-input-datasource.mjs.map +1 -1
  123. package/fesm2022/provoly-dashboard-pipeline-components-output-dataset.mjs +2 -2
  124. package/fesm2022/provoly-dashboard-pipeline-components-output-dataset.mjs.map +1 -1
  125. package/fesm2022/provoly-dashboard-pipeline.mjs.map +1 -1
  126. package/fesm2022/provoly-dashboard-presentation.mjs +14 -14
  127. package/fesm2022/provoly-dashboard-presentation.mjs.map +1 -1
  128. package/fesm2022/provoly-dashboard-restitution.mjs +39 -31
  129. package/fesm2022/provoly-dashboard-restitution.mjs.map +1 -1
  130. package/fesm2022/provoly-dashboard-search.mjs +8 -8
  131. package/fesm2022/provoly-dashboard-search.mjs.map +1 -1
  132. package/fesm2022/provoly-dashboard-supervision.mjs +2 -2
  133. package/fesm2022/provoly-dashboard-supervision.mjs.map +1 -1
  134. package/fesm2022/provoly-dashboard-toolbox.mjs +24 -23
  135. package/fesm2022/provoly-dashboard-toolbox.mjs.map +1 -1
  136. package/fesm2022/provoly-dashboard-tooltips-attribute.mjs +7 -1
  137. package/fesm2022/provoly-dashboard-tooltips-attribute.mjs.map +1 -1
  138. package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs +7 -6
  139. package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs.map +1 -1
  140. package/fesm2022/provoly-dashboard-widgets-widget-chart.mjs +11 -12
  141. package/fesm2022/provoly-dashboard-widgets-widget-chart.mjs.map +1 -1
  142. package/fesm2022/provoly-dashboard-widgets-widget-graph.mjs +2 -2
  143. package/fesm2022/provoly-dashboard-widgets-widget-graph.mjs.map +1 -1
  144. package/fesm2022/provoly-dashboard-widgets-widget-map.mjs +26 -18
  145. package/fesm2022/provoly-dashboard-widgets-widget-map.mjs.map +1 -1
  146. package/fesm2022/provoly-dashboard-widgets-widget-table.mjs +8 -8
  147. package/fesm2022/provoly-dashboard-widgets-widget-table.mjs.map +1 -1
  148. package/fesm2022/provoly-dashboard-widgets-widget-tile.mjs +2 -2
  149. package/fesm2022/provoly-dashboard-widgets-widget-tile.mjs.map +1 -1
  150. package/fesm2022/provoly-dashboard.mjs +281 -122
  151. package/fesm2022/provoly-dashboard.mjs.map +1 -1
  152. package/filters/autocomplete/autocomplete.component.d.ts +1 -0
  153. package/filters/autocomplete/autocomplete.module.d.ts +1 -1
  154. package/filters/autocomplete/style/_m-autocomplete.scss +16 -3
  155. package/lib/core/components/ellipsis.directive.d.ts +11 -0
  156. package/lib/core/components/select/select.component.d.ts +39 -19
  157. package/lib/core/components/select/select.module.d.ts +4 -5
  158. package/lib/core/components/translate-id/translate-id.pipe.d.ts +1 -3
  159. package/lib/core/core.module.d.ts +15 -14
  160. package/lib/core/i18n/en.translations.d.ts +4 -2
  161. package/lib/core/i18n/fr.translations.d.ts +5 -2
  162. package/lib/core/model/admin-api.model.d.ts +1 -0
  163. package/lib/core/model/display-options.interface.d.ts +11 -0
  164. package/lib/core/model/filter.interface.d.ts +1 -1
  165. package/lib/core/model/manifest.interface.d.ts +1 -5
  166. package/lib/core/public-api.d.ts +1 -0
  167. package/lib/core/store/class/class.interface.d.ts +1 -0
  168. package/lib/core/store/class/class.selectors.d.ts +105 -5
  169. package/lib/core/store/search/search.service.d.ts +1 -1
  170. package/lib/dashboard/components/widgets/header/widget-header.component.d.ts +2 -5
  171. package/lib/dashboard/filter/style/_o-pry-filter-group.scss +0 -11
  172. package/lib/dashboard/store/dashboard.effects.d.ts +0 -1
  173. package/lib/dashboard/store/dashboard.selectors.d.ts +0 -9
  174. package/package.json +7 -8
  175. package/pipeline/store/pipeline.actions.d.ts +1 -1
  176. package/presentation/style/_o-pry-new-presentation.scss +0 -7
  177. package/presentation/style/_o-pry-presentation.scss +20 -55
  178. package/restitution/components/restitution-catalog/restitution-catalog.component.d.ts +1 -1
  179. package/restitution/i18n/en.translations.d.ts +1 -1
  180. package/restitution/i18n/fr.translations.d.ts +3 -3
  181. package/schematics/migration.json +6 -1
  182. package/schematics/ng-update/version-0-20/index.d.ts +2 -0
  183. package/schematics/ng-update/version-0-20/index.js +19 -0
  184. package/schematics/ng-update/version-0-20/index.js.map +1 -0
  185. package/styles/components/_a-pry-select.scss +34 -10
  186. package/styles/components/_a-tooltip.scss +2 -2
  187. package/styles/components/_m-filter.scss +11 -20
  188. package/styles/components/_o-dashboard.scss +4 -0
  189. package/styles/components/_o-draggable-menu.scss +1 -1
  190. package/styles/components/_o-widget.scss +2 -2
  191. package/styles/main.scss +0 -1
  192. package/styles-theme/abstracts-theme/variables/_variables-typo.scss +9 -0
  193. package/styles-theme/components-theme/_a-pry-select.theme.scss +23 -96
  194. package/styles-theme/components-theme/_a-tooltip.theme.scss +2 -2
  195. package/styles-theme/components-theme/_o-pry-composed-condition.theme.scss +0 -12
  196. package/toolbox/components/filter-settings/filter-settings.component.d.ts +2 -2
  197. package/toolbox/components/toolbox.component.d.ts +1 -0
  198. package/tooltips/attribute/attribute-tooltip.component.d.ts +1 -0
  199. package/widgets/widget-chart/component/widget-chart.component.d.ts +0 -1
  200. package/widgets/widget-map/component/widget-map.component.d.ts +2 -0
  201. package/widgets/widget-map/i18n/en.translations.d.ts +1 -0
  202. package/widgets/widget-map/i18n/fr.translations.d.ts +1 -0
  203. package/widgets/widget-map/style/_o-layer-legend.scss +21 -0
@@ -90,11 +90,11 @@ export class AutomateRefreshComponent extends ToolboxActionComponent {
90
90
  }, 100);
91
91
  }
92
92
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AutomateRefreshComponent, deps: [{ token: i1.Store }, { token: i2.Overlay }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); }
93
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AutomateRefreshComponent, selector: "pry-automate-refresh", viewQueries: [{ propertyName: "datasourceList", first: true, predicate: ["datasourceList"], descendants: true, read: TemplateRef }, { propertyName: "refreshRateList", first: true, predicate: ["refreshRateList"], descendants: true, read: TemplateRef }], usesInheritance: true, ngImport: i0, template: "<pry-toolbox-css></pry-toolbox-css>\n<div class=\"a-tooltip\" [attr.data-tooltip]=\"'@pry.toolbox.automateRefresh' | i18n\" data-tooltip-position=\"bottom\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary -size-md automate-btn\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n (click)=\"toggleDatasourceList()\"\n [disabled]=\"((datasources$ | async)?.length ?? 0) < 1\"\n >\n <ng-container *ngIf=\"displayLabels\">\n {{ '@pry.toolbox.automateRefresh' | i18n }}\n </ng-container>\n </button>\n</div>\n\n<ng-template #datasourceList>\n <div *ngIf=\"datasources$ | async as dataSources\">\n <button\n *ngIf=\"dataSources.length > 0\"\n class=\"refresh-line a-btn a-btn--icon-text -size-sm ds-0\"\n (click)=\"toggleRefreshRateList('all', 0)\"\n [class.-selected]=\"selectedDatasourceId === 'all'\"\n >\n Tous\n </button>\n <button\n *ngFor=\"let datasourceId of dataSources; let i = index\"\n class=\"refresh-line a-btn a-btn--icon-text -size-sm ds-{{ i + 1 }}\"\n (click)=\"toggleRefreshRateList(datasourceId, i + 1)\"\n [class.-selected]=\"selectedDatasourceId === datasourceId\"\n >\n {{ datasourceId | translateId : { type: 'datasource', output: 'name' } | async }}\n </button>\n </div>\n</ng-template>\n\n<ng-template #refreshRateList>\n <div>\n <button\n *ngFor=\"let rate of refreshRates\"\n class=\"refresh-line a-btn a-btn--icon-text -size-sm\"\n (click)=\"toggleRefreshRate(rate)\"\n >\n <pry-icon\n [width]=\"20\"\n [height]=\"20\"\n iconSvg=\"check\"\n *ngIf=\"\n (selectedDatasourceId === 'all'\n ? (allRefreshRate$ | async)\n : ((refreshRates$ | async) ?? {})[selectedDatasourceId] ?? 0) === rate\n \"\n ></pry-icon>\n {{ '@pry.search.namedQuery.refresh.' + rate | i18n }}\n </button>\n </div>\n</ng-template>\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: i2.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "component", type: i4.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i5.PrySelectGridLayoutCssComponent, selector: "pry-toolbox-css" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.TranslateIdPipe, name: "translateId" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
93
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AutomateRefreshComponent, selector: "pry-automate-refresh", viewQueries: [{ propertyName: "datasourceList", first: true, predicate: ["datasourceList"], descendants: true, read: TemplateRef }, { propertyName: "refreshRateList", first: true, predicate: ["refreshRateList"], descendants: true, read: TemplateRef }], usesInheritance: true, ngImport: i0, template: "<pry-toolbox-css></pry-toolbox-css>\n<button\n type=\"button\"\n class=\"a-btn a-btn--secondary -size-md automate-btn\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n (click)=\"toggleDatasourceList()\"\n [disabled]=\"((datasources$ | async)?.length ?? 0) < 1\"\n>\n <ng-container *ngIf=\"displayLabels\">\n {{ '@pry.toolbox.automateRefresh' | i18n }}\n </ng-container>\n</button>\n\n<ng-template #datasourceList>\n <div *ngIf=\"datasources$ | async as dataSources\">\n <button\n *ngIf=\"dataSources.length > 0\"\n class=\"refresh-line a-btn a-btn--icon-text -size-sm ds-0\"\n (click)=\"toggleRefreshRateList('all', 0)\"\n [class.-selected]=\"selectedDatasourceId === 'all'\"\n >\n Tous\n </button>\n <button\n *ngFor=\"let datasourceId of dataSources; let i = index\"\n class=\"refresh-line a-btn a-btn--icon-text -size-sm ds-{{ i + 1 }}\"\n (click)=\"toggleRefreshRateList(datasourceId, i + 1)\"\n [class.-selected]=\"selectedDatasourceId === datasourceId\"\n >\n {{ datasourceId | translateId : { type: 'datasource', output: 'name' } | async }}\n </button>\n </div>\n</ng-template>\n\n<ng-template #refreshRateList>\n <div>\n <button\n *ngFor=\"let rate of refreshRates\"\n class=\"refresh-line a-btn a-btn--icon-text -size-sm\"\n (click)=\"toggleRefreshRate(rate)\"\n >\n <pry-icon\n [width]=\"20\"\n [height]=\"20\"\n iconSvg=\"check\"\n *ngIf=\"\n (selectedDatasourceId === 'all'\n ? (allRefreshRate$ | async)\n : ((refreshRates$ | async) ?? {})[selectedDatasourceId] ?? 0) === rate\n \"\n ></pry-icon>\n {{ '@pry.search.namedQuery.refresh.' + rate | i18n }}\n </button>\n </div>\n</ng-template>\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: i2.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "component", type: i4.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i5.PrySelectGridLayoutCssComponent, selector: "pry-toolbox-css" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.TranslateIdPipe, name: "translateId" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
94
94
  }
95
95
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AutomateRefreshComponent, decorators: [{
96
96
  type: Component,
97
- args: [{ selector: 'pry-automate-refresh', template: "<pry-toolbox-css></pry-toolbox-css>\n<div class=\"a-tooltip\" [attr.data-tooltip]=\"'@pry.toolbox.automateRefresh' | i18n\" data-tooltip-position=\"bottom\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary -size-md automate-btn\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n (click)=\"toggleDatasourceList()\"\n [disabled]=\"((datasources$ | async)?.length ?? 0) < 1\"\n >\n <ng-container *ngIf=\"displayLabels\">\n {{ '@pry.toolbox.automateRefresh' | i18n }}\n </ng-container>\n </button>\n</div>\n\n<ng-template #datasourceList>\n <div *ngIf=\"datasources$ | async as dataSources\">\n <button\n *ngIf=\"dataSources.length > 0\"\n class=\"refresh-line a-btn a-btn--icon-text -size-sm ds-0\"\n (click)=\"toggleRefreshRateList('all', 0)\"\n [class.-selected]=\"selectedDatasourceId === 'all'\"\n >\n Tous\n </button>\n <button\n *ngFor=\"let datasourceId of dataSources; let i = index\"\n class=\"refresh-line a-btn a-btn--icon-text -size-sm ds-{{ i + 1 }}\"\n (click)=\"toggleRefreshRateList(datasourceId, i + 1)\"\n [class.-selected]=\"selectedDatasourceId === datasourceId\"\n >\n {{ datasourceId | translateId : { type: 'datasource', output: 'name' } | async }}\n </button>\n </div>\n</ng-template>\n\n<ng-template #refreshRateList>\n <div>\n <button\n *ngFor=\"let rate of refreshRates\"\n class=\"refresh-line a-btn a-btn--icon-text -size-sm\"\n (click)=\"toggleRefreshRate(rate)\"\n >\n <pry-icon\n [width]=\"20\"\n [height]=\"20\"\n iconSvg=\"check\"\n *ngIf=\"\n (selectedDatasourceId === 'all'\n ? (allRefreshRate$ | async)\n : ((refreshRates$ | async) ?? {})[selectedDatasourceId] ?? 0) === rate\n \"\n ></pry-icon>\n {{ '@pry.search.namedQuery.refresh.' + rate | i18n }}\n </button>\n </div>\n</ng-template>\n" }]
97
+ args: [{ selector: 'pry-automate-refresh', template: "<pry-toolbox-css></pry-toolbox-css>\n<button\n type=\"button\"\n class=\"a-btn a-btn--secondary -size-md automate-btn\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n (click)=\"toggleDatasourceList()\"\n [disabled]=\"((datasources$ | async)?.length ?? 0) < 1\"\n>\n <ng-container *ngIf=\"displayLabels\">\n {{ '@pry.toolbox.automateRefresh' | i18n }}\n </ng-container>\n</button>\n\n<ng-template #datasourceList>\n <div *ngIf=\"datasources$ | async as dataSources\">\n <button\n *ngIf=\"dataSources.length > 0\"\n class=\"refresh-line a-btn a-btn--icon-text -size-sm ds-0\"\n (click)=\"toggleRefreshRateList('all', 0)\"\n [class.-selected]=\"selectedDatasourceId === 'all'\"\n >\n Tous\n </button>\n <button\n *ngFor=\"let datasourceId of dataSources; let i = index\"\n class=\"refresh-line a-btn a-btn--icon-text -size-sm ds-{{ i + 1 }}\"\n (click)=\"toggleRefreshRateList(datasourceId, i + 1)\"\n [class.-selected]=\"selectedDatasourceId === datasourceId\"\n >\n {{ datasourceId | translateId : { type: 'datasource', output: 'name' } | async }}\n </button>\n </div>\n</ng-template>\n\n<ng-template #refreshRateList>\n <div>\n <button\n *ngFor=\"let rate of refreshRates\"\n class=\"refresh-line a-btn a-btn--icon-text -size-sm\"\n (click)=\"toggleRefreshRate(rate)\"\n >\n <pry-icon\n [width]=\"20\"\n [height]=\"20\"\n iconSvg=\"check\"\n *ngIf=\"\n (selectedDatasourceId === 'all'\n ? (allRefreshRate$ | async)\n : ((refreshRates$ | async) ?? {})[selectedDatasourceId] ?? 0) === rate\n \"\n ></pry-icon>\n {{ '@pry.search.namedQuery.refresh.' + rate | i18n }}\n </button>\n </div>\n</ng-template>\n" }]
98
98
  }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Overlay }, { type: i0.ViewContainerRef }]; }, propDecorators: { datasourceList: [{
99
99
  type: ViewChild,
100
100
  args: ['datasourceList', { read: TemplateRef }]
@@ -102,4 +102,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
102
102
  type: ViewChild,
103
103
  args: ['refreshRateList', { read: TemplateRef }]
104
104
  }] } });
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b21hdGUtcmVmcmVzaC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC90b29sYm94L2NvbXBvbmVudHMvYXV0b21hdGUtcmVmcmVzaC9hdXRvbWF0ZS1yZWZyZXNoLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL3Rvb2xib3gvY29tcG9uZW50cy9hdXRvbWF0ZS1yZWZyZXNoL2F1dG9tYXRlLXJlZnJlc2guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFXLGFBQWEsRUFBYyxNQUFNLHNCQUFzQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsU0FBUyxFQUFVLFdBQVcsRUFBRSxTQUFTLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBRTVGLE9BQU8sRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN6RixPQUFPLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBYyxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNENBQTRDLENBQUM7Ozs7Ozs7QUFNcEYsTUFBTSxPQUFPLHdCQUF5QixTQUFRLHNCQUFzQjtJQWFsRSxZQUFZLEtBQVksRUFBVSxPQUFnQixFQUFVLGdCQUFrQztRQUM1RixLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFEbUIsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUFVLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFUOUYsaUJBQVksR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRy9CLHlC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LElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1lBQ3RDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLENBQUM7WUFDekMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2YsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ1YsQ0FBQzsrR0F4R1Usd0JBQXdCO21HQUF4Qix3QkFBd0IseUpBQ0UsV0FBVyw2R0FDVixXQUFXLG9EQ2RuRCxnNkRBMERBOzs0RkQ5Q2Esd0JBQXdCO2tCQUpwQyxTQUFTOytCQUNFLHNCQUFzQjtpSkFJb0IsY0FBYztzQkFBakUsU0FBUzt1QkFBQyxnQkFBZ0IsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7Z0JBQ0csZUFBZTtzQkFBbkUsU0FBUzt1QkFBQyxpQkFBaUIsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPdmVybGF5LCBPdmVybGF5Q29uZmlnLCBPdmVybGF5UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgVGVtcGxhdGVQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IENvbmZpZ0FjdGlvbnMsIERhc2hib2FyZEFjdGlvbnMsIERhc2hib2FyZFNlbGVjdG9ycyB9IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZCc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBtYXAsIE9ic2VydmFibGUsIHRha2UgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFRvb2xib3hBY3Rpb25Db21wb25lbnQgfSBmcm9tICcuLi90b29sYm94LWFjdGlvbi90b29sYm94LWFjdGlvbi5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwcnktYXV0b21hdGUtcmVmcmVzaCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9hdXRvbWF0ZS1yZWZyZXNoLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBBdXRvbWF0ZVJlZnJlc2hDb21wb25lbnQgZXh0ZW5kcyBUb29sYm94QWN0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQFZpZXdDaGlsZCgnZGF0YXNvdXJjZUxpc3QnLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pIGRhdGFzb3VyY2VMaXN0ITogVGVtcGxhdGVSZWY8YW55PjtcbiAgQFZpZXdDaGlsZCgncmVmcmVzaFJhdGVMaXN0JywgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KSByZWZyZXNoUmF0ZUxpc3QhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIHJlZnJlc2hSYXRlcyA9IFswLCAxMCwgMzAsIDYwXTtcbiAgZGF0YXNvdXJjZXMkOiBPYnNlcnZhYmxlPHN0cmluZ1tdPjtcbiAgcmVmcmVzaFJhdGVzJCE6IE9ic2VydmFibGU8eyBbcDogc3RyaW5nXTogbnVtYmVyIH0+O1xuICBzZWxlY3RlZERhdGFzb3VyY2VJZDogc3RyaW5nID0gJyc7XG4gIGFsbFJlZnJlc2hSYXRlJCE6IE9ic2VydmFibGU8bnVtYmVyPjtcblxuICBwcml2YXRlIG92ZXJsYXlSZWZEYXRhc291cmNlTGlzdD86IE92ZXJsYXlSZWY7XG4gIHByaXZhdGUgb3ZlcmxheVJlZlJlZnJlc2hMaXN0PzogT3ZlcmxheVJlZjtcblxuICBjb25zdHJ1Y3RvcihzdG9yZTogU3RvcmUsIHByaXZhdGUgb3ZlcmxheTogT3ZlcmxheSwgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmKSB7XG4gICAgc3VwZXIoc3RvcmUpO1xuICAgIHRoaXMuZGF0YXNvdXJjZXMkID0gdGhpcy5zdG9yZVxuICAgICAgLnNlbGVjdChEYXNoYm9hcmRTZWxlY3RvcnMubWFuaWZlc3REYXRhc291cmNlcylcbiAgICAgIC5waXBlKG1hcCgoZHNzKSA9PiBkc3MubWFwKChkcykgPT4gZHMuZGF0YXNldElkKSkpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5yZWZyZXNoUmF0ZXMkID0gdGhpcy5zdG9yZS5zZWxlY3QoRGFzaGJvYXJkU2VsZWN0b3JzLnJlZnJlc2hSYXRlcyk7XG5cbiAgICB0aGlzLmFsbFJlZnJlc2hSYXRlJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuZGF0YXNvdXJjZXMkLCB0aGlzLnJlZnJlc2hSYXRlcyRdKS5waXBlKFxuICAgICAgbWFwKChbZGF0YXNvdXJjZXMsIHJlZnJlc2hSYXRlc10pID0+XG4gICAgICAgIGRhdGFzb3VyY2VzLm1hcCgoZHMpID0+IHJlZnJlc2hSYXRlc1tkc10gPz8gMCkucmVkdWNlKChwLCBjKSA9PiAocCA9PT0gYyA/IGMgOiAtMSkpXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIHRvZ2dsZURhdGFzb3VyY2VMaXN0KCkge1xuICAgIGlmICghdGhpcy5vdmVybGF5UmVmRGF0YXNvdXJjZUxpc3QpIHtcbiAgICAgIHRoaXMub3ZlcmxheVJlZkRhdGFzb3VyY2VMaXN0ID0gdGhpcy5vdmVybGF5LmNyZWF0ZShcbiAgICAgICAgbmV3IE92ZXJsYXlDb25maWcoe1xuICAgICAgICAgIGhhc0JhY2tkcm9wOiBmYWxzZSxcbiAgICAgICAgICBwYW5lbENsYXNzOiBbJ2RhdGFzb3VyY2UtYmcnLCAncmVmcmVzaC1ycyddXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChDb25maWdBY3Rpb25zLmFkZGluZ092ZXJsYXkoeyBpZDogdGhpcy5jb25zdHJ1Y3Rvci5uYW1lIH0pKTtcbiAgICAgIHRoaXMub3ZlcmxheVJlZkRhdGFzb3VyY2VMaXN0LmF0dGFjaChuZXcgVGVtcGxhdGVQb3J0YWwodGhpcy5kYXRhc291cmNlTGlzdCwgdGhpcy52aWV3Q29udGFpbmVyUmVmKSk7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgICB0aGlzLm92ZXJsYXlSZWZEYXRhc291cmNlTGlzdC5iYWNrZHJvcENsaWNrKCkuc3Vic2NyaWJlKChfKSA9PiB0aGlzLmhpZGUodGhpcy5vdmVybGF5UmVmRGF0YXNvdXJjZUxpc3QpKVxuICAgICAgKTtcbiAgICAgIGNvbnN0IHJlZnJlc2hFbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmRhdGFzb3VyY2UtYmcnKSBhcyBIVE1MRGl2RWxlbWVudDtcbiAgICAgIGNvbnN0IHJlZnJlc2ggPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuYXV0b21hdGUtYnRuJykgYXMgSFRNTERpdkVsZW1lbnQ7XG4gICAgICBpZiAoISFyZWZyZXNoRWxlbWVudCkge1xuICAgICAgICBjb25zdCByZWN0ID0gcmVmcmVzaC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgcmVmcmVzaEVsZW1lbnQuc3R5bGUubGVmdCA9IHJlY3QubGVmdCArIHJlY3Qud2lkdGggKyAxMCArICdweCc7XG4gICAgICAgIHJlZnJlc2hFbGVtZW50LnN0eWxlLnRvcCA9IHJlY3QudG9wICsgJ3B4JztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBoaWRlKG92ZXJsYXlSZWY6IE92ZXJsYXlSZWYgfCB1bmRlZmluZWQpIHtcbiAgICBpZiAob3ZlcmxheVJlZikge1xuICAgICAgb3ZlcmxheVJlZi5kaXNwb3NlKCk7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENvbmZpZ0FjdGlvbnMuY2xvc2VPdmVybGF5KHsgaWQ6IHRoaXMuY29uc3RydWN0b3IubmFtZSB9KSk7XG4gICAgfVxuICB9XG5cbiAgdG9nZ2xlUmVmcmVzaFJhdGVMaXN0KGRhdGFzb3VyY2VJZDogc3RyaW5nLCB0ZW1wbGF0ZUluZGV4OiBudW1iZXIpIHtcbiAgICBpZiAodGhpcy5vdmVybGF5UmVmUmVmcmVzaExpc3QpIHtcbiAgICAgIHRoaXMuaGlkZSh0aGlzLm92ZXJsYXlSZWZSZWZyZXNoTGlzdCk7XG4gICAgfVxuICAgIHRoaXMuc2VsZWN0RGF0YXNvdXJjZShkYXRhc291cmNlSWQpO1xuICAgIHRoaXMub3ZlcmxheVJlZlJlZnJlc2hMaXN0ID0gdGhpcy5vdmVybGF5LmNyZWF0ZShcbiAgICAgIG5ldyBPdmVybGF5Q29uZmlnKHtcbiAgICAgICAgaGFzQmFja2Ryb3A6IGZhbHNlLFxuICAgICAgICBwYW5lbENsYXNzOiBbJ3JlZnJlc2gtYmcnLCAncmVmcmVzaC1ycyddXG4gICAgICB9KVxuICAgICk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChDb25maWdBY3Rpb25zLmFkZGluZ092ZXJsYXkoeyBpZDogdGhpcy5jb25zdHJ1Y3Rvci5uYW1lIH0pKTtcbiAgICB0aGlzLm92ZXJsYXlSZWZSZWZyZXNoTGlzdC5hdHRhY2gobmV3IFRlbXBsYXRlUG9ydGFsKHRoaXMucmVmcmVzaFJhdGVMaXN0LCB0aGlzLnZpZXdDb250YWluZXJSZWYpKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy5vdmVybGF5UmVmUmVmcmVzaExpc3QuYmFja2Ryb3BDbGljaygpLnN1YnNjcmliZSgoXykgPT4gdGhpcy5oaWRlKHRoaXMub3ZlcmxheVJlZlJlZnJlc2hMaXN0KSlcbiAgICApO1xuICAgIGNvbnN0IHJlZnJlc2hFbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnJlZnJlc2gtYmcnKSBhcyBIVE1MRGl2RWxlbWVudDtcbiAgICBjb25zdCByZWZyZXNoID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgLmRzLSR7dGVtcGxhdGVJbmRleH1gKSBhcyBIVE1MRGl2RWxlbWVudDtcbiAgICBpZiAoISFyZWZyZXNoRWxlbWVudCkge1xuICAgICAgY29uc3QgcmVjdCA9IHJlZnJlc2guZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICByZWZyZXNoRWxlbWVudC5zdHlsZS5sZWZ0ID0gcmVjdC5sZWZ0ICsgcmVjdC53aWR0aCArIDUgKyAncHgnO1xuICAgICAgcmVmcmVzaEVsZW1lbnQuc3R5bGUudG9wID0gcmVjdC50b3AgKyAncHgnO1xuICAgIH1cbiAgfVxuXG4gIHNlbGVjdERhdGFzb3VyY2UoaWQ6IHN0cmluZykge1xuICAgIHRoaXMuc2VsZWN0ZWREYXRhc291cmNlSWQgPSBpZDtcbiAgfVxuXG4gIHRvZ2dsZVJlZnJlc2hSYXRlKHJhdGU6IG51bWJlcikge1xuICAgIGlmICh0aGlzLnNlbGVjdGVkRGF0YXNvdXJjZUlkICE9PSAnYWxsJykge1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChEYXNoYm9hcmRBY3Rpb25zLnNldFJlZnJlc2hSYXRlKHsgcmF0ZSwgaWQ6IHRoaXMuc2VsZWN0ZWREYXRhc291cmNlSWQgfSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRhdGFzb3VyY2VzJC5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgoZGF0YXNvdXJjZUlkcykgPT4ge1xuICAgICAgICBkYXRhc291cmNlSWRzLmZvckVhY2goKGlkKSA9PiB7XG4gICAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChEYXNoYm9hcmRBY3Rpb25zLnNldFJlZnJlc2hSYXRlKHsgcmF0ZSwgaWQgfSkpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuaGlkZSh0aGlzLm92ZXJsYXlSZWZSZWZyZXNoTGlzdCk7XG4gICAgICB0aGlzLmhpZGUodGhpcy5vdmVybGF5UmVmRGF0YXNvdXJjZUxpc3QpO1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH0sIDEwMCk7XG4gIH1cbn1cbiIsIjxwcnktdG9vbGJveC1jc3M+PC9wcnktdG9vbGJveC1jc3M+XG48ZGl2IGNsYXNzPVwiYS10b29sdGlwXCIgW2F0dHIuZGF0YS10b29sdGlwXT1cIidAcHJ5LnRvb2xib3guYXV0b21hdGVSZWZyZXNoJyB8IGkxOG5cIiBkYXRhLXRvb2x0aXAtcG9zaXRpb249XCJib3R0b21cIj5cbiAgPGJ1dHRvblxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgIGNsYXNzPVwiYS1idG4gYS1idG4tLXNlY29uZGFyeSAtc2l6ZS1tZCBhdXRvbWF0ZS1idG5cIlxuICAgIGNka092ZXJsYXlPcmlnaW5cbiAgICAjdHJpZ2dlcj1cImNka092ZXJsYXlPcmlnaW5cIlxuICAgIChjbGljayk9XCJ0b2dnbGVEYXRhc291cmNlTGlzdCgpXCJcbiAgICBbZGlzYWJsZWRdPVwiKChkYXRhc291cmNlcyQgfCBhc3luYyk/Lmxlbmd0aCA/PyAwKSA8IDFcIlxuICA+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRpc3BsYXlMYWJlbHNcIj5cbiAgICAgIHt7ICdAcHJ5LnRvb2xib3guYXV0b21hdGVSZWZyZXNoJyB8IGkxOG4gfX1cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9idXR0b24+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNkYXRhc291cmNlTGlzdD5cbiAgPGRpdiAqbmdJZj1cImRhdGFzb3VyY2VzJCB8IGFzeW5jIGFzIGRhdGFTb3VyY2VzXCI+XG4gICAgPGJ1dHRvblxuICAgICAgKm5nSWY9XCJkYXRhU291cmNlcy5sZW5ndGggPiAwXCJcbiAgICAgIGNsYXNzPVwicmVmcmVzaC1saW5lIGEtYnRuIGEtYnRuLS1pY29uLXRleHQgLXNpemUtc20gZHMtMFwiXG4gICAgICAoY2xpY2spPVwidG9nZ2xlUmVmcmVzaFJhdGVMaXN0KCdhbGwnLCAwKVwiXG4gICAgICBbY2xhc3MuLXNlbGVjdGVkXT1cInNlbGVjdGVkRGF0YXNvdXJjZUlkID09PSAnYWxsJ1wiXG4gICAgPlxuICAgICAgVG91c1xuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b25cbiAgICAgICpuZ0Zvcj1cImxldCBkYXRhc291cmNlSWQgb2YgZGF0YVNvdXJjZXM7IGxldCBpID0gaW5kZXhcIlxuICAgICAgY2xhc3M9XCJyZWZyZXNoLWxpbmUgYS1idG4gYS1idG4tLWljb24tdGV4dCAtc2l6ZS1zbSBkcy17eyBpICsgMSB9fVwiXG4gICAgICAoY2xpY2spPVwidG9nZ2xlUmVmcmVzaFJhdGVMaXN0KGRhdGFzb3VyY2VJZCwgaSArIDEpXCJcbiAgICAgIFtjbGFzcy4tc2VsZWN0ZWRdPVwic2VsZWN0ZWREYXRhc291cmNlSWQgPT09IGRhdGFzb3VyY2VJZFwiXG4gICAgPlxuICAgICAge3sgZGF0YXNvdXJjZUlkIHwgdHJhbnNsYXRlSWQgOiB7IHR5cGU6ICdkYXRhc291cmNlJywgb3V0cHV0OiAnbmFtZScgfSB8IGFzeW5jIH19XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNyZWZyZXNoUmF0ZUxpc3Q+XG4gIDxkaXY+XG4gICAgPGJ1dHRvblxuICAgICAgKm5nRm9yPVwibGV0IHJhdGUgb2YgcmVmcmVzaFJhdGVzXCJcbiAgICAgIGNsYXNzPVwicmVmcmVzaC1saW5lIGEtYnRuIGEtYnRuLS1pY29uLXRleHQgLXNpemUtc21cIlxuICAgICAgKGNsaWNrKT1cInRvZ2dsZVJlZnJlc2hSYXRlKHJhdGUpXCJcbiAgICA+XG4gICAgICA8cHJ5LWljb25cbiAgICAgICAgW3dpZHRoXT1cIjIwXCJcbiAgICAgICAgW2hlaWdodF09XCIyMFwiXG4gICAgICAgIGljb25Tdmc9XCJjaGVja1wiXG4gICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgKHNlbGVjdGVkRGF0YXNvdXJjZUlkID09PSAnYWxsJ1xuICAgICAgICAgICAgPyAoYWxsUmVmcmVzaFJhdGUkIHwgYXN5bmMpXG4gICAgICAgICAgICA6ICgocmVmcmVzaFJhdGVzJCB8IGFzeW5jKSA/PyB7fSlbc2VsZWN0ZWREYXRhc291cmNlSWRdID8/IDApID09PSByYXRlXG4gICAgICAgIFwiXG4gICAgICA+PC9wcnktaWNvbj5cbiAgICAgIHt7ICdAcHJ5LnNlYXJjaC5uYW1lZFF1ZXJ5LnJlZnJlc2guJyArIHJhdGUgfCBpMThuIH19XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b21hdGUtcmVmcmVzaC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC90b29sYm94L2NvbXBvbmVudHMvYXV0b21hdGUtcmVmcmVzaC9hdXRvbWF0ZS1yZWZyZXNoLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL3Rvb2xib3gvY29tcG9uZW50cy9hdXRvbWF0ZS1yZWZyZXNoL2F1dG9tYXRlLXJlZnJlc2guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFXLGFBQWEsRUFBYyxNQUFNLHNCQUFzQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsU0FBUyxFQUFVLFdBQVcsRUFBRSxTQUFTLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBRTVGLE9BQU8sRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN6RixPQUFPLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBYyxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNENBQTRDLENBQUM7Ozs7Ozs7QUFNcEYsTUFBTSxPQUFPLHdCQUF5QixTQUFRLHNCQUFzQjtJQWFsRSxZQUFZLEtBQVksRUFBVSxPQUFnQixFQUFVLGdCQUFrQztRQUM1RixLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFEbUIsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUFVLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFUOUYsaUJBQVksR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRy9CLHlCQUFvQixHQUFXLEVBQUUsQ0FBQztRQVFoQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLO2FBQzNCLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxtQkFBbUIsQ0FBQzthQUM5QyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUV4RSxJQUFJLENBQUMsZUFBZSxHQUFHLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUNoRixHQUFHLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxZQUFZLENBQUMsRUFBRSxFQUFFLENBQ2xDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUNwRixDQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsb0JBQW9CO1FBQ2xCLElBQUksQ0FBQyxJQUFJLENBQUMsd0JBQXdCLEVBQUU7WUFDbEMsSUFBSSxDQUFDLHdCQUF3QixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUNqRCxJQUFJLGFBQWEsQ0FBQztnQkFDaEIsV0FBVyxFQUFFLEtBQUs7Z0JBQ2xCLFVBQVUsRUFBRSxDQUFDLGVBQWUsRUFBRSxZQUFZLENBQUM7YUFDNUMsQ0FBQyxDQUNILENBQUM7WUFDRixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ2hGLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO1lBQ3JHLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUNwQixJQUFJLENBQUMsd0JBQXdCLENBQUMsYUFBYSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLENBQ3pHLENBQUM7WUFDRixNQUFNLGNBQWMsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFtQixDQUFDO1lBQ2xGLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFtQixDQUFDO1lBQzFFLElBQUksQ0FBQyxDQUFDLGNBQWMsRUFBRTtnQkFDcEIsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLHFCQUFxQixFQUFFLENBQUM7Z0JBQzdDLGNBQWMsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDO2dCQUMvRCxjQUFjLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQzthQUM1QztTQUNGO0lBQ0gsQ0FBQztJQUVELElBQUksQ0FBQyxVQUFrQztRQUNyQyxJQUFJLFVBQVUsRUFBRTtZQUNkLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ2hGO0lBQ0gsQ0FBQztJQUVELHFCQUFxQixDQUFDLFlBQW9CLEVBQUUsYUFBcUI7UUFDL0QsSUFBSSxJQUFJLENBQUMscUJBQXFCLEVBQUU7WUFDOUIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQztTQUN2QztRQUNELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQzlDLElBQUksYUFBYSxDQUFDO1lBQ2hCLFdBQVcsRUFBRSxLQUFLO1lBQ2xCLFVBQVUsRUFBRSxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUM7U0FDekMsQ0FBQyxDQUNILENBQUM7UUFDRixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2hGLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO1FBQ25HLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUNwQixJQUFJLENBQUMscUJBQXFCLENBQUMsYUFBYSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQ25HLENBQUM7UUFDRixNQUFNLGNBQWMsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBbUIsQ0FBQztRQUMvRSxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE9BQU8sYUFBYSxFQUFFLENBQW1CLENBQUM7UUFDakYsSUFBSSxDQUFDLENBQUMsY0FBYyxFQUFFO1lBQ3BCLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQzdDLGNBQWMsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDO1lBQzlELGNBQWMsQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDO1NBQzVDO0lBQ0gsQ0FBQztJQUVELGdCQUFnQixDQUFDLEVBQVU7UUFDekIsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQsaUJBQWlCLENBQUMsSUFBWTtRQUM1QixJQUFJLElBQUksQ0FBQyxvQkFBb0IsS0FBSyxLQUFLLEVBQUU7WUFDdkMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDL0Y7YUFBTTtZQUNMLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLGFBQWEsRUFBRSxFQUFFO2dCQUMxRCxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUU7b0JBQzNCLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQ3JFLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7U0FDSjtRQUNELFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1lBQ3RDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLENBQUM7WUFDekMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2YsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ1YsQ0FBQzsrR0F4R1Usd0JBQXdCO21HQUF4Qix3QkFBd0IseUpBQ0UsV0FBVyw2R0FDVixXQUFXLG9EQ2RuRCxzd0RBd0RBOzs0RkQ1Q2Esd0JBQXdCO2tCQUpwQyxTQUFTOytCQUNFLHNCQUFzQjtpSkFJb0IsY0FBYztzQkFBakUsU0FBUzt1QkFBQyxnQkFBZ0IsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7Z0JBQ0csZUFBZTtzQkFBbkUsU0FBUzt1QkFBQyxpQkFBaUIsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPdmVybGF5LCBPdmVybGF5Q29uZmlnLCBPdmVybGF5UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgVGVtcGxhdGVQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IENvbmZpZ0FjdGlvbnMsIERhc2hib2FyZEFjdGlvbnMsIERhc2hib2FyZFNlbGVjdG9ycyB9IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZCc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBtYXAsIE9ic2VydmFibGUsIHRha2UgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFRvb2xib3hBY3Rpb25Db21wb25lbnQgfSBmcm9tICcuLi90b29sYm94LWFjdGlvbi90b29sYm94LWFjdGlvbi5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwcnktYXV0b21hdGUtcmVmcmVzaCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9hdXRvbWF0ZS1yZWZyZXNoLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBBdXRvbWF0ZVJlZnJlc2hDb21wb25lbnQgZXh0ZW5kcyBUb29sYm94QWN0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQFZpZXdDaGlsZCgnZGF0YXNvdXJjZUxpc3QnLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pIGRhdGFzb3VyY2VMaXN0ITogVGVtcGxhdGVSZWY8YW55PjtcbiAgQFZpZXdDaGlsZCgncmVmcmVzaFJhdGVMaXN0JywgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KSByZWZyZXNoUmF0ZUxpc3QhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIHJlZnJlc2hSYXRlcyA9IFswLCAxMCwgMzAsIDYwXTtcbiAgZGF0YXNvdXJjZXMkOiBPYnNlcnZhYmxlPHN0cmluZ1tdPjtcbiAgcmVmcmVzaFJhdGVzJCE6IE9ic2VydmFibGU8eyBbcDogc3RyaW5nXTogbnVtYmVyIH0+O1xuICBzZWxlY3RlZERhdGFzb3VyY2VJZDogc3RyaW5nID0gJyc7XG4gIGFsbFJlZnJlc2hSYXRlJCE6IE9ic2VydmFibGU8bnVtYmVyPjtcblxuICBwcml2YXRlIG92ZXJsYXlSZWZEYXRhc291cmNlTGlzdD86IE92ZXJsYXlSZWY7XG4gIHByaXZhdGUgb3ZlcmxheVJlZlJlZnJlc2hMaXN0PzogT3ZlcmxheVJlZjtcblxuICBjb25zdHJ1Y3RvcihzdG9yZTogU3RvcmUsIHByaXZhdGUgb3ZlcmxheTogT3ZlcmxheSwgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmKSB7XG4gICAgc3VwZXIoc3RvcmUpO1xuICAgIHRoaXMuZGF0YXNvdXJjZXMkID0gdGhpcy5zdG9yZVxuICAgICAgLnNlbGVjdChEYXNoYm9hcmRTZWxlY3RvcnMubWFuaWZlc3REYXRhc291cmNlcylcbiAgICAgIC5waXBlKG1hcCgoZHNzKSA9PiBkc3MubWFwKChkcykgPT4gZHMuZGF0YXNldElkKSkpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5yZWZyZXNoUmF0ZXMkID0gdGhpcy5zdG9yZS5zZWxlY3QoRGFzaGJvYXJkU2VsZWN0b3JzLnJlZnJlc2hSYXRlcyk7XG5cbiAgICB0aGlzLmFsbFJlZnJlc2hSYXRlJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuZGF0YXNvdXJjZXMkLCB0aGlzLnJlZnJlc2hSYXRlcyRdKS5waXBlKFxuICAgICAgbWFwKChbZGF0YXNvdXJjZXMsIHJlZnJlc2hSYXRlc10pID0+XG4gICAgICAgIGRhdGFzb3VyY2VzLm1hcCgoZHMpID0+IHJlZnJlc2hSYXRlc1tkc10gPz8gMCkucmVkdWNlKChwLCBjKSA9PiAocCA9PT0gYyA/IGMgOiAtMSkpXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIHRvZ2dsZURhdGFzb3VyY2VMaXN0KCkge1xuICAgIGlmICghdGhpcy5vdmVybGF5UmVmRGF0YXNvdXJjZUxpc3QpIHtcbiAgICAgIHRoaXMub3ZlcmxheVJlZkRhdGFzb3VyY2VMaXN0ID0gdGhpcy5vdmVybGF5LmNyZWF0ZShcbiAgICAgICAgbmV3IE92ZXJsYXlDb25maWcoe1xuICAgICAgICAgIGhhc0JhY2tkcm9wOiBmYWxzZSxcbiAgICAgICAgICBwYW5lbENsYXNzOiBbJ2RhdGFzb3VyY2UtYmcnLCAncmVmcmVzaC1ycyddXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChDb25maWdBY3Rpb25zLmFkZGluZ092ZXJsYXkoeyBpZDogdGhpcy5jb25zdHJ1Y3Rvci5uYW1lIH0pKTtcbiAgICAgIHRoaXMub3ZlcmxheVJlZkRhdGFzb3VyY2VMaXN0LmF0dGFjaChuZXcgVGVtcGxhdGVQb3J0YWwodGhpcy5kYXRhc291cmNlTGlzdCwgdGhpcy52aWV3Q29udGFpbmVyUmVmKSk7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgICB0aGlzLm92ZXJsYXlSZWZEYXRhc291cmNlTGlzdC5iYWNrZHJvcENsaWNrKCkuc3Vic2NyaWJlKChfKSA9PiB0aGlzLmhpZGUodGhpcy5vdmVybGF5UmVmRGF0YXNvdXJjZUxpc3QpKVxuICAgICAgKTtcbiAgICAgIGNvbnN0IHJlZnJlc2hFbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmRhdGFzb3VyY2UtYmcnKSBhcyBIVE1MRGl2RWxlbWVudDtcbiAgICAgIGNvbnN0IHJlZnJlc2ggPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuYXV0b21hdGUtYnRuJykgYXMgSFRNTERpdkVsZW1lbnQ7XG4gICAgICBpZiAoISFyZWZyZXNoRWxlbWVudCkge1xuICAgICAgICBjb25zdCByZWN0ID0gcmVmcmVzaC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgcmVmcmVzaEVsZW1lbnQuc3R5bGUubGVmdCA9IHJlY3QubGVmdCArIHJlY3Qud2lkdGggKyAxMCArICdweCc7XG4gICAgICAgIHJlZnJlc2hFbGVtZW50LnN0eWxlLnRvcCA9IHJlY3QudG9wICsgJ3B4JztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBoaWRlKG92ZXJsYXlSZWY6IE92ZXJsYXlSZWYgfCB1bmRlZmluZWQpIHtcbiAgICBpZiAob3ZlcmxheVJlZikge1xuICAgICAgb3ZlcmxheVJlZi5kaXNwb3NlKCk7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENvbmZpZ0FjdGlvbnMuY2xvc2VPdmVybGF5KHsgaWQ6IHRoaXMuY29uc3RydWN0b3IubmFtZSB9KSk7XG4gICAgfVxuICB9XG5cbiAgdG9nZ2xlUmVmcmVzaFJhdGVMaXN0KGRhdGFzb3VyY2VJZDogc3RyaW5nLCB0ZW1wbGF0ZUluZGV4OiBudW1iZXIpIHtcbiAgICBpZiAodGhpcy5vdmVybGF5UmVmUmVmcmVzaExpc3QpIHtcbiAgICAgIHRoaXMuaGlkZSh0aGlzLm92ZXJsYXlSZWZSZWZyZXNoTGlzdCk7XG4gICAgfVxuICAgIHRoaXMuc2VsZWN0RGF0YXNvdXJjZShkYXRhc291cmNlSWQpO1xuICAgIHRoaXMub3ZlcmxheVJlZlJlZnJlc2hMaXN0ID0gdGhpcy5vdmVybGF5LmNyZWF0ZShcbiAgICAgIG5ldyBPdmVybGF5Q29uZmlnKHtcbiAgICAgICAgaGFzQmFja2Ryb3A6IGZhbHNlLFxuICAgICAgICBwYW5lbENsYXNzOiBbJ3JlZnJlc2gtYmcnLCAncmVmcmVzaC1ycyddXG4gICAgICB9KVxuICAgICk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChDb25maWdBY3Rpb25zLmFkZGluZ092ZXJsYXkoeyBpZDogdGhpcy5jb25zdHJ1Y3Rvci5uYW1lIH0pKTtcbiAgICB0aGlzLm92ZXJsYXlSZWZSZWZyZXNoTGlzdC5hdHRhY2gobmV3IFRlbXBsYXRlUG9ydGFsKHRoaXMucmVmcmVzaFJhdGVMaXN0LCB0aGlzLnZpZXdDb250YWluZXJSZWYpKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy5vdmVybGF5UmVmUmVmcmVzaExpc3QuYmFja2Ryb3BDbGljaygpLnN1YnNjcmliZSgoXykgPT4gdGhpcy5oaWRlKHRoaXMub3ZlcmxheVJlZlJlZnJlc2hMaXN0KSlcbiAgICApO1xuICAgIGNvbnN0IHJlZnJlc2hFbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnJlZnJlc2gtYmcnKSBhcyBIVE1MRGl2RWxlbWVudDtcbiAgICBjb25zdCByZWZyZXNoID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgLmRzLSR7dGVtcGxhdGVJbmRleH1gKSBhcyBIVE1MRGl2RWxlbWVudDtcbiAgICBpZiAoISFyZWZyZXNoRWxlbWVudCkge1xuICAgICAgY29uc3QgcmVjdCA9IHJlZnJlc2guZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICByZWZyZXNoRWxlbWVudC5zdHlsZS5sZWZ0ID0gcmVjdC5sZWZ0ICsgcmVjdC53aWR0aCArIDUgKyAncHgnO1xuICAgICAgcmVmcmVzaEVsZW1lbnQuc3R5bGUudG9wID0gcmVjdC50b3AgKyAncHgnO1xuICAgIH1cbiAgfVxuXG4gIHNlbGVjdERhdGFzb3VyY2UoaWQ6IHN0cmluZykge1xuICAgIHRoaXMuc2VsZWN0ZWREYXRhc291cmNlSWQgPSBpZDtcbiAgfVxuXG4gIHRvZ2dsZVJlZnJlc2hSYXRlKHJhdGU6IG51bWJlcikge1xuICAgIGlmICh0aGlzLnNlbGVjdGVkRGF0YXNvdXJjZUlkICE9PSAnYWxsJykge1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChEYXNoYm9hcmRBY3Rpb25zLnNldFJlZnJlc2hSYXRlKHsgcmF0ZSwgaWQ6IHRoaXMuc2VsZWN0ZWREYXRhc291cmNlSWQgfSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRhdGFzb3VyY2VzJC5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgoZGF0YXNvdXJjZUlkcykgPT4ge1xuICAgICAgICBkYXRhc291cmNlSWRzLmZvckVhY2goKGlkKSA9PiB7XG4gICAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChEYXNoYm9hcmRBY3Rpb25zLnNldFJlZnJlc2hSYXRlKHsgcmF0ZSwgaWQgfSkpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuaGlkZSh0aGlzLm92ZXJsYXlSZWZSZWZyZXNoTGlzdCk7XG4gICAgICB0aGlzLmhpZGUodGhpcy5vdmVybGF5UmVmRGF0YXNvdXJjZUxpc3QpO1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH0sIDEwMCk7XG4gIH1cbn1cbiIsIjxwcnktdG9vbGJveC1jc3M+PC9wcnktdG9vbGJveC1jc3M+XG48YnV0dG9uXG4gIHR5cGU9XCJidXR0b25cIlxuICBjbGFzcz1cImEtYnRuIGEtYnRuLS1zZWNvbmRhcnkgLXNpemUtbWQgYXV0b21hdGUtYnRuXCJcbiAgY2RrT3ZlcmxheU9yaWdpblxuICAjdHJpZ2dlcj1cImNka092ZXJsYXlPcmlnaW5cIlxuICAoY2xpY2spPVwidG9nZ2xlRGF0YXNvdXJjZUxpc3QoKVwiXG4gIFtkaXNhYmxlZF09XCIoKGRhdGFzb3VyY2VzJCB8IGFzeW5jKT8ubGVuZ3RoID8/IDApIDwgMVwiXG4+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJkaXNwbGF5TGFiZWxzXCI+XG4gICAge3sgJ0BwcnkudG9vbGJveC5hdXRvbWF0ZVJlZnJlc2gnIHwgaTE4biB9fVxuICA8L25nLWNvbnRhaW5lcj5cbjwvYnV0dG9uPlxuXG48bmctdGVtcGxhdGUgI2RhdGFzb3VyY2VMaXN0PlxuICA8ZGl2ICpuZ0lmPVwiZGF0YXNvdXJjZXMkIHwgYXN5bmMgYXMgZGF0YVNvdXJjZXNcIj5cbiAgICA8YnV0dG9uXG4gICAgICAqbmdJZj1cImRhdGFTb3VyY2VzLmxlbmd0aCA+IDBcIlxuICAgICAgY2xhc3M9XCJyZWZyZXNoLWxpbmUgYS1idG4gYS1idG4tLWljb24tdGV4dCAtc2l6ZS1zbSBkcy0wXCJcbiAgICAgIChjbGljayk9XCJ0b2dnbGVSZWZyZXNoUmF0ZUxpc3QoJ2FsbCcsIDApXCJcbiAgICAgIFtjbGFzcy4tc2VsZWN0ZWRdPVwic2VsZWN0ZWREYXRhc291cmNlSWQgPT09ICdhbGwnXCJcbiAgICA+XG4gICAgICBUb3VzXG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvblxuICAgICAgKm5nRm9yPVwibGV0IGRhdGFzb3VyY2VJZCBvZiBkYXRhU291cmNlczsgbGV0IGkgPSBpbmRleFwiXG4gICAgICBjbGFzcz1cInJlZnJlc2gtbGluZSBhLWJ0biBhLWJ0bi0taWNvbi10ZXh0IC1zaXplLXNtIGRzLXt7IGkgKyAxIH19XCJcbiAgICAgIChjbGljayk9XCJ0b2dnbGVSZWZyZXNoUmF0ZUxpc3QoZGF0YXNvdXJjZUlkLCBpICsgMSlcIlxuICAgICAgW2NsYXNzLi1zZWxlY3RlZF09XCJzZWxlY3RlZERhdGFzb3VyY2VJZCA9PT0gZGF0YXNvdXJjZUlkXCJcbiAgICA+XG4gICAgICB7eyBkYXRhc291cmNlSWQgfCB0cmFuc2xhdGVJZCA6IHsgdHlwZTogJ2RhdGFzb3VyY2UnLCBvdXRwdXQ6ICduYW1lJyB9IHwgYXN5bmMgfX1cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3JlZnJlc2hSYXRlTGlzdD5cbiAgPGRpdj5cbiAgICA8YnV0dG9uXG4gICAgICAqbmdGb3I9XCJsZXQgcmF0ZSBvZiByZWZyZXNoUmF0ZXNcIlxuICAgICAgY2xhc3M9XCJyZWZyZXNoLWxpbmUgYS1idG4gYS1idG4tLWljb24tdGV4dCAtc2l6ZS1zbVwiXG4gICAgICAoY2xpY2spPVwidG9nZ2xlUmVmcmVzaFJhdGUocmF0ZSlcIlxuICAgID5cbiAgICAgIDxwcnktaWNvblxuICAgICAgICBbd2lkdGhdPVwiMjBcIlxuICAgICAgICBbaGVpZ2h0XT1cIjIwXCJcbiAgICAgICAgaWNvblN2Zz1cImNoZWNrXCJcbiAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAoc2VsZWN0ZWREYXRhc291cmNlSWQgPT09ICdhbGwnXG4gICAgICAgICAgICA/IChhbGxSZWZyZXNoUmF0ZSQgfCBhc3luYylcbiAgICAgICAgICAgIDogKChyZWZyZXNoUmF0ZXMkIHwgYXN5bmMpID8/IHt9KVtzZWxlY3RlZERhdGFzb3VyY2VJZF0gPz8gMCkgPT09IHJhdGVcbiAgICAgICAgXCJcbiAgICAgID48L3ByeS1pY29uPlxuICAgICAge3sgJ0Bwcnkuc2VhcmNoLm5hbWVkUXVlcnkucmVmcmVzaC4nICsgcmF0ZSB8IGkxOG4gfX1cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -14,10 +14,10 @@ export class ClearViewComponent extends ToolboxActionComponent {
14
14
  this.close();
15
15
  }
16
16
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ClearViewComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
17
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ClearViewComponent, selector: "pry-clear-view", usesInheritance: true, ngImport: i0, template: "<div class=\"a-tooltip\" [attr.data-tooltip]=\"'@pry.toolbox.clear' | i18n\" data-tooltip-position=\"bottom\">\n <button type=\"button\" class=\"a-btn a-btn--secondary -size-md\" (click)=\"clear()\">\n <ng-container *ngIf=\"displayLabels\">{{ '@pry.toolbox.clear' | i18n }}</ng-container>\n </button>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }] }); }
17
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ClearViewComponent, selector: "pry-clear-view", usesInheritance: true, ngImport: i0, template: "<button type=\"button\" class=\"a-btn a-btn--secondary -size-md\" (click)=\"clear()\">\n <ng-container *ngIf=\"displayLabels\">{{ '@pry.toolbox.clear' | i18n }}</ng-container>\n</button>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }] }); }
18
18
  }
19
19
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ClearViewComponent, decorators: [{
20
20
  type: Component,
21
- args: [{ selector: 'pry-clear-view', template: "<div class=\"a-tooltip\" [attr.data-tooltip]=\"'@pry.toolbox.clear' | i18n\" data-tooltip-position=\"bottom\">\n <button type=\"button\" class=\"a-btn a-btn--secondary -size-md\" (click)=\"clear()\">\n <ng-container *ngIf=\"displayLabels\">{{ '@pry.toolbox.clear' | i18n }}</ng-container>\n </button>\n</div>\n" }]
21
+ args: [{ selector: 'pry-clear-view', template: "<button type=\"button\" class=\"a-btn a-btn--secondary -size-md\" (click)=\"clear()\">\n <ng-container *ngIf=\"displayLabels\">{{ '@pry.toolbox.clear' | i18n }}</ng-container>\n</button>\n" }]
22
22
  }], ctorParameters: function () { return [{ type: i1.Store }]; } });
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xlYXItdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC90b29sYm94L2NvbXBvbmVudHMvY2xlYXItdmlldy9jbGVhci12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL3Rvb2xib3gvY29tcG9uZW50cy9jbGVhci12aWV3L2NsZWFyLXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQzs7Ozs7QUFNcEYsTUFBTSxPQUFPLGtCQUFtQixTQUFRLHNCQUFzQjtJQUM1RCxZQUFZLEtBQVk7UUFDdEIsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2YsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1FBQ3RELElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNmLENBQUM7K0dBUlUsa0JBQWtCO21HQUFsQixrQkFBa0IsNkVDVC9CLDZUQUtBOzs0RkRJYSxrQkFBa0I7a0JBSjlCLFNBQVM7K0JBQ0UsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IERhc2hib2FyZEFjdGlvbnMgfSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQnO1xuaW1wb3J0IHsgVG9vbGJveEFjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uL3Rvb2xib3gtYWN0aW9uL3Rvb2xib3gtYWN0aW9uLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ByeS1jbGVhci12aWV3JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NsZWFyLXZpZXcuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIENsZWFyVmlld0NvbXBvbmVudCBleHRlbmRzIFRvb2xib3hBY3Rpb25Db21wb25lbnQge1xuICBjb25zdHJ1Y3RvcihzdG9yZTogU3RvcmUpIHtcbiAgICBzdXBlcihzdG9yZSk7XG4gIH1cblxuICBjbGVhcigpIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKERhc2hib2FyZEFjdGlvbnMuY2xlYXJNYW5pZmVzdCgpKTtcbiAgICB0aGlzLmNsb3NlKCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJhLXRvb2x0aXBcIiBbYXR0ci5kYXRhLXRvb2x0aXBdPVwiJ0BwcnkudG9vbGJveC5jbGVhcicgfCBpMThuXCIgZGF0YS10b29sdGlwLXBvc2l0aW9uPVwiYm90dG9tXCI+XG4gIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYS1idG4gYS1idG4tLXNlY29uZGFyeSAtc2l6ZS1tZFwiIChjbGljayk9XCJjbGVhcigpXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRpc3BsYXlMYWJlbHNcIj57eyAnQHByeS50b29sYm94LmNsZWFyJyB8IGkxOG4gfX08L25nLWNvbnRhaW5lcj5cbiAgPC9idXR0b24+XG48L2Rpdj5cbiJdfQ==
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xlYXItdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC90b29sYm94L2NvbXBvbmVudHMvY2xlYXItdmlldy9jbGVhci12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL3Rvb2xib3gvY29tcG9uZW50cy9jbGVhci12aWV3L2NsZWFyLXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQzs7Ozs7QUFNcEYsTUFBTSxPQUFPLGtCQUFtQixTQUFRLHNCQUFzQjtJQUM1RCxZQUFZLEtBQVk7UUFDdEIsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2YsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1FBQ3RELElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNmLENBQUM7K0dBUlUsa0JBQWtCO21HQUFsQixrQkFBa0IsNkVDVC9CLCtMQUdBOzs0RkRNYSxrQkFBa0I7a0JBSjlCLFNBQVM7K0JBQ0UsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IERhc2hib2FyZEFjdGlvbnMgfSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQnO1xuaW1wb3J0IHsgVG9vbGJveEFjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uL3Rvb2xib3gtYWN0aW9uL3Rvb2xib3gtYWN0aW9uLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ByeS1jbGVhci12aWV3JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NsZWFyLXZpZXcuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIENsZWFyVmlld0NvbXBvbmVudCBleHRlbmRzIFRvb2xib3hBY3Rpb25Db21wb25lbnQge1xuICBjb25zdHJ1Y3RvcihzdG9yZTogU3RvcmUpIHtcbiAgICBzdXBlcihzdG9yZSk7XG4gIH1cblxuICBjbGVhcigpIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKERhc2hib2FyZEFjdGlvbnMuY2xlYXJNYW5pZmVzdCgpKTtcbiAgICB0aGlzLmNsb3NlKCk7XG4gIH1cbn1cbiIsIjxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYS1idG4gYS1idG4tLXNlY29uZGFyeSAtc2l6ZS1tZFwiIChjbGljayk9XCJjbGVhcigpXCI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJkaXNwbGF5TGFiZWxzXCI+e3sgJ0BwcnkudG9vbGJveC5jbGVhcicgfCBpMThuIH19PC9uZy1jb250YWluZXI+XG48L2J1dHRvbj5cbiJdfQ==
@@ -32,10 +32,10 @@ export class DragWidgetsComponent extends ToolboxActionComponent {
32
32
  $event.stopPropagation();
33
33
  }
34
34
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DragWidgetsComponent, deps: [{ token: i1.Store }, { token: i2.ToolboxManifestService }, { token: i2.ToolboxMenuService }], target: i0.ɵɵFactoryTarget.Component }); }
35
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DragWidgetsComponent, selector: "pry-drag-widgets", usesInheritance: true, ngImport: i0, template: "<div class=\"toolbox-draggable\">\n <div class=\"a-tooltip\" data-tooltip=\"Ins\u00E9rer un widget\" data-tooltip-position=\"bottom\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary -size-md\"\n (click)=\"openMenu($event)\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n id=\"widget_insert\"\n aria-haspopup\n aria-controls=\"IDpanel\"\n aria-expanded=\"false\"\n >\n <ng-container *ngIf=\"displayLabels\"\n ><span class=\"u-visually-hidden\">{{ '@pry.toolbox.dragIndication' | i18n }}</span\n >{{ '@pry.toolbox.drag' | i18n }}\n </ng-container>\n </button>\n </div>\n</div>\n\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"mainOpened\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n [cdkConnectedOverlayPositions]=\"[connectedPosition]\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"mainOpened = false\"\n>\n <div class=\"o-draggable-menu\" aria-label=\"Ins\u00E9rer un widget (par glisser/d\u00E9poser)\" aria-labelledby=\"widget_insert\">\n <ul class=\"o-draggable-menu__list\">\n <ng-container *ngFor=\"let menu of menu$ | async\">\n <li class=\"o-draggable-menu__list__item\">\n <button class=\"a-btn\" aria-haspopup=\"true\" aria-expanded=\"false\">\n <pry-icon [iconSvg]=\"menu.icon\"></pry-icon>\n <ng-container *ngIf=\"displayLabels\">{{ menu.label | i18n }}</ng-container>\n </button>\n\n <ul class=\"o-draggable-menu__list__submenu\">\n <ng-container *ngFor=\"let sub of menu.sub\">\n <li class=\"o-draggable-menu__list__submenu__item\">\n <button class=\"a-btn\" (dragstart)=\"dragStart($event, sub.type)\" draggable=\"true\">\n <img [alt]=\"sub.label\" [height]=\"24\" [width]=\"24\" [src]=\"sub.icon | getSecuredImage | async\" />\n <ng-container *ngIf=\"displayLabels\">{{ sub.label | i18n }}</ng-container>\n </button>\n </li>\n </ng-container>\n </ul>\n </li>\n </ng-container>\n </ul>\n </div>\n</ng-template>\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.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: i4.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "component", type: i2.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.GetSecuredImagePipe, name: "getSecuredImage" }, { kind: "pipe", type: i2.I18nPipe, name: "i18n" }] }); }
35
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DragWidgetsComponent, selector: "pry-drag-widgets", usesInheritance: true, ngImport: i0, template: "<div class=\"toolbox-draggable\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary -size-md\"\n (click)=\"openMenu($event)\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n id=\"widget_insert\"\n aria-haspopup\n aria-controls=\"IDpanel\"\n aria-expanded=\"false\"\n >\n <ng-container *ngIf=\"displayLabels\"\n ><span class=\"u-visually-hidden\">{{ '@pry.toolbox.dragIndication' | i18n }}</span\n >{{ '@pry.toolbox.drag' | i18n }}\n </ng-container>\n </button>\n</div>\n\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"mainOpened\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n [cdkConnectedOverlayPositions]=\"[connectedPosition]\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"mainOpened = false\"\n>\n <div class=\"o-draggable-menu\" aria-label=\"Ins\u00E9rer un widget (par glisser/d\u00E9poser)\" aria-labelledby=\"widget_insert\">\n <ul class=\"o-draggable-menu__list\">\n <ng-container *ngFor=\"let menu of menu$ | async\">\n <li class=\"o-draggable-menu__list__item\">\n <button class=\"a-btn\" aria-haspopup=\"true\" aria-expanded=\"false\">\n <pry-icon [iconSvg]=\"menu.icon\"></pry-icon>\n <ng-container *ngIf=\"displayLabels\">{{ menu.label | i18n }}</ng-container>\n </button>\n\n <ul class=\"o-draggable-menu__list__submenu\">\n <ng-container *ngFor=\"let sub of menu.sub\">\n <li class=\"o-draggable-menu__list__submenu__item\">\n <button class=\"a-btn\" (dragstart)=\"dragStart($event, sub.type)\" draggable=\"true\">\n <img [alt]=\"sub.label\" [height]=\"24\" [width]=\"24\" [src]=\"sub.icon | getSecuredImage | async\" />\n <ng-container *ngIf=\"displayLabels\">{{ sub.label | i18n }}</ng-container>\n </button>\n </li>\n </ng-container>\n </ul>\n </li>\n </ng-container>\n </ul>\n </div>\n</ng-template>\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.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: i4.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "component", type: i2.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.GetSecuredImagePipe, name: "getSecuredImage" }, { kind: "pipe", type: i2.I18nPipe, name: "i18n" }] }); }
36
36
  }
37
37
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DragWidgetsComponent, decorators: [{
38
38
  type: Component,
39
- args: [{ selector: 'pry-drag-widgets', template: "<div class=\"toolbox-draggable\">\n <div class=\"a-tooltip\" data-tooltip=\"Ins\u00E9rer un widget\" data-tooltip-position=\"bottom\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary -size-md\"\n (click)=\"openMenu($event)\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n id=\"widget_insert\"\n aria-haspopup\n aria-controls=\"IDpanel\"\n aria-expanded=\"false\"\n >\n <ng-container *ngIf=\"displayLabels\"\n ><span class=\"u-visually-hidden\">{{ '@pry.toolbox.dragIndication' | i18n }}</span\n >{{ '@pry.toolbox.drag' | i18n }}\n </ng-container>\n </button>\n </div>\n</div>\n\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"mainOpened\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n [cdkConnectedOverlayPositions]=\"[connectedPosition]\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"mainOpened = false\"\n>\n <div class=\"o-draggable-menu\" aria-label=\"Ins\u00E9rer un widget (par glisser/d\u00E9poser)\" aria-labelledby=\"widget_insert\">\n <ul class=\"o-draggable-menu__list\">\n <ng-container *ngFor=\"let menu of menu$ | async\">\n <li class=\"o-draggable-menu__list__item\">\n <button class=\"a-btn\" aria-haspopup=\"true\" aria-expanded=\"false\">\n <pry-icon [iconSvg]=\"menu.icon\"></pry-icon>\n <ng-container *ngIf=\"displayLabels\">{{ menu.label | i18n }}</ng-container>\n </button>\n\n <ul class=\"o-draggable-menu__list__submenu\">\n <ng-container *ngFor=\"let sub of menu.sub\">\n <li class=\"o-draggable-menu__list__submenu__item\">\n <button class=\"a-btn\" (dragstart)=\"dragStart($event, sub.type)\" draggable=\"true\">\n <img [alt]=\"sub.label\" [height]=\"24\" [width]=\"24\" [src]=\"sub.icon | getSecuredImage | async\" />\n <ng-container *ngIf=\"displayLabels\">{{ sub.label | i18n }}</ng-container>\n </button>\n </li>\n </ng-container>\n </ul>\n </li>\n </ng-container>\n </ul>\n </div>\n</ng-template>\n" }]
39
+ args: [{ selector: 'pry-drag-widgets', template: "<div class=\"toolbox-draggable\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary -size-md\"\n (click)=\"openMenu($event)\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n id=\"widget_insert\"\n aria-haspopup\n aria-controls=\"IDpanel\"\n aria-expanded=\"false\"\n >\n <ng-container *ngIf=\"displayLabels\"\n ><span class=\"u-visually-hidden\">{{ '@pry.toolbox.dragIndication' | i18n }}</span\n >{{ '@pry.toolbox.drag' | i18n }}\n </ng-container>\n </button>\n</div>\n\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"mainOpened\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n [cdkConnectedOverlayPositions]=\"[connectedPosition]\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"mainOpened = false\"\n>\n <div class=\"o-draggable-menu\" aria-label=\"Ins\u00E9rer un widget (par glisser/d\u00E9poser)\" aria-labelledby=\"widget_insert\">\n <ul class=\"o-draggable-menu__list\">\n <ng-container *ngFor=\"let menu of menu$ | async\">\n <li class=\"o-draggable-menu__list__item\">\n <button class=\"a-btn\" aria-haspopup=\"true\" aria-expanded=\"false\">\n <pry-icon [iconSvg]=\"menu.icon\"></pry-icon>\n <ng-container *ngIf=\"displayLabels\">{{ menu.label | i18n }}</ng-container>\n </button>\n\n <ul class=\"o-draggable-menu__list__submenu\">\n <ng-container *ngFor=\"let sub of menu.sub\">\n <li class=\"o-draggable-menu__list__submenu__item\">\n <button class=\"a-btn\" (dragstart)=\"dragStart($event, sub.type)\" draggable=\"true\">\n <img [alt]=\"sub.label\" [height]=\"24\" [width]=\"24\" [src]=\"sub.icon | getSecuredImage | async\" />\n <ng-container *ngIf=\"displayLabels\">{{ sub.label | i18n }}</ng-container>\n </button>\n </li>\n </ng-container>\n </ul>\n </li>\n </ng-container>\n </ul>\n </div>\n</ng-template>\n" }]
40
40
  }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.ToolboxManifestService }, { type: i2.ToolboxMenuService }]; } });
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy13aWRnZXRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL3Rvb2xib3gvY29tcG9uZW50cy9kcmFnLXdpZGdldHMvZHJhZy13aWRnZXRzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL3Rvb2xib3gvY29tcG9uZW50cy9kcmFnLXdpZGdldHMvZHJhZy13aWRnZXRzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFMUMsT0FBTyxFQUFFLGFBQWEsRUFBcUUsTUFBTSxvQkFBb0IsQ0FBQztBQUV0SCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQzs7Ozs7O0FBTXBGLE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxzQkFBc0I7SUFXOUQsWUFDRSxLQUFZLEVBQ0osc0JBQThDLEVBQy9DLGtCQUFzQztRQUU3QyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFITCwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBQy9DLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFiL0MsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUVWLHNCQUFpQixHQUFzQjtZQUM5QyxPQUFPLEVBQUUsT0FBTztZQUNoQixPQUFPLEVBQUUsUUFBUTtZQUNqQixRQUFRLEVBQUUsT0FBTztZQUNqQixRQUFRLEVBQUUsS0FBSztTQUNoQixDQUFDO1FBU0EsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsY0FBYyxDQUFDO0lBQ3RELENBQUM7SUFFRCxTQUFTLENBQUMsTUFBaUIsRUFBRSxJQUFZO1FBQ3ZDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRXZELFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUMxQixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDVixDQUFDO0lBRUQsUUFBUSxDQUFDLE1BQWE7UUFDcEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDdkIsTUFBTSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQzNCLENBQUM7K0dBaENVLG9CQUFvQjttR0FBcEIsb0JBQW9CLCtFQ1hqQyx1c0VBc0RBOzs0RkQzQ2Esb0JBQW9CO2tCQUpoQyxTQUFTOytCQUNFLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbm5lY3RlZFBvc2l0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IENvbmZpZ0FjdGlvbnMsIFRvb2xib3hNYW5pZmVzdFNlcnZpY2UsIFRvb2xib3hNZW51U2VydmljZSwgV2lkZ2V0RGVzY3JpcHRpb25NZW51IH0gZnJvbSAnQHByb3ZvbHkvZGFzaGJvYXJkJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFRvb2xib3hBY3Rpb25Db21wb25lbnQgfSBmcm9tICcuLi90b29sYm94LWFjdGlvbi90b29sYm94LWFjdGlvbi5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwcnktZHJhZy13aWRnZXRzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RyYWctd2lkZ2V0cy5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgRHJhZ1dpZGdldHNDb21wb25lbnQgZXh0ZW5kcyBUb29sYm94QWN0aW9uQ29tcG9uZW50IHtcbiAgbWFpbk9wZW5lZCA9IGZhbHNlO1xuXG4gIHJlYWRvbmx5IGNvbm5lY3RlZFBvc2l0aW9uOiBDb25uZWN0ZWRQb3NpdGlvbiA9IHtcbiAgICBvcmlnaW5YOiAnc3RhcnQnLFxuICAgIG9yaWdpblk6ICdib3R0b20nLFxuICAgIG92ZXJsYXlYOiAnc3RhcnQnLFxuICAgIG92ZXJsYXlZOiAndG9wJ1xuICB9O1xuICBtZW51JDogT2JzZXJ2YWJsZTxXaWRnZXREZXNjcmlwdGlvbk1lbnVbXT47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgc3RvcmU6IFN0b3JlLFxuICAgIHByaXZhdGUgdG9vbGJveE1hbmlmZXN0U2VydmljZTogVG9vbGJveE1hbmlmZXN0U2VydmljZSxcbiAgICBwdWJsaWMgdG9vbGJveE1lbnVTZXJ2aWNlOiBUb29sYm94TWVudVNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoc3RvcmUpO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQ29uZmlnQWN0aW9ucy5sb2FkV2lkZ2V0cygpKTtcbiAgICB0aGlzLm1lbnUkID0gdGhpcy50b29sYm94TWVudVNlcnZpY2UubWVudVN0cnVjdHVyZSQ7XG4gIH1cblxuICBkcmFnU3RhcnQoJGV2ZW50OiBEcmFnRXZlbnQsIHR5cGU6IHN0cmluZykge1xuICAgIHRoaXMudG9vbGJveE1hbmlmZXN0U2VydmljZS5kYXRhVHJhbnNmZXIoJGV2ZW50LCB0eXBlKTtcblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5tYWluT3BlbmVkID0gZmFsc2U7XG4gICAgfSwgMTAwKTtcbiAgfVxuXG4gIG9wZW5NZW51KCRldmVudDogRXZlbnQpIHtcbiAgICB0aGlzLm1haW5PcGVuZWQgPSB0cnVlO1xuICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInRvb2xib3gtZHJhZ2dhYmxlXCI+XG4gIDxkaXYgY2xhc3M9XCJhLXRvb2x0aXBcIiBkYXRhLXRvb2x0aXA9XCJJbnPDqXJlciB1biB3aWRnZXRcIiBkYXRhLXRvb2x0aXAtcG9zaXRpb249XCJib3R0b21cIj5cbiAgICA8YnV0dG9uXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIGNsYXNzPVwiYS1idG4gYS1idG4tLXNlY29uZGFyeSAtc2l6ZS1tZFwiXG4gICAgICAoY2xpY2spPVwib3Blbk1lbnUoJGV2ZW50KVwiXG4gICAgICBjZGtPdmVybGF5T3JpZ2luXG4gICAgICAjdHJpZ2dlcj1cImNka092ZXJsYXlPcmlnaW5cIlxuICAgICAgaWQ9XCJ3aWRnZXRfaW5zZXJ0XCJcbiAgICAgIGFyaWEtaGFzcG9wdXBcbiAgICAgIGFyaWEtY29udHJvbHM9XCJJRHBhbmVsXCJcbiAgICAgIGFyaWEtZXhwYW5kZWQ9XCJmYWxzZVwiXG4gICAgPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRpc3BsYXlMYWJlbHNcIlxuICAgICAgICA+PHNwYW4gY2xhc3M9XCJ1LXZpc3VhbGx5LWhpZGRlblwiPnt7ICdAcHJ5LnRvb2xib3guZHJhZ0luZGljYXRpb24nIHwgaTE4biB9fTwvc3BhblxuICAgICAgICA+e3sgJ0BwcnkudG9vbGJveC5kcmFnJyB8IGkxOG4gfX1cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGVcbiAgY2RrQ29ubmVjdGVkT3ZlcmxheVxuICBbY2RrQ29ubmVjdGVkT3ZlcmxheU9yaWdpbl09XCJ0cmlnZ2VyXCJcbiAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlPcGVuXT1cIm1haW5PcGVuZWRcIlxuICBbY2RrQ29ubmVjdGVkT3ZlcmxheUhhc0JhY2tkcm9wXT1cInRydWVcIlxuICBbY2RrQ29ubmVjdGVkT3ZlcmxheVBvc2l0aW9uc109XCJbY29ubmVjdGVkUG9zaXRpb25dXCJcbiAgY2RrQ29ubmVjdGVkT3ZlcmxheUJhY2tkcm9wQ2xhc3M9XCJjZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcFwiXG4gIChiYWNrZHJvcENsaWNrKT1cIm1haW5PcGVuZWQgPSBmYWxzZVwiXG4+XG4gIDxkaXYgY2xhc3M9XCJvLWRyYWdnYWJsZS1tZW51XCIgYXJpYS1sYWJlbD1cIkluc8OpcmVyIHVuIHdpZGdldCAocGFyIGdsaXNzZXIvZMOpcG9zZXIpXCIgYXJpYS1sYWJlbGxlZGJ5PVwid2lkZ2V0X2luc2VydFwiPlxuICAgIDx1bCBjbGFzcz1cIm8tZHJhZ2dhYmxlLW1lbnVfX2xpc3RcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IG1lbnUgb2YgbWVudSQgfCBhc3luY1wiPlxuICAgICAgICA8bGkgY2xhc3M9XCJvLWRyYWdnYWJsZS1tZW51X19saXN0X19pdGVtXCI+XG4gICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImEtYnRuXCIgYXJpYS1oYXNwb3B1cD1cInRydWVcIiBhcmlhLWV4cGFuZGVkPVwiZmFsc2VcIj5cbiAgICAgICAgICAgIDxwcnktaWNvbiBbaWNvblN2Z109XCJtZW51Lmljb25cIj48L3ByeS1pY29uPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRpc3BsYXlMYWJlbHNcIj57eyBtZW51LmxhYmVsIHwgaTE4biB9fTwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgICAgPHVsIGNsYXNzPVwiby1kcmFnZ2FibGUtbWVudV9fbGlzdF9fc3VibWVudVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgc3ViIG9mIG1lbnUuc3ViXCI+XG4gICAgICAgICAgICAgIDxsaSBjbGFzcz1cIm8tZHJhZ2dhYmxlLW1lbnVfX2xpc3RfX3N1Ym1lbnVfX2l0ZW1cIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYS1idG5cIiAoZHJhZ3N0YXJ0KT1cImRyYWdTdGFydCgkZXZlbnQsIHN1Yi50eXBlKVwiIGRyYWdnYWJsZT1cInRydWVcIj5cbiAgICAgICAgICAgICAgICAgIDxpbWcgW2FsdF09XCJzdWIubGFiZWxcIiBbaGVpZ2h0XT1cIjI0XCIgW3dpZHRoXT1cIjI0XCIgW3NyY109XCJzdWIuaWNvbiB8IGdldFNlY3VyZWRJbWFnZSB8IGFzeW5jXCIgLz5cbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkaXNwbGF5TGFiZWxzXCI+e3sgc3ViLmxhYmVsIHwgaTE4biB9fTwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC91bD5cbiAgICAgICAgPC9saT5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvdWw+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy13aWRnZXRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL3Rvb2xib3gvY29tcG9uZW50cy9kcmFnLXdpZGdldHMvZHJhZy13aWRnZXRzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL3Rvb2xib3gvY29tcG9uZW50cy9kcmFnLXdpZGdldHMvZHJhZy13aWRnZXRzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFMUMsT0FBTyxFQUFFLGFBQWEsRUFBcUUsTUFBTSxvQkFBb0IsQ0FBQztBQUV0SCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQzs7Ozs7O0FBTXBGLE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxzQkFBc0I7SUFXOUQsWUFDRSxLQUFZLEVBQ0osc0JBQThDLEVBQy9DLGtCQUFzQztRQUU3QyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFITCwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBQy9DLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFiL0MsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUVWLHNCQUFpQixHQUFzQjtZQUM5QyxPQUFPLEVBQUUsT0FBTztZQUNoQixPQUFPLEVBQUUsUUFBUTtZQUNqQixRQUFRLEVBQUUsT0FBTztZQUNqQixRQUFRLEVBQUUsS0FBSztTQUNoQixDQUFDO1FBU0EsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsY0FBYyxDQUFDO0lBQ3RELENBQUM7SUFFRCxTQUFTLENBQUMsTUFBaUIsRUFBRSxJQUFZO1FBQ3ZDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRXZELFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUMxQixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDVixDQUFDO0lBRUQsUUFBUSxDQUFDLE1BQWE7UUFDcEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDdkIsTUFBTSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQzNCLENBQUM7K0dBaENVLG9CQUFvQjttR0FBcEIsb0JBQW9CLCtFQ1hqQyx1akVBb0RBOzs0RkR6Q2Esb0JBQW9CO2tCQUpoQyxTQUFTOytCQUNFLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbm5lY3RlZFBvc2l0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IENvbmZpZ0FjdGlvbnMsIFRvb2xib3hNYW5pZmVzdFNlcnZpY2UsIFRvb2xib3hNZW51U2VydmljZSwgV2lkZ2V0RGVzY3JpcHRpb25NZW51IH0gZnJvbSAnQHByb3ZvbHkvZGFzaGJvYXJkJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFRvb2xib3hBY3Rpb25Db21wb25lbnQgfSBmcm9tICcuLi90b29sYm94LWFjdGlvbi90b29sYm94LWFjdGlvbi5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwcnktZHJhZy13aWRnZXRzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RyYWctd2lkZ2V0cy5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgRHJhZ1dpZGdldHNDb21wb25lbnQgZXh0ZW5kcyBUb29sYm94QWN0aW9uQ29tcG9uZW50IHtcbiAgbWFpbk9wZW5lZCA9IGZhbHNlO1xuXG4gIHJlYWRvbmx5IGNvbm5lY3RlZFBvc2l0aW9uOiBDb25uZWN0ZWRQb3NpdGlvbiA9IHtcbiAgICBvcmlnaW5YOiAnc3RhcnQnLFxuICAgIG9yaWdpblk6ICdib3R0b20nLFxuICAgIG92ZXJsYXlYOiAnc3RhcnQnLFxuICAgIG92ZXJsYXlZOiAndG9wJ1xuICB9O1xuICBtZW51JDogT2JzZXJ2YWJsZTxXaWRnZXREZXNjcmlwdGlvbk1lbnVbXT47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgc3RvcmU6IFN0b3JlLFxuICAgIHByaXZhdGUgdG9vbGJveE1hbmlmZXN0U2VydmljZTogVG9vbGJveE1hbmlmZXN0U2VydmljZSxcbiAgICBwdWJsaWMgdG9vbGJveE1lbnVTZXJ2aWNlOiBUb29sYm94TWVudVNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoc3RvcmUpO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQ29uZmlnQWN0aW9ucy5sb2FkV2lkZ2V0cygpKTtcbiAgICB0aGlzLm1lbnUkID0gdGhpcy50b29sYm94TWVudVNlcnZpY2UubWVudVN0cnVjdHVyZSQ7XG4gIH1cblxuICBkcmFnU3RhcnQoJGV2ZW50OiBEcmFnRXZlbnQsIHR5cGU6IHN0cmluZykge1xuICAgIHRoaXMudG9vbGJveE1hbmlmZXN0U2VydmljZS5kYXRhVHJhbnNmZXIoJGV2ZW50LCB0eXBlKTtcblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5tYWluT3BlbmVkID0gZmFsc2U7XG4gICAgfSwgMTAwKTtcbiAgfVxuXG4gIG9wZW5NZW51KCRldmVudDogRXZlbnQpIHtcbiAgICB0aGlzLm1haW5PcGVuZWQgPSB0cnVlO1xuICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInRvb2xib3gtZHJhZ2dhYmxlXCI+XG4gIDxidXR0b25cbiAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICBjbGFzcz1cImEtYnRuIGEtYnRuLS1zZWNvbmRhcnkgLXNpemUtbWRcIlxuICAgIChjbGljayk9XCJvcGVuTWVudSgkZXZlbnQpXCJcbiAgICBjZGtPdmVybGF5T3JpZ2luXG4gICAgI3RyaWdnZXI9XCJjZGtPdmVybGF5T3JpZ2luXCJcbiAgICBpZD1cIndpZGdldF9pbnNlcnRcIlxuICAgIGFyaWEtaGFzcG9wdXBcbiAgICBhcmlhLWNvbnRyb2xzPVwiSURwYW5lbFwiXG4gICAgYXJpYS1leHBhbmRlZD1cImZhbHNlXCJcbiAgPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkaXNwbGF5TGFiZWxzXCJcbiAgICAgID48c3BhbiBjbGFzcz1cInUtdmlzdWFsbHktaGlkZGVuXCI+e3sgJ0BwcnkudG9vbGJveC5kcmFnSW5kaWNhdGlvbicgfCBpMThuIH19PC9zcGFuXG4gICAgICA+e3sgJ0BwcnkudG9vbGJveC5kcmFnJyB8IGkxOG4gfX1cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9idXR0b24+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlXG4gIGNka0Nvbm5lY3RlZE92ZXJsYXlcbiAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlPcmlnaW5dPVwidHJpZ2dlclwiXG4gIFtjZGtDb25uZWN0ZWRPdmVybGF5T3Blbl09XCJtYWluT3BlbmVkXCJcbiAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlIYXNCYWNrZHJvcF09XCJ0cnVlXCJcbiAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlQb3NpdGlvbnNdPVwiW2Nvbm5lY3RlZFBvc2l0aW9uXVwiXG4gIGNka0Nvbm5lY3RlZE92ZXJsYXlCYWNrZHJvcENsYXNzPVwiY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3BcIlxuICAoYmFja2Ryb3BDbGljayk9XCJtYWluT3BlbmVkID0gZmFsc2VcIlxuPlxuICA8ZGl2IGNsYXNzPVwiby1kcmFnZ2FibGUtbWVudVwiIGFyaWEtbGFiZWw9XCJJbnPDqXJlciB1biB3aWRnZXQgKHBhciBnbGlzc2VyL2TDqXBvc2VyKVwiIGFyaWEtbGFiZWxsZWRieT1cIndpZGdldF9pbnNlcnRcIj5cbiAgICA8dWwgY2xhc3M9XCJvLWRyYWdnYWJsZS1tZW51X19saXN0XCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBtZW51IG9mIG1lbnUkIHwgYXN5bmNcIj5cbiAgICAgICAgPGxpIGNsYXNzPVwiby1kcmFnZ2FibGUtbWVudV9fbGlzdF9faXRlbVwiPlxuICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJhLWJ0blwiIGFyaWEtaGFzcG9wdXA9XCJ0cnVlXCIgYXJpYS1leHBhbmRlZD1cImZhbHNlXCI+XG4gICAgICAgICAgICA8cHJ5LWljb24gW2ljb25TdmddPVwibWVudS5pY29uXCI+PC9wcnktaWNvbj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkaXNwbGF5TGFiZWxzXCI+e3sgbWVudS5sYWJlbCB8IGkxOG4gfX08L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICAgIDx1bCBjbGFzcz1cIm8tZHJhZ2dhYmxlLW1lbnVfX2xpc3RfX3N1Ym1lbnVcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHN1YiBvZiBtZW51LnN1YlwiPlxuICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJvLWRyYWdnYWJsZS1tZW51X19saXN0X19zdWJtZW51X19pdGVtXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImEtYnRuXCIgKGRyYWdzdGFydCk9XCJkcmFnU3RhcnQoJGV2ZW50LCBzdWIudHlwZSlcIiBkcmFnZ2FibGU9XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAgICA8aW1nIFthbHRdPVwic3ViLmxhYmVsXCIgW2hlaWdodF09XCIyNFwiIFt3aWR0aF09XCIyNFwiIFtzcmNdPVwic3ViLmljb24gfCBnZXRTZWN1cmVkSW1hZ2UgfCBhc3luY1wiIC8+XG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGlzcGxheUxhYmVsc1wiPnt7IHN1Yi5sYWJlbCB8IGkxOG4gfX08L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvdWw+XG4gICAgICAgIDwvbGk+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L3VsPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -87,7 +87,7 @@ export class PryFilterSettingsComponent extends ToolboxActionComponent {
87
87
  clazz?.attributes.forEach((attr) => {
88
88
  attributes.push({
89
89
  id: attr.id,
90
- name: attr.name,
90
+ technicalName: attr.technicalName,
91
91
  label: [attr.name, dataSource.name, clazz.name].join(' / '),
92
92
  datasource: dataSource.id,
93
93
  type: fields.find((field) => field.id === attr.field)?.type ?? FieldType.STRING
@@ -169,7 +169,7 @@ export class PryFilterSettingsComponent extends ToolboxActionComponent {
169
169
  getFilterAttributes(filter, attrCount) {
170
170
  attrCount = attrCount <= filter.attributes.length ? attrCount : filter.attributes.length;
171
171
  return filter.attributes
172
- .map((attr) => attr.name)
172
+ .map((attr) => attr.technicalName)
173
173
  .slice(0, attrCount)
174
174
  .join(', ');
175
175
  }
@@ -188,7 +188,7 @@ export class PryFilterSettingsComponent extends ToolboxActionComponent {
188
188
  }
189
189
  goToCreation() {
190
190
  this.currentFilterComponentType$.next('');
191
- this.currentStep = FilterSteps.EDITION;
191
+ this.currentStep = FilterSteps.CREATION;
192
192
  }
193
193
  submitFilter() {
194
194
  this.store.dispatch(DashboardActions.updateFilters({ filter: this.filter }));
@@ -222,11 +222,11 @@ export class PryFilterSettingsComponent extends ToolboxActionComponent {
222
222
  });
223
223
  }
224
224
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryFilterSettingsComponent, deps: [{ token: i1.Store }, { token: i2.Overlay }, { token: i0.ViewContainerRef }, { token: i3.FilterFactoryService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
225
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PryFilterSettingsComponent, selector: "pry-filter-settings", inputs: { label: "label" }, viewQueries: [{ propertyName: "templateSettings", first: true, predicate: ["settings"], descendants: true, read: TemplateRef }, { propertyName: "container", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef }], usesInheritance: true, ngImport: i0, template: "<pry-toolbox-css></pry-toolbox-css>\n<div\n class=\"save-manifest-container a-tooltip\"\n [attr.data-tooltip]=\"'@pry.filters.label' | i18n\"\n data-tooltip-position=\"bottom\"\n>\n <div style=\"display: none\">\n <ng-template #container></ng-template>\n </div>\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary -size-md\"\n [disabled]=\"(attributes$ | async)?.length === 0\"\n (click)=\"toggleSettings()\"\n aria-haspopup=\"dialog\"\n >\n <ng-container *ngIf=\"label\">{{ '@pry.filters.label' | i18n }}</ng-container>\n </button>\n</div>\n\n<ng-template #settings>\n <div class=\"o-filters\">\n <div class=\"o-filters__header\">\n <ng-container *ngIf=\"currentStep === FilterSteps.LIST\">\n <h2>Param\u00E9trer les filtres</h2>\n </ng-container>\n <ng-container *ngIf=\"currentStep === FilterSteps.CREATION || currentStep === FilterSteps.EDITION\">\n <div class=\"u-display-flex -row -align-center\">\n <button (click)=\"goBack()\" type=\"button\" class=\"back-button\">\n <pry-icon iconSvg=\"chevron_right\"></pry-icon>\n </button>\n <h2>\n {{\n (currentStep === FilterSteps.CREATION ? '@pry.filters.creation.create' : '@pry.filters.creation.update')\n | i18n\n }}\n </h2>\n </div>\n </ng-container>\n <button (click)=\"toggleSettings()\" type=\"button\">\n <pry-icon iconSvg=\"close\"></pry-icon>\n </button>\n </div>\n <ng-container *ngIf=\"currentStep === FilterSteps.LIST\">\n <div class=\"o-filters__content\">\n <div *ngIf=\"(attributes$ | async)?.length === 0; else attributesExists\" class=\"a-table-wrapper\"></div>\n <ng-template #attributesExists>\n <table *ngIf=\"filters.length > 0; else noFilters\" class=\"a-table\">\n <tbody cdkDropList [cdkDropListData]=\"filters\" (cdkDropListDropped)=\"drop($event)\">\n <tr *ngFor=\"let filter of filters\" class=\"o-filters__filter\" cdkDrag>\n <td>\n <span>{{ filter.name }}</span>\n </td>\n <td>\n <span>{{ getFilterAttributes(filter, 3) }}</span>\n </td>\n <td>\n <button type=\"button\" class=\"a-btn a-btn--primary\" (click)=\"deleteFilter(filter.id)\">\n {{ '@pry.action.delete' | i18n }}\n </button>\n </td>\n <td>\n <button type=\"button\" class=\"a-btn a-btn--primary\" (click)=\"goToEdition(filter)\">\n {{ '@pry.filters.list.modify' | i18n }}\n </button>\n </td>\n <td cdkDragHandle>\n <pry-icon iconSvg=\"drag_indicator\"></pry-icon>\n </td>\n </tr>\n </tbody>\n </table>\n <ng-template #noFilters>\n <span class=\"o-filters__no-filters\">{{ '@pry.filters.noFilters' | i18n }}</span>\n </ng-template>\n <button (click)=\"goToCreation()\" class=\"a-btn a-btn--primary\">{{ '@pry.filters.list.add' | i18n }}</button>\n </ng-template>\n </div>\n </ng-container>\n <ng-container *ngIf=\"currentStep === FilterSteps.CREATION || currentStep === FilterSteps.EDITION\">\n <div class=\"o-filters__content\">\n <div class=\"m-form-label-field\">\n <label for=\"filterName\" class=\"a-label\">{{ '@pry.filters.creation.name' | i18n }}</label>\n <input id=\"filterName\" class=\"a-form-field\" type=\"text\" [(ngModel)]=\"filter.name\" />\n </div>\n <div class=\"m-form-label-field\">\n <label for=\"filterType\" class=\"a-label\">{{ '@pry.filters.creation.type' | i18n }}</label>\n <pry-select\n id=\"filterType\"\n [labelTranslate]=\"true\"\n [itemsAsOption]=\"true\"\n [placeholder]=\"'@pry.filters.creation.type' | i18n\"\n [items]=\"types$ | async\"\n bindLabel=\"label\"\n bindValue=\"value\"\n [(ngModel)]=\"filter.type\"\n (ngModelChange)=\"updateFilterType($event)\"\n >\n </pry-select>\n </div>\n <div *ngIf=\"(currentFilterComponentType$ | async) === 'date'\" class=\"m-form-label-field u-display-flex -row\">\n <label for=\"date-range\" class=\"a-label\">Plage de dates</label>\n <pry-checkbox\n id=\"date-range\"\n [(ngModel)]=\"filter.hasDateRange\"\n (ngModelChange)=\"this.currentOperators$.next(getOperators())\"\n />\n </div>\n <div *ngIf=\"(currentFilterComponentType$ | async) === 'list'\" class=\"m-form-label-field\">\n <label for=\"possibleValues\" class=\"a-label\">{{ '@pry.filters.creation.values' | i18n }}</label>\n <input\n id=\"possibleValues\"\n class=\"a-form-field\"\n type=\"text\"\n [(ngModel)]=\"filter.possibleValues\"\n placeholder=\"valeur1, valeur2, valeur3\"\n />\n </div>\n <div *ngIf=\"(currentFilterComponentType$ | async) === 'autocomplete'\" class=\"m-form-label-field\">\n <label for=\"limit\" class=\"a-label\">{{ '@pry.filters.creation.limit' | i18n }}</label>\n <input id=\"limit\" class=\"a-form-field\" type=\"number\" min=\"0\" max=\"50\" [(ngModel)]=\"filter.limit\" />\n </div>\n <div class=\"m-form-label-field\">\n <label for=\"attributes\" class=\"a-label\">{{ '@pry.filters.creation.attributes' | i18n }}</label>\n <pry-select\n id=\"attributes\"\n [labelTranslate]=\"false\"\n [itemsAsOption]=\"true\"\n [multiple]=\"true\"\n [closeOnSelect]=\"false\"\n [items]=\"attributes$ | async\"\n [ngModel]=\"filter.attributes\"\n (ngModelChange)=\"selectAttribute($event)\"\n [placeholder]=\"'@pry.filters.creation.attributes' | i18n\"\n [autocomplete]=\"true\"\n bindLabel=\"label\"\n >\n </pry-select>\n </div>\n <div class=\"m-form-label-field\">\n <label for=\"operations\" class=\"a-label\">{{ '@pry.filters.attributes.operator' | i18n }}</label>\n <pry-select\n id=\"operations\"\n [labelTranslate]=\"true\"\n [itemsAsOption]=\"true\"\n [items]=\"currentOperators$ | async\"\n [(ngModel)]=\"filter.operator\"\n [placeholder]=\"'@pry.filters.attributes.operator' | i18n\"\n bindLabel=\"label\"\n bindValue=\"value\"\n [disabled]=\"(currentFilterComponentType$ | async) === 'list'\"\n >\n </pry-select>\n </div>\n <button\n class=\"a-btn a-btn--primary\"\n (click)=\"submitFilter()\"\n [disabled]=\"!(filter.name && filter.type && filter.attributes.length !== 0 && filter.operator)\"\n type=\"submit\"\n >\n {{ '@pry.toolbox.manifest.validate' | i18n }}\n </button>\n </div>\n </ng-container>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i5.MaxValidator, selector: "input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]", inputs: ["max"] }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.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: i3.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i6.PryCheckboxComponent, selector: "pry-checkbox", inputs: ["circle"] }, { kind: "directive", type: i7.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i7.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i7.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: i8.PrySelectGridLayoutCssComponent, selector: "pry-toolbox-css" }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }] }); }
225
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PryFilterSettingsComponent, selector: "pry-filter-settings", inputs: { label: "label" }, viewQueries: [{ propertyName: "templateSettings", first: true, predicate: ["settings"], descendants: true, read: TemplateRef }, { propertyName: "container", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef }], usesInheritance: true, ngImport: i0, template: "<pry-toolbox-css></pry-toolbox-css>\n<div class=\"save-manifest-container\">\n <div style=\"display: none\">\n <ng-template #container></ng-template>\n </div>\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary -size-md\"\n [disabled]=\"(attributes$ | async)?.length === 0\"\n (click)=\"toggleSettings()\"\n aria-haspopup=\"dialog\"\n >\n <ng-container *ngIf=\"label\">{{ '@pry.filters.label' | i18n }}</ng-container>\n </button>\n</div>\n\n<ng-template #settings>\n <div class=\"o-filters\">\n <div class=\"o-filters__header\">\n <ng-container *ngIf=\"currentStep === FilterSteps.LIST\">\n <h2>{{ '@pry.filters.label' | i18n }}</h2>\n </ng-container>\n <ng-container *ngIf=\"currentStep === FilterSteps.CREATION || currentStep === FilterSteps.EDITION\">\n <div class=\"u-display-flex -row -align-center\">\n <button (click)=\"goBack()\" type=\"button\" class=\"back-button\">\n <pry-icon iconSvg=\"chevron_right\"></pry-icon>\n </button>\n <h2>\n {{\n (currentStep === FilterSteps.CREATION ? '@pry.filters.creation.create' : '@pry.filters.creation.update')\n | i18n\n }}\n </h2>\n </div>\n </ng-container>\n <button (click)=\"toggleSettings()\" type=\"button\">\n <pry-icon iconSvg=\"close\"></pry-icon>\n </button>\n </div>\n <ng-container *ngIf=\"currentStep === FilterSteps.LIST\">\n <div class=\"o-filters__content\">\n <div *ngIf=\"(attributes$ | async)?.length === 0; else attributesExists\" class=\"a-table-wrapper\"></div>\n <ng-template #attributesExists>\n <table *ngIf=\"filters.length > 0; else noFilters\" class=\"a-table\">\n <tbody cdkDropList [cdkDropListData]=\"filters\" (cdkDropListDropped)=\"drop($event)\">\n <tr *ngFor=\"let filter of filters\" class=\"o-filters__filter\" cdkDrag>\n <td>\n <span>{{ filter.name }}</span>\n </td>\n <td>\n <span>{{ getFilterAttributes(filter, 3) }}</span>\n </td>\n <td>\n <button type=\"button\" class=\"a-btn a-btn--primary\" (click)=\"deleteFilter(filter.id)\">\n {{ '@pry.action.delete' | i18n }}\n </button>\n </td>\n <td>\n <button type=\"button\" class=\"a-btn a-btn--primary\" (click)=\"goToEdition(filter)\">\n {{ '@pry.filters.list.modify' | i18n }}\n </button>\n </td>\n <td cdkDragHandle>\n <pry-icon iconSvg=\"drag_indicator\"></pry-icon>\n </td>\n </tr>\n </tbody>\n </table>\n <ng-template #noFilters>\n <span class=\"o-filters__no-filters\">{{ '@pry.filters.noFilters' | i18n }}</span>\n </ng-template>\n <button (click)=\"goToCreation()\" class=\"a-btn a-btn--primary\">{{ '@pry.filters.list.add' | i18n }}</button>\n </ng-template>\n </div>\n </ng-container>\n <ng-container *ngIf=\"currentStep === FilterSteps.CREATION || currentStep === FilterSteps.EDITION\">\n <div class=\"o-filters__content\">\n <div class=\"m-form-label-field\">\n <label for=\"filterName\" class=\"a-label\">{{ '@pry.filters.creation.name' | i18n }}</label>\n <input id=\"filterName\" class=\"a-form-field\" type=\"text\" [(ngModel)]=\"filter.name\" />\n </div>\n <div class=\"m-form-label-field\">\n <label for=\"filterType\" class=\"a-label\">{{ '@pry.filters.creation.type' | i18n }}</label>\n <pry-select\n id=\"filterType\"\n [placeholder]=\"'@pry.filters.creation.type' | i18n\"\n [items]=\"types$ | async\"\n bindLabel=\"label\"\n bindValue=\"value\"\n [(ngModel)]=\"filter.type\"\n (ngModelChange)=\"updateFilterType($event)\"\n >\n </pry-select>\n </div>\n <div *ngIf=\"(currentFilterComponentType$ | async) === 'date'\" class=\"m-form-label-field u-display-flex -row\">\n <label for=\"date-range\" class=\"a-label\">{{ '@pry.filters.creation.dateRange' | i18n }}</label>\n <pry-checkbox\n id=\"date-range\"\n [(ngModel)]=\"filter.hasDateRange\"\n (ngModelChange)=\"this.currentOperators$.next(getOperators())\"\n />\n </div>\n <div *ngIf=\"(currentFilterComponentType$ | async) === 'list'\" class=\"m-form-label-field\">\n <label for=\"possibleValues\" class=\"a-label\">{{ '@pry.filters.creation.values' | i18n }}</label>\n <input\n id=\"possibleValues\"\n class=\"a-form-field\"\n type=\"text\"\n [(ngModel)]=\"filter.possibleValues\"\n placeholder=\"valeur1, valeur2, valeur3\"\n />\n </div>\n <div *ngIf=\"(currentFilterComponentType$ | async) === 'autocomplete'\" class=\"m-form-label-field\">\n <label for=\"limit\" class=\"a-label\">{{ '@pry.filters.creation.limit' | i18n }}</label>\n <input id=\"limit\" class=\"a-form-field\" type=\"number\" min=\"0\" max=\"50\" [(ngModel)]=\"filter.limit\" />\n </div>\n <div class=\"m-form-label-field\">\n <label for=\"attributes\" class=\"a-label\">{{ '@pry.filters.creation.attributes' | i18n }}</label>\n <pry-select\n id=\"attributes\"\n [multiple]=\"true\"\n [closeOnSelect]=\"false\"\n [items]=\"attributes$ | async\"\n [ngModel]=\"filter.attributes\"\n (ngModelChange)=\"selectAttribute($event)\"\n [placeholder]=\"'@pry.filters.creation.attributes' | i18n\"\n [autocomplete]=\"true\"\n bindLabel=\"label\"\n >\n </pry-select>\n </div>\n <div class=\"m-form-label-field\">\n <label for=\"operations\" class=\"a-label\">{{ '@pry.filters.attributes.operator' | i18n }}</label>\n <pry-select\n id=\"operations\"\n [items]=\"currentOperators$ | async\"\n [(ngModel)]=\"filter.operator\"\n [placeholder]=\"'@pry.filters.attributes.operator' | i18n\"\n bindLabel=\"label\"\n bindValue=\"value\"\n [disabled]=\"(currentFilterComponentType$ | async) === 'list'\"\n >\n </pry-select>\n </div>\n <button\n class=\"a-btn a-btn--primary\"\n (click)=\"submitFilter()\"\n [disabled]=\"!(filter.name && filter.type && filter.attributes.length !== 0 && filter.operator)\"\n type=\"submit\"\n >\n {{ '@pry.toolbox.manifest.validate' | i18n }}\n </button>\n </div>\n </ng-container>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i5.MaxValidator, selector: "input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]", inputs: ["max"] }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.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: i3.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i6.PryCheckboxComponent, selector: "pry-checkbox", inputs: ["circle"] }, { kind: "directive", type: i7.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i7.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i7.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: i8.PrySelectGridLayoutCssComponent, selector: "pry-toolbox-css" }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }] }); }
226
226
  }
227
227
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryFilterSettingsComponent, decorators: [{
228
228
  type: Component,
229
- args: [{ selector: 'pry-filter-settings', template: "<pry-toolbox-css></pry-toolbox-css>\n<div\n class=\"save-manifest-container a-tooltip\"\n [attr.data-tooltip]=\"'@pry.filters.label' | i18n\"\n data-tooltip-position=\"bottom\"\n>\n <div style=\"display: none\">\n <ng-template #container></ng-template>\n </div>\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary -size-md\"\n [disabled]=\"(attributes$ | async)?.length === 0\"\n (click)=\"toggleSettings()\"\n aria-haspopup=\"dialog\"\n >\n <ng-container *ngIf=\"label\">{{ '@pry.filters.label' | i18n }}</ng-container>\n </button>\n</div>\n\n<ng-template #settings>\n <div class=\"o-filters\">\n <div class=\"o-filters__header\">\n <ng-container *ngIf=\"currentStep === FilterSteps.LIST\">\n <h2>Param\u00E9trer les filtres</h2>\n </ng-container>\n <ng-container *ngIf=\"currentStep === FilterSteps.CREATION || currentStep === FilterSteps.EDITION\">\n <div class=\"u-display-flex -row -align-center\">\n <button (click)=\"goBack()\" type=\"button\" class=\"back-button\">\n <pry-icon iconSvg=\"chevron_right\"></pry-icon>\n </button>\n <h2>\n {{\n (currentStep === FilterSteps.CREATION ? '@pry.filters.creation.create' : '@pry.filters.creation.update')\n | i18n\n }}\n </h2>\n </div>\n </ng-container>\n <button (click)=\"toggleSettings()\" type=\"button\">\n <pry-icon iconSvg=\"close\"></pry-icon>\n </button>\n </div>\n <ng-container *ngIf=\"currentStep === FilterSteps.LIST\">\n <div class=\"o-filters__content\">\n <div *ngIf=\"(attributes$ | async)?.length === 0; else attributesExists\" class=\"a-table-wrapper\"></div>\n <ng-template #attributesExists>\n <table *ngIf=\"filters.length > 0; else noFilters\" class=\"a-table\">\n <tbody cdkDropList [cdkDropListData]=\"filters\" (cdkDropListDropped)=\"drop($event)\">\n <tr *ngFor=\"let filter of filters\" class=\"o-filters__filter\" cdkDrag>\n <td>\n <span>{{ filter.name }}</span>\n </td>\n <td>\n <span>{{ getFilterAttributes(filter, 3) }}</span>\n </td>\n <td>\n <button type=\"button\" class=\"a-btn a-btn--primary\" (click)=\"deleteFilter(filter.id)\">\n {{ '@pry.action.delete' | i18n }}\n </button>\n </td>\n <td>\n <button type=\"button\" class=\"a-btn a-btn--primary\" (click)=\"goToEdition(filter)\">\n {{ '@pry.filters.list.modify' | i18n }}\n </button>\n </td>\n <td cdkDragHandle>\n <pry-icon iconSvg=\"drag_indicator\"></pry-icon>\n </td>\n </tr>\n </tbody>\n </table>\n <ng-template #noFilters>\n <span class=\"o-filters__no-filters\">{{ '@pry.filters.noFilters' | i18n }}</span>\n </ng-template>\n <button (click)=\"goToCreation()\" class=\"a-btn a-btn--primary\">{{ '@pry.filters.list.add' | i18n }}</button>\n </ng-template>\n </div>\n </ng-container>\n <ng-container *ngIf=\"currentStep === FilterSteps.CREATION || currentStep === FilterSteps.EDITION\">\n <div class=\"o-filters__content\">\n <div class=\"m-form-label-field\">\n <label for=\"filterName\" class=\"a-label\">{{ '@pry.filters.creation.name' | i18n }}</label>\n <input id=\"filterName\" class=\"a-form-field\" type=\"text\" [(ngModel)]=\"filter.name\" />\n </div>\n <div class=\"m-form-label-field\">\n <label for=\"filterType\" class=\"a-label\">{{ '@pry.filters.creation.type' | i18n }}</label>\n <pry-select\n id=\"filterType\"\n [labelTranslate]=\"true\"\n [itemsAsOption]=\"true\"\n [placeholder]=\"'@pry.filters.creation.type' | i18n\"\n [items]=\"types$ | async\"\n bindLabel=\"label\"\n bindValue=\"value\"\n [(ngModel)]=\"filter.type\"\n (ngModelChange)=\"updateFilterType($event)\"\n >\n </pry-select>\n </div>\n <div *ngIf=\"(currentFilterComponentType$ | async) === 'date'\" class=\"m-form-label-field u-display-flex -row\">\n <label for=\"date-range\" class=\"a-label\">Plage de dates</label>\n <pry-checkbox\n id=\"date-range\"\n [(ngModel)]=\"filter.hasDateRange\"\n (ngModelChange)=\"this.currentOperators$.next(getOperators())\"\n />\n </div>\n <div *ngIf=\"(currentFilterComponentType$ | async) === 'list'\" class=\"m-form-label-field\">\n <label for=\"possibleValues\" class=\"a-label\">{{ '@pry.filters.creation.values' | i18n }}</label>\n <input\n id=\"possibleValues\"\n class=\"a-form-field\"\n type=\"text\"\n [(ngModel)]=\"filter.possibleValues\"\n placeholder=\"valeur1, valeur2, valeur3\"\n />\n </div>\n <div *ngIf=\"(currentFilterComponentType$ | async) === 'autocomplete'\" class=\"m-form-label-field\">\n <label for=\"limit\" class=\"a-label\">{{ '@pry.filters.creation.limit' | i18n }}</label>\n <input id=\"limit\" class=\"a-form-field\" type=\"number\" min=\"0\" max=\"50\" [(ngModel)]=\"filter.limit\" />\n </div>\n <div class=\"m-form-label-field\">\n <label for=\"attributes\" class=\"a-label\">{{ '@pry.filters.creation.attributes' | i18n }}</label>\n <pry-select\n id=\"attributes\"\n [labelTranslate]=\"false\"\n [itemsAsOption]=\"true\"\n [multiple]=\"true\"\n [closeOnSelect]=\"false\"\n [items]=\"attributes$ | async\"\n [ngModel]=\"filter.attributes\"\n (ngModelChange)=\"selectAttribute($event)\"\n [placeholder]=\"'@pry.filters.creation.attributes' | i18n\"\n [autocomplete]=\"true\"\n bindLabel=\"label\"\n >\n </pry-select>\n </div>\n <div class=\"m-form-label-field\">\n <label for=\"operations\" class=\"a-label\">{{ '@pry.filters.attributes.operator' | i18n }}</label>\n <pry-select\n id=\"operations\"\n [labelTranslate]=\"true\"\n [itemsAsOption]=\"true\"\n [items]=\"currentOperators$ | async\"\n [(ngModel)]=\"filter.operator\"\n [placeholder]=\"'@pry.filters.attributes.operator' | i18n\"\n bindLabel=\"label\"\n bindValue=\"value\"\n [disabled]=\"(currentFilterComponentType$ | async) === 'list'\"\n >\n </pry-select>\n </div>\n <button\n class=\"a-btn a-btn--primary\"\n (click)=\"submitFilter()\"\n [disabled]=\"!(filter.name && filter.type && filter.attributes.length !== 0 && filter.operator)\"\n type=\"submit\"\n >\n {{ '@pry.toolbox.manifest.validate' | i18n }}\n </button>\n </div>\n </ng-container>\n </div>\n</ng-template>\n" }]
229
+ args: [{ selector: 'pry-filter-settings', template: "<pry-toolbox-css></pry-toolbox-css>\n<div class=\"save-manifest-container\">\n <div style=\"display: none\">\n <ng-template #container></ng-template>\n </div>\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary -size-md\"\n [disabled]=\"(attributes$ | async)?.length === 0\"\n (click)=\"toggleSettings()\"\n aria-haspopup=\"dialog\"\n >\n <ng-container *ngIf=\"label\">{{ '@pry.filters.label' | i18n }}</ng-container>\n </button>\n</div>\n\n<ng-template #settings>\n <div class=\"o-filters\">\n <div class=\"o-filters__header\">\n <ng-container *ngIf=\"currentStep === FilterSteps.LIST\">\n <h2>{{ '@pry.filters.label' | i18n }}</h2>\n </ng-container>\n <ng-container *ngIf=\"currentStep === FilterSteps.CREATION || currentStep === FilterSteps.EDITION\">\n <div class=\"u-display-flex -row -align-center\">\n <button (click)=\"goBack()\" type=\"button\" class=\"back-button\">\n <pry-icon iconSvg=\"chevron_right\"></pry-icon>\n </button>\n <h2>\n {{\n (currentStep === FilterSteps.CREATION ? '@pry.filters.creation.create' : '@pry.filters.creation.update')\n | i18n\n }}\n </h2>\n </div>\n </ng-container>\n <button (click)=\"toggleSettings()\" type=\"button\">\n <pry-icon iconSvg=\"close\"></pry-icon>\n </button>\n </div>\n <ng-container *ngIf=\"currentStep === FilterSteps.LIST\">\n <div class=\"o-filters__content\">\n <div *ngIf=\"(attributes$ | async)?.length === 0; else attributesExists\" class=\"a-table-wrapper\"></div>\n <ng-template #attributesExists>\n <table *ngIf=\"filters.length > 0; else noFilters\" class=\"a-table\">\n <tbody cdkDropList [cdkDropListData]=\"filters\" (cdkDropListDropped)=\"drop($event)\">\n <tr *ngFor=\"let filter of filters\" class=\"o-filters__filter\" cdkDrag>\n <td>\n <span>{{ filter.name }}</span>\n </td>\n <td>\n <span>{{ getFilterAttributes(filter, 3) }}</span>\n </td>\n <td>\n <button type=\"button\" class=\"a-btn a-btn--primary\" (click)=\"deleteFilter(filter.id)\">\n {{ '@pry.action.delete' | i18n }}\n </button>\n </td>\n <td>\n <button type=\"button\" class=\"a-btn a-btn--primary\" (click)=\"goToEdition(filter)\">\n {{ '@pry.filters.list.modify' | i18n }}\n </button>\n </td>\n <td cdkDragHandle>\n <pry-icon iconSvg=\"drag_indicator\"></pry-icon>\n </td>\n </tr>\n </tbody>\n </table>\n <ng-template #noFilters>\n <span class=\"o-filters__no-filters\">{{ '@pry.filters.noFilters' | i18n }}</span>\n </ng-template>\n <button (click)=\"goToCreation()\" class=\"a-btn a-btn--primary\">{{ '@pry.filters.list.add' | i18n }}</button>\n </ng-template>\n </div>\n </ng-container>\n <ng-container *ngIf=\"currentStep === FilterSteps.CREATION || currentStep === FilterSteps.EDITION\">\n <div class=\"o-filters__content\">\n <div class=\"m-form-label-field\">\n <label for=\"filterName\" class=\"a-label\">{{ '@pry.filters.creation.name' | i18n }}</label>\n <input id=\"filterName\" class=\"a-form-field\" type=\"text\" [(ngModel)]=\"filter.name\" />\n </div>\n <div class=\"m-form-label-field\">\n <label for=\"filterType\" class=\"a-label\">{{ '@pry.filters.creation.type' | i18n }}</label>\n <pry-select\n id=\"filterType\"\n [placeholder]=\"'@pry.filters.creation.type' | i18n\"\n [items]=\"types$ | async\"\n bindLabel=\"label\"\n bindValue=\"value\"\n [(ngModel)]=\"filter.type\"\n (ngModelChange)=\"updateFilterType($event)\"\n >\n </pry-select>\n </div>\n <div *ngIf=\"(currentFilterComponentType$ | async) === 'date'\" class=\"m-form-label-field u-display-flex -row\">\n <label for=\"date-range\" class=\"a-label\">{{ '@pry.filters.creation.dateRange' | i18n }}</label>\n <pry-checkbox\n id=\"date-range\"\n [(ngModel)]=\"filter.hasDateRange\"\n (ngModelChange)=\"this.currentOperators$.next(getOperators())\"\n />\n </div>\n <div *ngIf=\"(currentFilterComponentType$ | async) === 'list'\" class=\"m-form-label-field\">\n <label for=\"possibleValues\" class=\"a-label\">{{ '@pry.filters.creation.values' | i18n }}</label>\n <input\n id=\"possibleValues\"\n class=\"a-form-field\"\n type=\"text\"\n [(ngModel)]=\"filter.possibleValues\"\n placeholder=\"valeur1, valeur2, valeur3\"\n />\n </div>\n <div *ngIf=\"(currentFilterComponentType$ | async) === 'autocomplete'\" class=\"m-form-label-field\">\n <label for=\"limit\" class=\"a-label\">{{ '@pry.filters.creation.limit' | i18n }}</label>\n <input id=\"limit\" class=\"a-form-field\" type=\"number\" min=\"0\" max=\"50\" [(ngModel)]=\"filter.limit\" />\n </div>\n <div class=\"m-form-label-field\">\n <label for=\"attributes\" class=\"a-label\">{{ '@pry.filters.creation.attributes' | i18n }}</label>\n <pry-select\n id=\"attributes\"\n [multiple]=\"true\"\n [closeOnSelect]=\"false\"\n [items]=\"attributes$ | async\"\n [ngModel]=\"filter.attributes\"\n (ngModelChange)=\"selectAttribute($event)\"\n [placeholder]=\"'@pry.filters.creation.attributes' | i18n\"\n [autocomplete]=\"true\"\n bindLabel=\"label\"\n >\n </pry-select>\n </div>\n <div class=\"m-form-label-field\">\n <label for=\"operations\" class=\"a-label\">{{ '@pry.filters.attributes.operator' | i18n }}</label>\n <pry-select\n id=\"operations\"\n [items]=\"currentOperators$ | async\"\n [(ngModel)]=\"filter.operator\"\n [placeholder]=\"'@pry.filters.attributes.operator' | i18n\"\n bindLabel=\"label\"\n bindValue=\"value\"\n [disabled]=\"(currentFilterComponentType$ | async) === 'list'\"\n >\n </pry-select>\n </div>\n <button\n class=\"a-btn a-btn--primary\"\n (click)=\"submitFilter()\"\n [disabled]=\"!(filter.name && filter.type && filter.attributes.length !== 0 && filter.operator)\"\n type=\"submit\"\n >\n {{ '@pry.toolbox.manifest.validate' | i18n }}\n </button>\n </div>\n </ng-container>\n </div>\n</ng-template>\n" }]
230
230
  }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Overlay }, { type: i0.ViewContainerRef }, { type: i3.FilterFactoryService }, { type: i0.Injector }]; }, propDecorators: { label: [{
231
231
  type: Input
232
232
  }], templateSettings: [{
@@ -236,4 +236,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
236
236
  type: ViewChild,
237
237
  args: ['container', { read: ViewContainerRef }]
238
238
  }] } });
239
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLXNldHRpbmdzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL3Rvb2xib3gvY29tcG9uZW50cy9maWx0ZXItc2V0dGluZ3MvZmlsdGVyLXNldHRpbmdzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL3Rvb2xib3gvY29tcG9uZW50cy9maWx0ZXItc2V0dGluZ3MvZmlsdGVyLXNldHRpbmdzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RSxPQUFPLEVBQVcsYUFBYSxFQUFjLE1BQU0sc0JBQXNCLENBQUM7QUFDMUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxTQUFTLEVBQVksS0FBSyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFckcsT0FBTyxFQUVMLGNBQWMsRUFDZCxhQUFhLEVBQ2IsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUVsQixtQkFBbUIsRUFDbkIsY0FBYyxFQUNkLFNBQVMsRUFLVCxlQUFlLEVBQ2hCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFCLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDOzs7Ozs7Ozs7O0FBRXBGLE1BQU0sQ0FBTixJQUFZLFdBSVg7QUFKRCxXQUFZ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QWM7b0JBQ2pCLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUM3QztvQkFDRSxPQUFPLFFBQVEsQ0FBQzthQUNuQjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzsrR0F0UFUsMEJBQTBCO21HQUExQiwwQkFBMEIsZ0xBRU4sV0FBVyxpR0ErQlYsZ0JBQWdCLG9EQzdFbEQsc21PQXNLQTs7NEZEMUhhLDBCQUEwQjtrQkFKdEMsU0FBUzsrQkFDRSxxQkFBcUI7Mk1BSXRCLEtBQUs7c0JBQWIsS0FBSztnQkFDd0MsZ0JBQWdCO3NCQUE3RCxTQUFTO3VCQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7Z0JBK0JRLFNBQVM7c0JBQTVELFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2RrRHJhZ0Ryb3AsIG1vdmVJdGVtSW5BcnJheSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xuaW1wb3J0IHsgT3ZlcmxheSwgT3ZlcmxheUNvbmZpZywgT3ZlcmxheVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IFRlbXBsYXRlUG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdG9yLCBJbnB1dCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQge1xuICBDbGFzcyxcbiAgQ2xhc3NTZWxlY3RvcnMsXG4gIENvbmZpZ0FjdGlvbnMsXG4gIERhc2hib2FyZEFjdGlvbnMsXG4gIERhc2hib2FyZFNlbGVjdG9ycyxcbiAgRGF0YVNvdXJjZSxcbiAgRGF0YVNvdXJjZVNlbGVjdG9ycyxcbiAgRmllbGRTZWxlY3RvcnMsXG4gIEZpZWxkVHlwZSxcbiAgRmlsdGVyLFxuICBGaWx0ZXJGYWN0b3J5U2VydmljZSxcbiAgR2xvYmFsTWFuaWZlc3QsXG4gIE1vbm9DbGFzc1NlYXJjaFBheWxvYWQsXG4gIE5hbWVkUXVlcnlUeXBlc1xufSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBtYXAsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHdpdGhMYXRlc3RGcm9tIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgdjQgfSBmcm9tICd1dWlkJztcbmltcG9ydCB7IFRvb2xib3hBY3Rpb25Db21wb25lbnQgfSBmcm9tICcuLi90b29sYm94LWFjdGlvbi90b29sYm94LWFjdGlvbi5jb21wb25lbnQnO1xuXG5leHBvcnQgZW51bSBGaWx0ZXJTdGVwcyB7XG4gIExJU1QgPSAnbGlzdCcsXG4gIENSRUFUSU9OID0gJ2NyZWF0aW9uJyxcbiAgRURJVElPTiA9ICdlZGl0aW9uJ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEF0dHJpYnV0ZSB7XG4gIGlkOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgbGFiZWw6IHN0cmluZztcbiAgZGF0YXNvdXJjZTogc3RyaW5nO1xuICB0eXBlOiBGaWVsZFR5cGU7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ByeS1maWx0ZXItc2V0dGluZ3MnLFxuICB0ZW1wbGF0ZVVybDogJy4vZmlsdGVyLXNldHRpbmdzLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBQcnlGaWx0ZXJTZXR0aW5nc0NvbXBvbmVudCBleHRlbmRzIFRvb2xib3hBY3Rpb25Db21wb25lbnQge1xuICBASW5wdXQoKSBsYWJlbCA9IHRydWU7XG4gIEBWaWV3Q2hpbGQoJ3NldHRpbmdzJywgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KSB0ZW1wbGF0ZVNldHRpbmdzITogVGVtcGxhdGVSZWY8YW55PjtcbiAgb3ZlcmxheVJlZlNldHRpbmdzPzogT3ZlcmxheVJlZjtcbiAgc2V0dGluZ3NPcGVuZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgbWFuaWZlc3QkOiBPYnNlcnZhYmxlPEdsb2JhbE1hbmlmZXN0PjtcbiAgZmlsdGVyczogRmlsdGVyW10gPSBbXTtcbiAgdHlwZXMkOiBPYnNlcnZhYmxlPHsgbGFiZWw6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9W10+O1xuICBjdXJyZW50RmlsdGVyQ29tcG9uZW50VHlwZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KCcnKTtcbiAgY3VycmVudFN0ZXA6IEZpbHRlclN0ZXBzID0gRmlsdGVyU3RlcHMuTElTVDtcbiAgc3RlcHMgPSBGaWx0ZXJTdGVwcztcbiAgZmlsdGVyOiBGaWx0ZXIgPSB7XG4gICAgaWQ6IHY0KCksXG4gICAgbmFtZTogJycsXG4gICAgdHlwZTogJycsXG4gICAgYXR0cmlidXRlczogW11cbiAgfTtcbiAgZGF0YXNvdXJjZSQ6IE9ic2VydmFibGU8YW55PjtcbiAgb3BlcmF0b3JzID0gW1xuICAgIHsgbGFiZWw6ICdAcHJ5LnNlYXJjaC5vcGVyYXRvci5lcXVhbHNTdHJpbmcnLCB2YWx1ZTogJ0VRVUFMUycgfSxcbiAgICB7IGxhYmVsOiAnQHByeS5zZWFyY2gub3BlcmF0b3Iubm90RXF1YWxzU3RyaW5nJywgdmFsdWU6ICdOT1RfRVFVQUxTJyB9LFxuICAgIHsgbGFiZWw6ICdAcHJ5LnNlYXJjaC5vcGVyYXRvci5jb250YWlucycsIHZhbHVlOiAnQ09OVEFJTlMnIH0sXG4gICAgeyBsYWJlbDogJ0Bwcnkuc2VhcmNoLm9wZXJhdG9yLnN0YXJ0V2l0aCcsIHZhbHVlOiAnU1RBUlRfV0lUSCcgfSxcbiAgICB7IGxhYmVsOiAnQHByeS5zZWFyY2gub3BlcmF0b3IuZW5kV2l0aCcsIHZhbHVlOiAnRU5EX1dJVEgnIH0sXG4gICAgeyBsYWJlbDogJ0Bwcnkuc2VhcmNoLm9wZXJhdG9yLmdyZWF0ZXJUaGFuTnVtYmVyJywgdmFsdWU6ICdHUkVBVEVSX1RIQU4nIH0sXG4gICAgeyBsYWJlbDogJ0Bwcnkuc2VhcmNoLm9wZXJhdG9yLmxvd2VyVGhhbk51bWJlcicsIHZhbHVlOiAnTE9XRVJfVEhBTicgfSxcbiAgICB7IGxhYmVsOiAnQHByeS5zZWFyY2gub3BlcmF0b3IuaW5uZXJCb3VuZHNEYXRlJywgdmFsdWU6ICdJTlNJREUnIH0sXG4gICAgeyBsYWJlbDogJ0Bwcnkuc2VhcmNoLm9wZXJhdG9yLm91dGVyQm91bmRzRGF0ZScsIHZhbHVlOiAnT1VUU0lERScgfVxuICBdO1xuICBjdXJyZW50T3BlcmF0b3JzJCA9IG5ldyBCZWhhdmlvclN1YmplY3QodGhpcy5vcGVyYXRvcnMpO1xuICBjbGFzc2VzOiBDbGFzc1tdID0gW107XG4gIGF0dHJpYnV0ZXMkOiBPYnNlcnZhYmxlPHsgaWQ6IHN0cmluZzsgbmFtZTogc3RyaW5nOyBsYWJlbDogc3RyaW5nOyBkYXRhc291cmNlOiBzdHJpbmc7IHR5cGU6IHN0cmluZyB9W10+O1xuICBzZWxlY3RlZEF0dHJpYnV0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZ1tdPih0aGlzLmZpbHRlci5hdHRyaWJ1dGVzLm1hcCgoYXR0cikgPT4gYXR0ci5pZCkpO1xuICBAVmlld0NoaWxkKCdjb250YWluZXInLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYgfSkgY29udGFpbmVyITogVmlld0NvbnRhaW5lclJlZjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBzdG9yZTogU3RvcmUsXG4gICAgcHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5LFxuICAgIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICBwcml2YXRlIGZpbHRlckZhY3RvcnlTZXJ2aWNlOiBGaWx0ZXJGYWN0b3J5U2VydmljZSxcbiAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvclxuICApIHtcbiAgICBzdXBlcihzdG9yZSk7XG4gICAgdGhpcy5tYW5pZmVzdCQgPSBzdG9yZS5zZWxlY3QoRGFzaGJvYXJkU2VsZWN0b3JzLmdsb2JhbE1hbmlmZXN0KTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy5tYW5pZmVzdCQuc3Vic2NyaWJlKChtYW5pZmVzdCkgPT4ge1xuICAgICAgICB0aGlzLmZpbHRlcnMgPSBtYW5pZmVzdC5maWx0ZXJzID8gWy4uLm1hbmlmZXN0LmZpbHRlcnNdIDogW107XG4gICAgICB9KVxuICAgICk7XG5cbiAgICB0aGlzLmRhdGFzb3VyY2UkID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLnN0b3JlLnNlbGVjdChEYXRhU291cmNlU2VsZWN0b3JzLmdldERhdGFTb3VyY2VzKSxcbiAgICAgIHN0b3JlLnNlbGVjdChEYXNoYm9hcmRTZWxlY3RvcnMubmFtZWRRdWVyaWVzVXNlcylcbiAgICBdKS5waXBlKFxuICAgICAgbWFwKChbZGF0YVNvdXJjZXMsIGRhdGFTb3VyY2VzVXNlZF0pID0+XG4gICAgICAgIE9iamVjdC5rZXlzKGRhdGFTb3VyY2VzVXNlZCkubWFwKChpZCkgPT4gKHtcbiAgICAgICAgICBsYWJlbDogZGF0YVNvdXJjZXMuZmluZCgoZGF0YVNvdXJjZSkgPT4gZGF0YVNvdXJjZS5pZCA9PT0gaWQpPy5uYW1lLFxuICAgICAgICAgIHZhbHVlOiBpZFxuICAgICAgICB9KSlcbiAgICAgIClcbiAgICApO1xuXG4gICAgdGhpcy50eXBlcyQgPSB0aGlzLmZpbHRlckZhY3RvcnlTZXJ2aWNlLnR5cGVzJC5waXBlKFxuICAgICAgbWFwKCh0eXBlcykgPT5cbiAgICAgICAgdHlwZXMubWFwKCh0eXBlKSA9PiAoe1xuICAgICAgICAgIGxhYmVsOiAnQHByeS5maWx0ZXJzLnR5cGVzLicgKyB0eXBlLFxuICAgICAgICAgIHZhbHVlOiB0eXBlXG4gICAgICAgIH0pKVxuICAgICAgKVxuICAgICk7XG5cbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy5jdXJyZW50RmlsdGVyQ29tcG9uZW50VHlwZSQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5jdXJyZW50T3BlcmF0b3JzJC5uZXh0KHRoaXMuZ2V0T3BlcmF0b3JzKCkpO1xuICAgICAgfSlcbiAgICApO1xuXG4gICAgdGhpcy5hdHRyaWJ1dGVzJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgc3RvcmUuc2VsZWN0KERhdGFTb3VyY2VTZWxlY3RvcnMuZ2V0RGF0YVNvdXJjZXMpLFxuICAgICAgc3RvcmUuc2VsZWN0KERhc2hib2FyZFNlbGVjdG9ycy5uYW1lZFF1ZXJpZXNVc2VzKSxcbiAgICAgIHN0b3JlLnNlbGVjdChDbGFzc1NlbGVjdG9ycy5jbGFzc2VzKSxcbiAgICAgIHRoaXMuY3VycmVudEZpbHRlckNvbXBvbmVudFR5cGUkXG4gICAgXSkucGlwZShcbiAgICAgIHdpdGhMYXRlc3RGcm9tKHN0b3JlLnNlbGVjdChGaWVsZFNlbGVjdG9ycy5maWVsZHMpKSxcbiAgICAgIG1hcCgoW1tkYXRhU291cmNlcywgY3VycmVudERhdGFTb3VyY2VzLCBjbGFzc2VzLCBjb21wb25lbnRUeXBlXSwgZmllbGRzXSkgPT4ge1xuICAgICAgICBsZXQgZGF0YVNvdXJjZXNJblByZXMgPSBkYXRhU291cmNlcy5maWx0ZXIoKGRhdGFTb3VyY2UpID0+XG4gICAgICAgICAgT2JqZWN0LmtleXMoY3VycmVudERhdGFTb3VyY2VzKS5pbmNsdWRlcyhkYXRhU291cmNlLmlkKSA/IGRhdGFTb3VyY2UgOiBmYWxzZVxuICAgICAgICApO1xuICAgICAgICBjb25zdCBhdHRyaWJ1dGVzOiBBdHRyaWJ1dGVbXSA9IFtdO1xuICAgICAgICBkYXRhU291cmNlc0luUHJlcy5mb3JFYWNoKChkYXRhU291cmNlKSA9PiB7XG4gICAgICAgICAgY29uc3QgY2xhenogPSB0aGlzLmdldERhdGFzb3VyY2VDbGFzcyhkYXRhU291cmNlLCBjbGFzc2VzKTtcbiAgICAgICAgICBjbGF6ej8uYXR0cmlidXRlcy5mb3JFYWNoKChhdHRyKSA9PiB7XG4gICAgICAgICAgICBhdHRyaWJ1dGVzLnB1c2goe1xuICAgICAgICAgICAgICBpZDogYXR0ci5pZCxcbiAgICAgICAgICAgICAgbmFtZTogYXR0ci5uYW1lLFxuICAgICAgICAgICAgICBsYWJlbDogW2F0dHIubmFtZSwgZGF0YVNvdXJjZS5uYW1lLCBjbGF6ei5uYW1lXS5qb2luKCcgLyAnKSxcbiAgICAgICAgICAgICAgZGF0YXNvdXJjZTogZGF0YVNvdXJjZS5pZCxcbiAgICAgICAgICAgICAgdHlwZTogZmllbGRzLmZpbmQoKGZpZWxkKSA9PiBmaWVsZC5pZCA9PT0gYXR0ci5maWVsZCk/LnR5cGUgPz8gRmllbGRUeXBlLlNUUklOR1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXJBdHRyaWJ1dGVzKGNvbXBvbmVudFR5cGUsIGF0dHJpYnV0ZXMpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgZ2V0RGF0YXNvdXJjZUNsYXNzKGRhdGFTb3VyY2U6IERhdGFTb3VyY2UsIGNsYXNzZXM6IENsYXNzW10pOiBDbGFzcyB8IHVuZGVmaW5lZCB7XG4gICAgbGV0IGNsYXp6OiBDbGFzcyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgICBpZiAoZGF0YVNvdXJjZS5zb3VyY2VUeXBlID09PSAnZGF0YXNldCcpIHtcbiAgICAgIGNsYXp6ID0gY2xhc3Nlcy5maW5kKChjbGF6eikgPT4gY2xhenouaWQgPT09IGRhdGFTb3VyY2Uub0NsYXNzKTtcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgZGF0YVNvdXJjZS5zb3VyY2VUeXBlID09PSAnbmFtZWRRdWVyeScgJiZcbiAgICAgIGRhdGFTb3VyY2UucmVxdWVzdCAmJlxuICAgICAgZGF0YVNvdXJjZS5yZXF1ZXN0LnR5cGUgPT09IE5hbWVkUXVlcnlUeXBlcy5NT05PX0NMQVNTXG4gICAgKSB7XG4gICAgICBjbGF6eiA9IGNsYXNzZXMuZmluZCgoY2xhenopID0+IGNsYXp6LmlkID09PSAoZGF0YVNvdXJjZS5yZXF1ZXN0IGFzIE1vbm9DbGFzc1NlYXJjaFBheWxvYWQpLm9DbGFzcyk7XG4gICAgfVxuICAgIHJldHVybiBjbGF6ejtcbiAgfVxuXG4gIGZpbHRlckF0dHJpYnV0ZXMoY29tcG9uZW50VHlwZTogc3RyaW5nLCBhdHRyaWJ1dGVzOiBBdHRyaWJ1dGVbXSk6IEF0dHJpYnV0ZVtdIHtcbiAgICBzd2l0Y2ggKGNvbXBvbmVudFR5cGUpIHtcbiAgICAgIGNhc2UgJ2RhdGUnOlxuICAgICAgICByZXR1cm4gYXR0cmlidXRlcy5maWx0ZXIoKGF0dHIpID0+IGF0dHIudHlwZSA9PT0gRmllbGRUeXBlLklOU1RBTlQpO1xuICAgICAgY2FzZSAnbnVtYmVyJzpcbiAgICAgICAgcmV0dXJuIGF0dHJpYnV0ZXMuZmlsdGVyKChhdHRyKSA9PiBbRmllbGRUeXBlLklOVEVHRVIsIEZpZWxkVHlwZS5ERUNJTUFMLCBGaWVsZFR5cGUuTE9OR10uaW5jbHVkZXMoYXR0ci50eXBlKSk7XG4gICAgICBjYXNlICd0ZXh0JzpcbiAgICAgICAgcmV0dXJuIGF0dHJpYnV0ZXMuZmlsdGVyKChhdHRyKSA9PiBbRmllbGRUeXBlLlNUUklORywgRmllbGRUeXBlLktFWVdPUkRdLmluY2x1ZGVzKGF0dHIudHlwZSkpO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRBdHRyaWJ1dGUkLnZhbHVlLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBjb25zdCBhdHRyaWJ1dGVUeXBlID0gYXR0cmlidXRlcy5maW5kKChhdHRyKSA9PiBhdHRyLmlkID09PSB0aGlzLnNlbGVjdGVkQXR0cmlidXRlJC52YWx1ZVswXSk/LnR5cGU7XG4gICAgICAgICAgcmV0dXJuIGF0dHJpYnV0ZXMuZmlsdGVyKChhdHRyKSA9PiBhdHRyLnR5cGUgPT09IGF0dHJpYnV0ZVR5cGUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhdHRyaWJ1dGVzO1xuICAgIH1cbiAgfVxuXG4gIGRyb3AoZXZlbnQ6IENka0RyYWdEcm9wPEZpbHRlcltdPikge1xuICAgIG1vdmVJdGVtSW5BcnJheSh0aGlzLmZpbHRlcnMsIGV2ZW50LnByZXZpb3VzSW5kZXgsIGV2ZW50LmN1cnJlbnRJbmRleCk7XG4gIH1cblxuICB0b2dnbGVTZXR0aW5ncygpIHtcbiAgICB0aGlzLnNldHRpbmdzT3BlbmVkID0gIXRoaXMuc2V0dGluZ3NPcGVuZWQ7XG4gICAgaWYgKHRoaXMuc2V0dGluZ3NPcGVuZWQpIHtcbiAgICAgIHRoaXMub3BlblNldHRpbmdzKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub3ZlcmxheVJlZlNldHRpbmdzPy5kaXNwb3NlKCk7XG4gICAgICB0aGlzLm92ZXJsYXlSZWZTZXR0aW5ncyA9IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQ29uZmlnQWN0aW9ucy5jbG9zZU92ZXJsYXkoeyBpZDogdGhpcy5jb25zdHJ1Y3Rvci5uYW1lIH0pKTtcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRGFzaGJvYXJkQWN0aW9ucy5zZXRGaWx0ZXJzKHsgZmlsdGVyczogdGhpcy5maWx0ZXJzIH0pKTtcbiAgICAgIHRoaXMuZ29CYWNrKCk7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfVxuICB9XG5cbiAgb3BlblNldHRpbmdzKCkge1xuICAgIHRoaXMub3ZlcmxheVJlZlNldHRpbmdzID0gdGhpcy5vdmVybGF5LmNyZWF0ZShcbiAgICAgIG5ldyBPdmVybGF5Q29uZmlnKHtcbiAgICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXG4gICAgICAgIHBhbmVsQ2xhc3M6IFsnby1tb2RhbC13cmFwcGVyJywgJ28tc2VsZWN0LWdyaWQtbGF5b3V0LW1vZGFsLXdyYXBwZXInXSxcbiAgICAgICAgYmFja2Ryb3BDbGFzczogJ2JhY2tkcm9wJ1xuICAgICAgfSlcbiAgICApO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQ29uZmlnQWN0aW9ucy5hZGRpbmdPdmVybGF5KHsgaWQ6IHRoaXMuY29uc3RydWN0b3IubmFtZSB9KSk7XG4gICAgdGhpcy5vdmVybGF5UmVmU2V0dGluZ3MuYmFja2Ryb3BDbGljaygpLnN1YnNjcmliZSgoXykgPT4ge1xuICAgICAgdGhpcy5nb0JhY2soKTtcbiAgICAgIHRoaXMudG9nZ2xlU2V0dGluZ3MoKTtcbiAgICB9KTtcbiAgICB0aGlzLm92ZXJsYXlSZWZTZXR0aW5ncy5hdHRhY2gobmV3IFRlbXBsYXRlUG9ydGFsKHRoaXMudGVtcGxhdGVTZXR0aW5ncywgdGhpcy52aWV3Q29udGFpbmVyUmVmKSk7XG4gIH1cblxuICB1cGRhdGVGaWx0ZXJUeXBlKCRldmVudDogYW55KSB7XG4gICAgdGhpcy5maWx0ZXIudHlwZSA9ICRldmVudDtcbiAgICB0aGlzLmZpbHRlci5vcGVyYXRvciA9ICRldmVudCA9PT0gJ2xpc3QnID8gJ0VRVUFMUycgOiB0aGlzLmZpbHRlci5vcGVyYXRvcjtcbiAgICBpZiAodGhpcy5maWx0ZXIudHlwZSAhPT0gJycgJiYgdGhpcy5jb250YWluZXIpIHtcbiAgICAgIGxldCBjb21wb25lbnQgPSB0aGlzLmZpbHRlckZhY3RvcnlTZXJ2aWNlLmdlbmVyYXRlRmlsdGVyKHRoaXMuZmlsdGVyLnR5cGUsIHRoaXMuaW5qZWN0b3IsIHRoaXMuY29udGFpbmVyKTtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICAgIGNvbXBvbmVudC5zdWJzY3JpYmUoKGNvbXBvbmVudFJlZikgPT4ge1xuICAgICAgICAgIHRoaXMuY3VycmVudEZpbHRlckNvbXBvbmVudFR5cGUkLm5leHQoY29tcG9uZW50UmVmLmluc3RhbmNlLnR5cGUpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9XG4gICAgdGhpcy5maWx0ZXIubGltaXQgPSB0aGlzLmZpbHRlci50eXBlID09PSAnYXV0b2NvbXBsZXRlJyA/IHRoaXMuZmlsdGVyLmxpbWl0ID8/IDEwIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgZ2V0RmlsdGVyQXR0cmlidXRlcyhmaWx0ZXI6IEZpbHRlciwgYXR0ckNvdW50OiBudW1iZXIpIHtcbiAgICBhdHRyQ291bnQgPSBhdHRyQ291bnQgPD0gZmlsdGVyLmF0dHJpYnV0ZXMubGVuZ3RoID8gYXR0ckNvdW50IDogZmlsdGVyLmF0dHJpYnV0ZXMubGVuZ3RoO1xuICAgIHJldHVybiBmaWx0ZXIuYXR0cmlidXRlc1xuICAgICAgLm1hcCgoYXR0cikgPT4gYXR0ci5uYW1lKVxuICAgICAgLnNsaWNlKDAsIGF0dHJDb3VudClcbiAgICAgIC5qb2luKCcsICcpO1xuICB9XG5cbiAgZ29CYWNrKCkge1xuICAgIHRoaXMuZmlsdGVyID0ge1xuICAgICAgaWQ6IHY0KCksXG4gICAgICBuYW1lOiAnJyxcbiAgICAgIHR5cGU6ICcnLFxuICAgICAgYXR0cmlidXRlczogW11cbiAgICB9O1xuICAgIHRoaXMuY3VycmVudFN0ZXAgPSBGaWx0ZXJTdGVwcy5MSVNUO1xuICB9XG5cbiAgZ29Ub0VkaXRpb24oZmlsdGVyOiBGaWx0ZXIpIHtcbiAgICB0aGlzLmZpbHRlciA9IHsgLi4uZmlsdGVyIH07XG4gICAgdGhpcy5jdXJyZW50U3RlcCA9IEZpbHRlclN0ZXBzLkVESVRJT047XG4gIH1cblxuICBnb1RvQ3JlYXRpb24oKSB7XG4gICAgdGhpcy5jdXJyZW50RmlsdGVyQ29tcG9uZW50VHlwZSQubmV4dCgnJyk7XG4gICAgdGhpcy5jdXJyZW50U3RlcCA9IEZpbHRlclN0ZXBzLkVESVRJT047XG4gIH1cblxuICBzdWJtaXRGaWx0ZXIoKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChEYXNoYm9hcmRBY3Rpb25zLnVwZGF0ZUZpbHRlcnMoeyBmaWx0ZXI6IHRoaXMuZmlsdGVyIH0pKTtcbiAgICB0aGlzLmdvQmFjaygpO1xuICB9XG5cbiAgc2VsZWN0QXR0cmlidXRlKCRldmVudDogQXR0cmlidXRlW10pIHtcbiAgICB0aGlzLmZpbHRlci5hdHRyaWJ1dGVzID0gJGV2ZW50O1xuICAgIHRoaXMuc2VsZWN0ZWRBdHRyaWJ1dGUkLm5leHQoJGV2ZW50Lm1hcCgoYXR0cikgPT4gYXR0ci5pZCkpO1xuICB9XG5cbiAgZGVsZXRlRmlsdGVyKGlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKERhc2hib2FyZEFjdGlvbnMucmVtb3ZlRmlsdGVyKHsgaWQgfSkpO1xuICB9XG5cbiAgZ2V0T3BlcmF0b3JzKCk6IHsgbGFiZWw6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9W10ge1xuICAgIHJldHVybiB0aGlzLm9wZXJhdG9ycy5maWx0ZXIoKG9wZXJhdG9yKSA9PiB7XG4gICAgICBzd2l0Y2ggKHRoaXMuY3VycmVudEZpbHRlckNvbXBvbmVudFR5cGUkLnZhbHVlKSB7XG4gICAgICAgIGNhc2UgJ2RhdGUnOlxuICAgICAgICAgIHJldHVybiB0aGlzLmZpbHRlci5oYXNEYXRlUmFuZ2VcbiAgICAgICAgICAgID8gWydJTlNJREUnLCAnT1VUU0lERSddLmluY2x1ZGVzKG9wZXJhdG9yLnZhbHVlKVxuICAgICAgICAgICAgOiBbJ0VRVUFMUycsICdOT1RfRVFVQUxTJywgJ0dSRUFURVJfVEhBTicsICdMT1dFUl9USEFOJ10uaW5jbHVkZXMob3BlcmF0b3IudmFsdWUpO1xuICAgICAgICBjYXNlICdsaXN0JzpcbiAgICAgICAgICByZXR1cm4gWydFUVVBTFMnXS5pbmNsdWRlcyhvcGVyYXRvci52YWx1ZSk7XG4gICAgICAgIGNhc2UgJ251bWJlcic6XG4gICAgICAgICAgcmV0dXJuIFsnRVFVQUxTJywgJ05PVF9FUVVBTFMnLCAnR1JFQVRFUl9USEFOJywgJ0xPV0VSX1RIQU4nXS5pbmNsdWRlcyhvcGVyYXRvci52YWx1ZSk7XG4gICAgICAgIGNhc2UgJ3RleHQnOlxuICAgICAgICAgIHJldHVybiBbJ0NPTlRBSU5TJywgJ0VRVUFMUycsICdOT1RfRVFVQUxTJywgJ1NUQVJUX1dJVEgnLCAnRU5EX1dJVEgnXS5pbmNsdWRlcyhvcGVyYXRvci52YWx1ZSk7XG4gICAgICAgIGNhc2UgJ2F1dG9jb21wbGV0ZSc6XG4gICAgICAgICAgcmV0dXJuIFsnRVFVQUxTJ10uaW5jbHVkZXMob3BlcmF0b3IudmFsdWUpO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJldHVybiBvcGVyYXRvcjtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZWFkb25seSBGaWx0ZXJTdGVwcyA9IEZpbHRlclN0ZXBzO1xufVxuIiwiPHByeS10b29sYm94LWNzcz48L3ByeS10b29sYm94LWNzcz5cbjxkaXZcbiAgY2xhc3M9XCJzYXZlLW1hbmlmZXN0LWNvbnRhaW5lciBhLXRvb2x0aXBcIlxuICBbYXR0ci5kYXRhLXRvb2x0aXBdPVwiJ0BwcnkuZmlsdGVycy5sYWJlbCcgfCBpMThuXCJcbiAgZGF0YS10b29sdGlwLXBvc2l0aW9uPVwiYm90dG9tXCJcbj5cbiAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IG5vbmVcIj5cbiAgICA8bmctdGVtcGxhdGUgI2NvbnRhaW5lcj48L25nLXRlbXBsYXRlPlxuICA8L2Rpdj5cbiAgPGJ1dHRvblxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgIGNsYXNzPVwiYS1idG4gYS1idG4tLXNlY29uZGFyeSAtc2l6ZS1tZFwiXG4gICAgW2Rpc2FibGVkXT1cIihhdHRyaWJ1dGVzJCB8IGFzeW5jKT8ubGVuZ3RoID09PSAwXCJcbiAgICAoY2xpY2spPVwidG9nZ2xlU2V0dGluZ3MoKVwiXG4gICAgYXJpYS1oYXNwb3B1cD1cImRpYWxvZ1wiXG4gID5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibGFiZWxcIj57eyAnQHByeS5maWx0ZXJzLmxhYmVsJyB8IGkxOG4gfX08L25nLWNvbnRhaW5lcj5cbiAgPC9idXR0b24+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNzZXR0aW5ncz5cbiAgPGRpdiBjbGFzcz1cIm8tZmlsdGVyc1wiPlxuICAgIDxkaXYgY2xhc3M9XCJvLWZpbHRlcnNfX2hlYWRlclwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImN1cnJlbnRTdGVwID09PSBGaWx0ZXJTdGVwcy5MSVNUXCI+XG4gICAgICAgIDxoMj5QYXJhbcOpdHJlciBsZXMgZmlsdHJlczwvaDI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjdXJyZW50U3RlcCA9PT0gRmlsdGVyU3RlcHMuQ1JFQVRJT04gfHwgY3VycmVudFN0ZXAgPT09IEZpbHRlclN0ZXBzLkVESVRJT05cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInUtZGlzcGxheS1mbGV4IC1yb3cgLWFsaWduLWNlbnRlclwiPlxuICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImdvQmFjaygpXCIgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYmFjay1idXR0b25cIj5cbiAgICAgICAgICAgIDxwcnktaWNvbiBpY29uU3ZnPVwiY2hldnJvbl9yaWdodFwiPjwvcHJ5LWljb24+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPGgyPlxuICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgKGN1cnJlbnRTdGVwID09PSBGaWx0ZXJTdGVwcy5DUkVBVElPTiA/ICdAcHJ5LmZpbHRlcnMuY3JlYXRpb24uY3JlYXRlJyA6ICdAcHJ5LmZpbHRlcnMuY3JlYXRpb24udXBkYXRlJylcbiAgICAgICAgICAgICAgICB8IGkxOG5cbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPC9oMj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxidXR0b24gKGNsaWNrKT1cInRvZ2dsZVNldHRpbmdzKClcIiB0eXBlPVwiYnV0dG9uXCI+XG4gICAgICAgIDxwcnktaWNvbiBpY29uU3ZnPVwiY2xvc2VcIj48L3ByeS1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImN1cnJlbnRTdGVwID09PSBGaWx0ZXJTdGVwcy5MSVNUXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiby1maWx0ZXJzX19jb250ZW50XCI+XG4gICAgICAgIDxkaXYgKm5nSWY9XCIoYXR0cmlidXRlcyQgfCBhc3luYyk/Lmxlbmd0aCA9PT0gMDsgZWxzZSBhdHRyaWJ1dGVzRXhpc3RzXCIgY2xhc3M9XCJhLXRhYmxlLXdyYXBwZXJcIj48L2Rpdj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNhdHRyaWJ1dGVzRXhpc3RzPlxuICAgICAgICAgIDx0YWJsZSAqbmdJZj1cImZpbHRlcnMubGVuZ3RoID4gMDsgZWxzZSBub0ZpbHRlcnNcIiBjbGFzcz1cImEtdGFibGVcIj5cbiAgICAgICAgICAgIDx0Ym9keSBjZGtEcm9wTGlzdCBbY2RrRHJvcExpc3REYXRhXT1cImZpbHRlcnNcIiAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3AoJGV2ZW50KVwiPlxuICAgICAgICAgICAgICA8dHIgKm5nRm9yPVwibGV0IGZpbHRlciBvZiBmaWx0ZXJzXCIgY2xhc3M9XCJvLWZpbHRlcnNfX2ZpbHRlclwiIGNka0RyYWc+XG4gICAgICAgICAgICAgICAgPHRkPlxuICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgZmlsdGVyLm5hbWUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICAgICAgICA8c3Bhbj57eyBnZXRGaWx0ZXJBdHRyaWJ1dGVzKGZpbHRlciwgMykgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImEtYnRuIGEtYnRuLS1wcmltYXJ5XCIgKGNsaWNrKT1cImRlbGV0ZUZpbHRlcihmaWx0ZXIuaWQpXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7ICdAcHJ5LmFjdGlvbi5kZWxldGUnIHwgaTE4biB9fVxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImEtYnRuIGEtYnRuLS1wcmltYXJ5XCIgKGNsaWNrKT1cImdvVG9FZGl0aW9uKGZpbHRlcilcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgJ0BwcnkuZmlsdGVycy5saXN0Lm1vZGlmeScgfCBpMThuIH19XG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgIDx0ZCBjZGtEcmFnSGFuZGxlPlxuICAgICAgICAgICAgICAgICAgPHByeS1pY29uIGljb25Tdmc9XCJkcmFnX2luZGljYXRvclwiPjwvcHJ5LWljb24+XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgIDwvdGJvZHk+XG4gICAgICAgICAgPC90YWJsZT5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI25vRmlsdGVycz5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiby1maWx0ZXJzX19uby1maWx0ZXJzXCI+e3sgJ0BwcnkuZmlsdGVycy5ub0ZpbHRlcnMnIHwgaTE4biB9fTwvc3Bhbj5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImdvVG9DcmVhdGlvbigpXCIgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tcHJpbWFyeVwiPnt7ICdAcHJ5LmZpbHRlcnMubGlzdC5hZGQnIHwgaTE4biB9fTwvYnV0dG9uPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImN1cnJlbnRTdGVwID09PSBGaWx0ZXJTdGVwcy5DUkVBVElPTiB8fCBjdXJyZW50U3RlcCA9PT0gRmlsdGVyU3RlcHMuRURJVElPTlwiPlxuICAgICAgPGRpdiBjbGFzcz1cIm8tZmlsdGVyc19fY29udGVudFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkXCI+XG4gICAgICAgICAgPGxhYmVsIGZvcj1cImZpbHRlck5hbWVcIiBjbGFzcz1cImEtbGFiZWxcIj57eyAnQHByeS5maWx0ZXJzLmNyZWF0aW9uLm5hbWUnIHwgaTE4biB9fTwvbGFiZWw+XG4gICAgICAgICAgPGlucHV0IGlkPVwiZmlsdGVyTmFtZVwiIGNsYXNzPVwiYS1mb3JtLWZpZWxkXCIgdHlwZT1cInRleHRcIiBbKG5nTW9kZWwpXT1cImZpbHRlci5uYW1lXCIgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtLWZvcm0tbGFiZWwtZmllbGRcIj5cbiAgICAgICAgICA8bGFiZWwgZm9yPVwiZmlsdGVyVHlwZVwiIGNsYXNzPVwiYS1sYWJlbFwiPnt7ICdAcHJ5LmZpbHRlcnMuY3JlYXRpb24udHlwZScgfCBpMThuIH19PC9sYWJlbD5cbiAgICAgICAgICA8cHJ5LXNlbGVjdFxuICAgICAgICAgICAgaWQ9XCJmaWx0ZXJUeXBlXCJcbiAgICAgICAgICAgIFtsYWJlbFRyYW5zbGF0ZV09XCJ0cnVlXCJcbiAgICAgICAgICAgIFtpdGVtc0FzT3B0aW9uXT1cInRydWVcIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidAcHJ5LmZpbHRlcnMuY3JlYXRpb24udHlwZScgfCBpMThuXCJcbiAgICAgICAgICAgIFtpdGVtc109XCJ0eXBlcyQgfCBhc3luY1wiXG4gICAgICAgICAgICBiaW5kTGFiZWw9XCJsYWJlbFwiXG4gICAgICAgICAgICBiaW5kVmFsdWU9XCJ2YWx1ZVwiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlci50eXBlXCJcbiAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInVwZGF0ZUZpbHRlclR5cGUoJGV2ZW50KVwiXG4gICAgICAgICAgPlxuICAgICAgICAgIDwvcHJ5LXNlbGVjdD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgKm5nSWY9XCIoY3VycmVudEZpbHRlckNvbXBvbmVudFR5cGUkIHwgYXN5bmMpID09PSAnZGF0ZSdcIiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZCB1LWRpc3BsYXktZmxleCAtcm93XCI+XG4gICAgICAgICAgPGxhYmVsIGZvcj1cImRhdGUtcmFuZ2VcIiBjbGFzcz1cImEtbGFiZWxcIj5QbGFnZSBkZSBkYXRlczwvbGFiZWw+XG4gICAgICAgICAgPHByeS1jaGVja2JveFxuICAgICAgICAgICAgaWQ9XCJkYXRlLXJhbmdlXCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVyLmhhc0RhdGVSYW5nZVwiXG4gICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ0aGlzLmN1cnJlbnRPcGVyYXRvcnMkLm5leHQoZ2V0T3BlcmF0b3JzKCkpXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiAqbmdJZj1cIihjdXJyZW50RmlsdGVyQ29tcG9uZW50VHlwZSQgfCBhc3luYykgPT09ICdsaXN0J1wiIGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkXCI+XG4gICAgICAgICAgPGxhYmVsIGZvcj1cInBvc3NpYmxlVmFsdWVzXCIgY2xhc3M9XCJhLWxhYmVsXCI+e3sgJ0BwcnkuZmlsdGVycy5jcmVhdGlvbi52YWx1ZXMnIHwgaTE4biB9fTwvbGFiZWw+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICBpZD1cInBvc3NpYmxlVmFsdWVzXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYS1mb3JtLWZpZWxkXCJcbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVyLnBvc3NpYmxlVmFsdWVzXCJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwidmFsZXVyMSwgdmFsZXVyMiwgdmFsZXVyM1wiXG4gICAgICAgICAgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgKm5nSWY9XCIoY3VycmVudEZpbHRlckNvbXBvbmVudFR5cGUkIHwgYXN5bmMpID09PSAnYXV0b2NvbXBsZXRlJ1wiIGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkXCI+XG4gICAgICAgICAgPGxhYmVsIGZvcj1cImxpbWl0XCIgY2xhc3M9XCJhLWxhYmVsXCI+e3sgJ0BwcnkuZmlsdGVycy5jcmVhdGlvbi5saW1pdCcgfCBpMThuIH19PC9sYWJlbD5cbiAgICAgICAgICA8aW5wdXQgaWQ9XCJsaW1pdFwiIGNsYXNzPVwiYS1mb3JtLWZpZWxkXCIgdHlwZT1cIm51bWJlclwiIG1pbj1cIjBcIiBtYXg9XCI1MFwiIFsobmdNb2RlbCldPVwiZmlsdGVyLmxpbWl0XCIgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtLWZvcm0tbGFiZWwtZmllbGRcIj5cbiAgICAgICAgICA8bGFiZWwgZm9yPVwiYXR0cmlidXRlc1wiIGNsYXNzPVwiYS1sYWJlbFwiPnt7ICdAcHJ5LmZpbHRlcnMuY3JlYXRpb24uYXR0cmlidXRlcycgfCBpMThuIH19PC9sYWJlbD5cbiAgICAgICAgICA8cHJ5LXNlbGVjdFxuICAgICAgICAgICAgaWQ9XCJhdHRyaWJ1dGVzXCJcbiAgICAgICAgICAgIFtsYWJlbFRyYW5zbGF0ZV09XCJmYWxzZVwiXG4gICAgICAgICAgICBbaXRlbXNBc09wdGlvbl09XCJ0cnVlXCJcbiAgICAgICAgICAgIFttdWx0aXBsZV09XCJ0cnVlXCJcbiAgICAgICAgICAgIFtjbG9zZU9uU2VsZWN0XT1cImZhbHNlXCJcbiAgICAgICAgICAgIFtpdGVtc109XCJhdHRyaWJ1dGVzJCB8IGFzeW5jXCJcbiAgICAgICAgICAgIFtuZ01vZGVsXT1cImZpbHRlci5hdHRyaWJ1dGVzXCJcbiAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInNlbGVjdEF0dHJpYnV0ZSgkZXZlbnQpXCJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInQHByeS5maWx0ZXJzLmNyZWF0aW9uLmF0dHJpYnV0ZXMnIHwgaTE4blwiXG4gICAgICAgICAgICBbYXV0b2NvbXBsZXRlXT1cInRydWVcIlxuICAgICAgICAgICAgYmluZExhYmVsPVwibGFiZWxcIlxuICAgICAgICAgID5cbiAgICAgICAgICA8L3ByeS1zZWxlY3Q+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkXCI+XG4gICAgICAgICAgPGxhYmVsIGZvcj1cIm9wZXJhdGlvbnNcIiBjbGFzcz1cImEtbGFiZWxcIj57eyAnQHByeS5maWx0ZXJzLmF0dHJpYnV0ZXMub3BlcmF0b3InIHwgaTE4biB9fTwvbGFiZWw+XG4gICAgICAgICAgPHByeS1zZWxlY3RcbiAgICAgICAgICAgIGlkPVwib3BlcmF0aW9uc1wiXG4gICAgICAgICAgICBbbGFiZWxUcmFuc2xhdGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICBbaXRlbXNBc09wdGlvbl09XCJ0cnVlXCJcbiAgICAgICAgICAgIFtpdGVtc109XCJjdXJyZW50T3BlcmF0b3JzJCB8IGFzeW5jXCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVyLm9wZXJhdG9yXCJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInQHByeS5maWx0ZXJzLmF0dHJpYnV0ZXMub3BlcmF0b3InIHwgaTE4blwiXG4gICAgICAgICAgICBiaW5kTGFiZWw9XCJsYWJlbFwiXG4gICAgICAgICAgICBiaW5kVmFsdWU9XCJ2YWx1ZVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiKGN1cnJlbnRGaWx0ZXJDb21wb25lbnRUeXBlJCB8IGFzeW5jKSA9PT0gJ2xpc3QnXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgPC9wcnktc2VsZWN0PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGNsYXNzPVwiYS1idG4gYS1idG4tLXByaW1hcnlcIlxuICAgICAgICAgIChjbGljayk9XCJzdWJtaXRGaWx0ZXIoKVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiEoZmlsdGVyLm5hbWUgJiYgZmlsdGVyLnR5cGUgJiYgZmlsdGVyLmF0dHJpYnV0ZXMubGVuZ3RoICE9PSAwICYmIGZpbHRlci5vcGVyYXRvcilcIlxuICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgJ0BwcnkudG9vbGJveC5tYW5pZmVzdC52YWxpZGF0ZScgfCBpMThuIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
239
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLXNldHRpbmdzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL3Rvb2xib3gvY29tcG9uZW50cy9maWx0ZXItc2V0dGluZ3MvZmlsdGVyLXNldHRpbmdzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL3Rvb2xib3gvY29tcG9uZW50cy9maWx0ZXItc2V0dGluZ3MvZmlsdGVyLXNldHRpbmdzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RSxPQUFPLEVBQVcsYUFBYSxFQUFjLE1BQU0sc0JBQXNCLENBQUM7QUFDMUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxTQUFTLEVBQVksS0FBSyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFckcsT0FBTyxFQUVMLGNBQWMsRUFDZCxhQUFhLEVBQ2IsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUVsQixtQkFBbUIsRUFDbkIsY0FBYyxFQUNkLFNBQVMsRUFLVCxlQUFlLEVBQ2hCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFCLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDOzs7Ozs7Ozs7O0FBRXBGLE1BQU0sQ0FBTixJQUFZLFdBSVg7QUFKRCxXQUFZ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QUFjO29CQUNqQixPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDN0M7b0JBQ0UsT0FBTyxRQUFRLENBQUM7YUFDbkI7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7K0dBdFBVLDBCQUEwQjttR0FBMUIsMEJBQTBCLGdMQUVOLFdBQVcsaUdBK0JWLGdCQUFnQixvREM3RWxELDB6TkE0SkE7OzRGRGhIYSwwQkFBMEI7a0JBSnRDLFNBQVM7K0JBQ0UscUJBQXFCOzJNQUl0QixLQUFLO3NCQUFiLEtBQUs7Z0JBQ3dDLGdCQUFnQjtzQkFBN0QsU0FBUzt1QkFBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO2dCQStCUSxTQUFTO3NCQUE1RCxTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENka0RyYWdEcm9wLCBtb3ZlSXRlbUluQXJyYXkgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcbmltcG9ydCB7IE92ZXJsYXksIE92ZXJsYXlDb25maWcsIE92ZXJsYXlSZWYgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBUZW1wbGF0ZVBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3RvciwgSW5wdXQsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHtcbiAgQ2xhc3MsXG4gIENsYXNzU2VsZWN0b3JzLFxuICBDb25maWdBY3Rpb25zLFxuICBEYXNoYm9hcmRBY3Rpb25zLFxuICBEYXNoYm9hcmRTZWxlY3RvcnMsXG4gIERhdGFTb3VyY2UsXG4gIERhdGFTb3VyY2VTZWxlY3RvcnMsXG4gIEZpZWxkU2VsZWN0b3JzLFxuICBGaWVsZFR5cGUsXG4gIEZpbHRlcixcbiAgRmlsdGVyRmFjdG9yeVNlcnZpY2UsXG4gIEdsb2JhbE1hbmlmZXN0LFxuICBNb25vQ2xhc3NTZWFyY2hQYXlsb2FkLFxuICBOYW1lZFF1ZXJ5VHlwZXNcbn0gZnJvbSAnQHByb3ZvbHkvZGFzaGJvYXJkJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgbWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB3aXRoTGF0ZXN0RnJvbSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IHY0IH0gZnJvbSAndXVpZCc7XG5pbXBvcnQgeyBUb29sYm94QWN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vdG9vbGJveC1hY3Rpb24vdG9vbGJveC1hY3Rpb24uY29tcG9uZW50JztcblxuZXhwb3J0IGVudW0gRmlsdGVyU3RlcHMge1xuICBMSVNUID0gJ2xpc3QnLFxuICBDUkVBVElPTiA9ICdjcmVhdGlvbicsXG4gIEVESVRJT04gPSAnZWRpdGlvbidcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBdHRyaWJ1dGUge1xuICBpZDogc3RyaW5nO1xuICB0ZWNobmljYWxOYW1lOiBzdHJpbmc7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIGRhdGFzb3VyY2U6IHN0cmluZztcbiAgdHlwZTogRmllbGRUeXBlO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwcnktZmlsdGVyLXNldHRpbmdzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpbHRlci1zZXR0aW5ncy5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgUHJ5RmlsdGVyU2V0dGluZ3NDb21wb25lbnQgZXh0ZW5kcyBUb29sYm94QWN0aW9uQ29tcG9uZW50IHtcbiAgQElucHV0KCkgbGFiZWwgPSB0cnVlO1xuICBAVmlld0NoaWxkKCdzZXR0aW5ncycsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSkgdGVtcGxhdGVTZXR0aW5ncyE6IFRlbXBsYXRlUmVmPGFueT47XG4gIG92ZXJsYXlSZWZTZXR0aW5ncz86IE92ZXJsYXlSZWY7XG4gIHNldHRpbmdzT3BlbmVkOiBib29sZWFuID0gZmFsc2U7XG4gIG1hbmlmZXN0JDogT2JzZXJ2YWJsZTxHbG9iYWxNYW5pZmVzdD47XG4gIGZpbHRlcnM6IEZpbHRlcltdID0gW107XG4gIHR5cGVzJDogT2JzZXJ2YWJsZTx7IGxhYmVsOiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfVtdPjtcbiAgY3VycmVudEZpbHRlckNvbXBvbmVudFR5cGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdCgnJyk7XG4gIGN1cnJlbnRTdGVwOiBGaWx0ZXJTdGVwcyA9IEZpbHRlclN0ZXBzLkxJU1Q7XG4gIHN0ZXBzID0gRmlsdGVyU3RlcHM7XG4gIGZpbHRlcjogRmlsdGVyID0ge1xuICAgIGlkOiB2NCgpLFxuICAgIG5hbWU6ICcnLFxuICAgIHR5cGU6ICcnLFxuICAgIGF0dHJpYnV0ZXM6IFtdXG4gIH07XG4gIGRhdGFzb3VyY2UkOiBPYnNlcnZhYmxlPGFueT47XG4gIG9wZXJhdG9ycyA9IFtcbiAgICB7IGxhYmVsOiAnQHByeS5zZWFyY2gub3BlcmF0b3IuZXF1YWxzU3RyaW5nJywgdmFsdWU6ICdFUVVBTFMnIH0sXG4gICAgeyBsYWJlbDogJ0Bwcnkuc2VhcmNoLm9wZXJhdG9yLm5vdEVxdWFsc1N0cmluZycsIHZhbHVlOiAnTk9UX0VRVUFMUycgfSxcbiAgICB7IGxhYmVsOiAnQHByeS5zZWFyY2gub3BlcmF0b3IuY29udGFpbnMnLCB2YWx1ZTogJ0NPTlRBSU5TJyB9LFxuICAgIHsgbGFiZWw6ICdAcHJ5LnNlYXJjaC5vcGVyYXRvci5zdGFydFdpdGgnLCB2YWx1ZTogJ1NUQVJUX1dJVEgnIH0sXG4gICAgeyBsYWJlbDogJ0Bwcnkuc2VhcmNoLm9wZXJhdG9yLmVuZFdpdGgnLCB2YWx1ZTogJ0VORF9XSVRIJyB9LFxuICAgIHsgbGFiZWw6ICdAcHJ5LnNlYXJjaC5vcGVyYXRvci5ncmVhdGVyVGhhbk51bWJlcicsIHZhbHVlOiAnR1JFQVRFUl9USEFOJyB9LFxuICAgIHsgbGFiZWw6ICdAcHJ5LnNlYXJjaC5vcGVyYXRvci5sb3dlclRoYW5OdW1iZXInLCB2YWx1ZTogJ0xPV0VSX1RIQU4nIH0sXG4gICAgeyBsYWJlbDogJ0Bwcnkuc2VhcmNoLm9wZXJhdG9yLmlubmVyQm91bmRzRGF0ZScsIHZhbHVlOiAnSU5TSURFJyB9LFxuICAgIHsgbGFiZWw6ICdAcHJ5LnNlYXJjaC5vcGVyYXRvci5vdXRlckJvdW5kc0RhdGUnLCB2YWx1ZTogJ09VVFNJREUnIH1cbiAgXTtcbiAgY3VycmVudE9wZXJhdG9ycyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRoaXMub3BlcmF0b3JzKTtcbiAgY2xhc3NlczogQ2xhc3NbXSA9IFtdO1xuICBhdHRyaWJ1dGVzJDogT2JzZXJ2YWJsZTx7IGlkOiBzdHJpbmc7IHRlY2huaWNhbE5hbWU6IHN0cmluZzsgbGFiZWw6IHN0cmluZzsgZGF0YXNvdXJjZTogc3RyaW5nOyB0eXBlOiBzdHJpbmcgfVtdPjtcbiAgc2VsZWN0ZWRBdHRyaWJ1dGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmdbXT4odGhpcy5maWx0ZXIuYXR0cmlidXRlcy5tYXAoKGF0dHIpID0+IGF0dHIuaWQpKTtcbiAgQFZpZXdDaGlsZCgnY29udGFpbmVyJywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmIH0pIGNvbnRhaW5lciE6IFZpZXdDb250YWluZXJSZWY7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgc3RvcmU6IFN0b3JlLFxuICAgIHByaXZhdGUgb3ZlcmxheTogT3ZlcmxheSxcbiAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgcHJpdmF0ZSBmaWx0ZXJGYWN0b3J5U2VydmljZTogRmlsdGVyRmFjdG9yeVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3JcbiAgKSB7XG4gICAgc3VwZXIoc3RvcmUpO1xuICAgIHRoaXMubWFuaWZlc3QkID0gc3RvcmUuc2VsZWN0KERhc2hib2FyZFNlbGVjdG9ycy5nbG9iYWxNYW5pZmVzdCk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMubWFuaWZlc3QkLnN1YnNjcmliZSgobWFuaWZlc3QpID0+IHtcbiAgICAgICAgdGhpcy5maWx0ZXJzID0gbWFuaWZlc3QuZmlsdGVycyA/IFsuLi5tYW5pZmVzdC5maWx0ZXJzXSA6IFtdO1xuICAgICAgfSlcbiAgICApO1xuXG4gICAgdGhpcy5kYXRhc291cmNlJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5zdG9yZS5zZWxlY3QoRGF0YVNvdXJjZVNlbGVjdG9ycy5nZXREYXRhU291cmNlcyksXG4gICAgICBzdG9yZS5zZWxlY3QoRGFzaGJvYXJkU2VsZWN0b3JzLm5hbWVkUXVlcmllc1VzZXMpXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW2RhdGFTb3VyY2VzLCBkYXRhU291cmNlc1VzZWRdKSA9PlxuICAgICAgICBPYmplY3Qua2V5cyhkYXRhU291cmNlc1VzZWQpLm1hcCgoaWQpID0+ICh7XG4gICAgICAgICAgbGFiZWw6IGRhdGFTb3VyY2VzLmZpbmQoKGRhdGFTb3VyY2UpID0+IGRhdGFTb3VyY2UuaWQgPT09IGlkKT8ubmFtZSxcbiAgICAgICAgICB2YWx1ZTogaWRcbiAgICAgICAgfSkpXG4gICAgICApXG4gICAgKTtcblxuICAgIHRoaXMudHlwZXMkID0gdGhpcy5maWx0ZXJGYWN0b3J5U2VydmljZS50eXBlcyQucGlwZShcbiAgICAgIG1hcCgodHlwZXMpID0+XG4gICAgICAgIHR5cGVzLm1hcCgodHlwZSkgPT4gKHtcbiAgICAgICAgICBsYWJlbDogJ0BwcnkuZmlsdGVycy50eXBlcy4nICsgdHlwZSxcbiAgICAgICAgICB2YWx1ZTogdHlwZVxuICAgICAgICB9KSlcbiAgICAgIClcbiAgICApO1xuXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMuY3VycmVudEZpbHRlckNvbXBvbmVudFR5cGUkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuY3VycmVudE9wZXJhdG9ycyQubmV4dCh0aGlzLmdldE9wZXJhdG9ycygpKTtcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIHRoaXMuYXR0cmlidXRlcyQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHN0b3JlLnNlbGVjdChEYXRhU291cmNlU2VsZWN0b3JzLmdldERhdGFTb3VyY2VzKSxcbiAgICAgIHN0b3JlLnNlbGVjdChEYXNoYm9hcmRTZWxlY3RvcnMubmFtZWRRdWVyaWVzVXNlcyksXG4gICAgICBzdG9yZS5zZWxlY3QoQ2xhc3NTZWxlY3RvcnMuY2xhc3NlcyksXG4gICAgICB0aGlzLmN1cnJlbnRGaWx0ZXJDb21wb25lbnRUeXBlJFxuICAgIF0pLnBpcGUoXG4gICAgICB3aXRoTGF0ZXN0RnJvbShzdG9yZS5zZWxlY3QoRmllbGRTZWxlY3RvcnMuZmllbGRzKSksXG4gICAgICBtYXAoKFtbZGF0YVNvdXJjZXMsIGN1cnJlbnREYXRhU291cmNlcywgY2xhc3NlcywgY29tcG9uZW50VHlwZV0sIGZpZWxkc10pID0+IHtcbiAgICAgICAgbGV0IGRhdGFTb3VyY2VzSW5QcmVzID0gZGF0YVNvdXJjZXMuZmlsdGVyKChkYXRhU291cmNlKSA9PlxuICAgICAgICAgIE9iamVjdC5rZXlzKGN1cnJlbnREYXRhU291cmNlcykuaW5jbHVkZXMoZGF0YVNvdXJjZS5pZCkgPyBkYXRhU291cmNlIDogZmFsc2VcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgYXR0cmlidXRlczogQXR0cmlidXRlW10gPSBbXTtcbiAgICAgICAgZGF0YVNvdXJjZXNJblByZXMuZm9yRWFjaCgoZGF0YVNvdXJjZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGNsYXp6ID0gdGhpcy5nZXREYXRhc291cmNlQ2xhc3MoZGF0YVNvdXJjZSwgY2xhc3Nlcyk7XG4gICAgICAgICAgY2xheno/LmF0dHJpYnV0ZXMuZm9yRWFjaCgoYXR0cikgPT4ge1xuICAgICAgICAgICAgYXR0cmlidXRlcy5wdXNoKHtcbiAgICAgICAgICAgICAgaWQ6IGF0dHIuaWQsXG4gICAgICAgICAgICAgIHRlY2huaWNhbE5hbWU6IGF0dHIudGVjaG5pY2FsTmFtZSxcbiAgICAgICAgICAgICAgbGFiZWw6IFthdHRyLm5hbWUsIGRhdGFTb3VyY2UubmFtZSwgY2xhenoubmFtZV0uam9pbignIC8gJyksXG4gICAgICAgICAgICAgIGRhdGFzb3VyY2U6IGRhdGFTb3VyY2UuaWQsXG4gICAgICAgICAgICAgIHR5cGU6IGZpZWxkcy5maW5kKChmaWVsZCkgPT4gZmllbGQuaWQgPT09IGF0dHIuZmllbGQpPy50eXBlID8/IEZpZWxkVHlwZS5TVFJJTkdcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyQXR0cmlidXRlcyhjb21wb25lbnRUeXBlLCBhdHRyaWJ1dGVzKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGdldERhdGFzb3VyY2VDbGFzcyhkYXRhU291cmNlOiBEYXRhU291cmNlLCBjbGFzc2VzOiBDbGFzc1tdKTogQ2xhc3MgfCB1bmRlZmluZWQge1xuICAgIGxldCBjbGF6ejogQ2xhc3MgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgaWYgKGRhdGFTb3VyY2Uuc291cmNlVHlwZSA9PT0gJ2RhdGFzZXQnKSB7XG4gICAgICBjbGF6eiA9IGNsYXNzZXMuZmluZCgoY2xhenopID0+IGNsYXp6LmlkID09PSBkYXRhU291cmNlLm9DbGFzcyk7XG4gICAgfSBlbHNlIGlmIChcbiAgICAgIGRhdGFTb3VyY2Uuc291cmNlVHlwZSA9PT0gJ25hbWVkUXVlcnknICYmXG4gICAgICBkYXRhU291cmNlLnJlcXVlc3QgJiZcbiAgICAgIGRhdGFTb3VyY2UucmVxdWVzdC50eXBlID09PSBOYW1lZFF1ZXJ5VHlwZXMuTU9OT19DTEFTU1xuICAgICkge1xuICAgICAgY2xhenogPSBjbGFzc2VzLmZpbmQoKGNsYXp6KSA9PiBjbGF6ei5pZCA9PT0gKGRhdGFTb3VyY2UucmVxdWVzdCBhcyBNb25vQ2xhc3NTZWFyY2hQYXlsb2FkKS5vQ2xhc3MpO1xuICAgIH1cbiAgICByZXR1cm4gY2xheno7XG4gIH1cblxuICBmaWx0ZXJBdHRyaWJ1dGVzKGNvbXBvbmVudFR5cGU6IHN0cmluZywgYXR0cmlidXRlczogQXR0cmlidXRlW10pOiBBdHRyaWJ1dGVbXSB7XG4gICAgc3dpdGNoIChjb21wb25lbnRUeXBlKSB7XG4gICAgICBjYXNlICdkYXRlJzpcbiAgICAgICAgcmV0dXJuIGF0dHJpYnV0ZXMuZmlsdGVyKChhdHRyKSA9PiBhdHRyLnR5cGUgPT09IEZpZWxkVHlwZS5JTlNUQU5UKTtcbiAgICAgIGNhc2UgJ251bWJlcic6XG4gICAgICAgIHJldHVybiBhdHRyaWJ1dGVzLmZpbHRlcigoYXR0cikgPT4gW0ZpZWxkVHlwZS5JTlRFR0VSLCBGaWVsZFR5cGUuREVDSU1BTCwgRmllbGRUeXBlLkxPTkddLmluY2x1ZGVzKGF0dHIudHlwZSkpO1xuICAgICAgY2FzZSAndGV4dCc6XG4gICAgICAgIHJldHVybiBhdHRyaWJ1dGVzLmZpbHRlcigoYXR0cikgPT4gW0ZpZWxkVHlwZS5TVFJJTkcsIEZpZWxkVHlwZS5LRVlXT1JEXS5pbmNsdWRlcyhhdHRyLnR5cGUpKTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkQXR0cmlidXRlJC52YWx1ZS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgY29uc3QgYXR0cmlidXRlVHlwZSA9IGF0dHJpYnV0ZXMuZmluZCgoYXR0cikgPT4gYXR0ci5pZCA9PT0gdGhpcy5zZWxlY3RlZEF0dHJpYnV0ZSQudmFsdWVbMF0pPy50eXBlO1xuICAgICAgICAgIHJldHVybiBhdHRyaWJ1dGVzLmZpbHRlcigoYXR0cikgPT4gYXR0ci50eXBlID09PSBhdHRyaWJ1dGVUeXBlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYXR0cmlidXRlcztcbiAgICB9XG4gIH1cblxuICBkcm9wKGV2ZW50OiBDZGtEcmFnRHJvcDxGaWx0ZXJbXT4pIHtcbiAgICBtb3ZlSXRlbUluQXJyYXkodGhpcy5maWx0ZXJzLCBldmVudC5wcmV2aW91c0luZGV4LCBldmVudC5jdXJyZW50SW5kZXgpO1xuICB9XG5cbiAgdG9nZ2xlU2V0dGluZ3MoKSB7XG4gICAgdGhpcy5zZXR0aW5nc09wZW5lZCA9ICF0aGlzLnNldHRpbmdzT3BlbmVkO1xuICAgIGlmICh0aGlzLnNldHRpbmdzT3BlbmVkKSB7XG4gICAgICB0aGlzLm9wZW5TZXR0aW5ncygpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm92ZXJsYXlSZWZTZXR0aW5ncz8uZGlzcG9zZSgpO1xuICAgICAgdGhpcy5vdmVybGF5UmVmU2V0dGluZ3MgPSB1bmRlZmluZWQ7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENvbmZpZ0FjdGlvbnMuY2xvc2VPdmVybGF5KHsgaWQ6IHRoaXMuY29uc3RydWN0b3IubmFtZSB9KSk7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKERhc2hib2FyZEFjdGlvbnMuc2V0RmlsdGVycyh7IGZpbHRlcnM6IHRoaXMuZmlsdGVycyB9KSk7XG4gICAgICB0aGlzLmdvQmFjaygpO1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cbiAgfVxuXG4gIG9wZW5TZXR0aW5ncygpIHtcbiAgICB0aGlzLm92ZXJsYXlSZWZTZXR0aW5ncyA9IHRoaXMub3ZlcmxheS5jcmVhdGUoXG4gICAgICBuZXcgT3ZlcmxheUNvbmZpZyh7XG4gICAgICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxuICAgICAgICBwYW5lbENsYXNzOiBbJ28tbW9kYWwtd3JhcHBlcicsICdvLXNlbGVjdC1ncmlkLWxheW91dC1tb2RhbC13cmFwcGVyJ10sXG4gICAgICAgIGJhY2tkcm9wQ2xhc3M6ICdiYWNrZHJvcCdcbiAgICAgIH0pXG4gICAgKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENvbmZpZ0FjdGlvbnMuYWRkaW5nT3ZlcmxheSh7IGlkOiB0aGlzLmNvbnN0cnVjdG9yLm5hbWUgfSkpO1xuICAgIHRoaXMub3ZlcmxheVJlZlNldHRpbmdzLmJhY2tkcm9wQ2xpY2soKS5zdWJzY3JpYmUoKF8pID0+IHtcbiAgICAgIHRoaXMuZ29CYWNrKCk7XG4gICAgICB0aGlzLnRvZ2dsZVNldHRpbmdzKCk7XG4gICAgfSk7XG4gICAgdGhpcy5vdmVybGF5UmVmU2V0dGluZ3MuYXR0YWNoKG5ldyBUZW1wbGF0ZVBvcnRhbCh0aGlzLnRlbXBsYXRlU2V0dGluZ3MsIHRoaXMudmlld0NvbnRhaW5lclJlZikpO1xuICB9XG5cbiAgdXBkYXRlRmlsdGVyVHlwZSgkZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuZmlsdGVyLnR5cGUgPSAkZXZlbnQ7XG4gICAgdGhpcy5maWx0ZXIub3BlcmF0b3IgPSAkZXZlbnQgPT09ICdsaXN0JyA/ICdFUVVBTFMnIDogdGhpcy5maWx0ZXIub3BlcmF0b3I7XG4gICAgaWYgKHRoaXMuZmlsdGVyLnR5cGUgIT09ICcnICYmIHRoaXMuY29udGFpbmVyKSB7XG4gICAgICBsZXQgY29tcG9uZW50ID0gdGhpcy5maWx0ZXJGYWN0b3J5U2VydmljZS5nZW5lcmF0ZUZpbHRlcih0aGlzLmZpbHRlci50eXBlLCB0aGlzLmluamVjdG9yLCB0aGlzLmNvbnRhaW5lcik7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgICBjb21wb25lbnQuc3Vic2NyaWJlKChjb21wb25lbnRSZWYpID0+IHtcbiAgICAgICAgICB0aGlzLmN1cnJlbnRGaWx0ZXJDb21wb25lbnRUeXBlJC5uZXh0KGNvbXBvbmVudFJlZi5pbnN0YW5jZS50eXBlKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfVxuICAgIHRoaXMuZmlsdGVyLmxpbWl0ID0gdGhpcy5maWx0ZXIudHlwZSA9PT0gJ2F1dG9jb21wbGV0ZScgPyB0aGlzLmZpbHRlci5saW1pdCA/PyAxMCA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGdldEZpbHRlckF0dHJpYnV0ZXMoZmlsdGVyOiBGaWx0ZXIsIGF0dHJDb3VudDogbnVtYmVyKSB7XG4gICAgYXR0ckNvdW50ID0gYXR0ckNvdW50IDw9IGZpbHRlci5hdHRyaWJ1dGVzLmxlbmd0aCA/IGF0dHJDb3VudCA6IGZpbHRlci5hdHRyaWJ1dGVzLmxlbmd0aDtcbiAgICByZXR1cm4gZmlsdGVyLmF0dHJpYnV0ZXNcbiAgICAgIC5tYXAoKGF0dHIpID0+IGF0dHIudGVjaG5pY2FsTmFtZSlcbiAgICAgIC5zbGljZSgwLCBhdHRyQ291bnQpXG4gICAgICAuam9pbignLCAnKTtcbiAgfVxuXG4gIGdvQmFjaygpIHtcbiAgICB0aGlzLmZpbHRlciA9IHtcbiAgICAgIGlkOiB2NCgpLFxuICAgICAgbmFtZTogJycsXG4gICAgICB0eXBlOiAnJyxcbiAgICAgIGF0dHJpYnV0ZXM6IFtdXG4gICAgfTtcbiAgICB0aGlzLmN1cnJlbnRTdGVwID0gRmlsdGVyU3RlcHMuTElTVDtcbiAgfVxuXG4gIGdvVG9FZGl0aW9uKGZpbHRlcjogRmlsdGVyKSB7XG4gICAgdGhpcy5maWx0ZXIgPSB7IC4uLmZpbHRlciB9O1xuICAgIHRoaXMuY3VycmVudFN0ZXAgPSBGaWx0ZXJTdGVwcy5FRElUSU9OO1xuICB9XG5cbiAgZ29Ub0NyZWF0aW9uKCkge1xuICAgIHRoaXMuY3VycmVudEZpbHRlckNvbXBvbmVudFR5cGUkLm5leHQoJycpO1xuICAgIHRoaXMuY3VycmVudFN0ZXAgPSBGaWx0ZXJTdGVwcy5DUkVBVElPTjtcbiAgfVxuXG4gIHN1Ym1pdEZpbHRlcigpIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKERhc2hib2FyZEFjdGlvbnMudXBkYXRlRmlsdGVycyh7IGZpbHRlcjogdGhpcy5maWx0ZXIgfSkpO1xuICAgIHRoaXMuZ29CYWNrKCk7XG4gIH1cblxuICBzZWxlY3RBdHRyaWJ1dGUoJGV2ZW50OiBBdHRyaWJ1dGVbXSkge1xuICAgIHRoaXMuZmlsdGVyLmF0dHJpYnV0ZXMgPSAkZXZlbnQ7XG4gICAgdGhpcy5zZWxlY3RlZEF0dHJpYnV0ZSQubmV4dCgkZXZlbnQubWFwKChhdHRyKSA9PiBhdHRyLmlkKSk7XG4gIH1cblxuICBkZWxldGVGaWx0ZXIoaWQ6IHN0cmluZykge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRGFzaGJvYXJkQWN0aW9ucy5yZW1vdmVGaWx0ZXIoeyBpZCB9KSk7XG4gIH1cblxuICBnZXRPcGVyYXRvcnMoKTogeyBsYWJlbDogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIH1bXSB7XG4gICAgcmV0dXJuIHRoaXMub3BlcmF0b3JzLmZpbHRlcigob3BlcmF0b3IpID0+IHtcbiAgICAgIHN3aXRjaCAodGhpcy5jdXJyZW50RmlsdGVyQ29tcG9uZW50VHlwZSQudmFsdWUpIHtcbiAgICAgICAgY2FzZSAnZGF0ZSc6XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyLmhhc0RhdGVSYW5nZVxuICAgICAgICAgICAgPyBbJ0lOU0lERScsICdPVVRTSURFJ10uaW5jbHVkZXMob3BlcmF0b3IudmFsdWUpXG4gICAgICAgICAgICA6IFsnRVFVQUxTJywgJ05PVF9FUVVBTFMnLCAnR1JFQVRFUl9USEFOJywgJ0xPV0VSX1RIQU4nXS5pbmNsdWRlcyhvcGVyYXRvci52YWx1ZSk7XG4gICAgICAgIGNhc2UgJ2xpc3QnOlxuICAgICAgICAgIHJldHVybiBbJ0VRVUFMUyddLmluY2x1ZGVzKG9wZXJhdG9yLnZhbHVlKTtcbiAgICAgICAgY2FzZSAnbnVtYmVyJzpcbiAgICAgICAgICByZXR1cm4gWydFUVVBTFMnLCAnTk9UX0VRVUFMUycsICdHUkVBVEVSX1RIQU4nLCAnTE9XRVJfVEhBTiddLmluY2x1ZGVzKG9wZXJhdG9yLnZhbHVlKTtcbiAgICAgICAgY2FzZSAndGV4dCc6XG4gICAgICAgICAgcmV0dXJuIFsnQ09OVEFJTlMnLCAnRVFVQUxTJywgJ05PVF9FUVVBTFMnLCAnU1RBUlRfV0lUSCcsICdFTkRfV0lUSCddLmluY2x1ZGVzKG9wZXJhdG9yLnZhbHVlKTtcbiAgICAgICAgY2FzZSAnYXV0b2NvbXBsZXRlJzpcbiAgICAgICAgICByZXR1cm4gWydFUVVBTFMnXS5pbmNsdWRlcyhvcGVyYXRvci52YWx1ZSk7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgcmV0dXJuIG9wZXJhdG9yO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IEZpbHRlclN0ZXBzID0gRmlsdGVyU3RlcHM7XG59XG4iLCI8cHJ5LXRvb2xib3gtY3NzPjwvcHJ5LXRvb2xib3gtY3NzPlxuPGRpdiBjbGFzcz1cInNhdmUtbWFuaWZlc3QtY29udGFpbmVyXCI+XG4gIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBub25lXCI+XG4gICAgPG5nLXRlbXBsYXRlICNjb250YWluZXI+PC9uZy10ZW1wbGF0ZT5cbiAgPC9kaXY+XG4gIDxidXR0b25cbiAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICBjbGFzcz1cImEtYnRuIGEtYnRuLS1zZWNvbmRhcnkgLXNpemUtbWRcIlxuICAgIFtkaXNhYmxlZF09XCIoYXR0cmlidXRlcyQgfCBhc3luYyk/Lmxlbmd0aCA9PT0gMFwiXG4gICAgKGNsaWNrKT1cInRvZ2dsZVNldHRpbmdzKClcIlxuICAgIGFyaWEtaGFzcG9wdXA9XCJkaWFsb2dcIlxuICA+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxhYmVsXCI+e3sgJ0BwcnkuZmlsdGVycy5sYWJlbCcgfCBpMThuIH19PC9uZy1jb250YWluZXI+XG4gIDwvYnV0dG9uPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjc2V0dGluZ3M+XG4gIDxkaXYgY2xhc3M9XCJvLWZpbHRlcnNcIj5cbiAgICA8ZGl2IGNsYXNzPVwiby1maWx0ZXJzX19oZWFkZXJcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjdXJyZW50U3RlcCA9PT0gRmlsdGVyU3RlcHMuTElTVFwiPlxuICAgICAgICA8aDI+e3sgJ0BwcnkuZmlsdGVycy5sYWJlbCcgfCBpMThuIH19PC9oMj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImN1cnJlbnRTdGVwID09PSBGaWx0ZXJTdGVwcy5DUkVBVElPTiB8fCBjdXJyZW50U3RlcCA9PT0gRmlsdGVyU3RlcHMuRURJVElPTlwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidS1kaXNwbGF5LWZsZXggLXJvdyAtYWxpZ24tY2VudGVyXCI+XG4gICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiZ29CYWNrKClcIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJiYWNrLWJ1dHRvblwiPlxuICAgICAgICAgICAgPHByeS1pY29uIGljb25Tdmc9XCJjaGV2cm9uX3JpZ2h0XCI+PC9wcnktaWNvbj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8aDI+XG4gICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAoY3VycmVudFN0ZXAgPT09IEZpbHRlclN0ZXBzLkNSRUFUSU9OID8gJ0BwcnkuZmlsdGVycy5jcmVhdGlvbi5jcmVhdGUnIDogJ0BwcnkuZmlsdGVycy5jcmVhdGlvbi51cGRhdGUnKVxuICAgICAgICAgICAgICAgIHwgaTE4blxuICAgICAgICAgICAgfX1cbiAgICAgICAgICA8L2gyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPGJ1dHRvbiAoY2xpY2spPVwidG9nZ2xlU2V0dGluZ3MoKVwiIHR5cGU9XCJidXR0b25cIj5cbiAgICAgICAgPHByeS1pY29uIGljb25Tdmc9XCJjbG9zZVwiPjwvcHJ5LWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY3VycmVudFN0ZXAgPT09IEZpbHRlclN0ZXBzLkxJU1RcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJvLWZpbHRlcnNfX2NvbnRlbnRcIj5cbiAgICAgICAgPGRpdiAqbmdJZj1cIihhdHRyaWJ1dGVzJCB8IGFzeW5jKT8ubGVuZ3RoID09PSAwOyBlbHNlIGF0dHJpYnV0ZXNFeGlzdHNcIiBjbGFzcz1cImEtdGFibGUtd3JhcHBlclwiPjwvZGl2PlxuICAgICAgICA8bmctdGVtcGxhdGUgI2F0dHJpYnV0ZXNFeGlzdHM+XG4gICAgICAgICAgPHRhYmxlICpuZ0lmPVwiZmlsdGVycy5sZW5ndGggPiAwOyBlbHNlIG5vRmlsdGVyc1wiIGNsYXNzPVwiYS10YWJsZVwiPlxuICAgICAgICAgICAgPHRib2R5IGNka0Ryb3BMaXN0IFtjZGtEcm9wTGlzdERhdGFdPVwiZmlsdGVyc1wiIChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcCgkZXZlbnQpXCI+XG4gICAgICAgICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgZmlsdGVyIG9mIGZpbHRlcnNcIiBjbGFzcz1cIm8tZmlsdGVyc19fZmlsdGVyXCIgY2RrRHJhZz5cbiAgICAgICAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICAgICAgICA8c3Bhbj57eyBmaWx0ZXIubmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgIDx0ZD5cbiAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IGdldEZpbHRlckF0dHJpYnV0ZXMoZmlsdGVyLCAzKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgIDx0ZD5cbiAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYS1idG4gYS1idG4tLXByaW1hcnlcIiAoY2xpY2spPVwiZGVsZXRlRmlsdGVyKGZpbHRlci5pZClcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgJ0BwcnkuYWN0aW9uLmRlbGV0ZScgfCBpMThuIH19XG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgIDx0ZD5cbiAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYS1idG4gYS1idG4tLXByaW1hcnlcIiAoY2xpY2spPVwiZ29Ub0VkaXRpb24oZmlsdGVyKVwiPlxuICAgICAgICAgICAgICAgICAgICB7eyAnQHByeS5maWx0ZXJzLmxpc3QubW9kaWZ5JyB8IGkxOG4gfX1cbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgPHRkIGNka0RyYWdIYW5kbGU+XG4gICAgICAgICAgICAgICAgICA8cHJ5LWljb24gaWNvblN2Zz1cImRyYWdfaW5kaWNhdG9yXCI+PC9wcnktaWNvbj5cbiAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgPC90Ym9keT5cbiAgICAgICAgICA8L3RhYmxlPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm9GaWx0ZXJzPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJvLWZpbHRlcnNfX25vLWZpbHRlcnNcIj57eyAnQHByeS5maWx0ZXJzLm5vRmlsdGVycycgfCBpMThuIH19PC9zcGFuPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiZ29Ub0NyZWF0aW9uKClcIiBjbGFzcz1cImEtYnRuIGEtYnRuLS1wcmltYXJ5XCI+e3sgJ0BwcnkuZmlsdGVycy5saXN0LmFkZCcgfCBpMThuIH19PC9idXR0b24+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY3VycmVudFN0ZXAgPT09IEZpbHRlclN0ZXBzLkNSRUFUSU9OIHx8IGN1cnJlbnRTdGVwID09PSBGaWx0ZXJTdGVwcy5FRElUSU9OXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiby1maWx0ZXJzX19jb250ZW50XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtLWZvcm0tbGFiZWwtZmllbGRcIj5cbiAgICAgICAgICA8bGFiZWwgZm9yPVwiZmlsdGVyTmFtZVwiIGNsYXNzPVwiYS1sYWJlbFwiPnt7ICdAcHJ5LmZpbHRlcnMuY3JlYXRpb24ubmFtZScgfCBpMThuIH19PC9sYWJlbD5cbiAgICAgICAgICA8aW5wdXQgaWQ9XCJmaWx0ZXJOYW1lXCIgY2xhc3M9XCJhLWZvcm0tZmllbGRcIiB0eXBlPVwidGV4dFwiIFsobmdNb2RlbCldPVwiZmlsdGVyLm5hbWVcIiAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZFwiPlxuICAgICAgICAgIDxsYWJlbCBmb3I9XCJmaWx0ZXJUeXBlXCIgY2xhc3M9XCJhLWxhYmVsXCI+e3sgJ0BwcnkuZmlsdGVycy5jcmVhdGlvbi50eXBlJyB8IGkxOG4gfX08L2xhYmVsPlxuICAgICAgICAgIDxwcnktc2VsZWN0XG4gICAgICAgICAgICBpZD1cImZpbHRlclR5cGVcIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidAcHJ5LmZpbHRlcnMuY3JlYXRpb24udHlwZScgfCBpMThuXCJcbiAgICAgICAgICAgIFtpdGVtc109XCJ0eXBlcyQgfCBhc3luY1wiXG4gICAgICAgICAgICBiaW5kTGFiZWw9XCJsYWJlbFwiXG4gICAgICAgICAgICBiaW5kVmFsdWU9XCJ2YWx1ZVwiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlci50eXBlXCJcbiAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInVwZGF0ZUZpbHRlclR5cGUoJGV2ZW50KVwiXG4gICAgICAgICAgPlxuICAgICAgICAgIDwvcHJ5LXNlbGVjdD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgKm5nSWY9XCIoY3VycmVudEZpbHRlckNvbXBvbmVudFR5cGUkIHwgYXN5bmMpID09PSAnZGF0ZSdcIiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZCB1LWRpc3BsYXktZmxleCAtcm93XCI+XG4gICAgICAgICAgPGxhYmVsIGZvcj1cImRhdGUtcmFuZ2VcIiBjbGFzcz1cImEtbGFiZWxcIj57eyAnQHByeS5maWx0ZXJzLmNyZWF0aW9uLmRhdGVSYW5nZScgfCBpMThuIH19PC9sYWJlbD5cbiAgICAgICAgICA8cHJ5LWNoZWNrYm94XG4gICAgICAgICAgICBpZD1cImRhdGUtcmFuZ2VcIlxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXIuaGFzRGF0ZVJhbmdlXCJcbiAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInRoaXMuY3VycmVudE9wZXJhdG9ycyQubmV4dChnZXRPcGVyYXRvcnMoKSlcIlxuICAgICAgICAgIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiKGN1cnJlbnRGaWx0ZXJDb21wb25lbnRUeXBlJCB8IGFzeW5jKSA9PT0gJ2xpc3QnXCIgY2xhc3M9XCJtLWZvcm0tbGFiZWwtZmllbGRcIj5cbiAgICAgICAgICA8bGFiZWwgZm9yPVwicG9zc2libGVWYWx1ZXNcIiBjbGFzcz1cImEtbGFiZWxcIj57eyAnQHByeS5maWx0ZXJzLmNyZWF0aW9uLnZhbHVlcycgfCBpMThuIH19PC9sYWJlbD5cbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIGlkPVwicG9zc2libGVWYWx1ZXNcIlxuICAgICAgICAgICAgY2xhc3M9XCJhLWZvcm0tZmllbGRcIlxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXIucG9zc2libGVWYWx1ZXNcIlxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJ2YWxldXIxLCB2YWxldXIyLCB2YWxldXIzXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiAqbmdJZj1cIihjdXJyZW50RmlsdGVyQ29tcG9uZW50VHlwZSQgfCBhc3luYykgPT09ICdhdXRvY29tcGxldGUnXCIgY2xhc3M9XCJtLWZvcm0tbGFiZWwtZmllbGRcIj5cbiAgICAgICAgICA8bGFiZWwgZm9yPVwibGltaXRcIiBjbGFzcz1cImEtbGFiZWxcIj57eyAnQHByeS5maWx0ZXJzLmNyZWF0aW9uLmxpbWl0JyB8IGkxOG4gfX08L2xhYmVsPlxuICAgICAgICAgIDxpbnB1dCBpZD1cImxpbWl0XCIgY2xhc3M9XCJhLWZvcm0tZmllbGRcIiB0eXBlPVwibnVtYmVyXCIgbWluPVwiMFwiIG1heD1cIjUwXCIgWyhuZ01vZGVsKV09XCJmaWx0ZXIubGltaXRcIiAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZFwiPlxuICAgICAgICAgIDxsYWJlbCBmb3I9XCJhdHRyaWJ1dGVzXCIgY2xhc3M9XCJhLWxhYmVsXCI+e3sgJ0BwcnkuZmlsdGVycy5jcmVhdGlvbi5hdHRyaWJ1dGVzJyB8IGkxOG4gfX08L2xhYmVsPlxuICAgICAgICAgIDxwcnktc2VsZWN0XG4gICAgICAgICAgICBpZD1cImF0dHJpYnV0ZXNcIlxuICAgICAgICAgICAgW211bHRpcGxlXT1cInRydWVcIlxuICAgICAgICAgICAgW2Nsb3NlT25TZWxlY3RdPVwiZmFsc2VcIlxuICAgICAgICAgICAgW2l0ZW1zXT1cImF0dHJpYnV0ZXMkIHwgYXN5bmNcIlxuICAgICAgICAgICAgW25nTW9kZWxdPVwiZmlsdGVyLmF0dHJpYnV0ZXNcIlxuICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwic2VsZWN0QXR0cmlidXRlKCRldmVudClcIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidAcHJ5LmZpbHRlcnMuY3JlYXRpb24uYXR0cmlidXRlcycgfCBpMThuXCJcbiAgICAgICAgICAgIFthdXRvY29tcGxldGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICBiaW5kTGFiZWw9XCJsYWJlbFwiXG4gICAgICAgICAgPlxuICAgICAgICAgIDwvcHJ5LXNlbGVjdD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtLWZvcm0tbGFiZWwtZmllbGRcIj5cbiAgICAgICAgICA8bGFiZWwgZm9yPVwib3BlcmF0aW9uc1wiIGNsYXNzPVwiYS1sYWJlbFwiPnt7ICdAcHJ5LmZpbHRlcnMuYXR0cmlidXRlcy5vcGVyYXRvcicgfCBpMThuIH19PC9sYWJlbD5cbiAgICAgICAgICA8cHJ5LXNlbGVjdFxuICAgICAgICAgICAgaWQ9XCJvcGVyYXRpb25zXCJcbiAgICAgICAgICAgIFtpdGVtc109XCJjdXJyZW50T3BlcmF0b3JzJCB8IGFzeW5jXCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVyLm9wZXJhdG9yXCJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInQHByeS5maWx0ZXJzLmF0dHJpYnV0ZXMub3BlcmF0b3InIHwgaTE4blwiXG4gICAgICAgICAgICBiaW5kTGFiZWw9XCJsYWJlbFwiXG4gICAgICAgICAgICBiaW5kVmFsdWU9XCJ2YWx1ZVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiKGN1cnJlbnRGaWx0ZXJDb21wb25lbnRUeXBlJCB8IGFzeW5jKSA9PT0gJ2xpc3QnXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgPC9wcnktc2VsZWN0PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGNsYXNzPVwiYS1idG4gYS1idG4tLXByaW1hcnlcIlxuICAgICAgICAgIChjbGljayk9XCJzdWJtaXRGaWx0ZXIoKVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiEoZmlsdGVyLm5hbWUgJiYgZmlsdGVyLnR5cGUgJiYgZmlsdGVyLmF0dHJpYnV0ZXMubGVuZ3RoICE9PSAwICYmIGZpbHRlci5vcGVyYXRvcilcIlxuICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgJ0BwcnkudG9vbGJveC5tYW5pZmVzdC52YWxpZGF0ZScgfCBpMThuIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -14,10 +14,10 @@ export class LaunchTabComponent extends ToolboxActionComponent {
14
14
  this.close();
15
15
  }
16
16
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LaunchTabComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
17
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: LaunchTabComponent, selector: "pry-launch-tab", usesInheritance: true, ngImport: i0, template: "<div class=\"a-tooltip\" [attr.data-tooltip]=\"'@pry.toolbox.launch' | i18n\" data-tooltip-position=\"bottom\">\n <button type=\"button\" class=\"a-btn a-btn--secondary -size-md\" (click)=\"launchNewWindow()\">\n <ng-container *ngIf=\"displayLabels\"\n ><span class=\"u-visually-hidden\">{{ '@pry.toolbox.launchIndication' | i18n }}</span\n >{{ '@pry.toolbox.launch' | i18n }}</ng-container\n >\n <pry-icon iconSvg=\"launch\"></pry-icon>\n </button>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }] }); }
17
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: LaunchTabComponent, selector: "pry-launch-tab", usesInheritance: true, ngImport: i0, template: "<button type=\"button\" class=\"a-btn a-btn--secondary -size-md\" (click)=\"launchNewWindow()\">\n <ng-container *ngIf=\"displayLabels\"\n ><span class=\"u-visually-hidden\">{{ '@pry.toolbox.launchIndication' | i18n }}</span\n >{{ '@pry.toolbox.launch' | i18n }}\n </ng-container>\n <pry-icon iconSvg=\"launch\"></pry-icon>\n</button>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }] }); }
18
18
  }
19
19
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LaunchTabComponent, decorators: [{
20
20
  type: Component,
21
- args: [{ selector: 'pry-launch-tab', template: "<div class=\"a-tooltip\" [attr.data-tooltip]=\"'@pry.toolbox.launch' | i18n\" data-tooltip-position=\"bottom\">\n <button type=\"button\" class=\"a-btn a-btn--secondary -size-md\" (click)=\"launchNewWindow()\">\n <ng-container *ngIf=\"displayLabels\"\n ><span class=\"u-visually-hidden\">{{ '@pry.toolbox.launchIndication' | i18n }}</span\n >{{ '@pry.toolbox.launch' | i18n }}</ng-container\n >\n <pry-icon iconSvg=\"launch\"></pry-icon>\n </button>\n</div>\n" }]
21
+ args: [{ selector: 'pry-launch-tab', template: "<button type=\"button\" class=\"a-btn a-btn--secondary -size-md\" (click)=\"launchNewWindow()\">\n <ng-container *ngIf=\"displayLabels\"\n ><span class=\"u-visually-hidden\">{{ '@pry.toolbox.launchIndication' | i18n }}</span\n >{{ '@pry.toolbox.launch' | i18n }}\n </ng-container>\n <pry-icon iconSvg=\"launch\"></pry-icon>\n</button>\n" }]
22
22
  }], ctorParameters: function () { return [{ type: i1.Store }]; } });
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF1bmNoLXRhYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC90b29sYm94L2NvbXBvbmVudHMvbGF1bmNoLXRhYi9sYXVuY2gtdGFiLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL3Rvb2xib3gvY29tcG9uZW50cy9sYXVuY2gtdGFiL2xhdW5jaC10YWIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQzs7Ozs7QUFNcEYsTUFBTSxPQUFPLGtCQUFtQixTQUFRLHNCQUFzQjtJQUM1RCxZQUFZLEtBQVk7UUFDdEIsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2YsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ2xELElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNmLENBQUM7K0dBUlUsa0JBQWtCO21HQUFsQixrQkFBa0IsNkVDVC9CLGtlQVNBOzs0RkRBYSxrQkFBa0I7a0JBSjlCLFNBQVM7K0JBQ0UsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IERhc2hib2FyZEFjdGlvbnMgfSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQnO1xuaW1wb3J0IHsgVG9vbGJveEFjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uL3Rvb2xib3gtYWN0aW9uL3Rvb2xib3gtYWN0aW9uLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ByeS1sYXVuY2gtdGFiJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xhdW5jaC10YWIuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIExhdW5jaFRhYkNvbXBvbmVudCBleHRlbmRzIFRvb2xib3hBY3Rpb25Db21wb25lbnQge1xuICBjb25zdHJ1Y3RvcihzdG9yZTogU3RvcmUpIHtcbiAgICBzdXBlcihzdG9yZSk7XG4gIH1cblxuICBsYXVuY2hOZXdXaW5kb3coKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChEYXNoYm9hcmRBY3Rpb25zLmNyZWF0ZVRhYigpKTtcbiAgICB0aGlzLmNsb3NlKCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJhLXRvb2x0aXBcIiBbYXR0ci5kYXRhLXRvb2x0aXBdPVwiJ0BwcnkudG9vbGJveC5sYXVuY2gnIHwgaTE4blwiIGRhdGEtdG9vbHRpcC1wb3NpdGlvbj1cImJvdHRvbVwiPlxuICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImEtYnRuIGEtYnRuLS1zZWNvbmRhcnkgLXNpemUtbWRcIiAoY2xpY2spPVwibGF1bmNoTmV3V2luZG93KClcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGlzcGxheUxhYmVsc1wiXG4gICAgICA+PHNwYW4gY2xhc3M9XCJ1LXZpc3VhbGx5LWhpZGRlblwiPnt7ICdAcHJ5LnRvb2xib3gubGF1bmNoSW5kaWNhdGlvbicgfCBpMThuIH19PC9zcGFuXG4gICAgICA+e3sgJ0BwcnkudG9vbGJveC5sYXVuY2gnIHwgaTE4biB9fTwvbmctY29udGFpbmVyXG4gICAgPlxuICAgIDxwcnktaWNvbiBpY29uU3ZnPVwibGF1bmNoXCI+PC9wcnktaWNvbj5cbiAgPC9idXR0b24+XG48L2Rpdj5cbiJdfQ==
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF1bmNoLXRhYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC90b29sYm94L2NvbXBvbmVudHMvbGF1bmNoLXRhYi9sYXVuY2gtdGFiLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL3Rvb2xib3gvY29tcG9uZW50cy9sYXVuY2gtdGFiL2xhdW5jaC10YWIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQzs7Ozs7QUFNcEYsTUFBTSxPQUFPLGtCQUFtQixTQUFRLHNCQUFzQjtJQUM1RCxZQUFZLEtBQVk7UUFDdEIsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2YsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ2xELElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNmLENBQUM7K0dBUlUsa0JBQWtCO21HQUFsQixrQkFBa0IsNkVDVC9CLDJWQU9BOzs0RkRFYSxrQkFBa0I7a0JBSjlCLFNBQVM7K0JBQ0UsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IERhc2hib2FyZEFjdGlvbnMgfSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQnO1xuaW1wb3J0IHsgVG9vbGJveEFjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uL3Rvb2xib3gtYWN0aW9uL3Rvb2xib3gtYWN0aW9uLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ByeS1sYXVuY2gtdGFiJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xhdW5jaC10YWIuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIExhdW5jaFRhYkNvbXBvbmVudCBleHRlbmRzIFRvb2xib3hBY3Rpb25Db21wb25lbnQge1xuICBjb25zdHJ1Y3RvcihzdG9yZTogU3RvcmUpIHtcbiAgICBzdXBlcihzdG9yZSk7XG4gIH1cblxuICBsYXVuY2hOZXdXaW5kb3coKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChEYXNoYm9hcmRBY3Rpb25zLmNyZWF0ZVRhYigpKTtcbiAgICB0aGlzLmNsb3NlKCk7XG4gIH1cbn1cbiIsIjxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYS1idG4gYS1idG4tLXNlY29uZGFyeSAtc2l6ZS1tZFwiIChjbGljayk9XCJsYXVuY2hOZXdXaW5kb3coKVwiPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGlzcGxheUxhYmVsc1wiXG4gICAgPjxzcGFuIGNsYXNzPVwidS12aXN1YWxseS1oaWRkZW5cIj57eyAnQHByeS50b29sYm94LmxhdW5jaEluZGljYXRpb24nIHwgaTE4biB9fTwvc3BhblxuICAgID57eyAnQHByeS50b29sYm94LmxhdW5jaCcgfCBpMThuIH19XG4gIDwvbmctY29udGFpbmVyPlxuICA8cHJ5LWljb24gaWNvblN2Zz1cImxhdW5jaFwiPjwvcHJ5LWljb24+XG48L2J1dHRvbj5cbiJdfQ==