@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,162 @@
1
+ import { h, type VNode } from 'vue'
2
+ import {
3
+ type ConstrOptions,
4
+ type ConstrStyles,
5
+ DesignConstructorAbstract,
6
+ forEach,
7
+ toBinds
8
+ } from '@dxtmisha/functional'
9
+
10
+ import { ChipGroup } from './ChipGroup'
11
+
12
+ import type { ChipGroupItem } from './basicTypes'
13
+ import {
14
+ type ChipGroupPropsBasic
15
+ } from './props'
16
+ import {
17
+ type ChipGroupClasses,
18
+ type ChipGroupComponents,
19
+ type ChipGroupEmits,
20
+ type ChipGroupExpose,
21
+ type ChipGroupSlots
22
+ } from './types'
23
+
24
+ /**
25
+ * ChipGroupDesign
26
+ */
27
+ export class ChipGroupDesign<
28
+ COMP extends ChipGroupComponents,
29
+ EXPOSE extends ChipGroupExpose,
30
+ CLASSES extends ChipGroupClasses,
31
+ P extends ChipGroupPropsBasic
32
+ > extends DesignConstructorAbstract<
33
+ HTMLDivElement,
34
+ COMP,
35
+ ChipGroupEmits,
36
+ EXPOSE,
37
+ ChipGroupSlots,
38
+ CLASSES,
39
+ P
40
+ > {
41
+ protected readonly item: ChipGroup
42
+
43
+ /**
44
+ * Constructor
45
+ * @param name class name/ название класса
46
+ * @param props properties/ свойства
47
+ * @param options list of additional parameters/ список дополнительных параметров
48
+ */
49
+ constructor(
50
+ name: string,
51
+ props: Readonly<P>,
52
+ options?: ConstrOptions<COMP, ChipGroupEmits, P>
53
+ ) {
54
+ super(
55
+ name,
56
+ props,
57
+ options
58
+ )
59
+
60
+ this.item = new ChipGroup(
61
+ this.props,
62
+ this.refs,
63
+ this.element,
64
+ this.getDesign(),
65
+ this.getName(),
66
+ this.components,
67
+ this.slots,
68
+ this.emits
69
+ )
70
+
71
+ this.init()
72
+ }
73
+
74
+ /**
75
+ * Initialization of all the necessary properties for work
76
+ *
77
+ * Инициализация всех необходимых свойств для работы.
78
+ */
79
+ protected initExpose(): EXPOSE {
80
+ return {} as EXPOSE
81
+ }
82
+
83
+ /**
84
+ * Improvement of the obtained list of classes.
85
+ *
86
+ * Доработка полученного списка классов.
87
+ */
88
+ protected initClasses(): Partial<CLASSES> {
89
+ return {
90
+ main: {},
91
+ ...{
92
+ // :classes [!] System label / Системная метка
93
+ item: this.getSubClass('item')
94
+ // :classes [!] System label / Системная метка
95
+ }
96
+ } as Partial<CLASSES>
97
+ }
98
+
99
+ /**
100
+ * Refinement of the received list of styles.
101
+ *
102
+ * Доработка полученного списка стилей.
103
+ */
104
+ protected initStyles(): ConstrStyles {
105
+ return {}
106
+ }
107
+
108
+ /**
109
+ * A method for rendering.
110
+ *
111
+ * Метод для рендеринга.
112
+ */
113
+ protected initRender(): VNode {
114
+ const children: any[] = this.renderList()
115
+
116
+ this.initSlot('default', children)
117
+
118
+ return h(
119
+ 'div',
120
+ {
121
+ ...this.getAttrs(),
122
+ class: this.classes?.value.main
123
+ },
124
+ children
125
+ )
126
+ }
127
+
128
+ /**
129
+ * List rendering.
130
+ *
131
+ * Рендеринг списка.
132
+ */
133
+ protected readonly renderList = (): VNode[] => {
134
+ return forEach(
135
+ this.item.getList(),
136
+ item => this.renderItem(item)
137
+ ) as VNode[]
138
+ }
139
+
140
+ /**
141
+ * Element rendering.
142
+ *
143
+ * Рендеринг элемента.
144
+ * @param item selected element/ выбранный элемент
145
+ */
146
+ protected readonly renderItem = (item: ChipGroupItem): VNode | undefined => {
147
+ return this.components.renderOne(
148
+ 'chip',
149
+ toBinds(
150
+ {
151
+ class: this.classes?.value.item,
152
+ iconHide: this.props.iconWhenSelected && !item.selected,
153
+ onClick: this.item.model.onClick
154
+ },
155
+ this.props.chipAttrs,
156
+ item
157
+ ),
158
+ undefined,
159
+ item.index
160
+ )
161
+ }
162
+ }
@@ -0,0 +1,6 @@
1
+ import type { ConstrBind, ListListInput } from '@dxtmisha/functional'
2
+ import type { ChipPropsBasic } from '../Chip'
3
+
4
+ export type ChipGroupData<Chip extends ChipPropsBasic = ChipPropsBasic> = ListListInput<Chip>
5
+ export type ChipGroupItem<Chip extends ChipPropsBasic = ChipPropsBasic> = ConstrBind<Chip>
6
+ export type ChipGroupList<Chip extends ChipPropsBasic = ChipPropsBasic> = ChipGroupItem<Chip>[]
@@ -0,0 +1,5 @@
1
+ export * from './ChipGroup'
2
+ export * from './ChipGroupDesign'
3
+ export * from './props'
4
+ export * from './types'
5
+ export * from './basicTypes'
@@ -0,0 +1,3 @@
1
+ {
2
+ "#item": {}
3
+ }
@@ -0,0 +1,50 @@
1
+ import type { ConstrBind, ListSelectedList } from '@dxtmisha/functional'
2
+
3
+ import type { ChipPropsBasic } from '../Chip'
4
+ import type { ChipGroupData } from './basicTypes'
5
+ import type { ModelPropsSelected } from '../../types/modelTypes'
6
+
7
+ interface ChipGroupPropsToken {
8
+ // :type [!] System label / Системная метка
9
+ // :type [!] System label / Системная метка
10
+ }
11
+
12
+ export interface ChipGroupPropsBasic<
13
+ Chip extends ChipPropsBasic = ChipPropsBasic
14
+ > extends ModelPropsSelected<ListSelectedList> {
15
+ // Status
16
+ readonly?: boolean
17
+ selected?: ListSelectedList
18
+
19
+ // Values
20
+ list?: ChipGroupData
21
+
22
+ // Styles
23
+ iconWhenSelected?: boolean
24
+
25
+ keyLabel?: string
26
+ keyValue?: string
27
+
28
+ chipAttrs?: ConstrBind<Chip>
29
+ }
30
+
31
+ /**
32
+ * Type describing incoming properties.
33
+ *
34
+ * Тип, описывающий входящие свойства.
35
+ */
36
+ export interface ChipGroupProps extends ChipGroupPropsBasic, ChipGroupPropsToken {
37
+ }
38
+
39
+ /**
40
+ * Default value for property.
41
+ *
42
+ * Значение по умолчанию для свойства.
43
+ */
44
+ export const defaultsChipGroup = {
45
+ readonly: true,
46
+ ...{
47
+ // :default [!] System label / Системная метка
48
+ // :default [!] System label / Системная метка
49
+ }
50
+ }
@@ -0,0 +1,6 @@
1
+ @use "@dxtmisha/styles/properties" as ui;
2
+
3
+ @mixin mixinChipGroup {
4
+ display: flex;
5
+ flex-wrap: wrap;
6
+ }
@@ -0,0 +1,47 @@
1
+ import type { ConstrClass, ListSelectedList } from '@dxtmisha/functional'
2
+ import type { ChipComponentInclude } from '../Chip'
3
+ import type { EventClickEmits } from '../../types/eventClickTypes'
4
+ import type { ModelEmitsSelected } from '../../types/modelTypes'
5
+
6
+ /**
7
+ * Interface for describing which components need to be connected for work.
8
+ *
9
+ * Интерфейс для описания, какие компоненты надо подключить для работы.
10
+ */
11
+ export type ChipGroupComponents = ChipComponentInclude
12
+
13
+ /**
14
+ * Type describing available events.
15
+ *
16
+ * Тип, описывающий доступные события.
17
+ */
18
+ export type ChipGroupEmits = EventClickEmits & ModelEmitsSelected<ListSelectedList>
19
+
20
+ /**
21
+ * Type describing available properties.
22
+ *
23
+ * Тип, описывающий доступные свойства.
24
+ */
25
+ export interface ChipGroupExpose {
26
+ }
27
+
28
+ /**
29
+ * Type describing available slots.
30
+ *
31
+ * Тип, описывающий доступные слоты.
32
+ */
33
+ export interface ChipGroupSlots {
34
+ default?(props: any): any
35
+ }
36
+
37
+ /**
38
+ * Type describing subclasses.
39
+ *
40
+ * Тип, описывающий подклассы.
41
+ */
42
+ export type ChipGroupClasses = {
43
+ main: ConstrClass
44
+ // :classes [!] System label / Системная метка
45
+ item: string
46
+ // :classes [!] System label / Системная метка
47
+ }
@@ -0,0 +1,145 @@
1
+ import { computed, readonly, type Ref, type ToRefs } from 'vue'
2
+ import { type ConstrEmit, DesignComp, getBind } from '@dxtmisha/functional'
3
+
4
+ import { IconInclude } from '../Icon'
5
+ import { LabelInclude } from '../../classes/LabelInclude'
6
+ import { DescriptionInclude } from '../../classes/DescriptionInclude'
7
+ import { TextInclude } from '../../classes/TextInclude'
8
+ import { WindowClassesInclude } from '../Window'
9
+
10
+ import { ModalAbstract } from '../Modal/ModalAbstract'
11
+
12
+ import type { DialogComponents, DialogEmits, DialogSlots } from './types'
13
+ import type { DialogProps } from './props'
14
+
15
+ /**
16
+ * Dialog
17
+ */
18
+ export class Dialog extends ModalAbstract {
19
+ readonly icon: IconInclude
20
+ readonly label: LabelInclude
21
+ readonly description: DescriptionInclude
22
+
23
+ readonly windowClasses: WindowClassesInclude
24
+
25
+ readonly text: TextInclude
26
+
27
+ /**
28
+ * Constructor
29
+ * @param props input data/ входные данные
30
+ * @param refs input data in the form of reactive elements/ входные данные в виде реактивных элементов
31
+ * @param element input element/ элемент ввода
32
+ * @param classDesign design name/ название дизайна
33
+ * @param className class name/ название класса
34
+ * @param components object for working with components/ объект для работы с компонентами
35
+ * @param slots object for working with slots/ объект для работы со слотами
36
+ * @param emits the function is called when an event is triggered/ функция вызывается, когда срабатывает событие
37
+ */
38
+ constructor(
39
+ protected readonly props: DialogProps,
40
+ protected readonly refs: ToRefs<DialogProps>,
41
+ protected readonly element: Ref<HTMLElement | undefined>,
42
+ protected readonly classDesign: string,
43
+ protected readonly className: string,
44
+ protected readonly components?: DesignComp<DialogComponents, DialogProps>,
45
+ protected readonly slots?: DialogSlots,
46
+ protected readonly emits?: ConstrEmit<DialogEmits>
47
+ ) {
48
+ super(
49
+ props,
50
+ refs,
51
+ element,
52
+ classDesign,
53
+ className,
54
+ components,
55
+ slots,
56
+ emits,
57
+ computed(() => ({
58
+ open: props.open,
59
+ image: props.image,
60
+
61
+ adaptive: 'modal',
62
+ imagePosition: props.imagePosition,
63
+ closeButton: this.props.closeButton
64
+ })),
65
+ undefined,
66
+ computed(() => {
67
+ const list = []
68
+
69
+ if (props.buttonClose !== null) {
70
+ list.push(
71
+ getBind(
72
+ props.buttonClose,
73
+ {
74
+ label: this.text.close.value,
75
+ value: 'close',
76
+ class: this.windowClasses.get().close,
77
+ onClick: () => this.emits?.('close')
78
+ },
79
+ 'label',
80
+ true
81
+ )
82
+ )
83
+ }
84
+
85
+ if (props.buttonOk !== null) {
86
+ list.push(
87
+ getBind(
88
+ props.buttonOk,
89
+ {
90
+ label: this.text.ok.value,
91
+ value: 'ok',
92
+ class: this.props.clickOkAndClose ? this.windowClasses.get().close : undefined,
93
+ onClick: () => this.emits?.('ok')
94
+ },
95
+ 'label',
96
+ true
97
+ )
98
+ )
99
+ }
100
+
101
+ return {
102
+ list,
103
+ align: 'center'
104
+ }
105
+ })
106
+ )
107
+
108
+ this.icon = new IconInclude(
109
+ readonly<any>({ icon: this.iconValue }),
110
+ className,
111
+ components,
112
+ refs.iconAttrs
113
+ )
114
+ this.label = new LabelInclude(
115
+ props,
116
+ className,
117
+ undefined,
118
+ slots,
119
+ undefined,
120
+ undefined,
121
+ true
122
+ )
123
+ this.description = new DescriptionInclude(props, className, slots)
124
+
125
+ this.windowClasses = new WindowClassesInclude(classDesign)
126
+ this.text = new TextInclude(this.props)
127
+ }
128
+
129
+ /**
130
+ * Returns the icon for display.
131
+ *
132
+ * Возвращает иконку для отображения.
133
+ */
134
+ protected readonly iconValue = computed(() => {
135
+ if (this.props.success) {
136
+ return this.props.iconSuccess
137
+ }
138
+
139
+ if (this.props.error) {
140
+ return this.props.iconError
141
+ }
142
+
143
+ return this.props.icon
144
+ })
145
+ }
@@ -0,0 +1,135 @@
1
+ import { h, type VNode } from 'vue'
2
+ import {
3
+ toBinds
4
+ } from '@dxtmisha/functional'
5
+
6
+ import { Dialog } from './Dialog'
7
+ import { ModalDesignAbstract } from '../Modal/ModalDesignAbstract'
8
+
9
+ import type { WindowControlItem } from '../Window'
10
+ import {
11
+ type DialogPropsBasic
12
+ } from './props'
13
+ import {
14
+ type DialogClasses,
15
+ type DialogComponents,
16
+ type DialogEmits,
17
+ type DialogExpose,
18
+ type DialogSlots
19
+ } from './types'
20
+
21
+ /**
22
+ * DialogDesign
23
+ */
24
+ export class DialogDesign<
25
+ COMP extends DialogComponents,
26
+ EXPOSE extends DialogExpose,
27
+ CLASSES extends DialogClasses,
28
+ P extends DialogPropsBasic
29
+ > extends ModalDesignAbstract<
30
+ COMP,
31
+ DialogEmits,
32
+ EXPOSE,
33
+ DialogSlots,
34
+ CLASSES,
35
+ P,
36
+ Dialog
37
+ > {
38
+ /**
39
+ * A method for creating an instance of the class.
40
+ *
41
+ * Метод для создания экземпляра класса.
42
+ */
43
+ protected initItem(): Dialog {
44
+ return new Dialog(
45
+ this.props,
46
+ this.refs,
47
+ this.element,
48
+ this.getDesign(),
49
+ this.getName(),
50
+ this.components,
51
+ this.slots,
52
+ this.emits
53
+ )
54
+ }
55
+
56
+ /**
57
+ * Improvement of the obtained list of classes.
58
+ *
59
+ * Доработка полученного списка классов.
60
+ */
61
+ protected initClasses(): Partial<CLASSES> {
62
+ return {
63
+ main: {},
64
+ ...{
65
+ // :classes [!] System label / Системная метка
66
+ title: this.getSubClass('title'),
67
+ header: this.getSubClass('header'),
68
+ information: this.getSubClass('information'),
69
+ icon: this.getSubClass('icon'),
70
+ label: this.getSubClass('label'),
71
+ description: this.getSubClass('description'),
72
+ body: this.getSubClass('body'),
73
+ footer: this.getSubClass('footer')
74
+ // :classes [!] System label / Системная метка
75
+ }
76
+ } as Partial<CLASSES>
77
+ }
78
+
79
+ /**
80
+ * A method for rendering.
81
+ *
82
+ * Метод для рендеринга.
83
+ */
84
+ protected initRender(): VNode[] {
85
+ return this.item.window.render(
86
+ {
87
+ control: this.renderControl,
88
+ title: this.renderTitle,
89
+ default: this.renderContent,
90
+ footer: this.renderFooter
91
+ },
92
+ toBinds(
93
+ {
94
+ 'class': this.classes?.value.main,
95
+ 'data-touch': 'touch'
96
+ },
97
+ this.getAttrs()
98
+ )
99
+ )
100
+ }
101
+
102
+ /**
103
+ * Render for the body layer.
104
+ *
105
+ * Рендер для слоя тела.
106
+ * @param props data for window management/ данные для управления окном
107
+ */
108
+ protected readonly renderContent = (
109
+ props: WindowControlItem
110
+ ): VNode[] => {
111
+ return [
112
+ ...this.renderInformation(),
113
+ ...this.renderDefault(props)
114
+ ]
115
+ }
116
+
117
+ /**
118
+ * Render information block.
119
+ *
120
+ * Рендер информационного блока.
121
+ */
122
+ protected readonly renderInformation = (): VNode[] => {
123
+ return [
124
+ h(
125
+ 'div',
126
+ { class: this.classes?.value.information },
127
+ [
128
+ ...this.item.icon.renderIcon(),
129
+ ...this.item.label.render(),
130
+ ...this.item.description.render()
131
+ ]
132
+ )
133
+ ]
134
+ }
135
+ }
File without changes
@@ -0,0 +1,5 @@
1
+ export * from './Dialog'
2
+ export * from './DialogDesign'
3
+ export * from './props'
4
+ export * from './types'
5
+ export * from './basicTypes'
@@ -0,0 +1,23 @@
1
+ {
2
+ "paddingX": {
3
+ "_type": "var"
4
+ },
5
+ "paddingY": {
6
+ "_type": "var"
7
+ },
8
+ "#title": {},
9
+ "#header": {},
10
+ "#information": {},
11
+ "#icon": {},
12
+ "#label": {},
13
+ "#description": {},
14
+ "#body": {},
15
+ "#footer": {},
16
+ "~success": {},
17
+ "~error": {},
18
+ "~imagePosition": {
19
+ "~top": {},
20
+ "~left": {},
21
+ "_default": "top"
22
+ }
23
+ }
@@ -0,0 +1,76 @@
1
+ import type { ConstrBind } from '@dxtmisha/functional'
2
+
3
+ import type { WindowPropsBasic, WindowPropsInclude } from '../Window'
4
+ import type { BarsPropsBasic, BarsPropsInclude } from '../Bars'
5
+ import type { IconPropsBasic, IconValue } from '../Icon'
6
+ import type { ImagePropsBasic, ImagePropsInclude } from '../Image'
7
+ import type { ButtonPropsBasic } from '../Button'
8
+ import type { ActionsPropsBasic, ActionsPropsInclude } from '../Actions'
9
+ import type { LabelProps } from '../../types/labelTypes'
10
+ import type { DescriptionProps } from '../../types/descriptionTypes'
11
+ import type { TextClosePropsInclude, TextOkPropsInclude } from '../../types/textTypes'
12
+
13
+ interface DialogPropsToken {
14
+ // :type [!] System label / Системная метка
15
+ success?: boolean
16
+ error?: boolean
17
+ imagePosition?: 'top' | 'left'
18
+ // :type [!] System label / Системная метка
19
+ }
20
+
21
+ export interface DialogPropsBasic<
22
+ Window extends WindowPropsBasic = WindowPropsBasic,
23
+ Bars extends BarsPropsBasic = BarsPropsBasic,
24
+ Icon extends IconPropsBasic = IconPropsBasic,
25
+ Image extends ImagePropsBasic = ImagePropsBasic,
26
+ Button extends ButtonPropsBasic = ButtonPropsBasic,
27
+ Actions extends ActionsPropsBasic = ActionsPropsBasic
28
+ > extends WindowPropsInclude<Window>,
29
+ BarsPropsInclude<Bars>,
30
+ ActionsPropsInclude<Actions>,
31
+ ImagePropsInclude<Image>,
32
+ LabelProps,
33
+ DescriptionProps,
34
+ TextClosePropsInclude,
35
+ TextOkPropsInclude {
36
+ // Status
37
+ open?: boolean
38
+
39
+ // Style
40
+ icon?: IconValue<Icon>
41
+
42
+ buttonOk?: string | ConstrBind<Button> | null
43
+ buttonClose?: string | ConstrBind<Button> | null
44
+
45
+ closeButton?: boolean
46
+ clickOkAndClose?: boolean
47
+
48
+ iconSuccess?: IconValue<Icon>
49
+ iconError?: IconValue<Icon>
50
+
51
+ iconAttrs?: ConstrBind<Icon>
52
+ }
53
+
54
+ /**
55
+ * Type describing incoming properties.
56
+ *
57
+ * Тип, описывающий входящие свойства.
58
+ */
59
+ export interface DialogProps extends DialogPropsBasic, DialogPropsToken {
60
+ }
61
+
62
+ /**
63
+ * Default value for property.
64
+ *
65
+ * Значение по умолчанию для свойства.
66
+ */
67
+ export const defaultsDialog = {
68
+ barsBackHide: true,
69
+ barsHide: true,
70
+ clickOkAndClose: true,
71
+ ...{
72
+ // :default [!] System label / Системная метка
73
+ imagePosition: 'top'
74
+ // :default [!] System label / Системная метка
75
+ }
76
+ }
@@ -0,0 +1,18 @@
1
+ @use "@dxtmisha/styles/properties" as ui;
2
+ @use "../Modal/style" as modal;
3
+
4
+ @mixin mixinDialog {
5
+ @include modal.mixinModal;
6
+
7
+ &__information {
8
+ @include ui.flexY;
9
+ @include ui.paddingX(ui.v('??paddingX'));
10
+ @include ui.paddingY(ui.v('??paddingY'));
11
+
12
+ text-align: center;
13
+ }
14
+
15
+ &__footer {
16
+ justify-content: center;
17
+ }
18
+ }