@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
@@ -27,6 +27,7 @@ export class ToolboxComponent {
27
27
  .select(DashboardSelectors.windowManifest)
28
28
  .pipe(map((pres) => (pres.grid?.layout ?? DashboardGridLayout.MANUAL) === DashboardGridLayout.MANUAL));
29
29
  this.actionsAvailable$ = store.select(DashboardSelectors.displayOptions);
30
+ this.showEditToggle$ = this.actionsAvailable$.pipe(map((actions) => !!actions?.edit_toggle));
30
31
  }
31
32
  ngOnInit() {
32
33
  this.allActions$ = combineLatest([this.actions$, this.actionsAvailable$]).pipe(switchMap(([actions, displayOptions]) => combineLatest(actions.map((action) => {
@@ -59,11 +60,11 @@ export class ToolboxComponent {
59
60
  return this._dropdownActions$.getValue().find((action) => actionName === action.name)?.order;
60
61
  }
61
62
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ToolboxComponent, deps: [{ token: i1.Store }, { token: PRY_ACCESS_TOKEN, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
62
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ToolboxComponent, selector: "pry-toolbox", inputs: { displayLabels: "displayLabels", actions: "actions", dropdownActions: "dropdownActions" }, ngImport: i0, template: "<ul class=\"m-actions-list\" #input>\n <ng-container *ngFor=\"let action of mainActions$ | async\">\n <ng-container *ngIf=\"action.visible\">\n <li class=\"m-actions-list__item\" *pryAccess=\"action.access\">\n <pry-toolbox-action-instanciator\n [action]=\"action\"\n [displayLabels]=\"displayLabels\"\n ></pry-toolbox-action-instanciator>\n </li>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"showDropdownButton$ | async\">\n <li class=\"m-actions-list__item\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--primary -size-md\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n id=\"options\"\n aria-controls=\"IDpanel\"\n aria-expanded=\"false\"\n (click)=\"openDropdown($event)\"\n >\n <ng-container *ngIf=\"displayLabels\"\n ><span class=\"u-visually-hidden\">{{ '@pry.toolbox.options' | i18n }}</span>\n <span>{{ '@pry.toolbox.options' | i18n }}</span>\n <pry-icon [width]=\"14\" [height]=\"14\" iconSvg=\"chevron_bottom\"></pry-icon>\n </ng-container>\n </button>\n </li>\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"isDropdownOpen\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"isDropdownOpen = false\"\n >\n <div class=\"o-draggable-menu\" aria-labelledby=\"\">\n <ul class=\"o-draggable-menu__list\">\n <ng-container *ngFor=\"let action of dropdownActions$ | async\">\n <ng-container *ngIf=\"action.visible\">\n <li class=\"o-draggable-menu__list__item\" [style.order]=\"getOrder(action.name)\">\n <pry-toolbox-action-instanciator\n [action]=\"action\"\n [displayLabels]=\"displayLabels\"\n (closeOptions)=\"closeDropdown($event)\"\n ></pry-toolbox-action-instanciator>\n </li>\n </ng-container>\n </ng-container>\n </ul>\n </div>\n </ng-template>\n </ng-container>\n <li class=\"m-actions-list__item\" *ngIf=\"isManualMode$ | async\">\n <pry-edit-mode-toggle\n *pryAccess=\"{ module: 'dashboard', page: 'toolbox', action: 'edit_dashboard' }\"\n [displayLabels]=\"displayLabels\"\n ></pry-edit-mode-toggle>\n </li>\n</ul>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.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: i3.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "directive", type: i4.PryAccessDirective, selector: "[pryAccess]", inputs: ["pryAccess"] }, { kind: "component", type: i4.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i5.ToolboxActionInstanciatorComponent, selector: "pry-toolbox-action-instanciator", inputs: ["displayLabels", "action"], outputs: ["closeOptions"] }, { kind: "component", type: i6.EditModeToggleComponent, selector: "pry-edit-mode-toggle" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
63
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ToolboxComponent, selector: "pry-toolbox", inputs: { displayLabels: "displayLabels", actions: "actions", dropdownActions: "dropdownActions" }, ngImport: i0, template: "<ul class=\"m-actions-list\" #input>\n <ng-container *ngFor=\"let action of mainActions$ | async\">\n <ng-container *ngIf=\"action.visible\">\n <li class=\"m-actions-list__item\" *pryAccess=\"action.access\">\n <pry-toolbox-action-instanciator\n [action]=\"action\"\n [displayLabels]=\"displayLabels\"\n ></pry-toolbox-action-instanciator>\n </li>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"showDropdownButton$ | async\">\n <li class=\"m-actions-list__item\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--primary -size-md\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n id=\"options\"\n aria-controls=\"IDpanel\"\n aria-expanded=\"false\"\n (click)=\"openDropdown($event)\"\n >\n <ng-container *ngIf=\"displayLabels\"\n ><span class=\"u-visually-hidden\">{{ '@pry.toolbox.options' | i18n }}</span>\n <span>{{ '@pry.toolbox.options' | i18n }}</span>\n <pry-icon [width]=\"14\" [height]=\"14\" iconSvg=\"chevron_bottom\"></pry-icon>\n </ng-container>\n </button>\n </li>\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"isDropdownOpen\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"isDropdownOpen = false\"\n >\n <div class=\"o-draggable-menu\" aria-labelledby=\"\">\n <ul class=\"o-draggable-menu__list\">\n <ng-container *ngFor=\"let action of dropdownActions$ | async\">\n <ng-container *ngIf=\"action.visible\">\n <li class=\"o-draggable-menu__list__item\" [style.order]=\"getOrder(action.name)\">\n <pry-toolbox-action-instanciator\n [action]=\"action\"\n [displayLabels]=\"displayLabels\"\n (closeOptions)=\"closeDropdown($event)\"\n ></pry-toolbox-action-instanciator>\n </li>\n </ng-container>\n </ng-container>\n </ul>\n </div>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"showEditToggle$ | async\">\n <li class=\"m-actions-list__item\" *ngIf=\"isManualMode$ | async\">\n <pry-edit-mode-toggle\n *pryAccess=\"{ module: 'dashboard', page: 'toolbox', action: 'edit_dashboard' }\"\n [displayLabels]=\"displayLabels\"\n ></pry-edit-mode-toggle>\n </li>\n </ng-container>\n</ul>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.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: i3.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "directive", type: i4.PryAccessDirective, selector: "[pryAccess]", inputs: ["pryAccess"] }, { kind: "component", type: i4.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i5.ToolboxActionInstanciatorComponent, selector: "pry-toolbox-action-instanciator", inputs: ["displayLabels", "action"], outputs: ["closeOptions"] }, { kind: "component", type: i6.EditModeToggleComponent, selector: "pry-edit-mode-toggle" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
63
64
  }
64
65
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ToolboxComponent, decorators: [{
65
66
  type: Component,
66
- args: [{ selector: 'pry-toolbox', template: "<ul class=\"m-actions-list\" #input>\n <ng-container *ngFor=\"let action of mainActions$ | async\">\n <ng-container *ngIf=\"action.visible\">\n <li class=\"m-actions-list__item\" *pryAccess=\"action.access\">\n <pry-toolbox-action-instanciator\n [action]=\"action\"\n [displayLabels]=\"displayLabels\"\n ></pry-toolbox-action-instanciator>\n </li>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"showDropdownButton$ | async\">\n <li class=\"m-actions-list__item\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--primary -size-md\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n id=\"options\"\n aria-controls=\"IDpanel\"\n aria-expanded=\"false\"\n (click)=\"openDropdown($event)\"\n >\n <ng-container *ngIf=\"displayLabels\"\n ><span class=\"u-visually-hidden\">{{ '@pry.toolbox.options' | i18n }}</span>\n <span>{{ '@pry.toolbox.options' | i18n }}</span>\n <pry-icon [width]=\"14\" [height]=\"14\" iconSvg=\"chevron_bottom\"></pry-icon>\n </ng-container>\n </button>\n </li>\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"isDropdownOpen\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"isDropdownOpen = false\"\n >\n <div class=\"o-draggable-menu\" aria-labelledby=\"\">\n <ul class=\"o-draggable-menu__list\">\n <ng-container *ngFor=\"let action of dropdownActions$ | async\">\n <ng-container *ngIf=\"action.visible\">\n <li class=\"o-draggable-menu__list__item\" [style.order]=\"getOrder(action.name)\">\n <pry-toolbox-action-instanciator\n [action]=\"action\"\n [displayLabels]=\"displayLabels\"\n (closeOptions)=\"closeDropdown($event)\"\n ></pry-toolbox-action-instanciator>\n </li>\n </ng-container>\n </ng-container>\n </ul>\n </div>\n </ng-template>\n </ng-container>\n <li class=\"m-actions-list__item\" *ngIf=\"isManualMode$ | async\">\n <pry-edit-mode-toggle\n *pryAccess=\"{ module: 'dashboard', page: 'toolbox', action: 'edit_dashboard' }\"\n [displayLabels]=\"displayLabels\"\n ></pry-edit-mode-toggle>\n </li>\n</ul>\n" }]
67
+ args: [{ selector: 'pry-toolbox', template: "<ul class=\"m-actions-list\" #input>\n <ng-container *ngFor=\"let action of mainActions$ | async\">\n <ng-container *ngIf=\"action.visible\">\n <li class=\"m-actions-list__item\" *pryAccess=\"action.access\">\n <pry-toolbox-action-instanciator\n [action]=\"action\"\n [displayLabels]=\"displayLabels\"\n ></pry-toolbox-action-instanciator>\n </li>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"showDropdownButton$ | async\">\n <li class=\"m-actions-list__item\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--primary -size-md\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n id=\"options\"\n aria-controls=\"IDpanel\"\n aria-expanded=\"false\"\n (click)=\"openDropdown($event)\"\n >\n <ng-container *ngIf=\"displayLabels\"\n ><span class=\"u-visually-hidden\">{{ '@pry.toolbox.options' | i18n }}</span>\n <span>{{ '@pry.toolbox.options' | i18n }}</span>\n <pry-icon [width]=\"14\" [height]=\"14\" iconSvg=\"chevron_bottom\"></pry-icon>\n </ng-container>\n </button>\n </li>\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"isDropdownOpen\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"isDropdownOpen = false\"\n >\n <div class=\"o-draggable-menu\" aria-labelledby=\"\">\n <ul class=\"o-draggable-menu__list\">\n <ng-container *ngFor=\"let action of dropdownActions$ | async\">\n <ng-container *ngIf=\"action.visible\">\n <li class=\"o-draggable-menu__list__item\" [style.order]=\"getOrder(action.name)\">\n <pry-toolbox-action-instanciator\n [action]=\"action\"\n [displayLabels]=\"displayLabels\"\n (closeOptions)=\"closeDropdown($event)\"\n ></pry-toolbox-action-instanciator>\n </li>\n </ng-container>\n </ng-container>\n </ul>\n </div>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"showEditToggle$ | async\">\n <li class=\"m-actions-list__item\" *ngIf=\"isManualMode$ | async\">\n <pry-edit-mode-toggle\n *pryAccess=\"{ module: 'dashboard', page: 'toolbox', action: 'edit_dashboard' }\"\n [displayLabels]=\"displayLabels\"\n ></pry-edit-mode-toggle>\n </li>\n </ng-container>\n</ul>\n" }]
67
68
  }], ctorParameters: function () { return [{ type: i1.Store }, { type: i4.PryBaseAccess, decorators: [{
68
69
  type: Optional
69
70
  }, {
@@ -76,4 +77,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
76
77
  }], dropdownActions: [{
77
78
  type: Input
78
79
  }] } });
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC90b29sYm94L2NvbXBvbmVudHMvdG9vbGJveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC90b29sYm94L2NvbXBvbmVudHMvdG9vbGJveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNFLE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIsa0JBQWtCLEVBRWxCLGdCQUFnQixFQUVqQixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBYyxFQUFFLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxPQUFPLEVBQWlCLE1BQU0sa0JBQWtCLENBQUM7Ozs7Ozs7O0FBTTFELE1BQU0sT0FBTyxnQkFBZ0I7SUFhM0IsSUFBYSxPQUFPLENBQUMsT0FBd0I7UUFDM0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQWEsZUFBZSxDQUFDLGVBQWtEO1FBQzdFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELFlBQVksS0FBWSxFQUFnRCxJQUFtQjtRQUFuQixTQUFJLEdBQUosSUFBSSxDQUFlO1FBcEIzRixhQUFRLEdBQUcsSUFBSSxlQUFlLENBQWtCLE9BQU8sQ0FBQyxDQUFDO1FBQ3pELHNCQUFpQixHQUFHLElBQUksZUFBZSxDQUFvQyxFQUFFLENBQUMsQ0FBQztRQUN0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cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIElucHV0LCBPbkluaXQsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7XG4gIERhc2hib2FyZEdyaWRMYXlvdXQsXG4gIERhc2hib2FyZFNlbGVjdG9ycyxcbiAgRGlzcGxheU9wdGlvbnMsXG4gIFBSWV9BQ0NFU1NfVE9LRU4sXG4gIFByeUJhc2VBY2Nlc3Ncbn0gZnJvbSAnQHByb3ZvbHkvZGFzaGJvYXJkJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgbWFwLCBPYnNlcnZhYmxlLCBvZiwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBQ1RJT05TLCBUb29sYm94QWN0aW9uIH0gZnJvbSAnLi4vdG9vbGJveC5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ByeS10b29sYm94JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Rvb2xib3guY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFRvb2xib3hDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBhY3Rpb25zJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VG9vbGJveEFjdGlvbltdPihBQ1RJT05TKTtcbiAgX2Ryb3Bkb3duQWN0aW9ucyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHsgbmFtZTogc3RyaW5nOyBvcmRlcjogbnVtYmVyIH1bXT4oW10pO1xuICBASW5wdXQoKSBkaXNwbGF5TGFiZWxzID0gdHJ1ZTtcbiAgaGFzSW5pdGlhbFByZXNlbnRhdGlvbiQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIGlzTWFudWFsTW9kZSQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIGFsbEFjdGlvbnMkITogT2JzZXJ2YWJsZTxUb29sYm94QWN0aW9uW10+O1xuICBtYWluQWN0aW9ucyQhOiBPYnNlcnZhYmxlPFRvb2xib3hBY3Rpb25bXT47XG4gIGRyb3Bkb3duQWN0aW9ucyQhOiBPYnNlcnZhYmxlPFRvb2xib3hBY3Rpb25bXT47XG4gIHNob3dEcm9wZG93bkJ1dHRvbiQhOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBpc0Ryb3Bkb3duT3BlbiA9IGZhbHNlO1xuICBhY3Rpb25zQXZhaWxhYmxlJDogT2JzZXJ2YWJsZTxEaXNwbGF5T3B0aW9ucyB8IHVuZGVmaW5lZD47XG5cbiAgQElucHV0KCkgc2V0IGFjdGlvbnMoYWN0aW9uczogVG9vbGJveEFjdGlvbltdKSB7XG4gICAgdGhpcy5hY3Rpb25zJC5uZXh0KGFjdGlvbnMpO1xuICB9XG5cbiAgQElucHV0KCkgc2V0IGRyb3Bkb3duQWN0aW9ucyhkcm9wZG93bkFjdGlvbnM6IHsgbmFtZTogc3RyaW5nOyBvcmRlcjogbnVtYmVyIH1bXSkge1xuICAgIHRoaXMuX2Ryb3Bkb3duQWN0aW9ucyQubmV4dChkcm9wZG93bkFjdGlvbnMpO1xuICB9XG5cbiAgY29uc3RydWN0b3Ioc3RvcmU6IFN0b3JlLCBAT3B0aW9uYWwoKSBASW5qZWN0KFBSWV9BQ0NFU1NfVE9LRU4pIHByaXZhdGUgcm9sZTogUHJ5QmFzZUFjY2Vzcykge1xuICAgIHRoaXMuaGFzSW5pdGlhbFByZXNlbnRhdGlvbiQgPSBzdG9yZS5zZWxlY3QoRGFzaGJvYXJkU2VsZWN0b3JzLnByZXNlbnRhdGlvbikucGlwZShtYXAoKHByZXMpID0+ICEhcHJlcy5pbml0aWFsKSk7XG4gICAgdGhpcy5pc01hbnVhbE1vZGUkID0gc3RvcmVcbiAgICAgIC5zZWxlY3QoRGFzaGJvYXJkU2VsZWN0b3JzLndpbmRvd01hbmlmZXN0KVxuICAgICAgLnBpcGUobWFwKChwcmVzKSA9PiAocHJlcy5ncmlkPy5sYXlvdXQgPz8gRGFzaGJvYXJkR3JpZExheW91dC5NQU5VQUwpID09PSBEYXNoYm9hcmRHcmlkTGF5b3V0Lk1BTlVBTCkpO1xuICAgIHRoaXMuYWN0aW9uc0F2YWlsYWJsZSQgPSBzdG9yZS5zZWxlY3QoRGFzaGJvYXJkU2VsZWN0b3JzLmRpc3BsYXlPcHRpb25zKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuYWxsQWN0aW9ucyQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLmFjdGlvbnMkLCB0aGlzLmFjdGlvbnNBdmFpbGFibGUkXSkucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoW2FjdGlvbnMsIGRpc3BsYXlPcHRpb25zXSkgPT5cbiAgICAgICAgY29tYmluZUxhdGVzdChcbiAgICAgICAgICBhY3Rpb25zLm1hcCgoYWN0aW9uKSA9PiB7XG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICBjb25zdCBhY3Rpb25BdmFpbGFibGUgPSBhY3Rpb24udmlzaWJsZSAmJiBkaXNwbGF5T3B0aW9ucy50b29sYm94W2FjdGlvbi5uYW1lXTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnJvbGVcbiAgICAgICAgICAgICAgPyB0aGlzLnJvbGUuaGFzUm9sZShudWxsLCBhY3Rpb24uYWNjZXNzLm1vZHVsZSwgYWN0aW9uLmFjY2Vzcy5wYWdlLCBhY3Rpb24uYWNjZXNzLmFjdGlvbikucGlwZShcbiAgICAgICAgICAgICAgICAgIG1hcChcbiAgICAgICAgICAgICAgICAgICAgKGhhc1JvbGUpID0+XG4gICAgICAgICAgICAgICAgICAgICAgKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLmFjdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgIHZpc2libGU6IGFjdGlvbkF2YWlsYWJsZSAmJiAoIXRoaXMucm9sZSB8fCBoYXNSb2xlKVxuICAgICAgICAgICAgICAgICAgICAgIH0gYXMgVG9vbGJveEFjdGlvbilcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIDogb2Yoe1xuICAgICAgICAgICAgICAgICAgLi4uYWN0aW9uLFxuICAgICAgICAgICAgICAgICAgdmlzaWJsZTogYWN0aW9uQXZhaWxhYmxlXG4gICAgICAgICAgICAgICAgfSBhcyBUb29sYm94QWN0aW9uKTtcbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICApXG4gICAgKTtcbiAgICB0aGlzLm1haW5BY3Rpb25zJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuX2Ryb3Bkb3duQWN0aW9ucyQsIHRoaXMuYWxsQWN0aW9ucyRdKS5waXBlKFxuICAgICAgbWFwKChbZHJvcGRvd25BY3Rpb25zLCBhY3Rpb25zXSkgPT5cbiAgICAgICAgYWN0aW9ucy5maWx0ZXIoKGFjdGlvbikgPT4gIWRyb3Bkb3duQWN0aW9ucy5maW5kKChkcm9wZG93bkFjdGlvbikgPT4gYWN0aW9uLm5hbWUgPT09IGRyb3Bkb3duQWN0aW9uLm5hbWUpKVxuICAgICAgKVxuICAgICk7XG4gICAgdGhpcy5kcm9wZG93bkFjdGlvbnMkID0gY29tYmluZUxhdGVzdChbdGhpcy5fZHJvcGRvd25BY3Rpb25zJCwgdGhpcy5hbGxBY3Rpb25zJF0pLnBpcGUoXG4gICAgICBtYXAoKFtkcm9wZG93bkFjdGlvbnMsIGFjdGlvbnNdKSA9PlxuICAgICAgICBhY3Rpb25zLmZpbHRlcigoYWN0aW9uKSA9PiAhIWRyb3Bkb3duQWN0aW9ucy5maW5kKChkcm9wZG93bkFjdGlvbikgPT4gYWN0aW9uLm5hbWUgPT09IGRyb3Bkb3duQWN0aW9uLm5hbWUpKVxuICAgICAgKVxuICAgICk7XG5cbiAgICB0aGlzLnNob3dEcm9wZG93bkJ1dHRvbiQgPSB0aGlzLmRyb3Bkb3duQWN0aW9ucyQucGlwZShcbiAgICAgIG1hcCgoYWN0aW9ucykgPT4gYWN0aW9ucy5maWx0ZXIoKGFjdGlvbikgPT4gYWN0aW9uLnZpc2libGUpLmxlbmd0aCA+IDApXG4gICAgKTtcbiAgfVxuXG4gIG9wZW5Ecm9wZG93bigkZXZlbnQ6IEV2ZW50KSB7XG4gICAgdGhpcy5pc0Ryb3Bkb3duT3BlbiA9IHRydWU7XG4gICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICB9XG5cbiAgY2xvc2VEcm9wZG93bigkZXZlbnQ6IEV2ZW50IHwgdm9pZCkge1xuICAgIHRoaXMuaXNEcm9wZG93bk9wZW4gPSBmYWxzZTtcbiAgICBpZiAoJGV2ZW50KSAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gIH1cblxuICBnZXRPcmRlcihhY3Rpb25OYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5fZHJvcGRvd25BY3Rpb25zJC5nZXRWYWx1ZSgpLmZpbmQoKGFjdGlvbikgPT4gYWN0aW9uTmFtZSA9PT0gYWN0aW9uLm5hbWUpPy5vcmRlcjtcbiAgfVxufVxuIiwiPHVsIGNsYXNzPVwibS1hY3Rpb25zLWxpc3RcIiAjaW5wdXQ+XG4gIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGFjdGlvbiBvZiBtYWluQWN0aW9ucyQgfCBhc3luY1wiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhY3Rpb24udmlzaWJsZVwiPlxuICAgICAgPGxpIGNsYXNzPVwibS1hY3Rpb25zLWxpc3RfX2l0ZW1cIiAqcHJ5QWNjZXNzPVwiYWN0aW9uLmFjY2Vzc1wiPlxuICAgICAgICA8cHJ5LXRvb2xib3gtYWN0aW9uLWluc3RhbmNpYXRvclxuICAgICAgICAgIFthY3Rpb25dPVwiYWN0aW9uXCJcbiAgICAgICAgICBbZGlzcGxheUxhYmVsc109XCJkaXNwbGF5TGFiZWxzXCJcbiAgICAgICAgPjwvcHJ5LXRvb2xib3gtYWN0aW9uLWluc3RhbmNpYXRvcj5cbiAgICAgIDwvbGk+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd0Ryb3Bkb3duQnV0dG9uJCB8IGFzeW5jXCI+XG4gICAgPGxpIGNsYXNzPVwibS1hY3Rpb25zLWxpc3RfX2l0ZW1cIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGNsYXNzPVwiYS1idG4gYS1idG4tLXByaW1hcnkgLXNpemUtbWRcIlxuICAgICAgICBjZGtPdmVybGF5T3JpZ2luXG4gICAgICAgICN0cmlnZ2VyPVwiY2RrT3ZlcmxheU9yaWdpblwiXG4gICAgICAgIGlkPVwib3B0aW9uc1wiXG4gICAgICAgIGFyaWEtY29udHJvbHM9XCJJRHBhbmVsXCJcbiAgICAgICAgYXJpYS1leHBhbmRlZD1cImZhbHNlXCJcbiAgICAgICAgKGNsaWNrKT1cIm9wZW5Ecm9wZG93bigkZXZlbnQpXCJcbiAgICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRpc3BsYXlMYWJlbHNcIlxuICAgICAgICAgID48c3BhbiBjbGFzcz1cInUtdmlzdWFsbHktaGlkZGVuXCI+e3sgJ0BwcnkudG9vbGJveC5vcHRpb25zJyB8IGkxOG4gfX08L3NwYW4+XG4gICAgICAgICAgPHNwYW4+e3sgJ0BwcnkudG9vbGJveC5vcHRpb25zJyB8IGkxOG4gfX08L3NwYW4+XG4gICAgICAgICAgPHByeS1pY29uIFt3aWR0aF09XCIxNFwiIFtoZWlnaHRdPVwiMTRcIiBpY29uU3ZnPVwiY2hldnJvbl9ib3R0b21cIj48L3ByeS1pY29uPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvbGk+XG4gICAgPG5nLXRlbXBsYXRlXG4gICAgICBjZGtDb25uZWN0ZWRPdmVybGF5XG4gICAgICBbY2RrQ29ubmVjdGVkT3ZlcmxheU9yaWdpbl09XCJ0cmlnZ2VyXCJcbiAgICAgIFtjZGtDb25uZWN0ZWRPdmVybGF5T3Blbl09XCJpc0Ryb3Bkb3duT3BlblwiXG4gICAgICBbY2RrQ29ubmVjdGVkT3ZlcmxheUhhc0JhY2tkcm9wXT1cInRydWVcIlxuICAgICAgY2RrQ29ubmVjdGVkT3ZlcmxheUJhY2tkcm9wQ2xhc3M9XCJjZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcFwiXG4gICAgICAoYmFja2Ryb3BDbGljayk9XCJpc0Ryb3Bkb3duT3BlbiA9IGZhbHNlXCJcbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzPVwiby1kcmFnZ2FibGUtbWVudVwiIGFyaWEtbGFiZWxsZWRieT1cIlwiPlxuICAgICAgICA8dWwgY2xhc3M9XCJvLWRyYWdnYWJsZS1tZW51X19saXN0XCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIGRyb3Bkb3duQWN0aW9ucyQgfCBhc3luY1wiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFjdGlvbi52aXNpYmxlXCI+XG4gICAgICAgICAgICAgIDxsaSBjbGFzcz1cIm8tZHJhZ2dhYmxlLW1lbnVfX2xpc3RfX2l0ZW1cIiBbc3R5bGUub3JkZXJdPVwiZ2V0T3JkZXIoYWN0aW9uLm5hbWUpXCI+XG4gICAgICAgICAgICAgICAgPHByeS10b29sYm94LWFjdGlvbi1pbnN0YW5jaWF0b3JcbiAgICAgICAgICAgICAgICAgIFthY3Rpb25dPVwiYWN0aW9uXCJcbiAgICAgICAgICAgICAgICAgIFtkaXNwbGF5TGFiZWxzXT1cImRpc3BsYXlMYWJlbHNcIlxuICAgICAgICAgICAgICAgICAgKGNsb3NlT3B0aW9ucyk9XCJjbG9zZURyb3Bkb3duKCRldmVudClcIlxuICAgICAgICAgICAgICAgID48L3ByeS10b29sYm94LWFjdGlvbi1pbnN0YW5jaWF0b3I+XG4gICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC91bD5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bGkgY2xhc3M9XCJtLWFjdGlvbnMtbGlzdF9faXRlbVwiICpuZ0lmPVwiaXNNYW51YWxNb2RlJCB8IGFzeW5jXCI+XG4gICAgPHByeS1lZGl0LW1vZGUtdG9nZ2xlXG4gICAgICAqcHJ5QWNjZXNzPVwieyBtb2R1bGU6ICdkYXNoYm9hcmQnLCBwYWdlOiAndG9vbGJveCcsIGFjdGlvbjogJ2VkaXRfZGFzaGJvYXJkJyB9XCJcbiAgICAgIFtkaXNwbGF5TGFiZWxzXT1cImRpc3BsYXlMYWJlbHNcIlxuICAgID48L3ByeS1lZGl0LW1vZGUtdG9nZ2xlPlxuICA8L2xpPlxuPC91bD5cbiJdfQ==
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC90b29sYm94L2NvbXBvbmVudHMvdG9vbGJveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC90b29sYm94L2NvbXBvbmVudHMvdG9vbGJveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNFLE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIsa0JBQWtCLEVBRWxCLGdCQUFnQixFQUVqQixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBYyxFQUFFLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxPQUFPLEVBQWlCLE1BQU0sa0JBQWtCLENBQUM7Ozs7Ozs7O0FBTTFELE1BQU0sT0FBTyxnQkFBZ0I7SUFjM0IsSUFBYSxPQUFPLENBQUMsT0FBd0I7UUFDM0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQWEsZUFBZSxDQUFDLGVBQWtEO1FBQzdFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELFlBQVksS0FBWSxFQUFnRCxJQUFtQjtRQUFuQixTQUFJLEdBQUosSUFBSSxDQUFlO1FBckIzRixhQUFRLEdBQUcsSUFBSSxlQUFlLENBQWtCLE9BQU8sQ0FBQyxDQUFDO1FBQ3pELHNCQUFpQixHQUFHLElBQUksZUFBZSxDQUFvQyxFQUFFLENBQUMsQ0FBQztRQUN0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NUIsU0FBUzsrQkFDRSxhQUFhOzswQkF5QkksUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxnQkFBZ0I7NENBbkJyRCxhQUFhO3NCQUFyQixLQUFLO2dCQVdPLE9BQU87c0JBQW5CLEtBQUs7Z0JBSU8sZUFBZTtzQkFBM0IsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBJbnB1dCwgT25Jbml0LCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQge1xuICBEYXNoYm9hcmRHcmlkTGF5b3V0LFxuICBEYXNoYm9hcmRTZWxlY3RvcnMsXG4gIERpc3BsYXlPcHRpb25zLFxuICBQUllfQUNDRVNTX1RPS0VOLFxuICBQcnlCYXNlQWNjZXNzXG59IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZCc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIG1hcCwgT2JzZXJ2YWJsZSwgb2YsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQUNUSU9OUywgVG9vbGJveEFjdGlvbiB9IGZyb20gJy4uL3Rvb2xib3gubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwcnktdG9vbGJveCcsXG4gIHRlbXBsYXRlVXJsOiAnLi90b29sYm94LmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBUb29sYm94Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgYWN0aW9ucyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRvb2xib3hBY3Rpb25bXT4oQUNUSU9OUyk7XG4gIF9kcm9wZG93bkFjdGlvbnMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDx7IG5hbWU6IHN0cmluZzsgb3JkZXI6IG51bWJlciB9W10+KFtdKTtcbiAgQElucHV0KCkgZGlzcGxheUxhYmVscyA9IHRydWU7XG4gIGhhc0luaXRpYWxQcmVzZW50YXRpb24kOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBpc01hbnVhbE1vZGUkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBhbGxBY3Rpb25zJCE6IE9ic2VydmFibGU8VG9vbGJveEFjdGlvbltdPjtcbiAgbWFpbkFjdGlvbnMkITogT2JzZXJ2YWJsZTxUb29sYm94QWN0aW9uW10+O1xuICBkcm9wZG93bkFjdGlvbnMkITogT2JzZXJ2YWJsZTxUb29sYm94QWN0aW9uW10+O1xuICBzaG93RHJvcGRvd25CdXR0b24kITogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgaXNEcm9wZG93bk9wZW4gPSBmYWxzZTtcbiAgYWN0aW9uc0F2YWlsYWJsZSQ6IE9ic2VydmFibGU8RGlzcGxheU9wdGlvbnMgfCB1bmRlZmluZWQ+O1xuICBzaG93RWRpdFRvZ2dsZSQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgQElucHV0KCkgc2V0IGFjdGlvbnMoYWN0aW9uczogVG9vbGJveEFjdGlvbltdKSB7XG4gICAgdGhpcy5hY3Rpb25zJC5uZXh0KGFjdGlvbnMpO1xuICB9XG5cbiAgQElucHV0KCkgc2V0IGRyb3Bkb3duQWN0aW9ucyhkcm9wZG93bkFjdGlvbnM6IHsgbmFtZTogc3RyaW5nOyBvcmRlcjogbnVtYmVyIH1bXSkge1xuICAgIHRoaXMuX2Ryb3Bkb3duQWN0aW9ucyQubmV4dChkcm9wZG93bkFjdGlvbnMpO1xuICB9XG5cbiAgY29uc3RydWN0b3Ioc3RvcmU6IFN0b3JlLCBAT3B0aW9uYWwoKSBASW5qZWN0KFBSWV9BQ0NFU1NfVE9LRU4pIHByaXZhdGUgcm9sZTogUHJ5QmFzZUFjY2Vzcykge1xuICAgIHRoaXMuaGFzSW5pdGlhbFByZXNlbnRhdGlvbiQgPSBzdG9yZS5zZWxlY3QoRGFzaGJvYXJkU2VsZWN0b3JzLnByZXNlbnRhdGlvbikucGlwZShtYXAoKHByZXMpID0+ICEhcHJlcy5pbml0aWFsKSk7XG4gICAgdGhpcy5pc01hbnVhbE1vZGUkID0gc3RvcmVcbiAgICAgIC5zZWxlY3QoRGFzaGJvYXJkU2VsZWN0b3JzLndpbmRvd01hbmlmZXN0KVxuICAgICAgLnBpcGUobWFwKChwcmVzKSA9PiAocHJlcy5ncmlkPy5sYXlvdXQgPz8gRGFzaGJvYXJkR3JpZExheW91dC5NQU5VQUwpID09PSBEYXNoYm9hcmRHcmlkTGF5b3V0Lk1BTlVBTCkpO1xuICAgIHRoaXMuYWN0aW9uc0F2YWlsYWJsZSQgPSBzdG9yZS5zZWxlY3QoRGFzaGJvYXJkU2VsZWN0b3JzLmRpc3BsYXlPcHRpb25zKTtcbiAgICB0aGlzLnNob3dFZGl0VG9nZ2xlJCA9IHRoaXMuYWN0aW9uc0F2YWlsYWJsZSQucGlwZShtYXAoKGFjdGlvbnMpID0+ICEhYWN0aW9ucz8uZWRpdF90b2dnbGUpKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuYWxsQWN0aW9ucyQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLmFjdGlvbnMkLCB0aGlzLmFjdGlvbnNBdmFpbGFibGUkXSkucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoW2FjdGlvbnMsIGRpc3BsYXlPcHRpb25zXSkgPT5cbiAgICAgICAgY29tYmluZUxhdGVzdChcbiAgICAgICAgICBhY3Rpb25zLm1hcCgoYWN0aW9uKSA9PiB7XG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICBjb25zdCBhY3Rpb25BdmFpbGFibGUgPSBhY3Rpb24udmlzaWJsZSAmJiBkaXNwbGF5T3B0aW9ucy50b29sYm94W2FjdGlvbi5uYW1lXTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnJvbGVcbiAgICAgICAgICAgICAgPyB0aGlzLnJvbGUuaGFzUm9sZShudWxsLCBhY3Rpb24uYWNjZXNzLm1vZHVsZSwgYWN0aW9uLmFjY2Vzcy5wYWdlLCBhY3Rpb24uYWNjZXNzLmFjdGlvbikucGlwZShcbiAgICAgICAgICAgICAgICAgIG1hcChcbiAgICAgICAgICAgICAgICAgICAgKGhhc1JvbGUpID0+XG4gICAgICAgICAgICAgICAgICAgICAgKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLmFjdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgIHZpc2libGU6IGFjdGlvbkF2YWlsYWJsZSAmJiAoIXRoaXMucm9sZSB8fCBoYXNSb2xlKVxuICAgICAgICAgICAgICAgICAgICAgIH0gYXMgVG9vbGJveEFjdGlvbilcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIDogb2Yoe1xuICAgICAgICAgICAgICAgICAgLi4uYWN0aW9uLFxuICAgICAgICAgICAgICAgICAgdmlzaWJsZTogYWN0aW9uQXZhaWxhYmxlXG4gICAgICAgICAgICAgICAgfSBhcyBUb29sYm94QWN0aW9uKTtcbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICApXG4gICAgKTtcbiAgICB0aGlzLm1haW5BY3Rpb25zJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuX2Ryb3Bkb3duQWN0aW9ucyQsIHRoaXMuYWxsQWN0aW9ucyRdKS5waXBlKFxuICAgICAgbWFwKChbZHJvcGRvd25BY3Rpb25zLCBhY3Rpb25zXSkgPT5cbiAgICAgICAgYWN0aW9ucy5maWx0ZXIoKGFjdGlvbikgPT4gIWRyb3Bkb3duQWN0aW9ucy5maW5kKChkcm9wZG93bkFjdGlvbikgPT4gYWN0aW9uLm5hbWUgPT09IGRyb3Bkb3duQWN0aW9uLm5hbWUpKVxuICAgICAgKVxuICAgICk7XG4gICAgdGhpcy5kcm9wZG93bkFjdGlvbnMkID0gY29tYmluZUxhdGVzdChbdGhpcy5fZHJvcGRvd25BY3Rpb25zJCwgdGhpcy5hbGxBY3Rpb25zJF0pLnBpcGUoXG4gICAgICBtYXAoKFtkcm9wZG93bkFjdGlvbnMsIGFjdGlvbnNdKSA9PlxuICAgICAgICBhY3Rpb25zLmZpbHRlcigoYWN0aW9uKSA9PiAhIWRyb3Bkb3duQWN0aW9ucy5maW5kKChkcm9wZG93bkFjdGlvbikgPT4gYWN0aW9uLm5hbWUgPT09IGRyb3Bkb3duQWN0aW9uLm5hbWUpKVxuICAgICAgKVxuICAgICk7XG5cbiAgICB0aGlzLnNob3dEcm9wZG93bkJ1dHRvbiQgPSB0aGlzLmRyb3Bkb3duQWN0aW9ucyQucGlwZShcbiAgICAgIG1hcCgoYWN0aW9ucykgPT4gYWN0aW9ucy5maWx0ZXIoKGFjdGlvbikgPT4gYWN0aW9uLnZpc2libGUpLmxlbmd0aCA+IDApXG4gICAgKTtcbiAgfVxuXG4gIG9wZW5Ecm9wZG93bigkZXZlbnQ6IEV2ZW50KSB7XG4gICAgdGhpcy5pc0Ryb3Bkb3duT3BlbiA9IHRydWU7XG4gICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICB9XG5cbiAgY2xvc2VEcm9wZG93bigkZXZlbnQ6IEV2ZW50IHwgdm9pZCkge1xuICAgIHRoaXMuaXNEcm9wZG93bk9wZW4gPSBmYWxzZTtcbiAgICBpZiAoJGV2ZW50KSAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gIH1cblxuICBnZXRPcmRlcihhY3Rpb25OYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5fZHJvcGRvd25BY3Rpb25zJC5nZXRWYWx1ZSgpLmZpbmQoKGFjdGlvbikgPT4gYWN0aW9uTmFtZSA9PT0gYWN0aW9uLm5hbWUpPy5vcmRlcjtcbiAgfVxufVxuIiwiPHVsIGNsYXNzPVwibS1hY3Rpb25zLWxpc3RcIiAjaW5wdXQ+XG4gIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGFjdGlvbiBvZiBtYWluQWN0aW9ucyQgfCBhc3luY1wiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhY3Rpb24udmlzaWJsZVwiPlxuICAgICAgPGxpIGNsYXNzPVwibS1hY3Rpb25zLWxpc3RfX2l0ZW1cIiAqcHJ5QWNjZXNzPVwiYWN0aW9uLmFjY2Vzc1wiPlxuICAgICAgICA8cHJ5LXRvb2xib3gtYWN0aW9uLWluc3RhbmNpYXRvclxuICAgICAgICAgIFthY3Rpb25dPVwiYWN0aW9uXCJcbiAgICAgICAgICBbZGlzcGxheUxhYmVsc109XCJkaXNwbGF5TGFiZWxzXCJcbiAgICAgICAgPjwvcHJ5LXRvb2xib3gtYWN0aW9uLWluc3RhbmNpYXRvcj5cbiAgICAgIDwvbGk+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd0Ryb3Bkb3duQnV0dG9uJCB8IGFzeW5jXCI+XG4gICAgPGxpIGNsYXNzPVwibS1hY3Rpb25zLWxpc3RfX2l0ZW1cIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGNsYXNzPVwiYS1idG4gYS1idG4tLXByaW1hcnkgLXNpemUtbWRcIlxuICAgICAgICBjZGtPdmVybGF5T3JpZ2luXG4gICAgICAgICN0cmlnZ2VyPVwiY2RrT3ZlcmxheU9yaWdpblwiXG4gICAgICAgIGlkPVwib3B0aW9uc1wiXG4gICAgICAgIGFyaWEtY29udHJvbHM9XCJJRHBhbmVsXCJcbiAgICAgICAgYXJpYS1leHBhbmRlZD1cImZhbHNlXCJcbiAgICAgICAgKGNsaWNrKT1cIm9wZW5Ecm9wZG93bigkZXZlbnQpXCJcbiAgICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRpc3BsYXlMYWJlbHNcIlxuICAgICAgICAgID48c3BhbiBjbGFzcz1cInUtdmlzdWFsbHktaGlkZGVuXCI+e3sgJ0BwcnkudG9vbGJveC5vcHRpb25zJyB8IGkxOG4gfX08L3NwYW4+XG4gICAgICAgICAgPHNwYW4+e3sgJ0BwcnkudG9vbGJveC5vcHRpb25zJyB8IGkxOG4gfX08L3NwYW4+XG4gICAgICAgICAgPHByeS1pY29uIFt3aWR0aF09XCIxNFwiIFtoZWlnaHRdPVwiMTRcIiBpY29uU3ZnPVwiY2hldnJvbl9ib3R0b21cIj48L3ByeS1pY29uPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvbGk+XG4gICAgPG5nLXRlbXBsYXRlXG4gICAgICBjZGtDb25uZWN0ZWRPdmVybGF5XG4gICAgICBbY2RrQ29ubmVjdGVkT3ZlcmxheU9yaWdpbl09XCJ0cmlnZ2VyXCJcbiAgICAgIFtjZGtDb25uZWN0ZWRPdmVybGF5T3Blbl09XCJpc0Ryb3Bkb3duT3BlblwiXG4gICAgICBbY2RrQ29ubmVjdGVkT3ZlcmxheUhhc0JhY2tkcm9wXT1cInRydWVcIlxuICAgICAgY2RrQ29ubmVjdGVkT3ZlcmxheUJhY2tkcm9wQ2xhc3M9XCJjZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcFwiXG4gICAgICAoYmFja2Ryb3BDbGljayk9XCJpc0Ryb3Bkb3duT3BlbiA9IGZhbHNlXCJcbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzPVwiby1kcmFnZ2FibGUtbWVudVwiIGFyaWEtbGFiZWxsZWRieT1cIlwiPlxuICAgICAgICA8dWwgY2xhc3M9XCJvLWRyYWdnYWJsZS1tZW51X19saXN0XCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIGRyb3Bkb3duQWN0aW9ucyQgfCBhc3luY1wiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFjdGlvbi52aXNpYmxlXCI+XG4gICAgICAgICAgICAgIDxsaSBjbGFzcz1cIm8tZHJhZ2dhYmxlLW1lbnVfX2xpc3RfX2l0ZW1cIiBbc3R5bGUub3JkZXJdPVwiZ2V0T3JkZXIoYWN0aW9uLm5hbWUpXCI+XG4gICAgICAgICAgICAgICAgPHByeS10b29sYm94LWFjdGlvbi1pbnN0YW5jaWF0b3JcbiAgICAgICAgICAgICAgICAgIFthY3Rpb25dPVwiYWN0aW9uXCJcbiAgICAgICAgICAgICAgICAgIFtkaXNwbGF5TGFiZWxzXT1cImRpc3BsYXlMYWJlbHNcIlxuICAgICAgICAgICAgICAgICAgKGNsb3NlT3B0aW9ucyk9XCJjbG9zZURyb3Bkb3duKCRldmVudClcIlxuICAgICAgICAgICAgICAgID48L3ByeS10b29sYm94LWFjdGlvbi1pbnN0YW5jaWF0b3I+XG4gICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC91bD5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd0VkaXRUb2dnbGUkIHwgYXN5bmNcIj5cbiAgICA8bGkgY2xhc3M9XCJtLWFjdGlvbnMtbGlzdF9faXRlbVwiICpuZ0lmPVwiaXNNYW51YWxNb2RlJCB8IGFzeW5jXCI+XG4gICAgICA8cHJ5LWVkaXQtbW9kZS10b2dnbGVcbiAgICAgICAgKnByeUFjY2Vzcz1cInsgbW9kdWxlOiAnZGFzaGJvYXJkJywgcGFnZTogJ3Rvb2xib3gnLCBhY3Rpb246ICdlZGl0X2Rhc2hib2FyZCcgfVwiXG4gICAgICAgIFtkaXNwbGF5TGFiZWxzXT1cImRpc3BsYXlMYWJlbHNcIlxuICAgICAgPjwvcHJ5LWVkaXQtbW9kZS10b2dnbGU+XG4gICAgPC9saT5cbiAgPC9uZy1jb250YWluZXI+XG48L3VsPlxuIl19
@@ -19,8 +19,14 @@ export class AttributeTooltipComponent extends BaseTooltipComponent {
19
19
  .flat()
20
20
  .find((attr) => attr.id === attribute)?.name ?? attribute));
21
21
  }
22
+ getAttributeTechnicalName(attribute) {
23
+ return this.classes$.pipe(map((classes) => classes
24
+ .map((clazz) => clazz.attributes)
25
+ .flat()
26
+ .find((attr) => attr.id === attribute)?.technicalName ?? attribute));
27
+ }
22
28
  getValue(attribute, limit = 9999) {
23
- return this.getAttributeName(attribute).pipe(switchMap((attribute) => this._getValue(attribute)), map((value) => {
29
+ return this.getAttributeTechnicalName(attribute).pipe(switchMap((attribute) => this._getValue(attribute)), map((value) => {
24
30
  switch (typeof value) {
25
31
  case 'undefined':
26
32
  return '';
@@ -61,4 +67,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
61
67
  type: Component,
62
68
  args: [{ selector: 'pry-attribute-tooltip', template: "<div class=\"m-tooltip__item__content\">\n <h3 class=\"a-h3 -attribute\">\n <img\n [src]=\"data.item | translateItemToSymbol | async\"\n [alt]=\"data.item.oClass | translateId : { type: 'class', output: 'name' } | async\"\n [title]=\"data.item.oClass | translateId : { type: 'class', output: 'name' } | async\"\n width=\"32\"\n aria-hidden=\"true\"\n />\n <span [title]=\"data.item.oClass | translateId : { type: 'class', output: 'name' } | async\">{{\n data.item.oClass | translateId : { type: 'class', output: 'name' } | async\n }}</span>\n </h3>\n <ng-container *ngFor=\"let attribute of context.attributes\">\n <p [title]=\"getValue(attribute) | async\">\n <span>{{ getAttributeName(attribute) | async }}:</span> {{ getValue(attribute, 40) | async }}\n </p>\n </ng-container>\n</div>\n" }]
63
69
  }], ctorParameters: function () { return [{ type: i1.TranslateIdPipe }, { type: i2.Store }]; } });
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0cmlidXRlLXRvb2x0aXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvdG9vbHRpcHMvYXR0cmlidXRlL2F0dHJpYnV0ZS10b29sdGlwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL3Rvb2x0aXBzL2F0dHJpYnV0ZS9hdHRyaWJ1dGUtdG9vbHRpcC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxvQkFBb0IsRUFBUyxjQUFjLEVBQW1CLE1BQU0sb0JBQW9CLENBQUM7QUFDbEcsT0FBTyxFQUFFLEdBQUcsRUFBYyxFQUFFLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7OztBQU90RCxNQUFNLE9BQU8seUJBQTBCLFNBQVEsb0JBQW9CO0lBR2pFLFlBQW9CLGVBQWdDLEVBQVUsS0FBaUI7UUFDN0UsS0FBSyxFQUFFLENBQUM7UUFEVSxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFBVSxVQUFLLEdBQUwsS0FBSyxDQUFZO1FBRTdFLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sSUFBSSxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsQ0FBQztRQUNsRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsU0FBaUI7UUFDaEMsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDdkIsR0FBRyxDQUNELENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FDVixPQUFPO2FBQ0osR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDO2FBQ2hDLElBQUksRUFBRTthQUNOLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxTQUFTLENBQUMsRUFBRSxJQUFJLElBQUksU0FBUyxDQUM5RCxDQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsUUFBUSxDQUFDLFNBQWlCLEVBQUUsS0FBSyxHQUFHLElBQUk7UUFDdEMsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUMxQyxTQUFTLENBQUMsQ0FBQyxTQUFpQixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQzNELEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ1osUUFBUSxPQUFPLEtBQUssRUFBRTtnQkFDcEIsS0FBSyxXQUFXO29CQUNkLE9BQU8sRUFBRSxDQUFDO2dCQUNaLEtBQUssUUFBUTtvQkFDWCxPQUFPLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDMUIsS0FBSyxRQUFRO29CQUNYLE9BQU8sS0FBSyxDQUFDO2dCQUNmO29CQUNFLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ3JDLE9BQU8sTUFBTSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO2FBQzlFO1FBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRCxTQUFTLENBQUMsU0FBaUI7UUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUM5QixpQ0FBaUM7WUFDakMsUUFBUSxTQUFTLEVBQUU7Z0JBQ2pCLEtBQUssSUFBSTtvQkFDUCxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO2dCQUN2QyxLQUFLLFFBQVE7b0JBQ1gsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRTt3QkFDL0QsSUFBSSxFQUFFLE9BQU87d0JBQ2IsTUFBTSxFQUFFLE1BQU07cUJBQ2YsQ0FBdUIsQ0FBQztnQkFDM0I7b0JBQ0UsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO2FBQzFEO1NBQ0Y7YUFBTTtZQUNMLDRDQUE0QztZQUM1QyxPQUFPLEVBQUUsQ0FDUCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBb0MsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxTQUFTLENBQUMsRUFBRSxLQUFLLENBQ3hHLENBQUM7U0FDSDtJQUNILENBQUM7K0dBNURVLHlCQUF5QjttR0FBekIseUJBQXlCLG9GQ1R0QyxnMUJBbUJBOzs0RkRWYSx5QkFBeUI7a0JBSnJDLFNBQVM7K0JBQ0UsdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCYXNlVG9vbHRpcENvbXBvbmVudCwgQ2xhc3MsIENsYXNzU2VsZWN0b3JzLCBUcmFuc2xhdGVJZFBpcGUgfSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQnO1xuaW1wb3J0IHsgbWFwLCBPYnNlcnZhYmxlLCBvZiwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncHJ5LWF0dHJpYnV0ZS10b29sdGlwJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2F0dHJpYnV0ZS10b29sdGlwLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBBdHRyaWJ1dGVUb29sdGlwQ29tcG9uZW50IGV4dGVuZHMgQmFzZVRvb2x0aXBDb21wb25lbnQge1xuICBwcml2YXRlIGNsYXNzZXMkOiBPYnNlcnZhYmxlPENsYXNzW10+O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdHJhbnNsYXRlSWRQaXBlOiBUcmFuc2xhdGVJZFBpcGUsIHByaXZhdGUgc3RvcmU6IFN0b3JlPGFueT4pIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuY29udGV4dCA9IHRoaXMuY29udGV4dCA/PyB7IGF0dHJpYnV0ZXM6IFtdIH07XG4gICAgdGhpcy5jbGFzc2VzJCA9IHRoaXMuc3RvcmUuc2VsZWN0KENsYXNzU2VsZWN0b3JzLmNsYXNzZXMpO1xuICB9XG5cbiAgZ2V0QXR0cmlidXRlTmFtZShhdHRyaWJ1dGU6IHN0cmluZyk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuY2xhc3NlcyQucGlwZShcbiAgICAgIG1hcChcbiAgICAgICAgKGNsYXNzZXMpID0+XG4gICAgICAgICAgY2xhc3Nlc1xuICAgICAgICAgICAgLm1hcCgoY2xhenopID0+IGNsYXp6LmF0dHJpYnV0ZXMpXG4gICAgICAgICAgICAuZmxhdCgpXG4gICAgICAgICAgICAuZmluZCgoYXR0cikgPT4gYXR0ci5pZCA9PT0gYXR0cmlidXRlKT8ubmFtZSA/PyBhdHRyaWJ1dGVcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgZ2V0VmFsdWUoYXR0cmlidXRlOiBzdHJpbmcsIGxpbWl0ID0gOTk5OSk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0QXR0cmlidXRlTmFtZShhdHRyaWJ1dGUpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKGF0dHJpYnV0ZTogc3RyaW5nKSA9PiB0aGlzLl9nZXRWYWx1ZShhdHRyaWJ1dGUpKSxcbiAgICAgIG1hcCgodmFsdWUpID0+IHtcbiAgICAgICAgc3dpdGNoICh0eXBlb2YgdmFsdWUpIHtcbiAgICAgICAgICBjYXNlICd1bmRlZmluZWQnOlxuICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICAgIGNhc2UgJ251bWJlcic6XG4gICAgICAgICAgICByZXR1cm4gdmFsdWUudG9TdHJpbmcoKTtcbiAgICAgICAgICBjYXNlICdzdHJpbmcnOlxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBKU09OLnN0cmluZ2lmeSh2YWx1ZSk7XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0Lmxlbmd0aCA+IGxpbWl0ID8gYCR7cmVzdWx0LnN1YnN0cmluZygwLCBsaW1pdCl9Li4uYCA6IHJlc3VsdDtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgX2dldFZhbHVlKGF0dHJpYnV0ZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxzdHJpbmcgfCB1bmRlZmluZWQgfCBudW1iZXI+IHtcbiAgICBpZiAoIXRoaXMuZGF0YS5pdGVtLnByb3BlcnRpZXMpIHtcbiAgICAgIC8vIFRoaXMgaXMgZm9yIFByb3ZvbHktbGlrZSBpdGVtc1xuICAgICAgc3dpdGNoIChhdHRyaWJ1dGUpIHtcbiAgICAgICAgY2FzZSAnaWQnOlxuICAgICAgICAgIHJldHVybiBvZih0aGlzLmRhdGEuaXRlbVthdHRyaWJ1dGVdKTtcbiAgICAgICAgY2FzZSAnb0NsYXNzJzpcbiAgICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVJZFBpcGUudHJhbnNmb3JtKHRoaXMuZGF0YS5pdGVtW2F0dHJpYnV0ZV0sIHtcbiAgICAgICAgICAgIHR5cGU6ICdjbGFzcycsXG4gICAgICAgICAgICBvdXRwdXQ6ICduYW1lJ1xuICAgICAgICAgIH0pIGFzIE9ic2VydmFibGU8c3RyaW5nPjtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICByZXR1cm4gb2YodGhpcy5kYXRhLml0ZW0uYXR0cmlidXRlc1thdHRyaWJ1dGVdPy52YWx1ZSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFRoaXMgaXMgZm9yIG90aGVyIGl0ZW1zLCBsaWtlIFdNU0ZlYXR1cmVzXG4gICAgICByZXR1cm4gb2YoXG4gICAgICAgIHRoaXMuZGF0YS5pdGVtLnByb3BlcnRpZXMuZmluZCgocHJvcDogeyBrZXk6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9KSA9PiBwcm9wLmtleSA9PT0gYXR0cmlidXRlKT8udmFsdWVcbiAgICAgICk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibS10b29sdGlwX19pdGVtX19jb250ZW50XCI+XG4gIDxoMyBjbGFzcz1cImEtaDMgLWF0dHJpYnV0ZVwiPlxuICAgIDxpbWdcbiAgICAgIFtzcmNdPVwiZGF0YS5pdGVtIHwgdHJhbnNsYXRlSXRlbVRvU3ltYm9sIHwgYXN5bmNcIlxuICAgICAgW2FsdF09XCJkYXRhLml0ZW0ub0NsYXNzIHwgdHJhbnNsYXRlSWQgOiB7IHR5cGU6ICdjbGFzcycsIG91dHB1dDogJ25hbWUnIH0gfCBhc3luY1wiXG4gICAgICBbdGl0bGVdPVwiZGF0YS5pdGVtLm9DbGFzcyB8IHRyYW5zbGF0ZUlkIDogeyB0eXBlOiAnY2xhc3MnLCBvdXRwdXQ6ICduYW1lJyB9IHwgYXN5bmNcIlxuICAgICAgd2lkdGg9XCIzMlwiXG4gICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgIC8+XG4gICAgPHNwYW4gW3RpdGxlXT1cImRhdGEuaXRlbS5vQ2xhc3MgfCB0cmFuc2xhdGVJZCA6IHsgdHlwZTogJ2NsYXNzJywgb3V0cHV0OiAnbmFtZScgfSB8IGFzeW5jXCI+e3tcbiAgICAgIGRhdGEuaXRlbS5vQ2xhc3MgfCB0cmFuc2xhdGVJZCA6IHsgdHlwZTogJ2NsYXNzJywgb3V0cHV0OiAnbmFtZScgfSB8IGFzeW5jXG4gICAgfX08L3NwYW4+XG4gIDwvaDM+XG4gIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGF0dHJpYnV0ZSBvZiBjb250ZXh0LmF0dHJpYnV0ZXNcIj5cbiAgICA8cCBbdGl0bGVdPVwiZ2V0VmFsdWUoYXR0cmlidXRlKSB8IGFzeW5jXCI+XG4gICAgICA8c3Bhbj57eyBnZXRBdHRyaWJ1dGVOYW1lKGF0dHJpYnV0ZSkgfCBhc3luYyB9fTo8L3NwYW4+IHt7IGdldFZhbHVlKGF0dHJpYnV0ZSwgNDApIHwgYXN5bmMgfX1cbiAgICA8L3A+XG4gIDwvbmctY29udGFpbmVyPlxuPC9kaXY+XG4iXX0=
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0cmlidXRlLXRvb2x0aXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvdG9vbHRpcHMvYXR0cmlidXRlL2F0dHJpYnV0ZS10b29sdGlwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL3Rvb2x0aXBzL2F0dHJpYnV0ZS9hdHRyaWJ1dGUtdG9vbHRpcC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxvQkFBb0IsRUFBUyxjQUFjLEVBQW1CLE1BQU0sb0JBQW9CLENBQUM7QUFDbEcsT0FBTyxFQUFFLEdBQUcsRUFBYyxFQUFFLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7OztBQU90RCxNQUFNLE9BQU8seUJBQTBCLFNBQVEsb0JBQW9CO0lBR2pFLFlBQW9CLGVBQWdDLEVBQVUsS0FBaUI7UUFDN0UsS0FBSyxFQUFFLENBQUM7UUFEVSxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFBVSxVQUFLLEdBQUwsS0FBSyxDQUFZO1FBRTdFLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sSUFBSSxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsQ0FBQztRQUNsRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsU0FBaUI7UUFDaEMsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDdkIsR0FBRyxDQUNELENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FDVixPQUFPO2FBQ0osR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFF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OlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCYXNlVG9vbHRpcENvbXBvbmVudCwgQ2xhc3MsIENsYXNzU2VsZWN0b3JzLCBUcmFuc2xhdGVJZFBpcGUgfSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQnO1xuaW1wb3J0IHsgbWFwLCBPYnNlcnZhYmxlLCBvZiwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncHJ5LWF0dHJpYnV0ZS10b29sdGlwJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2F0dHJpYnV0ZS10b29sdGlwLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBBdHRyaWJ1dGVUb29sdGlwQ29tcG9uZW50IGV4dGVuZHMgQmFzZVRvb2x0aXBDb21wb25lbnQge1xuICBwcml2YXRlIGNsYXNzZXMkOiBPYnNlcnZhYmxlPENsYXNzW10+O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdHJhbnNsYXRlSWRQaXBlOiBUcmFuc2xhdGVJZFBpcGUsIHByaXZhdGUgc3RvcmU6IFN0b3JlPGFueT4pIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuY29udGV4dCA9IHRoaXMuY29udGV4dCA/PyB7IGF0dHJpYnV0ZXM6IFtdIH07XG4gICAgdGhpcy5jbGFzc2VzJCA9IHRoaXMuc3RvcmUuc2VsZWN0KENsYXNzU2VsZWN0b3JzLmNsYXNzZXMpO1xuICB9XG5cbiAgZ2V0QXR0cmlidXRlTmFtZShhdHRyaWJ1dGU6IHN0cmluZyk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuY2xhc3NlcyQucGlwZShcbiAgICAgIG1hcChcbiAgICAgICAgKGNsYXNzZXMpID0+XG4gICAgICAgICAgY2xhc3Nlc1xuICAgICAgICAgICAgLm1hcCgoY2xhenopID0+IGNsYXp6LmF0dHJpYnV0ZXMpXG4gICAgICAgICAgICAuZmxhdCgpXG4gICAgICAgICAgICAuZmluZCgoYXR0cikgPT4gYXR0ci5pZCA9PT0gYXR0cmlidXRlKT8ubmFtZSA/PyBhdHRyaWJ1dGVcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgZ2V0QXR0cmlidXRlVGVjaG5pY2FsTmFtZShhdHRyaWJ1dGU6IHN0cmluZyk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuY2xhc3NlcyQucGlwZShcbiAgICAgIG1hcChcbiAgICAgICAgKGNsYXNzZXMpID0+XG4gICAgICAgICAgY2xhc3Nlc1xuICAgICAgICAgICAgLm1hcCgoY2xhenopID0+IGNsYXp6LmF0dHJpYnV0ZXMpXG4gICAgICAgICAgICAuZmxhdCgpXG4gICAgICAgICAgICAuZmluZCgoYXR0cikgPT4gYXR0ci5pZCA9PT0gYXR0cmlidXRlKT8udGVjaG5pY2FsTmFtZSA/PyBhdHRyaWJ1dGVcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgZ2V0VmFsdWUoYXR0cmlidXRlOiBzdHJpbmcsIGxpbWl0ID0gOTk5OSk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0QXR0cmlidXRlVGVjaG5pY2FsTmFtZShhdHRyaWJ1dGUpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKGF0dHJpYnV0ZTogc3RyaW5nKSA9PiB0aGlzLl9nZXRWYWx1ZShhdHRyaWJ1dGUpKSxcbiAgICAgIG1hcCgodmFsdWUpID0+IHtcbiAgICAgICAgc3dpdGNoICh0eXBlb2YgdmFsdWUpIHtcbiAgICAgICAgICBjYXNlICd1bmRlZmluZWQnOlxuICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICAgIGNhc2UgJ251bWJlcic6XG4gICAgICAgICAgICByZXR1cm4gdmFsdWUudG9TdHJpbmcoKTtcbiAgICAgICAgICBjYXNlICdzdHJpbmcnOlxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBKU09OLnN0cmluZ2lmeSh2YWx1ZSk7XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0Lmxlbmd0aCA+IGxpbWl0ID8gYCR7cmVzdWx0LnN1YnN0cmluZygwLCBsaW1pdCl9Li4uYCA6IHJlc3VsdDtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgX2dldFZhbHVlKGF0dHJpYnV0ZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxzdHJpbmcgfCB1bmRlZmluZWQgfCBudW1iZXI+IHtcbiAgICBpZiAoIXRoaXMuZGF0YS5pdGVtLnByb3BlcnRpZXMpIHtcbiAgICAgIC8vIFRoaXMgaXMgZm9yIFByb3ZvbHktbGlrZSBpdGVtc1xuICAgICAgc3dpdGNoIChhdHRyaWJ1dGUpIHtcbiAgICAgICAgY2FzZSAnaWQnOlxuICAgICAgICAgIHJldHVybiBvZih0aGlzLmRhdGEuaXRlbVthdHRyaWJ1dGVdKTtcbiAgICAgICAgY2FzZSAnb0NsYXNzJzpcbiAgICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVJZFBpcGUudHJhbnNmb3JtKHRoaXMuZGF0YS5pdGVtW2F0dHJpYnV0ZV0sIHtcbiAgICAgICAgICAgIHR5cGU6ICdjbGFzcycsXG4gICAgICAgICAgICBvdXRwdXQ6ICduYW1lJ1xuICAgICAgICAgIH0pIGFzIE9ic2VydmFibGU8c3RyaW5nPjtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICByZXR1cm4gb2YodGhpcy5kYXRhLml0ZW0uYXR0cmlidXRlc1thdHRyaWJ1dGVdPy52YWx1ZSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFRoaXMgaXMgZm9yIG90aGVyIGl0ZW1zLCBsaWtlIFdNU0ZlYXR1cmVzXG4gICAgICByZXR1cm4gb2YoXG4gICAgICAgIHRoaXMuZGF0YS5pdGVtLnByb3BlcnRpZXMuZmluZCgocHJvcDogeyBrZXk6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9KSA9PiBwcm9wLmtleSA9PT0gYXR0cmlidXRlKT8udmFsdWVcbiAgICAgICk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibS10b29sdGlwX19pdGVtX19jb250ZW50XCI+XG4gIDxoMyBjbGFzcz1cImEtaDMgLWF0dHJpYnV0ZVwiPlxuICAgIDxpbWdcbiAgICAgIFtzcmNdPVwiZGF0YS5pdGVtIHwgdHJhbnNsYXRlSXRlbVRvU3ltYm9sIHwgYXN5bmNcIlxuICAgICAgW2FsdF09XCJkYXRhLml0ZW0ub0NsYXNzIHwgdHJhbnNsYXRlSWQgOiB7IHR5cGU6ICdjbGFzcycsIG91dHB1dDogJ25hbWUnIH0gfCBhc3luY1wiXG4gICAgICBbdGl0bGVdPVwiZGF0YS5pdGVtLm9DbGFzcyB8IHRyYW5zbGF0ZUlkIDogeyB0eXBlOiAnY2xhc3MnLCBvdXRwdXQ6ICduYW1lJyB9IHwgYXN5bmNcIlxuICAgICAgd2lkdGg9XCIzMlwiXG4gICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgIC8+XG4gICAgPHNwYW4gW3RpdGxlXT1cImRhdGEuaXRlbS5vQ2xhc3MgfCB0cmFuc2xhdGVJZCA6IHsgdHlwZTogJ2NsYXNzJywgb3V0cHV0OiAnbmFtZScgfSB8IGFzeW5jXCI+e3tcbiAgICAgIGRhdGEuaXRlbS5vQ2xhc3MgfCB0cmFuc2xhdGVJZCA6IHsgdHlwZTogJ2NsYXNzJywgb3V0cHV0OiAnbmFtZScgfSB8IGFzeW5jXG4gICAgfX08L3NwYW4+XG4gIDwvaDM+XG4gIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGF0dHJpYnV0ZSBvZiBjb250ZXh0LmF0dHJpYnV0ZXNcIj5cbiAgICA8cCBbdGl0bGVdPVwiZ2V0VmFsdWUoYXR0cmlidXRlKSB8IGFzeW5jXCI+XG4gICAgICA8c3Bhbj57eyBnZXRBdHRyaWJ1dGVOYW1lKGF0dHJpYnV0ZSkgfCBhc3luYyB9fTo8L3NwYW4+IHt7IGdldFZhbHVlKGF0dHJpYnV0ZSwgNDApIHwgYXN5bmMgfX1cbiAgICA8L3A+XG4gIDwvbmctY29udGFpbmVyPlxuPC9kaXY+XG4iXX0=