@one-commerce/sdk-core 2.3.6 → 2.3.7
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/lib/bundles/bundle.esm.js +1577 -0
- package/lib/bundles/bundle.esm.js.map +1 -0
- package/lib/bundles/bundle.esm.min.js +2 -0
- package/lib/bundles/bundle.esm.min.js.map +1 -0
- package/lib/bundles/bundle.umd.js +1593 -0
- package/lib/bundles/bundle.umd.js.map +1 -0
- package/lib/bundles/bundle.umd.min.js +2 -0
- package/lib/bundles/bundle.umd.min.js.map +1 -0
- package/lib/cjs/backoffice/context.js +196 -0
- package/lib/cjs/backoffice/context.js.map +1 -0
- package/lib/cjs/backoffice/services.js +298 -0
- package/lib/cjs/backoffice/services.js.map +1 -0
- package/lib/cjs/events.js +75 -0
- package/lib/cjs/events.js.map +1 -0
- package/lib/cjs/index.js +418 -0
- package/lib/cjs/index.js.map +1 -0
- package/lib/cjs/shop/context.js +144 -0
- package/lib/cjs/shop/context.js.map +1 -0
- package/lib/cjs/shop/services.js +435 -0
- package/lib/cjs/shop/services.js.map +1 -0
- package/lib/cjs/utils.js +111 -0
- package/lib/cjs/utils.js.map +1 -0
- package/lib/esm/backoffice/context.js +100 -0
- package/lib/esm/backoffice/context.js.map +1 -0
- package/lib/esm/backoffice/services.js +114 -0
- package/lib/esm/backoffice/services.js.map +1 -0
- package/lib/esm/events.js +47 -0
- package/lib/esm/events.js.map +1 -0
- package/lib/esm/index.js +244 -0
- package/lib/esm/index.js.map +1 -0
- package/lib/esm/shop/context.js +70 -0
- package/lib/esm/shop/context.js.map +1 -0
- package/lib/esm/shop/services.js +218 -0
- package/lib/esm/shop/services.js.map +1 -0
- package/lib/esm/utils.js +47 -0
- package/lib/esm/utils.js.map +1 -0
- package/lib/types/backoffice/context.d.ts +66 -0
- package/lib/types/backoffice/context.d.ts.map +1 -0
- package/lib/types/backoffice/services.d.ts +49 -0
- package/lib/types/backoffice/services.d.ts.map +1 -0
- package/lib/types/events.d.ts +9 -0
- package/lib/types/events.d.ts.map +1 -0
- package/lib/types/iframe-channel.d.ts +19 -0
- package/lib/types/index.d.ts +107 -0
- package/lib/types/index.d.ts.map +1 -0
- package/lib/types/shop/context.d.ts +30 -0
- package/lib/types/shop/context.d.ts.map +1 -0
- package/lib/types/shop/services.d.ts +161 -0
- package/lib/types/shop/services.d.ts.map +1 -0
- package/lib/types/utils.d.ts +12 -0
- package/lib/types/utils.d.ts.map +1 -0
- package/package.json +3 -3
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
2
|
+
|
|
3
|
+
import { BaseCallClass } from "../utils";
|
|
4
|
+
export class BackofficeCatalog extends BaseCallClass {
|
|
5
|
+
constructor(...args) {
|
|
6
|
+
super(...args);
|
|
7
|
+
|
|
8
|
+
_defineProperty(this, "serviceName", 'catalog');
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
fetchCategories() {
|
|
12
|
+
return this.call('fetchCategories');
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
fetchProduct(id) {
|
|
16
|
+
return this.call('fetchProduct', id);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
}
|
|
20
|
+
export class BackofficeUser extends BaseCallClass {
|
|
21
|
+
constructor(...args) {
|
|
22
|
+
super(...args);
|
|
23
|
+
|
|
24
|
+
_defineProperty(this, "serviceName", 'user');
|
|
25
|
+
|
|
26
|
+
_defineProperty(this, "email", void 0);
|
|
27
|
+
|
|
28
|
+
_defineProperty(this, "id", void 0);
|
|
29
|
+
|
|
30
|
+
_defineProperty(this, "name", void 0);
|
|
31
|
+
|
|
32
|
+
_defineProperty(this, "authorities", void 0);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
}
|
|
36
|
+
export class BackofficeTenant extends BaseCallClass {
|
|
37
|
+
constructor(...args) {
|
|
38
|
+
super(...args);
|
|
39
|
+
|
|
40
|
+
_defineProperty(this, "serviceName", 'tenant');
|
|
41
|
+
|
|
42
|
+
_defineProperty(this, "tenantKey", void 0);
|
|
43
|
+
|
|
44
|
+
_defineProperty(this, "language", void 0);
|
|
45
|
+
|
|
46
|
+
_defineProperty(this, "currency", void 0);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
}
|
|
50
|
+
export class BackofficeLayout extends BaseCallClass {
|
|
51
|
+
constructor(...args) {
|
|
52
|
+
super(...args);
|
|
53
|
+
|
|
54
|
+
_defineProperty(this, "serviceName", 'layout');
|
|
55
|
+
|
|
56
|
+
_defineProperty(this, "isAsideOpened", void 0);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
}
|
|
60
|
+
export class BackofficeAuthorization extends BaseCallClass {
|
|
61
|
+
constructor(...args) {
|
|
62
|
+
super(...args);
|
|
63
|
+
|
|
64
|
+
_defineProperty(this, "serviceName", 'authorization');
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
getAuthToken() {
|
|
68
|
+
return this.call('getAuthToken');
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
}
|
|
72
|
+
export class BackofficeCustomer extends BaseCallClass {
|
|
73
|
+
constructor(...args) {
|
|
74
|
+
super(...args);
|
|
75
|
+
|
|
76
|
+
_defineProperty(this, "serviceName", 'customer');
|
|
77
|
+
|
|
78
|
+
_defineProperty(this, "id", void 0);
|
|
79
|
+
|
|
80
|
+
_defineProperty(this, "name", void 0);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
}
|
|
84
|
+
export class BackofficePlugin extends BaseCallClass {
|
|
85
|
+
constructor(...args) {
|
|
86
|
+
super(...args);
|
|
87
|
+
|
|
88
|
+
_defineProperty(this, "serviceName", 'plugin');
|
|
89
|
+
|
|
90
|
+
_defineProperty(this, "id", void 0);
|
|
91
|
+
|
|
92
|
+
_defineProperty(this, "srcUrl", void 0);
|
|
93
|
+
|
|
94
|
+
_defineProperty(this, "name", void 0);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
}
|
|
98
|
+
export class BackofficeOrderpath extends BaseCallClass {
|
|
99
|
+
constructor(...args) {
|
|
100
|
+
super(...args);
|
|
101
|
+
|
|
102
|
+
_defineProperty(this, "serviceName", 'orderpath');
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
fetchCart(id) {
|
|
106
|
+
return this.call('fetchCart', id);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
fetchOffer(id) {
|
|
110
|
+
return this.call('fetchOffer', id);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=services.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/backoffice/services.ts"],"names":["BaseCallClass","BackofficeCatalog","fetchCategories","call","fetchProduct","id","BackofficeUser","BackofficeTenant","BackofficeLayout","BackofficeAuthorization","getAuthToken","BackofficeCustomer","BackofficePlugin","BackofficeOrderpath","fetchCart","fetchOffer"],"mappings":";;AACA,SAASA,aAAT,QAA8B,UAA9B;AAEA,OAAO,MAAMC,iBAAN,SAAgCD,aAAhC,CAA4E;AAAA;AAAA;;AAAA,yCACnE,SADmE;AAAA;;AAGjFE,EAAAA,eAAe,GAA4B;AACzC,WAAO,KAAKC,IAAL,CAAU,iBAAV,CAAP;AACD;;AACMC,EAAAA,YAAY,CAACC,EAAD,EAA+B;AAChD,WAAO,KAAKF,IAAL,CAAU,cAAV,EAA0BE,EAA1B,CAAP;AACD;;AARgF;AAWnF,OAAO,MAAMC,cAAN,SAA6BN,aAA7B,CAAsE;AAAA;AAAA;;AAAA,yCAC7D,MAD6D;;AAAA;;AAAA;;AAAA;;AAAA;AAAA;;AAAA;AAQ7E,OAAO,MAAMO,gBAAN,SAA+BP,aAA/B,CAA0E;AAAA;AAAA;;AAAA,yCACjE,QADiE;;AAAA;;AAAA;;AAAA;AAAA;;AAAA;AAOjF,OAAO,MAAMQ,gBAAN,SAA+BR,aAA/B,CAA0E;AAAA;AAAA;;AAAA,yCACjE,QADiE;;AAAA;AAAA;;AAAA;AAKjF,OAAO,MAAMS,uBAAN,SAAsCT,aAAtC,CAAwF;AAAA;AAAA;;AAAA,yCAC/E,eAD+E;AAAA;;AAG7FU,EAAAA,YAAY,GAAoB;AAC9B,WAAO,KAAKP,IAAL,CAAU,cAAV,CAAP;AACD;;AAL4F;AAQ/F,OAAO,MAAMQ,kBAAN,SAAiCX,aAAjC,CAA8E;AAAA;AAAA;;AAAA,yCACrE,UADqE;;AAAA;;AAAA;AAAA;;AAAA;AAMrF,OAAO,MAAMY,gBAAN,SAA+BZ,aAA/B,CAA0E;AAAA;AAAA;;AAAA,yCACjE,QADiE;;AAAA;;AAAA;;AAAA;AAAA;;AAAA;AAOjF,OAAO,MAAMa,mBAAN,SAAkCb,aAAlC,CAAgF;AAAA;AAAA;;AAAA,yCACvE,WADuE;AAAA;;AAErFc,EAAAA,SAAS,CAACT,EAAD,EAA+B;AACtC,WAAO,KAAKF,IAAL,CAAU,WAAV,EAAuBE,EAAvB,CAAP;AACD;;AACDU,EAAAA,UAAU,CAACV,EAAD,EAA+B;AACvC,WAAO,KAAKF,IAAL,CAAU,YAAV,EAAwBE,EAAxB,CAAP;AACD;;AAPoF","sourcesContent":["import { Backoffice } from \"@one-commerce/sdk-shared\";\nimport { BaseCallClass } from \"../utils\";\n\nexport class BackofficeCatalog extends BaseCallClass implements Backoffice.Catalog {\n serviceName = 'catalog'\n\n fetchCategories(): Promise<Array<unknown>> {\n return this.call('fetchCategories')\n }\n public fetchProduct(id: string): Promise<unknown> {\n return this.call('fetchProduct', id)\n }\n}\n\nexport class BackofficeUser extends BaseCallClass implements Backoffice.User {\n serviceName = 'user'\n email?: string;\n id!: string;\n name?: string;\n authorities!: Array<string>;\n}\n\nexport class BackofficeTenant extends BaseCallClass implements Backoffice.Tenant {\n serviceName = 'tenant'\n tenantKey?: string;\n language?: string;\n currency?: { code: string; iso: string; symbol: string; };\n}\n\nexport class BackofficeLayout extends BaseCallClass implements Backoffice.Layout {\n serviceName = 'layout'\n isAsideOpened!: boolean;\n}\n\nexport class BackofficeAuthorization extends BaseCallClass implements Backoffice.Authorization {\n serviceName = 'authorization'\n\n getAuthToken(): Promise<string> {\n return this.call('getAuthToken')\n }\n}\n\nexport class BackofficeCustomer extends BaseCallClass implements Backoffice.Customer {\n serviceName = 'customer'\n id?: string;\n name?: string;\n}\n\nexport class BackofficePlugin extends BaseCallClass implements Backoffice.Plugin {\n serviceName = 'plugin'\n id: string;\n srcUrl?: string;\n name?: string;\n}\n\nexport class BackofficeOrderpath extends BaseCallClass implements Backoffice.Orderpath {\n serviceName = 'orderpath'\n fetchCart(id: string): Promise<unknown> {\n return this.call('fetchCart', id)\n }\n fetchOffer(id: string): Promise<unknown> {\n return this.call('fetchOffer', id)\n }\n}\n"],"file":"services.js"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
2
|
+
|
|
3
|
+
class Events {
|
|
4
|
+
constructor() {
|
|
5
|
+
_defineProperty(this, "_callbacks", void 0);
|
|
6
|
+
|
|
7
|
+
this._callbacks = {};
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
on(key, callback) {
|
|
11
|
+
// create an empty array for the event key
|
|
12
|
+
if (this._callbacks[key] === undefined) {
|
|
13
|
+
this._callbacks[key] = [];
|
|
14
|
+
} // save the callback in the array for the event key
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
this._callbacks[key].push(callback);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
off(key, callback) {
|
|
21
|
+
// if the key exists
|
|
22
|
+
if (this._callbacks[key] !== undefined) {
|
|
23
|
+
// iterate through the callbacks for the event key
|
|
24
|
+
for (let i = 0; i < this._callbacks[key].length; i++) {
|
|
25
|
+
// if the callback matches, remove it
|
|
26
|
+
if (this._callbacks[key][i] === callback) {
|
|
27
|
+
this._callbacks[key].splice(i, 1);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
emit(key, ...params) {
|
|
34
|
+
// if the key exists
|
|
35
|
+
if (this._callbacks[key] !== undefined) {
|
|
36
|
+
// iterate through the callbacks for the event key
|
|
37
|
+
for (let i = 0; i < this._callbacks[key].length; i++) {
|
|
38
|
+
// trigger the callbacks with all provided params
|
|
39
|
+
this._callbacks[key][i](...params);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
export default Events;
|
|
47
|
+
//# sourceMappingURL=events.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/events.ts"],"names":["Events","constructor","_callbacks","on","key","callback","undefined","push","off","i","length","splice","emit","params"],"mappings":";;AAAA,MAAMA,MAAN,CAAa;AAEXC,EAAAA,WAAW,GAAI;AAAA;;AACb,SAAKC,UAAL,GAAkB,EAAlB;AACD;;AAEDC,EAAAA,EAAE,CAAIC,GAAJ,EAAiBC,QAAjB,EAA6C;AAC7C;AACA,QAAI,KAAKH,UAAL,CAAgBE,GAAhB,MAAyBE,SAA7B,EAAwC;AAAE,WAAKJ,UAAL,CAAgBE,GAAhB,IAAuB,EAAvB;AAA2B,KAFxB,CAG7C;;;AACA,SAAKF,UAAL,CAAgBE,GAAhB,EAAqBG,IAArB,CAA0BF,QAA1B;AACD;;AAEDG,EAAAA,GAAG,CAAIJ,GAAJ,EAAiBC,QAAjB,EAA6C;AAC9C;AACA,QAAI,KAAKH,UAAL,CAAgBE,GAAhB,MAAyBE,SAA7B,EAAwC;AACtC;AACA,WAAK,IAAIG,CAAC,GAAC,CAAX,EAAcA,CAAC,GAAC,KAAKP,UAAL,CAAgBE,GAAhB,EAAqBM,MAArC,EAA6CD,CAAC,EAA9C,EAAkD;AAChD;AACA,YAAI,KAAKP,UAAL,CAAgBE,GAAhB,EAAqBK,CAArB,MAA4BJ,QAAhC,EAA0C;AACxC,eAAKH,UAAL,CAAgBE,GAAhB,EAAqBO,MAArB,CAA4BF,CAA5B,EAA+B,CAA/B;AACD;AACF;AACF;AACF;;AAEDG,EAAAA,IAAI,CAACR,GAAD,EAAc,GAAGS,MAAjB,EAAqC;AACvC;AACA,QAAI,KAAKX,UAAL,CAAgBE,GAAhB,MAAyBE,SAA7B,EAAwC;AACtC;AACA,WAAK,IAAIG,CAAC,GAAC,CAAX,EAAcA,CAAC,GAAC,KAAKP,UAAL,CAAgBE,GAAhB,EAAqBM,MAArC,EAA6CD,CAAC,EAA9C,EAAkD;AAChD;AACA,aAAKP,UAAL,CAAgBE,GAAhB,EAAqBK,CAArB,EAAwB,GAAGI,MAA3B;AACD;AACF;AACF;;AAnCU;;AAsCb,eAAeb,MAAf","sourcesContent":["class Events {\n _callbacks: Record<string, any>\n constructor () {\n this._callbacks = {}\n }\n\n on<T>(key: string, callback: (arg: T) => void) {\n // create an empty array for the event key\n if (this._callbacks[key] === undefined) { this._callbacks[key] = [] }\n // save the callback in the array for the event key\n this._callbacks[key].push(callback)\n }\n\n off<T>(key: string, callback: (arg: T) => void) {\n // if the key exists\n if (this._callbacks[key] !== undefined) {\n // iterate through the callbacks for the event key\n for (let i=0; i<this._callbacks[key].length; i++) {\n // if the callback matches, remove it\n if (this._callbacks[key][i] === callback) {\n this._callbacks[key].splice(i, 1)\n }\n }\n }\n }\n\n emit(key: string, ...params: Array<any>) {\n // if the key exists\n if (this._callbacks[key] !== undefined) {\n // iterate through the callbacks for the event key\n for (let i=0; i<this._callbacks[key].length; i++) {\n // trigger the callbacks with all provided params\n this._callbacks[key][i](...params)\n }\n }\n }\n}\n\nexport default Events\n"],"file":"events.js"}
|
package/lib/esm/index.js
ADDED
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
2
|
+
|
|
3
|
+
import { Message } from "@one-commerce/sdk-shared";
|
|
4
|
+
import Channel from "iframe-channel";
|
|
5
|
+
import { AddToCartContext as BackofficeAddToCartContext, DocumentsContext as BackofficeDocumentsContext, EditProductLinesOnCartContext as BackofficeEditProductLinesOnCartContext } from "./backoffice/context";
|
|
6
|
+
import { BackofficeAuthorization, BackofficeCatalog, BackofficeCustomer, BackofficeLayout, BackofficeOrderpath, BackofficePlugin, BackofficeTenant, BackofficeUser } from "./backoffice/services";
|
|
7
|
+
import Events from "./events";
|
|
8
|
+
import { AddToCartContext as ShopAddToCartContext, EditProductLinesOnCartContext as ShopEditProductLinesOnCartContext } from "./shop/context";
|
|
9
|
+
import { ShopAccount, ShopAuthorization, ShopCart, ShopCatalog, ShopConfig, ShopPlugin, ShopTenant, ShopUtils, ShopWishlist } from "./shop/services";
|
|
10
|
+
import { BaseCallClass, generateCallId } from "./utils";
|
|
11
|
+
var SdkInternalEvents;
|
|
12
|
+
|
|
13
|
+
(function (SdkInternalEvents) {
|
|
14
|
+
SdkInternalEvents["INIT"] = "INIT";
|
|
15
|
+
SdkInternalEvents["UPDATE"] = "UPDATE";
|
|
16
|
+
})(SdkInternalEvents || (SdkInternalEvents = {}));
|
|
17
|
+
|
|
18
|
+
export let SdkEvents;
|
|
19
|
+
|
|
20
|
+
(function (SdkEvents) {
|
|
21
|
+
SdkEvents["INIT"] = "INIT";
|
|
22
|
+
SdkEvents["UPDATE"] = "UPDATE";
|
|
23
|
+
})(SdkEvents || (SdkEvents = {}));
|
|
24
|
+
|
|
25
|
+
class Sdk extends Events {
|
|
26
|
+
static log(...data) {
|
|
27
|
+
Sdk.debug && console.log('[SDK Core] ', ...data);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
static warn(...data) {
|
|
31
|
+
console.warn('[SDK Core] ', ...data);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
initializeServiceGetters() {
|
|
35
|
+
if (this.instances) {
|
|
36
|
+
Object.keys(this.instances).forEach(serviceName => {
|
|
37
|
+
Object.defineProperty(this, serviceName, {
|
|
38
|
+
get: () => {
|
|
39
|
+
return this.isInitialized ? this.instances[serviceName] : null;
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
initializeContextClass() {
|
|
47
|
+
if (this.contextClass) {
|
|
48
|
+
return new this.contextClass(this.callFunction.bind(this));
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
return {};
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
constructor(options) {
|
|
55
|
+
super();
|
|
56
|
+
|
|
57
|
+
_defineProperty(this, "channel", void 0);
|
|
58
|
+
|
|
59
|
+
_defineProperty(this, "autoheight", true);
|
|
60
|
+
|
|
61
|
+
_defineProperty(this, "heightMutationObserver", null);
|
|
62
|
+
|
|
63
|
+
_defineProperty(this, "origin", void 0);
|
|
64
|
+
|
|
65
|
+
_defineProperty(this, "isInitialized", false);
|
|
66
|
+
|
|
67
|
+
_defineProperty(this, "instances", void 0);
|
|
68
|
+
|
|
69
|
+
_defineProperty(this, "contextClass", void 0);
|
|
70
|
+
|
|
71
|
+
this.initializeServiceGetters();
|
|
72
|
+
this.origin = options.origin;
|
|
73
|
+
this.channel = new Channel({
|
|
74
|
+
targetOrigin: this.origin,
|
|
75
|
+
target: window.parent
|
|
76
|
+
});
|
|
77
|
+
this.channel.subscribe(Message.INIT, payload => {
|
|
78
|
+
Sdk.log('Handling INIT message');
|
|
79
|
+
Object.entries(this.instances).forEach(([key, value]) => {
|
|
80
|
+
if (value instanceof BaseCallClass) {
|
|
81
|
+
value.update(payload);
|
|
82
|
+
} else {
|
|
83
|
+
const attributesForKey = payload[key];
|
|
84
|
+
|
|
85
|
+
if (typeof attributesForKey !== 'undefined') {
|
|
86
|
+
BaseCallClass.update(value, payload[key]);
|
|
87
|
+
} else {
|
|
88
|
+
Sdk.warn(`Missing attributes for ${key} in `, payload);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
Sdk.log('Emitting INIT with payload ', this.instances);
|
|
93
|
+
this.isInitialized = true;
|
|
94
|
+
this.emit(SdkInternalEvents.INIT, this.instances);
|
|
95
|
+
});
|
|
96
|
+
this.channel.subscribe(Message.UPDATE, payload => {
|
|
97
|
+
Sdk.log('Emitting UPDATE with payload ', payload);
|
|
98
|
+
this.emit(SdkInternalEvents.UPDATE, payload);
|
|
99
|
+
});
|
|
100
|
+
this.channel.subscribe(Message.FRAME_HEIGHT_REQUEST, payload => {
|
|
101
|
+
if (this.autoheight) {
|
|
102
|
+
Sdk.log('Request for iframe height');
|
|
103
|
+
this.sendFrameHeight();
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
this.channel.connect().then(() => {
|
|
107
|
+
Sdk.log('Connected with ONe SDK');
|
|
108
|
+
|
|
109
|
+
if (this.autoheight) {
|
|
110
|
+
this.initializeHeightObserver();
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
this.setupOptions(options);
|
|
114
|
+
Sdk.log('Initialized.');
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
sendFrameHeight() {
|
|
118
|
+
this.channel.postMessage(Message.FRAME_HEIGHT_CHANGE, document.body.scrollHeight);
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
initializeHeightObserver() {
|
|
122
|
+
if ("MutationObserver" in window) {
|
|
123
|
+
const onMutationObserved = () => {
|
|
124
|
+
this.sendFrameHeight();
|
|
125
|
+
};
|
|
126
|
+
|
|
127
|
+
const target = document.querySelector('body'),
|
|
128
|
+
config = {
|
|
129
|
+
attributes: true,
|
|
130
|
+
attributeOldValue: false,
|
|
131
|
+
characterData: true,
|
|
132
|
+
characterDataOldValue: false,
|
|
133
|
+
childList: true,
|
|
134
|
+
subtree: true
|
|
135
|
+
};
|
|
136
|
+
this.heightMutationObserver = new MutationObserver(onMutationObserved);
|
|
137
|
+
Sdk.log('Create body MutationObserver');
|
|
138
|
+
this.heightMutationObserver.observe(target, config);
|
|
139
|
+
} else {
|
|
140
|
+
Sdk.warn('MutationObserver not available. Auto-height functionality disabled.');
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
setupOptions(options) {
|
|
145
|
+
if (options) {
|
|
146
|
+
if (typeof options.debug !== 'undefined') {
|
|
147
|
+
Sdk.debug = options.debug;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
if (typeof options.autoheight !== 'undefined') {
|
|
151
|
+
this.autoheight = options.autoheight;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
this.contextClass = options.context;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
callFunction(service, fun, ...payload) {
|
|
159
|
+
const callId = generateCallId();
|
|
160
|
+
|
|
161
|
+
if (this.isInitialized) {
|
|
162
|
+
Sdk.log(`Call ID ${callId} for ${service}:${fun}`, payload);
|
|
163
|
+
this.channel.postMessage(Message.METHOD_CALL, {
|
|
164
|
+
callId,
|
|
165
|
+
service,
|
|
166
|
+
method: fun,
|
|
167
|
+
payload: payload
|
|
168
|
+
});
|
|
169
|
+
return new Promise((resolve, reject) => {
|
|
170
|
+
const onChannelMessage = response => {
|
|
171
|
+
if (response.callId === callId) {
|
|
172
|
+
this.channel.unsubscribe(Message.METHOD_RESULT, onChannelMessage);
|
|
173
|
+
|
|
174
|
+
if (response !== null && response !== void 0 && response.isException) {
|
|
175
|
+
return reject(response.result);
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
return resolve(response.result);
|
|
179
|
+
}
|
|
180
|
+
};
|
|
181
|
+
|
|
182
|
+
this.channel.subscribe(Message.METHOD_RESULT, onChannelMessage);
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
Sdk.log('SDK is not initialized!');
|
|
187
|
+
return Promise.resolve(null);
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
navigate(event) {
|
|
191
|
+
this.channel.postMessage(Message.NAVIGATION_PUSH, event);
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
_defineProperty(Sdk, "debug", false);
|
|
197
|
+
|
|
198
|
+
export class BackofficeSdk extends Sdk {
|
|
199
|
+
constructor(...args) {
|
|
200
|
+
super(...args);
|
|
201
|
+
|
|
202
|
+
_defineProperty(this, "instances", {
|
|
203
|
+
route: {
|
|
204
|
+
hash: '',
|
|
205
|
+
query: {}
|
|
206
|
+
},
|
|
207
|
+
catalog: new BackofficeCatalog(this.callFunction.bind(this)),
|
|
208
|
+
user: new BackofficeUser(this.callFunction.bind(this)),
|
|
209
|
+
tenant: new BackofficeTenant(this.callFunction.bind(this)),
|
|
210
|
+
layout: new BackofficeLayout(this.callFunction.bind(this)),
|
|
211
|
+
authorization: new BackofficeAuthorization(this.callFunction.bind(this)),
|
|
212
|
+
customer: new BackofficeCustomer(this.callFunction.bind(this)),
|
|
213
|
+
plugin: new BackofficePlugin(this.callFunction.bind(this)),
|
|
214
|
+
orderpath: new BackofficeOrderpath(this.callFunction.bind(this)),
|
|
215
|
+
context: this.initializeContextClass()
|
|
216
|
+
});
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
}
|
|
220
|
+
export class ShopSdk extends Sdk {
|
|
221
|
+
constructor(...args) {
|
|
222
|
+
super(...args);
|
|
223
|
+
|
|
224
|
+
_defineProperty(this, "instances", {
|
|
225
|
+
route: {
|
|
226
|
+
hash: '',
|
|
227
|
+
query: {}
|
|
228
|
+
},
|
|
229
|
+
authorization: new ShopAuthorization(this.callFunction.bind(this)),
|
|
230
|
+
cart: new ShopCart(this.callFunction.bind(this)),
|
|
231
|
+
catalog: new ShopCatalog(this.callFunction.bind(this)),
|
|
232
|
+
account: new ShopAccount(this.callFunction.bind(this)),
|
|
233
|
+
utils: new ShopUtils(this.callFunction.bind(this)),
|
|
234
|
+
config: new ShopConfig(this.callFunction.bind(this)),
|
|
235
|
+
tenant: new ShopTenant(this.callFunction.bind(this)),
|
|
236
|
+
wishlist: new ShopWishlist(this.callFunction.bind(this)),
|
|
237
|
+
context: this.initializeContextClass(),
|
|
238
|
+
plugin: new ShopPlugin(this.callFunction.bind(this))
|
|
239
|
+
});
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
}
|
|
243
|
+
export { BackofficeDocumentsContext, BackofficeAddToCartContext, BackofficeEditProductLinesOnCartContext, ShopAddToCartContext, ShopEditProductLinesOnCartContext };
|
|
244
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/index.ts"],"names":["Message","Channel","AddToCartContext","BackofficeAddToCartContext","DocumentsContext","BackofficeDocumentsContext","EditProductLinesOnCartContext","BackofficeEditProductLinesOnCartContext","BackofficeAuthorization","BackofficeCatalog","BackofficeCustomer","BackofficeLayout","BackofficeOrderpath","BackofficePlugin","BackofficeTenant","BackofficeUser","Events","ShopAddToCartContext","ShopEditProductLinesOnCartContext","ShopAccount","ShopAuthorization","ShopCart","ShopCatalog","ShopConfig","ShopPlugin","ShopTenant","ShopUtils","ShopWishlist","BaseCallClass","generateCallId","SdkInternalEvents","SdkEvents","Sdk","log","data","debug","console","warn","initializeServiceGetters","instances","Object","keys","forEach","serviceName","defineProperty","get","isInitialized","initializeContextClass","contextClass","callFunction","bind","constructor","options","origin","channel","targetOrigin","target","window","parent","subscribe","INIT","payload","entries","key","value","update","attributesForKey","emit","UPDATE","FRAME_HEIGHT_REQUEST","autoheight","sendFrameHeight","connect","then","initializeHeightObserver","setupOptions","postMessage","FRAME_HEIGHT_CHANGE","document","body","scrollHeight","onMutationObserved","querySelector","config","attributes","attributeOldValue","characterData","characterDataOldValue","childList","subtree","heightMutationObserver","MutationObserver","observe","context","service","fun","callId","METHOD_CALL","method","Promise","resolve","reject","onChannelMessage","response","unsubscribe","METHOD_RESULT","isException","result","navigate","event","NAVIGATION_PUSH","BackofficeSdk","route","hash","query","catalog","user","tenant","layout","authorization","customer","plugin","orderpath","ShopSdk","cart","account","utils","wishlist"],"mappings":"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","sourcesContent":["import {\n Backoffice,\n Message,\n Route,\n Shop\n} from \"@one-commerce/sdk-shared\";\nimport Channel from \"iframe-channel\"\n\nimport {\n AddToCartContext as BackofficeAddToCartContext,\n BackofficeAvailableContext,\n DocumentsContext as BackofficeDocumentsContext,\n EditProductLinesOnCartContext as BackofficeEditProductLinesOnCartContext,\n} from \"./backoffice/context\";\nimport {\n BackofficeAuthorization,\n BackofficeCatalog,\n BackofficeCustomer,\n BackofficeLayout,\n BackofficeOrderpath,\n BackofficePlugin,\n BackofficeTenant,\n BackofficeUser,\n} from \"./backoffice/services\";\nimport Events from \"./events\";\nimport {\n AddToCartContext as ShopAddToCartContext,\n ShopAvailableContext,\n EditProductLinesOnCartContext as ShopEditProductLinesOnCartContext\n} from \"./shop/context\";\nimport {\n ShopAccount,\n ShopAuthorization,\n ShopCart,\n ShopCatalog,\n ShopConfig,\n ShopPlugin,\n ShopTenant,\n ShopUtils,\n ShopWishlist,\n} from \"./shop/services\";\nimport { BaseCallClass, generateCallId } from \"./utils\";\n\n\nenum SdkInternalEvents {\n INIT='INIT',\n UPDATE='UPDATE'\n}\nexport enum SdkEvents {\n INIT='INIT',\n UPDATE='UPDATE',\n}\nexport interface SdkOptions<S> {\n debug?: boolean\n autoheight?: boolean\n origin: string,\n context?: Class<S>;\n}\n\ninterface NamedNavigationPayload {\n name: string\n params: any\n}\n\ninterface PathNavigationPayload {\n path: string\n params: any\n}\n\nexport type Class<T = any> = new (...args: any[]) => T;\n\nabstract class Sdk<T, S = BackofficeAvailableContext | ShopAvailableContext> extends Events {\n private channel!: Channel;\n private static debug = false\n private autoheight = true\n private heightMutationObserver = null\n origin: string;\n isInitialized = false\n instances!: T;\n contextClass?: Class<S>;\n\n private static log(...data: any[]) {\n Sdk.debug && console.log('[SDK Core] ', ...data)\n }\n\n private static warn(...data: any[]) {\n console.warn('[SDK Core] ', ...data)\n }\n\n private initializeServiceGetters(): void {\n if (this.instances) {\n Object.keys(this.instances).forEach((serviceName: string) => {\n Object.defineProperty(this, serviceName, {\n get: () => {\n return this.isInitialized ? this.instances![serviceName as keyof T] : null\n }\n })\n })\n }\n }\n\n public initializeContextClass(): S {\n if (this.contextClass) {\n return new this.contextClass(this.callFunction.bind(this))\n }\n return {} as S\n }\n\n constructor(options: SdkOptions<S>) {\n super()\n this.initializeServiceGetters()\n this.origin = options.origin\n this.channel = new Channel({\n targetOrigin: this.origin,\n target: window.parent,\n })\n this.channel.subscribe(Message.INIT, (payload: any) => {\n Sdk.log('Handling INIT message')\n Object.entries(this.instances!).forEach(([key, value]: [key: string, value: BaseCallClass | Record<string, any>]) => {\n if (value instanceof BaseCallClass) {\n value.update(payload)\n } else {\n const attributesForKey = payload[key]\n if (typeof attributesForKey !== 'undefined') {\n BaseCallClass.update(value as Record<string, any>, payload[key])\n } else {\n Sdk.warn(`Missing attributes for ${key} in `, payload)\n }\n }\n })\n Sdk.log('Emitting INIT with payload ', this.instances)\n this.isInitialized = true\n this.emit(SdkInternalEvents.INIT, this.instances)\n })\n this.channel.subscribe(Message.UPDATE, (payload: any) => {\n Sdk.log('Emitting UPDATE with payload ', payload)\n this.emit(SdkInternalEvents.UPDATE, payload)\n })\n this.channel.subscribe(Message.FRAME_HEIGHT_REQUEST, (payload: any) => {\n if (this.autoheight) {\n Sdk.log('Request for iframe height')\n this.sendFrameHeight()\n }\n })\n this.channel.connect().then(() => {\n Sdk.log('Connected with ONe SDK')\n if(this.autoheight) {\n this.initializeHeightObserver()\n }\n })\n this.setupOptions(options)\n Sdk.log('Initialized.')\n }\n\n private sendFrameHeight() {\n this.channel.postMessage(\n Message.FRAME_HEIGHT_CHANGE,\n document.body.scrollHeight\n )\n }\n\n private initializeHeightObserver() {\n if (\"MutationObserver\" in window) {\n const onMutationObserved = () => {\n this.sendFrameHeight()\n }\n const target = document.querySelector('body'),\n config = {\n attributes: true,\n attributeOldValue: false,\n characterData: true,\n characterDataOldValue: false,\n childList: true,\n subtree: true\n }\n\n this.heightMutationObserver = new MutationObserver(onMutationObserved)\n\n Sdk.log('Create body MutationObserver')\n this.heightMutationObserver.observe(target, config)\n } else {\n Sdk.warn('MutationObserver not available. Auto-height functionality disabled.')\n }\n }\n\n private setupOptions(options?: SdkOptions<S>) {\n if (options) {\n if (typeof options.debug !== 'undefined') {\n Sdk.debug = options.debug\n }\n if (typeof options.autoheight !== 'undefined') {\n this.autoheight = options.autoheight\n }\n this.contextClass = options.context\n }\n }\n protected callFunction(service: string, fun: string, ...payload: any) {\n const callId: string = generateCallId()\n if (this.isInitialized) {\n Sdk.log(`Call ID ${callId} for ${service}:${fun}`, payload)\n this.channel.postMessage(Message.METHOD_CALL, {\n callId,\n service,\n method: fun,\n payload: payload,\n })\n return new Promise((resolve, reject) => {\n const onChannelMessage = (response: any) => {\n if (response.callId === callId) {\n this.channel.unsubscribe(Message.METHOD_RESULT, onChannelMessage)\n if (response?.isException) {\n return reject(response.result);\n }\n\n return resolve(response.result);\n }\n }\n this.channel.subscribe(Message.METHOD_RESULT, onChannelMessage)\n })\n }\n Sdk.log('SDK is not initialized!')\n return Promise.resolve(null)\n }\n\n public navigate(event: NamedNavigationPayload | PathNavigationPayload) {\n this.channel.postMessage(Message.NAVIGATION_PUSH, event)\n }\n\n}\n\nexport interface BackofficeInstances extends Backoffice.Api {\n route: Route,\n catalog: BackofficeCatalog,\n user: BackofficeUser,\n tenant: BackofficeTenant,\n layout: BackofficeLayout,\n authorization: BackofficeAuthorization,\n customer: BackofficeCustomer,\n plugin: BackofficePlugin,\n context: BackofficeAvailableContext\n orderpath: BackofficeOrderpath,\n}\n\nexport interface ShopInstances extends Shop.Api {\n authorization: ShopAuthorization,\n route: Route,\n cart: ShopCart,\n catalog: ShopCatalog,\n account: ShopAccount,\n utils: ShopUtils\n config: ShopConfig,\n wishlist: ShopWishlist,\n context: ShopAvailableContext\n tenant: ShopTenant,\n plugin: ShopPlugin,\n}\n\nexport class BackofficeSdk extends Sdk<BackofficeInstances, BackofficeAvailableContext> {\n instances = {\n route: {\n hash: '',\n query: {},\n },\n catalog: new BackofficeCatalog(this.callFunction.bind(this)),\n user: new BackofficeUser(this.callFunction.bind(this)),\n tenant: new BackofficeTenant(this.callFunction.bind(this)),\n layout: new BackofficeLayout(this.callFunction.bind(this)),\n authorization: new BackofficeAuthorization(this.callFunction.bind(this)),\n customer: new BackofficeCustomer(this.callFunction.bind(this)),\n plugin: new BackofficePlugin(this.callFunction.bind(this)),\n orderpath: new BackofficeOrderpath(this.callFunction.bind(this)),\n context: this.initializeContextClass()\n }\n}\n\nexport class ShopSdk extends Sdk<ShopInstances, ShopAvailableContext> {\n instances = {\n route: {\n hash: '',\n query: {},\n },\n authorization: new ShopAuthorization(this.callFunction.bind(this)),\n cart: new ShopCart(this.callFunction.bind(this)),\n catalog: new ShopCatalog(this.callFunction.bind(this)),\n account: new ShopAccount(this.callFunction.bind(this)),\n utils: new ShopUtils(this.callFunction.bind(this)),\n config: new ShopConfig(this.callFunction.bind(this)),\n tenant: new ShopTenant(this.callFunction.bind(this)),\n wishlist: new ShopWishlist(this.callFunction.bind(this)),\n context: this.initializeContextClass(),\n plugin: new ShopPlugin(this.callFunction.bind(this)),\n }\n}\n\nexport {\n BackofficeDocumentsContext,\n BackofficeAddToCartContext,\n BackofficeEditProductLinesOnCartContext,\n ShopAddToCartContext,\n ShopEditProductLinesOnCartContext,\n}\n"],"file":"index.js"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
2
|
+
|
|
3
|
+
import { ContextCallClass } from "../utils";
|
|
4
|
+
export class AddToCartContext extends ContextCallClass {
|
|
5
|
+
constructor(...args) {
|
|
6
|
+
super(...args);
|
|
7
|
+
|
|
8
|
+
_defineProperty(this, "productId", void 0);
|
|
9
|
+
|
|
10
|
+
_defineProperty(this, "cartId", void 0);
|
|
11
|
+
|
|
12
|
+
_defineProperty(this, "warehouses", void 0);
|
|
13
|
+
|
|
14
|
+
_defineProperty(this, "warehouseId", void 0);
|
|
15
|
+
|
|
16
|
+
_defineProperty(this, "meta", void 0);
|
|
17
|
+
|
|
18
|
+
_defineProperty(this, "pluginProductLines", void 0);
|
|
19
|
+
|
|
20
|
+
_defineProperty(this, "productLines", void 0);
|
|
21
|
+
|
|
22
|
+
_defineProperty(this, "productAmount", void 0);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
closePlugin() {
|
|
26
|
+
return this.call('closePlugin');
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
closePluginAndAddToCart() {
|
|
30
|
+
return this.call('closePluginAndAddToCart');
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
closePluginAndRefreshCart() {
|
|
34
|
+
return this.call('closePluginAndRefreshCart');
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
}
|
|
38
|
+
export class EditProductLinesOnCartContext extends ContextCallClass {
|
|
39
|
+
constructor(...args) {
|
|
40
|
+
super(...args);
|
|
41
|
+
|
|
42
|
+
_defineProperty(this, "productId", void 0);
|
|
43
|
+
|
|
44
|
+
_defineProperty(this, "cartId", void 0);
|
|
45
|
+
|
|
46
|
+
_defineProperty(this, "warehouses", void 0);
|
|
47
|
+
|
|
48
|
+
_defineProperty(this, "warehouseId", void 0);
|
|
49
|
+
|
|
50
|
+
_defineProperty(this, "meta", void 0);
|
|
51
|
+
|
|
52
|
+
_defineProperty(this, "productLineId", void 0);
|
|
53
|
+
|
|
54
|
+
_defineProperty(this, "productLines", void 0);
|
|
55
|
+
|
|
56
|
+
_defineProperty(this, "pluginProductLines", void 0);
|
|
57
|
+
|
|
58
|
+
_defineProperty(this, "productAmount", void 0);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
closePlugin() {
|
|
62
|
+
return this.call('closePlugin');
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
closePluginAndRefreshCart() {
|
|
66
|
+
return this.call('closePluginAndRefreshCart');
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/shop/context.ts"],"names":["ContextCallClass","AddToCartContext","closePlugin","call","closePluginAndAddToCart","closePluginAndRefreshCart","EditProductLinesOnCartContext"],"mappings":";;AAEA,SAASA,gBAAT,QAAiC,UAAjC;AAEA,OAAO,MAAMC,gBAAN,SAA+BD,gBAA/B,CAAkF;AAAA;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;AAAA;;AASvFE,EAAAA,WAAW,GAAkB;AAC3B,WAAO,KAAKC,IAAL,CAAU,aAAV,CAAP;AACD;;AACDC,EAAAA,uBAAuB,GAAkB;AACvC,WAAO,KAAKD,IAAL,CAAU,yBAAV,CAAP;AACD;;AACDE,EAAAA,yBAAyB,GAAkB;AACzC,WAAO,KAAKF,IAAL,CAAU,2BAAV,CAAP;AACD;;AAjBsF;AAoBzF,OAAO,MAAMG,6BAAN,SAA4CN,gBAA5C,CAA4G;AAAA;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;AAAA;;AAUjHE,EAAAA,WAAW,GAAkB;AAC3B,WAAO,KAAKC,IAAL,CAAU,aAAV,CAAP;AACD;;AACDE,EAAAA,yBAAyB,GAAkB;AACzC,WAAO,KAAKF,IAAL,CAAU,2BAAV,CAAP;AACD;;AAfgH","sourcesContent":["import {Shop} from \"@one-commerce/sdk-shared\";\n\nimport { ContextCallClass } from \"../utils\";\n\nexport class AddToCartContext extends ContextCallClass implements Shop.Context.AddToCart {\n productId: string;\n cartId: string;\n warehouses: Array<any>;\n warehouseId: string;\n meta: unknown;\n pluginProductLines: Array<any>;\n productLines: Array<any>;\n productAmount: number;\n closePlugin(): Promise<void> {\n return this.call('closePlugin')\n }\n closePluginAndAddToCart(): Promise<void> {\n return this.call('closePluginAndAddToCart')\n }\n closePluginAndRefreshCart(): Promise<void> {\n return this.call('closePluginAndRefreshCart')\n }\n}\n\nexport class EditProductLinesOnCartContext extends ContextCallClass implements Shop.Context.EditProductLinesOnCart {\n productId: string;\n cartId: string | null;\n warehouses: Array<any>;\n warehouseId: string;\n meta: unknown;\n productLineId: string;\n productLines: Array<any>;\n pluginProductLines: Array<any>;\n productAmount: number;\n closePlugin(): Promise<void> {\n return this.call('closePlugin')\n }\n closePluginAndRefreshCart(): Promise<void> {\n return this.call('closePluginAndRefreshCart')\n }\n}\n\nexport type ShopAvailableContext = AddToCartContext | EditProductLinesOnCartContext\n"],"file":"context.js"}
|