@sberbusiness/triplex-next 1.46.0 → 1.48.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/chunks/{AlertProcessSpoiler-N4xDl9wn.js → AlertProcessSpoiler-Sz4nOpAx.js} +17 -17
- package/chunks/{AlertProcessSpoiler-N4xDl9wn.js.map → AlertProcessSpoiler-Sz4nOpAx.js.map} +1 -1
- package/chunks/{CalendarViewItem-DPwldi4s.js → CalendarViewItem-8tfDv-A9.js} +21 -21
- package/chunks/{CalendarViewItem-DPwldi4s.js.map → CalendarViewItem-8tfDv-A9.js.map} +1 -1
- package/chunks/Card.module-kIFwMArU.js +32 -0
- package/chunks/Card.module-kIFwMArU.js.map +1 -0
- package/chunks/Carousel.module-D_IzMMFv.js +30 -0
- package/chunks/Carousel.module-D_IzMMFv.js.map +1 -0
- package/chunks/CheckboxTreeExtended.module-C5EvlwgD.js +24 -0
- package/chunks/CheckboxTreeExtended.module-C5EvlwgD.js.map +1 -0
- package/chunks/{Chip-Bi7plvOY.js → Chip-DF_tx9l4.js} +17 -17
- package/chunks/{Chip-Bi7plvOY.js.map → Chip-DF_tx9l4.js.map} +1 -1
- package/chunks/Confirm.module-DoO5fE2O.js +24 -0
- package/chunks/Confirm.module-DoO5fE2O.js.map +1 -0
- package/chunks/{DropdownListItem-BaP5AaMK.js → DropdownListItem-cXbzcYKR.js} +11 -11
- package/chunks/{DropdownListItem-BaP5AaMK.js.map → DropdownListItem-cXbzcYKR.js.map} +1 -1
- package/chunks/DropdownMobile.module-TkQoE9iE.js +40 -0
- package/chunks/DropdownMobile.module-TkQoE9iE.js.map +1 -0
- package/chunks/Footer.module-C4IbSGY2.js +12 -0
- package/chunks/Footer.module-C4IbSGY2.js.map +1 -0
- package/chunks/{HeaderLayoutSidebar.module-CgtR6oF4.js → HeaderLayoutSidebar.module-lDoPFfsH.js} +4 -4
- package/chunks/HeaderLayoutSidebar.module-lDoPFfsH.js.map +1 -0
- package/chunks/HeaderTabs.module-VdomyB_Y.js +12 -0
- package/chunks/HeaderTabs.module-VdomyB_Y.js.map +1 -0
- package/chunks/{HeaderTitle.module-CABfTvCf.js → HeaderTitle.module-C9E0q3CQ.js} +4 -4
- package/chunks/HeaderTitle.module-C9E0q3CQ.js.map +1 -0
- package/chunks/ImageGalleryExtendedMain.module-Cagrj_Nc.js +28 -0
- package/chunks/ImageGalleryExtendedMain.module-Cagrj_Nc.js.map +1 -0
- package/chunks/{ImageGalleryExtendedThumb-BFa7GPtt.js → ImageGalleryExtendedThumb-CDVXTjWG.js} +6 -6
- package/chunks/{ImageGalleryExtendedThumb-BFa7GPtt.js.map → ImageGalleryExtendedThumb-CDVXTjWG.js.map} +1 -1
- package/chunks/IslandAccordion.module-Dws2bgrw.js +44 -0
- package/chunks/IslandAccordion.module-Dws2bgrw.js.map +1 -0
- package/chunks/IslandWidgetFooter.module-CYjuqDDS.js +18 -0
- package/chunks/IslandWidgetFooter.module-CYjuqDDS.js.map +1 -0
- package/chunks/IslandWidgetHeader.module-B-ANb6Z4.js +28 -0
- package/chunks/IslandWidgetHeader.module-B-ANb6Z4.js.map +1 -0
- package/chunks/{LightBoxContent-v_PFgeok.js → LightBoxContent-DVF6KT49.js} +17 -17
- package/chunks/{LightBoxContent-v_PFgeok.js.map → LightBoxContent-DVF6KT49.js.map} +1 -1
- package/chunks/LightBoxControls.module-B5LZnYV0.js +26 -0
- package/chunks/LightBoxControls.module-B5LZnYV0.js.map +1 -0
- package/chunks/{LightBoxSideOverlayClose.module-0Tjk9-qL.js → LightBoxSideOverlayClose.module-B0gINWmN.js} +4 -4
- package/chunks/LightBoxSideOverlayClose.module-B0gINWmN.js.map +1 -0
- package/chunks/{ListItemControlsButton-DoNJ-Yfe.js → ListItemControlsButton-DkpPeYFO.js} +10 -10
- package/chunks/{ListItemControlsButton-DoNJ-Yfe.js.map → ListItemControlsButton-DkpPeYFO.js.map} +1 -1
- package/chunks/ListItemTail.module-C6aqPWcB.js +18 -0
- package/chunks/ListItemTail.module-C6aqPWcB.js.map +1 -0
- package/chunks/ListMasterFooter.module-zjZkQ-qB.js +14 -0
- package/chunks/ListMasterFooter.module-zjZkQ-qB.js.map +1 -0
- package/chunks/ModalWindow.module-DdNfkkzZ.js +28 -0
- package/chunks/ModalWindow.module-DdNfkkzZ.js.map +1 -0
- package/chunks/Notification.module-DCYm_eyJ.js +34 -0
- package/chunks/Notification.module-DCYm_eyJ.js.map +1 -0
- package/chunks/Overlay.module-HJMjZts7.js +30 -0
- package/chunks/Overlay.module-HJMjZts7.js.map +1 -0
- package/chunks/Page.module-DEYdpdTe.js +17 -0
- package/chunks/Page.module-DEYdpdTe.js.map +1 -0
- package/chunks/SMSField.module-BxScHd0G.js +30 -0
- package/chunks/SMSField.module-BxScHd0G.js.map +1 -0
- package/chunks/SliderExtendedMarks.module-qzI-tGBX.js +24 -0
- package/chunks/SliderExtendedMarks.module-qzI-tGBX.js.map +1 -0
- package/chunks/{SliderExtendedRail-BI8zsX61.js → SliderExtendedRail-Co04cta-.js} +7 -7
- package/chunks/SliderExtendedRail-Co04cta-.js.map +1 -0
- package/chunks/StatusTracker.module-L20Tw6M8.js +44 -0
- package/chunks/StatusTracker.module-L20Tw6M8.js.map +1 -0
- package/chunks/{StepperStepArrowBorder-Q22ED8Yo.js → StepperStepArrowBorder-B5HGnDby.js} +16 -16
- package/chunks/{StepperStepArrowBorder-Q22ED8Yo.js.map → StepperStepArrowBorder-B5HGnDby.js.map} +1 -1
- package/chunks/{SuggestFieldMobileDropdownHint-3ySBEFFO.js → SuggestFieldMobileDropdownHint-BeT6Ch46.js} +3 -3
- package/chunks/SuggestFieldMobileDropdownHint-BeT6Ch46.js.map +1 -0
- package/chunks/TableFooter.module-BivJuNYR.js +22 -0
- package/chunks/TableFooter.module-BivJuNYR.js.map +1 -0
- package/chunks/TabsExtended.module-Bv7Xqx7g.js +26 -0
- package/chunks/TabsExtended.module-Bv7Xqx7g.js.map +1 -0
- package/chunks/TabsLine.module-v6dP7lY_.js +36 -0
- package/chunks/TabsLine.module-v6dP7lY_.js.map +1 -0
- package/chunks/TooltipDesktop.module-Bg6ol2mk.js +32 -0
- package/chunks/TooltipDesktop.module-Bg6ol2mk.js.map +1 -0
- package/chunks/TreeView.module-BeU0CUun.js +12 -0
- package/chunks/TreeView.module-BeU0CUun.js.map +1 -0
- package/chunks/UploadZoneInput-85sqlQnz.js +53 -0
- package/chunks/UploadZoneInput-85sqlQnz.js.map +1 -0
- package/chunks/{constants-C-865Unx.js → constants-Cdrw5rn3.js} +27 -27
- package/chunks/{constants-C-865Unx.js.map → constants-Cdrw5rn3.js.map} +1 -1
- package/chunks/{utils-CRayPY0c.js → utils-BtxCEP1y.js} +6 -6
- package/chunks/{utils-CRayPY0c.js.map → utils-BtxCEP1y.js.map} +1 -1
- package/chunks/{utils-BS0p239Z.js → utils-DTHPgHei.js} +27 -27
- package/chunks/{utils-BS0p239Z.js.map → utils-DTHPgHei.js.map} +1 -1
- package/chunks/{utils-CUP-yZoP.js → utils-Dfb5lzLn.js} +11 -11
- package/chunks/{utils-CUP-yZoP.js.map → utils-Dfb5lzLn.js.map} +1 -1
- package/chunks/{utils-D-axOAbx.js → utils-Xoc7ar3d.js} +10 -10
- package/chunks/{utils-D-axOAbx.js.map → utils-Xoc7ar3d.js.map} +1 -1
- package/chunks/{vendor-DqjKLGwf.js → vendor-CUIykw0y.js} +11 -5518
- package/chunks/vendor-CUIykw0y.js.map +1 -0
- package/components/AbstractTree/AbstractTreeNode.js +1 -1
- package/components/AccordionBase/protected/AccordionBase.js +1 -1
- package/components/Alert/AlertContext/AlertContext.js +8 -8
- package/components/Alert/AlertProcess/AlertProcess.js +3 -3
- package/components/Alert/AlertProcess/components/AlertProcessSpoiler.js +2 -2
- package/components/Amount/Amount.js +3 -3
- package/components/AmountField/AmountBaseInputCore.js +2 -2
- package/components/AmountField/AmountBaseInputCore.js.map +1 -1
- package/components/AmountField/AmountBaseInputFormatter.js +7 -10
- package/components/AmountField/AmountBaseInputFormatter.js.map +1 -1
- package/components/AmountField/AmountBaseInputParser.js +9 -13
- package/components/AmountField/AmountBaseInputParser.js.map +1 -1
- package/components/AmountField/AmountField.js +38 -55
- package/components/AmountField/AmountField.js.map +1 -1
- package/components/AmountField/utils.js +12 -2
- package/components/AmountField/utils.js.map +1 -1
- package/components/Avatar/Avatar.js +14 -14
- package/components/Avatar/Avatar.js.map +1 -1
- package/components/Avatar/enums.js.map +1 -1
- package/components/Badge/Badge.js +5 -5
- package/components/Badge/BadgeDot.js +5 -5
- package/components/Badge/components/BadgeContent.js +7 -7
- package/components/Badge/components/BadgePostfix.js +2 -2
- package/components/Badge/components/BadgePrefix.js +2 -2
- package/components/Body/Body.js +4 -4
- package/components/Button/Button.js +21 -21
- package/components/Button/ButtonBase.js +1 -1
- package/components/Button/ButtonDropdown.js +9 -9
- package/components/Button/ButtonDropdownExtended.js +3 -3
- package/components/Button/ButtonIcon.js +4 -4
- package/components/Calendar/Calendar.js +5 -5
- package/components/Calendar/components/CalendarControls.js +17 -2
- package/components/Calendar/components/CalendarControls.js.map +1 -1
- package/components/Calendar/components/CalendarFooter.js +2 -2
- package/components/Calendar/components/CalendarViewDays.js +2 -2
- package/components/Calendar/components/CalendarViewItem.js +2 -2
- package/components/Calendar/components/CalendarViewMonths.js +1 -1
- package/components/Calendar/components/CalendarViewYears.js +1 -1
- package/components/Card/CardAction.js +6 -6
- package/components/Card/CardStatic.js +26 -26
- package/components/Card/CardStatic.js.map +1 -1
- package/components/Card/components/CardContent/CardContent.js +2 -2
- package/components/Card/components/CardContent/components/CardContentBody.js +2 -2
- package/components/Card/components/CardContent/components/CardContentFooter.js +2 -2
- package/components/Card/components/CardContent/components/CardContentHeader.js +2 -2
- package/components/Card/components/CardMedia.js +2 -2
- package/components/Card/utils.js +1 -1
- package/components/Carousel/Carousel.js +2 -2
- package/components/Carousel/CarouselButton.js +2 -2
- package/components/Carousel/CarouselIndicators.js +65 -30
- package/components/Carousel/CarouselIndicators.js.map +1 -1
- package/components/Carousel/CarouselItem.js +2 -2
- package/components/Carousel/CarouselTrack.js +2 -2
- package/components/Carousel/CarouselViewport.js +2 -2
- package/components/CarouselExtended/CarouselExtended.js +2 -2
- package/components/Checkbox/Checkbox.js +11 -11
- package/components/Checkbox/CheckboxXGroup.js +9 -9
- package/components/Checkbox/CheckboxYGroup.js +2 -2
- package/components/CheckboxTree/CheckboxTree.js +34 -35
- package/components/CheckboxTree/CheckboxTree.js.map +1 -1
- package/components/CheckboxTree/utils.js +18 -11
- package/components/CheckboxTree/utils.js.map +1 -1
- package/components/CheckboxTreeExtended/CheckboxTreeExtended.js +22 -9
- package/components/CheckboxTreeExtended/CheckboxTreeExtended.js.map +1 -1
- package/components/CheckboxTreeExtended/components/CheckboxTreeExtendedArrow.js +1 -1
- package/components/CheckboxTreeExtended/components/CheckboxTreeExtendedCheckbox.js +2 -2
- package/components/CheckboxTreeExtended/components/CheckboxTreeExtendedNode.js +2 -2
- package/components/Chip/Chip.js +2 -2
- package/components/Chip/ChipClearButton.js +2 -2
- package/components/Chip/ChipDatePicker/ChipDatePicker.js +1 -1
- package/components/Chip/ChipDatePicker/ChipDatePickerTarget.js +1 -1
- package/components/Chip/ChipDropdownArrow.js +3 -3
- package/components/Chip/ChipIcon.js +1 -1
- package/components/Chip/ChipMonthYearPicker/ChipMonthYearPicker.js +8 -4
- package/components/Chip/ChipMonthYearPicker/ChipMonthYearPicker.js.map +1 -1
- package/components/Chip/ChipMonthYearPicker/ChipMonthYearPickerTarget.js +1 -1
- package/components/Chip/ChipMultiselect.js +2 -2
- package/components/Chip/ChipOptions.js +2 -2
- package/components/Chip/ChipSelect/ChipSelect.js +2 -2
- package/components/Chip/ChipSelect/ChipSelectTarget.js +1 -1
- package/components/Chip/ChipSort.js +2 -2
- package/components/Chip/ChipSuggest/ChipSuggest.js +3 -3
- package/components/Chip/ChipSuggest/ChipSuggest.js.map +1 -1
- package/components/Chip/ChipSuggest/ChipSuggestDropdown.js +3 -3
- package/components/Chip/ChipSuggest/ChipSuggestDropdown.js.map +1 -1
- package/components/Chip/ChipSuggest/ChipSuggestTarget.js +1 -1
- package/components/Chip/ChipSuggest/desktop/ChipSuggestDesktopDropdownField.js +1 -1
- package/components/Chip/index.js +1 -1
- package/components/ChipGroup/ChipGroup.js +8 -8
- package/components/Col/Col.js +133 -133
- package/components/CollapsibleTree/CollapsibleTree.js +2 -2
- package/components/CollapsibleTree/components/CollapsibleTreeLeafContent.js +2 -2
- package/components/CollapsibleTree/components/CollapsibleTreeLeafNode.js +2 -2
- package/components/CollapsibleTree/components/CollapsibleTreeNodeHeader.js +5 -5
- package/components/CollapsibleTreeExtended/CollapsibleTreeExtended.js +7 -2
- package/components/CollapsibleTreeExtended/CollapsibleTreeExtended.js.map +1 -1
- package/components/CollapsibleTreeExtended/components/CollapsibleTreeExtendedNode.js +2 -2
- package/components/Confirm/Confirm.js +22 -19
- package/components/Confirm/Confirm.js.map +1 -1
- package/components/Confirm/components/ConfirmClose.js +21 -7
- package/components/Confirm/components/ConfirmClose.js.map +1 -1
- package/components/Confirm/components/ConfirmCloseButton.js +4 -4
- package/components/Confirm/components/ConfirmCloseButton.js.map +1 -1
- package/components/Confirm/components/ConfirmContent.js +10 -5
- package/components/Confirm/components/ConfirmContent.js.map +1 -1
- package/components/Confirm/components/ConfirmContentSubTitle.js +4 -5
- package/components/Confirm/components/ConfirmContentSubTitle.js.map +1 -1
- package/components/Confirm/components/ConfirmContentTitle.js +6 -8
- package/components/Confirm/components/ConfirmContentTitle.js.map +1 -1
- package/components/Confirm/components/ConfirmControls.js +6 -3
- package/components/Confirm/components/ConfirmControls.js.map +1 -1
- package/components/Confirm/enums.js.map +1 -1
- package/components/DateField/DateFieldTarget.js +5 -5
- package/components/DatePickerExtended/DatePickerExtended.js +2 -2
- package/components/DatePickerExtended/DatePickerExtendedDropdown.js +2 -2
- package/components/DateRange/DateRange.js +69 -82
- package/components/DateRange/DateRange.js.map +1 -1
- package/components/DateRange/types.js +2 -0
- package/components/DateRange/types.js.map +1 -0
- package/components/DateRange/utils.js +8 -0
- package/components/DateRange/utils.js.map +1 -0
- package/components/DesignTokens/DesignTokenUtils.js +2 -2
- package/components/DesignTokens/components/Step.js +1 -1
- package/components/DesignTokens/components/Step.js.map +1 -1
- package/components/Divider/Divider.js +18 -18
- package/components/DocumentNumberEdit/DocumentNumberEdit.js +4 -4
- package/components/Dropdown/desktop/DropdownDesktop.js +7 -7
- package/components/Dropdown/desktop/DropdownList.js +2 -2
- package/components/Dropdown/desktop/DropdownListItem.js +2 -2
- package/components/Dropdown/desktop/index.js +1 -1
- package/components/Dropdown/index.js +1 -1
- package/components/Dropdown/mobile/DropdownMobile.js +2 -2
- package/components/Dropdown/mobile/DropdownMobileBody.js +2 -2
- package/components/Dropdown/mobile/DropdownMobileClose.js +2 -2
- package/components/Dropdown/mobile/DropdownMobileFooter.js +2 -2
- package/components/Dropdown/mobile/DropdownMobileHeader.js +2 -2
- package/components/Dropdown/mobile/DropdownMobileInner.js +2 -2
- package/components/Dropdown/mobile/DropdownMobileInput.js +2 -2
- package/components/Dropdown/mobile/DropdownMobileList.js +2 -2
- package/components/Dropdown/mobile/DropdownMobileListItem.js +2 -2
- package/components/Dropdown/mobile/DropdownMobileLoader.js +2 -2
- package/components/Dropdown/mobile/DropdownMobileMaskedInput.js +2 -2
- package/components/Ellipsis/Ellipsis.js +4 -4
- package/components/EmptyView/EmptyView.js +5 -5
- package/components/ExpandAnimation/ExpandAnimation.js +2 -2
- package/components/FocusTrapExtended/FocusTrapExtended.js +1 -1
- package/components/Footer/Footer.js +1 -1
- package/components/Footer/components/FooterDescription.js +2 -2
- package/components/Footer/components/FooterDescriptionContent.js +2 -2
- package/components/Footer/components/FooterDescriptionControls.js +2 -2
- package/components/FormField/FormField.js +18 -13
- package/components/FormField/FormField.js.map +1 -1
- package/components/FormField/FormFieldContext.js.map +1 -1
- package/components/FormField/components/FormFieldClear.js +2 -2
- package/components/FormField/components/FormFieldCounter.js +2 -2
- package/components/FormField/components/FormFieldDescription.js +3 -3
- package/components/FormField/components/FormFieldInput.js +6 -5
- package/components/FormField/components/FormFieldInput.js.map +1 -1
- package/components/FormField/components/FormFieldLabel.js +21 -9
- package/components/FormField/components/FormFieldLabel.js.map +1 -1
- package/components/FormField/components/FormFieldMaskedInput.js +9 -9
- package/components/FormField/components/FormFieldPostfix.js +2 -2
- package/components/FormField/components/FormFieldPrefix.js +2 -2
- package/components/FormField/components/FormFieldTarget.js +10 -13
- package/components/FormField/components/FormFieldTarget.js.map +1 -1
- package/components/FormField/components/FormFieldTextarea.js +6 -5
- package/components/FormField/components/FormFieldTextarea.js.map +1 -1
- package/components/FormField/components/useFormFieldAffixWidth.js +1 -1
- package/components/FormField/components/useFormFieldAffixWidth.js.map +1 -1
- package/components/FormField/components/utils.js +1 -9
- package/components/FormField/components/utils.js.map +1 -1
- package/components/Gap/Gap.js +9 -9
- package/components/Header/Header.js +1 -1
- package/components/Header/components/HeaderLayoutSidebar/HeaderLayoutSidebar.js +2 -2
- package/components/Header/components/HeaderLayoutSidebar/HeaderLayoutSidebarContent.js +2 -2
- package/components/Header/components/HeaderLayoutSidebar/HeaderLayoutSidebarSidebar.js +2 -2
- package/components/Header/components/HeaderSubheader/HeaderSubheader.js +3 -3
- package/components/Header/components/HeaderTabs/HeaderTabs.js +2 -2
- package/components/Header/components/HeaderTabs/HeaderTabsContent.js +2 -2
- package/components/Header/components/HeaderTabs/HeaderTabsControls.js +2 -2
- package/components/Header/components/HeaderTitle/HeaderTitle.js +2 -2
- package/components/Header/components/HeaderTitle/HeaderTitleContent.js +2 -2
- package/components/Header/components/HeaderTitle/HeaderTitleControls.js +2 -2
- package/components/HelpBox/HelpBox.js +2 -2
- package/components/IconWrapper/IconWrapper.js +3 -3
- package/components/ImageGallery/ImageGallery.js +1 -1
- package/components/ImageGalleryExtended/ImageGalleryExtended.js +3 -3
- package/components/ImageGalleryExtended/components/ImageGalleryExtendedArrow.js +2 -2
- package/components/ImageGalleryExtended/components/ImageGalleryExtendedDots.js +4 -4
- package/components/ImageGalleryExtended/components/ImageGalleryExtendedMain.js +2 -2
- package/components/ImageGalleryExtended/components/ImageGalleryExtendedSlide.js +2 -2
- package/components/ImageGalleryExtended/components/ImageGalleryExtendedSwipeTrack.js +2 -2
- package/components/ImageGalleryExtended/components/ImageGalleryExtendedThumb.js +2 -2
- package/components/ImageGalleryExtended/components/ImageGalleryExtendedThumbnails.js +2 -2
- package/components/ImageGalleryExtended/components/index.js +1 -1
- package/components/ImageGalleryExtended/index.js +1 -1
- package/components/Island/Island.js +2 -2
- package/components/Island/components/IslandBody.js +2 -2
- package/components/Island/components/IslandFooter.js +2 -2
- package/components/Island/components/IslandHeader.js +2 -2
- package/components/Island/utils.js +1 -1
- package/components/IslandAccordion/IslandAccordion.js +3 -3
- package/components/IslandAccordion/components/IslandAccordionContent.js +1 -1
- package/components/IslandAccordion/components/IslandAccordionFooter.js +2 -2
- package/components/IslandAccordion/components/IslandAccordionItem.js +3 -3
- package/components/IslandWidget/IslandWidget.js +4 -4
- package/components/IslandWidget/components/IslandWidgetBody.js +5 -5
- package/components/IslandWidget/components/IslandWidgetExtraFooter.js +2 -2
- package/components/IslandWidget/components/IslandWidgetFooter.js +2 -2
- package/components/IslandWidget/components/IslandWidgetFooterContent.js +2 -2
- package/components/IslandWidget/components/IslandWidgetFooterControls.js +2 -2
- package/components/IslandWidget/components/IslandWidgetHeader.js +2 -2
- package/components/IslandWidget/components/IslandWidgetHeaderContent.js +1 -1
- package/components/IslandWidget/components/IslandWidgetHeaderControls.js +2 -2
- package/components/IslandWidget/components/IslandWidgetHeaderDescription.js +2 -2
- package/components/IslandWidget/components/IslandWidgetHeaderTitle.js +2 -2
- package/components/IslandWidget/components/IslandWidgetWrapper.js +2 -2
- package/components/LightBox/LightBox.js +6 -6
- package/components/LightBox/LightBoxContent.js +2 -2
- package/components/LightBox/LightBoxControls/LightBoxArrow.js +2 -2
- package/components/LightBox/LightBoxControls/LightBoxClose.js +2 -2
- package/components/LightBox/LightBoxControls/LightBoxControls.js +2 -2
- package/components/LightBox/LightBoxControls/LightBoxNext.js +2 -2
- package/components/LightBox/LightBoxControls/LightBoxPrev.js +2 -2
- package/components/LightBox/LightBoxSideOverlay/LightBoxSideOverlay.js +13 -13
- package/components/LightBox/LightBoxSideOverlay/LightBoxSideOverlayCloseDesktop.js +2 -2
- package/components/LightBox/LightBoxSideOverlay/LightBoxSideOverlayCloseMobile.js +2 -2
- package/components/LightBox/LightBoxSideOverlay/LightBoxSideOverlayLoader.js +1 -1
- package/components/LightBox/LightBoxSidebars/LightBoxLeftSidebar.js +4 -4
- package/components/LightBox/LightBoxSidebars/LightBoxRightSidebar.js +4 -4
- package/components/LightBox/LightBoxViewManager/LightBoxViewManager.js +1 -1
- package/components/Link/Link.js +6 -6
- package/components/List/List.js +4 -4
- package/components/List/ListSortable.js +1 -1
- package/components/List/components/ListActionItem.js +2 -2
- package/components/List/components/ListEmptyState.js +2 -2
- package/components/List/components/ListItem.js +1 -1
- package/components/List/components/ListItemContent.js +5 -5
- package/components/List/components/ListItemControls.js +2 -2
- package/components/List/components/ListItemControlsButton.js +2 -2
- package/components/List/components/ListItemControlsButtonDropdown.js +3 -3
- package/components/List/components/ListItemControlsButtonDropdown.js.map +1 -1
- package/components/List/components/ListItemLoading.js +2 -2
- package/components/List/components/ListItemSelectable.js +7 -7
- package/components/List/components/ListItemTailLeft.js +2 -2
- package/components/List/components/ListItemTailRight.js +2 -2
- package/components/List/components/ListSortableItem.js +4 -4
- package/components/List/components/ListSortableItem.js.map +1 -1
- package/components/List/components/ListSortableItemControls.js +2 -2
- package/components/List/components/ListSortableItemTarget.js +5 -5
- package/components/List/components/ListTableItem.js +4 -4
- package/components/List/index.js +1 -1
- package/components/List/utils.js +1 -9
- package/components/List/utils.js.map +1 -1
- package/components/ListMaster/ListMaster.js +1 -1
- package/components/ListMaster/components/ListMasterBody.js +1 -1
- package/components/ListMaster/components/ListMasterChipGroup.js +2 -2
- package/components/ListMaster/components/ListMasterFooter.js +2 -2
- package/components/ListMaster/components/ListMasterFooterControls.js +2 -2
- package/components/ListMaster/components/ListMasterFooterDescription.js +2 -2
- package/components/ListMaster/components/ListMasterHeader.js +3 -3
- package/components/ListMaster/components/SelectionControls.js +3 -3
- package/components/Loader/LoaderMiddle/LoaderMiddle.js +9 -9
- package/components/Loader/LoaderSmall/LoaderSmall.js +11 -11
- package/components/LoaderScreen/LoaderScreen.js +6 -6
- package/components/Marker/Marker.js +2 -2
- package/components/Marker/utils.js +1 -1
- package/components/MarkerStatus/MarkerStatus.js +8 -8
- package/components/ModalWindow/ModalWindow.js +2 -2
- package/components/ModalWindow/components/ModalWindowBody.js +2 -2
- package/components/ModalWindow/components/ModalWindowClose.js +1 -1
- package/components/ModalWindow/components/ModalWindowContent.js +2 -2
- package/components/ModalWindow/components/ModalWindowHeader.js +2 -2
- package/components/ModalWindow/components/ModalWindowViewManager.js +2 -2
- package/components/MonthYearField/MonthYearField.js +6 -4
- package/components/MonthYearField/MonthYearField.js.map +1 -1
- package/components/MonthYearField/MonthYearFieldTarget.js +5 -5
- package/components/MonthYearRange/MonthYearRange.js +4 -4
- package/components/MultiselectField/components/MultiselectFieldDropdown.js +2 -2
- package/components/MultiselectField/components/MultiselectFieldDropdownContent.js +6 -6
- package/components/MultiselectField/components/MultiselectFieldDropdownFooter.js +2 -2
- package/components/MultiselectField/components/MultiselectFieldDropdownHeader.js +2 -2
- package/components/Notification/Notification.js +3 -3
- package/components/Notification/NotificationGrouped.js +1 -1
- package/components/Notification/components/NotificationBody.js +1 -1
- package/components/Notification/components/NotificationBodyList.js +2 -2
- package/components/Notification/components/NotificationClose.js +1 -1
- package/components/Notification/components/NotificationFooter.js +1 -1
- package/components/Notification/components/NotificationGroupedFooter.js +2 -2
- package/components/Notification/components/NotificationHeader.js +1 -1
- package/components/Notification/components/NotificationIcon.js +1 -1
- package/components/Notification/components/NotificationTime.js +1 -1
- package/components/OrderedList/OrderedList.js +3 -3
- package/components/OrderedList/OrderedListItem.js +3 -3
- package/components/Overlay/Overlay.js +2 -2
- package/components/Overlay/OverlayMask.js +2 -2
- package/components/Overlay/OverlayPanel.js +2 -2
- package/components/Page/Page.js +2 -2
- package/components/Page/components/BodyPage.js +8 -8
- package/components/Page/components/FooterPage.js +7 -14
- package/components/Page/components/FooterPage.js.map +1 -1
- package/components/Page/components/HeaderPage.js +2 -2
- package/components/Pagination/components/PaginationExtended.js +3 -3
- package/components/Pagination/components/PaginationNavigationButton.js +2 -2
- package/components/Pagination/components/PaginationNavigationExtended.js +2 -2
- package/components/Pagination/components/PaginationPageButton.js +3 -3
- package/components/Pagination/components/PaginationPageEllipsis.js +2 -2
- package/components/Pagination/components/PaginationSelect.js +3 -3
- package/components/Pagination/utils.js +1 -1
- package/components/Radio/Radio.js +10 -10
- package/components/Radio/RadioXGroup.js +9 -9
- package/components/Radio/RadioYGroup.js +2 -2
- package/components/Row/Row.js +5 -5
- package/components/SMSField/SMSField.js +3 -3
- package/components/SMSField/components/RefreshIcon.js +2 -2
- package/components/SMSField/components/SMSFieldInput.js +2 -2
- package/components/SMSField/components/SMSFieldRefresh.js +2 -2
- package/components/SMSField/components/SMSFieldSubmit.js +2 -2
- package/components/SMSField/components/SMSFieldTooltip.js +1 -1
- package/components/SegmentedControl/SegmentedControl.js +10 -10
- package/components/SegmentedControl/SegmentedControlSegment.js +4 -4
- package/components/SelectExtendedField/SelectExtendedField.js +2 -2
- package/components/SelectExtendedField/components/SelectExtendedFieldDropdown.js +1 -1
- package/components/SelectExtendedField/components/SelectExtendedFieldDropdownDefault.js +1 -1
- package/components/SelectExtendedField/components/SelectExtendedFieldTarget.js +8 -8
- package/components/SelectField/SelectField.js +2 -2
- package/components/Skeleton/Skeleton.js +6 -6
- package/components/Slider/Slider.js +10 -14
- package/components/Slider/Slider.js.map +1 -1
- package/components/SliderExtended/SliderExtended.js +3 -3
- package/components/SliderExtended/components/SliderExtendedDot/SliderExtendedDot.js +7 -7
- package/components/SliderExtended/components/SliderExtendedDot/SliderExtendedDot.js.map +1 -1
- package/components/SliderExtended/components/SliderExtendedMarks/SliderExtendedMark.js +2 -2
- package/components/SliderExtended/components/SliderExtendedMarks/SliderExtendedMarks.js +2 -2
- package/components/SliderExtended/components/SliderExtendedMoveHandler.js +1 -1
- package/components/SliderExtended/components/SliderExtendedRail.js +3 -3
- package/components/SliderExtended/components/SliderExtendedTooltip/SliderExtendedTooltip.js +6 -6
- package/components/SliderExtended/components/SliderExtendedTooltip/SliderExtendedTooltip.js.map +1 -1
- package/components/SliderExtended/components/SliderExtendedTrack/SliderExtendedTrack.js +8 -8
- package/components/SliderExtended/components/SliderExtendedTrack/SliderExtendedTrack.js.map +1 -1
- package/components/SliderRange/SliderRange.js +12 -19
- package/components/SliderRange/SliderRange.js.map +1 -1
- package/components/SmallInput/SmallInput.js +2 -2
- package/components/Spoiler/Spoiler.js +11 -11
- package/components/StatusTracker/StatusTracker.js +3 -3
- package/components/StatusTracker/StatusTracker.js.map +1 -1
- package/components/StatusTracker/components/StatusTrackerAlert.js +7 -6
- package/components/StatusTracker/components/StatusTrackerAlert.js.map +1 -1
- package/components/StatusTracker/components/StatusTrackerBody.js +2 -2
- package/components/StatusTracker/components/StatusTrackerBody.js.map +1 -1
- package/components/StatusTracker/components/StatusTrackerButton.js +8 -3
- package/components/StatusTracker/components/StatusTrackerButton.js.map +1 -1
- package/components/StatusTracker/components/StatusTrackerDescription.js +19 -15
- package/components/StatusTracker/components/StatusTrackerDescription.js.map +1 -1
- package/components/StatusTracker/components/StatusTrackerFooter.js +2 -2
- package/components/StatusTracker/components/StatusTrackerFooter.js.map +1 -1
- package/components/StatusTracker/components/StatusTrackerHeader.js +2 -2
- package/components/StatusTracker/components/StatusTrackerHeader.js.map +1 -1
- package/components/StatusTracker/components/StatusTrackerMedia.js +7 -6
- package/components/StatusTracker/components/StatusTrackerMedia.js.map +1 -1
- package/components/StatusTracker/components/StatusTrackerStatus.js +7 -6
- package/components/StatusTracker/components/StatusTrackerStatus.js.map +1 -1
- package/components/StatusTracker/components/StatusTrackerStatusGroup.js +5 -3
- package/components/StatusTracker/components/StatusTrackerStatusGroup.js.map +1 -1
- package/components/StatusTracker/components/StatusTrackerSum.js +7 -5
- package/components/StatusTracker/components/StatusTrackerSum.js.map +1 -1
- package/components/StatusTracker/components/StatusTrackerTitle.js +7 -5
- package/components/StatusTracker/components/StatusTrackerTitle.js.map +1 -1
- package/components/Step/Step.js +11 -11
- package/components/Stepper/Stepper.js +93 -100
- package/components/Stepper/Stepper.js.map +1 -1
- package/components/Stepper/StepperExtended.js +41 -20
- package/components/Stepper/StepperExtended.js.map +1 -1
- package/components/Stepper/StepperExtendedContext.js +1 -1
- package/components/Stepper/StepperExtendedContext.js.map +1 -1
- package/components/Stepper/StepperStep.js +3 -3
- package/components/Stepper/StepperStepArrowBorder.js +1 -1
- package/components/Suggest/SuggestMobileDropdownContent.js +3 -3
- package/components/Suggest/useSuggest.js +1 -1
- package/components/SuggestField/SuggestField.js +1 -1
- package/components/SuggestField/desktop/SuggestFieldDesktop.js +18 -28
- package/components/SuggestField/desktop/SuggestFieldDesktop.js.map +1 -1
- package/components/SuggestField/desktop/SuggestFieldDesktopDropdown.js +4 -4
- package/components/SuggestField/desktop/SuggestFieldDesktopDropdown.js.map +1 -1
- package/components/SuggestField/index.js +1 -1
- package/components/SuggestField/mobile/SuggestFieldMobile.js +3 -3
- package/components/SuggestField/mobile/SuggestFieldMobile.js.map +1 -1
- package/components/SuggestField/mobile/SuggestFieldMobileDropdown.js +3 -4
- package/components/SuggestField/mobile/SuggestFieldMobileDropdown.js.map +1 -1
- package/components/SuggestField/mobile/SuggestFieldMobileDropdownHint.js +1 -1
- package/components/SuggestField/mobile/index.js +1 -1
- package/components/SwipeableArea/SwipeableArea.js +9 -9
- package/components/Table/ChipPanel.js +2 -2
- package/components/Table/ChipPanelLinks.js +2 -2
- package/components/Table/FilterPanel.js +3 -3
- package/components/Table/MasterTable.js +3 -3
- package/components/Table/NoColumns.js +3 -3
- package/components/Table/PaginationPanel.js +3 -3
- package/components/Table/TableBasic/TableBasic.js +2 -2
- package/components/Table/TableBasic/components/TableBasicBody.js +2 -2
- package/components/Table/TableBasic/components/TableBasicHeader.js +2 -2
- package/components/Table/TableBasic/components/TableBasicRow.js +2 -2
- package/components/Table/TableBasicSettings/TableBasicSettings.js +3 -3
- package/components/Table/TableBasicSettings/components/ColumnSettingsSortableListItemTarget.js +3 -3
- package/components/Table/TableBasicSettings/components/ColumnSettingsStaticListItem.js +2 -2
- package/components/Table/TableBasicSettings/components/TableBasicSettingsBody.js +2 -2
- package/components/Table/TableBasicSettings/components/TableBasicSettingsFooter.js +2 -2
- package/components/Table/TableBasicSettings/components/TableBasicSettingsHeader.js +2 -2
- package/components/Table/TableFooter/TableFooter.js +2 -2
- package/components/Table/TableFooter/components/TableFooterSummary.js +1 -1
- package/components/Table/TableFooter/components/TableFooterSummaryAmount.js +1 -1
- package/components/Table/TableFooter/components/TableFooterSummarySelectAllButton.js +1 -1
- package/components/Table/TableFooter/components/TableFooterSummarySelectedCount.js +1 -1
- package/components/Table/utils.js +1 -1
- package/components/Tabs/Tabs.js +114 -96
- package/components/Tabs/Tabs.js.map +1 -1
- package/components/TabsExtended/TabsExtended.js +3 -3
- package/components/TabsExtended/components/TabsExtendedContent.js +2 -2
- package/components/TabsExtended/components/TabsExtendedDropdownWrapper.js +2 -2
- package/components/TabsExtended/components/TabsExtendedTab.js +2 -2
- package/components/TabsExtended/components/TabsExtendedTabButton.js +2 -2
- package/components/TabsExtended/components/TabsExtendedTabsWrapper.js +2 -2
- package/components/TabsExtended/utils.js +1 -1
- package/components/TabsLine/TabsLine.js +20 -17
- package/components/TabsLine/TabsLine.js.map +1 -1
- package/components/TabsLine/components/TabsLineDesktop.js +85 -98
- package/components/TabsLine/components/TabsLineDesktop.js.map +1 -1
- package/components/TabsLine/components/TabsLineDropdown.js +122 -86
- package/components/TabsLine/components/TabsLineDropdown.js.map +1 -1
- package/components/TabsLine/components/TabsLineItem.js +43 -27
- package/components/TabsLine/components/TabsLineItem.js.map +1 -1
- package/components/TabsLine/components/TabsLineMobile.js +20 -15
- package/components/TabsLine/components/TabsLineMobile.js.map +1 -1
- package/components/TabsLine/utils.js +8 -0
- package/components/TabsLine/utils.js.map +1 -1
- package/components/Tag/Tag.js +6 -6
- package/components/TagColor/TagColor.js +11 -11
- package/components/TagColor/TagColor.js.map +1 -1
- package/components/TagColor/enums.js.map +1 -1
- package/components/TagGroup/TagGroup.js +8 -7
- package/components/TagGroup/TagGroup.js.map +1 -1
- package/components/TextareaField/TextareaField.js +5 -1
- package/components/TextareaField/TextareaField.js.map +1 -1
- package/components/ThemeProvider/ThemeProvider.js +1 -1
- package/components/ThemeProvider/components/ThemeProviderView.js +1 -1
- package/components/Tooltip/components/common/TooltipBody.js +2 -2
- package/components/Tooltip/components/common/TooltipLink.js +5 -5
- package/components/Tooltip/components/common/TooltipXButton.js +1 -1
- package/components/Tooltip/components/desktop/components/TooltipDesktopBase.js +2 -2
- package/components/Tooltip/components/desktop/components/TooltipDesktopTip.js +2 -2
- package/components/Tooltip/components/mobile/TooltipMobile.js +5 -5
- package/components/TopOverlay/TopOverlay.js +7 -7
- package/components/TreeView/TreeView.js +13 -8
- package/components/TreeView/TreeView.js.map +1 -1
- package/components/TreeView/components/TreeViewGroup.js +2 -2
- package/components/TreeView/components/TreeViewNode.js +2 -2
- package/components/Triggers/TriggerClickOnKeyDownEvent.js +2 -5
- package/components/Triggers/TriggerClickOnKeyDownEvent.js.map +1 -1
- package/components/Typography/Caption.js +8 -8
- package/components/Typography/CodeText.js +3 -3
- package/components/Typography/Text.js +10 -10
- package/components/Typography/Title.js +10 -10
- package/components/Typography/constants.js +1 -1
- package/components/UnorderedListExtended/UnorderedListExtended.js +3 -3
- package/components/UnorderedListExtended/UnorderedListExtendedItem.js +3 -3
- package/components/UnorderedListExtended/UnorderedListExtendedItemMarker.js +4 -4
- package/components/UploadZone/UploadZone.js +44 -68
- package/components/UploadZone/UploadZone.js.map +1 -1
- package/components/UploadZone/UploadZoneContext.js +1 -1
- package/components/UploadZone/UploadZoneContext.js.map +1 -1
- package/components/UploadZone/components/UploadZoneInput.js +3 -2
- package/components/UploadZone/components/UploadZoneInput.js.map +1 -1
- package/components/UploadZone/index.js +1 -1
- package/components/WindowResizeListener/WindowResizeListener.js +1 -1
- package/components/index.js +6 -6
- package/{components/SliderExtended/utils.js → helpers/setForwardedRef.js} +2 -2
- package/helpers/setForwardedRef.js.map +1 -0
- package/index.d.ts +400 -211
- package/index.js +6 -6
- package/package.json +1 -1
- package/styles/triplex-next.css +3057 -3052
- package/utils/amountUtils.js +1 -1
- package/chunks/Card.module-DRLlpl4W.js +0 -32
- package/chunks/Card.module-DRLlpl4W.js.map +0 -1
- package/chunks/Carousel.module-DdMfAe9T.js +0 -34
- package/chunks/Carousel.module-DdMfAe9T.js.map +0 -1
- package/chunks/CheckboxTreeExtended.module-BCujNMOr.js +0 -24
- package/chunks/CheckboxTreeExtended.module-BCujNMOr.js.map +0 -1
- package/chunks/Confirm.module-D5ujpaan.js +0 -24
- package/chunks/Confirm.module-D5ujpaan.js.map +0 -1
- package/chunks/DropdownMobile.module-B-PviyH6.js +0 -40
- package/chunks/DropdownMobile.module-B-PviyH6.js.map +0 -1
- package/chunks/Footer.module-ib3e66nH.js +0 -12
- package/chunks/Footer.module-ib3e66nH.js.map +0 -1
- package/chunks/HeaderLayoutSidebar.module-CgtR6oF4.js.map +0 -1
- package/chunks/HeaderTabs.module-CYsRVlb9.js +0 -12
- package/chunks/HeaderTabs.module-CYsRVlb9.js.map +0 -1
- package/chunks/HeaderTitle.module-CABfTvCf.js.map +0 -1
- package/chunks/ImageGalleryExtendedMain.module-CZ9ZU6qi.js +0 -28
- package/chunks/ImageGalleryExtendedMain.module-CZ9ZU6qi.js.map +0 -1
- package/chunks/IslandAccordion.module-U3t-4vJq.js +0 -44
- package/chunks/IslandAccordion.module-U3t-4vJq.js.map +0 -1
- package/chunks/IslandWidgetFooter.module--k_POM4A.js +0 -18
- package/chunks/IslandWidgetFooter.module--k_POM4A.js.map +0 -1
- package/chunks/IslandWidgetHeader.module-D6j13jwR.js +0 -28
- package/chunks/IslandWidgetHeader.module-D6j13jwR.js.map +0 -1
- package/chunks/LightBoxControls.module-DR8ULE0a.js +0 -26
- package/chunks/LightBoxControls.module-DR8ULE0a.js.map +0 -1
- package/chunks/LightBoxSideOverlayClose.module-0Tjk9-qL.js.map +0 -1
- package/chunks/ListItemTail.module-Bq08aKyf.js +0 -18
- package/chunks/ListItemTail.module-Bq08aKyf.js.map +0 -1
- package/chunks/ListMasterFooter.module-9x6ntzLF.js +0 -14
- package/chunks/ListMasterFooter.module-9x6ntzLF.js.map +0 -1
- package/chunks/ModalWindow.module-DVlh8Hck.js +0 -28
- package/chunks/ModalWindow.module-DVlh8Hck.js.map +0 -1
- package/chunks/Notification.module-CAO_e6_u.js +0 -34
- package/chunks/Notification.module-CAO_e6_u.js.map +0 -1
- package/chunks/Overlay.module-BobfrUap.js +0 -30
- package/chunks/Overlay.module-BobfrUap.js.map +0 -1
- package/chunks/Page.module-D5IIaIaU.js +0 -15
- package/chunks/Page.module-D5IIaIaU.js.map +0 -1
- package/chunks/SMSField.module-7wYs4QAZ.js +0 -30
- package/chunks/SMSField.module-7wYs4QAZ.js.map +0 -1
- package/chunks/SliderExtendedMarks.module-m4ckCTSy.js +0 -24
- package/chunks/SliderExtendedMarks.module-m4ckCTSy.js.map +0 -1
- package/chunks/SliderExtendedRail-BI8zsX61.js.map +0 -1
- package/chunks/StatusTracker.module-Duk0PPcv.js +0 -44
- package/chunks/StatusTracker.module-Duk0PPcv.js.map +0 -1
- package/chunks/SuggestFieldMobileDropdownHint-3ySBEFFO.js.map +0 -1
- package/chunks/TableFooter.module-oZBepBwa.js +0 -22
- package/chunks/TableFooter.module-oZBepBwa.js.map +0 -1
- package/chunks/TabsExtended.module-D5QonHS5.js +0 -26
- package/chunks/TabsExtended.module-D5QonHS5.js.map +0 -1
- package/chunks/TabsLine.module-RwtPmU40.js +0 -36
- package/chunks/TabsLine.module-RwtPmU40.js.map +0 -1
- package/chunks/TooltipDesktop.module-hAZYb_oS.js +0 -32
- package/chunks/TooltipDesktop.module-hAZYb_oS.js.map +0 -1
- package/chunks/TreeView.module-DZyeCF-w.js +0 -12
- package/chunks/TreeView.module-DZyeCF-w.js.map +0 -1
- package/chunks/UploadZoneInput-BqBNrWzw.js +0 -40
- package/chunks/UploadZoneInput-BqBNrWzw.js.map +0 -1
- package/chunks/vendor-DqjKLGwf.js.map +0 -1
- package/components/Chip/ChipSuggest/utils.js +0 -11
- package/components/Chip/ChipSuggest/utils.js.map +0 -1
- package/components/SliderExtended/utils.js.map +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
var __defProp = Object.defineProperty;
|
|
2
2
|
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3
3
|
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
4
|
-
import { i as isEqual } from "../../chunks/vendor-
|
|
4
|
+
import { i as isEqual } from "../../chunks/vendor-CUIykw0y.js";
|
|
5
5
|
class AbstractTreeNode {
|
|
6
6
|
constructor() {
|
|
7
7
|
// Массив дочерних нод.
|
|
@@ -4,7 +4,7 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
|
|
|
4
4
|
import { jsxs, Fragment, jsx } from "react/jsx-runtime";
|
|
5
5
|
import React__default from "react";
|
|
6
6
|
import { ExpandAnimation } from "../../ExpandAnimation/ExpandAnimation.js";
|
|
7
|
-
import { u as uniqueId, c as clsx } from "../../../chunks/vendor-
|
|
7
|
+
import { u as uniqueId, c as clsx } from "../../../chunks/vendor-CUIykw0y.js";
|
|
8
8
|
class AccordionBase extends React__default.Component {
|
|
9
9
|
constructor(props) {
|
|
10
10
|
super(props);
|
|
@@ -5,13 +5,13 @@ import { ALERT_TYPE_TO_CLASS_NAME_MAP } from "../AlertTypeUtils.js";
|
|
|
5
5
|
import { Text } from "../../Typography/Text.js";
|
|
6
6
|
import { ETextSize } from "../../Typography/enums.js";
|
|
7
7
|
import { SystemStrokeStsIcon16, ErrorStrokeStsIcon16, WarningStrokeStsIcon16, InfoStrokeStsIcon16 } from "@sberbusiness/icons-next";
|
|
8
|
-
import { c as clsx } from "../../../chunks/vendor-
|
|
9
|
-
const alertContext = "
|
|
10
|
-
const alertContextText = "
|
|
11
|
-
const alertTypeError = "
|
|
12
|
-
const alertTypeInfo = "
|
|
13
|
-
const alertTypeWarning = "
|
|
14
|
-
const alertTypeSystem = "
|
|
8
|
+
import { c as clsx } from "../../../chunks/vendor-CUIykw0y.js";
|
|
9
|
+
const alertContext = "alertContext__ca7b1e06";
|
|
10
|
+
const alertContextText = "alertContextText__92e29ea8";
|
|
11
|
+
const alertTypeError = "alertTypeError__f6a24144";
|
|
12
|
+
const alertTypeInfo = "alertTypeInfo__ddf93605";
|
|
13
|
+
const alertTypeWarning = "alertTypeWarning__76a14416";
|
|
14
|
+
const alertTypeSystem = "alertTypeSystem__60e9f173";
|
|
15
15
|
const styles = {
|
|
16
16
|
alertContext,
|
|
17
17
|
alertContextText,
|
|
@@ -34,7 +34,7 @@ const AlertContext = React__default.forwardRef(
|
|
|
34
34
|
role: "alert",
|
|
35
35
|
className: clsx(styles.alertContext, ALERT_TYPE_TO_CLASS_NAME_MAP[type](styles), className),
|
|
36
36
|
...rest,
|
|
37
|
-
"data-tx": "1.
|
|
37
|
+
"data-tx": "1.48.0",
|
|
38
38
|
ref,
|
|
39
39
|
children: [
|
|
40
40
|
renderIcon || TYPE_TO_DEFAULT_ICON_MAP[type],
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
2
|
import React__default, { useState } from "react";
|
|
3
3
|
import { DefaulticonStrokePrdIcon20, SystemStrokeStsIcon20, ErrorStrokeStsIcon20, WarningStrokeStsIcon20, InfoStrokeStsIcon20, CrossStrokeSrvIcon16 } from "@sberbusiness/icons-next";
|
|
4
|
-
import { c as clsx } from "../../../chunks/vendor-
|
|
4
|
+
import { c as clsx } from "../../../chunks/vendor-CUIykw0y.js";
|
|
5
5
|
import { EAlertType } from "../EAlertType.js";
|
|
6
6
|
import { ALERT_TYPE_TO_CLASS_NAME_MAP } from "../AlertTypeUtils.js";
|
|
7
7
|
import { ButtonIcon } from "../../Button/ButtonIcon.js";
|
|
8
|
-
import { s as styles, A as AlertProcessSpoiler } from "../../../chunks/AlertProcessSpoiler-
|
|
8
|
+
import { s as styles, A as AlertProcessSpoiler } from "../../../chunks/AlertProcessSpoiler-Sz4nOpAx.js";
|
|
9
9
|
import { AlertProcessContext } from "./AlertProcessContext.js";
|
|
10
10
|
import { EAlertProcessBorderRadius } from "./enums.js";
|
|
11
11
|
const TYPE_TO_DEFAULT_ICON_MAP = {
|
|
@@ -50,7 +50,7 @@ const AlertProcess = Object.assign(
|
|
|
50
50
|
className
|
|
51
51
|
),
|
|
52
52
|
...rest,
|
|
53
|
-
"data-tx": "1.
|
|
53
|
+
"data-tx": "1.48.0",
|
|
54
54
|
ref,
|
|
55
55
|
children: [
|
|
56
56
|
/* @__PURE__ */ jsx("div", { className: styles.themeIcon, children: renderIcon || TYPE_TO_DEFAULT_ICON_MAP[type] }),
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import "react/jsx-runtime";
|
|
2
2
|
import "react";
|
|
3
3
|
import "@sberbusiness/icons-next";
|
|
4
|
-
import "../../../../chunks/vendor-
|
|
4
|
+
import "../../../../chunks/vendor-CUIykw0y.js";
|
|
5
5
|
import "../../../Button/ButtonIcon.js";
|
|
6
6
|
import "../AlertProcessContext.js";
|
|
7
|
-
import { A } from "../../../../chunks/AlertProcessSpoiler-
|
|
7
|
+
import { A } from "../../../../chunks/AlertProcessSpoiler-Sz4nOpAx.js";
|
|
8
8
|
export {
|
|
9
9
|
A as AlertProcessSpoiler
|
|
10
10
|
};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { jsxs, jsx, Fragment } from "react/jsx-runtime";
|
|
2
2
|
import React__default from "react";
|
|
3
|
-
import { c as clsx } from "../../chunks/vendor-
|
|
3
|
+
import { c as clsx } from "../../chunks/vendor-CUIykw0y.js";
|
|
4
4
|
import { formatAmount } from "../../utils/amountUtils.js";
|
|
5
|
-
const adaptive = "
|
|
5
|
+
const adaptive = "adaptive__a4582149";
|
|
6
6
|
const styles = {
|
|
7
7
|
adaptive
|
|
8
8
|
};
|
|
@@ -20,7 +20,7 @@ const Amount = React__default.forwardRef(
|
|
|
20
20
|
},
|
|
21
21
|
className
|
|
22
22
|
);
|
|
23
|
-
return /* @__PURE__ */ jsxs("span", { className: classNames, ...restProps, ref, "data-tx": "1.
|
|
23
|
+
return /* @__PURE__ */ jsxs("span", { className: classNames, ...restProps, ref, "data-tx": "1.48.0", children: [
|
|
24
24
|
/* @__PURE__ */ jsx("span", { "data-test-id": dataTestId && `${dataTestId}__amount`, children: formattedAmount }),
|
|
25
25
|
currency && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
26
26
|
NON_BREAKING_SPACE,
|
|
@@ -13,7 +13,7 @@ class AmountBaseInputCore {
|
|
|
13
13
|
__publicField(this, "caret");
|
|
14
14
|
/** Максимальное количество знаков перед запятой. */
|
|
15
15
|
__publicField(this, "maxIntegerDigits");
|
|
16
|
-
/** Количество
|
|
16
|
+
/** Количество знаков после запятой. */
|
|
17
17
|
__publicField(this, "fractionDigits");
|
|
18
18
|
/** Кэш для хранения значений. */
|
|
19
19
|
__publicField(this, "cache");
|
|
@@ -44,7 +44,7 @@ class AmountBaseInputCore {
|
|
|
44
44
|
}
|
|
45
45
|
/** Форматирование значения. */
|
|
46
46
|
format(value) {
|
|
47
|
-
const formatter = new AmountBaseInputFormatter(this.
|
|
47
|
+
const formatter = new AmountBaseInputFormatter(this.fractionDigits);
|
|
48
48
|
formatter.apply(value);
|
|
49
49
|
this.formattedValue = formatter.getValue();
|
|
50
50
|
this.caret += formatter.getCaretOffset();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AmountBaseInputCore.js","sources":["../../../src/components/AmountField/AmountBaseInputCore.ts"],"sourcesContent":["import { AmountBaseInputParser } from \"./AmountBaseInputParser\";\nimport { AmountBaseInputFormatter } from \"./AmountBaseInputFormatter\";\n\n/** Свойства кэша AmountBaseInputCore. */\ninterface IAmountBaseInputCoreCache {\n /** Отформатированное значение. */\n formattedValue: string;\n /** Значение нажатой клавиши. */\n key: string;\n /** Позиция начала выделения. */\n selectionStart: number | null;\n /** Позиция конца выделения. */\n selectionEnd: number | null;\n /** Направление выделения. */\n selectionDirection: \"forward\" | \"backward\" | \"none\" | null;\n}\n\n/** Основная логика в AmountBaseInput. */\nexport class AmountBaseInputCore {\n /** Значение. */\n public value: string;\n /** Отформатированное значение. */\n public formattedValue: string;\n /** Положение каретки. */\n public caret: number;\n /** Максимальное количество знаков перед запятой. */\n public maxIntegerDigits: number;\n /** Количество
|
|
1
|
+
{"version":3,"file":"AmountBaseInputCore.js","sources":["../../../src/components/AmountField/AmountBaseInputCore.ts"],"sourcesContent":["import { AmountBaseInputParser } from \"./AmountBaseInputParser\";\nimport { AmountBaseInputFormatter } from \"./AmountBaseInputFormatter\";\n\n/** Свойства кэша AmountBaseInputCore. */\ninterface IAmountBaseInputCoreCache {\n /** Отформатированное значение. */\n formattedValue: string;\n /** Значение нажатой клавиши. */\n key: string;\n /** Позиция начала выделения. */\n selectionStart: number | null;\n /** Позиция конца выделения. */\n selectionEnd: number | null;\n /** Направление выделения. */\n selectionDirection: \"forward\" | \"backward\" | \"none\" | null;\n}\n\n/** Основная логика в AmountBaseInput. */\nexport class AmountBaseInputCore {\n /** Значение. */\n public value: string;\n /** Отформатированное значение. */\n public formattedValue: string;\n /** Положение каретки. */\n public caret: number;\n /** Максимальное количество знаков перед запятой. */\n public maxIntegerDigits: number;\n /** Количество знаков после запятой. */\n public fractionDigits: number;\n /** Кэш для хранения значений. */\n public cache: IAmountBaseInputCoreCache;\n\n constructor(maxIntegerDigits: number, fractionDigits: number) {\n this.value = \"\";\n this.formattedValue = \"\";\n this.caret = 0;\n this.maxIntegerDigits = maxIntegerDigits;\n this.fractionDigits = fractionDigits;\n this.cache = {\n formattedValue: \"\",\n key: \"\",\n selectionDirection: null,\n selectionEnd: null,\n selectionStart: null,\n };\n }\n\n /** Применение входных данных. */\n public apply(value: string, caret: number): void {\n this.parse(value, caret);\n this.format(this.value);\n }\n\n /** Обработка значения. */\n private parse(value: string, caret: number): void {\n const parser = new AmountBaseInputParser(this.maxIntegerDigits, this.fractionDigits);\n\n parser.apply(value, caret, this.cache.key);\n\n this.value = parser.getValue();\n this.caret = caret + parser.getCaretOffset();\n }\n\n /** Форматирование значения. */\n private format(value: string): void {\n const formatter = new AmountBaseInputFormatter(this.fractionDigits);\n\n formatter.apply(value);\n\n this.formattedValue = formatter.getValue();\n this.caret += formatter.getCaretOffset();\n }\n}\n"],"names":[],"mappings":";;;;;AAkBO,MAAM,oBAAoB;AAAA,EAc7B,YAAY,kBAA0B,gBAAwB;AAZvD;AAAA;AAEA;AAAA;AAEA;AAAA;AAEA;AAAA;AAEA;AAAA;AAEA;AAAA;AAGH,SAAK,QAAQ;AACb,SAAK,iBAAiB;AACtB,SAAK,QAAQ;AACb,SAAK,mBAAmB;AACxB,SAAK,iBAAiB;AACtB,SAAK,QAAQ;AAAA,MACT,gBAAgB;AAAA,MAChB,KAAK;AAAA,MACL,oBAAoB;AAAA,MACpB,cAAc;AAAA,MACd,gBAAgB;AAAA,IAAA;AAAA,EAExB;AAAA;AAAA,EAGO,MAAM,OAAe,OAAqB;AAC7C,SAAK,MAAM,OAAO,KAAK;AACvB,SAAK,OAAO,KAAK,KAAK;AAAA,EAC1B;AAAA;AAAA,EAGQ,MAAM,OAAe,OAAqB;AAC9C,UAAM,SAAS,IAAI,sBAAsB,KAAK,kBAAkB,KAAK,cAAc;AAEnF,WAAO,MAAM,OAAO,OAAO,KAAK,MAAM,GAAG;AAEzC,SAAK,QAAQ,OAAO,SAAA;AACpB,SAAK,QAAQ,QAAQ,OAAO,eAAA;AAAA,EAChC;AAAA;AAAA,EAGQ,OAAO,OAAqB;AAChC,UAAM,YAAY,IAAI,yBAAyB,KAAK,cAAc;AAElE,cAAU,MAAM,KAAK;AAErB,SAAK,iBAAiB,UAAU,SAAA;AAChC,SAAK,SAAS,UAAU,eAAA;AAAA,EAC5B;AACJ;"}
|
|
@@ -3,18 +3,15 @@ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { en
|
|
|
3
3
|
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
4
4
|
import { AmountConst } from "../../consts/AmountConst.js";
|
|
5
5
|
class AmountBaseInputFormatter {
|
|
6
|
-
constructor(
|
|
6
|
+
constructor(fractionDigits) {
|
|
7
7
|
/** Значение. */
|
|
8
8
|
__publicField(this, "value");
|
|
9
9
|
/** Величина сдвига каретки. */
|
|
10
10
|
__publicField(this, "caretOffset");
|
|
11
|
-
/**
|
|
12
|
-
__publicField(this, "maxLength");
|
|
13
|
-
/** Количество чисел после запятой. */
|
|
11
|
+
/** Количество знаков после запятой. */
|
|
14
12
|
__publicField(this, "fractionDigits");
|
|
15
13
|
this.value = "";
|
|
16
14
|
this.caretOffset = 0;
|
|
17
|
-
this.maxLength = maxLength;
|
|
18
15
|
this.fractionDigits = fractionDigits;
|
|
19
16
|
}
|
|
20
17
|
/** Получение значения. */
|
|
@@ -25,10 +22,10 @@ class AmountBaseInputFormatter {
|
|
|
25
22
|
getCaretOffset() {
|
|
26
23
|
return this.caretOffset;
|
|
27
24
|
}
|
|
28
|
-
/** Применение входных
|
|
25
|
+
/** Применение входных данных для форматирования. */
|
|
29
26
|
apply(value) {
|
|
30
27
|
const length = value.length;
|
|
31
|
-
if (this.fractionDigits
|
|
28
|
+
if (this.fractionDigits === 0) {
|
|
32
29
|
this.value = this.formatInteger(value, length);
|
|
33
30
|
} else {
|
|
34
31
|
this.value = this.formatDecimal(value, length);
|
|
@@ -41,7 +38,7 @@ class AmountBaseInputFormatter {
|
|
|
41
38
|
let i = 0;
|
|
42
39
|
buffer.push(value[i]);
|
|
43
40
|
while (++i < length) {
|
|
44
|
-
if ((length - i) % 3
|
|
41
|
+
if ((length - i) % 3 === 0) {
|
|
45
42
|
buffer.push(" ");
|
|
46
43
|
this.caretOffset++;
|
|
47
44
|
}
|
|
@@ -53,12 +50,12 @@ class AmountBaseInputFormatter {
|
|
|
53
50
|
/** Форматирование значения в виде десятичной дроби. */
|
|
54
51
|
formatDecimal(value, length) {
|
|
55
52
|
const buffer = [];
|
|
56
|
-
if (length) {
|
|
53
|
+
if (length > 0) {
|
|
57
54
|
const integerLength = length - this.fractionDigits - 1;
|
|
58
55
|
let i = 0;
|
|
59
56
|
buffer.push(value[i]);
|
|
60
57
|
while (++i < integerLength) {
|
|
61
|
-
if ((integerLength - i) % 3
|
|
58
|
+
if ((integerLength - i) % 3 === 0) {
|
|
62
59
|
buffer.push(" ");
|
|
63
60
|
this.caretOffset++;
|
|
64
61
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AmountBaseInputFormatter.js","sources":["../../../src/components/AmountField/AmountBaseInputFormatter.ts"],"sourcesContent":["import { AmountConst } from \"@sberbusiness/triplex-next/consts/AmountConst\";\n\n/** Форматер значения в AmountBaseInput. */\nexport class AmountBaseInputFormatter {\n /** Значение. */\n private value: string;\n /** Величина сдвига каретки. */\n private caretOffset: number;\n /**
|
|
1
|
+
{"version":3,"file":"AmountBaseInputFormatter.js","sources":["../../../src/components/AmountField/AmountBaseInputFormatter.ts"],"sourcesContent":["import { AmountConst } from \"@sberbusiness/triplex-next/consts/AmountConst\";\n\n/** Форматер значения в AmountBaseInput. */\nexport class AmountBaseInputFormatter {\n /** Значение. */\n private value: string;\n /** Величина сдвига каретки. */\n private caretOffset: number;\n /** Количество знаков после запятой. */\n private readonly fractionDigits: number;\n\n constructor(fractionDigits: number) {\n this.value = \"\";\n this.caretOffset = 0;\n this.fractionDigits = fractionDigits;\n }\n\n /** Получение значения. */\n public getValue(): string {\n return this.value;\n }\n\n /** Получение величины сдвига каретки. */\n public getCaretOffset(): number {\n return this.caretOffset;\n }\n\n /** Применение входных данных для форматирования. */\n public apply(value: string): void {\n const length = value.length;\n\n if (this.fractionDigits === 0) {\n this.value = this.formatInteger(value, length);\n } else {\n this.value = this.formatDecimal(value, length);\n }\n }\n\n /** Форматирование значения в виде целого значения. */\n private formatInteger(value: string, length: number): string {\n const buffer: string[] = [];\n\n if (length > 0) {\n let i = 0;\n\n buffer.push(value[i]);\n while (++i < length) {\n // Нужно ли добавить разделитель между группами цифр.\n if ((length - i) % 3 === 0) {\n buffer.push(\" \");\n this.caretOffset++;\n }\n buffer.push(value[i]);\n }\n }\n\n return buffer.join(\"\");\n }\n\n /** Форматирование значения в виде десятичной дроби. */\n private formatDecimal(value: string, length: number): string {\n const buffer: string[] = [];\n\n if (length > 0) {\n const integerLength = length - this.fractionDigits - 1;\n let i = 0;\n\n buffer.push(value[i]);\n while (++i < integerLength) {\n // Нужно ли добавить разделитель между группами цифр.\n if ((integerLength - i) % 3 === 0) {\n buffer.push(\" \");\n this.caretOffset++;\n }\n buffer.push(value[i]);\n }\n\n buffer.push(AmountConst.DecimalComma);\n\n while (++i < length) {\n buffer.push(value[i]);\n }\n }\n\n return buffer.join(\"\");\n }\n}\n"],"names":[],"mappings":";;;;AAGO,MAAM,yBAAyB;AAAA,EAQlC,YAAY,gBAAwB;AAN5B;AAAA;AAEA;AAAA;AAES;AAAA;AAGb,SAAK,QAAQ;AACb,SAAK,cAAc;AACnB,SAAK,iBAAiB;AAAA,EAC1B;AAAA;AAAA,EAGO,WAAmB;AACtB,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA,EAGO,iBAAyB;AAC5B,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA,EAGO,MAAM,OAAqB;AAC9B,UAAM,SAAS,MAAM;AAErB,QAAI,KAAK,mBAAmB,GAAG;AAC3B,WAAK,QAAQ,KAAK,cAAc,OAAO,MAAM;AAAA,IACjD,OAAO;AACH,WAAK,QAAQ,KAAK,cAAc,OAAO,MAAM;AAAA,IACjD;AAAA,EACJ;AAAA;AAAA,EAGQ,cAAc,OAAe,QAAwB;AACzD,UAAM,SAAmB,CAAA;AAEzB,QAAI,SAAS,GAAG;AACZ,UAAI,IAAI;AAER,aAAO,KAAK,MAAM,CAAC,CAAC;AACpB,aAAO,EAAE,IAAI,QAAQ;AAEjB,aAAK,SAAS,KAAK,MAAM,GAAG;AACxB,iBAAO,KAAK,GAAG;AACf,eAAK;AAAA,QACT;AACA,eAAO,KAAK,MAAM,CAAC,CAAC;AAAA,MACxB;AAAA,IACJ;AAEA,WAAO,OAAO,KAAK,EAAE;AAAA,EACzB;AAAA;AAAA,EAGQ,cAAc,OAAe,QAAwB;AACzD,UAAM,SAAmB,CAAA;AAEzB,QAAI,SAAS,GAAG;AACZ,YAAM,gBAAgB,SAAS,KAAK,iBAAiB;AACrD,UAAI,IAAI;AAER,aAAO,KAAK,MAAM,CAAC,CAAC;AACpB,aAAO,EAAE,IAAI,eAAe;AAExB,aAAK,gBAAgB,KAAK,MAAM,GAAG;AAC/B,iBAAO,KAAK,GAAG;AACf,eAAK;AAAA,QACT;AACA,eAAO,KAAK,MAAM,CAAC,CAAC;AAAA,MACxB;AAEA,aAAO,KAAK,YAAY,YAAY;AAEpC,aAAO,EAAE,IAAI,QAAQ;AACjB,eAAO,KAAK,MAAM,CAAC,CAAC;AAAA,MACxB;AAAA,IACJ;AAEA,WAAO,OAAO,KAAK,EAAE;AAAA,EACzB;AACJ;"}
|
|
@@ -14,7 +14,7 @@ class AmountBaseInputParser {
|
|
|
14
14
|
__publicField(this, "key");
|
|
15
15
|
/** Максимальное количество знаков перед запятой. */
|
|
16
16
|
__publicField(this, "maxIntegerDigits");
|
|
17
|
-
/** Количество
|
|
17
|
+
/** Количество знаков после запятой. */
|
|
18
18
|
__publicField(this, "fractionDigits");
|
|
19
19
|
this.value = "";
|
|
20
20
|
this.caretOffset = 0;
|
|
@@ -35,8 +35,8 @@ class AmountBaseInputParser {
|
|
|
35
35
|
const length = value.length;
|
|
36
36
|
this.key = key;
|
|
37
37
|
if (this.maxIntegerDigits > 0) {
|
|
38
|
-
if (this.fractionDigits
|
|
39
|
-
return this.
|
|
38
|
+
if (this.fractionDigits === 0) {
|
|
39
|
+
return this.parseIntegerPart(value, caret, length);
|
|
40
40
|
} else if (this.fractionDigits > 0) {
|
|
41
41
|
return this.parseDecimal(value, caret, length);
|
|
42
42
|
}
|
|
@@ -44,14 +44,10 @@ class AmountBaseInputParser {
|
|
|
44
44
|
this.value = "";
|
|
45
45
|
this.caretOffset -= length;
|
|
46
46
|
}
|
|
47
|
-
/** Обработка значения в виде целого числа. */
|
|
48
|
-
parseInteger(value, caret, length) {
|
|
49
|
-
this.parseIntegerPart(value, caret, length);
|
|
50
|
-
}
|
|
51
47
|
/** Обработка значения в виде десятичной дроби. */
|
|
52
48
|
parseDecimal(value, caret, length) {
|
|
53
49
|
const separatorIndex = this.findSeparatorIndex(value, caret, length);
|
|
54
|
-
const [integerEnd, fractionalStart] = separatorIndex
|
|
50
|
+
const [integerEnd, fractionalStart] = separatorIndex !== -1 ? [separatorIndex, separatorIndex + 1] : [caret, caret];
|
|
55
51
|
const [integerPart, fractionalPart] = [value.substring(0, integerEnd), value.substring(fractionalStart)];
|
|
56
52
|
this.parseIntegerPart(integerPart, Math.min(caret, integerEnd), integerEnd);
|
|
57
53
|
this.parseFractionalPart(fractionalPart, Math.max(caret - fractionalStart, 0), length - fractionalStart);
|
|
@@ -66,7 +62,7 @@ class AmountBaseInputParser {
|
|
|
66
62
|
for (let i = 0, n = 0; i < caret; i++) {
|
|
67
63
|
if (StringUtils.isDigit(value[i])) {
|
|
68
64
|
buffer.push(value[i]);
|
|
69
|
-
if (++n
|
|
65
|
+
if (++n === maxDigitsBeforeCaret) {
|
|
70
66
|
break;
|
|
71
67
|
}
|
|
72
68
|
}
|
|
@@ -93,7 +89,7 @@ class AmountBaseInputParser {
|
|
|
93
89
|
for (let i = 0, n = 0; i < caret; i++) {
|
|
94
90
|
if (StringUtils.isDigit(value[i])) {
|
|
95
91
|
buffer.push(value[i]);
|
|
96
|
-
if (++n
|
|
92
|
+
if (++n === maxDigitsBeforeCaret) {
|
|
97
93
|
break;
|
|
98
94
|
}
|
|
99
95
|
} else {
|
|
@@ -112,8 +108,8 @@ class AmountBaseInputParser {
|
|
|
112
108
|
}
|
|
113
109
|
}
|
|
114
110
|
}
|
|
115
|
-
if (this.value.length
|
|
116
|
-
if (buffer.some((digit) => digit
|
|
111
|
+
if (this.value.length === 0) {
|
|
112
|
+
if (buffer.some((digit) => digit !== "0")) {
|
|
117
113
|
this.value = "0";
|
|
118
114
|
this.caretOffset++;
|
|
119
115
|
} else {
|
|
@@ -129,7 +125,7 @@ class AmountBaseInputParser {
|
|
|
129
125
|
for (let i = 0; i < length; i++) {
|
|
130
126
|
if (StringUtils.isDigit(value[i])) {
|
|
131
127
|
start = i;
|
|
132
|
-
if (value[i]
|
|
128
|
+
if (value[i] !== "0") {
|
|
133
129
|
break;
|
|
134
130
|
}
|
|
135
131
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AmountBaseInputParser.js","sources":["../../../src/components/AmountField/AmountBaseInputParser.ts"],"sourcesContent":["import { AmountConst } from \"@sberbusiness/triplex-next/consts/AmountConst\";\nimport { StringUtils } from \"@sberbusiness/triplex-next/utils/stringUtils\";\nimport { isKey } from \"@sberbusiness/triplex-next/utils/keyboard\";\n\n/** Обработчик значения в AmountBaseInput. */\nexport class AmountBaseInputParser {\n /** Значение. */\n private value: string;\n /** Величина сдвига каретки. */\n private caretOffset: number;\n /** Значение нажатой клавиши. */\n private key: string;\n /** Максимальное количество знаков перед запятой. */\n private readonly maxIntegerDigits: number;\n /** Количество чисел после запятой. */\n private readonly fractionDigits: number;\n\n constructor(maxIntegerDigits: number, fractionDigits: number) {\n this.value = \"\";\n this.caretOffset = 0;\n this.maxIntegerDigits = maxIntegerDigits;\n this.fractionDigits = fractionDigits;\n this.key = \"\";\n }\n\n /** Получение значения. */\n public getValue(): string {\n return this.value;\n }\n\n /** Получение величины сдвига каретки. */\n public getCaretOffset(): number {\n return this.caretOffset;\n }\n\n /** Применение входных данных для обработки. */\n public apply(value: string, caret: number, key: string): void {\n const length = value.length;\n\n this.key = key;\n\n if (this.maxIntegerDigits > 0) {\n if (this.fractionDigits == 0) {\n return this.parseInteger(value, caret, length);\n } else if (this.fractionDigits > 0) {\n return this.parseDecimal(value, caret, length);\n }\n }\n\n // Fallback\n this.value = \"\";\n this.caretOffset -= length;\n }\n\n /** Обработка значения в виде целого числа. */\n private parseInteger(value: string, caret: number, length: number): void {\n this.parseIntegerPart(value, caret, length);\n }\n\n /** Обработка значения в виде десятичной дроби. */\n private parseDecimal(value: string, caret: number, length: number): void {\n const separatorIndex = this.findSeparatorIndex(value, caret, length);\n const [integerEnd, fractionalStart] =\n separatorIndex != -1 ? [separatorIndex, separatorIndex + 1] : [caret, caret];\n const [integerPart, fractionalPart] = [value.substring(0, integerEnd), value.substring(fractionalStart)];\n\n this.parseIntegerPart(integerPart, Math.min(caret, integerEnd), integerEnd);\n this.parseFractionalPart(fractionalPart, Math.max(caret - fractionalStart, 0), length - fractionalStart);\n }\n\n /** Обработка целой части числа. */\n private parseIntegerPart(value: string, caret: number, length: number): void {\n const buffer: string[] = [];\n [value, caret, length] = this.trimLeadingZeros(value, caret, length);\n\n // Обработка значения перед кареткой.\n if (caret > 0) {\n const maxDigitsBeforeCaret = this.maxIntegerDigits - (length - caret - Math.floor((length - caret) / 4));\n\n if (maxDigitsBeforeCaret > 0) {\n for (let i = 0, n = 0; i < caret; i++) {\n if (StringUtils.isDigit(value[i])) {\n buffer.push(value[i]);\n if (++n == maxDigitsBeforeCaret) {\n break;\n }\n }\n }\n }\n\n this.caretOffset -= caret - buffer.length;\n }\n\n // Обработка значения после каретки.\n if (caret < length) {\n for (let i = caret; i < length; i++) {\n if (StringUtils.isDigit(value[i])) {\n buffer.push(value[i]);\n } else {\n this.caretOffset--;\n }\n }\n }\n\n this.value = buffer.join(\"\");\n }\n\n /** Обработка дробной части числа. */\n private parseFractionalPart(value: string, caret: number, length: number): void {\n const buffer: string[] = [];\n\n // Обработка значения перед кареткой.\n if (caret > 0) {\n const maxDigitsBeforeCaret = this.fractionDigits;\n\n for (let i = 0, n = 0; i < caret; i++) {\n if (StringUtils.isDigit(value[i])) {\n buffer.push(value[i]);\n if (++n == maxDigitsBeforeCaret) {\n break;\n }\n } else {\n this.caretOffset--;\n }\n }\n }\n\n // Обработка значения после каретки.\n while (buffer.length < this.fractionDigits) {\n const index: number = length - (this.fractionDigits - buffer.length);\n\n if (index >= caret) {\n buffer.push(value[index]);\n } else {\n buffer.push(\"0\");\n if (isKey(this.key, \"DELETE\")) {\n this.caretOffset++;\n }\n }\n }\n\n // Если целая часть отсутствует.\n if (this.value.length == 0) {\n // При ненулевой дробной части, восстанавливаем целый ноль.\n if (buffer.some((digit) => digit != \"0\")) {\n this.value = \"0\";\n this.caretOffset++;\n }\n // Останавливаем парсинг.\n else {\n return;\n }\n }\n\n this.value += AmountConst.DecimalPoint;\n this.value += buffer.join(\"\");\n }\n\n /** Удаление ведущих нулей и всего, что им предшествует. */\n private trimLeadingZeros(value: string, caret: number, length: number): [string, number, number] {\n let start = 0;\n\n for (let i = 0; i < length; i++) {\n if (StringUtils.isDigit(value[i])) {\n start = i;\n if (value[i] != \"0\") {\n break;\n }\n }\n }\n\n this.caretOffset -= start;\n\n return [value.substring(start), Math.max(caret - start, 0), length - start];\n }\n\n /** Нахождение индекса десятичного разделителя. */\n private findSeparatorIndex(value: string, caret: number, length: number): number {\n // Если каретка находится перед числом целой части.\n if (caret < length - (this.fractionDigits + 1)) {\n for (let i = length - 1; i >= 0; i--) {\n if (StringUtils.isDecimalSeparator(value[i])) {\n return i;\n }\n }\n }\n // Если каретка находится после целой части.\n else {\n for (let i = 0; i < length; i++) {\n if (StringUtils.isDecimalSeparator(value[i])) {\n return i;\n }\n }\n }\n\n return -1;\n }\n}\n"],"names":[],"mappings":";;;;;;AAKO,MAAM,sBAAsB;AAAA,EAY/B,YAAY,kBAA0B,gBAAwB;AAVtD;AAAA;AAEA;AAAA;AAEA;AAAA;AAES;AAAA;AAEA;AAAA;AAGb,SAAK,QAAQ;AACb,SAAK,cAAc;AACnB,SAAK,mBAAmB;AACxB,SAAK,iBAAiB;AACtB,SAAK,MAAM;AAAA,EACf;AAAA;AAAA,EAGO,WAAmB;AACtB,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA,EAGO,iBAAyB;AAC5B,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA,EAGO,MAAM,OAAe,OAAe,KAAmB;AAC1D,UAAM,SAAS,MAAM;AAErB,SAAK,MAAM;AAEX,QAAI,KAAK,mBAAmB,GAAG;AAC3B,UAAI,KAAK,kBAAkB,GAAG;AAC1B,eAAO,KAAK,aAAa,OAAO,OAAO,MAAM;AAAA,MACjD,WAAW,KAAK,iBAAiB,GAAG;AAChC,eAAO,KAAK,aAAa,OAAO,OAAO,MAAM;AAAA,MACjD;AAAA,IACJ;AAGA,SAAK,QAAQ;AACb,SAAK,eAAe;AAAA,EACxB;AAAA;AAAA,EAGQ,aAAa,OAAe,OAAe,QAAsB;AACrE,SAAK,iBAAiB,OAAO,OAAO,MAAM;AAAA,EAC9C;AAAA;AAAA,EAGQ,aAAa,OAAe,OAAe,QAAsB;AACrE,UAAM,iBAAiB,KAAK,mBAAmB,OAAO,OAAO,MAAM;AACnE,UAAM,CAAC,YAAY,eAAe,IAC9B,kBAAkB,KAAK,CAAC,gBAAgB,iBAAiB,CAAC,IAAI,CAAC,OAAO,KAAK;AAC/E,UAAM,CAAC,aAAa,cAAc,IAAI,CAAC,MAAM,UAAU,GAAG,UAAU,GAAG,MAAM,UAAU,eAAe,CAAC;AAEvG,SAAK,iBAAiB,aAAa,KAAK,IAAI,OAAO,UAAU,GAAG,UAAU;AAC1E,SAAK,oBAAoB,gBAAgB,KAAK,IAAI,QAAQ,iBAAiB,CAAC,GAAG,SAAS,eAAe;AAAA,EAC3G;AAAA;AAAA,EAGQ,iBAAiB,OAAe,OAAe,QAAsB;AACzE,UAAM,SAAmB,CAAA;AACzB,KAAC,OAAO,OAAO,MAAM,IAAI,KAAK,iBAAiB,OAAO,OAAO,MAAM;AAGnE,QAAI,QAAQ,GAAG;AACX,YAAM,uBAAuB,KAAK,oBAAoB,SAAS,QAAQ,KAAK,OAAO,SAAS,SAAS,CAAC;AAEtG,UAAI,uBAAuB,GAAG;AAC1B,iBAAS,IAAI,GAAG,IAAI,GAAG,IAAI,OAAO,KAAK;AACnC,cAAI,YAAY,QAAQ,MAAM,CAAC,CAAC,GAAG;AAC/B,mBAAO,KAAK,MAAM,CAAC,CAAC;AACpB,gBAAI,EAAE,KAAK,sBAAsB;AAC7B;AAAA,YACJ;AAAA,UACJ;AAAA,QACJ;AAAA,MACJ;AAEA,WAAK,eAAe,QAAQ,OAAO;AAAA,IACvC;AAGA,QAAI,QAAQ,QAAQ;AAChB,eAAS,IAAI,OAAO,IAAI,QAAQ,KAAK;AACjC,YAAI,YAAY,QAAQ,MAAM,CAAC,CAAC,GAAG;AAC/B,iBAAO,KAAK,MAAM,CAAC,CAAC;AAAA,QACxB,OAAO;AACH,eAAK;AAAA,QACT;AAAA,MACJ;AAAA,IACJ;AAEA,SAAK,QAAQ,OAAO,KAAK,EAAE;AAAA,EAC/B;AAAA;AAAA,EAGQ,oBAAoB,OAAe,OAAe,QAAsB;AAC5E,UAAM,SAAmB,CAAA;AAGzB,QAAI,QAAQ,GAAG;AACX,YAAM,uBAAuB,KAAK;AAElC,eAAS,IAAI,GAAG,IAAI,GAAG,IAAI,OAAO,KAAK;AACnC,YAAI,YAAY,QAAQ,MAAM,CAAC,CAAC,GAAG;AAC/B,iBAAO,KAAK,MAAM,CAAC,CAAC;AACpB,cAAI,EAAE,KAAK,sBAAsB;AAC7B;AAAA,UACJ;AAAA,QACJ,OAAO;AACH,eAAK;AAAA,QACT;AAAA,MACJ;AAAA,IACJ;AAGA,WAAO,OAAO,SAAS,KAAK,gBAAgB;AACxC,YAAM,QAAgB,UAAU,KAAK,iBAAiB,OAAO;AAE7D,UAAI,SAAS,OAAO;AAChB,eAAO,KAAK,MAAM,KAAK,CAAC;AAAA,MAC5B,OAAO;AACH,eAAO,KAAK,GAAG;AACf,YAAI,MAAM,KAAK,KAAK,QAAQ,GAAG;AAC3B,eAAK;AAAA,QACT;AAAA,MACJ;AAAA,IACJ;AAGA,QAAI,KAAK,MAAM,UAAU,GAAG;AAExB,UAAI,OAAO,KAAK,CAAC,UAAU,SAAS,GAAG,GAAG;AACtC,aAAK,QAAQ;AACb,aAAK;AAAA,MACT,OAEK;AACD;AAAA,MACJ;AAAA,IACJ;AAEA,SAAK,SAAS,YAAY;AAC1B,SAAK,SAAS,OAAO,KAAK,EAAE;AAAA,EAChC;AAAA;AAAA,EAGQ,iBAAiB,OAAe,OAAe,QAA0C;AAC7F,QAAI,QAAQ;AAEZ,aAAS,IAAI,GAAG,IAAI,QAAQ,KAAK;AAC7B,UAAI,YAAY,QAAQ,MAAM,CAAC,CAAC,GAAG;AAC/B,gBAAQ;AACR,YAAI,MAAM,CAAC,KAAK,KAAK;AACjB;AAAA,QACJ;AAAA,MACJ;AAAA,IACJ;AAEA,SAAK,eAAe;AAEpB,WAAO,CAAC,MAAM,UAAU,KAAK,GAAG,KAAK,IAAI,QAAQ,OAAO,CAAC,GAAG,SAAS,KAAK;AAAA,EAC9E;AAAA;AAAA,EAGQ,mBAAmB,OAAe,OAAe,QAAwB;AAE7E,QAAI,QAAQ,UAAU,KAAK,iBAAiB,IAAI;AAC5C,eAAS,IAAI,SAAS,GAAG,KAAK,GAAG,KAAK;AAClC,YAAI,YAAY,mBAAmB,MAAM,CAAC,CAAC,GAAG;AAC1C,iBAAO;AAAA,QACX;AAAA,MACJ;AAAA,IACJ,OAEK;AACD,eAAS,IAAI,GAAG,IAAI,QAAQ,KAAK;AAC7B,YAAI,YAAY,mBAAmB,MAAM,CAAC,CAAC,GAAG;AAC1C,iBAAO;AAAA,QACX;AAAA,MACJ;AAAA,IACJ;AAEA,WAAO;AAAA,EACX;AACJ;"}
|
|
1
|
+
{"version":3,"file":"AmountBaseInputParser.js","sources":["../../../src/components/AmountField/AmountBaseInputParser.ts"],"sourcesContent":["import { AmountConst } from \"@sberbusiness/triplex-next/consts/AmountConst\";\nimport { StringUtils } from \"@sberbusiness/triplex-next/utils/stringUtils\";\nimport { isKey } from \"@sberbusiness/triplex-next/utils/keyboard\";\n\n/** Обработчик значения в AmountBaseInput. */\nexport class AmountBaseInputParser {\n /** Значение. */\n private value: string;\n /** Величина сдвига каретки. */\n private caretOffset: number;\n /** Значение нажатой клавиши. */\n private key: string;\n /** Максимальное количество знаков перед запятой. */\n private readonly maxIntegerDigits: number;\n /** Количество знаков после запятой. */\n private readonly fractionDigits: number;\n\n constructor(maxIntegerDigits: number, fractionDigits: number) {\n this.value = \"\";\n this.caretOffset = 0;\n this.maxIntegerDigits = maxIntegerDigits;\n this.fractionDigits = fractionDigits;\n this.key = \"\";\n }\n\n /** Получение значения. */\n public getValue(): string {\n return this.value;\n }\n\n /** Получение величины сдвига каретки. */\n public getCaretOffset(): number {\n return this.caretOffset;\n }\n\n /** Применение входных данных для обработки. */\n public apply(value: string, caret: number, key: string): void {\n const length = value.length;\n\n this.key = key;\n\n if (this.maxIntegerDigits > 0) {\n if (this.fractionDigits === 0) {\n return this.parseIntegerPart(value, caret, length);\n } else if (this.fractionDigits > 0) {\n return this.parseDecimal(value, caret, length);\n }\n }\n\n // Fallback: без знаков перед запятой значение не имеет смысла — очищаем его целиком.\n this.value = \"\";\n this.caretOffset -= length;\n }\n\n /** Обработка значения в виде десятичной дроби. */\n private parseDecimal(value: string, caret: number, length: number): void {\n const separatorIndex = this.findSeparatorIndex(value, caret, length);\n const [integerEnd, fractionalStart] =\n separatorIndex !== -1 ? [separatorIndex, separatorIndex + 1] : [caret, caret];\n const [integerPart, fractionalPart] = [value.substring(0, integerEnd), value.substring(fractionalStart)];\n\n this.parseIntegerPart(integerPart, Math.min(caret, integerEnd), integerEnd);\n this.parseFractionalPart(fractionalPart, Math.max(caret - fractionalStart, 0), length - fractionalStart);\n }\n\n /** Обработка целой части числа. */\n private parseIntegerPart(value: string, caret: number, length: number): void {\n const buffer: string[] = [];\n [value, caret, length] = this.trimLeadingZeros(value, caret, length);\n\n // Обработка значения перед кареткой.\n if (caret > 0) {\n const maxDigitsBeforeCaret = this.maxIntegerDigits - (length - caret - Math.floor((length - caret) / 4));\n\n if (maxDigitsBeforeCaret > 0) {\n for (let i = 0, n = 0; i < caret; i++) {\n if (StringUtils.isDigit(value[i])) {\n buffer.push(value[i]);\n if (++n === maxDigitsBeforeCaret) {\n break;\n }\n }\n }\n }\n\n this.caretOffset -= caret - buffer.length;\n }\n\n // Обработка значения после каретки.\n if (caret < length) {\n for (let i = caret; i < length; i++) {\n if (StringUtils.isDigit(value[i])) {\n buffer.push(value[i]);\n } else {\n this.caretOffset--;\n }\n }\n }\n\n this.value = buffer.join(\"\");\n }\n\n /** Обработка дробной части числа. */\n private parseFractionalPart(value: string, caret: number, length: number): void {\n const buffer: string[] = [];\n\n // Обработка значения перед кареткой.\n if (caret > 0) {\n const maxDigitsBeforeCaret = this.fractionDigits;\n\n for (let i = 0, n = 0; i < caret; i++) {\n if (StringUtils.isDigit(value[i])) {\n buffer.push(value[i]);\n if (++n === maxDigitsBeforeCaret) {\n break;\n }\n } else {\n this.caretOffset--;\n }\n }\n }\n\n // Обработка значения после каретки.\n while (buffer.length < this.fractionDigits) {\n const index: number = length - (this.fractionDigits - buffer.length);\n\n if (index >= caret) {\n buffer.push(value[index]);\n } else {\n buffer.push(\"0\");\n if (isKey(this.key, \"DELETE\")) {\n this.caretOffset++;\n }\n }\n }\n\n // Если целая часть отсутствует.\n if (this.value.length === 0) {\n // При ненулевой дробной части, восстанавливаем целый ноль.\n if (buffer.some((digit) => digit !== \"0\")) {\n this.value = \"0\";\n this.caretOffset++;\n }\n // Останавливаем парсинг.\n else {\n return;\n }\n }\n\n this.value += AmountConst.DecimalPoint;\n this.value += buffer.join(\"\");\n }\n\n /** Удаление ведущих нулей и всего, что им предшествует. */\n private trimLeadingZeros(value: string, caret: number, length: number): [string, number, number] {\n let start = 0;\n\n for (let i = 0; i < length; i++) {\n if (StringUtils.isDigit(value[i])) {\n start = i;\n if (value[i] !== \"0\") {\n break;\n }\n }\n }\n\n this.caretOffset -= start;\n\n return [value.substring(start), Math.max(caret - start, 0), length - start];\n }\n\n /** Нахождение индекса десятичного разделителя. */\n private findSeparatorIndex(value: string, caret: number, length: number): number {\n // Если каретка находится перед числом целой части.\n if (caret < length - (this.fractionDigits + 1)) {\n for (let i = length - 1; i >= 0; i--) {\n if (StringUtils.isDecimalSeparator(value[i])) {\n return i;\n }\n }\n }\n // Если каретка находится после целой части.\n else {\n for (let i = 0; i < length; i++) {\n if (StringUtils.isDecimalSeparator(value[i])) {\n return i;\n }\n }\n }\n\n return -1;\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx, jsxs, Fragment } from "react/jsx-runtime";
|
|
2
|
-
import React__default, { useRef, useLayoutEffect,
|
|
3
|
-
import { c as clsx } from "../../chunks/vendor-
|
|
2
|
+
import React__default, { useRef, useLayoutEffect, useCallback } from "react";
|
|
3
|
+
import { c as clsx } from "../../chunks/vendor-CUIykw0y.js";
|
|
4
4
|
import { TextFieldBase } from "../TextField/TextFieldBase.js";
|
|
5
5
|
import { EFormFieldStatus } from "../FormField/enums.js";
|
|
6
6
|
import { FormFieldClear } from "../FormField/components/FormFieldClear.js";
|
|
@@ -17,16 +17,17 @@ import "../FormField/FormField.js";
|
|
|
17
17
|
import { AmountBaseInputCore } from "./AmountBaseInputCore.js";
|
|
18
18
|
import { createSizeToClassNameMap } from "../../utils/classNameMaps.js";
|
|
19
19
|
import { setCaretPosition } from "../../utils/inputUtils.js";
|
|
20
|
-
import {
|
|
20
|
+
import { setForwardedRef } from "../../helpers/setForwardedRef.js";
|
|
21
|
+
import { createPlaceholder, syncCoreAndGetFormattedValue, setFallbackCaret } from "./utils.js";
|
|
21
22
|
import { EComponentSize } from "../../enums/EComponentSize.js";
|
|
22
|
-
const amountFieldInputWrapper = "
|
|
23
|
-
const currencyLayout = "
|
|
24
|
-
const sm = "
|
|
25
|
-
const md = "
|
|
26
|
-
const lg = "
|
|
27
|
-
const valueMirror = "
|
|
28
|
-
const currencyUnit = "
|
|
29
|
-
const disabled = "
|
|
23
|
+
const amountFieldInputWrapper = "amountFieldInputWrapper__82ca784d";
|
|
24
|
+
const currencyLayout = "currencyLayout__a6dd6a69";
|
|
25
|
+
const sm = "sm__c87266f3";
|
|
26
|
+
const md = "md__6bc65692";
|
|
27
|
+
const lg = "lg__2231f070";
|
|
28
|
+
const valueMirror = "valueMirror__9b40c458";
|
|
29
|
+
const currencyUnit = "currencyUnit__41e20028";
|
|
30
|
+
const disabled = "disabled__72730938";
|
|
30
31
|
const styles = {
|
|
31
32
|
amountFieldInputWrapper,
|
|
32
33
|
currencyLayout,
|
|
@@ -47,70 +48,51 @@ const AmountField = React__default.forwardRef(
|
|
|
47
48
|
maxIntegerDigits = 16,
|
|
48
49
|
fractionDigits = 2,
|
|
49
50
|
onClear,
|
|
51
|
+
clearProps,
|
|
50
52
|
...restProps
|
|
51
53
|
}, ref) => {
|
|
52
54
|
const { status, "data-test-id": dataTestId } = restProps;
|
|
53
55
|
const placeholder = inputProps.placeholder || createPlaceholder(fractionDigits);
|
|
54
56
|
const inputRef = useRef(null);
|
|
55
|
-
const
|
|
56
|
-
if (
|
|
57
|
+
const coreRef = useRef(null);
|
|
58
|
+
if (coreRef.current === null) {
|
|
59
|
+
coreRef.current = new AmountBaseInputCore(maxIntegerDigits, fractionDigits);
|
|
60
|
+
}
|
|
61
|
+
const core = coreRef.current;
|
|
62
|
+
const formattedValue = syncCoreAndGetFormattedValue(core, inputProps.value, maxIntegerDigits, fractionDigits);
|
|
57
63
|
useLayoutEffect(() => {
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
}, [inputProps.value]);
|
|
61
|
-
const getFormattedValue = () => {
|
|
62
|
-
if (!core.current) return "";
|
|
63
|
-
if (inputProps.value != core.current.value || maxIntegerDigits != core.current.maxIntegerDigits || fractionDigits != core.current.fractionDigits) {
|
|
64
|
-
core.current.maxIntegerDigits = maxIntegerDigits;
|
|
65
|
-
core.current.fractionDigits = fractionDigits;
|
|
66
|
-
core.current.apply(inputProps.value, inputProps.value.length);
|
|
67
|
-
}
|
|
68
|
-
core.current.cache.formattedValue = core.current.formattedValue;
|
|
69
|
-
return core.current.formattedValue;
|
|
70
|
-
};
|
|
71
|
-
const formattedValue = getFormattedValue();
|
|
64
|
+
setCaretPosition(inputRef.current, Math.max(core.caret, 0));
|
|
65
|
+
}, [inputProps.value, maxIntegerDigits, fractionDigits, core]);
|
|
72
66
|
const handleChange = (event) => {
|
|
73
|
-
if (!core.current) return;
|
|
74
67
|
const caret = event.target.selectionStart ?? event.target.value.length;
|
|
75
|
-
core.
|
|
76
|
-
setFallbackCaret(event.target, core
|
|
77
|
-
inputProps.onChange(core.
|
|
68
|
+
core.apply(event.target.value, caret);
|
|
69
|
+
setFallbackCaret(event.target, core, fractionDigits);
|
|
70
|
+
inputProps.onChange(core.value);
|
|
78
71
|
};
|
|
79
72
|
const handleKeyDown = (event) => {
|
|
80
73
|
var _a;
|
|
81
|
-
|
|
82
|
-
core.current.cache.key = event.key;
|
|
74
|
+
core.cache.key = event.key;
|
|
83
75
|
(_a = inputProps.onKeyDown) == null ? void 0 : _a.call(inputProps, event);
|
|
84
76
|
};
|
|
85
77
|
const handleSelect = (event) => {
|
|
86
78
|
var _a;
|
|
87
|
-
|
|
88
|
-
core.
|
|
89
|
-
core.
|
|
90
|
-
core.
|
|
91
|
-
core.current.cache.selectionDirection = event.currentTarget.selectionDirection;
|
|
79
|
+
core.cache.key = "";
|
|
80
|
+
core.cache.selectionStart = event.currentTarget.selectionStart;
|
|
81
|
+
core.cache.selectionEnd = event.currentTarget.selectionEnd;
|
|
82
|
+
core.cache.selectionDirection = event.currentTarget.selectionDirection;
|
|
92
83
|
(_a = inputProps.onSelect) == null ? void 0 : _a.call(inputProps, event);
|
|
93
84
|
};
|
|
94
|
-
const
|
|
95
|
-
|
|
96
|
-
if (externalRef === void 0) {
|
|
97
|
-
return (instance) => {
|
|
98
|
-
inputRef.current = instance;
|
|
99
|
-
};
|
|
100
|
-
}
|
|
101
|
-
return (instance) => {
|
|
85
|
+
const setInputRef = useCallback(
|
|
86
|
+
(instance) => {
|
|
102
87
|
inputRef.current = instance;
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
}
|
|
108
|
-
};
|
|
109
|
-
}, [inputProps.ref]);
|
|
88
|
+
setForwardedRef(inputProps.ref, instance);
|
|
89
|
+
},
|
|
90
|
+
[inputProps.ref]
|
|
91
|
+
);
|
|
110
92
|
const renderPostfix = () => {
|
|
111
93
|
if (onClear !== void 0) {
|
|
112
94
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
113
|
-
/* @__PURE__ */ jsx(FormFieldClear, { onClick: onClear }),
|
|
95
|
+
/* @__PURE__ */ jsx(FormFieldClear, { ...clearProps, onClick: onClear }),
|
|
114
96
|
postfix
|
|
115
97
|
] });
|
|
116
98
|
}
|
|
@@ -143,12 +125,13 @@ const AmountField = React__default.forwardRef(
|
|
|
143
125
|
onKeyDown: handleKeyDown,
|
|
144
126
|
onSelect: handleSelect,
|
|
145
127
|
onChange: handleChange,
|
|
146
|
-
ref:
|
|
128
|
+
ref: setInputRef
|
|
147
129
|
}
|
|
148
130
|
)
|
|
149
131
|
] }) });
|
|
150
132
|
}
|
|
151
133
|
);
|
|
134
|
+
AmountField.displayName = "AmountField";
|
|
152
135
|
export {
|
|
153
136
|
AmountField
|
|
154
137
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AmountField.js","sources":["../../../src/components/AmountField/AmountField.tsx"],"sourcesContent":["import React, { useRef, useLayoutEffect, useMemo } from \"react\";\nimport clsx from \"clsx\";\nimport { TextFieldBase, ITextFieldBaseProps } from \"../TextField/TextFieldBase\";\nimport { FormFieldInput, IFormFieldInputProps, EFormFieldStatus } from \"../FormField\";\nimport { FormFieldClear } from \"../FormField/components/FormFieldClear\";\nimport { AmountBaseInputCore } from \"./AmountBaseInputCore\";\nimport { setCaretPosition, createSizeToClassNameMap } from \"../../utils\";\nimport { createPlaceholder, setFallbackCaret } from \"./utils\";\nimport { EComponentSize } from \"../../enums\";\nimport styles from \"./styles/AmountField.module.less\";\n\n/** Свойства компонента AmountField. */\nexport interface IAmountFieldProps extends Omit<ITextFieldBaseProps, \"children\"> {\n /** Свойства поля ввода. */\n inputProps: Omit<IFormFieldInputProps, \"type\" | \"maxLength\" | \"onChange\" | \"inputMode\" | \"autoComplete\"> & {\n /** Значение. */\n value: string;\n /** Обработчик изменения значения. */\n onChange: (value: string) => void;\n /** Ссылка на HTML-элемент поля ввода. */\n ref?: React.Ref<HTMLInputElement>;\n };\n /** Наименование валюты. */\n currency?: string;\n /** Максимальное количество знаков перед запятой. */\n maxIntegerDigits?: number;\n /** Количество знаков после запятой. */\n fractionDigits?: number;\n /** Обработчик очищения значения. */\n onClear?: () => void;\n}\n\n/** Соответствие размера имени класса. */\nconst SIZE_TO_CLASS_NAME_MAP = createSizeToClassNameMap(styles);\n\nexport const AmountField = React.forwardRef<HTMLDivElement, IAmountFieldProps>(\n (\n {\n size = EComponentSize.LG,\n postfix,\n inputProps,\n currency,\n maxIntegerDigits = 16,\n fractionDigits = 2,\n onClear,\n ...restProps\n },\n ref,\n ) => {\n const { status, \"data-test-id\": dataTestId } = restProps;\n const placeholder = inputProps.placeholder || createPlaceholder(fractionDigits);\n\n const inputRef = useRef<HTMLInputElement | null>(null);\n const core = useRef<AmountBaseInputCore>();\n if (core.current === undefined) core.current = new AmountBaseInputCore(maxIntegerDigits, fractionDigits);\n\n useLayoutEffect(() => {\n if (core.current && inputRef.current == document.activeElement)\n setCaretPosition(inputRef.current, Math.max(core.current.caret, 0));\n }, [inputProps.value]);\n\n /** Функция, возвращающая отформатированное значение. */\n const getFormattedValue = () => {\n if (!core.current) return \"\";\n\n if (\n inputProps.value != core.current.value ||\n maxIntegerDigits != core.current.maxIntegerDigits ||\n fractionDigits != core.current.fractionDigits\n ) {\n core.current.maxIntegerDigits = maxIntegerDigits;\n core.current.fractionDigits = fractionDigits;\n core.current.apply(inputProps.value, inputProps.value.length);\n }\n\n core.current.cache.formattedValue = core.current.formattedValue;\n\n return core.current.formattedValue;\n };\n\n const formattedValue = getFormattedValue();\n\n /** Обработчик изменения значения. */\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (!core.current) return;\n\n const caret = event.target.selectionStart ?? event.target.value.length;\n\n core.current.apply(event.target.value, caret);\n\n setFallbackCaret(event.target, core.current, fractionDigits);\n\n inputProps.onChange(core.current.value);\n };\n\n /** Обработчик нажатия клавиши. */\n const handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (!core.current) return;\n\n core.current.cache.key = event.key;\n\n inputProps.onKeyDown?.(event);\n };\n\n /** Обработчик выбора текста. */\n const handleSelect = (event: React.SyntheticEvent<HTMLInputElement>) => {\n if (!core.current) return;\n\n core.current.cache.key = \"\";\n core.current.cache.selectionStart = event.currentTarget.selectionStart;\n core.current.cache.selectionEnd = event.currentTarget.selectionEnd;\n core.current.cache.selectionDirection = event.currentTarget.selectionDirection;\n\n inputProps.onSelect?.(event);\n };\n\n const mergedInputRef = useMemo(() => {\n const externalRef = inputProps.ref;\n\n if (externalRef === undefined) {\n return (instance: HTMLInputElement | null) => {\n inputRef.current = instance;\n };\n }\n\n return (instance: HTMLInputElement | null) => {\n inputRef.current = instance;\n if (typeof externalRef === \"function\") {\n externalRef(instance);\n } else {\n (externalRef as React.MutableRefObject<HTMLInputElement | null>).current = instance;\n }\n };\n }, [inputProps.ref]);\n\n const renderPostfix = () => {\n if (onClear !== undefined) {\n return (\n <>\n <FormFieldClear onClick={onClear} />\n {postfix}\n </>\n );\n }\n return postfix;\n };\n\n const showCurrency = currency !== undefined && formattedValue.length > 0;\n\n return (\n <TextFieldBase size={size} postfix={renderPostfix()} {...restProps} ref={ref}>\n <div className={styles.amountFieldInputWrapper}>\n {showCurrency && (\n <div className={clsx(styles.currencyLayout, SIZE_TO_CLASS_NAME_MAP[size])}>\n <span className={styles.valueMirror} aria-hidden=\"true\">\n {`${formattedValue} `}\n </span>\n <span\n className={clsx(styles.currencyUnit, {\n [styles.disabled]: status === EFormFieldStatus.DISABLED,\n })}\n data-test-id={dataTestId && `${dataTestId}__unit`}\n >\n {currency}\n </span>\n </div>\n )}\n <FormFieldInput\n {...inputProps}\n value={formattedValue}\n placeholder={placeholder}\n autoComplete=\"off\"\n inputMode=\"decimal\"\n data-test-id={dataTestId && `${dataTestId}__input`}\n onKeyDown={handleKeyDown}\n onSelect={handleSelect}\n onChange={handleChange}\n ref={mergedInputRef}\n />\n </div>\n </TextFieldBase>\n );\n },\n);\n"],"names":["React"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiCA,MAAM,yBAAyB,yBAAyB,MAAM;AAEvD,MAAM,cAAcA,eAAM;AAAA,EAC7B,CACI;AAAA,IACI,OAAO,eAAe;AAAA,IACtB;AAAA,IACA;AAAA,IACA;AAAA,IACA,mBAAmB;AAAA,IACnB,iBAAiB;AAAA,IACjB;AAAA,IACA,GAAG;AAAA,EAAA,GAEP,QACC;AACD,UAAM,EAAE,QAAQ,gBAAgB,WAAA,IAAe;AAC/C,UAAM,cAAc,WAAW,eAAe,kBAAkB,cAAc;AAE9E,UAAM,WAAW,OAAgC,IAAI;AACrD,UAAM,OAAO,OAAA;AACb,QAAI,KAAK,YAAY,OAAW,MAAK,UAAU,IAAI,oBAAoB,kBAAkB,cAAc;AAEvG,oBAAgB,MAAM;AAClB,UAAI,KAAK,WAAW,SAAS,WAAW,SAAS;AAC7C,yBAAiB,SAAS,SAAS,KAAK,IAAI,KAAK,QAAQ,OAAO,CAAC,CAAC;AAAA,IAC1E,GAAG,CAAC,WAAW,KAAK,CAAC;AAGrB,UAAM,oBAAoB,MAAM;AAC5B,UAAI,CAAC,KAAK,QAAS,QAAO;AAE1B,UACI,WAAW,SAAS,KAAK,QAAQ,SACjC,oBAAoB,KAAK,QAAQ,oBACjC,kBAAkB,KAAK,QAAQ,gBACjC;AACE,aAAK,QAAQ,mBAAmB;AAChC,aAAK,QAAQ,iBAAiB;AAC9B,aAAK,QAAQ,MAAM,WAAW,OAAO,WAAW,MAAM,MAAM;AAAA,MAChE;AAEA,WAAK,QAAQ,MAAM,iBAAiB,KAAK,QAAQ;AAEjD,aAAO,KAAK,QAAQ;AAAA,IACxB;AAEA,UAAM,iBAAiB,kBAAA;AAGvB,UAAM,eAAe,CAAC,UAA+C;AACjE,UAAI,CAAC,KAAK,QAAS;AAEnB,YAAM,QAAQ,MAAM,OAAO,kBAAkB,MAAM,OAAO,MAAM;AAEhE,WAAK,QAAQ,MAAM,MAAM,OAAO,OAAO,KAAK;AAE5C,uBAAiB,MAAM,QAAQ,KAAK,SAAS,cAAc;AAE3D,iBAAW,SAAS,KAAK,QAAQ,KAAK;AAAA,IAC1C;AAGA,UAAM,gBAAgB,CAAC,UAAiD;;AACpE,UAAI,CAAC,KAAK,QAAS;AAEnB,WAAK,QAAQ,MAAM,MAAM,MAAM;AAE/B,uBAAW,cAAX,oCAAuB;AAAA,IAC3B;AAGA,UAAM,eAAe,CAAC,UAAkD;;AACpE,UAAI,CAAC,KAAK,QAAS;AAEnB,WAAK,QAAQ,MAAM,MAAM;AACzB,WAAK,QAAQ,MAAM,iBAAiB,MAAM,cAAc;AACxD,WAAK,QAAQ,MAAM,eAAe,MAAM,cAAc;AACtD,WAAK,QAAQ,MAAM,qBAAqB,MAAM,cAAc;AAE5D,uBAAW,aAAX,oCAAsB;AAAA,IAC1B;AAEA,UAAM,iBAAiB,QAAQ,MAAM;AACjC,YAAM,cAAc,WAAW;AAE/B,UAAI,gBAAgB,QAAW;AAC3B,eAAO,CAAC,aAAsC;AAC1C,mBAAS,UAAU;AAAA,QACvB;AAAA,MACJ;AAEA,aAAO,CAAC,aAAsC;AAC1C,iBAAS,UAAU;AACnB,YAAI,OAAO,gBAAgB,YAAY;AACnC,sBAAY,QAAQ;AAAA,QACxB,OAAO;AACF,sBAAgE,UAAU;AAAA,QAC/E;AAAA,MACJ;AAAA,IACJ,GAAG,CAAC,WAAW,GAAG,CAAC;AAEnB,UAAM,gBAAgB,MAAM;AACxB,UAAI,YAAY,QAAW;AACvB,eACI,qBAAA,UAAA,EACI,UAAA;AAAA,UAAA,oBAAC,gBAAA,EAAe,SAAS,QAAA,CAAS;AAAA,UACjC;AAAA,QAAA,GACL;AAAA,MAER;AACA,aAAO;AAAA,IACX;AAEA,UAAM,eAAe,aAAa,UAAa,eAAe,SAAS;AAEvE,WACI,oBAAC,eAAA,EAAc,MAAY,SAAS,cAAA,GAAkB,GAAG,WAAW,KAChE,UAAA,qBAAC,OAAA,EAAI,WAAW,OAAO,yBAClB,UAAA;AAAA,MAAA,gBACG,qBAAC,SAAI,WAAW,KAAK,OAAO,gBAAgB,uBAAuB,IAAI,CAAC,GACpE,UAAA;AAAA,QAAA,oBAAC,QAAA,EAAK,WAAW,OAAO,aAAa,eAAY,QAC5C,UAAA,GAAG,cAAc,IAAA,CACtB;AAAA,QACA;AAAA,UAAC;AAAA,UAAA;AAAA,YACG,WAAW,KAAK,OAAO,cAAc;AAAA,cACjC,CAAC,OAAO,QAAQ,GAAG,WAAW,iBAAiB;AAAA,YAAA,CAClD;AAAA,YACD,gBAAc,cAAc,GAAG,UAAU;AAAA,YAExC,UAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MACL,GACJ;AAAA,MAEJ;AAAA,QAAC;AAAA,QAAA;AAAA,UACI,GAAG;AAAA,UACJ,OAAO;AAAA,UACP;AAAA,UACA,cAAa;AAAA,UACb,WAAU;AAAA,UACV,gBAAc,cAAc,GAAG,UAAU;AAAA,UACzC,WAAW;AAAA,UACX,UAAU;AAAA,UACV,UAAU;AAAA,UACV,KAAK;AAAA,QAAA;AAAA,MAAA;AAAA,IACT,EAAA,CACJ,EAAA,CACJ;AAAA,EAER;AACJ;"}
|
|
1
|
+
{"version":3,"file":"AmountField.js","sources":["../../../src/components/AmountField/AmountField.tsx"],"sourcesContent":["import React, { useRef, useLayoutEffect, useCallback } from \"react\";\nimport clsx from \"clsx\";\nimport { TextFieldBase, ITextFieldBaseProps } from \"../TextField/TextFieldBase\";\nimport { FormFieldInput, IFormFieldInputProps, EFormFieldStatus } from \"../FormField\";\nimport { FormFieldClear, IFormFieldClearProps } from \"../FormField/components/FormFieldClear\";\nimport { AmountBaseInputCore } from \"./AmountBaseInputCore\";\nimport { setCaretPosition, createSizeToClassNameMap } from \"../../utils\";\nimport { setForwardedRef } from \"../../helpers/setForwardedRef\";\nimport { createPlaceholder, syncCoreAndGetFormattedValue, setFallbackCaret } from \"./utils\";\nimport { EComponentSize } from \"../../enums\";\nimport styles from \"./styles/AmountField.module.less\";\n\n/** Свойства компонента AmountField. */\nexport interface IAmountFieldProps extends Omit<ITextFieldBaseProps, \"children\"> {\n /** Свойства поля ввода. */\n inputProps: Omit<IFormFieldInputProps, \"type\" | \"maxLength\" | \"onChange\" | \"inputMode\" | \"autoComplete\"> & {\n /** Значение. Хранится без разделителей разрядов, с точкой в роли десятичного разделителя (\"1234.56\"). */\n value: string;\n /** Обработчик изменения значения. Получает нормализованное значение, а не то, что видно в поле. */\n onChange: (value: string) => void;\n /** Ссылка на HTML-элемент поля ввода. */\n ref?: React.Ref<HTMLInputElement>;\n };\n /** Наименование валюты. Отображается справа от значения, пока значение не пустое. */\n currency?: string;\n /** Максимальное количество знаков перед запятой. По умолчанию 16. */\n maxIntegerDigits?: number;\n /** Количество знаков после запятой. По умолчанию 2. */\n fractionDigits?: number;\n /** Обработчик очищения значения. Если передан, в постфиксе поля отображается кнопка очистки. */\n onClear?: () => void;\n /**\n * Свойства кнопки очистки. Имеют смысл только вместе с onClear.\n *\n * Кнопка содержит лишь иконку, поэтому доступное имя задаётся здесь: передайте aria-label\n * на языке интерфейса. Обработчик клика задаётся через onClear и здесь не переопределяется.\n */\n clearProps?: Omit<IFormFieldClearProps, \"onClick\">;\n}\n\n/** Соответствие размера имени класса. */\nconst SIZE_TO_CLASS_NAME_MAP = createSizeToClassNameMap(styles);\n\n/**\n * Поле ввода денежной суммы.\n *\n * Форматирует значение во время ввода (разряды через пробел, запятая в роли десятичного разделителя)\n * и удерживает каретку в осмысленной позиции, а наружу отдаёт нормализованное значение вида \"1234.56\".\n */\nexport const AmountField = React.forwardRef<HTMLDivElement, IAmountFieldProps>(\n (\n {\n size = EComponentSize.LG,\n postfix,\n inputProps,\n currency,\n maxIntegerDigits = 16,\n fractionDigits = 2,\n onClear,\n clearProps,\n ...restProps\n },\n ref,\n ) => {\n const { status, \"data-test-id\": dataTestId } = restProps;\n const placeholder = inputProps.placeholder || createPlaceholder(fractionDigits);\n\n const inputRef = useRef<HTMLInputElement | null>(null);\n const coreRef = useRef<AmountBaseInputCore | null>(null);\n\n if (coreRef.current === null) {\n coreRef.current = new AmountBaseInputCore(maxIntegerDigits, fractionDigits);\n }\n\n const core = coreRef.current;\n const formattedValue = syncCoreAndGetFormattedValue(core, inputProps.value, maxIntegerDigits, fractionDigits);\n\n // Возвращаем каретку в рассчитанную ядром позицию: React после перерисовки ставит её в конец значения.\n // setCaretPosition ничего не делает, если поле не в фокусе.\n useLayoutEffect(() => {\n setCaretPosition(inputRef.current, Math.max(core.caret, 0));\n }, [inputProps.value, maxIntegerDigits, fractionDigits, core]);\n\n /** Обработчик изменения значения. */\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const caret = event.target.selectionStart ?? event.target.value.length;\n\n core.apply(event.target.value, caret);\n\n setFallbackCaret(event.target, core, fractionDigits);\n\n inputProps.onChange(core.value);\n };\n\n /** Обработчик нажатия клавиши. */\n const handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n core.cache.key = event.key;\n\n inputProps.onKeyDown?.(event);\n };\n\n /** Обработчик выбора текста. */\n const handleSelect = (event: React.SyntheticEvent<HTMLInputElement>) => {\n core.cache.key = \"\";\n core.cache.selectionStart = event.currentTarget.selectionStart;\n core.cache.selectionEnd = event.currentTarget.selectionEnd;\n core.cache.selectionDirection = event.currentTarget.selectionDirection;\n\n inputProps.onSelect?.(event);\n };\n\n const setInputRef = useCallback(\n (instance: HTMLInputElement | null) => {\n inputRef.current = instance;\n setForwardedRef(inputProps.ref, instance);\n },\n [inputProps.ref],\n );\n\n const renderPostfix = () => {\n if (onClear !== undefined) {\n return (\n <>\n <FormFieldClear {...clearProps} onClick={onClear} />\n {postfix}\n </>\n );\n }\n return postfix;\n };\n\n const showCurrency = currency !== undefined && formattedValue.length > 0;\n\n return (\n <TextFieldBase size={size} postfix={renderPostfix()} {...restProps} ref={ref}>\n <div className={styles.amountFieldInputWrapper}>\n {showCurrency && (\n <div className={clsx(styles.currencyLayout, SIZE_TO_CLASS_NAME_MAP[size])}>\n <span className={styles.valueMirror} aria-hidden=\"true\">\n {`${formattedValue} `}\n </span>\n <span\n className={clsx(styles.currencyUnit, {\n [styles.disabled]: status === EFormFieldStatus.DISABLED,\n })}\n data-test-id={dataTestId && `${dataTestId}__unit`}\n >\n {currency}\n </span>\n </div>\n )}\n <FormFieldInput\n {...inputProps}\n value={formattedValue}\n placeholder={placeholder}\n autoComplete=\"off\"\n inputMode=\"decimal\"\n data-test-id={dataTestId && `${dataTestId}__input`}\n onKeyDown={handleKeyDown}\n onSelect={handleSelect}\n onChange={handleChange}\n ref={setInputRef}\n />\n </div>\n </TextFieldBase>\n );\n },\n);\n\nAmountField.displayName = \"AmountField\";\n"],"names":["React"],"mappings":"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"}
|
|
@@ -11,6 +11,15 @@ function createPlaceholder(fractionDigits) {
|
|
|
11
11
|
}
|
|
12
12
|
return buffer.join("");
|
|
13
13
|
}
|
|
14
|
+
function syncCoreAndGetFormattedValue(core, value, maxIntegerDigits, fractionDigits) {
|
|
15
|
+
if (value !== core.value || maxIntegerDigits !== core.maxIntegerDigits || fractionDigits !== core.fractionDigits) {
|
|
16
|
+
core.maxIntegerDigits = maxIntegerDigits;
|
|
17
|
+
core.fractionDigits = fractionDigits;
|
|
18
|
+
core.apply(value, value.length);
|
|
19
|
+
}
|
|
20
|
+
core.cache.formattedValue = core.formattedValue;
|
|
21
|
+
return core.formattedValue;
|
|
22
|
+
}
|
|
14
23
|
function setFallbackCaret(input, coreAmount, fractionDigits) {
|
|
15
24
|
const { formattedValue, key, selectionStart, selectionEnd, selectionDirection } = coreAmount.cache;
|
|
16
25
|
input.value = formattedValue;
|
|
@@ -37,11 +46,12 @@ function setFallbackCaret(input, coreAmount, fractionDigits) {
|
|
|
37
46
|
if (coreAmount.formattedValue === formattedValue)
|
|
38
47
|
return input.setSelectionRange(coreAmount.caret, coreAmount.caret);
|
|
39
48
|
}
|
|
40
|
-
if (selectionDirection
|
|
49
|
+
if (selectionDirection === "backward") return input.setSelectionRange(selectionEnd, selectionEnd);
|
|
41
50
|
return input.setSelectionRange(selectionStart, selectionStart);
|
|
42
51
|
}
|
|
43
52
|
export {
|
|
44
53
|
createPlaceholder,
|
|
45
|
-
setFallbackCaret
|
|
54
|
+
setFallbackCaret,
|
|
55
|
+
syncCoreAndGetFormattedValue
|
|
46
56
|
};
|
|
47
57
|
//# sourceMappingURL=utils.js.map
|