@skbkontur/react-ui 4.3.0 → 4.5.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/CHANGELOG.md +43 -0
- package/cjs/components/Autocomplete/Autocomplete.js +3 -1
- package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
- package/cjs/components/Checkbox/Checkbox.js +4 -2
- package/cjs/components/Checkbox/Checkbox.js.map +1 -1
- package/cjs/components/Checkbox/Checkbox.styles.d.ts +1 -1
- package/cjs/components/Checkbox/Checkbox.styles.js +1 -1
- package/cjs/components/Checkbox/Checkbox.styles.js.map +1 -1
- package/cjs/components/CurrencyInput/CurrencyInput.js +10 -4
- package/cjs/components/CurrencyInput/CurrencyInput.js.map +1 -1
- package/cjs/components/CurrencyInput/CurrencyInputKeyboardActions.d.ts +3 -1
- package/cjs/components/CurrencyInput/CurrencyInputKeyboardActions.js +14 -2
- package/cjs/components/CurrencyInput/CurrencyInputKeyboardActions.js.map +1 -1
- package/cjs/components/DateInput/DateFragmentsView.d.ts +1 -1
- package/cjs/components/DateInput/DateFragmentsView.js +10 -1
- package/cjs/components/DateInput/DateFragmentsView.js.map +1 -1
- package/cjs/components/DateInput/DateInput.d.ts +1 -1
- package/cjs/components/DateInput/DateInput.js +1 -1
- package/cjs/components/DateInput/DateInput.js.map +1 -1
- package/cjs/components/DateInput/helpers/DateInputKeyboardActions.js +1 -2
- package/cjs/components/DateInput/helpers/DateInputKeyboardActions.js.map +1 -1
- package/cjs/components/DateInput/helpers/SelectionHelpers.js +2 -2
- package/cjs/components/DateInput/helpers/SelectionHelpers.js.map +1 -1
- package/cjs/components/DatePicker/DatePicker.d.ts +1 -1
- package/cjs/components/DatePicker/DatePicker.js +11 -3
- package/cjs/components/DatePicker/DatePicker.js.map +1 -1
- package/cjs/components/DatePicker/Picker.js +5 -1
- package/cjs/components/DatePicker/Picker.js.map +1 -1
- package/cjs/components/FileUploader/FileUploader.d.ts +2 -1
- package/cjs/components/FileUploader/FileUploader.js +16 -3
- package/cjs/components/FileUploader/FileUploader.js.map +1 -1
- package/cjs/components/FileUploader/FileUploader.md +8 -1
- package/cjs/components/FxInput/FxInput.js +3 -1
- package/cjs/components/FxInput/FxInput.js.map +1 -1
- package/cjs/components/GlobalLoader/GlobalLoaderView.d.ts +2 -2
- package/cjs/components/GlobalLoader/GlobalLoaderView.js.map +1 -1
- package/cjs/components/Hint/Hint.d.ts +1 -1
- package/cjs/components/Hint/Hint.js.map +1 -1
- package/cjs/components/Hint/Hint.md +14 -0
- package/cjs/components/Input/Input.js +5 -2
- package/cjs/components/Input/Input.js.map +1 -1
- package/cjs/components/Input/Input.md +5 -1
- package/cjs/components/Input/Input.styles.d.ts +1 -0
- package/cjs/components/Input/Input.styles.js +17 -10
- package/cjs/components/Input/Input.styles.js.map +1 -1
- package/cjs/components/Kebab/Kebab.d.ts +1 -4
- package/cjs/components/Kebab/Kebab.js.map +1 -1
- package/cjs/components/Link/Link.d.ts +1 -3
- package/cjs/components/Link/Link.js +1 -1
- package/cjs/components/Link/Link.js.map +1 -1
- package/cjs/components/Loader/Loader.d.ts +2 -1
- package/cjs/components/Loader/Loader.js +1 -0
- package/cjs/components/Loader/Loader.js.map +1 -1
- package/cjs/components/Loader/__stories__/LoaderAndButton.js +6 -0
- package/cjs/components/Loader/__stories__/LoaderAndButton.js.map +1 -1
- package/cjs/components/MenuItem/MenuItem.js +3 -1
- package/cjs/components/MenuItem/MenuItem.js.map +1 -1
- package/cjs/components/Modal/Modal.js +2 -2
- package/cjs/components/Modal/Modal.js.map +1 -1
- package/cjs/components/Modal/Modal.styles.d.ts +2 -2
- package/cjs/components/Modal/Modal.styles.js +2 -2
- package/cjs/components/Modal/Modal.styles.js.map +1 -1
- package/cjs/components/Modal/ModalBody.js +2 -2
- package/cjs/components/Modal/ModalBody.js.map +1 -1
- package/cjs/components/Paging/Paging.d.ts +1 -1
- package/cjs/components/Paging/Paging.js +1 -1
- package/cjs/components/Paging/Paging.js.map +1 -1
- package/cjs/components/Paging/PagingDefaultComponent.d.ts +2 -2
- package/cjs/components/Paging/PagingDefaultComponent.js.map +1 -1
- package/cjs/components/PasswordInput/PasswordInput.js +7 -5
- package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
- package/cjs/components/Radio/Radio.js +3 -1
- package/cjs/components/Radio/Radio.js.map +1 -1
- package/cjs/components/ResponsiveLayout/ResponsiveLayout.d.ts +6 -5
- package/cjs/components/ResponsiveLayout/ResponsiveLayout.js +5 -9
- package/cjs/components/ResponsiveLayout/ResponsiveLayout.js.map +1 -1
- package/cjs/components/ResponsiveLayout/ResponsiveLayout.md +31 -0
- package/cjs/components/ResponsiveLayout/ResponsiveLayoutEvents.js +2 -2
- package/cjs/components/ResponsiveLayout/ResponsiveLayoutEvents.js.map +1 -1
- package/cjs/components/ResponsiveLayout/decorator.d.ts +1 -1
- package/cjs/components/ResponsiveLayout/types.d.ts +9 -1
- package/cjs/components/ResponsiveLayout/useResponsiveLayout.d.ts +2 -2
- package/cjs/components/ResponsiveLayout/useResponsiveLayout.js +31 -15
- package/cjs/components/ResponsiveLayout/useResponsiveLayout.js.map +1 -1
- package/cjs/components/ScrollContainer/ScrollContainer.d.ts +1 -1
- package/cjs/components/ScrollContainer/ScrollContainer.helpers.js +4 -4
- package/cjs/components/ScrollContainer/ScrollContainer.helpers.js.map +1 -1
- package/cjs/components/ScrollContainer/ScrollContainer.js +1 -1
- package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
- package/cjs/components/Select/Item.d.ts +4 -2
- package/cjs/components/Select/Item.js +3 -0
- package/cjs/components/Select/Item.js.map +1 -1
- package/cjs/components/Select/Select.js +2 -0
- package/cjs/components/Select/Select.js.map +1 -1
- package/cjs/components/SidePage/SidePageFooter.d.ts +6 -4
- package/cjs/components/SidePage/SidePageFooter.js +4 -0
- package/cjs/components/SidePage/SidePageFooter.js.map +1 -1
- package/cjs/components/Spinner/Spinner.js +1 -1
- package/cjs/components/Spinner/Spinner.js.map +1 -1
- package/cjs/components/Spinner/Spinner.styles.d.ts +1 -1
- package/cjs/components/Spinner/Spinner.styles.js +7 -7
- package/cjs/components/Spinner/Spinner.styles.js.map +1 -1
- package/cjs/components/Tabs/Indicator.d.ts +1 -1
- package/cjs/components/Tabs/Indicator.js +1 -1
- package/cjs/components/Tabs/Indicator.js.map +1 -1
- package/cjs/components/Tabs/Tabs.js.map +1 -1
- package/cjs/components/Textarea/Textarea.js +3 -1
- package/cjs/components/Textarea/Textarea.js.map +1 -1
- package/cjs/components/Textarea/TextareaCounter.d.ts +2 -2
- package/cjs/components/Textarea/TextareaCounter.js.map +1 -1
- package/cjs/components/Toast/Toast.js +1 -1
- package/cjs/components/Toast/Toast.js.map +1 -1
- package/cjs/components/Token/Token.styles.js +2 -1
- package/cjs/components/Token/Token.styles.js.map +1 -1
- package/cjs/components/TokenInput/TokenInput.d.ts +3 -0
- package/cjs/components/TokenInput/TokenInput.js +57 -15
- package/cjs/components/TokenInput/TokenInput.js.map +1 -1
- package/cjs/components/TokenInput/TokenInput.md +26 -0
- package/cjs/components/TokenInput/TokenInput.styles.js +2 -1
- package/cjs/components/TokenInput/TokenInput.styles.js.map +1 -1
- package/cjs/components/TokenInput/TokenInputMenu.d.ts +2 -1
- package/cjs/components/TokenInput/TokenInputMenu.js +1 -1
- package/cjs/components/TokenInput/TokenInputMenu.js.map +1 -1
- package/cjs/components/Tooltip/Tooltip.d.ts +2 -2
- package/cjs/components/Tooltip/Tooltip.js +2 -2
- package/cjs/components/Tooltip/Tooltip.js.map +1 -1
- package/cjs/components/TooltipMenu/TooltipMenu.d.ts +1 -1
- package/cjs/components/TooltipMenu/TooltipMenu.js.map +1 -1
- package/cjs/hooks/useEffectWithoutInitCall.d.ts +2 -2
- package/cjs/hooks/useEffectWithoutInitCall.js +2 -2
- package/cjs/hooks/useEffectWithoutInitCall.js.map +1 -1
- package/cjs/hooks/useMemoObject.d.ts +2 -1
- package/cjs/hooks/useMemoObject.js +2 -0
- package/cjs/hooks/useMemoObject.js.map +1 -1
- package/cjs/internal/BGRuler.d.ts +1 -1
- package/cjs/internal/BGRuler.js.map +1 -1
- package/cjs/internal/Calendar/MonthViewModel.d.ts +1 -1
- package/cjs/internal/Calendar/config.d.ts +1 -8
- package/cjs/internal/CommonWrapper/CommonWrapper.d.ts +1 -1
- package/cjs/internal/CommonWrapper/CommonWrapper.js +5 -4
- package/cjs/internal/CommonWrapper/CommonWrapper.js.map +1 -1
- package/cjs/internal/ComponentTable.d.ts +2 -2
- package/cjs/internal/ComponentTable.js +3 -1
- package/cjs/internal/ComponentTable.js.map +1 -1
- package/cjs/internal/CustomComboBox/ComboBoxMenu.d.ts +2 -2
- package/cjs/internal/CustomComboBox/ComboBoxMenu.js +8 -8
- package/cjs/internal/CustomComboBox/ComboBoxMenu.js.map +1 -1
- package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js +4 -5
- package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js.map +1 -1
- package/cjs/internal/DataTids/DataTids.d.ts +5 -5
- package/cjs/internal/DataTids/DataTids.js +4 -0
- package/cjs/internal/DataTids/DataTids.js.map +1 -1
- package/cjs/internal/DateSelect/DateSelect.js +1 -1
- package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
- package/cjs/internal/DropdownContainer/DropdownContainer.d.ts +1 -1
- package/cjs/internal/DropdownContainer/DropdownContainer.js.map +1 -1
- package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.d.ts +1 -1
- package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.js.map +1 -1
- package/cjs/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.js +2 -1
- package/cjs/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.js.map +1 -1
- package/cjs/internal/InputLikeText/InputLikeText.js +4 -2
- package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
- package/cjs/internal/InternalMenu/InternalMenu.js +21 -9
- package/cjs/internal/InternalMenu/InternalMenu.js.map +1 -1
- package/cjs/internal/MaskedInput/MaskedInput.d.ts +1 -0
- package/cjs/internal/MaskedInput/MaskedInput.js +13 -5
- package/cjs/internal/MaskedInput/MaskedInput.js.map +1 -1
- package/cjs/internal/Menu/Menu.js +7 -3
- package/cjs/internal/Menu/Menu.js.map +1 -1
- package/cjs/internal/MobilePopup/MobilePopup.js +1 -1
- package/cjs/internal/MobilePopup/MobilePopup.js.map +1 -1
- package/cjs/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js +1 -1
- package/cjs/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js.map +1 -1
- package/cjs/internal/PerformanceMetrics/PerformanceMetrics.js.map +1 -1
- package/cjs/internal/Popup/Popup.d.ts +1 -1
- package/cjs/internal/Popup/Popup.js +20 -15
- package/cjs/internal/Popup/Popup.js.map +1 -1
- package/cjs/internal/Popup/PopupHelper.d.ts +1 -1
- package/cjs/internal/Popup/PopupHelper.js.map +1 -1
- package/cjs/internal/Popup/PopupPin.d.ts +1 -1
- package/cjs/internal/Popup/PopupPin.js.map +1 -1
- package/cjs/internal/RenderLayer/RenderLayer.d.ts +1 -1
- package/cjs/internal/RenderLayer/RenderLayer.js.map +1 -1
- package/cjs/internal/ThemePlayground/AnotherInputsPlayground.d.ts +11 -6
- package/cjs/internal/ThemePlayground/AnotherInputsPlayground.js +7 -0
- package/cjs/internal/ThemePlayground/AnotherInputsPlayground.js.map +1 -1
- package/cjs/internal/ThemePlayground/CurrencyInputPlayground.d.ts +7 -6
- package/cjs/internal/ThemePlayground/CurrencyInputPlayground.js +2 -3
- package/cjs/internal/ThemePlayground/CurrencyInputPlayground.js.map +1 -1
- package/cjs/internal/ThemePlayground/FxInputPlayground.d.ts +6 -4
- package/cjs/internal/ThemePlayground/FxInputPlayground.js +5 -5
- package/cjs/internal/ThemePlayground/FxInputPlayground.js.map +1 -1
- package/cjs/internal/ThemePlayground/HintPlayground.d.ts +1 -1
- package/cjs/internal/ThemePlayground/HintPlayground.js.map +1 -1
- package/cjs/internal/ThemePlayground/PagingPlayground.d.ts +6 -6
- package/cjs/internal/ThemePlayground/PagingPlayground.js +5 -2
- package/cjs/internal/ThemePlayground/PagingPlayground.js.map +1 -1
- package/cjs/internal/ThemePlayground/Playground.d.ts +1 -1
- package/cjs/internal/ThemePlayground/Playground.js.map +1 -1
- package/cjs/internal/ThemePlayground/SelectPlayground.d.ts +9 -6
- package/cjs/internal/ThemePlayground/SelectPlayground.js +6 -0
- package/cjs/internal/ThemePlayground/SelectPlayground.js.map +1 -1
- package/cjs/internal/ThemePlayground/SizesGroup.d.ts +2 -2
- package/cjs/internal/ThemePlayground/SizesGroup.js +2 -0
- package/cjs/internal/ThemePlayground/SizesGroup.js.map +1 -1
- package/cjs/internal/ThemePlayground/SwitcherPlayground.d.ts +9 -8
- package/cjs/internal/ThemePlayground/SwitcherPlayground.js +6 -1
- package/cjs/internal/ThemePlayground/SwitcherPlayground.js.map +1 -1
- package/cjs/internal/ThemePlayground/ThemeContextPlayground.js +14 -4
- package/cjs/internal/ThemePlayground/ThemeContextPlayground.js.map +1 -1
- package/cjs/internal/ThemePlayground/ThemeEditor.d.ts +1 -4
- package/cjs/internal/ThemePlayground/ThemeEditor.js.map +1 -1
- package/cjs/internal/ThemePlayground/TogglePlayground.d.ts +2 -7
- package/cjs/internal/ThemePlayground/TogglePlayground.js +4 -10
- package/cjs/internal/ThemePlayground/TogglePlayground.js.map +1 -1
- package/cjs/internal/ThemePlayground/TokenInputPlayground.d.ts +6 -4
- package/cjs/internal/ThemePlayground/TokenInputPlayground.js +3 -0
- package/cjs/internal/ThemePlayground/TokenInputPlayground.js.map +1 -1
- package/cjs/internal/ThemePlayground/VariableValue.d.ts +1 -4
- package/cjs/internal/ThemePlayground/VariableValue.js.map +1 -1
- package/cjs/internal/ThemePlayground/helpers.d.ts +1 -1
- package/cjs/internal/ThemePlayground/helpers.js +4 -2
- package/cjs/internal/ThemePlayground/helpers.js.map +1 -1
- package/cjs/internal/ThemeShowcase/ThemeShowcase.js.map +1 -1
- package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
- package/cjs/internal/ZIndex/ZIndex.js +2 -9
- package/cjs/internal/ZIndex/ZIndex.js.map +1 -1
- package/cjs/internal/themes/DefaultTheme.d.ts +2 -0
- package/cjs/internal/themes/DefaultTheme.js +8 -2
- package/cjs/internal/themes/DefaultTheme.js.map +1 -1
- package/cjs/lib/ConditionalHandler.js.map +1 -1
- package/cjs/lib/InstanceWithAnchorElement.d.ts +1 -1
- package/cjs/lib/InstanceWithAnchorElement.js.map +1 -1
- package/cjs/lib/ModalStack.js +2 -2
- package/cjs/lib/ModalStack.js.map +1 -1
- package/cjs/lib/SSRSafe.d.ts +2 -1
- package/cjs/lib/SSRSafe.js +9 -1
- package/cjs/lib/SSRSafe.js.map +1 -1
- package/cjs/lib/animation/index.js +1 -0
- package/cjs/lib/animation/index.js.map +1 -1
- package/cjs/lib/callChildRef/callChildRef.js +1 -1
- package/cjs/lib/callChildRef/callChildRef.js.map +1 -1
- package/cjs/lib/createPropsGetter.d.ts +1 -1
- package/cjs/lib/createPropsGetter.js +1 -0
- package/cjs/lib/createPropsGetter.js.map +1 -1
- package/cjs/lib/date/InternalDateCalculator.d.ts +1 -1
- package/cjs/lib/date/InternalDateCalculator.js +1 -1
- package/cjs/lib/date/InternalDateCalculator.js.map +1 -1
- package/cjs/lib/date/InternalDateValidator.d.ts +1 -1
- package/cjs/lib/date/InternalDateValidator.js +9 -2
- package/cjs/lib/date/InternalDateValidator.js.map +1 -1
- package/cjs/lib/extractKeyboardAction.d.ts +1 -1
- package/cjs/lib/extractKeyboardAction.js.map +1 -1
- package/cjs/lib/filterProps.js +0 -1
- package/cjs/lib/filterProps.js.map +1 -1
- package/cjs/lib/listenFocusOutside.d.ts +1 -1
- package/cjs/lib/listenFocusOutside.js.map +1 -1
- package/cjs/lib/locale/useLocaleForControl.d.ts +1 -1
- package/cjs/lib/locale/useLocaleForControl.js.map +1 -1
- package/cjs/lib/memo.d.ts +3 -1
- package/cjs/lib/memo.js +3 -3
- package/cjs/lib/memo.js.map +1 -1
- package/cjs/lib/net/fetch.js +2 -2
- package/cjs/lib/net/fetch.js.map +1 -1
- package/cjs/lib/reactGetTextContent.js +0 -1
- package/cjs/lib/reactGetTextContent.js.map +1 -1
- package/cjs/lib/rootNode/getRootNode.d.ts +3 -3
- package/cjs/lib/rootNode/getRootNode.js +7 -7
- package/cjs/lib/rootNode/getRootNode.js.map +1 -1
- package/cjs/lib/rootNode/rootNodeDecorator.d.ts +9 -9
- package/cjs/lib/rootNode/rootNodeDecorator.js.map +1 -1
- package/cjs/lib/styles/ColorFactory.js +2 -2
- package/cjs/lib/styles/ColorFactory.js.map +1 -1
- package/cjs/lib/styles/ColorFunctions.js.map +1 -1
- package/cjs/lib/theming/AnimationKeyframes.d.ts +3 -5
- package/cjs/lib/theming/AnimationKeyframes.js +8 -22
- package/cjs/lib/theming/AnimationKeyframes.js.map +1 -1
- package/cjs/lib/theming/Emotion.js +1 -0
- package/cjs/lib/theming/Emotion.js.map +1 -1
- package/cjs/lib/theming/ThemeFactory.d.ts +1 -1
- package/cjs/lib/theming/ThemeFactory.js +3 -1
- package/cjs/lib/theming/ThemeFactory.js.map +1 -1
- package/cjs/lib/theming/ThemeHelpers.d.ts +2 -2
- package/cjs/lib/theming/ThemeHelpers.js +1 -1
- package/cjs/lib/theming/ThemeHelpers.js.map +1 -1
- package/cjs/lib/utils.d.ts +3 -1
- package/cjs/lib/utils.js +5 -2
- package/cjs/lib/utils.js.map +1 -1
- package/cjs/lib/withClassWrapper.js +1 -4
- package/cjs/lib/withClassWrapper.js.map +1 -1
- package/cjs/typings/event-types.d.ts +2 -2
- package/components/Autocomplete/Autocomplete/Autocomplete.js +4 -1
- package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
- package/components/Checkbox/Checkbox/Checkbox.js +5 -2
- package/components/Checkbox/Checkbox/Checkbox.js.map +1 -1
- package/components/Checkbox/Checkbox.styles/Checkbox.styles.js +1 -1
- package/components/Checkbox/Checkbox.styles/Checkbox.styles.js.map +1 -1
- package/components/Checkbox/Checkbox.styles.d.ts +1 -1
- package/components/CurrencyInput/CurrencyInput/CurrencyInput.js +15 -3
- package/components/CurrencyInput/CurrencyInput/CurrencyInput.js.map +1 -1
- package/components/CurrencyInput/CurrencyInputKeyboardActions/CurrencyInputKeyboardActions.js +4 -2
- package/components/CurrencyInput/CurrencyInputKeyboardActions/CurrencyInputKeyboardActions.js.map +1 -1
- package/components/CurrencyInput/CurrencyInputKeyboardActions.d.ts +3 -1
- package/components/DateInput/DateFragmentsView/DateFragmentsView.js +11 -1
- package/components/DateInput/DateFragmentsView/DateFragmentsView.js.map +1 -1
- package/components/DateInput/DateFragmentsView.d.ts +1 -1
- package/components/DateInput/DateInput/DateInput.js +1 -1
- package/components/DateInput/DateInput/DateInput.js.map +1 -1
- package/components/DateInput/DateInput.d.ts +1 -1
- package/components/DateInput/helpers/DateInputKeyboardActions/DateInputKeyboardActions.js +0 -1
- package/components/DateInput/helpers/DateInputKeyboardActions/DateInputKeyboardActions.js.map +1 -1
- package/components/DateInput/helpers/SelectionHelpers/SelectionHelpers.js +2 -2
- package/components/DateInput/helpers/SelectionHelpers/SelectionHelpers.js.map +1 -1
- package/components/DatePicker/DatePicker/DatePicker.js +13 -12
- package/components/DatePicker/DatePicker/DatePicker.js.map +1 -1
- package/components/DatePicker/DatePicker.d.ts +1 -1
- package/components/DatePicker/Picker/Picker.js +5 -1
- package/components/DatePicker/Picker/Picker.js.map +1 -1
- package/components/FileUploader/FileUploader/FileUploader.js +9 -4
- package/components/FileUploader/FileUploader/FileUploader.js.map +1 -1
- package/components/FileUploader/FileUploader.d.ts +2 -1
- package/components/FileUploader/FileUploader.md +8 -1
- package/components/FxInput/FxInput/FxInput.js +4 -1
- package/components/FxInput/FxInput/FxInput.js.map +1 -1
- package/components/GlobalLoader/GlobalLoaderView/GlobalLoaderView.js.map +1 -1
- package/components/GlobalLoader/GlobalLoaderView.d.ts +2 -2
- package/components/Hint/Hint/Hint.js.map +1 -1
- package/components/Hint/Hint.d.ts +1 -1
- package/components/Hint/Hint.md +14 -0
- package/components/Input/Input/Input.js +5 -2
- package/components/Input/Input/Input.js.map +1 -1
- package/components/Input/Input.md +5 -1
- package/components/Input/Input.styles/Input.styles.js +13 -10
- package/components/Input/Input.styles/Input.styles.js.map +1 -1
- package/components/Input/Input.styles.d.ts +1 -0
- package/components/Kebab/Kebab/Kebab.js.map +1 -1
- package/components/Kebab/Kebab.d.ts +1 -4
- package/components/Link/Link/Link.js +1 -1
- package/components/Link/Link/Link.js.map +1 -1
- package/components/Link/Link.d.ts +1 -3
- package/components/Loader/Loader/Loader.js.map +1 -1
- package/components/Loader/Loader.d.ts +2 -1
- package/components/Loader/__stories__/LoaderAndButton/LoaderAndButton.js.map +1 -1
- package/components/MenuItem/MenuItem/MenuItem.js +4 -1
- package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
- package/components/Modal/Modal/Modal.js +2 -2
- package/components/Modal/Modal/Modal.js.map +1 -1
- package/components/Modal/Modal.styles/Modal.styles.js +2 -2
- package/components/Modal/Modal.styles/Modal.styles.js.map +1 -1
- package/components/Modal/Modal.styles.d.ts +2 -2
- package/components/Modal/ModalBody/ModalBody.js +2 -2
- package/components/Modal/ModalBody/ModalBody.js.map +1 -1
- package/components/Paging/Paging/Paging.js +1 -1
- package/components/Paging/Paging/Paging.js.map +1 -1
- package/components/Paging/Paging.d.ts +1 -1
- package/components/Paging/PagingDefaultComponent/PagingDefaultComponent.js.map +1 -1
- package/components/Paging/PagingDefaultComponent.d.ts +2 -2
- package/components/PasswordInput/PasswordInput/PasswordInput.js +7 -8
- package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
- package/components/Radio/Radio/Radio.js +4 -1
- package/components/Radio/Radio/Radio.js.map +1 -1
- package/components/ResponsiveLayout/ResponsiveLayout/ResponsiveLayout.js +5 -8
- package/components/ResponsiveLayout/ResponsiveLayout/ResponsiveLayout.js.map +1 -1
- package/components/ResponsiveLayout/ResponsiveLayout.d.ts +6 -5
- package/components/ResponsiveLayout/ResponsiveLayout.md +31 -0
- package/components/ResponsiveLayout/ResponsiveLayoutEvents/ResponsiveLayoutEvents.js +3 -1
- package/components/ResponsiveLayout/ResponsiveLayoutEvents/ResponsiveLayoutEvents.js.map +1 -1
- package/components/ResponsiveLayout/decorator.d.ts +1 -1
- package/components/ResponsiveLayout/types.d.ts +9 -1
- package/components/ResponsiveLayout/useResponsiveLayout/useResponsiveLayout.js +42 -17
- package/components/ResponsiveLayout/useResponsiveLayout/useResponsiveLayout.js.map +1 -1
- package/components/ResponsiveLayout/useResponsiveLayout.d.ts +2 -2
- package/components/ScrollContainer/ScrollContainer/ScrollContainer.js +1 -1
- package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
- package/components/ScrollContainer/ScrollContainer.d.ts +1 -1
- package/components/ScrollContainer/ScrollContainer.helpers/ScrollContainer.helpers.js +4 -4
- package/components/ScrollContainer/ScrollContainer.helpers/ScrollContainer.helpers.js.map +1 -1
- package/components/Select/Item/Item.js.map +1 -1
- package/components/Select/Item.d.ts +4 -2
- package/components/Select/Select/Select.js.map +1 -1
- package/components/SidePage/SidePageFooter/SidePageFooter.js.map +1 -1
- package/components/SidePage/SidePageFooter.d.ts +6 -4
- package/components/Spinner/Spinner/Spinner.js +1 -1
- package/components/Spinner/Spinner/Spinner.js.map +1 -1
- package/components/Spinner/Spinner.styles/Spinner.styles.js +3 -3
- package/components/Spinner/Spinner.styles/Spinner.styles.js.map +1 -1
- package/components/Spinner/Spinner.styles.d.ts +1 -1
- package/components/Tabs/Indicator/Indicator.js +1 -1
- package/components/Tabs/Indicator/Indicator.js.map +1 -1
- package/components/Tabs/Indicator.d.ts +1 -1
- package/components/Tabs/Tabs/Tabs.js.map +1 -1
- package/components/Textarea/Textarea/Textarea.js +4 -1
- package/components/Textarea/Textarea/Textarea.js.map +1 -1
- package/components/Textarea/TextareaCounter/TextareaCounter.js.map +1 -1
- package/components/Textarea/TextareaCounter.d.ts +2 -2
- package/components/Toast/Toast/Toast.js +1 -1
- package/components/Toast/Toast/Toast.js.map +1 -1
- package/components/Token/Token.styles/Token.styles.js +1 -1
- package/components/Token/Token.styles/Token.styles.js.map +1 -1
- package/components/TokenInput/TokenInput/TokenInput.js +82 -19
- package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
- package/components/TokenInput/TokenInput.d.ts +3 -0
- package/components/TokenInput/TokenInput.md +26 -0
- package/components/TokenInput/TokenInput.styles/TokenInput.styles.js +1 -1
- package/components/TokenInput/TokenInput.styles/TokenInput.styles.js.map +1 -1
- package/components/TokenInput/TokenInputMenu/TokenInputMenu.js +1 -1
- package/components/TokenInput/TokenInputMenu/TokenInputMenu.js.map +1 -1
- package/components/TokenInput/TokenInputMenu.d.ts +2 -1
- package/components/Tooltip/Tooltip/Tooltip.js +2 -2
- package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
- package/components/Tooltip/Tooltip.d.ts +2 -2
- package/components/TooltipMenu/TooltipMenu/TooltipMenu.js.map +1 -1
- package/components/TooltipMenu/TooltipMenu.d.ts +1 -1
- package/hooks/useEffectWithoutInitCall/useEffectWithoutInitCall.js +2 -2
- package/hooks/useEffectWithoutInitCall/useEffectWithoutInitCall.js.map +1 -1
- package/hooks/useEffectWithoutInitCall.d.ts +2 -2
- package/hooks/useMemoObject/useMemoObject.js.map +1 -1
- package/hooks/useMemoObject.d.ts +2 -1
- package/internal/BGRuler/BGRuler.js.map +1 -1
- package/internal/BGRuler.d.ts +1 -1
- package/internal/Calendar/MonthViewModel.d.ts +1 -1
- package/internal/Calendar/config.d.ts +1 -8
- package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js +3 -2
- package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js.map +1 -1
- package/internal/CommonWrapper/CommonWrapper.d.ts +1 -1
- package/internal/ComponentTable/ComponentTable.js.map +1 -1
- package/internal/ComponentTable.d.ts +2 -2
- package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js +14 -17
- package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js.map +1 -1
- package/internal/CustomComboBox/ComboBoxMenu.d.ts +2 -2
- package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js +4 -5
- package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js.map +1 -1
- package/internal/DataTids/DataTids/DataTids.js.map +1 -1
- package/internal/DataTids/DataTids.d.ts +5 -5
- package/internal/DateSelect/DateSelect/DateSelect.js +1 -1
- package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
- package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js.map +1 -1
- package/internal/DropdownContainer/DropdownContainer.d.ts +1 -1
- package/internal/FileUploaderControl/withFileUploaderControlProvider/withFileUploaderControlProvider.js.map +1 -1
- package/internal/FileUploaderControl/withFileUploaderControlProvider.d.ts +1 -1
- package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll/HideBodyVerticalScroll.js +2 -1
- package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll/HideBodyVerticalScroll.js.map +1 -1
- package/internal/InputLikeText/InputLikeText/InputLikeText.js +5 -2
- package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
- package/internal/InternalMenu/InternalMenu/InternalMenu.js +17 -7
- package/internal/InternalMenu/InternalMenu/InternalMenu.js.map +1 -1
- package/internal/MaskedInput/MaskedInput/MaskedInput.js +13 -6
- package/internal/MaskedInput/MaskedInput/MaskedInput.js.map +1 -1
- package/internal/MaskedInput/MaskedInput.d.ts +1 -0
- package/internal/Menu/Menu/Menu.js +6 -1
- package/internal/Menu/Menu/Menu.js.map +1 -1
- package/internal/MobilePopup/MobilePopup/MobilePopup.js +1 -1
- package/internal/MobilePopup/MobilePopup/MobilePopup.js.map +1 -1
- package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader/MobilePopupHeader.js +1 -1
- package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader/MobilePopupHeader.js.map +1 -1
- package/internal/PerformanceMetrics/PerformanceMetrics/PerformanceMetrics.js.map +1 -1
- package/internal/Popup/Popup/Popup.js +20 -12
- package/internal/Popup/Popup/Popup.js.map +1 -1
- package/internal/Popup/Popup.d.ts +1 -1
- package/internal/Popup/PopupHelper/PopupHelper.js.map +1 -1
- package/internal/Popup/PopupHelper.d.ts +1 -1
- package/internal/Popup/PopupPin/PopupPin.js.map +1 -1
- package/internal/Popup/PopupPin.d.ts +1 -1
- package/internal/RenderLayer/RenderLayer/RenderLayer.js.map +1 -1
- package/internal/RenderLayer/RenderLayer.d.ts +1 -1
- package/internal/ThemePlayground/AnotherInputsPlayground/AnotherInputsPlayground.js.map +1 -1
- package/internal/ThemePlayground/AnotherInputsPlayground.d.ts +11 -6
- package/internal/ThemePlayground/CurrencyInputPlayground/CurrencyInputPlayground.js.map +1 -1
- package/internal/ThemePlayground/CurrencyInputPlayground.d.ts +7 -6
- package/internal/ThemePlayground/FxInputPlayground/FxInputPlayground.js +10 -6
- package/internal/ThemePlayground/FxInputPlayground/FxInputPlayground.js.map +1 -1
- package/internal/ThemePlayground/FxInputPlayground.d.ts +6 -4
- package/internal/ThemePlayground/HintPlayground/HintPlayground.js.map +1 -1
- package/internal/ThemePlayground/HintPlayground.d.ts +1 -1
- package/internal/ThemePlayground/PagingPlayground/PagingPlayground.js +2 -2
- package/internal/ThemePlayground/PagingPlayground/PagingPlayground.js.map +1 -1
- package/internal/ThemePlayground/PagingPlayground.d.ts +6 -6
- package/internal/ThemePlayground/Playground/Playground.js.map +1 -1
- package/internal/ThemePlayground/Playground.d.ts +1 -1
- package/internal/ThemePlayground/SelectPlayground/SelectPlayground.js.map +1 -1
- package/internal/ThemePlayground/SelectPlayground.d.ts +9 -6
- package/internal/ThemePlayground/SizesGroup/SizesGroup.js.map +1 -1
- package/internal/ThemePlayground/SizesGroup.d.ts +2 -2
- package/internal/ThemePlayground/SwitcherPlayground/SwitcherPlayground.js.map +1 -1
- package/internal/ThemePlayground/SwitcherPlayground.d.ts +9 -8
- package/internal/ThemePlayground/ThemeContextPlayground/ThemeContextPlayground.js +13 -3
- package/internal/ThemePlayground/ThemeContextPlayground/ThemeContextPlayground.js.map +1 -1
- package/internal/ThemePlayground/ThemeEditor/ThemeEditor.js.map +1 -1
- package/internal/ThemePlayground/ThemeEditor.d.ts +1 -4
- package/internal/ThemePlayground/TogglePlayground/TogglePlayground.js +5 -17
- package/internal/ThemePlayground/TogglePlayground/TogglePlayground.js.map +1 -1
- package/internal/ThemePlayground/TogglePlayground.d.ts +2 -7
- package/internal/ThemePlayground/TokenInputPlayground/TokenInputPlayground.js.map +1 -1
- package/internal/ThemePlayground/TokenInputPlayground.d.ts +6 -4
- package/internal/ThemePlayground/VariableValue/VariableValue.js.map +1 -1
- package/internal/ThemePlayground/VariableValue.d.ts +1 -4
- package/internal/ThemePlayground/helpers/helpers.js +0 -1
- package/internal/ThemePlayground/helpers/helpers.js.map +1 -1
- package/internal/ThemePlayground/helpers.d.ts +1 -1
- package/internal/ThemeShowcase/ThemeShowcase/ThemeShowcase.js.map +1 -1
- package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
- package/internal/ZIndex/ZIndex/ZIndex.js +6 -3
- package/internal/ZIndex/ZIndex/ZIndex.js.map +1 -1
- package/internal/themes/DefaultTheme/DefaultTheme.js +16 -6
- package/internal/themes/DefaultTheme/DefaultTheme.js.map +1 -1
- package/internal/themes/DefaultTheme.d.ts +2 -0
- package/lib/ConditionalHandler/ConditionalHandler.js.map +1 -1
- package/lib/InstanceWithAnchorElement/InstanceWithAnchorElement.js.map +1 -1
- package/lib/InstanceWithAnchorElement.d.ts +1 -1
- package/lib/ModalStack/ModalStack.js +2 -2
- package/lib/ModalStack/ModalStack.js.map +1 -1
- package/lib/SSRSafe/SSRSafe.js +7 -0
- package/lib/SSRSafe/SSRSafe.js.map +1 -1
- package/lib/SSRSafe.d.ts +2 -1
- package/lib/animation/index/index.js +1 -1
- package/lib/animation/index/index.js.map +1 -1
- package/lib/callChildRef/callChildRef/callChildRef.js +1 -1
- package/lib/callChildRef/callChildRef/callChildRef.js.map +1 -1
- package/lib/createPropsGetter/createPropsGetter.js +1 -0
- package/lib/createPropsGetter/createPropsGetter.js.map +1 -1
- package/lib/createPropsGetter.d.ts +1 -1
- package/lib/date/InternalDateCalculator/InternalDateCalculator.js +1 -2
- package/lib/date/InternalDateCalculator/InternalDateCalculator.js.map +1 -1
- package/lib/date/InternalDateCalculator.d.ts +1 -1
- package/lib/date/InternalDateValidator/InternalDateValidator.js +8 -2
- package/lib/date/InternalDateValidator/InternalDateValidator.js.map +1 -1
- package/lib/date/InternalDateValidator.d.ts +1 -1
- package/lib/extractKeyboardAction/extractKeyboardAction.js.map +1 -1
- package/lib/extractKeyboardAction.d.ts +1 -1
- package/lib/filterProps/filterProps.js +0 -1
- package/lib/filterProps/filterProps.js.map +1 -1
- package/lib/listenFocusOutside/listenFocusOutside.js.map +1 -1
- package/lib/listenFocusOutside.d.ts +1 -1
- package/lib/locale/useLocaleForControl/useLocaleForControl.js.map +1 -1
- package/lib/locale/useLocaleForControl.d.ts +1 -1
- package/lib/memo/memo.js +2 -4
- package/lib/memo/memo.js.map +1 -1
- package/lib/memo.d.ts +3 -1
- package/lib/net/fetch/fetch.js +2 -2
- package/lib/net/fetch/fetch.js.map +1 -1
- package/lib/reactGetTextContent/reactGetTextContent.js +0 -1
- package/lib/reactGetTextContent/reactGetTextContent.js.map +1 -1
- package/lib/rootNode/getRootNode/getRootNode.js +8 -8
- package/lib/rootNode/getRootNode/getRootNode.js.map +1 -1
- package/lib/rootNode/getRootNode.d.ts +3 -3
- package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js.map +1 -1
- package/lib/rootNode/rootNodeDecorator.d.ts +9 -9
- package/lib/styles/ColorFactory/ColorFactory.js +3 -1
- package/lib/styles/ColorFactory/ColorFactory.js.map +1 -1
- package/lib/styles/ColorFunctions/ColorFunctions.js.map +1 -1
- package/lib/theming/AnimationKeyframes/AnimationKeyframes.js +8 -14
- package/lib/theming/AnimationKeyframes/AnimationKeyframes.js.map +1 -1
- package/lib/theming/AnimationKeyframes.d.ts +3 -5
- package/lib/theming/Emotion/Emotion.js.map +1 -1
- package/lib/theming/ThemeFactory/ThemeFactory.js +4 -1
- package/lib/theming/ThemeFactory/ThemeFactory.js.map +1 -1
- package/lib/theming/ThemeFactory.d.ts +1 -1
- package/lib/theming/ThemeHelpers/ThemeHelpers.js +1 -1
- package/lib/theming/ThemeHelpers/ThemeHelpers.js.map +1 -1
- package/lib/theming/ThemeHelpers.d.ts +2 -2
- package/lib/utils/utils.js +2 -2
- package/lib/utils/utils.js.map +1 -1
- package/lib/utils.d.ts +3 -1
- package/lib/withClassWrapper/withClassWrapper.js +1 -4
- package/lib/withClassWrapper/withClassWrapper.js.map +1 -1
- package/package.json +3 -20
- package/typings/event-types.d.ts +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["ComboBoxMenu.tsx"],"names":["React","Component","isNullable","locale","Menu","MenuItem","Spinner","MenuSeparator","createPropsGetter","ComboBoxRequestStatus","CustomComboBoxLocaleHelper","ComboBoxMenuDataTids","loading","failed","notFound","items","item","ComboBoxMenu","getProps","defaultProps","renderItem","index","props","onValueChange","isValidElement","element","Object","assign","key","onClick","cloneElement","isMobile","state","render","opened","totalCount","refMenu","renderNotFound","renderTotalCount","maxMenuHeight","requestStatus","errorNetworkButton","errorNetworkMessage","renderAddButton","maxHeight","length","Failed","maxWidth","whiteSpace","repeatRequest","notFoundValue","total","renderedItems","map","countItems","filter","type","__KONTUR_REACT_UI__","fontSize","undefined","Unknown"],"mappings":"uGAAA,OAAOA,KAAP,IAAgBC,SAAhB,QAAiC,OAAjC;;AAEA,SAASC,UAAT,QAA2B,iBAA3B;AACA,SAASC,MAAT,QAAuB,6BAAvB;AACA,SAASC,IAAT,QAAqB,SAArB;AACA,SAASC,QAAT,QAAwC,2BAAxC;AACA,SAASC,OAAT,QAAwB,0BAAxB;;AAEA,SAASC,aAAT,QAA8B,gCAA9B;AACA,SAASC,iBAAT,QAAkC,6BAAlC;;AAEA,SAASC,qBAAT,QAAsC,uBAAtC;AACA,SAAyBC,0BAAzB,QAA2D,UAA3D;;;;;;;;;;;;;;;;;;;;AAoBA,OAAO,IAAMC,oBAAoB,GAAG;AAClCC,EAAAA,OAAO,EAAE,uBADyB;AAElCC,EAAAA,MAAM,EAAE,sBAF0B;AAGlCC,EAAAA,QAAQ,EAAE,wBAHwB;AAIlCC,EAAAA,KAAK,EAAE,qBAJ2B;AAKlCC,EAAAA,IAAI,EAAE,oBAL4B,EAA7B;;;;;;AAWP,WAAaC,YAAb,WADCd,MAAM,CAAC,UAAD,EAAaO,0BAAb,CACP;;;;;;;;AAQUQ,IAAAA,QARV,GAQqBV,iBAAiB,CAACS,YAAY,CAACE,YAAd,CARtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsHUC,IAAAA,UAtHV,GAsHuB,UAACJ,IAAD,EAAUK,KAAV,EAA6C;AAChE;AACA;AACA,wBAAsC,MAAKC,KAA3C,CAAQF,UAAR,eAAQA,UAAR,CAAoBG,aAApB,eAAoBA,aAApB;AACA,UAAI,OAAOP,IAAP,KAAgB,UAAhB,iBAA8BhB,KAAK,CAACwB,cAAN,CAAqBR,IAArB,CAAlC,EAA8D;AAC5D;AACA,YAAMS,OAAO,GAAG,OAAOT,IAAP,KAAgB,UAAhB,GAA6BA,IAAI,EAAjC,GAAsCA,IAAtD;AACA,YAAMM,KAAK,GAAGI,MAAM,CAACC,MAAP;AACZ;AACEC,UAAAA,GAAG,EAAEP,KADP;AAEEQ,UAAAA,OAAO,EAAE,2BAAMN,aAAa,CAACE,OAAO,CAACH,KAAT,CAAnB,EAFX,EADY;;AAKZG,QAAAA,OAAO,CAACH,KALI,CAAd;;AAOA,4BAAOtB,KAAK,CAAC8B,YAAN,CAAmBL,OAAnB,EAA4BH,KAA5B,CAAP;AACD;;AAED;AACE,4BAAC,QAAD;AACE,sBAAUX,oBAAoB,CAACK,IADjC;AAEE,UAAA,OAAO,EAAE,2BAAMO,aAAa,CAACP,IAAD,CAAnB,EAFX;AAGE,UAAA,GAAG,EAAEK,KAHP;AAIE,UAAA,QAAQ,EAAE,MAAKC,KAAL,CAAWS,QAJvB;;AAMG,kBAACC,KAAD,UAAWZ,UAAU,CAACJ,IAAD,EAAOgB,KAAP,CAArB,EANH,CADF;;;AAUD,KAjJH,0DAYSC,MAZT,GAYE,kBAAgB,CACd,mBAUI,KAAKX,KAVT,CACEY,MADF,gBACEA,MADF,CAEEnB,KAFF,gBAEEA,KAFF,CAGEoB,UAHF,gBAGEA,UAHF,CAIEvB,OAJF,gBAIEA,OAJF,CAKEwB,OALF,gBAKEA,OALF,sCAMEC,cANF,CAMEA,cANF,sCAMmB,oBAAMvB,QAAN,EANnB,yBAOEwB,gBAPF,gBAOEA,gBAPF,CAQEC,aARF,gBAQEA,aARF,CASER,QATF,gBASEA,QATF,CAYA,IAAMS,aAAa,GAAG,KAAKtB,QAAL,GAAgBsB,aAAtC,CAEA,mBAA8D,KAAKrC,MAAnE,CAAQW,QAAR,gBAAQA,QAAR,CAAkB2B,kBAAlB,gBAAkBA,kBAAlB,CAAsCC,mBAAtC,gBAAsCA,mBAAtC,CAEA,IAAI,CAACR,MAAL,EAAa,CACX,OAAO,IAAP,CACD,CAED,IAAIS,eAAe,GAAG,IAAtB,CACA,IAAI,KAAKrB,KAAL,CAAWqB,eAAf,EAAgC,CAC9BA,eAAe,GAAG,KAAKrB,KAAL,CAAWqB,eAAX,EAAlB,CACD,CAED,IAAMC,SAAS,GAAGb,QAAQ,GAAG,MAAH,GAAYQ,aAAtC,CAEA,IAAI3B,OAAO,KAAK,CAACG,KAAD,IAAU,CAACA,KAAK,CAAC8B,MAAtB,CAAX,EAA0C,CACxC,oBACE,oBAAC,IAAD,IACE,SAAS,EAAED,SADb,EAEE,GAAG,EAAER,OAFP,EAGE,sBAAsB,EAAEL,QAH1B,EAIE,YAAUpB,oBAAoB,CAACC,OAJjC,iBAME,oBAAC,QAAD,IAAU,QAAQ,MAAlB,EAAmB,QAAQ,EAAEmB,QAA7B,iBACE,oBAAC,OAAD,IAAS,IAAI,EAAC,MAAd,EAAqB,MAAM,MAA3B,GADF,CANF,CADF,CAYD,CAED,IAAIhB,KAAK,KAAK,IAAV,IAAkByB,aAAa,KAAK/B,qBAAqB,CAACqC,MAA9D,EAAsE,CACpE,oBACE,oBAAC,IAAD,IACE,GAAG,EAAEV,OADP,EAEE,SAAS,EAAEQ,SAFb,EAGE,sBAAsB,EAAEb,QAH1B,EAIE,YAAUpB,oBAAoB,CAACE,MAJjC,iBAME,oBAAC,QAAD,IAAU,QAAQ,MAAlB,EAAmB,GAAG,EAAC,SAAvB,EAAiC,QAAQ,EAAEkB,QAA3C,iBACE,6BAAK,KAAK,EAAE,EAAEgB,QAAQ,EAAE,GAAZ,EAAiBC,UAAU,EAAE,QAA7B,EAAZ,IAAsDN,mBAAtD,CADF,CANF,eASE,oBAAC,QAAD,IAAU,IAAI,MAAd,EAAe,OAAO,EAAE,KAAKxB,QAAL,GAAgB+B,aAAxC,EAAuD,GAAG,EAAC,OAA3D,EAAmE,QAAQ,EAAElB,QAA7E,IACGU,kBADH,CATF,CADF,CAeD,CAED,IAAI,CAACvC,UAAU,CAACa,KAAD,CAAV,IAAqBA,KAAK,CAAC8B,MAAN,KAAiB,CAAvC,KAA6CR,cAAjD,EAAiE,CAC/D,IAAMa,aAAa,GAAGb,cAAc,EAApC,CACA,IAAIM,eAAJ,EAAqB,CACnB,oBACE,oBAAC,IAAD,IAAM,SAAS,EAAEC,SAAjB,EAA4B,GAAG,EAAER,OAAjC,EAA0C,sBAAsB,EAAEL,QAAlE,IACGY,eADH,CADF,CAKD,CAED,IAAIO,aAAJ,EAAmB,CACjB,oBACE,oBAAC,IAAD,IAAM,SAAS,EAAEN,SAAjB,EAA4B,GAAG,EAAER,OAAjC,EAA0C,sBAAsB,EAAEL,QAAlE,iBACE,oBAAC,QAAD,IAAU,YAAUpB,oBAAoB,CAACG,QAAzC,EAAmD,QAAQ,MAA3D,EAA4D,QAAQ,EAAEiB,QAAtE,IACGmB,aADH,CADF,CADF,CAOD,CAED,OAAO,IAAP,CACD,CAED,IAAIC,KAAK,GAAG,IAAZ,CACA,IAAMC,aAAa,GAAGrC,KAAK,IAAIA,KAAK,CAACsC,GAAN,CAAU,KAAKjC,UAAf,CAA/B,CArFc,CAsFd;AACA,QAAMkC,UAAU,GAAGF,aAAH,oBAAGA,aAAa,CAAEG,MAAf,CAAsB,UAACvC,IAAD,yBAAU,CAAAA,IAAI,QAAJ,0BAAAA,IAAI,CAAEwC,IAAN,gCAAYC,mBAAZ,MAAoC,UAA9C,EAAtB,EAAgFZ,MAAnG,CAEA,IAAIS,UAAU,IAAIhB,gBAAd,IAAkCH,UAAlC,IAAgDmB,UAAU,GAAGnB,UAAjE,EAA6E,CAC3EgB,KAAK,gBACH,oBAAC,QAAD,IAAU,QAAQ,MAAlB,EAAmB,GAAG,EAAC,OAAvB,EAA+B,QAAQ,EAAEpB,QAAzC,iBACE,6BAAK,KAAK,EAAE,EAAE2B,QAAQ,EAAE,EAAZ,EAAZ,IAA+BpB,gBAAgB,CAACgB,UAAD,EAAanB,UAAb,CAA/C,CADF,CADF,CAKD,CAED,oBACE,oBAAC,IAAD,IAAM,YAAUxB,oBAAoB,CAACI,KAArC,EAA4C,GAAG,EAAEqB,OAAjD,EAA0D,SAAS,EAAEQ,SAArE,EAAgF,sBAAsB,EAAEb,QAAxG,IACGqB,aADH,EAEGD,KAFH,EAGGR,eAAe,IAAI,cAAC,oBAAC,aAAD,IAAe,GAAG,EAAC,WAAnB,GAAD,EAAoCA,eAApC,CAHtB,CADF,CAOD,CApHH,uBAAqC1C,SAArC,WACgBwD,mBADhB,GACsC,cADtC,UAGgBtC,YAHhB,GAGsD,EAClD8B,aAAa,EAAE,iCAAMU,SAAN,EADmC,EAElDnB,aAAa,EAAE/B,qBAAqB,CAACmD,OAFa,EAHtD","sourcesContent":["import React, { Component } from 'react';\n\nimport { isNullable } from '../../lib/utils';\nimport { locale } from '../../lib/locale/decorators';\nimport { Menu } from '../Menu';\nimport { MenuItem, MenuItemState } from '../../components/MenuItem';\nimport { Spinner } from '../../components/Spinner';\nimport { Nullable } from '../../typings/utility-types';\nimport { MenuSeparator } from '../../components/MenuSeparator';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { ComboBoxRequestStatus } from './CustomComboBoxTypes';\nimport { ComboBoxLocale, CustomComboBoxLocaleHelper } from './locale';\n\nexport interface ComboBoxMenuProps<T> {\n opened?: boolean;\n items?: Nullable<T[]>;\n totalCount?: number;\n loading?: boolean;\n maxMenuHeight?: number | string;\n refMenu?: (menu: Nullable<Menu>) => void;\n renderNotFound?: () => React.ReactNode;\n renderTotalCount?: (found: number, total: number) => React.ReactNode;\n renderItem: (item: T, state: MenuItemState) => React.ReactNode;\n onValueChange: (value: T) => any;\n renderAddButton?: () => React.ReactNode;\n caption?: React.ReactNode;\n repeatRequest?: () => void;\n requestStatus?: ComboBoxRequestStatus;\n isMobile?: boolean;\n}\n\nexport const ComboBoxMenuDataTids = {\n loading: 'ComboBoxMenu__loading',\n failed: 'ComboBoxMenu__failed',\n notFound: 'ComboBoxMenu__notFound',\n items: 'ComboBoxMenu__items',\n item: 'ComboBoxMenu__item',\n} as const;\n\ntype DefaultProps<T> = Required<Pick<ComboBoxMenuProps<T>, 'repeatRequest' | 'requestStatus'>>;\n\n@locale('ComboBox', CustomComboBoxLocaleHelper)\nexport class ComboBoxMenu<T> extends Component<ComboBoxMenuProps<T>> {\n public static __KONTUR_REACT_UI__ = 'ComboBoxMenu';\n\n public static defaultProps: DefaultProps<unknown> = {\n repeatRequest: () => undefined,\n requestStatus: ComboBoxRequestStatus.Unknown,\n };\n\n private getProps = createPropsGetter(ComboBoxMenu.defaultProps);\n\n private readonly locale!: ComboBoxLocale;\n\n public render() {\n const {\n opened,\n items,\n totalCount,\n loading,\n refMenu,\n renderNotFound = () => notFound,\n renderTotalCount,\n maxMenuHeight,\n isMobile,\n } = this.props;\n\n const requestStatus = this.getProps().requestStatus;\n\n const { notFound, errorNetworkButton, errorNetworkMessage } = this.locale;\n\n if (!opened) {\n return null;\n }\n\n let renderAddButton = null;\n if (this.props.renderAddButton) {\n renderAddButton = this.props.renderAddButton();\n }\n\n const maxHeight = isMobile ? 'auto' : maxMenuHeight;\n\n if (loading && (!items || !items.length)) {\n return (\n <Menu\n maxHeight={maxHeight}\n ref={refMenu}\n disableScrollContainer={isMobile}\n data-tid={ComboBoxMenuDataTids.loading}\n >\n <MenuItem disabled isMobile={isMobile}>\n <Spinner type=\"mini\" dimmed />\n </MenuItem>\n </Menu>\n );\n }\n\n if (items === null && requestStatus === ComboBoxRequestStatus.Failed) {\n return (\n <Menu\n ref={refMenu}\n maxHeight={maxHeight}\n disableScrollContainer={isMobile}\n data-tid={ComboBoxMenuDataTids.failed}\n >\n <MenuItem disabled key=\"message\" isMobile={isMobile}>\n <div style={{ maxWidth: 300, whiteSpace: 'normal' }}>{errorNetworkMessage}</div>\n </MenuItem>\n <MenuItem link onClick={this.getProps().repeatRequest} key=\"retry\" isMobile={isMobile}>\n {errorNetworkButton}\n </MenuItem>\n </Menu>\n );\n }\n\n if ((isNullable(items) || items.length === 0) && renderNotFound) {\n const notFoundValue = renderNotFound();\n if (renderAddButton) {\n return (\n <Menu maxHeight={maxHeight} ref={refMenu} disableScrollContainer={isMobile}>\n {renderAddButton}\n </Menu>\n );\n }\n\n if (notFoundValue) {\n return (\n <Menu maxHeight={maxHeight} ref={refMenu} disableScrollContainer={isMobile}>\n <MenuItem data-tid={ComboBoxMenuDataTids.notFound} disabled isMobile={isMobile}>\n {notFoundValue}\n </MenuItem>\n </Menu>\n );\n }\n\n return null;\n }\n\n let total = null;\n const renderedItems = items && items.map(this.renderItem);\n // @ts-ignore // todo fix checking\n const countItems = renderedItems?.filter((item) => item?.type?.__KONTUR_REACT_UI__ === 'MenuItem').length;\n\n if (countItems && renderTotalCount && totalCount && countItems < totalCount) {\n total = (\n <MenuItem disabled key=\"total\" isMobile={isMobile}>\n <div style={{ fontSize: 12 }}>{renderTotalCount(countItems, totalCount)}</div>\n </MenuItem>\n );\n }\n\n return (\n <Menu data-tid={ComboBoxMenuDataTids.items} ref={refMenu} maxHeight={maxHeight} disableScrollContainer={isMobile}>\n {renderedItems}\n {total}\n {renderAddButton && [<MenuSeparator key=\"separator\" />, renderAddButton]}\n </Menu>\n );\n }\n\n private renderItem = (item: T, index: number): React.ReactNode => {\n // NOTE this is undesireable feature, better\n // to remove it from further versions\n const { renderItem, onValueChange } = this.props;\n if (typeof item === 'function' || React.isValidElement(item)) {\n // @ts-ignore\n const element = typeof item === 'function' ? item() : item;\n const props = Object.assign(\n {\n key: index,\n onClick: () => onValueChange(element.props),\n },\n element.props,\n );\n return React.cloneElement(element, props);\n }\n\n return (\n <MenuItem\n data-tid={ComboBoxMenuDataTids.item}\n onClick={() => onValueChange(item)}\n key={index}\n isMobile={this.props.isMobile}\n >\n {(state) => renderItem(item, state)}\n </MenuItem>\n );\n };\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["ComboBoxMenu.tsx"],"names":["React","isFunction","isNullable","locale","Menu","isMenuItem","MenuItem","Spinner","MenuSeparator","createPropsGetter","ComboBoxRequestStatus","CustomComboBoxLocaleHelper","ComboBoxMenuDataTids","loading","failed","notFound","items","item","ComboBoxMenu","getProps","defaultProps","renderItem","index","props","onValueChange","isValidElement","element","Object","assign","key","onClick","cloneElement","isMobile","state","render","opened","totalCount","refMenu","renderNotFound","renderTotalCount","maxMenuHeight","requestStatus","errorNetworkButton","errorNetworkMessage","renderAddButton","maxHeight","length","Failed","maxWidth","whiteSpace","repeatRequest","notFoundValue","total","renderedItems","map","menuItems","filter","countItems","fontSize","Component","__KONTUR_REACT_UI__","undefined","Unknown"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { isFunction, isNullable } from '../../lib/utils';\nimport { locale } from '../../lib/locale/decorators';\nimport { Menu } from '../Menu';\nimport { isMenuItem, MenuItem, MenuItemState } from '../../components/MenuItem';\nimport { Spinner } from '../../components/Spinner';\nimport { Nullable } from '../../typings/utility-types';\nimport { MenuSeparator } from '../../components/MenuSeparator';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { ComboBoxRequestStatus } from './CustomComboBoxTypes';\nimport { ComboBoxLocale, CustomComboBoxLocaleHelper } from './locale';\n\nexport interface ComboBoxMenuProps<T> {\n opened?: boolean;\n items?: Nullable<T[]>;\n totalCount?: number;\n loading?: boolean;\n maxMenuHeight?: number | string;\n refMenu?: (menu: Nullable<Menu>) => void;\n renderNotFound?: () => React.ReactNode;\n renderTotalCount?: (found: number, total: number) => React.ReactNode;\n renderItem: (item: T, state: MenuItemState) => React.ReactNode;\n onValueChange: (value: T) => any;\n renderAddButton?: () => React.ReactNode;\n caption?: React.ReactNode;\n repeatRequest?: () => void;\n requestStatus?: ComboBoxRequestStatus;\n isMobile?: boolean;\n}\n\nexport const ComboBoxMenuDataTids = {\n loading: 'ComboBoxMenu__loading',\n failed: 'ComboBoxMenu__failed',\n notFound: 'ComboBoxMenu__notFound',\n items: 'ComboBoxMenu__items',\n item: 'ComboBoxMenu__item',\n} as const;\n\ntype DefaultProps<T> = Required<Pick<ComboBoxMenuProps<T>, 'repeatRequest' | 'requestStatus'>>;\n\n@locale('ComboBox', CustomComboBoxLocaleHelper)\nexport class ComboBoxMenu<T> extends React.Component<ComboBoxMenuProps<T>> {\n public static __KONTUR_REACT_UI__ = 'ComboBoxMenu';\n\n public static defaultProps: DefaultProps<unknown> = {\n repeatRequest: () => undefined,\n requestStatus: ComboBoxRequestStatus.Unknown,\n };\n\n private getProps = createPropsGetter(ComboBoxMenu.defaultProps);\n\n private readonly locale!: ComboBoxLocale;\n\n public render() {\n const {\n opened,\n items,\n totalCount,\n loading,\n refMenu,\n renderNotFound = () => notFound,\n renderTotalCount,\n maxMenuHeight,\n isMobile,\n } = this.props;\n\n const requestStatus = this.getProps().requestStatus;\n\n const { notFound, errorNetworkButton, errorNetworkMessage } = this.locale;\n\n if (!opened) {\n return null;\n }\n\n let renderAddButton = null;\n if (this.props.renderAddButton) {\n renderAddButton = this.props.renderAddButton();\n }\n\n const maxHeight = isMobile ? 'auto' : maxMenuHeight;\n\n if (loading && (!items || !items.length)) {\n return (\n <Menu\n maxHeight={maxHeight}\n ref={refMenu}\n disableScrollContainer={isMobile}\n data-tid={ComboBoxMenuDataTids.loading}\n >\n <MenuItem disabled isMobile={isMobile}>\n <Spinner type=\"mini\" dimmed />\n </MenuItem>\n </Menu>\n );\n }\n\n if (items === null && requestStatus === ComboBoxRequestStatus.Failed) {\n return (\n <Menu\n ref={refMenu}\n maxHeight={maxHeight}\n disableScrollContainer={isMobile}\n data-tid={ComboBoxMenuDataTids.failed}\n >\n <MenuItem disabled key=\"message\" isMobile={isMobile}>\n <div style={{ maxWidth: 300, whiteSpace: 'normal' }}>{errorNetworkMessage}</div>\n </MenuItem>\n <MenuItem link onClick={this.getProps().repeatRequest} key=\"retry\" isMobile={isMobile}>\n {errorNetworkButton}\n </MenuItem>\n </Menu>\n );\n }\n\n if ((isNullable(items) || items.length === 0) && renderNotFound) {\n const notFoundValue = renderNotFound();\n if (renderAddButton) {\n return (\n <Menu maxHeight={maxHeight} ref={refMenu} disableScrollContainer={isMobile}>\n {renderAddButton}\n </Menu>\n );\n }\n\n if (notFoundValue) {\n return (\n <Menu maxHeight={maxHeight} ref={refMenu} disableScrollContainer={isMobile}>\n <MenuItem data-tid={ComboBoxMenuDataTids.notFound} disabled isMobile={isMobile}>\n {notFoundValue}\n </MenuItem>\n </Menu>\n );\n }\n\n return null;\n }\n\n let total = null;\n const renderedItems = items && items.map(this.renderItem);\n const menuItems = renderedItems?.filter((item) => {\n return isMenuItem(item);\n });\n const countItems = menuItems?.length;\n\n if (countItems && renderTotalCount && totalCount && countItems < totalCount) {\n total = (\n <MenuItem disabled key=\"total\" isMobile={isMobile}>\n <div style={{ fontSize: 12 }}>{renderTotalCount(countItems, totalCount)}</div>\n </MenuItem>\n );\n }\n\n return (\n <Menu data-tid={ComboBoxMenuDataTids.items} ref={refMenu} maxHeight={maxHeight} disableScrollContainer={isMobile}>\n {renderedItems}\n {total}\n {renderAddButton && [<MenuSeparator key=\"separator\" />, renderAddButton]}\n </Menu>\n );\n }\n\n private renderItem = (item: T, index: number): React.ReactNode => {\n // NOTE this is undesireable feature, better\n // to remove it from further versions\n const { renderItem, onValueChange } = this.props;\n if (isFunction(item) || React.isValidElement(item)) {\n const element = isFunction(item) ? item() : item;\n const props = Object.assign(\n {\n key: index,\n onClick: () => onValueChange(element.props),\n },\n element.props,\n );\n return React.cloneElement(element, props);\n }\n\n return (\n <MenuItem\n data-tid={ComboBoxMenuDataTids.item}\n onClick={() => onValueChange(item)}\n key={index}\n isMobile={this.props.isMobile}\n >\n {(state) => renderItem(item, state)}\n </MenuItem>\n );\n };\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React
|
|
1
|
+
import React from 'react';
|
|
2
2
|
import { Menu } from '../Menu';
|
|
3
3
|
import { MenuItemState } from '../../components/MenuItem';
|
|
4
4
|
import { Nullable } from '../../typings/utility-types';
|
|
@@ -28,7 +28,7 @@ export declare const ComboBoxMenuDataTids: {
|
|
|
28
28
|
readonly item: "ComboBoxMenu__item";
|
|
29
29
|
};
|
|
30
30
|
declare type DefaultProps<T> = Required<Pick<ComboBoxMenuProps<T>, 'repeatRequest' | 'requestStatus'>>;
|
|
31
|
-
export declare class ComboBoxMenu<T> extends Component<ComboBoxMenuProps<T>> {
|
|
31
|
+
export declare class ComboBoxMenu<T> extends React.Component<ComboBoxMenuProps<T>> {
|
|
32
32
|
static __KONTUR_REACT_UI__: string;
|
|
33
33
|
static defaultProps: DefaultProps<unknown>;
|
|
34
34
|
private getProps;
|
|
@@ -149,8 +149,7 @@ export var Effect = {
|
|
|
149
149
|
menu.highlightItem(index);
|
|
150
150
|
|
|
151
151
|
if (index >= 0) {
|
|
152
|
-
//
|
|
153
|
-
// @ts-ignore
|
|
152
|
+
// @ts-expect-error: Use of private property.
|
|
154
153
|
requestAnimationFrame(function () {
|
|
155
154
|
return menu && menu.scrollToSelected();
|
|
156
155
|
});
|
|
@@ -198,7 +197,7 @@ export var Effect = {
|
|
|
198
197
|
combobox.selectInputText();
|
|
199
198
|
},
|
|
200
199
|
inputKeyDown: function inputKeyDown(event) {
|
|
201
|
-
return function (dispatch, getState, getProps
|
|
200
|
+
return function (dispatch, getState, getProps) {
|
|
202
201
|
var _getProps7 = getProps(),
|
|
203
202
|
onInputKeyDown = _getProps7.onInputKeyDown;
|
|
204
203
|
|
|
@@ -209,7 +208,7 @@ export var Effect = {
|
|
|
209
208
|
}
|
|
210
209
|
};
|
|
211
210
|
|
|
212
|
-
var never = function never(
|
|
211
|
+
var never = function never() {
|
|
213
212
|
return null;
|
|
214
213
|
};
|
|
215
214
|
|
|
@@ -424,7 +423,7 @@ export function reducer(state, props, action) {
|
|
|
424
423
|
|
|
425
424
|
default:
|
|
426
425
|
{
|
|
427
|
-
never(
|
|
426
|
+
never();
|
|
428
427
|
}
|
|
429
428
|
}
|
|
430
429
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["CustomComboBoxReducer.tsx"],"names":["debounce","isEqual","isNonNullable","isKeyArrowUp","isKeyArrowVertical","isKeyEnter","isKeyEscape","LayoutEvents","DefaultState","ComboBoxRequestStatus","DEBOUNCE_DELAY","getValueString","value","valueToString","Effect","search","query","dispatch","getState","getProps","getInstance","debouncedSearch","searchEffect","textValue","cancelRequest","cancel","cancelSearch","blur","onBlur","focus","onFocus","valueChange","onValueChange","unexpectedInput","items","onUnexpectedInput","Array","isArray","length","singleItem","valueContent","type","keepFocus","undefined","inputChange","onInputValueChange","returnedValue","inputFocus","input","highlightMenuItem","itemToValue","focused","requestStatus","menu","valueString","index","findIndex","x","highlightItem","requestAnimationFrame","scrollToSelected","Failed","down","selectMenuItem","event","enter","moveMenuHighlight","direction","resetHighlightedMenuItem","combobox","hasHighlightedItem","reset","reflow","emit","selectInputText","inputKeyDown","onInputKeyDown","never","_","reducer","state","props","action","opened","inputChanged","editing","newState","searchOnFocus","e","effects","nextState","preventDefault","push","prevProps","loading","Pending","shouldResetMenuHighlight","Success","repeatRequest","Unknown"],"mappings":"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","sourcesContent":["import React from 'react';\nimport debounce from 'lodash.debounce';\nimport isEqual from 'lodash.isequal';\n\nimport { isNonNullable } from '../../lib/utils';\nimport { isKeyArrowUp, isKeyArrowVertical, isKeyEnter, isKeyEscape } from '../../lib/events/keyboard/identifiers';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { Nullable } from '../../typings/utility-types';\n\nimport { CustomComboBox, CustomComboBoxProps, CustomComboBoxState, DefaultState } from './CustomComboBox';\nimport { ComboBoxRequestStatus } from './CustomComboBoxTypes';\n\nexport type CustomComboBoxAction<T> =\n | { type: 'ValueChange'; value: T; keepFocus: boolean }\n | { type: 'TextChange'; value: string }\n | { type: 'KeyPress'; event: React.KeyboardEvent }\n | {\n type: 'DidUpdate';\n prevProps: CustomComboBoxProps<T>;\n prevState: CustomComboBoxState<T>;\n }\n | { type: 'Mount' }\n | { type: 'Focus' }\n | { type: 'InputClick' }\n | { type: 'Blur' }\n | { type: 'Reset' }\n | { type: 'Open' }\n | { type: 'Close' }\n | { type: 'Search'; query: string }\n | { type: 'RequestItems' }\n | { type: 'ReceiveItems'; items: T[] }\n | { type: 'RequestFailure'; repeatRequest: () => void }\n | { type: 'CancelRequest' };\n\nexport type CustomComboBoxEffect<T> = (\n dispatch: (action: CustomComboBoxAction<T>) => void,\n getState: () => CustomComboBoxState<T>,\n getProps: () => CustomComboBoxProps<T>,\n getInstance: () => CustomComboBox<T>,\n) => void;\n\ntype Effect = CustomComboBoxEffect<any>;\n\ninterface EffectFactory {\n search: (query: string) => Effect;\n debouncedSearch: Effect & {\n cancel(): void;\n flush(): void;\n };\n cancelRequest: Effect;\n blur: Effect;\n focus: Effect;\n\n valueChange: (value: any) => Effect;\n unexpectedInput: (textValue: string, items: Nullable<any[]>) => Effect;\n inputChange: Effect;\n inputFocus: Effect;\n highlightMenuItem: Effect;\n selectMenuItem: (event: React.KeyboardEvent<HTMLElement>) => Effect;\n inputKeyDown: (event: React.KeyboardEvent<HTMLElement>) => Effect;\n moveMenuHighlight: (direction: 'up' | 'down') => Effect;\n resetHighlightedMenuItem: Effect;\n reflow: Effect;\n selectInputText: Effect;\n}\n\nconst DEBOUNCE_DELAY = 300;\n\nconst getValueString = (value: any, valueToString: CustomComboBoxProps<any>['valueToString']) => {\n return isNonNullable(value) ? valueToString(value) : '';\n};\n\nexport const Effect: EffectFactory = {\n search: (query) => (dispatch, getState, getProps, getInstance) => {\n getInstance().search(query);\n },\n debouncedSearch: debounce((dispatch, getState, getProps, getInstance) => {\n const searchEffect = Effect.search(getState().textValue);\n searchEffect(dispatch, getState, getProps, getInstance);\n }, DEBOUNCE_DELAY),\n cancelRequest: (dispatch, getState, getProps, getInstance) => {\n Effect.debouncedSearch.cancel();\n getInstance().cancelSearch();\n },\n blur: (dispatch, getState, getProps) => {\n const { onBlur } = getProps();\n if (onBlur) {\n onBlur();\n }\n },\n focus: (dispatch, getState, getProps) => {\n const { onFocus } = getProps();\n if (onFocus) {\n onFocus();\n }\n },\n valueChange: (value) => (dispatch, getState, getProps) => {\n const { onValueChange } = getProps();\n if (onValueChange) {\n onValueChange(value);\n }\n },\n unexpectedInput: (textValue, items) => (dispatch, getState, getProps) => {\n const { onUnexpectedInput, valueToString } = getProps();\n\n if (Array.isArray(items) && items.length === 1) {\n const singleItem = items[0];\n const valueContent = getValueString(singleItem, valueToString);\n\n if (valueContent === textValue) {\n dispatch({ type: 'ValueChange', value: singleItem, keepFocus: false });\n return;\n }\n }\n\n if (onUnexpectedInput) {\n const value = onUnexpectedInput(textValue);\n if (value !== undefined) {\n dispatch({ type: 'ValueChange', value, keepFocus: false });\n }\n }\n },\n inputChange: (dispatch, getState, getProps) => {\n const { onInputValueChange } = getProps();\n const { textValue } = getState();\n if (onInputValueChange) {\n const returnedValue = onInputValueChange(textValue);\n if (typeof returnedValue === 'string' && returnedValue !== textValue) {\n dispatch({ type: 'TextChange', value: returnedValue });\n }\n }\n },\n inputFocus: (dispatch, getState, getProps, getInstance) => {\n const { input } = getInstance();\n\n if (!input) {\n return;\n }\n\n input.focus();\n },\n highlightMenuItem: (dispatch, getState, getProps, getInstance) => {\n const { value, itemToValue, valueToString } = getProps();\n const { items, focused, textValue, requestStatus } = getState();\n const { menu } = getInstance();\n const valueString = getValueString(value, valueToString);\n\n if (!menu) {\n return;\n }\n\n if (!focused) {\n return;\n }\n\n let index = -1;\n if (items && items.length && isNonNullable(value)) {\n index = items.findIndex((x) => itemToValue(x) === itemToValue(value));\n }\n menu.highlightItem(index);\n\n if (index >= 0) {\n // FIXME: accessing private props\n // @ts-ignore\n requestAnimationFrame(() => menu && menu.scrollToSelected());\n return;\n }\n\n if (textValue !== valueString || requestStatus === ComboBoxRequestStatus.Failed) {\n requestAnimationFrame(() => menu && menu.down());\n }\n },\n selectMenuItem: (event) => (dispatch, getState, getProps, getInstance) => {\n const { menu } = getInstance();\n if (menu) {\n menu.enter(event);\n }\n },\n moveMenuHighlight: (direction) => (dispatch, getState, getProps, getInstance) => {\n const { menu } = getInstance();\n if (menu) {\n menu[direction]();\n }\n },\n resetHighlightedMenuItem: (dispatch, getState, getProps, getInstance) => {\n const combobox = getInstance();\n\n if (combobox.menu && combobox.menu.hasHighlightedItem()) {\n combobox.menu.reset();\n }\n },\n reflow: () => {\n LayoutEvents.emit();\n },\n selectInputText: (dispatch, getState, getProps, getInstance) => {\n const combobox = getInstance();\n combobox.selectInputText();\n },\n inputKeyDown: (event) => (dispatch, getState, getProps, getInstance) => {\n const { onInputKeyDown } = getProps();\n if (onInputKeyDown) {\n onInputKeyDown(event);\n }\n },\n};\n\nconst never = (_: never) => null;\n\nexport function reducer<T>(\n state: CustomComboBoxState<T>,\n props: CustomComboBoxProps<T>,\n action: CustomComboBoxAction<T>,\n): Pick<CustomComboBoxState<T>, never> | [Pick<CustomComboBoxState<T>, never>, Array<CustomComboBoxEffect<T>>] {\n switch (action.type) {\n case 'ValueChange': {\n const { value, keepFocus } = action;\n const textValue = getValueString(value, props.valueToString);\n if (keepFocus) {\n return [\n {\n opened: false,\n inputChanged: false,\n editing: true,\n items: null,\n textValue,\n },\n [Effect.valueChange(value), Effect.cancelRequest, Effect.inputFocus],\n ];\n }\n return [\n {\n opened: false,\n inputChanged: false,\n editing: false,\n items: null,\n textValue,\n },\n [Effect.valueChange(value), Effect.cancelRequest],\n ];\n }\n case 'TextChange': {\n const newState = {\n inputChanged: true,\n textValue: action.value,\n };\n if (!action.value && !props.searchOnFocus) {\n return [\n {\n ...newState,\n opened: false,\n items: null,\n },\n [Effect.inputChange],\n ];\n }\n return [newState, [Effect.debouncedSearch, Effect.inputChange]];\n }\n case 'KeyPress': {\n const e = action.event as React.KeyboardEvent<HTMLElement>;\n const effects = [];\n let nextState = state;\n\n switch (true) {\n case isKeyEnter(e):\n e.preventDefault();\n effects.push(Effect.selectMenuItem(e));\n break;\n case isKeyArrowVertical(e):\n e.preventDefault();\n effects.push(Effect.moveMenuHighlight(isKeyArrowUp(e) ? 'up' : 'down'));\n if (!state.opened) {\n effects.push(Effect.search(state.textValue));\n }\n break;\n case isKeyEscape(e):\n nextState = {\n ...state,\n items: null,\n opened: false,\n };\n break;\n }\n return [nextState, [...effects, Effect.inputKeyDown(e)]];\n }\n case 'DidUpdate': {\n if (isEqual(props.value, action.prevProps.value)) {\n return state;\n }\n\n return {\n opened: false,\n textValue: state.editing ? state.textValue : getValueString(props.value, props.valueToString),\n };\n }\n case 'Mount': {\n return {\n textValue: getValueString(props.value, props.valueToString),\n };\n }\n case 'Focus': {\n const newState = {\n focused: true,\n editing: true,\n };\n if (!props.searchOnFocus) {\n return [newState, [Effect.focus]];\n }\n if (state.editing) {\n return [newState, [Effect.search(state.textValue), Effect.focus]];\n }\n return [newState, [Effect.search(''), Effect.focus, Effect.selectInputText]];\n }\n case 'InputClick': {\n if (!state.opened && props.searchOnFocus) {\n return [state, [Effect.search('')]];\n }\n return state;\n }\n case 'Blur': {\n const { inputChanged, items } = state;\n if (!inputChanged) {\n return [\n {\n focused: false,\n opened: false,\n items: null,\n editing: false,\n },\n [Effect.blur, Effect.cancelRequest],\n ];\n }\n\n return [\n {\n focused: false,\n opened: false,\n items: null,\n },\n [Effect.blur, Effect.cancelRequest, Effect.unexpectedInput(state.textValue, items)],\n ];\n }\n case 'Reset': {\n return DefaultState;\n }\n case 'Open': {\n return { opened: true };\n }\n case 'Close': {\n return { opened: false, items: null };\n }\n case 'Search': {\n return [state, [Effect.search(action.query)]];\n }\n case 'RequestItems': {\n return {\n loading: true,\n opened: true,\n requestStatus: ComboBoxRequestStatus.Pending,\n };\n }\n case 'ReceiveItems': {\n const shouldResetMenuHighlight = state.textValue === '';\n return [\n {\n loading: false,\n opened: true,\n items: action.items,\n requestStatus: ComboBoxRequestStatus.Success,\n },\n [shouldResetMenuHighlight ? Effect.resetHighlightedMenuItem : Effect.highlightMenuItem, Effect.reflow],\n ];\n }\n case 'RequestFailure': {\n return [\n {\n loading: false,\n opened: true,\n items: null,\n requestStatus: ComboBoxRequestStatus.Failed,\n repeatRequest: action.repeatRequest,\n },\n [Effect.highlightMenuItem],\n ];\n }\n case 'CancelRequest': {\n return {\n loading: false,\n requestStatus: ComboBoxRequestStatus.Unknown,\n };\n }\n default: {\n never(action);\n }\n }\n return state;\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["CustomComboBoxReducer.tsx"],"names":["debounce","isEqual","isNonNullable","isKeyArrowUp","isKeyArrowVertical","isKeyEnter","isKeyEscape","LayoutEvents","DefaultState","ComboBoxRequestStatus","DEBOUNCE_DELAY","getValueString","value","valueToString","Effect","search","query","dispatch","getState","getProps","getInstance","debouncedSearch","searchEffect","textValue","cancelRequest","cancel","cancelSearch","blur","onBlur","focus","onFocus","valueChange","onValueChange","unexpectedInput","items","onUnexpectedInput","Array","isArray","length","singleItem","valueContent","type","keepFocus","undefined","inputChange","onInputValueChange","returnedValue","inputFocus","input","highlightMenuItem","itemToValue","focused","requestStatus","menu","valueString","index","findIndex","x","highlightItem","requestAnimationFrame","scrollToSelected","Failed","down","selectMenuItem","event","enter","moveMenuHighlight","direction","resetHighlightedMenuItem","combobox","hasHighlightedItem","reset","reflow","emit","selectInputText","inputKeyDown","onInputKeyDown","never","reducer","state","props","action","opened","inputChanged","editing","newState","searchOnFocus","e","effects","nextState","preventDefault","push","prevProps","loading","Pending","shouldResetMenuHighlight","Success","repeatRequest","Unknown"],"mappings":"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","sourcesContent":["import React from 'react';\nimport debounce from 'lodash.debounce';\nimport isEqual from 'lodash.isequal';\n\nimport { isNonNullable } from '../../lib/utils';\nimport { isKeyArrowUp, isKeyArrowVertical, isKeyEnter, isKeyEscape } from '../../lib/events/keyboard/identifiers';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { Nullable } from '../../typings/utility-types';\n\nimport { CustomComboBox, CustomComboBoxProps, CustomComboBoxState, DefaultState } from './CustomComboBox';\nimport { ComboBoxRequestStatus } from './CustomComboBoxTypes';\n\nexport type CustomComboBoxAction<T> =\n | { type: 'ValueChange'; value: T; keepFocus: boolean }\n | { type: 'TextChange'; value: string }\n | { type: 'KeyPress'; event: React.KeyboardEvent }\n | {\n type: 'DidUpdate';\n prevProps: CustomComboBoxProps<T>;\n prevState: CustomComboBoxState<T>;\n }\n | { type: 'Mount' }\n | { type: 'Focus' }\n | { type: 'InputClick' }\n | { type: 'Blur' }\n | { type: 'Reset' }\n | { type: 'Open' }\n | { type: 'Close' }\n | { type: 'Search'; query: string }\n | { type: 'RequestItems' }\n | { type: 'ReceiveItems'; items: T[] }\n | { type: 'RequestFailure'; repeatRequest: () => void }\n | { type: 'CancelRequest' };\n\nexport type CustomComboBoxEffect<T> = (\n dispatch: (action: CustomComboBoxAction<T>) => void,\n getState: () => CustomComboBoxState<T>,\n getProps: () => CustomComboBoxProps<T>,\n getInstance: () => CustomComboBox<T>,\n) => void;\n\ntype Effect = CustomComboBoxEffect<any>;\n\ninterface EffectFactory {\n search: (query: string) => Effect;\n debouncedSearch: Effect & {\n cancel(): void;\n flush(): void;\n };\n cancelRequest: Effect;\n blur: Effect;\n focus: Effect;\n\n valueChange: (value: any) => Effect;\n unexpectedInput: (textValue: string, items: Nullable<any[]>) => Effect;\n inputChange: Effect;\n inputFocus: Effect;\n highlightMenuItem: Effect;\n selectMenuItem: (event: React.KeyboardEvent<HTMLElement>) => Effect;\n inputKeyDown: (event: React.KeyboardEvent<HTMLElement>) => Effect;\n moveMenuHighlight: (direction: 'up' | 'down') => Effect;\n resetHighlightedMenuItem: Effect;\n reflow: Effect;\n selectInputText: Effect;\n}\n\nconst DEBOUNCE_DELAY = 300;\n\nconst getValueString = (value: any, valueToString: CustomComboBoxProps<any>['valueToString']) => {\n return isNonNullable(value) ? valueToString(value) : '';\n};\n\nexport const Effect: EffectFactory = {\n search: (query) => (dispatch, getState, getProps, getInstance) => {\n getInstance().search(query);\n },\n debouncedSearch: debounce((dispatch, getState, getProps, getInstance) => {\n const searchEffect = Effect.search(getState().textValue);\n searchEffect(dispatch, getState, getProps, getInstance);\n }, DEBOUNCE_DELAY),\n cancelRequest: (dispatch, getState, getProps, getInstance) => {\n Effect.debouncedSearch.cancel();\n getInstance().cancelSearch();\n },\n blur: (dispatch, getState, getProps) => {\n const { onBlur } = getProps();\n if (onBlur) {\n onBlur();\n }\n },\n focus: (dispatch, getState, getProps) => {\n const { onFocus } = getProps();\n if (onFocus) {\n onFocus();\n }\n },\n valueChange: (value) => (dispatch, getState, getProps) => {\n const { onValueChange } = getProps();\n if (onValueChange) {\n onValueChange(value);\n }\n },\n unexpectedInput: (textValue, items) => (dispatch, getState, getProps) => {\n const { onUnexpectedInput, valueToString } = getProps();\n\n if (Array.isArray(items) && items.length === 1) {\n const singleItem = items[0];\n const valueContent = getValueString(singleItem, valueToString);\n\n if (valueContent === textValue) {\n dispatch({ type: 'ValueChange', value: singleItem, keepFocus: false });\n return;\n }\n }\n\n if (onUnexpectedInput) {\n const value = onUnexpectedInput(textValue);\n if (value !== undefined) {\n dispatch({ type: 'ValueChange', value, keepFocus: false });\n }\n }\n },\n inputChange: (dispatch, getState, getProps) => {\n const { onInputValueChange } = getProps();\n const { textValue } = getState();\n if (onInputValueChange) {\n const returnedValue = onInputValueChange(textValue);\n if (typeof returnedValue === 'string' && returnedValue !== textValue) {\n dispatch({ type: 'TextChange', value: returnedValue });\n }\n }\n },\n inputFocus: (dispatch, getState, getProps, getInstance) => {\n const { input } = getInstance();\n\n if (!input) {\n return;\n }\n\n input.focus();\n },\n highlightMenuItem: (dispatch, getState, getProps, getInstance) => {\n const { value, itemToValue, valueToString } = getProps();\n const { items, focused, textValue, requestStatus } = getState();\n const { menu } = getInstance();\n const valueString = getValueString(value, valueToString);\n\n if (!menu) {\n return;\n }\n\n if (!focused) {\n return;\n }\n\n let index = -1;\n if (items && items.length && isNonNullable(value)) {\n index = items.findIndex((x) => itemToValue(x) === itemToValue(value));\n }\n menu.highlightItem(index);\n\n if (index >= 0) {\n // @ts-expect-error: Use of private property.\n requestAnimationFrame(() => menu && menu.scrollToSelected());\n return;\n }\n\n if (textValue !== valueString || requestStatus === ComboBoxRequestStatus.Failed) {\n requestAnimationFrame(() => menu && menu.down());\n }\n },\n selectMenuItem: (event) => (dispatch, getState, getProps, getInstance) => {\n const { menu } = getInstance();\n if (menu) {\n menu.enter(event);\n }\n },\n moveMenuHighlight: (direction) => (dispatch, getState, getProps, getInstance) => {\n const { menu } = getInstance();\n if (menu) {\n menu[direction]();\n }\n },\n resetHighlightedMenuItem: (dispatch, getState, getProps, getInstance) => {\n const combobox = getInstance();\n\n if (combobox.menu && combobox.menu.hasHighlightedItem()) {\n combobox.menu.reset();\n }\n },\n reflow: () => {\n LayoutEvents.emit();\n },\n selectInputText: (dispatch, getState, getProps, getInstance) => {\n const combobox = getInstance();\n combobox.selectInputText();\n },\n inputKeyDown: (event) => (dispatch, getState, getProps) => {\n const { onInputKeyDown } = getProps();\n if (onInputKeyDown) {\n onInputKeyDown(event);\n }\n },\n};\n\nconst never = () => null;\n\nexport function reducer<T>(\n state: CustomComboBoxState<T>,\n props: CustomComboBoxProps<T>,\n action: CustomComboBoxAction<T>,\n): Pick<CustomComboBoxState<T>, never> | [Pick<CustomComboBoxState<T>, never>, Array<CustomComboBoxEffect<T>>] {\n switch (action.type) {\n case 'ValueChange': {\n const { value, keepFocus } = action;\n const textValue = getValueString(value, props.valueToString);\n if (keepFocus) {\n return [\n {\n opened: false,\n inputChanged: false,\n editing: true,\n items: null,\n textValue,\n },\n [Effect.valueChange(value), Effect.cancelRequest, Effect.inputFocus],\n ];\n }\n return [\n {\n opened: false,\n inputChanged: false,\n editing: false,\n items: null,\n textValue,\n },\n [Effect.valueChange(value), Effect.cancelRequest],\n ];\n }\n case 'TextChange': {\n const newState = {\n inputChanged: true,\n textValue: action.value,\n };\n if (!action.value && !props.searchOnFocus) {\n return [\n {\n ...newState,\n opened: false,\n items: null,\n },\n [Effect.inputChange],\n ];\n }\n return [newState, [Effect.debouncedSearch, Effect.inputChange]];\n }\n case 'KeyPress': {\n const e = action.event as React.KeyboardEvent<HTMLElement>;\n const effects = [];\n let nextState = state;\n\n switch (true) {\n case isKeyEnter(e):\n e.preventDefault();\n effects.push(Effect.selectMenuItem(e));\n break;\n case isKeyArrowVertical(e):\n e.preventDefault();\n effects.push(Effect.moveMenuHighlight(isKeyArrowUp(e) ? 'up' : 'down'));\n if (!state.opened) {\n effects.push(Effect.search(state.textValue));\n }\n break;\n case isKeyEscape(e):\n nextState = {\n ...state,\n items: null,\n opened: false,\n };\n break;\n }\n return [nextState, [...effects, Effect.inputKeyDown(e)]];\n }\n case 'DidUpdate': {\n if (isEqual(props.value, action.prevProps.value)) {\n return state;\n }\n\n return {\n opened: false,\n textValue: state.editing ? state.textValue : getValueString(props.value, props.valueToString),\n };\n }\n case 'Mount': {\n return {\n textValue: getValueString(props.value, props.valueToString),\n };\n }\n case 'Focus': {\n const newState = {\n focused: true,\n editing: true,\n };\n if (!props.searchOnFocus) {\n return [newState, [Effect.focus]];\n }\n if (state.editing) {\n return [newState, [Effect.search(state.textValue), Effect.focus]];\n }\n return [newState, [Effect.search(''), Effect.focus, Effect.selectInputText]];\n }\n case 'InputClick': {\n if (!state.opened && props.searchOnFocus) {\n return [state, [Effect.search('')]];\n }\n return state;\n }\n case 'Blur': {\n const { inputChanged, items } = state;\n if (!inputChanged) {\n return [\n {\n focused: false,\n opened: false,\n items: null,\n editing: false,\n },\n [Effect.blur, Effect.cancelRequest],\n ];\n }\n\n return [\n {\n focused: false,\n opened: false,\n items: null,\n },\n [Effect.blur, Effect.cancelRequest, Effect.unexpectedInput(state.textValue, items)],\n ];\n }\n case 'Reset': {\n return DefaultState;\n }\n case 'Open': {\n return { opened: true };\n }\n case 'Close': {\n return { opened: false, items: null };\n }\n case 'Search': {\n return [state, [Effect.search(action.query)]];\n }\n case 'RequestItems': {\n return {\n loading: true,\n opened: true,\n requestStatus: ComboBoxRequestStatus.Pending,\n };\n }\n case 'ReceiveItems': {\n const shouldResetMenuHighlight = state.textValue === '';\n return [\n {\n loading: false,\n opened: true,\n items: action.items,\n requestStatus: ComboBoxRequestStatus.Success,\n },\n [shouldResetMenuHighlight ? Effect.resetHighlightedMenuItem : Effect.highlightMenuItem, Effect.reflow],\n ];\n }\n case 'RequestFailure': {\n return [\n {\n loading: false,\n opened: true,\n items: null,\n requestStatus: ComboBoxRequestStatus.Failed,\n repeatRequest: action.repeatRequest,\n },\n [Effect.highlightMenuItem],\n ];\n }\n case 'CancelRequest': {\n return {\n loading: false,\n requestStatus: ComboBoxRequestStatus.Unknown,\n };\n }\n default: {\n never();\n }\n }\n return state;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["DataTids.tsx"],"names":["React","Select","styles","componentsDataTids","DataTids","state","selectedValue","components","Object","keys","items","setValue","value","setState","render","entries","map","index","componentName","dataTids","wrapper","values","i","row","leftCell","rightCell","Component"],"mappings":"sEAAA,OAAOA,KAAP,MAAkB,OAAlB;;AAEA,SAASC,MAAT,QAAuB,yBAAvB;;AAEA,SAASC,MAAT,QAAuB,mBAAvB;AACA,SAASC,kBAAT,QAAmC,sBAAnC
|
|
1
|
+
{"version":3,"sources":["DataTids.tsx"],"names":["React","Select","styles","componentsDataTids","DataTids","state","selectedValue","components","Object","keys","items","setValue","value","setState","render","entries","map","index","componentName","dataTids","wrapper","values","i","row","leftCell","rightCell","Component"],"mappings":"sEAAA,OAAOA,KAAP,MAAkB,OAAlB;;AAEA,SAASC,MAAT,QAAuB,yBAAvB;;AAEA,SAASC,MAAT,QAAuB,mBAAvB;AACA,SAASC,kBAAT,QAAmC,sBAAnC;;;;;;AAMA,WAAaC,QAAb;AACSC,IAAAA,KADT,GACgC;AAC5BC,MAAAA,aAAa,EAAE,KADa,EADhC;;;AAKUC,IAAAA,UALV,GAKuBC,MAAM,CAACC,IAAP,CAAYN,kBAAZ,CALvB;;AAOUO,IAAAA,KAPV,IAOmB,KAPnB,SAO6B,MAAKH,UAPlC;;AASUI,IAAAA,QATV,GASqB,UAACC,KAAD,EAAmB;AACpC,YAAKC,QAAL,CAAc,EAAEP,aAAa,EAAEM,KAAjB,EAAd;AACD,KAXH;;AAaSE,EAAAA,MAbT,GAaE,kBAAgB;AACd;AACE;;AAEE,0BAAC,MAAD,IAAgB,KAAK,EAAE,KAAKJ,KAA5B,EAAmC,KAAK,EAAE,KAAKL,KAAL,CAAWC,aAArD,EAAoE,aAAa,EAAE,KAAKK,QAAxF,EAAkG,MAAM,MAAxG,GAFF;AAGGH,MAAAA,MAAM,CAACO,OAAP,CAAeZ,kBAAf,EAAmCa,GAAnC,CAAuC,gBAA4BC,KAA5B,EAAsC,KAApCC,aAAoC,WAArBC,QAAqB;AAC5E,YAAID,aAAa,KAAK,MAAI,CAACb,KAAL,CAAWC,aAA7B,IAA8C,MAAI,CAACD,KAAL,CAAWC,aAAX,KAA6B,KAA/E,EAAsF;AACpF;AACE,yCAAK,GAAG,EAAEW,KAAV,EAAiB,SAAS,EAAEf,MAAM,CAACkB,OAAP,EAA5B;AACE,yCAAK,SAAS,EAAElB,MAAM,CAACgB,aAAP,EAAhB,IAAyCA,aAAzC,CADF;AAEGV,YAAAA,MAAM,CAACa,MAAP,CAAcF,QAAd,EAAwBH,GAAxB,CAA4B,UAACJ,KAAD,EAAQU,CAAR,EAAc;AACzC;AACE,6CAAK,GAAG,EAAEA,CAAV,EAAa,SAAS,EAAEpB,MAAM,CAACqB,GAAP,EAAxB;AACE,6CAAK,SAAS,EAAErB,MAAM,CAACsB,QAAP,EAAhB,IAAuCN,aAAvC,iBAAgEN,KAAK,CAAC,CAAD,CAArE,CADF;AAEE,6CAAK,SAAS,EAAEV,MAAM,CAACuB,SAAP,EAAhB,UAAyCb,KAAK,CAAC,CAAD,CAA9C,OAFF,CADF;;;AAMD,aAPA,CAFH,CADF;;;AAaD;AACD,eAAO,IAAP;AACD,OAjBA,CAHH,CADF;;;AAwBD,GAtCH,mBAA8BZ,KAAK,CAAC0B,SAApC","sourcesContent":["import React from 'react';\n\nimport { Select } from '../../components/Select';\n\nimport { styles } from './DataTids.styles';\nimport { componentsDataTids } from './componentsDataTids';\n\ninterface DataTidsState {\n selectedValue: string;\n}\n\nexport class DataTids extends React.Component {\n public state: DataTidsState = {\n selectedValue: 'все',\n };\n\n private components = Object.keys(componentsDataTids);\n\n private items = ['все', ...this.components];\n\n private setValue = (value: string) => {\n this.setState({ selectedValue: value });\n };\n\n public render() {\n return (\n <div>\n Выбрать компонент:\n <Select<string> items={this.items} value={this.state.selectedValue} onValueChange={this.setValue} search />\n {Object.entries(componentsDataTids).map(([componentName, dataTids], index) => {\n if (componentName === this.state.selectedValue || this.state.selectedValue === 'все') {\n return (\n <div key={index} className={styles.wrapper()}>\n <div className={styles.componentName()}>{componentName}</div>\n {Object.values(dataTids).map((value, i) => {\n return (\n <div key={i} className={styles.row()}>\n <div className={styles.leftCell()}>{`${componentName}DataTids.${value[0]}`}</div>\n <div className={styles.rightCell()}>{`'${value[1]}'`}</div>\n </div>\n );\n })}\n </div>\n );\n }\n return null;\n })}\n </div>\n );\n }\n}\n"]}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
|
|
2
|
+
interface DataTidsState {
|
|
3
3
|
selectedValue: string;
|
|
4
|
-
}
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
};
|
|
4
|
+
}
|
|
5
|
+
export declare class DataTids extends React.Component {
|
|
6
|
+
state: DataTidsState;
|
|
8
7
|
private components;
|
|
9
8
|
private items;
|
|
10
9
|
private setValue;
|
|
11
10
|
render(): JSX.Element;
|
|
12
11
|
}
|
|
12
|
+
export {};
|
|
@@ -217,7 +217,7 @@ export var DateSelect = (_dec = locale('DatePicker', DatePickerLocaleHelper), _d
|
|
|
217
217
|
};
|
|
218
218
|
|
|
219
219
|
_this.handleItemClick = function (shift) {
|
|
220
|
-
return function (
|
|
220
|
+
return function () {
|
|
221
221
|
var value = _this.props.value + shift;
|
|
222
222
|
|
|
223
223
|
if (_this.props.onValueChange) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["DateSelect.tsx"],"names":["React","PropTypes","isNonNullable","isKeyEscape","DatePickerLocaleHelper","locale","RenderLayer","DropdownContainer","LayoutEvents","ThemeContext","ArrowTriangleUpDownIcon","ArrowChevronDownIcon","ArrowChevronUpIcon","isMobile","cx","getDOMRect","createPropsGetter","styles","itemHeight","visibleYearsCount","itemsToMoveCount","monthsCount","defaultMinYear","defaultMaxYear","calculatePos","pos","minPos","maxPos","DateSelectDataTids","caption","menuItem","DateSelect","getProps","defaultProps","state","botCapped","current","height","opened","top","topCapped","nodeTop","Infinity","root","itemsContainer","longClickTimer","setPositionRepeatTimer","yearStep","touchStartY","open","props","disabled","setPosition","setState","close","refRoot","element","setNodeTop","timeout","clearTimeout","setTimeout","refItemsContainer","addEventListener","handleWheel","passive","removeEventListener","handleTouchStart","handleTouchMove","handleLongClickUp","event","preventDefault","window","setInterval","handleLongClickDown","handleLongClickStop","getAnchor","WheelEvent","stopPropagation","deltaY","deltaMode","TouchEvent","targetTouches","clientY","changedTouches","pixelRatio","devicePixelRatio","handleItemClick","shift","e","value","onValueChange","handleKey","handleUp","handleDown","componentDidUpdate","componentDidMount","listener","addListener","componentWillUnmount","remove","render","theme","renderMain","width","rootProps","className","Boolean","style","ref","getItem","arrow","arrowDisabled","renderMenu","disableItems","index","maxValue","minValue","from","to","Math","ceil","items","i","menuItemSelected","menuItemActive","menuItemDisabled","clickHandler","onMouseDown","onClick","push","left","right","shiftStyle","position","holderClass","menuHolder","isTopCapped","isBotCapped","dropdownOffset","overflowOffsetDelta","menu","menuUp","itemsHolder","menuDown","type","months","getMinPos","getMaxPos","calculatedPos","PureComponent","__KONTUR_REACT_UI__","propTypes","bool","string","number","isRequired","oneOfType","func"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { isNonNullable } from '../../lib/utils';\nimport { isKeyEscape } from '../../lib/events/keyboard/identifiers';\nimport { DatePickerLocale, DatePickerLocaleHelper } from '../../components/DatePicker/locale';\nimport { locale } from '../../lib/locale/decorators';\nimport { RenderLayer } from '../RenderLayer';\nimport { DropdownContainer } from '../DropdownContainer';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { Nullable } from '../../typings/utility-types';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { ArrowTriangleUpDownIcon, ArrowChevronDownIcon, ArrowChevronUpIcon } from '../icons/16px';\nimport { isMobile } from '../../lib/client';\nimport { cx } from '../../lib/theming/Emotion';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { styles } from './DateSelect.styles';\n\nconst itemHeight = 24;\nconst visibleYearsCount = 11;\nconst itemsToMoveCount = -5;\nconst monthsCount = 12;\nconst defaultMinYear = 1900;\nconst defaultMaxYear = 2100;\n\nexport interface DateSelectProps {\n disabled?: boolean | null;\n onValueChange: (value: number) => void;\n type?: 'month' | 'year';\n value: number;\n width?: number | string;\n minValue?: number;\n maxValue?: number;\n}\n\nexport interface DateSelectState {\n botCapped: boolean;\n current: Nullable<number>;\n height: number;\n opened: boolean;\n pos: number;\n top: number;\n topCapped: boolean;\n nodeTop: number;\n}\n\nconst calculatePos = (pos: number, minPos: number, maxPos: number) => {\n if (maxPos <= pos) {\n return maxPos;\n }\n\n if (minPos >= pos) {\n return minPos;\n }\n\n return pos;\n};\n\nexport const DateSelectDataTids = {\n caption: 'DateSelect__caption',\n menuItem: 'DateSelect__menuItem',\n} as const;\n\ntype DefaultProps = Required<Pick<DateSelectProps, 'type' | 'width'>>;\n\n@locale('DatePicker', DatePickerLocaleHelper)\nexport class DateSelect extends React.PureComponent<DateSelectProps, DateSelectState> {\n public static __KONTUR_REACT_UI__ = 'DateSelect';\n\n public static propTypes = {\n disabled: PropTypes.bool,\n\n type: PropTypes.string,\n\n value: PropTypes.number.isRequired,\n\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n onValueChange: PropTypes.func,\n\n minValue: PropTypes.number,\n\n maxValue: PropTypes.number,\n };\n\n public static defaultProps: DefaultProps = {\n type: 'year',\n width: 'auto',\n };\n\n private getProps = createPropsGetter(DateSelect.defaultProps);\n\n public state = {\n botCapped: false,\n current: 0,\n height: 0,\n opened: false,\n pos: 0,\n top: 0,\n topCapped: false,\n nodeTop: Infinity,\n };\n\n private theme!: Theme;\n private readonly locale!: DatePickerLocale;\n private root: HTMLElement | null = null;\n private itemsContainer: HTMLElement | null = null;\n private listener: Nullable<ReturnType<typeof LayoutEvents.addListener>>;\n private timeout: NodeJS.Timeout | undefined;\n private longClickTimer = 0;\n private setPositionRepeatTimer = 0;\n private yearStep = 3;\n private touchStartY: Nullable<number> = null;\n\n public componentDidUpdate() {\n this.setNodeTop();\n }\n\n public componentDidMount() {\n this.listener = LayoutEvents.addListener(this.setNodeTop);\n this.setNodeTop();\n window.addEventListener('keydown', this.handleKey);\n }\n\n public componentWillUnmount() {\n if (this.listener) {\n this.listener.remove();\n }\n if (this.timeout) {\n clearTimeout(this.timeout);\n }\n if (this.longClickTimer) {\n clearTimeout(this.longClickTimer);\n }\n if (this.setPositionRepeatTimer) {\n clearTimeout(this.setPositionRepeatTimer);\n }\n window.removeEventListener('keydown', this.handleKey);\n }\n\n /**\n * @public\n */\n public open = () => {\n if (this.props.disabled) {\n return;\n }\n\n if (this.state.opened) {\n return;\n }\n\n this.setPosition(0);\n this.setState({\n opened: true,\n current: 0,\n });\n };\n\n /**\n * @public\n */\n public close = () => {\n if (!this.state.opened) {\n return;\n }\n\n this.setState({ opened: false });\n };\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { disabled } = this.props;\n const width = this.getProps().width;\n const rootProps = {\n className: cx({\n [styles.root(this.theme)]: true,\n [styles.disabled()]: Boolean(disabled),\n }),\n style: { width },\n ref: this.refRoot,\n };\n return (\n <span {...rootProps}>\n <div data-tid={DateSelectDataTids.caption} className={styles.caption()} onClick={this.open}>\n {this.getItem(0)}\n <div\n className={cx({\n [styles.arrow(this.theme)]: true,\n [styles.arrowDisabled()]: Boolean(disabled),\n })}\n >\n <ArrowTriangleUpDownIcon size={12} />\n </div>\n </div>\n {this.state.opened && this.renderMenu()}\n </span>\n );\n }\n\n private refRoot = (element: HTMLElement | null) => {\n this.root = element;\n };\n\n private setNodeTop = () => {\n const root = this.root;\n if (!root) {\n return;\n }\n if (this.timeout) {\n clearTimeout(this.timeout);\n }\n this.timeout = setTimeout(() =>\n this.setState({\n nodeTop: getDOMRect(root).top,\n }),\n );\n };\n\n private disableItems(index: number) {\n const value = this.props.value + index;\n if (isNonNullable(this.props.maxValue) && isNonNullable(this.props.minValue)) {\n return value > this.props.maxValue || value < this.props.minValue;\n }\n\n if (isNonNullable(this.props.minValue)) {\n return value < this.props.minValue;\n }\n\n if (isNonNullable(this.props.maxValue)) {\n return value > this.props.maxValue;\n }\n }\n\n private renderMenu(): React.ReactNode {\n const { top, height, nodeTop } = this.state;\n\n let shift = this.state.pos % itemHeight;\n if (shift < 0) {\n shift += itemHeight;\n }\n\n const from = (this.state.pos - shift + top) / itemHeight;\n const to = from + Math.ceil((height + shift) / itemHeight);\n const items = [];\n\n for (let i = from; i < to; ++i) {\n const disableItems = this.disableItems(i) || false;\n const className = cx({\n [styles.menuItem(this.theme)]: true,\n [styles.menuItemSelected(this.theme)]: i === 0,\n [styles.menuItemActive(this.theme)]: i === this.state.current,\n [styles.menuItemDisabled(this.theme)]: disableItems,\n });\n const clickHandler = {\n onMouseDown: preventDefault,\n onClick: this.handleItemClick(i),\n };\n items.push(\n <div\n data-tid={DateSelectDataTids.menuItem}\n data-prop-disabled={disableItems}\n key={i}\n className={className}\n onMouseEnter={() => this.setState({ current: i })}\n onMouseLeave={() => this.setState({ current: null })}\n {...clickHandler}\n >\n {this.getItem(i)}\n </div>,\n );\n }\n const style: {\n left?: number | string;\n right?: number | string;\n top: number;\n width?: number | string;\n } = {\n top: top - 5,\n left: 0,\n right: 0,\n };\n\n const shiftStyle: React.CSSProperties = {\n position: 'relative',\n top: -shift,\n };\n\n const holderClass = cx({\n [styles.menuHolder(this.theme)]: true,\n [styles.isTopCapped()]: this.state.topCapped,\n [styles.isBotCapped()]: this.state.botCapped,\n });\n\n let dropdownOffset = -itemHeight;\n if (nodeTop < -top) {\n const overflowOffsetDelta = this.state.topCapped ? 6 : 17;\n dropdownOffset -= nodeTop + top - overflowOffsetDelta;\n }\n\n return (\n <RenderLayer onClickOutside={this.close} onFocusOutside={this.close} active>\n <div>\n <DropdownContainer getParent={this.getAnchor} offsetY={dropdownOffset} offsetX={-10}>\n <div className={holderClass} style={style}>\n {!this.state.topCapped && (\n <div\n className={cx(styles.menu(this.theme), styles.menuUp())}\n onClick={this.handleUp}\n onMouseDown={this.handleLongClickUp}\n onMouseUp={this.handleLongClickStop}\n onMouseLeave={this.handleLongClickStop}\n onTouchStart={this.handleLongClickUp}\n onTouchEnd={this.handleLongClickStop}\n >\n <span>\n <ArrowChevronUpIcon />\n </span>\n </div>\n )}\n <div className={styles.itemsHolder()} style={{ height }}>\n <div ref={this.refItemsContainer} style={shiftStyle}>\n {items}\n </div>\n </div>\n {!this.state.botCapped && (\n <div\n className={cx(styles.menu(this.theme), styles.menuDown())}\n onClick={this.handleDown}\n onMouseDown={this.handleLongClickDown}\n onMouseUp={this.handleLongClickStop}\n onMouseLeave={this.handleLongClickStop}\n onTouchStart={this.handleLongClickDown}\n onTouchEnd={this.handleLongClickStop}\n >\n <span>\n <ArrowChevronDownIcon />\n </span>\n </div>\n )}\n </div>\n </DropdownContainer>\n </div>\n </RenderLayer>\n );\n }\n\n private refItemsContainer = (element: HTMLElement | null) => {\n if (!this.itemsContainer && element) {\n element.addEventListener('wheel', this.handleWheel, { passive: false });\n }\n if (this.itemsContainer && !element) {\n this.itemsContainer.removeEventListener('wheel', this.handleWheel);\n }\n\n if (isMobile) {\n if (!this.itemsContainer && element) {\n element.addEventListener('touchstart', this.handleTouchStart);\n element.addEventListener('touchmove', this.handleTouchMove);\n }\n if (this.itemsContainer && !element) {\n this.itemsContainer.removeEventListener('touchstart', this.handleTouchStart);\n this.itemsContainer.removeEventListener('touchmove', this.handleTouchMove);\n }\n }\n\n this.itemsContainer = element;\n };\n\n private handleLongClickUp = (event: React.MouseEvent | React.TouchEvent) => {\n event.preventDefault();\n this.longClickTimer = window.setTimeout(() => {\n this.setPositionRepeatTimer = window.setInterval(() => this.setPosition(this.state.pos - itemHeight), 100);\n }, 200);\n };\n\n private handleLongClickDown = (event: React.MouseEvent | React.TouchEvent) => {\n event.preventDefault();\n this.longClickTimer = window.setTimeout(() => {\n this.setPositionRepeatTimer = window.setInterval(() => this.setPosition(this.state.pos + itemHeight), 100);\n }, 200);\n };\n\n private handleLongClickStop = () => {\n clearTimeout(this.longClickTimer);\n clearTimeout(this.setPositionRepeatTimer);\n };\n\n private getAnchor = () => this.root;\n\n private handleWheel = (event: Event) => {\n if (!(event instanceof WheelEvent)) {\n return;\n }\n event.preventDefault();\n event.stopPropagation();\n\n let deltaY = event.deltaY;\n if (event.deltaMode === 1) {\n deltaY *= itemHeight;\n } else if (event.deltaMode === 2) {\n deltaY *= itemHeight * 4;\n }\n const pos = this.state.pos + deltaY;\n this.setPosition(pos);\n };\n\n private handleTouchStart = (event: Event) => {\n if (!(event instanceof TouchEvent)) {\n return;\n }\n\n this.touchStartY = event.targetTouches[0].clientY;\n };\n\n private handleTouchMove = (event: Event) => {\n if (!(event instanceof TouchEvent)) {\n return;\n }\n\n const { clientY } = event.changedTouches[0];\n const pixelRatio = window.devicePixelRatio;\n\n const deltaY = ((this.touchStartY || 0) - clientY) / pixelRatio;\n const pos = this.state.pos + deltaY + deltaY / itemHeight;\n\n this.touchStartY = clientY;\n\n this.setPosition(pos);\n };\n\n private handleItemClick = (shift: number) => {\n return (e: React.MouseEvent<HTMLElement>) => {\n const value = this.props.value + shift;\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n this.setState({ opened: false });\n };\n };\n\n private handleKey = (e: KeyboardEvent) => {\n if (this.state.opened && isKeyEscape(e)) {\n e.preventDefault();\n this.close();\n e.stopPropagation();\n }\n };\n\n private handleUp = (event: React.MouseEvent) => {\n event.preventDefault();\n this.setPosition(this.state.pos - itemHeight * this.yearStep);\n };\n\n private handleDown = (event: React.MouseEvent) => {\n event.preventDefault();\n this.setPosition(this.state.pos + itemHeight * this.yearStep);\n };\n\n private getItem(index: number) {\n const value = this.props.value + index;\n if (this.getProps().type === 'month') {\n return this.locale.months[value];\n }\n return value;\n }\n\n private setPosition(pos: number) {\n let top = itemsToMoveCount * itemHeight;\n let height = visibleYearsCount * itemHeight;\n if (this.getProps().type === 'month') {\n top = -this.props.value * itemHeight;\n height = monthsCount * itemHeight;\n }\n\n const minPos = this.getMinPos() - top;\n const maxPos = this.getMaxPos() - top - height + itemHeight;\n\n const calculatedPos = calculatePos(pos, minPos, maxPos);\n const topCapped = calculatedPos <= minPos;\n const botCapped = calculatedPos >= maxPos;\n\n this.setState({ pos: calculatedPos, top, height, topCapped, botCapped });\n }\n\n private getMinPos() {\n const type = this.getProps().type;\n if (type === 'month') {\n return -this.props.value * itemHeight;\n } else if (type === 'year') {\n return ((this.props.minValue || defaultMinYear) - this.props.value) * itemHeight;\n }\n return -Infinity; // Be defensive.\n }\n\n private getMaxPos() {\n const type = this.getProps().type;\n if (type === 'month') {\n return (visibleYearsCount - this.props.value) * itemHeight;\n } else if (type === 'year') {\n return ((this.props.maxValue || defaultMaxYear) - this.props.value) * itemHeight;\n }\n return Infinity; // Be defensive.\n }\n}\n\nfunction preventDefault(e: React.SyntheticEvent) {\n e.preventDefault();\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["DateSelect.tsx"],"names":["React","PropTypes","isNonNullable","isKeyEscape","DatePickerLocaleHelper","locale","RenderLayer","DropdownContainer","LayoutEvents","ThemeContext","ArrowTriangleUpDownIcon","ArrowChevronDownIcon","ArrowChevronUpIcon","isMobile","cx","getDOMRect","createPropsGetter","styles","itemHeight","visibleYearsCount","itemsToMoveCount","monthsCount","defaultMinYear","defaultMaxYear","calculatePos","pos","minPos","maxPos","DateSelectDataTids","caption","menuItem","DateSelect","getProps","defaultProps","state","botCapped","current","height","opened","top","topCapped","nodeTop","Infinity","root","itemsContainer","longClickTimer","setPositionRepeatTimer","yearStep","touchStartY","open","props","disabled","setPosition","setState","close","refRoot","element","setNodeTop","timeout","clearTimeout","setTimeout","refItemsContainer","addEventListener","handleWheel","passive","removeEventListener","handleTouchStart","handleTouchMove","handleLongClickUp","event","preventDefault","window","setInterval","handleLongClickDown","handleLongClickStop","getAnchor","WheelEvent","stopPropagation","deltaY","deltaMode","TouchEvent","targetTouches","clientY","changedTouches","pixelRatio","devicePixelRatio","handleItemClick","shift","value","onValueChange","handleKey","e","handleUp","handleDown","componentDidUpdate","componentDidMount","listener","addListener","componentWillUnmount","remove","render","theme","renderMain","width","rootProps","className","Boolean","style","ref","getItem","arrow","arrowDisabled","renderMenu","disableItems","index","maxValue","minValue","from","to","Math","ceil","items","i","menuItemSelected","menuItemActive","menuItemDisabled","clickHandler","onMouseDown","onClick","push","left","right","shiftStyle","position","holderClass","menuHolder","isTopCapped","isBotCapped","dropdownOffset","overflowOffsetDelta","menu","menuUp","itemsHolder","menuDown","type","months","getMinPos","getMaxPos","calculatedPos","PureComponent","__KONTUR_REACT_UI__","propTypes","bool","string","number","isRequired","oneOfType","func"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { isNonNullable } from '../../lib/utils';\nimport { isKeyEscape } from '../../lib/events/keyboard/identifiers';\nimport { DatePickerLocale, DatePickerLocaleHelper } from '../../components/DatePicker/locale';\nimport { locale } from '../../lib/locale/decorators';\nimport { RenderLayer } from '../RenderLayer';\nimport { DropdownContainer } from '../DropdownContainer';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { Nullable } from '../../typings/utility-types';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { ArrowTriangleUpDownIcon, ArrowChevronDownIcon, ArrowChevronUpIcon } from '../icons/16px';\nimport { isMobile } from '../../lib/client';\nimport { cx } from '../../lib/theming/Emotion';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { styles } from './DateSelect.styles';\n\nconst itemHeight = 24;\nconst visibleYearsCount = 11;\nconst itemsToMoveCount = -5;\nconst monthsCount = 12;\nconst defaultMinYear = 1900;\nconst defaultMaxYear = 2100;\n\nexport interface DateSelectProps {\n disabled?: boolean | null;\n onValueChange: (value: number) => void;\n type?: 'month' | 'year';\n value: number;\n width?: number | string;\n minValue?: number;\n maxValue?: number;\n}\n\nexport interface DateSelectState {\n botCapped: boolean;\n current: Nullable<number>;\n height: number;\n opened: boolean;\n pos: number;\n top: number;\n topCapped: boolean;\n nodeTop: number;\n}\n\nconst calculatePos = (pos: number, minPos: number, maxPos: number) => {\n if (maxPos <= pos) {\n return maxPos;\n }\n\n if (minPos >= pos) {\n return minPos;\n }\n\n return pos;\n};\n\nexport const DateSelectDataTids = {\n caption: 'DateSelect__caption',\n menuItem: 'DateSelect__menuItem',\n} as const;\n\ntype DefaultProps = Required<Pick<DateSelectProps, 'type' | 'width'>>;\n\n@locale('DatePicker', DatePickerLocaleHelper)\nexport class DateSelect extends React.PureComponent<DateSelectProps, DateSelectState> {\n public static __KONTUR_REACT_UI__ = 'DateSelect';\n\n public static propTypes = {\n disabled: PropTypes.bool,\n\n type: PropTypes.string,\n\n value: PropTypes.number.isRequired,\n\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n onValueChange: PropTypes.func,\n\n minValue: PropTypes.number,\n\n maxValue: PropTypes.number,\n };\n\n public static defaultProps: DefaultProps = {\n type: 'year',\n width: 'auto',\n };\n\n private getProps = createPropsGetter(DateSelect.defaultProps);\n\n public state = {\n botCapped: false,\n current: 0,\n height: 0,\n opened: false,\n pos: 0,\n top: 0,\n topCapped: false,\n nodeTop: Infinity,\n };\n\n private theme!: Theme;\n private readonly locale!: DatePickerLocale;\n private root: HTMLElement | null = null;\n private itemsContainer: HTMLElement | null = null;\n private listener: Nullable<ReturnType<typeof LayoutEvents.addListener>>;\n private timeout: NodeJS.Timeout | undefined;\n private longClickTimer = 0;\n private setPositionRepeatTimer = 0;\n private yearStep = 3;\n private touchStartY: Nullable<number> = null;\n\n public componentDidUpdate() {\n this.setNodeTop();\n }\n\n public componentDidMount() {\n this.listener = LayoutEvents.addListener(this.setNodeTop);\n this.setNodeTop();\n window.addEventListener('keydown', this.handleKey);\n }\n\n public componentWillUnmount() {\n if (this.listener) {\n this.listener.remove();\n }\n if (this.timeout) {\n clearTimeout(this.timeout);\n }\n if (this.longClickTimer) {\n clearTimeout(this.longClickTimer);\n }\n if (this.setPositionRepeatTimer) {\n clearTimeout(this.setPositionRepeatTimer);\n }\n window.removeEventListener('keydown', this.handleKey);\n }\n\n /**\n * @public\n */\n public open = () => {\n if (this.props.disabled) {\n return;\n }\n\n if (this.state.opened) {\n return;\n }\n\n this.setPosition(0);\n this.setState({\n opened: true,\n current: 0,\n });\n };\n\n /**\n * @public\n */\n public close = () => {\n if (!this.state.opened) {\n return;\n }\n\n this.setState({ opened: false });\n };\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { disabled } = this.props;\n const width = this.getProps().width;\n const rootProps = {\n className: cx({\n [styles.root(this.theme)]: true,\n [styles.disabled()]: Boolean(disabled),\n }),\n style: { width },\n ref: this.refRoot,\n };\n return (\n <span {...rootProps}>\n <div data-tid={DateSelectDataTids.caption} className={styles.caption()} onClick={this.open}>\n {this.getItem(0)}\n <div\n className={cx({\n [styles.arrow(this.theme)]: true,\n [styles.arrowDisabled()]: Boolean(disabled),\n })}\n >\n <ArrowTriangleUpDownIcon size={12} />\n </div>\n </div>\n {this.state.opened && this.renderMenu()}\n </span>\n );\n }\n\n private refRoot = (element: HTMLElement | null) => {\n this.root = element;\n };\n\n private setNodeTop = () => {\n const root = this.root;\n if (!root) {\n return;\n }\n if (this.timeout) {\n clearTimeout(this.timeout);\n }\n this.timeout = setTimeout(() =>\n this.setState({\n nodeTop: getDOMRect(root).top,\n }),\n );\n };\n\n private disableItems(index: number) {\n const value = this.props.value + index;\n if (isNonNullable(this.props.maxValue) && isNonNullable(this.props.minValue)) {\n return value > this.props.maxValue || value < this.props.minValue;\n }\n\n if (isNonNullable(this.props.minValue)) {\n return value < this.props.minValue;\n }\n\n if (isNonNullable(this.props.maxValue)) {\n return value > this.props.maxValue;\n }\n }\n\n private renderMenu(): React.ReactNode {\n const { top, height, nodeTop } = this.state;\n\n let shift = this.state.pos % itemHeight;\n if (shift < 0) {\n shift += itemHeight;\n }\n\n const from = (this.state.pos - shift + top) / itemHeight;\n const to = from + Math.ceil((height + shift) / itemHeight);\n const items = [];\n\n for (let i = from; i < to; ++i) {\n const disableItems = this.disableItems(i) || false;\n const className = cx({\n [styles.menuItem(this.theme)]: true,\n [styles.menuItemSelected(this.theme)]: i === 0,\n [styles.menuItemActive(this.theme)]: i === this.state.current,\n [styles.menuItemDisabled(this.theme)]: disableItems,\n });\n const clickHandler = {\n onMouseDown: preventDefault,\n onClick: this.handleItemClick(i),\n };\n items.push(\n <div\n data-tid={DateSelectDataTids.menuItem}\n data-prop-disabled={disableItems}\n key={i}\n className={className}\n onMouseEnter={() => this.setState({ current: i })}\n onMouseLeave={() => this.setState({ current: null })}\n {...clickHandler}\n >\n {this.getItem(i)}\n </div>,\n );\n }\n const style: {\n left?: number | string;\n right?: number | string;\n top: number;\n width?: number | string;\n } = {\n top: top - 5,\n left: 0,\n right: 0,\n };\n\n const shiftStyle: React.CSSProperties = {\n position: 'relative',\n top: -shift,\n };\n\n const holderClass = cx({\n [styles.menuHolder(this.theme)]: true,\n [styles.isTopCapped()]: this.state.topCapped,\n [styles.isBotCapped()]: this.state.botCapped,\n });\n\n let dropdownOffset = -itemHeight;\n if (nodeTop < -top) {\n const overflowOffsetDelta = this.state.topCapped ? 6 : 17;\n dropdownOffset -= nodeTop + top - overflowOffsetDelta;\n }\n\n return (\n <RenderLayer onClickOutside={this.close} onFocusOutside={this.close} active>\n <div>\n <DropdownContainer getParent={this.getAnchor} offsetY={dropdownOffset} offsetX={-10}>\n <div className={holderClass} style={style}>\n {!this.state.topCapped && (\n <div\n className={cx(styles.menu(this.theme), styles.menuUp())}\n onClick={this.handleUp}\n onMouseDown={this.handleLongClickUp}\n onMouseUp={this.handleLongClickStop}\n onMouseLeave={this.handleLongClickStop}\n onTouchStart={this.handleLongClickUp}\n onTouchEnd={this.handleLongClickStop}\n >\n <span>\n <ArrowChevronUpIcon />\n </span>\n </div>\n )}\n <div className={styles.itemsHolder()} style={{ height }}>\n <div ref={this.refItemsContainer} style={shiftStyle}>\n {items}\n </div>\n </div>\n {!this.state.botCapped && (\n <div\n className={cx(styles.menu(this.theme), styles.menuDown())}\n onClick={this.handleDown}\n onMouseDown={this.handleLongClickDown}\n onMouseUp={this.handleLongClickStop}\n onMouseLeave={this.handleLongClickStop}\n onTouchStart={this.handleLongClickDown}\n onTouchEnd={this.handleLongClickStop}\n >\n <span>\n <ArrowChevronDownIcon />\n </span>\n </div>\n )}\n </div>\n </DropdownContainer>\n </div>\n </RenderLayer>\n );\n }\n\n private refItemsContainer = (element: HTMLElement | null) => {\n if (!this.itemsContainer && element) {\n element.addEventListener('wheel', this.handleWheel, { passive: false });\n }\n if (this.itemsContainer && !element) {\n this.itemsContainer.removeEventListener('wheel', this.handleWheel);\n }\n\n if (isMobile) {\n if (!this.itemsContainer && element) {\n element.addEventListener('touchstart', this.handleTouchStart);\n element.addEventListener('touchmove', this.handleTouchMove);\n }\n if (this.itemsContainer && !element) {\n this.itemsContainer.removeEventListener('touchstart', this.handleTouchStart);\n this.itemsContainer.removeEventListener('touchmove', this.handleTouchMove);\n }\n }\n\n this.itemsContainer = element;\n };\n\n private handleLongClickUp = (event: React.MouseEvent | React.TouchEvent) => {\n event.preventDefault();\n this.longClickTimer = window.setTimeout(() => {\n this.setPositionRepeatTimer = window.setInterval(() => this.setPosition(this.state.pos - itemHeight), 100);\n }, 200);\n };\n\n private handleLongClickDown = (event: React.MouseEvent | React.TouchEvent) => {\n event.preventDefault();\n this.longClickTimer = window.setTimeout(() => {\n this.setPositionRepeatTimer = window.setInterval(() => this.setPosition(this.state.pos + itemHeight), 100);\n }, 200);\n };\n\n private handleLongClickStop = () => {\n clearTimeout(this.longClickTimer);\n clearTimeout(this.setPositionRepeatTimer);\n };\n\n private getAnchor = () => this.root;\n\n private handleWheel = (event: Event) => {\n if (!(event instanceof WheelEvent)) {\n return;\n }\n event.preventDefault();\n event.stopPropagation();\n\n let deltaY = event.deltaY;\n if (event.deltaMode === 1) {\n deltaY *= itemHeight;\n } else if (event.deltaMode === 2) {\n deltaY *= itemHeight * 4;\n }\n const pos = this.state.pos + deltaY;\n this.setPosition(pos);\n };\n\n private handleTouchStart = (event: Event) => {\n if (!(event instanceof TouchEvent)) {\n return;\n }\n\n this.touchStartY = event.targetTouches[0].clientY;\n };\n\n private handleTouchMove = (event: Event) => {\n if (!(event instanceof TouchEvent)) {\n return;\n }\n\n const { clientY } = event.changedTouches[0];\n const pixelRatio = window.devicePixelRatio;\n\n const deltaY = ((this.touchStartY || 0) - clientY) / pixelRatio;\n const pos = this.state.pos + deltaY + deltaY / itemHeight;\n\n this.touchStartY = clientY;\n\n this.setPosition(pos);\n };\n\n private handleItemClick = (shift: number) => {\n return () => {\n const value = this.props.value + shift;\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n this.setState({ opened: false });\n };\n };\n\n private handleKey = (e: KeyboardEvent) => {\n if (this.state.opened && isKeyEscape(e)) {\n e.preventDefault();\n this.close();\n e.stopPropagation();\n }\n };\n\n private handleUp = (event: React.MouseEvent) => {\n event.preventDefault();\n this.setPosition(this.state.pos - itemHeight * this.yearStep);\n };\n\n private handleDown = (event: React.MouseEvent) => {\n event.preventDefault();\n this.setPosition(this.state.pos + itemHeight * this.yearStep);\n };\n\n private getItem(index: number) {\n const value = this.props.value + index;\n if (this.getProps().type === 'month') {\n return this.locale.months[value];\n }\n return value;\n }\n\n private setPosition(pos: number) {\n let top = itemsToMoveCount * itemHeight;\n let height = visibleYearsCount * itemHeight;\n if (this.getProps().type === 'month') {\n top = -this.props.value * itemHeight;\n height = monthsCount * itemHeight;\n }\n\n const minPos = this.getMinPos() - top;\n const maxPos = this.getMaxPos() - top - height + itemHeight;\n\n const calculatedPos = calculatePos(pos, minPos, maxPos);\n const topCapped = calculatedPos <= minPos;\n const botCapped = calculatedPos >= maxPos;\n\n this.setState({ pos: calculatedPos, top, height, topCapped, botCapped });\n }\n\n private getMinPos() {\n const type = this.getProps().type;\n if (type === 'month') {\n return -this.props.value * itemHeight;\n } else if (type === 'year') {\n return ((this.props.minValue || defaultMinYear) - this.props.value) * itemHeight;\n }\n return -Infinity; // Be defensive.\n }\n\n private getMaxPos() {\n const type = this.getProps().type;\n if (type === 'month') {\n return (visibleYearsCount - this.props.value) * itemHeight;\n } else if (type === 'year') {\n return ((this.props.maxValue || defaultMaxYear) - this.props.value) * itemHeight;\n }\n return Infinity; // Be defensive.\n }\n}\n\nfunction preventDefault(e: React.SyntheticEvent) {\n e.preventDefault();\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["DropdownContainer.tsx"],"names":["React","LayoutEvents","RenderContainer","ZIndex","createPropsGetter","cx","isIE11","getDOMRect","styles","DropdownContainer","props","getProps","defaultProps","ZIndexRef","element","dom","isElement","node","Element","position","target","getParent","targetRect","document","body","docEl","documentElement","Error","scrollX","window","pageXOffset","scrollLeft","scrollY","pageYOffset","scrollTop","left","right","align","docWidth","offsetWidth","offsetX","offsetY","bottom","top","distanceToBottom","clientHeight","dropdownHeight","getHeight","state","isDocumentElementRoot","scrollHeight","setState","minWidth","getMinWidth","disablePortal","convertToRelativePosition","child","children","item","height","width","targetHeight","getIsDocumentElementRoot","componentDidMount","layoutSub","addListener","componentWillUnmount","remove","render","style","undefined","maxWidth","hasFixedWidth","content","alignRight","PureComponent","__KONTUR_REACT_UI__","htmlPosition","getComputedStyle","bodyPosition","hasLimitedHeightRoot","hasStaticRoot"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { RenderContainer } from '../RenderContainer';\nimport { ZIndex } from '../ZIndex';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { Nullable } from '../../typings/utility-types';\nimport { cx } from '../../lib/theming/Emotion';\nimport { isIE11 } from '../../lib/client';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\n\nimport { styles } from './DropdownContainer.styles';\n\nexport interface DropdownContainerPosition {\n top: Nullable<number>;\n bottom: Nullable<number>;\n left: Nullable<number>;\n right: Nullable<number>;\n}\n\nexport interface DropdownContainerProps {\n align?: 'left' | 'right';\n getParent: () => Nullable<HTMLElement>;\n children?: React.ReactNode;\n disablePortal?: boolean;\n offsetY?: number;\n offsetX?: number;\n hasFixedWidth?: boolean;\n}\n\nexport interface DropdownContainerState {\n position: Nullable<DropdownContainerPosition>;\n minWidth: number;\n isDocumentElementRoot?: boolean;\n}\n\ntype DefaultProps = Required<Pick<DropdownContainerProps, 'align' | 'disablePortal' | 'offsetY' | 'offsetX'>>;\n\nexport class DropdownContainer extends React.PureComponent<DropdownContainerProps, DropdownContainerState> {\n public static __KONTUR_REACT_UI__ = 'DropdownContainer';\n\n public static defaultProps: DefaultProps = {\n align: 'left',\n disablePortal: false,\n offsetX: 0,\n offsetY: -1,\n };\n\n private getProps = createPropsGetter(DropdownContainer.defaultProps);\n\n private dom: Nullable<HTMLDivElement>;\n private layoutSub: Nullable<ReturnType<typeof LayoutEvents.addListener>>;\n\n constructor(props: DropdownContainerProps) {\n super(props);\n\n this.state = { position: null, minWidth: 0, isDocumentElementRoot: getIsDocumentElementRoot() };\n }\n\n public componentDidMount() {\n this.position();\n this.layoutSub = LayoutEvents.addListener(this.position);\n }\n\n public componentWillUnmount() {\n if (this.layoutSub) {\n this.layoutSub.remove();\n }\n }\n\n public render() {\n let style: React.CSSProperties = {\n position: 'absolute',\n top: '0',\n };\n if (this.state.position) {\n const { top, bottom, left, right } = this.state.position;\n style = {\n ...style,\n top: top !== null ? top : undefined,\n bottom: bottom !== null ? bottom : undefined,\n left: left !== null ? left : undefined,\n right: right !== null ? right : undefined,\n minWidth: this.state.minWidth,\n maxWidth: this.props.hasFixedWidth ? this.state.minWidth : undefined,\n };\n }\n\n const content = (\n <ZIndex\n priority={'DropdownContainer'}\n wrapperRef={this.ZIndexRef}\n style={style}\n className={cx({\n [styles.alignRight()]: this.getProps().align === 'right' && !isIE11,\n })}\n >\n {this.props.children}\n </ZIndex>\n );\n\n return this.props.disablePortal ? content : <RenderContainer>{content}</RenderContainer>;\n }\n\n private ZIndexRef = (element: Nullable<HTMLDivElement>) => {\n this.dom = element;\n };\n\n private isElement = (node: Nullable<Element>): node is Element => {\n return node instanceof Element;\n };\n\n public position = () => {\n const target = this.props.getParent();\n const dom = this.dom;\n\n if (target && this.isElement(target) && dom) {\n const targetRect = getDOMRect(target);\n const { body, documentElement: docEl } = document;\n\n if (!docEl) {\n throw Error('There is no \"documentElement\" in \"document\"');\n }\n\n const scrollX = window.pageXOffset || docEl.scrollLeft || 0;\n const scrollY = window.pageYOffset || docEl.scrollTop || 0;\n\n let left = null;\n let right = null;\n\n if (this.getProps().align === 'right') {\n const docWidth = docEl.offsetWidth || 0;\n right = docWidth - (targetRect.right + scrollX) + this.getProps().offsetX;\n } else {\n left = targetRect.left + scrollX + this.getProps().offsetX;\n }\n\n const offsetY = this.getProps().offsetY || 0;\n let bottom = null;\n let top: number | null = targetRect.bottom + scrollY + offsetY;\n\n const distanceToBottom = docEl.clientHeight - targetRect.bottom;\n const dropdownHeight = this.getHeight();\n\n if (distanceToBottom < dropdownHeight && targetRect.top > dropdownHeight) {\n const clientHeight = this.state.isDocumentElementRoot ? docEl.clientHeight : body.scrollHeight;\n\n top = null;\n bottom = clientHeight + offsetY - scrollY - targetRect.top;\n }\n\n const position = {\n top,\n left,\n right,\n bottom,\n };\n\n this.setState({\n minWidth: this.getMinWidth(),\n position: this.getProps().disablePortal ? this.convertToRelativePosition(position) : position,\n });\n }\n };\n\n private getHeight = () => {\n if (!this.isElement(this.dom)) {\n return 0;\n }\n const child = this.dom.children.item(0);\n return getDOMRect(child).height;\n };\n\n private getMinWidth = () => {\n const target = this.props.getParent();\n return getDOMRect(target).width;\n };\n\n private convertToRelativePosition = (position: DropdownContainerPosition): DropdownContainerPosition => {\n const target = this.props.getParent();\n const offsetX = this.getProps().offsetX || 0;\n const offsetY = this.getProps().offsetY || 0;\n const { top, bottom, left, right } = position;\n if (target && this.isElement(target)) {\n const targetHeight = getDOMRect(target).height;\n return {\n top: top !== null ? targetHeight + offsetY : null,\n bottom: bottom !== null ? targetHeight + offsetY : null,\n left: left !== null ? offsetX : null,\n right: right !== null ? offsetX : null,\n };\n }\n return {\n top: offsetY,\n bottom: null,\n left: offsetX,\n right: null,\n };\n };\n}\n\nconst getIsDocumentElementRoot = () => {\n const { body, documentElement } = document;\n const htmlPosition = getComputedStyle(documentElement).position;\n const bodyPosition = getComputedStyle(body).position;\n\n const hasLimitedHeightRoot = body.scrollHeight > body.clientHeight;\n const hasStaticRoot = htmlPosition === 'static' && bodyPosition === 'static';\n return hasLimitedHeightRoot || hasStaticRoot;\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["DropdownContainer.tsx"],"names":["React","LayoutEvents","RenderContainer","ZIndex","createPropsGetter","cx","isIE11","getDOMRect","styles","DropdownContainer","props","getProps","defaultProps","ZIndexRef","element","dom","isElement","node","Element","position","target","getParent","targetRect","document","body","docEl","documentElement","Error","scrollX","window","pageXOffset","scrollLeft","scrollY","pageYOffset","scrollTop","left","right","align","docWidth","offsetWidth","offsetX","offsetY","bottom","top","distanceToBottom","clientHeight","dropdownHeight","getHeight","state","isDocumentElementRoot","scrollHeight","setState","minWidth","getMinWidth","disablePortal","convertToRelativePosition","child","children","item","height","width","targetHeight","getIsDocumentElementRoot","componentDidMount","layoutSub","addListener","componentWillUnmount","remove","render","style","undefined","maxWidth","hasFixedWidth","content","alignRight","PureComponent","__KONTUR_REACT_UI__","htmlPosition","getComputedStyle","bodyPosition","hasLimitedHeightRoot","hasStaticRoot"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { RenderContainer } from '../RenderContainer';\nimport { ZIndex } from '../ZIndex';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { Nullable } from '../../typings/utility-types';\nimport { cx } from '../../lib/theming/Emotion';\nimport { isIE11 } from '../../lib/client';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\n\nimport { styles } from './DropdownContainer.styles';\n\nexport interface DropdownContainerPosition {\n top: Nullable<number>;\n bottom: Nullable<number>;\n left: Nullable<number>;\n right: Nullable<number>;\n}\n\nexport interface DropdownContainerProps {\n align?: 'left' | 'right';\n getParent: () => Nullable<Element>;\n children?: React.ReactNode;\n disablePortal?: boolean;\n offsetY?: number;\n offsetX?: number;\n hasFixedWidth?: boolean;\n}\n\nexport interface DropdownContainerState {\n position: Nullable<DropdownContainerPosition>;\n minWidth: number;\n isDocumentElementRoot?: boolean;\n}\n\ntype DefaultProps = Required<Pick<DropdownContainerProps, 'align' | 'disablePortal' | 'offsetY' | 'offsetX'>>;\n\nexport class DropdownContainer extends React.PureComponent<DropdownContainerProps, DropdownContainerState> {\n public static __KONTUR_REACT_UI__ = 'DropdownContainer';\n\n public static defaultProps: DefaultProps = {\n align: 'left',\n disablePortal: false,\n offsetX: 0,\n offsetY: -1,\n };\n\n private getProps = createPropsGetter(DropdownContainer.defaultProps);\n\n private dom: Nullable<HTMLDivElement>;\n private layoutSub: Nullable<ReturnType<typeof LayoutEvents.addListener>>;\n\n constructor(props: DropdownContainerProps) {\n super(props);\n\n this.state = { position: null, minWidth: 0, isDocumentElementRoot: getIsDocumentElementRoot() };\n }\n\n public componentDidMount() {\n this.position();\n this.layoutSub = LayoutEvents.addListener(this.position);\n }\n\n public componentWillUnmount() {\n if (this.layoutSub) {\n this.layoutSub.remove();\n }\n }\n\n public render() {\n let style: React.CSSProperties = {\n position: 'absolute',\n top: '0',\n };\n if (this.state.position) {\n const { top, bottom, left, right } = this.state.position;\n style = {\n ...style,\n top: top !== null ? top : undefined,\n bottom: bottom !== null ? bottom : undefined,\n left: left !== null ? left : undefined,\n right: right !== null ? right : undefined,\n minWidth: this.state.minWidth,\n maxWidth: this.props.hasFixedWidth ? this.state.minWidth : undefined,\n };\n }\n\n const content = (\n <ZIndex\n priority={'DropdownContainer'}\n wrapperRef={this.ZIndexRef}\n style={style}\n className={cx({\n [styles.alignRight()]: this.getProps().align === 'right' && !isIE11,\n })}\n >\n {this.props.children}\n </ZIndex>\n );\n\n return this.props.disablePortal ? content : <RenderContainer>{content}</RenderContainer>;\n }\n\n private ZIndexRef = (element: Nullable<HTMLDivElement>) => {\n this.dom = element;\n };\n\n private isElement = (node: Nullable<Element>): node is Element => {\n return node instanceof Element;\n };\n\n public position = () => {\n const target = this.props.getParent();\n const dom = this.dom;\n\n if (target && this.isElement(target) && dom) {\n const targetRect = getDOMRect(target);\n const { body, documentElement: docEl } = document;\n\n if (!docEl) {\n throw Error('There is no \"documentElement\" in \"document\"');\n }\n\n const scrollX = window.pageXOffset || docEl.scrollLeft || 0;\n const scrollY = window.pageYOffset || docEl.scrollTop || 0;\n\n let left = null;\n let right = null;\n\n if (this.getProps().align === 'right') {\n const docWidth = docEl.offsetWidth || 0;\n right = docWidth - (targetRect.right + scrollX) + this.getProps().offsetX;\n } else {\n left = targetRect.left + scrollX + this.getProps().offsetX;\n }\n\n const offsetY = this.getProps().offsetY || 0;\n let bottom = null;\n let top: number | null = targetRect.bottom + scrollY + offsetY;\n\n const distanceToBottom = docEl.clientHeight - targetRect.bottom;\n const dropdownHeight = this.getHeight();\n\n if (distanceToBottom < dropdownHeight && targetRect.top > dropdownHeight) {\n const clientHeight = this.state.isDocumentElementRoot ? docEl.clientHeight : body.scrollHeight;\n\n top = null;\n bottom = clientHeight + offsetY - scrollY - targetRect.top;\n }\n\n const position = {\n top,\n left,\n right,\n bottom,\n };\n\n this.setState({\n minWidth: this.getMinWidth(),\n position: this.getProps().disablePortal ? this.convertToRelativePosition(position) : position,\n });\n }\n };\n\n private getHeight = () => {\n if (!this.isElement(this.dom)) {\n return 0;\n }\n const child = this.dom.children.item(0);\n return getDOMRect(child).height;\n };\n\n private getMinWidth = () => {\n const target = this.props.getParent();\n return getDOMRect(target).width;\n };\n\n private convertToRelativePosition = (position: DropdownContainerPosition): DropdownContainerPosition => {\n const target = this.props.getParent();\n const offsetX = this.getProps().offsetX || 0;\n const offsetY = this.getProps().offsetY || 0;\n const { top, bottom, left, right } = position;\n if (target && this.isElement(target)) {\n const targetHeight = getDOMRect(target).height;\n return {\n top: top !== null ? targetHeight + offsetY : null,\n bottom: bottom !== null ? targetHeight + offsetY : null,\n left: left !== null ? offsetX : null,\n right: right !== null ? offsetX : null,\n };\n }\n return {\n top: offsetY,\n bottom: null,\n left: offsetX,\n right: null,\n };\n };\n}\n\nconst getIsDocumentElementRoot = () => {\n const { body, documentElement } = document;\n const htmlPosition = getComputedStyle(documentElement).position;\n const bodyPosition = getComputedStyle(body).position;\n\n const hasLimitedHeightRoot = body.scrollHeight > body.clientHeight;\n const hasStaticRoot = htmlPosition === 'static' && bodyPosition === 'static';\n return hasLimitedHeightRoot || hasStaticRoot;\n};\n"]}
|
|
@@ -8,7 +8,7 @@ export interface DropdownContainerPosition {
|
|
|
8
8
|
}
|
|
9
9
|
export interface DropdownContainerProps {
|
|
10
10
|
align?: 'left' | 'right';
|
|
11
|
-
getParent: () => Nullable<
|
|
11
|
+
getParent: () => Nullable<Element>;
|
|
12
12
|
children?: React.ReactNode;
|
|
13
13
|
disablePortal?: boolean;
|
|
14
14
|
offsetY?: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["withFileUploaderControlProvider.tsx"],"names":["React","FileUploaderControlProvider","withFileUploaderControlProvider","Component","memo","forwardRef","props","ref","onRemove","onValueChange","onAttach","rest"],"mappings":"yNAAA;AACA,OAAOA,KAAP,MAAqC,OAArC;;AAEA,SAASC,2BAAT,QAA8E,+BAA9E;;AAEA,OAAO,IAAMC,+BAA+B,GAAG,SAAlCA,+BAAkC;AAC7CC,SAD6C;;;AAI1C;AACH,sBAAOH,KAAK,CAACI,IAAN;AACLJ,EAAAA,KAAK,CAACK,UAAN;AACE,YAACC,KAAD,EAAmDC,GAAnD,EAA2D;AACzD,QAAQC,QAAR,GAAuDF,KAAvD,CAAQE,QAAR,CAAkBC,aAAlB,GAAuDH,KAAvD,CAAkBG,aAAlB,CAAiCC,QAAjC,GAAuDJ,KAAvD,CAAiCI,QAAjC,CAA8CC,IAA9C,iCAAuDL,KAAvD;AACA;AACE,0BAAC,2BAAD,EAAiCA,KAAjC;AACE,0BAAC,SAAD,aAAW,GAAG,EAAEC,GAAhB,IAAyBI,IAAzB,EADF,CADF;;;AAKD,GARH,CADK,CAAP;;;AAYD,CAjBM","sourcesContent":["/* eslint-disable react/display-name */\nimport React, { ComponentType } from 'react';\n\nimport { FileUploaderControlProvider, FileUploaderControlProviderProps } from './FileUploaderControlProvider';\n\nexport const withFileUploaderControlProvider = <TProps extends
|
|
1
|
+
{"version":3,"sources":["withFileUploaderControlProvider.tsx"],"names":["React","FileUploaderControlProvider","withFileUploaderControlProvider","Component","memo","forwardRef","props","ref","onRemove","onValueChange","onAttach","rest"],"mappings":"yNAAA;AACA,OAAOA,KAAP,MAAqC,OAArC;;AAEA,SAASC,2BAAT,QAA8E,+BAA9E;;AAEA,OAAO,IAAMC,+BAA+B,GAAG,SAAlCA,+BAAkC;AAC7CC,SAD6C;;;AAI1C;AACH,sBAAOH,KAAK,CAACI,IAAN;AACLJ,EAAAA,KAAK,CAACK,UAAN;AACE,YAACC,KAAD,EAAmDC,GAAnD,EAA2D;AACzD,QAAQC,QAAR,GAAuDF,KAAvD,CAAQE,QAAR,CAAkBC,aAAlB,GAAuDH,KAAvD,CAAkBG,aAAlB,CAAiCC,QAAjC,GAAuDJ,KAAvD,CAAiCI,QAAjC,CAA8CC,IAA9C,iCAAuDL,KAAvD;AACA;AACE,0BAAC,2BAAD,EAAiCA,KAAjC;AACE,0BAAC,SAAD,aAAW,GAAG,EAAEC,GAAhB,IAAyBI,IAAzB,EADF,CADF;;;AAKD,GARH,CADK,CAAP;;;AAYD,CAjBM","sourcesContent":["/* eslint-disable react/display-name */\nimport React, { ComponentType } from 'react';\n\nimport { FileUploaderControlProvider, FileUploaderControlProviderProps } from './FileUploaderControlProvider';\n\nexport const withFileUploaderControlProvider = <TProps extends Record<string, any>, TRef extends Record<string, any>>(\n Component: ComponentType<\n Pick<TProps & FileUploaderControlProviderProps, Exclude<keyof TProps, keyof FileUploaderControlProviderProps>>\n >,\n) => {\n return React.memo(\n React.forwardRef<TRef, TProps & FileUploaderControlProviderProps>(\n (props: TProps & FileUploaderControlProviderProps, ref) => {\n const { onRemove, onValueChange, onAttach, ...rest } = props;\n return (\n <FileUploaderControlProvider {...props}>\n <Component ref={ref} {...rest} />\n </FileUploaderControlProvider>\n );\n },\n ),\n );\n};\n"]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import React, { ComponentType } from 'react';
|
|
2
2
|
import { FileUploaderControlProviderProps } from './FileUploaderControlProvider';
|
|
3
|
-
export declare const withFileUploaderControlProvider: <TProps extends
|
|
3
|
+
export declare const withFileUploaderControlProvider: <TProps extends Record<string, any>, TRef extends Record<string, any>>(Component: React.ComponentType<Pick<TProps & FileUploaderControlProviderProps, Exclude<keyof TProps, keyof FileUploaderControlProviderProps>>>) => React.MemoExoticComponent<React.ForwardRefExoticComponent<React.PropsWithoutRef<TProps & FileUploaderControlProviderProps> & React.RefAttributes<TRef>>>;
|
|
@@ -40,7 +40,8 @@ export var HideBodyVerticalScroll = /*#__PURE__*/function (_React$Component) {
|
|
|
40
40
|
var clientHeight = document.clientHeight,
|
|
41
41
|
scrollHeight = document.scrollHeight;
|
|
42
42
|
var documentComputedStyle = getComputedStyle(document);
|
|
43
|
-
var
|
|
43
|
+
var scrollbarConst = getComputedStyle(document).overflowY === 'scroll';
|
|
44
|
+
var scrollWidth = clientHeight < scrollHeight || scrollbarConst ? getScrollWidth() : 0;
|
|
44
45
|
var documentMargin = parseFloat(documentComputedStyle.marginRight || '');
|
|
45
46
|
var className = generateDocumentStyle(documentMargin + scrollWidth);
|
|
46
47
|
disposeDocumentStyle = _this.attachStyle(document, className);
|
package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll/HideBodyVerticalScroll.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["HideBodyVerticalScroll.tsx"],"names":["React","getScrollWidth","css","disposeDocumentStyle","HideBodyVerticalScroll","initialScroll","master","updateScrollVisibility","document","documentElement","shouldHide","hideScroll","clientHeight","scrollHeight","documentComputedStyle","getComputedStyle","scrollWidth","documentMargin","parseFloat","marginRight","className","generateDocumentStyle","attachStyle","element","classList","add","remove","restoreStyles","scrollTop","componentDidMount","counter","VerticalScrollCounter","increment","window","addEventListener","componentDidUpdate","componentWillUnmount","decrement","removeEventListener","render","Component","__KONTUR_REACT_UI__","RetailUIVerticalScrollCounter","get"],"mappings":"0LAAA,OAAOA,KAAP,MAAkB,OAAlB;;AAEA,SAASC,cAAT,QAA+B,8BAA/B;AACA,SAASC,GAAT,QAAoB,2BAApB;;AAEA,IAAIC,oBAAyC,GAAG,IAAhD;;AAEA,WAAaC,sBAAb;;;AAGUC,IAAAA,aAHV,GAG0B,CAH1B;AAIUC,IAAAA,MAJV,GAImB,KAJnB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCUC,IAAAA,sBAlCV,GAkCmC,YAAM;AACrC,sBAA4BC,QAA5B,CAAQC,eAAR,aAAQA,eAAR;AACA,UAAI,CAACA,eAAL,EAAsB;AACpB;AACD;AACD,UAAMC,UAAU,GAAG,CAACP,oBAApB;AACA,UAAIO,UAAJ,EAAgB;AACd,cAAKC,UAAL,CAAgBF,eAAhB;AACD;AACF,KA3CH;;AA6CUE,IAAAA,UA7CV,GA6CuB,UAACH,QAAD,EAA2B;AAC9C,UAAQI,YAAR,GAAuCJ,QAAvC,CAAQI,YAAR,CAAsBC,YAAtB,GAAuCL,QAAvC,CAAsBK,YAAtB;AACA,UAAMC,qBAAqB,GAAGC,gBAAgB,CAACP,QAAD,CAA9C;AACA,UAAMQ,WAAW,
|
|
1
|
+
{"version":3,"sources":["HideBodyVerticalScroll.tsx"],"names":["React","getScrollWidth","css","disposeDocumentStyle","HideBodyVerticalScroll","initialScroll","master","updateScrollVisibility","document","documentElement","shouldHide","hideScroll","clientHeight","scrollHeight","documentComputedStyle","getComputedStyle","scrollbarConst","overflowY","scrollWidth","documentMargin","parseFloat","marginRight","className","generateDocumentStyle","attachStyle","element","classList","add","remove","restoreStyles","scrollTop","componentDidMount","counter","VerticalScrollCounter","increment","window","addEventListener","componentDidUpdate","componentWillUnmount","decrement","removeEventListener","render","Component","__KONTUR_REACT_UI__","RetailUIVerticalScrollCounter","get"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { getScrollWidth } from '../../lib/dom/getScrollWidth';\nimport { css } from '../../lib/theming/Emotion';\n\nlet disposeDocumentStyle: (() => void) | null = null;\n\nexport class HideBodyVerticalScroll extends React.Component {\n public static __KONTUR_REACT_UI__ = 'HideBodyVerticalScroll';\n\n private initialScroll = 0;\n private master = false;\n\n public componentDidMount() {\n const counter = VerticalScrollCounter.increment();\n if (counter === 1) {\n this.master = true;\n this.initialScroll = document.documentElement ? document.documentElement.scrollTop : 0;\n this.updateScrollVisibility();\n window.addEventListener('resize', this.updateScrollVisibility);\n }\n }\n\n public componentDidUpdate() {\n if (this.master) {\n this.updateScrollVisibility();\n }\n }\n\n public componentWillUnmount() {\n const counter = VerticalScrollCounter.decrement();\n if (counter === 0) {\n this.restoreStyles();\n window.removeEventListener('resize', this.updateScrollVisibility);\n }\n }\n\n public render() {\n return null;\n }\n\n private updateScrollVisibility = () => {\n const { documentElement } = document;\n if (!documentElement) {\n return;\n }\n const shouldHide = !disposeDocumentStyle;\n if (shouldHide) {\n this.hideScroll(documentElement);\n }\n };\n\n private hideScroll = (document: HTMLElement) => {\n const { clientHeight, scrollHeight } = document;\n const documentComputedStyle = getComputedStyle(document);\n const scrollbarConst = getComputedStyle(document).overflowY === 'scroll';\n const scrollWidth = clientHeight < scrollHeight || scrollbarConst ? getScrollWidth() : 0;\n const documentMargin = parseFloat(documentComputedStyle.marginRight || '');\n const className = generateDocumentStyle(documentMargin + scrollWidth);\n\n disposeDocumentStyle = this.attachStyle(document, className);\n };\n\n private attachStyle = (element: HTMLElement, className: string) => {\n element.classList.add(className);\n return () => {\n element.classList.remove(className);\n };\n };\n\n private restoreStyles = () => {\n if (disposeDocumentStyle) {\n disposeDocumentStyle();\n disposeDocumentStyle = null;\n\n const { documentElement } = document;\n\n if (documentElement) {\n documentElement.scrollTop = this.initialScroll;\n }\n }\n };\n}\n\nclass VerticalScrollCounter {\n public static increment = (): number => {\n const counter = window.RetailUIVerticalScrollCounter || 0;\n return (window.RetailUIVerticalScrollCounter = counter + 1);\n };\n\n public static decrement = (): number => {\n const counter = window.RetailUIVerticalScrollCounter || 0;\n return (window.RetailUIVerticalScrollCounter = counter - 1);\n };\n\n public static get = (): number => {\n return window.RetailUIVerticalScrollCounter || 0;\n };\n}\n\nfunction generateDocumentStyle(documentMargin: number) {\n return css`\n overflow: hidden !important;\n margin-right: ${documentMargin}px !important;\n height: 100%;\n `;\n}\n"]}
|