@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
@@ -2,6 +2,7 @@ import type { IconPropsBasic, IconTrailingPropsInclude } from '../Icon'
2
2
  import type { BadgePropsBasic, BadgePropsInclude } from '../Badge'
3
3
  import type { ProgressPropsBasic, ProgressPropsInclude } from '../Progress'
4
4
  import type { SkeletonPropsInclude } from '../Skeleton'
5
+ import type { AriaRolePropsInclude } from '../../types/ariaTypes'
5
6
 
6
7
  import type { LabelHighlightProps } from '../../types/labelTypes'
7
8
  import type { DescriptionProps } from '../../types/descriptionTypes'
@@ -12,17 +13,17 @@ import type { EnabledProps } from '../../types/enabledTypes'
12
13
  import type { EventClickProps } from '../../types/eventClickTypes'
13
14
 
14
15
  interface ListItemPropsToken {
15
- // :type [!] System label / Системная метка
16
- focus?: boolean
17
- open?: boolean
18
- selected?: boolean
19
- selectedChild?: boolean
20
- readonly?: boolean
21
- disabled?: boolean
22
- iconTop?: boolean
23
- iconAlign?: 'center' | 'edge'
24
- fill?: string | 'custom'
25
- divider?: boolean
16
+ // :type [!] System label / Системная метка
17
+ focus?: boolean
18
+ open?: boolean
19
+ selected?: boolean
20
+ selectedChild?: boolean
21
+ readonly?: boolean
22
+ disabled?: boolean
23
+ iconTop?: boolean
24
+ iconAlign?: 'center' | 'edge'
25
+ fill?: string | 'custom'
26
+ divider?: boolean
26
27
  // :type [!] System label / Системная метка
27
28
  }
28
29
 
@@ -40,19 +41,27 @@ export interface ListItemPropsBasic<
40
41
  ProgressPropsInclude<Progress>,
41
42
  SkeletonPropsInclude,
42
43
  EnabledProps,
43
- EventClickProps {
44
+ EventClickProps,
45
+ AriaRolePropsInclude {
44
46
  // Value
45
47
  index?: any
48
+ href?: string
46
49
 
47
50
  // Style
48
51
  tag?: 'button' | 'a' | 'span' | 'div' | string
52
+ filterMode?: boolean
49
53
  divider?: boolean
50
54
 
55
+ tabindex?: number | string
56
+
51
57
  // Technical
52
58
  type?: string
53
59
  parent?: string
54
60
  listId?: number
55
61
  search?: string
62
+
63
+ isMenu?: boolean
64
+ isItemMenu?: boolean
56
65
  }
57
66
 
58
67
  /**
@@ -69,10 +78,10 @@ export interface ListItemProps extends ListItemPropsBasic, ListItemPropsToken {
69
78
  * Значение по умолчанию для свойства.
70
79
  */
71
80
  export const defaultsListItem = {
72
- tag: 'div',
81
+ tabindex: '-1',
73
82
  ...{
74
- // :default [!] System label / Системная метка
75
- iconAlign: 'center'
83
+ // :default [!] System label / Системная метка
84
+ iconAlign: 'center'
76
85
  // :default [!] System label / Системная метка
77
86
  }
78
87
  }
@@ -62,17 +62,17 @@ export interface ListItemSlots extends LabelHighlightSlots,
62
62
  */
63
63
  export type ListItemClasses = {
64
64
  main: ConstrClass
65
- // :classes [!] System label / Системная метка
66
- body: string
67
- context: string
68
- label: string
69
- highlight: string
70
- prefix: string
71
- caption: string
72
- description: string
73
- icon: string
74
- trailing: string
75
- badge: string
76
- input: string
65
+ // :classes [!] System label / Системная метка
66
+ body: string
67
+ context: string
68
+ label: string
69
+ highlight: string
70
+ prefix: string
71
+ caption: string
72
+ description: string
73
+ icon: string
74
+ trailing: string
75
+ badge: string
76
+ input: string
77
77
  // :classes [!] System label / Системная метка
78
78
  }
@@ -45,7 +45,8 @@ export class ListMenu {
45
45
  computed(() => ({
46
46
  adaptive: 'menu',
47
47
  axis: this.props.axis,
48
- onWindow: this.open.onOpen
48
+ onWindow: this.open.onOpen,
49
+ role: 'menu'
49
50
  }))
50
51
  )
51
52
  }
@@ -89,9 +89,9 @@ export class ListMenuDesign<
89
89
  return {
90
90
  main: {},
91
91
  ...{
92
- // :classes [!] System label / Системная метка
93
- head: this.getSubClass('head'),
94
- list: this.getSubClass('list')
92
+ // :classes [!] System label / Системная метка
93
+ head: this.getSubClass('head'),
94
+ list: this.getSubClass('list')
95
95
  // :classes [!] System label / Системная метка
96
96
  }
97
97
  } as Partial<CLASSES>
@@ -1,19 +1,19 @@
1
- {
2
- "border-width": {
3
- "_type": "var"
4
- },
5
- "border-color": {
6
- "_type": "var"
7
- },
8
- "border-opacity": {
9
- "_type": "var"
10
- },
11
- "#head": {},
12
- "#list": {},
13
- "~open": {},
14
- "~axis": {
15
- "x": {},
16
- "y": {}
17
- },
18
- "~divider": {}
19
- }
1
+ {
2
+ "border-width": {
3
+ "_type": "var"
4
+ },
5
+ "border-color": {
6
+ "_type": "var"
7
+ },
8
+ "border-opacity": {
9
+ "_type": "var"
10
+ },
11
+ "#head": {},
12
+ "#list": {},
13
+ "~open": {},
14
+ "~axis": {
15
+ "x": {},
16
+ "y": {}
17
+ },
18
+ "~divider": {}
19
+ }
@@ -47,8 +47,8 @@ export interface ListMenuSlots {
47
47
  */
48
48
  export type ListMenuClasses = {
49
49
  main: ConstrClass
50
- // :classes [!] System label / Системная метка
51
- head: string
52
- list: string
50
+ // :classes [!] System label / Системная метка
51
+ head: string
52
+ list: string
53
53
  // :classes [!] System label / Системная метка
54
54
  }
@@ -2,9 +2,11 @@ import { h, type VNode } from 'vue'
2
2
  import {
3
3
  type ConstrOptions,
4
4
  type ConstrStyles,
5
- DesignConstructorAbstract
5
+ DesignConstructorAbstract,
6
+ toBinds
6
7
  } from '@dxtmisha/functional'
7
8
 
9
+ import { AriaStaticInclude } from '../../classes/AriaStaticInclude'
8
10
  import { Mask } from './Mask'
9
11
 
10
12
  import {
@@ -27,14 +29,14 @@ export class MaskDesign<
27
29
  CLASSES extends MaskClasses,
28
30
  P extends MaskPropsBasic
29
31
  > extends DesignConstructorAbstract<
30
- HTMLInputElement,
31
- COMP,
32
- MaskEmits,
33
- EXPOSE,
34
- MaskSlots,
35
- CLASSES,
36
- P
37
- > {
32
+ HTMLInputElement,
33
+ COMP,
34
+ MaskEmits,
35
+ EXPOSE,
36
+ MaskSlots,
37
+ CLASSES,
38
+ P
39
+ > {
38
40
  protected readonly item: Mask
39
41
 
40
42
  /**
@@ -155,25 +157,27 @@ export class MaskDesign<
155
157
  return [
156
158
  h(
157
159
  'input',
158
- {
159
- ...this.props.inputAttrs,
160
-
161
- ref: this.element,
162
- class: this.classes?.value.input,
163
-
164
- type: 'text',
165
- value: this.item.basic.value,
166
-
167
- onFocus: this.item.event.onFocus,
168
- onBlur: this.item.event.onBlur,
169
- onKeydown: this.item.event.onKeydown,
170
- onKeyup: this.item.event.onKeyup,
171
- onBeforeinput: this.item.event.onBeforeinput,
172
- onInput: this.item.event.onInput,
173
- onChange: this.item.event.onChange,
174
- onPaste: this.item.event.onPaste,
175
- onClick: this.item.event.onClick
176
- }
160
+ toBinds(
161
+ this.props.inputAttrs,
162
+ {
163
+ ref: this.element,
164
+ class: this.classes?.value.input,
165
+
166
+ type: 'text',
167
+ value: this.item.basic.value,
168
+ placeholder: '',
169
+
170
+ onFocus: this.item.event.onFocus,
171
+ onBlur: this.item.event.onBlur,
172
+ onKeydown: this.item.event.onKeydown,
173
+ onKeyup: this.item.event.onKeyup,
174
+ onBeforeinput: this.item.event.onBeforeinput,
175
+ onInput: this.item.event.onInput,
176
+ onChange: this.item.event.onChange,
177
+ onPaste: this.item.event.onPaste,
178
+ onClick: this.item.event.onClick
179
+ }
180
+ )
177
181
  )
178
182
  ]
179
183
  }
@@ -208,6 +212,7 @@ export class MaskDesign<
208
212
  {
209
213
  'class': this.classes?.value.character,
210
214
  'data-length': '1',
215
+ ...AriaStaticInclude.hidden(),
211
216
  innerHTML
212
217
  },
213
218
  children
@@ -1,4 +1,4 @@
1
- import { eventStopPropagation, getClipboardData } from '@dxtmisha/functional'
1
+ import { eventStopPropagation, getClipboardData, writeClipboardData } from '@dxtmisha/functional'
2
2
 
3
3
  import { MaskBuffer } from './MaskBuffer'
4
4
  import { MaskFocus } from './MaskFocus'
@@ -42,7 +42,8 @@ export class MaskEvent {
42
42
  protected readonly valueBasic: MaskValueBasic,
43
43
  protected readonly emit: MaskEmit,
44
44
  protected readonly data: MaskData
45
- ) {}
45
+ ) {
46
+ }
46
47
 
47
48
  /**
48
49
  * Capture of the event in focus.
@@ -92,6 +93,16 @@ export class MaskEvent {
92
93
  .set('keydown', event)
93
94
  .go()
94
95
 
96
+ if (
97
+ this.isCut(event)
98
+ && this.isSelection(info)
99
+ ) {
100
+ this.data.pop(start, end)
101
+ writeClipboardData(
102
+ (event.target as HTMLInputElement).value.slice(start, end)
103
+ ).then()
104
+ }
105
+
95
106
  if (this.isMetaKey(event)) {
96
107
  return undefined
97
108
  }
@@ -262,6 +273,23 @@ export class MaskEvent {
262
273
  return event.metaKey || event.altKey || event.ctrlKey
263
274
  }
264
275
 
276
+ /**
277
+ * Was a cut operation performed.
278
+ *
279
+ * Была ли выполнена операция вырезания.
280
+ * @param event invoked event/ вызываемое событие
281
+ */
282
+ protected isCut(event: KeyboardEvent): boolean {
283
+ return event.type === 'cut'
284
+ || Boolean(
285
+ event.key.toLowerCase() === 'x'
286
+ && (
287
+ event.metaKey
288
+ || event.ctrlKey
289
+ )
290
+ )
291
+ }
292
+
265
293
  /**
266
294
  * Checks key value in the event.
267
295
  *
@@ -272,6 +300,17 @@ export class MaskEvent {
272
300
  return 'key' in event && event.key !== 'Unidentified'
273
301
  }
274
302
 
303
+ /**
304
+ * Was there a selection.
305
+ *
306
+ * Было ли выделение.
307
+ * @param info selection data/ данные выделения
308
+ */
309
+ protected isSelection(info: MaskEventSelection): boolean {
310
+ const { start, end } = info
311
+ return start > 0 || start !== end
312
+ }
313
+
275
314
  /**
276
315
  * Getting data about selection on the event element.
277
316
  *
@@ -0,0 +1,147 @@
1
+ import { computed, type VNode, watch } from 'vue'
2
+ import { type ConstrBind, DesignComponents, getBind, getRef, type RefOrNormal, toBind } from '@dxtmisha/functional'
3
+
4
+ import { FieldValueInclude } from '../../classes/field/FieldValueInclude'
5
+ import { FieldTypeInclude } from '../../classes/field/FieldTypeInclude'
6
+
7
+ import type { FieldValueProps } from '../../types/fieldTypes'
8
+ import type { MaskComponentInclude, MaskPropsInclude } from './basicTypes'
9
+ import type { MaskProps } from './props'
10
+
11
+ type MaskPropsFullInclude = MaskPropsInclude & FieldValueProps
12
+
13
+ /**
14
+ * Mask management class.
15
+ *
16
+ * Класс управления маской.
17
+ */
18
+ export class MaskInclude<
19
+ Props extends MaskPropsFullInclude = MaskPropsFullInclude,
20
+ PropsExtra extends ConstrBind<MaskProps> = ConstrBind<MaskProps>
21
+ > {
22
+ /**
23
+ * Constructor
24
+ * @param props input data/ входные данные
25
+ * @param className class name/ название класса
26
+ * @param value object for working with values/ объект для работы со значениями
27
+ * @param valueDefault default value/ значение по умолчанию
28
+ * @param components object for working with components/ объект для работы с компонентами
29
+ * @param type object for working with the input type/ объект для работы с типом ввода
30
+ * @param extra additional parameter or property name/ дополнительный параметр или имя свойства
31
+ * @param index index identifier/ идентификатор индекса
32
+ */
33
+ constructor(
34
+ protected readonly props: Props,
35
+ protected readonly className: string,
36
+ protected readonly value: FieldValueInclude,
37
+ protected readonly valueDefault?: RefOrNormal<any>,
38
+ protected readonly components?: DesignComponents<MaskComponentInclude, Props>,
39
+ protected readonly type?: FieldTypeInclude,
40
+ protected readonly extra?: RefOrNormal<PropsExtra>,
41
+ protected readonly index?: string
42
+ ) {
43
+ if (this.value) {
44
+ watch(this.is, (is: boolean) => {
45
+ if (!is) {
46
+ this.value.setFull(true)
47
+ }
48
+ })
49
+ }
50
+ }
51
+
52
+ /**
53
+ * Checks if the mask is active.
54
+ *
55
+ * Проверяет, активна ли маска.
56
+ */
57
+ readonly is = computed<boolean>(() => {
58
+ const type = this.type?.get()
59
+
60
+ return this.props.maskNone !== true
61
+ && Boolean(
62
+ this.props.mask
63
+ || (
64
+ type
65
+ && [
66
+ 'number',
67
+ 'number-format',
68
+ 'currency',
69
+ 'datetime',
70
+ 'date',
71
+ 'year-month',
72
+ 'time',
73
+ 'hour-minute'
74
+ ].indexOf(type) !== -1
75
+ )
76
+ )
77
+ })
78
+
79
+ /**
80
+ * Returns the basic properties for working with a mask.
81
+ *
82
+ * Возвращает базовые свойства для работы с маской.
83
+ */
84
+ readonly bindsStatic = computed<PropsExtra>(() => {
85
+ const props = toBind<PropsExtra>(
86
+ getRef(this.extra) ?? {},
87
+ this.props.maskAttrs ?? {}
88
+ )
89
+
90
+ return {
91
+ name: this.props.name,
92
+ valueDefault: getRef(this.valueDefault),
93
+ currency: this.props.currency,
94
+ currencyHide: this.props.currencyHide,
95
+ fraction: this.props.fraction,
96
+ type: this.type?.get(),
97
+ visible: this.props.maskVisible,
98
+
99
+ ...getBind(this.props.mask, props, 'mask') as PropsExtra
100
+ }
101
+ })
102
+
103
+ /**
104
+ * Returns all properties for working with the mask.
105
+ *
106
+ * Возвращает все свойства для работы с маской.
107
+ */
108
+ readonly binds = computed<ConstrBind<MaskProps>>(() => {
109
+ return {
110
+ ...this.bindsStatic.value,
111
+ value: (this.props.modelValue ?? this.props.value) as string
112
+ }
113
+ })
114
+
115
+ /**
116
+ * Returns the rendered mask component.
117
+ *
118
+ * Возвращает отрендеренный компонент маски.
119
+ * @param attrs additional attributes/ дополнительные атрибуты
120
+ */
121
+ readonly render = (attrs?: Record<string, any>): VNode[] => {
122
+ if (this.components) {
123
+ return this.components.render(
124
+ 'mask',
125
+ {
126
+ ...toBind(
127
+ attrs ?? {},
128
+ this.binds.value
129
+ )
130
+ },
131
+ undefined,
132
+ this.index
133
+ )
134
+ }
135
+
136
+ return []
137
+ }
138
+
139
+ /**
140
+ * Checks if the mask is active.
141
+ *
142
+ * Проверяет, активна ли маска.
143
+ */
144
+ isActive() {
145
+ return this.is.value
146
+ }
147
+ }
@@ -1,5 +1,6 @@
1
- import type { GeoDate } from '@dxtmisha/functional'
1
+ import type { ConstrBind, GeoDate } from '@dxtmisha/functional'
2
2
  import type { FieldPatternItemOrFunction, FieldValidationItem } from '../../types/fieldTypes'
3
+ import type { MaskPropsBasic } from './props'
3
4
 
4
5
  export type MaskTypeItem = GeoDate
5
6
  | 'text'
@@ -45,5 +46,22 @@ export type MaskEventSelection = {
45
46
  length: number
46
47
  }
47
48
 
49
+ export type MaskComponentInclude = {
50
+ mask?: object
51
+ }
52
+
53
+ export type MaskPropsInclude<
54
+ Mask extends MaskPropsBasic = MaskPropsBasic
55
+ > = {
56
+ name?: string
57
+ mask?: string | ConstrBind<Mask>
58
+ maskVisible?: boolean
59
+ maskNone?: boolean
60
+ currency?: string
61
+ currencyHide?: boolean
62
+ fraction?: MaskFractionItem
63
+ maskAttrs?: ConstrBind<Mask>
64
+ }
65
+
48
66
  export const MASK_CHAR_DELETE = '~'
49
67
  export const MASK_VIEW_DEFAULT = '_'
@@ -1,29 +1,30 @@
1
- {
2
- "color": {
3
- "_type": "var"
4
- },
5
- "color-opacity": {
6
- "_type": "var"
7
- },
8
- "caret-opacity": {
9
- "_type": "var"
10
- },
11
- "#input": {},
12
- "#character": {
13
- "#item": {
14
- "~placeholder": {}
15
- }
16
- },
17
- "~visible": {
18
- "_default": true
19
- },
20
- "~visiblePartly": {},
21
- "~align": {
22
- "~left": {},
23
- "~right": {}
24
- },
25
- "~dir": {
26
- "~ltr": {},
27
- "~rtl": {}
28
- }
29
- }
1
+ {
2
+ "color": {
3
+ "_type": "var"
4
+ },
5
+ "color-opacity": {
6
+ "_type": "var"
7
+ },
8
+ "caret-opacity": {
9
+ "_type": "var"
10
+ },
11
+ "#input": {},
12
+ "#character": {
13
+ "#item": {
14
+ "~placeholder": {}
15
+ }
16
+ },
17
+ "~visible": {
18
+ "_default": true
19
+ },
20
+ "~visiblePartly": {},
21
+ "~align": {
22
+ "~center": {},
23
+ "~left": {},
24
+ "~right": {}
25
+ },
26
+ "~dir": {
27
+ "~ltr": {},
28
+ "~rtl": {}
29
+ }
30
+ }
@@ -11,7 +11,7 @@ interface MaskPropsToken {
11
11
  // :type [!] System label / Системная метка
12
12
  visible?: boolean
13
13
  visiblePartly?: boolean
14
- align?: 'left' | 'right'
14
+ align?: 'center' | 'left' | 'right'
15
15
  dir?: 'ltr' | 'rtl'
16
16
  // :type [!] System label / Системная метка
17
17
  }
@@ -42,7 +42,7 @@
42
42
  }
43
43
 
44
44
  &__character {
45
- display: flex;
45
+ display: inline-flex;
46
46
  align-items: center;
47
47
  justify-content: ui.v('??sys.align.flex');
48
48
  opacity: ui.v('??sys.opacity.all');
@@ -92,9 +92,7 @@
92
92
  }
93
93
 
94
94
  &--center {
95
- @include ui.subclass('input') {
96
- text-align: center;
97
- }
95
+ @include ui.initByCustom('sys.align', center);
98
96
 
99
97
  @include ui.subclass('character') {
100
98
  justify-content: center;
@@ -63,9 +63,9 @@ export interface MaskSlots {
63
63
  */
64
64
  export type MaskClasses = {
65
65
  main: ConstrClass
66
- // :classes [!] System label / Системная метка
67
- input: string
68
- character: string
69
- characterItem: string
66
+ // :classes [!] System label / Системная метка
67
+ input: string
68
+ character: string
69
+ characterItem: string
70
70
  // :classes [!] System label / Системная метка
71
71
  }