@vendure/admin-ui 1.6.4 → 1.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) 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 +292 -323
  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 +141 -119
  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 +89 -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/dynamic-form-inputs/register-dynamic-input-components.d.ts +2 -1
  23. package/core/shared/dynamic-form-inputs/select-form-input/select-form-input.component.d.ts +10 -2
  24. package/core/shared/pipes/custom-field-label.pipe.d.ts +4 -10
  25. package/core/vendure-admin-ui-core.metadata.json +1 -1
  26. package/customer/components/customer-group-list/customer-group-list.component.d.ts +6 -4
  27. package/customer/vendure-admin-ui-customer.metadata.json +1 -1
  28. package/esm2015/catalog/components/generate-product-variants/generate-product-variants.component.js +12 -5
  29. package/esm2015/catalog/components/option-value-input/option-value-input.component.js +62 -12
  30. package/esm2015/catalog/components/product-variants-editor/product-variants-editor.component.js +109 -11
  31. package/esm2015/core/common/generated-types.js +2 -1
  32. package/esm2015/core/common/introspection-result.js +191 -255
  33. package/esm2015/core/common/utilities/configurable-operation-utils.js +11 -8
  34. package/esm2015/core/common/version.js +2 -2
  35. package/esm2015/core/components/app-shell/app-shell.component.js +1 -1
  36. package/esm2015/core/components/main-nav/main-nav.component.js +1 -1
  37. package/esm2015/core/data/definitions/order-definitions.js +39 -25
  38. package/esm2015/core/data/definitions/product-definitions.js +743 -735
  39. package/esm2015/core/data/providers/order-data.service.js +7 -2
  40. package/esm2015/core/data/providers/product-data.service.js +5 -2
  41. package/esm2015/core/shared/components/custom-field-control/custom-field-control.component.js +9 -3
  42. package/esm2015/core/shared/components/data-table/data-table.component.js +9 -2
  43. package/esm2015/core/shared/dynamic-form-inputs/select-form-input/select-form-input.component.js +15 -2
  44. package/esm2015/core/shared/pipes/custom-field-label.pipe.js +4 -19
  45. package/esm2015/customer/components/customer-group-list/customer-group-list.component.js +25 -12
  46. package/esm2015/order/components/fulfill-order-dialog/fulfill-order-dialog.component.js +3 -2
  47. package/esm2015/order/components/fulfillment-detail/fulfillment-detail.component.js +9 -18
  48. package/esm2015/order/components/line-fulfillment/line-fulfillment.component.js +10 -21
  49. package/esm2015/order/components/order-custom-fields-card/order-custom-fields-card.component.js +30 -4
  50. package/esm2015/order/components/order-detail/order-detail.component.js +49 -20
  51. package/esm2015/order/components/order-list/order-list.component.js +22 -15
  52. package/esm2015/order/components/order-payment-card/order-payment-card.component.js +2 -2
  53. package/esm2015/order/components/order-table/order-table.component.js +1 -1
  54. package/fesm2015/vendure-admin-ui-catalog.js +177 -22
  55. package/fesm2015/vendure-admin-ui-catalog.js.map +1 -1
  56. package/fesm2015/vendure-admin-ui-core.js +975 -995
  57. package/fesm2015/vendure-admin-ui-core.js.map +1 -1
  58. package/fesm2015/vendure-admin-ui-customer.js +23 -11
  59. package/fesm2015/vendure-admin-ui-customer.js.map +1 -1
  60. package/fesm2015/vendure-admin-ui-order.js +116 -75
  61. package/fesm2015/vendure-admin-ui-order.js.map +1 -1
  62. package/order/components/line-fulfillment/line-fulfillment.component.d.ts +2 -2
  63. package/order/components/modification-detail/modification-detail.component.d.ts +1 -1
  64. package/order/components/order-custom-fields-card/order-custom-fields-card.component.d.ts +4 -2
  65. package/order/components/order-list/order-list.component.d.ts +1 -0
  66. package/order/vendure-admin-ui-order.metadata.json +1 -1
  67. package/package.json +2 -2
  68. package/static/i18n-messages/cs.json +6 -2
  69. package/static/i18n-messages/de.json +6 -2
  70. package/static/i18n-messages/en.json +8 -3
  71. package/static/i18n-messages/es.json +6 -2
  72. package/static/i18n-messages/fr.json +6 -2
  73. package/static/i18n-messages/it.json +6 -2
  74. package/static/i18n-messages/pl.json +6 -2
  75. package/static/i18n-messages/pt_BR.json +6 -2
  76. package/static/i18n-messages/pt_PT.json +6 -2
  77. package/static/i18n-messages/ru.json +6 -2
  78. package/static/i18n-messages/uk.json +6 -2
  79. package/static/i18n-messages/zh_Hans.json +6 -2
  80. package/static/i18n-messages/zh_Hant.json +6 -2
  81. package/static/styles/_variables.scss +3 -0
  82. package/static/styles/global/_sass-overrides.scss +3 -0
  83. package/static/styles/global/_utilities.scss +1 -0
  84. package/static/styles/styles.scss +1 -0
  85. package/static/styles/ui-extension-theme.scss +1 -0
  86. package/static/theme.min.css +1 -1
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tZXItZ3JvdXAtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2N1c3RvbWVyL3NyYy9jb21wb25lbnRzL2N1c3RvbWVyLWdyb3VwLWxpc3QvY3VzdG9tZXItZ3JvdXAtbGlzdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxNQUFNLElBQUksQ0FBQyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDdEUsT0FBTyxFQUNILFdBQVcsRUFDWCxjQUFjLEVBSWQsWUFBWSxFQUNaLG1CQUFtQixHQUN0QixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0UsT0FBTyxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWxGLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLHdFQUF3RSxDQUFDO0FBQzNILE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLHdFQUF3RSxDQUFDO0FBUzVILE1BQU0sT0FBTywwQkFBMEI7SUFjbkMsWUFDWSxXQUF3QixFQUN4QixtQkFBd0MsRUFDeEMsWUFBMEIsRUFDM0IsS0FBcUIsRUFDcEIsTUFBYztRQUpkLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDM0IsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDcEIsV0FBTSxH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U0FBUyxDQUFDO1lBQ2hGLFFBQVEsRUFBRSxHQUFHLEVBQUU7Z0JBQ1gsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsOENBQThDLENBQUMsRUFBRTtvQkFDaEYsYUFBYSxFQUFFLFdBQVcsQ0FBQyxNQUFNO29CQUNqQyxTQUFTLEVBQUUsS0FBSyxDQUFDLElBQUk7aUJBQ3hCLENBQUMsQ0FBQztnQkFDSCxJQUFJLENBQUMsMEJBQTBCLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ3ZDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxFQUFFLENBQUM7WUFDbEMsQ0FBQztTQUNKLENBQUMsQ0FBQztJQUNQLENBQUM7OztZQXROSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLHlCQUF5QjtnQkFDbkMsMjdMQUFtRDtnQkFFbkQsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07O2FBQ2xEOzs7WUFwQkcsV0FBVztZQU1YLG1CQUFtQjtZQURuQixZQUFZO1lBUlAsY0FBYztZQUFFLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IG1hcmtlciBhcyBfIH0gZnJvbSAnQGJpZXNiamVyZy9uZ3gtdHJhbnNsYXRlLWV4dHJhY3QtbWFya2VyJztcclxuaW1wb3J0IHtcclxuICAgIERhdGFTZXJ2aWNlLFxyXG4gICAgRGVsZXRpb25SZXN1bHQsXHJcbiAgICBHZXRDdXN0b21lckdyb3VwcyxcclxuICAgIEdldEN1c3RvbWVyR3JvdXBXaXRoQ3VzdG9tZXJzLFxyXG4gICAgR2V0Wm9uZXMsXHJcbiAgICBNb2RhbFNlcnZpY2UsXHJcbiAgICBOb3RpZmljYXRpb25TZXJ2aWNlLFxyXG59IGZyb20gJ0B2ZW5kdXJlL2FkbWluLXVpL2NvcmUnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIEVNUFRZLCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwLCBtYXBUbywgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBBZGRDdXN0b21lclRvR3JvdXBEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi9hZGQtY3VzdG9tZXItdG8tZ3JvdXAtZGlhbG9nL2FkZC1jdXN0b21lci10by1ncm91cC1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ3VzdG9tZXJHcm91cERldGFpbERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uL2N1c3RvbWVyLWdyb3VwLWRldGFpbC1kaWFsb2cvY3VzdG9tZXItZ3JvdXAtZGV0YWlsLWRpYWxvZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDdXN0b21lckdyb3VwTWVtYmVyRmV0Y2hQYXJhbXMgfSBmcm9tICcuLi9jdXN0b21lci1ncm91cC1tZW1iZXItbGlzdC9jdXN0b21lci1ncm91cC1tZW1iZXItbGlzdC5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3Zkci1jdXN0b21lci1ncm91cC1saXN0JyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9jdXN0b21lci1ncm91cC1saXN0LmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2N1c3RvbWVyLWdyb3VwLWxpc3QuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ3VzdG9tZXJHcm91cExpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgYWN0aXZlR3JvdXAkOiBPYnNlcnZhYmxlPEdldEN1c3RvbWVyR3JvdXBzLkl0ZW1zIHwgdW5kZWZpbmVkPjtcclxuICAgIGdyb3VwcyQ6IE9ic2VydmFibGU8R2V0Q3VzdG9tZXJHcm91cHMuSXRlbXNbXT47XHJcbiAgICBsaXN0SXNFbXB0eSQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XHJcbiAgICBtZW1iZXJzJDogT2JzZXJ2YWJsZTxHZXRDdXN0b21lckdyb3VwV2l0aEN1c3RvbWVycy5JdGVtc1tdPjtcclxuICAgIG1lbWJlcnNUb3RhbCQ6IE9ic2VydmFibGU8bnVtYmVyPjtcclxuICAgIHNlbGVjdGVkQ3VzdG9tZXJJZHM6IHN0cmluZ1tdID0gW107XHJcbiAgICBmZXRjaEdyb3VwTWVtYmVycyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEN1c3RvbWVyR3JvdXBNZW1iZXJGZXRjaFBhcmFtcz4oe1xyXG4gICAgICAgIHNraXA6IDAsXHJcbiAgICAgICAgdGFrZTogMCxcclxuICAgICAgICBmaWx0ZXJUZXJtOiAnJyxcclxuICAgIH0pO1xyXG4gICAgcHJpdmF0ZSByZWZyZXNoQWN0aXZlR3JvdXBNZW1iZXJzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8dm9pZD4odW5kZWZpbmVkKTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIGRhdGFTZXJ2aWNlOiBEYXRhU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIG5vdGlmaWNhdGlvblNlcnZpY2U6IE5vdGlmaWNhdGlvblNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IE1vZGFsU2VydmljZSxcclxuICAgICAgICBwdWJsaWMgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICApIHt9XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5ncm91cHMkID0gdGhpcy5kYXRhU2VydmljZS5jdXN0b21lclxyXG4gICAgICAgICAgICAuZ2V0Q3VzdG9tZXJHcm91cExpc3QoKVxyXG4gICAgICAgICAgICAubWFwU3RyZWFtKGRhdGEgPT4gZGF0YS5jdXN0b21lckdyb3Vwcy5pdGVtcyk7XHJcbiAgICAgICAgY29uc3QgYWN0aXZlR3JvdXBJZCQgPSB0aGlzLnJvdXRlLnBhcmFtTWFwLnBpcGUoXHJcbiAgICAgICAgICAgIG1hcChwbSA9PiBwbS5nZXQoJ2NvbnRlbnRzJykpLFxyXG4gICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxyXG4gICAgICAgICAgICB0YXAoKCkgPT4gKHRoaXMuc2VsZWN0ZWRDdXN0b21lcklkcyA9IFtdKSksXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLmxpc3RJc0VtcHR5JCA9IHRoaXMuZ3JvdXBzJC5waXBlKG1hcChncm91cHMgPT4gZ3JvdXBzLmxlbmd0aCA9PT0gMCkpO1xyXG4gICAgICAgIHRoaXMuYWN0aXZlR3JvdXAkID0gY29tYmluZUxhdGVzdCh0aGlzLmdyb3VwcyQsIGFjdGl2ZUdyb3VwSWQkKS5waXBlKFxyXG4gICAgICAgICAgICBtYXAoKFtncm91cHMsIGFjdGl2ZUdyb3VwSWRdKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoYWN0aXZlR3JvdXBJZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBncm91cHMuZmluZChnID0+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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVsZmlsbC1vcmRlci1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9vcmRlci9zcmMvY29tcG9uZW50cy9mdWxmaWxsLW9yZGVyLWRpYWxvZy9mdWxmaWxsLW9yZGVyLWRpYWxvZy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUM5RixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUNILGdDQUFnQyxFQUdoQyxpQ0FBaUMsRUFDakMsV0FBVyxFQUdYLFVBQVUsRUFHViw0QkFBNEIsR0FDL0IsTUFBTSx3QkFBd0IsQ0FBQztBQVFoQyxNQUFNLE9BQU8sMkJBQTJCO0lBVXBDLFlBQW9CLFdBQXdCLEVBQVUsY0FBaUM7UUFBbkUsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFBVSxtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFOdkYsOEJBQXlCLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUM5QywwQkFBcUIsR0FBZ0UsRUFBRSxDQUFDO0lBS0UsQ0FBQztJQUUzRixRQUFRO1FBQ0osSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxjQUFjLEVBQUUsRUFBRSxFQUFFO1lBQ25GLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUU7Z0JBQ2xFLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsY0FBYyxDQUFDLGNBQWMsQ0FBQyxDQUFDO2dCQUNuRix1Q0FDTyxNQUFNLEtB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LENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxZQUFZLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQy9GLFdBQVc7WUFDWCxRQUFRLEVBQUUsWUFBWTtTQUN6QixDQUFDLENBQUMsQ0FBQztRQUNKLElBQUksQ0FBQyxXQUFXLENBQUM7WUFDYixLQUFLO1lBQ0wsT0FBTyxFQUFFLDRCQUE0QixDQUNqQyxJQUFJLENBQUMsa0JBQWtCLEVBQ3ZCLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxLQUFLLENBQ3ZDO1NBQ0osQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELE1BQU07UUFDRixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDdkIsQ0FBQzs7O1lBdkZKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsMEJBQTBCO2dCQUNwQyxpOEZBQW9EO2dCQUVwRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTs7YUFDbEQ7OztZQWRHLFdBQVc7WUFQbUIsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHtcclxuICAgIGNvbmZpZ3VyYWJsZURlZmluaXRpb25Ub0luc3RhbmNlLFxyXG4gICAgQ29uZmlndXJhYmxlT3BlcmF0aW9uLFxyXG4gICAgQ29uZmlndXJhYmxlT3BlcmF0aW9uRGVmaW5pdGlvbixcclxuICAgIGNvbmZpZ3VyYWJsZU9wZXJhdGlvblZhbHVlSXNWYWxpZCxcclxuICAgIERhdGFTZXJ2aWNlLFxyXG4gICAgRGlhbG9nLFxyXG4gICAgRnVsZmlsbE9yZGVySW5wdXQsXHJcbiAgICBHbG9iYWxGbGFnLFxyXG4gICAgT3JkZXJEZXRhaWwsXHJcbiAgICBPcmRlckRldGFpbEZyYWdtZW50LFxyXG4gICAgdG9Db25maWd1cmFibGVPcGVyYXRpb25JbnB1dCxcclxufSBmcm9tICdAdmVuZHVyZS9hZG1pbi11aS9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICd2ZHItZnVsZmlsbC1vcmRlci1kaWFsb2cnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2Z1bGZpbGwtb3JkZXItZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2Z1bGZpbGwtb3JkZXItZGlhbG9nLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIEZ1bGZpbGxPcmRlckRpYWxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIERpYWxvZzxGdWxmaWxsT3JkZXJJbnB1dD4sIE9uSW5pdCB7XHJcbiAgICByZXNvbHZlV2l0aDogKHJlc3VsdD86IEZ1bGZpbGxPcmRlcklucHV0KSA9PiB2b2lkO1xyXG4gICAgZnVsZmlsbG1lbnRIYW5kbGVyRGVmOiBDb25maWd1cmFibGVPcGVyYXRpb25EZWZpbml0aW9uO1xyXG4gICAgZnVsZmlsbG1lbnRIYW5kbGVyOiBDb25maWd1cmFibGVPcGVyYXRpb247XHJcbiAgICBmdWxmaWxsbWVudEhhbmRsZXJDb250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XHJcbiAgICBmdWxmaWxsbWVudFF1YW50aXRpZXM6IHsgW2xpbmVJZDogc3RyaW5nXTogeyBmdWxmaWxsQ291bnQ6IG51bWJlcjsgbWF4OiBudW1iZXIgfSB9ID0ge307XHJcblxyXG4gICAgLy8gUHJvdmlkZWQgYnkgbW9kYWxTZXJ2aWNlLmZyb21Db21wb25lbnQoKSBjYWxsXHJcbiAgICBvcmRlcjogT3JkZXJEZXRhaWxGcmFnbWVudDtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRhdGFTZXJ2aWNlOiBEYXRhU2VydmljZSwgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5kYXRhU2VydmljZS5zZXR0aW5ncy5nZXRHbG9iYWxTZXR0aW5ncygpLnNpbmdsZSQuc3Vic2NyaWJlKCh7IGdsb2JhbFNldHRpbmdzIH0pID0+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
@@ -15,7 +15,8 @@ export class LineFulfillmentComponent {
15
15
  * Returns the number of items in an OrderLine which are fulfilled.
16
16
  */
17
17
  getDeliveredCount(line) {
18
- return line.items.reduce((sum, item) => sum + (item.fulfillment ? 1 : 0), 0);
18
+ var _a, _b;
19
+ return ((_b = (_a = line.fulfillments) === null || _a === void 0 ? void 0 : _a.reduce((sum, fulfillment) => { var _a, _b; return sum + ((_b = (_a = fulfillment.summary.find(s => s.orderLine.id === line.id)) === null || _a === void 0 ? void 0 : _a.quantity) !== null && _b !== void 0 ? _b : 0); }, 0)) !== null && _b !== void 0 ? _b : 0);
19
20
  }
20
21
  getFulfillmentStatus(fulfilledCount, lineQuantity) {
21
22
  if (fulfilledCount === lineQuantity) {
@@ -27,27 +28,15 @@ export class LineFulfillmentComponent {
27
28
  return 'none';
28
29
  }
29
30
  getFulfillments(line) {
30
- const counts = {};
31
- for (const item of line.items) {
32
- if (item.fulfillment) {
33
- if (counts[item.fulfillment.id] === undefined) {
34
- counts[item.fulfillment.id] = 1;
35
- }
36
- else {
37
- counts[item.fulfillment.id]++;
38
- }
39
- }
40
- }
41
- const all = line.items.reduce((fulfillments, item) => {
42
- return item.fulfillment ? [...fulfillments, item.fulfillment] : fulfillments;
43
- }, []);
44
- return Object.entries(counts).map(([id, count]) => {
31
+ var _a, _b;
32
+ return ((_b = (_a = line.fulfillments) === null || _a === void 0 ? void 0 : _a.map(fulfillment => {
33
+ var _a;
34
+ const summaryLine = fulfillment.summary.find(s => s.orderLine.id === line.id);
45
35
  return {
46
- count,
47
- // tslint:disable-next-line:no-non-null-assertion
48
- fulfillment: all.find(f => f.id === id),
36
+ count: (_a = summaryLine === null || summaryLine === void 0 ? void 0 : summaryLine.quantity) !== null && _a !== void 0 ? _a : 0,
37
+ fulfillment,
49
38
  };
50
- });
39
+ })) !== null && _b !== void 0 ? _b : []);
51
40
  }
52
41
  }
53
42
  LineFulfillmentComponent.decorators = [
@@ -62,4 +51,4 @@ LineFulfillmentComponent.propDecorators = {
62
51
  line: [{ type: Input }],
63
52
  orderState: [{ type: Input }]
64
53
  };
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZS1mdWxmaWxsbWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL29yZGVyL3NyYy9jb21wb25lbnRzL2xpbmUtZnVsZmlsbG1lbnQvbGluZS1mdWxmaWxsbWVudC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQTRCLE1BQU0sZUFBZSxDQUFDO0FBWXBHLE1BQU0sT0FBTyx3QkFBd0I7SUFOckM7UUFTSSxtQkFBYyxHQUFHLENBQUMsQ0FBQztRQUVuQixpQkFBWSxHQUFvRSxFQUFFLENBQUM7SUFxRHZGLENBQUM7SUFuREcsV0FBVyxDQUFDLE9BQXNCO1FBQzlCLElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUNYLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN4RCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDaEcsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN2RDtJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNLLGlCQUFpQixDQUFDLElBQXVCO1FBQzdDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7SUFFTyxvQkFBb0IsQ0FBQyxjQUFzQixFQUFFLFlBQW9CO1FBQ3JFLElBQUksY0FBYyxLQUFLLFlBQVksRUFBRTtZQUNqQyxPQUFPLE1BQU0sQ0FBQztTQUNqQjtRQUNELElBQUksQ0FBQyxHQUFHLGNBQWMsSUFBSSxjQUFjLEdBQUcsWUFBWSxFQUFFO1lBQ3JELE9BQU8sU0FBUyxDQUFDO1NBQ3BCO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztJQUVPLGVBQWUsQ0FDbkIsSUFBdUI7UUFFdkIsTUFBTSxNQUFNLEdBQXdDLEVBQUUsQ0FBQztRQUV2RCxLQUFLLE1BQU0sSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDM0IsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO2dCQUNsQixJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxLQUFLLFNBQVMsRUFBRTtvQkFDM0MsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2lCQUNuQztxQkFBTTtvQkFDSCxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO2lCQUNqQzthQUNKO1NBQ0o7UUFDRCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFlBQVksRUFBRSxJQUFJLEVBQUUsRUFBRTtZQUNqRCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxZQUFZLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUM7UUFDakYsQ0FBQyxFQUFFLEVBQWdDLENBQUMsQ0FBQztRQUVyQyxPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRTtZQUM5QyxPQUFPO2dCQUNILEtBQUs7Z0JBQ0wsaURBQWlEO2dCQUNqRCxXQUFXLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFFO2FBQzNDLENBQUM7UUFDTixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7OztZQS9ESixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLHNCQUFzQjtnQkFDaEMsZzFFQUFnRDtnQkFFaEQsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07O2FBQ2xEOzs7bUJBRUksS0FBSzt5QkFDTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBPcmRlckRldGFpbCB9IGZyb20gJ0B2ZW5kdXJlL2FkbWluLXVpL2NvcmUnO1xyXG5pbXBvcnQgeyB1bmlxdWUgfSBmcm9tICdAdmVuZHVyZS9jb21tb24vbGliL3VuaXF1ZSc7XHJcblxyXG5leHBvcnQgdHlwZSBGdWxmaWxsbWVudFN0YXR1cyA9ICdmdWxsJyB8ICdwYXJ0aWFsJyB8ICdub25lJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICd2ZHItbGluZS1mdWxmaWxsbWVudCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vbGluZS1mdWxmaWxsbWVudC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9saW5lLWZ1bGZpbGxtZW50LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIExpbmVGdWxmaWxsbWVudENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcbiAgICBASW5wdXQoKSBsaW5lOiBPcmRlckRldGFpbC5MaW5lcztcclxuICAgIEBJbnB1dCgpIG9yZGVyU3RhdGU6IHN0cmluZztcclxuICAgIGZ1bGZpbGxlZENvdW50ID0gMDtcclxuICAgIGZ1bGZpbGxtZW50U3RhdHVzOiBGdWxmaWxsbWVudFN0YXR1cztcclxuICAgIGZ1bGZpbGxtZW50czogQXJyYXk8eyBjb3VudDogbnVtYmVyOyBmdWxmaWxsbWVudDogT3JkZXJEZXRhaWwuRnVsZmlsbG1lbnRzIH0+ID0gW107XHJcblxyXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmxpbmUpIHtcclxuICAgICAgICAgICAgdGhpcy5mdWxmaWxsZWRDb3VudCA9IHRoaXMuZ2V0RGVsaXZlcmVkQ291bnQodGhpcy5saW5lKTtcclxuICAgICAgICAgICAgdGhpcy5mdWxmaWxsbWVudFN0YXR1cyA9IHRoaXMuZ2V0RnVsZmlsbG1lbnRTdGF0dXModGhpcy5mdWxmaWxsZWRDb3VudCwgdGhpcy5saW5lLml0ZW1zLmxlbmd0aCk7XHJcbiAgICAgICAgICAgIHRoaXMuZnVsZmlsbG1lbnRzID0gdGhpcy5nZXRGdWxmaWxsbWVudHModGhpcy5saW5lKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgaXRlbXMgaW4gYW4gT3JkZXJMaW5lIHdoaWNoIGFyZSBmdWxmaWxsZWQuXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgZ2V0RGVsaXZlcmVkQ291bnQobGluZTogT3JkZXJEZXRhaWwuTGluZXMpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiBsaW5lLml0ZW1zLnJlZHVjZSgoc3VtLCBpdGVtKSA9PiBzdW0gKyAoaXRlbS5mdWxmaWxsbWVudCA/IDEgOiAwKSwgMCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRGdWxmaWxsbWVudFN0YXR1cyhmdWxmaWxsZWRDb3VudDogbnVtYmVyLCBsaW5lUXVhbnRpdHk6IG51bWJlcik6IEZ1bGZpbGxtZW50U3RhdHVzIHtcclxuICAgICAgICBpZiAoZnVsZmlsbGVkQ291bnQgPT09IGxpbmVRdWFudGl0eSkge1xyXG4gICAgICAgICAgICByZXR1cm4gJ2Z1bGwnO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoMCA8IGZ1bGZpbGxlZENvdW50ICYmIGZ1bGZpbGxlZENvdW50IDwgbGluZVF1YW50aXR5KSB7XHJcbiAgICAgICAgICAgIHJldHVybiAncGFydGlhbCc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiAnbm9uZSc7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRGdWxmaWxsbWVudHMoXHJcbiAgICAgICAgbGluZTogT3JkZXJEZXRhaWwuTGluZXMsXHJcbiAgICApOiBBcnJheTx7IGNvdW50OiBudW1iZXI7IGZ1bGZpbGxtZW50OiBPcmRlckRldGFpbC5GdWxmaWxsbWVudHMgfT4ge1xyXG4gICAgICAgIGNvbnN0IGNvdW50czogeyBbZnVsZmlsbG1lbnRJZDogc3RyaW5nXTogbnVtYmVyIH0gPSB7fTtcclxuXHJcbiAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIGxpbmUuaXRlbXMpIHtcclxuICAgICAgICAgICAgaWYgKGl0ZW0uZnVsZmlsbG1lbnQpIHtcclxuICAgICAgICAgICAgICAgIGlmIChjb3VudHNbaXRlbS5mdWxmaWxsbWVudC5pZF0gPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvdW50c1tpdGVtLmZ1bGZpbGxtZW50LmlkXSA9IDE7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvdW50c1tpdGVtLmZ1bGZpbGxtZW50LmlkXSsrO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGFsbCA9IGxpbmUuaXRlbXMucmVkdWNlKChmdWxmaWxsbWVudHMsIGl0ZW0pID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIGl0ZW0uZnVsZmlsbG1lbnQgPyBbLi4uZnVsZmlsbG1lbnRzLCBpdGVtLmZ1bGZpbGxtZW50XSA6IGZ1bGZpbGxtZW50cztcclxuICAgICAgICB9LCBbXSBhcyBPcmRlckRldGFpbC5GdWxmaWxsbWVudHNbXSk7XHJcblxyXG4gICAgICAgIHJldHVybiBPYmplY3QuZW50cmllcyhjb3VudHMpLm1hcCgoW2lkLCBjb3VudF0pID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgIGNvdW50LFxyXG4gICAgICAgICAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLW5vbi1udWxsLWFzc2VydGlvblxyXG4gICAgICAgICAgICAgICAgZnVsZmlsbG1lbnQ6IGFsbC5maW5kKGYgPT4gZi5pZCA9PT0gaWQpISxcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxufVxyXG4iXX0=
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZS1mdWxmaWxsbWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL29yZGVyL3NyYy9jb21wb25lbnRzL2xpbmUtZnVsZmlsbG1lbnQvbGluZS1mdWxmaWxsbWVudC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQTRCLE1BQU0sZUFBZSxDQUFDO0FBWXBHLE1BQU0sT0FBTyx3QkFBd0I7SUFOckM7UUFTSSxtQkFBYyxHQUFHLENBQUMsQ0FBQztRQUVuQixpQkFBWSxHQUdQLEVBQUUsQ0FBQztJQThDWixDQUFDO0lBNUNHLFdBQVcsQ0FBQyxPQUFzQjtRQUM5QixJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDWCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDeEQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2hHLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDdkQ7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxpQkFBaUIsQ0FBQyxJQUF1Qjs7UUFDN0MsT0FBTyxDQUNILE1BQUEsTUFBQSxJQUFJLENBQUMsWUFBWSwwQ0FBRSxNQUFNLENBQ3JCLENBQUMsR0FBRyxFQUFFLFdBQVcsRUFBRSxFQUFFLGVBQ2pCLE9BQUEsR0FBRyxHQUFHLENBQUMsTUFBQSxNQUFBLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLEVBQUUsQ0FBQywwQ0FBRSxRQUFRLG1DQUFJLENBQUMsQ0FBQyxDQUFBLEVBQUEsRUFDcEYsQ0FBQyxDQUNKLG1DQUFJLENBQUMsQ0FDVCxDQUFDO0lBQ04sQ0FBQztJQUVPLG9CQUFvQixDQUFDLGNBQXNCLEVBQUUsWUFBb0I7UUFDckUsSUFBSSxjQUFjLEtBQUssWUFBWSxFQUFFO1lBQ2pDLE9BQU8sTUFBTSxDQUFDO1NBQ2pCO1FBQ0QsSUFBSSxDQUFDLEdBQUcsY0FBYyxJQUFJLGNBQWMsR0FBRyxZQUFZLEVBQUU7WUFDckQsT0FBTyxTQUFTLENBQUM7U0FDcEI7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0lBRU8sZUFBZSxDQUNuQixJQUF1Qjs7UUFFdkIsT0FBTyxDQUNILE1BQUEsTUFBQSxJQUFJLENBQUMsWUFBWSwwQ0FBRSxHQUFHLENBQUMsV0FBVyxDQUFDLEVBQUU7O1lBQ2pDLE1BQU0sV0FBVyxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzlFLE9BQU87Z0JBQ0gsS0FBSyxFQUFFLE1BQUEsV0FBVyxhQUFYLFdBQVcsdUJBQVgsV0FBVyxDQUFFLFFBQVEsbUNBQUksQ0FBQztnQkFDakMsV0FBVzthQUNkLENBQUM7UUFDTixDQUFDLENBQUMsbUNBQUksRUFBRSxDQUNYLENBQUM7SUFDTixDQUFDOzs7WUEzREosU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxzQkFBc0I7Z0JBQ2hDLGcxRUFBZ0Q7Z0JBRWhELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNOzthQUNsRDs7O21CQUVJLEtBQUs7eUJBQ0wsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT3JkZXJEZXRhaWwsIE9yZGVyRGV0YWlsRnJhZ21lbnQgfSBmcm9tICdAdmVuZHVyZS9hZG1pbi11aS9jb3JlJztcclxuaW1wb3J0IHsgdW5pcXVlIH0gZnJvbSAnQHZlbmR1cmUvY29tbW9uL2xpYi91bmlxdWUnO1xyXG5cclxuZXhwb3J0IHR5cGUgRnVsZmlsbG1lbnRTdGF0dXMgPSAnZnVsbCcgfCAncGFydGlhbCcgfCAnbm9uZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAndmRyLWxpbmUtZnVsZmlsbG1lbnQnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2xpbmUtZnVsZmlsbG1lbnQuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vbGluZS1mdWxmaWxsbWVudC5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMaW5lRnVsZmlsbG1lbnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xyXG4gICAgQElucHV0KCkgbGluZTogT3JkZXJEZXRhaWwuTGluZXM7XHJcbiAgICBASW5wdXQoKSBvcmRlclN0YXRlOiBzdHJpbmc7XHJcbiAgICBmdWxmaWxsZWRDb3VudCA9IDA7XHJcbiAgICBmdWxmaWxsbWVudFN0YXR1czogRnVsZmlsbG1lbnRTdGF0dXM7XHJcbiAgICBmdWxmaWxsbWVudHM6IEFycmF5PHtcclxuICAgICAgICBjb3VudDogbnVtYmVyO1xyXG4gICAgICAgIGZ1bGZpbGxtZW50OiBOb25OdWxsYWJsZTxPcmRlckRldGFpbEZyYWdtZW50WydmdWxmaWxsbWVudHMnXT5bbnVtYmVyXTtcclxuICAgIH0+ID0gW107XHJcblxyXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmxpbmUpIHtcclxuICAgICAgICAgICAgdGhpcy5mdWxmaWxsZWRDb3VudCA9IHRoaXMuZ2V0RGVsaXZlcmVkQ291bnQodGhpcy5saW5lKTtcclxuICAgICAgICAgICAgdGhpcy5mdWxmaWxsbWVudFN0YXR1cyA9IHRoaXMuZ2V0RnVsZmlsbG1lbnRTdGF0dXModGhpcy5mdWxmaWxsZWRDb3VudCwgdGhpcy5saW5lLml0ZW1zLmxlbmd0aCk7XHJcbiAgICAgICAgICAgIHRoaXMuZnVsZmlsbG1lbnRzID0gdGhpcy5nZXRGdWxmaWxsbWVudHModGhpcy5saW5lKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgaXRlbXMgaW4gYW4gT3JkZXJMaW5lIHdoaWNoIGFyZSBmdWxmaWxsZWQuXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgZ2V0RGVsaXZlcmVkQ291bnQobGluZTogT3JkZXJEZXRhaWwuTGluZXMpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgIGxpbmUuZnVsZmlsbG1lbnRzPy5yZWR1Y2UoXHJcbiAgICAgICAgICAgICAgICAoc3VtLCBmdWxmaWxsbWVudCkgPT5cclxuICAgICAgICAgICAgICAgICAgICBzdW0gKyAoZnVsZmlsbG1lbnQuc3VtbWFyeS5maW5kKHMgPT4gcy5vcmRlckxpbmUuaWQgPT09IGxpbmUuaWQpPy5xdWFudGl0eSA/PyAwKSxcclxuICAgICAgICAgICAgICAgIDAsXHJcbiAgICAgICAgICAgICkgPz8gMFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRGdWxmaWxsbWVudFN0YXR1cyhmdWxmaWxsZWRDb3VudDogbnVtYmVyLCBsaW5lUXVhbnRpdHk6IG51bWJlcik6IEZ1bGZpbGxtZW50U3RhdHVzIHtcclxuICAgICAgICBpZiAoZnVsZmlsbGVkQ291bnQgPT09IGxpbmVRdWFudGl0eSkge1xyXG4gICAgICAgICAgICByZXR1cm4gJ2Z1bGwnO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoMCA8IGZ1bGZpbGxlZENvdW50ICYmIGZ1bGZpbGxlZENvdW50IDwgbGluZVF1YW50aXR5KSB7XHJcbiAgICAgICAgICAgIHJldHVybiAncGFydGlhbCc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiAnbm9uZSc7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRGdWxmaWxsbWVudHMoXHJcbiAgICAgICAgbGluZTogT3JkZXJEZXRhaWwuTGluZXMsXHJcbiAgICApOiBBcnJheTx7IGNvdW50OiBudW1iZXI7IGZ1bGZpbGxtZW50OiBOb25OdWxsYWJsZTxPcmRlckRldGFpbEZyYWdtZW50WydmdWxmaWxsbWVudHMnXT5bbnVtYmVyXSB9PiB7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgbGluZS5mdWxmaWxsbWVudHM/Lm1hcChmdWxmaWxsbWVudCA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBzdW1tYXJ5TGluZSA9IGZ1bGZpbGxtZW50LnN1bW1hcnkuZmluZChzID0+IHMub3JkZXJMaW5lLmlkID09PSBsaW5lLmlkKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY291bnQ6IHN1bW1hcnlMaW5lPy5xdWFudGl0eSA/PyAwLFxyXG4gICAgICAgICAgICAgICAgICAgIGZ1bGZpbGxtZW50LFxyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgfSkgPz8gW11cclxuICAgICAgICApO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -1,8 +1,11 @@
1
1
  import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
2
2
  import { FormBuilder } from '@angular/forms';
3
+ import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
4
+ import { ModalService } from '@vendure/admin-ui/core';
3
5
  export class OrderCustomFieldsCardComponent {
4
- constructor(formBuilder) {
6
+ constructor(formBuilder, modalService) {
5
7
  this.formBuilder = formBuilder;
8
+ this.modalService = modalService;
6
9
  this.customFieldsConfig = [];
7
10
  this.customFieldValues = {};
8
11
  this.updateClick = new EventEmitter();
@@ -19,21 +22,44 @@ export class OrderCustomFieldsCardComponent {
19
22
  this.customFieldForm.markAsPristine();
20
23
  this.editable = false;
21
24
  }
25
+ onCancelClick() {
26
+ if (this.customFieldForm.dirty) {
27
+ this.modalService
28
+ .dialog({
29
+ title: _('catalog.confirm-cancel'),
30
+ buttons: [
31
+ { type: 'secondary', label: _('common.keep-editing') },
32
+ { type: 'danger', label: _('common.discard-changes'), returnValue: true },
33
+ ],
34
+ })
35
+ .subscribe(result => {
36
+ if (result) {
37
+ this.customFieldForm.reset();
38
+ this.customFieldForm.markAsPristine();
39
+ this.editable = false;
40
+ }
41
+ });
42
+ }
43
+ else {
44
+ this.editable = false;
45
+ }
46
+ }
22
47
  }
23
48
  OrderCustomFieldsCardComponent.decorators = [
24
49
  { type: Component, args: [{
25
50
  selector: 'vdr-order-custom-fields-card',
26
- template: "<div class=\"card\" *ngIf=\"customFieldsConfig.length\">\r\n <div class=\"card-header\">\r\n {{ 'common.custom-fields' | translate }}\r\n </div>\r\n <div class=\"card-block\">\r\n <div class=\"card-text custom-field-form\" [class.editable]=\"editable\">\r\n <ng-container *ngFor=\"let customField of customFieldsConfig\">\r\n <vdr-custom-field-control\r\n entityName=\"Order\"\r\n [customFieldsFormGroup]=\"customFieldForm\"\r\n [compact]=\"true\"\r\n [readonly]=\"customField.readonly || !editable\"\r\n [customField]=\"customField\"\r\n ></vdr-custom-field-control>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"card-footer\">\r\n <button class=\"btn btn-sm btn-secondary\" (click)=\"editable = true\" *ngIf=\"!editable\">\r\n <clr-icon shape=\"pencil\"></clr-icon>\r\n {{ 'common.edit' | translate }}\r\n </button>\r\n <button\r\n class=\"btn btn-sm btn-primary\"\r\n (click)=\"onUpdateClick()\"\r\n *ngIf=\"editable\"\r\n [disabled]=\"customFieldForm.pristine || customFieldForm.invalid\"\r\n >\r\n <clr-icon shape=\"check\"></clr-icon>\r\n {{ 'common.update' | translate }}\r\n </button>\r\n </div>\r\n</div>\r\n",
51
+ template: "<div class=\"card\" *ngIf=\"customFieldsConfig.length\">\r\n <div class=\"card-header\">\r\n {{ 'common.custom-fields' | translate }}\r\n </div>\r\n <div class=\"card-block\">\r\n <div class=\"card-text custom-field-form\" [class.editable]=\"editable\">\r\n <vdr-tabbed-custom-fields\r\n entityName=\"Order\"\r\n [customFields]=\"customFieldsConfig\"\r\n [customFieldsFormGroup]=\"customFieldForm\"\r\n [readonly]=\"!editable\"\r\n [compact]=\"true\"\r\n ></vdr-tabbed-custom-fields>\r\n </div>\r\n </div>\r\n <div class=\"card-footer\">\r\n <button class=\"btn btn-sm btn-secondary\" (click)=\"editable = true\" *ngIf=\"!editable\">\r\n <clr-icon shape=\"pencil\"></clr-icon>\r\n {{ 'common.edit' | translate }}\r\n </button>\r\n <button\r\n class=\"btn btn-sm btn-primary\"\r\n (click)=\"onUpdateClick()\"\r\n *ngIf=\"editable\"\r\n [disabled]=\"customFieldForm.pristine || customFieldForm.invalid\"\r\n >\r\n <clr-icon shape=\"check\"></clr-icon>\r\n {{ 'common.update' | translate }}\r\n </button>\r\n <button\r\n class=\"btn btn-sm btn-secondary\"\r\n (click)=\"onCancelClick()\"\r\n *ngIf=\"editable\"\r\n >\r\n <clr-icon shape=\"times\"></clr-icon>\r\n {{ 'common.cancel' | translate }}\r\n </button>\r\n </div>\r\n</div>\r\n",
27
52
  changeDetection: ChangeDetectionStrategy.OnPush,
28
53
  styles: ["vdr-custom-field-control{margin-bottom:6px;display:block}.custom-field-form ::ng-deep .clr-control-label{color:var(--color-grey-400)}.custom-field-form.editable ::ng-deep .clr-control-label{color:inherit}\n"]
29
54
  },] }
30
55
  ];
31
56
  OrderCustomFieldsCardComponent.ctorParameters = () => [
32
- { type: FormBuilder }
57
+ { type: FormBuilder },
58
+ { type: ModalService }
33
59
  ];
34
60
  OrderCustomFieldsCardComponent.propDecorators = {
35
61
  customFieldsConfig: [{ type: Input }],
36
62
  customFieldValues: [{ type: Input }],
37
63
  updateClick: [{ type: Output }]
38
64
  };
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItY3VzdG9tLWZpZWxkcy1jYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvb3JkZXIvc3JjL2NvbXBvbmVudHMvb3JkZXItY3VzdG9tLWZpZWxkcy1jYXJkL29yZGVyLWN1c3RvbS1maWVsZHMtY2FyZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RyxPQUFPLEVBQUUsV0FBVyxFQUFhLE1BQU0sZ0JBQWdCLENBQUM7QUFTeEQsTUFBTSxPQUFPLDhCQUE4QjtJQU12QyxZQUFvQixXQUF3QjtRQUF4QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUxuQyx1QkFBa0IsR0FBd0IsRUFBRSxDQUFDO1FBQzdDLHNCQUFpQixHQUE0QixFQUFFLENBQUM7UUFDL0MsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBRWhELGFBQVEsR0FBRyxLQUFLLENBQUM7SUFDOEIsQ0FBQztJQUVoRCxRQUFRO1FBQ0osSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNsRCxLQUFLLE1BQU0sS0FBSyxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtZQUN6QyxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FDM0IsS0FBSyxDQUFDLElBQUksRUFDVixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQy9ELENBQUM7U0FDTDtJQUNMLENBQUM7SUFFRCxhQUFhO1FBQ1QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3RDLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQzFCLENBQUM7OztZQTVCSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLDhCQUE4QjtnQkFDeEMsMjZDQUF3RDtnQkFFeEQsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07O2FBQ2xEOzs7WUFSUSxXQUFXOzs7aUNBVWYsS0FBSztnQ0FDTCxLQUFLOzBCQUNMLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBDdXN0b21GaWVsZENvbmZpZyB9IGZyb20gJ0B2ZW5kdXJlL2FkbWluLXVpL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3Zkci1vcmRlci1jdXN0b20tZmllbGRzLWNhcmQnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL29yZGVyLWN1c3RvbS1maWVsZHMtY2FyZC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9vcmRlci1jdXN0b20tZmllbGRzLWNhcmQuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgT3JkZXJDdXN0b21GaWVsZHNDYXJkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIEBJbnB1dCgpIGN1c3RvbUZpZWxkc0NvbmZpZzogQ3VzdG9tRmllbGRDb25maWdbXSA9IFtdO1xyXG4gICAgQElucHV0KCkgY3VzdG9tRmllbGRWYWx1ZXM6IHsgW25hbWU6IHN0cmluZ106IGFueSB9ID0ge307XHJcbiAgICBAT3V0cHV0KCkgdXBkYXRlQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICAgIGN1c3RvbUZpZWxkRm9ybTogRm9ybUdyb3VwO1xyXG4gICAgZWRpdGFibGUgPSBmYWxzZTtcclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyKSB7fVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIHRoaXMuY3VzdG9tRmllbGRGb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7fSk7XHJcbiAgICAgICAgZm9yIChjb25zdCBmaWVsZCBvZiB0aGlzLmN1c3RvbUZpZWxkc0NvbmZpZykge1xyXG4gICAgICAgICAgICB0aGlzLmN1c3RvbUZpZWxkRm9ybS5hZGRDb250cm9sKFxyXG4gICAgICAgICAgICAgICAgZmllbGQubmFtZSxcclxuICAgICAgICAgICAgICAgIHRoaXMuZm9ybUJ1aWxkZXIuY29udHJvbCh0aGlzLmN1c3RvbUZpZWxkVmFsdWVzW2ZpZWxkLm5hbWVdKSxcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgb25VcGRhdGVDbGljaygpIHtcclxuICAgICAgICB0aGlzLnVwZGF0ZUNsaWNrLmVtaXQodGhpcy5jdXN0b21GaWVsZEZvcm0udmFsdWUpO1xyXG4gICAgICAgIHRoaXMuY3VzdG9tRmllbGRGb3JtLm1hcmtBc1ByaXN0aW5lKCk7XHJcbiAgICAgICAgdGhpcy5lZGl0YWJsZSA9IGZhbHNlO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItY3VzdG9tLWZpZWxkcy1jYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvb3JkZXIvc3JjL2NvbXBvbmVudHMvb3JkZXItY3VzdG9tLWZpZWxkcy1jYXJkL29yZGVyLWN1c3RvbS1maWVsZHMtY2FyZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RyxPQUFPLEVBQUUsV0FBVyxFQUFhLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFDLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUN0RSxPQUFPLEVBQXFCLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBUXpFLE1BQU0sT0FBTyw4QkFBOEI7SUFNdkMsWUFBb0IsV0FBd0IsRUFBVSxZQUEwQjtRQUE1RCxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUFVLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBTHZFLHVCQUFrQixHQUF3QixFQUFFLENBQUM7UUFDN0Msc0JBQWlCLEdBQTRCLEVBQUUsQ0FBQztRQUMvQyxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFFaEQsYUFBUSxHQUFHLEtBQUssQ0FBQztJQUNrRSxDQUFDO0lBRXBGLFFBQVE7UUFDSixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2xELEtBQUssTUFBTSxLQUFLLElBQUksSUFBSSxDQUFDLGtCQUFrQixFQUFFO1lBQ3pDLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUMzQixLQUFLLENBQUMsSUFBSSxFQUNWLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FDL0QsQ0FBQztTQUNMO0lBQ0wsQ0FBQztJQUVELGFBQWE7UUFDVCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xELElBQUksQ0FBQyxlQUFlLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDMUIsQ0FBQztJQUVELGFBQWE7UUFDVCxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFO1lBQzVCLElBQUksQ0FBQyxZQUFZO2lCQUNaLE1BQU0sQ0FBQztnQkFDSixLQUFLLEVBQUUsQ0FBQyxDQUFDLHdCQUF3QixDQUFDO2dCQUNsQyxPQUFPLEVBQUU7b0JBQ0wsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMscUJBQXFCLENBQUMsRUFBRTtvQkFDdEQsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsd0JBQXdCLENBQUMsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFO2lCQUM1RTthQUNKLENBQUM7aUJBQ0QsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUNoQixJQUFJLE1BQU0sRUFBRTtvQkFDUixJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssRUFBRSxDQUFDO29CQUM3QixJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsRUFBRSxDQUFDO29CQUN0QyxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztpQkFDekI7WUFDTCxDQUFDLENBQUMsQ0FBQztTQUNWO2FBQU07WUFDSCxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztTQUN6QjtJQUNMLENBQUM7OztZQWxESixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLDhCQUE4QjtnQkFDeEMsMmlEQUF3RDtnQkFFeEQsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07O2FBQ2xEOzs7WUFUUSxXQUFXO1lBRVEsWUFBWTs7O2lDQVNuQyxLQUFLO2dDQUNMLEtBQUs7MEJBQ0wsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IG1hcmtlciBhcyBfIH0gZnJvbSAnQGJpZXNiamVyZy9uZ3gtdHJhbnNsYXRlLWV4dHJhY3QtbWFya2VyJztcclxuaW1wb3J0IHsgQ3VzdG9tRmllbGRDb25maWcsIE1vZGFsU2VydmljZSB9IGZyb20gJ0B2ZW5kdXJlL2FkbWluLXVpL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3Zkci1vcmRlci1jdXN0b20tZmllbGRzLWNhcmQnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL29yZGVyLWN1c3RvbS1maWVsZHMtY2FyZC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9vcmRlci1jdXN0b20tZmllbGRzLWNhcmQuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgT3JkZXJDdXN0b21GaWVsZHNDYXJkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIEBJbnB1dCgpIGN1c3RvbUZpZWxkc0NvbmZpZzogQ3VzdG9tRmllbGRDb25maWdbXSA9IFtdO1xyXG4gICAgQElucHV0KCkgY3VzdG9tRmllbGRWYWx1ZXM6IHsgW25hbWU6IHN0cmluZ106IGFueSB9ID0ge307XHJcbiAgICBAT3V0cHV0KCkgdXBkYXRlQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICAgIGN1c3RvbUZpZWxkRm9ybTogRm9ybUdyb3VwO1xyXG4gICAgZWRpdGFibGUgPSBmYWxzZTtcclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLCBwcml2YXRlIG1vZGFsU2VydmljZTogTW9kYWxTZXJ2aWNlKSB7fVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIHRoaXMuY3VzdG9tRmllbGRGb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7fSk7XHJcbiAgICAgICAgZm9yIChjb25zdCBmaWVsZCBvZiB0aGlzLmN1c3RvbUZpZWxkc0NvbmZpZykge1xyXG4gICAgICAgICAgICB0aGlzLmN1c3RvbUZpZWxkRm9ybS5hZGRDb250cm9sKFxyXG4gICAgICAgICAgICAgICAgZmllbGQubmFtZSxcclxuICAgICAgICAgICAgICAgIHRoaXMuZm9ybUJ1aWxkZXIuY29udHJvbCh0aGlzLmN1c3RvbUZpZWxkVmFsdWVzW2ZpZWxkLm5hbWVdKSxcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgb25VcGRhdGVDbGljaygpIHtcclxuICAgICAgICB0aGlzLnVwZGF0ZUNsaWNrLmVtaXQodGhpcy5jdXN0b21GaWVsZEZvcm0udmFsdWUpO1xyXG4gICAgICAgIHRoaXMuY3VzdG9tRmllbGRGb3JtLm1hcmtBc1ByaXN0aW5lKCk7XHJcbiAgICAgICAgdGhpcy5lZGl0YWJsZSA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIG9uQ2FuY2VsQ2xpY2soKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuY3VzdG9tRmllbGRGb3JtLmRpcnR5KSB7XHJcbiAgICAgICAgICAgIHRoaXMubW9kYWxTZXJ2aWNlXHJcbiAgICAgICAgICAgICAgICAuZGlhbG9nKHtcclxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogXygnY2F0YWxvZy5jb25maXJtLWNhbmNlbCcpLFxyXG4gICAgICAgICAgICAgICAgICAgIGJ1dHRvbnM6IFtcclxuICAgICAgICAgICAgICAgICAgICAgICAgeyB0eXBlOiAnc2Vjb25kYXJ5JywgbGFiZWw6IF8oJ2NvbW1vbi5rZWVwLWVkaXRpbmcnKSB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7IHR5cGU6ICdkYW5nZXInLCBsYWJlbDogXygnY29tbW9uLmRpc2NhcmQtY2hhbmdlcycpLCByZXR1cm5WYWx1ZTogdHJ1ZSB9LFxyXG4gICAgICAgICAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZShyZXN1bHQgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jdXN0b21GaWVsZEZvcm0ucmVzZXQoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jdXN0b21GaWVsZEZvcm0ubWFya0FzUHJpc3RpbmUoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5lZGl0YWJsZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuZWRpdGFibGUgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19