@dxtmisha/wiki 0.24.2 → 0.24.3
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 +1 -1
- package/src/library.ts +7 -7
- package/src/media/descriptions/wikiDescriptionsBars.ts +1 -3
- package/src/media/descriptions/wikiDescriptionsCell.ts +1 -2
- package/src/media/descriptions/wikiDescriptionsChip.ts +0 -1
- package/src/media/descriptions/wikiDescriptionsField.ts +1 -4
- package/src/media/descriptions/wikiDescriptionsFieldCounter.ts +6 -6
- package/src/media/descriptions/wikiDescriptionsFieldMessage.ts +1 -2
- package/src/media/descriptions/wikiDescriptionsImage.ts +2 -2
- package/src/media/descriptions/wikiDescriptionsList.ts +1 -5
- package/src/media/descriptions/wikiDescriptionsListGroup.ts +2 -3
- package/src/media/descriptions/wikiDescriptionsListItem.ts +1 -3
- package/src/media/descriptions/wikiDescriptionsListMenu.ts +2 -9
- package/src/media/descriptions/wikiDescriptionsMask.ts +12 -0
- package/src/media/descriptions/wikiDescriptionsMenu.ts +3 -14
- package/src/media/descriptions/wikiDescriptionsMotionTransform.ts +2 -4
- package/src/media/descriptions/wikiDescriptionsScrollbar.ts +1 -7
- package/src/media/descriptions/wikiDescriptionsSkeleton.ts +1 -0
- package/src/media/descriptions/wikiDescriptionsWindow.ts +5 -22
- package/src/media/functional/en/broadcastMessage.mdx +307 -0
- package/src/media/functional/ru/broadcastMessage.mdx +305 -0
- package/src/media/mdx/Badge/badge.en.mdx +85 -7
- package/src/media/mdx/Badge/badge.ru.mdx +85 -7
- package/src/media/mdx/Badge/dot.en.mdx +16 -12
- package/src/media/mdx/Badge/dot.ru.mdx +16 -12
- package/src/media/mdx/Badge/outline.en.mdx +12 -13
- package/src/media/mdx/Badge/outline.ru.mdx +12 -13
- package/src/media/mdx/Badge/primary.en.mdx +12 -12
- package/src/media/mdx/Badge/primary.ru.mdx +12 -12
- package/src/media/mdx/Badge/secondary.en.mdx +12 -13
- package/src/media/mdx/Badge/secondary.ru.mdx +12 -13
- package/src/media/mdx/Bars/action.en.mdx +72 -28
- package/src/media/mdx/Bars/action.ru.mdx +73 -29
- package/src/media/mdx/Bars/bars.en.mdx +90 -15
- package/src/media/mdx/Bars/bars.ru.mdx +91 -15
- package/src/media/mdx/Bars/slots.en.mdx +33 -0
- package/src/media/mdx/Bars/slots.ru.mdx +33 -0
- package/src/media/mdx/Bars/v-model.en.mdx +23 -14
- package/src/media/mdx/Bars/v-model.ru.mdx +23 -14
- package/src/media/mdx/Bars/wikiMdxBars.ts +5 -11
- package/src/media/mdx/Button/button.en.mdx +89 -1
- package/src/media/mdx/Button/button.ru.mdx +89 -1
- package/src/media/mdx/Button/outline.en.mdx +12 -14
- package/src/media/mdx/Button/outline.ru.mdx +12 -14
- package/src/media/mdx/Button/primary.en.mdx +12 -19
- package/src/media/mdx/Button/primary.ru.mdx +12 -19
- package/src/media/mdx/Button/secondary.en.mdx +12 -17
- package/src/media/mdx/Button/secondary.ru.mdx +12 -17
- package/src/media/mdx/Button/text.en.mdx +12 -11
- package/src/media/mdx/Button/text.ru.mdx +12 -11
- package/src/media/mdx/Cell/cell.en.mdx +50 -9
- package/src/media/mdx/Cell/cell.ru.mdx +50 -9
- package/src/media/mdx/Cell/slots.en.mdx +82 -0
- package/src/media/mdx/Cell/slots.ru.mdx +83 -0
- package/src/media/mdx/Cell/wikiMdxCell.ts +6 -12
- package/src/media/mdx/Chip/assistive.en.mdx +12 -14
- package/src/media/mdx/Chip/assistive.ru.mdx +12 -14
- package/src/media/mdx/Chip/chip.en.mdx +69 -9
- package/src/media/mdx/Chip/chip.ru.mdx +69 -9
- package/src/media/mdx/Chip/input.en.mdx +12 -19
- package/src/media/mdx/Chip/input.ru.mdx +12 -19
- package/src/media/mdx/Field/arrows.en.mdx +67 -17
- package/src/media/mdx/Field/arrows.ru.mdx +67 -17
- package/src/media/mdx/Field/cancel.en.mdx +47 -10
- package/src/media/mdx/Field/cancel.ru.mdx +47 -10
- package/src/media/mdx/Field/field.en.mdx +45 -15
- package/src/media/mdx/Field/field.ru.mdx +45 -15
- package/src/media/mdx/Field/slots.en.mdx +151 -0
- package/src/media/mdx/Field/slots.ru.mdx +151 -0
- package/src/media/mdx/Field/value.en.mdx +49 -28
- package/src/media/mdx/Field/value.ru.mdx +49 -28
- package/src/media/mdx/Field/width.en.mdx +21 -19
- package/src/media/mdx/Field/width.ru.mdx +21 -19
- package/src/media/mdx/Field/wikiMdxField.ts +14 -26
- package/src/media/mdx/FieldCounter/fieldCounter.en.mdx +52 -14
- package/src/media/mdx/FieldCounter/fieldCounter.ru.mdx +55 -14
- package/src/media/mdx/FieldCounter/templates.en.mdx +26 -6
- package/src/media/mdx/FieldCounter/templates.ru.mdx +25 -5
- package/src/media/mdx/FieldLabel/fieldLabel.en.mdx +56 -14
- package/src/media/mdx/FieldLabel/fieldLabel.ru.mdx +56 -14
- package/src/media/mdx/FieldMessage/fieldMessage.en.mdx +58 -14
- package/src/media/mdx/FieldMessage/fieldMessage.ru.mdx +58 -14
- package/src/media/mdx/FieldMessage/slots.en.mdx +45 -0
- package/src/media/mdx/FieldMessage/slots.ru.mdx +45 -0
- package/src/media/mdx/FieldMessage/wikiMdxFieldMessage.ts +6 -12
- package/src/media/mdx/Icon/expose.isActive.en.mdx +2 -10
- package/src/media/mdx/Icon/expose.isActive.ru.mdx +2 -10
- package/src/media/mdx/Icon/icon.en.mdx +43 -9
- package/src/media/mdx/Icon/icon.ru.mdx +27 -28
- package/src/media/mdx/Image/adaptive.en.mdx +63 -20
- package/src/media/mdx/Image/adaptive.ru.mdx +62 -25
- package/src/media/mdx/Image/event.load.en.mdx +37 -2
- package/src/media/mdx/Image/event.load.ru.mdx +34 -7
- package/src/media/mdx/Image/{expose.type.ru.mdx → expose.en.mdx} +11 -1
- package/src/media/mdx/Image/expose.ru.mdx +31 -0
- package/src/media/mdx/Image/image.en.mdx +46 -0
- package/src/media/mdx/Image/image.ru.mdx +47 -0
- package/src/media/mdx/Image/size.en.mdx +19 -19
- package/src/media/mdx/Image/size.ru.mdx +19 -23
- package/src/media/mdx/Image/value.en.mdx +10 -27
- package/src/media/mdx/Image/value.ru.mdx +10 -29
- package/src/media/mdx/Image/wikiMdxImage.ts +11 -11
- package/src/media/mdx/List/event.close.en.mdx +5 -8
- package/src/media/mdx/List/event.close.ru.mdx +5 -8
- package/src/media/mdx/List/list.en.mdx +56 -14
- package/src/media/mdx/List/list.ru.mdx +56 -14
- package/src/media/mdx/List/lite.en.mdx +17 -12
- package/src/media/mdx/List/lite.ru.mdx +17 -12
- package/src/media/mdx/List/slot.html.en.mdx +72 -21
- package/src/media/mdx/List/slot.html.ru.mdx +72 -21
- package/src/media/mdx/ListGroup/listGroup.en.mdx +55 -1
- package/src/media/mdx/ListGroup/listGroup.ru.mdx +55 -1
- package/src/media/mdx/ListGroup/slots.en.mdx +10 -0
- package/src/media/mdx/ListGroup/slots.ru.mdx +10 -0
- package/src/media/mdx/ListGroup/wikiMdxListGroup.ts +6 -12
- package/src/media/mdx/ListItem/basic.en.mdx +47 -10
- package/src/media/mdx/ListItem/basic.ru.mdx +46 -9
- package/src/media/mdx/ListItem/fill.en.mdx +22 -8
- package/src/media/mdx/ListItem/fill.ru.mdx +22 -8
- package/src/media/mdx/ListItem/slots.en.mdx +7 -0
- package/src/media/mdx/ListItem/slots.ru.mdx +7 -0
- package/src/media/mdx/ListItem/wikiMdxListItem.ts +7 -13
- package/src/media/mdx/ListMenu/listMenu.en.mdx +62 -1
- package/src/media/mdx/ListMenu/listMenu.ru.mdx +62 -1
- package/src/media/mdx/Mask/basic.en.mdx +68 -16
- package/src/media/mdx/Mask/basic.ru.mdx +70 -11
- package/src/media/mdx/Mask/dateTypes.en.mdx +82 -68
- package/src/media/mdx/Mask/dateTypes.ru.mdx +82 -68
- package/src/media/mdx/Mask/expose.en.mdx +20 -0
- package/src/media/mdx/Mask/expose.ru.mdx +20 -0
- package/src/media/mdx/Mask/groupSave.en.mdx +13 -46
- package/src/media/mdx/Mask/groupSave.ru.mdx +13 -46
- package/src/media/mdx/Mask/mask.en.mdx +12 -66
- package/src/media/mdx/Mask/mask.ru.mdx +12 -66
- package/src/media/mdx/Mask/match.en.mdx +16 -24
- package/src/media/mdx/Mask/match.ru.mdx +16 -24
- package/src/media/mdx/Mask/numberTypes.en.mdx +64 -52
- package/src/media/mdx/Mask/numberTypes.ru.mdx +64 -52
- package/src/media/mdx/Mask/pattern.en.mdx +63 -75
- package/src/media/mdx/Mask/pattern.ru.mdx +63 -75
- package/src/media/mdx/Mask/special.en.mdx +174 -97
- package/src/media/mdx/Mask/special.ru.mdx +174 -97
- package/src/media/mdx/Mask/type.en.mdx +12 -36
- package/src/media/mdx/Mask/type.ru.mdx +11 -35
- package/src/media/mdx/Mask/visible.en.mdx +33 -41
- package/src/media/mdx/Mask/visible.ru.mdx +32 -40
- package/src/media/mdx/Mask/wikiMdxMask.ts +6 -0
- package/src/media/mdx/Menu/ajax.en.mdx +44 -51
- package/src/media/mdx/Menu/ajax.ru.mdx +44 -52
- package/src/media/mdx/Menu/menu.en.mdx +63 -1
- package/src/media/mdx/Menu/menu.ru.mdx +64 -1
- package/src/media/mdx/Menu/slots.en.mdx +122 -0
- package/src/media/mdx/Menu/slots.ru.mdx +122 -0
- package/src/media/mdx/Menu/wikiMdxMenu.ts +7 -32
- package/src/media/mdx/MotionTransform/animationHeadPosition.en.mdx +10 -22
- package/src/media/mdx/MotionTransform/animationHeadPosition.ru.mdx +10 -22
- package/src/media/mdx/MotionTransform/classes.en.mdx +18 -25
- package/src/media/mdx/MotionTransform/classes.ru.mdx +18 -25
- package/src/media/mdx/MotionTransform/events.en.mdx +31 -43
- package/src/media/mdx/MotionTransform/events.ru.mdx +31 -43
- package/src/media/mdx/MotionTransform/expose.isShow.en.mdx +2 -4
- package/src/media/mdx/MotionTransform/expose.isShow.ru.mdx +2 -4
- package/src/media/mdx/MotionTransform/ignore.en.mdx +22 -24
- package/src/media/mdx/MotionTransform/ignore.ru.mdx +22 -24
- package/src/media/mdx/MotionTransform/motionTransform.en.mdx +44 -15
- package/src/media/mdx/MotionTransform/motionTransform.ru.mdx +44 -15
- package/src/media/mdx/MotionTransform/slots.en.mdx +92 -0
- package/src/media/mdx/MotionTransform/slots.ru.mdx +92 -0
- package/src/media/mdx/MotionTransform/v-model.en.mdx +23 -14
- package/src/media/mdx/MotionTransform/v-model.ru.mdx +23 -14
- package/src/media/mdx/MotionTransform/wikiMdxMotionTransform.ts +5 -17
- package/src/media/mdx/Progress/circular.en.mdx +7 -20
- package/src/media/mdx/Progress/circular.ru.mdx +7 -20
- package/src/media/mdx/Progress/delays.en.mdx +6 -13
- package/src/media/mdx/Progress/delays.ru.mdx +6 -13
- package/src/media/mdx/Progress/linear.en.mdx +9 -23
- package/src/media/mdx/Progress/linear.ru.mdx +9 -23
- package/src/media/mdx/Progress/progress.en.mdx +67 -5
- package/src/media/mdx/Progress/progress.ru.mdx +67 -5
- package/src/media/mdx/Progress/values.en.mdx +6 -28
- package/src/media/mdx/Progress/values.ru.mdx +6 -29
- package/src/media/mdx/Ripple/ripple.en.mdx +34 -40
- package/src/media/mdx/Ripple/ripple.ru.mdx +34 -40
- package/src/media/mdx/Scrollbar/emits-include.en.mdx +38 -0
- package/src/media/mdx/Scrollbar/emits-include.ru.mdx +38 -0
- package/src/media/mdx/Scrollbar/emits.en.mdx +38 -0
- package/src/media/mdx/Scrollbar/emits.ru.mdx +38 -0
- package/src/media/mdx/Scrollbar/scrollbar.en.mdx +38 -2
- package/src/media/mdx/Scrollbar/scrollbar.ru.mdx +38 -2
- package/src/media/mdx/Scrollbar/wikiMdxScrollbar.ts +12 -43
- package/src/media/mdx/Skeleton/classes.en.mdx +13 -0
- package/src/media/mdx/Skeleton/classes.ru.mdx +13 -0
- package/src/media/mdx/Skeleton/expose.isActive.en.mdx +7 -28
- package/src/media/mdx/Skeleton/expose.isActive.ru.mdx +7 -28
- package/src/media/mdx/Skeleton/skeleton.en.mdx +37 -36
- package/src/media/mdx/Skeleton/skeleton.ru.mdx +37 -36
- package/src/media/mdx/Skeleton/wikiMdxSkeleton.ts +7 -0
- package/src/media/mdx/Window/axis.en.mdx +11 -19
- package/src/media/mdx/Window/axis.ru.mdx +11 -19
- package/src/media/mdx/Window/classes.en.mdx +9 -26
- package/src/media/mdx/Window/classes.ru.mdx +9 -26
- package/src/media/mdx/Window/event.window.en.mdx +26 -8
- package/src/media/mdx/Window/event.window.ru.mdx +26 -8
- package/src/media/mdx/Window/expose.en.mdx +44 -0
- package/src/media/mdx/Window/expose.ru.mdx +44 -0
- package/src/media/mdx/Window/hooks.en.mdx +29 -50
- package/src/media/mdx/Window/hooks.ru.mdx +31 -52
- package/src/media/mdx/Window/slots.en.mdx +168 -0
- package/src/media/mdx/Window/slots.ru.mdx +168 -0
- package/src/media/mdx/Window/v-model.en.mdx +20 -11
- package/src/media/mdx/Window/v-model.ru.mdx +19 -11
- package/src/media/mdx/Window/wikiMdxWindow.ts +11 -41
- package/src/media/mdx/Window/window.en.mdx +55 -1
- package/src/media/mdx/Window/window.ru.mdx +55 -1
- package/src/media/mdx/event/events.bars.en.mdx +50 -0
- package/src/media/mdx/event/events.bars.ru.mdx +50 -0
- package/src/media/mdx/event/events.beforeinput.en.mdx +13 -0
- package/src/media/mdx/event/events.beforeinput.ru.mdx +13 -0
- package/src/media/mdx/event/events.click.en.mdx +36 -0
- package/src/media/mdx/event/events.click.ru.mdx +36 -0
- package/src/media/mdx/event/events.focus.en.mdx +13 -0
- package/src/media/mdx/event/events.focus.ru.mdx +13 -0
- package/src/media/mdx/event/events.input.en.mdx +89 -0
- package/src/media/mdx/event/events.input.ru.mdx +90 -0
- package/src/media/mdx/event/events.keyboard.en.mdx +13 -0
- package/src/media/mdx/event/events.keyboard.ru.mdx +13 -0
- package/src/media/mdx/event/events.paste.en.mdx +6 -0
- package/src/media/mdx/event/events.paste.ru.mdx +6 -0
- package/src/media/mdx/event/events.reset.en.mdx +6 -0
- package/src/media/mdx/event/events.reset.ru.mdx +6 -0
- package/src/media/mdx/event/wikiMdxEvent.ts +39 -74
- package/src/media/mdx/expose/expose.clear.en.mdx +3 -0
- package/src/media/mdx/expose/expose.clear.ru.mdx +3 -0
- package/src/media/mdx/expose/expose.detail.en.mdx +5 -0
- package/src/media/mdx/expose/{detail.ru.mdx → expose.detail.ru.mdx} +1 -3
- package/src/media/mdx/expose/expose.open.en.mdx +5 -0
- package/src/media/mdx/expose/expose.open.ru.mdx +5 -0
- package/src/media/mdx/expose/expose.selected.en.mdx +23 -0
- package/src/media/mdx/expose/expose.selected.ru.mdx +23 -0
- package/src/media/mdx/expose/{value.en.mdx → expose.value.en.mdx} +1 -3
- package/src/media/mdx/expose/{value.ru.mdx → expose.value.ru.mdx} +1 -3
- package/src/media/mdx/expose/wikiMdxExpose.ts +25 -31
- package/src/media/mdx/slot/caption.en.mdx +2 -7
- package/src/media/mdx/slot/caption.ru.mdx +2 -7
- package/src/media/mdx/slot/control.en.mdx +4 -5
- package/src/media/mdx/slot/control.ru.mdx +4 -5
- package/src/media/mdx/slot/default.en.mdx +2 -7
- package/src/media/mdx/slot/default.ru.mdx +2 -7
- package/src/media/mdx/slot/description.en.mdx +2 -7
- package/src/media/mdx/slot/description.ru.mdx +2 -7
- package/src/media/mdx/slot/footer.en.mdx +4 -5
- package/src/media/mdx/slot/footer.ru.mdx +4 -5
- package/src/media/mdx/slot/label.en.mdx +2 -8
- package/src/media/mdx/slot/label.ru.mdx +2 -8
- package/src/media/mdx/slot/prefix.en.mdx +1 -4
- package/src/media/mdx/slot/prefix.ru.mdx +1 -4
- package/src/media/mdx/slot/suffix.en.mdx +1 -4
- package/src/media/mdx/slot/suffix.ru.mdx +1 -4
- package/src/media/mdx/slot/wikiMdxSlot.ts +0 -6
- package/src/media/mdx/style/adaptive.en.mdx +6 -16
- package/src/media/mdx/style/adaptive.ru.mdx +6 -16
- package/src/media/mdx/style/asPalette.en.mdx +13 -5
- package/src/media/mdx/style/asPalette.ru.mdx +13 -5
- package/src/media/mdx/style/dir.en.mdx +14 -7
- package/src/media/mdx/style/dir.ru.mdx +14 -7
- package/src/media/mdx/style/isSkeleton.en.mdx +20 -6
- package/src/media/mdx/style/isSkeleton.ru.mdx +19 -5
- package/src/media/mdx/value/highlight.en.mdx +19 -12
- package/src/media/mdx/value/highlight.ru.mdx +19 -12
- package/src/media/mdx/value/labelNumber.en.mdx +39 -20
- package/src/media/mdx/value/labelNumber.ru.mdx +39 -20
- package/src/media/mdx/value/value.en.mdx +6 -12
- package/src/media/mdx/value/value.ru.mdx +6 -12
- package/src/media/styles/color.md +1 -0
- package/src/media/styles/en/about.mdx +79 -0
- package/src/media/styles/en/color.mdx +711 -0
- package/src/media/styles/en/content.mdx +29 -0
- package/src/media/styles/en/dimension.mdx +233 -0
- package/src/media/styles/en/dir.mdx +193 -0
- package/src/media/styles/en/flex.mdx +249 -0
- package/src/media/styles/en/font.mdx +171 -0
- package/src/media/styles/en/margin.mdx +115 -0
- package/src/media/styles/en/media.mdx +133 -0
- package/src/media/styles/en/padding.mdx +115 -0
- package/src/media/styles/en/position.mdx +183 -0
- package/src/media/styles/en/rules.mdx +117 -0
- package/src/media/styles/en/scrollbar.mdx +27 -0
- package/src/media/styles/en/selector.mdx +153 -0
- package/src/media/styles/en/transform.mdx +114 -0
- package/src/media/styles/ru/about.mdx +78 -0
- package/src/media/styles/ru/color.mdx +711 -0
- package/src/media/styles/ru/content.mdx +30 -0
- package/src/media/styles/ru/dimension.mdx +233 -0
- package/src/media/styles/ru/dir.mdx +193 -0
- package/src/media/styles/ru/flex.mdx +249 -0
- package/src/media/styles/ru/font.mdx +171 -0
- package/src/media/styles/ru/margin.mdx +115 -0
- package/src/media/styles/ru/media.mdx +133 -0
- package/src/media/styles/ru/padding.mdx +115 -0
- package/src/media/styles/ru/position.mdx +183 -0
- package/src/media/styles/ru/rules.mdx +117 -0
- package/src/media/styles/ru/scrollbar.mdx +27 -0
- package/src/media/styles/ru/selector.mdx +153 -0
- package/src/media/styles/ru/transform.mdx +114 -0
- package/src/styles/storybookStyle.scss +1 -0
- package/src/media/mdx/Bars/slot.actionBars.en.mdx +0 -12
- package/src/media/mdx/Bars/slot.actionBars.ru.mdx +0 -11
- package/src/media/mdx/Bars/slot.bars.en.mdx +0 -12
- package/src/media/mdx/Bars/slot.bars.ru.mdx +0 -11
- package/src/media/mdx/Cell/slot.body.en.mdx +0 -7
- package/src/media/mdx/Cell/slot.body.ru.mdx +0 -7
- package/src/media/mdx/Cell/slot.trailing.en.mdx +0 -7
- package/src/media/mdx/Cell/slot.trailing.ru.mdx +0 -7
- package/src/media/mdx/Field/slot.default.en.mdx +0 -9
- package/src/media/mdx/Field/slot.default.ru.mdx +0 -9
- package/src/media/mdx/Field/slot.leading.en.mdx +0 -10
- package/src/media/mdx/Field/slot.leading.ru.mdx +0 -10
- package/src/media/mdx/Field/slot.trailing.en.mdx +0 -10
- package/src/media/mdx/Field/slot.trailing.ru.mdx +0 -10
- package/src/media/mdx/FieldMessage/slot.helper.en.mdx +0 -12
- package/src/media/mdx/FieldMessage/slot.helper.ru.mdx +0 -12
- package/src/media/mdx/FieldMessage/slot.validation.en.mdx +0 -12
- package/src/media/mdx/FieldMessage/slot.validation.ru.mdx +0 -12
- package/src/media/mdx/Image/expose.data.en.mdx +0 -13
- package/src/media/mdx/Image/expose.data.ru.mdx +0 -13
- package/src/media/mdx/Image/expose.type.en.mdx +0 -21
- package/src/media/mdx/ListGroup/slot.head.en.mdx +0 -8
- package/src/media/mdx/ListGroup/slot.head.ru.mdx +0 -8
- package/src/media/mdx/ListGroup/slot.list.en.mdx +0 -8
- package/src/media/mdx/ListGroup/slot.list.ru.mdx +0 -8
- package/src/media/mdx/ListItem/slot.body.en.mdx +0 -7
- package/src/media/mdx/ListItem/slot.body.ru.mdx +0 -7
- package/src/media/mdx/ListItem/slot.trailing.en.mdx +0 -7
- package/src/media/mdx/ListItem/slot.trailing.ru.mdx +0 -7
- package/src/media/mdx/Menu/slot.contextBottom.en.mdx +0 -9
- package/src/media/mdx/Menu/slot.contextBottom.ru.mdx +0 -9
- package/src/media/mdx/Menu/slot.contextTop.en.mdx +0 -9
- package/src/media/mdx/Menu/slot.contextTop.ru.mdx +0 -9
- package/src/media/mdx/Menu/slot.control.en.mdx +0 -9
- package/src/media/mdx/Menu/slot.control.ru.mdx +0 -9
- package/src/media/mdx/Menu/slot.footer.en.mdx +0 -9
- package/src/media/mdx/Menu/slot.footer.ru.mdx +0 -9
- package/src/media/mdx/Menu/slot.title.en.mdx +0 -9
- package/src/media/mdx/Menu/slot.title.ru.mdx +0 -9
- package/src/media/mdx/MotionTransform/slot.body.en.mdx +0 -11
- package/src/media/mdx/MotionTransform/slot.body.ru.mdx +0 -11
- package/src/media/mdx/MotionTransform/slot.head.en.mdx +0 -11
- package/src/media/mdx/MotionTransform/slot.head.ru.mdx +0 -11
- package/src/media/mdx/MotionTransform/slot.params.en.mdx +0 -61
- package/src/media/mdx/MotionTransform/slot.params.ru.mdx +0 -61
- package/src/media/mdx/Scrollbar/event.bottom.en.mdx +0 -12
- package/src/media/mdx/Scrollbar/event.bottom.ru.mdx +0 -12
- package/src/media/mdx/Scrollbar/event.edge.en.mdx +0 -14
- package/src/media/mdx/Scrollbar/event.edge.ru.mdx +0 -14
- package/src/media/mdx/Scrollbar/event.leaveBottom.en.mdx +0 -11
- package/src/media/mdx/Scrollbar/event.leaveBottom.ru.mdx +0 -11
- package/src/media/mdx/Scrollbar/event.leaveTop.en.mdx +0 -11
- package/src/media/mdx/Scrollbar/event.leaveTop.ru.mdx +0 -11
- package/src/media/mdx/Scrollbar/event.reachBottom.en.mdx +0 -11
- package/src/media/mdx/Scrollbar/event.reachBottom.ru.mdx +0 -11
- package/src/media/mdx/Scrollbar/event.reachTop.en.mdx +0 -11
- package/src/media/mdx/Scrollbar/event.reachTop.ru.mdx +0 -11
- package/src/media/mdx/Scrollbar/event.top.en.mdx +0 -12
- package/src/media/mdx/Scrollbar/event.top.ru.mdx +0 -12
- package/src/media/mdx/Window/expose.control.en.mdx +0 -15
- package/src/media/mdx/Window/expose.control.ru.mdx +0 -15
- package/src/media/mdx/Window/expose.id.en.mdx +0 -7
- package/src/media/mdx/Window/expose.id.ru.mdx +0 -7
- package/src/media/mdx/Window/expose.open.en.mdx +0 -7
- package/src/media/mdx/Window/expose.open.ru.mdx +0 -7
- package/src/media/mdx/Window/expose.setOpen.en.mdx +0 -7
- package/src/media/mdx/Window/expose.setOpen.ru.mdx +0 -7
- package/src/media/mdx/Window/expose.toClose.en.mdx +0 -7
- package/src/media/mdx/Window/expose.toClose.ru.mdx +0 -7
- package/src/media/mdx/Window/expose.toOpen.en.mdx +0 -7
- package/src/media/mdx/Window/expose.toOpen.ru.mdx +0 -7
- package/src/media/mdx/Window/expose.toggle.en.mdx +0 -7
- package/src/media/mdx/Window/expose.toggle.ru.mdx +0 -7
- package/src/media/mdx/event/bars.en.mdx +0 -17
- package/src/media/mdx/event/bars.ru.mdx +0 -14
- package/src/media/mdx/event/barsBack.en.mdx +0 -14
- package/src/media/mdx/event/barsBack.ru.mdx +0 -16
- package/src/media/mdx/event/barsLite.en.mdx +0 -14
- package/src/media/mdx/event/barsLite.ru.mdx +0 -14
- package/src/media/mdx/event/click.en.mdx +0 -18
- package/src/media/mdx/event/click.ru.mdx +0 -18
- package/src/media/mdx/event/clickLite.en.mdx +0 -18
- package/src/media/mdx/event/clickLite.ru.mdx +0 -18
- package/src/media/mdx/event/scrollbarBottom.en.mdx +0 -13
- package/src/media/mdx/event/scrollbarBottom.ru.mdx +0 -13
- package/src/media/mdx/event/scrollbarEdge.en.mdx +0 -15
- package/src/media/mdx/event/scrollbarEdge.ru.mdx +0 -15
- package/src/media/mdx/event/scrollbarLeaveBottom.en.mdx +0 -12
- package/src/media/mdx/event/scrollbarLeaveBottom.ru.mdx +0 -12
- package/src/media/mdx/event/scrollbarLeaveTop.en.mdx +0 -12
- package/src/media/mdx/event/scrollbarLeaveTop.ru.mdx +0 -12
- package/src/media/mdx/event/scrollbarReachBottom.en.mdx +0 -12
- package/src/media/mdx/event/scrollbarReachBottom.ru.mdx +0 -12
- package/src/media/mdx/event/scrollbarReachTop.en.mdx +0 -12
- package/src/media/mdx/event/scrollbarReachTop.ru.mdx +0 -12
- package/src/media/mdx/event/scrollbarTop.en.mdx +0 -13
- package/src/media/mdx/event/scrollbarTop.ru.mdx +0 -13
- package/src/media/mdx/event/window.en.mdx +0 -20
- package/src/media/mdx/event/window.ru.mdx +0 -20
- package/src/media/mdx/expose/detail.en.mdx +0 -7
- package/src/media/mdx/expose/isSelected.en.mdx +0 -8
- package/src/media/mdx/expose/isSelected.ru.mdx +0 -8
- package/src/media/mdx/expose/selectedList.en.mdx +0 -7
- package/src/media/mdx/expose/selectedList.ru.mdx +0 -7
- package/src/media/mdx/expose/selectedNames.en.mdx +0 -7
- package/src/media/mdx/expose/selectedNames.ru.mdx +0 -7
- package/src/media/mdx/expose/selectedValues.en.mdx +0 -8
- package/src/media/mdx/expose/selectedValues.ru.mdx +0 -8
- package/src/media/mdx/slot/title.en.mdx +0 -9
- package/src/media/mdx/slot/title.ru.mdx +0 -9
|
@@ -2,55 +2,48 @@
|
|
|
2
2
|
|
|
3
3
|
The `ajax`, `request`, and `cache` properties are designed for managing asynchronous loading and caching of menu data.
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
-
|
|
8
|
-
-
|
|
9
|
-
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
5
|
+
**Properties:**
|
|
6
|
+
|
|
7
|
+
- `ajax` — enables remote data loading mode (URL string or function)
|
|
8
|
+
- `request` — object of type `ApiFetch` with HTTP request settings
|
|
9
|
+
- `cache` — enables caching of loaded menu items
|
|
10
|
+
|
|
11
|
+
Properties work together: if `ajax` is not specified or equals `false`, the menu uses local data. When `ajax` is activated (URL string or `true`), `request` defines HTTP request parameters (method, headers, body), and `cache` manages data persistence. When `cache` is enabled, repeated menu openings use saved data instead of new requests, reducing server load.
|
|
12
|
+
|
|
13
|
+
```html
|
|
14
|
+
<script setup>
|
|
15
|
+
import { ref } from 'vue'
|
|
16
|
+
|
|
17
|
+
const isOpen = ref(false)
|
|
18
|
+
</script>
|
|
19
|
+
|
|
20
|
+
<template>
|
|
21
|
+
<!-- Loading with URL -->
|
|
22
|
+
<Menu
|
|
23
|
+
v-model:open="isOpen"
|
|
24
|
+
ajax="/api/menu-items"
|
|
25
|
+
:cache="true"
|
|
26
|
+
/>
|
|
27
|
+
|
|
28
|
+
<!-- With request settings -->
|
|
29
|
+
<Menu
|
|
30
|
+
v-model:open="isOpen"
|
|
31
|
+
ajax="/api/menu"
|
|
32
|
+
:request="{
|
|
33
|
+
method: 'POST',
|
|
34
|
+
headers: { 'X-Custom': 'value' },
|
|
35
|
+
auth: true
|
|
36
|
+
}"
|
|
37
|
+
:cache="true"
|
|
38
|
+
/>
|
|
39
|
+
|
|
40
|
+
<!-- Loading function -->
|
|
41
|
+
<Menu
|
|
42
|
+
v-model:open="isOpen"
|
|
43
|
+
:ajax="async () => {
|
|
44
|
+
const response = await fetch('/api/menu')
|
|
45
|
+
return response.json()
|
|
46
|
+
}"
|
|
47
|
+
/>
|
|
48
|
+
</template>
|
|
44
49
|
```
|
|
45
|
-
|
|
46
|
-
### Property Relationships
|
|
47
|
-
|
|
48
|
-
The properties work together to provide efficient data loading:
|
|
49
|
-
|
|
50
|
-
- If `ajax = false` (or not specified), the menu uses local data, and `request` and `cache` are ignored
|
|
51
|
-
- If `ajax = true` or specified as a URL string, network loading is activated:
|
|
52
|
-
- `request` defines HTTP request parameters (method, headers, request body)
|
|
53
|
-
- `cache` manages saving and reusing received data
|
|
54
|
-
- When `cache` is enabled, subsequent menu openings use saved data instead of new requests
|
|
55
|
-
|
|
56
|
-
This approach reduces server load, speeds up interface response, and allows flexible configuration of data loading strategies for different usage scenarios.
|
|
@@ -2,56 +2,48 @@
|
|
|
2
2
|
|
|
3
3
|
Свойства `ajax`, `request` и `cache` предназначены для управления асинхронной загрузкой и кэшированием данных меню.
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
-
|
|
9
|
-
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
5
|
+
**Свойства:**
|
|
6
|
+
|
|
7
|
+
- `ajax` — включает режим удалённой загрузки данных (строка URL или функция)
|
|
8
|
+
- `request` — объект типа `ApiFetch` с настройками HTTP-запроса
|
|
9
|
+
- `cache` — включает кэширование загруженных элементов меню
|
|
10
|
+
|
|
11
|
+
Свойства работают совместно: если `ajax` не задан или равен `false`, меню использует локальные данные. При активации `ajax` (строка URL или `true`), `request` определяет параметры HTTP-запроса (метод, заголовки, тело), а `cache` управляет сохранением данных. При включённом `cache` повторные открытия меню используют сохранённые данные вместо новых запросов, снижая нагрузку на сервер.
|
|
12
|
+
|
|
13
|
+
```html
|
|
14
|
+
<script setup>
|
|
15
|
+
import { ref } from 'vue'
|
|
16
|
+
|
|
17
|
+
const isOpen = ref(false)
|
|
18
|
+
</script>
|
|
19
|
+
|
|
20
|
+
<template>
|
|
21
|
+
<!-- Загрузка с URL -->
|
|
22
|
+
<Menu
|
|
23
|
+
v-model:open="isOpen"
|
|
24
|
+
ajax="/api/menu-items"
|
|
25
|
+
:cache="true"
|
|
26
|
+
/>
|
|
27
|
+
|
|
28
|
+
<!-- С настройками запроса -->
|
|
29
|
+
<Menu
|
|
30
|
+
v-model:open="isOpen"
|
|
31
|
+
ajax="/api/menu"
|
|
32
|
+
:request="{
|
|
33
|
+
method: 'POST',
|
|
34
|
+
headers: { 'X-Custom': 'value' },
|
|
35
|
+
auth: true
|
|
36
|
+
}"
|
|
37
|
+
:cache="true"
|
|
38
|
+
/>
|
|
39
|
+
|
|
40
|
+
<!-- Функция загрузки -->
|
|
41
|
+
<Menu
|
|
42
|
+
v-model:open="isOpen"
|
|
43
|
+
:ajax="async () => {
|
|
44
|
+
const response = await fetch('/api/menu')
|
|
45
|
+
return response.json()
|
|
46
|
+
}"
|
|
47
|
+
/>
|
|
48
|
+
</template>
|
|
45
49
|
```
|
|
46
|
-
|
|
47
|
-
### Взаимосвязь свойств
|
|
48
|
-
|
|
49
|
-
Свойства работают совместно для обеспечения эффективной загрузки данных:
|
|
50
|
-
|
|
51
|
-
- Если `ajax = false` (или не задан), меню использует локальные данные, а `request` и `cache` игнорируются
|
|
52
|
-
- Если `ajax = true` или задан как строка URL, активируется сетевая загрузка:
|
|
53
|
-
- `request` определяет параметры HTTP-запроса (метод, заголовки, тело запроса)
|
|
54
|
-
- `cache` управляет сохранением и повторным использованием полученных данных
|
|
55
|
-
- При включённом `cache` повторные открытия меню используют сохранённые данные вместо новых запросов
|
|
56
|
-
|
|
57
|
-
Такой подход снижает нагрузку на сервер, ускоряет отклик интерфейса и позволяет гибко настраивать стратегию загрузки данных для разных сценариев использования.
|
|
@@ -1,2 +1,64 @@
|
|
|
1
|
-
|
|
1
|
+
Component for creating popup menus, dropdown lists, and context menus with navigation and action support.
|
|
2
2
|
|
|
3
|
+
Menu combines the functionality of Window (positioning and visibility management), Bars (action and tool panel), and List (displaying items, groups, and nested submenus). The component provides keyboard navigation, nested structure support, asynchronous data loading, optimized rendering mode for large lists, and full control over open/close state.
|
|
4
|
+
|
|
5
|
+
**Key Features:**
|
|
6
|
+
|
|
7
|
+
- Integration of Window, Bars, and List components
|
|
8
|
+
- Keyboard navigation through menu items
|
|
9
|
+
- Nested submenus with unlimited depth
|
|
10
|
+
- Asynchronous data loading via AJAX
|
|
11
|
+
- Lite mode for optimizing large lists (liteThreshold)
|
|
12
|
+
- Search and filtering of menu items
|
|
13
|
+
- Management of selected items (selected)
|
|
14
|
+
- Flexible positioning relative to anchor
|
|
15
|
+
|
|
16
|
+
**Typical Use Cases:**
|
|
17
|
+
|
|
18
|
+
- Navigation dropdown menus
|
|
19
|
+
- Right-click context menus
|
|
20
|
+
- Action and operation menus
|
|
21
|
+
- Selectors with search and filtering
|
|
22
|
+
- Multi-level navigation menus
|
|
23
|
+
- Menus with dynamic data loading
|
|
24
|
+
|
|
25
|
+
```html
|
|
26
|
+
<script setup>
|
|
27
|
+
import { ref } from 'vue'
|
|
28
|
+
|
|
29
|
+
const isOpen = ref(false)
|
|
30
|
+
const menuItems = ref([
|
|
31
|
+
{ label: 'Create', value: 'create', icon: 'add' },
|
|
32
|
+
{ label: 'Edit', value: 'edit', icon: 'edit' },
|
|
33
|
+
{ label: 'Delete', value: 'delete', icon: 'delete' },
|
|
34
|
+
{
|
|
35
|
+
label: 'Export',
|
|
36
|
+
value: 'export',
|
|
37
|
+
children: [
|
|
38
|
+
{ label: 'PDF', value: 'pdf' },
|
|
39
|
+
{ label: 'Excel', value: 'excel' },
|
|
40
|
+
{ label: 'CSV', value: 'csv' }
|
|
41
|
+
]
|
|
42
|
+
}
|
|
43
|
+
])
|
|
44
|
+
|
|
45
|
+
const handleClick = (value) => {
|
|
46
|
+
console.log('Selected item:', value)
|
|
47
|
+
isOpen.value = false
|
|
48
|
+
}
|
|
49
|
+
</script>
|
|
50
|
+
|
|
51
|
+
<template>
|
|
52
|
+
<button @click="isOpen = true">Open menu</button>
|
|
53
|
+
|
|
54
|
+
<Menu
|
|
55
|
+
v-model:open="isOpen"
|
|
56
|
+
:list="menuItems"
|
|
57
|
+
@click="handleClick"
|
|
58
|
+
>
|
|
59
|
+
<template #control="{ onclick }">
|
|
60
|
+
<button @click="onclick">Actions</button>
|
|
61
|
+
</template>
|
|
62
|
+
</Menu>
|
|
63
|
+
</template>
|
|
64
|
+
```
|
|
@@ -1 +1,64 @@
|
|
|
1
|
-
Компонент
|
|
1
|
+
Компонент для создания всплывающих меню, выпадающих списков и контекстных меню с поддержкой навигации и действий.
|
|
2
|
+
|
|
3
|
+
Menu объединяет функциональность Window (позиционирование и управление видимостью), Bars (панель действий и инструментов) и List (отображение пунктов, групп и вложенных подменю). Компонент обеспечивает клавиатурную навигацию, поддержку вложенной структуры, асинхронную загрузку данных, режим оптимизированного рендеринга для больших списков и полный контроль над состоянием открытия/закрытия.
|
|
4
|
+
|
|
5
|
+
**Основные возможности:**
|
|
6
|
+
|
|
7
|
+
- Интеграция Window, Bars и List компонентов
|
|
8
|
+
- Клавиатурная навигация по пунктам меню
|
|
9
|
+
- Вложенные подменю с неограниченной глубиной
|
|
10
|
+
- Асинхронная загрузка данных через AJAX
|
|
11
|
+
- Режим lite для оптимизации больших списков (liteThreshold)
|
|
12
|
+
- Поиск и фильтрация пунктов меню
|
|
13
|
+
- Управление выбранными элементами (selected)
|
|
14
|
+
- Гибкое позиционирование относительно якоря
|
|
15
|
+
|
|
16
|
+
**Типичные сценарии использования:**
|
|
17
|
+
|
|
18
|
+
- Выпадающие меню навигации
|
|
19
|
+
- Контекстные меню по правому клику
|
|
20
|
+
- Меню действий и операций
|
|
21
|
+
- Селекторы с поиском и фильтрацией
|
|
22
|
+
- Многоуровневые навигационные меню
|
|
23
|
+
- Меню с динамической загрузкой данных
|
|
24
|
+
|
|
25
|
+
```html
|
|
26
|
+
<script setup>
|
|
27
|
+
import { ref } from 'vue'
|
|
28
|
+
|
|
29
|
+
const isOpen = ref(false)
|
|
30
|
+
const menuItems = ref([
|
|
31
|
+
{ label: 'Создать', value: 'create', icon: 'add' },
|
|
32
|
+
{ label: 'Редактировать', value: 'edit', icon: 'edit' },
|
|
33
|
+
{ label: 'Удалить', value: 'delete', icon: 'delete' },
|
|
34
|
+
{
|
|
35
|
+
label: 'Экспорт',
|
|
36
|
+
value: 'export',
|
|
37
|
+
children: [
|
|
38
|
+
{ label: 'PDF', value: 'pdf' },
|
|
39
|
+
{ label: 'Excel', value: 'excel' },
|
|
40
|
+
{ label: 'CSV', value: 'csv' }
|
|
41
|
+
]
|
|
42
|
+
}
|
|
43
|
+
])
|
|
44
|
+
|
|
45
|
+
const handleClick = (value) => {
|
|
46
|
+
console.log('Выбран пункт:', value)
|
|
47
|
+
isOpen.value = false
|
|
48
|
+
}
|
|
49
|
+
</script>
|
|
50
|
+
|
|
51
|
+
<template>
|
|
52
|
+
<button @click="isOpen = true">Открыть меню</button>
|
|
53
|
+
|
|
54
|
+
<Menu
|
|
55
|
+
v-model:open="isOpen"
|
|
56
|
+
:list="menuItems"
|
|
57
|
+
@click="handleClick"
|
|
58
|
+
>
|
|
59
|
+
<template #control="{ onclick }">
|
|
60
|
+
<button @click="onclick">Действия</button>
|
|
61
|
+
</template>
|
|
62
|
+
</Menu>
|
|
63
|
+
</template>
|
|
64
|
+
```
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
### `control`
|
|
2
|
+
|
|
3
|
+
Slot for placing the menu control element (trigger).
|
|
4
|
+
|
|
5
|
+
**Parameters:**
|
|
6
|
+
- `props: MenuControlItem` — object with menu control data
|
|
7
|
+
|
|
8
|
+
### `title`
|
|
9
|
+
|
|
10
|
+
Slot for placing the menu window title.
|
|
11
|
+
|
|
12
|
+
**Parameters:**
|
|
13
|
+
- `props: MenuControlItem` — object with menu control data
|
|
14
|
+
|
|
15
|
+
### `footer`
|
|
16
|
+
|
|
17
|
+
Slot for placing content in the bottom part of the menu window (action buttons, information).
|
|
18
|
+
|
|
19
|
+
**Parameters:**
|
|
20
|
+
- `props: MenuControlItem` — object with menu control data
|
|
21
|
+
|
|
22
|
+
### `contextTop`
|
|
23
|
+
|
|
24
|
+
Slot for placing contextual area above the menu list (search, filters, hints).
|
|
25
|
+
|
|
26
|
+
**Parameters:**
|
|
27
|
+
- `props: MenuControlItem` — object with menu control data
|
|
28
|
+
|
|
29
|
+
### `contextBottom`
|
|
30
|
+
|
|
31
|
+
Slot for placing contextual area below the menu list (hints, final actions).
|
|
32
|
+
|
|
33
|
+
**Parameters:**
|
|
34
|
+
- `props: MenuControlItem` — object with menu control data
|
|
35
|
+
|
|
36
|
+
```html
|
|
37
|
+
<script setup>
|
|
38
|
+
import { ref } from 'vue'
|
|
39
|
+
|
|
40
|
+
const isOpen = ref(false)
|
|
41
|
+
const menuItems = ref([
|
|
42
|
+
{ label: 'Item 1', value: '1' },
|
|
43
|
+
{ label: 'Item 2', value: '2' },
|
|
44
|
+
{ label: 'Item 3', value: '3' }
|
|
45
|
+
])
|
|
46
|
+
|
|
47
|
+
const handleSubmit = (values) => {
|
|
48
|
+
console.log('Selected values:', values)
|
|
49
|
+
}
|
|
50
|
+
</script>
|
|
51
|
+
|
|
52
|
+
<template>
|
|
53
|
+
<Menu v-model:open="isOpen" :list="menuItems">
|
|
54
|
+
<template #control="{ onclick, isSelected, selectedNames }">
|
|
55
|
+
<button @click="onclick">
|
|
56
|
+
{{ isSelected ? selectedNames.join(', ') : 'Select items' }}
|
|
57
|
+
</button>
|
|
58
|
+
</template>
|
|
59
|
+
|
|
60
|
+
<template #title="{ selectedList }">
|
|
61
|
+
<h3>Select Items</h3>
|
|
62
|
+
<span v-if="selectedList.length">
|
|
63
|
+
({{ selectedList.length }})
|
|
64
|
+
</span>
|
|
65
|
+
</template>
|
|
66
|
+
|
|
67
|
+
<template #contextTop>
|
|
68
|
+
<input type="search" placeholder="Search items..." />
|
|
69
|
+
</template>
|
|
70
|
+
|
|
71
|
+
<template #footer="{ isSelected, selectedValues }">
|
|
72
|
+
<button @click="isOpen = false">Cancel</button>
|
|
73
|
+
<button
|
|
74
|
+
:disabled="!isSelected"
|
|
75
|
+
@click="handleSubmit(selectedValues)"
|
|
76
|
+
>
|
|
77
|
+
Apply
|
|
78
|
+
</button>
|
|
79
|
+
</template>
|
|
80
|
+
</Menu>
|
|
81
|
+
</template>
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
## MenuControlItem
|
|
85
|
+
|
|
86
|
+
`MenuControlItem` — object passed to all Menu component slots, containing menu control data and selection information.
|
|
87
|
+
|
|
88
|
+
### Type structure
|
|
89
|
+
|
|
90
|
+
```typescript
|
|
91
|
+
type MenuControlItem = MenuControlBasic & WindowControlItem
|
|
92
|
+
|
|
93
|
+
type MenuControlBasic = ListExpose & {
|
|
94
|
+
/** Data loading state */
|
|
95
|
+
loading: Ref<boolean>
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
// Includes properties from ListExpose:
|
|
99
|
+
// - isSelected: ComputedRef<boolean>
|
|
100
|
+
// - selectedList: Ref<any[]>
|
|
101
|
+
// - selectedNames: Ref<string[]>
|
|
102
|
+
// - selectedValues: Ref<any[]>
|
|
103
|
+
|
|
104
|
+
// And properties from WindowControlItem:
|
|
105
|
+
// - classesWindow: WindowClassesList
|
|
106
|
+
// - class: string
|
|
107
|
+
// - open: Ref<boolean>
|
|
108
|
+
// - onclick: (event: MouseEvent & TouchEvent) => Promise<void>
|
|
109
|
+
// - oncontextmenu: (event: MouseEvent & TouchEvent) => Promise<void>
|
|
110
|
+
// - binds: object
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
### Main properties
|
|
114
|
+
|
|
115
|
+
- **`loading`** — reactive state of menu data loading
|
|
116
|
+
- **`isSelected`** — computed property indicating presence of selected items
|
|
117
|
+
- **`selectedList`** — reactive list of selected items
|
|
118
|
+
- **`selectedNames`** — reactive list of labels of selected items
|
|
119
|
+
- **`selectedValues`** — reactive array of values of selected items
|
|
120
|
+
- **`open`** — reactive state of menu open/close
|
|
121
|
+
- **`onclick`** — click handler for opening/closing menu
|
|
122
|
+
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
### `control`
|
|
2
|
+
|
|
3
|
+
Слот для размещения элемента управления (триггера) меню.
|
|
4
|
+
|
|
5
|
+
**Параметры:**
|
|
6
|
+
- `props: MenuControlItem` — объект с данными управления меню
|
|
7
|
+
|
|
8
|
+
### `title`
|
|
9
|
+
|
|
10
|
+
Слот для размещения заголовка окна меню.
|
|
11
|
+
|
|
12
|
+
**Параметры:**
|
|
13
|
+
- `props: MenuControlItem` — объект с данными управления меню
|
|
14
|
+
|
|
15
|
+
### `footer`
|
|
16
|
+
|
|
17
|
+
Слот для размещения содержимого в нижней части окна меню (кнопки действий, информация).
|
|
18
|
+
|
|
19
|
+
**Параметры:**
|
|
20
|
+
- `props: MenuControlItem` — объект с данными управления меню
|
|
21
|
+
|
|
22
|
+
### `contextTop`
|
|
23
|
+
|
|
24
|
+
Слот для размещения контекстной области над списком меню (поиск, фильтры, подсказки).
|
|
25
|
+
|
|
26
|
+
**Параметры:**
|
|
27
|
+
- `props: MenuControlItem` — объект с данными управления меню
|
|
28
|
+
|
|
29
|
+
### `contextBottom`
|
|
30
|
+
|
|
31
|
+
Слот для размещения контекстной области под списком меню (подсказки, итоговые действия).
|
|
32
|
+
|
|
33
|
+
**Параметры:**
|
|
34
|
+
- `props: MenuControlItem` — объект с данными управления меню
|
|
35
|
+
|
|
36
|
+
```html
|
|
37
|
+
<script setup>
|
|
38
|
+
import { ref } from 'vue'
|
|
39
|
+
|
|
40
|
+
const isOpen = ref(false)
|
|
41
|
+
const menuItems = ref([
|
|
42
|
+
{ label: 'Элемент 1', value: '1' },
|
|
43
|
+
{ label: 'Элемент 2', value: '2' },
|
|
44
|
+
{ label: 'Элемент 3', value: '3' }
|
|
45
|
+
])
|
|
46
|
+
|
|
47
|
+
const handleSubmit = (values) => {
|
|
48
|
+
console.log('Выбранные значения:', values)
|
|
49
|
+
}
|
|
50
|
+
</script>
|
|
51
|
+
|
|
52
|
+
<template>
|
|
53
|
+
<Menu v-model:open="isOpen" :list="menuItems">
|
|
54
|
+
<template #control="{ onclick, isSelected, selectedNames }">
|
|
55
|
+
<button @click="onclick">
|
|
56
|
+
{{ isSelected ? selectedNames.join(', ') : 'Выбрать элементы' }}
|
|
57
|
+
</button>
|
|
58
|
+
</template>
|
|
59
|
+
|
|
60
|
+
<template #title="{ selectedList }">
|
|
61
|
+
<h3>Выбор элементов</h3>
|
|
62
|
+
<span v-if="selectedList.length">
|
|
63
|
+
({{ selectedList.length }})
|
|
64
|
+
</span>
|
|
65
|
+
</template>
|
|
66
|
+
|
|
67
|
+
<template #contextTop>
|
|
68
|
+
<input type="search" placeholder="Поиск элементов..." />
|
|
69
|
+
</template>
|
|
70
|
+
|
|
71
|
+
<template #footer="{ isSelected, selectedValues }">
|
|
72
|
+
<button @click="isOpen = false">Отмена</button>
|
|
73
|
+
<button
|
|
74
|
+
:disabled="!isSelected"
|
|
75
|
+
@click="handleSubmit(selectedValues)"
|
|
76
|
+
>
|
|
77
|
+
Применить
|
|
78
|
+
</button>
|
|
79
|
+
</template>
|
|
80
|
+
</Menu>
|
|
81
|
+
</template>
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
## MenuControlItem
|
|
85
|
+
|
|
86
|
+
`MenuControlItem` — объект, передаваемый во все слоты компонента Menu, содержащий данные для управления меню и информацию о выборе.
|
|
87
|
+
|
|
88
|
+
### Структура типа
|
|
89
|
+
|
|
90
|
+
```typescript
|
|
91
|
+
type MenuControlItem = MenuControlBasic & WindowControlItem
|
|
92
|
+
|
|
93
|
+
type MenuControlBasic = ListExpose & {
|
|
94
|
+
/** Состояние загрузки данных */
|
|
95
|
+
loading: Ref<boolean>
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
// Включает свойства из ListExpose:
|
|
99
|
+
// - isSelected: ComputedRef<boolean>
|
|
100
|
+
// - selectedList: Ref<any[]>
|
|
101
|
+
// - selectedNames: Ref<string[]>
|
|
102
|
+
// - selectedValues: Ref<any[]>
|
|
103
|
+
|
|
104
|
+
// И свойства из WindowControlItem:
|
|
105
|
+
// - classesWindow: WindowClassesList
|
|
106
|
+
// - class: string
|
|
107
|
+
// - open: Ref<boolean>
|
|
108
|
+
// - onclick: (event: MouseEvent & TouchEvent) => Promise<void>
|
|
109
|
+
// - oncontextmenu: (event: MouseEvent & TouchEvent) => Promise<void>
|
|
110
|
+
// - binds: object
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
### Основные свойства
|
|
114
|
+
|
|
115
|
+
- **`loading`** — реактивное состояние загрузки данных меню
|
|
116
|
+
- **`isSelected`** — вычисляемое свойство, указывающее наличие выбранных элементов
|
|
117
|
+
- **`selectedList`** — реактивный список выбранных элементов
|
|
118
|
+
- **`selectedNames`** — реактивный список меток выбранных элементов
|
|
119
|
+
- **`selectedValues`** — реактивный массив значений выбранных элементов
|
|
120
|
+
- **`open`** — реактивное состояние открытия меню
|
|
121
|
+
- **`onclick`** — обработчик клика для открытия/закрытия меню
|
|
122
|
+
|
|
@@ -4,49 +4,24 @@ import ajaxEn from './ajax.en.mdx'
|
|
|
4
4
|
import ajaxRu from './ajax.ru.mdx'
|
|
5
5
|
import menuEn from './menu.en.mdx'
|
|
6
6
|
import menuRu from './menu.ru.mdx'
|
|
7
|
-
|
|
8
|
-
import
|
|
9
|
-
import slotControlRu from './slot.control.ru.mdx'
|
|
10
|
-
import slotTitleEn from './slot.title.en.mdx'
|
|
11
|
-
import slotTitleRu from './slot.title.ru.mdx'
|
|
12
|
-
import slotFooterEn from './slot.footer.en.mdx'
|
|
13
|
-
import slotFooterRu from './slot.footer.ru.mdx'
|
|
14
|
-
import slotContextTopEn from './slot.contextTop.en.mdx'
|
|
15
|
-
import slotContextTopRu from './slot.contextTop.ru.mdx'
|
|
16
|
-
import slotContextBottomEn from './slot.contextBottom.en.mdx'
|
|
17
|
-
import slotContextBottomRu from './slot.contextBottom.ru.mdx'
|
|
7
|
+
import slotsEn from './slots.en.mdx'
|
|
8
|
+
import slotsRu from './slots.ru.mdx'
|
|
18
9
|
|
|
19
10
|
/** MDX документация для компонента Menu */
|
|
20
11
|
export const wikiMdxMenu: StorybookComponentsMdxItem = {
|
|
21
12
|
name: 'Menu',
|
|
22
13
|
descriptions: {
|
|
23
|
-
|
|
14
|
+
ajax: {
|
|
24
15
|
en: ajaxEn,
|
|
25
16
|
ru: ajaxRu
|
|
26
17
|
},
|
|
27
|
-
|
|
18
|
+
menu: {
|
|
28
19
|
en: menuEn,
|
|
29
20
|
ru: menuRu
|
|
30
21
|
},
|
|
31
|
-
|
|
32
|
-
en:
|
|
33
|
-
ru:
|
|
34
|
-
},
|
|
35
|
-
'slot.title': {
|
|
36
|
-
en: slotTitleEn,
|
|
37
|
-
ru: slotTitleRu
|
|
38
|
-
},
|
|
39
|
-
'slot.footer': {
|
|
40
|
-
en: slotFooterEn,
|
|
41
|
-
ru: slotFooterRu
|
|
42
|
-
},
|
|
43
|
-
'slot.contextTop': {
|
|
44
|
-
en: slotContextTopEn,
|
|
45
|
-
ru: slotContextTopRu
|
|
46
|
-
},
|
|
47
|
-
'slot.contextBottom': {
|
|
48
|
-
en: slotContextBottomEn,
|
|
49
|
-
ru: slotContextBottomRu
|
|
22
|
+
slots: {
|
|
23
|
+
en: slotsEn,
|
|
24
|
+
ru: slotsRu
|
|
50
25
|
}
|
|
51
26
|
}
|
|
52
27
|
}
|