@oracle/oraclejet-preact 20.0.1 → 20.0.3
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/BaseCardView-b8119561.js +2 -0
- package/amd/{BaseCardView-16fda4c3.js.map → BaseCardView-b8119561.js.map} +1 -1
- package/amd/CardFlexView-aa2f3de8.js +2 -0
- package/amd/{CardFlexView-d3eb7373.js.map → CardFlexView-aa2f3de8.js.map} +1 -1
- package/amd/CardGridView-85f90c75.js +2 -0
- package/amd/{CardGridView-842f70cd.js.map → CardGridView-85f90c75.js.map} +1 -1
- package/amd/ColorPicker-141fa49d.js +2 -0
- package/amd/{ColorPicker-e3167e4c.js.map → ColorPicker-141fa49d.js.map} +1 -1
- package/amd/{InlineSelectSingle-f4438110.js → InlineSelectSingle-87bc8a45.js} +2 -2
- package/amd/{InlineSelectSingle-f4438110.js.map → InlineSelectSingle-87bc8a45.js.map} +1 -1
- package/amd/{InputColor-51d7e40c.js → InputColor-58e3fce3.js} +2 -2
- package/amd/{InputColor-51d7e40c.js.map → InputColor-58e3fce3.js.map} +1 -1
- package/amd/InputDatePicker-7227a858.js +2 -0
- package/amd/{InputDatePicker-030e345a.js.map → InputDatePicker-7227a858.js.map} +1 -1
- package/amd/ListView-2678b2af.js +2 -0
- package/amd/{ListView-02a92d18.js.map → ListView-2678b2af.js.map} +1 -1
- package/amd/NavigationList-a6bb123d.js +2 -0
- package/amd/NavigationList-a6bb123d.js.map +1 -0
- package/amd/NavigationListItem-10bf6656.js +2 -0
- package/amd/NavigationListItem-10bf6656.js.map +1 -0
- package/amd/NavigationListLinkItem-df1826e6.js +2 -0
- package/amd/NavigationListLinkItem-df1826e6.js.map +1 -0
- package/amd/{OverflowTabBar-5ff68da7.js → OverflowTabBar-f8bf9356.js} +2 -2
- package/amd/{OverflowTabBar-5ff68da7.js.map → OverflowTabBar-f8bf9356.js.map} +1 -1
- package/amd/OverflowTabBarItem-0aa39512.js +2 -0
- package/amd/{OverflowTabBarItem-926b0c8a.js.map → OverflowTabBarItem-0aa39512.js.map} +1 -1
- package/amd/PRIVATE_BaseCardView.js +1 -1
- package/amd/PRIVATE_SelectCommon.js +1 -1
- package/amd/PRIVATE_TableList.js +1 -1
- package/amd/RemovableNavigationListItem-60593d4c.js +2 -0
- package/amd/{RemovableNavigationListItem-e298c5de.js.map → RemovableNavigationListItem-60593d4c.js.map} +1 -1
- package/amd/ReorderableTabBar-19a503c7.js +2 -0
- package/amd/{ReorderableTabBar-0c69bfd4.js.map → ReorderableTabBar-19a503c7.js.map} +1 -1
- package/amd/{SelectMobileFieldInput-83f56b22.js → SelectMobileFieldInput-4795a794.js} +2 -2
- package/amd/{SelectMobileFieldInput-83f56b22.js.map → SelectMobileFieldInput-4795a794.js.map} +1 -1
- package/amd/{SelectMultiple-cb5fdd20.js → SelectMultiple-e216b16c.js} +2 -2
- package/amd/{SelectMultiple-cb5fdd20.js.map → SelectMultiple-e216b16c.js.map} +1 -1
- package/amd/{SelectSingle-02e85b6e.js → SelectSingle-d53cf202.js} +2 -2
- package/amd/{SelectSingle-02e85b6e.js.map → SelectSingle-d53cf202.js.map} +1 -1
- package/amd/TabBar-92bac52f.js +2 -0
- package/amd/{TabBar-de723fbc.js.map → TabBar-92bac52f.js.map} +1 -1
- package/amd/TabBarMixed-5b5a5047.js +2 -0
- package/amd/{TabBarMixed-cfd346bf.js.map → TabBarMixed-5b5a5047.js.map} +1 -1
- package/amd/Theme-redwood/theme.css +80 -80
- package/amd/Theme-stable/theme.css +276 -276
- package/amd/UNSAFE_CardFlexView.js +1 -1
- package/amd/UNSAFE_CardGridView.js +1 -1
- package/amd/UNSAFE_ColorPicker.js +1 -1
- package/amd/UNSAFE_InlineSelectSingle.js +1 -1
- package/amd/UNSAFE_InputColor.js +1 -1
- package/amd/UNSAFE_InputDatePicker.js +1 -1
- package/amd/UNSAFE_ListView.js +1 -1
- package/amd/UNSAFE_NavigationList.js +1 -1
- package/amd/UNSAFE_NavigationListCommon.js +1 -1
- package/amd/UNSAFE_OverflowTabBar.js +1 -1
- package/amd/UNSAFE_ReorderableTabBar.js +1 -1
- package/amd/UNSAFE_SelectMultiple.js +1 -1
- package/amd/UNSAFE_SelectSingle.js +1 -1
- package/amd/UNSAFE_TabBar.js +1 -1
- package/amd/UNSAFE_TabBarCommon.js +1 -1
- package/amd/UNSAFE_TabBarMixed.js +1 -1
- package/amd/{useDisplayValue-e70c76d8.js → useDisplayValue-9b671893.js} +2 -2
- package/amd/{useDisplayValue-e70c76d8.js.map → useDisplayValue-9b671893.js.map} +1 -1
- package/amd/useNavigationListItem-582f5564.js +2 -0
- package/amd/useNavigationListItem-582f5564.js.map +1 -0
- package/amd/useSelectCommon-f33709d2.js +2 -0
- package/amd/useSelectCommon-f33709d2.js.map +1 -0
- package/cjs/{BaseCardView-c0909427.js → BaseCardView-ba63723a.js} +4 -1
- package/cjs/{BaseCardView-c0909427.js.map → BaseCardView-ba63723a.js.map} +1 -1
- package/cjs/{Chart-13a198f3.js → Chart-966da017.js} +2 -2
- package/cjs/{Chart-13a198f3.js.map → Chart-966da017.js.map} +1 -1
- package/cjs/{ColorPicker-2c99c0fb.js → ColorPicker-8f0b6000.js} +2 -2
- package/cjs/{ColorPicker-2c99c0fb.js.map → ColorPicker-8f0b6000.js.map} +1 -1
- package/cjs/{NavigationListItem-cdfd0740.js → NavigationList-d0d74565.js} +3 -8
- package/cjs/NavigationList-d0d74565.js.map +1 -0
- package/cjs/NavigationListItem-b0b03089.js +12 -0
- package/cjs/NavigationListItem-b0b03089.js.map +1 -0
- package/cjs/{NavigationListLinkItem-62c3912e.js → NavigationListLinkItem-317a5200.js} +8 -99
- package/cjs/NavigationListLinkItem-317a5200.js.map +1 -0
- package/cjs/{OverflowTabBarItem-4bbd5830.js → OverflowTabBarItem-19ad4971.js} +6 -4
- package/cjs/{OverflowTabBarItem-4bbd5830.js.map → OverflowTabBarItem-19ad4971.js.map} +1 -1
- package/cjs/PRIVATE_BaseCardView.js +1 -1
- package/cjs/PRIVATE_Chart.js +4 -4
- package/cjs/PRIVATE_SelectCommon.js +2 -2
- package/cjs/PRIVATE_TableList.js +4 -4
- package/cjs/SegmentStyles.styles.css +9 -12
- package/cjs/SegmentStyles.styles2.css +12 -9
- package/cjs/{SelectMobileFieldInput-111a95a5.js → SelectMobileFieldInput-cbf57541.js} +2 -2
- package/cjs/{SelectMobileFieldInput-111a95a5.js.map → SelectMobileFieldInput-cbf57541.js.map} +1 -1
- package/cjs/{TabBar-27ae2c21.js → TabBar-d84e222e.js} +9 -1
- package/cjs/{TabBar-27ae2c21.js.map → TabBar-d84e222e.js.map} +1 -1
- package/cjs/{TabBarLinkItem-891a5f10.js → TabBarLinkItem-e924f83b.js} +2 -2
- package/cjs/{TabBarLinkItem-891a5f10.js.map → TabBarLinkItem-e924f83b.js.map} +1 -1
- package/cjs/Theme-redwood/theme.css +160 -160
- package/cjs/Theme-stable/theme.css +150 -150
- package/cjs/UNSAFE_BarChart.js +4 -4
- package/cjs/UNSAFE_CardFlexView.js +1 -1
- package/cjs/UNSAFE_CardGridView.js +1 -1
- package/cjs/UNSAFE_ColorPicker.js +25 -25
- package/cjs/UNSAFE_ComboChart.js +4 -4
- package/cjs/UNSAFE_InlineSelectSingle.js +2 -2
- package/cjs/UNSAFE_InputColor.js +2 -2
- package/cjs/UNSAFE_LineAreaChart.js +4 -4
- package/cjs/UNSAFE_ListView.js +53 -53
- package/cjs/UNSAFE_NavigationList.js +10 -8
- package/cjs/UNSAFE_NavigationList.js.map +1 -1
- package/cjs/UNSAFE_NavigationListCommon.js +14 -13
- package/cjs/UNSAFE_NavigationListCommon.js.map +1 -1
- package/cjs/UNSAFE_OverflowTabBar.js +56 -53
- package/cjs/UNSAFE_OverflowTabBar.js.map +1 -1
- package/cjs/UNSAFE_ReorderableTabBar.js +43 -30
- package/cjs/UNSAFE_ReorderableTabBar.js.map +1 -1
- package/cjs/UNSAFE_ScatterChart.js +4 -4
- package/cjs/UNSAFE_SelectMultiple.js +2 -2
- package/cjs/UNSAFE_SelectSingle.js +3 -3
- package/cjs/UNSAFE_TabBar.js +57 -54
- package/cjs/UNSAFE_TabBar.js.map +1 -1
- package/cjs/UNSAFE_TabBarCommon.js +78 -75
- package/cjs/UNSAFE_TabBarCommon.js.map +1 -1
- package/cjs/UNSAFE_TabBarMixed.js +38 -35
- package/cjs/UNSAFE_TabBarMixed.js.map +1 -1
- package/cjs/{useDisplayValue-60dbe1c3.js → useDisplayValue-4ace417c.js} +2 -2
- package/cjs/{useDisplayValue-60dbe1c3.js.map → useDisplayValue-4ace417c.js.map} +1 -1
- package/cjs/useNavigationListItem-b97e76d5.js +104 -0
- package/cjs/useNavigationListItem-b97e76d5.js.map +1 -0
- package/cjs/{useSelectCommon-b0d7feb3.js → useSelectCommon-27afecfa.js} +8 -3
- package/cjs/useSelectCommon-27afecfa.js.map +1 -0
- package/es/{BaseButton-243d200f.js → BaseButton-41068c85.js} +2 -2
- package/es/{BaseButton-243d200f.js.map → BaseButton-41068c85.js.map} +1 -1
- package/es/BaseCardView-b3d8bae0.js +6 -6
- package/es/BaseDiagram-b5b22e53.js +7 -7
- package/es/BaseRichSelection-223d9830.js +9 -9
- package/es/BaseSelector-7cbc48bc.js +1 -1
- package/es/BaseSwatchView-2e1e6bd2.js +2 -2
- package/es/{Button-a76ecfa8.js → Button-956f51c7.js} +2 -2
- package/es/{Button-a76ecfa8.js.map → Button-956f51c7.js.map} +1 -1
- package/es/ButtonSet-b7464e9a.js +2 -2
- package/es/ButtonSetButton-8685c752.js +1 -1
- package/es/ButtonSetIconButton-c8ed85f9.js +4 -4
- package/es/{Center-3860fe60.js → Center-71a03e65.js} +2 -2
- package/es/{Center-3860fe60.js.map → Center-71a03e65.js.map} +1 -1
- package/es/{Chart-b866a74c.js → Chart-8c63da28.js} +12 -12
- package/es/{Chart-b866a74c.js.map → Chart-8c63da28.js.map} +1 -1
- package/es/CheckboxControl-c008372a.js +6 -6
- package/es/CheckboxRadioField-a387b3cb.js +6 -6
- package/es/CheckboxRadioLabelValueLayout-e3845f16.js +1 -1
- package/es/CheckboxSet-3aab5935.js +1 -1
- package/es/Chip-4efea02e.js +1 -1
- package/es/ClearIcon-f85ea340.js +1 -1
- package/es/CollapseIcon-84f6ba8e.js +1 -1
- package/es/Collapsible-2608ce3b.js +2 -2
- package/es/ColorPalette-950c6fc6.js +2 -2
- package/es/{ColorPicker-8c297849.js → ColorPicker-ae648c4c.js} +3 -3
- package/es/{ColorPicker-8c297849.js.map → ColorPicker-ae648c4c.js.map} +1 -1
- package/es/ColorSwatch-8339ee2f.js +4 -4
- package/es/{CompactLabelAssistance-50ff3f7e.js → CompactLabelAssistance-e2fcfcab.js} +6 -6
- package/es/{CompactLabelAssistance-50ff3f7e.js.map → CompactLabelAssistance-e2fcfcab.js.map} +1 -1
- package/es/CompactUserAssistance-6aa8894b.js +5 -5
- package/es/ComponentMessageContainer-d16c8b1f.js +4 -4
- package/es/{DatePicker-fa7d39a7.js → DatePicker-7287f0f9.js} +8 -8
- package/es/{DatePicker-fa7d39a7.js.map → DatePicker-7287f0f9.js.map} +1 -1
- package/es/DatePickerHeader-f8cf86bb.js +3 -3
- package/es/DiagramStyles.styles2.css +16 -10
- package/es/DiagramStyles.styles3.css +10 -16
- package/es/{Dialog-d1de5b06.js → Dialog-83368f52.js} +7 -7
- package/es/{Dialog-d1de5b06.js.map → Dialog-83368f52.js.map} +1 -1
- package/es/DirectionalCollapseArrowIcon-132761da.js +1 -1
- package/es/DirectionalExpandArrowIcon-5bc45cad.js +1 -1
- package/es/{Dropdown-9d9813a9.js → Dropdown-019aba37.js} +6 -6
- package/es/{Dropdown-9d9813a9.js.map → Dropdown-019aba37.js.map} +1 -1
- package/es/{EmbeddedIconButton-9f0e56b7.js → EmbeddedIconButton-46434710.js} +2 -2
- package/es/{EmbeddedIconButton-9f0e56b7.js.map → EmbeddedIconButton-46434710.js.map} +1 -1
- package/es/{EnvironmentProvider-6cf8ed37.js → EnvironmentProvider-6a0a8212.js} +3 -3
- package/es/{EnvironmentProvider-6cf8ed37.js.map → EnvironmentProvider-6a0a8212.js.map} +1 -1
- package/es/Expander-1347e769.js +1 -1
- package/es/{Flex-fc483125.js → Flex-03129963.js} +2 -2
- package/es/{Flex-fc483125.js.map → Flex-03129963.js.map} +1 -1
- package/es/{Floating-be4c0cb6.js → Floating-4a82db94.js} +4 -4
- package/es/{Floating-be4c0cb6.js.map → Floating-4a82db94.js.map} +1 -1
- package/es/{Grid-6f92d323.js → Grid-9e4b4f19.js} +2 -2
- package/es/{Grid-6f92d323.js.map → Grid-9e4b4f19.js.map} +1 -1
- package/es/GroupLoadingIndicator-19c6545a.js +1 -1
- package/es/{HighlightText-dd484ffd.js → HighlightText-0205faef.js} +2 -2
- package/es/{HighlightText-dd484ffd.js.map → HighlightText-0205faef.js.map} +1 -1
- package/es/Icon-4983d06e.js +3 -3
- package/es/IconButton-7f91481c.js +4 -4
- package/es/IconSwitchButton-05f1f602.js +4 -4
- package/es/IconToggleButton-808818f5.js +4 -4
- package/es/{IconUserAssistance-6abc7837.js → IconUserAssistance-61978211.js} +3 -3
- package/es/{IconUserAssistance-6abc7837.js.map → IconUserAssistance-61978211.js.map} +1 -1
- package/es/InlineHelp-9eaac91c.js +1 -1
- package/es/InlineUserAssistance-890293dd.js +5 -5
- package/es/InputDateMask-ec27aee7.js +7 -7
- package/es/Label-5d1ae8d7.js +8 -8
- package/es/LabelValueLayout-c6b9945a.js +1 -1
- package/es/{Layer-6c27170e.js → Layer-535577b5.js} +3 -3
- package/es/{Layer-6c27170e.js.map → Layer-535577b5.js.map} +1 -1
- package/es/{LayerHost-3cf255a6.js → LayerHost-7931b424.js} +2 -2
- package/es/{LayerHost-3cf255a6.js.map → LayerHost-7931b424.js.map} +1 -1
- package/es/{LayerManager-e30fbfd6.js → LayerManager-52a26c55.js} +2 -2
- package/es/{LayerManager-e30fbfd6.js.map → LayerManager-52a26c55.js.map} +1 -1
- package/es/Link-8503aab2.js +1 -1
- package/es/List-4636ba9b.js +5 -5
- package/es/{LiveRegion-2e8830ae.js → LiveRegion-cebac18d.js} +2 -2
- package/es/{LiveRegion-2e8830ae.js.map → LiveRegion-cebac18d.js.map} +1 -1
- package/es/{MaxLengthLiveRegion-8f552ae2.js → MaxLengthLiveRegion-8099fde5.js} +3 -3
- package/es/{MaxLengthLiveRegion-8f552ae2.js.map → MaxLengthLiveRegion-8099fde5.js.map} +1 -1
- package/es/Message-510c2db8.js +2 -2
- package/es/{MessageLayer-1dbdc0b6.js → MessageLayer-2a7fdec7.js} +6 -6
- package/es/{MessageLayer-1dbdc0b6.js.map → MessageLayer-2a7fdec7.js.map} +1 -1
- package/es/MessagesManager-47000438.js +3 -3
- package/es/Modal-c0f730b8.js +3 -3
- package/es/{MonthView-4e05e712.js → MonthView-4b2b483a.js} +4 -4
- package/es/{MonthView-4e05e712.js.map → MonthView-4b2b483a.js.map} +1 -1
- package/es/NavigationListItem-340ab770.js +8 -8
- package/es/NavigationListLinkItem-e28fd846.js +5 -5
- package/es/NumberInputText-60be5757.js +6 -6
- package/es/OverflowTabBarItem-aa0ce915.js +5 -5
- package/es/PRIVATE_BaseCardView.js +22 -22
- package/es/PRIVATE_BaseDiagram.js +29 -29
- package/es/PRIVATE_BaseSelector.js +17 -17
- package/es/PRIVATE_BaseSwatchView.js +18 -18
- package/es/PRIVATE_Chart.js +38 -38
- package/es/PRIVATE_CheckboxControl.js +25 -25
- package/es/PRIVATE_CheckboxRadioField.js +27 -27
- package/es/PRIVATE_ClearIcon.js +18 -18
- package/es/PRIVATE_CollapsibleNavigationList.js +20 -20
- package/es/PRIVATE_DatePickerHeader.js +20 -20
- package/es/PRIVATE_DatePickerLayout.js +4 -4
- package/es/PRIVATE_EmbeddedIconButton.js +6 -6
- package/es/PRIVATE_Expander.js +19 -19
- package/es/PRIVATE_FormControls.js +21 -21
- package/es/PRIVATE_IconSwitchButton.js +17 -17
- package/es/PRIVATE_Icons/CheckboxCrossed.js +16 -16
- package/es/PRIVATE_Icons/CheckboxMixed.js +16 -16
- package/es/PRIVATE_Icons/CheckboxOff.js +16 -16
- package/es/PRIVATE_Icons/CheckboxOn.js +16 -16
- package/es/PRIVATE_Icons/DragV.js +16 -16
- package/es/PRIVATE_Icons/None.js +16 -16
- package/es/PRIVATE_List.js +21 -21
- package/es/PRIVATE_Message.js +20 -20
- package/es/PRIVATE_MessageLayer.js +12 -12
- package/es/PRIVATE_MonthView.js +7 -7
- package/es/PRIVATE_MonthYearGridView.js +7 -7
- package/es/PRIVATE_PlotArea.js +5 -5
- package/es/PRIVATE_RevealToggleIcon.js +18 -18
- package/es/PRIVATE_RichSelectionCommon.js +28 -28
- package/es/PRIVATE_SelectCommon.js +33 -33
- package/es/PRIVATE_StyledCard.js +3 -3
- package/es/PRIVATE_StyledCheckbox.js +16 -16
- package/es/PRIVATE_StyledSwitch.js +4 -4
- package/es/PRIVATE_SwatchFlexView.js +18 -18
- package/es/PRIVATE_Table.js +35 -35
- package/es/PRIVATE_TableDisplay.js +19 -19
- package/es/PRIVATE_TableList.js +26 -26
- package/es/PRIVATE_ThemedIcons/CalendarIcon.js +16 -16
- package/es/PRIVATE_ThemedIcons/ChartMarqueeSelectIcon.js +16 -16
- package/es/PRIVATE_ThemedIcons/ChartPanIcon.js +16 -16
- package/es/PRIVATE_ThemedIcons/ChartZoomIcon.js +16 -16
- package/es/PRIVATE_ThemedIcons/CheckIcon.js +16 -16
- package/es/PRIVATE_ThemedIcons/CheckboxCrossedIcon.js +16 -16
- package/es/PRIVATE_ThemedIcons/CheckboxMixedIcon.js +16 -16
- package/es/PRIVATE_ThemedIcons/CheckboxOffIcon.js +16 -16
- package/es/PRIVATE_ThemedIcons/CheckboxOnIcon.js +16 -16
- package/es/PRIVATE_ThemedIcons/CloseIcon.js +16 -16
- package/es/PRIVATE_ThemedIcons/CollapseIcon.js +17 -17
- package/es/PRIVATE_ThemedIcons/CollapseUpIcon.js +16 -16
- package/es/PRIVATE_ThemedIcons/DecrementIcon.js +16 -16
- package/es/PRIVATE_ThemedIcons/DeleteIcon.js +16 -16
- package/es/PRIVATE_ThemedIcons/DirectionalCollapseArrowIcon.js +17 -17
- package/es/PRIVATE_ThemedIcons/DirectionalExpandArrowIcon.js +17 -17
- package/es/PRIVATE_ThemedIcons/DragHandleIcon.js +16 -16
- package/es/PRIVATE_ThemedIcons/DropdownArrowIcon.js +16 -16
- package/es/PRIVATE_ThemedIcons/ExpandIcon.js +16 -16
- package/es/PRIVATE_ThemedIcons/HelpIcon.js +16 -16
- package/es/PRIVATE_ThemedIcons/IncrementIcon.js +16 -16
- package/es/PRIVATE_ThemedIcons/MenuButtonDropdownIcon.js +16 -16
- package/es/PRIVATE_ThemedIcons/MessageConfirmationIcon.js +16 -16
- package/es/PRIVATE_ThemedIcons/MessageErrorIcon.js +16 -16
- package/es/PRIVATE_ThemedIcons/MessageInfoIcon.js +16 -16
- package/es/PRIVATE_ThemedIcons/MessageWarningIcon.js +16 -16
- package/es/PRIVATE_ThemedIcons/MinusIcon.js +16 -16
- package/es/PRIVATE_ThemedIcons/NavDownIcon.js +16 -16
- package/es/PRIVATE_ThemedIcons/None.js +16 -16
- package/es/PRIVATE_ThemedIcons/OverviewHorizontalDragHandleIcon.js +16 -16
- package/es/PRIVATE_ThemedIcons/PlusIcon.js +16 -16
- package/es/PRIVATE_ThemedIcons/RadioOffIcon.js +16 -16
- package/es/PRIVATE_ThemedIcons/RadioOnIcon.js +16 -16
- package/es/PRIVATE_ThemedIcons/SortAscendingIcon.js +16 -16
- package/es/PRIVATE_ThemedIcons/SortDescendingIcon.js +16 -16
- package/es/PRIVATE_ThemedIcons/ViewHideIcon.js +16 -16
- package/es/PRIVATE_ThemedIcons/ViewIcon.js +16 -16
- package/es/PRIVATE_TimeComponent.js +19 -19
- package/es/PRIVATE_TruncatingLink.js +16 -16
- package/es/PRIVATE_VisOverview.js +16 -16
- package/es/PRIVATE_VisStatusMessage.js +5 -5
- package/es/PRIVATE_VisTabularDatatip.js +4 -4
- package/es/{Popup-22d51095.js → Popup-992b6c27.js} +10 -10
- package/es/{Popup-22d51095.js.map → Popup-992b6c27.js.map} +1 -1
- package/es/ProgressButtonLabelLayout-69549cf9.js +3 -3
- package/es/{ProgressCircle-bce87dad.js → ProgressCircle-46084d0b.js} +2 -2
- package/es/{ProgressCircle-bce87dad.js.map → ProgressCircle-46084d0b.js.map} +1 -1
- package/es/RadioItem-94909632.js +6 -6
- package/es/ReadonlyTextFieldInput-106ce959.js +1 -1
- package/es/{ReferenceLineArea-cc72b070.js → ReferenceLineArea-53129f72.js} +3 -3
- package/es/{ReferenceLineArea-cc72b070.js.map → ReferenceLineArea-53129f72.js.map} +1 -1
- package/es/RevealToggleIcon-2d622d8f.js +1 -1
- package/es/{SectionedContent-897e9c4e.js → SectionedContent-30e5bf98.js} +5 -5
- package/es/{SectionedContent-897e9c4e.js.map → SectionedContent-30e5bf98.js.map} +1 -1
- package/es/SelectMenuGroupContext-aa1fe822.js +6 -6
- package/es/{SelectMobileFieldInput-0a7c968c.js → SelectMobileFieldInput-345c4d45.js} +10 -10
- package/es/{SelectMobileFieldInput-0a7c968c.js.map → SelectMobileFieldInput-345c4d45.js.map} +1 -1
- package/es/{SelectorAll-3d39196b.js → SelectorAll-de7ba2e1.js} +5 -5
- package/es/{SelectorAll-3d39196b.js.map → SelectorAll-de7ba2e1.js.map} +1 -1
- package/es/Sheet-f9f8a4a4.js +2 -2
- package/es/SortControl-1044fcd9.js +3 -3
- package/es/SplitMenuButtonTheme.styles.css +4 -4
- package/es/SplitMenuButtonTheme.styles2.css +4 -4
- package/es/StyledCard-77623731.js +1 -1
- package/es/{StyledLabelValueLayout-bddfb884.js → StyledLabelValueLayout-bb05f474.js} +2 -2
- package/es/{StyledLabelValueLayout-bddfb884.js.map → StyledLabelValueLayout-bb05f474.js.map} +1 -1
- package/es/StyledSwitch-dbf29d95.js +2 -2
- package/es/StyledTextField-7605d76a.js +5 -5
- package/es/Submenu-cbd77756.js +1 -1
- package/es/TabBar-67ca442c.js +6 -6
- package/es/TabBarContextMenu-c3326d67.js +2 -2
- package/es/TabBarLayout-9b67d1b6.js +1 -1
- package/es/Table-2f197c6a.js +11 -11
- package/es/TableColGroup-d74bd4f5.js +1 -1
- package/es/TextArea-93ce78a7.js +225 -0
- package/es/TextArea-93ce78a7.js.map +1 -0
- package/es/TextField-7884fcd7.js +3 -3
- package/es/Theme-redwood/theme.css +465 -465
- package/es/Theme-stable/theme.css +481 -481
- package/es/TimeComponentCanvas2D-cfb0066d.js +6 -6
- package/es/ToggleButton-bb69cf10.js +1 -1
- package/es/TruncatingLink-298c6343.js +4 -4
- package/es/TruncatingText-1bf00351.js +1 -1
- package/es/UNSAFE_AccordionItemMultiple.js +18 -18
- package/es/UNSAFE_AccordionItemSingle.js +18 -18
- package/es/UNSAFE_ActionCard.js +2 -2
- package/es/UNSAFE_BarChart.js +39 -39
- package/es/UNSAFE_BareButton.js +2 -2
- package/es/UNSAFE_BaseButton.js +5 -5
- package/es/UNSAFE_Button.js +6 -6
- package/es/UNSAFE_ButtonSet.js +4 -4
- package/es/UNSAFE_ButtonSetButton.js +5 -5
- package/es/UNSAFE_ButtonSetIconButton.js +17 -17
- package/es/UNSAFE_ButtonSetItem.js +18 -18
- package/es/UNSAFE_ButtonSetMultiple.js +4 -4
- package/es/UNSAFE_ButtonSetSingle.js +4 -4
- package/es/UNSAFE_Card.js +3 -3
- package/es/UNSAFE_CardFlexView.js +22 -22
- package/es/UNSAFE_CardGridView.js +22 -22
- package/es/UNSAFE_Center.js +5 -5
- package/es/UNSAFE_Checkbox.js +25 -25
- package/es/UNSAFE_CheckboxItem.js +27 -27
- package/es/UNSAFE_CheckboxRadioField.js +4 -4
- package/es/UNSAFE_CheckboxSet.js +26 -26
- package/es/UNSAFE_Chip.js +2 -2
- package/es/UNSAFE_Collapsible.js +18 -18
- package/es/UNSAFE_ColorPalette.js +19 -19
- package/es/UNSAFE_ColorPicker.js +21 -21
- package/es/UNSAFE_ColorSwatch.js +17 -17
- package/es/UNSAFE_ComboChart.js +39 -39
- package/es/UNSAFE_ComponentMessage.js +20 -20
- package/es/UNSAFE_ContainerDiagram/themes/DiagramStyles.css.js +1 -1
- package/es/UNSAFE_ContainerDiagram.js +29 -29
- package/es/UNSAFE_ConveyorBelt.js +18 -18
- package/es/UNSAFE_DatePicker.js +27 -27
- package/es/UNSAFE_Diagram/themes/DiagramStyles.css.js +1 -1
- package/es/UNSAFE_Diagram.js +29 -29
- package/es/UNSAFE_Dialog.js +22 -22
- package/es/UNSAFE_DragHandle.js +17 -17
- package/es/UNSAFE_DrawerLayout.js +12 -12
- package/es/UNSAFE_DrawerPopup.js +11 -11
- package/es/UNSAFE_Dropdown.js +15 -15
- package/es/UNSAFE_Environment.js +4 -4
- package/es/UNSAFE_ExpandableList.js +25 -25
- package/es/UNSAFE_FilePicker.js +4 -4
- package/es/UNSAFE_FlatTreeView.js +25 -25
- package/es/UNSAFE_Flex.js +4 -4
- package/es/UNSAFE_Floating.js +11 -11
- package/es/UNSAFE_FormLayout.js +2 -2
- package/es/UNSAFE_Gantt.js +23 -23
- package/es/UNSAFE_Grid.js +4 -4
- package/es/UNSAFE_HighlightText.js +4 -4
- package/es/UNSAFE_Icon.js +16 -16
- package/es/UNSAFE_IconButton.js +17 -17
- package/es/UNSAFE_IconMenuButton.js +25 -25
- package/es/UNSAFE_IconProgressButton.js +21 -21
- package/es/UNSAFE_IconToggleButton.js +17 -17
- package/es/UNSAFE_Indexer.js +19 -19
- package/es/UNSAFE_InlineSelectSingle.js +34 -34
- package/es/UNSAFE_InputColor.js +32 -32
- package/es/UNSAFE_InputDateMask.js +26 -26
- package/es/UNSAFE_InputDatePicker.js +36 -36
- package/es/UNSAFE_InputPassword.js +26 -26
- package/es/UNSAFE_InputSensitiveText.js +27 -27
- package/es/UNSAFE_InputText.js +28 -28
- package/es/UNSAFE_InputTimeMask.js +26 -26
- package/es/UNSAFE_Label.js +25 -25
- package/es/UNSAFE_LabelValueLayout.js +4 -4
- package/es/UNSAFE_LabelledLink.js +27 -27
- package/es/UNSAFE_Layer.js +8 -8
- package/es/UNSAFE_Legend.js +27 -27
- package/es/UNSAFE_LineAreaChart.js +39 -39
- package/es/UNSAFE_Link.js +2 -2
- package/es/UNSAFE_ListItemLayout.js +4 -4
- package/es/UNSAFE_ListView.js +28 -28
- package/es/UNSAFE_LiveRegion.js +4 -4
- package/es/UNSAFE_Menu.js +26 -26
- package/es/UNSAFE_MenuButton.js +25 -25
- package/es/UNSAFE_MessageBanner.js +20 -20
- package/es/UNSAFE_MessageToast.js +22 -22
- package/es/UNSAFE_MeterBar.js +16 -16
- package/es/UNSAFE_MeterCircle.js +17 -17
- package/es/UNSAFE_Modal.js +8 -8
- package/es/UNSAFE_NavigationList.js +28 -28
- package/es/UNSAFE_NavigationListCommon.js +20 -20
- package/es/UNSAFE_NumberInputText.js +28 -28
- package/es/UNSAFE_OverflowTabBar.js +27 -27
- package/es/UNSAFE_PictoChart.js +25 -25
- package/es/UNSAFE_PieChart.js +26 -26
- package/es/UNSAFE_Popup.js +18 -18
- package/es/UNSAFE_ProgressBar.js +4 -4
- package/es/UNSAFE_ProgressButton.js +21 -21
- package/es/UNSAFE_ProgressButtonLabelLayout.js +10 -10
- package/es/UNSAFE_ProgressCircle.js +4 -4
- package/es/UNSAFE_RadioItem.js +25 -25
- package/es/UNSAFE_RadioSet.js +27 -27
- package/es/UNSAFE_RatingGauge.js +18 -18
- package/es/UNSAFE_ReorderableTabBar.js +27 -27
- package/es/UNSAFE_RichCheckboxSet.js +28 -28
- package/es/UNSAFE_RichRadioSet.js +29 -29
- package/es/UNSAFE_RichSelectionItem.js +30 -30
- package/es/UNSAFE_ScatterChart.js +39 -39
- package/es/UNSAFE_SectionalLegend.js +27 -27
- package/es/UNSAFE_SelectMultiple.js +37 -37
- package/es/UNSAFE_SelectSingle.js +37 -37
- package/es/UNSAFE_SelectionCard.js +3 -3
- package/es/UNSAFE_Selector.js +17 -17
- package/es/UNSAFE_SelectorAll.js +19 -19
- package/es/UNSAFE_Sheet.js +11 -11
- package/es/UNSAFE_SortControl.js +20 -20
- 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 +26 -26
- package/es/UNSAFE_Switch.js +26 -26
- package/es/UNSAFE_TabBar.js +28 -28
- package/es/UNSAFE_TabBarCommon.js +28 -28
- package/es/UNSAFE_TabBarMixed.js +28 -28
- package/es/UNSAFE_TableView.js +35 -35
- package/es/UNSAFE_TagCloud.js +26 -26
- package/es/UNSAFE_TextArea.js +117 -237
- package/es/UNSAFE_TextArea.js.map +1 -1
- package/es/UNSAFE_TextAreaAutosize.js +28 -28
- package/es/UNSAFE_TextField.js +20 -20
- package/es/UNSAFE_ToggleButton.js +5 -5
- package/es/UNSAFE_Toolbar.js +4 -4
- package/es/UNSAFE_Train.js +17 -17
- package/es/UNSAFE_TruncatingBadge.js +17 -17
- package/es/UNSAFE_TruncatingText.js +17 -17
- package/es/UNSAFE_UserAssistance.js +26 -26
- package/es/UNSAFE_View.js +7 -7
- package/es/UNSAFE_VirtualizedListView.js +21 -21
- package/es/UNSAFE_VisInvalidDataMessage.js +6 -6
- package/es/UNSAFE_VisNoDataMessage.js +6 -6
- package/es/UNSAFE_VisProgressiveLoader.js +5 -5
- package/es/UNSAFE_WindowOverlay.js +4 -4
- package/es/{View-818f2f31.js → View-5bdd9b3c.js} +5 -5
- package/es/{View-818f2f31.js.map → View-5bdd9b3c.js.map} +1 -1
- package/es/{VisStatusMessage-09c532e3.js → VisStatusMessage-e2d629bb.js} +2 -2
- package/es/{VisStatusMessage-09c532e3.js.map → VisStatusMessage-e2d629bb.js.map} +1 -1
- package/es/{VisTabularDatatip-f45069f1.js → VisTabularDatatip-85b00c1b.js} +2 -2
- package/es/{VisTabularDatatip-f45069f1.js.map → VisTabularDatatip-85b00c1b.js.map} +1 -1
- package/es/{WindowOverlay-467c2d12.js → WindowOverlay-7264c44a.js} +2 -2
- package/es/{WindowOverlay-467c2d12.js.map → WindowOverlay-7264c44a.js.map} +1 -1
- package/es/{YearsGridView-5286a756.js → YearsGridView-6c18094a.js} +4 -4
- package/es/{YearsGridView-5286a756.js.map → YearsGridView-6c18094a.js.map} +1 -1
- package/es/hoc/PRIVATE_withDirectionIcon.js +4 -4
- package/es/hoc/PRIVATE_withThemeIcon.js +3 -3
- package/es/hoc/UNSAFE_withThemeProps.js +3 -3
- package/es/hooks/PRIVATE_useChartContextMenu.js +23 -23
- package/es/hooks/PRIVATE_useChartDatatip.js +14 -14
- package/es/hooks/PRIVATE_useChartEvents.js +19 -19
- package/es/hooks/PRIVATE_useChartMarquee.js +19 -19
- package/es/hooks/PRIVATE_useCollectionFocusRing.js +17 -17
- package/es/hooks/PRIVATE_useCssVars.js +7 -7
- package/es/hooks/PRIVATE_useCurrentKey.js +4 -4
- package/es/hooks/PRIVATE_useDatatip.js +12 -12
- package/es/hooks/PRIVATE_useDetectHorizontalOverflow.js +16 -16
- package/es/hooks/PRIVATE_useFloating.js +4 -4
- package/es/hooks/PRIVATE_useItemAction.js +17 -17
- package/es/hooks/PRIVATE_useListCommon.js +19 -19
- package/es/hooks/PRIVATE_useOutsideMousedown.js +9 -9
- package/es/hooks/PRIVATE_useRadioFocusManager.js +4 -4
- package/es/hooks/PRIVATE_useReorderable.js +19 -19
- package/es/hooks/PRIVATE_useRovingTabIndexContainer.js +4 -4
- package/es/hooks/PRIVATE_useSelection.js +4 -4
- package/es/hooks/PRIVATE_useTabBar.js +26 -26
- package/es/hooks/PRIVATE_useTabbableModeSet.js +17 -17
- package/es/hooks/PRIVATE_useTooltipOnTruncation.js +17 -17
- package/es/hooks/PRIVATE_useVisContextMenu.js +23 -23
- package/es/hooks/PRIVATE_useVisDragModeControls.js +19 -19
- package/es/hooks/PRIVATE_useVisEvents.js +4 -4
- package/es/hooks/PRIVATE_useVisMeterEvents.js +14 -14
- package/es/hooks/PRIVATE_useVisSelection.js +15 -15
- package/es/hooks/UNSAFE_useBareButton.js +2 -2
- package/es/hooks/UNSAFE_useColorScheme.js +3 -3
- package/es/hooks/UNSAFE_useCurrentBgColor.js +2 -2
- package/es/hooks/UNSAFE_useDensity.js +3 -3
- package/es/hooks/UNSAFE_useHiddenTestMethod.js +3 -3
- package/es/hooks/UNSAFE_useOutsideClick.js +8 -8
- package/es/hooks/UNSAFE_usePrefixSuffix.js +4 -4
- package/es/hooks/UNSAFE_useScale.js +3 -3
- package/es/hooks/UNSAFE_useTestId.js +3 -3
- package/es/hooks/UNSAFE_useTheme.js +3 -3
- package/es/hooks/UNSAFE_useThemeInterpolations.js +6 -6
- package/es/hooks/UNSAFE_useTooltip.js +17 -17
- package/es/hooks/UNSAFE_useTranslationBundle.js +3 -3
- package/es/hooks/UNSAFE_useUser.js +3 -3
- package/es/{popupUtils-7774330e.js → popupUtils-51366a29.js} +2 -2
- package/es/{popupUtils-7774330e.js.map → popupUtils-51366a29.js.map} +1 -1
- package/es/{tooltipUtils-90fb656f.js → tooltipUtils-af0abd38.js} +5 -5
- package/es/{tooltipUtils-90fb656f.js.map → tooltipUtils-af0abd38.js.map} +1 -1
- package/es/useBareButton-ff4bd21e.js +1 -1
- package/es/useCellNavigation-0565b6dd.js +1 -1
- package/es/useChartContextMenu-5de82cd7.js +2 -2
- package/es/{useChartDatatip-cba78e0f.js → useChartDatatip-8dd22b71.js} +4 -4
- package/es/{useChartDatatip-cba78e0f.js.map → useChartDatatip-8dd22b71.js.map} +1 -1
- package/es/{useColorScheme-67245285.js → useColorScheme-c4f6caab.js} +2 -2
- package/es/{useColorScheme-67245285.js.map → useColorScheme-c4f6caab.js.map} +1 -1
- package/es/useContextMenu-730d6c12.js +2 -2
- package/es/{useCssVars-048a52d8.js → useCssVars-bc2527ac.js} +5 -5
- package/es/{useCssVars-048a52d8.js.map → useCssVars-bc2527ac.js.map} +1 -1
- package/es/{useCurrentKey-38e5f097.js → useCurrentKey-5f865bbd.js} +2 -2
- package/es/{useCurrentKey-38e5f097.js.map → useCurrentKey-5f865bbd.js.map} +1 -1
- package/es/{useDatatip-ef5c47a7.js → useDatatip-4895a07a.js} +4 -4
- package/es/{useDatatip-ef5c47a7.js.map → useDatatip-4895a07a.js.map} +1 -1
- package/es/{useDensity-969273f3.js → useDensity-1acb0153.js} +2 -2
- package/es/{useDensity-969273f3.js.map → useDensity-1acb0153.js.map} +1 -1
- package/es/{useDisplayValue-5bbf2830.js → useDisplayValue-65bbc74e.js} +7 -7
- package/es/{useDisplayValue-5bbf2830.js.map → useDisplayValue-65bbc74e.js.map} +1 -1
- package/es/{useExpandCollapse-51f9bb4b.js → useExpandCollapse-5739cfd2.js} +2 -2
- package/es/{useExpandCollapse-51f9bb4b.js.map → useExpandCollapse-5739cfd2.js.map} +1 -1
- package/es/{useFloating-c74a7f54.js → useFloating-b9d680f7.js} +2 -2
- package/es/{useFloating-c74a7f54.js.map → useFloating-b9d680f7.js.map} +1 -1
- package/es/{useHiddenTestMethod-ec7b3989.js → useHiddenTestMethod-f3f25093.js} +2 -2
- package/es/{useHiddenTestMethod-ec7b3989.js.map → useHiddenTestMethod-f3f25093.js.map} +1 -1
- package/es/{useKeyboardEvents-a1495728.js → useKeyboardEvents-9aae7ea3.js} +2 -2
- package/es/{useKeyboardEvents-a1495728.js.map → useKeyboardEvents-9aae7ea3.js.map} +1 -1
- package/es/useLegendContextMenu-a678b26f.js +4 -4
- package/es/{useMeterDatatip-f61ca3e0.js → useMeterDatatip-538a4d53.js} +3 -3
- package/es/{useMeterDatatip-f61ca3e0.js.map → useMeterDatatip-538a4d53.js.map} +1 -1
- package/es/useNavigation-b257c33a.js +1 -1
- package/es/{useOutsideClick-01f3d3e1.js → useOutsideClick-b777a43e.js} +2 -2
- package/es/{useOutsideClick-01f3d3e1.js.map → useOutsideClick-b777a43e.js.map} +1 -1
- package/es/{useOutsideMousedown-e0866d58.js → useOutsideMousedown-c45c22c0.js} +2 -2
- package/es/{useOutsideMousedown-e0866d58.js.map → useOutsideMousedown-c45c22c0.js.map} +1 -1
- package/es/{usePopupAnimation-7c5db425.js → usePopupAnimation-96d2bc83.js} +2 -2
- package/es/{usePopupAnimation-7c5db425.js.map → usePopupAnimation-96d2bc83.js.map} +1 -1
- package/es/{usePrefixSuffix-95fc00fd.js → usePrefixSuffix-f981b65f.js} +2 -2
- package/es/{usePrefixSuffix-95fc00fd.js.map → usePrefixSuffix-f981b65f.js.map} +1 -1
- package/es/{useRadioFocusManager-d9eecfb4.js → useRadioFocusManager-36eb283e.js} +2 -2
- package/es/{useRadioFocusManager-d9eecfb4.js.map → useRadioFocusManager-36eb283e.js.map} +1 -1
- package/es/{useReorderableItem-06bd7a7b.js → useReorderableItem-857636b7.js} +3 -3
- package/es/{useReorderableItem-06bd7a7b.js.map → useReorderableItem-857636b7.js.map} +1 -1
- package/es/{useRovingTabIndexContainer-c0356f5d.js → useRovingTabIndexContainer-5992e107.js} +2 -2
- package/es/{useRovingTabIndexContainer-c0356f5d.js.map → useRovingTabIndexContainer-5992e107.js.map} +1 -1
- package/es/{useScale-93490e54.js → useScale-434ad939.js} +2 -2
- package/es/{useScale-93490e54.js.map → useScale-434ad939.js.map} +1 -1
- package/es/{useSelectCommon-309d0f07.js → useSelectCommon-a3c69d60.js} +13 -8
- package/es/useSelectCommon-a3c69d60.js.map +1 -0
- package/es/{useSelectDrill-2f855daa.js → useSelectDrill-f669e729.js} +3 -3
- package/es/{useSelectDrill-2f855daa.js.map → useSelectDrill-f669e729.js.map} +1 -1
- package/es/{useSelection-d6fefa3d.js → useSelection-65134722.js} +2 -2
- package/es/{useSelection-d6fefa3d.js.map → useSelection-65134722.js.map} +1 -1
- package/es/{useSelection-10ed8060.js → useSelection-82bec039.js} +6 -6
- package/es/{useSelection-10ed8060.js.map → useSelection-82bec039.js.map} +1 -1
- package/es/useTabBar-c5558e77.js +3 -3
- package/es/{useTestId-ab1bede6.js → useTestId-f24ac480.js} +2 -2
- package/es/{useTestId-ab1bede6.js.map → useTestId-f24ac480.js.map} +1 -1
- package/es/{useTheme-c2cfbc29.js → useTheme-0e7497db.js} +2 -2
- package/es/{useTheme-c2cfbc29.js.map → useTheme-0e7497db.js.map} +1 -1
- package/es/{useThemeInterpolations-5f358139.js → useThemeInterpolations-e144e8ec.js} +5 -5
- package/es/{useThemeInterpolations-5f358139.js.map → useThemeInterpolations-e144e8ec.js.map} +1 -1
- package/es/{useTooltip-ab739df0.js → useTooltip-94af94d4.js} +2 -2
- package/es/{useTooltip-ab739df0.js.map → useTooltip-94af94d4.js.map} +1 -1
- package/es/{useTooltipControlled-b7f30aee.js → useTooltipControlled-f2cfa454.js} +5 -5
- package/es/{useTooltipControlled-b7f30aee.js.map → useTooltipControlled-f2cfa454.js.map} +1 -1
- package/es/{useTooltipOnTruncation-31afc3f2.js → useTooltipOnTruncation-94282e75.js} +4 -4
- package/es/{useTooltipOnTruncation-31afc3f2.js.map → useTooltipOnTruncation-94282e75.js.map} +1 -1
- package/es/{useTranslationBundle-bc6e0896.js → useTranslationBundle-4822502f.js} +2 -2
- package/es/{useTranslationBundle-bc6e0896.js.map → useTranslationBundle-4822502f.js.map} +1 -1
- package/es/{useUser-e543b73c.js → useUser-06d34d19.js} +2 -2
- package/es/{useUser-e543b73c.js.map → useUser-06d34d19.js.map} +1 -1
- package/es/useVisDragModeControls-af64848c.js +1 -1
- package/es/{useVisEvents-0edc925f.js → useVisEvents-256dee29.js} +2 -2
- package/es/{useVisEvents-0edc925f.js.map → useVisEvents-256dee29.js.map} +1 -1
- package/es/utils/PRIVATE_collectionUtils.js +17 -17
- package/es/utils/PRIVATE_tabBarUtils.js +17 -17
- package/es/utils/PRIVATE_tooltipUtils.js +14 -14
- package/es/utils/PRIVATE_visTestUtils.js +4 -4
- package/es/utils/UNSAFE_popupUtils.js +8 -8
- package/es/{withDirectionIcon-b725a6d7.js → withDirectionIcon-a8d84a3d.js} +2 -2
- package/es/{withDirectionIcon-b725a6d7.js.map → withDirectionIcon-a8d84a3d.js.map} +1 -1
- package/es/withThemeProps-dbd4fedf.js +2 -2
- package/package.json +2 -2
- package/amd/BaseCardView-16fda4c3.js +0 -2
- package/amd/CardFlexView-d3eb7373.js +0 -2
- package/amd/CardGridView-842f70cd.js +0 -2
- package/amd/ColorPicker-e3167e4c.js +0 -2
- package/amd/InputDatePicker-030e345a.js +0 -2
- package/amd/ListView-02a92d18.js +0 -2
- package/amd/NavigationListItem-9df5446c.js +0 -2
- package/amd/NavigationListItem-9df5446c.js.map +0 -1
- package/amd/NavigationListLinkItem-161049bb.js +0 -2
- package/amd/NavigationListLinkItem-161049bb.js.map +0 -1
- package/amd/OverflowTabBarItem-926b0c8a.js +0 -2
- package/amd/RemovableNavigationListItem-e298c5de.js +0 -2
- package/amd/ReorderableTabBar-0c69bfd4.js +0 -2
- package/amd/TabBar-de723fbc.js +0 -2
- package/amd/TabBarMixed-cfd346bf.js +0 -2
- package/amd/useSelectCommon-28307b63.js +0 -2
- package/amd/useSelectCommon-28307b63.js.map +0 -1
- package/cjs/NavigationListItem-cdfd0740.js.map +0 -1
- package/cjs/NavigationListLinkItem-62c3912e.js.map +0 -1
- package/cjs/useSelectCommon-b0d7feb3.js.map +0 -1
- package/es/useSelectCommon-309d0f07.js.map +0 -1
- package/es/useTextAreaAltEnter-ac460f4c.js +0 -61
- package/es/useTextAreaAltEnter-ac460f4c.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDisplayValue-
|
|
1
|
+
{"version":3,"file":"useDisplayValue-9b671893.js","sources":["../../src/UNSAFE_SelectSingle/SelectSingleField.tsx","../../src/UNSAFE_SelectSingle/SelectSingleFieldInput.tsx","../../src/UNSAFE_SelectSingle/useDisplayValue.ts"],"sourcesContent":["import { DropdownArrow } from '#PRIVATE_SelectCommon';\nimport { IconButton } from '#UNSAFE_IconButton';\nimport { CancelS } from '#UNSAFE_RedwoodIcons/CancelS';\nimport { NavLeft } from '#UNSAFE_RedwoodIcons/NavLeft';\nimport { TextField } from '#UNSAFE_TextField';\nimport { useFormFieldContext } from '#hooks/UNSAFE_useFormFieldContext';\nimport { useTranslationBundle } from '#hooks/UNSAFE_useTranslationBundle';\nimport { BundleType } from '#resources/nls/bundle';\nimport { ComponentProps } from 'preact';\n\ntype PickedTextFieldProps = Pick<\n ComponentProps<typeof TextField>,\n | 'columnSpan'\n | 'compactUserAssistance'\n | 'contentVariant'\n | 'endContent'\n | 'hasZeroStartMargin'\n | 'id'\n | 'inlineUserAssistance'\n | 'label'\n | 'labelEdge'\n | 'labelStartWidth'\n | 'mainFieldRef'\n | 'onBlur'\n | 'onFocus'\n | 'onKeyDown'\n | 'onMouseDown'\n | 'onMouseEnter'\n | 'onMouseLeave'\n | 'resize'\n | 'rootRef'\n | 'startContent'\n | 'statusVariant'\n | 'styleVariant'\n | 'testId'\n> & {\n children: ComponentProps<typeof TextField>['mainContent'];\n};\n\ntype Props = PickedTextFieldProps & {\n hasInsideLabel?: boolean;\n isBackButtonShown?: boolean;\n isClearButtonShown?: boolean;\n isDropdownArrowShown?: boolean;\n onBackButtonClick?: ComponentProps<typeof IconButton>['onAction'];\n onClearButtonClick?: ComponentProps<typeof IconButton>['onAction'];\n onDropdownArrowClick?: ComponentProps<typeof DropdownArrow>['onClick'];\n};\n\nexport function SelectSingleField({\n children,\n hasInsideLabel,\n isBackButtonShown,\n isClearButtonShown,\n isDropdownArrowShown,\n onBackButtonClick,\n onClearButtonClick,\n onDropdownArrowClick,\n ...passThroughTextFieldProps\n}: Props) {\n const translations = useTranslationBundle<BundleType>('@oracle/oraclejet-preact');\n const { isDisabled, isLoading } = useFormFieldContext();\n\n const startContent = isBackButtonShown ? (\n <IconButton\n aria-label={translations.selectMultiple_back()}\n size=\"xs\"\n variant=\"ghost\"\n onAction={onBackButtonClick}>\n <NavLeft />\n </IconButton>\n ) : null;\n\n const endContent = isLoading ? undefined : (\n <>\n {isClearButtonShown && (\n <IconButton\n aria-label={translations.formControl_clear()}\n size=\"sm\"\n variant=\"ghost\"\n onAction={onClearButtonClick}>\n <CancelS />\n </IconButton>\n )}\n {isDropdownArrowShown && (\n <DropdownArrow\n isDisabled={isDisabled}\n onClick={onDropdownArrowClick}\n testId={`${passThroughTextFieldProps.testId}_dropdownarrow`}\n />\n )}\n </>\n );\n\n return (\n <TextField\n startContent={startContent}\n mainContent={children}\n endContent={endContent}\n {...passThroughTextFieldProps}\n />\n );\n}\n","import { LiveRegion } from '#UNSAFE_LiveRegion';\nimport { TextFieldInput } from '#UNSAFE_TextField';\nimport { useTranslationBundle } from '#hooks/UNSAFE_useTranslationBundle';\nimport { BundleType } from '#resources/nls/bundle';\nimport { ComponentProps, Ref } from 'preact';\n\ntype PickedTextFieldInputProps = Pick<\n ComponentProps<typeof TextFieldInput>,\n | 'aria-controls'\n | 'aria-describedby'\n | 'aria-expanded'\n | 'aria-invalid'\n | 'aria-label'\n | 'hasEmptyLabel'\n | 'hasInsideLabel'\n | 'id'\n | 'isRequired'\n | 'onBlur'\n | 'onFocus'\n | 'onInput'\n | 'onKeyDown'\n | 'onKeyUp'\n | 'placeholder'\n | 'textAlign'\n | 'variant'\n> & {\n inputRef?: Ref<HTMLInputElement>;\n};\n\ntype Props = PickedTextFieldInputProps & {\n displayValue: string;\n isAddToListShown: boolean;\n isAdvancedSearchShown: boolean;\n isUserFiltering: boolean;\n liveRegionText?: string;\n userInput?: string;\n virtualKeyboard?: 'auto' | 'email' | 'number' | 'search' | 'tel' | 'text' | 'url';\n};\n\nexport function SelectSingleFieldInput({\n displayValue,\n isAddToListShown,\n isAdvancedSearchShown,\n isUserFiltering,\n liveRegionText,\n userInput,\n virtualKeyboard,\n ...passThroughTextFieldInputProps\n}: Props) {\n const translations = useTranslationBundle<BundleType>('@oracle/oraclejet-preact');\n const addToListAccText = translations.select_addToListAvailable();\n const advancedSearchAccText = translations.select_moreSearchOptionsAvailable();\n const combinedLiveRegionText = `${liveRegionText} ${isAddToListShown ? addToListAccText : ''} ${\n isAdvancedSearchShown ? advancedSearchAccText : ''\n }`;\n\n return (\n <>\n <TextFieldInput\n {...passThroughTextFieldInputProps}\n hasEndContent={true}\n aria-autocomplete=\"list\"\n autoComplete=\"off\"\n role=\"combobox\"\n spellcheck={false}\n type={virtualKeyboard === 'auto' ? 'search' : virtualKeyboard}\n value={isUserFiltering ? userInput : displayValue}\n />\n <LiveRegion>{combinedLiveRegionText}</LiveRegion>\n </>\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 { useMemo } from 'preact/hooks';\n\nimport { renderItemText } from '#PRIVATE_SelectCommon';\nimport { Item } from '#utils/UNSAFE_dataProvider';\nimport { ItemTextType } from '#utils/UNSAFE_selectUtils';\n\nexport function useDisplayValue<K, D>(\n itemText: ItemTextType<K, D>,\n valueItem?: Item<K, D>,\n componentName: 'SelectSingle' | 'InlineSelectSingle' = 'SelectSingle'\n): string {\n // create the text displayed in the field from the selected value\n const displayValue = useMemo(() => {\n return valueItem === undefined ? '' : renderItemText(valueItem, itemText, componentName) ?? '';\n }, [valueItem, itemText, componentName]);\n\n return displayValue;\n}\n"],"names":["children","hasInsideLabel","isBackButtonShown","isClearButtonShown","isDropdownArrowShown","onBackButtonClick","onClearButtonClick","onDropdownArrowClick","passThroughTextFieldProps","translations","useTranslationBundle","isDisabled","isLoading","useFormFieldContext","startContent","_jsx","IconButton","selectMultiple_back","size","variant","onAction","NavLeft","endContent","undefined","_jsxs","jsxs","_Fragment","Fragment","formControl_clear","CancelS","SvgCancelS","DropdownArrow","onClick","testId","TextField","mainContent","displayValue","isAddToListShown","isAdvancedSearchShown","isUserFiltering","liveRegionText","userInput","virtualKeyboard","passThroughTextFieldInputProps","addToListAccText","select_addToListAvailable","advancedSearchAccText","select_moreSearchOptionsAvailable","combinedLiveRegionText","jsx","TextFieldInput","hasEndContent","autoComplete","role","spellcheck","type","value","LiveRegion","itemText","valueItem","componentName","useMemo","renderItemText"],"mappings":"+sDAiDM,UAA4BA,SAChCA,EAAQC,eACRA,EAAcC,kBACdA,EAAiBC,mBACjBA,EAAkBC,qBAClBA,EAAoBC,kBACpBA,EAAiBC,mBACjBA,EAAkBC,qBAClBA,KACGC,IAEH,MAAMC,EAAeC,uBAAiC,6BAChDC,WAAEA,EAAUC,UAAEA,GAAcC,EAAmBA,sBAE/CC,EAAeZ,EACnBa,EAAAA,IAACC,EAAUA,WAAA,CAAA,aACGP,EAAaQ,sBACzBC,KAAK,KACLC,QAAQ,QACRC,SAAUf,EACVL,SAAAe,MAACM,EAAAA,WAAO,CAAA,KAER,KAEEC,EAAaV,OAAYW,EAC7BC,EAAAC,KAAAC,EAAAC,SAAA,CAAA3B,SAAA,CACGG,GACCY,MAACC,EAAAA,WACa,CAAA,aAAAP,EAAamB,oBACzBV,KAAK,KACLC,QAAQ,QACRC,SAAUd,EAAkBN,SAC5Be,EAAAA,IAACc,EAAOC,WAAG,MAGd1B,GACCW,MAACgB,EAAAA,cAAa,CACZpB,WAAYA,EACZqB,QAASzB,EACT0B,OAAQ,GAAGzB,EAA0ByB,4BAM7C,OACElB,MAACmB,EAAAA,WACCpB,aAAcA,EACdqB,YAAanC,EACbsB,WAAYA,KACRd,GAGV,2BC/DM,UAAiC4B,aACrCA,EAAYC,iBACZA,EAAgBC,sBAChBA,EAAqBC,gBACrBA,EAAeC,eACfA,EAAcC,UACdA,EAASC,gBACTA,KACGC,IAEH,MAAMlC,EAAeC,uBAAiC,4BAChDkC,EAAmBnC,EAAaoC,4BAChCC,EAAwBrC,EAAasC,oCACrCC,EAAyB,GAAGR,KAAkBH,EAAmBO,EAAmB,MACxFN,EAAwBQ,EAAwB,KAGlD,OACEtB,EAAAA,KACEE,EAAAA,SAAA,CAAA1B,SAAA,CAAAe,EAAAkC,IAACC,EAAcA,eAAA,IACTP,EACJQ,eAAe,EAAI,oBACD,OAClBC,aAAa,MACbC,KAAK,WACLC,YAAY,EACZC,KAA0B,SAApBb,EAA6B,SAAWA,EAC9Cc,MAAOjB,EAAkBE,EAAYL,IAEvCrB,EAAAkC,IAACQ,aAAU,CAAAzD,SAAEgD,MAGnB,oBCzDM,SACJU,EACAC,EACAC,EAAuD,gBAOvD,OAJqBC,EAAAA,SAAQ,SACNtC,IAAdoC,EAA0B,GAAKG,EAAAA,eAAeH,EAAWD,EAAUE,IAAkB,IAC3F,CAACD,EAAWD,EAAUE,GAG3B"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
define(['exports', 'preact/hooks', './usePress-949a0d03', './mergeProps-bcfa6a92', './classNames-08d99695', './useInteractionStyle-15a2bdd0', './useComponentTheme-5aa41a8f', 'preact', './mergeInterpolations-9ede4cf7', './flexitem-5db48325', './UNSAFE_NavigationListCommon/themes/redwood/NavigationListItemTheme', './useUser-08901aba'], (function(e,s,t,n,o,a,i,r,l,c,d,u){"use strict";const m=r.createContext(null);function g(){return s.useContext(m)}const v=l.mergeInterpolations([...Object.values(c.flexitemInterpolations)]),{class:p,...y}=v({alignSelf:"center"});e.NavigationListContext=m,e.useNavigationListContext=g,e.useNavigationListItem=function({itemKey:e}){const{onSelectionChange:r,selection:l,currentKey:c,showFocusRing:m,navigationListItemPrefix:v,edge:C,display:I}=g(),S=c===e,N=l===e,b="icons"===I,f="end"===C,{interactionProps:H,applyPseudoHoverStyle:h,applyHoverStyle:P,applyActiveStyle:R}=a.useInteractionStyle(),{direction:x}=u.useUser(),L="rtl"===x,{classes:k,styles:{labelContainerClasses:E,navigationItemStackedBadge:O,navigationItemStackedBadgeRtl:F,startIconStacked:w}}=i.useComponentTheme(d.NavigationListItemRedwoodTheme,{focusRing:m?"isFocusRing":"notFocusRing",current:S?"isCurrent":"notCurrtent",selected:N?"isSelected":"notSelected",direction:L?"isRtl":"notRtl",hybridHover:P?"isHybridHover":"notHybridHover",pseudoHover:h?"isPseudoHover":"notPseudoHover",active:R?"isActive":"notActive",edgeEnd:"end"===C?"isEnd":"notEnd",iconOnly:b?"isIconOnly":"notIconOnly"}),A=o.classNames([w]),T=o.classNames([O,"rtl"===x&&F]),B=s.useCallback((()=>{r?.({value:e,reason:"pointer"})}),[e,r]),{pressProps:U}=t.usePress(B);return{itemId:v+e,itemHandlers:n.mergeProps(H,U),itemClasses:o.classNames([k]),isSelected:N,labelContainerClasses:o.classNames([E,p]),labelContainerStyle:y,isIconOnly:b,isEdgeEnd:f,stackedBadgeClasses:o.classNames([T]),iconOnlyClasses:o.classNames([A]),isCurrent:S,showFocusRing:m}}}));
|
|
2
|
+
//# sourceMappingURL=useNavigationListItem-582f5564.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useNavigationListItem-582f5564.js","sources":["../../src/UNSAFE_NavigationListCommon/NavigationListContext.ts","../../src/UNSAFE_NavigationListCommon/useNavigationListContext.ts","../../src/UNSAFE_NavigationListCommon/useNavigationListItem.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 { createContext } from 'preact';\nimport { NavigationListProps } from './NavigationListProps';\n\ntype CurrentKeyDetail<K> = {\n value: K;\n};\n\nexport type NavigationListContextProps<K extends string | number> = Pick<\n NavigationListProps<K>,\n 'selection' | 'onSelectionChange' | 'onRemove' | 'edge' | 'display'\n> & {\n currentKey?: K;\n showFocusRing: boolean;\n onCurrentKeyChange:\n | (<K extends string | number>(detail: CurrentKeyDetail<K>) => void)\n | undefined;\n navigationListItemPrefix: string;\n};\n\n/**\n * Context used to pass navlist information without having to pass it to navlist children props.\n * We want to communicate information down to any interested navlist item children.\n */\n\nconst NavigationListContext = createContext<NavigationListContextProps<string | number>>(null!);\n\nexport { NavigationListContext };\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 { useContext } from 'preact/hooks';\nimport { NavigationListContext } from './NavigationListContext';\n\n/**\n * Utility hook for consuming the NavigationListContext\n *\n * @returns The value of NavigationListContext provider\n */\nfunction useNavigationListContext() {\n return useContext(NavigationListContext);\n}\n\nexport { useNavigationListContext };\n","import { useCallback } from 'preact/hooks';\n\nimport { usePress } from '../hooks/UNSAFE_usePress';\nimport { mergeProps } from '../utils/UNSAFE_mergeProps';\nimport { classNames } from '../utils/UNSAFE_classNames';\nimport { useInteractionStyle } from '../hooks/UNSAFE_useInteractionStyle';\nimport { useComponentTheme } from '../hooks/UNSAFE_useComponentTheme';\nimport { useNavigationListContext } from './useNavigationListContext';\nimport { mergeInterpolations } from '../utils/UNSAFE_mergeInterpolations';\nimport { FlexitemProps } from '../utils/UNSAFE_interpolations/flexitem';\nimport { flexitemInterpolations } from '../utils/UNSAFE_interpolations/flexitem';\nimport {\n NavigationListItemStyles,\n NavigationListItemVariantOptions\n} from '../UNSAFE_NavigationList/themes/NavigationListItemStyles.css';\nimport { NavigationListItemRedwoodTheme } from './themes/redwood/NavigationListItemTheme';\nimport { useUser } from '../hooks/UNSAFE_useUser';\n\nconst flexItemStyleInterpolations = mergeInterpolations<FlexitemProps>([\n ...Object.values(flexitemInterpolations)\n]);\nconst { class: labelContainerFlexItemClasses, ...labelContainerFlexItemStyle } =\n flexItemStyleInterpolations({\n alignSelf: 'center'\n });\n\nexport function useNavigationListItem<K extends string | number>({ itemKey }: { itemKey: K }) {\n const {\n onSelectionChange,\n selection,\n currentKey,\n showFocusRing,\n navigationListItemPrefix,\n edge,\n display\n } = useNavigationListContext();\n\n //Selection and focus state\n const isCurrent = currentKey === itemKey;\n\n const isSelected = selection === itemKey;\n\n const isIconOnly = display === 'icons' ? true : false;\n const isEdgeEnd = edge === 'end' ? true : false;\n\n //Styling\n const { interactionProps, applyPseudoHoverStyle, applyHoverStyle, applyActiveStyle } =\n useInteractionStyle();\n\n const { direction } = useUser();\n const isRtl = direction === 'rtl';\n\n const {\n classes: listItemClasses,\n styles: {\n labelContainerClasses,\n navigationItemStackedBadge,\n navigationItemStackedBadgeRtl,\n startIconStacked\n }\n } = useComponentTheme<NavigationListItemVariantOptions, NavigationListItemStyles>(\n NavigationListItemRedwoodTheme,\n {\n focusRing: showFocusRing ? 'isFocusRing' : 'notFocusRing',\n current: isCurrent ? 'isCurrent' : 'notCurrtent',\n selected: isSelected ? 'isSelected' : 'notSelected',\n direction: isRtl ? 'isRtl' : 'notRtl',\n hybridHover: applyHoverStyle ? 'isHybridHover' : 'notHybridHover',\n pseudoHover: applyPseudoHoverStyle ? 'isPseudoHover' : 'notPseudoHover',\n active: applyActiveStyle ? 'isActive' : 'notActive',\n edgeEnd: edge === 'end' ? 'isEnd' : 'notEnd',\n iconOnly: isIconOnly ? 'isIconOnly' : 'notIconOnly'\n }\n );\n\n const navigationItemIconOnlyClasses = classNames([startIconStacked]);\n\n const navigationItemStackedBadgeClasses = classNames([\n navigationItemStackedBadge,\n direction === 'rtl' && navigationItemStackedBadgeRtl\n ]);\n\n //Item handlers\n const handlePress = useCallback(() => {\n onSelectionChange?.({ value: itemKey as K, reason: 'pointer' });\n }, [itemKey, onSelectionChange]);\n\n //Legacy navlist makes selection on keyDown, but since preact tabbar made selection after keyUp, will do the same\n //for preact navlist\n const { pressProps } = usePress(handlePress);\n\n return {\n itemId: navigationListItemPrefix + itemKey,\n itemHandlers: mergeProps(interactionProps, pressProps /*,onFocusProps*/),\n itemClasses: classNames([listItemClasses]),\n isSelected,\n labelContainerClasses: classNames([labelContainerClasses, labelContainerFlexItemClasses]),\n labelContainerStyle: labelContainerFlexItemStyle,\n isIconOnly,\n isEdgeEnd,\n stackedBadgeClasses: classNames([navigationItemStackedBadgeClasses]),\n iconOnlyClasses: classNames([navigationItemIconOnlyClasses]),\n isCurrent,\n showFocusRing\n };\n}\n"],"names":["NavigationListContext","createContext","useNavigationListContext","useContext","flexItemStyleInterpolations","mergeInterpolations","Object","values","flexitemInterpolations","class","labelContainerFlexItemClasses","labelContainerFlexItemStyle","alignSelf","itemKey","onSelectionChange","selection","currentKey","showFocusRing","navigationListItemPrefix","edge","display","isCurrent","isSelected","isIconOnly","isEdgeEnd","interactionProps","applyPseudoHoverStyle","applyHoverStyle","applyActiveStyle","useInteractionStyle","direction","useUser","isRtl","classes","listItemClasses","styles","labelContainerClasses","navigationItemStackedBadge","navigationItemStackedBadgeRtl","startIconStacked","useComponentTheme","NavigationListItemRedwoodTheme","focusRing","current","selected","hybridHover","pseudoHover","active","edgeEnd","iconOnly","navigationItemIconOnlyClasses","classNames","navigationItemStackedBadgeClasses","handlePress","useCallback","value","reason","pressProps","usePress","itemId","itemHandlers","mergeProps","itemClasses","labelContainerStyle","stackedBadgeClasses","iconOnlyClasses"],"mappings":"oXAgCA,MAAMA,EAAwBC,EAAaA,cAA8C,MChBzF,SAASC,IACP,OAAOC,EAAAA,WAAWH,EACpB,CCAA,MAAMI,EAA8BC,EAAAA,oBAAmC,IAClEC,OAAOC,OAAOC,6BAEXC,MAAOC,KAAkCC,GAC/CP,EAA4B,CAC1BQ,UAAW,0FAGC,UAAiDC,QAAEA,IACjE,MAAMC,kBACJA,EAAiBC,UACjBA,EAASC,WACTA,EAAUC,cACVA,EAAaC,yBACbA,EAAwBC,KACxBA,EAAIC,QACJA,GACElB,IAGEmB,EAAYL,IAAeH,EAE3BS,EAAaP,IAAcF,EAE3BU,EAAyB,UAAZH,EACbI,EAAqB,QAATL,GAGZM,iBAAEA,EAAgBC,sBAAEA,EAAqBC,gBAAEA,EAAeC,iBAAEA,GAChEC,EAAAA,uBAEIC,UAAEA,GAAcC,EAAAA,UAChBC,EAAsB,QAAdF,GAGZG,QAASC,EACTC,QAAQC,sBACNA,EAAqBC,2BACrBA,EAA0BC,8BAC1BA,EAA6BC,iBAC7BA,IAEAC,EAAAA,kBACFC,EAAAA,+BACA,CACEC,UAAWzB,EAAgB,cAAgB,eAC3C0B,QAAStB,EAAY,YAAc,cACnCuB,SAAUtB,EAAa,aAAe,cACtCQ,UAAWE,EAAQ,QAAU,SAC7Ba,YAAalB,EAAkB,gBAAkB,iBACjDmB,YAAapB,EAAwB,gBAAkB,iBACvDqB,OAAQnB,EAAmB,WAAa,YACxCoB,QAAkB,QAAT7B,EAAiB,QAAU,SACpC8B,SAAU1B,EAAa,aAAe,gBAIpC2B,EAAgCC,EAAAA,WAAW,CAACZ,IAE5Ca,EAAoCD,EAAAA,WAAW,CACnDd,EACc,QAAdP,GAAuBQ,IAInBe,EAAcC,EAAAA,aAAY,KAC9BxC,IAAoB,CAAEyC,MAAO1C,EAAc2C,OAAQ,WAAY,GAC9D,CAAC3C,EAASC,KAIP2C,WAAEA,GAAeC,EAAQA,SAACL,GAEhC,MAAO,CACLM,OAAQzC,EAA2BL,EACnC+C,aAAcC,EAAAA,WAAWpC,EAAkBgC,GAC3CK,YAAaX,EAAAA,WAAW,CAACjB,IACzBZ,aACAc,sBAAuBe,EAAUA,WAAC,CAACf,EAAuB1B,IAC1DqD,oBAAqBpD,EACrBY,aACAC,YACAwC,oBAAqBb,EAAAA,WAAW,CAACC,IACjCa,gBAAiBd,EAAAA,WAAW,CAACD,IAC7B7B,YACAJ,gBAEJ"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
define(['exports', 'preact/jsx-runtime', './Flex-4b81b412', './HighlightText-ee76c447', './Grid-caac1c86', 'css!./ListItemLayoutStyles.styles.css', './ListItemText-e9ce1931', 'preact/hooks', './logger-0f873e29', './PRIVATE_SelectCommon/themes/dropdownStyles.css', './List-daac1169', './usePress-949a0d03', './CaretDown-9961d246', './classNames-08d99695', './useComponentTheme-5aa41a8f', './UNSAFE_ButtonLabelLayout/themes/redwood/ButtonLabelLayoutTheme', './useTestId-f4240cbd', './UNSAFE_BaseButton/themes/redwood/BaseButtonTheme', './CollectionInteractionContext-0b4ed98b', './Text-31cabc49', './useTranslationBundle-e4dd341e', './clientHints-6d361eaa', 'preact/compat', './keyboardUtils-fb6219eb', './tabbableUtils-f95361a6'], (function(e,t,n,a,o,s,r,l,c,i,d,u,p,m,h,y,w,b,f,C,S,v,x,T,D){"use strict";function g(e,t,n){if("string"!=typeof t)return t(e);{const a=e.data;if(null!=a&&Object.prototype.hasOwnProperty.call(a,t)){const e=a[t];return String(e)}c.error(`${n}: itemText specifies field that does not exist: ${t}`)}}const K=()=>{};const k=e=>0===e.button&&!e.ctrlKey,I=e=>{e.currentTarget===e.target&&e.preventDefault()},R=()=>{};e.DefaultList=function({"aria-label":e,componentName:o,currentItemVariant:s,currentKey:c,data:u,itemRenderer:p,itemText:m,onCurrentKeyChange:h,onItemAction:y,onLoadRange:w=K,onSelectionChange:b,searchText:f,selectedKeys:C,selectionMode:S}){const v=l.useCallback((e=>{const s={data:e.data,index:e.index,metadata:e.metadata,selector:e.selector,searchText:f,selectedKeys:C,onSelectionChange:({value:e})=>{b?.({value:e})}},l={data:e.data,key:e.metadata.key,metadata:e.metadata};return p?p(s):t.jsxs(n.Flex,{align:"center",children:[e.selector&&t.jsx("div",{class:i.dropdownStyles.selectorWrapper,children:e.selector()}),t.jsx("div",{class:"single"===S?i.dropdownStyles.singleSelectItem:i.dropdownStyles.multiSelectItem,children:t.jsx(r.ListItemText,{variant:"primary",children:t.jsx(a.HighlightText,{matchText:f,children:g(l,m,o)})})})]})}),[o,p,m,b,f,C,S]),x=l.useMemo((()=>({all:!1,keys:C??new Set})),[C]),T=l.useMemo((()=>void 0!==c?{rowKey:c}:void 0),[c]),D=l.useCallback((({context:{data:e,metadata:t}})=>{y?.({context:{data:e,key:t.key,metadata:t}})}),[y]),k=l.useCallback((({value:e})=>{b?.({value:new Set(e.keys?.values())})}),[b]);return t.jsx(d.List,{"aria-label":e,allowTabbableMode:!1,currentItemVariant:s,currentItemOverride:T,data:u??null,onPersistCurrentItem:h,onItemAction:D,onLoadRange:w,onSelectionChange:k,role:"listbox",selectedKeys:x,selectionMode:S,children:e=>v(e)})},e.DropdownArrow=function({isDisabled:e=!1,onClick:n,testId:a}){const{classes:o}=h.useComponentTheme(y.ButtonLabelLayoutRedwoodTheme,{size:"sm"}),{baseTheme:s}=h.useComponentTheme(b.BaseButtonRedwoodTheme),r=l.useCallback((e=>{e.preventDefault()}),[]),{pressProps:c}=u.usePress(n??R,{isDisabled:e}),d=m.classNames([o,s,i.dropdownStyles.arrow.base,e?i.dropdownStyles.arrow.disabled:i.dropdownStyles.arrow.enabled]),f=w.useTestId(a);return t.jsx("span",{"aria-hidden":"true",class:d,tabIndex:-1,onMouseDown:r,...f,...c,children:t.jsx(p.SvgCaretDown,{})})},e.DropdownList=function({children:e,id:n,dropdownListRef:a,hasTopGap:o=!0,hasBottomGap:s=!0,isLoading:r=!1,onKeyDown:l}){const c=m.classNames([i.dropdownStyles.list.base,o&&i.dropdownStyles.list.topGap,s&&i.dropdownStyles.list.bottomGap,r&&i.dropdownStyles.list.loading]);return t.jsx(f.CollectionInteractionContext.Provider,{value:"embedded",children:t.jsx("div",{ref:a,class:c,id:n,onMouseDown:I,onKeyDown:l,children:e})})},e.EmptyResults=function(){const e=S.useTranslationBundle("@oracle/oraclejet-preact");return t.jsx("div",{class:i.dropdownStyles.results.extraItem,onMouseDown:I,children:t.jsx(C.Text,{variant:"primary",children:e.select_noMatchesFound()})})},e.createKeysFromValueItems=function(e){const t=e?.reduce(((e,t)=>(e.add(t.key),e)),new Set);return t},e.isBeforeDataFetch=function(e){return"atLeast"===e.sizePrecision&&0===e.totalSize},e.isMobile=function(){const e=v.getClientHints().deviceType;return"phone"===e||"tablet"===e},e.isPhone=function(){return"phone"===v.getClientHints().deviceType},e.isSearchClearedFirstTime=function(e,t){return void 0===e&&""===t},e.isSearchTextEmptyOrUndefined=function(e){return void 0===e||0===e.length},e.isSimpleClick=k,e.isTablet=function(){return"tablet"===v.getClientHints().deviceType},e.preventDefault=e=>{e.preventDefault()},e.preventDefaultForCurrentTarget=I,e.renderItemText=g,e.useCollectionRenderer=function({currentKey:e,onCurrentKeyChange:t,onItemAction:n,onSelectedKeysChange:a,searchText:o,selectedKeys:s,selectedOnlyData:r}){return x.useMemo((()=>{const l={searchText:o,currentRowKeyOverride:e,onPersistCurrentRowKey:t,selected:s};return void 0!==n?{...l,onRowAction:n}:{...l,onSelectedChange:a,selectedOnlyData:r}}),[e,t,n,a,o,s,r])},e.useSelectCommon=function({data:e,inputRef:t,isFocused:n,onFilter:a}){const o=l.useRef(null),s=l.useRef(null),[r,c]=l.useState(!1),[i,d]=l.useState(!1),[u,p]=l.useState({rowKey:void 0}),m=l.useRef(),h=l.useCallback((e=>{m.current=e.rowKey,p(e)}),[]),[y,w]=l.useState(!1),[b,f]=l.useState(),[C,S]=l.useState(),[v,x]=l.useState(r),[g,K]=l.useState(n),[I,R]=l.useState(y),E=l.useCallback((e=>{!e.defaultPrevented&&k(e)&&(r||c(!0),setTimeout((function(){t.current?.focus()}),0))}),[t,r]),F=l.useCallback((()=>{c(!r),t.current?.focus()}),[t,r]),L=l.useCallback((e=>{if(r)switch(c(!1),e?.type){case"keydown":if(e.code===T.KEYS.ESC)t.current?.focus();break;case"mousedown":s.current?.contains(document.activeElement)&&t.current?.focus()}}),[t,r]),P=l.useCallback((e=>{d(e.placement.startsWith("top"))}),[]),O=l.useCallback((()=>r&&s.current?D.allTabbableElements(s.current):void 0),[r]),j=l.useCallback((t=>{if(r){if(null!=e){const t=O();t?.[0]?.focus(),void 0===u.rowKey&&h({rowKey:e.data[0]?.metadata?.key})}}else c(!0);t.preventDefault()}),[u,e,O,r,h]),A=l.useCallback((e=>{if(!T.isControlOrFunctionKey(e))switch(e.code){case T.KEYS.PAGE_UP:case T.KEYS.PAGE_DOWN:return void e.preventDefault();case T.KEYS.UP:case T.KEYS.DOWN:e.preventDefault();break;case T.KEYS.ESC:r&&(c(!1),e.preventDefault(),e.stopPropagation())}}),[r]),M=l.useCallback((e=>{if(!T.isControlOrFunctionKey(e))switch(e.code){case T.KEYS.UP:case T.KEYS.DOWN:j(e)}}),[j]),B=l.useCallback((e=>{r||c(!0),w(!0),f(e.value);const t=e.value;S(t),a?.({searchText:t})}),[r,a]),U=l.useCallback((e=>{m.current=e.value}),[]),N=l.useCallback((()=>{w(!1),f(""),S(void 0)}),[]),Y=l.useCallback((e=>{w(!0),f(e),S(e)}),[]);return v===r&&g===n&&I===y||r||n||!y||N(),l.useEffect((()=>{r&&!y&&a?.({searchText:void 0})}),[r,y,a]),v!==r&&(r||d(!1),x(r)),g!==n&&K(n),I!==y&&R(y),{currentRowKeyRef:m,currentRowOverride:u,dropdownRef:s,getDropdownTabbableElems:O,handleDropdownArrowClick:F,handleDropdownAutoDismiss:L,handleDropdownPosition:P,handleInput:B,handleMainFieldKeyDown:A,handleMainFieldKeyUp:M,handleUpDownArrowKeys:j,isDropdownAbove:i,isDropdownOpen:r,isFocused:n||r,isUserFiltering:y,mainFieldRef:o,onCurrentKeyChange:U,onMouseDown:E,searchText:C,setCurrentRowOverride:h,setDropdownOpen:c,setUserInput:f,stopFiltering:N,updateFiltering:Y,userInput:b}}}));
|
|
2
|
+
//# sourceMappingURL=useSelectCommon-f33709d2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSelectCommon-f33709d2.js","sources":["../../src/PRIVATE_SelectCommon/itemTextUtils.ts","../../src/PRIVATE_SelectCommon/DefaultList.tsx","../../src/PRIVATE_SelectCommon/eventUtils.ts","../../src/PRIVATE_SelectCommon/DropdownArrow.tsx","../../src/PRIVATE_SelectCommon/DropdownList.tsx","../../src/PRIVATE_SelectCommon/EmptyResults.tsx","../../src/PRIVATE_SelectCommon/selectUtils.ts","../../src/PRIVATE_SelectCommon/useCollectionRenderer.ts","../../src/PRIVATE_SelectCommon/useSelectCommon.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 { Item } from '#utils/UNSAFE_dataProvider';\nimport { error } from '#utils/UNSAFE_logger';\nimport { ItemTextFunctionType, ItemTextType } from '#utils/UNSAFE_selectUtils';\n\nexport type ComponentName = 'InlineSelectSingle' | 'SelectSingle' | 'SelectMultiple';\n\nexport function renderItemText<K, D>(\n item: Item<K, D>,\n itemText: ItemTextType<K, D>,\n componentName: ComponentName\n) {\n // if item-text is a string and the data has the specified field, return it;\n // otherwise log an error\n if (typeof itemText === 'string') {\n // JET-78134: in 26C rc0 preflight, line type is not editable in PRC\n // Some JS applications incorrectly pass {} as valueItem/value-item instead of null\n // or leaving it unset for the empty state. Older releases already handled that misconfiguration\n // by logging this custom error; keep that behavior and avoid throwing when item.data is missing.\n const itemData = item.data;\n if (itemData != null && Object.prototype.hasOwnProperty.call(itemData, itemText)) {\n const retData = itemData[itemText];\n return String(retData);\n }\n error(`${componentName}: itemText specifies field that does not exist: ${itemText}`);\n // return undefined if the field doesn't exist\n return undefined;\n }\n // if item-text is a function, call it to create a display label\n return (itemText as ItemTextFunctionType<K, D>)(item);\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 type { ComponentChildren, ComponentProps } from 'preact';\n\nimport { List } from '#PRIVATE_List';\nimport type { DataState, ListItemRendererContext, Metadata } from '#UNSAFE_Collection';\nimport { Flex } from '#UNSAFE_Flex';\nimport { HighlightText } from '#UNSAFE_HighlightText';\nimport { ListItemText } from '#UNSAFE_ListItemLayout';\nimport type { Item } from '#utils/UNSAFE_dataProvider';\nimport type { Keys } from '#utils/UNSAFE_keys';\nimport type { ItemTextType } from '#utils/UNSAFE_selectUtils';\nimport { useCallback, useMemo } from 'preact/hooks';\nimport { type ComponentName, renderItemText } from './itemTextUtils';\nimport { dropdownStyles } from './themes/dropdownStyles.css';\n\ntype ListProps<K extends string | number, D> = ComponentProps<typeof List<K, D>>;\ntype PickedPropsFromList = Pick<\n ComponentProps<typeof List>,\n 'aria-label' | 'currentItemVariant' | 'selectionMode'\n>;\n\n// pick the props from the ListItemContext instead of extending it directly so that we\n// don't automatically expose any new props that may be added to it\ntype PickedPropsFromListItemContext<K, D> = Pick<\n ListItemRendererContext<K, D>,\n 'data' | 'index' | 'selector'\n>;\ntype ItemRendererSelectionDetail<K> = {\n value: Set<K>;\n target: EventTarget | null;\n};\ntype ItemRendererMetadata<K> = Pick<Metadata<K>, 'key' | 'suggestion'>;\ntype ItemRendererProps<K, D> = PickedPropsFromListItemContext<K, D> & {\n metadata: ItemRendererMetadata<K>;\n searchText?: string;\n selectedKeys?: Set<K>;\n onSelectionChange: (detail: ItemRendererSelectionDetail<K>) => void;\n};\n\ntype DefaultListCurrentKeyDetail<K> = { value: K };\ntype DefaultListItemActionDetail<K, D> = { context: Item<K, D> };\ntype DefaultListSelectionDetail<K> = { value: Set<K> };\n\ntype Props<K extends string | number, D extends Record<string, any>> = PickedPropsFromList & {\n itemRenderer?: (itemRendererProps: ItemRendererProps<K, D>) => ComponentChildren;\n itemText: ItemTextType<K, D>;\n // props from List that we constrain or unconstrain\n currentKey?: K;\n data?: DataState<K, D> | null;\n onCurrentKeyChange: (detail: DefaultListCurrentKeyDetail<K>) => void;\n onItemAction?: (detail: DefaultListItemActionDetail<K, D>) => void;\n onLoadRange?: ComponentProps<typeof List>['onLoadRange'];\n onSelectionChange?: (detail: DefaultListSelectionDetail<K>) => void;\n searchText?: string;\n selectedKeys?: Set<K>;\n // props for logging purposes\n componentName: ComponentName;\n};\n\nconst noOp = () => {};\n\nexport function DefaultList<K extends string | number, D extends Record<string, any>>({\n 'aria-label': ariaLabel,\n componentName,\n currentItemVariant,\n currentKey,\n data,\n itemRenderer,\n itemText,\n onCurrentKeyChange,\n onItemAction,\n onLoadRange = noOp,\n onSelectionChange,\n searchText,\n selectedKeys,\n selectionMode\n}: Props<K, D>) {\n const listItemRenderer = useCallback(\n (listItemContext: ListItemRendererContext<K, D>) => {\n // specify the listItemContext props that we want to expose individually instead of\n // spreading the whole object so that we don't automatically include any new props that\n // may be added to it\n const itemRendererProps: ItemRendererProps<K, D> = {\n data: listItemContext.data,\n index: listItemContext.index,\n metadata: listItemContext.metadata,\n selector: listItemContext.selector,\n searchText,\n selectedKeys,\n onSelectionChange: ({ value }) => {\n onSelectionChange?.({ value });\n }\n };\n const itemContext = {\n data: listItemContext.data,\n key: listItemContext.metadata.key,\n metadata: listItemContext.metadata\n };\n return itemRenderer ? (\n itemRenderer(itemRendererProps)\n ) : (\n <Flex align=\"center\">\n {listItemContext.selector && (\n <div class={dropdownStyles.selectorWrapper}>{listItemContext.selector()}</div>\n )}\n <div\n class={\n selectionMode === 'single'\n ? dropdownStyles.singleSelectItem\n : dropdownStyles.multiSelectItem\n }>\n <ListItemText variant=\"primary\">\n <HighlightText matchText={searchText}>\n {renderItemText(itemContext, itemText, componentName) as string}\n </HighlightText>\n </ListItemText>\n </div>\n </Flex>\n );\n },\n [\n componentName,\n itemRenderer,\n itemText,\n onSelectionChange,\n searchText,\n selectedKeys,\n selectionMode\n ]\n );\n\n const keys = useMemo(() => {\n return { all: false, keys: selectedKeys ?? new Set<K>() };\n }, [selectedKeys]) as Keys<K>;\n\n const currentItemOverride = useMemo(\n () => (currentKey !== undefined ? { rowKey: currentKey } : undefined),\n [currentKey]\n );\n const handleItemAction = useCallback<NonNullable<ListProps<K, D>['onItemAction']>>(\n ({ context: { data, metadata } }) => {\n onItemAction?.({ context: { data, key: metadata.key, metadata } });\n },\n [onItemAction]\n );\n const handleSelectionChange = useCallback<NonNullable<ListProps<K, D>['onSelectionChange']>>(\n ({ value }) => {\n onSelectionChange?.({ value: new Set(value.keys?.values()) });\n },\n [onSelectionChange]\n );\n\n return (\n <List<K, D>\n aria-label={ariaLabel}\n allowTabbableMode={false}\n currentItemVariant={currentItemVariant}\n currentItemOverride={currentItemOverride}\n data={data ?? null}\n onPersistCurrentItem={onCurrentKeyChange}\n onItemAction={handleItemAction}\n onLoadRange={onLoadRange}\n onSelectionChange={handleSelectionChange}\n role=\"listbox\"\n selectedKeys={keys}\n selectionMode={selectionMode}>\n {(context: ListItemRendererContext<K, D>) => listItemRenderer(context)}\n </List>\n );\n}\n","export const isSimpleClick = (event: MouseEvent) => {\n return event.button === 0 && !event.ctrlKey;\n};\n\nexport const preventDefault = (event: Event) => {\n event.preventDefault();\n};\n\nexport const preventDefaultForCurrentTarget = (event: MouseEvent) => {\n if (event.currentTarget === event.target) {\n event.preventDefault();\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 } from 'preact/hooks';\nimport { usePress } from '../hooks/UNSAFE_usePress';\nimport { DropdownArrowIcon } from '../PRIVATE_ThemedIcons/DropdownArrowIcon';\nimport { classNames } from '../utils/UNSAFE_classNames';\nimport { dropdownStyles } from './themes/dropdownStyles.css';\nimport { useComponentTheme } from '#hooks/UNSAFE_useComponentTheme';\nimport { ButtonLabelLayoutRedwoodTheme } from '#UNSAFE_ButtonLabelLayout/themes/redwood/ButtonLabelLayoutTheme';\nimport type { ButtonLabelLayoutVariantOptions } from '#UNSAFE_ButtonLabelLayout/themes/ButtonLabelLayoutStyles.css';\nimport { TestIdProps, useTestId } from '#hooks/UNSAFE_useTestId';\nimport { BaseButtonRedwoodTheme } from '#UNSAFE_BaseButton/themes/redwood/BaseButtonTheme';\n\ntype Props = TestIdProps & {\n isDisabled?: boolean;\n onClick?: () => void;\n};\n\nconst noop = () => {};\n\nexport function DropdownArrow({ isDisabled = false, onClick, testId }: Props) {\n const { classes } = useComponentTheme<ButtonLabelLayoutVariantOptions>(\n ButtonLabelLayoutRedwoodTheme,\n { size: 'sm' }\n );\n const { baseTheme } = useComponentTheme(BaseButtonRedwoodTheme);\n\n const preventDefault = useCallback((event: Event) => {\n event.preventDefault();\n }, []);\n const { pressProps } = usePress(onClick ?? noop, { isDisabled });\n\n // TODO: JET-67410 replace this with a icon button\n const styleClasses = classNames([\n classes,\n baseTheme,\n dropdownStyles.arrow.base,\n isDisabled ? dropdownStyles.arrow.disabled : dropdownStyles.arrow.enabled\n ]);\n\n const testIdProps = useTestId(testId);\n\n return (\n <span\n aria-hidden=\"true\"\n class={styleClasses}\n tabIndex={-1}\n onMouseDown={preventDefault}\n {...testIdProps}\n {...pressProps}>\n <DropdownArrowIcon />\n </span>\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 type { ComponentChildren, ComponentProps, Ref } from 'preact';\n\nimport { CollectionInteractionContext } from '#hooks/UNSAFE_useCollectionInteractionContext';\nimport { classNames } from '#utils/UNSAFE_classNames';\nimport { preventDefaultForCurrentTarget } from './eventUtils';\nimport { dropdownStyles } from './themes/dropdownStyles.css';\n\ntype Props = Pick<ComponentProps<'div'>, 'id' | 'onKeyDown'> & {\n children?: ComponentChildren;\n dropdownListRef?: Ref<HTMLDivElement>;\n hasTopGap?: boolean;\n hasBottomGap?: boolean;\n isLoading?: boolean;\n};\n\nexport function DropdownList({\n children,\n id,\n dropdownListRef,\n hasTopGap = true,\n hasBottomGap = true,\n isLoading = false,\n onKeyDown\n}: Props) {\n const styleClasses = classNames([\n dropdownStyles.list.base,\n hasTopGap && dropdownStyles.list.topGap,\n hasBottomGap && dropdownStyles.list.bottomGap,\n isLoading && dropdownStyles.list.loading\n ]);\n return (\n <CollectionInteractionContext.Provider value={'embedded'}>\n <div\n ref={dropdownListRef}\n class={styleClasses}\n id={id}\n onMouseDown={preventDefaultForCurrentTarget}\n onKeyDown={onKeyDown}>\n {children}\n </div>\n </CollectionInteractionContext.Provider>\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 { Text } from '#UNSAFE_Text';\nimport { useTranslationBundle } from '#hooks/UNSAFE_useTranslationBundle';\nimport { BundleType } from '#resources/nls/bundle';\nimport { preventDefaultForCurrentTarget } from './eventUtils';\nimport { dropdownStyles } from './themes/dropdownStyles.css';\n\nexport function EmptyResults() {\n const translations = useTranslationBundle<BundleType>('@oracle/oraclejet-preact');\n\n // call preventDefault for mousedown on this div so that focus does not transfer from\n // the input\n return (\n <div class={dropdownStyles.results.extraItem} onMouseDown={preventDefaultForCurrentTarget}>\n <Text variant=\"primary\">{translations.select_noMatchesFound()}</Text>\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 type { DataState } from '#UNSAFE_Collection';\nimport { getClientHints } from '#utils/PRIVATE_clientHints';\nimport type { Item } from '#utils/UNSAFE_dataProvider';\n\n/**\n * Helper function to determine whether the current device is a mobile device\n * @returns true if running on a mobile device, false otherwise\n */\nexport function isMobile() {\n const deviceType = getClientHints().deviceType;\n return deviceType === 'phone' || deviceType === 'tablet';\n}\n\n/**\n * Helper function to determine whether the current device is a phone\n * @returns true if running on a phone, false otherwise\n */\nexport function isPhone() {\n return getClientHints().deviceType === 'phone';\n}\n\n/**\n * Helper function to determine whether the current device is a tablet\n * @returns true if running on a tablet, false otherwise\n */\nexport function isTablet() {\n return getClientHints().deviceType === 'tablet';\n}\n\nexport function isBeforeDataFetch<K, D>(data: DataState<K, D>) {\n return data.sizePrecision === 'atLeast' && data.totalSize === 0;\n}\n\nexport function isSearchTextEmptyOrUndefined(searchText?: string) {\n return searchText === undefined || searchText.length === 0;\n}\n\nexport function isSearchClearedFirstTime(prevSearchText?: string, searchText?: string) {\n return prevSearchText === undefined && searchText === '';\n}\n\n/**\n * Extract keys from a value items array.\n *\n * @param valueItems The value items from which the keys are to be extracted\n * @returns The set of keys\n */\nexport function createKeysFromValueItems<K, D>(valueItems?: Item<K, D>[]) {\n const keys = valueItems?.reduce((accumKeys, currentItem) => {\n accumKeys.add(currentItem.key);\n return accumKeys;\n }, new Set<K>());\n return keys;\n}\n","import type { DataState } from '#UNSAFE_Collection';\nimport type { Item } from '#utils/UNSAFE_dataProvider';\nimport { useMemo } from 'preact/compat';\n\ntype Key = string | number;\ntype Data = Record<string, any>;\n\ntype UseCollectionRendererCommonParams<K> = {\n currentKey?: K;\n searchText?: string;\n selectedKeys?: Set<K>;\n onCurrentKeyChange: (detail: { value?: K }) => void;\n};\n\nexport type UseCollectionRendererSelectSingleParams<K, D> = UseCollectionRendererCommonParams<K> & {\n onItemAction: (detail: { context: Item<K, D> }) => void;\n onSelectedKeysChange?: never;\n selectedOnlyData?: never;\n};\n\nexport type UseCollectionRendererSelectMultipleParams<K, D> =\n UseCollectionRendererCommonParams<K> & {\n onItemAction?: never;\n onSelectedKeysChange: (detail: { value: Set<K> }) => void;\n selectedOnlyData?: DataState<K, D>;\n };\n\ntype UseCollectionRendererParams<K, D> =\n | UseCollectionRendererSelectSingleParams<K, D>\n | UseCollectionRendererSelectMultipleParams<K, D>;\n\ntype CommonCollectionRendererContext<K extends Key> = {\n searchText?: string;\n currentRowKeyOverride?: K;\n onPersistCurrentRowKey: (detail: { value?: K }) => void;\n selected?: Set<K>;\n};\n\nexport type SelectSingleCollectionRendererContext<\n K extends Key,\n D extends Data\n> = CommonCollectionRendererContext<K> & {\n onRowAction: (detail: { context: Item<K, D> }) => void;\n};\n\nexport type SelectMultipleCollectionRendererContext<\n K extends Key,\n D extends Data\n> = CommonCollectionRendererContext<K> & {\n onSelectedChange: (detail: { value: Set<K> }) => void;\n selectedOnlyData?: DataState<K, D>;\n};\n\ntype CollectionRendererContext<K extends Key, D extends Data> =\n | SelectSingleCollectionRendererContext<K, D>\n | SelectMultipleCollectionRendererContext<K, D>;\n\n// NOTE: We will using a single hook that constructs the collection renderer context for both select single and\n// select multiple. This is ok as they both share most of the properties and differ only in a few areas. So, we will\n// be using function overloading to determine which component is calling the hook (based on the args) and return the\n// correct context.\n\n/**\n * A custom hook that constructs the context for SelectSingle's collectionRenderer.\n * @param params Parameters for constructing the collection renderer context\n * @returns the CollectionRendererContext object\n */\nexport function useCollectionRenderer<K extends Key, D extends Data>(\n params: UseCollectionRendererSelectSingleParams<K, D>\n): SelectSingleCollectionRendererContext<K, D>;\n\n/**\n * A custom hook that constructs the context for SelectMultiple's collectionRenderer.\n * @param params Parameters for constructing the collection renderer context\n * @returns the CollectionRendererContext object\n */\nexport function useCollectionRenderer<K extends Key, D extends Data>(\n params: UseCollectionRendererSelectMultipleParams<K, D>\n): SelectMultipleCollectionRendererContext<K, D>;\n\n/**\n * A custom hook that constructs the context for SelectSingle/SelectMultiple's collectionRenderer.\n * @param param0 Parameters for constructing the collection renderer context\n * @returns the CollectionRendererContext object\n */\nexport function useCollectionRenderer<K extends Key, D extends Data>({\n currentKey,\n onCurrentKeyChange,\n onItemAction,\n onSelectedKeysChange,\n searchText,\n selectedKeys,\n selectedOnlyData\n}: UseCollectionRendererParams<K, D>) {\n return useMemo<CollectionRendererContext<K, D>>(() => {\n const common = {\n searchText,\n currentRowKeyOverride: currentKey,\n onPersistCurrentRowKey: onCurrentKeyChange,\n selected: selectedKeys\n } satisfies CommonCollectionRendererContext<K>;\n\n // If onItemAction is present, then we are constructing context for SelectSingle. So,\n // return the context satisfying SelectSingleCollectionRendererContext type.\n if (onItemAction !== undefined)\n return {\n ...common,\n onRowAction: onItemAction\n } satisfies SelectSingleCollectionRendererContext<K, D>;\n\n // If onItemAction is not present, then we are constructing context for SelectMultiple. So,\n // return the context satisfying SelectMultipleCollectionRendererContext type.\n return {\n ...common,\n onSelectedChange: onSelectedKeysChange,\n selectedOnlyData\n } satisfies SelectMultipleCollectionRendererContext<K, D>;\n }, [\n currentKey,\n onCurrentKeyChange,\n onItemAction,\n onSelectedKeysChange,\n searchText,\n selectedKeys,\n selectedOnlyData\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 type { RefObject } from 'preact';\nimport { useCallback, useEffect, useRef, useState } from 'preact/hooks';\n\nimport type { DataState } from '#UNSAFE_Collection';\nimport type { PositionData } from '#UNSAFE_Floating';\nimport { KEYS, isControlOrFunctionKey } from '#utils/PRIVATE_keyboardUtils';\nimport { allTabbableElements } from '#utils/PRIVATE_tabbableUtils';\nimport type { ValueUpdateDetail } from '#utils/UNSAFE_valueUpdateDetail';\nimport { isSimpleClick } from './eventUtils';\n\ntype UseSelectCommonProps<K, D> = {\n data?: DataState<K, D> | null;\n inputRef: RefObject<HTMLElement>;\n isFocused?: boolean;\n onFilter?: ({ searchText }: { searchText?: string }) => void;\n};\n\nexport type CurrentKeyDetail<K> = {\n value?: K;\n};\n\n/**\n * Hook that manages state and behavior for a Select* component. This hook creates state\n * variables and event listeners, returning properties to apply to components internally\n * rendered by a Select* component, as well as state information.\n *\n * @param data Specifies data for the dropdown list.\n * @param inputRef Ref to the input element.\n * @param isFocused Specifies whether the component has focus.\n * @param onFilter Callback function to trigger loading data for the dropdown list,\n * which may or may not be filtered by user entered text.\n *\n * @returns Component state and event listeners.\n */\nexport function useSelectCommon<K, D>({\n data,\n inputRef,\n isFocused,\n onFilter\n}: UseSelectCommonProps<K, D>) {\n const mainFieldRef = useRef<HTMLDivElement>(null);\n const dropdownRef = useRef<HTMLDivElement>(null);\n const [isDropdownOpen, setDropdownOpen] = useState(false);\n const [isDropdownAbove, setDropdownAbove] = useState(false);\n\n // We only need to push currentRow when we need to override the\n // current row, like when the dropdown is opened and we want to set the initial\n // focused row or when filtering and we want to focus the first row.\n const [currentRowOverride, _setCurrentRowOverride] = useState<{ rowKey?: K }>({\n rowKey: undefined\n });\n // We still need information on what the current row actually is, but we do not need\n // to react to it until certain scenarios like pressing Tab from the dropdown. So, we\n // just store this in a ref.\n const currentRowKeyRef = useRef<K>();\n // When we want to update the currentRowOverride, we also want to keep the currentRowKeyRef\n // in sync as the collection will not call onChanged for this change.\n const setCurrentRowOverride = useCallback((currentRow: { rowKey?: K }) => {\n currentRowKeyRef.current = currentRow.rowKey;\n _setCurrentRowOverride(currentRow);\n }, []);\n const [isUserFiltering, setUserFiltering] = useState(false);\n const [userInput, setUserInput] = useState<string>();\n const [searchText, setSearchText] = useState<string>();\n\n const [prevIsDropdownOpen, setPrevIsDropdownOpen] = useState(isDropdownOpen);\n const [prevIsFocused, setPrevIsFocused] = useState(isFocused);\n const [prevIsUserFiltering, setPrevIsUserFiltering] = useState(isUserFiltering);\n\n const onMouseDown = useCallback(\n (event: MouseEvent) => {\n // const target = event.target as HTMLElement;\n if (event.defaultPrevented || !isSimpleClick(event)) {\n return;\n }\n if (!isDropdownOpen) {\n setDropdownOpen(true);\n }\n // this is needed to focus the input when clicking on the inside label when there is no\n // value; otherwise the component looks focused but doesn't actually have physical focus\n setTimeout(function () {\n inputRef.current?.focus();\n }, 0);\n },\n [inputRef, isDropdownOpen]\n );\n\n const handleDropdownArrowClick = useCallback(() => {\n setDropdownOpen(!isDropdownOpen);\n\n // focus the input so that if the user Tabs afterwards, it loses focus and the dropdown closes\n inputRef.current?.focus();\n }, [inputRef, isDropdownOpen]);\n\n const handleDropdownAutoDismiss = useCallback(\n (event?: Event) => {\n if (isDropdownOpen) {\n setDropdownOpen(false);\n\n switch (event?.type) {\n case 'keydown': {\n const keyboardEvent = event as KeyboardEvent;\n switch (keyboardEvent.code) {\n case KEYS.ESC:\n // focus the input when the user cancels out of the dropdown\n inputRef.current?.focus();\n break;\n default:\n break;\n }\n break;\n }\n case 'mousedown':\n // if focus is in the dropdown, focus the input before the dropdown is hidden so that\n // focus will transfer correctly when the target is not focusable;\n // otherwise the text cursor appears in the input again\n if (dropdownRef.current?.contains(document.activeElement)) {\n inputRef.current?.focus();\n }\n break;\n default:\n break;\n }\n }\n },\n [inputRef, isDropdownOpen]\n );\n\n const handleDropdownPosition = useCallback((data: PositionData) => {\n setDropdownAbove(data.placement.startsWith('top'));\n }, []);\n\n const getDropdownTabbableElems = useCallback(() => {\n return isDropdownOpen && dropdownRef.current\n ? allTabbableElements(dropdownRef.current)\n : undefined;\n }, [isDropdownOpen]);\n\n const handleUpDownArrowKeys = useCallback(\n (event: KeyboardEvent) => {\n if (!isDropdownOpen) {\n setDropdownOpen(true);\n } else {\n // JET-64909 - focus / 'current' dropped when arrow keying during loading\n // Transfer physical focus into the dropdown only if the data is present and the dropdown\n // has rendered the data. Otherwise, keep the focus in the field.\n if (data != null) {\n const tabbableElems = getDropdownTabbableElems();\n tabbableElems?.[0]?.focus();\n\n // if there is no current item set, make the first item current\n if (currentRowOverride.rowKey === undefined) {\n setCurrentRowOverride({ rowKey: data.data[0]?.metadata?.key });\n }\n }\n }\n\n // prevent the page from scrolling\n event.preventDefault();\n },\n [currentRowOverride, data, getDropdownTabbableElems, isDropdownOpen, setCurrentRowOverride]\n );\n\n const handleMainFieldKeyDown = useCallback(\n (event: KeyboardEvent) => {\n // const target = event.target as HTMLElement;\n // ignore control key and function key\n if (isControlOrFunctionKey(event)) {\n return;\n }\n\n switch (event.code) {\n case KEYS.PAGE_UP:\n case KEYS.PAGE_DOWN:\n // prevent the page from scrolling\n event.preventDefault();\n\n return;\n\n case KEYS.UP:\n case KEYS.DOWN:\n // prevent the page from scrolling\n event.preventDefault();\n break;\n\n case KEYS.ESC:\n if (isDropdownOpen) {\n setDropdownOpen(false);\n\n event.preventDefault();\n\n // JET-53183 - core pack compat: stop propagation of handled events\n // we don't want a parent collection component to stop editing the row when we close\n // the dropdown\n event.stopPropagation();\n }\n break;\n\n default:\n break;\n }\n },\n [isDropdownOpen]\n );\n\n const handleMainFieldKeyUp = useCallback(\n (event: KeyboardEvent) => {\n // ignore control key and function key\n if (isControlOrFunctionKey(event)) {\n return;\n }\n\n switch (event.code) {\n case KEYS.UP:\n case KEYS.DOWN:\n handleUpDownArrowKeys(event);\n break;\n\n default:\n break;\n }\n },\n [handleUpDownArrowKeys]\n );\n\n const handleInput = useCallback(\n (detail: ValueUpdateDetail<string>) => {\n if (!isDropdownOpen) {\n setDropdownOpen(true);\n }\n setUserFiltering(true);\n setUserInput(detail.value);\n const str = detail.value;\n setSearchText(str);\n onFilter?.({ searchText: str });\n },\n [isDropdownOpen, onFilter]\n );\n\n const onCurrentKeyChange = useCallback((detail: CurrentKeyDetail<K>) => {\n // when the collection changes the current key, we only want to store the information\n // and not do anything.\n currentRowKeyRef.current = detail.value;\n }, []);\n\n const stopFiltering = useCallback(() => {\n setUserFiltering(false);\n setUserInput('');\n // Set this to `undefined` as this represents the initial state.\n // We need to do this for select-single as we need to highlight different\n // rows based on whether it is the initial dropdown navigation or empty filter navigation.\n setSearchText(undefined);\n }, []);\n\n const updateFiltering = useCallback((value?: string) => {\n setUserFiltering(true);\n setUserInput(value);\n setSearchText(value);\n }, []);\n\n // the user is not actively filtering if the dropdown is closed and the component doesn't\n // have focus\n if (\n prevIsDropdownOpen !== isDropdownOpen ||\n prevIsFocused !== isFocused ||\n prevIsUserFiltering !== isUserFiltering\n ) {\n if (!isDropdownOpen && !isFocused && isUserFiltering) {\n stopFiltering();\n }\n }\n\n // need to call onFilter with undefined searchText when the dropdown opens and the\n // user is NOT filtering\n useEffect(() => {\n if (isDropdownOpen && !isUserFiltering) {\n onFilter?.({ searchText: undefined });\n }\n }, [isDropdownOpen, isUserFiltering, onFilter]);\n\n // when the dropdown closes, reset the isDropdownAbove flag\n if (prevIsDropdownOpen !== isDropdownOpen) {\n if (!isDropdownOpen) {\n setDropdownAbove(false);\n }\n setPrevIsDropdownOpen(isDropdownOpen);\n }\n\n if (prevIsFocused !== isFocused) {\n setPrevIsFocused(isFocused);\n }\n if (prevIsUserFiltering !== isUserFiltering) {\n setPrevIsUserFiltering(isUserFiltering);\n }\n\n return {\n currentRowKeyRef,\n currentRowOverride,\n dropdownRef,\n getDropdownTabbableElems,\n handleDropdownArrowClick,\n handleDropdownAutoDismiss,\n handleDropdownPosition,\n handleInput,\n handleMainFieldKeyDown,\n handleMainFieldKeyUp,\n handleUpDownArrowKeys,\n isDropdownAbove,\n isDropdownOpen,\n // the field should remain to look focused while the dropdown is open,\n // in case physical focus is in the dropdown\n isFocused: isFocused || isDropdownOpen,\n isUserFiltering,\n mainFieldRef,\n onCurrentKeyChange,\n onMouseDown,\n searchText,\n setCurrentRowOverride,\n setDropdownOpen,\n setUserInput,\n stopFiltering,\n updateFiltering,\n userInput\n };\n}\n"],"names":["renderItemText","item","itemText","componentName","itemData","data","Object","prototype","hasOwnProperty","call","retData","String","error","noOp","isSimpleClick","event","button","ctrlKey","preventDefaultForCurrentTarget","currentTarget","target","preventDefault","noop","ariaLabel","currentItemVariant","currentKey","itemRenderer","onCurrentKeyChange","onItemAction","onLoadRange","onSelectionChange","searchText","selectedKeys","selectionMode","listItemRenderer","useCallback","listItemContext","itemRendererProps","index","metadata","selector","value","itemContext","key","_jsxs","jsxs","Flex","align","children","_jsx","class","dropdownStyles","selectorWrapper","singleSelectItem","multiSelectItem","ListItemText","variant","jsx","HighlightText","matchText","keys","useMemo","all","Set","currentItemOverride","undefined","rowKey","handleItemAction","context","handleSelectionChange","values","List","allowTabbableMode","onPersistCurrentItem","role","isDisabled","onClick","testId","classes","useComponentTheme","ButtonLabelLayoutRedwoodTheme","size","baseTheme","BaseButtonRedwoodTheme","pressProps","usePress","styleClasses","classNames","arrow","base","disabled","enabled","testIdProps","useTestId","tabIndex","onMouseDown","DropdownArrowIcon","SvgCaretDown","id","dropdownListRef","hasTopGap","hasBottomGap","isLoading","onKeyDown","list","topGap","bottomGap","loading","CollectionInteractionContext","Provider","ref","translations","useTranslationBundle","results","extraItem","Text","select_noMatchesFound","valueItems","reduce","accumKeys","currentItem","add","sizePrecision","totalSize","deviceType","getClientHints","prevSearchText","length","onSelectedKeysChange","selectedOnlyData","common","currentRowKeyOverride","onPersistCurrentRowKey","selected","onRowAction","onSelectedChange","inputRef","isFocused","onFilter","mainFieldRef","useRef","dropdownRef","isDropdownOpen","setDropdownOpen","useState","isDropdownAbove","setDropdownAbove","currentRowOverride","_setCurrentRowOverride","currentRowKeyRef","setCurrentRowOverride","currentRow","current","isUserFiltering","setUserFiltering","userInput","setUserInput","setSearchText","prevIsDropdownOpen","setPrevIsDropdownOpen","prevIsFocused","setPrevIsFocused","prevIsUserFiltering","setPrevIsUserFiltering","defaultPrevented","setTimeout","focus","handleDropdownArrowClick","handleDropdownAutoDismiss","type","code","KEYS","ESC","contains","document","activeElement","handleDropdownPosition","placement","startsWith","getDropdownTabbableElems","allTabbableElements","handleUpDownArrowKeys","tabbableElems","handleMainFieldKeyDown","isControlOrFunctionKey","PAGE_UP","PAGE_DOWN","UP","DOWN","stopPropagation","handleMainFieldKeyUp","handleInput","detail","str","stopFiltering","updateFiltering","useEffect"],"mappings":"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"}
|
|
@@ -28,6 +28,9 @@ var TabbableModeContext = require('./TabbableModeContext-e99d527e.js');
|
|
|
28
28
|
var FocusTrap = require('./FocusTrap-4873a3f2.js');
|
|
29
29
|
var useUser = require('./useUser-1295b5cb.js');
|
|
30
30
|
var keys = require('./keys-25710458.js');
|
|
31
|
+
require('./StyledCheckbox-9047ed7d.js');
|
|
32
|
+
|
|
33
|
+
require('./CollectionInteractionContext-f84ff7a1.js');
|
|
31
34
|
var useReorderableItem = require('./useReorderableItem-64be8d2b.js');
|
|
32
35
|
var useReorderableContext = require('./useReorderableContext-92514102.js');
|
|
33
36
|
var Grid = require('./Grid-cef20569.js');
|
|
@@ -632,4 +635,4 @@ const BaseCardView = BaseCardViewImpl;
|
|
|
632
635
|
exports.BaseCardView = BaseCardView;
|
|
633
636
|
exports.getColCount = getColCount;
|
|
634
637
|
exports.gutterSizeToPX = gutterSizeToPX;
|
|
635
|
-
//# sourceMappingURL=BaseCardView-
|
|
638
|
+
//# sourceMappingURL=BaseCardView-ba63723a.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseCardView-c0909427.js","sources":["../../src/PRIVATE_BaseCardView/BaseCardViewUtils.ts","../../src/PRIVATE_BaseCardView/BaseCardViewReorderableItem.tsx","../../src/PRIVATE_BaseCardView/BaseCardViewItem.tsx","../../src/PRIVATE_BaseCardView/BaseCardViewLayout.tsx","../../src/PRIVATE_BaseCardView/BaseCardViewSkeletonContainer.tsx","../../src/PRIVATE_BaseCardView/BaseCardViewSkeleton.tsx","../../src/PRIVATE_BaseCardView/useCardViewReorder.ts","../../src/PRIVATE_BaseCardView/BaseCardView.tsx"],"sourcesContent":["import { Size } from '../utils/UNSAFE_size';\n\n/**\n * Item selector for CardView components\n */\nexport const CARDVIEW_ITEM_SELECTOR = '[data-oj-card-item]';\n\nexport const emptyKeys = { all: false, keys: new Set() };\nexport type GutterSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\n/**\n * A mapping of gutterSize to concrete size in pixels\n */\nexport const gutterSizeToPX: Record<string, number> = {\n xs: 12,\n sm: 16,\n md: 24,\n lg: 48,\n xl: 64\n};\n\nexport const getGapSize = (gutterSize?: GutterSize) => {\n const px = gutterSizeToPX[gutterSize || 'sm'];\n const gap = `${px / 4}x` as Size;\n return gap;\n};\n\nexport const getColCount = (gapWidth: number, cardWidth?: number, rootWidth?: number) => {\n if (!cardWidth || !rootWidth) return 0;\n\n // if we have n cards, we have n-1 gaps\n const colCount = Math.floor((rootWidth + gapWidth) / (gapWidth + cardWidth));\n return Math.max(1, colCount);\n};\n","import { useRef, useCallback, useEffect } from 'preact/hooks';\nimport { useReorderableItem } from '../hooks/PRIVATE_useReorderable';\nimport { useUser } from '../hooks/UNSAFE_useUser';\nimport { classNames } from '../utils/UNSAFE_classNames';\nimport { ReorderableItemProps } from '../UNSAFE_Collection/Reorderable.types';\nimport { multiVariantStyles, styles } from './themes/BaseCardViewStyles.css';\nimport { CARDVIEW_ITEM_SELECTOR, GutterSize } from './BaseCardViewUtils';\nimport { useReorderableContext } from '#hooks/PRIVATE_useReorderable/useReorderableContext';\nimport { isKeyDefined } from '../utils/UNSAFE_keys';\n\ntype BaseItemProps<K> = {\n itemKey: K;\n itemIndex: number;\n isCurrentKey: boolean;\n};\n\nexport type BaseCardViewReorderableItemProps<K> = ReorderableItemProps<K> & {\n gutterSize: GutterSize;\n columns: number;\n};\n\n/**\n * The internal component used to render a reorderable item in CardView.\n */\nexport function BaseCardViewReorderableItem<K extends string | number>({\n children,\n itemKey,\n itemIndex,\n isCurrentKey,\n dragKey,\n setDragKey,\n onReorder,\n rootRef,\n gutterSize,\n columns\n}: BaseCardViewReorderableItemProps<K> & BaseItemProps<K>) {\n const itemRef = useRef<HTMLDivElement | null>(null);\n const isOneColumn = columns === 1;\n const isFirstColumn = itemIndex % columns === 0;\n const isLastColumn = itemIndex % columns === columns - 1;\n const variantClasses = multiVariantStyles({\n itemOverlayFront: gutterSize\n });\n const variantClassesVertical = multiVariantStyles({\n itemOverlayFrontVertical: gutterSize\n });\n const itemStyles = {\n itemOverlayFront: isOneColumn ? variantClassesVertical : variantClasses,\n itemOverlayRear: isOneColumn ? styles.itemOverlayRearVertical : styles.itemOverlayRear,\n itemDragger: styles.itemDragger\n };\n const getItem = useCallback(\n () => itemRef?.current?.closest(CARDVIEW_ITEM_SELECTOR) as HTMLElement,\n []\n );\n const setTransferData = useCallback(\n (event: DragEvent) => {\n event.dataTransfer?.setData('text/cardview-items-key', JSON.stringify(itemKey));\n },\n [itemKey]\n );\n const { rootProps, isDragged, overlayZoneBeforeProps, overlayZoneAfterProps } =\n useReorderableItem({\n isDisabled: onReorder ? false : true,\n dragKey,\n setDragKey,\n onReorder,\n rootRef,\n ref: itemRef,\n getItem,\n setTransferData,\n itemStyles,\n itemSelector: CARDVIEW_ITEM_SELECTOR,\n isVertical: isOneColumn\n });\n\n // TODO: remove this as part of JET-70023\n const { currentItemKey } = useReorderableContext();\n useEffect(() => {\n if (isCurrentKey) {\n currentItemKey.current = itemKey;\n }\n }, [isCurrentKey, itemKey, currentItemKey]);\n\n const { direction } = useUser();\n const isRtl = direction === 'rtl';\n\n const overlayZoneBeforeClass = classNames([\n overlayZoneBeforeProps?.class,\n !isOneColumn && !isRtl && isFirstColumn && styles.itemOverlayFrontEdge,\n !isOneColumn && isRtl && isLastColumn && styles.itemOverlayFrontEdge\n ]);\n\n const overlayZoneAfterClass = classNames([\n overlayZoneAfterProps?.class,\n !isOneColumn && !isRtl && isLastColumn && styles.itemOverlayRearEdge,\n !isOneColumn && isRtl && isFirstColumn && styles.itemOverlayRearEdge\n ]);\n\n return (\n <div {...rootProps}>\n {children}\n {!isDragged && isKeyDefined(dragKey) && (\n <>\n <div {...overlayZoneBeforeProps} class={overlayZoneBeforeClass}></div>\n <div {...overlayZoneAfterProps} class={overlayZoneAfterClass}></div>\n </>\n )}\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 */\nimport { ComponentChildren } from 'preact';\nimport { memo } from 'preact/compat';\nimport {\n useRef,\n useCallback,\n useLayoutEffect,\n useMemo,\n useEffect,\n StateUpdater,\n Dispatch,\n MutableRef\n} from 'preact/hooks';\nimport { classNames } from '../utils/UNSAFE_classNames';\nimport { mergeRefs } from '../utils/PRIVATE_refUtils';\nimport { warn } from '../utils/UNSAFE_logger';\nimport { allTabbableElements } from '../utils/PRIVATE_tabbableUtils';\nimport { useId } from '../hooks/UNSAFE_useId';\nimport { useAnimation, UseAnimationConfig } from '../hooks/UNSAFE_useAnimation';\nimport { useResizeObserver } from '../hooks/UNSAFE_useResizeObserver';\nimport { TabbableModeContext } from '../hooks/UNSAFE_useTabbableMode';\nimport { FocusTrap } from '../UNSAFE_FocusTrap';\nimport { SelectionMode, ListItemRendererContext, SelectionDetail } from '../UNSAFE_Collection';\nimport { multiVariantStyles, styles } from './themes/BaseCardViewStyles.css';\nimport {\n BaseCardViewReorderableItem,\n BaseCardViewReorderableItemProps\n} from './BaseCardViewReorderableItem';\nimport { containsKey, isSameKey, Keys } from '../utils/UNSAFE_keys';\nimport { getItemContext } from '../utils/PRIVATE_collectionUtils';\n\n/**\n * Props for the BaseCardViewItem Component\n */\nexport type Props<K, D> = {\n children: (context: ListItemRendererContext<K, D>) => ComponentChildren;\n itemKey: K;\n itemData: D;\n itemIndex: number;\n isTabbable: boolean;\n isCurrentKey: boolean;\n isFocused: boolean;\n isFocusRingVisible: boolean;\n selectedKeys: Keys<K>;\n selectionMode: SelectionMode;\n onSelectionChange?: (detail: SelectionDetail<K>) => void;\n focusBehavior: 'card' | 'content';\n setIsFocusBehaviorValid?: Dispatch<StateUpdater<boolean>>;\n initialAnimation?: 'slideUp' | 'slideDown';\n isGridLayout?: boolean;\n updateCardSize?: (width: number, height: number) => void;\n onAnimationBusyStart?: () => void;\n onAnimationBusyEnd?: () => void;\n} & {\n reorderItemProps?: Omit<BaseCardViewReorderableItemProps<K>, 'children'>;\n};\n\n/**\n * The internal component used to render a single item in CardView.\n */\nfunction BaseCardViewItem<K extends string | number, D>({\n children,\n itemKey,\n itemData,\n itemIndex,\n isTabbable,\n isCurrentKey,\n isFocused,\n isFocusRingVisible,\n selectedKeys,\n selectionMode,\n onSelectionChange,\n focusBehavior,\n setIsFocusBehaviorValid,\n initialAnimation,\n isGridLayout,\n updateCardSize,\n reorderItemProps,\n onAnimationBusyStart,\n onAnimationBusyEnd\n}: Props<K, D>) {\n const rootRef = useRef<HTMLDivElement>(null);\n const timeoutRef = useRef<ReturnType<typeof setTimeout>>();\n\n const isItemFocused = isFocused && isFocusRingVisible;\n const variantClasses = multiVariantStyles({\n itemFocused: focusBehavior === 'card' && isItemFocused ? 'isItemFocused' : 'isNotItemFocused',\n itemInitialOpacity: initialAnimation ? 'isTransparent' : 'isNotTransparent',\n itemInGridLayout: isGridLayout ? 'isInGridLayout' : 'isNotInGridLayout'\n });\n const classes = classNames([styles.itemStyle, variantClasses]);\n\n /*********************************** Tabbable Mode ***********************************/\n\n // don't bubble Arrow Up/Down/Left/Right events to parent when in isTabbable mode\n // this bubbling causes the outer CollectionFocus ring to change index while in the isTabbable mode.\n const handleKeyDown = (event: KeyboardEvent) => {\n if (\n focusBehavior === 'card' &&\n isTabbable &&\n (event.key === 'ArrowDown' ||\n event.key === 'ArrowUp' ||\n event.key === 'ArrowLeft' ||\n event.key === 'ArrowRight')\n ) {\n event.stopPropagation();\n }\n };\n\n /************************************ Card Size ************************************/\n\n const handleResize = useCallback(\n (entry: ResizeObserverEntry) => {\n updateCardSize?.(entry.contentRect.width, entry.contentRect.height);\n },\n [updateCardSize]\n );\n\n const nullRef = useRef<HTMLDivElement>(null);\n useResizeObserver(updateCardSize ? rootRef : nullRef, handleResize);\n\n /********************************* Focus Behavior *********************************/\n\n useLayoutEffect(() => {\n if (focusBehavior === 'content' && isItemFocused) {\n // rootRef is cardview item, its first child is the focus trap div, so its first grand child\n // is the actual content\n const content = rootRef.current?.firstElementChild?.firstElementChild as HTMLElement;\n const focusable = allTabbableElements(content, true, true);\n if (focusable.length === 0 || focusable.length > 1) {\n warn(\n `${focusable.length} focusable elements are detected in the card. 'content' focusBehavior is intended only for use when the card has single focusable element. Please specify one focusable element in the card or switch the focusBehavior to 'card'.`\n );\n setIsFocusBehaviorValid?.(false);\n } else {\n focusable[0].focus();\n }\n }\n }, [focusBehavior, isItemFocused, setIsFocusBehaviorValid]);\n\n /******************************** Initial Animation ********************************/\n\n // animation for slide up/down\n const { nodeRef: nodeRefSlide, controller: controllerSlide } = useAnimation<\n 'slideUp' | 'slideDown' | 'none',\n HTMLDivElement\n >(initialAnimation || 'none', animationConfigSlide(itemIndex));\n\n // animation for opacity change\n const { nodeRef: nodeRefOpacity, controller: controllerOpacity } = useAnimation<\n 'opacity' | 'none',\n HTMLDivElement\n >(\n (initialAnimation && 'opacity') || 'none',\n animationConfigOpacity(itemIndex, timeoutRef, onAnimationBusyEnd)\n );\n\n if (initialAnimation) {\n onAnimationBusyStart?.();\n }\n\n // max cap for animation is 1s\n useEffect(() => {\n if (initialAnimation !== undefined) {\n timeoutRef.current = setTimeout(() => {\n controllerSlide.cancel();\n controllerOpacity.cancel();\n if (rootRef.current) {\n rootRef.current.style.opacity = '1';\n }\n onAnimationBusyEnd?.();\n }, 1000);\n }\n }, [controllerOpacity, controllerSlide, initialAnimation, onAnimationBusyEnd]);\n\n // TODO: issue track in JET-57681, we currently have two useAnimation() because the opacity and\n // slide up/down have different durations, and the current API couldn't handle this case, we will\n // update this once the API is updated\n\n /********************************** Child Component **********************************/\n const itemRefs = useMemo(() => {\n // NOTE: spot an issue when we click the cards during animation is processing, the cards would not finish\n // the current animations and stay as what it is, e.g. leave itself as half transparent.\n // need to remove nodeRefSlide and nodeRefOpacity to avoid this issue.\n if (initialAnimation === undefined) {\n return mergeRefs(rootRef);\n }\n return mergeRefs(rootRef, nodeRefSlide, nodeRefOpacity);\n }, [rootRef, nodeRefSlide, nodeRefOpacity, initialAnimation]);\n\n const rendererContext = getItemContext<K, D>(\n { data: { data: itemData, metadata: { key: itemKey } }, index: itemIndex },\n selectedKeys,\n selectionMode === 'multiple',\n onSelectionChange\n );\n\n const childrenComponent = reorderItemProps ? (\n <BaseCardViewReorderableItem\n {...reorderItemProps}\n itemKey={itemKey}\n itemIndex={itemIndex}\n isCurrentKey={isCurrentKey}>\n {children(rendererContext)}\n </BaseCardViewReorderableItem>\n ) : (\n children(rendererContext)\n );\n\n return (\n <div\n id={useId()}\n ref={itemRefs}\n class={classes}\n role=\"gridcell\"\n data-oj-card-item=\"\"\n data-oj-key={itemKey}\n onKeyDown={handleKeyDown}\n aria-selected={selectionMode === 'none' ? undefined : containsKey(selectedKeys, itemKey)}\n {...(typeof itemKey === 'number' && { 'data-oj-key-type': 'number' })}>\n <TabbableModeContext.Provider value={{ isTabbable }}>\n <FocusTrap isDisabled={!isTabbable} restoreFocusRef={false}>\n {childrenComponent}\n </FocusTrap>\n </TabbableModeContext.Provider>\n </div>\n );\n}\n\nconst animationConfigSlide = (\n index: number\n): UseAnimationConfig<'slideUp' | 'slideDown' | 'none', HTMLDivElement> => {\n return {\n animationStates: {\n slideUp: {\n from: {\n translateY: '50px'\n },\n to: {\n translateY: '0px'\n },\n options: {\n duration: 300,\n delay: index * 50,\n easing: [0, 0, 0.2, 1]\n }\n },\n slideDown: {\n from: {\n translateY: '-50px'\n },\n to: {\n translateY: '0'\n },\n options: {\n duration: 300,\n delay: index * 50,\n easing: [0, 0, 0.2, 1]\n }\n }\n },\n isAnimatedOnMount: true\n };\n};\n\nconst animationConfigOpacity = (\n index: number,\n timeoutRef: MutableRef<ReturnType<typeof setTimeout> | undefined>,\n onAnimationBusyEnd?: () => void\n): UseAnimationConfig<'opacity' | 'none', HTMLDivElement> => {\n return {\n animationStates: {\n opacity: {\n from: {\n opacity: 0\n },\n to: {\n opacity: 1\n },\n options: {\n duration: 150,\n delay: index * 50,\n easing: 'linear'\n }\n }\n },\n isAnimatedOnMount: true,\n onAnimationEnd: () => {\n onAnimationBusyEnd?.();\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n }\n }\n };\n};\n\n/**\n * Compare the equality between two reorderItemProps, especially useful for memoized items\n */\nconst _compareReorderItemProps = (\n props1: Props<string | number, unknown>['reorderItemProps'],\n props2: Props<string | number, unknown>['reorderItemProps']\n) => {\n return (\n props1?.['dragKey'] === props2?.['dragKey'] &&\n props1?.['setDragKey'] === props2?.['setDragKey'] &&\n props1?.['columns'] === props2?.['columns'] &&\n props1?.['gutterSize'] === props2?.['gutterSize'] &&\n props1?.['rootRef'] === props2?.['rootRef']\n );\n};\n\nexport const MemoizeBaseCardViewItem = memo(\n BaseCardViewItem,\n (prev: Props<string | number, unknown>, next: Props<string | number, unknown>) => {\n if (prev && next) {\n return (\n prev.children === next.children &&\n prev.itemKey === next.itemKey &&\n prev.itemData === next.itemData &&\n prev.itemIndex === next.itemIndex &&\n prev.isTabbable === next.isTabbable &&\n prev.isCurrentKey === next.isCurrentKey &&\n prev.isFocused === next.isFocused &&\n prev.isFocusRingVisible === next.isFocusRingVisible &&\n prev.initialAnimation === next.initialAnimation &&\n prev.focusBehavior === next.focusBehavior &&\n isSameKey(prev.selectedKeys, next.selectedKeys) &&\n prev.selectionMode === next.selectionMode &&\n prev.onSelectionChange === next.onSelectionChange &&\n prev.setIsFocusBehaviorValid === next.setIsFocusBehaviorValid &&\n prev.isGridLayout === next.isGridLayout &&\n prev.updateCardSize === next.updateCardSize &&\n prev.onAnimationBusyStart === next.onAnimationBusyStart &&\n prev.onAnimationBusyEnd === next.onAnimationBusyEnd &&\n _compareReorderItemProps(prev.reorderItemProps, next.reorderItemProps)\n );\n }\n return false;\n }\n);\n","import { ComponentChildren } from 'preact';\nimport { Grid } from '../UNSAFE_Grid';\nimport { Flex } from '../UNSAFE_Flex';\nimport { GutterSize } from './BaseCardViewUtils';\nimport { cardViewVars } from './themes/BaseCardViewContract.css';\n\ntype Props = {\n children: ComponentChildren;\n layout: 'grid' | 'flex';\n gutterSize: GutterSize;\n columns: number;\n};\n\nexport function BaseCardViewLayout({ children, layout, gutterSize, columns }: Props) {\n const gap = cardViewVars.gutterSize[gutterSize];\n if (layout === 'grid') {\n return columns < 1 ? null : (\n <Grid gridTemplateColumns={`repeat(${columns}, 1fr)`} gap={gap}>\n {children}\n </Grid>\n );\n } else {\n return (\n <Flex wrap=\"wrap\" gap={gap}>\n {children}\n </Flex>\n );\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 */\nimport { ComponentChildren, Fragment } from 'preact';\nimport { useState, useEffect } from 'preact/hooks';\nimport { LOADMORE_STYLE_CLASS } from '../PRIVATE_LoadMoreCollection';\n\ntype Props = {\n /**\n * Allows to pass skeletons\n **/\n children: ComponentChildren;\n};\n\n/**\n * Allows to specify the time delay for rendering the component\n **/\nconst timerValue = 50;\n\n/**\n * BaseCardViewSkeletonContainer renders skeletons after 50ms threshold defined in the Redwood spec\n **/\nexport function BaseCardViewSkeletonContainer({ children }: Props) {\n const [isVisible, setIsVisible] = useState(false);\n\n useEffect(() => {\n setTimeout(() => {\n setIsVisible(true);\n }, timerValue);\n }, []);\n\n return isVisible ? <Fragment>{children}</Fragment> : <div class={LOADMORE_STYLE_CLASS}></div>;\n}\n","import { Size } from '../utils/UNSAFE_size';\nimport { Skeleton } from '../UNSAFE_Skeleton';\nimport { LOADMORE_STYLE_CLASS } from '../PRIVATE_LoadMoreCollection';\nimport { BaseCardViewSkeletonContainer } from './BaseCardViewSkeletonContainer';\nimport { SkeletonRendererContext } from '../UNSAFE_CardFlexView';\nimport { ComponentChildren } from 'preact';\n\nconst DEFAULT_SKELETON_NUMBER = 25;\nconst DEFAULT_SKELETON_WIDTH = '80x';\nconst DEFAULT_SKELETON_HEIGHT = '85x';\n\ntype SkeletonProps = {\n layout: 'flex' | 'grid';\n colCount: number;\n totalCount: number;\n cardWidth?: number;\n cardHeight?: number;\n};\n\n/**\n * A function that returns an array of skeletons based on count\n * @param count the number of skeletons\n */\nconst getSkeletonsByCount = (\n layout: 'flex' | 'grid',\n count = DEFAULT_SKELETON_NUMBER,\n width?: Size,\n height?: Size,\n isUnique = true\n) => {\n const sw = width || (layout === 'flex' ? DEFAULT_SKELETON_WIDTH : '100%');\n const sh = height || DEFAULT_SKELETON_HEIGHT;\n\n return [...Array(count)].map((_v, i) => (\n // create unique keys if needed, otherwise the animations won't start at the same time, because the old copy of skeletons\n // could be reused, even the key is specified by useId(), combine count with time to make the key unique.\n <Skeleton\n key={isUnique && `${i}${new Date().getTime()}`}\n width={sw}\n height={sh}\n borderRadius=\"6px\"\n />\n ));\n};\n\n/**\n * When there is no data (i.e. data is an empty array or null, and hasMore is false), we will show 25 card skeletons with default size\n */\nexport const InitialLoadSkeletons = (props: { layout: SkeletonProps['layout'] }) => (\n <BaseCardViewSkeletonContainer>{getSkeletonsByCount(props.layout)}</BaseCardViewSkeletonContainer>\n);\n\n/**\n * When we are fetching the initial data (i.e. data is an empty array, and hasMore is true), we will show 25 card skeletons with default size,\n * because we don't know the card dimension at this time. Since there is more data to load, we will specify LOADMORE_STYLE_CLASS on skeletons\n */\nexport const DefaultLoadMoreSkeletons = (props: { layout: SkeletonProps['layout'] }) => {\n const firstSkeleton = (\n <div class={LOADMORE_STYLE_CLASS}>{getSkeletonsByCount(props.layout, 1)}</div>\n );\n const otherSkeletons = getSkeletonsByCount(props.layout, DEFAULT_SKELETON_NUMBER - 1);\n const skeletons = [firstSkeleton, ...otherSkeletons];\n return <BaseCardViewSkeletonContainer>{skeletons}</BaseCardViewSkeletonContainer>;\n};\n\n/**\n * During the render that we measure and update card dimension, we will hide skeletons temporarily\n * to avoid showing incorrect skeletons\n */\nconst InvisibleSkeletons = () => {\n return <div class={LOADMORE_STYLE_CLASS}></div>;\n};\n\nexport const LoadMoreSkeletons = (props: SkeletonProps) => {\n if (props.colCount < 1 || props.cardWidth == null || props.cardHeight == null) {\n // if column count / card width / card height are invalid, we will show the invisible skeletons\n return <InvisibleSkeletons />;\n } else {\n // after initial renders, show skeletons with correct dimension and count\n const skeletons = [];\n\n const firstRowColCount = props.colCount - (props.totalCount % props.colCount);\n const isOnlyOneRow = firstRowColCount === props.colCount;\n\n const cardWidth = `calc(${props.cardWidth}px)` as Size;\n const cardHeight = props.cardHeight\n ? (`calc(${props.cardHeight}px)` as Size)\n : DEFAULT_SKELETON_HEIGHT;\n\n const width: Size = props.layout === 'flex' ? cardWidth : '100%';\n const height: Size = props.layout === 'flex' || isOnlyOneRow ? cardHeight : '100%';\n\n // first row\n const firstSkeleton = (\n <div class={LOADMORE_STYLE_CLASS}>{getSkeletonsByCount(props.layout, 1, width, height)}</div>\n );\n skeletons.push(firstSkeleton);\n skeletons.push(getSkeletonsByCount(props.layout, firstRowColCount - 1, width, height));\n\n // second row\n if (!isOnlyOneRow) {\n skeletons.push(getSkeletonsByCount(props.layout, props.colCount, width, cardHeight));\n }\n\n return <BaseCardViewSkeletonContainer>{skeletons}</BaseCardViewSkeletonContainer>;\n }\n};\n\nexport const CustomInitialSkeletions = (props: {\n skeletonRenderer: (context: SkeletonRendererContext) => ComponentChildren;\n}) => {\n const context: SkeletonRendererContext = { loadingStatus: 'initial' };\n return (\n <BaseCardViewSkeletonContainer>\n {renderMultipleSkeletons(context, 25, props.skeletonRenderer)}\n </BaseCardViewSkeletonContainer>\n );\n};\n\nexport const CustomLoadMoreSkeletons = (\n props: {\n isRenderAsInitial: boolean;\n skeletonRenderer: (context: SkeletonRendererContext) => ComponentChildren;\n } & SkeletonProps\n) => {\n const skeletons = [];\n if (props.isRenderAsInitial) {\n const context: SkeletonRendererContext = { loadingStatus: 'initial' };\n skeletons.push(<div class={LOADMORE_STYLE_CLASS}>{props.skeletonRenderer(context)}</div>);\n skeletons.push(renderMultipleSkeletons(context, 24, props.skeletonRenderer));\n } else {\n if (props.colCount === 0) {\n return null;\n }\n const cardWidth = `calc(${props.cardWidth}px)` as Size;\n const cardHeight = `calc(${props.cardHeight}px)` as Size;\n const firstRowColCount = props.colCount - (props.totalCount % props.colCount);\n const isOnlyOneRow = firstRowColCount === props.colCount;\n const context: SkeletonRendererContext = {\n loadingStatus: 'loadMore',\n height: props.layout === 'flex' || isOnlyOneRow ? cardHeight : '100%',\n width: props.layout === 'flex' ? cardWidth : '100%'\n };\n skeletons.push(<div class={LOADMORE_STYLE_CLASS}>{props.skeletonRenderer(context)}</div>);\n skeletons.push(\n Array(renderMultipleSkeletons(context, firstRowColCount - 1, props.skeletonRenderer))\n );\n if (!isOnlyOneRow) {\n skeletons.push(renderMultipleSkeletons(context, props.colCount, props.skeletonRenderer));\n }\n }\n return <BaseCardViewSkeletonContainer>{skeletons}</BaseCardViewSkeletonContainer>;\n};\n\nconst renderMultipleSkeletons = (\n context: SkeletonRendererContext,\n count: number,\n skeletonRenderer: (context: SkeletonRendererContext) => ComponentChildren\n) => {\n return Array(count).fill(skeletonRenderer(context));\n};\n","import type { RefObject } from 'preact';\nimport { useState } from 'preact/hooks';\nimport { dragToScroll } from '../utils/PRIVATE_collectionUtils';\nimport { useReorderable } from '../hooks/PRIVATE_useReorderable';\nimport { Props } from '../UNSAFE_CardFlexView';\nimport { CARDVIEW_ITEM_SELECTOR, GutterSize } from './BaseCardViewUtils';\n\ntype useCardViewReorderProps<K, D> = Pick<Props<K, D>, 'onReorder'> & {\n gutterSize: GutterSize;\n columns: number;\n rootRef: RefObject<HTMLDivElement>;\n scrollCurrItemIntoView: RefObject<boolean>;\n};\n\nexport const useCardViewReorder = <K extends string | number, D>({\n onReorder,\n gutterSize,\n columns,\n rootRef,\n scrollCurrItemIntoView\n}: useCardViewReorderProps<K, D>) => {\n const isReorderEnabled = onReorder != undefined;\n\n const [dragKey, setDragKey] = useState<K | undefined>(undefined);\n const { reorderProps, reorderContext, reorderInstructionsId, reorderInstructions } =\n useReorderable({\n onReorder,\n rootRef,\n itemSelector: CARDVIEW_ITEM_SELECTOR,\n isDisabled: !isReorderEnabled,\n columns\n });\n\n if (!isReorderEnabled) {\n return {\n reorderProps,\n reorderContext,\n reorderInstructionsId,\n reorderInstructions\n } as const;\n }\n\n const handleDragOver = (event: DragEvent) => {\n dragToScroll(event, dragKey !== undefined, rootRef.current);\n // during mouse reordering, the drag item might not be the same as current item,\n // so we should disallow current item scroll into view\n scrollCurrItemIntoView.current = false;\n };\n\n const reorderEventProps = { ...reorderProps, onDragOver: handleDragOver };\n\n const reorderItemProps = {\n dragKey,\n setDragKey,\n onReorder,\n rootRef,\n gutterSize,\n columns\n };\n\n return {\n reorderProps: reorderEventProps,\n reorderItemProps,\n reorderContext,\n reorderInstructionsId,\n reorderInstructions\n } as const;\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 */\nimport { Fragment } from 'preact';\nimport { forwardRef, ForwardedRef } from 'preact/compat';\nimport { useRef, useCallback, useEffect, useState, useImperativeHandle } from 'preact/hooks';\nimport { mergeProps } from '../utils/UNSAFE_mergeProps';\nimport { Keys } from '../utils/UNSAFE_keys';\nimport {\n getPrevNextKeyByCount,\n getViewportConfig,\n findElementByKey,\n keyExtractor,\n handleSelectionRange\n} from '../utils/PRIVATE_collectionUtils';\n\nimport { useNavigation } from '../hooks/PRIVATE_useListCommon';\nimport { useSelection, SelectionRangeDetail } from '../hooks/PRIVATE_useSelection';\nimport { ReorderableContext } from '../hooks/PRIVATE_useReorderable';\nimport { ItemContext, SelectionDetail } from '../UNSAFE_Collection';\nimport { HiddenAccessible } from '../UNSAFE_HiddenAccessible';\nimport { LoadMoreCollection } from '../PRIVATE_LoadMoreCollection';\nimport { styles } from './themes/BaseCardViewStyles.css';\nimport { Props } from '../UNSAFE_CardFlexView';\nimport { MemoizeBaseCardViewItem } from './BaseCardViewItem';\nimport { BaseCardViewLayout } from './BaseCardViewLayout';\nimport {\n DefaultLoadMoreSkeletons,\n LoadMoreSkeletons,\n InitialLoadSkeletons,\n CustomInitialSkeletions,\n CustomLoadMoreSkeletons\n} from './BaseCardViewSkeleton';\nimport { gutterSizeToPX, emptyKeys, CARDVIEW_ITEM_SELECTOR } from './BaseCardViewUtils';\nimport { useCardViewReorder } from './useCardViewReorder';\n// TODO: add this import due to issue JET-67485, need to update once Stable is introduced\nimport './themes/redwood/BaseCardViewBaseTheme.css';\nimport { useAddBusyState } from '#hooks/PRIVATE_useAddBusyState';\nimport { getClientHints } from '#utils/PRIVATE_clientHints';\nimport { classNames } from '#utils/UNSAFE_classNames';\n\n/**\n * Props specific for the GradGridBaseImpl Component\n */\ntype BaseCardViewImplProps<K, D> = Props<K, D> & {\n /**\n * Provide the number of columns to render;\n */\n columns: number;\n /**\n * The layout of the BaseCardView. When we use CardGridView as parent, we will use grid layout;\n * when we use CardFlexView as parent, we will use flex layout.\n */\n layout: 'grid' | 'flex';\n /**\n * Card dimension, including width and height\n */\n cardSize: { width?: number; height?: number };\n /**\n * A callback function to update card dimension, including width and height\n */\n updateCardSize: (width: number, height: number) => void;\n};\n\nconst BaseCardViewImpl = forwardRef(\n <K extends string | number, D>(\n {\n children,\n data,\n onLoadMore = () => {},\n hasMore = false,\n getRowKey,\n currentItemOverride,\n onPersistCurrentItem,\n selectionMode = 'none',\n selectedKeys = emptyKeys as Keys<K>,\n onSelectionChange,\n onReorder,\n viewportConfig,\n focusBehavior = 'card',\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n 'aria-describedby': ariaDescribedBy,\n initialAnimation = 'slideUp',\n gutterSize = 'sm',\n columns,\n layout,\n cardSize,\n updateCardSize,\n skeletonRenderer\n }: BaseCardViewImplProps<K, D>,\n ref?: ForwardedRef<HTMLDivElement>\n ) => {\n const rootRef = useRef<HTMLDivElement>(null);\n useImperativeHandle(ref!, () => rootRef.current!, [rootRef]);\n\n // tracking the anchor key which is used for shift+click selection\n const anchorKey = useRef<K | undefined>();\n\n const gutterSizePX = gutterSizeToPX[gutterSize];\n const layoutProps = { layout, columns, gutterSize };\n\n //setup busy start and busy end callbacks for the initial animation\n const { onBusyStart: onAnimationBusyStart, onBusyEnd: onAnimationBusyEnd } = useAddBusyState(\n 'handling initial animation'\n );\n const isInitialAnimation = useRef(true);\n useEffect(() => {\n if (cardSize.height != undefined && cardSize.width != undefined) {\n isInitialAnimation.current = false;\n }\n }, [cardSize]);\n\n const ariaMultiSelectable = selectionMode === 'none' ? undefined : selectionMode === 'multiple';\n const ariaRowcount = 1;\n const ariaColcount = data ? data.length : -1;\n\n const [isFocusBehaviorValid, setIsFocusBehaviorValid] = useState(true);\n const validFocusBehavior = isFocusBehaviorValid ? focusBehavior : 'card';\n\n // ensure current item is scrolled into view when current item is updated\n // during reordering, enable that during keyboard reordering, disable that during mouse reordering\n const scrollCurrItemIntoView = useRef(false);\n const isReorderEnabled = onReorder != undefined;\n\n const isFetching = useRef(false);\n\n /*****************************************************************************************/\n /*********************** Current Key, Focus Ring and Tabbable Mode ***********************/\n /*****************************************************************************************/\n\n const arrowKeyAndHandlers = {\n ArrowUp: (key?: K) => getPrevNextKeyByCount(data, getRowKey, key, -columns),\n ArrowDown: (key?: K) => getPrevNextKeyByCount(data, getRowKey, key, columns),\n ArrowLeft: (key?: K) => getPrevNextKeyByCount(data, getRowKey, key, -1),\n ArrowRight: (key?: K) => getPrevNextKeyByCount(data, getRowKey, key, 1)\n };\n\n const {\n navigationProps,\n currentKey,\n isCurrentItemOverridden,\n showFocusRing,\n isCurrentTabbableKey\n } = useNavigation(\n data,\n rootRef,\n idExtractor,\n CARDVIEW_ITEM_SELECTOR,\n arrowKeyAndHandlers,\n currentItemOverride,\n onPersistCurrentItem,\n viewportConfig,\n undefined,\n selectionMode !== 'multiple',\n validFocusBehavior === 'card',\n validFocusBehavior === 'card',\n false\n );\n\n /*****************************************************************************************/\n /*************************************** Selection ***************************************/\n /*****************************************************************************************/\n\n const handleSelectionChange = useCallback(\n (detail: SelectionDetail<K>) => {\n if (onSelectionChange) {\n if (detail.value.all === false && detail.value.keys.size > 0) {\n // during regular selection, the last key selected by a user gesture is the anchor key\n anchorKey.current = Array.from(detail.value.keys.values()).pop();\n }\n onSelectionChange(detail);\n }\n },\n [anchorKey, onSelectionChange]\n );\n\n const handleSelectionRangeChange = useCallback(\n (detail: SelectionRangeDetail<K>) => {\n if (data && onSelectionChange) {\n const value = handleSelectionRange(detail, data, getRowKey);\n // for non-virtualized CardView, value should always be an array\n if (Array.isArray(value)) {\n if (detail.eventType === 'shiftSpace') {\n // during range selection by shift+space, the first key selected by a user gesture is the anchor key\n anchorKey.current = detail.value.start;\n } else {\n // during range selection by shift+click/arrow keys, the last key selected by a user gesture is the anchor key\n anchorKey.current = detail.value.end;\n }\n onSelectionChange({ value: { all: false, keys: new Set(value) }, target: null });\n }\n }\n },\n [data, onSelectionChange, getRowKey]\n );\n\n const { selectionProps } = useSelection(\n (element: HTMLElement) => {\n if (element === rootRef.current) {\n return currentKey === undefined ? null : currentKey;\n }\n return keyExtractor(element, CARDVIEW_ITEM_SELECTOR) as K;\n },\n selectedKeys,\n selectionMode,\n false,\n 'toggle',\n handleSelectionChange,\n anchorKey.current,\n currentKey,\n (currentKey: K | undefined, isPrev: boolean) =>\n getPrevNextKeyByCount(data, getRowKey, currentKey, isPrev ? -columns : columns),\n (currentKey: K | undefined, isPrev: boolean) =>\n getPrevNextKeyByCount(data, getRowKey, currentKey, isPrev ? -1 : 1),\n (key: K) => {\n if (rootRef.current) {\n const elem = findElementByKey(rootRef.current, key, CARDVIEW_ITEM_SELECTOR);\n if (elem) {\n elem.scrollIntoView({ block: 'nearest' });\n }\n }\n },\n handleSelectionRangeChange\n );\n\n /*****************************************************************************************/\n /**************************************** Reorder ****************************************/\n /*****************************************************************************************/\n\n const {\n reorderProps,\n reorderItemProps,\n reorderContext,\n reorderInstructionsId,\n reorderInstructions\n } = useCardViewReorder({\n onReorder,\n gutterSize,\n columns,\n rootRef,\n scrollCurrItemIntoView\n });\n\n const reorderAcc = isReorderEnabled && (\n <>\n <span id={reorderInstructionsId}>\n <HiddenAccessible>{reorderInstructions}</HiddenAccessible>\n </span>\n </>\n );\n\n const handleKeyDown = (event: KeyboardEvent) => {\n // for content focusBehavior, when users tab out, we need to focus back to card grid, to ensure\n // the tabbing order works properly, otherwise the focus might get stuck at the current item\n if (validFocusBehavior === 'content' && event.key === 'Tab') {\n rootRef.current?.focus({ preventScroll: true });\n }\n // during keyboard reordering, the current item should be scrolled into view\n const keyHandlers = ['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown'];\n if (\n isReorderEnabled &&\n (event.metaKey || event.ctrlKey) &&\n event.shiftKey &&\n keyHandlers.includes(event.key)\n ) {\n scrollCurrItemIntoView.current = true;\n }\n };\n\n useEffect(() => {\n if (isReorderEnabled && currentKey != null && rootRef.current) {\n const elem = findElementByKey(rootRef.current, currentKey, CARDVIEW_ITEM_SELECTOR);\n // make sure current item is visible during reordering\n // scroll the current item into view only when the current item is updated internally\n if (elem && scrollCurrItemIntoView.current && !isCurrentItemOverridden) {\n elem.scrollIntoView({ block: 'nearest' });\n scrollCurrItemIntoView.current = false;\n }\n }\n // since the currentKey will not change during keyboard reordering,\n // listen to data to ensure cardview scroll into view\n }, [currentKey, data, isReorderEnabled, isCurrentItemOverridden]);\n\n /*****************************************************************************************/\n /************************************* Load More *****************************************/\n /*****************************************************************************************/\n\n const handleLoadMore = useCallback(() => {\n // check isFetching to avoid multiple load more at the same time (details in JET-61117)\n if (!isFetching.current) {\n isFetching.current = true;\n onLoadMore();\n }\n }, [isFetching, onLoadMore]);\n\n useEffect(() => {\n isFetching.current = false;\n // listen to data and hasMore because when one of them gets updated, the fetching is done\n }, [data, hasMore]);\n\n /*****************************************************************************************/\n /************************************ Child Component ************************************/\n /*****************************************************************************************/\n\n const childrenComponent = (context: ItemContext<D>) => {\n const itemKey = getRowKey(context.data);\n const isTabbable = isCurrentTabbableKey(itemKey);\n const isFocused = currentKey === itemKey && !isTabbable;\n const isFocusRingVisible = isFocused && showFocusRing;\n const isLastCard = data ? context.index === data.length - 1 : false;\n return (\n <MemoizeBaseCardViewItem<K, D>\n key={itemKey}\n itemKey={itemKey}\n isCurrentKey={currentKey === itemKey}\n itemData={context.data}\n itemIndex={context.index}\n isTabbable={isTabbable}\n isFocused={isFocused}\n isFocusRingVisible={isFocusRingVisible}\n isGridLayout={layout === 'grid'}\n selectedKeys={selectedKeys}\n selectionMode={selectionMode}\n onSelectionChange={onSelectionChange}\n focusBehavior={validFocusBehavior}\n {...(context.index === 0 && isInitialAnimation.current && { onAnimationBusyStart })}\n {...(isLastCard && isInitialAnimation.current && { onAnimationBusyEnd })}\n {...(focusBehavior === 'content' && { setIsFocusBehaviorValid })}\n {...(isInitialAnimation.current && { initialAnimation })}\n {...(context.index === 0 && !cardSize.width && { updateCardSize })}\n {...(isReorderEnabled && { reorderItemProps })}>\n {children}\n </MemoizeBaseCardViewItem>\n );\n };\n\n // todo: issue track in JET-57952, need a way to show the skeletons in keyboard navigation\n const skeletons = data ? (\n !data.length && hasMore ? (\n skeletonRenderer ? (\n <CustomLoadMoreSkeletons\n layout={layout}\n colCount={columns}\n totalCount={data.length}\n cardWidth={cardSize.width}\n cardHeight={cardSize.height}\n isRenderAsInitial={true}\n skeletonRenderer={skeletonRenderer}\n />\n ) : (\n <DefaultLoadMoreSkeletons layout={layout} />\n )\n ) : skeletonRenderer ? (\n <CustomLoadMoreSkeletons\n layout={layout}\n colCount={columns}\n totalCount={data.length}\n cardWidth={cardSize.width}\n cardHeight={cardSize.height}\n isRenderAsInitial={false}\n skeletonRenderer={skeletonRenderer}\n />\n ) : (\n <LoadMoreSkeletons\n layout={layout}\n colCount={columns}\n totalCount={data.length}\n cardWidth={cardSize.width}\n cardHeight={cardSize.height}\n />\n )\n ) : null;\n\n viewportConfig = getViewportConfig(rootRef, viewportConfig);\n const collectionComponent = (\n <div role=\"row\">\n <BaseCardViewLayout {...layoutProps}>\n <LoadMoreCollection\n data={data}\n hasMore={hasMore}\n onLoadMore={handleLoadMore}\n loadMoreIndicator={skeletons}\n loadMoreThreshold={gutterSizePX + 4} // gap size + padding\n viewportConfig={viewportConfig}>\n {childrenComponent}\n </LoadMoreCollection>\n </BaseCardViewLayout>\n </div>\n );\n\n const initialLoadSkeletons = (\n <BaseCardViewLayout {...layoutProps}>\n {skeletonRenderer ? (\n <CustomInitialSkeletions skeletonRenderer={skeletonRenderer} />\n ) : (\n <InitialLoadSkeletons layout={layout} />\n )}\n </BaseCardViewLayout>\n );\n const allowBrowserContextMenu = !(\n getClientHints().platform === 'ios' || getClientHints().platform === 'android'\n );\n\n const classArray = [styles.baseStyle];\n if (!allowBrowserContextMenu) {\n classArray.push(styles.userSelect);\n }\n const classes = classNames(classArray);\n\n return (\n <div\n {...mergeProps(navigationProps, selectionProps, reorderProps, {\n onKeyDown: handleKeyDown\n })}\n ref={rootRef}\n role=\"grid\"\n class={classes}\n tabIndex={0}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n aria-describedby={\n isReorderEnabled ? reorderInstructionsId + ' ' + ariaDescribedBy : ariaDescribedBy\n }\n aria-multiselectable={ariaMultiSelectable}\n aria-rowcount={ariaRowcount}\n aria-colcount={ariaColcount}>\n <ReorderableContext.Provider value={reorderContext}>\n {!data ? (\n initialLoadSkeletons\n ) : data.length || hasMore ? (\n collectionComponent\n ) : (\n <Fragment />\n )}\n </ReorderableContext.Provider>\n {reorderAcc}\n </div>\n );\n }\n);\n\nconst idExtractor = (elem: Element) => elem.id;\n\n/**\n * Props specific for the BaseCardView\n */\ntype BaseCardViewProps<K, D> = BaseCardViewImplProps<K, D> & {\n ref?: ForwardedRef<HTMLDivElement>;\n};\n\n/**\n * Cast BaseCardViewImpl to generic type, because BaseCardViewImpl would infer the generic type to specific type,\n * i.e infer <K extends string | number, D> to <string | number, unknown>, which will cause type issues in the parent component\n */\nexport const BaseCardView = BaseCardViewImpl as <K extends string | number, D>(\n props: BaseCardViewProps<K, D>\n) => JSX.Element;\n"],"names":["useRef","multiVariantStyles","styles","useCallback","useReorderableItem","useReorderableContext","useEffect","useUser","classNames","_jsxs","isKeyDefined","_Fragment","_jsx","useResizeObserver","useLayoutEffect","allTabbableElements","warn","useAnimation","useMemo","mergeRefs","getItemContext","useId","containsKey","TabbableModeContext","FocusTrap","memo","isSameKey","cardViewVars","Grid","Flex","useState","Fragment","LOADMORE_STYLE_CLASS","Skeleton","useReorderable","dragToScroll","forwardRef","useImperativeHandle","useAddBusyState","getPrevNextKeyByCount","useNavigation","handleSelectionRange","useSelection","keyExtractor","findElementByKey","HiddenAccessible","getViewportConfig","LoadMoreCollection","getClientHints","mergeProps","ReorderableContext"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BaseCardView-ba63723a.js","sources":["../../src/PRIVATE_BaseCardView/BaseCardViewUtils.ts","../../src/PRIVATE_BaseCardView/BaseCardViewReorderableItem.tsx","../../src/PRIVATE_BaseCardView/BaseCardViewItem.tsx","../../src/PRIVATE_BaseCardView/BaseCardViewLayout.tsx","../../src/PRIVATE_BaseCardView/BaseCardViewSkeletonContainer.tsx","../../src/PRIVATE_BaseCardView/BaseCardViewSkeleton.tsx","../../src/PRIVATE_BaseCardView/useCardViewReorder.ts","../../src/PRIVATE_BaseCardView/BaseCardView.tsx"],"sourcesContent":["import { Size } from '../utils/UNSAFE_size';\n\n/**\n * Item selector for CardView components\n */\nexport const CARDVIEW_ITEM_SELECTOR = '[data-oj-card-item]';\n\nexport const emptyKeys = { all: false, keys: new Set() };\nexport type GutterSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\n/**\n * A mapping of gutterSize to concrete size in pixels\n */\nexport const gutterSizeToPX: Record<string, number> = {\n xs: 12,\n sm: 16,\n md: 24,\n lg: 48,\n xl: 64\n};\n\nexport const getGapSize = (gutterSize?: GutterSize) => {\n const px = gutterSizeToPX[gutterSize || 'sm'];\n const gap = `${px / 4}x` as Size;\n return gap;\n};\n\nexport const getColCount = (gapWidth: number, cardWidth?: number, rootWidth?: number) => {\n if (!cardWidth || !rootWidth) return 0;\n\n // if we have n cards, we have n-1 gaps\n const colCount = Math.floor((rootWidth + gapWidth) / (gapWidth + cardWidth));\n return Math.max(1, colCount);\n};\n","import { useRef, useCallback, useEffect } from 'preact/hooks';\nimport { useReorderableItem } from '../hooks/PRIVATE_useReorderable';\nimport { useUser } from '../hooks/UNSAFE_useUser';\nimport { classNames } from '../utils/UNSAFE_classNames';\nimport { ReorderableItemProps } from '../UNSAFE_Collection/Reorderable.types';\nimport { multiVariantStyles, styles } from './themes/BaseCardViewStyles.css';\nimport { CARDVIEW_ITEM_SELECTOR, GutterSize } from './BaseCardViewUtils';\nimport { useReorderableContext } from '#hooks/PRIVATE_useReorderable/useReorderableContext';\nimport { isKeyDefined } from '../utils/UNSAFE_keys';\n\ntype BaseItemProps<K> = {\n itemKey: K;\n itemIndex: number;\n isCurrentKey: boolean;\n};\n\nexport type BaseCardViewReorderableItemProps<K> = ReorderableItemProps<K> & {\n gutterSize: GutterSize;\n columns: number;\n};\n\n/**\n * The internal component used to render a reorderable item in CardView.\n */\nexport function BaseCardViewReorderableItem<K extends string | number>({\n children,\n itemKey,\n itemIndex,\n isCurrentKey,\n dragKey,\n setDragKey,\n onReorder,\n rootRef,\n gutterSize,\n columns\n}: BaseCardViewReorderableItemProps<K> & BaseItemProps<K>) {\n const itemRef = useRef<HTMLDivElement | null>(null);\n const isOneColumn = columns === 1;\n const isFirstColumn = itemIndex % columns === 0;\n const isLastColumn = itemIndex % columns === columns - 1;\n const variantClasses = multiVariantStyles({\n itemOverlayFront: gutterSize\n });\n const variantClassesVertical = multiVariantStyles({\n itemOverlayFrontVertical: gutterSize\n });\n const itemStyles = {\n itemOverlayFront: isOneColumn ? variantClassesVertical : variantClasses,\n itemOverlayRear: isOneColumn ? styles.itemOverlayRearVertical : styles.itemOverlayRear,\n itemDragger: styles.itemDragger\n };\n const getItem = useCallback(\n () => itemRef?.current?.closest(CARDVIEW_ITEM_SELECTOR) as HTMLElement,\n []\n );\n const setTransferData = useCallback(\n (event: DragEvent) => {\n event.dataTransfer?.setData('text/cardview-items-key', JSON.stringify(itemKey));\n },\n [itemKey]\n );\n const { rootProps, isDragged, overlayZoneBeforeProps, overlayZoneAfterProps } =\n useReorderableItem({\n isDisabled: onReorder ? false : true,\n dragKey,\n setDragKey,\n onReorder,\n rootRef,\n ref: itemRef,\n getItem,\n setTransferData,\n itemStyles,\n itemSelector: CARDVIEW_ITEM_SELECTOR,\n isVertical: isOneColumn\n });\n\n // TODO: remove this as part of JET-70023\n const { currentItemKey } = useReorderableContext();\n useEffect(() => {\n if (isCurrentKey) {\n currentItemKey.current = itemKey;\n }\n }, [isCurrentKey, itemKey, currentItemKey]);\n\n const { direction } = useUser();\n const isRtl = direction === 'rtl';\n\n const overlayZoneBeforeClass = classNames([\n overlayZoneBeforeProps?.class,\n !isOneColumn && !isRtl && isFirstColumn && styles.itemOverlayFrontEdge,\n !isOneColumn && isRtl && isLastColumn && styles.itemOverlayFrontEdge\n ]);\n\n const overlayZoneAfterClass = classNames([\n overlayZoneAfterProps?.class,\n !isOneColumn && !isRtl && isLastColumn && styles.itemOverlayRearEdge,\n !isOneColumn && isRtl && isFirstColumn && styles.itemOverlayRearEdge\n ]);\n\n return (\n <div {...rootProps}>\n {children}\n {!isDragged && isKeyDefined(dragKey) && (\n <>\n <div {...overlayZoneBeforeProps} class={overlayZoneBeforeClass}></div>\n <div {...overlayZoneAfterProps} class={overlayZoneAfterClass}></div>\n </>\n )}\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 */\nimport { ComponentChildren } from 'preact';\nimport { memo } from 'preact/compat';\nimport {\n useRef,\n useCallback,\n useLayoutEffect,\n useMemo,\n useEffect,\n StateUpdater,\n Dispatch,\n MutableRef\n} from 'preact/hooks';\nimport { classNames } from '../utils/UNSAFE_classNames';\nimport { mergeRefs } from '../utils/PRIVATE_refUtils';\nimport { warn } from '../utils/UNSAFE_logger';\nimport { allTabbableElements } from '../utils/PRIVATE_tabbableUtils';\nimport { useId } from '../hooks/UNSAFE_useId';\nimport { useAnimation, UseAnimationConfig } from '../hooks/UNSAFE_useAnimation';\nimport { useResizeObserver } from '../hooks/UNSAFE_useResizeObserver';\nimport { TabbableModeContext } from '../hooks/UNSAFE_useTabbableMode';\nimport { FocusTrap } from '../UNSAFE_FocusTrap';\nimport { SelectionMode, ListItemRendererContext, SelectionDetail } from '../UNSAFE_Collection';\nimport { multiVariantStyles, styles } from './themes/BaseCardViewStyles.css';\nimport {\n BaseCardViewReorderableItem,\n BaseCardViewReorderableItemProps\n} from './BaseCardViewReorderableItem';\nimport { containsKey, isSameKey, Keys } from '../utils/UNSAFE_keys';\nimport { getItemContext } from '../utils/PRIVATE_collectionUtils';\n\n/**\n * Props for the BaseCardViewItem Component\n */\nexport type Props<K, D> = {\n children: (context: ListItemRendererContext<K, D>) => ComponentChildren;\n itemKey: K;\n itemData: D;\n itemIndex: number;\n isTabbable: boolean;\n isCurrentKey: boolean;\n isFocused: boolean;\n isFocusRingVisible: boolean;\n selectedKeys: Keys<K>;\n selectionMode: SelectionMode;\n onSelectionChange?: (detail: SelectionDetail<K>) => void;\n focusBehavior: 'card' | 'content';\n setIsFocusBehaviorValid?: Dispatch<StateUpdater<boolean>>;\n initialAnimation?: 'slideUp' | 'slideDown';\n isGridLayout?: boolean;\n updateCardSize?: (width: number, height: number) => void;\n onAnimationBusyStart?: () => void;\n onAnimationBusyEnd?: () => void;\n} & {\n reorderItemProps?: Omit<BaseCardViewReorderableItemProps<K>, 'children'>;\n};\n\n/**\n * The internal component used to render a single item in CardView.\n */\nfunction BaseCardViewItem<K extends string | number, D>({\n children,\n itemKey,\n itemData,\n itemIndex,\n isTabbable,\n isCurrentKey,\n isFocused,\n isFocusRingVisible,\n selectedKeys,\n selectionMode,\n onSelectionChange,\n focusBehavior,\n setIsFocusBehaviorValid,\n initialAnimation,\n isGridLayout,\n updateCardSize,\n reorderItemProps,\n onAnimationBusyStart,\n onAnimationBusyEnd\n}: Props<K, D>) {\n const rootRef = useRef<HTMLDivElement>(null);\n const timeoutRef = useRef<ReturnType<typeof setTimeout>>();\n\n const isItemFocused = isFocused && isFocusRingVisible;\n const variantClasses = multiVariantStyles({\n itemFocused: focusBehavior === 'card' && isItemFocused ? 'isItemFocused' : 'isNotItemFocused',\n itemInitialOpacity: initialAnimation ? 'isTransparent' : 'isNotTransparent',\n itemInGridLayout: isGridLayout ? 'isInGridLayout' : 'isNotInGridLayout'\n });\n const classes = classNames([styles.itemStyle, variantClasses]);\n\n /*********************************** Tabbable Mode ***********************************/\n\n // don't bubble Arrow Up/Down/Left/Right events to parent when in isTabbable mode\n // this bubbling causes the outer CollectionFocus ring to change index while in the isTabbable mode.\n const handleKeyDown = (event: KeyboardEvent) => {\n if (\n focusBehavior === 'card' &&\n isTabbable &&\n (event.key === 'ArrowDown' ||\n event.key === 'ArrowUp' ||\n event.key === 'ArrowLeft' ||\n event.key === 'ArrowRight')\n ) {\n event.stopPropagation();\n }\n };\n\n /************************************ Card Size ************************************/\n\n const handleResize = useCallback(\n (entry: ResizeObserverEntry) => {\n updateCardSize?.(entry.contentRect.width, entry.contentRect.height);\n },\n [updateCardSize]\n );\n\n const nullRef = useRef<HTMLDivElement>(null);\n useResizeObserver(updateCardSize ? rootRef : nullRef, handleResize);\n\n /********************************* Focus Behavior *********************************/\n\n useLayoutEffect(() => {\n if (focusBehavior === 'content' && isItemFocused) {\n // rootRef is cardview item, its first child is the focus trap div, so its first grand child\n // is the actual content\n const content = rootRef.current?.firstElementChild?.firstElementChild as HTMLElement;\n const focusable = allTabbableElements(content, true, true);\n if (focusable.length === 0 || focusable.length > 1) {\n warn(\n `${focusable.length} focusable elements are detected in the card. 'content' focusBehavior is intended only for use when the card has single focusable element. Please specify one focusable element in the card or switch the focusBehavior to 'card'.`\n );\n setIsFocusBehaviorValid?.(false);\n } else {\n focusable[0].focus();\n }\n }\n }, [focusBehavior, isItemFocused, setIsFocusBehaviorValid]);\n\n /******************************** Initial Animation ********************************/\n\n // animation for slide up/down\n const { nodeRef: nodeRefSlide, controller: controllerSlide } = useAnimation<\n 'slideUp' | 'slideDown' | 'none',\n HTMLDivElement\n >(initialAnimation || 'none', animationConfigSlide(itemIndex));\n\n // animation for opacity change\n const { nodeRef: nodeRefOpacity, controller: controllerOpacity } = useAnimation<\n 'opacity' | 'none',\n HTMLDivElement\n >(\n (initialAnimation && 'opacity') || 'none',\n animationConfigOpacity(itemIndex, timeoutRef, onAnimationBusyEnd)\n );\n\n if (initialAnimation) {\n onAnimationBusyStart?.();\n }\n\n // max cap for animation is 1s\n useEffect(() => {\n if (initialAnimation !== undefined) {\n timeoutRef.current = setTimeout(() => {\n controllerSlide.cancel();\n controllerOpacity.cancel();\n if (rootRef.current) {\n rootRef.current.style.opacity = '1';\n }\n onAnimationBusyEnd?.();\n }, 1000);\n }\n }, [controllerOpacity, controllerSlide, initialAnimation, onAnimationBusyEnd]);\n\n // TODO: issue track in JET-57681, we currently have two useAnimation() because the opacity and\n // slide up/down have different durations, and the current API couldn't handle this case, we will\n // update this once the API is updated\n\n /********************************** Child Component **********************************/\n const itemRefs = useMemo(() => {\n // NOTE: spot an issue when we click the cards during animation is processing, the cards would not finish\n // the current animations and stay as what it is, e.g. leave itself as half transparent.\n // need to remove nodeRefSlide and nodeRefOpacity to avoid this issue.\n if (initialAnimation === undefined) {\n return mergeRefs(rootRef);\n }\n return mergeRefs(rootRef, nodeRefSlide, nodeRefOpacity);\n }, [rootRef, nodeRefSlide, nodeRefOpacity, initialAnimation]);\n\n const rendererContext = getItemContext<K, D>(\n { data: { data: itemData, metadata: { key: itemKey } }, index: itemIndex },\n selectedKeys,\n selectionMode === 'multiple',\n onSelectionChange\n );\n\n const childrenComponent = reorderItemProps ? (\n <BaseCardViewReorderableItem\n {...reorderItemProps}\n itemKey={itemKey}\n itemIndex={itemIndex}\n isCurrentKey={isCurrentKey}>\n {children(rendererContext)}\n </BaseCardViewReorderableItem>\n ) : (\n children(rendererContext)\n );\n\n return (\n <div\n id={useId()}\n ref={itemRefs}\n class={classes}\n role=\"gridcell\"\n data-oj-card-item=\"\"\n data-oj-key={itemKey}\n onKeyDown={handleKeyDown}\n aria-selected={selectionMode === 'none' ? undefined : containsKey(selectedKeys, itemKey)}\n {...(typeof itemKey === 'number' && { 'data-oj-key-type': 'number' })}>\n <TabbableModeContext.Provider value={{ isTabbable }}>\n <FocusTrap isDisabled={!isTabbable} restoreFocusRef={false}>\n {childrenComponent}\n </FocusTrap>\n </TabbableModeContext.Provider>\n </div>\n );\n}\n\nconst animationConfigSlide = (\n index: number\n): UseAnimationConfig<'slideUp' | 'slideDown' | 'none', HTMLDivElement> => {\n return {\n animationStates: {\n slideUp: {\n from: {\n translateY: '50px'\n },\n to: {\n translateY: '0px'\n },\n options: {\n duration: 300,\n delay: index * 50,\n easing: [0, 0, 0.2, 1]\n }\n },\n slideDown: {\n from: {\n translateY: '-50px'\n },\n to: {\n translateY: '0'\n },\n options: {\n duration: 300,\n delay: index * 50,\n easing: [0, 0, 0.2, 1]\n }\n }\n },\n isAnimatedOnMount: true\n };\n};\n\nconst animationConfigOpacity = (\n index: number,\n timeoutRef: MutableRef<ReturnType<typeof setTimeout> | undefined>,\n onAnimationBusyEnd?: () => void\n): UseAnimationConfig<'opacity' | 'none', HTMLDivElement> => {\n return {\n animationStates: {\n opacity: {\n from: {\n opacity: 0\n },\n to: {\n opacity: 1\n },\n options: {\n duration: 150,\n delay: index * 50,\n easing: 'linear'\n }\n }\n },\n isAnimatedOnMount: true,\n onAnimationEnd: () => {\n onAnimationBusyEnd?.();\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n }\n }\n };\n};\n\n/**\n * Compare the equality between two reorderItemProps, especially useful for memoized items\n */\nconst _compareReorderItemProps = (\n props1: Props<string | number, unknown>['reorderItemProps'],\n props2: Props<string | number, unknown>['reorderItemProps']\n) => {\n return (\n props1?.['dragKey'] === props2?.['dragKey'] &&\n props1?.['setDragKey'] === props2?.['setDragKey'] &&\n props1?.['columns'] === props2?.['columns'] &&\n props1?.['gutterSize'] === props2?.['gutterSize'] &&\n props1?.['rootRef'] === props2?.['rootRef']\n );\n};\n\nexport const MemoizeBaseCardViewItem = memo(\n BaseCardViewItem,\n (prev: Props<string | number, unknown>, next: Props<string | number, unknown>) => {\n if (prev && next) {\n return (\n prev.children === next.children &&\n prev.itemKey === next.itemKey &&\n prev.itemData === next.itemData &&\n prev.itemIndex === next.itemIndex &&\n prev.isTabbable === next.isTabbable &&\n prev.isCurrentKey === next.isCurrentKey &&\n prev.isFocused === next.isFocused &&\n prev.isFocusRingVisible === next.isFocusRingVisible &&\n prev.initialAnimation === next.initialAnimation &&\n prev.focusBehavior === next.focusBehavior &&\n isSameKey(prev.selectedKeys, next.selectedKeys) &&\n prev.selectionMode === next.selectionMode &&\n prev.onSelectionChange === next.onSelectionChange &&\n prev.setIsFocusBehaviorValid === next.setIsFocusBehaviorValid &&\n prev.isGridLayout === next.isGridLayout &&\n prev.updateCardSize === next.updateCardSize &&\n prev.onAnimationBusyStart === next.onAnimationBusyStart &&\n prev.onAnimationBusyEnd === next.onAnimationBusyEnd &&\n _compareReorderItemProps(prev.reorderItemProps, next.reorderItemProps)\n );\n }\n return false;\n }\n);\n","import { ComponentChildren } from 'preact';\nimport { Grid } from '../UNSAFE_Grid';\nimport { Flex } from '../UNSAFE_Flex';\nimport { GutterSize } from './BaseCardViewUtils';\nimport { cardViewVars } from './themes/BaseCardViewContract.css';\n\ntype Props = {\n children: ComponentChildren;\n layout: 'grid' | 'flex';\n gutterSize: GutterSize;\n columns: number;\n};\n\nexport function BaseCardViewLayout({ children, layout, gutterSize, columns }: Props) {\n const gap = cardViewVars.gutterSize[gutterSize];\n if (layout === 'grid') {\n return columns < 1 ? null : (\n <Grid gridTemplateColumns={`repeat(${columns}, 1fr)`} gap={gap}>\n {children}\n </Grid>\n );\n } else {\n return (\n <Flex wrap=\"wrap\" gap={gap}>\n {children}\n </Flex>\n );\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 */\nimport { ComponentChildren, Fragment } from 'preact';\nimport { useState, useEffect } from 'preact/hooks';\nimport { LOADMORE_STYLE_CLASS } from '../PRIVATE_LoadMoreCollection';\n\ntype Props = {\n /**\n * Allows to pass skeletons\n **/\n children: ComponentChildren;\n};\n\n/**\n * Allows to specify the time delay for rendering the component\n **/\nconst timerValue = 50;\n\n/**\n * BaseCardViewSkeletonContainer renders skeletons after 50ms threshold defined in the Redwood spec\n **/\nexport function BaseCardViewSkeletonContainer({ children }: Props) {\n const [isVisible, setIsVisible] = useState(false);\n\n useEffect(() => {\n setTimeout(() => {\n setIsVisible(true);\n }, timerValue);\n }, []);\n\n return isVisible ? <Fragment>{children}</Fragment> : <div class={LOADMORE_STYLE_CLASS}></div>;\n}\n","import { Size } from '../utils/UNSAFE_size';\nimport { Skeleton } from '../UNSAFE_Skeleton';\nimport { LOADMORE_STYLE_CLASS } from '../PRIVATE_LoadMoreCollection';\nimport { BaseCardViewSkeletonContainer } from './BaseCardViewSkeletonContainer';\nimport { SkeletonRendererContext } from '../UNSAFE_CardFlexView';\nimport { ComponentChildren } from 'preact';\n\nconst DEFAULT_SKELETON_NUMBER = 25;\nconst DEFAULT_SKELETON_WIDTH = '80x';\nconst DEFAULT_SKELETON_HEIGHT = '85x';\n\ntype SkeletonProps = {\n layout: 'flex' | 'grid';\n colCount: number;\n totalCount: number;\n cardWidth?: number;\n cardHeight?: number;\n};\n\n/**\n * A function that returns an array of skeletons based on count\n * @param count the number of skeletons\n */\nconst getSkeletonsByCount = (\n layout: 'flex' | 'grid',\n count = DEFAULT_SKELETON_NUMBER,\n width?: Size,\n height?: Size,\n isUnique = true\n) => {\n const sw = width || (layout === 'flex' ? DEFAULT_SKELETON_WIDTH : '100%');\n const sh = height || DEFAULT_SKELETON_HEIGHT;\n\n return [...Array(count)].map((_v, i) => (\n // create unique keys if needed, otherwise the animations won't start at the same time, because the old copy of skeletons\n // could be reused, even the key is specified by useId(), combine count with time to make the key unique.\n <Skeleton\n key={isUnique && `${i}${new Date().getTime()}`}\n width={sw}\n height={sh}\n borderRadius=\"6px\"\n />\n ));\n};\n\n/**\n * When there is no data (i.e. data is an empty array or null, and hasMore is false), we will show 25 card skeletons with default size\n */\nexport const InitialLoadSkeletons = (props: { layout: SkeletonProps['layout'] }) => (\n <BaseCardViewSkeletonContainer>{getSkeletonsByCount(props.layout)}</BaseCardViewSkeletonContainer>\n);\n\n/**\n * When we are fetching the initial data (i.e. data is an empty array, and hasMore is true), we will show 25 card skeletons with default size,\n * because we don't know the card dimension at this time. Since there is more data to load, we will specify LOADMORE_STYLE_CLASS on skeletons\n */\nexport const DefaultLoadMoreSkeletons = (props: { layout: SkeletonProps['layout'] }) => {\n const firstSkeleton = (\n <div class={LOADMORE_STYLE_CLASS}>{getSkeletonsByCount(props.layout, 1)}</div>\n );\n const otherSkeletons = getSkeletonsByCount(props.layout, DEFAULT_SKELETON_NUMBER - 1);\n const skeletons = [firstSkeleton, ...otherSkeletons];\n return <BaseCardViewSkeletonContainer>{skeletons}</BaseCardViewSkeletonContainer>;\n};\n\n/**\n * During the render that we measure and update card dimension, we will hide skeletons temporarily\n * to avoid showing incorrect skeletons\n */\nconst InvisibleSkeletons = () => {\n return <div class={LOADMORE_STYLE_CLASS}></div>;\n};\n\nexport const LoadMoreSkeletons = (props: SkeletonProps) => {\n if (props.colCount < 1 || props.cardWidth == null || props.cardHeight == null) {\n // if column count / card width / card height are invalid, we will show the invisible skeletons\n return <InvisibleSkeletons />;\n } else {\n // after initial renders, show skeletons with correct dimension and count\n const skeletons = [];\n\n const firstRowColCount = props.colCount - (props.totalCount % props.colCount);\n const isOnlyOneRow = firstRowColCount === props.colCount;\n\n const cardWidth = `calc(${props.cardWidth}px)` as Size;\n const cardHeight = props.cardHeight\n ? (`calc(${props.cardHeight}px)` as Size)\n : DEFAULT_SKELETON_HEIGHT;\n\n const width: Size = props.layout === 'flex' ? cardWidth : '100%';\n const height: Size = props.layout === 'flex' || isOnlyOneRow ? cardHeight : '100%';\n\n // first row\n const firstSkeleton = (\n <div class={LOADMORE_STYLE_CLASS}>{getSkeletonsByCount(props.layout, 1, width, height)}</div>\n );\n skeletons.push(firstSkeleton);\n skeletons.push(getSkeletonsByCount(props.layout, firstRowColCount - 1, width, height));\n\n // second row\n if (!isOnlyOneRow) {\n skeletons.push(getSkeletonsByCount(props.layout, props.colCount, width, cardHeight));\n }\n\n return <BaseCardViewSkeletonContainer>{skeletons}</BaseCardViewSkeletonContainer>;\n }\n};\n\nexport const CustomInitialSkeletions = (props: {\n skeletonRenderer: (context: SkeletonRendererContext) => ComponentChildren;\n}) => {\n const context: SkeletonRendererContext = { loadingStatus: 'initial' };\n return (\n <BaseCardViewSkeletonContainer>\n {renderMultipleSkeletons(context, 25, props.skeletonRenderer)}\n </BaseCardViewSkeletonContainer>\n );\n};\n\nexport const CustomLoadMoreSkeletons = (\n props: {\n isRenderAsInitial: boolean;\n skeletonRenderer: (context: SkeletonRendererContext) => ComponentChildren;\n } & SkeletonProps\n) => {\n const skeletons = [];\n if (props.isRenderAsInitial) {\n const context: SkeletonRendererContext = { loadingStatus: 'initial' };\n skeletons.push(<div class={LOADMORE_STYLE_CLASS}>{props.skeletonRenderer(context)}</div>);\n skeletons.push(renderMultipleSkeletons(context, 24, props.skeletonRenderer));\n } else {\n if (props.colCount === 0) {\n return null;\n }\n const cardWidth = `calc(${props.cardWidth}px)` as Size;\n const cardHeight = `calc(${props.cardHeight}px)` as Size;\n const firstRowColCount = props.colCount - (props.totalCount % props.colCount);\n const isOnlyOneRow = firstRowColCount === props.colCount;\n const context: SkeletonRendererContext = {\n loadingStatus: 'loadMore',\n height: props.layout === 'flex' || isOnlyOneRow ? cardHeight : '100%',\n width: props.layout === 'flex' ? cardWidth : '100%'\n };\n skeletons.push(<div class={LOADMORE_STYLE_CLASS}>{props.skeletonRenderer(context)}</div>);\n skeletons.push(\n Array(renderMultipleSkeletons(context, firstRowColCount - 1, props.skeletonRenderer))\n );\n if (!isOnlyOneRow) {\n skeletons.push(renderMultipleSkeletons(context, props.colCount, props.skeletonRenderer));\n }\n }\n return <BaseCardViewSkeletonContainer>{skeletons}</BaseCardViewSkeletonContainer>;\n};\n\nconst renderMultipleSkeletons = (\n context: SkeletonRendererContext,\n count: number,\n skeletonRenderer: (context: SkeletonRendererContext) => ComponentChildren\n) => {\n return Array(count).fill(skeletonRenderer(context));\n};\n","import type { RefObject } from 'preact';\nimport { useState } from 'preact/hooks';\nimport { dragToScroll } from '../utils/PRIVATE_collectionUtils';\nimport { useReorderable } from '../hooks/PRIVATE_useReorderable';\nimport { Props } from '../UNSAFE_CardFlexView';\nimport { CARDVIEW_ITEM_SELECTOR, GutterSize } from './BaseCardViewUtils';\n\ntype useCardViewReorderProps<K, D> = Pick<Props<K, D>, 'onReorder'> & {\n gutterSize: GutterSize;\n columns: number;\n rootRef: RefObject<HTMLDivElement>;\n scrollCurrItemIntoView: RefObject<boolean>;\n};\n\nexport const useCardViewReorder = <K extends string | number, D>({\n onReorder,\n gutterSize,\n columns,\n rootRef,\n scrollCurrItemIntoView\n}: useCardViewReorderProps<K, D>) => {\n const isReorderEnabled = onReorder != undefined;\n\n const [dragKey, setDragKey] = useState<K | undefined>(undefined);\n const { reorderProps, reorderContext, reorderInstructionsId, reorderInstructions } =\n useReorderable({\n onReorder,\n rootRef,\n itemSelector: CARDVIEW_ITEM_SELECTOR,\n isDisabled: !isReorderEnabled,\n columns\n });\n\n if (!isReorderEnabled) {\n return {\n reorderProps,\n reorderContext,\n reorderInstructionsId,\n reorderInstructions\n } as const;\n }\n\n const handleDragOver = (event: DragEvent) => {\n dragToScroll(event, dragKey !== undefined, rootRef.current);\n // during mouse reordering, the drag item might not be the same as current item,\n // so we should disallow current item scroll into view\n scrollCurrItemIntoView.current = false;\n };\n\n const reorderEventProps = { ...reorderProps, onDragOver: handleDragOver };\n\n const reorderItemProps = {\n dragKey,\n setDragKey,\n onReorder,\n rootRef,\n gutterSize,\n columns\n };\n\n return {\n reorderProps: reorderEventProps,\n reorderItemProps,\n reorderContext,\n reorderInstructionsId,\n reorderInstructions\n } as const;\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 */\nimport { Fragment } from 'preact';\nimport { forwardRef, ForwardedRef } from 'preact/compat';\nimport { useRef, useCallback, useEffect, useState, useImperativeHandle } from 'preact/hooks';\nimport { mergeProps } from '../utils/UNSAFE_mergeProps';\nimport { Keys } from '../utils/UNSAFE_keys';\nimport {\n getPrevNextKeyByCount,\n getViewportConfig,\n findElementByKey,\n keyExtractor,\n handleSelectionRange\n} from '../utils/PRIVATE_collectionUtils';\n\nimport { useNavigation } from '../hooks/PRIVATE_useListCommon';\nimport { useSelection, SelectionRangeDetail } from '../hooks/PRIVATE_useSelection';\nimport { ReorderableContext } from '../hooks/PRIVATE_useReorderable';\nimport { ItemContext, SelectionDetail } from '../UNSAFE_Collection';\nimport { HiddenAccessible } from '../UNSAFE_HiddenAccessible';\nimport { LoadMoreCollection } from '../PRIVATE_LoadMoreCollection';\nimport { styles } from './themes/BaseCardViewStyles.css';\nimport { Props } from '../UNSAFE_CardFlexView';\nimport { MemoizeBaseCardViewItem } from './BaseCardViewItem';\nimport { BaseCardViewLayout } from './BaseCardViewLayout';\nimport {\n DefaultLoadMoreSkeletons,\n LoadMoreSkeletons,\n InitialLoadSkeletons,\n CustomInitialSkeletions,\n CustomLoadMoreSkeletons\n} from './BaseCardViewSkeleton';\nimport { gutterSizeToPX, emptyKeys, CARDVIEW_ITEM_SELECTOR } from './BaseCardViewUtils';\nimport { useCardViewReorder } from './useCardViewReorder';\n// TODO: add this import due to issue JET-67485, need to update once Stable is introduced\nimport './themes/redwood/BaseCardViewBaseTheme.css';\nimport { useAddBusyState } from '#hooks/PRIVATE_useAddBusyState';\nimport { getClientHints } from '#utils/PRIVATE_clientHints';\nimport { classNames } from '#utils/UNSAFE_classNames';\n\n/**\n * Props specific for the GradGridBaseImpl Component\n */\ntype BaseCardViewImplProps<K, D> = Props<K, D> & {\n /**\n * Provide the number of columns to render;\n */\n columns: number;\n /**\n * The layout of the BaseCardView. When we use CardGridView as parent, we will use grid layout;\n * when we use CardFlexView as parent, we will use flex layout.\n */\n layout: 'grid' | 'flex';\n /**\n * Card dimension, including width and height\n */\n cardSize: { width?: number; height?: number };\n /**\n * A callback function to update card dimension, including width and height\n */\n updateCardSize: (width: number, height: number) => void;\n};\n\nconst BaseCardViewImpl = forwardRef(\n <K extends string | number, D>(\n {\n children,\n data,\n onLoadMore = () => {},\n hasMore = false,\n getRowKey,\n currentItemOverride,\n onPersistCurrentItem,\n selectionMode = 'none',\n selectedKeys = emptyKeys as Keys<K>,\n onSelectionChange,\n onReorder,\n viewportConfig,\n focusBehavior = 'card',\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n 'aria-describedby': ariaDescribedBy,\n initialAnimation = 'slideUp',\n gutterSize = 'sm',\n columns,\n layout,\n cardSize,\n updateCardSize,\n skeletonRenderer\n }: BaseCardViewImplProps<K, D>,\n ref?: ForwardedRef<HTMLDivElement>\n ) => {\n const rootRef = useRef<HTMLDivElement>(null);\n useImperativeHandle(ref!, () => rootRef.current!, [rootRef]);\n\n // tracking the anchor key which is used for shift+click selection\n const anchorKey = useRef<K | undefined>();\n\n const gutterSizePX = gutterSizeToPX[gutterSize];\n const layoutProps = { layout, columns, gutterSize };\n\n //setup busy start and busy end callbacks for the initial animation\n const { onBusyStart: onAnimationBusyStart, onBusyEnd: onAnimationBusyEnd } = useAddBusyState(\n 'handling initial animation'\n );\n const isInitialAnimation = useRef(true);\n useEffect(() => {\n if (cardSize.height != undefined && cardSize.width != undefined) {\n isInitialAnimation.current = false;\n }\n }, [cardSize]);\n\n const ariaMultiSelectable = selectionMode === 'none' ? undefined : selectionMode === 'multiple';\n const ariaRowcount = 1;\n const ariaColcount = data ? data.length : -1;\n\n const [isFocusBehaviorValid, setIsFocusBehaviorValid] = useState(true);\n const validFocusBehavior = isFocusBehaviorValid ? focusBehavior : 'card';\n\n // ensure current item is scrolled into view when current item is updated\n // during reordering, enable that during keyboard reordering, disable that during mouse reordering\n const scrollCurrItemIntoView = useRef(false);\n const isReorderEnabled = onReorder != undefined;\n\n const isFetching = useRef(false);\n\n /*****************************************************************************************/\n /*********************** Current Key, Focus Ring and Tabbable Mode ***********************/\n /*****************************************************************************************/\n\n const arrowKeyAndHandlers = {\n ArrowUp: (key?: K) => getPrevNextKeyByCount(data, getRowKey, key, -columns),\n ArrowDown: (key?: K) => getPrevNextKeyByCount(data, getRowKey, key, columns),\n ArrowLeft: (key?: K) => getPrevNextKeyByCount(data, getRowKey, key, -1),\n ArrowRight: (key?: K) => getPrevNextKeyByCount(data, getRowKey, key, 1)\n };\n\n const {\n navigationProps,\n currentKey,\n isCurrentItemOverridden,\n showFocusRing,\n isCurrentTabbableKey\n } = useNavigation(\n data,\n rootRef,\n idExtractor,\n CARDVIEW_ITEM_SELECTOR,\n arrowKeyAndHandlers,\n currentItemOverride,\n onPersistCurrentItem,\n viewportConfig,\n undefined,\n selectionMode !== 'multiple',\n validFocusBehavior === 'card',\n validFocusBehavior === 'card',\n false\n );\n\n /*****************************************************************************************/\n /*************************************** Selection ***************************************/\n /*****************************************************************************************/\n\n const handleSelectionChange = useCallback(\n (detail: SelectionDetail<K>) => {\n if (onSelectionChange) {\n if (detail.value.all === false && detail.value.keys.size > 0) {\n // during regular selection, the last key selected by a user gesture is the anchor key\n anchorKey.current = Array.from(detail.value.keys.values()).pop();\n }\n onSelectionChange(detail);\n }\n },\n [anchorKey, onSelectionChange]\n );\n\n const handleSelectionRangeChange = useCallback(\n (detail: SelectionRangeDetail<K>) => {\n if (data && onSelectionChange) {\n const value = handleSelectionRange(detail, data, getRowKey);\n // for non-virtualized CardView, value should always be an array\n if (Array.isArray(value)) {\n if (detail.eventType === 'shiftSpace') {\n // during range selection by shift+space, the first key selected by a user gesture is the anchor key\n anchorKey.current = detail.value.start;\n } else {\n // during range selection by shift+click/arrow keys, the last key selected by a user gesture is the anchor key\n anchorKey.current = detail.value.end;\n }\n onSelectionChange({ value: { all: false, keys: new Set(value) }, target: null });\n }\n }\n },\n [data, onSelectionChange, getRowKey]\n );\n\n const { selectionProps } = useSelection(\n (element: HTMLElement) => {\n if (element === rootRef.current) {\n return currentKey === undefined ? null : currentKey;\n }\n return keyExtractor(element, CARDVIEW_ITEM_SELECTOR) as K;\n },\n selectedKeys,\n selectionMode,\n false,\n 'toggle',\n handleSelectionChange,\n anchorKey.current,\n currentKey,\n (currentKey: K | undefined, isPrev: boolean) =>\n getPrevNextKeyByCount(data, getRowKey, currentKey, isPrev ? -columns : columns),\n (currentKey: K | undefined, isPrev: boolean) =>\n getPrevNextKeyByCount(data, getRowKey, currentKey, isPrev ? -1 : 1),\n (key: K) => {\n if (rootRef.current) {\n const elem = findElementByKey(rootRef.current, key, CARDVIEW_ITEM_SELECTOR);\n if (elem) {\n elem.scrollIntoView({ block: 'nearest' });\n }\n }\n },\n handleSelectionRangeChange\n );\n\n /*****************************************************************************************/\n /**************************************** Reorder ****************************************/\n /*****************************************************************************************/\n\n const {\n reorderProps,\n reorderItemProps,\n reorderContext,\n reorderInstructionsId,\n reorderInstructions\n } = useCardViewReorder({\n onReorder,\n gutterSize,\n columns,\n rootRef,\n scrollCurrItemIntoView\n });\n\n const reorderAcc = isReorderEnabled && (\n <>\n <span id={reorderInstructionsId}>\n <HiddenAccessible>{reorderInstructions}</HiddenAccessible>\n </span>\n </>\n );\n\n const handleKeyDown = (event: KeyboardEvent) => {\n // for content focusBehavior, when users tab out, we need to focus back to card grid, to ensure\n // the tabbing order works properly, otherwise the focus might get stuck at the current item\n if (validFocusBehavior === 'content' && event.key === 'Tab') {\n rootRef.current?.focus({ preventScroll: true });\n }\n // during keyboard reordering, the current item should be scrolled into view\n const keyHandlers = ['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown'];\n if (\n isReorderEnabled &&\n (event.metaKey || event.ctrlKey) &&\n event.shiftKey &&\n keyHandlers.includes(event.key)\n ) {\n scrollCurrItemIntoView.current = true;\n }\n };\n\n useEffect(() => {\n if (isReorderEnabled && currentKey != null && rootRef.current) {\n const elem = findElementByKey(rootRef.current, currentKey, CARDVIEW_ITEM_SELECTOR);\n // make sure current item is visible during reordering\n // scroll the current item into view only when the current item is updated internally\n if (elem && scrollCurrItemIntoView.current && !isCurrentItemOverridden) {\n elem.scrollIntoView({ block: 'nearest' });\n scrollCurrItemIntoView.current = false;\n }\n }\n // since the currentKey will not change during keyboard reordering,\n // listen to data to ensure cardview scroll into view\n }, [currentKey, data, isReorderEnabled, isCurrentItemOverridden]);\n\n /*****************************************************************************************/\n /************************************* Load More *****************************************/\n /*****************************************************************************************/\n\n const handleLoadMore = useCallback(() => {\n // check isFetching to avoid multiple load more at the same time (details in JET-61117)\n if (!isFetching.current) {\n isFetching.current = true;\n onLoadMore();\n }\n }, [isFetching, onLoadMore]);\n\n useEffect(() => {\n isFetching.current = false;\n // listen to data and hasMore because when one of them gets updated, the fetching is done\n }, [data, hasMore]);\n\n /*****************************************************************************************/\n /************************************ Child Component ************************************/\n /*****************************************************************************************/\n\n const childrenComponent = (context: ItemContext<D>) => {\n const itemKey = getRowKey(context.data);\n const isTabbable = isCurrentTabbableKey(itemKey);\n const isFocused = currentKey === itemKey && !isTabbable;\n const isFocusRingVisible = isFocused && showFocusRing;\n const isLastCard = data ? context.index === data.length - 1 : false;\n return (\n <MemoizeBaseCardViewItem<K, D>\n key={itemKey}\n itemKey={itemKey}\n isCurrentKey={currentKey === itemKey}\n itemData={context.data}\n itemIndex={context.index}\n isTabbable={isTabbable}\n isFocused={isFocused}\n isFocusRingVisible={isFocusRingVisible}\n isGridLayout={layout === 'grid'}\n selectedKeys={selectedKeys}\n selectionMode={selectionMode}\n onSelectionChange={onSelectionChange}\n focusBehavior={validFocusBehavior}\n {...(context.index === 0 && isInitialAnimation.current && { onAnimationBusyStart })}\n {...(isLastCard && isInitialAnimation.current && { onAnimationBusyEnd })}\n {...(focusBehavior === 'content' && { setIsFocusBehaviorValid })}\n {...(isInitialAnimation.current && { initialAnimation })}\n {...(context.index === 0 && !cardSize.width && { updateCardSize })}\n {...(isReorderEnabled && { reorderItemProps })}>\n {children}\n </MemoizeBaseCardViewItem>\n );\n };\n\n // todo: issue track in JET-57952, need a way to show the skeletons in keyboard navigation\n const skeletons = data ? (\n !data.length && hasMore ? (\n skeletonRenderer ? (\n <CustomLoadMoreSkeletons\n layout={layout}\n colCount={columns}\n totalCount={data.length}\n cardWidth={cardSize.width}\n cardHeight={cardSize.height}\n isRenderAsInitial={true}\n skeletonRenderer={skeletonRenderer}\n />\n ) : (\n <DefaultLoadMoreSkeletons layout={layout} />\n )\n ) : skeletonRenderer ? (\n <CustomLoadMoreSkeletons\n layout={layout}\n colCount={columns}\n totalCount={data.length}\n cardWidth={cardSize.width}\n cardHeight={cardSize.height}\n isRenderAsInitial={false}\n skeletonRenderer={skeletonRenderer}\n />\n ) : (\n <LoadMoreSkeletons\n layout={layout}\n colCount={columns}\n totalCount={data.length}\n cardWidth={cardSize.width}\n cardHeight={cardSize.height}\n />\n )\n ) : null;\n\n viewportConfig = getViewportConfig(rootRef, viewportConfig);\n const collectionComponent = (\n <div role=\"row\">\n <BaseCardViewLayout {...layoutProps}>\n <LoadMoreCollection\n data={data}\n hasMore={hasMore}\n onLoadMore={handleLoadMore}\n loadMoreIndicator={skeletons}\n loadMoreThreshold={gutterSizePX + 4} // gap size + padding\n viewportConfig={viewportConfig}>\n {childrenComponent}\n </LoadMoreCollection>\n </BaseCardViewLayout>\n </div>\n );\n\n const initialLoadSkeletons = (\n <BaseCardViewLayout {...layoutProps}>\n {skeletonRenderer ? (\n <CustomInitialSkeletions skeletonRenderer={skeletonRenderer} />\n ) : (\n <InitialLoadSkeletons layout={layout} />\n )}\n </BaseCardViewLayout>\n );\n const allowBrowserContextMenu = !(\n getClientHints().platform === 'ios' || getClientHints().platform === 'android'\n );\n\n const classArray = [styles.baseStyle];\n if (!allowBrowserContextMenu) {\n classArray.push(styles.userSelect);\n }\n const classes = classNames(classArray);\n\n return (\n <div\n {...mergeProps(navigationProps, selectionProps, reorderProps, {\n onKeyDown: handleKeyDown\n })}\n ref={rootRef}\n role=\"grid\"\n class={classes}\n tabIndex={0}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n aria-describedby={\n isReorderEnabled ? reorderInstructionsId + ' ' + ariaDescribedBy : ariaDescribedBy\n }\n aria-multiselectable={ariaMultiSelectable}\n aria-rowcount={ariaRowcount}\n aria-colcount={ariaColcount}>\n <ReorderableContext.Provider value={reorderContext}>\n {!data ? (\n initialLoadSkeletons\n ) : data.length || hasMore ? (\n collectionComponent\n ) : (\n <Fragment />\n )}\n </ReorderableContext.Provider>\n {reorderAcc}\n </div>\n );\n }\n);\n\nconst idExtractor = (elem: Element) => elem.id;\n\n/**\n * Props specific for the BaseCardView\n */\ntype BaseCardViewProps<K, D> = BaseCardViewImplProps<K, D> & {\n ref?: ForwardedRef<HTMLDivElement>;\n};\n\n/**\n * Cast BaseCardViewImpl to generic type, because BaseCardViewImpl would infer the generic type to specific type,\n * i.e infer <K extends string | number, D> to <string | number, unknown>, which will cause type issues in the parent component\n */\nexport const BaseCardView = BaseCardViewImpl as <K extends string | number, D>(\n props: BaseCardViewProps<K, D>\n) => JSX.Element;\n"],"names":["useRef","multiVariantStyles","styles","useCallback","useReorderableItem","useReorderableContext","useEffect","useUser","classNames","_jsxs","isKeyDefined","_Fragment","_jsx","useResizeObserver","useLayoutEffect","allTabbableElements","warn","useAnimation","useMemo","mergeRefs","getItemContext","useId","containsKey","TabbableModeContext","FocusTrap","memo","isSameKey","cardViewVars","Grid","Flex","useState","Fragment","LOADMORE_STYLE_CLASS","Skeleton","useReorderable","dragToScroll","forwardRef","useImperativeHandle","useAddBusyState","getPrevNextKeyByCount","useNavigation","handleSelectionRange","useSelection","keyExtractor","findElementByKey","HiddenAccessible","getViewportConfig","LoadMoreCollection","getClientHints","mergeProps","ReorderableContext"],"mappings":"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"}
|