@dxtmisha/constructor 0.23.0

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 (311) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +136 -0
  3. package/package.json +124 -0
  4. package/src/classes/CaptionInclude.ts +71 -0
  5. package/src/classes/DescriptionInclude.ts +70 -0
  6. package/src/classes/EnabledInclude.ts +56 -0
  7. package/src/classes/EventClickInclude.ts +138 -0
  8. package/src/classes/LabelHighlightInclude.ts +90 -0
  9. package/src/classes/LabelInclude.ts +171 -0
  10. package/src/classes/LabelNumberInclude.ts +70 -0
  11. package/src/classes/ModelInclude.ts +49 -0
  12. package/src/classes/PrefixInclude.ts +71 -0
  13. package/src/classes/SuffixInclude.ts +71 -0
  14. package/src/classes/field/FieldAttributesInclude.ts +100 -0
  15. package/src/classes/field/FieldChangeInclude.ts +52 -0
  16. package/src/classes/field/FieldCodeInclude.ts +69 -0
  17. package/src/classes/field/FieldElementInclude.ts +97 -0
  18. package/src/classes/field/FieldInputCheckInclude.ts +128 -0
  19. package/src/classes/field/FieldMatchInclude.ts +101 -0
  20. package/src/classes/field/FieldPatternInclude.ts +42 -0
  21. package/src/classes/field/FieldTypeInclude.ts +42 -0
  22. package/src/classes/field/FieldValidationInclude.ts +196 -0
  23. package/src/classes/field/FieldValueInclude.ts +318 -0
  24. package/src/classes/field/FieldVisibilityInclude.ts +21 -0
  25. package/src/constructors/Badge/Badge.ts +73 -0
  26. package/src/constructors/Badge/BadgeDesign.tsx +127 -0
  27. package/src/constructors/Badge/BadgeInclude.ts +78 -0
  28. package/src/constructors/Badge/basicTypes.ts +15 -0
  29. package/src/constructors/Badge/index.ts +5 -0
  30. package/src/constructors/Badge/properties.json +36 -0
  31. package/src/constructors/Badge/props.ts +43 -0
  32. package/src/constructors/Badge/style.scss +83 -0
  33. package/src/constructors/Badge/types.ts +47 -0
  34. package/src/constructors/Bars/Bars.ts +188 -0
  35. package/src/constructors/Bars/BarsAction.ts +57 -0
  36. package/src/constructors/Bars/BarsDesign.tsx +229 -0
  37. package/src/constructors/Bars/BarsInclude.ts +116 -0
  38. package/src/constructors/Bars/basicTypes.ts +40 -0
  39. package/src/constructors/Bars/index.ts +6 -0
  40. package/src/constructors/Bars/properties.json +6 -0
  41. package/src/constructors/Bars/props.ts +63 -0
  42. package/src/constructors/Bars/style.scss +18 -0
  43. package/src/constructors/Bars/types.ts +58 -0
  44. package/src/constructors/Button/Button.ts +88 -0
  45. package/src/constructors/Button/ButtonDesign.tsx +136 -0
  46. package/src/constructors/Button/ButtonInclude.ts +80 -0
  47. package/src/constructors/Button/basicTypes.ts +12 -0
  48. package/src/constructors/Button/index.ts +5 -0
  49. package/src/constructors/Button/properties.json +84 -0
  50. package/src/constructors/Button/props.ts +55 -0
  51. package/src/constructors/Button/style.scss +96 -0
  52. package/src/constructors/Button/types.ts +56 -0
  53. package/src/constructors/Cell/Cell.ts +127 -0
  54. package/src/constructors/Cell/CellDesign.tsx +203 -0
  55. package/src/constructors/Cell/basicTypes.ts +6 -0
  56. package/src/constructors/Cell/index.ts +5 -0
  57. package/src/constructors/Cell/properties.json +52 -0
  58. package/src/constructors/Cell/props.ts +61 -0
  59. package/src/constructors/Cell/style.scss +80 -0
  60. package/src/constructors/Cell/types.ts +68 -0
  61. package/src/constructors/Chip/Chip.ts +33 -0
  62. package/src/constructors/Chip/ChipDesign.tsx +26 -0
  63. package/src/constructors/Chip/basicTypes.ts +0 -0
  64. package/src/constructors/Chip/index.ts +4 -0
  65. package/src/constructors/Chip/properties.json +3 -0
  66. package/src/constructors/Chip/props.ts +44 -0
  67. package/src/constructors/Chip/style.scss +6 -0
  68. package/src/constructors/Chip/types.ts +53 -0
  69. package/src/constructors/Field/Field.ts +147 -0
  70. package/src/constructors/Field/FieldDesign.tsx +372 -0
  71. package/src/constructors/Field/FieldIcons.ts +99 -0
  72. package/src/constructors/Field/FieldInclude.ts +72 -0
  73. package/src/constructors/Field/FieldSize.ts +93 -0
  74. package/src/constructors/Field/basicTypes.ts +90 -0
  75. package/src/constructors/Field/index.ts +5 -0
  76. package/src/constructors/Field/properties.json +86 -0
  77. package/src/constructors/Field/props.ts +88 -0
  78. package/src/constructors/Field/style.scss +556 -0
  79. package/src/constructors/Field/types.ts +78 -0
  80. package/src/constructors/FieldCounter/FieldCounter.ts +75 -0
  81. package/src/constructors/FieldCounter/FieldCounterDesign.tsx +122 -0
  82. package/src/constructors/FieldCounter/FieldCounterInclude.ts +98 -0
  83. package/src/constructors/FieldCounter/basicTypes.ts +25 -0
  84. package/src/constructors/FieldCounter/index.ts +6 -0
  85. package/src/constructors/FieldCounter/properties.json +3 -0
  86. package/src/constructors/FieldCounter/props.ts +32 -0
  87. package/src/constructors/FieldCounter/style.scss +4 -0
  88. package/src/constructors/FieldCounter/types.ts +42 -0
  89. package/src/constructors/FieldLabel/FieldLabel.ts +93 -0
  90. package/src/constructors/FieldLabel/FieldLabelDesign.tsx +156 -0
  91. package/src/constructors/FieldLabel/FieldLabelInclude.ts +91 -0
  92. package/src/constructors/FieldLabel/basicTypes.ts +34 -0
  93. package/src/constructors/FieldLabel/index.ts +6 -0
  94. package/src/constructors/FieldLabel/properties.json +4 -0
  95. package/src/constructors/FieldLabel/props.ts +40 -0
  96. package/src/constructors/FieldLabel/style.scss +10 -0
  97. package/src/constructors/FieldLabel/types.ts +49 -0
  98. package/src/constructors/FieldMessage/FieldMessage.ts +79 -0
  99. package/src/constructors/FieldMessage/FieldMessageDesign.tsx +159 -0
  100. package/src/constructors/FieldMessage/FieldMessageInclude.ts +105 -0
  101. package/src/constructors/FieldMessage/FieldMessageMessage.ts +54 -0
  102. package/src/constructors/FieldMessage/basicTypes.ts +27 -0
  103. package/src/constructors/FieldMessage/index.ts +6 -0
  104. package/src/constructors/FieldMessage/properties.json +9 -0
  105. package/src/constructors/FieldMessage/props.ts +40 -0
  106. package/src/constructors/FieldMessage/style.scss +13 -0
  107. package/src/constructors/FieldMessage/types.ts +49 -0
  108. package/src/constructors/Icon/Icon.ts +105 -0
  109. package/src/constructors/Icon/IconDesign.tsx +157 -0
  110. package/src/constructors/Icon/IconInclude.ts +64 -0
  111. package/src/constructors/Icon/IconLiteInclude.ts +121 -0
  112. package/src/constructors/Icon/IconTrailingInclude.ts +106 -0
  113. package/src/constructors/Icon/basicTypes.ts +50 -0
  114. package/src/constructors/Icon/index.ts +8 -0
  115. package/src/constructors/Icon/properties.json +25 -0
  116. package/src/constructors/Icon/props.ts +54 -0
  117. package/src/constructors/Icon/style.scss +106 -0
  118. package/src/constructors/Icon/types.ts +46 -0
  119. package/src/constructors/Image/Image.ts +184 -0
  120. package/src/constructors/Image/ImageAdaptiveGroup.ts +230 -0
  121. package/src/constructors/Image/ImageAdaptiveItem.ts +295 -0
  122. package/src/constructors/Image/ImageBackground.ts +127 -0
  123. package/src/constructors/Image/ImageCalculation.ts +184 -0
  124. package/src/constructors/Image/ImageCalculationList.ts +61 -0
  125. package/src/constructors/Image/ImageCoordinator.ts +104 -0
  126. package/src/constructors/Image/ImageData.ts +99 -0
  127. package/src/constructors/Image/ImageDesign.tsx +137 -0
  128. package/src/constructors/Image/ImageFile.ts +137 -0
  129. package/src/constructors/Image/ImageInclude.ts +53 -0
  130. package/src/constructors/Image/ImagePdf.ts +44 -0
  131. package/src/constructors/Image/ImagePosition.ts +49 -0
  132. package/src/constructors/Image/ImageType.ts +83 -0
  133. package/src/constructors/Image/basicTypes.ts +70 -0
  134. package/src/constructors/Image/index.ts +5 -0
  135. package/src/constructors/Image/properties.json +17 -0
  136. package/src/constructors/Image/props.ts +66 -0
  137. package/src/constructors/Image/style.scss +77 -0
  138. package/src/constructors/Image/types.ts +49 -0
  139. package/src/constructors/List/List.ts +267 -0
  140. package/src/constructors/List/ListControl.ts +194 -0
  141. package/src/constructors/List/ListDesign.tsx +382 -0
  142. package/src/constructors/List/ListFocus.ts +196 -0
  143. package/src/constructors/List/ListGo.ts +283 -0
  144. package/src/constructors/List/ListSearch.ts +113 -0
  145. package/src/constructors/List/basicTypes.ts +3 -0
  146. package/src/constructors/List/index.ts +5 -0
  147. package/src/constructors/List/properties.json +16 -0
  148. package/src/constructors/List/props.ts +76 -0
  149. package/src/constructors/List/style.scss +36 -0
  150. package/src/constructors/List/types.ts +66 -0
  151. package/src/constructors/ListGroup/ListGroup.ts +53 -0
  152. package/src/constructors/ListGroup/ListGroupDesign.tsx +180 -0
  153. package/src/constructors/ListGroup/ListGroupOpen.ts +56 -0
  154. package/src/constructors/ListGroup/basicTypes.ts +3 -0
  155. package/src/constructors/ListGroup/index.ts +5 -0
  156. package/src/constructors/ListGroup/properties.json +15 -0
  157. package/src/constructors/ListGroup/props.ts +30 -0
  158. package/src/constructors/ListGroup/style.scss +18 -0
  159. package/src/constructors/ListGroup/types.ts +51 -0
  160. package/src/constructors/ListItem/ListItem.ts +115 -0
  161. package/src/constructors/ListItem/ListItemDesign.tsx +196 -0
  162. package/src/constructors/ListItem/basicTypes.ts +3 -0
  163. package/src/constructors/ListItem/index.ts +5 -0
  164. package/src/constructors/ListItem/properties.json +52 -0
  165. package/src/constructors/ListItem/props.ts +78 -0
  166. package/src/constructors/ListItem/style.scss +152 -0
  167. package/src/constructors/ListItem/types.ts +78 -0
  168. package/src/constructors/ListMenu/ListMenu.ts +52 -0
  169. package/src/constructors/ListMenu/ListMenuDesign.tsx +127 -0
  170. package/src/constructors/ListMenu/basicTypes.ts +3 -0
  171. package/src/constructors/ListMenu/index.ts +5 -0
  172. package/src/constructors/ListMenu/properties.json +19 -0
  173. package/src/constructors/ListMenu/props.ts +34 -0
  174. package/src/constructors/ListMenu/style.scss +5 -0
  175. package/src/constructors/ListMenu/types.ts +54 -0
  176. package/src/constructors/Mask/Mask.ts +321 -0
  177. package/src/constructors/Mask/MaskBuffer.ts +89 -0
  178. package/src/constructors/Mask/MaskCharacter.ts +192 -0
  179. package/src/constructors/Mask/MaskCharacterLength.ts +40 -0
  180. package/src/constructors/Mask/MaskData.ts +287 -0
  181. package/src/constructors/Mask/MaskDate.ts +157 -0
  182. package/src/constructors/Mask/MaskDesign.tsx +217 -0
  183. package/src/constructors/Mask/MaskEmit.ts +140 -0
  184. package/src/constructors/Mask/MaskEvent.ts +347 -0
  185. package/src/constructors/Mask/MaskFocus.ts +49 -0
  186. package/src/constructors/Mask/MaskFormat.ts +216 -0
  187. package/src/constructors/Mask/MaskItem.ts +218 -0
  188. package/src/constructors/Mask/MaskMatch.ts +73 -0
  189. package/src/constructors/Mask/MaskPattern.ts +123 -0
  190. package/src/constructors/Mask/MaskRight.ts +43 -0
  191. package/src/constructors/Mask/MaskRubber.ts +156 -0
  192. package/src/constructors/Mask/MaskRubberItem.ts +96 -0
  193. package/src/constructors/Mask/MaskRubberTransition.ts +50 -0
  194. package/src/constructors/Mask/MaskSelection.ts +208 -0
  195. package/src/constructors/Mask/MaskSpecial.ts +179 -0
  196. package/src/constructors/Mask/MaskType.ts +103 -0
  197. package/src/constructors/Mask/MaskValidation.ts +102 -0
  198. package/src/constructors/Mask/MaskValue.ts +225 -0
  199. package/src/constructors/Mask/MaskValueBasic.ts +87 -0
  200. package/src/constructors/Mask/MaskView.ts +169 -0
  201. package/src/constructors/Mask/basicTypes.ts +49 -0
  202. package/src/constructors/Mask/index.ts +5 -0
  203. package/src/constructors/Mask/properties.json +29 -0
  204. package/src/constructors/Mask/props.ts +70 -0
  205. package/src/constructors/Mask/style.scss +104 -0
  206. package/src/constructors/Mask/types.ts +71 -0
  207. package/src/constructors/Menu/Menu.ts +179 -0
  208. package/src/constructors/Menu/MenuDesign.tsx +244 -0
  209. package/src/constructors/Menu/MenuInclude.ts +110 -0
  210. package/src/constructors/Menu/MenuRequest.ts +101 -0
  211. package/src/constructors/Menu/MenuSearch.ts +49 -0
  212. package/src/constructors/Menu/MenuValue.ts +73 -0
  213. package/src/constructors/Menu/MenuWindow.ts +89 -0
  214. package/src/constructors/Menu/basicTypes.ts +41 -0
  215. package/src/constructors/Menu/index.ts +6 -0
  216. package/src/constructors/Menu/properties.json +17 -0
  217. package/src/constructors/Menu/props.ts +79 -0
  218. package/src/constructors/Menu/style.scss +17 -0
  219. package/src/constructors/Menu/types.ts +79 -0
  220. package/src/constructors/MotionTransform/MotionTransform.ts +87 -0
  221. package/src/constructors/MotionTransform/MotionTransformClassesInclude.ts +38 -0
  222. package/src/constructors/MotionTransform/MotionTransformDesign.tsx +242 -0
  223. package/src/constructors/MotionTransform/MotionTransformElement.ts +220 -0
  224. package/src/constructors/MotionTransform/MotionTransformEvent.ts +118 -0
  225. package/src/constructors/MotionTransform/MotionTransformGo.ts +47 -0
  226. package/src/constructors/MotionTransform/MotionTransformInclude.ts +123 -0
  227. package/src/constructors/MotionTransform/MotionTransformSize.ts +97 -0
  228. package/src/constructors/MotionTransform/MotionTransformState.ts +250 -0
  229. package/src/constructors/MotionTransform/basicTypes.ts +121 -0
  230. package/src/constructors/MotionTransform/index.ts +7 -0
  231. package/src/constructors/MotionTransform/properties.json +35 -0
  232. package/src/constructors/MotionTransform/props.ts +50 -0
  233. package/src/constructors/MotionTransform/style.scss +180 -0
  234. package/src/constructors/MotionTransform/types.ts +86 -0
  235. package/src/constructors/Progress/Progress.ts +184 -0
  236. package/src/constructors/Progress/ProgressDesign.tsx +175 -0
  237. package/src/constructors/Progress/ProgressInclude.ts +67 -0
  238. package/src/constructors/Progress/basicTypes.ts +12 -0
  239. package/src/constructors/Progress/index.ts +6 -0
  240. package/src/constructors/Progress/properties.json +47 -0
  241. package/src/constructors/Progress/props.ts +54 -0
  242. package/src/constructors/Progress/style.scss +374 -0
  243. package/src/constructors/Progress/types.ts +43 -0
  244. package/src/constructors/Ripple/Ripple.ts +46 -0
  245. package/src/constructors/Ripple/RippleDesign.tsx +112 -0
  246. package/src/constructors/Ripple/RippleInclude.ts +39 -0
  247. package/src/constructors/Ripple/RippleItem.ts +62 -0
  248. package/src/constructors/Ripple/basicTypes.ts +3 -0
  249. package/src/constructors/Ripple/index.ts +6 -0
  250. package/src/constructors/Ripple/properties.json +9 -0
  251. package/src/constructors/Ripple/props.ts +28 -0
  252. package/src/constructors/Ripple/style.scss +62 -0
  253. package/src/constructors/Ripple/types.ts +41 -0
  254. package/src/constructors/Scrollbar/Scrollbar.ts +66 -0
  255. package/src/constructors/Scrollbar/ScrollbarBorder.ts +243 -0
  256. package/src/constructors/Scrollbar/ScrollbarDesign.tsx +126 -0
  257. package/src/constructors/Scrollbar/ScrollbarInclude.ts +80 -0
  258. package/src/constructors/Scrollbar/basicTypes.ts +42 -0
  259. package/src/constructors/Scrollbar/index.ts +5 -0
  260. package/src/constructors/Scrollbar/properties.json +33 -0
  261. package/src/constructors/Scrollbar/props.ts +37 -0
  262. package/src/constructors/Scrollbar/style.scss +117 -0
  263. package/src/constructors/Scrollbar/types.ts +52 -0
  264. package/src/constructors/Skeleton/Skeleton.ts +86 -0
  265. package/src/constructors/Skeleton/SkeletonDesign.tsx +117 -0
  266. package/src/constructors/Skeleton/SkeletonInclude.ts +61 -0
  267. package/src/constructors/Skeleton/basicTypes.ts +16 -0
  268. package/src/constructors/Skeleton/const.ts +1 -0
  269. package/src/constructors/Skeleton/index.ts +6 -0
  270. package/src/constructors/Skeleton/properties.json +24 -0
  271. package/src/constructors/Skeleton/props.ts +28 -0
  272. package/src/constructors/Skeleton/style.scss +112 -0
  273. package/src/constructors/Skeleton/types.ts +46 -0
  274. package/src/constructors/Window/Window.ts +212 -0
  275. package/src/constructors/Window/WindowClasses.ts +180 -0
  276. package/src/constructors/Window/WindowClassesInclude.ts +39 -0
  277. package/src/constructors/Window/WindowClient.ts +93 -0
  278. package/src/constructors/Window/WindowCoordinates.ts +257 -0
  279. package/src/constructors/Window/WindowDesign.tsx +278 -0
  280. package/src/constructors/Window/WindowElement.ts +84 -0
  281. package/src/constructors/Window/WindowEmit.ts +52 -0
  282. package/src/constructors/Window/WindowEvent.ts +157 -0
  283. package/src/constructors/Window/WindowFlash.ts +70 -0
  284. package/src/constructors/Window/WindowHook.ts +110 -0
  285. package/src/constructors/Window/WindowInclude.ts +134 -0
  286. package/src/constructors/Window/WindowOpen.ts +292 -0
  287. package/src/constructors/Window/WindowOrigin.ts +85 -0
  288. package/src/constructors/Window/WindowPersistent.ts +89 -0
  289. package/src/constructors/Window/WindowPosition.ts +358 -0
  290. package/src/constructors/Window/WindowStatic.ts +102 -0
  291. package/src/constructors/Window/WindowStatus.ts +138 -0
  292. package/src/constructors/Window/WindowStyles.ts +78 -0
  293. package/src/constructors/Window/WindowVerification.ts +287 -0
  294. package/src/constructors/Window/basicTypes.ts +186 -0
  295. package/src/constructors/Window/index.ts +7 -0
  296. package/src/constructors/Window/properties.json +236 -0
  297. package/src/constructors/Window/props.ts +88 -0
  298. package/src/constructors/Window/style.scss +262 -0
  299. package/src/constructors/Window/types.ts +124 -0
  300. package/src/functions/getClassTegAStatic.ts +8 -0
  301. package/src/library.ts +36 -0
  302. package/src/types/captionTypes.ts +15 -0
  303. package/src/types/descriptionTypes.ts +15 -0
  304. package/src/types/enabledTypes.ts +9 -0
  305. package/src/types/eventClickTypes.ts +51 -0
  306. package/src/types/fieldTypes.ts +282 -0
  307. package/src/types/labelTypes.ts +30 -0
  308. package/src/types/modelTypes.ts +23 -0
  309. package/src/types/prefixTypes.ts +15 -0
  310. package/src/types/suffixTypes.ts +15 -0
  311. package/src/vite-env.d.ts +1 -0
@@ -0,0 +1,70 @@
1
+ import type { ConstrBind, Undefined } from '@dxtmisha/functional'
2
+ import type { ImageEmits } from './types'
3
+ import type { ImagePropsBasic } from './props'
4
+
5
+ export enum ImageTypeValue {
6
+ pdf = 'pdf',
7
+ file = 'file',
8
+ image = 'image',
9
+ flag = 'flag',
10
+ color = 'color',
11
+ public = 'public',
12
+ filled = 'filled',
13
+ outlined = 'outlined',
14
+ round = 'round',
15
+ sharp = 'sharp',
16
+ twoTone = 'two-tone',
17
+ material = 'material',
18
+ icon = 'icon'
19
+ }
20
+
21
+ export type ImageElement = HTMLElement | undefined
22
+
23
+ export type ImageCoordinatorItem
24
+ = [number]
25
+ | [number, number]
26
+ | [number, number, number]
27
+ | [number, number, number, number]
28
+ | Undefined
29
+
30
+ export type ImageSize<T = number> = {
31
+ width: T
32
+ height: T
33
+ }
34
+
35
+ /**
36
+ * Parameters for the uploaded image or the one available by a direct link.
37
+ *
38
+ * Параметры для загруженного изображения или доступного по прямой ссылке.
39
+ */
40
+ export type ImageItem
41
+ = ImageSize
42
+ & {
43
+ image: HTMLImageElement
44
+ src: string
45
+ }
46
+
47
+ export type ImageTypeItem = ImageTypeValue | Undefined
48
+
49
+ export type ImageEventItem = ImageItem | string | undefined
50
+ export type ImageEventType = {
51
+ type: ImageTypeItem
52
+ }
53
+ export type ImageEventData
54
+ = ImageEventType
55
+ & {
56
+ image: ImageEventItem
57
+ }
58
+
59
+ export type ImageValue<
60
+ Image extends ImagePropsBasic = ImagePropsBasic
61
+ > = string | ConstrBind<Image> | null
62
+
63
+ export type ImageComponentsInclude = {
64
+ image: object
65
+ }
66
+ export type ImageEmitsInclude = ImageEmits
67
+
68
+ export interface ImagePropsInclude<Image extends ImagePropsBasic = ImagePropsBasic> {
69
+ image?: string | ConstrBind<Image>
70
+ }
@@ -0,0 +1,5 @@
1
+ export * from './Image'
2
+ export * from './ImageDesign'
3
+ export * from './basicTypes'
4
+ export * from './props'
5
+ export * from './types'
@@ -0,0 +1,17 @@
1
+ {
2
+ "color": {
3
+ "_type": "var"
4
+ },
5
+ "color-opacity": {
6
+ "_type": "var"
7
+ },
8
+ "~turn": {},
9
+ "~disabled": {},
10
+ "~hide": {},
11
+ "~adaptive": {},
12
+ "~size": {
13
+ "~auto": {},
14
+ "~contain": {},
15
+ "~cover": {}
16
+ }
17
+ }
@@ -0,0 +1,66 @@
1
+ interface ImagePropsToken {
2
+ // :type [!] System label / Системная метка
3
+ turn?: boolean
4
+ disabled?: boolean
5
+ hide?: boolean
6
+ adaptive?: boolean
7
+ size?: 'auto' | 'contain' | 'cover'
8
+ // :type [!] System label / Системная метка
9
+ }
10
+
11
+ export interface ImagePropsBasic {
12
+ // Value
13
+ /**
14
+ * Accepts icon name, image URL, File object or PDF link/
15
+ * Принимает название иконки, ссылку на изображение, объект File или ссылку на PDF файл
16
+ */
17
+ value?: string | any
18
+
19
+ /** Image URL/ URL изображения */
20
+ url?: string
21
+
22
+ // Adaptive
23
+ /**
24
+ * Adaptive group (e.g. for different resolutions)/
25
+ * Группа адаптивности (например, для разных разрешений)
26
+ */
27
+ adaptiveGroup?: string
28
+ /** Always use adaptivity/ Всегда использовать адаптивность */
29
+ adaptiveAlways?: boolean
30
+ /** Image object width/ Ширина объекта изображения */
31
+ objectWidth?: string | number
32
+ /** Image object height/ Высота объекта изображения */
33
+ objectHeight?: string | number
34
+
35
+ // Style
36
+ /**
37
+ * Image coordinates (e.g. for cropping or positioning)/
38
+ * Координаты изображения (например, для обрезки или позиционирования)
39
+ */
40
+ coordinator?: number[] | any
41
+ /** X position/ Позиция по оси X */
42
+ x?: string | number
43
+ /** Y position/ Позиция по оси Y */
44
+ y?: string | number
45
+ }
46
+
47
+ /**
48
+ * Type describing incoming properties.
49
+ *
50
+ * Тип, описывающий входящие свойства.
51
+ */
52
+ export interface ImageProps extends ImagePropsBasic, ImagePropsToken {
53
+ }
54
+
55
+ /**
56
+ * Default value for property.
57
+ *
58
+ * Значение по умолчанию для свойства.
59
+ */
60
+ export const defaultsImage = {
61
+ adaptiveGroup: 'basic',
62
+ ...{
63
+ // :default [!] System label / Системная метка
64
+ // :default [!] System label / Системная метка
65
+ }
66
+ }
@@ -0,0 +1,77 @@
1
+ @use "@dxtmisha/styles/properties" as ui;
2
+
3
+ @mixin mixinImage {
4
+ direction: ltr;
5
+ @include ui.flexCenter;
6
+ @include ui.absolute;
7
+ overflow: hidden;
8
+
9
+ background-position: center;
10
+ background-repeat: no-repeat;
11
+ background-size: cover;
12
+ border-radius: inherit;
13
+
14
+ transition-property: background-size, filter, opacity, transform, rotate, scale, clip-path;
15
+ transition-duration: ui.v('d.sys.transitionDuration.standard');
16
+ transform: none;
17
+
18
+ &--type {
19
+ &--public {
20
+ -webkit-mask-position: center;
21
+ -webkit-mask-repeat: no-repeat;
22
+ -webkit-mask-size: contain;
23
+ mask-position: center;
24
+ mask-repeat: no-repeat;
25
+ mask-size: ui.v('??publicMaskSize', contain);
26
+
27
+ @include ui.state('background') {
28
+ @include ui.backgroundAsColor;
29
+ }
30
+ }
31
+
32
+ &--icon {
33
+ background-size: cover;
34
+ }
35
+
36
+ &--color,
37
+ &--file,
38
+ &--image {
39
+ @include ui.disabled(ui.$designsClassName) {
40
+ filter: grayscale(1) opacity(#{var(--sys-color-opacity, ui.v('??color.opacity', 1))});
41
+ }
42
+ }
43
+
44
+ &--pdf {
45
+ > object {
46
+ width: 100%;
47
+ height: 100%;
48
+ }
49
+ }
50
+ }
51
+
52
+ &--adaptive {
53
+ background-size: 100%;
54
+ }
55
+
56
+ &--turn {
57
+ @include ui.rotate(180deg);
58
+ }
59
+
60
+ &--disabled {
61
+ color: rgba(var(--sys-color, ui.v('??color')), var(--sys-color-opacity, ui.v('??colorOpacity', 1)));
62
+ }
63
+
64
+ &--hide {
65
+ opacity: 0;
66
+ @include ui.scale(.8);
67
+ }
68
+
69
+ &.material-icons,
70
+ &.material-symbols-outlined,
71
+ &.material-symbols-rounded,
72
+ &.material-symbols-sharp {
73
+ direction: ltr;
74
+ display: inline-flex;
75
+ font-size: ui.v('??font-size', 1.5em);
76
+ }
77
+ }
@@ -0,0 +1,49 @@
1
+ import type { ComputedRef, Ref } from 'vue'
2
+ import { type ConstrClass } from '@dxtmisha/functional'
3
+
4
+ import type { ImageEventData, ImageEventItem, ImageTypeItem } from './basicTypes'
5
+
6
+ /**
7
+ * Interface for describing which components need to be connected for work.
8
+ *
9
+ * Интерфейс для описания, какие компоненты надо подключить для работы.
10
+ */
11
+ export type ImageComponents = {}
12
+
13
+ /**
14
+ * Type describing available events.
15
+ *
16
+ * Тип, описывающий доступные события.
17
+ */
18
+ export type ImageEmits = {
19
+ load: [image: ImageEventData]
20
+ }
21
+
22
+ /**
23
+ * Type describing available properties.
24
+ *
25
+ * Тип, описывающий доступные свойства.
26
+ */
27
+ export type ImageExpose = {
28
+ type: ComputedRef<ImageTypeItem>
29
+ data: Ref<ImageEventItem>
30
+ }
31
+
32
+ /**
33
+ * Type describing available slots.
34
+ *
35
+ * Тип, описывающий доступные слоты.
36
+ */
37
+ export interface ImageSlots {
38
+ }
39
+
40
+ /**
41
+ * Type describing subclasses.
42
+ *
43
+ * Тип, описывающий подклассы.
44
+ */
45
+ export type ImageClasses = {
46
+ main: ConstrClass
47
+ // :classes [!] System label / Системная метка
48
+ // :classes [!] System label / Системная метка
49
+ }
@@ -0,0 +1,267 @@
1
+ import { toRef, type Ref, type ToRefs, computed } from 'vue'
2
+ import {
3
+ type ConstrBind,
4
+ type ConstrEmit,
5
+ DesignComp,
6
+ ListData,
7
+ type ListDataItem,
8
+ type ListList,
9
+ toBinds
10
+ } from '@dxtmisha/functional'
11
+
12
+ import { EventClickInclude } from '../../classes/EventClickInclude'
13
+
14
+ import { WindowClassesInclude } from '../Window'
15
+
16
+ import { ListSearch } from './ListSearch'
17
+ import { ListFocus } from './ListFocus'
18
+ import { ListGo } from './ListGo'
19
+ import { ListControl } from './ListControl'
20
+
21
+ import type { ListComponents, ListEmits, ListSlots } from './types'
22
+ import type { ListProps } from './props'
23
+ import type { IconValue } from '../Icon'
24
+
25
+ /** Maximum number of lists/ Максимальное количество списков */
26
+ let listIdMax = 1
27
+
28
+ /**
29
+ * List
30
+ */
31
+ export class List {
32
+ readonly search: ListSearch
33
+ readonly focus: ListFocus
34
+
35
+ readonly data: ListData
36
+ readonly event: EventClickInclude
37
+
38
+ readonly go: ListGo
39
+ readonly control: ListControl
40
+
41
+ readonly windowClasses: WindowClassesInclude
42
+
43
+ /** Unique list identifier/ Уникальный идентификатор списка */
44
+ protected readonly id: number = ++listIdMax
45
+
46
+ /**
47
+ * Constructor
48
+ * @param props input data/ входные данные
49
+ * @param refs input data in the form of reactive elements/ входные данные в виде реактивных элементов
50
+ * @param element input element/ элемент ввода
51
+ * @param classDesign design name/ название дизайна
52
+ * @param className class name/ название класса
53
+ * @param components object for working with components/ объект для работы с компонентами
54
+ * @param slots object for working with slots/ объект для работы со слотами
55
+ * @param emits the function is called when an event is triggered/ функция вызывается, когда срабатывает событие
56
+ */
57
+ constructor(
58
+ protected readonly props: ListProps,
59
+ protected readonly refs: ToRefs<ListProps>,
60
+ protected readonly element: Ref<HTMLElement | undefined>,
61
+ protected readonly classDesign: string,
62
+ protected readonly className: string,
63
+ protected readonly components?: DesignComp<ListComponents, ListProps>,
64
+ protected readonly slots?: ListSlots,
65
+ protected readonly emits?: ConstrEmit<ListEmits>
66
+ ) {
67
+ this.search = new ListSearch(this.props)
68
+ this.focus = new ListFocus(this.props, this.element, this.id)
69
+
70
+ this.data = new ListData(
71
+ toRef(this.props, 'list'),
72
+ this.focus.focus,
73
+ this.search.highlight,
74
+ this.refs.highlightLengthStart,
75
+ this.refs.selected,
76
+ this.refs.keyValue,
77
+ this.refs.keyLabel,
78
+ this.refs.liteThreshold
79
+ )
80
+
81
+ this.go = new ListGo(this.props, this.focus, this.data, this.emits)
82
+ this.control = new ListControl(this.props, this.search, this.data, this.go)
83
+
84
+ this.event = new EventClickInclude(undefined, undefined, emits)
85
+ this.windowClasses = new WindowClassesInclude(classDesign)
86
+ }
87
+
88
+ /**
89
+ * Computed list data
90
+ *
91
+ * Вычисляемые данные списка
92
+ * */
93
+ readonly list = computed<ListList>(() => {
94
+ if (this.props.lite) {
95
+ return this.data.liteData.value
96
+ }
97
+
98
+ return this.data.fullData.value
99
+ })
100
+
101
+ /**
102
+ * Computed binding properties for list items/
103
+ * Вычисляемые привязочные свойства для элементов списка
104
+ * */
105
+ protected readonly itemBinds = computed(() => {
106
+ return {
107
+ tag: this.props.tag,
108
+ divider: this.props.divider,
109
+ onClick: this.event.onClick,
110
+ ...(this.props.itemAttrs ?? {}),
111
+ listId: this.id
112
+ }
113
+ })
114
+
115
+ /**
116
+ * Returns information about the opening status of a group item.
117
+ *
118
+ * Возвращает информацию о статусе открытия группового элемента.
119
+ * @param item List item data/ данные элемента списка
120
+ */
121
+ isOpenGroup(
122
+ item: ConstrBind<ListDataItem>
123
+ ): boolean {
124
+ const data = this.data.getSubList(item)
125
+
126
+ return data.isSelected.value
127
+ || data.isFocus()
128
+ || data.isHighlight()
129
+ }
130
+
131
+ /**
132
+ * Gets binding properties for a list item
133
+ *
134
+ * Получает привязочные свойства для элемента списка
135
+ * @param item List item data/ данные элемента списка
136
+ */
137
+ getItem(
138
+ item: ConstrBind<ListDataItem>
139
+ ) {
140
+ return toBinds(
141
+ this.itemBinds.value,
142
+ item,
143
+ { key: item.value }
144
+ )
145
+ }
146
+
147
+ /**
148
+ * Gets binding properties for a group item in the list
149
+ *
150
+ * Получает привязочные свойства для группового элемента в списке
151
+ * @param item List item data/ данные элемента списка
152
+ */
153
+ getItemGroup(
154
+ item: ConstrBind<ListDataItem>
155
+ ) {
156
+ return toBinds(
157
+ this.itemBinds.value,
158
+ this.props.itemGroupAttrs,
159
+ item,
160
+ {
161
+ key: item.value,
162
+ class: `${this.className}__group`
163
+ }
164
+ )
165
+ }
166
+
167
+ /**
168
+ * Gets binding properties for a menu item in the list
169
+ *
170
+ * Получает привязочные свойства для элемента меню в списке
171
+ * @param item List item data/ данные элемента списка
172
+ */
173
+ getItemMenu(
174
+ item: ConstrBind<ListDataItem>
175
+ ) {
176
+ return toBinds(
177
+ this.itemBinds.value,
178
+ this.props.itemMenuAttrs,
179
+ item,
180
+ {
181
+ key: item.value,
182
+ class: `${this.className}__menu`
183
+ }
184
+ )
185
+ }
186
+
187
+ /**
188
+ * Gets binding properties for a group management item with down arrow
189
+ *
190
+ * Получает привязочные свойства для элемента управления группой со стрелкой вниз
191
+ * @param item List item data/ данные элемента списка
192
+ * @param open Whether the group is open/ открыта ли группа
193
+ */
194
+ getItemManagementFormGroup(
195
+ item: ConstrBind<ListDataItem>,
196
+ open: boolean
197
+ ): ConstrBind<ListDataItem> {
198
+ return this.getItemManagement(
199
+ item,
200
+ open,
201
+ this.props.iconArrowDown
202
+ )
203
+ }
204
+
205
+ /**
206
+ * Gets binding properties for a menu management item with right arrow
207
+ *
208
+ * Получает привязочные свойства для элемента управления меню со стрелкой вправо
209
+ * @param item List item data/ данные элемента списка
210
+ * @param open Whether the menu is open/ открыто ли меню
211
+ */
212
+ getItemManagementFormMenu(
213
+ item: ConstrBind<ListDataItem>,
214
+ open: boolean
215
+ ): ConstrBind<ListDataItem> {
216
+ return this.getItemManagement(
217
+ item,
218
+ open,
219
+ this.props.iconArrowRight
220
+ )
221
+ }
222
+
223
+ /**
224
+ * Returns a sublist for a group item.
225
+ *
226
+ * Возвращает подсписок для группового элемента.
227
+ * @param item List item data/ данные элемента списка
228
+ */
229
+ getList(
230
+ item: ConstrBind<ListDataItem>
231
+ ) {
232
+ return this.data.getSubList(item).fullData.value
233
+ }
234
+
235
+ /**
236
+ * Internal method to create management item binding properties
237
+ *
238
+ * Внутренний метод для создания привязочных свойств элемента управления
239
+ * @param item List item data/ данные элемента списка
240
+ * @param open Whether the item is open/ открыт ли элемент
241
+ * @param icon Icon to display/ иконка для отображения
242
+ */
243
+ protected getItemManagement(
244
+ item: ConstrBind<ListDataItem>,
245
+ open: boolean,
246
+ icon?: IconValue
247
+ ): ConstrBind<ListDataItem> {
248
+ return toBinds(
249
+ this.itemBinds.value,
250
+ this.props.itemManagementAttrs,
251
+ item,
252
+ {
253
+ 'class': [
254
+ `${this.className}__management`,
255
+ this.windowClasses.get().static
256
+ ],
257
+ 'focus': item?.index === this.focus.focus.value,
258
+ 'selectedChild': this.isOpenGroup(item),
259
+ open,
260
+ 'iconTurn': open,
261
+ 'iconTrailing': icon,
262
+ 'iconTrailingTurnOnly': true,
263
+ 'data-status': open ? 'open' : 'close'
264
+ }
265
+ )
266
+ }
267
+ }