@topvisor/ui 1.1.0-apiClient.31 → 1.1.0-apiClient.34
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/.chunks/{lazy-DtvYwspC.es.js → lazy-40pjr8cZ.es.js} +14 -13
- package/.chunks/lazy-40pjr8cZ.es.js.map +1 -0
- package/.chunks/lazy-DSFLxvj4.amd.js +2 -0
- package/.chunks/lazy-DSFLxvj4.amd.js.map +1 -0
- package/api/index.amd.js +1 -1
- package/api/index.js +6 -6
- package/package.json +2 -2
- package/.chunks/lazy-BAwNwrGd.amd.js +0 -2
- package/.chunks/lazy-BAwNwrGd.amd.js.map +0 -1
- package/.chunks/lazy-DtvYwspC.es.js.map +0 -1
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
const l = async (
|
|
1
|
+
const l = async (a, t, r) => {
|
|
2
2
|
const n = document.createElement("form");
|
|
3
|
-
n.target = r, n.action =
|
|
4
|
-
}, f = (
|
|
3
|
+
n.target = r, n.action = a, n.method = "post", f(n, t), document.body.appendChild(n), n.submit(), n.remove();
|
|
4
|
+
}, f = (a, t) => {
|
|
5
5
|
const r = c(t);
|
|
6
6
|
for (const [n, e] of r.entries()) {
|
|
7
7
|
if (e instanceof File)
|
|
8
8
|
throw new Error("Files can not be manual set in `HTMLFormElement`");
|
|
9
9
|
const o = document.createElement("input");
|
|
10
|
-
o.name = n, o.value = String(e),
|
|
10
|
+
o.name = n, o.value = String(e), a.appendChild(o);
|
|
11
11
|
}
|
|
12
|
-
}, c = (
|
|
13
|
-
for (const [n, e] of Object.entries(
|
|
12
|
+
}, c = (a, t = new FormData(), r) => {
|
|
13
|
+
for (const [n, e] of Object.entries(a)) {
|
|
14
14
|
if (e == null) continue;
|
|
15
15
|
const o = r ? `${r}[${n}]` : n;
|
|
16
16
|
switch (!0) {
|
|
@@ -19,16 +19,17 @@ const l = async (s, t, r) => {
|
|
|
19
19
|
break;
|
|
20
20
|
case e instanceof FileList:
|
|
21
21
|
for (let i = 0; i < e.length; i++) {
|
|
22
|
-
const
|
|
23
|
-
|
|
22
|
+
const s = e.item(i);
|
|
23
|
+
s && t.append(o + "[]", s, s.name);
|
|
24
24
|
}
|
|
25
25
|
break;
|
|
26
26
|
case e instanceof Blob:
|
|
27
27
|
t.append(o, e);
|
|
28
28
|
break;
|
|
29
29
|
case Array.isArray(e):
|
|
30
|
-
|
|
31
|
-
c({ [o + "[]"]: i }, t);
|
|
30
|
+
e.forEach((i, s) => {
|
|
31
|
+
c({ [o + "[" + s + "]"]: i }, t);
|
|
32
|
+
});
|
|
32
33
|
break;
|
|
33
34
|
case e instanceof Date:
|
|
34
35
|
t.append(o, e.toISOString());
|
|
@@ -41,7 +42,7 @@ const l = async (s, t, r) => {
|
|
|
41
42
|
}
|
|
42
43
|
}
|
|
43
44
|
return t;
|
|
44
|
-
}, p = (
|
|
45
|
+
}, p = (a) => {
|
|
45
46
|
const t = new URLSearchParams(), r = (n, e) => {
|
|
46
47
|
if (e != null) {
|
|
47
48
|
if (Array.isArray(e)) {
|
|
@@ -57,7 +58,7 @@ const l = async (s, t, r) => {
|
|
|
57
58
|
t.append(n, String(e));
|
|
58
59
|
}
|
|
59
60
|
};
|
|
60
|
-
for (const [n, e] of Object.entries(
|
|
61
|
+
for (const [n, e] of Object.entries(a))
|
|
61
62
|
r(n, e);
|
|
62
63
|
return t.toString();
|
|
63
64
|
};
|
|
@@ -67,4 +68,4 @@ export {
|
|
|
67
68
|
l as postInWindow,
|
|
68
69
|
p as querySerializer
|
|
69
70
|
};
|
|
70
|
-
//# sourceMappingURL=lazy-
|
|
71
|
+
//# sourceMappingURL=lazy-40pjr8cZ.es.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lazy-40pjr8cZ.es.js","sources":["../../src/api/api/utils/lazy.ts"],"sourcesContent":["/**\n * Общие утилиты, которые должны грузиться в отложенном режиме\n *\n * Все такие утилиты являются асинхронными\n */\n\n/**\n * Выполнить post запрос в окне браузера\n *\n * @see Api.ClientRequest.callInNewWindow\n * @see Api.ClientRequest.callInSelfWindow\n */\nexport const postInWindow = async (url: string, data: Record<string, any>, target: '_blank' | '_self'): Promise<void> => {\n\tconst form = document.createElement('form');\n\tform.target = target;\n\tform.action = url;\n\tform.method = 'post';\n\n\tdataToForm(form, data);\n\n\tdocument.body.appendChild(form);\n\tform.submit();\n\tform.remove();\n};\n\n/**\n * Вставляет данные в HTML форму\n */\nexport const dataToForm = (elForm: HTMLFormElement, data: Record<string, any>): void => {\n\tconst formData = formDataSerializer(data);\n\n\tfor (const [key, value] of formData.entries()) {\n\t\tif (value instanceof File) {\n\t\t\tthrow new Error('Files can not be manual set in `HTMLFormElement`');\n\t\t}\n\n\t\tconst input = document.createElement('input');\n\t\t// input.type = 'hidden';\n\t\tinput.name = key;\n\t\tinput.value = String(value);\n\t\telForm.appendChild(input);\n\t}\n};\n\n/**\n * Сериализация данных в объект FormData\n *\n * Для отправки файлов или генерации форм\n */\nexport const formDataSerializer = (data: Record<string, any>, formData: FormData = new FormData(), parentKey?: string): FormData => {\n\tfor (const [key, value] of Object.entries(data)) {\n\t\tif (value === undefined || value === null) continue;\n\n\t\tconst fieldKey = parentKey ? `${parentKey}[${key}]` : key;\n\n\t\tswitch (true) {\n\t\t\tcase value instanceof File:\n\t\t\t\tformData.append(fieldKey, value, value.name);\n\n\t\t\t\tbreak;\n\t\t\tcase value instanceof FileList:\n\t\t\t\tfor (let i = 0; i < value.length; i++) {\n\t\t\t\t\tconst file = value.item(i);\n\t\t\t\t\tif (file) {\n\t\t\t\t\t\tformData.append(fieldKey + '[]', file, file.name);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\t\t\tcase value instanceof Blob:\n\t\t\t\tformData.append(fieldKey, value);\n\n\t\t\t\tbreak;\n\t\t\tcase Array.isArray(value):\n\t\t\t\t// пустые массивы не передаются\n\t\t\t\tvalue.forEach((item, key) => {\n\t\t\t\t\tformDataSerializer({ [fieldKey + '[' + key + ']']: item }, formData);\n\t\t\t\t});\n\n\t\t\t\tbreak;\n\t\t\tcase value instanceof Date:\n\t\t\t\t// для совместимости с JSON.stringify();\n\t\t\t\tformData.append(fieldKey, value.toISOString());\n\n\t\t\t\tbreak;\n\t\t\tcase typeof value === 'object':\n\t\t\t\tformDataSerializer(value, formData, fieldKey);\n\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tformData.append(fieldKey, String(value));\n\t\t}\n\t}\n\n\treturn formData;\n};\n\n/**\n * Сериализация данных для вставки в виде параметров в url\n */\nexport const querySerializer = (data: Record<string, unknown>): string => {\n\tconst searchParams = new URLSearchParams();\n\n\tconst appendParam = (path: string, currentValue: unknown): void => {\n\t\tif (currentValue == null) return;\n\n\t\tif (Array.isArray(currentValue)) {\n\t\t\tfor (const [key, value] of Object.entries(currentValue)) {\n\t\t\t\tappendParam(`${path}[${key}]`, value);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tif (typeof currentValue === 'object') {\n\t\t\tfor (const [key, value] of Object.entries(currentValue as Record<string, unknown>)) {\n\t\t\t\tappendParam(`${path}[${key}]`, value);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tsearchParams.append(path, String(currentValue));\n\t};\n\n\tfor (const [key, value] of Object.entries(data)) {\n\t\tappendParam(key, value);\n\t}\n\n\treturn searchParams.toString();\n};\n"],"names":["postInWindow","url","data","target","form","dataToForm","elForm","formData","formDataSerializer","key","value","input","parentKey","fieldKey","file","item","querySerializer","searchParams","appendParam","path","currentValue"],"mappings":"AAYO,MAAMA,IAAe,OAAOC,GAAaC,GAA2BC,MAA8C;AACxH,QAAMC,IAAO,SAAS,cAAc,MAAM;AAC1C,EAAAA,EAAK,SAASD,GACdC,EAAK,SAASH,GACdG,EAAK,SAAS,QAEdC,EAAWD,GAAMF,CAAI,GAErB,SAAS,KAAK,YAAYE,CAAI,GAC9BA,EAAK,OAAA,GACLA,EAAK,OAAA;AACN,GAKaC,IAAa,CAACC,GAAyBJ,MAAoC;AACvF,QAAMK,IAAWC,EAAmBN,CAAI;AAExC,aAAW,CAACO,GAAKC,CAAK,KAAKH,EAAS,WAAW;AAC9C,QAAIG,aAAiB;AACpB,YAAM,IAAI,MAAM,kDAAkD;AAGnE,UAAMC,IAAQ,SAAS,cAAc,OAAO;AAE5C,IAAAA,EAAM,OAAOF,GACbE,EAAM,QAAQ,OAAOD,CAAK,GAC1BJ,EAAO,YAAYK,CAAK;AAAA,EACzB;AACD,GAOaH,IAAqB,CAACN,GAA2BK,IAAqB,IAAI,SAAA,GAAYK,MAAiC;AACnI,aAAW,CAACH,GAAKC,CAAK,KAAK,OAAO,QAAQR,CAAI,GAAG;AAChD,QAA2BQ,KAAU,KAAM;AAE3C,UAAMG,IAAWD,IAAY,GAAGA,CAAS,IAAIH,CAAG,MAAMA;AAEtD,YAAQ,IAAA;AAAA,MACP,KAAKC,aAAiB;AACrB,QAAAH,EAAS,OAAOM,GAAUH,GAAOA,EAAM,IAAI;AAE3C;AAAA,MACD,KAAKA,aAAiB;AACrB,iBAAS,IAAI,GAAG,IAAIA,EAAM,QAAQ,KAAK;AACtC,gBAAMI,IAAOJ,EAAM,KAAK,CAAC;AACzB,UAAII,KACHP,EAAS,OAAOM,IAAW,MAAMC,GAAMA,EAAK,IAAI;AAAA,QAElD;AAEA;AAAA,MACD,KAAKJ,aAAiB;AACrB,QAAAH,EAAS,OAAOM,GAAUH,CAAK;AAE/B;AAAA,MACD,KAAK,MAAM,QAAQA,CAAK;AAEvB,QAAAA,EAAM,QAAQ,CAACK,GAAMN,MAAQ;AAC5B,UAAAD,EAAmB,EAAE,CAACK,IAAW,MAAMJ,IAAM,GAAG,GAAGM,EAAA,GAAQR,CAAQ;AAAA,QACpE,CAAC;AAED;AAAA,MACD,KAAKG,aAAiB;AAErB,QAAAH,EAAS,OAAOM,GAAUH,EAAM,YAAA,CAAa;AAE7C;AAAA,MACD,KAAK,OAAOA,KAAU;AACrB,QAAAF,EAAmBE,GAAOH,GAAUM,CAAQ;AAE5C;AAAA,MACD;AACC,QAAAN,EAAS,OAAOM,GAAU,OAAOH,CAAK,CAAC;AAAA,IAAA;AAAA,EAE1C;AAEA,SAAOH;AACR,GAKaS,IAAkB,CAACd,MAA0C;AACzE,QAAMe,IAAe,IAAI,gBAAA,GAEnBC,IAAc,CAACC,GAAcC,MAAgC;AAClE,QAAIA,KAAgB,MAEpB;AAAA,UAAI,MAAM,QAAQA,CAAY,GAAG;AAChC,mBAAW,CAACX,GAAKC,CAAK,KAAK,OAAO,QAAQU,CAAY;AACrD,UAAAF,EAAY,GAAGC,CAAI,IAAIV,CAAG,KAAKC,CAAK;AAErC;AAAA,MACD;AAEA,UAAI,OAAOU,KAAiB,UAAU;AACrC,mBAAW,CAACX,GAAKC,CAAK,KAAK,OAAO,QAAQU,CAAuC;AAChF,UAAAF,EAAY,GAAGC,CAAI,IAAIV,CAAG,KAAKC,CAAK;AAErC;AAAA,MACD;AAEA,MAAAO,EAAa,OAAOE,GAAM,OAAOC,CAAY,CAAC;AAAA;AAAA,EAC/C;AAEA,aAAW,CAACX,GAAKC,CAAK,KAAK,OAAO,QAAQR,CAAI;AAC7C,IAAAgB,EAAYT,GAAKC,CAAK;AAGvB,SAAOO,EAAa,SAAA;AACrB;"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
define(["require","exports"],(function(m,s){"use strict";if(typeof l>"u")var l=window.Vue;const u=async(a,t,i)=>{const n=document.createElement("form");n.target=i,n.action=a,n.method="post",d(n,t),document.body.appendChild(n),n.submit(),n.remove()},d=(a,t)=>{const i=f(t);for(const[n,e]of i.entries()){if(e instanceof File)throw new Error("Files can not be manual set in `HTMLFormElement`");const o=document.createElement("input");o.name=n,o.value=String(e),a.appendChild(o)}},f=(a,t=new FormData,i)=>{for(const[n,e]of Object.entries(a)){if(e==null)continue;const o=i?`${i}[${n}]`:n;switch(!0){case e instanceof File:t.append(o,e,e.name);break;case e instanceof FileList:for(let r=0;r<e.length;r++){const c=e.item(r);c&&t.append(o+"[]",c,c.name)}break;case e instanceof Blob:t.append(o,e);break;case Array.isArray(e):e.forEach((r,c)=>{f({[o+"["+c+"]"]:r},t)});break;case e instanceof Date:t.append(o,e.toISOString());break;case typeof e=="object":f(e,t,o);break;default:t.append(o,String(e))}}return t},p=a=>{const t=new URLSearchParams,i=(n,e)=>{if(e!=null){if(Array.isArray(e)){for(const[o,r]of Object.entries(e))i(`${n}[${o}]`,r);return}if(typeof e=="object"){for(const[o,r]of Object.entries(e))i(`${n}[${o}]`,r);return}t.append(n,String(e))}};for(const[n,e]of Object.entries(a))i(n,e);return t.toString()};s.dataToForm=d,s.formDataSerializer=f,s.postInWindow=u,s.querySerializer=p,Object.defineProperty(s,Symbol.toStringTag,{value:"Module"})}));
|
|
2
|
+
//# sourceMappingURL=lazy-DSFLxvj4.amd.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lazy-DSFLxvj4.amd.js","sources":["../../src/api/api/utils/lazy.ts"],"sourcesContent":["/**\n * Общие утилиты, которые должны грузиться в отложенном режиме\n *\n * Все такие утилиты являются асинхронными\n */\n\n/**\n * Выполнить post запрос в окне браузера\n *\n * @see Api.ClientRequest.callInNewWindow\n * @see Api.ClientRequest.callInSelfWindow\n */\nexport const postInWindow = async (url: string, data: Record<string, any>, target: '_blank' | '_self'): Promise<void> => {\n\tconst form = document.createElement('form');\n\tform.target = target;\n\tform.action = url;\n\tform.method = 'post';\n\n\tdataToForm(form, data);\n\n\tdocument.body.appendChild(form);\n\tform.submit();\n\tform.remove();\n};\n\n/**\n * Вставляет данные в HTML форму\n */\nexport const dataToForm = (elForm: HTMLFormElement, data: Record<string, any>): void => {\n\tconst formData = formDataSerializer(data);\n\n\tfor (const [key, value] of formData.entries()) {\n\t\tif (value instanceof File) {\n\t\t\tthrow new Error('Files can not be manual set in `HTMLFormElement`');\n\t\t}\n\n\t\tconst input = document.createElement('input');\n\t\t// input.type = 'hidden';\n\t\tinput.name = key;\n\t\tinput.value = String(value);\n\t\telForm.appendChild(input);\n\t}\n};\n\n/**\n * Сериализация данных в объект FormData\n *\n * Для отправки файлов или генерации форм\n */\nexport const formDataSerializer = (data: Record<string, any>, formData: FormData = new FormData(), parentKey?: string): FormData => {\n\tfor (const [key, value] of Object.entries(data)) {\n\t\tif (value === undefined || value === null) continue;\n\n\t\tconst fieldKey = parentKey ? `${parentKey}[${key}]` : key;\n\n\t\tswitch (true) {\n\t\t\tcase value instanceof File:\n\t\t\t\tformData.append(fieldKey, value, value.name);\n\n\t\t\t\tbreak;\n\t\t\tcase value instanceof FileList:\n\t\t\t\tfor (let i = 0; i < value.length; i++) {\n\t\t\t\t\tconst file = value.item(i);\n\t\t\t\t\tif (file) {\n\t\t\t\t\t\tformData.append(fieldKey + '[]', file, file.name);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\t\t\tcase value instanceof Blob:\n\t\t\t\tformData.append(fieldKey, value);\n\n\t\t\t\tbreak;\n\t\t\tcase Array.isArray(value):\n\t\t\t\t// пустые массивы не передаются\n\t\t\t\tvalue.forEach((item, key) => {\n\t\t\t\t\tformDataSerializer({ [fieldKey + '[' + key + ']']: item }, formData);\n\t\t\t\t});\n\n\t\t\t\tbreak;\n\t\t\tcase value instanceof Date:\n\t\t\t\t// для совместимости с JSON.stringify();\n\t\t\t\tformData.append(fieldKey, value.toISOString());\n\n\t\t\t\tbreak;\n\t\t\tcase typeof value === 'object':\n\t\t\t\tformDataSerializer(value, formData, fieldKey);\n\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tformData.append(fieldKey, String(value));\n\t\t}\n\t}\n\n\treturn formData;\n};\n\n/**\n * Сериализация данных для вставки в виде параметров в url\n */\nexport const querySerializer = (data: Record<string, unknown>): string => {\n\tconst searchParams = new URLSearchParams();\n\n\tconst appendParam = (path: string, currentValue: unknown): void => {\n\t\tif (currentValue == null) return;\n\n\t\tif (Array.isArray(currentValue)) {\n\t\t\tfor (const [key, value] of Object.entries(currentValue)) {\n\t\t\t\tappendParam(`${path}[${key}]`, value);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tif (typeof currentValue === 'object') {\n\t\t\tfor (const [key, value] of Object.entries(currentValue as Record<string, unknown>)) {\n\t\t\t\tappendParam(`${path}[${key}]`, value);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tsearchParams.append(path, String(currentValue));\n\t};\n\n\tfor (const [key, value] of Object.entries(data)) {\n\t\tappendParam(key, value);\n\t}\n\n\treturn searchParams.toString();\n};\n"],"names":["postInWindow","url","data","target","form","dataToForm","elForm","formData","formDataSerializer","key","value","input","parentKey","fieldKey","i","file","key2","item","querySerializer","searchParams","appendParam","path","currentValue"],"mappings":"0FAYO,MAAAA,EAAA,MAAAC,EAAAC,EAAAC,IAAA,wCAENC,EAAA,OAAAD,EACAC,EAAA,OAAAH,EACAG,EAAA,OAAA,OAEAC,EAAAD,EAAAF,CAAA,EAEA,SAAA,KAAA,YAAAE,CAAA,uBAGD,EAKOC,EAAA,CAAAC,EAAAJ,IAAA,CACN,MAAAK,EAAAC,EAAAN,CAAA,EAEA,SAAA,CAAAO,EAAAC,CAAA,IAAAH,EAAA,QAAA,EAAA,CACC,GAAAG,aAAA,KACC,MAAA,IAAA,MAAA,kDAAA,0CAKDC,EAAA,KAAAF,EACAE,EAAA,MAAA,OAAAD,CAAA,EACAJ,EAAA,YAAAK,CAAA,EAEF,EAOOH,EAAA,CAAAN,EAAAK,EAAA,IAAA,SAAAK,IAAA,CACN,SAAA,CAAAH,EAAAC,CAAA,IAAA,OAAA,QAAAR,CAAA,EAAA,qBAGC,MAAAW,EAAAD,EAAA,GAAAA,CAAA,IAAAH,CAAA,IAAAA,EAEA,OAAA,GAAA,8EAME,QAAAK,EAAA,EAAAA,EAAAJ,EAAA,OAAAI,IAAA,sBAGEP,EAAA,OAAAM,EAAA,KAAAE,EAAAA,EAAA,IAAA,+BAMFR,EAAA,OAAAM,EAAAH,CAAA,QAEA,KAAA,MAAA,QAAAA,CAAA,oBAICF,EAAA,CAAA,CAAAK,EAAA,IAAAG,EAAA,GAAA,EAAAC,CAAA,EAAAV,CAAA,CAAmE,CAAA,iEAQpE,KAAA,OAAAG,GAAA,SAEAF,EAAAE,EAAAH,EAAAM,CAAA,qCAIuC,EAI1C,OAAAN,CACD,EAKOW,EAAAhB,GAAA,CACN,MAAAiB,EAAA,IAAA,gBAEAC,EAAA,CAAAC,EAAAC,IAAA,CACC,GAAAA,GAAA,KAEA,IAAA,MAAA,QAAAA,CAAA,EAAA,CACC,SAAA,CAAAb,EAAAC,CAAA,IAAA,OAAA,QAAAY,CAAA,EACCF,EAAA,GAAAC,CAAA,IAAAZ,CAAA,IAAAC,CAAA,SAKF,GAAA,OAAAY,GAAA,SAAA,CACC,SAAA,CAAAb,EAAAC,CAAA,IAAA,OAAA,QAAAY,CAAA,EACCF,EAAA,GAAAC,CAAA,IAAAZ,CAAA,IAAAC,CAAA,+BAK4C,EAG/C,SAAA,CAAAD,EAAAC,CAAA,IAAA,OAAA,QAAAR,CAAA,EACCkB,EAAAX,EAAAC,CAAA,EAGD,OAAAS,EAAA,SAAA,CACD"}
|
package/api/index.amd.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
define(["require","exports","../.chunks/field-Cvv0SRcJ.amd"],(function(m,f,O){"use strict";if(typeof J>"u")var J=window.Vue;const F=(t={})=>{var o;return t={...t},t.loadingEl??=(o=globalThis.document)==null?void 0:o.body,t.loadingShowSpinner??=!0,t.method??="POST",t.accept??="application/json",t},S=(t,o,r)=>({result:t,errors:o,response:r}),H=t=>t.startsWith("/system_2/common/"),N=(t=!1,o=window.location.href,r)=>{const{protocol:e,hostname:n,port:s}=new URL(o),i=n.split("."),u=!t||i.length<=2||/^[\d.]+$/.test(n)||n==="localhost"?n:i.slice(-2).join(".");return`${e}//${u}${s?`:${s}`:""}`},V=t=>Object.values(t).some(o=>o instanceof FileList||o instanceof File||o instanceof Blob||Array.isArray(o)&&o.some(r=>r instanceof File||r instanceof Blob)),G=(t,o,r)=>{const e={inLoading:!1,path:o,url:t.options.baseUrl+o,options:F(t.options.requestOptions),mockerOptions:void 0,params:{},getInLoading:()=>e.inLoading,setParams:n=>(e.params={...n},e),changeParams:n=>(Object.assign(e.params,n),e),setOptions:n=>(Object.assign(e.options,n),e),setMocker:n=>(e.mockerOptions=n,e),call:async n=>e.exec(n),callFetch:async(n,s)=>e.exec(s,n),callInNewWindow:async n=>{var d,h;const s=e.genData(n),i=t.genMiddlewareCtx(e,s);(h=(d=t.options).onPrepareData)==null||h.call(d,s,i);const{postInWindow:u}=await new Promise((g,y)=>m(["../.chunks/lazy-
|
|
1
|
+
define(["require","exports","../.chunks/field-Cvv0SRcJ.amd"],(function(m,f,O){"use strict";if(typeof J>"u")var J=window.Vue;const F=(t={})=>{var o;return t={...t},t.loadingEl??=(o=globalThis.document)==null?void 0:o.body,t.loadingShowSpinner??=!0,t.method??="POST",t.accept??="application/json",t},S=(t,o,r)=>({result:t,errors:o,response:r}),H=t=>t.startsWith("/system_2/common/"),N=(t=!1,o=window.location.href,r)=>{const{protocol:e,hostname:n,port:s}=new URL(o),i=n.split("."),u=!t||i.length<=2||/^[\d.]+$/.test(n)||n==="localhost"?n:i.slice(-2).join(".");return`${e}//${u}${s?`:${s}`:""}`},V=t=>Object.values(t).some(o=>o instanceof FileList||o instanceof File||o instanceof Blob||Array.isArray(o)&&o.some(r=>r instanceof File||r instanceof Blob)),G=(t,o,r)=>{const e={inLoading:!1,path:o,url:t.options.baseUrl+o,options:F(t.options.requestOptions),mockerOptions:void 0,params:{},getInLoading:()=>e.inLoading,setParams:n=>(e.params={...n},e),changeParams:n=>(Object.assign(e.params,n),e),setOptions:n=>(Object.assign(e.options,n),e),setMocker:n=>(e.mockerOptions=n,e),call:async n=>e.exec(n),callFetch:async(n,s)=>e.exec(s,n),callInNewWindow:async n=>{var d,h;const s=e.genData(n),i=t.genMiddlewareCtx(e,s);(h=(d=t.options).onPrepareData)==null||h.call(d,s,i);const{postInWindow:u}=await new Promise((g,y)=>m(["../.chunks/lazy-DSFLxvj4.amd"],g,y));u(e.url,s,"_blank")},callInSelfWindow:async n=>{var d,h;const s=e.genData(n),i=t.genMiddlewareCtx(e,s);(h=(d=t.options).onPrepareData)==null||h.call(d,s,i);const{postInWindow:u}=await new Promise((g,y)=>m(["../.chunks/lazy-DSFLxvj4.amd"],g,y));u(e.url,s,"_self")},genData:(n,s)=>{const i={...e.params};if(delete i.fetch_style,n){let u=[...n];r&&(u=u.filter(d=>r.includes(d))),i.fields=u}else r&&(i.fields=r);return s&&(i.fetch_style=s),i},async exec(n,s){var C,k,T,z,A,D,U,L,M,j,W,v,B,_,$;const i=t.options.Request,u=t.options.fetch,d=e.genData(n,s),h=t.genMiddlewareCtx(e,d);if((k=(C=t.options).onPrepareData)==null||k.call(C,d,h),e.mockerOptions){const{genMockResponse:c}=await new Promise((p,R)=>m(["../.chunks/index-BEI7XZmU.amd"],p,R));return await c(e.mockerOptions,n,d)}const g=V(d);if(g&&e.options.method!=="POST")throw new Error("Files can be sent only in POST requests");let y=e.url,q;if(g){if(e.options.method!=="POST")throw new Error("Files can be sent only in POST requests");const{formDataSerializer:c}=await new Promise((p,R)=>m(["../.chunks/lazy-DSFLxvj4.amd"],p,R));q=c(d)}else e.options.method!=="POST"?y+="?"+await t.options.querySerializer(d):q=t.options.bodySerializer(d);let I;if(this.options.checkFingerprint){const c=this.path+this.options.checkFingerprint;(T=t.abortControllers[c])==null||T.abort();const p=new AbortController;t.abortControllers[c]=p,I=p.signal}const Z={...t.options,method:e.options.method,body:q,signal:I};let x=new i(y,Z);x.headers.set("x-request-id",h.id),x.headers.set("accept",e.options.accept),g||x.headers.set("content-type","application/json");const w={...h,request:x};e.inLoading=!0,(A=(z=e.options).onLoading)==null||A.call(z,e.inLoading,w);let l;const E=await t.middlewareOnRequest(x,w);if(E instanceof Response?l=E:E instanceof i&&(x=E),!l)try{l=await u(x)}catch(c){l=await t.middlewareOnError(c,w)}finally{e.inLoading=!1,(U=(D=e.options).onLoading)==null||U.call(D,e.inLoading,w)}l=await t.middlewareOnResponse(l,w);let a,b,P;try{const c=(L=l.headers.get("content-type"))==null?void 0:L.includes("application/json");b=await l.text(),this.options.accept==="application/json"||c?a=JSON.parse(b):t.useExt?a=S(b,void 0,l):a=b}catch(c){if((c instanceof SyntaxError||c instanceof TypeError)&&(P=c,P.responseText=b),t.useExt&&P){let p=l.status,R=l.statusText;p===200&&(p=1e4,R="Error API response"),a=S(null,[{code:p,string:R}],l),t.options.useApiConsole&&console.error(c)}else throw c}return t.useExt&&(a.response=l,a&&((j=(M=e.options).onApiLoaded)==null||j.call(M,a,w)),a!=null&&a.errors&&(t.options.useApiConsole&&console.warn(new Error("API error"),{res:a}),(B=(v=e.options).onApiError)==null||B.call(v,a,{...w,formatError:P},(W=t.options.requestOptions)==null?void 0:W.onApiError)),a!=null&&a.messages&&(($=(_=e.options).onApiMessage)==null||$.call(_,a,w))),a}};return e};class K{options;useExt;middlewares=[];abortControllers={};constructor(o={},r){o.requestOptions=F(o.requestOptions),o.useApiConsole??=!0,o.fetch??=globalThis.fetch,o.Request??=globalThis.Request,o.querySerializer??=async e=>{const{querySerializer:n}=await new Promise((s,i)=>m(["../.chunks/lazy-DSFLxvj4.amd"],s,i));return n(e)},o.bodySerializer??=e=>typeof e=="string"?e:JSON.stringify(e),this.options=o,this.useExt=r}generateUUID(){return crypto!=null&&crypto.randomUUID?crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,o=>{const r=Math.random()*16|0;return(o==="x"?r:r&3|8).toString(16)})}use(o){this.middlewares.push(o)}gen(o,r){return G(this,o,r)}genAny(o,r){return this.gen(o,r)}genMiddlewareCtx(o,r){const e=this.generateUUID(),n=Object.freeze({baseUrl:this.options.baseUrl,querySerializer:this.options.querySerializer,bodySerializer:this.options.bodySerializer,Request:this.options.Request,fetch:this.options.fetch});return{useExt:this.useExt,requestOptions:o.options,data:r,middlewareData:{},options:n,schemaPath:o.path,id:e}}async middlewareOnRequest(o,r){var e;for(const n of this.middlewares){const s=await((e=n.onRequest)==null?void 0:e.call(n,{...r,request:o}));if(s)if(s instanceof Request)o=s;else{if(s instanceof Response)return s;throw new Error("onRequest: must return new Request() or Response() when modifying the request")}}return o}async middlewareOnError(o,r){var n;let e=o;for(const s of this.middlewares){const i=await((n=s.onError)==null?void 0:n.call(s,{...r,error:e}));if(i){if(i instanceof Response)return i;if(i instanceof Error){e=i;continue}throw new Error("onError: must return new Response() or instance of Error")}}throw e}async middlewareOnResponse(o,r){var e;for(const n of this.middlewares){const s=await((e=n.onResponse)==null?void 0:e.call(n,{...r,response:o}));if(s){if(!(s instanceof Response))throw new Error("onResponse: must return new Response() when modifying the response");o=s}}return o}}const Q=async(...t)=>{const{postInWindow:o}=await new Promise((r,e)=>m(["../.chunks/lazy-DSFLxvj4.amd"],r,e));return o(...t)},X=async(...t)=>{const{dataToForm:o}=await new Promise((r,e)=>m(["../.chunks/lazy-DSFLxvj4.amd"],r,e));return o(...t)},Y=(t={},o)=>new K(t,o);f.genFieldFilter=O.genFieldFilter,f.genFieldOrder=O.genFieldOrder,f.createClient=Y,f.dataToForm=X,f.genExtRes=S,f.getBaseDomainUrl=N,f.isPublicAPI=H,f.postInWindow=Q,Object.defineProperty(f,Symbol.toStringTag,{value:"Module"})}));
|
|
2
2
|
//# sourceMappingURL=index.amd.js.map
|
package/api/index.js
CHANGED
|
@@ -31,14 +31,14 @@ const v = (o = {}) => {
|
|
|
31
31
|
var p, u;
|
|
32
32
|
const r = e.genData(s), i = o.genMiddlewareCtx(e, r);
|
|
33
33
|
(u = (p = o.options).onPrepareData) == null || u.call(p, r, i);
|
|
34
|
-
const { postInWindow: d } = await import("../.chunks/lazy-
|
|
34
|
+
const { postInWindow: d } = await import("../.chunks/lazy-40pjr8cZ.es.js");
|
|
35
35
|
d(e.url, r, "_blank");
|
|
36
36
|
},
|
|
37
37
|
callInSelfWindow: async (s) => {
|
|
38
38
|
var p, u;
|
|
39
39
|
const r = e.genData(s), i = o.genMiddlewareCtx(e, r);
|
|
40
40
|
(u = (p = o.options).onPrepareData) == null || u.call(p, r, i);
|
|
41
|
-
const { postInWindow: d } = await import("../.chunks/lazy-
|
|
41
|
+
const { postInWindow: d } = await import("../.chunks/lazy-40pjr8cZ.es.js");
|
|
42
42
|
d(e.url, r, "_self");
|
|
43
43
|
},
|
|
44
44
|
genData: (s, r) => {
|
|
@@ -67,7 +67,7 @@ const v = (o = {}) => {
|
|
|
67
67
|
if (y) {
|
|
68
68
|
if (e.options.method !== "POST")
|
|
69
69
|
throw new Error("Files can be sent only in POST requests");
|
|
70
|
-
const { formDataSerializer: c } = await import("../.chunks/lazy-
|
|
70
|
+
const { formDataSerializer: c } = await import("../.chunks/lazy-40pjr8cZ.es.js");
|
|
71
71
|
R = c(p);
|
|
72
72
|
} else e.options.method !== "POST" ? b += "?" + await o.options.querySerializer(p) : R = o.options.bodySerializer(p);
|
|
73
73
|
let E;
|
|
@@ -129,7 +129,7 @@ class J {
|
|
|
129
129
|
abortControllers = {};
|
|
130
130
|
constructor(t = {}, n) {
|
|
131
131
|
t.requestOptions = v(t.requestOptions), t.useApiConsole ??= !0, t.fetch ??= globalThis.fetch, t.Request ??= globalThis.Request, t.querySerializer ??= async (e) => {
|
|
132
|
-
const { querySerializer: s } = await import("../.chunks/lazy-
|
|
132
|
+
const { querySerializer: s } = await import("../.chunks/lazy-40pjr8cZ.es.js");
|
|
133
133
|
return s(e);
|
|
134
134
|
}, t.bodySerializer ??= (e) => typeof e == "string" ? e : JSON.stringify(e), this.options = t, this.useExt = n;
|
|
135
135
|
}
|
|
@@ -261,10 +261,10 @@ class J {
|
|
|
261
261
|
}
|
|
262
262
|
}
|
|
263
263
|
const G = async (...o) => {
|
|
264
|
-
const { postInWindow: t } = await import("../.chunks/lazy-
|
|
264
|
+
const { postInWindow: t } = await import("../.chunks/lazy-40pjr8cZ.es.js");
|
|
265
265
|
return t(...o);
|
|
266
266
|
}, K = async (...o) => {
|
|
267
|
-
const { dataToForm: t } = await import("../.chunks/lazy-
|
|
267
|
+
const { dataToForm: t } = await import("../.chunks/lazy-40pjr8cZ.es.js");
|
|
268
268
|
return t(...o);
|
|
269
269
|
}, Q = (o = {}, t) => new J(o, t);
|
|
270
270
|
export {
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@topvisor/ui",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "1.1.0-apiClient.
|
|
4
|
+
"version": "1.1.0-apiClient.34",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"description": "Topvisor UI-kit Vue",
|
|
7
7
|
"author": "Topvisor",
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"@monaco-editor/loader": "^1.5.0",
|
|
29
29
|
"@rive-app/canvas-lite": "^2.30.4",
|
|
30
30
|
"pinia": "2.3.1",
|
|
31
|
-
"vue": "^3.5.
|
|
31
|
+
"vue": "^3.5.20"
|
|
32
32
|
},
|
|
33
33
|
"overrides": {
|
|
34
34
|
"storybook": "$storybook"
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
define(["require","exports"],(function(p,s){"use strict";if(typeof l>"u")var l=window.Vue;const u=async(a,t,i)=>{const n=document.createElement("form");n.target=i,n.action=a,n.method="post",d(n,t),document.body.appendChild(n),n.submit(),n.remove()},d=(a,t)=>{const i=c(t);for(const[n,e]of i.entries()){if(e instanceof File)throw new Error("Files can not be manual set in `HTMLFormElement`");const o=document.createElement("input");o.name=n,o.value=String(e),a.appendChild(o)}},c=(a,t=new FormData,i)=>{for(const[n,e]of Object.entries(a)){if(e==null)continue;const o=i?`${i}[${n}]`:n;switch(!0){case e instanceof File:t.append(o,e,e.name);break;case e instanceof FileList:for(let r=0;r<e.length;r++){const f=e.item(r);f&&t.append(o+"[]",f,f.name)}break;case e instanceof Blob:t.append(o,e);break;case Array.isArray(e):for(const r in e)c({[o+"[]"]:r},t);break;case e instanceof Date:t.append(o,e.toISOString());break;case typeof e=="object":c(e,t,o);break;default:t.append(o,String(e))}}return t},m=a=>{const t=new URLSearchParams,i=(n,e)=>{if(e!=null){if(Array.isArray(e)){for(const[o,r]of Object.entries(e))i(`${n}[${o}]`,r);return}if(typeof e=="object"){for(const[o,r]of Object.entries(e))i(`${n}[${o}]`,r);return}t.append(n,String(e))}};for(const[n,e]of Object.entries(a))i(n,e);return t.toString()};s.dataToForm=d,s.formDataSerializer=c,s.postInWindow=u,s.querySerializer=m,Object.defineProperty(s,Symbol.toStringTag,{value:"Module"})}));
|
|
2
|
-
//# sourceMappingURL=lazy-BAwNwrGd.amd.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"lazy-BAwNwrGd.amd.js","sources":["../../src/api/api/utils/lazy.ts"],"sourcesContent":["/**\n * Общие утилиты, которые должны грузиться в отложенном режиме\n *\n * Все такие утилиты являются асинхронными\n */\n\n/**\n * Выполнить post запрос в окне браузера\n *\n * @see Api.ClientRequest.callInNewWindow\n * @see Api.ClientRequest.callInSelfWindow\n */\nexport const postInWindow = async (url: string, data: Record<string, any>, target: '_blank' | '_self'): Promise<void> => {\n\tconst form = document.createElement('form');\n\tform.target = target;\n\tform.action = url;\n\tform.method = 'post';\n\n\tdataToForm(form, data);\n\n\tdocument.body.appendChild(form);\n\tform.submit();\n\tform.remove();\n};\n\n/**\n * Вставляет данные в HTML форму\n */\nexport const dataToForm = (elForm: HTMLFormElement, data: Record<string, any>): void => {\n\tconst formData = formDataSerializer(data);\n\n\tfor (const [key, value] of formData.entries()) {\n\t\tif (value instanceof File) {\n\t\t\tthrow new Error('Files can not be manual set in `HTMLFormElement`');\n\t\t}\n\n\t\tconst input = document.createElement('input');\n\t\t// input.type = 'hidden';\n\t\tinput.name = key;\n\t\tinput.value = String(value);\n\t\telForm.appendChild(input);\n\t}\n};\n\n/**\n * Сериализация данных в объект FormData\n *\n * Для отправки файлов или генерации форм\n */\nexport const formDataSerializer = (data: Record<string, any>, formData: FormData = new FormData(), parentKey?: string): FormData => {\n\tfor (const [key, value] of Object.entries(data)) {\n\t\tif (value === undefined || value === null) continue;\n\n\t\tconst fieldKey = parentKey ? `${parentKey}[${key}]` : key;\n\n\t\tswitch (true) {\n\t\t\tcase value instanceof File:\n\t\t\t\tformData.append(fieldKey, value, value.name);\n\n\t\t\t\tbreak;\n\t\t\tcase value instanceof FileList:\n\t\t\t\tfor (let i = 0; i < value.length; i++) {\n\t\t\t\t\tconst file = value.item(i);\n\t\t\t\t\tif (file) {\n\t\t\t\t\t\tformData.append(fieldKey + '[]', file, file.name);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\t\t\tcase value instanceof Blob:\n\t\t\t\tformData.append(fieldKey, value);\n\n\t\t\t\tbreak;\n\t\t\tcase Array.isArray(value):\n\t\t\t\tfor (const item in value) {\n\t\t\t\t\tformDataSerializer({ [fieldKey + '[]']: item }, formData);\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\t\t\tcase value instanceof Date:\n\t\t\t\t// для совместимости с JSON.stringify();\n\t\t\t\tformData.append(fieldKey, value.toISOString());\n\n\t\t\t\tbreak;\n\t\t\tcase typeof value === 'object':\n\t\t\t\tformDataSerializer(value, formData, fieldKey);\n\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tformData.append(fieldKey, String(value));\n\t\t}\n\t}\n\n\treturn formData;\n};\n\n/**\n * Сериализация данных для вставки в виде параметров в url\n */\nexport const querySerializer = (data: Record<string, unknown>): string => {\n\tconst searchParams = new URLSearchParams();\n\n\tconst appendParam = (path: string, currentValue: unknown): void => {\n\t\tif (currentValue == null) return;\n\n\t\tif (Array.isArray(currentValue)) {\n\t\t\tfor (const [key, value] of Object.entries(currentValue)) {\n\t\t\t\tappendParam(`${path}[${key}]`, value);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tif (typeof currentValue === 'object') {\n\t\t\tfor (const [key, value] of Object.entries(currentValue as Record<string, unknown>)) {\n\t\t\t\tappendParam(`${path}[${key}]`, value);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tsearchParams.append(path, String(currentValue));\n\t};\n\n\tfor (const [key, value] of Object.entries(data)) {\n\t\tappendParam(key, value);\n\t}\n\n\treturn searchParams.toString();\n};\n"],"names":["postInWindow","url","data","target","form","dataToForm","elForm","formData","formDataSerializer","key","value","input","parentKey","fieldKey","i","file","item","querySerializer","searchParams","appendParam","path","currentValue"],"mappings":"0FAYO,MAAAA,EAAA,MAAAC,EAAAC,EAAAC,IAAA,wCAENC,EAAA,OAAAD,EACAC,EAAA,OAAAH,EACAG,EAAA,OAAA,OAEAC,EAAAD,EAAAF,CAAA,EAEA,SAAA,KAAA,YAAAE,CAAA,uBAGD,EAKOC,EAAA,CAAAC,EAAAJ,IAAA,CACN,MAAAK,EAAAC,EAAAN,CAAA,EAEA,SAAA,CAAAO,EAAAC,CAAA,IAAAH,EAAA,QAAA,EAAA,CACC,GAAAG,aAAA,KACC,MAAA,IAAA,MAAA,kDAAA,0CAKDC,EAAA,KAAAF,EACAE,EAAA,MAAA,OAAAD,CAAA,EACAJ,EAAA,YAAAK,CAAA,EAEF,EAOOH,EAAA,CAAAN,EAAAK,EAAA,IAAA,SAAAK,IAAA,CACN,SAAA,CAAAH,EAAAC,CAAA,IAAA,OAAA,QAAAR,CAAA,EAAA,qBAGC,MAAAW,EAAAD,EAAA,GAAAA,CAAA,IAAAH,CAAA,IAAAA,EAEA,OAAA,GAAA,8EAME,QAAAK,EAAA,EAAAA,EAAAJ,EAAA,OAAAI,IAAA,sBAGEP,EAAA,OAAAM,EAAA,KAAAE,EAAAA,EAAA,IAAA,+BAMFR,EAAA,OAAAM,EAAAH,CAAA,QAEA,KAAA,MAAA,QAAAA,CAAA,EAEA,UAAAM,KAAAN,EACCF,EAAA,CAAA,CAAAK,EAAA,IAAA,EAAAG,CAAA,EAAAT,CAAA,iEAQD,KAAA,OAAAG,GAAA,SAEAF,EAAAE,EAAAH,EAAAM,CAAA,qCAIuC,EAI1C,OAAAN,CACD,EAKOU,EAAAf,GAAA,CACN,MAAAgB,EAAA,IAAA,gBAEAC,EAAA,CAAAC,EAAAC,IAAA,CACC,GAAAA,GAAA,KAEA,IAAA,MAAA,QAAAA,CAAA,EAAA,CACC,SAAA,CAAAZ,EAAAC,CAAA,IAAA,OAAA,QAAAW,CAAA,EACCF,EAAA,GAAAC,CAAA,IAAAX,CAAA,IAAAC,CAAA,SAKF,GAAA,OAAAW,GAAA,SAAA,CACC,SAAA,CAAAZ,EAAAC,CAAA,IAAA,OAAA,QAAAW,CAAA,EACCF,EAAA,GAAAC,CAAA,IAAAX,CAAA,IAAAC,CAAA,+BAK4C,EAG/C,SAAA,CAAAD,EAAAC,CAAA,IAAA,OAAA,QAAAR,CAAA,EACCiB,EAAAV,EAAAC,CAAA,EAGD,OAAAQ,EAAA,SAAA,CACD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"lazy-DtvYwspC.es.js","sources":["../../src/api/api/utils/lazy.ts"],"sourcesContent":["/**\n * Общие утилиты, которые должны грузиться в отложенном режиме\n *\n * Все такие утилиты являются асинхронными\n */\n\n/**\n * Выполнить post запрос в окне браузера\n *\n * @see Api.ClientRequest.callInNewWindow\n * @see Api.ClientRequest.callInSelfWindow\n */\nexport const postInWindow = async (url: string, data: Record<string, any>, target: '_blank' | '_self'): Promise<void> => {\n\tconst form = document.createElement('form');\n\tform.target = target;\n\tform.action = url;\n\tform.method = 'post';\n\n\tdataToForm(form, data);\n\n\tdocument.body.appendChild(form);\n\tform.submit();\n\tform.remove();\n};\n\n/**\n * Вставляет данные в HTML форму\n */\nexport const dataToForm = (elForm: HTMLFormElement, data: Record<string, any>): void => {\n\tconst formData = formDataSerializer(data);\n\n\tfor (const [key, value] of formData.entries()) {\n\t\tif (value instanceof File) {\n\t\t\tthrow new Error('Files can not be manual set in `HTMLFormElement`');\n\t\t}\n\n\t\tconst input = document.createElement('input');\n\t\t// input.type = 'hidden';\n\t\tinput.name = key;\n\t\tinput.value = String(value);\n\t\telForm.appendChild(input);\n\t}\n};\n\n/**\n * Сериализация данных в объект FormData\n *\n * Для отправки файлов или генерации форм\n */\nexport const formDataSerializer = (data: Record<string, any>, formData: FormData = new FormData(), parentKey?: string): FormData => {\n\tfor (const [key, value] of Object.entries(data)) {\n\t\tif (value === undefined || value === null) continue;\n\n\t\tconst fieldKey = parentKey ? `${parentKey}[${key}]` : key;\n\n\t\tswitch (true) {\n\t\t\tcase value instanceof File:\n\t\t\t\tformData.append(fieldKey, value, value.name);\n\n\t\t\t\tbreak;\n\t\t\tcase value instanceof FileList:\n\t\t\t\tfor (let i = 0; i < value.length; i++) {\n\t\t\t\t\tconst file = value.item(i);\n\t\t\t\t\tif (file) {\n\t\t\t\t\t\tformData.append(fieldKey + '[]', file, file.name);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\t\t\tcase value instanceof Blob:\n\t\t\t\tformData.append(fieldKey, value);\n\n\t\t\t\tbreak;\n\t\t\tcase Array.isArray(value):\n\t\t\t\tfor (const item in value) {\n\t\t\t\t\tformDataSerializer({ [fieldKey + '[]']: item }, formData);\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\t\t\tcase value instanceof Date:\n\t\t\t\t// для совместимости с JSON.stringify();\n\t\t\t\tformData.append(fieldKey, value.toISOString());\n\n\t\t\t\tbreak;\n\t\t\tcase typeof value === 'object':\n\t\t\t\tformDataSerializer(value, formData, fieldKey);\n\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tformData.append(fieldKey, String(value));\n\t\t}\n\t}\n\n\treturn formData;\n};\n\n/**\n * Сериализация данных для вставки в виде параметров в url\n */\nexport const querySerializer = (data: Record<string, unknown>): string => {\n\tconst searchParams = new URLSearchParams();\n\n\tconst appendParam = (path: string, currentValue: unknown): void => {\n\t\tif (currentValue == null) return;\n\n\t\tif (Array.isArray(currentValue)) {\n\t\t\tfor (const [key, value] of Object.entries(currentValue)) {\n\t\t\t\tappendParam(`${path}[${key}]`, value);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tif (typeof currentValue === 'object') {\n\t\t\tfor (const [key, value] of Object.entries(currentValue as Record<string, unknown>)) {\n\t\t\t\tappendParam(`${path}[${key}]`, value);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tsearchParams.append(path, String(currentValue));\n\t};\n\n\tfor (const [key, value] of Object.entries(data)) {\n\t\tappendParam(key, value);\n\t}\n\n\treturn searchParams.toString();\n};\n"],"names":["postInWindow","url","data","target","form","dataToForm","elForm","formData","formDataSerializer","key","value","input","parentKey","fieldKey","file","item","querySerializer","searchParams","appendParam","path","currentValue"],"mappings":"AAYO,MAAMA,IAAe,OAAOC,GAAaC,GAA2BC,MAA8C;AACxH,QAAMC,IAAO,SAAS,cAAc,MAAM;AAC1C,EAAAA,EAAK,SAASD,GACdC,EAAK,SAASH,GACdG,EAAK,SAAS,QAEdC,EAAWD,GAAMF,CAAI,GAErB,SAAS,KAAK,YAAYE,CAAI,GAC9BA,EAAK,OAAA,GACLA,EAAK,OAAA;AACN,GAKaC,IAAa,CAACC,GAAyBJ,MAAoC;AACvF,QAAMK,IAAWC,EAAmBN,CAAI;AAExC,aAAW,CAACO,GAAKC,CAAK,KAAKH,EAAS,WAAW;AAC9C,QAAIG,aAAiB;AACpB,YAAM,IAAI,MAAM,kDAAkD;AAGnE,UAAMC,IAAQ,SAAS,cAAc,OAAO;AAE5C,IAAAA,EAAM,OAAOF,GACbE,EAAM,QAAQ,OAAOD,CAAK,GAC1BJ,EAAO,YAAYK,CAAK;AAAA,EACzB;AACD,GAOaH,IAAqB,CAACN,GAA2BK,IAAqB,IAAI,SAAA,GAAYK,MAAiC;AACnI,aAAW,CAACH,GAAKC,CAAK,KAAK,OAAO,QAAQR,CAAI,GAAG;AAChD,QAA2BQ,KAAU,KAAM;AAE3C,UAAMG,IAAWD,IAAY,GAAGA,CAAS,IAAIH,CAAG,MAAMA;AAEtD,YAAQ,IAAA;AAAA,MACP,KAAKC,aAAiB;AACrB,QAAAH,EAAS,OAAOM,GAAUH,GAAOA,EAAM,IAAI;AAE3C;AAAA,MACD,KAAKA,aAAiB;AACrB,iBAAS,IAAI,GAAG,IAAIA,EAAM,QAAQ,KAAK;AACtC,gBAAMI,IAAOJ,EAAM,KAAK,CAAC;AACzB,UAAII,KACHP,EAAS,OAAOM,IAAW,MAAMC,GAAMA,EAAK,IAAI;AAAA,QAElD;AAEA;AAAA,MACD,KAAKJ,aAAiB;AACrB,QAAAH,EAAS,OAAOM,GAAUH,CAAK;AAE/B;AAAA,MACD,KAAK,MAAM,QAAQA,CAAK;AACvB,mBAAWK,KAAQL;AAClB,UAAAF,EAAmB,EAAE,CAACK,IAAW,IAAI,GAAGE,EAAA,GAAQR,CAAQ;AAGzD;AAAA,MACD,KAAKG,aAAiB;AAErB,QAAAH,EAAS,OAAOM,GAAUH,EAAM,YAAA,CAAa;AAE7C;AAAA,MACD,KAAK,OAAOA,KAAU;AACrB,QAAAF,EAAmBE,GAAOH,GAAUM,CAAQ;AAE5C;AAAA,MACD;AACC,QAAAN,EAAS,OAAOM,GAAU,OAAOH,CAAK,CAAC;AAAA,IAAA;AAAA,EAE1C;AAEA,SAAOH;AACR,GAKaS,IAAkB,CAACd,MAA0C;AACzE,QAAMe,IAAe,IAAI,gBAAA,GAEnBC,IAAc,CAACC,GAAcC,MAAgC;AAClE,QAAIA,KAAgB,MAEpB;AAAA,UAAI,MAAM,QAAQA,CAAY,GAAG;AAChC,mBAAW,CAACX,GAAKC,CAAK,KAAK,OAAO,QAAQU,CAAY;AACrD,UAAAF,EAAY,GAAGC,CAAI,IAAIV,CAAG,KAAKC,CAAK;AAErC;AAAA,MACD;AAEA,UAAI,OAAOU,KAAiB,UAAU;AACrC,mBAAW,CAACX,GAAKC,CAAK,KAAK,OAAO,QAAQU,CAAuC;AAChF,UAAAF,EAAY,GAAGC,CAAI,IAAIV,CAAG,KAAKC,CAAK;AAErC;AAAA,MACD;AAEA,MAAAO,EAAa,OAAOE,GAAM,OAAOC,CAAY,CAAC;AAAA;AAAA,EAC/C;AAEA,aAAW,CAACX,GAAKC,CAAK,KAAK,OAAO,QAAQR,CAAI;AAC7C,IAAAgB,EAAYT,GAAKC,CAAK;AAGvB,SAAOO,EAAa,SAAA;AACrB;"}
|