@topvisor/ui 1.0.42-popupPosition.0 → 1.1.0-addNativeDialog.6

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 (535) hide show
  1. package/.chunks/core-6NjSIwIA.amd.js +2 -0
  2. package/.chunks/{core-D-etXW3Y.amd.js.map → core-6NjSIwIA.amd.js.map} +1 -1
  3. package/.chunks/{core-BGKb9a73.es.js → core-CKa0qCEH.es.js} +4 -4
  4. package/.chunks/{core-BGKb9a73.es.js.map → core-CKa0qCEH.es.js.map} +1 -1
  5. package/.chunks/datepicker-DsKl-YZR.amd.js +2 -0
  6. package/.chunks/{datepicker-BWaVsTd0.amd.js.map → datepicker-DsKl-YZR.amd.js.map} +1 -1
  7. package/.chunks/{datepicker-DCDYQmsc.es.js → datepicker-U31BrqE_.es.js} +2 -2
  8. package/.chunks/{datepicker-DCDYQmsc.es.js.map → datepicker-U31BrqE_.es.js.map} +1 -1
  9. package/.chunks/dialog_selectorRegions-BCXCCaXi.amd.js +2 -0
  10. package/.chunks/{dialog_selectorRegions-CMI1gx5d.amd.js.map → dialog_selectorRegions-BCXCCaXi.amd.js.map} +1 -1
  11. package/.chunks/{dialog_selectorRegions-BAK6xG6N.es.js → dialog_selectorRegions-C_RhsGzk.es.js} +4 -4
  12. package/.chunks/{dialog_selectorRegions-BAK6xG6N.es.js.map → dialog_selectorRegions-C_RhsGzk.es.js.map} +1 -1
  13. package/.chunks/dialogs.vue_vue_type_script_setup_true_lang-BhAl3bT-.es.js +700 -0
  14. package/.chunks/dialogs.vue_vue_type_script_setup_true_lang-BhAl3bT-.es.js.map +1 -0
  15. package/.chunks/dialogs.vue_vue_type_script_setup_true_lang-DVp-tQ6l.amd.js +2 -0
  16. package/.chunks/dialogs.vue_vue_type_script_setup_true_lang-DVp-tQ6l.amd.js.map +1 -0
  17. package/.chunks/field-Cvv0SRcJ.amd.js +2 -0
  18. package/.chunks/field-Cvv0SRcJ.amd.js.map +1 -0
  19. package/.chunks/field-CyyFzM-Y.es.js +16 -0
  20. package/.chunks/field-CyyFzM-Y.es.js.map +1 -0
  21. package/.chunks/forms-DRhpgERJ.amd.js +3 -0
  22. package/.chunks/forms-DRhpgERJ.amd.js.map +1 -0
  23. package/.chunks/{forms-DOGPN_TR.es.js → forms-t2AEUjqg.es.js} +20 -20
  24. package/.chunks/forms-t2AEUjqg.es.js.map +1 -0
  25. package/.chunks/lazy-Dr-Frbwe.amd.js +2 -0
  26. package/.chunks/lazy-Dr-Frbwe.amd.js.map +1 -0
  27. package/.chunks/lazy-Dy9IVVUy.es.js +19 -0
  28. package/.chunks/lazy-Dy9IVVUy.es.js.map +1 -0
  29. package/.chunks/listItem.vue_vue_type_script_setup_true_lang-B6psuRkm.es.js +184 -0
  30. package/.chunks/listItem.vue_vue_type_script_setup_true_lang-B6psuRkm.es.js.map +1 -0
  31. package/.chunks/listItem.vue_vue_type_script_setup_true_lang-C8PDRggQ.amd.js +2 -0
  32. package/.chunks/listItem.vue_vue_type_script_setup_true_lang-C8PDRggQ.amd.js.map +1 -0
  33. package/.chunks/menu.vue_vue_type_style_index_0_lang-6kqWYFuX.es.js +110 -0
  34. package/.chunks/menu.vue_vue_type_style_index_0_lang-6kqWYFuX.es.js.map +1 -0
  35. package/.chunks/menu.vue_vue_type_style_index_0_lang-DRHk9iBB.amd.js +2 -0
  36. package/.chunks/menu.vue_vue_type_style_index_0_lang-DRHk9iBB.amd.js.map +1 -0
  37. package/.chunks/{notice-DE88Oe-t.es.js → notice-4bdzRXtl.es.js} +2 -2
  38. package/.chunks/{notice-DE88Oe-t.es.js.map → notice-4bdzRXtl.es.js.map} +1 -1
  39. package/.chunks/{notice-C5sXcBql.amd.js → notice-DQ9qFyQ2.amd.js} +3 -3
  40. package/.chunks/{notice-C5sXcBql.amd.js.map → notice-DQ9qFyQ2.amd.js.map} +1 -1
  41. package/.chunks/page.vue_vue_type_script_setup_true_lang-BgGzBbMZ.amd.js +2 -0
  42. package/.chunks/page.vue_vue_type_script_setup_true_lang-BgGzBbMZ.amd.js.map +1 -0
  43. package/.chunks/page.vue_vue_type_script_setup_true_lang-BstJVz3j.es.js +176 -0
  44. package/.chunks/page.vue_vue_type_script_setup_true_lang-BstJVz3j.es.js.map +1 -0
  45. package/.chunks/pageComponent.vue_vue_type_script_setup_true_lang-B6ollFUC.amd.js +2 -0
  46. package/.chunks/pageComponent.vue_vue_type_script_setup_true_lang-B6ollFUC.amd.js.map +1 -0
  47. package/.chunks/pageComponent.vue_vue_type_script_setup_true_lang-DbaqFJra.es.js +56 -0
  48. package/.chunks/pageComponent.vue_vue_type_script_setup_true_lang-DbaqFJra.es.js.map +1 -0
  49. package/.chunks/{popup-BjsK_pMZ.es.js → popup-DuraSW2f.es.js} +84 -77
  50. package/.chunks/popup-DuraSW2f.es.js.map +1 -0
  51. package/.chunks/popup-IcMnYYXr.amd.js +2 -0
  52. package/.chunks/popup-IcMnYYXr.amd.js.map +1 -0
  53. package/.chunks/punycode.es6-CNOnFR2-.amd.js +2 -0
  54. package/.chunks/{punycode.es6-C2yitnNb.amd.js.map → punycode.es6-CNOnFR2-.amd.js.map} +1 -1
  55. package/.chunks/punycode.es6-CgGegfA_.es.js +134 -0
  56. package/.chunks/{punycode.es6-CNI-zL6U.es.js.map → punycode.es6-CgGegfA_.es.js.map} +1 -1
  57. package/.chunks/store-CX_6ZXhO.es.js.map +1 -1
  58. package/.chunks/store-YRW59xEF.amd.js +2 -0
  59. package/.chunks/{store-esTid5oI.amd.js.map → store-YRW59xEF.amd.js.map} +1 -1
  60. package/.chunks/{utils-CRPkMfKD.es.js → utils-Bd5whKoS.es.js} +5 -5
  61. package/.chunks/{utils-CRPkMfKD.es.js.map → utils-Bd5whKoS.es.js.map} +1 -1
  62. package/.chunks/utils-BkF4g-PH.amd.js +2 -0
  63. package/.chunks/{utils-BVdq18mg.amd.js.map → utils-BkF4g-PH.amd.js.map} +1 -1
  64. package/api/additional.amd.js +2 -0
  65. package/api/additional.amd.js.map +1 -0
  66. package/api/additional.js +66 -0
  67. package/api/additional.js.map +1 -0
  68. package/api/index.amd.js +2 -0
  69. package/api/index.amd.js.map +1 -0
  70. package/api/index.js +257 -0
  71. package/api/index.js.map +1 -0
  72. package/assets/core.css +1 -1
  73. package/assets/forms.css +1 -1
  74. package/assets/formsExt.css +1 -1
  75. package/assets/project.css +1 -1
  76. package/assets/themes/dark-th.css +1 -1
  77. package/assets/themes/dark.css +1 -1
  78. package/assets/themes/light.css +1 -1
  79. package/charts/charts.amd.js +1 -1
  80. package/charts/charts.amd.js.map +1 -1
  81. package/charts/charts.js +1 -1
  82. package/charts/charts.js.map +1 -1
  83. package/core/app.amd.js +1 -1
  84. package/core/app.amd.js.map +1 -1
  85. package/core/app.js +8 -8
  86. package/core/app.js.map +1 -1
  87. package/dialog/dialog.amd.js +1 -1
  88. package/dialog/dialog.amd.js.map +1 -1
  89. package/dialog/dialog.js +8 -57
  90. package/dialog/dialog.js.map +1 -1
  91. package/dialogV1AndDialogV2/dialog.amd.js +2 -0
  92. package/dialogV1AndDialogV2/dialog.amd.js.map +1 -0
  93. package/dialogV1AndDialogV2/dialog.js +11 -0
  94. package/dialogV1AndDialogV2/dialog.js.map +1 -0
  95. package/dialogV1Original/dialog.amd.js +2 -0
  96. package/dialogV1Original/dialog.amd.js.map +1 -0
  97. package/dialogV1Original/dialog.js +11 -0
  98. package/dialogV1Original/dialog.js.map +1 -0
  99. package/dialogV2/dialog.amd.js +2 -0
  100. package/dialogV2/dialog.amd.js.map +1 -0
  101. package/dialogV2/dialog.js +11 -0
  102. package/dialogV2/dialog.js.map +1 -0
  103. package/extra/extra.amd.js +1 -1
  104. package/extra/extra.amd.js.map +1 -1
  105. package/extra/extra.js.map +1 -1
  106. package/forms/forms.amd.js +1 -1
  107. package/forms/forms.js +1 -1
  108. package/forms/helpers.amd.js +1 -1
  109. package/formsExt/formsExt.amd.js +1 -1
  110. package/formsExt/formsExt.amd.js.map +1 -1
  111. package/formsExt/formsExt.js +409 -320
  112. package/formsExt/formsExt.js.map +1 -1
  113. package/layout/layout.amd.js +1 -1
  114. package/layout/layout.amd.js.map +1 -1
  115. package/layout/layout.js +1 -1
  116. package/layout/layout.js.map +1 -1
  117. package/package.json +4 -2
  118. package/popup/popup.amd.js +1 -1
  119. package/popup/popup.amd.js.map +1 -1
  120. package/popup/popup.js +125 -109
  121. package/popup/popup.js.map +1 -1
  122. package/popup/worker.amd.js +1 -1
  123. package/popup/worker.amd.js.map +1 -1
  124. package/popup/worker.js +30 -21
  125. package/popup/worker.js.map +1 -1
  126. package/project/project.amd.js +1 -1
  127. package/project/project.amd.js.map +1 -1
  128. package/project/project.js +158 -158
  129. package/project/project.js.map +1 -1
  130. package/tabs/tabs.amd.js +1 -1
  131. package/tabs/tabs.amd.js.map +1 -1
  132. package/tabs/tabs.js.map +1 -1
  133. package/tabsView/tabsView.amd.js +1 -1
  134. package/tabsView/tabsView.amd.js.map +1 -1
  135. package/tabsView/tabsView.js +1 -1
  136. package/tabsView/tabsView.js.map +1 -1
  137. package/types/api/additional.d.ts +2 -0
  138. package/types/api/api/additional.d.ts +1 -0
  139. package/types/api/api/client/client.d.ts +55 -0
  140. package/types/api/api/client/request-options.d.ts +1 -0
  141. package/types/api/api/client/request.d.ts +2 -0
  142. package/types/api/api/index.d.ts +12 -0
  143. package/types/api/api/tests/model.d.ts +0 -0
  144. package/types/api/api/tests/test.d.ts +16 -0
  145. package/types/api/api/types/api.d.ts +139 -0
  146. package/types/api/api/types/client/middleware.d.ts +65 -0
  147. package/types/api/api/types/client/options.d.ts +60 -0
  148. package/types/api/api/types/client/request-context.d.ts +35 -0
  149. package/types/api/api/types/client/request-options.d.ts +73 -0
  150. package/types/api/api/types/client/request.d.ts +85 -0
  151. package/types/api/api/types/ext.d.ts +51 -0
  152. package/types/api/api/types/field.d.ts +33 -0
  153. package/types/api/api/types/index.d.ts +11 -0
  154. package/types/api/api/types/schema.d.ts +50 -0
  155. package/types/api/api/types/tv.d.ts +59 -0
  156. package/types/api/api/types/utils.d.ts +51 -0
  157. package/types/api/api/utils/common.d.ts +16 -0
  158. package/types/api/api/utils/field.d.ts +8 -0
  159. package/types/api/api/utils/filters.d.ts +48 -0
  160. package/types/api/api/utils/lazy.d.ts +13 -0
  161. package/types/api/index.d.ts +2 -0
  162. package/types/components/dialog/dialog/dialog.vue.d.ts +28 -0
  163. package/types/components/dialog/lib/utils.d.ts +54 -0
  164. package/types/components/dialog/lib/worker.d.ts +78 -0
  165. package/types/components/dialogV1AndDialogV2/dialog/composables/asyncDialogHandle.d.ts +51 -0
  166. package/types/components/dialogV1AndDialogV2/dialog/composables/dialogHandle.d.ts +108 -0
  167. package/types/components/dialogV1AndDialogV2/dialog/composables/types.d.ts +11 -0
  168. package/types/components/dialogV1AndDialogV2/dialog/composables/utils.d.ts +23 -0
  169. package/types/components/dialogV1AndDialogV2/dialog/dialog.vue.d.ts +28 -0
  170. package/types/components/dialogV1AndDialogV2/dialog/dialogs/dialogs.vue.d.ts +13 -0
  171. package/types/components/dialogV1AndDialogV2/dialog/page/types.d.ts +72 -0
  172. package/types/components/dialogV1AndDialogV2/dialog/pageComponent/types.d.ts +18 -0
  173. package/types/components/dialogV1AndDialogV2/dialog/stories/dialog_example/pages/utils.d.ts +7 -0
  174. package/types/components/dialogV1AndDialogV2/dialog/types.d.ts +58 -0
  175. package/types/components/dialogV1AndDialogV2/dialog.d.ts +6 -0
  176. package/types/components/dialogV1AndDialogV2/lib/types.d.ts +44 -0
  177. package/types/components/dialogV1AndDialogV2/lib/utils.d.ts +18 -0
  178. package/types/components/dialogV1AndDialogV2/lib/utils.globalEvents.d.ts +8 -0
  179. package/types/components/dialogV1AndDialogV2/lib/worker.d.ts +72 -0
  180. package/types/components/dialogV1Original/dialog/composables/asyncDialogHandle.d.ts +51 -0
  181. package/types/components/dialogV1Original/dialog/composables/dialogHandle.d.ts +108 -0
  182. package/types/components/dialogV1Original/dialog/composables/types.d.ts +11 -0
  183. package/types/components/dialogV1Original/dialog/composables/utils.d.ts +23 -0
  184. package/types/components/dialogV1Original/dialog/dialogs/dialogs.vue.d.ts +13 -0
  185. package/types/components/dialogV1Original/dialog/page/types.d.ts +72 -0
  186. package/types/components/dialogV1Original/dialog/pageComponent/types.d.ts +18 -0
  187. package/types/components/dialogV1Original/dialog/stories/dialog_example/pages/utils.d.ts +7 -0
  188. package/types/components/dialogV1Original/dialog/types.d.ts +58 -0
  189. package/types/components/dialogV1Original/dialog.d.ts +6 -0
  190. package/types/components/dialogV1Original/lib/types.d.ts +44 -0
  191. package/types/components/dialogV1Original/lib/utils.globalEvents.d.ts +8 -0
  192. package/types/components/dialogV2/dialog/composables/asyncDialogHandle.d.ts +51 -0
  193. package/types/components/dialogV2/dialog/composables/dialogHandle.d.ts +108 -0
  194. package/types/components/dialogV2/dialog/composables/types.d.ts +11 -0
  195. package/types/components/dialogV2/dialog/composables/utils.d.ts +23 -0
  196. package/types/components/dialogV2/dialog/dialog.vue.d.ts +28 -0
  197. package/types/components/dialogV2/dialog/dialogs/dialogs.vue.d.ts +13 -0
  198. package/types/components/dialogV2/dialog/page/types.d.ts +72 -0
  199. package/types/components/dialogV2/dialog/pageComponent/types.d.ts +18 -0
  200. package/types/components/dialogV2/dialog/stories/dialog_example/pages/utils.d.ts +7 -0
  201. package/types/components/dialogV2/dialog/types.d.ts +58 -0
  202. package/types/components/dialogV2/dialog.d.ts +6 -0
  203. package/types/components/dialogV2/lib/types.d.ts +44 -0
  204. package/types/components/dialogV2/lib/utils.d.ts +15 -0
  205. package/types/components/dialogV2/lib/utils.globalEvents.d.ts +8 -0
  206. package/types/components/dialogV2/lib/worker.d.ts +62 -0
  207. package/{components → types/components}/forms/button/button.vue.d.ts +2 -5
  208. package/{components → types/components}/forms/button/types.d.ts +10 -0
  209. package/{components → types/components}/forms/checkbox/checkbox.vue.d.ts +2 -2
  210. package/types/components/formsExt/policy/policy.vue.d.ts +8 -0
  211. package/types/components/formsExt/policy/types.d.ts +20 -0
  212. package/{components → types/components}/formsExt/selector2/composables/useAPI.d.ts +1 -1
  213. package/{components → types/components}/formsExt/selector2/composables/useMenu.d.ts +3 -1
  214. package/{components → types/components}/formsExt/selector2/selector2.vue.d.ts +11 -3
  215. package/{components → types/components}/formsExt/selector2/types.d.ts +50 -27
  216. package/types/components/popup/alert/alert.vue.d.ts +25 -0
  217. package/types/components/popup/alert/types.d.ts +8 -0
  218. package/types/components/popup/confirm/confirm.vue.d.ts +26 -0
  219. package/{components → types/components}/popup/confirm/types.d.ts +2 -2
  220. package/{components → types/components}/popup/lib/popup.d.ts +6 -2
  221. package/{components → types/components}/popup/lib/worker.d.ts +6 -4
  222. package/types/components/popup/popup/opener.vue.d.ts +17 -0
  223. package/types/components/popup/popup/popup.vue.d.ts +38 -0
  224. package/{components → types/components}/popup/popup/types.d.ts +20 -11
  225. package/types/components/popup/prompt/prompt.vue.d.ts +26 -0
  226. package/{components → types/components}/popup/prompt/types.d.ts +2 -2
  227. package/{components → types/components}/project/selectorRegion/dialog_selectorRegions/dialog_selectorRegions.vue.d.ts +1 -1
  228. package/{components → types/components}/project/selectorRegion/utils/utils.d.ts +1 -1
  229. package/{core → types/core}/utils/string.d.ts +1 -1
  230. package/types/dialogV1AndDialogV2/dialog.d.ts +2 -0
  231. package/types/dialogV1Original/dialog.d.ts +2 -0
  232. package/types/dialogV2/dialog.d.ts +2 -0
  233. package/types/for-delete/dark-positions.d.ts +1 -0
  234. package/types/for-delete/dark-th-positions.d.ts +1 -0
  235. package/types/for-delete/dark-th.d.ts +1 -0
  236. package/types/for-delete/dark.d.ts +1 -0
  237. package/types/for-delete/light-positions.d.ts +1 -0
  238. package/types/for-delete/light.d.ts +1 -0
  239. package/types/forms/helpers.d.ts +1 -0
  240. package/utils/check.amd.js +1 -1
  241. package/utils/check.amd.js.map +1 -1
  242. package/utils/check.js.map +1 -1
  243. package/utils/clipboard.amd.js +2 -2
  244. package/utils/clipboard.amd.js.map +1 -1
  245. package/utils/clipboard.js +1 -1
  246. package/utils/clipboard.js.map +1 -1
  247. package/utils/date.amd.js +1 -1
  248. package/utils/date.js +1 -1
  249. package/utils/device.amd.js +1 -1
  250. package/utils/device.js +1 -1
  251. package/utils/dom.amd.js +1 -1
  252. package/utils/dom.amd.js.map +1 -1
  253. package/utils/dom.js.map +1 -1
  254. package/utils/image.amd.js +2 -2
  255. package/utils/image.amd.js.map +1 -1
  256. package/utils/image.js +1 -1
  257. package/utils/image.js.map +1 -1
  258. package/utils/keyboard.amd.js +1 -1
  259. package/utils/keyboard.amd.js.map +1 -1
  260. package/utils/keyboard.js.map +1 -1
  261. package/utils/lodash.amd.js +1 -1
  262. package/utils/lodash.js +1 -1
  263. package/utils/number.amd.js +1 -1
  264. package/utils/number.amd.js.map +1 -1
  265. package/utils/number.js.map +1 -1
  266. package/utils/price.amd.js +1 -1
  267. package/utils/price.amd.js.map +1 -1
  268. package/utils/price.js +1 -1
  269. package/utils/price.js.map +1 -1
  270. package/utils/route.amd.js +1 -1
  271. package/utils/route.amd.js.map +1 -1
  272. package/utils/route.js.map +1 -1
  273. package/utils/scroll.amd.js +1 -1
  274. package/utils/scroll.amd.js.map +1 -1
  275. package/utils/scroll.js.map +1 -1
  276. package/utils/searchers.amd.js +1 -1
  277. package/utils/searchers.amd.js.map +1 -1
  278. package/utils/searchers.js +3 -3
  279. package/utils/searchers.js.map +1 -1
  280. package/utils/store.amd.js +1 -1
  281. package/utils/string.amd.js +1 -1
  282. package/utils/string.amd.js.map +1 -1
  283. package/utils/string.js +34 -30
  284. package/utils/string.js.map +1 -1
  285. package/utils/system.amd.js +1 -1
  286. package/utils/system.amd.js.map +1 -1
  287. package/utils/system.js.map +1 -1
  288. package/utils/url.amd.js +2 -2
  289. package/utils/url.amd.js.map +1 -1
  290. package/utils/url.js +1 -1
  291. package/utils/url.js.map +1 -1
  292. package/.chunks/core-D-etXW3Y.amd.js +0 -2
  293. package/.chunks/datepicker-BWaVsTd0.amd.js +0 -2
  294. package/.chunks/dialog_selectorRegions-CMI1gx5d.amd.js +0 -2
  295. package/.chunks/dialogs.vue_vue_type_script_setup_true_lang-BSxHPUWf.amd.js +0 -2
  296. package/.chunks/dialogs.vue_vue_type_script_setup_true_lang-BSxHPUWf.amd.js.map +0 -1
  297. package/.chunks/dialogs.vue_vue_type_script_setup_true_lang-CjUHErAY.es.js +0 -322
  298. package/.chunks/dialogs.vue_vue_type_script_setup_true_lang-CjUHErAY.es.js.map +0 -1
  299. package/.chunks/forms-DOGPN_TR.es.js.map +0 -1
  300. package/.chunks/forms-Gb7ujpmz.amd.js +0 -3
  301. package/.chunks/forms-Gb7ujpmz.amd.js.map +0 -1
  302. package/.chunks/listItem.vue_vue_type_script_setup_true_lang-CF_hIWa6.amd.js +0 -2
  303. package/.chunks/listItem.vue_vue_type_script_setup_true_lang-CF_hIWa6.amd.js.map +0 -1
  304. package/.chunks/listItem.vue_vue_type_script_setup_true_lang-CJQj81Yq.es.js +0 -181
  305. package/.chunks/listItem.vue_vue_type_script_setup_true_lang-CJQj81Yq.es.js.map +0 -1
  306. package/.chunks/menu.vue_vue_type_style_index_0_lang-CczcI_-j.amd.js +0 -2
  307. package/.chunks/menu.vue_vue_type_style_index_0_lang-CczcI_-j.amd.js.map +0 -1
  308. package/.chunks/menu.vue_vue_type_style_index_0_lang-Dq5eEX9i.es.js +0 -109
  309. package/.chunks/menu.vue_vue_type_style_index_0_lang-Dq5eEX9i.es.js.map +0 -1
  310. package/.chunks/page.vue_vue_type_script_setup_true_lang-DFvul4oF.es.js +0 -143
  311. package/.chunks/page.vue_vue_type_script_setup_true_lang-DFvul4oF.es.js.map +0 -1
  312. package/.chunks/page.vue_vue_type_script_setup_true_lang-DJSuza2e.amd.js +0 -2
  313. package/.chunks/page.vue_vue_type_script_setup_true_lang-DJSuza2e.amd.js.map +0 -1
  314. package/.chunks/popup-B_8bvIsF.amd.js +0 -2
  315. package/.chunks/popup-B_8bvIsF.amd.js.map +0 -1
  316. package/.chunks/popup-BjsK_pMZ.es.js.map +0 -1
  317. package/.chunks/punycode.es6-C2yitnNb.amd.js +0 -2
  318. package/.chunks/punycode.es6-CNI-zL6U.es.js +0 -134
  319. package/.chunks/store-esTid5oI.amd.js +0 -2
  320. package/.chunks/utils-BVdq18mg.amd.js +0 -2
  321. package/.chunks/utils-CacKxWvO.es.js +0 -303
  322. package/.chunks/utils-CacKxWvO.es.js.map +0 -1
  323. package/.chunks/utils-DiQZv1Ae.amd.js +0 -2
  324. package/.chunks/utils-DiQZv1Ae.amd.js.map +0 -1
  325. package/components/charts/miniChart/stories/dummy.d.ts +0 -13
  326. package/components/charts/miniCharts/stories/dummy.d.ts +0 -6
  327. package/components/dialog/dialog/stories/autoload.d.ts +0 -2
  328. package/components/forms/select/stories/exampleOptions.d.ts +0 -5
  329. package/components/formsExt/checkboxGroup/stories/example.d.ts +0 -15
  330. package/components/formsExt/menu/stories/items.d.ts +0 -3
  331. package/components/formsExt/policy/policy.vue.d.ts +0 -4
  332. package/components/formsExt/policy/types.d.ts +0 -10
  333. package/components/formsExt/radioGroup/stories/example.d.ts +0 -20
  334. package/components/formsExt/selector2/stories/dummyAPIRequest.d.ts +0 -10
  335. package/components/popup/alert/alert.vue.d.ts +0 -31
  336. package/components/popup/alert/types.d.ts +0 -8
  337. package/components/popup/confirm/confirm.vue.d.ts +0 -33
  338. package/components/popup/popup/opener.vue.d.ts +0 -23
  339. package/components/popup/popup/popup.vue.d.ts +0 -40
  340. package/components/popup/prompt/prompt.vue.d.ts +0 -33
  341. package/components/project/selectorCompetitors/stories/items.d.ts +0 -3
  342. package/components/project/selectorRegion/stories/searchers.d.ts +0 -3
  343. package/icomoon/Topvisor icons.json +0 -6635
  344. package/{charts → types/charts}/charts.d.ts +0 -0
  345. package/{components → types/components}/charts/charts.d.ts +0 -0
  346. package/{components → types/components}/charts/miniChart/miniChart.vue.d.ts +0 -0
  347. package/{components → types/components}/charts/miniChart/types.d.ts +0 -0
  348. package/{components → types/components}/charts/miniChart/utils/consts.d.ts +0 -0
  349. package/{components → types/components}/charts/miniCharts/miniCharts.d.ts +0 -0
  350. package/{components → types/components}/charts/miniCharts/miniCharts.vue.d.ts +0 -0
  351. package/{components → types/components}/core/notice/item/item.vue.d.ts +0 -0
  352. package/{components → types/components}/core/notice/item/types.d.ts +0 -0
  353. package/{components → types/components}/core/notice/notice.vue.d.ts +0 -0
  354. package/{components → types/components}/core/notice/types.d.ts +0 -0
  355. package/{components → types/components}/core/notice/utils.d.ts +0 -0
  356. package/{components → types/components}/dialog/dialog/composables/asyncDialogHandle.d.ts +0 -0
  357. package/{components → types/components}/dialog/dialog/composables/dialogHandle.d.ts +0 -0
  358. package/{components → types/components}/dialog/dialog/composables/types.d.ts +0 -0
  359. package/{components → types/components}/dialog/dialog/composables/utils.d.ts +0 -0
  360. package/{components → types/components}/dialog/dialog/dialogs/dialogs.vue.d.ts +0 -0
  361. package/{components → types/components}/dialog/dialog/page/page.vue.d.ts +0 -0
  362. package/{components → types/components}/dialog/dialog/page/types.d.ts +0 -0
  363. package/{components → types/components}/dialog/dialog/pageComponent/pageComponent.vue.d.ts +0 -0
  364. package/{components → types/components}/dialog/dialog/pageComponent/types.d.ts +0 -0
  365. package/{components → types/components}/dialog/dialog/stories/dialog_example/pages/utils.d.ts +0 -0
  366. package/{components → types/components}/dialog/dialog/types.d.ts +0 -0
  367. package/{components → types/components}/dialog/dialog.d.ts +0 -0
  368. package/{components → types/components}/dialog/lib/types.d.ts +0 -0
  369. package/{components → types/components}/dialog/lib/utils.globalEvents.d.ts +0 -0
  370. package/{components/dialog → types/components/dialogV1Original}/dialog/dialog.vue.d.ts +1 -1
  371. package/{components/dialog → types/components/dialogV1Original}/lib/utils.d.ts +0 -0
  372. package/{components/dialog → types/components/dialogV1Original}/lib/worker.d.ts +0 -0
  373. package/{components → types/components}/extra/extra.d.ts +0 -0
  374. package/{components → types/components}/extra/rive/rive.vue.d.ts +0 -0
  375. package/{components → types/components}/extra/rive/types.d.ts +0 -0
  376. package/{components → types/components}/forms/avatar/avatar.vue.d.ts +1 -1
  377. /package/{components → types/components}/forms/avatar/types.d.ts +0 -0
  378. /package/{components → types/components}/forms/caption/caption.vue.d.ts +0 -0
  379. /package/{components → types/components}/forms/caption/types.d.ts +0 -0
  380. /package/{components → types/components}/forms/checkbox/types.d.ts +0 -0
  381. /package/{components → types/components}/forms/controlLabel/controlLabel.vue.d.ts +0 -0
  382. /package/{components → types/components}/forms/controlLabel/types.d.ts +0 -0
  383. /package/{components → types/components}/forms/forms.d.ts +0 -0
  384. /package/{components → types/components}/forms/helpers.d.ts +0 -0
  385. /package/{components → types/components}/forms/hint/hint.vue.d.ts +0 -0
  386. /package/{components → types/components}/forms/hint/types.d.ts +0 -0
  387. /package/{components → types/components}/forms/input/input.vue.d.ts +0 -0
  388. /package/{components → types/components}/forms/input/types.d.ts +0 -0
  389. /package/{components → types/components}/forms/inputDate/datepicker.d.ts +0 -0
  390. /package/{components → types/components}/forms/inputDate/inputDate.vue.d.ts +0 -0
  391. /package/{components → types/components}/forms/inputDate/types.d.ts +0 -0
  392. /package/{components → types/components}/forms/inputRange/inputRange.vue.d.ts +0 -0
  393. /package/{components → types/components}/forms/inputRange/types.d.ts +0 -0
  394. /package/{components → types/components}/forms/loadbar/loadbar.vue.d.ts +0 -0
  395. /package/{components → types/components}/forms/preloader/preloader.vue.d.ts +0 -0
  396. /package/{components → types/components}/forms/preloader/types.d.ts +0 -0
  397. /package/{components → types/components}/forms/radio/radio.vue.d.ts +0 -0
  398. /package/{components → types/components}/forms/radio/types.d.ts +0 -0
  399. /package/{components → types/components}/forms/select/select.vue.d.ts +0 -0
  400. /package/{components → types/components}/forms/select/types.d.ts +0 -0
  401. /package/{components → types/components}/forms/switcher/switcher.vue.d.ts +0 -0
  402. /package/{components → types/components}/forms/switcher/types.d.ts +0 -0
  403. /package/{components → types/components}/forms/textarea/textarea.vue.d.ts +0 -0
  404. /package/{components → types/components}/forms/textarea/types.d.ts +0 -0
  405. /package/{components → types/components}/formsExt/checkboxGroup/checkboxGroup.vue.d.ts +0 -0
  406. /package/{components → types/components}/formsExt/checkboxGroup/types.d.ts +0 -0
  407. /package/{components → types/components}/formsExt/editArea/editArea.vue.d.ts +0 -0
  408. /package/{components → types/components}/formsExt/editArea/types.d.ts +0 -0
  409. /package/{components → types/components}/formsExt/editInput/editInput.vue.d.ts +0 -0
  410. /package/{components → types/components}/formsExt/editInput/types.d.ts +0 -0
  411. /package/{components → types/components}/formsExt/formsExt.d.ts +0 -0
  412. /package/{components → types/components}/formsExt/info/info.vue.d.ts +0 -0
  413. /package/{components → types/components}/formsExt/info/types.d.ts +0 -0
  414. /package/{components → types/components}/formsExt/menu/menu.vue.d.ts +0 -0
  415. /package/{components → types/components}/formsExt/menu/types.d.ts +0 -0
  416. /package/{components → types/components}/formsExt/radioGroup/radioGroup.vue.d.ts +0 -0
  417. /package/{components → types/components}/formsExt/radioGroup/types.d.ts +0 -0
  418. /package/{components → types/components}/formsExt/selector2/itemMulti.vue.d.ts +0 -0
  419. /package/{components → types/components}/formsExt/selector2/utils.d.ts +0 -0
  420. /package/{components → types/components}/layout/islandRows/islandRows.vue.d.ts +0 -0
  421. /package/{components → types/components}/layout/islandRows/islandRowsRow/islandRowsRow.vue.d.ts +0 -0
  422. /package/{components → types/components}/layout/islandRows/islandRowsRow/types.d.ts +0 -0
  423. /package/{components → types/components}/layout/islandRows/islandRowsSubTitle/islandRowsSubTitle.vue.d.ts +0 -0
  424. /package/{components → types/components}/layout/islandRows/types.d.ts +0 -0
  425. /package/{components → types/components}/layout/layout.d.ts +0 -0
  426. /package/{components → types/components}/layout/rows/rows.vue.d.ts +0 -0
  427. /package/{components → types/components}/layout/rows/types.d.ts +0 -0
  428. /package/{components → types/components}/popup/lib/popup.globalEvents.d.ts +0 -0
  429. /package/{components → types/components}/popup/lib/worker.globalEvents.d.ts +0 -0
  430. /package/{components → types/components}/popup/popup/listItem.vue.d.ts +0 -0
  431. /package/{components → types/components}/popup/popup/widgetInput.vue.d.ts +0 -0
  432. /package/{components → types/components}/popup/popup.d.ts +0 -0
  433. /package/{components → types/components}/popup/worker.d.ts +0 -0
  434. /package/{components → types/components}/project/project.d.ts +0 -0
  435. /package/{components → types/components}/project/selectorCompetitors/composables.d.ts +0 -0
  436. /package/{components → types/components}/project/selectorCompetitors/selectorCompetitors.vue.d.ts +0 -0
  437. /package/{components → types/components}/project/selectorCompetitors/types.d.ts +0 -0
  438. /package/{components → types/components}/project/selectorRegion/composables/compare.d.ts +0 -0
  439. /package/{components → types/components}/project/selectorRegion/composables/selectRegion.d.ts +0 -0
  440. /package/{components → types/components}/project/selectorRegion/composables/selectSearcher.d.ts +0 -0
  441. /package/{components → types/components}/project/selectorRegion/composables/selectorRegion.d.ts +0 -0
  442. /package/{components → types/components}/project/selectorRegion/dialog_selectorRegions/types.d.ts +0 -0
  443. /package/{components → types/components}/project/selectorRegion/selectorRegion.vue.d.ts +0 -0
  444. /package/{components → types/components}/project/selectorRegion/types.d.ts +0 -0
  445. /package/{components → types/components}/project/selectorRegion/utils/consts.d.ts +0 -0
  446. /package/{components → types/components}/project/tagSelector/popupListItem/tagPopupListItem.vue.d.ts +0 -0
  447. /package/{components → types/components}/project/tagSelector/popupListItem/types.d.ts +0 -0
  448. /package/{components → types/components}/project/tagSelector/popupOpener/popupOpener.vue.d.ts +0 -0
  449. /package/{components → types/components}/project/tagSelector/popupOpener/types.d.ts +0 -0
  450. /package/{components → types/components}/project/tagSelector/tagIcon/tagIcon.vue.d.ts +0 -0
  451. /package/{components → types/components}/project/tagSelector/tagIcon/types.d.ts +0 -0
  452. /package/{components → types/components}/project/tagSelector/tagSelector.vue.d.ts +0 -0
  453. /package/{components → types/components}/project/tagSelector/tagsDefaults.d.ts +0 -0
  454. /package/{components → types/components}/project/tagSelector/types.d.ts +0 -0
  455. /package/{components → types/components}/project/tagSelector/utils/el.d.ts +0 -0
  456. /package/{components → types/components}/project/tagSelector/utils/utils.d.ts +0 -0
  457. /package/{components → types/components}/tabs/tabs/content.vue.d.ts +0 -0
  458. /package/{components → types/components}/tabs/tabs/tab.vue.d.ts +0 -0
  459. /package/{components → types/components}/tabs/tabs/tabs.vue.d.ts +0 -0
  460. /package/{components → types/components}/tabs/tabs/types.d.ts +0 -0
  461. /package/{components → types/components}/tabs/tabs.d.ts +0 -0
  462. /package/{components → types/components}/tabsView/tabsView/menu.vue.d.ts +0 -0
  463. /package/{components → types/components}/tabsView/tabsView/menuDelimeter.vue.d.ts +0 -0
  464. /package/{components → types/components}/tabsView/tabsView/menuItem.vue.d.ts +0 -0
  465. /package/{components → types/components}/tabsView/tabsView/menuTitle.vue.d.ts +0 -0
  466. /package/{components → types/components}/tabsView/tabsView/store.d.ts +0 -0
  467. /package/{components → types/components}/tabsView/tabsView/tabsView.vue.d.ts +0 -0
  468. /package/{components → types/components}/tabsView/tabsView/types.d.ts +0 -0
  469. /package/{components → types/components}/tabsView/tabsView/utils.d.ts +0 -0
  470. /package/{components → types/components}/tabsView/tabsView.d.ts +0 -0
  471. /package/{core → types/core}/app.d.ts +0 -0
  472. /package/{core → types/core}/core/core.d.ts +0 -0
  473. /package/{core → types/core}/core/events/resize.d.ts +0 -0
  474. /package/{core → types/core}/core/events.d.ts +0 -0
  475. /package/{core → types/core}/core/options.d.ts +0 -0
  476. /package/{core → types/core}/core/preloaders.d.ts +0 -0
  477. /package/{core → types/core}/core/state.d.ts +0 -0
  478. /package/{core → types/core}/directives/data.d.ts +0 -0
  479. /package/{core → types/core}/directives/focus.d.ts +0 -0
  480. /package/{core → types/core}/directives/preloader.d.ts +0 -0
  481. /package/{core → types/core}/directives/scrollIntoView.d.ts +0 -0
  482. /package/{core → types/core}/directives/scrollShadow.d.ts +0 -0
  483. /package/{core → types/core}/directives/sticky.d.ts +0 -0
  484. /package/{core → types/core}/directives/swimUp.d.ts +0 -0
  485. /package/{core → types/core}/directives/tooltip.d.ts +0 -0
  486. /package/{core → types/core}/plugins/core.d.ts +0 -0
  487. /package/{core → types/core}/plugins/i18n.d.ts +0 -0
  488. /package/{core → types/core}/plugins/piniaTPA.d.ts +0 -0
  489. /package/{core → types/core}/utils/check.d.ts +0 -0
  490. /package/{core → types/core}/utils/clipboard.d.ts +0 -0
  491. /package/{core → types/core}/utils/date.d.ts +0 -0
  492. /package/{core → types/core}/utils/device.d.ts +0 -0
  493. /package/{core → types/core}/utils/dom.d.ts +0 -0
  494. /package/{core → types/core}/utils/image.d.ts +0 -0
  495. /package/{core → types/core}/utils/keyboard.d.ts +0 -0
  496. /package/{core → types/core}/utils/lodash.d.ts +0 -0
  497. /package/{core → types/core}/utils/number.d.ts +0 -0
  498. /package/{core → types/core}/utils/price.d.ts +0 -0
  499. /package/{core → types/core}/utils/route.d.ts +0 -0
  500. /package/{core → types/core}/utils/scroll.d.ts +0 -0
  501. /package/{core → types/core}/utils/searchers.d.ts +0 -0
  502. /package/{core → types/core}/utils/store/localStorage.d.ts +0 -0
  503. /package/{core → types/core}/utils/store/plugin.d.ts +0 -0
  504. /package/{core → types/core}/utils/store/store.d.ts +0 -0
  505. /package/{core → types/core}/utils/store.d.ts +0 -0
  506. /package/{core → types/core}/utils/system.d.ts +0 -0
  507. /package/{core → types/core}/utils/url.d.ts +0 -0
  508. /package/{dialog → types/dialog}/dialog.d.ts +0 -0
  509. /package/{extra → types/extra}/extra.d.ts +0 -0
  510. /package/{forms/helpers.d.ts → types/for-delete/core.d.ts} +0 -0
  511. /package/{forms → types/forms}/forms.d.ts +0 -0
  512. /package/{formsExt → types/formsExt}/formsExt.d.ts +0 -0
  513. /package/{layout → types/layout}/layout.d.ts +0 -0
  514. /package/{popup → types/popup}/popup.d.ts +0 -0
  515. /package/{popup → types/popup}/worker.d.ts +0 -0
  516. /package/{project → types/project}/project.d.ts +0 -0
  517. /package/{tabs → types/tabs}/tabs.d.ts +0 -0
  518. /package/{tabsView → types/tabsView}/tabsView.d.ts +0 -0
  519. /package/{utils → types/utils}/check.d.ts +0 -0
  520. /package/{utils → types/utils}/clipboard.d.ts +0 -0
  521. /package/{utils → types/utils}/date.d.ts +0 -0
  522. /package/{utils → types/utils}/device.d.ts +0 -0
  523. /package/{utils → types/utils}/dom.d.ts +0 -0
  524. /package/{utils → types/utils}/image.d.ts +0 -0
  525. /package/{utils → types/utils}/keyboard.d.ts +0 -0
  526. /package/{utils → types/utils}/lodash.d.ts +0 -0
  527. /package/{utils → types/utils}/number.d.ts +0 -0
  528. /package/{utils → types/utils}/price.d.ts +0 -0
  529. /package/{utils → types/utils}/route.d.ts +0 -0
  530. /package/{utils → types/utils}/scroll.d.ts +0 -0
  531. /package/{utils → types/utils}/searchers.d.ts +0 -0
  532. /package/{utils → types/utils}/store.d.ts +0 -0
  533. /package/{utils → types/utils}/string.d.ts +0 -0
  534. /package/{utils → types/utils}/system.d.ts +0 -0
  535. /package/{utils → types/utils}/url.d.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"formsExt.js","sources":["../../src/components/formsExt/editArea/editArea.vue","../../src/components/formsExt/editInput/editInput.vue","../../src/components/formsExt/radioGroup/radioGroup.vue","../../src/components/formsExt/checkboxGroup/checkboxGroup.vue","../../src/components/formsExt/selector2/composables/useAPI.ts","../../src/components/formsExt/selector2/utils.ts","../../src/components/formsExt/selector2/composables/useMenu.ts","../../src/components/formsExt/selector2/selector2.vue","../../src/components/formsExt/policy/policy.vue","../../src/components/formsExt/formsExt.ts"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, ref } from 'vue';\nimport Button from '@/components/forms/button/button.vue';\nimport type { Emits, Props } from './types';\nimport Textarea from '@/components/forms/textarea/textarea.vue';\n\nconst props = withDefaults(defineProps<Props>(), {\n\tdefaultValue: '',\n\tcancelText: 'Cancel',\n\tsubmitText: 'Send',\n\tcloseText: 'Close',\n\texpandable: true,\n});\n\nconst emit = defineEmits<Emits>();\n\nconst localValue = ref(props.defaultValue);\n\nconst isFocused = ref(props.isFocused);\n\nconst isChanged = computed(() => localValue.value !== props.defaultValue);\n\nconst submit = (value: string) => {\n\temit('submit', value);\n\n\tlocalValue.value = props.defaultValue;\n};\n\nconst cancel = () => {\n\tif (props.forceShowCloseBtn && !isChanged.value) {\n\t\temit('close');\n\n\t\treturn;\n\t}\n\n\tlocalValue.value = props.defaultValue;\n};\n\nconst clickOnTitle = () => {\n\tif (props.attachToKeyboard) emit('clickOnTitle');\n};\n</script>\n\n<template>\n\t<div\n\t\t:class=\"{\n\t\t\t'top-editArea': true,\n\t\t\t'top-editArea-attachedToKeyboard': attachToKeyboard,\n\t\t}\"\n\t>\n\t\t<div\n\t\t\tv-if=\"title\"\n\t\t\tclass=\"top-editArea_title\"\n\t\t\t@click=\"clickOnTitle()\"\n\t\t>\n\t\t\t{{ title }}\n\t\t</div>\n\n\t\t<div\n\t\t\t:class=\"{\n\t\t\t\t'top-editArea_form': true,\n\t\t\t\t'top-error': isError,\n\t\t\t\t'top-focus': isFocused,\n\t\t\t}\"\n\t\t>\n\t\t\t<Textarea\n\t\t\t\tv-model=\"localValue\"\n\t\t\t\t:name=\"name\"\n\t\t\t\t:placeholder=\"placeholder\"\n\t\t\t\t:rows=\"rows\"\n\t\t\t\t:minHeight=\"minHeight\"\n\t\t\t\t:expandable=\"expandable\"\n\t\t\t\t:disabled=\"disabled\"\n\t\t\t\t:readonly=\"readonly\"\n\t\t\t\t:isError=\"isError\"\n\t\t\t\t:hint=\"hint\"\n\t\t\t\tclass=\"top-editArea_element\"\n\t\t\t\t@focus=\"() => isFocused = true\"\n\t\t\t\t@blur=\"() => isFocused = false\"\n\t\t\t\t@keyup.esc=\"cancel\"\n\t\t\t\t@keyup.ctrl.enter=\"submit(localValue)\"\n\t\t\t/>\n\n\t\t\t<div class=\"top-editArea_footer\">\n\t\t\t\t<Button\n\t\t\t\t\tv-if=\"isChanged || forceShowCloseBtn\"\n\t\t\t\t\t:icon=\"$core.state.isMobile ? '': ''\"\n\t\t\t\t\tclass=\"top-editArea_button\"\n\t\t\t\t\tcolor=\"theme\"\n\t\t\t\t\tstyling=\"soft\"\n\t\t\t\t\t@click=\"cancel\"\n\t\t\t\t>\n\t\t\t\t\t<template\n\t\t\t\t\t\t#default\n\t\t\t\t\t\tv-if=\"!$core.state.isMobile\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{{ cancelText }}\n\t\t\t\t\t</template>\n\t\t\t\t</Button>\n\n\t\t\t\t<Button\n\t\t\t\t\tclass=\"top-editArea_button\"\n\t\t\t\t\tv-if=\"isChanged\"\n\t\t\t\t\t:icon=\"$core.state.isMobile ? '': ''\"\n\t\t\t\t\t@click=\"submit(localValue)\"\n\t\t\t\t>\n\t\t\t\t\t<template\n\t\t\t\t\t\t#default\n\t\t\t\t\t\tv-if=\"!$core.state.isMobile\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{{ submitText }}\n\t\t\t\t\t</template>\n\t\t\t\t</Button>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</template>\n\n<style>\n.top-editArea {\n\t--top-editArea-bottom: env(keyboard-inset-height, 0px);\n\t--top-editArea-offset-bottom: 0px;\n\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 6px;\n}\n\n.top-editArea_title {\n\tfont-size: 12px;\n}\n\n.top-editArea_form {\n\tflex-direction: column;\n\toutline: none;\n}\n\n.top-editArea_form:not(.top-error):hover,\n.top-editArea_form:not(.top-error).top-focus {\n\tborder-color: var(--top-forms-border-color-hover);\n}\n\n/* textarea в EditArea */\n.top-textarea {\n\twidth: 100%;\n}\n\n.top-editArea_element.top-textarea_textarea {\n\t--top-forms-border-width: 0px;\n\n\toutline: none;\n\tanimation: none;\n}\n\n/* footer */\n.top-editArea_footer {\n\tpadding: var(--top-forms-padding);\n\tdisplay: flex;\n\tmin-height: 32px;\n\talign-self: flex-end;\n\tjustify-content: flex-end;\n\tgap: var(--top-forms-padding);\n}\n\n/* attachedToKeyboard */\n.top-editArea-attachedToKeyboard {\n\tbackground: var(--top-forms-background-color);\n\tposition: fixed;\n\tbottom: calc(var(--top-editArea-offset-bottom) + var(--top-editArea-bottom));\n\tright: 0;\n\tleft: 0;\n\tz-index: 2;\n\tgap: 0;\n\ttransition: bottom var(--transition-fast);\n}\n\n.top-editArea-attachedToKeyboard .top-editArea_form {\n\tborder-radius: 0;\n\tborder: none;\n\tborder-top: 1px solid var(--top-forms-border-color);\n}\n\n.top-editArea-attachedToKeyboard .top-editArea_title {\n\tcursor: pointer;\n\tborder-top: 1px solid var(--color-line-2-opacity);\n\tpadding: var(--top-forms-padding);\n}\n\n.top-editArea-attachedToKeyboard .top-editArea_footer > [data-top-icon] {\n\tborder-radius: 100%;\n}\n\n@media screen and (max-width: 900px) {\n\t.top-editArea_form{\n\t\tflex-direction: row;\n\t}\n}\n</style>\n","<script setup lang=\"ts\">\nimport { ref, toRef, watch } from 'vue';\nimport type { Emits, Props } from './types';\nimport TopInput from '@/components/forms/input/input.vue';\nimport TopButton from '@/components/forms/button/button.vue';\n\nconst props = defineProps<Props>();\n\nconst intermediateValue = ref(props.modelValue);\n\nwatch(toRef(props.modelValue), () => {\n\tintermediateValue.value = props.modelValue;\n});\n\nconst emit = defineEmits<Emits>();\n\nconst submit = () => {\n\temit('update:modelValue', intermediateValue.value);\n};\n</script>\n\n<template>\n\t<div class=\"top-editInput\">\n\t\t<TopInput\n\t\t\t:=\"input\"\n\t\t\t@keydown.esc.capture.stop=\"intermediateValue = modelValue\"\n\t\t\t@keydown.enter.stop=\"submit\"\n\t\t\tv-model=\"intermediateValue\"\n\t\t/>\n\n\t\t<TopButton\n\t\t\tv-if=\"intermediateValue !== modelValue\"\n\t\t\ticon=\"\"\n\t\t\tstyling=\"soft\"\n\t\t\t:=\"button\"\n\t\t\t@click=\"submit\"\n\t\t/>\n\t</div>\n</template>\n\n<style>\n.top-editInput {\n\twidth: 220px;\n\tflex-grow: 1;\n\tdisplay: flex;\n\talign-items: flex-end;\n\tgap: var(--top-gap-1);\n}\n\n.top-editInput .top-input {\n\twidth: unset;\n\tflex-grow: 1;\n}\n</style>\n","<script setup lang=\"ts\">\nimport type { Ref } from '@vue/reactivity';\nimport { ref, watch } from 'vue';\nimport type { Props } from './types';\n\nconst model = defineModel<Props['modelValue']>({\n\trequired: true,\n});\n\nconst props = withDefaults(defineProps<Props>(), {\n\tsize: 's',\n});\n\nconst elRef: Ref<HTMLElement | null> = ref(null);\n\nwatch(model, () => {\n\tif (!props.radiosProps?.some(item => item.value === model.value)) {\n\t\tmodel.value = props.radiosProps?.[0]?.value ?? '';\n\t}\n\n\telRef.value?.querySelector('.radioGroup_item-selected')?.scrollIntoView();\n}, { immediate: true });\n\nconst uid = 'radioGroup-' + Math.random();\n</script>\n\n<template>\n\t<div\n\t\tref=\"elRef\"\n\t\t:class=\"{\n\t\t\t['top-radioGroup']: true,\n\t\t\t['top-scrollBarXHidding']: true,\n\t\t\t['top-size_' + size]: !!size,\n\t\t\t['top-error']: isError,\n\t\t}\"\n\t>\n\t\t<label\n\t\t\tv-for=\"item of radiosProps\"\n\t\t\t:class=\"{\n\t\t\t\t['top-radioGroup_item-selected']: item.value === model,\n\t\t\t\t['top-radioGroup_item']: true,\n\t\t\t\t['top-forms-focusable']: true,\n\t\t\t\t['top-disabled']: item.disabled,\n\t\t\t}\"\n\t\t\t:data-top-icon=\"item.icon\"\n\t\t\t@click=\"model = item.value\"\n\t\t>\n\t\t\t{{ item.title }}\n\n\t\t\t<span\n\t\t\t\tv-if=\"showIndicator\"\n\t\t\t\tclass=\"top-radioGroup_circle\"\n\t\t\t></span>\n\n\t\t\t<!-- Для нативной навигации -->\n\t\t\t<input\n\t\t\t\tv-model=\"model\"\n\t\t\t\t:name=\"uid\"\n\t\t\t\ttype=\"radio\"\n\t\t\t\t:class=\"{\n\t\t\t\t\t['top-unvisible']: true,\n\t\t\t\t}\"\n\t\t\t\t:value=\"item.value\"\n\t\t\t\t:disabled=\"item.disabled\"\n\t\t\t/>\n\t\t</label>\n\t</div>\n</template>\n\n<style>\n.top-radioGroup {\n\tuser-select: none;\n\tbox-sizing: border-box;\n\tborder-radius: 8px;\n\tbackground-color: var(--color-layout-middle);\n\theight: var(--top-forms-base-height);\n\tpadding: 2px;\n\tgap: 2px;\n\tdisplay: flex;\n\talign-items: flex-start;\n}\n\n.top-radioGroup_item {\n\tcolor: var(--color-text-2);\n\tcursor: pointer;\n\tbox-sizing: border-box;\n\tborder-radius: 6px;\n\theight: calc(var(--top-forms-base-height) - 4px);\n\tpadding: 0 16px;\n\tfont-weight: 400;\n\twhite-space: nowrap;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tflex-grow: 1;\n\tgap: 4px;\n}\n\n.top-radioGroup_item:hover {\n\tbackground-color: var(--color-layout-front-1);\n\tbox-shadow: 0px 4px 32px 0px rgba(4, 9, 84, 0.10), 0px 0px 4px 0px rgba(4, 9, 84, 0.08);\n}\n\n/* selected */\n.top-radioGroup_item-selected {\n\tcolor: var(--color-text-1);\n\tpointer-events: none;\n\tbackground-color: var(--color-bg-lightning-1);\n\tbox-shadow: 0px 4px 32px 0px rgba(4, 9, 84, 0.10), 0px 0px 4px 0px rgba(4, 9, 84, 0.08);\n}\n\n/* circle */\n.top-radioGroup_circle {\n\tcontent: \"\";\n\tbox-sizing: border-box;\n\tborder: 1px solid var(--color-line-3-opacity);\n\tborder-radius: 50%;\n\tpadding: 3px;\n\tmargin-left: auto;\n\twidth: calc(var(--top-forms-option-height) - 3px * 2);\n\theight: calc(var(--top-forms-option-height) - 3px * 2);\n}\n\n.top-radioGroup_item:hover .top-radioGroup_circle:before {\n\tborder-color: var(--color-line-primary-1);\n}\n\n/* circle selected */\n.top-radioGroup_item-selected .top-radioGroup_circle {\n\tborder-color: var(--color-line-primary-1);\n\tborder-width: 5px;\n}\n\n.top-radioGroup_item-selected:hover .top-radioGroup_circle {\n\tborder-color: var(--color-line-primary-1);\n}\n\n/* top-error */\n.top-radioGroup.top-error .top-radioGroup_item:not(.top-disabled) .top-radioGroup_circle {\n\tborder-color: var(--color-line-negative-1);\n}\n</style>\n","<script setup lang=\"ts\">\nimport type { Props } from './types';\n\nconst model = defineModel<Props['modelValue']>({\n\trequired: true,\n});\n\nwithDefaults(defineProps<Props>(), {\n\tsize: 's',\n\tstyling: 'outline',\n});\n\nconst onChange = (id: Props['modelValue'][number]) => {\n\tconst newModel = [...model.value];\n\tconst index = newModel.indexOf(id);\n\n\tif (index === -1) {\n\t\tnewModel.push(id);\n\t} else {\n\t\tnewModel.splice(index, 1);\n\t}\n\n\tmodel.value = newModel;\n};\n</script>\n\n<template>\n\t<div\n\t\t:class=\"{\n \t\t['top-checkboxGroup']: true,\n \t\t['top-checkboxGroup-' + styling]: true,\n \t\t['top-scrollBarXHidding']: true,\n \t\t['top-size_' + size]: !!size,\n \t\t['top-error']: isError,\n \t}\"\n\t>\n\t\t<label\n\t\t\tv-for=\"item in items\"\n\t\t\t:key=\"item.id\"\n\t\t\t:class=\"{\n\t\t\t\t['top-checkboxGroup_item']: true,\n\t\t\t\t['top-checkboxGroup_item-selected']: model.includes(item.id),\n\t\t\t\t['top-forms-focusable']: true,\n\t\t\t\t['top-disabled']: item.disabled,\n\t\t\t}\"\n\t\t\t:data-top-icon=\"item.icon\"\n\t\t>\n\t\t\t<input\n\t\t\t\ttype=\"checkbox\"\n\t\t\t\tclass=\"top-unvisible\"\n\t\t\t\t:value=\"item.id\"\n\t\t\t\t:checked=\"model.includes(item.id)\"\n\t\t\t\t:disabled=\"item.disabled\"\n\t\t\t\t@change=\"onChange(item.id)\"\n\t\t\t/>\n\n\t\t\t{{ item.title }}\n\t\t</label>\n\t</div>\n</template>\n\n<style>\n.top-checkboxGroup {\n\tuser-select: none;\n\tborder-radius: 8px;\n\theight: var(--top-forms-base-height);\n\tbox-sizing: border-box;\n\tdisplay: flex;\n}\n\n.top-checkboxGroup_item {\n\tbox-sizing: border-box;\n\tpadding: 1px var(--top-padding-4);\n\tcursor: pointer;\n\tfont-weight: 600;\n\twhite-space: nowrap;\n\tdisplay: flex;\n\tflex-grow: 1;\n\tjustify-content: center;\n\talign-items: center;\n\tgap: var(--top-gap-1);\n}\n\n/* outline */\n.top-checkboxGroup-outline {\n\tborder: 1px solid var(--color-line-1);\n\tbackground: var(--color-layout-front-1);\n}\n\n.top-checkboxGroup-outline .top-checkboxGroup_item {\n\theight: calc(var(--top-forms-base-height) - 2px);\n\tmin-height: 100%;\n}\n\n.top-checkboxGroup-outline .top-checkboxGroup_item:hover {\n\tbackground: var(--color-layer-primary-1);\n}\n\n.top-checkboxGroup-outline .top-checkboxGroup_item-selected {\n\tbackground: var(--color-bg-primary-1);\n\tcolor: var(--color-text-white);\n\t--top-icon-color: var(--color-text-white);\n}\n\n.top-checkboxGroup-outline .top-checkboxGroup_item-selected:hover {\n\tbackground: var(--color-bg-primary-2);\n}\n\n.top-checkboxGroup-outline.top-error .top-checkboxGroup_item:hover {\n\tbackground: var(--color-layer-negative-1);\n}\n\n.top-checkboxGroup-outline.top-error .top-checkboxGroup_item-selected {\n\tbackground: var(--color-bg-negative-1);\n}\n\n.top-checkboxGroup-outline.top-error .top-checkboxGroup_item-selected:hover {\n\tbackground: var(--color-bg-negative-2);\n}\n\n/* borderless */\n.top-checkboxGroup-borderless {\n\tpadding: 2px;\n\tbackground: var(--color-bg-shading-2);\n\tgap: 2px;\n}\n\n.top-checkboxGroup-borderless .top-checkboxGroup_item {\n\tborder-radius: 6px;\n\theight: calc(var(--top-forms-base-height) - 4px);\n}\n\n.top-checkboxGroup-borderless .top-checkboxGroup_item:hover {\n\tbox-shadow: var(--top-shadow-s);\n\tbackground: var(--color-bg-lightning-1);\n}\n\n.top-checkboxGroup-borderless .top-checkboxGroup_item-selected {\n\tbackground: var(--color-bg-primary-1);\n\tcolor: var(--color-text-white);\n\t--top-icon-color: var(--color-text-white);\n}\n\n.top-checkboxGroup-borderless .top-checkboxGroup_item-selected:hover {\n\tbackground: var(--color-bg-primary-2);\n}\n\n.top-checkboxGroup-borderless.top-error .top-checkboxGroup_item:hover {\n\tbackground: var(--color-bg-lightning-1);\n}\n\n.top-checkboxGroup-borderless.top-error .top-checkboxGroup_item-selected {\n\tbackground: var(--color-bg-negative-1);\n}\n\n.top-checkboxGroup-borderless.top-error .top-checkboxGroup_item-selected:hover {\n\tbackground: var(--color-bg-negative-2);\n}\n</style>\n","import { ref } from 'vue';\nimport { debounce } from '../../../../core/utils/lodash';\nimport type { Item, Props } from '../types';\n\nexport type API = ReturnType<typeof useAPI>;\n\nexport const useAPI = (apiRequest: Props['apiRequest'], minLength: number, useCache: Props['useCache']) => {\n\t/**\n\t * Список, полученный через API\n\t */\n\tconst items = ref<Item[]>([]);\n\n\t/**\n\t * Флаг - идет загрузка\n\t */\n\tconst isLoading = ref(false);\n\n\tlet _searchText = '';\n\tlet _nextOffset: number | undefined;\n\n\tif (apiRequest && !apiRequest.params.limit) {\n\t\tapiRequest.params.limit = 100;\n\t}\n\n\t/**\n\t * Выполнить обращение к API\n\t *\n\t * При ошибке вернет undefined\n\t */\n\tconst callAPIRequest = async (): Promise<{ nextOffset?: number, result: Item[] } | undefined> => {\n\t\tif (!apiRequest) return;\n\n\t\tlet res;\n\t\tlet cacheKey;\n\n\t\tif (useCache) {\n\t\t\t// кэш для полученных ответов через apiRequest\n\t\t\t// общий для всех компонентов, использующих apiRequest\n\t\t\tapiRequest.cache ??= new Map();\n\n\t\t\tcacheKey = JSON.stringify(apiRequest.params);\n\t\t\tres = apiRequest.cache.get(cacheKey);\n\n\t\t\tif (res) {\n\t\t\t\treturn res;\n\t\t\t}\n\t\t}\n\n\t\tisLoading.value = true;\n\t\tres = await apiRequest.call();\n\t\tisLoading.value = false;\n\n\t\tif (res.errors) return;\n\n\t\tif (!Array.isArray(res.result)) {\n\t\t\tconsole.warn(`В result ожидался массив`);\n\n\t\t\treturn;\n\t\t}\n\n\t\tconst indexWithError = (res.result as Array<Item | any>).findIndex(item => item.id === undefined || item.name === undefined);\n\t\tif (indexWithError !== -1) {\n\t\t\tconsole.warn(`В result[${indexWithError}] нет id или name`);\n\n\t\t\treturn;\n\t\t}\n\n\t\tif (useCache) {\n\t\t\tapiRequest.cache.set(cacheKey as string, res);\n\t\t}\n\n\t\treturn res;\n\t};\n\n\t/**\n\t * Загрузить items\n\t */\n\tconst load = async () => {\n\t\tif (!apiRequest) return;\n\n\t\tapiRequest.params.offset = 0;\n\t\tapiRequest.params.search = _searchText;\n\n\t\tconst res = await callAPIRequest();\n\t\tif (!res) return;\n\n\t\t_nextOffset = res.nextOffset;\n\n\t\titems.value = res.result;\n\t};\n\n\t/**\n\t * Загрузить следующую страницу items\n\t */\n\tconst loadAppend = async () => {\n\t\tif (!apiRequest) return;\n\n\t\t// данных о следующих страницах не обнаружено\n\t\tif (!_nextOffset) return;\n\n\t\t// дозагружать нельзя, если не завершена предыдущшая загрузка\n\t\tif (isLoading.value) return;\n\n\t\tapiRequest.params.offset = _nextOffset;\n\t\tapiRequest.params.search = _searchText;\n\n\t\tconst res = await callAPIRequest();\n\t\tif (!res) return;\n\n\t\t_nextOffset = res.nextOffset;\n\n\t\titems.value = items.value.concat(res.result);\n\t};\n\n\tconst loadDebounce = debounce(() => load(), 200);\n\n\t/**\n\t * Выполнить поиск по указанному тексту\n\t *\n\t * Если длина текста меньше minLength, поиск не будет проивзеден\n\t *\n\t * Если текст не изменился, поиск не будет проивзеден\n\t * @param searchText - текст поиска\n\t * @param useDebounce - дедупликация загрузки списка\n\t */\n\tconst setSearchTextAndLoad = (searchText: string, useDebounce = true) => {\n\t\tif (!apiRequest) return;\n\n\t\tif (searchText.length < minLength) return;\n\n\t\t// условия поиска не поменялись, данные загружены\n\t\tif (searchText === _searchText && items.value.length) return;\n\n\t\t_searchText = searchText;\n\n\t\tif (useDebounce) {\n\t\t\tvoid loadDebounce();\n\t\t} else {\n\t\t\tvoid load();\n\t\t}\n\t};\n\n\treturn {\n\t\tapiRequest,\n\t\titems,\n\t\tisLoading,\n\t\tloadAppend,\n\t\tsetSearchTextAndLoad,\n\t};\n};\n","import type { Item, Props } from './types';\n\nexport const ITEM_ID_ALL = 0;\n\n/**\n * Выбран ли элемент\n */\nexport const isSelected = (modelValue: Props['modelValue'], item: Item, checkNameForNullId = true) => {\n\tif (checkNameForNullId && item.id === null) {\n\t\tif (Array.isArray(modelValue)) {\n\t\t\treturn modelValue.some(itemSelected => itemSelected.id === item.id && itemSelected.name === item.name);\n\t\t} else {\n\t\t\treturn item.name === modelValue.name;\n\t\t}\n\t}\n\n\tif (Array.isArray(modelValue)) {\n\t\treturn modelValue.some(itemSelected => itemSelected.id === item.id);\n\t} else {\n\t\treturn item.id === modelValue.id;\n\t}\n};\n","import { computed, ref, type ComputedRef, type Ref } from 'vue';\nimport { invertKeyboardLayout } from '@/core/utils/keyboard';\nimport type { Item, Props } from '../types';\nimport { type API } from './useAPI';\nimport { isSelected, ITEM_ID_ALL } from '../utils';\nimport { useI18n } from '@/core/plugins/i18n';\n\n/**\n * Функционал поиска\n */\nexport const useMenu = (\n\tmodel: Ref<Props['modelValue']>,\n\titems: Ref<Props['items']>,\n\tmultiselect: Props['multiselect'],\n\tappendAllValue: Ref<Props['appendAllValue']>,\n\tappendSearchToResult: Ref<Props['appendSearchToResult']>,\n\tapi: API,\n) => {\n\t/**\n\t * Текст поиска по результатам\n\t */\n\tconst searchText = ref('');\n\n\t/**\n\t * Объект, представляющий опцию \"Все\"\n\t */\n\tconst itemAll = {\n\t\tid: ITEM_ID_ALL,\n\t\tname: useI18n().Common.All,\n\t};\n\n\t/**\n\t * Сброс поиска\n\t */\n\tconst resetSearch = () => {\n\t\tsearchText.value = '';\n\t\tapi.items.value = [];\n\t};\n\n\t/**\n\t * Варианты выбора: props.items + \"Выбрать все\"\n\t */\n\tconst localItems: ComputedRef<Item[]> = computed(() => {\n\t\tconst localItems: Item[] = [];\n\n\t\tif (!multiselect && appendAllValue.value) {\n\t\t\tlocalItems.push(itemAll);\n\t\t}\n\n\t\titems.value?.forEach(item => localItems.push({ ...item }));\n\n\t\treturn localItems;\n\t});\n\n\t/**\n\t * Подготовленный список меню, который содержит в сумме:\n\t * - prop.items: указанный список с учетом фильтра и опций компонента\n\t * - api.items: результаты api запроса, если используется api\n\t *\n\t * @returns Отфильтрованный массив элементов для отображения\n\t */\n\tconst itemsForShow = computed(() => {\n\t\tconst searchString = searchText.value.toLowerCase();\n\t\tconst searchStringInvertKeyboard = invertKeyboardLayout(searchString);\n\n\t\tlet items: NonNullable<Props['items']> = [];\n\n\t\tlocalItems.value.forEach((item) => {\n\t\t\tconst itemName = item.name.toLowerCase();\n\n\t\t\tif (\n\t\t\t\titem.id === Number(searchString) ||\n\t\t\t\titemName.includes(searchString) ||\n\t\t\t\titemName.includes(searchStringInvertKeyboard)\n\t\t\t) {\n\t\t\t\tif (itemName === searchString || itemName === searchStringInvertKeyboard) {\n\t\t\t\t\titems.unshift(item);\n\t\t\t\t} else {\n\t\t\t\t\titems.push(item);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\titems.push(...api.items.value);\n\n\t\t// ввод произвольного значения\n\t\tif (\n\t\t\tappendSearchToResult.value &&\n\t\t\t!!searchText.value &&\n\t\t\t(!items.length || items[0].name.toLowerCase() !== searchString)\n\t\t) {\n\t\t\titems.push({\n\t\t\t\tid: null,\n\t\t\t\tname: searchText.value,\n\t\t\t});\n\t\t}\n\n\t\tif (multiselect) {\n\t\t\titems = items.filter(item => !isSelected(model.value, item));\n\t\t}\n\n\t\treturn items;\n\t});\n\n\t/**\n\t * Выбрать следующее значение\n\t */\n\tconst selectNextItem = () => {\n\t\tif (!Array.isArray(model.value)) {\n\t\t\tconst currentIndex = itemsForShow.value.findIndex(item => item.id === (model.value as Item).id);\n\t\t\tconst nextIndex = (currentIndex + 1) % itemsForShow.value.length;\n\t\t\tmodel.value = { ...itemsForShow.value[nextIndex] };\n\t\t}\n\t};\n\n\t/**\n\t * Удалить выбранное значение по id\n\t *\n\t * @param id Идентификатор элемента для удаления\n\t */\n\tconst deleteItemById = async (id: Item['id']) => {\n\t\tif (Array.isArray(model.value)) {\n\t\t\tmodel.value = model.value.filter(item => item.id !== id);\n\t\t}\n\t};\n\n\treturn {\n\t\tsearchText,\n\t\tresetSearch,\n\t\titems: localItems,\n\t\titemsForShow,\n\t\tselectNextItem,\n\t\tdeleteItemById,\n\t};\n};\n","<script setup lang=\"ts\">\nimport { computed, ref, toRef, watch } from 'vue';\nimport Core from '@/core/core/core';\nimport { TopPopup, TopPopupListItem, TopPopupWidgetInput } from '@/components/popup/popup';\nimport { TopInput, TopPreloader } from '@/components/forms/forms';\nimport type { Item, Props, Slots } from './types';\nimport Selector2ItemMulti from './itemMulti.vue';\nimport { useAPI } from './composables/useAPI';\nimport { useMenu } from './composables/useMenu';\nimport { isSelected } from './utils';\n\nconst props = withDefaults(defineProps<Props>(), {\n\titems: () => [] as Array<Item>,\n\tsize: 's',\n\tminLength: 0,\n\tselectedAsPlaceholder: true,\n\tsearchType: 'popup',\n});\n\nconst model = defineModel<Props['modelValue']>({ required: true });\n\ndefineSlots<Slots>();\n\n/**\n * Основной элемент селектора\n */\nconst topInput = ref<InstanceType<typeof TopInput> | null>(null);\n\n/**\n * Объект для работы с API\n */\nconst api = useAPI(props.apiRequest, props.minLength || 0, props.useCache);\n\n/**\n * Объект для работы с меню\n */\nconst menu = useMenu(model, toRef(props, 'items'), props.multiselect, toRef(props, 'appendAllValue'), toRef(props, 'appendSearchToResult'), api);\n\nconst searchTypeLocal = computed(() => {\n\t// multiselect не поддерживает inline ввода\n\tif (props.searchType === 'inline' && props.multiselect) return 'popup';\n\n\t// В мобильной версии popup работает в полноэкранном режиме\n\tif (props.searchType === 'inline' && Core.state.isMobile) return 'popup';\n\n\treturn props.searchType;\n});\n\nconst component = computed(() => {\n\tif (searchTypeLocal.value === 'inline') return 'TopInput';\n\n\treturn 'div';\n});\n\n// /**\n// * Экземпляр компонента Popup\n// */\n// const popupRef = ref<any>(null);\n\n// /**\n// * Получить доступ к объекту popup\n// *\n// * @returns Объект popup или undefined, если popup не инициализирован\n// */\n// const getPopup = (): TopLibPopup | undefined => {\n// \treturn popupRef.value?.popup;\n// };\n\nif (api.apiRequest) {\n\t// отложенный поиск при вводе текста\n\twatch(menu.searchText, () => api.setSearchTextAndLoad(menu.searchText.value));\n}\n\n/**\n * Выбрать элемент\n *\n * @param item Элемент для выбора\n */\nconst selectItem = (item: Item) => {\n\tif (props.multiselect && Array.isArray(model.value)) {\n\t\tif (!isSelected(model.value, item)) {\n\t\t\tmodel.value = [...model.value, item];\n\t\t}\n\t} else {\n\t\tmodel.value = item;\n\t}\n};\n\nconst placeholder = computed(() => {\n\tif (Array.isArray(model.value) || props.multiselect || !props.selectedAsPlaceholder) {\n\t\treturn props.placeholder;\n\t}\n\n\treturn model.value.name || props.placeholder;\n});\n\n/**\n * Обработчик открытия попапа\n */\nconst onOpen = () => {\n\tif (api.apiRequest) {\n\t\t// при открытии сразу выполнить поиск\n\t\tapi.setSearchTextAndLoad(menu.searchText.value, false);\n\t}\n};\n\n/**\n * Обработчик закрытия попапа\n */\nconst onClose = () => {\n\ttopInput.value?.focus();\n\n\tif (menu.searchText.value) menu.resetSearch();\n};\n\n/**\n * Обработчик прокрутки списка контента\n *\n * Для дозагрузки элеменов через api\n *\n * @param {Event} e - Событие прокрутки\n */\nconst onScrollContentList = (e: Event) => {\n\tconst el = e.target as HTMLElement;\n\n\tif (el.scrollTop / (el.scrollHeight - el.offsetHeight) > 0.8) {\n\t\tapi.loadAppend();\n\t}\n};\n\n// для storybook\nif ((window as any).__STORYBOOK_PREVIEW__) {\n\twatch(\n\t\t() => props.multiselect,\n\t\t() => {\n\t\t\tmodel.value = props.multiselect ? [] : { id: null, name: '' };\n\t\t},\n\t\t{ immediate: true },\n\t);\n\n\twatch(\n\t\t() => props.searchType,\n\t\t() => {\n\t\t\t// пауза для установки props в адресной строке\n\t\t\tsetTimeout(() => {\n\t\t\t\tlocation.reload();\n\t\t\t}, 300);\n\t\t},\n\t);\n}\n</script>\n\n<template>\n\t<TopPopup\n\t\t@open=\"onOpen()\"\n\t\t@close=\"onClose()\"\n\t\t@scrollContentList=\"apiRequest ? onScrollContentList($event) : undefined\"\n\t\t:notch=\"false\"\n\t\t:transitionDuration=\"0\"\n\t>\n\t\t<template #opener>\n\t\t\t<component\n\t\t\t\t:is=\"component\"\n\t\t\t\tref=\"subcomponentSelector\"\n\t\t\t\tv-top-focus.onupdate=\"isError\"\n\t\t\t\t:class=\"{\n\t\t\t\t\t'top-selector2' : true,\n\t\t\t\t\t'top-selector2-multiselect': multiselect,\n\t\t\t\t\t['top-size_' + size]: true,\n\t\t\t\t\t['top-disabled']: disabled,\n\t\t\t\t\t['top-forms-focusable']: !disabled,\n\t\t\t\t\t['top-error']: isError,\n\t\t\t\t}\"\n\t\t\t\t@keydown.up.down.enter.space.stop.prevent=\"($event.currentTarget as HTMLElement).click()\"\n\t\t\t\t@keydown.delete=\"model = []\"\n\t\t\t\ttabindex=\"0\"\n\t\t\t>\n\t\t\t\t<template v-if=\"multiselect\">\n\t\t\t\t\t<div class=\"top-selector2_activeItems\">\n\t\t\t\t\t\t<Selector2ItemMulti\n\t\t\t\t\t\t\tv-for=\"item of model as Item[]\"\n\t\t\t\t\t\t\t:id=\"item.id\"\n\t\t\t\t\t\t\t:name=\"item.name\"\n\t\t\t\t\t\t\t@delete=\"menu.deleteItemById\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t</template>\n\n\t\t\t\t<span v-if=\"!multiselect\" class=\"top-selector2_activeName top-ellipsis\">\n\t\t\t\t\t{{ !Array.isArray(model) ? model.name : '' }}\n\t\t\t\t</span>\n\n\t\t\t\t<span\n\t\t\t\t\tv-if=\"addChanger && !multiselect && menu.items.value.length > 1 && !disabled\"\n\t\t\t\t\tclass=\"top-changer top-changer-selector\"\n\t\t\t\t\tdata-top-popup-disabled=\"true\"\n\t\t\t\t\t@click=\"menu.selectNextItem\"\n\t\t\t\t></span>\n\t\t\t</component>\n\t\t</template>\n\n\t\t<template #widget v-if=\"searchType === 'popup'\">\n\t\t\t<TopPopupWidgetInput\n\t\t\t\ttitle=\"Поиск\"\n\t\t\t\ticon=\"\"\n\t\t\t\tv-model=\"menu.searchText.value\"\n\t\t\t\t:isLoading=\"api.isLoading.value && !apiRequest?.params.offset\"\n\t\t\t\t:placeholder\n\t\t\t/>\n\t\t</template>\n\n\t\t<template #contentList>\n\t\t\t<TopPopupListItem\n\t\t\t\tv-for=\"item of menu.itemsForShow.value\"\n\t\t\t\t:class=\"{\n\t\t\t\t\t'top-active': !Array.isArray(model) && !multiselect && model.id === item.id && model.name === item.name,\n\t\t\t\t}\"\n\t\t\t\t:key=\"item.id ?? undefined\"\n\t\t\t\t:closeByClick=\"!multiselect || Core.state.isMobile\"\n\t\t\t\t@click=\"selectItem(item)\"\n\t\t\t>\n\t\t\t\t<slot\n\t\t\t\t\tv-if=\"$slots.item\"\n\t\t\t\t\tname=\"item\"\n\t\t\t\t\t:item\n\t\t\t\t></slot>\n\n\t\t\t\t<template\n\t\t\t\t\tv-else\n\t\t\t\t>\n\t\t\t\t\t{{ item.name }}\n\t\t\t\t</template>\n\t\t\t</TopPopupListItem>\n\n\t\t\t<TopPopupListItem\n\t\t\t\tv-if=\"!api.isLoading.value && !menu.itemsForShow.value.length\"\n\t\t\t\ttype=\"regular\"\n\t\t\t>\n\t\t\t\t{{ $i18n.Common.No_results }}\n\t\t\t</TopPopupListItem>\n\n\t\t\t<!-- Индикатор загрузки, первичная дозагрузка отображается в поле поиска, если оно отображено -->\n\t\t\t<TopPopupListItem\n\t\t\t\tv-if=\"api.isLoading.value && (searchType !== 'popup' || apiRequest?.params.offset)\"\n\t\t\t\ttype=\"regular\"\n\t\t\t>\n\t\t\t\t<TopPreloader type=\"circles\"/>\n\t\t\t</TopPopupListItem>\n\t\t</template>\n\t</TopPopup>\n</template>\n\n<style>\n.top-selector2 {\n\twidth: 180px;\n\tmin-height: var(--top-forms-base-height);\n\tbox-sizing: border-box;\n\tposition: relative;\n\tdisplay: flex;\n\toverflow: hidden;\n\tpadding: var(--top-padding-1) var(--top-forms-padding);\n\n\tborder-radius: var(--top-radius-2);\n\tborder: 1px solid var(--top-forms-border-color);\n\tbackground: var(--top-forms-background-color);\n}\n\n.top-selector2::placeholder {\n\tcolor: var(--color-text-1);\n}\n\n.top-selector2-multiselect {\n\twidth: unset;\n\tmin-width: 180px;\n\tpadding: var(--top-padding-1);\n}\n\n.top-selector2.top-active {\n\t--top-forms-border-color: var(--top-forms-border-color-hover);\n}\n\n.top-selector2_activeItems {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\tgap: var(--top-padding-1);\n\tmax-width: 100%;\n}\n\n.top-selector2_activeName {\n\twhite-space: nowrap;\n}\n\n.top-changer-selector {\n\ttransform: translateX(-16px);\n}\n</style>\n","<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { TopButton } from '@/components/forms/forms';\nimport type { Props } from '@/components/formsExt/policy/types';\n\ndefineProps<Props>();\n\nconst isVisible = ref(true);\n\nconst acceptCookie = () => {\n\tconst baseDomain = location.hostname.split('.').slice(-2).join('.');\n\n\tdocument.cookie = `cookie_consent=accepted; path=/; domain=.${baseDomain}; max-age=31536000`;\n\n\tisVisible.value = false;\n};\n</script>\n\n<template>\n\t<div\n\t\tv-if=\"isVisible\"\n\t\tclass=\"top-policy\"\n\t>\n\t\t<div class=\"top-policy_title\">\n\t\t\t{{ title }}\n\t\t</div>\n\n\t\t<div\n\t\t\tclass=\"top-policy_description\"\n\t\t\tv-html=\"text\"\n\t\t></div>\n\n\t\t<TopButton\n\t\t\tsize=\"m\"\n\t\t\t@click=\"acceptCookie\"\n\t\t>\n\t\t\t{{ $i18n.Common.Allow }}\n\t\t</TopButton>\n\t</div>\n</template>\n\n<style>\n.top-policy {\n\tbox-sizing: border-box;\n\tbox-shadow: var(--top-shadow-b);\n\tborder-radius: var(--top-radius-4);\n\tbackground: var(--color-bg-lightning-1);\n\twidth: 600px;\n\tpadding: var(--top-padding-4);\n\tposition: fixed;\n\tright: var(--top-gap-10);\n\tbottom: var(--top-gap-10);\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: var(--top-gap-4);\n\tz-index: 10000;\n}\n\n.top-policy_title {\n\tfont-size: 24px;\n\tfont-weight: 700;\n}\n\n@media screen and (max-width: 900px) {\n\t.top-policy {\n\t\twidth: 100%;\n\t\tright: 0;\n\t\tbottom: calc(var(--top-gap-5) + var(--toolbar-height, 0px));\n\t}\n}\n</style>\n","import type { ComponentCustomProps } from 'vue';\n\nimport EditArea from './editArea/editArea.vue';\nimport EditInput from './editInput/editInput.vue';\nimport RadioGroup from './radioGroup/radioGroup.vue';\nimport CheckboxGroup from './checkboxGroup/checkboxGroup.vue';\nimport Selector2 from './selector2/selector2.vue';\nimport Menu from './menu/menu.vue';\nimport Info from './info/info.vue';\nimport Policy from './policy/policy.vue';\n\nexport const TopEditArea = EditArea as typeof EditArea & ComponentCustomProps;\nexport const TopEditInput = EditInput as typeof EditInput & ComponentCustomProps;\nexport const TopRadioGroup = RadioGroup as typeof RadioGroup & ComponentCustomProps;\nexport const TopCheckboxGroup = CheckboxGroup as typeof CheckboxGroup & ComponentCustomProps;\nexport const TopSelector2 = Selector2 as typeof Selector2 & ComponentCustomProps;\nexport const TopMenu = Menu as typeof Menu & ComponentCustomProps;\nexport const TopInfo = Info as typeof Info & ComponentCustomProps;\nexport const TopPolicy = Policy as typeof Policy & ComponentCustomProps;"],"names":["props","__props","emit","__emit","localValue","ref","isFocused","isChanged","computed","submit","value","cancel","clickOnTitle","intermediateValue","watch","toRef","model","useModel","elRef","_a","item","_c","_b","_e","_d","uid","onChange","id","newModel","index","useAPI","apiRequest","minLength","useCache","items","isLoading","_searchText","_nextOffset","callAPIRequest","res","cacheKey","indexWithError","load","loadAppend","loadDebounce","debounce","searchText","useDebounce","ITEM_ID_ALL","isSelected","modelValue","checkNameForNullId","itemSelected","useMenu","multiselect","appendAllValue","appendSearchToResult","api","itemAll","useI18n","resetSearch","localItems","localItems2","itemsForShow","searchString","searchStringInvertKeyboard","invertKeyboardLayout","items2","itemName","nextIndex","topInput","menu","searchTypeLocal","Core","component","selectItem","placeholder","onOpen","onClose","onScrollContentList","e","el","isVisible","acceptCookie","baseDomain","TopEditArea","_sfc_main$7","TopEditInput","_sfc_main$6","TopRadioGroup","_sfc_main$5","TopCheckboxGroup","_sfc_main$4","TopSelector2","_sfc_main$2","TopMenu","_sfc_main$b","TopInfo","_sfc_main$1","TopPolicy","_sfc_main"],"mappings":"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"}
1
+ {"version":3,"file":"formsExt.js","sources":["../../src/components/formsExt/editArea/editArea.vue","../../src/components/formsExt/editInput/editInput.vue","../../src/components/formsExt/radioGroup/radioGroup.vue","../../src/components/formsExt/checkboxGroup/checkboxGroup.vue","../../src/components/formsExt/selector2/itemMulti.vue","../../src/components/formsExt/selector2/composables/useAPI.ts","../../src/components/formsExt/selector2/utils.ts","../../src/components/formsExt/selector2/composables/useMenu.ts","../../src/components/formsExt/selector2/selector2.vue","../../src/components/formsExt/info/info.vue","../../src/components/formsExt/policy/policy.vue","../../src/components/formsExt/formsExt.ts"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, ref } from 'vue';\nimport Button from '@/components/forms/button/button.vue';\nimport type { Emits, Props } from './types';\nimport Textarea from '@/components/forms/textarea/textarea.vue';\n\nconst props = withDefaults(defineProps<Props>(), {\n\tdefaultValue: '',\n\tcancelText: 'Cancel',\n\tsubmitText: 'Send',\n\tcloseText: 'Close',\n\texpandable: true,\n});\n\nconst emit = defineEmits<Emits>();\n\nconst localValue = ref(props.defaultValue);\n\nconst isFocused = ref(props.isFocused);\n\nconst isChanged = computed(() => localValue.value !== props.defaultValue);\n\nconst submit = (value: string) => {\n\temit('submit', value);\n\n\tlocalValue.value = props.defaultValue;\n};\n\nconst cancel = () => {\n\tif (props.forceShowCloseBtn && !isChanged.value) {\n\t\temit('close');\n\n\t\treturn;\n\t}\n\n\tlocalValue.value = props.defaultValue;\n};\n\nconst clickOnTitle = () => {\n\tif (props.attachToKeyboard) emit('clickOnTitle');\n};\n</script>\n\n<template>\n\t<div\n\t\t:class=\"{\n\t\t\t'top-editArea': true,\n\t\t\t'top-editArea-attachedToKeyboard': attachToKeyboard,\n\t\t}\"\n\t>\n\t\t<div\n\t\t\tv-if=\"title\"\n\t\t\tclass=\"top-editArea_title\"\n\t\t\t@click=\"clickOnTitle()\"\n\t\t>\n\t\t\t{{ title }}\n\t\t</div>\n\n\t\t<div\n\t\t\t:class=\"{\n\t\t\t\t'top-editArea_form': true,\n\t\t\t\t'top-forms-focusable': true,\n\t\t\t\t'top-as-input': true,\n\t\t\t\t'top-error': isError,\n\t\t\t\t'top-focus': isFocused,\n\t\t\t}\"\n\t\t>\n\t\t\t<Textarea\n\t\t\t\tv-model=\"localValue\"\n\t\t\t\t:name=\"name\"\n\t\t\t\t:placeholder=\"placeholder\"\n\t\t\t\t:rows=\"rows\"\n\t\t\t\t:minHeight=\"minHeight\"\n\t\t\t\t:expandable=\"expandable\"\n\t\t\t\t:disabled=\"disabled\"\n\t\t\t\t:readonly=\"readonly\"\n\t\t\t\t:isError=\"isError\"\n\t\t\t\t:hint=\"hint\"\n\t\t\t\tclass=\"top-editArea_element\"\n\t\t\t\t@focus=\"() => isFocused = true\"\n\t\t\t\t@blur=\"() => isFocused = false\"\n\t\t\t\t@keyup.esc=\"cancel\"\n\t\t\t\t@keyup.ctrl.enter=\"submit(localValue)\"\n\t\t\t/>\n\n\t\t\t<div class=\"top-editArea_footer\">\n\t\t\t\t<Button\n\t\t\t\t\tv-if=\"isChanged || forceShowCloseBtn\"\n\t\t\t\t\t:icon=\"$core.state.isMobile ? '': ''\"\n\t\t\t\t\tclass=\"top-editArea_button\"\n\t\t\t\t\tcolor=\"theme\"\n\t\t\t\t\tstyling=\"soft\"\n\t\t\t\t\t@click=\"cancel\"\n\t\t\t\t>\n\t\t\t\t\t<template\n\t\t\t\t\t\t#default\n\t\t\t\t\t\tv-if=\"!$core.state.isMobile\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{{ cancelText }}\n\t\t\t\t\t</template>\n\t\t\t\t</Button>\n\n\t\t\t\t<Button\n\t\t\t\t\tclass=\"top-editArea_button\"\n\t\t\t\t\tv-if=\"isChanged\"\n\t\t\t\t\t:icon=\"$core.state.isMobile ? '': ''\"\n\t\t\t\t\t@click=\"submit(localValue)\"\n\t\t\t\t>\n\t\t\t\t\t<template\n\t\t\t\t\t\t#default\n\t\t\t\t\t\tv-if=\"!$core.state.isMobile\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{{ submitText }}\n\t\t\t\t\t</template>\n\t\t\t\t</Button>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</template>\n\n<style>\n.top-editArea {\n\t--top-editArea-bottom: env(keyboard-inset-height, 0px);\n\t--top-editArea-offset-bottom: 0px;\n\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 6px;\n}\n\n.top-editArea_title {\n\tfont-size: 12px;\n}\n\n.top-editArea_form {\n\tflex-direction: column;\n}\n\n/* textarea в EditArea */\n.top-textarea {\n\twidth: 100%;\n}\n\n.top-editArea_element.top-textarea_textarea {\n\t--top-forms-border-width: 0px;\n\n\toutline: none;\n\tanimation: none;\n}\n\n/* footer */\n.top-editArea_footer {\n\tpadding: var(--top-forms-padding);\n\tdisplay: flex;\n\tmin-height: 32px;\n\talign-self: flex-end;\n\tjustify-content: flex-end;\n\tgap: var(--top-forms-padding);\n}\n\n/* attachedToKeyboard */\n.top-editArea-attachedToKeyboard {\n\tbackground: var(--top-forms-background-color);\n\tposition: fixed;\n\tbottom: calc(var(--top-editArea-offset-bottom) + var(--top-editArea-bottom));\n\tright: 0;\n\tleft: 0;\n\tz-index: 2;\n\tgap: 0;\n\ttransition: bottom var(--transition-fast);\n}\n\n.top-editArea-attachedToKeyboard .top-editArea_form {\n\tborder-radius: 0;\n\tborder: none;\n\tborder-top: 1px solid var(--top-forms-border-color);\n}\n\n.top-editArea-attachedToKeyboard .top-editArea_title {\n\tcursor: pointer;\n\tborder-top: 1px solid var(--color-line-2-opacity);\n\tpadding: var(--top-forms-padding);\n}\n\n.top-editArea-attachedToKeyboard .top-editArea_footer > [data-top-icon] {\n\tborder-radius: 100%;\n}\n\n@media screen and (max-width: 900px) {\n\t.top-editArea_form{\n\t\tflex-direction: row;\n\t}\n}\n</style>\n","<script setup lang=\"ts\">\nimport { ref, toRef, watch } from 'vue';\nimport type { Emits, Props } from './types';\nimport TopInput from '@/components/forms/input/input.vue';\nimport TopButton from '@/components/forms/button/button.vue';\n\nconst props = defineProps<Props>();\n\nconst intermediateValue = ref(props.modelValue);\n\nwatch(toRef(props.modelValue), () => {\n\tintermediateValue.value = props.modelValue;\n});\n\nconst emit = defineEmits<Emits>();\n\nconst submit = () => {\n\temit('update:modelValue', intermediateValue.value);\n};\n</script>\n\n<template>\n\t<div class=\"top-editInput\">\n\t\t<TopInput\n\t\t\t:=\"input\"\n\t\t\t@keydown.esc.capture.stop=\"intermediateValue = modelValue\"\n\t\t\t@keydown.enter.stop=\"submit\"\n\t\t\tv-model=\"intermediateValue\"\n\t\t/>\n\n\t\t<TopButton\n\t\t\tv-if=\"intermediateValue !== modelValue\"\n\t\t\ticon=\"\"\n\t\t\tstyling=\"soft\"\n\t\t\t:=\"button\"\n\t\t\t@click=\"submit\"\n\t\t/>\n\t</div>\n</template>\n\n<style>\n.top-editInput {\n\twidth: 220px;\n\tflex-grow: 1;\n\tdisplay: flex;\n\talign-items: flex-end;\n\tgap: var(--top-gap-1);\n}\n\n.top-editInput .top-input {\n\twidth: unset;\n\tflex-grow: 1;\n}\n</style>\n","<script setup lang=\"ts\">\nimport type { Ref } from '@vue/reactivity';\nimport { ref, watch } from 'vue';\nimport type { Props } from './types';\n\nconst model = defineModel<Props['modelValue']>({\n\trequired: true,\n});\n\nconst props = withDefaults(defineProps<Props>(), {\n\tsize: 's',\n});\n\nconst elRef: Ref<HTMLElement | null> = ref(null);\n\nwatch(model, () => {\n\tif (!props.radiosProps?.some(item => item.value === model.value)) {\n\t\tmodel.value = props.radiosProps?.[0]?.value ?? '';\n\t}\n\n\telRef.value?.querySelector('.radioGroup_item-selected')?.scrollIntoView();\n}, { immediate: true });\n\nconst uid = 'radioGroup-' + Math.random();\n</script>\n\n<template>\n\t<div\n\t\tref=\"elRef\"\n\t\t:class=\"{\n\t\t\t['top-radioGroup']: true,\n\t\t\t['top-scrollBarXHidding']: true,\n\t\t\t['top-size_' + size]: !!size,\n\t\t\t['top-error']: isError,\n\t\t}\"\n\t>\n\t\t<label\n\t\t\tv-for=\"item of radiosProps\"\n\t\t\t:class=\"{\n\t\t\t\t['top-radioGroup_item-selected']: item.value === model,\n\t\t\t\t['top-radioGroup_item']: true,\n\t\t\t\t['top-forms-focusable']: true,\n\t\t\t\t['top-disabled']: item.disabled,\n\t\t\t}\"\n\t\t\t:data-top-icon=\"item.icon\"\n\t\t\t@click=\"model = item.value\"\n\t\t>\n\t\t\t{{ item.title }}\n\n\t\t\t<span\n\t\t\t\tv-if=\"showIndicator\"\n\t\t\t\tclass=\"top-radioGroup_circle\"\n\t\t\t></span>\n\n\t\t\t<!-- Для нативной навигации -->\n\t\t\t<input\n\t\t\t\tv-model=\"model\"\n\t\t\t\t:name=\"uid\"\n\t\t\t\ttype=\"radio\"\n\t\t\t\t:class=\"{\n\t\t\t\t\t['top-unvisible']: true,\n\t\t\t\t}\"\n\t\t\t\t:value=\"item.value\"\n\t\t\t\t:disabled=\"item.disabled\"\n\t\t\t/>\n\t\t</label>\n\t</div>\n</template>\n\n<style>\n.top-radioGroup {\n\tuser-select: none;\n\tbox-sizing: border-box;\n\tborder-radius: 8px;\n\tbackground-color: var(--color-layout-middle);\n\theight: var(--top-forms-base-height);\n\tpadding: 2px;\n\tgap: 2px;\n\tdisplay: flex;\n\talign-items: flex-start;\n}\n\n.top-radioGroup_item {\n\tcolor: var(--color-text-2);\n\tcursor: pointer;\n\tbox-sizing: border-box;\n\tborder-radius: 6px;\n\theight: calc(var(--top-forms-base-height) - 4px);\n\tpadding: 0 16px;\n\tfont-weight: 400;\n\twhite-space: nowrap;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tflex-grow: 1;\n\tgap: 4px;\n}\n\n.top-radioGroup_item:hover {\n\tbackground-color: var(--color-layout-front-1);\n\tbox-shadow: 0px 4px 32px 0px rgba(4, 9, 84, 0.10), 0px 0px 4px 0px rgba(4, 9, 84, 0.08);\n}\n\n/* selected */\n.top-radioGroup_item-selected {\n\tcolor: var(--color-text-1);\n\tpointer-events: none;\n\tbackground-color: var(--color-bg-lightning-1);\n\tbox-shadow: 0px 4px 32px 0px rgba(4, 9, 84, 0.10), 0px 0px 4px 0px rgba(4, 9, 84, 0.08);\n}\n\n/* circle */\n.top-radioGroup_circle {\n\tcontent: \"\";\n\tbox-sizing: border-box;\n\tborder: 1px solid var(--color-line-3-opacity);\n\tborder-radius: 50%;\n\tpadding: 3px;\n\tmargin-left: auto;\n\twidth: calc(var(--top-forms-option-height) - 3px * 2);\n\theight: calc(var(--top-forms-option-height) - 3px * 2);\n}\n\n.top-radioGroup_item:hover .top-radioGroup_circle:before {\n\tborder-color: var(--color-line-primary-1);\n}\n\n/* circle selected */\n.top-radioGroup_item-selected .top-radioGroup_circle {\n\tborder-color: var(--color-line-primary-1);\n\tborder-width: 5px;\n}\n\n.top-radioGroup_item-selected:hover .top-radioGroup_circle {\n\tborder-color: var(--color-line-primary-1);\n}\n\n/* top-error */\n.top-radioGroup.top-error .top-radioGroup_item:not(.top-disabled) .top-radioGroup_circle {\n\tborder-color: var(--color-line-negative-1);\n}\n</style>\n","<script setup lang=\"ts\">\nimport type { Props } from './types';\n\nconst model = defineModel<Props['modelValue']>({\n\trequired: true,\n});\n\nwithDefaults(defineProps<Props>(), {\n\tsize: 's',\n\tstyling: 'outline',\n});\n\nconst onChange = (id: Props['modelValue'][number]) => {\n\tconst newModel = [...model.value];\n\tconst index = newModel.indexOf(id);\n\n\tif (index === -1) {\n\t\tnewModel.push(id);\n\t} else {\n\t\tnewModel.splice(index, 1);\n\t}\n\n\tmodel.value = newModel;\n};\n</script>\n\n<template>\n\t<div\n\t\t:class=\"{\n \t\t['top-checkboxGroup']: true,\n \t\t['top-checkboxGroup-' + styling]: true,\n \t\t['top-scrollBarXHidding']: true,\n \t\t['top-size_' + size]: !!size,\n \t\t['top-error']: isError,\n \t}\"\n\t>\n\t\t<label\n\t\t\tv-for=\"item in items\"\n\t\t\t:key=\"item.id\"\n\t\t\t:class=\"{\n\t\t\t\t['top-checkboxGroup_item']: true,\n\t\t\t\t['top-checkboxGroup_item-selected']: model.includes(item.id),\n\t\t\t\t['top-forms-focusable']: true,\n\t\t\t\t['top-disabled']: item.disabled,\n\t\t\t}\"\n\t\t\t:data-top-icon=\"item.icon\"\n\t\t>\n\t\t\t<input\n\t\t\t\ttype=\"checkbox\"\n\t\t\t\tclass=\"top-unvisible\"\n\t\t\t\t:value=\"item.id\"\n\t\t\t\t:checked=\"model.includes(item.id)\"\n\t\t\t\t:disabled=\"item.disabled\"\n\t\t\t\t@change=\"onChange(item.id)\"\n\t\t\t/>\n\n\t\t\t{{ item.title }}\n\t\t</label>\n\t</div>\n</template>\n\n<style>\n.top-checkboxGroup {\n\tuser-select: none;\n\tborder-radius: 8px;\n\theight: var(--top-forms-base-height);\n\tbox-sizing: border-box;\n\tdisplay: flex;\n}\n\n.top-checkboxGroup_item {\n\tbox-sizing: border-box;\n\tpadding: 1px var(--top-padding-4);\n\tcursor: pointer;\n\tfont-weight: 600;\n\twhite-space: nowrap;\n\tdisplay: flex;\n\tflex-grow: 1;\n\tjustify-content: center;\n\talign-items: center;\n\tgap: var(--top-gap-1);\n}\n\n/* outline */\n.top-checkboxGroup-outline {\n\tborder: 1px solid var(--color-line-1);\n\tbackground: var(--color-layout-front-1);\n}\n\n.top-checkboxGroup-outline .top-checkboxGroup_item {\n\theight: calc(var(--top-forms-base-height) - 2px);\n\tmin-height: 100%;\n}\n\n.top-checkboxGroup-outline .top-checkboxGroup_item:hover {\n\tbackground: var(--color-layer-primary-1);\n}\n\n.top-checkboxGroup-outline .top-checkboxGroup_item-selected {\n\tbackground: var(--color-bg-primary-1);\n\tcolor: var(--color-text-white);\n\t--top-icon-color: var(--color-text-white);\n}\n\n.top-checkboxGroup-outline .top-checkboxGroup_item-selected:hover {\n\tbackground: var(--color-bg-primary-2);\n}\n\n.top-checkboxGroup-outline.top-error .top-checkboxGroup_item:hover {\n\tbackground: var(--color-layer-negative-1);\n}\n\n.top-checkboxGroup-outline.top-error .top-checkboxGroup_item-selected {\n\tbackground: var(--color-bg-negative-1);\n}\n\n.top-checkboxGroup-outline.top-error .top-checkboxGroup_item-selected:hover {\n\tbackground: var(--color-bg-negative-2);\n}\n\n/* borderless */\n.top-checkboxGroup-borderless {\n\tpadding: 2px;\n\tbackground: var(--color-bg-shading-2);\n\tgap: 2px;\n}\n\n.top-checkboxGroup-borderless .top-checkboxGroup_item {\n\tborder-radius: 6px;\n\theight: calc(var(--top-forms-base-height) - 4px);\n}\n\n.top-checkboxGroup-borderless .top-checkboxGroup_item:hover {\n\tbox-shadow: var(--top-shadow-s);\n\tbackground: var(--color-bg-lightning-1);\n}\n\n.top-checkboxGroup-borderless .top-checkboxGroup_item-selected {\n\tbackground: var(--color-bg-primary-1);\n\tcolor: var(--color-text-white);\n\t--top-icon-color: var(--color-text-white);\n}\n\n.top-checkboxGroup-borderless .top-checkboxGroup_item-selected:hover {\n\tbackground: var(--color-bg-primary-2);\n}\n\n.top-checkboxGroup-borderless.top-error .top-checkboxGroup_item:hover {\n\tbackground: var(--color-bg-lightning-1);\n}\n\n.top-checkboxGroup-borderless.top-error .top-checkboxGroup_item-selected {\n\tbackground: var(--color-bg-negative-1);\n}\n\n.top-checkboxGroup-borderless.top-error .top-checkboxGroup_item-selected:hover {\n\tbackground: var(--color-bg-negative-2);\n}\n</style>\n","<script setup lang=\"ts\">\nimport type { EmitsItemMulti, PropsItemMulti } from './types';\n\ndefineProps<PropsItemMulti>();\ndefineEmits<EmitsItemMulti>();\n</script>\n\n<template>\n\t<div class=\"top-selector2_itemMulti top-ellipsis\">\n\t\t{{ name }}\n\t\t<span\n\t\t\tclass=\"top-selector2_itemMultiDelete\"\n\t\t\tdata-top-icon=\"\"\n\t\t\t@click=\"$emit('delete', id)\"\n\t\t\t@mousedown.stop\n\t\t></span>\n\t</div>\n</template>\n\n<style>\n.top-selector2_itemMulti {\n\tbox-sizing: border-box;\n\tpadding-left: var(--top-padding-2);\n\tborder-radius: var(--top-radius-1, 4px);\n\tborder: 1px solid var(--color-line-primary-1);\n\tbackground: var(--color-layer-primary-2);\n\tmin-height: 22px;\n\tmax-width: 100%;\n\tcolor: var(--color-text-1);\n\tflex-grow: 0;\n\tdisplay: inline-flex;\n\talign-items: center;\n\tgap: var(--top-gap-1);\n}\n\n.top-selector2_itemMultiDelete {\n\t--top-icon-size: 14px;\n\t--top-icon-width: 18px;\n\t--top-icon-color: var(--color-text-1);\n\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\theight: 100%;\n\tcursor: pointer;\n}\n\n.top-selector2_itemMultiDelete:hover {\n\tbackground: var(--color-layer-primary-2);\n}\n\n@media screen and (min-width: 900px) {\n\t.top-selector2.top-active .top-selector2_itemMultiDelete {\n\t\tz-index: calc(var(--top-popup-z-index) + 1);\n\t}\n}\n</style>\n","import { ref } from 'vue';\nimport { debounce } from '../../../../core/utils/lodash';\nimport type { Item, Props } from '../types';\n\nexport type API = ReturnType<typeof useAPI>;\n\nexport const useAPI = (apiRequest: Props['apiRequest'], minLength: number, useCache: Props['useCache']) => {\n\t/**\n\t * Список, полученный через API\n\t */\n\tconst items = ref<Item[]>([]);\n\n\t/**\n\t * Флаг - идет загрузка\n\t */\n\tconst isLoading = ref(false);\n\n\tlet searchText = '';\n\tlet nextOffset: number | undefined;\n\n\tif (apiRequest && !apiRequest.params.limit) {\n\t\tapiRequest.params.limit = 100;\n\t}\n\n\t/**\n\t * Выполнить обращение к API\n\t *\n\t * При ошибке вернет undefined\n\t */\n\tconst callAPIRequest = async (): Promise<{ nextOffset?: number, result: Item[] } | undefined> => {\n\t\tif (!apiRequest) return;\n\n\t\tlet res;\n\t\tlet cacheKey;\n\n\t\tif (useCache) {\n\t\t\t// кэш для полученных ответов через apiRequest\n\t\t\t// общий для всех компонентов, использующих apiRequest\n\t\t\tapiRequest.cache ??= new Map();\n\n\t\t\tcacheKey = JSON.stringify(apiRequest.params);\n\t\t\tres = apiRequest.cache.get(cacheKey);\n\n\t\t\tif (res) {\n\t\t\t\treturn res;\n\t\t\t}\n\t\t}\n\n\t\tisLoading.value = true;\n\t\tres = await apiRequest.call();\n\t\tisLoading.value = false;\n\n\t\tif (res.errors) return;\n\n\t\tif (!Array.isArray(res.result)) {\n\t\t\tconsole.warn(`В result ожидался массив`);\n\n\t\t\treturn;\n\t\t}\n\n\t\tconst indexWithError = (res.result as Array<Item | any>).findIndex(item => item.id === undefined || item.name === undefined);\n\t\tif (indexWithError !== -1) {\n\t\t\tconsole.warn(`В result[${indexWithError}] нет id или name`);\n\n\t\t\treturn;\n\t\t}\n\n\t\tif (useCache) {\n\t\t\tapiRequest.cache.set(cacheKey as string, res);\n\t\t}\n\n\t\treturn res;\n\t};\n\n\t/**\n\t * Загрузить items\n\t */\n\tconst load = async () => {\n\t\tif (!apiRequest) return;\n\n\t\tapiRequest.params.offset = 0;\n\t\tapiRequest.params.search = searchText;\n\n\t\tconst res = await callAPIRequest();\n\t\tif (!res) return;\n\n\t\tnextOffset = res.nextOffset;\n\n\t\titems.value = res.result;\n\t};\n\n\t/**\n\t * Загрузить следующую страницу items\n\t */\n\tconst loadAppend = async () => {\n\t\tif (!apiRequest) return;\n\n\t\t// данных о следующих страницах не обнаружено\n\t\tif (!nextOffset) return;\n\n\t\t// дозагружать нельзя, если не завершена предыдущшая загрузка\n\t\tif (isLoading.value) return;\n\n\t\tapiRequest.params.offset = nextOffset;\n\t\tapiRequest.params.search = searchText;\n\n\t\tconst res = await callAPIRequest();\n\t\tif (!res) return;\n\n\t\tnextOffset = res.nextOffset;\n\n\t\titems.value = items.value.concat(res.result);\n\t};\n\n\tconst loadDebounce = debounce(() => load(), 200);\n\n\t/**\n\t * Выполнить поиск по указанному тексту\n\t *\n\t * Если длина текста меньше minLength, поиск не будет произведен\n\t *\n\t * Если текст не изменился, поиск не будет произведен\n\t *\n\t * @param newSearchText - текст поиска\n\t * @param useDebounce - дедупликация загрузки списка\n\t */\n\tconst setSearchTextAndLoad = (newSearchText: string, useDebounce = true) => {\n\t\tif (!apiRequest) return;\n\n\t\tif (newSearchText.length < minLength) return;\n\n\t\t// условия поиска не поменялись, данные загружены\n\t\tif (newSearchText === searchText && items.value.length) return;\n\n\t\tsearchText = newSearchText;\n\n\t\tif (useDebounce) {\n\t\t\tvoid loadDebounce();\n\t\t} else {\n\t\t\tvoid load();\n\t\t}\n\t};\n\n\treturn {\n\t\tapiRequest,\n\t\titems,\n\t\tisLoading,\n\t\tloadAppend,\n\t\tsetSearchTextAndLoad,\n\t};\n};\n","import type { Item, Props } from './types';\n\nexport const ITEM_ID_ALL = 0;\n\n/**\n * Выбран ли элемент\n */\nexport const isSelected = (modelValue: Props['modelValue'], item: Item, checkNameForNullId = true) => {\n\tif (checkNameForNullId && item.id === null) {\n\t\tif (Array.isArray(modelValue)) {\n\t\t\treturn modelValue.some(itemSelected => itemSelected.id === item.id && itemSelected.name === item.name);\n\t\t} else {\n\t\t\treturn item.name === modelValue.name;\n\t\t}\n\t}\n\n\tif (Array.isArray(modelValue)) {\n\t\treturn modelValue.some(itemSelected => itemSelected.id === item.id);\n\t} else {\n\t\treturn item.id === modelValue.id;\n\t}\n};\n","import { computed, ref, type ComputedRef, type Ref } from 'vue';\nimport { invertKeyboardLayout } from '@/core/utils/keyboard';\nimport type { Item, Props } from '../types';\nimport { type API } from './useAPI';\nimport { isSelected, ITEM_ID_ALL } from '../utils';\nimport { useI18n } from '@/core/plugins/i18n';\n\n/**\n * Функционал поиска\n */\nexport const useMenu = (\n\tmodel: Ref<Props['modelValue']>,\n\titems: Ref<Props['items']>,\n\tmultiselect: Props['multiselect'],\n\tappendAllValue: Ref<Props['appendAllValue']>,\n\tappendSearchToResult: Ref<Props['appendSearchToResult']>,\n\tsearchType: Ref<Props['searchType']>,\n\tminLength: number,\n\tapi: API,\n) => {\n\t/**\n\t * Текст поиска по результатам\n\t */\n\tconst searchText = ref('');\n\n\t/**\n\t * Объект, представляющий опцию \"Все\"\n\t */\n\tconst itemAll = {\n\t\tid: ITEM_ID_ALL,\n\t\tname: useI18n().Common.All,\n\t};\n\n\t/**\n\t * Сброс поиска\n\t */\n\tconst resetSearch = () => {\n\t\tsearchText.value = '';\n\t\tapi.items.value = [];\n\t};\n\n\t/**\n\t * Является ли строка поиска достаточной длины для отображения меню\n\t */\n\tconst genIsShort = () => {\n\t\tif (!api.apiRequest) return false;\n\t\tif (searchType.value !== 'inline') return false;\n\t\tif (searchText.value.length >= minLength) return false;\n\n\t\treturn true;\n\t};\n\n\t/**\n\t * Варианты выбора: props.items + \"Выбрать все\"\n\t */\n\tconst localItems: ComputedRef<Item[]> = computed(() => {\n\t\tconst localItems: Item[] = [];\n\n\t\tif (!multiselect && appendAllValue.value) {\n\t\t\tlocalItems.push(itemAll);\n\t\t}\n\n\t\titems.value?.forEach(item => localItems.push({ ...item }));\n\n\t\treturn localItems;\n\t});\n\n\t/**\n\t * Подготовленный список меню, который содержит в сумме:\n\t * - prop.items: указанный список с учетом фильтра и опций компонента\n\t * - api.items: результаты api запроса, если используется api\n\t *\n\t * @returns Отфильтрованный массив элементов для отображения\n\t */\n\tconst itemsForShow = computed(() => {\n\t\tconst searchString = searchText.value.toLowerCase();\n\t\tconst searchStringInvertKeyboard = invertKeyboardLayout(searchString);\n\n\t\tlet items: NonNullable<Props['items']> = [];\n\n\t\tlocalItems.value.forEach((item) => {\n\t\t\tconst itemName = item.name.toLowerCase();\n\n\t\t\tif (\n\t\t\t\titem.id === Number(searchString) ||\n\t\t\t\titemName.includes(searchString) ||\n\t\t\t\titemName.includes(searchStringInvertKeyboard)\n\t\t\t) {\n\t\t\t\tif (itemName === searchString || itemName === searchStringInvertKeyboard) {\n\t\t\t\t\titems.unshift(item);\n\t\t\t\t} else {\n\t\t\t\t\titems.push(item);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\titems.push(...api.items.value);\n\n\t\t// ввод произвольного значения\n\t\tif (\n\t\t\tappendSearchToResult.value &&\n\t\t\t!!searchText.value &&\n\t\t\t(!items.length || items[0].name.toLowerCase() !== searchString)\n\t\t) {\n\t\t\titems.push({\n\t\t\t\tid: null,\n\t\t\t\tname: searchText.value,\n\t\t\t});\n\t\t}\n\n\t\tif (multiselect) {\n\t\t\titems = items.filter(item => !isSelected(model.value, item));\n\t\t}\n\n\t\treturn items;\n\t});\n\n\t/**\n\t * Выбрать элемент\n\t *\n\t * @param item Элемент для выбора\n\t */\n\tconst selectItem = (item: Item) => {\n\t\tif (multiselect && Array.isArray(model.value)) {\n\t\t\tif (!isSelected(model.value, item)) {\n\t\t\t\tmodel.value = [...model.value, item];\n\t\t\t}\n\t\t} else {\n\t\t\tmodel.value = item;\n\t\t}\n\t};\n\n\t/**\n\t * Выбрать следующее значение\n\t */\n\tconst selectNextItem = () => {\n\t\tif (!Array.isArray(model.value)) {\n\t\t\tconst currentIndex = itemsForShow.value.findIndex(item => item.id === (model.value as Item).id);\n\t\t\tconst nextIndex = (currentIndex + 1) % itemsForShow.value.length;\n\t\t\tmodel.value = { ...itemsForShow.value[nextIndex] };\n\t\t}\n\t};\n\n\t/**\n\t * Удалить выбранное значение по id\n\t *\n\t * @param id Идентификатор элемента для удаления\n\t */\n\tconst deleteItemById = async (id: Item['id']) => {\n\t\tif (Array.isArray(model.value)) {\n\t\t\tmodel.value = model.value.filter(item => item.id !== id);\n\t\t}\n\t};\n\n\treturn {\n\t\tsearchText,\n\t\tresetSearch,\n\t\tgenIsShort,\n\t\titems: localItems,\n\t\titemsForShow,\n\t\tselectItem,\n\t\tselectNextItem,\n\t\tdeleteItemById,\n\t};\n};\n","<script setup lang=\"ts\">\nimport { computed, ref, toRef, watch } from 'vue';\nimport Core from '@/core/core/core';\nimport { TopPopup, TopPopupListItem, TopPopupWidgetInput } from '@/components/popup/popup';\nimport { TopPreloader } from '@/components/forms/forms';\nimport type { Item, Props, Slots } from './types';\nimport Selector2ItemMulti from './itemMulti.vue';\nimport { useAPI } from './composables/useAPI';\nimport { useMenu } from './composables/useMenu';\nimport type { TopLibPopup } from '../../popup/lib/popup';\n\nconst props = withDefaults(defineProps<Props>(), {\n\titems: () => [] as Item[],\n\tsize: 's',\n\tminLength: 0,\n\tsearchType: 'popup',\n});\n\nconst model = defineModel<Props['modelValue']>({ required: true });\n\ndefineSlots<Slots>();\n\nconst searchTypeLocal = computed(() => {\n\t// multiselect не поддерживает inline ввода\n\tif (props.searchType === 'inline' && props.multiselect) return 'popup';\n\n\t// В мобильной версии popup работает в полноэкранном режиме\n\tif (props.searchType === 'inline' && Core.state.isMobile) return 'popup';\n\n\treturn props.searchType;\n});\n\nlet minLength = 0;\nif (searchTypeLocal.value === 'inline' && props.minLength) {\n\tminLength = props.minLength;\n}\n\n/**\n * Объект для работы с API\n */\nconst api = useAPI(props.apiRequest, minLength, props.useCache);\n\n/**\n * Объект для работы с меню\n */\nconst menu = useMenu(\n\tmodel,\n\ttoRef(props, 'items'),\n\tprops.multiselect,\n\ttoRef(props, 'appendAllValue'),\n\ttoRef(props, 'appendSearchToResult'),\n\tsearchTypeLocal,\n\tminLength,\n\tapi,\n);\n\nconst component = computed(() => {\n\tif (props.buttonProps) return 'TopButton';\n\tif (searchTypeLocal.value === 'inline') return 'TopInput';\n\n\treturn 'div';\n});\n\n/**\n * Экземпляр компонента Popup\n */\nconst popupRef = ref<any>(null);\n\n/**\n * Получить доступ к объекту popup\n */\nconst getPopup = (): TopLibPopup | undefined => {\n\treturn popupRef.value?.popup;\n};\n\nif (api.apiRequest) {\n\t// отложенный поиск при вводе текста\n\twatch(menu.searchText, () => {\n\t\tapi.setSearchTextAndLoad(menu.searchText.value);\n\n\t\tif (searchTypeLocal.value === 'inline') {\n\t\t\tif (menu.genIsShort()) {\n\t\t\t\tgetPopup()?.close();\n\t\t\t}\n\t\t}\n\t});\n}\n\nwatch(model, () => {\n\t/**\n\t * При изменении значения модели в режиме inline необходимо очистить поле поиска,\n\t * так как поиск больше не актуален после выбора значения\n\t */\n\tif (searchTypeLocal.value === 'inline') {\n\t\tmenu.resetSearch();\n\t}\n});\n\nconst placeholder = computed(() => {\n\tif (Array.isArray(model.value) || props.multiselect || !props.selectedAsPlaceholder && searchTypeLocal.value !== 'inline') {\n\t\treturn props.placeholder;\n\t}\n\n\treturn model.value?.name || props.placeholder;\n});\n\n/**\n * Обработчик ввода клавиш на кнопке или поле ввода\n */\nconst onOpenerKeydown = (e: KeyboardEvent) => {\n\tlet needOpen = false;\n\n\tswitch (e.key) {\n\t\tcase 'Delete':\n\t\tcase 'Backspace':\n\t\t\tif (Array.isArray(model.value)) {\n\t\t\t\te.preventDefault();\n\t\t\t\te.stopPropagation();\n\n\t\t\t\tmodel.value.pop();\n\t\t\t}\n\n\t\t\tbreak;\n\t\tcase 'ArrowUp':\n\t\tcase 'ArrowRight':\n\t\tcase 'ArrowDown':\n\t\tcase 'ArrowLeft':\n\t\tcase 'Enter':\n\t\tcase ' ':\n\t\t\tneedOpen = true;\n\n\t\t\tbreak;\n\t\tcase 'Escape':\n\t\t\tif (searchTypeLocal.value === 'inline') {\n\t\t\t\t// очистка введенного текста\n\t\t\t\tmenu.resetSearch();\n\t\t\t}\n\n\t\t\tbreak;\n\t}\n\n\t// введен символ\n\tconst symbolPressed = e.key.length === 1 && !e.ctrlKey && !e.metaKey;\n\n\t// введен символ\n\tif (searchTypeLocal.value === 'popup' || searchTypeLocal.value === 'inline') {\n\t\tif (symbolPressed) {\n\t\t\tneedOpen = true;\n\t\t}\n\t}\n\n\t// popup уже открыт\n\tif (getPopup()?.elPopup) {\n\t\tneedOpen = false;\n\t}\n\n\tif (needOpen) {\n\t\tif (searchTypeLocal.value === 'popup') {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\n\t\t\t// введен символ\n\t\t\tif (symbolPressed) {\n\t\t\t\t// начало ввода, сразу ввести первый символ вместе с открытием popup\n\t\t\t\tif (!menu.searchText.value) {\n\t\t\t\t\tmenu.searchText.value = e.key;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t(e.currentTarget as HTMLElement)?.click();\n\t}\n};\n\nlet disabledFocusToOpen = false;\n\nconst onFocus = (e: FocusEvent) => {\n\tif (disabledFocusToOpen) return;\n\n\tif (searchTypeLocal.value === 'inline') {\n\t\t(e.currentTarget as HTMLElement)?.click();\n\t}\n};\n\nconst onClickChanger = (e: MouseEvent) => {\n\te.preventDefault();\n\n\tdisabledFocusToOpen = true;\n\t(e.currentTarget as HTMLElement)?.parentElement?.focus();\n\tdisabledFocusToOpen = false;\n\n\tmenu.selectNextItem();\n};\n\n/**\n * Обработчик открытия попапа\n */\nconst onOpen = () => {\n\tdisabledFocusToOpen = true;\n\n\tif (api.apiRequest) {\n\t\tif (menu.genIsShort()) {\n\t\t\tgetPopup()?.close();\n\n\t\t\treturn;\n\t\t}\n\n\t\t// при открытии сразу выполнить поиск\n\t\tapi.setSearchTextAndLoad(menu.searchText.value, false);\n\t}\n};\n\n/**\n * Обработчик закрытия попапа\n */\nconst onClose = () => {\n\tsetTimeout(() => {\n\t\tdisabledFocusToOpen = false;\n\t}, 100);\n\n\t// очистка введенного текста\n\tif (searchTypeLocal.value === 'popup') {\n\t\tif (menu.searchText.value) menu.resetSearch();\n\t}\n};\n\n/**\n * Обработчик прокрутки списка контента\n *\n * Для дозагрузки элеменов через api\n *\n * @param {Event} e - Событие прокрутки\n */\nconst onScrollContentList = (e: Event) => {\n\tconst el = e.target as HTMLElement;\n\n\tif (el.scrollTop / (el.scrollHeight - el.offsetHeight) > 0.8) {\n\t\tapi.loadAppend();\n\t}\n};\n\n// для storybook\nif ((window as any).__STORYBOOK_PREVIEW__) {\n\twatch(\n\t\t() => props.multiselect,\n\t\t() => {\n\t\t\tif (props.multiselect) {\n\t\t\t\tif (!Array.isArray(model.value)) {\n\t\t\t\t\tmodel.value = [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tid: 1,\n\t\t\t\t\t\t\tname: 'Выбери меня',\n\t\t\t\t\t\t},\n\t\t\t\t\t];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (Array.isArray(model.value)) {\n\t\t\t\t\tmodel.value = {\n\t\t\t\t\t\tid: null,\n\t\t\t\t\t\tname: '',\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t{ immediate: true },\n\t);\n\n\twatch(\n\t\t() => props.searchType,\n\t\t() => {\n\t\t\t// пауза для установки props в адресной строке\n\t\t\tsetTimeout(() => {\n\t\t\t\tlocation.reload();\n\t\t\t}, 500);\n\t\t},\n\t);\n}\n</script>\n\n<template>\n\t<TopPopup\n\t\tref=\"popupRef\"\n\t\t@open=\"onOpen()\"\n\t\t@close=\"onClose()\"\n\t\t@scrollContentList=\"apiRequest ? onScrollContentList($event) : undefined\"\n\t\t:notch=\"searchTypeLocal !== 'inline'\"\n\t\t:transitionDuration=\"0\"\n\t>\n\t\t<template #opener>\n\t\t\t<component\n\t\t\t\t:is=\"component\"\n\n\t\t\t\t:=\"buttonProps\"\n\n\t\t\t\tref=\"subcomponentSelector\"\n\t\t\t\t:class=\"{\n\t\t\t\t\t'top-selector2' : true,\n\t\t\t\t\t'top-selector2-multiselect': multiselect,\n\t\t\t\t\t['top-selector2-' + modificator]: !!modificator,\n\t\t\t\t\t'top-as-input': !buttonProps,\n\t\t\t\t\t'top-as-selector': true,\n\t\t\t\t\t['top-size_' + size]: true,\n\t\t\t\t\t['top-disabled']: disabled,\n\t\t\t\t\t['top-forms-focusable']: !disabled,\n\t\t\t\t\t['top-error']: isError,\n\t\t\t\t}\"\n\t\t\t\ttabindex=\"0\"\n\t\t\t\t@keydown=\"onOpenerKeydown\"\n\t\t\t\tv-top-focus.onupdate=\"isError\"\n\n\t\t\t\t:placeholder\n\t\t\t\tv-model=\"menu.searchText.value\"\n\t\t\t\t@focus=\"onFocus\"\n\t\t\t\t@blur=\"getPopup()?.isClosed ? menu.resetSearch() : ''\"\n\t\t\t>\n\t\t\t\t<template v-if=\"multiselect\">\n\t\t\t\t\t<div class=\"top-selector2_activeItems\">\n\t\t\t\t\t\t<Selector2ItemMulti\n\t\t\t\t\t\t\tv-for=\"item of model as Item[]\"\n\t\t\t\t\t\t\t:id=\"item.id\"\n\t\t\t\t\t\t\t:name=\"item.name\"\n\t\t\t\t\t\t\t@delete=\"menu.deleteItemById\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t</template>\n\n\t\t\t\t<span v-if=\"searchTypeLocal !== 'inline' && !multiselect\" class=\"top-selector2_activeName top-ellipsis\">\n\t\t\t\t\t{{ !Array.isArray(model) ? model.name : '' }}\n\t\t\t\t</span>\n\n\t\t\t\t<span v-if=\"multiselect && !model.length\" class=\"top-selector2_placeholder top-ellipsis\">\n\t\t\t\t\t{{ placeholder }}\n\t\t\t\t</span>\n\n\t\t\t\t<span\n\t\t\t\t\tv-if=\"addChanger && !buttonProps && !multiselect && menu.items.value.length > 1 && !disabled\"\n\t\t\t\t\tclass=\"top-changer top-changer-selector top-popup_widget\"\n\t\t\t\t\tdata-top-popup-disabled=\"true\"\n\t\t\t\t\t@click=\"onClickChanger\"\n\t\t\t\t></span>\n\t\t\t</component>\n\t\t</template>\n\n\t\t<template #widget v-if=\"searchTypeLocal === 'popup'\">\n\t\t\t<TopPopupWidgetInput\n\t\t\t\ttitle=\"Поиск\"\n\t\t\t\ticon=\"\"\n\t\t\t\tv-model=\"menu.searchText.value\"\n\t\t\t\t:isLoading=\"api.isLoading.value && !apiRequest?.params.offset\"\n\t\t\t\t:placeholder\n\t\t\t/>\n\t\t</template>\n\n\t\t<template #contentList>\n\t\t\t<TopPopupListItem\n\t\t\t\tv-for=\"item of menu.itemsForShow.value\"\n\t\t\t\t:class=\"{\n\t\t\t\t\t'top-active': !Array.isArray(model) && !multiselect && model.id === item.id && model.name === item.name,\n\t\t\t\t}\"\n\t\t\t\t:key=\"item.id ?? undefined\"\n\t\t\t\t:closeByClick=\"!multiselect || Core.state.isMobile\"\n\t\t\t\t@click=\"menu.selectItem(item)\"\n\t\t\t>\n\t\t\t\t<slot\n\t\t\t\t\tv-if=\"$slots.item\"\n\t\t\t\t\tname=\"item\"\n\t\t\t\t\t:item\n\t\t\t\t></slot>\n\n\t\t\t\t<template\n\t\t\t\t\tv-else\n\t\t\t\t>\n\t\t\t\t\t{{ item.name }}\n\t\t\t\t</template>\n\t\t\t</TopPopupListItem>\n\n\t\t\t<TopPopupListItem\n\t\t\t\tv-if=\"!api.isLoading.value && !menu.itemsForShow.value.length\"\n\t\t\t\ttype=\"regular\"\n\t\t\t>\n\t\t\t\t{{ $i18n.Common.No_results }}\n\t\t\t</TopPopupListItem>\n\n\t\t\t<!-- Индикатор загрузки, первичная дозагрузка отображается в поле поиска, если оно отображено -->\n\t\t\t<TopPopupListItem\n\t\t\t\tv-if=\"api.isLoading.value && (searchType !== 'popup' || apiRequest?.params.offset)\"\n\t\t\t\ttype=\"regular\"\n\t\t\t>\n\t\t\t\t<TopPreloader type=\"circles\"/>\n\t\t\t</TopPopupListItem>\n\t\t</template>\n\t</TopPopup>\n</template>\n\n<style>\n.top-selector2 {\n\twidth: 180px;\n\tpadding: var(--top-padding-1) var(--top-forms-padding);\n}\n\n.top-selector2::placeholder,\n.top-selector2_placeholder {\n\tcolor: var(--color-text-2);\n}\n\n.top-selector2_placeholder {\n\tpadding-left: var(--top-padding-1);\n}\n\n.top-selector2-multiselect {\n\tpadding: var(--top-padding-1);\n\tflex-grow: 1;\n}\n\n.top-selector2.top-active {\n\t--top-forms-border-color: var(--top-forms-border-color-hover);\n}\n\n.top-selector2_activeItems {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\tgap: var(--top-padding-1);\n\tmax-width: 100%;\n}\n\n.top-selector2_activeName {\n\twhite-space: nowrap;\n}\n\n.top-changer-selector {\n\twidth: auto;\n\tpadding: var(--top-padding-1);\n\tmargin: calc(0px - var(--top-padding-1));\n\ttransform: translateX(0);\n}\n\n.top-selector2.top-button {\n\tjustify-content: start;\n}\n\n.top-selector2.top-input_input ~ .top-changer-selector {\n\ttransform: translateX(-52px);\n}\n\n.top-selector2.top-as-selector {\n\tpadding-right: calc(var(--top-selector-arrow-width) + var(--top-padding-2));\n}\n</style>\n","<script lang=\"ts\" setup>\nimport type { Props, Slots } from './types';\n\nwithDefaults(defineProps<Props>(), {\n\tstyling: 'default',\n\tsize: 'default',\n});\n\ndefineSlots<Slots>();\n</script>\n\n<template>\n\t<div\n\t\t:class=\"{\n\t\t\t['top-info']: true,\n\t\t\t['top-size_' + size]: true,\n\t\t\t['top-info-styling_' + styling]: true,\n\t\t}\"\n\t\t:data-top-icon=\"icon\"\n\t>\n\t\t<div class=\"top-info_text\">\n\t\t\t<slot></slot>\n\t\t</div>\n\n\t\t<span v-if=\"$slots.additional\" class=\"top-info_value\">\n\t\t\t<slot name=\"additional\"></slot>\n\t\t</span>\n\t</div>\n</template>\n\n<style>\n.top-info {\n\t--top-icon-width: var(--top-icon-size);\n\n\tborder-radius: var(--top-forms-radius);\n\tbox-sizing: border-box;\n\tmin-height: var(--top-forms-base-height);\n\tpadding: var(--top-padding-1) var(--top-padding-2);\n\tflex-grow: 5;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n\tgap: var(--top-gap-2);\n}\n\n.top-info_text {\n\tflex-grow: 1;\n}\n\n.top-info_value {\n\tfont-weight: bold;\n}\n\n/* size */\n.top-info.top-size_default {\n\tborder-radius: var(--top-radius-3);\n\tpadding: var(--top-padding-4);\n}\n\n/* styling */\n.top-info-styling_default {\n\t--top-icon-color: var(--color-text-2);\n\n\tbackground: var(--color-layer-1);\n}\n\n.top-info-styling_info {\n\t--top-icon-color: var(--color-text-primary);\n\n\tbackground: var(--color-layer-primary-1);\n}\n\n.top-info-styling_warning {\n\t--top-icon-color: var(--color-text-warning);\n\n\tbackground: var(--color-layer-warning-1);\n}\n\n.top-info-styling_negative {\n\t--top-icon-color: var(--color-text-negative);\n\n\tbackground: var(--color-layer-negative-1);\n}\n</style>\n","<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { TopButton } from '@/components/forms/forms';\nimport type { Emits, Props } from '@/components/formsExt/policy/types';\n\ndefineProps<Props>();\nconst emits = defineEmits<Emits>();\n\nconst isVisible = ref(true);\n\nconst onAccept = () => {\n\tisVisible.value = false;\n\n\temits('accept');\n};\n</script>\n\n<template>\n\t<div\n\t\tv-if=\"isVisible\"\n\t\tclass=\"top-policy\"\n\t>\n\t\t<div class=\"top-policy_title\">\n\t\t\t{{ title }}\n\t\t</div>\n\n\t\t<div\n\t\t\tclass=\"top-policy_description\"\n\t\t\tv-html=\"description\"\n\t\t></div>\n\n\t\t<TopButton\n\t\t\tsize=\"m\"\n\t\t\t@click=\"onAccept\"\n\t\t>\n\t\t\t{{ acceptText }}\n\t\t</TopButton>\n\t</div>\n</template>\n\n<style>\n.top-policy {\n\tbox-sizing: border-box;\n\tbox-shadow: var(--top-shadow-b);\n\tborder-radius: var(--top-radius-4);\n\tbackground: var(--color-bg-lightning-1);\n\twidth: 600px;\n\tpadding: var(--top-padding-4);\n\tposition: fixed;\n\tright: var(--top-gap-10);\n\tbottom: var(--top-gap-10);\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: var(--top-gap-4);\n\tz-index: 10000;\n}\n\n.top-policy_title {\n\tfont-size: 24px;\n\tfont-weight: 700;\n}\n\n.top-policy_description {\n\tfont-size: 14px;\n}\n\n@media screen and (max-width: 900px) {\n\t.top-policy {\n\t\twidth: 100%;\n\t\tright: 0;\n\t\tbottom: calc(var(--top-gap-5) + var(--toolbar-height, 0px));\n\t}\n}\n</style>\n","import type { ComponentCustomProps } from 'vue';\n\nimport EditArea from './editArea/editArea.vue';\nimport EditInput from './editInput/editInput.vue';\nimport RadioGroup from './radioGroup/radioGroup.vue';\nimport CheckboxGroup from './checkboxGroup/checkboxGroup.vue';\nimport Selector2 from './selector2/selector2.vue';\nimport Menu from './menu/menu.vue';\nimport Info from './info/info.vue';\nimport Policy from './policy/policy.vue';\n\nexport const TopEditArea = EditArea as typeof EditArea & ComponentCustomProps;\nexport const TopEditInput = EditInput as typeof EditInput & ComponentCustomProps;\nexport const TopRadioGroup = RadioGroup as typeof RadioGroup & ComponentCustomProps;\nexport const TopCheckboxGroup = CheckboxGroup as typeof CheckboxGroup & ComponentCustomProps;\nexport const TopSelector2 = Selector2 as typeof Selector2 & ComponentCustomProps;\nexport const TopMenu = Menu as typeof Menu & ComponentCustomProps;\nexport const TopInfo = Info as typeof Info & ComponentCustomProps;\nexport const TopPolicy = Policy as typeof Policy & ComponentCustomProps;"],"names":["props","__props","emit","__emit","localValue","ref","isFocused","isChanged","computed","submit","value","cancel","clickOnTitle","normalizeClass","attachToKeyboard","_cache","$event","toDisplayString","_ctx","createCommentVNode","isError","name","placeholder","rows","minHeight","expandable","disabled","readonly","hint","withKeys","withModifiers","openBlock","createBlock","_sfc_main$9","createSlots","withCtx","createTextVNode","intermediateValue","watch","toRef","createElementBlock","_hoisted_1$6","createVNode","_sfc_main$a","mergeProps","model","useModel","elRef","_a","item","_c","_b","_e","_d","uid","size","_hoisted_2$4","_hoisted_3$3","onChange","id","newModel","index","_hoisted_2$3","_hoisted_1$4","_hoisted_1$3","createElementVNode","useAPI","apiRequest","minLength","useCache","items","isLoading","searchText","nextOffset","callAPIRequest","res","cacheKey","indexWithError","load","loadAppend","loadDebounce","debounce","newSearchText","useDebounce","ITEM_ID_ALL","isSelected","modelValue","checkNameForNullId","itemSelected","useMenu","multiselect","appendAllValue","appendSearchToResult","searchType","api","itemAll","useI18n","resetSearch","genIsShort","localItems","localItems2","itemsForShow","searchString","searchStringInvertKeyboard","invertKeyboardLayout","items2","itemName","nextIndex","searchTypeLocal","Core","menu","component","popupRef","getPopup","onOpenerKeydown","needOpen","symbolPressed","disabledFocusToOpen","onFocus","onClickChanger","onOpen","onClose","onScrollContentList","el","withDirectives","resolveDynamicComponent","modificator","buttonProps","unref","_hoisted_1$2","Fragment","renderList","renderSlot","TopPreloader","TopPopupWidgetInput","icon","emits","isVisible","onAccept","_hoisted_2","description","TopEditArea","_sfc_main$7","TopEditInput","_sfc_main$6","TopRadioGroup","_sfc_main$5","TopCheckboxGroup","_sfc_main$4","TopSelector2","_sfc_main$2","TopMenu","_sfc_main$b","TopInfo","_sfc_main$1","TopPolicy","_sfc_main"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- define(["require","exports","vue","../.chunks/forms-Gb7ujpmz.amd","../require/css.amd!../assets/layout.css"],function(v,t,e,n){"use strict";if(typeof e>"u")var e=window.Vue;const l=e.defineComponent({__name:"rows",props:{gap:{default:"none"}},setup(s){const o=s;return(c,B)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass({"top-rows":!0,["top-rows-gap_"+o.gap]:!0})},[e.renderSlot(c.$slots,"default")],2))}}),r={class:"top-islandRows"},a={key:0,class:"top-islandRows_title"},d=e.defineComponent({__name:"islandRows",setup(s){return(o,c)=>(e.openBlock(),e.createElementBlock("div",r,[o.$slots.title?(e.openBlock(),e.createElementBlock("div",a,[e.renderSlot(o.$slots,"title")])):e.createCommentVNode("",!0),e.createVNode(l,{gap:"l",class:"top-islandRows_rows"},{default:e.withCtx(()=>[e.renderSlot(o.$slots,"default")]),_:3})]))}}),i={},_={class:"top-islandRows_row"};function u(s,o){return e.openBlock(),e.createElementBlock("div",_,[e.renderSlot(s.$slots,"default")])}const p=n._export_sfc(i,[["render",u]]),w={},f={class:"top-islandRows_subTitle"};function m(s,o){return e.openBlock(),e.createElementBlock("div",f,[e.renderSlot(s.$slots,"default")])}const R=n._export_sfc(w,[["render",m]]),T=d,k=p,$=R,h=l;t.TopIslandRows=T,t.TopIslandRowsRow=k,t.TopIslandRowsSubTitle=$,t.TopRows=h,Object.defineProperty(t,Symbol.toStringTag,{value:"Module"})});
1
+ define(["require","exports","vue","../.chunks/forms-DRhpgERJ.amd","../require/css.amd!../assets/layout.css"],(function(v,t,e,n){"use strict";if(typeof e>"u")var e=window.Vue;const l=e.defineComponent({__name:"rows",props:{gap:{default:"none"}},setup(s){const o=s;return(c,B)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass({"top-rows":!0,["top-rows-gap_"+o.gap]:!0})},[e.renderSlot(c.$slots,"default")],2))}}),r={class:"top-islandRows"},a={key:0,class:"top-islandRows_title"},d=e.defineComponent({__name:"islandRows",setup(s){return(o,c)=>(e.openBlock(),e.createElementBlock("div",r,[o.$slots.title?(e.openBlock(),e.createElementBlock("div",a,[e.renderSlot(o.$slots,"title")])):e.createCommentVNode("",!0),e.createVNode(l,{gap:"l",class:"top-islandRows_rows"},{default:e.withCtx(()=>[e.renderSlot(o.$slots,"default")]),_:3})]))}}),i={},_={class:"top-islandRows_row"};function u(s,o){return e.openBlock(),e.createElementBlock("div",_,[e.renderSlot(s.$slots,"default")])}const p=n._export_sfc(i,[["render",u]]),w={},f={class:"top-islandRows_subTitle"};function m(s,o){return e.openBlock(),e.createElementBlock("div",f,[e.renderSlot(s.$slots,"default")])}const R=n._export_sfc(w,[["render",m]]),T=d,k=p,$=R,h=l;t.TopIslandRows=T,t.TopIslandRowsRow=k,t.TopIslandRowsSubTitle=$,t.TopRows=h,Object.defineProperty(t,Symbol.toStringTag,{value:"Module"})}));
2
2
  //# sourceMappingURL=layout.amd.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"layout.amd.js","sources":["../../src/components/layout/islandRows/islandRowsRow/islandRowsRow.vue","../../src/components/layout/islandRows/islandRowsSubTitle/islandRowsSubTitle.vue","../../src/components/layout/layout.ts"],"sourcesContent":["<script setup lang=\"ts\">\n</script>\n\n<template>\n\t<div class=\"top-islandRows_row\">\n\t\t<slot></slot>\n\t</div>\n</template>\n\n<style>\n.top-islandRows_row {\n\toutline-offset: 2px;\n\tborder-radius: 8px;\n\tbackground: var(--color-layout-front-1);\n\tpadding: var(--top-padding-3);\n\tdisplay: flex;\n\tgap: var(--top-gap-2);\n}\n\n/* Фокус форм */\n.top-islandRows_row:has(> .top-forms-optionWrapper .top-forms-focusable:focus-visible) {\n\toutline: 2px solid var(--color-line-primary-1);\n\toutline-offset: 2px;\n}\n\n/* Фокус форм, стили top-error оставить у форм, иначе они будут конфликтовать со стилями фокуса, так как у top-islandRows_row нет border */\n.top-islandRows_row > .top-forms-optionWrapper .top-forms-focusable:not(.top-error) {\n\toutline: none;\n\tanimation: none;\n}\n\n/* Отмена прозрачных рамок у полей ввода внутри islandRows, если top-rows расположен в islandRowsRow */\n.top-islandRows_row .top-rows > .top-input,\n.top-islandRows_row .top-rows > .top-textarea,\n.top-islandRows_row .top-rows > .top-select { --top-forms-border-color: inherit }\n</style>\n","<script setup lang=\"ts\">\n</script>\n\n<template>\n\t<div class=\"top-islandRows_subTitle\">\n\t\t<slot></slot>\n\t</div>\n</template>\n\n<style>\n.top-islandRows_subTitle {\n\twidth: 100%;\n\tfont-size: 16px;\n\tfont-weight: bold;\n}\n</style>\n","import type { ComponentCustomProps } from 'vue';\n\nimport IslandRows from './islandRows/islandRows.vue';\nimport IslandRowsRow from './islandRows/islandRowsRow/islandRowsRow.vue';\nimport IslandRowsSubTitle from './islandRows/islandRowsSubTitle/islandRowsSubTitle.vue';\nimport Rows from './rows/rows.vue';\n\nexport const TopIslandRows = IslandRows as typeof IslandRows & ComponentCustomProps;\nexport const TopIslandRowsRow = IslandRowsRow as typeof IslandRowsRow & ComponentCustomProps;\nexport const TopIslandRowsSubTitle = IslandRowsSubTitle as typeof IslandRowsSubTitle & ComponentCustomProps;\nexport const TopRows = Rows as typeof Rows & ComponentCustomProps;\n"],"names":["_hoisted_1$1","_hoisted_1","TopIslandRows","_sfc_main$2","TopIslandRowsRow","IslandRowsRow","TopIslandRowsSubTitle","IslandRowsSubTitle","TopRows","_sfc_main$3"],"mappings":"s1BAIMA,EAAA,CAAA,MAAA,oBAAA,qJCAAC,EAAA,CAAA,MAAA,yBAAA,gJCGCC,EAAAC,EACAC,EAAAC,EACAC,EAAAC,EACAC,EAAAC"}
1
+ {"version":3,"file":"layout.amd.js","sources":["../../src/components/layout/islandRows/islandRows.vue","../../src/components/layout/islandRows/islandRowsRow/islandRowsRow.vue","../../src/components/layout/islandRows/islandRowsSubTitle/islandRowsSubTitle.vue","../../src/components/layout/layout.ts"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { Slots } from './types';\nimport TopRows from '../rows/rows.vue';\n\ndefineSlots<Slots>();\n</script>\n\n<template>\n\t<div class=\"top-islandRows\">\n\t\t<div\n\t\t\tv-if=\"$slots.title\"\n\t\t\tclass=\"top-islandRows_title\"\n\t\t>\n\t\t\t<slot name=\"title\"></slot>\n\t\t</div>\n\n\t\t<TopRows gap=\"l\" class=\"top-islandRows_rows\">\n\t\t\t<slot></slot>\n\t\t</TopRows>\n\t</div>\n</template>\n\n<style>\n.top-islandRows {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: var(--top-gap-2);\n}\n\n.top-islandRows_title {\n\tfont-size: 20px;\n\tfont-weight: bold;\n}\n\n.top-islandRows_rows {\n\tborder-radius: var(--top-radius-4);\n\tbackground: var(--color-bg-shading-2);\n\tpadding: var(--top-padding-3);\n}\n\n/* В islandRows у всех полей ввода внутри top-rows прозрачные рамки */\n.top-islandRows_rows .top-rows > .top-input,\n.top-islandRows_rows .top-rows > .top-textarea,\n.top-islandRows_rows .top-rows > .top-select { --top-forms-border-color: transparent }\n\n/* Размеры форм */\n.top-islandRows_rows .top-button,\n.top-islandRows_rows .top-input,\n.top-islandRows_rows .top-textarea,\n.top-islandRows_rows .top-select { width: auto; flex-grow: 1; display: flex; }\n\n.top-islandRows_rows .top-forms-optionWrapper { padding: 0; flex-grow: 1; }\n</style>\n","<script setup lang=\"ts\">\n</script>\n\n<template>\n\t<div class=\"top-islandRows_row\">\n\t\t<slot></slot>\n\t</div>\n</template>\n\n<style>\n.top-islandRows_row {\n\toutline-offset: 2px;\n\tborder-radius: 8px;\n\tbackground: var(--color-layout-front-1);\n\tpadding: var(--top-padding-3);\n\tdisplay: flex;\n\tgap: var(--top-gap-2);\n}\n\n/* Фокус форм */\n.top-islandRows_row:has(> .top-forms-optionWrapper .top-forms-focusable:focus-visible) {\n\toutline: 2px solid var(--color-line-primary-1);\n\toutline-offset: 2px;\n}\n\n/* Фокус форм, стили top-error оставить у форм, иначе они будут конфликтовать со стилями фокуса, так как у top-islandRows_row нет border */\n.top-islandRows_row > .top-forms-optionWrapper .top-forms-focusable:not(.top-error) {\n\toutline: none;\n\tanimation: none;\n}\n\n/* Отмена прозрачных рамок у полей ввода внутри islandRows, если top-rows расположен в islandRowsRow */\n.top-islandRows_row .top-rows > .top-input,\n.top-islandRows_row .top-rows > .top-textarea,\n.top-islandRows_row .top-rows > .top-select { --top-forms-border-color: inherit }\n</style>\n","<script setup lang=\"ts\">\n</script>\n\n<template>\n\t<div class=\"top-islandRows_subTitle\">\n\t\t<slot></slot>\n\t</div>\n</template>\n\n<style>\n.top-islandRows_subTitle {\n\twidth: 100%;\n\tfont-size: 16px;\n\tfont-weight: bold;\n}\n</style>\n","import type { ComponentCustomProps } from 'vue';\n\nimport IslandRows from './islandRows/islandRows.vue';\nimport IslandRowsRow from './islandRows/islandRowsRow/islandRowsRow.vue';\nimport IslandRowsSubTitle from './islandRows/islandRowsSubTitle/islandRowsSubTitle.vue';\nimport Rows from './rows/rows.vue';\n\nexport const TopIslandRows = IslandRows as typeof IslandRows & ComponentCustomProps;\nexport const TopIslandRowsRow = IslandRowsRow as typeof IslandRowsRow & ComponentCustomProps;\nexport const TopIslandRowsSubTitle = IslandRowsSubTitle as typeof IslandRowsSubTitle & ComponentCustomProps;\nexport const TopRows = Rows as typeof Rows & ComponentCustomProps;\n"],"names":["_ctx","vue","_hoisted_2","_hoisted_1$1","_hoisted_1","TopIslandRows","_sfc_main$2","TopIslandRowsRow","IslandRowsRow","TopIslandRowsSubTitle","IslandRowsSubTitle","TopRows","_sfc_main$3"],"mappings":"2lBAmBOA,EAAA,OAAA,OAAAC,EAAA,UAAA,EAAAA,EAAA,mBAAA,MAAAC,EAAA,CALCD,EAAA,WAAAD,EAAA,OAAA,OAAA,CADqB,CAAA,GAAAC,EAAA,mBAAA,GAAA,EAAA,2BAGd,MAAA,qBAAU,EAAA,wBACTA,EAAA,WAAAD,EAAA,OAAA,SAAA,CAAA,CAAA,mBCbVG,EAAA,CAAA,MAAA,oBAAA,qJCAAC,EAAA,CAAA,MAAA,yBAAA,gJCGCC,EAAAC,EACAC,EAAAC,EACAC,EAAAC,EACAC,EAAAC"}
package/layout/layout.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { Core as i } from "../core/app.js";
2
2
  import { defineComponent as r, createElementBlock as t, openBlock as e, normalizeClass as d, renderSlot as n, createCommentVNode as p, createVNode as u, withCtx as m } from "vue";
3
- import { t as l } from "../.chunks/forms-DOGPN_TR.es.js";
3
+ import { t as l } from "../.chunks/forms-t2AEUjqg.es.js";
4
4
  const _ = ["../assets/layout.css"].map((s) => import.meta.resolve(s));
5
5
  i.insertCSSLinkToPage(_, !0);
6
6
  const c = /* @__PURE__ */ r({
@@ -1 +1 @@
1
- {"version":3,"file":"layout.js","sources":["../../src/components/layout/rows/rows.vue","../../src/components/layout/islandRows/islandRowsRow/islandRowsRow.vue","../../src/components/layout/islandRows/islandRowsSubTitle/islandRowsSubTitle.vue","../../src/components/layout/layout.ts"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { Props } from './types';\n\nconst props = withDefaults(defineProps<Props>(), {\n\tgap: 'none',\n});\n</script>\n\n<template>\n\t<div\n\t\t:class=\"{\n\t\t\t['top-rows']: true,\n\t\t\t['top-rows-gap_' + props.gap]: true,\n\t\t}\"\n\t>\n\t\t<slot></slot>\n\t</div>\n</template>\n\n<style>\n.top-rows {\n\tdisplay: flex;\n\tflex-direction: column;\n\tflex-grow: 1;\n}\n\n.top-rows-gap_none {\n\tgap: 0px;\n}\n\n.top-rows-gap_xs {\n\tgap: var(--top-gap-1);\n}\n\n.top-rows-gap_s {\n\tgap: var(--top-gap-2);\n}\n\n.top-rows-gap_m {\n\tgap: var(--top-gap-3);\n}\n\n.top-rows-gap_l {\n\tgap: var(--top-gap-4);\n}\n</style>\n","<script setup lang=\"ts\">\n</script>\n\n<template>\n\t<div class=\"top-islandRows_row\">\n\t\t<slot></slot>\n\t</div>\n</template>\n\n<style>\n.top-islandRows_row {\n\toutline-offset: 2px;\n\tborder-radius: 8px;\n\tbackground: var(--color-layout-front-1);\n\tpadding: var(--top-padding-3);\n\tdisplay: flex;\n\tgap: var(--top-gap-2);\n}\n\n/* Фокус форм */\n.top-islandRows_row:has(> .top-forms-optionWrapper .top-forms-focusable:focus-visible) {\n\toutline: 2px solid var(--color-line-primary-1);\n\toutline-offset: 2px;\n}\n\n/* Фокус форм, стили top-error оставить у форм, иначе они будут конфликтовать со стилями фокуса, так как у top-islandRows_row нет border */\n.top-islandRows_row > .top-forms-optionWrapper .top-forms-focusable:not(.top-error) {\n\toutline: none;\n\tanimation: none;\n}\n\n/* Отмена прозрачных рамок у полей ввода внутри islandRows, если top-rows расположен в islandRowsRow */\n.top-islandRows_row .top-rows > .top-input,\n.top-islandRows_row .top-rows > .top-textarea,\n.top-islandRows_row .top-rows > .top-select { --top-forms-border-color: inherit }\n</style>\n","<script setup lang=\"ts\">\n</script>\n\n<template>\n\t<div class=\"top-islandRows_subTitle\">\n\t\t<slot></slot>\n\t</div>\n</template>\n\n<style>\n.top-islandRows_subTitle {\n\twidth: 100%;\n\tfont-size: 16px;\n\tfont-weight: bold;\n}\n</style>\n","import type { ComponentCustomProps } from 'vue';\n\nimport IslandRows from './islandRows/islandRows.vue';\nimport IslandRowsRow from './islandRows/islandRowsRow/islandRowsRow.vue';\nimport IslandRowsSubTitle from './islandRows/islandRowsSubTitle/islandRowsSubTitle.vue';\nimport Rows from './rows/rows.vue';\n\nexport const TopIslandRows = IslandRows as typeof IslandRows & ComponentCustomProps;\nexport const TopIslandRowsRow = IslandRowsRow as typeof IslandRowsRow & ComponentCustomProps;\nexport const TopIslandRowsSubTitle = IslandRowsSubTitle as typeof IslandRowsSubTitle & ComponentCustomProps;\nexport const TopRows = Rows as typeof Rows & ComponentCustomProps;\n"],"names":["props","__props","_hoisted_1$1","openBlock","createElementBlock","_hoisted_1","TopIslandRows","_sfc_main$2","TopIslandRowsRow","IslandRowsRow","TopIslandRowsSubTitle","IslandRowsSubTitle","TopRows","_sfc_main$3"],"mappings":";;;;;;;;;;;AAGA,UAAAA,IAAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YCCMC,IAAA,EAAA,OAAA,qBAAA;;AAAL,SAAAC,EAAA,GAAAC,EAAA,OAAAF,GAAA;AAAA;;;yDCAKG,IAAA,EAAA,OAAA,0BAAA;;AAAL,SAAAF,EAAA,GAAAC,EAAA,OAAAC,GAAA;AAAA;;;iDCGMC,IAAAC,GACAC,IAAAC,GACAC,IAAAC,GACAC,IAAAC;"}
1
+ {"version":3,"file":"layout.js","sources":["../../src/components/layout/rows/rows.vue","../../src/components/layout/islandRows/islandRows.vue","../../src/components/layout/islandRows/islandRowsRow/islandRowsRow.vue","../../src/components/layout/islandRows/islandRowsSubTitle/islandRowsSubTitle.vue","../../src/components/layout/layout.ts"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { Props } from './types';\n\nconst props = withDefaults(defineProps<Props>(), {\n\tgap: 'none',\n});\n</script>\n\n<template>\n\t<div\n\t\t:class=\"{\n\t\t\t['top-rows']: true,\n\t\t\t['top-rows-gap_' + props.gap]: true,\n\t\t}\"\n\t>\n\t\t<slot></slot>\n\t</div>\n</template>\n\n<style>\n.top-rows {\n\tdisplay: flex;\n\tflex-direction: column;\n\tflex-grow: 1;\n}\n\n.top-rows-gap_none {\n\tgap: 0px;\n}\n\n.top-rows-gap_xs {\n\tgap: var(--top-gap-1);\n}\n\n.top-rows-gap_s {\n\tgap: var(--top-gap-2);\n}\n\n.top-rows-gap_m {\n\tgap: var(--top-gap-3);\n}\n\n.top-rows-gap_l {\n\tgap: var(--top-gap-4);\n}\n</style>\n","<script setup lang=\"ts\">\nimport type { Slots } from './types';\nimport TopRows from '../rows/rows.vue';\n\ndefineSlots<Slots>();\n</script>\n\n<template>\n\t<div class=\"top-islandRows\">\n\t\t<div\n\t\t\tv-if=\"$slots.title\"\n\t\t\tclass=\"top-islandRows_title\"\n\t\t>\n\t\t\t<slot name=\"title\"></slot>\n\t\t</div>\n\n\t\t<TopRows gap=\"l\" class=\"top-islandRows_rows\">\n\t\t\t<slot></slot>\n\t\t</TopRows>\n\t</div>\n</template>\n\n<style>\n.top-islandRows {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: var(--top-gap-2);\n}\n\n.top-islandRows_title {\n\tfont-size: 20px;\n\tfont-weight: bold;\n}\n\n.top-islandRows_rows {\n\tborder-radius: var(--top-radius-4);\n\tbackground: var(--color-bg-shading-2);\n\tpadding: var(--top-padding-3);\n}\n\n/* В islandRows у всех полей ввода внутри top-rows прозрачные рамки */\n.top-islandRows_rows .top-rows > .top-input,\n.top-islandRows_rows .top-rows > .top-textarea,\n.top-islandRows_rows .top-rows > .top-select { --top-forms-border-color: transparent }\n\n/* Размеры форм */\n.top-islandRows_rows .top-button,\n.top-islandRows_rows .top-input,\n.top-islandRows_rows .top-textarea,\n.top-islandRows_rows .top-select { width: auto; flex-grow: 1; display: flex; }\n\n.top-islandRows_rows .top-forms-optionWrapper { padding: 0; flex-grow: 1; }\n</style>\n","<script setup lang=\"ts\">\n</script>\n\n<template>\n\t<div class=\"top-islandRows_row\">\n\t\t<slot></slot>\n\t</div>\n</template>\n\n<style>\n.top-islandRows_row {\n\toutline-offset: 2px;\n\tborder-radius: 8px;\n\tbackground: var(--color-layout-front-1);\n\tpadding: var(--top-padding-3);\n\tdisplay: flex;\n\tgap: var(--top-gap-2);\n}\n\n/* Фокус форм */\n.top-islandRows_row:has(> .top-forms-optionWrapper .top-forms-focusable:focus-visible) {\n\toutline: 2px solid var(--color-line-primary-1);\n\toutline-offset: 2px;\n}\n\n/* Фокус форм, стили top-error оставить у форм, иначе они будут конфликтовать со стилями фокуса, так как у top-islandRows_row нет border */\n.top-islandRows_row > .top-forms-optionWrapper .top-forms-focusable:not(.top-error) {\n\toutline: none;\n\tanimation: none;\n}\n\n/* Отмена прозрачных рамок у полей ввода внутри islandRows, если top-rows расположен в islandRowsRow */\n.top-islandRows_row .top-rows > .top-input,\n.top-islandRows_row .top-rows > .top-textarea,\n.top-islandRows_row .top-rows > .top-select { --top-forms-border-color: inherit }\n</style>\n","<script setup lang=\"ts\">\n</script>\n\n<template>\n\t<div class=\"top-islandRows_subTitle\">\n\t\t<slot></slot>\n\t</div>\n</template>\n\n<style>\n.top-islandRows_subTitle {\n\twidth: 100%;\n\tfont-size: 16px;\n\tfont-weight: bold;\n}\n</style>\n","import type { ComponentCustomProps } from 'vue';\n\nimport IslandRows from './islandRows/islandRows.vue';\nimport IslandRowsRow from './islandRows/islandRowsRow/islandRowsRow.vue';\nimport IslandRowsSubTitle from './islandRows/islandRowsSubTitle/islandRowsSubTitle.vue';\nimport Rows from './rows/rows.vue';\n\nexport const TopIslandRows = IslandRows as typeof IslandRows & ComponentCustomProps;\nexport const TopIslandRowsRow = IslandRowsRow as typeof IslandRowsRow & ComponentCustomProps;\nexport const TopIslandRowsSubTitle = IslandRowsSubTitle as typeof IslandRowsSubTitle & ComponentCustomProps;\nexport const TopRows = Rows as typeof Rows & ComponentCustomProps;\n"],"names":["props","__props","normalizeClass","openBlock","createElementBlock","_hoisted_1$2","_ctx","_hoisted_2","renderSlot","createCommentVNode","_hoisted_1$1","_hoisted_1","TopIslandRows","_sfc_main$2","TopIslandRowsRow","IslandRowsRow","TopIslandRowsSubTitle","IslandRowsSubTitle","TopRows","_sfc_main$3"],"mappings":";;;;;;;;;;;AAGA,UAAAA,IAAAC;;MAaO,OAAAC,EAAA;AAAA,QANC,YAAA;AAAA;MAA0D,CAAA;AAAA;;IAKnD,GAAA,CAAA;AAAA;;;;;;;sBCPdC,EAAA,GAAAC,EAAA,OAAAC,GAAA;AAAA,MAWMC,EAAA,OAAA,SAAAH,EAAA,GAAAC,EAAA,OAAAG,GAAA;AAAA,QALCC,EAAAF,EAAA,QAAA,OAAA;AAAA,MADqB,CAAA,KAAAG,EAAA,IAAA,EAAA;AAAA;QAKjB,KAAA;AAAA,QAFG,OAAA;AAAA,MAAU,GAAA;AAAA;UACTD,EAAAF,EAAA,QAAA,SAAA;AAAA,QAAA,CAAA;AAAA;;;;YCbVI,IAAA,EAAA,OAAA,qBAAA;;AAAL,SAAAP,EAAA,GAAAC,EAAA,OAAAM,GAAA;AAAA;;;yDCAKC,IAAA,EAAA,OAAA,0BAAA;;AAAL,SAAAR,EAAA,GAAAC,EAAA,OAAAO,GAAA;AAAA;;;iDCGMC,IAAAC,GACAC,IAAAC,GACAC,IAAAC,GACAC,IAAAC;"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@topvisor/ui",
3
3
  "private": false,
4
- "version": "1.0.42-popupPosition.0",
4
+ "version": "1.1.0-addNativeDialog.6",
5
5
  "type": "module",
6
6
  "description": "Topvisor UI-kit Vue",
7
7
  "author": "Topvisor",
@@ -27,8 +27,10 @@
27
27
  "./tabsView/tabsView.js": "./tabsView/tabsView.js"
28
28
  },
29
29
  "peerDependencies": {
30
+ "@monaco-editor/loader": "^1.5.0",
31
+ "@rive-app/canvas-lite": "^2.30.4",
30
32
  "pinia": "2.3.1",
31
- "vue": "3.5.13"
33
+ "vue": "3.5.18"
32
34
  },
33
35
  "overrides": {
34
36
  "storybook": "$storybook"
@@ -1,2 +1,2 @@
1
- define(["require","exports","../.chunks/listItem.vue_vue_type_script_setup_true_lang-CF_hIWa6.amd","vue","../.chunks/forms-Gb7ujpmz.amd","../require/css.amd!../assets/popup.css"],function(h,p,f,e,c){"use strict";if(typeof e>"u")var e=window.Vue;const $=e.defineComponent({__name:"widgetInput",props:e.mergeModels({modelValue:{},name:{},disabled:{type:Boolean},readonly:{type:Boolean},modificator:{},size:{},styling:{},isError:{type:Boolean},isLoading:{type:Boolean},icon:{},icon2:{},addCleaner:{type:Boolean,default:!0},title:{},captionType:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(u){const d=e.useModel(u,"modelValue");return(r,o)=>(e.openBlock(),e.createBlock(c._sfc_main$2,e.mergeProps(r.$props,{modificator:"popupWidgetInput",modelValue:d.value,"onUpdate:modelValue":o[0]||(o[0]=l=>d.value=l)}),null,16,["modelValue"]))}}),S=e.defineComponent({__name:"alert",props:{submitText:{},id:{},class:{},transitionDuration:{},footerSupportLink:{},pos:{},notch:{type:Boolean},openByHover:{type:Boolean},posBy:{}},emits:["open","close","scrollContentList"],setup(u){const r={...u,submitText:void 0};return delete r.submitText,(o,l)=>(e.openBlock(),e.createBlock(f._sfc_main,e.mergeProps({class:"top-popupAlert"},r,{onOpen:l[0]||(l[0]=s=>o.$emit("open",s)),onClose:l[1]||(l[1]=s=>o.$emit("close",s)),onScrollContentList:l[2]||(l[2]=(...s)=>o.$emit("scrollContentList",...s))}),e.createSlots({opener:e.withCtx(()=>[e.renderSlot(o.$slots,"opener")]),footer:e.withCtx(()=>[e.renderSlot(o.$slots,"footer"),e.createVNode(c._sfc_main,null,{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.submitText||o.$i18n.Common.Close),1)]),_:1})]),_:2},[o.$slots.header?{name:"header",fn:e.withCtx(()=>[e.renderSlot(o.$slots,"header")]),key:"0"}:void 0,o.$slots.default?{name:"content",fn:e.withCtx(()=>[e.renderSlot(o.$slots,"default")]),key:"1"}:void 0]),1040))}}),y=e.defineComponent({__name:"confirm",props:{cancelText:{},submitText:{},isWarning:{type:Boolean},id:{},class:{},transitionDuration:{},footerSupportLink:{},pos:{},notch:{type:Boolean},openByHover:{type:Boolean},posBy:{}},emits:["open","close","scrollContentList","submit"],setup(u,{emit:d}){const r=u,o=d,l=e.ref(!1),s=()=>{l.value=!0,o("submit")},C=n=>{if(l.value){l.value=!1;return}o("close",n)},T={...r,submitText:void 0,cancelText:void 0,isWarning:void 0};return delete T.submitText,delete T.cancelText,delete T.isWarning,(n,i)=>(e.openBlock(),e.createBlock(f._sfc_main,e.mergeProps({class:"top-popupConfirm"},T,{onOpen:i[0]||(i[0]=t=>n.$emit("open",t)),onClose:i[1]||(i[1]=t=>C(t)),onScrollContentList:i[2]||(i[2]=(...t)=>n.$emit("scrollContentList",...t))}),e.createSlots({opener:e.withCtx(()=>[e.renderSlot(n.$slots,"opener")]),footer:e.withCtx(()=>[e.renderSlot(n.$slots,"footer"),e.createVNode(c._sfc_main,{color:"theme"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(n.cancelText||n.$i18n.Common.Cancel),1)]),_:1}),e.createVNode(c._sfc_main,{onClick:s,color:n.isWarning?"red":"blue"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(n.submitText||n.$i18n.Common.Continue),1)]),_:1},8,["color"])]),_:2},[n.$slots.header?{name:"header",fn:e.withCtx(()=>[e.renderSlot(n.$slots,"header")]),key:"0"}:void 0,n.$slots.default?{name:"content",fn:e.withCtx(()=>[e.renderSlot(n.$slots,"default")]),key:"1"}:void 0]),1040))}}),V=e.defineComponent({__name:"prompt",props:{submitText:{},cancelText:{},defaultValue:{},id:{},class:{},transitionDuration:{},footerSupportLink:{},pos:{},notch:{type:Boolean},openByHover:{type:Boolean},posBy:{}},emits:["open","close","scrollContentList","submit"],setup(u,{emit:d}){const r=u,o=d,l=()=>C.value=r.defaultValue??"",s=e.ref(!1),C=e.ref();e.watch(()=>r.defaultValue,()=>l(),{immediate:!0});const T=()=>{s.value=!0},n=t=>{if(s.value){s.value=!1,o("submit",C.value),l();return}l(),o("close",t)},i={...r,submitText:void 0,cancelText:void 0,defaultValue:void 0};return delete i.submitText,delete i.cancelText,delete i.defaultValue,(t,a)=>(e.openBlock(),e.createBlock(f._sfc_main,e.mergeProps({class:"top-popupPrompt"},i,{onOpen:a[1]||(a[1]=m=>t.$emit("open",m)),onClose:a[2]||(a[2]=m=>n(m)),onScrollContentList:a[3]||(a[3]=(...m)=>t.$emit("scrollContentList",...m))}),e.createSlots({opener:e.withCtx(()=>[e.renderSlot(t.$slots,"opener")]),footer:e.withCtx(()=>[e.renderSlot(t.$slots,"footer"),e.createVNode(c._sfc_main,{color:"theme"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.cancelText||t.$i18n.Common.Cancel),1)]),_:1}),e.createVNode(c._sfc_main,{onClick:T},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.submitText||t.$i18n.Common.OK),1)]),_:1})]),_:2},[t.$slots.header?{name:"header",fn:e.withCtx(()=>[e.renderSlot(t.$slots,"header")]),key:"0"}:void 0,t.$slots.default?{name:"content",fn:e.withCtx(()=>[e.renderSlot(t.$slots,"default"),e.createVNode($,{modelValue:C.value,"onUpdate:modelValue":a[0]||(a[0]=m=>C.value=m),modelModifiers:{trim:!0}},null,8,["modelValue"])]),key:"1"}:void 0]),1040))}}),B=f._sfc_main,v=f._sfc_main$2,P=f._sfc_main$1,b=$,k=S,w=y,g=V;p.TopPopup=B,p.TopPopupAlert=k,p.TopPopupConfirm=w,p.TopPopupListItem=P,p.TopPopupOpener=v,p.TopPopupPrompt=g,p.TopPopupWidgetInput=b,Object.defineProperty(p,Symbol.toStringTag,{value:"Module"})});
1
+ define(["require","exports","../.chunks/listItem.vue_vue_type_script_setup_true_lang-C8PDRggQ.amd","vue","../.chunks/forms-DRhpgERJ.amd","../require/css.amd!../assets/popup.css"],(function(D,p,c,e,C){"use strict";if(typeof e>"u")var e=window.Vue;const V=e.defineComponent({__name:"widgetInput",props:e.mergeModels({modelValue:{},name:{},disabled:{type:Boolean},readonly:{type:Boolean},modificator:{},size:{},styling:{},isError:{type:Boolean},isLoading:{type:Boolean},icon:{},icon2:{},addCleaner:{type:Boolean,default:!0},title:{},captionType:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(m){const a=e.useModel(m,"modelValue");return(i,r)=>(e.openBlock(),e.createBlock(C._sfc_main$2,e.mergeProps(i.$props,{modificator:"popupWidgetInput",modelValue:a.value,"onUpdate:modelValue":r[0]||(r[0]=o=>a.value=o)}),null,16,["modelValue"]))}}),B=e.defineComponent({__name:"alert",props:{submitText:{},id:{},class:{},transitionDuration:{},footerSupportLink:{},pos:{},notch:{type:Boolean},openByHover:{type:Boolean},posBy:{},data:{}},emits:["open","close","scrollContentList"],setup(m){const a=m,{submitText:i,...r}=a;return(o,l)=>(e.openBlock(),e.createBlock(c._sfc_main,e.mergeProps({class:"top-popupAlert"},r,{onOpen:l[0]||(l[0]=s=>o.$emit("open",s)),onClose:l[1]||(l[1]=s=>o.$emit("close",s)),onScrollContentList:l[2]||(l[2]=(...s)=>o.$emit("scrollContentList",...s))}),e.createSlots({opener:e.withCtx(()=>[e.renderSlot(o.$slots,"opener")]),footer:e.withCtx(()=>[e.renderSlot(o.$slots,"footer"),e.createVNode(C._sfc_main,null,{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(i)||o.$i18n.Common.Close),1)]),_:1})]),_:2},[o.$slots.header?{name:"header",fn:e.withCtx(()=>[e.renderSlot(o.$slots,"header")]),key:"0"}:void 0,o.$slots.default?{name:"content",fn:e.withCtx(()=>[e.renderSlot(o.$slots,"default")]),key:"1"}:void 0]),1040))}}),P=e.defineComponent({__name:"confirm",props:{cancelText:{},submitText:{},isWarning:{type:Boolean},id:{},class:{},transitionDuration:{},footerSupportLink:{},pos:{},notch:{type:Boolean},openByHover:{type:Boolean},posBy:{},data:{}},emits:["open","close","scrollContentList","submit"],setup(m,{emit:a}){const i=m,r=a,o=e.ref(!1),l=()=>{o.value=!0,r("submit")},s=n=>{if(o.value){o.value=!1;return}r("close",n)},{submitText:$,cancelText:S,isWarning:y,...T}=i;return(n,u)=>(e.openBlock(),e.createBlock(c._sfc_main,e.mergeProps({class:"top-popupConfirm"},T,{onOpen:u[0]||(u[0]=t=>n.$emit("open",t)),onClose:u[1]||(u[1]=t=>s(t)),onScrollContentList:u[2]||(u[2]=(...t)=>n.$emit("scrollContentList",...t))}),e.createSlots({opener:e.withCtx(()=>[e.renderSlot(n.$slots,"opener")]),footer:e.withCtx(()=>[e.renderSlot(n.$slots,"footer"),e.createVNode(C._sfc_main,{color:"theme"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(S)||n.$i18n.Common.Cancel),1)]),_:1}),e.createVNode(C._sfc_main,{onClick:l,color:e.unref(y)?"red":"blue"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref($)||n.$i18n.Common.Continue),1)]),_:1},8,["color"])]),_:2},[n.$slots.header?{name:"header",fn:e.withCtx(()=>[e.renderSlot(n.$slots,"header")]),key:"0"}:void 0,n.$slots.default?{name:"content",fn:e.withCtx(()=>[e.renderSlot(n.$slots,"default")]),key:"1"}:void 0]),1040))}}),k=e.defineComponent({__name:"prompt",props:{submitText:{},cancelText:{},defaultValue:{},id:{},class:{},transitionDuration:{},footerSupportLink:{},pos:{},notch:{type:Boolean},openByHover:{type:Boolean},posBy:{},data:{}},emits:["open","close","scrollContentList","submit"],setup(m,{emit:a}){const i=m,r=a,o=()=>s.value=i.defaultValue??"",l=e.ref(!1),s=e.ref();e.watch(()=>i.defaultValue,()=>o(),{immediate:!0});const $=()=>{l.value=!0},S=t=>{if(l.value){l.value=!1,r("submit",s.value),o();return}o(),r("close",t)},{submitText:y,cancelText:T,defaultValue:n,...u}=i;return(t,d)=>(e.openBlock(),e.createBlock(c._sfc_main,e.mergeProps({class:"top-popupPrompt"},u,{onOpen:d[1]||(d[1]=f=>t.$emit("open",f)),onClose:d[2]||(d[2]=f=>S(f)),onScrollContentList:d[3]||(d[3]=(...f)=>t.$emit("scrollContentList",...f))}),e.createSlots({opener:e.withCtx(()=>[e.renderSlot(t.$slots,"opener")]),footer:e.withCtx(()=>[e.renderSlot(t.$slots,"footer"),e.createVNode(C._sfc_main,{color:"theme"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(T)||t.$i18n.Common.Cancel),1)]),_:1}),e.createVNode(C._sfc_main,{onClick:$},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(y)||t.$i18n.Common.OK),1)]),_:1})]),_:2},[t.$slots.header?{name:"header",fn:e.withCtx(()=>[e.renderSlot(t.$slots,"header")]),key:"0"}:void 0,t.$slots.default?{name:"content",fn:e.withCtx(()=>[e.renderSlot(t.$slots,"default"),e.createVNode(V,{modelValue:s.value,"onUpdate:modelValue":d[0]||(d[0]=f=>s.value=f),modelModifiers:{trim:!0}},null,8,["modelValue"])]),key:"1"}:void 0]),1040))}}),w=c._sfc_main,b=c._sfc_main$2,v=c._sfc_main$1,g=V,h=B,L=P,N=k;p.TopPopup=w,p.TopPopupAlert=h,p.TopPopupConfirm=L,p.TopPopupListItem=v,p.TopPopupOpener=b,p.TopPopupPrompt=N,p.TopPopupWidgetInput=g,Object.defineProperty(p,Symbol.toStringTag,{value:"Module"})}));
2
2
  //# sourceMappingURL=popup.amd.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"popup.amd.js","sources":["../../src/components/popup/confirm/confirm.vue","../../src/components/popup/prompt/prompt.vue","../../src/components/popup/popup.ts"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport type { PopupEvent } from '@/components/popup/popup/types';\nimport type { Emits, Props } from './types';\nimport TopButton from '@/components/forms/button/button.vue';\nimport TopPopup from '@/components/popup/popup/popup.vue';\n\nconst props = defineProps<Props>();\n\nconst emit = defineEmits<Emits>();\n\nconst isSubmit = ref(false);\n\nconst onSubmit = () => {\n\tisSubmit.value = true;\n\n\temit('submit');\n};\n\nconst onClose = (popupEvent: PopupEvent) => {\n\tif (isSubmit.value) {\n\t\tisSubmit.value = false;\n\n\t\treturn;\n\t}\n\n\temit('close', popupEvent);\n};\n\nconst $propsPopup = { ...props, submitText: undefined, cancelText: undefined, isWarning: undefined };\ndelete $propsPopup.submitText;\ndelete $propsPopup.cancelText;\ndelete $propsPopup.isWarning;\n</script>\n\n<template>\n\t<TopPopup\n\t\tclass=\"top-popupConfirm\"\n\t\t:=$propsPopup\n\t\t@open=\"$emit('open', $event)\"\n\t\t@close=\"onClose($event)\"\n\t\t@scrollContentList=\"(...args) => $emit('scrollContentList', ...args)\"\n\t>\n\t\t<template #opener>\n\t\t\t<!-- @slot Элемент для открытия TopPopup -->\n\t\t\t<slot name=\"opener\"></slot>\n\t\t</template>\n\n\t\t<template #header v-if=\"$slots.header\">\n\t\t\t<!-- @slot Шапка -->\n\t\t\t<slot name=\"header\"></slot>\n\t\t</template>\n\n\t\t<template #content v-if=\"$slots.default\">\n\t\t\t<!-- @slot Контент в свободной форме -->\n\t\t\t<slot></slot>\n\t\t</template>\n\n\t\t<template #footer>\n\t\t\t<!-- @slot Футер -->\n\t\t\t<slot name=\"footer\"></slot>\n\n\t\t\t<TopButton color=\"theme\">\n\t\t\t\t{{ cancelText || $i18n.Common.Cancel }}\n\t\t\t</TopButton>\n\n\t\t\t<TopButton\n\t\t\t\t@click=\"onSubmit\"\n\t\t\t\t:color=\"isWarning ? 'red' : 'blue'\"\n\t\t\t>\n\t\t\t\t{{ submitText || $i18n.Common.Continue }}\n\t\t\t</TopButton>\n\t\t</template>\n\t</TopPopup>\n</template>\n","<script setup lang=\"ts\">\nimport { ref, watch } from 'vue';\nimport type { PopupEvent } from '@/components/popup/popup/types';\nimport type { Emits, Props } from './types';\nimport TopButton from '@/components/forms/button/button.vue';\nimport TopPopup from '@/components/popup/popup/popup.vue';\nimport TopPopupWidgetInput from '@/components/popup/popup/widgetInput.vue';\n\nconst props = defineProps<Props>();\n\nconst emit = defineEmits<Emits>();\n\nconst reset = () => localValue.value = props.defaultValue ?? '';\n\nconst isSubmit = ref(false);\n\nconst localValue = ref();\nwatch(() => props.defaultValue, () => reset(), { immediate: true });\n\nconst onSubmit = () => {\n\tisSubmit.value = true;\n};\n\nconst onClose = (popupEvent: PopupEvent) => {\n\tif (isSubmit.value) {\n\t\tisSubmit.value = false;\n\n\t\temit('submit', localValue.value);\n\n\t\treset();\n\n\t\treturn;\n\t}\n\n\treset();\n\n\temit('close', popupEvent);\n};\n\nconst $propsPopup = { ...props, submitText: undefined, cancelText: undefined, defaultValue: undefined };\ndelete $propsPopup.submitText;\ndelete $propsPopup.cancelText;\ndelete $propsPopup.defaultValue;\n</script>\n\n<template>\n\t<TopPopup\n\t\tclass=\"top-popupPrompt\"\n\t\t:=$propsPopup\n\t\t@open=\"$emit('open', $event)\"\n\t\t@close=\"onClose($event)\"\n\t\t@scrollContentList=\"(...args) => $emit('scrollContentList', ...args)\"\n\t>\n\t\t<template #opener>\n\t\t\t<!-- @slot Элемент для открытия TopPopup -->\n\t\t\t<slot name=\"opener\"></slot>\n\t\t</template>\n\n\t\t<template #header v-if=\"$slots.header\">\n\t\t\t<!-- @slot Шапка -->\n\t\t\t<slot name=\"header\"></slot>\n\t\t</template>\n\n\t\t<template #content v-if=\"$slots.default\">\n\t\t\t<!-- @slot Контент в свободной форме -->\n\t\t\t<slot></slot>\n\n\t\t\t<TopPopupWidgetInput v-model.trim=\"localValue\"/>\n\t\t</template>\n\n\t\t<template #footer>\n\t\t\t<!-- @slot Футер -->\n\t\t\t<slot name=\"footer\"></slot>\n\n\t\t\t<TopButton color=\"theme\">\n\t\t\t\t{{ cancelText || $i18n.Common.Cancel }}\n\t\t\t</TopButton>\n\n\t\t\t<TopButton @click=\"onSubmit\">\n\t\t\t\t{{ submitText || $i18n.Common.OK }}\n\t\t\t</TopButton>\n\t\t</template>\n\t</TopPopup>\n</template>\n","import type { ComponentCustomProps } from 'vue';\n\nimport Popup from './popup/popup.vue';\nimport PopupOpener from './popup/opener.vue';\nimport PopupListItem from './popup/listItem.vue';\nimport PopupWidgetInput from './popup/widgetInput.vue';\nimport PopupAlert from './alert/alert.vue';\nimport PopupConfirm from './confirm/confirm.vue';\nimport PopupPrompt from './prompt/prompt.vue';\n\nexport const TopPopup = Popup as typeof Popup & ComponentCustomProps;\nexport const TopPopupOpener = PopupOpener as typeof PopupOpener & ComponentCustomProps;\nexport const TopPopupListItem = PopupListItem as typeof PopupListItem & ComponentCustomProps;\nexport const TopPopupWidgetInput = PopupWidgetInput as typeof PopupWidgetInput & ComponentCustomProps;\nexport const TopPopupAlert = PopupAlert as typeof PopupAlert & ComponentCustomProps;\nexport const TopPopupConfirm = PopupConfirm as typeof PopupConfirm & ComponentCustomProps;\nexport const TopPopupPrompt = PopupPrompt as typeof PopupPrompt & ComponentCustomProps;\n"],"names":["isSubmit","vue","onClose","popupEvent","emit","$propsPopup","props","reset","localValue","TopPopup","listItem_vue_vue_type_script_setup_true_lang","TopPopupOpener","TopPopupListItem","TopPopupWidgetInput","_sfc_main$3","TopPopupAlert","_sfc_main$2","TopPopupConfirm","_sfc_main$1","TopPopupPrompt","_sfc_main"],"mappings":"wpEAWAA,EAAAC,EAAA,IAAA,EAAA,SAGCD,EAAA,MAAA,gBAKDE,EAAAC,GAAA,CACC,GAAAH,EAAA,MAAA,CACCA,EAAA,MAAA,SAEA,CAGDI,EAAA,QAAAD,CAAA,GAGDE,EAAA,CAAA,GAAAC,EAAA,WAAA,OAAA,WAAA,OAAA,UAAA,MAAA,wwCCjBAC,EAAA,IAAAC,EAAA,MAAAF,EAAA,cAAA,GAEAN,EAAAC,EAAA,IAAA,EAAA,EAEAO,EAAAP,EAAA,IAAA,EACAA,EAAA,MAAA,IAAAK,EAAA,aAAA,IAAAC,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,eAGCP,EAAA,MAAA,IAGDE,EAAAC,GAAA,CACC,GAAAH,EAAA,MAAA,CACCA,EAAA,MAAA,GAEAI,EAAA,SAAAI,EAAA,KAAA,EAEAD,EAAA,QAEA,CAGDA,EAAA,EAEAH,EAAA,QAAAD,CAAA,GAGDE,EAAA,CAAA,GAAAC,EAAA,WAAA,OAAA,WAAA,OAAA,aAAA,MAAA,ujCC7BOG,EAAAC,EAAA,UACAC,EAAAD,EAAA,YACAE,EAAAF,EAAA,YACAG,EAAAC,EACAC,EAAAC,EACAC,EAAAC,EACAC,EAAAC"}
1
+ {"version":3,"file":"popup.amd.js","sources":["../../src/components/popup/popup/widgetInput.vue","../../src/components/popup/alert/alert.vue","../../src/components/popup/confirm/confirm.vue","../../src/components/popup/prompt/prompt.vue","../../src/components/popup/popup.ts"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { ModelRef } from 'vue';\nimport type { Props } from '@/components/forms/input/types';\nimport TopInput from '@/components/forms/input/input.vue';\n\nwithDefaults(defineProps<Props>(), {\n\taddCleaner: true,\n});\n\nconst model: ModelRef<string> = defineModel({\n\tdefault: '',\n});\n</script>\n\n<template>\n\t<TopInput\n\t\t:=\"$props\"\n\t\tmodificator=\"popupWidgetInput\"\n\t\tv-model=\"model\"\n\t/>\n</template>\n\n<style>\n.top-input-popupWidgetInput {\n\t--top-loadbar-color: var(--color-line-2);\n\n\twidth: 100%;\n}\n\n.top-input_input-popupWidgetInput {\n\tborder: none;\n\tbackground: var(--color-layer-1);\n}\n\n.top-input_input-popupWidgetInput:hover {\n\tbackground: var(--color-layer-2);\n}\n\n.top-input_input-popupWidgetInput:focus {\n\tbackground: var(--color-layer-1);\n\toutline: unset;\n}\n</style>\n","<script setup lang=\"ts\" generic=\"T extends Record<string, any> | undefined = undefined\">\nimport type { Emits, Props } from './types';\nimport TopButton from '@/components/forms/button/button.vue';\nimport TopPopup from '@/components/popup/popup/popup.vue';\n\nconst props = defineProps<Props<T>>();\n\ndefineEmits<Emits<T>>();\n\n// сужение объекта для propsPopup\nconst {\n\tsubmitText,\n\t...propsPopup\n}: Props<T> = props;\n</script>\n\n<template>\n\t<!-- @vue-generic {T} -->\n\t<TopPopup\n\t\tclass=\"top-popupAlert\"\n\t\t:=propsPopup\n\t\t@open=\"$emit('open', $event)\"\n\t\t@close=\"$emit('close', $event)\"\n\t\t@scrollContentList=\"(...args) => $emit('scrollContentList', ...args)\"\n\t>\n\t\t<template #opener>\n\t\t\t<!-- @slot Элемент для открытия Popup -->\n\t\t\t<slot name=\"opener\"></slot>\n\t\t</template>\n\n\t\t<template #header v-if=\"$slots.header\">\n\t\t\t<!-- @slot Шапка -->\n\t\t\t<slot name=\"header\"></slot>\n\t\t</template>\n\n\t\t<template #content v-if=\"$slots.default\">\n\t\t\t<!-- @slot Контент в свободной форме -->\n\t\t\t<slot></slot>\n\t\t</template>\n\n\t\t<template #footer>\n\t\t\t<!-- @slot Футер -->\n\t\t\t<slot name=\"footer\"></slot>\n\n\t\t\t<TopButton>\n\t\t\t\t{{ submitText || $i18n.Common.Close }}\n\t\t\t</TopButton>\n\t\t</template>\n\t</TopPopup>\n</template>\n","<script setup lang=\"ts\" generic=\"T extends Record<string, any> | undefined = undefined\">\nimport { ref } from 'vue';\nimport type { PopupEvent } from '@/components/popup/popup/types';\nimport type { Emits, Props } from './types';\nimport TopButton from '@/components/forms/button/button.vue';\nimport TopPopup from '@/components/popup/popup/popup.vue';\n\nconst props = defineProps<Props<T>>();\n\nconst emit = defineEmits<Emits<T>>();\n\nconst isSubmit = ref(false);\n\nconst onSubmit = () => {\n\tisSubmit.value = true;\n\n\temit('submit');\n};\n\nconst onClose = (popupEvent: PopupEvent<T>) => {\n\tif (isSubmit.value) {\n\t\tisSubmit.value = false;\n\n\t\treturn;\n\t}\n\n\temit('close', popupEvent);\n};\n\n// сужение объекта для propsPopup\nconst {\n\tsubmitText,\n\tcancelText,\n\tisWarning,\n\t...propsPopup\n}: Props<T> = props;\n</script>\n\n<template>\n\t<!-- @vue-generic {T} -->\n\t<TopPopup\n\t\tclass=\"top-popupConfirm\"\n\t\t:=propsPopup\n\t\t@open=\"$emit('open', $event)\"\n\t\t@close=\"onClose($event)\"\n\t\t@scrollContentList=\"(...args) => $emit('scrollContentList', ...args)\"\n\t>\n\t\t<template #opener>\n\t\t\t<!-- @slot Элемент для открытия TopPopup -->\n\t\t\t<slot name=\"opener\"></slot>\n\t\t</template>\n\n\t\t<template #header v-if=\"$slots.header\">\n\t\t\t<!-- @slot Шапка -->\n\t\t\t<slot name=\"header\"></slot>\n\t\t</template>\n\n\t\t<template #content v-if=\"$slots.default\">\n\t\t\t<!-- @slot Контент в свободной форме -->\n\t\t\t<slot></slot>\n\t\t</template>\n\n\t\t<template #footer>\n\t\t\t<!-- @slot Футер -->\n\t\t\t<slot name=\"footer\"></slot>\n\n\t\t\t<TopButton color=\"theme\">\n\t\t\t\t{{ cancelText || $i18n.Common.Cancel }}\n\t\t\t</TopButton>\n\n\t\t\t<TopButton\n\t\t\t\t@click=\"onSubmit\"\n\t\t\t\t:color=\"isWarning ? 'red' : 'blue'\"\n\t\t\t>\n\t\t\t\t{{ submitText || $i18n.Common.Continue }}\n\t\t\t</TopButton>\n\t\t</template>\n\t</TopPopup>\n</template>\n","<script setup lang=\"ts\" generic=\"T extends Record<string, any> | undefined = undefined\">\nimport { ref, watch } from 'vue';\nimport type { PopupEvent } from '@/components/popup/popup/types';\nimport type { Emits, Props } from './types';\nimport TopButton from '@/components/forms/button/button.vue';\nimport TopPopup from '@/components/popup/popup/popup.vue';\nimport TopPopupWidgetInput from '@/components/popup/popup/widgetInput.vue';\n\nconst props = defineProps<Props<T>>();\n\nconst emit = defineEmits<Emits<T>>();\n\nconst reset = () => localValue.value = props.defaultValue ?? '';\n\nconst isSubmit = ref(false);\n\nconst localValue = ref();\nwatch(() => props.defaultValue, () => reset(), { immediate: true });\n\nconst onSubmit = () => {\n\tisSubmit.value = true;\n};\n\nconst onClose = (popupEvent: PopupEvent<T>) => {\n\tif (isSubmit.value) {\n\t\tisSubmit.value = false;\n\n\t\temit('submit', localValue.value);\n\n\t\treset();\n\n\t\treturn;\n\t}\n\n\treset();\n\n\temit('close', popupEvent);\n};\n\n// сужение объекта для propsPopup\nconst {\n\tsubmitText,\n\tcancelText,\n\tdefaultValue,\n\t...propsPopup\n}: Props<T> = props;\n</script>\n\n<template>\n\t<!-- @vue-generic {T} -->\n\t<TopPopup\n\t\tclass=\"top-popupPrompt\"\n\t\t:=propsPopup\n\t\t@open=\"$emit('open', $event)\"\n\t\t@close=\"onClose($event)\"\n\t\t@scrollContentList=\"(...args) => $emit('scrollContentList', ...args)\"\n\t>\n\t\t<template #opener>\n\t\t\t<!-- @slot Элемент для открытия TopPopup -->\n\t\t\t<slot name=\"opener\"></slot>\n\t\t</template>\n\n\t\t<template #header v-if=\"$slots.header\">\n\t\t\t<!-- @slot Шапка -->\n\t\t\t<slot name=\"header\"></slot>\n\t\t</template>\n\n\t\t<template #content v-if=\"$slots.default\">\n\t\t\t<!-- @slot Контент в свободной форме -->\n\t\t\t<slot></slot>\n\n\t\t\t<TopPopupWidgetInput v-model.trim=\"localValue\"/>\n\t\t</template>\n\n\t\t<template #footer>\n\t\t\t<!-- @slot Футер -->\n\t\t\t<slot name=\"footer\"></slot>\n\n\t\t\t<TopButton color=\"theme\">\n\t\t\t\t{{ cancelText || $i18n.Common.Cancel }}\n\t\t\t</TopButton>\n\n\t\t\t<TopButton @click=\"onSubmit\">\n\t\t\t\t{{ submitText || $i18n.Common.OK }}\n\t\t\t</TopButton>\n\t\t</template>\n\t</TopPopup>\n</template>\n","import type { ComponentCustomProps } from 'vue';\n\nimport Popup from './popup/popup.vue';\nimport PopupOpener from './popup/opener.vue';\nimport PopupListItem from './popup/listItem.vue';\nimport PopupWidgetInput from './popup/widgetInput.vue';\nimport PopupAlert from './alert/alert.vue';\nimport PopupConfirm from './confirm/confirm.vue';\nimport PopupPrompt from './prompt/prompt.vue';\n\nexport const TopPopup = Popup as typeof Popup & ComponentCustomProps;\nexport const TopPopupOpener = PopupOpener as typeof PopupOpener & ComponentCustomProps;\nexport const TopPopupListItem = PopupListItem as typeof PopupListItem & ComponentCustomProps;\nexport const TopPopupWidgetInput = PopupWidgetInput as typeof PopupWidgetInput & ComponentCustomProps;\nexport const TopPopupAlert = PopupAlert as typeof PopupAlert & ComponentCustomProps;\nexport const TopPopupConfirm = PopupConfirm as typeof PopupConfirm & ComponentCustomProps;\nexport const TopPopupPrompt = PopupPrompt as typeof PopupPrompt & ComponentCustomProps;\n"],"names":["model","_cache","$event","submitText","propsPopup","props","vue","listItem_vue_vue_type_script_setup_true_lang","_ctx","forms","isSubmit","onClose","popupEvent","emit","cancelText","isWarning","reset","localValue","defaultValue","TopPopup","TopPopupOpener","TopPopupListItem","TopPopupWidgetInput","_sfc_main$3","TopPopupAlert","_sfc_main$2","TopPopupConfirm","_sfc_main$1","TopPopupPrompt","_sfc_main"],"mappings":"qwBAiBc,WAAAA,EAAA,MACH,sBAAAC,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GAAAF,EAAA,MAAAE,2RCRX,CAAM,WAAAC,EACL,GAAAC,CACG,EAAAC,gBAMHC,EAAA,UAAA,EAAAA,EAAA,YAAAC,EAAA,UAAAD,EAAA,WAAA,CAAA,MAAA,gBAAA,EAAAF,EAAA,uMAS6BE,EAAA,WAAAE,EAAA,OAAA,QAAA,CAAA,CAAA,wBAeAF,EAAA,WAAAE,EAAA,OAAA,QAAA,EAAAF,EAAA,YAAAG,EAAA,UAAA,KAAA,CAIf,QAAAH,EAAA,QAAA,IAAA,CAD2BA,EAAA,gBAAAA,EAAA,gBAAAA,EAAA,MAAAH,CAAA,GAAAK,EAAA,MAAA,OAAA,KAAA,EAAA,CAAA,CAAH,CAAA,+CAf1B,GAAAF,EAAA,QAAA,IAAA,CAEiBA,EAAA,WAAAE,EAAA,OAAA,QAAA,CAAA,CAAA,mDAGjB,GAAAF,EAAA,QAAA,IAAA,CAEGA,EAAA,WAAAE,EAAA,OAAA,SAAA,CAAA,CAAA,uVC1BhBE,EAAAJ,EAAA,IAAA,EAAA,SAGCI,EAAA,MAAA,cAEa,EAGdC,EAAAC,GAAA,CACC,GAAAF,EAAA,MAAA,CACCA,EAAA,MAAA,UAKDG,EAAA,QAAAD,CAAA,CAAwB,EAIzB,CAAM,WAAAT,EACL,WAAAW,EACA,UAAAC,EACA,GAAAX,CACG,EAAAC,gBAMHC,EAAA,UAAA,EAAAA,EAAA,YAAAC,EAAA,UAAAD,EAAA,WAAA,CAAA,MAAA,kBAAA,EAAAF,EAAA,0CAG4B,QAAAH,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GAAAS,EAAAT,CAAA,qHAMCI,EAAA,WAAAE,EAAA,OAAA,QAAA,CAAA,CAAA,wBAeAF,EAAA,WAAAE,EAAA,OAAA,QAAA,6CAEH,QAAAF,EAAA,QAAA,IAAA,CACgBA,EAAA,gBAAAA,EAAA,gBAAAA,EAAA,MAAAQ,CAAA,GAAAN,EAAA,MAAA,OAAA,MAAA,EAAA,CAAA,CAAH,CAAA,0EAKnB,EAAA,wBAEwBF,EAAA,gBAAAA,EAAA,gBAAAA,EAAA,MAAAH,CAAA,GAAAK,EAAA,MAAA,OAAA,QAAA,EAAA,CAAA,CAAH,CAAA,2DAtB7B,GAAAF,EAAA,QAAA,IAAA,CAEiBA,EAAA,WAAAE,EAAA,OAAA,QAAA,CAAA,CAAA,mDAGjB,GAAAF,EAAA,QAAA,IAAA,CAEGA,EAAA,WAAAE,EAAA,OAAA,SAAA,CAAA,CAAA,6UC/ChBQ,EAAA,IAAAC,EAAA,MAAAZ,EAAA,cAAA,GAEAK,EAAAJ,EAAA,IAAA,EAAA,EAEAW,EAAAX,EAAA,IAAA,EACAA,EAAA,MAAA,IAAAD,EAAA,aAAA,IAAAW,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,eAGCN,EAAA,MAAA,EAAiB,EAGlBC,EAAAC,GAAA,CACC,GAAAF,EAAA,MAAA,CACCA,EAAA,MAAA,GAEAG,EAAA,SAAAI,EAAA,KAAA,EAEAD,EAAA,SAKDA,EAAA,EAEAH,EAAA,QAAAD,CAAA,CAAwB,EAIzB,CAAM,WAAAT,EACL,WAAAW,EACA,aAAAI,EACA,GAAAd,CACG,EAAAC,gBAMHC,EAAA,UAAA,EAAAA,EAAA,YAAAC,EAAA,UAAAD,EAAA,WAAA,CAAA,MAAA,iBAAA,EAAAF,EAAA,0CAG4B,QAAAH,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GAAAS,EAAAT,CAAA,qHAMCI,EAAA,WAAAE,EAAA,OAAA,QAAA,CAAA,CAAA,wBAiBAF,EAAA,WAAAE,EAAA,OAAA,QAAA,6CAEH,QAAAF,EAAA,QAAA,IAAA,CACgBA,EAAA,gBAAAA,EAAA,gBAAAA,EAAA,MAAAQ,CAAA,GAAAN,EAAA,MAAA,OAAA,MAAA,EAAA,CAAA,CAAH,CAAA,+CAGV,QAAAF,EAAA,QAAA,IAAA,CACSA,EAAA,gBAAAA,EAAA,gBAAAA,EAAA,MAAAH,CAAA,GAAAK,EAAA,MAAA,OAAA,EAAA,EAAA,CAAA,CAAH,CAAA,+CArBvB,GAAAF,EAAA,QAAA,IAAA,CAEiBA,EAAA,WAAAE,EAAA,OAAA,QAAA,CAAA,CAAA,mDAGjB,GAAAF,EAAA,QAAA,IAAA,CAEGA,EAAA,WAAAE,EAAA,OAAA,SAAA,mBAEmC,WAAAS,EAAA,sDAAH,eAAA,CAAA,KAAA,EAAA,CAAxB,EAAA,KAAA,EAAA,CAAA,YAAA,CAAA,gCC7DjBE,EAAAZ,EAAA,UACAa,EAAAb,EAAA,YACAc,EAAAd,EAAA,YACAe,EAAAC,EACAC,EAAAC,EACAC,EAAAC,EACAC,EAAAC"}