@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,31 @@
|
|
|
1
|
+
interface ArrowPropsToken {
|
|
2
|
+
// :type [!] System label / Системная метка
|
|
3
|
+
position?: 'auto' | 'top' | 'bottom' | 'left' | 'right'
|
|
4
|
+
inverse?: boolean
|
|
5
|
+
// :type [!] System label / Системная метка
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export interface ArrowPropsBasic {
|
|
9
|
+
elementTarget?: HTMLElement | string
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Type describing incoming properties.
|
|
14
|
+
*
|
|
15
|
+
* Тип, описывающий входящие свойства.
|
|
16
|
+
*/
|
|
17
|
+
export interface ArrowProps extends ArrowPropsBasic, ArrowPropsToken {
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Default value for property.
|
|
22
|
+
*
|
|
23
|
+
* Значение по умолчанию для свойства.
|
|
24
|
+
*/
|
|
25
|
+
export const defaultsArrow = {
|
|
26
|
+
...{
|
|
27
|
+
// :default [!] System label / Системная метка
|
|
28
|
+
position: 'auto'
|
|
29
|
+
// :default [!] System label / Системная метка
|
|
30
|
+
}
|
|
31
|
+
}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
@use "@dxtmisha/styles/properties" as ui;
|
|
2
|
+
|
|
3
|
+
@mixin mixinArrow {
|
|
4
|
+
@include ui.initByCustom('arrowWidth', 8px);
|
|
5
|
+
@include ui.initByCustom('arrowHeight', 8px);
|
|
6
|
+
|
|
7
|
+
@include ui.initByCustom('sys.url.markBorder', unset);
|
|
8
|
+
@include ui.initByCustom('sys.background', transparent);
|
|
9
|
+
@include ui.initByCustom('sys.borderWidth', 0px);
|
|
10
|
+
@include ui.initByCustom('sys.borderColor', transparent);
|
|
11
|
+
@include ui.initByCustom('sys.borderRadius', 0px);
|
|
12
|
+
@include ui.initByCustom('sys.clipPath', unset);
|
|
13
|
+
|
|
14
|
+
@include ui.initByCustom('sys.press', calc((#{ui.v('??arrowHeight')} * 2) + (#{ui.v('??sys.borderWidth')} * 2)));
|
|
15
|
+
@include ui.initByCustom('sys.main.increase', calc(100% + (#{ui.v('??sys.borderWidth')} * 2)));
|
|
16
|
+
@include ui.initByCustom('sys.area.increase', calc(100% + (#{ui.v('??arrowHeight')} * 2)));
|
|
17
|
+
@include ui.initByCustom('sys.arrow.translateX', 0px);
|
|
18
|
+
@include ui.initByCustom('sys.arrow.translateY', 0px);
|
|
19
|
+
@include ui.initByCustom('sys.arrow.translateShift', 50%);
|
|
20
|
+
|
|
21
|
+
@include ui.absolute(calc(#{ui.v('??sys.borderWidth')} * -1));
|
|
22
|
+
z-index: 8;
|
|
23
|
+
|
|
24
|
+
width: ui.v('??sys.main.increase');
|
|
25
|
+
height: ui.v('??sys.main.increase');
|
|
26
|
+
|
|
27
|
+
border-style: inherit;
|
|
28
|
+
border-radius: inherit;
|
|
29
|
+
|
|
30
|
+
pointer-events: none;
|
|
31
|
+
|
|
32
|
+
&__parent {
|
|
33
|
+
&[data-arrow="border"] {
|
|
34
|
+
border-color: transparent !important;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
&__arrow,
|
|
39
|
+
&__arrowLine {
|
|
40
|
+
@include ui.translateX(ui.v('??sys.arrow.translateX'));
|
|
41
|
+
@include ui.translateY(ui.v('??sys.arrow.translateY'));
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
&__arrow {
|
|
45
|
+
fill: ui.v('??sys.background');
|
|
46
|
+
stroke: none;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
&__arrowLine {
|
|
50
|
+
fill: none;
|
|
51
|
+
stroke: ui.v('??sys.borderColor');
|
|
52
|
+
stroke-width: ui.v('??sys.borderWidth');
|
|
53
|
+
stroke-linejoin: round;
|
|
54
|
+
stroke-linecap: round;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
&__arrowArea {
|
|
58
|
+
@include ui.absolute(calc(#{ui.v('??arrowHeight')} * -1));
|
|
59
|
+
|
|
60
|
+
width: ui.v('??sys.area.increase');
|
|
61
|
+
height: ui.v('??sys.area.increase');
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
&__border {
|
|
65
|
+
@include ui.absolute;
|
|
66
|
+
|
|
67
|
+
border-width: ui.v('??sys.borderWidth');
|
|
68
|
+
border-color: ui.v('??sys.borderColor');
|
|
69
|
+
border-radius: inherit;
|
|
70
|
+
|
|
71
|
+
clip-path: ui.v('??sys.clipPath');
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
&__borderHidden {
|
|
75
|
+
width: ui.v('??arrowWidth');
|
|
76
|
+
height: ui.v('??arrowHeight');
|
|
77
|
+
|
|
78
|
+
@include ui.translateX(ui.v('??sys.arrow.translateX'));
|
|
79
|
+
@include ui.translateY(ui.v('??sys.arrow.translateY'));
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
&--direction {
|
|
83
|
+
&--top {
|
|
84
|
+
@include ui.initByCustom('sys.arrow.translateX', calc(ui.v('??sys.arrow.translateShift') - #{ui.v('??arrowWidth')} / 2));
|
|
85
|
+
@include ui.initByCustom('sys.arrow.translateY', 0px);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
&--bottom {
|
|
89
|
+
@include ui.initByCustom('sys.arrow.translateX', calc(ui.v('??sys.arrow.translateShift') - #{ui.v('??arrowWidth')} / 2));
|
|
90
|
+
@include ui.initByCustom('sys.arrow.translateY', calc(100% - #{ui.v('??arrowHeight')}));
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
&--left {
|
|
94
|
+
@include ui.initByCustom('sys.arrow.translateX', 0px);
|
|
95
|
+
@include ui.initByCustom('sys.arrow.translateY', calc(ui.v('??sys.arrow.translateShift') - #{ui.v('??arrowHeight')} / 2));
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
&--right {
|
|
99
|
+
@include ui.initByCustom('sys.arrow.translateX', calc(100% - #{ui.v('??arrowWidth')}));
|
|
100
|
+
@include ui.initByCustom('sys.arrow.translateY', calc(ui.v('??sys.arrow.translateShift') - #{ui.v('??arrowHeight')} / 2));
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
&--hide {
|
|
104
|
+
@include ui.subclass('arrowArea') {
|
|
105
|
+
display: none;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
&--position {
|
|
111
|
+
&--auto {
|
|
112
|
+
@include ui.initByCustom('sys.arrow.translateShift.basic', #{calc(#{ui.v('??sys.shift')} + #{ui.v('??arrowWidth')})});
|
|
113
|
+
@include ui.initByCustom('sys.arrow.translateShift.max', max(#{ui.v('??sys.arrow.translateShift.basic')}, #{ui.v('??sys.borderRadius')}));
|
|
114
|
+
@include ui.initByCustom('sys.arrow.translateShift', ui.v('??sys.arrow.translateShift.basic'));
|
|
115
|
+
|
|
116
|
+
@include ui.state('direction') {
|
|
117
|
+
&--top,
|
|
118
|
+
&--bottom {
|
|
119
|
+
@include ui.subclass('borderHidden') {
|
|
120
|
+
@include ui.translateX(calc(#{ui.v('??sys.arrow.translateX')} - #{ui.v('??arrowHeight')}));
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
&--left,
|
|
125
|
+
&--right {
|
|
126
|
+
@include ui.subclass('borderHidden') {
|
|
127
|
+
@include ui.translateY(calc(#{ui.v('??sys.arrow.translateY')} - #{ui.v('??arrowHeight')}));
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import type { ConstrClass } from '@dxtmisha/functional'
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Interface for describing which components need to be connected for work.
|
|
5
|
+
*
|
|
6
|
+
* Интерфейс для описания, какие компоненты надо подключить для работы.
|
|
7
|
+
*/
|
|
8
|
+
export type ArrowComponents = {
|
|
9
|
+
// componentName: object
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Type describing available events.
|
|
14
|
+
*
|
|
15
|
+
* Тип, описывающий доступные события.
|
|
16
|
+
*/
|
|
17
|
+
export type ArrowEmits = {
|
|
18
|
+
// load: [value: string]
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Type describing available properties.
|
|
23
|
+
*
|
|
24
|
+
* Тип, описывающий доступные свойства.
|
|
25
|
+
*/
|
|
26
|
+
export interface ArrowExpose {
|
|
27
|
+
update: () => void
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Type describing available slots.
|
|
32
|
+
*
|
|
33
|
+
* Тип, описывающий доступные слоты.
|
|
34
|
+
*/
|
|
35
|
+
export interface ArrowSlots {
|
|
36
|
+
// default? (props: any): any
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Type describing subclasses.
|
|
41
|
+
*
|
|
42
|
+
* Тип, описывающий подклассы.
|
|
43
|
+
*/
|
|
44
|
+
export type ArrowClasses = {
|
|
45
|
+
main: ConstrClass
|
|
46
|
+
// :classes [!] System label / Системная метка
|
|
47
|
+
mask: string
|
|
48
|
+
arrow: string
|
|
49
|
+
arrowLine: string
|
|
50
|
+
arrowArea: string
|
|
51
|
+
border: string
|
|
52
|
+
borderHidden: string
|
|
53
|
+
// :classes [!] System label / Системная метка
|
|
54
|
+
}
|
|
@@ -5,6 +5,7 @@ import {
|
|
|
5
5
|
DesignConstructorAbstract
|
|
6
6
|
} from '@dxtmisha/functional'
|
|
7
7
|
|
|
8
|
+
import { AriaStaticInclude } from '../../classes/AriaStaticInclude'
|
|
8
9
|
import { Badge } from './Badge'
|
|
9
10
|
|
|
10
11
|
import {
|
|
@@ -121,7 +122,9 @@ export class BadgeDesign<
|
|
|
121
122
|
return h('span', {
|
|
122
123
|
...this.getAttrs(),
|
|
123
124
|
ref: this.element,
|
|
124
|
-
class: this.classes?.value.main
|
|
125
|
+
class: this.classes?.value.main,
|
|
126
|
+
...AriaStaticInclude.role('status'),
|
|
127
|
+
...AriaStaticInclude.label(this.props.ariaLabel)
|
|
125
128
|
}, children)
|
|
126
129
|
}
|
|
127
130
|
}
|
|
@@ -1,36 +1,36 @@
|
|
|
1
|
-
{
|
|
2
|
-
"padding": {
|
|
3
|
-
"_type": "var"
|
|
4
|
-
},
|
|
5
|
-
"dotSize": {
|
|
6
|
-
"_type": "var"
|
|
7
|
-
},
|
|
8
|
-
"transition-property": "clip-path, mask-image, mask-size, opacity, transform, scale",
|
|
9
|
-
"transition-duration": "{d.sys.transitionDuration.lg.open}",
|
|
10
|
-
"transition-function": "{d.sys.transitionFunction.standard}",
|
|
11
|
-
"#label": {},
|
|
12
|
-
"#icon": {},
|
|
13
|
-
"selected": {},
|
|
14
|
-
"~hide": {
|
|
15
|
-
"transition-duration": "{d.sys.transitionDuration.lg.close}"
|
|
16
|
-
},
|
|
17
|
-
"~dot": {},
|
|
18
|
-
"~overlap": {
|
|
19
|
-
"~rectangular": {},
|
|
20
|
-
"~circular": {},
|
|
21
|
-
"~static": {},
|
|
22
|
-
"_default": "rectangular"
|
|
23
|
-
},
|
|
24
|
-
"~vertical": {
|
|
25
|
-
"~top": {},
|
|
26
|
-
"~center": {},
|
|
27
|
-
"~bottom": {},
|
|
28
|
-
"_default": "top"
|
|
29
|
-
},
|
|
30
|
-
"~horizontal": {
|
|
31
|
-
"~right": {},
|
|
32
|
-
"~center": {},
|
|
33
|
-
"~left": {},
|
|
34
|
-
"_default": "right"
|
|
35
|
-
}
|
|
36
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"padding": {
|
|
3
|
+
"_type": "var"
|
|
4
|
+
},
|
|
5
|
+
"dotSize": {
|
|
6
|
+
"_type": "var"
|
|
7
|
+
},
|
|
8
|
+
"transition-property": "clip-path, mask-image, mask-size, opacity, transform, scale",
|
|
9
|
+
"transition-duration": "{d.sys.transitionDuration.lg.open}",
|
|
10
|
+
"transition-function": "{d.sys.transitionFunction.standard}",
|
|
11
|
+
"#label": {},
|
|
12
|
+
"#icon": {},
|
|
13
|
+
"selected": {},
|
|
14
|
+
"~hide": {
|
|
15
|
+
"transition-duration": "{d.sys.transitionDuration.lg.close}"
|
|
16
|
+
},
|
|
17
|
+
"~dot": {},
|
|
18
|
+
"~overlap": {
|
|
19
|
+
"~rectangular": {},
|
|
20
|
+
"~circular": {},
|
|
21
|
+
"~static": {},
|
|
22
|
+
"_default": "rectangular"
|
|
23
|
+
},
|
|
24
|
+
"~vertical": {
|
|
25
|
+
"~top": {},
|
|
26
|
+
"~center": {},
|
|
27
|
+
"~bottom": {},
|
|
28
|
+
"_default": "top"
|
|
29
|
+
},
|
|
30
|
+
"~horizontal": {
|
|
31
|
+
"~right": {},
|
|
32
|
+
"~center": {},
|
|
33
|
+
"~left": {},
|
|
34
|
+
"_default": "right"
|
|
35
|
+
}
|
|
36
|
+
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { IconPropsBasic, IconPropsInclude } from '../Icon'
|
|
2
2
|
import type { LabelNumberProps } from '../../types/labelTypes'
|
|
3
|
+
import type { AriaLabelPropsInclude } from '../../types/ariaTypes'
|
|
3
4
|
|
|
4
5
|
interface BadgePropsToken {
|
|
5
6
|
// :type [!] System label / Системная метка
|
|
@@ -15,7 +16,8 @@ interface BadgePropsToken {
|
|
|
15
16
|
export interface BadgePropsBasic<
|
|
16
17
|
Icon extends IconPropsBasic = IconPropsBasic
|
|
17
18
|
> extends IconPropsInclude<Icon>,
|
|
18
|
-
LabelNumberProps
|
|
19
|
+
LabelNumberProps,
|
|
20
|
+
AriaLabelPropsInclude {
|
|
19
21
|
dot?: boolean
|
|
20
22
|
}
|
|
21
23
|
|
|
@@ -40,8 +40,8 @@ export interface BadgeSlots extends LabelNumberSlots {
|
|
|
40
40
|
*/
|
|
41
41
|
export type BadgeClasses = {
|
|
42
42
|
main: ConstrClass
|
|
43
|
-
// :classes [!] System label / Системная метка
|
|
44
|
-
label: string
|
|
45
|
-
icon: string
|
|
43
|
+
// :classes [!] System label / Системная метка
|
|
44
|
+
label: string
|
|
45
|
+
icon: string
|
|
46
46
|
// :classes [!] System label / Системная метка
|
|
47
47
|
}
|
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
import { computed, reactive, type Ref, type ToRefs } from 'vue'
|
|
2
2
|
import { type ConstrEmit, DesignComp, forEach, getBind, toBind } from '@dxtmisha/functional'
|
|
3
3
|
|
|
4
|
+
import { AriaStaticInclude } from '../../classes/AriaStaticInclude'
|
|
4
5
|
import { LabelInclude } from '../../classes/LabelInclude'
|
|
5
6
|
import { DescriptionInclude } from '../../classes/DescriptionInclude'
|
|
6
7
|
import { EventClickInclude } from '../../classes/EventClickInclude'
|
|
7
8
|
import { ModelInclude } from '../../classes/ModelInclude'
|
|
8
9
|
|
|
10
|
+
import { BarsAction } from './BarsAction'
|
|
9
11
|
import { WindowClassesInclude } from '../Window'
|
|
10
12
|
import { MotionTransformClassesInclude } from '../MotionTransform'
|
|
11
13
|
import { SkeletonInclude } from '../Skeleton'
|
|
12
|
-
import {
|
|
14
|
+
import { TextInclude } from '../../classes/TextInclude'
|
|
13
15
|
|
|
14
16
|
import type { BarsComponents, BarsEmits, BarsSlots } from './types'
|
|
15
17
|
import type { BarsProps } from './props'
|
|
@@ -34,6 +36,8 @@ export class Bars {
|
|
|
34
36
|
/** Подключение скелетона для текста/описания */
|
|
35
37
|
readonly skeleton: SkeletonInclude
|
|
36
38
|
|
|
39
|
+
readonly text: TextInclude
|
|
40
|
+
|
|
37
41
|
/**
|
|
38
42
|
* Constructor
|
|
39
43
|
* @param props input data/ входные данные
|
|
@@ -75,6 +79,7 @@ export class Bars {
|
|
|
75
79
|
this.windowClasses = new WindowClassesInclude(classDesign)
|
|
76
80
|
this.motionTransformClasses = new MotionTransformClassesInclude(classDesign)
|
|
77
81
|
this.skeleton = skeleton
|
|
82
|
+
this.text = new TextInclude(this.props)
|
|
78
83
|
|
|
79
84
|
new ModelInclude('action', this.emits, this.action.action)
|
|
80
85
|
}
|
|
@@ -94,7 +99,8 @@ export class Bars {
|
|
|
94
99
|
this.windowClasses.get().close,
|
|
95
100
|
this.motionTransformClasses.get().close
|
|
96
101
|
],
|
|
97
|
-
onClick: this.onClickBack
|
|
102
|
+
onClick: this.onClickBack,
|
|
103
|
+
...AriaStaticInclude.label(this.text.close.value)
|
|
98
104
|
},
|
|
99
105
|
this.props.backButton ?? {}
|
|
100
106
|
),
|
|
@@ -171,9 +177,9 @@ export class Bars {
|
|
|
171
177
|
}
|
|
172
178
|
|
|
173
179
|
/**
|
|
174
|
-
*
|
|
180
|
+
* Click handler for the "back" button
|
|
175
181
|
*
|
|
176
|
-
* Обработчик
|
|
182
|
+
* Обработчик клика по кнопке «назад»: закрывает action‑режим и проксирует событие.
|
|
177
183
|
*/
|
|
178
184
|
protected readonly onClickBack = (
|
|
179
185
|
event: MouseEvent,
|
|
@@ -5,9 +5,11 @@ import {
|
|
|
5
5
|
DesignConstructorAbstract
|
|
6
6
|
} from '@dxtmisha/functional'
|
|
7
7
|
|
|
8
|
+
import { AriaStaticInclude } from '../../classes/AriaStaticInclude'
|
|
8
9
|
import { Bars } from './Bars'
|
|
9
10
|
|
|
10
11
|
import {
|
|
12
|
+
type BarsProps,
|
|
11
13
|
type BarsPropsBasic
|
|
12
14
|
} from './props'
|
|
13
15
|
import {
|
|
@@ -25,16 +27,16 @@ export class BarsDesign<
|
|
|
25
27
|
COMP extends BarsComponents,
|
|
26
28
|
EXPOSE extends BarsExpose,
|
|
27
29
|
CLASSES extends BarsClasses,
|
|
28
|
-
P extends
|
|
30
|
+
P extends BarsProps
|
|
29
31
|
> extends DesignConstructorAbstract<
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
> {
|
|
32
|
+
HTMLDivElement,
|
|
33
|
+
COMP,
|
|
34
|
+
BarsEmits,
|
|
35
|
+
EXPOSE,
|
|
36
|
+
BarsSlots,
|
|
37
|
+
CLASSES,
|
|
38
|
+
P
|
|
39
|
+
> {
|
|
38
40
|
protected readonly item: Bars
|
|
39
41
|
|
|
40
42
|
/**
|
|
@@ -74,7 +76,10 @@ export class BarsDesign<
|
|
|
74
76
|
* Инициализация всех необходимых свойств для работы.
|
|
75
77
|
*/
|
|
76
78
|
protected initExpose(): EXPOSE {
|
|
77
|
-
return {
|
|
79
|
+
return {
|
|
80
|
+
...this.item.label.expose,
|
|
81
|
+
...this.item.description.expose
|
|
82
|
+
} as EXPOSE
|
|
78
83
|
}
|
|
79
84
|
|
|
80
85
|
/**
|
|
@@ -114,7 +119,8 @@ export class BarsDesign<
|
|
|
114
119
|
'div',
|
|
115
120
|
{
|
|
116
121
|
...this.getAttrs(),
|
|
117
|
-
class: this.classes?.value.main
|
|
122
|
+
class: this.classes?.value.main,
|
|
123
|
+
...AriaStaticInclude.live(this.props.action ? 'polite' : 'off')
|
|
118
124
|
},
|
|
119
125
|
[
|
|
120
126
|
...this.renderBackButton(),
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { computed, type VNode } from 'vue'
|
|
1
|
+
import { computed, ref, type VNode } from 'vue'
|
|
2
2
|
import {
|
|
3
3
|
type ConstrBind,
|
|
4
4
|
type ConstrEmit,
|
|
@@ -11,6 +11,7 @@ import {
|
|
|
11
11
|
import type { EventClickValue } from '../../types/eventClickTypes'
|
|
12
12
|
|
|
13
13
|
import type { BarsComponentInclude, BarsEmitsInclude, BarsPropsInclude } from './basicTypes'
|
|
14
|
+
import type { BarsExpose } from './types'
|
|
14
15
|
import type { BarsProps } from './props'
|
|
15
16
|
|
|
16
17
|
/**
|
|
@@ -26,6 +27,8 @@ export class BarsInclude<
|
|
|
26
27
|
Props extends BarsPropsInclude = BarsPropsInclude,
|
|
27
28
|
PropsExtra extends ConstrBind<BarsProps> = ConstrBind<BarsProps>
|
|
28
29
|
> {
|
|
30
|
+
readonly element = ref<BarsExpose>()
|
|
31
|
+
|
|
29
32
|
/**
|
|
30
33
|
* Constructor
|
|
31
34
|
* @param props input parameter/ входной параметр
|
|
@@ -79,7 +82,6 @@ export class BarsInclude<
|
|
|
79
82
|
* Рендер компонента панелей
|
|
80
83
|
*/
|
|
81
84
|
readonly render = (): VNode[] => {
|
|
82
|
-
console.log('this.props.barsHide', this.props.barsHide)
|
|
83
85
|
if (
|
|
84
86
|
this.components
|
|
85
87
|
&& !this.props.barsHide
|
|
@@ -87,6 +89,7 @@ export class BarsInclude<
|
|
|
87
89
|
return this.components.render(
|
|
88
90
|
'bars',
|
|
89
91
|
{
|
|
92
|
+
ref: this.element,
|
|
90
93
|
...this.binds.value,
|
|
91
94
|
onClick: this.onClick
|
|
92
95
|
},
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
{
|
|
2
|
-
"#context": {},
|
|
3
|
-
"#label": {},
|
|
4
|
-
"#description": {},
|
|
5
|
-
"~action": {}
|
|
6
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"#context": {},
|
|
3
|
+
"#label": {},
|
|
4
|
+
"#description": {},
|
|
5
|
+
"~action": {}
|
|
6
|
+
}
|
|
@@ -6,6 +6,7 @@ import type { SkeletonPropsInclude } from '../Skeleton'
|
|
|
6
6
|
|
|
7
7
|
import type { LabelProps } from '../../types/labelTypes'
|
|
8
8
|
import type { DescriptionProps } from '../../types/descriptionTypes'
|
|
9
|
+
import type { TextClosePropsInclude } from '../../types/textTypes'
|
|
9
10
|
|
|
10
11
|
interface BarsPropsToken {
|
|
11
12
|
// :type [!] System label / Системная метка
|
|
@@ -18,7 +19,8 @@ export interface BarsPropsBasic<
|
|
|
18
19
|
Button extends ButtonPropsBasic = ButtonPropsBasic
|
|
19
20
|
> extends LabelProps,
|
|
20
21
|
DescriptionProps,
|
|
21
|
-
SkeletonPropsInclude
|
|
22
|
+
SkeletonPropsInclude,
|
|
23
|
+
TextClosePropsInclude
|
|
22
24
|
{
|
|
23
25
|
// Value
|
|
24
26
|
'backButton'?: ConstrBind<Button>
|
|
@@ -2,8 +2,8 @@ import type { ConstrClass } from '@dxtmisha/functional'
|
|
|
2
2
|
|
|
3
3
|
import type { ButtonComponentInclude } from '../Button'
|
|
4
4
|
import type { EventClickEmits } from '../../types/eventClickTypes'
|
|
5
|
-
import type { LabelSlots } from '../../types/labelTypes'
|
|
6
|
-
import type { DescriptionSlots } from '../../types/descriptionTypes'
|
|
5
|
+
import type { LabelExpose, LabelSlots } from '../../types/labelTypes'
|
|
6
|
+
import type { DescriptionExpose, DescriptionSlots } from '../../types/descriptionTypes'
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* Interface for describing which components need to be connected for work.
|
|
@@ -29,7 +29,7 @@ export type BarsEmits
|
|
|
29
29
|
*
|
|
30
30
|
* Тип, описывающий доступные свойства.
|
|
31
31
|
*/
|
|
32
|
-
export interface BarsExpose {
|
|
32
|
+
export interface BarsExpose extends LabelExpose, DescriptionExpose {
|
|
33
33
|
}
|
|
34
34
|
|
|
35
35
|
/**
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { computed, type Ref, type ToRefs } from 'vue'
|
|
2
|
+
import { type ConstrEmit, DesignComp } from '@dxtmisha/functional'
|
|
3
|
+
|
|
4
|
+
import { LabelInclude } from '../../classes/LabelInclude'
|
|
5
|
+
import { DescriptionInclude } from '../../classes/DescriptionInclude'
|
|
6
|
+
import { CaptionInclude } from '../../classes/CaptionInclude'
|
|
7
|
+
|
|
8
|
+
import { IconInclude } from '../Icon'
|
|
9
|
+
|
|
10
|
+
import type { BlockComponents, BlockEmits, BlockSlots } from './types'
|
|
11
|
+
import type { BlockProps } from './props'
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Block
|
|
15
|
+
*/
|
|
16
|
+
export class Block {
|
|
17
|
+
/**
|
|
18
|
+
* Object for working with label/
|
|
19
|
+
* Объект для работы с меткой
|
|
20
|
+
*/
|
|
21
|
+
readonly label: LabelInclude
|
|
22
|
+
/**
|
|
23
|
+
* Object for working with description/
|
|
24
|
+
* Объект для работы с описанием
|
|
25
|
+
*/
|
|
26
|
+
readonly description: DescriptionInclude
|
|
27
|
+
/**
|
|
28
|
+
* Object for working with caption/
|
|
29
|
+
* Объект для работы с подписью
|
|
30
|
+
*/
|
|
31
|
+
readonly caption: CaptionInclude
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Object for working with icon/
|
|
35
|
+
* Объект для работы с иконкой
|
|
36
|
+
*/
|
|
37
|
+
readonly icon: IconInclude
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Constructor
|
|
41
|
+
* @param props input data/ входные данные
|
|
42
|
+
* @param refs input data in the form of reactive elements/ входные данные в виде реактивных элементов
|
|
43
|
+
* @param element input element/ элемент ввода
|
|
44
|
+
* @param classDesign design name/ название дизайна
|
|
45
|
+
* @param className class name/ название класса
|
|
46
|
+
* @param components object for working with components/ объект для работы с компонентами
|
|
47
|
+
* @param slots object for working with slots/ объект для работы со слотами
|
|
48
|
+
* @param emits the function is called when an event is triggered/ функция вызывается, когда срабатывает событие
|
|
49
|
+
*/
|
|
50
|
+
constructor(
|
|
51
|
+
protected readonly props: BlockProps,
|
|
52
|
+
protected readonly refs: ToRefs<BlockProps>,
|
|
53
|
+
protected readonly element: Ref<HTMLElement | undefined>,
|
|
54
|
+
protected readonly classDesign: string,
|
|
55
|
+
protected readonly className: string,
|
|
56
|
+
protected readonly components?: DesignComp<BlockComponents, BlockProps>,
|
|
57
|
+
protected readonly slots?: BlockSlots,
|
|
58
|
+
protected readonly emits?: ConstrEmit<BlockEmits>
|
|
59
|
+
) {
|
|
60
|
+
this.label = new LabelInclude(
|
|
61
|
+
props,
|
|
62
|
+
className,
|
|
63
|
+
undefined,
|
|
64
|
+
slots,
|
|
65
|
+
undefined,
|
|
66
|
+
undefined,
|
|
67
|
+
true,
|
|
68
|
+
undefined,
|
|
69
|
+
computed(() => this.props.tagHeader || 'h3')
|
|
70
|
+
)
|
|
71
|
+
this.caption = new CaptionInclude(props, className, slots)
|
|
72
|
+
this.description = new DescriptionInclude(props, className, slots)
|
|
73
|
+
|
|
74
|
+
this.icon = new IconInclude(props, className, components)
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Checks if the headline exists/
|
|
79
|
+
* Проверяет, существует ли заголовок
|
|
80
|
+
*/
|
|
81
|
+
readonly isHeadline = computed<boolean>(() => {
|
|
82
|
+
return Boolean(
|
|
83
|
+
this.props.headline
|
|
84
|
+
|| (this.slots && 'headline' in this.slots)
|
|
85
|
+
)
|
|
86
|
+
})
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* Checks if the header exists/
|
|
90
|
+
* Проверяет, существует ли шапка
|
|
91
|
+
*/
|
|
92
|
+
readonly isHeader = computed<boolean>(() => {
|
|
93
|
+
return this.label.is.value
|
|
94
|
+
|| this.caption.is.value
|
|
95
|
+
|| this.description.is.value
|
|
96
|
+
})
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* Tag name/
|
|
100
|
+
* Название тега
|
|
101
|
+
*/
|
|
102
|
+
readonly tag = computed<string>(() => {
|
|
103
|
+
return this.props.tag || 'div'
|
|
104
|
+
})
|
|
105
|
+
}
|