@topvisor/ui 1.5.0-updates.0 → 1.5.0-updates.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (580) hide show
  1. package/.chunks/api-CawzY1Cw.amd.js +2 -0
  2. package/.chunks/api-CawzY1Cw.amd.js.map +1 -0
  3. package/.chunks/api-CawzY1Cw.esm.js +208 -0
  4. package/.chunks/api-CawzY1Cw.esm.js.map +1 -0
  5. package/.chunks/app-CCX-gNqz.amd.js +2 -0
  6. package/.chunks/app-CCX-gNqz.amd.js.map +1 -0
  7. package/.chunks/app-CCX-gNqz.esm.js +396 -0
  8. package/.chunks/app-CCX-gNqz.esm.js.map +1 -0
  9. package/.chunks/datepicker-BTkZOq7d.amd.js +2 -0
  10. package/.chunks/datepicker-BTkZOq7d.amd.js.map +1 -0
  11. package/.chunks/datepicker-BTkZOq7d.esm.js +38 -0
  12. package/.chunks/datepicker-BTkZOq7d.esm.js.map +1 -0
  13. package/.chunks/dialog-DeM4SApg.amd.js +2 -0
  14. package/.chunks/dialog-DeM4SApg.amd.js.map +1 -0
  15. package/.chunks/dialog-DeM4SApg.esm.js +117 -0
  16. package/.chunks/dialog-DeM4SApg.esm.js.map +1 -0
  17. package/.chunks/dialog_regionSelectorRegions-CYrmaDt3.amd.js +2 -0
  18. package/.chunks/dialog_regionSelectorRegions-CYrmaDt3.amd.js.map +1 -0
  19. package/.chunks/dialog_regionSelectorRegions-CYrmaDt3.esm.js +169 -0
  20. package/.chunks/dialog_regionSelectorRegions-CYrmaDt3.esm.js.map +1 -0
  21. package/.chunks/dialogs-CMrERMI7.amd.js +2 -0
  22. package/.chunks/dialogs-CMrERMI7.amd.js.map +1 -0
  23. package/.chunks/dialogs-CMrERMI7.esm.js +237 -0
  24. package/.chunks/dialogs-CMrERMI7.esm.js.map +1 -0
  25. package/.chunks/field-CjkpGeA7.amd.js +2 -0
  26. package/.chunks/field-CjkpGeA7.amd.js.map +1 -0
  27. package/.chunks/field-CjkpGeA7.esm.js +16 -0
  28. package/.chunks/field-CjkpGeA7.esm.js.map +1 -0
  29. package/.chunks/forms-CbUt-6Ff.amd.js +2 -0
  30. package/.chunks/forms-CbUt-6Ff.amd.js.map +1 -0
  31. package/.chunks/forms-CbUt-6Ff.esm.js +1991 -0
  32. package/.chunks/forms-CbUt-6Ff.esm.js.map +1 -0
  33. package/.chunks/formsExt-CrTmBhja.amd.js +2 -0
  34. package/.chunks/formsExt-CrTmBhja.amd.js.map +1 -0
  35. package/.chunks/formsExt-CrTmBhja.esm.js +807 -0
  36. package/.chunks/formsExt-CrTmBhja.esm.js.map +1 -0
  37. package/.chunks/lazy-CGswTOPj.amd.js +2 -0
  38. package/.chunks/lazy-CGswTOPj.amd.js.map +1 -0
  39. package/.chunks/lazy-CGswTOPj.esm.js +68 -0
  40. package/.chunks/lazy-CGswTOPj.esm.js.map +1 -0
  41. package/.chunks/mocker-CwZe-g4N.amd.js +2 -0
  42. package/.chunks/mocker-CwZe-g4N.amd.js.map +1 -0
  43. package/.chunks/mocker-CwZe-g4N.esm.js +45 -0
  44. package/.chunks/mocker-CwZe-g4N.esm.js.map +1 -0
  45. package/.chunks/notice-CslVdVNm.amd.js +4 -0
  46. package/.chunks/notice-CslVdVNm.amd.js.map +1 -0
  47. package/.chunks/notice-CslVdVNm.esm.js +191 -0
  48. package/.chunks/notice-CslVdVNm.esm.js.map +1 -0
  49. package/.chunks/popup-DrByVU-k.amd.js +2 -0
  50. package/.chunks/popup-DrByVU-k.amd.js.map +1 -0
  51. package/.chunks/popup-DrByVU-k.esm.js +444 -0
  52. package/.chunks/popup-DrByVU-k.esm.js.map +1 -0
  53. package/.chunks/popup-dNrN-eKi.amd.js +2 -0
  54. package/.chunks/popup-dNrN-eKi.amd.js.map +1 -0
  55. package/.chunks/popup-dNrN-eKi.esm.js +323 -0
  56. package/.chunks/popup-dNrN-eKi.esm.js.map +1 -0
  57. package/.chunks/punycode.es6-B-5kB2YI.amd.js +2 -0
  58. package/.chunks/{punycode.es6-CgGegfA_.es.js.map → punycode.es6-B-5kB2YI.amd.js.map} +1 -1
  59. package/.chunks/punycode.es6-B-5kB2YI.esm.js +105 -0
  60. package/.chunks/punycode.es6-B-5kB2YI.esm.js.map +1 -0
  61. package/.chunks/store-DuQpSSLL.amd.js +2 -0
  62. package/.chunks/store-DuQpSSLL.amd.js.map +1 -0
  63. package/.chunks/store-DuQpSSLL.esm.js +27 -0
  64. package/.chunks/store-DuQpSSLL.esm.js.map +1 -0
  65. package/.chunks/utils-BwiXsV0S.amd.js +2 -0
  66. package/.chunks/{utils-BNzP9anP.es.js.map → utils-BwiXsV0S.amd.js.map} +1 -1
  67. package/.chunks/utils-BwiXsV0S.esm.js +43 -0
  68. package/.chunks/utils-BwiXsV0S.esm.js.map +1 -0
  69. package/.chunks/utils-Dd0MZgyw.amd.js +2 -0
  70. package/.chunks/utils-Dd0MZgyw.amd.js.map +1 -0
  71. package/.chunks/utils-Dd0MZgyw.esm.js +287 -0
  72. package/.chunks/utils-Dd0MZgyw.esm.js.map +1 -0
  73. package/.chunks/worker-Db8YrEHo.amd.js +2 -0
  74. package/.chunks/worker-Db8YrEHo.amd.js.map +1 -0
  75. package/.chunks/worker-Db8YrEHo.esm.js +100 -0
  76. package/.chunks/worker-Db8YrEHo.esm.js.map +1 -0
  77. package/api/additional.amd.js +2 -2
  78. package/api/additional.amd.js.map +1 -1
  79. package/api/additional.d.ts +1 -0
  80. package/api/additional.js +70 -66
  81. package/api/additional.js.map +1 -1
  82. package/api/index.amd.js +2 -2
  83. package/api/index.amd.js.map +1 -1
  84. package/api/index.d.ts +1 -0
  85. package/api/index.js +3 -285
  86. package/assets/charts.css +1 -1
  87. package/assets/core.css +1 -1
  88. package/assets/dialog_regionSelectorRegions.css +1 -1
  89. package/assets/extra.css +1 -1
  90. package/assets/forms.css +1 -1
  91. package/assets/formsExt.css +1 -0
  92. package/assets/layout.css +1 -1
  93. package/assets/notice.css +1 -1
  94. package/assets/popup.css +1 -0
  95. package/assets/project.css +1 -1
  96. package/assets/tabs.css +1 -1
  97. package/assets/tabsView.css +1 -1
  98. package/assets/themes/dark-th.css +1 -1
  99. package/assets/themes/dark.css +1 -1
  100. package/assets/themes/light.css +1 -1
  101. package/autoload-css-manifest.amd.json +79 -0
  102. package/autoload-css-manifest.json +90 -0
  103. package/charts/charts.amd.js +2 -2
  104. package/charts/charts.amd.js.map +1 -1
  105. package/charts/charts.d.ts +1 -0
  106. package/charts/charts.js +146 -174
  107. package/charts/charts.js.map +1 -1
  108. package/core/app.amd.js +2 -2
  109. package/core/app.amd.js.map +1 -1
  110. package/core/app.d.ts +1 -0
  111. package/core/app.js +5 -213
  112. package/dialog/dialog.amd.js +2 -2
  113. package/dialog/dialog.amd.js.map +1 -1
  114. package/dialog/dialog.d.ts +1 -0
  115. package/dialog/dialog.js +4 -60
  116. package/extra/extra.amd.js +2 -2
  117. package/extra/extra.amd.js.map +1 -1
  118. package/extra/extra.d.ts +1 -0
  119. package/extra/extra.js +73 -69
  120. package/extra/extra.js.map +1 -1
  121. package/forms/forms.amd.js +2 -2
  122. package/forms/forms.amd.js.map +1 -1
  123. package/forms/forms.d.ts +1 -0
  124. package/forms/forms.js +2 -19
  125. package/forms/helpers.amd.js +2 -2
  126. package/forms/helpers.amd.js.map +1 -1
  127. package/forms/helpers.js +0 -2
  128. package/formsExt/formsExt.amd.js +2 -2
  129. package/formsExt/formsExt.amd.js.map +1 -1
  130. package/formsExt/formsExt.d.ts +1 -0
  131. package/formsExt/formsExt.js +2 -373
  132. package/icomoon/Topvisor icons.json +259 -231
  133. package/icomoon/demo-files/demo.amd.js +2 -0
  134. package/icomoon/demo-files/demo.amd.js.map +1 -0
  135. package/icomoon/demo.amd.js +2 -0
  136. package/icomoon/demo.amd.js.map +1 -0
  137. package/icomoon/demo.html +15 -1
  138. package/icomoon/fonts/Topvisor-2.eot +0 -0
  139. package/icomoon/fonts/Topvisor-2.svg +1 -0
  140. package/icomoon/fonts/Topvisor-2.ttf +0 -0
  141. package/icomoon/fonts/Topvisor-2.woff +0 -0
  142. package/icomoon/selection.json +1 -1
  143. package/icomoon/style.css +8 -5
  144. package/layout/layout.amd.js +2 -2
  145. package/layout/layout.amd.js.map +1 -1
  146. package/layout/layout.d.ts +1 -0
  147. package/layout/layout.js +41 -57
  148. package/layout/layout.js.map +1 -1
  149. package/package.json +1 -1
  150. package/popup/popup.amd.js +2 -2
  151. package/popup/popup.amd.js.map +1 -1
  152. package/popup/popup.d.ts +1 -0
  153. package/popup/popup.js +2 -282
  154. package/popup/worker.amd.js +2 -2
  155. package/popup/worker.amd.js.map +1 -1
  156. package/popup/worker.d.ts +1 -0
  157. package/popup/worker.js +2 -144
  158. package/project/project.amd.js +2 -2
  159. package/project/project.amd.js.map +1 -1
  160. package/project/project.d.ts +1 -0
  161. package/project/project.js +1678 -1643
  162. package/project/project.js.map +1 -1
  163. package/src/{src/components → components}/charts/miniCharts/miniCharts.d.ts +1 -1
  164. package/src/{src/components → components}/core/notice/item/types.d.ts +1 -1
  165. package/src/{src/components → components}/core/notice/utils.d.ts +1 -1
  166. package/src/{src/components → components}/dialog/dialog/composables/dialogHandle.d.ts +1 -1
  167. package/src/{src/components → components}/dialog/dialog/dialogs/dialogs.vue.d.ts +2 -2
  168. package/src/{src/components → components}/dialog/dialog/stories/dialog_example/pages/utils.d.ts +1 -1
  169. package/src/components/dialog/dialog.d.ts +6 -0
  170. package/src/{src/components → components}/dialog/lib/worker.d.ts +1 -1
  171. package/src/{src/components → components}/forms/button/types.d.ts +1 -1
  172. package/src/{src/components → components}/forms/input/types.d.ts +1 -1
  173. package/src/components/forms/inputDate/types.d.ts +1 -0
  174. package/src/{src/components → components}/forms/select/types.d.ts +1 -1
  175. package/src/{src/components → components}/formsExt/editArea/types.d.ts +1 -1
  176. package/src/{src/components → components}/formsExt/editInput/types.d.ts +2 -2
  177. package/src/{src/components → components}/formsExt/libs/optionGroup/types.d.ts +1 -1
  178. package/src/{src/components → components}/formsExt/menu/types.d.ts +1 -1
  179. package/src/{src/components → components}/formsExt/policy/policy.vue.d.ts +1 -1
  180. package/src/{src/components → components}/formsExt/selector2/types.d.ts +3 -3
  181. package/src/{src/components → components}/popup/lib/popup.d.ts +2 -2
  182. package/src/{src/components → components}/popup/lib/worker.d.ts +2 -2
  183. package/src/{src/components → components}/popup/popup/popup.vue.d.ts +1 -1
  184. package/src/{src/components → components}/popup/popup/widgetInput/widgetInput.vue.d.ts +1 -1
  185. package/src/{src/components → components}/popup/popupConfirm/popupConfirm.vue.d.ts +1 -1
  186. package/src/{src/components → components}/project/competitorSelector/composables.d.ts +1 -1
  187. package/src/{src/components → components}/project/competitorSelector/types.d.ts +1 -1
  188. package/src/{src/components → components}/project/groupSelector/folders/types.d.ts +2 -2
  189. package/src/components/project/groupSelector/folders/utils.d.ts +57 -0
  190. package/src/{src/components → components}/project/groupSelector/groups/groups.vue.d.ts +1 -1
  191. package/src/{src/components → components}/project/groupSelector/groups/types.d.ts +2 -2
  192. package/src/components/project/groupSelector/groups/utils.d.ts +78 -0
  193. package/src/{src/components → components}/project/groupSelector/stories/mocks/index.d.ts +1 -1
  194. package/src/{src/components → components}/project/projectSelector/cache.d.ts +1 -1
  195. package/src/{src/components → components}/project/projectSelector/projectSelector.vue.d.ts +1 -1
  196. package/src/{src/components → components}/project/projectSelector/types.d.ts +2 -2
  197. package/src/{src/components → components}/project/projectSelector/utils.d.ts +41 -40
  198. package/src/{src/components → components}/project/regionSelector/composables/selectRegion.d.ts +1 -1
  199. package/src/{src/components → components}/project/regionSelector/composables/selectSearcher.d.ts +1 -1
  200. package/src/{src/components → components}/project/regionSelector/dialog_regionSelectorRegions/types.d.ts +1 -1
  201. package/src/{src/components → components}/project/tagSelector/popupOpener/types.d.ts +1 -1
  202. package/src/{src/components → components}/project/tagSelector/types.d.ts +1 -1
  203. package/src/{src/components → components}/project/tagSelector/utils/el.d.ts +1 -1
  204. package/src/{src/components → components}/tabsView/tabsView/store.d.ts +1 -1
  205. package/src/{src/core → core}/app.d.ts +2 -2
  206. package/src/{src/core → core}/core/core.d.ts +3 -3
  207. package/src/{src/core → core}/plugins/core.d.ts +6 -6
  208. package/src/{src/core → core}/utils/price.d.ts +2 -2
  209. package/src/core/utils/store.d.ts +6 -0
  210. package/tabs/tabs.amd.js +2 -2
  211. package/tabs/tabs.amd.js.map +1 -1
  212. package/tabs/tabs.d.ts +1 -0
  213. package/tabs/tabs.js +63 -77
  214. package/tabs/tabs.js.map +1 -1
  215. package/tabsView/tabsView.amd.js +2 -2
  216. package/tabsView/tabsView.amd.js.map +1 -1
  217. package/tabsView/tabsView.d.ts +1 -0
  218. package/tabsView/tabsView.js +245 -288
  219. package/tabsView/tabsView.js.map +1 -1
  220. package/utils/check.amd.js +2 -2
  221. package/utils/check.amd.js.map +1 -1
  222. package/utils/check.d.ts +1 -0
  223. package/utils/check.js +15 -19
  224. package/utils/check.js.map +1 -1
  225. package/utils/clipboard.amd.js +6 -6
  226. package/utils/clipboard.amd.js.map +1 -1
  227. package/utils/clipboard.d.ts +1 -0
  228. package/utils/clipboard.js +26 -31
  229. package/utils/clipboard.js.map +1 -1
  230. package/utils/date.amd.js +2 -2
  231. package/utils/date.amd.js.map +1 -1
  232. package/utils/date.d.ts +1 -0
  233. package/utils/date.js +2 -12
  234. package/utils/device.amd.js +2 -2
  235. package/utils/device.amd.js.map +1 -1
  236. package/utils/device.d.ts +1 -0
  237. package/utils/device.js +2 -15
  238. package/utils/dom.amd.js +2 -2
  239. package/utils/dom.amd.js.map +1 -1
  240. package/utils/dom.d.ts +5 -0
  241. package/utils/dom.js +53 -67
  242. package/utils/dom.js.map +1 -1
  243. package/utils/image.amd.js +3 -3
  244. package/utils/image.amd.js.map +1 -1
  245. package/utils/image.d.ts +1 -0
  246. package/utils/image.js +12 -22
  247. package/utils/image.js.map +1 -1
  248. package/utils/keyboard.amd.js +2 -2
  249. package/utils/keyboard.amd.js.map +1 -1
  250. package/utils/keyboard.d.ts +1 -0
  251. package/utils/keyboard.js +10 -11
  252. package/utils/keyboard.js.map +1 -1
  253. package/utils/lodash.amd.js +2 -2
  254. package/utils/lodash.amd.js.map +1 -1
  255. package/utils/lodash.d.ts +1 -0
  256. package/utils/lodash.js +2 -9
  257. package/utils/number.amd.js +2 -2
  258. package/utils/number.amd.js.map +1 -1
  259. package/utils/number.d.ts +1 -0
  260. package/utils/number.js +12 -12
  261. package/utils/number.js.map +1 -1
  262. package/utils/price.amd.js +2 -2
  263. package/utils/price.amd.js.map +1 -1
  264. package/utils/price.d.ts +1 -0
  265. package/utils/price.js +14 -9
  266. package/utils/price.js.map +1 -1
  267. package/utils/route.amd.js +2 -2
  268. package/utils/route.amd.js.map +1 -1
  269. package/utils/route.d.ts +1 -0
  270. package/utils/route.js +33 -37
  271. package/utils/route.js.map +1 -1
  272. package/utils/scroll.amd.js +2 -2
  273. package/utils/scroll.amd.js.map +1 -1
  274. package/utils/scroll.d.ts +1 -0
  275. package/utils/scroll.js +39 -43
  276. package/utils/scroll.js.map +1 -1
  277. package/utils/searchers.amd.js +2 -2
  278. package/utils/searchers.amd.js.map +1 -1
  279. package/utils/searchers.d.ts +1 -0
  280. package/utils/searchers.js +128 -133
  281. package/utils/searchers.js.map +1 -1
  282. package/utils/store.amd.js +2 -2
  283. package/utils/store.amd.js.map +1 -1
  284. package/utils/store.d.ts +1 -0
  285. package/utils/store.js +2 -7
  286. package/utils/string.amd.js +2 -2
  287. package/utils/string.amd.js.map +1 -1
  288. package/utils/string.d.ts +1 -0
  289. package/utils/string.js +120 -147
  290. package/utils/string.js.map +1 -1
  291. package/utils/system.amd.js +2 -2
  292. package/utils/system.amd.js.map +1 -1
  293. package/utils/system.d.ts +1 -0
  294. package/utils/system.js +25 -28
  295. package/utils/system.js.map +1 -1
  296. package/utils/url.amd.js +3 -3
  297. package/utils/url.amd.js.map +1 -1
  298. package/utils/url.d.ts +1 -0
  299. package/utils/url.js +36 -47
  300. package/utils/url.js.map +1 -1
  301. package/.chunks/core-Dgj_YGWh.es.js +0 -268
  302. package/.chunks/core-Dgj_YGWh.es.js.map +0 -1
  303. package/.chunks/core-DzDFXOdI.amd.js +0 -2
  304. package/.chunks/core-DzDFXOdI.amd.js.map +0 -1
  305. package/.chunks/datepicker-oa8ZwRhq.amd.js +0 -2
  306. package/.chunks/datepicker-oa8ZwRhq.amd.js.map +0 -1
  307. package/.chunks/datepicker-qToxk2nN.es.js +0 -41
  308. package/.chunks/datepicker-qToxk2nN.es.js.map +0 -1
  309. package/.chunks/dialog_regionSelectorRegions-CZ0tMVSq.amd.js +0 -2
  310. package/.chunks/dialog_regionSelectorRegions-CZ0tMVSq.amd.js.map +0 -1
  311. package/.chunks/dialog_regionSelectorRegions-qDW2Ejsv.es.js +0 -180
  312. package/.chunks/dialog_regionSelectorRegions-qDW2Ejsv.es.js.map +0 -1
  313. package/.chunks/dialogs.vue_vue_type_script_setup_true_lang-BBix_8WK.amd.js +0 -2
  314. package/.chunks/dialogs.vue_vue_type_script_setup_true_lang-BBix_8WK.amd.js.map +0 -1
  315. package/.chunks/dialogs.vue_vue_type_script_setup_true_lang-CJ97l1ST.es.js +0 -323
  316. package/.chunks/dialogs.vue_vue_type_script_setup_true_lang-CJ97l1ST.es.js.map +0 -1
  317. package/.chunks/field-Cvv0SRcJ.amd.js +0 -2
  318. package/.chunks/field-Cvv0SRcJ.amd.js.map +0 -1
  319. package/.chunks/field-CyyFzM-Y.es.js +0 -16
  320. package/.chunks/field-CyyFzM-Y.es.js.map +0 -1
  321. package/.chunks/forms-DDNzqU6o.amd.js +0 -3
  322. package/.chunks/forms-DDNzqU6o.amd.js.map +0 -1
  323. package/.chunks/forms-DtC-EKJL.es.js +0 -2053
  324. package/.chunks/forms-DtC-EKJL.es.js.map +0 -1
  325. package/.chunks/index-DLUtoTUg.amd.js +0 -2
  326. package/.chunks/index-DLUtoTUg.amd.js.map +0 -1
  327. package/.chunks/index-DkQWJkMc.es.js +0 -54
  328. package/.chunks/index-DkQWJkMc.es.js.map +0 -1
  329. package/.chunks/lazy-DDNqYkXn.amd.js +0 -2
  330. package/.chunks/lazy-DDNqYkXn.amd.js.map +0 -1
  331. package/.chunks/lazy-HKSyLh72.es.js +0 -75
  332. package/.chunks/lazy-HKSyLh72.es.js.map +0 -1
  333. package/.chunks/notice-BvQl911b.es.js +0 -191
  334. package/.chunks/notice-BvQl911b.es.js.map +0 -1
  335. package/.chunks/notice-CJ3WOTCM.amd.js +0 -4
  336. package/.chunks/notice-CJ3WOTCM.amd.js.map +0 -1
  337. package/.chunks/page.vue_vue_type_script_setup_true_lang-Dd5-B4Ss.es.js +0 -139
  338. package/.chunks/page.vue_vue_type_script_setup_true_lang-Dd5-B4Ss.es.js.map +0 -1
  339. package/.chunks/page.vue_vue_type_script_setup_true_lang-fl6-Ql4d.amd.js +0 -2
  340. package/.chunks/page.vue_vue_type_script_setup_true_lang-fl6-Ql4d.amd.js.map +0 -1
  341. package/.chunks/policy.vue_vue_type_style_index_0_lang-Bv3LwNDC.es.js +0 -519
  342. package/.chunks/policy.vue_vue_type_style_index_0_lang-Bv3LwNDC.es.js.map +0 -1
  343. package/.chunks/policy.vue_vue_type_style_index_0_lang-Da7rztT5.amd.js +0 -2
  344. package/.chunks/policy.vue_vue_type_style_index_0_lang-Da7rztT5.amd.js.map +0 -1
  345. package/.chunks/popup-OuDglAOF.es.js +0 -470
  346. package/.chunks/popup-OuDglAOF.es.js.map +0 -1
  347. package/.chunks/popup-yXIpyok3.amd.js +0 -2
  348. package/.chunks/popup-yXIpyok3.amd.js.map +0 -1
  349. package/.chunks/popupHint.vue_vue_type_style_index_0_lang-Bu_HvFoW.amd.js +0 -2
  350. package/.chunks/popupHint.vue_vue_type_style_index_0_lang-Bu_HvFoW.amd.js.map +0 -1
  351. package/.chunks/popupHint.vue_vue_type_style_index_0_lang-DAQIAxvu.es.js +0 -209
  352. package/.chunks/popupHint.vue_vue_type_style_index_0_lang-DAQIAxvu.es.js.map +0 -1
  353. package/.chunks/punycode.es6-CNOnFR2-.amd.js +0 -2
  354. package/.chunks/punycode.es6-CNOnFR2-.amd.js.map +0 -1
  355. package/.chunks/punycode.es6-CgGegfA_.es.js +0 -134
  356. package/.chunks/store-CX_6ZXhO.es.js +0 -29
  357. package/.chunks/store-CX_6ZXhO.es.js.map +0 -1
  358. package/.chunks/store-YRW59xEF.amd.js +0 -2
  359. package/.chunks/store-YRW59xEF.amd.js.map +0 -1
  360. package/.chunks/utils-BNzP9anP.es.js +0 -78
  361. package/.chunks/utils-CWn_G7OO.amd.js +0 -2
  362. package/.chunks/utils-CWn_G7OO.amd.js.map +0 -1
  363. package/.chunks/utils-DIviuVEw.amd.js +0 -2
  364. package/.chunks/utils-DIviuVEw.amd.js.map +0 -1
  365. package/.chunks/utils-Dma85ehT.es.js +0 -288
  366. package/.chunks/utils-Dma85ehT.es.js.map +0 -1
  367. package/.chunks/widgetInput.vue_vue_type_script_setup_true_lang-CX_BOcVY.es.js +0 -39
  368. package/.chunks/widgetInput.vue_vue_type_script_setup_true_lang-CX_BOcVY.es.js.map +0 -1
  369. package/.chunks/widgetInput.vue_vue_type_script_setup_true_lang-CkOmb3VD.amd.js +0 -2
  370. package/.chunks/widgetInput.vue_vue_type_script_setup_true_lang-CkOmb3VD.amd.js.map +0 -1
  371. package/api/index.js.map +0 -1
  372. package/assets/policy.css +0 -1
  373. package/assets/popupHint.css +0 -1
  374. package/core/app.js.map +0 -1
  375. package/dialog/dialog.js.map +0 -1
  376. package/forms/forms.js.map +0 -1
  377. package/forms/helpers.js.map +0 -1
  378. package/formsExt/formsExt.js.map +0 -1
  379. package/popup/popup.js.map +0 -1
  380. package/popup/worker.js.map +0 -1
  381. package/src/src/components/dialog/dialog.d.ts +0 -6
  382. package/src/src/components/forms/inputDate/types.d.ts +0 -1
  383. package/src/src/components/project/groupSelector/folders/utils.d.ts +0 -422
  384. package/src/src/components/project/groupSelector/groups/utils.d.ts +0 -791
  385. package/src/src/components/project/groupSelector/utils.d.ts +0 -37
  386. package/src/src/core/utils/store.d.ts +0 -6
  387. package/utils/date.js.map +0 -1
  388. package/utils/device.js.map +0 -1
  389. package/utils/lodash.js.map +0 -1
  390. package/utils/store.js.map +0 -1
  391. package/src/{src/api → api}/api/additional.d.ts +0 -0
  392. package/src/{src/api → api}/api/client/client.d.ts +0 -0
  393. package/src/{src/api → api}/api/client/request-options.d.ts +0 -0
  394. package/src/{src/api → api}/api/client/request.d.ts +0 -0
  395. package/src/{src/api → api}/api/index.d.ts +0 -0
  396. package/src/{src/api → api}/api/mocker/index.d.ts +0 -0
  397. package/src/{src/api → api}/api/tests/types.test-d.d.ts +0 -0
  398. package/src/{src/api → api}/api/types/api.d.ts +0 -0
  399. package/src/{src/api → api}/api/types/client/client.d.ts +0 -0
  400. package/src/{src/api → api}/api/types/client/middleware.d.ts +0 -0
  401. package/src/{src/api → api}/api/types/client/options.d.ts +0 -0
  402. package/src/{src/api → api}/api/types/client/request-context.d.ts +0 -0
  403. package/src/{src/api → api}/api/types/client/request-options.d.ts +0 -0
  404. package/src/{src/api → api}/api/types/client/request.d.ts +0 -0
  405. package/src/{src/api → api}/api/types/ext.d.ts +0 -0
  406. package/src/{src/api → api}/api/types/field.d.ts +0 -0
  407. package/src/{src/api → api}/api/types/index.d.ts +0 -0
  408. package/src/{src/api → api}/api/types/mocker.d.ts +0 -0
  409. package/src/{src/api → api}/api/types/schema.d.ts +0 -0
  410. package/src/{src/api → api}/api/types/tv.d.ts +0 -0
  411. package/src/{src/api → api}/api/types/utils.d.ts +0 -0
  412. package/src/{src/api → api}/api/utils/common.d.ts +0 -0
  413. package/src/{src/api → api}/api/utils/field.d.ts +0 -0
  414. package/src/{src/api → api}/api/utils/filters.d.ts +0 -0
  415. package/src/{src/api → api}/api/utils/lazy.d.ts +0 -0
  416. package/src/{src/components → components}/charts/charts.d.ts +0 -0
  417. package/src/{src/components → components}/charts/miniChart/miniChart.vue.d.ts +0 -0
  418. package/src/{src/components → components}/charts/miniChart/types.d.ts +0 -0
  419. package/src/{src/components → components}/charts/miniChart/utils/consts.d.ts +0 -0
  420. package/src/{src/components → components}/charts/miniCharts/miniCharts.vue.d.ts +0 -0
  421. package/src/{src/components → components}/core/notice/item/item.vue.d.ts +0 -0
  422. package/src/{src/components → components}/core/notice/notice.vue.d.ts +0 -0
  423. package/src/{src/components → components}/core/notice/types.d.ts +0 -0
  424. package/src/{src/components → components}/dialog/dialog/composables/asyncDialogHandle.d.ts +0 -0
  425. package/src/{src/components → components}/dialog/dialog/composables/types.d.ts +0 -0
  426. package/src/{src/components → components}/dialog/dialog/composables/utils.d.ts +0 -0
  427. package/src/{src/components → components}/dialog/dialog/dialog.vue.d.ts +0 -0
  428. package/src/{src/components → components}/dialog/dialog/page/page.vue.d.ts +0 -0
  429. package/src/{src/components → components}/dialog/dialog/page/types.d.ts +0 -0
  430. package/src/{src/components → components}/dialog/dialog/pageComponent/pageComponent.vue.d.ts +0 -0
  431. package/src/{src/components → components}/dialog/dialog/pageComponent/types.d.ts +0 -0
  432. package/src/{src/components → components}/dialog/dialog/types.d.ts +0 -0
  433. package/src/{src/components → components}/dialog/lib/types.d.ts +0 -0
  434. package/src/{src/components → components}/dialog/lib/utils.d.ts +0 -0
  435. package/src/{src/components → components}/dialog/lib/utils.globalEvents.d.ts +0 -0
  436. package/src/{src/components → components}/extra/extra.d.ts +0 -0
  437. package/src/{src/components → components}/extra/rive/rive.vue.d.ts +0 -0
  438. package/src/{src/components → components}/extra/rive/types.d.ts +0 -0
  439. package/src/{src/components → components}/forms/avatar/avatar.vue.d.ts +0 -0
  440. package/src/{src/components → components}/forms/avatar/types.d.ts +0 -0
  441. package/src/{src/components → components}/forms/button/button.vue.d.ts +0 -0
  442. package/src/{src/components → components}/forms/caption/caption.vue.d.ts +0 -0
  443. package/src/{src/components → components}/forms/caption/types.d.ts +0 -0
  444. package/src/{src/components → components}/forms/checkbox/checkbox.vue.d.ts +0 -0
  445. package/src/{src/components → components}/forms/checkbox/types.d.ts +0 -0
  446. package/src/{src/components → components}/forms/controlLabel/controlLabel.vue.d.ts +0 -0
  447. package/src/{src/components → components}/forms/controlLabel/types.d.ts +0 -0
  448. package/src/{src/components → components}/forms/forms.d.ts +0 -0
  449. package/src/{src/components → components}/forms/helpers.d.ts +0 -0
  450. package/src/{src/components → components}/forms/hint/hint.vue.d.ts +0 -0
  451. package/src/{src/components → components}/forms/hint/types.d.ts +0 -0
  452. package/src/{src/components → components}/forms/input/input.vue.d.ts +0 -0
  453. package/src/{src/components → components}/forms/inputDate/datepicker.d.ts +0 -0
  454. package/src/{src/components → components}/forms/inputDate/inputDate.vue.d.ts +0 -0
  455. package/src/{src/components → components}/forms/inputRange/inputRange.vue.d.ts +0 -0
  456. package/src/{src/components → components}/forms/inputRange/types.d.ts +0 -0
  457. package/src/{src/components → components}/forms/loadbar/loadbar.vue.d.ts +0 -0
  458. package/src/{src/components → components}/forms/preloader/preloader.vue.d.ts +0 -0
  459. package/src/{src/components → components}/forms/preloader/types.d.ts +0 -0
  460. package/src/{src/components → components}/forms/radio/radio.vue.d.ts +0 -0
  461. package/src/{src/components → components}/forms/radio/types.d.ts +0 -0
  462. package/src/{src/components → components}/forms/select/select.vue.d.ts +0 -0
  463. package/src/{src/components → components}/forms/switcher/switcher.vue.d.ts +0 -0
  464. package/src/{src/components → components}/forms/switcher/types.d.ts +0 -0
  465. package/src/{src/components → components}/forms/textarea/textarea.vue.d.ts +0 -0
  466. package/src/{src/components → components}/forms/textarea/types.d.ts +0 -0
  467. package/src/{src/components → components}/formsExt/checkboxGroup/checkboxGroup.vue.d.ts +0 -0
  468. package/src/{src/components → components}/formsExt/checkboxGroup/types.d.ts +0 -0
  469. package/src/{src/components → components}/formsExt/editArea/editArea.vue.d.ts +0 -0
  470. package/src/{src/components → components}/formsExt/editInput/editInput.vue.d.ts +0 -0
  471. package/src/{src/components → components}/formsExt/formsExt.d.ts +0 -0
  472. package/src/{src/components → components}/formsExt/info/info.vue.d.ts +0 -0
  473. package/src/{src/components → components}/formsExt/info/types.d.ts +0 -0
  474. package/src/{src/components → components}/formsExt/libs/optionGroup/optionGroup.vue.d.ts +0 -0
  475. package/src/{src/components → components}/formsExt/menu/menu.vue.d.ts +0 -0
  476. package/src/{src/components → components}/formsExt/policy/types.d.ts +0 -0
  477. package/src/{src/components → components}/formsExt/radioGroup/radioGroup.vue.d.ts +0 -0
  478. package/src/{src/components → components}/formsExt/radioGroup/types.d.ts +0 -0
  479. package/src/{src/components → components}/formsExt/selector2/cache.d.ts +0 -0
  480. package/src/{src/components → components}/formsExt/selector2/composables/useAPI.d.ts +0 -0
  481. package/src/{src/components → components}/formsExt/selector2/composables/useMenu.d.ts +0 -0
  482. package/src/{src/components → components}/formsExt/selector2/itemMulti.vue.d.ts +0 -0
  483. package/src/{src/components → components}/formsExt/selector2/selector2.vue.d.ts +0 -0
  484. package/src/{src/components → components}/formsExt/selector2/utils.d.ts +0 -0
  485. package/src/{src/components → components}/layout/islandRows/islandRows.vue.d.ts +0 -0
  486. package/src/{src/components → components}/layout/islandRows/islandRowsRow/islandRowsRow.vue.d.ts +0 -0
  487. package/src/{src/components → components}/layout/islandRows/islandRowsRow/types.d.ts +0 -0
  488. package/src/{src/components → components}/layout/islandRows/islandRowsSubTitle/islandRowsSubTitle.vue.d.ts +0 -0
  489. package/src/{src/components → components}/layout/islandRows/types.d.ts +0 -0
  490. package/src/{src/components → components}/layout/layout.d.ts +0 -0
  491. package/src/{src/components → components}/layout/rows/rows.vue.d.ts +0 -0
  492. package/src/{src/components → components}/layout/rows/types.d.ts +0 -0
  493. package/src/{src/components → components}/popup/lib/popup.globalEvents.d.ts +0 -0
  494. package/src/{src/components → components}/popup/lib/worker.globalEvents.d.ts +0 -0
  495. package/src/{src/components → components}/popup/popup/listItem.vue.d.ts +0 -0
  496. package/src/{src/components → components}/popup/popup/opener/opener.vue.d.ts +0 -0
  497. package/src/{src/components → components}/popup/popup/opener/types.d.ts +0 -0
  498. package/src/{src/components → components}/popup/popup/types.d.ts +0 -0
  499. package/src/{src/components → components}/popup/popup.d.ts +0 -0
  500. package/src/{src/components → components}/popup/popupAlert/popupAlert.vue.d.ts +0 -0
  501. package/src/{src/components → components}/popup/popupAlert/types.d.ts +0 -0
  502. package/src/{src/components → components}/popup/popupConfirm/types.d.ts +0 -0
  503. package/src/{src/components → components}/popup/popupHint/popupHint.vue.d.ts +0 -0
  504. package/src/{src/components → components}/popup/popupHint/types.d.ts +0 -0
  505. package/src/{src/components → components}/popup/popupPrompt/popupPrompt.vue.d.ts +0 -0
  506. package/src/{src/components → components}/popup/popupPrompt/types.d.ts +0 -0
  507. package/src/{src/components → components}/popup/worker.d.ts +0 -0
  508. package/src/{src/components → components}/project/competitorSelector/competitorSelector.vue.d.ts +0 -0
  509. package/src/{src/components → components}/project/groupSelector/folders/folders.vue.d.ts +0 -0
  510. package/src/{src/components → components}/project/groupSelector/groupSelector.vue.d.ts +1 -1
  511. /package/src/{src/components → components}/project/groupSelector/stories/mocks/folders.d.ts +0 -0
  512. /package/src/{src/components → components}/project/groupSelector/stories/mocks/groups.d.ts +0 -0
  513. /package/src/{src/components → components}/project/groupSelector/types.d.ts +0 -0
  514. /package/src/{src/components → components}/project/project.d.ts +0 -0
  515. /package/src/{src/components → components}/project/projectSelector/submenu/submenu.vue.d.ts +0 -0
  516. /package/src/{src/components → components}/project/projectSelector/submenu/types.d.ts +0 -0
  517. /package/src/{src/components → components}/project/regionSelector/composables/compare.d.ts +0 -0
  518. /package/src/{src/components → components}/project/regionSelector/composables/selectorRegion.d.ts +0 -0
  519. /package/src/{src/components → components}/project/regionSelector/dialog_regionSelectorRegions/dialog_regionSelectorRegions.vue.d.ts +0 -0
  520. /package/src/{src/components → components}/project/regionSelector/regionSelector.vue.d.ts +0 -0
  521. /package/src/{src/components → components}/project/regionSelector/types.d.ts +0 -0
  522. /package/src/{src/components → components}/project/regionSelector/utils/consts.d.ts +0 -0
  523. /package/src/{src/components → components}/project/regionSelector/utils/utils.d.ts +0 -0
  524. /package/src/{src/components → components}/project/tagSelector/popupListItem/tagPopupListItem.vue.d.ts +0 -0
  525. /package/src/{src/components → components}/project/tagSelector/popupListItem/types.d.ts +0 -0
  526. /package/src/{src/components → components}/project/tagSelector/popupOpener/popupOpener.vue.d.ts +0 -0
  527. /package/src/{src/components → components}/project/tagSelector/tagIcon/tagIcon.vue.d.ts +0 -0
  528. /package/src/{src/components → components}/project/tagSelector/tagIcon/types.d.ts +0 -0
  529. /package/src/{src/components → components}/project/tagSelector/tagSelector.vue.d.ts +0 -0
  530. /package/src/{src/components → components}/project/tagSelector/tagsDefaults.d.ts +0 -0
  531. /package/src/{src/components → components}/project/tagSelector/utils/utils.d.ts +0 -0
  532. /package/src/{src/components → components}/tabs/tabs/content.vue.d.ts +0 -0
  533. /package/src/{src/components → components}/tabs/tabs/tab.vue.d.ts +0 -0
  534. /package/src/{src/components → components}/tabs/tabs/tabs.vue.d.ts +0 -0
  535. /package/src/{src/components → components}/tabs/tabs/types.d.ts +0 -0
  536. /package/src/{src/components → components}/tabs/tabs.d.ts +0 -0
  537. /package/src/{src/components → components}/tabsView/tabsView/menu.vue.d.ts +0 -0
  538. /package/src/{src/components → components}/tabsView/tabsView/menuDelimeter.vue.d.ts +0 -0
  539. /package/src/{src/components → components}/tabsView/tabsView/menuItem.vue.d.ts +0 -0
  540. /package/src/{src/components → components}/tabsView/tabsView/menuTitle.vue.d.ts +0 -0
  541. /package/src/{src/components → components}/tabsView/tabsView/tabsView.vue.d.ts +0 -0
  542. /package/src/{src/components → components}/tabsView/tabsView/types.d.ts +0 -0
  543. /package/src/{src/components → components}/tabsView/tabsView/utils.d.ts +0 -0
  544. /package/src/{src/components → components}/tabsView/tabsView.d.ts +0 -0
  545. /package/src/{src/core → core}/core/events/resize.d.ts +0 -0
  546. /package/src/{src/core → core}/core/events.d.ts +0 -0
  547. /package/src/{src/core → core}/core/options.d.ts +0 -0
  548. /package/src/{src/core → core}/core/preloaders.d.ts +0 -0
  549. /package/src/{src/core → core}/core/state.d.ts +0 -0
  550. /package/src/{src/core → core}/directives/data.d.ts +0 -0
  551. /package/src/{src/core → core}/directives/focus.d.ts +0 -0
  552. /package/src/{src/core → core}/directives/preloader.d.ts +0 -0
  553. /package/src/{src/core → core}/directives/scrollIntoView.d.ts +0 -0
  554. /package/src/{src/core → core}/directives/scrollShadow.d.ts +0 -0
  555. /package/src/{src/core → core}/directives/shortcut.d.ts +0 -0
  556. /package/src/{src/core → core}/directives/sticky.d.ts +0 -0
  557. /package/src/{src/core → core}/directives/swimUp.d.ts +0 -0
  558. /package/src/{src/core → core}/directives/tooltip.d.ts +0 -0
  559. /package/src/{src/core → core}/plugins/i18n.d.ts +0 -0
  560. /package/src/{src/core → core}/plugins/piniaTPA.d.ts +0 -0
  561. /package/src/{src/core → core}/utils/check.d.ts +0 -0
  562. /package/src/{src/core → core}/utils/clipboard.d.ts +0 -0
  563. /package/src/{src/core → core}/utils/composables/useWatch.d.ts +0 -0
  564. /package/src/{src/core → core}/utils/date.d.ts +0 -0
  565. /package/src/{src/core → core}/utils/device.d.ts +0 -0
  566. /package/src/{src/core → core}/utils/dom.d.ts +0 -0
  567. /package/src/{src/core → core}/utils/image.d.ts +0 -0
  568. /package/src/{src/core → core}/utils/keyboard.d.ts +0 -0
  569. /package/src/{src/core → core}/utils/lodash.d.ts +0 -0
  570. /package/src/{src/core → core}/utils/number.d.ts +0 -0
  571. /package/src/{src/core → core}/utils/route.d.ts +0 -0
  572. /package/src/{src/core → core}/utils/scroll.d.ts +0 -0
  573. /package/src/{src/core → core}/utils/searchers.d.ts +0 -0
  574. /package/src/{src/core → core}/utils/store/localStorage.d.ts +0 -0
  575. /package/src/{src/core → core}/utils/store/plugin.d.ts +0 -0
  576. /package/src/{src/core → core}/utils/store/store.d.ts +0 -0
  577. /package/src/{src/core → core}/utils/string.d.ts +0 -0
  578. /package/src/{src/core → core}/utils/system.d.ts +0 -0
  579. /package/src/{src/core → core}/utils/tests/date/dateFormat.test.d.ts +0 -0
  580. /package/src/{src/core → core}/utils/url.d.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"additional.js","sources":["../../src/api/api/utils/filters.ts"],"sourcesContent":["import type { components as componentsTagId } from 'topvisor-openapi/src/ts/Tags_2/Types/TagId';\nimport { genFieldFilter } from './field';\n\ntype TagId = componentsTagId['schemas']['Tags_2.Types.TagId'];\ntype TagIdExclude = `-${TagId}`;\n\ntype DataWithModifierOperator<Model> = {\n\t[K in keyof Model]: Model[K] | Model[K][] | Set<Model[K]> | string\n};\n\n/**\n * Модификатор оператора сравнения\n *\n * Используется посредством добавления к строковому значению поля для упрощения синтаксиса указания фильтров\n *\n * @example Поиск вхождения `Иван` в поле `name`\n * genFilters({\n * id: 12345, // без модификатора опертора\n * name: '%:' + 'Иван', // с модификатором опертора\n * });\n */\ntype ModifierOperator = '>=' | '<=' | '!=' | '>' | '<' | '%' | '!%' | '^' | '~' | '!~' | 'null' | '!null';\n\ntype ValueWithModifierOperator = `${ModifierOperator}:${string | number}`;\n\n/**\n * Сгенерировать массив с фильтрами API\n *\n * Ключи - `filedName`, значения - `[ModifierOperator:]fieldValue` / `fieldValues`\n *\n * Значения `undefined` будут пропускаться\n *\n * Додерживает типы:\n *\n * - string, number, boolean - строгое равенство `EQUALS`, если не указан `modifierOperator`\n * - Array - вхождение `IN`\n * - Set<string | number> - вхождение `IN`\n *\n * @see ModifierOperator\n */\nexport const genFilters = <Model extends Api.Ext.Schemas['Model']>(\n\tdataWithModifierOperator: DataWithModifierOperator<Model>,\n): Api.Field.Filter<Model>[] => {\n\tconst filters: Api.Field.Filter<Model>[] = [];\n\n\tObject.keys(dataWithModifierOperator).forEach(_name => {\n\t\tconst name = _name as string & keyof Model;\n\t\tconst value = dataWithModifierOperator[name];\n\t\tif (value === undefined) return;\n\n\t\tlet filter: Api.Field.Filter<Model> | undefined;\n\n\t\tif (name === 'tags_ids' || name === 'tags') {\n\t\t\tpushFilterTagsIds(name, filters, value as any);\n\t\t} else if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {\n\t\t\tfilter = genFilterPrimitive(name, value);\n\t\t} else if (Array.isArray(value) || value instanceof Set) {\n\t\t\tfilter = genFilterIn(name, value as any);\n\t\t}\n\n\t\tif (filter) {\n\t\t\tfilters.push(filter);\n\t\t}\n\t});\n\n\treturn filters;\n};\n\n/**\n * Получить value и operator из valueWithModifierOperator\n */\nconst extractOperator = (valueWithModifierOperator: ValueWithModifierOperator): {\n\tvalue: any,\n\toperator: Api.Ext.Schemas['FieldOperator']\n} => {\n\tlet value: string | number = valueWithModifierOperator;\n\tlet operator: Api.Field.Filter<any>['operator'] = 'EQUALS';\n\n\tlet modifierOperator: ModifierOperator | undefined;\n\tif (valueWithModifierOperator[1] === ':' || valueWithModifierOperator[2] === ':') {\n\t\t[modifierOperator, value] = valueWithModifierOperator.split(':') as [ModifierOperator, string];\n\t}\n\n\tswitch (modifierOperator) {\n\t\tcase '>':\n\t\t\toperator = 'GREATER_THAN';\n\t\t\tvalue = Number(value);\n\n\t\t\tbreak;\n\t\tcase '>=':\n\t\t\toperator = 'GREATER_THAN_EQUALS';\n\t\t\tvalue = Number(value);\n\n\t\t\tbreak;\n\t\tcase '<':\n\t\t\toperator = 'LESS_THAN';\n\t\t\tvalue = Number(value);\n\n\t\t\tbreak;\n\t\tcase '<=':\n\t\t\toperator = 'LESS_THAN_EQUALS';\n\t\t\tvalue = Number(value);\n\n\t\t\tbreak;\n\t\tcase '!=':\n\t\t\toperator = 'NOT_EQUALS';\n\n\t\t\tif (value.match(/^\\d+$/)) value = Number(value);\n\n\t\t\tbreak;\n\t\tcase '%':\n\t\t\toperator = 'CONTAINS';\n\n\t\t\tbreak;\n\t\tcase '!%':\n\t\t\toperator = 'DOES_NOT_CONTAIN';\n\n\t\t\tbreak;\n\t\tcase '^':\n\t\t\toperator = 'STARTS_WITH';\n\n\t\t\tbreak;\n\t\tcase 'null':\n\t\t\toperator = 'IS_NULL';\n\n\t\t\tbreak;\n\t\tcase '!null':\n\t\t\toperator = 'IS_NOT_NULL';\n\n\t\t\tbreak;\n\t\tcase '~':\n\t\t\toperator = 'REGEXP';\n\n\t\t\tbreak;\n\t\tcase '!~':\n\t\t\toperator = 'NOT_REGEXP';\n\n\t\t\tbreak;\n\t}\n\n\treturn { value, operator };\n};\n\n/**\n * Сгенерировать и добавить API фильтр из списка тегов\n */\nexport const pushFilterTagsIds = <\n\tModel extends Api.Ext.Schemas['Model'] = any,\n\tFieldName extends Api.Field.Name<Model> = Api.Field.Name<Model>\n>(\n\tname: FieldName,\n\tfilters: Api.Field.Filter<Model, FieldName>[],\n\ttagsIds: Array<TagId | TagIdExclude>,\n) => {\n\tconst tagsIncluded: Array<Model[FieldName] & TagId> = [];\n\tconst tagsExcluded: Array<Model[FieldName] & TagId> = [];\n\n\ttagsIds.forEach((tagId) => {\n\t\tif (tagId[0] === '-') {\n\t\t\ttagsExcluded.push(tagId.substring(1) as Model[FieldName] & TagId);\n\t\t} else {\n\t\t\ttagsIncluded.push(tagId as Model[FieldName] & TagId);\n\t\t}\n\t});\n\n\tif (tagsIncluded.length) filters.push(genFieldFilter<Model, FieldName>(name, 'IN', tagsIncluded));\n\tif (tagsExcluded.length) filters.push(genFieldFilter<Model, FieldName>(name, 'NOT_IN', tagsExcluded));\n};\n\n/**\n * Сгенерировать API фильтр из простого значения\n */\nexport const genFilterPrimitive = <\n\tModel extends Api.Ext.Schemas['Model'] = any,\n\tFieldName extends Api.Field.Name<Model> = Api.Field.Name<Model>\n>(\n\tname: FieldName,\n\tvalueWithModifierOperator: number | string | boolean | ValueWithModifierOperator,\n) => {\n\tlet value = valueWithModifierOperator;\n\tlet operator: Api.Field.Filter<any>['operator'] = 'EQUALS';\n\n\tif (typeof valueWithModifierOperator === 'string') {\n\t\tlet {} = { value, operator } = extractOperator(valueWithModifierOperator as ValueWithModifierOperator);\n\t}\n\n\t// @deprecated\n\tif (typeof value === 'boolean') {\n\t\tvalue = value ? 1 : 0;\n\t}\n\n\treturn genFieldFilter<Model>(name, operator, [value as any]);\n};\n\n/**\n * Сгенерировать API фильтр IN\n */\nexport const genFilterIn = <\n\tModel extends Api.Ext.Schemas['Model'] = any,\n\tFieldName extends Api.Field.Name<Model> = Api.Field.Name<Model>\n>(\n\tname: FieldName,\n\tvaluesOrSet: Model[FieldName][] | Set<Model[FieldName]>,\n) => {\n\treturn genFieldFilter<Model, FieldName>(name, 'IN', Array.isArray(valuesOrSet) ? valuesOrSet : [...valuesOrSet]);\n};\n"],"names":["genFilters","dataWithModifierOperator","filters","_name","name","value","filter","pushFilterTagsIds","genFilterPrimitive","genFilterIn","extractOperator","valueWithModifierOperator","operator","modifierOperator","tagsIds","tagsIncluded","tagsExcluded","tagId","genFieldFilter","valuesOrSet"],"mappings":";AAwCO,MAAMA,IAAa,CACzBC,MAC+B;AAC/B,QAAMC,IAAqC,CAAA;AAE3C,gBAAO,KAAKD,CAAwB,EAAE,QAAQ,CAAAE,MAAS;AACtD,UAAMC,IAAOD,GACPE,IAAQJ,EAAyBG,CAAI;AAC3C,QAAIC,MAAU,OAAW;AAEzB,QAAIC;AAEJ,IAAIF,MAAS,cAAcA,MAAS,SACnCG,EAAkBH,GAAMF,GAASG,CAAY,IACnC,OAAOA,KAAU,YAAY,OAAOA,KAAU,YAAY,OAAOA,KAAU,YACrFC,IAASE,EAAmBJ,GAAMC,CAAK,KAC7B,MAAM,QAAQA,CAAK,KAAKA,aAAiB,SACnDC,IAASG,EAAYL,GAAMC,CAAY,IAGpCC,KACHJ,EAAQ,KAAKI,CAAM;AAAA,EAErB,CAAC,GAEMJ;AACR,GAKMQ,IAAkB,CAACC,MAGpB;AACJ,MAAIN,IAAyBM,GACzBC,IAA8C,UAE9CC;AAKJ,WAJIF,EAA0B,CAAC,MAAM,OAAOA,EAA0B,CAAC,MAAM,SAC5E,CAACE,GAAkBR,CAAK,IAAIM,EAA0B,MAAM,GAAG,IAGxDE,GAAA;AAAA,IACP,KAAK;AACJ,MAAAD,IAAW,gBACXP,IAAQ,OAAOA,CAAK;AAEpB;AAAA,IACD,KAAK;AACJ,MAAAO,IAAW,uBACXP,IAAQ,OAAOA,CAAK;AAEpB;AAAA,IACD,KAAK;AACJ,MAAAO,IAAW,aACXP,IAAQ,OAAOA,CAAK;AAEpB;AAAA,IACD,KAAK;AACJ,MAAAO,IAAW,oBACXP,IAAQ,OAAOA,CAAK;AAEpB;AAAA,IACD,KAAK;AACJ,MAAAO,IAAW,cAEPP,EAAM,MAAM,OAAO,MAAGA,IAAQ,OAAOA,CAAK;AAE9C;AAAA,IACD,KAAK;AACJ,MAAAO,IAAW;AAEX;AAAA,IACD,KAAK;AACJ,MAAAA,IAAW;AAEX;AAAA,IACD,KAAK;AACJ,MAAAA,IAAW;AAEX;AAAA,IACD,KAAK;AACJ,MAAAA,IAAW;AAEX;AAAA,IACD,KAAK;AACJ,MAAAA,IAAW;AAEX;AAAA,IACD,KAAK;AACJ,MAAAA,IAAW;AAEX;AAAA,IACD,KAAK;AACJ,MAAAA,IAAW;AAEX;AAAA,EAAA;AAGF,SAAO,EAAE,OAAAP,GAAO,UAAAO,EAAA;AACjB,GAKaL,IAAoB,CAIhCH,GACAF,GACAY,MACI;AACJ,QAAMC,IAAgD,CAAA,GAChDC,IAAgD,CAAA;AAEtD,EAAAF,EAAQ,QAAQ,CAACG,MAAU;AAC1B,IAAIA,EAAM,CAAC,MAAM,MAChBD,EAAa,KAAKC,EAAM,UAAU,CAAC,CAA6B,IAEhEF,EAAa,KAAKE,CAAiC;AAAA,EAErD,CAAC,GAEGF,EAAa,UAAQb,EAAQ,KAAKgB,EAAiCd,GAAM,MAAMW,CAAY,CAAC,GAC5FC,EAAa,UAAQd,EAAQ,KAAKgB,EAAiCd,GAAM,UAAUY,CAAY,CAAC;AACrG,GAKaR,IAAqB,CAIjCJ,GACAO,MACI;AACJ,MAAIN,IAAQM,GACRC,IAA8C;AAElD,SAAI,OAAOD,KAA8B,aAC/B,EAAE,OAAAN,GAAO,UAAAO,MAAaF,EAAgBC,CAAsD,IAIlG,OAAON,KAAU,cACpBA,IAAQA,IAAQ,IAAI,IAGda,EAAsBd,GAAMQ,GAAU,CAACP,CAAY,CAAC;AAC5D,GAKaI,IAAc,CAI1BL,GACAe,MAEOD,EAAiCd,GAAM,MAAM,MAAM,QAAQe,CAAW,IAAIA,IAAc,CAAC,GAAGA,CAAW,CAAC;"}
1
+ {"version":3,"file":"additional.js","names":[],"sources":["../../src/api/api/utils/filters.ts"],"sourcesContent":["import type { components as componentsTagId } from 'topvisor-openapi/src/ts/Tags_2/Types/TagId';\nimport { genFieldFilter } from './field';\n\ntype TagId = componentsTagId['schemas']['Tags_2.Types.TagId'];\ntype TagIdExclude = `-${TagId}`;\n\ntype DataWithModifierOperator<Model> = {\n\t[K in keyof Model]: Model[K] | Model[K][] | Set<Model[K]> | string\n};\n\n/**\n * Модификатор оператора сравнения\n *\n * Используется посредством добавления к строковому значению поля для упрощения синтаксиса указания фильтров\n *\n * @example Поиск вхождения `Иван` в поле `name`\n * genFilters({\n * id: 12345, // без модификатора опертора\n * name: '%:' + 'Иван', // с модификатором опертора\n * });\n */\ntype ModifierOperator = '>=' | '<=' | '!=' | '>' | '<' | '%' | '!%' | '^' | '~' | '!~' | 'null' | '!null';\n\ntype ValueWithModifierOperator = `${ModifierOperator}:${string | number}`;\n\n/**\n * Сгенерировать массив с фильтрами API\n *\n * Ключи - `filedName`, значения - `[ModifierOperator:]fieldValue` / `fieldValues`\n *\n * Значения `undefined` будут пропускаться\n *\n * Додерживает типы:\n *\n * - string, number, boolean - строгое равенство `EQUALS`, если не указан `modifierOperator`\n * - Array - вхождение `IN`\n * - Set<string | number> - вхождение `IN`\n *\n * @see ModifierOperator\n */\nexport const genFilters = <Model extends Api.Ext.Schemas['Model']>(\n\tdataWithModifierOperator: DataWithModifierOperator<Model>,\n): Api.Field.Filter<Model>[] => {\n\tconst filters: Api.Field.Filter<Model>[] = [];\n\n\tObject.keys(dataWithModifierOperator).forEach(_name => {\n\t\tconst name = _name as string & keyof Model;\n\t\tconst value = dataWithModifierOperator[name];\n\t\tif (value === undefined) return;\n\n\t\tlet filter: Api.Field.Filter<Model> | undefined;\n\n\t\tif (name === 'tags_ids' || name === 'tags') {\n\t\t\tpushFilterTagsIds(name, filters, value as any);\n\t\t} else if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {\n\t\t\tfilter = genFilterPrimitive(name, value);\n\t\t} else if (Array.isArray(value) || value instanceof Set) {\n\t\t\tfilter = genFilterIn(name, value as any);\n\t\t}\n\n\t\tif (filter) {\n\t\t\tfilters.push(filter);\n\t\t}\n\t});\n\n\treturn filters;\n};\n\n/**\n * Получить value и operator из valueWithModifierOperator\n */\nconst extractOperator = (valueWithModifierOperator: ValueWithModifierOperator): {\n\tvalue: any,\n\toperator: Api.Ext.Schemas['FieldOperator']\n} => {\n\tlet value: string | number = valueWithModifierOperator;\n\tlet operator: Api.Field.Filter<any>['operator'] = 'EQUALS';\n\n\tlet modifierOperator: ModifierOperator | undefined;\n\tif (valueWithModifierOperator[1] === ':' || valueWithModifierOperator[2] === ':') {\n\t\t[modifierOperator, value] = valueWithModifierOperator.split(':') as [ModifierOperator, string];\n\t}\n\n\tswitch (modifierOperator) {\n\t\tcase '>':\n\t\t\toperator = 'GREATER_THAN';\n\t\t\tvalue = Number(value);\n\n\t\t\tbreak;\n\t\tcase '>=':\n\t\t\toperator = 'GREATER_THAN_EQUALS';\n\t\t\tvalue = Number(value);\n\n\t\t\tbreak;\n\t\tcase '<':\n\t\t\toperator = 'LESS_THAN';\n\t\t\tvalue = Number(value);\n\n\t\t\tbreak;\n\t\tcase '<=':\n\t\t\toperator = 'LESS_THAN_EQUALS';\n\t\t\tvalue = Number(value);\n\n\t\t\tbreak;\n\t\tcase '!=':\n\t\t\toperator = 'NOT_EQUALS';\n\n\t\t\tif (value.match(/^\\d+$/)) value = Number(value);\n\n\t\t\tbreak;\n\t\tcase '%':\n\t\t\toperator = 'CONTAINS';\n\n\t\t\tbreak;\n\t\tcase '!%':\n\t\t\toperator = 'DOES_NOT_CONTAIN';\n\n\t\t\tbreak;\n\t\tcase '^':\n\t\t\toperator = 'STARTS_WITH';\n\n\t\t\tbreak;\n\t\tcase 'null':\n\t\t\toperator = 'IS_NULL';\n\n\t\t\tbreak;\n\t\tcase '!null':\n\t\t\toperator = 'IS_NOT_NULL';\n\n\t\t\tbreak;\n\t\tcase '~':\n\t\t\toperator = 'REGEXP';\n\n\t\t\tbreak;\n\t\tcase '!~':\n\t\t\toperator = 'NOT_REGEXP';\n\n\t\t\tbreak;\n\t}\n\n\treturn { value, operator };\n};\n\n/**\n * Сгенерировать и добавить API фильтр из списка тегов\n */\nexport const pushFilterTagsIds = <\n\tModel extends Api.Ext.Schemas['Model'] = any,\n\tFieldName extends Api.Field.Name<Model> = Api.Field.Name<Model>\n>(\n\tname: FieldName,\n\tfilters: Api.Field.Filter<Model, FieldName>[],\n\ttagsIds: Array<TagId | TagIdExclude>,\n) => {\n\tconst tagsIncluded: Array<Model[FieldName] & TagId> = [];\n\tconst tagsExcluded: Array<Model[FieldName] & TagId> = [];\n\n\ttagsIds.forEach((tagId) => {\n\t\tif (tagId[0] === '-') {\n\t\t\ttagsExcluded.push(tagId.substring(1) as Model[FieldName] & TagId);\n\t\t} else {\n\t\t\ttagsIncluded.push(tagId as Model[FieldName] & TagId);\n\t\t}\n\t});\n\n\tif (tagsIncluded.length) filters.push(genFieldFilter<Model, FieldName>(name, 'IN', tagsIncluded));\n\tif (tagsExcluded.length) filters.push(genFieldFilter<Model, FieldName>(name, 'NOT_IN', tagsExcluded));\n};\n\n/**\n * Сгенерировать API фильтр из простого значения\n */\nexport const genFilterPrimitive = <\n\tModel extends Api.Ext.Schemas['Model'] = any,\n\tFieldName extends Api.Field.Name<Model> = Api.Field.Name<Model>\n>(\n\tname: FieldName,\n\tvalueWithModifierOperator: number | string | boolean | ValueWithModifierOperator,\n) => {\n\tlet value = valueWithModifierOperator;\n\tlet operator: Api.Field.Filter<any>['operator'] = 'EQUALS';\n\n\tif (typeof valueWithModifierOperator === 'string') {\n\t\tlet {} = { value, operator } = extractOperator(valueWithModifierOperator as ValueWithModifierOperator);\n\t}\n\n\t// @deprecated\n\tif (typeof value === 'boolean') {\n\t\tvalue = value ? 1 : 0;\n\t}\n\n\treturn genFieldFilter<Model>(name, operator, [value as any]);\n};\n\n/**\n * Сгенерировать API фильтр IN\n */\nexport const genFilterIn = <\n\tModel extends Api.Ext.Schemas['Model'] = any,\n\tFieldName extends Api.Field.Name<Model> = Api.Field.Name<Model>\n>(\n\tname: FieldName,\n\tvaluesOrSet: Model[FieldName][] | Set<Model[FieldName]>,\n) => {\n\treturn genFieldFilter<Model, FieldName>(name, 'IN', Array.isArray(valuesOrSet) ? valuesOrSet : [...valuesOrSet]);\n};\n"],"mappings":";;AAwCA,IAAa,KACZ,MAC+B;CAC/B,IAAM,IAAqC,EAAE;AAsB7C,QApBA,OAAO,KAAK,EAAyB,CAAC,SAAQ,MAAS;EACtD,IAAM,IAAO,GACP,IAAQ,EAAyB;AACvC,MAAI,MAAU,KAAA,EAAW;EAEzB,IAAI;AAUJ,EARI,MAAS,cAAc,MAAS,SACnC,EAAkB,GAAM,GAAS,EAAa,GACpC,OAAO,KAAU,YAAY,OAAO,KAAU,YAAY,OAAO,KAAU,YACrF,IAAS,EAAmB,GAAM,EAAM,IAC9B,MAAM,QAAQ,EAAM,IAAI,aAAiB,SACnD,IAAS,EAAY,GAAM,EAAa,GAGrC,KACH,EAAQ,KAAK,EAAO;GAEpB,EAEK;GAMF,KAAmB,MAGpB;CACJ,IAAI,IAAyB,GACzB,IAA8C,UAE9C;AAKJ,UAJI,EAA0B,OAAO,OAAO,EAA0B,OAAO,SAC5E,CAAC,GAAkB,KAAS,EAA0B,MAAM,IAAI,GAGzD,GAAR;EACC,KAAK;AAEJ,GADA,IAAW,gBACX,IAAQ,OAAO,EAAM;AAErB;EACD,KAAK;AAEJ,GADA,IAAW,uBACX,IAAQ,OAAO,EAAM;AAErB;EACD,KAAK;AAEJ,GADA,IAAW,aACX,IAAQ,OAAO,EAAM;AAErB;EACD,KAAK;AAEJ,GADA,IAAW,oBACX,IAAQ,OAAO,EAAM;AAErB;EACD,KAAK;AAGJ,GAFA,IAAW,cAEP,EAAM,MAAM,QAAQ,KAAE,IAAQ,OAAO,EAAM;AAE/C;EACD,KAAK;AACJ,OAAW;AAEX;EACD,KAAK;AACJ,OAAW;AAEX;EACD,KAAK;AACJ,OAAW;AAEX;EACD,KAAK;AACJ,OAAW;AAEX;EACD,KAAK;AACJ,OAAW;AAEX;EACD,KAAK;AACJ,OAAW;AAEX;EACD,KAAK;AACJ,OAAW;AAEX;;AAGF,QAAO;EAAE;EAAO;EAAU;GAMd,KAIZ,GACA,GACA,MACI;CACJ,IAAM,IAAgD,EAAE,EAClD,IAAgD,EAAE;AAWxD,CATA,EAAQ,SAAS,MAAU;AAC1B,EAAI,EAAM,OAAO,MAChB,EAAa,KAAK,EAAM,UAAU,EAAE,CAA6B,GAEjE,EAAa,KAAK,EAAkC;GAEpD,EAEE,EAAa,UAAQ,EAAQ,KAAK,EAAiC,GAAM,MAAM,EAAa,CAAC,EAC7F,EAAa,UAAQ,EAAQ,KAAK,EAAiC,GAAM,UAAU,EAAa,CAAC;GAMzF,KAIZ,GACA,MACI;CACJ,IAAI,IAAQ,GACR,IAA8C;AAElD,KAAI,OAAO,KAA8B,UAAU;EAClD,IAAI,KAAK,0BAAsB,EAAgB,EAAuD;;AAQvG,QAJI,OAAO,KAAU,cACpB,IAAQ,OAGF,EAAsB,GAAM,GAAU,CAAC,EAAa,CAAC;GAMhD,KAIZ,GACA,MAEO,EAAiC,GAAM,MAAM,MAAM,QAAQ,EAAY,GAAG,IAAc,CAAC,GAAG,EAAY,CAAC"}
package/api/index.amd.js CHANGED
@@ -1,2 +1,2 @@
1
- define(["require","exports","../.chunks/field-Cvv0SRcJ.amd"],(function(h,u,O){"use strict";if(typeof I>"u")var I=window.Vue;const k=(o={})=>(o={...o},o.loadingEl??=globalThis.document?.body,o.loadingShowSpinner??=!0,o.method??="POST",o.accept??="application/json",o),E=(o,t,s)=>({result:o,errors:t,response:s}),C=o=>o.startsWith("/system_2/common/"),A=(o=!1,t=window.location.href,s)=>{const{protocol:e,hostname:n,port:r}=new URL(t),i=n.split("."),p=!o||i.length<=2||/^[\d.]+$/.test(n)||n==="localhost"?n:i.slice(-2).join(".");return`${e}//${p}${r?`:${r}`:""}`},T=o=>Object.values(o).some(t=>t instanceof FileList||t instanceof File||t instanceof Blob||Array.isArray(t)&&t.some(s=>s instanceof File||s instanceof Blob)),z=(o,t,s)=>{const e={inLoading:!1,path:t,url:o.options.baseUrl+t,options:k(o.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,r)=>e.exec(r,n),callInNewWindow:async n=>{const r=e.genData(n),i=o.genMiddlewareCtx(e,r);o.options.onPrepareData?.(r,i);const{postInWindow:p}=await new Promise((a,w)=>h(["../.chunks/lazy-DDNqYkXn.amd"],a,w));p(e.url,r,"_blank")},callInSelfWindow:async n=>{const r=e.genData(n),i=o.genMiddlewareCtx(e,r);o.options.onPrepareData?.(r,i);const{postInWindow:p}=await new Promise((a,w)=>h(["../.chunks/lazy-DDNqYkXn.amd"],a,w));p(e.url,r,"_self")},genData:(n,r)=>{const i={...e.params};if(delete i.fetch_style,n){let p=[...n];s&&(p=p.filter(a=>s.includes(a))),i.fields=p}else s&&(i.fields=s);return r&&(i.fetch_style=r),i},abortByFingerprint:()=>{if(!e.options.checkFingerprint)return;const n=e.path+e.options.checkFingerprint;o.abortControllers[n]?.abort(new DOMException(`Stopped previous request by fingerprint: ${e.options.checkFingerprint}`,"AbortError"));const r=new AbortController;return o.abortControllers[n]=r,r.signal},async exec(n,r){const i=o.options.Request,p=o.options.fetch,a=e.genData(n,r),w=o.genMiddlewareCtx(e,a);o.options.onPrepareData?.(a,w);const P=T(a);if(P&&e.options.method!=="POST")throw new Error("Files can be sent only in POST requests");let q=e.url,S;if(P){if(e.options.method!=="POST")throw new Error("Files can be sent only in POST requests");const{formDataSerializer:l}=await new Promise((g,y)=>h(["../.chunks/lazy-DDNqYkXn.amd"],g,y));S=l(a)}else e.options.method!=="POST"?q+="?"+await o.options.querySerializer(a):S=o.options.bodySerializer(a);let F=e.abortByFingerprint();if(e.mockerOptions){const{genMockResponse:l}=await new Promise((g,y)=>h(["../.chunks/index-DLUtoTUg.amd"],g,y));return await l(e.mockerOptions,n,a,F)}const j={...o.options,method:e.options.method,body:S,signal:F};let m=new i(q,j);m.headers.set("x-request-id",w.id),m.headers.set("accept",e.options.accept),P||m.headers.set("content-type","application/json");const f={...w,request:m};e.inLoading=!0,e.options.onLoading?.(e.inLoading,f);let c;const b=await o.middlewareOnRequest(m,f);if(b instanceof Response?c=b:b instanceof i&&(m=b),!c)try{c=await p(m)}catch(l){c=await o.middlewareOnError(l,f)}finally{e.inLoading=!1,e.options.onLoading?.(e.inLoading,f)}c=await o.middlewareOnResponse(c,f);let d,x,R;try{const l=c.headers.get("content-type")?.includes("application/json");x=await c.text(),this.options.accept==="application/json"||l?d=JSON.parse(x):o.useExt?d=E(x,void 0,c):d=x}catch(l){if((l instanceof SyntaxError||l instanceof TypeError)&&(R=l,R.responseText=x),o.useExt&&R){let g=c.status,y=c.statusText;g===200&&(g=1e4,y="Error API response"),d=E(null,[{code:g,string:y}],c),o.options.useApiConsole&&console.error(l)}else throw l}return o.useExt&&(d.response=c,d&&e.options.onApiLoaded?.(d,f,o.options.requestOptions?.onApiLoaded),d?.errors&&(o.options.useApiConsole&&console.warn(new Error("API error"),{res:d}),e.options.onApiError?.(d,{...f,formatError:R},o.options.requestOptions?.onApiError)),d?.messages&&e.options.onApiMessage?.(d,f)),d}};return e};class D{options;useExt;middlewares=[];mokerByPath=new Map;abortControllers={};constructor(t={},s){t.requestOptions=k(t.requestOptions),t.useApiConsole??=!0,t.fetch??=globalThis.fetch,t.Request??=globalThis.Request,t.querySerializer??=async e=>{const{querySerializer:n}=await new Promise((r,i)=>h(["../.chunks/lazy-DDNqYkXn.amd"],r,i));return n(e)},t.bodySerializer??=e=>typeof e=="string"?e:JSON.stringify(e),this.options=t,this.useExt=s}generateUUID(){return crypto?.randomUUID?crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,t=>{const s=Math.random()*16|0;return(t==="x"?s:s&3|8).toString(16)})}use(t){this.middlewares.push(t)}gen(t,s){return z(this,t,s)}genAny(t,s){return this.gen(t,s)}genMiddlewareCtx(t,s){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:t.options,data:s,middlewareData:{},options:n,schemaPath:t.path,id:e}}async middlewareOnRequest(t,s){for(const e of this.middlewares){const n=await e.onRequest?.({...s,request:t});if(n)if(n instanceof Request)t=n;else{if(n instanceof Response)return n;throw new Error("onRequest: must return new Request() or Response() when modifying the request")}}return t}async middlewareOnError(t,s){let e=t;for(const n of this.middlewares){const r=await n.onError?.({...s,error:e});if(r){if(r instanceof Response)return r;if(r instanceof Error){e=r;continue}throw new Error("onError: must return new Response() or instance of Error")}}throw e}async middlewareOnResponse(t,s){for(const e of this.middlewares){const n=await e.onResponse?.({...s,response:t});if(n){if(!(n instanceof Response))throw new Error("onResponse: must return new Response() when modifying the response");t=n}}return t}setMocker(t,s){this.mokerByPath.set(t,s),this.genOriginal||(this.genOriginal=this.gen.bind(this),this.gen=(e,n)=>{const r=this.genOriginal(e,n),i=this.mokerByPath.get(e);return i&&r.setMocker(i),r})}}const M=async(...o)=>{const{postInWindow:t}=await new Promise((s,e)=>h(["../.chunks/lazy-DDNqYkXn.amd"],s,e));return t(...o)},U=async(...o)=>{const{dataToForm:t}=await new Promise((s,e)=>h(["../.chunks/lazy-DDNqYkXn.amd"],s,e));return t(...o)},L=(o={},t)=>new D(o,t);u.genFieldFilter=O.genFieldFilter,u.genFieldOrder=O.genFieldOrder,u.createClient=L,u.dataToForm=U,u.genExtRes=E,u.getBaseDomainUrl=A,u.isPublicAPI=C,u.postInWindow=M,Object.defineProperty(u,Symbol.toStringTag,{value:"Module"})}));
2
- //# sourceMappingURL=index.amd.js.map
1
+ define([`require`,`exports`,`../.chunks/api-CawzY1Cw.amd`,`../.chunks/field-CjkpGeA7.amd`],function(e,t,n,r){"use strict";if(i===void 0)var i=window.Vue;Object.defineProperty(t,`__esModule`,{value:!0}),t.postInWindow=t.isPublicAPI=t.getBaseDomainUrl=t.genFieldOrder=t.genFieldFilter=t.genExtRes=t.dataToForm=t.createClient=void 0,Object.defineProperty(t,`getBaseDomainUrl`,{enumerable:!0,get:function(){return n.a}}),Object.defineProperty(t,`genExtRes`,{enumerable:!0,get:function(){return n.i}}),Object.defineProperty(t,`dataToForm`,{enumerable:!0,get:function(){return n.n}}),Object.defineProperty(t,`isPublicAPI`,{enumerable:!0,get:function(){return n.o}}),Object.defineProperty(t,`postInWindow`,{enumerable:!0,get:function(){return n.r}}),Object.defineProperty(t,`createClient`,{enumerable:!0,get:function(){return n.t}}),Object.defineProperty(t,`genFieldOrder`,{enumerable:!0,get:function(){return r.n}}),Object.defineProperty(t,`genFieldFilter`,{enumerable:!0,get:function(){return r.t}})});
2
+ //# sourceMappingURL=index.amd.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.amd.js","sources":["../../src/api/api/client/request-options.ts","../../src/api/api/utils/common.ts","../../src/api/api/client/request.ts","../../src/api/api/client/client.ts","../../src/api/api/index.ts"],"sourcesContent":["export const createRequestOptions = (requestOptions: Partial<Api.ClientRequestOptions> = {}): Api.ClientRequestOptions => {\n\trequestOptions = { ...requestOptions };\n\trequestOptions.loadingEl ??= globalThis.document?.body;\n\trequestOptions.loadingShowSpinner ??= true;\n\trequestOptions.method ??= 'POST';\n\trequestOptions.accept ??= 'application/json';\n\n\treturn requestOptions as Api.ClientRequestOptions;\n};\n","/**\n * Сгенерировать объект ответа в формате расширения OpenAPI\n *\n * @see Api.Ext\n */\nexport const genExtRes = (\n\tresult: any,\n\terrors?: Api.Ext.Schemas['ResponseError']['errors'],\n\tresponse?: Response,\n): Api.Response<any> => {\n\treturn {\n\t\tresult,\n\t\terrors,\n\t\tresponse,\n\t};\n};\n\n/**\n * Это публичное API, к которому открыт доступ по прямой ссылке через GET\n *\n * Используется для кеширования и генерации файлов через API\n */\nexport const isPublicAPI = (path: Api.PathAbstract) => {\n\treturn path.startsWith('/system_2/common/');\n};\n\n/**\n * Сгенерировать baseUrl на основе текущего домена\n */\nexport const getBaseDomainUrl = (useMainDomain = false, input: string = window.location.href, subdomain?: string) => {\n\tconst { protocol, hostname, port } = new URL(input);\n\n\t/**\n\t * localhost / IP-адреса / одноуровневые домены оставляем как есть\n\t */\n\tconst parts = hostname.split('.');\n\tconst baseHostname = !useMainDomain || parts.length <= 2 || /^[\\d.]+$/.test(hostname) || hostname === 'localhost'\n\t\t? hostname\n\t\t: parts.slice(-2).join('.');\n\n\treturn `${protocol}//${baseHostname}${port ? `:${port}` : ''}`;\n};\n","import type { Client } from './client';\nimport { createRequestOptions } from './request-options';\nimport { genExtRes } from '../utils/common';\n\n/**\n * Проверить передаются ли файлы\n */\nconst checkHasFiles = (data: Record<string, any>): boolean => {\n\treturn Object.values(data).some(value =>\n\t\tvalue instanceof FileList ||\n\t\tvalue instanceof File ||\n\t\tvalue instanceof Blob ||\n\t\tArray.isArray(value) && value.some(item => item instanceof File || item instanceof Blob),\n\t);\n};\n\nexport const createRequest = <\n\tRequestContext extends Api.ClientRequestContext<any, any, any>,\n\tFieldsNarrow extends Api.ParamsFields<RequestContext>,\n>(\n\tclient: Client<RequestContext['Paths'], RequestContext['UseExt']>,\n\tpath: RequestContext['Path'],\n\tfieldsNarrow?: FieldsNarrow,\n): Api.ClientRequest<RequestContext, FieldsNarrow> => {\n\tconst clientRequest: Api.ClientRequest<RequestContext, FieldsNarrow> = {\n\t\tinLoading: false,\n\t\tpath: path as Api.PathAbstract,\n\t\turl: client.options.baseUrl + path,\n\t\toptions: createRequestOptions(client.options.requestOptions),\n\t\tmockerOptions: undefined as Api.Mocker.Options<any, any> | undefined,\n\t\tparams: {} as any, // незаполненное свойство\n\t\tgetInLoading: () => clientRequest.inLoading,\n\n\t\tsetParams: (params) => {\n\t\t\tclientRequest.params = { ...params } as any;\n\n\t\t\treturn clientRequest;\n\t\t},\n\n\t\tchangeParams: (params) => {\n\t\t\tObject.assign(clientRequest.params, params);\n\n\t\t\treturn clientRequest;\n\t\t},\n\n\t\tsetOptions: (options) => {\n\t\t\tObject.assign(clientRequest.options, options);\n\n\t\t\treturn clientRequest;\n\t\t},\n\n\t\tsetMocker: (options) => {\n\t\t\tclientRequest.mockerOptions = options;\n\n\t\t\treturn clientRequest;\n\t\t},\n\n\t\tcall: async (fields?) => {\n\t\t\treturn clientRequest.exec(fields);\n\t\t},\n\n\t\tcallFetch: async (fetchStyle, fields?) => {\n\t\t\treturn clientRequest.exec(fields, fetchStyle);\n\t\t},\n\n\t\tcallInNewWindow: async (fields?) => {\n\t\t\tconst data = clientRequest.genData(fields);\n\n\t\t\tconst middlewareCtx = client.genMiddlewareCtx(clientRequest, data);\n\n\t\t\tclient.options.onPrepareData?.(data, middlewareCtx);\n\n\t\t\tconst { postInWindow } = await import('../utils/lazy');\n\t\t\tvoid postInWindow(clientRequest.url, data, '_blank');\n\t\t},\n\n\t\tcallInSelfWindow: async (fields?) => {\n\t\t\tconst data = clientRequest.genData(fields);\n\n\t\t\tconst middlewareCtx = client.genMiddlewareCtx(clientRequest, data);\n\n\t\t\tclient.options.onPrepareData?.(data, middlewareCtx);\n\n\t\t\tconst { postInWindow } = await import('../utils/lazy');\n\t\t\tvoid postInWindow(clientRequest.url, data, '_self');\n\t\t},\n\n\t\tgenData: (fields?, fetchStyle?) => {\n\t\t\tconst post: any = { ...clientRequest.params };\n\n\t\t\t// в старом коде fields вставлялись в params, оставлено для совместимости\n\t\t\t// delete post.fields;\n\t\t\tdelete post.fetch_style;\n\n\t\t\t// поля, указанные при запуске запроса\n\t\t\tif (fields) {\n\t\t\t\tlet fieldsPrepared = [...fields as any[]];\n\n\t\t\t\t// поля, указанные при создании запроса\n\t\t\t\tif (fieldsNarrow) {\n\t\t\t\t\tfieldsPrepared = fieldsPrepared.filter(field => fieldsNarrow.includes(field));\n\t\t\t\t}\n\n\t\t\t\tpost.fields = fieldsPrepared;\n\t\t\t} else {\n\t\t\t\tif (fieldsNarrow) {\n\t\t\t\t\tpost.fields = fieldsNarrow;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (fetchStyle) {\n\t\t\t\tpost.fetch_style = fetchStyle;\n\t\t\t}\n\n\t\t\treturn post;\n\t\t},\n\n\t\tabortByFingerprint: () => {\n\t\t\tif (!clientRequest.options.checkFingerprint) return;\n\n\t\t\tconst fingerprint = clientRequest.path + clientRequest.options.checkFingerprint;\n\n\t\t\tclient.abortControllers[fingerprint]?.abort(\n\t\t\t\tnew DOMException(`Stopped previous request by fingerprint: ${clientRequest.options.checkFingerprint}`, 'AbortError'),\n\t\t\t);\n\n\t\t\tconst controller = new AbortController();\n\n\t\t\tclient.abortControllers[fingerprint] = controller;\n\n\t\t\treturn controller.signal;\n\t\t},\n\n\t\t/**\n\t\t * Общая функция выполнения запросов\n\t\t */\n\t\tasync exec(fields?, fetchStyle?) {\n\t\t\tconst Request = client.options.Request;\n\t\t\tconst fetch = client.options.fetch;\n\n\t\t\tconst data = clientRequest.genData(fields, fetchStyle);\n\n\t\t\tconst middlewareCtxWithoutRequest = client.genMiddlewareCtx(clientRequest, data);\n\n\t\t\tclient.options.onPrepareData?.(data, middlewareCtxWithoutRequest);\n\n\t\t\tconst hasFiles = checkHasFiles(data);\n\t\t\tif (hasFiles && clientRequest.options.method !== 'POST') {\n\t\t\t\tthrow new Error('Files can be sent only in POST requests');\n\t\t\t}\n\n\t\t\tlet url = clientRequest.url;\n\n\t\t\tlet requestInitBody: string | FormData | undefined = undefined;\n\n\t\t\tif (hasFiles) {\n\t\t\t\tif (clientRequest.options.method !== 'POST') {\n\t\t\t\t\tthrow new Error('Files can be sent only in POST requests');\n\t\t\t\t}\n\n\t\t\t\tconst { formDataSerializer } = await import('../utils/lazy');\n\t\t\t\trequestInitBody = formDataSerializer(data);\n\t\t\t} else if (clientRequest.options.method !== 'POST') {\n\t\t\t\turl += '?' + await client.options.querySerializer(data);\n\t\t\t} else {\n\t\t\t\trequestInitBody = client.options.bodySerializer(data);\n\t\t\t}\n\n\t\t\t// checkFingerprint\n\t\t\tlet requestInitSignal = clientRequest.abortByFingerprint();\n\n\t\t\tif (clientRequest.mockerOptions) {\n\t\t\t\tconst { genMockResponse } = await import('../mocker/');\n\n\t\t\t\treturn await genMockResponse(clientRequest.mockerOptions, fields, data, requestInitSignal);\n\t\t\t}\n\n\t\t\tconst requestInit: RequestInit = {\n\t\t\t\t...client.options,\n\t\t\t\tmethod: clientRequest.options.method,\n\t\t\t\tbody: requestInitBody,\n\t\t\t\tsignal: requestInitSignal,\n\t\t\t};\n\n\t\t\tlet request = new Request(url, requestInit);\n\n\t\t\trequest.headers.set('x-request-id', middlewareCtxWithoutRequest.id);\n\t\t\trequest.headers.set('accept', clientRequest.options.accept);\n\n\t\t\t// при отправке данных в `FormData` `fetch()` сам укажет правильный заголовок `multipart/form-data`\n\t\t\tif (!hasFiles) {\n\t\t\t\trequest.headers.set('content-type', 'application/json');\n\t\t\t}\n\n\t\t\tconst middlewareCtx: Api.MiddlewareCallbackParams = {\n\t\t\t\t...middlewareCtxWithoutRequest,\n\t\t\t\trequest,\n\t\t\t};\n\n\t\t\tclientRequest.inLoading = true;\n\t\t\tclientRequest.options.onLoading?.(clientRequest.inLoading, middlewareCtx);\n\n\t\t\tlet response: Response | undefined = undefined;\n\n\t\t\tconst requestOrResponse = await client.middlewareOnRequest(request, middlewareCtx);\n\n\t\t\tif (requestOrResponse instanceof Response) {\n\t\t\t\tresponse = requestOrResponse;\n\t\t\t} else if (requestOrResponse instanceof Request) {\n\t\t\t\trequest = requestOrResponse;\n\t\t\t}\n\n\t\t\tif (!response) {\n\t\t\t\ttry {\n\t\t\t\t\tresponse = await fetch(request);\n\t\t\t\t} catch (e) {\n\t\t\t\t\tresponse = await client.middlewareOnError(e, middlewareCtx);\n\t\t\t\t} finally {\n\t\t\t\t\tclientRequest.inLoading = false;\n\t\t\t\t\tclientRequest.options.onLoading?.(clientRequest.inLoading, middlewareCtx);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tresponse = await client.middlewareOnResponse(response, middlewareCtx);\n\n\t\t\tlet res: any;\n\t\t\tlet responseText: string | undefined;\n\t\t\tlet formatError: undefined | Api.FormatError = undefined;\n\n\t\t\ttry {\n\t\t\t\t// json - стандартные формат, он может быть возвращен в запросах с другим responseType, если в них произошла ошибка\n\t\t\t\tconst isJSON = response.headers.get('content-type')?.includes('application/json');\n\n\t\t\t\tresponseText = await response.text();\n\n\t\t\t\tif (this.options.accept === 'application/json' || isJSON) {\n\t\t\t\t\tres = JSON.parse(responseText);\n\t\t\t\t} else {\n\t\t\t\t\tif (client.useExt) {\n\t\t\t\t\t\tres = genExtRes(responseText, undefined, response);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tres = responseText;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\tif (e instanceof SyntaxError || e instanceof TypeError) {\n\t\t\t\t\tformatError = e;\n\t\t\t\t\tformatError.responseText = responseText;\n\t\t\t\t}\n\n\t\t\t\t// если в результате не пришел json, сгенерировать объект результата и добавить информацию об ответе API\n\t\t\t\tif (client.useExt && formatError) {\n\t\t\t\t\tlet errorCode = response.status;\n\t\t\t\t\tlet errorMessage = response.statusText;\n\n\t\t\t\t\tif (errorCode === 200) {\n\t\t\t\t\t\terrorCode = 10000;\n\t\t\t\t\t\terrorMessage = 'Error API response';\n\t\t\t\t\t}\n\n\t\t\t\t\tres = genExtRes(null, [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tcode: errorCode,\n\t\t\t\t\t\t\tstring: errorMessage,\n\t\t\t\t\t\t},\n\t\t\t\t\t], response);\n\n\t\t\t\t\tif (client.options.useApiConsole) console.error(e);\n\t\t\t\t} else {\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (client.useExt) {\n\t\t\t\tres.response = response;\n\n\t\t\t\tif (res) {\n\t\t\t\t\tclientRequest.options.onApiLoaded?.(res, middlewareCtx, client.options.requestOptions?.onApiLoaded);\n\t\t\t\t}\n\n\t\t\t\tif (res?.errors) {\n\t\t\t\t\tif (client.options.useApiConsole) console.warn(new Error('API error'), { res });\n\n\t\t\t\t\tclientRequest.options.onApiError?.(res, { ...middlewareCtx, formatError }, client.options.requestOptions?.onApiError);\n\t\t\t\t}\n\n\t\t\t\tif (res?.messages) {\n\t\t\t\t\tclientRequest.options.onApiMessage?.(res, middlewareCtx);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn res;\n\t\t},\n\t};\n\n\treturn clientRequest;\n};\n","import { createRequestOptions } from './request-options';\nimport { createRequest } from './request';\n\nexport class Client<paths extends Api.PathsAbstract, UseExt extends Api.Ext.UseExt> {\n\n\treadonly options: Readonly<Api.ClientOptions>;\n\treadonly useExt: UseExt;\n\treadonly middlewares: Api.Middleware[] = [];\n\tprivate mokerByPath = new Map<Api.Path<paths>, Api.Mocker.Options<any, any>>();\n\tabortControllers: Record<string, AbortController> = {};\n\n\tconstructor(clientOptions: Partial<Api.ClientOptions> = {}, useExt: UseExt) {\n\t\tclientOptions.requestOptions = createRequestOptions(clientOptions.requestOptions);\n\t\tclientOptions.useApiConsole ??= true;\n\n\t\tclientOptions.fetch ??= globalThis.fetch;\n\t\tclientOptions.Request ??= globalThis.Request;\n\t\tclientOptions.querySerializer ??= async (params) => {\n\t\t\tconst { querySerializer } = await import('../utils/lazy');\n\n\t\t\treturn querySerializer(params);\n\t\t};\n\t\tclientOptions.bodySerializer ??= (body) => typeof body === 'string' ? body : JSON.stringify(body);\n\n\t\tthis.options = clientOptions as Api.ClientOptions;\n\n\t\tthis.useExt = useExt;\n\t}\n\n\tgenerateUUID() {\n\t\tif (crypto?.randomUUID) {\n\t\t\treturn crypto.randomUUID();\n\t\t}\n\n\t\treturn 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, c => {\n\t\t\tconst r = Math.random() * 16 | 0;\n\t\t\tconst v = c === 'x' ? r : (r & 0x3 | 0x8);\n\t\t\treturn v.toString(16);\n\t\t});\n\t}\n\n\t/**\n\t * Зарегистрировать middleware\n\t */\n\tuse(middleware: Api.Middleware) {\n\t\tthis.middlewares.push(middleware);\n\t}\n\n\t/**\n\t * Создать объект запроса\n\t *\n\t * После создания объекта он заполняется необходимыми данными и выполняет запросы к API с помощью APIRequest2.call();\n\t *\n\t * Опционально generic указывать нельзя, поэтому необходимо дублировать определение fetchStyle, [см.](https://github.com/Microsoft/TypeScript/issues/26242)\n\t *\n\t * @param path Путь метода API\n\t * @param fieldsNarrow Список получаемых полей, для методов API с моделью. Если объект запроса переиспользуется, и список полей меняется, указывайте его непосредственно при вызове `api.call()`\n\t */\n\tgen<\n\t\tPath extends Api.Path<paths>,\n\t\tFieldsNarrow extends Api.ParamsFields<Api.ClientRequestContext<paths, Path, UseExt>>\n\t>(\n\t\tpath: Path,\n\t\tfieldsNarrow?: FieldsNarrow,\n\t): Api.ClientRequest<Api.ClientRequestContext<paths, Path, UseExt>, FieldsNarrow> {\n\t\ttype RequestContext = Api.ClientRequestContext<paths, Path, UseExt>;\n\n\t\treturn createRequest<RequestContext, FieldsNarrow>(this, path, fieldsNarrow);\n\t}\n\n\t/**\n\t * Создать объект запроса, не описанного в OpenAPI\n\t */\n\tgenAny<\n\t\tParams extends Record<string, any>,\n\t\tResult = any,\n\t\tFieldsNarrow extends Api.Ext.Schemas['Fields'] | undefined = undefined\n\t>(path: Api.PathAbstract, fieldsNarrow?: FieldsNarrow): Api.ClientRequestCustom<UseExt, Params, Result> {\n\t\treturn this.gen(path as any, fieldsNarrow as any) as unknown as Api.ClientRequestCustom<UseExt, Params, Result>;\n\t}\n\n\t/**\n\t * Создать контекст выполнения запроса\n\t */\n\tgenMiddlewareCtx(\n\t\tclientRequest: Api.ClientRequest<any, any, any>,\n\t\tdata: Record<string, any>,\n\t): Omit<Api.MiddlewareCallbackParams, 'request'> {\n\t\tconst id = this.generateUUID();\n\n\t\tconst options: Api.BaseOptions = Object.freeze({\n\t\t\tbaseUrl: this.options.baseUrl,\n\t\t\tquerySerializer: this.options.querySerializer,\n\t\t\tbodySerializer: this.options.bodySerializer,\n\t\t\tRequest: this.options.Request,\n\t\t\tfetch: this.options.fetch,\n\t\t});\n\n\t\treturn {\n\t\t\tuseExt: this.useExt,\n\t\t\trequestOptions: clientRequest.options,\n\t\t\tdata,\n\t\t\tmiddlewareData: {},\n\t\t\toptions,\n\t\t\tschemaPath: clientRequest.path,\n\t\t\tid,\n\t\t};\n\t};\n\n\t/**\n\t * Обработчик middleware.onRequest\n\t *\n\t * @param request Запрос для обработки\n\t * @param middlewareCtx Контекст выполнения запроса\n\t * @return Новый экземпляр `Request` или `Response` при модификации запроса, или undefined\n\t */\n\tasync middlewareOnRequest(\n\t\trequest: Request,\n\t\tmiddlewareCtx: Api.MiddlewareCallbackParams,\n\t): Promise<Request | Response | undefined> {\n\t\tfor (const middleware of this.middlewares) {\n\t\t\tconst result = await middleware.onRequest?.({\n\t\t\t\t...middlewareCtx,\n\t\t\t\trequest,\n\t\t\t});\n\n\t\t\tif (result) {\n\t\t\t\tif (result instanceof Request) {\n\t\t\t\t\trequest = result;\n\t\t\t\t} else if (result instanceof Response) {\n\t\t\t\t\treturn result;\n\t\t\t\t} else {\n\t\t\t\t\tthrow new Error('onRequest: must return new Request() or Response() when modifying the request');\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn request;\n\t}\n\n\t/**\n\t * Обработчик middleware.onResponse\n\t *\n\t * @param `error` Ошибка, переданная для обработки\n\t * @param middlewareCtx\n\t * @return Новый экземпляр `Response` при успешной обработке или выбрасывает ошибку\n\t */\n\tasync middlewareOnError(\n\t\terror: Error | unknown,\n\t\tmiddlewareCtx: Api.MiddlewareCallbackParams,\n\t): Promise<Response | never> {\n\t\tlet errorAfterMiddleware = error;\n\n\t\tfor (const middleware of this.middlewares) {\n\t\t\tconst result = await middleware.onError?.({\n\t\t\t\t...middlewareCtx,\n\t\t\t\terror: errorAfterMiddleware,\n\t\t\t});\n\n\t\t\tif (result) {\n\t\t\t\tif (result instanceof Response) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (result instanceof Error) {\n\t\t\t\t\terrorAfterMiddleware = result;\n\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tthrow new Error('onError: must return new Response() or instance of Error');\n\t\t\t}\n\t\t}\n\n\t\tthrow errorAfterMiddleware;\n\t}\n\n\t/**\n\t * Обработчик middleware.onResponse\n\t *\n\t * @param response Ответ для обработки\n\t * @param middlewareCtx Контекст выполнения запроса\n\t * @return Новый экземпляр `Response` при модификации ответа, или undefined\n\t */\n\tasync middlewareOnResponse(\n\t\tresponse: Response,\n\t\tmiddlewareCtx: Api.MiddlewareCallbackParams,\n\t): Promise<Response> {\n\t\tfor (const middleware of this.middlewares) {\n\t\t\tconst result = await middleware.onResponse?.({\n\t\t\t\t...middlewareCtx,\n\t\t\t\tresponse,\n\t\t\t});\n\n\t\t\tif (result) {\n\t\t\t\tif (!(result instanceof Response)) {\n\t\t\t\t\tthrow new Error('onResponse: must return new Response() when modifying the response');\n\t\t\t\t}\n\n\t\t\t\tresponse = result;\n\t\t\t}\n\t\t}\n\n\t\treturn response;\n\t}\n\n\t/**\n\t * Установить генератор данных вместо реальных запросов к серверу для конкретного метода API\n\t */\n\tsetMocker<\n\t\tResult extends Api.Mocker.Result = Api.Mocker.Result,\n\t\tParams extends Api.Mocker.Params = Api.Mocker.Params\n\t>(\n\t\tpath: Api.Path<paths>,\n\t\tmocker: Api.Mocker.Options<Result, Params>,\n\t) {\n\t\tthis.mokerByPath.set(path, mocker);\n\n\t\t// @ts-ignore\n\t\tif (!this.genOriginal) {\n\t\t\t// @ts-ignore\n\t\t\tthis.genOriginal = this.gen.bind(this);\n\n\t\t\tthis.gen = (_path, fieldsNarrow) => {\n\t\t\t\t// @ts-ignore\n\t\t\t\tconst api = this.genOriginal(_path, fieldsNarrow);\n\n\t\t\t\tconst mocker = this.mokerByPath.get(_path);\n\t\t\t\tif (mocker) {\n\t\t\t\t\tapi.setMocker(mocker);\n\t\t\t\t}\n\n\t\t\t\treturn api;\n\t\t\t};\n\t\t}\n\t}\n\n}\n","import { Client } from './client/client';\n\nexport * from './utils/field';\nexport * from './utils/common';\n\nexport const postInWindow: typeof import('./utils/lazy').postInWindow = async (...args) => {\n\tconst { postInWindow } = await import('./utils/lazy');\n\n\treturn postInWindow(...args);\n};\n\nexport const dataToForm: typeof import('./utils/lazy').dataToForm = async (...args) => {\n\tconst { dataToForm } = await import('./utils/lazy');\n\n\treturn dataToForm(...args);\n};\n\n/**\n * Создать API клиент\n *\n * @see Api.Ext.UseExt\n */\nexport const createClient = <\n\tpaths extends Api.PathsAbstract,\n\tUseExt extends Api.Ext.UseExt\n>(\n\tclientOptions: Partial<Api.ClientOptions> = {},\n\tuseExt: UseExt,\n) => {\n\treturn new Client<paths, UseExt>(clientOptions, useExt);\n};\n"],"names":["createRequestOptions","requestOptions","genExtRes","result","errors","response","isPublicAPI","path","getBaseDomainUrl","useMainDomain","input","subdomain","protocol","hostname","port","baseHostname","parts","checkHasFiles","data","value","item","clientRequest","params","options","fields","fetchStyle","fieldsPrepared","field","fieldsNarrow","post","client","fingerprint","controller","Request","fetch","hasFiles","url","requestInitBody","formDataSerializer","requestInitSignal","genMockResponse","request","middlewareCtxWithoutRequest","requestOrResponse","e","res","responseText","isJSON","formatError","errorCode","errorMessage","middlewareCtx","Client","clientOptions","useExt","querySerializer","body","c","r","middleware","id","error","errorAfterMiddleware","mocker","api","mocker2","postInWindow","args","postInWindow2","dataToForm","dataToForm2","createClient"],"mappings":"4HAAO,MAAAA,EAAA,CAAAC,EAAA,CAAA,KACNA,EAAA,CAAA,GAAAA,CAAA,0CAEAA,EAAA,qBAAA,GACAA,EAAA,SAAA,OACAA,EAAA,SAAA,mBAEAA,GCFMC,EAAA,CAAAC,EAAAC,EAAAC,KAKN,CAAO,OAAAF,EACN,OAAAC,eAWKE,EAAAC,GACNA,EAAA,WAAA,mBAAA,EAMMC,EAAA,CAAAC,EAAA,GAAAC,EAAA,OAAA,SAAA,KAAAC,IAAA,CACN,KAAA,CAAA,SAAAC,EAAA,SAAAC,EAAA,KAAAC,CAAA,EAAA,IAAA,IAAAJ,CAAA,iBAMAK,EAAA,CAAAN,GAAAO,EAAA,QAAA,GAAA,WAAA,KAAAH,CAAA,GAAAA,IAAA,YAAAA,EAAAG,EAAA,MAAA,EAAA,EAAA,KAAA,GAAA,mCAKD,EClCAC,EAAAC,yBAC4BC,GAAAA,aAAA,UAAAA,aAAA,MAAAA,aAAA,MAAA,MAAA,QAAAA,CAAA,GAAAA,EAAA,KAAAC,GAAAA,aAAA,MAAAA,aAAA,IAAA,qCAiBf,KAAAb,6FAKF,aAAA,IAAAc,EAAA,UACyB,UAAAC,IAGjCD,EAAA,OAAA,CAAA,GAAAC,CAAA,EAEAD,GACD,aAAAC,8BAKCD,GACD,WAAAE,+BAKCF,GACD,UAAAE,IAGCF,EAAA,cAAAE,EAEAF,GACD,KAAA,MAAAG,GAGCH,EAAA,KAAAG,CAAA,EACD,UAAA,MAAAC,EAAAD,gBAIA,gBAAA,MAAAA,GAAA,0LAUoD,EACpD,iBAAA,MAAAA,GAAA,yLAUmD,EACnD,QAAA,CAAAA,EAAAC,IAAA,kDAWE,IAAAC,EAAA,CAAA,GAAAF,CAAA,MAICE,EAAAA,EAAA,OAAAC,GAAAC,EAAA,SAAAD,CAAA,CAAA,GAGDE,EAAA,OAAAH,CAAc,UAGbG,EAAA,OAAAD,cAKDC,EAAA,YAAAJ,GAGDI,CAAO,0BAIP,GAAA,CAAAR,EAAA,QAAA,iBAAA,iDAIAS,EAAA,iBAAAC,CAAA,GAAA,MAAsC,IAAA,aAAA,4CAAAV,EAAA,QAAA,gBAAA,GAAA,YAAA,GAItC,MAAAW,EAAA,IAAA,gBAEA,OAAAF,EAAA,iBAAAC,CAAA,EAAAC,UAEkB,EACnB,MAAA,KAAAR,EAAAC,EAAA,CAMC,MAAAQ,EAAAH,EAAA,QAAA,QACAI,EAAAJ,EAAA,QAAA,gFAQA,MAAAK,EAAAlB,EAAAC,CAAA,kCAEC,MAAA,IAAA,MAAA,yCAAA,EAGD,IAAAkB,EAAAf,EAAA,yCAME,MAAA,IAAA,MAAA,yCAAA,gGAIDgB,EAAAC,EAAApB,CAAA,iCAEAkB,GAAA,IAAA,MAAAN,EAAA,QAAA,gBAAAZ,CAAA,gCAMD,IAAAqB,EAAAlB,EAAA,mBAAA,EAEA,GAAAA,EAAA,cAAA,6FAGC,OAAA,MAAAmB,EAAAnB,EAAA,cAAAG,EAAAN,EAAAqB,CAAA,wBAIU,OAAAlB,EAAA,QAAA,cAEJ,OAAAkB,uDAOPE,EAAA,QAAA,IAAA,SAAApB,EAAA,QAAA,MAAA,+DAOoD,GAAAqB,aAKpDrB,EAAA,UAAA,0FAOAsB,aAAA,aACYA,aAAAV,YAMX,GAAA,CACC5B,EAAA,MAAA6B,EAAAO,CAAA,CAA8B,OAAAG,EAAA,iCAE4B,QAAA,CAE1DvB,EAAA,UAAA,4EAOF,IAAAwB,EACAC,IAGA,GAAA,CAEC,MAAAC,EAAA1C,EAAA,QAAA,IAAA,cAAA,GAAA,SAAA,kBAAA,EAEAyC,EAAA,MAAAzC,EAAA,KAAA,8CAGCwC,EAAA,KAAA,MAAAC,CAAA,EAEAhB,EAAA,0BAKD,OAAAc,EAAA,CAQA,4DAJCI,EAAA,aAAAF,GAIDhB,EAAA,QAAAkB,EAAA,CACC,IAAAC,EAAA5C,EAAA,OACA6C,EAAA7C,EAAA,WAEA4C,IAAA,oCAKAJ,EAAA3C,EAAA,KAAA,SAEQ,OAAAgD,CACE,MAIVpB,EAAA,QAAA,eAAA,QAAA,MAAAc,CAAA,CAAiD,KAEjD,OAAAA,EAIF,OAAAd,EAAA,SACCe,EAAA,SAAAxC,KAGCgB,EAAA,QAAA,cAAAwB,EAAAM,EAAArB,EAAA,QAAA,gBAAA,WAAA,EAGDe,GAAA,oKAMAA,GAAA,yCAKDA,IAIF,OAAAxB,GCpSM,MAAA+B,CAAA,CAA6E,QAE1E,sBAEiC,YAAA,IAAA,wBAEW,YAAAC,EAAA,CAAA,EAAAC,EAAA,sCAIpDD,EAAA,gBAAA,GAEAA,EAAA,QAAA,WAAA,MACAA,EAAA,UAAA,WAAA,QACAA,EAAA,kBAAA,MAAA/B,GAAA,4FAGC,OAAAiC,EAAAjC,CAAA,CAA6B,EAE9B+B,EAAA,iBAAAG,GAAA,OAAAA,GAAA,SAAAA,EAAA,KAAA,UAAAA,CAAA,EAEA,KAAA,QAAAH,EAEA,KAAA,OAAAC,EACD,cAAA,CAGC,OAAA,QAAA,WACC,OAAA,WAAA,wFAMA,OADAG,IAAA,IAAAC,EAAAA,EAAA,EAAA,GACA,SAAA,EAAA,CAAoB,CAAA,SAQrB,KAAA,YAAA,KAAAC,CAAA,EACD,IAAApD,EAAAqB,EAAA,oBAsBA,OAAArB,EAAAqB,EAAA,sBAWA,iBAAAP,EAAAH,EAAA,CASC,MAAA0C,EAAA,KAAA,aAAA,EAEArC,EAAA,OAAA,OAAA,CAA+C,QAAA,KAAA,QAAA,QACxB,gBAAA,KAAA,QAAA,gBACQ,eAAA,KAAA,QAAA,eACD,QAAA,KAAA,QAAA,QACP,MAAA,KAAA,QAAA,KACF,CAAA,EAGrB,MAAA,CAAO,OAAA,KAAA,OACO,eAAAF,EAAA,QACiB,KAAAH,oBAEb,QAAAK,EACjB,WAAAF,EAAA,WAIF,MAAA,oBAAAoB,EAAAU,EAAA,CAaC,UAAAQ,KAAA,KAAA,YAAA,CACC,MAAAxD,EAAA,MAAAwD,EAAA,YAAA,CAA4C,GAAAR,WAE3C,CAAA,OAIA,GAAAhD,aAAA,gBACW,IAAAA,aAAA,SAEV,OAAAA,EAEA,MAAA,IAAA,MAAA,+EAAA,GAKH,OAAAsC,EACD,MAAA,kBAAAoB,EAAAV,EAAA,SAeC,UAAAQ,KAAA,KAAA,YAAA,CACC,MAAAxD,EAAA,MAAAwD,EAAA,UAAA,CAA0C,GAAAR,EACtC,MAAAW,CACI,CAAA,QAIP,GAAA3D,aAAA,SACC,OAAAA,EAGD,GAAAA,aAAA,MAAA,cAMA,MAAA,IAAA,MAAA,0DAAA,GAIF,MAAA2D,EACD,MAAA,qBAAAzD,EAAA8C,EAAA,CAaC,UAAAQ,KAAA,KAAA,YAAA,CACC,MAAAxD,EAAA,MAAAwD,EAAA,aAAA,CAA6C,GAAAR,YAE5C,CAAA,QAIA,GAAA,EAAAhD,aAAA,UACC,MAAA,IAAA,MAAA,oEAAA,OAOH,OAAAE,EACD,UAAAE,EAAAwD,EAAA,2BAeC,KAAA,sIAUGC,EAAA,UAAAC,CAAA,EAGDD,CAAO,GAKX,CCxOO,MAAAE,EAAA,SAAAC,IAAA,yFAGN,OAAAC,EAAA,GAAAD,CAAA,CACD,EAEOE,EAAA,SAAAF,IAAA,uFAGN,OAAAG,EAAA,GAAAH,CAAA,CACD,EAOOI,EAAA,CAAAlB,EAAA,CAAA,EAAAC,IAON,IAAAF,EAAAC,EAAAC,CAAA"}
1
+ {"version":3,"sources":["api/index.js"],"names":["vue","exports","api_CawzY1Cw_esm_js_1","field_CjkpGeA7_esm_js_1"],"mappings":"AAAA,OAAO,CAAC,UAAW,UAAW,8BAAkC,gCAAmC,CAAE,SAAU,EAAS,EAAS,EAAuB,EAAyB,CAC7K,aAAA,GAAAA,IAAA,OAAA,IAAAA,EAAA,OAAA,IACA,OAAO,eAAeC,EAAS,aAAc,CAAE,MAAO,GAAM,CAAC,CAC7D,EAAQ,aAAe,EAAQ,YAAc,EAAQ,iBAAmB,EAAQ,cAAgB,EAAQ,eAAiB,EAAQ,UAAY,EAAQ,WAAa,EAAQ,aAAe,IAAK,GAC9L,OAAO,eAAeA,EAAS,mBAAoB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOC,EAAsB,GAAM,CAAC,CAC9H,OAAO,eAAeD,EAAS,YAAa,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOC,EAAsB,GAAM,CAAC,CACvH,OAAO,eAAeD,EAAS,aAAc,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOC,EAAsB,GAAM,CAAC,CACxH,OAAO,eAAeD,EAAS,cAAe,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOC,EAAsB,GAAM,CAAC,CACzH,OAAO,eAAeD,EAAS,eAAgB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOC,EAAsB,GAAM,CAAC,CAC1H,OAAO,eAAeD,EAAS,eAAgB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOC,EAAsB,GAAM,CAAC,CAC1H,OAAO,eAAeD,EAAS,gBAAiB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOE,EAAwB,GAAM,CAAC,CAC7H,OAAO,eAAeF,EAAS,iBAAkB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOE,EAAwB,GAAM,CAAC,EAChI","sourcesContent":["define([\"require\", \"exports\", \"../.chunks/api-CawzY1Cw.esm.js\", \"../.chunks/field-CjkpGeA7.esm.js\"], function (require, exports, api_CawzY1Cw_esm_js_1, field_CjkpGeA7_esm_js_1) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.postInWindow = exports.isPublicAPI = exports.getBaseDomainUrl = exports.genFieldOrder = exports.genFieldFilter = exports.genExtRes = exports.dataToForm = exports.createClient = void 0;\n Object.defineProperty(exports, \"getBaseDomainUrl\", { enumerable: true, get: function () { return api_CawzY1Cw_esm_js_1.a; } });\n Object.defineProperty(exports, \"genExtRes\", { enumerable: true, get: function () { return api_CawzY1Cw_esm_js_1.i; } });\n Object.defineProperty(exports, \"dataToForm\", { enumerable: true, get: function () { return api_CawzY1Cw_esm_js_1.n; } });\n Object.defineProperty(exports, \"isPublicAPI\", { enumerable: true, get: function () { return api_CawzY1Cw_esm_js_1.o; } });\n Object.defineProperty(exports, \"postInWindow\", { enumerable: true, get: function () { return api_CawzY1Cw_esm_js_1.r; } });\n Object.defineProperty(exports, \"createClient\", { enumerable: true, get: function () { return api_CawzY1Cw_esm_js_1.t; } });\n Object.defineProperty(exports, \"genFieldOrder\", { enumerable: true, get: function () { return field_CjkpGeA7_esm_js_1.n; } });\n Object.defineProperty(exports, \"genFieldFilter\", { enumerable: true, get: function () { return field_CjkpGeA7_esm_js_1.t; } });\n});\n"]}
package/api/index.d.ts CHANGED
@@ -1 +1,2 @@
1
+ export * from '../src/api/api/index'
1
2
  export {}
package/api/index.js CHANGED
@@ -1,285 +1,3 @@
1
- import { g as z, a as j } from "../.chunks/field-CyyFzM-Y.es.js";
2
- const O = (o = {}) => (o = { ...o }, o.loadingEl ??= globalThis.document?.body, o.loadingShowSpinner ??= !0, o.method ??= "POST", o.accept ??= "application/json", o), S = (o, t, s) => ({
3
- result: o,
4
- errors: t,
5
- response: s
6
- }), k = (o) => o.startsWith("/system_2/common/"), A = (o = !1, t = window.location.href, s) => {
7
- const { protocol: e, hostname: r, port: n } = new URL(t), i = r.split("."), d = !o || i.length <= 2 || /^[\d.]+$/.test(r) || r === "localhost" ? r : i.slice(-2).join(".");
8
- return `${e}//${d}${n ? `:${n}` : ""}`;
9
- }, F = (o) => Object.values(o).some(
10
- (t) => t instanceof FileList || t instanceof File || t instanceof Blob || Array.isArray(t) && t.some((s) => s instanceof File || s instanceof Blob)
11
- ), C = (o, t, s) => {
12
- const e = {
13
- inLoading: !1,
14
- path: t,
15
- url: o.options.baseUrl + t,
16
- options: O(o.options.requestOptions),
17
- mockerOptions: void 0,
18
- params: {},
19
- // незаполненное свойство
20
- getInLoading: () => e.inLoading,
21
- setParams: (r) => (e.params = { ...r }, e),
22
- changeParams: (r) => (Object.assign(e.params, r), e),
23
- setOptions: (r) => (Object.assign(e.options, r), e),
24
- setMocker: (r) => (e.mockerOptions = r, e),
25
- call: async (r) => e.exec(r),
26
- callFetch: async (r, n) => e.exec(n, r),
27
- callInNewWindow: async (r) => {
28
- const n = e.genData(r), i = o.genMiddlewareCtx(e, n);
29
- o.options.onPrepareData?.(n, i);
30
- const { postInWindow: d } = await import("../.chunks/lazy-HKSyLh72.es.js");
31
- d(e.url, n, "_blank");
32
- },
33
- callInSelfWindow: async (r) => {
34
- const n = e.genData(r), i = o.genMiddlewareCtx(e, n);
35
- o.options.onPrepareData?.(n, i);
36
- const { postInWindow: d } = await import("../.chunks/lazy-HKSyLh72.es.js");
37
- d(e.url, n, "_self");
38
- },
39
- genData: (r, n) => {
40
- const i = { ...e.params };
41
- if (delete i.fetch_style, r) {
42
- let d = [...r];
43
- s && (d = d.filter((l) => s.includes(l))), i.fields = d;
44
- } else
45
- s && (i.fields = s);
46
- return n && (i.fetch_style = n), i;
47
- },
48
- abortByFingerprint: () => {
49
- if (!e.options.checkFingerprint) return;
50
- const r = e.path + e.options.checkFingerprint;
51
- o.abortControllers[r]?.abort(
52
- new DOMException(`Stopped previous request by fingerprint: ${e.options.checkFingerprint}`, "AbortError")
53
- );
54
- const n = new AbortController();
55
- return o.abortControllers[r] = n, n.signal;
56
- },
57
- /**
58
- * Общая функция выполнения запросов
59
- */
60
- async exec(r, n) {
61
- const i = o.options.Request, d = o.options.fetch, l = e.genData(r, n), g = o.genMiddlewareCtx(e, l);
62
- o.options.onPrepareData?.(l, g);
63
- const x = F(l);
64
- if (x && e.options.method !== "POST")
65
- throw new Error("Files can be sent only in POST requests");
66
- let R = e.url, y;
67
- if (x) {
68
- if (e.options.method !== "POST")
69
- throw new Error("Files can be sent only in POST requests");
70
- const { formDataSerializer: p } = await import("../.chunks/lazy-HKSyLh72.es.js");
71
- y = p(l);
72
- } else e.options.method !== "POST" ? R += "?" + await o.options.querySerializer(l) : y = o.options.bodySerializer(l);
73
- let E = e.abortByFingerprint();
74
- if (e.mockerOptions) {
75
- const { genMockResponse: p } = await import("../.chunks/index-DkQWJkMc.es.js");
76
- return await p(e.mockerOptions, r, l, E);
77
- }
78
- const P = {
79
- ...o.options,
80
- method: e.options.method,
81
- body: y,
82
- signal: E
83
- };
84
- let f = new i(R, P);
85
- f.headers.set("x-request-id", g.id), f.headers.set("accept", e.options.accept), x || f.headers.set("content-type", "application/json");
86
- const u = {
87
- ...g,
88
- request: f
89
- };
90
- e.inLoading = !0, e.options.onLoading?.(e.inLoading, u);
91
- let a;
92
- const w = await o.middlewareOnRequest(f, u);
93
- if (w instanceof Response ? a = w : w instanceof i && (f = w), !a)
94
- try {
95
- a = await d(f);
96
- } catch (p) {
97
- a = await o.middlewareOnError(p, u);
98
- } finally {
99
- e.inLoading = !1, e.options.onLoading?.(e.inLoading, u);
100
- }
101
- a = await o.middlewareOnResponse(a, u);
102
- let c, h, m;
103
- try {
104
- const p = a.headers.get("content-type")?.includes("application/json");
105
- h = await a.text(), this.options.accept === "application/json" || p ? c = JSON.parse(h) : o.useExt ? c = S(h, void 0, a) : c = h;
106
- } catch (p) {
107
- if ((p instanceof SyntaxError || p instanceof TypeError) && (m = p, m.responseText = h), o.useExt && m) {
108
- let b = a.status, q = a.statusText;
109
- b === 200 && (b = 1e4, q = "Error API response"), c = S(null, [
110
- {
111
- code: b,
112
- string: q
113
- }
114
- ], a), o.options.useApiConsole && console.error(p);
115
- } else
116
- throw p;
117
- }
118
- return o.useExt && (c.response = a, c && e.options.onApiLoaded?.(c, u, o.options.requestOptions?.onApiLoaded), c?.errors && (o.options.useApiConsole && console.warn(new Error("API error"), { res: c }), e.options.onApiError?.(c, { ...u, formatError: m }, o.options.requestOptions?.onApiError)), c?.messages && e.options.onApiMessage?.(c, u)), c;
119
- }
120
- };
121
- return e;
122
- };
123
- class I {
124
- options;
125
- useExt;
126
- middlewares = [];
127
- mokerByPath = /* @__PURE__ */ new Map();
128
- abortControllers = {};
129
- constructor(t = {}, s) {
130
- t.requestOptions = O(t.requestOptions), t.useApiConsole ??= !0, t.fetch ??= globalThis.fetch, t.Request ??= globalThis.Request, t.querySerializer ??= async (e) => {
131
- const { querySerializer: r } = await import("../.chunks/lazy-HKSyLh72.es.js");
132
- return r(e);
133
- }, t.bodySerializer ??= (e) => typeof e == "string" ? e : JSON.stringify(e), this.options = t, this.useExt = s;
134
- }
135
- generateUUID() {
136
- return crypto?.randomUUID ? crypto.randomUUID() : "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (t) => {
137
- const s = Math.random() * 16 | 0;
138
- return (t === "x" ? s : s & 3 | 8).toString(16);
139
- });
140
- }
141
- /**
142
- * Зарегистрировать middleware
143
- */
144
- use(t) {
145
- this.middlewares.push(t);
146
- }
147
- /**
148
- * Создать объект запроса
149
- *
150
- * После создания объекта он заполняется необходимыми данными и выполняет запросы к API с помощью APIRequest2.call();
151
- *
152
- * Опционально generic указывать нельзя, поэтому необходимо дублировать определение fetchStyle, [см.](https://github.com/Microsoft/TypeScript/issues/26242)
153
- *
154
- * @param path Путь метода API
155
- * @param fieldsNarrow Список получаемых полей, для методов API с моделью. Если объект запроса переиспользуется, и список полей меняется, указывайте его непосредственно при вызове `api.call()`
156
- */
157
- gen(t, s) {
158
- return C(this, t, s);
159
- }
160
- /**
161
- * Создать объект запроса, не описанного в OpenAPI
162
- */
163
- genAny(t, s) {
164
- return this.gen(t, s);
165
- }
166
- /**
167
- * Создать контекст выполнения запроса
168
- */
169
- genMiddlewareCtx(t, s) {
170
- const e = this.generateUUID(), r = Object.freeze({
171
- baseUrl: this.options.baseUrl,
172
- querySerializer: this.options.querySerializer,
173
- bodySerializer: this.options.bodySerializer,
174
- Request: this.options.Request,
175
- fetch: this.options.fetch
176
- });
177
- return {
178
- useExt: this.useExt,
179
- requestOptions: t.options,
180
- data: s,
181
- middlewareData: {},
182
- options: r,
183
- schemaPath: t.path,
184
- id: e
185
- };
186
- }
187
- /**
188
- * Обработчик middleware.onRequest
189
- *
190
- * @param request Запрос для обработки
191
- * @param middlewareCtx Контекст выполнения запроса
192
- * @return Новый экземпляр `Request` или `Response` при модификации запроса, или undefined
193
- */
194
- async middlewareOnRequest(t, s) {
195
- for (const e of this.middlewares) {
196
- const r = await e.onRequest?.({
197
- ...s,
198
- request: t
199
- });
200
- if (r)
201
- if (r instanceof Request)
202
- t = r;
203
- else {
204
- if (r instanceof Response)
205
- return r;
206
- throw new Error("onRequest: must return new Request() or Response() when modifying the request");
207
- }
208
- }
209
- return t;
210
- }
211
- /**
212
- * Обработчик middleware.onResponse
213
- *
214
- * @param `error` Ошибка, переданная для обработки
215
- * @param middlewareCtx
216
- * @return Новый экземпляр `Response` при успешной обработке или выбрасывает ошибку
217
- */
218
- async middlewareOnError(t, s) {
219
- let e = t;
220
- for (const r of this.middlewares) {
221
- const n = await r.onError?.({
222
- ...s,
223
- error: e
224
- });
225
- if (n) {
226
- if (n instanceof Response)
227
- return n;
228
- if (n instanceof Error) {
229
- e = n;
230
- continue;
231
- }
232
- throw new Error("onError: must return new Response() or instance of Error");
233
- }
234
- }
235
- throw e;
236
- }
237
- /**
238
- * Обработчик middleware.onResponse
239
- *
240
- * @param response Ответ для обработки
241
- * @param middlewareCtx Контекст выполнения запроса
242
- * @return Новый экземпляр `Response` при модификации ответа, или undefined
243
- */
244
- async middlewareOnResponse(t, s) {
245
- for (const e of this.middlewares) {
246
- const r = await e.onResponse?.({
247
- ...s,
248
- response: t
249
- });
250
- if (r) {
251
- if (!(r instanceof Response))
252
- throw new Error("onResponse: must return new Response() when modifying the response");
253
- t = r;
254
- }
255
- }
256
- return t;
257
- }
258
- /**
259
- * Установить генератор данных вместо реальных запросов к серверу для конкретного метода API
260
- */
261
- setMocker(t, s) {
262
- this.mokerByPath.set(t, s), this.genOriginal || (this.genOriginal = this.gen.bind(this), this.gen = (e, r) => {
263
- const n = this.genOriginal(e, r), i = this.mokerByPath.get(e);
264
- return i && n.setMocker(i), n;
265
- });
266
- }
267
- }
268
- const T = async (...o) => {
269
- const { postInWindow: t } = await import("../.chunks/lazy-HKSyLh72.es.js");
270
- return t(...o);
271
- }, D = async (...o) => {
272
- const { dataToForm: t } = await import("../.chunks/lazy-HKSyLh72.es.js");
273
- return t(...o);
274
- }, M = (o = {}, t) => new I(o, t);
275
- export {
276
- M as createClient,
277
- D as dataToForm,
278
- S as genExtRes,
279
- z as genFieldFilter,
280
- j as genFieldOrder,
281
- A as getBaseDomainUrl,
282
- k as isPublicAPI,
283
- T as postInWindow
284
- };
285
- //# sourceMappingURL=index.js.map
1
+ import { a as e, i as t, n, o as r, r as i, t as a } from "../.chunks/api-CawzY1Cw.esm.js";
2
+ import { n as o, t as s } from "../.chunks/field-CjkpGeA7.esm.js";
3
+ export { a as createClient, n as dataToForm, t as genExtRes, s as genFieldFilter, o as genFieldOrder, e as getBaseDomainUrl, r as isPublicAPI, i as postInWindow };
package/assets/charts.css CHANGED
@@ -1 +1 @@
1
- .top-miniChart{cursor:default;box-sizing:border-box;border-color:transparent;height:100%;position:relative;display:flex;flex:1 1 auto;flex-direction:column;align-items:stretch;font-size:12px}.top-miniChart:not(:last-child){margin-right:32px}.top-miniChart:not(:last-child):after{content:"";width:1px;background-color:var(--color-line-1-opacity);position:absolute;top:0;right:-16px;bottom:0}.top-miniChart_title{--top-icon-size: 16px;--top-icon-width: 16px;width:auto;max-height:18px;max-width:100%;padding-right:24px;font-size:14px}.top-miniChart_title[data-top-icon]:before{border-radius:50%;margin-right:4px}.top-miniChart.top-color_orange .top-miniChart_title[data-top-icon]:before{background:var(--color-layer-warning-2)}.top-miniChart.top-color_pink .top-miniChart_title[data-top-icon]:before{background:var(--color-layer-info-2)}.top-miniChart.top-color_blue .top-miniChart_title[data-top-icon]:before{background:var(--color-layer-primary-2)}.top-miniChart_data{pointer-events:none;text-align:right;position:absolute;top:0;right:0;bottom:0;display:flex;flex-direction:column;justify-content:space-between}.top-miniChart_dataDynamic:before{content:"––"}.top-miniChart_dataDynamic-direction_up{color:var(--color-text-positive)}.top-miniChart_dataDynamic-direction_up:before{content:"+"}.top-miniChart_dataDynamic-direction_stay{color:var(--color-text-warning)}.top-miniChart_dataDynamic-direction_down{color:var(--color-text-negative)}.top-miniChart_dataDynamic-direction_down:before{content:"–"}.top-miniChart_chart{margin:3px 0 20px;border-top:1px solid var(--color-line-1);border-bottom:1px solid var(--color-line-1);padding:2px 0;display:block;flex-grow:1}.top-miniChart_chartGrid{height:100%;width:100%;overflow:hidden;display:grid;grid-template-columns:repeat(auto-fill,6px);grid-auto-rows:100%;gap:2px 0;align-items:end;justify-content:space-between;direction:rtl}.top-miniChart_chartGridCol{cursor:pointer;border-radius:2px;height:100%;padding:0 1px;opacity:1;display:flex;flex-direction:column-reverse}.top-miniChart_chartGridCol:not(.top-active){opacity:.3}.top-miniChart_chartGridCol:hover{background:var(--color-layer-3);opacity:.7}.top-miniChart_chartGridCol>div{border-radius:inherit;background:var(--color-layer-3)}.top-miniChart.top-color_orange .top-miniChart_chartGridCol>div{background:var(--color-line-warning-1)}.top-miniChart.top-color_pink .top-miniChart_chartGridCol>div{background:var(--color-line-info-1)}.top-miniChart.top-color_blue .top-miniChart_chartGridCol>div{background:var(--color-line-primary-1)}.top-miniChart_chartGridCol-none{cursor:default}.top-miniChart_chartGridCol-none>div{background:var(--color-theme-100)!important;height:2px}@media only screen and (max-width:900px){.top-miniChart_hideChartInMobile{width:1px;align-items:center;justify-content:center;gap:var(--top-gap-1);box-shadow:var(--top-shadow-s);border-radius:var(--top-radius-2);padding:var(--top-padding-1);background:var(--color-layout-front-1)}.top-miniChart_hideChartInMobile:not(:last-child){margin:0}.top-miniChart_hideChartInMobile:not(:last-child):after{content:none}.top-miniChart_hideChartInMobile .top-miniChart_title{height:auto;padding:0;line-height:1;font-size:12px;flex-grow:0}.top-miniChart_hideChartInMobile .top-miniChart_chart{display:none}.top-miniChart_hideChartInMobile .top-miniChart_data{font-size:10px;line-height:1;pointer-events:unset;text-align:unset;position:unset;flex-direction:unset;justify-content:unset}.top-miniChart_hideChartInMobile .top-miniChart_dataDynamic{order:1;margin-left:4px}}.top-miniCharts{position:relative;max-width:1650px;height:100%;overflow:hidden;row-gap:var(--top-gap-2);display:flex;flex-wrap:wrap;flex-grow:1}.top-miniCharts_pages{height:100%;margin-left:-6px;position:sticky;top:0;left:calc(100% - 6px);order:-1;display:flex;flex-direction:column;justify-content:center}.top-miniCharts_pages>span{cursor:pointer;border-radius:50%;background:var(--color-layer-primary-2);width:6px;height:6px;margin:8px 0 0}.top-miniCharts_pages>span:first-child{margin-top:0}.top-miniCharts_pages>span.top-active,.top-miniCharts_pages>span:hover{background:var(--color-text-primary)}.top-miniCharts_tooltip{cursor:default;box-shadow:var(--top-shadow-b);border-radius:var(--top-radius-2);background:var(--content-background-color);padding:var(--top-padding-2);font-size:12px;white-space:nowrap;position:absolute;top:0;left:0;overflow:hidden;z-index:200000;display:flex;gap:0 var(--top-gap-2);align-items:center;transition:.2s;pointer-events:none}.top-miniCharts_tooltip>span:first-child{color:var(--color-text-3)}@media only screen and (max-width:900px){.top-miniCharts_hideChartInMobile{border:none;background:none;width:100%;padding:0;gap:var(--top-gap-2);flex-grow:1;flex-wrap:nowrap;overflow:hidden}.top-miniCharts_hideChartInMobile>.top-miniCharts_pages{display:none}}
1
+ .top-miniChart{cursor:default;box-sizing:border-box;border-color:#0000;flex-direction:column;flex:auto;align-items:stretch;height:100%;font-size:12px;display:flex;position:relative}.top-miniChart:not(:last-child){margin-right:32px}.top-miniChart:not(:last-child):after{content:"";background-color:var(--color-line-1-opacity);width:1px;position:absolute;top:0;bottom:0;right:-16px}.top-miniChart_title{--top-icon-size:16px;--top-icon-width:16px;width:auto;max-width:100%;max-height:18px;padding-right:24px;font-size:14px}.top-miniChart_title[data-top-icon]:before{border-radius:50%;margin-right:4px}.top-miniChart.top-color_orange .top-miniChart_title[data-top-icon]:before{background:var(--color-layer-warning-2)}.top-miniChart.top-color_pink .top-miniChart_title[data-top-icon]:before{background:var(--color-layer-info-2)}.top-miniChart.top-color_blue .top-miniChart_title[data-top-icon]:before{background:var(--color-layer-primary-2)}.top-miniChart_data{pointer-events:none;text-align:right;flex-direction:column;justify-content:space-between;display:flex;position:absolute;top:0;bottom:0;right:0}.top-miniChart_dataDynamic:before{content:"––"}.top-miniChart_dataDynamic-direction_up{color:var(--color-text-positive)}.top-miniChart_dataDynamic-direction_up:before{content:"+"}.top-miniChart_dataDynamic-direction_stay{color:var(--color-text-warning)}.top-miniChart_dataDynamic-direction_down{color:var(--color-text-negative)}.top-miniChart_dataDynamic-direction_down:before{content:"–"}.top-miniChart_chart{border-top:1px solid var(--color-line-1);border-bottom:1px solid var(--color-line-1);flex-grow:1;margin:3px 0 20px;padding:2px 0;display:block}.top-miniChart_chartGrid{direction:rtl;grid-template-columns:repeat(auto-fill,6px);grid-auto-rows:100%;justify-content:space-between;align-items:end;gap:2px 0;width:100%;height:100%;display:grid;overflow:hidden}.top-miniChart_chartGridCol{cursor:pointer;opacity:1;border-radius:2px;flex-direction:column-reverse;height:100%;padding:0 1px;display:flex}.top-miniChart_chartGridCol:not(.top-active){opacity:.3}.top-miniChart_chartGridCol:hover{background:var(--color-layer-3);opacity:.7}.top-miniChart_chartGridCol>div{border-radius:inherit;background:var(--color-layer-3)}.top-miniChart.top-color_orange .top-miniChart_chartGridCol>div{background:var(--color-line-warning-1)}.top-miniChart.top-color_pink .top-miniChart_chartGridCol>div{background:var(--color-line-info-1)}.top-miniChart.top-color_blue .top-miniChart_chartGridCol>div{background:var(--color-line-primary-1)}.top-miniChart_chartGridCol-none{cursor:default}.top-miniChart_chartGridCol-none>div{height:2px;background:var(--color-theme-100)!important}@media only screen and (max-width:900px){.top-miniChart_hideChartInMobile{justify-content:center;align-items:center;gap:var(--top-gap-1);width:1px;box-shadow:var(--top-shadow-s);border-radius:var(--top-radius-2);padding:var(--top-padding-1);background:var(--color-layout-front-1)}.top-miniChart_hideChartInMobile:not(:last-child){margin:0}.top-miniChart_hideChartInMobile:not(:last-child):after{content:none}.top-miniChart_hideChartInMobile .top-miniChart_title{flex-grow:0;height:auto;padding:0;font-size:12px;line-height:1}.top-miniChart_hideChartInMobile .top-miniChart_chart{display:none}.top-miniChart_hideChartInMobile .top-miniChart_data{pointer-events:unset;text-align:unset;position:unset;flex-direction:unset;justify-content:unset;font-size:10px;line-height:1}.top-miniChart_hideChartInMobile .top-miniChart_dataDynamic{order:1;margin-left:4px}}.top-miniCharts{row-gap:var(--top-gap-2);flex-wrap:wrap;flex-grow:1;max-width:1650px;height:100%;display:flex;position:relative;overflow:hidden}.top-miniCharts_pages{flex-direction:column;order:-1;justify-content:center;height:100%;margin-left:-6px;display:flex;position:sticky;top:0;left:calc(100% - 6px)}.top-miniCharts_pages>span{cursor:pointer;background:var(--color-layer-primary-2);border-radius:50%;width:6px;height:6px;margin:8px 0 0}.top-miniCharts_pages>span:first-child{margin-top:0}.top-miniCharts_pages>span.top-active,.top-miniCharts_pages>span:hover{background:var(--color-text-primary)}.top-miniCharts_tooltip{cursor:default;box-shadow:var(--top-shadow-b);border-radius:var(--top-radius-2);background:var(--content-background-color);padding:var(--top-padding-2);white-space:nowrap;z-index:200000;gap:0 var(--top-gap-2);pointer-events:none;align-items:center;font-size:12px;transition:all .2s;display:flex;position:absolute;top:0;left:0;overflow:hidden}.top-miniCharts_tooltip>span:first-child{color:var(--color-text-3)}@media only screen and (max-width:900px){.top-miniCharts_hideChartInMobile{gap:var(--top-gap-2);background:0 0;border:none;flex-wrap:nowrap;flex-grow:1;width:100%;padding:0;overflow:hidden}.top-miniCharts_hideChartInMobile>.top-miniCharts_pages{display:none}}
package/assets/core.css CHANGED
@@ -1 +1 @@
1
- button,input,textarea,select{border:1px solid var(--top-forms-border-color);background:var(--top-forms-background-color);color:var(--color-text-1);font-size:var(--top-font-size);font-family:inherit}::placeholder{color:var(--top-forms-placeholder-color)}[contenteditable][placeholder]:empty:before{content:attr(placeholder);color:var(--color-text-2)}.top-forms-optionWrapper{cursor:pointer;padding:8px 0;color:var(--color-text-1);line-height:1.3;display:inline-flex;align-items:flex-start;gap:4px}.top-forms-option{cursor:pointer;padding:0;margin:3px;display:inline-flex;flex-shrink:0;appearance:none;-webkit-appearance:none}.top-forms-focusable:focus-visible,.top-focus{outline:2px solid var(--color-line-primary-1);outline-offset:2px;position:relative;z-index:1;transition:border-color .15s}.top-forms-focusable:hover,.top-forms-focusable:focus,.top-forms-focusable:focus-within,.top-focus:hover,.top-focus:focus,.top-input:hover>.top-input_input,.top-select:hover>.top-select_select{--top-forms-border-color: var(--top-forms-border-color-hover);--top-forms-background-color: var(--top-forms-background-color-hover)}[contenteditable]:focus-visible,.top-selector-multiselect:focus-within{outline:2px solid var(--color-line-primary-1)}:root{--top-font-size: 14px;--top-font-size-s: 12px;--top-font-size-xs: 10px;--top-forms-radius: 8px;--top-forms-border-width: 1px;--top-style_outline-color: transparent;--top-forms-base-height_xs: 24px;--top-forms-base-height_s: 32px;--top-forms-base-height_m: 36px;--top-forms-base-height_l: 40px;--top-forms-background-color-regular: var(--color-layout-front-1);--top-forms-background-color-regular-hover: var(--color-layout-front-1);--top-forms-background-color-light: var(--top-forms-background-color-regular);--top-forms-background-color-light-hover: var(--top-forms-background-color-regular);--top-forms-background-color-soft: var(--color-theme-75);--top-forms-background-color-soft-hover: var(--color-bg-shading-2);--top-forms-background-color-transparent: transparent;--top-forms-background-color-transparent-hover: var(--color-layout-front-3);--top-forms-base-height: var(--top-forms-base-height_s);--top-forms-padding_xs: 6px;--top-forms-padding_s: 8px;--top-forms-padding_m: 10px;--top-forms-padding_l: 12px;--top-forms-padding: var(--top-forms-padding_s);--top-forms-option-height: 24px;--top-selector-arrow-width: 0px;--top-forms_clear-width: 0px;--top-forms-border-color: var(--color-line-1);--top-forms-border-color-hover: var(--color-line-primary-1);--top-forms-placeholder-color: var(--color-text-3);--top-forms-placeholder-color-active: var(--color-text-2);--top-forms-background-color: var(--color-layout-front-1);--top-forms-background-color-hover: var(--color-layout-front-1)}.top-style_light{--top-forms-radius: 0;border-top-width:0!important;border-left-width:0!important;border-right-width:0!important}.top-style_soft,.top-style_transparent{--top-forms-border-color: transparent;--top-forms-border-color-hover: transparent}.top-style_soft{--top-forms-background-color: var(--top-forms-background-color-soft);--top-forms-background-color-hover: var(--top-forms-background-color-soft-hover)}.top-style_transparent{--top-forms-background-color: var(--top-forms-background-color-transparent);--top-forms-background-color-hover: var(--top-forms-background-color-transparent-hover)}.top-size_xs{--top-forms-base-height: var(--top-forms-base-height_xs)}.top-size_s{--top-forms-base-height: var(--top-forms-base-height_s)}.top-size_m{--top-forms-base-height: var(--top-forms-base-height_m)}.top-size_l{--top-forms-base-height: var(--top-forms-base-height_l)}.top-input_input,.top-textarea_textarea,.top-editArea_form,.top-select_select,.top-as-input{box-sizing:border-box;border-radius:var(--top-forms-radius);border:var(--top-forms-border-width) solid var(--top-forms-border-color);background-color:var(--top-forms-background-color);color:var(--color-text-2);min-height:var(--top-forms-base-height);display:inline-flex;appearance:none;-webkit-appearance:none}.top-input_input:hover,.top-textarea_textarea:hover,.top-editArea_form:hover,.top-select_select:hover,.top-as-input:hover{background-color:var(--top-forms-background-color-hover)}.top-input_input:focus,.top-textarea_textarea:focus,.top-editArea_form:focus,.top-select_select:focus,.top-as-input:focus,.top-as-input:focus-within{background-color:var(--top-forms-background-color-hover);color:var(--color-text-1)}.top-select_select{padding-right:calc(var(--top-forms-padding) + var(--top-forms_clear-width) + var(--top-selector-arrow-width))}.top-select{position:relative}.top-select[data-top-icon]:before,.top-select[data-top-icon2]:after{position:absolute;z-index:3}.top-select[data-top-icon][data-top-icon2]:after{left:calc(var(--top-icon-width))}.top-cleaner[data-top-icon]{--top-icon-size: 20px;--top-icon-width: 20px;--top-icon-color: var(--color-text-secondary);cursor:pointer;border-radius:50%;width:30px;height:24px;margin-left:-34px;transform:translate(calc(0px - var(--top-forms-border-width) - var(--top-selector-arrow-width)));display:flex;align-items:center;justify-content:center;position:relative;z-index:1}.top-cleaner[data-top-icon]:hover{--top-icon-color: var(--color-text-secondary-2)}.top-as-selector{--top-selector-arrow-size: 12px;--top-selector-arrow-width: 24px;background-image:url("data:image/svg+xml,%3Csvg width='16' height='9' viewBox='0 0 16 9' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M14.293 0.29269L8 6.5857L1.70704 0.29269C1.31679 -0.0975633 0.682937 -0.0975633 0.292687 0.29269C-0.0975624 0.682943 -0.0975624 1.31656 0.292687 1.70682L7.29294 8.70713C7.68343 9.09762 8.31657 9.09762 8.70706 8.70713L15.7073 1.70682C16.0976 1.31656 16.0976 0.682943 15.7073 0.29269C15.3171 -0.0975633 14.6832 -0.0975633 14.293 0.29269Z' fill='%23808A99'/%3E%3C/svg%3E");background-size:14px;background-position:calc(100% - var(--top-forms-padding)) 50%;background-repeat:no-repeat;padding-right:calc(var(--top-selector-arrow-width) + var(--top-padding-2))}.top-as-selector.top-button{padding-right:calc(var(--top-selector-arrow-width) + var(--top-padding-2))}.top-as-selector~.top-cleaner{--top-selector-arrow-width: 24px}.top-as-a{cursor:pointer;color:var(--color-text-primary)}.top-as-a:hover{text-decoration:underline}.top-ellipsis,.top-ellipsis1{max-height:100%;line-height:1.26;text-overflow:ellipsis;overflow:hidden;flex-grow:1}.top-ellipsis1{white-space:nowrap}.top-ellipsis2,.top-ellipsis3{max-width:fit-content;line-height:1.26;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.top-ellipsis3{-webkit-line-clamp:3}.top-hidden{display:none!important}.top-unvisible{width:0;height:0;overflow:hidden;position:absolute;-webkit-appearance:none;appearance:none;border:none}.top-unvisible:focus-visible{outline:none}.top-disabled{pointer-events:none;-webkit-user-select:none;user-select:none}:disabled:not(option):not(optgroup),:disabled~.top-formsCaption,.top-disabled{opacity:.4;filter:grayscale(100%)}.top-input.top-disabled,.top-select.top-disabled{filter:unset}.top-input_input:disabled,.top-textarea_textarea:disabled,.top-select_select:disabled{opacity:1;background-color:var(--color-bg-shading-3);filter:unset}.top-checkbox_input:not(:checked):not(:indeterminate):disabled,.top-radio_input:not(:checked):disabled,.top-checkboxSwitcher_input:disabled{opacity:1;background-color:var(--color-layer-1)}.top-checkboxSwitcher_input:disabled{background-color:var(--color-layer-4)}.top-error,.top-error::placeholder,.top-error:before{--top-forms-border-color: var(--color-line-negative-1);border-color:var(--color-line-negative-1)}.top-error{--top-icon-color: var(--color-text-negative);color:var(--color-text-negative)}input.top-error:focus,textarea.top-error:focus,select.top-error:focus,div.top-error:focus{outline-color:var(--color-line-negative-1);border-color:var(--color-line-negative-1)}.top-error~.top-formsCaption{color:var(--color-text-negative)}.top-warning{--top-icon-color: var(--color-text-warning);color:var(--color-text-warning)}.top-forms-focusable.top-error{--top-error-keyframes-outline-color-100: transparent;animation:top-error .6s ease-out}.top-forms-focusable.top-error:focus{--top-error-keyframes-outline-color-100: var(--color-line-negative-1)}@keyframes top-error{0%{outline-offset:10px;outline:3px solid transparent}50%{outline-offset:2px;outline:3px solid var(--color-line-negative-1)}to{outline-offset:2px;outline:2px solid var(--top-error-keyframes-outline-color-100)}}@media only screen and (min-width:900px){.top-only-mobile{display:none!important}}@media only screen and (max-width:900px){.top-only-pc{display:none!important}}html:not([lang=ru]) .top-only-ru,html:not([lang=en]) .top-only-en{display:none!important}html[data-is-admin="0"] .top-only-admin,html[data-is-admin="1"] .top-only-no-admin{display:none!important}.has_scroll_container{transform:translate(0)}.has_scroll{--scroll-offset-top: 0px;--scroll-padding-top: 0px;--scroll-padding-bottom: 0px;--scroll-height: 0px;--scroll-shadow-height: 15px;--scroll-shadow-color: rgba(0, 0, 0, .1)}.has_scroll:before{pointer-events:none;content:"";background:linear-gradient(180deg,transparent calc(100% - var(--scroll-shadow-height)),var(--scroll-shadow-color));height:calc(var(--scroll-height) - var(--scroll-padding-top) - var(--scroll-padding-bottom));position:fixed;top:calc(var(--scroll-offset-top) + var(--scroll-padding-top));right:0;left:0;z-index:2;display:block}.has_scroll-started:before{background:linear-gradient(180deg,var(--scroll-shadow-color),transparent var(--scroll-shadow-height),transparent calc(100% - var(--scroll-shadow-height)),var(--scroll-shadow-color))}.has_scroll-finished:before{background:linear-gradient(180deg,var(--scroll-shadow-color),transparent var(--scroll-shadow-height))}.top-scrollBarXHidding{scrollbar-width:none;overflow-x:auto;overflow-y:hidden}.top-scrollBarXHidding:hover{scrollbar-width:thin}.top-scrollBarXHidding::-webkit-scrollbar{height:6px;display:none}.top-scrollBarXHidding:hover::-webkit-scrollbar{display:block;scrollbar-width:thin}.top-scrollBarXHidding::-webkit-scrollbar-track{background-color:transparent;box-shadow:inset #0000000f 0 0 0 10px}.top-scrollBarXHidding::-webkit-scrollbar-track:hover{box-shadow:inset #00000014 0 0 0 10px}.top-scrollBarXHidding::-webkit-scrollbar-track:active{box-shadow:inset #0000001a 0 0 0 10px}.top-scrollBarXHidding::-webkit-scrollbar-thumb{background-color:var(--color-line-1-opacity)}.top-scrollBarXHidding::-webkit-scrollbar-thumb:hover{background-color:var(--color-line-2-opacity)}.top-scrollBarXHidding::-webkit-scrollbar-thumb:active{background-color:var(--color-line-3-opacity)}.top-scrollBarXHidding::-webkit-scrollbar-button{width:0;height:0}[data-top-badge]{position:relative;width:0;margin:-3px 16px 0 -16px;display:flex;align-self:flex-start}[data-top-badge]:after{content:attr(data-top-badge);border-radius:4px;padding:2px 3px;background:var(--color-bg-negative-1);color:var(--color-text-white);font-size:12px}:root{--color-tag-1: #bdc3c7;--color-tag-2: #FD6052;--color-tag-3: #F48D09;--color-tag-4: #F4D30C;--color-tag-5: #5AACFD;--color-tag-6: #C98AE4;--color-tag-7: #A7DE59;--color-tag-8: #e44097;--color-tag-9: #0354a5;--color-tag-10: #33b8a5;--color-tag-all: var(--color-text-3)}.top-comment{color:var(--color-text-3);font-size:12px}img.top-flag{box-shadow:#0003 0 0 3px;width:24px;height:15px;margin:0 6px 0 0;flex-grow:0!important;flex-shrink:0!important}:root{--top-formsCaption-offset: 16px}.top-formsCaptionWrapper{padding-top:20px}.top-formsCaption{pointer-events:none;width:calc(100% - var(--top-forms-padding) - var(--top-icon-both-width) - var(--top-forms_clear-width) - var(--top-selector-arrow-width));padding:0 var(--top-forms-padding);color:var(--top-forms-placeholder-color);white-space:nowrap;text-overflow:ellipsis;transform:translate(var(--top-icon-both-width));position:absolute;overflow:hidden;transition:.1s}.top-error~.top-formsCaption{transition:.1s .1s}.top-formsCaption *{pointer-events:auto}.top-formsCaptionWrapper>input:not([readonly]):focus~.top-formsCaption,.top-formsCaptionWrapper>input:not(:placeholder-shown)~.top-formsCaption,.top-formsCaptionWrapper>textarea:not(:placeholder-shown)~.top-formsCaption,.top-formsCaptionWrapper.top-select>.top-formsCaption,.top-formsCaptionWrapper.top-inputRange>.top-formsCaption,.top-formsCaptionWrapper-always>.top-formsCaption{width:100%;padding:0;color:var(--top-forms-placeholder-color-active);font-size:11px;transform:translateY(calc(-1em - var(--top-formsCaption-offset)));transition:.1s}html .ui-tooltip{pointer-events:none;box-shadow:0 6px 18px #0e152f21,0 -2px 6px #0e152f08;border:none;background:var(--color-layout-front-1);width:max-content;padding:var(--top-padding-4);margin:0 var(--top-padding-4);font-size:13px;z-index:200000}.ui-tooltip.ui-corner-all{border-radius:var(--top-padding-2)}.ui-tooltip img{margin:var(--top-padding-3) 0 0 0}.ui-tooltip ul{margin-left:24px}:root{--top-icon-size: 24px;--top-icon-width: 0px;--top-icon2-size: 24px;--top-icon2-width: 0px;--top-icon-both-width: 0px}[data-top-icon]{--top-icon-width: calc(var(--top-icon-size) + var(--top-forms-padding));--top-icon-color: inherit}[data-top-icon2]{--top-icon2-width: calc(var(--top-icon2-size) + 8px);--top-icon2-color: inherit}[data-top-icon=""]{--top-icon-width: 0px}[data-top-icon2=""]{--top-icon2-width: 0px}[data-top-icon]:before,[data-top-icon2]:after{pointer-events:none;content:attr(data-top-icon);border-radius:var(--top-forms-radius);width:var(--top-icon-width);color:var(--top-icon-color);font-family:Topvisor-2;font-size:var(--top-icon-size);font-weight:400;line-height:1;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}[data-top-icon2]:after{content:attr(data-top-icon2);width:var(--top-icon2-width);color:var(--top-icon2-color);font-size:var(--top-icon2-size)}[data-top-icon],[data-top-icon2]{--top-icon-both-width: calc(var(--top-icon-width) + var(--top-icon2-width))}[data-top-icon=]:before{font-family:Topvisor}:root{--top-line-heihgt: 1.36;--top-page-width: 1180px;--100vh: 100dvh;--top-scrollbar-width: 6px;--transition: .2s ease-in-out;--transition-fast: .1s;--transition-normal: .3s;--transition-slow: .5s;--top-padding-1: 4px;--top-padding-2: 8px;--top-padding-3: 12px;--top-padding-4: 16px;--top-padding-5: 20px;--top-padding-6: 24px;--top-padding-7: 28px;--top-padding-8: 32px;--top-padding-9: 36px;--top-padding-10: 40px;--top-padding-11: 44px;--top-padding-12: 48px;--top-gap-1: 4px;--top-gap-2: 8px;--top-gap-3: 12px;--top-gap-4: 16px;--top-gap-5: 20px;--top-gap-6: 24px;--top-gap-7: 28px;--top-gap-8: 32px;--top-gap-9: 36px;--top-gap-10: 40px;--top-gap-11: 44px;--top-gap-12: 48px;--top-radius-1: 4px;--top-radius-2: 8px;--top-radius-3: 12px;--top-radius-4: 16px;--top-radius-5: 20px;--top-radius-6: 24px;--top-radius-7: 28px;--top-radius-8: 32px;--top-radius-9: 36px;--top-radius-10: 40px;--top-radius-11: 44px;--top-radius-12: 48px;--padding-default: var(--top-padding-4)}@media only screen and (max-width:900px){:root{--padding-default: var(--top-padding-3)}}.ui-widget-content{background:var(--color-layout-front-1);color:var(--color-text-1)}
1
+ button,input,textarea,select{border:1px solid var(--top-forms-border-color);background:var(--top-forms-background-color);color:var(--color-text-1);font-size:var(--top-font-size);font-family:inherit}::placeholder{color:var(--top-forms-placeholder-color)}[contenteditable][placeholder]:empty:before{content:attr(placeholder);color:var(--color-text-2)}.top-forms-optionWrapper{cursor:pointer;color:var(--color-text-1);align-items:flex-start;gap:4px;padding:8px 0;line-height:1.3;display:inline-flex}.top-forms-option{cursor:pointer;-webkit-appearance:none;appearance:none;flex-shrink:0;margin:3px;padding:0;display:inline-flex}.top-focus{outline:2px solid var(--color-line-primary-1);outline-offset:2px;z-index:1;transition:border-color .15s;position:relative}.top-forms-focusable:focus-visible{outline:2px solid var(--color-line-primary-1);outline-offset:2px;z-index:1;transition:border-color .15s;position:relative}.top-forms-focusable:hover,.top-forms-focusable:focus,.top-forms-focusable:focus-within,.top-focus:hover,.top-focus:focus,.top-input:hover>.top-input_input,.top-select:hover>.top-select_select{--top-forms-border-color:var(--top-forms-border-color-hover);--top-forms-background-color:var(--top-forms-background-color-hover)}:is([contenteditable]:focus-visible,.top-selector-multiselect:focus-within){outline:2px solid var(--color-line-primary-1)}:root{--top-font-size:14px;--top-font-size-s:12px;--top-font-size-xs:10px;--top-forms-radius:8px;--top-forms-border-width:1px;--top-style_outline-color:transparent;--top-forms-base-height_xs:24px;--top-forms-base-height_s:32px;--top-forms-base-height_m:36px;--top-forms-base-height_l:40px;--top-forms-background-color-regular:var(--color-layout-front-1);--top-forms-background-color-regular-hover:var(--color-layout-front-1);--top-forms-background-color-light:var(--top-forms-background-color-regular);--top-forms-background-color-light-hover:var(--top-forms-background-color-regular);--top-forms-background-color-soft:var(--color-theme-75);--top-forms-background-color-soft-hover:var(--color-bg-shading-2);--top-forms-background-color-transparent:transparent;--top-forms-background-color-transparent-hover:var(--color-layout-front-3);--top-forms-base-height:var(--top-forms-base-height_s);--top-forms-padding_xs:6px;--top-forms-padding_s:8px;--top-forms-padding_m:10px;--top-forms-padding_l:12px;--top-forms-padding:var(--top-forms-padding_s);--top-forms-option-height:24px;--top-selector-arrow-width:0px;--top-forms_clear-width:0px;--top-forms-border-color:var(--color-line-1);--top-forms-border-color-hover:var(--color-line-primary-1);--top-forms-placeholder-color:var(--color-text-3);--top-forms-placeholder-color-active:var(--color-text-2);--top-forms-background-color:var(--color-layout-front-1);--top-forms-background-color-hover:var(--color-layout-front-1)}.top-style_light{--top-forms-radius:0;border-top-width:0!important;border-left-width:0!important;border-right-width:0!important}.top-style_soft,.top-style_transparent{--top-forms-border-color:transparent;--top-forms-border-color-hover:transparent}.top-style_soft{--top-forms-background-color:var(--top-forms-background-color-soft);--top-forms-background-color-hover:var(--top-forms-background-color-soft-hover)}.top-style_transparent{--top-forms-background-color:var(--top-forms-background-color-transparent);--top-forms-background-color-hover:var(--top-forms-background-color-transparent-hover)}.top-size_xs{--top-forms-base-height:var(--top-forms-base-height_xs)}.top-size_s{--top-forms-base-height:var(--top-forms-base-height_s)}.top-size_m{--top-forms-base-height:var(--top-forms-base-height_m)}.top-size_l{--top-forms-base-height:var(--top-forms-base-height_l)}.top-input_input,.top-textarea_textarea,.top-editArea_form,.top-select_select,.top-as-input{box-sizing:border-box;border-radius:var(--top-forms-radius);border:var(--top-forms-border-width) solid var(--top-forms-border-color);background-color:var(--top-forms-background-color);color:var(--color-text-2);min-height:var(--top-forms-base-height);-webkit-appearance:none;appearance:none;display:inline-flex}.top-input_input:hover,.top-textarea_textarea:hover,.top-editArea_form:hover,.top-select_select:hover,.top-as-input:hover{background-color:var(--top-forms-background-color-hover)}.top-input_input:focus,.top-textarea_textarea:focus,.top-editArea_form:focus,.top-select_select:focus,.top-as-input:focus,.top-as-input:focus-within{background-color:var(--top-forms-background-color-hover);color:var(--color-text-1)}.top-select_select{padding-right:calc(var(--top-forms-padding) + var(--top-forms_clear-width) + var(--top-selector-arrow-width))}.top-select{position:relative}.top-select[data-top-icon]:before,.top-select[data-top-icon2]:after{z-index:3;position:absolute}.top-select[data-top-icon][data-top-icon2]:after{left:calc(var(--top-icon-width))}.top-cleaner[data-top-icon]{--top-icon-size:20px;--top-icon-width:20px;--top-icon-color:var(--color-text-secondary);cursor:pointer;width:30px;height:24px;transform:translateX(calc(0px - var(--top-forms-border-width) - var(--top-selector-arrow-width)));z-index:1;border-radius:50%;justify-content:center;align-items:center;margin-left:-34px;display:flex;position:relative}.top-cleaner[data-top-icon]:hover{--top-icon-color:var(--color-text-secondary-2)}.top-as-selector{--top-selector-arrow-size:12px;--top-selector-arrow-width:24px;background-image:url("data:image/svg+xml,%3Csvg width='16' height='9' viewBox='0 0 16 9' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M14.293 0.29269L8 6.5857L1.70704 0.29269C1.31679 -0.0975633 0.682937 -0.0975633 0.292687 0.29269C-0.0975624 0.682943 -0.0975624 1.31656 0.292687 1.70682L7.29294 8.70713C7.68343 9.09762 8.31657 9.09762 8.70706 8.70713L15.7073 1.70682C16.0976 1.31656 16.0976 0.682943 15.7073 0.29269C15.3171 -0.0975633 14.6832 -0.0975633 14.293 0.29269Z' fill='%23808A99'/%3E%3C/svg%3E");background-size:14px;background-position:calc(100% - var(--top-forms-padding)) 50%;padding-right:calc(var(--top-selector-arrow-width) + var(--top-padding-2));background-repeat:no-repeat}.top-as-selector.top-button{padding-right:calc(var(--top-selector-arrow-width) + var(--top-padding-2))}.top-as-selector~.top-cleaner{--top-selector-arrow-width:24px}.top-as-a{cursor:pointer;color:var(--color-text-primary)}.top-as-a:hover{text-decoration:underline}.top-ellipsis,.top-ellipsis1{text-overflow:ellipsis;flex-grow:1;max-height:100%;line-height:1.26;overflow:hidden}.top-ellipsis1{white-space:nowrap}.top-ellipsis2,.top-ellipsis3{-webkit-line-clamp:2;-webkit-box-orient:vertical;max-width:-moz-fit-content;max-width:fit-content;line-height:1.26;display:-webkit-box;overflow:hidden}.top-ellipsis3{-webkit-line-clamp:3}.top-hidden{display:none!important}.top-unvisible{-webkit-appearance:none;appearance:none;border:none;width:0;height:0;position:absolute;overflow:hidden}.top-unvisible:focus-visible{outline:none}.top-disabled{pointer-events:none;-webkit-user-select:none;user-select:none}:disabled:not(option):not(optgroup),:disabled~.top-formsCaption,.top-disabled{opacity:.4;filter:grayscale()}.top-input.top-disabled,.top-select.top-disabled{filter:unset}.top-input_input:disabled,.top-textarea_textarea:disabled,.top-select_select:disabled{opacity:1;background-color:var(--color-bg-shading-3);filter:unset}.top-checkbox_input:not(:checked):not(:indeterminate):disabled,.top-radio_input:not(:checked):disabled,.top-checkboxSwitcher_input:disabled{opacity:1;background-color:var(--color-layer-1)}.top-checkboxSwitcher_input:disabled{background-color:var(--color-layer-4)}.top-error,.top-error::placeholder,.top-error:before{--top-forms-border-color:var(--color-line-negative-1);border-color:var(--color-line-negative-1)}.top-error{--top-icon-color:var(--color-text-negative);color:var(--color-text-negative)}input.top-error:focus,textarea.top-error:focus,select.top-error:focus,div.top-error:focus{outline-color:var(--color-line-negative-1);border-color:var(--color-line-negative-1)}.top-error~.top-formsCaption{color:var(--color-text-negative)}.top-warning{--top-icon-color:var(--color-text-warning);color:var(--color-text-warning)}.top-forms-focusable.top-error{--top-error-keyframes-outline-color-100:transparent;animation:.6s ease-out top-error}.top-forms-focusable.top-error:focus{--top-error-keyframes-outline-color-100:var(--color-line-negative-1)}@keyframes top-error{0%{outline-offset:10px;outline:3px solid #0000}50%{outline-offset:2px;outline:3px solid var(--color-line-negative-1)}to{outline-offset:2px;outline:2px solid var(--top-error-keyframes-outline-color-100)}}@media only screen and (min-width:900px){.top-only-mobile{display:none!important}}@media only screen and (max-width:900px){.top-only-pc{display:none!important}}html:not([lang=ru]) .top-only-ru,html:not([lang=en]) .top-only-en,html[data-is-admin="0"] .top-only-admin,html[data-is-admin="1"] .top-only-no-admin{display:none!important}.has_scroll_container{transform:translate(0)}.has_scroll{--scroll-offset-top:0px;--scroll-padding-top:0px;--scroll-padding-bottom:0px;--scroll-height:0px;--scroll-shadow-height:15px;--scroll-shadow-color:#0000001a}.has_scroll:before{pointer-events:none;content:"";background:linear-gradient(180deg, transparent calc(100% - var(--scroll-shadow-height)), var(--scroll-shadow-color));height:calc(var(--scroll-height) - var(--scroll-padding-top) - var(--scroll-padding-bottom));top:calc(var(--scroll-offset-top) + var(--scroll-padding-top));z-index:2;display:block;position:fixed;left:0;right:0}.has_scroll-started:before{background:linear-gradient(180deg, var(--scroll-shadow-color), transparent var(--scroll-shadow-height), transparent calc(100% - var(--scroll-shadow-height)), var(--scroll-shadow-color))}.has_scroll-finished:before{background:linear-gradient(180deg, var(--scroll-shadow-color), transparent var(--scroll-shadow-height))}.top-scrollBarXHidding{scrollbar-width:none;overflow:auto hidden}.top-scrollBarXHidding:hover{scrollbar-width:thin}.top-scrollBarXHidding::-webkit-scrollbar{height:6px;display:none}.top-scrollBarXHidding:hover::-webkit-scrollbar{scrollbar-width:thin;display:block}.top-scrollBarXHidding::-webkit-scrollbar-track{background-color:#0000;box-shadow:inset 0 0 0 10px #0000000f}.top-scrollBarXHidding::-webkit-scrollbar-track:hover{box-shadow:inset 0 0 0 10px #00000014}.top-scrollBarXHidding::-webkit-scrollbar-track:active{box-shadow:inset 0 0 0 10px #0000001a}.top-scrollBarXHidding::-webkit-scrollbar-thumb{background-color:var(--color-line-1-opacity)}.top-scrollBarXHidding::-webkit-scrollbar-thumb:hover{background-color:var(--color-line-2-opacity)}.top-scrollBarXHidding::-webkit-scrollbar-thumb:active{background-color:var(--color-line-3-opacity)}.top-scrollBarXHidding::-webkit-scrollbar-button{width:0;height:0}[data-top-badge]{align-self:flex-start;width:0;margin:-3px 16px 0 -16px;display:flex;position:relative}[data-top-badge]:after{content:attr(data-top-badge);background:var(--color-bg-negative-1);color:var(--color-text-white);border-radius:4px;padding:2px 3px;font-size:12px}:root{--color-tag-1:var(--color-theme-350);--color-tag-2:#fd6052;--color-tag-3:#f48d09;--color-tag-4:#f4d30c;--color-tag-5:#5aacfd;--color-tag-6:#c98ae4;--color-tag-7:#a7de59;--color-tag-8:#e44097;--color-tag-9:#0354a5;--color-tag-10:#33b8a5;--color-tag-all:var(--color-text-3)}.top-comment{color:var(--color-text-3);font-size:12px}img.top-flag{width:24px;height:15px;margin:0 6px 0 0;box-shadow:0 0 3px #0003;flex-grow:0!important;flex-shrink:0!important}:root{--top-formsCaption-offset:16px}.top-formsCaptionWrapper{padding-top:20px}.top-formsCaption{pointer-events:none;width:calc(100% - var(--top-forms-padding) - var(--top-icon-both-width) - var(--top-forms_clear-width) - var(--top-selector-arrow-width));padding:0 var(--top-forms-padding);color:var(--top-forms-placeholder-color);white-space:nowrap;text-overflow:ellipsis;transform:translate(var(--top-icon-both-width), 0);transition:all .1s;position:absolute;overflow:hidden}.top-error~.top-formsCaption{transition:all .1s .1s}.top-formsCaption *{pointer-events:auto}.top-formsCaptionWrapper>input:not([readonly]):focus~.top-formsCaption,.top-formsCaptionWrapper>input:not(:placeholder-shown)~.top-formsCaption,.top-formsCaptionWrapper>textarea:not(:placeholder-shown)~.top-formsCaption,.top-formsCaptionWrapper.top-select>.top-formsCaption,.top-formsCaptionWrapper.top-inputRange>.top-formsCaption,.top-formsCaptionWrapper-always>.top-formsCaption{width:100%;color:var(--top-forms-placeholder-color-active);transform:translate(0, calc(-1em - var(--top-formsCaption-offset)));padding:0;font-size:11px;transition:all .1s}html .ui-tooltip{pointer-events:none;background:var(--color-layout-front-1);width:max-content;padding:var(--top-padding-4);margin:0 var(--top-padding-4);z-index:200000;border:none;font-size:13px;box-shadow:0 6px 18px #0e152f21,0 -2px 6px #0e152f08}.ui-tooltip.ui-corner-all{border-radius:var(--top-padding-2)}.ui-tooltip img{margin:var(--top-padding-3) 0 0 0}.ui-tooltip ul{margin-left:24px}:root{--top-icon-size:24px;--top-icon-width:0px;--top-icon2-size:24px;--top-icon2-width:0px;--top-icon-both-width:0px}[data-top-icon]{--top-icon-width:calc(var(--top-icon-size) + var(--top-forms-padding));--top-icon-color:inherit}[data-top-icon2]{--top-icon2-width:calc(var(--top-icon2-size) + 8px);--top-icon2-color:inherit}[data-top-icon=""]{--top-icon-width:0px}[data-top-icon2=""]{--top-icon2-width:0px}[data-top-icon]:before,[data-top-icon2]:after{pointer-events:none;content:attr(data-top-icon);border-radius:var(--top-forms-radius);width:var(--top-icon-width);color:var(--top-icon-color);font-family:Topvisor-2;font-size:var(--top-icon-size);flex-shrink:0;justify-content:center;align-items:center;font-weight:400;line-height:1;display:inline-flex}[data-top-icon2]:after{content:attr(data-top-icon2);width:var(--top-icon2-width);color:var(--top-icon2-color);font-size:var(--top-icon2-size)}[data-top-icon],[data-top-icon2]{--top-icon-both-width:calc(var(--top-icon-width) + var(--top-icon2-width))}[data-top-icon=]:before{font-family:Topvisor}:root{--top-line-heihgt:1.36;--top-page-width:1180px;--100vh:100dvh;--top-scrollbar-width:6px;--transition:.2s ease-in-out;--transition-fast:.1s;--transition-normal:.3s;--transition-slow:.5s;--top-padding-1:4px;--top-padding-2:8px;--top-padding-3:12px;--top-padding-4:16px;--top-padding-5:20px;--top-padding-6:24px;--top-padding-7:28px;--top-padding-8:32px;--top-padding-9:36px;--top-padding-10:40px;--top-padding-11:44px;--top-padding-12:48px;--top-gap-1:4px;--top-gap-2:8px;--top-gap-3:12px;--top-gap-4:16px;--top-gap-5:20px;--top-gap-6:24px;--top-gap-7:28px;--top-gap-8:32px;--top-gap-9:36px;--top-gap-10:40px;--top-gap-11:44px;--top-gap-12:48px;--top-radius-1:4px;--top-radius-2:8px;--top-radius-3:12px;--top-radius-4:16px;--top-radius-5:20px;--top-radius-6:24px;--top-radius-7:28px;--top-radius-8:32px;--top-radius-9:36px;--top-radius-10:40px;--top-radius-11:44px;--top-radius-12:48px;--padding-default:var(--top-padding-4)}@media only screen and (max-width:900px){:root{--padding-default:var(--top-padding-3)}}.ui-widget-content{background:var(--color-layout-front-1);color:var(--color-text-1)}
@@ -1 +1 @@
1
- #dialog_regionSelectorRegions .modal-body{--scroll-offset-top: 40px}.dialog_regionSelectorRegions_header,.dialog_regionSelectorRegions_region{padding-right:10px;padding-left:10px;display:flex;align-items:center;gap:4px}.dialog_regionSelectorRegions_header{background:inherit;height:40px;padding-left:10px;gap:2px;position:sticky;top:0}.dialog_regionSelectorRegions_sortButton{--top-icon-size: 18px}.dialog_regionSelectorRegions_region{border-radius:var(--top-radius-2)}.dialog_regionSelectorRegions_region:hover{background:var(--color-bg-shading-1)}.dialog_regionSelectorRegions_region .top-forms-optionLabel_title{gap:4px}.dialog_regionSelectorRegions_regionSearcherIcon{--top-icon-size: 20px;color:var(--color-text-3);margin:0 4px 0 2px}.dialog_regionSelectorRegions_regionAreaName{color:var(--color-text-3);font-size:var(--top-font-size-s)}
1
+ #dialog_regionSelectorRegions .modal-body{--scroll-offset-top:40px}.dialog_regionSelectorRegions_header,.dialog_regionSelectorRegions_region{align-items:center;gap:4px;padding-left:10px;padding-right:10px;display:flex}.dialog_regionSelectorRegions_header{background:inherit;gap:2px;height:40px;padding-left:10px;position:sticky;top:0}.dialog_regionSelectorRegions_sortButton{--top-icon-size:18px}.dialog_regionSelectorRegions_region{border-radius:var(--top-radius-2)}.dialog_regionSelectorRegions_region:hover{background:var(--color-bg-shading-1)}.dialog_regionSelectorRegions_region .top-forms-optionLabel_title{gap:4px}.dialog_regionSelectorRegions_regionSearcherIcon{--top-icon-size:20px;color:var(--color-text-3);margin:0 4px 0 2px}.dialog_regionSelectorRegions_regionAreaName{color:var(--color-text-3);font-size:var(--top-font-size-s)}
package/assets/extra.css CHANGED
@@ -1 +1 @@
1
- .top-rive{width:100%;height:100%;flex-grow:1}
1
+ .top-rive{flex-grow:1;width:100%;height:100%}