@vendure/admin-ui 1.6.3 → 1.7.0

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 (91) hide show
  1. package/bundles/vendure-admin-ui-catalog.umd.js +196 -20
  2. package/bundles/vendure-admin-ui-catalog.umd.js.map +1 -1
  3. package/bundles/vendure-admin-ui-core.umd.js +309 -327
  4. package/bundles/vendure-admin-ui-core.umd.js.map +1 -1
  5. package/bundles/vendure-admin-ui-customer.umd.js +39 -18
  6. package/bundles/vendure-admin-ui-customer.umd.js.map +1 -1
  7. package/bundles/vendure-admin-ui-order.umd.js +179 -137
  8. package/bundles/vendure-admin-ui-order.umd.js.map +1 -1
  9. package/catalog/components/generate-product-variants/generate-product-variants.component.d.ts +3 -3
  10. package/catalog/components/option-value-input/option-value-input.component.d.ts +20 -8
  11. package/catalog/components/product-variants-editor/product-variants-editor.component.d.ts +10 -3
  12. package/catalog/vendure-admin-ui-catalog.metadata.json +1 -1
  13. package/core/common/generated-types.d.ts +91 -19
  14. package/core/common/utilities/configurable-operation-utils.d.ts +4 -2
  15. package/core/common/version.d.ts +1 -1
  16. package/core/data/definitions/order-definitions.d.ts +2 -0
  17. package/core/data/definitions/product-definitions.d.ts +1 -0
  18. package/core/data/providers/order-data.service.d.ts +1 -0
  19. package/core/data/providers/product-data.service.d.ts +1 -0
  20. package/core/shared/components/custom-field-control/custom-field-control.component.d.ts +6 -2
  21. package/core/shared/components/data-table/data-table.component.d.ts +5 -2
  22. package/core/shared/components/facet-value-selector/facet-value-selector.component.d.ts +2 -1
  23. package/core/shared/dynamic-form-inputs/facet-value-form-input/facet-value-form-input.component.d.ts +2 -0
  24. package/core/shared/dynamic-form-inputs/register-dynamic-input-components.d.ts +2 -1
  25. package/core/shared/dynamic-form-inputs/select-form-input/select-form-input.component.d.ts +10 -2
  26. package/core/shared/pipes/custom-field-label.pipe.d.ts +4 -10
  27. package/core/vendure-admin-ui-core.metadata.json +1 -1
  28. package/customer/components/customer-group-list/customer-group-list.component.d.ts +6 -4
  29. package/customer/vendure-admin-ui-customer.metadata.json +1 -1
  30. package/esm2015/catalog/components/generate-product-variants/generate-product-variants.component.js +12 -5
  31. package/esm2015/catalog/components/option-value-input/option-value-input.component.js +62 -12
  32. package/esm2015/catalog/components/product-variants-editor/product-variants-editor.component.js +109 -11
  33. package/esm2015/core/common/generated-types.js +2 -1
  34. package/esm2015/core/common/introspection-result.js +191 -255
  35. package/esm2015/core/common/utilities/configurable-operation-utils.js +13 -10
  36. package/esm2015/core/common/version.js +2 -2
  37. package/esm2015/core/components/app-shell/app-shell.component.js +1 -1
  38. package/esm2015/core/components/main-nav/main-nav.component.js +1 -1
  39. package/esm2015/core/data/definitions/order-definitions.js +445 -431
  40. package/esm2015/core/data/definitions/product-definitions.js +9 -1
  41. package/esm2015/core/data/providers/order-data.service.js +7 -2
  42. package/esm2015/core/data/providers/product-data.service.js +5 -2
  43. package/esm2015/core/shared/components/custom-field-control/custom-field-control.component.js +9 -3
  44. package/esm2015/core/shared/components/data-table/data-table.component.js +9 -2
  45. package/esm2015/core/shared/components/facet-value-selector/facet-value-selector.component.js +5 -2
  46. package/esm2015/core/shared/dynamic-form-inputs/facet-value-form-input/facet-value-form-input.component.js +11 -2
  47. package/esm2015/core/shared/dynamic-form-inputs/select-form-input/select-form-input.component.js +15 -2
  48. package/esm2015/core/shared/pipes/custom-field-label.pipe.js +4 -19
  49. package/esm2015/customer/components/customer-group-list/customer-group-list.component.js +25 -12
  50. package/esm2015/order/components/fulfill-order-dialog/fulfill-order-dialog.component.js +3 -2
  51. package/esm2015/order/components/fulfillment-detail/fulfillment-detail.component.js +9 -18
  52. package/esm2015/order/components/line-fulfillment/line-fulfillment.component.js +10 -21
  53. package/esm2015/order/components/order-custom-fields-card/order-custom-fields-card.component.js +30 -4
  54. package/esm2015/order/components/order-detail/order-detail.component.js +79 -38
  55. package/esm2015/order/components/order-list/order-list.component.js +22 -15
  56. package/esm2015/order/components/order-payment-card/order-payment-card.component.js +2 -2
  57. package/esm2015/order/components/order-table/order-table.component.js +10 -2
  58. package/fesm2015/vendure-admin-ui-catalog.js +177 -22
  59. package/fesm2015/vendure-admin-ui-catalog.js.map +1 -1
  60. package/fesm2015/vendure-admin-ui-core.js +725 -733
  61. package/fesm2015/vendure-admin-ui-core.js.map +1 -1
  62. package/fesm2015/vendure-admin-ui-customer.js +23 -11
  63. package/fesm2015/vendure-admin-ui-customer.js.map +1 -1
  64. package/fesm2015/vendure-admin-ui-order.js +155 -94
  65. package/fesm2015/vendure-admin-ui-order.js.map +1 -1
  66. package/order/components/line-fulfillment/line-fulfillment.component.d.ts +2 -2
  67. package/order/components/modification-detail/modification-detail.component.d.ts +1 -1
  68. package/order/components/order-custom-fields-card/order-custom-fields-card.component.d.ts +4 -2
  69. package/order/components/order-list/order-list.component.d.ts +1 -0
  70. package/order/components/order-table/order-table.component.d.ts +1 -0
  71. package/order/vendure-admin-ui-order.metadata.json +1 -1
  72. package/package.json +2 -2
  73. package/static/i18n-messages/cs.json +6 -2
  74. package/static/i18n-messages/de.json +6 -2
  75. package/static/i18n-messages/en.json +8 -3
  76. package/static/i18n-messages/es.json +6 -2
  77. package/static/i18n-messages/fr.json +6 -2
  78. package/static/i18n-messages/it.json +6 -2
  79. package/static/i18n-messages/pl.json +6 -2
  80. package/static/i18n-messages/pt_BR.json +6 -2
  81. package/static/i18n-messages/pt_PT.json +6 -2
  82. package/static/i18n-messages/ru.json +6 -2
  83. package/static/i18n-messages/uk.json +6 -2
  84. package/static/i18n-messages/zh_Hans.json +6 -2
  85. package/static/i18n-messages/zh_Hant.json +6 -2
  86. package/static/styles/_variables.scss +3 -0
  87. package/static/styles/global/_sass-overrides.scss +3 -0
  88. package/static/styles/global/_utilities.scss +1 -0
  89. package/static/styles/styles.scss +1 -0
  90. package/static/styles/ui-extension-theme.scss +1 -0
  91. package/static/theme.min.css +1 -1
@@ -30,6 +30,7 @@ export class FacetValueSelectorComponent {
30
30
  this.dataService = dataService;
31
31
  this.selectedValuesChange = new EventEmitter();
32
32
  this.readonly = false;
33
+ this.transformControlValueAccessorValue = value => value;
33
34
  this.facetValues = [];
34
35
  this.disabled = false;
35
36
  this.toSelectorItem = (facetValue) => {
@@ -50,7 +51,8 @@ export class FacetValueSelectorComponent {
50
51
  }
51
52
  this.selectedValuesChange.emit(selected.map(s => s.value));
52
53
  if (this.onChangeFn) {
53
- this.onChangeFn(JSON.stringify(selected.map(s => s.id)));
54
+ const transformedValue = this.transformControlValueAccessorValue(selected);
55
+ this.onChangeFn(transformedValue);
54
56
  }
55
57
  }
56
58
  registerOnChange(fn) {
@@ -109,6 +111,7 @@ FacetValueSelectorComponent.propDecorators = {
109
111
  selectedValuesChange: [{ type: Output }],
110
112
  facets: [{ type: Input }],
111
113
  readonly: [{ type: Input }],
114
+ transformControlValueAccessorValue: [{ type: Input }],
112
115
  ngSelect: [{ type: ViewChild, args: [NgSelectComponent,] }]
113
116
  };
114
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjZXQtdmFsdWUtc2VsZWN0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3NyYy9zaGFyZWQvY29tcG9uZW50cy9mYWNldC12YWx1ZS1zZWxlY3Rvci9mYWNldC12YWx1ZS1zZWxlY3Rvci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUd6RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNwRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFTbkU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFCRztBQWNILE1BQU0sT0FBTywyQkFBMkI7SUFZcEMsWUFBb0IsV0FBd0I7UUFBeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFYbEMseUJBQW9CLEdBQUcsSUFBSSxZQUFZLEVBQXlCLENBQUM7UUFFbEUsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUkxQixnQkFBVyxHQUE0QixFQUFFLENBQUM7UUFHMUMsYUFBUSxHQUFHLEtBQUssQ0FBQztRQXNEVCxtQkFBYyxHQUFHLENBQUMsVUFBK0IsRUFBeUIsRUFBRTtZQUNoRixPQUFPO2dCQUNILElBQUksRUFBRSxVQUFVLENBQUMsSUFBSTtnQkFDckIsU0FBUyxFQUFFLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSTtnQkFDaEMsRUFBRSxFQUFFLFVBQVUsQ0FBQyxFQUFFO2dCQUNqQixLQUFLLEVBQUUsVUFBVTthQUNwQixDQUFDO1FBQ04sQ0FBQyxDQUFDO0lBM0Q2QyxDQUFDO0lBRWhELFFBQVE7UUFDSixJQUFJLENBQUMsV0FBVyxHQUFHLGtCQUFrQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7SUFFRCxRQUFRLENBQUMsUUFBaUM7UUFDdEMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2YsT0FBTztTQUNWO1FBQ0QsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDM0QsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ2pCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUM1RDtJQUNMLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxFQUFPO1FBQ3BCLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUFPO1FBQ3JCLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxVQUFtQjtRQUNoQyxJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztJQUMvQixDQUFDO0lBRUQsS0FBSztRQUNELElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELFVBQVUsQ0FBQyxHQUFtRTtRQUMxRSxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsRUFBRTtZQUN6QixJQUFJO2dCQUNBLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFhLENBQUM7Z0JBQzdDLElBQUksQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDO2FBQ3pCO1lBQUMsT0FBTyxHQUFHLEVBQUU7Z0JBQ1Ysa0JBQWtCO2dCQUNsQixNQUFNLEdBQUcsQ0FBQzthQUNiO1NBQ0o7YUFBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDM0IsTUFBTSxTQUFTLEdBQUcsQ0FBQyxLQUFnQixFQUFtQyxFQUFFLENBQ3BFLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxRQUFRLElBQUksT0FBTyxDQUFDLEtBQUssUUFBUSxDQUFDLENBQUM7WUFDckUsSUFBSSxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ2hCLElBQUksQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO2FBQzdDO2lCQUFNO2dCQUNILElBQUksQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQzthQUNyQztTQUNKO0lBQ0wsQ0FBQzs7O1lBM0VKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsMEJBQTBCO2dCQUNwQywyeUJBQW9EO2dCQUVwRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtnQkFDL0MsU0FBUyxFQUFFO29CQUNQO3dCQUNJLE9BQU8sRUFBRSxpQkFBaUI7d0JBQzFCLFdBQVcsRUFBRSwyQkFBMkI7d0JBQ3hDLEtBQUssRUFBRSxJQUFJO3FCQUNkO2lCQUNKOzthQUNKOzs7WUEzQ1EsV0FBVzs7O21DQTZDZixNQUFNO3FCQUNOLEtBQUs7dUJBQ0wsS0FBSzt1QkFFTCxTQUFTLFNBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgRXZlbnRFbWl0dGVyLFxyXG4gICAgSW5wdXQsXHJcbiAgICBPbkluaXQsXHJcbiAgICBPdXRwdXQsXHJcbiAgICBWaWV3Q2hpbGQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTmdTZWxlY3RDb21wb25lbnQgfSBmcm9tICdAbmctc2VsZWN0L25nLXNlbGVjdCc7XHJcblxyXG5pbXBvcnQgeyBGYWNldFZhbHVlLCBGYWNldFdpdGhWYWx1ZXMgfSBmcm9tICcuLi8uLi8uLi9jb21tb24vZ2VuZXJhdGVkLXR5cGVzJztcclxuaW1wb3J0IHsgZmxhdHRlbkZhY2V0VmFsdWVzIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL3V0aWxpdGllcy9mbGF0dGVuLWZhY2V0LXZhbHVlcyc7XHJcbmltcG9ydCB7IERhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vZGF0YS9wcm92aWRlcnMvZGF0YS5zZXJ2aWNlJztcclxuXHJcbmV4cG9ydCB0eXBlIEZhY2V0VmFsdWVTZWxldG9ySXRlbSA9IHtcclxuICAgIG5hbWU6IHN0cmluZztcclxuICAgIGZhY2V0TmFtZTogc3RyaW5nO1xyXG4gICAgaWQ6IHN0cmluZztcclxuICAgIHZhbHVlOiBGYWNldFZhbHVlLkZyYWdtZW50O1xyXG59O1xyXG5cclxuLyoqXHJcbiAqIEBkZXNjcmlwdGlvblxyXG4gKiBBIGZvcm0gY29udHJvbCBmb3Igc2VsZWN0aW5nIGZhY2V0IHZhbHVlcy5cclxuICpcclxuICogQGV4YW1wbGVcclxuICogYGBgSFRNTFxyXG4gKiA8dmRyLWZhY2V0LXZhbHVlLXNlbGVjdG9yXHJcbiAqICAgW2ZhY2V0c109XCJmYWNldHNcIlxyXG4gKiAgIChzZWxlY3RlZFZhbHVlc0NoYW5nZSk9XCJzZWxlY3RlZFZhbHVlcyA9ICRldmVudFwiXHJcbiAqID48L3Zkci1mYWNldC12YWx1ZS1zZWxlY3Rvcj5cclxuICogYGBgXHJcbiAqIFRoZSBgZmFjZXRzYCBpbnB1dCBzaG91bGQgYmUgcHJvdmlkZWQgZnJvbSB0aGUgcGFyZW50IGNvbXBvbmVudFxyXG4gKiBsaWtlIHRoaXM6XHJcbiAqXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYFR5cGVTY3JpcHRcclxuICogdGhpcy5mYWNldHMgPSB0aGlzLmRhdGFTZXJ2aWNlXHJcbiAqICAgLmZhY2V0LmdldEFsbEZhY2V0cygpXHJcbiAqICAgLm1hcFNpbmdsZShkYXRhID0+IGRhdGEuZmFjZXRzLml0ZW1zKTtcclxuICogYGBgXHJcbiAqIEBkb2NzQ2F0ZWdvcnkgY29tcG9uZW50c1xyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3Zkci1mYWNldC12YWx1ZS1zZWxlY3RvcicsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vZmFjZXQtdmFsdWUtc2VsZWN0b3IuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vZmFjZXQtdmFsdWUtc2VsZWN0b3IuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IEZhY2V0VmFsdWVTZWxlY3RvckNvbXBvbmVudCxcclxuICAgICAgICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICAgICAgfSxcclxuICAgIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGYWNldFZhbHVlU2VsZWN0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcclxuICAgIEBPdXRwdXQoKSBzZWxlY3RlZFZhbHVlc0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RmFjZXRWYWx1ZS5GcmFnbWVudFtdPigpO1xyXG4gICAgQElucHV0KCkgZmFjZXRzOiBGYWNldFdpdGhWYWx1ZXMuRnJhZ21lbnRbXTtcclxuICAgIEBJbnB1dCgpIHJlYWRvbmx5ID0gZmFsc2U7XHJcblxyXG4gICAgQFZpZXdDaGlsZChOZ1NlbGVjdENvbXBvbmVudCkgcHJpdmF0ZSBuZ1NlbGVjdDogTmdTZWxlY3RDb21wb25lbnQ7XHJcblxyXG4gICAgZmFjZXRWYWx1ZXM6IEZhY2V0VmFsdWVTZWxldG9ySXRlbVtdID0gW107XHJcbiAgICBvbkNoYW5nZUZuOiAodmFsOiBhbnkpID0+IHZvaWQ7XHJcbiAgICBvblRvdWNoRm46ICgpID0+IHZvaWQ7XHJcbiAgICBkaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgdmFsdWU6IHN0cmluZ1tdO1xyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBkYXRhU2VydmljZTogRGF0YVNlcnZpY2UpIHt9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgdGhpcy5mYWNldFZhbHVlcyA9IGZsYXR0ZW5GYWNldFZhbHVlcyh0aGlzLmZhY2V0cykubWFwKHRoaXMudG9TZWxlY3Rvckl0ZW0pO1xyXG4gICAgfVxyXG5cclxuICAgIG9uQ2hhbmdlKHNlbGVjdGVkOiBGYWNldFZhbHVlU2VsZXRvckl0ZW1bXSkge1xyXG4gICAgICAgIGlmICh0aGlzLnJlYWRvbmx5KSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlc0NoYW5nZS5lbWl0KHNlbGVjdGVkLm1hcChzID0+IHMudmFsdWUpKTtcclxuICAgICAgICBpZiAodGhpcy5vbkNoYW5nZUZuKSB7XHJcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2VGbihKU09OLnN0cmluZ2lmeShzZWxlY3RlZC5tYXAocyA9PiBzLmlkKSkpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpIHtcclxuICAgICAgICB0aGlzLm9uQ2hhbmdlRm4gPSBmbjtcclxuICAgIH1cclxuXHJcbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KSB7XHJcbiAgICAgICAgdGhpcy5vblRvdWNoRm4gPSBmbjtcclxuICAgIH1cclxuXHJcbiAgICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcclxuICAgIH1cclxuXHJcbiAgICBmb2N1cygpIHtcclxuICAgICAgICB0aGlzLm5nU2VsZWN0LmZvY3VzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgd3JpdGVWYWx1ZShvYmo6IHN0cmluZyB8IEZhY2V0VmFsdWUuRnJhZ21lbnRbXSB8IEFycmF5PHN0cmluZyB8IG51bWJlcj4gfCBudWxsKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHR5cGVvZiBvYmogPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBmYWNldElkcyA9IEpTT04ucGFyc2Uob2JqKSBhcyBzdHJpbmdbXTtcclxuICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSBmYWNldElkcztcclxuICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBUT0RPOiBsb2cgZXJyb3JcclxuICAgICAgICAgICAgICAgIHRocm93IGVycjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShvYmopKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGlzSWRBcnJheSA9IChpbnB1dDogdW5rbm93bltdKTogaW5wdXQgaXMgQXJyYXk8c3RyaW5nIHwgbnVtYmVyPiA9PlxyXG4gICAgICAgICAgICAgICAgaW5wdXQuZXZlcnkoaSA9PiB0eXBlb2YgaSA9PT0gJ251bWJlcicgfHwgdHlwZW9mIGkgPT09ICdzdHJpbmcnKTtcclxuICAgICAgICAgICAgaWYgKGlzSWRBcnJheShvYmopKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gb2JqLm1hcChmdiA9PiBmdi50b1N0cmluZygpKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSBvYmoubWFwKGZ2ID0+IGZ2LmlkKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHRvU2VsZWN0b3JJdGVtID0gKGZhY2V0VmFsdWU6IEZhY2V0VmFsdWUuRnJhZ21lbnQpOiBGYWNldFZhbHVlU2VsZXRvckl0ZW0gPT4ge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIG5hbWU6IGZhY2V0VmFsdWUubmFtZSxcclxuICAgICAgICAgICAgZmFjZXROYW1lOiBmYWNldFZhbHVlLmZhY2V0Lm5hbWUsXHJcbiAgICAgICAgICAgIGlkOiBmYWNldFZhbHVlLmlkLFxyXG4gICAgICAgICAgICB2YWx1ZTogZmFjZXRWYWx1ZSxcclxuICAgICAgICB9O1xyXG4gICAgfTtcclxufVxyXG4iXX0=
117
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjZXQtdmFsdWUtc2VsZWN0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3NyYy9zaGFyZWQvY29tcG9uZW50cy9mYWNldC12YWx1ZS1zZWxlY3Rvci9mYWNldC12YWx1ZS1zZWxlY3Rvci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUd6RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNwRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFTbkU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFCRztBQWNILE1BQU0sT0FBTywyQkFBMkI7SUFhcEMsWUFBb0IsV0FBd0I7UUFBeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFabEMseUJBQW9CLEdBQUcsSUFBSSxZQUFZLEVBQXlCLENBQUM7UUFFbEUsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQix1Q0FBa0MsR0FBOEMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUM7UUFJeEcsZ0JBQVcsR0FBNEIsRUFBRSxDQUFDO1FBRzFDLGFBQVEsR0FBRyxLQUFLLENBQUM7UUF1RFQsbUJBQWMsR0FBRyxDQUFDLFVBQStCLEVBQXlCLEVBQUU7WUFDaEYsT0FBTztnQkFDSCxJQUFJLEVBQUUsVUFBVSxDQUFDLElBQUk7Z0JBQ3JCLFNBQVMsRUFBRSxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUk7Z0JBQ2hDLEVBQUUsRUFBRSxVQUFV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ZWd5LFxyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgRXZlbnRFbWl0dGVyLFxyXG4gICAgSW5wdXQsXHJcbiAgICBPbkluaXQsXHJcbiAgICBPdXRwdXQsXHJcbiAgICBWaWV3Q2hpbGQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTmdTZWxlY3RDb21wb25lbnQgfSBmcm9tICdAbmctc2VsZWN0L25nLXNlbGVjdCc7XHJcblxyXG5pbXBvcnQgeyBGYWNldFZhbHVlLCBGYWNldFdpdGhWYWx1ZXMgfSBmcm9tICcuLi8uLi8uLi9jb21tb24vZ2VuZXJhdGVkLXR5cGVzJztcclxuaW1wb3J0IHsgZmxhdHRlbkZhY2V0VmFsdWVzIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL3V0aWxpdGllcy9mbGF0dGVuLWZhY2V0LXZhbHVlcyc7XHJcbmltcG9ydCB7IERhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vZGF0YS9wcm92aWRlcnMvZGF0YS5zZXJ2aWNlJztcclxuXHJcbmV4cG9ydCB0eXBlIEZhY2V0VmFsdWVTZWxldG9ySXRlbSA9IHtcclxuICAgIG5hbWU6IHN0cmluZztcclxuICAgIGZhY2V0TmFtZTogc3RyaW5nO1xyXG4gICAgaWQ6IHN0cmluZztcclxuICAgIHZhbHVlOiBGYWNldFZhbHVlLkZyYWdtZW50O1xyXG59O1xyXG5cclxuLyoqXHJcbiAqIEBkZXNjcmlwdGlvblxyXG4gKiBBIGZvcm0gY29udHJvbCBmb3Igc2VsZWN0aW5nIGZhY2V0IHZhbHVlcy5cclxuICpcclxuICogQGV4YW1wbGVcclxuICogYGBgSFRNTFxyXG4gKiA8dmRyLWZhY2V0LXZhbHVlLXNlbGVjdG9yXHJcbiAqICAgW2ZhY2V0c109XCJmYWNldHNcIlxyXG4gKiAgIChzZWxlY3RlZFZhbHVlc0NoYW5nZSk9XCJzZWxlY3RlZFZhbHVlcyA9ICRldmVudFwiXHJcbiAqID48L3Zkci1mYWNldC12YWx1ZS1zZWxlY3Rvcj5cclxuICogYGBgXHJcbiAqIFRoZSBgZmFjZXRzYCBpbnB1dCBzaG91bGQgYmUgcHJvdmlkZWQgZnJvbSB0aGUgcGFyZW50IGNvbXBvbmVudFxyXG4gKiBsaWtlIHRoaXM6XHJcbiAqXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYFR5cGVTY3JpcHRcclxuICogdGhpcy5mYWNldHMgPSB0aGlzLmRhdGFTZXJ2aWNlXHJcbiAqICAgLmZhY2V0LmdldEFsbEZhY2V0cygpXHJcbiAqICAgLm1hcFNpbmdsZShkYXRhID0+IGRhdGEuZmFjZXRzLml0ZW1zKTtcclxuICogYGBgXHJcbiAqIEBkb2NzQ2F0ZWdvcnkgY29tcG9uZW50c1xyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3Zkci1mYWNldC12YWx1ZS1zZWxlY3RvcicsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vZmFjZXQtdmFsdWUtc2VsZWN0b3IuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vZmFjZXQtdmFsdWUtc2VsZWN0b3IuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IEZhY2V0VmFsdWVTZWxlY3RvckNvbXBvbmVudCxcclxuICAgICAgICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICAgICAgfSxcclxuICAgIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGYWNldFZhbHVlU2VsZWN0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcclxuICAgIEBPdXRwdXQoKSBzZWxlY3RlZFZhbHVlc0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RmFjZXRWYWx1ZS5GcmFnbWVudFtdPigpO1xyXG4gICAgQElucHV0KCkgZmFjZXRzOiBGYWNldFdpdGhWYWx1ZXMuRnJhZ21lbnRbXTtcclxuICAgIEBJbnB1dCgpIHJlYWRvbmx5ID0gZmFsc2U7XHJcbiAgICBASW5wdXQoKSB0cmFuc2Zvcm1Db250cm9sVmFsdWVBY2Nlc3NvclZhbHVlOiAodmFsdWU6IEZhY2V0VmFsdWVTZWxldG9ySXRlbVtdKSA9PiBhbnlbXSA9IHZhbHVlID0+IHZhbHVlO1xyXG5cclxuICAgIEBWaWV3Q2hpbGQoTmdTZWxlY3RDb21wb25lbnQpIHByaXZhdGUgbmdTZWxlY3Q6IE5nU2VsZWN0Q29tcG9uZW50O1xyXG5cclxuICAgIGZhY2V0VmFsdWVzOiBGYWNldFZhbHVlU2VsZXRvckl0ZW1bXSA9IFtdO1xyXG4gICAgb25DaGFuZ2VGbjogKHZhbDogYW55KSA9PiB2b2lkO1xyXG4gICAgb25Ub3VjaEZuOiAoKSA9PiB2b2lkO1xyXG4gICAgZGlzYWJsZWQgPSBmYWxzZTtcclxuICAgIHZhbHVlOiBBcnJheTxzdHJpbmcgfCBGYWNldFZhbHVlLkZyYWdtZW50PjtcclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlKSB7fVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIHRoaXMuZmFjZXRWYWx1ZXMgPSBmbGF0dGVuRmFjZXRWYWx1ZXModGhpcy5mYWNldHMpLm1hcCh0aGlzLnRvU2VsZWN0b3JJdGVtKTtcclxuICAgIH1cclxuXHJcbiAgICBvbkNoYW5nZShzZWxlY3RlZDogRmFjZXRWYWx1ZVNlbGV0b3JJdGVtW10pIHtcclxuICAgICAgICBpZiAodGhpcy5yZWFkb25seSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXNDaGFuZ2UuZW1pdChzZWxlY3RlZC5tYXAocyA9PiBzLnZhbHVlKSk7XHJcbiAgICAgICAgaWYgKHRoaXMub25DaGFuZ2VGbikge1xyXG4gICAgICAgICAgICBjb25zdCB0cmFuc2Zvcm1lZFZhbHVlID0gdGhpcy50cmFuc2Zvcm1Db250cm9sVmFsdWVBY2Nlc3NvclZhbHVlKHNlbGVjdGVkKTtcclxuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZUZuKHRyYW5zZm9ybWVkVmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpIHtcclxuICAgICAgICB0aGlzLm9uQ2hhbmdlRm4gPSBmbjtcclxuICAgIH1cclxuXHJcbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KSB7XHJcbiAgICAgICAgdGhpcy5vblRvdWNoRm4gPSBmbjtcclxuICAgIH1cclxuXHJcbiAgICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcclxuICAgIH1cclxuXHJcbiAgICBmb2N1cygpIHtcclxuICAgICAgICB0aGlzLm5nU2VsZWN0LmZvY3VzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgd3JpdGVWYWx1ZShvYmo6IHN0cmluZyB8IEZhY2V0VmFsdWUuRnJhZ21lbnRbXSB8IEFycmF5PHN0cmluZyB8IG51bWJlcj4gfCBudWxsKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHR5cGVvZiBvYmogPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBmYWNldElkcyA9IEpTT04ucGFyc2Uob2JqKSBhcyBzdHJpbmdbXTtcclxuICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSBmYWNldElkcztcclxuICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBUT0RPOiBsb2cgZXJyb3JcclxuICAgICAgICAgICAgICAgIHRocm93IGVycjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShvYmopKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGlzSWRBcnJheSA9IChpbnB1dDogdW5rbm93bltdKTogaW5wdXQgaXMgQXJyYXk8c3RyaW5nIHwgbnVtYmVyPiA9PlxyXG4gICAgICAgICAgICAgICAgaW5wdXQuZXZlcnkoaSA9PiB0eXBlb2YgaSA9PT0gJ251bWJlcicgfHwgdHlwZW9mIGkgPT09ICdzdHJpbmcnKTtcclxuICAgICAgICAgICAgaWYgKGlzSWRBcnJheShvYmopKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gb2JqLm1hcChmdiA9PiBmdi50b1N0cmluZygpKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSBvYmoubWFwKGZ2ID0+IGZ2LmlkKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHRvU2VsZWN0b3JJdGVtID0gKGZhY2V0VmFsdWU6IEZhY2V0VmFsdWUuRnJhZ21lbnQpOiBGYWNldFZhbHVlU2VsZXRvckl0ZW0gPT4ge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIG5hbWU6IGZhY2V0VmFsdWUubmFtZSxcclxuICAgICAgICAgICAgZmFjZXROYW1lOiBmYWNldFZhbHVlLmZhY2V0Lm5hbWUsXHJcbiAgICAgICAgICAgIGlkOiBmYWNldFZhbHVlLmlkLFxyXG4gICAgICAgICAgICB2YWx1ZTogZmFjZXRWYWx1ZSxcclxuICAgICAgICB9O1xyXG4gICAgfTtcclxufVxyXG4iXX0=
@@ -13,6 +13,15 @@ export class FacetValueFormInputComponent {
13
13
  constructor(dataService) {
14
14
  this.dataService = dataService;
15
15
  this.isListInput = true;
16
+ this.valueTransformFn = (values) => {
17
+ const isUsedInConfigArg = this.config.__typename === 'ConfigArgDefinition';
18
+ if (isUsedInConfigArg) {
19
+ return JSON.stringify(values.map(s => s.id));
20
+ }
21
+ else {
22
+ return values;
23
+ }
24
+ };
16
25
  }
17
26
  ngOnInit() {
18
27
  this.facets$ = this.dataService.facet
@@ -25,7 +34,7 @@ FacetValueFormInputComponent.id = 'facet-value-form-input';
25
34
  FacetValueFormInputComponent.decorators = [
26
35
  { type: Component, args: [{
27
36
  selector: 'vdr-facet-value-form-input',
28
- template: "<vdr-facet-value-selector\r\n *ngIf=\"facets$ | async as facets\"\r\n [readonly]=\"readonly\"\r\n [facets]=\"facets\"\r\n [formControl]=\"formControl\"\r\n></vdr-facet-value-selector>\r\n",
37
+ template: "<vdr-facet-value-selector\r\n *ngIf=\"facets$ | async as facets\"\r\n [readonly]=\"readonly\"\r\n [facets]=\"facets\"\r\n [formControl]=\"formControl\"\r\n [transformControlValueAccessorValue]=\"valueTransformFn\"\r\n></vdr-facet-value-selector>\r\n",
29
38
  changeDetection: ChangeDetectionStrategy.OnPush,
30
39
  styles: [""]
31
40
  },] }
@@ -33,4 +42,4 @@ FacetValueFormInputComponent.decorators = [
33
42
  FacetValueFormInputComponent.ctorParameters = () => [
34
43
  { type: DataService }
35
44
  ];
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjZXQtdmFsdWUtZm9ybS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3NoYXJlZC9keW5hbWljLWZvcm0taW5wdXRzL2ZhY2V0LXZhbHVlLWZvcm0taW5wdXQvZmFjZXQtdmFsdWUtZm9ybS1pbnB1dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFJbEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSTdDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUVuRTs7Ozs7OztHQU9HO0FBT0gsTUFBTSxPQUFPLDRCQUE0QjtJQU9yQyxZQUFvQixXQUF3QjtRQUF4QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUxuQyxnQkFBVyxHQUFHLElBQUksQ0FBQztJQUttQixDQUFDO0lBRWhELFFBQVE7UUFDSixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSzthQUNoQyxZQUFZLEVBQUU7YUFDZCxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQzthQUNwQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDOUIsQ0FBQzs7QUFiZSwrQkFBRSxHQUEyQix3QkFBd0IsQ0FBQzs7WUFQekUsU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSw0QkFBNEI7Z0JBQ3RDLG1OQUFzRDtnQkFFdEQsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07O2FBQ2xEOzs7WUFmUSxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgRGVmYXVsdEZvcm1Db21wb25lbnRJZCB9IGZyb20gJ0B2ZW5kdXJlL2NvbW1vbi9saWIvc2hhcmVkLXR5cGVzJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBzaGFyZVJlcGxheSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7IEZvcm1JbnB1dENvbXBvbmVudCwgSW5wdXRDb21wb25lbnRDb25maWcgfSBmcm9tICcuLi8uLi8uLi9jb21tb24vY29tcG9uZW50LXJlZ2lzdHJ5LXR5cGVzJztcclxuaW1wb3J0IHsgRmFjZXRXaXRoVmFsdWVzIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2dlbmVyYXRlZC10eXBlcyc7XHJcbmltcG9ydCB7IERhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vZGF0YS9wcm92aWRlcnMvZGF0YS5zZXJ2aWNlJztcclxuXHJcbi8qKlxyXG4gKiBAZGVzY3JpcHRpb25cclxuICogQWxsb3dzIHRoZSBzZWxlY3Rpb24gb2YgbXVsdGlwbGUgRmFjZXRWYWx1ZXMgdmlhIGFuIGF1dG9jb21wbGV0ZSBzZWxlY3QgaW5wdXQuXHJcbiAqIFNob3VsZCBiZSB1c2VkIHdpdGggYElEYCB0eXBlICoqbGlzdCoqIGZpZWxkcyB3aGljaCByZXByZXNlbnQgRmFjZXRWYWx1ZSBJRHMuXHJcbiAqXHJcbiAqIEBkb2NzQ2F0ZWdvcnkgY3VzdG9tLWlucHV0LWNvbXBvbmVudHNcclxuICogQGRvY3NQYWdlIGRlZmF1bHQtaW5wdXRzXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAndmRyLWZhY2V0LXZhbHVlLWZvcm0taW5wdXQnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ZhY2V0LXZhbHVlLWZvcm0taW5wdXQuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vZmFjZXQtdmFsdWUtZm9ybS1pbnB1dC5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGYWNldFZhbHVlRm9ybUlucHV0Q29tcG9uZW50IGltcGxlbWVudHMgRm9ybUlucHV0Q29tcG9uZW50LCBPbkluaXQge1xyXG4gICAgc3RhdGljIHJlYWRvbmx5IGlkOiBEZWZhdWx0Rm9ybUNvbXBvbmVudElkID0gJ2ZhY2V0LXZhbHVlLWZvcm0taW5wdXQnO1xyXG4gICAgcmVhZG9ubHkgaXNMaXN0SW5wdXQgPSB0cnVlO1xyXG4gICAgcmVhZG9ubHk6IGJvb2xlYW47XHJcbiAgICBmb3JtQ29udHJvbDogRm9ybUNvbnRyb2w7XHJcbiAgICBmYWNldHMkOiBPYnNlcnZhYmxlPEZhY2V0V2l0aFZhbHVlcy5GcmFnbWVudFtdPjtcclxuICAgIGNvbmZpZzogSW5wdXRDb21wb25lbnRDb25maWc7XHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRhdGFTZXJ2aWNlOiBEYXRhU2VydmljZSkge31cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICB0aGlzLmZhY2V0cyQgPSB0aGlzLmRhdGFTZXJ2aWNlLmZhY2V0XHJcbiAgICAgICAgICAgIC5nZXRBbGxGYWNldHMoKVxyXG4gICAgICAgICAgICAubWFwU2luZ2xlKGRhdGEgPT4gZGF0YS5mYWNldHMuaXRlbXMpXHJcbiAgICAgICAgICAgIC5waXBlKHNoYXJlUmVwbGF5KDEpKTtcclxuICAgIH1cclxufVxyXG4iXX0=
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjZXQtdmFsdWUtZm9ybS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3NoYXJlZC9keW5hbWljLWZvcm0taW5wdXRzL2ZhY2V0LXZhbHVlLWZvcm0taW5wdXQvZmFjZXQtdmFsdWUtZm9ybS1pbnB1dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFJbEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSTdDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUduRTs7Ozs7OztHQU9HO0FBT0gsTUFBTSxPQUFPLDRCQUE0QjtJQU9yQyxZQUFvQixXQUF3QjtRQUF4QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUxuQyxnQkFBVyxHQUFHLElBQUksQ0FBQztRQWM1QixxQkFBZ0IsR0FBRyxDQUFDLE1BQStCLEVBQUUsRUFBRTtZQUNuRCxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxLQUFLLHFCQUFxQixDQUFDO1lBQzNFLElBQUksaUJBQWlCLEVBQUU7Z0JBQ25CLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7YUFDaEQ7aUJBQU07Z0JBQ0gsT0FBTyxNQUFNLENBQUM7YUFDakI7UUFDTCxDQUFDLENBQUM7SUFoQjZDLENBQUM7SUFFaEQsUUFBUTtRQUNKLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLO2FBQ2hDLFlBQVksRUFBRTthQUNkLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO2FBQ3BDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5QixDQUFDOztBQWJlLCtCQUFFLEdBQTJCLHdCQUF3QixDQUFDOztZQVB6RSxTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLDRCQUE0QjtnQkFDdEMsb1JBQXNEO2dCQUV0RCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTs7YUFDbEQ7OztZQWhCUSxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgRGVmYXVsdEZvcm1Db21wb25lbnRJZCB9IGZyb20gJ0B2ZW5kdXJlL2NvbW1vbi9saWIvc2hhcmVkLXR5cGVzJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBzaGFyZVJlcGxheSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7IEZvcm1JbnB1dENvbXBvbmVudCwgSW5wdXRDb21wb25lbnRDb25maWcgfSBmcm9tICcuLi8uLi8uLi9jb21tb24vY29tcG9uZW50LXJlZ2lzdHJ5LXR5cGVzJztcclxuaW1wb3J0IHsgRmFjZXRXaXRoVmFsdWVzIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2dlbmVyYXRlZC10eXBlcyc7XHJcbmltcG9ydCB7IERhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vZGF0YS9wcm92aWRlcnMvZGF0YS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRmFjZXRWYWx1ZVNlbGV0b3JJdGVtIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9mYWNldC12YWx1ZS1zZWxlY3Rvci9mYWNldC12YWx1ZS1zZWxlY3Rvci5jb21wb25lbnQnO1xyXG5cclxuLyoqXHJcbiAqIEBkZXNjcmlwdGlvblxyXG4gKiBBbGxvd3MgdGhlIHNlbGVjdGlvbiBvZiBtdWx0aXBsZSBGYWNldFZhbHVlcyB2aWEgYW4gYXV0b2NvbXBsZXRlIHNlbGVjdCBpbnB1dC5cclxuICogU2hvdWxkIGJlIHVzZWQgd2l0aCBgSURgIHR5cGUgKipsaXN0KiogZmllbGRzIHdoaWNoIHJlcHJlc2VudCBGYWNldFZhbHVlIElEcy5cclxuICpcclxuICogQGRvY3NDYXRlZ29yeSBjdXN0b20taW5wdXQtY29tcG9uZW50c1xyXG4gKiBAZG9jc1BhZ2UgZGVmYXVsdC1pbnB1dHNcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICd2ZHItZmFjZXQtdmFsdWUtZm9ybS1pbnB1dCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vZmFjZXQtdmFsdWUtZm9ybS1pbnB1dC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9mYWNldC12YWx1ZS1mb3JtLWlucHV0LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIEZhY2V0VmFsdWVGb3JtSW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBGb3JtSW5wdXRDb21wb25lbnQsIE9uSW5pdCB7XHJcbiAgICBzdGF0aWMgcmVhZG9ubHkgaWQ6IERlZmF1bHRGb3JtQ29tcG9uZW50SWQgPSAnZmFjZXQtdmFsdWUtZm9ybS1pbnB1dCc7XHJcbiAgICByZWFkb25seSBpc0xpc3RJbnB1dCA9IHRydWU7XHJcbiAgICByZWFkb25seTogYm9vbGVhbjtcclxuICAgIGZvcm1Db250cm9sOiBGb3JtQ29udHJvbDtcclxuICAgIGZhY2V0cyQ6IE9ic2VydmFibGU8RmFjZXRXaXRoVmFsdWVzLkZyYWdtZW50W10+O1xyXG4gICAgY29uZmlnOiBJbnB1dENvbXBvbmVudENvbmZpZztcclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlKSB7fVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIHRoaXMuZmFjZXRzJCA9IHRoaXMuZGF0YVNlcnZpY2UuZmFjZXRcclxuICAgICAgICAgICAgLmdldEFsbEZhY2V0cygpXHJcbiAgICAgICAgICAgIC5tYXBTaW5nbGUoZGF0YSA9PiBkYXRhLmZhY2V0cy5pdGVtcylcclxuICAgICAgICAgICAgLnBpcGUoc2hhcmVSZXBsYXkoMSkpO1xyXG4gICAgfVxyXG5cclxuICAgIHZhbHVlVHJhbnNmb3JtRm4gPSAodmFsdWVzOiBGYWNldFZhbHVlU2VsZXRvckl0ZW1bXSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGlzVXNlZEluQ29uZmlnQXJnID0gdGhpcy5jb25maWcuX190eXBlbmFtZSA9PT0gJ0NvbmZpZ0FyZ0RlZmluaXRpb24nO1xyXG4gICAgICAgIGlmIChpc1VzZWRJbkNvbmZpZ0FyZykge1xyXG4gICAgICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodmFsdWVzLm1hcChzID0+IHMuaWQpKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gdmFsdWVzO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbn1cclxuIl19
@@ -1,4 +1,5 @@
1
1
  import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
2
+ import { DataService } from '../../../data/providers/data.service';
2
3
  /**
3
4
  * @description
4
5
  * Uses a select input to allow the selection of a string value. Should be used with
@@ -8,21 +9,33 @@ import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
8
9
  * @docsPage default-inputs
9
10
  */
10
11
  export class SelectFormInputComponent {
12
+ constructor(dataService) {
13
+ this.dataService = dataService;
14
+ }
11
15
  get options() {
12
16
  var _a;
13
17
  return ((_a = this.config.ui) === null || _a === void 0 ? void 0 : _a.options) || this.config.options;
14
18
  }
19
+ ngOnInit() {
20
+ this.uiLanguage$ = this.dataService.client.uiState().mapStream(({ uiState }) => uiState.language);
21
+ }
22
+ trackByFn(index, item) {
23
+ return item.value;
24
+ }
15
25
  }
16
26
  SelectFormInputComponent.id = 'select-form-input';
17
27
  SelectFormInputComponent.decorators = [
18
28
  { type: Component, args: [{
19
29
  selector: 'vdr-select-form-input',
20
- template: "<select clrSelect [formControl]=\"formControl\" [vdrDisabled]=\"readonly\">\r\n <option *ngIf=\"config.nullable\" [ngValue]=\"null\"></option>\r\n <option *ngFor=\"let option of options\" [ngValue]=\"option.value\">\r\n {{ (option | customFieldLabel) || option.label || option.value }}\r\n </option>\r\n</select>\r\n",
30
+ template: "<select clrSelect [formControl]=\"formControl\" [vdrDisabled]=\"readonly\">\r\n <option *ngIf=\"config.nullable\" [ngValue]=\"null\"></option>\r\n <option *ngFor=\"let option of options;trackBy:trackByFn\" [ngValue]=\"option.value\">\r\n {{ (option | customFieldLabel:(uiLanguage$ | async)) || option.label || option.value }}\r\n </option>\r\n</select>\r\n",
21
31
  changeDetection: ChangeDetectionStrategy.OnPush,
22
32
  styles: ["select{width:100%}\n"]
23
33
  },] }
24
34
  ];
35
+ SelectFormInputComponent.ctorParameters = () => [
36
+ { type: DataService }
37
+ ];
25
38
  SelectFormInputComponent.propDecorators = {
26
39
  readonly: [{ type: Input }]
27
40
  };
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWZvcm0taW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3NyYy9zaGFyZWQvZHluYW1pYy1mb3JtLWlucHV0cy9zZWxlY3QtZm9ybS1pbnB1dC9zZWxlY3QtZm9ybS1pbnB1dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFPMUU7Ozs7Ozs7R0FPRztBQU9ILE1BQU0sT0FBTyx3QkFBd0I7SUFNakMsSUFBSSxPQUFPOztRQUNQLE9BQU8sQ0FBQSxNQUFBLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSwwQ0FBRSxPQUFPLEtBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7SUFDMUQsQ0FBQzs7QUFQZSwyQkFBRSxHQUEyQixtQkFBbUIsQ0FBQzs7WUFQcEUsU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSx1QkFBdUI7Z0JBQ2pDLHdWQUFpRDtnQkFFakQsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07O2FBQ2xEOzs7dUJBR0ksS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBEZWZhdWx0Rm9ybUNvbXBvbmVudENvbmZpZywgRGVmYXVsdEZvcm1Db21wb25lbnRJZCB9IGZyb20gJ0B2ZW5kdXJlL2NvbW1vbi9saWIvc2hhcmVkLXR5cGVzJztcclxuXHJcbmltcG9ydCB7IEZvcm1JbnB1dENvbXBvbmVudCwgSW5wdXRDb21wb25lbnRDb25maWcgfSBmcm9tICcuLi8uLi8uLi9jb21tb24vY29tcG9uZW50LXJlZ2lzdHJ5LXR5cGVzJztcclxuaW1wb3J0IHsgQ3VzdG9tRmllbGRDb25maWdGcmFnbWVudCB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9nZW5lcmF0ZWQtdHlwZXMnO1xyXG5cclxuLyoqXHJcbiAqIEBkZXNjcmlwdGlvblxyXG4gKiBVc2VzIGEgc2VsZWN0IGlucHV0IHRvIGFsbG93IHRoZSBzZWxlY3Rpb24gb2YgYSBzdHJpbmcgdmFsdWUuIFNob3VsZCBiZSB1c2VkIHdpdGhcclxuICogYHN0cmluZ2AgdHlwZSBmaWVsZHMgd2l0aCBvcHRpb25zLlxyXG4gKlxyXG4gKiBAZG9jc0NhdGVnb3J5IGN1c3RvbS1pbnB1dC1jb21wb25lbnRzXHJcbiAqIEBkb2NzUGFnZSBkZWZhdWx0LWlucHV0c1xyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3Zkci1zZWxlY3QtZm9ybS1pbnB1dCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2VsZWN0LWZvcm0taW5wdXQuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vc2VsZWN0LWZvcm0taW5wdXQuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2VsZWN0Rm9ybUlucHV0Q29tcG9uZW50IGltcGxlbWVudHMgRm9ybUlucHV0Q29tcG9uZW50IHtcclxuICAgIHN0YXRpYyByZWFkb25seSBpZDogRGVmYXVsdEZvcm1Db21wb25lbnRJZCA9ICdzZWxlY3QtZm9ybS1pbnB1dCc7XHJcbiAgICBASW5wdXQoKSByZWFkb25seTogYm9vbGVhbjtcclxuICAgIGZvcm1Db250cm9sOiBGb3JtQ29udHJvbDtcclxuICAgIGNvbmZpZzogRGVmYXVsdEZvcm1Db21wb25lbnRDb25maWc8J3NlbGVjdC1mb3JtLWlucHV0Jz4gJiBDdXN0b21GaWVsZENvbmZpZ0ZyYWdtZW50O1xyXG5cclxuICAgIGdldCBvcHRpb25zKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmNvbmZpZy51aT8ub3B0aW9ucyB8fCB0aGlzLmNvbmZpZy5vcHRpb25zO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWZvcm0taW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3NyYy9zaGFyZWQvZHluYW1pYy1mb3JtLWlucHV0cy9zZWxlY3QtZm9ybS1pbnB1dC9zZWxlY3QtZm9ybS1pbnB1dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFPbEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRW5FOzs7Ozs7O0dBT0c7QUFPSCxNQUFNLE9BQU8sd0JBQXdCO0lBV2pDLFlBQW9CLFdBQXdCO1FBQXhCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO0lBQUcsQ0FBQztJQUpoRCxJQUFJLE9BQU87O1FBQ1AsT0FBTyxDQUFBLE1BQUEsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLDBDQUFFLE9BQU8sS0FBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQztJQUMxRCxDQUFDO0lBSUQsUUFBUTtRQUNKLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3RHLENBQUM7SUFFRCxTQUFTLENBQUMsS0FBYSxFQUFFLElBQVM7UUFDOUIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3RCLENBQUM7O0FBbEJlLDJCQUFFLEdBQTJCLG1CQUFtQixDQUFDOztZQVBwRSxTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLHVCQUF1QjtnQkFDakMsZ1lBQWlEO2dCQUVqRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTs7YUFDbEQ7OztZQWZRLFdBQVc7Ozt1QkFrQmYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRGVmYXVsdEZvcm1Db21wb25lbnRDb25maWcsIERlZmF1bHRGb3JtQ29tcG9uZW50SWQgfSBmcm9tICdAdmVuZHVyZS9jb21tb24vbGliL3NoYXJlZC10eXBlcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEZvcm1JbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9jb21wb25lbnQtcmVnaXN0cnktdHlwZXMnO1xuaW1wb3J0IHsgQ3VzdG9tRmllbGRDb25maWdGcmFnbWVudCwgTGFuZ3VhZ2VDb2RlIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2dlbmVyYXRlZC10eXBlcyc7XG5pbXBvcnQgeyBEYXRhU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2RhdGEvcHJvdmlkZXJzL2RhdGEuc2VydmljZSc7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uXG4gKiBVc2VzIGEgc2VsZWN0IGlucHV0IHRvIGFsbG93IHRoZSBzZWxlY3Rpb24gb2YgYSBzdHJpbmcgdmFsdWUuIFNob3VsZCBiZSB1c2VkIHdpdGhcbiAqIGBzdHJpbmdgIHR5cGUgZmllbGRzIHdpdGggb3B0aW9ucy5cbiAqXG4gKiBAZG9jc0NhdGVnb3J5IGN1c3RvbS1pbnB1dC1jb21wb25lbnRzXG4gKiBAZG9jc1BhZ2UgZGVmYXVsdC1pbnB1dHNcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd2ZHItc2VsZWN0LWZvcm0taW5wdXQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zZWxlY3QtZm9ybS1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc2VsZWN0LWZvcm0taW5wdXQuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgU2VsZWN0Rm9ybUlucHV0Q29tcG9uZW50IGltcGxlbWVudHMgRm9ybUlucHV0Q29tcG9uZW50LCBPbkluaXQge1xuICAgIHN0YXRpYyByZWFkb25seSBpZDogRGVmYXVsdEZvcm1Db21wb25lbnRJZCA9ICdzZWxlY3QtZm9ybS1pbnB1dCc7XG4gICAgQElucHV0KCkgcmVhZG9ubHk6IGJvb2xlYW47XG4gICAgZm9ybUNvbnRyb2w6IEZvcm1Db250cm9sO1xuICAgIGNvbmZpZzogRGVmYXVsdEZvcm1Db21wb25lbnRDb25maWc8J3NlbGVjdC1mb3JtLWlucHV0Jz4gJiBDdXN0b21GaWVsZENvbmZpZ0ZyYWdtZW50O1xuICAgIHVpTGFuZ3VhZ2UkOiBPYnNlcnZhYmxlPExhbmd1YWdlQ29kZT47XG5cbiAgICBnZXQgb3B0aW9ucygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29uZmlnLnVpPy5vcHRpb25zIHx8IHRoaXMuY29uZmlnLm9wdGlvbnM7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBkYXRhU2VydmljZTogRGF0YVNlcnZpY2UpIHt9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy51aUxhbmd1YWdlJCA9IHRoaXMuZGF0YVNlcnZpY2UuY2xpZW50LnVpU3RhdGUoKS5tYXBTdHJlYW0oKHsgdWlTdGF0ZSB9KSA9PiB1aVN0YXRlLmxhbmd1YWdlKTtcbiAgICB9XG5cbiAgICB0cmFja0J5Rm4oaW5kZXg6IG51bWJlciwgaXRlbTogYW55KSB7XG4gICAgICAgIHJldHVybiBpdGVtLnZhbHVlO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,35 +1,23 @@
1
1
  import { Pipe } from '@angular/core';
2
- import { DataService } from '../../data/providers/data.service';
3
2
  /**
4
3
  * Displays a localized label for a CustomField or StringFieldOption, falling back to the
5
4
  * name/value if none are defined.
6
5
  */
7
6
  export class CustomFieldLabelPipe {
8
- constructor(dataService) {
9
- this.dataService = dataService;
10
- this.subscription = dataService.client.uiState().stream$.subscribe(val => {
11
- this.uiLanguageCode = val.uiState.language;
12
- });
13
- }
14
- transform(value) {
7
+ transform(value, uiLanguageCode) {
15
8
  if (!value) {
16
9
  return value;
17
10
  }
18
11
  const { label } = value;
19
12
  const name = this.isCustomFieldConfig(value) ? value.name : value.value;
20
13
  if (label) {
21
- const match = label.find(l => l.languageCode === this.uiLanguageCode);
14
+ const match = label.find(l => l.languageCode === uiLanguageCode);
22
15
  return match ? match.value : label[0].value;
23
16
  }
24
17
  else {
25
18
  return name;
26
19
  }
27
20
  }
28
- ngOnDestroy() {
29
- if (this.subscription) {
30
- this.subscription.unsubscribe();
31
- }
32
- }
33
21
  isCustomFieldConfig(input) {
34
22
  return input.hasOwnProperty('name');
35
23
  }
@@ -37,10 +25,7 @@ export class CustomFieldLabelPipe {
37
25
  CustomFieldLabelPipe.decorators = [
38
26
  { type: Pipe, args: [{
39
27
  name: 'customFieldLabel',
40
- pure: false,
28
+ pure: true,
41
29
  },] }
42
30
  ];
43
- CustomFieldLabelPipe.ctorParameters = () => [
44
- { type: DataService }
45
- ];
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWZpZWxkLWxhYmVsLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3NoYXJlZC9waXBlcy9jdXN0b20tZmllbGQtbGFiZWwucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWEsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUkvRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFaEU7OztHQUdHO0FBS0gsTUFBTSxPQUFPLG9CQUFvQjtJQUk3QixZQUFvQixXQUF3QjtRQUF4QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QyxJQUFJLENBQUMsWUFBWSxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNyRSxJQUFJLENBQUMsY0FBYyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO1FBQy9DLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUE0QztRQUNsRCxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1IsT0FBTyxLQUFLLENBQUM7U0FDaEI7UUFDRCxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztRQUN4RSxJQUFJLEtBQUssRUFBRTtZQUNQLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxLQUFLLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUN0RSxPQUFPLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztTQUMvQzthQUFNO1lBQ0gsT0FBTyxJQUFJLENBQUM7U0FDZjtJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ25CLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDbkM7SUFDTCxDQUFDO0lBRU8sbUJBQW1CLENBQUMsS0FBVTtRQUNsQyxPQUFPLEtBQUssQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDeEMsQ0FBQzs7O1lBcENKLElBQUksU0FBQztnQkFDRixJQUFJLEVBQUUsa0JBQWtCO2dCQUN4QixJQUFJLEVBQUUsS0FBSzthQUNkOzs7WUFUUSxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT25EZXN0cm95LCBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgQ3VzdG9tRmllbGRDb25maWcsIExhbmd1YWdlQ29kZSwgU3RyaW5nRmllbGRPcHRpb24gfSBmcm9tICcuLi8uLi9jb21tb24vZ2VuZXJhdGVkLXR5cGVzJztcclxuaW1wb3J0IHsgRGF0YVNlcnZpY2UgfSBmcm9tICcuLi8uLi9kYXRhL3Byb3ZpZGVycy9kYXRhLnNlcnZpY2UnO1xyXG5cclxuLyoqXHJcbiAqIERpc3BsYXlzIGEgbG9jYWxpemVkIGxhYmVsIGZvciBhIEN1c3RvbUZpZWxkIG9yIFN0cmluZ0ZpZWxkT3B0aW9uLCBmYWxsaW5nIGJhY2sgdG8gdGhlXHJcbiAqIG5hbWUvdmFsdWUgaWYgbm9uZSBhcmUgZGVmaW5lZC5cclxuICovXHJcbkBQaXBlKHtcclxuICAgIG5hbWU6ICdjdXN0b21GaWVsZExhYmVsJyxcclxuICAgIHB1cmU6IGZhbHNlLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ3VzdG9tRmllbGRMYWJlbFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtLCBPbkRlc3Ryb3kge1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuICAgIHByaXZhdGUgdWlMYW5ndWFnZUNvZGU6IExhbmd1YWdlQ29kZTtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRhdGFTZXJ2aWNlOiBEYXRhU2VydmljZSkge1xyXG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gZGF0YVNlcnZpY2UuY2xpZW50LnVpU3RhdGUoKS5zdHJlYW0kLnN1YnNjcmliZSh2YWwgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnVpTGFuZ3VhZ2VDb2RlID0gdmFsLnVpU3RhdGUubGFuZ3VhZ2U7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgdHJhbnNmb3JtKHZhbHVlOiBDdXN0b21GaWVsZENvbmZpZyB8IFN0cmluZ0ZpZWxkT3B0aW9uKTogc3RyaW5nIHtcclxuICAgICAgICBpZiAoIXZhbHVlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgeyBsYWJlbCB9ID0gdmFsdWU7XHJcbiAgICAgICAgY29uc3QgbmFtZSA9IHRoaXMuaXNDdXN0b21GaWVsZENvbmZpZyh2YWx1ZSkgPyB2YWx1ZS5uYW1lIDogdmFsdWUudmFsdWU7XHJcbiAgICAgICAgaWYgKGxhYmVsKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG1hdGNoID0gbGFiZWwuZmluZChsID0+IGwubGFuZ3VhZ2VDb2RlID09PSB0aGlzLnVpTGFuZ3VhZ2VDb2RlKTtcclxuICAgICAgICAgICAgcmV0dXJuIG1hdGNoID8gbWF0Y2gudmFsdWUgOiBsYWJlbFswXS52YWx1ZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gbmFtZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9uKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaXNDdXN0b21GaWVsZENvbmZpZyhpbnB1dDogYW55KTogaW5wdXQgaXMgQ3VzdG9tRmllbGRDb25maWcge1xyXG4gICAgICAgIHJldHVybiBpbnB1dC5oYXNPd25Qcm9wZXJ0eSgnbmFtZScpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWZpZWxkLWxhYmVsLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3NoYXJlZC9waXBlcy9jdXN0b20tZmllbGQtbGFiZWwucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUlwRDs7O0dBR0c7QUFLSCxNQUFNLE9BQU8sb0JBQW9CO0lBQzdCLFNBQVMsQ0FBQyxLQUE0QyxFQUFFLGNBQW1DO1FBQ3ZGLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDUixPQUFPLEtBQUssQ0FBQztTQUNoQjtRQUNELE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxLQUFLLENBQUM7UUFDeEIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQ3hFLElBQUksS0FBSyxFQUFFO1lBQ1AsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxZQUFZLEtBQUssY0FBYyxDQUFDLENBQUM7WUFDakUsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7U0FDL0M7YUFBTTtZQUNILE9BQU8sSUFBSSxDQUFDO1NBQ2Y7SUFDTCxDQUFDO0lBRU8sbUJBQW1CLENBQUMsS0FBVTtRQUNsQyxPQUFPLEtBQUssQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDeEMsQ0FBQzs7O1lBckJKLElBQUksU0FBQztnQkFDRixJQUFJLEVBQUUsa0JBQWtCO2dCQUN4QixJQUFJLEVBQUUsSUFBSTthQUNiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBDdXN0b21GaWVsZENvbmZpZywgTGFuZ3VhZ2VDb2RlLCBTdHJpbmdGaWVsZE9wdGlvbiB9IGZyb20gJy4uLy4uL2NvbW1vbi9nZW5lcmF0ZWQtdHlwZXMnO1xuXG4vKipcbiAqIERpc3BsYXlzIGEgbG9jYWxpemVkIGxhYmVsIGZvciBhIEN1c3RvbUZpZWxkIG9yIFN0cmluZ0ZpZWxkT3B0aW9uLCBmYWxsaW5nIGJhY2sgdG8gdGhlXG4gKiBuYW1lL3ZhbHVlIGlmIG5vbmUgYXJlIGRlZmluZWQuXG4gKi9cbkBQaXBlKHtcbiAgICBuYW1lOiAnY3VzdG9tRmllbGRMYWJlbCcsXG4gICAgcHVyZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgQ3VzdG9tRmllbGRMYWJlbFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgICB0cmFuc2Zvcm0odmFsdWU6IEN1c3RvbUZpZWxkQ29uZmlnIHwgU3RyaW5nRmllbGRPcHRpb24sIHVpTGFuZ3VhZ2VDb2RlOiBMYW5ndWFnZUNvZGUgfCBudWxsKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHsgbGFiZWwgfSA9IHZhbHVlO1xuICAgICAgICBjb25zdCBuYW1lID0gdGhpcy5pc0N1c3RvbUZpZWxkQ29uZmlnKHZhbHVlKSA/IHZhbHVlLm5hbWUgOiB2YWx1ZS52YWx1ZTtcbiAgICAgICAgaWYgKGxhYmVsKSB7XG4gICAgICAgICAgICBjb25zdCBtYXRjaCA9IGxhYmVsLmZpbmQobCA9PiBsLmxhbmd1YWdlQ29kZSA9PT0gdWlMYW5ndWFnZUNvZGUpO1xuICAgICAgICAgICAgcmV0dXJuIG1hdGNoID8gbWF0Y2gudmFsdWUgOiBsYWJlbFswXS52YWx1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBuYW1lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc0N1c3RvbUZpZWxkQ29uZmlnKGlucHV0OiBhbnkpOiBpbnB1dCBpcyBDdXN0b21GaWVsZENvbmZpZyB7XG4gICAgICAgIHJldHVybiBpbnB1dC5oYXNPd25Qcm9wZXJ0eSgnbmFtZScpO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,18 +1,21 @@
1
1
  import { ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import { FormControl } from '@angular/forms';
2
3
  import { ActivatedRoute, Router } from '@angular/router';
3
4
  import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
4
- import { DataService, DeletionResult, ModalService, NotificationService, } from '@vendure/admin-ui/core';
5
+ import { BaseListComponent, DataService, DeletionResult, ModalService, NotificationService, } from '@vendure/admin-ui/core';
5
6
  import { BehaviorSubject, combineLatest, EMPTY, of } from 'rxjs';
6
- import { distinctUntilChanged, map, mapTo, switchMap, tap } from 'rxjs/operators';
7
+ import { debounceTime, distinctUntilChanged, filter, map, mapTo, switchMap, takeUntil, tap, } from 'rxjs/operators';
7
8
  import { AddCustomerToGroupDialogComponent } from '../add-customer-to-group-dialog/add-customer-to-group-dialog.component';
8
9
  import { CustomerGroupDetailDialogComponent } from '../customer-group-detail-dialog/customer-group-detail-dialog.component';
9
- export class CustomerGroupListComponent {
10
+ export class CustomerGroupListComponent extends BaseListComponent {
10
11
  constructor(dataService, notificationService, modalService, route, router) {
12
+ super(router, route);
11
13
  this.dataService = dataService;
12
14
  this.notificationService = notificationService;
13
15
  this.modalService = modalService;
14
16
  this.route = route;
15
17
  this.router = router;
18
+ this.searchTerm = new FormControl('');
16
19
  this.selectedCustomerIds = [];
17
20
  this.fetchGroupMembers$ = new BehaviorSubject({
18
21
  skip: 0,
@@ -20,18 +23,28 @@ export class CustomerGroupListComponent {
20
23
  filterTerm: '',
21
24
  });
22
25
  this.refreshActiveGroupMembers$ = new BehaviorSubject(undefined);
26
+ super.setQueryFn((...args) => this.dataService.customer.getCustomerGroupList(...args).refetchOnChannelChange(), data => data.customerGroups, (skip, take) => ({
27
+ options: {
28
+ skip,
29
+ take,
30
+ filter: {
31
+ name: { contains: this.searchTerm.value },
32
+ },
33
+ },
34
+ }));
23
35
  }
24
36
  ngOnInit() {
25
- this.groups$ = this.dataService.customer
26
- .getCustomerGroupList()
27
- .mapStream(data => data.customerGroups.items);
37
+ super.ngOnInit();
38
+ this.searchTerm.valueChanges
39
+ .pipe(filter(value => 2 < value.length || value.length === 0), debounceTime(250), takeUntil(this.destroy$))
40
+ .subscribe(() => this.refresh());
28
41
  const activeGroupId$ = this.route.paramMap.pipe(map(pm => pm.get('contents')), distinctUntilChanged(), tap(() => (this.selectedCustomerIds = [])));
29
- this.listIsEmpty$ = this.groups$.pipe(map(groups => groups.length === 0));
30
- this.activeGroup$ = combineLatest(this.groups$, activeGroupId$).pipe(map(([groups, activeGroupId]) => {
42
+ this.listIsEmpty$ = this.items$.pipe(map(groups => groups.length === 0));
43
+ this.activeGroup$ = combineLatest(this.items$, activeGroupId$).pipe(map(([groups, activeGroupId]) => {
31
44
  if (activeGroupId) {
32
45
  return groups.find(g => g.id === activeGroupId);
33
46
  }
34
- }));
47
+ }), tap(val => (this.activeGroupId = val === null || val === void 0 ? void 0 : val.id)));
35
48
  const membersResult$ = combineLatest(this.activeGroup$, this.fetchGroupMembers$, this.refreshActiveGroupMembers$).pipe(switchMap(([activeGroup, { skip, take, filterTerm }]) => {
36
49
  if (activeGroup) {
37
50
  return this.dataService.customer
@@ -169,9 +182,9 @@ export class CustomerGroupListComponent {
169
182
  CustomerGroupListComponent.decorators = [
170
183
  { type: Component, args: [{
171
184
  selector: 'vdr-customer-group-list',
172
- template: "<vdr-action-bar>\r\n <vdr-ab-left> </vdr-ab-left>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"customer-group-list\"></vdr-action-bar-items>\r\n <button class=\"btn btn-primary\" *vdrIfPermissions=\"'CreateCustomerGroup'\" (click)=\"create()\">\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'customer.create-new-customer-group' | translate }}\r\n </button>\r\n </vdr-ab-right>\r\n</vdr-action-bar>\r\n<div class=\"group-wrapper\">\r\n <div class=\"group-list\">\r\n <table\r\n class=\"table mt0\"\r\n [class.expanded]=\"activeGroup$ | async\"\r\n *ngIf=\"!(listIsEmpty$ | async); else emptyPlaceholder\"\r\n >\r\n <tbody>\r\n <tr\r\n *ngFor=\"let group of groups$ | async\"\r\n [class.active]=\"group.id === (activeGroup$ | async)?.id\"\r\n >\r\n <td class=\"left align-middle\"><vdr-entity-info [entity]=\"group\"></vdr-entity-info></td>\r\n <td class=\"left align-middle\">\r\n <vdr-chip [colorFrom]=\"group.id\">{{ group.name }}</vdr-chip>\r\n </td>\r\n <td class=\"text-right align-middle\">\r\n <a\r\n class=\"btn btn-link btn-sm\"\r\n [routerLink]=\"['./', { contents: group.id }]\"\r\n queryParamsHandling=\"preserve\"\r\n >\r\n <clr-icon shape=\"view-list\"></clr-icon>\r\n {{ 'customer.view-group-members' | translate }}\r\n </a>\r\n </td>\r\n <td class=\"align-middle\">\r\n <button class=\"btn btn-link btn-sm\" (click)=\"update(group)\">\r\n <clr-icon shape=\"edit\"></clr-icon>\r\n {{ 'common.edit' | translate }}\r\n </button>\r\n </td>\r\n <td class=\"align-middle\">\r\n <vdr-dropdown>\r\n <button type=\"button\" class=\"btn btn-link btn-sm\" vdrDropdownTrigger>\r\n {{ 'common.actions' | translate }}\r\n <clr-icon shape=\"caret down\"></clr-icon>\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-right\">\r\n <button\r\n class=\"button\"\r\n vdrDropdownItem\r\n (click)=\"delete(group.id)\"\r\n [disabled]=\"!('DeleteCustomerGroup' | hasPermission)\"\r\n >\r\n <clr-icon shape=\"trash\" class=\"is-danger\"></clr-icon>\r\n {{ 'common.delete' | translate }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n <ng-template #emptyPlaceholder>\r\n <vdr-empty-placeholder></vdr-empty-placeholder>\r\n </ng-template>\r\n <div class=\"group-members\" [class.expanded]=\"activeGroup$ | async\">\r\n <ng-container *ngIf=\"activeGroup$ | async as activeGroup\">\r\n <div class=\"flex\">\r\n <div class=\"header-title-row\">{{ activeGroup.name }} ({{ membersTotal$ | async }})</div>\r\n <div class=\"flex-spacer\"></div>\r\n <button type=\"button\" class=\"close-button\" (click)=\"closeMembers()\">\r\n <clr-icon shape=\"close\"></clr-icon>\r\n </button>\r\n </div>\r\n <div class=\"controls\">\r\n <vdr-dropdown>\r\n <button\r\n type=\"button\"\r\n class=\"btn btn-secondary btn-sm\"\r\n vdrDropdownTrigger\r\n [disabled]=\"selectedCustomerIds.length === 0\"\r\n >\r\n {{ 'common.with-selected' | translate }}\r\n <clr-icon shape=\"caret down\"></clr-icon>\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-right\">\r\n <button\r\n type=\"button\"\r\n class=\"delete-button\"\r\n (click)=\"removeFromGroup(activeGroup, selectedCustomerIds)\"\r\n vdrDropdownItem\r\n [disabled]=\"!('UpdateCustomerGroup' | hasPermission)\"\r\n >\r\n <clr-icon shape=\"trash\" class=\"is-danger\"></clr-icon>\r\n {{ 'customer.remove-from-group' | translate }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n <button class=\"btn btn-secondary btn-sm\" (click)=\"addToGroup(activeGroup)\">\r\n {{ 'customer.add-customers-to-group' | translate: { groupName: activeGroup.name } }}\r\n </button>\r\n </div>\r\n <vdr-customer-group-member-list\r\n [members]=\"members$ | async\"\r\n [route]=\"route\"\r\n [totalItems]=\"membersTotal$ | async\"\r\n [selectedMemberIds]=\"selectedCustomerIds\"\r\n (selectionChange)=\"selectedCustomerIds = $event\"\r\n (fetchParamsChange)=\"fetchGroupMembers$.next($event)\"\r\n ></vdr-customer-group-member-list>\r\n </ng-container>\r\n </div>\r\n</div>\r\n",
185
+ template: "<vdr-action-bar>\r\n <vdr-ab-left>\r\n <input\r\n type=\"text\"\r\n name=\"emailSearchTerm\"\r\n [formControl]=\"searchTerm\"\r\n [placeholder]=\"'customer.search-by-group-name' | translate\"\r\n class=\"search-input ml3\"\r\n />\r\n </vdr-ab-left>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"customer-group-list\"></vdr-action-bar-items>\r\n <button class=\"btn btn-primary\" *vdrIfPermissions=\"'CreateCustomerGroup'\" (click)=\"create()\">\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'customer.create-new-customer-group' | translate }}\r\n </button>\r\n </vdr-ab-right>\r\n</vdr-action-bar>\r\n<div class=\"group-wrapper\">\r\n <div class=\"group-list\">\r\n <vdr-data-table\r\n [class.expanded]=\"activeGroup$ | async\"\r\n [items]=\"items$ | async\"\r\n [itemsPerPage]=\"itemsPerPage$ | async\"\r\n [totalItems]=\"totalItems$ | async\"\r\n [currentPage]=\"currentPage$ | async\"\r\n (pageChange)=\"setPageNumber($event)\"\r\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\r\n >\r\n <ng-template let-group=\"item\">\r\n <td class=\"left align-middle\" [class.active]=\"group.id === activeGroupId\">\r\n <vdr-entity-info [entity]=\"group\"></vdr-entity-info>\r\n </td>\r\n <td class=\"left align-middle\" [class.active]=\"group.id === activeGroupId\">\r\n <vdr-chip [colorFrom]=\"group.id\">{{ group.name }}</vdr-chip>\r\n </td>\r\n <td class=\"left align-middle\" [class.active]=\"group.id === activeGroupId\">\r\n <a\r\n class=\"btn btn-link btn-sm\"\r\n [routerLink]=\"['./', { contents: group.id }]\"\r\n queryParamsHandling=\"preserve\"\r\n >\r\n <clr-icon shape=\"view-list\"></clr-icon>\r\n {{ 'customer.view-group-members' | translate }}\r\n </a>\r\n </td>\r\n <td class=\"right align-middle\" [class.active]=\"group.id === activeGroupId\">\r\n <button class=\"btn btn-link btn-sm\" (click)=\"update(group)\">\r\n <clr-icon shape=\"edit\"></clr-icon>\r\n {{ 'common.edit' | translate }}\r\n </button>\r\n </td>\r\n <td [class.active]=\"group.id === activeGroupId\">\r\n <vdr-dropdown>\r\n <button type=\"button\" class=\"btn btn-link btn-sm\" vdrDropdownTrigger>\r\n {{ 'common.actions' | translate }}\r\n <clr-icon shape=\"caret down\"></clr-icon>\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-right\">\r\n <button\r\n class=\"button\"\r\n vdrDropdownItem\r\n (click)=\"delete(group.id)\"\r\n [disabled]=\"!('DeleteCustomerGroup' | hasPermission)\"\r\n >\r\n <clr-icon shape=\"trash\" class=\"is-danger\"></clr-icon>\r\n {{ 'common.delete' | translate }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </td>\r\n </ng-template>\r\n </vdr-data-table>\r\n\r\n <table class=\"table mt0\" *ngIf=\"!(listIsEmpty$ | async); else emptyPlaceholder\">\r\n <tbody>\r\n <tr\r\n *ngFor=\"let group of items$ | async\"\r\n [class.active]=\"group.id === (activeGroup$ | async)?.id\"\r\n ></tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n <ng-template #emptyPlaceholder>\r\n <vdr-empty-placeholder></vdr-empty-placeholder>\r\n </ng-template>\r\n <div class=\"group-members\" [class.expanded]=\"activeGroup$ | async\">\r\n <ng-container *ngIf=\"activeGroup$ | async as activeGroup\">\r\n <div class=\"flex\">\r\n <div class=\"header-title-row\">{{ activeGroup.name }} ({{ membersTotal$ | async }})</div>\r\n <div class=\"flex-spacer\"></div>\r\n <button type=\"button\" class=\"close-button\" (click)=\"closeMembers()\">\r\n <clr-icon shape=\"close\"></clr-icon>\r\n </button>\r\n </div>\r\n <div class=\"controls\">\r\n <vdr-dropdown>\r\n <button\r\n type=\"button\"\r\n class=\"btn btn-secondary btn-sm\"\r\n vdrDropdownTrigger\r\n [disabled]=\"selectedCustomerIds.length === 0\"\r\n >\r\n {{ 'common.with-selected' | translate }}\r\n <clr-icon shape=\"caret down\"></clr-icon>\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-right\">\r\n <button\r\n type=\"button\"\r\n class=\"delete-button\"\r\n (click)=\"removeFromGroup(activeGroup, selectedCustomerIds)\"\r\n vdrDropdownItem\r\n [disabled]=\"!('UpdateCustomerGroup' | hasPermission)\"\r\n >\r\n <clr-icon shape=\"trash\" class=\"is-danger\"></clr-icon>\r\n {{ 'customer.remove-from-group' | translate }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n <button class=\"btn btn-secondary btn-sm\" (click)=\"addToGroup(activeGroup)\">\r\n {{ 'customer.add-customers-to-group' | translate: { groupName: activeGroup.name } }}\r\n </button>\r\n </div>\r\n <vdr-customer-group-member-list\r\n [members]=\"members$ | async\"\r\n [route]=\"route\"\r\n [totalItems]=\"membersTotal$ | async\"\r\n [selectedMemberIds]=\"selectedCustomerIds\"\r\n (selectionChange)=\"selectedCustomerIds = $event\"\r\n (fetchParamsChange)=\"fetchGroupMembers$.next($event)\"\r\n ></vdr-customer-group-member-list>\r\n </ng-container>\r\n </div>\r\n</div>\r\n",
173
186
  changeDetection: ChangeDetectionStrategy.OnPush,
174
- styles: [".group-wrapper{display:flex;height:calc(100% - 50px)}.group-wrapper .group-list{flex:1;overflow:auto;margin-top:0}.group-wrapper .group-list tr.active{background-color:var(--color-component-bg-200)}.group-wrapper .group-list.expanded{width:calc(100% - 40vw)}.group-members{height:100%;width:0;opacity:0;visibility:hidden;overflow:auto;transition:width .3s,opacity .2s .3s,visibility 0s .3s}.group-members.expanded{width:40vw;visibility:visible;opacity:1;padding-left:12px}.group-members .close-button{margin:0;background:none;border:none;cursor:pointer}.group-members ::ng-deep table.table{margin-top:0}.group-members ::ng-deep table.table th{top:0}.group-members .controls{display:flex;justify-content:space-between}vdr-empty-placeholder{flex:1}\n"]
187
+ styles: [".group-wrapper{display:flex;height:calc(100% - 50px)}.group-wrapper .group-list{flex:1;overflow:auto;margin-top:0}.group-wrapper .group-list .active{background-color:var(--clr-global-selection-color)}.group-wrapper .group-list.expanded{width:calc(100% - 40vw)}vdr-data-table ::ng-deep table{margin-top:0}.group-members{height:100%;width:0;opacity:0;visibility:hidden;overflow:auto;transition:width .3s,opacity .2s .3s,visibility 0s .3s}.group-members.expanded{width:40vw;visibility:visible;opacity:1;padding-left:12px}.group-members .close-button{margin:0;background:none;border:none;cursor:pointer}.group-members ::ng-deep table.table{margin-top:0}.group-members ::ng-deep table.table th{top:0}.group-members .controls{display:flex;justify-content:space-between}vdr-empty-placeholder{flex:1}\n"]
175
188
  },] }
176
189
  ];
177
190
  CustomerGroupListComponent.ctorParameters = () => [
@@ -181,4 +194,4 @@ CustomerGroupListComponent.ctorParameters = () => [
181
194
  { type: ActivatedRoute },
182
195
  { type: Router }
183
196
  ];
184
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tZXItZ3JvdXAtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2N1c3RvbWVyL3NyYy9jb21wb25lbnRzL2N1c3RvbWVyLWdyb3VwLWxpc3QvY3VzdG9tZXItZ3JvdXAtbGlzdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxNQUFNLElBQUksQ0FBQyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDdEUsT0FBTyxFQUNILFdBQVcsRUFDWCxjQUFjLEVBSWQsWUFBWSxFQUNaLG1CQUFtQixHQUN0QixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0UsT0FBTyxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWxGLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLHdFQUF3RSxDQUFDO0FBQzNILE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLHdFQUF3RSxDQUFDO0FBUzVILE1BQU0sT0FBTywwQkFBMEI7SUFjbkMsWUFDWSxXQUF3QixFQUN4QixtQkFBd0MsRUFDeEMsWUFBMEIsRUFDM0IsS0FBcUIsRUFDcEIsTUFBYztRQUpkLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDM0IsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDcEIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQWIxQix3QkFBbUIsR0FBYSxFQUFFLENBQUM7UUFDbkMsdUJBQWtCLEdBQUcsSUFBSSxlQUFlLENBQWlDO1lBQ3JFLElBQUksRUFBRSxDQUFDO1lBQ1AsSUFBSSxFQUFFLENBQUM7WUFDUCxVQUFVLEVBQUUsRUFBRTtTQUNqQixDQUFDLENBQUM7UUFDSywrQkFBMEIsR0FBRyxJQUFJLGVBQWUsQ0FBTyxTQUFTLENBQUMsQ0FBQztJQVF2RSxDQUFDO0lBRUosUUFBUTtRQUNKLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRO2FBQ25DLG9CQUFvQixFQUFFO2FBQ3RCLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEQsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUMzQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQzdCLG9CQUFvQixFQUFFLEVBQ3RCLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUM3QyxDQUFDO1FBQ0YsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUUsSUFBSSxDQUFDLFlBQVksR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxjQUFjLENBQUMsQ0FBQyxJQUFJLENBQ2hFLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLGFBQWEsQ0FBQyxFQUFFLEVBQUU7WUFDNUIsSUFBSSxhQUFhLEVBQUU7Z0JBQ2YsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxhQUFhLENBQUMsQ0FBQzthQUNuRDtRQUNMLENBQUMsQ0FBQyxDQUNMLENBQUM7UUFDRixNQUFNLGNBQWMsR0FBRyxhQUFhLENBQ2hDLElBQUksQ0FBQyxZQUFZLEVBQ2pCLElBQUksQ0FBQyxrQkFBa0IsRUFDdkIsSUFBSSxDQUFDLDBCQUEwQixDQUNsQyxDQUFDLElBQUksQ0FDRixTQUFTLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3BELElBQUksV0FBVyxFQUFFO2dCQUNiLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRO3FCQUMzQiw2QkFBNkIsQ0FBQyxXQUFXLENBQUMsRUFBRSxFQUFFO29CQUMzQyxJQUFJO29CQUNKLElBQUk7b0JBQ0osTUFBTSxFQUFFO3dCQUNKLFlBQVksRUFBRTs0QkFDVixRQUFRLEVBQUUsVUFBVTt5QkFDdkI7cUJBQ0o7aUJBQ0osQ0FBQztxQkFDRCxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsV0FBQyxPQUFBLE1BQUEsR0FBRyxDQUFDLGFBQWEsMENBQUUsU0FBUyxDQUFBLEVBQUEsQ0FBQyxDQUFDO2FBQ3ZEO2lCQUFNO2dCQUNILE9BQU8sRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2FBQ3hCO1FBQ0wsQ0FBQyxDQUFDLENBQ0wsQ0FBQztRQUVGLElBQUksQ0FBQyxRQUFRLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsV0FBQyxPQUFBLE1BQUEsR0FBRyxhQUFILEdBQUcsdUJBQUgsR0FBRyxDQUFFLEtBQUssbUNBQUksRUFBRSxDQUFBLEVBQUEsQ0FBQyxDQUFDLENBQUM7UUFDbEUsSUFBSSxDQUFDLGFBQWEsR0FBRyxjQUFjLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxXQUFDLE9BQUEsTUFBQSxHQUFHLGFBQUgsR0FBRyx1QkFBSCxHQUFHLENBQUUsVUFBVSxtQ0FBSSxDQUFDLENBQUEsRUFBQSxDQUFDLENBQUMsQ0FBQztJQUMvRSxDQUFDO0lBRUQsTUFBTTtRQUNGLElBQUksQ0FBQyxZQUFZO2FBQ1osYUFBYSxDQUFDLGtDQUFrQyxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQzthQUN0RixJQUFJLENBQ0QsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQ2YsTUFBTTtZQUNGLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsaUNBQU0sTUFBTSxLQUFFLFdBQVcsRUFBRSxFQUFFLElBQUc7WUFDL0UsQ0FBQyxDQUFDLEtBQUssQ0FDZDtRQUNELGVBQWU7UUFDZixTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FDNUU7YUFDQSxTQUFTLENBQ04sR0FBRyxFQUFFO1lBQ0QsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsOEJBQThCLENBQUMsRUFBRTtnQkFDaEUsTUFBTSxFQUFFLGVBQWU7YUFDMUIsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxFQUNELEdBQUcsQ0FBQyxFQUFFO1lBQ0YsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsNEJBQTRCLENBQUMsRUFBRTtnQkFDNUQsTUFBTSxFQUFFLGVBQWU7YUFDMUIsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUNKLENBQUM7SUFDVixDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQWU7UUFDbEIsSUFBSSxDQUFDLFlBQVk7YUFDWixNQUFNLENBQUM7WUFDSixLQUFLLEVBQUUsQ0FBQyxDQUFDLHdDQUF3QyxDQUFDO1lBQ2xELE9BQU8sRUFBRTtnQkFDTCxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxlQUFlLENBQUMsRUFBRTtnQkFDaEQsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsZUFBZSxDQUFDLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRTthQUNuRTtTQUNKLENBQUM7YUFDRCxJQUFJLENBQ0QsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQ2pCLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FDNUUsRUFFRCxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDZixJQUFJLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLEtBQUssY0FBYyxDQUFDLE9BQU8sRUFBRTtnQkFDOUQsZUFBZTtnQkFDZixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUTtxQkFDM0Isb0JBQW9CLEVBQUU7cUJBQ3RCLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQzthQUNuRDtpQkFBTTtnQkFDSCxPQUFPLEVBQUUsQ0FBQyxFQUFFLFlBQVksRUFBRSxNQUFNLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQzthQUNuRTtRQUNMLENBQUMsQ0FBQyxDQUNMO2FBQ0EsU0FBUyxDQUNOLE1BQU0sQ0FBQyxFQUFFO1lBQ0wsSUFBSSxPQUFPLE1BQU0sQ0FBQyxZQUFZLEtBQUssUUFBUSxFQUFFO2dCQUN6QyxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQzthQUN2RDtpQkFBTTtnQkFDSCxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyw4QkFBOEIsQ0FBQyxFQUFFO29CQUNoRSxNQUFNLEVBQUUsZUFBZTtpQkFDMUIsQ0FBQyxDQUFDO2FBQ047UUFDTCxDQUFDLEVBQ0QsR0FBRyxDQUFDLEVBQUU7WUFDRixJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyw0QkFBNEIsQ0FBQyxFQUFFO2dCQUM1RCxNQUFNLEVBQUUsZUFBZTthQUMxQixDQUFDLENBQUM7UUFDUCxDQUFDLENBQ0osQ0FBQztJQUNWLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBOEI7UUFDakMsSUFBSSxDQUFDLFlBQVk7YUFDWixhQUFhLENBQUMsa0NBQWtDLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDO2FBQ3hFLElBQUksQ0FDRCxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FDZixNQUFNO1lBQ0YsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLG1CQUFtQixpQkFBRyxFQUFFLEVBQUUsS0FBSyxDQUFDLEVBQUUsSUFBSyxNQUFNLEVBQUc7WUFDNUUsQ0FBQyxDQUFDLEtBQUssQ0FDZCxDQUNKO2FBQ0EsU0FBUyxDQUNOLEdBQUcsRUFBRTtZQUNELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLDhCQUE4QixDQUFDLEVBQUU7Z0JBQ2hFLE1BQU0sRUFBRSxlQUFlO2FBQzFCLENBQUMsQ0FBQztRQUNQLENBQUMsRUFDRCxHQUFHLENBQUMsRUFBRTtZQUNGLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLDRCQUE0QixDQUFDLEVBQUU7Z0JBQzVELE1BQU0sRUFBRSxlQUFlO2FBQzFCLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FDSixDQUFDO0lBQ1YsQ0FBQztJQUVELFlBQVk7UUFDUixNQUFNLE1BQU0scUJBQVEsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFFLENBQUM7UUFDakQsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxFQUFFLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUN0RyxDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQWtEO1FBQ3pELElBQUksQ0FBQyxZQUFZO2FBQ1osYUFBYSxDQUFDLGlDQUFpQyxFQUFFO1lBQzlDLE1BQU0sRUFBRTtnQkFDSixLQUFLO2dCQUNMLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSzthQUNwQjtZQUNELElBQUksRUFBRSxJQUFJO1lBQ1YsYUFBYSxFQUFFLEtBQUs7U0FDdkIsQ0FBQzthQUNELElBQUksQ0FDRCxTQUFTLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FDcEIsV0FBVztZQUNQLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVE7aUJBQ3BCLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsV0FBVyxDQUFDO2lCQUMxQyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQy9CLENBQUMsQ0FBQyxLQUFLLENBQ2QsQ0FDSjthQUNBLFNBQVMsQ0FBQztZQUNQLElBQUksRUFBRSxNQUFNLENBQUMsRUFBRTtnQkFDWCxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyx5Q0FBeUMsQ0FBQyxFQUFFO29CQUMzRSxhQUFhLEVBQUUsTUFBTSxDQUFDLE1BQU07b0JBQzVCLFNBQVMsRUFBRSxLQUFLLENBQUMsSUFBSTtpQkFDeEIsQ0FBQyxDQUFDO2dCQUNILElBQUksQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDdkMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLEVBQUUsQ0FBQztZQUNsQyxDQUFDO1NBQ0osQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVELGVBQWUsQ0FBQyxLQUFxQixFQUFFLFdBQXFCO1FBQ3hELElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLHdCQUF3QixDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsV0FBVyxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQ2hGLFFBQVEsRUFBRSxHQUFHLEVBQUU7Z0JBQ1gsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsOENBQThDLENBQUMsRUFBRTtvQkFDaEYsYUFBYSxFQUFFLFdBQVcsQ0FBQyxNQUFNO29CQUNqQyxTQUFTLEVBQUUsS0FBSyxDQUFDLElBQUk7aUJBQ3hCLENBQUMsQ0FBQztnQkFDSCxJQUFJLENBQUMsMEJBQTBCLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ3ZDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxFQUFFLENBQUM7WUFDbEMsQ0FBQztTQUNKLENBQUMsQ0FBQztJQUNQLENBQUM7OztZQXROSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLHlCQUF5QjtnQkFDbkMsMjdMQUFtRDtnQkFFbkQsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07O2FBQ2xEOzs7WUFwQkcsV0FBVztZQU1YLG1CQUFtQjtZQURuQixZQUFZO1lBUlAsY0FBYztZQUFFLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IG1hcmtlciBhcyBfIH0gZnJvbSAnQGJpZXNiamVyZy9uZ3gtdHJhbnNsYXRlLWV4dHJhY3QtbWFya2VyJztcclxuaW1wb3J0IHtcclxuICAgIERhdGFTZXJ2aWNlLFxyXG4gICAgRGVsZXRpb25SZXN1bHQsXHJcbiAgICBHZXRDdXN0b21lckdyb3VwcyxcclxuICAgIEdldEN1c3RvbWVyR3JvdXBXaXRoQ3VzdG9tZXJzLFxyXG4gICAgR2V0Wm9uZXMsXHJcbiAgICBNb2RhbFNlcnZpY2UsXHJcbiAgICBOb3RpZmljYXRpb25TZXJ2aWNlLFxyXG59IGZyb20gJ0B2ZW5kdXJlL2FkbWluLXVpL2NvcmUnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIEVNUFRZLCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwLCBtYXBUbywgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBBZGRDdXN0b21lclRvR3JvdXBEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi9hZGQtY3VzdG9tZXItdG8tZ3JvdXAtZGlhbG9nL2FkZC1jdXN0b21lci10by1ncm91cC1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ3VzdG9tZXJHcm91cERldGFpbERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uL2N1c3RvbWVyLWdyb3VwLWRldGFpbC1kaWFsb2cvY3VzdG9tZXItZ3JvdXAtZGV0YWlsLWRpYWxvZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDdXN0b21lckdyb3VwTWVtYmVyRmV0Y2hQYXJhbXMgfSBmcm9tICcuLi9jdXN0b21lci1ncm91cC1tZW1iZXItbGlzdC9jdXN0b21lci1ncm91cC1tZW1iZXItbGlzdC5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3Zkci1jdXN0b21lci1ncm91cC1saXN0JyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9jdXN0b21lci1ncm91cC1saXN0LmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2N1c3RvbWVyLWdyb3VwLWxpc3QuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ3VzdG9tZXJHcm91cExpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgYWN0aXZlR3JvdXAkOiBPYnNlcnZhYmxlPEdldEN1c3RvbWVyR3JvdXBzLkl0ZW1zIHwgdW5kZWZpbmVkPjtcclxuICAgIGdyb3VwcyQ6IE9ic2VydmFibGU8R2V0Q3VzdG9tZXJHcm91cHMuSXRlbXNbXT47XHJcbiAgICBsaXN0SXNFbXB0eSQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XHJcbiAgICBtZW1iZXJzJDogT2JzZXJ2YWJsZTxHZXRDdXN0b21lckdyb3VwV2l0aEN1c3RvbWVycy5JdGVtc1tdPjtcclxuICAgIG1lbWJlcnNUb3RhbCQ6IE9ic2VydmFibGU8bnVtYmVyPjtcclxuICAgIHNlbGVjdGVkQ3VzdG9tZXJJZHM6IHN0cmluZ1tdID0gW107XHJcbiAgICBmZXRjaEdyb3VwTWVtYmVycyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEN1c3RvbWVyR3JvdXBNZW1iZXJGZXRjaFBhcmFtcz4oe1xyXG4gICAgICAgIHNraXA6IDAsXHJcbiAgICAgICAgdGFrZTogMCxcclxuICAgICAgICBmaWx0ZXJUZXJtOiAnJyxcclxuICAgIH0pO1xyXG4gICAgcHJpdmF0ZSByZWZyZXNoQWN0aXZlR3JvdXBNZW1iZXJzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8dm9pZD4odW5kZWZpbmVkKTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIGRhdGFTZXJ2aWNlOiBEYXRhU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIG5vdGlmaWNhdGlvblNlcnZpY2U6IE5vdGlmaWNhdGlvblNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IE1vZGFsU2VydmljZSxcclxuICAgICAgICBwdWJsaWMgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICApIHt9XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5ncm91cHMkID0gdGhpcy5kYXRhU2VydmljZS5jdXN0b21lclxyXG4gICAgICAgICAgICAuZ2V0Q3VzdG9tZXJHcm91cExpc3QoKVxyXG4gICAgICAgICAgICAubWFwU3RyZWFtKGRhdGEgPT4gZGF0YS5jdXN0b21lckdyb3Vwcy5pdGVtcyk7XHJcbiAgICAgICAgY29uc3QgYWN0aXZlR3JvdXBJZCQgPSB0aGlzLnJvdXRlLnBhcmFtTWFwLnBpcGUoXHJcbiAgICAgICAgICAgIG1hcChwbSA9PiBwbS5nZXQoJ2NvbnRlbnRzJykpLFxyXG4gICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxyXG4gICAgICAgICAgICB0YXAoKCkgPT4gKHRoaXMuc2VsZWN0ZWRDdXN0b21lcklkcyA9IFtdKSksXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLmxpc3RJc0VtcHR5JCA9IHRoaXMuZ3JvdXBzJC5waXBlKG1hcChncm91cHMgPT4gZ3JvdXBzLmxlbmd0aCA9PT0gMCkpO1xyXG4gICAgICAgIHRoaXMuYWN0aXZlR3JvdXAkID0gY29tYmluZUxhdGVzdCh0aGlzLmdyb3VwcyQsIGFjdGl2ZUdyb3VwSWQkKS5waXBlKFxyXG4gICAgICAgICAgICBtYXAoKFtncm91cHMsIGFjdGl2ZUdyb3VwSWRdKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoYWN0aXZlR3JvdXBJZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBncm91cHMuZmluZChnID0+IGcuaWQgPT09IGFjdGl2ZUdyb3VwSWQpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICApO1xyXG4gICAgICAgIGNvbnN0IG1lbWJlcnNSZXN1bHQkID0gY29tYmluZUxhdGVzdChcclxuICAgICAgICAgICAgdGhpcy5hY3RpdmVHcm91cCQsXHJcbiAgICAgICAgICAgIHRoaXMuZmV0Y2hHcm91cE1lbWJlcnMkLFxyXG4gICAgICAgICAgICB0aGlzLnJlZnJlc2hBY3RpdmVHcm91cE1lbWJlcnMkLFxyXG4gICAgICAgICkucGlwZShcclxuICAgICAgICAgICAgc3dpdGNoTWFwKChbYWN0aXZlR3JvdXAsIHsgc2tpcCwgdGFrZSwgZmlsdGVyVGVybSB9XSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGFjdGl2ZUdyb3VwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVNlcnZpY2UuY3VzdG9tZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgLmdldEN1c3RvbWVyR3JvdXBXaXRoQ3VzdG9tZXJzKGFjdGl2ZUdyb3VwLmlkLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBza2lwLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFrZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcjoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVtYWlsQWRkcmVzczoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWluczogZmlsdGVyVGVybSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgLm1hcFN0cmVhbShyZXMgPT4gcmVzLmN1c3RvbWVyR3JvdXA/LmN1c3RvbWVycyk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvZih1bmRlZmluZWQpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICB0aGlzLm1lbWJlcnMkID0gbWVtYmVyc1Jlc3VsdCQucGlwZShtYXAocmVzID0+IHJlcz8uaXRlbXMgPz8gW10pKTtcclxuICAgICAgICB0aGlzLm1lbWJlcnNUb3RhbCQgPSBtZW1iZXJzUmVzdWx0JC5waXBlKG1hcChyZXMgPT4gcmVzPy50b3RhbEl0ZW1zID8/IDApKTtcclxuICAgIH1cclxuXHJcbiAgICBjcmVhdGUoKSB7XHJcbiAgICAgICAgdGhpcy5tb2RhbFNlcnZpY2VcclxuICAgICAgICAgICAgLmZyb21Db21wb25lbnQoQ3VzdG9tZXJHcm91cERldGFpbERpYWxvZ0NvbXBvbmVudCwgeyBsb2NhbHM6IHsgZ3JvdXA6IHsgbmFtZTogJycgfSB9IH0pXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKHJlc3VsdCA9PlxyXG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IHRoaXMuZGF0YVNlcnZpY2UuY3VzdG9tZXIuY3JlYXRlQ3VzdG9tZXJHcm91cCh7IC4uLnJlc3VsdCwgY3VzdG9tZXJJZHM6IFtdIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogRU1QVFksXHJcbiAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAgICAgLy8gcmVmcmVzaCBsaXN0XHJcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5kYXRhU2VydmljZS5jdXN0b21lci5nZXRDdXN0b21lckdyb3VwTGlzdCgpLnNpbmdsZSQpLFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgICAgICAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLnN1Y2Nlc3MoXygnY29tbW9uLm5vdGlmeS1jcmVhdGUtc3VjY2VzcycpLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudGl0eTogJ0N1c3RvbWVyR3JvdXAnLFxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGVyciA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLmVycm9yKF8oJ2NvbW1vbi5ub3RpZnktY3JlYXRlLWVycm9yJyksIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZW50aXR5OiAnQ3VzdG9tZXJHcm91cCcsXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGRlbGV0ZShncm91cElkOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLm1vZGFsU2VydmljZVxyXG4gICAgICAgICAgICAuZGlhbG9nKHtcclxuICAgICAgICAgICAgICAgIHRpdGxlOiBfKCdjdXN0b21lci5jb25maXJtLWRlbGV0ZS1jdXN0b21lci1ncm91cCcpLFxyXG4gICAgICAgICAgICAgICAgYnV0dG9uczogW1xyXG4gICAgICAgICAgICAgICAgICAgIHsgdHlwZTogJ3NlY29uZGFyeScsIGxhYmVsOiBfKCdjb21tb24uY2FuY2VsJykgfSxcclxuICAgICAgICAgICAgICAgICAgICB7IHR5cGU6ICdkYW5nZXInLCBsYWJlbDogXygnY29tbW9uLmRlbGV0ZScpLCByZXR1cm5WYWx1ZTogdHJ1ZSB9LFxyXG4gICAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAocmVzcG9uc2UgPT5cclxuICAgICAgICAgICAgICAgICAgICByZXNwb25zZSA/IHRoaXMuZGF0YVNlcnZpY2UuY3VzdG9tZXIuZGVsZXRlQ3VzdG9tZXJHcm91cChncm91cElkKSA6IEVNUFRZLFxyXG4gICAgICAgICAgICAgICAgKSxcclxuXHJcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAocmVzdWx0ID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0LmRlbGV0ZUN1c3RvbWVyR3JvdXAucmVzdWx0ID09PSBEZWxldGlvblJlc3VsdC5ERUxFVEVEKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlZnJlc2ggbGlzdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5kYXRhU2VydmljZS5jdXN0b21lclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmdldEN1c3RvbWVyR3JvdXBMaXN0KClcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5tYXBTaW5nbGUoKCkgPT4gKHsgZXJyb3JNZXNzYWdlOiBmYWxzZSB9KSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mKHsgZXJyb3JNZXNzYWdlOiByZXN1bHQuZGVsZXRlQ3VzdG9tZXJHcm91cC5tZXNzYWdlIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgICAgICByZXN1bHQgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgcmVzdWx0LmVycm9yTWVzc2FnZSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLmVycm9yKHJlc3VsdC5lcnJvck1lc3NhZ2UpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5zdWNjZXNzKF8oJ2NvbW1vbi5ub3RpZnktZGVsZXRlLXN1Y2Nlc3MnKSwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW50aXR5OiAnQ3VzdG9tZXJHcm91cCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBlcnIgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5lcnJvcihfKCdjb21tb24ubm90aWZ5LWRlbGV0ZS1lcnJvcicpLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudGl0eTogJ0N1c3RvbWVyR3JvdXAnLFxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICB1cGRhdGUoZ3JvdXA6IEdldEN1c3RvbWVyR3JvdXBzLkl0ZW1zKSB7XHJcbiAgICAgICAgdGhpcy5tb2RhbFNlcnZpY2VcclxuICAgICAgICAgICAgLmZyb21Db21wb25lbnQoQ3VzdG9tZXJHcm91cERldGFpbERpYWxvZ0NvbXBvbmVudCwgeyBsb2NhbHM6IHsgZ3JvdXAgfSB9KVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcChyZXN1bHQgPT5cclxuICAgICAgICAgICAgICAgICAgICByZXN1bHRcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyB0aGlzLmRhdGFTZXJ2aWNlLmN1c3RvbWVyLnVwZGF0ZUN1c3RvbWVyR3JvdXAoeyBpZDogZ3JvdXAuaWQsIC4uLnJlc3VsdCB9KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IEVNUFRZLFxyXG4gICAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5zdWNjZXNzKF8oJ2NvbW1vbi5ub3RpZnktdXBkYXRlLXN1Y2Nlc3MnKSwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBlbnRpdHk6ICdDdXN0b21lckdyb3VwJyxcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBlcnIgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5lcnJvcihfKCdjb21tb24ubm90aWZ5LXVwZGF0ZS1lcnJvcicpLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudGl0eTogJ0N1c3RvbWVyR3JvdXAnLFxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBjbG9zZU1lbWJlcnMoKSB7XHJcbiAgICAgICAgY29uc3QgcGFyYW1zID0geyAuLi50aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtcyB9O1xyXG4gICAgICAgIGRlbGV0ZSBwYXJhbXMuY29udGVudHM7XHJcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycuLycsIHBhcmFtc10sIHsgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSwgcXVlcnlQYXJhbXNIYW5kbGluZzogJ3ByZXNlcnZlJyB9KTtcclxuICAgIH1cclxuXHJcbiAgICBhZGRUb0dyb3VwKGdyb3VwOiBHZXRDdXN0b21lckdyb3VwV2l0aEN1c3RvbWVycy5DdXN0b21lckdyb3VwKSB7XHJcbiAgICAgICAgdGhpcy5tb2RhbFNlcnZpY2VcclxuICAgICAgICAgICAgLmZyb21Db21wb25lbnQoQWRkQ3VzdG9tZXJUb0dyb3VwRGlhbG9nQ29tcG9uZW50LCB7XHJcbiAgICAgICAgICAgICAgICBsb2NhbHM6IHtcclxuICAgICAgICAgICAgICAgICAgICBncm91cCxcclxuICAgICAgICAgICAgICAgICAgICByb3V0ZTogdGhpcy5yb3V0ZSxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBzaXplOiAnbWQnLFxyXG4gICAgICAgICAgICAgICAgdmVydGljYWxBbGlnbjogJ3RvcCcsXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKGN1c3RvbWVySWRzID0+XHJcbiAgICAgICAgICAgICAgICAgICAgY3VzdG9tZXJJZHNcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyB0aGlzLmRhdGFTZXJ2aWNlLmN1c3RvbWVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5hZGRDdXN0b21lcnNUb0dyb3VwKGdyb3VwLmlkLCBjdXN0b21lcklkcylcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnBpcGUobWFwVG8oY3VzdG9tZXJJZHMpKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IEVNUFRZLFxyXG4gICAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICAgICAgICAgIG5leHQ6IHJlc3VsdCA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLnN1Y2Nlc3MoXyhgY3VzdG9tZXIuYWRkLWN1c3RvbWVycy10by1ncm91cC1zdWNjZXNzYCksIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY3VzdG9tZXJDb3VudDogcmVzdWx0Lmxlbmd0aCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXBOYW1lOiBncm91cC5uYW1lLFxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVmcmVzaEFjdGl2ZUdyb3VwTWVtYmVycyQubmV4dCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDdXN0b21lcklkcyA9IFtdO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVtb3ZlRnJvbUdyb3VwKGdyb3VwOiBHZXRab25lcy5ab25lcywgY3VzdG9tZXJJZHM6IHN0cmluZ1tdKSB7XHJcbiAgICAgICAgdGhpcy5kYXRhU2VydmljZS5jdXN0b21lci5yZW1vdmVDdXN0b21lcnNGcm9tR3JvdXAoZ3JvdXAuaWQsIGN1c3RvbWVySWRzKS5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgICBjb21wbGV0ZTogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLnN1Y2Nlc3MoXyhgY3VzdG9tZXIucmVtb3ZlLWN1c3RvbWVycy1mcm9tLWdyb3VwLXN1Y2Nlc3NgKSwge1xyXG4gICAgICAgICAgICAgICAgICAgIGN1c3RvbWVyQ291bnQ6IGN1c3RvbWVySWRzLmxlbmd0aCxcclxuICAgICAgICAgICAgICAgICAgICBncm91cE5hbWU6IGdyb3VwLm5hbWUsXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIHRoaXMucmVmcmVzaEFjdGl2ZUdyb3VwTWVtYmVycyQubmV4dCgpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEN1c3RvbWVySWRzID0gW107XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbn1cclxuIl19
197
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tZXItZ3JvdXAtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2N1c3RvbWVyL3NyYy9jb21wb25lbnRzL2N1c3RvbWVyLWdyb3VwLWxpc3QvY3VzdG9tZXItZ3JvdXAtbGlzdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3RFLE9BQU8sRUFDSCxpQkFBaUIsRUFDakIsV0FBVyxFQUNYLGNBQWMsRUFNZCxZQUFZLEVBQ1osbUJBQW1CLEdBQ3RCLE1BQU0sd0JBQXdCLENBQUM7QUFFaEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3RSxPQUFPLEVBQ0gsWUFBWSxFQUNaLG9CQUFvQixFQUNwQixNQUFNLEVBQ04sR0FBRyxFQUNILEtBQUssRUFDTCxTQUFTLEVBQ1QsU0FBUyxFQUNULEdBQUcsR0FDTixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLHdFQUF3RSxDQUFDO0FBQzNILE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLHdFQUF3RSxDQUFDO0FBUzVILE1BQU0sT0FBTywwQkFDVCxTQUFRLGlCQUdQO0lBaUJELFlBQ1ksV0FBd0IsRUFDeEIsbUJBQXdDLEVBQ3hDLFlBQTBCLEVBQzNCLEtBQXFCLEVBQ2xCLE1BQWM7UUFFeEIsS0FBSyxDQUFDLE1BQU0sRUFBRSxL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LENBQUMsRUFBRTtvQkFDaEYsYUFBYSxFQUFFLFdBQVcsQ0FBQyxNQUFNO29CQUNqQyxTQUFTLEVBQUUsS0FBSyxDQUFDLElBQUk7aUJBQ3hCLENBQUMsQ0FBQztnQkFDSCxJQUFJLENBQUMsMEJBQTBCLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ3ZDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxFQUFFLENBQUM7WUFDbEMsQ0FBQztTQUNKLENBQUMsQ0FBQztJQUNQLENBQUM7OztZQW5QSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLHlCQUF5QjtnQkFDbkMsbXNOQUFtRDtnQkFFbkQsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07O2FBQ2xEOzs7WUFoQ0csV0FBVztZQVFYLG1CQUFtQjtZQURuQixZQUFZO1lBWFAsY0FBYztZQUFFLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBtYXJrZXIgYXMgXyB9IGZyb20gJ0BiaWVzYmplcmcvbmd4LXRyYW5zbGF0ZS1leHRyYWN0LW1hcmtlcic7XHJcbmltcG9ydCB7XHJcbiAgICBCYXNlTGlzdENvbXBvbmVudCxcclxuICAgIERhdGFTZXJ2aWNlLFxyXG4gICAgRGVsZXRpb25SZXN1bHQsXHJcbiAgICBHZXRDdXN0b21lckdyb3VwcyxcclxuICAgIEdldEN1c3RvbWVyR3JvdXBzUXVlcnksXHJcbiAgICBHZXRDdXN0b21lckdyb3VwV2l0aEN1c3RvbWVycyxcclxuICAgIEdldFpvbmVzLFxyXG4gICAgTG9naWNhbE9wZXJhdG9yLFxyXG4gICAgTW9kYWxTZXJ2aWNlLFxyXG4gICAgTm90aWZpY2F0aW9uU2VydmljZSxcclxufSBmcm9tICdAdmVuZHVyZS9hZG1pbi11aS9jb3JlJztcclxuaW1wb3J0IHsgU29ydE9yZGVyIH0gZnJvbSAnQHZlbmR1cmUvY29tbW9uL2xpYi9nZW5lcmF0ZWQtc2hvcC10eXBlcyc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgRU1QVFksIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7XHJcbiAgICBkZWJvdW5jZVRpbWUsXHJcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcclxuICAgIGZpbHRlcixcclxuICAgIG1hcCxcclxuICAgIG1hcFRvLFxyXG4gICAgc3dpdGNoTWFwLFxyXG4gICAgdGFrZVVudGlsLFxyXG4gICAgdGFwLFxyXG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7IEFkZEN1c3RvbWVyVG9Hcm91cERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uL2FkZC1jdXN0b21lci10by1ncm91cC1kaWFsb2cvYWRkLWN1c3RvbWVyLXRvLWdyb3VwLWRpYWxvZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDdXN0b21lckdyb3VwRGV0YWlsRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vY3VzdG9tZXItZ3JvdXAtZGV0YWlsLWRpYWxvZy9jdXN0b21lci1ncm91cC1kZXRhaWwtZGlhbG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEN1c3RvbWVyR3JvdXBNZW1iZXJGZXRjaFBhcmFtcyB9IGZyb20gJy4uL2N1c3RvbWVyLWdyb3VwLW1lbWJlci1saXN0L2N1c3RvbWVyLWdyb3VwLW1lbWJlci1saXN0LmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAndmRyLWN1c3RvbWVyLWdyb3VwLWxpc3QnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2N1c3RvbWVyLWdyb3VwLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vY3VzdG9tZXItZ3JvdXAtbGlzdC5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDdXN0b21lckdyb3VwTGlzdENvbXBvbmVudFxyXG4gICAgZXh0ZW5kcyBCYXNlTGlzdENvbXBvbmVudDxcclxuICAgICAgICBHZXRDdXN0b21lckdyb3Vwc1F1ZXJ5LFxyXG4gICAgICAgIEdldEN1c3RvbWVyR3JvdXBzUXVlcnlbJ2N1c3RvbWVyR3JvdXBzJ11bJ2l0ZW1zJ11bbnVtYmVyXVxyXG4gICAgPlxyXG4gICAgaW1wbGVtZW50cyBPbkluaXRcclxue1xyXG4gICAgc2VhcmNoVGVybSA9IG5ldyBGb3JtQ29udHJvbCgnJyk7XHJcbiAgICBhY3RpdmVHcm91cCQ6IE9ic2VydmFibGU8R2V0Q3VzdG9tZXJHcm91cHMuSXRlbXMgfCB1bmRlZmluZWQ+O1xyXG4gICAgYWN0aXZlR3JvdXBJZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgbGlzdElzRW1wdHkkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xyXG4gICAgbWVtYmVycyQ6IE9ic2VydmFibGU8R2V0Q3VzdG9tZXJHcm91cFdpdGhDdXN0b21lcnMuSXRlbXNbXT47XHJcbiAgICBtZW1iZXJzVG90YWwkOiBPYnNlcnZhYmxlPG51bWJlcj47XHJcbiAgICBzZWxlY3RlZEN1c3RvbWVySWRzOiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgZmV0Y2hHcm91cE1lbWJlcnMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxDdXN0b21lckdyb3VwTWVtYmVyRmV0Y2hQYXJhbXM+KHtcclxuICAgICAgICBza2lwOiAwLFxyXG4gICAgICAgIHRha2U6IDAsXHJcbiAgICAgICAgZmlsdGVyVGVybTogJycsXHJcbiAgICB9KTtcclxuICAgIHByaXZhdGUgcmVmcmVzaEFjdGl2ZUdyb3VwTWVtYmVycyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHZvaWQ+KHVuZGVmaW5lZCk7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSBkYXRhU2VydmljZTogRGF0YVNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBub3RpZmljYXRpb25TZXJ2aWNlOiBOb3RpZmljYXRpb25TZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBNb2RhbFNlcnZpY2UsXHJcbiAgICAgICAgcHVibGljIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgICAgICBwcm90ZWN0ZWQgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICApIHtcclxuICAgICAgICBzdXBlcihyb3V0ZXIsIHJvdXRlKTtcclxuICAgICAgICBzdXBlci5zZXRRdWVyeUZuKFxyXG4gICAgICAgICAgICAoLi4uYXJnczogYW55W10pID0+XHJcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGFTZXJ2aWNlLmN1c3RvbWVyLmdldEN1c3RvbWVyR3JvdXBMaXN0KC4uLmFyZ3MpLnJlZmV0Y2hPbkNoYW5uZWxDaGFuZ2UoKSxcclxuICAgICAgICAgICAgZGF0YSA9PiBkYXRhLmN1c3RvbWVyR3JvdXBzLFxyXG4gICAgICAgICAgICAoc2tpcCwgdGFrZSkgPT4gKHtcclxuICAgICAgICAgICAgICAgIG9wdGlvbnM6IHtcclxuICAgICAgICAgICAgICAgICAgICBza2lwLFxyXG4gICAgICAgICAgICAgICAgICAgIHRha2UsXHJcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IHsgY29udGFpbnM6IHRoaXMuc2VhcmNoVGVybS52YWx1ZSB9LFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICAgICAgdGhpcy5zZWFyY2hUZXJtLnZhbHVlQ2hhbmdlc1xyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIGZpbHRlcih2YWx1ZSA9PiAyIDwgdmFsdWUubGVuZ3RoIHx8IHZhbHVlLmxlbmd0aCA9PT0gMCksXHJcbiAgICAgICAgICAgICAgICBkZWJvdW5jZVRpbWUoMjUwKSxcclxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMucmVmcmVzaCgpKTtcclxuICAgICAgICBjb25zdCBhY3RpdmVHcm91cElkJCA9IHRoaXMucm91dGUucGFyYW1NYXAucGlwZShcclxuICAgICAgICAgICAgbWFwKHBtID0+IHBtLmdldCgnY29udGVudHMnKSksXHJcbiAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXHJcbiAgICAgICAgICAgIHRhcCgoKSA9PiAodGhpcy5zZWxlY3RlZEN1c3RvbWVySWRzID0gW10pKSxcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMubGlzdElzRW1wdHkkID0gdGhpcy5pdGVtcyQucGlwZShtYXAoZ3JvdXBzID0+IGdyb3Vwcy5sZW5ndGggPT09IDApKTtcclxuICAgICAgICB0aGlzLmFjdGl2ZUdyb3VwJCA9IGNvbWJpbmVMYXRlc3QodGhpcy5pdGVtcyQsIGFjdGl2ZUdyb3VwSWQkKS5waXBlKFxyXG4gICAgICAgICAgICBtYXAoKFtncm91cHMsIGFjdGl2ZUdyb3VwSWRdKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoYWN0aXZlR3JvdXBJZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBncm91cHMuZmluZChnID0+IGcuaWQgPT09IGFjdGl2ZUdyb3VwSWQpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgdGFwKHZhbCA9PiAodGhpcy5hY3RpdmVHcm91cElkID0gdmFsPy5pZCkpLFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgY29uc3QgbWVtYmVyc1Jlc3VsdCQgPSBjb21iaW5lTGF0ZXN0KFxyXG4gICAgICAgICAgICB0aGlzLmFjdGl2ZUdyb3VwJCxcclxuICAgICAgICAgICAgdGhpcy5mZXRjaEdyb3VwTWVtYmVycyQsXHJcbiAgICAgICAgICAgIHRoaXMucmVmcmVzaEFjdGl2ZUdyb3VwTWVtYmVycyQsXHJcbiAgICAgICAgKS5waXBlKFxyXG4gICAgICAgICAgICBzd2l0Y2hNYXAoKFthY3RpdmVHcm91cCwgeyBza2lwLCB0YWtlLCBmaWx0ZXJUZXJtIH1dKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoYWN0aXZlR3JvdXApIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5kYXRhU2VydmljZS5jdXN0b21lclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAuZ2V0Q3VzdG9tZXJHcm91cFdpdGhDdXN0b21lcnMoYWN0aXZlR3JvdXAuaWQsIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNraXAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWtlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW1haWxBZGRyZXNzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5zOiBmaWx0ZXJUZXJtLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAubWFwU3RyZWFtKHJlcyA9PiByZXMuY3VzdG9tZXJHcm91cD8uY3VzdG9tZXJzKTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIHRoaXMubWVtYmVycyQgPSBtZW1iZXJzUmVzdWx0JC5waXBlKG1hcChyZXMgPT4gcmVzPy5pdGVtcyA/PyBbXSkpO1xyXG4gICAgICAgIHRoaXMubWVtYmVyc1RvdGFsJCA9IG1lbWJlcnNSZXN1bHQkLnBpcGUobWFwKHJlcyA9PiByZXM/LnRvdGFsSXRlbXMgPz8gMCkpO1xyXG4gICAgfVxyXG5cclxuICAgIGNyZWF0ZSgpIHtcclxuICAgICAgICB0aGlzLm1vZGFsU2VydmljZVxyXG4gICAgICAgICAgICAuZnJvbUNvbXBvbmVudChDdXN0b21lckdyb3VwRGV0YWlsRGlhbG9nQ29tcG9uZW50LCB7IGxvY2FsczogeyBncm91cDogeyBuYW1lOiAnJyB9IH0gfSlcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAocmVzdWx0ID0+XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gdGhpcy5kYXRhU2VydmljZS5jdXN0b21lci5jcmVhdGVDdXN0b21lckdyb3VwKHsgLi4ucmVzdWx0LCBjdXN0b21lcklkczogW10gfSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgOiBFTVBUWSxcclxuICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgICAvLyByZWZyZXNoIGxpc3RcclxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLmRhdGFTZXJ2aWNlLmN1c3RvbWVyLmdldEN1c3RvbWVyR3JvdXBMaXN0KCkuc2luZ2xlJCksXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAgICAgICAgICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2Uuc3VjY2VzcyhfKCdjb21tb24ubm90aWZ5LWNyZWF0ZS1zdWNjZXNzJyksIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZW50aXR5OiAnQ3VzdG9tZXJHcm91cCcsXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgZXJyID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2UuZXJyb3IoXygnY29tbW9uLm5vdGlmeS1jcmVhdGUtZXJyb3InKSwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBlbnRpdHk6ICdDdXN0b21lckdyb3VwJyxcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgZGVsZXRlKGdyb3VwSWQ6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMubW9kYWxTZXJ2aWNlXHJcbiAgICAgICAgICAgIC5kaWFsb2coe1xyXG4gICAgICAgICAgICAgICAgdGl0bGU6IF8oJ2N1c3RvbWVyLmNvbmZpcm0tZGVsZXRlLWN1c3RvbWVyLWdyb3VwJyksXHJcbiAgICAgICAgICAgICAgICBidXR0b25zOiBbXHJcbiAgICAgICAgICAgICAgICAgICAgeyB0eXBlOiAnc2Vjb25kYXJ5JywgbGFiZWw6IF8oJ2NvbW1vbi5jYW5jZWwnKSB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHsgdHlwZTogJ2RhbmdlcicsIGxhYmVsOiBfKCdjb21tb24uZGVsZXRlJyksIHJldHVyblZhbHVlOiB0cnVlIH0sXHJcbiAgICAgICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcChyZXNwb25zZSA9PlxyXG4gICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlID8gdGhpcy5kYXRhU2VydmljZS5jdXN0b21lci5kZWxldGVDdXN0b21lckdyb3VwKGdyb3VwSWQpIDogRU1QVFksXHJcbiAgICAgICAgICAgICAgICApLFxyXG5cclxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcChyZXN1bHQgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQuZGVsZXRlQ3VzdG9tZXJHcm91cC5yZXN1bHQgPT09IERlbGV0aW9uUmVzdWx0LkRFTEVURUQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVmcmVzaCBsaXN0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmRhdGFTZXJ2aWNlLmN1c3RvbWVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZ2V0Q3VzdG9tZXJHcm91cExpc3QoKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLm1hcFNpbmdsZSgoKSA9PiAoeyBlcnJvck1lc3NhZ2U6IGZhbHNlIH0pKTtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2YoeyBlcnJvck1lc3NhZ2U6IHJlc3VsdC5kZWxldGVDdXN0b21lckdyb3VwLm1lc3NhZ2UgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAgICAgICAgIHJlc3VsdCA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiByZXN1bHQuZXJyb3JNZXNzYWdlID09PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2UuZXJyb3IocmVzdWx0LmVycm9yTWVzc2FnZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLnN1Y2Nlc3MoXygnY29tbW9uLm5vdGlmeS1kZWxldGUtc3VjY2VzcycpLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnRpdHk6ICdDdXN0b21lckdyb3VwJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGVyciA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLmVycm9yKF8oJ2NvbW1vbi5ub3RpZnktZGVsZXRlLWVycm9yJyksIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZW50aXR5OiAnQ3VzdG9tZXJHcm91cCcsXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZShncm91cDogR2V0Q3VzdG9tZXJHcm91cHMuSXRlbXMpIHtcclxuICAgICAgICB0aGlzLm1vZGFsU2VydmljZVxyXG4gICAgICAgICAgICAuZnJvbUNvbXBvbmVudChDdXN0b21lckdyb3VwRGV0YWlsRGlhbG9nQ29tcG9uZW50LCB7IGxvY2FsczogeyBncm91cCB9IH0pXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKHJlc3VsdCA9PlxyXG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IHRoaXMuZGF0YVNlcnZpY2UuY3VzdG9tZXIudXBkYXRlQ3VzdG9tZXJHcm91cCh7IGlkOiBncm91cC5pZCwgLi4ucmVzdWx0IH0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogRU1QVFksXHJcbiAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgICAgICAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLnN1Y2Nlc3MoXygnY29tbW9uLm5vdGlmeS11cGRhdGUtc3VjY2VzcycpLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudGl0eTogJ0N1c3RvbWVyR3JvdXAnLFxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGVyciA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLmVycm9yKF8oJ2NvbW1vbi5ub3RpZnktdXBkYXRlLWVycm9yJyksIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZW50aXR5OiAnQ3VzdG9tZXJHcm91cCcsXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGNsb3NlTWVtYmVycygpIHtcclxuICAgICAgICBjb25zdCBwYXJhbXMgPSB7IC4uLnRoaXMucm91dGUuc25hcHNob3QucGFyYW1zIH07XHJcbiAgICAgICAgZGVsZXRlIHBhcmFtcy5jb250ZW50cztcclxuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy4vJywgcGFyYW1zXSwgeyByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlLCBxdWVyeVBhcmFtc0hhbmRsaW5nOiAncHJlc2VydmUnIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGFkZFRvR3JvdXAoZ3JvdXA6IEdldEN1c3RvbWVyR3JvdXBXaXRoQ3VzdG9tZXJzLkN1c3RvbWVyR3JvdXApIHtcclxuICAgICAgICB0aGlzLm1vZGFsU2VydmljZVxyXG4gICAgICAgICAgICAuZnJvbUNvbXBvbmVudChBZGRDdXN0b21lclRvR3JvdXBEaWFsb2dDb21wb25lbnQsIHtcclxuICAgICAgICAgICAgICAgIGxvY2Fsczoge1xyXG4gICAgICAgICAgICAgICAgICAgIGdyb3VwLFxyXG4gICAgICAgICAgICAgICAgICAgIHJvdXRlOiB0aGlzLnJvdXRlLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIHNpemU6ICdtZCcsXHJcbiAgICAgICAgICAgICAgICB2ZXJ0aWNhbEFsaWduOiAndG9wJyxcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoY3VzdG9tZXJJZHMgPT5cclxuICAgICAgICAgICAgICAgICAgICBjdXN0b21lcklkc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IHRoaXMuZGF0YVNlcnZpY2UuY3VzdG9tZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmFkZEN1c3RvbWVyc1RvR3JvdXAoZ3JvdXAuaWQsIGN1c3RvbWVySWRzKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAucGlwZShtYXBUbyhjdXN0b21lcklkcykpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogRU1QVFksXHJcbiAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgICAgICAgbmV4dDogcmVzdWx0ID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2Uuc3VjY2VzcyhfKGBjdXN0b21lci5hZGQtY3VzdG9tZXJzLXRvLWdyb3VwLXN1Y2Nlc3NgKSwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjdXN0b21lckNvdW50OiByZXN1bHQubGVuZ3RoLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBncm91cE5hbWU6IGdyb3VwLm5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWZyZXNoQWN0aXZlR3JvdXBNZW1iZXJzJC5uZXh0KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEN1c3RvbWVySWRzID0gW107XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICByZW1vdmVGcm9tR3JvdXAoZ3JvdXA6IEdldFpvbmVzLlpvbmVzLCBjdXN0b21lcklkczogc3RyaW5nW10pIHtcclxuICAgICAgICB0aGlzLmRhdGFTZXJ2aWNlLmN1c3RvbWVyLnJlbW92ZUN1c3RvbWVyc0Zyb21Hcm91cChncm91cC5pZCwgY3VzdG9tZXJJZHMpLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICAgIGNvbXBsZXRlOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2Uuc3VjY2VzcyhfKGBjdXN0b21lci5yZW1vdmUtY3VzdG9tZXJzLWZyb20tZ3JvdXAtc3VjY2Vzc2ApLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgY3VzdG9tZXJDb3VudDogY3VzdG9tZXJJZHMubGVuZ3RoLFxyXG4gICAgICAgICAgICAgICAgICAgIGdyb3VwTmFtZTogZ3JvdXAubmFtZSxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yZWZyZXNoQWN0aXZlR3JvdXBNZW1iZXJzJC5uZXh0KCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkQ3VzdG9tZXJJZHMgPSBbXTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -34,7 +34,8 @@ export class FulfillOrderDialogComponent {
34
34
  return effectiveTracInventory ? Math.min(unfulfilledCount, stockOnHand) : unfulfilledCount;
35
35
  }
36
36
  getUnfulfilledCount(line) {
37
- const fulfilled = line.items.reduce((sum, item) => sum + (item.fulfillment ? 1 : 0), 0);
37
+ var _a, _b;
38
+ const fulfilled = (_b = (_a = line.fulfillments) === null || _a === void 0 ? void 0 : _a.map(f => f.summary).flat().filter(row => row.orderLine.id === line.id).reduce((sum, row) => sum + row.quantity, 0)) !== null && _b !== void 0 ? _b : 0;
38
39
  return line.quantity - fulfilled;
39
40
  }
40
41
  canSubmit() {
@@ -68,4 +69,4 @@ FulfillOrderDialogComponent.ctorParameters = () => [
68
69
  { type: DataService },
69
70
  { type: ChangeDetectorRef }
70
71
  ];
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVsZmlsbC1vcmRlci1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9vcmRlci9zcmMvY29tcG9uZW50cy9mdWxmaWxsLW9yZGVyLWRpYWxvZy9mdWxmaWxsLW9yZGVyLWRpYWxvZy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUM5RixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUNILGdDQUFnQyxFQUdoQyxpQ0FBaUMsRUFDakMsV0FBVyxFQUdYLFVBQVUsRUFHViw0QkFBNEIsR0FDL0IsTUFBTSx3QkFBd0IsQ0FBQztBQVFoQyxNQUFNLE9BQU8sMkJBQTJCO0lBVXBDLFlBQW9CLFdBQXdCLEVBQVUsY0FBaUM7UUFBbkUsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFBVSxtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFOdkYsOEJBQXlCLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUM5QywwQkFBcUIsR0FBZ0UsRUFBRSxDQUFDO0lBS0UsQ0FBQztJQUUzRixRQUFRO1FBQ0osSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxjQUFjLEVBQUUsRUFBRSxFQUFFO1lBQ25GLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUU7Z0JBQ2xFLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsY0FBYyxDQUFDLGNBQWMsQ0FBQyxDQUFDO2dCQUNuRix1Q0FDTyxNQUFNLEtBQ1QsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxZQUFZLEVBQUUsR0FBRyxFQUFFLFlBQVksRUFBRSxJQUNoRDtZQUNOLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNQLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdkMsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWM7YUFDMUIsMkJBQTJCLEVBQUU7YUFDN0IsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDO2FBQzNDLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUNsQixJQUFJLENBQUMscUJBQXFCO2dCQUN0QixRQUFRLENBQUMsSUFBSSxDQUNULENBQUMsQ0FBQyxFQUFFLGVBQUMsT0FBQSxDQUFDLENBQUMsSUFBSSxNQUFLLE1BQUEsTUFBQSxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsMENBQUUsY0FBYywwQ0FBRSxzQkFBc0IsQ0FBQSxDQUFBLEVBQUEsQ0FDdEYsSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDckIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLGdDQUFnQyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1lBQ3ZGLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7WUFDbkUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN2QyxDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxJQUF1QixFQUFFLG9CQUE2QjtRQUN0RSxNQUFNLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7UUFDNUQsTUFBTSxzQkFBc0IsR0FDeEIsY0FBYyxLQUFLLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxjQUFjLEtBQUssVUFBVSxDQUFDLElBQUksQ0FBQztRQUV0RyxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4RCxPQUFPLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGdCQUFnQixFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQztJQUMvRixDQUFDO0lBRUQsbUJBQW1CLENBQUMsSUFBdUI7UUFDdkMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3hGLE9BQU8sSUFBSSxDQUFDLFFBQVEsR0FBRyxTQUFTLENBQUM7SUFDckMsQ0FBQztJQUVELFNBQVM7UUFDTCxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLE1BQU0sQ0FDL0QsQ0FBQyxLQUFLLEVBQUUsRUFBRSxZQUFZLEVBQUUsRUFBRSxFQUFFLENBQUMsS0FBSyxHQUFHLFlBQVksRUFDakQsQ0FBQyxDQUNKLENBQUM7UUFDRixNQUFNLFdBQVcsR0FDYixpQ0FBaUMsQ0FDN0IsSUFBSSxDQUFDLHFCQUFxQixFQUMxQixJQUFJLENBQUMseUJBQXlCLENBQUMsS0FBSyxDQUN2QyxJQUFJLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxLQUFLLENBQUM7UUFDOUMsT0FBTyxXQUFXLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQztJQUN6QyxDQUFDO0lBRUQsTUFBTTtRQUNGLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxZQUFZLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQy9GLFdBQVc7WUFDWCxRQUFRLEVBQUUsWUFBWTtTQUN6QixDQUFDLENBQUMsQ0FBQztRQUNKLElBQUksQ0FBQyxXQUFXLENBQUM7WUFDYixLQUFLO1lBQ0wsT0FBTyxFQUFFLDRCQUE0QixDQUNqQyxJQUFJLENBQUMsa0JBQWtCLEVBQ3ZCLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxLQUFLLENBQ3ZDO1NBQ0osQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELE1BQU07UUFDRixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDdkIsQ0FBQzs7O1lBdkZKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsMEJBQTBCO2dCQUNwQyxpOEZBQW9EO2dCQUVwRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTs7YUFDbEQ7OztZQWRHLFdBQVc7WUFQbUIsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHtcclxuICAgIGNvbmZpZ3VyYWJsZURlZmluaXRpb25Ub0luc3RhbmNlLFxyXG4gICAgQ29uZmlndXJhYmxlT3BlcmF0aW9uLFxyXG4gICAgQ29uZmlndXJhYmxlT3BlcmF0aW9uRGVmaW5pdGlvbixcclxuICAgIGNvbmZpZ3VyYWJsZU9wZXJhdGlvblZhbHVlSXNWYWxpZCxcclxuICAgIERhdGFTZXJ2aWNlLFxyXG4gICAgRGlhbG9nLFxyXG4gICAgRnVsZmlsbE9yZGVySW5wdXQsXHJcbiAgICBHbG9iYWxGbGFnLFxyXG4gICAgT3JkZXJEZXRhaWwsXHJcbiAgICBPcmRlckRldGFpbEZyYWdtZW50LFxyXG4gICAgdG9Db25maWd1cmFibGVPcGVyYXRpb25JbnB1dCxcclxufSBmcm9tICdAdmVuZHVyZS9hZG1pbi11aS9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICd2ZHItZnVsZmlsbC1vcmRlci1kaWFsb2cnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2Z1bGZpbGwtb3JkZXItZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2Z1bGZpbGwtb3JkZXItZGlhbG9nLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIEZ1bGZpbGxPcmRlckRpYWxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIERpYWxvZzxGdWxmaWxsT3JkZXJJbnB1dD4sIE9uSW5pdCB7XHJcbiAgICByZXNvbHZlV2l0aDogKHJlc3VsdD86IEZ1bGZpbGxPcmRlcklucHV0KSA9PiB2b2lkO1xyXG4gICAgZnVsZmlsbG1lbnRIYW5kbGVyRGVmOiBDb25maWd1cmFibGVPcGVyYXRpb25EZWZpbml0aW9uO1xyXG4gICAgZnVsZmlsbG1lbnRIYW5kbGVyOiBDb25maWd1cmFibGVPcGVyYXRpb247XHJcbiAgICBmdWxmaWxsbWVudEhhbmRsZXJDb250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XHJcbiAgICBmdWxmaWxsbWVudFF1YW50aXRpZXM6IHsgW2xpbmVJZDogc3RyaW5nXTogeyBmdWxmaWxsQ291bnQ6IG51bWJlcjsgbWF4OiBudW1iZXIgfSB9ID0ge307XHJcblxyXG4gICAgLy8gUHJvdmlkZWQgYnkgbW9kYWxTZXJ2aWNlLmZyb21Db21wb25lbnQoKSBjYWxsXHJcbiAgICBvcmRlcjogT3JkZXJEZXRhaWxGcmFnbWVudDtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRhdGFTZXJ2aWNlOiBEYXRhU2VydmljZSwgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5kYXRhU2VydmljZS5zZXR0aW5ncy5nZXRHbG9iYWxTZXR0aW5ncygpLnNpbmdsZSQuc3Vic2NyaWJlKCh7IGdsb2JhbFNldHRpbmdzIH0pID0+IHtcclxuICAgICAgICAgICAgdGhpcy5mdWxmaWxsbWVudFF1YW50aXRpZXMgPSB0aGlzLm9yZGVyLmxpbmVzLnJlZHVjZSgocmVzdWx0LCBsaW5lKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBmdWxmaWxsQ291bnQgPSB0aGlzLmdldEZ1bGZpbGxhYmxlQ291bnQobGluZSwgZ2xvYmFsU2V0dGluZ3MudHJhY2tJbnZlbnRvcnkpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgICAgICAuLi5yZXN1bHQsXHJcbiAgICAgICAgICAgICAgICAgICAgW2xpbmUuaWRdOiB7IGZ1bGZpbGxDb3VudCwgbWF4OiBmdWxmaWxsQ291bnQgfSxcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIH0sIHt9KTtcclxuICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5kYXRhU2VydmljZS5zaGlwcGluZ01ldGhvZFxyXG4gICAgICAgICAgICAuZ2V0U2hpcHBpbmdNZXRob2RPcGVyYXRpb25zKClcclxuICAgICAgICAgICAgLm1hcFNpbmdsZShkYXRhID0+IGRhdGEuZnVsZmlsbG1lbnRIYW5kbGVycylcclxuICAgICAgICAgICAgLnN1YnNjcmliZShoYW5kbGVycyA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmZ1bGZpbGxtZW50SGFuZGxlckRlZiA9XHJcbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlcnMuZmluZChcclxuICAgICAgICAgICAgICAgICAgICAgICAgaCA9PiBoLmNvZGUgPT09IHRoaXMub3JkZXIuc2hpcHBpbmdMaW5lc1swXT8uc2hpcHBpbmdNZXRob2Q/LmZ1bGZpbGxtZW50SGFuZGxlckNvZGUsXHJcbiAgICAgICAgICAgICAgICAgICAgKSB8fCBoYW5kbGVyc1swXTtcclxuICAgICAgICAgICAgICAgIHRoaXMuZnVsZmlsbG1lbnRIYW5kbGVyID0gY29uZmlndXJhYmxlRGVmaW5pdGlvblRvSW5zdGFuY2UodGhpcy5mdWxmaWxsbWVudEhhbmRsZXJEZWYpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5mdWxmaWxsbWVudEhhbmRsZXJDb250cm9sLnBhdGNoVmFsdWUodGhpcy5mdWxmaWxsbWVudEhhbmRsZXIpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0RnVsZmlsbGFibGVDb3VudChsaW5lOiBPcmRlckRldGFpbC5MaW5lcywgZ2xvYmFsVHJhY2tJbnZlbnRvcnk6IGJvb2xlYW4pOiBudW1iZXIge1xyXG4gICAgICAgIGNvbnN0IHsgdHJhY2tJbnZlbnRvcnksIHN0b2NrT25IYW5kIH0gPSBsaW5lLnByb2R1Y3RWYXJpYW50O1xyXG4gICAgICAgIGNvbnN0IGVmZmVjdGl2ZVRyYWNJbnZlbnRvcnkgPVxyXG4gICAgICAgICAgICB0cmFja0ludmVudG9yeSA9PT0gR2xvYmFsRmxhZy5JTkhFUklUID8gZ2xvYmFsVHJhY2tJbnZlbnRvcnkgOiB0cmFja0ludmVudG9yeSA9PT0gR2xvYmFsRmxhZy5UUlVFO1xyXG5cclxuICAgICAgICBjb25zdCB1bmZ1bGZpbGxlZENvdW50ID0gdGhpcy5nZXRVbmZ1bGZpbGxlZENvdW50KGxpbmUpO1xyXG4gICAgICAgIHJldHVybiBlZmZlY3RpdmVUcmFjSW52ZW50b3J5ID8gTWF0aC5taW4odW5mdWxmaWxsZWRDb3VudCwgc3RvY2tPbkhhbmQpIDogdW5mdWxmaWxsZWRDb3VudDtcclxuICAgIH1cclxuXHJcbiAgICBnZXRVbmZ1bGZpbGxlZENvdW50KGxpbmU6IE9yZGVyRGV0YWlsLkxpbmVzKTogbnVtYmVyIHtcclxuICAgICAgICBjb25zdCBmdWxmaWxsZWQgPSBsaW5lLml0ZW1zLnJlZHVjZSgoc3VtLCBpdGVtKSA9PiBzdW0gKyAoaXRlbS5mdWxmaWxsbWVudCA/IDEgOiAwKSwgMCk7XHJcbiAgICAgICAgcmV0dXJuIGxpbmUucXVhbnRpdHkgLSBmdWxmaWxsZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgY2FuU3VibWl0KCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGNvbnN0IHRvdGFsQ291bnQgPSBPYmplY3QudmFsdWVzKHRoaXMuZnVsZmlsbG1lbnRRdWFudGl0aWVzKS5yZWR1Y2UoXHJcbiAgICAgICAgICAgICh0b3RhbCwgeyBmdWxmaWxsQ291bnQgfSkgPT4gdG90YWwgKyBmdWxmaWxsQ291bnQsXHJcbiAgICAgICAgICAgIDAsXHJcbiAgICAgICAgKTtcclxuICAgICAgICBjb25zdCBmb3JtSXNWYWxpZCA9XHJcbiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZU9wZXJhdGlvblZhbHVlSXNWYWxpZChcclxuICAgICAgICAgICAgICAgIHRoaXMuZnVsZmlsbG1lbnRIYW5kbGVyRGVmLFxyXG4gICAgICAgICAgICAgICAgdGhpcy5mdWxmaWxsbWVudEhhbmRsZXJDb250cm9sLnZhbHVlLFxyXG4gICAgICAgICAgICApICYmIHRoaXMuZnVsZmlsbG1lbnRIYW5kbGVyQ29udHJvbC52YWxpZDtcclxuICAgICAgICByZXR1cm4gZm9ybUlzVmFsaWQgJiYgMCA8IHRvdGFsQ291bnQ7XHJcbiAgICB9XHJcblxyXG4gICAgc2VsZWN0KCkge1xyXG4gICAgICAgIGNvbnN0IGxpbmVzID0gT2JqZWN0LmVudHJpZXModGhpcy5mdWxmaWxsbWVudFF1YW50aXRpZXMpLm1hcCgoW29yZGVyTGluZUlkLCB7IGZ1bGZpbGxDb3VudCB9XSkgPT4gKHtcclxuICAgICAgICAgICAgb3JkZXJMaW5lSWQsXHJcbiAgICAgICAgICAgIHF1YW50aXR5OiBmdWxmaWxsQ291bnQsXHJcbiAgICAgICAgfSkpO1xyXG4gICAgICAgIHRoaXMucmVzb2x2ZVdpdGgoe1xyXG4gICAgICAgICAgICBsaW5lcyxcclxuICAgICAgICAgICAgaGFuZGxlcjogdG9Db25maWd1cmFibGVPcGVyYXRpb25JbnB1dChcclxuICAgICAgICAgICAgICAgIHRoaXMuZnVsZmlsbG1lbnRIYW5kbGVyLFxyXG4gICAgICAgICAgICAgICAgdGhpcy5mdWxmaWxsbWVudEhhbmRsZXJDb250cm9sLnZhbHVlLFxyXG4gICAgICAgICAgICApLFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGNhbmNlbCgpIHtcclxuICAgICAgICB0aGlzLnJlc29sdmVXaXRoKCk7XHJcbiAgICB9XHJcbn1cclxuIl19
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVsZmlsbC1vcmRlci1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9vcmRlci9zcmMvY29tcG9uZW50cy9mdWxmaWxsLW9yZGVyLWRpYWxvZy9mdWxmaWxsLW9yZGVyLWRpYWxvZy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUM5RixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUNILGdDQUFnQyxFQUdoQyxpQ0FBaUMsRUFDakMsV0FBVyxFQUdYLFVBQVUsRUFHViw0QkFBNEIsR0FDL0IsTUFBTSx3QkFBd0IsQ0FBQztBQVFoQyxNQUFNLE9BQU8sMkJBQTJCO0lBVXBDLFlBQW9CLFdBQXdCLEVBQVUsY0FBaUM7UUFBbkUsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFBVSxtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFOdkYsOEJBQXlCLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUM5QywwQkFBcUIsR0FBZ0UsRUFBRSxDQUFDO0lBS0UsQ0FBQztJQUUzRixRQUFRO1FBQ0osSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxjQUFjLEVBQUUsRUFBRSxFQUFFO1lBQ25GLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUU7Z0JBQ2xFLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsY0FBYyxDQUFDLGNBQWMsQ0FBQyxDQUFDO2dCQUNuRix1Q0FDTyxNQUFNLEtB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QUMsR0FBRyxVQUFVLENBQUM7SUFDekMsQ0FBQztJQUVELE1BQU07UUFDRixNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsWUFBWSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUMvRixXQUFXO1lBQ1gsUUFBUSxFQUFFLFlBQVk7U0FDekIsQ0FBQyxDQUFDLENBQUM7UUFDSixJQUFJLENBQUMsV0FBVyxDQUFDO1lBQ2IsS0FBSztZQUNMLE9BQU8sRUFBRSw0QkFBNEIsQ0FDakMsSUFBSSxDQUFDLGtCQUFrQixFQUN2QixJQUFJLENBQUMseUJBQXlCLENBQUMsS0FBSyxDQUN2QztTQUNKLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxNQUFNO1FBQ0YsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7OztZQTVGSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLDBCQUEwQjtnQkFDcEMsaThGQUFvRDtnQkFFcEQsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07O2FBQ2xEOzs7WUFkRyxXQUFXO1lBUG1CLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7XHJcbiAgICBjb25maWd1cmFibGVEZWZpbml0aW9uVG9JbnN0YW5jZSxcclxuICAgIENvbmZpZ3VyYWJsZU9wZXJhdGlvbixcclxuICAgIENvbmZpZ3VyYWJsZU9wZXJhdGlvbkRlZmluaXRpb24sXHJcbiAgICBjb25maWd1cmFibGVPcGVyYXRpb25WYWx1ZUlzVmFsaWQsXHJcbiAgICBEYXRhU2VydmljZSxcclxuICAgIERpYWxvZyxcclxuICAgIEZ1bGZpbGxPcmRlcklucHV0LFxyXG4gICAgR2xvYmFsRmxhZyxcclxuICAgIE9yZGVyRGV0YWlsLFxyXG4gICAgT3JkZXJEZXRhaWxGcmFnbWVudCxcclxuICAgIHRvQ29uZmlndXJhYmxlT3BlcmF0aW9uSW5wdXQsXHJcbn0gZnJvbSAnQHZlbmR1cmUvYWRtaW4tdWkvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAndmRyLWZ1bGZpbGwtb3JkZXItZGlhbG9nJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9mdWxmaWxsLW9yZGVyLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9mdWxmaWxsLW9yZGVyLWRpYWxvZy5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGdWxmaWxsT3JkZXJEaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBEaWFsb2c8RnVsZmlsbE9yZGVySW5wdXQ+LCBPbkluaXQge1xyXG4gICAgcmVzb2x2ZVdpdGg6IChyZXN1bHQ/OiBGdWxmaWxsT3JkZXJJbnB1dCkgPT4gdm9pZDtcclxuICAgIGZ1bGZpbGxtZW50SGFuZGxlckRlZjogQ29uZmlndXJhYmxlT3BlcmF0aW9uRGVmaW5pdGlvbjtcclxuICAgIGZ1bGZpbGxtZW50SGFuZGxlcjogQ29uZmlndXJhYmxlT3BlcmF0aW9uO1xyXG4gICAgZnVsZmlsbG1lbnRIYW5kbGVyQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xyXG4gICAgZnVsZmlsbG1lbnRRdWFudGl0aWVzOiB7IFtsaW5lSWQ6IHN0cmluZ106IHsgZnVsZmlsbENvdW50OiBudW1iZXI7IG1heDogbnVtYmVyIH0gfSA9IHt9O1xyXG5cclxuICAgIC8vIFByb3ZpZGVkIGJ5IG1vZGFsU2VydmljZS5mcm9tQ29tcG9uZW50KCkgY2FsbFxyXG4gICAgb3JkZXI6IE9yZGVyRGV0YWlsRnJhZ21lbnQ7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBkYXRhU2VydmljZTogRGF0YVNlcnZpY2UsIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmKSB7fVxyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZGF0YVNlcnZpY2Uuc2V0dGluZ3MuZ2V0R2xvYmFsU2V0dGluZ3MoKS5zaW5nbGUkLnN1YnNjcmliZSgoeyBnbG9iYWxTZXR0aW5ncyB9KSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuZnVsZmlsbG1lbnRRdWFudGl0aWVzID0gdGhpcy5vcmRlci5saW5lcy5yZWR1Y2UoKHJlc3VsdCwgbGluZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZnVsZmlsbENvdW50ID0gdGhpcy5nZXRGdWxmaWxsYWJsZUNvdW50KGxpbmUsIGdsb2JhbFNldHRpbmdzLnRyYWNrSW52ZW50b3J5KTtcclxuICAgICAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICAgICAgLi4ucmVzdWx0LFxyXG4gICAgICAgICAgICAgICAgICAgIFtsaW5lLmlkXTogeyBmdWxmaWxsQ291bnQsIG1heDogZnVsZmlsbENvdW50IH0sXHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICB9LCB7fSk7XHJcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuZGF0YVNlcnZpY2Uuc2hpcHBpbmdNZXRob2RcclxuICAgICAgICAgICAgLmdldFNoaXBwaW5nTWV0aG9kT3BlcmF0aW9ucygpXHJcbiAgICAgICAgICAgIC5tYXBTaW5nbGUoZGF0YSA9PiBkYXRhLmZ1bGZpbGxtZW50SGFuZGxlcnMpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoaGFuZGxlcnMgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5mdWxmaWxsbWVudEhhbmRsZXJEZWYgPVxyXG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZXJzLmZpbmQoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGggPT4gaC5jb2RlID09PSB0aGlzLm9yZGVyLnNoaXBwaW5nTGluZXNbMF0/LnNoaXBwaW5nTWV0aG9kPy5mdWxmaWxsbWVudEhhbmRsZXJDb2RlLFxyXG4gICAgICAgICAgICAgICAgICAgICkgfHwgaGFuZGxlcnNbMF07XHJcbiAgICAgICAgICAgICAgICB0aGlzLmZ1bGZpbGxtZW50SGFuZGxlciA9IGNvbmZpZ3VyYWJsZURlZmluaXRpb25Ub0luc3RhbmNlKHRoaXMuZnVsZmlsbG1lbnRIYW5kbGVyRGVmKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuZnVsZmlsbG1lbnRIYW5kbGVyQ29udHJvbC5wYXRjaFZhbHVlKHRoaXMuZnVsZmlsbG1lbnRIYW5kbGVyKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEZ1bGZpbGxhYmxlQ291bnQobGluZTogT3JkZXJEZXRhaWwuTGluZXMsIGdsb2JhbFRyYWNrSW52ZW50b3J5OiBib29sZWFuKTogbnVtYmVyIHtcclxuICAgICAgICBjb25zdCB7IHRyYWNrSW52ZW50b3J5LCBzdG9ja09uSGFuZCB9ID0gbGluZS5wcm9kdWN0VmFyaWFudDtcclxuICAgICAgICBjb25zdCBlZmZlY3RpdmVUcmFjSW52ZW50b3J5ID1cclxuICAgICAgICAgICAgdHJhY2tJbnZlbnRvcnkgPT09IEdsb2JhbEZsYWcuSU5IRVJJVCA/IGdsb2JhbFRyYWNrSW52ZW50b3J5IDogdHJhY2tJbnZlbnRvcnkgPT09IEdsb2JhbEZsYWcuVFJVRTtcclxuXHJcbiAgICAgICAgY29uc3QgdW5mdWxmaWxsZWRDb3VudCA9IHRoaXMuZ2V0VW5mdWxmaWxsZWRDb3VudChsaW5lKTtcclxuICAgICAgICByZXR1cm4gZWZmZWN0aXZlVHJhY0ludmVudG9yeSA/IE1hdGgubWluKHVuZnVsZmlsbGVkQ291bnQsIHN0b2NrT25IYW5kKSA6IHVuZnVsZmlsbGVkQ291bnQ7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0VW5mdWxmaWxsZWRDb3VudChsaW5lOiBPcmRlckRldGFpbC5MaW5lcyk6IG51bWJlciB7XHJcbiAgICAgICAgY29uc3QgZnVsZmlsbGVkID1cclxuICAgICAgICAgICAgbGluZS5mdWxmaWxsbWVudHNcclxuICAgICAgICAgICAgICAgID8ubWFwKGYgPT4gZi5zdW1tYXJ5KVxyXG4gICAgICAgICAgICAgICAgLmZsYXQoKVxyXG4gICAgICAgICAgICAgICAgLmZpbHRlcihyb3cgPT4gcm93Lm9yZGVyTGluZS5pZCA9PT0gbGluZS5pZClcclxuICAgICAgICAgICAgICAgIC5yZWR1Y2UoKHN1bSwgcm93KSA9PiBzdW0gKyByb3cucXVhbnRpdHksIDApID8/IDA7XHJcbiAgICAgICAgcmV0dXJuIGxpbmUucXVhbnRpdHkgLSBmdWxmaWxsZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgY2FuU3VibWl0KCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGNvbnN0IHRvdGFsQ291bnQgPSBPYmplY3QudmFsdWVzKHRoaXMuZnVsZmlsbG1lbnRRdWFudGl0aWVzKS5yZWR1Y2UoXHJcbiAgICAgICAgICAgICh0b3RhbCwgeyBmdWxmaWxsQ291bnQgfSkgPT4gdG90YWwgKyBmdWxmaWxsQ291bnQsXHJcbiAgICAgICAgICAgIDAsXHJcbiAgICAgICAgKTtcclxuICAgICAgICBjb25zdCBmb3JtSXNWYWxpZCA9XHJcbiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZU9wZXJhdGlvblZhbHVlSXNWYWxpZChcclxuICAgICAgICAgICAgICAgIHRoaXMuZnVsZmlsbG1lbnRIYW5kbGVyRGVmLFxyXG4gICAgICAgICAgICAgICAgdGhpcy5mdWxmaWxsbWVudEhhbmRsZXJDb250cm9sLnZhbHVlLFxyXG4gICAgICAgICAgICApICYmIHRoaXMuZnVsZmlsbG1lbnRIYW5kbGVyQ29udHJvbC52YWxpZDtcclxuICAgICAgICByZXR1cm4gZm9ybUlzVmFsaWQgJiYgMCA8IHRvdGFsQ291bnQ7XHJcbiAgICB9XHJcblxyXG4gICAgc2VsZWN0KCkge1xyXG4gICAgICAgIGNvbnN0IGxpbmVzID0gT2JqZWN0LmVudHJpZXModGhpcy5mdWxmaWxsbWVudFF1YW50aXRpZXMpLm1hcCgoW29yZGVyTGluZUlkLCB7IGZ1bGZpbGxDb3VudCB9XSkgPT4gKHtcclxuICAgICAgICAgICAgb3JkZXJMaW5lSWQsXHJcbiAgICAgICAgICAgIHF1YW50aXR5OiBmdWxmaWxsQ291bnQsXHJcbiAgICAgICAgfSkpO1xyXG4gICAgICAgIHRoaXMucmVzb2x2ZVdpdGgoe1xyXG4gICAgICAgICAgICBsaW5lcyxcclxuICAgICAgICAgICAgaGFuZGxlcjogdG9Db25maWd1cmFibGVPcGVyYXRpb25JbnB1dChcclxuICAgICAgICAgICAgICAgIHRoaXMuZnVsZmlsbG1lbnRIYW5kbGVyLFxyXG4gICAgICAgICAgICAgICAgdGhpcy5mdWxmaWxsbWVudEhhbmRsZXJDb250cm9sLnZhbHVlLFxyXG4gICAgICAgICAgICApLFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGNhbmNlbCgpIHtcclxuICAgICAgICB0aGlzLnJlc29sdmVXaXRoKCk7XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -18,23 +18,14 @@ export class FulfillmentDetailComponent {
18
18
  return this.order.fulfillments && this.order.fulfillments.find(f => f.id === this.fulfillmentId);
19
19
  }
20
20
  get items() {
21
- var _a;
22
- const itemMap = new Map();
23
- const fulfillmentItemIds = (_a = this.fulfillment) === null || _a === void 0 ? void 0 : _a.orderItems.map(i => i.id);
24
- for (const line of this.order.lines) {
25
- for (const item of line.items) {
26
- if (fulfillmentItemIds === null || fulfillmentItemIds === void 0 ? void 0 : fulfillmentItemIds.includes(item.id)) {
27
- const count = itemMap.get(line.productVariant.name);
28
- if (count != null) {
29
- itemMap.set(line.productVariant.name, count + 1);
30
- }
31
- else {
32
- itemMap.set(line.productVariant.name, 1);
33
- }
34
- }
35
- }
36
- }
37
- return Array.from(itemMap.entries()).map(([name, quantity]) => ({ name, quantity }));
21
+ var _a, _b;
22
+ return ((_b = (_a = this.fulfillment) === null || _a === void 0 ? void 0 : _a.summary.map(row => {
23
+ var _a, _b;
24
+ return {
25
+ name: (_b = (_a = this.order.lines.find(line => line.id === row.orderLine.id)) === null || _a === void 0 ? void 0 : _a.productVariant.name) !== null && _b !== void 0 ? _b : '',
26
+ quantity: row.quantity,
27
+ };
28
+ })) !== null && _b !== void 0 ? _b : []);
38
29
  }
39
30
  buildCustomFieldsFormGroup() {
40
31
  const customFields = this.fulfillment.customFields;
@@ -61,4 +52,4 @@ FulfillmentDetailComponent.propDecorators = {
61
52
  fulfillmentId: [{ type: Input }],
62
53
  order: [{ type: Input }]
63
54
  };
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVsZmlsbG1lbnQtZGV0YWlsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvb3JkZXIvc3JjL2NvbXBvbmVudHMvZnVsZmlsbG1lbnQtZGV0YWlsL2Z1bGZpbGxtZW50LWRldGFpbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQW9DLE1BQU0sZUFBZSxDQUFDO0FBQzVHLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUFrQyxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzdGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQVE1RCxNQUFNLE9BQU8sMEJBQTBCO0lBT25DLFlBQW9CLG1CQUF3QztRQUF4Qyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBSDVELHNCQUFpQixHQUF3QixFQUFFLENBQUM7UUFDNUMseUJBQW9CLEdBQUcsSUFBSSxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7SUFFc0IsQ0FBQztJQUVoRSxRQUFRO1FBQ0osSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUN4RixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQzlCLElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDWCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3JHLENBQUM7SUFFRCxJQUFJLEtBQUs7O1FBQ0wsTUFBTSxPQUFPLEdBQUcsSUFBSSxHQUFHLEVBQWtCLENBQUM7UUFDMUMsTUFBTSxrQkFBa0IsR0FBRyxNQUFBLElBQUksQ0FBQyxXQUFXLDBDQUFFLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdkUsS0FBSyxNQUFNLElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRTtZQUNqQyxLQUFLLE1BQU0sSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7Z0JBQzNCLElBQUksa0JBQWtCLGFBQWxCLGtCQUFrQix1QkFBbEIsa0JBQWtCLENBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRTtvQkFDdkMsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUNwRCxJQUFJLEtBQUssSUFBSSxJQUFJLEVBQUU7d0JBQ2YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7cUJBQ3BEO3lCQUFNO3dCQUNILE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7cUJBQzVDO2lCQUNKO2FBQ0o7U0FDSjtRQUNELE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDekYsQ0FBQztJQUVELDBCQUEwQjtRQUN0QixNQUFNLFlBQVksR0FBSSxJQUFJLENBQUMsV0FBbUIsQ0FBQyxZQUFZLENBQUM7UUFDNUQsS0FBSyxNQUFNLFFBQVEsSUFBSSxJQUFJLENBQUMsbUJBQW1CLENBQUMsa0JBQWtCLENBQUMsYUFBYSxDQUFDLEVBQUU7WUFDL0UsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksV0FBVyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3JHO0lBQ0wsQ0FBQztJQUVELG1CQUFtQixDQUFDLFdBQW9CO1FBQ3BDLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDL0QsQ0FBQzs7O1lBdERKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsd0JBQXdCO2dCQUNsQyxnK0JBQWtEO2dCQUVsRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTs7YUFDbEQ7OztZQVJ3QyxtQkFBbUI7Ozs0QkFVdkQsS0FBSztvQkFDTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEN1c3RvbUZpZWxkQ29uZmlnLCBPcmRlckRldGFpbCwgU2VydmVyQ29uZmlnU2VydmljZSB9IGZyb20gJ0B2ZW5kdXJlL2FkbWluLXVpL2NvcmUnO1xyXG5pbXBvcnQgeyBpc09iamVjdCB9IGZyb20gJ0B2ZW5kdXJlL2NvbW1vbi9saWIvc2hhcmVkLXV0aWxzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICd2ZHItZnVsZmlsbG1lbnQtZGV0YWlsJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9mdWxmaWxsbWVudC1kZXRhaWwuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vZnVsZmlsbG1lbnQtZGV0YWlsLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIEZ1bGZpbGxtZW50RGV0YWlsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xyXG4gICAgQElucHV0KCkgZnVsZmlsbG1lbnRJZDogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgb3JkZXI6IE9yZGVyRGV0YWlsLkZyYWdtZW50O1xyXG5cclxuICAgIGN1c3RvbUZpZWxkQ29uZmlnOiBDdXN0b21GaWVsZENvbmZpZ1tdID0gW107XHJcbiAgICBjdXN0b21GaWVsZEZvcm1Hcm91cCA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgc2VydmVyQ29uZmlnU2VydmljZTogU2VydmVyQ29uZmlnU2VydmljZSkge31cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICB0aGlzLmN1c3RvbUZpZWxkQ29uZmlnID0gdGhpcy5zZXJ2ZXJDb25maWdTZXJ2aWNlLmdldEN1c3RvbUZpZWxkc0ZvcignRnVsZmlsbG1lbnQnKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICAgICAgdGhpcy5idWlsZEN1c3RvbUZpZWxkc0Zvcm1Hcm91cCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBmdWxmaWxsbWVudCgpOiBPcmRlckRldGFpbC5GdWxmaWxsbWVudHMgfCB1bmRlZmluZWQgfCBudWxsIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5vcmRlci5mdWxmaWxsbWVudHMgJiYgdGhpcy5vcmRlci5mdWxmaWxsbWVudHMuZmluZChmID0+IGYuaWQgPT09IHRoaXMuZnVsZmlsbG1lbnRJZCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGl0ZW1zKCk6IEFycmF5PHsgbmFtZTogc3RyaW5nOyBxdWFudGl0eTogbnVtYmVyIH0+IHtcclxuICAgICAgICBjb25zdCBpdGVtTWFwID0gbmV3IE1hcDxzdHJpbmcsIG51bWJlcj4oKTtcclxuICAgICAgICBjb25zdCBmdWxmaWxsbWVudEl0ZW1JZHMgPSB0aGlzLmZ1bGZpbGxtZW50Py5vcmRlckl0ZW1zLm1hcChpID0+IGkuaWQpO1xyXG4gICAgICAgIGZvciAoY29uc3QgbGluZSBvZiB0aGlzLm9yZGVyLmxpbmVzKSB7XHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgaXRlbSBvZiBsaW5lLml0ZW1zKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZnVsZmlsbG1lbnRJdGVtSWRzPy5pbmNsdWRlcyhpdGVtLmlkKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvdW50ID0gaXRlbU1hcC5nZXQobGluZS5wcm9kdWN0VmFyaWFudC5uYW1lKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoY291bnQgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtTWFwLnNldChsaW5lLnByb2R1Y3RWYXJpYW50Lm5hbWUsIGNvdW50ICsgMSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbU1hcC5zZXQobGluZS5wcm9kdWN0VmFyaWFudC5uYW1lLCAxKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIEFycmF5LmZyb20oaXRlbU1hcC5lbnRyaWVzKCkpLm1hcCgoW25hbWUsIHF1YW50aXR5XSkgPT4gKHsgbmFtZSwgcXVhbnRpdHkgfSkpO1xyXG4gICAgfVxyXG5cclxuICAgIGJ1aWxkQ3VzdG9tRmllbGRzRm9ybUdyb3VwKCkge1xyXG4gICAgICAgIGNvbnN0IGN1c3RvbUZpZWxkcyA9ICh0aGlzLmZ1bGZpbGxtZW50IGFzIGFueSkuY3VzdG9tRmllbGRzO1xyXG4gICAgICAgIGZvciAoY29uc3QgZmllbGREZWYgb2YgdGhpcy5zZXJ2ZXJDb25maWdTZXJ2aWNlLmdldEN1c3RvbUZpZWxkc0ZvcignRnVsZmlsbG1lbnQnKSkge1xyXG4gICAgICAgICAgICB0aGlzLmN1c3RvbUZpZWxkRm9ybUdyb3VwLmFkZENvbnRyb2woZmllbGREZWYubmFtZSwgbmV3IEZvcm1Db250cm9sKGN1c3RvbUZpZWxkc1tmaWVsZERlZi5uYW1lXSkpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjdXN0b21GaWVsZElzT2JqZWN0KGN1c3RvbUZpZWxkOiB1bmtub3duKSB7XHJcbiAgICAgICAgcmV0dXJuIEFycmF5LmlzQXJyYXkoY3VzdG9tRmllbGQpIHx8IGlzT2JqZWN0KGN1c3RvbUZpZWxkKTtcclxuICAgIH1cclxufVxyXG4iXX0=
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVsZmlsbG1lbnQtZGV0YWlsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvb3JkZXIvc3JjL2NvbXBvbmVudHMvZnVsZmlsbG1lbnQtZGV0YWlsL2Z1bGZpbGxtZW50LWRldGFpbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQW9DLE1BQU0sZUFBZSxDQUFDO0FBQzVHLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUFrQyxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzdGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQVE1RCxNQUFNLE9BQU8sMEJBQTBCO0lBT25DLFlBQW9CLG1CQUF3QztRQUF4Qyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBSDVELHNCQUFpQixHQUF3QixFQUFFLENBQUM7UUFDNUMseUJBQW9CLEdBQUcsSUFBSSxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7SUFFc0IsQ0FBQztJQUVoRSxRQUFRO1FBQ0osSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUN4RixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQzlCLElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDWCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3JHLENBQUM7SUFFRCxJQUFJLEtBQUs7O1FBQ0wsT0FBTyxDQUNILE1BQUEsTUFBQSxJQUFJLENBQUMsV0FBVywwQ0FBRSxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFOztZQUNoQyxPQUFPO2dCQUNILElBQUksRUFDQSxNQUFBLE1BQUEsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQywwQ0FBRSxjQUFjLENBQUMsSUFBSSxtQ0FDaEYsRUFBRTtnQkFDTixRQUFRLEVBQUUsR0FBRyxDQUFDLFFBQVE7YUFDekIsQ0FBQztRQUNOLENBQUMsQ0FBQyxtQ0FBSSxFQUFFLENBQ1gsQ0FBQztJQUNOLENBQUM7SUFFRCwwQkFBMEI7UUFDdEIsTUFBTSxZQUFZLEdBQUksSUFBSSxDQUFDLFdBQW1CLENBQUMsWUFBWSxDQUFDO1FBQzVELEtBQUssTUFBTSxRQUFRLElBQUksSUFBSSxDQUFDLG1CQUFtQixDQUFDLGtCQUFrQixDQUFDLGFBQWEsQ0FBQyxFQUFFO1lBQy9FLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLFdBQVcsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNyRztJQUNMLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxXQUFvQjtRQUNwQyxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLElBQUksUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQy9ELENBQUM7OztZQWpESixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLHdCQUF3QjtnQkFDbEMsZytCQUFrRDtnQkFFbEQsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07O2FBQ2xEOzs7WUFSd0MsbUJBQW1COzs7NEJBVXZELEtBQUs7b0JBQ0wsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBDdXN0b21GaWVsZENvbmZpZywgT3JkZXJEZXRhaWwsIFNlcnZlckNvbmZpZ1NlcnZpY2UgfSBmcm9tICdAdmVuZHVyZS9hZG1pbi11aS9jb3JlJztcclxuaW1wb3J0IHsgaXNPYmplY3QgfSBmcm9tICdAdmVuZHVyZS9jb21tb24vbGliL3NoYXJlZC11dGlscyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAndmRyLWZ1bGZpbGxtZW50LWRldGFpbCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vZnVsZmlsbG1lbnQtZGV0YWlsLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2Z1bGZpbGxtZW50LWRldGFpbC5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGdWxmaWxsbWVudERldGFpbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuICAgIEBJbnB1dCgpIGZ1bGZpbGxtZW50SWQ6IHN0cmluZztcclxuICAgIEBJbnB1dCgpIG9yZGVyOiBPcmRlckRldGFpbC5GcmFnbWVudDtcclxuXHJcbiAgICBjdXN0b21GaWVsZENvbmZpZzogQ3VzdG9tRmllbGRDb25maWdbXSA9IFtdO1xyXG4gICAgY3VzdG9tRmllbGRGb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNlcnZlckNvbmZpZ1NlcnZpY2U6IFNlcnZlckNvbmZpZ1NlcnZpY2UpIHt9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgdGhpcy5jdXN0b21GaWVsZENvbmZpZyA9IHRoaXMuc2VydmVyQ29uZmlnU2VydmljZS5nZXRDdXN0b21GaWVsZHNGb3IoJ0Z1bGZpbGxtZW50Jyk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgICAgIHRoaXMuYnVpbGRDdXN0b21GaWVsZHNGb3JtR3JvdXAoKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgZnVsZmlsbG1lbnQoKTogT3JkZXJEZXRhaWwuRnVsZmlsbG1lbnRzIHwgdW5kZWZpbmVkIHwgbnVsbCB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMub3JkZXIuZnVsZmlsbG1lbnRzICYmIHRoaXMub3JkZXIuZnVsZmlsbG1lbnRzLmZpbmQoZiA9PiBmLmlkID09PSB0aGlzLmZ1bGZpbGxtZW50SWQpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBpdGVtcygpOiBBcnJheTx7IG5hbWU6IHN0cmluZzsgcXVhbnRpdHk6IG51bWJlciB9PiB7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgdGhpcy5mdWxmaWxsbWVudD8uc3VtbWFyeS5tYXAocm93ID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZTpcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vcmRlci5saW5lcy5maW5kKGxpbmUgPT4gbGluZS5pZCA9PT0gcm93Lm9yZGVyTGluZS5pZCk/LnByb2R1Y3RWYXJpYW50Lm5hbWUgPz9cclxuICAgICAgICAgICAgICAgICAgICAgICAgJycsXHJcbiAgICAgICAgICAgICAgICAgICAgcXVhbnRpdHk6IHJvdy5xdWFudGl0eSxcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIH0pID8/IFtdXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBidWlsZEN1c3RvbUZpZWxkc0Zvcm1Hcm91cCgpIHtcclxuICAgICAgICBjb25zdCBjdXN0b21GaWVsZHMgPSAodGhpcy5mdWxmaWxsbWVudCBhcyBhbnkpLmN1c3RvbUZpZWxkcztcclxuICAgICAgICBmb3IgKGNvbnN0IGZpZWxkRGVmIG9mIHRoaXMuc2VydmVyQ29uZmlnU2VydmljZS5nZXRDdXN0b21GaWVsZHNGb3IoJ0Z1bGZpbGxtZW50JykpIHtcclxuICAgICAgICAgICAgdGhpcy5jdXN0b21GaWVsZEZvcm1Hcm91cC5hZGRDb250cm9sKGZpZWxkRGVmLm5hbWUsIG5ldyBGb3JtQ29udHJvbChjdXN0b21GaWVsZHNbZmllbGREZWYubmFtZV0pKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgY3VzdG9tRmllbGRJc09iamVjdChjdXN0b21GaWVsZDogdW5rbm93bikge1xyXG4gICAgICAgIHJldHVybiBBcnJheS5pc0FycmF5KGN1c3RvbUZpZWxkKSB8fCBpc09iamVjdChjdXN0b21GaWVsZCk7XHJcbiAgICB9XHJcbn1cclxuIl19