@colijnit/transaction 1.9.31 → 12.0.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 (125) hide show
  1. package/app/component/common/icon/icon.component.d.ts +1 -2
  2. package/bundles/colijnit-transaction.umd.js +950 -983
  3. package/bundles/colijnit-transaction.umd.js.map +1 -1
  4. package/colijnit-transaction.d.ts +14 -14
  5. package/colijnit-transaction.metadata.json +1 -1
  6. package/esm2015/app/component/checkout/checkout/checkout.component.js +22 -26
  7. package/esm2015/app/component/checkout/checkout-login/checkout-login.component.js +18 -27
  8. package/esm2015/app/component/checkout/checkout-overview/checkout-overview.component.js +26 -49
  9. package/esm2015/app/component/checkout/checkout-overview-block/checkout-overview-block.component.js +17 -24
  10. package/esm2015/app/component/checkout/checkout-overview-delivery-address/checkout-overview-delivery-address.component.js +18 -24
  11. package/esm2015/app/component/checkout/checkout-overview-delivery-edit/checkout-overview-delivery-edit.component.js +27 -42
  12. package/esm2015/app/component/checkout/checkout-overview-relation-address/checkout-overview-relation-address.component.js +19 -22
  13. package/esm2015/app/component/checkout/checkout-overview-relation-edit/checkout-overview-relation-edit.component.js +25 -36
  14. package/esm2015/app/component/checkout/checkout-relation-suggestions-list/checkout-relation-suggestions-list.component.js +18 -24
  15. package/esm2015/app/component/checkout/checkout-relation-suggestions-list-item/checkout-relation-suggestions-list-item.component.js +16 -21
  16. package/esm2015/app/component/checkout/ione-checkout.component.js +27 -34
  17. package/esm2015/app/component/checkout/ione-checkout.module.js +55 -58
  18. package/esm2015/app/component/checkout/retail-transaction-checkout/retail-transaction-checkout.component.js +16 -18
  19. package/esm2015/app/component/common/icon/icon.component.js +14 -18
  20. package/esm2015/app/component/common/image-display/image-display.component.js +19 -36
  21. package/esm2015/app/component/common/no-image-display/no-image-display.component.js +14 -20
  22. package/esm2015/app/component/core/core.module.js +32 -34
  23. package/esm2015/app/component/shopping-cart/characteristic-answer/characteristic-answer.component.js +20 -27
  24. package/esm2015/app/component/shopping-cart/ione-shopping-cart.component.js +31 -48
  25. package/esm2015/app/component/shopping-cart/ione-shopping-cart.module.js +51 -52
  26. package/esm2015/app/component/shopping-cart/shopping-cart/shopping-cart.component.js +29 -49
  27. package/esm2015/app/component/shopping-cart/shopping-cart-line/shopping-cart-line.component.js +25 -38
  28. package/esm2015/app/component/shopping-cart/shopping-cart-manager/shopping-cart-manager.component.js +27 -38
  29. package/esm2015/app/component/shopping-cart/stock-status-indicator/stock-status-indicator.component.js +13 -17
  30. package/esm2015/app/enum/checkout-steps.enum.js +1 -1
  31. package/esm2015/app/enum/content-view-mode.enum.js +1 -1
  32. package/esm2015/app/enum/direction.enum.js +1 -1
  33. package/esm2015/app/enum/language-code.enum.js +1 -1
  34. package/esm2015/app/enum/order-discount-type.enum.js +1 -1
  35. package/esm2015/app/enum/time-size.type.js +1 -1
  36. package/esm2015/app/model/business-object.js +6 -6
  37. package/esm2015/app/model/text-value-container.js +1 -1
  38. package/esm2015/app/pipe/append.pipe.js +6 -8
  39. package/esm2015/app/pipe/co-currency.pipe.js +8 -11
  40. package/esm2015/app/pipe/date-duration.pipe.js +6 -8
  41. package/esm2015/app/pipe/delivery-time.pipe.js +6 -8
  42. package/esm2015/app/pipe/localize.pipe.js +9 -13
  43. package/esm2015/app/pipe/safe-style-pipe.js +9 -11
  44. package/esm2015/app/service/dictionary.service.js +10 -10
  45. package/esm2015/app/service/ione-connector-adapter.service.js +8 -8
  46. package/esm2015/app/service/options.service.js +8 -8
  47. package/esm2015/app/service/transaction-event.service.js +6 -8
  48. package/esm2015/app/service/transaction.service.js +11 -12
  49. package/esm2015/app/utils/string-utils.js +1 -1
  50. package/esm2015/assets/dictionary/text.properties.js +1 -1
  51. package/esm2015/colijnit-transaction.js +15 -15
  52. package/esm2015/factory/business-object-factory.js +1 -1
  53. package/esm2015/factory/decorators/boolean.decorator.js +1 -1
  54. package/esm2015/factory/decorators/complex-array.decorator.js +1 -1
  55. package/esm2015/factory/decorators/complex-field.decorator.js +2 -2
  56. package/esm2015/factory/decorators/date-field.decorator.js +1 -1
  57. package/esm2015/factory/decorators/string-number.decorator.js +1 -1
  58. package/esm2015/public_api.js +1 -1
  59. package/esm2015/utils/array-utils.js +1 -1
  60. package/esm2015/utils/is-nill.function.js +1 -1
  61. package/fesm2015/colijnit-transaction.js +640 -799
  62. package/fesm2015/colijnit-transaction.js.map +1 -1
  63. package/package.json +33 -23
  64. package/bundles/colijnit-transaction.umd.min.js +0 -16
  65. package/bundles/colijnit-transaction.umd.min.js.map +0 -1
  66. package/enum/icon.enum.d.ts +0 -281
  67. package/esm2015/enum/icon.enum.js +0 -283
  68. package/esm5/app/component/checkout/checkout/checkout.component.js +0 -196
  69. package/esm5/app/component/checkout/checkout-login/checkout-login.component.js +0 -62
  70. package/esm5/app/component/checkout/checkout-overview/checkout-overview.component.js +0 -183
  71. package/esm5/app/component/checkout/checkout-overview-block/checkout-overview-block.component.js +0 -48
  72. package/esm5/app/component/checkout/checkout-overview-delivery-address/checkout-overview-delivery-address.component.js +0 -34
  73. package/esm5/app/component/checkout/checkout-overview-delivery-edit/checkout-overview-delivery-edit.component.js +0 -298
  74. package/esm5/app/component/checkout/checkout-overview-relation-address/checkout-overview-relation-address.component.js +0 -98
  75. package/esm5/app/component/checkout/checkout-overview-relation-edit/checkout-overview-relation-edit.component.js +0 -303
  76. package/esm5/app/component/checkout/checkout-relation-suggestions-list/checkout-relation-suggestions-list.component.js +0 -33
  77. package/esm5/app/component/checkout/checkout-relation-suggestions-list-item/checkout-relation-suggestions-list-item.component.js +0 -48
  78. package/esm5/app/component/checkout/ione-checkout.component.js +0 -163
  79. package/esm5/app/component/checkout/ione-checkout.module.js +0 -82
  80. package/esm5/app/component/checkout/retail-transaction-checkout/retail-transaction-checkout.component.js +0 -62
  81. package/esm5/app/component/common/icon/icon.component.js +0 -40
  82. package/esm5/app/component/common/image-display/image-display.component.js +0 -57
  83. package/esm5/app/component/common/no-image-display/no-image-display.component.js +0 -29
  84. package/esm5/app/component/core/core.module.js +0 -48
  85. package/esm5/app/component/shopping-cart/characteristic-answer/characteristic-answer.component.js +0 -66
  86. package/esm5/app/component/shopping-cart/ione-shopping-cart.component.js +0 -169
  87. package/esm5/app/component/shopping-cart/ione-shopping-cart.module.js +0 -70
  88. package/esm5/app/component/shopping-cart/shopping-cart/shopping-cart.component.js +0 -179
  89. package/esm5/app/component/shopping-cart/shopping-cart-line/shopping-cart-line.component.js +0 -208
  90. package/esm5/app/component/shopping-cart/shopping-cart-manager/shopping-cart-manager.component.js +0 -563
  91. package/esm5/app/component/shopping-cart/stock-status-indicator/stock-status-indicator.component.js +0 -28
  92. package/esm5/app/enum/checkout-steps.enum.js +0 -10
  93. package/esm5/app/enum/content-view-mode.enum.js +0 -10
  94. package/esm5/app/enum/direction.enum.js +0 -9
  95. package/esm5/app/enum/language-code.enum.js +0 -8
  96. package/esm5/app/enum/order-discount-type.enum.js +0 -7
  97. package/esm5/app/enum/time-size.type.js +0 -10
  98. package/esm5/app/model/business-object.js +0 -85
  99. package/esm5/app/model/text-value-container.js +0 -7
  100. package/esm5/app/pipe/append.pipe.js +0 -22
  101. package/esm5/app/pipe/co-currency.pipe.js +0 -55
  102. package/esm5/app/pipe/date-duration.pipe.js +0 -61
  103. package/esm5/app/pipe/delivery-time.pipe.js +0 -38
  104. package/esm5/app/pipe/localize.pipe.js +0 -34
  105. package/esm5/app/pipe/safe-style-pipe.js +0 -22
  106. package/esm5/app/service/dictionary.service.js +0 -83
  107. package/esm5/app/service/ione-connector-adapter.service.js +0 -549
  108. package/esm5/app/service/options.service.js +0 -108
  109. package/esm5/app/service/transaction-event.service.js +0 -21
  110. package/esm5/app/service/transaction.service.js +0 -690
  111. package/esm5/app/utils/string-utils.js +0 -73
  112. package/esm5/assets/dictionary/text.properties.js +0 -282
  113. package/esm5/colijnit-transaction.js +0 -36
  114. package/esm5/enum/icon.enum.js +0 -283
  115. package/esm5/factory/business-object-factory.js +0 -122
  116. package/esm5/factory/decorators/boolean.decorator.js +0 -106
  117. package/esm5/factory/decorators/complex-array.decorator.js +0 -59
  118. package/esm5/factory/decorators/complex-field.decorator.js +0 -61
  119. package/esm5/factory/decorators/date-field.decorator.js +0 -40
  120. package/esm5/factory/decorators/string-number.decorator.js +0 -47
  121. package/esm5/public_api.js +0 -8
  122. package/esm5/utils/array-utils.js +0 -188
  123. package/esm5/utils/is-nill.function.js +0 -5
  124. package/fesm5/colijnit-transaction.js +0 -5620
  125. package/fesm5/colijnit-transaction.js.map +0 -1
@@ -1,169 +0,0 @@
1
- import { __awaiter, __decorate, __generator } from "tslib";
2
- import { ChangeDetectorRef, Component, EventEmitter, Inject, Input, OnDestroy, OnInit, Output, ViewChild, ViewEncapsulation } from "@angular/core";
3
- import { OptionsService } from "../../service/options.service";
4
- import { ShoppingCartManagerComponent } from "./shopping-cart-manager/shopping-cart-manager.component";
5
- import { ShoppingCartComponent } from "./shopping-cart/shopping-cart.component";
6
- import { TransactionService } from "../../service/transaction.service";
7
- import { DictionaryService } from "../../service/dictionary.service";
8
- import { IOneConnectorAdapterService } from "../../service/ione-connector-adapter.service";
9
- import { TransactionEventService } from "../../service/transaction-event.service";
10
- import { PromptService } from "@colijnit/corecomponents_v9";
11
- var IoneShoppingCartComponent = /** @class */ (function () {
12
- function IoneShoppingCartComponent(_changeDetector, _optionsService, _connector, _dictionary, _service, transactionEvents, _promptService) {
13
- var _this = this;
14
- this._changeDetector = _changeDetector;
15
- this._optionsService = _optionsService;
16
- this._connector = _connector;
17
- this._dictionary = _dictionary;
18
- this._service = _service;
19
- this.transactionEvents = transactionEvents;
20
- this._promptService = _promptService;
21
- this.hideOverviewButton = false;
22
- this.hideCheckoutButton = false;
23
- this.hideCloseCartButton = false;
24
- this.closeCart = new EventEmitter();
25
- this.checkout = new EventEmitter();
26
- this.overview = new EventEmitter();
27
- this.show = false;
28
- this.amountOfLines = 0;
29
- this.upAndLoaded = false;
30
- this.overviewMode = true;
31
- this._subscriptions = [];
32
- this._remoteOptions = true;
33
- this._publicOptions = true;
34
- this._subscriptions.push(this._optionsService.optionsLoaded.subscribe(function (loaded) { return _this._handleSettingsLoaded(loaded); }));
35
- }
36
- Object.defineProperty(IoneShoppingCartComponent.prototype, "options", {
37
- set: function (value) {
38
- if (value) {
39
- var options = void 0;
40
- if (typeof value === "string") {
41
- options = JSON.parse(value);
42
- }
43
- else {
44
- options = value;
45
- }
46
- this._publicOptions = true;
47
- this._optionsService.initialize(options).then();
48
- }
49
- },
50
- enumerable: true,
51
- configurable: true
52
- });
53
- Object.defineProperty(IoneShoppingCartComponent.prototype, "transactionNr", {
54
- get: function () {
55
- return this._service.currentTransaction.transactionNr;
56
- },
57
- enumerable: true,
58
- configurable: true
59
- });
60
- IoneShoppingCartComponent.prototype.ngOnInit = function () {
61
- if (!this._publicOptions) {
62
- this._optionsService.initializeDevelopmentOptions(this._remoteOptions);
63
- }
64
- };
65
- IoneShoppingCartComponent.prototype.ngOnDestroy = function () {
66
- this._subscriptions.forEach(function (subscription) { return subscription.unsubscribe(); });
67
- };
68
- IoneShoppingCartComponent.prototype.onCloseCartButtonClicked = function () {
69
- this.closeCart.emit();
70
- };
71
- IoneShoppingCartComponent.prototype.onCheckoutButtonClicked = function () {
72
- this.checkout.emit();
73
- };
74
- IoneShoppingCartComponent.prototype.onOverviewButtonClicked = function () {
75
- this.overview.emit();
76
- };
77
- IoneShoppingCartComponent.prototype.linesChanged = function (openCart) {
78
- this.amountOfLines = this.manager ? this.manager.amountOfLines : 0;
79
- };
80
- IoneShoppingCartComponent.prototype.addArticle = function (articleNo, amount) {
81
- this.transactionEvents.addToCartBySku.next({ sku: articleNo, amount: amount, popCart: true });
82
- };
83
- IoneShoppingCartComponent.prototype.addArticleByBySelectorResult = function (selectorResult, popCart) {
84
- this.transactionEvents.addToCartBySelectorResult.next({ selectorResult: selectorResult, popCart: popCart });
85
- };
86
- IoneShoppingCartComponent.prototype._handleSettingsLoaded = function (loaded) {
87
- return __awaiter(this, void 0, void 0, function () {
88
- return __generator(this, function (_a) {
89
- switch (_a.label) {
90
- case 0:
91
- if (!loaded) return [3 /*break*/, 2];
92
- return [4 /*yield*/, this._initConnection().then()];
93
- case 1:
94
- _a.sent();
95
- this.upAndLoaded = true;
96
- _a.label = 2;
97
- case 2: return [2 /*return*/];
98
- }
99
- });
100
- });
101
- };
102
- IoneShoppingCartComponent.prototype._initConnection = function () {
103
- return __awaiter(this, void 0, void 0, function () {
104
- var _this = this;
105
- return __generator(this, function (_a) {
106
- switch (_a.label) {
107
- case 0: return [4 /*yield*/, this._connector.connect(this._optionsService.options)];
108
- case 1:
109
- _a.sent();
110
- if (this._optionsService.options.url) {
111
- this._dictionary.rootUrl = this._optionsService.options.url.replace("/ajaxservice", "");
112
- }
113
- return [4 /*yield*/, this._dictionary.setDictionary(this._optionsService.options.languageCode)];
114
- case 2:
115
- _a.sent();
116
- setTimeout(function () {
117
- _this._changeDetector.detectChanges();
118
- });
119
- return [2 /*return*/];
120
- }
121
- });
122
- });
123
- };
124
- IoneShoppingCartComponent.ctorParameters = function () { return [
125
- { type: ChangeDetectorRef },
126
- { type: OptionsService },
127
- { type: IOneConnectorAdapterService },
128
- { type: DictionaryService },
129
- { type: TransactionService },
130
- { type: TransactionEventService },
131
- { type: PromptService }
132
- ]; };
133
- __decorate([
134
- ViewChild(ShoppingCartManagerComponent)
135
- ], IoneShoppingCartComponent.prototype, "manager", void 0);
136
- __decorate([
137
- ViewChild(ShoppingCartComponent)
138
- ], IoneShoppingCartComponent.prototype, "shoppingCart", void 0);
139
- __decorate([
140
- Input()
141
- ], IoneShoppingCartComponent.prototype, "options", null);
142
- __decorate([
143
- Input()
144
- ], IoneShoppingCartComponent.prototype, "hideOverviewButton", void 0);
145
- __decorate([
146
- Input()
147
- ], IoneShoppingCartComponent.prototype, "hideCheckoutButton", void 0);
148
- __decorate([
149
- Input()
150
- ], IoneShoppingCartComponent.prototype, "hideCloseCartButton", void 0);
151
- __decorate([
152
- Output()
153
- ], IoneShoppingCartComponent.prototype, "closeCart", void 0);
154
- __decorate([
155
- Output()
156
- ], IoneShoppingCartComponent.prototype, "checkout", void 0);
157
- __decorate([
158
- Output()
159
- ], IoneShoppingCartComponent.prototype, "overview", void 0);
160
- IoneShoppingCartComponent = __decorate([
161
- Component({
162
- selector: "ione-shopping-cart",
163
- template: "\n <ng-container *ngIf=\"upAndLoaded\">\n <shopping-cart-manager\n (linesChanged)=\"linesChanged($event)\"\n ></shopping-cart-manager>\n </ng-container>\n <ng-container *ngIf=\"show\">\n <shopping-cart\n [hideOverviewButton]=\"hideOverviewButton\"\n [hideCloseCartButton]=\"hideCloseCartButton\"\n [hideCheckoutButton]=\"hideCheckoutButton\"\n (overview)=\"onOverviewButtonClicked()\"\n (closeCart)=\"onCloseCartButtonClicked()\"\n (checkout)=\"onCheckoutButtonClicked()\"\n ></shopping-cart>\n </ng-container>\n "
164
- })
165
- ], IoneShoppingCartComponent);
166
- return IoneShoppingCartComponent;
167
- }());
168
- export { IoneShoppingCartComponent };
169
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW9uZS1zaG9wcGluZy1jYXJ0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bjb2xpam5pdC90cmFuc2FjdGlvbi8iLCJzb3VyY2VzIjpbImFwcC9jb21wb25lbnQvc2hvcHBpbmctY2FydC9pb25lLXNob3BwaW5nLWNhcnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQUUsTUFBTSxFQUNwQixLQUFLLEVBQ0wsU0FBUyxFQUNULE1BQU0sRUFDTixNQUFNLEVBQ04sU0FBUyxFQUFFLGlCQUFpQixFQUM3QixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDN0QsT0FBTyxFQUFDLDRCQUE0QixFQUFDLE1BQU0seURBQXlELENBQUM7QUFDckcsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDOUUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDckUsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sOENBQThDLENBQUM7QUFDekYsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDaEYsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBc0IxRDtJQW9ERSxtQ0FDUyxlQUFrQyxFQUNsQyxlQUErQixFQUMvQixVQUF1QyxFQUN2QyxXQUE4QixFQUM5QixRQUE0QixFQUM1QixpQkFBMEMsRUFDMUMsY0FBNkI7UUFQdEMsaUJBWUM7UUFYUSxvQkFBZSxHQUFmLGVBQWUsQ0FBbUI7UUFDbEMsb0JBQWUsR0FBZixlQUFlLENBQWdCO1FBQy9CLGVBQVUsR0FBVixVQUFVLENBQTZCO1FBQ3ZDLGdCQUFXLEdBQVgsV0FB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QixjQUFjO2dCQUNuQiwyQkFBMkI7Z0JBQzFCLGlCQUFpQjtnQkFDcEIsa0JBQWtCO2dCQUNULHVCQUF1QjtnQkFDMUIsYUFBYTs7SUF6RHRDO1FBREMsU0FBUyxDQUFDLDRCQUE0QixDQUFDOzhEQUNLO0lBRzdDO1FBREMsU0FBUyxDQUFDLHFCQUFxQixDQUFDO21FQUNVO0lBRzNDO1FBREMsS0FBSyxFQUFFOzREQVlQO0lBR0Q7UUFEQyxLQUFLLEVBQUU7eUVBQ21DO0lBRzNDO1FBREMsS0FBSyxFQUFFO3lFQUNtQztJQUczQztRQURDLEtBQUssRUFBRTswRUFDb0M7SUFHNUM7UUFEQyxNQUFNLEVBQUU7Z0VBQ3VEO0lBR2hFO1FBREMsTUFBTSxFQUFJOytEQUNvRDtJQUcvRDtRQURDLE1BQU0sRUFBSTsrREFDb0Q7SUFyQ3BELHlCQUF5QjtRQXBCckMsU0FBUyxDQUFDO1lBQ1QsUUFBUSxFQUFFLG9CQUFvQjtZQUM5QixRQUFRLEVBQUUscWxCQWdCVDtTQUNGLENBQUM7T0FDVyx5QkFBeUIsQ0FzSHJDO0lBQUQsZ0NBQUM7Q0FBQSxBQXRIRCxJQXNIQztTQXRIWSx5QkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsIEluamVjdCxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHtPcHRpb25zU2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2Uvb3B0aW9ucy5zZXJ2aWNlXCI7XG5pbXBvcnQge1Nob3BwaW5nQ2FydE1hbmFnZXJDb21wb25lbnR9IGZyb20gXCIuL3Nob3BwaW5nLWNhcnQtbWFuYWdlci9zaG9wcGluZy1jYXJ0LW1hbmFnZXIuY29tcG9uZW50XCI7XG5pbXBvcnQge1Nob3BwaW5nQ2FydENvbXBvbmVudH0gZnJvbSBcIi4vc2hvcHBpbmctY2FydC9zaG9wcGluZy1jYXJ0LmNvbXBvbmVudFwiO1xuaW1wb3J0IHtUcmFuc2FjdGlvblNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLnNlcnZpY2VcIjtcbmltcG9ydCB7RGljdGlvbmFyeVNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL2RpY3Rpb25hcnkuc2VydmljZVwiO1xuaW1wb3J0IHtJT25lQ29ubmVjdG9yQWRhcHRlclNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL2lvbmUtY29ubmVjdG9yLWFkYXB0ZXIuc2VydmljZVwiO1xuaW1wb3J0IHtUcmFuc2FjdGlvbkV2ZW50U2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tZXZlbnQuc2VydmljZVwiO1xuaW1wb3J0IHtQcm9tcHRTZXJ2aWNlfSBmcm9tIFwiQGNvbGlqbml0L2NvcmVjb21wb25lbnRzX3Y5XCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJpb25lLXNob3BwaW5nLWNhcnRcIixcbiAgdGVtcGxhdGU6IGBcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidXBBbmRMb2FkZWRcIj5cbiAgICAgIDxzaG9wcGluZy1jYXJ0LW1hbmFnZXJcbiAgICAgICAgKGxpbmVzQ2hhbmdlZCk9XCJsaW5lc0NoYW5nZWQoJGV2ZW50KVwiXG4gICAgICA+PC9zaG9wcGluZy1jYXJ0LW1hbmFnZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dcIj5cbiAgICAgIDxzaG9wcGluZy1jYXJ0XG4gICAgICAgIFtoaWRlT3ZlcnZpZXdCdXR0b25dPVwiaGlkZU92ZXJ2aWV3QnV0dG9uXCJcbiAgICAgICAgW2hpZGVDbG9zZUNhcnRCdXR0b25dPVwiaGlkZUNsb3NlQ2FydEJ1dHRvblwiXG4gICAgICAgIFtoaWRlQ2hlY2tvdXRCdXR0b25dPVwiaGlkZUNoZWNrb3V0QnV0dG9uXCJcbiAgICAgICAgKG92ZXJ2aWV3KT1cIm9uT3ZlcnZpZXdCdXR0b25DbGlja2VkKClcIlxuICAgICAgICAoY2xvc2VDYXJ0KT1cIm9uQ2xvc2VDYXJ0QnV0dG9uQ2xpY2tlZCgpXCJcbiAgICAgICAgKGNoZWNrb3V0KT1cIm9uQ2hlY2tvdXRCdXR0b25DbGlja2VkKClcIlxuICAgICAgPjwvc2hvcHBpbmctY2FydD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgYFxufSlcbmV4cG9ydCBjbGFzcyBJb25lU2hvcHBpbmdDYXJ0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBAVmlld0NoaWxkKFNob3BwaW5nQ2FydE1hbmFnZXJDb21wb25lbnQpXG4gIHB1YmxpYyBtYW5hZ2VyOiBTaG9wcGluZ0NhcnRNYW5hZ2VyQ29tcG9uZW50O1xuXG4gIEBWaWV3Q2hpbGQoU2hvcHBpbmdDYXJ0Q29tcG9uZW50KVxuICBwdWJsaWMgc2hvcHBpbmdDYXJ0OiBTaG9wcGluZ0NhcnRDb21wb25lbnQ7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBvcHRpb25zKHZhbHVlOiBhbnkpIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIGxldCBvcHRpb25zOiBhbnk7XG4gICAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIG9wdGlvbnMgPSBKU09OLnBhcnNlKHZhbHVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG9wdGlvbnMgPSB2YWx1ZTtcbiAgICAgIH1cbiAgICAgIHRoaXMuX3B1YmxpY09wdGlvbnMgPSB0cnVlO1xuICAgICAgdGhpcy5fb3B0aW9uc1NlcnZpY2UuaW5pdGlhbGl6ZShvcHRpb25zKS50aGVuKCk7XG4gICAgfVxuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIGhpZGVPdmVydmlld0J1dHRvbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBoaWRlQ2hlY2tvdXRCdXR0b246IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgaGlkZUNsb3NlQ2FydEJ1dHRvbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgY2xvc2VDYXJ0OiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgQE91dHB1dCggIClcbiAgcHVibGljIGNoZWNrb3V0OiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgQE91dHB1dCggIClcbiAgcHVibGljIG92ZXJ2aWV3OiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgcHVibGljIGdldCB0cmFuc2FjdGlvbk5yKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3NlcnZpY2UuY3VycmVudFRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uTnI7XG4gIH1cblxuICBwdWJsaWMgc2hvdzogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgYW1vdW50T2ZMaW5lczogbnVtYmVyID0gMDtcbiAgcHVibGljIHVwQW5kTG9hZGVkOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBvdmVydmlld01vZGU6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIHByaXZhdGUgX3N1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XG4gIHByaXZhdGUgX3JlbW90ZU9wdGlvbnM6IGJvb2xlYW4gPSB0cnVlO1xuICBwcml2YXRlIF9wdWJsaWNPcHRpb25zOiBib29sZWFuID0gdHJ1ZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgX2NoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwdWJsaWMgX29wdGlvbnNTZXJ2aWNlOiBPcHRpb25zU2VydmljZSxcbiAgICBwdWJsaWMgX2Nvbm5lY3RvcjogSU9uZUNvbm5lY3RvckFkYXB0ZXJTZXJ2aWNlLFxuICAgIHB1YmxpYyBfZGljdGlvbmFyeTogRGljdGlvbmFyeVNlcnZpY2UsXG4gICAgcHVibGljIF9zZXJ2aWNlOiBUcmFuc2FjdGlvblNlcnZpY2UsXG4gICAgcHVibGljIHRyYW5zYWN0aW9uRXZlbnRzOiBUcmFuc2FjdGlvbkV2ZW50U2VydmljZSxcbiAgICBwdWJsaWMgX3Byb21wdFNlcnZpY2U6IFByb21wdFNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgdGhpcy5fb3B0aW9uc1NlcnZpY2Uub3B0aW9uc0xvYWRlZC5zdWJzY3JpYmUobG9hZGVkID0+IHRoaXMuX2hhbmRsZVNldHRpbmdzTG9hZGVkKGxvYWRlZCkpLFxuICAgICk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX3B1YmxpY09wdGlvbnMpIHtcbiAgICAgIHRoaXMuX29wdGlvbnNTZXJ2aWNlLmluaXRpYWxpemVEZXZlbG9wbWVudE9wdGlvbnModGhpcy5fcmVtb3RlT3B0aW9ucyk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5mb3JFYWNoKHN1YnNjcmlwdGlvbiA9PiBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSk7XG4gIH1cblxuICBwdWJsaWMgb25DbG9zZUNhcnRCdXR0b25DbGlja2VkKCk6IHZvaWQge1xuICAgIHRoaXMuY2xvc2VDYXJ0LmVtaXQoKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkNoZWNrb3V0QnV0dG9uQ2xpY2tlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmNoZWNrb3V0LmVtaXQoKTtcbiAgfVxuXG4gIHB1YmxpYyBvbk92ZXJ2aWV3QnV0dG9uQ2xpY2tlZCgpOiB2b2lkIHtcbiAgICB0aGlzLm92ZXJ2aWV3LmVtaXQoKTtcbiAgfVxuXG4gIHB1YmxpYyBsaW5lc0NoYW5nZWQob3BlbkNhcnQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmFtb3VudE9mTGluZXMgPSB0aGlzLm1hbmFnZXIgPyB0aGlzLm1hbmFnZXIuYW1vdW50T2ZMaW5lcyA6IDA7XG4gIH1cblxuICBwdWJsaWMgYWRkQXJ0aWNsZShhcnRpY2xlTm86IHN0cmluZywgYW1vdW50OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLnRyYW5zYWN0aW9uRXZlbnRzLmFkZFRvQ2FydEJ5U2t1Lm5leHQoe3NrdTogYXJ0aWNsZU5vLCBhbW91bnQ6IGFtb3VudCwgcG9wQ2FydDogdHJ1ZX0pO1xuICB9XG5cbiAgcHVibGljIGFkZEFydGljbGVCeUJ5U2VsZWN0b3JSZXN1bHQoc2VsZWN0b3JSZXN1bHQ6IHsgc2VsZWN0b3JEYXRhOiB7fTsgcXVhbnRpdHk6IG51bWJlcjsgYmFzZUdvb2RJZDogbnVtYmVyOyBnb29kSWQ6IG51bWJlciB9LCBwb3BDYXJ0OiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy50cmFuc2FjdGlvbkV2ZW50cy5hZGRUb0NhcnRCeVNlbGVjdG9yUmVzdWx0Lm5leHQoe3NlbGVjdG9yUmVzdWx0OiBzZWxlY3RvclJlc3VsdCwgcG9wQ2FydDogcG9wQ2FydH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBfaGFuZGxlU2V0dGluZ3NMb2FkZWQobG9hZGVkOiBib29sZWFuKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKGxvYWRlZCkge1xuICAgICAgYXdhaXQgdGhpcy5faW5pdENvbm5lY3Rpb24oKS50aGVuKCk7XG4gICAgICB0aGlzLnVwQW5kTG9hZGVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIF9pbml0Q29ubmVjdGlvbigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLl9jb25uZWN0b3IuY29ubmVjdCh0aGlzLl9vcHRpb25zU2VydmljZS5vcHRpb25zKTtcblxuICAgIGlmICh0aGlzLl9vcHRpb25zU2VydmljZS5vcHRpb25zLnVybCkge1xuICAgICAgdGhpcy5fZGljdGlvbmFyeS5yb290VXJsID0gdGhpcy5fb3B0aW9uc1NlcnZpY2Uub3B0aW9ucy51cmwucmVwbGFjZShcIi9hamF4c2VydmljZVwiLCBcIlwiKTtcbiAgICB9XG4gICAgYXdhaXQgdGhpcy5fZGljdGlvbmFyeS5zZXREaWN0aW9uYXJ5KHRoaXMuX29wdGlvbnNTZXJ2aWNlLm9wdGlvbnMubGFuZ3VhZ2VDb2RlKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -1,70 +0,0 @@
1
- import { __decorate } from "tslib";
2
- import { NgModule } from "@angular/core";
3
- import { BrowserAnimationsModule } from "@angular/platform-browser/animations";
4
- import { ButtonModule, CoDialogModule, CoDialogPromptModule, FormModule, IconModule, InputCheckboxModule, InputComboBoxModule, InputDatePickerModule, InputRadioButtonModule, InputTextModule, MultiSelectListModule, DropDownModule, PromptService, PopupModule, CoSidebarModule, CoGridModule, InputNumberPickerModule, } from "@colijnit/corecomponents_v9";
5
- import { FlexModule } from "@angular/flex-layout";
6
- import { DictionaryService } from "../../service/dictionary.service";
7
- import { ShoppingCartManagerComponent } from "./shopping-cart-manager/shopping-cart-manager.component";
8
- import { ShoppingCartComponent } from "./shopping-cart/shopping-cart.component";
9
- import { ShoppingCartLineComponent } from "./shopping-cart-line/shopping-cart-line.component";
10
- import { StockStatusIndicatorComponent } from "./stock-status-indicator/stock-status-indicator.component";
11
- import { MatStepperModule } from "@angular/material/stepper";
12
- import { TransactionService } from "../../service/transaction.service";
13
- import { OptionsService } from "../../service/options.service";
14
- import { IOneConnectorAdapterService } from "../../service/ione-connector-adapter.service";
15
- import { IoneShoppingCartComponent } from "./ione-shopping-cart.component";
16
- import { CoreModule } from "../core/core.module";
17
- import { CharacteristicAnswerComponent } from "./characteristic-answer/characteristic-answer.component";
18
- var IoneShoppingCartModule = /** @class */ (function () {
19
- function IoneShoppingCartModule() {
20
- }
21
- IoneShoppingCartModule = __decorate([
22
- NgModule({
23
- declarations: [
24
- ShoppingCartManagerComponent,
25
- ShoppingCartComponent,
26
- ShoppingCartLineComponent,
27
- StockStatusIndicatorComponent,
28
- IoneShoppingCartComponent,
29
- CharacteristicAnswerComponent,
30
- ],
31
- imports: [
32
- BrowserAnimationsModule,
33
- IconModule,
34
- InputTextModule,
35
- InputCheckboxModule,
36
- InputRadioButtonModule,
37
- FormModule,
38
- InputComboBoxModule,
39
- InputDatePickerModule,
40
- InputNumberPickerModule,
41
- CoDialogModule,
42
- CoDialogPromptModule,
43
- ButtonModule,
44
- FlexModule,
45
- MultiSelectListModule,
46
- MatStepperModule,
47
- DropDownModule,
48
- PopupModule,
49
- CoSidebarModule,
50
- CoGridModule,
51
- CoreModule,
52
- ],
53
- providers: [
54
- IOneConnectorAdapterService,
55
- DictionaryService,
56
- TransactionService,
57
- OptionsService,
58
- PromptService,
59
- ],
60
- entryComponents: [
61
- IoneShoppingCartComponent
62
- ],
63
- exports: [IoneShoppingCartComponent],
64
- bootstrap: [IoneShoppingCartComponent]
65
- })
66
- ], IoneShoppingCartModule);
67
- return IoneShoppingCartModule;
68
- }());
69
- export { IoneShoppingCartModule };
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW9uZS1zaG9wcGluZy1jYXJ0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bjb2xpam5pdC90cmFuc2FjdGlvbi8iLCJzb3VyY2VzIjpbImFwcC9jb21wb25lbnQvc2hvcHBpbmctY2FydC9pb25lLXNob3BwaW5nLWNhcnQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQzdFLE9BQU8sRUFDTCxZQUFZLEVBQ1osY0FBYyxFQUNkLG9CQUFvQixFQUNwQixVQUFVLEVBQ1YsVUFBVSxFQUNWLG1CQUFtQixFQUNuQixtQkFBbUIsRUFDbkIscUJBQXFCLEVBQ3JCLHNCQUFzQixFQUN0QixlQUFlLEVBQ2YscUJBQXFCLEVBQ3JCLGNBQWMsRUFDZCxhQUFhLEVBQ2IsV0FBVyxFQUNYLGVBQWUsRUFDZixZQUFZLEVBQ1osdUJBQXVCLEdBQ3hCLE1BQU0sNkJBQTZCLENBQUM7QUFDckMsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ2hELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQ25FLE9BQU8sRUFBQyw0QkFBNEIsRUFBQyxNQUFNLHlEQUF5RCxDQUFDO0FBQ3JHLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBQzlFLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLG1EQUFtRCxDQUFDO0FBQzVGLE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLDJEQUEyRCxDQUFDO0FBQ3hHLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQ3JFLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUM3RCxPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUN6RixPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN6RSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDL0MsT0FBTyxFQUFDLDZCQUE2QixFQUFDLE1BQU0seURBQXlELENBQUM7QUE4Q3RHO0lBQUE7SUFBcUMsQ0FBQztJQUF6QixzQkFBc0I7UUE1Q2xDLFFBQVEsQ0FBQztZQUNSLFlBQVksRUFBRTtnQkFDWiw0QkFBNEI7Z0JBQzVCLHFCQUFxQjtnQkFDckIseUJBQXlCO2dCQUN6Qiw2QkFBNkI7Z0JBQzdCLHlCQUF5QjtnQkFDekIsNkJBQTZCO2FBQzlCO1lBQ0QsT0FBTyxFQUFFO2dCQUNQLHVCQUF1QjtnQkFDdkIsVUFBVTtnQkFDVixlQUFlO2dCQUNmLG1CQUFtQjtnQkFDbkIsc0JBQXNCO2dCQUN0QixVQUFVO2dCQUNWLG1CQUFtQjtnQkFDbkIscUJBQXFCO2dCQUNyQix1QkFBdUI7Z0JBQ3ZCLGNBQWM7Z0JBQ2Qsb0JBQW9CO2dCQUNwQixZQUFZO2dCQUNaLFVBQVU7Z0JBQ1YscUJBQXFCO2dCQUNyQixnQkFBZ0I7Z0JBQ2hCLGNBQWM7Z0JBQ2QsV0FBVztnQkFDWCxlQUFlO2dCQUNmLFlBQVk7Z0JBQ1osVUFBVTthQUNYO1lBQ0QsU0FBUyxFQUFFO2dCQUNULDJCQUEyQjtnQkFDM0IsaUJBQWlCO2dCQUNqQixrQkFBa0I7Z0JBQ2xCLGNBQWM7Z0JBQ2QsYUFBYTthQUNkO1lBQ0QsZUFBZSxFQUFFO2dCQUNmLHlCQUF5QjthQUMxQjtZQUNELE9BQU8sRUFBRSxDQUFDLHlCQUF5QixDQUFDO1lBQ3BDLFNBQVMsRUFBRSxDQUFDLHlCQUF5QixDQUFDO1NBQ3ZDLENBQUM7T0FDVyxzQkFBc0IsQ0FBRztJQUFELDZCQUFDO0NBQUEsQUFBdEMsSUFBc0M7U0FBekIsc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7QnJvd3NlckFuaW1hdGlvbnNNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyL2FuaW1hdGlvbnNcIjtcbmltcG9ydCB7XG4gIEJ1dHRvbk1vZHVsZSxcbiAgQ29EaWFsb2dNb2R1bGUsXG4gIENvRGlhbG9nUHJvbXB0TW9kdWxlLFxuICBGb3JtTW9kdWxlLFxuICBJY29uTW9kdWxlLFxuICBJbnB1dENoZWNrYm94TW9kdWxlLFxuICBJbnB1dENvbWJvQm94TW9kdWxlLFxuICBJbnB1dERhdGVQaWNrZXJNb2R1bGUsXG4gIElucHV0UmFkaW9CdXR0b25Nb2R1bGUsXG4gIElucHV0VGV4dE1vZHVsZSxcbiAgTXVsdGlTZWxlY3RMaXN0TW9kdWxlLFxuICBEcm9wRG93bk1vZHVsZSxcbiAgUHJvbXB0U2VydmljZSxcbiAgUG9wdXBNb2R1bGUsXG4gIENvU2lkZWJhck1vZHVsZSxcbiAgQ29HcmlkTW9kdWxlLFxuICBJbnB1dE51bWJlclBpY2tlck1vZHVsZSxcbn0gZnJvbSBcIkBjb2xpam5pdC9jb3JlY29tcG9uZW50c192OVwiO1xuaW1wb3J0IHtGbGV4TW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvZmxleC1sYXlvdXRcIjtcbmltcG9ydCB7RGljdGlvbmFyeVNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL2RpY3Rpb25hcnkuc2VydmljZVwiO1xuaW1wb3J0IHtTaG9wcGluZ0NhcnRNYW5hZ2VyQ29tcG9uZW50fSBmcm9tIFwiLi9zaG9wcGluZy1jYXJ0LW1hbmFnZXIvc2hvcHBpbmctY2FydC1tYW5hZ2VyLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtTaG9wcGluZ0NhcnRDb21wb25lbnR9IGZyb20gXCIuL3Nob3BwaW5nLWNhcnQvc2hvcHBpbmctY2FydC5jb21wb25lbnRcIjtcbmltcG9ydCB7U2hvcHBpbmdDYXJ0TGluZUNvbXBvbmVudH0gZnJvbSBcIi4vc2hvcHBpbmctY2FydC1saW5lL3Nob3BwaW5nLWNhcnQtbGluZS5jb21wb25lbnRcIjtcbmltcG9ydCB7U3RvY2tTdGF0dXNJbmRpY2F0b3JDb21wb25lbnR9IGZyb20gXCIuL3N0b2NrLXN0YXR1cy1pbmRpY2F0b3Ivc3RvY2stc3RhdHVzLWluZGljYXRvci5jb21wb25lbnRcIjtcbmltcG9ydCB7TWF0U3RlcHBlck1vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3N0ZXBwZXJcIjtcbmltcG9ydCB7VHJhbnNhY3Rpb25TZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi5zZXJ2aWNlXCI7XG5pbXBvcnQge09wdGlvbnNTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZS9vcHRpb25zLnNlcnZpY2VcIjtcbmltcG9ydCB7SU9uZUNvbm5lY3RvckFkYXB0ZXJTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZS9pb25lLWNvbm5lY3Rvci1hZGFwdGVyLnNlcnZpY2VcIjtcbmltcG9ydCB7SW9uZVNob3BwaW5nQ2FydENvbXBvbmVudH0gZnJvbSBcIi4vaW9uZS1zaG9wcGluZy1jYXJ0LmNvbXBvbmVudFwiO1xuaW1wb3J0IHtDb3JlTW9kdWxlfSBmcm9tIFwiLi4vY29yZS9jb3JlLm1vZHVsZVwiO1xuaW1wb3J0IHtDaGFyYWN0ZXJpc3RpY0Fuc3dlckNvbXBvbmVudH0gZnJvbSBcIi4vY2hhcmFjdGVyaXN0aWMtYW5zd2VyL2NoYXJhY3RlcmlzdGljLWFuc3dlci5jb21wb25lbnRcIjtcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgU2hvcHBpbmdDYXJ0TWFuYWdlckNvbXBvbmVudCxcbiAgICBTaG9wcGluZ0NhcnRDb21wb25lbnQsXG4gICAgU2hvcHBpbmdDYXJ0TGluZUNvbXBvbmVudCxcbiAgICBTdG9ja1N0YXR1c0luZGljYXRvckNvbXBvbmVudCxcbiAgICBJb25lU2hvcHBpbmdDYXJ0Q29tcG9uZW50LFxuICAgIENoYXJhY3RlcmlzdGljQW5zd2VyQ29tcG9uZW50LFxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgQnJvd3NlckFuaW1hdGlvbnNNb2R1bGUsXG4gICAgSWNvbk1vZHVsZSxcbiAgICBJbnB1dFRleHRNb2R1bGUsXG4gICAgSW5wdXRDaGVja2JveE1vZHVsZSxcbiAgICBJbnB1dFJhZGlvQnV0dG9uTW9kdWxlLFxuICAgIEZvcm1Nb2R1bGUsXG4gICAgSW5wdXRDb21ib0JveE1vZHVsZSxcbiAgICBJbnB1dERhdGVQaWNrZXJNb2R1bGUsXG4gICAgSW5wdXROdW1iZXJQaWNrZXJNb2R1bGUsXG4gICAgQ29EaWFsb2dNb2R1bGUsXG4gICAgQ29EaWFsb2dQcm9tcHRNb2R1bGUsXG4gICAgQnV0dG9uTW9kdWxlLFxuICAgIEZsZXhNb2R1bGUsXG4gICAgTXVsdGlTZWxlY3RMaXN0TW9kdWxlLFxuICAgIE1hdFN0ZXBwZXJNb2R1bGUsXG4gICAgRHJvcERvd25Nb2R1bGUsXG4gICAgUG9wdXBNb2R1bGUsXG4gICAgQ29TaWRlYmFyTW9kdWxlLFxuICAgIENvR3JpZE1vZHVsZSxcbiAgICBDb3JlTW9kdWxlLFxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICBJT25lQ29ubmVjdG9yQWRhcHRlclNlcnZpY2UsXG4gICAgRGljdGlvbmFyeVNlcnZpY2UsXG4gICAgVHJhbnNhY3Rpb25TZXJ2aWNlLFxuICAgIE9wdGlvbnNTZXJ2aWNlLFxuICAgIFByb21wdFNlcnZpY2UsXG4gIF0sXG4gIGVudHJ5Q29tcG9uZW50czogW1xuICAgIElvbmVTaG9wcGluZ0NhcnRDb21wb25lbnRcbiAgXSxcbiAgZXhwb3J0czogW0lvbmVTaG9wcGluZ0NhcnRDb21wb25lbnRdLFxuICBib290c3RyYXA6IFtJb25lU2hvcHBpbmdDYXJ0Q29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBJb25lU2hvcHBpbmdDYXJ0TW9kdWxlIHt9XG4iXX0=
@@ -1,179 +0,0 @@
1
- import { __decorate } from "tslib";
2
- import { AfterViewInit, ChangeDetectorRef, Component, ElementRef, EventEmitter, HostBinding, Inject, Input, OnDestroy, OnInit, Output, ViewChild } from "@angular/core";
3
- import { DictionaryService } from "../../../service/dictionary.service";
4
- import { TransactionService } from "../../../service/transaction.service";
5
- import { OrderDiscountType } from "../../../enum/order-discount-type.enum";
6
- import { SortDirection } from "@colijnit/transactionapi/build/enum/sort-direction";
7
- import { SortType } from "@colijnit/transactionapi/build/enum/sort-type.enum";
8
- import { SortUtils } from "@colijnit/transactionapi/build/utils/sort-utils";
9
- import { CoreComponentsIcon, IconCacheService } from "@colijnit/corecomponents_v9";
10
- import { TransactionEventService } from "../../../service/transaction-event.service";
11
- import { CoSidebarComponent } from "@colijnit/corecomponents_v9";
12
- import { ContentViewMode } from "../../../enum/content-view-mode.enum";
13
- var ShoppingCartComponent = /** @class */ (function () {
14
- function ShoppingCartComponent(iconCacheService, _dictionary, service, _transactionEvents, _changeDetector) {
15
- var _this = this;
16
- this.iconCacheService = iconCacheService;
17
- this._dictionary = _dictionary;
18
- this.service = service;
19
- this._transactionEvents = _transactionEvents;
20
- this._changeDetector = _changeDetector;
21
- this.orderDiscountType = OrderDiscountType;
22
- this.iconThickLines = CoreComponentsIcon.ThickLines;
23
- this.iconThinLines = CoreComponentsIcon.ThinLines;
24
- this.viewModes = ContentViewMode;
25
- this.hideOverviewButton = false;
26
- this.hideCheckoutButton = false;
27
- this.hideCloseCartButton = false;
28
- this.closeCart = new EventEmitter();
29
- this.checkout = new EventEmitter();
30
- this.overview = new EventEmitter();
31
- this.activeViewMode = ContentViewMode.List;
32
- this.columns = [];
33
- this.showDiscountsSidebar = false;
34
- this._transactionUpdated = this.service.transactionUpdated.subscribe(function () {
35
- _this.setFilteredCollection(_this.service.currentLines);
36
- });
37
- this.setFilteredCollection(this.service.currentLines);
38
- var mediaQuery = "(min-width: 500px)";
39
- this.columns.push({ field: "lineNr", headerText: this._dictionary.get("NR"), allowFiltering: false }, { field: "articleNumber", headerText: this._dictionary.get("ARTICLE_NR") }, { field: "goodDescription", headerText: this._dictionary.get("GOOD_DESCRIPTION"), hideAtMedia: mediaQuery }, { field: "amount", headerText: this._dictionary.get("NUMBER"), textAlign: "Right" }, { field: "price", headerText: this._dictionary.get("PRICE"), format: "C2", textAlign: "Right" }, { field: "priceListCode", headerText: this._dictionary.get("PRICE_LIST"), hideAtMedia: mediaQuery }, { field: "lineDiscount", headerText: this._dictionary.get("DISCOUNT_PERCENTAGE"), format: "C2", visible: false, hideAtMedia: mediaQuery, textAlign: "Right" }, { field: "specialDiscount", headerText: this._dictionary.get("SPECIAL_DISCOUNT"), format: "C2", visible: false, hideAtMedia: mediaQuery, textAlign: "Right" }, { field: "discountAmount", headerText: this._dictionary.get("DISCOUNT_AMOUNT"), format: "C2", visible: false, hideAtMedia: mediaQuery, textAlign: "Right" }, { field: "surchargeAmount", headerText: this._dictionary.get("SURCHARGE_AMOUNT"), format: "C2", visible: false, hideAtMedia: mediaQuery, textAlign: "Right" }, { field: "assemblyCost", headerText: this._dictionary.get("ASSEMBLY_COSTS"), format: "C2", visible: false, hideAtMedia: mediaQuery, textAlign: "Right" }, { field: "grossLineTotal", headerText: this._dictionary.get("TOTAL_GROSS"), format: "C2", visible: true, hideAtMedia: mediaQuery, textAlign: "Right" }, { field: "lineTotalDiscountAmount", headerText: this._dictionary.get("DISCOUNT"), format: "C2", visible: false, hideAtMedia: mediaQuery, textAlign: "Right" }, { field: "netLineTotal", headerText: this._dictionary.get("SUBTOTAL"), format: "C2", visible: false, textAlign: "Right" }, { field: "vatId", headerText: this._dictionary.get("VAT"), hideAtMedia: mediaQuery, visible: false, textAlign: "Right" }, { field: "priceDeclaration", headerText: this._dictionary.get("TRANSACTION_PRICE_DECLARATION"), visible: false, hideAtMedia: mediaQuery }, { field: "netto", headerText: this._dictionary.get("NETT"), format: "C2", hideAtMedia: mediaQuery, textAlign: "Right" }, { field: "warehouseNumber", headerText: this._dictionary.get("WAREHOUSE"), hideAtMedia: mediaQuery, textAlign: "Right" });
40
- }
41
- Object.defineProperty(ShoppingCartComponent.prototype, "filteredCollection", {
42
- get: function () {
43
- return this._filteredCollection;
44
- },
45
- enumerable: true,
46
- configurable: true
47
- });
48
- ShoppingCartComponent.prototype.setFilteredCollection = function (value) {
49
- this._filteredCollection = value;
50
- var sortByLineNr = {
51
- active: true,
52
- direction: SortDirection.Ascending,
53
- property: "lineNr",
54
- type: SortType.Number
55
- };
56
- SortUtils.SortObjectArray(this._filteredCollection, [sortByLineNr]);
57
- };
58
- ShoppingCartComponent.prototype.ngAfterViewInit = function () {
59
- this.hideSidebar();
60
- };
61
- ShoppingCartComponent.prototype.ngOnDestroy = function () {
62
- this._transactionUpdated.unsubscribe();
63
- };
64
- ShoppingCartComponent.prototype.getCartLabel = function () {
65
- return this._dictionary.get("SHOPPING_CART_OVERVIEW", true) + "(" + this.service.articleAmount.toString() + ")";
66
- };
67
- ShoppingCartComponent.prototype.addDiscount = function () {
68
- this.showSidebar();
69
- // TODO
70
- // this.transactionDiscountPercentage = this.service.currentTransaction.transactionDiscountPercentage;
71
- // this.transactionDiscountAmount = this.service.currentTransaction.transactionDiscountAmount;
72
- // this.transactionTotal = undefined;
73
- };
74
- ShoppingCartComponent.prototype.onStartDiscountInput = function (discountType, header) {
75
- this.hideSidebar();
76
- this.discountType = discountType;
77
- this.discountHeader = header;
78
- this.inputDiscounts = true;
79
- };
80
- ShoppingCartComponent.prototype.openShoppingCartModule = function () {
81
- this._transactionEvents.openShoppingCartModule.next();
82
- this.closeCart.emit();
83
- };
84
- ShoppingCartComponent.prototype.setDiscountHeader = function (discountType) {
85
- switch (this.discountType) {
86
- case OrderDiscountType.DiscountPercentage:
87
- this.discountHeader = this._dictionary.get("DISCOUNT_PERCENTAGE", true);
88
- break;
89
- case OrderDiscountType.DiscountAmount:
90
- this.discountHeader = this._dictionary.get("DISCOUNT_AMOUNT", true);
91
- break;
92
- case OrderDiscountType.OrderTotal:
93
- this.discountHeader = this._dictionary.get("ORDER_TOTAL", true);
94
- break;
95
- }
96
- };
97
- ShoppingCartComponent.prototype.onInputDiscountsOkClick = function () {
98
- var valueToUse;
99
- switch (this.discountType) {
100
- case OrderDiscountType.DiscountPercentage:
101
- valueToUse = this.transactionDiscountPercentage;
102
- break;
103
- case OrderDiscountType.DiscountAmount:
104
- valueToUse = this.transactionDiscountAmount;
105
- break;
106
- case OrderDiscountType.OrderTotal:
107
- valueToUse = this.transactionTotal;
108
- break;
109
- }
110
- //TODO this.service.setTransactionDiscounts(this.service.currentTransaction.uuid, this.discountType, valueToUse);
111
- this.inputDiscounts = false;
112
- };
113
- ShoppingCartComponent.prototype.trackByFn = function (index, line) {
114
- return line.lineNr;
115
- };
116
- ShoppingCartComponent.prototype.handleRowsSelected = function (rows) {
117
- var selectedRow = rows.find(function (x) { return x !== undefined; });
118
- };
119
- ShoppingCartComponent.prototype.showSidebar = function () {
120
- this.showDiscountsSidebar = true;
121
- this._changeDetector.detectChanges();
122
- if (this.discountsSidebar) {
123
- this.discountsSidebar.show();
124
- }
125
- };
126
- ShoppingCartComponent.prototype.hideSidebar = function () {
127
- this.showDiscountsSidebar = false;
128
- this._changeDetector.detectChanges();
129
- if (this.discountsSidebar) {
130
- this.discountsSidebar.hide();
131
- }
132
- };
133
- ShoppingCartComponent.ctorParameters = function () { return [
134
- { type: IconCacheService },
135
- { type: DictionaryService },
136
- { type: TransactionService },
137
- { type: TransactionEventService },
138
- { type: ChangeDetectorRef }
139
- ]; };
140
- __decorate([
141
- ViewChild(CoSidebarComponent, { static: false })
142
- ], ShoppingCartComponent.prototype, "discountsSidebar", void 0);
143
- __decorate([
144
- Input(),
145
- HostBinding("class.overlayed")
146
- ], ShoppingCartComponent.prototype, "overlayMode", void 0);
147
- __decorate([
148
- Input(),
149
- HostBinding("class.overview")
150
- ], ShoppingCartComponent.prototype, "overviewMode", void 0);
151
- __decorate([
152
- Input()
153
- ], ShoppingCartComponent.prototype, "hideOverviewButton", void 0);
154
- __decorate([
155
- Input()
156
- ], ShoppingCartComponent.prototype, "hideCheckoutButton", void 0);
157
- __decorate([
158
- Input()
159
- ], ShoppingCartComponent.prototype, "hideCloseCartButton", void 0);
160
- __decorate([
161
- Output()
162
- ], ShoppingCartComponent.prototype, "closeCart", void 0);
163
- __decorate([
164
- Output()
165
- ], ShoppingCartComponent.prototype, "checkout", void 0);
166
- __decorate([
167
- Output()
168
- ], ShoppingCartComponent.prototype, "overview", void 0);
169
- ShoppingCartComponent = __decorate([
170
- Component({
171
- selector: "shopping-cart",
172
- template: "\n <div class=\"cart-header\">\n <span class=\"cart-header-label\" [textContent]=\"getCartLabel()\"></span>\n <div class=\"view-mode-buttons\">\n <co-button [iconData]=\"iconCacheService.getIcon(iconThickLines)\"\n [title]=\"'LIST_VIEW' | localize\"\n (click)=\"this.activeViewMode = viewModes.List\"\n class=\"triangle white\"\n iconClass=\"medium light\"></co-button>\n <co-button [iconData]=\"iconCacheService.getIcon(iconThinLines)\"\n [title]=\"'GRID_VIEW' | localize\"\n (click)=\"this.activeViewMode = viewModes.Grid\"\n class=\"triangle white\"\n iconClass=\"medium light\"></co-button>\n </div>\n </div>\n <div class=\"cart-lines\">\n <div class=\"cart-list-wrapper\" *ngIf=\"this.activeViewMode == viewModes.List\" fxFlex=\"column\">\n <shopping-cart-line [overlayMode]=\"overlayMode\" [overviewMode]=\"overviewMode\"\n *ngFor=\"let line of filteredCollection; trackBy:trackByFn;\"\n [line]=\"line\"\n ></shopping-cart-line>\n </div>\n <div class=\"cart-list-wrapper\" *ngIf=\"this.activeViewMode == viewModes.Grid\" fxFlex=\"column\">\n <co-grid\n [data]=\"filteredCollection\"\n [columns]=\"columns\"\n [pagingEnabled]=\"'true'\"\n [maxNumberOfRows]=\"'20'\"\n (rowsSelected)=\"handleRowsSelected($event)\"\n ></co-grid>\n </div>\n </div>\n <div class=\"shopping-cart-totals\" fxLayout=\"column\" fxLayoutGap=\"10px\">\n <div fxLayout=\"row\">\n <span [textContent]=\"'ORDER_GROSS' | localize\"></span>\n <span [textContent]=\"service.currentTotals?.grossAmount | coCurrency: true\"></span>\n </div>\n <div fxLayout=\"row\" *ngIf=\"service.currentTotals?.discountAmount\">\n <span [textContent]=\"'DISCOUNT_AMOUNT' | localize\"></span>\n <span [textContent]=\"service.currentTotals?.discountAmount | coCurrency: true\"></span>\n </div>\n <div fxLayout=\"row\" *ngIf=\"service.currentTotals?.transactionDiscountAmount\">\n <span [textContent]=\"'TRANSACTION_DISCOUNT' | localize\"></span>\n <span [textContent]=\"service.currentTotals?.transactionDiscountAmount | coCurrency: true\"></span>\n </div>\n <div fxLayout=\"row\" *ngIf=\"service.currentTotals?.transactionDiscountPercentage\">\n <span [textContent]=\"'TRANSACTION_DISCOUNT_PERC' | localize\"></span>\n <span [textContent]=\"service.currentTotals?.transactionDiscountPercentage.toString() | append:' %'\"></span>\n </div>\n <div fxLayout=\"row\">\n <span [textContent]=\"'ORDER_NET'| localize\"></span>\n <span [textContent]=\"service.currentTotals?.netAmount | coCurrency: true\"></span>\n </div>\n <a (click)=\"addDiscount()\" [textContent]=\"'ADD_DISCOUNTS' | localize\"></a>\n </div>\n <div class=\"shopping-cart-row-end\">\n <co-button *ngIf=\"!hideOverviewButton\" [label]=\"'OVERVIEW' | localize\"\n (click)=\"overview.emit()\"\n ></co-button>\n <co-button *ngIf=\"!hideCloseCartButton\"[label]=\"'SHOPPING_CART_RESUME' | localize\"\n (click)=\"closeCart.emit()\"\n ></co-button>\n <co-button *ngIf=\"!hideCheckoutButton\" [label]=\"'SHOPPING_CART_CHECKOUT' | localize\"\n [disabled]=\"!service.articleAmount\"\n (click)=\"checkout.emit()\"></co-button>\n </div>\n\n <co-sidebar #discountsSidebar isOpen=\"false\" *ngIf=\"showDiscountsSidebar\">\n <div fxLayout=\"column\" fxLayoutGap=\"10px\">\n <co-button class=\"rectangular\" [label]=\"'TRANSACTION_DISCOUNT_PERC' | localize\"\n (click)=\"onStartDiscountInput(orderDiscountType.DiscountPercentage, 'TRANSACTION_DISCOUNT_PERC')\"></co-button>\n <co-button class=\"rectangular\" [label]=\"'TRANSACTION_DISCOUNT'| localize\"\n (click)=\"onStartDiscountInput(orderDiscountType.DiscountAmount, 'TRANSACTION_DISCOUNT')\"></co-button>\n <co-button class=\"rectangular\" [label]=\"'TRANSACTION_TOTAL'| localize\"\n (click)=\"onStartDiscountInput(orderDiscountType.OrderTotal, 'TRANSACTION_TOTAL')\"></co-button>\n\n </div>\n </co-sidebar>\n\n <co-dialog [visible]=\"inputDiscounts\">\n <ng-container header>{{ discountHeader | localize }}</ng-container>\n <co-form>\n <co-input-text\n *ngIf=\"discountType === orderDiscountType.DiscountPercentage\"\n [type]=\"'number'\"\n [(model)]=\"transactionDiscountPercentage\"\n [placeholder]=\"'TRANSACTION_DISCOUNT_PERC' | localize\"\n ></co-input-text>\n <co-input-text\n *ngIf=\"discountType === orderDiscountType.DiscountAmount\"\n [type]=\"'number'\"\n [(model)]=\"transactionDiscountAmount\"\n [placeholder]=\"'TRANSACTION_DISCOUNT' | localize\"\n ></co-input-text>\n <co-input-text\n *ngIf=\"discountType === orderDiscountType.OrderTotal\"\n [type]=\"'number'\"\n [(model)]=\"transactionTotal\"\n [placeholder]=\"'TRANSACTION_TOTAL' | localize\"\n ></co-input-text>\n\n <div fxLayout=\"row\" fxLayoutGap=\"10px\" fxLayoutAlign=\"end\">\n <co-button [label]=\"'CANCEL' | localize\" (click)=\"inputDiscounts = false\"></co-button>\n <co-button [label]=\"'OK' | localize\" (click)=\"onInputDiscountsOkClick()\"></co-button>\n </div>\n </co-form>\n </co-dialog>\n ",
173
- styles: ["body,html{height:100%}body{margin:0;font-family:Roboto,\"Helvetica Neue\",sans-serif}.cart-header{margin-top:20px;margin-bottom:20px}.triangle{border-radius:3px}.full-width{width:100%}.flex-center{display:flex;flex-direction:row;align-items:center!important;justify-content:center!important;margin:10px 0}:host{background-color:#fff;opacity:1;display:flex;flex-direction:column;height:100%;color:#22313c}.cart-header{display:flex;justify-content:space-between}.cart-header .cart-header-label{font-weight:700}.cart-header .view-mode-buttons{margin-left:11px;display:flex;flex-direction:row}.cart-header .view-mode-buttons co-button{padding:0}.cart-header .view-mode-buttons co-button ::ng-deep co-button{border-radius:0}.cart-header .view-mode-buttons co-button:first-child ::ng-deep co-button{border-radius:3px}.cart-header .view-mode-buttons co-button:nth-child(2) ::ng-deep co-button{border-top-left-radius:3px;border-bottom-left-radius:3px}.cart-header .view-mode-buttons co-button:last-child ::ng-deep co-button{border-top-right-radius:3px;border-bottom-right-radius:3px}.cart-lines{display:flex;height:100%;overflow:auto}.shopping-cart-totals{padding-bottom:20px;padding-top:20px;align-items:flex-end}.shopping-cart-totals>div{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.shopping-cart-totals>div span:last-of-type{min-width:6em;text-align:right}.shopping-cart-totals div:last-of-type{font-weight:700}", ":host .shopping-cart-viewport{max-width:60%;margin-left:20%}:host .shopping-cart-row-end{display:flex;flex-direction:row;-moz-column-gap:10px;column-gap:10px;justify-content:flex-end}"]
174
- })
175
- ], ShoppingCartComponent);
176
- return ShoppingCartComponent;
177
- }());
178
- export { ShoppingCartComponent };
179
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvcHBpbmctY2FydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29saWpuaXQvdHJhbnNhY3Rpb24vIiwic291cmNlcyI6WyJhcHAvY29tcG9uZW50L3Nob3BwaW5nLWNhcnQvc2hvcHBpbmctY2FydC9zaG9wcGluZy1jYXJ0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdEssT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDdEUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFDeEUsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUFHekUsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLG9EQUFvRCxDQUFDO0FBQ2pGLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxvREFBb0QsQ0FBQztBQUM1RSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0saURBQWlELENBQUM7QUFFMUUsT0FBTyxFQUFDLGtCQUFrQixFQUFFLGdCQUFnQixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDakYsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sNENBQTRDLENBQUM7QUFDbkYsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDL0QsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBdUhyRTtJQWlFRSwrQkFDUyxnQkFBa0MsRUFDakMsV0FBOEIsRUFDL0IsT0FBMkIsRUFDMUIsa0JBQTJDLEVBQzNDLGVBQWtDO1FBTDVDLGlCQWtDQztRQWpDUSxx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akMsU0FBUyxDQUFDO1lBQ1QsUUFBUSxFQUFFLGVBQWU7WUFDekIsUUFBUSxFQUFFLG9vTEE0R1Q7O1NBS0YsQ0FBQztPQUNXLHFCQUFxQixDQWdNakM7SUFBRCw0QkFBQztDQUFBLEFBaE1ELElBZ01DO1NBaE1ZLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSW5qZWN0LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtEaWN0aW9uYXJ5U2VydmljZX0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2UvZGljdGlvbmFyeS5zZXJ2aWNlXCI7XG5pbXBvcnQge1RyYW5zYWN0aW9uU2VydmljZX0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24uc2VydmljZVwiO1xuaW1wb3J0IHtPcmRlckRpc2NvdW50VHlwZX0gZnJvbSBcIi4uLy4uLy4uL2VudW0vb3JkZXItZGlzY291bnQtdHlwZS5lbnVtXCI7XG5pbXBvcnQge0J1c2luZXNzT2JqZWN0fSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2J1c2luZXNzLW9iamVjdFwiO1xuaW1wb3J0IHtTb3J0UHJvcGVydHl9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvaW50ZXJmYWNlL3NvcnQtcHJvcGVydHlcIjtcbmltcG9ydCB7U29ydERpcmVjdGlvbn0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9lbnVtL3NvcnQtZGlyZWN0aW9uXCI7XG5pbXBvcnQge1NvcnRUeXBlfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL2VudW0vc29ydC10eXBlLmVudW1cIjtcbmltcG9ydCB7U29ydFV0aWxzfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL3V0aWxzL3NvcnQtdXRpbHNcIjtcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHtDb3JlQ29tcG9uZW50c0ljb24sIEljb25DYWNoZVNlcnZpY2V9IGZyb20gXCJAY29saWpuaXQvY29yZWNvbXBvbmVudHNfdjlcIjtcbmltcG9ydCB7VHJhbnNhY3Rpb25FdmVudFNlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLWV2ZW50LnNlcnZpY2VcIjtcbmltcG9ydCB7Q29TaWRlYmFyQ29tcG9uZW50fSBmcm9tIFwiQGNvbGlqbml0L2NvcmVjb21wb25lbnRzX3Y5XCI7XG5pbXBvcnQge0NvbnRlbnRWaWV3TW9kZX0gZnJvbSBcIi4uLy4uLy4uL2VudW0vY29udGVudC12aWV3LW1vZGUuZW51bVwiO1xuaW1wb3J0IHtUcmFuc2FjdGlvbkxpbmVJbmZvfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3RyYW5zYWN0aW9uLWxpbmUtaW5mby5ib1wiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwic2hvcHBpbmctY2FydFwiLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJjYXJ0LWhlYWRlclwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJjYXJ0LWhlYWRlci1sYWJlbFwiIFt0ZXh0Q29udGVudF09XCJnZXRDYXJ0TGFiZWwoKVwiPjwvc3Bhbj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ2aWV3LW1vZGUtYnV0dG9uc1wiPlxuICAgICAgICA8Y28tYnV0dG9uIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvblRoaWNrTGluZXMpXCJcbiAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiJ0xJU1RfVklFVycgfCBsb2NhbGl6ZVwiXG4gICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInRoaXMuYWN0aXZlVmlld01vZGUgPSB2aWV3TW9kZXMuTGlzdFwiXG4gICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0cmlhbmdsZSB3aGl0ZVwiXG4gICAgICAgICAgICAgICAgICAgaWNvbkNsYXNzPVwibWVkaXVtIGxpZ2h0XCI+PC9jby1idXR0b24+XG4gICAgICAgIDxjby1idXR0b24gW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29uVGhpbkxpbmVzKVwiXG4gICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIidHUklEX1ZJRVcnIHwgbG9jYWxpemVcIlxuICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ0aGlzLmFjdGl2ZVZpZXdNb2RlID0gdmlld01vZGVzLkdyaWRcIlxuICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidHJpYW5nbGUgd2hpdGVcIlxuICAgICAgICAgICAgICAgICAgIGljb25DbGFzcz1cIm1lZGl1bSBsaWdodFwiPjwvY28tYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImNhcnQtbGluZXNcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjYXJ0LWxpc3Qtd3JhcHBlclwiICpuZ0lmPVwidGhpcy5hY3RpdmVWaWV3TW9kZSA9PSB2aWV3TW9kZXMuTGlzdFwiIGZ4RmxleD1cImNvbHVtblwiPlxuICAgICAgICA8c2hvcHBpbmctY2FydC1saW5lIFtvdmVybGF5TW9kZV09XCJvdmVybGF5TW9kZVwiIFtvdmVydmlld01vZGVdPVwib3ZlcnZpZXdNb2RlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgbGluZSBvZiBmaWx0ZXJlZENvbGxlY3Rpb247IHRyYWNrQnk6dHJhY2tCeUZuO1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xpbmVdPVwibGluZVwiXG4gICAgICAgID48L3Nob3BwaW5nLWNhcnQtbGluZT5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNhcnQtbGlzdC13cmFwcGVyXCIgKm5nSWY9XCJ0aGlzLmFjdGl2ZVZpZXdNb2RlID09IHZpZXdNb2Rlcy5HcmlkXCIgZnhGbGV4PVwiY29sdW1uXCI+XG4gICAgICAgIDxjby1ncmlkXG4gICAgICAgICAgW2RhdGFdPVwiZmlsdGVyZWRDb2xsZWN0aW9uXCJcbiAgICAgICAgICBbY29sdW1uc109XCJjb2x1bW5zXCJcbiAgICAgICAgICBbcGFnaW5nRW5hYmxlZF09XCIndHJ1ZSdcIlxuICAgICAgICAgIFttYXhOdW1iZXJPZlJvd3NdPVwiJzIwJ1wiXG4gICAgICAgICAgKHJvd3NTZWxlY3RlZCk9XCJoYW5kbGVSb3dzU2VsZWN0ZWQoJGV2ZW50KVwiXG4gICAgICAgID48L2NvLWdyaWQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwic2hvcHBpbmctY2FydC10b3RhbHNcIiBmeExheW91dD1cImNvbHVtblwiIGZ4TGF5b3V0R2FwPVwiMTBweFwiPlxuICAgICAgPGRpdiBmeExheW91dD1cInJvd1wiPlxuICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwiJ09SREVSX0dST1NTJyB8IGxvY2FsaXplXCI+PC9zcGFuPlxuICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwic2VydmljZS5jdXJyZW50VG90YWxzPy5ncm9zc0Ftb3VudCB8IGNvQ3VycmVuY3k6IHRydWVcIj48L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIiAqbmdJZj1cInNlcnZpY2UuY3VycmVudFRvdGFscz8uZGlzY291bnRBbW91bnRcIj5cbiAgICAgICAgPHNwYW4gW3RleHRDb250ZW50XT1cIidESVNDT1VOVF9BTU9VTlQnIHwgbG9jYWxpemVcIj48L3NwYW4+XG4gICAgICAgIDxzcGFuIFt0ZXh0Q29udGVudF09XCJzZXJ2aWNlLmN1cnJlbnRUb3RhbHM/LmRpc2NvdW50QW1vdW50IHwgY29DdXJyZW5jeTogdHJ1ZVwiPjwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBmeExheW91dD1cInJvd1wiICpuZ0lmPVwic2VydmljZS5jdXJyZW50VG90YWxzPy50cmFuc2FjdGlvbkRpc2NvdW50QW1vdW50XCI+XG4gICAgICAgIDxzcGFuIFt0ZXh0Q29udGVudF09XCInVFJBTlNBQ1RJT05fRElTQ09VTlQnIHwgbG9jYWxpemVcIj48L3NwYW4+XG4gICAgICAgIDxzcGFuIFt0ZXh0Q29udGVudF09XCJzZXJ2aWNlLmN1cnJlbnRUb3RhbHM/LnRyYW5zYWN0aW9uRGlzY291bnRBbW91bnQgfCBjb0N1cnJlbmN5OiB0cnVlXCI+PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgKm5nSWY9XCJzZXJ2aWNlLmN1cnJlbnRUb3RhbHM/LnRyYW5zYWN0aW9uRGlzY291bnRQZXJjZW50YWdlXCI+XG4gICAgICAgIDxzcGFuIFt0ZXh0Q29udGVudF09XCInVFJBTlNBQ1RJT05fRElTQ09VTlRfUEVSQycgfCBsb2NhbGl6ZVwiPjwvc3Bhbj5cbiAgICAgICAgPHNwYW4gW3RleHRDb250ZW50XT1cInNlcnZpY2UuY3VycmVudFRvdGFscz8udHJhbnNhY3Rpb25EaXNjb3VudFBlcmNlbnRhZ2UudG9TdHJpbmcoKSB8IGFwcGVuZDonICUnXCI+PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCI+XG4gICAgICAgIDxzcGFuIFt0ZXh0Q29udGVudF09XCInT1JERVJfTkVUJ3wgbG9jYWxpemVcIj48L3NwYW4+XG4gICAgICAgIDxzcGFuIFt0ZXh0Q29udGVudF09XCJzZXJ2aWNlLmN1cnJlbnRUb3RhbHM/Lm5ldEFtb3VudCB8IGNvQ3VycmVuY3k6IHRydWVcIj48L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxhIChjbGljayk9XCJhZGREaXNjb3VudCgpXCIgW3RleHRDb250ZW50XT1cIidBRERfRElTQ09VTlRTJyB8IGxvY2FsaXplXCI+PC9hPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJzaG9wcGluZy1jYXJ0LXJvdy1lbmRcIj5cbiAgICAgIDxjby1idXR0b24gKm5nSWY9XCIhaGlkZU92ZXJ2aWV3QnV0dG9uXCIgW2xhYmVsXT1cIidPVkVSVklFVycgfCBsb2NhbGl6ZVwiXG4gICAgICAgICAgICAgICAgIChjbGljayk9XCJvdmVydmlldy5lbWl0KClcIlxuICAgICAgPjwvY28tYnV0dG9uPlxuICAgICAgPGNvLWJ1dHRvbiAqbmdJZj1cIiFoaWRlQ2xvc2VDYXJ0QnV0dG9uXCJbbGFiZWxdPVwiJ1NIT1BQSU5HX0NBUlRfUkVTVU1FJyB8IGxvY2FsaXplXCJcbiAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsb3NlQ2FydC5lbWl0KClcIlxuICAgICAgPjwvY28tYnV0dG9uPlxuICAgICAgPGNvLWJ1dHRvbiAqbmdJZj1cIiFoaWRlQ2hlY2tvdXRCdXR0b25cIiBbbGFiZWxdPVwiJ1NIT1BQSU5HX0NBUlRfQ0hFQ0tPVVQnIHwgbG9jYWxpemVcIlxuICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIXNlcnZpY2UuYXJ0aWNsZUFtb3VudFwiXG4gICAgICAgICAgICAgICAgIChjbGljayk9XCJjaGVja291dC5lbWl0KClcIj48L2NvLWJ1dHRvbj5cbiAgICA8L2Rpdj5cblxuICAgIDxjby1zaWRlYmFyICNkaXNjb3VudHNTaWRlYmFyIGlzT3Blbj1cImZhbHNlXCIgKm5nSWY9XCJzaG93RGlzY291bnRzU2lkZWJhclwiPlxuICAgICAgICA8ZGl2IGZ4TGF5b3V0PVwiY29sdW1uXCIgZnhMYXlvdXRHYXA9XCIxMHB4XCI+XG4gICAgICAgICAgPGNvLWJ1dHRvbiAgY2xhc3M9XCJyZWN0YW5ndWxhclwiIFtsYWJlbF09XCInVFJBTlNBQ1RJT05fRElTQ09VTlRfUEVSQycgfCBsb2NhbGl6ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU3RhcnREaXNjb3VudElucHV0KG9yZGVyRGlzY291bnRUeXBlLkRpc2NvdW50UGVyY2VudGFnZSwgJ1RSQU5TQUNUSU9OX0RJU0NPVU5UX1BFUkMnKVwiPjwvY28tYnV0dG9uPlxuICAgICAgICAgIDxjby1idXR0b24gY2xhc3M9XCJyZWN0YW5ndWxhclwiIFtsYWJlbF09XCInVFJBTlNBQ1RJT05fRElTQ09VTlQnfCBsb2NhbGl6ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU3RhcnREaXNjb3VudElucHV0KG9yZGVyRGlzY291bnRUeXBlLkRpc2NvdW50QW1vdW50LCAnVFJBTlNBQ1RJT05fRElTQ09VTlQnKVwiPjwvY28tYnV0dG9uPlxuICAgICAgICAgIDxjby1idXR0b24gY2xhc3M9XCJyZWN0YW5ndWxhclwiIFtsYWJlbF09XCInVFJBTlNBQ1RJT05fVE9UQUwnfCBsb2NhbGl6ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU3RhcnREaXNjb3VudElucHV0KG9yZGVyRGlzY291bnRUeXBlLk9yZGVyVG90YWwsICdUUkFOU0FDVElPTl9UT1RBTCcpXCI+PC9jby1idXR0b24+XG5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9jby1zaWRlYmFyPlxuXG4gICAgPGNvLWRpYWxvZyBbdmlzaWJsZV09XCJpbnB1dERpc2NvdW50c1wiPlxuICAgICAgPG5nLWNvbnRhaW5lciBoZWFkZXI+e3sgZGlzY291bnRIZWFkZXIgfCBsb2NhbGl6ZSB9fTwvbmctY29udGFpbmVyPlxuICAgICAgICA8Y28tZm9ybT5cbiAgICAgICAgICA8Y28taW5wdXQtdGV4dFxuICAgICAgICAgICAgKm5nSWY9XCJkaXNjb3VudFR5cGUgPT09IG9yZGVyRGlzY291bnRUeXBlLkRpc2NvdW50UGVyY2VudGFnZVwiXG4gICAgICAgICAgICBbdHlwZV09XCInbnVtYmVyJ1wiXG4gICAgICAgICAgICBbKG1vZGVsKV09XCJ0cmFuc2FjdGlvbkRpc2NvdW50UGVyY2VudGFnZVwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ1RSQU5TQUNUSU9OX0RJU0NPVU5UX1BFUkMnIHwgbG9jYWxpemVcIlxuICAgICAgICAgID48L2NvLWlucHV0LXRleHQ+XG4gICAgICAgICAgPGNvLWlucHV0LXRleHRcbiAgICAgICAgICAgICpuZ0lmPVwiZGlzY291bnRUeXBlID09PSBvcmRlckRpc2NvdW50VHlwZS5EaXNjb3VudEFtb3VudFwiXG4gICAgICAgICAgICBbdHlwZV09XCInbnVtYmVyJ1wiXG4gICAgICAgICAgICBbKG1vZGVsKV09XCJ0cmFuc2FjdGlvbkRpc2NvdW50QW1vdW50XCJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInVFJBTlNBQ1RJT05fRElTQ09VTlQnIHwgbG9jYWxpemVcIlxuICAgICAgICAgID48L2NvLWlucHV0LXRleHQ+XG4gICAgICAgICAgPGNvLWlucHV0LXRleHRcbiAgICAgICAgICAgICpuZ0lmPVwiZGlzY291bnRUeXBlID09PSBvcmRlckRpc2NvdW50VHlwZS5PcmRlclRvdGFsXCJcbiAgICAgICAgICAgIFt0eXBlXT1cIidudW1iZXInXCJcbiAgICAgICAgICAgIFsobW9kZWwpXT1cInRyYW5zYWN0aW9uVG90YWxcIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidUUkFOU0FDVElPTl9UT1RBTCcgfCBsb2NhbGl6ZVwiXG4gICAgICAgICAgPjwvY28taW5wdXQtdGV4dD5cblxuICAgICAgICAgIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEdhcD1cIjEwcHhcIiBmeExheW91dEFsaWduPVwiZW5kXCI+XG4gICAgICAgICAgICA8Y28tYnV0dG9uIFtsYWJlbF09XCInQ0FOQ0VMJyB8IGxvY2FsaXplXCIgKGNsaWNrKT1cImlucHV0RGlzY291bnRzID0gZmFsc2VcIj48L2NvLWJ1dHRvbj5cbiAgICAgICAgICAgIDxjby1idXR0b24gW2xhYmVsXT1cIidPSycgfCBsb2NhbGl6ZVwiIChjbGljayk9XCJvbklucHV0RGlzY291bnRzT2tDbGljaygpXCI+PC9jby1idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvY28tZm9ybT5cbiAgICA8L2NvLWRpYWxvZz5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbXG4gICAgXCIuL3Nob3BwaW5nLWNhcnQuY29tcG9uZW50LnNjc3NcIixcbiAgICBcIi4uL3Nob3BwaW5nLWNhcnQtb3ZlcnZpZXcvc2hvcHBpbmctY2FydC1vdmVydmlldy5jb21wb25lbnQuc2Nzc1wiLFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFNob3BwaW5nQ2FydENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIHB1YmxpYyByZWFkb25seSBvcmRlckRpc2NvdW50VHlwZTogdHlwZW9mIE9yZGVyRGlzY291bnRUeXBlID0gT3JkZXJEaXNjb3VudFR5cGU7XG4gIHB1YmxpYyByZWFkb25seSBpY29uVGhpY2tMaW5lczogQ29yZUNvbXBvbmVudHNJY29uID0gQ29yZUNvbXBvbmVudHNJY29uLlRoaWNrTGluZXM7XG4gIHB1YmxpYyByZWFkb25seSBpY29uVGhpbkxpbmVzOiBDb3JlQ29tcG9uZW50c0ljb24gPSBDb3JlQ29tcG9uZW50c0ljb24uVGhpbkxpbmVzO1xuICBwdWJsaWMgcmVhZG9ubHkgdmlld01vZGVzOiB0eXBlb2YgQ29udGVudFZpZXdNb2RlID0gQ29udGVudFZpZXdNb2RlO1xuXG5cbiAgQFZpZXdDaGlsZChDb1NpZGViYXJDb21wb25lbnQsIHsgc3RhdGljOiBmYWxzZSB9KVxuICBwdWJsaWMgZGlzY291bnRzU2lkZWJhcjogQ29TaWRlYmFyQ29tcG9uZW50O1xuXG4gIEBJbnB1dCgpXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLm92ZXJsYXllZFwiKVxuICBwdWJsaWMgb3ZlcmxheU1vZGU6IGJvb2xlYW47XG5cbiAgQElucHV0KClcbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3Mub3ZlcnZpZXdcIilcbiAgcHVibGljIG92ZXJ2aWV3TW9kZTogYm9vbGVhbjtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgaGlkZU92ZXJ2aWV3QnV0dG9uOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGhpZGVDaGVja291dEJ1dHRvbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBoaWRlQ2xvc2VDYXJ0QnV0dG9uOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBjbG9zZUNhcnQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIGNoZWNrb3V0OiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBvdmVydmlldzogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIHB1YmxpYyBnZXQgZmlsdGVyZWRDb2xsZWN0aW9uKCk6IFRyYW5zYWN0aW9uTGluZUluZm9bXSB7XG4gICAgcmV0dXJuIHRoaXMuX2ZpbHRlcmVkQ29sbGVjdGlvbjtcbiAgfVxuXG4gIHB1YmxpYyBzZXRGaWx0ZXJlZENvbGxlY3Rpb24odmFsdWU6IEJ1c2luZXNzT2JqZWN0W10pOiB2b2lkIHtcbiAgICB0aGlzLl9maWx0ZXJlZENvbGxlY3Rpb24gPSAodmFsdWUgYXMgVHJhbnNhY3Rpb25MaW5lSW5mb1tdKTtcbiAgICBjb25zdCBzb3J0QnlMaW5lTnI6IFNvcnRQcm9wZXJ0eSA9IHtcbiAgICAgIGFjdGl2ZTogdHJ1ZSxcbiAgICAgIGRpcmVjdGlvbjogU29ydERpcmVjdGlvbi5Bc2NlbmRpbmcsXG4gICAgICBwcm9wZXJ0eTogXCJsaW5lTnJcIixcbiAgICAgIHR5cGU6IFNvcnRUeXBlLk51bWJlcn07XG4gICAgU29ydFV0aWxzLlNvcnRPYmplY3RBcnJheSh0aGlzLl9maWx0ZXJlZENvbGxlY3Rpb24sIFtzb3J0QnlMaW5lTnJdKTtcbiAgfVxuXG4gIHB1YmxpYyBkaXNjb3VudEhlYWRlcjogc3RyaW5nO1xuICBwdWJsaWMgaW5wdXREaXNjb3VudHM6IGJvb2xlYW47XG4gIHB1YmxpYyB0cmFuc2FjdGlvbkRpc2NvdW50QW1vdW50OiBudW1iZXI7XG4gIHB1YmxpYyB0cmFuc2FjdGlvbkRpc2NvdW50UGVyY2VudGFnZTogbnVtYmVyO1xuICBwdWJsaWMgdHJhbnNhY3Rpb25Ub3RhbDogbnVtYmVyO1xuICBwdWJsaWMgZGlzY291bnRUeXBlOiBPcmRlckRpc2NvdW50VHlwZTtcblxuICBwdWJsaWMgYWN0aXZlVmlld01vZGU6IENvbnRlbnRWaWV3TW9kZSA9IENvbnRlbnRWaWV3TW9kZS5MaXN0O1xuICBwdWJsaWMgY29sdW1uczogYW55W10gPSBbXTtcblxuICBwdWJsaWMgc2hvd0Rpc2NvdW50c1NpZGViYXI6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwcml2YXRlIF9maWx0ZXJlZENvbGxlY3Rpb246IFRyYW5zYWN0aW9uTGluZUluZm9bXTtcbiAgcHJpdmF0ZSBfdHJhbnNhY3Rpb25VcGRhdGVkOiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGljb25DYWNoZVNlcnZpY2U6IEljb25DYWNoZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBfZGljdGlvbmFyeTogRGljdGlvbmFyeVNlcnZpY2UsXG4gICAgcHVibGljIHNlcnZpY2U6IFRyYW5zYWN0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIF90cmFuc2FjdGlvbkV2ZW50czogVHJhbnNhY3Rpb25FdmVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBfY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmXG4gICkge1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uVXBkYXRlZCA9IHRoaXMuc2VydmljZS50cmFuc2FjdGlvblVwZGF0ZWQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuc2V0RmlsdGVyZWRDb2xsZWN0aW9uKHRoaXMuc2VydmljZS5jdXJyZW50TGluZXMpO1xuICAgIH0pO1xuICAgIHRoaXMuc2V0RmlsdGVyZWRDb2xsZWN0aW9uKHRoaXMuc2VydmljZS5jdXJyZW50TGluZXMpO1xuXG4gICAgY29uc3QgbWVkaWFRdWVyeTogc3RyaW5nID0gXCIobWluLXdpZHRoOiA1MDBweClcIjtcblxuICAgIHRoaXMuY29sdW1ucy5wdXNoKFxuICAgICAge2ZpZWxkOiBcImxpbmVOclwiLCBoZWFkZXJUZXh0OiB0aGlzLl9kaWN0aW9uYXJ5LmdldChcIk5SXCIpLCBhbGxvd0ZpbHRlcmluZzogZmFsc2V9LFxuICAgICAge2ZpZWxkOiBcImFydGljbGVOdW1iZXJcIiwgaGVhZGVyVGV4dDogdGhpcy5fZGljdGlvbmFyeS5nZXQoXCJBUlRJQ0xFX05SXCIpfSxcbiAgICAgIHtmaWVsZDogXCJnb29kRGVzY3JpcHRpb25cIiwgaGVhZGVyVGV4dDogdGhpcy5fZGljdGlvbmFyeS5nZXQoXCJHT09EX0RFU0NSSVBUSU9OXCIpLCBoaWRlQXRNZWRpYTogbWVkaWFRdWVyeX0sXG4gICAgICB7ZmllbGQ6IFwiYW1vdW50XCIsIGhlYWRlclRleHQ6IHRoaXMuX2RpY3Rpb25hcnkuZ2V0KFwiTlVNQkVSXCIpLCB0ZXh0QWxpZ246IFwiUmlnaHRcIn0sXG4gICAgICB7ZmllbGQ6IFwicHJpY2VcIiwgaGVhZGVyVGV4dDogdGhpcy5fZGljdGlvbmFyeS5nZXQoXCJQUklDRVwiKSwgIGZvcm1hdDogXCJDMlwiLCB0ZXh0QWxpZ246IFwiUmlnaHRcIn0sXG4gICAgICB7ZmllbGQ6IFwicHJpY2VMaXN0Q29kZVwiLCBoZWFkZXJUZXh0OiB0aGlzLl9kaWN0aW9uYXJ5LmdldChcIlBSSUNFX0xJU1RcIiksIGhpZGVBdE1lZGlhOiBtZWRpYVF1ZXJ5fSxcbiAgICAgIHtmaWVsZDogXCJsaW5lRGlzY291bnRcIiwgaGVhZGVyVGV4dDogdGhpcy5fZGljdGlvbmFyeS5nZXQoXCJESVNDT1VOVF9QRVJDRU5UQUdFXCIpLCBmb3JtYXQ6IFwiQzJcIiwgdmlzaWJsZTogZmFsc2UsIGhpZGVBdE1lZGlhOiBtZWRpYVF1ZXJ5LCB0ZXh0QWxpZ246IFwiUmlnaHRcIn0sXG4gICAgICB7ZmllbGQ6IFwic3BlY2lhbERpc2NvdW50XCIsIGhlYWRlclRleHQ6IHRoaXMuX2RpY3Rpb25hcnkuZ2V0KFwiU1BFQ0lBTF9ESVNDT1VOVFwiKSwgZm9ybWF0OiBcIkMyXCIsIHZpc2libGU6IGZhbHNlLCBoaWRlQXRNZWRpYTogbWVkaWFRdWVyeSwgdGV4dEFsaWduOiBcIlJpZ2h0XCJ9LFxuICAgICAge2ZpZWxkOiBcImRpc2NvdW50QW1vdW50XCIsIGhlYWRlclRleHQ6IHRoaXMuX2RpY3Rpb25hcnkuZ2V0KFwiRElTQ09VTlRfQU1PVU5UXCIpLCBmb3JtYXQ6IFwiQzJcIiwgdmlzaWJsZTogZmFsc2UsIGhpZGVBdE1lZGlhOiBtZWRpYVF1ZXJ5LCB0ZXh0QWxpZ246IFwiUmlnaHRcIn0sXG4gICAgICB7ZmllbGQ6IFwic3VyY2hhcmdlQW1vdW50XCIsIGhlYWRlclRleHQ6IHRoaXMuX2RpY3Rpb25hcnkuZ2V0KFwiU1VSQ0hBUkdFX0FNT1VOVFwiKSwgZm9ybWF0OiBcIkMyXCIsIHZpc2libGU6IGZhbHNlLCBoaWRlQXRNZWRpYTogbWVkaWFRdWVyeSwgdGV4dEFsaWduOiBcIlJpZ2h0XCJ9LFxuICAgICAge2ZpZWxkOiBcImFzc2VtYmx5Q29zdFwiLCBoZWFkZXJUZXh0OiB0aGlzLl9kaWN0aW9uYXJ5LmdldChcIkFTU0VNQkxZX0NPU1RTXCIpLCBmb3JtYXQ6IFwiQzJcIiwgdmlzaWJsZTogZmFsc2UsIGhpZGVBdE1lZGlhOiBtZWRpYVF1ZXJ5LCB0ZXh0QWxpZ246IFwiUmlnaHRcIn0sXG4gICAgICB7ZmllbGQ6IFwiZ3Jvc3NMaW5lVG90YWxcIiwgaGVhZGVyVGV4dDogdGhpcy5fZGljdGlvbmFyeS5nZXQoXCJUT1RBTF9HUk9TU1wiKSwgZm9ybWF0OiBcIkMyXCIsIHZpc2libGU6IHRydWUsIGhpZGVBdE1lZGlhOiBtZWRpYVF1ZXJ5LCB0ZXh0QWxpZ246IFwiUmlnaHRcIn0sXG4gICAgICB7ZmllbGQ6IFwibGluZVRvdGFsRGlzY291bnRBbW91bnRcIiwgaGVhZGVyVGV4dDogdGhpcy5fZGljdGlvbmFyeS5nZXQoXCJESVNDT1VOVFwiKSwgZm9ybWF0OiBcIkMyXCIsIHZpc2libGU6IGZhbHNlLCAgaGlkZUF0TWVkaWE6IG1lZGlhUXVlcnksIHRleHRBbGlnbjogXCJSaWdodFwifSxcbiAgICAgIHtmaWVsZDogXCJuZXRMaW5lVG90YWxcIiwgaGVhZGVyVGV4dDogdGhpcy5fZGljdGlvbmFyeS5nZXQoXCJTVUJUT1RBTFwiKSwgZm9ybWF0OiBcIkMyXCIsIHZpc2libGU6IGZhbHNlLCB0ZXh0QWxpZ246IFwiUmlnaHRcIn0sXG4gICAgICB7ZmllbGQ6IFwidmF0SWRcIiwgaGVhZGVyVGV4dDogdGhpcy5fZGljdGlvbmFyeS5nZXQoXCJWQVRcIiksIGhpZGVBdE1lZGlhOiBtZWRpYVF1ZXJ5LCB2aXNpYmxlOiBmYWxzZSwgdGV4dEFsaWduOiBcIlJpZ2h0XCJ9LFxuICAgICAge2ZpZWxkOiBcInByaWNlRGVjbGFyYXRpb25cIiwgaGVhZGVyVGV4dDogdGhpcy5fZGljdGlvbmFyeS5nZXQoXCJUUkFOU0FDVElPTl9QUklDRV9ERUNMQVJBVElPTlwiKSwgdmlzaWJsZTogZmFsc2UsIGhpZGVBdE1lZGlhOiBtZWRpYVF1ZXJ5fSxcbiAgICAgIHtmaWVsZDogXCJuZXR0b1wiLCBoZWFkZXJUZXh0OiB0aGlzLl9kaWN0aW9uYXJ5LmdldChcIk5FVFRcIiksIGZvcm1hdDogXCJDMlwiLCAgaGlkZUF0TWVkaWE6IG1lZGlhUXVlcnksIHRleHRBbGlnbjogXCJSaWdodFwifSxcbiAgICAgIHtmaWVsZDogXCJ3YXJlaG91c2VOdW1iZXJcIiwgaGVhZGVyVGV4dDogdGhpcy5fZGljdGlvbmFyeS5nZXQoXCJXQVJFSE9VU0VcIiksIGhpZGVBdE1lZGlhOiBtZWRpYVF1ZXJ5LCB0ZXh0QWxpZ246IFwiUmlnaHRcIn0sXG4gICAgKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmhpZGVTaWRlYmFyKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl90cmFuc2FjdGlvblVwZGF0ZWQudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDYXJ0TGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fZGljdGlvbmFyeS5nZXQoXCJTSE9QUElOR19DQVJUX09WRVJWSUVXXCIsIHRydWUpICsgXCIoXCIgKyB0aGlzLnNlcnZpY2UuYXJ0aWNsZUFtb3VudC50b1N0cmluZygpICsgXCIpXCI7XG5cbiAgfVxuXG4gIHB1YmxpYyBhZGREaXNjb3VudCgpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dTaWRlYmFyKCk7XG5cbiAgICAvLyBUT0RPXG4gICAgLy8gdGhpcy50cmFuc2FjdGlvbkRpc2NvdW50UGVyY2VudGFnZSA9IHRoaXMuc2VydmljZS5jdXJyZW50VHJhbnNhY3Rpb24udHJhbnNhY3Rpb25EaXNjb3VudFBlcmNlbnRhZ2U7XG4gICAgLy8gdGhpcy50cmFuc2FjdGlvbkRpc2NvdW50QW1vdW50ID0gdGhpcy5zZXJ2aWNlLmN1cnJlbnRUcmFuc2FjdGlvbi50cmFuc2FjdGlvbkRpc2NvdW50QW1vdW50O1xuICAgIC8vIHRoaXMudHJhbnNhY3Rpb25Ub3RhbCA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHB1YmxpYyBvblN0YXJ0RGlzY291bnRJbnB1dChkaXNjb3VudFR5cGU6IE9yZGVyRGlzY291bnRUeXBlLCBoZWFkZXI6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuaGlkZVNpZGViYXIoKTtcblxuICAgIHRoaXMuZGlzY291bnRUeXBlID0gZGlzY291bnRUeXBlO1xuICAgIHRoaXMuZGlzY291bnRIZWFkZXIgPSBoZWFkZXI7XG4gICAgdGhpcy5pbnB1dERpc2NvdW50cyA9IHRydWU7XG4gIH1cblxuICBwdWJsaWMgb3BlblNob3BwaW5nQ2FydE1vZHVsZSgpOiB2b2lkIHtcbiAgICB0aGlzLl90cmFuc2FjdGlvbkV2ZW50cy5vcGVuU2hvcHBpbmdDYXJ0TW9kdWxlLm5leHQoKTtcbiAgICB0aGlzLmNsb3NlQ2FydC5lbWl0KCk7XG4gIH1cblxuICBwdWJsaWMgc2V0RGlzY291bnRIZWFkZXIoZGlzY291bnRUeXBlOiBPcmRlckRpc2NvdW50VHlwZSk6IHZvaWQge1xuICAgIHN3aXRjaCAodGhpcy5kaXNjb3VudFR5cGUpIHtcbiAgICAgIGNhc2UgT3JkZXJEaXNjb3VudFR5cGUuRGlzY291bnRQZXJjZW50YWdlOlxuICAgICAgICB0aGlzLmRpc2NvdW50SGVhZGVyID0gdGhpcy5fZGljdGlvbmFyeS5nZXQoXCJESVNDT1VOVF9QRVJDRU5UQUdFXCIsIHRydWUpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgT3JkZXJEaXNjb3VudFR5cGUuRGlzY291bnRBbW91bnQ6XG4gICAgICAgIHRoaXMuZGlzY291bnRIZWFkZXIgPSB0aGlzLl9kaWN0aW9uYXJ5LmdldChcIkRJU0NPVU5UX0FNT1VOVFwiLCB0cnVlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIE9yZGVyRGlzY291bnRUeXBlLk9yZGVyVG90YWw6XG4gICAgICAgIHRoaXMuZGlzY291bnRIZWFkZXIgPSB0aGlzLl9kaWN0aW9uYXJ5LmdldChcIk9SREVSX1RPVEFMXCIsIHRydWUpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25JbnB1dERpc2NvdW50c09rQ2xpY2soKTogdm9pZCB7XG4gICAgbGV0IHZhbHVlVG9Vc2U6IG51bWJlcjtcbiAgICBzd2l0Y2ggKHRoaXMuZGlzY291bnRUeXBlKSB7XG4gICAgICBjYXNlIE9yZGVyRGlzY291bnRUeXBlLkRpc2NvdW50UGVyY2VudGFnZTpcbiAgICAgICAgdmFsdWVUb1VzZSA9IHRoaXMudHJhbnNhY3Rpb25EaXNjb3VudFBlcmNlbnRhZ2U7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBPcmRlckRpc2NvdW50VHlwZS5EaXNjb3VudEFtb3VudDpcbiAgICAgICAgdmFsdWVUb1VzZSA9IHRoaXMudHJhbnNhY3Rpb25EaXNjb3VudEFtb3VudDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIE9yZGVyRGlzY291bnRUeXBlLk9yZGVyVG90YWw6XG4gICAgICAgIHZhbHVlVG9Vc2UgPSB0aGlzLnRyYW5zYWN0aW9uVG90YWw7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICAvL1RPRE8gdGhpcy5zZXJ2aWNlLnNldFRyYW5zYWN0aW9uRGlzY291bnRzKHRoaXMuc2VydmljZS5jdXJyZW50VHJhbnNhY3Rpb24udXVpZCwgdGhpcy5kaXNjb3VudFR5cGUsIHZhbHVlVG9Vc2UpO1xuICAgIHRoaXMuaW5wdXREaXNjb3VudHMgPSBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyB0cmFja0J5Rm4oaW5kZXg6IG51bWJlciwgbGluZTogVHJhbnNhY3Rpb25MaW5lSW5mbyk6IGFueSB7XG4gICAgcmV0dXJuIGxpbmUubGluZU5yO1xuICB9XG5cbiAgcHVibGljIGhhbmRsZVJvd3NTZWxlY3RlZChyb3dzOiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCBzZWxlY3RlZFJvdzogT2JqZWN0ID0gcm93cy5maW5kKHggPT4geCAhPT0gdW5kZWZpbmVkKTtcbiAgfVxuXG4gIHB1YmxpYyBzaG93U2lkZWJhcigpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dEaXNjb3VudHNTaWRlYmFyID0gdHJ1ZTtcbiAgICB0aGlzLl9jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG5cbiAgICBpZiAodGhpcy5kaXNjb3VudHNTaWRlYmFyKSB7XG4gICAgICB0aGlzLmRpc2NvdW50c1NpZGViYXIuc2hvdygpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBoaWRlU2lkZWJhcigpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dEaXNjb3VudHNTaWRlYmFyID0gZmFsc2U7XG4gICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgaWYgKHRoaXMuZGlzY291bnRzU2lkZWJhcikge1xuICAgICAgdGhpcy5kaXNjb3VudHNTaWRlYmFyLmhpZGUoKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==