@oracle/oraclejet-preact 18.0.0 → 18.0.2
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/amd/InputDatePicker-18e2546b.js +2 -0
- package/amd/{InputDatePicker-fc39f0a6.js.map → InputDatePicker-18e2546b.js.map} +1 -1
- package/amd/ReadonlyTextFieldVariants.styles.css +20 -20
- package/amd/ReadonlyTextFieldVariants.styles2.css +20 -20
- package/amd/Theme-redwood/theme.css +142 -142
- package/amd/Theme-stable/theme.css +216 -216
- package/amd/UNSAFE_InputDateMask.js +1 -1
- package/amd/UNSAFE_InputDatePicker.js +1 -1
- package/amd/UNSAFE_InputPassword.js +1 -1
- package/amd/UNSAFE_InputSensitiveText.js +1 -1
- package/amd/UNSAFE_InputSensitiveText.js.map +1 -1
- package/amd/UNSAFE_InputText.js +1 -1
- package/amd/UNSAFE_InputTimeMask.js +1 -1
- package/amd/UNSAFE_InputTimeMask.js.map +1 -1
- package/amd/UNSAFE_LabelledLink.js +1 -1
- package/amd/UNSAFE_LabelledLink.js.map +1 -1
- package/amd/UNSAFE_NumberInputText.js +1 -1
- package/amd/UNSAFE_SelectMultiple.js +1 -1
- package/amd/UNSAFE_SelectSingle.js +1 -1
- package/amd/UNSAFE_TextArea.js +1 -1
- package/amd/UNSAFE_TextAreaAutosize.js +1 -1
- package/amd/UNSAFE_TextField/themes/redwood/ReadonlyTextFieldTheme.js +1 -1
- package/amd/UNSAFE_TextField/themes/redwood/ReadonlyTextFieldTheme.js.map +1 -1
- package/amd/UNSAFE_TextField/themes/redwood/ReadonlyTextFieldVariants.css.js +1 -1
- package/amd/UNSAFE_TextField/themes/stable/ReadonlyTextFieldTheme.js +1 -1
- package/amd/UNSAFE_TextField/themes/stable/ReadonlyTextFieldTheme.js.map +1 -1
- package/amd/UNSAFE_TextField/themes/stable/ReadonlyTextFieldVariants.css.js +1 -1
- package/amd/UNSAFE_TextField.js +1 -1
- package/cjs/ActionCard-61b21d6c.js +1 -1
- package/cjs/{BarChart-ca7f8ed5.js → BarChart-93a3813c.js} +3 -3
- package/cjs/{BarChart-ca7f8ed5.js.map → BarChart-93a3813c.js.map} +1 -1
- package/cjs/BarGroup-4a24a995.js +1 -1
- package/cjs/BaseButton-3a0bf8e4.js +2 -2
- package/cjs/BaseCardView-ade994f5.js +7 -7
- package/cjs/{BaseCardViewSelectionTest-df948f2c.js → BaseCardViewSelectionTest-c6f05079.js} +7 -7
- package/cjs/{BaseCardViewSelectionTest-df948f2c.js.map → BaseCardViewSelectionTest-c6f05079.js.map} +1 -1
- package/cjs/{useNavigationListItem-ae481fdc.js → BaseNavigationListItem-50e4c603.js} +40 -2
- package/cjs/BaseNavigationListItem-50e4c603.js.map +1 -0
- package/cjs/BaseRichSelection-e73cac1d.js +8 -8
- package/cjs/ButtonSet-90db1168.js +2 -2
- package/cjs/ButtonSetIconButton-f3b4a721.js +3 -3
- package/cjs/{Card-a6693442.js → Card-a0dadf5f.js} +2 -2
- package/cjs/{Card-a6693442.js.map → Card-a0dadf5f.js.map} +1 -1
- package/cjs/{Center-c0baccb0.js → Center-9f407cb2.js} +2 -2
- package/cjs/{Center-c0baccb0.js.map → Center-9f407cb2.js.map} +1 -1
- package/cjs/{Chart-fbbd3329.js → Chart-40d95d14.js} +10 -10
- package/cjs/{Chart-fbbd3329.js.map → Chart-40d95d14.js.map} +1 -1
- package/cjs/CheckboxControl-5beb656d.js +6 -6
- package/cjs/CheckboxRadioField-0d5c9def.js +6 -6
- package/cjs/Chip-f12bb8cd.js +1 -1
- package/cjs/ClearIcon-edcc3f6e.js +1 -1
- package/cjs/CollapseIcon-2394e7ea.js +1 -1
- package/cjs/Collapsible-41311eb0.js +2 -2
- package/cjs/{ComboChart-95863e7a.js → ComboChart-cffd0759.js} +4 -4
- package/cjs/{ComboChart-95863e7a.js.map → ComboChart-cffd0759.js.map} +1 -1
- package/cjs/CompactHelpSource-61ead0c7.js +2 -2
- package/cjs/{CompactLabelAssistance-fd841834.js → CompactLabelAssistance-ec1e72af.js} +5 -5
- package/cjs/{CompactLabelAssistance-fd841834.js.map → CompactLabelAssistance-ec1e72af.js.map} +1 -1
- package/cjs/CompactUserAssistance-391bf7ca.js +4 -4
- package/cjs/ComponentMessageContainer-24e79106.js +4 -4
- package/cjs/ConveyorBeltItem-ac146ef0.js +2 -2
- package/cjs/{DatePicker-65b047ad.js → DatePicker-d99097e4.js} +6 -6
- package/cjs/{DatePicker-65b047ad.js.map → DatePicker-d99097e4.js.map} +1 -1
- package/cjs/DatePickerHeader-0938a3aa.js +3 -3
- package/cjs/{Diagram-2e66a8cb.js → Diagram-aceccb23.js} +5 -5
- package/cjs/{Diagram-2e66a8cb.js.map → Diagram-aceccb23.js.map} +1 -1
- package/cjs/{Dialog-4160338c.js → Dialog-2219a24f.js} +8 -8
- package/cjs/{Dialog-4160338c.js.map → Dialog-2219a24f.js.map} +1 -1
- package/cjs/DirectionalCollapseArrowIcon-0cf2279a.js +1 -1
- package/cjs/DirectionalExpandArrowIcon-a362cb2f.js +1 -1
- package/cjs/{DragHandle-67b6118b.js → DragHandle-951c36ef.js} +2 -2
- package/cjs/{DragHandle-67b6118b.js.map → DragHandle-951c36ef.js.map} +1 -1
- package/cjs/{Dropdown-34b8f141.js → Dropdown-00e73e4d.js} +5 -5
- package/cjs/{Dropdown-34b8f141.js.map → Dropdown-00e73e4d.js.map} +1 -1
- package/cjs/{EnvironmentProvider-75eb79f3.js → EnvironmentProvider-bfd5febc.js} +3 -3
- package/cjs/{EnvironmentProvider-75eb79f3.js.map → EnvironmentProvider-bfd5febc.js.map} +1 -1
- package/cjs/ExpandableList-be84ca8e.js +3 -3
- package/cjs/FilePicker-f93470cf.js +2 -2
- package/cjs/{Flex-e7a85bef.js → Flex-ce16a2fa.js} +2 -2
- package/cjs/{Flex-e7a85bef.js.map → Flex-ce16a2fa.js.map} +1 -1
- package/cjs/{Floating-56621d20.js → Floating-3a80c067.js} +4 -4
- package/cjs/{Floating-56621d20.js.map → Floating-3a80c067.js.map} +1 -1
- package/cjs/FormLayout-86e60b6c.js +1 -1
- package/cjs/Gantt-7b6b99a0.js +9 -9
- package/cjs/{Grid-a7316edd.js → Grid-b8fadf4a.js} +2 -2
- package/cjs/{Grid-a7316edd.js.map → Grid-b8fadf4a.js.map} +1 -1
- package/cjs/{Gridlines-ef3af190.js → Gridlines-22c46764.js} +2 -2
- package/cjs/{Gridlines-ef3af190.js.map → Gridlines-22c46764.js.map} +1 -1
- package/cjs/GroupLoadingIndicator-5940d185.js +1 -1
- package/cjs/{HighlightText-dd11dd32.js → HighlightText-2061d12d.js} +2 -2
- package/cjs/{HighlightText-dd11dd32.js.map → HighlightText-2061d12d.js.map} +1 -1
- package/cjs/Icon-c024b93c.js +3 -3
- package/cjs/IconButton-28559efb.js +3 -3
- package/cjs/IconMenuButton-2a108d43.js +3 -3
- package/cjs/IconProgressButton-01d95e57.js +3 -3
- package/cjs/IconSwitchButton-a1016218.js +3 -3
- package/cjs/IconToggleButton-52f6f126.js +3 -3
- package/cjs/{IconUserAssistance-52208fde.js → IconUserAssistance-3faf6a09.js} +3 -3
- package/cjs/{IconUserAssistance-52208fde.js.map → IconUserAssistance-3faf6a09.js.map} +1 -1
- package/cjs/Indexer-72430806.js +4 -4
- package/cjs/InlineHelpSource-0549100d.js +1 -1
- package/cjs/InlineUserAssistance-820162f4.js +5 -5
- package/cjs/InputDateMask-a7575cef.js +7 -7
- package/cjs/{InputDatePicker-bc2c534a.js → InputDatePicker-4d36637f.js} +10 -10
- package/cjs/{InputDatePicker-bc2c534a.js.map → InputDatePicker-4d36637f.js.map} +1 -1
- package/cjs/InputPassword-eb6d227b.js +4 -4
- package/cjs/InputText-a9c423c3.js +6 -6
- package/cjs/Label-e0d15892.js +5 -5
- package/cjs/LabelValueLayout-4049c1a1.js +1 -1
- package/cjs/{Layer-0053053a.js → Layer-49394ca6.js} +3 -3
- package/cjs/{Layer-0053053a.js.map → Layer-49394ca6.js.map} +1 -1
- package/cjs/{LayerHost-a8c7f182.js → LayerHost-7182bfaf.js} +2 -2
- package/cjs/{LayerHost-a8c7f182.js.map → LayerHost-7182bfaf.js.map} +1 -1
- package/cjs/{LayerManager-2d0b83ac.js → LayerManager-db087520.js} +2 -2
- package/cjs/{LayerManager-2d0b83ac.js.map → LayerManager-db087520.js.map} +1 -1
- package/cjs/Legend-33a7824e.js +3 -3
- package/cjs/{LineAreaChart-4a54a017.js → LineAreaChart-57408e94.js} +4 -4
- package/cjs/{LineAreaChart-4a54a017.js.map → LineAreaChart-57408e94.js.map} +1 -1
- package/cjs/{LineSeries-0e984080.js → LineSeries-995be81c.js} +2 -2
- package/cjs/{LineSeries-0e984080.js.map → LineSeries-995be81c.js.map} +1 -1
- package/cjs/Link-b8435440.js +1 -1
- package/cjs/List-0dc2c4c4.js +5 -5
- package/cjs/{ListItemLayout-ec53f199.js → ListItemLayout-bc581097.js} +2 -2
- package/cjs/{ListItemLayout-ec53f199.js.map → ListItemLayout-bc581097.js.map} +1 -1
- package/cjs/ListView-17b8250d.js +3 -3
- package/cjs/{LiveRegion-567427c5.js → LiveRegion-3bc583c6.js} +2 -2
- package/cjs/{LiveRegion-567427c5.js.map → LiveRegion-3bc583c6.js.map} +1 -1
- package/cjs/{MaxLengthLiveRegion-f03f07c6.js → MaxLengthLiveRegion-5e31c44e.js} +3 -3
- package/cjs/{MaxLengthLiveRegion-f03f07c6.js.map → MaxLengthLiveRegion-5e31c44e.js.map} +1 -1
- package/cjs/Menu-658212ed.js +6 -6
- package/cjs/MenuButton-1599ce50.js +2 -2
- package/cjs/MenuItem-c459d748.js +1 -1
- package/cjs/Message-33a66325.js +2 -2
- package/cjs/{MessageLayer-f9aa9828.js → MessageLayer-fc21a223.js} +6 -6
- package/cjs/{MessageLayer-f9aa9828.js.map → MessageLayer-fc21a223.js.map} +1 -1
- package/cjs/MessageToast-0b1d66ed.js +8 -8
- package/cjs/MessagesManager-1ae749bf.js +3 -3
- package/cjs/MeterBar-0adbe81a.js +5 -5
- package/cjs/MeterCircle-97a75b35.js +5 -5
- package/cjs/{Modal-b9987f2d.js → Modal-76b3a4d9.js} +3 -3
- package/cjs/{Modal-b9987f2d.js.map → Modal-76b3a4d9.js.map} +1 -1
- package/cjs/{MonthView-9c2819f0.js → MonthView-458d3d61.js} +4 -4
- package/cjs/{MonthView-9c2819f0.js.map → MonthView-458d3d61.js.map} +1 -1
- package/cjs/{NavigationList-7495908b.js → NavigationListItem-4c4e804d.js} +23 -5
- package/cjs/NavigationListItem-4c4e804d.js.map +1 -0
- package/cjs/NumberInputText-3f25f408.js +6 -6
- package/cjs/{OverflowTabBar-e92bab53.js → OverflowTabBar-428798a0.js} +3 -3
- package/cjs/{OverflowTabBar-e92bab53.js.map → OverflowTabBar-428798a0.js.map} +1 -1
- package/cjs/{OverflowTabBarItem-5820e1fa.js → OverflowTabBarItem-3c7adb01.js} +7 -8
- package/cjs/{OverflowTabBarItem-5820e1fa.js.map → OverflowTabBarItem-3c7adb01.js.map} +1 -1
- package/cjs/PRIVATE_BaseCardView.js +22 -22
- package/cjs/PRIVATE_Chart.js +35 -35
- package/cjs/PRIVATE_CheckboxControl.js +23 -23
- package/cjs/PRIVATE_CheckboxRadioField.js +24 -24
- package/cjs/PRIVATE_ClearIcon.js +18 -18
- package/cjs/PRIVATE_DatePickerHeader.js +19 -19
- package/cjs/PRIVATE_DatePickerLayout.js +4 -4
- package/cjs/PRIVATE_EmbeddedIconButton.js +3 -3
- package/cjs/PRIVATE_FormControls.js +19 -19
- package/cjs/PRIVATE_IconSwitchButton.js +16 -16
- package/cjs/PRIVATE_Icons/CheckboxMixed.js +16 -16
- package/cjs/PRIVATE_Icons/CheckboxOff.js +16 -16
- package/cjs/PRIVATE_Icons/CheckboxOn.js +16 -16
- package/cjs/PRIVATE_Icons/DragV.js +16 -16
- package/cjs/PRIVATE_Icons/WarningS.js +16 -16
- package/cjs/PRIVATE_List.js +20 -20
- package/cjs/PRIVATE_Message.js +19 -19
- package/cjs/PRIVATE_MessageLayer.js +12 -12
- package/cjs/PRIVATE_MonthView.js +7 -7
- package/cjs/PRIVATE_MonthYearGridView.js +7 -7
- package/cjs/PRIVATE_PlotArea.js +4 -4
- package/cjs/PRIVATE_RevealToggleIcon.js +17 -17
- package/cjs/PRIVATE_RichSelectionCommon.js +25 -25
- package/cjs/PRIVATE_SelectCommon.js +28 -28
- package/cjs/PRIVATE_StyledCard.js +4 -4
- package/cjs/PRIVATE_StyledCheckbox.js +16 -16
- package/cjs/PRIVATE_Table.js +24 -24
- package/cjs/PRIVATE_ThemedIcons/CalendarIcon.js +16 -16
- package/cjs/PRIVATE_ThemedIcons/ChartMarqueeSelectIcon.js +16 -16
- package/cjs/PRIVATE_ThemedIcons/ChartPanIcon.js +16 -16
- package/cjs/PRIVATE_ThemedIcons/ChartZoomIcon.js +16 -16
- package/cjs/PRIVATE_ThemedIcons/CheckIcon.js +16 -16
- package/cjs/PRIVATE_ThemedIcons/CheckboxMixedIcon.js +16 -16
- package/cjs/PRIVATE_ThemedIcons/CheckboxOffIcon.js +16 -16
- package/cjs/PRIVATE_ThemedIcons/CheckboxOnIcon.js +16 -16
- package/cjs/PRIVATE_ThemedIcons/CloseIcon.js +16 -16
- package/cjs/PRIVATE_ThemedIcons/CollapseIcon.js +17 -17
- package/cjs/PRIVATE_ThemedIcons/CollapseUpIcon.js +16 -16
- package/cjs/PRIVATE_ThemedIcons/DecrementIcon.js +16 -16
- package/cjs/PRIVATE_ThemedIcons/DeleteIcon.js +16 -16
- package/cjs/PRIVATE_ThemedIcons/DirectionalCollapseArrowIcon.js +17 -17
- package/cjs/PRIVATE_ThemedIcons/DirectionalExpandArrowIcon.js +17 -17
- package/cjs/PRIVATE_ThemedIcons/DragHandleIcon.js +16 -16
- package/cjs/PRIVATE_ThemedIcons/DropdownArrowIcon.js +16 -16
- package/cjs/PRIVATE_ThemedIcons/ExpandIcon.js +16 -16
- package/cjs/PRIVATE_ThemedIcons/HelpIcon.js +16 -16
- package/cjs/PRIVATE_ThemedIcons/IncrementIcon.js +16 -16
- package/cjs/PRIVATE_ThemedIcons/MenuButtonDropdownIcon.js +16 -16
- package/cjs/PRIVATE_ThemedIcons/MessageConfirmationIcon.js +16 -16
- package/cjs/PRIVATE_ThemedIcons/MessageErrorIcon.js +16 -16
- package/cjs/PRIVATE_ThemedIcons/MessageInfoIcon.js +16 -16
- package/cjs/PRIVATE_ThemedIcons/MessageWarningIcon.js +16 -16
- package/cjs/PRIVATE_ThemedIcons/MinusIcon.js +16 -16
- package/cjs/PRIVATE_ThemedIcons/NavDownIcon.js +16 -16
- package/cjs/PRIVATE_ThemedIcons/OverviewHorizontalDragHandleIcon.js +16 -16
- package/cjs/PRIVATE_ThemedIcons/PlusIcon.js +16 -16
- package/cjs/PRIVATE_ThemedIcons/RadioOffIcon.js +16 -16
- package/cjs/PRIVATE_ThemedIcons/RadioOnIcon.js +16 -16
- package/cjs/PRIVATE_ThemedIcons/SortAscendingIcon.js +16 -16
- package/cjs/PRIVATE_ThemedIcons/SortDescendingIcon.js +16 -16
- package/cjs/PRIVATE_ThemedIcons/ViewHideIcon.js +16 -16
- package/cjs/PRIVATE_ThemedIcons/ViewIcon.js +16 -16
- package/cjs/PRIVATE_TimeComponent.js +18 -18
- package/cjs/PRIVATE_VisOverview.js +16 -16
- package/cjs/PRIVATE_VisTabularDatatip.js +4 -4
- package/cjs/PictoChart-292f6c54.js +6 -6
- package/cjs/PieChart-411377a1.js +6 -6
- package/cjs/{Popup-84ce41d3.js → Popup-3e6b37ba.js} +9 -9
- package/cjs/{Popup-84ce41d3.js.map → Popup-3e6b37ba.js.map} +1 -1
- package/cjs/{ProgressBar-aa9edb7a.js → ProgressBar-ee008afc.js} +3 -3
- package/cjs/{ProgressBar-aa9edb7a.js.map → ProgressBar-ee008afc.js.map} +1 -1
- package/cjs/ProgressButton-433a67b5.js +3 -3
- package/cjs/ProgressButtonLabelLayout-13908869.js +3 -3
- package/cjs/{ProgressCircle-1d9fbade.js → ProgressCircle-e91f65f3.js} +2 -2
- package/cjs/{ProgressCircle-1d9fbade.js.map → ProgressCircle-e91f65f3.js.map} +1 -1
- package/cjs/RadioItem-c6ada23a.js +6 -6
- package/cjs/RatingGauge-4f129f42.js +7 -7
- package/cjs/ReadonlyTextFieldInput-af4ddced.js +1 -1
- package/cjs/{RemovableNavigationListItem-39312f9c.js → RemovableNavigationListItem-0eea31bc.js} +4 -5
- package/cjs/{RemovableNavigationListItem-39312f9c.js.map → RemovableNavigationListItem-0eea31bc.js.map} +1 -1
- package/cjs/RemovableTabBarItem-ff408dff.js +2 -2
- package/cjs/{ReorderableTabBar-5614d872.js → ReorderableTabBar-344938e7.js} +5 -5
- package/cjs/{ReorderableTabBar-5614d872.js.map → ReorderableTabBar-344938e7.js.map} +1 -1
- package/cjs/RevealToggleIcon-2e88a00a.js +1 -1
- package/cjs/{ScatterChart-80ef4bee.js → ScatterChart-763e1f3e.js} +4 -4
- package/cjs/{ScatterChart-80ef4bee.js.map → ScatterChart-763e1f3e.js.map} +1 -1
- package/cjs/SectionalLegend-da9d7dc4.js +4 -4
- package/cjs/{SectionedContent-06dc071c.js → SectionedContent-2210037c.js} +5 -5
- package/cjs/{SectionedContent-06dc071c.js.map → SectionedContent-2210037c.js.map} +1 -1
- package/cjs/SelectMultiple-b1f05b9f.js +8 -8
- package/cjs/SelectSingle-84b0b3eb.js +7 -7
- package/cjs/{SelectionCard-67f7003e.js → SelectionCard-e26feb4d.js} +2 -2
- package/cjs/{SelectionCard-67f7003e.js.map → SelectionCard-e26feb4d.js.map} +1 -1
- package/cjs/Selector-565b3810.js +1 -1
- package/cjs/{SelectorAll-b55e1b61.js → SelectorAll-e81b943f.js} +7 -7
- package/cjs/{SelectorAll-b55e1b61.js.map → SelectorAll-e81b943f.js.map} +1 -1
- package/cjs/{Sheet-86989265.js → Sheet-73cb51b2.js} +3 -3
- package/cjs/{Sheet-86989265.js.map → Sheet-73cb51b2.js.map} +1 -1
- package/cjs/SplitMenuButton-de680884.js +2 -2
- package/cjs/{StyledCard-a0496c88.js → StyledCard-f6b7f046.js} +2 -2
- package/cjs/{StyledCard-a0496c88.js.map → StyledCard-f6b7f046.js.map} +1 -1
- package/cjs/StyledTextField-3289e35c.js +3 -3
- package/cjs/{TabBar-bcf66387.js → TabBar-bf94b95a.js} +6 -11
- package/cjs/{TabBar-bcf66387.js.map → TabBar-bf94b95a.js.map} +1 -1
- package/cjs/TabBarItem-00fcf601.js +3 -3
- package/cjs/TabBarLayout-846a4d9a.js +1 -1
- package/cjs/{TabBarMixed-ac642788.js → TabBarMixed-975141a6.js} +6 -11
- package/cjs/{TabBarMixed-ac642788.js.map → TabBarMixed-975141a6.js.map} +1 -1
- package/cjs/{TabBarMixedSeparator-0e258647.js → TabBarMixedSeparator-0f55c6f6.js} +2 -2
- package/cjs/{TabBarMixedSeparator-0e258647.js.map → TabBarMixedSeparator-0f55c6f6.js.map} +1 -1
- package/cjs/Table-90fe7ad8.js +9 -9
- package/cjs/TagCloud-ff6f5158.js +8 -8
- package/cjs/{TextArea-e7f98e9f.js → TextArea-4c8f0284.js} +27 -9
- package/{es/TextArea-64b4e972.js.map → cjs/TextArea-4c8f0284.js.map} +1 -1
- package/cjs/{TextAreaAutosize-d96c7038.js → TextAreaAutosize-466a21cc.js} +8 -8
- package/cjs/{TextAreaAutosize-d96c7038.js.map → TextAreaAutosize-466a21cc.js.map} +1 -1
- package/cjs/TextField-976ee745.js +3 -3
- package/cjs/TextFieldInput-e83921a4.js +1 -1
- package/cjs/Theme-redwood/theme.css +221 -221
- package/cjs/Theme-stable/theme.css +307 -307
- package/cjs/TimeComponentCanvas2D-952a80c3.js +5 -5
- package/cjs/Toolbar-f94296cb.js +1 -1
- package/cjs/{TruncatingBadge-efe34bb7.js → TruncatingBadge-3a82f13b.js} +4 -4
- package/cjs/{TruncatingBadge-efe34bb7.js.map → TruncatingBadge-3a82f13b.js.map} +1 -1
- package/cjs/{TruncatingText-33c06a6c.js → TruncatingText-df3db482.js} +4 -4
- package/cjs/{TruncatingText-33c06a6c.js.map → TruncatingText-df3db482.js.map} +1 -1
- package/cjs/UNSAFE_ActionCard.js +3 -3
- package/cjs/UNSAFE_BarChart/__test__/BarChart.spec.js +36 -36
- package/cjs/UNSAFE_BarChart.js +36 -36
- package/cjs/UNSAFE_BaseButton.js +3 -3
- package/cjs/UNSAFE_Button.js +3 -3
- package/cjs/UNSAFE_ButtonLayout/tests/ButtonLayout.spec.js +21 -21
- package/cjs/UNSAFE_ButtonSet.js +4 -4
- package/cjs/UNSAFE_ButtonSetButton.js +3 -3
- package/cjs/UNSAFE_ButtonSetIconButton.js +16 -16
- package/cjs/UNSAFE_ButtonSetItem.js +16 -16
- package/cjs/UNSAFE_ButtonSetMultiple.js +4 -4
- package/cjs/UNSAFE_ButtonSetSingle.js +4 -4
- package/cjs/UNSAFE_Card.js +5 -5
- package/cjs/UNSAFE_CardFlexView.js +22 -22
- package/cjs/UNSAFE_CardGridView.js +22 -22
- package/cjs/UNSAFE_Center.js +5 -5
- package/cjs/UNSAFE_ChartWithLegend.js +4 -4
- package/cjs/UNSAFE_Checkbox.js +23 -23
- package/cjs/UNSAFE_CheckboxItem.js +24 -24
- package/cjs/UNSAFE_CheckboxSet.js +23 -23
- package/cjs/UNSAFE_Chip.js +2 -2
- package/cjs/UNSAFE_Collapsible.js +18 -18
- package/cjs/UNSAFE_ComboChart.js +38 -38
- package/cjs/UNSAFE_ComponentMessage.js +19 -19
- package/cjs/UNSAFE_ConveyorBelt.js +16 -16
- package/cjs/UNSAFE_DatePicker.js +24 -24
- package/cjs/UNSAFE_Diagram.js +21 -21
- package/cjs/UNSAFE_Dialog.js +21 -21
- package/cjs/UNSAFE_DragHandle.js +18 -18
- package/cjs/UNSAFE_DrawerLayout.js +12 -12
- package/cjs/UNSAFE_DrawerPopup.js +11 -11
- package/cjs/UNSAFE_Dropdown.js +13 -13
- package/cjs/UNSAFE_Environment.js +4 -4
- package/cjs/UNSAFE_ExpandableList.js +23 -23
- package/cjs/UNSAFE_FilePicker.js +4 -4
- package/cjs/UNSAFE_Flex.js +4 -4
- package/cjs/UNSAFE_Floating.js +11 -11
- package/cjs/UNSAFE_FormLayout.js +2 -2
- package/cjs/UNSAFE_Gantt.js +23 -23
- package/cjs/UNSAFE_Grid.js +4 -4
- package/cjs/UNSAFE_HighlightText.js +4 -4
- package/cjs/UNSAFE_Icon.js +16 -16
- package/cjs/UNSAFE_IconButton.js +16 -16
- package/cjs/UNSAFE_IconMenuButton.js +21 -21
- package/cjs/UNSAFE_IconProgressButton.js +19 -19
- package/cjs/UNSAFE_IconToggleButton.js +16 -16
- package/cjs/UNSAFE_Indexer.js +6 -6
- package/cjs/UNSAFE_InputDateMask.js +24 -24
- package/cjs/UNSAFE_InputDatePicker.js +112 -112
- package/cjs/UNSAFE_InputPassword.js +23 -23
- package/cjs/UNSAFE_InputSensitiveText.js +25 -25
- package/cjs/UNSAFE_InputText.js +26 -26
- package/cjs/UNSAFE_InputTimeMask.js +24 -24
- package/cjs/UNSAFE_Label.js +23 -23
- package/cjs/UNSAFE_LabelValueLayout.js +4 -4
- package/cjs/UNSAFE_LabelledLink.js +24 -24
- package/cjs/UNSAFE_Layer.js +8 -8
- package/cjs/UNSAFE_Legend.js +24 -24
- package/cjs/UNSAFE_LineAreaChart.js +38 -38
- package/cjs/UNSAFE_Link.js +2 -2
- package/cjs/UNSAFE_ListItemLayout.js +5 -5
- package/cjs/UNSAFE_ListView.js +28 -28
- package/cjs/UNSAFE_LiveRegion.js +4 -4
- package/cjs/UNSAFE_Menu.js +23 -23
- package/cjs/UNSAFE_MenuButton.js +21 -21
- package/cjs/UNSAFE_MessageBanner.js +19 -19
- package/cjs/UNSAFE_MessageToast.js +22 -22
- package/cjs/UNSAFE_MeterBar.js +16 -16
- package/cjs/UNSAFE_MeterCircle.js +17 -17
- package/cjs/UNSAFE_Modal.js +8 -8
- package/cjs/UNSAFE_NavigationList.js +34 -36
- package/cjs/UNSAFE_NavigationList.js.map +1 -1
- package/cjs/UNSAFE_NavigationListCommon.js +70 -71
- package/cjs/UNSAFE_NavigationListCommon.js.map +1 -1
- package/cjs/UNSAFE_NumberInputText.js +25 -25
- package/cjs/UNSAFE_OverflowTabBar.js +50 -52
- package/cjs/UNSAFE_OverflowTabBar.js.map +1 -1
- package/cjs/UNSAFE_PictoChart.js +14 -14
- package/cjs/UNSAFE_PieChart/__test__/PieChart.spec.js +21 -21
- package/cjs/UNSAFE_PieChart.js +21 -21
- package/cjs/UNSAFE_Popup.js +16 -16
- package/cjs/UNSAFE_ProgressBar.js +5 -5
- package/cjs/UNSAFE_ProgressButton.js +19 -19
- package/cjs/UNSAFE_ProgressButtonLabelLayout.js +10 -10
- package/cjs/UNSAFE_ProgressCircle.js +4 -4
- package/cjs/UNSAFE_RadioItem.js +23 -23
- package/cjs/UNSAFE_RadioSet.js +23 -23
- package/cjs/UNSAFE_RatingGauge.js +17 -17
- package/cjs/UNSAFE_ReorderableTabBar.js +37 -48
- package/cjs/UNSAFE_ReorderableTabBar.js.map +1 -1
- package/cjs/UNSAFE_RichCheckboxSet.js +25 -25
- package/cjs/UNSAFE_RichRadioSet.js +25 -25
- package/cjs/UNSAFE_RichSelectionItem.js +27 -27
- package/cjs/UNSAFE_ScatterChart.js +38 -38
- package/cjs/UNSAFE_SectionalLegend.js +25 -25
- package/cjs/UNSAFE_SelectMultiple.js +30 -30
- package/cjs/UNSAFE_SelectSingle.js +30 -30
- package/cjs/UNSAFE_SelectionCard.js +5 -5
- package/cjs/UNSAFE_Selector.js +16 -16
- package/cjs/UNSAFE_SelectorAll.js +20 -20
- package/cjs/UNSAFE_Sheet/__test__/Sheet.spec.js +14 -14
- package/cjs/UNSAFE_Sheet.js +11 -11
- package/cjs/UNSAFE_SplitMenuButton.js +21 -21
- package/cjs/UNSAFE_TabBar.js +50 -52
- package/cjs/UNSAFE_TabBar.js.map +1 -1
- package/cjs/UNSAFE_TabBarCommon.js +42 -44
- package/cjs/UNSAFE_TabBarCommon.js.map +1 -1
- package/cjs/UNSAFE_TabBarMixed.js +59 -61
- package/cjs/UNSAFE_TabBarMixed.js.map +1 -1
- package/cjs/UNSAFE_TableView.js +24 -24
- package/cjs/UNSAFE_TagCloud.js +23 -23
- package/cjs/UNSAFE_TextArea.js +28 -29
- package/cjs/UNSAFE_TextArea.js.map +1 -1
- package/cjs/UNSAFE_TextAreaAutosize.js +28 -28
- package/cjs/UNSAFE_TextField.js +7 -7
- package/cjs/UNSAFE_ToggleButton.js +3 -3
- package/cjs/UNSAFE_Toolbar/tests/Toolbar.spec.js +23 -23
- package/cjs/UNSAFE_Toolbar.js +4 -4
- package/cjs/UNSAFE_Train.js +17 -17
- package/cjs/UNSAFE_TruncatingBadge.js +18 -18
- package/cjs/UNSAFE_TruncatingText.js +17 -17
- package/cjs/UNSAFE_UserAssistance.js +24 -24
- package/cjs/UNSAFE_View.js +7 -7
- package/cjs/UNSAFE_VirtualizedListView.js +20 -20
- package/cjs/UNSAFE_VisProgressiveLoader/__test__/VisProgressiveLoader.spec.js +8 -8
- package/cjs/UNSAFE_VisProgressiveLoader.js +6 -6
- package/cjs/UNSAFE_VisStatusMessage.js +6 -6
- package/cjs/UNSAFE_WindowOverlay.js +4 -4
- package/cjs/{View-5930179e.js → View-145a402d.js} +5 -5
- package/cjs/{View-5930179e.js.map → View-145a402d.js.map} +1 -1
- package/cjs/{VisNoData-5b2aa6a2.js → VisNoData-210b0385.js} +3 -3
- package/cjs/{VisNoData-5b2aa6a2.js.map → VisNoData-210b0385.js.map} +1 -1
- package/cjs/{VisProgressiveLoader-dacfe618.js → VisProgressiveLoader-5ed4eb9d.js} +3 -3
- package/cjs/{VisProgressiveLoader-dacfe618.js.map → VisProgressiveLoader-5ed4eb9d.js.map} +1 -1
- package/cjs/{VisTabularDatatip-eca8aa8f.js → VisTabularDatatip-a06f4ca3.js} +2 -2
- package/cjs/{VisTabularDatatip-eca8aa8f.js.map → VisTabularDatatip-a06f4ca3.js.map} +1 -1
- package/cjs/{WindowOverlay-06408f56.js → WindowOverlay-de3bd373.js} +2 -2
- package/cjs/{WindowOverlay-06408f56.js.map → WindowOverlay-de3bd373.js.map} +1 -1
- package/cjs/{YearsGridView-09f2f6c4.js → YearsGridView-e8d7a02c.js} +4 -4
- package/cjs/{YearsGridView-09f2f6c4.js.map → YearsGridView-e8d7a02c.js.map} +1 -1
- package/cjs/hoc/PRIVATE_withDirectionIcon.js +4 -4
- package/cjs/hoc/PRIVATE_withThemeIcon.js +3 -3
- package/cjs/hoc/UNSAFE_withThemeProps.js +3 -3
- package/cjs/hooks/PRIVATE_useChartContextMenu.js +20 -20
- package/cjs/hooks/PRIVATE_useChartDatatip.js +14 -14
- package/cjs/hooks/PRIVATE_useChartEvents.js +18 -18
- package/cjs/hooks/PRIVATE_useChartMarquee.js +18 -18
- package/cjs/hooks/PRIVATE_useCssVars.js +7 -7
- package/cjs/hooks/PRIVATE_useCurrentKey.js +4 -4
- package/cjs/hooks/PRIVATE_useDatatip.js +12 -12
- package/cjs/hooks/PRIVATE_useFloating.js +4 -4
- package/cjs/hooks/PRIVATE_useReorderable.js +5 -5
- package/cjs/hooks/PRIVATE_useRovingTabIndexContainer.js +4 -4
- package/cjs/hooks/PRIVATE_useSelection.js +4 -4
- package/cjs/hooks/PRIVATE_useTabBar.js +4 -4
- package/cjs/hooks/PRIVATE_useVisContextMenu.js +20 -20
- package/cjs/hooks/PRIVATE_useVisDragModeControls.js +18 -18
- package/cjs/hooks/PRIVATE_useVisEvents.js +4 -4
- package/cjs/hooks/PRIVATE_useVisMeterEvents.js +14 -14
- package/cjs/hooks/PRIVATE_useVisSelection.js +13 -13
- package/cjs/hooks/UNSAFE_useColorScheme.js +3 -3
- package/cjs/hooks/UNSAFE_useCurrentBgColor.js +3 -3
- package/cjs/hooks/UNSAFE_useDensity.js +3 -3
- package/cjs/hooks/UNSAFE_useOutsideClick.js +8 -8
- package/cjs/hooks/UNSAFE_usePrefixSuffix.js +4 -4
- package/cjs/hooks/UNSAFE_useScale.js +3 -3
- package/cjs/hooks/UNSAFE_useTestId.js +3 -3
- package/cjs/hooks/UNSAFE_useTheme.js +3 -3
- package/cjs/hooks/UNSAFE_useThemeInterpolations.js +6 -6
- package/cjs/hooks/UNSAFE_useTooltip.js +17 -17
- package/cjs/hooks/UNSAFE_useTranslationBundle.js +3 -3
- package/cjs/hooks/UNSAFE_useUser.js +3 -3
- package/cjs/{index-ce6f9627.js → index-8c93d858.js} +2 -2
- package/cjs/index-8c93d858.js.map +1 -0
- package/cjs/listViewSelectionTests-858bb12a.js +3 -3
- package/cjs/{render-9767e967.js → render-bc47fc7e.js} +3 -3
- package/cjs/{render-9767e967.js.map → render-bc47fc7e.js.map} +1 -1
- package/cjs/{tabbableUtils-a38b7148.js → tabbableUtils-b14a04ea.js} +3 -3
- package/cjs/{tabbableUtils-a38b7148.js.map → tabbableUtils-b14a04ea.js.map} +1 -1
- package/cjs/{testData-7439df49.js → testData-c996c33b.js} +3 -3
- package/cjs/{testData-7439df49.js.map → testData-c996c33b.js.map} +1 -1
- package/cjs/{tooltipUtils-669c2ae0.js → tooltipUtils-2228b0f7.js} +5 -5
- package/cjs/{tooltipUtils-669c2ae0.js.map → tooltipUtils-2228b0f7.js.map} +1 -1
- package/cjs/useCellNavigation-6f7cd4c8.js +1 -1
- package/cjs/useChartContextMenu-d114824a.js +2 -2
- package/cjs/{useChartDatatip-c6107d63.js → useChartDatatip-538a4577.js} +4 -4
- package/cjs/{useChartDatatip-c6107d63.js.map → useChartDatatip-538a4577.js.map} +1 -1
- package/cjs/{useColorScheme-ce2a88b1.js → useColorScheme-e6bef5a4.js} +2 -2
- package/cjs/{useColorScheme-ce2a88b1.js.map → useColorScheme-e6bef5a4.js.map} +1 -1
- package/cjs/useContextMenu-3ebf8f80.js +2 -2
- package/cjs/{useCssVars-bd95e715.js → useCssVars-9bea15a9.js} +5 -5
- package/cjs/{useCssVars-bd95e715.js.map → useCssVars-9bea15a9.js.map} +1 -1
- package/cjs/{useCurrentBgColor-6e39eb3a.js → useCurrentBgColor-6835bf45.js} +2 -2
- package/cjs/{useCurrentBgColor-6e39eb3a.js.map → useCurrentBgColor-6835bf45.js.map} +1 -1
- package/cjs/{useCurrentKey-88495da2.js → useCurrentKey-d8d41864.js} +2 -2
- package/cjs/{useCurrentKey-88495da2.js.map → useCurrentKey-d8d41864.js.map} +1 -1
- package/cjs/{useDatatip-83ab0540.js → useDatatip-1dda9a86.js} +4 -4
- package/cjs/{useDatatip-83ab0540.js.map → useDatatip-1dda9a86.js.map} +1 -1
- package/cjs/{useDensity-1f8cc921.js → useDensity-38283c57.js} +2 -2
- package/cjs/{useDensity-1f8cc921.js.map → useDensity-38283c57.js.map} +1 -1
- package/cjs/{useFloating-480d365a.js → useFloating-c9e127d3.js} +2 -2
- package/cjs/{useFloating-480d365a.js.map → useFloating-c9e127d3.js.map} +1 -1
- package/cjs/{useKeyboardEvents-5e808fe3.js → useKeyboardEvents-7ab0d8ee.js} +2 -2
- package/cjs/{useKeyboardEvents-5e808fe3.js.map → useKeyboardEvents-7ab0d8ee.js.map} +1 -1
- package/cjs/useLegendContextMenu-82be007a.js +4 -4
- package/cjs/{useMeterDatatip-641afcc6.js → useMeterDatatip-945883f5.js} +3 -3
- package/cjs/{useMeterDatatip-641afcc6.js.map → useMeterDatatip-945883f5.js.map} +1 -1
- package/cjs/{useOutsideClick-03a6c38c.js → useOutsideClick-ad999b14.js} +2 -2
- package/cjs/{useOutsideClick-03a6c38c.js.map → useOutsideClick-ad999b14.js.map} +1 -1
- package/cjs/{usePopupAnimation-2afacc4b.js → usePopupAnimation-b911e9ed.js} +2 -2
- package/cjs/{usePopupAnimation-2afacc4b.js.map → usePopupAnimation-b911e9ed.js.map} +1 -1
- package/cjs/{usePrefixSuffix-23341de3.js → usePrefixSuffix-1de3a724.js} +2 -2
- package/cjs/{usePrefixSuffix-23341de3.js.map → usePrefixSuffix-1de3a724.js.map} +1 -1
- package/cjs/{useReorderableItem-0dbb8843.js → useReorderableItem-5fc4d599.js} +3 -3
- package/cjs/{useReorderableItem-0dbb8843.js.map → useReorderableItem-5fc4d599.js.map} +1 -1
- package/cjs/{useRovingTabIndexContainer-dc12b802.js → useRovingTabIndexContainer-bbdf3acd.js} +2 -2
- package/cjs/{useRovingTabIndexContainer-dc12b802.js.map → useRovingTabIndexContainer-bbdf3acd.js.map} +1 -1
- package/cjs/{useScale-a681a5cb.js → useScale-a47864b4.js} +2 -2
- package/cjs/{useScale-a681a5cb.js.map → useScale-a47864b4.js.map} +1 -1
- package/cjs/useSelectCommon-5b46ac60.js +11 -11
- package/cjs/{useSelectDrill-c95b1a51.js → useSelectDrill-51fdccac.js} +3 -3
- package/cjs/{useSelectDrill-c95b1a51.js.map → useSelectDrill-51fdccac.js.map} +1 -1
- package/cjs/{useSelection-228ef3ce.js → useSelection-0dbc2f40.js} +2 -2
- package/cjs/{useSelection-228ef3ce.js.map → useSelection-0dbc2f40.js.map} +1 -1
- package/cjs/{useSelection-efdf0e84.js → useSelection-8362b6c6.js} +5 -5
- package/cjs/{useSelection-efdf0e84.js.map → useSelection-8362b6c6.js.map} +1 -1
- package/cjs/useTabBar-048ffd9f.js +1 -1
- package/cjs/{useTestId-5e6af45d.js → useTestId-e267a39d.js} +2 -2
- package/cjs/{useTestId-5e6af45d.js.map → useTestId-e267a39d.js.map} +1 -1
- package/cjs/{useTheme-8fb5546b.js → useTheme-6cedf9c8.js} +2 -2
- package/cjs/{useTheme-8fb5546b.js.map → useTheme-6cedf9c8.js.map} +1 -1
- package/cjs/{useThemeInterpolations-28ca9a13.js → useThemeInterpolations-316c1636.js} +5 -5
- package/cjs/{useThemeInterpolations-28ca9a13.js.map → useThemeInterpolations-316c1636.js.map} +1 -1
- package/cjs/{useTooltip-81b7b753.js → useTooltip-ea036f82.js} +2 -2
- package/cjs/{useTooltip-81b7b753.js.map → useTooltip-ea036f82.js.map} +1 -1
- package/cjs/{useTooltipControlled-33832163.js → useTooltipControlled-61581889.js} +5 -5
- package/cjs/{useTooltipControlled-33832163.js.map → useTooltipControlled-61581889.js.map} +1 -1
- package/cjs/{useTranslationBundle-51f4c22c.js → useTranslationBundle-6b0281a9.js} +2 -2
- package/cjs/{useTranslationBundle-51f4c22c.js.map → useTranslationBundle-6b0281a9.js.map} +1 -1
- package/cjs/{useUser-a4bfc560.js → useUser-8aaad5a7.js} +2 -2
- package/cjs/{useUser-a4bfc560.js.map → useUser-8aaad5a7.js.map} +1 -1
- package/cjs/useVisDragModeControls-95caebc9.js +1 -1
- package/cjs/{useVisEvents-e48065f4.js → useVisEvents-99f1bf51.js} +2 -2
- package/cjs/{useVisEvents-e48065f4.js.map → useVisEvents-99f1bf51.js.map} +1 -1
- package/cjs/utils/PRIVATE_tooltipUtils.js +14 -14
- package/cjs/utils/PRIVATE_visTestUtils.js +5 -5
- package/cjs/{withDirectionIcon-1affce30.js → withDirectionIcon-7f758093.js} +2 -2
- package/cjs/{withDirectionIcon-1affce30.js.map → withDirectionIcon-7f758093.js.map} +1 -1
- package/cjs/withThemeProps-6e15f1c3.js +2 -2
- package/es/{InputDatePicker-dd3b6c89.js → InputDatePicker-59bbd31d.js} +2 -2
- package/es/{InputDatePicker-dd3b6c89.js.map → InputDatePicker-59bbd31d.js.map} +1 -1
- package/es/MaxLengthCounter-181b4fc9.js +25 -0
- package/{cjs/MaxLengthCounter-9ab3f74b.js.map → es/MaxLengthCounter-181b4fc9.js.map} +1 -1
- package/es/MeterBarVariants.styles.css +4 -4
- package/es/MeterBarVariants.styles2.css +4 -4
- package/es/SplitMenuButtonTheme.styles.css +4 -4
- package/es/SplitMenuButtonTheme.styles2.css +4 -4
- package/es/{TextArea-64b4e972.js → TextArea-7230675f.js} +8 -25
- package/{cjs/TextArea-e7f98e9f.js.map → es/TextArea-7230675f.js.map} +1 -1
- package/es/{TextAreaAutosize-4e0f60ef.js → TextAreaAutosize-0d293016.js} +2 -2
- package/es/{TextAreaAutosize-4e0f60ef.js.map → TextAreaAutosize-0d293016.js.map} +1 -1
- package/es/Theme-redwood/theme.css +378 -378
- package/es/Theme-stable/theme.css +498 -498
- package/es/UNSAFE_ButtonLayout/tests/ButtonLayout.spec.js +1 -1
- package/es/UNSAFE_InputDatePicker.js +91 -91
- package/es/UNSAFE_MeterBar/themes/redwood/MeterBarTheme.js +1 -1
- package/es/UNSAFE_MeterBar/themes/redwood/MeterBarVariants.css.js +1 -1
- package/es/UNSAFE_MeterBar/themes/stable/MeterBarTheme.js +1 -1
- package/es/UNSAFE_MeterBar/themes/stable/MeterBarVariants.css.js +1 -1
- package/es/UNSAFE_MeterBar.js +1 -1
- package/es/UNSAFE_SplitMenuButton/themes/redwood/SplitMenuButtonTheme.css.js +1 -1
- package/es/UNSAFE_SplitMenuButton/themes/stable/SplitMenuButtonTheme.css.js +1 -1
- package/es/UNSAFE_SplitMenuButton.js +1 -1
- package/es/UNSAFE_TextArea.js +3 -2
- package/es/UNSAFE_TextArea.js.map +1 -1
- package/es/UNSAFE_TextAreaAutosize.js +3 -3
- package/es/UNSAFE_Toolbar/tests/Toolbar.spec.js +1 -1
- package/package.json +2 -2
- package/amd/InputDatePicker-fc39f0a6.js +0 -2
- package/cjs/BaseNavigationListItem-ac85812c.js +0 -49
- package/cjs/BaseNavigationListItem-ac85812c.js.map +0 -1
- package/cjs/MaxLengthCounter-9ab3f74b.js +0 -27
- package/cjs/NavigationList-7495908b.js.map +0 -1
- package/cjs/NavigationListItem-d927906d.js +0 -12
- package/cjs/NavigationListItem-d927906d.js.map +0 -1
- package/cjs/index-ce6f9627.js.map +0 -1
- package/cjs/useNavigationListItem-ae481fdc.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSelectDrill-
|
|
1
|
+
{"version":3,"file":"useSelectDrill-51fdccac.js","sources":["../../src/hooks/PRIVATE_useChartEvents/useDatatipAndCursor.ts","../../src/hooks/PRIVATE_useChartEvents/useSelectDrill.ts"],"sourcesContent":["/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\n\nimport { mergeProps } from '#utils/UNSAFE_mergeProps';\nimport { useChartDataCursor } from '#hooks/PRIVATE_useChartDataCursor';\nimport { useChartDatatip } from '#hooks/PRIVATE_useChartDatatip';\nimport { LineAreaItem } from '#UNSAFE_LineAreaChart/lineAreaChart.types';\nimport { ScatterItem } from '#UNSAFE_ScatterChart/scatterChart.types';\nimport { BarItemData } from '#UNSAFE_BarChart/barChart.types';\n\ntype DataCursorProps = Parameters<typeof useChartDataCursor>[0];\ntype DatatipProps<\n K extends string | number,\n D extends LineAreaItem<K> | ScatterItem<K> | BarItemData<K>\n> = Parameters<typeof useChartDatatip<K, D>>[0];\n\nexport function useChartDatatipAndCursor<\n K extends string | number,\n D extends LineAreaItem<K> | ScatterItem<K> | BarItemData<K>\n>({\n series,\n groups,\n width,\n height,\n findNearest,\n getMarkerInfo,\n onDataCursorPositionChange,\n isDataCursorEnabled,\n dataCursorPosition,\n dataCursorStyle,\n hoveredItemInfo,\n focusedItemInfo,\n getDataItem,\n getDataItemPos,\n datatip,\n valueFormats,\n isHoriz,\n xScale,\n yScale,\n plotAreaSpace,\n timeAxisType,\n touchResponse,\n isDisabled,\n formatAxisLabel,\n formatYValue,\n hasXYValues\n}: DataCursorProps & DatatipProps<K, D>) {\n const { datatipContent, datatipProps } = useChartDatatip<K, D>({\n series,\n groups,\n width,\n height,\n isDataCursorEnabled,\n dataCursorPosition,\n hoveredItemInfo,\n getDataItem,\n getDataItemPos,\n focusedItemInfo,\n datatip,\n valueFormats,\n isHoriz,\n xScale,\n findNearest,\n timeAxisType,\n touchResponse,\n isDisabled,\n formatAxisLabel,\n formatYValue,\n hasXYValues\n });\n\n const { dataCursorContent, dataCursorProps } = useChartDataCursor({\n touchResponse,\n findNearest,\n dataCursorPosition,\n onDataCursorPositionChange,\n isDataCursorEnabled,\n dataCursorStyle,\n isHoriz,\n getMarkerInfo,\n focusedItemInfo,\n plotAreaSpace,\n yScale,\n xScale,\n getDataItemPos\n });\n\n return {\n datatipContent,\n dataCursorContent,\n datatipProps: mergeProps(dataCursorProps, datatipProps)\n };\n}\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\n\nimport { getInfo } from '#utils/UNSAFE_visUtils';\nimport { useChartDrill } from '#hooks/PRIVATE_useChartDrill';\nimport { useSelection } from '#hooks/PRIVATE_useVisSelection/useSelection';\nimport { mergeProps } from '#utils/UNSAFE_mergeProps';\nimport { BarItemData } from '#UNSAFE_BarChart/barChart.types';\nimport { LineAreaItem } from '#UNSAFE_LineAreaChart/lineAreaChart.types';\nimport { ScatterItem } from '#UNSAFE_ScatterChart/scatterChart.types';\n\ntype DrillProps<K, D extends LineAreaItem<K> | ScatterItem<K> | BarItemData<K>> = Parameters<\n typeof useChartDrill<K, D>\n>[0];\n\ntype SelectionProps<K, D> = {\n selection: K[];\n onChange?: (detail: { ids: K[]; data: (D | undefined)[] }) => void;\n getDataById: (id: K) => D | undefined;\n};\n\nexport function useSelectDrill<K, D extends LineAreaItem<K> | ScatterItem<K> | BarItemData<K>>({\n selectionMode,\n selection,\n onChange,\n rootRef,\n drilling,\n onItemDrill,\n onGroupDrill,\n focusedGroupInfo,\n focusedItemInfo,\n groups,\n getDataItem,\n getDataById\n}: DrillProps<K, D> & SelectionProps<K, D>) {\n const idExtracter = (event: Event): K | undefined => {\n const isItemFocused = focusedItemInfo.isCurrent;\n const info =\n isItemFocused && event.type === 'keyup'\n ? focusedItemInfo\n : getInfo(rootRef, event.target as HTMLElement);\n return info && info.seriesIndex != null && info.groupIndex != null\n ? getDataItem(info.seriesIndex, info.groupIndex)?.id\n : undefined;\n };\n\n const { selectionProps, selectionContent } = useSelection<K, D>({\n idExtracter,\n isDrillEnabled: drilling === 'on',\n selection,\n selectionMode,\n onChange,\n getDataById\n });\n\n const drillProps = useChartDrill<K, D>({\n rootRef,\n selectionMode,\n drilling,\n focusedItemInfo,\n focusedGroupInfo,\n groups,\n getDataItem,\n onItemDrill,\n onGroupDrill\n });\n\n return { selectDrillProps: mergeProps(selectionProps, drillProps), selectionContent };\n}\n"],"names":["useChartDatatip","useChartDataCursor","mergeProps","getInfo","useSelection","useChartDrill"],"mappings":";;;;;;;;;;;AAAA;;;;;;AAMG;AAeG,SAAU,wBAAwB,CAGtC,EACA,MAAM,EACN,MAAM,EACN,KAAK,EACL,MAAM,EACN,WAAW,EACX,aAAa,EACb,0BAA0B,EAC1B,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,eAAe,EACf,WAAW,EACX,cAAc,EACd,OAAO,EACP,YAAY,EACZ,OAAO,EACP,MAAM,EACN,MAAM,EACN,aAAa,EACb,YAAY,EACZ,aAAa,EACb,UAAU,EACV,eAAe,EACf,YAAY,EACZ,WAAW,EAC0B,EAAA;AACrC,IAAA,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,GAAGA,+BAAe,CAAO;QAC7D,MAAM;QACN,MAAM;QACN,KAAK;QACL,MAAM;QACN,mBAAmB;QACnB,kBAAkB;QAClB,eAAe;QACf,WAAW;QACX,cAAc;QACd,eAAe;QACf,OAAO;QACP,YAAY;QACZ,OAAO;QACP,MAAM;QACN,WAAW;QACX,YAAY;QACZ,aAAa;QACb,UAAU;QACV,eAAe;QACf,YAAY;QACZ,WAAW;AACZ,KAAA,CAAC,CAAC;AAEH,IAAA,MAAM,EAAE,iBAAiB,EAAE,eAAe,EAAE,GAAGC,qCAAkB,CAAC;QAChE,aAAa;QACb,WAAW;QACX,kBAAkB;QAClB,0BAA0B;QAC1B,mBAAmB;QACnB,eAAe;QACf,OAAO;QACP,aAAa;QACb,eAAe;QACf,aAAa;QACb,MAAM;QACN,MAAM;QACN,cAAc;AACf,KAAA,CAAC,CAAC;IAEH,OAAO;QACL,cAAc;QACd,iBAAiB;AACjB,QAAA,YAAY,EAAEC,qBAAU,CAAC,eAAe,EAAE,YAAY,CAAC;KACxD,CAAC;AACJ;;ACjGA;;;;;;AAMG;AAoBG,SAAU,cAAc,CAAiE,EAC7F,aAAa,EACb,SAAS,EACT,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,MAAM,EACN,WAAW,EACX,WAAW,EAC6B,EAAA;AACxC,IAAA,MAAM,WAAW,GAAG,CAAC,KAAY,KAAmB;AAClD,QAAA,MAAM,aAAa,GAAG,eAAe,CAAC,SAAS,CAAC;QAChD,MAAM,IAAI,GACR,aAAa,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO;AACrC,cAAE,eAAe;cACfC,mBAAO,CAAC,OAAO,EAAE,KAAK,CAAC,MAAqB,CAAC,CAAC;AACpD,QAAA,OAAO,IAAI,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI;AAChE,cAAE,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE;cAClD,SAAS,CAAC;AAChB,KAAC,CAAC;AAEF,IAAA,MAAM,EAAE,cAAc,EAAE,gBAAgB,EAAE,GAAGC,yBAAY,CAAO;QAC9D,WAAW;QACX,cAAc,EAAE,QAAQ,KAAK,IAAI;QACjC,SAAS;QACT,aAAa;QACb,QAAQ;QACR,WAAW;AACZ,KAAA,CAAC,CAAC;IAEH,MAAM,UAAU,GAAGC,2BAAa,CAAO;QACrC,OAAO;QACP,aAAa;QACb,QAAQ;QACR,eAAe;QACf,gBAAgB;QAChB,MAAM;QACN,WAAW;QACX,WAAW;QACX,YAAY;AACb,KAAA,CAAC,CAAC;AAEH,IAAA,OAAO,EAAE,gBAAgB,EAAEH,qBAAU,CAAC,cAAc,EAAE,UAAU,CAAC,EAAE,gBAAgB,EAAE,CAAC;AACxF;;;;;"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
var hooks = require('preact/hooks');
|
|
5
5
|
var keys = require('./keys-25710458.js');
|
|
6
|
-
var useUser = require('./useUser-
|
|
6
|
+
var useUser = require('./useUser-8aaad5a7.js');
|
|
7
7
|
var textSelectionUtils = require('./textSelectionUtils-432ab66b.js');
|
|
8
8
|
|
|
9
9
|
const arrowKeys = new Set(['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown']);
|
|
@@ -238,4 +238,4 @@ function useSelection(keyExtractor, selectedKeys, selectionMode, isSelectionRequ
|
|
|
238
238
|
}
|
|
239
239
|
|
|
240
240
|
exports.useSelection = useSelection;
|
|
241
|
-
//# sourceMappingURL=useSelection-
|
|
241
|
+
//# sourceMappingURL=useSelection-0dbc2f40.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSelection-228ef3ce.js","sources":["../../src/hooks/PRIVATE_useSelection/useSelection.ts"],"sourcesContent":["/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport type { RefObject } from 'preact';\nimport { useCallback, useRef } from 'preact/hooks';\nimport { Keys, containsKey, isKeyDefined, addKey, removeKey } from '../../utils/UNSAFE_keys';\nimport { SelectionDetail, SelectionMode } from '../../UNSAFE_Collection';\nimport { useUser } from '../UNSAFE_useUser';\nimport { getIsSelectionPending } from '#utils/PRIVATE_textSelectionUtils';\nimport { SelectionBehavior, SelectionRangeDetail } from './Selection.types';\n\nconst arrowKeys = new Set(['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown']);\n\n/**\n * To get the event type during range selection which is triggered by either of the following gestures\n * shift+space, shift+click, and shift+arrowKeys\n * @param event\n */\nconst getEventType = (event: MouseEvent | KeyboardEvent) => {\n if (event.type === 'click') {\n return 'shiftClick';\n } else if (event.type === 'keyup' && (event as KeyboardEvent).key === ' ') {\n return 'shiftSpace';\n } else if (event.type === 'keydown' && arrowKeys.has((event as KeyboardEvent).key)) {\n return 'shiftArrowKeys';\n }\n return undefined;\n};\n\nconst isShiftModeSupported = <K>(\n anchorKey: K,\n selectedKeys: Keys<K>,\n selectionMode: SelectionMode,\n isClickEvent: boolean\n) => {\n return selectionMode === 'multiple' && (isClickEvent || containsKey(selectedKeys, anchorKey));\n};\n\nconst handleSelect = <K>(\n event: MouseEvent | KeyboardEvent,\n keyExtractor: (element: HTMLElement) => K | null,\n selectedKeys: Keys<K>,\n selectionMode: SelectionMode,\n selectionBehavior: SelectionBehavior,\n isSelectionRequired: boolean,\n keyboardCursorRef: RefObject<K | undefined>,\n anchorKey?: K,\n onChange?: (detail: SelectionDetail<K>) => void,\n onRangeChange?: (detail: SelectionRangeDetail<K>) => void\n) => {\n const itemKey = keyExtractor(event.target as HTMLElement);\n if (itemKey == null) {\n return;\n }\n\n // handle shift key selection\n if (\n event.shiftKey &&\n anchorKey !== undefined &&\n onRangeChange &&\n isShiftModeSupported(anchorKey, selectedKeys, selectionMode, event.type === 'click')\n ) {\n const selected = containsKey(selectedKeys, itemKey);\n const eventType = getEventType(event);\n if (selected && eventType === 'shiftSpace') {\n // during shift+space, deselect the item if it's already selected\n const keySet = removeKey(selectedKeys, itemKey, isSelectionRequired);\n onChange?.({ value: keySet, target: event.target });\n } else {\n onRangeChange({ value: { start: anchorKey, end: itemKey }, eventType });\n }\n // set keyboard selection cursor in case user extends with SHIFT+ARROW\n if (keyboardCursorRef) {\n keyboardCursorRef.current = itemKey;\n }\n return;\n }\n\n const selected = containsKey(selectedKeys, itemKey);\n let keySet = selectedKeys;\n if (!selected) {\n if (\n selectionMode === 'single' ||\n (event as KeyboardEvent).key === 'Enter' ||\n (selectionBehavior === 'replace' && !(event.ctrlKey || event.metaKey))\n ) {\n // should only contains this item key\n keySet = { all: false, keys: new Set([itemKey]) };\n } else {\n // add to existing selected keys\n keySet = addKey(selectedKeys, itemKey);\n }\n } else if ((event as KeyboardEvent).key !== 'Enter') {\n // no de-select for enter key\n if (\n selectionBehavior === 'toggle' ||\n event.ctrlKey ||\n event.metaKey ||\n (event as KeyboardEvent).key === ' '\n ) {\n // de-select only when ctrl/meta key is pressed or selectionBehavior is\n // explicitly set to toggle\n keySet = removeKey(selectedKeys, itemKey, isSelectionRequired);\n } else if (selectionMode === 'multiple' && (selectedKeys.all || selectedKeys.keys.size > 1)) {\n // in this case everything should be de-selected except for this key\n keySet = { all: false, keys: new Set([itemKey]) };\n }\n }\n\n // only invoke callback if there is really a change\n // note onSelectionChange should never be null here\n if (selectedKeys != keySet && onChange) {\n onChange({ value: keySet, target: event.target });\n if (event.type === 'click') {\n event.stopPropagation();\n }\n }\n};\n\n/**\n * Hook for handling various selection mode. This can be reuse by all Collection components.\n * @param keyExtractor function to extract the key based on provided element\n * @param selectedKeys the currently selected keys\n * @param selectionMode the selection mode\n * @param isSelectionRequired true if empty selected key is not allowed, false otherwise\n * @param selectionBehavior the selection behavior. If the value is 'toggle', then the key is\n * added/removed from the current selected keys. If the value is 'replace',\n * then the current selected keys are cleared first before the key is added\n * unless the ctrl/shift/meta key is pressed.\n * @param onChange callback function that is invoked when selection has changed.\n * @param anchorKey the anchor key. Usually this is the same as current key except when shift key is pressed.\n * @param currentKey the current key\n * @param getVerticalPrevNextKey function to get the previous/next key in the vertical direction based on the current key\n * @param getHorizontalPrevNextKey function to get the previous/next key in the horizontal direction based on the current key\n * @param scrollToKey function to scroll the item with the key to be visible\n * @param onRangeChange callback function that is invoked when the selection range has changed.\n * @returns an event map that the consumer can register as event listeners\n */\nexport function useSelection<K>(\n keyExtractor: (element: HTMLElement) => K | null,\n selectedKeys: Keys<K>,\n selectionMode: SelectionMode,\n isSelectionRequired: boolean,\n selectionBehavior: SelectionBehavior,\n onChange?: (detail: SelectionDetail<K>) => void,\n anchorKey?: K,\n currentKey?: K | undefined,\n getVerticalPrevNextKey?: (currentKey: K | undefined, isPrev: boolean) => () => K | null,\n getHorizontalPrevNextKey?: (currentKey: K | undefined, isPrev: boolean) => () => K | null,\n scrollToKey?: (key: K) => void,\n onRangeChange?: (detail: SelectionRangeDetail<K>) => void\n) {\n // ref to track the cursor for the SHIFT+ARROW keyboard selection separately than the anchor of the selection.\n const keyboardSelectionCursor = useRef<K>();\n\n const isTouchPointerRef = useRef<boolean>(false);\n\n const onPointerDown = useCallback(\n (event: PointerEvent) => {\n isTouchPointerRef.current = event.pointerType === 'touch';\n if (event.shiftKey && selectionMode === 'multiple') {\n //Avoid text selection on pointer down\n event.preventDefault();\n }\n },\n [selectionMode, isTouchPointerRef]\n );\n\n const onClick = useCallback(\n (event: MouseEvent) => {\n if (!getIsSelectionPending()) {\n handleSelect<K>(\n event,\n keyExtractor,\n selectedKeys,\n selectionMode,\n isTouchPointerRef.current ? 'toggle' : selectionBehavior,\n isSelectionRequired,\n keyboardSelectionCursor,\n currentKey,\n onChange,\n onRangeChange\n );\n if (!event.shiftKey) {\n // reset keyboard cursor when using mouse to select\n keyboardSelectionCursor.current = undefined;\n }\n }\n },\n [\n keyExtractor,\n selectedKeys,\n selectionMode,\n selectionBehavior,\n isSelectionRequired,\n keyboardSelectionCursor,\n currentKey,\n onChange,\n onRangeChange\n ]\n );\n\n // general keyboard events listen to keyUp for a11y\n const onKeyUp = useCallback(\n (event: KeyboardEvent) => {\n // older browser that we don't support returns 'Spacebar' for space key\n if (event.key === ' ') {\n handleSelect<K>(\n event,\n keyExtractor,\n selectedKeys,\n selectionMode,\n selectionBehavior,\n isSelectionRequired,\n keyboardSelectionCursor,\n anchorKey,\n onChange,\n event.shiftKey && event.key === ' ' ? onRangeChange : undefined\n );\n }\n },\n [\n keyExtractor,\n selectedKeys,\n selectionMode,\n selectionBehavior,\n isSelectionRequired,\n anchorKey,\n onChange,\n onRangeChange\n ]\n );\n\n const { direction } = useUser();\n\n // arrowKey events listen to keyDown so they can support holding them down\n const onKeyDown = useCallback(\n (event: KeyboardEvent) => {\n // prevent default (propagation) for keyDown to space bar causing container to scroll\n if (event.key === ' ') {\n event.preventDefault();\n return;\n }\n\n const key = keyboardSelectionCursor.current || currentKey;\n const isRtl = direction === 'rtl';\n\n const keyHandlers: Record<string, (() => K | null) | undefined> = {\n ArrowUp: getVerticalPrevNextKey?.(key, true),\n ArrowDown: getVerticalPrevNextKey?.(key, false),\n ArrowLeft: getHorizontalPrevNextKey?.(key, !isRtl),\n ArrowRight: getHorizontalPrevNextKey?.(key, isRtl)\n };\n const isBothDirections = getVerticalPrevNextKey && getHorizontalPrevNextKey;\n if (Object.keys(keyHandlers).includes(event.key)) {\n if (event.shiftKey && scrollToKey && selectionMode === 'multiple') {\n //Avoid increasing range of selection text selection with arrow keys\n event.preventDefault();\n let keySet = selectedKeys;\n // on first selection event, set keyboard cursor to start at currentKey\n if (!keyboardSelectionCursor.current && isKeyDefined(currentKey)) {\n keySet = { all: false, keys: new Set([currentKey as K]) };\n }\n const newAnchorKey = keyHandlers[event.key];\n const cursorKey = newAnchorKey?.();\n if (cursorKey != null) {\n // keep visible\n scrollToKey(cursorKey);\n\n // if in 2D, use range selection to extend or subtract\n if (isBothDirections) {\n if (onRangeChange && currentKey != null) {\n onRangeChange({\n value: { start: currentKey, end: cursorKey },\n eventType: getEventType(event)\n });\n }\n } else {\n // extend selection\n if (!containsKey(keySet, cursorKey)) {\n keySet = addKey(keySet, cursorKey);\n // subtract from selection\n } else if (\n keyboardSelectionCursor.current != null &&\n keyboardSelectionCursor.current !== cursorKey\n ) {\n keySet = removeKey(keySet, keyboardSelectionCursor.current, isSelectionRequired);\n }\n if (selectedKeys != keySet && onChange) {\n onChange({ value: keySet, target: event.target });\n }\n }\n // update selection cursor\n keyboardSelectionCursor.current = cursorKey;\n }\n } else {\n // reset keyBoard on non-shifted arrow use as this interrupts the extend mode (and would make for messy logic that doesn't align with current Jet behavior)\n keyboardSelectionCursor.current = undefined;\n }\n }\n },\n [\n selectedKeys,\n isSelectionRequired,\n onChange,\n currentKey,\n getVerticalPrevNextKey,\n getHorizontalPrevNextKey,\n scrollToKey,\n direction,\n onRangeChange,\n selectionMode\n ]\n );\n\n const selectionProps =\n selectionMode === 'none' || onChange == null\n ? {}\n : { onPointerDown, onClick, onKeyDown, onKeyUp };\n return { selectionProps };\n}\n"],"names":["containsKey","removeKey","addKey","useRef","useCallback","getIsSelectionPending","useUser","isKeyDefined"],"mappings":";;;;;;;;AAeA,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;AAE/E;;;;AAIG;AACH,MAAM,YAAY,GAAG,CAAC,KAAiC,KAAI;AACzD,IAAA,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE;AAC1B,QAAA,OAAO,YAAY,CAAC;KACrB;AAAM,SAAA,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAK,KAAuB,CAAC,GAAG,KAAK,GAAG,EAAE;AACzE,QAAA,OAAO,YAAY,CAAC;KACrB;AAAM,SAAA,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,SAAS,CAAC,GAAG,CAAE,KAAuB,CAAC,GAAG,CAAC,EAAE;AAClF,QAAA,OAAO,gBAAgB,CAAC;KACzB;AACD,IAAA,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,oBAAoB,GAAG,CAC3B,SAAY,EACZ,YAAqB,EACrB,aAA4B,EAC5B,YAAqB,KACnB;AACF,IAAA,OAAO,aAAa,KAAK,UAAU,KAAK,YAAY,IAAIA,gBAAW,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC,CAAC;AAChG,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CACnB,KAAiC,EACjC,YAAgD,EAChD,YAAqB,EACrB,aAA4B,EAC5B,iBAAoC,EACpC,mBAA4B,EAC5B,iBAA2C,EAC3C,SAAa,EACb,QAA+C,EAC/C,aAAyD,KACvD;IACF,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,MAAqB,CAAC,CAAC;AAC1D,IAAA,IAAI,OAAO,IAAI,IAAI,EAAE;QACnB,OAAO;KACR;;IAGD,IACE,KAAK,CAAC,QAAQ;AACd,QAAA,SAAS,KAAK,SAAS;QACvB,aAAa;AACb,QAAA,oBAAoB,CAAC,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,EACpF;QACA,MAAM,QAAQ,GAAGA,gBAAW,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;AACpD,QAAA,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;AACtC,QAAA,IAAI,QAAQ,IAAI,SAAS,KAAK,YAAY,EAAE;;YAE1C,MAAM,MAAM,GAAGC,cAAS,CAAC,YAAY,EAAE,OAAO,EAAE,mBAAmB,CAAC,CAAC;AACrE,YAAA,QAAQ,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;SACrD;aAAM;AACL,YAAA,aAAa,CAAC,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;SACzE;;QAED,IAAI,iBAAiB,EAAE;AACrB,YAAA,iBAAiB,CAAC,OAAO,GAAG,OAAO,CAAC;SACrC;QACD,OAAO;KACR;IAED,MAAM,QAAQ,GAAGD,gBAAW,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IACpD,IAAI,MAAM,GAAG,YAAY,CAAC;IAC1B,IAAI,CAAC,QAAQ,EAAE;QACb,IACE,aAAa,KAAK,QAAQ;YACzB,KAAuB,CAAC,GAAG,KAAK,OAAO;AACxC,aAAC,iBAAiB,KAAK,SAAS,IAAI,EAAE,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,EACtE;;AAEA,YAAA,MAAM,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;SACnD;aAAM;;AAEL,YAAA,MAAM,GAAGE,WAAM,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;SACxC;KACF;AAAM,SAAA,IAAK,KAAuB,CAAC,GAAG,KAAK,OAAO,EAAE;;QAEnD,IACE,iBAAiB,KAAK,QAAQ;AAC9B,YAAA,KAAK,CAAC,OAAO;AACb,YAAA,KAAK,CAAC,OAAO;AACZ,YAAA,KAAuB,CAAC,GAAG,KAAK,GAAG,EACpC;;;YAGA,MAAM,GAAGD,cAAS,CAAC,YAAY,EAAE,OAAO,EAAE,mBAAmB,CAAC,CAAC;SAChE;AAAM,aAAA,IAAI,aAAa,KAAK,UAAU,KAAK,YAAY,CAAC,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE;;AAE3F,YAAA,MAAM,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;SACnD;KACF;;;AAID,IAAA,IAAI,YAAY,IAAI,MAAM,IAAI,QAAQ,EAAE;AACtC,QAAA,QAAQ,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;AAClD,QAAA,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE;YAC1B,KAAK,CAAC,eAAe,EAAE,CAAC;SACzB;KACF;AACH,CAAC,CAAC;AAEF;;;;;;;;;;;;;;;;;;AAkBG;AACG,SAAU,YAAY,CAC1B,YAAgD,EAChD,YAAqB,EACrB,aAA4B,EAC5B,mBAA4B,EAC5B,iBAAoC,EACpC,QAA+C,EAC/C,SAAa,EACb,UAA0B,EAC1B,sBAAuF,EACvF,wBAAyF,EACzF,WAA8B,EAC9B,aAAyD,EAAA;;AAGzD,IAAA,MAAM,uBAAuB,GAAGE,YAAM,EAAK,CAAC;AAE5C,IAAA,MAAM,iBAAiB,GAAGA,YAAM,CAAU,KAAK,CAAC,CAAC;AAEjD,IAAA,MAAM,aAAa,GAAGC,iBAAW,CAC/B,CAAC,KAAmB,KAAI;QACtB,iBAAiB,CAAC,OAAO,GAAG,KAAK,CAAC,WAAW,KAAK,OAAO,CAAC;QAC1D,IAAI,KAAK,CAAC,QAAQ,IAAI,aAAa,KAAK,UAAU,EAAE;;YAElD,KAAK,CAAC,cAAc,EAAE,CAAC;SACxB;AACH,KAAC,EACD,CAAC,aAAa,EAAE,iBAAiB,CAAC,CACnC,CAAC;AAEF,IAAA,MAAM,OAAO,GAAGA,iBAAW,CACzB,CAAC,KAAiB,KAAI;AACpB,QAAA,IAAI,CAACC,wCAAqB,EAAE,EAAE;AAC5B,YAAA,YAAY,CACV,KAAK,EACL,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,iBAAiB,CAAC,OAAO,GAAG,QAAQ,GAAG,iBAAiB,EACxD,mBAAmB,EACnB,uBAAuB,EACvB,UAAU,EACV,QAAQ,EACR,aAAa,CACd,CAAC;AACF,YAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;;AAEnB,gBAAA,uBAAuB,CAAC,OAAO,GAAG,SAAS,CAAC;aAC7C;SACF;AACH,KAAC,EACD;QACE,YAAY;QACZ,YAAY;QACZ,aAAa;QACb,iBAAiB;QACjB,mBAAmB;QACnB,uBAAuB;QACvB,UAAU;QACV,QAAQ;QACR,aAAa;AACd,KAAA,CACF,CAAC;;AAGF,IAAA,MAAM,OAAO,GAAGD,iBAAW,CACzB,CAAC,KAAoB,KAAI;;AAEvB,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,EAAE;AACrB,YAAA,YAAY,CACV,KAAK,EACL,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,mBAAmB,EACnB,uBAAuB,EACvB,SAAS,EACT,QAAQ,EACR,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,GAAG,aAAa,GAAG,SAAS,CAChE,CAAC;SACH;AACH,KAAC,EACD;QACE,YAAY;QACZ,YAAY;QACZ,aAAa;QACb,iBAAiB;QACjB,mBAAmB;QACnB,SAAS;QACT,QAAQ;QACR,aAAa;AACd,KAAA,CACF,CAAC;AAEF,IAAA,MAAM,EAAE,SAAS,EAAE,GAAGE,eAAO,EAAE,CAAC;;AAGhC,IAAA,MAAM,SAAS,GAAGF,iBAAW,CAC3B,CAAC,KAAoB,KAAI;;AAEvB,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,EAAE;YACrB,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,OAAO;SACR;AAED,QAAA,MAAM,GAAG,GAAG,uBAAuB,CAAC,OAAO,IAAI,UAAU,CAAC;AAC1D,QAAA,MAAM,KAAK,GAAG,SAAS,KAAK,KAAK,CAAC;AAElC,QAAA,MAAM,WAAW,GAAiD;AAChE,YAAA,OAAO,EAAE,sBAAsB,GAAG,GAAG,EAAE,IAAI,CAAC;AAC5C,YAAA,SAAS,EAAE,sBAAsB,GAAG,GAAG,EAAE,KAAK,CAAC;YAC/C,SAAS,EAAE,wBAAwB,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC;AAClD,YAAA,UAAU,EAAE,wBAAwB,GAAG,GAAG,EAAE,KAAK,CAAC;SACnD,CAAC;AACF,QAAA,MAAM,gBAAgB,GAAG,sBAAsB,IAAI,wBAAwB,CAAC;AAC5E,QAAA,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;YAChD,IAAI,KAAK,CAAC,QAAQ,IAAI,WAAW,IAAI,aAAa,KAAK,UAAU,EAAE;;gBAEjE,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,IAAI,MAAM,GAAG,YAAY,CAAC;;gBAE1B,IAAI,CAAC,uBAAuB,CAAC,OAAO,IAAIG,iBAAY,CAAC,UAAU,CAAC,EAAE;AAChE,oBAAA,MAAM,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,UAAe,CAAC,CAAC,EAAE,CAAC;iBAC3D;gBACD,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC5C,gBAAA,MAAM,SAAS,GAAG,YAAY,IAAI,CAAC;AACnC,gBAAA,IAAI,SAAS,IAAI,IAAI,EAAE;;oBAErB,WAAW,CAAC,SAAS,CAAC,CAAC;;oBAGvB,IAAI,gBAAgB,EAAE;AACpB,wBAAA,IAAI,aAAa,IAAI,UAAU,IAAI,IAAI,EAAE;AACvC,4BAAA,aAAa,CAAC;gCACZ,KAAK,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,SAAS,EAAE;AAC5C,gCAAA,SAAS,EAAE,YAAY,CAAC,KAAK,CAAC;AAC/B,6BAAA,CAAC,CAAC;yBACJ;qBACF;yBAAM;;wBAEL,IAAI,CAACP,gBAAW,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE;AACnC,4BAAA,MAAM,GAAGE,WAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;;yBAEpC;AAAM,6BAAA,IACL,uBAAuB,CAAC,OAAO,IAAI,IAAI;AACvC,4BAAA,uBAAuB,CAAC,OAAO,KAAK,SAAS,EAC7C;4BACA,MAAM,GAAGD,cAAS,CAAC,MAAM,EAAE,uBAAuB,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;yBAClF;AACD,wBAAA,IAAI,YAAY,IAAI,MAAM,IAAI,QAAQ,EAAE;AACtC,4BAAA,QAAQ,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;yBACnD;qBACF;;AAED,oBAAA,uBAAuB,CAAC,OAAO,GAAG,SAAS,CAAC;iBAC7C;aACF;iBAAM;;AAEL,gBAAA,uBAAuB,CAAC,OAAO,GAAG,SAAS,CAAC;aAC7C;SACF;AACH,KAAC,EACD;QACE,YAAY;QACZ,mBAAmB;QACnB,QAAQ;QACR,UAAU;QACV,sBAAsB;QACtB,wBAAwB;QACxB,WAAW;QACX,SAAS;QACT,aAAa;QACb,aAAa;AACd,KAAA,CACF,CAAC;IAEF,MAAM,cAAc,GAClB,aAAa,KAAK,MAAM,IAAI,QAAQ,IAAI,IAAI;AAC1C,UAAE,EAAE;UACF,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;IACrD,OAAO,EAAE,cAAc,EAAE,CAAC;AAC5B;;;;"}
|
|
1
|
+
{"version":3,"file":"useSelection-0dbc2f40.js","sources":["../../src/hooks/PRIVATE_useSelection/useSelection.ts"],"sourcesContent":["/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport type { RefObject } from 'preact';\nimport { useCallback, useRef } from 'preact/hooks';\nimport { Keys, containsKey, isKeyDefined, addKey, removeKey } from '../../utils/UNSAFE_keys';\nimport { SelectionDetail, SelectionMode } from '../../UNSAFE_Collection';\nimport { useUser } from '../UNSAFE_useUser';\nimport { getIsSelectionPending } from '#utils/PRIVATE_textSelectionUtils';\nimport { SelectionBehavior, SelectionRangeDetail } from './Selection.types';\n\nconst arrowKeys = new Set(['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown']);\n\n/**\n * To get the event type during range selection which is triggered by either of the following gestures\n * shift+space, shift+click, and shift+arrowKeys\n * @param event\n */\nconst getEventType = (event: MouseEvent | KeyboardEvent) => {\n if (event.type === 'click') {\n return 'shiftClick';\n } else if (event.type === 'keyup' && (event as KeyboardEvent).key === ' ') {\n return 'shiftSpace';\n } else if (event.type === 'keydown' && arrowKeys.has((event as KeyboardEvent).key)) {\n return 'shiftArrowKeys';\n }\n return undefined;\n};\n\nconst isShiftModeSupported = <K>(\n anchorKey: K,\n selectedKeys: Keys<K>,\n selectionMode: SelectionMode,\n isClickEvent: boolean\n) => {\n return selectionMode === 'multiple' && (isClickEvent || containsKey(selectedKeys, anchorKey));\n};\n\nconst handleSelect = <K>(\n event: MouseEvent | KeyboardEvent,\n keyExtractor: (element: HTMLElement) => K | null,\n selectedKeys: Keys<K>,\n selectionMode: SelectionMode,\n selectionBehavior: SelectionBehavior,\n isSelectionRequired: boolean,\n keyboardCursorRef: RefObject<K | undefined>,\n anchorKey?: K,\n onChange?: (detail: SelectionDetail<K>) => void,\n onRangeChange?: (detail: SelectionRangeDetail<K>) => void\n) => {\n const itemKey = keyExtractor(event.target as HTMLElement);\n if (itemKey == null) {\n return;\n }\n\n // handle shift key selection\n if (\n event.shiftKey &&\n anchorKey !== undefined &&\n onRangeChange &&\n isShiftModeSupported(anchorKey, selectedKeys, selectionMode, event.type === 'click')\n ) {\n const selected = containsKey(selectedKeys, itemKey);\n const eventType = getEventType(event);\n if (selected && eventType === 'shiftSpace') {\n // during shift+space, deselect the item if it's already selected\n const keySet = removeKey(selectedKeys, itemKey, isSelectionRequired);\n onChange?.({ value: keySet, target: event.target });\n } else {\n onRangeChange({ value: { start: anchorKey, end: itemKey }, eventType });\n }\n // set keyboard selection cursor in case user extends with SHIFT+ARROW\n if (keyboardCursorRef) {\n keyboardCursorRef.current = itemKey;\n }\n return;\n }\n\n const selected = containsKey(selectedKeys, itemKey);\n let keySet = selectedKeys;\n if (!selected) {\n if (\n selectionMode === 'single' ||\n (event as KeyboardEvent).key === 'Enter' ||\n (selectionBehavior === 'replace' && !(event.ctrlKey || event.metaKey))\n ) {\n // should only contains this item key\n keySet = { all: false, keys: new Set([itemKey]) };\n } else {\n // add to existing selected keys\n keySet = addKey(selectedKeys, itemKey);\n }\n } else if ((event as KeyboardEvent).key !== 'Enter') {\n // no de-select for enter key\n if (\n selectionBehavior === 'toggle' ||\n event.ctrlKey ||\n event.metaKey ||\n (event as KeyboardEvent).key === ' '\n ) {\n // de-select only when ctrl/meta key is pressed or selectionBehavior is\n // explicitly set to toggle\n keySet = removeKey(selectedKeys, itemKey, isSelectionRequired);\n } else if (selectionMode === 'multiple' && (selectedKeys.all || selectedKeys.keys.size > 1)) {\n // in this case everything should be de-selected except for this key\n keySet = { all: false, keys: new Set([itemKey]) };\n }\n }\n\n // only invoke callback if there is really a change\n // note onSelectionChange should never be null here\n if (selectedKeys != keySet && onChange) {\n onChange({ value: keySet, target: event.target });\n if (event.type === 'click') {\n event.stopPropagation();\n }\n }\n};\n\n/**\n * Hook for handling various selection mode. This can be reuse by all Collection components.\n * @param keyExtractor function to extract the key based on provided element\n * @param selectedKeys the currently selected keys\n * @param selectionMode the selection mode\n * @param isSelectionRequired true if empty selected key is not allowed, false otherwise\n * @param selectionBehavior the selection behavior. If the value is 'toggle', then the key is\n * added/removed from the current selected keys. If the value is 'replace',\n * then the current selected keys are cleared first before the key is added\n * unless the ctrl/shift/meta key is pressed.\n * @param onChange callback function that is invoked when selection has changed.\n * @param anchorKey the anchor key. Usually this is the same as current key except when shift key is pressed.\n * @param currentKey the current key\n * @param getVerticalPrevNextKey function to get the previous/next key in the vertical direction based on the current key\n * @param getHorizontalPrevNextKey function to get the previous/next key in the horizontal direction based on the current key\n * @param scrollToKey function to scroll the item with the key to be visible\n * @param onRangeChange callback function that is invoked when the selection range has changed.\n * @returns an event map that the consumer can register as event listeners\n */\nexport function useSelection<K>(\n keyExtractor: (element: HTMLElement) => K | null,\n selectedKeys: Keys<K>,\n selectionMode: SelectionMode,\n isSelectionRequired: boolean,\n selectionBehavior: SelectionBehavior,\n onChange?: (detail: SelectionDetail<K>) => void,\n anchorKey?: K,\n currentKey?: K | undefined,\n getVerticalPrevNextKey?: (currentKey: K | undefined, isPrev: boolean) => () => K | null,\n getHorizontalPrevNextKey?: (currentKey: K | undefined, isPrev: boolean) => () => K | null,\n scrollToKey?: (key: K) => void,\n onRangeChange?: (detail: SelectionRangeDetail<K>) => void\n) {\n // ref to track the cursor for the SHIFT+ARROW keyboard selection separately than the anchor of the selection.\n const keyboardSelectionCursor = useRef<K>();\n\n const isTouchPointerRef = useRef<boolean>(false);\n\n const onPointerDown = useCallback(\n (event: PointerEvent) => {\n isTouchPointerRef.current = event.pointerType === 'touch';\n if (event.shiftKey && selectionMode === 'multiple') {\n //Avoid text selection on pointer down\n event.preventDefault();\n }\n },\n [selectionMode, isTouchPointerRef]\n );\n\n const onClick = useCallback(\n (event: MouseEvent) => {\n if (!getIsSelectionPending()) {\n handleSelect<K>(\n event,\n keyExtractor,\n selectedKeys,\n selectionMode,\n isTouchPointerRef.current ? 'toggle' : selectionBehavior,\n isSelectionRequired,\n keyboardSelectionCursor,\n currentKey,\n onChange,\n onRangeChange\n );\n if (!event.shiftKey) {\n // reset keyboard cursor when using mouse to select\n keyboardSelectionCursor.current = undefined;\n }\n }\n },\n [\n keyExtractor,\n selectedKeys,\n selectionMode,\n selectionBehavior,\n isSelectionRequired,\n keyboardSelectionCursor,\n currentKey,\n onChange,\n onRangeChange\n ]\n );\n\n // general keyboard events listen to keyUp for a11y\n const onKeyUp = useCallback(\n (event: KeyboardEvent) => {\n // older browser that we don't support returns 'Spacebar' for space key\n if (event.key === ' ') {\n handleSelect<K>(\n event,\n keyExtractor,\n selectedKeys,\n selectionMode,\n selectionBehavior,\n isSelectionRequired,\n keyboardSelectionCursor,\n anchorKey,\n onChange,\n event.shiftKey && event.key === ' ' ? onRangeChange : undefined\n );\n }\n },\n [\n keyExtractor,\n selectedKeys,\n selectionMode,\n selectionBehavior,\n isSelectionRequired,\n anchorKey,\n onChange,\n onRangeChange\n ]\n );\n\n const { direction } = useUser();\n\n // arrowKey events listen to keyDown so they can support holding them down\n const onKeyDown = useCallback(\n (event: KeyboardEvent) => {\n // prevent default (propagation) for keyDown to space bar causing container to scroll\n if (event.key === ' ') {\n event.preventDefault();\n return;\n }\n\n const key = keyboardSelectionCursor.current || currentKey;\n const isRtl = direction === 'rtl';\n\n const keyHandlers: Record<string, (() => K | null) | undefined> = {\n ArrowUp: getVerticalPrevNextKey?.(key, true),\n ArrowDown: getVerticalPrevNextKey?.(key, false),\n ArrowLeft: getHorizontalPrevNextKey?.(key, !isRtl),\n ArrowRight: getHorizontalPrevNextKey?.(key, isRtl)\n };\n const isBothDirections = getVerticalPrevNextKey && getHorizontalPrevNextKey;\n if (Object.keys(keyHandlers).includes(event.key)) {\n if (event.shiftKey && scrollToKey && selectionMode === 'multiple') {\n //Avoid increasing range of selection text selection with arrow keys\n event.preventDefault();\n let keySet = selectedKeys;\n // on first selection event, set keyboard cursor to start at currentKey\n if (!keyboardSelectionCursor.current && isKeyDefined(currentKey)) {\n keySet = { all: false, keys: new Set([currentKey as K]) };\n }\n const newAnchorKey = keyHandlers[event.key];\n const cursorKey = newAnchorKey?.();\n if (cursorKey != null) {\n // keep visible\n scrollToKey(cursorKey);\n\n // if in 2D, use range selection to extend or subtract\n if (isBothDirections) {\n if (onRangeChange && currentKey != null) {\n onRangeChange({\n value: { start: currentKey, end: cursorKey },\n eventType: getEventType(event)\n });\n }\n } else {\n // extend selection\n if (!containsKey(keySet, cursorKey)) {\n keySet = addKey(keySet, cursorKey);\n // subtract from selection\n } else if (\n keyboardSelectionCursor.current != null &&\n keyboardSelectionCursor.current !== cursorKey\n ) {\n keySet = removeKey(keySet, keyboardSelectionCursor.current, isSelectionRequired);\n }\n if (selectedKeys != keySet && onChange) {\n onChange({ value: keySet, target: event.target });\n }\n }\n // update selection cursor\n keyboardSelectionCursor.current = cursorKey;\n }\n } else {\n // reset keyBoard on non-shifted arrow use as this interrupts the extend mode (and would make for messy logic that doesn't align with current Jet behavior)\n keyboardSelectionCursor.current = undefined;\n }\n }\n },\n [\n selectedKeys,\n isSelectionRequired,\n onChange,\n currentKey,\n getVerticalPrevNextKey,\n getHorizontalPrevNextKey,\n scrollToKey,\n direction,\n onRangeChange,\n selectionMode\n ]\n );\n\n const selectionProps =\n selectionMode === 'none' || onChange == null\n ? {}\n : { onPointerDown, onClick, onKeyDown, onKeyUp };\n return { selectionProps };\n}\n"],"names":["containsKey","removeKey","addKey","useRef","useCallback","getIsSelectionPending","useUser","isKeyDefined"],"mappings":";;;;;;;;AAeA,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;AAE/E;;;;AAIG;AACH,MAAM,YAAY,GAAG,CAAC,KAAiC,KAAI;AACzD,IAAA,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE;AAC1B,QAAA,OAAO,YAAY,CAAC;KACrB;AAAM,SAAA,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAK,KAAuB,CAAC,GAAG,KAAK,GAAG,EAAE;AACzE,QAAA,OAAO,YAAY,CAAC;KACrB;AAAM,SAAA,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,SAAS,CAAC,GAAG,CAAE,KAAuB,CAAC,GAAG,CAAC,EAAE;AAClF,QAAA,OAAO,gBAAgB,CAAC;KACzB;AACD,IAAA,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,oBAAoB,GAAG,CAC3B,SAAY,EACZ,YAAqB,EACrB,aAA4B,EAC5B,YAAqB,KACnB;AACF,IAAA,OAAO,aAAa,KAAK,UAAU,KAAK,YAAY,IAAIA,gBAAW,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC,CAAC;AAChG,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CACnB,KAAiC,EACjC,YAAgD,EAChD,YAAqB,EACrB,aAA4B,EAC5B,iBAAoC,EACpC,mBAA4B,EAC5B,iBAA2C,EAC3C,SAAa,EACb,QAA+C,EAC/C,aAAyD,KACvD;IACF,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,MAAqB,CAAC,CAAC;AAC1D,IAAA,IAAI,OAAO,IAAI,IAAI,EAAE;QACnB,OAAO;KACR;;IAGD,IACE,KAAK,CAAC,QAAQ;AACd,QAAA,SAAS,KAAK,SAAS;QACvB,aAAa;AACb,QAAA,oBAAoB,CAAC,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,EACpF;QACA,MAAM,QAAQ,GAAGA,gBAAW,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;AACpD,QAAA,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;AACtC,QAAA,IAAI,QAAQ,IAAI,SAAS,KAAK,YAAY,EAAE;;YAE1C,MAAM,MAAM,GAAGC,cAAS,CAAC,YAAY,EAAE,OAAO,EAAE,mBAAmB,CAAC,CAAC;AACrE,YAAA,QAAQ,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;SACrD;aAAM;AACL,YAAA,aAAa,CAAC,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;SACzE;;QAED,IAAI,iBAAiB,EAAE;AACrB,YAAA,iBAAiB,CAAC,OAAO,GAAG,OAAO,CAAC;SACrC;QACD,OAAO;KACR;IAED,MAAM,QAAQ,GAAGD,gBAAW,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IACpD,IAAI,MAAM,GAAG,YAAY,CAAC;IAC1B,IAAI,CAAC,QAAQ,EAAE;QACb,IACE,aAAa,KAAK,QAAQ;YACzB,KAAuB,CAAC,GAAG,KAAK,OAAO;AACxC,aAAC,iBAAiB,KAAK,SAAS,IAAI,EAAE,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,EACtE;;AAEA,YAAA,MAAM,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;SACnD;aAAM;;AAEL,YAAA,MAAM,GAAGE,WAAM,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;SACxC;KACF;AAAM,SAAA,IAAK,KAAuB,CAAC,GAAG,KAAK,OAAO,EAAE;;QAEnD,IACE,iBAAiB,KAAK,QAAQ;AAC9B,YAAA,KAAK,CAAC,OAAO;AACb,YAAA,KAAK,CAAC,OAAO;AACZ,YAAA,KAAuB,CAAC,GAAG,KAAK,GAAG,EACpC;;;YAGA,MAAM,GAAGD,cAAS,CAAC,YAAY,EAAE,OAAO,EAAE,mBAAmB,CAAC,CAAC;SAChE;AAAM,aAAA,IAAI,aAAa,KAAK,UAAU,KAAK,YAAY,CAAC,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE;;AAE3F,YAAA,MAAM,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;SACnD;KACF;;;AAID,IAAA,IAAI,YAAY,IAAI,MAAM,IAAI,QAAQ,EAAE;AACtC,QAAA,QAAQ,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;AAClD,QAAA,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE;YAC1B,KAAK,CAAC,eAAe,EAAE,CAAC;SACzB;KACF;AACH,CAAC,CAAC;AAEF;;;;;;;;;;;;;;;;;;AAkBG;AACG,SAAU,YAAY,CAC1B,YAAgD,EAChD,YAAqB,EACrB,aAA4B,EAC5B,mBAA4B,EAC5B,iBAAoC,EACpC,QAA+C,EAC/C,SAAa,EACb,UAA0B,EAC1B,sBAAuF,EACvF,wBAAyF,EACzF,WAA8B,EAC9B,aAAyD,EAAA;;AAGzD,IAAA,MAAM,uBAAuB,GAAGE,YAAM,EAAK,CAAC;AAE5C,IAAA,MAAM,iBAAiB,GAAGA,YAAM,CAAU,KAAK,CAAC,CAAC;AAEjD,IAAA,MAAM,aAAa,GAAGC,iBAAW,CAC/B,CAAC,KAAmB,KAAI;QACtB,iBAAiB,CAAC,OAAO,GAAG,KAAK,CAAC,WAAW,KAAK,OAAO,CAAC;QAC1D,IAAI,KAAK,CAAC,QAAQ,IAAI,aAAa,KAAK,UAAU,EAAE;;YAElD,KAAK,CAAC,cAAc,EAAE,CAAC;SACxB;AACH,KAAC,EACD,CAAC,aAAa,EAAE,iBAAiB,CAAC,CACnC,CAAC;AAEF,IAAA,MAAM,OAAO,GAAGA,iBAAW,CACzB,CAAC,KAAiB,KAAI;AACpB,QAAA,IAAI,CAACC,wCAAqB,EAAE,EAAE;AAC5B,YAAA,YAAY,CACV,KAAK,EACL,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,iBAAiB,CAAC,OAAO,GAAG,QAAQ,GAAG,iBAAiB,EACxD,mBAAmB,EACnB,uBAAuB,EACvB,UAAU,EACV,QAAQ,EACR,aAAa,CACd,CAAC;AACF,YAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;;AAEnB,gBAAA,uBAAuB,CAAC,OAAO,GAAG,SAAS,CAAC;aAC7C;SACF;AACH,KAAC,EACD;QACE,YAAY;QACZ,YAAY;QACZ,aAAa;QACb,iBAAiB;QACjB,mBAAmB;QACnB,uBAAuB;QACvB,UAAU;QACV,QAAQ;QACR,aAAa;AACd,KAAA,CACF,CAAC;;AAGF,IAAA,MAAM,OAAO,GAAGD,iBAAW,CACzB,CAAC,KAAoB,KAAI;;AAEvB,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,EAAE;AACrB,YAAA,YAAY,CACV,KAAK,EACL,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,mBAAmB,EACnB,uBAAuB,EACvB,SAAS,EACT,QAAQ,EACR,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,GAAG,aAAa,GAAG,SAAS,CAChE,CAAC;SACH;AACH,KAAC,EACD;QACE,YAAY;QACZ,YAAY;QACZ,aAAa;QACb,iBAAiB;QACjB,mBAAmB;QACnB,SAAS;QACT,QAAQ;QACR,aAAa;AACd,KAAA,CACF,CAAC;AAEF,IAAA,MAAM,EAAE,SAAS,EAAE,GAAGE,eAAO,EAAE,CAAC;;AAGhC,IAAA,MAAM,SAAS,GAAGF,iBAAW,CAC3B,CAAC,KAAoB,KAAI;;AAEvB,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,EAAE;YACrB,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,OAAO;SACR;AAED,QAAA,MAAM,GAAG,GAAG,uBAAuB,CAAC,OAAO,IAAI,UAAU,CAAC;AAC1D,QAAA,MAAM,KAAK,GAAG,SAAS,KAAK,KAAK,CAAC;AAElC,QAAA,MAAM,WAAW,GAAiD;AAChE,YAAA,OAAO,EAAE,sBAAsB,GAAG,GAAG,EAAE,IAAI,CAAC;AAC5C,YAAA,SAAS,EAAE,sBAAsB,GAAG,GAAG,EAAE,KAAK,CAAC;YAC/C,SAAS,EAAE,wBAAwB,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC;AAClD,YAAA,UAAU,EAAE,wBAAwB,GAAG,GAAG,EAAE,KAAK,CAAC;SACnD,CAAC;AACF,QAAA,MAAM,gBAAgB,GAAG,sBAAsB,IAAI,wBAAwB,CAAC;AAC5E,QAAA,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;YAChD,IAAI,KAAK,CAAC,QAAQ,IAAI,WAAW,IAAI,aAAa,KAAK,UAAU,EAAE;;gBAEjE,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,IAAI,MAAM,GAAG,YAAY,CAAC;;gBAE1B,IAAI,CAAC,uBAAuB,CAAC,OAAO,IAAIG,iBAAY,CAAC,UAAU,CAAC,EAAE;AAChE,oBAAA,MAAM,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,UAAe,CAAC,CAAC,EAAE,CAAC;iBAC3D;gBACD,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC5C,gBAAA,MAAM,SAAS,GAAG,YAAY,IAAI,CAAC;AACnC,gBAAA,IAAI,SAAS,IAAI,IAAI,EAAE;;oBAErB,WAAW,CAAC,SAAS,CAAC,CAAC;;oBAGvB,IAAI,gBAAgB,EAAE;AACpB,wBAAA,IAAI,aAAa,IAAI,UAAU,IAAI,IAAI,EAAE;AACvC,4BAAA,aAAa,CAAC;gCACZ,KAAK,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,SAAS,EAAE;AAC5C,gCAAA,SAAS,EAAE,YAAY,CAAC,KAAK,CAAC;AAC/B,6BAAA,CAAC,CAAC;yBACJ;qBACF;yBAAM;;wBAEL,IAAI,CAACP,gBAAW,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE;AACnC,4BAAA,MAAM,GAAGE,WAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;;yBAEpC;AAAM,6BAAA,IACL,uBAAuB,CAAC,OAAO,IAAI,IAAI;AACvC,4BAAA,uBAAuB,CAAC,OAAO,KAAK,SAAS,EAC7C;4BACA,MAAM,GAAGD,cAAS,CAAC,MAAM,EAAE,uBAAuB,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;yBAClF;AACD,wBAAA,IAAI,YAAY,IAAI,MAAM,IAAI,QAAQ,EAAE;AACtC,4BAAA,QAAQ,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;yBACnD;qBACF;;AAED,oBAAA,uBAAuB,CAAC,OAAO,GAAG,SAAS,CAAC;iBAC7C;aACF;iBAAM;;AAEL,gBAAA,uBAAuB,CAAC,OAAO,GAAG,SAAS,CAAC;aAC7C;SACF;AACH,KAAC,EACD;QACE,YAAY;QACZ,mBAAmB;QACnB,QAAQ;QACR,UAAU;QACV,sBAAsB;QACtB,wBAAwB;QACxB,WAAW;QACX,SAAS;QACT,aAAa;QACb,aAAa;AACd,KAAA,CACF,CAAC;IAEF,MAAM,cAAc,GAClB,aAAa,KAAK,MAAM,IAAI,QAAQ,IAAI,IAAI;AAC1C,UAAE,EAAE;UACF,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;IACrD,OAAO,EAAE,cAAc,EAAE,CAAC;AAC5B;;;;"}
|
|
@@ -6,12 +6,12 @@ var eventsUtils = require('./eventsUtils-1abb6028.js');
|
|
|
6
6
|
var jsxRuntime = require('preact/jsx-runtime');
|
|
7
7
|
var BaseButton = require('./BaseButton-3a0bf8e4.js');
|
|
8
8
|
var Text = require('./Text-5ed5f710.js');
|
|
9
|
-
var useTranslationBundle = require('./useTranslationBundle-
|
|
9
|
+
var useTranslationBundle = require('./useTranslationBundle-6b0281a9.js');
|
|
10
10
|
var hooks_PRIVATE_useVisSelection_themes_ClearSelection_css = require('./hooks/PRIVATE_useVisSelection/themes/ClearSelection.css.js');
|
|
11
|
-
var Layer = require('./Layer-
|
|
11
|
+
var Layer = require('./Layer-49394ca6.js');
|
|
12
12
|
require('preact/compat');
|
|
13
|
-
require('./LayerHost-
|
|
14
|
-
var Floating = require('./Floating-
|
|
13
|
+
require('./LayerHost-7182bfaf.js');
|
|
14
|
+
var Floating = require('./Floating-3a80c067.js');
|
|
15
15
|
|
|
16
16
|
/**
|
|
17
17
|
* Clear selection button component
|
|
@@ -184,4 +184,4 @@ function useSelection({ selection = [], selectionMode = 'none', idExtracter, onC
|
|
|
184
184
|
}
|
|
185
185
|
|
|
186
186
|
exports.useSelection = useSelection;
|
|
187
|
-
//# sourceMappingURL=useSelection-
|
|
187
|
+
//# sourceMappingURL=useSelection-8362b6c6.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSelection-efdf0e84.js","sources":["../../src/hooks/PRIVATE_useVisSelection/ClearSelectionButton.tsx","../../src/hooks/PRIVATE_useVisSelection/useClearSelection.tsx","../../src/hooks/PRIVATE_useVisSelection/useSelection.tsx"],"sourcesContent":["/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport { BaseButton } from '#UNSAFE_BaseButton';\nimport { Text } from '#UNSAFE_Text';\nimport { useTranslationBundle } from '#hooks/UNSAFE_useTranslationBundle';\nimport type { BundleType } from '#resources/nls/bundle';\nimport { clearButtonStyles } from './themes/ClearSelection.css';\n\ntype Props = {\n onAction: () => void;\n};\n\n/**\n * Clear selection button component\n */\nexport const ClearSelectionButton = ({ onAction }: Props) => {\n const translations = useTranslationBundle<BundleType>('@oracle/oraclejet-preact');\n const clearSelectionLabel = `${translations.vis_clearSelection()}`;\n return (\n <div class={clearButtonStyles.base}>\n <BaseButton\n styling={['default']}\n elementDetails={{ type: 'span', isFocusable: false, isLabel: true }}\n variant=\"outlined\"\n onAction={onAction}>\n <Text truncation={'ellipsis'} weight={'inherit'}>\n {clearSelectionLabel}\n </Text>\n </BaseButton>\n </div>\n );\n};\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\n\nimport { useRef, useState } from 'preact/hooks';\nimport { ClearSelectionButton } from './ClearSelectionButton';\nimport { Layer } from '#UNSAFE_Layer';\nimport { Floating } from '#UNSAFE_Floating';\n\n/**\n * The default offset for clear selection mainAxis.\n */\nconst DEFAULT_OFFSET = 18;\ntype Props = {\n clearSelection: () => void;\n};\ntype SelectionMode = 'none' | 'single' | 'multiple';\n\nexport function useClearSelection<K>({ clearSelection }: Props) {\n const [isVisible, setIsVisible] = useState(false);\n const coordinates = useRef({ x: 0, y: 0 });\n\n const tryToggleClearButton = (\n event: PointerEvent,\n key: K | undefined,\n selectionMode: SelectionMode,\n selectedIds: Set<K>\n ) => {\n if (\n event.pointerType === 'touch' &&\n key === undefined &&\n selectionMode === 'multiple' &&\n selectedIds.size > 1\n ) {\n setIsVisible(!isVisible);\n coordinates.current = { x: event.clientX, y: event.clientY };\n return true;\n }\n return false;\n };\n\n const offsetValue = { mainAxis: 2 * DEFAULT_OFFSET };\n const anchorRef = { current: coordinates.current };\n\n const clearSelectionContent = isVisible ? (\n <Layer>\n <Floating\n anchorRef={anchorRef}\n offsetValue={offsetValue}\n placement=\"top\"\n flipOptions={{ crossAxis: false, mainAxis: false }}\n shiftOptions={{ crossAxis: true, mainAxis: true }}>\n <ClearSelectionButton\n onAction={() => {\n setIsVisible(false);\n clearSelection();\n }}\n />\n </Floating>\n </Layer>\n ) : null;\n\n return {\n clearSelectionContent,\n tryToggleClearButton\n };\n}\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\n\nimport { useCallback, useRef } from 'preact/hooks';\nimport { isEqual } from '#utils/UNSAFE_visUtils/eventsUtils';\nimport { useClearSelection } from './useClearSelection';\n\nexport type SelectionMode = 'none' | 'single' | 'multiple';\nexport type SelectionDetail<K, D> = {\n ids: K[];\n data: (D | undefined)[];\n};\ntype SelectionBehavior = 'toggle' | 'replace';\n\nconst NAVKEYS = ['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'];\n\n/**\n * The constant that defines time to wait to change selection after pointer up is fired.\n * If double click didn't happen\n */\nconst DBLCLICK_THRESHOLD = 250;\n\n/**\n * Handles the selection.\n * @param itemId The id of the item.\n * @param selectedIds The set of selected item ids.\n * @param selectionMode The selection mode.\n * @param selectionBehavior The selection behavior. If 'toggle', unselected item will be selected and\n * vice versa. If 'replace', the item will replace the previous selection.\n * @param getDataById The callback to get item data from idDataMap.\n * @param onChange The callback to trigger when selection changes.\n */\nconst handleSelect = <K, D>(\n itemId: K | undefined,\n selectedIds: Set<K>,\n selectionMode: SelectionMode,\n selectionBehavior: SelectionBehavior,\n getDataById: (id: K) => D | undefined,\n onChange?: (detail: SelectionDetail<K, D>) => void\n) => {\n let ids = new Set<K>([]);\n if (itemId != null) {\n ids = new Set(selectedIds);\n const isSelected = selectedIds.has(itemId);\n\n if (selectionBehavior === 'toggle') {\n if (isSelected) {\n ids.delete(itemId);\n } else if (selectionMode === 'single') {\n ids = new Set([itemId]); // only selection\n } else {\n ids.add(itemId); // add to selection in \"multiple\" selectionMode\n }\n } else if (!isSelected) {\n // In \"multiple\" selection mode, only replace selection if unselected item is selected.\n // In \"single\" selection mode, only need to replace if unselected item is selected.\n ids = new Set([itemId]);\n }\n }\n\n if (!isEqual<K>(ids, selectedIds)) {\n onChange?.({ ids: [...ids], data: [...ids].map(getDataById) });\n }\n};\n\ntype Props<K, D> = {\n selection?: K[];\n selectionMode?: SelectionMode;\n idExtracter: (event: Event) => K | undefined;\n onChange?: (detail: SelectionDetail<K, D>) => void;\n isKeyboardSelection?: (event: KeyboardEvent) => boolean;\n isDrillEnabled?: boolean;\n getDataById: (id: K) => D | undefined;\n};\n\n/**\n * The hook to handle the selection behavior in vizualization components.\n */\nexport function useSelection<K, D>({\n selection = [],\n selectionMode = 'none',\n idExtracter,\n onChange,\n isDrillEnabled,\n isKeyboardSelection,\n getDataById\n}: Props<K, D>) {\n const setTimeOutRef = useRef<ReturnType<typeof setTimeout>>();\n\n const clearSelection = () => {\n handleSelect<K, D>(\n undefined,\n new Set(selection),\n selectionMode,\n 'replace',\n getDataById,\n onChange\n );\n };\n\n const { clearSelectionContent, tryToggleClearButton } = useClearSelection<K>({ clearSelection });\n\n const onPointerUp = useCallback(\n (event: PointerEvent) => {\n // ignore pointer up when marquee is released\n if ((event.target as HTMLElement).dataset['ojId'] === 'marquee') {\n return;\n }\n\n const selectedIds = new Set(selection);\n if (setTimeOutRef.current && isDrillEnabled) {\n clearTimeout(setTimeOutRef.current);\n setTimeOutRef.current = undefined;\n // doubleClick happened\n return;\n }\n\n const key = idExtracter(event);\n\n if (tryToggleClearButton(event, key, selectionMode, selectedIds)) {\n return;\n }\n\n const isMeta = event.metaKey;\n const isCtrl = event.ctrlKey;\n // If there was a previous pointerUp event that occurred that should prevent selection,\n // event.preventDefault was called\n if (event.defaultPrevented || (key == null && (isMeta || isCtrl))) {\n return;\n }\n\n // TODO: Encorporate more logic of dvt.EventManager.prototype._onClick\n // this is a simple version of EventManager.prototype._onClick. Currently we are not checking\n // for event.pageX, event.pageY to determine if they are exactly clicked on the same point.\n // for now, the assumption is that if the pointerups are within 250ms, they are for a same double click.\n if (isDrillEnabled) {\n setTimeOutRef.current = setTimeout(() => {\n // double pointer up didn't happen\n handleSelect<K, D>(\n key,\n selectedIds,\n selectionMode,\n isMeta || isCtrl || event.pointerType === 'touch' ? 'toggle' : 'replace',\n getDataById,\n onChange\n );\n setTimeOutRef.current = undefined;\n }, DBLCLICK_THRESHOLD);\n } else {\n handleSelect<K, D>(\n key,\n selectedIds,\n selectionMode,\n isMeta || isCtrl || event.pointerType === 'touch' ? 'toggle' : 'replace',\n getDataById,\n onChange\n );\n }\n },\n [\n selection,\n selectionMode,\n onChange,\n idExtracter,\n isDrillEnabled,\n getDataById,\n tryToggleClearButton\n ]\n );\n\n const onContextMenu = useCallback(\n (event: MouseEvent) => {\n const key = idExtracter(event);\n const isCtrl = event.ctrlKey;\n handleSelect<K, D>(\n key,\n new Set(selection),\n selectionMode,\n isCtrl ? 'toggle' : 'replace',\n getDataById,\n onChange\n );\n },\n [selection, selectionMode, onChange, idExtracter, getDataById]\n );\n\n const onKeyUp = useCallback(\n (event: KeyboardEvent) => {\n const isShift = event.shiftKey;\n const isSpaceCtrl = event.ctrlKey && event.key === ' ';\n const isArrowKey = NAVKEYS.indexOf(event.key) !== -1;\n const itemKey = idExtracter(event);\n\n if (isArrowKey || isSpaceCtrl || (isKeyboardSelection && isKeyboardSelection(event))) {\n const behavior = isShift || isSpaceCtrl ? 'toggle' : 'replace';\n handleSelect<K, D>(\n itemKey,\n new Set(selection),\n selectionMode,\n behavior,\n getDataById,\n onChange\n );\n }\n },\n [selection, selectionMode, onChange, idExtracter, isKeyboardSelection, getDataById]\n );\n\n return {\n selectionContent: clearSelectionContent,\n selectionProps:\n selectionMode === 'none' || onChange == null\n ? {}\n : {\n onKeyUp,\n onContextMenu,\n onPointerUp\n }\n };\n}\n"],"names":["useTranslationBundle","_jsx","clearButtonStyles","BaseButton","Text","useState","useRef","Layer","Floating","isEqual","useCallback"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useSelection-8362b6c6.js","sources":["../../src/hooks/PRIVATE_useVisSelection/ClearSelectionButton.tsx","../../src/hooks/PRIVATE_useVisSelection/useClearSelection.tsx","../../src/hooks/PRIVATE_useVisSelection/useSelection.tsx"],"sourcesContent":["/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport { BaseButton } from '#UNSAFE_BaseButton';\nimport { Text } from '#UNSAFE_Text';\nimport { useTranslationBundle } from '#hooks/UNSAFE_useTranslationBundle';\nimport type { BundleType } from '#resources/nls/bundle';\nimport { clearButtonStyles } from './themes/ClearSelection.css';\n\ntype Props = {\n onAction: () => void;\n};\n\n/**\n * Clear selection button component\n */\nexport const ClearSelectionButton = ({ onAction }: Props) => {\n const translations = useTranslationBundle<BundleType>('@oracle/oraclejet-preact');\n const clearSelectionLabel = `${translations.vis_clearSelection()}`;\n return (\n <div class={clearButtonStyles.base}>\n <BaseButton\n styling={['default']}\n elementDetails={{ type: 'span', isFocusable: false, isLabel: true }}\n variant=\"outlined\"\n onAction={onAction}>\n <Text truncation={'ellipsis'} weight={'inherit'}>\n {clearSelectionLabel}\n </Text>\n </BaseButton>\n </div>\n );\n};\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\n\nimport { useRef, useState } from 'preact/hooks';\nimport { ClearSelectionButton } from './ClearSelectionButton';\nimport { Layer } from '#UNSAFE_Layer';\nimport { Floating } from '#UNSAFE_Floating';\n\n/**\n * The default offset for clear selection mainAxis.\n */\nconst DEFAULT_OFFSET = 18;\ntype Props = {\n clearSelection: () => void;\n};\ntype SelectionMode = 'none' | 'single' | 'multiple';\n\nexport function useClearSelection<K>({ clearSelection }: Props) {\n const [isVisible, setIsVisible] = useState(false);\n const coordinates = useRef({ x: 0, y: 0 });\n\n const tryToggleClearButton = (\n event: PointerEvent,\n key: K | undefined,\n selectionMode: SelectionMode,\n selectedIds: Set<K>\n ) => {\n if (\n event.pointerType === 'touch' &&\n key === undefined &&\n selectionMode === 'multiple' &&\n selectedIds.size > 1\n ) {\n setIsVisible(!isVisible);\n coordinates.current = { x: event.clientX, y: event.clientY };\n return true;\n }\n return false;\n };\n\n const offsetValue = { mainAxis: 2 * DEFAULT_OFFSET };\n const anchorRef = { current: coordinates.current };\n\n const clearSelectionContent = isVisible ? (\n <Layer>\n <Floating\n anchorRef={anchorRef}\n offsetValue={offsetValue}\n placement=\"top\"\n flipOptions={{ crossAxis: false, mainAxis: false }}\n shiftOptions={{ crossAxis: true, mainAxis: true }}>\n <ClearSelectionButton\n onAction={() => {\n setIsVisible(false);\n clearSelection();\n }}\n />\n </Floating>\n </Layer>\n ) : null;\n\n return {\n clearSelectionContent,\n tryToggleClearButton\n };\n}\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\n\nimport { useCallback, useRef } from 'preact/hooks';\nimport { isEqual } from '#utils/UNSAFE_visUtils/eventsUtils';\nimport { useClearSelection } from './useClearSelection';\n\nexport type SelectionMode = 'none' | 'single' | 'multiple';\nexport type SelectionDetail<K, D> = {\n ids: K[];\n data: (D | undefined)[];\n};\ntype SelectionBehavior = 'toggle' | 'replace';\n\nconst NAVKEYS = ['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'];\n\n/**\n * The constant that defines time to wait to change selection after pointer up is fired.\n * If double click didn't happen\n */\nconst DBLCLICK_THRESHOLD = 250;\n\n/**\n * Handles the selection.\n * @param itemId The id of the item.\n * @param selectedIds The set of selected item ids.\n * @param selectionMode The selection mode.\n * @param selectionBehavior The selection behavior. If 'toggle', unselected item will be selected and\n * vice versa. If 'replace', the item will replace the previous selection.\n * @param getDataById The callback to get item data from idDataMap.\n * @param onChange The callback to trigger when selection changes.\n */\nconst handleSelect = <K, D>(\n itemId: K | undefined,\n selectedIds: Set<K>,\n selectionMode: SelectionMode,\n selectionBehavior: SelectionBehavior,\n getDataById: (id: K) => D | undefined,\n onChange?: (detail: SelectionDetail<K, D>) => void\n) => {\n let ids = new Set<K>([]);\n if (itemId != null) {\n ids = new Set(selectedIds);\n const isSelected = selectedIds.has(itemId);\n\n if (selectionBehavior === 'toggle') {\n if (isSelected) {\n ids.delete(itemId);\n } else if (selectionMode === 'single') {\n ids = new Set([itemId]); // only selection\n } else {\n ids.add(itemId); // add to selection in \"multiple\" selectionMode\n }\n } else if (!isSelected) {\n // In \"multiple\" selection mode, only replace selection if unselected item is selected.\n // In \"single\" selection mode, only need to replace if unselected item is selected.\n ids = new Set([itemId]);\n }\n }\n\n if (!isEqual<K>(ids, selectedIds)) {\n onChange?.({ ids: [...ids], data: [...ids].map(getDataById) });\n }\n};\n\ntype Props<K, D> = {\n selection?: K[];\n selectionMode?: SelectionMode;\n idExtracter: (event: Event) => K | undefined;\n onChange?: (detail: SelectionDetail<K, D>) => void;\n isKeyboardSelection?: (event: KeyboardEvent) => boolean;\n isDrillEnabled?: boolean;\n getDataById: (id: K) => D | undefined;\n};\n\n/**\n * The hook to handle the selection behavior in vizualization components.\n */\nexport function useSelection<K, D>({\n selection = [],\n selectionMode = 'none',\n idExtracter,\n onChange,\n isDrillEnabled,\n isKeyboardSelection,\n getDataById\n}: Props<K, D>) {\n const setTimeOutRef = useRef<ReturnType<typeof setTimeout>>();\n\n const clearSelection = () => {\n handleSelect<K, D>(\n undefined,\n new Set(selection),\n selectionMode,\n 'replace',\n getDataById,\n onChange\n );\n };\n\n const { clearSelectionContent, tryToggleClearButton } = useClearSelection<K>({ clearSelection });\n\n const onPointerUp = useCallback(\n (event: PointerEvent) => {\n // ignore pointer up when marquee is released\n if ((event.target as HTMLElement).dataset['ojId'] === 'marquee') {\n return;\n }\n\n const selectedIds = new Set(selection);\n if (setTimeOutRef.current && isDrillEnabled) {\n clearTimeout(setTimeOutRef.current);\n setTimeOutRef.current = undefined;\n // doubleClick happened\n return;\n }\n\n const key = idExtracter(event);\n\n if (tryToggleClearButton(event, key, selectionMode, selectedIds)) {\n return;\n }\n\n const isMeta = event.metaKey;\n const isCtrl = event.ctrlKey;\n // If there was a previous pointerUp event that occurred that should prevent selection,\n // event.preventDefault was called\n if (event.defaultPrevented || (key == null && (isMeta || isCtrl))) {\n return;\n }\n\n // TODO: Encorporate more logic of dvt.EventManager.prototype._onClick\n // this is a simple version of EventManager.prototype._onClick. Currently we are not checking\n // for event.pageX, event.pageY to determine if they are exactly clicked on the same point.\n // for now, the assumption is that if the pointerups are within 250ms, they are for a same double click.\n if (isDrillEnabled) {\n setTimeOutRef.current = setTimeout(() => {\n // double pointer up didn't happen\n handleSelect<K, D>(\n key,\n selectedIds,\n selectionMode,\n isMeta || isCtrl || event.pointerType === 'touch' ? 'toggle' : 'replace',\n getDataById,\n onChange\n );\n setTimeOutRef.current = undefined;\n }, DBLCLICK_THRESHOLD);\n } else {\n handleSelect<K, D>(\n key,\n selectedIds,\n selectionMode,\n isMeta || isCtrl || event.pointerType === 'touch' ? 'toggle' : 'replace',\n getDataById,\n onChange\n );\n }\n },\n [\n selection,\n selectionMode,\n onChange,\n idExtracter,\n isDrillEnabled,\n getDataById,\n tryToggleClearButton\n ]\n );\n\n const onContextMenu = useCallback(\n (event: MouseEvent) => {\n const key = idExtracter(event);\n const isCtrl = event.ctrlKey;\n handleSelect<K, D>(\n key,\n new Set(selection),\n selectionMode,\n isCtrl ? 'toggle' : 'replace',\n getDataById,\n onChange\n );\n },\n [selection, selectionMode, onChange, idExtracter, getDataById]\n );\n\n const onKeyUp = useCallback(\n (event: KeyboardEvent) => {\n const isShift = event.shiftKey;\n const isSpaceCtrl = event.ctrlKey && event.key === ' ';\n const isArrowKey = NAVKEYS.indexOf(event.key) !== -1;\n const itemKey = idExtracter(event);\n\n if (isArrowKey || isSpaceCtrl || (isKeyboardSelection && isKeyboardSelection(event))) {\n const behavior = isShift || isSpaceCtrl ? 'toggle' : 'replace';\n handleSelect<K, D>(\n itemKey,\n new Set(selection),\n selectionMode,\n behavior,\n getDataById,\n onChange\n );\n }\n },\n [selection, selectionMode, onChange, idExtracter, isKeyboardSelection, getDataById]\n );\n\n return {\n selectionContent: clearSelectionContent,\n selectionProps:\n selectionMode === 'none' || onChange == null\n ? {}\n : {\n onKeyUp,\n onContextMenu,\n onPointerUp\n }\n };\n}\n"],"names":["useTranslationBundle","_jsx","clearButtonStyles","BaseButton","Text","useState","useRef","Layer","Floating","isEqual","useCallback"],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ var hooks = require('preact/hooks');
|
|
|
5
5
|
var mergeProps = require('./mergeProps-e3da7237.js');
|
|
6
6
|
var collectionUtils = require('./collectionUtils-d9fdec19.js');
|
|
7
7
|
var useCollectionFocusRing = require('./useCollectionFocusRing-5af82f66.js');
|
|
8
|
-
var useCurrentKey = require('./useCurrentKey-
|
|
8
|
+
var useCurrentKey = require('./useCurrentKey-d8d41864.js');
|
|
9
9
|
var useId = require('./useId-6c0eeb27.js');
|
|
10
10
|
var useReorderableContext = require('./useReorderableContext-92514102.js');
|
|
11
11
|
var useContextMenuGesture = require('./useContextMenuGesture-215c261e.js');
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/* @oracle/oraclejet-preact: undefined */
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
-
var LayerHost = require('./LayerHost-
|
|
4
|
+
var LayerHost = require('./LayerHost-7182bfaf.js');
|
|
5
5
|
require('preact/jsx-runtime');
|
|
6
6
|
var hooks = require('preact/hooks');
|
|
7
7
|
require('preact/compat');
|
|
@@ -20,4 +20,4 @@ function useTestId(testId) {
|
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
exports.useTestId = useTestId;
|
|
23
|
-
//# sourceMappingURL=useTestId-
|
|
23
|
+
//# sourceMappingURL=useTestId-e267a39d.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTestId-
|
|
1
|
+
{"version":3,"file":"useTestId-e267a39d.js","sources":["../../src/hooks/UNSAFE_useTestId/useTestId.ts"],"sourcesContent":["import { EnvironmentContext } from '../../UNSAFE_Environment';\nimport { useContext } from 'preact/hooks';\n\nexport type TestIdProps = {\n testId?: string;\n};\n/**\n * Returns the set of attributes to be applied to the DOM node if the application's mode is not\n * set to \"production\".\n */\nexport function useTestId(testId?: string) {\n const context = useContext(EnvironmentContext);\n return context.mode === 'production' || testId === ''\n ? {}\n : {\n 'data-testid': testId\n };\n}\n"],"names":["useContext","EnvironmentContext"],"mappings":";;;;;;;;AAMA;;;AAGG;AACG,SAAU,SAAS,CAAC,MAAe,EAAA;AACvC,IAAA,MAAM,OAAO,GAAGA,gBAAU,CAACC,4BAAkB,CAAC,CAAC;IAC/C,OAAO,OAAO,CAAC,IAAI,KAAK,YAAY,IAAI,MAAM,KAAK,EAAE;AACnD,UAAE,EAAE;AACJ,UAAE;AACE,YAAA,aAAa,EAAE,MAAM;SACtB,CAAC;AACR;;;;"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
4
|
var hooks = require('preact/hooks');
|
|
5
|
-
var LayerHost = require('./LayerHost-
|
|
5
|
+
var LayerHost = require('./LayerHost-7182bfaf.js');
|
|
6
6
|
require('preact/jsx-runtime');
|
|
7
7
|
require('preact/compat');
|
|
8
8
|
|
|
@@ -18,4 +18,4 @@ function useTheme() {
|
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
exports.useTheme = useTheme;
|
|
21
|
-
//# sourceMappingURL=useTheme-
|
|
21
|
+
//# sourceMappingURL=useTheme-6cedf9c8.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTheme-
|
|
1
|
+
{"version":3,"file":"useTheme-6cedf9c8.js","sources":["../../src/hooks/UNSAFE_useTheme/useTheme.ts"],"sourcesContent":["/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\n\nimport { useContext } from 'preact/hooks';\nimport { EnvironmentContext } from '../../UNSAFE_Environment';\n\nexport function useTheme() {\n return useContext(EnvironmentContext).theme;\n}\n"],"names":["useContext","EnvironmentContext"],"mappings":";;;;;;;;AAAA;;;;;;AAMG;SAKa,QAAQ,GAAA;AACtB,IAAA,OAAOA,gBAAU,CAACC,4BAAkB,CAAC,CAAC,KAAK,CAAC;AAC9C;;;;"}
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
4
|
var hooks = require('preact/hooks');
|
|
5
|
-
var useColorScheme = require('./useColorScheme-
|
|
6
|
-
var useScale = require('./useScale-
|
|
5
|
+
var useColorScheme = require('./useColorScheme-e6bef5a4.js');
|
|
6
|
+
var useScale = require('./useScale-a47864b4.js');
|
|
7
7
|
var theme = require('./theme-dfd6a9fe.js');
|
|
8
8
|
var mergeInterpolations = require('./mergeInterpolations-6727b536.js');
|
|
9
|
-
var LayerHost = require('./LayerHost-
|
|
9
|
+
var LayerHost = require('./LayerHost-7182bfaf.js');
|
|
10
10
|
var Theme = require('./Theme-f06687af.js');
|
|
11
|
-
var useDensity = require('./useDensity-
|
|
11
|
+
var useDensity = require('./useDensity-38283c57.js');
|
|
12
12
|
|
|
13
13
|
// This hook encapsulates the logic required to determine which theme style classes are needed
|
|
14
14
|
// for the current environment context's colorScheme, density, and scale value. This would be used when
|
|
@@ -56,4 +56,4 @@ function useThemeInterpolations(logicalParentRef) {
|
|
|
56
56
|
}
|
|
57
57
|
|
|
58
58
|
exports.useThemeInterpolations = useThemeInterpolations;
|
|
59
|
-
//# sourceMappingURL=useThemeInterpolations-
|
|
59
|
+
//# sourceMappingURL=useThemeInterpolations-316c1636.js.map
|
package/cjs/{useThemeInterpolations-28ca9a13.js.map → useThemeInterpolations-316c1636.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useThemeInterpolations-
|
|
1
|
+
{"version":3,"file":"useThemeInterpolations-316c1636.js","sources":["../../src/hooks/UNSAFE_useThemeInterpolations/useThemeInterpolations.ts"],"sourcesContent":["/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport type { RefObject } from 'preact';\nimport { useLayoutEffect, useState } from 'preact/hooks';\nimport { useColorScheme } from '../UNSAFE_useColorScheme';\nimport { useScale } from '../UNSAFE_useScale';\nimport { themeInterpolations } from '../../utils/UNSAFE_interpolations/theme';\nimport type { ThemeProps } from '../../utils/UNSAFE_interpolations/theme';\nimport { mergeInterpolations } from '../../utils/UNSAFE_mergeInterpolations';\nimport { DefaultEnvironment } from '../../UNSAFE_Environment/EnvironmentContext';\nimport { DARK_CLASS, INVERT_CLASS } from '../../UNSAFE_Theme';\nimport { useDensity } from '#hooks/UNSAFE_useDensity';\n\n/**\n * The logical parent of the re-parented content that 'launched' it in the popup/dropdown.\n */\ntype LogicalParentRef = RefObject<Element> | null;\n\n// This hook encapsulates the logic required to determine which theme style classes are needed\n// for the current environment context's colorScheme, density, and scale value. This would be used when\n// rendering dom outside of the current dom tree, but desire to match the colorScheme, density, and scale\n// of the original dom tree.\nexport function useThemeInterpolations(logicalParentRef?: LogicalParentRef) {\n const [colorScheme, setColorScheme] = useState<'light' | 'dark' | undefined>(undefined);\n\n const currentColorScheme = useColorScheme();\n const currentDensity = useDensity();\n const currentScale = useScale();\n // We don't want to interpolate the default environment values for scale or density. Those should get picked up by default.\n // This fixes an issue for core pack components that utilize the Layer component, when in a legacy cookbook page.\n const density = currentDensity !== DefaultEnvironment.density ? currentDensity : undefined;\n const scale = currentScale !== DefaultEnvironment.scale ? currentScale : undefined;\n\n // We want to use useLayoutEffect instead of useEffect here. Otherwise there could be\n // flashing due to light colorScheme initial render then dark colorScheme after useEffect.\n useLayoutEffect(() => {\n // for colorScheme in Legacy, things are a bit more complicated because unlike scale which is always applied to\n // the root dom element, we can switch to dark theme by adding the .oj-color-invert class to any dom element where\n // we want the dark theme to start. In Legacy, you can't switch back to light theme once you switch to dark (no nesting).\n // The problem with our core pack Components that use Layer to display the dropdown, it is not in the same dom\n // tree as the parent component. It is in its own dom tree off of the root dom element, so it won't see the\n // .oj-color-invert class in the dom tree of the select single.\n // Since in legacy .oj-color-invert can appear anywhere, not just on the root dom element, if the colorScheme\n // is the same as the default colorScheme then we need to look at the ref to determine if it or any of its\n // ancestors has the .oj-color-invert class. If it does(and doesn't have the preact .oj-c-colorscheme-dark class),\n // use 'dark' colorScheme.\n // We only want to do this for legacy, so if the closest element that has the .oj-color-invert also has .oj-c-colorscheme-dark,\n // then we don't want to override since this isn't a legacy color change and we already handle it in our environment context\n // so the color scheme nesting will work in Preact/Core Pack.\n const closestElementWithColorInvertClass =\n logicalParentRef &&\n logicalParentRef.current &&\n typeof logicalParentRef.current.closest === 'function'\n ? logicalParentRef.current.closest(`.${INVERT_CLASS}:not(.${DARK_CLASS})`)\n : null;\n setColorScheme(\n currentColorScheme !== DefaultEnvironment.colorScheme\n ? currentColorScheme\n : closestElementWithColorInvertClass\n ? 'dark'\n : undefined\n );\n }, [logicalParentRef, currentColorScheme]);\n\n const interpolations = mergeInterpolations<ThemeProps>([...Object.values(themeInterpolations)]);\n const { class: classes } = interpolations({ colorScheme, scale, density });\n return classes;\n}\n"],"names":["useState","useColorScheme","useDensity","useScale","DefaultEnvironment","useLayoutEffect","INVERT_CLASS","DARK_CLASS","mergeInterpolations","themeInterpolations"],"mappings":";;;;;;;;;;;;AAuBA;AACA;AACA;AACA;AACM,SAAU,sBAAsB,CAAC,gBAAmC,EAAA;IACxE,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAGA,cAAQ,CAA+B,SAAS,CAAC,CAAC;AAExF,IAAA,MAAM,kBAAkB,GAAGC,6BAAc,EAAE,CAAC;AAC5C,IAAA,MAAM,cAAc,GAAGC,qBAAU,EAAE,CAAC;AACpC,IAAA,MAAM,YAAY,GAAGC,iBAAQ,EAAE,CAAC;;;AAGhC,IAAA,MAAM,OAAO,GAAG,cAAc,KAAKC,4BAAkB,CAAC,OAAO,GAAG,cAAc,GAAG,SAAS,CAAC;AAC3F,IAAA,MAAM,KAAK,GAAG,YAAY,KAAKA,4BAAkB,CAAC,KAAK,GAAG,YAAY,GAAG,SAAS,CAAC;;;IAInFC,qBAAe,CAAC,MAAK;;;;;;;;;;;;;;QAcnB,MAAM,kCAAkC,GACtC,gBAAgB;AAChB,YAAA,gBAAgB,CAAC,OAAO;AACxB,YAAA,OAAO,gBAAgB,CAAC,OAAO,CAAC,OAAO,KAAK,UAAU;AACpD,cAAE,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA,CAAA,EAAIC,kBAAY,CAAA,MAAA,EAASC,gBAAU,CAAA,CAAA,CAAG,CAAC;cACxE,IAAI,CAAC;AACX,QAAA,cAAc,CACZ,kBAAkB,KAAKH,4BAAkB,CAAC,WAAW;AACnD,cAAE,kBAAkB;AACpB,cAAE,kCAAkC;AACpC,kBAAE,MAAM;kBACN,SAAS,CACd,CAAC;AACJ,KAAC,EAAE,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,CAAC,CAAC;AAE3C,IAAA,MAAM,cAAc,GAAGI,uCAAmB,CAAa,CAAC,GAAG,MAAM,CAAC,MAAM,CAACC,yBAAmB,CAAC,CAAC,CAAC,CAAC;AAChG,IAAA,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,cAAc,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;AAC3E,IAAA,OAAO,OAAO,CAAC;AACjB;;;;"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
4
|
var hooks = require('preact/hooks');
|
|
5
|
-
var useTooltipControlled = require('./useTooltipControlled-
|
|
5
|
+
var useTooltipControlled = require('./useTooltipControlled-61581889.js');
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* @license
|
|
@@ -48,4 +48,4 @@ const useTooltip = ({ text, position = 'bottom', isDisabled = false, anchor = {
|
|
|
48
48
|
};
|
|
49
49
|
|
|
50
50
|
exports.useTooltip = useTooltip;
|
|
51
|
-
//# sourceMappingURL=useTooltip-
|
|
51
|
+
//# sourceMappingURL=useTooltip-ea036f82.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTooltip-
|
|
1
|
+
{"version":3,"file":"useTooltip-ea036f82.js","sources":["../../src/hooks/UNSAFE_useTooltip/useTooltip.tsx"],"sourcesContent":["/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\n\nimport { useState, useCallback } from 'preact/hooks';\nimport { useTooltipControlled } from './useTooltipControlled';\nimport { TestIdProps } from '../UNSAFE_useTestId';\n\ntype tooltipParameters = Parameters<typeof useTooltipControlled>[0];\n\ntype Props = {\n text?: string;\n position?: tooltipParameters['position'];\n isDisabled?: boolean;\n anchor?: tooltipParameters['anchor'];\n offset?: { mainAxis?: number; crossAxis?: number };\n variant?: tooltipParameters['variant'];\n} & TestIdProps;\n\n/**\n * A hook with tooltip implementation.\n * Returns event handlers that can enhance the target element with a tooltip displayed\n * on hover and focus.\n *\n * @param text tooltip text\n * @param position tooltip placement relative to the target element\n * @param isDisabled determines if the tooltip is disabled\n * @param anchor determines if the target is an element or the pointer\n * @param offset offset from the placement\n * @param variant specifies if the rendered popup should have 'tooltip' or 'datatip' look and behavior\n * @returns an object with the 'tooltipContent' and 'tooltipProps' properties.\n */\nexport const useTooltip = ({\n text,\n position = 'bottom',\n isDisabled = false,\n anchor = { x: 'element', y: 'element' },\n offset,\n variant = 'tooltip',\n testId\n}: Props): ReturnType<typeof useTooltipControlled> => {\n const [isOpen, setIsOpen] = useState<boolean>(false);\n const disabled = isDisabled || !text;\n const onToggleHandler = useCallback((details: { value: boolean }) => {\n setIsOpen(details.value);\n }, []);\n\n const { tooltipContent, tooltipProps } = useTooltipControlled({\n text,\n isOpen,\n position,\n isDisabled: disabled,\n offset,\n anchor,\n variant,\n onToggle: onToggleHandler,\n testId\n });\n\n return {\n tooltipContent,\n tooltipProps\n };\n};\n"],"names":["useState","useCallback","useTooltipControlled"],"mappings":";;;;;;AAAA;;;;;;AAMG;AAiBH;;;;;;;;;;;;AAYG;AACU,MAAA,UAAU,GAAG,CAAC,EACzB,IAAI,EACJ,QAAQ,GAAG,QAAQ,EACnB,UAAU,GAAG,KAAK,EAClB,MAAM,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,EACvC,MAAM,EACN,OAAO,GAAG,SAAS,EACnB,MAAM,EACA,KAA6C;IACnD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAGA,cAAQ,CAAU,KAAK,CAAC,CAAC;AACrD,IAAA,MAAM,QAAQ,GAAG,UAAU,IAAI,CAAC,IAAI,CAAC;AACrC,IAAA,MAAM,eAAe,GAAGC,iBAAW,CAAC,CAAC,OAA2B,KAAI;AAClE,QAAA,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;KAC1B,EAAE,EAAE,CAAC,CAAC;AAEP,IAAA,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,GAAGC,yCAAoB,CAAC;QAC5D,IAAI;QACJ,MAAM;QACN,QAAQ;AACR,QAAA,UAAU,EAAE,QAAQ;QACpB,MAAM;QACN,MAAM;QACN,OAAO;AACP,QAAA,QAAQ,EAAE,eAAe;QACzB,MAAM;AACP,KAAA,CAAC,CAAC;IAEH,OAAO;QACL,cAAc;QACd,YAAY;KACb,CAAC;AACJ;;;;"}
|
|
@@ -10,12 +10,12 @@ var useTouch = require('./useTouch-4dec8729.js');
|
|
|
10
10
|
var mergeProps = require('./mergeProps-e3da7237.js');
|
|
11
11
|
var useAnimation = require('./useAnimation-fb11e4cc.js');
|
|
12
12
|
var useComponentTheme = require('./useComponentTheme-082fc8e4.js');
|
|
13
|
-
var useTestId = require('./useTestId-
|
|
14
|
-
var useThemeInterpolations = require('./useThemeInterpolations-
|
|
13
|
+
var useTestId = require('./useTestId-e267a39d.js');
|
|
14
|
+
var useThemeInterpolations = require('./useThemeInterpolations-316c1636.js');
|
|
15
15
|
var classNames = require('./classNames-c14c6ef3.js');
|
|
16
16
|
var hooks_UNSAFE_useTooltip_themes_redwood_TooltipContentTheme = require('./hooks/UNSAFE_useTooltip/themes/redwood/TooltipContentTheme.js');
|
|
17
|
-
var useColorScheme = require('./useColorScheme-
|
|
18
|
-
var tooltipUtils = require('./tooltipUtils-
|
|
17
|
+
var useColorScheme = require('./useColorScheme-e6bef5a4.js');
|
|
18
|
+
var tooltipUtils = require('./tooltipUtils-2228b0f7.js');
|
|
19
19
|
|
|
20
20
|
const TooltipContent = ({ children, id, isOpen, isDatatip, onTransitionEnd, testId, ...props }) => {
|
|
21
21
|
const wrapperRef = hooks.useRef(null);
|
|
@@ -368,4 +368,4 @@ const useTooltipControlled = ({ text, isOpen = false, variant = 'tooltip', posit
|
|
|
368
368
|
|
|
369
369
|
exports.TooltipContent = TooltipContent;
|
|
370
370
|
exports.useTooltipControlled = useTooltipControlled;
|
|
371
|
-
//# sourceMappingURL=useTooltipControlled-
|
|
371
|
+
//# sourceMappingURL=useTooltipControlled-61581889.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTooltipControlled-33832163.js","sources":["../../src/hooks/UNSAFE_useTooltip/TooltipContent.tsx","../../src/hooks/UNSAFE_useTooltip/useTooltipControlled.tsx"],"sourcesContent":["import { useAnimation } from '../UNSAFE_useAnimation';\nimport { useComponentTheme } from '../UNSAFE_useComponentTheme';\nimport { useEffect, useRef } from 'preact/hooks';\nimport { HTMLAttributesSignalExcluded } from '../../utils/UNSAFE_attributeUtils';\nimport {\n TooltipContentVariantOptions,\n TooltipContentStyles\n} from './themes/TooltipContentStyles.css';\n\nimport { useTestId, TestIdProps } from '../UNSAFE_useTestId';\nimport { useThemeInterpolations } from '../UNSAFE_useThemeInterpolations';\nimport { classNames } from '../../utils/UNSAFE_classNames';\nimport { TooltipContentRedwoodTheme } from './themes/redwood/TooltipContentTheme';\n\ntype IntrinsicProps = Pick<HTMLAttributesSignalExcluded<HTMLDivElement>, 'children'>;\n\ntype Status = 'mounted' | 'unmounted';\n\ntype ContentProps = IntrinsicProps & {\n id: string;\n isOpen: boolean;\n isDatatip: boolean;\n onTransitionEnd?: () => void;\n} & TestIdProps;\n\nexport const TooltipContent = ({\n children,\n id,\n isOpen,\n isDatatip,\n onTransitionEnd,\n testId,\n ...props\n}: ContentProps) => {\n const wrapperRef = useRef<HTMLDivElement>(null);\n const popoverRef = useRef<HTMLDivElement>(null);\n\n const testIdProps = useTestId(testId);\n\n const { baseTheme, variantClasses, styles } = useComponentTheme<\n TooltipContentVariantOptions,\n TooltipContentStyles\n >(TooltipContentRedwoodTheme, {\n variant: isDatatip ? 'datatip' : 'tooltip'\n });\n\n const schemeClass = useThemeInterpolations();\n\n const { nodeRef } = useAnimation<Status, HTMLDivElement>(isOpen ? 'mounted' : 'unmounted', {\n animationStates: {\n mounted: (_node) => {\n const childNode = _node.firstChild as HTMLDivElement;\n return {\n from: {\n maxHeight: '0',\n opacity: '0%'\n },\n to: {\n maxHeight: `${childNode?.offsetHeight}px`,\n opacity: isDatatip ? '100%' : '95%'\n },\n options: {\n duration: isDatatip ? 1 : 150,\n easing: [0.0, 0.0, 0.2, 1]\n }\n };\n },\n unmounted: (_node) => {\n return {\n from: {\n opacity: isDatatip ? '100%' : '95%'\n },\n to: {\n maxHeight: '0',\n opacity: '0%'\n },\n options: {\n duration: isDatatip ? 1 : 150,\n easing: [0.0, 0.0, 0.2, 1]\n }\n };\n }\n },\n isAnimatedOnMount: true,\n onAnimationEnd: () => onTransitionEnd?.()\n });\n\n // Set up initial wrapper height so Tooltip can animate from the bottom to the top\n useEffect(() => {\n if (wrapperRef.current && popoverRef.current?.offsetHeight) {\n wrapperRef.current.style.height = `${popoverRef.current?.offsetHeight}px`;\n }\n }, []);\n\n return (\n <div\n ref={wrapperRef}\n id={id}\n role=\"tooltip\"\n class={classNames([styles.wrapper, schemeClass, baseTheme])}\n {...testIdProps}>\n <div ref={nodeRef} class={styles.inner} {...props}>\n <div ref={popoverRef} class={classNames([variantClasses, styles.content])}>\n {children}\n </div>\n </div>\n </div>\n );\n};\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\n\nimport { ComponentChild } from 'preact';\nimport { useState, useRef, useEffect, useCallback } from 'preact/hooks';\nimport { useId } from '../UNSAFE_useId';\nimport { Placement, Coords } from '../../UNSAFE_Floating';\nimport { useHover } from '../UNSAFE_useHover';\nimport { useFocus } from '../UNSAFE_useFocus';\nimport { useTouch } from '../UNSAFE_useTouch';\nimport { mergeProps } from '../../utils/UNSAFE_mergeProps';\nimport { TooltipContent } from './TooltipContent';\nimport { useColorScheme } from '../UNSAFE_useColorScheme';\nimport { TestIdProps } from '../UNSAFE_useTestId';\nimport {\n getGlobalTooltipManager,\n getWrappedTooltipContent,\n SHOW_TOOLTIP_DELAY,\n HIDE_TOOLTIP_DELAY\n} from '../../utils/PRIVATE_tooltipUtils';\n\nexport type Position = Omit<Placement, 'center'>;\n\nexport const anchorTos = ['element', 'pointer'] as const;\ntype AnchorTo = (typeof anchorTos)[number];\n\ntype AnchorModel = { x: AnchorTo; y: AnchorTo };\n\ntype Props = {\n text?: string;\n variant?: 'tooltip' | 'datatip';\n isOpen: boolean;\n position?: Position;\n isDisabled?: boolean;\n focusStrategy?: 'browser' | 'logical';\n anchor?: AnchorModel;\n offset?: { mainAxis?: number; crossAxis?: number };\n onToggle?: (details: { value: boolean }) => void;\n} & TestIdProps;\n\n/**\n * The 'mounting' and 'unmounting' states are related to the animation. The 'unmounted' state\n * is used for conditional rendering. In this state, the Tooltip content is completely removed\n * from the DOM. The 'mountPending' and 'unmountPending' are used when timeout is active.\n * The 'reposition' state is used to trigger a transition with new coordinates within\n * the same element.\n */\ntype Status =\n | 'unmounted'\n | 'mountPending'\n | 'mounting'\n | 'mounted'\n | 'unmountPending'\n | 'unmounting';\n\nexport const useTooltipControlled = ({\n text,\n isOpen = false,\n variant = 'tooltip',\n position = 'bottom',\n focusStrategy = 'browser',\n isDisabled = false,\n anchor = { x: 'element', y: 'element' },\n offset,\n onToggle,\n testId\n}: Props): {\n tooltipContent: ComponentChild;\n tooltipProps: Record<string, any>;\n} => {\n // Global TooltipManager singleton instance\n const globalTooltipManager = getGlobalTooltipManager();\n\n const disabled = isDisabled || !text;\n const isInitialRenderState = useRef<boolean>(true);\n\n const [state, _setState] = useState<Status>(!disabled && isOpen ? 'mounting' : 'unmounted');\n const stateRef = useRef<Status>(state);\n const setState = (newState: Status) => {\n stateRef.current = newState;\n _setState(newState);\n };\n\n // const tooltipId = useRef<string>(useId());\n\n const [needsUpdate, setNeedsUpdate] = useState<boolean>(false);\n setNeedsUpdate(false);\n\n const isDatatip = variant === 'datatip';\n\n const [isLogicalFocus, setLogicalFocus] = useState<boolean>(false);\n const isLogicalFocusStrategy = focusStrategy === 'logical';\n const isInitialRenderTrigger = useRef<boolean>(true);\n const { hoverProps, isHover } = useHover({});\n const { touchProps, isTouch } = useTouch({ isDisabled }); // TODO replace by useLongPress actionhook\n // we only care about keyboard focus, don't enable useFocus hook if isHover or isTouch are active\n const { focusProps, isFocus } = useFocus({\n isDisabled: isLogicalFocusStrategy\n });\n // only enable the popoverHover hook if the tooltip is actually open\n const { hoverProps: popoverHoverProps, isHover: popoverIsHover } = useHover({\n isDisabled: isDisabled || !isOpen\n });\n\n const isPointer = anchor.x === 'pointer' || anchor.y === 'pointer';\n\n const uniqueIdRef = useRef<string>(useId());\n const targetRef = useRef<HTMLElement | null>(null);\n const coordsRef = useRef<Coords>({ x: -9999, y: -9999 });\n // if anchor is set to pointer and target does not have keyboard focus, use coords\n const usedRef = isPointer && !isFocus ? coordsRef : targetRef;\n const showDelay = isDatatip ? 0 : SHOW_TOOLTIP_DELAY;\n const hideDelay = isDatatip ? 0 : HIDE_TOOLTIP_DELAY;\n const toggleTimeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n const currentColorScheme = useColorScheme();\n\n const focusActive = useRef<boolean>(false);\n const hoverActive = useRef<boolean>(false);\n\n const toggleTimeoutClear = () => {\n if (toggleTimeoutRef.current) {\n clearTimeout(toggleTimeoutRef.current);\n toggleTimeoutRef.current = null;\n }\n };\n\n /*\n * This effect executes when isFocus/isLogicalFocus changes\n * - focusActive ref is set if the focus change follows a Tab key\n * - hoverActive ref is reset, if focusActive becomes true\n */\n useEffect(() => {\n if (isLogicalFocusStrategy) {\n focusActive.current = isLogicalFocus;\n } else {\n focusActive.current = isFocus && globalTooltipManager.isTabKeyActive();\n }\n if (focusActive.current) {\n hoverActive.current = false;\n }\n }, [isFocus, isLogicalFocus, isLogicalFocusStrategy, globalTooltipManager]);\n\n /*\n * This effect executes when isHover state changes\n * - focusActive ref is reset, if hoverActive becomes true\n */\n useEffect(() => {\n hoverActive.current = isHover;\n }, [isHover]);\n\n useEffect(() => {\n // inner function for state transitions on various trigger changes\n const updateState = (open: boolean) => {\n if (open) {\n // At least one toggle event is set to true\n switch (state) {\n case 'unmounted':\n setState('mountPending'); // Set mount pending state if tooltip is unmounted\n break;\n case 'unmounting': // Switch back to mounting when unmounting was in progress and the tooltip should stay on\n setState('mounting');\n onToggle?.({ value: true });\n break;\n case 'unmountPending':\n toggleTimeoutClear();\n setState('mounted'); // Clear timers immediately and keep the tooltip mounted\n break;\n }\n } else {\n // No toggle events are set to true\n switch (state) {\n case 'mounting':\n case 'mounted':\n setState('unmountPending'); // Set unmount pending state if tooltip is mounted or in mounting transition\n break;\n case 'mountPending':\n toggleTimeoutClear();\n __resetCoords();\n setState('unmounted'); // Unmount tooltip immediately if mounting is pending\n break;\n }\n }\n };\n\n if (isInitialRenderTrigger.current) {\n // On onitial render do not trigger rerender\n isInitialRenderTrigger.current = false;\n return;\n }\n // When pointer is used, handleMouseMove method is responsible for state updates\n // until the tooltip is mounted\n if (isPointer && isHover && state === 'unmounted') {\n return;\n }\n updateState(\n (isHover && hoverActive.current) ||\n ((isFocus || isLogicalFocus) && focusActive.current) ||\n popoverIsHover ||\n isTouch\n );\n }, [isHover, isFocus, isLogicalFocus, popoverIsHover, isTouch, isPointer, state, onToggle]);\n\n const destroyCallback = useCallback(() => {\n focusActive.current = false;\n hoverActive.current = false;\n onToggle?.({ value: false });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []); // don't want to depend on the 'onToggle' prop as some clients tend to pass a new callback on each render\n\n useEffect(() => {\n if (isInitialRenderState.current) {\n // On onitial render do not trigger rerender\n isInitialRenderState.current = false;\n return;\n }\n setState(isOpen ? 'mounting' : 'unmounting');\n }, [isOpen]);\n\n useEffect(() => {\n return () => {\n // make sure to clear the toggle timeout on unmount\n toggleTimeoutClear();\n // reset focusActive and hoverActive refs\n focusActive.current = false;\n hoverActive.current = false;\n };\n }, []);\n\n /*\n * This effect executes when the component state changes.\n * On 'mounted' state, the tooltip registers itself with the global tooltip manager.\n * On 'unmounted', the tooltip unregisters from the global tooltip manager.\n */\n useEffect(() => {\n if (state === 'mounted') {\n globalTooltipManager.register(destroyCallback);\n } else if (state === 'unmounted') {\n globalTooltipManager.unregister(destroyCallback);\n }\n }, [state, destroyCallback, globalTooltipManager]);\n\n /*\n * Set a timer to toggle the state afer the 'pending' period expires\n */\n useEffect(() => {\n if (!toggleTimeoutRef.current && (state === 'mountPending' || state === 'unmountPending')) {\n toggleTimeoutRef.current = setTimeout(\n () => {\n toggleTimeoutClear();\n // make sure the state has not changed in the mean time before onToggle\n if (\n (state === 'mountPending' || state === 'unmountPending') &&\n state === stateRef.current\n ) {\n onToggle?.({ value: state === 'mountPending' });\n }\n },\n state === 'mountPending' ? showDelay : hideDelay\n );\n }\n return () => {\n toggleTimeoutClear();\n };\n }, [state, showDelay, hideDelay, onToggle]);\n\n const handleMouseMove = (event: MouseEvent) => {\n // we only want track mouse move while the state is 'unmounted' or when moving a 'mounted' datatip\n if (state !== 'unmounted' && !(variant === 'datatip' && state === 'mounted')) {\n return;\n }\n const targetRect = targetRef?.current?.getBoundingClientRect();\n\n // Tooltip maintains static offset from left side of window\n const distanceX = document.body.scrollLeft + (targetRect?.left || 0) + (targetRect?.width || 0);\n\n // Tooltip maintains static offset from top side of the window\n const distanceY = document.body.scrollTop + (targetRect?.top || 0) + (targetRect?.height || 0);\n\n // Display tooltip at the mouse position if both anchors are set to pointer\n const x = anchor.x === 'pointer' ? event.clientX : distanceX;\n const y = anchor.y === 'pointer' ? event.clientY : distanceY;\n\n if (state === 'mounted') {\n coordsRef.current = { x, y };\n if (needsUpdate !== true) setNeedsUpdate(true);\n } else if (state === 'unmounted') {\n toggleTimeoutClear();\n toggleTimeoutRef.current = setTimeout(() => {\n if (state === 'unmounted') {\n coordsRef.current = { x, y };\n onToggle?.({ value: true });\n }\n }, hideDelay);\n }\n };\n\n const onLogicalFocus = (target: HTMLElement) => {\n setLogicalFocus(true);\n targetRef.current = target;\n usedRef.current = target;\n };\n\n const onLogicalBlur = () => {\n setLogicalFocus(false);\n };\n\n const onFocusCallback = useCallback(\n (event: FocusEvent) => {\n if (\n event.eventPhase === Event.AT_TARGET ||\n (event.eventPhase === Event.BUBBLING_PHASE && isDatatip)\n ) {\n targetRef.current = event.target as HTMLElement;\n }\n },\n [isDatatip]\n );\n\n const onBlurCallback = useCallback((event: FocusEvent) => {\n if (event.eventPhase === Event.AT_TARGET) {\n // reset focusActive flag\n focusActive.current = false;\n }\n }, []);\n\n const focusInitProps = isLogicalFocusStrategy\n ? {}\n : {\n onFocus: onFocusCallback,\n onBlur: onBlurCallback\n };\n\n const hoverInitProps = {\n onMouseEnter: useCallback((event: MouseEvent) => {\n targetRef.current = event.target as HTMLElement;\n }, [])\n };\n\n const keyInitProps = {\n onKeyDown: useCallback(\n (event: KeyboardEvent) => {\n if (event.code === 'Escape' && focusActive.current) {\n event.preventDefault();\n // focus no longer active after Escape\n focusActive.current = false;\n onToggle?.({ value: false });\n }\n },\n [onToggle]\n )\n };\n\n let actionableProps;\n\n const __resetCoords = () => {\n coordsRef.current = { x: -9999, y: -9999 };\n };\n\n if (disabled) {\n actionableProps = mergeProps(hoverProps, focusProps, hoverInitProps, focusInitProps);\n } else {\n const anchorInitProps = {\n 'aria-describedby': uniqueIdRef.current,\n\n ...(isPointer && {\n onMouseLeave: () => {\n if (state === 'mounting') {\n return;\n }\n toggleTimeoutClear();\n },\n onMouseMove: (event: MouseEvent) => {\n handleMouseMove(event);\n }\n })\n };\n actionableProps = mergeProps(\n hoverProps,\n focusProps,\n touchProps,\n hoverInitProps,\n focusInitProps,\n anchorInitProps,\n keyInitProps,\n isLogicalFocusStrategy ? { onLogicalFocus, onLogicalBlur } : {}\n );\n }\n\n // No need to process tooltip if disabled or no text is provided\n // Include actionableProps to detect mouseenter in components\n // hovered state won't update unless actionableProps are already present in the component when mouse enters\n if (disabled) {\n toggleTimeoutClear();\n __resetCoords();\n return {\n tooltipContent: null,\n tooltipProps: actionableProps\n };\n }\n\n const placement = position as Placement;\n\n const handleTransitionEnd = () => {\n if (state === 'mounting') {\n setState('mounted');\n }\n if (state === 'unmounting') {\n __resetCoords();\n setState('unmounted');\n }\n };\n\n const renderRawContent = (\n <TooltipContent\n id={uniqueIdRef.current}\n testId={testId}\n isOpen={['mounting', 'mounted', 'unmountPending'].includes(state)}\n {...popoverHoverProps}\n isDatatip={isDatatip}\n onTransitionEnd={handleTransitionEnd}>\n {text}\n </TooltipContent>\n );\n\n const renderContent = getWrappedTooltipContent(\n renderRawContent,\n variant,\n currentColorScheme,\n usedRef,\n placement,\n offset\n );\n\n return {\n tooltipContent: !['unmounted', 'mountPending'].includes(state) && renderContent,\n tooltipProps: actionableProps\n };\n};\n"],"names":["useRef","useTestId","useComponentTheme","TooltipContentRedwoodTheme","useThemeInterpolations","useAnimation","useEffect","_jsx","classNames","getGlobalTooltipManager","useState","useHover","useTouch","useFocus","useId","SHOW_TOOLTIP_DELAY","HIDE_TOOLTIP_DELAY","useColorScheme","useCallback","mergeProps","getWrappedTooltipContent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useTooltipControlled-61581889.js","sources":["../../src/hooks/UNSAFE_useTooltip/TooltipContent.tsx","../../src/hooks/UNSAFE_useTooltip/useTooltipControlled.tsx"],"sourcesContent":["import { useAnimation } from '../UNSAFE_useAnimation';\nimport { useComponentTheme } from '../UNSAFE_useComponentTheme';\nimport { useEffect, useRef } from 'preact/hooks';\nimport { HTMLAttributesSignalExcluded } from '../../utils/UNSAFE_attributeUtils';\nimport {\n TooltipContentVariantOptions,\n TooltipContentStyles\n} from './themes/TooltipContentStyles.css';\n\nimport { useTestId, TestIdProps } from '../UNSAFE_useTestId';\nimport { useThemeInterpolations } from '../UNSAFE_useThemeInterpolations';\nimport { classNames } from '../../utils/UNSAFE_classNames';\nimport { TooltipContentRedwoodTheme } from './themes/redwood/TooltipContentTheme';\n\ntype IntrinsicProps = Pick<HTMLAttributesSignalExcluded<HTMLDivElement>, 'children'>;\n\ntype Status = 'mounted' | 'unmounted';\n\ntype ContentProps = IntrinsicProps & {\n id: string;\n isOpen: boolean;\n isDatatip: boolean;\n onTransitionEnd?: () => void;\n} & TestIdProps;\n\nexport const TooltipContent = ({\n children,\n id,\n isOpen,\n isDatatip,\n onTransitionEnd,\n testId,\n ...props\n}: ContentProps) => {\n const wrapperRef = useRef<HTMLDivElement>(null);\n const popoverRef = useRef<HTMLDivElement>(null);\n\n const testIdProps = useTestId(testId);\n\n const { baseTheme, variantClasses, styles } = useComponentTheme<\n TooltipContentVariantOptions,\n TooltipContentStyles\n >(TooltipContentRedwoodTheme, {\n variant: isDatatip ? 'datatip' : 'tooltip'\n });\n\n const schemeClass = useThemeInterpolations();\n\n const { nodeRef } = useAnimation<Status, HTMLDivElement>(isOpen ? 'mounted' : 'unmounted', {\n animationStates: {\n mounted: (_node) => {\n const childNode = _node.firstChild as HTMLDivElement;\n return {\n from: {\n maxHeight: '0',\n opacity: '0%'\n },\n to: {\n maxHeight: `${childNode?.offsetHeight}px`,\n opacity: isDatatip ? '100%' : '95%'\n },\n options: {\n duration: isDatatip ? 1 : 150,\n easing: [0.0, 0.0, 0.2, 1]\n }\n };\n },\n unmounted: (_node) => {\n return {\n from: {\n opacity: isDatatip ? '100%' : '95%'\n },\n to: {\n maxHeight: '0',\n opacity: '0%'\n },\n options: {\n duration: isDatatip ? 1 : 150,\n easing: [0.0, 0.0, 0.2, 1]\n }\n };\n }\n },\n isAnimatedOnMount: true,\n onAnimationEnd: () => onTransitionEnd?.()\n });\n\n // Set up initial wrapper height so Tooltip can animate from the bottom to the top\n useEffect(() => {\n if (wrapperRef.current && popoverRef.current?.offsetHeight) {\n wrapperRef.current.style.height = `${popoverRef.current?.offsetHeight}px`;\n }\n }, []);\n\n return (\n <div\n ref={wrapperRef}\n id={id}\n role=\"tooltip\"\n class={classNames([styles.wrapper, schemeClass, baseTheme])}\n {...testIdProps}>\n <div ref={nodeRef} class={styles.inner} {...props}>\n <div ref={popoverRef} class={classNames([variantClasses, styles.content])}>\n {children}\n </div>\n </div>\n </div>\n );\n};\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\n\nimport { ComponentChild } from 'preact';\nimport { useState, useRef, useEffect, useCallback } from 'preact/hooks';\nimport { useId } from '../UNSAFE_useId';\nimport { Placement, Coords } from '../../UNSAFE_Floating';\nimport { useHover } from '../UNSAFE_useHover';\nimport { useFocus } from '../UNSAFE_useFocus';\nimport { useTouch } from '../UNSAFE_useTouch';\nimport { mergeProps } from '../../utils/UNSAFE_mergeProps';\nimport { TooltipContent } from './TooltipContent';\nimport { useColorScheme } from '../UNSAFE_useColorScheme';\nimport { TestIdProps } from '../UNSAFE_useTestId';\nimport {\n getGlobalTooltipManager,\n getWrappedTooltipContent,\n SHOW_TOOLTIP_DELAY,\n HIDE_TOOLTIP_DELAY\n} from '../../utils/PRIVATE_tooltipUtils';\n\nexport type Position = Omit<Placement, 'center'>;\n\nexport const anchorTos = ['element', 'pointer'] as const;\ntype AnchorTo = (typeof anchorTos)[number];\n\ntype AnchorModel = { x: AnchorTo; y: AnchorTo };\n\ntype Props = {\n text?: string;\n variant?: 'tooltip' | 'datatip';\n isOpen: boolean;\n position?: Position;\n isDisabled?: boolean;\n focusStrategy?: 'browser' | 'logical';\n anchor?: AnchorModel;\n offset?: { mainAxis?: number; crossAxis?: number };\n onToggle?: (details: { value: boolean }) => void;\n} & TestIdProps;\n\n/**\n * The 'mounting' and 'unmounting' states are related to the animation. The 'unmounted' state\n * is used for conditional rendering. In this state, the Tooltip content is completely removed\n * from the DOM. The 'mountPending' and 'unmountPending' are used when timeout is active.\n * The 'reposition' state is used to trigger a transition with new coordinates within\n * the same element.\n */\ntype Status =\n | 'unmounted'\n | 'mountPending'\n | 'mounting'\n | 'mounted'\n | 'unmountPending'\n | 'unmounting';\n\nexport const useTooltipControlled = ({\n text,\n isOpen = false,\n variant = 'tooltip',\n position = 'bottom',\n focusStrategy = 'browser',\n isDisabled = false,\n anchor = { x: 'element', y: 'element' },\n offset,\n onToggle,\n testId\n}: Props): {\n tooltipContent: ComponentChild;\n tooltipProps: Record<string, any>;\n} => {\n // Global TooltipManager singleton instance\n const globalTooltipManager = getGlobalTooltipManager();\n\n const disabled = isDisabled || !text;\n const isInitialRenderState = useRef<boolean>(true);\n\n const [state, _setState] = useState<Status>(!disabled && isOpen ? 'mounting' : 'unmounted');\n const stateRef = useRef<Status>(state);\n const setState = (newState: Status) => {\n stateRef.current = newState;\n _setState(newState);\n };\n\n // const tooltipId = useRef<string>(useId());\n\n const [needsUpdate, setNeedsUpdate] = useState<boolean>(false);\n setNeedsUpdate(false);\n\n const isDatatip = variant === 'datatip';\n\n const [isLogicalFocus, setLogicalFocus] = useState<boolean>(false);\n const isLogicalFocusStrategy = focusStrategy === 'logical';\n const isInitialRenderTrigger = useRef<boolean>(true);\n const { hoverProps, isHover } = useHover({});\n const { touchProps, isTouch } = useTouch({ isDisabled }); // TODO replace by useLongPress actionhook\n // we only care about keyboard focus, don't enable useFocus hook if isHover or isTouch are active\n const { focusProps, isFocus } = useFocus({\n isDisabled: isLogicalFocusStrategy\n });\n // only enable the popoverHover hook if the tooltip is actually open\n const { hoverProps: popoverHoverProps, isHover: popoverIsHover } = useHover({\n isDisabled: isDisabled || !isOpen\n });\n\n const isPointer = anchor.x === 'pointer' || anchor.y === 'pointer';\n\n const uniqueIdRef = useRef<string>(useId());\n const targetRef = useRef<HTMLElement | null>(null);\n const coordsRef = useRef<Coords>({ x: -9999, y: -9999 });\n // if anchor is set to pointer and target does not have keyboard focus, use coords\n const usedRef = isPointer && !isFocus ? coordsRef : targetRef;\n const showDelay = isDatatip ? 0 : SHOW_TOOLTIP_DELAY;\n const hideDelay = isDatatip ? 0 : HIDE_TOOLTIP_DELAY;\n const toggleTimeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n const currentColorScheme = useColorScheme();\n\n const focusActive = useRef<boolean>(false);\n const hoverActive = useRef<boolean>(false);\n\n const toggleTimeoutClear = () => {\n if (toggleTimeoutRef.current) {\n clearTimeout(toggleTimeoutRef.current);\n toggleTimeoutRef.current = null;\n }\n };\n\n /*\n * This effect executes when isFocus/isLogicalFocus changes\n * - focusActive ref is set if the focus change follows a Tab key\n * - hoverActive ref is reset, if focusActive becomes true\n */\n useEffect(() => {\n if (isLogicalFocusStrategy) {\n focusActive.current = isLogicalFocus;\n } else {\n focusActive.current = isFocus && globalTooltipManager.isTabKeyActive();\n }\n if (focusActive.current) {\n hoverActive.current = false;\n }\n }, [isFocus, isLogicalFocus, isLogicalFocusStrategy, globalTooltipManager]);\n\n /*\n * This effect executes when isHover state changes\n * - focusActive ref is reset, if hoverActive becomes true\n */\n useEffect(() => {\n hoverActive.current = isHover;\n }, [isHover]);\n\n useEffect(() => {\n // inner function for state transitions on various trigger changes\n const updateState = (open: boolean) => {\n if (open) {\n // At least one toggle event is set to true\n switch (state) {\n case 'unmounted':\n setState('mountPending'); // Set mount pending state if tooltip is unmounted\n break;\n case 'unmounting': // Switch back to mounting when unmounting was in progress and the tooltip should stay on\n setState('mounting');\n onToggle?.({ value: true });\n break;\n case 'unmountPending':\n toggleTimeoutClear();\n setState('mounted'); // Clear timers immediately and keep the tooltip mounted\n break;\n }\n } else {\n // No toggle events are set to true\n switch (state) {\n case 'mounting':\n case 'mounted':\n setState('unmountPending'); // Set unmount pending state if tooltip is mounted or in mounting transition\n break;\n case 'mountPending':\n toggleTimeoutClear();\n __resetCoords();\n setState('unmounted'); // Unmount tooltip immediately if mounting is pending\n break;\n }\n }\n };\n\n if (isInitialRenderTrigger.current) {\n // On onitial render do not trigger rerender\n isInitialRenderTrigger.current = false;\n return;\n }\n // When pointer is used, handleMouseMove method is responsible for state updates\n // until the tooltip is mounted\n if (isPointer && isHover && state === 'unmounted') {\n return;\n }\n updateState(\n (isHover && hoverActive.current) ||\n ((isFocus || isLogicalFocus) && focusActive.current) ||\n popoverIsHover ||\n isTouch\n );\n }, [isHover, isFocus, isLogicalFocus, popoverIsHover, isTouch, isPointer, state, onToggle]);\n\n const destroyCallback = useCallback(() => {\n focusActive.current = false;\n hoverActive.current = false;\n onToggle?.({ value: false });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []); // don't want to depend on the 'onToggle' prop as some clients tend to pass a new callback on each render\n\n useEffect(() => {\n if (isInitialRenderState.current) {\n // On onitial render do not trigger rerender\n isInitialRenderState.current = false;\n return;\n }\n setState(isOpen ? 'mounting' : 'unmounting');\n }, [isOpen]);\n\n useEffect(() => {\n return () => {\n // make sure to clear the toggle timeout on unmount\n toggleTimeoutClear();\n // reset focusActive and hoverActive refs\n focusActive.current = false;\n hoverActive.current = false;\n };\n }, []);\n\n /*\n * This effect executes when the component state changes.\n * On 'mounted' state, the tooltip registers itself with the global tooltip manager.\n * On 'unmounted', the tooltip unregisters from the global tooltip manager.\n */\n useEffect(() => {\n if (state === 'mounted') {\n globalTooltipManager.register(destroyCallback);\n } else if (state === 'unmounted') {\n globalTooltipManager.unregister(destroyCallback);\n }\n }, [state, destroyCallback, globalTooltipManager]);\n\n /*\n * Set a timer to toggle the state afer the 'pending' period expires\n */\n useEffect(() => {\n if (!toggleTimeoutRef.current && (state === 'mountPending' || state === 'unmountPending')) {\n toggleTimeoutRef.current = setTimeout(\n () => {\n toggleTimeoutClear();\n // make sure the state has not changed in the mean time before onToggle\n if (\n (state === 'mountPending' || state === 'unmountPending') &&\n state === stateRef.current\n ) {\n onToggle?.({ value: state === 'mountPending' });\n }\n },\n state === 'mountPending' ? showDelay : hideDelay\n );\n }\n return () => {\n toggleTimeoutClear();\n };\n }, [state, showDelay, hideDelay, onToggle]);\n\n const handleMouseMove = (event: MouseEvent) => {\n // we only want track mouse move while the state is 'unmounted' or when moving a 'mounted' datatip\n if (state !== 'unmounted' && !(variant === 'datatip' && state === 'mounted')) {\n return;\n }\n const targetRect = targetRef?.current?.getBoundingClientRect();\n\n // Tooltip maintains static offset from left side of window\n const distanceX = document.body.scrollLeft + (targetRect?.left || 0) + (targetRect?.width || 0);\n\n // Tooltip maintains static offset from top side of the window\n const distanceY = document.body.scrollTop + (targetRect?.top || 0) + (targetRect?.height || 0);\n\n // Display tooltip at the mouse position if both anchors are set to pointer\n const x = anchor.x === 'pointer' ? event.clientX : distanceX;\n const y = anchor.y === 'pointer' ? event.clientY : distanceY;\n\n if (state === 'mounted') {\n coordsRef.current = { x, y };\n if (needsUpdate !== true) setNeedsUpdate(true);\n } else if (state === 'unmounted') {\n toggleTimeoutClear();\n toggleTimeoutRef.current = setTimeout(() => {\n if (state === 'unmounted') {\n coordsRef.current = { x, y };\n onToggle?.({ value: true });\n }\n }, hideDelay);\n }\n };\n\n const onLogicalFocus = (target: HTMLElement) => {\n setLogicalFocus(true);\n targetRef.current = target;\n usedRef.current = target;\n };\n\n const onLogicalBlur = () => {\n setLogicalFocus(false);\n };\n\n const onFocusCallback = useCallback(\n (event: FocusEvent) => {\n if (\n event.eventPhase === Event.AT_TARGET ||\n (event.eventPhase === Event.BUBBLING_PHASE && isDatatip)\n ) {\n targetRef.current = event.target as HTMLElement;\n }\n },\n [isDatatip]\n );\n\n const onBlurCallback = useCallback((event: FocusEvent) => {\n if (event.eventPhase === Event.AT_TARGET) {\n // reset focusActive flag\n focusActive.current = false;\n }\n }, []);\n\n const focusInitProps = isLogicalFocusStrategy\n ? {}\n : {\n onFocus: onFocusCallback,\n onBlur: onBlurCallback\n };\n\n const hoverInitProps = {\n onMouseEnter: useCallback((event: MouseEvent) => {\n targetRef.current = event.target as HTMLElement;\n }, [])\n };\n\n const keyInitProps = {\n onKeyDown: useCallback(\n (event: KeyboardEvent) => {\n if (event.code === 'Escape' && focusActive.current) {\n event.preventDefault();\n // focus no longer active after Escape\n focusActive.current = false;\n onToggle?.({ value: false });\n }\n },\n [onToggle]\n )\n };\n\n let actionableProps;\n\n const __resetCoords = () => {\n coordsRef.current = { x: -9999, y: -9999 };\n };\n\n if (disabled) {\n actionableProps = mergeProps(hoverProps, focusProps, hoverInitProps, focusInitProps);\n } else {\n const anchorInitProps = {\n 'aria-describedby': uniqueIdRef.current,\n\n ...(isPointer && {\n onMouseLeave: () => {\n if (state === 'mounting') {\n return;\n }\n toggleTimeoutClear();\n },\n onMouseMove: (event: MouseEvent) => {\n handleMouseMove(event);\n }\n })\n };\n actionableProps = mergeProps(\n hoverProps,\n focusProps,\n touchProps,\n hoverInitProps,\n focusInitProps,\n anchorInitProps,\n keyInitProps,\n isLogicalFocusStrategy ? { onLogicalFocus, onLogicalBlur } : {}\n );\n }\n\n // No need to process tooltip if disabled or no text is provided\n // Include actionableProps to detect mouseenter in components\n // hovered state won't update unless actionableProps are already present in the component when mouse enters\n if (disabled) {\n toggleTimeoutClear();\n __resetCoords();\n return {\n tooltipContent: null,\n tooltipProps: actionableProps\n };\n }\n\n const placement = position as Placement;\n\n const handleTransitionEnd = () => {\n if (state === 'mounting') {\n setState('mounted');\n }\n if (state === 'unmounting') {\n __resetCoords();\n setState('unmounted');\n }\n };\n\n const renderRawContent = (\n <TooltipContent\n id={uniqueIdRef.current}\n testId={testId}\n isOpen={['mounting', 'mounted', 'unmountPending'].includes(state)}\n {...popoverHoverProps}\n isDatatip={isDatatip}\n onTransitionEnd={handleTransitionEnd}>\n {text}\n </TooltipContent>\n );\n\n const renderContent = getWrappedTooltipContent(\n renderRawContent,\n variant,\n currentColorScheme,\n usedRef,\n placement,\n offset\n );\n\n return {\n tooltipContent: !['unmounted', 'mountPending'].includes(state) && renderContent,\n tooltipProps: actionableProps\n };\n};\n"],"names":["useRef","useTestId","useComponentTheme","TooltipContentRedwoodTheme","useThemeInterpolations","useAnimation","useEffect","_jsx","classNames","getGlobalTooltipManager","useState","useHover","useTouch","useFocus","useId","SHOW_TOOLTIP_DELAY","HIDE_TOOLTIP_DELAY","useColorScheme","useCallback","mergeProps","getWrappedTooltipContent"],"mappings":"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"}
|