@dxtmisha/constructor 0.23.0 → 0.30.1

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 (343) hide show
  1. package/package.json +36 -6
  2. package/src/classes/AriaStaticInclude.ts +269 -0
  3. package/src/classes/DescriptionInclude.ts +19 -2
  4. package/src/classes/EnabledInclude.ts +11 -0
  5. package/src/classes/EventClickInclude.ts +2 -2
  6. package/src/classes/LabelHighlightInclude.ts +35 -0
  7. package/src/classes/LabelInclude.ts +40 -5
  8. package/src/classes/ModelInclude.ts +50 -1
  9. package/src/classes/ModelValueInclude.ts +73 -0
  10. package/src/classes/TabIndexInclude.ts +260 -0
  11. package/src/classes/TextInclude.ts +102 -0
  12. package/src/classes/TouchEventInclude.ts +284 -0
  13. package/src/classes/field/FieldArrowInclude.ts +189 -0
  14. package/src/classes/field/FieldAttributesInclude.ts +87 -28
  15. package/src/classes/field/FieldChangeInclude.ts +1 -1
  16. package/src/classes/field/FieldElementInclude.ts +1 -1
  17. package/src/classes/field/FieldEventInclude.ts +253 -0
  18. package/src/classes/field/FieldInputModeInclude.ts +48 -0
  19. package/src/classes/field/FieldMatchInclude.ts +9 -3
  20. package/src/classes/field/FieldTypeInclude.ts +11 -6
  21. package/src/classes/field/FieldValidationInclude.ts +1 -4
  22. package/src/classes/field/FieldValueInclude.ts +10 -0
  23. package/src/constructors/Accordion/Accordion.ts +68 -0
  24. package/src/constructors/Accordion/AccordionDesign.tsx +192 -0
  25. package/src/constructors/Accordion/basicTypes.ts +0 -0
  26. package/src/constructors/Accordion/index.ts +5 -0
  27. package/src/constructors/Accordion/properties.json +16 -0
  28. package/src/constructors/Accordion/props.ts +55 -0
  29. package/src/constructors/Accordion/style.scss +12 -0
  30. package/src/constructors/Accordion/types.ts +63 -0
  31. package/src/constructors/ActionSheet/ActionSheet.ts +78 -0
  32. package/src/constructors/ActionSheet/ActionSheetDesign.tsx +125 -0
  33. package/src/constructors/ActionSheet/basicTypes.ts +0 -0
  34. package/src/constructors/ActionSheet/index.ts +5 -0
  35. package/src/constructors/ActionSheet/properties.json +14 -0
  36. package/src/constructors/ActionSheet/props.ts +44 -0
  37. package/src/constructors/ActionSheet/style.scss +25 -0
  38. package/src/constructors/ActionSheet/types.ts +54 -0
  39. package/src/constructors/Actions/Actions.ts +60 -0
  40. package/src/constructors/Actions/ActionsDesign.tsx +212 -0
  41. package/src/constructors/Actions/ActionsInclude.ts +109 -0
  42. package/src/constructors/Actions/basicTypes.ts +40 -0
  43. package/src/constructors/Actions/index.ts +6 -0
  44. package/src/constructors/Actions/properties.json +63 -0
  45. package/src/constructors/Actions/props.ts +42 -0
  46. package/src/constructors/Actions/style.scss +11 -0
  47. package/src/constructors/Actions/types.ts +52 -0
  48. package/src/constructors/Anchor/Anchor.ts +113 -0
  49. package/src/constructors/Anchor/AnchorDesign.tsx +242 -0
  50. package/src/constructors/Anchor/AnchorEvent.ts +76 -0
  51. package/src/constructors/Anchor/AnchorHref.ts +54 -0
  52. package/src/constructors/Anchor/AnchorIcon.ts +54 -0
  53. package/src/constructors/Anchor/AnchorTo.ts +46 -0
  54. package/src/constructors/Anchor/basicTypes.ts +9 -0
  55. package/src/constructors/Anchor/index.ts +5 -0
  56. package/src/constructors/Anchor/properties.json +3 -0
  57. package/src/constructors/Anchor/props.ts +54 -0
  58. package/src/constructors/Anchor/style.scss +10 -0
  59. package/src/constructors/Anchor/types.ts +47 -0
  60. package/src/constructors/Arrow/Arrow.ts +134 -0
  61. package/src/constructors/Arrow/ArrowDesign.tsx +226 -0
  62. package/src/constructors/Arrow/ArrowElement.ts +139 -0
  63. package/src/constructors/Arrow/ArrowElementTarget.ts +72 -0
  64. package/src/constructors/Arrow/ArrowEvent.ts +126 -0
  65. package/src/constructors/Arrow/ArrowInclude.ts +85 -0
  66. package/src/constructors/Arrow/ArrowParent.ts +100 -0
  67. package/src/constructors/Arrow/ArrowPosition.ts +231 -0
  68. package/src/constructors/Arrow/basicTypes.ts +50 -0
  69. package/src/constructors/Arrow/index.ts +6 -0
  70. package/src/constructors/Arrow/properties.json +23 -0
  71. package/src/constructors/Arrow/props.ts +31 -0
  72. package/src/constructors/Arrow/style.scss +133 -0
  73. package/src/constructors/Arrow/types.ts +54 -0
  74. package/src/constructors/Badge/BadgeDesign.tsx +4 -1
  75. package/src/constructors/Badge/properties.json +36 -36
  76. package/src/constructors/Badge/props.ts +3 -1
  77. package/src/constructors/Badge/types.ts +3 -3
  78. package/src/constructors/Bars/Bars.ts +10 -4
  79. package/src/constructors/Bars/BarsDesign.tsx +17 -11
  80. package/src/constructors/Bars/BarsInclude.ts +5 -2
  81. package/src/constructors/Bars/properties.json +6 -6
  82. package/src/constructors/Bars/props.ts +3 -1
  83. package/src/constructors/Bars/style.scss +4 -0
  84. package/src/constructors/Bars/types.ts +3 -3
  85. package/src/constructors/Block/Block.ts +105 -0
  86. package/src/constructors/Block/BlockDesign.tsx +219 -0
  87. package/src/constructors/Block/basicTypes.ts +0 -0
  88. package/src/constructors/Block/index.ts +5 -0
  89. package/src/constructors/Block/properties.json +10 -0
  90. package/src/constructors/Block/props.ts +46 -0
  91. package/src/constructors/Block/style.scss +11 -0
  92. package/src/constructors/Block/types.ts +64 -0
  93. package/src/constructors/Button/Button.ts +26 -2
  94. package/src/constructors/Button/ButtonDesign.tsx +11 -6
  95. package/src/constructors/Button/ButtonInclude.ts +8 -5
  96. package/src/constructors/Button/index.ts +1 -0
  97. package/src/constructors/Button/properties.json +84 -84
  98. package/src/constructors/Button/props.ts +5 -1
  99. package/src/constructors/Button/style.scss +1 -1
  100. package/src/constructors/Button/types.ts +2 -2
  101. package/src/constructors/Cell/Cell.ts +23 -6
  102. package/src/constructors/Cell/CellDesign.tsx +53 -22
  103. package/src/constructors/Cell/basicTypes.ts +33 -0
  104. package/src/constructors/Cell/properties.json +52 -52
  105. package/src/constructors/Cell/props.ts +16 -13
  106. package/src/constructors/Cell/style.scss +1 -1
  107. package/src/constructors/Cell/types.ts +3 -3
  108. package/src/constructors/Chip/ChipDesign.tsx +5 -5
  109. package/src/constructors/Chip/ChipInclude.ts +83 -0
  110. package/src/constructors/Chip/basicTypes.ts +12 -0
  111. package/src/constructors/Chip/index.ts +2 -0
  112. package/src/constructors/Chip/properties.json +3 -3
  113. package/src/constructors/Chip/types.ts +5 -5
  114. package/src/constructors/ChipGroup/ChipGroup.ts +74 -0
  115. package/src/constructors/ChipGroup/ChipGroupDesign.tsx +162 -0
  116. package/src/constructors/ChipGroup/basicTypes.ts +6 -0
  117. package/src/constructors/ChipGroup/index.ts +5 -0
  118. package/src/constructors/ChipGroup/properties.json +3 -0
  119. package/src/constructors/ChipGroup/props.ts +50 -0
  120. package/src/constructors/ChipGroup/style.scss +6 -0
  121. package/src/constructors/ChipGroup/types.ts +47 -0
  122. package/src/constructors/Dialog/Dialog.ts +145 -0
  123. package/src/constructors/Dialog/DialogDesign.tsx +135 -0
  124. package/src/constructors/Dialog/basicTypes.ts +0 -0
  125. package/src/constructors/Dialog/index.ts +5 -0
  126. package/src/constructors/Dialog/properties.json +23 -0
  127. package/src/constructors/Dialog/props.ts +76 -0
  128. package/src/constructors/Dialog/style.scss +18 -0
  129. package/src/constructors/Dialog/types.ts +67 -0
  130. package/src/constructors/Field/Field.ts +58 -19
  131. package/src/constructors/Field/FieldDesign.tsx +35 -17
  132. package/src/constructors/Field/FieldInclude.ts +141 -11
  133. package/src/constructors/Field/basicTypes.ts +35 -19
  134. package/src/constructors/Field/properties.json +92 -86
  135. package/src/constructors/Field/props.ts +6 -3
  136. package/src/constructors/Field/style.scss +36 -20
  137. package/src/constructors/Field/types.ts +13 -13
  138. package/src/constructors/FieldCounter/FieldCounterDesign.tsx +1 -0
  139. package/src/constructors/FieldCounter/FieldCounterInclude.ts +3 -1
  140. package/src/constructors/FieldCounter/basicTypes.ts +1 -0
  141. package/src/constructors/FieldCounter/properties.json +3 -3
  142. package/src/constructors/FieldCounter/props.ts +5 -2
  143. package/src/constructors/FieldCounter/types.ts +1 -1
  144. package/src/constructors/FieldLabel/FieldLabelDesign.tsx +6 -2
  145. package/src/constructors/FieldLabel/FieldLabelInclude.ts +13 -4
  146. package/src/constructors/FieldLabel/properties.json +4 -4
  147. package/src/constructors/FieldLabel/props.ts +2 -2
  148. package/src/constructors/FieldLabel/types.ts +2 -2
  149. package/src/constructors/FieldMessage/FieldMessage.ts +19 -0
  150. package/src/constructors/FieldMessage/FieldMessageDesign.tsx +36 -4
  151. package/src/constructors/FieldMessage/FieldMessageInclude.ts +11 -1
  152. package/src/constructors/FieldMessage/basicTypes.ts +15 -1
  153. package/src/constructors/FieldMessage/properties.json +10 -9
  154. package/src/constructors/FieldMessage/props.ts +4 -0
  155. package/src/constructors/FieldMessage/style.scss +16 -1
  156. package/src/constructors/FieldMessage/types.ts +4 -2
  157. package/src/constructors/Icon/Icon.ts +37 -2
  158. package/src/constructors/Icon/IconDesign.tsx +46 -39
  159. package/src/constructors/Icon/properties.json +25 -25
  160. package/src/constructors/Icon/props.ts +22 -16
  161. package/src/constructors/Icon/types.ts +1 -1
  162. package/src/constructors/Image/Image.ts +68 -10
  163. package/src/constructors/Image/ImageBackground.ts +15 -2
  164. package/src/constructors/Image/ImageCoordinator.ts +4 -2
  165. package/src/constructors/Image/ImageData.ts +4 -0
  166. package/src/constructors/Image/ImageDesign.tsx +81 -15
  167. package/src/constructors/Image/ImageFile.ts +2 -13
  168. package/src/constructors/Image/ImageImg.ts +218 -0
  169. package/src/constructors/Image/ImagePdf.ts +2 -2
  170. package/src/constructors/Image/basicTypes.ts +5 -0
  171. package/src/constructors/Image/properties.json +17 -17
  172. package/src/constructors/Image/props.ts +34 -7
  173. package/src/constructors/Image/style.scss +42 -0
  174. package/src/constructors/Image/types.ts +1 -1
  175. package/src/constructors/Input/Input.ts +146 -0
  176. package/src/constructors/Input/InputDesign.tsx +174 -0
  177. package/src/constructors/Input/InputPassword.ts +54 -0
  178. package/src/constructors/Input/basicTypes.ts +3 -0
  179. package/src/constructors/Input/index.ts +5 -0
  180. package/src/constructors/Input/properties.json +2 -0
  181. package/src/constructors/Input/props.ts +53 -0
  182. package/src/constructors/Input/style.scss +5 -0
  183. package/src/constructors/Input/types.ts +48 -0
  184. package/src/constructors/List/List.ts +36 -11
  185. package/src/constructors/List/ListControl.ts +2 -2
  186. package/src/constructors/List/ListDesign.tsx +59 -38
  187. package/src/constructors/List/ListGo.ts +5 -3
  188. package/src/constructors/List/properties.json +16 -16
  189. package/src/constructors/List/props.ts +7 -0
  190. package/src/constructors/List/style.scss +14 -0
  191. package/src/constructors/List/types.ts +9 -9
  192. package/src/constructors/ListGroup/ListGroupDesign.tsx +8 -3
  193. package/src/constructors/ListGroup/basicTypes.ts +7 -0
  194. package/src/constructors/ListGroup/properties.json +15 -15
  195. package/src/constructors/ListGroup/props.ts +4 -4
  196. package/src/constructors/ListGroup/types.ts +2 -1
  197. package/src/constructors/ListItem/ListItem.ts +67 -7
  198. package/src/constructors/ListItem/ListItemDesign.tsx +13 -10
  199. package/src/constructors/ListItem/properties.json +52 -52
  200. package/src/constructors/ListItem/props.ts +24 -15
  201. package/src/constructors/ListItem/types.ts +12 -12
  202. package/src/constructors/ListMenu/ListMenu.ts +2 -1
  203. package/src/constructors/ListMenu/ListMenuDesign.tsx +3 -3
  204. package/src/constructors/ListMenu/properties.json +19 -19
  205. package/src/constructors/ListMenu/types.ts +3 -3
  206. package/src/constructors/Mask/MaskDesign.tsx +33 -28
  207. package/src/constructors/Mask/MaskEvent.ts +41 -2
  208. package/src/constructors/Mask/MaskInclude.ts +147 -0
  209. package/src/constructors/Mask/basicTypes.ts +19 -1
  210. package/src/constructors/Mask/properties.json +30 -29
  211. package/src/constructors/Mask/props.ts +1 -1
  212. package/src/constructors/Mask/style.scss +2 -4
  213. package/src/constructors/Mask/types.ts +4 -4
  214. package/src/constructors/Menu/Menu.ts +17 -5
  215. package/src/constructors/Menu/MenuDesign.tsx +11 -11
  216. package/src/constructors/Menu/MenuGo.ts +72 -0
  217. package/src/constructors/Menu/MenuInclude.ts +20 -10
  218. package/src/constructors/Menu/MenuSearch.ts +20 -1
  219. package/src/constructors/Menu/MenuValue.ts +7 -3
  220. package/src/constructors/Menu/MenuWindow.ts +2 -1
  221. package/src/constructors/Menu/basicTypes.ts +21 -4
  222. package/src/constructors/Menu/properties.json +17 -17
  223. package/src/constructors/Menu/props.ts +15 -3
  224. package/src/constructors/Menu/types.ts +6 -16
  225. package/src/constructors/Modal/Modal.ts +53 -0
  226. package/src/constructors/Modal/ModalAbstract.ts +74 -0
  227. package/src/constructors/Modal/ModalDesign.tsx +63 -0
  228. package/src/constructors/Modal/ModalDesignAbstract.tsx +226 -0
  229. package/src/constructors/Modal/basicTypes.ts +0 -0
  230. package/src/constructors/Modal/index.ts +5 -0
  231. package/src/constructors/Modal/properties.json +17 -0
  232. package/src/constructors/Modal/props.ts +45 -0
  233. package/src/constructors/Modal/style.scss +20 -0
  234. package/src/constructors/Modal/types.ts +62 -0
  235. package/src/constructors/MotionTransform/MotionTransform.ts +65 -8
  236. package/src/constructors/MotionTransform/MotionTransformDesign.tsx +55 -21
  237. package/src/constructors/MotionTransform/MotionTransformElement.ts +7 -2
  238. package/src/constructors/MotionTransform/MotionTransformInclude.ts +2 -1
  239. package/src/constructors/MotionTransform/MotionTransformState.ts +5 -0
  240. package/src/constructors/MotionTransform/basicTypes.ts +18 -2
  241. package/src/constructors/MotionTransform/properties.json +35 -35
  242. package/src/constructors/MotionTransform/props.ts +13 -7
  243. package/src/constructors/MotionTransform/style.scss +24 -2
  244. package/src/constructors/MotionTransform/types.ts +7 -7
  245. package/src/constructors/Progress/Progress.ts +12 -2
  246. package/src/constructors/Progress/ProgressDesign.tsx +75 -53
  247. package/src/constructors/Progress/ProgressInclude.ts +13 -1
  248. package/src/constructors/Progress/properties.json +47 -47
  249. package/src/constructors/Progress/props.ts +5 -1
  250. package/src/constructors/Progress/style.scss +2 -2
  251. package/src/constructors/Progress/types.ts +4 -4
  252. package/src/constructors/Ripple/Ripple.ts +1 -1
  253. package/src/constructors/Ripple/RippleDesign.tsx +7 -4
  254. package/src/constructors/Ripple/RippleItem.ts +1 -1
  255. package/src/constructors/Ripple/style.scss +4 -0
  256. package/src/constructors/Ripple/types.ts +2 -2
  257. package/src/constructors/Scrollbar/Scrollbar.ts +3 -3
  258. package/src/constructors/Scrollbar/ScrollbarDesign.tsx +1 -1
  259. package/src/constructors/Scrollbar/properties.json +33 -33
  260. package/src/constructors/Scrollbar/types.ts +1 -1
  261. package/src/constructors/Section/Section.ts +33 -0
  262. package/src/constructors/Section/SectionDesign.tsx +127 -0
  263. package/src/constructors/Section/basicTypes.ts +0 -0
  264. package/src/constructors/Section/index.ts +5 -0
  265. package/src/constructors/Section/properties.json +2 -0
  266. package/src/constructors/Section/props.ts +29 -0
  267. package/src/constructors/Section/style.scss +5 -0
  268. package/src/constructors/Section/types.ts +47 -0
  269. package/src/constructors/Select/Select.ts +172 -0
  270. package/src/constructors/Select/SelectDesign.tsx +288 -0
  271. package/src/constructors/Select/SelectFilter.ts +43 -0
  272. package/src/constructors/Select/SelectInput.ts +68 -0
  273. package/src/constructors/Select/basicTypes.ts +0 -0
  274. package/src/constructors/Select/index.ts +5 -0
  275. package/src/constructors/Select/properties.json +3 -0
  276. package/src/constructors/Select/props.ts +63 -0
  277. package/src/constructors/Select/style.scss +5 -0
  278. package/src/constructors/Select/types.ts +53 -0
  279. package/src/constructors/SelectValue/SelectValue.ts +95 -0
  280. package/src/constructors/SelectValue/SelectValueDesign.tsx +198 -0
  281. package/src/constructors/SelectValue/SelectValueInclude.ts +92 -0
  282. package/src/constructors/SelectValue/basicTypes.ts +17 -0
  283. package/src/constructors/SelectValue/index.ts +6 -0
  284. package/src/constructors/SelectValue/properties.json +7 -0
  285. package/src/constructors/SelectValue/props.ts +48 -0
  286. package/src/constructors/SelectValue/style.scss +14 -0
  287. package/src/constructors/SelectValue/types.ts +47 -0
  288. package/src/constructors/Skeleton/Skeleton.ts +1 -3
  289. package/src/constructors/Skeleton/SkeletonDesign.tsx +7 -1
  290. package/src/constructors/Skeleton/SkeletonInclude.ts +5 -0
  291. package/src/constructors/Skeleton/properties.json +24 -24
  292. package/src/constructors/Skeleton/types.ts +1 -1
  293. package/src/constructors/TextareaAutosize/TextareaAutosize.ts +41 -0
  294. package/src/constructors/TextareaAutosize/TextareaAutosizeDesign.tsx +147 -0
  295. package/src/constructors/TextareaAutosize/TextareaAutosizeResize.ts +109 -0
  296. package/src/constructors/TextareaAutosize/TextareaAutosizeValue.ts +69 -0
  297. package/src/constructors/TextareaAutosize/basicTypes.ts +0 -0
  298. package/src/constructors/TextareaAutosize/index.ts +5 -0
  299. package/src/constructors/TextareaAutosize/properties.json +6 -0
  300. package/src/constructors/TextareaAutosize/props.ts +34 -0
  301. package/src/constructors/TextareaAutosize/style.scss +31 -0
  302. package/src/constructors/TextareaAutosize/types.ts +50 -0
  303. package/src/constructors/Tooltip/Tooltip.ts +138 -0
  304. package/src/constructors/Tooltip/TooltipClasses.ts +90 -0
  305. package/src/constructors/Tooltip/TooltipDesign.tsx +198 -0
  306. package/src/constructors/Tooltip/TooltipEvent.ts +103 -0
  307. package/src/constructors/Tooltip/TooltipInclude.ts +114 -0
  308. package/src/constructors/Tooltip/TooltipOpen.ts +128 -0
  309. package/src/constructors/Tooltip/TooltipPosition.ts +92 -0
  310. package/src/constructors/Tooltip/TooltipStatus.ts +97 -0
  311. package/src/constructors/Tooltip/TooltipStyle.ts +123 -0
  312. package/src/constructors/Tooltip/basicTypes.ts +39 -0
  313. package/src/constructors/Tooltip/index.ts +6 -0
  314. package/src/constructors/Tooltip/properties.json +14 -0
  315. package/src/constructors/Tooltip/props.ts +49 -0
  316. package/src/constructors/Tooltip/style.scss +43 -0
  317. package/src/constructors/Tooltip/types.ts +58 -0
  318. package/src/constructors/Window/Window.ts +52 -16
  319. package/src/constructors/Window/WindowClasses.ts +33 -0
  320. package/src/constructors/Window/WindowClient.ts +39 -0
  321. package/src/constructors/Window/WindowDesign.tsx +31 -14
  322. package/src/constructors/Window/WindowEsc.ts +114 -0
  323. package/src/constructors/Window/WindowHidden.ts +120 -0
  324. package/src/constructors/Window/WindowInclude.ts +2 -2
  325. package/src/constructors/Window/WindowOpen.ts +10 -1
  326. package/src/constructors/Window/WindowOrigin.ts +5 -1
  327. package/src/constructors/Window/WindowStatic.ts +3 -1
  328. package/src/constructors/Window/WindowVerification.ts +8 -5
  329. package/src/constructors/Window/basicTypes.ts +26 -16
  330. package/src/constructors/Window/properties.json +239 -236
  331. package/src/constructors/Window/props.ts +10 -1
  332. package/src/constructors/Window/style.scss +11 -0
  333. package/src/constructors/Window/types.ts +2 -2
  334. package/src/functions/{getClassTegAStatic.ts → getClassTagAStatic.ts} +1 -1
  335. package/src/library.ts +13 -1
  336. package/src/types/ariaTypes.ts +366 -0
  337. package/src/types/descriptionTypes.ts +8 -0
  338. package/src/types/fieldTypes.ts +120 -16
  339. package/src/types/labelTypes.ts +39 -0
  340. package/src/types/modelTypes.ts +16 -0
  341. package/src/types/roleTypes.ts +88 -0
  342. package/src/types/textTypes.ts +33 -0
  343. package/src/types/touchEventTypes.ts +43 -0
@@ -0,0 +1,147 @@
1
+ import { h, type VNode } from 'vue'
2
+ import {
3
+ type ConstrOptions,
4
+ type ConstrStyles,
5
+ DesignConstructorAbstract
6
+ } from '@dxtmisha/functional'
7
+
8
+ import { TextareaAutosize } from './TextareaAutosize'
9
+
10
+ import {
11
+ type TextareaAutosizePropsBasic
12
+ } from './props'
13
+ import {
14
+ type TextareaAutosizeClasses,
15
+ type TextareaAutosizeComponents,
16
+ type TextareaAutosizeEmits,
17
+ type TextareaAutosizeExpose,
18
+ type TextareaAutosizeSlots
19
+ } from './types'
20
+
21
+ /**
22
+ * TextareaAutosizeDesign
23
+ */
24
+ export class TextareaAutosizeDesign<
25
+ COMP extends TextareaAutosizeComponents,
26
+ EXPOSE extends TextareaAutosizeExpose,
27
+ CLASSES extends TextareaAutosizeClasses,
28
+ P extends TextareaAutosizePropsBasic
29
+ > extends DesignConstructorAbstract<
30
+ HTMLTextAreaElement,
31
+ COMP,
32
+ TextareaAutosizeEmits,
33
+ EXPOSE,
34
+ TextareaAutosizeSlots,
35
+ CLASSES,
36
+ P
37
+ > {
38
+ protected readonly item: TextareaAutosize
39
+
40
+ /**
41
+ * Constructor
42
+ * @param name class name/ название класса
43
+ * @param props properties/ свойства
44
+ * @param options list of additional parameters/ список дополнительных параметров
45
+ */
46
+ constructor(
47
+ name: string,
48
+ props: Readonly<P>,
49
+ options?: ConstrOptions<COMP, TextareaAutosizeEmits, P>
50
+ ) {
51
+ super(
52
+ name,
53
+ props,
54
+ options
55
+ )
56
+
57
+ this.item = new TextareaAutosize(
58
+ this.props,
59
+ this.refs,
60
+ this.element,
61
+ this.getDesign(),
62
+ this.getName(),
63
+ this.components,
64
+ this.slots,
65
+ this.emits
66
+ )
67
+
68
+ this.init()
69
+ }
70
+
71
+ /**
72
+ * Initialization of all the necessary properties for work
73
+ *
74
+ * Инициализация всех необходимых свойств для работы.
75
+ */
76
+ protected initExpose(): EXPOSE {
77
+ return {
78
+ value: this.item.value.item
79
+ } as EXPOSE
80
+ }
81
+
82
+ /**
83
+ * Improvement of the obtained list of classes.
84
+ *
85
+ * Доработка полученного списка классов.
86
+ */
87
+ protected initClasses(): Partial<CLASSES> {
88
+ return {
89
+ main: {},
90
+ ...{
91
+ // :classes [!] System label / Системная метка
92
+ clone: this.getSubClass('clone')
93
+ // :classes [!] System label / Системная метка
94
+ }
95
+ } as Partial<CLASSES>
96
+ }
97
+
98
+ /**
99
+ * Refinement of the received list of styles.
100
+ *
101
+ * Доработка полученного списка стилей.
102
+ */
103
+ protected initStyles(): ConstrStyles {
104
+ return {}
105
+ }
106
+
107
+ /**
108
+ * A method for rendering.
109
+ *
110
+ * Метод для рендеринга.
111
+ */
112
+ protected initRender(): VNode[] {
113
+ return [
114
+ this.renderClone(),
115
+ this.renderTextarea()
116
+ ]
117
+ }
118
+
119
+ /**
120
+ * Renders a textarea element.
121
+ *
122
+ * Рендерит элемент textarea.
123
+ */
124
+ protected readonly renderTextarea = (): VNode => {
125
+ return h('textarea', {
126
+ ...this.getAttrs(),
127
+ ...this.props.inputAttrs,
128
+ ref: this.element,
129
+ value: this.item.value.item.value,
130
+ class: this.classes?.value.main,
131
+ onFocus: this.item.resize.on,
132
+ onInput: this.item.resize.onInput
133
+ })
134
+ }
135
+
136
+ /**
137
+ * Renders a clone element.
138
+ *
139
+ * Рендерит элемент-клон.
140
+ */
141
+ protected readonly renderClone = (): VNode => {
142
+ return h('div', {
143
+ ref: this.item.resize.clone,
144
+ class: this.classes?.value.clone
145
+ })
146
+ }
147
+ }
@@ -0,0 +1,109 @@
1
+ import { nextTick, type Ref, ref, watch } from 'vue'
2
+ import { TextareaAutosizeValue } from './TextareaAutosizeValue'
3
+ import type { TextareaAutosizeProps } from './props'
4
+
5
+ /**
6
+ * Class for managing the height of the field.
7
+ *
8
+ * Класс управления высотой поля.
9
+ */
10
+ export class TextareaAutosizeResize {
11
+ readonly clone = ref<HTMLDivElement>()
12
+
13
+ /**
14
+ * Constructor
15
+ * @param props input data/ входные данные
16
+ * @param element input element/ элемент ввода
17
+ * @param value object for working with values/ объект для работы со значениями
18
+ */
19
+ constructor(
20
+ protected readonly props: Readonly<TextareaAutosizeProps>,
21
+ protected readonly element: Ref<HTMLTextAreaElement | undefined>,
22
+ protected readonly value: TextareaAutosizeValue
23
+ ) {
24
+ watch(this.value.item, this.on)
25
+ nextTick().then(() => requestAnimationFrame(this.on))
26
+ }
27
+
28
+ /**
29
+ * Changes the size of the field.
30
+ *
31
+ * Изменяет размер поля.
32
+ */
33
+ readonly updateSize = () => {
34
+ if (this.isElements()) {
35
+ const style = getComputedStyle(this.element.value)
36
+ const styleClone = this.clone.value.style
37
+
38
+ styleClone.paddingTop = style.paddingTop
39
+ styleClone.paddingRight = style.paddingRight
40
+ styleClone.paddingBottom = style.paddingBottom
41
+ styleClone.paddingLeft = style.paddingLeft
42
+ styleClone.width = `${this.element.value.offsetWidth}px`
43
+ }
44
+ }
45
+
46
+ /**
47
+ * Event for updating size and value.
48
+ *
49
+ * Событие для обновления размера и значения.
50
+ */
51
+ readonly on = () => {
52
+ this.updateSize()
53
+ this.updateValue()
54
+ }
55
+
56
+ /**
57
+ * Event for changing the value.
58
+ *
59
+ * Событие для изменения значения.
60
+ * @param event invoked event/ вызываемое событие
61
+ */
62
+ readonly onInput = (event: InputEvent) => {
63
+ this.value.on(event)
64
+
65
+ this.updateSize()
66
+ this.updateValue()
67
+ }
68
+
69
+ /**
70
+ * Checks if all elements are present.
71
+ *
72
+ * Проверяет, есть ли все элементы.
73
+ */
74
+ protected isElements(): this is {
75
+ element: Ref<HTMLInputElement>
76
+ clone: Ref<HTMLDivElement>
77
+ } {
78
+ return Boolean(
79
+ this.props.autosize
80
+ && this.element.value
81
+ && getComputedStyle(this.element.value).getPropertyValue('--sys-field-sizing-none') === '"--YES--"'
82
+ && this.clone.value
83
+ )
84
+ }
85
+
86
+ /**
87
+ * Updates the content of the clone element.
88
+ *
89
+ * Обновляет содержимое элемента клона.
90
+ */
91
+ protected updateValue() {
92
+ if (this.isElements()) {
93
+ this.clone.value.innerText = `${this.value.item.value} --`
94
+
95
+ requestAnimationFrame(this.updateHeight)
96
+ }
97
+ }
98
+
99
+ /**
100
+ * Updates the height of the field.
101
+ *
102
+ * Обновляет высоту поля.
103
+ */
104
+ protected readonly updateHeight = () => {
105
+ if (this.isElements()) {
106
+ this.element.value.style.height = `${this.clone.value.offsetHeight}px`
107
+ }
108
+ }
109
+ }
@@ -0,0 +1,69 @@
1
+ import { ref, type ToRefs, watch } from 'vue'
2
+ import { type ConstrEmit } from '@dxtmisha/functional'
3
+
4
+ import type { TextareaAutosizeEmits } from './types'
5
+ import type { TextareaAutosizeProps } from './props'
6
+
7
+ /**
8
+ * Class for working with values.
9
+ *
10
+ * Класс для работы со значениями.
11
+ */
12
+ export class TextareaAutosizeValue {
13
+ readonly item = ref('')
14
+
15
+ /**
16
+ * Constructor
17
+ * @param props input data/ входные данные
18
+ * @param refs input data in the form of reactive elements/ входные данные в виде реактивных элементов
19
+ * @param emits the function is called when an event is triggered/ функция вызывается, когда срабатывает событие
20
+ */
21
+ constructor(
22
+ protected readonly props: TextareaAutosizeProps,
23
+ protected readonly refs: ToRefs<TextareaAutosizeProps>,
24
+ protected readonly emits?: ConstrEmit<TextareaAutosizeEmits>
25
+ ) {
26
+ watch(
27
+ [refs.value],
28
+ () => this.set(props.value),
29
+ { immediate: true }
30
+ )
31
+ }
32
+
33
+ /**
34
+ * Changes values.
35
+ *
36
+ * Изменяет значения.
37
+ * @param value changeable value/ изменяемое значение
38
+ */
39
+ set(value?: string): boolean {
40
+ if (this.isDifference(value)) {
41
+ this.item.value = value ?? ''
42
+ return true
43
+ }
44
+
45
+ return false
46
+ }
47
+
48
+ /**
49
+ * Event for changing the value.
50
+ *
51
+ * Событие для изменения значения.
52
+ * @param event invoked event/ вызываемое событие
53
+ */
54
+ on(event: InputEvent) {
55
+ if (this.set((event.target as HTMLInputElement).value)) {
56
+ this.emits?.('input', event)
57
+ }
58
+ }
59
+
60
+ /**
61
+ * Checks if the value has actually been changed.
62
+ *
63
+ * Проверяет, было ли значение действительно изменено.
64
+ * @param value changeable value/ изменяемое значение
65
+ */
66
+ protected isDifference(value?: string) {
67
+ return this.item.value !== value
68
+ }
69
+ }
@@ -0,0 +1,5 @@
1
+ export * from './TextareaAutosize'
2
+ export * from './TextareaAutosizeDesign'
3
+ export * from './props'
4
+ export * from './types'
5
+ export * from './basicTypes'
@@ -0,0 +1,6 @@
1
+ {
2
+ "min-height": {
3
+ "_type": "var"
4
+ },
5
+ "#clone": {}
6
+ }
@@ -0,0 +1,34 @@
1
+ interface TextareaAutosizePropsToken {
2
+ // :type [!] System label / Системная метка
3
+ // :type [!] System label / Системная метка
4
+ }
5
+
6
+ export interface TextareaAutosizePropsBasic {
7
+ // Value
8
+ value?: string
9
+
10
+ // Style
11
+ autosize?: boolean
12
+ inputAttrs?: Record<string, any>
13
+ }
14
+
15
+ /**
16
+ * Type describing incoming properties.
17
+ *
18
+ * Тип, описывающий входящие свойства.
19
+ */
20
+ export interface TextareaAutosizeProps extends TextareaAutosizePropsBasic, TextareaAutosizePropsToken {
21
+ }
22
+
23
+ /**
24
+ * Default value for property.
25
+ *
26
+ * Значение по умолчанию для свойства.
27
+ */
28
+ export const defaultsTextareaAutosize = {
29
+ autosize: true,
30
+ ...{
31
+ // :default [!] System label / Системная метка
32
+ // :default [!] System label / Системная метка
33
+ }
34
+ }
@@ -0,0 +1,31 @@
1
+ @use "@dxtmisha/styles/properties" as ui;
2
+
3
+ @mixin mixinTextareaAutosize {
4
+ display: block;
5
+ overflow: hidden;
6
+
7
+ max-width: 100%;
8
+
9
+ font: inherit;
10
+ line-height: inherit !important;
11
+ resize: none;
12
+
13
+ min-height: ui.v('?textarea.sys.height', ui.v('??minHeight')) !important;
14
+ field-sizing: content;
15
+
16
+ @supports not (field-sizing: content) {
17
+ --sys-field-sizing-none: '--YES--';
18
+ height: ui.v('?textarea.sys.height', ui.v('??minHeight'));
19
+ }
20
+
21
+ &__clone {
22
+ position: absolute;
23
+ visibility: hidden;
24
+
25
+ width: inherit;
26
+
27
+ font: inherit;
28
+ line-height: inherit;
29
+ white-space: pre-wrap;
30
+ }
31
+ }
@@ -0,0 +1,50 @@
1
+ import type { Ref } from 'vue'
2
+ import type { ConstrClass } from '@dxtmisha/functional'
3
+
4
+ /**
5
+ * Interface for describing which components need to be connected for work.
6
+ *
7
+ * Интерфейс для описания, какие компоненты надо подключить для работы.
8
+ */
9
+ export type TextareaAutosizeComponents = {
10
+ // componentName: object
11
+ }
12
+
13
+ /**
14
+ * Type describing available events.
15
+ *
16
+ * Тип, описывающий доступные события.
17
+ */
18
+ export type TextareaAutosizeEmits = {
19
+ input: [event: InputEvent]
20
+ }
21
+
22
+ /**
23
+ * Type describing available properties.
24
+ *
25
+ * Тип, описывающий доступные свойства.
26
+ */
27
+ export interface TextareaAutosizeExpose {
28
+ value: Ref<string>
29
+ }
30
+
31
+ /**
32
+ * Type describing available slots.
33
+ *
34
+ * Тип, описывающий доступные слоты.
35
+ */
36
+ export interface TextareaAutosizeSlots {
37
+ // default? (props: any): any
38
+ }
39
+
40
+ /**
41
+ * Type describing subclasses.
42
+ *
43
+ * Тип, описывающий подклассы.
44
+ */
45
+ export type TextareaAutosizeClasses = {
46
+ main: ConstrClass
47
+ // :classes [!] System label / Системная метка
48
+ clone: string
49
+ // :classes [!] System label / Системная метка
50
+ }
@@ -0,0 +1,138 @@
1
+ import { onUnmounted, type Ref, type ToRefs } from 'vue'
2
+ import { type ConstrEmit, DesignComp } from '@dxtmisha/functional'
3
+
4
+ import { AriaStaticInclude } from '../../classes/AriaStaticInclude'
5
+ import { LabelInclude } from '../../classes/LabelInclude'
6
+ import { DescriptionInclude } from '../../classes/DescriptionInclude'
7
+
8
+ import { ArrowInclude } from '../Arrow'
9
+
10
+ import { TooltipClasses } from './TooltipClasses'
11
+ import { TooltipStyle } from './TooltipStyle'
12
+ import { TooltipStatus } from './TooltipStatus'
13
+ import { TooltipPosition } from './TooltipPosition'
14
+ import { TooltipOpen } from './TooltipOpen'
15
+ import { TooltipEvent } from './TooltipEvent'
16
+
17
+ import type { TooltipControl } from './basicTypes'
18
+ import type { TooltipComponents, TooltipEmits, TooltipSlots } from './types'
19
+ import type { TooltipProps } from './props'
20
+
21
+ /**
22
+ * Tooltip
23
+ */
24
+ export class Tooltip {
25
+ readonly classes: TooltipClasses
26
+ readonly style: TooltipStyle
27
+ readonly status: TooltipStatus
28
+ readonly position: TooltipPosition
29
+ readonly open: TooltipOpen
30
+ readonly event: TooltipEvent
31
+
32
+ readonly arrow: ArrowInclude
33
+ readonly label: LabelInclude
34
+ readonly description: DescriptionInclude
35
+
36
+ /** Data for the control slot/ Данные для слота управления */
37
+ readonly slotData: TooltipControl
38
+
39
+ /**
40
+ * Constructor
41
+ * @param props input data/ входные данные
42
+ * @param refs input data in the form of reactive elements/ входные данные в виде реактивных элементов
43
+ * @param element input element/ элемент ввода
44
+ * @param classDesign design name/ название дизайна
45
+ * @param className class name/ название класса
46
+ * @param components object for working with components/ объект для работы с компонентами
47
+ * @param slots object for working with slots/ объект для работы со слотами
48
+ * @param emits the function is called when an event is triggered/ функция вызывается, когда срабатывает событие
49
+ * @param TooltipClassesConstructor class for working with classes/ класс для работы с классами
50
+ * @param TooltipStyleConstructor class for working with styles/ класс для работы со стилями
51
+ * @param TooltipStatusConstructor class for working with status/ класс для работы со статусом
52
+ * @param TooltipPositionConstructor class for working with position/ класс для работы с позицией
53
+ * @param TooltipOpenConstructor class for working with open state/ класс для работы с состоянием открытия
54
+ * @param TooltipEventConstructor class for working with events/ класс для работы с событиями
55
+ * @param ArrowIncludeConstructor class for working with arrow/ класс для работы со стрелкой
56
+ * @param LabelIncludeConstructor class for working with label/ класс для работы с меткой
57
+ * @param DescriptionIncludeConstructor class for working with description/ класс для работы с описанием
58
+ */
59
+ constructor(
60
+ protected readonly props: TooltipProps,
61
+ protected readonly refs: ToRefs<TooltipProps>,
62
+ protected readonly element: Ref<HTMLDivElement | undefined>,
63
+ protected readonly classDesign: string,
64
+ protected readonly className: string,
65
+ protected readonly components?: DesignComp<TooltipComponents, TooltipProps>,
66
+ protected readonly slots?: TooltipSlots,
67
+ protected readonly emits?: ConstrEmit<TooltipEmits>,
68
+ protected readonly TooltipClassesConstructor: typeof TooltipClasses = TooltipClasses,
69
+ protected readonly TooltipStyleConstructor: typeof TooltipStyle = TooltipStyle,
70
+ protected readonly TooltipStatusConstructor: typeof TooltipStatus = TooltipStatus,
71
+ protected readonly TooltipPositionConstructor: typeof TooltipPosition = TooltipPosition,
72
+ protected readonly TooltipOpenConstructor: typeof TooltipOpen = TooltipOpen,
73
+ protected readonly TooltipEventConstructor: typeof TooltipEvent = TooltipEvent,
74
+ protected readonly ArrowIncludeConstructor: typeof ArrowInclude = ArrowInclude,
75
+ protected readonly LabelIncludeConstructor: typeof LabelInclude = LabelInclude,
76
+ protected readonly DescriptionIncludeConstructor: typeof DescriptionInclude = DescriptionInclude
77
+ ) {
78
+ this.classes = new TooltipClassesConstructor(this.className)
79
+ this.style = new TooltipStyleConstructor(this.element, this.className)
80
+ this.status = new TooltipStatusConstructor(this.props, this.slots)
81
+ this.position = new TooltipPositionConstructor(
82
+ this.props,
83
+ this.element,
84
+ this.classes,
85
+ this.style
86
+ )
87
+ this.open = new TooltipOpenConstructor(
88
+ this.props,
89
+ this.refs,
90
+ this.style,
91
+ this.status,
92
+ this.position
93
+ )
94
+ this.event = new TooltipEventConstructor(
95
+ this.classes,
96
+ this.style,
97
+ this.status,
98
+ this.open
99
+ )
100
+
101
+ this.arrow = new ArrowIncludeConstructor(
102
+ this.props,
103
+ this.className,
104
+ this.components,
105
+ this.classes.getSelectorControl()
106
+ )
107
+
108
+ this.label = new LabelIncludeConstructor(
109
+ this.props,
110
+ this.className,
111
+ undefined,
112
+ this.slots
113
+ )
114
+ this.description = new DescriptionIncludeConstructor(
115
+ this.props,
116
+ this.className,
117
+ this.slots
118
+ )
119
+
120
+ const binds = {
121
+ class: this.classes.getControl(),
122
+ onclick: this.event.onClick,
123
+ onmouseover: this.event.onMouseover,
124
+ onmouseout: this.event.onMouseout,
125
+ ...AriaStaticInclude.describedby(this.classes.getIdItem())
126
+ }
127
+
128
+ this.slotData = {
129
+ ...binds,
130
+ open: this.status.open,
131
+ binds
132
+ }
133
+
134
+ onUnmounted(() => {
135
+ this.open.eventStop()
136
+ })
137
+ }
138
+ }
@@ -0,0 +1,90 @@
1
+ import { getElementId, isDomRuntime } from '@dxtmisha/functional'
2
+
3
+ /**
4
+ * Class for working with class names.
5
+ *
6
+ * Класс для работы с названиями классов.
7
+ */
8
+ export class TooltipClasses {
9
+ /**
10
+ * Identification of the current window. Used to search for the current component and its control/
11
+ * Идентификация текущего окна. Используется для поиска текущего компонента и его контроля
12
+ */
13
+ protected readonly id = `tooltip--${getElementId()}`
14
+ protected readonly idItem = `tooltip--${getElementId()}-item`
15
+
16
+ /**
17
+ * Constructor
18
+ * @param className class name/ название класса
19
+ */
20
+ constructor(
21
+ protected readonly className: string
22
+ ) {
23
+ }
24
+
25
+ /**
26
+ * Returns the identifier of the current window.
27
+ *
28
+ * Возвращает идентификатор текущего окна.
29
+ */
30
+ getId(): string {
31
+ return this.id
32
+ }
33
+
34
+ /**
35
+ * Returns the identifier of the current item.
36
+ *
37
+ * Возвращает идентификатор текущего элемента.
38
+ */
39
+ getIdItem(): string {
40
+ return this.idItem
41
+ }
42
+
43
+ /**
44
+ * Returns a class for control.
45
+ *
46
+ * Возвращает класс для контроля.
47
+ */
48
+ getClassControl(): string {
49
+ return `${this.className}__control`
50
+ }
51
+
52
+ /**
53
+ * Returns a class for control.
54
+ *
55
+ * Возвращает класс для контроля.
56
+ */
57
+ getControl(): string {
58
+ return `${this.getClassControl()} ${this.getId()}`
59
+ }
60
+
61
+ /**
62
+ * Returns the class selector for control.
63
+ *
64
+ * Возвращает селектор класса для управления.
65
+ */
66
+ getSelectorControl(): string {
67
+ return `.${this.getClassControl()}.${this.id}`
68
+ }
69
+
70
+ /**
71
+ * Finds the control element.
72
+ *
73
+ * Находит элемент управления.
74
+ */
75
+ findControl(): HTMLElement | undefined {
76
+ if (isDomRuntime()) {
77
+ return document.querySelector<HTMLElement>(this.getSelectorControl()) ?? undefined
78
+ }
79
+ }
80
+
81
+ /**
82
+ * Finds the control element among its descendants.
83
+ *
84
+ * Находит элемент управления среди его потомков.
85
+ * @param target selected element/ выбранный элемент
86
+ */
87
+ findControlByTarget(target: HTMLElement): HTMLElement | undefined {
88
+ return target.closest<HTMLElement>(this.getSelectorControl()) ?? undefined
89
+ }
90
+ }