@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.
- package/package.json +36 -6
- package/src/classes/AriaStaticInclude.ts +269 -0
- package/src/classes/DescriptionInclude.ts +19 -2
- package/src/classes/EnabledInclude.ts +11 -0
- package/src/classes/EventClickInclude.ts +2 -2
- package/src/classes/LabelHighlightInclude.ts +35 -0
- package/src/classes/LabelInclude.ts +40 -5
- package/src/classes/ModelInclude.ts +50 -1
- package/src/classes/ModelValueInclude.ts +73 -0
- package/src/classes/TabIndexInclude.ts +260 -0
- package/src/classes/TextInclude.ts +102 -0
- package/src/classes/TouchEventInclude.ts +284 -0
- package/src/classes/field/FieldArrowInclude.ts +189 -0
- package/src/classes/field/FieldAttributesInclude.ts +87 -28
- package/src/classes/field/FieldChangeInclude.ts +1 -1
- package/src/classes/field/FieldElementInclude.ts +1 -1
- package/src/classes/field/FieldEventInclude.ts +253 -0
- package/src/classes/field/FieldInputModeInclude.ts +48 -0
- package/src/classes/field/FieldMatchInclude.ts +9 -3
- package/src/classes/field/FieldTypeInclude.ts +11 -6
- package/src/classes/field/FieldValidationInclude.ts +1 -4
- package/src/classes/field/FieldValueInclude.ts +10 -0
- package/src/constructors/Accordion/Accordion.ts +68 -0
- package/src/constructors/Accordion/AccordionDesign.tsx +192 -0
- package/src/constructors/Accordion/basicTypes.ts +0 -0
- package/src/constructors/Accordion/index.ts +5 -0
- package/src/constructors/Accordion/properties.json +16 -0
- package/src/constructors/Accordion/props.ts +55 -0
- package/src/constructors/Accordion/style.scss +12 -0
- package/src/constructors/Accordion/types.ts +63 -0
- package/src/constructors/ActionSheet/ActionSheet.ts +78 -0
- package/src/constructors/ActionSheet/ActionSheetDesign.tsx +125 -0
- package/src/constructors/ActionSheet/basicTypes.ts +0 -0
- package/src/constructors/ActionSheet/index.ts +5 -0
- package/src/constructors/ActionSheet/properties.json +14 -0
- package/src/constructors/ActionSheet/props.ts +44 -0
- package/src/constructors/ActionSheet/style.scss +25 -0
- package/src/constructors/ActionSheet/types.ts +54 -0
- package/src/constructors/Actions/Actions.ts +60 -0
- package/src/constructors/Actions/ActionsDesign.tsx +212 -0
- package/src/constructors/Actions/ActionsInclude.ts +109 -0
- package/src/constructors/Actions/basicTypes.ts +40 -0
- package/src/constructors/Actions/index.ts +6 -0
- package/src/constructors/Actions/properties.json +63 -0
- package/src/constructors/Actions/props.ts +42 -0
- package/src/constructors/Actions/style.scss +11 -0
- package/src/constructors/Actions/types.ts +52 -0
- package/src/constructors/Anchor/Anchor.ts +113 -0
- package/src/constructors/Anchor/AnchorDesign.tsx +242 -0
- package/src/constructors/Anchor/AnchorEvent.ts +76 -0
- package/src/constructors/Anchor/AnchorHref.ts +54 -0
- package/src/constructors/Anchor/AnchorIcon.ts +54 -0
- package/src/constructors/Anchor/AnchorTo.ts +46 -0
- package/src/constructors/Anchor/basicTypes.ts +9 -0
- package/src/constructors/Anchor/index.ts +5 -0
- package/src/constructors/Anchor/properties.json +3 -0
- package/src/constructors/Anchor/props.ts +54 -0
- package/src/constructors/Anchor/style.scss +10 -0
- package/src/constructors/Anchor/types.ts +47 -0
- package/src/constructors/Arrow/Arrow.ts +134 -0
- package/src/constructors/Arrow/ArrowDesign.tsx +226 -0
- package/src/constructors/Arrow/ArrowElement.ts +139 -0
- package/src/constructors/Arrow/ArrowElementTarget.ts +72 -0
- package/src/constructors/Arrow/ArrowEvent.ts +126 -0
- package/src/constructors/Arrow/ArrowInclude.ts +85 -0
- package/src/constructors/Arrow/ArrowParent.ts +100 -0
- package/src/constructors/Arrow/ArrowPosition.ts +231 -0
- package/src/constructors/Arrow/basicTypes.ts +50 -0
- package/src/constructors/Arrow/index.ts +6 -0
- package/src/constructors/Arrow/properties.json +23 -0
- package/src/constructors/Arrow/props.ts +31 -0
- package/src/constructors/Arrow/style.scss +133 -0
- package/src/constructors/Arrow/types.ts +54 -0
- package/src/constructors/Badge/BadgeDesign.tsx +4 -1
- package/src/constructors/Badge/properties.json +36 -36
- package/src/constructors/Badge/props.ts +3 -1
- package/src/constructors/Badge/types.ts +3 -3
- package/src/constructors/Bars/Bars.ts +10 -4
- package/src/constructors/Bars/BarsDesign.tsx +17 -11
- package/src/constructors/Bars/BarsInclude.ts +5 -2
- package/src/constructors/Bars/properties.json +6 -6
- package/src/constructors/Bars/props.ts +3 -1
- package/src/constructors/Bars/style.scss +4 -0
- package/src/constructors/Bars/types.ts +3 -3
- package/src/constructors/Block/Block.ts +105 -0
- package/src/constructors/Block/BlockDesign.tsx +219 -0
- package/src/constructors/Block/basicTypes.ts +0 -0
- package/src/constructors/Block/index.ts +5 -0
- package/src/constructors/Block/properties.json +10 -0
- package/src/constructors/Block/props.ts +46 -0
- package/src/constructors/Block/style.scss +11 -0
- package/src/constructors/Block/types.ts +64 -0
- package/src/constructors/Button/Button.ts +26 -2
- package/src/constructors/Button/ButtonDesign.tsx +11 -6
- package/src/constructors/Button/ButtonInclude.ts +8 -5
- package/src/constructors/Button/index.ts +1 -0
- package/src/constructors/Button/properties.json +84 -84
- package/src/constructors/Button/props.ts +5 -1
- package/src/constructors/Button/style.scss +1 -1
- package/src/constructors/Button/types.ts +2 -2
- package/src/constructors/Cell/Cell.ts +23 -6
- package/src/constructors/Cell/CellDesign.tsx +53 -22
- package/src/constructors/Cell/basicTypes.ts +33 -0
- package/src/constructors/Cell/properties.json +52 -52
- package/src/constructors/Cell/props.ts +16 -13
- package/src/constructors/Cell/style.scss +1 -1
- package/src/constructors/Cell/types.ts +3 -3
- package/src/constructors/Chip/ChipDesign.tsx +5 -5
- package/src/constructors/Chip/ChipInclude.ts +83 -0
- package/src/constructors/Chip/basicTypes.ts +12 -0
- package/src/constructors/Chip/index.ts +2 -0
- package/src/constructors/Chip/properties.json +3 -3
- package/src/constructors/Chip/types.ts +5 -5
- package/src/constructors/ChipGroup/ChipGroup.ts +74 -0
- package/src/constructors/ChipGroup/ChipGroupDesign.tsx +162 -0
- package/src/constructors/ChipGroup/basicTypes.ts +6 -0
- package/src/constructors/ChipGroup/index.ts +5 -0
- package/src/constructors/ChipGroup/properties.json +3 -0
- package/src/constructors/ChipGroup/props.ts +50 -0
- package/src/constructors/ChipGroup/style.scss +6 -0
- package/src/constructors/ChipGroup/types.ts +47 -0
- package/src/constructors/Dialog/Dialog.ts +145 -0
- package/src/constructors/Dialog/DialogDesign.tsx +135 -0
- package/src/constructors/Dialog/basicTypes.ts +0 -0
- package/src/constructors/Dialog/index.ts +5 -0
- package/src/constructors/Dialog/properties.json +23 -0
- package/src/constructors/Dialog/props.ts +76 -0
- package/src/constructors/Dialog/style.scss +18 -0
- package/src/constructors/Dialog/types.ts +67 -0
- package/src/constructors/Field/Field.ts +58 -19
- package/src/constructors/Field/FieldDesign.tsx +35 -17
- package/src/constructors/Field/FieldInclude.ts +141 -11
- package/src/constructors/Field/basicTypes.ts +35 -19
- package/src/constructors/Field/properties.json +92 -86
- package/src/constructors/Field/props.ts +6 -3
- package/src/constructors/Field/style.scss +36 -20
- package/src/constructors/Field/types.ts +13 -13
- package/src/constructors/FieldCounter/FieldCounterDesign.tsx +1 -0
- package/src/constructors/FieldCounter/FieldCounterInclude.ts +3 -1
- package/src/constructors/FieldCounter/basicTypes.ts +1 -0
- package/src/constructors/FieldCounter/properties.json +3 -3
- package/src/constructors/FieldCounter/props.ts +5 -2
- package/src/constructors/FieldCounter/types.ts +1 -1
- package/src/constructors/FieldLabel/FieldLabelDesign.tsx +6 -2
- package/src/constructors/FieldLabel/FieldLabelInclude.ts +13 -4
- package/src/constructors/FieldLabel/properties.json +4 -4
- package/src/constructors/FieldLabel/props.ts +2 -2
- package/src/constructors/FieldLabel/types.ts +2 -2
- package/src/constructors/FieldMessage/FieldMessage.ts +19 -0
- package/src/constructors/FieldMessage/FieldMessageDesign.tsx +36 -4
- package/src/constructors/FieldMessage/FieldMessageInclude.ts +11 -1
- package/src/constructors/FieldMessage/basicTypes.ts +15 -1
- package/src/constructors/FieldMessage/properties.json +10 -9
- package/src/constructors/FieldMessage/props.ts +4 -0
- package/src/constructors/FieldMessage/style.scss +16 -1
- package/src/constructors/FieldMessage/types.ts +4 -2
- package/src/constructors/Icon/Icon.ts +37 -2
- package/src/constructors/Icon/IconDesign.tsx +46 -39
- package/src/constructors/Icon/properties.json +25 -25
- package/src/constructors/Icon/props.ts +22 -16
- package/src/constructors/Icon/types.ts +1 -1
- package/src/constructors/Image/Image.ts +68 -10
- package/src/constructors/Image/ImageBackground.ts +15 -2
- package/src/constructors/Image/ImageCoordinator.ts +4 -2
- package/src/constructors/Image/ImageData.ts +4 -0
- package/src/constructors/Image/ImageDesign.tsx +81 -15
- package/src/constructors/Image/ImageFile.ts +2 -13
- package/src/constructors/Image/ImageImg.ts +218 -0
- package/src/constructors/Image/ImagePdf.ts +2 -2
- package/src/constructors/Image/basicTypes.ts +5 -0
- package/src/constructors/Image/properties.json +17 -17
- package/src/constructors/Image/props.ts +34 -7
- package/src/constructors/Image/style.scss +42 -0
- package/src/constructors/Image/types.ts +1 -1
- package/src/constructors/Input/Input.ts +146 -0
- package/src/constructors/Input/InputDesign.tsx +174 -0
- package/src/constructors/Input/InputPassword.ts +54 -0
- package/src/constructors/Input/basicTypes.ts +3 -0
- package/src/constructors/Input/index.ts +5 -0
- package/src/constructors/Input/properties.json +2 -0
- package/src/constructors/Input/props.ts +53 -0
- package/src/constructors/Input/style.scss +5 -0
- package/src/constructors/Input/types.ts +48 -0
- package/src/constructors/List/List.ts +36 -11
- package/src/constructors/List/ListControl.ts +2 -2
- package/src/constructors/List/ListDesign.tsx +59 -38
- package/src/constructors/List/ListGo.ts +5 -3
- package/src/constructors/List/properties.json +16 -16
- package/src/constructors/List/props.ts +7 -0
- package/src/constructors/List/style.scss +14 -0
- package/src/constructors/List/types.ts +9 -9
- package/src/constructors/ListGroup/ListGroupDesign.tsx +8 -3
- package/src/constructors/ListGroup/basicTypes.ts +7 -0
- package/src/constructors/ListGroup/properties.json +15 -15
- package/src/constructors/ListGroup/props.ts +4 -4
- package/src/constructors/ListGroup/types.ts +2 -1
- package/src/constructors/ListItem/ListItem.ts +67 -7
- package/src/constructors/ListItem/ListItemDesign.tsx +13 -10
- package/src/constructors/ListItem/properties.json +52 -52
- package/src/constructors/ListItem/props.ts +24 -15
- package/src/constructors/ListItem/types.ts +12 -12
- package/src/constructors/ListMenu/ListMenu.ts +2 -1
- package/src/constructors/ListMenu/ListMenuDesign.tsx +3 -3
- package/src/constructors/ListMenu/properties.json +19 -19
- package/src/constructors/ListMenu/types.ts +3 -3
- package/src/constructors/Mask/MaskDesign.tsx +33 -28
- package/src/constructors/Mask/MaskEvent.ts +41 -2
- package/src/constructors/Mask/MaskInclude.ts +147 -0
- package/src/constructors/Mask/basicTypes.ts +19 -1
- package/src/constructors/Mask/properties.json +30 -29
- package/src/constructors/Mask/props.ts +1 -1
- package/src/constructors/Mask/style.scss +2 -4
- package/src/constructors/Mask/types.ts +4 -4
- package/src/constructors/Menu/Menu.ts +17 -5
- package/src/constructors/Menu/MenuDesign.tsx +11 -11
- package/src/constructors/Menu/MenuGo.ts +72 -0
- package/src/constructors/Menu/MenuInclude.ts +20 -10
- package/src/constructors/Menu/MenuSearch.ts +20 -1
- package/src/constructors/Menu/MenuValue.ts +7 -3
- package/src/constructors/Menu/MenuWindow.ts +2 -1
- package/src/constructors/Menu/basicTypes.ts +21 -4
- package/src/constructors/Menu/properties.json +17 -17
- package/src/constructors/Menu/props.ts +15 -3
- package/src/constructors/Menu/types.ts +6 -16
- package/src/constructors/Modal/Modal.ts +53 -0
- package/src/constructors/Modal/ModalAbstract.ts +74 -0
- package/src/constructors/Modal/ModalDesign.tsx +63 -0
- package/src/constructors/Modal/ModalDesignAbstract.tsx +226 -0
- package/src/constructors/Modal/basicTypes.ts +0 -0
- package/src/constructors/Modal/index.ts +5 -0
- package/src/constructors/Modal/properties.json +17 -0
- package/src/constructors/Modal/props.ts +45 -0
- package/src/constructors/Modal/style.scss +20 -0
- package/src/constructors/Modal/types.ts +62 -0
- package/src/constructors/MotionTransform/MotionTransform.ts +65 -8
- package/src/constructors/MotionTransform/MotionTransformDesign.tsx +55 -21
- package/src/constructors/MotionTransform/MotionTransformElement.ts +7 -2
- package/src/constructors/MotionTransform/MotionTransformInclude.ts +2 -1
- package/src/constructors/MotionTransform/MotionTransformState.ts +5 -0
- package/src/constructors/MotionTransform/basicTypes.ts +18 -2
- package/src/constructors/MotionTransform/properties.json +35 -35
- package/src/constructors/MotionTransform/props.ts +13 -7
- package/src/constructors/MotionTransform/style.scss +24 -2
- package/src/constructors/MotionTransform/types.ts +7 -7
- package/src/constructors/Progress/Progress.ts +12 -2
- package/src/constructors/Progress/ProgressDesign.tsx +75 -53
- package/src/constructors/Progress/ProgressInclude.ts +13 -1
- package/src/constructors/Progress/properties.json +47 -47
- package/src/constructors/Progress/props.ts +5 -1
- package/src/constructors/Progress/style.scss +2 -2
- package/src/constructors/Progress/types.ts +4 -4
- package/src/constructors/Ripple/Ripple.ts +1 -1
- package/src/constructors/Ripple/RippleDesign.tsx +7 -4
- package/src/constructors/Ripple/RippleItem.ts +1 -1
- package/src/constructors/Ripple/style.scss +4 -0
- package/src/constructors/Ripple/types.ts +2 -2
- package/src/constructors/Scrollbar/Scrollbar.ts +3 -3
- package/src/constructors/Scrollbar/ScrollbarDesign.tsx +1 -1
- package/src/constructors/Scrollbar/properties.json +33 -33
- package/src/constructors/Scrollbar/types.ts +1 -1
- package/src/constructors/Section/Section.ts +33 -0
- package/src/constructors/Section/SectionDesign.tsx +127 -0
- package/src/constructors/Section/basicTypes.ts +0 -0
- package/src/constructors/Section/index.ts +5 -0
- package/src/constructors/Section/properties.json +2 -0
- package/src/constructors/Section/props.ts +29 -0
- package/src/constructors/Section/style.scss +5 -0
- package/src/constructors/Section/types.ts +47 -0
- package/src/constructors/Select/Select.ts +172 -0
- package/src/constructors/Select/SelectDesign.tsx +288 -0
- package/src/constructors/Select/SelectFilter.ts +43 -0
- package/src/constructors/Select/SelectInput.ts +68 -0
- package/src/constructors/Select/basicTypes.ts +0 -0
- package/src/constructors/Select/index.ts +5 -0
- package/src/constructors/Select/properties.json +3 -0
- package/src/constructors/Select/props.ts +63 -0
- package/src/constructors/Select/style.scss +5 -0
- package/src/constructors/Select/types.ts +53 -0
- package/src/constructors/SelectValue/SelectValue.ts +95 -0
- package/src/constructors/SelectValue/SelectValueDesign.tsx +198 -0
- package/src/constructors/SelectValue/SelectValueInclude.ts +92 -0
- package/src/constructors/SelectValue/basicTypes.ts +17 -0
- package/src/constructors/SelectValue/index.ts +6 -0
- package/src/constructors/SelectValue/properties.json +7 -0
- package/src/constructors/SelectValue/props.ts +48 -0
- package/src/constructors/SelectValue/style.scss +14 -0
- package/src/constructors/SelectValue/types.ts +47 -0
- package/src/constructors/Skeleton/Skeleton.ts +1 -3
- package/src/constructors/Skeleton/SkeletonDesign.tsx +7 -1
- package/src/constructors/Skeleton/SkeletonInclude.ts +5 -0
- package/src/constructors/Skeleton/properties.json +24 -24
- package/src/constructors/Skeleton/types.ts +1 -1
- package/src/constructors/TextareaAutosize/TextareaAutosize.ts +41 -0
- package/src/constructors/TextareaAutosize/TextareaAutosizeDesign.tsx +147 -0
- package/src/constructors/TextareaAutosize/TextareaAutosizeResize.ts +109 -0
- package/src/constructors/TextareaAutosize/TextareaAutosizeValue.ts +69 -0
- package/src/constructors/TextareaAutosize/basicTypes.ts +0 -0
- package/src/constructors/TextareaAutosize/index.ts +5 -0
- package/src/constructors/TextareaAutosize/properties.json +6 -0
- package/src/constructors/TextareaAutosize/props.ts +34 -0
- package/src/constructors/TextareaAutosize/style.scss +31 -0
- package/src/constructors/TextareaAutosize/types.ts +50 -0
- package/src/constructors/Tooltip/Tooltip.ts +138 -0
- package/src/constructors/Tooltip/TooltipClasses.ts +90 -0
- package/src/constructors/Tooltip/TooltipDesign.tsx +198 -0
- package/src/constructors/Tooltip/TooltipEvent.ts +103 -0
- package/src/constructors/Tooltip/TooltipInclude.ts +114 -0
- package/src/constructors/Tooltip/TooltipOpen.ts +128 -0
- package/src/constructors/Tooltip/TooltipPosition.ts +92 -0
- package/src/constructors/Tooltip/TooltipStatus.ts +97 -0
- package/src/constructors/Tooltip/TooltipStyle.ts +123 -0
- package/src/constructors/Tooltip/basicTypes.ts +39 -0
- package/src/constructors/Tooltip/index.ts +6 -0
- package/src/constructors/Tooltip/properties.json +14 -0
- package/src/constructors/Tooltip/props.ts +49 -0
- package/src/constructors/Tooltip/style.scss +43 -0
- package/src/constructors/Tooltip/types.ts +58 -0
- package/src/constructors/Window/Window.ts +52 -16
- package/src/constructors/Window/WindowClasses.ts +33 -0
- package/src/constructors/Window/WindowClient.ts +39 -0
- package/src/constructors/Window/WindowDesign.tsx +31 -14
- package/src/constructors/Window/WindowEsc.ts +114 -0
- package/src/constructors/Window/WindowHidden.ts +120 -0
- package/src/constructors/Window/WindowInclude.ts +2 -2
- package/src/constructors/Window/WindowOpen.ts +10 -1
- package/src/constructors/Window/WindowOrigin.ts +5 -1
- package/src/constructors/Window/WindowStatic.ts +3 -1
- package/src/constructors/Window/WindowVerification.ts +8 -5
- package/src/constructors/Window/basicTypes.ts +26 -16
- package/src/constructors/Window/properties.json +239 -236
- package/src/constructors/Window/props.ts +10 -1
- package/src/constructors/Window/style.scss +11 -0
- package/src/constructors/Window/types.ts +2 -2
- package/src/functions/{getClassTegAStatic.ts → getClassTagAStatic.ts} +1 -1
- package/src/library.ts +13 -1
- package/src/types/ariaTypes.ts +366 -0
- package/src/types/descriptionTypes.ts +8 -0
- package/src/types/fieldTypes.ts +120 -16
- package/src/types/labelTypes.ts +39 -0
- package/src/types/modelTypes.ts +16 -0
- package/src/types/roleTypes.ts +88 -0
- package/src/types/textTypes.ts +33 -0
- package/src/types/touchEventTypes.ts +43 -0
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { h, type VNode } from 'vue'
|
|
2
|
+
import { toBinds } from '@dxtmisha/functional'
|
|
3
|
+
|
|
4
|
+
import { ModalDesignAbstract } from '../Modal/ModalDesignAbstract'
|
|
5
|
+
import { ActionSheet } from './ActionSheet'
|
|
6
|
+
|
|
7
|
+
import { type WindowControlItem } from '../Window'
|
|
8
|
+
import {
|
|
9
|
+
type ActionSheetPropsBasic
|
|
10
|
+
} from './props'
|
|
11
|
+
import {
|
|
12
|
+
type ActionSheetClasses,
|
|
13
|
+
type ActionSheetComponents,
|
|
14
|
+
type ActionSheetEmits,
|
|
15
|
+
type ActionSheetExpose,
|
|
16
|
+
type ActionSheetSlots
|
|
17
|
+
} from './types'
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* ActionSheetDesign
|
|
21
|
+
*/
|
|
22
|
+
export class ActionSheetDesign<
|
|
23
|
+
COMP extends ActionSheetComponents,
|
|
24
|
+
EXPOSE extends ActionSheetExpose,
|
|
25
|
+
CLASSES extends ActionSheetClasses,
|
|
26
|
+
P extends ActionSheetPropsBasic
|
|
27
|
+
> extends ModalDesignAbstract<
|
|
28
|
+
COMP,
|
|
29
|
+
ActionSheetEmits,
|
|
30
|
+
EXPOSE,
|
|
31
|
+
ActionSheetSlots,
|
|
32
|
+
CLASSES,
|
|
33
|
+
P,
|
|
34
|
+
ActionSheet
|
|
35
|
+
> {
|
|
36
|
+
/**
|
|
37
|
+
* Creates an instance of the item class.
|
|
38
|
+
*
|
|
39
|
+
* Создает экземпляр класса элемента.
|
|
40
|
+
*/
|
|
41
|
+
protected initItem(): ActionSheet {
|
|
42
|
+
return new ActionSheet(
|
|
43
|
+
this.props,
|
|
44
|
+
this.refs,
|
|
45
|
+
this.element,
|
|
46
|
+
this.getDesign(),
|
|
47
|
+
this.getName(),
|
|
48
|
+
this.components,
|
|
49
|
+
this.slots,
|
|
50
|
+
this.emits
|
|
51
|
+
)
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Improvement of the obtained list of classes.
|
|
56
|
+
*
|
|
57
|
+
* Доработка полученного списка классов.
|
|
58
|
+
*/
|
|
59
|
+
protected initClasses(): Partial<CLASSES> {
|
|
60
|
+
return {
|
|
61
|
+
main: {},
|
|
62
|
+
...{
|
|
63
|
+
// :classes [!] System label / Системная метка
|
|
64
|
+
title: this.getSubClass('title'),
|
|
65
|
+
header: this.getSubClass('header'),
|
|
66
|
+
body: this.getSubClass('body'),
|
|
67
|
+
footer: this.getSubClass('footer'),
|
|
68
|
+
touch: this.getSubClass('touch'),
|
|
69
|
+
tab: this.getSubClass('tab')
|
|
70
|
+
// :classes [!] System label / Системная метка
|
|
71
|
+
}
|
|
72
|
+
} as Partial<CLASSES>
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* A method for rendering.
|
|
77
|
+
*
|
|
78
|
+
* Метод для рендеринга.
|
|
79
|
+
*/
|
|
80
|
+
protected initRender(): VNode[] {
|
|
81
|
+
return this.item.window.render(
|
|
82
|
+
{
|
|
83
|
+
control: this.renderControl,
|
|
84
|
+
title: this.renderTitleTouch,
|
|
85
|
+
default: this.renderDefault,
|
|
86
|
+
footer: this.renderFooter
|
|
87
|
+
},
|
|
88
|
+
toBinds(
|
|
89
|
+
{
|
|
90
|
+
'class': this.classes?.value.main,
|
|
91
|
+
'data-touch': 'touch'
|
|
92
|
+
},
|
|
93
|
+
this.getAttrs()
|
|
94
|
+
)
|
|
95
|
+
)
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* Generates data for the header.
|
|
100
|
+
*
|
|
101
|
+
* Генерирует данные для заголовка.
|
|
102
|
+
* @param props data for the transferable property/ данные для передаваемого свойства
|
|
103
|
+
*/
|
|
104
|
+
protected readonly renderTitleTouch = (
|
|
105
|
+
props: WindowControlItem
|
|
106
|
+
): VNode[] => {
|
|
107
|
+
const children: any[] = this.renderTitle(props)
|
|
108
|
+
|
|
109
|
+
if (this.props.touchClose) {
|
|
110
|
+
return [h(
|
|
111
|
+
'div',
|
|
112
|
+
{
|
|
113
|
+
class: this.classes?.value.touch,
|
|
114
|
+
...this.item.touchEvent.onTouch
|
|
115
|
+
},
|
|
116
|
+
[
|
|
117
|
+
h('div', { class: this.classes?.value.tab }),
|
|
118
|
+
...children
|
|
119
|
+
]
|
|
120
|
+
)]
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
return children
|
|
124
|
+
}
|
|
125
|
+
}
|
|
File without changes
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { WindowPropsBasic, WindowPropsInclude } from '../Window'
|
|
2
|
+
import type { BarsPropsBasic, BarsPropsInclude } from '../Bars'
|
|
3
|
+
import type { ActionsPropsBasic, ActionsPropsInclude } from '../Actions'
|
|
4
|
+
|
|
5
|
+
interface ActionSheetPropsToken {
|
|
6
|
+
// :type [!] System label / Системная метка
|
|
7
|
+
// :type [!] System label / Системная метка
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export interface ActionSheetPropsBasic<
|
|
11
|
+
Window extends WindowPropsBasic = WindowPropsBasic,
|
|
12
|
+
Bars extends BarsPropsBasic = BarsPropsBasic,
|
|
13
|
+
Actions extends ActionsPropsBasic = ActionsPropsBasic
|
|
14
|
+
> extends WindowPropsInclude<Window>,
|
|
15
|
+
BarsPropsInclude<Bars>,
|
|
16
|
+
ActionsPropsInclude<Actions> {
|
|
17
|
+
// Status
|
|
18
|
+
open?: boolean
|
|
19
|
+
|
|
20
|
+
// Style
|
|
21
|
+
touchClose?: boolean
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Type describing incoming properties.
|
|
26
|
+
*
|
|
27
|
+
* Тип, описывающий входящие свойства.
|
|
28
|
+
*/
|
|
29
|
+
export interface ActionSheetProps extends ActionSheetPropsBasic, ActionSheetPropsToken {
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Default value for property.
|
|
34
|
+
*
|
|
35
|
+
* Значение по умолчанию для свойства.
|
|
36
|
+
*/
|
|
37
|
+
export const defaultsActionSheet = {
|
|
38
|
+
barsBackHide: true,
|
|
39
|
+
touchClose: true,
|
|
40
|
+
...{
|
|
41
|
+
// :default [!] System label / Системная метка
|
|
42
|
+
// :default [!] System label / Системная метка
|
|
43
|
+
}
|
|
44
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
@use "@dxtmisha/styles/properties" as ui;
|
|
2
|
+
@use "../Modal/style" as modal;
|
|
3
|
+
|
|
4
|
+
@mixin mixinActionSheet {
|
|
5
|
+
@include modal.mixinModal;
|
|
6
|
+
|
|
7
|
+
top: var(--sys-touch-move-y, 0);
|
|
8
|
+
|
|
9
|
+
&__footer {
|
|
10
|
+
justify-content: center;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
&__tab {
|
|
14
|
+
display: none;
|
|
15
|
+
|
|
16
|
+
@media (hover: none) and (pointer: coarse) {
|
|
17
|
+
display: block;
|
|
18
|
+
margin: auto;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
&__touch {
|
|
23
|
+
touch-action: none;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import type { ConstrClass } from '@dxtmisha/functional'
|
|
2
|
+
import type {
|
|
3
|
+
ModalComponents,
|
|
4
|
+
ModalEmits,
|
|
5
|
+
ModalExpose,
|
|
6
|
+
ModalSlots
|
|
7
|
+
} from '../Modal'
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Interface for describing which components need to be connected for work.
|
|
11
|
+
*
|
|
12
|
+
* Интерфейс для описания, какие компоненты надо подключить для работы.
|
|
13
|
+
*/
|
|
14
|
+
export type ActionSheetComponents = ModalComponents
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Type describing available events.
|
|
18
|
+
*
|
|
19
|
+
* Тип, описывающий доступные события.
|
|
20
|
+
*/
|
|
21
|
+
export type ActionSheetEmits = ModalEmits
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Type describing available properties.
|
|
25
|
+
*
|
|
26
|
+
* Тип, описывающий доступные свойства.
|
|
27
|
+
*/
|
|
28
|
+
export interface ActionSheetExpose extends ModalExpose {
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Type describing available slots.
|
|
33
|
+
*
|
|
34
|
+
* Тип, описывающий доступные слоты.
|
|
35
|
+
*/
|
|
36
|
+
export interface ActionSheetSlots extends ModalSlots {
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Type describing subclasses.
|
|
41
|
+
*
|
|
42
|
+
* Тип, описывающий подклассы.
|
|
43
|
+
*/
|
|
44
|
+
export type ActionSheetClasses = {
|
|
45
|
+
main: ConstrClass
|
|
46
|
+
// :classes [!] System label / Системная метка
|
|
47
|
+
title: string
|
|
48
|
+
header: string
|
|
49
|
+
body: string
|
|
50
|
+
footer: string
|
|
51
|
+
touch: string
|
|
52
|
+
tab: string
|
|
53
|
+
// :classes [!] System label / Системная метка
|
|
54
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { computed, type Ref, type ToRefs } from 'vue'
|
|
2
|
+
import { type ConstrEmit, DesignComp } from '@dxtmisha/functional'
|
|
3
|
+
|
|
4
|
+
import { EventClickInclude } from '../../classes/EventClickInclude'
|
|
5
|
+
|
|
6
|
+
import type { ActionsComponents, ActionsEmits, ActionsSlots } from './types'
|
|
7
|
+
import type { ActionsProps } from './props'
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Actions
|
|
11
|
+
*/
|
|
12
|
+
export class Actions {
|
|
13
|
+
readonly event: EventClickInclude
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Constructor
|
|
17
|
+
* @param props input data/ входные данные
|
|
18
|
+
* @param refs input data in the form of reactive elements/ входные данные в виде реактивных элементов
|
|
19
|
+
* @param element input element/ элемент ввода
|
|
20
|
+
* @param classDesign design name/ название дизайна
|
|
21
|
+
* @param className class name/ название класса
|
|
22
|
+
* @param components object for working with components/ объект для работы с компонентами
|
|
23
|
+
* @param slots object for working with slots/ объект для работы со слотами
|
|
24
|
+
* @param emits the function is called when an event is triggered/ функция вызывается, когда срабатывает событие
|
|
25
|
+
*/
|
|
26
|
+
constructor(
|
|
27
|
+
protected readonly props: ActionsProps,
|
|
28
|
+
protected readonly refs: ToRefs<ActionsProps>,
|
|
29
|
+
protected readonly element: Ref<HTMLElement | undefined>,
|
|
30
|
+
protected readonly classDesign: string,
|
|
31
|
+
protected readonly className: string,
|
|
32
|
+
protected readonly components?: DesignComp<ActionsComponents, ActionsProps>,
|
|
33
|
+
protected readonly slots?: ActionsSlots,
|
|
34
|
+
protected readonly emits?: ConstrEmit<ActionsEmits>
|
|
35
|
+
) {
|
|
36
|
+
this.event = new EventClickInclude(
|
|
37
|
+
undefined,
|
|
38
|
+
undefined,
|
|
39
|
+
emits
|
|
40
|
+
)
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Checks if the main list needs to be displayed/
|
|
45
|
+
* Проверяет, нужно ли выводить главный список
|
|
46
|
+
*/
|
|
47
|
+
readonly isList = computed<boolean>(() => Boolean(
|
|
48
|
+
this.props.list
|
|
49
|
+
|| (this.slots && 'default' in this.slots)
|
|
50
|
+
))
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Checks if the secondary list needs to be displayed/
|
|
54
|
+
* Проверяет, нужно ли выводить второстепенный список
|
|
55
|
+
*/
|
|
56
|
+
readonly isSecondary = computed<boolean>(() => Boolean(
|
|
57
|
+
this.props.listSecondary
|
|
58
|
+
|| (this.slots && 'secondary' in this.slots)
|
|
59
|
+
))
|
|
60
|
+
}
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
import { h, type VNode } from 'vue'
|
|
2
|
+
import {
|
|
3
|
+
type ConstrOptions,
|
|
4
|
+
type ConstrStyles,
|
|
5
|
+
DesignConstructorAbstract,
|
|
6
|
+
toBinds
|
|
7
|
+
} from '@dxtmisha/functional'
|
|
8
|
+
|
|
9
|
+
import { Actions } from './Actions'
|
|
10
|
+
|
|
11
|
+
import {
|
|
12
|
+
type ActionsPropsBasic
|
|
13
|
+
} from './props'
|
|
14
|
+
import {
|
|
15
|
+
type ActionsClasses,
|
|
16
|
+
type ActionsComponents,
|
|
17
|
+
type ActionsEmits,
|
|
18
|
+
type ActionsExpose,
|
|
19
|
+
type ActionsSlots
|
|
20
|
+
} from './types'
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* ActionsDesign
|
|
24
|
+
*/
|
|
25
|
+
export class ActionsDesign<
|
|
26
|
+
COMP extends ActionsComponents,
|
|
27
|
+
EXPOSE extends ActionsExpose,
|
|
28
|
+
CLASSES extends ActionsClasses,
|
|
29
|
+
P extends ActionsPropsBasic
|
|
30
|
+
> extends DesignConstructorAbstract<
|
|
31
|
+
HTMLDivElement,
|
|
32
|
+
COMP,
|
|
33
|
+
ActionsEmits,
|
|
34
|
+
EXPOSE,
|
|
35
|
+
ActionsSlots,
|
|
36
|
+
CLASSES,
|
|
37
|
+
P
|
|
38
|
+
> {
|
|
39
|
+
protected readonly item: Actions
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Constructor
|
|
43
|
+
* @param name class name/ название класса
|
|
44
|
+
* @param props properties/ свойства
|
|
45
|
+
* @param options list of additional parameters/ список дополнительных параметров
|
|
46
|
+
*/
|
|
47
|
+
constructor(
|
|
48
|
+
name: string,
|
|
49
|
+
props: Readonly<P>,
|
|
50
|
+
options?: ConstrOptions<COMP, ActionsEmits, P>
|
|
51
|
+
) {
|
|
52
|
+
super(
|
|
53
|
+
name,
|
|
54
|
+
props,
|
|
55
|
+
options
|
|
56
|
+
)
|
|
57
|
+
|
|
58
|
+
this.item = new Actions(
|
|
59
|
+
this.props,
|
|
60
|
+
this.refs,
|
|
61
|
+
this.element,
|
|
62
|
+
this.getDesign(),
|
|
63
|
+
this.getName(),
|
|
64
|
+
this.components,
|
|
65
|
+
this.slots,
|
|
66
|
+
this.emits
|
|
67
|
+
)
|
|
68
|
+
|
|
69
|
+
this.init()
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Initialization of all the necessary properties for work
|
|
74
|
+
*
|
|
75
|
+
* Инициализация всех необходимых свойств для работы.
|
|
76
|
+
*/
|
|
77
|
+
protected initExpose(): EXPOSE {
|
|
78
|
+
return {} as EXPOSE
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Improvement of the obtained list of classes.
|
|
83
|
+
*
|
|
84
|
+
* Доработка полученного списка классов.
|
|
85
|
+
*/
|
|
86
|
+
protected initClasses(): Partial<CLASSES> {
|
|
87
|
+
return {
|
|
88
|
+
main: {},
|
|
89
|
+
...{
|
|
90
|
+
// :classes [!] System label / Системная метка
|
|
91
|
+
item: this.getSubClass('item'),
|
|
92
|
+
list: this.getSubClass('list'),
|
|
93
|
+
secondary: this.getSubClass('secondary'),
|
|
94
|
+
spacer: this.getSubClass('spacer')
|
|
95
|
+
// :classes [!] System label / Системная метка
|
|
96
|
+
}
|
|
97
|
+
} as Partial<CLASSES>
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* Refinement of the received list of styles.
|
|
102
|
+
*
|
|
103
|
+
* Доработка полученного списка стилей.
|
|
104
|
+
*/
|
|
105
|
+
protected initStyles(): ConstrStyles {
|
|
106
|
+
return {}
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* A method for rendering.
|
|
111
|
+
*
|
|
112
|
+
* Метод для рендеринга.
|
|
113
|
+
*/
|
|
114
|
+
protected initRender(): VNode {
|
|
115
|
+
return h(
|
|
116
|
+
'div',
|
|
117
|
+
{
|
|
118
|
+
...this.getAttrs(),
|
|
119
|
+
class: this.classes?.value.main
|
|
120
|
+
},
|
|
121
|
+
[
|
|
122
|
+
...this.renderList(),
|
|
123
|
+
...this.renderSpacer(),
|
|
124
|
+
...this.renderSecondary()
|
|
125
|
+
]
|
|
126
|
+
)
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
/**
|
|
130
|
+
* List rendering.
|
|
131
|
+
*
|
|
132
|
+
* Рендеринг списка.
|
|
133
|
+
*/
|
|
134
|
+
protected readonly renderList = (): VNode[] => {
|
|
135
|
+
const children: any[] = []
|
|
136
|
+
|
|
137
|
+
if (this.item.isList.value) {
|
|
138
|
+
if (this.props.list) {
|
|
139
|
+
this.props.list.forEach((item, key) => {
|
|
140
|
+
this.components.renderAdd(
|
|
141
|
+
children,
|
|
142
|
+
'button',
|
|
143
|
+
toBinds(
|
|
144
|
+
{
|
|
145
|
+
onClick: this.item.event.onClick
|
|
146
|
+
},
|
|
147
|
+
this.props.buttonAttrs,
|
|
148
|
+
item,
|
|
149
|
+
{
|
|
150
|
+
class: [
|
|
151
|
+
this.classes?.value.item,
|
|
152
|
+
this.classes?.value.list
|
|
153
|
+
]
|
|
154
|
+
}
|
|
155
|
+
),
|
|
156
|
+
undefined,
|
|
157
|
+
`list-${key}`
|
|
158
|
+
)
|
|
159
|
+
})
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
this.initSlot('default', children)
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
return children
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
/**
|
|
169
|
+
* Secondary list rendering.
|
|
170
|
+
*
|
|
171
|
+
* Рендеринг вторичного списка.
|
|
172
|
+
*/
|
|
173
|
+
protected readonly renderSecondary = (): VNode[] => {
|
|
174
|
+
const children: any[] = []
|
|
175
|
+
|
|
176
|
+
if (this.item.isSecondary.value) {
|
|
177
|
+
if (this.props.listSecondary) {
|
|
178
|
+
this.props.listSecondary.forEach((item, key) => {
|
|
179
|
+
this.components.renderAdd(
|
|
180
|
+
children,
|
|
181
|
+
'button',
|
|
182
|
+
toBinds(
|
|
183
|
+
this.props.buttonSecondaryAttrs,
|
|
184
|
+
item,
|
|
185
|
+
{
|
|
186
|
+
class: [
|
|
187
|
+
this.classes?.value.item,
|
|
188
|
+
this.classes?.value.secondary
|
|
189
|
+
]
|
|
190
|
+
}
|
|
191
|
+
),
|
|
192
|
+
undefined,
|
|
193
|
+
`secondary-${key}`
|
|
194
|
+
)
|
|
195
|
+
})
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
this.initSlot('secondary', children)
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
return children
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
/**
|
|
205
|
+
* Separator rendering.
|
|
206
|
+
*
|
|
207
|
+
* Рендеринг разделителя.
|
|
208
|
+
*/
|
|
209
|
+
protected readonly renderSpacer = (): VNode[] => {
|
|
210
|
+
return [h('div', { class: this.classes?.value.spacer })]
|
|
211
|
+
}
|
|
212
|
+
}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { computed, type VNode } from 'vue'
|
|
2
|
+
import {
|
|
3
|
+
type ConstrBind,
|
|
4
|
+
type ConstrEmit,
|
|
5
|
+
DesignComponents,
|
|
6
|
+
getRef,
|
|
7
|
+
type RefOrNormal,
|
|
8
|
+
toBinds
|
|
9
|
+
} from '@dxtmisha/functional'
|
|
10
|
+
|
|
11
|
+
import type { EventClickValue } from '../../types/eventClickTypes'
|
|
12
|
+
|
|
13
|
+
import type { ActionsComponentInclude, ActionsEmitsInclude, ActionsPropsInclude } from './basicTypes'
|
|
14
|
+
import type { ActionsProps } from './props'
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* ActionsInclude class provides functionality for conditionally rendering actions components
|
|
18
|
+
* within other components. It manages the logic for determining when to display actions
|
|
19
|
+
* and configures the appropriate properties.
|
|
20
|
+
*
|
|
21
|
+
* Класс ActionsInclude предоставляет функциональность для условного рендеринга компонентов
|
|
22
|
+
* действий внутри других компонентов. Он управляет логикой определения необходимости
|
|
23
|
+
* отображения действий и настраивает соответствующие свойства.
|
|
24
|
+
*/
|
|
25
|
+
export class ActionsInclude<
|
|
26
|
+
Props extends ActionsPropsInclude = ActionsPropsInclude,
|
|
27
|
+
PropsExtra extends ConstrBind<ActionsProps> = ConstrBind<ActionsProps>
|
|
28
|
+
> {
|
|
29
|
+
/**
|
|
30
|
+
* Constructor
|
|
31
|
+
* @param props input parameter/ входной параметр
|
|
32
|
+
* @param className class name/ название класса
|
|
33
|
+
* @param components object for working with components/ объект для работы с компонентами
|
|
34
|
+
* @param emits the function is called when an event is triggered/ функция вызывается, когда срабатывает событие
|
|
35
|
+
* @param extra additional parameter or property name/ дополнительный параметр или имя свойства
|
|
36
|
+
* @param index index identifier/ идентификатор индекса
|
|
37
|
+
*/
|
|
38
|
+
constructor(
|
|
39
|
+
protected readonly props: Readonly<Props>,
|
|
40
|
+
protected readonly className: string,
|
|
41
|
+
protected readonly components?: DesignComponents<ActionsComponentInclude, Props>,
|
|
42
|
+
protected readonly emits?: ConstrEmit<ActionsEmitsInclude>,
|
|
43
|
+
protected readonly extra?: RefOrNormal<PropsExtra>,
|
|
44
|
+
protected readonly index?: string
|
|
45
|
+
) {
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Checks whether actions should be displayed/
|
|
50
|
+
* Проверяет, нужно ли отображать действия
|
|
51
|
+
*/
|
|
52
|
+
readonly is = computed(() => Boolean(
|
|
53
|
+
!this.props.actionsHide
|
|
54
|
+
&& (
|
|
55
|
+
this.binds.value.list
|
|
56
|
+
|| this.binds.value.listSecondary
|
|
57
|
+
)
|
|
58
|
+
))
|
|
59
|
+
|
|
60
|
+
/** Computed bindings for the actions/ Вычисляемые привязки для действий */
|
|
61
|
+
readonly binds = computed<PropsExtra>(() => {
|
|
62
|
+
const props = toBinds<PropsExtra>(
|
|
63
|
+
getRef(this.extra),
|
|
64
|
+
this.props.actionsAttrs,
|
|
65
|
+
{ class: `${this.className}__actions` }
|
|
66
|
+
)
|
|
67
|
+
|
|
68
|
+
return {
|
|
69
|
+
...props,
|
|
70
|
+
|
|
71
|
+
list: this.props.actionsList ?? props.list,
|
|
72
|
+
listSecondary: this.props.actionsSecondary ?? props.listSecondary,
|
|
73
|
+
onClick: this.onClick
|
|
74
|
+
}
|
|
75
|
+
})
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Render the Actions component
|
|
79
|
+
*
|
|
80
|
+
* Рендер компонента действий
|
|
81
|
+
*/
|
|
82
|
+
readonly render = (): VNode[] => {
|
|
83
|
+
if (
|
|
84
|
+
this.components
|
|
85
|
+
&& this.is.value
|
|
86
|
+
) {
|
|
87
|
+
return this.components.render(
|
|
88
|
+
'actions',
|
|
89
|
+
this.binds.value,
|
|
90
|
+
undefined,
|
|
91
|
+
this.index
|
|
92
|
+
)
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
return []
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* Handles click events from Actions and emits related events/
|
|
100
|
+
* Обрабатывает клики по действиям и испускает связанные события
|
|
101
|
+
*
|
|
102
|
+
* @param event native mouse event/ native событие мыши
|
|
103
|
+
* @param value payload with { type, value, detail }/ данные события с { type, value, detail }
|
|
104
|
+
*/
|
|
105
|
+
protected readonly onClick = (event: MouseEvent, value: EventClickValue) => {
|
|
106
|
+
this.emits?.('actions', event, value)
|
|
107
|
+
this.emits?.('actionsLite', value)
|
|
108
|
+
}
|
|
109
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { ConstrBind } from '@dxtmisha/functional'
|
|
2
|
+
|
|
3
|
+
import type { EventClickEmits } from '../../types/eventClickTypes'
|
|
4
|
+
import type { ActionsPropsBasic } from './props'
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Component map for including the Actions component/
|
|
8
|
+
* Карта компонентов для подключения компонента Actions
|
|
9
|
+
*/
|
|
10
|
+
export type ActionsComponentInclude = {
|
|
11
|
+
actions?: object
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
/** Available events for Actions/ Доступные события для Actions */
|
|
15
|
+
export type ActionsEmitsInclude = {
|
|
16
|
+
actions: EventClickEmits['click']
|
|
17
|
+
actionsLite: EventClickEmits['clickLite']
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Props used to include and configure the Actions component/
|
|
22
|
+
* Свойства для подключения и настройки компонента Actions
|
|
23
|
+
*/
|
|
24
|
+
export interface ActionsPropsInclude<
|
|
25
|
+
Actions extends ActionsPropsBasic = ActionsPropsBasic
|
|
26
|
+
> {
|
|
27
|
+
// Status
|
|
28
|
+
/** Hide actions/ Скрыть действия */
|
|
29
|
+
actionsHide?: boolean
|
|
30
|
+
|
|
31
|
+
// Value
|
|
32
|
+
/** List of action buttons/ Список кнопок действий */
|
|
33
|
+
actionsList?: ConstrBind<Actions['list']>
|
|
34
|
+
/** List of secondary action buttons/ Список вторичных кнопок действий */
|
|
35
|
+
actionsSecondary?: ConstrBind<Actions['listSecondary']>
|
|
36
|
+
|
|
37
|
+
// Style
|
|
38
|
+
/** Additional attributes for Actions component/ Дополнительные атрибуты для компонента Actions */
|
|
39
|
+
actionsAttrs?: ConstrBind<Actions>
|
|
40
|
+
}
|