@skbkontur/react-ui 3.6.0 → 3.8.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 +71 -0
- package/cjs/components/Button/Button.d.ts +1 -0
- package/cjs/components/Button/Button.js +7 -4
- package/cjs/components/Button/Button.js.map +1 -1
- package/cjs/components/Button/Button.styles.js +2 -2
- package/cjs/components/Button/Button.styles.js.map +1 -1
- package/cjs/components/Checkbox/Checkbox.js +9 -8
- package/cjs/components/Checkbox/Checkbox.js.map +1 -1
- package/cjs/components/Checkbox/Checkbox.styles.js +3 -2
- package/cjs/components/Checkbox/Checkbox.styles.js.map +1 -1
- package/cjs/components/CurrencyLabel/CurrencyLabel.js +14 -5
- package/cjs/components/CurrencyLabel/CurrencyLabel.js.map +1 -1
- package/cjs/components/CurrencyLabel/CurrencyLabel.styles.d.ts +4 -0
- package/cjs/components/CurrencyLabel/CurrencyLabel.styles.js +9 -0
- package/cjs/components/CurrencyLabel/CurrencyLabel.styles.js.map +1 -0
- package/cjs/components/FxInput/FxInput.js +1 -1
- package/cjs/components/FxInput/FxInput.js.map +1 -1
- package/cjs/components/Input/Input.styles.js +1 -1
- package/cjs/components/Input/Input.styles.js.map +1 -1
- package/cjs/components/Kebab/Kebab.js +2 -2
- package/cjs/components/Kebab/Kebab.js.map +1 -1
- package/cjs/components/Link/Link.js +2 -2
- package/cjs/components/Link/Link.js.map +1 -1
- package/cjs/components/Loader/Loader.d.ts +3 -1
- package/cjs/components/Loader/Loader.js +20 -1
- package/cjs/components/Loader/Loader.js.map +1 -1
- package/cjs/components/MenuItem/MenuItem.md +1 -1
- package/cjs/components/MenuItem/MenuItem.styles.js +3 -2
- package/cjs/components/MenuItem/MenuItem.styles.js.map +1 -1
- package/cjs/components/Modal/Modal.styles.d.ts +1 -0
- package/cjs/components/Modal/Modal.styles.js +24 -21
- package/cjs/components/Modal/Modal.styles.js.map +1 -1
- package/cjs/components/Modal/ModalClose.js +23 -3
- package/cjs/components/Modal/ModalClose.js.map +1 -1
- package/cjs/components/Paging/Paging.js +2 -2
- package/cjs/components/Paging/Paging.js.map +1 -1
- package/cjs/components/Paging/Paging.styles.js +2 -1
- package/cjs/components/Paging/Paging.styles.js.map +1 -1
- package/cjs/components/Radio/Radio.d.ts +9 -1
- package/cjs/components/Radio/Radio.js +37 -4
- package/cjs/components/Radio/Radio.js.map +1 -1
- package/cjs/components/Radio/Radio.styles.d.ts +1 -1
- package/cjs/components/Radio/Radio.styles.js +5 -10
- package/cjs/components/Radio/Radio.styles.js.map +1 -1
- package/cjs/components/ScrollContainer/ScrollBar.d.ts +37 -0
- package/cjs/components/ScrollContainer/ScrollBar.js +244 -0
- package/cjs/components/ScrollContainer/ScrollBar.js.map +1 -0
- package/cjs/components/ScrollContainer/ScrollContainer.constants.d.ts +23 -0
- package/cjs/components/ScrollContainer/ScrollContainer.constants.js +33 -0
- package/cjs/components/ScrollContainer/ScrollContainer.constants.js.map +1 -0
- package/cjs/components/ScrollContainer/ScrollContainer.d.ts +38 -23
- package/cjs/components/ScrollContainer/ScrollContainer.helpers.d.ts +10 -0
- package/cjs/components/ScrollContainer/ScrollContainer.helpers.js +62 -0
- package/cjs/components/ScrollContainer/ScrollContainer.helpers.js.map +1 -0
- package/cjs/components/ScrollContainer/ScrollContainer.js +81 -153
- package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
- package/cjs/components/ScrollContainer/ScrollContainer.md +62 -13
- package/cjs/components/ScrollContainer/ScrollContainer.styles.d.ts +12 -3
- package/cjs/components/ScrollContainer/ScrollContainer.styles.js +72 -9
- package/cjs/components/ScrollContainer/ScrollContainer.styles.js.map +1 -1
- package/cjs/components/SidePage/SidePage.d.ts +1 -2
- package/cjs/components/SidePage/SidePage.js +1 -5
- package/cjs/components/SidePage/SidePage.js.map +1 -1
- package/cjs/components/SidePage/SidePage.styles.d.ts +2 -1
- package/cjs/components/SidePage/SidePage.styles.js +44 -28
- package/cjs/components/SidePage/SidePage.styles.js.map +1 -1
- package/cjs/components/SidePage/SidePageHeader.d.ts +4 -1
- package/cjs/components/SidePage/SidePageHeader.js +33 -23
- package/cjs/components/SidePage/SidePageHeader.js.map +1 -1
- package/cjs/components/Switcher/Switcher.js +1 -1
- package/cjs/components/Switcher/Switcher.js.map +1 -1
- package/cjs/components/Switcher/Switcher.styles.d.ts +1 -1
- package/cjs/components/Switcher/Switcher.styles.js +3 -2
- package/cjs/components/Switcher/Switcher.styles.js.map +1 -1
- package/cjs/components/Tabs/Tab.d.ts +0 -3
- package/cjs/components/Tabs/Tab.js +3 -13
- package/cjs/components/Tabs/Tab.js.map +1 -1
- package/cjs/components/Tabs/Tab.styles.js +2 -2
- package/cjs/components/Tabs/Tab.styles.js.map +1 -1
- package/cjs/components/Toggle/Toggle.js +6 -5
- package/cjs/components/Toggle/Toggle.js.map +1 -1
- package/cjs/components/Toggle/Toggle.styles.d.ts +1 -0
- package/cjs/components/Toggle/Toggle.styles.js +26 -16
- package/cjs/components/Toggle/Toggle.styles.js.map +1 -1
- package/cjs/components/Token/Token.styles.js +8 -9
- package/cjs/components/Token/Token.styles.js.map +1 -1
- package/cjs/components/TokenInput/TokenInput.d.ts +8 -0
- package/cjs/components/TokenInput/TokenInput.js +24 -2
- package/cjs/components/TokenInput/TokenInput.js.map +1 -1
- package/cjs/components/Tooltip/Tooltip.styles.js +2 -1
- package/cjs/components/Tooltip/Tooltip.styles.js.map +1 -1
- package/cjs/internal/CustomComboBox/ComboBoxView.js +2 -1
- package/cjs/internal/CustomComboBox/ComboBoxView.js.map +1 -1
- package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js +3 -2
- package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js.map +1 -1
- package/cjs/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.js +5 -7
- package/cjs/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.js.map +1 -1
- package/cjs/internal/InputLikeText/InputLikeText.js +2 -1
- package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
- package/cjs/internal/PopupMenu/PopupMenu.js +1 -1
- package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
- package/cjs/internal/RenderContainer/RenderContainer.js +2 -1
- package/cjs/internal/RenderContainer/RenderContainer.js.map +1 -1
- package/cjs/internal/ThemePlayground/darkTheme.js +3 -3
- package/cjs/internal/ThemePlayground/darkTheme.js.map +1 -1
- package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
- package/cjs/internal/icons/CrossIcon.js +8 -1
- package/cjs/internal/icons/CrossIcon.js.map +1 -1
- package/cjs/internal/themes/DefaultTheme.d.ts +23 -7
- package/cjs/internal/themes/DefaultTheme.js +77 -32
- package/cjs/internal/themes/DefaultTheme.js.map +1 -1
- package/cjs/internal/themes/FlatTheme.d.ts +4 -4
- package/cjs/internal/themes/FlatTheme.js +16 -8
- package/cjs/internal/themes/FlatTheme.js.map +1 -1
- package/cjs/internal/themes/Theme8px.d.ts +0 -5
- package/cjs/internal/themes/Theme8px.js +2 -12
- package/cjs/internal/themes/Theme8px.js.map +1 -1
- package/cjs/lib/Upgrades.d.ts +2 -0
- package/cjs/lib/Upgrades.js +14 -0
- package/cjs/lib/Upgrades.js.map +1 -1
- package/cjs/lib/events/keyListener.d.ts +7 -0
- package/cjs/lib/events/keyListener.js +22 -0
- package/cjs/lib/events/keyListener.js.map +1 -0
- package/cjs/lib/events/keyboard/identifiers.d.ts +1 -0
- package/cjs/lib/events/keyboard/identifiers.js +6 -1
- package/cjs/lib/events/keyboard/identifiers.js.map +1 -1
- package/cjs/lib/events/tabListener.d.ts +1 -6
- package/cjs/lib/events/tabListener.js +2 -15
- package/cjs/lib/events/tabListener.js.map +1 -1
- package/cjs/lib/locale/LOCALECONTEXT.md +1 -1
- package/cjs/lib/styles/ColorFunctions.js +1 -1
- package/cjs/lib/styles/ColorFunctions.js.map +1 -1
- package/cjs/lib/theming/Emotion.js +1 -1
- package/cjs/lib/theming/Emotion.js.map +1 -1
- package/cjs/lib/theming/ThemeContext.md +1 -1
- package/cjs/lib/utils.d.ts +7 -0
- package/cjs/lib/utils.js +12 -2
- package/cjs/lib/utils.js.map +1 -1
- package/components/Button/Button/Button.js +5 -4
- package/components/Button/Button/Button.js.map +1 -1
- package/components/Button/Button.d.ts +1 -0
- package/components/Button/Button.styles/Button.styles.js +1 -1
- package/components/Button/Button.styles/Button.styles.js.map +1 -1
- package/components/Checkbox/Checkbox/Checkbox.js +5 -5
- package/components/Checkbox/Checkbox/Checkbox.js.map +1 -1
- package/components/Checkbox/Checkbox.styles/Checkbox.styles.js +2 -2
- package/components/Checkbox/Checkbox.styles/Checkbox.styles.js.map +1 -1
- package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js +11 -5
- package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js.map +1 -1
- package/components/CurrencyLabel/CurrencyLabel.styles/CurrencyLabel.styles.js +10 -0
- package/components/CurrencyLabel/CurrencyLabel.styles/CurrencyLabel.styles.js.map +1 -0
- package/components/CurrencyLabel/CurrencyLabel.styles/package.json +6 -0
- package/components/CurrencyLabel/CurrencyLabel.styles.d.ts +4 -0
- package/components/FxInput/FxInput/FxInput.js +2 -1
- package/components/FxInput/FxInput/FxInput.js.map +1 -1
- package/components/Input/Input.styles/Input.styles.js +1 -1
- package/components/Input/Input.styles/Input.styles.js.map +1 -1
- package/components/Kebab/Kebab/Kebab.js +2 -2
- package/components/Kebab/Kebab/Kebab.js.map +1 -1
- package/components/Link/Link/Link.js +2 -2
- package/components/Link/Link/Link.js.map +1 -1
- package/components/Loader/Loader/Loader.js +34 -14
- package/components/Loader/Loader/Loader.js.map +1 -1
- package/components/Loader/Loader.d.ts +3 -1
- package/components/MenuItem/MenuItem.md +1 -1
- package/components/MenuItem/MenuItem.styles/MenuItem.styles.js +1 -1
- package/components/MenuItem/MenuItem.styles/MenuItem.styles.js.map +1 -1
- package/components/Modal/Modal.styles/Modal.styles.js +18 -15
- package/components/Modal/Modal.styles/Modal.styles.js.map +1 -1
- package/components/Modal/Modal.styles.d.ts +1 -0
- package/components/Modal/ModalClose/ModalClose.js +25 -2
- package/components/Modal/ModalClose/ModalClose.js.map +1 -1
- package/components/Paging/Paging/Paging.js +2 -2
- package/components/Paging/Paging/Paging.js.map +1 -1
- package/components/Paging/Paging.styles/Paging.styles.js +1 -1
- package/components/Paging/Paging.styles/Paging.styles.js.map +1 -1
- package/components/Radio/Radio/Radio.js +36 -3
- package/components/Radio/Radio/Radio.js.map +1 -1
- package/components/Radio/Radio.d.ts +9 -1
- package/components/Radio/Radio.styles/Radio.styles.js +3 -3
- package/components/Radio/Radio.styles/Radio.styles.js.map +1 -1
- package/components/Radio/Radio.styles.d.ts +1 -1
- package/components/ScrollContainer/ScrollBar/ScrollBar.js +254 -0
- package/components/ScrollContainer/ScrollBar/ScrollBar.js.map +1 -0
- package/components/ScrollContainer/ScrollBar/package.json +6 -0
- package/components/ScrollContainer/ScrollBar.d.ts +37 -0
- package/components/ScrollContainer/ScrollContainer/ScrollContainer.js +121 -205
- package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
- package/components/ScrollContainer/ScrollContainer.constants/ScrollContainer.constants.js +31 -0
- package/components/ScrollContainer/ScrollContainer.constants/ScrollContainer.constants.js.map +1 -0
- package/components/ScrollContainer/ScrollContainer.constants/package.json +6 -0
- package/components/ScrollContainer/ScrollContainer.constants.d.ts +23 -0
- package/components/ScrollContainer/ScrollContainer.d.ts +38 -23
- package/components/ScrollContainer/ScrollContainer.helpers/ScrollContainer.helpers.js +55 -0
- package/components/ScrollContainer/ScrollContainer.helpers/ScrollContainer.helpers.js.map +1 -0
- package/components/ScrollContainer/ScrollContainer.helpers/package.json +6 -0
- package/components/ScrollContainer/ScrollContainer.helpers.d.ts +10 -0
- package/components/ScrollContainer/ScrollContainer.md +62 -13
- package/components/ScrollContainer/ScrollContainer.styles/ScrollContainer.styles.js +23 -9
- package/components/ScrollContainer/ScrollContainer.styles/ScrollContainer.styles.js.map +1 -1
- package/components/ScrollContainer/ScrollContainer.styles.d.ts +12 -3
- package/components/SidePage/SidePage/SidePage.js +2 -4
- package/components/SidePage/SidePage/SidePage.js.map +1 -1
- package/components/SidePage/SidePage.d.ts +1 -2
- package/components/SidePage/SidePage.styles/SidePage.styles.js +20 -16
- package/components/SidePage/SidePage.styles/SidePage.styles.js.map +1 -1
- package/components/SidePage/SidePage.styles.d.ts +2 -1
- package/components/SidePage/SidePageHeader/SidePageHeader.js +40 -22
- package/components/SidePage/SidePageHeader/SidePageHeader.js.map +1 -1
- package/components/SidePage/SidePageHeader.d.ts +4 -1
- package/components/Switcher/Switcher/Switcher.js +1 -1
- package/components/Switcher/Switcher/Switcher.js.map +1 -1
- package/components/Switcher/Switcher.styles/Switcher.styles.js +2 -2
- package/components/Switcher/Switcher.styles/Switcher.styles.js.map +1 -1
- package/components/Switcher/Switcher.styles.d.ts +1 -1
- package/components/Tabs/Tab/Tab.js +2 -16
- package/components/Tabs/Tab/Tab.js.map +1 -1
- package/components/Tabs/Tab.d.ts +0 -3
- package/components/Tabs/Tab.styles/Tab.styles.js +1 -1
- package/components/Tabs/Tab.styles/Tab.styles.js.map +1 -1
- package/components/Toggle/Toggle/Toggle.js +5 -5
- package/components/Toggle/Toggle/Toggle.js.map +1 -1
- package/components/Toggle/Toggle.styles/Toggle.styles.js +15 -12
- package/components/Toggle/Toggle.styles/Toggle.styles.js.map +1 -1
- package/components/Toggle/Toggle.styles.d.ts +1 -0
- package/components/Token/Token.styles/Token.styles.js +2 -2
- package/components/Token/Token.styles/Token.styles.js.map +1 -1
- package/components/TokenInput/TokenInput/TokenInput.js +24 -2
- package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
- package/components/TokenInput/TokenInput.d.ts +8 -0
- package/components/Tooltip/Tooltip.styles/Tooltip.styles.js +1 -1
- package/components/Tooltip/Tooltip.styles/Tooltip.styles.js.map +1 -1
- package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js +2 -1
- package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js.map +1 -1
- package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js +3 -2
- package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js.map +1 -1
- package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll/HideBodyVerticalScroll.js +4 -4
- package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll/HideBodyVerticalScroll.js.map +1 -1
- package/internal/InputLikeText/InputLikeText/InputLikeText.js +2 -1
- package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
- package/internal/PopupMenu/PopupMenu/PopupMenu.js +2 -2
- package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
- package/internal/RenderContainer/RenderContainer/RenderContainer.js +2 -1
- package/internal/RenderContainer/RenderContainer/RenderContainer.js.map +1 -1
- package/internal/ThemePlayground/darkTheme/darkTheme.js +3 -3
- package/internal/ThemePlayground/darkTheme/darkTheme.js.map +1 -1
- package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
- package/internal/icons/CrossIcon/CrossIcon.js +2 -1
- package/internal/icons/CrossIcon/CrossIcon.js.map +1 -1
- package/internal/themes/DefaultTheme/DefaultTheme.js +100 -19
- package/internal/themes/DefaultTheme/DefaultTheme.js.map +1 -1
- package/internal/themes/DefaultTheme.d.ts +23 -7
- package/internal/themes/FlatTheme/FlatTheme.js +18 -6
- package/internal/themes/FlatTheme/FlatTheme.js.map +1 -1
- package/internal/themes/FlatTheme.d.ts +4 -4
- package/internal/themes/Theme8px/Theme8px.js +1 -14
- package/internal/themes/Theme8px/Theme8px.js.map +1 -1
- package/internal/themes/Theme8px.d.ts +0 -5
- package/lib/Upgrades/Upgrades.js +13 -0
- package/lib/Upgrades/Upgrades.js.map +1 -1
- package/lib/Upgrades.d.ts +2 -0
- package/lib/events/keyListener/keyListener.js +22 -0
- package/lib/events/keyListener/keyListener.js.map +1 -0
- package/lib/events/keyListener/package.json +6 -0
- package/lib/events/keyListener.d.ts +7 -0
- package/lib/events/keyboard/identifiers/identifiers.js +10 -1
- package/lib/events/keyboard/identifiers/identifiers.js.map +1 -1
- package/lib/events/keyboard/identifiers.d.ts +1 -0
- package/lib/events/tabListener/tabListener.js +2 -19
- package/lib/events/tabListener/tabListener.js.map +1 -1
- package/lib/events/tabListener.d.ts +1 -6
- package/lib/locale/LOCALECONTEXT.md +1 -1
- package/lib/styles/ColorFunctions/ColorFunctions.js +1 -1
- package/lib/styles/ColorFunctions/ColorFunctions.js.map +1 -1
- package/lib/theming/Emotion/Emotion.js +1 -1
- package/lib/theming/Emotion/Emotion.js.map +1 -1
- package/lib/theming/ThemeContext.md +1 -1
- package/lib/utils/utils.js +10 -0
- package/lib/utils/utils.js.map +1 -1
- package/lib/utils.d.ts +7 -0
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["CustomComboBoxReducer.tsx"],"names":["debounce","isEqual","isKeyArrowUp","isKeyArrowVertical","isKeyEnter","isKeyEscape","LayoutEvents","DefaultState","ComboBoxRequestStatus","DEBOUNCE_DELAY","getValueString","value","valueToString","Effect","Search","query","dispatch","getState","getProps","getInstance","search","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","focus","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","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 { 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 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 && 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","search","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","focus","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","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"]}
|
|
@@ -29,9 +29,7 @@ export var HideBodyVerticalScroll = /*#__PURE__*/function (_React$Component) {
|
|
|
29
29
|
return;
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
-
var
|
|
33
|
-
scrollHeight = documentElement.scrollHeight;
|
|
34
|
-
var shouldHide = !disposeDocumentStyle && clientHeight < scrollHeight;
|
|
32
|
+
var shouldHide = !disposeDocumentStyle;
|
|
35
33
|
|
|
36
34
|
if (shouldHide) {
|
|
37
35
|
_this.hideScroll(documentElement);
|
|
@@ -39,8 +37,10 @@ export var HideBodyVerticalScroll = /*#__PURE__*/function (_React$Component) {
|
|
|
39
37
|
};
|
|
40
38
|
|
|
41
39
|
_this.hideScroll = function (document) {
|
|
40
|
+
var clientHeight = document.clientHeight,
|
|
41
|
+
scrollHeight = document.scrollHeight;
|
|
42
42
|
var documentComputedStyle = getComputedStyle(document);
|
|
43
|
-
var scrollWidth = getScrollWidth();
|
|
43
|
+
var scrollWidth = clientHeight < scrollHeight ? getScrollWidth() : 0;
|
|
44
44
|
var documentMargin = parseFloat(documentComputedStyle.marginRight || '');
|
|
45
45
|
var className = generateDocumentStyle(documentMargin + scrollWidth);
|
|
46
46
|
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","
|
|
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":"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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 scrollWidth = clientHeight < scrollHeight ? 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"]}
|
|
@@ -2,6 +2,7 @@ import _extends from "@babel/runtime/helpers/esm/extends";
|
|
|
2
2
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
3
|
import _inheritsLoose from "@babel/runtime/helpers/esm/inheritsLoose";
|
|
4
4
|
import React from 'react';
|
|
5
|
+
import { isNonNullable } from "../../../lib/utils";
|
|
5
6
|
import { isKeyTab, isShortcutPaste } from "../../../lib/events/keyboard/identifiers";
|
|
6
7
|
import { MouseDrag } from "../../../lib/events/MouseDrag";
|
|
7
8
|
import { isEdge, isIE11, isMobile } from "../../../lib/client";
|
|
@@ -219,7 +220,7 @@ export var InputLikeText = /*#__PURE__*/function (_React$Component) {
|
|
|
219
220
|
disabled = _this$props3.disabled;
|
|
220
221
|
var focused = _this.state.focused;
|
|
221
222
|
|
|
222
|
-
if (!children && placeholder) {
|
|
223
|
+
if (!isNonNullable(children) && placeholder) {
|
|
223
224
|
var _cx7;
|
|
224
225
|
|
|
225
226
|
return /*#__PURE__*/React.createElement("span", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["InputLikeText.tsx"],"names":["React","isKeyTab","isShortcutPaste","MouseDrag","isEdge","isIE11","isMobile","removeAllSelections","selectNodeContents","styles","jsInputStyles","ThemeContext","CommonWrapper","cx","findRenderContainer","HiddenInput","InputLikeText","state","blinking","focused","theme","node","hiddenInput","lastSelectedInnerNode","frozen","frozenBlur","dragging","focusTimeout","blinkTimeout","selectInnerNode","start","end","document","body","setTimeout","clearInterval","window","focus","renderMain","props","innerRef","tabIndex","placeholder","align","borderless","width","size","error","warning","onValueChange","disabled","prefix","suffix","leftIcon","rightIcon","value","onMouseDragStart","onMouseDragEnd","rest","leftSide","renderLeftSide","rightSide","renderRightSide","className","root","getSizeClassName","blink","focusFallback","warningFallback","errorFallback","hideBlinkingCursor","wrapperClass","wrapper","userSelectContain","textAlign","undefined","handleFocus","handleBlur","handleKeyDown","handleMouseDown","input","inputFocus","inputDisabled","children","renderPlaceholder","hiddenInputRef","renderLeftIcon","renderIcon","getIconClassname","renderRightIcon","icon","iconNode","Function","useDefaultColor","iconDisabled","renderPrefix","prefixDisabled","renderSuffix","suffixDisabled","sideContainer","rightContainer","placeholderDisabled","placeholderFocus","handleDocumentMouseDown","e","target","Node","contains","defrost","handleDocumentKeyDown","onKeyDown","handleMouseDragStart","documentElement","classList","add","userSelectNone","handleMouseDragEnd","remove","setAttribute","setState","onFocus","removeAttribute","stopPropagation","onBlur","el","sizeLarge","sizeLargeFallback","sizeMedium","sizeMediumFallback","sizeSmall","sizeSmallFallback","blur","getNode","componentDidMount","listen","addEventListener","componentWillUnmount","clearTimeout","stop","removeEventListener","render","right","rightIconLarge","leftIconLarge","rightIconMedium","leftIconMedium","rightIconSmall","leftIconSmall","Component","__KONTUR_REACT_UI__","defaultProps"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { isKeyTab, isShortcutPaste } from '../../lib/events/keyboard/identifiers';\nimport { MouseDrag, MouseDragEventHandler } from '../../lib/events/MouseDrag';\nimport { isEdge, isIE11, isMobile } from '../../lib/client';\nimport { Nullable } from '../../typings/utility-types';\nimport { removeAllSelections, selectNodeContents } from '../../components/DateInput/helpers/SelectionHelpers';\nimport { InputProps, InputIconType, InputState } from '../../components/Input';\nimport { styles as jsInputStyles } from '../../components/Input/Input.styles';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { CommonProps, CommonWrapper, CommonWrapperRestProps } from '../CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { findRenderContainer } from '../../lib/listenFocusOutside';\n\nimport { styles } from './InputLikeText.styles';\nimport { HiddenInput } from './HiddenInput';\n\nexport interface InputLikeTextProps extends CommonProps, InputProps {\n children?: React.ReactNode;\n innerRef?: (el: HTMLElement | null) => void;\n onFocus?: React.FocusEventHandler<HTMLElement>;\n onBlur?: React.FocusEventHandler<HTMLElement>;\n onMouseDragStart?: MouseDragEventHandler;\n onMouseDragEnd?: MouseDragEventHandler;\n}\n\nexport type InputLikeTextState = Omit<InputState, 'polyfillPlaceholder'>;\n\nexport class InputLikeText extends React.Component<InputLikeTextProps, InputLikeTextState> {\n public static __KONTUR_REACT_UI__ = 'InputLikeText';\n\n public static defaultProps = { size: 'small' };\n\n public state = { blinking: false, focused: false };\n\n private theme!: Theme;\n private node: HTMLElement | null = null;\n private hiddenInput: HTMLInputElement | null = null;\n private lastSelectedInnerNode: [HTMLElement, number, number] | null = null;\n private frozen = false;\n private frozenBlur = false;\n private dragging = false;\n private focusTimeout: Nullable<number>;\n private blinkTimeout: Nullable<number>;\n\n /**\n * @public\n */\n public focus() {\n if (this.node) {\n this.node.focus();\n }\n }\n\n /**\n * @public\n */\n public blur() {\n if (this.node) {\n this.node.blur();\n }\n }\n\n /**\n * @public\n */\n public blink() {\n if (this.props.disabled) {\n return;\n }\n this.setState({ blinking: true }, () => {\n this.blinkTimeout = window.setTimeout(() => this.setState({ blinking: false }), 150);\n });\n }\n\n public getNode(): HTMLElement | null {\n return this.node;\n }\n\n public selectInnerNode = (node: HTMLElement | null, start = 0, end = 1) => {\n if (this.dragging || !node) {\n return;\n }\n if (isIE11 && findRenderContainer(node, document.body)) {\n // Code below causes Popup to close after triggering the focus event on the body in IE11\n return;\n }\n this.frozen = true;\n this.frozenBlur = true;\n\n this.lastSelectedInnerNode = [node, start, end];\n setTimeout(() => selectNodeContents(node, start, end), 0);\n if (this.focusTimeout) {\n clearInterval(this.focusTimeout);\n }\n this.focusTimeout = window.setTimeout(() => (isIE11 || isEdge) && this.node && this.node.focus(), 0);\n };\n\n public componentDidMount() {\n if (this.node) {\n MouseDrag.listen(this.node).onMouseDragStart(this.handleMouseDragStart).onMouseDragEnd(this.handleMouseDragEnd);\n }\n document.addEventListener('mousedown', this.handleDocumentMouseDown);\n document.addEventListener('keydown', this.handleDocumentKeyDown);\n }\n\n public componentWillUnmount() {\n if (this.blinkTimeout) {\n clearTimeout(this.blinkTimeout);\n }\n MouseDrag.stop(this.node);\n document.removeEventListener('mousedown', this.handleDocumentMouseDown);\n document.removeEventListener('keydown', this.handleDocumentKeyDown);\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return <CommonWrapper {...this.props}>{this.renderMain}</CommonWrapper>;\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain = (props: CommonWrapperRestProps<InputLikeTextProps>) => {\n const {\n innerRef,\n tabIndex,\n placeholder,\n align,\n borderless,\n width,\n size,\n error,\n warning,\n onValueChange,\n disabled,\n prefix,\n suffix,\n leftIcon,\n rightIcon,\n value,\n onMouseDragStart,\n onMouseDragEnd,\n ...rest\n } = props;\n\n const { focused, blinking } = this.state;\n\n const leftSide = this.renderLeftSide();\n const rightSide = this.renderRightSide();\n\n const className = cx(styles.root(), jsInputStyles.root(this.theme), this.getSizeClassName(), {\n [jsInputStyles.focus(this.theme)]: focused,\n [jsInputStyles.blink(this.theme)]: blinking,\n [jsInputStyles.warning(this.theme)]: !!warning,\n [jsInputStyles.error(this.theme)]: !!error,\n [jsInputStyles.focusFallback(this.theme)]: focused && (isIE11 || isEdge),\n [jsInputStyles.warningFallback(this.theme)]: !!warning && (isIE11 || isEdge),\n [jsInputStyles.errorFallback(this.theme)]: !!error && (isIE11 || isEdge),\n [jsInputStyles.disabled(this.theme)]: !!disabled,\n [jsInputStyles.borderless()]: !!borderless,\n [jsInputStyles.hideBlinkingCursor()]: isMobile,\n });\n\n const wrapperClass = cx(jsInputStyles.wrapper(), {\n [styles.userSelectContain()]: focused,\n });\n\n return (\n <span\n {...rest}\n className={className}\n style={{ width, textAlign: align }}\n tabIndex={disabled ? undefined : 0}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n ref={this.innerRef}\n onKeyDown={this.handleKeyDown}\n onMouseDown={this.handleMouseDown}\n >\n <input type=\"hidden\" value={value} />\n {leftSide}\n <span className={wrapperClass}>\n <span\n data-tid=\"InputLikeText__input\"\n className={cx(styles.input(), jsInputStyles.input(this.theme), {\n [jsInputStyles.inputFocus(this.theme)]: focused,\n [jsInputStyles.inputDisabled(this.theme)]: disabled,\n })}\n >\n {this.props.children}\n </span>\n {this.renderPlaceholder()}\n </span>\n {rightSide}\n {isIE11 && focused && <HiddenInput nodeRef={this.hiddenInputRef} />}\n </span>\n );\n };\n\n private getIconClassname(right = false) {\n switch (this.props.size) {\n case 'large':\n return right ? jsInputStyles.rightIconLarge(this.theme) : jsInputStyles.leftIconLarge(this.theme);\n case 'medium':\n return right ? jsInputStyles.rightIconMedium(this.theme) : jsInputStyles.leftIconMedium(this.theme);\n case 'small':\n default:\n return right ? jsInputStyles.rightIconSmall(this.theme) : jsInputStyles.leftIconSmall(this.theme);\n }\n }\n\n private renderLeftIcon = () => {\n return this.renderIcon(this.props.leftIcon, this.getIconClassname());\n };\n\n private renderRightIcon = () => {\n return this.renderIcon(this.props.rightIcon, this.getIconClassname(true));\n };\n\n private renderIcon = (icon: InputIconType, className: string): JSX.Element | null => {\n if (!icon) {\n return null;\n }\n\n const { disabled } = this.props;\n const iconNode = icon instanceof Function ? icon() : icon;\n\n return (\n <span\n className={cx(jsInputStyles.icon(), className, jsInputStyles.useDefaultColor(this.theme), {\n [jsInputStyles.iconDisabled()]: disabled,\n })}\n >\n {iconNode}\n </span>\n );\n };\n\n private renderPrefix = (): JSX.Element | null => {\n const { prefix, disabled } = this.props;\n\n if (!prefix) {\n return null;\n }\n\n return (\n <span className={cx(jsInputStyles.prefix(this.theme), { [jsInputStyles.prefixDisabled(this.theme)]: disabled })}>\n {prefix}\n </span>\n );\n };\n\n private renderSuffix = (): JSX.Element | null => {\n const { suffix, disabled } = this.props;\n\n if (!suffix) {\n return null;\n }\n\n return (\n <span className={cx(jsInputStyles.suffix(this.theme), { [jsInputStyles.suffixDisabled(this.theme)]: disabled })}>\n {suffix}\n </span>\n );\n };\n\n private renderLeftSide = (): JSX.Element | null => {\n const leftIcon = this.renderLeftIcon();\n const prefix = this.renderPrefix();\n\n if (!leftIcon && !prefix) {\n return null;\n }\n\n return (\n <span className={jsInputStyles.sideContainer()}>\n {leftIcon}\n {prefix}\n </span>\n );\n };\n\n private renderRightSide = (): JSX.Element | null => {\n const rightIcon = this.renderRightIcon();\n const suffix = this.renderSuffix();\n\n if (!rightIcon && !suffix) {\n return null;\n }\n\n return (\n <span className={cx(jsInputStyles.sideContainer(), jsInputStyles.rightContainer())}>\n {rightIcon}\n {suffix}\n </span>\n );\n };\n\n private renderPlaceholder = (): JSX.Element | null => {\n const { children, placeholder, disabled } = this.props;\n const { focused } = this.state;\n\n if (!children && placeholder) {\n return (\n <span\n className={cx(jsInputStyles.placeholder(this.theme), {\n [jsInputStyles.placeholderDisabled(this.theme)]: disabled,\n [jsInputStyles.placeholderFocus(this.theme)]: focused,\n })}\n >\n {placeholder}\n </span>\n );\n }\n return null;\n };\n\n private handleDocumentMouseDown = (e: MouseEvent) => {\n if (this.state.focused && this.node && e.target instanceof Node && !this.node.contains(e.target)) {\n this.defrost();\n }\n };\n\n private handleDocumentKeyDown = (e: KeyboardEvent) => {\n if (this.state.focused && isKeyTab(e)) {\n this.defrost();\n }\n };\n\n private handleMouseDown = (e: React.MouseEvent<HTMLElement>) => {\n this.frozen = true;\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLElement>) => {\n if (this.props.disabled) {\n return;\n }\n\n if (isIE11 && isShortcutPaste(e) && this.hiddenInput) {\n this.frozen = true;\n setTimeout(() => {\n if (this.lastSelectedInnerNode) {\n this.selectInnerNode(...this.lastSelectedInnerNode);\n }\n if (this.node) {\n this.node.focus();\n }\n }, 0);\n\n this.hiddenInput.focus();\n }\n\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e as React.KeyboardEvent<HTMLInputElement>);\n }\n };\n\n private handleMouseDragStart: MouseDragEventHandler = (e) => {\n this.dragging = true;\n document.documentElement.classList.add(styles.userSelectNone());\n\n if (this.props.onMouseDragStart) {\n this.props.onMouseDragStart(e);\n }\n };\n\n private handleMouseDragEnd: MouseDragEventHandler = (e) => {\n // Дожидаемся onMouseUp\n setTimeout(() => {\n this.dragging = false;\n\n if (this.props.onMouseDragEnd) {\n this.props.onMouseDragEnd(e);\n }\n }, 0);\n\n document.documentElement.classList.remove(styles.userSelectNone());\n };\n\n private handleFocus = (e: React.FocusEvent<HTMLElement>) => {\n if (isMobile) {\n e.target.setAttribute('contenteditable', 'true');\n }\n\n if (this.props.disabled) {\n if (isIE11) {\n selectNodeContents(document.body, 0, 0);\n }\n return;\n }\n\n if ((isIE11 || isEdge) && this.frozen) {\n this.frozen = false;\n if (this.state.focused) {\n return;\n }\n }\n\n this.setState({ focused: true });\n\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n };\n\n private handleBlur = (e: React.FocusEvent<HTMLElement>) => {\n if (isMobile) {\n e.target.removeAttribute('contenteditable');\n }\n\n if (this.props.disabled) {\n e.stopPropagation();\n return;\n }\n\n if ((isIE11 || isEdge) && this.frozenBlur) {\n this.frozenBlur = false;\n return;\n }\n if ((isIE11 || isEdge) && this.frozen) {\n return;\n }\n\n removeAllSelections();\n\n this.setState({ focused: false });\n\n if (this.props.onBlur) {\n this.props.onBlur(e);\n }\n };\n\n private hiddenInputRef = (el: HTMLInputElement | null) => {\n this.hiddenInput = el;\n };\n\n private innerRef = (el: HTMLElement | null) => {\n if (this.props.innerRef) {\n this.props.innerRef(el);\n }\n this.node = el;\n };\n\n private defrost = (): void => {\n this.frozen = false;\n this.frozenBlur = false;\n };\n\n private getSizeClassName = () => {\n switch (this.props.size) {\n case 'large':\n return cx({\n [jsInputStyles.sizeLarge(this.theme)]: true,\n [jsInputStyles.sizeLargeFallback(this.theme)]: isIE11 || isEdge,\n });\n case 'medium':\n return cx({\n [jsInputStyles.sizeMedium(this.theme)]: true,\n [jsInputStyles.sizeMediumFallback(this.theme)]: isIE11 || isEdge,\n });\n case 'small':\n default:\n return cx({\n [jsInputStyles.sizeSmall(this.theme)]: true,\n [jsInputStyles.sizeSmallFallback(this.theme)]: isIE11 || isEdge,\n });\n }\n };\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["InputLikeText.tsx"],"names":["React","isNonNullable","isKeyTab","isShortcutPaste","MouseDrag","isEdge","isIE11","isMobile","removeAllSelections","selectNodeContents","styles","jsInputStyles","ThemeContext","CommonWrapper","cx","findRenderContainer","HiddenInput","InputLikeText","state","blinking","focused","theme","node","hiddenInput","lastSelectedInnerNode","frozen","frozenBlur","dragging","focusTimeout","blinkTimeout","selectInnerNode","start","end","document","body","setTimeout","clearInterval","window","focus","renderMain","props","innerRef","tabIndex","placeholder","align","borderless","width","size","error","warning","onValueChange","disabled","prefix","suffix","leftIcon","rightIcon","value","onMouseDragStart","onMouseDragEnd","rest","leftSide","renderLeftSide","rightSide","renderRightSide","className","root","getSizeClassName","blink","focusFallback","warningFallback","errorFallback","hideBlinkingCursor","wrapperClass","wrapper","userSelectContain","textAlign","undefined","handleFocus","handleBlur","handleKeyDown","handleMouseDown","input","inputFocus","inputDisabled","children","renderPlaceholder","hiddenInputRef","renderLeftIcon","renderIcon","getIconClassname","renderRightIcon","icon","iconNode","Function","useDefaultColor","iconDisabled","renderPrefix","prefixDisabled","renderSuffix","suffixDisabled","sideContainer","rightContainer","placeholderDisabled","placeholderFocus","handleDocumentMouseDown","e","target","Node","contains","defrost","handleDocumentKeyDown","onKeyDown","handleMouseDragStart","documentElement","classList","add","userSelectNone","handleMouseDragEnd","remove","setAttribute","setState","onFocus","removeAttribute","stopPropagation","onBlur","el","sizeLarge","sizeLargeFallback","sizeMedium","sizeMediumFallback","sizeSmall","sizeSmallFallback","blur","getNode","componentDidMount","listen","addEventListener","componentWillUnmount","clearTimeout","stop","removeEventListener","render","right","rightIconLarge","leftIconLarge","rightIconMedium","leftIconMedium","rightIconSmall","leftIconSmall","Component","__KONTUR_REACT_UI__","defaultProps"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { isNonNullable } from '../../lib/utils';\nimport { isKeyTab, isShortcutPaste } from '../../lib/events/keyboard/identifiers';\nimport { MouseDrag, MouseDragEventHandler } from '../../lib/events/MouseDrag';\nimport { isEdge, isIE11, isMobile } from '../../lib/client';\nimport { Nullable } from '../../typings/utility-types';\nimport { removeAllSelections, selectNodeContents } from '../../components/DateInput/helpers/SelectionHelpers';\nimport { InputProps, InputIconType, InputState } from '../../components/Input';\nimport { styles as jsInputStyles } from '../../components/Input/Input.styles';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { CommonProps, CommonWrapper, CommonWrapperRestProps } from '../CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { findRenderContainer } from '../../lib/listenFocusOutside';\n\nimport { styles } from './InputLikeText.styles';\nimport { HiddenInput } from './HiddenInput';\n\nexport interface InputLikeTextProps extends CommonProps, InputProps {\n children?: React.ReactNode;\n innerRef?: (el: HTMLElement | null) => void;\n onFocus?: React.FocusEventHandler<HTMLElement>;\n onBlur?: React.FocusEventHandler<HTMLElement>;\n onMouseDragStart?: MouseDragEventHandler;\n onMouseDragEnd?: MouseDragEventHandler;\n}\n\nexport type InputLikeTextState = Omit<InputState, 'polyfillPlaceholder'>;\n\nexport class InputLikeText extends React.Component<InputLikeTextProps, InputLikeTextState> {\n public static __KONTUR_REACT_UI__ = 'InputLikeText';\n\n public static defaultProps = { size: 'small' };\n\n public state = { blinking: false, focused: false };\n\n private theme!: Theme;\n private node: HTMLElement | null = null;\n private hiddenInput: HTMLInputElement | null = null;\n private lastSelectedInnerNode: [HTMLElement, number, number] | null = null;\n private frozen = false;\n private frozenBlur = false;\n private dragging = false;\n private focusTimeout: Nullable<number>;\n private blinkTimeout: Nullable<number>;\n\n /**\n * @public\n */\n public focus() {\n if (this.node) {\n this.node.focus();\n }\n }\n\n /**\n * @public\n */\n public blur() {\n if (this.node) {\n this.node.blur();\n }\n }\n\n /**\n * @public\n */\n public blink() {\n if (this.props.disabled) {\n return;\n }\n this.setState({ blinking: true }, () => {\n this.blinkTimeout = window.setTimeout(() => this.setState({ blinking: false }), 150);\n });\n }\n\n public getNode(): HTMLElement | null {\n return this.node;\n }\n\n public selectInnerNode = (node: HTMLElement | null, start = 0, end = 1) => {\n if (this.dragging || !node) {\n return;\n }\n if (isIE11 && findRenderContainer(node, document.body)) {\n // Code below causes Popup to close after triggering the focus event on the body in IE11\n return;\n }\n this.frozen = true;\n this.frozenBlur = true;\n\n this.lastSelectedInnerNode = [node, start, end];\n setTimeout(() => selectNodeContents(node, start, end), 0);\n if (this.focusTimeout) {\n clearInterval(this.focusTimeout);\n }\n this.focusTimeout = window.setTimeout(() => (isIE11 || isEdge) && this.node && this.node.focus(), 0);\n };\n\n public componentDidMount() {\n if (this.node) {\n MouseDrag.listen(this.node).onMouseDragStart(this.handleMouseDragStart).onMouseDragEnd(this.handleMouseDragEnd);\n }\n document.addEventListener('mousedown', this.handleDocumentMouseDown);\n document.addEventListener('keydown', this.handleDocumentKeyDown);\n }\n\n public componentWillUnmount() {\n if (this.blinkTimeout) {\n clearTimeout(this.blinkTimeout);\n }\n MouseDrag.stop(this.node);\n document.removeEventListener('mousedown', this.handleDocumentMouseDown);\n document.removeEventListener('keydown', this.handleDocumentKeyDown);\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return <CommonWrapper {...this.props}>{this.renderMain}</CommonWrapper>;\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain = (props: CommonWrapperRestProps<InputLikeTextProps>) => {\n const {\n innerRef,\n tabIndex,\n placeholder,\n align,\n borderless,\n width,\n size,\n error,\n warning,\n onValueChange,\n disabled,\n prefix,\n suffix,\n leftIcon,\n rightIcon,\n value,\n onMouseDragStart,\n onMouseDragEnd,\n ...rest\n } = props;\n\n const { focused, blinking } = this.state;\n\n const leftSide = this.renderLeftSide();\n const rightSide = this.renderRightSide();\n\n const className = cx(styles.root(), jsInputStyles.root(this.theme), this.getSizeClassName(), {\n [jsInputStyles.focus(this.theme)]: focused,\n [jsInputStyles.blink(this.theme)]: blinking,\n [jsInputStyles.warning(this.theme)]: !!warning,\n [jsInputStyles.error(this.theme)]: !!error,\n [jsInputStyles.focusFallback(this.theme)]: focused && (isIE11 || isEdge),\n [jsInputStyles.warningFallback(this.theme)]: !!warning && (isIE11 || isEdge),\n [jsInputStyles.errorFallback(this.theme)]: !!error && (isIE11 || isEdge),\n [jsInputStyles.disabled(this.theme)]: !!disabled,\n [jsInputStyles.borderless()]: !!borderless,\n [jsInputStyles.hideBlinkingCursor()]: isMobile,\n });\n\n const wrapperClass = cx(jsInputStyles.wrapper(), {\n [styles.userSelectContain()]: focused,\n });\n\n return (\n <span\n {...rest}\n className={className}\n style={{ width, textAlign: align }}\n tabIndex={disabled ? undefined : 0}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n ref={this.innerRef}\n onKeyDown={this.handleKeyDown}\n onMouseDown={this.handleMouseDown}\n >\n <input type=\"hidden\" value={value} />\n {leftSide}\n <span className={wrapperClass}>\n <span\n data-tid=\"InputLikeText__input\"\n className={cx(styles.input(), jsInputStyles.input(this.theme), {\n [jsInputStyles.inputFocus(this.theme)]: focused,\n [jsInputStyles.inputDisabled(this.theme)]: disabled,\n })}\n >\n {this.props.children}\n </span>\n {this.renderPlaceholder()}\n </span>\n {rightSide}\n {isIE11 && focused && <HiddenInput nodeRef={this.hiddenInputRef} />}\n </span>\n );\n };\n\n private getIconClassname(right = false) {\n switch (this.props.size) {\n case 'large':\n return right ? jsInputStyles.rightIconLarge(this.theme) : jsInputStyles.leftIconLarge(this.theme);\n case 'medium':\n return right ? jsInputStyles.rightIconMedium(this.theme) : jsInputStyles.leftIconMedium(this.theme);\n case 'small':\n default:\n return right ? jsInputStyles.rightIconSmall(this.theme) : jsInputStyles.leftIconSmall(this.theme);\n }\n }\n\n private renderLeftIcon = () => {\n return this.renderIcon(this.props.leftIcon, this.getIconClassname());\n };\n\n private renderRightIcon = () => {\n return this.renderIcon(this.props.rightIcon, this.getIconClassname(true));\n };\n\n private renderIcon = (icon: InputIconType, className: string): JSX.Element | null => {\n if (!icon) {\n return null;\n }\n\n const { disabled } = this.props;\n const iconNode = icon instanceof Function ? icon() : icon;\n\n return (\n <span\n className={cx(jsInputStyles.icon(), className, jsInputStyles.useDefaultColor(this.theme), {\n [jsInputStyles.iconDisabled()]: disabled,\n })}\n >\n {iconNode}\n </span>\n );\n };\n\n private renderPrefix = (): JSX.Element | null => {\n const { prefix, disabled } = this.props;\n\n if (!prefix) {\n return null;\n }\n\n return (\n <span className={cx(jsInputStyles.prefix(this.theme), { [jsInputStyles.prefixDisabled(this.theme)]: disabled })}>\n {prefix}\n </span>\n );\n };\n\n private renderSuffix = (): JSX.Element | null => {\n const { suffix, disabled } = this.props;\n\n if (!suffix) {\n return null;\n }\n\n return (\n <span className={cx(jsInputStyles.suffix(this.theme), { [jsInputStyles.suffixDisabled(this.theme)]: disabled })}>\n {suffix}\n </span>\n );\n };\n\n private renderLeftSide = (): JSX.Element | null => {\n const leftIcon = this.renderLeftIcon();\n const prefix = this.renderPrefix();\n\n if (!leftIcon && !prefix) {\n return null;\n }\n\n return (\n <span className={jsInputStyles.sideContainer()}>\n {leftIcon}\n {prefix}\n </span>\n );\n };\n\n private renderRightSide = (): JSX.Element | null => {\n const rightIcon = this.renderRightIcon();\n const suffix = this.renderSuffix();\n\n if (!rightIcon && !suffix) {\n return null;\n }\n\n return (\n <span className={cx(jsInputStyles.sideContainer(), jsInputStyles.rightContainer())}>\n {rightIcon}\n {suffix}\n </span>\n );\n };\n\n private renderPlaceholder = (): JSX.Element | null => {\n const { children, placeholder, disabled } = this.props;\n const { focused } = this.state;\n\n if (!isNonNullable(children) && placeholder) {\n return (\n <span\n className={cx(jsInputStyles.placeholder(this.theme), {\n [jsInputStyles.placeholderDisabled(this.theme)]: disabled,\n [jsInputStyles.placeholderFocus(this.theme)]: focused,\n })}\n >\n {placeholder}\n </span>\n );\n }\n return null;\n };\n\n private handleDocumentMouseDown = (e: MouseEvent) => {\n if (this.state.focused && this.node && e.target instanceof Node && !this.node.contains(e.target)) {\n this.defrost();\n }\n };\n\n private handleDocumentKeyDown = (e: KeyboardEvent) => {\n if (this.state.focused && isKeyTab(e)) {\n this.defrost();\n }\n };\n\n private handleMouseDown = (e: React.MouseEvent<HTMLElement>) => {\n this.frozen = true;\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLElement>) => {\n if (this.props.disabled) {\n return;\n }\n\n if (isIE11 && isShortcutPaste(e) && this.hiddenInput) {\n this.frozen = true;\n setTimeout(() => {\n if (this.lastSelectedInnerNode) {\n this.selectInnerNode(...this.lastSelectedInnerNode);\n }\n if (this.node) {\n this.node.focus();\n }\n }, 0);\n\n this.hiddenInput.focus();\n }\n\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e as React.KeyboardEvent<HTMLInputElement>);\n }\n };\n\n private handleMouseDragStart: MouseDragEventHandler = (e) => {\n this.dragging = true;\n document.documentElement.classList.add(styles.userSelectNone());\n\n if (this.props.onMouseDragStart) {\n this.props.onMouseDragStart(e);\n }\n };\n\n private handleMouseDragEnd: MouseDragEventHandler = (e) => {\n // Дожидаемся onMouseUp\n setTimeout(() => {\n this.dragging = false;\n\n if (this.props.onMouseDragEnd) {\n this.props.onMouseDragEnd(e);\n }\n }, 0);\n\n document.documentElement.classList.remove(styles.userSelectNone());\n };\n\n private handleFocus = (e: React.FocusEvent<HTMLElement>) => {\n if (isMobile) {\n e.target.setAttribute('contenteditable', 'true');\n }\n\n if (this.props.disabled) {\n if (isIE11) {\n selectNodeContents(document.body, 0, 0);\n }\n return;\n }\n\n if ((isIE11 || isEdge) && this.frozen) {\n this.frozen = false;\n if (this.state.focused) {\n return;\n }\n }\n\n this.setState({ focused: true });\n\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n };\n\n private handleBlur = (e: React.FocusEvent<HTMLElement>) => {\n if (isMobile) {\n e.target.removeAttribute('contenteditable');\n }\n\n if (this.props.disabled) {\n e.stopPropagation();\n return;\n }\n\n if ((isIE11 || isEdge) && this.frozenBlur) {\n this.frozenBlur = false;\n return;\n }\n if ((isIE11 || isEdge) && this.frozen) {\n return;\n }\n\n removeAllSelections();\n\n this.setState({ focused: false });\n\n if (this.props.onBlur) {\n this.props.onBlur(e);\n }\n };\n\n private hiddenInputRef = (el: HTMLInputElement | null) => {\n this.hiddenInput = el;\n };\n\n private innerRef = (el: HTMLElement | null) => {\n if (this.props.innerRef) {\n this.props.innerRef(el);\n }\n this.node = el;\n };\n\n private defrost = (): void => {\n this.frozen = false;\n this.frozenBlur = false;\n };\n\n private getSizeClassName = () => {\n switch (this.props.size) {\n case 'large':\n return cx({\n [jsInputStyles.sizeLarge(this.theme)]: true,\n [jsInputStyles.sizeLargeFallback(this.theme)]: isIE11 || isEdge,\n });\n case 'medium':\n return cx({\n [jsInputStyles.sizeMedium(this.theme)]: true,\n [jsInputStyles.sizeMediumFallback(this.theme)]: isIE11 || isEdge,\n });\n case 'small':\n default:\n return cx({\n [jsInputStyles.sizeSmall(this.theme)]: true,\n [jsInputStyles.sizeSmallFallback(this.theme)]: isIE11 || isEdge,\n });\n }\n };\n}\n"]}
|
|
@@ -188,12 +188,12 @@ export var PopupMenu = /*#__PURE__*/function (_React$Component) {
|
|
|
188
188
|
pinOffset: this.props.popupPinOffset,
|
|
189
189
|
positions: this.getPositions(),
|
|
190
190
|
disableAnimations: this.props.disableAnimations,
|
|
191
|
-
onOpen: this.handleOpen
|
|
191
|
+
onOpen: this.handleOpen,
|
|
192
|
+
width: this.props.menuWidth || 'auto'
|
|
192
193
|
}, /*#__PURE__*/React.createElement(InternalMenu, {
|
|
193
194
|
hasShadow: false,
|
|
194
195
|
maxHeight: this.props.menuMaxHeight || 'none',
|
|
195
196
|
onKeyDown: this.handleKeyDown,
|
|
196
|
-
width: this.props.menuWidth || 'auto',
|
|
197
197
|
onItemClick: this.handleItemSelection,
|
|
198
198
|
cyclicSelection: false,
|
|
199
199
|
ref: this.refInternalMenu,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["PopupMenu.tsx"],"names":["React","isKeyArrowVertical","isKeyEnter","isKeyEscape","isKeySpace","someKeys","InternalMenu","Popup","RenderLayer","CommonWrapper","PopupMenuPositions","isValidPositions","styles","PopupMenuType","Dropdown","Tooltip","PopupMenu","state","menuVisible","firstItemShouldBeSelected","captionWrapper","savedFocusableElement","menu","open","showMenu","close","hideMenu","refInternalMenu","element","handleOpen","focus","renderCaption","props","caption","opened","openMenu","closeMenu","toggleMenu","handleCaptionClick","handleCaptionKeyDown","hideMenuWithoutFocusing","saveFocus","setState","handleChangeMenuVisible","restoreFocus","e","preventDefault","handleKeyDown","document","activeElement","focusShouldBeRestored","onChangeMenuState","handleItemSelection","event","isDefaultPrevented","type","render","container","width","children","popupMargin","popupHasPin","popupPinOffset","getPositions","disableAnimations","menuMaxHeight","menuWidth","header","footer","positions","Component","__KONTUR_REACT_UI__","defaultProps","Type"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport {\n isKeyArrowVertical,\n isKeyEnter,\n isKeyEscape,\n isKeySpace,\n someKeys,\n} from '../../lib/events/keyboard/identifiers';\nimport { InternalMenu } from '../InternalMenu';\nimport { Popup, PopupPosition } from '../Popup';\nimport { RenderLayer } from '../RenderLayer';\nimport { Nullable } from '../../typings/utility-types';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\n\nimport { PopupMenuPositions } from './PopupMenuPositions';\nimport { isValidPositions } from './validatePositions';\nimport { styles } from './PopupMenu.styles';\n\nexport interface PopupMenuCaptionProps {\n opened: boolean;\n openMenu: (firstItemShouldBeSelected?: boolean) => void;\n closeMenu: (restoreFocus?: boolean) => void;\n toggleMenu: () => void;\n}\n\nexport interface PopupMenuProps extends CommonProps {\n children?: React.ReactNode;\n /** Максимальная высота меню */\n menuMaxHeight?: number | string;\n /** Ширина меню */\n menuWidth?: number | string;\n /** Ширина контейнера и caption */\n width?: React.CSSProperties['width'];\n\n /**\n * Элемент или функция возвращающая элемент,\n * если передана, используется вместо ```caption```,\n * в таком случае управлять открытием и закрытием меню\n * придется в этой функции\n */\n caption: React.ReactNode | ((props: PopupMenuCaptionProps) => React.ReactNode);\n\n header?: React.ReactNode;\n footer?: React.ReactNode;\n\n /** Массив разрешенных положений меню относительно caption'а. */\n positions?: PopupPosition[];\n /** Колбэк, вызываемый после открытия/закрытия меню */\n onChangeMenuState?: (isOpened: boolean, restoreFocus: boolean) => void;\n /** Пропсы, передающиеся в Popup */\n popupHasPin?: boolean;\n popupMargin?: number;\n popupPinOffset?: number;\n type?: 'dropdown' | 'tooltip';\n disableAnimations: boolean;\n}\n\ninterface PopupMenuState {\n menuVisible: boolean;\n firstItemShouldBeSelected?: boolean;\n}\n\nexport const PopupMenuType = {\n Dropdown: 'dropdown',\n Tooltip: 'tooltip',\n};\n\nexport class PopupMenu extends React.Component<PopupMenuProps, PopupMenuState> {\n public static __KONTUR_REACT_UI__ = 'PopupMenu';\n\n public static defaultProps = {\n positions: PopupMenuPositions,\n type: PopupMenuType.Tooltip,\n popupHasPin: true,\n popupMargin: 0,\n disableAnimations: false,\n };\n\n public static Type = PopupMenuType;\n\n public state = {\n menuVisible: false,\n firstItemShouldBeSelected: false,\n };\n\n private captionWrapper: HTMLSpanElement | null = null;\n private savedFocusableElement: HTMLElement | null = null;\n private menu: Nullable<InternalMenu> = null;\n\n public render() {\n return (\n <CommonWrapper {...this.props}>\n <RenderLayer\n onClickOutside={this.hideMenuWithoutFocusing}\n onFocusOutside={this.hideMenuWithoutFocusing}\n active={this.state.menuVisible}\n >\n <div className={styles.container()} style={{ width: this.props.width }}>\n {this.renderCaption()}\n {this.captionWrapper && this.props.children && (\n <Popup\n anchorElement={this.captionWrapper}\n opened={this.state.menuVisible}\n hasShadow\n margin={this.props.popupMargin}\n hasPin={this.props.popupHasPin}\n pinOffset={this.props.popupPinOffset}\n positions={this.getPositions()}\n disableAnimations={this.props.disableAnimations}\n onOpen={this.handleOpen}\n >\n <InternalMenu\n hasShadow={false}\n maxHeight={this.props.menuMaxHeight || 'none'}\n onKeyDown={this.handleKeyDown}\n width={this.props.menuWidth || 'auto'}\n onItemClick={this.handleItemSelection}\n cyclicSelection={false}\n ref={this.refInternalMenu}\n initialSelectedItemIndex={this.state.firstItemShouldBeSelected ? 0 : -1}\n header={this.props.header}\n footer={this.props.footer}\n >\n {this.props.children}\n </InternalMenu>\n </Popup>\n )}\n </div>\n </RenderLayer>\n </CommonWrapper>\n );\n }\n\n public open = (): void => this.showMenu();\n public close = (): void => this.hideMenu();\n\n private refInternalMenu = (element: Nullable<InternalMenu>) => (this.menu = element);\n\n private handleOpen = () => {\n if (this.menu) {\n this.menu.focus();\n }\n };\n\n private renderCaption = () => {\n if (typeof this.props.caption === 'function') {\n const caption = this.props.caption({\n opened: this.state.menuVisible,\n openMenu: this.showMenu,\n closeMenu: this.hideMenu,\n toggleMenu: this.toggleMenu,\n });\n\n return (\n <span\n data-tid=\"PopupMenu__caption\"\n className={styles.caption()}\n ref={(element) => (this.captionWrapper = element)}\n >\n {caption}\n </span>\n );\n }\n\n return (\n <span\n data-tid=\"PopupMenu__caption\"\n onClick={this.handleCaptionClick}\n onKeyDown={this.handleCaptionKeyDown}\n ref={(element) => (this.captionWrapper = element)}\n className={styles.caption()}\n >\n {this.props.caption}\n </span>\n );\n };\n\n private hideMenuWithoutFocusing = () => this.hideMenu();\n\n private getPositions() {\n if (this.props.positions && isValidPositions(this.props.positions)) {\n return this.props.positions;\n }\n\n return PopupMenuPositions;\n }\n\n private showMenu = (firstItemShouldBeSelected?: boolean): void => {\n this.saveFocus();\n this.setState(\n {\n menuVisible: true,\n firstItemShouldBeSelected,\n },\n () => {\n this.handleChangeMenuVisible(false);\n },\n );\n };\n\n private hideMenu = (restoreFocus?: boolean): void => {\n this.setState(\n {\n menuVisible: false,\n firstItemShouldBeSelected: false,\n },\n () => {\n this.handleChangeMenuVisible(!!restoreFocus);\n },\n );\n };\n\n private toggleMenu = (): void => {\n this.state.menuVisible ? this.hideMenu() : this.showMenu();\n };\n\n private handleCaptionClick = (): void => {\n this.toggleMenu();\n };\n\n private handleCaptionKeyDown = (e: React.KeyboardEvent<HTMLElement>): void => {\n if (someKeys(isKeyEnter, isKeySpace, isKeyArrowVertical)(e)) {\n e.preventDefault();\n this.showMenu(true);\n }\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLElement>) => {\n if (isKeyEscape(e)) {\n const restoreFocus = true;\n this.hideMenu(restoreFocus);\n }\n };\n\n private saveFocus = (): void => {\n if (document) {\n this.savedFocusableElement = document.activeElement as HTMLElement;\n }\n };\n\n private restoreFocus = (): void => {\n if (this.savedFocusableElement) {\n this.savedFocusableElement.focus();\n this.savedFocusableElement = null;\n }\n };\n\n private handleChangeMenuVisible = (focusShouldBeRestored: boolean): void => {\n if (focusShouldBeRestored) {\n this.restoreFocus();\n }\n if (typeof this.props.onChangeMenuState === 'function') {\n this.props.onChangeMenuState(this.state.menuVisible, focusShouldBeRestored);\n }\n };\n\n private handleItemSelection = (event: React.SyntheticEvent<HTMLElement>): void => {\n if (event.isDefaultPrevented()) {\n return;\n }\n\n if (event.type === 'keydown') {\n event.preventDefault();\n }\n\n const restoreFocus = event.type === 'keydown';\n this.hideMenu(restoreFocus);\n };\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["PopupMenu.tsx"],"names":["React","isKeyArrowVertical","isKeyEnter","isKeyEscape","isKeySpace","someKeys","InternalMenu","Popup","RenderLayer","CommonWrapper","PopupMenuPositions","isValidPositions","styles","PopupMenuType","Dropdown","Tooltip","PopupMenu","state","menuVisible","firstItemShouldBeSelected","captionWrapper","savedFocusableElement","menu","open","showMenu","close","hideMenu","refInternalMenu","element","handleOpen","focus","renderCaption","props","caption","opened","openMenu","closeMenu","toggleMenu","handleCaptionClick","handleCaptionKeyDown","hideMenuWithoutFocusing","saveFocus","setState","handleChangeMenuVisible","restoreFocus","e","preventDefault","handleKeyDown","document","activeElement","focusShouldBeRestored","onChangeMenuState","handleItemSelection","event","isDefaultPrevented","type","render","container","width","children","popupMargin","popupHasPin","popupPinOffset","getPositions","disableAnimations","menuWidth","menuMaxHeight","header","footer","positions","Component","__KONTUR_REACT_UI__","defaultProps","Type"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport {\n isKeyArrowVertical,\n isKeyEnter,\n isKeyEscape,\n isKeySpace,\n someKeys,\n} from '../../lib/events/keyboard/identifiers';\nimport { InternalMenu } from '../InternalMenu';\nimport { Popup, PopupPosition } from '../Popup';\nimport { RenderLayer } from '../RenderLayer';\nimport { Nullable } from '../../typings/utility-types';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\n\nimport { PopupMenuPositions } from './PopupMenuPositions';\nimport { isValidPositions } from './validatePositions';\nimport { styles } from './PopupMenu.styles';\n\nexport interface PopupMenuCaptionProps {\n opened: boolean;\n openMenu: (firstItemShouldBeSelected?: boolean) => void;\n closeMenu: (restoreFocus?: boolean) => void;\n toggleMenu: () => void;\n}\n\nexport interface PopupMenuProps extends CommonProps {\n children?: React.ReactNode;\n /** Максимальная высота меню */\n menuMaxHeight?: number | string;\n /** Ширина меню */\n menuWidth?: number | string;\n /** Ширина контейнера и caption */\n width?: React.CSSProperties['width'];\n\n /**\n * Элемент или функция возвращающая элемент,\n * если передана, используется вместо ```caption```,\n * в таком случае управлять открытием и закрытием меню\n * придется в этой функции\n */\n caption: React.ReactNode | ((props: PopupMenuCaptionProps) => React.ReactNode);\n\n header?: React.ReactNode;\n footer?: React.ReactNode;\n\n /** Массив разрешенных положений меню относительно caption'а. */\n positions?: PopupPosition[];\n /** Колбэк, вызываемый после открытия/закрытия меню */\n onChangeMenuState?: (isOpened: boolean, restoreFocus: boolean) => void;\n /** Пропсы, передающиеся в Popup */\n popupHasPin?: boolean;\n popupMargin?: number;\n popupPinOffset?: number;\n type?: 'dropdown' | 'tooltip';\n disableAnimations: boolean;\n}\n\ninterface PopupMenuState {\n menuVisible: boolean;\n firstItemShouldBeSelected?: boolean;\n}\n\nexport const PopupMenuType = {\n Dropdown: 'dropdown',\n Tooltip: 'tooltip',\n};\n\nexport class PopupMenu extends React.Component<PopupMenuProps, PopupMenuState> {\n public static __KONTUR_REACT_UI__ = 'PopupMenu';\n\n public static defaultProps = {\n positions: PopupMenuPositions,\n type: PopupMenuType.Tooltip,\n popupHasPin: true,\n popupMargin: 0,\n disableAnimations: false,\n };\n\n public static Type = PopupMenuType;\n\n public state = {\n menuVisible: false,\n firstItemShouldBeSelected: false,\n };\n\n private captionWrapper: HTMLSpanElement | null = null;\n private savedFocusableElement: HTMLElement | null = null;\n private menu: Nullable<InternalMenu> = null;\n\n public render() {\n return (\n <CommonWrapper {...this.props}>\n <RenderLayer\n onClickOutside={this.hideMenuWithoutFocusing}\n onFocusOutside={this.hideMenuWithoutFocusing}\n active={this.state.menuVisible}\n >\n <div className={styles.container()} style={{ width: this.props.width }}>\n {this.renderCaption()}\n {this.captionWrapper && this.props.children && (\n <Popup\n anchorElement={this.captionWrapper}\n opened={this.state.menuVisible}\n hasShadow\n margin={this.props.popupMargin}\n hasPin={this.props.popupHasPin}\n pinOffset={this.props.popupPinOffset}\n positions={this.getPositions()}\n disableAnimations={this.props.disableAnimations}\n onOpen={this.handleOpen}\n width={this.props.menuWidth || 'auto'}\n >\n <InternalMenu\n hasShadow={false}\n maxHeight={this.props.menuMaxHeight || 'none'}\n onKeyDown={this.handleKeyDown}\n onItemClick={this.handleItemSelection}\n cyclicSelection={false}\n ref={this.refInternalMenu}\n initialSelectedItemIndex={this.state.firstItemShouldBeSelected ? 0 : -1}\n header={this.props.header}\n footer={this.props.footer}\n >\n {this.props.children}\n </InternalMenu>\n </Popup>\n )}\n </div>\n </RenderLayer>\n </CommonWrapper>\n );\n }\n\n public open = (): void => this.showMenu();\n public close = (): void => this.hideMenu();\n\n private refInternalMenu = (element: Nullable<InternalMenu>) => (this.menu = element);\n\n private handleOpen = () => {\n if (this.menu) {\n this.menu.focus();\n }\n };\n\n private renderCaption = () => {\n if (typeof this.props.caption === 'function') {\n const caption = this.props.caption({\n opened: this.state.menuVisible,\n openMenu: this.showMenu,\n closeMenu: this.hideMenu,\n toggleMenu: this.toggleMenu,\n });\n\n return (\n <span\n data-tid=\"PopupMenu__caption\"\n className={styles.caption()}\n ref={(element) => (this.captionWrapper = element)}\n >\n {caption}\n </span>\n );\n }\n\n return (\n <span\n data-tid=\"PopupMenu__caption\"\n onClick={this.handleCaptionClick}\n onKeyDown={this.handleCaptionKeyDown}\n ref={(element) => (this.captionWrapper = element)}\n className={styles.caption()}\n >\n {this.props.caption}\n </span>\n );\n };\n\n private hideMenuWithoutFocusing = () => this.hideMenu();\n\n private getPositions() {\n if (this.props.positions && isValidPositions(this.props.positions)) {\n return this.props.positions;\n }\n\n return PopupMenuPositions;\n }\n\n private showMenu = (firstItemShouldBeSelected?: boolean): void => {\n this.saveFocus();\n this.setState(\n {\n menuVisible: true,\n firstItemShouldBeSelected,\n },\n () => {\n this.handleChangeMenuVisible(false);\n },\n );\n };\n\n private hideMenu = (restoreFocus?: boolean): void => {\n this.setState(\n {\n menuVisible: false,\n firstItemShouldBeSelected: false,\n },\n () => {\n this.handleChangeMenuVisible(!!restoreFocus);\n },\n );\n };\n\n private toggleMenu = (): void => {\n this.state.menuVisible ? this.hideMenu() : this.showMenu();\n };\n\n private handleCaptionClick = (): void => {\n this.toggleMenu();\n };\n\n private handleCaptionKeyDown = (e: React.KeyboardEvent<HTMLElement>): void => {\n if (someKeys(isKeyEnter, isKeySpace, isKeyArrowVertical)(e)) {\n e.preventDefault();\n this.showMenu(true);\n }\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLElement>) => {\n if (isKeyEscape(e)) {\n const restoreFocus = true;\n this.hideMenu(restoreFocus);\n }\n };\n\n private saveFocus = (): void => {\n if (document) {\n this.savedFocusableElement = document.activeElement as HTMLElement;\n }\n };\n\n private restoreFocus = (): void => {\n if (this.savedFocusableElement) {\n this.savedFocusableElement.focus();\n this.savedFocusableElement = null;\n }\n };\n\n private handleChangeMenuVisible = (focusShouldBeRestored: boolean): void => {\n if (focusShouldBeRestored) {\n this.restoreFocus();\n }\n if (typeof this.props.onChangeMenuState === 'function') {\n this.props.onChangeMenuState(this.state.menuVisible, focusShouldBeRestored);\n }\n };\n\n private handleItemSelection = (event: React.SyntheticEvent<HTMLElement>): void => {\n if (event.isDefaultPrevented()) {\n return;\n }\n\n if (event.type === 'keydown') {\n event.preventDefault();\n }\n\n const restoreFocus = event.type === 'keydown';\n this.hideMenu(restoreFocus);\n };\n}\n"]}
|
|
@@ -3,6 +3,7 @@ import _inheritsLoose from "@babel/runtime/helpers/esm/inheritsLoose";
|
|
|
3
3
|
import React from 'react';
|
|
4
4
|
import { canUseDOM, isBrowser } from "../../../lib/client";
|
|
5
5
|
import { getRandomID } from "../../../lib/utils";
|
|
6
|
+
import { Upgrade } from "../../../lib/Upgrades";
|
|
6
7
|
import { RenderInnerContainer } from "../RenderInnerContainer";
|
|
7
8
|
export var RenderContainer = /*#__PURE__*/function (_React$Component) {
|
|
8
9
|
_inheritsLoose(RenderContainer, _React$Component);
|
|
@@ -47,7 +48,7 @@ export var RenderContainer = /*#__PURE__*/function (_React$Component) {
|
|
|
47
48
|
_proto.createContainer = function createContainer() {
|
|
48
49
|
if (canUseDOM) {
|
|
49
50
|
var domContainer = document.createElement('div');
|
|
50
|
-
domContainer.setAttribute('class',
|
|
51
|
+
domContainer.setAttribute('class', Upgrade.getSpecificityClassName());
|
|
51
52
|
domContainer.setAttribute('data-rendered-container-id', "" + this.rootId);
|
|
52
53
|
this.domContainer = domContainer;
|
|
53
54
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["RenderContainer.tsx"],"names":["React","canUseDOM","isBrowser","getRandomID","RenderInnerContainer","RenderContainer","props","domContainer","rootId","getRootId","children","mountContainer","UNSAFE_componentWillReceiveProps","nextProps","unmountContainer","componentWillUnmount","destroyContainer","render","createContainer","document","createElement","setAttribute","parentNode","body","appendChild","window","ReactTesting","addRenderContainer","removeChild","removeRenderContainer","Component","__KONTUR_REACT_UI__"],"mappings":"gIAAA,OAAOA,KAAP,MAAkB,OAAlB;;AAEA,SAASC,SAAT,EAAoBC,SAApB,QAAqC,kBAArC;;AAEA,SAASC,WAAT,QAA4B,iBAA5B;;AAEA,SAASC,oBAAT,QAAqC,wBAArC;;;AAGA,WAAaC,eAAb;;;;;;;;AAQE,2BAAYC,KAAZ,EAAyC;AACvC,wCAAMA,KAAN,UADuC,MAJjCC,YAIiC,GAJK,IAIL,OAFxBC,MAEwB,GAFPH,eAAe,CAACI,SAAhB,EAEO;;AAGvC,
|
|
1
|
+
{"version":3,"sources":["RenderContainer.tsx"],"names":["React","canUseDOM","isBrowser","getRandomID","Upgrade","RenderInnerContainer","RenderContainer","props","domContainer","rootId","getRootId","children","mountContainer","UNSAFE_componentWillReceiveProps","nextProps","unmountContainer","componentWillUnmount","destroyContainer","render","createContainer","document","createElement","setAttribute","getSpecificityClassName","parentNode","body","appendChild","window","ReactTesting","addRenderContainer","removeChild","removeRenderContainer","Component","__KONTUR_REACT_UI__"],"mappings":"gIAAA,OAAOA,KAAP,MAAkB,OAAlB;;AAEA,SAASC,SAAT,EAAoBC,SAApB,QAAqC,kBAArC;;AAEA,SAASC,WAAT,QAA4B,iBAA5B;AACA,SAASC,OAAT,QAAwB,oBAAxB;;AAEA,SAASC,oBAAT,QAAqC,wBAArC;;;AAGA,WAAaC,eAAb;;;;;;;;AAQE,2BAAYC,KAAZ,EAAyC;AACvC,wCAAMA,KAAN,UADuC,MAJjCC,YAIiC,GAJK,IAIL,OAFxBC,MAEwB,GAFPH,eAAe,CAACI,SAAhB,EAEO;;AAGvC,QAAIR,SAAS,IAAIK,KAAK,CAACI,QAAvB,EAAiC;AAC/B,YAAKC,cAAL;AACD,KALsC;AAMxC,GAdH;;AAgBSC,EAAAA,gCAhBT,GAgBE,0CAAwCC,SAAxC,EAAyF;AACvF,QAAI,CAAC,KAAKP,KAAL,CAAWI,QAAZ,IAAwBG,SAAS,CAACH,QAAtC,EAAgD;AAC9C,WAAKC,cAAL;AACD;AACD,QAAI,KAAKL,KAAL,CAAWI,QAAX,IAAuB,CAACG,SAAS,CAACH,QAAtC,EAAgD;AAC9C,WAAKI,gBAAL;AACD;AACF,GAvBH;;AAyBSC,EAAAA,oBAzBT,GAyBE,gCAA8B;AAC5B,SAAKC,gBAAL;AACD,GA3BH;;AA6BSC,EAAAA,MA7BT,GA6BE,kBAAgB;AACd,wBAAO,oBAAC,oBAAD,eAA0B,KAAKX,KAA/B,IAAsC,YAAY,EAAE,KAAKC,YAAzD,EAAuE,MAAM,EAAE,KAAKC,MAApF,IAAP;AACD,GA/BH;;AAiCUU,EAAAA,eAjCV,GAiCE,2BAA0B;AACxB,QAAIlB,SAAJ,EAAe;AACb,UAAMO,YAAY,GAAGY,QAAQ,CAACC,aAAT,CAAuB,KAAvB,CAArB;AACAb,MAAAA,YAAY,CAACc,YAAb,CAA0B,OAA1B,EAAmClB,OAAO,CAACmB,uBAAR,EAAnC;AACAf,MAAAA,YAAY,CAACc,YAAb,CAA0B,4BAA1B,OAA2D,KAAKb,MAAhE;AACA,WAAKD,YAAL,GAAoBA,YAApB;AACD;AACF,GAxCH;;AA0CUI,EAAAA,cA1CV,GA0CE,0BAAyB;AACvB,QAAI,CAAC,KAAKJ,YAAV,EAAwB;AACtB,WAAKW,eAAL;AACD;AACD,QAAI,KAAKX,YAAL,IAAqB,KAAKA,YAAL,CAAkBgB,UAAlB,KAAiCJ,QAAQ,CAACK,IAAnE,EAAyE;AACvEL,MAAAA,QAAQ,CAACK,IAAT,CAAcC,WAAd,CAA0B,KAAKlB,YAA/B;AACA,UAAImB,MAAM,CAACC,YAAX,EAAyB;AACvBD,QAAAA,MAAM,CAACC,YAAP,CAAoBC,kBAApB,CAAuC,KAAKpB,MAA5C,EAAoD,IAApD;AACD;AACF;AACF,GApDH;;AAsDUQ,EAAAA,gBAtDV,GAsDE,4BAA2B;AACzB,QAAI,KAAKT,YAAT,EAAuB;AACrB,WAAKO,gBAAL;AACA,WAAKP,YAAL,GAAoB,IAApB;AACD;AACF,GA3DH;;AA6DUO,EAAAA,gBA7DV,GA6DE,4BAA2B;AACzB,QAAI,KAAKP,YAAL,IAAqB,KAAKA,YAAL,CAAkBgB,UAA3C,EAAuD;AACrD,WAAKhB,YAAL,CAAkBgB,UAAlB,CAA6BM,WAA7B,CAAyC,KAAKtB,YAA9C;;AAEA,UAAImB,MAAM,CAACC,YAAX,EAAyB;AACvBD,QAAAA,MAAM,CAACC,YAAP,CAAoBG,qBAApB,CAA0C,KAAKtB,MAA/C;AACD;AACF;AACF,GArEH,0BAAqCT,KAAK,CAACgC,SAA3C,EAAa1B,e,CACG2B,mB,GAAsB,iB,CADzB3B,e,CAGII,S,GAAY,oBAAMP,WAAW,EAAjB,E","sourcesContent":["import React from 'react';\n\nimport { canUseDOM, isBrowser } from '../../lib/client';\nimport { Nullable } from '../../typings/utility-types';\nimport { getRandomID } from '../../lib/utils';\nimport { Upgrade } from '../../lib/Upgrades';\n\nimport { RenderInnerContainer } from './RenderInnerContainer';\nimport { RenderContainerProps } from './RenderContainerTypes';\n\nexport class RenderContainer extends React.Component<RenderContainerProps> {\n public static __KONTUR_REACT_UI__ = 'RenderContainer';\n\n private static getRootId = () => getRandomID();\n private domContainer: Nullable<HTMLElement> = null;\n\n private readonly rootId: string = RenderContainer.getRootId();\n\n constructor(props: RenderContainerProps) {\n super(props);\n\n if (isBrowser && props.children) {\n this.mountContainer();\n }\n }\n\n public UNSAFE_componentWillReceiveProps(nextProps: Readonly<RenderContainerProps>): void {\n if (!this.props.children && nextProps.children) {\n this.mountContainer();\n }\n if (this.props.children && !nextProps.children) {\n this.unmountContainer();\n }\n }\n\n public componentWillUnmount() {\n this.destroyContainer();\n }\n\n public render() {\n return <RenderInnerContainer {...this.props} domContainer={this.domContainer} rootId={this.rootId} />;\n }\n\n private createContainer() {\n if (canUseDOM) {\n const domContainer = document.createElement('div');\n domContainer.setAttribute('class', Upgrade.getSpecificityClassName());\n domContainer.setAttribute('data-rendered-container-id', `${this.rootId}`);\n this.domContainer = domContainer;\n }\n }\n\n private mountContainer() {\n if (!this.domContainer) {\n this.createContainer();\n }\n if (this.domContainer && this.domContainer.parentNode !== document.body) {\n document.body.appendChild(this.domContainer);\n if (window.ReactTesting) {\n window.ReactTesting.addRenderContainer(this.rootId, this);\n }\n }\n }\n\n private destroyContainer() {\n if (this.domContainer) {\n this.unmountContainer();\n this.domContainer = null;\n }\n }\n\n private unmountContainer() {\n if (this.domContainer && this.domContainer.parentNode) {\n this.domContainer.parentNode.removeChild(this.domContainer);\n\n if (window.ReactTesting) {\n window.ReactTesting.removeRenderContainer(this.rootId);\n }\n }\n }\n}\n"]}
|
|
@@ -109,15 +109,15 @@ export var darkTheme = ThemeFactory.create({
|
|
|
109
109
|
btnCheckedBg: '#737373',
|
|
110
110
|
btnCheckedTextColor: '#fff',
|
|
111
111
|
btnDefaultBg: '#333333',
|
|
112
|
-
btnDefaultHoverBg: '#
|
|
112
|
+
btnDefaultHoverBg: '#444444',
|
|
113
113
|
btnDefaultBgStart: 'none',
|
|
114
114
|
btnDefaultBgEnd: 'none',
|
|
115
115
|
btnDefaultBorderColor: 'rgba(255,255,255, 1)',
|
|
116
116
|
btnDefaultBorderBottomColor: 'rgba(255,255,255, 1)',
|
|
117
117
|
btnDefaultHoverBgStart: '#333',
|
|
118
118
|
btnDefaultHoverBgEnd: '#333',
|
|
119
|
-
btnDefaultHoverBorderColor: 'rgba(
|
|
120
|
-
btnDefaultHoverBorderBottomColor: 'rgba(
|
|
119
|
+
btnDefaultHoverBorderColor: 'rgba(255,255,255,0.9)',
|
|
120
|
+
btnDefaultHoverBorderBottomColor: 'rgba(255,255,255,0.7)',
|
|
121
121
|
btnDefaultActiveBg: '#e1e1e1',
|
|
122
122
|
btnDefaultActiveShadow: 'inset 0 1px 2px 0 rgba(0, 0, 0, 0.1)',
|
|
123
123
|
btnDefaultActiveBorderColor: 'rgba(0, 0, 0, 0.2)',
|