@skyservice-developers/vue-dev-kit 2.1.1 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -80,6 +80,9 @@ const api = SkyserviceAPI.create({
80
80
  companyId,
81
81
  appId,
82
82
  // developerId: 'optional',
83
+ // deploymentId + appName — тільки якщо користуєтесь setAppActive
84
+ deploymentId: '4c3c7d32-2408-503b-c439-bff7332a238e',
85
+ appName: 'glovo',
83
86
  })
84
87
 
85
88
  const tradepoints = await api.getTradepoints()
@@ -87,12 +90,14 @@ const categories = await api.getCategoryTree(tradepointId)
87
90
  const products = await api.getProducts({ tradepointId })
88
91
 
89
92
  // Активація/деактивація міні-додатку
90
- await api.setAppActive({ isActive: true, settings: { foo: 'bar' } })
91
- await api.setAppActive({ isActive: false })
93
+ await api.setAppActive({ isActive: true, title: 'Glovo', settings: { foo: 'bar' } })
94
+ await api.setAppActive({ isActive: false, title: 'Glovo' })
92
95
  ```
93
96
 
94
97
  > `SkyserviceAPI.create()` — factory; прямий виклик `new SkyserviceAPI(...)` недоступний.
95
- > `setAppActive` завжди ходить на `api.cabinet.developer.skyservice.online` (хардкод).
98
+ > `setAppActive` POST на `api.cabinet.developer.skyservice.online/index.php`. Якщо
99
+ > `deploymentId` + `appName` задані в конфізі — додатково шле `sendActiveApp`
100
+ > postMessage в parent (Dashboard) з відповіддю сервера та новим станом.
96
101
 
97
102
  ### Webview detection
98
103
 
@@ -0,0 +1 @@
1
+ "use strict";const S=require("ua-parser-js"),m="DASHBOARD",b=5e3;let A=0,p=null;function E(){return`sdk_${Date.now()}_${++A}`}function L(){return"APP_"+Math.random().toString(36).slice(2,10)}function C(t){p=t}function f(){return p||(p=L()),p}function a(t){window.parent.postMessage({...t,sender:f(),target:t.target||m},"*")}function g(t,e,r=b){return y()?new Promise(n=>{const o=E(),i=f(),s=setTimeout(()=>{window.removeEventListener("message",d),n(null)},r);function d(k){const c=k.data;(c==null?void 0:c.type)==="DATA_RESPONSE"&&(c==null?void 0:c.requestId)===o&&(!c.target||c.target===i)&&(clearTimeout(s),window.removeEventListener("message",d),n(c.data??null))}window.addEventListener("message",d),a({type:"DATA_REQUEST",requestId:o,source:t,key:e})}):Promise.resolve(null)}function P(t){a({type:"navigate",path:t})}function v(){a({type:"exit"})}const T=v;function w(t){return g("store",t)}function l(t){return g("localStorage",t)}function _(t){return g("window",t)}function D(){return w("company")}function W(){return w("user")}function R(){return l("token")}function U(){return l("lang")}function N(){return w("productCategories")}function $(t,e){a({type:"setLocalStorage",key:t,value:e})}function M(t){a({type:"setRocketMode",value:t})}function O(t,e){a({type:"trackVisit",name:t,path:e})}function x(t){a({type:"openExternalLink",url:t})}function q(){a({type:"openCrispChat"})}function B(t){a({type:"notification",text:t})}function j(t){a({type:"notification",text:t,variant:"error"})}function G(t){a({type:"notification",text:t,variant:"warn"})}function y(){try{return window.self!==window.top}catch{return!0}}const V=y;function F(t){function e(r){var n;((n=r.data)==null?void 0:n.sender)===m&&t(r.data)}return window.addEventListener("message",e),()=>window.removeEventListener("message",e)}function u(){if(typeof window>"u")return"browser";if(window.webkit!=null&&window.webkit.messageHandlers!==void 0)try{if(S(navigator.userAgent).browser.name==="WebKit")return"ios_webview"}catch(t){console.error(t)}return typeof Android<"u"?"android_webview":typeof window.cefQuery<"u"?"cef_webview":"browser"}function H(){return u()==="ios_webview"}function Q(){return u()==="android_webview"}function z(){return u()==="cef_webview"}function J(){return u()!=="browser"}const K="https://api.cabinet.developer.skyservice.online/index.php";class h{constructor(e){this.token=e.token,this.companyId=e.companyId,this.appId=e.appId,this.developerId=e.developerId,this.deploymentId=e.deploymentId,this.appName=e.appName;const r=e.domain.replace("dashboard","api");this.baseUrl=r.startsWith("http")?r:`https://${r}`}static create(e){return new h(e)}async get(e){const r=new URLSearchParams({token:this.token,companyId:this.companyId,...e}),n=await fetch(`${this.baseUrl}/?${r}`);if(!n.ok)throw new Error(`Skyservice API error: ${n.status}`);const o=await n.json();if(o.status!=="done")throw new Error(`Skyservice API returned status: ${o.status}`);return o.data}async post(e,r,n){const o=new URLSearchParams({token:this.token,...r}),i=await fetch(`${e}?${o}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(n)});if(!i.ok)throw new Error(`Skyservice API error: ${i.status}`);return i.json()}async getTradepoints(e){const r=await this.get({section:"tradepoints",action:"getTradepoints"});return e!=null&&e.includeDeleted?r.items:r.items.filter(n=>!n.deleted&&!n.frozen)}async getCategoryTree(e){const r=await this.get({section:"productCategory",action:"getCategories",...e?{tradepointId:String(e)}:{}});return I(r,e)}async getProducts(e){const r=await this.get({section:"products",action:"getProducts",pagelimit:"9999",ot:"desc",of:"nomenclatureId",...e!=null&&e.tradepointId?{tradepointId:String(e.tradepointId)}:{}});return Z(r.items,e==null?void 0:e.includeInactive)}async setAppActive({isActive:e,title:r,settings:n}){var d;const o=e?"activateApp":"deactivateApp",i={company_id:this.companyId,app_id:this.appId,...this.developerId!==void 0&&{developer_id:this.developerId},...e&&n!==void 0&&{settings:n}},s=await this.post(K,{section:"integrations",action:o},i);return this.deploymentId&&this.appName&&typeof window<"u"&&window.self!==window.top&&window.parent.postMessage({type:"sendActiveApp",id:((d=s==null?void 0:s.data)==null?void 0:d.appId)??this.appId,is_active:e,deploymentId:this.deploymentId,appName:this.appName,title:r},"*"),s}}function I(t,e){var n,o;const r=[];for(const i of t){if(e!=null&&!((n=i.tradepointShow)==null?void 0:n[String(e)]))continue;const s={id:i.id,pid:i.pid,name:i.name,active:i.active,background:i.background,show:i.show};i.img&&(s.img=i.img),(o=i.children)!=null&&o.length&&(s.children=I(i.children,e)),r.push(s)}return r}const Y=new Set(["product","techcard"]),X="/img/no.png";function Z(t,e){const r=[];for(const n of t)Y.has(n.type)&&(!e&&!n.active||r.push({id:n.id,name:n.nomenclatureName,price:n.price,categoryId:n.categoryId,categoryName:n.categoryTitle||"",active:n.active,type:n.type,unit:n.unit,logo:n.logo&&n.logo!==X?n.logo:""}));return r}exports.SkyserviceAPI=h;exports.exit=v;exports.getBack=T;exports.getCompany=D;exports.getLang=U;exports.getLocalStorageData=l;exports.getProductCategories=N;exports.getSenderId=f;exports.getStoreData=w;exports.getToken=R;exports.getUser=W;exports.getWindowData=_;exports.isAndroidWebview=Q;exports.isCefWebview=z;exports.isInIframe=V;exports.isInsideIframe=y;exports.isIosWebview=H;exports.isWebview=J;exports.navigate=P;exports.notify=B;exports.notifyError=j;exports.notifyWarn=G;exports.onMessage=F;exports.openCrispChat=q;exports.openExternalLink=x;exports.setLocalStorage=$;exports.setRocketMode=M;exports.setSenderId=C;exports.trackVisit=O;exports.webviewCheck=u;
@@ -1,5 +1,5 @@
1
1
  import b from "ua-parser-js";
2
- const g = "DASHBOARD", S = 5e3;
2
+ const l = "DASHBOARD", S = 5e3;
3
3
  let k = 0, u = null;
4
4
  function A() {
5
5
  return `sdk_${Date.now()}_${++k}`;
@@ -7,64 +7,64 @@ function A() {
7
7
  function E() {
8
8
  return "APP_" + Math.random().toString(36).slice(2, 10);
9
9
  }
10
- function R(t) {
10
+ function N(t) {
11
11
  u = t;
12
12
  }
13
- function l() {
13
+ function g() {
14
14
  return u || (u = E()), u;
15
15
  }
16
16
  function o(t) {
17
17
  window.parent.postMessage(
18
18
  {
19
19
  ...t,
20
- sender: l(),
21
- target: t.target || g
20
+ sender: g(),
21
+ target: t.target || l
22
22
  },
23
23
  "*"
24
24
  );
25
25
  }
26
- function p(t, e, r = S) {
26
+ function w(t, e, r = S) {
27
27
  return h() ? new Promise((n) => {
28
- const a = A(), i = l(), c = setTimeout(() => {
28
+ const i = A(), a = g(), s = setTimeout(() => {
29
29
  window.removeEventListener("message", d), n(null);
30
30
  }, r);
31
31
  function d(I) {
32
- const s = I.data;
33
- (s == null ? void 0 : s.type) === "DATA_RESPONSE" && (s == null ? void 0 : s.requestId) === a && (!s.target || s.target === i) && (clearTimeout(c), window.removeEventListener("message", d), n(s.data ?? null));
32
+ const c = I.data;
33
+ (c == null ? void 0 : c.type) === "DATA_RESPONSE" && (c == null ? void 0 : c.requestId) === i && (!c.target || c.target === a) && (clearTimeout(s), window.removeEventListener("message", d), n(c.data ?? null));
34
34
  }
35
- window.addEventListener("message", d), o({ type: "DATA_REQUEST", requestId: a, source: t, key: e });
35
+ window.addEventListener("message", d), o({ type: "DATA_REQUEST", requestId: i, source: t, key: e });
36
36
  }) : Promise.resolve(null);
37
37
  }
38
- function U(t) {
38
+ function R(t) {
39
39
  o({ type: "navigate", path: t });
40
40
  }
41
41
  function L() {
42
42
  o({ type: "exit" });
43
43
  }
44
- const $ = L;
45
- function w(t) {
46
- return p("store", t);
44
+ const U = L;
45
+ function f(t) {
46
+ return w("store", t);
47
47
  }
48
48
  function y(t) {
49
- return p("localStorage", t);
49
+ return w("localStorage", t);
50
50
  }
51
- function O(t) {
52
- return p("window", t);
51
+ function $(t) {
52
+ return w("window", t);
53
+ }
54
+ function O() {
55
+ return f("company");
53
56
  }
54
57
  function W() {
55
- return w("company");
58
+ return f("user");
56
59
  }
57
60
  function x() {
58
- return w("user");
59
- }
60
- function q() {
61
61
  return y("token");
62
62
  }
63
63
  function M() {
64
64
  return y("lang");
65
65
  }
66
- function N() {
67
- return w("productCategories");
66
+ function q() {
67
+ return f("productCategories");
68
68
  }
69
69
  function j(t, e) {
70
70
  o({ type: "setLocalStorage", key: t, value: e });
@@ -101,11 +101,11 @@ const J = h;
101
101
  function K(t) {
102
102
  function e(r) {
103
103
  var n;
104
- ((n = r.data) == null ? void 0 : n.sender) === g && t(r.data);
104
+ ((n = r.data) == null ? void 0 : n.sender) === l && t(r.data);
105
105
  }
106
106
  return window.addEventListener("message", e), () => window.removeEventListener("message", e);
107
107
  }
108
- function f() {
108
+ function p() {
109
109
  if (typeof window > "u") return "browser";
110
110
  if (window.webkit != null && window.webkit.messageHandlers !== void 0)
111
111
  try {
@@ -116,21 +116,21 @@ function f() {
116
116
  return typeof Android < "u" ? "android_webview" : typeof window.cefQuery < "u" ? "cef_webview" : "browser";
117
117
  }
118
118
  function Y() {
119
- return f() === "ios_webview";
119
+ return p() === "ios_webview";
120
120
  }
121
121
  function X() {
122
- return f() === "android_webview";
122
+ return p() === "android_webview";
123
123
  }
124
124
  function Z() {
125
- return f() === "cef_webview";
125
+ return p() === "cef_webview";
126
126
  }
127
127
  function ee() {
128
- return f() !== "browser";
128
+ return p() !== "browser";
129
129
  }
130
- const P = "https://api.cabinet.developer.skyservice.online/index.php";
130
+ const _ = "https://api.cabinet.developer.skyservice.online/index.php";
131
131
  class m {
132
132
  constructor(e) {
133
- this.token = e.token, this.companyId = e.companyId, this.appId = e.appId, this.developerId = e.developerId;
133
+ this.token = e.token, this.companyId = e.companyId, this.appId = e.appId, this.developerId = e.developerId, this.deploymentId = e.deploymentId, this.appName = e.appName;
134
134
  const r = e.domain.replace("dashboard", "api");
135
135
  this.baseUrl = r.startsWith("http") ? r : `https://${r}`;
136
136
  }
@@ -147,23 +147,23 @@ class m {
147
147
  }), n = await fetch(`${this.baseUrl}/?${r}`);
148
148
  if (!n.ok)
149
149
  throw new Error(`Skyservice API error: ${n.status}`);
150
- const a = await n.json();
151
- if (a.status !== "done")
152
- throw new Error(`Skyservice API returned status: ${a.status}`);
153
- return a.data;
150
+ const i = await n.json();
151
+ if (i.status !== "done")
152
+ throw new Error(`Skyservice API returned status: ${i.status}`);
153
+ return i.data;
154
154
  }
155
155
  async post(e, r, n) {
156
- const a = new URLSearchParams({
156
+ const i = new URLSearchParams({
157
157
  token: this.token,
158
158
  ...r
159
- }), i = await fetch(`${e}?${a}`, {
159
+ }), a = await fetch(`${e}?${i}`, {
160
160
  method: "POST",
161
161
  headers: { "Content-Type": "application/json" },
162
162
  body: JSON.stringify(n)
163
163
  });
164
- if (!i.ok)
165
- throw new Error(`Skyservice API error: ${i.status}`);
166
- return i.json();
164
+ if (!a.ok)
165
+ throw new Error(`Skyservice API error: ${a.status}`);
166
+ return a.json();
167
167
  }
168
168
  // --- Tradepoints ---
169
169
  /**
@@ -218,51 +218,67 @@ class m {
218
218
  /**
219
219
  * Activate or deactivate the mini-app for the current company.
220
220
  *
221
- * Sends POST to `api.cabinet.developer.skyservice.online`:
221
+ * Sends POST to `api.cabinet.developer.skyservice.online/index.php`:
222
222
  * - `isActive: true` → `section=integrations&action=activateApp`
223
223
  * - `isActive: false` → `section=integrations&action=deactivateApp`
224
224
  *
225
225
  * `settings` are sent only when activating.
226
+ *
227
+ * If `deploymentId` and `appName` were provided in config, also sends a
228
+ * `sendActiveApp` postMessage to Dashboard (parent window) with the new state.
226
229
  */
227
230
  async setAppActive({
228
231
  isActive: e,
229
- settings: r
232
+ title: r,
233
+ settings: n
230
234
  }) {
231
- const n = e ? "activateApp" : "deactivateApp", a = {
235
+ var d;
236
+ const i = e ? "activateApp" : "deactivateApp", a = {
232
237
  company_id: this.companyId,
233
238
  app_id: this.appId,
234
239
  ...this.developerId !== void 0 && { developer_id: this.developerId },
235
- ...e && r !== void 0 && { settings: r }
236
- };
237
- return this.post(P, {
238
- section: "integrations",
239
- action: n
240
- }, a);
240
+ ...e && n !== void 0 && { settings: n }
241
+ }, s = await this.post(
242
+ _,
243
+ { section: "integrations", action: i },
244
+ a
245
+ );
246
+ return this.deploymentId && this.appName && typeof window < "u" && window.self !== window.top && window.parent.postMessage(
247
+ {
248
+ type: "sendActiveApp",
249
+ id: ((d = s == null ? void 0 : s.data) == null ? void 0 : d.appId) ?? this.appId,
250
+ is_active: e,
251
+ deploymentId: this.deploymentId,
252
+ appName: this.appName,
253
+ title: r
254
+ },
255
+ "*"
256
+ ), s;
241
257
  }
242
258
  }
243
259
  function v(t, e) {
244
- var n, a;
260
+ var n, i;
245
261
  const r = [];
246
- for (const i of t) {
247
- if (e != null && !((n = i.tradepointShow) == null ? void 0 : n[String(e)]))
262
+ for (const a of t) {
263
+ if (e != null && !((n = a.tradepointShow) == null ? void 0 : n[String(e)]))
248
264
  continue;
249
- const c = {
250
- id: i.id,
251
- pid: i.pid,
252
- name: i.name,
253
- active: i.active,
254
- background: i.background,
255
- show: i.show
265
+ const s = {
266
+ id: a.id,
267
+ pid: a.pid,
268
+ name: a.name,
269
+ active: a.active,
270
+ background: a.background,
271
+ show: a.show
256
272
  };
257
- i.img && (c.img = i.img), (a = i.children) != null && a.length && (c.children = v(i.children, e)), r.push(c);
273
+ a.img && (s.img = a.img), (i = a.children) != null && i.length && (s.children = v(a.children, e)), r.push(s);
258
274
  }
259
275
  return r;
260
276
  }
261
- const T = /* @__PURE__ */ new Set(["product", "techcard"]), _ = "/img/no.png";
277
+ const P = /* @__PURE__ */ new Set(["product", "techcard"]), T = "/img/no.png";
262
278
  function C(t, e) {
263
279
  const r = [];
264
280
  for (const n of t)
265
- T.has(n.type) && (!e && !n.active || r.push({
281
+ P.has(n.type) && (!e && !n.active || r.push({
266
282
  id: n.id,
267
283
  name: n.nomenclatureName,
268
284
  price: n.price,
@@ -271,33 +287,33 @@ function C(t, e) {
271
287
  active: n.active,
272
288
  type: n.type,
273
289
  unit: n.unit,
274
- logo: n.logo && n.logo !== _ ? n.logo : ""
290
+ logo: n.logo && n.logo !== T ? n.logo : ""
275
291
  }));
276
292
  return r;
277
293
  }
278
294
  export {
279
- R as A,
295
+ N as A,
280
296
  G as B,
281
- f as C,
297
+ p as C,
282
298
  m as S,
283
- W as a,
299
+ O as a,
284
300
  M as b,
285
301
  y as c,
286
- N as d,
302
+ q as d,
287
303
  L as e,
288
- l as f,
289
- $ as g,
290
- w as h,
291
- q as i,
292
- x as j,
293
- O as k,
304
+ g as f,
305
+ U as g,
306
+ f as h,
307
+ x as i,
308
+ W as j,
309
+ $ as k,
294
310
  X as l,
295
311
  Z as m,
296
312
  J as n,
297
313
  h as o,
298
314
  Y as p,
299
315
  ee as q,
300
- U as r,
316
+ R as r,
301
317
  H as s,
302
318
  Q as t,
303
319
  V as u,
@@ -5,16 +5,16 @@ type __VLS_WithTemplateSlots<T, S> = T & (new () => {
5
5
  });
6
6
  declare const __VLS_component: import('vue').DefineComponent<{}, {
7
7
  $emit: (event: "close" | "update:modelValue" | "save", ...args: any[]) => void;
8
- modelValue: boolean;
9
8
  title: string;
9
+ modelValue: boolean;
10
10
  subtitle: string;
11
11
  zIndex: string | number;
12
12
  closeText: string;
13
13
  closeOnEsc: boolean;
14
14
  mode: string;
15
15
  $props: {
16
- readonly modelValue?: boolean | undefined;
17
16
  readonly title?: string | undefined;
17
+ readonly modelValue?: boolean | undefined;
18
18
  readonly subtitle?: string | undefined;
19
19
  readonly zIndex?: string | number | undefined;
20
20
  readonly closeText?: string | undefined;
@@ -5,16 +5,16 @@ type __VLS_WithTemplateSlots<T, S> = T & (new () => {
5
5
  });
6
6
  declare const __VLS_component: import('vue').DefineComponent<{}, {
7
7
  $emit: (event: "close" | "update:modelValue" | "save", ...args: any[]) => void;
8
- modelValue: boolean;
9
8
  title: string;
9
+ modelValue: boolean;
10
10
  subtitle: string;
11
11
  zIndex: string | number;
12
12
  closeText: string;
13
13
  closeOnEsc: boolean;
14
14
  hasButtons: boolean;
15
15
  $props: {
16
- readonly modelValue?: boolean | undefined;
17
16
  readonly title?: string | undefined;
17
+ readonly modelValue?: boolean | undefined;
18
18
  readonly subtitle?: string | undefined;
19
19
  readonly zIndex?: string | number | undefined;
20
20
  readonly closeText?: string | undefined;
@@ -5,16 +5,16 @@ type __VLS_WithTemplateSlots<T, S> = T & (new () => {
5
5
  });
6
6
  declare const __VLS_component: import('vue').DefineComponent<{}, {
7
7
  $emit: (event: "close" | "update:modelValue" | "save", ...args: any[]) => void;
8
- modelValue: boolean;
9
8
  title: string;
9
+ modelValue: boolean;
10
10
  subtitle: string;
11
11
  zIndex: string | number;
12
12
  closeText: string;
13
13
  closeOnEsc: boolean;
14
14
  hasButtons: boolean;
15
15
  $props: {
16
- readonly modelValue?: boolean | undefined;
17
16
  readonly title?: string | undefined;
17
+ readonly modelValue?: boolean | undefined;
18
18
  readonly subtitle?: string | undefined;
19
19
  readonly zIndex?: string | number | undefined;
20
20
  readonly closeText?: string | undefined;
@@ -5,8 +5,8 @@ type __VLS_WithTemplateSlots<T, S> = T & (new () => {
5
5
  });
6
6
  declare const __VLS_component: import('vue').DefineComponent<{}, {
7
7
  $emit: (event: "close" | "update:modelValue", ...args: any[]) => void;
8
- modelValue: boolean;
9
8
  title: string;
9
+ modelValue: boolean;
10
10
  subtitle: string;
11
11
  closeOnEsc: boolean;
12
12
  closeTitle: string;
@@ -14,8 +14,8 @@ declare const __VLS_component: import('vue').DefineComponent<{}, {
14
14
  width: string;
15
15
  height: string;
16
16
  $props: {
17
- readonly modelValue?: boolean | undefined;
18
17
  readonly title?: string | undefined;
18
+ readonly modelValue?: boolean | undefined;
19
19
  readonly subtitle?: string | undefined;
20
20
  readonly closeOnEsc?: boolean | undefined;
21
21
  readonly closeTitle?: string | undefined;
package/dist/sdk/api.d.ts CHANGED
@@ -6,6 +6,8 @@ export interface SkyserviceAPIConfig {
6
6
  companyId: string;
7
7
  appId: string;
8
8
  developerId?: string;
9
+ deploymentId?: string;
10
+ appName?: string;
9
11
  }
10
12
  /**
11
13
  * HTTP client for Skyservice API.
@@ -29,6 +31,8 @@ export declare class SkyserviceAPI {
29
31
  private companyId;
30
32
  private appId;
31
33
  private developerId;
34
+ private deploymentId;
35
+ private appName;
32
36
  private constructor();
33
37
  /** Factory — create a new SkyserviceAPI instance. */
34
38
  static create(config: SkyserviceAPIConfig): SkyserviceAPI;
@@ -65,14 +69,18 @@ export declare class SkyserviceAPI {
65
69
  /**
66
70
  * Activate or deactivate the mini-app for the current company.
67
71
  *
68
- * Sends POST to `api.cabinet.developer.skyservice.online`:
72
+ * Sends POST to `api.cabinet.developer.skyservice.online/index.php`:
69
73
  * - `isActive: true` → `section=integrations&action=activateApp`
70
74
  * - `isActive: false` → `section=integrations&action=deactivateApp`
71
75
  *
72
76
  * `settings` are sent only when activating.
77
+ *
78
+ * If `deploymentId` and `appName` were provided in config, also sends a
79
+ * `sendActiveApp` postMessage to Dashboard (parent window) with the new state.
73
80
  */
74
- setAppActive({ isActive, settings, }: {
81
+ setAppActive({ isActive, title, settings, }: {
75
82
  isActive: boolean;
83
+ title?: string;
76
84
  settings?: Record<string, unknown>;
77
85
  }): Promise<unknown>;
78
86
  }
package/dist/sdk.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./api-C1dQWVCV.cjs");exports.SkyserviceAPI=e.SkyserviceAPI;exports.exit=e.exit;exports.getBack=e.getBack;exports.getCompany=e.getCompany;exports.getLang=e.getLang;exports.getLocalStorageData=e.getLocalStorageData;exports.getProductCategories=e.getProductCategories;exports.getSenderId=e.getSenderId;exports.getStoreData=e.getStoreData;exports.getToken=e.getToken;exports.getUser=e.getUser;exports.getWindowData=e.getWindowData;exports.isAndroidWebview=e.isAndroidWebview;exports.isCefWebview=e.isCefWebview;exports.isInIframe=e.isInIframe;exports.isInsideIframe=e.isInsideIframe;exports.isIosWebview=e.isIosWebview;exports.isWebview=e.isWebview;exports.navigate=e.navigate;exports.notify=e.notify;exports.notifyError=e.notifyError;exports.notifyWarn=e.notifyWarn;exports.onMessage=e.onMessage;exports.openCrispChat=e.openCrispChat;exports.openExternalLink=e.openExternalLink;exports.setLocalStorage=e.setLocalStorage;exports.setRocketMode=e.setRocketMode;exports.setSenderId=e.setSenderId;exports.trackVisit=e.trackVisit;exports.webviewCheck=e.webviewCheck;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./api-CpNSgpsc.cjs");exports.SkyserviceAPI=e.SkyserviceAPI;exports.exit=e.exit;exports.getBack=e.getBack;exports.getCompany=e.getCompany;exports.getLang=e.getLang;exports.getLocalStorageData=e.getLocalStorageData;exports.getProductCategories=e.getProductCategories;exports.getSenderId=e.getSenderId;exports.getStoreData=e.getStoreData;exports.getToken=e.getToken;exports.getUser=e.getUser;exports.getWindowData=e.getWindowData;exports.isAndroidWebview=e.isAndroidWebview;exports.isCefWebview=e.isCefWebview;exports.isInIframe=e.isInIframe;exports.isInsideIframe=e.isInsideIframe;exports.isIosWebview=e.isIosWebview;exports.isWebview=e.isWebview;exports.navigate=e.navigate;exports.notify=e.notify;exports.notifyError=e.notifyError;exports.notifyWarn=e.notifyWarn;exports.onMessage=e.onMessage;exports.openCrispChat=e.openCrispChat;exports.openExternalLink=e.openExternalLink;exports.setLocalStorage=e.setLocalStorage;exports.setRocketMode=e.setRocketMode;exports.setSenderId=e.setSenderId;exports.trackVisit=e.trackVisit;exports.webviewCheck=e.webviewCheck;
package/dist/sdk.js CHANGED
@@ -1,4 +1,4 @@
1
- import { S as s, e as t, g as i, a as o, b as r, c as n, d as g, f as d, h as c, i as f, j as k, k as v, l as w, m as I, n as C, o as S, p as b, q as p, r as y, s as W, t as m, u as l, v as x, w as L, x as h, y as A, z as D, A as u, B, C as E } from "./api-DlXvS7Ec.js";
1
+ import { S as s, e as t, g as i, a as o, b as r, c as n, d as g, f as d, h as c, i as f, j as k, k as v, l as w, m as I, n as C, o as S, p as b, q as p, r as y, s as W, t as m, u as l, v as x, w as L, x as h, y as A, z as D, A as u, B, C as E } from "./api-Eeo-WwNi.js";
2
2
  export {
3
3
  s as SkyserviceAPI,
4
4
  t as exit,
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),o=require("./api-C1dQWVCV.cjs");require("ua-parser-js");const B=(t,v)=>{const a=t.__vccOpts||t;for(const[c,m]of v)a[c]=m;return a},M={class:"sky-header-container"},z={class:"topmenubox"},P={class:"header-left"},O=["title"],A={width:"15",height:"15",viewBox:"0 0 451.847 451.847",style:{transform:"rotate(90deg)"}},W={class:"notPadding"},R={class:"topmenu-title"},_={key:0,class:"title-dropdown"},U={class:"title-dropdown-header"},X=["onClick"],F={class:"pageName"},K={class:"pageVisit"},j={key:0,class:"topmenu-description"},q={class:"topmenubox-button"},H={__name:"Header",props:{title:{type:String,default:""},subtitle:{type:String,default:""},showBackButton:{type:Boolean,default:!0},backButtonTitle:{type:String,default:"Назад"},backEvent:{type:Function,default:null},dropdownItems:{type:Array,default:()=>[]},dropdownTitle:{type:String,default:"Останні відвідані розділи"},visitLabel:{type:String,default:"Останнє відвідування"},trackPageName:{type:String,default:""},trackPagePath:{type:String,default:""},appId:{type:String,default:""}},emits:["back","navigate"],setup(t,{emit:v}){const a=t;o.setSenderId(a.appId||o.getSenderId());const c=v,m=e.ref(null),i=e.ref(!1),k=e.ref([]),d=e.ref({});o.isInsideIframe()&&a.trackPageName&&o.trackVisit(a.trackPageName,a.trackPagePath||`/${a.trackPageName}`);const r=e.ref(null);o.isInsideIframe()&&o.getLocalStorageData("rocketMode").then(async n=>{r.value=n,await o.getLocalStorageData("fallbackRocketMode")===null&&o.setLocalStorage("fallbackRocketMode",n===!0||n==="true"?"true":"false"),o.setRocketMode(!0)}),e.onUnmounted(()=>{S()}),o.isInsideIframe()&&o.getWindowData("lang").then(n=>{n!=null&&(d.value=n)});function y(n){try{if(!n)return;const u=typeof n=="string"?JSON.parse(n):n;u!=null&&u.pages&&(k.value=Object.values(u.pages))}catch{}}y(localStorage.componentStats),o.isInsideIframe()&&o.getLocalStorageData("componentStats").then(n=>{n!=null&&(localStorage.setItem("componentStats",JSON.stringify(n)),y(n))});const p=e.computed(()=>[...a.dropdownItems.length?a.dropdownItems:k.value].sort((u,E)=>E.lastVisit-u.lastVisit)),g=()=>{p.value.length&&(i.value=!i.value)},h=()=>{i.value=!1},b=n=>{c("navigate",n.path),o.isInsideIframe()&&o.navigate(n.path),h()},w=n=>{if(!n)return"";const u=d.value[n]||n;return u.charAt(0).toUpperCase()+u.slice(1)},s=n=>{const E=Date.now()-n,N=Math.floor(E/1e3),C=Math.floor(N/60),$=Math.floor(C/60),D=Math.floor($/24);return D>0?`${D}д тому`:$>0?`${$}год тому`:C>0?`${C}хв тому`:`${N}с тому`},l=n=>{m.value&&!m.value.contains(n.target)&&h()};e.onMounted(()=>{document.addEventListener("click",l,!0)}),e.onUnmounted(()=>{document.removeEventListener("click",l,!0)});const f=e.computed(()=>a.backEvent||a.showBackButton&&o.isInsideIframe()),S=()=>{if(r.value!==null){const n=r.value===!0||r.value==="true";o.setRocketMode(n)}},V=()=>p.value.find(n=>n.name!==a.trackPageName&&n.path),L=async()=>{if(a.backEvent)return S(),a.backEvent();let n=V();if(!n&&o.isInsideIframe()){const u=await o.getLocalStorageData("componentStats");u&&(y(u),n=V())}S(),n?o.navigate(n.path):o.exit()};return(n,u)=>(e.openBlock(),e.createElementBlock("header",M,[e.createElementVNode("div",z,[e.createElementVNode("div",P,[f.value?(e.openBlock(),e.createElementBlock("button",{key:0,class:"btn-back",onClick:L,title:t.backButtonTitle},[(e.openBlock(),e.createElementBlock("svg",A,[...u[0]||(u[0]=[e.createElementVNode("path",{fill:"currentColor",d:"M225.923,354.706c-8.098,0-16.195-3.092-22.369-9.263L9.27,151.157c-12.359-12.359-12.359-32.397,0-44.751c12.354-12.354,32.388-12.354,44.748,0l171.905,171.915l171.906-171.909c12.359-12.354,32.391-12.354,44.744,0c12.365,12.354,12.365,32.392,0,44.751L248.292,345.449C242.115,351.621,234.018,354.706,225.923,354.706z"},null,-1)])]))],8,O)):e.createCommentVNode("",!0),e.createElementVNode("div",{ref_key:"dropdownRef",ref:m,class:"titleAndDesc"},[e.createElementVNode("button",{class:e.normalizeClass(["title-dropdown-toggle",{"title-dropdown-toggle-active":p.value.length}]),onClick:g},[e.renderSlot(n.$slots,"title",{},()=>[e.createElementVNode("h4",W,[e.createElementVNode("span",R,e.toDisplayString(t.title),1),p.value.length?(e.openBlock(),e.createElementBlock("svg",{key:0,class:e.normalizeClass(["arrow",{open:i.value}]),width:"12",height:"12",viewBox:"0 0 451.847 451.847",style:{"flex-shrink":"0"}},[...u[1]||(u[1]=[e.createElementVNode("path",{fill:"currentColor",d:"M225.923,354.706c-8.098,0-16.195-3.092-22.369-9.263L9.27,151.157c-12.359-12.359-12.359-32.397,0-44.751c12.354-12.354,32.388-12.354,44.748,0l171.905,171.915l171.906-171.909c12.359-12.354,32.391-12.354,44.744,0c12.365,12.354,12.365,32.392,0,44.751L248.292,345.449C242.115,351.621,234.018,354.706,225.923,354.706z"},null,-1)])],2)):e.createCommentVNode("",!0)])],!0)],2),i.value&&p.value.length?(e.openBlock(),e.createElementBlock("div",_,[e.createElementVNode("div",U,e.toDisplayString(t.dropdownTitle),1),u[2]||(u[2]=e.createElementVNode("div",{class:"title-dropdown-divider"},null,-1)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(p.value,(E,N)=>(e.openBlock(),e.createElementBlock("div",{key:N,class:"title-dropdown-item",onClick:C=>b(E)},[e.createElementVNode("p",F,e.toDisplayString(w(E.name)),1),e.createElementVNode("small",K," ("+e.toDisplayString(t.visitLabel)+" "+e.toDisplayString(s(E.lastVisit))+") ",1)],8,X))),128))])):e.createCommentVNode("",!0),e.renderSlot(n.$slots,"subtitle",{},()=>[t.subtitle?(e.openBlock(),e.createElementBlock("p",j,e.toDisplayString(t.subtitle),1)):e.createCommentVNode("",!0)],!0)],512)]),e.createElementVNode("div",q,[u[3]||(u[3]=e.createElementVNode("div",null,null,-1)),e.renderSlot(n.$slots,"default",{},void 0,!0),u[4]||(u[4]=e.createElementVNode("div",null,null,-1))])])]))}},J=B(H,[["__scopeId","data-v-ad8f398f"]]),G={class:"sky-dialog-overlay"},Q={key:0,class:"sky-dialog-subtitle"},Y=["title"],Z={key:0,class:"sky-dialog-swipe-area"},ee={key:0,class:"sky-dialog-footer"},te={__name:"DialogModal",props:{modelValue:{type:Boolean,default:!1},title:{type:String,default:""},subtitle:{type:String,default:""},zIndex:{type:[Number,String],default:null},closeText:{type:String,default:"Закрити"},closeOnEsc:{type:Boolean,default:!0},hasButtons:{type:Boolean,default:null}},emits:["update:modelValue","close","save"],setup(t,{emit:v}){const a=e.useSlots(),c=t,m=v,i=e.ref(null),k=e.ref(null),d=e.ref(0),r=e.computed(()=>{try{return o.isIosWebview()}catch{return!1}}),y=e.computed(()=>{try{return o.isAndroidWebview()}catch{return!1}}),p=e.computed(()=>c.hasButtons!==null?c.hasButtons:!!a.buttons),g=()=>{m("update:modelValue",!1),m("close")},h=l=>{l.key==="Escape"&&c.closeOnEsc&&c.modelValue&&g(),l.key==="Enter"&&c.modelValue&&m("save")},b=l=>{l.touches[0].clientX<35&&(d.value=l.touches[0].clientX)},w=l=>{d.value>0&&d.value<35&&l.changedTouches[0].clientX-d.value>50&&g(),d.value=0},s=()=>{if(!(!y.value||!i.value))try{if(typeof Android<"u"&&Android.getDisplayCutoutTop){const l=Android.getDisplayCutoutTop();if(l&&window.devicePixelRatio>1){const f=l/window.devicePixelRatio;i.value.style.paddingTop=f+"px"}}}catch{}};return e.watch(()=>c.modelValue,l=>{l?(document.body.style.overflow="hidden",e.nextTick(()=>{s()})):document.body.style.overflow=""}),e.onMounted(()=>{document.addEventListener("keydown",h),window.addEventListener("resize",s)}),e.onUnmounted(()=>{document.removeEventListener("keydown",h),window.removeEventListener("resize",s),document.body.style.overflow=""}),(l,f)=>(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[t.modelValue?(e.openBlock(),e.createElementBlock("div",{key:0,class:"sky-dialogbox sky-dialogbox-classic",style:e.normalizeStyle([t.zIndex?{"z-index":t.zIndex}:null])},[e.createElementVNode("div",G,[e.createElementVNode("div",{ref_key:"dialogContent",ref:i,class:"sky-dialog-content"},[e.createElementVNode("div",{class:e.normalizeClass(["sky-dialog-title",{"sky-dialog-title-with-subtitle":t.subtitle}])},[e.createTextVNode(e.toDisplayString(t.title)+" ",1),t.subtitle?(e.openBlock(),e.createElementBlock("span",Q,e.toDisplayString(t.subtitle),1)):e.createCommentVNode("",!0)],2),e.createElementVNode("button",{class:"sky-dialog-close",title:t.closeText,onClick:g},[...f[0]||(f[0]=[e.createElementVNode("svg",{viewBox:"0 0 16 16",width:"16",height:"16"},[e.createElementVNode("line",{x1:"1",y1:"15",x2:"15",y2:"1",stroke:"currentColor","stroke-width":"2"}),e.createElementVNode("line",{x1:"1",y1:"1",x2:"15",y2:"15",stroke:"currentColor","stroke-width":"2"})],-1)])],8,Y),f[1]||(f[1]=e.createElementVNode("div",{class:"sky-dialog-clearfix"},null,-1)),e.createElementVNode("div",{ref_key:"dialogPaper",ref:k,class:e.normalizeClass(["sky-dialog-paper",{"sky-dialog-paper-no-footer":!p.value}]),onTouchstart:b,onTouchend:w},[r.value?(e.openBlock(),e.createElementBlock("div",Z)):e.createCommentVNode("",!0),e.renderSlot(l.$slots,"default",{},void 0,!0)],34),p.value?(e.openBlock(),e.createElementBlock("div",ee,[e.renderSlot(l.$slots,"buttons",{},void 0,!0)])):e.createCommentVNode("",!0)],512)])],4)):e.createCommentVNode("",!0)]))}},I=B(te,[["__scopeId","data-v-d1a407c7"]]),oe={class:"sky-dialog-overlay"},le={class:"sky-dialog-header"},ne=["title"],ae={width:"15",height:"15",viewBox:"0 0 451.847 451.847",style:{transform:"rotate(90deg)"}},se={key:0,class:"sky-dialog-subtitle"},de={key:0,class:"sky-dialog-swipe-area"},ie={key:0,class:"sky-dialog-footer"},re={__name:"DialogNext",props:{modelValue:{type:Boolean,default:!1},title:{type:String,default:""},subtitle:{type:String,default:""},zIndex:{type:[Number,String],default:null},closeText:{type:String,default:"Назад"},closeOnEsc:{type:Boolean,default:!0},hasButtons:{type:Boolean,default:null}},emits:["update:modelValue","close","save"],setup(t,{emit:v}){const a=e.useSlots(),c=t,m=v,i=e.ref(null),k=e.ref(null),d=e.ref(0),r=e.computed(()=>{try{return o.isIosWebview()}catch{return!1}}),y=e.computed(()=>{try{return o.isAndroidWebview()}catch{return!1}}),p=e.computed(()=>c.hasButtons!==null?c.hasButtons:!!a.buttons),g=()=>{m("update:modelValue",!1),m("close")},h=l=>{l.key==="Escape"&&c.closeOnEsc&&c.modelValue&&g(),l.key==="Enter"&&c.modelValue&&m("save")},b=l=>{l.touches[0].clientX<35&&(d.value=l.touches[0].clientX)},w=l=>{d.value>0&&d.value<35&&l.changedTouches[0].clientX-d.value>50&&g(),d.value=0},s=()=>{if(!(!y.value||!i.value))try{if(typeof Android<"u"&&Android.getDisplayCutoutTop){const l=Android.getDisplayCutoutTop();if(l&&window.devicePixelRatio>1){const f=l/window.devicePixelRatio;i.value.style.paddingTop=f+"px"}}}catch{}};return e.watch(()=>c.modelValue,l=>{l?(document.body.style.overflow="hidden",e.nextTick(()=>{s()})):document.body.style.overflow=""}),e.onMounted(()=>{document.addEventListener("keydown",h),window.addEventListener("resize",s)}),e.onUnmounted(()=>{document.removeEventListener("keydown",h),window.removeEventListener("resize",s),document.body.style.overflow=""}),(l,f)=>(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[t.modelValue?(e.openBlock(),e.createElementBlock("div",{key:0,class:"sky-dialogbox sky-dialogbox-next",style:e.normalizeStyle([t.zIndex?{"z-index":t.zIndex}:null])},[e.createElementVNode("div",oe,[e.createElementVNode("div",{ref_key:"dialogContent",ref:i,class:"sky-dialog-content"},[e.createElementVNode("div",le,[e.createElementVNode("button",{class:"sky-dialog-back",title:t.closeText,onClick:g},[(e.openBlock(),e.createElementBlock("svg",ae,[...f[0]||(f[0]=[e.createElementVNode("path",{fill:"currentColor",d:"M225.923,354.706c-8.098,0-16.195-3.092-22.369-9.263L9.27,151.157c-12.359-12.359-12.359-32.397,0-44.751c12.354-12.354,32.388-12.354,44.748,0l171.905,171.915l171.906-171.909c12.359-12.354,32.391-12.354,44.744,0c12.365,12.354,12.365,32.392,0,44.751L248.292,345.449C242.115,351.621,234.018,354.706,225.923,354.706z"},null,-1)])]))],8,ne),e.createElementVNode("div",{class:e.normalizeClass(["sky-dialog-title",{"sky-dialog-title-with-subtitle":t.subtitle}])},[e.createTextVNode(e.toDisplayString(t.title)+" ",1),t.subtitle?(e.openBlock(),e.createElementBlock("span",se,e.toDisplayString(t.subtitle),1)):e.createCommentVNode("",!0)],2)]),e.createElementVNode("div",{ref_key:"dialogPaper",ref:k,class:e.normalizeClass(["sky-dialog-paper",{"sky-dialog-paper-no-footer":!p.value}]),onTouchstart:b,onTouchend:w},[r.value?(e.openBlock(),e.createElementBlock("div",de)):e.createCommentVNode("",!0),e.renderSlot(l.$slots,"default",{},void 0,!0)],34),p.value?(e.openBlock(),e.createElementBlock("div",ie,[e.renderSlot(l.$slots,"buttons",{},void 0,!0)])):e.createCommentVNode("",!0)],512)])],4)):e.createCommentVNode("",!0)]))}},x=B(re,[["__scopeId","data-v-c2e2d8f9"]]),ce={__name:"Dialog",props:{modelValue:{type:Boolean,default:!1},title:{type:String,default:""},subtitle:{type:String,default:""},zIndex:{type:[Number,String],default:null},closeText:{type:String,default:""},closeOnEsc:{type:Boolean,default:!0},mode:{type:String,default:null,validator:t=>[null,"next","classic"].includes(t)}},emits:["update:modelValue","close","save"],setup(t,{emit:v}){const a=t,c=v,m=e.computed({get:()=>a.modelValue,set:d=>c("update:modelValue",d)}),i=e.ref(!0);e.onMounted(()=>{try{new URLSearchParams(window.location.search).get("rocketMode")==="false"?i.value=!1:i.value=!0}catch{i.value=!0}});const k=e.computed(()=>a.mode==="next"?x:a.mode==="classic"?I:i.value?x:I);return(d,r)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(k.value),{modelValue:m.value,"onUpdate:modelValue":r[0]||(r[0]=y=>m.value=y),title:t.title,subtitle:t.subtitle,"z-index":t.zIndex,"close-text":t.closeText,"close-on-esc":t.closeOnEsc,"has-buttons":!!d.$slots.buttons,onClose:r[1]||(r[1]=y=>d.$emit("close")),onSave:r[2]||(r[2]=y=>d.$emit("save"))},e.createSlots({default:e.withCtx(()=>[e.renderSlot(d.$slots,"default")]),_:2},[d.$slots.buttons?{name:"buttons",fn:e.withCtx(()=>[e.renderSlot(d.$slots,"buttons")]),key:"0"}:void 0]),1064,["modelValue","title","subtitle","z-index","close-text","close-on-esc","has-buttons"]))}},ue={props:{to:{type:String,default:"body"}}};function me(t,v,a,c,m,i){return e.openBlock(),e.createBlock(e.Teleport,{to:a.to},[e.renderSlot(t.$slots,"default")],8,["to"])}const T=B(ue,[["render",me]]),fe={class:"sky-modal-header"},ke=["title"],ye={width:"15",height:"15",viewBox:"0 0 451.847 451.847",style:{transform:"rotate(90deg)"}},ve={class:"sky-modal-title-wrapper"},pe={class:"sky-modal-title"},ge={key:0,class:"sky-modal-subtitle"},he={class:"sky-modal-body"},be={key:0,class:"sky-modal-footer"},we={__name:"Modal",props:{modelValue:{type:Boolean,default:!1},title:{type:String,default:""},subtitle:{type:String,default:""},closeTitle:{type:String,default:"Закрити"},closeOnOverlay:{type:Boolean,default:!0},closeOnEsc:{type:Boolean,default:!0},width:{type:String,default:"100%"},height:{type:String,default:"100%"}},emits:["update:modelValue","close"],setup(t,{emit:v}){const a=t,c=v,m=e.computed(()=>({width:a.width,height:a.height})),i=()=>{c("update:modelValue",!1),c("close")},k=()=>{a.closeOnOverlay&&i()},d=r=>{r.key==="Escape"&&a.closeOnEsc&&a.modelValue&&i()};return e.watch(()=>a.modelValue,r=>{r?document.body.style.overflow="hidden":document.body.style.overflow=""}),e.onMounted(()=>{document.addEventListener("keydown",d)}),e.onUnmounted(()=>{document.removeEventListener("keydown",d),document.body.style.overflow=""}),(r,y)=>(e.openBlock(),e.createBlock(T,{to:"body"},{default:e.withCtx(()=>[t.modelValue?(e.openBlock(),e.createElementBlock("div",{key:0,class:"sky-modal-overlay",onMousedown:e.withModifiers(k,["self"])},[e.createElementVNode("div",{class:"sky-modal",style:e.normalizeStyle(m.value)},[e.createElementVNode("div",fe,[e.createElementVNode("button",{class:"sky-modal-back",onClick:i,title:t.closeTitle},[(e.openBlock(),e.createElementBlock("svg",ye,[...y[0]||(y[0]=[e.createElementVNode("path",{fill:"currentColor",d:"M225.923,354.706c-8.098,0-16.195-3.092-22.369-9.263L9.27,151.157c-12.359-12.359-12.359-32.397,0-44.751c12.354-12.354,32.388-12.354,44.748,0l171.905,171.915l171.906-171.909c12.359-12.354,32.391-12.354,44.744,0c12.365,12.354,12.365,32.392,0,44.751L248.292,345.449C242.115,351.621,234.018,354.706,225.923,354.706z"},null,-1)])]))],8,ke),e.createElementVNode("div",ve,[e.createElementVNode("h4",pe,e.toDisplayString(t.title),1),t.subtitle?(e.openBlock(),e.createElementBlock("div",ge,e.toDisplayString(t.subtitle),1)):e.createCommentVNode("",!0)])]),e.createElementVNode("div",he,[e.renderSlot(r.$slots,"default",{},void 0,!0)]),r.$slots.footer?(e.openBlock(),e.createElementBlock("div",be,[y[1]||(y[1]=e.createElementVNode("div",null,null,-1)),e.renderSlot(r.$slots,"footer",{},void 0,!0),y[2]||(y[2]=e.createElementVNode("div",null,null,-1))])):e.createCommentVNode("",!0)],4)],32)):e.createCommentVNode("",!0)]),_:3}))}},Ee=B(we,[["__scopeId","data-v-e16b0dc3"]]),Be=["disabled"],Se={key:0,class:"sky-btn-spinner"},Ve={__name:"SkyButton",props:{variant:{type:String,default:"primary",validator:t=>["primary","danger","secondary","outline"].includes(t)},loading:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},block:{type:Boolean,default:!1},icon:{type:Boolean,default:!1}},setup(t){return(v,a)=>(e.openBlock(),e.createElementBlock("button",e.mergeProps({class:["sky-btn",[`sky-btn-${t.variant}`,{"sky-btn-block":t.block,"sky-btn-loading":t.loading,"sky-btn-icon":t.icon}]],disabled:t.disabled||t.loading},v.$attrs),[t.loading?(e.openBlock(),e.createElementBlock("span",Se)):e.createCommentVNode("",!0),e.renderSlot(v.$slots,"default",{},void 0,!0)],16,Be))}},Ne=B(Ve,[["__scopeId","data-v-0d61fbfd"]]),Ce=["disabled"],$e={key:0,class:"sky-select-dropdown"},Ie=["onClick","onMouseenter"],xe={key:0,class:"sky-select-check",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true"},De={__name:"SkySelect",props:{modelValue:{default:null},options:{type:Array,default:()=>[]},placeholder:{type:String,default:""},disabled:{type:Boolean,default:!1},block:{type:Boolean,default:!1}},emits:["update:modelValue"],setup(t,{emit:v}){const a=t,c=v,m=e.ref(null),i=e.ref(!1),k=e.ref(-1),d=e.computed(()=>a.options.map(s=>typeof s=="string"?{label:s,value:s}:s)),r=e.computed(()=>d.value.find(s=>s.value===a.modelValue)??null);function y(){a.disabled||(i.value?g():p())}function p(){i.value=!0,k.value=d.value.findIndex(s=>s.value===a.modelValue),document.addEventListener("mousedown",b)}function g(){i.value=!1,document.removeEventListener("mousedown",b)}function h(s){c("update:modelValue",s.value),g()}function b(s){var l;(l=m.value)!=null&&l.contains(s.target)||g()}function w(s){if(!i.value){(s.key==="Enter"||s.key===" ")&&(s.preventDefault(),p());return}s.key==="Escape"?g():s.key==="ArrowDown"?(s.preventDefault(),k.value=Math.min(k.value+1,d.value.length-1)):s.key==="ArrowUp"?(s.preventDefault(),k.value=Math.max(k.value-1,0)):s.key==="Enter"&&(s.preventDefault(),k.value>=0&&h(d.value[k.value]))}return e.onBeforeUnmount(()=>{document.removeEventListener("mousedown",b)}),(s,l)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"root",ref:m,class:e.normalizeClass(["sky-select",{"sky-select-block":t.block,"sky-select-open":i.value,"sky-select-disabled":t.disabled}])},[e.createElementVNode("button",{type:"button",class:"sky-select-trigger",disabled:t.disabled,onClick:y,onKeydown:w},[e.createElementVNode("span",{class:e.normalizeClass(["sky-select-value",{"sky-select-placeholder":r.value===null}])},e.toDisplayString(r.value?r.value.label:t.placeholder),3),l[0]||(l[0]=e.createElementVNode("svg",{class:"sky-select-chevron",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true"},[e.createElementVNode("path",{d:"M4 6l4 4 4-4",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"})],-1))],40,Ce),i.value?(e.openBlock(),e.createElementBlock("div",$e,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.value,(f,S)=>(e.openBlock(),e.createElementBlock("div",{key:f.value,class:e.normalizeClass(["sky-select-option",{"sky-select-option-selected":f.value===t.modelValue,"sky-select-option-focused":S===k.value}]),onClick:V=>h(f),onMouseenter:V=>k.value=S},[e.createElementVNode("span",null,e.toDisplayString(f.label),1),f.value===t.modelValue?(e.openBlock(),e.createElementBlock("svg",xe,[...l[1]||(l[1]=[e.createElementVNode("path",{d:"M3 8l4 4 6-6",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"},null,-1)])])):e.createCommentVNode("",!0)],42,Ie))),128))])):e.createCommentVNode("",!0)],2))}},Te=B(De,[["__scopeId","data-v-5ca23325"]]);exports.SkyserviceAPI=o.SkyserviceAPI;exports.exit=o.exit;exports.getBack=o.getBack;exports.getCompany=o.getCompany;exports.getLang=o.getLang;exports.getLocalStorageData=o.getLocalStorageData;exports.getProductCategories=o.getProductCategories;exports.getSenderId=o.getSenderId;exports.getStoreData=o.getStoreData;exports.getToken=o.getToken;exports.getUser=o.getUser;exports.getWindowData=o.getWindowData;exports.isAndroidWebview=o.isAndroidWebview;exports.isCefWebview=o.isCefWebview;exports.isInIframe=o.isInIframe;exports.isInsideIframe=o.isInsideIframe;exports.isIosWebview=o.isIosWebview;exports.isWebview=o.isWebview;exports.navigate=o.navigate;exports.notify=o.notify;exports.notifyError=o.notifyError;exports.notifyWarn=o.notifyWarn;exports.onMessage=o.onMessage;exports.openCrispChat=o.openCrispChat;exports.openExternalLink=o.openExternalLink;exports.setLocalStorage=o.setLocalStorage;exports.setRocketMode=o.setRocketMode;exports.setSenderId=o.setSenderId;exports.trackVisit=o.trackVisit;exports.webviewCheck=o.webviewCheck;exports.BaseTeleport=T;exports.Dialog=ce;exports.DialogModal=I;exports.DialogNext=x;exports.Header=J;exports.Modal=Ee;exports.SkyButton=Ne;exports.SkySelect=Te;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),o=require("./api-CpNSgpsc.cjs");require("ua-parser-js");const B=(t,v)=>{const a=t.__vccOpts||t;for(const[c,m]of v)a[c]=m;return a},M={class:"sky-header-container"},z={class:"topmenubox"},P={class:"header-left"},O=["title"],A={width:"15",height:"15",viewBox:"0 0 451.847 451.847",style:{transform:"rotate(90deg)"}},W={class:"notPadding"},R={class:"topmenu-title"},_={key:0,class:"title-dropdown"},U={class:"title-dropdown-header"},X=["onClick"],F={class:"pageName"},K={class:"pageVisit"},j={key:0,class:"topmenu-description"},q={class:"topmenubox-button"},H={__name:"Header",props:{title:{type:String,default:""},subtitle:{type:String,default:""},showBackButton:{type:Boolean,default:!0},backButtonTitle:{type:String,default:"Назад"},backEvent:{type:Function,default:null},dropdownItems:{type:Array,default:()=>[]},dropdownTitle:{type:String,default:"Останні відвідані розділи"},visitLabel:{type:String,default:"Останнє відвідування"},trackPageName:{type:String,default:""},trackPagePath:{type:String,default:""},appId:{type:String,default:""}},emits:["back","navigate"],setup(t,{emit:v}){const a=t;o.setSenderId(a.appId||o.getSenderId());const c=v,m=e.ref(null),i=e.ref(!1),k=e.ref([]),d=e.ref({});o.isInsideIframe()&&a.trackPageName&&o.trackVisit(a.trackPageName,a.trackPagePath||`/${a.trackPageName}`);const r=e.ref(null);o.isInsideIframe()&&o.getLocalStorageData("rocketMode").then(async n=>{r.value=n,await o.getLocalStorageData("fallbackRocketMode")===null&&o.setLocalStorage("fallbackRocketMode",n===!0||n==="true"?"true":"false"),o.setRocketMode(!0)}),e.onUnmounted(()=>{S()}),o.isInsideIframe()&&o.getWindowData("lang").then(n=>{n!=null&&(d.value=n)});function y(n){try{if(!n)return;const u=typeof n=="string"?JSON.parse(n):n;u!=null&&u.pages&&(k.value=Object.values(u.pages))}catch{}}y(localStorage.componentStats),o.isInsideIframe()&&o.getLocalStorageData("componentStats").then(n=>{n!=null&&(localStorage.setItem("componentStats",JSON.stringify(n)),y(n))});const p=e.computed(()=>[...a.dropdownItems.length?a.dropdownItems:k.value].sort((u,E)=>E.lastVisit-u.lastVisit)),g=()=>{p.value.length&&(i.value=!i.value)},h=()=>{i.value=!1},b=n=>{c("navigate",n.path),o.isInsideIframe()&&o.navigate(n.path),h()},w=n=>{if(!n)return"";const u=d.value[n]||n;return u.charAt(0).toUpperCase()+u.slice(1)},s=n=>{const E=Date.now()-n,N=Math.floor(E/1e3),C=Math.floor(N/60),$=Math.floor(C/60),D=Math.floor($/24);return D>0?`${D}д тому`:$>0?`${$}год тому`:C>0?`${C}хв тому`:`${N}с тому`},l=n=>{m.value&&!m.value.contains(n.target)&&h()};e.onMounted(()=>{document.addEventListener("click",l,!0)}),e.onUnmounted(()=>{document.removeEventListener("click",l,!0)});const f=e.computed(()=>a.backEvent||a.showBackButton&&o.isInsideIframe()),S=()=>{if(r.value!==null){const n=r.value===!0||r.value==="true";o.setRocketMode(n)}},V=()=>p.value.find(n=>n.name!==a.trackPageName&&n.path),L=async()=>{if(a.backEvent)return S(),a.backEvent();let n=V();if(!n&&o.isInsideIframe()){const u=await o.getLocalStorageData("componentStats");u&&(y(u),n=V())}S(),n?o.navigate(n.path):o.exit()};return(n,u)=>(e.openBlock(),e.createElementBlock("header",M,[e.createElementVNode("div",z,[e.createElementVNode("div",P,[f.value?(e.openBlock(),e.createElementBlock("button",{key:0,class:"btn-back",onClick:L,title:t.backButtonTitle},[(e.openBlock(),e.createElementBlock("svg",A,[...u[0]||(u[0]=[e.createElementVNode("path",{fill:"currentColor",d:"M225.923,354.706c-8.098,0-16.195-3.092-22.369-9.263L9.27,151.157c-12.359-12.359-12.359-32.397,0-44.751c12.354-12.354,32.388-12.354,44.748,0l171.905,171.915l171.906-171.909c12.359-12.354,32.391-12.354,44.744,0c12.365,12.354,12.365,32.392,0,44.751L248.292,345.449C242.115,351.621,234.018,354.706,225.923,354.706z"},null,-1)])]))],8,O)):e.createCommentVNode("",!0),e.createElementVNode("div",{ref_key:"dropdownRef",ref:m,class:"titleAndDesc"},[e.createElementVNode("button",{class:e.normalizeClass(["title-dropdown-toggle",{"title-dropdown-toggle-active":p.value.length}]),onClick:g},[e.renderSlot(n.$slots,"title",{},()=>[e.createElementVNode("h4",W,[e.createElementVNode("span",R,e.toDisplayString(t.title),1),p.value.length?(e.openBlock(),e.createElementBlock("svg",{key:0,class:e.normalizeClass(["arrow",{open:i.value}]),width:"12",height:"12",viewBox:"0 0 451.847 451.847",style:{"flex-shrink":"0"}},[...u[1]||(u[1]=[e.createElementVNode("path",{fill:"currentColor",d:"M225.923,354.706c-8.098,0-16.195-3.092-22.369-9.263L9.27,151.157c-12.359-12.359-12.359-32.397,0-44.751c12.354-12.354,32.388-12.354,44.748,0l171.905,171.915l171.906-171.909c12.359-12.354,32.391-12.354,44.744,0c12.365,12.354,12.365,32.392,0,44.751L248.292,345.449C242.115,351.621,234.018,354.706,225.923,354.706z"},null,-1)])],2)):e.createCommentVNode("",!0)])],!0)],2),i.value&&p.value.length?(e.openBlock(),e.createElementBlock("div",_,[e.createElementVNode("div",U,e.toDisplayString(t.dropdownTitle),1),u[2]||(u[2]=e.createElementVNode("div",{class:"title-dropdown-divider"},null,-1)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(p.value,(E,N)=>(e.openBlock(),e.createElementBlock("div",{key:N,class:"title-dropdown-item",onClick:C=>b(E)},[e.createElementVNode("p",F,e.toDisplayString(w(E.name)),1),e.createElementVNode("small",K," ("+e.toDisplayString(t.visitLabel)+" "+e.toDisplayString(s(E.lastVisit))+") ",1)],8,X))),128))])):e.createCommentVNode("",!0),e.renderSlot(n.$slots,"subtitle",{},()=>[t.subtitle?(e.openBlock(),e.createElementBlock("p",j,e.toDisplayString(t.subtitle),1)):e.createCommentVNode("",!0)],!0)],512)]),e.createElementVNode("div",q,[u[3]||(u[3]=e.createElementVNode("div",null,null,-1)),e.renderSlot(n.$slots,"default",{},void 0,!0),u[4]||(u[4]=e.createElementVNode("div",null,null,-1))])])]))}},J=B(H,[["__scopeId","data-v-ad8f398f"]]),G={class:"sky-dialog-overlay"},Q={key:0,class:"sky-dialog-subtitle"},Y=["title"],Z={key:0,class:"sky-dialog-swipe-area"},ee={key:0,class:"sky-dialog-footer"},te={__name:"DialogModal",props:{modelValue:{type:Boolean,default:!1},title:{type:String,default:""},subtitle:{type:String,default:""},zIndex:{type:[Number,String],default:null},closeText:{type:String,default:"Закрити"},closeOnEsc:{type:Boolean,default:!0},hasButtons:{type:Boolean,default:null}},emits:["update:modelValue","close","save"],setup(t,{emit:v}){const a=e.useSlots(),c=t,m=v,i=e.ref(null),k=e.ref(null),d=e.ref(0),r=e.computed(()=>{try{return o.isIosWebview()}catch{return!1}}),y=e.computed(()=>{try{return o.isAndroidWebview()}catch{return!1}}),p=e.computed(()=>c.hasButtons!==null?c.hasButtons:!!a.buttons),g=()=>{m("update:modelValue",!1),m("close")},h=l=>{l.key==="Escape"&&c.closeOnEsc&&c.modelValue&&g(),l.key==="Enter"&&c.modelValue&&m("save")},b=l=>{l.touches[0].clientX<35&&(d.value=l.touches[0].clientX)},w=l=>{d.value>0&&d.value<35&&l.changedTouches[0].clientX-d.value>50&&g(),d.value=0},s=()=>{if(!(!y.value||!i.value))try{if(typeof Android<"u"&&Android.getDisplayCutoutTop){const l=Android.getDisplayCutoutTop();if(l&&window.devicePixelRatio>1){const f=l/window.devicePixelRatio;i.value.style.paddingTop=f+"px"}}}catch{}};return e.watch(()=>c.modelValue,l=>{l?(document.body.style.overflow="hidden",e.nextTick(()=>{s()})):document.body.style.overflow=""}),e.onMounted(()=>{document.addEventListener("keydown",h),window.addEventListener("resize",s)}),e.onUnmounted(()=>{document.removeEventListener("keydown",h),window.removeEventListener("resize",s),document.body.style.overflow=""}),(l,f)=>(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[t.modelValue?(e.openBlock(),e.createElementBlock("div",{key:0,class:"sky-dialogbox sky-dialogbox-classic",style:e.normalizeStyle([t.zIndex?{"z-index":t.zIndex}:null])},[e.createElementVNode("div",G,[e.createElementVNode("div",{ref_key:"dialogContent",ref:i,class:"sky-dialog-content"},[e.createElementVNode("div",{class:e.normalizeClass(["sky-dialog-title",{"sky-dialog-title-with-subtitle":t.subtitle}])},[e.createTextVNode(e.toDisplayString(t.title)+" ",1),t.subtitle?(e.openBlock(),e.createElementBlock("span",Q,e.toDisplayString(t.subtitle),1)):e.createCommentVNode("",!0)],2),e.createElementVNode("button",{class:"sky-dialog-close",title:t.closeText,onClick:g},[...f[0]||(f[0]=[e.createElementVNode("svg",{viewBox:"0 0 16 16",width:"16",height:"16"},[e.createElementVNode("line",{x1:"1",y1:"15",x2:"15",y2:"1",stroke:"currentColor","stroke-width":"2"}),e.createElementVNode("line",{x1:"1",y1:"1",x2:"15",y2:"15",stroke:"currentColor","stroke-width":"2"})],-1)])],8,Y),f[1]||(f[1]=e.createElementVNode("div",{class:"sky-dialog-clearfix"},null,-1)),e.createElementVNode("div",{ref_key:"dialogPaper",ref:k,class:e.normalizeClass(["sky-dialog-paper",{"sky-dialog-paper-no-footer":!p.value}]),onTouchstart:b,onTouchend:w},[r.value?(e.openBlock(),e.createElementBlock("div",Z)):e.createCommentVNode("",!0),e.renderSlot(l.$slots,"default",{},void 0,!0)],34),p.value?(e.openBlock(),e.createElementBlock("div",ee,[e.renderSlot(l.$slots,"buttons",{},void 0,!0)])):e.createCommentVNode("",!0)],512)])],4)):e.createCommentVNode("",!0)]))}},I=B(te,[["__scopeId","data-v-d1a407c7"]]),oe={class:"sky-dialog-overlay"},le={class:"sky-dialog-header"},ne=["title"],ae={width:"15",height:"15",viewBox:"0 0 451.847 451.847",style:{transform:"rotate(90deg)"}},se={key:0,class:"sky-dialog-subtitle"},de={key:0,class:"sky-dialog-swipe-area"},ie={key:0,class:"sky-dialog-footer"},re={__name:"DialogNext",props:{modelValue:{type:Boolean,default:!1},title:{type:String,default:""},subtitle:{type:String,default:""},zIndex:{type:[Number,String],default:null},closeText:{type:String,default:"Назад"},closeOnEsc:{type:Boolean,default:!0},hasButtons:{type:Boolean,default:null}},emits:["update:modelValue","close","save"],setup(t,{emit:v}){const a=e.useSlots(),c=t,m=v,i=e.ref(null),k=e.ref(null),d=e.ref(0),r=e.computed(()=>{try{return o.isIosWebview()}catch{return!1}}),y=e.computed(()=>{try{return o.isAndroidWebview()}catch{return!1}}),p=e.computed(()=>c.hasButtons!==null?c.hasButtons:!!a.buttons),g=()=>{m("update:modelValue",!1),m("close")},h=l=>{l.key==="Escape"&&c.closeOnEsc&&c.modelValue&&g(),l.key==="Enter"&&c.modelValue&&m("save")},b=l=>{l.touches[0].clientX<35&&(d.value=l.touches[0].clientX)},w=l=>{d.value>0&&d.value<35&&l.changedTouches[0].clientX-d.value>50&&g(),d.value=0},s=()=>{if(!(!y.value||!i.value))try{if(typeof Android<"u"&&Android.getDisplayCutoutTop){const l=Android.getDisplayCutoutTop();if(l&&window.devicePixelRatio>1){const f=l/window.devicePixelRatio;i.value.style.paddingTop=f+"px"}}}catch{}};return e.watch(()=>c.modelValue,l=>{l?(document.body.style.overflow="hidden",e.nextTick(()=>{s()})):document.body.style.overflow=""}),e.onMounted(()=>{document.addEventListener("keydown",h),window.addEventListener("resize",s)}),e.onUnmounted(()=>{document.removeEventListener("keydown",h),window.removeEventListener("resize",s),document.body.style.overflow=""}),(l,f)=>(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[t.modelValue?(e.openBlock(),e.createElementBlock("div",{key:0,class:"sky-dialogbox sky-dialogbox-next",style:e.normalizeStyle([t.zIndex?{"z-index":t.zIndex}:null])},[e.createElementVNode("div",oe,[e.createElementVNode("div",{ref_key:"dialogContent",ref:i,class:"sky-dialog-content"},[e.createElementVNode("div",le,[e.createElementVNode("button",{class:"sky-dialog-back",title:t.closeText,onClick:g},[(e.openBlock(),e.createElementBlock("svg",ae,[...f[0]||(f[0]=[e.createElementVNode("path",{fill:"currentColor",d:"M225.923,354.706c-8.098,0-16.195-3.092-22.369-9.263L9.27,151.157c-12.359-12.359-12.359-32.397,0-44.751c12.354-12.354,32.388-12.354,44.748,0l171.905,171.915l171.906-171.909c12.359-12.354,32.391-12.354,44.744,0c12.365,12.354,12.365,32.392,0,44.751L248.292,345.449C242.115,351.621,234.018,354.706,225.923,354.706z"},null,-1)])]))],8,ne),e.createElementVNode("div",{class:e.normalizeClass(["sky-dialog-title",{"sky-dialog-title-with-subtitle":t.subtitle}])},[e.createTextVNode(e.toDisplayString(t.title)+" ",1),t.subtitle?(e.openBlock(),e.createElementBlock("span",se,e.toDisplayString(t.subtitle),1)):e.createCommentVNode("",!0)],2)]),e.createElementVNode("div",{ref_key:"dialogPaper",ref:k,class:e.normalizeClass(["sky-dialog-paper",{"sky-dialog-paper-no-footer":!p.value}]),onTouchstart:b,onTouchend:w},[r.value?(e.openBlock(),e.createElementBlock("div",de)):e.createCommentVNode("",!0),e.renderSlot(l.$slots,"default",{},void 0,!0)],34),p.value?(e.openBlock(),e.createElementBlock("div",ie,[e.renderSlot(l.$slots,"buttons",{},void 0,!0)])):e.createCommentVNode("",!0)],512)])],4)):e.createCommentVNode("",!0)]))}},x=B(re,[["__scopeId","data-v-c2e2d8f9"]]),ce={__name:"Dialog",props:{modelValue:{type:Boolean,default:!1},title:{type:String,default:""},subtitle:{type:String,default:""},zIndex:{type:[Number,String],default:null},closeText:{type:String,default:""},closeOnEsc:{type:Boolean,default:!0},mode:{type:String,default:null,validator:t=>[null,"next","classic"].includes(t)}},emits:["update:modelValue","close","save"],setup(t,{emit:v}){const a=t,c=v,m=e.computed({get:()=>a.modelValue,set:d=>c("update:modelValue",d)}),i=e.ref(!0);e.onMounted(()=>{try{new URLSearchParams(window.location.search).get("rocketMode")==="false"?i.value=!1:i.value=!0}catch{i.value=!0}});const k=e.computed(()=>a.mode==="next"?x:a.mode==="classic"?I:i.value?x:I);return(d,r)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(k.value),{modelValue:m.value,"onUpdate:modelValue":r[0]||(r[0]=y=>m.value=y),title:t.title,subtitle:t.subtitle,"z-index":t.zIndex,"close-text":t.closeText,"close-on-esc":t.closeOnEsc,"has-buttons":!!d.$slots.buttons,onClose:r[1]||(r[1]=y=>d.$emit("close")),onSave:r[2]||(r[2]=y=>d.$emit("save"))},e.createSlots({default:e.withCtx(()=>[e.renderSlot(d.$slots,"default")]),_:2},[d.$slots.buttons?{name:"buttons",fn:e.withCtx(()=>[e.renderSlot(d.$slots,"buttons")]),key:"0"}:void 0]),1064,["modelValue","title","subtitle","z-index","close-text","close-on-esc","has-buttons"]))}},ue={props:{to:{type:String,default:"body"}}};function me(t,v,a,c,m,i){return e.openBlock(),e.createBlock(e.Teleport,{to:a.to},[e.renderSlot(t.$slots,"default")],8,["to"])}const T=B(ue,[["render",me]]),fe={class:"sky-modal-header"},ke=["title"],ye={width:"15",height:"15",viewBox:"0 0 451.847 451.847",style:{transform:"rotate(90deg)"}},ve={class:"sky-modal-title-wrapper"},pe={class:"sky-modal-title"},ge={key:0,class:"sky-modal-subtitle"},he={class:"sky-modal-body"},be={key:0,class:"sky-modal-footer"},we={__name:"Modal",props:{modelValue:{type:Boolean,default:!1},title:{type:String,default:""},subtitle:{type:String,default:""},closeTitle:{type:String,default:"Закрити"},closeOnOverlay:{type:Boolean,default:!0},closeOnEsc:{type:Boolean,default:!0},width:{type:String,default:"100%"},height:{type:String,default:"100%"}},emits:["update:modelValue","close"],setup(t,{emit:v}){const a=t,c=v,m=e.computed(()=>({width:a.width,height:a.height})),i=()=>{c("update:modelValue",!1),c("close")},k=()=>{a.closeOnOverlay&&i()},d=r=>{r.key==="Escape"&&a.closeOnEsc&&a.modelValue&&i()};return e.watch(()=>a.modelValue,r=>{r?document.body.style.overflow="hidden":document.body.style.overflow=""}),e.onMounted(()=>{document.addEventListener("keydown",d)}),e.onUnmounted(()=>{document.removeEventListener("keydown",d),document.body.style.overflow=""}),(r,y)=>(e.openBlock(),e.createBlock(T,{to:"body"},{default:e.withCtx(()=>[t.modelValue?(e.openBlock(),e.createElementBlock("div",{key:0,class:"sky-modal-overlay",onMousedown:e.withModifiers(k,["self"])},[e.createElementVNode("div",{class:"sky-modal",style:e.normalizeStyle(m.value)},[e.createElementVNode("div",fe,[e.createElementVNode("button",{class:"sky-modal-back",onClick:i,title:t.closeTitle},[(e.openBlock(),e.createElementBlock("svg",ye,[...y[0]||(y[0]=[e.createElementVNode("path",{fill:"currentColor",d:"M225.923,354.706c-8.098,0-16.195-3.092-22.369-9.263L9.27,151.157c-12.359-12.359-12.359-32.397,0-44.751c12.354-12.354,32.388-12.354,44.748,0l171.905,171.915l171.906-171.909c12.359-12.354,32.391-12.354,44.744,0c12.365,12.354,12.365,32.392,0,44.751L248.292,345.449C242.115,351.621,234.018,354.706,225.923,354.706z"},null,-1)])]))],8,ke),e.createElementVNode("div",ve,[e.createElementVNode("h4",pe,e.toDisplayString(t.title),1),t.subtitle?(e.openBlock(),e.createElementBlock("div",ge,e.toDisplayString(t.subtitle),1)):e.createCommentVNode("",!0)])]),e.createElementVNode("div",he,[e.renderSlot(r.$slots,"default",{},void 0,!0)]),r.$slots.footer?(e.openBlock(),e.createElementBlock("div",be,[y[1]||(y[1]=e.createElementVNode("div",null,null,-1)),e.renderSlot(r.$slots,"footer",{},void 0,!0),y[2]||(y[2]=e.createElementVNode("div",null,null,-1))])):e.createCommentVNode("",!0)],4)],32)):e.createCommentVNode("",!0)]),_:3}))}},Ee=B(we,[["__scopeId","data-v-e16b0dc3"]]),Be=["disabled"],Se={key:0,class:"sky-btn-spinner"},Ve={__name:"SkyButton",props:{variant:{type:String,default:"primary",validator:t=>["primary","danger","secondary","outline"].includes(t)},loading:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},block:{type:Boolean,default:!1},icon:{type:Boolean,default:!1}},setup(t){return(v,a)=>(e.openBlock(),e.createElementBlock("button",e.mergeProps({class:["sky-btn",[`sky-btn-${t.variant}`,{"sky-btn-block":t.block,"sky-btn-loading":t.loading,"sky-btn-icon":t.icon}]],disabled:t.disabled||t.loading},v.$attrs),[t.loading?(e.openBlock(),e.createElementBlock("span",Se)):e.createCommentVNode("",!0),e.renderSlot(v.$slots,"default",{},void 0,!0)],16,Be))}},Ne=B(Ve,[["__scopeId","data-v-0d61fbfd"]]),Ce=["disabled"],$e={key:0,class:"sky-select-dropdown"},Ie=["onClick","onMouseenter"],xe={key:0,class:"sky-select-check",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true"},De={__name:"SkySelect",props:{modelValue:{default:null},options:{type:Array,default:()=>[]},placeholder:{type:String,default:""},disabled:{type:Boolean,default:!1},block:{type:Boolean,default:!1}},emits:["update:modelValue"],setup(t,{emit:v}){const a=t,c=v,m=e.ref(null),i=e.ref(!1),k=e.ref(-1),d=e.computed(()=>a.options.map(s=>typeof s=="string"?{label:s,value:s}:s)),r=e.computed(()=>d.value.find(s=>s.value===a.modelValue)??null);function y(){a.disabled||(i.value?g():p())}function p(){i.value=!0,k.value=d.value.findIndex(s=>s.value===a.modelValue),document.addEventListener("mousedown",b)}function g(){i.value=!1,document.removeEventListener("mousedown",b)}function h(s){c("update:modelValue",s.value),g()}function b(s){var l;(l=m.value)!=null&&l.contains(s.target)||g()}function w(s){if(!i.value){(s.key==="Enter"||s.key===" ")&&(s.preventDefault(),p());return}s.key==="Escape"?g():s.key==="ArrowDown"?(s.preventDefault(),k.value=Math.min(k.value+1,d.value.length-1)):s.key==="ArrowUp"?(s.preventDefault(),k.value=Math.max(k.value-1,0)):s.key==="Enter"&&(s.preventDefault(),k.value>=0&&h(d.value[k.value]))}return e.onBeforeUnmount(()=>{document.removeEventListener("mousedown",b)}),(s,l)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"root",ref:m,class:e.normalizeClass(["sky-select",{"sky-select-block":t.block,"sky-select-open":i.value,"sky-select-disabled":t.disabled}])},[e.createElementVNode("button",{type:"button",class:"sky-select-trigger",disabled:t.disabled,onClick:y,onKeydown:w},[e.createElementVNode("span",{class:e.normalizeClass(["sky-select-value",{"sky-select-placeholder":r.value===null}])},e.toDisplayString(r.value?r.value.label:t.placeholder),3),l[0]||(l[0]=e.createElementVNode("svg",{class:"sky-select-chevron",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true"},[e.createElementVNode("path",{d:"M4 6l4 4 4-4",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"})],-1))],40,Ce),i.value?(e.openBlock(),e.createElementBlock("div",$e,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.value,(f,S)=>(e.openBlock(),e.createElementBlock("div",{key:f.value,class:e.normalizeClass(["sky-select-option",{"sky-select-option-selected":f.value===t.modelValue,"sky-select-option-focused":S===k.value}]),onClick:V=>h(f),onMouseenter:V=>k.value=S},[e.createElementVNode("span",null,e.toDisplayString(f.label),1),f.value===t.modelValue?(e.openBlock(),e.createElementBlock("svg",xe,[...l[1]||(l[1]=[e.createElementVNode("path",{d:"M3 8l4 4 6-6",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"},null,-1)])])):e.createCommentVNode("",!0)],42,Ie))),128))])):e.createCommentVNode("",!0)],2))}},Te=B(De,[["__scopeId","data-v-5ca23325"]]);exports.SkyserviceAPI=o.SkyserviceAPI;exports.exit=o.exit;exports.getBack=o.getBack;exports.getCompany=o.getCompany;exports.getLang=o.getLang;exports.getLocalStorageData=o.getLocalStorageData;exports.getProductCategories=o.getProductCategories;exports.getSenderId=o.getSenderId;exports.getStoreData=o.getStoreData;exports.getToken=o.getToken;exports.getUser=o.getUser;exports.getWindowData=o.getWindowData;exports.isAndroidWebview=o.isAndroidWebview;exports.isCefWebview=o.isCefWebview;exports.isInIframe=o.isInIframe;exports.isInsideIframe=o.isInsideIframe;exports.isIosWebview=o.isIosWebview;exports.isWebview=o.isWebview;exports.navigate=o.navigate;exports.notify=o.notify;exports.notifyError=o.notifyError;exports.notifyWarn=o.notifyWarn;exports.onMessage=o.onMessage;exports.openCrispChat=o.openCrispChat;exports.openExternalLink=o.openExternalLink;exports.setLocalStorage=o.setLocalStorage;exports.setRocketMode=o.setRocketMode;exports.setSenderId=o.setSenderId;exports.trackVisit=o.trackVisit;exports.webviewCheck=o.webviewCheck;exports.BaseTeleport=T;exports.Dialog=ce;exports.DialogModal=I;exports.DialogNext=x;exports.Header=J;exports.Modal=Ee;exports.SkyButton=Ne;exports.SkySelect=Te;
@@ -1,6 +1,6 @@
1
1
  import { ref as b, onUnmounted as P, computed as S, onMounted as D, openBlock as i, createElementBlock as r, createElementVNode as t, createCommentVNode as g, normalizeClass as E, renderSlot as x, toDisplayString as $, Fragment as G, renderList as Q, useSlots as Y, watch as F, nextTick as Z, createBlock as z, Teleport as U, normalizeStyle as W, createTextVNode as ee, resolveDynamicComponent as se, createSlots as ne, withCtx as X, withModifiers as ae, mergeProps as ie, onBeforeUnmount as de } from "vue";
2
- import { A as ue, f as re, o as I, B as ce, c as _, y as fe, z as j, k as ye, r as H, e as ve, p as te, l as oe } from "./api-DlXvS7Ec.js";
3
- import { S as bt, g as wt, a as $t, b as St, d as xt, h as Bt, i as Ct, j as Et, m as Vt, n as Tt, q as It, s as Lt, t as Mt, u as Pt, v as Dt, w as zt, x as Ot, C as At } from "./api-DlXvS7Ec.js";
2
+ import { A as ue, f as re, o as I, B as ce, c as _, y as fe, z as j, k as ye, r as H, e as ve, p as te, l as oe } from "./api-Eeo-WwNi.js";
3
+ import { S as bt, g as wt, a as $t, b as St, d as xt, h as Bt, i as Ct, j as Et, m as Vt, n as Tt, q as It, s as Lt, t as Mt, u as Pt, v as Dt, w as zt, x as Ot, C as At } from "./api-Eeo-WwNi.js";
4
4
  import "ua-parser-js";
5
5
  const L = (e, p) => {
6
6
  const s = e.__vccOpts || e;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skyservice-developers/vue-dev-kit",
3
- "version": "2.1.1",
3
+ "version": "2.2.0",
4
4
  "description": "Vue 3 component library + TypeScript SDK (iframe bridge + HTTP API) for Skyservice mini-apps",
5
5
  "type": "module",
6
6
  "main": "./dist/vue-dev-kit.cjs",
@@ -1 +0,0 @@
1
- "use strict";const S=require("ua-parser-js"),v="DASHBOARD",b=5e3;let E=0,f=null;function A(){return`sdk_${Date.now()}_${++E}`}function L(){return"APP_"+Math.random().toString(36).slice(2,10)}function C(t){f=t}function w(){return f||(f=L()),f}function a(t){window.parent.postMessage({...t,sender:w(),target:t.target||v},"*")}function p(t,e,r=b){return y()?new Promise(n=>{const o=A(),i=w(),c=setTimeout(()=>{window.removeEventListener("message",u),n(null)},r);function u(k){const s=k.data;(s==null?void 0:s.type)==="DATA_RESPONSE"&&(s==null?void 0:s.requestId)===o&&(!s.target||s.target===i)&&(clearTimeout(c),window.removeEventListener("message",u),n(s.data??null))}window.addEventListener("message",u),a({type:"DATA_REQUEST",requestId:o,source:t,key:e})}):Promise.resolve(null)}function P(t){a({type:"navigate",path:t})}function m(){a({type:"exit"})}const T=m;function g(t){return p("store",t)}function l(t){return p("localStorage",t)}function _(t){return p("window",t)}function D(){return g("company")}function W(){return g("user")}function R(){return l("token")}function U(){return l("lang")}function $(){return g("productCategories")}function M(t,e){a({type:"setLocalStorage",key:t,value:e})}function O(t){a({type:"setRocketMode",value:t})}function x(t,e){a({type:"trackVisit",name:t,path:e})}function q(t){a({type:"openExternalLink",url:t})}function N(){a({type:"openCrispChat"})}function B(t){a({type:"notification",text:t})}function j(t){a({type:"notification",text:t,variant:"error"})}function G(t){a({type:"notification",text:t,variant:"warn"})}function y(){try{return window.self!==window.top}catch{return!0}}const V=y;function F(t){function e(r){var n;((n=r.data)==null?void 0:n.sender)===v&&t(r.data)}return window.addEventListener("message",e),()=>window.removeEventListener("message",e)}function d(){if(typeof window>"u")return"browser";if(window.webkit!=null&&window.webkit.messageHandlers!==void 0)try{if(S(navigator.userAgent).browser.name==="WebKit")return"ios_webview"}catch(t){console.error(t)}return typeof Android<"u"?"android_webview":typeof window.cefQuery<"u"?"cef_webview":"browser"}function H(){return d()==="ios_webview"}function Q(){return d()==="android_webview"}function z(){return d()==="cef_webview"}function J(){return d()!=="browser"}const K="https://api.cabinet.developer.skyservice.online/index.php";class h{constructor(e){this.token=e.token,this.companyId=e.companyId,this.appId=e.appId,this.developerId=e.developerId;const r=e.domain.replace("dashboard","api");this.baseUrl=r.startsWith("http")?r:`https://${r}`}static create(e){return new h(e)}async get(e){const r=new URLSearchParams({token:this.token,companyId:this.companyId,...e}),n=await fetch(`${this.baseUrl}/?${r}`);if(!n.ok)throw new Error(`Skyservice API error: ${n.status}`);const o=await n.json();if(o.status!=="done")throw new Error(`Skyservice API returned status: ${o.status}`);return o.data}async post(e,r,n){const o=new URLSearchParams({token:this.token,...r}),i=await fetch(`${e}?${o}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(n)});if(!i.ok)throw new Error(`Skyservice API error: ${i.status}`);return i.json()}async getTradepoints(e){const r=await this.get({section:"tradepoints",action:"getTradepoints"});return e!=null&&e.includeDeleted?r.items:r.items.filter(n=>!n.deleted&&!n.frozen)}async getCategoryTree(e){const r=await this.get({section:"productCategory",action:"getCategories",...e?{tradepointId:String(e)}:{}});return I(r,e)}async getProducts(e){const r=await this.get({section:"products",action:"getProducts",pagelimit:"9999",ot:"desc",of:"nomenclatureId",...e!=null&&e.tradepointId?{tradepointId:String(e.tradepointId)}:{}});return Z(r.items,e==null?void 0:e.includeInactive)}async setAppActive({isActive:e,settings:r}){const n=e?"activateApp":"deactivateApp",o={company_id:this.companyId,app_id:this.appId,...this.developerId!==void 0&&{developer_id:this.developerId},...e&&r!==void 0&&{settings:r}};return this.post(K,{section:"integrations",action:n},o)}}function I(t,e){var n,o;const r=[];for(const i of t){if(e!=null&&!((n=i.tradepointShow)==null?void 0:n[String(e)]))continue;const c={id:i.id,pid:i.pid,name:i.name,active:i.active,background:i.background,show:i.show};i.img&&(c.img=i.img),(o=i.children)!=null&&o.length&&(c.children=I(i.children,e)),r.push(c)}return r}const Y=new Set(["product","techcard"]),X="/img/no.png";function Z(t,e){const r=[];for(const n of t)Y.has(n.type)&&(!e&&!n.active||r.push({id:n.id,name:n.nomenclatureName,price:n.price,categoryId:n.categoryId,categoryName:n.categoryTitle||"",active:n.active,type:n.type,unit:n.unit,logo:n.logo&&n.logo!==X?n.logo:""}));return r}exports.SkyserviceAPI=h;exports.exit=m;exports.getBack=T;exports.getCompany=D;exports.getLang=U;exports.getLocalStorageData=l;exports.getProductCategories=$;exports.getSenderId=w;exports.getStoreData=g;exports.getToken=R;exports.getUser=W;exports.getWindowData=_;exports.isAndroidWebview=Q;exports.isCefWebview=z;exports.isInIframe=V;exports.isInsideIframe=y;exports.isIosWebview=H;exports.isWebview=J;exports.navigate=P;exports.notify=B;exports.notifyError=j;exports.notifyWarn=G;exports.onMessage=F;exports.openCrispChat=N;exports.openExternalLink=q;exports.setLocalStorage=M;exports.setRocketMode=O;exports.setSenderId=C;exports.trackVisit=x;exports.webviewCheck=d;