@dxtmisha/wiki 0.24.2 → 0.25.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 +7 -7
- package/src/classes/WikiStorybookItem.ts +24 -0
- package/src/library.ts +7 -7
- package/src/media/descriptions/wikiDescriptions.ts +28 -0
- package/src/media/descriptions/wikiDescriptionsAccordion.ts +158 -0
- package/src/media/descriptions/wikiDescriptionsActionSheet.ts +211 -0
- package/src/media/descriptions/wikiDescriptionsActions.ts +161 -0
- package/src/media/descriptions/wikiDescriptionsAnchor.ts +42 -0
- package/src/media/descriptions/wikiDescriptionsArrow.ts +181 -0
- package/src/media/descriptions/wikiDescriptionsBars.ts +1 -3
- package/src/media/descriptions/wikiDescriptionsBlock.ts +97 -0
- package/src/media/descriptions/wikiDescriptionsButton.ts +0 -1
- package/src/media/descriptions/wikiDescriptionsCell.ts +3 -3
- package/src/media/descriptions/wikiDescriptionsChip.ts +0 -1
- package/src/media/descriptions/wikiDescriptionsChipGroup.ts +168 -0
- package/src/media/descriptions/wikiDescriptionsDialog.ts +182 -0
- package/src/media/descriptions/wikiDescriptionsField.ts +3 -4
- package/src/media/descriptions/wikiDescriptionsFieldCounter.ts +6 -6
- package/src/media/descriptions/wikiDescriptionsFieldMessage.ts +1 -2
- package/src/media/descriptions/wikiDescriptionsImage.ts +43 -8
- package/src/media/descriptions/wikiDescriptionsInput.ts +257 -0
- 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 +126 -14
- package/src/media/descriptions/wikiDescriptionsModal.ts +145 -0
- package/src/media/descriptions/wikiDescriptionsMotionTransform.ts +4 -10
- package/src/media/descriptions/wikiDescriptionsScrollbar.ts +1 -7
- package/src/media/descriptions/wikiDescriptionsSelect.ts +209 -0
- package/src/media/descriptions/wikiDescriptionsSelectValue.ts +78 -0
- package/src/media/descriptions/wikiDescriptionsSkeleton.ts +1 -0
- package/src/media/descriptions/wikiDescriptionsTextareaAutosize.ts +50 -0
- package/src/media/descriptions/wikiDescriptionsTooltip.ts +89 -0
- package/src/media/descriptions/wikiDescriptionsWindow.ts +5 -22
- package/src/media/functional/en/broadcastMessage.mdx +307 -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/ru/broadcastMessage.mdx +305 -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/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/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/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/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 +83 -17
- package/src/media/mdx/Field/arrows.ru.mdx +83 -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 +138 -0
- package/src/media/mdx/Field/slots.ru.mdx +138 -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/img-tag.en.mdx +105 -0
- package/src/media/mdx/Image/img-tag.ru.mdx +105 -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 +17 -11
- 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/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/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/menu.en.mdx +63 -1
- package/src/media/mdx/Menu/menu.ru.mdx +64 -1
- 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 +100 -0
- package/src/media/mdx/Menu/slots.ru.mdx +100 -0
- package/src/media/mdx/Menu/wikiMdxMenu.ts +27 -28
- 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/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/expose.motionTransformElement.en.mdx +13 -0
- package/src/media/mdx/MotionTransform/expose.motionTransformElement.ru.mdx +14 -0
- 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 +11 -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/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/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/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/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.actions.en.mdx +44 -0
- package/src/media/mdx/event/events.actions.ru.mdx +44 -0
- 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.inputStandard.en.mdx +6 -0
- package/src/media/mdx/event/events.inputStandard.ru.mdx +6 -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 +50 -73
- 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.descriptionId.en.mdx +6 -0
- package/src/media/mdx/expose/expose.descriptionId.ru.mdx +6 -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.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/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 +41 -29
- 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/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/headline.en.mdx +7 -0
- package/src/media/mdx/slot/headline.ru.mdx +6 -0
- 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/leading.en.mdx +7 -0
- package/src/media/mdx/slot/leading.ru.mdx +7 -0
- 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/secondary.en.mdx +5 -0
- package/src/media/mdx/slot/secondary.ru.mdx +5 -0
- 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/trailing.en.mdx +7 -0
- package/src/media/mdx/slot/trailing.ru.mdx +7 -0
- package/src/media/mdx/slot/wikiMdxSlot.ts +29 -5
- 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/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/value.en.mdx +6 -12
- package/src/media/mdx/value/value.ru.mdx +6 -12
- package/src/media/mdx/value/wikiMdxValue.ts +24 -3
- package/src/media/mdx/wikiMdx.ts +29 -1
- package/src/media/props/wiki.ts +42 -0
- package/src/media/props/wikiActions.ts +43 -0
- package/src/media/props/wikiActionsInclude.ts +62 -0
- package/src/media/props/wikiAnchor.ts +84 -0
- package/src/media/props/wikiAria.ts +102 -0
- package/src/media/props/wikiArrow.ts +24 -0
- package/src/media/props/wikiArrowInclude.ts +45 -0
- package/src/media/props/wikiBarsInclude.ts +80 -0
- package/src/media/props/wikiChipGroup.ts +39 -0
- package/src/media/props/wikiDialog.ts +34 -0
- package/src/media/props/wikiField.ts +0 -21
- package/src/media/props/wikiFieldCounterInclude.ts +78 -0
- package/src/media/props/wikiForm.ts +248 -0
- package/src/media/props/wikiHook.ts +20 -0
- package/src/media/props/wikiIcon.ts +3 -3
- package/src/media/props/wikiIconInclude.ts +319 -0
- package/src/media/props/wikiImage.ts +71 -19
- package/src/media/props/wikiInformation.ts +160 -0
- package/src/media/props/wikiInput.ts +34 -0
- package/src/media/props/wikiListItem.ts +20 -0
- package/src/media/props/wikiMask.ts +0 -10
- package/src/media/props/wikiMaskInclude.ts +54 -0
- package/src/media/props/wikiMenu.ts +0 -10
- package/src/media/props/wikiMotionTransform.ts +0 -10
- package/src/media/props/wikiOption.ts +113 -0
- package/src/media/props/wikiSelect.ts +68 -0
- package/src/media/props/wikiSelectValue.ts +30 -0
- package/src/media/props/wikiStatus.ts +29 -41
- package/src/media/props/wikiStyle.ts +154 -243
- package/src/media/props/wikiTechnical.ts +65 -0
- package/src/media/props/wikiText.ts +57 -0
- package/src/media/props/wikiTooltip.ts +53 -0
- package/src/media/props/wikiValue.ts +14 -203
- package/src/media/props/wikiWindow.ts +0 -31
- 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 +4 -1
- package/src/types/storybookTypes.ts +26 -4
- 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
|
@@ -0,0 +1,305 @@
|
|
|
1
|
+
import {Meta} from '@storybook/addon-docs/blocks'
|
|
2
|
+
|
|
3
|
+
<Meta title='@dxtmisha/functional/ru/Classes/BroadcastMessage'/>
|
|
4
|
+
|
|
5
|
+
# Класс BroadcastMessage
|
|
6
|
+
|
|
7
|
+
Класс для работы с сообщениями BroadcastChannel между вкладками/окнами браузера. Обеспечивает коммуникацию в реальном времени между различными контекстами одного источника с автоматическим именованием каналов и обработкой сообщений.
|
|
8
|
+
|
|
9
|
+
## Основные возможности
|
|
10
|
+
|
|
11
|
+
- **Межвкладочная коммуникация** — отправка и получение сообщений между вкладками и окнами браузера
|
|
12
|
+
- **Автоматическое именование каналов** — уникальные имена каналов для каждого экземпляра браузера, сохраняемые в localStorage
|
|
13
|
+
- **Типобезопасная передача сообщений** — полная поддержка TypeScript с генерик-типами сообщений
|
|
14
|
+
- **Обработка через callback** — гибкая обработка сообщений через callback-функции
|
|
15
|
+
- **Обработка ошибок** — корректная обработка ошибок с логированием в консоль
|
|
16
|
+
- **Безопасность SSR** — автоматическое определение окружения DOM runtime
|
|
17
|
+
|
|
18
|
+
## Основное использование
|
|
19
|
+
|
|
20
|
+
### Конструктор
|
|
21
|
+
|
|
22
|
+
Создаёт новый экземпляр BroadcastMessage с указанным именем канала и опциональным callback.
|
|
23
|
+
|
|
24
|
+
**Параметры:**
|
|
25
|
+
- `name: string` — идентификатор имени канала
|
|
26
|
+
- `callback?: (event: MessageEvent<Message>) => void` — опциональный callback для получаемых сообщений
|
|
27
|
+
|
|
28
|
+
```javascript
|
|
29
|
+
import { BroadcastMessage } from '@dxtmisha/functional'
|
|
30
|
+
|
|
31
|
+
// Создание канала с callback
|
|
32
|
+
const channel = new BroadcastMessage('user-updates', (event) => {
|
|
33
|
+
console.log('Получено сообщение:', event.data)
|
|
34
|
+
})
|
|
35
|
+
|
|
36
|
+
// Создание канала без callback (можно установить позже)
|
|
37
|
+
const notifications = new BroadcastMessage('notifications')
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### `post`
|
|
41
|
+
|
|
42
|
+
Отправляет сообщение всем подключённым вкладкам/окнам на том же канале.
|
|
43
|
+
|
|
44
|
+
**Параметры:**
|
|
45
|
+
- `message: Message` — сообщение для отправки
|
|
46
|
+
|
|
47
|
+
**Возвращает:** `this` — для цепочки вызовов
|
|
48
|
+
|
|
49
|
+
```javascript
|
|
50
|
+
import { BroadcastMessage } from '@dxtmisha/functional'
|
|
51
|
+
|
|
52
|
+
const userChannel = new BroadcastMessage('user-updates')
|
|
53
|
+
|
|
54
|
+
// Отправка простого сообщения
|
|
55
|
+
userChannel.post({ type: 'login', userId: 123 })
|
|
56
|
+
|
|
57
|
+
// Цепочка вызовов
|
|
58
|
+
userChannel
|
|
59
|
+
.post({ type: 'status', value: 'online' })
|
|
60
|
+
.post({ type: 'activity', timestamp: Date.now() })
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### `setCallback`
|
|
64
|
+
|
|
65
|
+
Устанавливает или обновляет callback-функцию для обработки получаемых сообщений.
|
|
66
|
+
|
|
67
|
+
**Параметры:**
|
|
68
|
+
- `callback: (event: MessageEvent<Message>) => void` — callback-функция
|
|
69
|
+
|
|
70
|
+
**Возвращает:** `this` — для цепочки вызовов
|
|
71
|
+
|
|
72
|
+
```javascript
|
|
73
|
+
import { BroadcastMessage } from '@dxtmisha/functional'
|
|
74
|
+
|
|
75
|
+
const channel = new BroadcastMessage('app-events')
|
|
76
|
+
|
|
77
|
+
// Установка callback позже
|
|
78
|
+
channel.setCallback((event) => {
|
|
79
|
+
console.log('Получено событие:', event.data)
|
|
80
|
+
})
|
|
81
|
+
|
|
82
|
+
// Обновление callback
|
|
83
|
+
channel.setCallback((event) => {
|
|
84
|
+
if (event.data.type === 'refresh') {
|
|
85
|
+
location.reload()
|
|
86
|
+
}
|
|
87
|
+
})
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
## Расширенные примеры
|
|
91
|
+
|
|
92
|
+
### Синхронизация состояния между вкладками
|
|
93
|
+
|
|
94
|
+
```javascript
|
|
95
|
+
import { BroadcastMessage } from '@dxtmisha/functional'
|
|
96
|
+
import { ref } from 'vue'
|
|
97
|
+
|
|
98
|
+
// Создание реактивного состояния
|
|
99
|
+
const userStatus = ref('offline')
|
|
100
|
+
|
|
101
|
+
// Создание канала broadcast
|
|
102
|
+
const statusChannel = new BroadcastMessage('user-status', (event) => {
|
|
103
|
+
// Обновление локального состояния при изменениях из других вкладок
|
|
104
|
+
userStatus.value = event.data.status
|
|
105
|
+
console.log('Статус обновлён из другой вкладки:', event.data.status)
|
|
106
|
+
})
|
|
107
|
+
|
|
108
|
+
// Функция для обновления статуса и оповещения других вкладок
|
|
109
|
+
function updateStatus(newStatus) {
|
|
110
|
+
userStatus.value = newStatus
|
|
111
|
+
statusChannel.post({ status: newStatus, timestamp: Date.now() })
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
// Использование
|
|
115
|
+
updateStatus('online') // Обновляет эту вкладку и уведомляет другие
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
### Корзина покупок в нескольких вкладках
|
|
119
|
+
|
|
120
|
+
```javascript
|
|
121
|
+
import { BroadcastMessage } from '@dxtmisha/functional'
|
|
122
|
+
|
|
123
|
+
// Определение типов сообщений
|
|
124
|
+
interface CartMessage {
|
|
125
|
+
action: 'add' | 'remove' | 'clear'
|
|
126
|
+
productId?: number
|
|
127
|
+
quantity?: number
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
// Создание канала с типизированными сообщениями
|
|
131
|
+
const cartChannel = new BroadcastMessage<CartMessage>('shopping-cart')
|
|
132
|
+
|
|
133
|
+
// Настройка обработчика сообщений
|
|
134
|
+
cartChannel.setCallback((event) => {
|
|
135
|
+
const { action, productId, quantity } = event.data
|
|
136
|
+
|
|
137
|
+
switch (action) {
|
|
138
|
+
case 'add':
|
|
139
|
+
console.log(`Добавление ${quantity} товара ${productId}`)
|
|
140
|
+
addToCart(productId, quantity)
|
|
141
|
+
break
|
|
142
|
+
case 'remove':
|
|
143
|
+
console.log(`Удаление товара ${productId}`)
|
|
144
|
+
removeFromCart(productId)
|
|
145
|
+
break
|
|
146
|
+
case 'clear':
|
|
147
|
+
console.log('Очистка корзины')
|
|
148
|
+
clearCart()
|
|
149
|
+
break
|
|
150
|
+
}
|
|
151
|
+
})
|
|
152
|
+
|
|
153
|
+
// Трансляция обновлений корзины
|
|
154
|
+
function addProduct(productId, quantity) {
|
|
155
|
+
addToCart(productId, quantity)
|
|
156
|
+
cartChannel.post({ action: 'add', productId, quantity })
|
|
157
|
+
}
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
### Синхронизация состояния аутентификации
|
|
161
|
+
|
|
162
|
+
```javascript
|
|
163
|
+
import { BroadcastMessage } from '@dxtmisha/functional'
|
|
164
|
+
|
|
165
|
+
interface AuthMessage {
|
|
166
|
+
type: 'login' | 'logout' | 'token-refresh'
|
|
167
|
+
userId?: number
|
|
168
|
+
token?: string
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
const authChannel = new BroadcastMessage<AuthMessage>('auth-events', (event) => {
|
|
172
|
+
switch (event.data.type) {
|
|
173
|
+
case 'login':
|
|
174
|
+
console.log('Пользователь вошёл:', event.data.userId)
|
|
175
|
+
location.reload()
|
|
176
|
+
break
|
|
177
|
+
|
|
178
|
+
case 'logout':
|
|
179
|
+
console.log('Пользователь вышел, перенаправление...')
|
|
180
|
+
localStorage.removeItem('auth-token')
|
|
181
|
+
window.location.href = '/login'
|
|
182
|
+
break
|
|
183
|
+
|
|
184
|
+
case 'token-refresh':
|
|
185
|
+
console.log('Токен обновлён')
|
|
186
|
+
localStorage.setItem('auth-token', event.data.token)
|
|
187
|
+
break
|
|
188
|
+
}
|
|
189
|
+
})
|
|
190
|
+
|
|
191
|
+
// Трансляция входа
|
|
192
|
+
function handleLogin(userId, token) {
|
|
193
|
+
localStorage.setItem('auth-token', token)
|
|
194
|
+
authChannel.post({ type: 'login', userId, token })
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
// Трансляция выхода
|
|
198
|
+
function handleLogout() {
|
|
199
|
+
localStorage.removeItem('auth-token')
|
|
200
|
+
authChannel.post({ type: 'logout' })
|
|
201
|
+
}
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
### Уведомления в реальном времени
|
|
205
|
+
|
|
206
|
+
```javascript
|
|
207
|
+
import { BroadcastMessage } from '@dxtmisha/functional'
|
|
208
|
+
|
|
209
|
+
interface Notification {
|
|
210
|
+
id: string
|
|
211
|
+
title: string
|
|
212
|
+
message: string
|
|
213
|
+
type: 'info' | 'warning' | 'error' | 'success'
|
|
214
|
+
timestamp: number
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
const notificationChannel = new BroadcastMessage<Notification>('notifications')
|
|
218
|
+
|
|
219
|
+
// Настройка обработчика уведомлений
|
|
220
|
+
notificationChannel.setCallback((event) => {
|
|
221
|
+
const notification = event.data
|
|
222
|
+
|
|
223
|
+
showNotification(notification.title, notification.message, notification.type)
|
|
224
|
+
|
|
225
|
+
if (notification.type === 'error') {
|
|
226
|
+
playErrorSound()
|
|
227
|
+
}
|
|
228
|
+
})
|
|
229
|
+
|
|
230
|
+
// Отправка уведомления всем вкладкам
|
|
231
|
+
function broadcastNotification(title, message, type = 'info') {
|
|
232
|
+
const notification = {
|
|
233
|
+
id: crypto.randomUUID(),
|
|
234
|
+
title,
|
|
235
|
+
message,
|
|
236
|
+
type,
|
|
237
|
+
timestamp: Date.now()
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
notificationChannel.post(notification)
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
// Использование
|
|
244
|
+
broadcastNotification('Новое сообщение', 'У вас новое сообщение от Ивана', 'info')
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
## Детали реализации
|
|
248
|
+
|
|
249
|
+
### Уникальное именование каналов
|
|
250
|
+
|
|
251
|
+
Каждый экземпляр браузера генерирует уникальный идентификатор, сохраняемый в localStorage (`__broadcast-name`). Это гарантирует изоляцию каналов между различными экземплярами браузера, при этом позволяя коммуникацию внутри одного экземпляра между вкладками.
|
|
252
|
+
|
|
253
|
+
```javascript
|
|
254
|
+
// Формат имени канала: name_{случайные_7_цифр}__ваше-имя-канала
|
|
255
|
+
// Пример: name_1234567__user-updates
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
### Обработка ошибок
|
|
259
|
+
|
|
260
|
+
BroadcastMessage корректно обрабатывает ошибки и логирует их в консоль:
|
|
261
|
+
|
|
262
|
+
```javascript
|
|
263
|
+
const channel = new BroadcastMessage('my-channel')
|
|
264
|
+
// Если BroadcastChannel не поддерживается или инициализация не удалась,
|
|
265
|
+
// ошибка логируется: "BroadcastMessage my-channel: [детали ошибки]"
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
### Совместимость с SSR
|
|
269
|
+
|
|
270
|
+
Класс автоматически определяет окружение DOM runtime с помощью `isDomRuntime()`, что делает его безопасным для использования в контекстах SSR/SSG, где BroadcastChannel API недоступен.
|
|
271
|
+
|
|
272
|
+
## Типобезопасность
|
|
273
|
+
|
|
274
|
+
```typescript
|
|
275
|
+
import { BroadcastMessage } from '@dxtmisha/functional'
|
|
276
|
+
|
|
277
|
+
// Определение структуры сообщения
|
|
278
|
+
interface UserUpdate {
|
|
279
|
+
userId: number
|
|
280
|
+
action: 'online' | 'offline' | 'typing'
|
|
281
|
+
timestamp: number
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
// Создание типизированного канала
|
|
285
|
+
const channel = new BroadcastMessage<UserUpdate>('users')
|
|
286
|
+
|
|
287
|
+
// TypeScript обеспечивает типобезопасность
|
|
288
|
+
channel.post({
|
|
289
|
+
userId: 123,
|
|
290
|
+
action: 'online',
|
|
291
|
+
timestamp: Date.now()
|
|
292
|
+
}) // ✓ Валидно
|
|
293
|
+
|
|
294
|
+
channel.post({ invalid: 'data' }) // ✗ Ошибка TypeScript
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
## Совместимость с браузерами
|
|
298
|
+
|
|
299
|
+
BroadcastChannel API поддерживается в:
|
|
300
|
+
- Chrome/Edge 54+
|
|
301
|
+
- Firefox 38+
|
|
302
|
+
- Safari 15.4+
|
|
303
|
+
- Opera 41+
|
|
304
|
+
|
|
305
|
+
Для старых браузеров рассмотрите использование полифилла или механизма запасного варианта.
|
|
@@ -45,6 +45,42 @@ applyTemplate('Это [bold]жирный текст[/bold]', { bold: '<b>[conten
|
|
|
45
45
|
applyTemplate('Text with [red]colored[/red] word', { red: '<span style="color:red">[content]</span>' })
|
|
46
46
|
```
|
|
47
47
|
|
|
48
|
+
## `blobToBase64`
|
|
49
|
+
|
|
50
|
+
Преобразует Blob в строку Base64 (data URL).
|
|
51
|
+
|
|
52
|
+
**Параметры:**
|
|
53
|
+
- `blob: Blob` — Blob объект для преобразования
|
|
54
|
+
|
|
55
|
+
```javascript
|
|
56
|
+
import { blobToBase64 } from '@dxtmisha/functional'
|
|
57
|
+
|
|
58
|
+
const blob = new Blob(['Hello World'], { type: 'text/plain' })
|
|
59
|
+
const base64 = await blobToBase64(blob)
|
|
60
|
+
// 'data:text/plain;base64,SGVsbG8gV29ybGQ='
|
|
61
|
+
|
|
62
|
+
// Использование с изображением
|
|
63
|
+
const imageBlob = new Blob([imageData], { type: 'image/png' })
|
|
64
|
+
const imageBase64 = await blobToBase64(imageBlob)
|
|
65
|
+
// 'data:image/png;base64,iVBORw0KGgo...'
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
## `encodeAttribute`
|
|
70
|
+
|
|
71
|
+
Кодирует специальные символы в строке для безопасного использования в HTML-атрибутах. Преобразует символы `&`, `<`, `>`, `"`, `'` в соответствующие HTML-сущности для предотвращения XSS-атак и корректного отображения.
|
|
72
|
+
|
|
73
|
+
**Параметры:**
|
|
74
|
+
- `text: string` — текст для кодирования
|
|
75
|
+
|
|
76
|
+
```javascript
|
|
77
|
+
import { encodeAttribute } from '@dxtmisha/functional'
|
|
78
|
+
|
|
79
|
+
encodeAttribute('Hello & "World"') // 'Hello & "World"'
|
|
80
|
+
encodeAttribute('<script>alert("XSS")</script>') // '<script>alert("XSS")</script>'
|
|
81
|
+
encodeAttribute("It's a test") // 'It's a test'
|
|
82
|
+
```
|
|
83
|
+
|
|
48
84
|
## `replaceRecursive`
|
|
49
85
|
|
|
50
86
|
Рекурсивно заменяет значения в объекте или массиве.
|
|
@@ -78,6 +114,37 @@ replaceTemplate('User [id]: [name]', {id: '123', name: 'John'}) // 'User 123: Jo
|
|
|
78
114
|
replaceTemplate('Time: [time]', {time: () => new Date().toLocaleString()}) // с функцией
|
|
79
115
|
```
|
|
80
116
|
|
|
117
|
+
## `resizeImageByMax`
|
|
118
|
+
|
|
119
|
+
Изменяет размер изображения, чтобы оно соответствовало ограничению максимального размера.
|
|
120
|
+
|
|
121
|
+
**Параметры:**
|
|
122
|
+
- `image: HTMLImageElement | string` — элемент изображения или URL
|
|
123
|
+
- `maxSize: number` — максимальный размер ширины или высоты
|
|
124
|
+
- `type: 'auto' | 'width' | 'height'` — тип изменения размера (по умолчанию 'auto')
|
|
125
|
+
- `typeData?: string` — тип данных результирующего изображения (например, 'image/png', 'image/jpeg')
|
|
126
|
+
|
|
127
|
+
```javascript
|
|
128
|
+
import { resizeImageByMax } from '@dxtmisha/functional'
|
|
129
|
+
|
|
130
|
+
// Автоматическое масштабирование (по большей стороне)
|
|
131
|
+
const image = document.querySelector('img')
|
|
132
|
+
const resized = resizeImageByMax(image, 800) // data URL
|
|
133
|
+
// Изображение 1200x800 станет 800x533
|
|
134
|
+
|
|
135
|
+
// Масштабирование по ширине
|
|
136
|
+
resizeImageByMax(image, 600, 'width')
|
|
137
|
+
// Ширина будет 600px, высота пропорциональна
|
|
138
|
+
|
|
139
|
+
// Масштабирование по высоте
|
|
140
|
+
resizeImageByMax(image, 400, 'height')
|
|
141
|
+
// Высота будет 400px, ширина пропорциональна
|
|
142
|
+
|
|
143
|
+
// С указанием типа данных
|
|
144
|
+
resizeImageByMax(image, 1024, 'auto', 'image/jpeg')
|
|
145
|
+
// Возвращает JPEG data URL
|
|
146
|
+
```
|
|
147
|
+
|
|
81
148
|
## `secondToTime`
|
|
82
149
|
|
|
83
150
|
Преобразует секунды в формат времени (часы:минуты:секунды).
|
|
@@ -37,6 +37,31 @@ const copy = copyObject(original)
|
|
|
37
37
|
copy.data.age = 25 // original.data.age остается 30
|
|
38
38
|
```
|
|
39
39
|
|
|
40
|
+
## `copyObjectLite`
|
|
41
|
+
|
|
42
|
+
Создает поверхностную копию простого объекта. Если передан параметр `source`, создаёт новый объект и объединяет `value` и `source`.
|
|
43
|
+
|
|
44
|
+
**Параметры:**
|
|
45
|
+
- `value: T` — объект для копирования
|
|
46
|
+
- `source?: any` — дополнительные свойства для копирования (опционально)
|
|
47
|
+
|
|
48
|
+
```javascript
|
|
49
|
+
import { copyObjectLite } from '@dxtmisha/functional'
|
|
50
|
+
|
|
51
|
+
const original = { name: 'John', age: 30 }
|
|
52
|
+
const copy = copyObjectLite(original) // { name: 'John', age: 30 }
|
|
53
|
+
|
|
54
|
+
// С дополнительными свойствами
|
|
55
|
+
const extended = copyObjectLite(original, { city: 'Moscow' })
|
|
56
|
+
// { name: 'John', age: 30, city: 'Moscow' }
|
|
57
|
+
|
|
58
|
+
// Переопределение свойств
|
|
59
|
+
const overridden = copyObjectLite(original, { age: 25 })
|
|
60
|
+
// { name: 'John', age: 25 }
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
**Примечание:** Это поверхностная копия — вложенные объекты сохраняют ссылки на исходные. Для глубокого клонирования используйте `copyObject`, `structuredClone` или `_.cloneDeep`.
|
|
64
|
+
|
|
40
65
|
## `forEach`
|
|
41
66
|
|
|
42
67
|
Универсальная функция итерации для массивов, объектов и Map.
|
|
@@ -68,7 +68,7 @@ const staticDatetime = new DatetimeRef('2024-01-15', 'date', 'ru-RU')
|
|
|
68
68
|
|
|
69
69
|
```javascript
|
|
70
70
|
const yearValue = datetime.getYear()
|
|
71
|
-
// Автоматически обновляется при изменении
|
|
71
|
+
// Автоматически обновляется при изменении даты
|
|
72
72
|
```
|
|
73
73
|
|
|
74
74
|
### `getMonth`
|
|
@@ -228,7 +228,7 @@ const withoutTz = datetime.standard(false)
|
|
|
228
228
|
|
|
229
229
|
### Vue компонент с реактивной датой
|
|
230
230
|
|
|
231
|
-
```
|
|
231
|
+
```html
|
|
232
232
|
<template>
|
|
233
233
|
<div>
|
|
234
234
|
<span>{{ datetime.getYear() }}/{{ datetime.getMonth() + 1 }}/{{ datetime.getDay() }}</span>
|
|
@@ -259,7 +259,7 @@ const eventRef = new EventRef(buttonRef, containerRef, 'click')
|
|
|
259
259
|
|
|
260
260
|
### Vue компонент с реактивными событиями
|
|
261
261
|
|
|
262
|
-
```
|
|
262
|
+
```html
|
|
263
263
|
<template>
|
|
264
264
|
<button ref="buttonEl">Нажми меня</button>
|
|
265
265
|
<input ref="inputEl" placeholder="Введите...">
|
|
@@ -6,6 +6,62 @@ import {Meta} from '@storybook/addon-docs/blocks'
|
|
|
6
6
|
|
|
7
7
|
Набор функций для универсального выполнения синхронных и асинхронных операций.
|
|
8
8
|
|
|
9
|
+
## `computedByLanguage`
|
|
10
|
+
|
|
11
|
+
Создает реактивное вычисляемое свойство, значение которого зависит от текущего языка и заданных условий.
|
|
12
|
+
|
|
13
|
+
**Параметры:**
|
|
14
|
+
- `getter: ComputedGetter<R>` — функция, возвращающая основное значение в зависимости от языка
|
|
15
|
+
- `getterNone: R | (() => R)` — альтернативное значение, если условия не выполнены или getter вернул undefined (по умолчанию undefined)
|
|
16
|
+
- `conditions: () => boolean` — условие для вызова основного getter (опционально)
|
|
17
|
+
- `debugOptions: DebuggerOptions` — опции отладки Vue (опционально)
|
|
18
|
+
|
|
19
|
+
```javascript
|
|
20
|
+
import { computedByLanguage } from '@dxtmisha/functional'
|
|
21
|
+
import { ref } from 'vue'
|
|
22
|
+
|
|
23
|
+
// Простой пример с переводами
|
|
24
|
+
const title = computedByLanguage(
|
|
25
|
+
() => {
|
|
26
|
+
const lang = GeoRef.get().value
|
|
27
|
+
return lang === 'ru' ? 'Заголовок' : 'Title'
|
|
28
|
+
},
|
|
29
|
+
'Default Title'
|
|
30
|
+
)
|
|
31
|
+
|
|
32
|
+
// С условием
|
|
33
|
+
const description = computedByLanguage(
|
|
34
|
+
() => {
|
|
35
|
+
const lang = GeoRef.get().value
|
|
36
|
+
const translations = {
|
|
37
|
+
ru: 'Описание на русском',
|
|
38
|
+
en: 'Description in English'
|
|
39
|
+
}
|
|
40
|
+
return translations[lang]
|
|
41
|
+
},
|
|
42
|
+
() => 'Описание по умолчанию',
|
|
43
|
+
() => showDescription.value // условие показа
|
|
44
|
+
)
|
|
45
|
+
|
|
46
|
+
// Использование в компоненте
|
|
47
|
+
export default {
|
|
48
|
+
setup() {
|
|
49
|
+
const showText = ref(true)
|
|
50
|
+
|
|
51
|
+
const greeting = computedByLanguage(
|
|
52
|
+
() => {
|
|
53
|
+
const lang = GeoRef.get().value
|
|
54
|
+
return lang === 'ru' ? 'Привет, мир!' : 'Hello, world!'
|
|
55
|
+
},
|
|
56
|
+
'Greeting',
|
|
57
|
+
() => showText.value
|
|
58
|
+
)
|
|
59
|
+
|
|
60
|
+
return { greeting }
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
```
|
|
64
|
+
|
|
9
65
|
## `executeFunction`
|
|
10
66
|
|
|
11
67
|
Выполняет функцию и возвращает её результат, или возвращает входные данные, если это не функция.
|
|
@@ -148,3 +204,5 @@ export default {
|
|
|
148
204
|
}
|
|
149
205
|
}
|
|
150
206
|
```
|
|
207
|
+
|
|
208
|
+
|
|
@@ -69,7 +69,7 @@ intl.getLocation() // 'ru-RU'
|
|
|
69
69
|
|
|
70
70
|
Возвращает первый день недели для текущей локали.
|
|
71
71
|
|
|
72
|
-
**Возвращает:** `string` — код первого дня ('Su' для
|
|
72
|
+
**Возвращает:** `string` — код первого дня ('Su' для воскресенья, 'Mo' для понедельника)
|
|
73
73
|
|
|
74
74
|
```javascript
|
|
75
75
|
const intl = new GeoIntl('ru-RU')
|
|
@@ -517,7 +517,7 @@ intl.relative(yesterday, { numeric: 'always' }) // '1 день назад'
|
|
|
517
517
|
- `todayValue?: Date` — базовая дата для сравнения (опционально)
|
|
518
518
|
- `relativeOptions?: string | Intl.RelativeTimeFormatOptions` — опции относительного времени (опционально)
|
|
519
519
|
- `dateOptions?: string | Intl.DateTimeFormatOptions` — опции обычной даты (опционально)
|
|
520
|
-
- `type?: GeoDate` — тип
|
|
520
|
+
- `type?: GeoDate` — тип форматирования даты (опционально)
|
|
521
521
|
- `hour24?: boolean` — использовать 24-часовой формат (опционально)
|
|
522
522
|
|
|
523
523
|
**Возвращает:** `string` — отформатированное относительное время или дата
|
|
@@ -141,7 +141,7 @@ const flag = new GeoFlagRef() // будет использовать de-DE
|
|
|
141
141
|
|
|
142
142
|
### Vue компонент с глобальной геолокацией
|
|
143
143
|
|
|
144
|
-
```
|
|
144
|
+
```html
|
|
145
145
|
<template>
|
|
146
146
|
<div class="geo-info">
|
|
147
147
|
<h2>Текущая локация</h2>
|
|
@@ -202,7 +202,7 @@ GeoRef.set(userLocale)
|
|
|
202
202
|
|
|
203
203
|
### Глобальный провайдер локали
|
|
204
204
|
|
|
205
|
-
```
|
|
205
|
+
```html
|
|
206
206
|
<!-- App.vue -->
|
|
207
207
|
<template>
|
|
208
208
|
<div class="app">
|
|
@@ -534,4 +534,4 @@ function createListFromInput<T extends ListDataBasic>(
|
|
|
534
534
|
}
|
|
535
535
|
```
|
|
536
536
|
|
|
537
|
-
Эти типы списков обеспечивают полную типизацию для
|
|
537
|
+
Эти типы списков обеспечивают полную типизацию для создания интерактивных списков, меню, навигации и других компонентов с поддержкой выбора, поиска и группировки элементов.
|