@topvisor/ui 0.0.35 → 0.0.36

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 (266) hide show
  1. package/{src/components/forms/inputDate/datepicker.css → .chunks/datepicker-1e725859.amd.js} +3 -2
  2. package/.chunks/datepicker-1e725859.amd.js.map +1 -0
  3. package/.chunks/datepicker-ad465c48.es.js +275 -0
  4. package/.chunks/datepicker-ad465c48.es.js.map +1 -0
  5. package/.chunks/forms-2891e074.amd.js +3 -0
  6. package/.chunks/forms-2891e074.amd.js.map +1 -0
  7. package/.chunks/forms-db4cb24d.es.js +946 -0
  8. package/.chunks/forms-db4cb24d.es.js.map +1 -0
  9. package/.chunks/popup-0f540839.es.js +700 -0
  10. package/.chunks/popup-0f540839.es.js.map +1 -0
  11. package/.chunks/popup-e49a9bab.amd.js +341 -0
  12. package/.chunks/popup-e49a9bab.amd.js.map +1 -0
  13. package/README.md +63 -30
  14. package/common/common.amd.js +2 -0
  15. package/common/common.amd.js.map +1 -0
  16. package/common/common.js +2 -0
  17. package/common/common.js.map +1 -0
  18. package/core/core.amd.js +2 -0
  19. package/core/core.amd.js.map +1 -0
  20. package/core/core.js +6 -0
  21. package/core/core.js.map +1 -0
  22. package/core.css +1 -0
  23. package/dark.css +1 -0
  24. package/forms/forms.amd.js +2 -0
  25. package/forms/forms.amd.js.map +1 -0
  26. package/forms/forms.js +15 -0
  27. package/forms/forms.js.map +1 -0
  28. package/forms/helpers.amd.js +2 -0
  29. package/forms/helpers.amd.js.map +1 -0
  30. package/forms/helpers.js +9 -0
  31. package/forms/helpers.js.map +1 -0
  32. package/forms.css +1 -0
  33. package/formsExt/formsExt.amd.js +3 -0
  34. package/formsExt/formsExt.amd.js.map +1 -0
  35. package/formsExt/formsExt.js +207 -0
  36. package/formsExt/formsExt.js.map +1 -0
  37. package/formsExt.css +1 -0
  38. package/light.css +1 -0
  39. package/package.json +1 -50
  40. package/popup/popup.amd.js +3 -0
  41. package/popup/popup.amd.js.map +1 -0
  42. package/popup/popup.js +144 -0
  43. package/popup/popup.js.map +1 -0
  44. package/popup/worker.amd.js +2 -0
  45. package/popup/worker.amd.js.map +1 -0
  46. package/popup/worker.js +154 -0
  47. package/popup/worker.js.map +1 -0
  48. package/popup.css +1 -0
  49. package/tabs/tabs.amd.js +3 -0
  50. package/tabs/tabs.amd.js.map +1 -0
  51. package/tabs/tabs.js +97 -0
  52. package/tabs/tabs.js.map +1 -0
  53. package/tabs.css +1 -0
  54. package/utils/date.amd.js +2 -0
  55. package/utils/date.amd.js.map +1 -0
  56. package/utils/date.js +6 -0
  57. package/utils/date.js.map +1 -0
  58. package/utils/device.amd.js +2 -0
  59. package/utils/device.amd.js.map +1 -0
  60. package/utils/device.js +6 -0
  61. package/utils/device.js.map +1 -0
  62. package/utils/dom.amd.js +2 -0
  63. package/utils/dom.amd.js.map +1 -0
  64. package/utils/dom.js +64 -0
  65. package/utils/dom.js.map +1 -0
  66. package/.storybook/TopTheme.js +0 -82
  67. package/.storybook/TopThemeManager.js +0 -44
  68. package/.storybook/main.ts +0 -43
  69. package/.storybook/manager.ts +0 -28
  70. package/.storybook/preview-head.html +0 -16
  71. package/.storybook/preview.ts +0 -48
  72. package/.storybook/vue/coreDecorator.ts +0 -19
  73. package/.storybook/vue/vModelDecorator.ts +0 -27
  74. package/.vscode/extensions.json +0 -11
  75. package/.vscode/keybindings.example.json +0 -121
  76. package/.vscode/settings.json +0 -46
  77. package/Dockerfile +0 -3
  78. package/NPM.md +0 -25
  79. package/PUBLISH.md +0 -18
  80. package/STORYBOOK.md +0 -27
  81. package/USE_IN_PROJECT.md +0 -29
  82. package/build/afterBuild.sh +0 -12
  83. package/build/cssModules.ts +0 -39
  84. package/build/plugin/amdFix.ts +0 -46
  85. package/build/rollup.config.ts +0 -18
  86. package/nbproject/project.properties +0 -11
  87. package/nbproject/project.xml +0 -9
  88. package/public/README.md +0 -63
  89. package/src/components/common/common.ts +0 -1
  90. package/src/components/common/icon/icon.ts +0 -4
  91. package/src/components/common/icon/icon.vue +0 -15
  92. package/src/components/component.ts +0 -133
  93. package/src/components/forms/button/button.stories.ts +0 -112
  94. package/src/components/forms/button/button.ts +0 -51
  95. package/src/components/forms/button/button.vue +0 -75
  96. package/src/components/forms/button/stories/README.md +0 -35
  97. package/src/components/forms/button/stories/overview.vue +0 -33
  98. package/src/components/forms/button/style/button.css +0 -124
  99. package/src/components/forms/button/style/style-outline.css +0 -42
  100. package/src/components/forms/button/style/style-soft.css +0 -31
  101. package/src/components/forms/button/style/style-transparent.css +0 -35
  102. package/src/components/forms/checkbox/checkbox.stories.ts +0 -33
  103. package/src/components/forms/checkbox/checkbox.ts +0 -23
  104. package/src/components/forms/checkbox/checkbox.vue +0 -135
  105. package/src/components/forms/checkbox/stories/overview.vue +0 -171
  106. package/src/components/forms/controlLabel/controlLabel.stories.ts +0 -38
  107. package/src/components/forms/controlLabel/controlLabel.ts +0 -4
  108. package/src/components/forms/controlLabel/controlLabel.vue +0 -48
  109. package/src/components/forms/forms.ts +0 -10
  110. package/src/components/forms/helpers.ts +0 -10
  111. package/src/components/forms/hint/hint.stories.ts +0 -46
  112. package/src/components/forms/hint/hint.ts +0 -8
  113. package/src/components/forms/hint/hint.vue +0 -32
  114. package/src/components/forms/input/input.stories.ts +0 -31
  115. package/src/components/forms/input/input.ts +0 -34
  116. package/src/components/forms/input/input.vue +0 -170
  117. package/src/components/forms/input/stories/overview.vue +0 -61
  118. package/src/components/forms/inputDate/datepicker.ts +0 -101
  119. package/src/components/forms/inputDate/inputDate.stories.ts +0 -41
  120. package/src/components/forms/inputDate/inputDate.ts +0 -4
  121. package/src/components/forms/inputDate/inputDate.vue +0 -127
  122. package/src/components/forms/inputDate/stories/overview.vue +0 -35
  123. package/src/components/forms/radio/radio.stories.ts +0 -34
  124. package/src/components/forms/radio/radio.ts +0 -15
  125. package/src/components/forms/radio/radio.vue +0 -107
  126. package/src/components/forms/radio/stories/overview.vue +0 -79
  127. package/src/components/forms/select/select.stories.ts +0 -34
  128. package/src/components/forms/select/select.ts +0 -36
  129. package/src/components/forms/select/select.vue +0 -253
  130. package/src/components/forms/select/stories/exampleOptions.ts +0 -71
  131. package/src/components/forms/select/stories/overview.vue +0 -60
  132. package/src/components/forms/switcher/stories/overview.vue +0 -139
  133. package/src/components/forms/switcher/switcher.stories.ts +0 -33
  134. package/src/components/forms/switcher/switcher.ts +0 -22
  135. package/src/components/forms/switcher/switcher.vue +0 -113
  136. package/src/components/forms/textarea/stories/overview.vue +0 -62
  137. package/src/components/forms/textarea/textarea.stories.ts +0 -33
  138. package/src/components/forms/textarea/textarea.ts +0 -38
  139. package/src/components/forms/textarea/textarea.vue +0 -119
  140. package/src/components/formsExt/editArea/editArea.stories.ts +0 -72
  141. package/src/components/formsExt/editArea/editArea.ts +0 -25
  142. package/src/components/formsExt/editArea/editArea.vue +0 -172
  143. package/src/components/formsExt/editArea/stories/README.md +0 -17
  144. package/src/components/formsExt/editArea/stories/overview.vue +0 -66
  145. package/src/components/formsExt/editInput/editInput.stories.ts +0 -36
  146. package/src/components/formsExt/editInput/editInput.ts +0 -20
  147. package/src/components/formsExt/editInput/editInput.vue +0 -57
  148. package/src/components/formsExt/editInput/stories/overview.vue +0 -54
  149. package/src/components/formsExt/formsExt.ts +0 -3
  150. package/src/components/formsExt/radioGroup/radioGroup.stories.ts +0 -51
  151. package/src/components/formsExt/radioGroup/radioGroup.ts +0 -28
  152. package/src/components/formsExt/radioGroup/radioGroup.vue +0 -143
  153. package/src/components/formsExt/radioGroup/stories/overview.vue +0 -78
  154. package/src/components/formsExt/radioGroup/styles/top-scrollBar.css +0 -52
  155. package/src/components/helper.js +0 -10
  156. package/src/components/helpersStories.ts +0 -151
  157. package/src/components/popup/lib/popup.globalEvents.js +0 -205
  158. package/src/components/popup/lib/popup.js +0 -702
  159. package/src/components/popup/lib/worker.globalEvents.js +0 -78
  160. package/src/components/popup/lib/worker.js +0 -232
  161. package/src/components/popup/popup/listItem.vue +0 -42
  162. package/src/components/popup/popup/opener.vue +0 -74
  163. package/src/components/popup/popup/popup.stories.ts +0 -68
  164. package/src/components/popup/popup/popup.ts +0 -93
  165. package/src/components/popup/popup/popup.vue +0 -95
  166. package/src/components/popup/popup/stories/README.md +0 -34
  167. package/src/components/popup/popup/stories/listItems.vue +0 -44
  168. package/src/components/popup/popup/stories/listSubItems.vue +0 -52
  169. package/src/components/popup/popup/stories/overview.vue +0 -208
  170. package/src/components/popup/popup/style/popup.css +0 -243
  171. package/src/components/popup/popup/style/popup.m.css +0 -71
  172. package/src/components/popup/popup/style/popup.pc.css +0 -28
  173. package/src/components/popup/popup.ts +0 -3
  174. package/src/components/popup/worker.ts +0 -1
  175. package/src/components/tabs/tabs/content.vue +0 -24
  176. package/src/components/tabs/tabs/stories/README.md +0 -10
  177. package/src/components/tabs/tabs/tab.vue +0 -52
  178. package/src/components/tabs/tabs/tabs.stories.ts +0 -171
  179. package/src/components/tabs/tabs/tabs.ts +0 -22
  180. package/src/components/tabs/tabs/tabs.vue +0 -64
  181. package/src/components/tabs/tabs.ts +0 -3
  182. package/src/core/base/Colors.stories.ts +0 -15
  183. package/src/core/base/Layout.stories.ts +0 -15
  184. package/src/core/base/Properties.stories.ts +0 -15
  185. package/src/core/base/base.mdx +0 -21
  186. package/src/core/core/core.ts +0 -144
  187. package/src/core/core/events.ts +0 -54
  188. package/src/core/core/options.ts +0 -15
  189. package/src/core/core/state.ts +0 -44
  190. package/src/core/directives/tooltip.ts +0 -55
  191. package/src/core/theme/Colors.stories.ts +0 -15
  192. package/src/core/theme/Properties.stories.ts +0 -15
  193. package/src/core/theme/theme.mdx +0 -15
  194. package/src/core/utils/date.ts +0 -164
  195. package/src/core/utils/device.ts +0 -48
  196. package/src/core/utils/dom.ts +0 -185
  197. package/src/core//320/235/320/260/320/261/320/276/321/200 /320/270/320/272/320/276/320/275/320/276/320/272/gallery.vue" +0 -72
  198. package/src/core//320/235/320/260/320/261/320/276/321/200 /320/270/320/272/320/276/320/275/320/276/320/272//320/235/320/260/320/261/320/276/321/200 /320/270/320/272/320/276/320/275/320/276/320/272.mdx" +0 -31
  199. package/src/core//320/235/320/260/320/261/320/276/321/200 /320/270/320/272/320/276/320/275/320/276/320/272//320/235/320/260/320/261/320/276/321/200 /320/270/320/272/320/276/320/275/320/276/320/272.stories.ts" +0 -14
  200. package/src/docs/CSS/FAQ.mdx +0 -43
  201. package/src/docs/CSS//320/236/320/261/321/211/320/270/320/265 /320/274/320/276/320/264/320/270/321/204/320/270/320/272/320/260/321/202/320/276/321/200/321/213.mdx" +0 -156
  202. package/src/docs/CSS//320/237/320/265/321/200/320/265/320/274/320/265/320/275/320/275/321/213/320/265.mdx +0 -47
  203. package/src/docs/CSS//320/237/321/200/320/265/320/264/320/277/321/200/320/276/321/206/320/265/321/201/321/201/320/276/321/200/321/213.mdx +0 -15
  204. package/src/docs/CSS//320/240/320/265/320/272/320/276/320/274/320/265/320/275/320/264/320/260/321/206/320/270/320/270 /320/221/320/255/320/234.mdx" +0 -49
  205. package/src/docs/CSS//320/241/321/202/320/270/320/273/320/270.md +0 -53
  206. package/src/docs/CSS//320/241/321/202/320/270/320/273/320/270.mdx +0 -4
  207. package/src/docs/CSS//320/247/321/202/320/276 /321/202/320/260/320/272/320/276/320/265 css /320/274/320/276/320/264/321/203/320/273/321/214.mdx" +0 -53
  208. package/src/docs/ROADMAP.md +0 -17
  209. package/src/docs/Roadmap.mdx +0 -4
  210. package/src/docs//320/222/320/262/320/265/320/264/320/265/320/275/320/270/320/265 /320/262 Storybook.mdx" +0 -323
  211. package/src/docs//320/232/320/276/320/274/320/277/320/276/320/275/320/265/320/275/321/202/321/213.mdx +0 -20
  212. package/src/docs//320/237/320/276/320/273/320/265/320/267/320/275/320/260/321/217 /320/270/320/275/321/204/320/276/321/200/320/274/320/260/321/206/320/270/321/217.mdx" +0 -8
  213. package/src/docs//320/241/321/202/320/260/320/275/320/264/320/260/321/200/321/202/321/213 /320/272/320/276/320/264/320/260/IDE.mdx" +0 -42
  214. package/src/docs//320/241/321/202/320/260/320/275/320/264/320/260/321/200/321/202/321/213 /320/272/320/276/320/264/320/260//320/233/320/270/320/275/321/202/320/265/321/200.mdx" +0 -72
  215. package/src/docs//320/241/321/202/320/260/320/275/320/264/320/260/321/200/321/202/321/213 /320/272/320/276/320/264/320/260//320/241/321/202/320/260/320/275/320/264/320/260/321/200/321/202/321/213 /320/272/320/276/320/264/320/260.mdx" +0 -29
  216. package/src/globals.d.ts +0 -1
  217. package/src/resources/styles/core/colors.css +0 -204
  218. package/src/resources/styles/core/components.css +0 -70
  219. package/src/resources/styles/core/core.ts +0 -10
  220. package/src/resources/styles/core/forms/clear.css +0 -19
  221. package/src/resources/styles/core/forms/controls.css +0 -20
  222. package/src/resources/styles/core/forms/focusable.css +0 -26
  223. package/src/resources/styles/core/forms/forms.css +0 -100
  224. package/src/resources/styles/core/icon.css +0 -58
  225. package/src/resources/styles/core/layout.css +0 -40
  226. package/src/resources/styles/core/modifiers/as.css +0 -9
  227. package/src/resources/styles/core/modifiers/ellipsis.css +0 -18
  228. package/src/resources/styles/core/modifiers/modifiers.css +0 -81
  229. package/src/resources/styles/core/modifiers/only.css +0 -19
  230. package/src/resources/styles/core/select.css +0 -16
  231. package/src/resources/styles/jquery-ui.min.css +0 -6
  232. package/src/resources/styles/storybook.css +0 -11
  233. package/src/resources/styles/themes/dark/theme.css +0 -139
  234. package/src/resources/styles/themes/dark.ts +0 -1
  235. package/src/resources/styles/themes/light/theme.css +0 -139
  236. package/src/resources/styles/themes/light.ts +0 -1
  237. package/src/storybook/components/color.vue +0 -45
  238. package/src/storybook/components/colors.vue +0 -34
  239. package/src/storybook/components/icomoon.ts +0 -38
  240. package/src/storybook/components/properties.vue +0 -82
  241. package/src/storybook/resources/accessibility.png +0 -0
  242. package/src/storybook/resources/accessibility.svg +0 -5
  243. package/src/storybook/resources/addon-library.png +0 -0
  244. package/src/storybook/resources/assets.png +0 -0
  245. package/src/storybook/resources/context.png +0 -0
  246. package/src/storybook/resources/discord.svg +0 -15
  247. package/src/storybook/resources/docs.png +0 -0
  248. package/src/storybook/resources/figma-plugin.png +0 -0
  249. package/src/storybook/resources/github.svg +0 -3
  250. package/src/storybook/resources/share.png +0 -0
  251. package/src/storybook/resources/styling.png +0 -0
  252. package/src/storybook/resources/testing.png +0 -0
  253. package/src/storybook/resources/theming.png +0 -0
  254. package/src/storybook/resources/tutorials.svg +0 -12
  255. package/src/storybook/resources/youtube.svg +0 -4
  256. package/src//320/224/320/276/320/261/321/200/320/276 /320/277/320/276/320/266/320/260/320/273/320/276/320/262/320/260/321/202/321/214.mdx" +0 -3
  257. package/tsconfig.json +0 -62
  258. package/vite.config.ts +0 -91
  259. /package/{src/resources/icomoon → icomoon}/demo-files/demo.css +0 -0
  260. /package/{src/resources/icomoon → icomoon}/demo-files/demo.js +0 -0
  261. /package/{src/resources/icomoon → icomoon}/demo.html +0 -0
  262. /package/{src/resources/icomoon → icomoon}/fonts/Topvisor-2.svg +0 -0
  263. /package/{src/resources/icomoon → icomoon}/fonts/Topvisor-2.ttf +0 -0
  264. /package/{src/resources/icomoon → icomoon}/fonts/Topvisor-2.woff +0 -0
  265. /package/{src/resources/icomoon → icomoon}/selection.json +0 -0
  266. /package/{src/resources/icomoon → icomoon}/style.css +0 -0
@@ -0,0 +1,946 @@
1
+ import { reactive as P, defineComponent as v, computed as b, openBlock as u, createBlock as k, resolveDynamicComponent as q, normalizeClass as h, withCtx as S, renderSlot as M, createTextVNode as X, toDisplayString as w, createElementBlock as m, createElementVNode as g, createCommentVNode as f, withDirectives as $, vModelCheckbox as K, mergeProps as L, withKeys as J, withModifiers as U, vModelText as Q, ref as Z, unref as V, onUnmounted as x, vModelRadio as ee, useCssVars as te, resolveDirective as oe, watch as ae, toRef as se, Fragment as D, renderList as N, vModelSelect as ie } from "vue";
2
+ class T {
3
+ static isRetina() {
4
+ return "devicePixelRatio" in window && window.devicePixelRatio > 1;
5
+ }
6
+ // определить, является ли устройство мобильным
7
+ static isMobile() {
8
+ return !!navigator.userAgent.match(/Android|BlackBerry|iPhone|iPad|iPod|IEMobile|Opera Mini/i);
9
+ }
10
+ // определить, открыт ли сайт в приложении
11
+ static isApp() {
12
+ return navigator.userAgent.indexOf("Topvisor_App") != -1;
13
+ }
14
+ // определить, является ли OS пользователя macOS
15
+ static isMacOS() {
16
+ return navigator.userAgent.indexOf("Mac OS X") !== -1;
17
+ }
18
+ // определить, является ли текущий браузер пользователя Safari
19
+ static isSafari() {
20
+ const t = /Chrome|Android/.test(navigator.userAgent);
21
+ let a = /Safari/.test(navigator.userAgent);
22
+ return t && a && (a = !1), a;
23
+ }
24
+ /**
25
+ * Вернуть текст для обозначения клавиши Ctrl / Command в зависимости от OS
26
+ * @returns {'Ctrl'|'⌘'}
27
+ */
28
+ static getCommandKeyLabel() {
29
+ return this.isMacOS() ? "⌘" : "Ctrl";
30
+ }
31
+ }
32
+ const ne = 100;
33
+ let H;
34
+ const R = /* @__PURE__ */ new Map(), z = {
35
+ width: window.innerWidth,
36
+ height: window.innerHeight
37
+ };
38
+ function le(n) {
39
+ R.set(n, n);
40
+ }
41
+ function re(n) {
42
+ R.delete(n);
43
+ }
44
+ function de(n) {
45
+ clearTimeout(H), H = setTimeout(function() {
46
+ n.topEvent = {
47
+ widthDiff: z.width - window.innerWidth,
48
+ hightDiff: z.height - window.innerHeight
49
+ }, z.width = window.innerWidth, z.height = window.innerHeight, R.forEach((t) => t(n));
50
+ }, ne);
51
+ }
52
+ window.addEventListener("resize", de);
53
+ const pe = {
54
+ addOnReize: le,
55
+ removeOnResize: re
56
+ };
57
+ var Y;
58
+ const ue = {
59
+ widthForMobile: 900,
60
+ dateFormat: "Y-m-d",
61
+ /**
62
+ * Для Москвы: +0300
63
+ */
64
+ gmt: (Y = (/* @__PURE__ */ new Date()).toString().match(/GMT(\S+)/)) == null ? void 0 : Y[1]
65
+ };
66
+ var G;
67
+ const ce = {
68
+ /**
69
+ * Device by size
70
+ * @see widthForMobile
71
+ */
72
+ isMobile: !1,
73
+ /**
74
+ * Device by user agent
75
+ */
76
+ isMobileUA: !1,
77
+ /**
78
+ * true, если плотность пикселей экрана больше 1
79
+ */
80
+ isRetina: !1,
81
+ /**
82
+ * true, елси это приложение
83
+ */
84
+ isApp: !1,
85
+ /**
86
+ * true при горизонтальном расположении устройства
87
+ */
88
+ isLandscape: !0,
89
+ /**
90
+ * true при вертикальном расположении устройства
91
+ */
92
+ isPortrait: !1,
93
+ size: 0,
94
+ // См. core.options
95
+ dateFormat: "Y-m-d",
96
+ // См. core.options
97
+ gmt: (G = (/* @__PURE__ */ new Date()).toString().match(/GMT(\S+)/)) == null ? void 0 : G[1]
98
+ }, E = window, C = (n) => {
99
+ var t, a;
100
+ if (!((a = (t = E == null ? void 0 : E.jQuery) == null ? void 0 : t.ui) != null && a.tooltip)) {
101
+ console.info("Для работы v-top-tooltip требуется глобальная загрузка jQuery UI Tooltip");
102
+ return;
103
+ }
104
+ return E.jQuery(n);
105
+ }, I = (n, t) => {
106
+ var o;
107
+ const a = n.value ?? {};
108
+ return a.content ??= (o = t.props) == null ? void 0 : o.title, a.content = String(a.content).replace(/\r\n|\r|\n/g, "<br>"), a.position ??= {
109
+ my: "bottom-18px",
110
+ at: "top center"
111
+ }, a;
112
+ }, me = {
113
+ mounted(n, t, a) {
114
+ var o;
115
+ (o = C(n)) == null || o.tooltip(I(t, a));
116
+ },
117
+ updated(n, t, a, o) {
118
+ var s;
119
+ const e = I(t, a), l = (s = C(n)) == null ? void 0 : s.tooltip("instance");
120
+ l && (l.options = {
121
+ ...l.options,
122
+ ...e
123
+ });
124
+ },
125
+ unmounted(n, t, a) {
126
+ var o;
127
+ (o = C(n)) == null || o.tooltip("destroy");
128
+ }
129
+ }, A = window;
130
+ class d {
131
+ /**
132
+ * Настройки словаря
133
+ */
134
+ static L = P({
135
+ Not_date: "Not date"
136
+ });
137
+ static page = (A == null ? void 0 : A.page) || {};
138
+ static options = ue;
139
+ static state = P({ ...ce });
140
+ static matchMediaIsMobile;
141
+ /**
142
+ * Добавить на страницу стили, используется для загрузки стилей из js
143
+ *
144
+ * Условная загрузка стилей m и pc отключена в пользу производительсности, стили грузятся всегда, но применяются по условию
145
+ * @param style - css стили в строке
146
+ * @param type - если указать 'm' или 'pc', то стили будут применяться по условию в зависимости от настройки this.options.widthForMobile
147
+ */
148
+ static appendStyle(t, a = "") {
149
+ let o = "all";
150
+ a === "m" && (o = "(max-width: " + this.options.widthForMobile + "px)"), a === "pc" && (o = "(min-width: " + this.options.widthForMobile + "px)");
151
+ const e = document.createElement("style");
152
+ e.innerHTML = t, e.media = o, document.head.append(e);
153
+ }
154
+ /**
155
+ * Установить как плагин в прилоежнии Vue
156
+ * Core.state является общим для всех приложений Vue на странице
157
+ * Core.options является общим для всех приложений Vue на странице
158
+ * @param app - Vue App
159
+ * @param {typeof options} options - параметры UI
160
+ */
161
+ static install(t, a) {
162
+ d.defineOptions(a), t.provide("top-core", d), this.installDirectives(t);
163
+ }
164
+ static installDirectives(t) {
165
+ t.directive("top-tooltip", me);
166
+ }
167
+ /**
168
+ * Установить конфигурацию UI
169
+ * @param {typeof options} options
170
+ */
171
+ static defineOptions(t) {
172
+ t != null && t.widthForMobile && (this.options.widthForMobile = t.widthForMobile), t != null && t.dateFormat && (this.options.dateFormat = t.dateFormat), t != null && t.gmt && (this.options.gmt = t.gmt), d.setState();
173
+ }
174
+ static setState() {
175
+ d.matchMediaIsMobile = window.matchMedia(`(max-width: ${d.options.widthForMobile}px)`), d.state.isMobileUA = T.isMobile(), d.state.isRetina = T.isRetina(), d.state.isApp = T.isApp(), d.state.dateFormat = this.options.dateFormat, d.state.gmt = this.options.gmt, d.setStateByWindowSize(), pe.addOnReize(d.onResize), d.onResize(), d.saveToCookie();
176
+ }
177
+ static onResize() {
178
+ d.setStateByWindowSize(), document.documentElement.style.setProperty("--100vh", window.innerHeight + "px");
179
+ }
180
+ static setStateByWindowSize() {
181
+ var t;
182
+ d.state.isMobile = !!((t = d.matchMediaIsMobile) != null && t.matches), d.state.isLandscape = window.innerWidth > window.innerHeight, d.state.isPortrait = !d.state.isLandscape, d.state.size = window.innerWidth > window.innerHeight ? window.innerWidth : window.innerHeight, d.saveToCookie();
183
+ }
184
+ /**
185
+ * Сохранить информацию об устройстве в cookie
186
+ */
187
+ static saveToCookie() {
188
+ const t = [
189
+ 1,
190
+ window.innerWidth,
191
+ window.innerHeight,
192
+ window.devicePixelRatio,
193
+ Number(d.state.isMobile),
194
+ Number(d.state.isRetina)
195
+ ];
196
+ document.cookie = "device=" + t.join(",") + "; path=/;";
197
+ }
198
+ }
199
+ class F {
200
+ /**
201
+ * Получить объект Date из строки
202
+ * @param date - строка с датой
203
+ */
204
+ static stringToDate(t) {
205
+ return t.indexOf("T") === -1 && (t.length == 10 && (t += " 00:00:00"), t = t.replace(" ", "T") + d.state.gmt), new Date(t);
206
+ }
207
+ // Перевод миллисекунд (UTC) в дату-строку (время локальное)
208
+ /**
209
+ * Перевод миллисекунд (UTC) в дату-строку (время локальное)
210
+ * @param {?number} ms
211
+ * @param {?boolean} useFormat
212
+ */
213
+ static ms2Date(t, a = !0) {
214
+ let o;
215
+ t != null ? o = new Date(t) : o = /* @__PURE__ */ new Date();
216
+ const e = o.getDate().toString().padStart(2, "0"), l = String(o.getMonth() + 1).padStart(2, "0"), s = o.getFullYear(), i = o.getHours().toString().padStart(2, "0"), r = o.getMinutes().toString().padStart(2, "0"), p = o.getSeconds().toString().padStart(2, "0");
217
+ return o = s + "-" + l + "-" + e + " " + i + ":" + r + ":" + p, a && (o = this.dateFormat(o)), o;
218
+ }
219
+ /**
220
+ * Перевод даты в формат пользователя
221
+ * @param {string} date
222
+ * @param {0|1|2|3} time - 0: только дата, 1: дата и часы, 2: дата и часы с минутами, 3: дата и часы с минутами и секундами
223
+ */
224
+ static dateFormat(t, a = 2, o = d.L.Not_date) {
225
+ if ((!t || t.substring(0, 10) === "0000-00-00") && o && o !== "0000-00-00")
226
+ return o;
227
+ const e = d.state.dateFormat.toLowerCase();
228
+ let l = t.substring(0, 10);
229
+ l.length === 7 && (l += "-01"), l += " 00:00", l = l.replace(/-/g, "/");
230
+ const s = new Date(l);
231
+ if (isNaN(Number(s)))
232
+ return o;
233
+ let i = e.replace("y", String(s.getFullYear()).padStart(2, "0")).replace("m", String(s.getMonth() + 1).padStart(2, "0")).replace("d", String(s.getDate()).padStart(2, "0"));
234
+ if (t.length > 10)
235
+ switch (a) {
236
+ case 1:
237
+ i += " " + t.substring(11, 13);
238
+ break;
239
+ case 2:
240
+ i += " " + t.substring(11, 16);
241
+ break;
242
+ case 3:
243
+ i += " " + t.substring(11, 19);
244
+ break;
245
+ }
246
+ return i;
247
+ }
248
+ /**
249
+ * Перевод даты из формата пользователя в системный формат
250
+ * @param {string} date
251
+ */
252
+ static dateUnformat(t, a = d.L.Not_date) {
253
+ if (!t)
254
+ return a;
255
+ if (t.match(/\d\d\d\d-\d\d-\d\d/))
256
+ return t;
257
+ const o = d.state.dateFormat.toLowerCase(), e = t.split(/\W/), l = o.split(/\W/);
258
+ let s = "", i = "", r = "";
259
+ l.forEach((c, _) => {
260
+ switch (c) {
261
+ case "d":
262
+ s = e[_];
263
+ break;
264
+ case "m":
265
+ i = e[_];
266
+ break;
267
+ case "y":
268
+ r = e[_];
269
+ break;
270
+ }
271
+ });
272
+ let p = r + "-" + i + "-" + s;
273
+ return p.match(/\d\d\d\d-\d\d-\d\d/) || (console.info("Неверный формат даты, будет возращена текущая дата, " + p), p = this.ms2Date((/* @__PURE__ */ new Date()).getTime(), !1).substring(0, 10)), p;
274
+ }
275
+ }
276
+ const be = /* @__PURE__ */ v({
277
+ __name: "button",
278
+ props: {
279
+ color: { default: "blue" },
280
+ styling: { default: "" },
281
+ size: { default: "s" },
282
+ name: {},
283
+ title: {},
284
+ icon: {},
285
+ icon2: {},
286
+ href: {},
287
+ disabled: { type: Boolean },
288
+ isSubmit: { type: Boolean },
289
+ isActive: { type: Boolean },
290
+ isProgress: { type: Boolean }
291
+ },
292
+ setup(n) {
293
+ const t = n, a = b(() => t.href ? "a" : "button"), o = b(() => t.isSubmit ? "submit" : void 0);
294
+ return (e, l) => (u(), k(q(a.value), {
295
+ class: h({
296
+ "top-active": e.isActive,
297
+ "top-disabled": e.disabled,
298
+ "top-forms-focusable": !e.disabled,
299
+ "top-button": !0,
300
+ "top-button-progress": e.isProgress,
301
+ [`top-size_${e.size}`]: !!e.size,
302
+ [`top-color_${e.color}`]: !0,
303
+ [`top-style_${e.styling}`]: !!e.styling
304
+ }),
305
+ name: e.name,
306
+ title: e.title,
307
+ href: e.href,
308
+ type: o.value,
309
+ "data-top-icon": e.icon || void 0,
310
+ "data-top-icon2": e.icon2 || void 0,
311
+ disabled: e.disabled || void 0,
312
+ inProgress: e.isProgress
313
+ }, {
314
+ default: S(() => [
315
+ M(e.$slots, "default", {}, () => [
316
+ X(w(e.icon ? "" : "Button"), 1)
317
+ ])
318
+ ]),
319
+ _: 3
320
+ }, 8, ["class", "name", "title", "href", "type", "data-top-icon", "data-top-icon2", "disabled", "inProgress"]));
321
+ }
322
+ }), he = "_progress_1hqxk_1", fe = {
323
+ "top-button": "top-button",
324
+ "top-active": "top-active",
325
+ "top-button-progress": "top-button-progress",
326
+ progress: he,
327
+ "top-color_blue": "top-color_blue",
328
+ "top-color_green": "top-color_green",
329
+ "top-color_orange": "top-color_orange",
330
+ "top-color_red": "top-color_red",
331
+ "top-color_pink": "top-color_pink",
332
+ "top-color_theme": "top-color_theme",
333
+ "top-style_outline": "top-style_outline",
334
+ "top-style_soft": "top-style_soft",
335
+ "top-style_transparent": "top-style_transparent",
336
+ "top-size_l": "top-size_l",
337
+ "top-size_xl": "top-size_xl"
338
+ }, y = (n, t) => {
339
+ const a = n.__vccOpts || n;
340
+ for (const [o, e] of t)
341
+ a[o] = e;
342
+ return a;
343
+ }, ve = {
344
+ $style: fe
345
+ }, mt = /* @__PURE__ */ y(be, [["__cssModules", ve]]), ye = { class: "top-forms-optionLabel" }, ge = {
346
+ key: 0,
347
+ class: "top-forms-optionLabel_description"
348
+ }, we = /* @__PURE__ */ v({
349
+ __name: "controlLabel",
350
+ props: {
351
+ description: {},
352
+ disabled: { type: Boolean }
353
+ },
354
+ setup(n) {
355
+ return (t, a) => (u(), m("div", ye, [
356
+ g("div", {
357
+ class: h({
358
+ "top-forms-optionLabel_title": !0,
359
+ "top-forms-optionLabel_title-disabled": t.disabled
360
+ })
361
+ }, [
362
+ M(t.$slots, "default")
363
+ ], 2),
364
+ t.description ? (u(), m("div", ge, w(t.description), 1)) : f("", !0)
365
+ ]));
366
+ }
367
+ }), ke = {
368
+ "top-forms-optionLabel": "top-forms-optionLabel",
369
+ "top-forms-optionLabel_title": "top-forms-optionLabel_title",
370
+ "top-forms-optionLabel_title-disabled": "top-forms-optionLabel_title-disabled",
371
+ "top-forms-optionLabel_description": "top-forms-optionLabel_description"
372
+ }, $e = {
373
+ $style: ke
374
+ }, W = /* @__PURE__ */ y(we, [["__cssModules", $e]]), Me = ["name", "value", "indeterminate", "disabled"], Ve = /* @__PURE__ */ v({
375
+ __name: "checkbox",
376
+ props: {
377
+ modelValue: { type: [Boolean, Array, Set] },
378
+ name: {},
379
+ value: {},
380
+ description: {},
381
+ disabled: { type: Boolean },
382
+ indeterminate: { type: Boolean },
383
+ isError: { type: Boolean }
384
+ },
385
+ emits: ["update:modelValue"],
386
+ setup(n, { emit: t }) {
387
+ const a = n, o = b({
388
+ get() {
389
+ return a.modelValue;
390
+ },
391
+ set(e) {
392
+ t("update:modelValue", e);
393
+ }
394
+ });
395
+ return (e, l) => (u(), m("label", {
396
+ class: h({
397
+ "top-forms-optionWrapper": !0,
398
+ "top-checkbox": !0,
399
+ ["top-checkbox_" + e.name]: e.name !== "",
400
+ "top-disabled": e.disabled,
401
+ "top-error": e.isError && !e.disabled
402
+ })
403
+ }, [
404
+ $(g("input", {
405
+ type: "checkbox",
406
+ class: h({
407
+ "top-forms-focusable": !e.disabled,
408
+ "top-forms-option": !0,
409
+ "top-checkbox_input": !0,
410
+ "top-error": e.isError && !e.disabled
411
+ }),
412
+ name: e.name,
413
+ "onUpdate:modelValue": l[0] || (l[0] = (s) => o.value = s),
414
+ value: e.value,
415
+ indeterminate: e.indeterminate,
416
+ disabled: e.disabled
417
+ }, null, 10, Me), [
418
+ [K, o.value]
419
+ ]),
420
+ e.$slots.default ? (u(), k(W, {
421
+ key: 0,
422
+ description: e.description,
423
+ disabled: e.disabled
424
+ }, {
425
+ default: S(() => [
426
+ M(e.$slots, "default")
427
+ ]),
428
+ _: 3
429
+ }, 8, ["description", "disabled"])) : f("", !0)
430
+ ], 2));
431
+ }
432
+ }), Se = {
433
+ "top-checkbox": "top-checkbox",
434
+ "top-checkbox_input": "top-checkbox_input",
435
+ "top-error": "top-error"
436
+ }, _e = {
437
+ $style: Se
438
+ }, bt = /* @__PURE__ */ y(Ve, [["__cssModules", _e]]), Be = ["title"], ze = /* @__PURE__ */ v({
439
+ __name: "hint",
440
+ props: {
441
+ hint: {}
442
+ },
443
+ setup(n) {
444
+ return (t, a) => (u(), m("span", {
445
+ class: "top-hint",
446
+ "data-top-icon": "",
447
+ title: t.hint
448
+ }, null, 8, Be));
449
+ }
450
+ }), Ee = {
451
+ "top-hint": "top-hint"
452
+ }, Fe = {
453
+ $style: Ee
454
+ }, Le = /* @__PURE__ */ y(ze, [["__cssModules", Fe]]), De = ["data-top-icon", "data-top-icon2"], Te = ["name", "title", "placeholder", "disabled", "readonly"], Ce = ["onClick"], Ae = {
455
+ key: 1,
456
+ class: "top-formsCaption"
457
+ }, Re = /* @__PURE__ */ v({
458
+ inheritAttrs: !1,
459
+ __name: "input",
460
+ props: {
461
+ modelValue: {},
462
+ name: {},
463
+ disabled: { type: Boolean },
464
+ readonly: { type: Boolean },
465
+ title: {},
466
+ captionType: { default: "" },
467
+ size: { default: "s" },
468
+ icon: {},
469
+ icon2: {},
470
+ addCleaner: { type: Boolean },
471
+ isError: { type: Boolean },
472
+ modificator: {}
473
+ },
474
+ emits: ["update:modelValue"],
475
+ setup(n, { emit: t }) {
476
+ const a = n, o = b({
477
+ get() {
478
+ return a.modelValue;
479
+ },
480
+ set(s) {
481
+ t("update:modelValue", s);
482
+ }
483
+ }), e = b(() => a.addCleaner && !a.title || a.captionType !== "" ? "" : a.title), l = () => {
484
+ t("update:modelValue", "");
485
+ };
486
+ return (s, i) => (u(), m("label", {
487
+ class: h({
488
+ "top-input": !0,
489
+ ["top-size_" + s.size]: !0,
490
+ "top-disabled": s.disabled,
491
+ ["top-input-" + s.modificator]: !!s.modificator,
492
+ "top-input-withCleaner": s.addCleaner && o.value && o.value !== "0000-00-00",
493
+ "top-formsCaptionWrapper": s.captionType !== "",
494
+ "top-formsCaptionWrapper-always": s.captionType === "top"
495
+ }),
496
+ "data-top-icon": s.icon,
497
+ "data-top-icon2": s.icon2
498
+ }, [
499
+ $(g("input", L({
500
+ type: "text",
501
+ class: {
502
+ "top-input_input": !0,
503
+ ["top-input_input-" + s.modificator]: !!s.modificator,
504
+ "top-forms-focusable": !s.disabled,
505
+ "top-error": s.isError
506
+ },
507
+ autocomplete: "off_always",
508
+ name: s.name,
509
+ "onUpdate:modelValue": i[0] || (i[0] = (r) => o.value = r),
510
+ title: s.title,
511
+ placeholder: e.value,
512
+ disabled: s.disabled,
513
+ readonly: s.readonly,
514
+ onKeydown: i[1] || (i[1] = J(U(() => (s.addCleaner || !!s.$slots.btn) && l(), ["stop"]), ["esc"]))
515
+ }, s.$attrs), null, 16, Te), [
516
+ [Q, o.value]
517
+ ]),
518
+ s.addCleaner && o.value && o.value !== "0000-00-00" ? (u(), m("span", {
519
+ key: 0,
520
+ class: "top-input_cleaner",
521
+ "data-top-icon": "",
522
+ onClick: U(l, ["prevent"])
523
+ }, null, 8, Ce)) : f("", !0),
524
+ s.captionType !== "" ? (u(), m("span", Ae, w(s.title), 1)) : f("", !0),
525
+ M(s.$slots, "default")
526
+ ], 10, De));
527
+ }
528
+ }), We = {
529
+ "top-input": "top-input",
530
+ "top-input_input": "top-input_input",
531
+ "top-input-withCleaner": "top-input-withCleaner",
532
+ "top-input_cleaner": "top-input_cleaner"
533
+ }, Pe = {
534
+ $style: We
535
+ }, O = /* @__PURE__ */ y(Re, [["__cssModules", Pe]]), Ue = ["modelValue"], Ne = !!document.documentElement.ontouchstart && !!document.createElement("input").showPicker;
536
+ let j = (n) => {
537
+ };
538
+ const He = /* @__PURE__ */ v({
539
+ __name: "inputDate",
540
+ props: {
541
+ modelValue: {},
542
+ name: {},
543
+ disabled: { type: Boolean },
544
+ readonly: { type: Boolean },
545
+ title: {},
546
+ captionType: {},
547
+ size: {},
548
+ icon: {},
549
+ icon2: { default: "" },
550
+ addCleaner: { type: Boolean },
551
+ isError: { type: Boolean },
552
+ modificator: {}
553
+ },
554
+ emits: ["update:modelValue"],
555
+ setup(n, { emit: t }) {
556
+ const a = n, o = Z(), e = b({
557
+ get() {
558
+ return F.dateFormat(a.modelValue, 2, "0000-00-00");
559
+ },
560
+ set(r) {
561
+ r = F.dateUnformat(r, "0000-00-00"), t("update:modelValue", r);
562
+ }
563
+ });
564
+ let l = (r) => {
565
+ j(r);
566
+ }, s = (r) => {
567
+ const p = F.dateUnformat(r.target.value), c = F.dateFormat(p);
568
+ if (!c || c === d.L.Not_date || r.target.value !== c) {
569
+ r.target.value = e.value;
570
+ return;
571
+ }
572
+ e.value = r.target.value;
573
+ };
574
+ async function i(r) {
575
+ const p = await import("./datepicker-ad465c48.es.js");
576
+ j = p.oninput;
577
+ const c = p.connectDatepicker(r.target, {
578
+ onSelect: () => s(r)
579
+ });
580
+ c && (c.datepicker("show"), x(() => c.datepicker("destroy")));
581
+ }
582
+ return (r, p) => V(Ne) ? (u(), k(V(O), L({ key: 0 }, r.$props, {
583
+ modelValue: e.value,
584
+ readonly: "",
585
+ onClick: p[1] || (p[1] = (c) => o.value.showPicker())
586
+ }), {
587
+ default: S(() => [
588
+ g("input", {
589
+ ref_key: "el",
590
+ ref: o,
591
+ type: "date",
592
+ class: "top-input_input-date",
593
+ modelValue: r.modelValue,
594
+ onChange: p[0] || (p[0] = (c) => e.value = c.target.value),
595
+ tabindex: "-1"
596
+ }, null, 40, Ue)
597
+ ]),
598
+ _: 1
599
+ }, 16, ["modelValue"])) : (u(), k(V(O), L({ key: 1 }, r.$props, {
600
+ modelValue: e.value,
601
+ "onUpdate:modelValue": p[2] || (p[2] = (c) => c === "" ? e.value = "" : ""),
602
+ onInput: V(l),
603
+ onFocusOnce: i,
604
+ onChange: V(s),
605
+ modificator: "datepicker"
606
+ }), null, 16, ["modelValue", "onInput", "onChange"]));
607
+ }
608
+ }), Ie = {
609
+ "top-input-datepicker": "top-input-datepicker",
610
+ "top-input_input-date": "top-input_input-date"
611
+ }, Oe = {
612
+ $style: Ie
613
+ }, ht = /* @__PURE__ */ y(He, [["__cssModules", Oe]]), je = ["name", "value", "disabled"], Ye = /* @__PURE__ */ v({
614
+ __name: "radio",
615
+ props: {
616
+ modelValue: {},
617
+ value: {},
618
+ name: {},
619
+ description: {},
620
+ disabled: { type: Boolean },
621
+ isError: { type: Boolean }
622
+ },
623
+ emits: ["update:modelValue"],
624
+ setup(n, { emit: t }) {
625
+ const a = n, o = b({
626
+ get() {
627
+ return a.modelValue;
628
+ },
629
+ set(e) {
630
+ t("update:modelValue", e);
631
+ }
632
+ });
633
+ return (e, l) => (u(), m("label", {
634
+ class: h({
635
+ "top-forms-optionWrapper": !0,
636
+ "top-radio": !0,
637
+ ["top-radio_" + e.name]: e.name !== "",
638
+ "top-disabled": e.disabled,
639
+ "top-error": e.isError && !e.disabled
640
+ })
641
+ }, [
642
+ $(g("input", {
643
+ type: "radio",
644
+ class: h({
645
+ "top-forms-focusable": !e.disabled,
646
+ "top-forms-option": !0,
647
+ "top-radio_input": !0,
648
+ "top-error": e.isError && !e.disabled
649
+ }),
650
+ "onUpdate:modelValue": l[0] || (l[0] = (s) => o.value = s),
651
+ name: e.name,
652
+ value: e.value,
653
+ disabled: e.disabled
654
+ }, null, 10, je), [
655
+ [ee, o.value]
656
+ ]),
657
+ e.$slots.default ? (u(), k(W, {
658
+ key: 0,
659
+ description: e.description,
660
+ disabled: e.disabled
661
+ }, {
662
+ default: S(() => [
663
+ M(e.$slots, "default")
664
+ ]),
665
+ _: 3
666
+ }, 8, ["description", "disabled"])) : f("", !0)
667
+ ], 2));
668
+ }
669
+ }), Ge = {
670
+ "top-radio": "top-radio",
671
+ "top-radio_input": "top-radio_input",
672
+ "top-error": "top-error"
673
+ }, Ke = {
674
+ $style: Ge
675
+ }, ft = /* @__PURE__ */ y(Ye, [["__cssModules", Ke]]), Qe = ["name", "value", "disabled"], qe = /* @__PURE__ */ v({
676
+ __name: "switcher",
677
+ props: {
678
+ modelValue: { type: [Boolean, Array, Set] },
679
+ name: {},
680
+ value: {},
681
+ description: {},
682
+ disabled: { type: Boolean },
683
+ isError: { type: Boolean }
684
+ },
685
+ emits: ["update:modelValue"],
686
+ setup(n, { emit: t }) {
687
+ const a = n, o = b({
688
+ get() {
689
+ return a.modelValue;
690
+ },
691
+ set(e) {
692
+ t("update:modelValue", e);
693
+ }
694
+ });
695
+ return (e, l) => (u(), m("label", {
696
+ class: h({
697
+ "top-forms-optionWrapper": !0,
698
+ "top-checkboxSwitcher": !0,
699
+ "top-disabled": e.disabled,
700
+ "top-error": e.isError && !e.disabled
701
+ })
702
+ }, [
703
+ $(g("input", {
704
+ type: "checkbox",
705
+ class: h({
706
+ "top-forms-focusable": !e.disabled,
707
+ "top-forms-option": !0,
708
+ "top-checkboxSwitcher_input": !0,
709
+ "top-error": e.isError && !e.disabled
710
+ }),
711
+ "onUpdate:modelValue": l[0] || (l[0] = (s) => o.value = s),
712
+ name: e.name,
713
+ value: e.value,
714
+ disabled: e.disabled
715
+ }, null, 10, Qe), [
716
+ [K, o.value]
717
+ ]),
718
+ e.$slots.default ? (u(), k(W, {
719
+ key: 0,
720
+ description: e.description,
721
+ disabled: e.disabled
722
+ }, {
723
+ default: S(() => [
724
+ M(e.$slots, "default")
725
+ ]),
726
+ _: 3
727
+ }, 8, ["description", "disabled"])) : f("", !0)
728
+ ], 2));
729
+ }
730
+ }), Xe = {
731
+ "top-checkboxSwitcher": "top-checkboxSwitcher",
732
+ "top-checkboxSwitcher_input": "top-checkboxSwitcher_input",
733
+ "top-error": "top-error"
734
+ }, Je = {
735
+ $style: Xe
736
+ }, vt = /* @__PURE__ */ y(qe, [["__cssModules", Je]]), Ze = ["name", "placeholder", "disabled", "readonly", "rows"], xe = {
737
+ key: 0,
738
+ class: "top-textarea_pseudoContent"
739
+ }, et = /* @__PURE__ */ v({
740
+ inheritAttrs: !1,
741
+ __name: "textarea",
742
+ props: {
743
+ modelValue: {},
744
+ name: {},
745
+ placeholder: {},
746
+ rows: { default: 5 },
747
+ minHeight: { default: 120 },
748
+ expandable: { type: Boolean },
749
+ disabled: { type: Boolean },
750
+ readonly: { type: Boolean },
751
+ isError: { type: Boolean },
752
+ hint: {}
753
+ },
754
+ emits: ["update:modelValue"],
755
+ setup(n, { emit: t }) {
756
+ const a = n;
757
+ te((e) => ({
758
+ c35baa86: e.minHeight + "px"
759
+ }));
760
+ const o = b({
761
+ get() {
762
+ return a.modelValue;
763
+ },
764
+ set(e) {
765
+ t("update:modelValue", e);
766
+ }
767
+ });
768
+ return (e, l) => {
769
+ const s = oe("top-tooltip");
770
+ return u(), m("label", {
771
+ class: h({
772
+ "top-textarea": !0,
773
+ ["top-textarea-" + e.name]: e.name,
774
+ "top-disabled": e.disabled
775
+ })
776
+ }, [
777
+ $(g("textarea", L({
778
+ type: "text",
779
+ class: {
780
+ "top-forms-focusable": !e.disabled,
781
+ "top-textarea_textarea": !0,
782
+ "top-textarea_textarea-expandable": e.expandable,
783
+ "top-error": e.isError
784
+ },
785
+ autocomplete: "off_always",
786
+ name: e.name,
787
+ placeholder: e.placeholder,
788
+ disabled: e.disabled,
789
+ readonly: e.readonly,
790
+ rows: e.expandable ? void 0 : e.rows
791
+ }, e.$attrs, {
792
+ "onUpdate:modelValue": l[0] || (l[0] = (i) => o.value = i)
793
+ }), null, 16, Ze), [
794
+ [Q, o.value]
795
+ ]),
796
+ e.expandable ? (u(), m("div", xe, w(o.value + " "), 1)) : f("", !0),
797
+ e.hint ? $((u(), k(Le, {
798
+ key: 1,
799
+ class: "top-textarea_hint",
800
+ hint: e.hint
801
+ }, null, 8, ["hint"])), [
802
+ [s]
803
+ ]) : f("", !0)
804
+ ], 2);
805
+ };
806
+ }
807
+ }), tt = {
808
+ "top-textarea": "top-textarea",
809
+ "top-textarea_textarea": "top-textarea_textarea",
810
+ "top-textarea_textarea-expandable": "top-textarea_textarea-expandable",
811
+ "top-textarea_pseudoContent": "top-textarea_pseudoContent",
812
+ "top-textarea_hint": "top-textarea_hint"
813
+ }, ot = {
814
+ $style: tt
815
+ }, yt = /* @__PURE__ */ y(et, [["__cssModules", ot]]), at = ["data-value", "data-top-icon", "data-top-icon2"], st = ["name", "disabled"], it = ["label", "disabled"], nt = ["value", "selected", "disabled"], lt = ["value", "selected", "disabled"], rt = {
816
+ key: 1,
817
+ class: "top-formsCaption"
818
+ }, dt = /* @__PURE__ */ v({
819
+ __name: "select",
820
+ props: {
821
+ modelValue: {},
822
+ options: {},
823
+ name: {},
824
+ disabled: { type: Boolean },
825
+ icon: {},
826
+ size: { default: "s" },
827
+ addChanger: { type: Boolean },
828
+ title: {},
829
+ isError: { type: Boolean }
830
+ },
831
+ emits: ["update:modelValue"],
832
+ setup(n, { emit: t }) {
833
+ const a = n, o = b({
834
+ get() {
835
+ return a.modelValue;
836
+ },
837
+ set(i) {
838
+ t("update:modelValue", i);
839
+ }
840
+ }), e = b(() => {
841
+ var i;
842
+ return (i = l.value.get(o.value)) == null ? void 0 : i.icon;
843
+ }), l = b(() => {
844
+ const i = /* @__PURE__ */ new Map();
845
+ return a.options.forEach((r) => {
846
+ if (!r.disabled) {
847
+ if (r.children) {
848
+ r.children.forEach((p) => {
849
+ p.disabled || i.set(p.value, p);
850
+ });
851
+ return;
852
+ }
853
+ i.set(r.value, r);
854
+ }
855
+ }), i;
856
+ });
857
+ ae([
858
+ se(a.modelValue),
859
+ l
860
+ ], () => {
861
+ (o.value === null || o.value === void 0) && l.value.size && (console.warn("Пожалуйста, не передавайте в компонент Select значения null и undefined"), o.value = l.value.keys().next().value);
862
+ }, { immediate: !0 });
863
+ const s = () => {
864
+ const i = [...l.value.keys()], p = (i.indexOf(o.value) + 1) % i.length;
865
+ o.value = i[p];
866
+ };
867
+ return (i, r) => (u(), m("label", {
868
+ class: h({
869
+ "top-select": !0,
870
+ ["top-select-" + i.name]: i.name,
871
+ ["top-size_" + i.size]: !0,
872
+ "top-formsCaptionWrapper": !!i.title,
873
+ "top-select-error": i.isError,
874
+ "top-disabled": i.disabled
875
+ }),
876
+ "data-value": o.value,
877
+ "data-top-icon": i.icon,
878
+ "data-top-icon2": e.value
879
+ }, [
880
+ $(g("select", {
881
+ class: h({
882
+ "top-forms-focusable": !i.disabled,
883
+ "top-select_select": !0,
884
+ "top-select_arrow": !0,
885
+ "top-error": i.isError
886
+ }),
887
+ name: i.name,
888
+ disabled: i.disabled,
889
+ "onUpdate:modelValue": r[0] || (r[0] = (p) => o.value = p)
890
+ }, [
891
+ (u(!0), m(D, null, N(i.options.entries(), ([p, c]) => (u(), m(D, null, [
892
+ c.children ? (u(), m("optgroup", {
893
+ key: "group_" + c.value,
894
+ label: c.title,
895
+ disabled: c.disabled
896
+ }, [
897
+ (u(!0), m(D, null, N(c.children.entries(), ([_, B]) => (u(), m("option", {
898
+ key: c.value,
899
+ value: B.value,
900
+ selected: B.value === o.value,
901
+ disabled: B.disabled
902
+ }, w(B.title), 9, nt))), 128))
903
+ ], 8, it)) : (u(), m("option", {
904
+ key: c.value,
905
+ value: c.value,
906
+ selected: c.value === o.value,
907
+ disabled: c.disabled
908
+ }, w(c.title), 9, lt))
909
+ ], 64))), 256))
910
+ ], 10, st), [
911
+ [ie, o.value]
912
+ ]),
913
+ i.addChanger && l.value.size && !i.disabled ? (u(), m("span", {
914
+ key: 0,
915
+ class: "top-changer",
916
+ onClick: s
917
+ })) : f("", !0),
918
+ i.title ? (u(), m("span", rt, w(i.title), 1)) : f("", !0)
919
+ ], 10, at));
920
+ }
921
+ }), pt = {
922
+ "top-select": "top-select",
923
+ "top-select-error": "top-select-error",
924
+ "top-select_select": "top-select_select",
925
+ "top-changer": "top-changer"
926
+ }, ut = {
927
+ $style: pt
928
+ }, gt = /* @__PURE__ */ y(dt, [["__cssModules", ut]]);
929
+ export {
930
+ mt as B,
931
+ d as C,
932
+ T as D,
933
+ pe as E,
934
+ Le as H,
935
+ O as I,
936
+ yt as T,
937
+ F as U,
938
+ y as _,
939
+ W as a,
940
+ gt as b,
941
+ bt as c,
942
+ ht as i,
943
+ ft as r,
944
+ vt as s
945
+ };
946
+ //# sourceMappingURL=forms-db4cb24d.es.js.map