@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.
- package/LICENSE +21 -0
- package/README.md +136 -0
- package/package.json +124 -0
- package/src/classes/CaptionInclude.ts +71 -0
- package/src/classes/DescriptionInclude.ts +70 -0
- package/src/classes/EnabledInclude.ts +56 -0
- package/src/classes/EventClickInclude.ts +138 -0
- package/src/classes/LabelHighlightInclude.ts +90 -0
- package/src/classes/LabelInclude.ts +171 -0
- package/src/classes/LabelNumberInclude.ts +70 -0
- package/src/classes/ModelInclude.ts +49 -0
- package/src/classes/PrefixInclude.ts +71 -0
- package/src/classes/SuffixInclude.ts +71 -0
- package/src/classes/field/FieldAttributesInclude.ts +100 -0
- package/src/classes/field/FieldChangeInclude.ts +52 -0
- package/src/classes/field/FieldCodeInclude.ts +69 -0
- package/src/classes/field/FieldElementInclude.ts +97 -0
- package/src/classes/field/FieldInputCheckInclude.ts +128 -0
- package/src/classes/field/FieldMatchInclude.ts +101 -0
- package/src/classes/field/FieldPatternInclude.ts +42 -0
- package/src/classes/field/FieldTypeInclude.ts +42 -0
- package/src/classes/field/FieldValidationInclude.ts +196 -0
- package/src/classes/field/FieldValueInclude.ts +318 -0
- package/src/classes/field/FieldVisibilityInclude.ts +21 -0
- package/src/constructors/Badge/Badge.ts +73 -0
- package/src/constructors/Badge/BadgeDesign.tsx +127 -0
- package/src/constructors/Badge/BadgeInclude.ts +78 -0
- package/src/constructors/Badge/basicTypes.ts +15 -0
- package/src/constructors/Badge/index.ts +5 -0
- package/src/constructors/Badge/properties.json +36 -0
- package/src/constructors/Badge/props.ts +43 -0
- package/src/constructors/Badge/style.scss +83 -0
- package/src/constructors/Badge/types.ts +47 -0
- package/src/constructors/Bars/Bars.ts +188 -0
- package/src/constructors/Bars/BarsAction.ts +57 -0
- package/src/constructors/Bars/BarsDesign.tsx +229 -0
- package/src/constructors/Bars/BarsInclude.ts +116 -0
- package/src/constructors/Bars/basicTypes.ts +40 -0
- package/src/constructors/Bars/index.ts +6 -0
- package/src/constructors/Bars/properties.json +6 -0
- package/src/constructors/Bars/props.ts +63 -0
- package/src/constructors/Bars/style.scss +18 -0
- package/src/constructors/Bars/types.ts +58 -0
- package/src/constructors/Button/Button.ts +88 -0
- package/src/constructors/Button/ButtonDesign.tsx +136 -0
- package/src/constructors/Button/ButtonInclude.ts +80 -0
- package/src/constructors/Button/basicTypes.ts +12 -0
- package/src/constructors/Button/index.ts +5 -0
- package/src/constructors/Button/properties.json +84 -0
- package/src/constructors/Button/props.ts +55 -0
- package/src/constructors/Button/style.scss +96 -0
- package/src/constructors/Button/types.ts +56 -0
- package/src/constructors/Cell/Cell.ts +127 -0
- package/src/constructors/Cell/CellDesign.tsx +203 -0
- package/src/constructors/Cell/basicTypes.ts +6 -0
- package/src/constructors/Cell/index.ts +5 -0
- package/src/constructors/Cell/properties.json +52 -0
- package/src/constructors/Cell/props.ts +61 -0
- package/src/constructors/Cell/style.scss +80 -0
- package/src/constructors/Cell/types.ts +68 -0
- package/src/constructors/Chip/Chip.ts +33 -0
- package/src/constructors/Chip/ChipDesign.tsx +26 -0
- package/src/constructors/Chip/basicTypes.ts +0 -0
- package/src/constructors/Chip/index.ts +4 -0
- package/src/constructors/Chip/properties.json +3 -0
- package/src/constructors/Chip/props.ts +44 -0
- package/src/constructors/Chip/style.scss +6 -0
- package/src/constructors/Chip/types.ts +53 -0
- package/src/constructors/Field/Field.ts +147 -0
- package/src/constructors/Field/FieldDesign.tsx +372 -0
- package/src/constructors/Field/FieldIcons.ts +99 -0
- package/src/constructors/Field/FieldInclude.ts +72 -0
- package/src/constructors/Field/FieldSize.ts +93 -0
- package/src/constructors/Field/basicTypes.ts +90 -0
- package/src/constructors/Field/index.ts +5 -0
- package/src/constructors/Field/properties.json +86 -0
- package/src/constructors/Field/props.ts +88 -0
- package/src/constructors/Field/style.scss +556 -0
- package/src/constructors/Field/types.ts +78 -0
- package/src/constructors/FieldCounter/FieldCounter.ts +75 -0
- package/src/constructors/FieldCounter/FieldCounterDesign.tsx +122 -0
- package/src/constructors/FieldCounter/FieldCounterInclude.ts +98 -0
- package/src/constructors/FieldCounter/basicTypes.ts +25 -0
- package/src/constructors/FieldCounter/index.ts +6 -0
- package/src/constructors/FieldCounter/properties.json +3 -0
- package/src/constructors/FieldCounter/props.ts +32 -0
- package/src/constructors/FieldCounter/style.scss +4 -0
- package/src/constructors/FieldCounter/types.ts +42 -0
- package/src/constructors/FieldLabel/FieldLabel.ts +93 -0
- package/src/constructors/FieldLabel/FieldLabelDesign.tsx +156 -0
- package/src/constructors/FieldLabel/FieldLabelInclude.ts +91 -0
- package/src/constructors/FieldLabel/basicTypes.ts +34 -0
- package/src/constructors/FieldLabel/index.ts +6 -0
- package/src/constructors/FieldLabel/properties.json +4 -0
- package/src/constructors/FieldLabel/props.ts +40 -0
- package/src/constructors/FieldLabel/style.scss +10 -0
- package/src/constructors/FieldLabel/types.ts +49 -0
- package/src/constructors/FieldMessage/FieldMessage.ts +79 -0
- package/src/constructors/FieldMessage/FieldMessageDesign.tsx +159 -0
- package/src/constructors/FieldMessage/FieldMessageInclude.ts +105 -0
- package/src/constructors/FieldMessage/FieldMessageMessage.ts +54 -0
- package/src/constructors/FieldMessage/basicTypes.ts +27 -0
- package/src/constructors/FieldMessage/index.ts +6 -0
- package/src/constructors/FieldMessage/properties.json +9 -0
- package/src/constructors/FieldMessage/props.ts +40 -0
- package/src/constructors/FieldMessage/style.scss +13 -0
- package/src/constructors/FieldMessage/types.ts +49 -0
- package/src/constructors/Icon/Icon.ts +105 -0
- package/src/constructors/Icon/IconDesign.tsx +157 -0
- package/src/constructors/Icon/IconInclude.ts +64 -0
- package/src/constructors/Icon/IconLiteInclude.ts +121 -0
- package/src/constructors/Icon/IconTrailingInclude.ts +106 -0
- package/src/constructors/Icon/basicTypes.ts +50 -0
- package/src/constructors/Icon/index.ts +8 -0
- package/src/constructors/Icon/properties.json +25 -0
- package/src/constructors/Icon/props.ts +54 -0
- package/src/constructors/Icon/style.scss +106 -0
- package/src/constructors/Icon/types.ts +46 -0
- package/src/constructors/Image/Image.ts +184 -0
- package/src/constructors/Image/ImageAdaptiveGroup.ts +230 -0
- package/src/constructors/Image/ImageAdaptiveItem.ts +295 -0
- package/src/constructors/Image/ImageBackground.ts +127 -0
- package/src/constructors/Image/ImageCalculation.ts +184 -0
- package/src/constructors/Image/ImageCalculationList.ts +61 -0
- package/src/constructors/Image/ImageCoordinator.ts +104 -0
- package/src/constructors/Image/ImageData.ts +99 -0
- package/src/constructors/Image/ImageDesign.tsx +137 -0
- package/src/constructors/Image/ImageFile.ts +137 -0
- package/src/constructors/Image/ImageInclude.ts +53 -0
- package/src/constructors/Image/ImagePdf.ts +44 -0
- package/src/constructors/Image/ImagePosition.ts +49 -0
- package/src/constructors/Image/ImageType.ts +83 -0
- package/src/constructors/Image/basicTypes.ts +70 -0
- package/src/constructors/Image/index.ts +5 -0
- package/src/constructors/Image/properties.json +17 -0
- package/src/constructors/Image/props.ts +66 -0
- package/src/constructors/Image/style.scss +77 -0
- package/src/constructors/Image/types.ts +49 -0
- package/src/constructors/List/List.ts +267 -0
- package/src/constructors/List/ListControl.ts +194 -0
- package/src/constructors/List/ListDesign.tsx +382 -0
- package/src/constructors/List/ListFocus.ts +196 -0
- package/src/constructors/List/ListGo.ts +283 -0
- package/src/constructors/List/ListSearch.ts +113 -0
- package/src/constructors/List/basicTypes.ts +3 -0
- package/src/constructors/List/index.ts +5 -0
- package/src/constructors/List/properties.json +16 -0
- package/src/constructors/List/props.ts +76 -0
- package/src/constructors/List/style.scss +36 -0
- package/src/constructors/List/types.ts +66 -0
- package/src/constructors/ListGroup/ListGroup.ts +53 -0
- package/src/constructors/ListGroup/ListGroupDesign.tsx +180 -0
- package/src/constructors/ListGroup/ListGroupOpen.ts +56 -0
- package/src/constructors/ListGroup/basicTypes.ts +3 -0
- package/src/constructors/ListGroup/index.ts +5 -0
- package/src/constructors/ListGroup/properties.json +15 -0
- package/src/constructors/ListGroup/props.ts +30 -0
- package/src/constructors/ListGroup/style.scss +18 -0
- package/src/constructors/ListGroup/types.ts +51 -0
- package/src/constructors/ListItem/ListItem.ts +115 -0
- package/src/constructors/ListItem/ListItemDesign.tsx +196 -0
- package/src/constructors/ListItem/basicTypes.ts +3 -0
- package/src/constructors/ListItem/index.ts +5 -0
- package/src/constructors/ListItem/properties.json +52 -0
- package/src/constructors/ListItem/props.ts +78 -0
- package/src/constructors/ListItem/style.scss +152 -0
- package/src/constructors/ListItem/types.ts +78 -0
- package/src/constructors/ListMenu/ListMenu.ts +52 -0
- package/src/constructors/ListMenu/ListMenuDesign.tsx +127 -0
- package/src/constructors/ListMenu/basicTypes.ts +3 -0
- package/src/constructors/ListMenu/index.ts +5 -0
- package/src/constructors/ListMenu/properties.json +19 -0
- package/src/constructors/ListMenu/props.ts +34 -0
- package/src/constructors/ListMenu/style.scss +5 -0
- package/src/constructors/ListMenu/types.ts +54 -0
- package/src/constructors/Mask/Mask.ts +321 -0
- package/src/constructors/Mask/MaskBuffer.ts +89 -0
- package/src/constructors/Mask/MaskCharacter.ts +192 -0
- package/src/constructors/Mask/MaskCharacterLength.ts +40 -0
- package/src/constructors/Mask/MaskData.ts +287 -0
- package/src/constructors/Mask/MaskDate.ts +157 -0
- package/src/constructors/Mask/MaskDesign.tsx +217 -0
- package/src/constructors/Mask/MaskEmit.ts +140 -0
- package/src/constructors/Mask/MaskEvent.ts +347 -0
- package/src/constructors/Mask/MaskFocus.ts +49 -0
- package/src/constructors/Mask/MaskFormat.ts +216 -0
- package/src/constructors/Mask/MaskItem.ts +218 -0
- package/src/constructors/Mask/MaskMatch.ts +73 -0
- package/src/constructors/Mask/MaskPattern.ts +123 -0
- package/src/constructors/Mask/MaskRight.ts +43 -0
- package/src/constructors/Mask/MaskRubber.ts +156 -0
- package/src/constructors/Mask/MaskRubberItem.ts +96 -0
- package/src/constructors/Mask/MaskRubberTransition.ts +50 -0
- package/src/constructors/Mask/MaskSelection.ts +208 -0
- package/src/constructors/Mask/MaskSpecial.ts +179 -0
- package/src/constructors/Mask/MaskType.ts +103 -0
- package/src/constructors/Mask/MaskValidation.ts +102 -0
- package/src/constructors/Mask/MaskValue.ts +225 -0
- package/src/constructors/Mask/MaskValueBasic.ts +87 -0
- package/src/constructors/Mask/MaskView.ts +169 -0
- package/src/constructors/Mask/basicTypes.ts +49 -0
- package/src/constructors/Mask/index.ts +5 -0
- package/src/constructors/Mask/properties.json +29 -0
- package/src/constructors/Mask/props.ts +70 -0
- package/src/constructors/Mask/style.scss +104 -0
- package/src/constructors/Mask/types.ts +71 -0
- package/src/constructors/Menu/Menu.ts +179 -0
- package/src/constructors/Menu/MenuDesign.tsx +244 -0
- package/src/constructors/Menu/MenuInclude.ts +110 -0
- package/src/constructors/Menu/MenuRequest.ts +101 -0
- package/src/constructors/Menu/MenuSearch.ts +49 -0
- package/src/constructors/Menu/MenuValue.ts +73 -0
- package/src/constructors/Menu/MenuWindow.ts +89 -0
- package/src/constructors/Menu/basicTypes.ts +41 -0
- package/src/constructors/Menu/index.ts +6 -0
- package/src/constructors/Menu/properties.json +17 -0
- package/src/constructors/Menu/props.ts +79 -0
- package/src/constructors/Menu/style.scss +17 -0
- package/src/constructors/Menu/types.ts +79 -0
- package/src/constructors/MotionTransform/MotionTransform.ts +87 -0
- package/src/constructors/MotionTransform/MotionTransformClassesInclude.ts +38 -0
- package/src/constructors/MotionTransform/MotionTransformDesign.tsx +242 -0
- package/src/constructors/MotionTransform/MotionTransformElement.ts +220 -0
- package/src/constructors/MotionTransform/MotionTransformEvent.ts +118 -0
- package/src/constructors/MotionTransform/MotionTransformGo.ts +47 -0
- package/src/constructors/MotionTransform/MotionTransformInclude.ts +123 -0
- package/src/constructors/MotionTransform/MotionTransformSize.ts +97 -0
- package/src/constructors/MotionTransform/MotionTransformState.ts +250 -0
- package/src/constructors/MotionTransform/basicTypes.ts +121 -0
- package/src/constructors/MotionTransform/index.ts +7 -0
- package/src/constructors/MotionTransform/properties.json +35 -0
- package/src/constructors/MotionTransform/props.ts +50 -0
- package/src/constructors/MotionTransform/style.scss +180 -0
- package/src/constructors/MotionTransform/types.ts +86 -0
- package/src/constructors/Progress/Progress.ts +184 -0
- package/src/constructors/Progress/ProgressDesign.tsx +175 -0
- package/src/constructors/Progress/ProgressInclude.ts +67 -0
- package/src/constructors/Progress/basicTypes.ts +12 -0
- package/src/constructors/Progress/index.ts +6 -0
- package/src/constructors/Progress/properties.json +47 -0
- package/src/constructors/Progress/props.ts +54 -0
- package/src/constructors/Progress/style.scss +374 -0
- package/src/constructors/Progress/types.ts +43 -0
- package/src/constructors/Ripple/Ripple.ts +46 -0
- package/src/constructors/Ripple/RippleDesign.tsx +112 -0
- package/src/constructors/Ripple/RippleInclude.ts +39 -0
- package/src/constructors/Ripple/RippleItem.ts +62 -0
- package/src/constructors/Ripple/basicTypes.ts +3 -0
- package/src/constructors/Ripple/index.ts +6 -0
- package/src/constructors/Ripple/properties.json +9 -0
- package/src/constructors/Ripple/props.ts +28 -0
- package/src/constructors/Ripple/style.scss +62 -0
- package/src/constructors/Ripple/types.ts +41 -0
- package/src/constructors/Scrollbar/Scrollbar.ts +66 -0
- package/src/constructors/Scrollbar/ScrollbarBorder.ts +243 -0
- package/src/constructors/Scrollbar/ScrollbarDesign.tsx +126 -0
- package/src/constructors/Scrollbar/ScrollbarInclude.ts +80 -0
- package/src/constructors/Scrollbar/basicTypes.ts +42 -0
- package/src/constructors/Scrollbar/index.ts +5 -0
- package/src/constructors/Scrollbar/properties.json +33 -0
- package/src/constructors/Scrollbar/props.ts +37 -0
- package/src/constructors/Scrollbar/style.scss +117 -0
- package/src/constructors/Scrollbar/types.ts +52 -0
- package/src/constructors/Skeleton/Skeleton.ts +86 -0
- package/src/constructors/Skeleton/SkeletonDesign.tsx +117 -0
- package/src/constructors/Skeleton/SkeletonInclude.ts +61 -0
- package/src/constructors/Skeleton/basicTypes.ts +16 -0
- package/src/constructors/Skeleton/const.ts +1 -0
- package/src/constructors/Skeleton/index.ts +6 -0
- package/src/constructors/Skeleton/properties.json +24 -0
- package/src/constructors/Skeleton/props.ts +28 -0
- package/src/constructors/Skeleton/style.scss +112 -0
- package/src/constructors/Skeleton/types.ts +46 -0
- package/src/constructors/Window/Window.ts +212 -0
- package/src/constructors/Window/WindowClasses.ts +180 -0
- package/src/constructors/Window/WindowClassesInclude.ts +39 -0
- package/src/constructors/Window/WindowClient.ts +93 -0
- package/src/constructors/Window/WindowCoordinates.ts +257 -0
- package/src/constructors/Window/WindowDesign.tsx +278 -0
- package/src/constructors/Window/WindowElement.ts +84 -0
- package/src/constructors/Window/WindowEmit.ts +52 -0
- package/src/constructors/Window/WindowEvent.ts +157 -0
- package/src/constructors/Window/WindowFlash.ts +70 -0
- package/src/constructors/Window/WindowHook.ts +110 -0
- package/src/constructors/Window/WindowInclude.ts +134 -0
- package/src/constructors/Window/WindowOpen.ts +292 -0
- package/src/constructors/Window/WindowOrigin.ts +85 -0
- package/src/constructors/Window/WindowPersistent.ts +89 -0
- package/src/constructors/Window/WindowPosition.ts +358 -0
- package/src/constructors/Window/WindowStatic.ts +102 -0
- package/src/constructors/Window/WindowStatus.ts +138 -0
- package/src/constructors/Window/WindowStyles.ts +78 -0
- package/src/constructors/Window/WindowVerification.ts +287 -0
- package/src/constructors/Window/basicTypes.ts +186 -0
- package/src/constructors/Window/index.ts +7 -0
- package/src/constructors/Window/properties.json +236 -0
- package/src/constructors/Window/props.ts +88 -0
- package/src/constructors/Window/style.scss +262 -0
- package/src/constructors/Window/types.ts +124 -0
- package/src/functions/getClassTegAStatic.ts +8 -0
- package/src/library.ts +36 -0
- package/src/types/captionTypes.ts +15 -0
- package/src/types/descriptionTypes.ts +15 -0
- package/src/types/enabledTypes.ts +9 -0
- package/src/types/eventClickTypes.ts +51 -0
- package/src/types/fieldTypes.ts +282 -0
- package/src/types/labelTypes.ts +30 -0
- package/src/types/modelTypes.ts +23 -0
- package/src/types/prefixTypes.ts +15 -0
- package/src/types/suffixTypes.ts +15 -0
- package/src/vite-env.d.ts +1 -0
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import type { ComputedRef, Ref } from 'vue'
|
|
2
|
+
import type { ConstrClass } from '@dxtmisha/functional'
|
|
3
|
+
|
|
4
|
+
import type { MotionTransformControlItem, MotionTransformEmitOptions } from './basicTypes'
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Interface for describing which components need to be connected for work.
|
|
8
|
+
*
|
|
9
|
+
* Интерфейс для описания, какие компоненты надо подключить для работы.
|
|
10
|
+
*/
|
|
11
|
+
export type MotionTransformComponents = {}
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Type describing available events.
|
|
15
|
+
*
|
|
16
|
+
* Тип, описывающий доступные события.
|
|
17
|
+
*/
|
|
18
|
+
export type MotionTransformEmits = {
|
|
19
|
+
'transform': [
|
|
20
|
+
event: Event | undefined,
|
|
21
|
+
options: MotionTransformEmitOptions
|
|
22
|
+
]
|
|
23
|
+
'transformLite': [
|
|
24
|
+
options: MotionTransformEmitOptions
|
|
25
|
+
]
|
|
26
|
+
|
|
27
|
+
'update:open': [value: boolean]
|
|
28
|
+
'update:modelOpen': [value: boolean]
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Type describing available properties.
|
|
33
|
+
*
|
|
34
|
+
* Тип, описывающий доступные свойства.
|
|
35
|
+
*/
|
|
36
|
+
export interface MotionTransformExpose {
|
|
37
|
+
/** Reactive state of window visibility/ Реактивное состояние видимости окна */
|
|
38
|
+
open: Ref<boolean>
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Computed state indicating if component is shown or being prepared for display/
|
|
42
|
+
* Вычисляемое состояние, указывающее отображается ли компонент или готовится к отображению
|
|
43
|
+
*/
|
|
44
|
+
isShow: ComputedRef<boolean>
|
|
45
|
+
|
|
46
|
+
/** Sets open state/ Устанавливает состояние открытия */
|
|
47
|
+
setOpen(open: boolean): void
|
|
48
|
+
|
|
49
|
+
/** Transition to opening state/ Переход в состояние открытия */
|
|
50
|
+
toOpen(): void
|
|
51
|
+
|
|
52
|
+
/** Transition to closing state/ Переход в состояние закрытия */
|
|
53
|
+
toClose(): void
|
|
54
|
+
|
|
55
|
+
/** Toggles open state/ Переключает состояние открытия */
|
|
56
|
+
toggle(): void
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Type describing available slots.
|
|
61
|
+
*
|
|
62
|
+
* Тип, описывающий доступные слоты.
|
|
63
|
+
*/
|
|
64
|
+
export interface MotionTransformSlots {
|
|
65
|
+
/** Head slot for controls/ Слот шапки для элементов управления */
|
|
66
|
+
head? (props: MotionTransformControlItem): any
|
|
67
|
+
/** Body slot for content/ Слот тела для содержимого */
|
|
68
|
+
body? (props: MotionTransformControlItem): any
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Type describing subclasses.
|
|
73
|
+
*
|
|
74
|
+
* Тип, описывающий подклассы.
|
|
75
|
+
*/
|
|
76
|
+
export type MotionTransformClasses = {
|
|
77
|
+
main: ConstrClass
|
|
78
|
+
// :classes [!] System label / Системная метка
|
|
79
|
+
context: string
|
|
80
|
+
head: string
|
|
81
|
+
body: string
|
|
82
|
+
backdrop: string
|
|
83
|
+
scrim: string
|
|
84
|
+
clickNone: string
|
|
85
|
+
// :classes [!] System label / Системная метка
|
|
86
|
+
}
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
import { computed, ref, type Ref, type ToRefs, watch } from 'vue'
|
|
2
|
+
import { type ConstrClassObject, type ConstrEmit, type ConstrStyles, DesignComp, toNumber } from '@dxtmisha/functional'
|
|
3
|
+
|
|
4
|
+
import type { ProgressComponents, ProgressEmits, ProgressSlots } from './types'
|
|
5
|
+
import type { ProgressProps } from './props'
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Base class for working with the loader.
|
|
9
|
+
*
|
|
10
|
+
* Базовый класс для работы с загрузчиком.
|
|
11
|
+
*/
|
|
12
|
+
export class Progress {
|
|
13
|
+
protected timeout?: any
|
|
14
|
+
|
|
15
|
+
readonly hide = ref<boolean>(false)
|
|
16
|
+
readonly visible = ref<boolean>(false)
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Constructor
|
|
20
|
+
* @param props input data/ входные данные
|
|
21
|
+
* @param refs input data in the form of reactive elements/ входные данные в виде реактивных элементов
|
|
22
|
+
* @param element input element/ элемент ввода
|
|
23
|
+
* @param classDesign design name/ название дизайна
|
|
24
|
+
* @param className class name/ название класса
|
|
25
|
+
* @param components object for working with components/ объект для работы с компонентами
|
|
26
|
+
* @param slots object for working with slots/ объект для работы со слотами
|
|
27
|
+
* @param emits the function is called when an event is triggered/ функция вызывается, когда срабатывает событие
|
|
28
|
+
*/
|
|
29
|
+
constructor(
|
|
30
|
+
protected readonly props: ProgressProps,
|
|
31
|
+
protected readonly refs: ToRefs<ProgressProps>,
|
|
32
|
+
protected readonly element: Ref<HTMLElement | undefined>,
|
|
33
|
+
protected readonly classDesign: string,
|
|
34
|
+
protected readonly className: string,
|
|
35
|
+
protected readonly components?: DesignComp<ProgressComponents, ProgressProps>,
|
|
36
|
+
protected readonly slots?: ProgressSlots,
|
|
37
|
+
protected readonly emits?: ConstrEmit<ProgressEmits>
|
|
38
|
+
) {
|
|
39
|
+
watch(
|
|
40
|
+
[refs.visible],
|
|
41
|
+
this.switch,
|
|
42
|
+
{ immediate: true }
|
|
43
|
+
)
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Returns the tag type for the element.
|
|
48
|
+
*
|
|
49
|
+
* Возвращает тип тега для элемента.
|
|
50
|
+
*/
|
|
51
|
+
readonly tag = computed<string>(() => this.props.circular ? 'svg' : 'div')
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Returns values.
|
|
55
|
+
*
|
|
56
|
+
* Возвращает значения.
|
|
57
|
+
*/
|
|
58
|
+
readonly value = computed(() => toNumber(this.props.value ?? 0))
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* Returns values in percentages.
|
|
62
|
+
*
|
|
63
|
+
* Возвращает значения в процентах.
|
|
64
|
+
*/
|
|
65
|
+
readonly valueInPercent = computed<string | null>(() => {
|
|
66
|
+
if (this.isValue()) {
|
|
67
|
+
const value = this.value.value
|
|
68
|
+
const percent = (100 / this.getMax() * value)
|
|
69
|
+
|
|
70
|
+
if (this.props.circular) {
|
|
71
|
+
return percent.toString()
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
return `${100 - percent}%`
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
return null
|
|
78
|
+
})
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* Values for the class.
|
|
82
|
+
*
|
|
83
|
+
* Значения для класса.
|
|
84
|
+
*/
|
|
85
|
+
readonly classes = computed<ConstrClassObject>(() => {
|
|
86
|
+
return {
|
|
87
|
+
[`${this.className}--hide`]: this.hide.value,
|
|
88
|
+
[`${this.className}--visible`]: this.visible.value,
|
|
89
|
+
[`${this.className}--value`]: this.isValue()
|
|
90
|
+
}
|
|
91
|
+
})
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Returns the property for style.
|
|
95
|
+
*
|
|
96
|
+
* Возвращает свойство для стиля.
|
|
97
|
+
*/
|
|
98
|
+
readonly styles = computed<ConstrStyles>(() => {
|
|
99
|
+
return {
|
|
100
|
+
[`--${this.className}-sys-value`]: this.valueInPercent.value
|
|
101
|
+
}
|
|
102
|
+
})
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* Monitors the animation event for hiding the element.
|
|
106
|
+
*
|
|
107
|
+
* Следит за событием анимации для скрытия элемента.
|
|
108
|
+
* @param animationName A string containing the value of the animation-name that generated the animation/
|
|
109
|
+
* Является DOMString содержащей значения animation-name CSS-свойств связанных с transition
|
|
110
|
+
*/
|
|
111
|
+
readonly onAnimation = ({ animationName }: AnimationEvent): void => {
|
|
112
|
+
if (animationName.match('-hidden')) {
|
|
113
|
+
this.hide.value = false
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* Checks if there are any values.
|
|
119
|
+
*
|
|
120
|
+
* Проверяет, есть ли значения.
|
|
121
|
+
*/
|
|
122
|
+
isValue(): this is { props: { value: number } } {
|
|
123
|
+
return this.value.value > 0
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
/**
|
|
127
|
+
* Returns the maximum allowable value.
|
|
128
|
+
*
|
|
129
|
+
* Возвращает максимально допустимое значение.
|
|
130
|
+
*/
|
|
131
|
+
getMax(): number {
|
|
132
|
+
return toNumber(this.props.max ?? 100)
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
/**
|
|
136
|
+
* The mode is triggered when the visible property changes to change the output status of the element.
|
|
137
|
+
*
|
|
138
|
+
* Метод срабатывает при изменении свойства visible для изменения статуса вывода элемента.
|
|
139
|
+
*/
|
|
140
|
+
protected readonly switch = (): void => {
|
|
141
|
+
const visible = this.props.visible
|
|
142
|
+
|
|
143
|
+
clearTimeout(this.timeout)
|
|
144
|
+
|
|
145
|
+
if (this.isValue()) {
|
|
146
|
+
this.reset()
|
|
147
|
+
} else if (Boolean(this.visible.value) !== visible) {
|
|
148
|
+
const delay = toNumber(this.props.delay ?? 0)
|
|
149
|
+
const delayHide = toNumber(this.props.delayHide ?? 0)
|
|
150
|
+
|
|
151
|
+
if (visible && delay) {
|
|
152
|
+
this.timeout = setTimeout(() => this.update(), delay)
|
|
153
|
+
} else if (!visible && delayHide) {
|
|
154
|
+
this.timeout = setTimeout(() => this.update(), delayHide)
|
|
155
|
+
} else {
|
|
156
|
+
this.update()
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
/**
|
|
162
|
+
* Updates dependent data when the visible property changes.
|
|
163
|
+
*
|
|
164
|
+
* Обновляет зависимые данные при изменении свойства visible.
|
|
165
|
+
*/
|
|
166
|
+
protected update(): this {
|
|
167
|
+
this.hide.value = !this.props.visible
|
|
168
|
+
this.visible.value = Boolean(this.props.visible)
|
|
169
|
+
|
|
170
|
+
return this
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
/**
|
|
174
|
+
* Resets values to their initial state.
|
|
175
|
+
*
|
|
176
|
+
* Сбрасывает значения до начального положения.
|
|
177
|
+
*/
|
|
178
|
+
protected reset(): this {
|
|
179
|
+
this.hide.value = false
|
|
180
|
+
this.visible.value = false
|
|
181
|
+
|
|
182
|
+
return this
|
|
183
|
+
}
|
|
184
|
+
}
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
import { h, type VNode } from 'vue'
|
|
2
|
+
import {
|
|
3
|
+
type ConstrOptions,
|
|
4
|
+
type ConstrStyles,
|
|
5
|
+
DesignConstructorAbstract
|
|
6
|
+
} from '@dxtmisha/functional'
|
|
7
|
+
|
|
8
|
+
import { Progress } from './Progress'
|
|
9
|
+
|
|
10
|
+
import {
|
|
11
|
+
type ProgressPropsBasic
|
|
12
|
+
} from './props'
|
|
13
|
+
import {
|
|
14
|
+
type ProgressClasses,
|
|
15
|
+
type ProgressComponents,
|
|
16
|
+
type ProgressEmits,
|
|
17
|
+
type ProgressExpose,
|
|
18
|
+
type ProgressSlots
|
|
19
|
+
} from './types'
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* ProgressDesign
|
|
23
|
+
*/
|
|
24
|
+
export class ProgressDesign<
|
|
25
|
+
COMP extends ProgressComponents,
|
|
26
|
+
EXPOSE extends ProgressExpose,
|
|
27
|
+
CLASSES extends ProgressClasses,
|
|
28
|
+
P extends ProgressPropsBasic
|
|
29
|
+
> extends DesignConstructorAbstract<
|
|
30
|
+
HTMLDivElement,
|
|
31
|
+
COMP,
|
|
32
|
+
ProgressEmits,
|
|
33
|
+
EXPOSE,
|
|
34
|
+
ProgressSlots,
|
|
35
|
+
CLASSES,
|
|
36
|
+
P
|
|
37
|
+
> {
|
|
38
|
+
protected readonly item: Progress
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Constructor
|
|
42
|
+
* @param name class name/ название класса
|
|
43
|
+
* @param props properties/ свойства
|
|
44
|
+
* @param options list of additional parameters/ список дополнительных параметров
|
|
45
|
+
*/
|
|
46
|
+
constructor(
|
|
47
|
+
name: string,
|
|
48
|
+
props: Readonly<P>,
|
|
49
|
+
options?: ConstrOptions<COMP, ProgressEmits, P>
|
|
50
|
+
) {
|
|
51
|
+
super(
|
|
52
|
+
name,
|
|
53
|
+
props,
|
|
54
|
+
options
|
|
55
|
+
)
|
|
56
|
+
|
|
57
|
+
this.item = new Progress(
|
|
58
|
+
this.props,
|
|
59
|
+
this.refs,
|
|
60
|
+
this.element,
|
|
61
|
+
this.getDesign(),
|
|
62
|
+
this.getName(),
|
|
63
|
+
this.components,
|
|
64
|
+
this.slots,
|
|
65
|
+
this.emits
|
|
66
|
+
)
|
|
67
|
+
|
|
68
|
+
this.init()
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Render elements for the circular loader.
|
|
73
|
+
*
|
|
74
|
+
* Рендер элементов для кругового загрузчика.
|
|
75
|
+
*/
|
|
76
|
+
readonly renderCircle = (): VNode[] => {
|
|
77
|
+
if (this.props.circular) {
|
|
78
|
+
return [
|
|
79
|
+
h('circle', {
|
|
80
|
+
class: this.classes?.value.circleSub,
|
|
81
|
+
cx: '24',
|
|
82
|
+
cy: '24',
|
|
83
|
+
r: '20'
|
|
84
|
+
}),
|
|
85
|
+
h('circle', {
|
|
86
|
+
class: this.classes?.value.circle,
|
|
87
|
+
cx: '24',
|
|
88
|
+
cy: '24',
|
|
89
|
+
r: '20'
|
|
90
|
+
})
|
|
91
|
+
]
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
return []
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* Render dot at the end.
|
|
99
|
+
*
|
|
100
|
+
* Рендер точки в конце.
|
|
101
|
+
*/
|
|
102
|
+
readonly renderPoint = (): VNode[] => {
|
|
103
|
+
if (
|
|
104
|
+
this.props.linear
|
|
105
|
+
&& this.props.point && (
|
|
106
|
+
this.props.value
|
|
107
|
+
|| ((this.props as any).indeterminate) === 'type1'
|
|
108
|
+
)
|
|
109
|
+
) {
|
|
110
|
+
return [h('span', { class: this.classes?.value.point })]
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
return []
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
/**
|
|
117
|
+
* Initialization of all the necessary properties for work
|
|
118
|
+
*
|
|
119
|
+
* Инициализация всех необходимых свойств для работы.
|
|
120
|
+
*/
|
|
121
|
+
protected initExpose(): EXPOSE {
|
|
122
|
+
return {} as EXPOSE
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* Improvement of the obtained list of classes.
|
|
127
|
+
*
|
|
128
|
+
* Доработка полученного списка классов.
|
|
129
|
+
*/
|
|
130
|
+
protected initClasses(): Partial<CLASSES> {
|
|
131
|
+
return {
|
|
132
|
+
main: this.item.classes.value,
|
|
133
|
+
...{
|
|
134
|
+
// :classes [!] System label / Системная метка
|
|
135
|
+
circle: this.getSubClass('circle'),
|
|
136
|
+
circleSub: this.getSubClass('circleSub'),
|
|
137
|
+
point: this.getSubClass('point')
|
|
138
|
+
// :classes [!] System label / Системная метка
|
|
139
|
+
}
|
|
140
|
+
} as Partial<CLASSES>
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* Refinement of the received list of styles.
|
|
145
|
+
*
|
|
146
|
+
* Доработка полученного списка стилей.
|
|
147
|
+
*/
|
|
148
|
+
protected initStyles(): ConstrStyles {
|
|
149
|
+
return this.item.styles.value
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
/**
|
|
153
|
+
* A method for rendering.
|
|
154
|
+
*
|
|
155
|
+
* Метод для рендеринга.
|
|
156
|
+
*/
|
|
157
|
+
protected initRender(): VNode {
|
|
158
|
+
const children: any[] = [
|
|
159
|
+
...this.renderCircle(),
|
|
160
|
+
...this.renderPoint()
|
|
161
|
+
]
|
|
162
|
+
|
|
163
|
+
return h(
|
|
164
|
+
this.item.tag.value,
|
|
165
|
+
{
|
|
166
|
+
...this.getAttrs(),
|
|
167
|
+
class: this.classes?.value.main,
|
|
168
|
+
style: this.styles?.value,
|
|
169
|
+
viewBox: '0 0 48 48',
|
|
170
|
+
onAnimationend: this.item.onAnimation
|
|
171
|
+
},
|
|
172
|
+
children
|
|
173
|
+
)
|
|
174
|
+
}
|
|
175
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { computed, type VNode } from 'vue'
|
|
2
|
+
import { type ConstrBind, DesignComponents, getBind, getRef, type RefOrNormal } from '@dxtmisha/functional'
|
|
3
|
+
|
|
4
|
+
import type { ProgressComponentInclude, ProgressPropsInclude } from './basicTypes'
|
|
5
|
+
import type { ProgressProps } from './props'
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* The class returns data for working with the Progress component
|
|
9
|
+
*
|
|
10
|
+
* Класс возвращает данные для работы с компонентом Progress
|
|
11
|
+
*/
|
|
12
|
+
export class ProgressInclude {
|
|
13
|
+
/**
|
|
14
|
+
* Constructor
|
|
15
|
+
* @param props input parameter/ входной параметр
|
|
16
|
+
* @param className class name/ название класса
|
|
17
|
+
* @param components object for working with components/ объект для работы с компонентами
|
|
18
|
+
* @param extra additional parameter or property name/ дополнительный параметр или имя свойства
|
|
19
|
+
*/
|
|
20
|
+
constructor(
|
|
21
|
+
protected readonly props: ProgressPropsInclude,
|
|
22
|
+
protected readonly className: string,
|
|
23
|
+
protected readonly components?: DesignComponents<ProgressComponentInclude, ProgressPropsInclude>,
|
|
24
|
+
protected readonly extra?: RefOrNormal<ConstrBind<ProgressProps>>
|
|
25
|
+
) {
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Checks if data is available for the Progress component/ Проверяет, есть ли данные для компонента Progress
|
|
30
|
+
*/
|
|
31
|
+
readonly is = computed<boolean>(() => Boolean(this.props.loading))
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* list of properties for the progress component/ список свойств для компонента Progress
|
|
35
|
+
*/
|
|
36
|
+
readonly binds = computed(() => {
|
|
37
|
+
const extra = getRef(this.extra)
|
|
38
|
+
|
|
39
|
+
return getBind(
|
|
40
|
+
this.props.loading,
|
|
41
|
+
{
|
|
42
|
+
...extra,
|
|
43
|
+
class: [extra?.class, `${this.className}__loading`]
|
|
44
|
+
},
|
|
45
|
+
'visible'
|
|
46
|
+
)
|
|
47
|
+
})
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Рендер компонента Progress
|
|
51
|
+
*/
|
|
52
|
+
readonly render = (): VNode[] => {
|
|
53
|
+
if (
|
|
54
|
+
this.components
|
|
55
|
+
&& this.props.loading
|
|
56
|
+
) {
|
|
57
|
+
return this.components.render(
|
|
58
|
+
'progress',
|
|
59
|
+
this.binds.value,
|
|
60
|
+
undefined,
|
|
61
|
+
'progress'
|
|
62
|
+
)
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
return []
|
|
66
|
+
}
|
|
67
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ConstrBind } from '@dxtmisha/functional'
|
|
2
|
+
import type { ProgressPropsBasic } from './props'
|
|
3
|
+
|
|
4
|
+
export type ProgressComponentInclude = {
|
|
5
|
+
progress?: object
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export interface ProgressPropsInclude<
|
|
9
|
+
Progress extends ProgressPropsBasic = ProgressPropsBasic
|
|
10
|
+
> {
|
|
11
|
+
loading?: boolean | ConstrBind<Progress>
|
|
12
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
{
|
|
2
|
+
"height": {
|
|
3
|
+
"_type": "var"
|
|
4
|
+
},
|
|
5
|
+
"background-color": {
|
|
6
|
+
"_type": "var"
|
|
7
|
+
},
|
|
8
|
+
"border-radius": {
|
|
9
|
+
"_type": "var"
|
|
10
|
+
},
|
|
11
|
+
"opacity": {
|
|
12
|
+
"_type": "var"
|
|
13
|
+
},
|
|
14
|
+
"#circle": {},
|
|
15
|
+
"#circleSub": {},
|
|
16
|
+
"point": {
|
|
17
|
+
"_type": "state",
|
|
18
|
+
"_subclass": true
|
|
19
|
+
},
|
|
20
|
+
"~linear": {
|
|
21
|
+
"_category": "appearance",
|
|
22
|
+
"_default": true
|
|
23
|
+
},
|
|
24
|
+
"~circular": {
|
|
25
|
+
"inset": {
|
|
26
|
+
"_type": "var"
|
|
27
|
+
},
|
|
28
|
+
"width": {
|
|
29
|
+
"_type": "var"
|
|
30
|
+
},
|
|
31
|
+
"_category": "appearance"
|
|
32
|
+
},
|
|
33
|
+
"~indeterminate": {
|
|
34
|
+
"~type1": {},
|
|
35
|
+
"~type2": {},
|
|
36
|
+
"~type3": {},
|
|
37
|
+
"_default": "type1"
|
|
38
|
+
},
|
|
39
|
+
"~position": {
|
|
40
|
+
"~top": {},
|
|
41
|
+
"~bottom": {},
|
|
42
|
+
"~static": {},
|
|
43
|
+
"_default": "top"
|
|
44
|
+
},
|
|
45
|
+
"~dense": {},
|
|
46
|
+
"~inverse": {}
|
|
47
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
interface ProgressPropsToken {
|
|
2
|
+
// :type [!] System label / Системная метка
|
|
3
|
+
point?: boolean
|
|
4
|
+
linear?: boolean
|
|
5
|
+
circular?: boolean
|
|
6
|
+
indeterminate?: 'type1' | 'type2' | 'type3'
|
|
7
|
+
position?: 'top' | 'bottom' | 'static'
|
|
8
|
+
dense?: boolean
|
|
9
|
+
inverse?: boolean
|
|
10
|
+
// :type [!] System label / Системная метка
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export interface ProgressPropsBasic {
|
|
14
|
+
// Status
|
|
15
|
+
visible?: boolean
|
|
16
|
+
|
|
17
|
+
// Value
|
|
18
|
+
value?: number | string
|
|
19
|
+
max?: number | string
|
|
20
|
+
|
|
21
|
+
// Style
|
|
22
|
+
linear?: boolean
|
|
23
|
+
circular?: boolean
|
|
24
|
+
point?: boolean
|
|
25
|
+
|
|
26
|
+
delay?: number | string
|
|
27
|
+
delayHide?: number | string
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Type describing incoming properties.
|
|
32
|
+
*
|
|
33
|
+
* Тип, описывающий входящие свойства.
|
|
34
|
+
*/
|
|
35
|
+
export interface ProgressProps extends ProgressPropsBasic, ProgressPropsToken {
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Default value for property.
|
|
40
|
+
*
|
|
41
|
+
* Значение по умолчанию для свойства.
|
|
42
|
+
*/
|
|
43
|
+
export const defaultsProgress = {
|
|
44
|
+
max: 100,
|
|
45
|
+
delay: 360,
|
|
46
|
+
delayHide: 200,
|
|
47
|
+
...{
|
|
48
|
+
// :default [!] System label / Системная метка
|
|
49
|
+
linear: true,
|
|
50
|
+
indeterminate: 'type1',
|
|
51
|
+
position: 'top'
|
|
52
|
+
// :default [!] System label / Системная метка
|
|
53
|
+
}
|
|
54
|
+
}
|