@topvisor/ui 1.1.0-apiClient.29 → 1.1.0-apiClient.30

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 (415) hide show
  1. package/.chunks/{core-CUCQCH9e.es.js → core-DLXWfIR4.es.js} +45 -45
  2. package/.chunks/{core-CUCQCH9e.es.js.map → core-DLXWfIR4.es.js.map} +1 -1
  3. package/.chunks/core-Tti72-iZ.amd.js +2 -0
  4. package/.chunks/{core-DQ7J2vig.amd.js.map → core-Tti72-iZ.amd.js.map} +1 -1
  5. package/.chunks/{datepicker-DsKl-YZR.amd.js → datepicker-B4MtWLUB.amd.js} +2 -2
  6. package/.chunks/{datepicker-DsKl-YZR.amd.js.map → datepicker-B4MtWLUB.amd.js.map} +1 -1
  7. package/.chunks/{datepicker-U31BrqE_.es.js → datepicker-CkZ1AHct.es.js} +2 -2
  8. package/.chunks/{datepicker-U31BrqE_.es.js.map → datepicker-CkZ1AHct.es.js.map} +1 -1
  9. package/.chunks/{dialog_selectorRegions-DcPd0Spw.amd.js → dialog_selectorRegions-Bg2bNley.amd.js} +2 -2
  10. package/.chunks/{dialog_selectorRegions-DcPd0Spw.amd.js.map → dialog_selectorRegions-Bg2bNley.amd.js.map} +1 -1
  11. package/.chunks/{dialog_selectorRegions-C9751c-B.es.js → dialog_selectorRegions-BpQO5L5g.es.js} +4 -4
  12. package/.chunks/{dialog_selectorRegions-C9751c-B.es.js.map → dialog_selectorRegions-BpQO5L5g.es.js.map} +1 -1
  13. package/.chunks/{dialogs.vue_vue_type_script_setup_true_lang-CXghec6S.amd.js → dialogs.vue_vue_type_script_setup_true_lang-CZQq3w9t.amd.js} +2 -2
  14. package/.chunks/{dialogs.vue_vue_type_script_setup_true_lang-CXghec6S.amd.js.map → dialogs.vue_vue_type_script_setup_true_lang-CZQq3w9t.amd.js.map} +1 -1
  15. package/.chunks/{dialogs.vue_vue_type_script_setup_true_lang-DjuN_1ox.es.js → dialogs.vue_vue_type_script_setup_true_lang-DE8e63m1.es.js} +2 -2
  16. package/.chunks/{dialogs.vue_vue_type_script_setup_true_lang-DjuN_1ox.es.js.map → dialogs.vue_vue_type_script_setup_true_lang-DE8e63m1.es.js.map} +1 -1
  17. package/.chunks/{forms-t2AEUjqg.es.js → forms-CSwfPGPT.es.js} +460 -466
  18. package/.chunks/forms-CSwfPGPT.es.js.map +1 -0
  19. package/.chunks/{forms-DRhpgERJ.amd.js → forms-nOSFakjs.amd.js} +3 -3
  20. package/.chunks/forms-nOSFakjs.amd.js.map +1 -0
  21. package/.chunks/index-BEI7XZmU.amd.js +2 -0
  22. package/.chunks/index-BEI7XZmU.amd.js.map +1 -0
  23. package/.chunks/index-igPkes8X.es.js +48 -0
  24. package/.chunks/index-igPkes8X.es.js.map +1 -0
  25. package/.chunks/{listItem.vue_vue_type_script_setup_true_lang-C8PDRggQ.amd.js → listItem.vue_vue_type_script_setup_true_lang-DAiYrXJt.amd.js} +2 -2
  26. package/.chunks/{listItem.vue_vue_type_script_setup_true_lang-C8PDRggQ.amd.js.map → listItem.vue_vue_type_script_setup_true_lang-DAiYrXJt.amd.js.map} +1 -1
  27. package/.chunks/{listItem.vue_vue_type_script_setup_true_lang-B6psuRkm.es.js → listItem.vue_vue_type_script_setup_true_lang-DV__bCGp.es.js} +4 -4
  28. package/.chunks/{listItem.vue_vue_type_script_setup_true_lang-B6psuRkm.es.js.map → listItem.vue_vue_type_script_setup_true_lang-DV__bCGp.es.js.map} +1 -1
  29. package/.chunks/{menu.vue_vue_type_style_index_0_lang-6kqWYFuX.es.js → menu.vue_vue_type_style_index_0_lang-CycLeBt1.es.js} +10 -10
  30. package/.chunks/{menu.vue_vue_type_style_index_0_lang-6kqWYFuX.es.js.map → menu.vue_vue_type_style_index_0_lang-CycLeBt1.es.js.map} +1 -1
  31. package/.chunks/{menu.vue_vue_type_style_index_0_lang-DRHk9iBB.amd.js → menu.vue_vue_type_style_index_0_lang-NV0qLjM0.amd.js} +2 -2
  32. package/.chunks/{menu.vue_vue_type_style_index_0_lang-DRHk9iBB.amd.js.map → menu.vue_vue_type_style_index_0_lang-NV0qLjM0.amd.js.map} +1 -1
  33. package/.chunks/{notice-DQ9qFyQ2.amd.js → notice-CeaZxWDY.amd.js} +2 -2
  34. package/.chunks/{notice-DQ9qFyQ2.amd.js.map → notice-CeaZxWDY.amd.js.map} +1 -1
  35. package/.chunks/{notice-4bdzRXtl.es.js → notice-DpL6xhzv.es.js} +2 -2
  36. package/.chunks/{notice-4bdzRXtl.es.js.map → notice-DpL6xhzv.es.js.map} +1 -1
  37. package/.chunks/{page.vue_vue_type_script_setup_true_lang-DseS_zy8.es.js → page.vue_vue_type_script_setup_true_lang-Zi_3ClRX.es.js} +4 -4
  38. package/.chunks/{page.vue_vue_type_script_setup_true_lang-DseS_zy8.es.js.map → page.vue_vue_type_script_setup_true_lang-Zi_3ClRX.es.js.map} +1 -1
  39. package/.chunks/{page.vue_vue_type_script_setup_true_lang-D4tsfsex.amd.js → page.vue_vue_type_script_setup_true_lang-jqBwMaqk.amd.js} +2 -2
  40. package/.chunks/{page.vue_vue_type_script_setup_true_lang-D4tsfsex.amd.js.map → page.vue_vue_type_script_setup_true_lang-jqBwMaqk.amd.js.map} +1 -1
  41. package/.chunks/{popup-IcMnYYXr.amd.js → popup-BY9nhua0.amd.js} +2 -2
  42. package/.chunks/{popup-IcMnYYXr.amd.js.map → popup-BY9nhua0.amd.js.map} +1 -1
  43. package/.chunks/{popup-DuraSW2f.es.js → popup-Cxtrsq2H.es.js} +2 -2
  44. package/.chunks/{popup-DuraSW2f.es.js.map → popup-Cxtrsq2H.es.js.map} +1 -1
  45. package/.chunks/{utils-16CqqvVO.amd.js → utils-Bpn5I4rv.amd.js} +2 -2
  46. package/.chunks/{utils-16CqqvVO.amd.js.map → utils-Bpn5I4rv.amd.js.map} +1 -1
  47. package/.chunks/{utils-Ct2fnz3h.es.js → utils-Cx0wgU0M.es.js} +2 -2
  48. package/.chunks/{utils-Ct2fnz3h.es.js.map → utils-Cx0wgU0M.es.js.map} +1 -1
  49. package/.chunks/{utils-g7NSc8VW.amd.js → utils-D7esYAPZ.amd.js} +2 -2
  50. package/.chunks/{utils-g7NSc8VW.amd.js.map → utils-D7esYAPZ.amd.js.map} +1 -1
  51. package/.chunks/{utils-Bl2P0srR.es.js → utils-h--vdOv2.es.js} +3 -3
  52. package/.chunks/{utils-Bl2P0srR.es.js.map → utils-h--vdOv2.es.js.map} +1 -1
  53. package/.chunks/widgetInput.vue_vue_type_script_setup_true_lang-Cm5gMMdN.amd.js +2 -0
  54. package/.chunks/widgetInput.vue_vue_type_script_setup_true_lang-Cm5gMMdN.amd.js.map +1 -0
  55. package/.chunks/widgetInput.vue_vue_type_script_setup_true_lang-IaLXISUu.es.js +39 -0
  56. package/.chunks/widgetInput.vue_vue_type_script_setup_true_lang-IaLXISUu.es.js.map +1 -0
  57. package/.chunks/widgetInput.vue_vue_type_style_index_0_lang-Cce9ZdtW.amd.js +2 -0
  58. package/.chunks/widgetInput.vue_vue_type_style_index_0_lang-Cce9ZdtW.amd.js.map +1 -0
  59. package/api/additional.d.ts +2 -0
  60. package/api/index.amd.js +1 -1
  61. package/api/index.amd.js.map +1 -1
  62. package/api/index.d.ts +2 -0
  63. package/api/index.js +49 -49
  64. package/api/index.js.map +1 -1
  65. package/charts/charts.amd.js +1 -1
  66. package/charts/charts.amd.js.map +1 -1
  67. package/charts/charts.d.ts +2 -0
  68. package/charts/charts.js +9 -9
  69. package/charts/charts.js.map +1 -1
  70. package/core/app.amd.js +1 -1
  71. package/core/app.d.ts +2 -0
  72. package/core/app.js +5 -5
  73. package/dialog/dialog.amd.js +1 -1
  74. package/dialog/dialog.d.ts +2 -0
  75. package/dialog/dialog.js +2 -2
  76. package/extra/extra.amd.js +1 -1
  77. package/extra/extra.amd.js.map +1 -1
  78. package/extra/extra.d.ts +2 -0
  79. package/extra/extra.js +3 -3
  80. package/extra/extra.js.map +1 -1
  81. package/forms/forms.amd.js +1 -1
  82. package/forms/forms.d.ts +2 -0
  83. package/forms/forms.js +7 -7
  84. package/formsExt/formsExt.amd.js +1 -1
  85. package/formsExt/formsExt.amd.js.map +1 -1
  86. package/formsExt/formsExt.d.ts +2 -0
  87. package/formsExt/formsExt.js +130 -128
  88. package/formsExt/formsExt.js.map +1 -1
  89. package/layout/layout.amd.js +1 -1
  90. package/layout/layout.amd.js.map +1 -1
  91. package/layout/layout.d.ts +2 -0
  92. package/layout/layout.js +29 -29
  93. package/layout/layout.js.map +1 -1
  94. package/package.json +3 -12
  95. package/popup/popup.amd.js +1 -1
  96. package/popup/popup.amd.js.map +1 -1
  97. package/popup/popup.d.ts +2 -0
  98. package/popup/popup.js +76 -108
  99. package/popup/popup.js.map +1 -1
  100. package/popup/worker.amd.js +1 -1
  101. package/popup/worker.d.ts +2 -0
  102. package/popup/worker.js +2 -2
  103. package/project/project.amd.js +1 -1
  104. package/project/project.amd.js.map +1 -1
  105. package/project/project.d.ts +2 -0
  106. package/project/project.js +244 -244
  107. package/project/project.js.map +1 -1
  108. package/src/components/charts/charts.d.ts +2 -0
  109. package/src/components/extra/extra.d.ts +1 -0
  110. package/src/components/forms/forms.d.ts +15 -0
  111. package/src/components/formsExt/formsExt.d.ts +8 -0
  112. package/src/components/layout/layout.d.ts +4 -0
  113. package/src/components/popup/popup.d.ts +7 -0
  114. package/src/components/project/project.d.ts +9 -0
  115. package/src/components/tabs/tabs.d.ts +3 -0
  116. package/src/components/tabsView/tabsView.d.ts +3 -0
  117. package/tabs/tabs.amd.js +1 -1
  118. package/tabs/tabs.amd.js.map +1 -1
  119. package/tabs/tabs.d.ts +2 -0
  120. package/tabs/tabs.js +14 -14
  121. package/tabs/tabs.js.map +1 -1
  122. package/tabsView/tabsView.amd.js +1 -1
  123. package/tabsView/tabsView.amd.js.map +1 -1
  124. package/tabsView/tabsView.d.ts +2 -0
  125. package/tabsView/tabsView.js +48 -47
  126. package/tabsView/tabsView.js.map +1 -1
  127. package/utils/check.d.ts +2 -0
  128. package/utils/clipboard.amd.js +1 -1
  129. package/utils/clipboard.d.ts +2 -0
  130. package/utils/clipboard.js +1 -1
  131. package/utils/date.amd.js +1 -1
  132. package/utils/date.d.ts +2 -0
  133. package/utils/date.js +1 -1
  134. package/utils/device.amd.js +1 -1
  135. package/utils/device.d.ts +2 -0
  136. package/utils/device.js +4 -4
  137. package/utils/dom.d.ts +6 -0
  138. package/utils/image.d.ts +2 -0
  139. package/utils/keyboard.d.ts +2 -0
  140. package/utils/lodash.amd.js +1 -1
  141. package/utils/lodash.d.ts +2 -0
  142. package/utils/lodash.js +1 -1
  143. package/utils/number.d.ts +2 -0
  144. package/utils/price.amd.js +1 -1
  145. package/utils/price.d.ts +2 -0
  146. package/utils/price.js +1 -1
  147. package/utils/route.d.ts +2 -0
  148. package/utils/scroll.d.ts +2 -0
  149. package/utils/searchers.amd.js +1 -1
  150. package/utils/searchers.d.ts +2 -0
  151. package/utils/searchers.js +3 -3
  152. package/utils/store.d.ts +2 -0
  153. package/utils/string.amd.js +1 -1
  154. package/utils/string.d.ts +2 -0
  155. package/utils/string.js +1 -1
  156. package/utils/system.d.ts +2 -0
  157. package/utils/url.d.ts +2 -0
  158. package/.chunks/core-DQ7J2vig.amd.js +0 -2
  159. package/.chunks/forms-DRhpgERJ.amd.js.map +0 -1
  160. package/.chunks/forms-t2AEUjqg.es.js.map +0 -1
  161. package/.chunks/index-BYqko24e.amd.js +0 -2
  162. package/.chunks/index-BYqko24e.amd.js.map +0 -1
  163. package/.chunks/index-Dfn40Qy3.es.js +0 -48
  164. package/.chunks/index-Dfn40Qy3.es.js.map +0 -1
  165. package/types/api/additional.d.ts +0 -2
  166. package/types/api/index.d.ts +0 -2
  167. package/types/charts/charts.d.ts +0 -2
  168. package/types/components/charts/charts.d.ts +0 -5
  169. package/types/components/extra/extra.d.ts +0 -3
  170. package/types/components/forms/forms.d.ts +0 -31
  171. package/types/components/formsExt/formsExt.d.ts +0 -17
  172. package/types/components/layout/layout.d.ts +0 -9
  173. package/types/components/popup/popup.d.ts +0 -15
  174. package/types/components/project/project.d.ts +0 -15
  175. package/types/components/tabs/tabs.d.ts +0 -7
  176. package/types/components/tabsView/tabsView.d.ts +0 -7
  177. package/types/dialog/dialog.d.ts +0 -2
  178. package/types/extra/extra.d.ts +0 -2
  179. package/types/for-delete/core.d.ts +0 -1
  180. package/types/for-delete/dark-positions.d.ts +0 -1
  181. package/types/for-delete/dark-th-positions.d.ts +0 -1
  182. package/types/for-delete/dark-th.d.ts +0 -1
  183. package/types/for-delete/dark.d.ts +0 -1
  184. package/types/for-delete/light-positions.d.ts +0 -1
  185. package/types/for-delete/light.d.ts +0 -1
  186. package/types/forms/forms.d.ts +0 -2
  187. package/types/formsExt/formsExt.d.ts +0 -2
  188. package/types/layout/layout.d.ts +0 -2
  189. package/types/popup/popup.d.ts +0 -2
  190. package/types/popup/worker.d.ts +0 -2
  191. package/types/project/project.d.ts +0 -2
  192. package/types/tabs/tabs.d.ts +0 -2
  193. package/types/tabsView/tabsView.d.ts +0 -2
  194. package/types/utils/check.d.ts +0 -2
  195. package/types/utils/clipboard.d.ts +0 -2
  196. package/types/utils/date.d.ts +0 -2
  197. package/types/utils/device.d.ts +0 -2
  198. package/types/utils/dom.d.ts +0 -6
  199. package/types/utils/image.d.ts +0 -2
  200. package/types/utils/keyboard.d.ts +0 -2
  201. package/types/utils/lodash.d.ts +0 -2
  202. package/types/utils/number.d.ts +0 -2
  203. package/types/utils/price.d.ts +0 -2
  204. package/types/utils/route.d.ts +0 -2
  205. package/types/utils/scroll.d.ts +0 -2
  206. package/types/utils/searchers.d.ts +0 -2
  207. package/types/utils/store.d.ts +0 -2
  208. package/types/utils/string.d.ts +0 -2
  209. package/types/utils/system.d.ts +0 -2
  210. package/types/utils/url.d.ts +0 -2
  211. /package/assets/{popup.css → widgetInput.css} +0 -0
  212. /package/{types/forms → forms}/helpers.d.ts +0 -0
  213. /package/{types → src}/api/api/additional.d.ts +0 -0
  214. /package/{types → src}/api/api/client/client.d.ts +0 -0
  215. /package/{types → src}/api/api/client/request-options.d.ts +0 -0
  216. /package/{types → src}/api/api/client/request.d.ts +0 -0
  217. /package/{types → src}/api/api/index.d.ts +0 -0
  218. /package/{types → src}/api/api/mocker/index.d.ts +0 -0
  219. /package/{types → src}/api/api/tests/model.d.ts +0 -0
  220. /package/{types → src}/api/api/tests/test.d.ts +0 -0
  221. /package/{types → src}/api/api/types/api.d.ts +0 -0
  222. /package/{types → src}/api/api/types/client/client.d.ts +0 -0
  223. /package/{types → src}/api/api/types/client/middleware.d.ts +0 -0
  224. /package/{types → src}/api/api/types/client/options.d.ts +0 -0
  225. /package/{types → src}/api/api/types/client/request-context.d.ts +0 -0
  226. /package/{types → src}/api/api/types/client/request-options.d.ts +0 -0
  227. /package/{types → src}/api/api/types/client/request.d.ts +0 -0
  228. /package/{types → src}/api/api/types/ext.d.ts +0 -0
  229. /package/{types → src}/api/api/types/field.d.ts +0 -0
  230. /package/{types → src}/api/api/types/index.d.ts +0 -0
  231. /package/{types → src}/api/api/types/mocker.d.ts +0 -0
  232. /package/{types → src}/api/api/types/schema.d.ts +0 -0
  233. /package/{types → src}/api/api/types/tv.d.ts +0 -0
  234. /package/{types → src}/api/api/types/utils.d.ts +0 -0
  235. /package/{types → src}/api/api/utils/common.d.ts +0 -0
  236. /package/{types → src}/api/api/utils/field.d.ts +0 -0
  237. /package/{types → src}/api/api/utils/filters.d.ts +0 -0
  238. /package/{types → src}/api/api/utils/lazy.d.ts +0 -0
  239. /package/{types → src}/components/charts/miniChart/miniChart.vue.d.ts +0 -0
  240. /package/{types → src}/components/charts/miniChart/types.d.ts +0 -0
  241. /package/{types → src}/components/charts/miniChart/utils/consts.d.ts +0 -0
  242. /package/{types → src}/components/charts/miniCharts/miniCharts.d.ts +0 -0
  243. /package/{types → src}/components/charts/miniCharts/miniCharts.vue.d.ts +0 -0
  244. /package/{types → src}/components/core/notice/item/item.vue.d.ts +0 -0
  245. /package/{types → src}/components/core/notice/item/types.d.ts +0 -0
  246. /package/{types → src}/components/core/notice/notice.vue.d.ts +0 -0
  247. /package/{types → src}/components/core/notice/types.d.ts +0 -0
  248. /package/{types → src}/components/core/notice/utils.d.ts +0 -0
  249. /package/{types → src}/components/dialog/dialog/composables/asyncDialogHandle.d.ts +0 -0
  250. /package/{types → src}/components/dialog/dialog/composables/dialogHandle.d.ts +0 -0
  251. /package/{types → src}/components/dialog/dialog/composables/types.d.ts +0 -0
  252. /package/{types → src}/components/dialog/dialog/composables/utils.d.ts +0 -0
  253. /package/{types → src}/components/dialog/dialog/dialog.vue.d.ts +0 -0
  254. /package/{types → src}/components/dialog/dialog/dialogs/dialogs.vue.d.ts +0 -0
  255. /package/{types → src}/components/dialog/dialog/page/page.vue.d.ts +0 -0
  256. /package/{types → src}/components/dialog/dialog/page/types.d.ts +0 -0
  257. /package/{types → src}/components/dialog/dialog/pageComponent/pageComponent.vue.d.ts +0 -0
  258. /package/{types → src}/components/dialog/dialog/pageComponent/types.d.ts +0 -0
  259. /package/{types → src}/components/dialog/dialog/stories/dialog_example/pages/utils.d.ts +0 -0
  260. /package/{types → src}/components/dialog/dialog/types.d.ts +0 -0
  261. /package/{types → src}/components/dialog/dialog.d.ts +0 -0
  262. /package/{types → src}/components/dialog/lib/types.d.ts +0 -0
  263. /package/{types → src}/components/dialog/lib/utils.d.ts +0 -0
  264. /package/{types → src}/components/dialog/lib/utils.globalEvents.d.ts +0 -0
  265. /package/{types → src}/components/dialog/lib/worker.d.ts +0 -0
  266. /package/{types → src}/components/extra/rive/rive.vue.d.ts +0 -0
  267. /package/{types → src}/components/extra/rive/types.d.ts +0 -0
  268. /package/{types → src}/components/forms/avatar/avatar.vue.d.ts +0 -0
  269. /package/{types → src}/components/forms/avatar/types.d.ts +0 -0
  270. /package/{types → src}/components/forms/button/button.vue.d.ts +0 -0
  271. /package/{types → src}/components/forms/button/types.d.ts +0 -0
  272. /package/{types → src}/components/forms/caption/caption.vue.d.ts +0 -0
  273. /package/{types → src}/components/forms/caption/types.d.ts +0 -0
  274. /package/{types → src}/components/forms/checkbox/checkbox.vue.d.ts +0 -0
  275. /package/{types → src}/components/forms/checkbox/types.d.ts +0 -0
  276. /package/{types → src}/components/forms/controlLabel/controlLabel.vue.d.ts +0 -0
  277. /package/{types → src}/components/forms/controlLabel/types.d.ts +0 -0
  278. /package/{types → src}/components/forms/helpers.d.ts +0 -0
  279. /package/{types → src}/components/forms/hint/hint.vue.d.ts +0 -0
  280. /package/{types → src}/components/forms/hint/types.d.ts +0 -0
  281. /package/{types → src}/components/forms/input/input.vue.d.ts +0 -0
  282. /package/{types → src}/components/forms/input/types.d.ts +0 -0
  283. /package/{types → src}/components/forms/inputDate/datepicker.d.ts +0 -0
  284. /package/{types → src}/components/forms/inputDate/inputDate.vue.d.ts +0 -0
  285. /package/{types → src}/components/forms/inputDate/types.d.ts +0 -0
  286. /package/{types → src}/components/forms/inputRange/inputRange.vue.d.ts +0 -0
  287. /package/{types → src}/components/forms/inputRange/types.d.ts +0 -0
  288. /package/{types → src}/components/forms/loadbar/loadbar.vue.d.ts +0 -0
  289. /package/{types → src}/components/forms/preloader/preloader.vue.d.ts +0 -0
  290. /package/{types → src}/components/forms/preloader/types.d.ts +0 -0
  291. /package/{types → src}/components/forms/radio/radio.vue.d.ts +0 -0
  292. /package/{types → src}/components/forms/radio/types.d.ts +0 -0
  293. /package/{types → src}/components/forms/select/select.vue.d.ts +0 -0
  294. /package/{types → src}/components/forms/select/types.d.ts +0 -0
  295. /package/{types → src}/components/forms/switcher/switcher.vue.d.ts +0 -0
  296. /package/{types → src}/components/forms/switcher/types.d.ts +0 -0
  297. /package/{types → src}/components/forms/textarea/textarea.vue.d.ts +0 -0
  298. /package/{types → src}/components/forms/textarea/types.d.ts +0 -0
  299. /package/{types → src}/components/formsExt/checkboxGroup/checkboxGroup.vue.d.ts +0 -0
  300. /package/{types → src}/components/formsExt/checkboxGroup/types.d.ts +0 -0
  301. /package/{types → src}/components/formsExt/editArea/editArea.vue.d.ts +0 -0
  302. /package/{types → src}/components/formsExt/editArea/types.d.ts +0 -0
  303. /package/{types → src}/components/formsExt/editInput/editInput.vue.d.ts +0 -0
  304. /package/{types → src}/components/formsExt/editInput/types.d.ts +0 -0
  305. /package/{types → src}/components/formsExt/info/info.vue.d.ts +0 -0
  306. /package/{types → src}/components/formsExt/info/types.d.ts +0 -0
  307. /package/{types → src}/components/formsExt/menu/menu.vue.d.ts +0 -0
  308. /package/{types → src}/components/formsExt/menu/types.d.ts +0 -0
  309. /package/{types → src}/components/formsExt/policy/policy.vue.d.ts +0 -0
  310. /package/{types → src}/components/formsExt/policy/types.d.ts +0 -0
  311. /package/{types → src}/components/formsExt/radioGroup/radioGroup.vue.d.ts +0 -0
  312. /package/{types → src}/components/formsExt/radioGroup/types.d.ts +0 -0
  313. /package/{types → src}/components/formsExt/selector2/composables/useAPI.d.ts +0 -0
  314. /package/{types → src}/components/formsExt/selector2/composables/useMenu.d.ts +0 -0
  315. /package/{types → src}/components/formsExt/selector2/itemMulti.vue.d.ts +0 -0
  316. /package/{types → src}/components/formsExt/selector2/selector2.vue.d.ts +0 -0
  317. /package/{types → src}/components/formsExt/selector2/types.d.ts +0 -0
  318. /package/{types → src}/components/formsExt/selector2/utils.d.ts +0 -0
  319. /package/{types → src}/components/layout/islandRows/islandRows.vue.d.ts +0 -0
  320. /package/{types → src}/components/layout/islandRows/islandRowsRow/islandRowsRow.vue.d.ts +0 -0
  321. /package/{types → src}/components/layout/islandRows/islandRowsRow/types.d.ts +0 -0
  322. /package/{types → src}/components/layout/islandRows/islandRowsSubTitle/islandRowsSubTitle.vue.d.ts +0 -0
  323. /package/{types → src}/components/layout/islandRows/types.d.ts +0 -0
  324. /package/{types → src}/components/layout/rows/rows.vue.d.ts +0 -0
  325. /package/{types → src}/components/layout/rows/types.d.ts +0 -0
  326. /package/{types → src}/components/popup/alert/alert.vue.d.ts +0 -0
  327. /package/{types → src}/components/popup/alert/types.d.ts +0 -0
  328. /package/{types → src}/components/popup/confirm/confirm.vue.d.ts +0 -0
  329. /package/{types → src}/components/popup/confirm/types.d.ts +0 -0
  330. /package/{types → src}/components/popup/lib/popup.d.ts +0 -0
  331. /package/{types → src}/components/popup/lib/popup.globalEvents.d.ts +0 -0
  332. /package/{types → src}/components/popup/lib/worker.d.ts +0 -0
  333. /package/{types → src}/components/popup/lib/worker.globalEvents.d.ts +0 -0
  334. /package/{types → src}/components/popup/popup/listItem.vue.d.ts +0 -0
  335. /package/{types → src}/components/popup/popup/opener.vue.d.ts +0 -0
  336. /package/{types → src}/components/popup/popup/popup.vue.d.ts +0 -0
  337. /package/{types → src}/components/popup/popup/types.d.ts +0 -0
  338. /package/{types → src}/components/popup/popup/widgetInput.vue.d.ts +0 -0
  339. /package/{types → src}/components/popup/prompt/prompt.vue.d.ts +0 -0
  340. /package/{types → src}/components/popup/prompt/types.d.ts +0 -0
  341. /package/{types → src}/components/popup/worker.d.ts +0 -0
  342. /package/{types → src}/components/project/selectorCompetitors/composables.d.ts +0 -0
  343. /package/{types → src}/components/project/selectorCompetitors/selectorCompetitors.vue.d.ts +0 -0
  344. /package/{types → src}/components/project/selectorCompetitors/types.d.ts +0 -0
  345. /package/{types → src}/components/project/selectorRegion/composables/compare.d.ts +0 -0
  346. /package/{types → src}/components/project/selectorRegion/composables/selectRegion.d.ts +0 -0
  347. /package/{types → src}/components/project/selectorRegion/composables/selectSearcher.d.ts +0 -0
  348. /package/{types → src}/components/project/selectorRegion/composables/selectorRegion.d.ts +0 -0
  349. /package/{types → src}/components/project/selectorRegion/dialog_selectorRegions/dialog_selectorRegions.vue.d.ts +0 -0
  350. /package/{types → src}/components/project/selectorRegion/dialog_selectorRegions/types.d.ts +0 -0
  351. /package/{types → src}/components/project/selectorRegion/selectorRegion.vue.d.ts +0 -0
  352. /package/{types → src}/components/project/selectorRegion/types.d.ts +0 -0
  353. /package/{types → src}/components/project/selectorRegion/utils/consts.d.ts +0 -0
  354. /package/{types → src}/components/project/selectorRegion/utils/utils.d.ts +0 -0
  355. /package/{types → src}/components/project/tagSelector/popupListItem/tagPopupListItem.vue.d.ts +0 -0
  356. /package/{types → src}/components/project/tagSelector/popupListItem/types.d.ts +0 -0
  357. /package/{types → src}/components/project/tagSelector/popupOpener/popupOpener.vue.d.ts +0 -0
  358. /package/{types → src}/components/project/tagSelector/popupOpener/types.d.ts +0 -0
  359. /package/{types → src}/components/project/tagSelector/tagIcon/tagIcon.vue.d.ts +0 -0
  360. /package/{types → src}/components/project/tagSelector/tagIcon/types.d.ts +0 -0
  361. /package/{types → src}/components/project/tagSelector/tagSelector.vue.d.ts +0 -0
  362. /package/{types → src}/components/project/tagSelector/tagsDefaults.d.ts +0 -0
  363. /package/{types → src}/components/project/tagSelector/types.d.ts +0 -0
  364. /package/{types → src}/components/project/tagSelector/utils/el.d.ts +0 -0
  365. /package/{types → src}/components/project/tagSelector/utils/utils.d.ts +0 -0
  366. /package/{types → src}/components/tabs/tabs/content.vue.d.ts +0 -0
  367. /package/{types → src}/components/tabs/tabs/tab.vue.d.ts +0 -0
  368. /package/{types → src}/components/tabs/tabs/tabs.vue.d.ts +0 -0
  369. /package/{types → src}/components/tabs/tabs/types.d.ts +0 -0
  370. /package/{types → src}/components/tabsView/tabsView/menu.vue.d.ts +0 -0
  371. /package/{types → src}/components/tabsView/tabsView/menuDelimeter.vue.d.ts +0 -0
  372. /package/{types → src}/components/tabsView/tabsView/menuItem.vue.d.ts +0 -0
  373. /package/{types → src}/components/tabsView/tabsView/menuTitle.vue.d.ts +0 -0
  374. /package/{types → src}/components/tabsView/tabsView/store.d.ts +0 -0
  375. /package/{types → src}/components/tabsView/tabsView/tabsView.vue.d.ts +0 -0
  376. /package/{types → src}/components/tabsView/tabsView/types.d.ts +0 -0
  377. /package/{types → src}/components/tabsView/tabsView/utils.d.ts +0 -0
  378. /package/{types → src}/core/app.d.ts +0 -0
  379. /package/{types → src}/core/core/core.d.ts +0 -0
  380. /package/{types → src}/core/core/events/resize.d.ts +0 -0
  381. /package/{types → src}/core/core/events.d.ts +0 -0
  382. /package/{types → src}/core/core/options.d.ts +0 -0
  383. /package/{types → src}/core/core/preloaders.d.ts +0 -0
  384. /package/{types → src}/core/core/state.d.ts +0 -0
  385. /package/{types → src}/core/directives/data.d.ts +0 -0
  386. /package/{types → src}/core/directives/focus.d.ts +0 -0
  387. /package/{types → src}/core/directives/preloader.d.ts +0 -0
  388. /package/{types → src}/core/directives/scrollIntoView.d.ts +0 -0
  389. /package/{types → src}/core/directives/scrollShadow.d.ts +0 -0
  390. /package/{types → src}/core/directives/sticky.d.ts +0 -0
  391. /package/{types → src}/core/directives/swimUp.d.ts +0 -0
  392. /package/{types → src}/core/directives/tooltip.d.ts +0 -0
  393. /package/{types → src}/core/plugins/core.d.ts +0 -0
  394. /package/{types → src}/core/plugins/i18n.d.ts +0 -0
  395. /package/{types → src}/core/plugins/piniaTPA.d.ts +0 -0
  396. /package/{types → src}/core/utils/check.d.ts +0 -0
  397. /package/{types → src}/core/utils/clipboard.d.ts +0 -0
  398. /package/{types → src}/core/utils/date.d.ts +0 -0
  399. /package/{types → src}/core/utils/device.d.ts +0 -0
  400. /package/{types → src}/core/utils/dom.d.ts +0 -0
  401. /package/{types → src}/core/utils/image.d.ts +0 -0
  402. /package/{types → src}/core/utils/keyboard.d.ts +0 -0
  403. /package/{types → src}/core/utils/lodash.d.ts +0 -0
  404. /package/{types → src}/core/utils/number.d.ts +0 -0
  405. /package/{types → src}/core/utils/price.d.ts +0 -0
  406. /package/{types → src}/core/utils/route.d.ts +0 -0
  407. /package/{types → src}/core/utils/scroll.d.ts +0 -0
  408. /package/{types → src}/core/utils/searchers.d.ts +0 -0
  409. /package/{types → src}/core/utils/store/localStorage.d.ts +0 -0
  410. /package/{types → src}/core/utils/store/plugin.d.ts +0 -0
  411. /package/{types → src}/core/utils/store/store.d.ts +0 -0
  412. /package/{types → src}/core/utils/store.d.ts +0 -0
  413. /package/{types → src}/core/utils/string.d.ts +0 -0
  414. /package/{types → src}/core/utils/system.d.ts +0 -0
  415. /package/{types → src}/core/utils/url.d.ts +0 -0
package/api/index.js CHANGED
@@ -7,8 +7,8 @@ const W = (t = {}) => {
7
7
  errors: o,
8
8
  response: n
9
9
  }), J = (t) => t.startsWith("/system_2/common/"), B = (t = !1, o = window.location.href, n) => {
10
- const { protocol: e, hostname: s, port: r } = new URL(o), i = s.split("."), l = !t || i.length <= 2 || /^[\d.]+$/.test(s) || s === "localhost" ? s : i.slice(-2).join(".");
11
- return `${e}//${l}${r ? `:${r}` : ""}`;
10
+ const { protocol: e, hostname: r, port: s } = new URL(o), i = r.split("."), l = !t || i.length <= 2 || /^[\d.]+$/.test(r) || r === "localhost" ? r : i.slice(-2).join(".");
11
+ return `${e}//${l}${s ? `:${s}` : ""}`;
12
12
  }, _ = (t, o, n) => {
13
13
  const e = {
14
14
  inLoading: !1,
@@ -19,44 +19,44 @@ const W = (t = {}) => {
19
19
  params: {},
20
20
  // незаполненное свойство
21
21
  getInLoading: () => e.inLoading,
22
- setParams: (s) => (e.params = { ...s }, e),
23
- changeParams: (s) => (Object.assign(e.params, s), e),
24
- setOptions: (s) => (Object.assign(e.options, s), e),
25
- setMocker: (s) => (e.mockerOptions = s, e),
26
- call: async (s) => e.exec(s),
27
- callFetch: async (s, r) => e.exec(r, s),
28
- callInNewWindow: async (s) => {
22
+ setParams: (r) => (e.params = { ...r }, e),
23
+ changeParams: (r) => (Object.assign(e.params, r), e),
24
+ setOptions: (r) => (Object.assign(e.options, r), e),
25
+ setMocker: (r) => (e.mockerOptions = r, e),
26
+ call: async (r) => e.exec(r),
27
+ callFetch: async (r, s) => e.exec(s, r),
28
+ callInNewWindow: async (r) => {
29
29
  var c, u;
30
- const r = e.genData(s), i = t.genMiddlewareCtx(e, r);
31
- (u = (c = t.options).onPrepareData) == null || u.call(c, r, i);
30
+ const s = e.genData(r), i = t.genMiddlewareCtx(e, s);
31
+ (u = (c = t.options).onPrepareData) == null || u.call(c, s, i);
32
32
  const { postInWindow: l } = await import("../.chunks/lazy-Crun7esL.es.js");
33
- l(e.url, r, "_blank");
33
+ l(e.url, s, "_blank");
34
34
  },
35
- callInSelfWindow: async (s) => {
35
+ callInSelfWindow: async (r) => {
36
36
  var c, u;
37
- const r = e.genData(s), i = t.genMiddlewareCtx(e, r);
38
- (u = (c = t.options).onPrepareData) == null || u.call(c, r, i);
37
+ const s = e.genData(r), i = t.genMiddlewareCtx(e, s);
38
+ (u = (c = t.options).onPrepareData) == null || u.call(c, s, i);
39
39
  const { postInWindow: l } = await import("../.chunks/lazy-Crun7esL.es.js");
40
- l(e.url, r, "_self");
40
+ l(e.url, s, "_self");
41
41
  },
42
- genData: (s, r) => {
42
+ genData: (r, s) => {
43
43
  const i = { ...e.params };
44
- if (delete i.fetch_style, s) {
45
- let l = [...s];
44
+ if (delete i.fetch_style, r) {
45
+ let l = [...r];
46
46
  n && (l = l.filter((c) => n.includes(c))), i.fields = l;
47
47
  } else
48
48
  n && (i.fields = n);
49
- return r && (i.fetch_style = r), i;
49
+ return s && (i.fetch_style = s), i;
50
50
  },
51
51
  /**
52
52
  * Общая функция выполнения запросов
53
53
  */
54
- async exec(s, r) {
55
- var q, b, S, C, I, O, A, D, P, U, T, L, M, k, z;
56
- const i = t.options.Request, l = t.options.fetch, c = e.genData(s, r), u = t.genMiddlewareCtx(e, c);
54
+ async exec(r, s) {
55
+ var q, b, S, C, I, O, A, D, P, U, T, L, z, M, k;
56
+ const i = t.options.Request, l = t.options.fetch, c = e.genData(r, s), u = t.genMiddlewareCtx(e, c);
57
57
  if ((b = (q = t.options).onPrepareData) == null || b.call(q, c, u), e.mockerOptions) {
58
- const { genMockResponse: p } = await import("../.chunks/index-Dfn40Qy3.es.js");
59
- return await p(e.mockerOptions, s, c);
58
+ const { genMockResponse: p } = await import("../.chunks/index-igPkes8X.es.js");
59
+ return await p(e.mockerOptions, r, c);
60
60
  }
61
61
  let y = e.url, R;
62
62
  e.options.method !== "POST" ? y += "?" + await t.options.querySerializer(c) : R = t.options.bodySerializer(c);
@@ -81,8 +81,8 @@ const W = (t = {}) => {
81
81
  };
82
82
  e.inLoading = !0, (I = (C = e.options).onLoading) == null || I.call(C, e.inLoading, f);
83
83
  let d;
84
- const g = await t.middlewareOnRequest(h, f);
85
- if (g instanceof Response ? d = g : g instanceof i && (h = g), !d)
84
+ const m = await t.middlewareOnRequest(h, f);
85
+ if (m instanceof Response ? d = m : m instanceof i && (h = m), !d)
86
86
  try {
87
87
  d = await l(h);
88
88
  } catch (p) {
@@ -91,12 +91,12 @@ const W = (t = {}) => {
91
91
  e.inLoading = !1, (A = (O = e.options).onLoading) == null || A.call(O, e.inLoading, f);
92
92
  }
93
93
  d = await t.middlewareOnResponse(d, f);
94
- let a, x, m;
94
+ let a, x, g;
95
95
  try {
96
96
  const p = (D = d.headers.get("content-type")) == null ? void 0 : D.includes("application/json");
97
97
  x = await d.text(), this.options.accept === "application/json" || p ? a = JSON.parse(x) : t.useExt ? a = F(x, void 0, d) : a = x;
98
98
  } catch (p) {
99
- if ((p instanceof SyntaxError || p instanceof TypeError) && (m = p, m.responseText = x), t.useExt && m) {
99
+ if ((p instanceof SyntaxError || p instanceof TypeError) && (g = p, g.responseText = x), t.useExt && g) {
100
100
  let w = d.status, v = d.statusText;
101
101
  w === 200 && (w = 1e4, v = "Error API response"), a = F(null, [
102
102
  {
@@ -107,7 +107,7 @@ const W = (t = {}) => {
107
107
  } else
108
108
  throw p;
109
109
  }
110
- return t.useExt && (a.response = d, a && ((U = (P = e.options).onApiLoaded) == null || U.call(P, a, f)), a != null && a.errors && (t.options.useApiConsole && console.warn(new Error("API error"), { res: a }), (M = (L = e.options).onApiError) == null || M.call(L, a, { ...f, formatError: m }, (T = t.options.requestOptions) == null ? void 0 : T.onApiError)), a != null && a.messages && ((z = (k = e.options).onApiMessage) == null || z.call(k, a, f))), a;
110
+ return t.useExt && (a.response = d, a && ((U = (P = e.options).onApiLoaded) == null || U.call(P, a, f)), a != null && a.errors && (t.options.useApiConsole && console.warn(new Error("API error"), { res: a }), (z = (L = e.options).onApiError) == null || z.call(L, a, { ...f, formatError: g }, (T = t.options.requestOptions) == null ? void 0 : T.onApiError)), a != null && a.messages && ((k = (M = e.options).onApiMessage) == null || k.call(M, a, f))), a;
111
111
  }
112
112
  };
113
113
  return e;
@@ -119,8 +119,8 @@ class $ {
119
119
  abortControllers = {};
120
120
  constructor(o = {}, n) {
121
121
  o.requestOptions = W(o.requestOptions), o.useApiConsole ??= !0, o.fetch ??= globalThis.fetch, o.Request ??= globalThis.Request, o.querySerializer ??= async (e) => {
122
- const { querySerializer: s } = await import("../.chunks/lazy-Crun7esL.es.js");
123
- return s(e);
122
+ const { querySerializer: r } = await import("../.chunks/lazy-Crun7esL.es.js");
123
+ return r(e);
124
124
  }, o.bodySerializer ??= (e) => typeof e == "string" ? e : JSON.stringify(e), this.options = o, this.useExt = n;
125
125
  }
126
126
  generateUUID() {
@@ -158,7 +158,7 @@ class $ {
158
158
  * Создать контекст выполнения запроса
159
159
  */
160
160
  genMiddlewareCtx(o, n) {
161
- const e = this.generateUUID(), s = Object.freeze({
161
+ const e = this.generateUUID(), r = Object.freeze({
162
162
  baseUrl: this.options.baseUrl,
163
163
  querySerializer: this.options.querySerializer,
164
164
  bodySerializer: this.options.bodySerializer,
@@ -170,7 +170,7 @@ class $ {
170
170
  requestOptions: o.options,
171
171
  data: n,
172
172
  middlewareData: {},
173
- options: s,
173
+ options: r,
174
174
  schemaPath: o.path,
175
175
  id: e
176
176
  };
@@ -184,17 +184,17 @@ class $ {
184
184
  */
185
185
  async middlewareOnRequest(o, n) {
186
186
  var e;
187
- for (const s of this.middlewares) {
188
- const r = await ((e = s.onRequest) == null ? void 0 : e.call(s, {
187
+ for (const r of this.middlewares) {
188
+ const s = await ((e = r.onRequest) == null ? void 0 : e.call(r, {
189
189
  ...n,
190
190
  request: o
191
191
  }));
192
- if (r)
193
- if (r instanceof Request)
194
- o = r;
192
+ if (s)
193
+ if (s instanceof Request)
194
+ o = s;
195
195
  else {
196
- if (r instanceof Response)
197
- return r;
196
+ if (s instanceof Response)
197
+ return s;
198
198
  throw new Error("onRequest: must return new Request() or Response() when modifying the request");
199
199
  }
200
200
  }
@@ -208,10 +208,10 @@ class $ {
208
208
  * @return Новый экземпляр `Response` при успешной обработке или выбрасывает ошибку
209
209
  */
210
210
  async middlewareOnError(o, n) {
211
- var s;
211
+ var r;
212
212
  let e = o;
213
- for (const r of this.middlewares) {
214
- const i = await ((s = r.onError) == null ? void 0 : s.call(r, {
213
+ for (const s of this.middlewares) {
214
+ const i = await ((r = s.onError) == null ? void 0 : r.call(s, {
215
215
  ...n,
216
216
  error: e
217
217
  }));
@@ -236,15 +236,15 @@ class $ {
236
236
  */
237
237
  async middlewareOnResponse(o, n) {
238
238
  var e;
239
- for (const s of this.middlewares) {
240
- const r = await ((e = s.onResponse) == null ? void 0 : e.call(s, {
239
+ for (const r of this.middlewares) {
240
+ const s = await ((e = r.onResponse) == null ? void 0 : e.call(r, {
241
241
  ...n,
242
242
  response: o
243
243
  }));
244
- if (r) {
245
- if (!(r instanceof Response))
244
+ if (s) {
245
+ if (!(s instanceof Response))
246
246
  throw new Error("onResponse: must return new Response() when modifying the response");
247
- o = r;
247
+ o = s;
248
248
  }
249
249
  }
250
250
  return o;
package/api/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.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';\nimport { genMockResponse } from '../mocker';\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\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\tif (clientRequest.mockerOptions) {\n\t\t\t\tconst { genMockResponse } = await import('../mocker/');\n\n\t\t\t\treturn await genMockResponse(clientRequest.mockerOptions, fields, data);\n\t\t\t}\n\n\t\t\tlet url = clientRequest.url;\n\n\t\t\tlet requestInitBody: string | undefined = undefined;\n\t\t\tif (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: AbortController['signal'] | undefined;\n\n\t\t\tif (this.options.checkFingerprint) {\n\t\t\t\tconst fingerprint = this.path + this.options.checkFingerprint;\n\n\t\t\t\tclient.abortControllers[fingerprint]?.abort();\n\n\t\t\t\tconst controller = new AbortController();\n\n\t\t\t\tclient.abortControllers[fingerprint] = controller;\n\t\t\t\trequestInitSignal = controller.signal;\n\t\t\t}\n\n\t\t\tconst 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('content-type', 'application/json');\n\t\t\trequest.headers.set('accept', clientRequest.options.accept);\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);\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\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}\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","_a","genExtRes","result","errors","response","isPublicAPI","path","getBaseDomainUrl","useMainDomain","input","subdomain","protocol","hostname","port","parts","baseHostname","createRequest","client","fieldsNarrow","clientRequest","params","options","fields","fetchStyle","data","middlewareCtx","_b","postInWindow","post","fieldsPrepared","field","Request","fetch","middlewareCtxWithoutRequest","genMockResponse","url","requestInitBody","requestInitSignal","fingerprint","_c","controller","requestInit","request","_e","_d","requestOrResponse","e","_g","_f","res","responseText","formatError","isJSON","_h","errorCode","errorMessage","_j","_i","_m","_l","_k","_o","_n","Client","clientOptions","useExt","querySerializer","body","c","r","middleware","id","error","errorAfterMiddleware","args","dataToForm","createClient"],"mappings":"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"}
1
+ {"version":3,"file":"index.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\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\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\tif (clientRequest.mockerOptions) {\n\t\t\t\tconst { genMockResponse } = await import('../mocker/');\n\n\t\t\t\treturn await genMockResponse(clientRequest.mockerOptions, fields, data);\n\t\t\t}\n\n\t\t\tlet url = clientRequest.url;\n\n\t\t\tlet requestInitBody: string | undefined = undefined;\n\t\t\tif (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: AbortController['signal'] | undefined;\n\n\t\t\tif (this.options.checkFingerprint) {\n\t\t\t\tconst fingerprint = this.path + this.options.checkFingerprint;\n\n\t\t\t\tclient.abortControllers[fingerprint]?.abort();\n\n\t\t\t\tconst controller = new AbortController();\n\n\t\t\t\tclient.abortControllers[fingerprint] = controller;\n\t\t\t\trequestInitSignal = controller.signal;\n\t\t\t}\n\n\t\t\tconst 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('content-type', 'application/json');\n\t\t\trequest.headers.set('accept', clientRequest.options.accept);\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);\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\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}\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","_a","genExtRes","result","errors","response","isPublicAPI","path","getBaseDomainUrl","useMainDomain","input","subdomain","protocol","hostname","port","parts","baseHostname","createRequest","client","fieldsNarrow","clientRequest","params","options","fields","fetchStyle","data","middlewareCtx","_b","postInWindow","post","fieldsPrepared","field","Request","fetch","middlewareCtxWithoutRequest","genMockResponse","url","requestInitBody","requestInitSignal","fingerprint","_c","controller","requestInit","request","_e","_d","requestOrResponse","e","_g","_f","res","responseText","formatError","isJSON","_h","errorCode","errorMessage","_j","_i","_m","_l","_k","_o","_n","Client","clientOptions","useExt","querySerializer","body","c","r","middleware","id","error","errorAfterMiddleware","args","dataToForm","createClient"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- define(["require","exports","vue","../.chunks/forms-DRhpgERJ.amd","../utils/number.amd","../require/css.amd!../assets/charts.css"],(function(L,C,e,M,g){"use strict";if(typeof e>"u")var e=window.Vue;const k=90,y=10,V=["data-top-icon"],B={class:"top-miniChart_chart"},b=["onMouseenter"],E={class:"top-miniChart_data"},_={class:"top-miniChart_dataValue"},w=["innerHTML"],D=e.defineComponent({__name:"miniChart",props:e.mergeModels({title:{},gIcon:{},color:{default:"blue"},dates:{},values:{},activeDates:{},keysForDyn:{},dynamic:{},isInvert:{type:Boolean},numberCols:{default:k},additionalHTML:{},modelValue:{},valueSuffix:{},hideChartInMobile:{type:Boolean}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(m){const o=m,s=e.useModel(m,"modelValue"),i=t=>{let l=u.value;o.isInvert&&(t-=1,l-=1);let a=l>0?Math.round(t/l*(100-y)):0;return o.isInvert?100-a:a+y},p=t=>o.activeDates.includes(t),u=e.computed(()=>Math.max(...o.values)),c=e.computed(()=>o.dates.slice().reverse()),v=e.computed(()=>o.dates.length?o.numberCols-o.dates.length:0),h=()=>{s.value=null},r=(t,l,a)=>{t.target instanceof HTMLElement&&(s.value={elCol:t.target,date:M.dateFormat(l),value:a===null?"--":a+(o.valueSuffix??"")})},n=e.computed(()=>{let t=o.dynamic;if(typeof t>"u"){const a=o.values[o.keysForDyn.start];t=o.values[o.keysForDyn.end]-a}return(t<0?-1:1)*g.percentOfNumber(Math.abs(t))}),d=e.computed(()=>{let t="stay";return o.isInvert?(n.value>0&&(t="down"),n.value<0&&(t="up")):(n.value>0&&(t="up"),n.value<0&&(t="down")),t});return(t,l)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass({"top-miniChart":!0,"top-miniChart_hideChartInMobile":t.hideChartInMobile,[`top-color_${t.color}`]:!0})},[e.createElementVNode("div",{class:"top-miniChart_title top-ellipsis","data-top-icon":t.gIcon},e.toDisplayString(t.title),9,V),e.createElementVNode("div",B,[e.createElementVNode("div",{class:"top-miniChart_chartGrid",onMouseleave:l[1]||(l[1]=a=>h())},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,(a,f)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass({"top-miniChart_chartGridCol":!0,"top-active":p(a)}),onMouseenter:z=>r(z,a,t.values[t.values.length-f-1])},[e.createElementVNode("div",{style:e.normalizeStyle("height:"+i(t.values[t.values.length-f-1])+"%")},null,4)],42,b))),256)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(v.value,()=>(e.openBlock(),e.createElementBlock("div",{class:"top-miniChart_chartGridCol top-miniChart_chartGridCol-none",onMouseenter:l[0]||(l[0]=a=>h())},l[2]||(l[2]=[e.createElementVNode("div",null,null,-1)]),32))),256))],32)]),e.createElementVNode("div",E,[e.createElementVNode("span",{class:e.normalizeClass({"top-miniChart_dataDynamic":!0,[`top-miniChart_dataDynamic-direction_${d.value}`]:!0})},e.toDisplayString(Math.abs(n.value)||""),3),e.createElementVNode("span",_,e.toDisplayString(e.unref(g.percentOfNumber)(t.values[t.values.length-1])||0),1)]),t.additionalHTML?(e.openBlock(),e.createElementBlock("div",{key:0,innerHTML:t.additionalHTML},null,8,w)):e.createCommentVNode("",!0)],2))}}),N={key:0,class:"top-miniCharts_pages"},S=["onClick"],T=e.defineComponent({__name:"miniCharts",props:e.mergeModels({modelValue:{},countCharts:{},hideChartInMobile:{type:Boolean}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(m){const o=m,s=e.useModel(m,"modelValue"),i=e.ref(null);let p;const u=e.ref(1),c=e.ref(1),v=()=>{u.value=Math.round(i.value.scrollHeight/i.value.clientHeight)};e.watch(u,()=>{u.value<c.value&&(c.value=1)}),e.watch(()=>o.countCharts,()=>v(),{flush:"post"});const h=e.computed(()=>{if(!s.value)return{};const r=s.value.elCol.getBoundingClientRect(),n={top:r.bottom+window.scrollY+"px"};return document.documentElement.clientWidth/2>r.right?n.left=r.right+window.scrollX+10+"px":(n.left=r.left+window.scrollX-10+"px",n.transform="translate(-100%, 0)"),n});return e.onMounted(()=>{p=new ResizeObserver(()=>v()),p.observe(i.value),e.watch(c,()=>{const d=(i.value.children[0].clientHeight+parseInt(window.getComputedStyle(i.value).getPropertyValue("row-gap")))*(c.value-1);i.value.scrollTo({top:d,behavior:"smooth"})})}),e.onUnmounted(()=>{p.disconnect()}),(r,n)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["top-miniCharts",{"top-miniCharts":!0,scrollable:u.value>1,"top-miniCharts_hideChartInMobile":r.hideChartInMobile}]),ref_key:"elRef",ref:i},[e.renderSlot(r.$slots,"default"),u.value>1?(e.openBlock(),e.createElementBlock("div",N,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(u.value,d=>(e.openBlock(),e.createElementBlock("span",{class:e.normalizeClass({"top-active":d===c.value}),onClick:t=>c.value=d},null,10,S))),256))])):e.createCommentVNode("",!0),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[s.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:"top-miniCharts_tooltip",style:e.normalizeStyle(h.value)},[e.createElementVNode("span",null,e.toDisplayString(s.value.date),1),e.createElementVNode("span",null,e.toDisplayString(s.value.value),1)],4)):e.createCommentVNode("",!0)]))],2))}}),H=D,I=T;C.TopMiniChart=H,C.TopMiniCharts=I,Object.defineProperty(C,Symbol.toStringTag,{value:"Module"})}));
1
+ define(["require","exports","vue","../.chunks/forms-nOSFakjs.amd","../utils/number.amd","../require/css.amd!../assets/charts.css"],(function(T,C,e,M,g){"use strict";if(typeof e>"u")var e=window.Vue;const k=90,y=10,V=["data-top-icon"],B={class:"top-miniChart_chart"},b=["onMouseenter"],E={class:"top-miniChart_data"},_={class:"top-miniChart_dataValue"},w=["innerHTML"],D=e.defineComponent({__name:"miniChart",props:e.mergeModels({title:{},gIcon:{},color:{default:"blue"},dates:{},values:{},activeDates:{},keysForDyn:{},dynamic:{},isInvert:{type:Boolean},numberCols:{default:k},additionalHTML:{},modelValue:{},valueSuffix:{},hideChartInMobile:{type:Boolean}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(m){const o=m,s=e.useModel(m,"modelValue"),i=t=>{let l=u.value;o.isInvert&&(t-=1,l-=1);let a=l>0?Math.round(t/l*(100-y)):0;return o.isInvert?100-a:a+y},p=t=>o.activeDates.includes(t),u=e.computed(()=>Math.max(...o.values)),c=e.computed(()=>o.dates.slice().reverse()),v=e.computed(()=>o.dates.length?o.numberCols-o.dates.length:0),h=()=>{s.value=null},r=(t,l,a)=>{t.target instanceof HTMLElement&&(s.value={elCol:t.target,date:M.dateFormat(l),value:a===null?"--":a+(o.valueSuffix??"")})},n=e.computed(()=>{let t=o.dynamic;if(typeof t>"u"){const a=o.values[o.keysForDyn.start];t=o.values[o.keysForDyn.end]-a}return(t<0?-1:1)*g.percentOfNumber(Math.abs(t))}),d=e.computed(()=>{let t="stay";return o.isInvert?(n.value>0&&(t="down"),n.value<0&&(t="up")):(n.value>0&&(t="up"),n.value<0&&(t="down")),t});return(t,l)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass({"top-miniChart":!0,"top-miniChart_hideChartInMobile":t.hideChartInMobile,[`top-color_${t.color}`]:!0})},[e.createElementVNode("div",{class:"top-miniChart_title top-ellipsis","data-top-icon":t.gIcon},e.toDisplayString(t.title),9,V),e.createElementVNode("div",B,[e.createElementVNode("div",{class:"top-miniChart_chartGrid",onMouseleave:l[1]||(l[1]=a=>h())},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,(a,f)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass({"top-miniChart_chartGridCol":!0,"top-active":p(a)}),onMouseenter:I=>r(I,a,t.values[t.values.length-f-1])},[e.createElementVNode("div",{style:e.normalizeStyle("height:"+i(t.values[t.values.length-f-1])+"%")},null,4)],42,b))),256)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(v.value,()=>(e.openBlock(),e.createElementBlock("div",{class:"top-miniChart_chartGridCol top-miniChart_chartGridCol-none",onMouseenter:l[0]||(l[0]=a=>h())},l[2]||(l[2]=[e.createElementVNode("div",null,null,-1)]),32))),256))],32)]),e.createElementVNode("div",E,[e.createElementVNode("span",{class:e.normalizeClass({"top-miniChart_dataDynamic":!0,[`top-miniChart_dataDynamic-direction_${d.value}`]:!0})},e.toDisplayString(Math.abs(n.value)||""),3),e.createElementVNode("span",_,e.toDisplayString(e.unref(g.percentOfNumber)(t.values[t.values.length-1])||0),1)]),t.additionalHTML?(e.openBlock(),e.createElementBlock("div",{key:0,innerHTML:t.additionalHTML},null,8,w)):e.createCommentVNode("",!0)],2))}}),N={key:0,class:"top-miniCharts_pages"},S=["onClick"],H=e.defineComponent({__name:"miniCharts",props:e.mergeModels({modelValue:{},countCharts:{},hideChartInMobile:{type:Boolean}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(m){const o=m,s=e.useModel(m,"modelValue"),i=e.ref(null);let p;const u=e.ref(1),c=e.ref(1),v=()=>{u.value=Math.round(i.value.scrollHeight/i.value.clientHeight)};e.watch(u,()=>{u.value<c.value&&(c.value=1)}),e.watch(()=>o.countCharts,()=>v(),{flush:"post"});const h=e.computed(()=>{if(!s.value)return{};const r=s.value.elCol.getBoundingClientRect(),n={top:r.bottom+window.scrollY+"px"};return document.documentElement.clientWidth/2>r.right?n.left=r.right+window.scrollX+10+"px":(n.left=r.left+window.scrollX-10+"px",n.transform="translate(-100%, 0)"),n});return e.onMounted(()=>{p=new ResizeObserver(()=>v()),p.observe(i.value),e.watch(c,()=>{const d=(i.value.children[0].clientHeight+parseInt(window.getComputedStyle(i.value).getPropertyValue("row-gap")))*(c.value-1);i.value.scrollTo({top:d,behavior:"smooth"})})}),e.onUnmounted(()=>{p.disconnect()}),(r,n)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["top-miniCharts",{"top-miniCharts":!0,scrollable:u.value>1,"top-miniCharts_hideChartInMobile":r.hideChartInMobile}]),ref_key:"elRef",ref:i},[e.renderSlot(r.$slots,"default"),u.value>1?(e.openBlock(),e.createElementBlock("div",N,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(u.value,d=>(e.openBlock(),e.createElementBlock("span",{class:e.normalizeClass({"top-active":d===c.value}),onClick:t=>c.value=d},null,10,S))),256))])):e.createCommentVNode("",!0),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[s.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:"top-miniCharts_tooltip",style:e.normalizeStyle(h.value)},[e.createElementVNode("span",null,e.toDisplayString(s.value.date),1),e.createElementVNode("span",null,e.toDisplayString(s.value.value),1)],4)):e.createCommentVNode("",!0)]))],2))}});C.TopMiniChart=D,C.TopMiniCharts=H,Object.defineProperty(C,Symbol.toStringTag,{value:"Module"})}));
2
2
  //# sourceMappingURL=charts.amd.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"charts.amd.js","sources":["../../src/components/charts/miniChart/miniChart.vue","../../src/components/charts/miniCharts/miniCharts.vue","../../src/components/charts/charts.ts"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { Props } from './types';\nimport { computed } from 'vue';\nimport { dateFormat } from '@/core/utils/date';\nimport { percentOfNumber } from '@/core/utils/number';\nimport { defaultNumberCols, minHeight } from './utils/consts';\n\nconst props = withDefaults(defineProps<Props>(), {\n\tcolor: 'blue',\n\tnumberCols: defaultNumberCols,\n});\nconst model = defineModel<Props['modelValue']>();\n\n/**\n * Расчет высоты колонки (в процентах)\n */\nconst genColHeight = (value: number): number => {\n\tlet maximumValue = maxValue.value;\n\n\t// для графиков средней и медианной делаем максимум 1\n\tif (props.isInvert) {\n\t\tvalue -= 1;\n\t\tmaximumValue -= 1;\n\t}\n\n\tlet height = maximumValue > 0 ? Math.round((value / maximumValue) * (100 - minHeight)) : 0;\n\tif (props.isInvert) return 100 - height;\n\n\treturn height + minHeight;\n};\n\nconst isActiveDate = (date: string) => props.activeDates.includes(date);\n\nconst maxValue = computed(() => Math.max(...props.values));\n\n/**\n * Из-за стиля .top-miniChart_chartGrid - direction: rtl\n */\nconst reversedDates = computed(() => props.dates.slice().reverse());\n\n/**\n * Кол-во пустых колонок\n */\nconst numOfEmptyCols = computed(() => {\n\tif (!props.dates.length) return 0;\n\n\treturn props.numberCols - props.dates.length;\n});\n\nconst resetModel = () => {\n\tmodel.value = null;\n};\n\nconst setModel = (e: Event, date: string, value: number | null) => {\n\tif (!(e.target instanceof HTMLElement)) return;\n\n\tmodel.value = {\n\t\telCol: e.target,\n\t\tdate: dateFormat(date),\n\t\tvalue: value === null ? '--' : value + (props.valueSuffix ?? ''),\n\t};\n};\n\n/**\n * Возвращает численный показатель динамики графика\n */\nconst localDynamic = computed(() => {\n\tlet dynamic = props.dynamic;\n\n\tif (typeof dynamic === 'undefined') {\n\t\tconst prevPeriodValue = props.values[props.keysForDyn.start];\n\t\tconst currentValue = props.values[props.keysForDyn.end];\n\t\tdynamic = currentValue - prevPeriodValue;\n\t}\n\n\tconst sign = dynamic < 0 ? -1 : 1;\n\n\treturn sign * (percentOfNumber(Math.abs(dynamic)) as number);\n});\n\nconst dynamicDirection = computed(() => {\n\tlet direction: 'up' | 'stay' | 'down' = 'stay';\n\n\tif (!props.isInvert) {\n\t\tif (localDynamic.value > 0) direction = 'up';\n\t\tif (localDynamic.value < 0) direction = 'down';\n\t} else {\n\t\tif (localDynamic.value > 0) direction = 'down';\n\t\tif (localDynamic.value < 0) direction = 'up';\n\t}\n\n\treturn direction;\n});\n\n</script>\n\n<template>\n\t<div\n\t\t:class=\"{\n\t\t\t['top-miniChart']: true,\n\t\t\t['top-miniChart_hideChartInMobile']: hideChartInMobile,\n\t\t\t[`top-color_${color}`]: true\n\t\t}\"\n\t>\n\t\t<div\n\t\t\tclass=\"top-miniChart_title top-ellipsis\"\n\t\t\t:data-top-icon=\"gIcon\"\n\t\t>\n\t\t\t{{ title }}\n\t\t</div>\n\n\t\t<div class=\"top-miniChart_chart\">\n\t\t\t<div\n\t\t\t\tclass=\"top-miniChart_chartGrid\"\n\t\t\t\t@mouseleave=\"resetModel()\"\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tv-for=\"(date, i) in reversedDates\"\n\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t['top-miniChart_chartGridCol']: true,\n\t\t\t\t\t\t['top-active']: isActiveDate(date)\n\t\t\t\t\t}\"\n\t\t\t\t\t@mouseenter=\"setModel($event, date, values[values.length - i - 1])\"\n\t\t\t\t>\n\t\t\t\t\t<div :style=\"'height:' + genColHeight(values[values.length - i - 1]) + '%'\"/>\n\t\t\t\t</div>\n\t\t\t\t<div\n\t\t\t\t\tv-for=\"() in numOfEmptyCols\"\n\t\t\t\t\tclass=\"top-miniChart_chartGridCol top-miniChart_chartGridCol-none\"\n\t\t\t\t\t@mouseenter=\"resetModel()\"\n\t\t\t\t>\n\t\t\t\t\t<div></div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div class=\"top-miniChart_data\">\n\t\t\t<span :class=\"{\n\t\t\t\t['top-miniChart_dataDynamic']: true,\n\t\t\t\t[`top-miniChart_dataDynamic-direction_${dynamicDirection}`]: true,\n\t\t\t}\">\n\t\t\t\t{{ Math.abs(localDynamic) || '' }}\n\t\t\t</span>\n\t\t\t<span class=\"top-miniChart_dataValue\">\n\t\t\t\t{{ percentOfNumber(values[values.length - 1]) || 0 }}\n\t\t\t</span>\n\t\t</div>\n\n\t\t<div\n\t\t\tv-if=\"additionalHTML\"\n\t\t\tv-html=\"additionalHTML\"\n\t\t/>\n\t</div>\n\n</template>\n<style>\n@import \"./styles/miniChart.css\";\n</style>\n","<script setup lang=\"ts\">\nimport { computed, onMounted, onUnmounted, ref, watch } from 'vue';\nimport type { Props, Style } from './miniCharts';\n\nconst props = defineProps<Props>();\nconst model = defineModel<Props['modelValue']>();\n\nconst elRef = ref<HTMLElement | null>(null);\n\nlet pagesResizeObserver: ResizeObserver;\n\n/**\n * Количество страниц\n */\nconst countPages = ref(1);\n\n/**\n * Активная страница\n */\nconst activePage = ref(1);\n\n/**\n * Установка количества страниц в блоке\n */\nconst setCountPages = () => {\n\tcountPages.value = Math.round(elRef.value!.scrollHeight / elRef.value!.clientHeight);\n};\n\nwatch(countPages, () => {\n\tif (countPages.value < activePage.value) {\n\t\tactivePage.value = 1;\n\t}\n});\n\nwatch(\n\t() => props.countCharts,\n\t() => setCountPages(),\n\t{ flush: 'post' },\n);\n\n/**\n * Расчет положения для подсказки\n */\nconst tooltipStyle = computed(() => {\n\tif (!model.value) return {};\n\n\tconst box = model.value.elCol.getBoundingClientRect();\n\n\tconst style: Style = {\n\t\ttop: box.bottom + window.scrollY + 'px',\n\t};\n\n\tif (document.documentElement.clientWidth / 2 > box.right) {\n\t\tstyle.left = box.right + window.scrollX + 10 + 'px';\n\t} else {\n\t\tstyle.left = box.left + window.scrollX - 10 + 'px';\n\t\tstyle.transform = 'translate(-100%, 0)';\n\t}\n\n\treturn style;\n});\n\nonMounted(() => {\n\t/**\n\t * Функционал переключения экранов графиков\n\t */\n\tpagesResizeObserver = new ResizeObserver(() => setCountPages());\n\tpagesResizeObserver.observe(elRef.value!);\n\n\twatch(activePage, () => {\n\t\tconst elMiniChart = elRef.value!.children[0];\n\t\tconst pageHeight = elMiniChart.clientHeight + parseInt(window.getComputedStyle(elRef.value!).getPropertyValue('row-gap'));\n\t\tconst scrollTop = pageHeight * (activePage.value - 1);\n\n\t\telRef.value!.scrollTo({ top: scrollTop, behavior: 'smooth' });\n\t});\n});\n\nonUnmounted(() => {\n\tpagesResizeObserver.disconnect();\n});\n</script>\n\n<template>\n\t<div\n\t\tclass=\"top-miniCharts\"\n\t\t:class=\"{\n\t\t\t['top-miniCharts']: true,\n\t\t\t['scrollable']: countPages > 1,\n\t\t\t['top-miniCharts_hideChartInMobile']: hideChartInMobile,\n\t\t}\"\n\t\tref=\"elRef\"\n\t>\n\n\t\t<slot></slot>\n\n\t\t<div\n\t\t\tv-if=\"countPages > 1\"\n\t\t\tclass=\"top-miniCharts_pages\"\n\t\t>\n\t\t\t<span\n\t\t\t\tv-for=\"n in countPages\"\n\t\t\t\t:class=\"{['top-active']: n === activePage}\"\n\t\t\t\t@click=\"activePage = n\"\n\t\t\t></span>\n\t\t</div>\n\n\t\t<Teleport to=\"body\">\n\t\t\t<div\n\t\t\t\tv-if=\"model\"\n\t\t\t\tclass=\"top-miniCharts_tooltip\"\n\t\t\t\t:style=\"tooltipStyle\"\n\t\t\t>\n\t\t\t\t<span>{{ model.date }}</span>\n\t\t\t\t<span>{{ model.value }}</span>\n\t\t\t</div>\n\t\t</Teleport>\n\t</div>\n\n</template>\n\n<style>\n@import \"./styles/miniCharts.css\";\n</style>\n","import type { ComponentCustomProps } from 'vue';\n\nimport MiniChart from './miniChart/miniChart.vue';\nimport MiniCharts from './miniCharts/miniCharts.vue';\n\nexport const TopMiniChart = MiniChart as typeof MiniChart & ComponentCustomProps;\n\nexport const TopMiniCharts = MiniCharts as typeof MiniCharts & ComponentCustomProps;\n"],"names":["genColHeight","value","maximumValue","maxValue","props","isActiveDate","date","vue","reversedDates","numOfEmptyCols","model","e","forms","localDynamic","dynamic","prevPeriodValue","dynamicDirection","direction","_hoisted_2$1","_cache","$event","resetModel","_hoisted_5","utils_number","_ctx","additionalHTML","elRef","pagesResizeObserver","countPages","activePage","tooltipStyle","box","style","scrollTop","hideChartInMobile","_hoisted_1","n","_hoisted_2","TopMiniChart","_sfc_main$1","TopMiniCharts","_sfc_main"],"mappings":"gwBAgBAA,EAAAC,GAAA,CACC,IAAAC,EAAAC,EAAA,MAGAC,EAAA,qFAQgB,EAGjBC,EAAAC,GAAAF,EAAA,YAAA,SAAAE,CAAA,EAEAH,EAAAI,EAAA,SAAA,IAAA,KAAA,IAAA,GAAAH,EAAA,MAAA,CAAA,EAKAI,EAAAD,EAAA,SAAA,IAAAH,EAAA,MAAA,MAAA,EAAA,QAAA,CAAA,EAKAK,EAAAF,EAAA,SAAA,gDAGuC,SAItCG,EAAA,MAAA,IAAc,yDAMA,MAAAC,EAAA,OACJ,KAAAC,EAAA,WAAAN,CAAA,EACY,MAAAL,IAAA,KAAA,KAAAA,GAAAG,EAAA,aAAA,KAEtB,EAMDS,EAAAN,EAAA,SAAA,IAAA,CACC,IAAAO,EAAAV,EAAA,QAEA,GAAA,OAAAU,EAAA,IAAA,CACC,MAAAC,EAAAX,EAAA,OAAAA,EAAA,WAAA,KAAA,EAEAU,EADAV,EAAA,OAAAA,EAAA,WAAA,GAAA,EACAW,iDAK+C,CAAA,EAGjDC,EAAAT,EAAA,SAAA,IAAA,cAGC,OAAAH,EAAA,iGAQAa,CAAO,CAAA,yTAiBGV,EAAA,mBAAA,MAAAW,EAAA,6DAKD,aAAAC,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GAAAC,EAAA,EACiB,EAAA,uMAIuE,CAAA,sDAIjC,EAAA,yTAMtD,aAAAF,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GAAAC,EAAA,sSAaiBd,EAAA,mBAAA,OAAAe,EAAAf,EAAA,gBAAAA,EAAA,MAAAgB,EAAA,eAAA,EAAAC,EAAA,OAAAA,EAAA,OAAA,OAAA,CAAA,CAAA,GAAA,CAAA,EAAA,CAAA,CAGe,CAAA,8FAMhCC,EAAAA,KAAAA,EAAAA,CAAAA,GAAAA,EAAAA,mBAAAA,GAAAA,EAAAA,2SC/IXC,EAAAnB,EAAA,IAAA,IAAA,EAEA,IAAAoB,EAKA,MAAAC,EAAArB,EAAA,IAAA,CAAA,EAKAsB,EAAAtB,EAAA,IAAA,CAAA,SAMCqB,EAAA,MAAA,KAAA,MAAAF,EAAA,MAAA,aAAAA,EAAA,MAAA,YAAA,CAAmF,EAGpFnB,EAAA,MAAAqB,EAAA,IAAA,mBAEEC,EAAA,MAAA,EACD,CAAA,EAGDtB,EAAA,gDASA,MAAAuB,EAAAvB,EAAA,SAAA,IAAA,CACC,GAAA,CAAAG,EAAA,MAAA,MAAA,CAAA,qFAQA,OAAA,SAAA,gBAAA,YAAA,EAAAqB,EAAA,MACCC,EAAA,KAAAD,EAAA,MAAA,OAAA,QAAA,GAAA,MAEAC,EAAA,KAAAD,EAAA,KAAA,OAAA,QAAA,GAAA,KACAC,EAAA,UAAA,uBAGDA,CAAO,CAAA,wDAQPL,EAAA,QAAAD,EAAA,KAAA,EAEAnB,EAAA,MAAAsB,EAAA,IAAA,+HAKCH,EAAA,MAAA,SAAA,CAAA,IAAAO,EAAA,SAAA,QAAA,CAAA,CAA4D,CAAA,CAC5D,CAAA,mCAI8B,CAAA,oDAsCzB,MAAA1B,EAAA,eAAA,CAAA,iBAAA,0CA/B+D,mCAAAiB,EAAA,iBAA+CU,CAAAA,CAAAA,kBAK/G,IAAAR,CAAA,EAAA,kCAGSE,EAAA,MAAA,GAAArB,EAAA,UAAA,EAAAA,EAAA,mBAAA,MAAA4B,EAAA,EAWP5B,EAAA,UAAA,EAAA,EAAAA,EAAA,mBAAAA,EAAA,SAAA,KAAAA,EAAA,WAAAqB,EAAA,MAAAQ,+CADG,MAAA7B,EAAA,eAAA,CAAA,aAAA6B,IAAAP,EAAA,KAAA,CAAA,sBADc,EAAA,KAAA,GAAAQ,CAAA,sLAOf,MAAA9B,EAAA,eAAAuB,EAAA,KAAA,CACc,EAAA,qEAEDvB,EAAA,mBAAA,OAAA,KAAAA,EAAA,gBAAAG,EAAA,MAAA,KAAA,EAAA,CAAA,8CC5GhB4B,EAAAC,EAEAC,EAAAC"}
1
+ {"version":3,"file":"charts.amd.js","sources":["../../src/components/charts/miniChart/miniChart.vue","../../src/components/charts/miniCharts/miniCharts.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { Props } from './types';\nimport { computed } from 'vue';\nimport { dateFormat } from '@/core/utils/date';\nimport { percentOfNumber } from '@/core/utils/number';\nimport { defaultNumberCols, minHeight } from './utils/consts';\n\nconst props = withDefaults(defineProps<Props>(), {\n\tcolor: 'blue',\n\tnumberCols: defaultNumberCols,\n});\nconst model = defineModel<Props['modelValue']>();\n\n/**\n * Расчет высоты колонки (в процентах)\n */\nconst genColHeight = (value: number): number => {\n\tlet maximumValue = maxValue.value;\n\n\t// для графиков средней и медианной делаем максимум 1\n\tif (props.isInvert) {\n\t\tvalue -= 1;\n\t\tmaximumValue -= 1;\n\t}\n\n\tlet height = maximumValue > 0 ? Math.round((value / maximumValue) * (100 - minHeight)) : 0;\n\tif (props.isInvert) return 100 - height;\n\n\treturn height + minHeight;\n};\n\nconst isActiveDate = (date: string) => props.activeDates.includes(date);\n\nconst maxValue = computed(() => Math.max(...props.values));\n\n/**\n * Из-за стиля .top-miniChart_chartGrid - direction: rtl\n */\nconst reversedDates = computed(() => props.dates.slice().reverse());\n\n/**\n * Кол-во пустых колонок\n */\nconst numOfEmptyCols = computed(() => {\n\tif (!props.dates.length) return 0;\n\n\treturn props.numberCols - props.dates.length;\n});\n\nconst resetModel = () => {\n\tmodel.value = null;\n};\n\nconst setModel = (e: Event, date: string, value: number | null) => {\n\tif (!(e.target instanceof HTMLElement)) return;\n\n\tmodel.value = {\n\t\telCol: e.target,\n\t\tdate: dateFormat(date),\n\t\tvalue: value === null ? '--' : value + (props.valueSuffix ?? ''),\n\t};\n};\n\n/**\n * Возвращает численный показатель динамики графика\n */\nconst localDynamic = computed(() => {\n\tlet dynamic = props.dynamic;\n\n\tif (typeof dynamic === 'undefined') {\n\t\tconst prevPeriodValue = props.values[props.keysForDyn.start];\n\t\tconst currentValue = props.values[props.keysForDyn.end];\n\t\tdynamic = currentValue - prevPeriodValue;\n\t}\n\n\tconst sign = dynamic < 0 ? -1 : 1;\n\n\treturn sign * (percentOfNumber(Math.abs(dynamic)) as number);\n});\n\nconst dynamicDirection = computed(() => {\n\tlet direction: 'up' | 'stay' | 'down' = 'stay';\n\n\tif (!props.isInvert) {\n\t\tif (localDynamic.value > 0) direction = 'up';\n\t\tif (localDynamic.value < 0) direction = 'down';\n\t} else {\n\t\tif (localDynamic.value > 0) direction = 'down';\n\t\tif (localDynamic.value < 0) direction = 'up';\n\t}\n\n\treturn direction;\n});\n\n</script>\n\n<template>\n\t<div\n\t\t:class=\"{\n\t\t\t['top-miniChart']: true,\n\t\t\t['top-miniChart_hideChartInMobile']: hideChartInMobile,\n\t\t\t[`top-color_${color}`]: true\n\t\t}\"\n\t>\n\t\t<div\n\t\t\tclass=\"top-miniChart_title top-ellipsis\"\n\t\t\t:data-top-icon=\"gIcon\"\n\t\t>\n\t\t\t{{ title }}\n\t\t</div>\n\n\t\t<div class=\"top-miniChart_chart\">\n\t\t\t<div\n\t\t\t\tclass=\"top-miniChart_chartGrid\"\n\t\t\t\t@mouseleave=\"resetModel()\"\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tv-for=\"(date, i) in reversedDates\"\n\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t['top-miniChart_chartGridCol']: true,\n\t\t\t\t\t\t['top-active']: isActiveDate(date)\n\t\t\t\t\t}\"\n\t\t\t\t\t@mouseenter=\"setModel($event, date, values[values.length - i - 1])\"\n\t\t\t\t>\n\t\t\t\t\t<div :style=\"'height:' + genColHeight(values[values.length - i - 1]) + '%'\"/>\n\t\t\t\t</div>\n\t\t\t\t<div\n\t\t\t\t\tv-for=\"() in numOfEmptyCols\"\n\t\t\t\t\tclass=\"top-miniChart_chartGridCol top-miniChart_chartGridCol-none\"\n\t\t\t\t\t@mouseenter=\"resetModel()\"\n\t\t\t\t>\n\t\t\t\t\t<div></div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div class=\"top-miniChart_data\">\n\t\t\t<span :class=\"{\n\t\t\t\t['top-miniChart_dataDynamic']: true,\n\t\t\t\t[`top-miniChart_dataDynamic-direction_${dynamicDirection}`]: true,\n\t\t\t}\">\n\t\t\t\t{{ Math.abs(localDynamic) || '' }}\n\t\t\t</span>\n\t\t\t<span class=\"top-miniChart_dataValue\">\n\t\t\t\t{{ percentOfNumber(values[values.length - 1]) || 0 }}\n\t\t\t</span>\n\t\t</div>\n\n\t\t<div\n\t\t\tv-if=\"additionalHTML\"\n\t\t\tv-html=\"additionalHTML\"\n\t\t/>\n\t</div>\n\n</template>\n<style>\n@import \"./styles/miniChart.css\";\n</style>\n","<script setup lang=\"ts\">\nimport { computed, onMounted, onUnmounted, ref, watch } from 'vue';\nimport type { Props, Style } from './miniCharts';\n\nconst props = defineProps<Props>();\nconst model = defineModel<Props['modelValue']>();\n\nconst elRef = ref<HTMLElement | null>(null);\n\nlet pagesResizeObserver: ResizeObserver;\n\n/**\n * Количество страниц\n */\nconst countPages = ref(1);\n\n/**\n * Активная страница\n */\nconst activePage = ref(1);\n\n/**\n * Установка количества страниц в блоке\n */\nconst setCountPages = () => {\n\tcountPages.value = Math.round(elRef.value!.scrollHeight / elRef.value!.clientHeight);\n};\n\nwatch(countPages, () => {\n\tif (countPages.value < activePage.value) {\n\t\tactivePage.value = 1;\n\t}\n});\n\nwatch(\n\t() => props.countCharts,\n\t() => setCountPages(),\n\t{ flush: 'post' },\n);\n\n/**\n * Расчет положения для подсказки\n */\nconst tooltipStyle = computed(() => {\n\tif (!model.value) return {};\n\n\tconst box = model.value.elCol.getBoundingClientRect();\n\n\tconst style: Style = {\n\t\ttop: box.bottom + window.scrollY + 'px',\n\t};\n\n\tif (document.documentElement.clientWidth / 2 > box.right) {\n\t\tstyle.left = box.right + window.scrollX + 10 + 'px';\n\t} else {\n\t\tstyle.left = box.left + window.scrollX - 10 + 'px';\n\t\tstyle.transform = 'translate(-100%, 0)';\n\t}\n\n\treturn style;\n});\n\nonMounted(() => {\n\t/**\n\t * Функционал переключения экранов графиков\n\t */\n\tpagesResizeObserver = new ResizeObserver(() => setCountPages());\n\tpagesResizeObserver.observe(elRef.value!);\n\n\twatch(activePage, () => {\n\t\tconst elMiniChart = elRef.value!.children[0];\n\t\tconst pageHeight = elMiniChart.clientHeight + parseInt(window.getComputedStyle(elRef.value!).getPropertyValue('row-gap'));\n\t\tconst scrollTop = pageHeight * (activePage.value - 1);\n\n\t\telRef.value!.scrollTo({ top: scrollTop, behavior: 'smooth' });\n\t});\n});\n\nonUnmounted(() => {\n\tpagesResizeObserver.disconnect();\n});\n</script>\n\n<template>\n\t<div\n\t\tclass=\"top-miniCharts\"\n\t\t:class=\"{\n\t\t\t['top-miniCharts']: true,\n\t\t\t['scrollable']: countPages > 1,\n\t\t\t['top-miniCharts_hideChartInMobile']: hideChartInMobile,\n\t\t}\"\n\t\tref=\"elRef\"\n\t>\n\n\t\t<slot></slot>\n\n\t\t<div\n\t\t\tv-if=\"countPages > 1\"\n\t\t\tclass=\"top-miniCharts_pages\"\n\t\t>\n\t\t\t<span\n\t\t\t\tv-for=\"n in countPages\"\n\t\t\t\t:class=\"{['top-active']: n === activePage}\"\n\t\t\t\t@click=\"activePage = n\"\n\t\t\t></span>\n\t\t</div>\n\n\t\t<Teleport to=\"body\">\n\t\t\t<div\n\t\t\t\tv-if=\"model\"\n\t\t\t\tclass=\"top-miniCharts_tooltip\"\n\t\t\t\t:style=\"tooltipStyle\"\n\t\t\t>\n\t\t\t\t<span>{{ model.date }}</span>\n\t\t\t\t<span>{{ model.value }}</span>\n\t\t\t</div>\n\t\t</Teleport>\n\t</div>\n\n</template>\n\n<style>\n@import \"./styles/miniCharts.css\";\n</style>\n"],"names":["genColHeight","value","maximumValue","maxValue","props","isActiveDate","date","vue","reversedDates","numOfEmptyCols","model","e","forms","localDynamic","dynamic","prevPeriodValue","dynamicDirection","direction","_hoisted_2$1","_cache","$event","resetModel","_hoisted_5","utils_number","_ctx","additionalHTML","elRef","pagesResizeObserver","countPages","activePage","tooltipStyle","box","style","scrollTop","hideChartInMobile","_hoisted_1","n","_hoisted_2"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from '../src/components/charts/charts'
2
+ export {}
package/charts/charts.js CHANGED
@@ -1,10 +1,10 @@
1
1
  import { Core as P } from "../core/app.js";
2
2
  import { defineComponent as T, mergeModels as S, useModel as $, computed as h, createElementBlock as i, openBlock as a, normalizeClass as f, createElementVNode as r, createCommentVNode as k, toDisplayString as g, Fragment as w, renderList as H, normalizeStyle as L, unref as F, ref as b, watch as V, onMounted as N, onUnmounted as R, renderSlot as z, createBlock as G, Teleport as O } from "vue";
3
- import { c as X } from "../.chunks/forms-t2AEUjqg.es.js";
3
+ import { e as X } from "../.chunks/forms-CSwfPGPT.es.js";
4
4
  import { percentOfNumber as I } from "../utils/number.js";
5
5
  const E = ["../assets/charts.css"].map((v) => import.meta.resolve(v));
6
6
  P.insertCSSLinkToPage(E, !0);
7
- const A = 90, D = 10, U = ["data-top-icon"], W = { class: "top-miniChart_chart" }, Y = ["onMouseenter"], j = { class: "top-miniChart_data" }, q = { class: "top-miniChart_dataValue" }, J = ["innerHTML"], K = /* @__PURE__ */ T({
7
+ const A = 90, D = 10, U = ["data-top-icon"], W = { class: "top-miniChart_chart" }, Y = ["onMouseenter"], j = { class: "top-miniChart_data" }, q = { class: "top-miniChart_dataValue" }, J = ["innerHTML"], oe = /* @__PURE__ */ T({
8
8
  __name: "miniChart",
9
9
  props: /* @__PURE__ */ S({
10
10
  title: {},
@@ -101,10 +101,10 @@ const A = 90, D = 10, U = ["data-top-icon"], W = { class: "top-miniChart_chart"
101
101
  }, null, 8, J)) : k("", !0)
102
102
  ], 2));
103
103
  }
104
- }), Q = {
104
+ }), K = {
105
105
  key: 0,
106
106
  class: "top-miniCharts_pages"
107
- }, Z = ["onClick"], x = /* @__PURE__ */ T({
107
+ }, Q = ["onClick"], le = /* @__PURE__ */ T({
108
108
  __name: "miniCharts",
109
109
  props: /* @__PURE__ */ S({
110
110
  modelValue: {},
@@ -152,11 +152,11 @@ const A = 90, D = 10, U = ["data-top-icon"], W = { class: "top-miniChart_chart"
152
152
  ref: u
153
153
  }, [
154
154
  z(s.$slots, "default"),
155
- c.value > 1 ? (a(), i("div", Q, [
155
+ c.value > 1 ? (a(), i("div", K, [
156
156
  (a(!0), i(w, null, H(c.value, (p) => (a(), i("span", {
157
157
  class: f({ "top-active": p === m.value }),
158
158
  onClick: (e) => m.value = p
159
- }, null, 10, Z))), 256))
159
+ }, null, 10, Q))), 256))
160
160
  ])) : k("", !0),
161
161
  (a(), G(O, { to: "body" }, [
162
162
  d.value ? (a(), i("div", {
@@ -170,9 +170,9 @@ const A = 90, D = 10, U = ["data-top-icon"], W = { class: "top-miniChart_chart"
170
170
  ]))
171
171
  ], 2));
172
172
  }
173
- }), ne = K, ae = x;
173
+ });
174
174
  export {
175
- ne as TopMiniChart,
176
- ae as TopMiniCharts
175
+ oe as TopMiniChart,
176
+ le as TopMiniCharts
177
177
  };
178
178
  //# sourceMappingURL=charts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"charts.js","sources":["../../src/components/charts/miniChart/utils/consts.ts","../../src/components/charts/miniChart/miniChart.vue","../../src/components/charts/miniCharts/miniCharts.vue","../../src/components/charts/charts.ts"],"sourcesContent":["/**\n * Кол-во столбцов по умолчанию\n */\nexport const defaultNumberCols = 90;\n\n/**\n * Минимальная высота колонки (в процентах)\n */\nexport const minHeight = 10; // %","<script setup lang=\"ts\">\nimport type { Props } from './types';\nimport { computed } from 'vue';\nimport { dateFormat } from '@/core/utils/date';\nimport { percentOfNumber } from '@/core/utils/number';\nimport { defaultNumberCols, minHeight } from './utils/consts';\n\nconst props = withDefaults(defineProps<Props>(), {\n\tcolor: 'blue',\n\tnumberCols: defaultNumberCols,\n});\nconst model = defineModel<Props['modelValue']>();\n\n/**\n * Расчет высоты колонки (в процентах)\n */\nconst genColHeight = (value: number): number => {\n\tlet maximumValue = maxValue.value;\n\n\t// для графиков средней и медианной делаем максимум 1\n\tif (props.isInvert) {\n\t\tvalue -= 1;\n\t\tmaximumValue -= 1;\n\t}\n\n\tlet height = maximumValue > 0 ? Math.round((value / maximumValue) * (100 - minHeight)) : 0;\n\tif (props.isInvert) return 100 - height;\n\n\treturn height + minHeight;\n};\n\nconst isActiveDate = (date: string) => props.activeDates.includes(date);\n\nconst maxValue = computed(() => Math.max(...props.values));\n\n/**\n * Из-за стиля .top-miniChart_chartGrid - direction: rtl\n */\nconst reversedDates = computed(() => props.dates.slice().reverse());\n\n/**\n * Кол-во пустых колонок\n */\nconst numOfEmptyCols = computed(() => {\n\tif (!props.dates.length) return 0;\n\n\treturn props.numberCols - props.dates.length;\n});\n\nconst resetModel = () => {\n\tmodel.value = null;\n};\n\nconst setModel = (e: Event, date: string, value: number | null) => {\n\tif (!(e.target instanceof HTMLElement)) return;\n\n\tmodel.value = {\n\t\telCol: e.target,\n\t\tdate: dateFormat(date),\n\t\tvalue: value === null ? '--' : value + (props.valueSuffix ?? ''),\n\t};\n};\n\n/**\n * Возвращает численный показатель динамики графика\n */\nconst localDynamic = computed(() => {\n\tlet dynamic = props.dynamic;\n\n\tif (typeof dynamic === 'undefined') {\n\t\tconst prevPeriodValue = props.values[props.keysForDyn.start];\n\t\tconst currentValue = props.values[props.keysForDyn.end];\n\t\tdynamic = currentValue - prevPeriodValue;\n\t}\n\n\tconst sign = dynamic < 0 ? -1 : 1;\n\n\treturn sign * (percentOfNumber(Math.abs(dynamic)) as number);\n});\n\nconst dynamicDirection = computed(() => {\n\tlet direction: 'up' | 'stay' | 'down' = 'stay';\n\n\tif (!props.isInvert) {\n\t\tif (localDynamic.value > 0) direction = 'up';\n\t\tif (localDynamic.value < 0) direction = 'down';\n\t} else {\n\t\tif (localDynamic.value > 0) direction = 'down';\n\t\tif (localDynamic.value < 0) direction = 'up';\n\t}\n\n\treturn direction;\n});\n\n</script>\n\n<template>\n\t<div\n\t\t:class=\"{\n\t\t\t['top-miniChart']: true,\n\t\t\t['top-miniChart_hideChartInMobile']: hideChartInMobile,\n\t\t\t[`top-color_${color}`]: true\n\t\t}\"\n\t>\n\t\t<div\n\t\t\tclass=\"top-miniChart_title top-ellipsis\"\n\t\t\t:data-top-icon=\"gIcon\"\n\t\t>\n\t\t\t{{ title }}\n\t\t</div>\n\n\t\t<div class=\"top-miniChart_chart\">\n\t\t\t<div\n\t\t\t\tclass=\"top-miniChart_chartGrid\"\n\t\t\t\t@mouseleave=\"resetModel()\"\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tv-for=\"(date, i) in reversedDates\"\n\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t['top-miniChart_chartGridCol']: true,\n\t\t\t\t\t\t['top-active']: isActiveDate(date)\n\t\t\t\t\t}\"\n\t\t\t\t\t@mouseenter=\"setModel($event, date, values[values.length - i - 1])\"\n\t\t\t\t>\n\t\t\t\t\t<div :style=\"'height:' + genColHeight(values[values.length - i - 1]) + '%'\"/>\n\t\t\t\t</div>\n\t\t\t\t<div\n\t\t\t\t\tv-for=\"() in numOfEmptyCols\"\n\t\t\t\t\tclass=\"top-miniChart_chartGridCol top-miniChart_chartGridCol-none\"\n\t\t\t\t\t@mouseenter=\"resetModel()\"\n\t\t\t\t>\n\t\t\t\t\t<div></div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div class=\"top-miniChart_data\">\n\t\t\t<span :class=\"{\n\t\t\t\t['top-miniChart_dataDynamic']: true,\n\t\t\t\t[`top-miniChart_dataDynamic-direction_${dynamicDirection}`]: true,\n\t\t\t}\">\n\t\t\t\t{{ Math.abs(localDynamic) || '' }}\n\t\t\t</span>\n\t\t\t<span class=\"top-miniChart_dataValue\">\n\t\t\t\t{{ percentOfNumber(values[values.length - 1]) || 0 }}\n\t\t\t</span>\n\t\t</div>\n\n\t\t<div\n\t\t\tv-if=\"additionalHTML\"\n\t\t\tv-html=\"additionalHTML\"\n\t\t/>\n\t</div>\n\n</template>\n<style>\n@import \"./styles/miniChart.css\";\n</style>\n","<script setup lang=\"ts\">\nimport { computed, onMounted, onUnmounted, ref, watch } from 'vue';\nimport type { Props, Style } from './miniCharts';\n\nconst props = defineProps<Props>();\nconst model = defineModel<Props['modelValue']>();\n\nconst elRef = ref<HTMLElement | null>(null);\n\nlet pagesResizeObserver: ResizeObserver;\n\n/**\n * Количество страниц\n */\nconst countPages = ref(1);\n\n/**\n * Активная страница\n */\nconst activePage = ref(1);\n\n/**\n * Установка количества страниц в блоке\n */\nconst setCountPages = () => {\n\tcountPages.value = Math.round(elRef.value!.scrollHeight / elRef.value!.clientHeight);\n};\n\nwatch(countPages, () => {\n\tif (countPages.value < activePage.value) {\n\t\tactivePage.value = 1;\n\t}\n});\n\nwatch(\n\t() => props.countCharts,\n\t() => setCountPages(),\n\t{ flush: 'post' },\n);\n\n/**\n * Расчет положения для подсказки\n */\nconst tooltipStyle = computed(() => {\n\tif (!model.value) return {};\n\n\tconst box = model.value.elCol.getBoundingClientRect();\n\n\tconst style: Style = {\n\t\ttop: box.bottom + window.scrollY + 'px',\n\t};\n\n\tif (document.documentElement.clientWidth / 2 > box.right) {\n\t\tstyle.left = box.right + window.scrollX + 10 + 'px';\n\t} else {\n\t\tstyle.left = box.left + window.scrollX - 10 + 'px';\n\t\tstyle.transform = 'translate(-100%, 0)';\n\t}\n\n\treturn style;\n});\n\nonMounted(() => {\n\t/**\n\t * Функционал переключения экранов графиков\n\t */\n\tpagesResizeObserver = new ResizeObserver(() => setCountPages());\n\tpagesResizeObserver.observe(elRef.value!);\n\n\twatch(activePage, () => {\n\t\tconst elMiniChart = elRef.value!.children[0];\n\t\tconst pageHeight = elMiniChart.clientHeight + parseInt(window.getComputedStyle(elRef.value!).getPropertyValue('row-gap'));\n\t\tconst scrollTop = pageHeight * (activePage.value - 1);\n\n\t\telRef.value!.scrollTo({ top: scrollTop, behavior: 'smooth' });\n\t});\n});\n\nonUnmounted(() => {\n\tpagesResizeObserver.disconnect();\n});\n</script>\n\n<template>\n\t<div\n\t\tclass=\"top-miniCharts\"\n\t\t:class=\"{\n\t\t\t['top-miniCharts']: true,\n\t\t\t['scrollable']: countPages > 1,\n\t\t\t['top-miniCharts_hideChartInMobile']: hideChartInMobile,\n\t\t}\"\n\t\tref=\"elRef\"\n\t>\n\n\t\t<slot></slot>\n\n\t\t<div\n\t\t\tv-if=\"countPages > 1\"\n\t\t\tclass=\"top-miniCharts_pages\"\n\t\t>\n\t\t\t<span\n\t\t\t\tv-for=\"n in countPages\"\n\t\t\t\t:class=\"{['top-active']: n === activePage}\"\n\t\t\t\t@click=\"activePage = n\"\n\t\t\t></span>\n\t\t</div>\n\n\t\t<Teleport to=\"body\">\n\t\t\t<div\n\t\t\t\tv-if=\"model\"\n\t\t\t\tclass=\"top-miniCharts_tooltip\"\n\t\t\t\t:style=\"tooltipStyle\"\n\t\t\t>\n\t\t\t\t<span>{{ model.date }}</span>\n\t\t\t\t<span>{{ model.value }}</span>\n\t\t\t</div>\n\t\t</Teleport>\n\t</div>\n\n</template>\n\n<style>\n@import \"./styles/miniCharts.css\";\n</style>\n","import type { ComponentCustomProps } from 'vue';\n\nimport MiniChart from './miniChart/miniChart.vue';\nimport MiniCharts from './miniCharts/miniCharts.vue';\n\nexport const TopMiniChart = MiniChart as typeof MiniChart & ComponentCustomProps;\n\nexport const TopMiniCharts = MiniCharts as typeof MiniCharts & ComponentCustomProps;\n"],"names":["defaultNumberCols","minHeight","props","__props","model","useModel","genColHeight","value","maximumValue","maxValue","height","isActiveDate","date","computed","reversedDates","numOfEmptyCols","resetModel","setModel","dateFormat","localDynamic","dynamic","prevPeriodValue","percentOfNumber","dynamicDirection","direction","normalizeClass","hideChartInMobile","_ctx","gIcon","createElementVNode","_hoisted_2$1","_cache","$event","normalizeStyle","i","_hoisted_5","toDisplayString","unref","additionalHTML","elRef","ref","pagesResizeObserver","countPages","activePage","setCountPages","watch","tooltipStyle","box","style","onMounted","scrollTop","onUnmounted","openBlock","createElementBlock","_hoisted_1","Fragment","renderList","n","_hoisted_2","createCommentVNode","TopMiniChart","_sfc_main$1","TopMiniCharts","_sfc_main"],"mappings":"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"}
1
+ {"version":3,"file":"charts.js","sources":["../../src/components/charts/miniChart/utils/consts.ts","../../src/components/charts/miniChart/miniChart.vue","../../src/components/charts/miniCharts/miniCharts.vue"],"sourcesContent":["/**\n * Кол-во столбцов по умолчанию\n */\nexport const defaultNumberCols = 90;\n\n/**\n * Минимальная высота колонки (в процентах)\n */\nexport const minHeight = 10; // %","<script setup lang=\"ts\">\nimport type { Props } from './types';\nimport { computed } from 'vue';\nimport { dateFormat } from '@/core/utils/date';\nimport { percentOfNumber } from '@/core/utils/number';\nimport { defaultNumberCols, minHeight } from './utils/consts';\n\nconst props = withDefaults(defineProps<Props>(), {\n\tcolor: 'blue',\n\tnumberCols: defaultNumberCols,\n});\nconst model = defineModel<Props['modelValue']>();\n\n/**\n * Расчет высоты колонки (в процентах)\n */\nconst genColHeight = (value: number): number => {\n\tlet maximumValue = maxValue.value;\n\n\t// для графиков средней и медианной делаем максимум 1\n\tif (props.isInvert) {\n\t\tvalue -= 1;\n\t\tmaximumValue -= 1;\n\t}\n\n\tlet height = maximumValue > 0 ? Math.round((value / maximumValue) * (100 - minHeight)) : 0;\n\tif (props.isInvert) return 100 - height;\n\n\treturn height + minHeight;\n};\n\nconst isActiveDate = (date: string) => props.activeDates.includes(date);\n\nconst maxValue = computed(() => Math.max(...props.values));\n\n/**\n * Из-за стиля .top-miniChart_chartGrid - direction: rtl\n */\nconst reversedDates = computed(() => props.dates.slice().reverse());\n\n/**\n * Кол-во пустых колонок\n */\nconst numOfEmptyCols = computed(() => {\n\tif (!props.dates.length) return 0;\n\n\treturn props.numberCols - props.dates.length;\n});\n\nconst resetModel = () => {\n\tmodel.value = null;\n};\n\nconst setModel = (e: Event, date: string, value: number | null) => {\n\tif (!(e.target instanceof HTMLElement)) return;\n\n\tmodel.value = {\n\t\telCol: e.target,\n\t\tdate: dateFormat(date),\n\t\tvalue: value === null ? '--' : value + (props.valueSuffix ?? ''),\n\t};\n};\n\n/**\n * Возвращает численный показатель динамики графика\n */\nconst localDynamic = computed(() => {\n\tlet dynamic = props.dynamic;\n\n\tif (typeof dynamic === 'undefined') {\n\t\tconst prevPeriodValue = props.values[props.keysForDyn.start];\n\t\tconst currentValue = props.values[props.keysForDyn.end];\n\t\tdynamic = currentValue - prevPeriodValue;\n\t}\n\n\tconst sign = dynamic < 0 ? -1 : 1;\n\n\treturn sign * (percentOfNumber(Math.abs(dynamic)) as number);\n});\n\nconst dynamicDirection = computed(() => {\n\tlet direction: 'up' | 'stay' | 'down' = 'stay';\n\n\tif (!props.isInvert) {\n\t\tif (localDynamic.value > 0) direction = 'up';\n\t\tif (localDynamic.value < 0) direction = 'down';\n\t} else {\n\t\tif (localDynamic.value > 0) direction = 'down';\n\t\tif (localDynamic.value < 0) direction = 'up';\n\t}\n\n\treturn direction;\n});\n\n</script>\n\n<template>\n\t<div\n\t\t:class=\"{\n\t\t\t['top-miniChart']: true,\n\t\t\t['top-miniChart_hideChartInMobile']: hideChartInMobile,\n\t\t\t[`top-color_${color}`]: true\n\t\t}\"\n\t>\n\t\t<div\n\t\t\tclass=\"top-miniChart_title top-ellipsis\"\n\t\t\t:data-top-icon=\"gIcon\"\n\t\t>\n\t\t\t{{ title }}\n\t\t</div>\n\n\t\t<div class=\"top-miniChart_chart\">\n\t\t\t<div\n\t\t\t\tclass=\"top-miniChart_chartGrid\"\n\t\t\t\t@mouseleave=\"resetModel()\"\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tv-for=\"(date, i) in reversedDates\"\n\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t['top-miniChart_chartGridCol']: true,\n\t\t\t\t\t\t['top-active']: isActiveDate(date)\n\t\t\t\t\t}\"\n\t\t\t\t\t@mouseenter=\"setModel($event, date, values[values.length - i - 1])\"\n\t\t\t\t>\n\t\t\t\t\t<div :style=\"'height:' + genColHeight(values[values.length - i - 1]) + '%'\"/>\n\t\t\t\t</div>\n\t\t\t\t<div\n\t\t\t\t\tv-for=\"() in numOfEmptyCols\"\n\t\t\t\t\tclass=\"top-miniChart_chartGridCol top-miniChart_chartGridCol-none\"\n\t\t\t\t\t@mouseenter=\"resetModel()\"\n\t\t\t\t>\n\t\t\t\t\t<div></div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div class=\"top-miniChart_data\">\n\t\t\t<span :class=\"{\n\t\t\t\t['top-miniChart_dataDynamic']: true,\n\t\t\t\t[`top-miniChart_dataDynamic-direction_${dynamicDirection}`]: true,\n\t\t\t}\">\n\t\t\t\t{{ Math.abs(localDynamic) || '' }}\n\t\t\t</span>\n\t\t\t<span class=\"top-miniChart_dataValue\">\n\t\t\t\t{{ percentOfNumber(values[values.length - 1]) || 0 }}\n\t\t\t</span>\n\t\t</div>\n\n\t\t<div\n\t\t\tv-if=\"additionalHTML\"\n\t\t\tv-html=\"additionalHTML\"\n\t\t/>\n\t</div>\n\n</template>\n<style>\n@import \"./styles/miniChart.css\";\n</style>\n","<script setup lang=\"ts\">\nimport { computed, onMounted, onUnmounted, ref, watch } from 'vue';\nimport type { Props, Style } from './miniCharts';\n\nconst props = defineProps<Props>();\nconst model = defineModel<Props['modelValue']>();\n\nconst elRef = ref<HTMLElement | null>(null);\n\nlet pagesResizeObserver: ResizeObserver;\n\n/**\n * Количество страниц\n */\nconst countPages = ref(1);\n\n/**\n * Активная страница\n */\nconst activePage = ref(1);\n\n/**\n * Установка количества страниц в блоке\n */\nconst setCountPages = () => {\n\tcountPages.value = Math.round(elRef.value!.scrollHeight / elRef.value!.clientHeight);\n};\n\nwatch(countPages, () => {\n\tif (countPages.value < activePage.value) {\n\t\tactivePage.value = 1;\n\t}\n});\n\nwatch(\n\t() => props.countCharts,\n\t() => setCountPages(),\n\t{ flush: 'post' },\n);\n\n/**\n * Расчет положения для подсказки\n */\nconst tooltipStyle = computed(() => {\n\tif (!model.value) return {};\n\n\tconst box = model.value.elCol.getBoundingClientRect();\n\n\tconst style: Style = {\n\t\ttop: box.bottom + window.scrollY + 'px',\n\t};\n\n\tif (document.documentElement.clientWidth / 2 > box.right) {\n\t\tstyle.left = box.right + window.scrollX + 10 + 'px';\n\t} else {\n\t\tstyle.left = box.left + window.scrollX - 10 + 'px';\n\t\tstyle.transform = 'translate(-100%, 0)';\n\t}\n\n\treturn style;\n});\n\nonMounted(() => {\n\t/**\n\t * Функционал переключения экранов графиков\n\t */\n\tpagesResizeObserver = new ResizeObserver(() => setCountPages());\n\tpagesResizeObserver.observe(elRef.value!);\n\n\twatch(activePage, () => {\n\t\tconst elMiniChart = elRef.value!.children[0];\n\t\tconst pageHeight = elMiniChart.clientHeight + parseInt(window.getComputedStyle(elRef.value!).getPropertyValue('row-gap'));\n\t\tconst scrollTop = pageHeight * (activePage.value - 1);\n\n\t\telRef.value!.scrollTo({ top: scrollTop, behavior: 'smooth' });\n\t});\n});\n\nonUnmounted(() => {\n\tpagesResizeObserver.disconnect();\n});\n</script>\n\n<template>\n\t<div\n\t\tclass=\"top-miniCharts\"\n\t\t:class=\"{\n\t\t\t['top-miniCharts']: true,\n\t\t\t['scrollable']: countPages > 1,\n\t\t\t['top-miniCharts_hideChartInMobile']: hideChartInMobile,\n\t\t}\"\n\t\tref=\"elRef\"\n\t>\n\n\t\t<slot></slot>\n\n\t\t<div\n\t\t\tv-if=\"countPages > 1\"\n\t\t\tclass=\"top-miniCharts_pages\"\n\t\t>\n\t\t\t<span\n\t\t\t\tv-for=\"n in countPages\"\n\t\t\t\t:class=\"{['top-active']: n === activePage}\"\n\t\t\t\t@click=\"activePage = n\"\n\t\t\t></span>\n\t\t</div>\n\n\t\t<Teleport to=\"body\">\n\t\t\t<div\n\t\t\t\tv-if=\"model\"\n\t\t\t\tclass=\"top-miniCharts_tooltip\"\n\t\t\t\t:style=\"tooltipStyle\"\n\t\t\t>\n\t\t\t\t<span>{{ model.date }}</span>\n\t\t\t\t<span>{{ model.value }}</span>\n\t\t\t</div>\n\t\t</Teleport>\n\t</div>\n\n</template>\n\n<style>\n@import \"./styles/miniCharts.css\";\n</style>\n"],"names":["defaultNumberCols","minHeight","props","__props","model","useModel","genColHeight","value","maximumValue","maxValue","height","isActiveDate","date","computed","reversedDates","numOfEmptyCols","resetModel","setModel","dateFormat","localDynamic","dynamic","prevPeriodValue","percentOfNumber","dynamicDirection","direction","normalizeClass","hideChartInMobile","_ctx","gIcon","createElementVNode","_hoisted_2$1","_cache","$event","normalizeStyle","i","_hoisted_5","toDisplayString","unref","additionalHTML","elRef","ref","pagesResizeObserver","countPages","activePage","setCountPages","watch","tooltipStyle","box","style","onMounted","scrollTop","onUnmounted","openBlock","createElementBlock","_hoisted_1","Fragment","renderList","n","_hoisted_2","createCommentVNode"],"mappings":"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"}
package/core/app.amd.js CHANGED
@@ -1,2 +1,2 @@
1
- define(["require","exports","../.chunks/forms-DRhpgERJ.amd","../.chunks/core-DQ7J2vig.amd","vue","../utils/clipboard.amd","../utils/string.amd","../utils/route.amd","../.chunks/utils-g7NSc8VW.amd","../.chunks/dialogs.vue_vue_type_script_setup_true_lang-CXghec6S.amd"],(function(y,n,c,f,d,m,S,g,p,k){"use strict";if(typeof d>"u")var d=window.Vue;class E{#s;#t;#e;#i;#c;#a=[];#o=[];#n=[];#r=[];constructor(s){var t;this.#t=s.store,this.#s=this.#t.$id,this.#e=s.options.Page,this.#i=s.options.user,this.#c=s.options.Api,this.#a=s.options.tpaNamesUrlHash||[],this.#o=s.options.tpaNamesStorage||[],this.#n=s.options.tpaNamesStorageLocal||[],this.#r=s.options.tpaNamesGuestLink||[],s.store.genGuestLink=(i,a)=>this.genGuestLink(i,a),(t=this.#i.guest_data)!=null&&t.data||(this.#u(),this.#u(!0),this.#f()),this.#S(),this.#k();const e=c.debounce(()=>{this.#m(),this.#g(),this.#g(!0)});s.store.$subscribe(e)}async genGuestLink(s,e){const t=this.#p();e=Object.assign(e,Object.fromEntries(t));const i=await this.#c.gen(s).setParams(e).call();if(i!=null&&i.errors)return;const a=i.result;await m.guestLinkToClipboard(a)}#p(){const s=new Map;return this.#r.forEach(e=>{const t=S.camelToSnakeCase(e);s.set(t,this.#t[e])}),s}#h(s){s.forEach((e,t)=>{const i=this.#t[t];if(e!=null&&i!==void 0&&e!=null&&e.constructor&&e.constructor===i.constructor){if(t.indexOf("date")===0&&!Array.isArray(e)){if(typeof e=="string"&&!/\d\d\d\d-\d\d-\d\d/.test(e))return}this.#t[t]=e}})}#l(s){const e=new Map;return s.forEach((t,i)=>{t!==null&&(t=JSON.stringify(t),e.set(i,t))}),e}#d(s){const e=new Map;return s.forEach((t,i)=>{if(!(t==null||t==="false")){try{if(typeof t=="string"&&!/^\d\d\d\d-\d\d-\d\d$/.test(t)&&(t=JSON.parse(t)),t==null||t==="false")return}catch{}e.set(i,t)}}),e}#f(){let s;try{s=JSON.parse(g.getHash(this.#s))}catch{}if(!s)return;const e=new Map;this.#a.forEach(t=>{const i=s[t];i&&e.set(t,i)}),this.#h(e)}#m(){const s=new Map;this.#a.forEach(i=>{const a=this.#t[i];s.set(i,a)});const e=Object.fromEntries(s),t=JSON.stringify(e);g.setHash(this.#s,t)}#u(s=!1){const e=new Map;let t=this.#o,i="state:"+this.#s;s&&(t=this.#n,i="state:"+this.#s+":"+location.pathname),t.forEach(o=>{const r=localStorage.getItem(i+":"+o);e.set(o,r)});const a=this.#d(e);this.#h(a)}#g(s=!1){const e=new Map;let t=this.#o,i="state:"+this.#s;s&&(t=this.#n,i="state:"+this.#s+":"+location.pathname),t.forEach(o=>{const r=this.#t[o];e.set(o,r)});const a=this.#l(e);t.forEach(o=>{const r=a.get(o);localStorage.setItem(i+":"+o,r)})}#S(){var a,o,r;const s=(o=(a=this.#i)==null?void 0:a.guest_data)==null?void 0:o.data;if(!s)return;this.#i.id===-1&&(this.#i.positionsReverseDates=s.positionsReverseDates);const e=new Map;this.#r.forEach(h=>{const u=s[h];e.set(h,u)});const t=this.#d(e);this.#h(t);const i=$(".mod_guest_title");if(((r=this.#t.competitorsIds)==null?void 0:r.length)===1&&this.#e.page.data.competitors){let h=this.#e.page.data.competitors.filter(u=>u.id===s.competitorsIds[0]);h.length&&($("a",i).attr("href","http://"+h[0].url),$("a",i).text(h[0].name))}}#k(){this.#t.regionsIndexes&&d.watch(this.#t.regionsIndexes,s=>{if(!s.length)return;s.forEach((i,a)=>s[a]=i);const e=TplProjectSelectorRegion.genSearchersMap(),t=[];e.forEach(i=>{i.regions.forEach(a=>{a.index!==-1&&t.push(a.index)})}),this.#t.regionsIndexes=s.filter(i=>t.includes(i))},{immediate:!0}),this.#t.competitorsIds&&d.watch(this.#t.competitorsIds,s=>{if(!s.length)return;s.forEach((t,i)=>s[i]=t);const e=[this.#e.page.data.project.id];this.#e.page.data.project.competitors.forEach(t=>{t.on>=0&&e.push(t.id)}),this.#t.competitorsIds=s.filter(t=>e.includes(t))},{immediate:!0})}}const w=l=>{var e,t,i,a;const s=l;!((e=s.options.tpaNamesUrlHash)!=null&&e.length)&&!((t=s.options.tpaNamesStorage)!=null&&t.length)&&!((i=s.options.tpaNamesStorageLocal)!=null&&i.length)&&!((a=s.options.tpaNamesGuestLink)!=null&&a.length)||new E(s)};n.Core=c.Core,n.i18nPlugin=c.i18n,n.useI18n=c.useI18n,n.useI18nLang=c.useI18nLang,n.corePlugin=f.core,n.useAsyncTopDialog=p.useAsyncTopDialog,n.useTopDialog=p.useTopDialog,n.TopDialogWorker=k.TopDialogWorker,n.piniaTPAPlugin=w,Object.defineProperty(n,Symbol.toStringTag,{value:"Module"})}));
1
+ define(["require","exports","../.chunks/forms-nOSFakjs.amd","../.chunks/core-Tti72-iZ.amd","vue","../utils/clipboard.amd","../utils/string.amd","../utils/route.amd","../.chunks/utils-D7esYAPZ.amd","../.chunks/dialogs.vue_vue_type_script_setup_true_lang-CZQq3w9t.amd"],(function(y,n,c,f,d,m,S,g,p,k){"use strict";if(typeof d>"u")var d=window.Vue;class E{#s;#t;#e;#i;#c;#a=[];#o=[];#n=[];#r=[];constructor(s){var t;this.#t=s.store,this.#s=this.#t.$id,this.#e=s.options.Page,this.#i=s.options.user,this.#c=s.options.Api,this.#a=s.options.tpaNamesUrlHash||[],this.#o=s.options.tpaNamesStorage||[],this.#n=s.options.tpaNamesStorageLocal||[],this.#r=s.options.tpaNamesGuestLink||[],s.store.genGuestLink=(i,a)=>this.genGuestLink(i,a),(t=this.#i.guest_data)!=null&&t.data||(this.#u(),this.#u(!0),this.#f()),this.#S(),this.#k();const e=c.debounce(()=>{this.#m(),this.#g(),this.#g(!0)});s.store.$subscribe(e)}async genGuestLink(s,e){const t=this.#p();e=Object.assign(e,Object.fromEntries(t));const i=await this.#c.gen(s).setParams(e).call();if(i!=null&&i.errors)return;const a=i.result;await m.guestLinkToClipboard(a)}#p(){const s=new Map;return this.#r.forEach(e=>{const t=S.camelToSnakeCase(e);s.set(t,this.#t[e])}),s}#h(s){s.forEach((e,t)=>{const i=this.#t[t];if(e!=null&&i!==void 0&&e!=null&&e.constructor&&e.constructor===i.constructor){if(t.indexOf("date")===0&&!Array.isArray(e)){if(typeof e=="string"&&!/\d\d\d\d-\d\d-\d\d/.test(e))return}this.#t[t]=e}})}#l(s){const e=new Map;return s.forEach((t,i)=>{t!==null&&(t=JSON.stringify(t),e.set(i,t))}),e}#d(s){const e=new Map;return s.forEach((t,i)=>{if(!(t==null||t==="false")){try{if(typeof t=="string"&&!/^\d\d\d\d-\d\d-\d\d$/.test(t)&&(t=JSON.parse(t)),t==null||t==="false")return}catch{}e.set(i,t)}}),e}#f(){let s;try{s=JSON.parse(g.getHash(this.#s))}catch{}if(!s)return;const e=new Map;this.#a.forEach(t=>{const i=s[t];i&&e.set(t,i)}),this.#h(e)}#m(){const s=new Map;this.#a.forEach(i=>{const a=this.#t[i];s.set(i,a)});const e=Object.fromEntries(s),t=JSON.stringify(e);g.setHash(this.#s,t)}#u(s=!1){const e=new Map;let t=this.#o,i="state:"+this.#s;s&&(t=this.#n,i="state:"+this.#s+":"+location.pathname),t.forEach(o=>{const r=localStorage.getItem(i+":"+o);e.set(o,r)});const a=this.#d(e);this.#h(a)}#g(s=!1){const e=new Map;let t=this.#o,i="state:"+this.#s;s&&(t=this.#n,i="state:"+this.#s+":"+location.pathname),t.forEach(o=>{const r=this.#t[o];e.set(o,r)});const a=this.#l(e);t.forEach(o=>{const r=a.get(o);localStorage.setItem(i+":"+o,r)})}#S(){var a,o,r;const s=(o=(a=this.#i)==null?void 0:a.guest_data)==null?void 0:o.data;if(!s)return;this.#i.id===-1&&(this.#i.positionsReverseDates=s.positionsReverseDates);const e=new Map;this.#r.forEach(h=>{const u=s[h];e.set(h,u)});const t=this.#d(e);this.#h(t);const i=$(".mod_guest_title");if(((r=this.#t.competitorsIds)==null?void 0:r.length)===1&&this.#e.page.data.competitors){let h=this.#e.page.data.competitors.filter(u=>u.id===s.competitorsIds[0]);h.length&&($("a",i).attr("href","http://"+h[0].url),$("a",i).text(h[0].name))}}#k(){this.#t.regionsIndexes&&d.watch(this.#t.regionsIndexes,s=>{if(!s.length)return;s.forEach((i,a)=>s[a]=i);const e=TplProjectSelectorRegion.genSearchersMap(),t=[];e.forEach(i=>{i.regions.forEach(a=>{a.index!==-1&&t.push(a.index)})}),this.#t.regionsIndexes=s.filter(i=>t.includes(i))},{immediate:!0}),this.#t.competitorsIds&&d.watch(this.#t.competitorsIds,s=>{if(!s.length)return;s.forEach((t,i)=>s[i]=t);const e=[this.#e.page.data.project.id];this.#e.page.data.project.competitors.forEach(t=>{t.on>=0&&e.push(t.id)}),this.#t.competitorsIds=s.filter(t=>e.includes(t))},{immediate:!0})}}const w=l=>{var e,t,i,a;const s=l;!((e=s.options.tpaNamesUrlHash)!=null&&e.length)&&!((t=s.options.tpaNamesStorage)!=null&&t.length)&&!((i=s.options.tpaNamesStorageLocal)!=null&&i.length)&&!((a=s.options.tpaNamesGuestLink)!=null&&a.length)||new E(s)};n.Core=c.Core,n.i18nPlugin=c.i18n,n.useI18n=c.useI18n,n.useI18nLang=c.useI18nLang,n.corePlugin=f.core,n.useAsyncTopDialog=p.useAsyncTopDialog,n.useTopDialog=p.useTopDialog,n.TopDialogWorker=k.TopDialogWorker,n.piniaTPAPlugin=w,Object.defineProperty(n,Symbol.toStringTag,{value:"Module"})}));
2
2
  //# sourceMappingURL=app.amd.js.map
package/core/app.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ export * from '../src/core/app'
2
+ export {}
package/core/app.js CHANGED
@@ -1,12 +1,12 @@
1
- import { d } from "../.chunks/forms-t2AEUjqg.es.js";
2
- import { C as I, i as T, u as b, a as y } from "../.chunks/forms-t2AEUjqg.es.js";
3
- import { c as G } from "../.chunks/core-CUCQCH9e.es.js";
1
+ import { d } from "../.chunks/forms-CSwfPGPT.es.js";
2
+ import { C as I, i as T, u as b, a as y } from "../.chunks/forms-CSwfPGPT.es.js";
3
+ import { c as G } from "../.chunks/core-DLXWfIR4.es.js";
4
4
  import { watch as p } from "vue";
5
5
  import { guestLinkToClipboard as f } from "../utils/clipboard.js";
6
6
  import { camelToSnakeCase as g } from "../utils/string.js";
7
7
  import { getHash as l, setHash as m } from "../utils/route.js";
8
- import { u as A, a as D } from "../.chunks/utils-Ct2fnz3h.es.js";
9
- import { T as j } from "../.chunks/dialogs.vue_vue_type_script_setup_true_lang-DjuN_1ox.es.js";
8
+ import { u as A, a as D } from "../.chunks/utils-Cx0wgU0M.es.js";
9
+ import { T as j } from "../.chunks/dialogs.vue_vue_type_script_setup_true_lang-DE8e63m1.es.js";
10
10
  class u {
11
11
  #s;
12
12
  #t;