@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,54 @@
|
|
|
1
|
+
import type { ImagePropsBasic, ImageValue } from '../Image'
|
|
2
|
+
import type { SkeletonPropsInclude } from '../Skeleton'
|
|
3
|
+
|
|
4
|
+
interface IconPropsToken {
|
|
5
|
+
// :type [!] System label / Системная метка
|
|
6
|
+
turn?: boolean
|
|
7
|
+
disabled?: boolean
|
|
8
|
+
hide?: boolean
|
|
9
|
+
asPalette?: boolean
|
|
10
|
+
dir?: boolean
|
|
11
|
+
overlay?: boolean
|
|
12
|
+
dynamic?: boolean
|
|
13
|
+
start?: boolean
|
|
14
|
+
end?: boolean
|
|
15
|
+
high?: boolean
|
|
16
|
+
animationType?: 'type1' | 'type2'
|
|
17
|
+
animationShow?: boolean
|
|
18
|
+
// :type [!] System label / Системная метка
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export interface IconPropsBasic<
|
|
22
|
+
Image extends ImagePropsBasic = ImagePropsBasic
|
|
23
|
+
> extends SkeletonPropsInclude {
|
|
24
|
+
// Status
|
|
25
|
+
/** Активное состояние иконки/ Active state of the icon */
|
|
26
|
+
active?: boolean
|
|
27
|
+
|
|
28
|
+
// Icon
|
|
29
|
+
/** Value of the main icon/ Значение основной иконки */
|
|
30
|
+
icon?: ImageValue<Image>
|
|
31
|
+
/** Value of the active icon/ Значение активной иконки */
|
|
32
|
+
iconActive?: ImageValue<Image>
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Type describing incoming properties.
|
|
37
|
+
*
|
|
38
|
+
* Тип, описывающий входящие свойства.
|
|
39
|
+
*/
|
|
40
|
+
export interface IconProps extends IconPropsBasic, IconPropsToken {
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Default value for property.
|
|
45
|
+
*
|
|
46
|
+
* Значение по умолчанию для свойства.
|
|
47
|
+
*/
|
|
48
|
+
export const defaultsIcon = {
|
|
49
|
+
...{
|
|
50
|
+
// :default [!] System label / Системная метка
|
|
51
|
+
animationType: 'type1'
|
|
52
|
+
// :default [!] System label / Системная метка
|
|
53
|
+
}
|
|
54
|
+
}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
@use "@dxtmisha/styles/properties" as ui;
|
|
2
|
+
|
|
3
|
+
@mixin mixinIcon {
|
|
4
|
+
$clipPath: clip-path #{ui.v('d.sys.transitionDuration.fade.enter')} #{ui.v('d.sys.transitionFunction.deceleration')};
|
|
5
|
+
$margin: margin #{ui.v('d.ref.transitionDuration.1')} linear;
|
|
6
|
+
$background: background #{ui.v('d.sys.transitionDuration.standard')} linear;
|
|
7
|
+
$opacity: opacity #{ui.v('d.sys.transitionDuration.standard')} linear;
|
|
8
|
+
$transform: transform #{ui.v('d.sys.transitionDuration.standard')} linear;
|
|
9
|
+
|
|
10
|
+
@include ui.initByCustom('_factor', ui.v('??factor', 1.5));
|
|
11
|
+
@include ui.initByCustom('_width', ui.v('??width', #{calc(var(--sys-font-size, 16px) * #{ui.v('??_factor')})}));
|
|
12
|
+
|
|
13
|
+
display: inline-flex;
|
|
14
|
+
overflow: visible;
|
|
15
|
+
position: relative;
|
|
16
|
+
justify-content: center;
|
|
17
|
+
align-items: center;
|
|
18
|
+
|
|
19
|
+
@include ui.squared(#{ui.v('??_width')});
|
|
20
|
+
min-width: ui.v('??_width');
|
|
21
|
+
|
|
22
|
+
@include ui.textSelectNone;
|
|
23
|
+
|
|
24
|
+
border-radius: ui.v('??rounded', inherit);
|
|
25
|
+
|
|
26
|
+
transition-property: clip-path, margin, opacity, transform;
|
|
27
|
+
transition-duration: ui.v('d.sys.transitionDuration.standard');
|
|
28
|
+
|
|
29
|
+
@include ui.disabled {
|
|
30
|
+
cursor: default;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
&--hide {
|
|
34
|
+
opacity: 0;
|
|
35
|
+
transform: scale(.8);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
&--asPalette {
|
|
39
|
+
@include ui.colorAsPalette;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
&--dir {
|
|
43
|
+
transform: scaleX(#{var(--d-dir)});
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
&--overlay {
|
|
47
|
+
@include ui.backgroundColor(ui.v('??sys.color', var(--sys-color)));
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
&--dynamic {
|
|
51
|
+
@include ui.gradient(ui.v('??sys.color', var(--sys-color)), 0);
|
|
52
|
+
cursor: pointer;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
&--start {
|
|
56
|
+
order: 1;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
&--end {
|
|
60
|
+
order: 99999;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
&--high {
|
|
64
|
+
z-index: 16;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
&--animationType {
|
|
68
|
+
&--type2 {
|
|
69
|
+
clip-path: inset(0 0 0 0);
|
|
70
|
+
|
|
71
|
+
transition: #{$clipPath}, #{$margin}, #{$background}, #{$opacity}, #{$transform};
|
|
72
|
+
|
|
73
|
+
@include ui.state('hide') {
|
|
74
|
+
clip-path: inset(0 100% 0 0);
|
|
75
|
+
margin: 0 calc(#{ui.v('??_width')} * -1) 0 0 !important;
|
|
76
|
+
opacity: 1;
|
|
77
|
+
|
|
78
|
+
transition-duration: ui.v('d.sys.transitionDuration.fade.exit');
|
|
79
|
+
transition-timing-function: linear;
|
|
80
|
+
transform: none;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
&--animationShow {
|
|
86
|
+
animation-name: ui.n('??show');
|
|
87
|
+
animation-duration: ui.v('d.sys.transitionDuration.standard');
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
@keyframes #{ui.n('??show')} {
|
|
91
|
+
0% {
|
|
92
|
+
opacity: 0;
|
|
93
|
+
transform: scale(.6);
|
|
94
|
+
}
|
|
95
|
+
20% {
|
|
96
|
+
transform: scale(.6);
|
|
97
|
+
}
|
|
98
|
+
60% {
|
|
99
|
+
opacity: 1;
|
|
100
|
+
}
|
|
101
|
+
100% {
|
|
102
|
+
opacity: 1;
|
|
103
|
+
transform: none;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { ComputedRef } from 'vue'
|
|
2
|
+
import type { ConstrClass } from '@dxtmisha/functional'
|
|
3
|
+
import type { ImageComponentsInclude, ImageEmitsInclude } from '../Image'
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Interface for describing which components need to be connected for work.
|
|
7
|
+
*
|
|
8
|
+
* Интерфейс для описания, какие компоненты надо подключить для работы.
|
|
9
|
+
*/
|
|
10
|
+
export type IconComponents = ImageComponentsInclude
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Type describing available events.
|
|
14
|
+
*
|
|
15
|
+
* Тип, описывающий доступные события.
|
|
16
|
+
*/
|
|
17
|
+
export type IconEmits = ImageEmitsInclude
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Type describing available properties.
|
|
21
|
+
*
|
|
22
|
+
* Тип, описывающий доступные свойства.
|
|
23
|
+
*/
|
|
24
|
+
export interface IconExpose {
|
|
25
|
+
isActive: ComputedRef<boolean>
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Type describing available slots.
|
|
30
|
+
*
|
|
31
|
+
* Тип, описывающий доступные слоты.
|
|
32
|
+
*/
|
|
33
|
+
export interface IconSlots {
|
|
34
|
+
default? (props: any): any
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Type describing subclasses.
|
|
39
|
+
*
|
|
40
|
+
* Тип, описывающий подклассы.
|
|
41
|
+
*/
|
|
42
|
+
export type IconClasses = {
|
|
43
|
+
main: ConstrClass
|
|
44
|
+
// :classes [!] System label / Системная метка
|
|
45
|
+
// :classes [!] System label / Системная метка
|
|
46
|
+
}
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
import { computed, onUnmounted, type Ref, watch } from 'vue'
|
|
2
|
+
import {
|
|
3
|
+
type ConstrClassObject,
|
|
4
|
+
type ConstrEmit,
|
|
5
|
+
type ConstrStyles,
|
|
6
|
+
isString
|
|
7
|
+
} from '@dxtmisha/functional'
|
|
8
|
+
|
|
9
|
+
import { ImageType } from './ImageType'
|
|
10
|
+
import { ImageData } from './ImageData'
|
|
11
|
+
|
|
12
|
+
import { ImageCoordinator } from './ImageCoordinator'
|
|
13
|
+
import { ImagePosition } from './ImagePosition'
|
|
14
|
+
import { ImageAdaptiveItem } from './ImageAdaptiveItem'
|
|
15
|
+
import { ImageBackground } from './ImageBackground'
|
|
16
|
+
|
|
17
|
+
import { ImageTypeValue } from './basicTypes'
|
|
18
|
+
import type { ImageEmits } from './types'
|
|
19
|
+
import type { ImageProps } from './props'
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Base class for working with images and icons.
|
|
23
|
+
*
|
|
24
|
+
* Базовый класс для работы с изображениями и иконками.
|
|
25
|
+
*/
|
|
26
|
+
export class Image {
|
|
27
|
+
readonly type: ImageType
|
|
28
|
+
readonly data: ImageData
|
|
29
|
+
|
|
30
|
+
readonly coordinator: ImageCoordinator
|
|
31
|
+
readonly position: ImagePosition
|
|
32
|
+
readonly adaptiveItem: ImageAdaptiveItem
|
|
33
|
+
readonly background: ImageBackground
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Constructor
|
|
37
|
+
* @param props input data/ входные данные
|
|
38
|
+
* @param element input element/ элемент ввода
|
|
39
|
+
* @param className class name/ название класса
|
|
40
|
+
* @param emits the function is called when an event is triggered/ функция вызывается, когда срабатывает событие
|
|
41
|
+
*/
|
|
42
|
+
constructor(
|
|
43
|
+
protected readonly props: ImageProps,
|
|
44
|
+
protected readonly element: Ref<HTMLElement | undefined>,
|
|
45
|
+
protected readonly className: string,
|
|
46
|
+
protected readonly emits?: ConstrEmit<ImageEmits>
|
|
47
|
+
) {
|
|
48
|
+
this.type = new ImageType(props)
|
|
49
|
+
this.data = new ImageData(props, this.type)
|
|
50
|
+
|
|
51
|
+
this.coordinator = new ImageCoordinator(props)
|
|
52
|
+
this.position = new ImagePosition(props, this.coordinator)
|
|
53
|
+
|
|
54
|
+
this.adaptiveItem = new ImageAdaptiveItem(
|
|
55
|
+
props,
|
|
56
|
+
this.data,
|
|
57
|
+
element
|
|
58
|
+
)
|
|
59
|
+
|
|
60
|
+
this.background = new ImageBackground(
|
|
61
|
+
props,
|
|
62
|
+
this.data,
|
|
63
|
+
this.coordinator,
|
|
64
|
+
this.adaptiveItem
|
|
65
|
+
)
|
|
66
|
+
|
|
67
|
+
if (emits) {
|
|
68
|
+
watch(this.data.image, (image) => {
|
|
69
|
+
emits('load', {
|
|
70
|
+
type: this.type.item.value,
|
|
71
|
+
image
|
|
72
|
+
})
|
|
73
|
+
})
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
onUnmounted(() => this.adaptiveItem.remove())
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Values for the text. Text is used for the type of icon that works as a background.
|
|
81
|
+
*
|
|
82
|
+
* Значения для текста. Текст используется для типа иконки, который работает как фон.
|
|
83
|
+
*/
|
|
84
|
+
readonly text = computed<string | undefined>(() => {
|
|
85
|
+
const type = this.type.item.value
|
|
86
|
+
|
|
87
|
+
if (type === ImageTypeValue.pdf) {
|
|
88
|
+
const image = this.data.image.value
|
|
89
|
+
|
|
90
|
+
if (isString(image)) {
|
|
91
|
+
return image
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
const value = this.props.value
|
|
96
|
+
|
|
97
|
+
if (
|
|
98
|
+
type
|
|
99
|
+
&& isString(value)
|
|
100
|
+
&& [
|
|
101
|
+
'filled',
|
|
102
|
+
'outlined',
|
|
103
|
+
'round',
|
|
104
|
+
'sharp',
|
|
105
|
+
'two-tone',
|
|
106
|
+
'material'
|
|
107
|
+
].indexOf(type) !== -1
|
|
108
|
+
) {
|
|
109
|
+
return value.replace(/^(filled|outlined|round|sharp|two-tone)-/, '')
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
return undefined
|
|
113
|
+
})
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* Values for the class.
|
|
117
|
+
*
|
|
118
|
+
* Значения для класса.
|
|
119
|
+
*/
|
|
120
|
+
readonly classes = computed<ConstrClassObject>(() => {
|
|
121
|
+
const type = this.type.item.value
|
|
122
|
+
const data = {
|
|
123
|
+
[`${this.className}--type--${type}`]: type !== undefined,
|
|
124
|
+
[`${this.className}--background`]: this.background.isImage(),
|
|
125
|
+
notranslate: true
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
switch (type) {
|
|
129
|
+
case 'outlined':
|
|
130
|
+
data['material-symbols-outlined'] = true
|
|
131
|
+
break
|
|
132
|
+
case 'round':
|
|
133
|
+
data['material-symbols-rounded'] = true
|
|
134
|
+
break
|
|
135
|
+
case 'sharp':
|
|
136
|
+
data['material-symbols-sharp'] = true
|
|
137
|
+
break
|
|
138
|
+
case 'material':
|
|
139
|
+
data['material-icons'] = true
|
|
140
|
+
break
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
return data
|
|
144
|
+
})
|
|
145
|
+
|
|
146
|
+
/**
|
|
147
|
+
* Calculates all properties for the style of the element.
|
|
148
|
+
*
|
|
149
|
+
* Вычисляет все свойства для стиля элемента.
|
|
150
|
+
*/
|
|
151
|
+
readonly styles = computed<ConstrStyles>(() => {
|
|
152
|
+
const value = this.props.value
|
|
153
|
+
|
|
154
|
+
if (value) {
|
|
155
|
+
switch (this.type.item.value) {
|
|
156
|
+
case ImageTypeValue.file:
|
|
157
|
+
case ImageTypeValue.image:
|
|
158
|
+
return {
|
|
159
|
+
'background-image': this.background.image.value,
|
|
160
|
+
'background-size': this.background.size.value,
|
|
161
|
+
'background-position-x': this.position.x.value,
|
|
162
|
+
'background-position-y': this.position.y.value
|
|
163
|
+
}
|
|
164
|
+
case ImageTypeValue.icon:
|
|
165
|
+
return {
|
|
166
|
+
'background-image': this.background.image.value
|
|
167
|
+
}
|
|
168
|
+
case ImageTypeValue.flag:
|
|
169
|
+
return {
|
|
170
|
+
'background-image': this.background.image.value,
|
|
171
|
+
'background-size': 'contain'
|
|
172
|
+
}
|
|
173
|
+
case ImageTypeValue.public:
|
|
174
|
+
return { 'mask-image': this.background.image.value }
|
|
175
|
+
case ImageTypeValue.color:
|
|
176
|
+
if (isString(value)) {
|
|
177
|
+
return { 'background-color': value }
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
return {} as ConstrStyles
|
|
183
|
+
})
|
|
184
|
+
}
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
import { EventItem, forEach } from '@dxtmisha/functional'
|
|
2
|
+
|
|
3
|
+
import { ImageAdaptiveItem } from './ImageAdaptiveItem'
|
|
4
|
+
import { ImageCalculationList } from './ImageCalculationList'
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Class for working with image scaling according to the physical size of the object in the image.
|
|
8
|
+
*
|
|
9
|
+
* Класс для работы с масштабированием изображения по физическому размеру объекта на изображении.
|
|
10
|
+
*/
|
|
11
|
+
export class ImageAdaptiveGroup {
|
|
12
|
+
protected static objects: ImageAdaptiveItem[] = []
|
|
13
|
+
protected static objectsAdaptive: ImageAdaptiveItem[] = []
|
|
14
|
+
|
|
15
|
+
private static cache: string[] = []
|
|
16
|
+
|
|
17
|
+
protected static event?: EventItem<Window, Event, any>
|
|
18
|
+
protected static time?: boolean
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Checks if an element is present in the list.
|
|
22
|
+
*
|
|
23
|
+
* Проверяет, присутствует ли элемент в списке.
|
|
24
|
+
* @param item object for working with images/ объект для работы с изображениями
|
|
25
|
+
*/
|
|
26
|
+
static is(item: ImageAdaptiveItem): boolean {
|
|
27
|
+
return this.objects.findIndex(itemValue => itemValue === item) !== -1
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Adding a new element for tracking.
|
|
32
|
+
*
|
|
33
|
+
* Добавление нового элемента для отслеживания.
|
|
34
|
+
* @param item object for working with images/ объект для работы с изображениями
|
|
35
|
+
*/
|
|
36
|
+
static add(item: ImageAdaptiveItem): void {
|
|
37
|
+
if (!this.is(item)) {
|
|
38
|
+
this.objects.push(item)
|
|
39
|
+
this.make()
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Removal of the element.
|
|
45
|
+
*
|
|
46
|
+
* Удаления элемента.
|
|
47
|
+
* @param item object for working with images/ объект для работы с изображениями
|
|
48
|
+
*/
|
|
49
|
+
static remove(item: ImageAdaptiveItem): void {
|
|
50
|
+
const key = this.objects.findIndex(itemValue => itemValue === item)
|
|
51
|
+
|
|
52
|
+
if (key !== -1) {
|
|
53
|
+
this.objects.splice(key, 1)
|
|
54
|
+
this.cache = []
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
this.make()
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* Resets all cached data and rereads scaling for all elements.
|
|
62
|
+
*
|
|
63
|
+
* Обнуляет все кэшированные данные и перечитывает масштабирование для всех элементов.
|
|
64
|
+
*/
|
|
65
|
+
static reset(): void {
|
|
66
|
+
this.cache = []
|
|
67
|
+
this.start()
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Starts the calculation process or turns it off if there are no active elements in the list.
|
|
72
|
+
*
|
|
73
|
+
* Запускает процесс вычисления или отключает его, если в списке нет активных элементов.
|
|
74
|
+
*/
|
|
75
|
+
static make(): void {
|
|
76
|
+
if (
|
|
77
|
+
this.event
|
|
78
|
+
&& this.objects.length < 1
|
|
79
|
+
) {
|
|
80
|
+
this.event.stop()
|
|
81
|
+
this.event = undefined
|
|
82
|
+
} else if (this.objects.length > 0) {
|
|
83
|
+
if (!this.event) {
|
|
84
|
+
this.event = new EventItem(window, ['scroll-sync'], () => this.start()).start()
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
if (!this.time) {
|
|
88
|
+
this.time = true
|
|
89
|
+
requestAnimationFrame(() => {
|
|
90
|
+
this.time = false
|
|
91
|
+
this.start()
|
|
92
|
+
})
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* Returns a list of elements that are visible or constantly being calculated.
|
|
99
|
+
*
|
|
100
|
+
* Возвращает список элементов, которые видны или постоянно вычисляются.
|
|
101
|
+
*/
|
|
102
|
+
protected static getItemIdByVisible(): string[] {
|
|
103
|
+
return forEach(this.objectsAdaptive, item => item.getId())
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* Method for starting the calculation of scaling elements in the list.
|
|
108
|
+
*
|
|
109
|
+
* Метод для запуска вычисления масштабирования элементов в списке.
|
|
110
|
+
*/
|
|
111
|
+
protected static start(): void {
|
|
112
|
+
if (this.isAdaptive()) {
|
|
113
|
+
this.makeAdaptive()
|
|
114
|
+
|
|
115
|
+
const visible = this.getItemIdByVisible()
|
|
116
|
+
|
|
117
|
+
if (this.isCache(visible)) {
|
|
118
|
+
this.cache = visible
|
|
119
|
+
|
|
120
|
+
this.makeSize()
|
|
121
|
+
this.makePercent()
|
|
122
|
+
this.makeFactorMax()
|
|
123
|
+
}
|
|
124
|
+
} else {
|
|
125
|
+
this.event?.stop()
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
/**
|
|
130
|
+
* Updates the list of elements available for calculation. These are the
|
|
131
|
+
* elements that are close to the border of the visible area.
|
|
132
|
+
*
|
|
133
|
+
* Обновляет список доступных для вычисления элементов. Это те элементы,
|
|
134
|
+
* которые близки к границе видимой области.
|
|
135
|
+
*/
|
|
136
|
+
protected static makeAdaptive(): void {
|
|
137
|
+
this.objectsAdaptive = []
|
|
138
|
+
this.objects.forEach((item) => {
|
|
139
|
+
item.make()
|
|
140
|
+
|
|
141
|
+
if (item.isBeyond()) {
|
|
142
|
+
this.objectsAdaptive.push(item)
|
|
143
|
+
}
|
|
144
|
+
})
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
/**
|
|
148
|
+
* Calculates the dimensions of an element relative to the image size,
|
|
149
|
+
* the size of the element, and its physical location on the image.
|
|
150
|
+
*
|
|
151
|
+
* Вычисляет размеры элемента относительно размера изображения,
|
|
152
|
+
* размера элемента и его физического расположения на изображении.
|
|
153
|
+
*/
|
|
154
|
+
protected static makeSize(): void {
|
|
155
|
+
ImageCalculationList.reset()
|
|
156
|
+
|
|
157
|
+
this.objectsAdaptive.forEach((item) => {
|
|
158
|
+
const element = item.element.value
|
|
159
|
+
|
|
160
|
+
if (element) {
|
|
161
|
+
ImageCalculationList.get(item.group.value)
|
|
162
|
+
.makeWidth(item.width.value)
|
|
163
|
+
.makeHeight(item.height.value)
|
|
164
|
+
.makeOffsetWidth(element.offsetWidth)
|
|
165
|
+
.makeOffsetHeight(element.offsetHeight)
|
|
166
|
+
}
|
|
167
|
+
})
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
/**
|
|
171
|
+
* Calculation of the basic scaling of an element without taking into account other elements.
|
|
172
|
+
*
|
|
173
|
+
* Вычисление базового масштабирования элемента без учета других элементов.
|
|
174
|
+
*/
|
|
175
|
+
protected static makePercent(): void {
|
|
176
|
+
if (ImageCalculationList.isSize()) {
|
|
177
|
+
this.objectsAdaptive.forEach((item) => {
|
|
178
|
+
const element = item.element.value
|
|
179
|
+
const calculation = ImageCalculationList.get(item.group.value)
|
|
180
|
+
|
|
181
|
+
if (element) {
|
|
182
|
+
const width = calculation.getWidth()
|
|
183
|
+
const height = calculation.getHeight()
|
|
184
|
+
|
|
185
|
+
item.setPercent(
|
|
186
|
+
item.width.value * (width ? 1 / width : 0) * (calculation.getOffsetWidth() / element.offsetWidth),
|
|
187
|
+
item.height.value * (height ? 1 / height : 0) * (calculation.getOffsetHeight() / element.offsetHeight)
|
|
188
|
+
)
|
|
189
|
+
}
|
|
190
|
+
})
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
/**
|
|
195
|
+
* Calculation of the largest element to determine the base size.
|
|
196
|
+
* This parameter is used for scaling other elements,
|
|
197
|
+
* reducing them to the necessary proportion.
|
|
198
|
+
*
|
|
199
|
+
* Вычисление самого большого элемента для определения базового размера.
|
|
200
|
+
* Этот параметр используется для масштабирования других элементов,
|
|
201
|
+
* уменьшая их до нужной пропорции.
|
|
202
|
+
*/
|
|
203
|
+
protected static makeFactorMax(): void {
|
|
204
|
+
if (ImageCalculationList.isSize()) {
|
|
205
|
+
this.objectsAdaptive.forEach((item) => {
|
|
206
|
+
ImageCalculationList.get(item.group.value)
|
|
207
|
+
.makeFactorMax(item.factor.value)
|
|
208
|
+
})
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
/**
|
|
213
|
+
* Checks if there is an active element at the moment.
|
|
214
|
+
*
|
|
215
|
+
* Проверяет, есть ли в текущий момент активный элемент.
|
|
216
|
+
*/
|
|
217
|
+
private static isAdaptive(): boolean {
|
|
218
|
+
return Boolean(this.objects.find(item => item.is()))
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
/**
|
|
222
|
+
* Checks whether the composition of visible elements has changed.
|
|
223
|
+
*
|
|
224
|
+
* Проверяет, изменился ли состав видимых элементов.
|
|
225
|
+
* @param visible list of indices of visible elements/ список индексов видимых элементов
|
|
226
|
+
*/
|
|
227
|
+
private static isCache(visible: string[]): boolean {
|
|
228
|
+
return this.cache.join('|') !== visible.join('|')
|
|
229
|
+
}
|
|
230
|
+
}
|