@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
@@ -1,7 +1,8 @@
1
1
  import { Optional, Pipe } from '@angular/core';
2
2
  import { LocaleBasePipe } from './locale-base.pipe';
3
3
  import * as i0 from "@angular/core";
4
- import * as i1 from "../../data/providers/data.service";
4
+ import * as i1 from "../../providers/currency/currency.service";
5
+ import * as i2 from "../../data/providers/data.service";
5
6
  /**
6
7
  * @description
7
8
  * Formats a Vendure monetary value (in cents) into the correct format for the configured currency and display
@@ -15,27 +16,30 @@ import * as i1 from "../../data/providers/data.service";
15
16
  * @docsCategory pipes
16
17
  */
17
18
  export class LocaleCurrencyPipe extends LocaleBasePipe {
18
- constructor(dataService, changeDetectorRef) {
19
+ constructor(currencyService, dataService, changeDetectorRef) {
19
20
  super(dataService, changeDetectorRef);
21
+ this.currencyService = currencyService;
20
22
  }
21
23
  transform(value, ...args) {
22
24
  const [currencyCode, locale] = args;
23
25
  if (typeof value === 'number') {
24
26
  const activeLocale = this.getActiveLocale(locale);
25
- const majorUnits = value / 100;
27
+ const majorUnits = this.currencyService.toMajorUnits(value);
26
28
  try {
27
29
  return new Intl.NumberFormat(activeLocale, {
28
30
  style: 'currency',
29
31
  currency: currencyCode,
32
+ minimumFractionDigits: this.currencyService.precision,
33
+ maximumFractionDigits: this.currencyService.precision,
30
34
  }).format(majorUnits);
31
35
  }
32
36
  catch (e) {
33
- return majorUnits.toFixed(2);
37
+ return majorUnits.toFixed(this.currencyService.precision);
34
38
  }
35
39
  }
36
40
  return value;
37
41
  }
38
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: LocaleCurrencyPipe, deps: [{ token: i1.DataService, optional: true }, { token: i0.ChangeDetectorRef, optional: true }], target: i0.ɵɵFactoryTarget.Pipe }); }
42
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: LocaleCurrencyPipe, deps: [{ token: i1.CurrencyService }, { token: i2.DataService, optional: true }, { token: i0.ChangeDetectorRef, optional: true }], target: i0.ɵɵFactoryTarget.Pipe }); }
39
43
  static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.2", ngImport: i0, type: LocaleCurrencyPipe, name: "localeCurrency", pure: false }); }
40
44
  }
41
45
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: LocaleCurrencyPipe, decorators: [{
@@ -44,9 +48,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImpor
44
48
  name: 'localeCurrency',
45
49
  pure: false,
46
50
  }]
47
- }], ctorParameters: function () { return [{ type: i1.DataService, decorators: [{
51
+ }], ctorParameters: function () { return [{ type: i1.CurrencyService }, { type: i2.DataService, decorators: [{
48
52
  type: Optional
49
53
  }] }, { type: i0.ChangeDetectorRef, decorators: [{
50
54
  type: Optional
51
55
  }] }]; } });
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxlLWN1cnJlbmN5LnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3NoYXJlZC9waXBlcy9sb2NhbGUtY3VycmVuY3kucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFFBQVEsRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBSWpGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7O0FBRXBEOzs7Ozs7Ozs7OztHQVdHO0FBS0gsTUFBTSxPQUFPLGtCQUFtQixTQUFRLGNBQWM7SUFDbEQsWUFBd0IsV0FBeUIsRUFBYyxpQkFBcUM7UUFDaEcsS0FBSyxDQUFDLFdBQVcsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxTQUFTLENBQUMsS0FBYyxFQUFFLEdBQUcsSUFBZTtRQUN4QyxNQUFNLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQztRQUNwQyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtZQUMzQixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2xELE1BQU0sVUFBVSxHQUFHLEtBQUssR0FBRyxHQUFHLENBQUM7WUFDL0IsSUFBSTtnQkFDQSxPQUFPLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUU7b0JBQ3ZDLEtBQUssRUFBRSxVQUFVO29CQUNqQixRQUFRLEVBQUUsWUFBbUI7aUJBQ2hDLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDekI7WUFBQyxPQUFPLENBQU0sRUFBRTtnQkFDYixPQUFPLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDaEM7U0FDSjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7OEdBcEJRLGtCQUFrQjs0R0FBbEIsa0JBQWtCOzsyRkFBbEIsa0JBQWtCO2tCQUo5QixJQUFJO21CQUFDO29CQUNGLElBQUksRUFBRSxnQkFBZ0I7b0JBQ3RCLElBQUksRUFBRSxLQUFLO2lCQUNkOzswQkFFZ0IsUUFBUTs7MEJBQStCLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgT3B0aW9uYWwsIFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IERhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZGF0YS9wcm92aWRlcnMvZGF0YS5zZXJ2aWNlJztcclxuXHJcbmltcG9ydCB7IExvY2FsZUJhc2VQaXBlIH0gZnJvbSAnLi9sb2NhbGUtYmFzZS5waXBlJztcclxuXHJcbi8qKlxyXG4gKiBAZGVzY3JpcHRpb25cclxuICogRm9ybWF0cyBhIFZlbmR1cmUgbW9uZXRhcnkgdmFsdWUgKGluIGNlbnRzKSBpbnRvIHRoZSBjb3JyZWN0IGZvcm1hdCBmb3IgdGhlIGNvbmZpZ3VyZWQgY3VycmVuY3kgYW5kIGRpc3BsYXlcclxuICogbG9jYWxlLlxyXG4gKlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGBIVE1MXHJcbiAqIHt7IHZhcmlhbnQucHJpY2VXaXRoVGF4IHwgbG9jYWxlQ3VycmVuY3kgfX1cclxuICogYGBgXHJcbiAqXHJcbiAqIEBkb2NzQ2F0ZWdvcnkgcGlwZXNcclxuICovXHJcbkBQaXBlKHtcclxuICAgIG5hbWU6ICdsb2NhbGVDdXJyZW5jeScsXHJcbiAgICBwdXJlOiBmYWxzZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIExvY2FsZUN1cnJlbmN5UGlwZSBleHRlbmRzIExvY2FsZUJhc2VQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcbiAgICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBkYXRhU2VydmljZT86IERhdGFTZXJ2aWNlLCBAT3B0aW9uYWwoKSBjaGFuZ2VEZXRlY3RvclJlZj86IENoYW5nZURldGVjdG9yUmVmKSB7XHJcbiAgICAgICAgc3VwZXIoZGF0YVNlcnZpY2UsIGNoYW5nZURldGVjdG9yUmVmKTtcclxuICAgIH1cclxuXHJcbiAgICB0cmFuc2Zvcm0odmFsdWU6IHVua25vd24sIC4uLmFyZ3M6IHVua25vd25bXSk6IHN0cmluZyB8IHVua25vd24ge1xyXG4gICAgICAgIGNvbnN0IFtjdXJyZW5jeUNvZGUsIGxvY2FsZV0gPSBhcmdzO1xyXG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGFjdGl2ZUxvY2FsZSA9IHRoaXMuZ2V0QWN0aXZlTG9jYWxlKGxvY2FsZSk7XHJcbiAgICAgICAgICAgIGNvbnN0IG1ham9yVW5pdHMgPSB2YWx1ZSAvIDEwMDtcclxuICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgSW50bC5OdW1iZXJGb3JtYXQoYWN0aXZlTG9jYWxlLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU6ICdjdXJyZW5jeScsXHJcbiAgICAgICAgICAgICAgICAgICAgY3VycmVuY3k6IGN1cnJlbmN5Q29kZSBhcyBhbnksXHJcbiAgICAgICAgICAgICAgICB9KS5mb3JtYXQobWFqb3JVbml0cyk7XHJcbiAgICAgICAgICAgIH0gY2F0Y2ggKGU6IGFueSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG1ham9yVW5pdHMudG9GaXhlZCgyKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICB9XHJcbn1cclxuIl19
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxlLWN1cnJlbmN5LnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3NoYXJlZC9waXBlcy9sb2NhbGUtY3VycmVuY3kucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFFBQVEsRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBS2pGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7OztBQUVwRDs7Ozs7Ozs7Ozs7R0FXRztBQUtILE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxjQUFjO0lBRWxELFlBQ1ksZUFBZ0MsRUFDNUIsV0FBeUIsRUFDekIsaUJBQXFDO1FBRWpELEtBQUssQ0FBQyxXQUFXLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUo5QixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7SUFLNUMsQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUFjLEVBQUUsR0FBRyxJQUFlO1FBQ3hDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQ3BDLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO1lBQzNCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDbEQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDNUQsSUFBSTtnQkFDQSxPQUFPLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUU7b0JBQ3ZDLEtBQUssRUFBRSxVQUFVO29CQUNqQixRQUFRLEVBQUUsWUFBbUI7b0JBQzdCLHFCQUFxQixFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUztvQkFDckQscUJBQXFCLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTO2lCQUN4RCxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQ3pCO1lBQUMsT0FBTyxDQUFNLEVBQUU7Z0JBQ2IsT0FBTyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUM7YUFDN0Q7U0FDSjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7OEdBM0JRLGtCQUFrQjs0R0FBbEIsa0JBQWtCOzsyRkFBbEIsa0JBQWtCO2tCQUo5QixJQUFJO21CQUFDO29CQUNGLElBQUksRUFBRSxnQkFBZ0I7b0JBQ3RCLElBQUksRUFBRSxLQUFLO2lCQUNkOzswQkFLUSxRQUFROzswQkFDUixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIE9wdGlvbmFsLCBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBEYXRhU2VydmljZSB9IGZyb20gJy4uLy4uL2RhdGEvcHJvdmlkZXJzL2RhdGEuc2VydmljZSc7XHJcbmltcG9ydCB7IEN1cnJlbmN5U2VydmljZSB9IGZyb20gJy4uLy4uL3Byb3ZpZGVycy9jdXJyZW5jeS9jdXJyZW5jeS5zZXJ2aWNlJztcclxuXHJcbmltcG9ydCB7IExvY2FsZUJhc2VQaXBlIH0gZnJvbSAnLi9sb2NhbGUtYmFzZS5waXBlJztcclxuXHJcbi8qKlxyXG4gKiBAZGVzY3JpcHRpb25cclxuICogRm9ybWF0cyBhIFZlbmR1cmUgbW9uZXRhcnkgdmFsdWUgKGluIGNlbnRzKSBpbnRvIHRoZSBjb3JyZWN0IGZvcm1hdCBmb3IgdGhlIGNvbmZpZ3VyZWQgY3VycmVuY3kgYW5kIGRpc3BsYXlcclxuICogbG9jYWxlLlxyXG4gKlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGBIVE1MXHJcbiAqIHt7IHZhcmlhbnQucHJpY2VXaXRoVGF4IHwgbG9jYWxlQ3VycmVuY3kgfX1cclxuICogYGBgXHJcbiAqXHJcbiAqIEBkb2NzQ2F0ZWdvcnkgcGlwZXNcclxuICovXHJcbkBQaXBlKHtcclxuICAgIG5hbWU6ICdsb2NhbGVDdXJyZW5jeScsXHJcbiAgICBwdXJlOiBmYWxzZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIExvY2FsZUN1cnJlbmN5UGlwZSBleHRlbmRzIExvY2FsZUJhc2VQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcbiAgICByZWFkb25seSBwcmVjaXNpb25GYWN0b3I6IG51bWJlcjtcclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgY3VycmVuY3lTZXJ2aWNlOiBDdXJyZW5jeVNlcnZpY2UsXHJcbiAgICAgICAgQE9wdGlvbmFsKCkgZGF0YVNlcnZpY2U/OiBEYXRhU2VydmljZSxcclxuICAgICAgICBAT3B0aW9uYWwoKSBjaGFuZ2VEZXRlY3RvclJlZj86IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgKSB7XHJcbiAgICAgICAgc3VwZXIoZGF0YVNlcnZpY2UsIGNoYW5nZURldGVjdG9yUmVmKTtcclxuICAgIH1cclxuXHJcbiAgICB0cmFuc2Zvcm0odmFsdWU6IHVua25vd24sIC4uLmFyZ3M6IHVua25vd25bXSk6IHN0cmluZyB8IHVua25vd24ge1xyXG4gICAgICAgIGNvbnN0IFtjdXJyZW5jeUNvZGUsIGxvY2FsZV0gPSBhcmdzO1xyXG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGFjdGl2ZUxvY2FsZSA9IHRoaXMuZ2V0QWN0aXZlTG9jYWxlKGxvY2FsZSk7XHJcbiAgICAgICAgICAgIGNvbnN0IG1ham9yVW5pdHMgPSB0aGlzLmN1cnJlbmN5U2VydmljZS50b01ham9yVW5pdHModmFsdWUpO1xyXG4gICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBJbnRsLk51bWJlckZvcm1hdChhY3RpdmVMb2NhbGUsIHtcclxuICAgICAgICAgICAgICAgICAgICBzdHlsZTogJ2N1cnJlbmN5JyxcclxuICAgICAgICAgICAgICAgICAgICBjdXJyZW5jeTogY3VycmVuY3lDb2RlIGFzIGFueSxcclxuICAgICAgICAgICAgICAgICAgICBtaW5pbXVtRnJhY3Rpb25EaWdpdHM6IHRoaXMuY3VycmVuY3lTZXJ2aWNlLnByZWNpc2lvbixcclxuICAgICAgICAgICAgICAgICAgICBtYXhpbXVtRnJhY3Rpb25EaWdpdHM6IHRoaXMuY3VycmVuY3lTZXJ2aWNlLnByZWNpc2lvbixcclxuICAgICAgICAgICAgICAgIH0pLmZvcm1hdChtYWpvclVuaXRzKTtcclxuICAgICAgICAgICAgfSBjYXRjaCAoZTogYW55KSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gbWFqb3JVbml0cy50b0ZpeGVkKHRoaXMuY3VycmVuY3lTZXJ2aWNlLnByZWNpc2lvbik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -40,18 +40,18 @@ export class OrderSummaryWidgetComponent {
40
40
  .refetchOnChannelChange()
41
41
  .mapStream(data => data.orders)), shareReplay(1));
42
42
  this.totalOrderCount$ = orderSummary$.pipe(map(res => res.totalItems));
43
- this.totalOrderValue$ = orderSummary$.pipe(map(res => res.items.reduce((total, order) => total + order.totalWithTax, 0) / 100));
43
+ this.totalOrderValue$ = orderSummary$.pipe(map(res => res.items.reduce((total, order) => total + order.totalWithTax, 0)));
44
44
  this.currencyCode$ = this.dataService.settings
45
45
  .getActiveChannel()
46
46
  .refetchOnChannelChange()
47
47
  .mapStream(data => data.activeChannel.defaultCurrencyCode || undefined);
48
48
  }
49
49
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: OrderSummaryWidgetComponent, deps: [{ token: i1.DataService }], target: i0.ɵɵFactoryTarget.Component }); }
50
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: OrderSummaryWidgetComponent, selector: "vdr-order-summary-widget", ngImport: i0, template: "<div class=\"stats\">\r\n <div class=\"stat\">\r\n <div class=\"stat-figure\">{{ totalOrderCount$ | async }}</div>\r\n <div class=\"stat-label\">{{ 'dashboard.total-orders' | translate }}</div>\r\n </div>\r\n <div class=\"stat\">\r\n <div class=\"stat-figure\">\r\n {{ totalOrderValue$ | async | currency: (currencyCode$ | async) || undefined }}\r\n </div>\r\n <div class=\"stat-label\">{{ 'dashboard.total-order-value' | translate }}</div>\r\n </div>\r\n</div>\r\n<div class=\"footer\">\r\n <div class=\"flex\" *ngIf=\"selection$ | async as selection\">\r\n <button class=\"button-small\" [class.active]=\"selection.date === today\" (click)=\"selection$.next({timeframe: 'day', date: today})\">\r\n {{ 'dashboard.today' | translate }}\r\n </button>\r\n <button class=\"ml-1 button-small\" [class.active]=\"selection.date === yesterday\" (click)=\"selection$.next({timeframe: 'day', date: yesterday})\">\r\n {{ 'dashboard.yesterday' | translate }}\r\n </button>\r\n <button class=\"ml-1 button-small\" [class.active]=\"selection.timeframe === 'week'\" (click)=\"selection$.next({timeframe: 'week'})\">\r\n {{ 'dashboard.thisWeek' | translate }}\r\n </button>\r\n <button class=\"ml-1 button-small\" [class.active]=\"selection.timeframe === 'month'\" (click)=\"selection$.next({timeframe: 'month'})\">\r\n {{ 'dashboard.thisMonth' | translate }}\r\n </button>\r\n </div>\r\n\r\n <div class=\"date-range p5\" *ngIf=\"dateRange$ | async as range\">\r\n {{ range.start | localeDate }} - {{ range.end | localeDate }}\r\n </div>\r\n</div>\r\n", styles: [".stats{display:flex;justify-content:space-evenly}.stat{text-align:center}.stat-figure{font-size:2rem;line-height:3rem}.stat-label{text-transform:uppercase}.date-range{margin-top:0}.footer{margin-top:24px;display:flex;flex-direction:column;justify-content:space-between}.button-small.active{background-color:var(--color-primary-200);color:var(--color-primary-900)}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.CurrencyPipe, name: "currency" }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "pipe", type: i1.LocaleDatePipe, name: "localeDate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
50
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: OrderSummaryWidgetComponent, selector: "vdr-order-summary-widget", ngImport: i0, template: "<div class=\"stats\">\r\n <div class=\"stat\">\r\n <div class=\"stat-figure\">{{ totalOrderCount$ | async }}</div>\r\n <div class=\"stat-label\">{{ 'dashboard.total-orders' | translate }}</div>\r\n </div>\r\n <div class=\"stat\">\r\n <div class=\"stat-figure\">\r\n {{ totalOrderValue$ | async | localeCurrency: (currencyCode$ | async) || undefined }}\r\n </div>\r\n <div class=\"stat-label\">{{ 'dashboard.total-order-value' | translate }}</div>\r\n </div>\r\n</div>\r\n<div class=\"footer\">\r\n <div class=\"flex\" *ngIf=\"selection$ | async as selection\">\r\n <button class=\"button-small\" [class.active]=\"selection.date === today\" (click)=\"selection$.next({timeframe: 'day', date: today})\">\r\n {{ 'dashboard.today' | translate }}\r\n </button>\r\n <button class=\"ml-1 button-small\" [class.active]=\"selection.date === yesterday\" (click)=\"selection$.next({timeframe: 'day', date: yesterday})\">\r\n {{ 'dashboard.yesterday' | translate }}\r\n </button>\r\n <button class=\"ml-1 button-small\" [class.active]=\"selection.timeframe === 'week'\" (click)=\"selection$.next({timeframe: 'week'})\">\r\n {{ 'dashboard.thisWeek' | translate }}\r\n </button>\r\n <button class=\"ml-1 button-small\" [class.active]=\"selection.timeframe === 'month'\" (click)=\"selection$.next({timeframe: 'month'})\">\r\n {{ 'dashboard.thisMonth' | translate }}\r\n </button>\r\n </div>\r\n\r\n <div class=\"date-range p5\" *ngIf=\"dateRange$ | async as range\">\r\n {{ range.start | localeDate }} - {{ range.end | localeDate }}\r\n </div>\r\n</div>\r\n", styles: [".stats{display:flex;justify-content:space-evenly}.stat{text-align:center}.stat-figure{font-size:2rem;line-height:3rem}.stat-label{text-transform:uppercase}.date-range{margin-top:0}.footer{margin-top:24px;display:flex;flex-direction:column;justify-content:space-between}.button-small.active{background-color:var(--color-primary-200);color:var(--color-primary-900)}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "pipe", type: i1.LocaleDatePipe, name: "localeDate" }, { kind: "pipe", type: i1.LocaleCurrencyPipe, name: "localeCurrency" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
51
51
  }
52
52
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: OrderSummaryWidgetComponent, decorators: [{
53
53
  type: Component,
54
- args: [{ selector: 'vdr-order-summary-widget', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"stats\">\r\n <div class=\"stat\">\r\n <div class=\"stat-figure\">{{ totalOrderCount$ | async }}</div>\r\n <div class=\"stat-label\">{{ 'dashboard.total-orders' | translate }}</div>\r\n </div>\r\n <div class=\"stat\">\r\n <div class=\"stat-figure\">\r\n {{ totalOrderValue$ | async | currency: (currencyCode$ | async) || undefined }}\r\n </div>\r\n <div class=\"stat-label\">{{ 'dashboard.total-order-value' | translate }}</div>\r\n </div>\r\n</div>\r\n<div class=\"footer\">\r\n <div class=\"flex\" *ngIf=\"selection$ | async as selection\">\r\n <button class=\"button-small\" [class.active]=\"selection.date === today\" (click)=\"selection$.next({timeframe: 'day', date: today})\">\r\n {{ 'dashboard.today' | translate }}\r\n </button>\r\n <button class=\"ml-1 button-small\" [class.active]=\"selection.date === yesterday\" (click)=\"selection$.next({timeframe: 'day', date: yesterday})\">\r\n {{ 'dashboard.yesterday' | translate }}\r\n </button>\r\n <button class=\"ml-1 button-small\" [class.active]=\"selection.timeframe === 'week'\" (click)=\"selection$.next({timeframe: 'week'})\">\r\n {{ 'dashboard.thisWeek' | translate }}\r\n </button>\r\n <button class=\"ml-1 button-small\" [class.active]=\"selection.timeframe === 'month'\" (click)=\"selection$.next({timeframe: 'month'})\">\r\n {{ 'dashboard.thisMonth' | translate }}\r\n </button>\r\n </div>\r\n\r\n <div class=\"date-range p5\" *ngIf=\"dateRange$ | async as range\">\r\n {{ range.start | localeDate }} - {{ range.end | localeDate }}\r\n </div>\r\n</div>\r\n", styles: [".stats{display:flex;justify-content:space-evenly}.stat{text-align:center}.stat-figure{font-size:2rem;line-height:3rem}.stat-label{text-transform:uppercase}.date-range{margin-top:0}.footer{margin-top:24px;display:flex;flex-direction:column;justify-content:space-between}.button-small.active{background-color:var(--color-primary-200);color:var(--color-primary-900)}\n"] }]
54
+ args: [{ selector: 'vdr-order-summary-widget', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"stats\">\r\n <div class=\"stat\">\r\n <div class=\"stat-figure\">{{ totalOrderCount$ | async }}</div>\r\n <div class=\"stat-label\">{{ 'dashboard.total-orders' | translate }}</div>\r\n </div>\r\n <div class=\"stat\">\r\n <div class=\"stat-figure\">\r\n {{ totalOrderValue$ | async | localeCurrency: (currencyCode$ | async) || undefined }}\r\n </div>\r\n <div class=\"stat-label\">{{ 'dashboard.total-order-value' | translate }}</div>\r\n </div>\r\n</div>\r\n<div class=\"footer\">\r\n <div class=\"flex\" *ngIf=\"selection$ | async as selection\">\r\n <button class=\"button-small\" [class.active]=\"selection.date === today\" (click)=\"selection$.next({timeframe: 'day', date: today})\">\r\n {{ 'dashboard.today' | translate }}\r\n </button>\r\n <button class=\"ml-1 button-small\" [class.active]=\"selection.date === yesterday\" (click)=\"selection$.next({timeframe: 'day', date: yesterday})\">\r\n {{ 'dashboard.yesterday' | translate }}\r\n </button>\r\n <button class=\"ml-1 button-small\" [class.active]=\"selection.timeframe === 'week'\" (click)=\"selection$.next({timeframe: 'week'})\">\r\n {{ 'dashboard.thisWeek' | translate }}\r\n </button>\r\n <button class=\"ml-1 button-small\" [class.active]=\"selection.timeframe === 'month'\" (click)=\"selection$.next({timeframe: 'month'})\">\r\n {{ 'dashboard.thisMonth' | translate }}\r\n </button>\r\n </div>\r\n\r\n <div class=\"date-range p5\" *ngIf=\"dateRange$ | async as range\">\r\n {{ range.start | localeDate }} - {{ range.end | localeDate }}\r\n </div>\r\n</div>\r\n", styles: [".stats{display:flex;justify-content:space-evenly}.stat{text-align:center}.stat-figure{font-size:2rem;line-height:3rem}.stat-label{text-transform:uppercase}.date-range{margin-top:0}.footer{margin-top:24px;display:flex;flex-direction:column;justify-content:space-between}.button-small.active{background-color:var(--color-primary-200);color:var(--color-primary-900)}\n"] }]
55
55
  }], ctorParameters: function () { return [{ type: i1.DataService }]; } });
56
56
  export class OrderSummaryWidgetModule {
57
57
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: OrderSummaryWidgetModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
@@ -65,4 +65,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImpor
65
65
  declarations: [OrderSummaryWidgetComponent],
66
66
  }]
67
67
  }] });
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItc3VtbWFyeS13aWRnZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9kYXNoYm9hcmQvc3JjL3dpZGdldHMvb3JkZXItc3VtbWFyeS13aWRnZXQvb3JkZXItc3VtbWFyeS13aWRnZXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9kYXNoYm9hcmQvc3JjL3dpZGdldHMvb3JkZXItc3VtbWFyeS13aWRnZXQvb3JkZXItc3VtbWFyeS13aWRnZXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDckYsT0FBTyxFQUFFLFVBQVUsRUFBZSx1QkFBdUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzFGLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFJbkYsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsR0FBRyxDQUFBOzs7Ozs7Ozs7OztDQVduQyxDQUFDO0FBUUYsTUFBTSxPQUFPLDJCQUEyQjtJQVlwQyxZQUFvQixXQUF3QjtRQUF4QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQVg1QyxVQUFLLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNuQixjQUFTLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBSW5FLGVBQVUsR0FBRyxJQUFJLGVBQWUsQ0FBd0M7WUFDcEUsU0FBUyxFQUFFLEtBQUs7WUFDaEIsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLO1NBQ25CLENBQUMsQ0FBQztJQUc0QyxDQUFDO0lBRWhELFFBQVE7UUFDSixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUNsQyxvQkFBb0IsRUFBRSxFQUN0QixHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2QsS0FBSyxFQUFFLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUU7WUFDbEUsR0FBRyxFQUFFLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUU7U0FDakUsQ0FBQyxDQUFDLEVBQ0gsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUNqQixDQUFDO1FBQ0YsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQ3RDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FDekIsSUFBSSxDQUFDLFdBQVc7YUFDWCxLQUFLLENBQUMsdUJBQXVCLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLFdBQVcsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQzthQUN0RixzQkFBc0IsRUFBRTthQUN4QixTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQ3RDLEVBQ0QsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUNqQixDQUFDO1FBQ0YsSUFBSSxDQUFDLGdCQUFnQixHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDdkUsSUFBSSxDQUFDLGdCQUFnQixHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQ3RDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQ3RGLENBQUM7UUFDRixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUTthQUN6QyxnQkFBZ0IsRUFBRTthQUNsQixzQkFBc0IsRUFBRTthQUN4QixTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLG1CQUFtQixJQUFJLFNBQVMsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7OEdBeENRLDJCQUEyQjtrR0FBM0IsMkJBQTJCLGdFQzVCeEMsbXJEQWdDQTs7MkZESmEsMkJBQTJCO2tCQU52QyxTQUFTOytCQUNJLDBCQUEwQixtQkFHbkIsdUJBQXVCLENBQUMsTUFBTTs7QUFpRG5ELE1BQU0sT0FBTyx3QkFBd0I7OEdBQXhCLHdCQUF3QjsrR0FBeEIsd0JBQXdCLGlCQS9DeEIsMkJBQTJCLGFBNEMxQixVQUFVOytHQUdYLHdCQUF3QixZQUh2QixVQUFVOzsyRkFHWCx3QkFBd0I7a0JBSnBDLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFLENBQUMsVUFBVSxDQUFDO29CQUNyQixZQUFZLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQztpQkFDOUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBOZ01vZHVsZSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvcmVNb2R1bGUsIERhdGFTZXJ2aWNlLCBHZXRPcmRlclN1bW1hcnlEb2N1bWVudCB9IGZyb20gJ0B2ZW5kdXJlL2FkbWluLXVpL2NvcmUnO1xyXG5pbXBvcnQgeyBncWwgfSBmcm9tICdhcG9sbG8tYW5ndWxhcic7XHJcbmltcG9ydCBkYXlqcyBmcm9tICdkYXlqcyc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwLCBzaGFyZVJlcGxheSwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuZXhwb3J0IHR5cGUgVGltZWZyYW1lID0gJ2RheScgfCAnd2VlaycgfCAnbW9udGgnO1xyXG5cclxuZXhwb3J0IGNvbnN0IEdFVF9PUkRFUl9TVU1NQVJZID0gZ3FsYFxyXG4gICAgcXVlcnkgR2V0T3JkZXJTdW1tYXJ5KCRzdGFydDogRGF0ZVRpbWUhLCAkZW5kOiBEYXRlVGltZSEpIHtcclxuICAgICAgICBvcmRlcnMob3B0aW9uczogeyBmaWx0ZXI6IHsgb3JkZXJQbGFjZWRBdDogeyBiZXR3ZWVuOiB7IHN0YXJ0OiAkc3RhcnQsIGVuZDogJGVuZCB9IH0gfSB9KSB7XHJcbiAgICAgICAgICAgIHRvdGFsSXRlbXNcclxuICAgICAgICAgICAgaXRlbXMge1xyXG4gICAgICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgICAgIHRvdGFsV2l0aFRheFxyXG4gICAgICAgICAgICAgICAgY3VycmVuY3lDb2RlXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbmA7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAndmRyLW9yZGVyLXN1bW1hcnktd2lkZ2V0JyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9vcmRlci1zdW1tYXJ5LXdpZGdldC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9vcmRlci1zdW1tYXJ5LXdpZGdldC5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBPcmRlclN1bW1hcnlXaWRnZXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgdG9kYXkgPSBuZXcgRGF0ZSgpO1xyXG4gICAgeWVzdGVyZGF5ID0gbmV3IERhdGUobmV3IERhdGUoKS5zZXREYXRlKHRoaXMudG9kYXkuZ2V0RGF0ZSgpIC0gMSkpO1xyXG4gICAgdG90YWxPcmRlckNvdW50JDogT2JzZXJ2YWJsZTxudW1iZXI+O1xyXG4gICAgdG90YWxPcmRlclZhbHVlJDogT2JzZXJ2YWJsZTxudW1iZXI+O1xyXG4gICAgY3VycmVuY3lDb2RlJDogT2JzZXJ2YWJsZTxzdHJpbmcgfCB1bmRlZmluZWQ+O1xyXG4gICAgc2VsZWN0aW9uJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8eyB0aW1lZnJhbWU6IFRpbWVmcmFtZTsgZGF0ZT86IERhdGUgfT4oe1xyXG4gICAgICAgIHRpbWVmcmFtZTogJ2RheScsXHJcbiAgICAgICAgZGF0ZTogdGhpcy50b2RheSxcclxuICAgIH0pO1xyXG4gICAgZGF0ZVJhbmdlJDogT2JzZXJ2YWJsZTx7IHN0YXJ0OiBEYXRlOyBlbmQ6IERhdGUgfT47XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBkYXRhU2VydmljZTogRGF0YVNlcnZpY2UpIHt9XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5kYXRlUmFuZ2UkID0gdGhpcy5zZWxlY3Rpb24kLnBpcGUoXHJcbiAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXHJcbiAgICAgICAgICAgIG1hcChzZWxlY3Rpb24gPT4gKHtcclxuICAgICAgICAgICAgICAgIHN0YXJ0OiBkYXlqcyhzZWxlY3Rpb24uZGF0ZSkuc3RhcnRPZihzZWxlY3Rpb24udGltZWZyYW1lKS50b0RhdGUoKSxcclxuICAgICAgICAgICAgICAgIGVuZDogZGF5anMoc2VsZWN0aW9uLmRhdGUpLmVuZE9mKHNlbGVjdGlvbi50aW1lZnJhbWUpLnRvRGF0ZSgpLFxyXG4gICAgICAgICAgICB9KSksXHJcbiAgICAgICAgICAgIHNoYXJlUmVwbGF5KDEpLFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgY29uc3Qgb3JkZXJTdW1tYXJ5JCA9IHRoaXMuZGF0ZVJhbmdlJC5waXBlKFxyXG4gICAgICAgICAgICBzd2l0Y2hNYXAoKHsgc3RhcnQsIGVuZCB9KSA9PlxyXG4gICAgICAgICAgICAgICAgdGhpcy5kYXRhU2VydmljZVxyXG4gICAgICAgICAgICAgICAgICAgIC5xdWVyeShHZXRPcmRlclN1bW1hcnlEb2N1bWVudCwgeyBzdGFydDogc3RhcnQudG9JU09TdHJpbmcoKSwgZW5kOiBlbmQudG9JU09TdHJpbmcoKSB9KVxyXG4gICAgICAgICAgICAgICAgICAgIC5yZWZldGNoT25DaGFubmVsQ2hhbmdlKClcclxuICAgICAgICAgICAgICAgICAgICAubWFwU3RyZWFtKGRhdGEgPT4gZGF0YS5vcmRlcnMpLFxyXG4gICAgICAgICAgICApLFxyXG4gICAgICAgICAgICBzaGFyZVJlcGxheSgxKSxcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMudG90YWxPcmRlckNvdW50JCA9IG9yZGVyU3VtbWFyeSQucGlwZShtYXAocmVzID0+IHJlcy50b3RhbEl0ZW1zKSk7XHJcbiAgICAgICAgdGhpcy50b3RhbE9yZGVyVmFsdWUkID0gb3JkZXJTdW1tYXJ5JC5waXBlKFxyXG4gICAgICAgICAgICBtYXAocmVzID0+IHJlcy5pdGVtcy5yZWR1Y2UoKHRvdGFsLCBvcmRlcikgPT4gdG90YWwgKyBvcmRlci50b3RhbFdpdGhUYXgsIDApIC8gMTAwKSxcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMuY3VycmVuY3lDb2RlJCA9IHRoaXMuZGF0YVNlcnZpY2Uuc2V0dGluZ3NcclxuICAgICAgICAgICAgLmdldEFjdGl2ZUNoYW5uZWwoKVxyXG4gICAgICAgICAgICAucmVmZXRjaE9uQ2hhbm5lbENoYW5nZSgpXHJcbiAgICAgICAgICAgIC5tYXBTdHJlYW0oZGF0YSA9PiBkYXRhLmFjdGl2ZUNoYW5uZWwuZGVmYXVsdEN1cnJlbmN5Q29kZSB8fCB1bmRlZmluZWQpO1xyXG4gICAgfVxyXG59XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gICAgaW1wb3J0czogW0NvcmVNb2R1bGVdLFxyXG4gICAgZGVjbGFyYXRpb25zOiBbT3JkZXJTdW1tYXJ5V2lkZ2V0Q29tcG9uZW50XSxcclxufSlcclxuZXhwb3J0IGNsYXNzIE9yZGVyU3VtbWFyeVdpZGdldE1vZHVsZSB7fVxyXG4iLCI8ZGl2IGNsYXNzPVwic3RhdHNcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJzdGF0XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInN0YXQtZmlndXJlXCI+e3sgdG90YWxPcmRlckNvdW50JCB8IGFzeW5jIH19PC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInN0YXQtbGFiZWxcIj57eyAnZGFzaGJvYXJkLnRvdGFsLW9yZGVycycgfCB0cmFuc2xhdGUgfX08L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInN0YXRcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic3RhdC1maWd1cmVcIj5cclxuICAgICAgICAgICAge3sgdG90YWxPcmRlclZhbHVlJCB8IGFzeW5jIHwgY3VycmVuY3k6IChjdXJyZW5jeUNvZGUkIHwgYXN5bmMpIHx8IHVuZGVmaW5lZCB9fVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzdGF0LWxhYmVsXCI+e3sgJ2Rhc2hib2FyZC50b3RhbC1vcmRlci12YWx1ZScgfCB0cmFuc2xhdGUgfX08L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuPGRpdiBjbGFzcz1cImZvb3RlclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImZsZXhcIiAqbmdJZj1cInNlbGVjdGlvbiQgfCBhc3luYyBhcyBzZWxlY3Rpb25cIj5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnV0dG9uLXNtYWxsXCIgW2NsYXNzLmFjdGl2ZV09XCJzZWxlY3Rpb24uZGF0ZSA9PT0gdG9kYXlcIiAoY2xpY2spPVwic2VsZWN0aW9uJC5uZXh0KHt0aW1lZnJhbWU6ICdkYXknLCBkYXRlOiB0b2RheX0pXCI+XHJcbiAgICAgICAgICAgIHt7ICdkYXNoYm9hcmQudG9kYXknIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIm1sLTEgYnV0dG9uLXNtYWxsXCIgW2NsYXNzLmFjdGl2ZV09XCJzZWxlY3Rpb24uZGF0ZSA9PT0geWVzdGVyZGF5XCIgKGNsaWNrKT1cInNlbGVjdGlvbiQubmV4dCh7dGltZWZyYW1lOiAnZGF5JywgZGF0ZTogeWVzdGVyZGF5fSlcIj5cclxuICAgICAgICAgICAge3sgJ2Rhc2hib2FyZC55ZXN0ZXJkYXknIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIm1sLTEgYnV0dG9uLXNtYWxsXCIgW2NsYXNzLmFjdGl2ZV09XCJzZWxlY3Rpb24udGltZWZyYW1lID09PSAnd2VlaydcIiAoY2xpY2spPVwic2VsZWN0aW9uJC5uZXh0KHt0aW1lZnJhbWU6ICd3ZWVrJ30pXCI+XHJcbiAgICAgICAgICAgIHt7ICdkYXNoYm9hcmQudGhpc1dlZWsnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIm1sLTEgYnV0dG9uLXNtYWxsXCIgW2NsYXNzLmFjdGl2ZV09XCJzZWxlY3Rpb24udGltZWZyYW1lID09PSAnbW9udGgnXCIgKGNsaWNrKT1cInNlbGVjdGlvbiQubmV4dCh7dGltZWZyYW1lOiAnbW9udGgnfSlcIj5cclxuICAgICAgICAgICAge3sgJ2Rhc2hib2FyZC50aGlzTW9udGgnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiZGF0ZS1yYW5nZSBwNVwiICpuZ0lmPVwiZGF0ZVJhbmdlJCB8IGFzeW5jIGFzIHJhbmdlXCI+XHJcbiAgICAgICAge3sgcmFuZ2Uuc3RhcnQgfCBsb2NhbGVEYXRlIH19IC0ge3sgcmFuZ2UuZW5kIHwgbG9jYWxlRGF0ZSB9fVxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItc3VtbWFyeS13aWRnZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9kYXNoYm9hcmQvc3JjL3dpZGdldHMvb3JkZXItc3VtbWFyeS13aWRnZXQvb3JkZXItc3VtbWFyeS13aWRnZXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9kYXNoYm9hcmQvc3JjL3dpZGdldHMvb3JkZXItc3VtbWFyeS13aWRnZXQvb3JkZXItc3VtbWFyeS13aWRnZXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDckYsT0FBTyxFQUFFLFVBQVUsRUFBZSx1QkFBdUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzFGLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFJbkYsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsR0FBRyxDQUFBOzs7Ozs7Ozs7OztDQVduQyxDQUFDO0FBUUYsTUFBTSxPQUFPLDJCQUEyQjtJQVlwQyxZQUFvQixXQUF3QjtRQUF4QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQVg1QyxVQUFLLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNuQixjQUFTLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBSW5FLGVBQVUsR0FBRyxJQUFJLGVBQWUsQ0FBd0M7WUFDcEUsU0FBUyxFQUFFLEtBQUs7WUFDaEIsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLO1NBQ25CLENBQUMsQ0FBQztJQUc0QyxDQUFDO0lBRWhELFFBQVE7UUFDSixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUNsQyxvQkFBb0IsRUFBRSxFQUN0QixHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2QsS0FBSyxFQUFFLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUU7WUFDbEUsR0FBRyxFQUFFLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUU7U0FDakUsQ0FBQyxDQUFDLEVBQ0gsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUNqQixDQUFDO1FBQ0YsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQ3RDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FDekIsSUFBSSxDQUFDLFdBQVc7YUFDWCxLQUFLLENBQUMsdUJBQXVCLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLFdBQVcsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQzthQUN0RixzQkFBc0IsRUFBRTthQUN4QixTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQ3RDLEVBQ0QsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUNqQixDQUFDO1FBQ0YsSUFBSSxDQUFDLGdCQUFnQixHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDdkUsSUFBSSxDQUFDLGdCQUFnQixHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQ3RDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FDaEYsQ0FBQztRQUNGLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRO2FBQ3pDLGdCQUFnQixFQUFFO2FBQ2xCLHNCQUFzQixFQUFFO2FBQ3hCLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsbUJBQW1CLElBQUksU0FBUyxDQUFDLENBQUM7SUFDaEYsQ0FBQzs4R0F4Q1EsMkJBQTJCO2tHQUEzQiwyQkFBMkIsZ0VDNUJ4Qyx5ckRBZ0NBOzsyRkRKYSwyQkFBMkI7a0JBTnZDLFNBQVM7K0JBQ0ksMEJBQTBCLG1CQUduQix1QkFBdUIsQ0FBQyxNQUFNOztBQWlEbkQsTUFBTSxPQUFPLHdCQUF3Qjs4R0FBeEIsd0JBQXdCOytHQUF4Qix3QkFBd0IsaUJBL0N4QiwyQkFBMkIsYUE0QzFCLFVBQVU7K0dBR1gsd0JBQXdCLFlBSHZCLFVBQVU7OzJGQUdYLHdCQUF3QjtrQkFKcEMsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUUsQ0FBQyxVQUFVLENBQUM7b0JBQ3JCLFlBQVksRUFBRSxDQUFDLDJCQUEyQixDQUFDO2lCQUM5QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIE5nTW9kdWxlLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29yZU1vZHVsZSwgRGF0YVNlcnZpY2UsIEdldE9yZGVyU3VtbWFyeURvY3VtZW50IH0gZnJvbSAnQHZlbmR1cmUvYWRtaW4tdWkvY29yZSc7XHJcbmltcG9ydCB7IGdxbCB9IGZyb20gJ2Fwb2xsby1hbmd1bGFyJztcclxuaW1wb3J0IGRheWpzIGZyb20gJ2RheWpzJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHNoYXJlUmVwbGF5LCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5leHBvcnQgdHlwZSBUaW1lZnJhbWUgPSAnZGF5JyB8ICd3ZWVrJyB8ICdtb250aCc7XHJcblxyXG5leHBvcnQgY29uc3QgR0VUX09SREVSX1NVTU1BUlkgPSBncWxgXHJcbiAgICBxdWVyeSBHZXRPcmRlclN1bW1hcnkoJHN0YXJ0OiBEYXRlVGltZSEsICRlbmQ6IERhdGVUaW1lISkge1xyXG4gICAgICAgIG9yZGVycyhvcHRpb25zOiB7IGZpbHRlcjogeyBvcmRlclBsYWNlZEF0OiB7IGJldHdlZW46IHsgc3RhcnQ6ICRzdGFydCwgZW5kOiAkZW5kIH0gfSB9IH0pIHtcclxuICAgICAgICAgICAgdG90YWxJdGVtc1xyXG4gICAgICAgICAgICBpdGVtcyB7XHJcbiAgICAgICAgICAgICAgICBpZFxyXG4gICAgICAgICAgICAgICAgdG90YWxXaXRoVGF4XHJcbiAgICAgICAgICAgICAgICBjdXJyZW5jeUNvZGVcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuYDtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICd2ZHItb3JkZXItc3VtbWFyeS13aWRnZXQnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL29yZGVyLXN1bW1hcnktd2lkZ2V0LmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL29yZGVyLXN1bW1hcnktd2lkZ2V0LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIE9yZGVyU3VtbWFyeVdpZGdldENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgICB0b2RheSA9IG5ldyBEYXRlKCk7XHJcbiAgICB5ZXN0ZXJkYXkgPSBuZXcgRGF0ZShuZXcgRGF0ZSgpLnNldERhdGUodGhpcy50b2RheS5nZXREYXRlKCkgLSAxKSk7XHJcbiAgICB0b3RhbE9yZGVyQ291bnQkOiBPYnNlcnZhYmxlPG51bWJlcj47XHJcbiAgICB0b3RhbE9yZGVyVmFsdWUkOiBPYnNlcnZhYmxlPG51bWJlcj47XHJcbiAgICBjdXJyZW5jeUNvZGUkOiBPYnNlcnZhYmxlPHN0cmluZyB8IHVuZGVmaW5lZD47XHJcbiAgICBzZWxlY3Rpb24kID0gbmV3IEJlaGF2aW9yU3ViamVjdDx7IHRpbWVmcmFtZTogVGltZWZyYW1lOyBkYXRlPzogRGF0ZSB9Pih7XHJcbiAgICAgICAgdGltZWZyYW1lOiAnZGF5JyxcclxuICAgICAgICBkYXRlOiB0aGlzLnRvZGF5LFxyXG4gICAgfSk7XHJcbiAgICBkYXRlUmFuZ2UkOiBPYnNlcnZhYmxlPHsgc3RhcnQ6IERhdGU7IGVuZDogRGF0ZSB9PjtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRhdGFTZXJ2aWNlOiBEYXRhU2VydmljZSkge31cclxuXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmRhdGVSYW5nZSQgPSB0aGlzLnNlbGVjdGlvbiQucGlwZShcclxuICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcclxuICAgICAgICAgICAgbWFwKHNlbGVjdGlvbiA9PiAoe1xyXG4gICAgICAgICAgICAgICAgc3RhcnQ6IGRheWpzKHNlbGVjdGlvbi5kYXRlKS5zdGFydE9mKHNlbGVjdGlvbi50aW1lZnJhbWUpLnRvRGF0ZSgpLFxyXG4gICAgICAgICAgICAgICAgZW5kOiBkYXlqcyhzZWxlY3Rpb24uZGF0ZSkuZW5kT2Yoc2VsZWN0aW9uLnRpbWVmcmFtZSkudG9EYXRlKCksXHJcbiAgICAgICAgICAgIH0pKSxcclxuICAgICAgICAgICAgc2hhcmVSZXBsYXkoMSksXHJcbiAgICAgICAgKTtcclxuICAgICAgICBjb25zdCBvcmRlclN1bW1hcnkkID0gdGhpcy5kYXRlUmFuZ2UkLnBpcGUoXHJcbiAgICAgICAgICAgIHN3aXRjaE1hcCgoeyBzdGFydCwgZW5kIH0pID0+XHJcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGFTZXJ2aWNlXHJcbiAgICAgICAgICAgICAgICAgICAgLnF1ZXJ5KEdldE9yZGVyU3VtbWFyeURvY3VtZW50LCB7IHN0YXJ0OiBzdGFydC50b0lTT1N0cmluZygpLCBlbmQ6IGVuZC50b0lTT1N0cmluZygpIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgLnJlZmV0Y2hPbkNoYW5uZWxDaGFuZ2UoKVxyXG4gICAgICAgICAgICAgICAgICAgIC5tYXBTdHJlYW0oZGF0YSA9PiBkYXRhLm9yZGVycyksXHJcbiAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgIHNoYXJlUmVwbGF5KDEpLFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy50b3RhbE9yZGVyQ291bnQkID0gb3JkZXJTdW1tYXJ5JC5waXBlKG1hcChyZXMgPT4gcmVzLnRvdGFsSXRlbXMpKTtcclxuICAgICAgICB0aGlzLnRvdGFsT3JkZXJWYWx1ZSQgPSBvcmRlclN1bW1hcnkkLnBpcGUoXHJcbiAgICAgICAgICAgIG1hcChyZXMgPT4gcmVzLml0ZW1zLnJlZHVjZSgodG90YWwsIG9yZGVyKSA9PiB0b3RhbCArIG9yZGVyLnRvdGFsV2l0aFRheCwgMCkpLFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5jdXJyZW5jeUNvZGUkID0gdGhpcy5kYXRhU2VydmljZS5zZXR0aW5nc1xyXG4gICAgICAgICAgICAuZ2V0QWN0aXZlQ2hhbm5lbCgpXHJcbiAgICAgICAgICAgIC5yZWZldGNoT25DaGFubmVsQ2hhbmdlKClcclxuICAgICAgICAgICAgLm1hcFN0cmVhbShkYXRhID0+IGRhdGEuYWN0aXZlQ2hhbm5lbC5kZWZhdWx0Q3VycmVuY3lDb2RlIHx8IHVuZGVmaW5lZCk7XHJcbiAgICB9XHJcbn1cclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgICBpbXBvcnRzOiBbQ29yZU1vZHVsZV0sXHJcbiAgICBkZWNsYXJhdGlvbnM6IFtPcmRlclN1bW1hcnlXaWRnZXRDb21wb25lbnRdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgT3JkZXJTdW1tYXJ5V2lkZ2V0TW9kdWxlIHt9XHJcbiIsIjxkaXYgY2xhc3M9XCJzdGF0c1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cInN0YXRcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic3RhdC1maWd1cmVcIj57eyB0b3RhbE9yZGVyQ291bnQkIHwgYXN5bmMgfX08L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic3RhdC1sYWJlbFwiPnt7ICdkYXNoYm9hcmQudG90YWwtb3JkZXJzJyB8IHRyYW5zbGF0ZSB9fTwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwic3RhdFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzdGF0LWZpZ3VyZVwiPlxyXG4gICAgICAgICAgICB7eyB0b3RhbE9yZGVyVmFsdWUkIHwgYXN5bmMgfCBsb2NhbGVDdXJyZW5jeTogKGN1cnJlbmN5Q29kZSQgfCBhc3luYykgfHwgdW5kZWZpbmVkIH19XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInN0YXQtbGFiZWxcIj57eyAnZGFzaGJvYXJkLnRvdGFsLW9yZGVyLXZhbHVlJyB8IHRyYW5zbGF0ZSB9fTwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG48ZGl2IGNsYXNzPVwiZm9vdGVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZmxleFwiICpuZ0lmPVwic2VsZWN0aW9uJCB8IGFzeW5jIGFzIHNlbGVjdGlvblwiPlxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidXR0b24tc21hbGxcIiBbY2xhc3MuYWN0aXZlXT1cInNlbGVjdGlvbi5kYXRlID09PSB0b2RheVwiIChjbGljayk9XCJzZWxlY3Rpb24kLm5leHQoe3RpbWVmcmFtZTogJ2RheScsIGRhdGU6IHRvZGF5fSlcIj5cclxuICAgICAgICAgICAge3sgJ2Rhc2hib2FyZC50b2RheScgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwibWwtMSBidXR0b24tc21hbGxcIiBbY2xhc3MuYWN0aXZlXT1cInNlbGVjdGlvbi5kYXRlID09PSB5ZXN0ZXJkYXlcIiAoY2xpY2spPVwic2VsZWN0aW9uJC5uZXh0KHt0aW1lZnJhbWU6ICdkYXknLCBkYXRlOiB5ZXN0ZXJkYXl9KVwiPlxyXG4gICAgICAgICAgICB7eyAnZGFzaGJvYXJkLnllc3RlcmRheScgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwibWwtMSBidXR0b24tc21hbGxcIiBbY2xhc3MuYWN0aXZlXT1cInNlbGVjdGlvbi50aW1lZnJhbWUgPT09ICd3ZWVrJ1wiIChjbGljayk9XCJzZWxlY3Rpb24kLm5leHQoe3RpbWVmcmFtZTogJ3dlZWsnfSlcIj5cclxuICAgICAgICAgICAge3sgJ2Rhc2hib2FyZC50aGlzV2VlaycgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwibWwtMSBidXR0b24tc21hbGxcIiBbY2xhc3MuYWN0aXZlXT1cInNlbGVjdGlvbi50aW1lZnJhbWUgPT09ICdtb250aCdcIiAoY2xpY2spPVwic2VsZWN0aW9uJC5uZXh0KHt0aW1lZnJhbWU6ICdtb250aCd9KVwiPlxyXG4gICAgICAgICAgICB7eyAnZGFzaGJvYXJkLnRoaXNNb250aCcgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJkYXRlLXJhbmdlIHA1XCIgKm5nSWY9XCJkYXRlUmFuZ2UkIHwgYXN5bmMgYXMgcmFuZ2VcIj5cclxuICAgICAgICB7eyByYW5nZS5zdGFydCB8IGxvY2FsZURhdGUgfX0gLSB7eyByYW5nZS5lbmQgfCBsb2NhbGVEYXRlIH19XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -46,6 +46,66 @@ export function useQuery(query, variables) {
46
46
  const refetch = (variables) => firstValueFrom(runQuery(variables));
47
47
  return { data, loading, error, refetch };
48
48
  }
49
+ /**
50
+ * @description
51
+ * A React hook which allows you to execute a GraphQL query.
52
+ *
53
+ * @example
54
+ * ```ts
55
+ * import { useLazyQuery } from '\@vendure/admin-ui/react';
56
+ * import { gql } from 'graphql-tag';
57
+ *
58
+ * const GET_PRODUCT = gql`
59
+ * query GetProduct($id: ID!) {
60
+ * product(id: $id) {
61
+ * id
62
+ * name
63
+ * description
64
+ * }
65
+ * }`;
66
+ * type ProductResponse = {
67
+ * product: {
68
+ * name: string
69
+ * description: string
70
+ * }
71
+ * }
72
+ *
73
+ * export const MyComponent = () => {
74
+ * const [getProduct, { data, loading, error }] = useLazyQuery<ProductResponse>(GET_PRODUCT);
75
+ *
76
+ * const handleClick = () => {
77
+ * getProduct({
78
+ * id: '1',
79
+ * }).then(result => {
80
+ * // do something with the result
81
+ * });
82
+ * };
83
+ *
84
+ * if (loading) return <div>Loading...</div>;
85
+ * if (error) return <div>Error! { error }</div>;
86
+ *
87
+ * return (
88
+ * <div>
89
+ * <button onClick={handleClick}>Get product</button>
90
+ * {data && (
91
+ * <div>
92
+ * <h1>{data.product.name}</h1>
93
+ * <p>{data.product.description}</p>
94
+ * </div>)}
95
+ * </div>
96
+ * );
97
+ * };
98
+ * ```
99
+ *
100
+ * @since 2.2.0
101
+ * @docsCategory react-hooks
102
+ */
103
+ export function useLazyQuery(query) {
104
+ const { data, loading, error, runQuery } = useDataService((dataService, vars) => dataService.query(query, vars).stream$);
105
+ const rest = { data, loading, error };
106
+ const execute = (variables) => firstValueFrom(runQuery(variables));
107
+ return [execute, rest];
108
+ }
49
109
  /**
50
110
  * @description
51
111
  * A React hook which allows you to execute a GraphQL mutation.
@@ -121,4 +181,4 @@ export function useDataService(operation) {
121
181
  }, []);
122
182
  return { data, loading, error, runQuery };
123
183
  }
124
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLXF1ZXJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9yZWFjdC9zcmMvcmVhY3QtaG9va3MvdXNlLXF1ZXJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVyRCxPQUFPLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxjQUFjLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDbEQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBRXRGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQ0c7QUFDSCxNQUFNLFVBQVUsUUFBUSxDQUNwQixLQUE2QyxFQUM3QyxTQUFhO0lBRWIsTUFBTSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxHQUFHLGNBQWMsQ0FDckQsQ0FBQyxXQUFXLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQ2hFLENBQUM7SUFDRixTQUFTLENBQUMsR0FBRyxFQUFFO1FBQ1gsTUFBTSxZQUFZLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3JELE9BQU8sR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzVDLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFFZixNQUFNLE9BQU8sR0FBRyxDQUFDLFNBQWEsRUFBRSxFQUFFLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQ3ZFLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQVcsQ0FBQztBQUN0RCxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNENHO0FBQ0gsTUFBTSxVQUFVLFdBQVcsQ0FDdkIsUUFBZ0Q7SUFFaEQsTUFBTSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxHQUFHLGNBQWMsQ0FBTyxDQUFDLFdBQVcsRUFBRSxTQUFTLEVBQUUsRUFBRSxDQUN2RixXQUFXLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FDMUMsQ0FBQztJQUNGLE1BQU0sSUFBSSxHQUFHLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUN0QyxNQUFNLE9BQU8sR0FBRyxDQUFDLFNBQWEsRUFBRSxFQUFFLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQ3ZFLE9BQU8sQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFrQyxDQUFDO0FBQzVELENBQUM7QUFFRCxNQUFNLFVBQVUsY0FBYyxDQUMxQixTQUFxRTtJQUVyRSxNQUFNLE9BQU8sR0FBRyxVQUFVLENBQUMsc0JBQXNCLENBQUMsQ0FBQztJQUNuRCxNQUFNLFdBQVcsR0FBRyxPQUFPLEVBQUUsUUFBUSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN2RCxJQUFJLENBQUMsV0FBVyxFQUFFO1FBQ2QsTUFBTSxJQUFJLEtBQUssQ0FBQyxnREFBZ0QsQ0FBQyxDQUFDO0tBQ3JFO0lBRUQsTUFBTSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsR0FBRyxRQUFRLEVBQUssQ0FBQztJQUN0QyxNQUFNLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxHQUFHLFFBQVEsRUFBVSxDQUFDO0lBQzdDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRTlDLE1BQU0sUUFBUSxHQUFHLFdBQVcsQ0FBQyxDQUFDLFNBQWEsRUFBRSxFQUFFO1FBQzNDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqQixPQUFPLFNBQVMsQ0FBQyxXQUFXLEVBQUUsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUN6QyxHQUFHLENBQUM7WUFDQSxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUU7Z0JBQ1IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNiLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN0QixDQUFDO1lBQ0QsS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUFFO2dCQUNULFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ3RCLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN0QixDQUFDO1NBQ0osQ0FBQyxDQUNMLENBQUM7SUFDTixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFUCxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLENBQUM7QUFDOUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFR5cGVkRG9jdW1lbnROb2RlIH0gZnJvbSAnQGdyYXBocWwtdHlwZWQtZG9jdW1lbnQtbm9kZS9jb3JlJztcclxuaW1wb3J0IHsgRGF0YVNlcnZpY2UgfSBmcm9tICdAdmVuZHVyZS9hZG1pbi11aS9jb3JlJztcclxuaW1wb3J0IHsgRG9jdW1lbnROb2RlIH0gZnJvbSAnZ3JhcGhxbC9pbmRleCc7XHJcbmltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VDb250ZXh0LCB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xyXG5pbXBvcnQgeyBmaXJzdFZhbHVlRnJvbSwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEhvc3RlZENvbXBvbmVudENvbnRleHQgfSBmcm9tICcuLi9kaXJlY3RpdmVzL3JlYWN0LWNvbXBvbmVudC1ob3N0LmRpcmVjdGl2ZSc7XHJcblxyXG4vKipcclxuICogQGRlc2NyaXB0aW9uXHJcbiAqIEEgUmVhY3QgaG9vayB3aGljaCBwcm92aWRlcyBhY2Nlc3MgdG8gdGhlIHJlc3VsdHMgb2YgYSBHcmFwaFFMIHF1ZXJ5LlxyXG4gKlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0c1xyXG4gKiBpbXBvcnQgeyB1c2VRdWVyeSB9IGZyb20gJ1xcQHZlbmR1cmUvYWRtaW4tdWkvcmVhY3QnO1xyXG4gKiBpbXBvcnQgeyBncWwgfSBmcm9tICdncmFwaHFsLXRhZyc7XHJcbiAqXHJcbiAqIGNvbnN0IEdFVF9QUk9EVUNUID0gZ3FsYFxyXG4gKiAgICBxdWVyeSBHZXRQcm9kdWN0KCRpZDogSUQhKSB7XHJcbiAqICAgICAgcHJvZHVjdChpZDogJGlkKSB7XHJcbiAqICAgICAgICBpZFxyXG4gKiAgICAgICAgbmFtZVxyXG4gKiAgICAgICAgZGVzY3JpcHRpb25cclxuICogICAgICB9XHJcbiAqICAgIH1gO1xyXG4gKlxyXG4gKiBleHBvcnQgY29uc3QgTXlDb21wb25lbnQgPSAoKSA9PiB7XHJcbiAqICAgICBjb25zdCB7IGRhdGEsIGxvYWRpbmcsIGVycm9yIH0gPSB1c2VRdWVyeShHRVRfUFJPRFVDVCwgeyBpZDogJzEnIH0pO1xyXG4gKlxyXG4gKiAgICAgaWYgKGxvYWRpbmcpIHJldHVybiA8ZGl2PkxvYWRpbmcuLi48L2Rpdj47XHJcbiAqICAgICBpZiAoZXJyb3IpIHJldHVybiA8ZGl2PkVycm9yISB7IGVycm9yIH08L2Rpdj47XHJcbiAqICAgICByZXR1cm4gKFxyXG4gKiAgICAgICAgIDxkaXY+XHJcbiAqICAgICAgICAgICAgIDxoMT57ZGF0YS5wcm9kdWN0Lm5hbWV9PC9oMT5cclxuICogICAgICAgICAgICAgPHA+e2RhdGEucHJvZHVjdC5kZXNjcmlwdGlvbn08L3A+XHJcbiAqICAgICAgICAgPC9kaXY+XHJcbiAqICAgICApO1xyXG4gKiB9O1xyXG4gKiBgYGBcclxuICpcclxuICogQGRvY3NDYXRlZ29yeSByZWFjdC1ob29rc1xyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHVzZVF1ZXJ5PFQsIFYgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0gUmVjb3JkPHN0cmluZywgYW55Pj4oXHJcbiAgICBxdWVyeTogRG9jdW1lbnROb2RlIHwgVHlwZWREb2N1bWVudE5vZGU8VCwgVj4sXHJcbiAgICB2YXJpYWJsZXM/OiBWLFxyXG4pIHtcclxuICAgIGNvbnN0IHsgZGF0YSwgbG9hZGluZywgZXJyb3IsIHJ1blF1ZXJ5IH0gPSB1c2VEYXRhU2VydmljZTxULCBWPihcclxuICAgICAgICAoZGF0YVNlcnZpY2UsIHZhcnMpID0+IGRhdGFTZXJ2aWNlLnF1ZXJ5KHF1ZXJ5LCB2YXJzKS5zdHJlYW0kLFxyXG4gICAgKTtcclxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uID0gcnVuUXVlcnkodmFyaWFibGVzKS5zdWJzY3JpYmUoKTtcclxuICAgICAgICByZXR1cm4gKCkgPT4gc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9LCBbcnVuUXVlcnldKTtcclxuXHJcbiAgICBjb25zdCByZWZldGNoID0gKHZhcmlhYmxlcz86IFYpID0+IGZpcnN0VmFsdWVGcm9tKHJ1blF1ZXJ5KHZhcmlhYmxlcykpO1xyXG4gICAgcmV0dXJuIHsgZGF0YSwgbG9hZGluZywgZXJyb3IsIHJlZmV0Y2ggfSBhcyBjb25zdDtcclxufVxyXG5cclxuLyoqXHJcbiAqIEBkZXNjcmlwdGlvblxyXG4gKiBBIFJlYWN0IGhvb2sgd2hpY2ggYWxsb3dzIHlvdSB0byBleGVjdXRlIGEgR3JhcGhRTCBtdXRhdGlvbi5cclxuICpcclxuICogQGV4YW1wbGVcclxuICogYGBgdHNcclxuICogaW1wb3J0IHsgdXNlTXV0YXRpb24gfSBmcm9tICdcXEB2ZW5kdXJlL2FkbWluLXVpL3JlYWN0JztcclxuICogaW1wb3J0IHsgZ3FsIH0gZnJvbSAnZ3JhcGhxbC10YWcnO1xyXG4gKlxyXG4gKiBjb25zdCBVUERBVEVfUFJPRFVDVCA9IGdxbGBcclxuICogICBtdXRhdGlvbiBVcGRhdGVQcm9kdWN0KCRpbnB1dDogVXBkYXRlUHJvZHVjdElucHV0ISkge1xyXG4gKiAgICAgdXBkYXRlUHJvZHVjdChpbnB1dDogJGlucHV0KSB7XHJcbiAqICAgICBpZFxyXG4gKiAgICAgbmFtZVxyXG4gKiAgIH1cclxuICogfWA7XHJcbiAqXHJcbiAqIGV4cG9ydCBjb25zdCBNeUNvbXBvbmVudCA9ICgpID0+IHtcclxuICogICAgIGNvbnN0IFt1cGRhdGVQcm9kdWN0LCB7IGRhdGEsIGxvYWRpbmcsIGVycm9yIH1dID0gdXNlTXV0YXRpb24oVVBEQVRFX1BST0RVQ1QpO1xyXG4gKlxyXG4gKiAgICAgY29uc3QgaGFuZGxlQ2xpY2sgPSAoKSA9PiB7XHJcbiAqICAgICAgICAgdXBkYXRlUHJvZHVjdCh7XHJcbiAqICAgICAgICAgICAgIGlucHV0OiB7XHJcbiAqICAgICAgICAgICAgICAgICBpZDogJzEnLFxyXG4gKiAgICAgICAgICAgICAgICAgbmFtZTogJ05ldyBuYW1lJyxcclxuICogICAgICAgICAgICAgfSxcclxuICogICAgICAgICB9KS50aGVuKHJlc3VsdCA9PiB7XHJcbiAqICAgICAgICAgICAgIC8vIGRvIHNvbWV0aGluZyB3aXRoIHRoZSByZXN1bHRcclxuICogICAgICAgICB9KTtcclxuICogICAgIH07XHJcbiAqXHJcbiAqICAgICBpZiAobG9hZGluZykgcmV0dXJuIDxkaXY+TG9hZGluZy4uLjwvZGl2PjtcclxuICogICAgIGlmIChlcnJvcikgcmV0dXJuIDxkaXY+RXJyb3IhIHsgZXJyb3IgfTwvZGl2PjtcclxuICpcclxuICogICAgIHJldHVybiAoXHJcbiAqICAgICA8ZGl2PlxyXG4gKiAgICAgICAgIDxidXR0b24gb25DbGljaz17aGFuZGxlQ2xpY2t9PlVwZGF0ZSBwcm9kdWN0PC9idXR0b24+XHJcbiAqICAgICAgICAge2RhdGEgJiYgPGRpdj5Qcm9kdWN0IHVwZGF0ZWQhPC9kaXY+fVxyXG4gKiAgICAgPC9kaXY+XHJcbiAqICAgICApO1xyXG4gKiB9O1xyXG4gKiBgYGBcclxuICpcclxuICogQGRvY3NDYXRlZ29yeSByZWFjdC1ob29rc1xyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHVzZU11dGF0aW9uPFQsIFYgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0gUmVjb3JkPHN0cmluZywgYW55Pj4oXHJcbiAgICBtdXRhdGlvbjogRG9jdW1lbnROb2RlIHwgVHlwZWREb2N1bWVudE5vZGU8VCwgVj4sXHJcbikge1xyXG4gICAgY29uc3QgeyBkYXRhLCBsb2FkaW5nLCBlcnJvciwgcnVuUXVlcnkgfSA9IHVzZURhdGFTZXJ2aWNlPFQsIFY+KChkYXRhU2VydmljZSwgdmFyaWFibGVzKSA9PlxyXG4gICAgICAgIGRhdGFTZXJ2aWNlLm11dGF0ZShtdXRhdGlvbiwgdmFyaWFibGVzKSxcclxuICAgICk7XHJcbiAgICBjb25zdCByZXN0ID0geyBkYXRhLCBsb2FkaW5nLCBlcnJvciB9O1xyXG4gICAgY29uc3QgZXhlY3V0ZSA9ICh2YXJpYWJsZXM/OiBWKSA9PiBmaXJzdFZhbHVlRnJvbShydW5RdWVyeSh2YXJpYWJsZXMpKTtcclxuICAgIHJldHVybiBbZXhlY3V0ZSwgcmVzdF0gYXMgW3R5cGVvZiBleGVjdXRlLCB0eXBlb2YgcmVzdF07XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiB1c2VEYXRhU2VydmljZTxULCBWIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55PiA9IFJlY29yZDxzdHJpbmcsIGFueT4+KFxyXG4gICAgb3BlcmF0aW9uOiAoZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlLCB2YXJpYWJsZXM/OiBWKSA9PiBPYnNlcnZhYmxlPFQ+LFxyXG4pIHtcclxuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VDb250ZXh0KEhvc3RlZENvbXBvbmVudENvbnRleHQpO1xyXG4gICAgY29uc3QgZGF0YVNlcnZpY2UgPSBjb250ZXh0Py5pbmplY3Rvci5nZXQoRGF0YVNlcnZpY2UpO1xyXG4gICAgaWYgKCFkYXRhU2VydmljZSkge1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcignTm8gRGF0YVNlcnZpY2UgZm91bmQgaW4gSG9zdGVkQ29tcG9uZW50Q29udGV4dCcpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IFtkYXRhLCBzZXREYXRhXSA9IHVzZVN0YXRlPFQ+KCk7XHJcbiAgICBjb25zdCBbZXJyb3IsIHNldEVycm9yXSA9IHVzZVN0YXRlPHN0cmluZz4oKTtcclxuICAgIGNvbnN0IFtsb2FkaW5nLCBzZXRMb2FkaW5nXSA9IHVzZVN0YXRlKGZhbHNlKTtcclxuXHJcbiAgICBjb25zdCBydW5RdWVyeSA9IHVzZUNhbGxiYWNrKCh2YXJpYWJsZXM/OiBWKSA9PiB7XHJcbiAgICAgICAgc2V0TG9hZGluZyh0cnVlKTtcclxuICAgICAgICByZXR1cm4gb3BlcmF0aW9uKGRhdGFTZXJ2aWNlLCB2YXJpYWJsZXMpLnBpcGUoXHJcbiAgICAgICAgICAgIHRhcCh7XHJcbiAgICAgICAgICAgICAgICBuZXh0OiByZXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHNldERhdGEocmVzKTtcclxuICAgICAgICAgICAgICAgICAgICBzZXRMb2FkaW5nKGZhbHNlKTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBlcnJvcjogZXJyID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBzZXRFcnJvcihlcnIubWVzc2FnZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgc2V0TG9hZGluZyhmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICApO1xyXG4gICAgfSwgW10pO1xyXG5cclxuICAgIHJldHVybiB7IGRhdGEsIGxvYWRpbmcsIGVycm9yLCBydW5RdWVyeSB9O1xyXG59XHJcbiJdfQ==
184
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLXF1ZXJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9yZWFjdC9zcmMvcmVhY3QtaG9va3MvdXNlLXF1ZXJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVyRCxPQUFPLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxjQUFjLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDbEQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBRXRGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQ0c7QUFDSCxNQUFNLFVBQVUsUUFBUSxDQUNwQixLQUE2QyxFQUM3QyxTQUFhO0lBRWIsTUFBTSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxHQUFHLGNBQWMsQ0FDckQsQ0FBQyxXQUFXLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQ2hFLENBQUM7SUFDRixTQUFTLENBQUMsR0FBRyxFQUFFO1FBQ1gsTUFBTSxZQUFZLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3JELE9BQU8sR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzVDLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFFZixNQUFNLE9BQU8sR0FBRyxDQUFDLFNBQWEsRUFBRSxFQUFFLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQ3ZFLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQVcsQ0FBQztBQUN0RCxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcURHO0FBQ0gsTUFBTSxVQUFVLFlBQVksQ0FDeEIsS0FBNkM7SUFFN0MsTUFBTSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxHQUFHLGNBQWMsQ0FDckQsQ0FBQyxXQUFXLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQ2hFLENBQUM7SUFDRixNQUFNLElBQUksR0FBRyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDdEMsTUFBTSxPQUFPLEdBQUcsQ0FBQyxTQUFhLEVBQUUsRUFBRSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUN2RSxPQUFPLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBa0MsQ0FBQztBQUM1RCxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNENHO0FBQ0gsTUFBTSxVQUFVLFdBQVcsQ0FDdkIsUUFBZ0Q7SUFFaEQsTUFBTSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxHQUFHLGNBQWMsQ0FBTyxDQUFDLFdBQVcsRUFBRSxTQUFTLEVBQUUsRUFBRSxDQUN2RixXQUFXLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FDMUMsQ0FBQztJQUNGLE1BQU0sSUFBSSxHQUFHLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUN0QyxNQUFNLE9BQU8sR0FBRyxDQUFDLFNBQWEsRUFBRSxFQUFFLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQ3ZFLE9BQU8sQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFrQyxDQUFDO0FBQzVELENBQUM7QUFFRCxNQUFNLFVBQVUsY0FBYyxDQUMxQixTQUFxRTtJQUVyRSxNQUFNLE9BQU8sR0FBRyxVQUFVLENBQUMsc0JBQXNCLENBQUMsQ0FBQztJQUNuRCxNQUFNLFdBQVcsR0FBRyxPQUFPLEVBQUUsUUFBUSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN2RCxJQUFJLENBQUMsV0FBVyxFQUFFO1FBQ2QsTUFBTSxJQUFJLEtBQUssQ0FBQyxnREFBZ0QsQ0FBQyxDQUFDO0tBQ3JFO0lBRUQsTUFBTSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsR0FBRyxRQUFRLEVBQUssQ0FBQztJQUN0QyxNQUFNLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxHQUFHLFFBQVEsRUFBVSxDQUFDO0lBQzdDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRTlDLE1BQU0sUUFBUSxHQUFHLFdBQVcsQ0FBQyxDQUFDLFNBQWEsRUFBRSxFQUFFO1FBQzNDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqQixPQUFPLFNBQVMsQ0FBQyxXQUFXLEVBQUUsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUN6QyxHQUFHLENBQUM7WUFDQSxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUU7Z0JBQ1IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNiLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN0QixDQUFDO1lBQ0QsS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUFFO2dCQUNULFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ3RCLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN0QixDQUFDO1NBQ0osQ0FBQyxDQUNMLENBQUM7SUFDTixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFUCxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLENBQUM7QUFDOUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFR5cGVkRG9jdW1lbnROb2RlIH0gZnJvbSAnQGdyYXBocWwtdHlwZWQtZG9jdW1lbnQtbm9kZS9jb3JlJztcclxuaW1wb3J0IHsgRGF0YVNlcnZpY2UgfSBmcm9tICdAdmVuZHVyZS9hZG1pbi11aS9jb3JlJztcclxuaW1wb3J0IHsgRG9jdW1lbnROb2RlIH0gZnJvbSAnZ3JhcGhxbC9pbmRleCc7XHJcbmltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VDb250ZXh0LCB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xyXG5pbXBvcnQgeyBmaXJzdFZhbHVlRnJvbSwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEhvc3RlZENvbXBvbmVudENvbnRleHQgfSBmcm9tICcuLi9kaXJlY3RpdmVzL3JlYWN0LWNvbXBvbmVudC1ob3N0LmRpcmVjdGl2ZSc7XHJcblxyXG4vKipcclxuICogQGRlc2NyaXB0aW9uXHJcbiAqIEEgUmVhY3QgaG9vayB3aGljaCBwcm92aWRlcyBhY2Nlc3MgdG8gdGhlIHJlc3VsdHMgb2YgYSBHcmFwaFFMIHF1ZXJ5LlxyXG4gKlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0c1xyXG4gKiBpbXBvcnQgeyB1c2VRdWVyeSB9IGZyb20gJ1xcQHZlbmR1cmUvYWRtaW4tdWkvcmVhY3QnO1xyXG4gKiBpbXBvcnQgeyBncWwgfSBmcm9tICdncmFwaHFsLXRhZyc7XHJcbiAqXHJcbiAqIGNvbnN0IEdFVF9QUk9EVUNUID0gZ3FsYFxyXG4gKiAgICBxdWVyeSBHZXRQcm9kdWN0KCRpZDogSUQhKSB7XHJcbiAqICAgICAgcHJvZHVjdChpZDogJGlkKSB7XHJcbiAqICAgICAgICBpZFxyXG4gKiAgICAgICAgbmFtZVxyXG4gKiAgICAgICAgZGVzY3JpcHRpb25cclxuICogICAgICB9XHJcbiAqICAgIH1gO1xyXG4gKlxyXG4gKiBleHBvcnQgY29uc3QgTXlDb21wb25lbnQgPSAoKSA9PiB7XHJcbiAqICAgICBjb25zdCB7IGRhdGEsIGxvYWRpbmcsIGVycm9yIH0gPSB1c2VRdWVyeShHRVRfUFJPRFVDVCwgeyBpZDogJzEnIH0pO1xyXG4gKlxyXG4gKiAgICAgaWYgKGxvYWRpbmcpIHJldHVybiA8ZGl2PkxvYWRpbmcuLi48L2Rpdj47XHJcbiAqICAgICBpZiAoZXJyb3IpIHJldHVybiA8ZGl2PkVycm9yISB7IGVycm9yIH08L2Rpdj47XHJcbiAqICAgICByZXR1cm4gKFxyXG4gKiAgICAgICAgIDxkaXY+XHJcbiAqICAgICAgICAgICAgIDxoMT57ZGF0YS5wcm9kdWN0Lm5hbWV9PC9oMT5cclxuICogICAgICAgICAgICAgPHA+e2RhdGEucHJvZHVjdC5kZXNjcmlwdGlvbn08L3A+XHJcbiAqICAgICAgICAgPC9kaXY+XHJcbiAqICAgICApO1xyXG4gKiB9O1xyXG4gKiBgYGBcclxuICpcclxuICogQGRvY3NDYXRlZ29yeSByZWFjdC1ob29rc1xyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHVzZVF1ZXJ5PFQsIFYgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0gUmVjb3JkPHN0cmluZywgYW55Pj4oXHJcbiAgICBxdWVyeTogRG9jdW1lbnROb2RlIHwgVHlwZWREb2N1bWVudE5vZGU8VCwgVj4sXHJcbiAgICB2YXJpYWJsZXM/OiBWLFxyXG4pIHtcclxuICAgIGNvbnN0IHsgZGF0YSwgbG9hZGluZywgZXJyb3IsIHJ1blF1ZXJ5IH0gPSB1c2VEYXRhU2VydmljZTxULCBWPihcclxuICAgICAgICAoZGF0YVNlcnZpY2UsIHZhcnMpID0+IGRhdGFTZXJ2aWNlLnF1ZXJ5KHF1ZXJ5LCB2YXJzKS5zdHJlYW0kLFxyXG4gICAgKTtcclxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uID0gcnVuUXVlcnkodmFyaWFibGVzKS5zdWJzY3JpYmUoKTtcclxuICAgICAgICByZXR1cm4gKCkgPT4gc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9LCBbcnVuUXVlcnldKTtcclxuXHJcbiAgICBjb25zdCByZWZldGNoID0gKHZhcmlhYmxlcz86IFYpID0+IGZpcnN0VmFsdWVGcm9tKHJ1blF1ZXJ5KHZhcmlhYmxlcykpO1xyXG4gICAgcmV0dXJuIHsgZGF0YSwgbG9hZGluZywgZXJyb3IsIHJlZmV0Y2ggfSBhcyBjb25zdDtcclxufVxyXG5cclxuLyoqXHJcbiAqIEBkZXNjcmlwdGlvblxyXG4gKiBBIFJlYWN0IGhvb2sgd2hpY2ggYWxsb3dzIHlvdSB0byBleGVjdXRlIGEgR3JhcGhRTCBxdWVyeS5cclxuICpcclxuICogQGV4YW1wbGVcclxuICogYGBgdHNcclxuICogaW1wb3J0IHsgdXNlTGF6eVF1ZXJ5IH0gZnJvbSAnXFxAdmVuZHVyZS9hZG1pbi11aS9yZWFjdCc7XHJcbiAqIGltcG9ydCB7IGdxbCB9IGZyb20gJ2dyYXBocWwtdGFnJztcclxuICpcclxuICogY29uc3QgR0VUX1BST0RVQ1QgPSBncWxgXHJcbiAqICAgIHF1ZXJ5IEdldFByb2R1Y3QoJGlkOiBJRCEpIHtcclxuICogICAgICBwcm9kdWN0KGlkOiAkaWQpIHtcclxuICogICAgICAgIGlkXHJcbiAqICAgICAgICBuYW1lXHJcbiAqICAgICAgICBkZXNjcmlwdGlvblxyXG4gKiAgICAgIH1cclxuICogICAgfWA7XHJcbiAqIHR5cGUgUHJvZHVjdFJlc3BvbnNlID0ge1xyXG4gKiAgICAgcHJvZHVjdDoge1xyXG4gKiAgICAgICAgIG5hbWU6IHN0cmluZ1xyXG4gKiAgICAgICAgIGRlc2NyaXB0aW9uOiBzdHJpbmdcclxuICogICAgIH1cclxuICogfVxyXG4gKlxyXG4gKiBleHBvcnQgY29uc3QgTXlDb21wb25lbnQgPSAoKSA9PiB7XHJcbiAqICAgICBjb25zdCBbZ2V0UHJvZHVjdCwgeyBkYXRhLCBsb2FkaW5nLCBlcnJvciB9XSA9IHVzZUxhenlRdWVyeTxQcm9kdWN0UmVzcG9uc2U+KEdFVF9QUk9EVUNUKTtcclxuICpcclxuICogICAgY29uc3QgaGFuZGxlQ2xpY2sgPSAoKSA9PiB7XHJcbiAqICAgICAgICAgZ2V0UHJvZHVjdCh7XHJcbiAqICAgICAgICAgICAgICBpZDogJzEnLFxyXG4gKiAgICAgICAgIH0pLnRoZW4ocmVzdWx0ID0+IHtcclxuICogICAgICAgICAgICAgLy8gZG8gc29tZXRoaW5nIHdpdGggdGhlIHJlc3VsdFxyXG4gKiAgICAgICAgIH0pO1xyXG4gKiAgICAgfTtcclxuICpcclxuICogICAgIGlmIChsb2FkaW5nKSByZXR1cm4gPGRpdj5Mb2FkaW5nLi4uPC9kaXY+O1xyXG4gKiAgICAgaWYgKGVycm9yKSByZXR1cm4gPGRpdj5FcnJvciEgeyBlcnJvciB9PC9kaXY+O1xyXG4gKlxyXG4gKiAgICAgcmV0dXJuIChcclxuICogICAgIDxkaXY+XHJcbiAqICAgICAgICAgPGJ1dHRvbiBvbkNsaWNrPXtoYW5kbGVDbGlja30+R2V0IHByb2R1Y3Q8L2J1dHRvbj5cclxuICogICAgICAgICB7ZGF0YSAmJiAoXHJcbiAqICAgICAgICAgICAgICA8ZGl2PlxyXG4gKiAgICAgICAgICAgICAgICAgIDxoMT57ZGF0YS5wcm9kdWN0Lm5hbWV9PC9oMT5cclxuICogICAgICAgICAgICAgICAgICA8cD57ZGF0YS5wcm9kdWN0LmRlc2NyaXB0aW9ufTwvcD5cclxuICogICAgICAgICAgICAgIDwvZGl2Pil9XHJcbiAqICAgICA8L2Rpdj5cclxuICogICAgICk7XHJcbiAqIH07XHJcbiAqIGBgYFxyXG4gKlxyXG4gKiBAc2luY2UgMi4yLjBcclxuICogQGRvY3NDYXRlZ29yeSByZWFjdC1ob29rc1xyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHVzZUxhenlRdWVyeTxULCBWIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55PiA9IFJlY29yZDxzdHJpbmcsIGFueT4+KFxyXG4gICAgcXVlcnk6IERvY3VtZW50Tm9kZSB8IFR5cGVkRG9jdW1lbnROb2RlPFQsIFY+LFxyXG4pIHtcclxuICAgIGNvbnN0IHsgZGF0YSwgbG9hZGluZywgZXJyb3IsIHJ1blF1ZXJ5IH0gPSB1c2VEYXRhU2VydmljZTxULCBWPihcclxuICAgICAgICAoZGF0YVNlcnZpY2UsIHZhcnMpID0+IGRhdGFTZXJ2aWNlLnF1ZXJ5KHF1ZXJ5LCB2YXJzKS5zdHJlYW0kLFxyXG4gICAgKTtcclxuICAgIGNvbnN0IHJlc3QgPSB7IGRhdGEsIGxvYWRpbmcsIGVycm9yIH07XHJcbiAgICBjb25zdCBleGVjdXRlID0gKHZhcmlhYmxlcz86IFYpID0+IGZpcnN0VmFsdWVGcm9tKHJ1blF1ZXJ5KHZhcmlhYmxlcykpO1xyXG4gICAgcmV0dXJuIFtleGVjdXRlLCByZXN0XSBhcyBbdHlwZW9mIGV4ZWN1dGUsIHR5cGVvZiByZXN0XTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEBkZXNjcmlwdGlvblxyXG4gKiBBIFJlYWN0IGhvb2sgd2hpY2ggYWxsb3dzIHlvdSB0byBleGVjdXRlIGEgR3JhcGhRTCBtdXRhdGlvbi5cclxuICpcclxuICogQGV4YW1wbGVcclxuICogYGBgdHNcclxuICogaW1wb3J0IHsgdXNlTXV0YXRpb24gfSBmcm9tICdcXEB2ZW5kdXJlL2FkbWluLXVpL3JlYWN0JztcclxuICogaW1wb3J0IHsgZ3FsIH0gZnJvbSAnZ3JhcGhxbC10YWcnO1xyXG4gKlxyXG4gKiBjb25zdCBVUERBVEVfUFJPRFVDVCA9IGdxbGBcclxuICogICBtdXRhdGlvbiBVcGRhdGVQcm9kdWN0KCRpbnB1dDogVXBkYXRlUHJvZHVjdElucHV0ISkge1xyXG4gKiAgICAgdXBkYXRlUHJvZHVjdChpbnB1dDogJGlucHV0KSB7XHJcbiAqICAgICBpZFxyXG4gKiAgICAgbmFtZVxyXG4gKiAgIH1cclxuICogfWA7XHJcbiAqXHJcbiAqIGV4cG9ydCBjb25zdCBNeUNvbXBvbmVudCA9ICgpID0+IHtcclxuICogICAgIGNvbnN0IFt1cGRhdGVQcm9kdWN0LCB7IGRhdGEsIGxvYWRpbmcsIGVycm9yIH1dID0gdXNlTXV0YXRpb24oVVBEQVRFX1BST0RVQ1QpO1xyXG4gKlxyXG4gKiAgICAgY29uc3QgaGFuZGxlQ2xpY2sgPSAoKSA9PiB7XHJcbiAqICAgICAgICAgdXBkYXRlUHJvZHVjdCh7XHJcbiAqICAgICAgICAgICAgIGlucHV0OiB7XHJcbiAqICAgICAgICAgICAgICAgICBpZDogJzEnLFxyXG4gKiAgICAgICAgICAgICAgICAgbmFtZTogJ05ldyBuYW1lJyxcclxuICogICAgICAgICAgICAgfSxcclxuICogICAgICAgICB9KS50aGVuKHJlc3VsdCA9PiB7XHJcbiAqICAgICAgICAgICAgIC8vIGRvIHNvbWV0aGluZyB3aXRoIHRoZSByZXN1bHRcclxuICogICAgICAgICB9KTtcclxuICogICAgIH07XHJcbiAqXHJcbiAqICAgICBpZiAobG9hZGluZykgcmV0dXJuIDxkaXY+TG9hZGluZy4uLjwvZGl2PjtcclxuICogICAgIGlmIChlcnJvcikgcmV0dXJuIDxkaXY+RXJyb3IhIHsgZXJyb3IgfTwvZGl2PjtcclxuICpcclxuICogICAgIHJldHVybiAoXHJcbiAqICAgICA8ZGl2PlxyXG4gKiAgICAgICAgIDxidXR0b24gb25DbGljaz17aGFuZGxlQ2xpY2t9PlVwZGF0ZSBwcm9kdWN0PC9idXR0b24+XHJcbiAqICAgICAgICAge2RhdGEgJiYgPGRpdj5Qcm9kdWN0IHVwZGF0ZWQhPC9kaXY+fVxyXG4gKiAgICAgPC9kaXY+XHJcbiAqICAgICApO1xyXG4gKiB9O1xyXG4gKiBgYGBcclxuICpcclxuICogQGRvY3NDYXRlZ29yeSByZWFjdC1ob29rc1xyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHVzZU11dGF0aW9uPFQsIFYgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0gUmVjb3JkPHN0cmluZywgYW55Pj4oXHJcbiAgICBtdXRhdGlvbjogRG9jdW1lbnROb2RlIHwgVHlwZWREb2N1bWVudE5vZGU8VCwgVj4sXHJcbikge1xyXG4gICAgY29uc3QgeyBkYXRhLCBsb2FkaW5nLCBlcnJvciwgcnVuUXVlcnkgfSA9IHVzZURhdGFTZXJ2aWNlPFQsIFY+KChkYXRhU2VydmljZSwgdmFyaWFibGVzKSA9PlxyXG4gICAgICAgIGRhdGFTZXJ2aWNlLm11dGF0ZShtdXRhdGlvbiwgdmFyaWFibGVzKSxcclxuICAgICk7XHJcbiAgICBjb25zdCByZXN0ID0geyBkYXRhLCBsb2FkaW5nLCBlcnJvciB9O1xyXG4gICAgY29uc3QgZXhlY3V0ZSA9ICh2YXJpYWJsZXM/OiBWKSA9PiBmaXJzdFZhbHVlRnJvbShydW5RdWVyeSh2YXJpYWJsZXMpKTtcclxuICAgIHJldHVybiBbZXhlY3V0ZSwgcmVzdF0gYXMgW3R5cGVvZiBleGVjdXRlLCB0eXBlb2YgcmVzdF07XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiB1c2VEYXRhU2VydmljZTxULCBWIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55PiA9IFJlY29yZDxzdHJpbmcsIGFueT4+KFxyXG4gICAgb3BlcmF0aW9uOiAoZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlLCB2YXJpYWJsZXM/OiBWKSA9PiBPYnNlcnZhYmxlPFQ+LFxyXG4pIHtcclxuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VDb250ZXh0KEhvc3RlZENvbXBvbmVudENvbnRleHQpO1xyXG4gICAgY29uc3QgZGF0YVNlcnZpY2UgPSBjb250ZXh0Py5pbmplY3Rvci5nZXQoRGF0YVNlcnZpY2UpO1xyXG4gICAgaWYgKCFkYXRhU2VydmljZSkge1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcignTm8gRGF0YVNlcnZpY2UgZm91bmQgaW4gSG9zdGVkQ29tcG9uZW50Q29udGV4dCcpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IFtkYXRhLCBzZXREYXRhXSA9IHVzZVN0YXRlPFQ+KCk7XHJcbiAgICBjb25zdCBbZXJyb3IsIHNldEVycm9yXSA9IHVzZVN0YXRlPHN0cmluZz4oKTtcclxuICAgIGNvbnN0IFtsb2FkaW5nLCBzZXRMb2FkaW5nXSA9IHVzZVN0YXRlKGZhbHNlKTtcclxuXHJcbiAgICBjb25zdCBydW5RdWVyeSA9IHVzZUNhbGxiYWNrKCh2YXJpYWJsZXM/OiBWKSA9PiB7XHJcbiAgICAgICAgc2V0TG9hZGluZyh0cnVlKTtcclxuICAgICAgICByZXR1cm4gb3BlcmF0aW9uKGRhdGFTZXJ2aWNlLCB2YXJpYWJsZXMpLnBpcGUoXHJcbiAgICAgICAgICAgIHRhcCh7XHJcbiAgICAgICAgICAgICAgICBuZXh0OiByZXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHNldERhdGEocmVzKTtcclxuICAgICAgICAgICAgICAgICAgICBzZXRMb2FkaW5nKGZhbHNlKTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBlcnJvcjogZXJyID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBzZXRFcnJvcihlcnIubWVzc2FnZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgc2V0TG9hZGluZyhmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICApO1xyXG4gICAgfSwgW10pO1xyXG5cclxuICAgIHJldHVybiB7IGRhdGEsIGxvYWRpbmcsIGVycm9yLCBydW5RdWVyeSB9O1xyXG59XHJcbiJdfQ==