@osovitny/anatoly 2.14.17 → 2.14.18
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.
- package/esm2020/lib/ui/components/billing/buyaccess-button.component.mjs +8 -7
- package/fesm2015/osovitny-anatoly.mjs +7 -6
- package/fesm2015/osovitny-anatoly.mjs.map +1 -1
- package/fesm2020/osovitny-anatoly.mjs +7 -6
- package/fesm2020/osovitny-anatoly.mjs.map +1 -1
- package/lib/ui/components/billing/buyaccess-button.component.d.ts +3 -3
- package/package.json +1 -1
|
@@ -27,7 +27,7 @@ export class BuyAccessButtonComponent {
|
|
|
27
27
|
this.currentPlan = 0;
|
|
28
28
|
this.currentPlanTitle = '';
|
|
29
29
|
this.visibleIfUserSignedIn = false;
|
|
30
|
-
this.
|
|
30
|
+
this.buy = new EventEmitter();
|
|
31
31
|
}
|
|
32
32
|
ngOnInit() {
|
|
33
33
|
if (!this.appContext.isUserSignedIn()) {
|
|
@@ -43,7 +43,8 @@ export class BuyAccessButtonComponent {
|
|
|
43
43
|
this.contextUpdated = true;
|
|
44
44
|
});
|
|
45
45
|
}
|
|
46
|
-
|
|
46
|
+
//Events
|
|
47
|
+
onBuyAccess() {
|
|
47
48
|
/*
|
|
48
49
|
const text = `Requested plan: ${this.plantitle} `;
|
|
49
50
|
const that = this;
|
|
@@ -56,21 +57,21 @@ export class BuyAccessButtonComponent {
|
|
|
56
57
|
});
|
|
57
58
|
});
|
|
58
59
|
*/
|
|
59
|
-
this.
|
|
60
|
+
this.buy.emit({ plan: this.plan });
|
|
60
61
|
}
|
|
61
62
|
}
|
|
62
63
|
BuyAccessButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: BuyAccessButtonComponent, deps: [{ token: i1.AppContextService }], target: i0.ɵɵFactoryTarget.Component });
|
|
63
|
-
BuyAccessButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: BuyAccessButtonComponent, selector: "anatoly-buyaccess-button", inputs: { plan: "plan", plantitle: "plantitle", visibleIfUserSignedIn: "visibleIfUserSignedIn" }, outputs: {
|
|
64
|
+
BuyAccessButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: BuyAccessButtonComponent, selector: "anatoly-buyaccess-button", inputs: { plan: "plan", plantitle: "plantitle", visibleIfUserSignedIn: "visibleIfUserSignedIn" }, outputs: { buy: "buy" }, ngImport: i0, template: "<div *ngIf=\"contextUpdated\">\r\n <div *ngIf=\"!isUserSignedIn\">\r\n <anatoly-signup-button classbtn=\"btn btn-block btn-primary\"></anatoly-signup-button>\r\n </div>\r\n\r\n <div *ngIf=\"isUserSignedIn && visibleIfUserSignedIn\">\r\n <button class=\"btn btn-block btn-success selectPlan\" *ngIf=\"plan == currentPlan\">\r\n Your Plan\r\n </button>\r\n\r\n <button class=\"btn btn-block btn-warning selectPlan\" \r\n *ngIf=\"plan != currentPlan && currentPlan == 1\" \r\n (click)=\"onBuyAccess()\">\r\n Buy Now\r\n </button>\r\n </div>\r\n</div>\r\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.SignUpButtonComponent, selector: "anatoly-signup-button", inputs: ["classbtn"] }] });
|
|
64
65
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: BuyAccessButtonComponent, decorators: [{
|
|
65
66
|
type: Component,
|
|
66
|
-
args: [{ selector: 'anatoly-buyaccess-button', template: "<div *ngIf=\"contextUpdated\">\r\n <div *ngIf=\"!isUserSignedIn\">\r\n <anatoly-signup-button classbtn=\"btn btn-block btn-primary\"></anatoly-signup-button>\r\n </div>\r\n\r\n <div *ngIf=\"isUserSignedIn && visibleIfUserSignedIn\">\r\n <button class=\"btn btn-block btn-success selectPlan\" *ngIf=\"plan == currentPlan\">\r\n Your Plan\r\n </button>\r\n\r\n <button class=\"btn btn-block btn-warning selectPlan\" *ngIf=\"plan != currentPlan && currentPlan == 1\" (click)=\"
|
|
67
|
+
args: [{ selector: 'anatoly-buyaccess-button', template: "<div *ngIf=\"contextUpdated\">\r\n <div *ngIf=\"!isUserSignedIn\">\r\n <anatoly-signup-button classbtn=\"btn btn-block btn-primary\"></anatoly-signup-button>\r\n </div>\r\n\r\n <div *ngIf=\"isUserSignedIn && visibleIfUserSignedIn\">\r\n <button class=\"btn btn-block btn-success selectPlan\" *ngIf=\"plan == currentPlan\">\r\n Your Plan\r\n </button>\r\n\r\n <button class=\"btn btn-block btn-warning selectPlan\" \r\n *ngIf=\"plan != currentPlan && currentPlan == 1\" \r\n (click)=\"onBuyAccess()\">\r\n Buy Now\r\n </button>\r\n </div>\r\n</div>\r\n" }]
|
|
67
68
|
}], ctorParameters: function () { return [{ type: i1.AppContextService }]; }, propDecorators: { plan: [{
|
|
68
69
|
type: Input
|
|
69
70
|
}], plantitle: [{
|
|
70
71
|
type: Input
|
|
71
72
|
}], visibleIfUserSignedIn: [{
|
|
72
73
|
type: Input
|
|
73
|
-
}],
|
|
74
|
+
}], buy: [{
|
|
74
75
|
type: Output
|
|
75
76
|
}] } });
|
|
76
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV5YWNjZXNzLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvdWkvY29tcG9uZW50cy9iaWxsaW5nL2J1eWFjY2Vzcy1idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5hdG9seS9zcmMvbGliL3VpL2NvbXBvbmVudHMvYmlsbGluZy9idXlhY2Nlc3MtYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztFQWNFO0FBRUYsT0FBTztBQUNQLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7Ozs7O0FBUzdFLE1BQU0sT0FBTyx3QkFBd0I7SUFZbkMsWUFBb0IsVUFBNkI7UUFBN0IsZUFBVSxHQUFWLFVBQVUsQ0FBbUI7UUFYMUMsbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFDdkIsbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFDdkIsZ0JBQVcsR0FBRyxDQUFDLENBQUM7UUFDaEIscUJBQWdCLEdBQUcsRUFBRSxDQUFDO1FBSXBCLDBCQUFxQixHQUFZLEtBQUssQ0FBQztRQUV0QyxRQUFHLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7SUFHdEQsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxjQUFjLEVBQUUsRUFBRTtZQUNyQyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztZQUMzQixPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ3JDLElBQUksQ0FBQyxjQUFjLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBQztZQUU3QyxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7Z0JBQ3ZCLElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUM7Z0JBQy9DLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDO2FBQzdEO1lBRUQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7UUFDN0IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsUUFBUTtJQUNSLFdBQVc7UUFDVDs7Ozs7Ozs7Ozs7VUFXRTtRQUVGLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7O3FIQWpEVSx3QkFBd0I7eUdBQXhCLHdCQUF3QiwyTEMxQnJDLDZsQkFpQkE7MkZEU2Esd0JBQXdCO2tCQUpwQyxTQUFTOytCQUNFLDBCQUEwQjt3R0FTM0IsSUFBSTtzQkFBWixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0cscUJBQXFCO3NCQUE3QixLQUFLO2dCQUVJLEdBQUc7c0JBQVosTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbjxmaWxlPlxyXG4gIFByb2plY3Q6XHJcbiAgICBAb3Nvdml0bnkvYW5hdG9seVxyXG5cclxuICBBdXRob3JzOlxyXG4gICAgVmFkaW0gT3Nvdml0bnlcclxuICAgIEFuYXRvbHkgT3Nvdml0bnlcclxuXHJcbiAgQ3JlYXRlZDpcclxuICAgIDE0IEF1ZyAyMDE4XHJcblxyXG4gIENvcHlyaWdodCAoYykgMjAxNi0yMDIyIE9zb3ZpdG55IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuPC9maWxlPlxyXG4qL1xyXG5cclxuLy8gTm9kZVxyXG5pbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuLy8gQXBwXHJcbmltcG9ydCB7QXBwQ29udGV4dFNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL2NvcmUvc2VydmljZXMvYXBwY29udGV4dC5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYW5hdG9seS1idXlhY2Nlc3MtYnV0dG9uJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYnV5YWNjZXNzLWJ1dHRvbi5jb21wb25lbnQuaHRtbCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCdXlBY2Nlc3NCdXR0b25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIHB1YmxpYyBjb250ZXh0VXBkYXRlZCA9IGZhbHNlO1xyXG4gIHB1YmxpYyBpc1VzZXJTaWduZWRJbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBjdXJyZW50UGxhbiA9IDA7XHJcbiAgcHVibGljIGN1cnJlbnRQbGFuVGl0bGUgPSAnJztcclxuXHJcbiAgQElucHV0KCkgcGxhbjogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIHBsYW50aXRsZTogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHZpc2libGVJZlVzZXJTaWduZWRJbjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBAT3V0cHV0KCkgYnV5OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhcHBDb250ZXh0OiBBcHBDb250ZXh0U2VydmljZSkge1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBpZiAoIXRoaXMuYXBwQ29udGV4dC5pc1VzZXJTaWduZWRJbigpKSB7XHJcbiAgICAgIHRoaXMuY29udGV4dFVwZGF0ZWQgPSB0cnVlO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5hcHBDb250ZXh0LmdldEN1cnJlbnQoKGN1cnJlbnQpID0+IHtcclxuICAgICAgdGhpcy5pc1VzZXJTaWduZWRJbiA9IGN1cnJlbnQuaXNVc2VyU2lnbmVkSW47XHJcblxyXG4gICAgICBpZiAodGhpcy5pc1VzZXJTaWduZWRJbikge1xyXG4gICAgICAgIHRoaXMuY3VycmVudFBsYW4gPSBjdXJyZW50LmFjY291bnQuYmlsbGluZ1BsYW47XHJcbiAgICAgICAgdGhpcy5jdXJyZW50UGxhblRpdGxlID0gY3VycmVudC5hY2NvdW50LmJpbGxpbmdQbGFuQXNTdHJpbmc7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuY29udGV4dFVwZGF0ZWQgPSB0cnVlO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvL0V2ZW50c1xyXG4gIG9uQnV5QWNjZXNzKCkge1xyXG4gICAgLypcclxuICAgIGNvbnN0IHRleHQgPSBgUmVxdWVzdGVkIHBsYW46ICR7dGhpcy5wbGFudGl0bGV9IGA7XHJcbiAgICBjb25zdCB0aGF0ID0gdGhpcztcclxuXHJcbiAgICBBbGVydHMuYXJlWW91U3VyZSh0ZXh0LCAnQnV5aW5nIGFjY2VzcycsICdDb25maXJtIGNoYW5nZScsICdDYW5jZWwnLCAoKSA9PiB7XHJcbiAgICAgIHRoYXQuYXBpLmJ1eUFjY2Vzcyh0aGF0LnBsYW4sICgpID0+IHtcclxuICAgICAgICBBbGVydHMuc3VjY2VzcygnQWNjZXNzIEdyYW50ZWQnLCBudWxsLCBudWxsLCgpID0+IHtcclxuICAgICAgICAgICh3aW5kb3cgYXMgYW55KS5sb2NhdGlvbi5yZWxvYWQoKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICAgICovXHJcblxyXG4gICAgdGhpcy5idXkuZW1pdCh7IHBsYW46IHRoaXMucGxhbiB9KTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiAqbmdJZj1cImNvbnRleHRVcGRhdGVkXCI+XHJcbiAgPGRpdiAqbmdJZj1cIiFpc1VzZXJTaWduZWRJblwiPlxyXG4gICAgPGFuYXRvbHktc2lnbnVwLWJ1dHRvbiBjbGFzc2J0bj1cImJ0biBidG4tYmxvY2sgYnRuLXByaW1hcnlcIj48L2FuYXRvbHktc2lnbnVwLWJ1dHRvbj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiAqbmdJZj1cImlzVXNlclNpZ25lZEluICYmIHZpc2libGVJZlVzZXJTaWduZWRJblwiPlxyXG4gICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tYmxvY2sgYnRuLXN1Y2Nlc3Mgc2VsZWN0UGxhblwiICpuZ0lmPVwicGxhbiA9PSBjdXJyZW50UGxhblwiPlxyXG4gICAgICBZb3VyIFBsYW5cclxuICAgIDwvYnV0dG9uPlxyXG5cclxuICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLWJsb2NrICBidG4td2FybmluZyBzZWxlY3RQbGFuXCIgXHJcbiAgICAgICAgICAgICpuZ0lmPVwicGxhbiAhPSBjdXJyZW50UGxhbiAmJiBjdXJyZW50UGxhbiA9PSAxXCIgXHJcbiAgICAgICAgICAgIChjbGljayk9XCJvbkJ1eUFjY2VzcygpXCI+XHJcbiAgICAgIEJ1eSBOb3dcclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
|
|
@@ -2332,7 +2332,7 @@ class BuyAccessButtonComponent {
|
|
|
2332
2332
|
this.currentPlan = 0;
|
|
2333
2333
|
this.currentPlanTitle = '';
|
|
2334
2334
|
this.visibleIfUserSignedIn = false;
|
|
2335
|
-
this.
|
|
2335
|
+
this.buy = new EventEmitter();
|
|
2336
2336
|
}
|
|
2337
2337
|
ngOnInit() {
|
|
2338
2338
|
if (!this.appContext.isUserSignedIn()) {
|
|
@@ -2348,7 +2348,8 @@ class BuyAccessButtonComponent {
|
|
|
2348
2348
|
this.contextUpdated = true;
|
|
2349
2349
|
});
|
|
2350
2350
|
}
|
|
2351
|
-
|
|
2351
|
+
//Events
|
|
2352
|
+
onBuyAccess() {
|
|
2352
2353
|
/*
|
|
2353
2354
|
const text = `Requested plan: ${this.plantitle} `;
|
|
2354
2355
|
const that = this;
|
|
@@ -2361,21 +2362,21 @@ class BuyAccessButtonComponent {
|
|
|
2361
2362
|
});
|
|
2362
2363
|
});
|
|
2363
2364
|
*/
|
|
2364
|
-
this.
|
|
2365
|
+
this.buy.emit({ plan: this.plan });
|
|
2365
2366
|
}
|
|
2366
2367
|
}
|
|
2367
2368
|
BuyAccessButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: BuyAccessButtonComponent, deps: [{ token: AppContextService }], target: i0.ɵɵFactoryTarget.Component });
|
|
2368
|
-
BuyAccessButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: BuyAccessButtonComponent, selector: "anatoly-buyaccess-button", inputs: { plan: "plan", plantitle: "plantitle", visibleIfUserSignedIn: "visibleIfUserSignedIn" }, outputs: {
|
|
2369
|
+
BuyAccessButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: BuyAccessButtonComponent, selector: "anatoly-buyaccess-button", inputs: { plan: "plan", plantitle: "plantitle", visibleIfUserSignedIn: "visibleIfUserSignedIn" }, outputs: { buy: "buy" }, ngImport: i0, template: "<div *ngIf=\"contextUpdated\">\r\n <div *ngIf=\"!isUserSignedIn\">\r\n <anatoly-signup-button classbtn=\"btn btn-block btn-primary\"></anatoly-signup-button>\r\n </div>\r\n\r\n <div *ngIf=\"isUserSignedIn && visibleIfUserSignedIn\">\r\n <button class=\"btn btn-block btn-success selectPlan\" *ngIf=\"plan == currentPlan\">\r\n Your Plan\r\n </button>\r\n\r\n <button class=\"btn btn-block btn-warning selectPlan\" \r\n *ngIf=\"plan != currentPlan && currentPlan == 1\" \r\n (click)=\"onBuyAccess()\">\r\n Buy Now\r\n </button>\r\n </div>\r\n</div>\r\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: SignUpButtonComponent, selector: "anatoly-signup-button", inputs: ["classbtn"] }] });
|
|
2369
2370
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: BuyAccessButtonComponent, decorators: [{
|
|
2370
2371
|
type: Component,
|
|
2371
|
-
args: [{ selector: 'anatoly-buyaccess-button', template: "<div *ngIf=\"contextUpdated\">\r\n <div *ngIf=\"!isUserSignedIn\">\r\n <anatoly-signup-button classbtn=\"btn btn-block btn-primary\"></anatoly-signup-button>\r\n </div>\r\n\r\n <div *ngIf=\"isUserSignedIn && visibleIfUserSignedIn\">\r\n <button class=\"btn btn-block btn-success selectPlan\" *ngIf=\"plan == currentPlan\">\r\n Your Plan\r\n </button>\r\n\r\n <button class=\"btn btn-block btn-warning selectPlan\" *ngIf=\"plan != currentPlan && currentPlan == 1\" (click)=\"
|
|
2372
|
+
args: [{ selector: 'anatoly-buyaccess-button', template: "<div *ngIf=\"contextUpdated\">\r\n <div *ngIf=\"!isUserSignedIn\">\r\n <anatoly-signup-button classbtn=\"btn btn-block btn-primary\"></anatoly-signup-button>\r\n </div>\r\n\r\n <div *ngIf=\"isUserSignedIn && visibleIfUserSignedIn\">\r\n <button class=\"btn btn-block btn-success selectPlan\" *ngIf=\"plan == currentPlan\">\r\n Your Plan\r\n </button>\r\n\r\n <button class=\"btn btn-block btn-warning selectPlan\" \r\n *ngIf=\"plan != currentPlan && currentPlan == 1\" \r\n (click)=\"onBuyAccess()\">\r\n Buy Now\r\n </button>\r\n </div>\r\n</div>\r\n" }]
|
|
2372
2373
|
}], ctorParameters: function () { return [{ type: AppContextService }]; }, propDecorators: { plan: [{
|
|
2373
2374
|
type: Input
|
|
2374
2375
|
}], plantitle: [{
|
|
2375
2376
|
type: Input
|
|
2376
2377
|
}], visibleIfUserSignedIn: [{
|
|
2377
2378
|
type: Input
|
|
2378
|
-
}],
|
|
2379
|
+
}], buy: [{
|
|
2379
2380
|
type: Output
|
|
2380
2381
|
}] } });
|
|
2381
2382
|
|