@vendure/admin-ui 2.1.6 → 2.2.0-next.1

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 (78) hide show
  1. package/catalog/catalog.module.d.ts +4 -3
  2. package/catalog/components/create-facet-value-dialog/create-facet-value-dialog.component.d.ts +19 -0
  3. package/catalog/components/facet-detail/facet-detail.component.d.ts +9 -12
  4. package/catalog/components/product-variant-list/product-variant-list.component.d.ts +2 -2
  5. package/catalog/public_api.d.ts +1 -0
  6. package/core/common/generated-types.d.ts +104 -43
  7. package/core/common/utilities/interpolate-description.d.ts +1 -1
  8. package/core/common/version.d.ts +1 -1
  9. package/core/components/app-shell/app-shell.component.d.ts +1 -0
  10. package/core/components/ui-language-switcher-dialog/ui-language-switcher-dialog.component.d.ts +9 -3
  11. package/core/core.module.d.ts +1 -1
  12. package/core/providers/currency/currency.service.d.ts +10 -0
  13. package/core/providers/i18n/i18n.service.d.ts +6 -0
  14. package/core/public_api.d.ts +1 -0
  15. package/core/shared/components/chart/chart.component.d.ts +3 -0
  16. package/core/shared/components/chart/tooltip-plugin.d.ts +16 -1
  17. package/core/shared/components/configurable-input/configurable-input.component.d.ts +3 -0
  18. package/core/shared/components/currency-input/currency-input.component.d.ts +6 -3
  19. package/core/shared/pipes/locale-currency.pipe.d.ts +5 -2
  20. package/esm2022/catalog/catalog.module.mjs +17 -3
  21. package/esm2022/catalog/components/create-facet-value-dialog/create-facet-value-dialog.component.mjs +44 -0
  22. package/esm2022/catalog/components/facet-detail/facet-detail.component.mjs +85 -120
  23. package/esm2022/catalog/components/facet-list/facet-list.component.mjs +5 -2
  24. package/esm2022/catalog/components/product-list/product-list.component.mjs +26 -14
  25. package/esm2022/catalog/components/product-variant-list/product-variant-list.component.mjs +36 -15
  26. package/esm2022/catalog/components/variant-price-detail/variant-price-detail.component.mjs +1 -1
  27. package/esm2022/catalog/public_api.mjs +2 -1
  28. package/esm2022/core/common/generated-types.mjs +5 -5
  29. package/esm2022/core/common/utilities/interpolate-description.mjs +3 -3
  30. package/esm2022/core/common/version.mjs +2 -2
  31. package/esm2022/core/components/app-shell/app-shell.component.mjs +15 -10
  32. package/esm2022/core/components/ui-language-switcher-dialog/ui-language-switcher-dialog.component.mjs +42 -273
  33. package/esm2022/core/core.module.mjs +13 -5
  34. package/esm2022/core/data/definitions/facet-definitions.mjs +2 -2
  35. package/esm2022/core/data/definitions/settings-definitions.mjs +2 -1
  36. package/esm2022/core/providers/currency/currency.service.mjs +21 -0
  37. package/esm2022/core/providers/i18n/i18n.service.mjs +11 -1
  38. package/esm2022/core/providers/localization/localization.service.mjs +4 -4
  39. package/esm2022/core/public_api.mjs +2 -1
  40. package/esm2022/core/shared/components/chart/chart.component.mjs +12 -5
  41. package/esm2022/core/shared/components/chart/tooltip-plugin.mjs +6 -14
  42. package/esm2022/core/shared/components/configurable-input/configurable-input.component.mjs +15 -13
  43. package/esm2022/core/shared/components/currency-input/currency-input.component.mjs +17 -14
  44. package/esm2022/core/shared/pipes/locale-currency.pipe.mjs +11 -7
  45. package/esm2022/dashboard/widgets/order-summary-widget/order-summary-widget.component.mjs +4 -4
  46. package/esm2022/react/react-hooks/use-query.mjs +61 -1
  47. package/fesm2022/vendure-admin-ui-catalog.mjs +197 -148
  48. package/fesm2022/vendure-admin-ui-catalog.mjs.map +1 -1
  49. package/fesm2022/vendure-admin-ui-core.mjs +130 -317
  50. package/fesm2022/vendure-admin-ui-core.mjs.map +1 -1
  51. package/fesm2022/vendure-admin-ui-dashboard.mjs +3 -3
  52. package/fesm2022/vendure-admin-ui-dashboard.mjs.map +1 -1
  53. package/fesm2022/vendure-admin-ui-react.mjs +61 -1
  54. package/fesm2022/vendure-admin-ui-react.mjs.map +1 -1
  55. package/package.json +14 -14
  56. package/react/react-hooks/use-query.d.ts +59 -0
  57. package/settings/components/administrator-list/administrator-list.component.d.ts +2 -0
  58. package/settings/components/stock-location-list/stock-location-list.component.d.ts +1 -1
  59. package/static/i18n-messages/ar.json +1 -2
  60. package/static/i18n-messages/cs.json +1 -2
  61. package/static/i18n-messages/de.json +1 -2
  62. package/static/i18n-messages/en.json +1 -2
  63. package/static/i18n-messages/es.json +1 -2
  64. package/static/i18n-messages/fa.json +3 -4
  65. package/static/i18n-messages/fr.json +1 -2
  66. package/static/i18n-messages/he.json +1 -2
  67. package/static/i18n-messages/hr.json +1 -2
  68. package/static/i18n-messages/it.json +2 -3
  69. package/static/i18n-messages/nb.json +795 -0
  70. package/static/i18n-messages/ne.json +2 -3
  71. package/static/i18n-messages/pl.json +1 -2
  72. package/static/i18n-messages/pt_BR.json +1 -1
  73. package/static/i18n-messages/pt_PT.json +1 -2
  74. package/static/i18n-messages/ru.json +1 -2
  75. package/static/i18n-messages/uk.json +1 -2
  76. package/static/i18n-messages/zh_Hans.json +1 -2
  77. package/static/i18n-messages/zh_Hant.json +1 -2
  78. package/static/vendure-ui-config.json +262 -6
@@ -2,8 +2,10 @@ import { ChangeDetectionStrategy, Component, Input, ViewChild, } from '@angular/
2
2
  import { easings, LineChart } from 'chartist';
3
3
  import { tooltipPlugin } from './tooltip-plugin';
4
4
  import * as i0 from "@angular/core";
5
+ import * as i1 from "../../../providers/currency/currency.service";
5
6
  export class ChartComponent {
6
- constructor() {
7
+ constructor(currencyService) {
8
+ this.currencyService = currencyService;
7
9
  this.entries = [];
8
10
  this.options = {};
9
11
  }
@@ -23,7 +25,12 @@ export class ChartComponent {
23
25
  showLabel: false,
24
26
  offset: 1,
25
27
  },
26
- plugins: [tooltipPlugin()],
28
+ plugins: [
29
+ tooltipPlugin({
30
+ currencyPrecision: this.currencyService.precision,
31
+ currencyPrecisionFactor: this.currencyService.precisionFactor,
32
+ }),
33
+ ],
27
34
  ...this.options,
28
35
  });
29
36
  this.chart.on('draw', data => {
@@ -76,13 +83,13 @@ export class ChartComponent {
76
83
  ];
77
84
  return { labels, series };
78
85
  }
79
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: ChartComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
86
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: ChartComponent, deps: [{ token: i1.CurrencyService }], target: i0.ɵɵFactoryTarget.Component }); }
80
87
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: ChartComponent, selector: "vdr-chart", inputs: { entries: "entries", options: "options" }, viewQueries: [{ propertyName: "chartDivRef", first: true, predicate: ["chartDiv"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div id=\"chart\" style=\"height: 20vh; min-height: 300px;\" #chartDiv></div>\r\n", styles: ["::ng-deep .ct-label{fill:#0006;color:#0006;font-size:.75rem;line-height:1}::ng-deep .ct-chart-line .ct-label,::ng-deep .ct-chart-bar .ct-label{display:flex}::ng-deep .ct-chart-pie .ct-label,::ng-deep .ct-chart-donut .ct-label{dominant-baseline:central}::ng-deep .ct-label.ct-horizontal.ct-start{align-items:flex-end;justify-content:flex-start;text-align:left}::ng-deep .ct-label.ct-horizontal.ct-end{align-items:flex-start;justify-content:flex-start;text-align:left}::ng-deep .ct-label.ct-vertical.ct-start{align-items:flex-end;justify-content:flex-end;text-align:right}::ng-deep .ct-label.ct-vertical.ct-end{align-items:flex-end;justify-content:flex-start;text-align:left}::ng-deep .ct-chart-bar .ct-label.ct-horizontal.ct-start{align-items:flex-end;justify-content:center;text-align:center}::ng-deep .ct-chart-bar .ct-label.ct-horizontal.ct-end{align-items:flex-start;justify-content:center;text-align:center}::ng-deep .ct-chart-bar.ct-horizontal-bars .ct-label.ct-horizontal.ct-start{align-items:flex-end;justify-content:flex-start;text-align:left}::ng-deep .ct-chart-bar.ct-horizontal-bars .ct-label.ct-horizontal.ct-end{align-items:flex-start;justify-content:flex-start;text-align:left}::ng-deep .ct-chart-bar.ct-horizontal-bars .ct-label.ct-vertical.ct-start{align-items:center;justify-content:flex-end;text-align:right}::ng-deep .ct-chart-bar.ct-horizontal-bars .ct-label.ct-vertical.ct-end{align-items:center;justify-content:flex-start;text-align:left}::ng-deep .ct-grid{stroke:#0003;stroke-width:1px;stroke-dasharray:2px}::ng-deep .ct-grid-background{fill:none}::ng-deep .ct-point{stroke-width:10px;stroke-linecap:round}::ng-deep .ct-line{fill:none;stroke-width:2px}::ng-deep .ct-area{stroke:none;fill-opacity:.5}::ng-deep .ct-bar{fill:none;stroke-width:10px}::ng-deep .ct-slice-donut{fill:none;stroke-width:60px}::ng-deep .ct-series-a .ct-point,::ng-deep .ct-series-a .ct-line,::ng-deep .ct-series-a .ct-bar,::ng-deep .ct-series-a .ct-slice-donut{stroke:var(--color-primary-300)}::ng-deep .ct-series-a .ct-slice-pie,::ng-deep .ct-series-a .ct-area{fill:var(--color-primary-300)}::ng-deep .ct-series-b .ct-point,::ng-deep .ct-series-b .ct-line,::ng-deep .ct-series-b .ct-bar,::ng-deep .ct-series-b .ct-slice-donut{stroke:var(--color-accent-300)}::ng-deep .ct-series-b .ct-slice-pie,::ng-deep .ct-series-b .ct-area{fill:var(--color-accent-300)}::ng-deep .ct-series-c .ct-point,::ng-deep .ct-series-c .ct-line,::ng-deep .ct-series-c .ct-bar,::ng-deep .ct-series-c .ct-slice-donut{stroke:var(--color-primary-800)}::ng-deep .ct-series-c .ct-slice-pie,::ng-deep .ct-series-c .ct-area{fill:var(--color-primary-800)}::ng-deep .ct-series-d .ct-point,::ng-deep .ct-series-d .ct-line,::ng-deep .ct-series-d .ct-bar,::ng-deep .ct-series-d .ct-slice-donut{stroke:var(--color-accent-800)}::ng-deep .ct-series-d .ct-slice-pie,::ng-deep .ct-series-d .ct-area{fill:var(--color-accent-800)}::ng-deep .ct-series-e .ct-point,::ng-deep .ct-series-e .ct-line,::ng-deep .ct-series-e .ct-bar,::ng-deep .ct-series-e .ct-slice-donut{stroke:#453d3f}::ng-deep .ct-series-e .ct-slice-pie,::ng-deep .ct-series-e .ct-area{fill:#453d3f}::ng-deep .ct-series-f .ct-point,::ng-deep .ct-series-f .ct-line,::ng-deep .ct-series-f .ct-bar,::ng-deep .ct-series-f .ct-slice-donut{stroke:#59922b}::ng-deep .ct-series-f .ct-slice-pie,::ng-deep .ct-series-f .ct-area{fill:#59922b}::ng-deep .ct-series-g .ct-point,::ng-deep .ct-series-g .ct-line,::ng-deep .ct-series-g .ct-bar,::ng-deep .ct-series-g .ct-slice-donut{stroke:#0544d3}::ng-deep .ct-series-g .ct-slice-pie,::ng-deep .ct-series-g .ct-area{fill:#0544d3}::ng-deep .ct-series-h .ct-point,::ng-deep .ct-series-h .ct-line,::ng-deep .ct-series-h .ct-bar,::ng-deep .ct-series-h .ct-slice-donut{stroke:#6b0392}::ng-deep .ct-series-h .ct-slice-pie,::ng-deep .ct-series-h .ct-area{fill:#6b0392}::ng-deep .ct-series-i .ct-point,::ng-deep .ct-series-i .ct-line,::ng-deep .ct-series-i .ct-bar,::ng-deep .ct-series-i .ct-slice-donut{stroke:#e6805e}::ng-deep .ct-series-i .ct-slice-pie,::ng-deep .ct-series-i .ct-area{fill:#e6805e}::ng-deep .ct-series-j .ct-point,::ng-deep .ct-series-j .ct-line,::ng-deep .ct-series-j .ct-bar,::ng-deep .ct-series-j .ct-slice-donut{stroke:#dda458}::ng-deep .ct-series-j .ct-slice-pie,::ng-deep .ct-series-j .ct-area{fill:#dda458}::ng-deep .ct-series-k .ct-point,::ng-deep .ct-series-k .ct-line,::ng-deep .ct-series-k .ct-bar,::ng-deep .ct-series-k .ct-slice-donut{stroke:#eacf7d}::ng-deep .ct-series-k .ct-slice-pie,::ng-deep .ct-series-k .ct-area{fill:#eacf7d}::ng-deep .ct-series-l .ct-point,::ng-deep .ct-series-l .ct-line,::ng-deep .ct-series-l .ct-bar,::ng-deep .ct-series-l .ct-slice-donut{stroke:#86797d}::ng-deep .ct-series-l .ct-slice-pie,::ng-deep .ct-series-l .ct-area{fill:#86797d}::ng-deep .ct-series-m .ct-point,::ng-deep .ct-series-m .ct-line,::ng-deep .ct-series-m .ct-bar,::ng-deep .ct-series-m .ct-slice-donut{stroke:#b2c326}::ng-deep .ct-series-m .ct-slice-pie,::ng-deep .ct-series-m .ct-area{fill:#b2c326}::ng-deep .ct-series-n .ct-point,::ng-deep .ct-series-n .ct-line,::ng-deep .ct-series-n .ct-bar,::ng-deep .ct-series-n .ct-slice-donut{stroke:#6188e2}::ng-deep .ct-series-n .ct-slice-pie,::ng-deep .ct-series-n .ct-area{fill:#6188e2}::ng-deep .ct-series-o .ct-point,::ng-deep .ct-series-o .ct-line,::ng-deep .ct-series-o .ct-bar,::ng-deep .ct-series-o .ct-slice-donut{stroke:#a748ca}::ng-deep .ct-series-o .ct-slice-pie,::ng-deep .ct-series-o .ct-area{fill:#a748ca}::ng-deep .ct-square{display:block;position:relative;width:100%}::ng-deep .ct-square:before{display:block;float:left;content:\"\";width:0;height:0;padding-bottom:100%}::ng-deep .ct-square:after{content:\"\";display:table;clear:both}::ng-deep .ct-square>svg{display:block;position:absolute;top:0;left:0}::ng-deep .ct-minor-second{display:block;position:relative;width:100%}::ng-deep .ct-minor-second:before{display:block;float:left;content:\"\";width:0;height:0;padding-bottom:93.75%}::ng-deep .ct-minor-second:after{content:\"\";display:table;clear:both}::ng-deep .ct-minor-second>svg{display:block;position:absolute;top:0;left:0}::ng-deep .ct-major-second{display:block;position:relative;width:100%}::ng-deep .ct-major-second:before{display:block;float:left;content:\"\";width:0;height:0;padding-bottom:88.8888888889%}::ng-deep .ct-major-second:after{content:\"\";display:table;clear:both}::ng-deep .ct-major-second>svg{display:block;position:absolute;top:0;left:0}::ng-deep .ct-minor-third{display:block;position:relative;width:100%}::ng-deep .ct-minor-third:before{display:block;float:left;content:\"\";width:0;height:0;padding-bottom:83.3333333333%}::ng-deep .ct-minor-third:after{content:\"\";display:table;clear:both}::ng-deep .ct-minor-third>svg{display:block;position:absolute;top:0;left:0}::ng-deep .ct-major-third{display:block;position:relative;width:100%}::ng-deep .ct-major-third:before{display:block;float:left;content:\"\";width:0;height:0;padding-bottom:80%}::ng-deep .ct-major-third:after{content:\"\";display:table;clear:both}::ng-deep .ct-major-third>svg{display:block;position:absolute;top:0;left:0}::ng-deep .ct-perfect-fourth{display:block;position:relative;width:100%}::ng-deep .ct-perfect-fourth:before{display:block;float:left;content:\"\";width:0;height:0;padding-bottom:75%}::ng-deep .ct-perfect-fourth:after{content:\"\";display:table;clear:both}::ng-deep .ct-perfect-fourth>svg{display:block;position:absolute;top:0;left:0}::ng-deep .ct-perfect-fifth{display:block;position:relative;width:100%}::ng-deep .ct-perfect-fifth:before{display:block;float:left;content:\"\";width:0;height:0;padding-bottom:66.6666666667%}::ng-deep .ct-perfect-fifth:after{content:\"\";display:table;clear:both}::ng-deep .ct-perfect-fifth>svg{display:block;position:absolute;top:0;left:0}::ng-deep .ct-minor-sixth{display:block;position:relative;width:100%}::ng-deep .ct-minor-sixth:before{display:block;float:left;content:\"\";width:0;height:0;padding-bottom:62.5%}::ng-deep .ct-minor-sixth:after{content:\"\";display:table;clear:both}::ng-deep .ct-minor-sixth>svg{display:block;position:absolute;top:0;left:0}::ng-deep .ct-golden-section{display:block;position:relative;width:100%}::ng-deep .ct-golden-section:before{display:block;float:left;content:\"\";width:0;height:0;padding-bottom:61.804697157%}::ng-deep .ct-golden-section:after{content:\"\";display:table;clear:both}::ng-deep .ct-golden-section>svg{display:block;position:absolute;top:0;left:0}::ng-deep .ct-major-sixth{display:block;position:relative;width:100%}::ng-deep .ct-major-sixth:before{display:block;float:left;content:\"\";width:0;height:0;padding-bottom:60%}::ng-deep .ct-major-sixth:after{content:\"\";display:table;clear:both}::ng-deep .ct-major-sixth>svg{display:block;position:absolute;top:0;left:0}::ng-deep .ct-minor-seventh{display:block;position:relative;width:100%}::ng-deep .ct-minor-seventh:before{display:block;float:left;content:\"\";width:0;height:0;padding-bottom:56.25%}::ng-deep .ct-minor-seventh:after{content:\"\";display:table;clear:both}::ng-deep .ct-minor-seventh>svg{display:block;position:absolute;top:0;left:0}::ng-deep .ct-major-seventh{display:block;position:relative;width:100%}::ng-deep .ct-major-seventh:before{display:block;float:left;content:\"\";width:0;height:0;padding-bottom:53.3333333333%}::ng-deep .ct-major-seventh:after{content:\"\";display:table;clear:both}::ng-deep .ct-major-seventh>svg{display:block;position:absolute;top:0;left:0}::ng-deep .ct-octave{display:block;position:relative;width:100%}::ng-deep .ct-octave:before{display:block;float:left;content:\"\";width:0;height:0;padding-bottom:50%}::ng-deep .ct-octave:after{content:\"\";display:table;clear:both}::ng-deep .ct-octave>svg{display:block;position:absolute;top:0;left:0}::ng-deep .ct-major-tenth{display:block;position:relative;width:100%}::ng-deep .ct-major-tenth:before{display:block;float:left;content:\"\";width:0;height:0;padding-bottom:40%}::ng-deep .ct-major-tenth:after{content:\"\";display:table;clear:both}::ng-deep .ct-major-tenth>svg{display:block;position:absolute;top:0;left:0}::ng-deep .ct-major-eleventh{display:block;position:relative;width:100%}::ng-deep .ct-major-eleventh:before{display:block;float:left;content:\"\";width:0;height:0;padding-bottom:37.5%}::ng-deep .ct-major-eleventh:after{content:\"\";display:table;clear:both}::ng-deep .ct-major-eleventh>svg{display:block;position:absolute;top:0;left:0}::ng-deep .ct-major-twelfth{display:block;position:relative;width:100%}::ng-deep .ct-major-twelfth:before{display:block;float:left;content:\"\";width:0;height:0;padding-bottom:33.3333333333%}::ng-deep .ct-major-twelfth:after{content:\"\";display:table;clear:both}::ng-deep .ct-major-twelfth>svg{display:block;position:absolute;top:0;left:0}::ng-deep .ct-double-octave{display:block;position:relative;width:100%}::ng-deep .ct-double-octave:before{display:block;float:left;content:\"\";width:0;height:0;padding-bottom:25%}::ng-deep .ct-double-octave:after{content:\"\";display:table;clear:both}::ng-deep .ct-double-octave>svg{display:block;position:absolute;top:0;left:0}::ng-deep .ct-series-a .ct-slice-pie,::ng-deep .ct-series-a .ct-area{fill:url(#gradient)}::ng-deep .ct-point{opacity:0;transition:opacity .1s}::ng-deep .chartist-tooltip{position:absolute;border-radius:var(--border-radius);border:1px solid var(--color-weight-100);padding:4px;opacity:0;transition:opacity .1s,top .1s,left .1s;font-size:12px;background:var(--color-component-bg-100);box-shadow:0 2px 4px #0000000d;text-align:center}::ng-deep .chartist-tooltip.tooltip-show{opacity:.9}::ng-deep .ct-tooltip-hover{opacity:1}::ng-deep .tooltip-date{color:var(--color-text-200)}::ng-deep .tooltip-value{color:var(--color-primary-600);font-size:14px;text-align:center}:host{display:block;padding-bottom:28px}#chart{position:relative}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
81
88
  }
82
89
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: ChartComponent, decorators: [{
83
90
  type: Component,
84
91
  args: [{ selector: 'vdr-chart', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div id=\"chart\" style=\"height: 20vh; min-height: 300px;\" #chartDiv></div>\r\n", styles: ["::ng-deep .ct-label{fill:#0006;color:#0006;font-size:.75rem;line-height:1}::ng-deep .ct-chart-line .ct-label,::ng-deep .ct-chart-bar .ct-label{display:flex}::ng-deep .ct-chart-pie .ct-label,::ng-deep .ct-chart-donut .ct-label{dominant-baseline:central}::ng-deep .ct-label.ct-horizontal.ct-start{align-items:flex-end;justify-content:flex-start;text-align:left}::ng-deep .ct-label.ct-horizontal.ct-end{align-items:flex-start;justify-content:flex-start;text-align:left}::ng-deep .ct-label.ct-vertical.ct-start{align-items:flex-end;justify-content:flex-end;text-align:right}::ng-deep .ct-label.ct-vertical.ct-end{align-items:flex-end;justify-content:flex-start;text-align:left}::ng-deep .ct-chart-bar .ct-label.ct-horizontal.ct-start{align-items:flex-end;justify-content:center;text-align:center}::ng-deep .ct-chart-bar .ct-label.ct-horizontal.ct-end{align-items:flex-start;justify-content:center;text-align:center}::ng-deep .ct-chart-bar.ct-horizontal-bars .ct-label.ct-horizontal.ct-start{align-items:flex-end;justify-content:flex-start;text-align:left}::ng-deep .ct-chart-bar.ct-horizontal-bars .ct-label.ct-horizontal.ct-end{align-items:flex-start;justify-content:flex-start;text-align:left}::ng-deep .ct-chart-bar.ct-horizontal-bars .ct-label.ct-vertical.ct-start{align-items:center;justify-content:flex-end;text-align:right}::ng-deep .ct-chart-bar.ct-horizontal-bars .ct-label.ct-vertical.ct-end{align-items:center;justify-content:flex-start;text-align:left}::ng-deep .ct-grid{stroke:#0003;stroke-width:1px;stroke-dasharray:2px}::ng-deep .ct-grid-background{fill:none}::ng-deep .ct-point{stroke-width:10px;stroke-linecap:round}::ng-deep .ct-line{fill:none;stroke-width:2px}::ng-deep .ct-area{stroke:none;fill-opacity:.5}::ng-deep .ct-bar{fill:none;stroke-width:10px}::ng-deep .ct-slice-donut{fill:none;stroke-width:60px}::ng-deep .ct-series-a .ct-point,::ng-deep .ct-series-a .ct-line,::ng-deep .ct-series-a .ct-bar,::ng-deep .ct-series-a .ct-slice-donut{stroke:var(--color-primary-300)}::ng-deep .ct-series-a .ct-slice-pie,::ng-deep .ct-series-a .ct-area{fill:var(--color-primary-300)}::ng-deep .ct-series-b .ct-point,::ng-deep .ct-series-b .ct-line,::ng-deep .ct-series-b .ct-bar,::ng-deep .ct-series-b .ct-slice-donut{stroke:var(--color-accent-300)}::ng-deep .ct-series-b .ct-slice-pie,::ng-deep .ct-series-b .ct-area{fill:var(--color-accent-300)}::ng-deep .ct-series-c .ct-point,::ng-deep .ct-series-c .ct-line,::ng-deep .ct-series-c .ct-bar,::ng-deep .ct-series-c .ct-slice-donut{stroke:var(--color-primary-800)}::ng-deep .ct-series-c .ct-slice-pie,::ng-deep .ct-series-c .ct-area{fill:var(--color-primary-800)}::ng-deep .ct-series-d .ct-point,::ng-deep .ct-series-d .ct-line,::ng-deep .ct-series-d .ct-bar,::ng-deep .ct-series-d .ct-slice-donut{stroke:var(--color-accent-800)}::ng-deep .ct-series-d .ct-slice-pie,::ng-deep .ct-series-d .ct-area{fill:var(--color-accent-800)}::ng-deep .ct-series-e .ct-point,::ng-deep .ct-series-e .ct-line,::ng-deep .ct-series-e .ct-bar,::ng-deep .ct-series-e .ct-slice-donut{stroke:#453d3f}::ng-deep .ct-series-e .ct-slice-pie,::ng-deep .ct-series-e .ct-area{fill:#453d3f}::ng-deep .ct-series-f .ct-point,::ng-deep .ct-series-f .ct-line,::ng-deep .ct-series-f .ct-bar,::ng-deep .ct-series-f .ct-slice-donut{stroke:#59922b}::ng-deep .ct-series-f .ct-slice-pie,::ng-deep .ct-series-f .ct-area{fill:#59922b}::ng-deep .ct-series-g .ct-point,::ng-deep .ct-series-g .ct-line,::ng-deep .ct-series-g .ct-bar,::ng-deep .ct-series-g .ct-slice-donut{stroke:#0544d3}::ng-deep .ct-series-g .ct-slice-pie,::ng-deep .ct-series-g .ct-area{fill:#0544d3}::ng-deep .ct-series-h .ct-point,::ng-deep .ct-series-h .ct-line,::ng-deep .ct-series-h .ct-bar,::ng-deep .ct-series-h .ct-slice-donut{stroke:#6b0392}::ng-deep .ct-series-h .ct-slice-pie,::ng-deep .ct-series-h .ct-area{fill:#6b0392}::ng-deep .ct-series-i .ct-point,::ng-deep .ct-series-i .ct-line,::ng-deep .ct-series-i .ct-bar,::ng-deep .ct-series-i .ct-slice-donut{stroke:#e6805e}::ng-deep .ct-series-i .ct-slice-pie,::ng-deep .ct-series-i .ct-area{fill:#e6805e}::ng-deep .ct-series-j .ct-point,::ng-deep .ct-series-j .ct-line,::ng-deep .ct-series-j .ct-bar,::ng-deep .ct-series-j .ct-slice-donut{stroke:#dda458}::ng-deep .ct-series-j .ct-slice-pie,::ng-deep .ct-series-j .ct-area{fill:#dda458}::ng-deep .ct-series-k .ct-point,::ng-deep .ct-series-k .ct-line,::ng-deep .ct-series-k .ct-bar,::ng-deep .ct-series-k .ct-slice-donut{stroke:#eacf7d}::ng-deep .ct-series-k .ct-slice-pie,::ng-deep .ct-series-k .ct-area{fill:#eacf7d}::ng-deep .ct-series-l .ct-point,::ng-deep .ct-series-l .ct-line,::ng-deep .ct-series-l .ct-bar,::ng-deep .ct-series-l .ct-slice-donut{stroke:#86797d}::ng-deep .ct-series-l .ct-slice-pie,::ng-deep .ct-series-l .ct-area{fill:#86797d}::ng-deep .ct-series-m .ct-point,::ng-deep .ct-series-m .ct-line,::ng-deep .ct-series-m .ct-bar,::ng-deep .ct-series-m .ct-slice-donut{stroke:#b2c326}::ng-deep .ct-series-m .ct-slice-pie,::ng-deep .ct-series-m .ct-area{fill:#b2c326}::ng-deep .ct-series-n .ct-point,::ng-deep .ct-series-n .ct-line,::ng-deep .ct-series-n .ct-bar,::ng-deep .ct-series-n .ct-slice-donut{stroke:#6188e2}::ng-deep .ct-series-n .ct-slice-pie,::ng-deep .ct-series-n .ct-area{fill:#6188e2}::ng-deep .ct-series-o .ct-point,::ng-deep .ct-series-o .ct-line,::ng-deep .ct-series-o .ct-bar,::ng-deep .ct-series-o .ct-slice-donut{stroke:#a748ca}::ng-deep .ct-series-o .ct-slice-pie,::ng-deep .ct-series-o .ct-area{fill:#a748ca}::ng-deep .ct-square{display:block;position:relative;width:100%}::ng-deep .ct-square:before{display:block;float:left;content:\"\";width:0;height:0;padding-bottom:100%}::ng-deep .ct-square:after{content:\"\";display:table;clear:both}::ng-deep .ct-square>svg{display:block;position:absolute;top:0;left:0}::ng-deep .ct-minor-second{display:block;position:relative;width:100%}::ng-deep .ct-minor-second:before{display:block;float:left;content:\"\";width:0;height:0;padding-bottom:93.75%}::ng-deep .ct-minor-second:after{content:\"\";display:table;clear:both}::ng-deep .ct-minor-second>svg{display:block;position:absolute;top:0;left:0}::ng-deep .ct-major-second{display:block;position:relative;width:100%}::ng-deep .ct-major-second:before{display:block;float:left;content:\"\";width:0;height:0;padding-bottom:88.8888888889%}::ng-deep .ct-major-second:after{content:\"\";display:table;clear:both}::ng-deep .ct-major-second>svg{display:block;position:absolute;top:0;left:0}::ng-deep .ct-minor-third{display:block;position:relative;width:100%}::ng-deep .ct-minor-third:before{display:block;float:left;content:\"\";width:0;height:0;padding-bottom:83.3333333333%}::ng-deep .ct-minor-third:after{content:\"\";display:table;clear:both}::ng-deep .ct-minor-third>svg{display:block;position:absolute;top:0;left:0}::ng-deep .ct-major-third{display:block;position:relative;width:100%}::ng-deep .ct-major-third:before{display:block;float:left;content:\"\";width:0;height:0;padding-bottom:80%}::ng-deep .ct-major-third:after{content:\"\";display:table;clear:both}::ng-deep .ct-major-third>svg{display:block;position:absolute;top:0;left:0}::ng-deep .ct-perfect-fourth{display:block;position:relative;width:100%}::ng-deep .ct-perfect-fourth:before{display:block;float:left;content:\"\";width:0;height:0;padding-bottom:75%}::ng-deep .ct-perfect-fourth:after{content:\"\";display:table;clear:both}::ng-deep .ct-perfect-fourth>svg{display:block;position:absolute;top:0;left:0}::ng-deep .ct-perfect-fifth{display:block;position:relative;width:100%}::ng-deep .ct-perfect-fifth:before{display:block;float:left;content:\"\";width:0;height:0;padding-bottom:66.6666666667%}::ng-deep .ct-perfect-fifth:after{content:\"\";display:table;clear:both}::ng-deep .ct-perfect-fifth>svg{display:block;position:absolute;top:0;left:0}::ng-deep .ct-minor-sixth{display:block;position:relative;width:100%}::ng-deep .ct-minor-sixth:before{display:block;float:left;content:\"\";width:0;height:0;padding-bottom:62.5%}::ng-deep .ct-minor-sixth:after{content:\"\";display:table;clear:both}::ng-deep .ct-minor-sixth>svg{display:block;position:absolute;top:0;left:0}::ng-deep .ct-golden-section{display:block;position:relative;width:100%}::ng-deep .ct-golden-section:before{display:block;float:left;content:\"\";width:0;height:0;padding-bottom:61.804697157%}::ng-deep .ct-golden-section:after{content:\"\";display:table;clear:both}::ng-deep .ct-golden-section>svg{display:block;position:absolute;top:0;left:0}::ng-deep .ct-major-sixth{display:block;position:relative;width:100%}::ng-deep .ct-major-sixth:before{display:block;float:left;content:\"\";width:0;height:0;padding-bottom:60%}::ng-deep .ct-major-sixth:after{content:\"\";display:table;clear:both}::ng-deep .ct-major-sixth>svg{display:block;position:absolute;top:0;left:0}::ng-deep .ct-minor-seventh{display:block;position:relative;width:100%}::ng-deep .ct-minor-seventh:before{display:block;float:left;content:\"\";width:0;height:0;padding-bottom:56.25%}::ng-deep .ct-minor-seventh:after{content:\"\";display:table;clear:both}::ng-deep .ct-minor-seventh>svg{display:block;position:absolute;top:0;left:0}::ng-deep .ct-major-seventh{display:block;position:relative;width:100%}::ng-deep .ct-major-seventh:before{display:block;float:left;content:\"\";width:0;height:0;padding-bottom:53.3333333333%}::ng-deep .ct-major-seventh:after{content:\"\";display:table;clear:both}::ng-deep .ct-major-seventh>svg{display:block;position:absolute;top:0;left:0}::ng-deep .ct-octave{display:block;position:relative;width:100%}::ng-deep .ct-octave:before{display:block;float:left;content:\"\";width:0;height:0;padding-bottom:50%}::ng-deep .ct-octave:after{content:\"\";display:table;clear:both}::ng-deep .ct-octave>svg{display:block;position:absolute;top:0;left:0}::ng-deep .ct-major-tenth{display:block;position:relative;width:100%}::ng-deep .ct-major-tenth:before{display:block;float:left;content:\"\";width:0;height:0;padding-bottom:40%}::ng-deep .ct-major-tenth:after{content:\"\";display:table;clear:both}::ng-deep .ct-major-tenth>svg{display:block;position:absolute;top:0;left:0}::ng-deep .ct-major-eleventh{display:block;position:relative;width:100%}::ng-deep .ct-major-eleventh:before{display:block;float:left;content:\"\";width:0;height:0;padding-bottom:37.5%}::ng-deep .ct-major-eleventh:after{content:\"\";display:table;clear:both}::ng-deep .ct-major-eleventh>svg{display:block;position:absolute;top:0;left:0}::ng-deep .ct-major-twelfth{display:block;position:relative;width:100%}::ng-deep .ct-major-twelfth:before{display:block;float:left;content:\"\";width:0;height:0;padding-bottom:33.3333333333%}::ng-deep .ct-major-twelfth:after{content:\"\";display:table;clear:both}::ng-deep .ct-major-twelfth>svg{display:block;position:absolute;top:0;left:0}::ng-deep .ct-double-octave{display:block;position:relative;width:100%}::ng-deep .ct-double-octave:before{display:block;float:left;content:\"\";width:0;height:0;padding-bottom:25%}::ng-deep .ct-double-octave:after{content:\"\";display:table;clear:both}::ng-deep .ct-double-octave>svg{display:block;position:absolute;top:0;left:0}::ng-deep .ct-series-a .ct-slice-pie,::ng-deep .ct-series-a .ct-area{fill:url(#gradient)}::ng-deep .ct-point{opacity:0;transition:opacity .1s}::ng-deep .chartist-tooltip{position:absolute;border-radius:var(--border-radius);border:1px solid var(--color-weight-100);padding:4px;opacity:0;transition:opacity .1s,top .1s,left .1s;font-size:12px;background:var(--color-component-bg-100);box-shadow:0 2px 4px #0000000d;text-align:center}::ng-deep .chartist-tooltip.tooltip-show{opacity:.9}::ng-deep .ct-tooltip-hover{opacity:1}::ng-deep .tooltip-date{color:var(--color-text-200)}::ng-deep .tooltip-value{color:var(--color-primary-600);font-size:14px;text-align:center}:host{display:block;padding-bottom:28px}#chart{position:relative}\n"] }]
85
- }], propDecorators: { entries: [{
92
+ }], ctorParameters: function () { return [{ type: i1.CurrencyService }]; }, propDecorators: { entries: [{
86
93
  type: Input
87
94
  }], options: [{
88
95
  type: Input
@@ -90,4 +97,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImpor
90
97
  type: ViewChild,
91
98
  args: ['chartDiv', { static: true }]
92
99
  }] } });
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3NyYy9zaGFyZWQvY29tcG9uZW50cy9jaGFydC9jaGFydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3NoYXJlZC9jb21wb25lbnRzL2NoYXJ0L2NoYXJ0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULEtBQUssRUFLTCxTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQW1DLE1BQU0sVUFBVSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFvQmpELE1BQU0sT0FBTyxjQUFjO0lBTjNCO1FBT2EsWUFBTyxHQUFpQixFQUFFLENBQUM7UUFDM0IsWUFBTyxHQUFzQixFQUFFLENBQUM7S0FrRjVDO0lBOUVHLFFBQVE7UUFDSixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksU0FBUyxDQUN0QixJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFDOUIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLEVBQy9DO1lBQ0ksR0FBRyxFQUFFLENBQUM7WUFDTixRQUFRLEVBQUUsSUFBSTtZQUNkLFFBQVEsRUFBRSxJQUFJO1lBQ2QsU0FBUyxFQUFFLElBQUk7WUFDZixTQUFTLEVBQUUsSUFBSTtZQUNmLEtBQUssRUFBRTtnQkFDSCxTQUFTLEVBQUUsS0FBSztnQkFDaEIsUUFBUSxFQUFFLEtBQUs7Z0JBQ2YsTUFBTSxFQUFFLENBQUM7YUFDWjtZQUNELEtBQUssRUFBRTtnQkFDSCxTQUFTLEVBQUUsS0FBSztnQkFDaEIsTUFBTSxFQUFFLENBQUM7YUFDWjtZ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QkFOMUIsU0FBUzsrQkFDSSxXQUFXLG1CQUdKLHVCQUF1QixDQUFDLE1BQU07OEJBR3RDLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQzJDLFdBQVc7c0JBQTNELFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICAgIENvbXBvbmVudCxcclxuICAgIEVsZW1lbnRSZWYsXHJcbiAgICBJbnB1dCxcclxuICAgIE9uQ2hhbmdlcyxcclxuICAgIE9uRGVzdHJveSxcclxuICAgIE9uSW5pdCxcclxuICAgIFNpbXBsZUNoYW5nZXMsXHJcbiAgICBWaWV3Q2hpbGQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGVhc2luZ3MsIExpbmVDaGFydCwgTGluZUNoYXJ0RGF0YSwgTGluZUNoYXJ0T3B0aW9ucyB9IGZyb20gJ2NoYXJ0aXN0JztcclxuaW1wb3J0IHsgdG9vbHRpcFBsdWdpbiB9IGZyb20gJy4vdG9vbHRpcC1wbHVnaW4nO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDaGFydEZvcm1hdE9wdGlvbnMge1xyXG4gICAgZm9ybWF0VmFsdWVBczogJ2N1cnJlbmN5JyB8ICdudW1iZXInO1xyXG4gICAgY3VycmVuY3lDb2RlPzogc3RyaW5nO1xyXG4gICAgbG9jYWxlPzogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENoYXJ0RW50cnkge1xyXG4gICAgbGFiZWw6IHN0cmluZztcclxuICAgIHZhbHVlOiBudW1iZXI7XHJcbiAgICBmb3JtYXRPcHRpb25zOiBDaGFydEZvcm1hdE9wdGlvbnM7XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICd2ZHItY2hhcnQnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NoYXJ0LmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2NoYXJ0LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIENoYXJ0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XHJcbiAgICBASW5wdXQoKSBlbnRyaWVzOiBDaGFydEVudHJ5W10gPSBbXTtcclxuICAgIEBJbnB1dCgpIG9wdGlvbnM/OiBMaW5lQ2hhcnRPcHRpb25zID0ge307XHJcbiAgICBAVmlld0NoaWxkKCdjaGFydERpdicsIHsgc3RhdGljOiB0cnVlIH0pIHByaXZhdGUgY2hhcnREaXZSZWY6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xyXG4gICAgcHJpdmF0ZSBjaGFydDogTGluZUNoYXJ0O1xyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIHRoaXMuY2hhcnQgPSBuZXcgTGluZUNoYXJ0KFxyXG4gICAgICAgICAgICB0aGlzLmNoYXJ0RGl2UmVmLm5hdGl2ZUVsZW1lbnQsXHJcbiAgICAgICAgICAgIHRoaXMuZW50cmllc1RvTGluZUNoYXJ0RGF0YSh0aGlzLmVudHJpZXMgPz8gW10pLFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBsb3c6IDAsXHJcbiAgICAgICAgICAgICAgICBzaG93QXJlYTogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIHNob3dMaW5lOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgc2hvd1BvaW50OiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgZnVsbFdpZHRoOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgYXhpc1g6IHtcclxuICAgICAgICAgICAgICAgICAgICBzaG93TGFiZWw6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgIHNob3dHcmlkOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgICBvZmZzZXQ6IDEsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgYXhpc1k6IHtcclxuICAgICAgICAgICAgICAgICAgICBzaG93TGFiZWw6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgIG9mZnNldDogMSxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBwbHVnaW5zOiBbdG9vbHRpcFBsdWdpbigpXSxcclxuICAgICAgICAgICAgICAgIC4uLnRoaXMub3B0aW9ucyxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICB0aGlzLmNoYXJ0Lm9uKCdkcmF3JywgZGF0YSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChkYXRhLnR5cGUgPT09ICdsaW5lJyB8fCBkYXRhLnR5cGUgPT09ICdhcmVhJykge1xyXG4gICAgICAgICAgICAgICAgZGF0YS5lbGVtZW50LmFuaW1hdGUoe1xyXG4gICAgICAgICAgICAgICAgICAgIGQ6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmVnaW46IDIwMDAgKiBkYXRhLmluZGV4LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkdXI6IDIwMDAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZyb206IGRhdGEucGF0aC5jbG9uZSgpLnNjYWxlKDEsIDApLnRyYW5zbGF0ZSgwLCBkYXRhLmNoYXJ0UmVjdC5oZWlnaHQoKSkuc3RyaW5naWZ5KCksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvOiBkYXRhLnBhdGguY2xvbmUoKS5zdHJpbmdpZnkoKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZWFzaW5nOiBlYXNpbmdzLmVhc2VPdXRRdWludCxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgLy8gQ3JlYXRlIHRoZSBncmFkaWVudCBkZWZpbml0aW9uIG9uIGNyZWF0ZWQgZXZlbnQgKGFsd2F5cyBhZnRlciBjaGFydCByZS1yZW5kZXIpXHJcbiAgICAgICAgdGhpcy5jaGFydC5vbignY3JlYXRlZCcsIGN0eCA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGRlZnMgPSBjdHguc3ZnLmVsZW0oJ2RlZnMnKTtcclxuICAgICAgICAgICAgZGVmcy5lbGVtKCdsaW5lYXJHcmFkaWVudCcsIHtcclxuICAgICAgICAgICAgICAgIGlkOiAnZ3JhZGllbnQnLFxyXG4gICAgICAgICAgICAgICAgeDE6IDAsXHJcbiAgICAgICAgICAgICAgICB5MTogMSxcclxuICAgICAgICAgICAgICAgIHgyOiAwLFxyXG4gICAgICAgICAgICAgICAgeTI6IDAsXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAuZWxlbSgnc3RvcCcsIHtcclxuICAgICAgICAgICAgICAgICAgICBvZmZzZXQ6IDAsXHJcbiAgICAgICAgICAgICAgICAgICAgJ3N0b3AtY29sb3InOiAndmFyKC0tY29sb3ItcHJpbWFyeS00MDApJyxcclxuICAgICAgICAgICAgICAgICAgICAnc3RvcC1vcGFjaXR5JzogMC4zLFxyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgIC5wYXJlbnQoKVxyXG4gICAgICAgICAgICAgICAgPy5lbGVtKCdzdG9wJywge1xyXG4gICAgICAgICAgICAgICAgICAgIG9mZnNldDogMSxcclxuICAgICAgICAgICAgICAgICAgICAnc3RvcC1jb2xvcic6ICd2YXIoLS1jb2xvci1wcmltYXJ5LTUwMCknLFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgICAgIGlmICgnZW50cmllcycgaW4gY2hhbmdlcyAmJiB0aGlzLmNoYXJ0KSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2hhcnQudXBkYXRlKHRoaXMuZW50cmllc1RvTGluZUNoYXJ0RGF0YSh0aGlzLmVudHJpZXMgPz8gW10pKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAgICAgdGhpcy5jaGFydD8uZGV0YWNoKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBlbnRyaWVzVG9MaW5lQ2hhcnREYXRhKGVudHJpZXM6IENoYXJ0RW50cnlbXSk6IExpbmVDaGFydERhdGEge1xyXG4gICAgICAgIGNvbnN0IGxhYmVscyA9IGVudHJpZXMubWFwKCh7IGxhYmVsIH0pID0+IGxhYmVsKTtcclxuICAgICAgICBjb25zdCBzZXJpZXMgPSBbXHJcbiAgICAgICAgICAgIGVudHJpZXMubWFwKCh7IGxhYmVsLCB2YWx1ZSwgZm9ybWF0T3B0aW9ucyB9KSA9PiAoeyBtZXRhOiB7IGxhYmVsLCBmb3JtYXRPcHRpb25zIH0sIHZhbHVlIH0pKSxcclxuICAgICAgICBdO1xyXG4gICAgICAgIHJldHVybiB7IGxhYmVscywgc2VyaWVzIH07XHJcbiAgICB9XHJcbn1cclxuIiwiPGRpdiBpZD1cImNoYXJ0XCIgc3R5bGU9XCJoZWlnaHQ6IDIwdmg7IG1pbi1oZWlnaHQ6IDMwMHB4O1wiICNjaGFydERpdj48L2Rpdj5cclxuIl19
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3NyYy9zaGFyZWQvY29tcG9uZW50cy9jaGFydC9jaGFydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3NoYXJlZC9jb21wb25lbnRzL2NoYXJ0L2NoYXJ0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULEtBQUssRUFLTCxTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQW1DLE1BQU0sVUFBVSxDQUFDO0FBRS9FLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7O0FBb0JqRCxNQUFNLE9BQU8sY0FBYztJQU12QixZQUFvQixlQUFnQztRQUFoQyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFMM0MsWUFBTyxHQUFpQixFQUFFLENBQUM7UUFDM0IsWUFBTyxHQUFzQixFQUFFLENBQUM7SUFJYyxDQUFDO0lBRXhELFFBQVE7UUFDSixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksU0FBUyxDQUN0QixJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFDOUIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLEVBQy9DO1lBQ0ksR0FBRyxFQUFFLENBQUM7WUFDTixRQUFRLEVBQUUsSUFBSTtZQUNkLFFBQVEsRUFBRSxJQUFJO1lBQ2QsU0FBUyxFQUFFLElBQUk7WUFDZixTQUFTLEVBQUUsSUFBSTtZQUNmLEtBQUssRUFBRTtnQkFDSCxTQUFTLEVBQUUsS0FBSztnQkFDaEIsUUFBUSxFQUFFLEtBQUs7Z0JBQ2YsTUFBTSxFQUFFLENBQUM7YUFDWjtZQUNELEtBQUssRUFBRTtnQkFD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LEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1NBQ2hHLENBQUM7UUFDRixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDO0lBQzlCLENBQUM7OEdBMUZRLGNBQWM7a0dBQWQsY0FBYyxpUENqQzNCLG1GQUNBOzsyRkRnQ2EsY0FBYztrQkFOMUIsU0FBUzsrQkFDSSxXQUFXLG1CQUdKLHVCQUF1QixDQUFDLE1BQU07c0dBR3RDLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQzJDLFdBQVc7c0JBQTNELFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICAgIENvbXBvbmVudCxcclxuICAgIEVsZW1lbnRSZWYsXHJcbiAgICBJbnB1dCxcclxuICAgIE9uQ2hhbmdlcyxcclxuICAgIE9uRGVzdHJveSxcclxuICAgIE9uSW5pdCxcclxuICAgIFNpbXBsZUNoYW5nZXMsXHJcbiAgICBWaWV3Q2hpbGQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGVhc2luZ3MsIExpbmVDaGFydCwgTGluZUNoYXJ0RGF0YSwgTGluZUNoYXJ0T3B0aW9ucyB9IGZyb20gJ2NoYXJ0aXN0JztcclxuaW1wb3J0IHsgQ3VycmVuY3lTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vcHJvdmlkZXJzL2N1cnJlbmN5L2N1cnJlbmN5LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyB0b29sdGlwUGx1Z2luIH0gZnJvbSAnLi90b29sdGlwLXBsdWdpbic7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENoYXJ0Rm9ybWF0T3B0aW9ucyB7XHJcbiAgICBmb3JtYXRWYWx1ZUFzOiAnY3VycmVuY3knIHwgJ251bWJlcic7XHJcbiAgICBjdXJyZW5jeUNvZGU/OiBzdHJpbmc7XHJcbiAgICBsb2NhbGU/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ2hhcnRFbnRyeSB7XHJcbiAgICBsYWJlbDogc3RyaW5nO1xyXG4gICAgdmFsdWU6IG51bWJlcjtcclxuICAgIGZvcm1hdE9wdGlvbnM6IENoYXJ0Rm9ybWF0T3B0aW9ucztcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3Zkci1jaGFydCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vY2hhcnQuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vY2hhcnQuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2hhcnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcclxuICAgIEBJbnB1dCgpIGVudHJpZXM6IENoYXJ0RW50cnlbXSA9IFtdO1xyXG4gICAgQElucHV0KCkgb3B0aW9ucz86IExpbmVDaGFydE9wdGlvbnMgPSB7fTtcclxuICAgIEBWaWV3Q2hpbGQoJ2NoYXJ0RGl2JywgeyBzdGF0aWM6IHRydWUgfSkgcHJpdmF0ZSBjaGFydERpdlJlZjogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XHJcbiAgICBwcml2YXRlIGNoYXJ0OiBMaW5lQ2hhcnQ7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBjdXJyZW5jeVNlcnZpY2U6IEN1cnJlbmN5U2VydmljZSkge31cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICB0aGlzLmNoYXJ0ID0gbmV3IExpbmVDaGFydChcclxuICAgICAgICAgICAgdGhpcy5jaGFydERpdlJlZi5uYXRpdmVFbGVtZW50LFxyXG4gICAgICAgICAgICB0aGlzLmVudHJpZXNUb0xpbmVDaGFydERhdGEodGhpcy5lbnRyaWVzID8/IFtdKSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgbG93OiAwLFxyXG4gICAgICAgICAgICAgICAgc2hvd0FyZWE6IHRydWUsXHJcbiAgICAgICAgICAgICAgICBzaG93TGluZTogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIHNob3dQb2ludDogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIGZ1bGxXaWR0aDogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIGF4aXNYOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgc2hvd0xhYmVsOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgICBzaG93R3JpZDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgb2Zmc2V0OiAxLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGF4aXNZOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgc2hvd0xhYmVsOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgICBvZmZzZXQ6IDEsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgcGx1Z2luczogW1xyXG4gICAgICAgICAgICAgICAgICAgIHRvb2x0aXBQbHVnaW4oe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW5jeVByZWNpc2lvbjogdGhpcy5jdXJyZW5jeVNlcnZpY2UucHJlY2lzaW9uLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW5jeVByZWNpc2lvbkZhY3RvcjogdGhpcy5jdXJyZW5jeVNlcnZpY2UucHJlY2lzaW9uRmFjdG9yLFxyXG4gICAgICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgICAgIC4uLnRoaXMub3B0aW9ucyxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICB0aGlzLmNoYXJ0Lm9uKCdkcmF3JywgZGF0YSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChkYXRhLnR5cGUgPT09ICdsaW5lJyB8fCBkYXRhLnR5cGUgPT09ICdhcmVhJykge1xyXG4gICAgICAgICAgICAgICAgZGF0YS5lbGVtZW50LmFuaW1hdGUoe1xyXG4gICAgICAgICAgICAgICAgICAgIGQ6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmVnaW46IDIwMDAgKiBkYXRhLmluZGV4LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkdXI6IDIwMDAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZyb206IGRhdGEucGF0aC5jbG9uZSgpLnNjYWxlKDEsIDApLnRyYW5zbGF0ZSgwLCBkYXRhLmNoYXJ0UmVjdC5oZWlnaHQoKSkuc3RyaW5naWZ5KCksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvOiBkYXRhLnBhdGguY2xvbmUoKS5zdHJpbmdpZnkoKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZWFzaW5nOiBlYXNpbmdzLmVhc2VPdXRRdWludCxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgLy8gQ3JlYXRlIHRoZSBncmFkaWVudCBkZWZpbml0aW9uIG9uIGNyZWF0ZWQgZXZlbnQgKGFsd2F5cyBhZnRlciBjaGFydCByZS1yZW5kZXIpXHJcbiAgICAgICAgdGhpcy5jaGFydC5vbignY3JlYXRlZCcsIGN0eCA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGRlZnMgPSBjdHguc3ZnLmVsZW0oJ2RlZnMnKTtcclxuICAgICAgICAgICAgZGVmcy5lbGVtKCdsaW5lYXJHcmFkaWVudCcsIHtcclxuICAgICAgICAgICAgICAgIGlkOiAnZ3JhZGllbnQnLFxyXG4gICAgICAgICAgICAgICAgeDE6IDAsXHJcbiAgICAgICAgICAgICAgICB5MTogMSxcclxuICAgICAgICAgICAgICAgIHgyOiAwLFxyXG4gICAgICAgICAgICAgICAgeTI6IDAsXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAuZWxlbSgnc3RvcCcsIHtcclxuICAgICAgICAgICAgICAgICAgICBvZmZzZXQ6IDAsXHJcbiAgICAgICAgICAgICAgICAgICAgJ3N0b3AtY29sb3InOiAndmFyKC0tY29sb3ItcHJpbWFyeS00MDApJyxcclxuICAgICAgICAgICAgICAgICAgICAnc3RvcC1vcGFjaXR5JzogMC4zLFxyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgIC5wYXJlbnQoKVxyXG4gICAgICAgICAgICAgICAgPy5lbGVtKCdzdG9wJywge1xyXG4gICAgICAgICAgICAgICAgICAgIG9mZnNldDogMSxcclxuICAgICAgICAgICAgICAgICAgICAnc3RvcC1jb2xvcic6ICd2YXIoLS1jb2xvci1wcmltYXJ5LTUwMCknLFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgICAgIGlmICgnZW50cmllcycgaW4gY2hhbmdlcyAmJiB0aGlzLmNoYXJ0KSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2hhcnQudXBkYXRlKHRoaXMuZW50cmllc1RvTGluZUNoYXJ0RGF0YSh0aGlzLmVudHJpZXMgPz8gW10pKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAgICAgdGhpcy5jaGFydD8uZGV0YWNoKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBlbnRyaWVzVG9MaW5lQ2hhcnREYXRhKGVudHJpZXM6IENoYXJ0RW50cnlbXSk6IExpbmVDaGFydERhdGEge1xyXG4gICAgICAgIGNvbnN0IGxhYmVscyA9IGVudHJpZXMubWFwKCh7IGxhYmVsIH0pID0+IGxhYmVsKTtcclxuICAgICAgICBjb25zdCBzZXJpZXMgPSBbXHJcbiAgICAgICAgICAgIGVudHJpZXMubWFwKCh7IGxhYmVsLCB2YWx1ZSwgZm9ybWF0T3B0aW9ucyB9KSA9PiAoeyBtZXRhOiB7IGxhYmVsLCBmb3JtYXRPcHRpb25zIH0sIHZhbHVlIH0pKSxcclxuICAgICAgICBdO1xyXG4gICAgICAgIHJldHVybiB7IGxhYmVscywgc2VyaWVzIH07XHJcbiAgICB9XHJcbn1cclxuIiwiPGRpdiBpZD1cImNoYXJ0XCIgc3R5bGU9XCJoZWlnaHQ6IDIwdmg7IG1pbi1oZWlnaHQ6IDMwMHB4O1wiICNjaGFydERpdj48L2Rpdj5cclxuIl19
@@ -5,6 +5,8 @@
5
5
  /* global Chartist */
6
6
  const defaultOptions = {
7
7
  currency: undefined,
8
+ currencyPrecision: 2,
9
+ currencyPrecisionFactor: 100,
8
10
  currencyFormatCallback: undefined,
9
11
  tooltipOffset: {
10
12
  x: 0,
@@ -21,7 +23,6 @@ export function tooltipPlugin(userOptions) {
21
23
  ...defaultOptions,
22
24
  ...userOptions,
23
25
  };
24
- const tooltipSelector = options.pointClass;
25
26
  const $chart = chart.container;
26
27
  let $toolTip = $chart.querySelector('.chartist-tooltip');
27
28
  if (!$toolTip) {
@@ -77,7 +78,6 @@ export function tooltipPlugin(userOptions) {
77
78
  points.forEach(point => point.event.element.removeClass('ct-tooltip-hover'));
78
79
  closestPoint.element.addClass('ct-tooltip-hover');
79
80
  const $point = closestPoint.element.getNode();
80
- const seriesName = 'ct:series-name';
81
81
  const meta = closestPoint.meta;
82
82
  const value = $point.getAttribute('ct:value');
83
83
  const dateFormatter = new Intl.DateTimeFormat(meta.formatOptions.locale);
@@ -85,8 +85,9 @@ export function tooltipPlugin(userOptions) {
85
85
  ? new Intl.NumberFormat(meta.formatOptions.locale, {
86
86
  style: 'currency',
87
87
  currency: meta.formatOptions.currencyCode,
88
- minimumFractionDigits: 2,
89
- }).format(+(value ?? 0) / 100)
88
+ minimumFractionDigits: options.currencyPrecision,
89
+ maximumFractionDigits: options.currencyPrecision,
90
+ }).format(+(value ?? 0) / options.currencyPrecisionFactor)
90
91
  : new Intl.NumberFormat(meta.formatOptions.locale).format(+(value ?? 0));
91
92
  const tooltipText = `
92
93
  <div class="tooltip-date">${dateFormatter.format(new Date(meta.label))}</div>
@@ -136,16 +137,7 @@ function hide(element) {
136
137
  function hasClass(element, className) {
137
138
  return (' ' + element.getAttribute('class') + ' ').indexOf(' ' + className + ' ') > -1;
138
139
  }
139
- function next(element, className) {
140
- do {
141
- element = element.nextSibling;
142
- } while (element && !hasClass(element, className));
143
- return element;
144
- }
145
- function text(element) {
146
- return element.innerText || element.textContent;
147
- }
148
140
  function calculateDistance(x1, x2) {
149
141
  return Math.abs(x2 - x1);
150
142
  }
151
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC1wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3NoYXJlZC9jb21wb25lbnRzL2NoYXJ0L3Rvb2x0aXAtcGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRztBQUNILHFCQUFxQjtBQUtyQixNQUFNLGNBQWMsR0FBRztJQUNuQixRQUFRLEVBQUUsU0FBUztJQUNuQixzQkFBc0IsRUFBRSxTQUFTO0lBQ2pDLGFBQWEsRUFBRTtRQUNYLENBQUMsRUFBRSxDQUFDO1FBQ0osQ0FBQyxFQUFFLENBQUMsRUFBRTtLQUNUO0lBQ0QsYUFBYSxFQUFFLEtBQUs7SUFDcEIsWUFBWSxFQUFFLEtBQUs7SUFDbkIsS0FBSyxFQUFFLFNBQVM7SUFDaEIsVUFBVSxFQUFFLFVBQVU7Q0FDekIsQ0FBQztBQUVGLE1BQU0sVUFBVSxhQUFhLENBQUMsV0FBaUI7SUFDM0MsT0FBTyxTQUFTLE9BQU8sQ0FBQyxLQUFnQjtRQUNwQyxNQUFNLE9BQU8sR0FBRztZQUNaLEdBQUcsY0FBYztZQUNqQixHQUFHLFdBQVc7U0FDakIsQ0FBQztRQUNGLE1BQU0sZUFBZSxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUM7UUFFM0MsTUFBTSxNQUFNLEdBQUksS0FBYSxDQUFDLFNBQTJCLENBQUM7UUFDMUQsSUFBSSxRQUFRLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBbUIsQ0FBQztRQUMzRSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ1gsUUFBUSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDekMsUUFBUSxDQUFDLFNBQVMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxtQkFBbUIsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO1lBQy9GLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFO2dCQUN2QixNQUFNLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQ2hDO2lCQUFNO2dCQUNILFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQ3ZDO1NBQ0o7UUFDRCxJQUFJLE1BQU0sR0FBRyxRQUFRLENBQUMsWUFBWSxDQUFDO1FBQ25DLElBQUksS0FBSyxHQUFHLFFBQVEsQ0FBQyxXQUFXLENBQUM7UUFDakMsTUFBTSxNQUFNLEdBR1AsRUFBRSxDQUFDO1FBRVIsU0FBUyxlQUFlLENBQUMsTUFBYztZQUNuQyxJQUFJLGNBQWMsR0FBcUIsSUFBSSxDQUFDO1lBQzVDLElBQUksZUFBZSxHQUFHLFFBQVEsQ0FBQztZQUUvQiwrREFBK0Q7WUFDL0QsS0FBSyxNQUFNLEtBQUssSUFBSSxNQUFNLEVBQUU7Z0JBQ3hCLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7Z0JBQ3pCLE1BQU0sUUFBUSxHQUFHLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztnQkFFckQsSUFBSSxRQUFRLEdBQUcsZUFBZSxFQUFFO29CQUM1QixjQUFjLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQztvQkFDN0IsZUFBZSxHQUFHLFFBQVEsQ0FBQztpQkFDOUI7YUFDSjtZQUNELG9FQUFvRTtZQUNwRSxPQUFPLGNBQWUsQ0FBQztRQUMzQixDQUFDO1FBRUQsS0FBSyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDcEIsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLE9BQU8sRUFBRTtnQkFDdkIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztnQkFDN0IsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRztvQkFDakIsS0FBSyxFQUFFLElBQUk7b0JBQ1gsQ0FBQyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxDQUFDO2lCQUN0RCxDQUFDO2FBQ0w7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUVmLFNBQVMsRUFBRSxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsUUFBUTtZQUNqQyxNQUFNLENBQUMsZ0JBQWdCLENBQ25CLEtBQUssRUFDTCxVQUFVLENBQUM7Z0JBQ1AsSUFBSSxDQUFDLFFBQVEsSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsRUFBRTtvQkFDM0MsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUNmO1lBQ0wsQ0FBQyxFQUNELEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUNwQixDQUFDO1FBQ04sQ0FBQztRQUVELEVBQUUsQ0FBQyxXQUFXLEVBQUUsU0FBUyxFQUFFLENBQUMsS0FBaUIsRUFBRSxFQUFFO1lBQzdDLE1BQU0sWUFBWSxHQUFHLGVBQWUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDcEQsSUFBSSxDQUFDLFlBQVksRUFBRTtnQkFDZixPQUFPO2FBQ1Y7WUFDRCxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQztZQUM3RSxZQUFZLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1lBRWxELE1BQU0sTUFBTSxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFpQixDQUFDO1lBRTdELE1BQU0sVUFBVSxHQUFHLGdCQUFnQixDQUFDO1lBQ3BDLE1BQU0sSUFBSSxHQUdOLFlBQVksQ0FBQyxJQUFJLENBQUM7WUFDdEIsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUU5QyxNQUFNLGFBQWEsR0FBRyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN6RSxNQUFNLGNBQWMsR0FDaEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLEtBQUssVUFBVTtnQkFDM0MsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRTtvQkFDN0MsS0FBSyxFQUFFLFVBQVU7b0JBQ2pCLFFBQVEsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVk7b0JBQ3pDLHFCQUFxQixFQUFFLENBQUM7aUJBQzNCLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUM7Z0JBQ2hDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRWpGLE1BQU0sV0FBVyxHQUFHO3dDQUNRLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO3lDQUN6QyxjQUFjO1lBQzNDLENBQUM7WUFFRCxRQUFRLENBQUMsU0FBUyxHQUFHLFdBQVcsQ0FBQztZQUNqQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDcEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBRWYsMERBQTBEO1lBQzFELE1BQU0sR0FBRyxRQUFRLENBQUMsWUFBWSxDQUFDO1lBQy9CLEtBQUssR0FBRyxRQUFRLENBQUMsV0FBVyxDQUFDO1FBQ2pDLENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLFlBQVksRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFO1lBQzdCLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNuQixDQUFDLENBQUMsQ0FBQztRQUVILFNBQVMsV0FBVyxDQUFDLE9BQW9CO1lBQ3JDLE1BQU0sR0FBRyxNQUFNLElBQUksUUFBUSxDQUFDLFlBQVksQ0FBQztZQUN6QyxLQUFLLEdBQUcsS0FBSyxJQUFJLFFBQVEsQ0FBQyxXQUFXLENBQUM7WUFDdEMsTUFBTSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxPQUFPLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUM3RixNQUFNLE9BQU8sR0FBRyxDQUFDLEtBQUssR0FBRyxDQUFDLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7WUFDckQsTUFBTSxPQUFPLEdBQUcsQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7WUFDbEQsSUFBSSxPQUFPLENBQUM7WUFDWixJQUFJLE9BQU8sQ0FBQztZQUVaLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFO2dCQUN2QixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMscUJBQXFCLEVBQUUsQ0FBQztnQkFDM0MsTUFBTSxJQUFJLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQztnQkFDakQsTUFBTSxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQztnQkFFL0MsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsQ0FBQyxPQUFPLElBQUksR0FBRyxDQUFDLEdBQUcsT0FBTyxHQUFHLElBQUksQ0FBQztnQkFDdkQsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLEdBQUcsT0FBTyxHQUFHLElBQUksQ0FBQzthQUM1RDtpQkFBTTtnQkFDSCxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQUcsT0FBTyxHQUFHLElBQUksQ0FBQztnQkFDMUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsR0FBRyxHQUFHLE9BQU8sR0FBRyxJQUFJLENBQUM7YUFDOUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQyxDQUFDO0FBQ04sQ0FBQztBQUVELFNBQVMsSUFBSSxDQUFDLE9BQU87SUFDakIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsY0FBYyxDQUFDLEVBQUU7UUFDcEMsT0FBTyxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsU0FBUyxHQUFHLGVBQWUsQ0FBQztLQUMzRDtBQUNMLENBQUM7QUFFRCxTQUFTLElBQUksQ0FBQyxPQUFPO0lBQ2pCLE1BQU0sS0FBSyxHQUFHLElBQUksTUFBTSxDQUFDLGNBQWMsR0FBRyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDeEQsT0FBTyxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7QUFDcEUsQ0FBQztBQUVELFNBQVMsUUFBUSxDQUFDLE9BQU8sRUFBRSxTQUFTO0lBQ2hDLE9BQU8sQ0FBQyxHQUFHLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxHQUFHLFNBQVMsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUMzRixDQUFDO0FBRUQsU0FBUyxJQUFJLENBQUMsT0FBTyxFQUFFLFNBQVM7SUFDNUIsR0FBRztRQUNDLE9BQU8sR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDO0tBQ2pDLFFBQVEsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsRUFBRTtJQUNuRCxPQUFPLE9BQU8sQ0FBQztBQUNuQixDQUFDO0FBRUQsU0FBUyxJQUFJLENBQUMsT0FBTztJQUNqQixPQUFPLE9BQU8sQ0FBQyxTQUFTLElBQUksT0FBTyxDQUFDLFdBQVcsQ0FBQztBQUNwRCxDQUFDO0FBQ0QsU0FBUyxpQkFBaUIsQ0FBQyxFQUFFLEVBQUUsRUFBRTtJQUM3QixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0FBQzdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQmFzZWQgb24gaHR0cHM6Ly9naXRodWIuY29tL3RtbWRhdGEvY2hhcnRpc3QtcGx1Z2luLXRvb2x0aXAvYmxvYi9tYXN0ZXIvc3JjL3NjcmlwdHMvY2hhcnRpc3QtcGx1Z2luLXRvb2x0aXAuanNcclxuICpcclxuICovXHJcbi8qIGdsb2JhbCBDaGFydGlzdCAqL1xyXG5cclxuaW1wb3J0IHsgTGluZUNoYXJ0LCBQaWVDaGFydCwgRHJhd0V2ZW50IH0gZnJvbSAnY2hhcnRpc3QnO1xyXG5pbXBvcnQgeyBDaGFydEZvcm1hdE9wdGlvbnMgfSBmcm9tICcuL2NoYXJ0LmNvbXBvbmVudCc7XHJcblxyXG5jb25zdCBkZWZhdWx0T3B0aW9ucyA9IHtcclxuICAgIGN1cnJlbmN5OiB1bmRlZmluZWQsXHJcbiAgICBjdXJyZW5jeUZvcm1hdENhbGxiYWNrOiB1bmRlZmluZWQsXHJcbiAgICB0b29sdGlwT2Zmc2V0OiB7XHJcbiAgICAgICAgeDogMCxcclxuICAgICAgICB5OiAtMjAsXHJcbiAgICB9LFxyXG4gICAgYW5jaG9yVG9Qb2ludDogZmFsc2UsXHJcbiAgICBhcHBlbmRUb0JvZHk6IGZhbHNlLFxyXG4gICAgY2xhc3M6IHVuZGVmaW5lZCxcclxuICAgIHBvaW50Q2xhc3M6ICdjdC1wb2ludCcsXHJcbn07XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gdG9vbHRpcFBsdWdpbih1c2VyT3B0aW9ucz86IGFueSkge1xyXG4gICAgcmV0dXJuIGZ1bmN0aW9uIHRvb2x0aXAoY2hhcnQ6IExpbmVDaGFydCkge1xyXG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7XHJcbiAgICAgICAgICAgIC4uLmRlZmF1bHRPcHRpb25zLFxyXG4gICAgICAgICAgICAuLi51c2VyT3B0aW9ucyxcclxuICAgICAgICB9O1xyXG4gICAgICAgIGNvbnN0IHRvb2x0aXBTZWxlY3RvciA9IG9wdGlvbnMucG9pbnRDbGFzcztcclxuXHJcbiAgICAgICAgY29uc3QgJGNoYXJ0ID0gKGNoYXJ0IGFzIGFueSkuY29udGFpbmVyIGFzIEhUTUxEaXZFbGVtZW50O1xyXG4gICAgICAgIGxldCAkdG9vbFRpcCA9ICRjaGFydC5xdWVyeVNlbGVjdG9yKCcuY2hhcnRpc3QtdG9vbHRpcCcpIGFzIEhUTUxEaXZFbGVtZW50O1xyXG4gICAgICAgIGlmICghJHRvb2xUaXApIHtcclxuICAgICAgICAgICAgJHRvb2xUaXAgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuICAgICAgICAgICAgJHRvb2xUaXAuY2xhc3NOYW1lID0gIW9wdGlvbnMuY2xhc3MgPyAnY2hhcnRpc3QtdG9vbHRpcCcgOiAnY2hhcnRpc3QtdG9vbHRpcCAnICsgb3B0aW9ucy5jbGFzcztcclxuICAgICAgICAgICAgaWYgKCFvcHRpb25zLmFwcGVuZFRvQm9keSkge1xyXG4gICAgICAgICAgICAgICAgJGNoYXJ0LmFwcGVuZENoaWxkKCR0b29sVGlwKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoJHRvb2xUaXApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCBoZWlnaHQgPSAkdG9vbFRpcC5vZmZzZXRIZWlnaHQ7XHJcbiAgICAgICAgbGV0IHdpZHRoID0gJHRvb2xUaXAub2Zmc2V0V2lkdGg7XHJcbiAgICAgICAgY29uc3QgcG9pbnRzOiBBcnJheTx7XHJcbiAgICAgICAgICAgIGV2ZW50OiBEcmF3RXZlbnQ7XHJcbiAgICAgICAgICAgIHg6IG51bWJlcjtcclxuICAgICAgICB9PiA9IFtdO1xyXG5cclxuICAgICAgICBmdW5jdGlvbiBnZXRDbG9zZXN0UG9pbnQobW91c2VYOiBudW1iZXIpOiBEcmF3RXZlbnQge1xyXG4gICAgICAgICAgICBsZXQgY2xvc2VzdEVsZW1lbnQ6IERyYXdFdmVudCB8IG51bGwgPSBudWxsO1xyXG4gICAgICAgICAgICBsZXQgY2xvc2VzdERpc3RhbmNlID0gSW5maW5pdHk7XHJcblxyXG4gICAgICAgICAgICAvLyBJdGVyYXRlIHRocm91Z2ggdGhlIHBvaW50cyBhcnJheSB0byBmaW5kIHRoZSBjbG9zZXN0IGVsZW1lbnRcclxuICAgICAgICAgICAgZm9yIChjb25zdCBwb2ludCBvZiBwb2ludHMpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRYID0gcG9pbnQueDtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGRpc3RhbmNlID0gY2FsY3VsYXRlRGlzdGFuY2UobW91c2VYLCBlbGVtZW50WCk7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKGRpc3RhbmNlIDwgY2xvc2VzdERpc3RhbmNlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2xvc2VzdEVsZW1lbnQgPSBwb2ludC5ldmVudDtcclxuICAgICAgICAgICAgICAgICAgICBjbG9zZXN0RGlzdGFuY2UgPSBkaXN0YW5jZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5vbi1udWxsLWFzc2VydGlvblxyXG4gICAgICAgICAgICByZXR1cm4gY2xvc2VzdEVsZW1lbnQhO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY2hhcnQub24oJ2RyYXcnLCBkYXRhID0+IHtcclxuICAgICAgICAgICAgaWYgKGRhdGEudHlwZSA9PT0gJ3BvaW50Jykge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZWxlbWVudCA9IGRhdGEuZWxlbWVudDtcclxuICAgICAgICAgICAgICAgIHBvaW50c1tkYXRhLmluZGV4XSA9IHtcclxuICAgICAgICAgICAgICAgICAgICBldmVudDogZGF0YSxcclxuICAgICAgICAgICAgICAgICAgICB4OiBkYXRhLmVsZW1lbnQuZ2V0Tm9kZSgpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLngsXHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGhpZGUoJHRvb2xUaXApO1xyXG5cclxuICAgICAgICBmdW5jdGlvbiBvbihldmVudCwgc2VsZWN0b3IsIGNhbGxiYWNrKSB7XHJcbiAgICAgICAgICAgICRjaGFydC5hZGRFdmVudExpc3RlbmVyKFxyXG4gICAgICAgICAgICAgICAgZXZlbnQsXHJcbiAgICAgICAgICAgICAgICBmdW5jdGlvbiAoZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICghc2VsZWN0b3IgfHwgaGFzQ2xhc3MoZS50YXJnZXQsIHNlbGVjdG9yKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhlKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgeyBwYXNzaXZlOiB0cnVlIH0sXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBvbignbW91c2Vtb3ZlJywgdW5kZWZpbmVkLCAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgY2xvc2VzdFBvaW50ID0gZ2V0Q2xvc2VzdFBvaW50KGV2ZW50LmNsaWVudFgpO1xyXG4gICAgICAgICAgICBpZiAoIWNsb3Nlc3RQb2ludCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHBvaW50cy5mb3JFYWNoKHBvaW50ID0+IHBvaW50LmV2ZW50LmVsZW1lbnQucmVtb3ZlQ2xhc3MoJ2N0LXRvb2x0aXAtaG92ZXInKSk7XHJcbiAgICAgICAgICAgIGNsb3Nlc3RQb2ludC5lbGVtZW50LmFkZENsYXNzKCdjdC10b29sdGlwLWhvdmVyJyk7XHJcblxyXG4gICAgICAgICAgICBjb25zdCAkcG9pbnQgPSBjbG9zZXN0UG9pbnQuZWxlbWVudC5nZXROb2RlKCkgYXMgSFRNTEVsZW1lbnQ7XHJcblxyXG4gICAgICAgICAgICBjb25zdCBzZXJpZXNOYW1lID0gJ2N0OnNlcmllcy1uYW1lJztcclxuICAgICAgICAgICAgY29uc3QgbWV0YToge1xyXG4gICAgICAgICAgICAgICAgbGFiZWw6IHN0cmluZztcclxuICAgICAgICAgICAgICAgIGZvcm1hdE9wdGlvbnM6IENoYXJ0Rm9ybWF0T3B0aW9ucztcclxuICAgICAgICAgICAgfSA9IGNsb3Nlc3RQb2ludC5tZXRhO1xyXG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9ICRwb2ludC5nZXRBdHRyaWJ1dGUoJ2N0OnZhbHVlJyk7XHJcblxyXG4gICAgICAgICAgICBjb25zdCBkYXRlRm9ybWF0dGVyID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQobWV0YS5mb3JtYXRPcHRpb25zLmxvY2FsZSk7XHJcbiAgICAgICAgICAgIGNvbnN0IGZvcm1hdHRlZFZhbHVlID1cclxuICAgICAgICAgICAgICAgIG1ldGEuZm9ybWF0T3B0aW9ucy5mb3JtYXRWYWx1ZUFzID09PSAnY3VycmVuY3knXHJcbiAgICAgICAgICAgICAgICAgICAgPyBuZXcgSW50bC5OdW1iZXJGb3JtYXQobWV0YS5mb3JtYXRPcHRpb25zLmxvY2FsZSwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlOiAnY3VycmVuY3knLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbmN5OiBtZXRhLmZvcm1hdE9wdGlvbnMuY3VycmVuY3lDb2RlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG1pbmltdW1GcmFjdGlvbkRpZ2l0czogMixcclxuICAgICAgICAgICAgICAgICAgICAgIH0pLmZvcm1hdCgrKHZhbHVlID8/IDApIC8gMTAwKVxyXG4gICAgICAgICAgICAgICAgICAgIDogbmV3IEludGwuTnVtYmVyRm9ybWF0KG1ldGEuZm9ybWF0T3B0aW9ucy5sb2NhbGUpLmZvcm1hdCgrKHZhbHVlID8/IDApKTtcclxuXHJcbiAgICAgICAgICAgIGNvbnN0IHRvb2x0aXBUZXh0ID0gYFxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidG9vbHRpcC1kYXRlXCI+JHtkYXRlRm9ybWF0dGVyLmZvcm1hdChuZXcgRGF0ZShtZXRhLmxhYmVsKSl9PC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0b29sdGlwLXZhbHVlXCI+JHtmb3JtYXR0ZWRWYWx1ZX08L2Rpdj5cclxuICAgICAgICAgICBgO1xyXG5cclxuICAgICAgICAgICAgJHRvb2xUaXAuaW5uZXJIVE1MID0gdG9vbHRpcFRleHQ7XHJcbiAgICAgICAgICAgIHNldFBvc2l0aW9uKCRwb2ludCk7XHJcbiAgICAgICAgICAgIHNob3coJHRvb2xUaXApO1xyXG5cclxuICAgICAgICAgICAgLy8gUmVtZW1iZXIgaGVpZ2h0IGFuZCB3aWR0aCB0byBhdm9pZCB3cm9uZyBwb3NpdGlvbiBpbiBJRVxyXG4gICAgICAgICAgICBoZWlnaHQgPSAkdG9vbFRpcC5vZmZzZXRIZWlnaHQ7XHJcbiAgICAgICAgICAgIHdpZHRoID0gJHRvb2xUaXAub2Zmc2V0V2lkdGg7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIG9uKCdtb3VzZWxlYXZlJywgdW5kZWZpbmVkLCAoKSA9PiB7XHJcbiAgICAgICAgICAgIGhpZGUoJHRvb2xUaXApO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBmdW5jdGlvbiBzZXRQb3NpdGlvbihlbGVtZW50OiBIVE1MRWxlbWVudCkge1xyXG4gICAgICAgICAgICBoZWlnaHQgPSBoZWlnaHQgfHwgJHRvb2xUaXAub2Zmc2V0SGVpZ2h0O1xyXG4gICAgICAgICAgICB3aWR0aCA9IHdpZHRoIHx8ICR0b29sVGlwLm9mZnNldFdpZHRoO1xyXG4gICAgICAgICAgICBjb25zdCB7IHg6IGVsWCwgeTogZWxZLCB3aWR0aDogZWxXaWR0aCwgaGVpZ2h0OiBlbEhlaWdodCB9ID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgICAgICAgICAgY29uc3Qgb2Zmc2V0WCA9IC13aWR0aCAvIDIgKyBvcHRpb25zLnRvb2x0aXBPZmZzZXQueDtcclxuICAgICAgICAgICAgY29uc3Qgb2Zmc2V0WSA9IC1oZWlnaHQgKyBvcHRpb25zLnRvb2x0aXBPZmZzZXQueTtcclxuICAgICAgICAgICAgbGV0IGFuY2hvclg7XHJcbiAgICAgICAgICAgIGxldCBhbmNob3JZO1xyXG5cclxuICAgICAgICAgICAgaWYgKCFvcHRpb25zLmFwcGVuZFRvQm9keSkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgYm94ID0gJGNoYXJ0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgbGVmdCA9IGVsWCAtIGJveC5sZWZ0IC0gd2luZG93LnBhZ2VYT2Zmc2V0O1xyXG4gICAgICAgICAgICAgICAgY29uc3QgdG9wID0gZWxZIC0gYm94LnRvcCAtIHdpbmRvdy5wYWdlWU9mZnNldDtcclxuXHJcbiAgICAgICAgICAgICAgICAkdG9vbFRpcC5zdHlsZS50b3AgPSAoYW5jaG9yWSB8fCB0b3ApICsgb2Zmc2V0WSArICdweCc7XHJcbiAgICAgICAgICAgICAgICAkdG9vbFRpcC5zdHlsZS5sZWZ0ID0gKGFuY2hvclggfHwgbGVmdCkgKyBvZmZzZXRYICsgJ3B4JztcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICR0b29sVGlwLnN0eWxlLnRvcCA9IGVsWSArIG9mZnNldFkgKyAncHgnO1xyXG4gICAgICAgICAgICAgICAgJHRvb2xUaXAuc3R5bGUubGVmdCA9IGVsWCArIG9mZnNldFggKyAncHgnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gc2hvdyhlbGVtZW50KSB7XHJcbiAgICBpZiAoIWhhc0NsYXNzKGVsZW1lbnQsICd0b29sdGlwLXNob3cnKSkge1xyXG4gICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gZWxlbWVudC5jbGFzc05hbWUgKyAnIHRvb2x0aXAtc2hvdyc7XHJcbiAgICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGhpZGUoZWxlbWVudCkge1xyXG4gICAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKCd0b29sdGlwLXNob3cnICsgJ1xcXFxzKicsICdnaScpO1xyXG4gICAgZWxlbWVudC5jbGFzc05hbWUgPSBlbGVtZW50LmNsYXNzTmFtZS5yZXBsYWNlKHJlZ2V4LCAnJykudHJpbSgpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBoYXNDbGFzcyhlbGVtZW50LCBjbGFzc05hbWUpIHtcclxuICAgIHJldHVybiAoJyAnICsgZWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2NsYXNzJykgKyAnICcpLmluZGV4T2YoJyAnICsgY2xhc3NOYW1lICsgJyAnKSA+IC0xO1xyXG59XHJcblxyXG5mdW5jdGlvbiBuZXh0KGVsZW1lbnQsIGNsYXNzTmFtZSkge1xyXG4gICAgZG8ge1xyXG4gICAgICAgIGVsZW1lbnQgPSBlbGVtZW50Lm5leHRTaWJsaW5nO1xyXG4gICAgfSB3aGlsZSAoZWxlbWVudCAmJiAhaGFzQ2xhc3MoZWxlbWVudCwgY2xhc3NOYW1lKSk7XHJcbiAgICByZXR1cm4gZWxlbWVudDtcclxufVxyXG5cclxuZnVuY3Rpb24gdGV4dChlbGVtZW50KSB7XHJcbiAgICByZXR1cm4gZWxlbWVudC5pbm5lclRleHQgfHwgZWxlbWVudC50ZXh0Q29udGVudDtcclxufVxyXG5mdW5jdGlvbiBjYWxjdWxhdGVEaXN0YW5jZSh4MSwgeDIpIHtcclxuICAgIHJldHVybiBNYXRoLmFicyh4MiAtIHgxKTtcclxufVxyXG4iXX0=
143
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC1wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3NoYXJlZC9jb21wb25lbnRzL2NoYXJ0L3Rvb2x0aXAtcGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRztBQUNILHFCQUFxQjtBQUtyQixNQUFNLGNBQWMsR0FBRztJQUNuQixRQUFRLEVBQUUsU0FBUztJQUNuQixpQkFBaUIsRUFBRSxDQUFDO0lBQ3BCLHVCQUF1QixFQUFFLEdBQUc7SUFDNUIsc0JBQXNCLEVBQUUsU0FBUztJQUNqQyxhQUFhLEVBQUU7UUFDWCxDQUFDLEVBQUUsQ0FBQztRQUNKLENBQUMsRUFBRSxDQUFDLEVBQUU7S0FDVDtJQUNELGFBQWEsRUFBRSxLQUFLO0lBQ3BCLFlBQVksRUFBRSxLQUFLO0lBQ25CLEtBQUssRUFBRSxTQUFTO0lBQ2hCLFVBQVUsRUFBRSxVQUFVO0NBQ3pCLENBQUM7QUFFRixNQUFNLFVBQVUsYUFBYSxDQUFDLFdBQTRDO0lBQ3RFLE9BQU8sU0FBUyxPQUFPLENBQUMsS0FBZ0I7UUFDcEMsTUFBTSxPQUFPLEdBQUc7WUFDWixHQUFHLGNBQWM7WUFDakIsR0FBRyxXQUFXO1NBQ2pCLENBQUM7UUFFRixNQUFNLE1BQU0sR0FBSSxLQUFhLENBQUMsU0FBMkIsQ0FBQztRQUMxRCxJQUFJLFFBQVEsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLG1CQUFtQixDQUFtQixDQUFDO1FBQzNFLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDWCxRQUFRLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN6QyxRQUFRLENBQUMsU0FBUyxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7WUFDL0YsSUFBSSxDQUFDLE9B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SyxDQUFDLElBQUksR0FBRyxHQUFHLEdBQUcsT0FBTyxHQUFHLElBQUksQ0FBQzthQUM5QztRQUNMLENBQUM7SUFDTCxDQUFDLENBQUM7QUFDTixDQUFDO0FBRUQsU0FBUyxJQUFJLENBQUMsT0FBTztJQUNqQixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxjQUFjLENBQUMsRUFBRTtRQUNwQyxPQUFPLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxTQUFTLEdBQUcsZUFBZSxDQUFDO0tBQzNEO0FBQ0wsQ0FBQztBQUVELFNBQVMsSUFBSSxDQUFDLE9BQU87SUFDakIsTUFBTSxLQUFLLEdBQUcsSUFBSSxNQUFNLENBQUMsY0FBYyxHQUFHLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN4RCxPQUFPLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztBQUNwRSxDQUFDO0FBRUQsU0FBUyxRQUFRLENBQUMsT0FBTyxFQUFFLFNBQVM7SUFDaEMsT0FBTyxDQUFDLEdBQUcsR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEdBQUcsU0FBUyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQzNGLENBQUM7QUFFRCxTQUFTLGlCQUFpQixDQUFDLEVBQUUsRUFBRSxFQUFFO0lBQzdCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7QUFDN0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBCYXNlZCBvbiBodHRwczovL2dpdGh1Yi5jb20vdG1tZGF0YS9jaGFydGlzdC1wbHVnaW4tdG9vbHRpcC9ibG9iL21hc3Rlci9zcmMvc2NyaXB0cy9jaGFydGlzdC1wbHVnaW4tdG9vbHRpcC5qc1xyXG4gKlxyXG4gKi9cclxuLyogZ2xvYmFsIENoYXJ0aXN0ICovXHJcblxyXG5pbXBvcnQgeyBEcmF3RXZlbnQsIExpbmVDaGFydCB9IGZyb20gJ2NoYXJ0aXN0JztcclxuaW1wb3J0IHsgQ2hhcnRGb3JtYXRPcHRpb25zIH0gZnJvbSAnLi9jaGFydC5jb21wb25lbnQnO1xyXG5cclxuY29uc3QgZGVmYXVsdE9wdGlvbnMgPSB7XHJcbiAgICBjdXJyZW5jeTogdW5kZWZpbmVkLFxyXG4gICAgY3VycmVuY3lQcmVjaXNpb246IDIsXHJcbiAgICBjdXJyZW5jeVByZWNpc2lvbkZhY3RvcjogMTAwLFxyXG4gICAgY3VycmVuY3lGb3JtYXRDYWxsYmFjazogdW5kZWZpbmVkLFxyXG4gICAgdG9vbHRpcE9mZnNldDoge1xyXG4gICAgICAgIHg6IDAsXHJcbiAgICAgICAgeTogLTIwLFxyXG4gICAgfSxcclxuICAgIGFuY2hvclRvUG9pbnQ6IGZhbHNlLFxyXG4gICAgYXBwZW5kVG9Cb2R5OiBmYWxzZSxcclxuICAgIGNsYXNzOiB1bmRlZmluZWQsXHJcbiAgICBwb2ludENsYXNzOiAnY3QtcG9pbnQnLFxyXG59O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHRvb2x0aXBQbHVnaW4odXNlck9wdGlvbnM/OiBQYXJ0aWFsPHR5cGVvZiBkZWZhdWx0T3B0aW9ucz4pIHtcclxuICAgIHJldHVybiBmdW5jdGlvbiB0b29sdGlwKGNoYXJ0OiBMaW5lQ2hhcnQpIHtcclxuICAgICAgICBjb25zdCBvcHRpb25zID0ge1xyXG4gICAgICAgICAgICAuLi5kZWZhdWx0T3B0aW9ucyxcclxuICAgICAgICAgICAgLi4udXNlck9wdGlvbnMsXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgY29uc3QgJGNoYXJ0ID0gKGNoYXJ0IGFzIGFueSkuY29udGFpbmVyIGFzIEhUTUxEaXZFbGVtZW50O1xyXG4gICAgICAgIGxldCAkdG9vbFRpcCA9ICRjaGFydC5xdWVyeVNlbGVjdG9yKCcuY2hhcnRpc3QtdG9vbHRpcCcpIGFzIEhUTUxEaXZFbGVtZW50O1xyXG4gICAgICAgIGlmICghJHRvb2xUaXApIHtcclxuICAgICAgICAgICAgJHRvb2xUaXAgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuICAgICAgICAgICAgJHRvb2xUaXAuY2xhc3NOYW1lID0gIW9wdGlvbnMuY2xhc3MgPyAnY2hhcnRpc3QtdG9vbHRpcCcgOiAnY2hhcnRpc3QtdG9vbHRpcCAnICsgb3B0aW9ucy5jbGFzcztcclxuICAgICAgICAgICAgaWYgKCFvcHRpb25zLmFwcGVuZFRvQm9keSkge1xyXG4gICAgICAgICAgICAgICAgJGNoYXJ0LmFwcGVuZENoaWxkKCR0b29sVGlwKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoJHRvb2xUaXApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCBoZWlnaHQgPSAkdG9vbFRpcC5vZmZzZXRIZWlnaHQ7XHJcbiAgICAgICAgbGV0IHdpZHRoID0gJHRvb2xUaXAub2Zmc2V0V2lkdGg7XHJcbiAgICAgICAgY29uc3QgcG9pbnRzOiBBcnJheTx7XHJcbiAgICAgICAgICAgIGV2ZW50OiBEcmF3RXZlbnQ7XHJcbiAgICAgICAgICAgIHg6IG51bWJlcjtcclxuICAgICAgICB9PiA9IFtdO1xyXG5cclxuICAgICAgICBmdW5jdGlvbiBnZXRDbG9zZXN0UG9pbnQobW91c2VYOiBudW1iZXIpOiBEcmF3RXZlbnQge1xyXG4gICAgICAgICAgICBsZXQgY2xvc2VzdEVsZW1lbnQ6IERyYXdFdmVudCB8IG51bGwgPSBudWxsO1xyXG4gICAgICAgICAgICBsZXQgY2xvc2VzdERpc3RhbmNlID0gSW5maW5pdHk7XHJcblxyXG4gICAgICAgICAgICAvLyBJdGVyYXRlIHRocm91Z2ggdGhlIHBvaW50cyBhcnJheSB0byBmaW5kIHRoZSBjbG9zZXN0IGVsZW1lbnRcclxuICAgICAgICAgICAgZm9yIChjb25zdCBwb2ludCBvZiBwb2ludHMpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRYID0gcG9pbnQueDtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGRpc3RhbmNlID0gY2FsY3VsYXRlRGlzdGFuY2UobW91c2VYLCBlbGVtZW50WCk7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKGRpc3RhbmNlIDwgY2xvc2VzdERpc3RhbmNlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2xvc2VzdEVsZW1lbnQgPSBwb2ludC5ldmVudDtcclxuICAgICAgICAgICAgICAgICAgICBjbG9zZXN0RGlzdGFuY2UgPSBkaXN0YW5jZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5vbi1udWxsLWFzc2VydGlvblxyXG4gICAgICAgICAgICByZXR1cm4gY2xvc2VzdEVsZW1lbnQhO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY2hhcnQub24oJ2RyYXcnLCBkYXRhID0+IHtcclxuICAgICAgICAgICAgaWYgKGRhdGEudHlwZSA9PT0gJ3BvaW50Jykge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZWxlbWVudCA9IGRhdGEuZWxlbWVudDtcclxuICAgICAgICAgICAgICAgIHBvaW50c1tkYXRhLmluZGV4XSA9IHtcclxuICAgICAgICAgICAgICAgICAgICBldmVudDogZGF0YSxcclxuICAgICAgICAgICAgICAgICAgICB4OiBkYXRhLmVsZW1lbnQuZ2V0Tm9kZSgpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLngsXHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGhpZGUoJHRvb2xUaXApO1xyXG5cclxuICAgICAgICBmdW5jdGlvbiBvbihldmVudCwgc2VsZWN0b3IsIGNhbGxiYWNrKSB7XHJcbiAgICAgICAgICAgICRjaGFydC5hZGRFdmVudExpc3RlbmVyKFxyXG4gICAgICAgICAgICAgICAgZXZlbnQsXHJcbiAgICAgICAgICAgICAgICBmdW5jdGlvbiAoZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICghc2VsZWN0b3IgfHwgaGFzQ2xhc3MoZS50YXJnZXQsIHNlbGVjdG9yKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhlKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgeyBwYXNzaXZlOiB0cnVlIH0sXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBvbignbW91c2Vtb3ZlJywgdW5kZWZpbmVkLCAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgY2xvc2VzdFBvaW50ID0gZ2V0Q2xvc2VzdFBvaW50KGV2ZW50LmNsaWVudFgpO1xyXG4gICAgICAgICAgICBpZiAoIWNsb3Nlc3RQb2ludCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHBvaW50cy5mb3JFYWNoKHBvaW50ID0+IHBvaW50LmV2ZW50LmVsZW1lbnQucmVtb3ZlQ2xhc3MoJ2N0LXRvb2x0aXAtaG92ZXInKSk7XHJcbiAgICAgICAgICAgIGNsb3Nlc3RQb2ludC5lbGVtZW50LmFkZENsYXNzKCdjdC10b29sdGlwLWhvdmVyJyk7XHJcblxyXG4gICAgICAgICAgICBjb25zdCAkcG9pbnQgPSBjbG9zZXN0UG9pbnQuZWxlbWVudC5nZXROb2RlKCkgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICAgICAgICAgIGNvbnN0IG1ldGE6IHtcclxuICAgICAgICAgICAgICAgIGxhYmVsOiBzdHJpbmc7XHJcbiAgICAgICAgICAgICAgICBmb3JtYXRPcHRpb25zOiBDaGFydEZvcm1hdE9wdGlvbnM7XHJcbiAgICAgICAgICAgIH0gPSBjbG9zZXN0UG9pbnQubWV0YTtcclxuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSAkcG9pbnQuZ2V0QXR0cmlidXRlKCdjdDp2YWx1ZScpO1xyXG5cclxuICAgICAgICAgICAgY29uc3QgZGF0ZUZvcm1hdHRlciA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KG1ldGEuZm9ybWF0T3B0aW9ucy5sb2NhbGUpO1xyXG4gICAgICAgICAgICBjb25zdCBmb3JtYXR0ZWRWYWx1ZSA9XHJcbiAgICAgICAgICAgICAgICBtZXRhLmZvcm1hdE9wdGlvbnMuZm9ybWF0VmFsdWVBcyA9PT0gJ2N1cnJlbmN5J1xyXG4gICAgICAgICAgICAgICAgICAgID8gbmV3IEludGwuTnVtYmVyRm9ybWF0KG1ldGEuZm9ybWF0T3B0aW9ucy5sb2NhbGUsIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZTogJ2N1cnJlbmN5JyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW5jeTogbWV0YS5mb3JtYXRPcHRpb25zLmN1cnJlbmN5Q29kZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBtaW5pbXVtRnJhY3Rpb25EaWdpdHM6IG9wdGlvbnMuY3VycmVuY3lQcmVjaXNpb24sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4aW11bUZyYWN0aW9uRGlnaXRzOiBvcHRpb25zLmN1cnJlbmN5UHJlY2lzaW9uLFxyXG4gICAgICAgICAgICAgICAgICAgICAgfSkuZm9ybWF0KCsodmFsdWUgPz8gMCkgLyBvcHRpb25zLmN1cnJlbmN5UHJlY2lzaW9uRmFjdG9yKVxyXG4gICAgICAgICAgICAgICAgICAgIDogbmV3IEludGwuTnVtYmVyRm9ybWF0KG1ldGEuZm9ybWF0T3B0aW9ucy5sb2NhbGUpLmZvcm1hdCgrKHZhbHVlID8/IDApKTtcclxuXHJcbiAgICAgICAgICAgIGNvbnN0IHRvb2x0aXBUZXh0ID0gYFxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidG9vbHRpcC1kYXRlXCI+JHtkYXRlRm9ybWF0dGVyLmZvcm1hdChuZXcgRGF0ZShtZXRhLmxhYmVsKSl9PC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0b29sdGlwLXZhbHVlXCI+JHtmb3JtYXR0ZWRWYWx1ZX08L2Rpdj5cclxuICAgICAgICAgICBgO1xyXG5cclxuICAgICAgICAgICAgJHRvb2xUaXAuaW5uZXJIVE1MID0gdG9vbHRpcFRleHQ7XHJcbiAgICAgICAgICAgIHNldFBvc2l0aW9uKCRwb2ludCk7XHJcbiAgICAgICAgICAgIHNob3coJHRvb2xUaXApO1xyXG5cclxuICAgICAgICAgICAgLy8gUmVtZW1iZXIgaGVpZ2h0IGFuZCB3aWR0aCB0byBhdm9pZCB3cm9uZyBwb3NpdGlvbiBpbiBJRVxyXG4gICAgICAgICAgICBoZWlnaHQgPSAkdG9vbFRpcC5vZmZzZXRIZWlnaHQ7XHJcbiAgICAgICAgICAgIHdpZHRoID0gJHRvb2xUaXAub2Zmc2V0V2lkdGg7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIG9uKCdtb3VzZWxlYXZlJywgdW5kZWZpbmVkLCAoKSA9PiB7XHJcbiAgICAgICAgICAgIGhpZGUoJHRvb2xUaXApO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBmdW5jdGlvbiBzZXRQb3NpdGlvbihlbGVtZW50OiBIVE1MRWxlbWVudCkge1xyXG4gICAgICAgICAgICBoZWlnaHQgPSBoZWlnaHQgfHwgJHRvb2xUaXAub2Zmc2V0SGVpZ2h0O1xyXG4gICAgICAgICAgICB3aWR0aCA9IHdpZHRoIHx8ICR0b29sVGlwLm9mZnNldFdpZHRoO1xyXG4gICAgICAgICAgICBjb25zdCB7IHg6IGVsWCwgeTogZWxZLCB3aWR0aDogZWxXaWR0aCwgaGVpZ2h0OiBlbEhlaWdodCB9ID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgICAgICAgICAgY29uc3Qgb2Zmc2V0WCA9IC13aWR0aCAvIDIgKyBvcHRpb25zLnRvb2x0aXBPZmZzZXQueDtcclxuICAgICAgICAgICAgY29uc3Qgb2Zmc2V0WSA9IC1oZWlnaHQgKyBvcHRpb25zLnRvb2x0aXBPZmZzZXQueTtcclxuICAgICAgICAgICAgbGV0IGFuY2hvclg7XHJcbiAgICAgICAgICAgIGxldCBhbmNob3JZO1xyXG5cclxuICAgICAgICAgICAgaWYgKCFvcHRpb25zLmFwcGVuZFRvQm9keSkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgYm94ID0gJGNoYXJ0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgbGVmdCA9IGVsWCAtIGJveC5sZWZ0IC0gd2luZG93LnBhZ2VYT2Zmc2V0O1xyXG4gICAgICAgICAgICAgICAgY29uc3QgdG9wID0gZWxZIC0gYm94LnRvcCAtIHdpbmRvdy5wYWdlWU9mZnNldDtcclxuXHJcbiAgICAgICAgICAgICAgICAkdG9vbFRpcC5zdHlsZS50b3AgPSAoYW5jaG9yWSB8fCB0b3ApICsgb2Zmc2V0WSArICdweCc7XHJcbiAgICAgICAgICAgICAgICAkdG9vbFRpcC5zdHlsZS5sZWZ0ID0gKGFuY2hvclggfHwgbGVmdCkgKyBvZmZzZXRYICsgJ3B4JztcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICR0b29sVGlwLnN0eWxlLnRvcCA9IGVsWSArIG9mZnNldFkgKyAncHgnO1xyXG4gICAgICAgICAgICAgICAgJHRvb2xUaXAuc3R5bGUubGVmdCA9IGVsWCArIG9mZnNldFggKyAncHgnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gc2hvdyhlbGVtZW50KSB7XHJcbiAgICBpZiAoIWhhc0NsYXNzKGVsZW1lbnQsICd0b29sdGlwLXNob3cnKSkge1xyXG4gICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gZWxlbWVudC5jbGFzc05hbWUgKyAnIHRvb2x0aXAtc2hvdyc7XHJcbiAgICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGhpZGUoZWxlbWVudCkge1xyXG4gICAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKCd0b29sdGlwLXNob3cnICsgJ1xcXFxzKicsICdnaScpO1xyXG4gICAgZWxlbWVudC5jbGFzc05hbWUgPSBlbGVtZW50LmNsYXNzTmFtZS5yZXBsYWNlKHJlZ2V4LCAnJykudHJpbSgpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBoYXNDbGFzcyhlbGVtZW50LCBjbGFzc05hbWUpIHtcclxuICAgIHJldHVybiAoJyAnICsgZWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2NsYXNzJykgKyAnICcpLmluZGV4T2YoJyAnICsgY2xhc3NOYW1lICsgJyAnKSA+IC0xO1xyXG59XHJcblxyXG5mdW5jdGlvbiBjYWxjdWxhdGVEaXN0YW5jZSh4MSwgeDIpIHtcclxuICAgIHJldHVybiBNYXRoLmFicyh4MiAtIHgxKTtcclxufVxyXG4iXX0=
@@ -4,18 +4,20 @@ import { BehaviorSubject } from 'rxjs';
4
4
  import { getDefaultConfigArgValue } from '../../../common/utilities/configurable-operation-utils';
5
5
  import { interpolateDescription } from '../../../common/utilities/interpolate-description';
6
6
  import * as i0 from "@angular/core";
7
- import * as i1 from "@clr/angular";
8
- import * as i2 from "@angular/common";
9
- import * as i3 from "@angular/forms";
10
- import * as i4 from "../help-tooltip/help-tooltip.component";
11
- import * as i5 from "../../dynamic-form-inputs/dynamic-form-input/dynamic-form-input.component";
12
- import * as i6 from "@ngx-translate/core";
13
- import * as i7 from "../../pipes/sentence-case.pipe";
7
+ import * as i1 from "../../../providers/currency/currency.service";
8
+ import * as i2 from "@clr/angular";
9
+ import * as i3 from "@angular/common";
10
+ import * as i4 from "@angular/forms";
11
+ import * as i5 from "../help-tooltip/help-tooltip.component";
12
+ import * as i6 from "../../dynamic-form-inputs/dynamic-form-input/dynamic-form-input.component";
13
+ import * as i7 from "@ngx-translate/core";
14
+ import * as i8 from "../../pipes/sentence-case.pipe";
14
15
  /**
15
16
  * A form input which renders a card with the internal form fields of the given ConfigurableOperation.
16
17
  */
17
18
  export class ConfigurableInputComponent {
18
- constructor() {
19
+ constructor(currencyService) {
20
+ this.currencyService = currencyService;
19
21
  this.readonly = false;
20
22
  this.removable = true;
21
23
  this.position = 0;
@@ -26,7 +28,7 @@ export class ConfigurableInputComponent {
26
28
  }
27
29
  interpolateDescription() {
28
30
  if (this.operationDefinition) {
29
- return interpolateDescription(this.operationDefinition, this.form.value);
31
+ return interpolateDescription(this.operationDefinition, this.form.value, this.currencyService.precisionFactor);
30
32
  }
31
33
  else {
32
34
  return '';
@@ -112,7 +114,7 @@ export class ConfigurableInputComponent {
112
114
  }
113
115
  return null;
114
116
  }
115
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: ConfigurableInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
117
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: ConfigurableInputComponent, deps: [{ token: i1.CurrencyService }], target: i0.ɵɵFactoryTarget.Component }); }
116
118
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: ConfigurableInputComponent, selector: "vdr-configurable-input", inputs: { operation: "operation", operationDefinition: "operationDefinition", readonly: "readonly", removable: "removable", position: "position" }, outputs: { remove: "remove" }, providers: [
117
119
  {
118
120
  provide: NG_VALUE_ACCESSOR,
@@ -124,7 +126,7 @@ export class ConfigurableInputComponent {
124
126
  useExisting: forwardRef(() => ConfigurableInputComponent),
125
127
  multi: true,
126
128
  },
127
- ], usesOnChanges: true, ngImport: i0, template: "<div class=\"card\" *ngIf=\"operation\">\r\n <div class=\"card-block\">{{ interpolateDescription() }}</div>\r\n <div class=\"card-block\" *ngIf=\"operation.args?.length\">\r\n <form [formGroup]=\"form\" *ngIf=\"operation\" class=\"operation-inputs\">\r\n <div *ngFor=\"let arg of operation.args; trackBy: trackByName\" class=\"arg-row\">\r\n <ng-container *ngIf=\"form.get(arg.name) && getArgDef(arg) as argDef\">\r\n <label class=\"clr-control-label\">{{ argDef.label || (arg.name | sentenceCase) }}</label>\r\n <vdr-help-tooltip\r\n class=\"mr3\"\r\n *ngIf=\"argDef.description\"\r\n [content]=\"argDef.description\"\r\n ></vdr-help-tooltip>\r\n <vdr-dynamic-form-input\r\n [def]=\"getArgDef(arg)\"\r\n [readonly]=\"readonly\"\r\n [control]=\"form.get(arg.name)\"\r\n [formControlName]=\"arg.name\"\r\n ></vdr-dynamic-form-input>\r\n </ng-container>\r\n </div>\r\n </form>\r\n </div>\r\n <div class=\"card-footer\" *ngIf=\"!readonly && removable\">\r\n <button class=\"button-small warning\" (click)=\"remove.emit(operation)\">\r\n <clr-icon shape=\"times\"></clr-icon>\r\n {{ 'common.remove' | translate }}\r\n </button>\r\n </div>\r\n</div>\r\n", styles: [":host{display:block;margin-bottom:12px}:host>.card{margin-top:6px}.operation-inputs{padding-top:0}.operation-inputs .arg-row:not(:last-child){margin-bottom:12px}.operation-inputs .arg-row{display:flex;flex-wrap:wrap;align-items:center}.operation-inputs .arg-row label{margin-inline-end:6px}.operation-inputs .hidden{display:none}.operation-inputs label{min-width:130px;display:inline-block}\n"], dependencies: [{ kind: "directive", type: i1.ClrDatagridItemsTrackBy, selector: "[ngForTrackBy]", inputs: ["ngForTrackBy"] }, { kind: "directive", type: i1.ClrIconCustomTag, selector: "clr-icon" }, { kind: "directive", type: i1.ClrLabel, selector: "label", inputs: ["for"] }, { 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.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i4.HelpTooltipComponent, selector: "vdr-help-tooltip", inputs: ["content", "position"] }, { kind: "component", type: i5.DynamicFormInputComponent, selector: "vdr-dynamic-form-input", inputs: ["def", "readonly", "control"] }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }, { kind: "pipe", type: i7.SentenceCasePipe, name: "sentenceCase" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
129
+ ], usesOnChanges: true, ngImport: i0, template: "<div class=\"card\" *ngIf=\"operation\">\r\n <div class=\"card-block\">{{ interpolateDescription() }}</div>\r\n <div class=\"card-block\" *ngIf=\"operation.args?.length\">\r\n <form [formGroup]=\"form\" *ngIf=\"operation\" class=\"operation-inputs\">\r\n <div *ngFor=\"let arg of operation.args; trackBy: trackByName\" class=\"arg-row\">\r\n <ng-container *ngIf=\"form.get(arg.name) && getArgDef(arg) as argDef\">\r\n <label class=\"clr-control-label\">{{ argDef.label || (arg.name | sentenceCase) }}</label>\r\n <vdr-help-tooltip\r\n class=\"mr3\"\r\n *ngIf=\"argDef.description\"\r\n [content]=\"argDef.description\"\r\n ></vdr-help-tooltip>\r\n <vdr-dynamic-form-input\r\n [def]=\"getArgDef(arg)\"\r\n [readonly]=\"readonly\"\r\n [control]=\"form.get(arg.name)\"\r\n [formControlName]=\"arg.name\"\r\n ></vdr-dynamic-form-input>\r\n </ng-container>\r\n </div>\r\n </form>\r\n </div>\r\n <div class=\"card-footer\" *ngIf=\"!readonly && removable\">\r\n <button class=\"button-small warning\" (click)=\"remove.emit(operation)\">\r\n <clr-icon shape=\"times\"></clr-icon>\r\n {{ 'common.remove' | translate }}\r\n </button>\r\n </div>\r\n</div>\r\n", styles: [":host{display:block;margin-bottom:12px}:host>.card{margin-top:6px}.operation-inputs{padding-top:0}.operation-inputs .arg-row:not(:last-child){margin-bottom:12px}.operation-inputs .arg-row{display:flex;flex-wrap:wrap;align-items:center}.operation-inputs .arg-row label{margin-inline-end:6px}.operation-inputs .hidden{display:none}.operation-inputs label{min-width:130px;display:inline-block}\n"], dependencies: [{ kind: "directive", type: i2.ClrDatagridItemsTrackBy, selector: "[ngForTrackBy]", inputs: ["ngForTrackBy"] }, { kind: "directive", type: i2.ClrIconCustomTag, selector: "clr-icon" }, { kind: "directive", type: i2.ClrLabel, selector: "label", inputs: ["for"] }, { 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.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i5.HelpTooltipComponent, selector: "vdr-help-tooltip", inputs: ["content", "position"] }, { kind: "component", type: i6.DynamicFormInputComponent, selector: "vdr-dynamic-form-input", inputs: ["def", "readonly", "control"] }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }, { kind: "pipe", type: i8.SentenceCasePipe, name: "sentenceCase" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
128
130
  }
129
131
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: ConfigurableInputComponent, decorators: [{
130
132
  type: Component,
@@ -140,7 +142,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImpor
140
142
  multi: true,
141
143
  },
142
144
  ], template: "<div class=\"card\" *ngIf=\"operation\">\r\n <div class=\"card-block\">{{ interpolateDescription() }}</div>\r\n <div class=\"card-block\" *ngIf=\"operation.args?.length\">\r\n <form [formGroup]=\"form\" *ngIf=\"operation\" class=\"operation-inputs\">\r\n <div *ngFor=\"let arg of operation.args; trackBy: trackByName\" class=\"arg-row\">\r\n <ng-container *ngIf=\"form.get(arg.name) && getArgDef(arg) as argDef\">\r\n <label class=\"clr-control-label\">{{ argDef.label || (arg.name | sentenceCase) }}</label>\r\n <vdr-help-tooltip\r\n class=\"mr3\"\r\n *ngIf=\"argDef.description\"\r\n [content]=\"argDef.description\"\r\n ></vdr-help-tooltip>\r\n <vdr-dynamic-form-input\r\n [def]=\"getArgDef(arg)\"\r\n [readonly]=\"readonly\"\r\n [control]=\"form.get(arg.name)\"\r\n [formControlName]=\"arg.name\"\r\n ></vdr-dynamic-form-input>\r\n </ng-container>\r\n </div>\r\n </form>\r\n </div>\r\n <div class=\"card-footer\" *ngIf=\"!readonly && removable\">\r\n <button class=\"button-small warning\" (click)=\"remove.emit(operation)\">\r\n <clr-icon shape=\"times\"></clr-icon>\r\n {{ 'common.remove' | translate }}\r\n </button>\r\n </div>\r\n</div>\r\n", styles: [":host{display:block;margin-bottom:12px}:host>.card{margin-top:6px}.operation-inputs{padding-top:0}.operation-inputs .arg-row:not(:last-child){margin-bottom:12px}.operation-inputs .arg-row{display:flex;flex-wrap:wrap;align-items:center}.operation-inputs .arg-row label{margin-inline-end:6px}.operation-inputs .hidden{display:none}.operation-inputs label{min-width:130px;display:inline-block}\n"] }]
143
- }], propDecorators: { operation: [{
145
+ }], ctorParameters: function () { return [{ type: i1.CurrencyService }]; }, propDecorators: { operation: [{
144
146
  type: Input
145
147
  }], operationDefinition: [{
146
148
  type: Input
@@ -153,4 +155,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImpor
153
155
  }], remove: [{
154
156
  type: Output
155
157
  }] } });
156
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhYmxlLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvc2hhcmVkL2NvbXBvbmVudHMvY29uZmlndXJhYmxlLWlucHV0L2NvbmZpZ3VyYWJsZS1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3NoYXJlZC9jb21wb25lbnRzL2NvbmZpZ3VyYWJsZS1pbnB1dC9jb25maWd1cmFibGUtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixLQUFLLEVBSUwsTUFBTSxHQUVULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFHSCxhQUFhLEVBQ2IsaUJBQWlCLEVBQ2pCLGtCQUFrQixFQUNsQixnQkFBZ0IsRUFHaEIsVUFBVSxHQUNiLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLGVBQWUsRUFBNEIsTUFBTSxNQUFNLENBQUM7QUFPakUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFDbEcsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sbURBQW1ELENBQUM7Ozs7Ozs7OztBQUUzRjs7R0FFRztBQW1CSCxNQUFNLE9BQU8sMEJBQTBCO0lBbEJ2QztRQXVCYSxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFDakIsYUFBUSxHQUFHLENBQUMsQ0FBQztRQUNaLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBeUIsQ0FBQztRQUM3RCxjQUFTLEdBQTRCLEVBQUUsQ0FBQztRQUd4QyxTQUFJLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUV4QiwwQkFBcUIsR0FBRyxJQUFJLGVB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Q2Q7WUFDRDtnQkFDSSxPQUFPLEVBQUUsYUFBYTtnQkFDdEIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQztnQkFDekQsS0FBSyxFQUFFLElBQUk7YUFDZDtTQUNKLCtDQ3BETCxtL0NBNkJBOzsyRkR5QmEsMEJBQTBCO2tCQWxCdEMsU0FBUzsrQkFDSSx3QkFBd0IsbUJBR2pCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyw0QkFBNEI7NEJBQ3ZDLEtBQUssRUFBRSxJQUFJO3lCQUNkO3dCQUNEOzRCQUNJLE9BQU8sRUFBRSxhQUFhOzRCQUN0QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSwyQkFBMkIsQ0FBQzs0QkFDekQsS0FBSyxFQUFFLElBQUk7eUJBQ2Q7cUJBQ0o7OEJBS1EsU0FBUztzQkFBakIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0ksTUFBTTtzQkFBZixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgRXZlbnRFbWl0dGVyLFxyXG4gICAgZm9yd2FyZFJlZixcclxuICAgIElucHV0LFxyXG4gICAgT25DaGFuZ2VzLFxyXG4gICAgT25EZXN0cm95LFxyXG4gICAgT25Jbml0LFxyXG4gICAgT3V0cHV0LFxyXG4gICAgU2ltcGxlQ2hhbmdlcyxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICAgIEFic3RyYWN0Q29udHJvbCxcclxuICAgIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxyXG4gICAgTkdfVkFMSURBVE9SUyxcclxuICAgIE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgVW50eXBlZEZvcm1Db250cm9sLFxyXG4gICAgVW50eXBlZEZvcm1Hcm91cCxcclxuICAgIFZhbGlkYXRpb25FcnJvcnMsXHJcbiAgICBWYWxpZGF0b3IsXHJcbiAgICBWYWxpZGF0b3JzLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtcclxuICAgIENvbmZpZ0FyZyxcclxuICAgIENvbmZpZ0FyZ0RlZmluaXRpb24sXHJcbiAgICBDb25maWd1cmFibGVPcGVyYXRpb24sXHJcbiAgICBDb25maWd1cmFibGVPcGVyYXRpb25EZWZpbml0aW9uLFxyXG59IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9nZW5lcmF0ZWQtdHlwZXMnO1xyXG5pbXBvcnQgeyBnZXREZWZhdWx0Q29uZmlnQXJnVmFsdWUgfSBmcm9tICcuLi8uLi8uLi9jb21tb24vdXRpbGl0aWVzL2NvbmZpZ3VyYWJsZS1vcGVyYXRpb24tdXRpbHMnO1xyXG5pbXBvcnQgeyBpbnRlcnBvbGF0ZURlc2NyaXB0aW9uIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL3V0aWxpdGllcy9pbnRlcnBvbGF0ZS1kZXNjcmlwdGlvbic7XHJcblxyXG4vKipcclxuICogQSBmb3JtIGlucHV0IHdoaWNoIHJlbmRlcnMgYSBjYXJkIHdpdGggdGhlIGludGVybmFsIGZvcm0gZmllbGRzIG9mIHRoZSBnaXZlbiBDb25maWd1cmFibGVPcGVyYXRpb24uXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAndmRyLWNvbmZpZ3VyYWJsZS1pbnB1dCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vY29uZmlndXJhYmxlLWlucHV0LmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2NvbmZpZ3VyYWJsZS1pbnB1dC5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogQ29uZmlndXJhYmxlSW5wdXRDb21wb25lbnQsXHJcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxyXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBDb25maWd1cmFibGVJbnB1dENvbXBvbmVudCksXHJcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgICAgIH0sXHJcbiAgICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29uZmlndXJhYmxlSW5wdXRDb21wb25lbnRcclxuICAgIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFZhbGlkYXRvclxyXG57XHJcbiAgICBASW5wdXQoKSBvcGVyYXRpb24/OiBDb25maWd1cmFibGVPcGVyYXRpb247XHJcbiAgICBASW5wdXQoKSBvcGVyYXRpb25EZWZpbml0aW9uPzogQ29uZmlndXJhYmxlT3BlcmF0aW9uRGVmaW5pdGlvbjtcclxuICAgIEBJbnB1dCgpIHJlYWRvbmx5ID0gZmFsc2U7XHJcbiAgICBASW5wdXQoKSByZW1vdmFibGUgPSB0cnVlO1xyXG4gICAgQElucHV0KCkgcG9zaXRpb24gPSAwO1xyXG4gICAgQE91dHB1dCgpIHJlbW92ZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q29uZmlndXJhYmxlT3BlcmF0aW9uPigpO1xyXG4gICAgYXJnVmFsdWVzOiB7IFtuYW1lOiBzdHJpbmddOiBhbnkgfSA9IHt9O1xyXG4gICAgb25DaGFuZ2U6ICh2YWw6IGFueSkgPT4gdm9pZDtcclxuICAgIG9uVG91Y2g6ICgpID0+IHZvaWQ7XHJcbiAgICBmb3JtID0gbmV3IFVudHlwZWRGb3JtR3JvdXAoe30pO1xyXG4gICAgcG9zaXRpb25DaGFuZ2UkOiBPYnNlcnZhYmxlPG51bWJlcj47XHJcbiAgICBwcml2YXRlIHBvc2l0aW9uQ2hhbmdlU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigwKTtcclxuICAgIHByaXZhdGUgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcblxyXG4gICAgaW50ZXJwb2xhdGVEZXNjcmlwdGlvbigpOiBzdHJpbmcge1xyXG4gICAgICAgIGlmICh0aGlzLm9wZXJhdGlvbkRlZmluaXRpb24pIHtcclxuICAgICAgICAgICAgcmV0dXJuIGludGVycG9sYXRlRGVzY3JpcHRpb24odGhpcy5vcGVyYXRpb25EZWZpbml0aW9uLCB0aGlzLmZvcm0udmFsdWUpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiAnJztcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgdGhpcy5wb3NpdGlvbkNoYW5nZSQgPSB0aGlzLnBvc2l0aW9uQ2hhbmdlU3ViamVjdC5hc09ic2VydmFibGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICAgICAgaWYgKCdvcGVyYXRpb24nIGluIGNoYW5nZXMgfHwgJ29wZXJhdGlvbkRlZmluaXRpb24nIGluIGNoYW5nZXMpIHtcclxuICAgICAgICAgICAgdGhpcy5jcmVhdGVGb3JtKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICgncG9zaXRpb24nIGluIGNoYW5nZXMpIHtcclxuICAgICAgICAgICAgdGhpcy5wb3NpdGlvbkNoYW5nZVN1YmplY3QubmV4dCh0aGlzLnBvc2l0aW9uKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9uKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xyXG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICAgIH1cclxuXHJcbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KSB7XHJcbiAgICAgICAgdGhpcy5vblRvdWNoID0gZm47XHJcbiAgICB9XHJcblxyXG4gICAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKSB7XHJcbiAgICAgICAgaWYgKGlzRGlzYWJsZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5mb3JtLmRpc2FibGUoKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmZvcm0uZW5hYmxlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICAgICAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh2YWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRyYWNrQnlOYW1lKGluZGV4OiBudW1iZXIsIGFyZzogQ29uZmlnQXJnKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gYXJnLm5hbWU7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0QXJnRGVmKGFyZzogQ29uZmlnQXJnKTogQ29uZmlnQXJnRGVmaW5pdGlvbiB8IHVuZGVmaW5lZCB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMub3BlcmF0aW9uRGVmaW5pdGlvbj8uYXJncy5maW5kKGEgPT4gYS5uYW1lID09PSBhcmcubmFtZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBjcmVhdGVGb3JtKCkge1xyXG4gICAgICAgIGlmICghdGhpcy5vcGVyYXRpb24pIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5zdWJzY3JpcHRpb24pIHtcclxuICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5mb3JtID0gbmV3IFVudHlwZWRGb3JtR3JvdXAoe30pO1xyXG4gICAgICAgICh0aGlzLmZvcm0gYXMgYW55KS5fX2lkID0gTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyKDEwKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMub3BlcmF0aW9uLmFyZ3MpIHtcclxuICAgICAgICAgICAgZm9yIChjb25zdCBhcmcgb2YgdGhpcy5vcGVyYXRpb25EZWZpbml0aW9uPy5hcmdzIHx8IFtdKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgdmFsdWU6IGFueSA9IHRoaXMub3BlcmF0aW9uLmFyZ3MuZmluZChhID0+IGEubmFtZSA9PT0gYXJnLm5hbWUpPy52YWx1ZTtcclxuICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBnZXREZWZhdWx0Q29uZmlnQXJnVmFsdWUoYXJnKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGNvbnN0IHZhbGlkYXRvcnMgPSBhcmcubGlzdCA/IHVuZGVmaW5lZCA6IGFyZy5yZXF1aXJlZCA/IFZhbGlkYXRvcnMucmVxdWlyZWQgOiB1bmRlZmluZWQ7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm0uYWRkQ29udHJvbChhcmcubmFtZSwgbmV3IFVudHlwZWRGb3JtQ29udHJvbCh2YWx1ZSwgdmFsaWRhdG9ycykpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHRoaXMuZm9ybS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbHVlID0+IHtcclxuICAgICAgICAgICAgaWYgKHRoaXMub25DaGFuZ2UpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMub25DaGFuZ2Uoe1xyXG4gICAgICAgICAgICAgICAgICAgIGNvZGU6IHRoaXMub3BlcmF0aW9uICYmIHRoaXMub3BlcmF0aW9uLmNvZGUsXHJcbiAgICAgICAgICAgICAgICAgICAgYXJnczogdmFsdWUsXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAodGhpcy5vblRvdWNoKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm9uVG91Y2goKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHZhbGlkYXRlKGM6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcclxuICAgICAgICBpZiAodGhpcy5mb3JtLmludmFsaWQpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY2FyZFwiICpuZ0lmPVwib3BlcmF0aW9uXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ibG9ja1wiPnt7IGludGVycG9sYXRlRGVzY3JpcHRpb24oKSB9fTwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtYmxvY2tcIiAqbmdJZj1cIm9wZXJhdGlvbi5hcmdzPy5sZW5ndGhcIj5cclxuICAgICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1cIiAqbmdJZj1cIm9wZXJhdGlvblwiIGNsYXNzPVwib3BlcmF0aW9uLWlucHV0c1wiPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBhcmcgb2Ygb3BlcmF0aW9uLmFyZ3M7IHRyYWNrQnk6IHRyYWNrQnlOYW1lXCIgY2xhc3M9XCJhcmctcm93XCI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZm9ybS5nZXQoYXJnLm5hbWUpICYmIGdldEFyZ0RlZihhcmcpIGFzIGFyZ0RlZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImNsci1jb250cm9sLWxhYmVsXCI+e3sgYXJnRGVmLmxhYmVsIHx8IChhcmcubmFtZSB8IHNlbnRlbmNlQ2FzZSkgfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDx2ZHItaGVscC10b29sdGlwXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibXIzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJhcmdEZWYuZGVzY3JpcHRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbY29udGVudF09XCJhcmdEZWYuZGVzY3JpcHRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgID48L3Zkci1oZWxwLXRvb2x0aXA+XHJcbiAgICAgICAgICAgICAgICAgICAgPHZkci1keW5hbWljLWZvcm0taW5wdXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2RlZl09XCJnZXRBcmdEZWYoYXJnKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjb250cm9sXT1cImZvcm0uZ2V0KGFyZy5uYW1lKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiYXJnLm5hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgID48L3Zkci1keW5hbWljLWZvcm0taW5wdXQ+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9mb3JtPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1mb290ZXJcIiAqbmdJZj1cIiFyZWFkb25seSAmJiByZW1vdmFibGVcIj5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnV0dG9uLXNtYWxsIHdhcm5pbmdcIiAoY2xpY2spPVwicmVtb3ZlLmVtaXQob3BlcmF0aW9uKVwiPlxyXG4gICAgICAgICAgICA8Y2xyLWljb24gc2hhcGU9XCJ0aW1lc1wiPjwvY2xyLWljb24+XHJcbiAgICAgICAgICAgIHt7ICdjb21tb24ucmVtb3ZlJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
158
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhYmxlLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvc2hhcmVkL2NvbXBvbmVudHMvY29uZmlndXJhYmxlLWlucHV0L2NvbmZpZ3VyYWJsZS1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3NoYXJlZC9jb21wb25lbnRzL2NvbmZpZ3VyYWJsZS1pbnB1dC9jb25maWd1cmFibGUtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixLQUFLLEVBSUwsTUFBTSxHQUVULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFHSCxhQUFhLEVBQ2IsaUJBQWlCLEVBQ2pCLGtCQUFrQixFQUNsQixnQkFBZ0IsRUFHaEIsVUFBVSxHQUNiLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLGVBQWUsRUFBNEIsTUFBTSxNQUFNLENBQUM7QUFPakUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFDbEcsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sbURBQW1ELENBQUM7Ozs7Ozs7Ozs7QUFHM0Y7O0dBRUc7QUFtQkgsTUFBTSxPQUFPLDBCQUEwQjtJQWlCbkMsWUFBb0IsZUFBZ0M7UUFBaEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBWjNDLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsY0FBUyxHQUFHLElBQUksQ0FBQztRQUNqQixhQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQ1osV0FBTSxHQUFHLElBQUksWUFBWSxFQUF5QixDQUFDO1FBQzdELGNBQVMsR0FBNEIsRUFBRSxDQUFDO1FBR3hDLFNBQUksR0FBRyxJQUFJLGdCQUFnQixDQUFD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WUFDUDtnQkFDSSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsMEJBQTBCO2dCQUN2QyxLQUFLLEVBQUUsSUFBSTthQUNkO1lBQ0Q7Z0JBQ0ksT0FBTyxFQUFFLGFBQWE7Z0JBQ3RCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsMEJBQTBCLENBQUM7Z0JBQ3pELEtBQUssRUFBRSxJQUFJO2FBQ2Q7U0FDSiwrQ0NyREwsbS9DQTZCQTs7MkZEMEJhLDBCQUEwQjtrQkFsQnRDLFNBQVM7K0JBQ0ksd0JBQXdCLG1CQUdqQix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsNEJBQTRCOzRCQUN2QyxLQUFLLEVBQUUsSUFBSTt5QkFDZDt3QkFDRDs0QkFDSSxPQUFPLEVBQUUsYUFBYTs0QkFDdEIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsMkJBQTJCLENBQUM7NEJBQ3pELEtBQUssRUFBRSxJQUFJO3lCQUNkO3FCQUNKO3NHQUtRLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNJLE1BQU07c0JBQWYsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICAgIENvbXBvbmVudCxcclxuICAgIEV2ZW50RW1pdHRlcixcclxuICAgIGZvcndhcmRSZWYsXHJcbiAgICBJbnB1dCxcclxuICAgIE9uQ2hhbmdlcyxcclxuICAgIE9uRGVzdHJveSxcclxuICAgIE9uSW5pdCxcclxuICAgIE91dHB1dCxcclxuICAgIFNpbXBsZUNoYW5nZXMsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgICBBYnN0cmFjdENvbnRyb2wsXHJcbiAgICBDb250cm9sVmFsdWVBY2Nlc3NvcixcclxuICAgIE5HX1ZBTElEQVRPUlMsXHJcbiAgICBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgIFVudHlwZWRGb3JtQ29udHJvbCxcclxuICAgIFVudHlwZWRGb3JtR3JvdXAsXHJcbiAgICBWYWxpZGF0aW9uRXJyb3JzLFxyXG4gICAgVmFsaWRhdG9yLFxyXG4gICAgVmFsaWRhdG9ycyxcclxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7XHJcbiAgICBDb25maWdBcmcsXHJcbiAgICBDb25maWdBcmdEZWZpbml0aW9uLFxyXG4gICAgQ29uZmlndXJhYmxlT3BlcmF0aW9uLFxyXG4gICAgQ29uZmlndXJhYmxlT3BlcmF0aW9uRGVmaW5pdGlvbixcclxufSBmcm9tICcuLi8uLi8uLi9jb21tb24vZ2VuZXJhdGVkLXR5cGVzJztcclxuaW1wb3J0IHsgZ2V0RGVmYXVsdENvbmZpZ0FyZ1ZhbHVlIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL3V0aWxpdGllcy9jb25maWd1cmFibGUtb3BlcmF0aW9uLXV0aWxzJztcclxuaW1wb3J0IHsgaW50ZXJwb2xhdGVEZXNjcmlwdGlvbiB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi91dGlsaXRpZXMvaW50ZXJwb2xhdGUtZGVzY3JpcHRpb24nO1xyXG5pbXBvcnQgeyBDdXJyZW5jeVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9wcm92aWRlcnMvY3VycmVuY3kvY3VycmVuY3kuc2VydmljZSc7XHJcblxyXG4vKipcclxuICogQSBmb3JtIGlucHV0IHdoaWNoIHJlbmRlcnMgYSBjYXJkIHdpdGggdGhlIGludGVybmFsIGZvcm0gZmllbGRzIG9mIHRoZSBnaXZlbiBDb25maWd1cmFibGVPcGVyYXRpb24uXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAndmRyLWNvbmZpZ3VyYWJsZS1pbnB1dCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vY29uZmlndXJhYmxlLWlucHV0LmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2NvbmZpZ3VyYWJsZS1pbnB1dC5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogQ29uZmlndXJhYmxlSW5wdXRDb21wb25lbnQsXHJcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxyXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBDb25maWd1cmFibGVJbnB1dENvbXBvbmVudCksXHJcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgICAgIH0sXHJcbiAgICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29uZmlndXJhYmxlSW5wdXRDb21wb25lbnRcclxuICAgIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFZhbGlkYXRvclxyXG57XHJcbiAgICBASW5wdXQoKSBvcGVyYXRpb24/OiBDb25maWd1cmFibGVPcGVyYXRpb247XHJcbiAgICBASW5wdXQoKSBvcGVyYXRpb25EZWZpbml0aW9uPzogQ29uZmlndXJhYmxlT3BlcmF0aW9uRGVmaW5pdGlvbjtcclxuICAgIEBJbnB1dCgpIHJlYWRvbmx5ID0gZmFsc2U7XHJcbiAgICBASW5wdXQoKSByZW1vdmFibGUgPSB0cnVlO1xyXG4gICAgQElucHV0KCkgcG9zaXRpb24gPSAwO1xyXG4gICAgQE91dHB1dCgpIHJlbW92ZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q29uZmlndXJhYmxlT3BlcmF0aW9uPigpO1xyXG4gICAgYXJnVmFsdWVzOiB7IFtuYW1lOiBzdHJpbmddOiBhbnkgfSA9IHt9O1xyXG4gICAgb25DaGFuZ2U6ICh2YWw6IGFueSkgPT4gdm9pZDtcclxuICAgIG9uVG91Y2g6ICgpID0+IHZvaWQ7XHJcbiAgICBmb3JtID0gbmV3IFVudHlwZWRGb3JtR3JvdXAoe30pO1xyXG4gICAgcG9zaXRpb25DaGFuZ2UkOiBPYnNlcnZhYmxlPG51bWJlcj47XHJcbiAgICBwcml2YXRlIHBvc2l0aW9uQ2hhbmdlU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigwKTtcclxuICAgIHByaXZhdGUgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBjdXJyZW5jeVNlcnZpY2U6IEN1cnJlbmN5U2VydmljZSkge31cclxuXHJcbiAgICBpbnRlcnBvbGF0ZURlc2NyaXB0aW9uKCk6IHN0cmluZyB7XHJcbiAgICAgICAgaWYgKHRoaXMub3BlcmF0aW9uRGVmaW5pdGlvbikge1xyXG4gICAgICAgICAgICByZXR1cm4gaW50ZXJwb2xhdGVEZXNjcmlwdGlvbihcclxuICAgICAgICAgICAgICAgIHRoaXMub3BlcmF0aW9uRGVmaW5pdGlvbixcclxuICAgICAgICAgICAgICAgIHRoaXMuZm9ybS52YWx1ZSxcclxuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVuY3lTZXJ2aWNlLnByZWNpc2lvbkZhY3RvcixcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gJyc7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIHRoaXMucG9zaXRpb25DaGFuZ2UkID0gdGhpcy5wb3NpdGlvbkNoYW5nZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgICAgIGlmICgnb3BlcmF0aW9uJyBpbiBjaGFuZ2VzIHx8ICdvcGVyYXRpb25EZWZpbml0aW9uJyBpbiBjaGFuZ2VzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlRm9ybSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoJ3Bvc2l0aW9uJyBpbiBjaGFuZ2VzKSB7XHJcbiAgICAgICAgICAgIHRoaXMucG9zaXRpb25DaGFuZ2VTdWJqZWN0Lm5leHQodGhpcy5wb3NpdGlvbik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCkge1xyXG4gICAgICAgIGlmICh0aGlzLnN1YnNjcmlwdGlvbikge1xyXG4gICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpIHtcclxuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gZm47XHJcbiAgICB9XHJcblxyXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSkge1xyXG4gICAgICAgIHRoaXMub25Ub3VjaCA9IGZuO1xyXG4gICAgfVxyXG5cclxuICAgIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbikge1xyXG4gICAgICAgIGlmIChpc0Rpc2FibGVkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZm9ybS5kaXNhYmxlKCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5mb3JtLmVuYWJsZSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICBpZiAodmFsdWUpIHtcclxuICAgICAgICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUodmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0cmFja0J5TmFtZShpbmRleDogbnVtYmVyLCBhcmc6IENvbmZpZ0FyZyk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIGFyZy5uYW1lO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEFyZ0RlZihhcmc6IENvbmZpZ0FyZyk6IENvbmZpZ0FyZ0RlZmluaXRpb24gfCB1bmRlZmluZWQge1xyXG4gICAgICAgIHJldHVybiB0aGlzLm9wZXJhdGlvbkRlZmluaXRpb24/LmFyZ3MuZmluZChhID0+IGEubmFtZSA9PT0gYXJnLm5hbWUpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgY3JlYXRlRm9ybSgpIHtcclxuICAgICAgICBpZiAoIXRoaXMub3BlcmF0aW9uKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9uKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuZm9ybSA9IG5ldyBVbnR5cGVkRm9ybUdyb3VwKHt9KTtcclxuICAgICAgICAodGhpcy5mb3JtIGFzIGFueSkuX19pZCA9IE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cigxMCk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLm9wZXJhdGlvbi5hcmdzKSB7XHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgYXJnIG9mIHRoaXMub3BlcmF0aW9uRGVmaW5pdGlvbj8uYXJncyB8fCBbXSkge1xyXG4gICAgICAgICAgICAgICAgbGV0IHZhbHVlOiBhbnkgPSB0aGlzLm9wZXJhdGlvbi5hcmdzLmZpbmQoYSA9PiBhLm5hbWUgPT09IGFyZy5uYW1lKT8udmFsdWU7XHJcbiAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlID0gZ2V0RGVmYXVsdENvbmZpZ0FyZ1ZhbHVlKGFyZyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjb25zdCB2YWxpZGF0b3JzID0gYXJnLmxpc3QgPyB1bmRlZmluZWQgOiBhcmcucmVxdWlyZWQgPyBWYWxpZGF0b3JzLnJlcXVpcmVkIDogdW5kZWZpbmVkO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtLmFkZENvbnRyb2woYXJnLm5hbWUsIG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wodmFsdWUsIHZhbGlkYXRvcnMpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLmZvcm0udmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2YWx1ZSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLm9uQ2hhbmdlKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKHtcclxuICAgICAgICAgICAgICAgICAgICBjb2RlOiB0aGlzLm9wZXJhdGlvbiAmJiB0aGlzLm9wZXJhdGlvbi5jb2RlLFxyXG4gICAgICAgICAgICAgICAgICAgIGFyZ3M6IHZhbHVlLFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHRoaXMub25Ub3VjaCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5vblRvdWNoKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICB2YWxpZGF0ZShjOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XHJcbiAgICAgICAgaWYgKHRoaXMuZm9ybS5pbnZhbGlkKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNhcmRcIiAqbmdJZj1cIm9wZXJhdGlvblwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtYmxvY2tcIj57eyBpbnRlcnBvbGF0ZURlc2NyaXB0aW9uKCkgfX08L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJsb2NrXCIgKm5nSWY9XCJvcGVyYXRpb24uYXJncz8ubGVuZ3RoXCI+XHJcbiAgICAgICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCIgKm5nSWY9XCJvcGVyYXRpb25cIiBjbGFzcz1cIm9wZXJhdGlvbi1pbnB1dHNcIj5cclxuICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgYXJnIG9mIG9wZXJhdGlvbi5hcmdzOyB0cmFja0J5OiB0cmFja0J5TmFtZVwiIGNsYXNzPVwiYXJnLXJvd1wiPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZvcm0uZ2V0KGFyZy5uYW1lKSAmJiBnZXRBcmdEZWYoYXJnKSBhcyBhcmdEZWZcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJjbHItY29udHJvbC1sYWJlbFwiPnt7IGFyZ0RlZi5sYWJlbCB8fCAoYXJnLm5hbWUgfCBzZW50ZW5jZUNhc2UpIH19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICA8dmRyLWhlbHAtdG9vbHRpcFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1yM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiYXJnRGVmLmRlc2NyaXB0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2NvbnRlbnRdPVwiYXJnRGVmLmRlc2NyaXB0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICA+PC92ZHItaGVscC10b29sdGlwPlxyXG4gICAgICAgICAgICAgICAgICAgIDx2ZHItZHluYW1pYy1mb3JtLWlucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkZWZdPVwiZ2V0QXJnRGVmKGFyZylcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbY29udHJvbF09XCJmb3JtLmdldChhcmcubmFtZSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImFyZy5uYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICA+PC92ZHItZHluYW1pYy1mb3JtLWlucHV0PlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZm9ybT5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtZm9vdGVyXCIgKm5nSWY9XCIhcmVhZG9ubHkgJiYgcmVtb3ZhYmxlXCI+XHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvbi1zbWFsbCB3YXJuaW5nXCIgKGNsaWNrKT1cInJlbW92ZS5lbWl0KG9wZXJhdGlvbilcIj5cclxuICAgICAgICAgICAgPGNsci1pY29uIHNoYXBlPVwidGltZXNcIj48L2Nsci1pY29uPlxyXG4gICAgICAgICAgICB7eyAnY29tbW9uLnJlbW92ZScgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
@@ -4,10 +4,11 @@ import { BehaviorSubject, combineLatest } from 'rxjs';
4
4
  import { map } from 'rxjs/operators';
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "../../../data/providers/data.service";
7
- import * as i2 from "../affixed-input/affixed-input.component";
8
- import * as i3 from "../form-field/form-field-control.directive";
9
- import * as i4 from "@angular/common";
10
- import * as i5 from "../../pipes/locale-currency-name.pipe";
7
+ import * as i2 from "../../../providers/currency/currency.service";
8
+ import * as i3 from "../affixed-input/affixed-input.component";
9
+ import * as i4 from "../form-field/form-field-control.directive";
10
+ import * as i5 from "@angular/common";
11
+ import * as i6 from "../../pipes/locale-currency-name.pipe";
11
12
  /**
12
13
  * @description
13
14
  * A form input control which displays currency in decimal format, whilst working
@@ -24,15 +25,17 @@ import * as i5 from "../../pipes/locale-currency-name.pipe";
24
25
  * @docsCategory components
25
26
  */
26
27
  export class CurrencyInputComponent {
27
- constructor(dataService, changeDetectorRef) {
28
+ constructor(dataService, currencyService) {
28
29
  this.dataService = dataService;
29
- this.changeDetectorRef = changeDetectorRef;
30
+ this.currencyService = currencyService;
30
31
  this.disabled = false;
31
32
  this.readonly = false;
32
33
  this.currencyCode = '';
33
34
  this.valueChange = new EventEmitter();
34
35
  this.hasFractionPart = true;
35
36
  this.currencyCode$ = new BehaviorSubject('');
37
+ this.precision = currencyService.precision;
38
+ this.precisionFactor = currencyService.precisionFactor;
36
39
  }
37
40
  ngOnInit() {
38
41
  const languageCode$ = this.dataService.client.uiState().mapStream(data => data.uiState.language);
@@ -93,7 +96,7 @@ export class CurrencyInputComponent {
93
96
  this.disabled = isDisabled;
94
97
  }
95
98
  onInput(value) {
96
- const integerValue = Math.round(+value * 100);
99
+ const integerValue = Math.round(+value * this.currencyService.precisionFactor);
97
100
  if (typeof this.onChange === 'function') {
98
101
  this.onChange(integerValue);
99
102
  }
@@ -114,20 +117,20 @@ export class CurrencyInputComponent {
114
117
  writeValue(value) {
115
118
  const numericValue = +value;
116
119
  if (!Number.isNaN(numericValue)) {
117
- this._inputValue = this.toNumericString(Math.floor(value) / 100);
120
+ this._inputValue = this.toNumericString(this.currencyService.toMajorUnits(Math.floor(value)));
118
121
  }
119
122
  }
120
123
  toNumericString(value) {
121
- return this.hasFractionPart ? Number(value).toFixed(2) : Number(value).toFixed(0);
124
+ return this.hasFractionPart ? Number(value).toFixed(this.precision) : Number(value).toFixed(0);
122
125
  }
123
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: CurrencyInputComponent, deps: [{ token: i1.DataService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
126
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: CurrencyInputComponent, deps: [{ token: i1.DataService }, { token: i2.CurrencyService }], target: i0.ɵɵFactoryTarget.Component }); }
124
127
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: CurrencyInputComponent, selector: "vdr-currency-input", inputs: { disabled: "disabled", readonly: "readonly", value: "value", currencyCode: "currencyCode" }, outputs: { valueChange: "valueChange" }, providers: [
125
128
  {
126
129
  provide: NG_VALUE_ACCESSOR,
127
130
  useExisting: CurrencyInputComponent,
128
131
  multi: true,
129
132
  },
130
- ], usesOnChanges: true, ngImport: i0, template: "<vdr-affixed-input\r\n [prefix]=\"prefix$ | async | localeCurrencyName: 'symbol'\"\r\n [suffix]=\"suffix$ | async | localeCurrencyName: 'symbol'\"\r\n>\r\n <input\r\n type=\"number\"\r\n [step]=\"hasFractionPart ? 0.01 : 1\"\r\n [value]=\"_inputValue\"\r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n (input)=\"onInput($event.target.value)\"\r\n (focus)=\"onFocus()\"\r\n />\r\n</vdr-affixed-input>\r\n", styles: [":host{padding:0;border:none}input[readonly]{background-color:transparent}\n"], dependencies: [{ kind: "component", type: i2.AffixedInputComponent, selector: "vdr-affixed-input", inputs: ["prefix", "suffix"] }, { kind: "directive", type: i3.FormFieldControlDirective, selector: "input, textarea, select" }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.LocaleCurrencyNamePipe, name: "localeCurrencyName" }] }); }
133
+ ], usesOnChanges: true, ngImport: i0, template: "<vdr-affixed-input\r\n [prefix]=\"prefix$ | async | localeCurrencyName: 'symbol'\"\r\n [suffix]=\"suffix$ | async | localeCurrencyName: 'symbol'\"\r\n>\r\n <input\r\n type=\"number\"\r\n [step]=\"hasFractionPart ? 1 / precisionFactor : 1\"\r\n [value]=\"_inputValue\"\r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n (input)=\"onInput($event.target.value)\"\r\n (focus)=\"onFocus()\"\r\n />\r\n</vdr-affixed-input>\r\n", styles: [":host{padding:0;border:none}input[readonly]{background-color:transparent}\n"], dependencies: [{ kind: "component", type: i3.AffixedInputComponent, selector: "vdr-affixed-input", inputs: ["prefix", "suffix"] }, { kind: "directive", type: i4.FormFieldControlDirective, selector: "input, textarea, select" }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.LocaleCurrencyNamePipe, name: "localeCurrencyName" }] }); }
131
134
  }
132
135
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: CurrencyInputComponent, decorators: [{
133
136
  type: Component,
@@ -137,8 +140,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImpor
137
140
  useExisting: CurrencyInputComponent,
138
141
  multi: true,
139
142
  },
140
- ], template: "<vdr-affixed-input\r\n [prefix]=\"prefix$ | async | localeCurrencyName: 'symbol'\"\r\n [suffix]=\"suffix$ | async | localeCurrencyName: 'symbol'\"\r\n>\r\n <input\r\n type=\"number\"\r\n [step]=\"hasFractionPart ? 0.01 : 1\"\r\n [value]=\"_inputValue\"\r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n (input)=\"onInput($event.target.value)\"\r\n (focus)=\"onFocus()\"\r\n />\r\n</vdr-affixed-input>\r\n", styles: [":host{padding:0;border:none}input[readonly]{background-color:transparent}\n"] }]
141
- }], ctorParameters: function () { return [{ type: i1.DataService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { disabled: [{
143
+ ], template: "<vdr-affixed-input\r\n [prefix]=\"prefix$ | async | localeCurrencyName: 'symbol'\"\r\n [suffix]=\"suffix$ | async | localeCurrencyName: 'symbol'\"\r\n>\r\n <input\r\n type=\"number\"\r\n [step]=\"hasFractionPart ? 1 / precisionFactor : 1\"\r\n [value]=\"_inputValue\"\r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n (input)=\"onInput($event.target.value)\"\r\n (focus)=\"onFocus()\"\r\n />\r\n</vdr-affixed-input>\r\n", styles: [":host{padding:0;border:none}input[readonly]{background-color:transparent}\n"] }]
144
+ }], ctorParameters: function () { return [{ type: i1.DataService }, { type: i2.CurrencyService }]; }, propDecorators: { disabled: [{
142
145
  type: Input
143
146
  }], readonly: [{
144
147
  type: Input
@@ -149,4 +152,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImpor
149
152
  }], valueChange: [{
150
153
  type: Output
151
154
  }] } });
152
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VycmVuY3ktaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3NyYy9zaGFyZWQvY29tcG9uZW50cy9jdXJyZW5jeS1pbnB1dC9jdXJyZW5jeS1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3NoYXJlZC9jb21wb25lbnRzL2N1cnJlbmN5LWlucHV0L2N1cnJlbmN5LWlucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFJTCxNQUFNLEdBRVQsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUE0QixNQUFNLE1BQU0sQ0FBQztBQUNoRixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7QUFJckM7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFhSCxNQUFNLE9BQU8sc0JBQXNCO0lBZS9CLFlBQW9CLFdBQXdCLEVBQVUsaUJBQW9DO1FBQXRFLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQVUsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQWRqRixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFFakIsaUJBQVksR0FBRyxFQUFFLENBQUM7UUFDakIsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRzNDLG9CQUFlLEdBQUcsSUFBSSxDQUFDO1FBSWYsa0JBQWEsR0FBRyxJQUFJLGVBQWUsQ0FBUyxFQUFFLENBQUMsQ0FBQztJQUdxQyxDQUFDO0lBRTlGLFFBQVE7UUFDSixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFD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O3NCQUFoQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0ksV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIENvbXBvbmVudCxcclxuICAgIEV2ZW50RW1pdHRlcixcclxuICAgIElucHV0LFxyXG4gICAgT25DaGFuZ2VzLFxyXG4gICAgT25EZXN0cm95LFxyXG4gICAgT25Jbml0LFxyXG4gICAgT3V0cHV0LFxyXG4gICAgU2ltcGxlQ2hhbmdlcyxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBEYXRhU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2RhdGEvcHJvdmlkZXJzL2RhdGEuc2VydmljZSc7XHJcblxyXG4vKipcclxuICogQGRlc2NyaXB0aW9uXHJcbiAqIEEgZm9ybSBpbnB1dCBjb250cm9sIHdoaWNoIGRpc3BsYXlzIGN1cnJlbmN5IGluIGRlY2ltYWwgZm9ybWF0LCB3aGlsc3Qgd29ya2luZ1xyXG4gKiB3aXRoIHRoZSBpbnRlZ2VyIGNlbnQgdmFsdWUgaW4gdGhlIGJhY2tncm91bmQuXHJcbiAqXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYEhUTUxcclxuICogPHZkci1jdXJyZW5jeS1pbnB1dFxyXG4gKiAgICAgWyhuZ01vZGVsKV09XCJlbnRpdHlQcmljZVwiXHJcbiAqICAgICBbY3VycmVuY3lDb2RlXT1cImN1cnJlbmN5Q29kZVwiXHJcbiAqID48L3Zkci1jdXJyZW5jeS1pbnB1dD5cclxuICogYGBgXHJcbiAqXHJcbiAqIEBkb2NzQ2F0ZWdvcnkgY29tcG9uZW50c1xyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3Zkci1jdXJyZW5jeS1pbnB1dCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vY3VycmVuY3ktaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vY3VycmVuY3ktaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBDdXJyZW5jeUlucHV0Q29tcG9uZW50LFxyXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZSxcclxuICAgICAgICB9LFxyXG4gICAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEN1cnJlbmN5SW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XHJcbiAgICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgQElucHV0KCkgcmVhZG9ubHkgPSBmYWxzZTtcclxuICAgIEBJbnB1dCgpIHZhbHVlOiBudW1iZXI7XHJcbiAgICBASW5wdXQoKSBjdXJyZW5jeUNvZGUgPSAnJztcclxuICAgIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAgIHByZWZpeCQ6IE9ic2VydmFibGU8c3RyaW5nPjtcclxuICAgIHN1ZmZpeCQ6IE9ic2VydmFibGU8c3RyaW5nPjtcclxuICAgIGhhc0ZyYWN0aW9uUGFydCA9IHRydWU7XHJcbiAgICBvbkNoYW5nZTogKHZhbDogYW55KSA9PiB2b2lkO1xyXG4gICAgb25Ub3VjaDogKCkgPT4gdm9pZDtcclxuICAgIF9pbnB1dFZhbHVlOiBzdHJpbmc7XHJcbiAgICBwcml2YXRlIGN1cnJlbmN5Q29kZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJycpO1xyXG4gICAgcHJpdmF0ZSBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRhdGFTZXJ2aWNlOiBEYXRhU2VydmljZSwgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgY29uc3QgbGFuZ3VhZ2VDb2RlJCA9IHRoaXMuZGF0YVNlcnZpY2UuY2xpZW50LnVpU3RhdGUoKS5tYXBTdHJlYW0oZGF0YSA9PiBkYXRhLnVpU3RhdGUubGFuZ3VhZ2UpO1xyXG4gICAgICAgIGNvbnN0IHNob3VsZFByZWZpeCQgPSBjb21iaW5lTGF0ZXN0KGxhbmd1YWdlQ29kZSQsIHRoaXMuY3VycmVuY3lDb2RlJCkucGlwZShcclxuICAgICAgICAgICAgbWFwKChbbGFuZ3VhZ2VDb2RlLCBjdXJyZW5jeUNvZGVdKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIWN1cnJlbmN5Q29kZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAnJztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGNvbnN0IGxvY2FsZSA9IGxhbmd1YWdlQ29kZS5yZXBsYWNlKC9fL2csICctJyk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBwYXJ0cyA9IChcclxuICAgICAgICAgICAgICAgICAgICBuZXcgSW50bC5OdW1iZXJGb3JtYXQobG9jYWxlLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlOiAnY3VycmVuY3knLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW5jeTogY3VycmVuY3lDb2RlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW5jeURpc3BsYXk6ICdzeW1ib2wnLFxyXG4gICAgICAgICAgICAgICAgICAgIH0pIGFzIGFueVxyXG4gICAgICAgICAgICAgICAgKS5mb3JtYXRUb1BhcnRzKCk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBOYU5TdHJpbmcgPSBwYXJ0cy5maW5kKHAgPT4gcC50eXBlID09PSAnbmFuJyk/LnZhbHVlID8/ICdOYU4nO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgbG9jYWxpc2VkID0gbmV3IEludGwuTnVtYmVyRm9ybWF0KGxvY2FsZSwge1xyXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlOiAnY3VycmVuY3knLFxyXG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbmN5OiBjdXJyZW5jeUNvZGUsXHJcbiAgICAgICAgICAgICAgICAgICAgY3VycmVuY3lEaXNwbGF5OiAnc3ltYm9sJyxcclxuICAgICAgICAgICAgICAgIH0pLmZvcm1hdCh1bmRlZmluZWQgYXMgYW55KTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBsb2NhbGlzZWQuaW5kZXhPZihOYU5TdHJpbmcpID4gMDtcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLnByZWZpeCQgPSBzaG91bGRQcmVmaXgkLnBpcGUobWFwKHNob3VsZFByZWZpeCA9PiAoc2hvdWxkUHJlZml4ID8gdGhpcy5jdXJyZW5jeUNvZGUgOiAnJykpKTtcclxuICAgICAgICB0aGlzLnN1ZmZpeCQgPSBzaG91bGRQcmVmaXgkLnBpcGUobWFwKHNob3VsZFByZWZpeCA9PiAoc2hvdWxkUHJlZml4ID8gJycgOiB0aGlzLmN1cnJlbmN5Q29kZSkpKTtcclxuXHJcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24gPSBjb21iaW5lTGF0ZXN0KGxhbmd1YWdlQ29kZSQsIHRoaXMuY3VycmVuY3lDb2RlJCkuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICAoW2xhbmd1YWdlQ29kZSwgY3VycmVuY3lDb2RlXSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKCFjdXJyZW5jeUNvZGUpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJyc7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjb25zdCBsb2NhbGUgPSBsYW5ndWFnZUNvZGUucmVwbGFjZSgvXy9nLCAnLScpO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcGFydHMgPSAoXHJcbiAgICAgICAgICAgICAgICAgICAgbmV3IEludGwuTnVtYmVyRm9ybWF0KGxvY2FsZSwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZTogJ2N1cnJlbmN5JyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVuY3k6IGN1cnJlbmN5Q29kZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVuY3lEaXNwbGF5OiAnc3ltYm9sJyxcclxuICAgICAgICAgICAgICAgICAgICB9KSBhcyBhbnlcclxuICAgICAgICAgICAgICAgICkuZm9ybWF0VG9QYXJ0cygxMjMuNDUpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5oYXNGcmFjdGlvblBhcnQgPSAhIXBhcnRzLmZpbmQocCA9PiBwLnR5cGUgPT09ICdmcmFjdGlvbicpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5faW5wdXRWYWx1ZSA9IHRoaXMudG9OdW1lcmljU3RyaW5nKHRoaXMuX2lucHV0VmFsdWUpO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgICAgIGlmICgndmFsdWUnIGluIGNoYW5nZXMpIHtcclxuICAgICAgICAgICAgdGhpcy53cml0ZVZhbHVlKGNoYW5nZXNbJ3ZhbHVlJ10uY3VycmVudFZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCdjdXJyZW5jeUNvZGUnIGluIGNoYW5nZXMpIHtcclxuICAgICAgICAgICAgdGhpcy5jdXJyZW5jeUNvZGUkLm5leHQodGhpcy5jdXJyZW5jeUNvZGUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICBpZiAodGhpcy5zdWJzY3JpcHRpb24pIHtcclxuICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KSB7XHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xyXG4gICAgfVxyXG5cclxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpIHtcclxuICAgICAgICB0aGlzLm9uVG91Y2ggPSBmbjtcclxuICAgIH1cclxuXHJcbiAgICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pIHtcclxuICAgICAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcclxuICAgIH1cclxuXHJcbiAgICBvbklucHV0KHZhbHVlOiBzdHJpbmcpIHtcclxuICAgICAgICBjb25zdCBpbnRlZ2VyVmFsdWUgPSBNYXRoLnJvdW5kKCt2YWx1ZSAqIDEwMCk7XHJcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm9uQ2hhbmdlID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2UoaW50ZWdlclZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KGludGVnZXJWYWx1ZSk7XHJcbiAgICAgICAgY29uc3QgZGVsdGEgPSBNYXRoLmFicyhOdW1iZXIodGhpcy5faW5wdXRWYWx1ZSkgLSBOdW1iZXIodmFsdWUpKTtcclxuICAgICAgICBpZiAoMC4wMDkgPCBkZWx0YSAmJiBkZWx0YSA8IDAuMDExKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2lucHV0VmFsdWUgPSB0aGlzLnRvTnVtZXJpY1N0cmluZyh2YWx1ZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5faW5wdXRWYWx1ZSA9IHZhbHVlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBvbkZvY3VzKCkge1xyXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5vblRvdWNoID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgICAgIHRoaXMub25Ub3VjaCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBudW1lcmljVmFsdWUgPSArdmFsdWU7XHJcbiAgICAgICAgaWYgKCFOdW1iZXIuaXNOYU4obnVtZXJpY1ZhbHVlKSkge1xyXG4gICAgICAgICAgICB0aGlzLl9pbnB1dFZhbHVlID0gdGhpcy50b051bWVyaWNTdHJpbmcoTWF0aC5mbG9vcih2YWx1ZSkgLyAxMDApO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHRvTnVtZXJpY1N0cmluZyh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5oYXNGcmFjdGlvblBhcnQgPyBOdW1iZXIodmFsdWUpLnRvRml4ZWQoMikgOiBOdW1iZXIodmFsdWUpLnRvRml4ZWQoMCk7XHJcbiAgICB9XHJcbn1cclxuIiwiPHZkci1hZmZpeGVkLWlucHV0XHJcbiAgICBbcHJlZml4XT1cInByZWZpeCQgfCBhc3luYyB8IGxvY2FsZUN1cnJlbmN5TmFtZTogJ3N5bWJvbCdcIlxyXG4gICAgW3N1ZmZpeF09XCJzdWZmaXgkIHwgYXN5bmMgfCBsb2NhbGVDdXJyZW5jeU5hbWU6ICdzeW1ib2wnXCJcclxuPlxyXG4gICAgPGlucHV0XHJcbiAgICAgICAgdHlwZT1cIm51bWJlclwiXHJcbiAgICAgICAgW3N0ZXBdPVwiaGFzRnJhY3Rpb25QYXJ0ID8gMC4wMSA6IDFcIlxyXG4gICAgICAgIFt2YWx1ZV09XCJfaW5wdXRWYWx1ZVwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxyXG4gICAgICAgIChpbnB1dCk9XCJvbklucHV0KCRldmVudC50YXJnZXQudmFsdWUpXCJcclxuICAgICAgICAoZm9jdXMpPVwib25Gb2N1cygpXCJcclxuICAgIC8+XHJcbjwvdmRyLWFmZml4ZWQtaW5wdXQ+XHJcbiJdfQ==
155
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VycmVuY3ktaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3NyYy9zaGFyZWQvY29tcG9uZW50cy9jdXJyZW5jeS1pbnB1dC9jdXJyZW5jeS1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3NoYXJlZC9jb21wb25lbnRzL2N1cnJlbmN5LWlucHV0L2N1cnJlbmN5LWlucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFJTCxNQUFNLEdBRVQsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUE0QixNQUFNLE1BQU0sQ0FBQztBQUNoRixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7O0FBS3JDOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBYUgsTUFBTSxPQUFPLHNCQUFzQjtJQWlCL0IsWUFBb0IsV0FBd0IsRUFBVSxlQUFnQztRQUFsRSxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUFVLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQWhCN0UsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRWpCLGlCQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUczQyxvQkFBZSxHQUFHLElBQUksQ0FBQztRQUlmLGtCQUFhLEdBQUcsSUFBSSxlQUFlLENBQVMsRUFBRSxDQUFDLENBQUM7UUFNcEQsSUFBSSxDQUFDLFNBQVMsR0FBRyxlQUFlLENBQUMsU0FBUyxDQUFDO1FBQzNDLElBQUksQ0FBQyxl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NGVBY0E7OzJGRDhCYSxzQkFBc0I7a0JBWmxDLFNBQVM7K0JBQ0ksb0JBQW9CLGFBR25CO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsd0JBQXdCOzRCQUNuQyxLQUFLLEVBQUUsSUFBSTt5QkFDZDtxQkFDSjtnSUFHUSxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0ksV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBDb21wb25lbnQsXHJcbiAgICBFdmVudEVtaXR0ZXIsXHJcbiAgICBJbnB1dCxcclxuICAgIE9uQ2hhbmdlcyxcclxuICAgIE9uRGVzdHJveSxcclxuICAgIE9uSW5pdCxcclxuICAgIE91dHB1dCxcclxuICAgIFNpbXBsZUNoYW5nZXMsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgRGF0YVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9kYXRhL3Byb3ZpZGVycy9kYXRhLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDdXJyZW5jeVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9wcm92aWRlcnMvY3VycmVuY3kvY3VycmVuY3kuc2VydmljZSc7XHJcblxyXG4vKipcclxuICogQGRlc2NyaXB0aW9uXHJcbiAqIEEgZm9ybSBpbnB1dCBjb250cm9sIHdoaWNoIGRpc3BsYXlzIGN1cnJlbmN5IGluIGRlY2ltYWwgZm9ybWF0LCB3aGlsc3Qgd29ya2luZ1xyXG4gKiB3aXRoIHRoZSBpbnRlZ2VyIGNlbnQgdmFsdWUgaW4gdGhlIGJhY2tncm91bmQuXHJcbiAqXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYEhUTUxcclxuICogPHZkci1jdXJyZW5jeS1pbnB1dFxyXG4gKiAgICAgWyhuZ01vZGVsKV09XCJlbnRpdHlQcmljZVwiXHJcbiAqICAgICBbY3VycmVuY3lDb2RlXT1cImN1cnJlbmN5Q29kZVwiXHJcbiAqID48L3Zkci1jdXJyZW5jeS1pbnB1dD5cclxuICogYGBgXHJcbiAqXHJcbiAqIEBkb2NzQ2F0ZWdvcnkgY29tcG9uZW50c1xyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3Zkci1jdXJyZW5jeS1pbnB1dCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vY3VycmVuY3ktaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vY3VycmVuY3ktaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBDdXJyZW5jeUlucHV0Q29tcG9uZW50LFxyXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZSxcclxuICAgICAgICB9LFxyXG4gICAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEN1cnJlbmN5SW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XHJcbiAgICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgQElucHV0KCkgcmVhZG9ubHkgPSBmYWxzZTtcclxuICAgIEBJbnB1dCgpIHZhbHVlOiBudW1iZXI7XHJcbiAgICBASW5wdXQoKSBjdXJyZW5jeUNvZGUgPSAnJztcclxuICAgIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAgIHByZWZpeCQ6IE9ic2VydmFibGU8c3RyaW5nPjtcclxuICAgIHN1ZmZpeCQ6IE9ic2VydmFibGU8c3RyaW5nPjtcclxuICAgIGhhc0ZyYWN0aW9uUGFydCA9IHRydWU7XHJcbiAgICBvbkNoYW5nZTogKHZhbDogYW55KSA9PiB2b2lkO1xyXG4gICAgb25Ub3VjaDogKCkgPT4gdm9pZDtcclxuICAgIF9pbnB1dFZhbHVlOiBzdHJpbmc7XHJcbiAgICBwcml2YXRlIGN1cnJlbmN5Q29kZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJycpO1xyXG4gICAgcHJpdmF0ZSBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuICAgIHJlYWRvbmx5IHByZWNpc2lvbjogbnVtYmVyO1xyXG4gICAgcmVhZG9ubHkgcHJlY2lzaW9uRmFjdG9yOiBudW1iZXI7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBkYXRhU2VydmljZTogRGF0YVNlcnZpY2UsIHByaXZhdGUgY3VycmVuY3lTZXJ2aWNlOiBDdXJyZW5jeVNlcnZpY2UpIHtcclxuICAgICAgICB0aGlzLnByZWNpc2lvbiA9IGN1cnJlbmN5U2VydmljZS5wcmVjaXNpb247XHJcbiAgICAgICAgdGhpcy5wcmVjaXNpb25GYWN0b3IgPSBjdXJyZW5jeVNlcnZpY2UucHJlY2lzaW9uRmFjdG9yO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIGNvbnN0IGxhbmd1YWdlQ29kZSQgPSB0aGlzLmRhdGFTZXJ2aWNlLmNsaWVudC51aVN0YXRlKCkubWFwU3RyZWFtKGRhdGEgPT4gZGF0YS51aVN0YXRlLmxhbmd1YWdlKTtcclxuICAgICAgICBjb25zdCBzaG91bGRQcmVmaXgkID0gY29tYmluZUxhdGVzdChsYW5ndWFnZUNvZGUkLCB0aGlzLmN1cnJlbmN5Q29kZSQpLnBpcGUoXHJcbiAgICAgICAgICAgIG1hcCgoW2xhbmd1YWdlQ29kZSwgY3VycmVuY3lDb2RlXSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKCFjdXJyZW5jeUNvZGUpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJyc7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjb25zdCBsb2NhbGUgPSBsYW5ndWFnZUNvZGUucmVwbGFjZSgvXy9nLCAnLScpO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcGFydHMgPSAoXHJcbiAgICAgICAgICAgICAgICAgICAgbmV3IEludGwuTnVtYmVyRm9ybWF0KGxvY2FsZSwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZTogJ2N1cnJlbmN5JyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVuY3k6IGN1cnJlbmN5Q29kZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVuY3lEaXNwbGF5OiAnc3ltYm9sJyxcclxuICAgICAgICAgICAgICAgICAgICB9KSBhcyBhbnlcclxuICAgICAgICAgICAgICAgICkuZm9ybWF0VG9QYXJ0cygpO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgTmFOU3RyaW5nID0gcGFydHMuZmluZChwID0+IHAudHlwZSA9PT0gJ25hbicpPy52YWx1ZSA/PyAnTmFOJztcclxuICAgICAgICAgICAgICAgIGNvbnN0IGxvY2FsaXNlZCA9IG5ldyBJbnRsLk51bWJlckZvcm1hdChsb2NhbGUsIHtcclxuICAgICAgICAgICAgICAgICAgICBzdHlsZTogJ2N1cnJlbmN5JyxcclxuICAgICAgICAgICAgICAgICAgICBjdXJyZW5jeTogY3VycmVuY3lDb2RlLFxyXG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbmN5RGlzcGxheTogJ3N5bWJvbCcsXHJcbiAgICAgICAgICAgICAgICB9KS5mb3JtYXQodW5kZWZpbmVkIGFzIGFueSk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gbG9jYWxpc2VkLmluZGV4T2YoTmFOU3RyaW5nKSA+IDA7XHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5wcmVmaXgkID0gc2hvdWxkUHJlZml4JC5waXBlKG1hcChzaG91bGRQcmVmaXggPT4gKHNob3VsZFByZWZpeCA/IHRoaXMuY3VycmVuY3lDb2RlIDogJycpKSk7XHJcbiAgICAgICAgdGhpcy5zdWZmaXgkID0gc2hvdWxkUHJlZml4JC5waXBlKG1hcChzaG91bGRQcmVmaXggPT4gKHNob3VsZFByZWZpeCA/ICcnIDogdGhpcy5jdXJyZW5jeUNvZGUpKSk7XHJcblxyXG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gY29tYmluZUxhdGVzdChsYW5ndWFnZUNvZGUkLCB0aGlzLmN1cnJlbmN5Q29kZSQpLnN1YnNjcmliZShcclxuICAgICAgICAgICAgKFtsYW5ndWFnZUNvZGUsIGN1cnJlbmN5Q29kZV0pID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICghY3VycmVuY3lDb2RlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICcnO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY29uc3QgbG9jYWxlID0gbGFuZ3VhZ2VDb2RlLnJlcGxhY2UoL18vZywgJy0nKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHBhcnRzID0gKFxyXG4gICAgICAgICAgICAgICAgICAgIG5ldyBJbnRsLk51bWJlckZvcm1hdChsb2NhbGUsIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU6ICdjdXJyZW5jeScsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbmN5OiBjdXJyZW5jeUNvZGUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbmN5RGlzcGxheTogJ3N5bWJvbCcsXHJcbiAgICAgICAgICAgICAgICAgICAgfSkgYXMgYW55XHJcbiAgICAgICAgICAgICAgICApLmZvcm1hdFRvUGFydHMoMTIzLjQ1KTtcclxuICAgICAgICAgICAgICAgIHRoaXMuaGFzRnJhY3Rpb25QYXJ0ID0gISFwYXJ0cy5maW5kKHAgPT4gcC50eXBlID09PSAnZnJhY3Rpb24nKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2lucHV0VmFsdWUgPSB0aGlzLnRvTnVtZXJpY1N0cmluZyh0aGlzLl9pbnB1dFZhbHVlKTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgICAgICBpZiAoJ3ZhbHVlJyBpbiBjaGFuZ2VzKSB7XHJcbiAgICAgICAgICAgIHRoaXMud3JpdGVWYWx1ZShjaGFuZ2VzWyd2YWx1ZSddLmN1cnJlbnRWYWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICgnY3VycmVuY3lDb2RlJyBpbiBjaGFuZ2VzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY3VycmVuY3lDb2RlJC5uZXh0KHRoaXMuY3VycmVuY3lDb2RlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9uKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xyXG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICAgIH1cclxuXHJcbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KSB7XHJcbiAgICAgICAgdGhpcy5vblRvdWNoID0gZm47XHJcbiAgICB9XHJcblxyXG4gICAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgb25JbnB1dCh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICAgICAgY29uc3QgaW50ZWdlclZhbHVlID0gTWF0aC5yb3VuZCgrdmFsdWUgKiB0aGlzLmN1cnJlbmN5U2VydmljZS5wcmVjaXNpb25GYWN0b3IpO1xyXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5vbkNoYW5nZSA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKGludGVnZXJWYWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdChpbnRlZ2VyVmFsdWUpO1xyXG4gICAgICAgIGNvbnN0IGRlbHRhID0gTWF0aC5hYnMoTnVtYmVyKHRoaXMuX2lucHV0VmFsdWUpIC0gTnVtYmVyKHZhbHVlKSk7XHJcbiAgICAgICAgaWYgKDAuMDA5IDwgZGVsdGEgJiYgZGVsdGEgPCAwLjAxMSkge1xyXG4gICAgICAgICAgICB0aGlzLl9pbnB1dFZhbHVlID0gdGhpcy50b051bWVyaWNTdHJpbmcodmFsdWUpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2lucHV0VmFsdWUgPSB2YWx1ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgb25Gb2N1cygpIHtcclxuICAgICAgICBpZiAodHlwZW9mIHRoaXMub25Ub3VjaCA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgICAgICB0aGlzLm9uVG91Y2goKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgbnVtZXJpY1ZhbHVlID0gK3ZhbHVlO1xyXG4gICAgICAgIGlmICghTnVtYmVyLmlzTmFOKG51bWVyaWNWYWx1ZSkpIHtcclxuICAgICAgICAgICAgdGhpcy5faW5wdXRWYWx1ZSA9IHRoaXMudG9OdW1lcmljU3RyaW5nKHRoaXMuY3VycmVuY3lTZXJ2aWNlLnRvTWFqb3JVbml0cyhNYXRoLmZsb29yKHZhbHVlKSkpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHRvTnVtZXJpY1N0cmluZyh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5oYXNGcmFjdGlvblBhcnQgPyBOdW1iZXIodmFsdWUpLnRvRml4ZWQodGhpcy5wcmVjaXNpb24pIDogTnVtYmVyKHZhbHVlKS50b0ZpeGVkKDApO1xyXG4gICAgfVxyXG59XHJcbiIsIjx2ZHItYWZmaXhlZC1pbnB1dFxyXG4gICAgW3ByZWZpeF09XCJwcmVmaXgkIHwgYXN5bmMgfCBsb2NhbGVDdXJyZW5jeU5hbWU6ICdzeW1ib2wnXCJcclxuICAgIFtzdWZmaXhdPVwic3VmZml4JCB8IGFzeW5jIHwgbG9jYWxlQ3VycmVuY3lOYW1lOiAnc3ltYm9sJ1wiXHJcbj5cclxuICAgIDxpbnB1dFxyXG4gICAgICAgIHR5cGU9XCJudW1iZXJcIlxyXG4gICAgICAgIFtzdGVwXT1cImhhc0ZyYWN0aW9uUGFydCA/IDEgLyBwcmVjaXNpb25GYWN0b3IgOiAxXCJcclxuICAgICAgICBbdmFsdWVdPVwiX2lucHV0VmFsdWVcIlxyXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcclxuICAgICAgICAoaW5wdXQpPVwib25JbnB1dCgkZXZlbnQudGFyZ2V0LnZhbHVlKVwiXHJcbiAgICAgICAgKGZvY3VzKT1cIm9uRm9jdXMoKVwiXHJcbiAgICAvPlxyXG48L3Zkci1hZmZpeGVkLWlucHV0PlxyXG4iXX0=