@dxtmisha/wiki 0.24.3 → 0.39.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 +8 -8
- package/src/classes/WikiStorybook.ts +92 -1
- package/src/classes/WikiStorybookItem.ts +79 -5
- package/src/classes/WikiStorybookProp.ts +109 -0
- package/src/library.ts +1 -0
- package/src/media/descriptions/wikiDescriptions.ts +32 -0
- package/src/media/descriptions/wikiDescriptionsAccordion.ts +204 -0
- package/src/media/descriptions/wikiDescriptionsActionSheet.ts +264 -0
- package/src/media/descriptions/wikiDescriptionsActions.ts +189 -0
- package/src/media/descriptions/wikiDescriptionsAnchor.ts +78 -0
- package/src/media/descriptions/wikiDescriptionsArrow.ts +214 -0
- package/src/media/descriptions/wikiDescriptionsBadge.ts +43 -0
- package/src/media/descriptions/wikiDescriptionsBars.ts +33 -0
- package/src/media/descriptions/wikiDescriptionsBlock.ts +159 -0
- package/src/media/descriptions/wikiDescriptionsButton.ts +32 -1
- package/src/media/descriptions/wikiDescriptionsCell.ts +26 -1
- package/src/media/descriptions/wikiDescriptionsChip.ts +42 -0
- package/src/media/descriptions/wikiDescriptionsChipGroup.ts +199 -0
- package/src/media/descriptions/wikiDescriptionsDialog.ts +226 -0
- package/src/media/descriptions/wikiDescriptionsField.ts +57 -2
- package/src/media/descriptions/wikiDescriptionsFieldCounter.ts +32 -0
- package/src/media/descriptions/wikiDescriptionsFieldLabel.ts +22 -0
- package/src/media/descriptions/wikiDescriptionsFieldMessage.ts +25 -0
- package/src/media/descriptions/wikiDescriptionsIcon.ts +46 -8
- package/src/media/descriptions/wikiDescriptionsImage.ts +91 -7
- package/src/media/descriptions/wikiDescriptionsInput.ts +313 -0
- package/src/media/descriptions/wikiDescriptionsList.ts +31 -0
- package/src/media/descriptions/wikiDescriptionsListGroup.ts +57 -0
- package/src/media/descriptions/wikiDescriptionsListItem.ts +42 -0
- package/src/media/descriptions/wikiDescriptionsListMenu.ts +41 -0
- package/src/media/descriptions/wikiDescriptionsMask.ts +42 -0
- package/src/media/descriptions/wikiDescriptionsMenu.ts +179 -0
- package/src/media/descriptions/wikiDescriptionsModal.ts +200 -0
- package/src/media/descriptions/wikiDescriptionsMotionTransform.ts +59 -6
- package/src/media/descriptions/wikiDescriptionsPage.ts +155 -0
- package/src/media/descriptions/wikiDescriptionsProgress.ts +39 -0
- package/src/media/descriptions/wikiDescriptionsRipple.ts +42 -3
- package/src/media/descriptions/wikiDescriptionsScrollbar.ts +48 -0
- package/src/media/descriptions/wikiDescriptionsSection.ts +152 -0
- package/src/media/descriptions/wikiDescriptionsSelect.ts +253 -0
- package/src/media/descriptions/wikiDescriptionsSelectValue.ts +107 -0
- package/src/media/descriptions/wikiDescriptionsSkeleton.ts +42 -1
- package/src/media/descriptions/wikiDescriptionsTextareaAutosize.ts +80 -0
- package/src/media/descriptions/wikiDescriptionsTooltip.ts +136 -0
- package/src/media/descriptions/wikiDescriptionsWindow.ts +60 -0
- package/src/media/functional/en/conversions.mdx +67 -0
- package/src/media/functional/en/dataUtils.mdx +25 -0
- package/src/media/functional/en/datetimeRef.mdx +1 -1
- package/src/media/functional/en/eventRef.mdx +1 -1
- package/src/media/functional/en/executionUtils.mdx +58 -0
- package/src/media/functional/en/geoFlagRef.mdx +1 -1
- package/src/media/functional/en/geoIntlRef.mdx +1 -1
- package/src/media/functional/en/geoRef.mdx +2 -2
- package/src/media/functional/en/meta.mdx +1206 -0
- package/src/media/functional/en/metaManager.mdx +376 -0
- package/src/media/functional/en/metaOg.mdx +694 -0
- package/src/media/functional/en/metaTwitter.mdx +853 -0
- package/src/media/functional/en/reactive.mdx +40 -0
- package/src/media/functional/en/refTypes.mdx +1 -1
- package/src/media/functional/en/useApiRef.mdx +5 -5
- package/src/media/functional/en/useMeta.mdx +431 -0
- package/src/media/functional/en/validationUtils.mdx +11 -0
- package/src/media/functional/functional-basic/functions/getCurrentDate/getCurrentDate.en.mdx +25 -0
- package/src/media/functional/functional-basic/functions/getCurrentDate/getCurrentDate.ru.mdx +25 -0
- package/src/media/functional/functional-basic/functions/getCurrentDate/getCurrentDate.vi.mdx +25 -0
- package/src/media/functional/functional-basic/functions/isEnter/isEnter.en.mdx +30 -0
- package/src/media/functional/functional-basic/functions/isEnter/isEnter.ru.mdx +30 -0
- package/src/media/functional/functional-basic/functions/isEnter/isEnter.vi.mdx +30 -0
- package/src/media/functional/ru/conversions.mdx +67 -0
- package/src/media/functional/ru/dataUtils.mdx +25 -0
- package/src/media/functional/ru/datetimeRef.mdx +2 -2
- package/src/media/functional/ru/eventRef.mdx +1 -1
- package/src/media/functional/ru/executionUtils.mdx +58 -0
- package/src/media/functional/ru/geoFlagRef.mdx +1 -1
- package/src/media/functional/ru/geoIntl.mdx +2 -2
- package/src/media/functional/ru/geoIntlRef.mdx +1 -1
- package/src/media/functional/ru/geoRef.mdx +2 -2
- package/src/media/functional/ru/listTypes.mdx +1 -1
- package/src/media/functional/ru/meta.mdx +1330 -0
- package/src/media/functional/ru/metaManager.mdx +376 -0
- package/src/media/functional/ru/metaOg.mdx +694 -0
- package/src/media/functional/ru/metaTwitter.mdx +853 -0
- package/src/media/functional/ru/reactive.mdx +40 -0
- package/src/media/functional/ru/refTypes.mdx +2 -2
- package/src/media/functional/ru/useApiRef.mdx +5 -5
- package/src/media/functional/ru/useMeta.mdx +431 -0
- package/src/media/functional/ru/validationUtils.mdx +11 -0
- package/src/media/mdx/Accordion/accordion.en.mdx +59 -0
- package/src/media/mdx/Accordion/accordion.ru.mdx +59 -0
- package/src/media/mdx/Accordion/slots.en.mdx +6 -0
- package/src/media/mdx/Accordion/slots.ru.mdx +6 -0
- package/src/media/mdx/Accordion/wikiMdxAccordion.ts +25 -0
- package/src/media/mdx/ActionSheet/actionSheet.en.mdx +61 -0
- package/src/media/mdx/ActionSheet/actionSheet.ru.mdx +61 -0
- package/src/media/mdx/ActionSheet/touchClose.en.mdx +21 -0
- package/src/media/mdx/ActionSheet/touchClose.ru.mdx +21 -0
- package/src/media/mdx/ActionSheet/wikiMdxActionSheet.ts +25 -0
- package/src/media/mdx/Actions/actions.en.mdx +48 -0
- package/src/media/mdx/Actions/actions.ru.mdx +48 -0
- package/src/media/mdx/Actions/flexible.en.mdx +19 -0
- package/src/media/mdx/Actions/flexible.ru.mdx +19 -0
- package/src/media/mdx/Actions/list.en.mdx +50 -0
- package/src/media/mdx/Actions/list.ru.mdx +50 -0
- package/src/media/mdx/Actions/wikiMdxActions.ts +31 -0
- package/src/media/mdx/Anchor/anchor.en.mdx +34 -0
- package/src/media/mdx/Anchor/anchor.ru.mdx +34 -0
- package/src/media/mdx/Anchor/expose.go.en.mdx +6 -0
- package/src/media/mdx/Anchor/expose.go.ru.mdx +6 -0
- package/src/media/mdx/Anchor/hide.en.mdx +28 -0
- package/src/media/mdx/Anchor/hide.ru.mdx +28 -0
- package/src/media/mdx/Anchor/isCopy.en.mdx +23 -0
- package/src/media/mdx/Anchor/isCopy.ru.mdx +23 -0
- package/src/media/mdx/Anchor/scroll.en.mdx +34 -0
- package/src/media/mdx/Anchor/scroll.ru.mdx +35 -0
- package/src/media/mdx/Anchor/wikiMdxAnchor.ts +43 -0
- package/src/media/mdx/Arrow/arrow.en.mdx +33 -0
- package/src/media/mdx/Arrow/arrow.ru.mdx +33 -0
- package/src/media/mdx/Arrow/wikiMdxArrow.ts +19 -0
- package/src/media/mdx/Block/block.en.mdx +42 -0
- package/src/media/mdx/Block/block.ru.mdx +42 -0
- package/src/media/mdx/Block/wikiMdxBlock.ts +19 -0
- package/src/media/mdx/ChipGroup/chipGroup.en.mdx +51 -0
- package/src/media/mdx/ChipGroup/chipGroup.ru.mdx +51 -0
- package/src/media/mdx/ChipGroup/selected.en.mdx +50 -0
- package/src/media/mdx/ChipGroup/selected.ru.mdx +50 -0
- package/src/media/mdx/ChipGroup/wikiMdxChipGroup.ts +25 -0
- package/src/media/mdx/Dialog/buttons.en.mdx +45 -0
- package/src/media/mdx/Dialog/buttons.ru.mdx +45 -0
- package/src/media/mdx/Dialog/dialog.en.mdx +66 -0
- package/src/media/mdx/Dialog/dialog.ru.mdx +65 -0
- package/src/media/mdx/Dialog/events.en.mdx +63 -0
- package/src/media/mdx/Dialog/events.ru.mdx +63 -0
- package/src/media/mdx/Dialog/states.en.mdx +58 -0
- package/src/media/mdx/Dialog/states.ru.mdx +57 -0
- package/src/media/mdx/Dialog/wikiMdxDialog.ts +37 -0
- package/src/media/mdx/Field/arrows.en.mdx +22 -6
- package/src/media/mdx/Field/arrows.ru.mdx +22 -6
- package/src/media/mdx/Field/slots.en.mdx +0 -13
- package/src/media/mdx/Field/slots.ru.mdx +0 -13
- package/src/media/mdx/Image/flag.en.mdx +23 -0
- package/src/media/mdx/Image/flag.ru.mdx +23 -0
- package/src/media/mdx/Image/image.en.mdx +26 -21
- package/src/media/mdx/Image/image.ru.mdx +26 -22
- package/src/media/mdx/Image/img-tag.en.mdx +105 -0
- package/src/media/mdx/Image/img-tag.ru.mdx +105 -0
- package/src/media/mdx/Image/wikiMdxImage.ts +12 -0
- package/src/media/mdx/Input/currency.en.mdx +38 -0
- package/src/media/mdx/Input/currency.ru.mdx +38 -0
- package/src/media/mdx/Input/date.en.mdx +53 -0
- package/src/media/mdx/Input/date.ru.mdx +53 -0
- package/src/media/mdx/Input/input.en.mdx +143 -0
- package/src/media/mdx/Input/input.ru.mdx +71 -0
- package/src/media/mdx/Input/mask.en.mdx +30 -0
- package/src/media/mdx/Input/mask.ru.mdx +30 -0
- package/src/media/mdx/Input/number.en.mdx +41 -0
- package/src/media/mdx/Input/number.ru.mdx +41 -0
- package/src/media/mdx/Input/type.en.mdx +26 -0
- package/src/media/mdx/Input/type.ru.mdx +26 -0
- package/src/media/mdx/Input/wikiMdxInput.ts +49 -0
- package/src/media/mdx/Menu/event.updateValue.en.mdx +29 -0
- package/src/media/mdx/Menu/event.updateValue.ru.mdx +30 -0
- package/src/media/mdx/Menu/expose.navigation.en.mdx +12 -0
- package/src/media/mdx/Menu/expose.navigation.ru.mdx +12 -0
- package/src/media/mdx/Menu/navigation.en.mdx +56 -0
- package/src/media/mdx/Menu/navigation.ru.mdx +56 -0
- package/src/media/mdx/Menu/slots.control.en.mdx +65 -0
- package/src/media/mdx/Menu/slots.control.ru.mdx +65 -0
- package/src/media/mdx/Menu/slots.en.mdx +2 -24
- package/src/media/mdx/Menu/slots.ru.mdx +2 -24
- package/src/media/mdx/Menu/wikiMdxMenu.ts +27 -3
- package/src/media/mdx/Modal/differences.en.mdx +130 -0
- package/src/media/mdx/Modal/differences.ru.mdx +65 -0
- package/src/media/mdx/Modal/modal.en.mdx +63 -0
- package/src/media/mdx/Modal/modal.ru.mdx +63 -0
- package/src/media/mdx/Modal/wikiMdxModal.ts +25 -0
- package/src/media/mdx/MotionTransform/expose.motionTransformElement.en.mdx +13 -0
- package/src/media/mdx/MotionTransform/expose.motionTransformElement.ru.mdx +14 -0
- package/src/media/mdx/MotionTransform/wikiMdxMotionTransform.ts +6 -0
- package/src/media/mdx/Page/page.en.mdx +38 -0
- package/src/media/mdx/Page/page.ru.mdx +38 -0
- package/src/media/mdx/Page/wikiMdxPage.ts +19 -0
- package/src/media/mdx/Section/section.en.mdx +38 -0
- package/src/media/mdx/Section/section.ru.mdx +38 -0
- package/src/media/mdx/Section/wikiMdxSection.ts +19 -0
- package/src/media/mdx/Select/select.en.mdx +69 -0
- package/src/media/mdx/Select/select.ru.mdx +69 -0
- package/src/media/mdx/Select/wikiMdxSelect.ts +19 -0
- package/src/media/mdx/SelectValue/selectValue.en.mdx +64 -0
- package/src/media/mdx/SelectValue/selectValue.ru.mdx +64 -0
- package/src/media/mdx/SelectValue/wikiMdxSelectValue.ts +19 -0
- package/src/media/mdx/TextareaAutosize/textarea-autosize.en.mdx +65 -0
- package/src/media/mdx/TextareaAutosize/textarea-autosize.ru.mdx +65 -0
- package/src/media/mdx/TextareaAutosize/wikiMdxTextareaAutosize.ts +19 -0
- package/src/media/mdx/Tooltip/event.tooltip.en.mdx +7 -0
- package/src/media/mdx/Tooltip/event.tooltip.ru.mdx +8 -0
- package/src/media/mdx/Tooltip/slot.control.en.mdx +14 -0
- package/src/media/mdx/Tooltip/slot.control.ru.mdx +14 -0
- package/src/media/mdx/Tooltip/tooltip.en.mdx +34 -0
- package/src/media/mdx/Tooltip/tooltip.ru.mdx +34 -0
- package/src/media/mdx/Tooltip/wikiMdxTooltip.ts +31 -0
- package/src/media/mdx/Window/classes.ru.mdx +1 -1
- package/src/media/mdx/event/events.actions.en.mdx +44 -0
- package/src/media/mdx/event/events.actions.ru.mdx +44 -0
- package/src/media/mdx/event/events.inputStandard.en.mdx +6 -0
- package/src/media/mdx/event/events.inputStandard.ru.mdx +6 -0
- package/src/media/mdx/event/wikiMdxEvent.ts +20 -8
- package/src/media/mdx/expose/expose.clear.en.mdx +1 -1
- package/src/media/mdx/expose/expose.descriptionId.en.mdx +6 -0
- package/src/media/mdx/expose/expose.descriptionId.ru.mdx +6 -0
- package/src/media/mdx/expose/expose.id.en.mdx +6 -0
- package/src/media/mdx/expose/expose.id.ru.mdx +6 -0
- package/src/media/mdx/expose/expose.labelId.en.mdx +6 -0
- package/src/media/mdx/expose/expose.labelId.ru.mdx +6 -0
- package/src/media/mdx/expose/wikiMdxExpose.ts +18 -0
- package/src/media/mdx/slot/body.en.mdx +6 -0
- package/src/media/mdx/slot/body.ru.mdx +6 -0
- package/src/media/mdx/slot/headline.en.mdx +7 -0
- package/src/media/mdx/slot/headline.ru.mdx +6 -0
- package/src/media/mdx/slot/leading.en.mdx +7 -0
- package/src/media/mdx/slot/leading.ru.mdx +7 -0
- package/src/media/mdx/slot/secondary.en.mdx +5 -0
- package/src/media/mdx/slot/secondary.ru.mdx +5 -0
- package/src/media/mdx/slot/trailing.en.mdx +7 -0
- package/src/media/mdx/slot/trailing.ru.mdx +7 -0
- package/src/media/mdx/slot/wikiMdxSlot.ts +30 -0
- package/src/media/mdx/style/isSkeleton.en.mdx +2 -2
- package/src/media/mdx/style/isSkeleton.ru.mdx +2 -2
- package/src/media/mdx/value/v-model-selected.en.mdx +28 -0
- package/src/media/mdx/value/v-model-selected.ru.mdx +28 -0
- package/src/media/mdx/value/v-model.en.mdx +26 -0
- package/src/media/mdx/value/v-model.ru.mdx +26 -0
- package/src/media/mdx/value/wikiMdxValue.ts +24 -3
- package/src/media/mdx/wikiMdx.ts +33 -1
- package/src/media/props/wiki.ts +44 -0
- package/src/media/props/wikiActions.ts +43 -0
- package/src/media/props/wikiActionsInclude.ts +62 -0
- package/src/media/props/wikiAnchor.ts +85 -0
- package/src/media/props/wikiAria.ts +123 -0
- package/src/media/props/wikiArrow.ts +24 -0
- package/src/media/props/wikiArrowInclude.ts +45 -0
- package/src/media/props/wikiAttributes.ts +143 -0
- package/src/media/props/wikiBadge.ts +7 -4
- package/src/media/props/wikiBars.ts +7 -6
- package/src/media/props/wikiBarsInclude.ts +82 -0
- package/src/media/props/wikiButton.ts +8 -4
- package/src/media/props/wikiChip.ts +4 -2
- package/src/media/props/wikiChipGroup.ts +39 -0
- package/src/media/props/wikiDialog.ts +33 -0
- package/src/media/props/wikiField.ts +18 -31
- package/src/media/props/wikiFieldCounterInclude.ts +87 -0
- package/src/media/props/wikiForm.ts +267 -0
- package/src/media/props/wikiHook.ts +20 -0
- package/src/media/props/wikiIcon.ts +19 -6
- package/src/media/props/wikiIconInclude.ts +322 -0
- package/src/media/props/wikiImage.ts +97 -20
- package/src/media/props/wikiInformation.ts +164 -0
- package/src/media/props/wikiInput.ts +34 -0
- package/src/media/props/wikiList.ts +10 -4
- package/src/media/props/wikiListItem.ts +23 -2
- package/src/media/props/wikiMask.ts +2 -12
- package/src/media/props/wikiMaskInclude.ts +54 -0
- package/src/media/props/wikiMenu.ts +1 -11
- package/src/media/props/wikiMotionTransform.ts +7 -13
- package/src/media/props/wikiOption.ts +356 -0
- package/src/media/props/wikiProgress.ts +8 -5
- package/src/media/props/wikiScrollbar.ts +6 -6
- package/src/media/props/wikiSelect.ts +68 -0
- package/src/media/props/wikiSelectValue.ts +30 -0
- package/src/media/props/wikiStatus.ts +34 -57
- package/src/media/props/wikiStyle.ts +85 -406
- package/src/media/props/wikiTechnical.ts +141 -1
- package/src/media/props/wikiText.ts +167 -0
- package/src/media/props/wikiTooltip.ts +53 -0
- package/src/media/props/wikiValue.ts +22 -276
- package/src/media/props/wikiWindow.ts +24 -45
- package/src/shims-mdx.d.ts +5 -0
- package/src/styles/storybookStyle.scss +3 -1
- package/src/types/storybookTypes.ts +48 -4
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
Universal component for displaying images, icons, and PDF documents with advanced size, positioning, and
|
|
1
|
+
Universal component for displaying images, icons, flags, and PDF documents with advanced size, positioning, and adaptability controls.
|
|
2
2
|
|
|
3
|
-
Image provides flexible API for working with various types of visual content
|
|
3
|
+
Image provides a flexible API for working with various types of visual content. The component automatically detects the source type (image, icon, color, file), selects the optimal rendering method (`<img>`, `background-image`, `<picture>`, `<object>`, or icon font), and supports advanced cropping and adaptation features.
|
|
4
4
|
|
|
5
5
|
**Key Features:**
|
|
6
6
|
|
|
7
|
-
- Support for multiple source types (
|
|
8
|
-
-
|
|
9
|
-
-
|
|
10
|
-
-
|
|
11
|
-
-
|
|
12
|
-
-
|
|
13
|
-
- Load events with complete type and data information
|
|
7
|
+
- Support for multiple source types (URL, File, PDF, Material Icons, flags, colors)
|
|
8
|
+
- Flexible rendering with automatic choice between background and img tag
|
|
9
|
+
- Adaptive scaling with aspect ratio preservation and srcset support
|
|
10
|
+
- Display control via fill modes and coordinate cropping
|
|
11
|
+
- Styling support with masks and color filling
|
|
12
|
+
- Integration with Material Symbols and system flags
|
|
14
13
|
|
|
15
14
|
**Typical Use Cases:**
|
|
16
15
|
|
|
17
|
-
-
|
|
18
|
-
-
|
|
19
|
-
-
|
|
20
|
-
-
|
|
21
|
-
- Background images with
|
|
16
|
+
- Responsive images with picture and srcset
|
|
17
|
+
- Interface icons (Material Design or SVG masks)
|
|
18
|
+
- User avatars with automatic cropping
|
|
19
|
+
- Previews of uploaded files and PDF documents
|
|
20
|
+
- Background images with complex positioning
|
|
21
|
+
- Displaying country flags via CSS sprites
|
|
22
22
|
|
|
23
23
|
```html
|
|
24
24
|
<script setup>
|
|
@@ -26,20 +26,25 @@ import { ref } from 'vue'
|
|
|
26
26
|
import { Image } from '@dxtmisha/constructor'
|
|
27
27
|
|
|
28
28
|
const imageUrl = ref('https://example.com/image.jpg')
|
|
29
|
-
|
|
30
|
-
function handleLoad(data) {
|
|
31
|
-
console.log('Image loaded:', data.type, data.image)
|
|
32
|
-
}
|
|
33
29
|
</script>
|
|
34
30
|
|
|
35
31
|
<template>
|
|
32
|
+
<!-- Background image with cropping -->
|
|
36
33
|
<Image
|
|
37
34
|
:value="imageUrl"
|
|
38
35
|
size="cover"
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
36
|
+
:coordinator="[10, 10, 10, 10]"
|
|
37
|
+
/>
|
|
38
|
+
|
|
39
|
+
<!-- SEO-friendly image -->
|
|
40
|
+
<Image
|
|
41
|
+
:value="imageUrl"
|
|
42
|
+
tag-img
|
|
43
|
+
alt="Description"
|
|
42
44
|
/>
|
|
45
|
+
|
|
46
|
+
<!-- Material Design Icon -->
|
|
47
|
+
<Image value="filled-home" />
|
|
43
48
|
</template>
|
|
44
49
|
```
|
|
45
50
|
|
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
Универсальный компонент для отображения изображений,
|
|
1
|
+
Универсальный компонент для отображения изображений, иконок, флагов и PDF-документов с расширенными возможностями управления размером, позиционированием и адаптивностью.
|
|
2
2
|
|
|
3
|
-
Image предоставляет гибкий API для работы с различными типами визуального
|
|
3
|
+
Image предоставляет гибкий API для работы с различными типами визуального контента. Компонент автоматически определяет тип источника (изображение, иконка, цвет, файл), выбирает оптимальный способ рендеринга (`<img>`, `background-image`, `<picture>`, `<object>` или иконочный шрифт) и поддерживает продвинутые функции кадрирования и адаптации.
|
|
4
4
|
|
|
5
5
|
**Основные возможности:**
|
|
6
6
|
|
|
7
|
-
- Поддержка множества типов источников (
|
|
8
|
-
-
|
|
9
|
-
-
|
|
10
|
-
-
|
|
11
|
-
-
|
|
12
|
-
-
|
|
13
|
-
- События загрузки с полной информацией о типе и данных
|
|
7
|
+
- Поддержка множества типов источников (URL, File, PDF, Material Icons, флаги, цвета)
|
|
8
|
+
- Гибкий рендеринг с автоматическим выбором между фоном и тегом img
|
|
9
|
+
- Адаптивное масштабирование с сохранением пропорций и поддержкой srcset
|
|
10
|
+
- Управление отображением через режимы заполнения и координатное кадрирование
|
|
11
|
+
- Стилизация с поддержкой масок и заливки цветом
|
|
12
|
+
- Интеграция с Material Symbols и системными флагами
|
|
14
13
|
|
|
15
14
|
**Типичные сценарии использования:**
|
|
16
15
|
|
|
17
|
-
-
|
|
18
|
-
-
|
|
19
|
-
-
|
|
20
|
-
-
|
|
21
|
-
- Фоновые изображения
|
|
16
|
+
- Адаптивные изображения с picture и srcset
|
|
17
|
+
- Иконки интерфейса (Material Design или SVG маски)
|
|
18
|
+
- Аватары пользователей с автоматическим кадрированием
|
|
19
|
+
- Превью загружаемых файлов и PDF документов
|
|
20
|
+
- Фоновые изображения со сложным позиционированием
|
|
21
|
+
- Отображение флагов стран через CSS спрайты
|
|
22
22
|
|
|
23
23
|
```html
|
|
24
24
|
<script setup>
|
|
@@ -26,22 +26,26 @@ import { ref } from 'vue'
|
|
|
26
26
|
import { Image } from '@dxtmisha/constructor'
|
|
27
27
|
|
|
28
28
|
const imageUrl = ref('https://example.com/image.jpg')
|
|
29
|
-
|
|
30
|
-
function handleLoad(data) {
|
|
31
|
-
console.log('Image loaded:', data.type, data.image)
|
|
32
|
-
}
|
|
33
29
|
</script>
|
|
34
30
|
|
|
35
31
|
<template>
|
|
32
|
+
<!-- Фоновое изображение с кадрированием -->
|
|
36
33
|
<Image
|
|
37
34
|
:value="imageUrl"
|
|
38
35
|
size="cover"
|
|
39
|
-
|
|
40
|
-
:coordinator="[0, 0, 100, 100]"
|
|
41
|
-
@load="handleLoad"
|
|
36
|
+
:coordinator="[10, 10, 10, 10]"
|
|
42
37
|
/>
|
|
38
|
+
|
|
39
|
+
<!-- SEO-дружественное изображение -->
|
|
40
|
+
<Image
|
|
41
|
+
:value="imageUrl"
|
|
42
|
+
tag-img
|
|
43
|
+
alt="Описание"
|
|
44
|
+
/>
|
|
45
|
+
|
|
46
|
+
<!-- Иконка Material Design -->
|
|
47
|
+
<Image value="filled-home" />
|
|
43
48
|
</template>
|
|
44
49
|
```
|
|
45
50
|
|
|
46
51
|
> Компонент автоматически управляет типом контента и оптимизирует отображение в зависимости от источника.
|
|
47
|
-
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
## Using the img tag
|
|
2
|
+
|
|
3
|
+
The `tagImg`, `srcset`, `picture`, `alt`, `lazy`, `preloadOffset` and `fetchPriority` properties are designed to control the image display mode using the HTML `<img>` tag instead of a background image.
|
|
4
|
+
|
|
5
|
+
**Properties:**
|
|
6
|
+
|
|
7
|
+
- `tagImg` — use the `<img>` tag instead of a background image
|
|
8
|
+
- `srcset` — set of image sources for different screen resolutions
|
|
9
|
+
- `picture` — sources for different display conditions using the `<picture>` tag
|
|
10
|
+
- `alt` — alternative text for the image
|
|
11
|
+
- `lazy` — enables lazy loading of the image
|
|
12
|
+
- `preloadOffset` — offset for image preloading (default `1024px`)
|
|
13
|
+
- `fetchPriority` — image loading priority (`low`, `high`, `auto`)
|
|
14
|
+
|
|
15
|
+
The properties work together: if `tagImg` is not set or equals `false`, the image is displayed as a CSS background via `background-image`. When `tagImg` is activated (value `true`), the component uses the semantic HTML `<img>` tag, providing better accessibility and SEO optimization. The `alt` property defines alternative text that is displayed when the image is unavailable and is used by screen readers for people with disabilities.
|
|
16
|
+
|
|
17
|
+
The `srcset` property allows you to provide multiple versions of an image for different pixel densities and screen sizes. It accepts a string in the standard `srcset` attribute format or an object where keys are width descriptors (numbers or strings like `'2x'`) and values are image URLs. When using numeric keys, the `w` suffix (width descriptor) is automatically added. The browser automatically selects the optimal image based on screen size and pixel density.
|
|
18
|
+
|
|
19
|
+
The `picture` property enables the use of the HTML `<picture>` tag for art direction — when you need to load different images depending on screen size or other media query conditions. It accepts an object where keys are media conditions (such as screen width in pixels) and values are image URLs, or an array of objects with `<source>` attributes. When using an object, media queries like `(width >= 768px)` are automatically generated. The `<picture>` tag provides more flexible control over image selection compared to `srcset`, allowing you to load images with different aspect ratios or content for various viewing conditions.
|
|
20
|
+
|
|
21
|
+
The `lazy` property activates native browser lazy loading via the `loading="lazy"` attribute. Images with this attribute are loaded only when approaching the visible screen area, which significantly speeds up initial page load and reduces traffic consumption. It is especially effective for pages with a large number of images or long lists.
|
|
22
|
+
|
|
23
|
+
The `preloadOffset` property defines the pixel offset for preloading images when using lazy loading. The default value is `1024px`, which means the image starts loading 1024 pixels before it enters the visible area. This ensures smooth image loading without delays during scrolling. You can specify either a numeric value or a string with a unit of measurement.
|
|
24
|
+
|
|
25
|
+
The `fetchPriority` property allows you to control the browser's image loading priority. It accepts three values: `high` — high priority for critical images (such as hero images or main banners), `low` — low priority for secondary images, `auto` — the browser determines the priority automatically (default value). Proper use of this property helps optimize page loading by ensuring fast loading of important content.
|
|
26
|
+
|
|
27
|
+
```html
|
|
28
|
+
<script setup>
|
|
29
|
+
import { ref } from 'vue'
|
|
30
|
+
|
|
31
|
+
const productImage = ref('/images/product.jpg')
|
|
32
|
+
</script>
|
|
33
|
+
|
|
34
|
+
<template>
|
|
35
|
+
<!-- Basic usage -->
|
|
36
|
+
<Image
|
|
37
|
+
:value="productImage"
|
|
38
|
+
tag-img
|
|
39
|
+
alt="Product description"
|
|
40
|
+
/>
|
|
41
|
+
|
|
42
|
+
<!-- With lazy loading -->
|
|
43
|
+
<Image
|
|
44
|
+
:value="productImage"
|
|
45
|
+
tag-img
|
|
46
|
+
alt="Product"
|
|
47
|
+
lazy
|
|
48
|
+
/>
|
|
49
|
+
|
|
50
|
+
<!-- With srcset object -->
|
|
51
|
+
<Image
|
|
52
|
+
:value="productImage"
|
|
53
|
+
tag-img
|
|
54
|
+
alt="Responsive image"
|
|
55
|
+
:srcset="{
|
|
56
|
+
'1x': '/images/product.jpg',
|
|
57
|
+
'2x': '/images/product@2x.jpg'
|
|
58
|
+
}"
|
|
59
|
+
/>
|
|
60
|
+
|
|
61
|
+
<!-- With picture for different screen sizes -->
|
|
62
|
+
<Image
|
|
63
|
+
:value="productImage"
|
|
64
|
+
tag-img
|
|
65
|
+
alt="Responsive image for different devices"
|
|
66
|
+
:picture="{
|
|
67
|
+
768: '/images/product-tablet.jpg',
|
|
68
|
+
1024: '/images/product-desktop.jpg'
|
|
69
|
+
}"
|
|
70
|
+
/>
|
|
71
|
+
|
|
72
|
+
<!-- With preload offset configuration -->
|
|
73
|
+
<Image
|
|
74
|
+
:value="productImage"
|
|
75
|
+
tag-img
|
|
76
|
+
alt="Image with early preload"
|
|
77
|
+
lazy
|
|
78
|
+
preload-offset="2048px"
|
|
79
|
+
/>
|
|
80
|
+
|
|
81
|
+
<!-- With high loading priority -->
|
|
82
|
+
<Image
|
|
83
|
+
:value="productImage"
|
|
84
|
+
tag-img
|
|
85
|
+
alt="Main page image"
|
|
86
|
+
fetch-priority="high"
|
|
87
|
+
/>
|
|
88
|
+
|
|
89
|
+
<!-- Complex example -->
|
|
90
|
+
<Image
|
|
91
|
+
:value="productImage"
|
|
92
|
+
tag-img
|
|
93
|
+
alt="Responsive product image"
|
|
94
|
+
lazy
|
|
95
|
+
preload-offset="1536px"
|
|
96
|
+
fetch-priority="low"
|
|
97
|
+
:srcset="{
|
|
98
|
+
'1x': '/images/product.jpg',
|
|
99
|
+
'2x': '/images/product@2x.jpg',
|
|
100
|
+
'3x': '/images/product@3x.jpg'
|
|
101
|
+
}"
|
|
102
|
+
/>
|
|
103
|
+
</template>
|
|
104
|
+
```
|
|
105
|
+
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
## Использование тега img
|
|
2
|
+
|
|
3
|
+
Свойства `tagImg`, `srcset`, `picture`, `alt`, `lazy`, `preloadOffset` и `fetchPriority` предназначены для управления режимом отображения изображения через HTML-тег `<img>` вместо фонового изображения.
|
|
4
|
+
|
|
5
|
+
**Свойства:**
|
|
6
|
+
|
|
7
|
+
- `tagImg` — использовать тег `<img>` вместо фонового изображения
|
|
8
|
+
- `srcset` — набор источников изображения для разных разрешений экрана
|
|
9
|
+
- `picture` — источники для разных условий отображения с использованием тега `<picture>`
|
|
10
|
+
- `alt` — альтернативный текст для изображения
|
|
11
|
+
- `lazy` — включает ленивую загрузку изображения
|
|
12
|
+
- `preloadOffset` — смещение для предзагрузки изображения (по умолчанию `1024px`)
|
|
13
|
+
- `fetchPriority` — приоритет загрузки изображения (`low`, `high`, `auto`)
|
|
14
|
+
|
|
15
|
+
Свойства работают совместно: если `tagImg` не задан или равен `false`, изображение отображается как CSS-фон через `background-image`. При активации `tagImg` (значение `true`), компонент использует семантический HTML-тег `<img>`, обеспечивая лучшую доступность и SEO-оптимизацию. Свойство `alt` определяет альтернативный текст, который отображается при недоступности изображения и используется программами чтения с экрана для людей с ограниченными возможностями.
|
|
16
|
+
|
|
17
|
+
Свойство `srcset` позволяет предоставить несколько версий изображения для разных плотностей пикселей и размеров экрана. Принимает строку в формате стандартного атрибута `srcset` или объект, где ключи — это дескрипторы ширины (числа или строки вроде `'2x'`), а значения — URL изображений. При использовании числовых ключей автоматически добавляется суффикс `w` (width descriptor). Браузер самостоятельно выбирает оптимальное изображение на основе размера экрана и плотности пикселей.
|
|
18
|
+
|
|
19
|
+
Свойство `picture` позволяет использовать HTML-тег `<picture>` для art direction — когда требуется загружать разные изображения в зависимости от размера экрана или других условий медиа-запросов. Принимает объект, где ключи — это медиа-условия (например, ширина экрана в пикселях), а значения — URL изображений, или массив объектов с атрибутами `<source>`. При использовании объекта автоматически генерируются медиа-запросы вида `(width >= 768px)`. Тег `<picture>` обеспечивает более гибкий контроль над выбором изображения по сравнению с `srcset`, позволяя загружать изображения разных пропорций или содержания для различных условий просмотра.
|
|
20
|
+
|
|
21
|
+
Свойство `lazy` активирует нативную ленивую загрузку браузера через атрибут `loading="lazy"`. Изображения с этим атрибутом загружаются только при приближении к видимой области экрана, что значительно ускоряет начальную загрузку страницы и снижает потребление трафика. Особенно эффективно для страниц с большим количеством изображений или длинных списков.
|
|
22
|
+
|
|
23
|
+
Свойство `preloadOffset` определяет смещение в пикселях для предварительной загрузки изображений при использовании ленивой загрузки. По умолчанию установлено значение `1024px`, что означает начало загрузки изображения за 1024 пикселя до того, как оно попадет в видимую область. Это обеспечивает плавную загрузку изображений без задержек при прокрутке. Можно указать как числовое значение, так и строку с единицей измерения.
|
|
24
|
+
|
|
25
|
+
Свойство `fetchPriority` позволяет управлять приоритетом загрузки изображения браузером. Принимает три значения: `high` — высокий приоритет для критически важных изображений (например, главный баннер или hero-изображение), `low` — низкий приоритет для второстепенных изображений, `auto` — браузер самостоятельно определяет приоритет (значение по умолчанию). Правильное использование этого свойства помогает оптимизировать загрузку страницы, обеспечивая быструю загрузку важного контента.
|
|
26
|
+
|
|
27
|
+
```html
|
|
28
|
+
<script setup>
|
|
29
|
+
import { ref } from 'vue'
|
|
30
|
+
|
|
31
|
+
const productImage = ref('/images/product.jpg')
|
|
32
|
+
</script>
|
|
33
|
+
|
|
34
|
+
<template>
|
|
35
|
+
<!-- Базовое использование -->
|
|
36
|
+
<Image
|
|
37
|
+
:value="productImage"
|
|
38
|
+
tag-img
|
|
39
|
+
alt="Описание продукта"
|
|
40
|
+
/>
|
|
41
|
+
|
|
42
|
+
<!-- С ленивой загрузкой -->
|
|
43
|
+
<Image
|
|
44
|
+
:value="productImage"
|
|
45
|
+
tag-img
|
|
46
|
+
alt="Товар"
|
|
47
|
+
lazy
|
|
48
|
+
/>
|
|
49
|
+
|
|
50
|
+
<!-- С srcset объектом -->
|
|
51
|
+
<Image
|
|
52
|
+
:value="productImage"
|
|
53
|
+
tag-img
|
|
54
|
+
alt="Адаптивное изображение"
|
|
55
|
+
:srcset="{
|
|
56
|
+
'1x': '/images/product.jpg',
|
|
57
|
+
'2x': '/images/product@2x.jpg'
|
|
58
|
+
}"
|
|
59
|
+
/>
|
|
60
|
+
|
|
61
|
+
<!-- С picture для разных размеров экрана -->
|
|
62
|
+
<Image
|
|
63
|
+
:value="productImage"
|
|
64
|
+
tag-img
|
|
65
|
+
alt="Адаптивное изображение для разных устройств"
|
|
66
|
+
:picture="{
|
|
67
|
+
768: '/images/product-tablet.jpg',
|
|
68
|
+
1024: '/images/product-desktop.jpg'
|
|
69
|
+
}"
|
|
70
|
+
/>
|
|
71
|
+
|
|
72
|
+
<!-- С настройкой предзагрузки -->
|
|
73
|
+
<Image
|
|
74
|
+
:value="productImage"
|
|
75
|
+
tag-img
|
|
76
|
+
alt="Изображение с ранней предзагрузкой"
|
|
77
|
+
lazy
|
|
78
|
+
preload-offset="2048px"
|
|
79
|
+
/>
|
|
80
|
+
|
|
81
|
+
<!-- С высоким приоритетом загрузки -->
|
|
82
|
+
<Image
|
|
83
|
+
:value="productImage"
|
|
84
|
+
tag-img
|
|
85
|
+
alt="Главное изображение страницы"
|
|
86
|
+
fetch-priority="high"
|
|
87
|
+
/>
|
|
88
|
+
|
|
89
|
+
<!-- Комплексный пример -->
|
|
90
|
+
<Image
|
|
91
|
+
:value="productImage"
|
|
92
|
+
tag-img
|
|
93
|
+
alt="Адаптивное изображение товара"
|
|
94
|
+
lazy
|
|
95
|
+
preload-offset="1536px"
|
|
96
|
+
fetch-priority="low"
|
|
97
|
+
:srcset="{
|
|
98
|
+
'1x': '/images/product.jpg',
|
|
99
|
+
'2x': '/images/product@2x.jpg',
|
|
100
|
+
'3x': '/images/product@3x.jpg'
|
|
101
|
+
}"
|
|
102
|
+
/>
|
|
103
|
+
</template>
|
|
104
|
+
```
|
|
105
|
+
|
|
@@ -8,6 +8,10 @@ import sizeEn from './size.en.mdx'
|
|
|
8
8
|
import sizeRu from './size.ru.mdx'
|
|
9
9
|
import adaptiveEn from './adaptive.en.mdx'
|
|
10
10
|
import adaptiveRu from './adaptive.ru.mdx'
|
|
11
|
+
import imgTagEn from './img-tag.en.mdx'
|
|
12
|
+
import imgTagRu from './img-tag.ru.mdx'
|
|
13
|
+
import flagEn from './flag.en.mdx'
|
|
14
|
+
import flagRu from './flag.ru.mdx'
|
|
11
15
|
|
|
12
16
|
import eventLoadEn from './event.load.en.mdx'
|
|
13
17
|
import eventLoadRu from './event.load.ru.mdx'
|
|
@@ -34,6 +38,14 @@ export const wikiMdxImage: StorybookComponentsMdxItem = {
|
|
|
34
38
|
en: adaptiveEn,
|
|
35
39
|
ru: adaptiveRu
|
|
36
40
|
},
|
|
41
|
+
'img-tag': {
|
|
42
|
+
en: imgTagEn,
|
|
43
|
+
ru: imgTagRu
|
|
44
|
+
},
|
|
45
|
+
'flag': {
|
|
46
|
+
en: flagEn,
|
|
47
|
+
ru: flagRu
|
|
48
|
+
},
|
|
37
49
|
'event.load': {
|
|
38
50
|
en: eventLoadEn,
|
|
39
51
|
ru: eventLoadRu
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
## Currency Formatting
|
|
2
|
+
|
|
3
|
+
Properties `type`, `currency`, `currencyHide`, `language`, and `fraction` are designed to manage currency value formatting with automatic currency symbol insertion and localization.
|
|
4
|
+
|
|
5
|
+
**Properties:**
|
|
6
|
+
|
|
7
|
+
- `type` — input type (set to `currency`)
|
|
8
|
+
- `currency` — currency code (e.g., `USD`, `EUR`, `RUB`)
|
|
9
|
+
- `currencyHide` — hides currency symbol in the input field
|
|
10
|
+
- `language` — locale code for formatting (e.g., `ru-RU`, `en-US`)
|
|
11
|
+
- `fraction` — number of decimal places (default `2`)
|
|
12
|
+
|
|
13
|
+
Properties work together: `type="currency"` automatically activates currency formatting mode with two decimal places. `currency` defines the symbol appended to the formatted number (`$`, `€`, `₽`). When `currencyHide` is set, currency symbol is not displayed, but number formatting is preserved. Property `language` affects thousand separators, decimal separator, and currency symbol position. Number of decimal places can be changed via `fraction`, overriding the default value.
|
|
14
|
+
|
|
15
|
+
```html
|
|
16
|
+
<script setup>
|
|
17
|
+
import { ref } from 'vue'
|
|
18
|
+
const value = ref('1234.56')
|
|
19
|
+
</script>
|
|
20
|
+
|
|
21
|
+
<template>
|
|
22
|
+
<!-- Standard currency input -->
|
|
23
|
+
<Input v-model="value" type="currency" currency="USD" language="en-US" label="Price" />
|
|
24
|
+
|
|
25
|
+
<!-- Currency with Russian locale -->
|
|
26
|
+
<Input v-model="value" type="currency" currency="RUB" language="ru-RU" label="Salary" />
|
|
27
|
+
|
|
28
|
+
<!-- Currency without symbol -->
|
|
29
|
+
<Input v-model="value" type="currency" currency="EUR" currency-hide language="de-DE" label="Amount" />
|
|
30
|
+
|
|
31
|
+
<!-- Currency with three decimals -->
|
|
32
|
+
<Input v-model="value" type="currency" currency="USD" language="en-US" :fraction="3" label="Precise Amount" />
|
|
33
|
+
|
|
34
|
+
<!-- Number formatting only -->
|
|
35
|
+
<Input v-model="value" type="number-format" language="ru-RU" label="Number" />
|
|
36
|
+
</template>
|
|
37
|
+
```
|
|
38
|
+
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
## Работа с валютой
|
|
2
|
+
|
|
3
|
+
Свойства `type`, `currency`, `currencyHide`, `language` и `fraction` предназначены для управления форматированием денежных значений с автоматической подстановкой символа валюты и локализацией.
|
|
4
|
+
|
|
5
|
+
**Свойства:**
|
|
6
|
+
|
|
7
|
+
- `type` — тип инпута (устанавливается значение `currency`)
|
|
8
|
+
- `currency` — код валюты (например, `USD`, `EUR`, `RUB`)
|
|
9
|
+
- `currencyHide` — скрывает символ валюты в поле ввода
|
|
10
|
+
- `language` — код локали для форматирования (например, `ru-RU`, `en-US`)
|
|
11
|
+
- `fraction` — количество знаков после запятой (по умолчанию `2`)
|
|
12
|
+
|
|
13
|
+
Свойства работают совместно: `type="currency"` автоматически активирует режим валютного форматирования с двумя знаками после запятой. `currency` определяет символ, который добавляется к отформатированному числу (`$`, `€`, `₽`). При установке `currencyHide` символ валюты не отображается, но форматирование числа сохраняется. Свойство `language` влияет на разделители тысяч, десятичный разделитель и позицию символа валюты. Количество десятичных знаков можно изменить через `fraction`, перезаписав значение по умолчанию.
|
|
14
|
+
|
|
15
|
+
```html
|
|
16
|
+
<script setup>
|
|
17
|
+
import { ref } from 'vue'
|
|
18
|
+
const value = ref('1234.56')
|
|
19
|
+
</script>
|
|
20
|
+
|
|
21
|
+
<template>
|
|
22
|
+
<!-- Стандартный валютный инпут -->
|
|
23
|
+
<Input v-model="value" type="currency" currency="USD" language="en-US" label="Цена" />
|
|
24
|
+
|
|
25
|
+
<!-- Валюта с русской локалью -->
|
|
26
|
+
<Input v-model="value" type="currency" currency="RUB" language="ru-RU" label="Зарплата" />
|
|
27
|
+
|
|
28
|
+
<!-- Валюта без символа -->
|
|
29
|
+
<Input v-model="value" type="currency" currency="EUR" currency-hide language="de-DE" label="Сумма" />
|
|
30
|
+
|
|
31
|
+
<!-- Валюта с тремя знаками -->
|
|
32
|
+
<Input v-model="value" type="currency" currency="USD" language="en-US" :fraction="3" label="Точная сумма" />
|
|
33
|
+
|
|
34
|
+
<!-- Только числовое форматирование -->
|
|
35
|
+
<Input v-model="value" type="number-format" language="ru-RU" label="Число" />
|
|
36
|
+
</template>
|
|
37
|
+
```
|
|
38
|
+
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
## Date and Time Formatting
|
|
2
|
+
|
|
3
|
+
Properties `type`, `language`, and `mask` are designed to manage date and time input and formatting with automatic localization and masking.
|
|
4
|
+
|
|
5
|
+
**Properties:**
|
|
6
|
+
|
|
7
|
+
- `type` — input type (set to one of: `date`, `datetime`, `year-month`, `time`, `hour-minute`)
|
|
8
|
+
- `language` — locale code for formatting (e.g., `ru-RU`, `en-US`)
|
|
9
|
+
- `mask` — custom input mask (optional)
|
|
10
|
+
- `min` — minimum allowed date/time value
|
|
11
|
+
- `max` — maximum allowed date/time value
|
|
12
|
+
|
|
13
|
+
Properties work together: `type="date"` automatically activates date input mode with localized formatting. `language` determines the order of date components (day/month/year or month/day/year) and separators. `type="datetime"` adds time input to the date. Types `year-month`, `time`, and `hour-minute` allow input of specific components only. Properties `min` and `max` restrict the range of allowed values. You can override the automatic mask via the `mask` property for custom formatting.
|
|
14
|
+
|
|
15
|
+
```html
|
|
16
|
+
<script setup>
|
|
17
|
+
import { ref } from 'vue'
|
|
18
|
+
const dateValue = ref('2024-03-15')
|
|
19
|
+
const datetimeValue = ref('2024-03-15T14:30:00')
|
|
20
|
+
const timeValue = ref('14:30')
|
|
21
|
+
const yearMonthValue = ref('2024-03')
|
|
22
|
+
</script>
|
|
23
|
+
|
|
24
|
+
<template>
|
|
25
|
+
<!-- Standard date input -->
|
|
26
|
+
<Input v-model="dateValue" type="date" language="en-US" label="Date" />
|
|
27
|
+
|
|
28
|
+
<!-- Date with Russian locale -->
|
|
29
|
+
<Input v-model="dateValue" type="date" language="ru-RU" label="Дата" />
|
|
30
|
+
|
|
31
|
+
<!-- Date and time -->
|
|
32
|
+
<Input v-model="datetimeValue" type="datetime" language="en-US" label="Date and Time" />
|
|
33
|
+
|
|
34
|
+
<!-- Time only -->
|
|
35
|
+
<Input v-model="timeValue" type="time" language="en-US" label="Time" />
|
|
36
|
+
|
|
37
|
+
<!-- Hours and minutes -->
|
|
38
|
+
<Input v-model="timeValue" type="hour-minute" language="en-US" label="Hours:Minutes" />
|
|
39
|
+
|
|
40
|
+
<!-- Year and month -->
|
|
41
|
+
<Input v-model="yearMonthValue" type="year-month" language="en-US" label="Period" />
|
|
42
|
+
|
|
43
|
+
<!-- Date with constraints -->
|
|
44
|
+
<Input
|
|
45
|
+
v-model="dateValue"
|
|
46
|
+
type="date"
|
|
47
|
+
language="en-US"
|
|
48
|
+
min="2024-01-01"
|
|
49
|
+
max="2024-12-31"
|
|
50
|
+
label="Date in 2024"
|
|
51
|
+
/>
|
|
52
|
+
</template>
|
|
53
|
+
```
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
## Работа с датой и временем
|
|
2
|
+
|
|
3
|
+
Свойства `type`, `language` и `mask` предназначены для управления вводом и форматированием значений даты и времени с автоматической локализацией и маскированием.
|
|
4
|
+
|
|
5
|
+
**Свойства:**
|
|
6
|
+
|
|
7
|
+
- `type` — тип инпута (устанавливается одно из значений: `date`, `datetime`, `year-month`, `time`, `hour-minute`)
|
|
8
|
+
- `language` — код локали для форматирования (например, `ru-RU`, `en-US`)
|
|
9
|
+
- `mask` — пользовательская маска для ввода (опционально)
|
|
10
|
+
- `min` — минимальное допустимое значение даты/времени
|
|
11
|
+
- `max` — максимальное допустимое значение даты/времени
|
|
12
|
+
|
|
13
|
+
Свойства работают совместно: `type="date"` автоматически активирует режим ввода даты с локализованным форматированием. `language` определяет порядок компонентов даты (день/месяц/год или месяц/день/год) и разделители. `type="datetime"` добавляет к дате ввод времени. Типы `year-month`, `time` и `hour-minute` позволяют вводить только определённые компоненты. Свойства `min` и `max` ограничивают диапазон допустимых значений. Можно переопределить автоматическую маску через свойство `mask` для кастомного форматирования.
|
|
14
|
+
|
|
15
|
+
```html
|
|
16
|
+
<script setup>
|
|
17
|
+
import { ref } from 'vue'
|
|
18
|
+
const dateValue = ref('2024-03-15')
|
|
19
|
+
const datetimeValue = ref('2024-03-15T14:30:00')
|
|
20
|
+
const timeValue = ref('14:30')
|
|
21
|
+
const yearMonthValue = ref('2024-03')
|
|
22
|
+
</script>
|
|
23
|
+
|
|
24
|
+
<template>
|
|
25
|
+
<!-- Стандартный ввод даты -->
|
|
26
|
+
<Input v-model="dateValue" type="date" language="ru-RU" label="Дата" />
|
|
27
|
+
|
|
28
|
+
<!-- Дата с английской локалью -->
|
|
29
|
+
<Input v-model="dateValue" type="date" language="en-US" label="Date" />
|
|
30
|
+
|
|
31
|
+
<!-- Дата и время -->
|
|
32
|
+
<Input v-model="datetimeValue" type="datetime" language="ru-RU" label="Дата и время" />
|
|
33
|
+
|
|
34
|
+
<!-- Только время -->
|
|
35
|
+
<Input v-model="timeValue" type="time" language="ru-RU" label="Время" />
|
|
36
|
+
|
|
37
|
+
<!-- Часы и минуты -->
|
|
38
|
+
<Input v-model="timeValue" type="hour-minute" language="ru-RU" label="Часы:Минуты" />
|
|
39
|
+
|
|
40
|
+
<!-- Год и месяц -->
|
|
41
|
+
<Input v-model="yearMonthValue" type="year-month" language="ru-RU" label="Период" />
|
|
42
|
+
|
|
43
|
+
<!-- Дата с ограничениями -->
|
|
44
|
+
<Input
|
|
45
|
+
v-model="dateValue"
|
|
46
|
+
type="date"
|
|
47
|
+
language="ru-RU"
|
|
48
|
+
min="2024-01-01"
|
|
49
|
+
max="2024-12-31"
|
|
50
|
+
label="Дата в 2024 году"
|
|
51
|
+
/>
|
|
52
|
+
</template>
|
|
53
|
+
```
|