@skbkontur/react-ui 5.0.8 → 5.0.10
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 +19 -0
- package/cjs/components/Autocomplete/__creevey__/Autocomplete.creevey.mts +239 -0
- package/cjs/components/Button/__creevey__/Button.creevey.mts +251 -0
- package/cjs/components/Calendar/__creevey__/Calendar.creevey.mts +74 -0
- package/cjs/components/Checkbox/__creevey__/Checkbox.creevey.mts +243 -0
- package/cjs/components/ComboBox/__creevey__/ComboBox.creevey.mts +541 -0
- package/cjs/components/CurrencyInput/__creevey__/CurrencyInput.creevey.mts +81 -0
- package/cjs/components/DateInput/__creevey__/DateInput.creevey.mts +156 -0
- package/cjs/components/DatePicker/__creevey__/DatePicker.creevey.mts +209 -0
- package/cjs/components/Dropdown/__creevey__/Dropdown.creevey.mts +184 -0
- package/cjs/components/DropdownMenu/__creevey__/DropdownMenu.creevey.mts +263 -0
- package/cjs/components/FxInput/__creevey__/FxInput.creevey.mts +21 -0
- package/cjs/components/GlobalLoader/GlobalLoader.d.ts +1 -0
- package/cjs/components/GlobalLoader/GlobalLoader.js +6 -2
- package/cjs/components/GlobalLoader/GlobalLoader.js.map +1 -1
- package/cjs/components/Group/__creevey__/Group.creevey.mts +19 -0
- package/cjs/components/Hint/__creevey__/Hint.creevey.mts +68 -0
- package/cjs/components/Input/__creevey__/Input.creevey.mts +239 -0
- package/cjs/components/Kebab/__creevey__/Kebab.creevey.mts +147 -0
- package/cjs/components/Link/__creevey__/Link.creevey.mts +162 -0
- package/cjs/components/Loader/__creevey__/Loader.creevey.mts +35 -0
- package/cjs/components/MaskedInput/__creevey__/MaskedInput.creevey.mts +216 -0
- package/cjs/components/Modal/Modal.js +7 -10
- package/cjs/components/Modal/Modal.js.map +1 -1
- package/cjs/components/Modal/ModalContext.d.ts +3 -3
- package/cjs/components/Modal/ModalContext.js.map +1 -1
- package/cjs/components/Modal/ModalFooter.js +2 -2
- package/cjs/components/Modal/ModalFooter.js.map +1 -1
- package/cjs/components/Modal/ModalHeader.js +1 -1
- package/cjs/components/Modal/ModalHeader.js.map +1 -1
- package/cjs/components/Modal/__creevey__/Modal.creevey.mts +281 -0
- package/cjs/components/Paging/__creevey__/Paging.creevey.mts +97 -0
- package/cjs/components/PasswordInput/__creevey__/PasswordInput.creevey.mts +38 -0
- package/cjs/components/Radio/__creevey__/Radio.creevey.mts +28 -0
- package/cjs/components/RadioGroup/__creevey__/RadioGroup.creevey.mts +86 -0
- package/cjs/components/ScrollContainer/__creevey__/ScrollContainer.creevey.mts +247 -0
- package/cjs/components/Select/Select.d.ts +1 -6
- package/cjs/components/Select/Select.js +7 -10
- package/cjs/components/Select/Select.js.map +1 -1
- package/cjs/components/Select/__creevey__/Select.creevey.mts +293 -0
- package/cjs/components/Select/tids.d.ts +5 -0
- package/cjs/components/Select/tids.js +5 -0
- package/cjs/components/Select/tids.js.map +1 -0
- package/cjs/components/SidePage/__creevey__/SidePage.creevey.mts +319 -0
- package/cjs/components/Sticky/__creevey__/Sticky.creevey.mts +98 -0
- package/cjs/components/Switcher/__creevey__/Switcher.creevey.mts +24 -0
- package/cjs/components/Tabs/__creevey__/Tabs.creevey.mts +239 -0
- package/cjs/components/Textarea/__creevey__/Textarea.creevey.mts +177 -0
- package/cjs/components/Toast/__creevey__/Toast.creevey.mts +54 -0
- package/cjs/components/Toggle/__creevey__/Toggle.creevey.mts +87 -0
- package/cjs/components/TokenInput/__creevey__/TokenInput.creevey.mts +414 -0
- package/cjs/components/Tooltip/__creevey__/Tooltip.creevey.mts +533 -0
- package/cjs/components/TooltipMenu/__creevey__/TooltipMenu.creevey.mts +131 -0
- package/cjs/internal/CloseButtonIcon/__creevey__/CloseButtonIcon.creevey.mts +48 -0
- package/cjs/internal/CustomComboBox/CustomComboBox.d.ts +1 -3
- package/cjs/internal/CustomComboBox/CustomComboBox.js +4 -6
- package/cjs/internal/CustomComboBox/CustomComboBox.js.map +1 -1
- package/cjs/internal/CustomComboBox/__creevey__/ComboBoxView.creevey.mts +30 -0
- package/cjs/internal/CustomComboBox/tids.d.ts +3 -0
- package/cjs/internal/CustomComboBox/tids.js +3 -0
- package/cjs/internal/CustomComboBox/tids.js.map +1 -0
- package/cjs/internal/FileUploaderControl/__creevey__/FileUploaderFile.creevey.mts +25 -0
- package/cjs/internal/HideBodyVerticalScroll/__creevey__/HideBodyVerticalScroll.creevey.mts +83 -0
- package/cjs/internal/Menu/__creevey__/Menu.creevey.mts +90 -0
- package/cjs/internal/PopupMenu/PopupMenu.d.ts +1 -5
- package/cjs/internal/PopupMenu/PopupMenu.js +8 -10
- package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
- package/cjs/internal/PopupMenu/__creevey__/PopupMenu.creevey.mts +37 -0
- package/cjs/internal/PopupMenu/tids.d.ts +4 -0
- package/cjs/internal/PopupMenu/tids.js +4 -0
- package/cjs/internal/PopupMenu/tids.js.map +1 -0
- package/cjs/internal/ThemePlayground/__creevey__/ThemeProvider.creevey.mts +68 -0
- package/cjs/internal/ThemeShowcase/VariablesCollector.js +1 -0
- package/cjs/internal/ThemeShowcase/VariablesCollector.js.map +1 -1
- package/cjs/internal/ZIndex/__creevey__/ZIndex.creevey.mts +228 -0
- package/cjs/lib/delay.d.ts +1 -0
- package/cjs/lib/delay.js +3 -0
- package/cjs/lib/delay.js.map +1 -0
- package/cjs/lib/utils.d.ts +3 -3
- package/cjs/lib/utils.js +5 -4
- package/cjs/lib/utils.js.map +1 -1
- package/components/Autocomplete/__creevey__/Autocomplete.creevey.mts +239 -0
- package/components/Button/__creevey__/Button.creevey.mts +251 -0
- package/components/Calendar/__creevey__/Calendar.creevey.mts +74 -0
- package/components/Checkbox/__creevey__/Checkbox.creevey.mts +243 -0
- package/components/ComboBox/__creevey__/ComboBox.creevey.mts +541 -0
- package/components/CurrencyInput/__creevey__/CurrencyInput.creevey.mts +81 -0
- package/components/DateInput/__creevey__/DateInput.creevey.mts +156 -0
- package/components/DatePicker/__creevey__/DatePicker.creevey.mts +209 -0
- package/components/Dropdown/__creevey__/Dropdown.creevey.mts +184 -0
- package/components/DropdownMenu/__creevey__/DropdownMenu.creevey.mts +263 -0
- package/components/FxInput/__creevey__/FxInput.creevey.mts +21 -0
- package/components/GlobalLoader/GlobalLoader/GlobalLoader.js +13 -5
- package/components/GlobalLoader/GlobalLoader/GlobalLoader.js.map +1 -1
- package/components/GlobalLoader/GlobalLoader.d.ts +1 -0
- package/components/Group/__creevey__/Group.creevey.mts +19 -0
- package/components/Hint/__creevey__/Hint.creevey.mts +68 -0
- package/components/Input/__creevey__/Input.creevey.mts +239 -0
- package/components/Kebab/__creevey__/Kebab.creevey.mts +147 -0
- package/components/Link/__creevey__/Link.creevey.mts +162 -0
- package/components/Loader/__creevey__/Loader.creevey.mts +35 -0
- package/components/MaskedInput/__creevey__/MaskedInput.creevey.mts +216 -0
- package/components/Modal/Modal/Modal.js +4 -16
- package/components/Modal/Modal/Modal.js.map +1 -1
- package/components/Modal/ModalContext/ModalContext.js.map +1 -1
- package/components/Modal/ModalContext.d.ts +3 -3
- package/components/Modal/ModalFooter/ModalFooter.js +2 -2
- package/components/Modal/ModalFooter/ModalFooter.js.map +1 -1
- package/components/Modal/ModalHeader/ModalHeader.js +1 -1
- package/components/Modal/ModalHeader/ModalHeader.js.map +1 -1
- package/components/Modal/__creevey__/Modal.creevey.mts +281 -0
- package/components/Paging/__creevey__/Paging.creevey.mts +97 -0
- package/components/PasswordInput/__creevey__/PasswordInput.creevey.mts +38 -0
- package/components/Radio/__creevey__/Radio.creevey.mts +28 -0
- package/components/RadioGroup/__creevey__/RadioGroup.creevey.mts +86 -0
- package/components/ScrollContainer/__creevey__/ScrollContainer.creevey.mts +247 -0
- package/components/Select/Select/Select.js +2 -5
- package/components/Select/Select/Select.js.map +1 -1
- package/components/Select/Select.d.ts +1 -6
- package/components/Select/__creevey__/Select.creevey.mts +293 -0
- package/components/Select/tids/package.json +6 -0
- package/components/Select/tids/tids.js +5 -0
- package/components/Select/tids/tids.js.map +1 -0
- package/components/Select/tids.d.ts +5 -0
- package/components/SidePage/__creevey__/SidePage.creevey.mts +319 -0
- package/components/Sticky/__creevey__/Sticky.creevey.mts +98 -0
- package/components/Switcher/__creevey__/Switcher.creevey.mts +24 -0
- package/components/Tabs/__creevey__/Tabs.creevey.mts +239 -0
- package/components/Textarea/__creevey__/Textarea.creevey.mts +177 -0
- package/components/Toast/__creevey__/Toast.creevey.mts +54 -0
- package/components/Toggle/__creevey__/Toggle.creevey.mts +87 -0
- package/components/TokenInput/__creevey__/TokenInput.creevey.mts +414 -0
- package/components/Tooltip/__creevey__/Tooltip.creevey.mts +533 -0
- package/components/TooltipMenu/__creevey__/TooltipMenu.creevey.mts +131 -0
- package/internal/CloseButtonIcon/__creevey__/CloseButtonIcon.creevey.mts +48 -0
- package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js +1 -3
- package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js.map +1 -1
- package/internal/CustomComboBox/CustomComboBox.d.ts +1 -3
- package/internal/CustomComboBox/__creevey__/ComboBoxView.creevey.mts +30 -0
- package/internal/CustomComboBox/tids/package.json +6 -0
- package/internal/CustomComboBox/tids/tids.js +3 -0
- package/internal/CustomComboBox/tids/tids.js.map +1 -0
- package/internal/CustomComboBox/tids.d.ts +3 -0
- package/internal/FileUploaderControl/__creevey__/FileUploaderFile.creevey.mts +25 -0
- package/internal/HideBodyVerticalScroll/__creevey__/HideBodyVerticalScroll.creevey.mts +83 -0
- package/internal/Menu/__creevey__/Menu.creevey.mts +90 -0
- package/internal/PopupMenu/PopupMenu/PopupMenu.js +2 -4
- package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
- package/internal/PopupMenu/PopupMenu.d.ts +1 -5
- package/internal/PopupMenu/__creevey__/PopupMenu.creevey.mts +37 -0
- package/internal/PopupMenu/tids/package.json +6 -0
- package/internal/PopupMenu/tids/tids.js +4 -0
- package/internal/PopupMenu/tids/tids.js.map +1 -0
- package/internal/PopupMenu/tids.d.ts +4 -0
- package/internal/ThemePlayground/__creevey__/ThemeProvider.creevey.mts +68 -0
- package/internal/ThemeShowcase/VariablesCollector/VariablesCollector.js +2 -0
- package/internal/ThemeShowcase/VariablesCollector/VariablesCollector.js.map +1 -1
- package/internal/ZIndex/__creevey__/ZIndex.creevey.mts +228 -0
- package/lib/delay/delay.js +6 -0
- package/lib/delay/delay.js.map +1 -0
- package/lib/delay/package.json +6 -0
- package/lib/delay.d.ts +1 -0
- package/lib/utils/utils.js +3 -7
- package/lib/utils/utils.js.map +1 -1
- package/lib/utils.d.ts +3 -3
- package/package.json +6 -5
- package/cjs/components/Autocomplete/__creevey__/Autocomplete.creevey.js +0 -239
- package/cjs/components/Autocomplete/__creevey__/Autocomplete.creevey.js.map +0 -1
- package/cjs/components/Button/__creevey__/Button.creevey.js +0 -250
- package/cjs/components/Button/__creevey__/Button.creevey.js.map +0 -1
- package/cjs/components/Calendar/__creevey__/Calendar.creevey.js +0 -74
- package/cjs/components/Calendar/__creevey__/Calendar.creevey.js.map +0 -1
- package/cjs/components/Checkbox/__creevey__/Checkbox.creevey.js +0 -242
- package/cjs/components/Checkbox/__creevey__/Checkbox.creevey.js.map +0 -1
- package/cjs/components/ComboBox/__creevey__/ComboBox.creevey.js +0 -540
- package/cjs/components/ComboBox/__creevey__/ComboBox.creevey.js.map +0 -1
- package/cjs/components/CurrencyInput/__creevey__/CurrencyInput.creevey.js +0 -81
- package/cjs/components/CurrencyInput/__creevey__/CurrencyInput.creevey.js.map +0 -1
- package/cjs/components/DateInput/__creevey__/DateInput.creevey.js +0 -155
- package/cjs/components/DateInput/__creevey__/DateInput.creevey.js.map +0 -1
- package/cjs/components/DatePicker/__creevey__/DatePicker.creevey.js +0 -209
- package/cjs/components/DatePicker/__creevey__/DatePicker.creevey.js.map +0 -1
- package/cjs/components/Dropdown/__creevey__/Dropdown.creevey.js +0 -184
- package/cjs/components/Dropdown/__creevey__/Dropdown.creevey.js.map +0 -1
- package/cjs/components/DropdownMenu/__creevey__/DropdownMenu.creevey.js +0 -262
- package/cjs/components/DropdownMenu/__creevey__/DropdownMenu.creevey.js.map +0 -1
- package/cjs/components/FxInput/__creevey__/FxInput.creevey.js +0 -21
- package/cjs/components/FxInput/__creevey__/FxInput.creevey.js.map +0 -1
- package/cjs/components/Group/__creevey__/Group.creevey.js +0 -19
- package/cjs/components/Group/__creevey__/Group.creevey.js.map +0 -1
- package/cjs/components/Hint/__creevey__/Hint.creevey.js +0 -68
- package/cjs/components/Hint/__creevey__/Hint.creevey.js.map +0 -1
- package/cjs/components/Input/__creevey__/Input.creevey.js +0 -239
- package/cjs/components/Input/__creevey__/Input.creevey.js.map +0 -1
- package/cjs/components/Kebab/__creevey__/Kebab.creevey.js +0 -146
- package/cjs/components/Kebab/__creevey__/Kebab.creevey.js.map +0 -1
- package/cjs/components/Link/__creevey__/Link.creevey.js +0 -161
- package/cjs/components/Link/__creevey__/Link.creevey.js.map +0 -1
- package/cjs/components/Loader/__creevey__/Loader.creevey.js +0 -34
- package/cjs/components/Loader/__creevey__/Loader.creevey.js.map +0 -1
- package/cjs/components/MaskedInput/__creevey__/MaskedInput.creevey.js +0 -219
- package/cjs/components/MaskedInput/__creevey__/MaskedInput.creevey.js.map +0 -1
- package/cjs/components/Modal/__creevey__/Modal.creevey.js +0 -258
- package/cjs/components/Modal/__creevey__/Modal.creevey.js.map +0 -1
- package/cjs/components/Paging/__creevey__/Paging.creevey.js +0 -96
- package/cjs/components/Paging/__creevey__/Paging.creevey.js.map +0 -1
- package/cjs/components/PasswordInput/__creevey__/PasswordInput.creevey.js +0 -38
- package/cjs/components/PasswordInput/__creevey__/PasswordInput.creevey.js.map +0 -1
- package/cjs/components/Radio/__creevey__/Radio.creevey.js +0 -27
- package/cjs/components/Radio/__creevey__/Radio.creevey.js.map +0 -1
- package/cjs/components/RadioGroup/__creevey__/RadioGroup.creevey.js +0 -85
- package/cjs/components/RadioGroup/__creevey__/RadioGroup.creevey.js.map +0 -1
- package/cjs/components/ScrollContainer/__creevey__/ScrollContainer.creevey.js +0 -247
- package/cjs/components/ScrollContainer/__creevey__/ScrollContainer.creevey.js.map +0 -1
- package/cjs/components/Select/__creevey__/Select.creevey.js +0 -284
- package/cjs/components/Select/__creevey__/Select.creevey.js.map +0 -1
- package/cjs/components/SidePage/__creevey__/SidePage.creevey.js +0 -313
- package/cjs/components/SidePage/__creevey__/SidePage.creevey.js.map +0 -1
- package/cjs/components/Sticky/__creevey__/Sticky.creevey.js +0 -98
- package/cjs/components/Sticky/__creevey__/Sticky.creevey.js.map +0 -1
- package/cjs/components/Switcher/__creevey__/Switcher.creevey.js +0 -24
- package/cjs/components/Switcher/__creevey__/Switcher.creevey.js.map +0 -1
- package/cjs/components/Tabs/__creevey__/Tabs.creevey.js +0 -238
- package/cjs/components/Tabs/__creevey__/Tabs.creevey.js.map +0 -1
- package/cjs/components/Textarea/__creevey__/Textarea.creevey.js +0 -176
- package/cjs/components/Textarea/__creevey__/Textarea.creevey.js.map +0 -1
- package/cjs/components/Toast/__creevey__/Toast.creevey.js +0 -54
- package/cjs/components/Toast/__creevey__/Toast.creevey.js.map +0 -1
- package/cjs/components/Toggle/__creevey__/Toggle.creevey.js +0 -87
- package/cjs/components/Toggle/__creevey__/Toggle.creevey.js.map +0 -1
- package/cjs/components/TokenInput/__creevey__/TokenInput.creevey.js +0 -413
- package/cjs/components/TokenInput/__creevey__/TokenInput.creevey.js.map +0 -1
- package/cjs/components/Tooltip/__creevey__/Tooltip.creevey.js +0 -534
- package/cjs/components/Tooltip/__creevey__/Tooltip.creevey.js.map +0 -1
- package/cjs/components/TooltipMenu/__creevey__/TooltipMenu.creevey.js +0 -130
- package/cjs/components/TooltipMenu/__creevey__/TooltipMenu.creevey.js.map +0 -1
- package/cjs/internal/CloseButtonIcon/__creevey__/CloseButtonIcon.creevey.js +0 -47
- package/cjs/internal/CloseButtonIcon/__creevey__/CloseButtonIcon.creevey.js.map +0 -1
- package/cjs/internal/CustomComboBox/__creevey__/ComboBoxView.creevey.js +0 -30
- package/cjs/internal/CustomComboBox/__creevey__/ComboBoxView.creevey.js.map +0 -1
- package/cjs/internal/FileUploaderControl/__creevey__/FileUploaderFile.creevey.js +0 -25
- package/cjs/internal/FileUploaderControl/__creevey__/FileUploaderFile.creevey.js.map +0 -1
- package/cjs/internal/HideBodyVerticalScroll/__creevey__/HideBodyVerticalScroll.creevey.js +0 -83
- package/cjs/internal/HideBodyVerticalScroll/__creevey__/HideBodyVerticalScroll.creevey.js.map +0 -1
- package/cjs/internal/Menu/__creevey__/Menu.creevey.js +0 -90
- package/cjs/internal/Menu/__creevey__/Menu.creevey.js.map +0 -1
- package/cjs/internal/PopupMenu/__creevey__/PopupMenu.creevey.js +0 -37
- package/cjs/internal/PopupMenu/__creevey__/PopupMenu.creevey.js.map +0 -1
- package/cjs/internal/ThemePlayground/__creevey__/ThemeProvider.creevey.js +0 -68
- package/cjs/internal/ThemePlayground/__creevey__/ThemeProvider.creevey.js.map +0 -1
- package/cjs/internal/ZIndex/__creevey__/ZIndex.creevey.js +0 -228
- package/cjs/internal/ZIndex/__creevey__/ZIndex.creevey.js.map +0 -1
- package/cjs/lib/styles/HoldSelectionColor.d.ts +0 -1
- package/cjs/lib/styles/HoldSelectionColor.js +0 -9
- package/cjs/lib/styles/HoldSelectionColor.js.map +0 -1
- package/components/Autocomplete/__creevey__/Autocomplete.creevey/Autocomplete.creevey.js +0 -506
- package/components/Autocomplete/__creevey__/Autocomplete.creevey/Autocomplete.creevey.js.map +0 -1
- package/components/Autocomplete/__creevey__/Autocomplete.creevey/package.json +0 -6
- package/components/Autocomplete/__creevey__/Autocomplete.creevey.d.ts +0 -1
- package/components/Button/__creevey__/Button.creevey/Button.creevey.js +0 -396
- package/components/Button/__creevey__/Button.creevey/Button.creevey.js.map +0 -1
- package/components/Button/__creevey__/Button.creevey/package.json +0 -6
- package/components/Button/__creevey__/Button.creevey.d.ts +0 -1
- package/components/Calendar/__creevey__/Calendar.creevey/Calendar.creevey.js +0 -138
- package/components/Calendar/__creevey__/Calendar.creevey/Calendar.creevey.js.map +0 -1
- package/components/Calendar/__creevey__/Calendar.creevey/package.json +0 -6
- package/components/Calendar/__creevey__/Calendar.creevey.d.ts +0 -1
- package/components/Checkbox/__creevey__/Checkbox.creevey/Checkbox.creevey.js +0 -487
- package/components/Checkbox/__creevey__/Checkbox.creevey/Checkbox.creevey.js.map +0 -1
- package/components/Checkbox/__creevey__/Checkbox.creevey/package.json +0 -6
- package/components/Checkbox/__creevey__/Checkbox.creevey.d.ts +0 -1
- package/components/ComboBox/__creevey__/ComboBox.creevey/ComboBox.creevey.js +0 -1043
- package/components/ComboBox/__creevey__/ComboBox.creevey/ComboBox.creevey.js.map +0 -1
- package/components/ComboBox/__creevey__/ComboBox.creevey/package.json +0 -6
- package/components/ComboBox/__creevey__/ComboBox.creevey.d.ts +0 -1
- package/components/CurrencyInput/__creevey__/CurrencyInput.creevey/CurrencyInput.creevey.js +0 -114
- package/components/CurrencyInput/__creevey__/CurrencyInput.creevey/CurrencyInput.creevey.js.map +0 -1
- package/components/CurrencyInput/__creevey__/CurrencyInput.creevey/package.json +0 -6
- package/components/CurrencyInput/__creevey__/CurrencyInput.creevey.d.ts +0 -1
- package/components/DateInput/__creevey__/DateInput.creevey/DateInput.creevey.js +0 -367
- package/components/DateInput/__creevey__/DateInput.creevey/DateInput.creevey.js.map +0 -1
- package/components/DateInput/__creevey__/DateInput.creevey/package.json +0 -6
- package/components/DateInput/__creevey__/DateInput.creevey.d.ts +0 -1
- package/components/DatePicker/__creevey__/DatePicker.creevey/DatePicker.creevey.js +0 -395
- package/components/DatePicker/__creevey__/DatePicker.creevey/DatePicker.creevey.js.map +0 -1
- package/components/DatePicker/__creevey__/DatePicker.creevey/package.json +0 -6
- package/components/DatePicker/__creevey__/DatePicker.creevey.d.ts +0 -1
- package/components/Dropdown/__creevey__/Dropdown.creevey/Dropdown.creevey.js +0 -417
- package/components/Dropdown/__creevey__/Dropdown.creevey/Dropdown.creevey.js.map +0 -1
- package/components/Dropdown/__creevey__/Dropdown.creevey/package.json +0 -6
- package/components/Dropdown/__creevey__/Dropdown.creevey.d.ts +0 -1
- package/components/DropdownMenu/__creevey__/DropdownMenu.creevey/DropdownMenu.creevey.js +0 -534
- package/components/DropdownMenu/__creevey__/DropdownMenu.creevey/DropdownMenu.creevey.js.map +0 -1
- package/components/DropdownMenu/__creevey__/DropdownMenu.creevey/package.json +0 -6
- package/components/DropdownMenu/__creevey__/DropdownMenu.creevey.d.ts +0 -1
- package/components/FxInput/__creevey__/FxInput.creevey/FxInput.creevey.js +0 -62
- package/components/FxInput/__creevey__/FxInput.creevey/FxInput.creevey.js.map +0 -1
- package/components/FxInput/__creevey__/FxInput.creevey/package.json +0 -6
- package/components/FxInput/__creevey__/FxInput.creevey.d.ts +0 -1
- package/components/Group/__creevey__/Group.creevey/Group.creevey.js +0 -48
- package/components/Group/__creevey__/Group.creevey/Group.creevey.js.map +0 -1
- package/components/Group/__creevey__/Group.creevey/package.json +0 -6
- package/components/Group/__creevey__/Group.creevey.d.ts +0 -1
- package/components/Hint/__creevey__/Hint.creevey/Hint.creevey.js +0 -127
- package/components/Hint/__creevey__/Hint.creevey/Hint.creevey.js.map +0 -1
- package/components/Hint/__creevey__/Hint.creevey/package.json +0 -6
- package/components/Hint/__creevey__/Hint.creevey.d.ts +0 -1
- package/components/Input/__creevey__/Input.creevey/Input.creevey.js +0 -517
- package/components/Input/__creevey__/Input.creevey/Input.creevey.js.map +0 -1
- package/components/Input/__creevey__/Input.creevey/package.json +0 -6
- package/components/Input/__creevey__/Input.creevey.d.ts +0 -1
- package/components/Kebab/__creevey__/Kebab.creevey/Kebab.creevey.js +0 -278
- package/components/Kebab/__creevey__/Kebab.creevey/Kebab.creevey.js.map +0 -1
- package/components/Kebab/__creevey__/Kebab.creevey/package.json +0 -6
- package/components/Kebab/__creevey__/Kebab.creevey.d.ts +0 -1
- package/components/Link/__creevey__/Link.creevey/Link.creevey.js +0 -238
- package/components/Link/__creevey__/Link.creevey/Link.creevey.js.map +0 -1
- package/components/Link/__creevey__/Link.creevey/package.json +0 -6
- package/components/Link/__creevey__/Link.creevey.d.ts +0 -1
- package/components/Loader/__creevey__/Loader.creevey/Loader.creevey.js +0 -129
- package/components/Loader/__creevey__/Loader.creevey/Loader.creevey.js.map +0 -1
- package/components/Loader/__creevey__/Loader.creevey/package.json +0 -6
- package/components/Loader/__creevey__/Loader.creevey.d.ts +0 -1
- package/components/MaskedInput/__creevey__/MaskedInput.creevey/MaskedInput.creevey.js +0 -405
- package/components/MaskedInput/__creevey__/MaskedInput.creevey/MaskedInput.creevey.js.map +0 -1
- package/components/MaskedInput/__creevey__/MaskedInput.creevey/package.json +0 -6
- package/components/MaskedInput/__creevey__/MaskedInput.creevey.d.ts +0 -1
- package/components/Modal/__creevey__/Modal.creevey/Modal.creevey.js +0 -565
- package/components/Modal/__creevey__/Modal.creevey/Modal.creevey.js.map +0 -1
- package/components/Modal/__creevey__/Modal.creevey/package.json +0 -6
- package/components/Modal/__creevey__/Modal.creevey.d.ts +0 -1
- package/components/Paging/__creevey__/Paging.creevey/Paging.creevey.js +0 -190
- package/components/Paging/__creevey__/Paging.creevey/Paging.creevey.js.map +0 -1
- package/components/Paging/__creevey__/Paging.creevey/package.json +0 -6
- package/components/Paging/__creevey__/Paging.creevey.d.ts +0 -1
- package/components/PasswordInput/__creevey__/PasswordInput.creevey/PasswordInput.creevey.js +0 -83
- package/components/PasswordInput/__creevey__/PasswordInput.creevey/PasswordInput.creevey.js.map +0 -1
- package/components/PasswordInput/__creevey__/PasswordInput.creevey/package.json +0 -6
- package/components/PasswordInput/__creevey__/PasswordInput.creevey.d.ts +0 -1
- package/components/Radio/__creevey__/Radio.creevey/Radio.creevey.js +0 -56
- package/components/Radio/__creevey__/Radio.creevey/Radio.creevey.js.map +0 -1
- package/components/Radio/__creevey__/Radio.creevey/package.json +0 -6
- package/components/Radio/__creevey__/Radio.creevey.d.ts +0 -1
- package/components/RadioGroup/__creevey__/RadioGroup.creevey/RadioGroup.creevey.js +0 -167
- package/components/RadioGroup/__creevey__/RadioGroup.creevey/RadioGroup.creevey.js.map +0 -1
- package/components/RadioGroup/__creevey__/RadioGroup.creevey/package.json +0 -6
- package/components/RadioGroup/__creevey__/RadioGroup.creevey.d.ts +0 -1
- package/components/ScrollContainer/__creevey__/ScrollContainer.creevey/ScrollContainer.creevey.js +0 -488
- package/components/ScrollContainer/__creevey__/ScrollContainer.creevey/ScrollContainer.creevey.js.map +0 -1
- package/components/ScrollContainer/__creevey__/ScrollContainer.creevey/package.json +0 -6
- package/components/ScrollContainer/__creevey__/ScrollContainer.creevey.d.ts +0 -1
- package/components/Select/__creevey__/Select.creevey/Select.creevey.js +0 -541
- package/components/Select/__creevey__/Select.creevey/Select.creevey.js.map +0 -1
- package/components/Select/__creevey__/Select.creevey/package.json +0 -6
- package/components/Select/__creevey__/Select.creevey.d.ts +0 -1
- package/components/SidePage/__creevey__/SidePage.creevey/SidePage.creevey.js +0 -697
- package/components/SidePage/__creevey__/SidePage.creevey/SidePage.creevey.js.map +0 -1
- package/components/SidePage/__creevey__/SidePage.creevey/package.json +0 -6
- package/components/SidePage/__creevey__/SidePage.creevey.d.ts +0 -1
- package/components/Sticky/__creevey__/Sticky.creevey/Sticky.creevey.js +0 -215
- package/components/Sticky/__creevey__/Sticky.creevey/Sticky.creevey.js.map +0 -1
- package/components/Sticky/__creevey__/Sticky.creevey/package.json +0 -6
- package/components/Sticky/__creevey__/Sticky.creevey.d.ts +0 -1
- package/components/Switcher/__creevey__/Switcher.creevey/Switcher.creevey.js +0 -58
- package/components/Switcher/__creevey__/Switcher.creevey/Switcher.creevey.js.map +0 -1
- package/components/Switcher/__creevey__/Switcher.creevey/package.json +0 -6
- package/components/Switcher/__creevey__/Switcher.creevey.d.ts +0 -1
- package/components/Tabs/__creevey__/Tabs.creevey/Tabs.creevey.js +0 -391
- package/components/Tabs/__creevey__/Tabs.creevey/Tabs.creevey.js.map +0 -1
- package/components/Tabs/__creevey__/Tabs.creevey/package.json +0 -6
- package/components/Tabs/__creevey__/Tabs.creevey.d.ts +0 -1
- package/components/Textarea/__creevey__/Textarea.creevey/Textarea.creevey.js +0 -404
- package/components/Textarea/__creevey__/Textarea.creevey/Textarea.creevey.js.map +0 -1
- package/components/Textarea/__creevey__/Textarea.creevey/package.json +0 -6
- package/components/Textarea/__creevey__/Textarea.creevey.d.ts +0 -1
- package/components/Toast/__creevey__/Toast.creevey/Toast.creevey.js +0 -70
- package/components/Toast/__creevey__/Toast.creevey/Toast.creevey.js.map +0 -1
- package/components/Toast/__creevey__/Toast.creevey/package.json +0 -6
- package/components/Toast/__creevey__/Toast.creevey.d.ts +0 -1
- package/components/Toggle/__creevey__/Toggle.creevey/Toggle.creevey.js +0 -195
- package/components/Toggle/__creevey__/Toggle.creevey/Toggle.creevey.js.map +0 -1
- package/components/Toggle/__creevey__/Toggle.creevey/package.json +0 -6
- package/components/Toggle/__creevey__/Toggle.creevey.d.ts +0 -1
- package/components/TokenInput/__creevey__/TokenInput.creevey/TokenInput.creevey.js +0 -635
- package/components/TokenInput/__creevey__/TokenInput.creevey/TokenInput.creevey.js.map +0 -1
- package/components/TokenInput/__creevey__/TokenInput.creevey/package.json +0 -6
- package/components/TokenInput/__creevey__/TokenInput.creevey.d.ts +0 -1
- package/components/Tooltip/__creevey__/Tooltip.creevey/Tooltip.creevey.js +0 -1171
- package/components/Tooltip/__creevey__/Tooltip.creevey/Tooltip.creevey.js.map +0 -1
- package/components/Tooltip/__creevey__/Tooltip.creevey/package.json +0 -6
- package/components/Tooltip/__creevey__/Tooltip.creevey.d.ts +0 -1
- package/components/TooltipMenu/__creevey__/TooltipMenu.creevey/TooltipMenu.creevey.js +0 -277
- package/components/TooltipMenu/__creevey__/TooltipMenu.creevey/TooltipMenu.creevey.js.map +0 -1
- package/components/TooltipMenu/__creevey__/TooltipMenu.creevey/package.json +0 -6
- package/components/TooltipMenu/__creevey__/TooltipMenu.creevey.d.ts +0 -1
- package/internal/CloseButtonIcon/__creevey__/CloseButtonIcon.creevey/CloseButtonIcon.creevey.js +0 -78
- package/internal/CloseButtonIcon/__creevey__/CloseButtonIcon.creevey/CloseButtonIcon.creevey.js.map +0 -1
- package/internal/CloseButtonIcon/__creevey__/CloseButtonIcon.creevey/package.json +0 -6
- package/internal/CloseButtonIcon/__creevey__/CloseButtonIcon.creevey.d.ts +0 -1
- package/internal/CustomComboBox/__creevey__/ComboBoxView.creevey/ComboBoxView.creevey.js +0 -58
- package/internal/CustomComboBox/__creevey__/ComboBoxView.creevey/ComboBoxView.creevey.js.map +0 -1
- package/internal/CustomComboBox/__creevey__/ComboBoxView.creevey/package.json +0 -6
- package/internal/CustomComboBox/__creevey__/ComboBoxView.creevey.d.ts +0 -1
- package/internal/FileUploaderControl/__creevey__/FileUploaderFile.creevey/FileUploaderFile.creevey.js +0 -41
- package/internal/FileUploaderControl/__creevey__/FileUploaderFile.creevey/FileUploaderFile.creevey.js.map +0 -1
- package/internal/FileUploaderControl/__creevey__/FileUploaderFile.creevey/package.json +0 -6
- package/internal/FileUploaderControl/__creevey__/FileUploaderFile.creevey.d.ts +0 -1
- package/internal/HideBodyVerticalScroll/__creevey__/HideBodyVerticalScroll.creevey/HideBodyVerticalScroll.creevey.js +0 -199
- package/internal/HideBodyVerticalScroll/__creevey__/HideBodyVerticalScroll.creevey/HideBodyVerticalScroll.creevey.js.map +0 -1
- package/internal/HideBodyVerticalScroll/__creevey__/HideBodyVerticalScroll.creevey/package.json +0 -6
- package/internal/HideBodyVerticalScroll/__creevey__/HideBodyVerticalScroll.creevey.d.ts +0 -1
- package/internal/Menu/__creevey__/Menu.creevey/Menu.creevey.js +0 -196
- package/internal/Menu/__creevey__/Menu.creevey/Menu.creevey.js.map +0 -1
- package/internal/Menu/__creevey__/Menu.creevey/package.json +0 -6
- package/internal/Menu/__creevey__/Menu.creevey.d.ts +0 -1
- package/internal/PopupMenu/__creevey__/PopupMenu.creevey/PopupMenu.creevey.js +0 -69
- package/internal/PopupMenu/__creevey__/PopupMenu.creevey/PopupMenu.creevey.js.map +0 -1
- package/internal/PopupMenu/__creevey__/PopupMenu.creevey/package.json +0 -6
- package/internal/PopupMenu/__creevey__/PopupMenu.creevey.d.ts +0 -1
- package/internal/ThemePlayground/__creevey__/ThemeProvider.creevey/ThemeProvider.creevey.js +0 -145
- package/internal/ThemePlayground/__creevey__/ThemeProvider.creevey/ThemeProvider.creevey.js.map +0 -1
- package/internal/ThemePlayground/__creevey__/ThemeProvider.creevey/package.json +0 -6
- package/internal/ThemePlayground/__creevey__/ThemeProvider.creevey.d.ts +0 -1
- package/internal/ZIndex/__creevey__/ZIndex.creevey/ZIndex.creevey.js +0 -550
- package/internal/ZIndex/__creevey__/ZIndex.creevey/ZIndex.creevey.js.map +0 -1
- package/internal/ZIndex/__creevey__/ZIndex.creevey/package.json +0 -6
- package/internal/ZIndex/__creevey__/ZIndex.creevey.d.ts +0 -1
- package/lib/styles/HoldSelectionColor/HoldSelectionColor.js +0 -8
- package/lib/styles/HoldSelectionColor/HoldSelectionColor.js.map +0 -1
- package/lib/styles/HoldSelectionColor/package.json +0 -6
- package/lib/styles/HoldSelectionColor.d.ts +0 -1
- /package/{cjs/components/Autocomplete/__creevey__/Autocomplete.creevey.d.ts → components/Autocomplete/__creevey__/Autocomplete.creevey.d.mts} +0 -0
- /package/{cjs/components/Button/__creevey__/Button.creevey.d.ts → components/Button/__creevey__/Button.creevey.d.mts} +0 -0
- /package/{cjs/components/Calendar/__creevey__/Calendar.creevey.d.ts → components/Calendar/__creevey__/Calendar.creevey.d.mts} +0 -0
- /package/{cjs/components/Checkbox/__creevey__/Checkbox.creevey.d.ts → components/Checkbox/__creevey__/Checkbox.creevey.d.mts} +0 -0
- /package/{cjs/components/ComboBox/__creevey__/ComboBox.creevey.d.ts → components/ComboBox/__creevey__/ComboBox.creevey.d.mts} +0 -0
- /package/{cjs/components/CurrencyInput/__creevey__/CurrencyInput.creevey.d.ts → components/CurrencyInput/__creevey__/CurrencyInput.creevey.d.mts} +0 -0
- /package/{cjs/components/DateInput/__creevey__/DateInput.creevey.d.ts → components/DateInput/__creevey__/DateInput.creevey.d.mts} +0 -0
- /package/{cjs/components/DatePicker/__creevey__/DatePicker.creevey.d.ts → components/DatePicker/__creevey__/DatePicker.creevey.d.mts} +0 -0
- /package/{cjs/components/Dropdown/__creevey__/Dropdown.creevey.d.ts → components/Dropdown/__creevey__/Dropdown.creevey.d.mts} +0 -0
- /package/{cjs/components/DropdownMenu/__creevey__/DropdownMenu.creevey.d.ts → components/DropdownMenu/__creevey__/DropdownMenu.creevey.d.mts} +0 -0
- /package/{cjs/components/FxInput/__creevey__/FxInput.creevey.d.ts → components/FxInput/__creevey__/FxInput.creevey.d.mts} +0 -0
- /package/{cjs/components/Group/__creevey__/Group.creevey.d.ts → components/Group/__creevey__/Group.creevey.d.mts} +0 -0
- /package/{cjs/components/Hint/__creevey__/Hint.creevey.d.ts → components/Hint/__creevey__/Hint.creevey.d.mts} +0 -0
- /package/{cjs/components/Input/__creevey__/Input.creevey.d.ts → components/Input/__creevey__/Input.creevey.d.mts} +0 -0
- /package/{cjs/components/Kebab/__creevey__/Kebab.creevey.d.ts → components/Kebab/__creevey__/Kebab.creevey.d.mts} +0 -0
- /package/{cjs/components/Link/__creevey__/Link.creevey.d.ts → components/Link/__creevey__/Link.creevey.d.mts} +0 -0
- /package/{cjs/components/Loader/__creevey__/Loader.creevey.d.ts → components/Loader/__creevey__/Loader.creevey.d.mts} +0 -0
- /package/{cjs/components/MaskedInput/__creevey__/MaskedInput.creevey.d.ts → components/MaskedInput/__creevey__/MaskedInput.creevey.d.mts} +0 -0
- /package/{cjs/components/Modal/__creevey__/Modal.creevey.d.ts → components/Modal/__creevey__/Modal.creevey.d.mts} +0 -0
- /package/{cjs/components/Paging/__creevey__/Paging.creevey.d.ts → components/Paging/__creevey__/Paging.creevey.d.mts} +0 -0
- /package/{cjs/components/PasswordInput/__creevey__/PasswordInput.creevey.d.ts → components/PasswordInput/__creevey__/PasswordInput.creevey.d.mts} +0 -0
- /package/{cjs/components/Radio/__creevey__/Radio.creevey.d.ts → components/Radio/__creevey__/Radio.creevey.d.mts} +0 -0
- /package/{cjs/components/RadioGroup/__creevey__/RadioGroup.creevey.d.ts → components/RadioGroup/__creevey__/RadioGroup.creevey.d.mts} +0 -0
- /package/{cjs/components/ScrollContainer/__creevey__/ScrollContainer.creevey.d.ts → components/ScrollContainer/__creevey__/ScrollContainer.creevey.d.mts} +0 -0
- /package/{cjs/components/Select/__creevey__/Select.creevey.d.ts → components/Select/__creevey__/Select.creevey.d.mts} +0 -0
- /package/{cjs/components/SidePage/__creevey__/SidePage.creevey.d.ts → components/SidePage/__creevey__/SidePage.creevey.d.mts} +0 -0
- /package/{cjs/components/Sticky/__creevey__/Sticky.creevey.d.ts → components/Sticky/__creevey__/Sticky.creevey.d.mts} +0 -0
- /package/{cjs/components/Switcher/__creevey__/Switcher.creevey.d.ts → components/Switcher/__creevey__/Switcher.creevey.d.mts} +0 -0
- /package/{cjs/components/Tabs/__creevey__/Tabs.creevey.d.ts → components/Tabs/__creevey__/Tabs.creevey.d.mts} +0 -0
- /package/{cjs/components/Textarea/__creevey__/Textarea.creevey.d.ts → components/Textarea/__creevey__/Textarea.creevey.d.mts} +0 -0
- /package/{cjs/components/Toast/__creevey__/Toast.creevey.d.ts → components/Toast/__creevey__/Toast.creevey.d.mts} +0 -0
- /package/{cjs/components/Toggle/__creevey__/Toggle.creevey.d.ts → components/Toggle/__creevey__/Toggle.creevey.d.mts} +0 -0
- /package/{cjs/components/TokenInput/__creevey__/TokenInput.creevey.d.ts → components/TokenInput/__creevey__/TokenInput.creevey.d.mts} +0 -0
- /package/{cjs/components/Tooltip/__creevey__/Tooltip.creevey.d.ts → components/Tooltip/__creevey__/Tooltip.creevey.d.mts} +0 -0
- /package/{cjs/components/TooltipMenu/__creevey__/TooltipMenu.creevey.d.ts → components/TooltipMenu/__creevey__/TooltipMenu.creevey.d.mts} +0 -0
- /package/{cjs/internal/CloseButtonIcon/__creevey__/CloseButtonIcon.creevey.d.ts → internal/CloseButtonIcon/__creevey__/CloseButtonIcon.creevey.d.mts} +0 -0
- /package/{cjs/internal/CustomComboBox/__creevey__/ComboBoxView.creevey.d.ts → internal/CustomComboBox/__creevey__/ComboBoxView.creevey.d.mts} +0 -0
- /package/{cjs/internal/FileUploaderControl/__creevey__/FileUploaderFile.creevey.d.ts → internal/FileUploaderControl/__creevey__/FileUploaderFile.creevey.d.mts} +0 -0
- /package/{cjs/internal/HideBodyVerticalScroll/__creevey__/HideBodyVerticalScroll.creevey.d.ts → internal/HideBodyVerticalScroll/__creevey__/HideBodyVerticalScroll.creevey.d.mts} +0 -0
- /package/{cjs/internal/Menu/__creevey__/Menu.creevey.d.ts → internal/Menu/__creevey__/Menu.creevey.d.mts} +0 -0
- /package/{cjs/internal/PopupMenu/__creevey__/PopupMenu.creevey.d.ts → internal/PopupMenu/__creevey__/PopupMenu.creevey.d.mts} +0 -0
- /package/{cjs/internal/ThemePlayground/__creevey__/ThemeProvider.creevey.d.ts → internal/ThemePlayground/__creevey__/ThemeProvider.creevey.d.mts} +0 -0
- /package/{cjs/internal/ZIndex/__creevey__/ZIndex.creevey.d.ts → internal/ZIndex/__creevey__/ZIndex.creevey.d.mts} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_globalObject","_utils","_identifiers","_ThemeContext","_ThemeFactory","_Popup","_RenderLayer","_CommonWrapper","_decorator","_rootNode","_createPropsGetter","_Menu","_validatePositions","_PopupMenu2","_class","_PopupMenu","PopupMenuType","exports","Dropdown","Tooltip","PopupMenuDataTids","root","caption","Positions","PopupMenu","rootNode","responsiveLayout","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","rootId","PopupIds","getRandomID","getProps","createPropsGetter","defaultProps","state","menuVisible","firstItemShouldBeSelected","captionWrapper","savedFocusableElement","menu","open","showMenu","close","hideMenu","menuRef","element","handleOpen","focus","passPropsToCaption","_this$props$popupMenu","React","cloneElement","id","props","popupMenuId","renderCaption","opened","openMenu","closeMenu","toggleMenu","default","createElement","className","styles","ref","onClick","handleCaptionClick","onKeyDown","handleCaptionKeyDown","hideMenuWithoutFocusing","saveFocus","setState","handleChangeMenuVisible","restoreFocus","e","someKeys","isKeyEnter","isKeySpace","isKeyArrowVertical","preventDefault","handleKeyDown","isKeyEscape","globalObject","document","activeElement","focusShouldBeRestored","onOpen","onClose","onChangeMenuState","handleItemSelection","event","isDefaultPrevented","type","_inheritsLoose2","_proto","prototype","render","_this2","ThemeContext","Consumer","theme","Provider","value","ThemeFactory","create","menuOffsetY","popupMenuMenuOffsetY","renderMain","_this$props$popupMenu2","_this$getProps","popupHasPin","disableAnimations","CommonWrapper","_extends2","rootNodeRef","setRootNode","RenderLayer","onClickOutside","onFocusOutside","active","container","style","width","children","Popup","anchorElement","hasShadow","margin","popupMargin","hasPin","pinOffset","popupPinOffset","positions","getPositions","mobileOnCloseRequest","isMobileLayout","menuWidth","Menu","maxHeight","menuMaxHeight","onItemClick","preventIconsOffset","cyclicSelection","initialSelectedItemIndex","header","footer","isValidPositions","Component","__KONTUR_REACT_UI__","displayName","Type"],"sources":["PopupMenu.tsx"],"sourcesContent":["import React, { AriaAttributes, HTMLAttributes } from 'react';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { getRandomID } from '../../lib/utils';\nimport { HTMLProps } from '../../typings/html';\nimport {\n isKeyArrowVertical,\n isKeyEnter,\n isKeyEscape,\n isKeySpace,\n someKeys,\n} from '../../lib/events/keyboard/identifiers';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { Popup, PopupIds, PopupPositionsType } from '../Popup';\nimport { RenderLayer } from '../RenderLayer';\nimport { Nullable } from '../../typings/utility-types';\nimport { CommonProps, CommonWrapper } from '../CommonWrapper';\nimport { responsiveLayout } from '../../components/ResponsiveLayout/decorator';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { Menu, MenuProps } from '../Menu';\n\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\n extends CommonProps,\n Pick<MenuProps, 'preventIconsOffset'>,\n Pick<HTMLAttributes<HTMLElement>, 'id'>,\n Pick<AriaAttributes, 'aria-label'> {\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?: PopupPositionsType[];\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 onOpen?: () => void;\n /** Действие при закрытии меню */\n onClose?: () => void;\n /**\n * Позволяет задать `id` выпадающему меню.\n *\n * Это может пригодиться при реализации a11y. Например, для того, чтобы связать `aria-controls` с выпадающим меню.\n */\n popupMenuId?: HTMLProps['id'];\n}\n\ninterface PopupMenuState {\n menuVisible: boolean;\n firstItemShouldBeSelected?: boolean;\n}\n\nexport const PopupMenuType = {\n Dropdown: 'dropdown',\n Tooltip: 'tooltip',\n} as const;\n\nexport const PopupMenuDataTids = {\n root: 'PopupMenu__root',\n caption: 'PopupMenu__caption',\n} as const;\n\nconst Positions: PopupPositionsType[] = [\n 'top left',\n 'top center',\n 'top right',\n 'right top',\n 'right middle',\n 'right bottom',\n 'bottom left',\n 'bottom center',\n 'bottom right',\n 'left top',\n 'left middle',\n 'left bottom',\n];\n\ntype DefaultProps = Required<Pick<PopupMenuProps, 'positions' | 'type' | 'popupHasPin' | 'disableAnimations'>>;\n\n@rootNode\n@responsiveLayout\nexport class PopupMenu extends React.Component<PopupMenuProps, PopupMenuState> {\n public static __KONTUR_REACT_UI__ = 'PopupMenu';\n public static displayName = 'PopupMenu';\n\n private isMobileLayout!: boolean;\n private rootId = PopupIds.root + getRandomID();\n\n public static defaultProps: DefaultProps = {\n positions: Positions,\n type: PopupMenuType.Tooltip,\n popupHasPin: true,\n disableAnimations: false,\n };\n\n private getProps = createPropsGetter(PopupMenu.defaultProps);\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<Menu> = null;\n private setRootNode!: TSetRootNode;\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n return (\n <ThemeContext.Provider\n value={ThemeFactory.create(\n {\n menuOffsetY: theme.popupMenuMenuOffsetY,\n },\n theme,\n )}\n >\n {this.renderMain()}\n </ThemeContext.Provider>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { popupHasPin, disableAnimations } = this.getProps();\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <RenderLayer\n onClickOutside={this.hideMenuWithoutFocusing}\n onFocusOutside={this.hideMenuWithoutFocusing}\n active={this.state.menuVisible}\n >\n <div data-tid={PopupMenuDataTids.root} className={styles.container()} style={{ width: this.props.width }}>\n {this.renderCaption()}\n {this.captionWrapper && this.props.children && (\n <Popup\n id={this.props.popupMenuId ?? this.rootId}\n anchorElement={this.captionWrapper}\n opened={this.state.menuVisible}\n hasShadow\n margin={this.props.popupMargin}\n hasPin={popupHasPin}\n pinOffset={this.props.popupPinOffset}\n positions={this.getPositions()}\n disableAnimations={disableAnimations}\n onOpen={this.handleOpen}\n mobileOnCloseRequest={this.hideMenu}\n width={this.isMobileLayout ? 'auto' : this.props.menuWidth || 'auto'}\n >\n <Menu\n maxHeight={this.isMobileLayout ? 'none' : this.props.menuMaxHeight || 'none'}\n onKeyDown={this.handleKeyDown}\n onItemClick={this.handleItemSelection}\n preventIconsOffset={this.props.preventIconsOffset}\n cyclicSelection={false}\n ref={this.menuRef}\n initialSelectedItemIndex={this.state.firstItemShouldBeSelected ? 0 : -1}\n header={this.props.header}\n footer={this.props.footer}\n >\n {this.props.children}\n </Menu>\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 menuRef = (element: Nullable<Menu>) => (this.menu = element);\n\n private handleOpen = () => {\n if (this.menu) {\n this.menu.focus();\n }\n };\n\n private passPropsToCaption = (caption: React.ReactNode) => {\n if (typeof caption === 'string' || typeof caption === 'number') {\n return caption;\n }\n\n return React.cloneElement(caption as React.ReactElement, {\n id: this.props.id,\n 'aria-controls': this.props.popupMenuId ?? this.rootId,\n 'aria-expanded': this.state.menuVisible ? 'true' : 'false',\n 'aria-label': this.props['aria-label'],\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={PopupMenuDataTids.caption}\n className={styles.caption()}\n ref={(element) => (this.captionWrapper = element)}\n >\n {this.passPropsToCaption(caption)}\n </span>\n );\n }\n\n return (\n <span\n data-tid={PopupMenuDataTids.caption}\n onClick={this.handleCaptionClick}\n onKeyDown={this.handleCaptionKeyDown}\n ref={(element) => (this.captionWrapper = element)}\n className={styles.caption()}\n >\n {this.passPropsToCaption(this.props.caption)}\n </span>\n );\n };\n\n private hideMenuWithoutFocusing = () => this.hideMenu();\n\n private getPositions(): Readonly<PopupPositionsType[]> {\n const positions = this.getProps().positions;\n if (positions && isValidPositions(positions)) {\n return positions;\n }\n\n return Positions;\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 (globalObject.document) {\n this.savedFocusableElement = globalObject.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\n if (this.state.menuVisible && this.props.onOpen) {\n this.props.onOpen();\n }\n\n if (!this.state.menuVisible && this.props.onClose) {\n this.props.onClose();\n }\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"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_globalObject","_utils","_identifiers","_ThemeContext","_ThemeFactory","_Popup","_RenderLayer","_CommonWrapper","_decorator","_rootNode","_createPropsGetter","_Menu","_validatePositions","_PopupMenu2","_tids","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","_class","_PopupMenu","PopupMenuType","Dropdown","Tooltip","Positions","PopupMenu","rootNode","responsiveLayout","_React$Component","_this","_len","arguments","length","args","Array","_key","apply","concat","rootId","PopupIds","root","getRandomID","getProps","createPropsGetter","defaultProps","state","menuVisible","firstItemShouldBeSelected","captionWrapper","savedFocusableElement","menu","open","showMenu","close","hideMenu","menuRef","element","handleOpen","focus","passPropsToCaption","caption","_this$props$popupMenu","React","cloneElement","id","props","popupMenuId","renderCaption","opened","openMenu","closeMenu","toggleMenu","default","createElement","PopupMenuDataTids","className","styles","ref","onClick","handleCaptionClick","onKeyDown","handleCaptionKeyDown","hideMenuWithoutFocusing","saveFocus","setState","handleChangeMenuVisible","restoreFocus","e","someKeys","isKeyEnter","isKeySpace","isKeyArrowVertical","preventDefault","handleKeyDown","isKeyEscape","globalObject","document","activeElement","focusShouldBeRestored","onOpen","onClose","onChangeMenuState","handleItemSelection","event","isDefaultPrevented","type","_inheritsLoose2","_proto","render","_this2","ThemeContext","Consumer","theme","Provider","value","ThemeFactory","create","menuOffsetY","popupMenuMenuOffsetY","renderMain","_this$props$popupMenu2","_this$getProps","popupHasPin","disableAnimations","CommonWrapper","_extends2","rootNodeRef","setRootNode","RenderLayer","onClickOutside","onFocusOutside","active","container","style","width","children","Popup","anchorElement","hasShadow","margin","popupMargin","hasPin","pinOffset","popupPinOffset","positions","getPositions","mobileOnCloseRequest","isMobileLayout","menuWidth","Menu","maxHeight","menuMaxHeight","onItemClick","preventIconsOffset","cyclicSelection","initialSelectedItemIndex","header","footer","isValidPositions","Component","__KONTUR_REACT_UI__","displayName","Type"],"sources":["PopupMenu.tsx"],"sourcesContent":["import React, { AriaAttributes, HTMLAttributes } from 'react';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { getRandomID } from '../../lib/utils';\nimport { HTMLProps } from '../../typings/html';\nimport {\n isKeyArrowVertical,\n isKeyEnter,\n isKeyEscape,\n isKeySpace,\n someKeys,\n} from '../../lib/events/keyboard/identifiers';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { Popup, PopupIds, PopupPositionsType } from '../Popup';\nimport { RenderLayer } from '../RenderLayer';\nimport { Nullable } from '../../typings/utility-types';\nimport { CommonProps, CommonWrapper } from '../CommonWrapper';\nimport { responsiveLayout } from '../../components/ResponsiveLayout/decorator';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { Menu, MenuProps } from '../Menu';\n\nimport { isValidPositions } from './validatePositions';\nimport { styles } from './PopupMenu.styles';\nimport { PopupMenuDataTids } from './tids';\n\nexport * from './tids';\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\n extends CommonProps,\n Pick<MenuProps, 'preventIconsOffset'>,\n Pick<HTMLAttributes<HTMLElement>, 'id'>,\n Pick<AriaAttributes, 'aria-label'> {\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?: PopupPositionsType[];\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 onOpen?: () => void;\n /** Действие при закрытии меню */\n onClose?: () => void;\n /**\n * Позволяет задать `id` выпадающему меню.\n *\n * Это может пригодиться при реализации a11y. Например, для того, чтобы связать `aria-controls` с выпадающим меню.\n */\n popupMenuId?: HTMLProps['id'];\n}\n\ninterface PopupMenuState {\n menuVisible: boolean;\n firstItemShouldBeSelected?: boolean;\n}\n\nexport const PopupMenuType = {\n Dropdown: 'dropdown',\n Tooltip: 'tooltip',\n} as const;\n\nconst Positions: PopupPositionsType[] = [\n 'top left',\n 'top center',\n 'top right',\n 'right top',\n 'right middle',\n 'right bottom',\n 'bottom left',\n 'bottom center',\n 'bottom right',\n 'left top',\n 'left middle',\n 'left bottom',\n];\n\ntype DefaultProps = Required<Pick<PopupMenuProps, 'positions' | 'type' | 'popupHasPin' | 'disableAnimations'>>;\n\n@rootNode\n@responsiveLayout\nexport class PopupMenu extends React.Component<PopupMenuProps, PopupMenuState> {\n public static __KONTUR_REACT_UI__ = 'PopupMenu';\n public static displayName = 'PopupMenu';\n\n private isMobileLayout!: boolean;\n private rootId = PopupIds.root + getRandomID();\n\n public static defaultProps: DefaultProps = {\n positions: Positions,\n type: PopupMenuType.Tooltip,\n popupHasPin: true,\n disableAnimations: false,\n };\n\n private getProps = createPropsGetter(PopupMenu.defaultProps);\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<Menu> = null;\n private setRootNode!: TSetRootNode;\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n return (\n <ThemeContext.Provider\n value={ThemeFactory.create(\n {\n menuOffsetY: theme.popupMenuMenuOffsetY,\n },\n theme,\n )}\n >\n {this.renderMain()}\n </ThemeContext.Provider>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { popupHasPin, disableAnimations } = this.getProps();\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <RenderLayer\n onClickOutside={this.hideMenuWithoutFocusing}\n onFocusOutside={this.hideMenuWithoutFocusing}\n active={this.state.menuVisible}\n >\n <div data-tid={PopupMenuDataTids.root} className={styles.container()} style={{ width: this.props.width }}>\n {this.renderCaption()}\n {this.captionWrapper && this.props.children && (\n <Popup\n id={this.props.popupMenuId ?? this.rootId}\n anchorElement={this.captionWrapper}\n opened={this.state.menuVisible}\n hasShadow\n margin={this.props.popupMargin}\n hasPin={popupHasPin}\n pinOffset={this.props.popupPinOffset}\n positions={this.getPositions()}\n disableAnimations={disableAnimations}\n onOpen={this.handleOpen}\n mobileOnCloseRequest={this.hideMenu}\n width={this.isMobileLayout ? 'auto' : this.props.menuWidth || 'auto'}\n >\n <Menu\n maxHeight={this.isMobileLayout ? 'none' : this.props.menuMaxHeight || 'none'}\n onKeyDown={this.handleKeyDown}\n onItemClick={this.handleItemSelection}\n preventIconsOffset={this.props.preventIconsOffset}\n cyclicSelection={false}\n ref={this.menuRef}\n initialSelectedItemIndex={this.state.firstItemShouldBeSelected ? 0 : -1}\n header={this.props.header}\n footer={this.props.footer}\n >\n {this.props.children}\n </Menu>\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 menuRef = (element: Nullable<Menu>) => (this.menu = element);\n\n private handleOpen = () => {\n if (this.menu) {\n this.menu.focus();\n }\n };\n\n private passPropsToCaption = (caption: React.ReactNode) => {\n if (typeof caption === 'string' || typeof caption === 'number') {\n return caption;\n }\n\n return React.cloneElement(caption as React.ReactElement, {\n id: this.props.id,\n 'aria-controls': this.props.popupMenuId ?? this.rootId,\n 'aria-expanded': this.state.menuVisible ? 'true' : 'false',\n 'aria-label': this.props['aria-label'],\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={PopupMenuDataTids.caption}\n className={styles.caption()}\n ref={(element) => (this.captionWrapper = element)}\n >\n {this.passPropsToCaption(caption)}\n </span>\n );\n }\n\n return (\n <span\n data-tid={PopupMenuDataTids.caption}\n onClick={this.handleCaptionClick}\n onKeyDown={this.handleCaptionKeyDown}\n ref={(element) => (this.captionWrapper = element)}\n className={styles.caption()}\n >\n {this.passPropsToCaption(this.props.caption)}\n </span>\n );\n };\n\n private hideMenuWithoutFocusing = () => this.hideMenu();\n\n private getPositions(): Readonly<PopupPositionsType[]> {\n const positions = this.getProps().positions;\n if (positions && isValidPositions(positions)) {\n return positions;\n }\n\n return Positions;\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 (globalObject.document) {\n this.savedFocusableElement = globalObject.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\n if (this.state.menuVisible && this.props.onOpen) {\n this.props.onOpen();\n }\n\n if (!this.state.menuVisible && this.props.onClose) {\n this.props.onClose();\n }\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"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { story, kind, test } from 'creevey';
|
|
2
|
+
|
|
3
|
+
import { PopupMenuDataTids } from '../tids';
|
|
4
|
+
import { delay } from '../../../lib/delay';
|
|
5
|
+
|
|
6
|
+
const textAlignmentTests = () => {
|
|
7
|
+
test('opened', async (context) => {
|
|
8
|
+
await context.webdriver
|
|
9
|
+
.actions({
|
|
10
|
+
bridge: true,
|
|
11
|
+
})
|
|
12
|
+
.click(context.webdriver.findElement({ css: `[data-tid~="${PopupMenuDataTids.caption}"]` }))
|
|
13
|
+
.perform();
|
|
14
|
+
await delay(1000);
|
|
15
|
+
await context.matchImage(await context.takeScreenshot(), 'opened');
|
|
16
|
+
});
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
kind('PopupMenu', () => {
|
|
20
|
+
story('WithItems', ({ setStoryParameters }) => {
|
|
21
|
+
setStoryParameters({ skip: { 'themes dont affect logic': { in: /^(?!\bchrome2022\b)/ } } });
|
|
22
|
+
|
|
23
|
+
textAlignmentTests();
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
story('WithItemsWithIcons', ({ setStoryParameters }) => {
|
|
27
|
+
setStoryParameters({ skip: { 'themes dont affect logic': { in: /^(?!\bchrome2022\b)/ } } });
|
|
28
|
+
|
|
29
|
+
textAlignmentTests();
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
story('WithItemsWithIconsWithoutTextAlignment', ({ setStoryParameters }) => {
|
|
33
|
+
setStoryParameters({ skip: { 'themes dont affect logic': { in: /^(?!\bchrome2022\b)/ } } });
|
|
34
|
+
|
|
35
|
+
textAlignmentTests();
|
|
36
|
+
});
|
|
37
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["PopupMenuDataTids","exports","root","caption"],"sources":["tids.ts"],"sourcesContent":["export const PopupMenuDataTids = {\n root: 'PopupMenu__root',\n caption: 'PopupMenu__caption',\n} as const;\n"],"mappings":"0EAAO,IAAMA,iBAAiB,GAAAC,OAAA,CAAAD,iBAAA,GAAG;EAC/BE,IAAI,EAAE,iBAAiB;EACvBC,OAAO,EAAE;AACX,CAAU","ignoreList":[]}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { story, kind, test } from 'creevey';
|
|
2
|
+
|
|
3
|
+
import { delay } from '../../../lib/delay';
|
|
4
|
+
|
|
5
|
+
kind('ThemeProvider', () => {
|
|
6
|
+
story('Playground', ({ setStoryParameters }) => {
|
|
7
|
+
setStoryParameters({
|
|
8
|
+
skip: {
|
|
9
|
+
'repeating tests': {
|
|
10
|
+
tests: ['theme 2022 top', 'theme 2022 bottom', 'theme 2022 dark top', 'theme 2022 dark bottom'],
|
|
11
|
+
in: /^(?!\b(chrome2022|firefox2022)\b)/,
|
|
12
|
+
},
|
|
13
|
+
},
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
test('theme 2022 top', async (context) => {
|
|
17
|
+
await context.webdriver
|
|
18
|
+
.actions({ bridge: true })
|
|
19
|
+
.click(context.webdriver.findElement({ css: '[data-prop-id="lightTheme"]' }))
|
|
20
|
+
.perform();
|
|
21
|
+
await delay(500);
|
|
22
|
+
await context.matchImage(await context.webdriver.takeScreenshot(), 'theme 2022 top');
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
test('theme 2022 bottom', async (context) => {
|
|
26
|
+
await context.webdriver
|
|
27
|
+
.actions({ bridge: true })
|
|
28
|
+
.click(context.webdriver.findElement({ css: '[data-prop-id="lightTheme"]' }))
|
|
29
|
+
.perform();
|
|
30
|
+
await context.webdriver.executeScript(function () {
|
|
31
|
+
document.documentElement.scrollTop = document.documentElement.scrollHeight;
|
|
32
|
+
});
|
|
33
|
+
await delay(1000);
|
|
34
|
+
await context.matchImage(await context.webdriver.takeScreenshot(), 'theme 2022 bottom');
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
test('theme 2022 dark top', async (context) => {
|
|
38
|
+
await context.webdriver
|
|
39
|
+
.actions({ bridge: true })
|
|
40
|
+
.click(context.webdriver.findElement({ css: '[data-prop-id="darkTheme"]' }))
|
|
41
|
+
.perform();
|
|
42
|
+
await delay(500);
|
|
43
|
+
await context.matchImage(await context.webdriver.takeScreenshot(), 'theme 2022 dark top');
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
test('theme 2022 dark bottom', async (context) => {
|
|
47
|
+
await context.webdriver
|
|
48
|
+
.actions({ bridge: true })
|
|
49
|
+
.click(context.webdriver.findElement({ css: '[data-prop-id="darkTheme"]' }))
|
|
50
|
+
.perform();
|
|
51
|
+
await context.webdriver.executeScript(function () {
|
|
52
|
+
document.documentElement.scrollTop = document.documentElement.scrollHeight;
|
|
53
|
+
});
|
|
54
|
+
await delay(1000);
|
|
55
|
+
await context.matchImage(await context.webdriver.takeScreenshot(), 'theme 2022 dark bottom');
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
story('UnlinkVars', ({ setStoryParameters }) => {
|
|
60
|
+
setStoryParameters({
|
|
61
|
+
skip: {
|
|
62
|
+
'themes do not affect logic': {
|
|
63
|
+
in: ['chrome2022Dark', 'firefox2022', 'firefox2022Dark'],
|
|
64
|
+
},
|
|
65
|
+
},
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
});
|
|
@@ -38,6 +38,7 @@ if (_Supports.IS_PROXY_SUPPORTED) {
|
|
|
38
38
|
baseThemes.push(_LightTheme.LIGHT_THEME);
|
|
39
39
|
baseThemes.push(_DarkTheme.DARK_THEME);
|
|
40
40
|
|
|
41
|
+
// @ts-expect-error не очень-то и хотелось
|
|
41
42
|
var componentsContext = require.context('../../../', true, /\.styles.ts$/);
|
|
42
43
|
componentsContext.keys().forEach(function (fileName) {
|
|
43
44
|
var fileNameStart = fileName.lastIndexOf('/') + 1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_globalObject","require","_LightTheme","_DarkTheme","_Supports","callsCount","executionTime","ALL_USED_VARIABLES_SET","Set","COMPONENT_DESCRIPTIONS","exports","COMPONENT_DESCRIPTIONS_BY_VARIABLE","IS_PROXY_SUPPORTED","baseThemes","push","LIGHT_THEME","DARK_THEME","componentsContext","context","keys","forEach","fileName","fileNameStart","lastIndexOf","componentName","substring","replace","componentDescription","Object","exportName","styles","elementName","jsStyle","variablesAccumulator","dependencies","elementProxyHandler","getProxyHandler","themes","map","t","Proxy","variables","Array","from","length","variableName","variableNode","componentNode","includes","dependenciesList","dependencyName","dependencyNode","accumulator","accessLevel","rootProp","isThemeVariable","theme","name","get","target","prop","receiver","_globalObject$perform","_globalObject$perform2","propName","add","start","globalObject","performance","now","result","Reflect","ALL_USED_VARIABLES","CALLS_COUNT","EXECUTION_TIME"],"sources":["VariablesCollector.ts"],"sourcesContent":["import { globalObject } from '@skbkontur/global-object';\n\nimport { Theme } from '../../lib/theming/Theme';\nimport { LIGHT_THEME } from '../../lib/theming/themes/LightTheme';\nimport { DARK_THEME } from '../../lib/theming/themes/DarkTheme';\nimport { IS_PROXY_SUPPORTED } from '../../lib/Supports';\n\nexport interface DescriptionsType {\n [componentName: string]: ComponentDescriptionType;\n}\n\nexport interface ComponentDescriptionType {\n [elementName: string]: ComponentRowDescriptionType;\n}\n\nexport interface ComponentRowDescriptionType {\n variables: Array<keyof Theme>;\n dependencies: VariableDependencies;\n}\n\nexport interface VariableNameToComponentsMap {\n [variableName: string]: DescriptionsType;\n}\n\nexport interface VariableDependencies {\n [variableName: string]: Array<keyof Theme>;\n}\n\nlet callsCount = 0;\nlet executionTime = 0;\nconst ALL_USED_VARIABLES_SET = new Set<keyof Theme>();\n\nexport const COMPONENT_DESCRIPTIONS: DescriptionsType = {};\nexport const COMPONENT_DESCRIPTIONS_BY_VARIABLE: VariableNameToComponentsMap = {};\n\nif (IS_PROXY_SUPPORTED) {\n const baseThemes: Theme[] = [];\n baseThemes.push(LIGHT_THEME);\n baseThemes.push(DARK_THEME);\n\n const componentsContext = require.context('../../../', true, /\\.styles.ts$/);\n componentsContext.keys().forEach((fileName) => {\n const fileNameStart = fileName.lastIndexOf('/') + 1;\n const componentName = fileName.substring(fileNameStart).replace('.styles.ts', '');\n const componentDescription: ComponentDescriptionType = {};\n Object.keys(componentsContext(fileName)).forEach((exportName) => {\n const styles = componentsContext(fileName)[exportName];\n\n Object.keys(styles).forEach((elementName) => {\n const jsStyle = styles[elementName];\n if (typeof jsStyle !== 'function') {\n return;\n }\n const variablesAccumulator = new Set<keyof Theme>();\n const dependencies: VariableDependencies = {};\n const elementProxyHandler = getProxyHandler(variablesAccumulator, dependencies);\n const themes = baseThemes.map((t) => new Proxy(t, elementProxyHandler));\n themes.forEach((t) => jsStyle(t));\n\n const variables = Array.from(variablesAccumulator);\n\n if (variables.length > 0) {\n componentDescription[elementName] = { variables, dependencies };\n\n variables.forEach((variableName) => {\n if (!COMPONENT_DESCRIPTIONS_BY_VARIABLE[variableName]) {\n COMPONENT_DESCRIPTIONS_BY_VARIABLE[variableName] = {};\n }\n\n const variableNode = COMPONENT_DESCRIPTIONS_BY_VARIABLE[variableName];\n if (!variableNode[componentName]) {\n variableNode[componentName] = {};\n }\n\n const componentNode = variableNode[componentName];\n if (!componentNode[elementName]) {\n componentNode[elementName] = {\n dependencies,\n variables: [variableName],\n };\n } else if (!componentNode[elementName].variables.includes(variableName)) {\n componentNode[elementName].dependencies = dependencies;\n componentNode[elementName].variables.push(variableName);\n }\n\n const dependenciesList = dependencies[variableName];\n if (dependenciesList) {\n dependenciesList.forEach((dependencyName) => {\n if (!COMPONENT_DESCRIPTIONS_BY_VARIABLE[dependencyName]) {\n COMPONENT_DESCRIPTIONS_BY_VARIABLE[dependencyName] = {};\n }\n\n const dependencyNode = COMPONENT_DESCRIPTIONS_BY_VARIABLE[dependencyName];\n if (!dependencyNode[componentName]) {\n dependencyNode[componentName] = COMPONENT_DESCRIPTIONS_BY_VARIABLE[variableName][componentName];\n }\n });\n }\n });\n }\n });\n });\n\n COMPONENT_DESCRIPTIONS[componentName] = componentDescription;\n });\n}\n\nfunction getProxyHandler(accumulator: Set<keyof Theme>, dependencies: VariableDependencies): ProxyHandler<Theme> {\n let accessLevel = 0;\n let rootProp = '';\n function isThemeVariable<T extends Theme>(theme: T, name: keyof T) {\n return typeof theme[name] === 'string';\n }\n return {\n get(target, prop, receiver) {\n const propName = prop as keyof Theme;\n if (isThemeVariable(target, propName)) {\n ALL_USED_VARIABLES_SET.add(propName);\n if (accessLevel === 0) {\n rootProp = propName;\n accumulator.add(propName);\n } else if (!dependencies[rootProp]) {\n dependencies[rootProp] = [propName];\n } else if (!dependencies[rootProp].includes(propName)) {\n dependencies[rootProp].push(propName);\n }\n }\n\n accessLevel++;\n const start = globalObject.performance?.now() || 0;\n const result = Reflect.get(target, prop, receiver);\n executionTime += (globalObject.performance?.now() || 0) - start;\n callsCount++;\n accessLevel--;\n return result;\n },\n };\n}\n\nexport const ALL_USED_VARIABLES = Array.from(ALL_USED_VARIABLES_SET);\nexport const CALLS_COUNT = callsCount;\nexport const EXECUTION_TIME = executionTime;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_globalObject","require","_LightTheme","_DarkTheme","_Supports","callsCount","executionTime","ALL_USED_VARIABLES_SET","Set","COMPONENT_DESCRIPTIONS","exports","COMPONENT_DESCRIPTIONS_BY_VARIABLE","IS_PROXY_SUPPORTED","baseThemes","push","LIGHT_THEME","DARK_THEME","componentsContext","context","keys","forEach","fileName","fileNameStart","lastIndexOf","componentName","substring","replace","componentDescription","Object","exportName","styles","elementName","jsStyle","variablesAccumulator","dependencies","elementProxyHandler","getProxyHandler","themes","map","t","Proxy","variables","Array","from","length","variableName","variableNode","componentNode","includes","dependenciesList","dependencyName","dependencyNode","accumulator","accessLevel","rootProp","isThemeVariable","theme","name","get","target","prop","receiver","_globalObject$perform","_globalObject$perform2","propName","add","start","globalObject","performance","now","result","Reflect","ALL_USED_VARIABLES","CALLS_COUNT","EXECUTION_TIME"],"sources":["VariablesCollector.ts"],"sourcesContent":["import { globalObject } from '@skbkontur/global-object';\n\nimport { Theme } from '../../lib/theming/Theme';\nimport { LIGHT_THEME } from '../../lib/theming/themes/LightTheme';\nimport { DARK_THEME } from '../../lib/theming/themes/DarkTheme';\nimport { IS_PROXY_SUPPORTED } from '../../lib/Supports';\n\nexport interface DescriptionsType {\n [componentName: string]: ComponentDescriptionType;\n}\n\nexport interface ComponentDescriptionType {\n [elementName: string]: ComponentRowDescriptionType;\n}\n\nexport interface ComponentRowDescriptionType {\n variables: Array<keyof Theme>;\n dependencies: VariableDependencies;\n}\n\nexport interface VariableNameToComponentsMap {\n [variableName: string]: DescriptionsType;\n}\n\nexport interface VariableDependencies {\n [variableName: string]: Array<keyof Theme>;\n}\n\nlet callsCount = 0;\nlet executionTime = 0;\nconst ALL_USED_VARIABLES_SET = new Set<keyof Theme>();\n\nexport const COMPONENT_DESCRIPTIONS: DescriptionsType = {};\nexport const COMPONENT_DESCRIPTIONS_BY_VARIABLE: VariableNameToComponentsMap = {};\n\nif (IS_PROXY_SUPPORTED) {\n const baseThemes: Theme[] = [];\n baseThemes.push(LIGHT_THEME);\n baseThemes.push(DARK_THEME);\n\n // @ts-expect-error не очень-то и хотелось\n const componentsContext = require.context('../../../', true, /\\.styles.ts$/);\n componentsContext.keys().forEach((fileName: string) => {\n const fileNameStart = fileName.lastIndexOf('/') + 1;\n const componentName = fileName.substring(fileNameStart).replace('.styles.ts', '');\n const componentDescription: ComponentDescriptionType = {};\n Object.keys(componentsContext(fileName)).forEach((exportName) => {\n const styles = componentsContext(fileName)[exportName];\n\n Object.keys(styles).forEach((elementName) => {\n const jsStyle = styles[elementName];\n if (typeof jsStyle !== 'function') {\n return;\n }\n const variablesAccumulator = new Set<keyof Theme>();\n const dependencies: VariableDependencies = {};\n const elementProxyHandler = getProxyHandler(variablesAccumulator, dependencies);\n const themes = baseThemes.map((t) => new Proxy(t, elementProxyHandler));\n themes.forEach((t) => jsStyle(t));\n\n const variables = Array.from(variablesAccumulator);\n\n if (variables.length > 0) {\n componentDescription[elementName] = { variables, dependencies };\n\n variables.forEach((variableName) => {\n if (!COMPONENT_DESCRIPTIONS_BY_VARIABLE[variableName]) {\n COMPONENT_DESCRIPTIONS_BY_VARIABLE[variableName] = {};\n }\n\n const variableNode = COMPONENT_DESCRIPTIONS_BY_VARIABLE[variableName];\n if (!variableNode[componentName]) {\n variableNode[componentName] = {};\n }\n\n const componentNode = variableNode[componentName];\n if (!componentNode[elementName]) {\n componentNode[elementName] = {\n dependencies,\n variables: [variableName],\n };\n } else if (!componentNode[elementName].variables.includes(variableName)) {\n componentNode[elementName].dependencies = dependencies;\n componentNode[elementName].variables.push(variableName);\n }\n\n const dependenciesList = dependencies[variableName];\n if (dependenciesList) {\n dependenciesList.forEach((dependencyName) => {\n if (!COMPONENT_DESCRIPTIONS_BY_VARIABLE[dependencyName]) {\n COMPONENT_DESCRIPTIONS_BY_VARIABLE[dependencyName] = {};\n }\n\n const dependencyNode = COMPONENT_DESCRIPTIONS_BY_VARIABLE[dependencyName];\n if (!dependencyNode[componentName]) {\n dependencyNode[componentName] = COMPONENT_DESCRIPTIONS_BY_VARIABLE[variableName][componentName];\n }\n });\n }\n });\n }\n });\n });\n\n COMPONENT_DESCRIPTIONS[componentName] = componentDescription;\n });\n}\n\nfunction getProxyHandler(accumulator: Set<keyof Theme>, dependencies: VariableDependencies): ProxyHandler<Theme> {\n let accessLevel = 0;\n let rootProp = '';\n function isThemeVariable<T extends Theme>(theme: T, name: keyof T) {\n return typeof theme[name] === 'string';\n }\n return {\n get(target, prop, receiver) {\n const propName = prop as keyof Theme;\n if (isThemeVariable(target, propName)) {\n ALL_USED_VARIABLES_SET.add(propName);\n if (accessLevel === 0) {\n rootProp = propName;\n accumulator.add(propName);\n } else if (!dependencies[rootProp]) {\n dependencies[rootProp] = [propName];\n } else if (!dependencies[rootProp].includes(propName)) {\n dependencies[rootProp].push(propName);\n }\n }\n\n accessLevel++;\n const start = globalObject.performance?.now() || 0;\n const result = Reflect.get(target, prop, receiver);\n executionTime += (globalObject.performance?.now() || 0) - start;\n callsCount++;\n accessLevel--;\n return result;\n },\n };\n}\n\nexport const ALL_USED_VARIABLES = Array.from(ALL_USED_VARIABLES_SET);\nexport const CALLS_COUNT = callsCount;\nexport const EXECUTION_TIME = executionTime;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
import { story, kind, test } from 'creevey';
|
|
2
|
+
|
|
3
|
+
import { delay } from '../../../lib/delay';
|
|
4
|
+
import { SelectDataTids } from '../../../components/Select/tids';
|
|
5
|
+
|
|
6
|
+
kind('ZIndex', () => {
|
|
7
|
+
story('HintAndModalStory', () => {
|
|
8
|
+
test('Modal covers hint', async (context) => {
|
|
9
|
+
await context.webdriver
|
|
10
|
+
.actions({ bridge: true })
|
|
11
|
+
.click(context.webdriver.findElement({ css: '[data-tid~="open-modal"]' }))
|
|
12
|
+
.perform();
|
|
13
|
+
await context.webdriver
|
|
14
|
+
.actions({ bridge: true })
|
|
15
|
+
.click(context.webdriver.findElement({ css: '.modalBody button' }))
|
|
16
|
+
.perform();
|
|
17
|
+
await delay(1000);
|
|
18
|
+
await context.matchImage(await context.webdriver.takeScreenshot(), 'Modal covers hint');
|
|
19
|
+
});
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
story('BigModalWithLoaderStory', () => {
|
|
23
|
+
test('Header covers Loader', async (context) => {
|
|
24
|
+
await context.webdriver.executeScript(function () {
|
|
25
|
+
const sidePage = window.document.querySelector('[data-tid="modal-container"]') as HTMLElement;
|
|
26
|
+
|
|
27
|
+
if (sidePage) {
|
|
28
|
+
sidePage.scrollTop = sidePage.offsetHeight / 3;
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
await delay(1000);
|
|
32
|
+
await context.matchImage(await context.webdriver.takeScreenshot(), 'Header covers Loader');
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
story('TooltipAndSelectStory', () => {
|
|
37
|
+
test('Menu covers tooltip', async (context) => {
|
|
38
|
+
const element = await context.webdriver.findElement({ css: '.container' });
|
|
39
|
+
await context.webdriver
|
|
40
|
+
.actions({ bridge: true })
|
|
41
|
+
.click(context.webdriver.findElement({ css: `[data-tid=${SelectDataTids.label}]` }))
|
|
42
|
+
.sendKeys('q')
|
|
43
|
+
.perform();
|
|
44
|
+
await delay(1000);
|
|
45
|
+
await context.matchImage(await element.takeScreenshot(), 'Modal covers hint');
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
story('LoaderInSidePageBody', () => {
|
|
50
|
+
test('is covered by Header and Footer', async (context) => {
|
|
51
|
+
await context.webdriver.executeScript(function () {
|
|
52
|
+
const sidePage = window.document.querySelector('[data-tid="SidePage__container"]') as HTMLElement;
|
|
53
|
+
|
|
54
|
+
if (sidePage) {
|
|
55
|
+
sidePage.scrollTop = sidePage.offsetHeight;
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
await delay(1000);
|
|
59
|
+
await context.matchImage(await context.webdriver.takeScreenshot(), 'is covered by Header and Footer');
|
|
60
|
+
});
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
story('SidepageAndSelect', () => {
|
|
64
|
+
test('SidePage covers Select and Tooltip', async (context) => {
|
|
65
|
+
await context.webdriver
|
|
66
|
+
.actions({ bridge: true })
|
|
67
|
+
.click(context.webdriver.findElement({ css: '.select-container button' }))
|
|
68
|
+
.sendKeys('q')
|
|
69
|
+
.perform();
|
|
70
|
+
await context.webdriver
|
|
71
|
+
.actions({ bridge: true })
|
|
72
|
+
.click(context.webdriver.findElement({ css: '.open-sidepage-container button' }))
|
|
73
|
+
.perform();
|
|
74
|
+
await context.webdriver
|
|
75
|
+
.actions({ bridge: true })
|
|
76
|
+
.click(context.webdriver.findElement({ css: '.sidepage-select-continer button' }))
|
|
77
|
+
.sendKeys('q')
|
|
78
|
+
.perform();
|
|
79
|
+
const element = await context.webdriver.findElement({ css: `[data-tid='SidePage__container']` });
|
|
80
|
+
await delay(1000);
|
|
81
|
+
await context.matchImage(await element.takeScreenshot(), 'SidePage covers Select and Tooltip');
|
|
82
|
+
});
|
|
83
|
+
});
|
|
84
|
+
|
|
85
|
+
story('ElementsInLoaderInModalStory', ({ setStoryParameters }) => {
|
|
86
|
+
setStoryParameters({
|
|
87
|
+
skip: {
|
|
88
|
+
'flaky test': {
|
|
89
|
+
in: ['chrome2022Dark'],
|
|
90
|
+
tests: ['Hide Hint on active Loader'],
|
|
91
|
+
},
|
|
92
|
+
},
|
|
93
|
+
});
|
|
94
|
+
|
|
95
|
+
test('Open Dropdown while Loader is inactive', async (context) => {
|
|
96
|
+
await context.webdriver
|
|
97
|
+
.actions({ bridge: true })
|
|
98
|
+
.click(context.webdriver.findElement({ css: '[data-comp-name~="Select"]' }))
|
|
99
|
+
.perform();
|
|
100
|
+
await delay(1000);
|
|
101
|
+
await context.matchImage(await context.webdriver.takeScreenshot(), 'Open Dropdown while Loader is inactive');
|
|
102
|
+
});
|
|
103
|
+
|
|
104
|
+
test('Hide Hint on active Loader', async (context) => {
|
|
105
|
+
await context.webdriver
|
|
106
|
+
.actions({ bridge: true })
|
|
107
|
+
.click(context.webdriver.findElement({ css: '[data-comp-name~="Toggle"]' }))
|
|
108
|
+
.perform();
|
|
109
|
+
await delay(1000);
|
|
110
|
+
await context.matchImage(await context.webdriver.takeScreenshot(), 'Hide Hint on active Loader');
|
|
111
|
+
});
|
|
112
|
+
});
|
|
113
|
+
|
|
114
|
+
story('LoaderAndSidePageStory', () => {
|
|
115
|
+
test('SidePage shadow cover Loader', async (context) => {
|
|
116
|
+
await context.webdriver
|
|
117
|
+
.actions({ bridge: true })
|
|
118
|
+
.click(context.webdriver.findElement({ css: '[data-comp-name~="Toggle"]' }))
|
|
119
|
+
.perform();
|
|
120
|
+
await delay(1000);
|
|
121
|
+
await context.matchImage(await context.webdriver.takeScreenshot(), 'SidePage shadow cover Loader');
|
|
122
|
+
});
|
|
123
|
+
});
|
|
124
|
+
|
|
125
|
+
story('StickyAndTooltipsStory', () => {
|
|
126
|
+
test('Sticky covers outside Popup', async (context) => {
|
|
127
|
+
await context.webdriver
|
|
128
|
+
.actions({ bridge: true })
|
|
129
|
+
.click(context.webdriver.findElement({ css: '[data-comp-name~="Select"]' }))
|
|
130
|
+
.perform();
|
|
131
|
+
await delay(1000);
|
|
132
|
+
await context.matchImage(await context.webdriver.takeScreenshot(), 'Sticky covers outside Popup');
|
|
133
|
+
});
|
|
134
|
+
});
|
|
135
|
+
|
|
136
|
+
story('ModalAndToast', () => {
|
|
137
|
+
test('toastShown', async (context) => {
|
|
138
|
+
await context.webdriver
|
|
139
|
+
.actions({ bridge: true })
|
|
140
|
+
.click(context.webdriver.findElement({ css: '[data-comp-name~="Button"] button' }))
|
|
141
|
+
.perform();
|
|
142
|
+
await delay(1000);
|
|
143
|
+
await context.matchImage(await context.webdriver.takeScreenshot());
|
|
144
|
+
});
|
|
145
|
+
});
|
|
146
|
+
|
|
147
|
+
story('ToastOverEverything', ({ setStoryParameters }) => {
|
|
148
|
+
setStoryParameters({ skip: { 'flickering screenshot': { in: /^(?!\b(firefox))/, tests: 'staticToast' } } });
|
|
149
|
+
|
|
150
|
+
test('staticToast', async (context) => {
|
|
151
|
+
await context.webdriver
|
|
152
|
+
.actions({ bridge: true })
|
|
153
|
+
.click(context.webdriver.findElement({ css: '[data-tid~="static-toast"]' }))
|
|
154
|
+
.pause(1000)
|
|
155
|
+
.click(context.webdriver.findElement({ css: 'body' }))
|
|
156
|
+
.perform();
|
|
157
|
+
const shown = await context.webdriver.takeScreenshot(); // Toast rendered by static method doesn't get removed
|
|
158
|
+
// when story switches, so we have to close it manually
|
|
159
|
+
await context.webdriver
|
|
160
|
+
.actions({ bridge: true })
|
|
161
|
+
.click(context.webdriver.findElement({ css: '[data-tid~="ToastView__close"]' }))
|
|
162
|
+
.pause(500)
|
|
163
|
+
.perform();
|
|
164
|
+
await context.matchImage(shown);
|
|
165
|
+
});
|
|
166
|
+
|
|
167
|
+
test('refToast', async (context) => {
|
|
168
|
+
await context.webdriver
|
|
169
|
+
.actions({ bridge: true })
|
|
170
|
+
.click(context.webdriver.findElement({ css: '[data-tid~="ref-toast"]' }))
|
|
171
|
+
.pause(1000)
|
|
172
|
+
.click(context.webdriver.findElement({ css: 'body' }))
|
|
173
|
+
.perform();
|
|
174
|
+
await delay(1000);
|
|
175
|
+
await context.matchImage(await context.webdriver.takeScreenshot());
|
|
176
|
+
});
|
|
177
|
+
});
|
|
178
|
+
|
|
179
|
+
story('ModalWithDropdown', ({ setStoryParameters }) => {
|
|
180
|
+
setStoryParameters({ skip: { 'no themes': { in: /^(?!\b(chrome2022|firefox2022)\b)/ } } });
|
|
181
|
+
|
|
182
|
+
test('dropdown overlaps static header', async (context) => {
|
|
183
|
+
await context.webdriver
|
|
184
|
+
.actions({ bridge: true })
|
|
185
|
+
.click(context.webdriver.findElement({ css: '[data-tid="dropdown_top"]' }))
|
|
186
|
+
.perform();
|
|
187
|
+
await delay(1000);
|
|
188
|
+
await context.matchImage(await context.webdriver.takeScreenshot());
|
|
189
|
+
});
|
|
190
|
+
|
|
191
|
+
test('dropdown lays under fixed header', async (context) => {
|
|
192
|
+
await context.webdriver
|
|
193
|
+
.actions({ bridge: true })
|
|
194
|
+
.click(context.webdriver.findElement({ css: '[data-tid="dropdown_top"]' }))
|
|
195
|
+
.perform();
|
|
196
|
+
await delay(1000);
|
|
197
|
+
await context.webdriver.executeScript(function () {
|
|
198
|
+
const scrollContainer = window.document.querySelector('[data-tid="modal-container"]') as HTMLElement;
|
|
199
|
+
scrollContainer.scrollTop = scrollContainer.scrollHeight;
|
|
200
|
+
});
|
|
201
|
+
await delay(1000);
|
|
202
|
+
await context.matchImage(await context.webdriver.takeScreenshot());
|
|
203
|
+
});
|
|
204
|
+
|
|
205
|
+
test('dropdown lays under fixed footer', async (context) => {
|
|
206
|
+
await context.webdriver
|
|
207
|
+
.actions({ bridge: true })
|
|
208
|
+
.click(context.webdriver.findElement({ css: '[data-tid="dropdown_bottom"]' }))
|
|
209
|
+
.perform();
|
|
210
|
+
await delay(1000);
|
|
211
|
+
await context.matchImage(await context.webdriver.takeScreenshot());
|
|
212
|
+
});
|
|
213
|
+
|
|
214
|
+
test('dropdown overlaps static footer', async (context) => {
|
|
215
|
+
await context.webdriver
|
|
216
|
+
.actions({ bridge: true })
|
|
217
|
+
.click(context.webdriver.findElement({ css: '[data-tid="dropdown_bottom"]' }))
|
|
218
|
+
.perform();
|
|
219
|
+
await delay(1000);
|
|
220
|
+
await context.webdriver.executeScript(function () {
|
|
221
|
+
const scrollContainer = window.document.querySelector('[data-tid="modal-container"]') as HTMLElement;
|
|
222
|
+
scrollContainer.scrollTop = scrollContainer.scrollHeight;
|
|
223
|
+
});
|
|
224
|
+
await delay(1000);
|
|
225
|
+
await context.matchImage(await context.webdriver.takeScreenshot());
|
|
226
|
+
});
|
|
227
|
+
});
|
|
228
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const delay: (ms: number) => Promise<unknown>;
|
package/cjs/lib/delay.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_globalObject","require","delay","exports","ms","Promise","resolve","globalObject","setTimeout"],"sources":["delay.ts"],"sourcesContent":["import { globalObject } from '@skbkontur/global-object';\n\nexport const delay = (ms: number) => new Promise((resolve) => globalObject.setTimeout(resolve, ms));\n"],"mappings":"8DAAA,IAAAA,aAAA,GAAAC,OAAA;;AAEO,IAAMC,KAAK,GAAAC,OAAA,CAAAD,KAAA,GAAG,SAARA,KAAKA,CAAIE,EAAU,UAAK,IAAIC,OAAO,CAAC,UAACC,OAAO,UAAKC,0BAAY,CAACC,UAAU,CAACF,OAAO,EAAEF,EAAE,CAAC,GAAC","ignoreList":[]}
|
package/cjs/lib/utils.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { InputProps } from '../components/Input';
|
|
1
|
+
import type React from 'react';
|
|
2
|
+
import type { InputProps } from '../components/Input';
|
|
3
|
+
export { delay } from './delay';
|
|
3
4
|
export type Defaultize<P, D> = P extends any ? string extends keyof P ? P : Pick<P, Exclude<keyof P, keyof D>> & Partial<Pick<P, Extract<keyof P, keyof D>>> & Partial<Pick<D, Exclude<keyof D, keyof P>>> : never;
|
|
4
5
|
export type DefaultizeProps<C, P> = C extends {
|
|
5
6
|
defaultProps: infer D;
|
|
6
7
|
} ? Defaultize<P, D> : P;
|
|
7
8
|
export type AnyObject = Record<string, unknown>;
|
|
8
9
|
export type NoInfer<T> = T extends infer U ? U : never;
|
|
9
|
-
export declare const delay: (ms: number) => Promise<unknown>;
|
|
10
10
|
export declare const emptyHandler: () => void;
|
|
11
11
|
export declare class CancelationError extends Error {
|
|
12
12
|
code: string;
|
package/cjs/lib/utils.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;exports.__esModule = true;exports.CancelationError = void 0;exports.clickOutside = clickOutside;exports.emptyHandler = exports.delay = void 0;exports.escapeRegExpSpecChars = escapeRegExpSpecChars;exports.getRandomID = exports.formatBytes = exports.extractDataProps = void 0;exports.isClassComponent = isClassComponent;exports.isExternalLink = void 0;exports.isFunction = isFunction;exports.isFunctionalComponent = isFunctionalComponent;exports.isInputLike = void 0;exports.isIntrinsicElement = isIntrinsicElement;exports.isReactUINode = exports.isReactUIComponent = exports.isNullable = exports.isNonNullable = exports.isKonturIcon = void 0;exports.isRefableElement = isRefableElement;exports.mergeRefs = mergeRefs;exports.startsWithOneOf = void 0;exports.taskWithDelay = taskWithDelay;var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapNativeSuper"));
|
|
1
|
+
"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;exports.__esModule = true;exports.CancelationError = void 0;exports.clickOutside = clickOutside;exports.emptyHandler = exports.delay = void 0;exports.escapeRegExpSpecChars = escapeRegExpSpecChars;exports.getRandomID = exports.formatBytes = exports.extractDataProps = void 0;exports.isClassComponent = isClassComponent;exports.isExternalLink = void 0;exports.isFunction = isFunction;exports.isFunctionalComponent = isFunctionalComponent;exports.isInputLike = void 0;exports.isIntrinsicElement = isIntrinsicElement;exports.isReactUINode = exports.isReactUIComponent = exports.isNullable = exports.isNonNullable = exports.isKonturIcon = void 0;exports.isRefableElement = isRefableElement;exports.mergeRefs = mergeRefs;exports.startsWithOneOf = void 0;exports.taskWithDelay = taskWithDelay;var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapNativeSuper"));
|
|
2
|
+
var _react = require("react");
|
|
2
3
|
var _reactIs = require("react-is");
|
|
3
4
|
var _globalObject = require("@skbkontur/global-object");
|
|
4
5
|
|
|
@@ -8,8 +9,9 @@ var _globalObject = require("@skbkontur/global-object");
|
|
|
8
9
|
|
|
9
10
|
|
|
10
11
|
|
|
11
|
-
|
|
12
|
+
var _delay = require("./delay");exports.delay = _delay.delay;
|
|
12
13
|
|
|
14
|
+
// NOTE: Copy-paste from @types/react
|
|
13
15
|
|
|
14
16
|
|
|
15
17
|
|
|
@@ -23,7 +25,6 @@ var _globalObject = require("@skbkontur/global-object");
|
|
|
23
25
|
|
|
24
26
|
|
|
25
27
|
|
|
26
|
-
var delay = exports.delay = function delay(ms) {return new Promise(function (resolve) {return _globalObject.globalObject.setTimeout(resolve, ms);});};
|
|
27
28
|
|
|
28
29
|
var emptyHandler = exports.emptyHandler = function emptyHandler() {
|
|
29
30
|
|
|
@@ -81,7 +82,7 @@ var isExternalLink = exports.isExternalLink = function isExternalLink(link) {
|
|
|
81
82
|
* Check if the given ReactNode is an element of the specified ReactUI component
|
|
82
83
|
*/
|
|
83
84
|
var isReactUINode = exports.isReactUINode = function isReactUINode(componentName, node) {
|
|
84
|
-
if ( /*#__PURE__*/_react.
|
|
85
|
+
if ( /*#__PURE__*/(0, _react.isValidElement)(node)) {
|
|
85
86
|
return (
|
|
86
87
|
Object.prototype.hasOwnProperty.call(node.type, '__KONTUR_REACT_UI__') &&
|
|
87
88
|
// @ts-expect-error: React doesn't know about existence of __KONTUR_REACT_UI__.
|