@enact/limestone 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/PULL_REQUEST_TEMPLATE.md +28 -0
- package/.github/workflows/update-copyright-years.yml +25 -0
- package/.travis.yml +40 -0
- package/ActionGuide/ActionGuide.d.ts +73 -0
- package/ActionGuide/ActionGuide.js +164 -0
- package/ActionGuide/ActionGuide.module.css +73 -0
- package/ActionGuide/package.json +3 -0
- package/ActionGuide/tests/ActionGuide-specs.js +51 -0
- package/Alert/Alert.d.ts +155 -0
- package/Alert/Alert.js +313 -0
- package/Alert/Alert.module.css +190 -0
- package/Alert/AlertImage.js +102 -0
- package/Alert/AlertImage.module.css +15 -0
- package/Alert/package.json +3 -0
- package/Alert/tests/Alert-specs.js +204 -0
- package/BodyText/BodyText.d.ts +74 -0
- package/BodyText/BodyText.js +170 -0
- package/BodyText/BodyText.module.css +95 -0
- package/BodyText/package.json +3 -0
- package/BodyText/tests/BodyText-specs.js +55 -0
- package/Button/Button.d.ts +131 -0
- package/Button/Button.js +351 -0
- package/Button/Button.module.css +2518 -0
- package/Button/package.json +3 -0
- package/Button/tests/Button-specs.js +252 -0
- package/CHANGELOG.md +170 -0
- package/Card/Card.d.ts +138 -0
- package/Card/Card.js +396 -0
- package/Card/Card.module.css +1296 -0
- package/Card/package.json +3 -0
- package/Card/tests/Card-specs.js +65 -0
- package/Checkbox/Checkbox.d.ts +99 -0
- package/Checkbox/Checkbox.js +222 -0
- package/Checkbox/Checkbox.module.css +1395 -0
- package/Checkbox/package.json +3 -0
- package/Checkbox/tests/Checkbox-specs.js +79 -0
- package/CheckboxItem/CheckboxItem.d.ts +99 -0
- package/CheckboxItem/CheckboxItem.js +210 -0
- package/CheckboxItem/CheckboxItem.module.css +50 -0
- package/CheckboxItem/package.json +3 -0
- package/CheckboxItem/tests/CheckboxItem-specs.js +52 -0
- package/Chips/Chip.js +252 -0
- package/Chips/Chip.module.css +30 -0
- package/Chips/Chips.js +215 -0
- package/Chips/Chips.module.css +8 -0
- package/Chips/index.js +86 -0
- package/Chips/tests/Chip-specs.js +186 -0
- package/Chips/tests/Chips-specs.js +312 -0
- package/ColorPicker/ColorPicker.js +416 -0
- package/ColorPicker/ColorPicker.module.css +78 -0
- package/ColorPicker/package.json +3 -0
- package/ColorPicker/tests/ColorPicker-specs.js +225 -0
- package/ColorPicker/utils.js +135 -0
- package/ContextualMenuDecorator/ContextualMenuDecorator.d.ts +106 -0
- package/ContextualMenuDecorator/ContextualMenuDecorator.js +264 -0
- package/ContextualMenuDecorator/ContextualMenuDecorator.module.css +42 -0
- package/ContextualMenuDecorator/package.json +3 -0
- package/ContextualMenuDecorator/tests/ContextualMenuDecorator-specs.js +136 -0
- package/ContextualPopupDecorator/ContextualPopup.js +200 -0
- package/ContextualPopupDecorator/ContextualPopup.module.css +270 -0
- package/ContextualPopupDecorator/ContextualPopupDecorator.d.ts +182 -0
- package/ContextualPopupDecorator/ContextualPopupDecorator.js +867 -0
- package/ContextualPopupDecorator/ContextualPopupDecorator.module.css +3 -0
- package/ContextualPopupDecorator/HolePunchScrim.js +69 -0
- package/ContextualPopupDecorator/HolePunchScrim.module.css +38 -0
- package/ContextualPopupDecorator/package.json +3 -0
- package/ContextualPopupDecorator/tests/ContextualPopupDecorator-specs.js +621 -0
- package/DatePicker/DatePicker.d.ts +173 -0
- package/DatePicker/DatePicker.js +175 -0
- package/DatePicker/DatePicker.module.css +5 -0
- package/DatePicker/DatePickerBase.js +348 -0
- package/DatePicker/package.json +3 -0
- package/DatePicker/tests/DatePicker-specs.js +247 -0
- package/DayPicker/DayPicker.d.ts +92 -0
- package/DayPicker/DayPicker.js +188 -0
- package/DayPicker/DayPicker.module.css +35 -0
- package/DayPicker/DaySelectorDecorator.js +301 -0
- package/DayPicker/package.json +3 -0
- package/DayPicker/tests/DayPicker-specs.js +138 -0
- package/Dropdown/Dropdown.d.ts +135 -0
- package/Dropdown/Dropdown.js +460 -0
- package/Dropdown/Dropdown.module.css +160 -0
- package/Dropdown/DropdownList.js +360 -0
- package/Dropdown/package.json +3 -0
- package/Dropdown/tests/Dropdown-specs.js +267 -0
- package/FixedPopupPanels/FixedPopupPanels.d.ts +72 -0
- package/FixedPopupPanels/FixedPopupPanels.js +170 -0
- package/FixedPopupPanels/FixedPopupPanels.module.css +146 -0
- package/FixedPopupPanels/package.json +3 -0
- package/FixedPopupPanels/tests/FixedPopupPanels-specs.js +142 -0
- package/FlexiblePopupPanels/FlexiblePopupPanels.js +177 -0
- package/FlexiblePopupPanels/FlexiblePopupPanels.module.css +291 -0
- package/FlexiblePopupPanels/Header.js +110 -0
- package/FlexiblePopupPanels/Panel.js +256 -0
- package/FlexiblePopupPanels/index.d.ts +145 -0
- package/FlexiblePopupPanels/index.js +68 -0
- package/FlexiblePopupPanels/package.json +3 -0
- package/FlexiblePopupPanels/tests/FlexiblePopupPanels-specs.js +305 -0
- package/FlexiblePopupPanels/useNavButtonFocus.js +65 -0
- package/FormCheckboxItem/FormCheckboxItem.d.ts +87 -0
- package/FormCheckboxItem/FormCheckboxItem.js +200 -0
- package/FormCheckboxItem/FormCheckboxItem.module.css +374 -0
- package/FormCheckboxItem/package.json +3 -0
- package/FormCheckboxItem/tests/FormCheckboxItem-specs.js +164 -0
- package/Heading/Heading.d.ts +104 -0
- package/Heading/Heading.js +203 -0
- package/Heading/Heading.module.css +217 -0
- package/Heading/package.json +3 -0
- package/Heading/tests/Heading-specs.js +57 -0
- package/Icon/Icon.d.ts +377 -0
- package/Icon/Icon.js +503 -0
- package/Icon/Icon.module.css +121 -0
- package/Icon/IconList.js +611 -0
- package/Icon/package.json +3 -0
- package/Icon/tests/Icon-specs.js +131 -0
- package/IconItem/IconItem.d.ts +137 -0
- package/IconItem/IconItem.js +360 -0
- package/IconItem/IconItem.module.css +414 -0
- package/IconItem/package.json +3 -0
- package/IconItem/tests/IconItem-specs.js +106 -0
- package/Image/Image.d.ts +60 -0
- package/Image/Image.js +165 -0
- package/Image/Image.module.css +5 -0
- package/Image/package.json +3 -0
- package/Image/tests/Image-specs.js +62 -0
- package/ImageItem/ImageItem.d.ts +134 -0
- package/ImageItem/ImageItem.js +377 -0
- package/ImageItem/ImageItem.module.css +1079 -0
- package/ImageItem/package.json +3 -0
- package/ImageItem/tests/ImageItem-specs.js +223 -0
- package/Input/Input.js +715 -0
- package/Input/Input.module.css +699 -0
- package/Input/InputField.js +487 -0
- package/Input/InputField.module.css +763 -0
- package/Input/InputFieldDecoratorIcon.js +66 -0
- package/Input/InputFieldSpotlightDecorator.js +380 -0
- package/Input/Keypad.js +111 -0
- package/Input/NumberField.js +311 -0
- package/Input/index.d.ts +423 -0
- package/Input/index.js +87 -0
- package/Input/package.json +3 -0
- package/Input/pointer.js +103 -0
- package/Input/tests/Input-specs.js +537 -0
- package/Input/tests/InputField-specs.js +292 -0
- package/Input/tests/InputPopup-specs.js +56 -0
- package/Input/util.js +130 -0
- package/Item/Item.d.ts +108 -0
- package/Item/Item.js +360 -0
- package/Item/Item.module.css +665 -0
- package/Item/package.json +3 -0
- package/Item/tests/Item-specs.js +108 -0
- package/KeyGuide/KeyGuide.d.ts +103 -0
- package/KeyGuide/KeyGuide.js +254 -0
- package/KeyGuide/KeyGuide.module.css +431 -0
- package/KeyGuide/package.json +3 -0
- package/KeyGuide/tests/KeyGuide-specs.js +168 -0
- package/LICENSE +201 -0
- package/Marquee/Marquee.d.ts +42 -0
- package/Marquee/Marquee.js +45 -0
- package/Marquee/package.json +3 -0
- package/MediaOverlay/MediaOverlay.d.ts +134 -0
- package/MediaOverlay/MediaOverlay.js +304 -0
- package/MediaOverlay/MediaOverlay.module.css +292 -0
- package/MediaOverlay/package.json +3 -0
- package/MediaOverlay/tests/MediaOverlay-specs.js +127 -0
- package/MediaPlayer/MediaControls.js +934 -0
- package/MediaPlayer/MediaControls.module.css +86 -0
- package/MediaPlayer/MediaKnob.js +61 -0
- package/MediaPlayer/MediaSlider.js +131 -0
- package/MediaPlayer/MediaSlider.module.css +319 -0
- package/MediaPlayer/MediaSliderDecorator.js +245 -0
- package/MediaPlayer/Times.js +152 -0
- package/MediaPlayer/Times.module.css +34 -0
- package/MediaPlayer/index.d.ts +223 -0
- package/MediaPlayer/index.js +34 -0
- package/MediaPlayer/package.json +3 -0
- package/MediaPlayer/tests/MediaSlider-specs.js +126 -0
- package/MediaPlayer/tests/util-specs.js +114 -0
- package/MediaPlayer/util.js +83 -0
- package/PageViews/Page.js +77 -0
- package/PageViews/Page.module.css +3 -0
- package/PageViews/PageViews.js +440 -0
- package/PageViews/PageViews.module.css +175 -0
- package/PageViews/PageViewsRouter.js +150 -0
- package/PageViews/index.js +45 -0
- package/PageViews/tests/PageViews-specs.js +192 -0
- package/Panels/Header.js +599 -0
- package/Panels/Header.module.css +243 -0
- package/Panels/Panel.js +347 -0
- package/Panels/Panel.module.css +33 -0
- package/Panels/Panels.js +258 -0
- package/Panels/Panels.module.css +12 -0
- package/Panels/index.d.ts +376 -0
- package/Panels/index.js +66 -0
- package/Panels/package.json +3 -0
- package/Panels/tests/Header-specs.js +146 -0
- package/Panels/tests/Panels-specs.js +257 -0
- package/Picker/Picker.d.ts +193 -0
- package/Picker/Picker.js +389 -0
- package/Picker/Picker.module.css +46 -0
- package/Picker/package.json +3 -0
- package/Picker/tests/Picker-specs.js +91 -0
- package/Popup/Popup.d.ts +169 -0
- package/Popup/Popup.js +690 -0
- package/Popup/Popup.module.css +180 -0
- package/Popup/package.json +3 -0
- package/Popup/tests/Popup-specs.js +475 -0
- package/PopupTabLayout/PopupTabLayout.d.ts +196 -0
- package/PopupTabLayout/PopupTabLayout.js +605 -0
- package/PopupTabLayout/PopupTabLayout.module.css +226 -0
- package/PopupTabLayout/package.json +3 -0
- package/PopupTabLayout/tests/PopupTabLayout-specs.js +285 -0
- package/ProgressBar/ProgressBar.d.ts +171 -0
- package/ProgressBar/ProgressBar.js +223 -0
- package/ProgressBar/ProgressBar.module.css +264 -0
- package/ProgressBar/ProgressBarTooltip.js +359 -0
- package/ProgressBar/ProgressBarTooltip.module.css +86 -0
- package/ProgressBar/package.json +3 -0
- package/ProgressBar/tests/ProgressBar-specs.js +400 -0
- package/ProgressButton/ProgressButton.d.ts +57 -0
- package/ProgressButton/ProgressButton.js +143 -0
- package/ProgressButton/ProgressButton.module.css +147 -0
- package/ProgressButton/package.json +3 -0
- package/ProgressButton/tests/ProgressButton-specs.js +71 -0
- package/QuickGuidePanels/Panel.js +90 -0
- package/QuickGuidePanels/QuickGuidePanels.js +463 -0
- package/QuickGuidePanels/QuickGuidePanels.module.css +26 -0
- package/QuickGuidePanels/index.js +52 -0
- package/QuickGuidePanels/tests/QuickGuidePanels-specs.js +250 -0
- package/README.md +59 -0
- package/RadioItem/RadioItem.d.ts +59 -0
- package/RadioItem/RadioItem.js +146 -0
- package/RadioItem/RadioItem.module.css +233 -0
- package/RadioItem/package.json +3 -0
- package/RadioItem/tests/RadioItem-specs.js +62 -0
- package/RangePicker/RangePicker.d.ts +174 -0
- package/RangePicker/RangePicker.js +372 -0
- package/RangePicker/RangePicker.module.css +55 -0
- package/RangePicker/package.json +3 -0
- package/RangePicker/tests/RangePicker-specs.js +122 -0
- package/Region/Region.d.ts +33 -0
- package/Region/Region.js +91 -0
- package/Region/package.json +3 -0
- package/Region/tests/Region-specs.js +28 -0
- package/Scroller/ContentContainerDecorator.js +24 -0
- package/Scroller/EditableWrapper.js +1036 -0
- package/Scroller/EditableWrapper.module.css +22 -0
- package/Scroller/Scroller.d.ts +270 -0
- package/Scroller/Scroller.js +470 -0
- package/Scroller/Scroller.module.css +41 -0
- package/Scroller/package.json +3 -0
- package/Scroller/tests/ContentContainerDecorator-specs.js +20 -0
- package/Scroller/tests/EditableWrapper-specs.js +133 -0
- package/Scroller/tests/Scroller-specs.js +159 -0
- package/Scroller/useEvent.js +39 -0
- package/Scroller/useThemeScroller.js +410 -0
- package/Skinnable/Skinnable.d.ts +27 -0
- package/Skinnable/Skinnable.js +65 -0
- package/Skinnable/package.json +3 -0
- package/Slider/Slider.d.ts +218 -0
- package/Slider/Slider.js +441 -0
- package/Slider/Slider.module.css +880 -0
- package/Slider/SliderBehaviorDecorator.js +184 -0
- package/Slider/package.json +3 -0
- package/Slider/tests/Slider-specs.js +573 -0
- package/Slider/utils.js +114 -0
- package/Spinner/Spinner.d.ts +64 -0
- package/Spinner/Spinner.js +254 -0
- package/Spinner/Spinner.module.css +368 -0
- package/Spinner/package.json +3 -0
- package/Spinner/tests/Spinner-specs.js +70 -0
- package/Sprite/Sprite.d.ts +100 -0
- package/Sprite/Sprite.js +345 -0
- package/Sprite/Sprite.module.css +32 -0
- package/Sprite/package.json +3 -0
- package/Sprite/tests/Sprite-specs.js +59 -0
- package/Steps/Steps.d.ts +119 -0
- package/Steps/Steps.js +303 -0
- package/Steps/Steps.module.css +130 -0
- package/Steps/package.json +3 -0
- package/Steps/tests/Steps-specs.js +175 -0
- package/Switch/Switch.d.ts +54 -0
- package/Switch/Switch.js +143 -0
- package/Switch/Switch.module.css +714 -0
- package/Switch/package.json +3 -0
- package/Switch/tests/Switch-specs.js +54 -0
- package/SwitchItem/SwitchItem.d.ts +56 -0
- package/SwitchItem/SwitchItem.js +144 -0
- package/SwitchItem/SwitchItem.module.css +31 -0
- package/SwitchItem/package.json +3 -0
- package/SwitchItem/tests/SwitchItem-specs.js +49 -0
- package/TabLayout/RefocusDecorator.js +142 -0
- package/TabLayout/Tab.js +84 -0
- package/TabLayout/TabGroup.js +377 -0
- package/TabLayout/TabGroup.module.css +280 -0
- package/TabLayout/TabLayout.d.ts +161 -0
- package/TabLayout/TabLayout.js +661 -0
- package/TabLayout/TabLayout.module.css +101 -0
- package/TabLayout/package.json +3 -0
- package/TabLayout/tests/TabGroup-specs.js +214 -0
- package/TabLayout/tests/TabLayout-specs.js +740 -0
- package/ThemeDecorator/AccessibilityDecorator.js +151 -0
- package/ThemeDecorator/I18nFontDecorator.js +33 -0
- package/ThemeDecorator/ThemeDecorator.d.ts +143 -0
- package/ThemeDecorator/ThemeDecorator.js +307 -0
- package/ThemeDecorator/ThemeDecorator.module.css +1250 -0
- package/ThemeDecorator/fontGenerator.js +76 -0
- package/ThemeDecorator/package.json +3 -0
- package/ThemeDecorator/screenTypes.json +10 -0
- package/ThemeDecorator/tests/ThemeDecorator-specs.js +151 -0
- package/TimePicker/TimePicker.d.ts +147 -0
- package/TimePicker/TimePicker.js +255 -0
- package/TimePicker/TimePicker.module.css +61 -0
- package/TimePicker/TimePickerBase.js +396 -0
- package/TimePicker/package.json +3 -0
- package/TimePicker/tests/TimePicker-specs.js +248 -0
- package/TooltipDecorator/Tooltip.js +252 -0
- package/TooltipDecorator/Tooltip.module.css +496 -0
- package/TooltipDecorator/TooltipDecorator.d.ts +229 -0
- package/TooltipDecorator/TooltipDecorator.js +260 -0
- package/TooltipDecorator/TooltipLabel.js +117 -0
- package/TooltipDecorator/package.json +3 -0
- package/TooltipDecorator/tests/TooltipDecorator-specs.js +224 -0
- package/TooltipDecorator/tests/useTooltip-specs.js +266 -0
- package/TooltipDecorator/useTooltip.js +278 -0
- package/TooltipDecorator/util.js +273 -0
- package/VideoPlayer/Feedback.js +110 -0
- package/VideoPlayer/Feedback.module.css +55 -0
- package/VideoPlayer/FeedbackContent.js +99 -0
- package/VideoPlayer/FeedbackIcon.js +67 -0
- package/VideoPlayer/FeedbackIcons.js +76 -0
- package/VideoPlayer/FeedbackTooltip.js +242 -0
- package/VideoPlayer/FeedbackTooltip.module.css +160 -0
- package/VideoPlayer/MediaTitle.js +143 -0
- package/VideoPlayer/MediaTitle.module.css +95 -0
- package/VideoPlayer/Overlay.js +51 -0
- package/VideoPlayer/Video.js +345 -0
- package/VideoPlayer/VideoPlayer.d.ts +582 -0
- package/VideoPlayer/VideoPlayer.js +2116 -0
- package/VideoPlayer/VideoPlayer.module.css +164 -0
- package/VideoPlayer/package.json +3 -0
- package/VideoPlayer/tests/Video-specs.js +235 -0
- package/VideoPlayer/tests/VideoPlayer-specs.js +180 -0
- package/VirtualList/VirtualList.d.ts +411 -0
- package/VirtualList/VirtualList.js +931 -0
- package/VirtualList/VirtualList.module.css +52 -0
- package/VirtualList/package.json +3 -0
- package/VirtualList/tests/VirtualGridList-specs.js +289 -0
- package/VirtualList/tests/VirtualGridList-translate-specs.js +711 -0
- package/VirtualList/tests/VirtualList-specs.js +288 -0
- package/VirtualList/tests/VirtualList-translate-specs.js +704 -0
- package/VirtualList/tests/useEvent-specs.js +172 -0
- package/VirtualList/tests/useEvent-translate-specs.js +309 -0
- package/VirtualList/useEvent.js +324 -0
- package/VirtualList/usePreventScroll.js +31 -0
- package/VirtualList/useSpotlight.js +157 -0
- package/VirtualList/useThemeVirtualList.js +471 -0
- package/VirtualList/useThemeVirtualList.module.css +34 -0
- package/WizardPanels/Panel.js +99 -0
- package/WizardPanels/WizardPanels.js +501 -0
- package/WizardPanels/WizardPanels.module.css +15 -0
- package/WizardPanels/index.d.ts +182 -0
- package/WizardPanels/index.js +50 -0
- package/WizardPanels/package.json +3 -0
- package/WizardPanels/tests/WizardPanels-specs.js +713 -0
- package/codecov.yml +13 -0
- package/fonts/Limestone_Icons.ttf +0 -0
- package/fonts/Miso/LICENSE.txt +75 -0
- package/fonts/Miso/Miso-Bold.ttf +0 -0
- package/fonts/Miso/Miso-Light.ttf +0 -0
- package/fonts/Miso/Miso-Regular.ttf +0 -0
- package/fonts/MuseoSans/LICENSE.txt +75 -0
- package/fonts/MuseoSans/MuseoSans-Black.ttf +0 -0
- package/fonts/MuseoSans/MuseoSans-BlackItalic.ttf +0 -0
- package/fonts/MuseoSans/MuseoSans-Bold.ttf +0 -0
- package/fonts/MuseoSans/MuseoSans-BoldItalic.ttf +0 -0
- package/fonts/MuseoSans/MuseoSans-Light.ttf +0 -0
- package/fonts/MuseoSans/MuseoSans-Medium.ttf +0 -0
- package/fonts/MuseoSans/MuseoSans-MediumItalic.ttf +0 -0
- package/fonts/MuseoSans/MuseoSans-Thin.ttf +0 -0
- package/index.js +2 -0
- package/internal/$L/$L.d.ts +21 -0
- package/internal/$L/$L.js +97 -0
- package/internal/$L/package.json +3 -0
- package/internal/AsyncRenderChildren/AsyncRenderChildren.js +74 -0
- package/internal/AsyncRenderChildren/package.json +3 -0
- package/internal/AsyncRenderChildren/tests/AsyncRenderChildren-specs.js +49 -0
- package/internal/DateComponentPicker/DateComponentPicker.js +165 -0
- package/internal/DateComponentPicker/DateComponentPicker.module.css +53 -0
- package/internal/DateComponentPicker/DateComponentRangePicker.js +132 -0
- package/internal/DateComponentPicker/index.js +31 -0
- package/internal/DateComponentPicker/package.json +3 -0
- package/internal/DateTime/DateTime.js +83 -0
- package/internal/DateTime/DateTime.module.css +51 -0
- package/internal/DateTime/DateTimeDecorator.js +268 -0
- package/internal/DateTime/index.js +37 -0
- package/internal/DateTime/package.json +3 -0
- package/internal/DateTime/tests/DateTimeDecorator-specs.js +33 -0
- package/internal/DebounceDecorator/DebounceDecorator.js +125 -0
- package/internal/DebounceDecorator/package.json +3 -0
- package/internal/DebounceDecorator/tests/DebounceDecorator-specs.js +151 -0
- package/internal/Panels/Arrangers.js +248 -0
- package/internal/Panels/CancelDecorator.js +43 -0
- package/internal/Panels/FloatingLayerIdProvider.js +27 -0
- package/internal/Panels/NavigationButton.js +64 -0
- package/internal/Panels/NavigationButton.module.css +69 -0
- package/internal/Panels/PanelsRouter.js +223 -0
- package/internal/Panels/PopupDecorator.js +287 -0
- package/internal/Panels/TransitionDecorator.js +99 -0
- package/internal/Panels/Viewport.js +313 -0
- package/internal/Panels/Viewport.module.css +25 -0
- package/internal/Panels/captureKeys.js +48 -0
- package/internal/Panels/index.js +101 -0
- package/internal/Panels/package.json +3 -0
- package/internal/Panels/useAutoFocus.js +95 -0
- package/internal/Panels/useFocusOnTransition.js +45 -0
- package/internal/Panels/useToggleRole.js +30 -0
- package/internal/Panels/util.js +64 -0
- package/internal/Picker/Picker.js +942 -0
- package/internal/Picker/Picker.module.css +1145 -0
- package/internal/Picker/PickerButton.js +97 -0
- package/internal/Picker/PickerItem.js +38 -0
- package/internal/Picker/SpottablePicker.js +63 -0
- package/internal/Picker/package.json +3 -0
- package/internal/Picker/tests/Picker-specs.js +968 -0
- package/internal/SharedStateDecorator/SharedStateDecorator.js +167 -0
- package/internal/SharedStateDecorator/package.json +3 -0
- package/internal/SharedStateDecorator/tests/SharedStateDecorator-specs.js +277 -0
- package/internal/WindowEventable/WindowEventable.js +114 -0
- package/internal/WindowEventable/package.json +3 -0
- package/internal/util/package.json +3 -0
- package/internal/util/util.js +79 -0
- package/internal/validators/package.json +4 -0
- package/internal/validators/tests/validators-specs.js +80 -0
- package/internal/validators/validators.js +136 -0
- package/package.json +69 -0
- package/resources/ilibmanifest.json +3 -0
- package/styles/color-mixins.less +230 -0
- package/styles/colors-game-green.less +25 -0
- package/styles/colors-game-orange.less +25 -0
- package/styles/colors-game.less +56 -0
- package/styles/colors-highcontrast.less +21 -0
- package/styles/colors.less +435 -0
- package/styles/mixins.less +337 -0
- package/styles/skin.less +54 -0
- package/styles/variables-base.less +32 -0
- package/styles/variables-game.less +25 -0
- package/styles/variables.less +1182 -0
- package/useScroll/HoverToScroll.js +265 -0
- package/useScroll/HoverToScroll.module.css +38 -0
- package/useScroll/OverscrollEffect.module.css +14 -0
- package/useScroll/Scrollbar.js +171 -0
- package/useScroll/Scrollbar.module.css +19 -0
- package/useScroll/ScrollbarPlaceholder.js +64 -0
- package/useScroll/ScrollbarTrack.js +209 -0
- package/useScroll/ScrollbarTrack.module.css +136 -0
- package/useScroll/package.json +3 -0
- package/useScroll/useEvent.js +693 -0
- package/useScroll/useOverscrollEffect.js +105 -0
- package/useScroll/useScroll.js +523 -0
- package/useScroll/useScroll.module.css +49 -0
- package/useScroll/useSpotlight.js +32 -0
- package/useScroll/useThemeScrollContentHandle.js +32 -0
|
@@ -0,0 +1,278 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useTooltip = exports.defaultScreenEdgeKeepout = exports["default"] = void 0;
|
|
7
|
+
var _handle = require("@enact/core/handle");
|
|
8
|
+
var _util = require("@enact/core/util");
|
|
9
|
+
var _I18nDecorator = require("@enact/i18n/I18nDecorator");
|
|
10
|
+
var _FloatingLayer = require("@enact/ui/FloatingLayer");
|
|
11
|
+
var _resolution = _interopRequireDefault(require("@enact/ui/resolution"));
|
|
12
|
+
var _react = require("react");
|
|
13
|
+
var _Tooltip = require("./Tooltip");
|
|
14
|
+
var _util2 = require("./util");
|
|
15
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
16
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
17
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
18
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
19
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
20
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
21
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
22
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
23
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
24
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
25
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
26
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
27
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
28
|
+
function _objectDestructuringEmpty(t) { if (null == t) throw new TypeError("Cannot destructure " + t); } /* global MutationObserver ResizeObserver */
|
|
29
|
+
var currentTooltip; // needed to know whether we should stop a showing job when unmounting
|
|
30
|
+
|
|
31
|
+
var getTooltipDirection = function getTooltipDirection(tooltipPosition, tooltipType) {
|
|
32
|
+
var position = tooltipPosition || (0, _Tooltip.defaultDirection)(tooltipType) + ' ' + (0, _Tooltip.defaultArrowAnchor)(tooltipType);
|
|
33
|
+
var arr = position.split(' ');
|
|
34
|
+
if (arr.length === 2) {
|
|
35
|
+
return {
|
|
36
|
+
tooltipDirection: arr[0],
|
|
37
|
+
arrowAnchor: arr[1]
|
|
38
|
+
};
|
|
39
|
+
} else {
|
|
40
|
+
return {
|
|
41
|
+
tooltipDirection: position === 'below' ? 'below' : 'above',
|
|
42
|
+
arrowAnchor: 'right'
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
var removeTooltipProps = function removeTooltipProps(_ref) {
|
|
47
|
+
var props = Object.assign({}, (_objectDestructuringEmpty(_ref), _ref));
|
|
48
|
+
delete props.rtl;
|
|
49
|
+
delete props.screenEdgeKeepout;
|
|
50
|
+
delete props.tooltipDelay;
|
|
51
|
+
delete props.tooltipMarquee;
|
|
52
|
+
delete props.tooltipPosition;
|
|
53
|
+
delete props.tooltipProps;
|
|
54
|
+
delete props.tooltipRelative;
|
|
55
|
+
delete props.tooltipText;
|
|
56
|
+
delete props.tooltipType;
|
|
57
|
+
delete props.tooltipUpdateDelay;
|
|
58
|
+
delete props.tooltipWidth;
|
|
59
|
+
return props;
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
/*
|
|
63
|
+
* The boundary around the screen which the tooltip should never cross, typically involving
|
|
64
|
+
* flipping to an alternate orientation or adjusting its offset to remain on screen.
|
|
65
|
+
* The default of 48 is derived from a standard 24px screen-keepout size plus the standard
|
|
66
|
+
* Spotlight-outset (24px) margin/padding value which keeps elements and text aligned inside a
|
|
67
|
+
* Panel. Note: This value will be scaled according to the resolution.
|
|
68
|
+
*/
|
|
69
|
+
var defaultScreenEdgeKeepout = exports.defaultScreenEdgeKeepout = 24 + 24;
|
|
70
|
+
|
|
71
|
+
// A hook to show Limestone-styled tooltip components.
|
|
72
|
+
var useTooltip = exports.useTooltip = function useTooltip(props) {
|
|
73
|
+
var _useI18nContext;
|
|
74
|
+
var _props$screenEdgeKeep = props.screenEdgeKeepout,
|
|
75
|
+
screenEdgeKeepout = _props$screenEdgeKeep === void 0 ? defaultScreenEdgeKeepout : _props$screenEdgeKeep,
|
|
76
|
+
_props$tooltipDelay = props.tooltipDelay,
|
|
77
|
+
tooltipDelay = _props$tooltipDelay === void 0 ? 500 : _props$tooltipDelay,
|
|
78
|
+
_props$tooltipType = props.tooltipType,
|
|
79
|
+
tooltipType = _props$tooltipType === void 0 ? 'balloon' : _props$tooltipType,
|
|
80
|
+
_props$tooltipUpdateD = props.tooltipUpdateDelay,
|
|
81
|
+
tooltipUpdateDelay = _props$tooltipUpdateD === void 0 ? 400 : _props$tooltipUpdateD,
|
|
82
|
+
tooltipMarquee = props.tooltipMarquee,
|
|
83
|
+
tooltipPosition = props.tooltipPosition,
|
|
84
|
+
tooltipProps = props.tooltipProps,
|
|
85
|
+
tooltipRelative = props.tooltipRelative,
|
|
86
|
+
tooltipText = props.tooltipText,
|
|
87
|
+
tooltipWidth = props.tooltipWidth;
|
|
88
|
+
var rtlI18nContext = (_useI18nContext = (0, _I18nDecorator.useI18nContext)()) === null || _useI18nContext === void 0 ? void 0 : _useI18nContext.rtl;
|
|
89
|
+
var rtl = typeof props.rtl === 'boolean' ? props.rtl : rtlI18nContext;
|
|
90
|
+
var _useState = (0, _react.useState)(false),
|
|
91
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
92
|
+
showing = _useState2[0],
|
|
93
|
+
setShowing = _useState2[1];
|
|
94
|
+
var _useState3 = (0, _react.useState)({
|
|
95
|
+
arrowAnchor: null,
|
|
96
|
+
labelOffset: null,
|
|
97
|
+
position: {
|
|
98
|
+
top: 0,
|
|
99
|
+
left: 0
|
|
100
|
+
},
|
|
101
|
+
tooltipDirection: null
|
|
102
|
+
}),
|
|
103
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
104
|
+
layout = _useState4[0],
|
|
105
|
+
setLayout = _useState4[1];
|
|
106
|
+
var mutableRef = (0, _react.useRef)({
|
|
107
|
+
mutationObserver: null,
|
|
108
|
+
resizeObserver: null,
|
|
109
|
+
showTooltipJob: null,
|
|
110
|
+
setTooltipLayoutJob: null
|
|
111
|
+
});
|
|
112
|
+
var clientRef = (0, _react.useRef)(null);
|
|
113
|
+
var tooltipRef = (0, _react.useRef)(null);
|
|
114
|
+
var showTooltip = (0, _react.useCallback)(function (client) {
|
|
115
|
+
if (tooltipText) {
|
|
116
|
+
var _mutableRef$current$s, _mutableRef$current$m, _mutableRef$current$r;
|
|
117
|
+
clientRef.current = client;
|
|
118
|
+
currentTooltip = client;
|
|
119
|
+
(_mutableRef$current$s = mutableRef.current.showTooltipJob) === null || _mutableRef$current$s === void 0 || _mutableRef$current$s.startAfter(tooltipDelay);
|
|
120
|
+
(_mutableRef$current$m = mutableRef.current.mutationObserver) === null || _mutableRef$current$m === void 0 || _mutableRef$current$m.observe(clientRef.current, {
|
|
121
|
+
attributes: true,
|
|
122
|
+
childList: true
|
|
123
|
+
});
|
|
124
|
+
(_mutableRef$current$r = mutableRef.current.resizeObserver) === null || _mutableRef$current$r === void 0 || _mutableRef$current$r.observe(clientRef.current);
|
|
125
|
+
}
|
|
126
|
+
}, [clientRef, tooltipDelay, tooltipText]);
|
|
127
|
+
var hideTooltip = (0, _react.useCallback)(function () {
|
|
128
|
+
if (tooltipText) {
|
|
129
|
+
var _mutableRef$current$m2, _mutableRef$current$r2, _mutableRef$current$s2, _mutableRef$current$s3;
|
|
130
|
+
(_mutableRef$current$m2 = mutableRef.current.mutationObserver) === null || _mutableRef$current$m2 === void 0 || _mutableRef$current$m2.disconnect();
|
|
131
|
+
(_mutableRef$current$r2 = mutableRef.current.resizeObserver) === null || _mutableRef$current$r2 === void 0 || _mutableRef$current$r2.disconnect();
|
|
132
|
+
clientRef.current = null;
|
|
133
|
+
currentTooltip = null;
|
|
134
|
+
(_mutableRef$current$s2 = mutableRef.current.showTooltipJob) === null || _mutableRef$current$s2 === void 0 || _mutableRef$current$s2.stop();
|
|
135
|
+
(_mutableRef$current$s3 = mutableRef.current.setTooltipLayoutJob) === null || _mutableRef$current$s3 === void 0 || _mutableRef$current$s3.stop();
|
|
136
|
+
setShowing(false);
|
|
137
|
+
}
|
|
138
|
+
}, [clientRef, tooltipText]);
|
|
139
|
+
var startTooltipLayoutJob = (0, _react.useCallback)(function () {
|
|
140
|
+
var _mutableRef$current$s4;
|
|
141
|
+
(_mutableRef$current$s4 = mutableRef.current.setTooltipLayoutJob) === null || _mutableRef$current$s4 === void 0 || _mutableRef$current$s4.startAfter(tooltipUpdateDelay);
|
|
142
|
+
}, [tooltipUpdateDelay]);
|
|
143
|
+
|
|
144
|
+
// Recalculate tooltip layout on keydown to make sure tooltip is positioned correctly in case something changes as a result of the keydown.
|
|
145
|
+
var onKeyDown = (0, _react.useCallback)(function (ev) {
|
|
146
|
+
(0, _handle.forward)('onKeyDown', ev, props);
|
|
147
|
+
if (!props.disabled) {
|
|
148
|
+
startTooltipLayoutJob();
|
|
149
|
+
}
|
|
150
|
+
}, [props, startTooltipLayoutJob]);
|
|
151
|
+
var onMouseOver = (0, _react.useCallback)(function (ev) {
|
|
152
|
+
(0, _handle.forward)('onMouseOver', ev, props);
|
|
153
|
+
if (props.disabled) {
|
|
154
|
+
showTooltip(ev.currentTarget);
|
|
155
|
+
}
|
|
156
|
+
}, [props, showTooltip]);
|
|
157
|
+
var onMouseOut = (0, _react.useCallback)(function (ev) {
|
|
158
|
+
(0, _handle.forward)('onMouseOut', ev, props);
|
|
159
|
+
if (props.disabled) {
|
|
160
|
+
if (clientRef.current && !clientRef.current.contains(ev.relatedTarget)) {
|
|
161
|
+
hideTooltip();
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
}, [hideTooltip, props]);
|
|
165
|
+
var onFocus = (0, _react.useCallback)(function (ev) {
|
|
166
|
+
(0, _handle.forward)('onFocus', ev, props);
|
|
167
|
+
showTooltip(ev.target);
|
|
168
|
+
}, [props, showTooltip]);
|
|
169
|
+
var onBlur = (0, _react.useCallback)(function (ev) {
|
|
170
|
+
(0, _handle.forward)('onBlur', ev, props);
|
|
171
|
+
hideTooltip();
|
|
172
|
+
}, [hideTooltip, props]);
|
|
173
|
+
var handlers = {
|
|
174
|
+
onKeyDown: onKeyDown,
|
|
175
|
+
onMouseOver: onMouseOver,
|
|
176
|
+
onMouseOut: onMouseOut,
|
|
177
|
+
onFocus: onFocus,
|
|
178
|
+
onBlur: onBlur
|
|
179
|
+
};
|
|
180
|
+
(0, _react.useEffect)(function () {
|
|
181
|
+
var mutableRefCurrent = mutableRef.current;
|
|
182
|
+
if (typeof window !== 'undefined' && window.MutationObserver) {
|
|
183
|
+
mutableRefCurrent.mutationObserver = new MutationObserver(startTooltipLayoutJob);
|
|
184
|
+
}
|
|
185
|
+
if (typeof window !== 'undefined' && window.ResizeObserver) {
|
|
186
|
+
mutableRefCurrent.resizeObserver = new ResizeObserver(startTooltipLayoutJob);
|
|
187
|
+
}
|
|
188
|
+
return function () {
|
|
189
|
+
if (currentTooltip === clientRef.current) {
|
|
190
|
+
var _mutableRefCurrent$mu, _mutableRefCurrent$re;
|
|
191
|
+
currentTooltip = null;
|
|
192
|
+
(_mutableRefCurrent$mu = mutableRefCurrent.mutationObserver) === null || _mutableRefCurrent$mu === void 0 || _mutableRefCurrent$mu.disconnect();
|
|
193
|
+
(_mutableRefCurrent$re = mutableRefCurrent.resizeObserver) === null || _mutableRefCurrent$re === void 0 || _mutableRefCurrent$re.disconnect();
|
|
194
|
+
mutableRefCurrent.showTooltipJob.stop();
|
|
195
|
+
mutableRefCurrent.setTooltipLayoutJob.stop();
|
|
196
|
+
}
|
|
197
|
+
};
|
|
198
|
+
}, [startTooltipLayoutJob]);
|
|
199
|
+
var setTooltipLayout = (0, _react.useCallback)(function () {
|
|
200
|
+
if (!tooltipRef.current || !clientRef.current) {
|
|
201
|
+
return;
|
|
202
|
+
}
|
|
203
|
+
var newLayout = getTooltipDirection(tooltipPosition, tooltipType);
|
|
204
|
+
var tooltipNode = tooltipRef.current.getBoundingClientRect(); // label bound
|
|
205
|
+
var clientNode = clientRef.current.getBoundingClientRect(); // client bound
|
|
206
|
+
var overflow = (0, _util2.calcOverflow)(tooltipNode, clientNode, newLayout.tooltipDirection, _resolution["default"].scale(screenEdgeKeepout));
|
|
207
|
+
newLayout.tooltipDirection = (0, _util2.adjustDirection)(newLayout.tooltipDirection, overflow, rtl);
|
|
208
|
+
newLayout.arrowAnchor = (0, _util2.adjustAnchor)(newLayout.arrowAnchor, newLayout.tooltipDirection, overflow, rtl);
|
|
209
|
+
newLayout.position = (0, _util2.adjustTransform)(clientRef.current, newLayout.tooltipDirection, (0, _util2.getPosition)(clientNode, newLayout.tooltipDirection));
|
|
210
|
+
newLayout.labelOffset = newLayout.arrowAnchor === 'center' ? (0, _util2.getLabelOffset)(tooltipNode, newLayout.tooltipDirection, newLayout.position, overflow) : null;
|
|
211
|
+
if (newLayout.position.top !== layout.position.top || newLayout.position.left !== layout.position.left || newLayout.labelOffset !== layout.labelOffset || newLayout.arrowAnchor !== layout.arrowAnchor) {
|
|
212
|
+
setLayout(newLayout);
|
|
213
|
+
}
|
|
214
|
+
}, [rtl, tooltipPosition, tooltipType, screenEdgeKeepout, layout, tooltipRef, clientRef]);
|
|
215
|
+
(0, _react.useLayoutEffect)(function () {
|
|
216
|
+
mutableRef.current.showTooltipJob = new _util.Job(function () {
|
|
217
|
+
setShowing(true);
|
|
218
|
+
});
|
|
219
|
+
}, [showing]);
|
|
220
|
+
(0, _react.useLayoutEffect)(function () {
|
|
221
|
+
mutableRef.current.setTooltipLayoutJob = new _util.Job(function () {
|
|
222
|
+
setTooltipLayout();
|
|
223
|
+
});
|
|
224
|
+
}, [setTooltipLayout]);
|
|
225
|
+
var getTooltipRef = (0, _react.useCallback)(function (node) {
|
|
226
|
+
tooltipRef.current = node;
|
|
227
|
+
if (node) {
|
|
228
|
+
setTooltipLayout();
|
|
229
|
+
}
|
|
230
|
+
}, [setTooltipLayout]);
|
|
231
|
+
|
|
232
|
+
/*
|
|
233
|
+
* Conditionally creates the FloatingLayer and Tooltip based on the presence of `tooltipText`
|
|
234
|
+
*/
|
|
235
|
+
var renderTooltip = (0, _react.useCallback)(function () {
|
|
236
|
+
var _layout$position = layout.position,
|
|
237
|
+
top = _layout$position.top,
|
|
238
|
+
left = _layout$position.left;
|
|
239
|
+
var tooltipStyle = {
|
|
240
|
+
// Moving the position to CSS variables where there are additional offset calculations
|
|
241
|
+
'--tooltip-position-top': tooltipRelative ? null : _resolution["default"].unit(top, 'rem'),
|
|
242
|
+
'--tooltip-position-left': tooltipRelative ? null : _resolution["default"].unit(left, 'rem')
|
|
243
|
+
};
|
|
244
|
+
var renderedTooltip = /*#__PURE__*/(0, _jsxRuntime.jsx)(_Tooltip.Tooltip, _objectSpread(_objectSpread({
|
|
245
|
+
"aria-hidden": true,
|
|
246
|
+
labelOffset: layout.labelOffset
|
|
247
|
+
}, tooltipProps), {}, {
|
|
248
|
+
arrowAnchor: layout.arrowAnchor,
|
|
249
|
+
direction: layout.tooltipDirection,
|
|
250
|
+
marquee: tooltipMarquee,
|
|
251
|
+
relative: tooltipRelative,
|
|
252
|
+
style: tooltipStyle,
|
|
253
|
+
tooltipRef: getTooltipRef,
|
|
254
|
+
type: tooltipType,
|
|
255
|
+
width: tooltipWidth,
|
|
256
|
+
children: tooltipText
|
|
257
|
+
}));
|
|
258
|
+
if (!tooltipRelative) {
|
|
259
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_FloatingLayer.FloatingLayerBase, {
|
|
260
|
+
open: showing,
|
|
261
|
+
noAutoDismiss: true,
|
|
262
|
+
onDismiss: hideTooltip,
|
|
263
|
+
scrimType: "none",
|
|
264
|
+
children: renderedTooltip
|
|
265
|
+
}, "tooltipFloatingLayer");
|
|
266
|
+
} else if (showing) {
|
|
267
|
+
return renderedTooltip;
|
|
268
|
+
} else {
|
|
269
|
+
return null;
|
|
270
|
+
}
|
|
271
|
+
}, [getTooltipRef, hideTooltip, layout, showing, tooltipMarquee, tooltipProps, tooltipRelative, tooltipText, tooltipType, tooltipWidth]);
|
|
272
|
+
return {
|
|
273
|
+
tooltip: tooltipText ? renderTooltip() : null,
|
|
274
|
+
handlers: handlers,
|
|
275
|
+
restProps: removeTooltipProps(props)
|
|
276
|
+
};
|
|
277
|
+
};
|
|
278
|
+
var _default = exports["default"] = useTooltip;
|
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getPosition = exports.getLabelOffset = exports.calcOverflow = exports.adjustTransform = exports.adjustDirection = exports.adjustAnchor = void 0;
|
|
7
|
+
var _resolution = _interopRequireDefault(require("@enact/ui/resolution"));
|
|
8
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
9
|
+
function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
|
|
10
|
+
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
11
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
12
|
+
function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
|
|
13
|
+
function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
|
|
14
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } // TooltipDecorator util.js
|
|
15
|
+
//
|
|
16
|
+
/**
|
|
17
|
+
* Calculates the unusable space of a centered Tooltip, which the Tooltip arrow cannot be positioned,
|
|
18
|
+
* as a percentage of the Tooltip's total width.
|
|
19
|
+
*
|
|
20
|
+
* @param {Number} tooltipWidth The measured width of the Tooltip
|
|
21
|
+
* @return {Number} The percent of the width of the tooltip that the Tooltip's
|
|
22
|
+
* decorations allocate for themselves (on one side).
|
|
23
|
+
* @private
|
|
24
|
+
*/
|
|
25
|
+
var getLabelUnavailableSpace = function getLabelUnavailableSpace(tooltipWidth) {
|
|
26
|
+
// Arrow is 30px wide total, we need to know how wide half of it is, since it's centered on the anchor point.
|
|
27
|
+
var arrowWidth = 30 / 2;
|
|
28
|
+
|
|
29
|
+
// Tooltip is 108px tall, divide by half to get the curve radius, add the tooltip width
|
|
30
|
+
// to determine the distance that the anchor cannot progress past.
|
|
31
|
+
var tooltipUnavailableEdge = _resolution["default"].scale(108 / 2 + arrowWidth);
|
|
32
|
+
|
|
33
|
+
// cap the offset at 50% - that percentage
|
|
34
|
+
var tooltipUnavailablePercentage = 0.5 - tooltipUnavailableEdge / tooltipWidth;
|
|
35
|
+
return tooltipUnavailablePercentage;
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Adjust anchor position for `Tooltip` based on overflow and rtl.
|
|
40
|
+
* Takes the output of `adjustDirection`, and `calcOverflow`.
|
|
41
|
+
*
|
|
42
|
+
* @method
|
|
43
|
+
* @memberof limestone/TooltipDecorator
|
|
44
|
+
* @param {String} arrowAnchor Initial anchor position
|
|
45
|
+
* @param {String} tooltipDirection Direction of tooltip; value from `adjustDirection`
|
|
46
|
+
* @param {Object} overflow Tooltip's calculated overflow from `calcOverflow`
|
|
47
|
+
* @param {Boolean} rtl RTL mode
|
|
48
|
+
* @returns {String} Adjusted anchor position
|
|
49
|
+
* @private
|
|
50
|
+
*/
|
|
51
|
+
var adjustAnchor = exports.adjustAnchor = function adjustAnchor(arrowAnchor, tooltipDirection, overflow, rtl) {
|
|
52
|
+
if (tooltipDirection === 'above' || tooltipDirection === 'below') {
|
|
53
|
+
if (rtl && arrowAnchor !== 'center') {
|
|
54
|
+
arrowAnchor = arrowAnchor === 'left' ? 'right' : 'left';
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
// Flip sideways if it overflows to the sides
|
|
58
|
+
if (arrowAnchor === 'center') {
|
|
59
|
+
// If tooltip is anchored in the center, don't flip. We'll offset it appropriately later.
|
|
60
|
+
} else if (overflow.isOverRight) {
|
|
61
|
+
arrowAnchor = 'left';
|
|
62
|
+
} else if (overflow.isOverLeft) {
|
|
63
|
+
arrowAnchor = 'right';
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
// If tooltip is just too wide for the whole screen, switch it to a center tooltip
|
|
67
|
+
if (overflow.isOverWide && tooltipDirection !== 'left' && tooltipDirection !== 'right') {
|
|
68
|
+
arrowAnchor = 'center';
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return arrowAnchor;
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Adjust direction for `Tooltip` based on overflow and rtl.
|
|
76
|
+
* Takes the output from `calcOverflow`.
|
|
77
|
+
*
|
|
78
|
+
* @method
|
|
79
|
+
* @memberof limestone/TooltipDecorator
|
|
80
|
+
* @param {String} tooltipDirection Direction of tooltip
|
|
81
|
+
* @param {Object} overflow Tooltip's calculated overflow from `calcOverflow`
|
|
82
|
+
* @param {Boolean} rtl RTL mode
|
|
83
|
+
* @returns {String} Adjusted tooltip direction
|
|
84
|
+
* @private
|
|
85
|
+
*/
|
|
86
|
+
var adjustDirection = exports.adjustDirection = function adjustDirection(tooltipDirection, overflow, rtl) {
|
|
87
|
+
if (rtl && (tooltipDirection === 'left' || tooltipDirection === 'right')) {
|
|
88
|
+
tooltipDirection = tooltipDirection === 'left' ? 'right' : 'left';
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
// Flip tooltip if it overflows towards the tooltip direction
|
|
92
|
+
if (overflow.isOverTop && tooltipDirection === 'above') {
|
|
93
|
+
tooltipDirection = 'below';
|
|
94
|
+
} else if (overflow.isOverBottom && tooltipDirection === 'below') {
|
|
95
|
+
tooltipDirection = 'above';
|
|
96
|
+
} else if (overflow.isOverLeft && tooltipDirection === 'left' && !overflow.isOverWide) {
|
|
97
|
+
tooltipDirection = 'right';
|
|
98
|
+
} else if (overflow.isOverRight && tooltipDirection === 'right' && !overflow.isOverWide) {
|
|
99
|
+
tooltipDirection = 'left';
|
|
100
|
+
}
|
|
101
|
+
return tooltipDirection;
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* Calculates the top and left position for `Tooltip` accounting for transform.
|
|
106
|
+
*
|
|
107
|
+
* @method
|
|
108
|
+
* @memberof limestone/TooltipDecorator
|
|
109
|
+
* @param {Node} clientNode The value for client node
|
|
110
|
+
* @param {String} tooltipDirection Direction of tooltip
|
|
111
|
+
* @param {Object} tooltipPosition The `getBoundingClientRect` values for tooltip node
|
|
112
|
+
* @returns {Object} Tooltip's calculated new position accounting for transform
|
|
113
|
+
* @private
|
|
114
|
+
*/
|
|
115
|
+
var adjustTransform = exports.adjustTransform = function adjustTransform(clientNode, tooltipDirection, tooltipPosition) {
|
|
116
|
+
var componentNodes = clientNode !== null && clientNode !== void 0 && clientNode.childNodes.length ? [clientNode].concat(_toConsumableArray(clientNode.childNodes)) : [clientNode];
|
|
117
|
+
var nodePositions = clientNode.getBoundingClientRect();
|
|
118
|
+
var hasTransform = false;
|
|
119
|
+
var transformMatrix = [];
|
|
120
|
+
componentNodes.forEach(function (node) {
|
|
121
|
+
if (window.getComputedStyle(node).transitionProperty === 'transform') {
|
|
122
|
+
hasTransform = true;
|
|
123
|
+
var matrix = window.getComputedStyle(node).transform.split('(')[1].split(')')[0].split(',');
|
|
124
|
+
transformMatrix = [parseFloat(matrix[0]) - 1, parseFloat(matrix[3]) - 1];
|
|
125
|
+
}
|
|
126
|
+
});
|
|
127
|
+
if (!hasTransform) return tooltipPosition;
|
|
128
|
+
var horizontal = (nodePositions.right - nodePositions.left) * transformMatrix[0] / 2,
|
|
129
|
+
vertical = (nodePositions.bottom - nodePositions.top) * transformMatrix[1] / 2;
|
|
130
|
+
switch (tooltipDirection) {
|
|
131
|
+
case 'above':
|
|
132
|
+
tooltipPosition.top -= vertical;
|
|
133
|
+
break;
|
|
134
|
+
case 'below':
|
|
135
|
+
tooltipPosition.top += vertical;
|
|
136
|
+
break;
|
|
137
|
+
case 'left':
|
|
138
|
+
tooltipPosition.left -= horizontal;
|
|
139
|
+
break;
|
|
140
|
+
case 'right':
|
|
141
|
+
tooltipPosition.left += horizontal;
|
|
142
|
+
break;
|
|
143
|
+
default:
|
|
144
|
+
break;
|
|
145
|
+
}
|
|
146
|
+
return tooltipPosition;
|
|
147
|
+
};
|
|
148
|
+
|
|
149
|
+
/**
|
|
150
|
+
* Calculates the overflow of `Tooltip` — if `Tooltip` is at the edge of the viewport.
|
|
151
|
+
* Return the amount of overflow in a particular direction if there is overflow (false otherwise).
|
|
152
|
+
*
|
|
153
|
+
* @method
|
|
154
|
+
* @memberof limestone/TooltipDecorator
|
|
155
|
+
* @param {Object} tooltipNode The `getBoundingClientRect` values for tooltip node
|
|
156
|
+
* @param {Object} clientNode The `getBoundingClientRect` values for client node
|
|
157
|
+
* @param {String} tooltipDirection Direction of tooltip
|
|
158
|
+
* @param {Number} tooltipHeight Tooltip height
|
|
159
|
+
* @param {Number} edgeKeepout Extra margin around the screen to avoid
|
|
160
|
+
* @returns {Object} Tooltip's calculated overflow
|
|
161
|
+
* @private
|
|
162
|
+
*/
|
|
163
|
+
var calcOverflow = exports.calcOverflow = function calcOverflow(tooltipNode, clientNode, tooltipDirection, edgeKeepout) {
|
|
164
|
+
// get the distance of space on both the right and left side of the client node. `clientNode.width / 2` because we want the tooltip to be positioned horizontally in middle of the client node.
|
|
165
|
+
var windowWidth = window.innerWidth;
|
|
166
|
+
var windowHeight = window.innerHeight;
|
|
167
|
+
var clientHorizontalCenter = clientNode.left + clientNode.width / 2;
|
|
168
|
+
var tooltipSafeWidth = tooltipNode.width + edgeKeepout;
|
|
169
|
+
var tooltipCenteredSafeWidth = tooltipNode.width / 2 + edgeKeepout;
|
|
170
|
+
var rightDelta = tooltipSafeWidth > clientHorizontalCenter;
|
|
171
|
+
var leftDelta = tooltipSafeWidth > windowWidth - clientHorizontalCenter;
|
|
172
|
+
var isTooltipWide = tooltipSafeWidth > windowWidth || leftDelta && rightDelta;
|
|
173
|
+
if (tooltipDirection === 'above' || tooltipDirection === 'below') {
|
|
174
|
+
var isOverTop = clientNode.top - tooltipNode.height - edgeKeepout;
|
|
175
|
+
var isOverBottom = clientNode.bottom + tooltipNode.height + edgeKeepout;
|
|
176
|
+
var isOverLeft = clientHorizontalCenter - tooltipSafeWidth;
|
|
177
|
+
var isOverRight = clientHorizontalCenter + tooltipSafeWidth;
|
|
178
|
+
var isOverCenterLeft = clientHorizontalCenter - tooltipCenteredSafeWidth;
|
|
179
|
+
var isOverCenterRight = clientHorizontalCenter + tooltipCenteredSafeWidth;
|
|
180
|
+
return {
|
|
181
|
+
isOverTop: isOverTop < 0 ? isOverTop : false,
|
|
182
|
+
isOverBottom: isOverBottom > windowHeight ? isOverBottom - windowHeight : false,
|
|
183
|
+
isOverLeft: isOverLeft < 0 ? isOverLeft : false,
|
|
184
|
+
isOverRight: isOverRight > windowWidth ? isOverRight - windowWidth : false,
|
|
185
|
+
isOverCenterLeft: isOverCenterLeft < 0 ? isOverCenterLeft : false,
|
|
186
|
+
isOverCenterRight: isOverCenterRight > windowWidth ? isOverCenterRight - windowWidth : false,
|
|
187
|
+
isOverWide: isTooltipWide
|
|
188
|
+
};
|
|
189
|
+
} else if (tooltipDirection === 'left' || tooltipDirection === 'right') {
|
|
190
|
+
var _isOverTop = clientNode.top - tooltipNode.height + clientNode.height - edgeKeepout;
|
|
191
|
+
var _isOverBottom = clientNode.bottom + tooltipNode.height - clientNode.height / 2 + edgeKeepout;
|
|
192
|
+
var _isOverLeft = clientNode.left - tooltipNode.width - edgeKeepout;
|
|
193
|
+
var _isOverRight = clientNode.right + tooltipNode.width + edgeKeepout;
|
|
194
|
+
return {
|
|
195
|
+
isOverTop: _isOverTop < 0 ? _isOverTop : false,
|
|
196
|
+
isOverBottom: _isOverBottom > windowHeight ? _isOverBottom - windowHeight : false,
|
|
197
|
+
isOverLeft: _isOverLeft < 0 ? _isOverLeft : false,
|
|
198
|
+
isOverRight: _isOverRight > windowWidth ? _isOverRight - windowWidth : false,
|
|
199
|
+
isOverWide: isTooltipWide
|
|
200
|
+
};
|
|
201
|
+
}
|
|
202
|
+
};
|
|
203
|
+
|
|
204
|
+
/**
|
|
205
|
+
* Calculates the top and left position for `Tooltip`.
|
|
206
|
+
* Takes the output of `adjustAnchor`, `adjustDirection`, and `calcOverflow`.
|
|
207
|
+
*
|
|
208
|
+
* @method
|
|
209
|
+
* @memberof limestone/TooltipDecorator
|
|
210
|
+
* @param {Object} clientNode The `getBoundingClientRect` values for client node
|
|
211
|
+
* @param {String} tooltipDirection Direction of tooltip
|
|
212
|
+
* @returns {Object} Tooltip top and left position
|
|
213
|
+
* @private
|
|
214
|
+
*/
|
|
215
|
+
var getPosition = exports.getPosition = function getPosition(clientNode, tooltipDirection) {
|
|
216
|
+
var position = {};
|
|
217
|
+
switch (tooltipDirection) {
|
|
218
|
+
case 'above':
|
|
219
|
+
position.top = clientNode.top;
|
|
220
|
+
break;
|
|
221
|
+
case 'below':
|
|
222
|
+
position.top = clientNode.bottom;
|
|
223
|
+
break;
|
|
224
|
+
case 'right':
|
|
225
|
+
position.left = clientNode.right;
|
|
226
|
+
break;
|
|
227
|
+
case 'left':
|
|
228
|
+
position.left = clientNode.left;
|
|
229
|
+
break;
|
|
230
|
+
default:
|
|
231
|
+
position = {};
|
|
232
|
+
}
|
|
233
|
+
if (tooltipDirection === 'above' || tooltipDirection === 'below') {
|
|
234
|
+
position.left = clientNode.left + clientNode.width / 2;
|
|
235
|
+
} else if (tooltipDirection === 'left' || tooltipDirection === 'right') {
|
|
236
|
+
position.top = clientNode.top + clientNode.height / 2;
|
|
237
|
+
}
|
|
238
|
+
return position;
|
|
239
|
+
};
|
|
240
|
+
|
|
241
|
+
/**
|
|
242
|
+
* Adjusts the `Tooltip` arrow anchor when the tooltip is too wide.
|
|
243
|
+
* Takes the output of `calcOverflow`.
|
|
244
|
+
*
|
|
245
|
+
* @method
|
|
246
|
+
* @memberof limestone/TooltipDecorator
|
|
247
|
+
* @param {Object} tooltipNode The `getBoundingClientRect` values for tooltip node
|
|
248
|
+
* @param {String} tooltipDirection Direction of tooltip
|
|
249
|
+
* @param {Object} tooltipPosition Calculated tooltip position from `getPosition`
|
|
250
|
+
* @param {Object} overflow Tooltip's calculated overflow from `calcOverflow`
|
|
251
|
+
* @private
|
|
252
|
+
*/
|
|
253
|
+
var getLabelOffset = exports.getLabelOffset = function getLabelOffset(tooltipNode, tooltipDirection, tooltipPosition, overflow) {
|
|
254
|
+
// This method is irrelevant to left and right anchored tooltips, skip entirely.
|
|
255
|
+
if (tooltipDirection !== 'left' && tooltipDirection !== 'right') {
|
|
256
|
+
var tooltipWidth = tooltipNode.width;
|
|
257
|
+
if (overflow.isOverWide || overflow.isOverCenterLeft || overflow.isOverCenterRight) {
|
|
258
|
+
var pixelOffset = 0;
|
|
259
|
+
if (overflow.isOverCenterLeft) {
|
|
260
|
+
// Start shifting the label to the right (negative offset)
|
|
261
|
+
pixelOffset = overflow.isOverCenterLeft;
|
|
262
|
+
} else if (overflow.isOverCenterRight) {
|
|
263
|
+
// Start shifting the label to the left (positive offset)
|
|
264
|
+
pixelOffset = overflow.isOverCenterRight;
|
|
265
|
+
}
|
|
266
|
+
var percentageOffset = pixelOffset / tooltipWidth * -1;
|
|
267
|
+
var offsetBoundaryPercentage = getLabelUnavailableSpace(tooltipWidth);
|
|
268
|
+
var cappedPercentageOffset = Math.max(offsetBoundaryPercentage * -1, Math.min(offsetBoundaryPercentage, percentageOffset));
|
|
269
|
+
return cappedPercentageOffset;
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
return null;
|
|
273
|
+
};
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = exports.FeedbackBase = exports.Feedback = void 0;
|
|
7
|
+
var _kind = _interopRequireDefault(require("@enact/core/kind"));
|
|
8
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
|
+
var _util = require("../internal/util");
|
|
10
|
+
var _FeedbackIcon = _interopRequireDefault(require("./FeedbackIcon"));
|
|
11
|
+
var _FeedbackIcons = _interopRequireDefault(require("./FeedbackIcons.js"));
|
|
12
|
+
var _FeedbackModule = _interopRequireDefault(require("./Feedback.module.css"));
|
|
13
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
14
|
+
var _excluded = ["children", "playbackState"];
|
|
15
|
+
/**
|
|
16
|
+
* Feedback {@link limestone/VideoPlayer}. This displays the media's playback rate and other
|
|
17
|
+
* information.
|
|
18
|
+
*
|
|
19
|
+
* @class Feedback
|
|
20
|
+
* @memberof limestone/VideoPlayer
|
|
21
|
+
* @ui
|
|
22
|
+
* @private
|
|
23
|
+
*/
|
|
24
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
25
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
26
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
27
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
28
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
29
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
30
|
+
function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
|
|
31
|
+
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
|
|
32
|
+
var FeedbackBase = exports.FeedbackBase = (0, _kind["default"])({
|
|
33
|
+
name: 'Feedback',
|
|
34
|
+
propTypes: /** @lends limestone/VideoPlayer.Feedback.prototype */{
|
|
35
|
+
children: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]),
|
|
36
|
+
/**
|
|
37
|
+
* Refers to one of the following possible media playback states.
|
|
38
|
+
* `'play'`, `'pause'`, `'rewind'`, `'fastForward'` ,
|
|
39
|
+
* `'jumpBackward'`, `'jumpForward'`, `'jumpToStart'`, `'jumpToEnd'`, `'stop'`.
|
|
40
|
+
*
|
|
41
|
+
* Each state understands where its related icon should be positioned, and whether it should
|
|
42
|
+
* respond to changes to the `visible` property.
|
|
43
|
+
*
|
|
44
|
+
* This string feeds directly into {@link limestone/FeedbackIcon.FeedbackIcon}.
|
|
45
|
+
*
|
|
46
|
+
* @type {('play'|'pause'|'rewind'|'fastForward'|'jumpBackward'|'jumpForward'|'jumpToStart'|'jumpToEnd'|'stop')}
|
|
47
|
+
* @public
|
|
48
|
+
*/
|
|
49
|
+
playbackState: _propTypes["default"].oneOf(Object.keys(_FeedbackIcons["default"])),
|
|
50
|
+
/**
|
|
51
|
+
* If the current `playbackState` allows this component's visibility to be changed,
|
|
52
|
+
* this component will be hidden. If not, setting this property will have no effect.
|
|
53
|
+
* All `playbackState`s respond to this property except the following:
|
|
54
|
+
* `'rewind'`, `'fastForward'`.
|
|
55
|
+
*
|
|
56
|
+
* @type {Boolean}
|
|
57
|
+
* @default true
|
|
58
|
+
* @public
|
|
59
|
+
*/
|
|
60
|
+
visible: _propTypes["default"].bool
|
|
61
|
+
},
|
|
62
|
+
defaultProps: {
|
|
63
|
+
visible: true
|
|
64
|
+
},
|
|
65
|
+
styles: {
|
|
66
|
+
css: _FeedbackModule["default"],
|
|
67
|
+
className: 'feedback'
|
|
68
|
+
},
|
|
69
|
+
computed: {
|
|
70
|
+
className: function className(_ref) {
|
|
71
|
+
var styler = _ref.styler,
|
|
72
|
+
visible = _ref.visible;
|
|
73
|
+
return styler.append({
|
|
74
|
+
hidden: !visible
|
|
75
|
+
});
|
|
76
|
+
},
|
|
77
|
+
children: function children(_ref2) {
|
|
78
|
+
var _children = _ref2.children,
|
|
79
|
+
s = _ref2.playbackState;
|
|
80
|
+
if (_FeedbackIcons["default"][s]) {
|
|
81
|
+
// Working with a known state, treat `children` as playbackRate
|
|
82
|
+
if (_FeedbackIcons["default"][s].message && _children !== 1) {
|
|
83
|
+
// `1` represents a playback rate of 1:1
|
|
84
|
+
return _children.toString().replace(/^-/, '') + _FeedbackIcons["default"][s].message;
|
|
85
|
+
}
|
|
86
|
+
} else {
|
|
87
|
+
// Custom Message
|
|
88
|
+
return _children;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
},
|
|
92
|
+
render: function render(_ref3) {
|
|
93
|
+
var children = _ref3.children,
|
|
94
|
+
playbackState = _ref3.playbackState,
|
|
95
|
+
rest = _objectWithoutProperties(_ref3, _excluded);
|
|
96
|
+
delete rest.visible;
|
|
97
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", _objectSpread(_objectSpread({}, rest), {}, {
|
|
98
|
+
children: [_FeedbackIcons["default"][playbackState] && _FeedbackIcons["default"][playbackState].position === 'before' ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_FeedbackIcon["default"], {
|
|
99
|
+
children: playbackState
|
|
100
|
+
}) : null, children ? /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
101
|
+
className: _FeedbackModule["default"].message,
|
|
102
|
+
children: children
|
|
103
|
+
}) : null, _FeedbackIcons["default"][playbackState] && _FeedbackIcons["default"][playbackState].position === 'after' ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_FeedbackIcon["default"], {
|
|
104
|
+
children: playbackState
|
|
105
|
+
}) : null]
|
|
106
|
+
}));
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
var Feedback = exports.Feedback = (0, _util.onlyUpdateForProps)(FeedbackBase, ['children', 'playbackState', 'visible']);
|
|
110
|
+
var _default = exports["default"] = Feedback;
|