@primereact/headless 11.0.0-alpha.1 → 11.0.0-alpha.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/accordion/index.mjs +1 -1
- package/accordion/index.mjs.map +1 -1
- package/accordion/useAccordion.d.ts +6 -6
- package/animateonscroll/index.d.ts +2 -0
- package/animateonscroll/index.mjs +2 -0
- package/animateonscroll/index.mjs.map +1 -0
- package/animateonscroll/useAnimateOnScroll.d.ts +3 -0
- package/animateonscroll/useAnimateOnScroll.props.d.ts +2 -0
- package/animateonscroll/useAnimateOnScroll.test.d.ts +0 -0
- package/autocomplete/index.d.ts +2 -0
- package/autocomplete/index.mjs +2 -0
- package/autocomplete/index.mjs.map +1 -0
- package/autocomplete/useAutoComplete.d.ts +87 -0
- package/autocomplete/useAutoComplete.props.d.ts +2 -0
- package/autocomplete/useAutoComplete.test.d.ts +0 -0
- package/breadcrumb/index.d.ts +2 -0
- package/breadcrumb/index.mjs +2 -0
- package/breadcrumb/index.mjs.map +1 -0
- package/breadcrumb/useBreadcrumb.d.ts +3 -0
- package/breadcrumb/useBreadcrumb.props.d.ts +2 -0
- package/breadcrumb/useBreadcrumb.test.d.ts +0 -0
- package/carousel/index.d.ts +2 -0
- package/carousel/index.mjs +2 -0
- package/carousel/index.mjs.map +1 -0
- package/carousel/useCarousel.d.ts +23 -0
- package/carousel/useCarousel.props.d.ts +2 -0
- package/carousel/useCarousel.test.d.ts +0 -0
- package/checkboxgroup/index.d.ts +2 -0
- package/checkboxgroup/index.mjs +2 -0
- package/checkboxgroup/index.mjs.map +1 -0
- package/checkboxgroup/useCheckboxGroup.d.ts +7 -0
- package/checkboxgroup/useCheckboxGroup.props.d.ts +2 -0
- package/checkboxgroup/useCheckboxGroup.test.d.ts +0 -0
- package/collapsible/index.d.ts +2 -0
- package/collapsible/index.mjs +2 -0
- package/collapsible/index.mjs.map +1 -0
- package/collapsible/useCollapsible.d.ts +9 -0
- package/collapsible/useCollapsible.props.d.ts +2 -0
- package/collapsible/useCollapsible.test.d.ts +0 -0
- package/colorpicker/colorManager.d.ts +102 -0
- package/colorpicker/index.d.ts +3 -0
- package/colorpicker/index.mjs +2 -0
- package/colorpicker/index.mjs.map +1 -0
- package/colorpicker/useColorPicker.d.ts +59 -0
- package/colorpicker/useColorPicker.props.d.ts +2 -0
- package/colorpicker/useColorPicker.test.d.ts +0 -0
- package/commandmenu/index.d.ts +2 -0
- package/commandmenu/index.mjs +2 -0
- package/commandmenu/index.mjs.map +1 -0
- package/commandmenu/useCommandMenu.d.ts +11 -0
- package/commandmenu/useCommandMenu.props.d.ts +2 -0
- package/commandmenu/useCommandMenu.test.d.ts +0 -0
- package/compare/index.d.ts +2 -0
- package/compare/index.mjs +2 -0
- package/compare/index.mjs.map +1 -0
- package/compare/useCompare.d.ts +35 -0
- package/compare/useCompare.props.d.ts +2 -0
- package/compare/useCompare.test.d.ts +0 -0
- package/confirmdialog/index.d.ts +2 -0
- package/confirmdialog/index.mjs +2 -0
- package/confirmdialog/index.mjs.map +1 -0
- package/confirmdialog/useConfirmDialog.d.ts +43 -0
- package/confirmdialog/useConfirmDialog.props.d.ts +2 -0
- package/confirmdialog/useConfirmDialog.test.d.ts +0 -0
- package/confirmpopup/index.d.ts +2 -0
- package/confirmpopup/index.mjs +2 -0
- package/confirmpopup/index.mjs.map +1 -0
- package/confirmpopup/useConfirmPopup.d.ts +25 -0
- package/confirmpopup/useConfirmPopup.props.d.ts +2 -0
- package/confirmpopup/useConfirmPopup.test.d.ts +0 -0
- package/contextmenu/index.d.ts +2 -0
- package/contextmenu/index.mjs +2 -0
- package/contextmenu/index.mjs.map +1 -0
- package/contextmenu/useContextMenu.d.ts +1 -0
- package/contextmenu/useContextMenu.props.d.ts +2 -0
- package/contextmenu/useContextMenu.test.d.ts +0 -0
- package/dataview/index.d.ts +2 -0
- package/dataview/index.mjs +2 -0
- package/dataview/index.mjs.map +1 -0
- package/dataview/useDataView.d.ts +3 -0
- package/dataview/useDataView.props.d.ts +2 -0
- package/dataview/useDataView.test.d.ts +0 -0
- package/datepicker/index.d.ts +2 -0
- package/datepicker/index.mjs +2 -0
- package/datepicker/index.mjs.map +1 -0
- package/datepicker/useDatePicker.d.ts +114 -0
- package/datepicker/useDatePicker.props.d.ts +2 -0
- package/datepicker/useDatePicker.test.d.ts +0 -0
- package/dialog/index.d.ts +2 -0
- package/dialog/index.mjs +2 -0
- package/dialog/index.mjs.map +1 -0
- package/dialog/useDialog.d.ts +30 -0
- package/dialog/useDialog.props.d.ts +2 -0
- package/dialog/useDialog.test.d.ts +0 -0
- package/drawer/index.d.ts +2 -0
- package/drawer/index.mjs +2 -0
- package/drawer/index.mjs.map +1 -0
- package/drawer/useDrawer.d.ts +24 -0
- package/drawer/useDrawer.props.d.ts +2 -0
- package/drawer/useDrawer.test.d.ts +0 -0
- package/fieldset/index.mjs +1 -1
- package/fieldset/index.mjs.map +1 -1
- package/fieldset/useFieldset.d.ts +29 -1
- package/fileupload/index.d.ts +2 -0
- package/fileupload/index.mjs +2 -0
- package/fileupload/index.mjs.map +1 -0
- package/fileupload/useFileUpload.d.ts +26 -0
- package/fileupload/useFileUpload.props.d.ts +2 -0
- package/fileupload/useFileUpload.test.d.ts +0 -0
- package/floatlabel/index.d.ts +2 -0
- package/floatlabel/index.mjs +2 -0
- package/floatlabel/index.mjs.map +1 -0
- package/floatlabel/useFloatLabel.d.ts +1 -0
- package/floatlabel/useFloatLabel.props.d.ts +2 -0
- package/floatlabel/useFloatLabel.test.d.ts +0 -0
- package/fluid/index.d.ts +2 -0
- package/fluid/index.mjs +2 -0
- package/fluid/index.mjs.map +1 -0
- package/fluid/useFluid.d.ts +1 -0
- package/fluid/useFluid.props.d.ts +2 -0
- package/fluid/useFluid.test.d.ts +0 -0
- package/focustrap/index.d.ts +2 -0
- package/focustrap/index.mjs +2 -0
- package/focustrap/index.mjs.map +1 -0
- package/focustrap/useFocusTrap.d.ts +9 -0
- package/focustrap/useFocusTrap.props.d.ts +2 -0
- package/focustrap/useFocusTrap.test.d.ts +0 -0
- package/gallery/index.d.ts +2 -0
- package/gallery/index.mjs +2 -0
- package/gallery/index.mjs.map +1 -0
- package/gallery/item/index.d.ts +2 -0
- package/gallery/item/index.mjs +2 -0
- package/gallery/item/index.mjs.map +1 -0
- package/gallery/item/useGalleryItem.d.ts +45 -0
- package/gallery/item/useGalleryItem.props.d.ts +2 -0
- package/gallery/useGallery.d.ts +31 -0
- package/gallery/useGallery.props.d.ts +2 -0
- package/gallery/useGallery.test.d.ts +0 -0
- package/iconfield/index.d.ts +2 -0
- package/iconfield/index.mjs +2 -0
- package/iconfield/index.mjs.map +1 -0
- package/iconfield/useIconField.d.ts +1 -0
- package/iconfield/useIconField.props.d.ts +2 -0
- package/iconfield/useIconField.test.d.ts +0 -0
- package/iftalabel/index.d.ts +2 -0
- package/iftalabel/index.mjs +2 -0
- package/iftalabel/index.mjs.map +1 -0
- package/iftalabel/useIftaLabel.d.ts +1 -0
- package/iftalabel/useIftaLabel.props.d.ts +2 -0
- package/iftalabel/useIftaLabel.test.d.ts +0 -0
- package/inplace/index.mjs +1 -1
- package/inplace/index.mjs.map +1 -1
- package/inplace/useInplace.d.ts +1 -1
- package/inputgroup/index.d.ts +2 -0
- package/inputgroup/index.mjs +2 -0
- package/inputgroup/index.mjs.map +1 -0
- package/inputgroup/useInputGroup.d.ts +1 -0
- package/inputgroup/useInputGroup.props.d.ts +2 -0
- package/inputgroup/useInputGroup.test.d.ts +0 -0
- package/inputnumber/index.d.ts +2 -0
- package/inputnumber/index.mjs +2 -0
- package/inputnumber/index.mjs.map +1 -0
- package/inputnumber/useInputNumber.d.ts +23 -0
- package/inputnumber/useInputNumber.props.d.ts +2 -0
- package/inputnumber/useInputNumber.test.d.ts +0 -0
- package/inputotp/index.d.ts +2 -0
- package/inputotp/index.mjs +2 -0
- package/inputotp/index.mjs.map +1 -0
- package/inputotp/useInputOtp.d.ts +14 -0
- package/inputotp/useInputOtp.props.d.ts +2 -0
- package/inputotp/useInputOtp.test.d.ts +0 -0
- package/inputtags/index.d.ts +2 -0
- package/inputtags/index.mjs +2 -0
- package/inputtags/index.mjs.map +1 -0
- package/inputtags/useInputTags.d.ts +86 -0
- package/inputtags/useInputTags.props.d.ts +2 -0
- package/inputtags/useInputTags.test.d.ts +0 -0
- package/knob/index.d.ts +2 -0
- package/knob/index.mjs +2 -0
- package/knob/index.mjs.map +1 -0
- package/knob/useKnob.d.ts +17 -0
- package/knob/useKnob.props.d.ts +2 -0
- package/knob/useKnob.test.d.ts +0 -0
- package/listbox/index.d.ts +2 -0
- package/listbox/index.mjs +2 -0
- package/listbox/index.mjs.map +1 -0
- package/listbox/useListbox.d.ts +52 -0
- package/listbox/useListbox.props.d.ts +2 -0
- package/listbox/useListbox.test.d.ts +0 -0
- package/menu/index.d.ts +2 -0
- package/menu/index.mjs +2 -0
- package/menu/index.mjs.map +1 -0
- package/menu/sub/index.d.ts +2 -0
- package/menu/sub/index.mjs +2 -0
- package/menu/sub/index.mjs.map +1 -0
- package/menu/sub/useMenuSub.d.ts +19 -0
- package/menu/sub/useMenuSub.props.d.ts +2 -0
- package/menu/useMenu.d.ts +34 -0
- package/menu/useMenu.props.d.ts +2 -0
- package/menu/useMenu.test.d.ts +0 -0
- package/message/index.d.ts +2 -0
- package/message/index.mjs +2 -0
- package/message/index.mjs.map +1 -0
- package/message/useMessage.d.ts +6 -0
- package/message/useMessage.props.d.ts +2 -0
- package/message/useMessage.test.d.ts +0 -0
- package/orgchart/index.d.ts +2 -0
- package/orgchart/index.mjs +2 -0
- package/orgchart/index.mjs.map +1 -0
- package/orgchart/useOrgChart.d.ts +20 -0
- package/orgchart/useOrgChart.props.d.ts +2 -0
- package/orgchart/useOrgChart.test.d.ts +0 -0
- package/overlay/index.d.ts +2 -0
- package/overlay/index.mjs +2 -0
- package/overlay/index.mjs.map +1 -0
- package/overlay/useOverlay.d.ts +16 -0
- package/overlay/useOverlay.props.d.ts +2 -0
- package/overlay/useOverlay.test.d.ts +0 -0
- package/overlaybadge/index.d.ts +2 -0
- package/overlaybadge/index.mjs +2 -0
- package/overlaybadge/index.mjs.map +1 -0
- package/overlaybadge/useOverlayBadge.d.ts +1 -0
- package/overlaybadge/useOverlayBadge.props.d.ts +2 -0
- package/overlaybadge/useOverlayBadge.test.d.ts +0 -0
- package/package.json +6 -6
- package/paginator/index.d.ts +2 -0
- package/paginator/index.mjs +2 -0
- package/paginator/index.mjs.map +1 -0
- package/paginator/usePaginator.d.ts +19 -0
- package/paginator/usePaginator.props.d.ts +2 -0
- package/paginator/usePaginator.test.d.ts +0 -0
- package/panel/index.mjs +1 -1
- package/panel/index.mjs.map +1 -1
- package/panel/usePanel.d.ts +24 -7
- package/password/index.d.ts +2 -0
- package/password/index.mjs +2 -0
- package/password/index.mjs.map +1 -0
- package/password/usePassword.d.ts +9 -0
- package/password/usePassword.props.d.ts +2 -0
- package/password/usePassword.test.d.ts +0 -0
- package/placer/index.d.ts +2 -0
- package/placer/index.mjs +2 -0
- package/placer/index.mjs.map +1 -0
- package/placer/usePlacer.d.ts +12 -0
- package/placer/usePlacer.props.d.ts +2 -0
- package/placer/usePlacer.test.d.ts +0 -0
- package/popover/index.d.ts +2 -0
- package/popover/index.mjs +2 -0
- package/popover/index.mjs.map +1 -0
- package/popover/usePopover.d.ts +19 -0
- package/popover/usePopover.props.d.ts +2 -0
- package/popover/usePopover.test.d.ts +0 -0
- package/portal/index.d.ts +2 -0
- package/portal/index.mjs +2 -0
- package/portal/index.mjs.map +1 -0
- package/portal/usePortal.d.ts +3 -0
- package/portal/usePortal.props.d.ts +2 -0
- package/portal/usePortal.test.d.ts +0 -0
- package/positioner/index.d.ts +2 -0
- package/positioner/index.mjs +2 -0
- package/positioner/index.mjs.map +1 -0
- package/positioner/usePositioner copy.d.ts +18 -0
- package/positioner/usePositioner.d.ts +11 -0
- package/positioner/usePositioner.props.d.ts +2 -0
- package/positioner/usePositioner.test.d.ts +0 -0
- package/radiobuttongroup/index.d.ts +2 -0
- package/radiobuttongroup/index.mjs +2 -0
- package/radiobuttongroup/index.mjs.map +1 -0
- package/radiobuttongroup/useRadioButtonGroup.d.ts +7 -0
- package/radiobuttongroup/useRadioButtonGroup.props.d.ts +2 -0
- package/radiobuttongroup/useRadioButtonGroup.test.d.ts +0 -0
- package/rating/index.d.ts +2 -0
- package/rating/index.mjs +2 -0
- package/rating/index.mjs.map +1 -0
- package/rating/useRating.d.ts +15 -0
- package/rating/useRating.props.d.ts +2 -0
- package/rating/useRating.test.d.ts +0 -0
- package/select/index.d.ts +2 -0
- package/select/index.mjs +2 -0
- package/select/index.mjs.map +1 -0
- package/select/useSelect.d.ts +87 -0
- package/select/useSelect.props.d.ts +2 -0
- package/select/useSelect.test.d.ts +1 -0
- package/slider/index.d.ts +2 -0
- package/slider/index.mjs +2 -0
- package/slider/index.mjs.map +1 -0
- package/slider/useSlider.d.ts +20 -0
- package/slider/useSlider.props.d.ts +2 -0
- package/slider/useSlider.test.d.ts +0 -0
- package/speeddial/index.d.ts +2 -0
- package/speeddial/index.mjs +2 -0
- package/speeddial/index.mjs.map +1 -0
- package/speeddial/useSpeedDial.d.ts +16 -0
- package/speeddial/useSpeedDial.props.d.ts +2 -0
- package/speeddial/useSpeedDial.test.d.ts +0 -0
- package/terminal/index.d.ts +2 -0
- package/terminal/index.mjs +2 -0
- package/terminal/index.mjs.map +1 -0
- package/terminal/useTerminal.d.ts +13 -0
- package/terminal/useTerminal.props.d.ts +2 -0
- package/terminal/useTerminal.test.d.ts +0 -0
- package/textarea/index.d.ts +2 -0
- package/textarea/index.mjs +2 -0
- package/textarea/index.mjs.map +1 -0
- package/textarea/useTextarea.d.ts +4 -0
- package/textarea/useTextarea.props.d.ts +2 -0
- package/textarea/useTextarea.test.d.ts +0 -0
- package/timeline/index.d.ts +2 -0
- package/timeline/index.mjs +2 -0
- package/timeline/index.mjs.map +1 -0
- package/timeline/useTimeline.d.ts +1 -0
- package/timeline/useTimeline.props.d.ts +2 -0
- package/timeline/useTimeline.test.d.ts +0 -0
- package/toast/index.d.ts +2 -0
- package/toast/index.mjs +2 -0
- package/toast/index.mjs.map +1 -0
- package/toast/useToast.d.ts +31 -0
- package/toast/useToast.props.d.ts +2 -0
- package/toast/useToast.test.d.ts +0 -0
- package/toaster/index.d.ts +3 -0
- package/toaster/index.mjs +2 -0
- package/toaster/index.mjs.map +1 -0
- package/toaster/toastStore.d.ts +40 -0
- package/toaster/useToaster.d.ts +26 -0
- package/toaster/useToaster.props.d.ts +2 -0
- package/toaster/useToaster.test.d.ts +0 -0
- package/togglebuttongroup/index.d.ts +2 -0
- package/togglebuttongroup/index.mjs +2 -0
- package/togglebuttongroup/index.mjs.map +1 -0
- package/togglebuttongroup/useToggleButtonGroup.d.ts +8 -0
- package/togglebuttongroup/useToggleButtonGroup.props.d.ts +2 -0
- package/togglebuttongroup/useToggleButtonGroup.test.d.ts +0 -0
- package/tooltip/group/index.d.ts +2 -0
- package/tooltip/group/index.mjs +2 -0
- package/tooltip/group/index.mjs.map +1 -0
- package/tooltip/group/useTooltipGroup.d.ts +9 -0
- package/tooltip/group/useTooltipGroup.props.d.ts +2 -0
- package/tooltip/group/useTooltipGroup.test.d.ts +0 -0
- package/tooltip/index.d.ts +2 -0
- package/tooltip/index.mjs +2 -0
- package/tooltip/index.mjs.map +1 -0
- package/tooltip/useTooltip.d.ts +28 -0
- package/tooltip/useTooltip.props.d.ts +2 -0
- package/tooltip/useTooltip.test.d.ts +0 -0
- package/tree/TreeDragDropService.d.ts +24 -0
- package/tree/index.d.ts +3 -0
- package/tree/index.mjs +2 -0
- package/tree/index.mjs.map +1 -0
- package/tree/useTree.d.ts +27 -0
- package/tree/useTree.props.d.ts +2 -0
- package/tree/useTree.test.d.ts +0 -0
package/accordion/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{withHeadless as
|
|
1
|
+
import{withHeadless as L}from"@primereact/core/headless";import{useControlledState as x}from"@primereact/hooks/use-controlled-state";import{findSingle as H,focus as h,getAttribute as P}from"@primeuix/utils/dom";var T={defaultValue:void 0,value:void 0,multiple:!1,onValueChange:void 0,openOnFocus:!1};var k=L({name:"useAccordion",defaultProps:T,setup({props:u,elementRef:p}){var b;let[c,v]=x({value:u.value,defaultValue:(b=u.defaultValue)!=null?b:null,onChange:u.onValueChange}),A={value:c},d=(e,t)=>{if(t===void 0)return;let r=c,a=E(t);if(u.multiple){let l=Array.isArray(r)?r:[];r=a?l.filter(o=>o!==t):t!=null?[...l,t]:l}else r=a?null:t;v([r,{originalEvent:e,value:r}])},E=e=>{if(e==null)return!1;if(u.multiple){let t=c;return Array.isArray(t)&&t.includes(e)}else return c===e},f=(e,t)=>{let r=i=>H(i,'[data-scope="accordion"][data-part="trigger"]'),a=(i,s,m=!1)=>{let g=m?i:i[s==="next"?"nextElementSibling":"previousElementSibling"];return g?P(g,"data-disabled")?a(g,s):r(g):null},l=i=>{let s=p==null?void 0:p.current;if(!s)return null;let m=i==="first"?s.firstElementChild:s.lastElementChild;return m?a(m,i==="first"?"next":"previous",!0):null},o=e==null?void 0:e.closest('[data-scope="accordion"][data-part="panel"]');if(!o)return;let n=null;switch(t){case"next":n=a(o,"next"),n||(n=l("first"));break;case"previous":n=a(o,"previous"),n||(n=l("last"));break;case"first":n=l("first");break;case"last":n=l("last");break}n&&h(n)};return{state:A,updateValue:d,isItemActive:E,onTriggerClick:(e,t)=>{d(e,t)},onTriggerFocus:(e,t)=>{u.openOnFocus&&d(e,t)},onTriggerKeyDown:(e,t)=>{switch(e.code){case"ArrowDown":f(e.currentTarget,"next");break;case"ArrowUp":f(e.currentTarget,"previous");break;case"Home":f(e.currentTarget,"first");break;case"End":f(e.currentTarget,"last");break;case"Enter":case"NumpadEnter":case"Space":d(e,t);break;case"Tab":return;default:break}e.preventDefault()}}}});export{T as defaultProps,k as useAccordion};
|
|
2
2
|
//# sourceMappingURL=index.mjs.map
|
package/accordion/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/accordion/useAccordion.ts","../../src/accordion/useAccordion.props.ts"],"sourcesContent":["import { withHeadless } from '@primereact/core/headless';\nimport
|
|
1
|
+
{"version":3,"sources":["../../src/accordion/useAccordion.ts","../../src/accordion/useAccordion.props.ts"],"sourcesContent":["import { withHeadless } from '@primereact/core/headless';\nimport { useControlledState } from '@primereact/hooks/use-controlled-state';\nimport { findSingle, focus, getAttribute } from '@primeuix/utils/dom';\nimport * as React from 'react';\nimport { defaultProps } from './useAccordion.props';\n\nexport type NavigationDirection = 'next' | 'previous' | 'first' | 'last';\n\nexport const useAccordion = withHeadless({\n name: 'useAccordion',\n defaultProps,\n setup({ props, elementRef }) {\n const [activeValueState, setActiveValueState] = useControlledState({\n value: props.value,\n defaultValue: props.defaultValue ?? null,\n onChange: props.onValueChange\n });\n\n const state = {\n value: activeValueState\n };\n\n // methods\n const updateValue = (event: React.SyntheticEvent, key: null | undefined | string | number) => {\n if (key === undefined) return;\n\n let activeValue = activeValueState;\n const isActive = isItemActive(key);\n\n if (props.multiple) {\n const arrayValue = Array.isArray(activeValue) ? activeValue : [];\n\n activeValue = isActive ? arrayValue.filter((k) => k !== key) : key !== null && key !== undefined ? [...arrayValue, key] : arrayValue;\n } else {\n activeValue = isActive ? null : key;\n }\n\n setActiveValueState([\n activeValue,\n {\n originalEvent: event,\n value: activeValue\n }\n ]);\n };\n\n const isItemActive = (key: null | undefined | string | number): boolean => {\n if (key === null || key === undefined) return false;\n\n if (props.multiple) {\n const arrayValue = activeValueState as (string | number)[] | null | undefined;\n\n return Array.isArray(arrayValue) && arrayValue.includes(key as string | number);\n } else {\n return activeValueState === key;\n }\n };\n\n const focusPanel = (accordionHeader: HTMLElement | null, direction: NavigationDirection): void => {\n const findHeader = (panelElement: HTMLElement): HTMLElement | null => {\n return findSingle(panelElement, '[data-scope=\"accordion\"][data-part=\"trigger\"]') as HTMLElement | null;\n };\n\n const findAdjacentPanel = (panelElement: HTMLElement, direction: 'next' | 'previous', selfCheck = false): HTMLElement | null => {\n const siblingProperty = direction === 'next' ? 'nextElementSibling' : 'previousElementSibling';\n const element = selfCheck ? panelElement : (panelElement[siblingProperty] as HTMLElement | null);\n\n if (!element) {\n return null;\n }\n\n if (getAttribute(element, 'data-disabled')) {\n return findAdjacentPanel(element, direction);\n }\n\n return findHeader(element);\n };\n\n const findBoundaryPanel = (boundary: 'first' | 'last'): HTMLElement | null => {\n const accordionElement = elementRef?.current;\n\n if (!accordionElement) return null;\n\n const targetChild = boundary === 'first' ? accordionElement.firstElementChild : accordionElement.lastElementChild;\n\n if (!targetChild) return null;\n\n const direction = boundary === 'first' ? 'next' : 'previous';\n\n return findAdjacentPanel(targetChild as HTMLElement, direction, true);\n };\n\n const currentPanel = accordionHeader?.closest('[data-scope=\"accordion\"][data-part=\"panel\"]') as HTMLElement | null;\n\n if (!currentPanel) return;\n\n let targetPanel: HTMLElement | null = null;\n\n switch (direction) {\n case 'next':\n targetPanel = findAdjacentPanel(currentPanel, 'next');\n\n if (!targetPanel) {\n targetPanel = findBoundaryPanel('first');\n }\n\n break;\n\n case 'previous':\n targetPanel = findAdjacentPanel(currentPanel, 'previous');\n\n if (!targetPanel) {\n targetPanel = findBoundaryPanel('last');\n }\n\n break;\n\n case 'first':\n targetPanel = findBoundaryPanel('first');\n break;\n\n case 'last':\n targetPanel = findBoundaryPanel('last');\n break;\n }\n\n if (targetPanel) {\n focus(targetPanel);\n }\n };\n\n const onTriggerClick = (event: React.MouseEvent<HTMLButtonElement>, value: null | undefined | string | number) => {\n updateValue(event, value);\n };\n\n const onTriggerFocus = (event: React.FocusEvent<HTMLButtonElement>, value: null | undefined | string | number) => {\n if (props.openOnFocus) {\n updateValue(event, value);\n }\n };\n\n const onTriggerKeyDown = (event: React.KeyboardEvent<HTMLButtonElement>, value: null | undefined | string | number) => {\n switch (event.code) {\n case 'ArrowDown':\n focusPanel(event.currentTarget, 'next');\n break;\n\n case 'ArrowUp':\n focusPanel(event.currentTarget, 'previous');\n break;\n\n case 'Home':\n focusPanel(event.currentTarget, 'first');\n break;\n\n case 'End':\n focusPanel(event.currentTarget, 'last');\n break;\n\n case 'Enter':\n case 'NumpadEnter':\n case 'Space':\n updateValue(event, value);\n break;\n\n case 'Tab':\n return;\n\n default:\n break;\n }\n\n event.preventDefault();\n };\n\n return {\n state,\n // methods\n updateValue,\n isItemActive,\n onTriggerClick,\n onTriggerFocus,\n onTriggerKeyDown\n };\n }\n});\n","import type { useAccordionProps } from '@primereact/types/shared/accordion';\n\nexport const defaultProps: useAccordionProps = {\n defaultValue: undefined,\n value: undefined,\n multiple: false,\n onValueChange: undefined,\n openOnFocus: false\n};\n"],"mappings":"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","names":["withHeadless","useControlledState","findSingle","focus","getAttribute","defaultProps","useAccordion","withHeadless","defaultProps","props","elementRef","_a","activeValueState","setActiveValueState","useControlledState","state","updateValue","event","key","activeValue","isActive","isItemActive","arrayValue","k","focusPanel","accordionHeader","direction","findHeader","panelElement","findSingle","findAdjacentPanel","selfCheck","element","getAttribute","findBoundaryPanel","boundary","accordionElement","targetChild","currentPanel","targetPanel","focus","value"]}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { useAccordionProps } from '@primereact/types/shared/accordion';
|
|
2
1
|
import * as React from 'react';
|
|
3
|
-
export
|
|
2
|
+
export type NavigationDirection = 'next' | 'previous' | 'first' | 'last';
|
|
3
|
+
export declare const useAccordion: (inProps?: unknown) => import("@primereact/types/core").HeadlessInstance<import("@primereact/types/shared/accordion").useAccordionProps, unknown, {
|
|
4
4
|
state: {
|
|
5
5
|
value: string | number | (string | number)[] | null | undefined;
|
|
6
6
|
};
|
|
7
|
-
updateValue: (key: null | undefined | string | number) => void;
|
|
7
|
+
updateValue: (event: React.SyntheticEvent, key: null | undefined | string | number) => void;
|
|
8
8
|
isItemActive: (key: null | undefined | string | number) => boolean;
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
onTriggerClick: (event: React.MouseEvent<HTMLButtonElement>, value: null | undefined | string | number) => void;
|
|
10
|
+
onTriggerFocus: (event: React.FocusEvent<HTMLButtonElement>, value: null | undefined | string | number) => void;
|
|
11
|
+
onTriggerKeyDown: (event: React.KeyboardEvent<HTMLButtonElement>, value: null | undefined | string | number) => void;
|
|
12
12
|
}>;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var H=Object.defineProperty,U=Object.defineProperties;var j=Object.getOwnPropertyDescriptors;var f=Object.getOwnPropertySymbols;var O=Object.prototype.hasOwnProperty,h=Object.prototype.propertyIsEnumerable;var C=(o,e,r)=>e in o?H(o,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):o[e]=r,I=(o,e)=>{for(var r in e||(e={}))O.call(e,r)&&C(o,r,e[r]);if(f)for(var r of f(e))h.call(e,r)&&C(o,r,e[r]);return o},L=(o,e)=>U(o,j(e));var k=(o,e)=>{var r={};for(var n in o)O.call(o,n)&&e.indexOf(n)<0&&(r[n]=o[n]);if(o!=null&&f)for(var n of f(o))e.indexOf(n)<0&&h.call(o,n)&&(r[n]=o[n]);return r};import{withHeadless as q}from"@primereact/core/headless";import{useIntersectionObserver as g}from"@primereact/hooks/use-intersection-observer";import{useMountEffect as z}from"@primereact/hooks/use-mount-effect";import{useUnmountEffect as B}from"@primereact/hooks/use-unmount-effect";import{addClass as x,removeClass as u}from"@primeuix/utils/dom";import*as i from"react";var S={enterClassName:"",leaveClassName:"",once:!1,root:void 0,rootMargin:void 0,threshold:.5};var X=q({name:"useAnimateOnScroll",defaultProps:S,setup({props:o,elementRef:e}){let E=o,{enterClassName:r,leaveClassName:n,once:l}=E,P=k(E,["enterClassName","leaveClassName","once"]),m=i.useRef(!1),c=i.useRef(null),s=i.useRef(void 0),{observe:M,unobserve:p}=g(L(I({},P),{onIntersect:([t])=>{t.isIntersecting?T():w(),m.current=!0}})),{observe:v,unobserve:d}=g({threshold:0,onIntersect:([t])=>{let a=e.current;a&&(t==null?void 0:t.boundingClientRect.top)>0&&!t.isIntersecting&&(a.style.opacity=r?"0":"",r&&u(a,r),n&&u(a,n),d(a),a.removeAttribute("data-pd-animateonscroll-state"),s.current=void 0)}}),b=i.useCallback(()=>{let t=e.current;t&&(p(t),d(t),m.current=!1)},[p,d,e]),T=i.useCallback(()=>{let t=e.current;!t||s.current!==void 0||s.current!=="enter"&&(t.style.opacity="",r&&(n&&u(t,n),x(t,r!=null?r:""),t.setAttribute("data-pd-animateonscroll-state","enter"),s.current="enter",A(),l&&setTimeout(()=>{b()},0)))},[s,r,n,l,b]),w=i.useCallback(()=>{let t=e.current;!t||s.current!==void 0||s.current!=="leave"&&(n?(r&&u(t,r),x(t,n!=null?n:""),A(),s.current="leave",t.setAttribute("data-pd-animateonscroll-state","leave")):t.style.opacity="0")},[s,r,n]),A=i.useCallback(()=>{let t=e.current;t&&(c.current||(c.current=()=>{t&&(r&&u(t,r),n&&u(t,n),l||v(t),y(),s.current==="leave"&&(t.style.opacity="0"),s.current==="enter"&&(t.style.opacity=""),t.removeAttribute("data-pd-animateonscroll-state"),s.current=void 0)},t.addEventListener("animationend",c.current),t.addEventListener("transitionend",c.current)))},[r,n,l,v]),y=i.useCallback(()=>{let t=e.current;t&&c.current&&(t.removeEventListener("animationend",c.current),t.removeEventListener("transitionend",c.current),c.current=null)},[]);return i.useLayoutEffect(()=>{e.current&&r&&(e.current.style.opacity="0")},[e,r]),z(()=>{e.current&&(e.current.setAttribute("data-pd-animateonscroll","true"),setTimeout(()=>e.current&&M(e.current),0))}),B(()=>{e.current&&(e.current.removeAttribute("data-pd-animateonscroll"),e.current.removeAttribute("data-pd-animateonscroll-state"),p(e.current),d(e.current),y())}),{state:{}}}});export{S as defaultProps,X as useAnimateOnScroll};
|
|
2
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/animateonscroll/useAnimateOnScroll.ts","../../src/animateonscroll/useAnimateOnScroll.props.ts"],"sourcesContent":["import { withHeadless } from '@primereact/core/headless';\nimport { useIntersectionObserver } from '@primereact/hooks/use-intersection-observer';\nimport { useMountEffect } from '@primereact/hooks/use-mount-effect';\nimport { useUnmountEffect } from '@primereact/hooks/use-unmount-effect';\nimport { addClass, removeClass } from '@primeuix/utils/dom';\nimport * as React from 'react';\nimport { defaultProps } from './useAnimateOnScroll.props';\n\nexport const useAnimateOnScroll = withHeadless({\n name: 'useAnimateOnScroll',\n defaultProps,\n setup({ props, elementRef }) {\n const { enterClassName, leaveClassName, once, ...rest } = props;\n const isObserverActiveRef = React.useRef(false);\n const animationEndListener = React.useRef<(() => void) | null>(null);\n const animationState = React.useRef<'enter' | 'leave' | undefined>(undefined);\n const { observe, unobserve } = useIntersectionObserver({\n ...rest,\n onIntersect: ([entry]) => {\n if (entry.isIntersecting) {\n enter();\n } else {\n leave();\n }\n\n isObserverActiveRef.current = true;\n }\n });\n\n const { observe: observeReset, unobserve: unobserveReset } = useIntersectionObserver({\n threshold: 0,\n onIntersect: ([entry]) => {\n const el = elementRef.current;\n\n if (!el) return;\n\n if (entry?.boundingClientRect.top > 0 && !entry.isIntersecting) {\n el.style.opacity = enterClassName ? '0' : '';\n\n if (enterClassName) {\n removeClass(el, enterClassName);\n }\n\n if (leaveClassName) {\n removeClass(el, leaveClassName);\n }\n\n unobserveReset(el);\n el.removeAttribute('data-pd-animateonscroll-state');\n animationState.current = undefined;\n }\n }\n });\n const unbindIntersectionObserver = React.useCallback(() => {\n const el = elementRef.current;\n\n if (el) {\n unobserve(el);\n unobserveReset(el);\n isObserverActiveRef.current = false;\n }\n }, [unobserve, unobserveReset, elementRef]);\n\n const enter = React.useCallback(() => {\n const el = elementRef.current;\n\n if (!el || animationState.current !== undefined) return;\n\n if (animationState.current === 'enter') return;\n\n el.style.opacity = '';\n\n if (enterClassName) {\n if (leaveClassName) {\n removeClass(el, leaveClassName);\n }\n\n addClass(el, enterClassName ?? '');\n el.setAttribute('data-pd-animateonscroll-state', 'enter');\n animationState.current = 'enter';\n\n bindAnimationEvents();\n\n if (once) {\n setTimeout(() => {\n unbindIntersectionObserver();\n }, 0);\n }\n }\n }, [animationState, enterClassName, leaveClassName, once, unbindIntersectionObserver]);\n\n const leave = React.useCallback(() => {\n const el = elementRef.current;\n\n if (!el || animationState.current !== undefined) return;\n\n if (animationState.current === 'leave') return;\n\n if (leaveClassName) {\n if (enterClassName) {\n removeClass(el, enterClassName);\n }\n\n addClass(el, leaveClassName ?? '');\n bindAnimationEvents();\n animationState.current = 'leave';\n el.setAttribute('data-pd-animateonscroll-state', 'leave');\n } else {\n el.style.opacity = '0';\n }\n }, [animationState, enterClassName, leaveClassName]);\n\n const bindAnimationEvents = React.useCallback(() => {\n const el = elementRef.current;\n\n if (!el) return;\n\n if (!animationEndListener.current) {\n animationEndListener.current = () => {\n if (el) {\n if (enterClassName) {\n removeClass(el, enterClassName);\n }\n\n if (leaveClassName) {\n removeClass(el, leaveClassName);\n }\n\n if (!once) {\n observeReset(el);\n }\n\n unbindAnimationEvents();\n\n if (animationState.current === 'leave') {\n el.style.opacity = '0';\n }\n\n if (animationState.current === 'enter') {\n el.style.opacity = '';\n }\n\n el.removeAttribute('data-pd-animateonscroll-state');\n animationState.current = undefined;\n }\n };\n\n el.addEventListener('animationend', animationEndListener.current);\n el.addEventListener('transitionend', animationEndListener.current);\n }\n }, [enterClassName, leaveClassName, once, observeReset]);\n\n const unbindAnimationEvents = React.useCallback(() => {\n const el = elementRef.current;\n\n if (!el) return;\n\n if (animationEndListener.current) {\n el.removeEventListener('animationend', animationEndListener.current);\n el.removeEventListener('transitionend', animationEndListener.current);\n animationEndListener.current = null;\n }\n }, []);\n\n // Effects\n React.useLayoutEffect(() => {\n if (elementRef.current && enterClassName) {\n elementRef.current.style.opacity = '0';\n }\n }, [elementRef, enterClassName]);\n\n useMountEffect(() => {\n if (elementRef.current) {\n elementRef.current.setAttribute('data-pd-animateonscroll', 'true');\n setTimeout(() => elementRef.current && observe(elementRef.current), 0);\n }\n });\n\n useUnmountEffect(() => {\n if (elementRef.current) {\n elementRef.current.removeAttribute('data-pd-animateonscroll');\n elementRef.current.removeAttribute('data-pd-animateonscroll-state');\n unobserve(elementRef.current);\n unobserveReset(elementRef.current);\n unbindAnimationEvents();\n }\n });\n\n const state = {};\n\n return {\n state\n };\n }\n});\n","import type { useAnimateOnScrollProps } from '@primereact/types/shared/animateonscroll';\n\nexport const defaultProps: useAnimateOnScrollProps = {\n enterClassName: '',\n leaveClassName: '',\n once: false,\n root: undefined,\n rootMargin: undefined,\n threshold: 0.5\n};\n"],"mappings":"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","names":["withHeadless","useIntersectionObserver","useMountEffect","useUnmountEffect","addClass","removeClass","React","defaultProps","useAnimateOnScroll","withHeadless","defaultProps","props","elementRef","_a","enterClassName","leaveClassName","once","rest","__objRest","isObserverActiveRef","animationEndListener","animationState","observe","unobserve","useIntersectionObserver","__spreadProps","__spreadValues","entry","enter","leave","observeReset","unobserveReset","el","removeClass","unbindIntersectionObserver","addClass","bindAnimationEvents","unbindAnimationEvents","useMountEffect","useUnmountEffect"]}
|
|
File without changes
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{withHeadless as ie}from"@primereact/core/headless";import{useListbox as se}from"@primereact/headless/listbox";import{useControlledState as C}from"@primereact/hooks/use-controlled-state";import{useEventListener as D}from"@primereact/hooks/use-event-listener";import{usePresence as ce}from"@primereact/hooks/use-presence";import{focus as P,getOuterWidth as re,isNotEmpty as de}from"@primeuix/utils";import*as l from"react";var S={value:void 0,defaultValue:void 0,inputValue:void 0,defaultInputValue:"",open:void 0,defaultOpen:void 0,options:[],optionKey:void 0,optionLabel:void 0,optionValue:void 0,optionDisabled:void 0,optionGroupLabel:void 0,optionGroupChildren:void 0,disabled:!1,locale:void 0,autoOptionFocus:!0,selectOnFocus:!1,focusOnHover:!0,minLength:1,delay:300,appendTo:"body",forceSelection:!1,completeOnFocus:!1,dropdownMode:"blank",onValueChange:void 0,onInputValueChange:void 0,onComplete:void 0,onOpenChange:void 0};var Le=ie({name:"useAutoComplete",defaultProps:S,setup({props:t}){var K,A;let g=l.useRef(null),o=se({value:t.value,defaultValue:t.defaultValue,options:t.options,optionKey:t.optionKey,optionLabel:t.optionLabel,optionValue:t.optionValue,optionDisabled:t.optionDisabled,optionGroupLabel:t.optionGroupLabel,optionGroupChildren:t.optionGroupChildren,disabled:t.disabled,locale:t.locale,autoOptionFocus:t.autoOptionFocus,selectOnFocus:t.selectOnFocus,focusOnHover:t.focusOnHover,multiple:!1,metaKeySelection:!1,onValueChange:e=>{var n;return(n=g.current)==null?void 0:n.call(g,e)}}),[I,p]=C({value:t.value,defaultValue:t.defaultValue,onChange:t.onValueChange}),[u,m]=C({value:t.inputValue,defaultValue:(K=t.defaultInputValue)!=null?K:"",onChange:t.onInputValueChange}),[i,h]=C({value:t.open,defaultValue:(A=t.defaultOpen)!=null?A:!1,onChange:t.onOpenChange}),G=ce(!!i),[q,T]=l.useState(!1),[N,E]=l.useState(!1),d=l.useRef(null),O=l.useRef(!1),[U,z]=l.useState(null),[b,B]=l.useState(null),v=l.useRef(null),L=l.useRef(null),M=l.useRef(null),W=l.useCallback(e=>{L.current=e,z(e)},[]),j=l.useCallback(e=>{M.current=e,B(e)},[]),J={value:I,inputValue:u,opened:i,focused:q,focusedOptionIndex:o.state.focusedOptionIndex,searching:N,anchorEl:U,positionerEl:b},f=(e,n,a)=>{n!=null&&(a==="input"&&n.trim().length===0||t.onComplete&&t.onComplete({originalEvent:e,query:n}))},w=()=>{h([!0,{value:!0}])},s=()=>{h([!1,{value:!1}]),E(!1),o.changeFocusedOptionIndex(new Event("blur"),-1)},Q=e=>{var a;d.current&&clearTimeout(d.current);let n=e.target.value;if(k()){let c=o.findSelectedOptionIndex(),r=c!==-1?o.getOptions()[c]:null,y=r?o.getOptionLabel(r):"";n!==y&&(p([null,{originalEvent:e,value:null,option:null}]),o.updateModel(e,null))}n.length===0?s():n.length>=((a=t.minLength)!=null?a:1)?(E(!0),d.current=setTimeout(()=>{f(e,n,"input"),w(),o.changeFocusedOptionIndex(new Event("input"),-1)},t.delay)):s(),m([n,{originalEvent:e,query:n}])},X=e=>{t.disabled||(t.completeOnFocus&&f(e,e.target.value,"focus"),T(!0))},Y=e=>{T(!1),o.changeFocusedOptionIndex(new Event("blur"),-1),t.forceSelection&&ae(e)},Z=e=>{switch(e.code){case"ArrowDown":_(e);break;case"ArrowUp":$(e);break;case"ArrowLeft":case"ArrowRight":o.onArrowLeftKey(e,!0);break;case"Enter":case"NumpadEnter":ee(e);break;case"Space":!t.autoOptionFocus&&o.state.focusedOptionIndex!==-1&&o.onEnterKey(e);break;case"Home":case"End":case"PageUp":case"PageDown":i&&o.onListKeyDown(e);break;case"Escape":case"Tab":i&&s();break;default:break}},_=e=>{var n;!i&&u&&(u==null?void 0:u.length)>=((n=t.minLength)!=null?n:1)&&(O.current=!0,f(e,u!=null?u:"","input"),w()),o.onArrowDownKey(e),e.preventDefault()},$=e=>{var n;if(!i&&u&&(u==null?void 0:u.length)>=((n=t.minLength)!=null?n:1)&&(O.current=!0,f(e,u!=null?u:"","input"),w()),e.altKey){let a=o.state.focusedOptionIndex;a!==-1&&R({originalEvent:e,value:o.getOptions()[a]}),i&&s()}else o.onArrowUpKey(e);e.preventDefault()},ee=e=>{let n=o.state.focusedOptionIndex;if(i&&n!==-1){o.onEnterKey(e);let a=o.getOptions()[n];a&&R({originalEvent:e,value:o.getOptionValue(a)})}e.preventDefault()},ne=e=>{var n;t.disabled||(i?(h([!1,{value:!1}]),E(!1)):(P((n=v.current)==null?void 0:n.elementRef.current),E(!0),t.dropdownMode==="blank"?f(e,"","dropdown"):t.dropdownMode==="current"&&f(e,u!=null?u:"","dropdown"),h([!0,{value:!0}]),o.onListFocus()))},te=e=>{e.preventDefault(),e.stopPropagation(),p([null,{originalEvent:e,value:null,option:null}]),m(["",{originalEvent:e,query:""}]),o.updateModel(e,null),i&&s()},R=e=>{var r;let n=e.value,a=o.getOptions().find(y=>{let ue=o.getOptionValue(y);return o.isEquals(ue,n)}),c=a?o.getOptionLabel(a):"";p([n,{originalEvent:e.originalEvent,value:n,option:a}]),m([c,{originalEvent:e.originalEvent,query:c}]),s(),P((r=v.current)==null?void 0:r.elementRef.current)};g.current=R;let oe=(e,n)=>{var a;return o.isValidOption(e)&&((a=o.getOptionLabel(e))==null?void 0:a.toLocaleLowerCase(t.locale))===n.toLocaleLowerCase(t.locale)},ae=e=>{if(t.options&&t.options.length>0){let n=o.getOptions().find(a=>oe(a,u||""));if(n!==void 0){let a=o.getOptions().find(r=>o.getOptionValue(r)===n),c=a?o.getOptionLabel(a):"";p([n,{originalEvent:e,value:n,option:a}]),m([c,{originalEvent:e,query:c}])}else m(["",{originalEvent:e,query:""}]),p([null,{originalEvent:e,value:null,option:null}])}},le=()=>o.getFocusedOptionId(),k=()=>de(I),[x,F]=D({type:"click",listener:e=>{let n=M.current,a=L.current;i&&n&&!n.contains(e.target)&&a&&!a.contains(e.target)&&s()}}),[H,V]=D({target:"window",type:"resize",listener:()=>{i&&s()}});return l.useEffect(()=>{d.current&&(clearTimeout(d.current),d.current=null)},[]),l.useEffect(()=>{E(!1)},[t.options]),l.useEffect(()=>{i?(x(),H()):(F(),V())},[i,x,F,H,V]),l.useEffect(()=>{i&&b&&(L.current&&(b.style.minWidth=re(L.current)+"px"),O.current&&requestAnimationFrame(()=>{requestAnimationFrame(()=>{let e=o.state.focusedOptionIndex,n=e!==-1?e:o.findFirstFocusedOptionIndex();o.changeFocusedOptionIndex(new Event("focus"),n),O.current=!1})}))},[i,b]),{state:J,listbox:o,presence:G,inputRef:v,setAnchorRef:W,setPositionerRef:j,onChange:Q,onFocus:X,onBlur:Y,onKeyDown:Z,onTriggerClick:ne,onClearClick:te,onOptionSelect:R,getFocusedOptionId:le,hasValue:k}}});export{S as defaultProps,Le as useAutoComplete};
|
|
2
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/autocomplete/useAutoComplete.ts","../../src/autocomplete/useAutoComplete.props.ts"],"sourcesContent":["import { withHeadless } from '@primereact/core/headless';\nimport { useListbox } from '@primereact/headless/listbox';\nimport { useControlledState } from '@primereact/hooks/use-controlled-state';\nimport { useEventListener } from '@primereact/hooks/use-event-listener';\nimport { usePresence } from '@primereact/hooks/use-presence';\nimport type { useListboxValueChangeEvent } from '@primereact/types/shared/listbox';\nimport { focus, getOuterWidth, isNotEmpty } from '@primeuix/utils';\nimport * as React from 'react';\nimport { defaultProps } from './useAutoComplete.props';\n\nexport const useAutoComplete = withHeadless({\n name: 'useAutoComplete',\n defaultProps,\n setup({ props }) {\n const onListboxValueChange = React.useRef<((event: useListboxValueChangeEvent) => void) | null>(null);\n const listbox = useListbox({\n value: props.value,\n defaultValue: props.defaultValue,\n options: props.options,\n optionKey: props.optionKey,\n optionLabel: props.optionLabel,\n optionValue: props.optionValue,\n optionDisabled: props.optionDisabled,\n optionGroupLabel: props.optionGroupLabel,\n optionGroupChildren: props.optionGroupChildren,\n disabled: props.disabled,\n locale: props.locale,\n autoOptionFocus: props.autoOptionFocus,\n selectOnFocus: props.selectOnFocus,\n focusOnHover: props.focusOnHover,\n multiple: false,\n metaKeySelection: false,\n onValueChange: (event: useListboxValueChangeEvent) => onListboxValueChange.current?.(event)\n });\n\n const [valueState, setValueState] = useControlledState({\n value: props.value,\n defaultValue: props.defaultValue,\n onChange: props.onValueChange\n });\n\n const [inputValueState, setInputValueState] = useControlledState({\n value: props.inputValue,\n defaultValue: props.defaultInputValue ?? '',\n onChange: props.onInputValueChange\n });\n\n const [openState, setOpenState] = useControlledState({\n value: props.open,\n defaultValue: props.defaultOpen ?? false,\n onChange: props.onOpenChange\n });\n\n const presence = usePresence(!!openState);\n\n const [focusedState, setFocusedState] = React.useState(false);\n const [searchingState, setSearchingState] = React.useState<boolean>(false);\n const searchTimeout = React.useRef<NodeJS.Timeout | null>(null);\n const focusOnShow = React.useRef<boolean>(false);\n\n const [anchorEl, setAnchorEl] = React.useState<HTMLElement | null>(null);\n const [positionerEl, setPositionerEl] = React.useState<HTMLDivElement | null>(null);\n\n const inputRef = React.useRef<{ elementRef: React.RefObject<HTMLInputElement> } | null>(null);\n const anchorRef = React.useRef<HTMLElement>(null);\n const positionerRef = React.useRef<HTMLDivElement>(null);\n\n const setAnchorRef = React.useCallback((node: HTMLElement | null) => {\n anchorRef.current = node;\n setAnchorEl(node);\n }, []);\n\n const setPositionerRef = React.useCallback((node: HTMLDivElement | null) => {\n positionerRef.current = node;\n setPositionerEl(node);\n }, []);\n\n const state = {\n value: valueState,\n inputValue: inputValueState,\n opened: openState,\n focused: focusedState,\n focusedOptionIndex: listbox.state.focusedOptionIndex,\n searching: searchingState,\n anchorEl,\n positionerEl\n };\n\n const search = (event: React.SyntheticEvent, query: string, source: string) => {\n //allow empty string but not undefined or null\n if (query === undefined || query === null) {\n return;\n }\n\n //do not search blank values on input change\n if (source === 'input' && query.trim().length === 0) {\n return;\n }\n\n if (props.onComplete) {\n props.onComplete({\n originalEvent: event,\n query\n });\n }\n };\n\n const show = () => {\n setOpenState([true, { value: true }]);\n };\n\n const hide = () => {\n setOpenState([false, { value: false }]);\n setSearchingState(false);\n listbox.changeFocusedOptionIndex(new Event('blur') as unknown as React.KeyboardEvent, -1);\n };\n\n const onChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (searchTimeout.current) {\n clearTimeout(searchTimeout.current);\n }\n\n const inputValue = event.target.value;\n\n if (hasValue()) {\n const selectedOptionIndex = listbox.findSelectedOptionIndex();\n const selectedOption = selectedOptionIndex !== -1 ? listbox.getOptions()[selectedOptionIndex] : null;\n const selectedLabel = selectedOption ? listbox.getOptionLabel(selectedOption) : '';\n\n if (inputValue !== selectedLabel) {\n setValueState([\n null,\n {\n originalEvent: event,\n value: null,\n option: null\n }\n ]);\n\n listbox.updateModel(event, null);\n }\n }\n\n if (inputValue.length === 0) {\n hide();\n } else {\n if (inputValue.length >= (props.minLength ?? 1)) {\n setSearchingState(true);\n\n searchTimeout.current = setTimeout(() => {\n search(event, inputValue, 'input');\n show();\n\n listbox.changeFocusedOptionIndex(new Event('input') as unknown as React.KeyboardEvent, -1);\n }, props.delay);\n } else {\n hide();\n }\n }\n\n setInputValueState([\n inputValue,\n {\n originalEvent: event,\n query: inputValue\n }\n ]);\n };\n\n const onFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n if (props.disabled) {\n return;\n }\n\n if (props.completeOnFocus) {\n search(event, event.target.value, 'focus');\n }\n\n setFocusedState(true);\n };\n\n const onBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n setFocusedState(false);\n listbox.changeFocusedOptionIndex(new Event('blur') as unknown as React.KeyboardEvent, -1);\n\n if (props.forceSelection) {\n applyForceSelection(event);\n }\n };\n\n const onKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n switch (event.code) {\n case 'ArrowDown':\n onArrowDownKey(event);\n break;\n\n case 'ArrowUp':\n onArrowUpKey(event);\n break;\n\n case 'ArrowLeft':\n case 'ArrowRight':\n listbox.onArrowLeftKey(event, true);\n break;\n\n case 'Enter':\n case 'NumpadEnter':\n onEnterKey(event);\n break;\n\n case 'Space':\n if (!props.autoOptionFocus && listbox.state.focusedOptionIndex !== -1) {\n listbox.onEnterKey(event);\n }\n\n break;\n\n case 'Home':\n case 'End':\n case 'PageUp':\n case 'PageDown':\n if (openState) {\n listbox.onListKeyDown(event);\n }\n\n break;\n\n case 'Escape':\n case 'Tab':\n if (openState) {\n hide();\n }\n\n break;\n\n default:\n break;\n }\n };\n\n const onArrowDownKey = (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (!openState && inputValueState && inputValueState?.length >= (props.minLength ?? 1)) {\n focusOnShow.current = true;\n search(event, inputValueState ?? '', 'input');\n show();\n }\n\n listbox.onArrowDownKey(event);\n\n event.preventDefault();\n };\n\n const onArrowUpKey = (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (!openState && inputValueState && inputValueState?.length >= (props.minLength ?? 1)) {\n focusOnShow.current = true;\n search(event, inputValueState ?? '', 'input');\n show();\n }\n\n if (event.altKey) {\n const focusedOptionIndex = listbox.state.focusedOptionIndex;\n\n if (focusedOptionIndex !== -1) {\n onOptionSelect({\n originalEvent: event,\n value: listbox.getOptions()[focusedOptionIndex]\n });\n }\n\n if (openState) {\n hide();\n }\n } else {\n listbox.onArrowUpKey(event);\n }\n\n event.preventDefault();\n };\n\n const onEnterKey = (event: React.KeyboardEvent<HTMLInputElement>) => {\n const focusedOptionIndex = listbox.state.focusedOptionIndex;\n\n if (openState && focusedOptionIndex !== -1) {\n listbox.onEnterKey(event);\n\n const selectedOption = listbox.getOptions()[focusedOptionIndex];\n\n if (selectedOption) {\n onOptionSelect({\n originalEvent: event,\n value: listbox.getOptionValue(selectedOption)\n });\n }\n }\n\n event.preventDefault();\n };\n\n const onTriggerClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n if (!props.disabled) {\n if (!openState) {\n focus(inputRef.current?.elementRef.current as HTMLInputElement);\n setSearchingState(true);\n\n if (props.dropdownMode === 'blank') {\n search(event, '', 'dropdown');\n } else if (props.dropdownMode === 'current') {\n search(event, inputValueState ?? '', 'dropdown');\n }\n\n setOpenState([true, { value: true }]);\n\n listbox.onListFocus();\n } else {\n setOpenState([false, { value: false }]);\n setSearchingState(false);\n }\n }\n };\n\n const onClearClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n event.preventDefault();\n event.stopPropagation();\n\n setValueState([\n null,\n {\n originalEvent: event,\n value: null,\n option: null\n }\n ]);\n\n setInputValueState([\n '',\n {\n originalEvent: event,\n query: ''\n }\n ]);\n\n listbox.updateModel(event, null);\n\n if (openState) {\n hide();\n }\n };\n\n const onOptionSelect = (event: { originalEvent: React.SyntheticEvent; value: unknown }) => {\n const selectedValue = event.value;\n\n const option = listbox.getOptions().find((opt: unknown) => {\n const optValue = listbox.getOptionValue(opt);\n\n return listbox.isEquals(optValue, selectedValue);\n });\n\n const optionLabel = option ? listbox.getOptionLabel(option) : '';\n\n setValueState([\n selectedValue,\n {\n originalEvent: event.originalEvent,\n value: selectedValue,\n option\n }\n ]);\n\n setInputValueState([\n optionLabel,\n {\n originalEvent: event.originalEvent,\n query: optionLabel\n }\n ]);\n\n hide();\n\n focus(inputRef.current?.elementRef.current as HTMLInputElement);\n };\n\n // Connect listbox onValueChange to onOptionSelect\n onListboxValueChange.current = onOptionSelect;\n\n const isOptionMatched = (option: unknown, value: string) => {\n return listbox.isValidOption(option) && listbox.getOptionLabel(option)?.toLocaleLowerCase(props.locale) === value.toLocaleLowerCase(props.locale);\n };\n\n const applyForceSelection = (event: React.FocusEvent<HTMLInputElement>) => {\n if (props.options && props.options.length > 0) {\n const matchedValue = listbox.getOptions().find((option) => isOptionMatched(option, inputValueState || ''));\n\n if (matchedValue !== undefined) {\n const matchedOption = listbox.getOptions().find((opt: unknown) => listbox.getOptionValue(opt) === matchedValue);\n const matchedLabel = matchedOption ? listbox.getOptionLabel(matchedOption) : '';\n\n setValueState([\n matchedValue,\n {\n originalEvent: event,\n value: matchedValue,\n option: matchedOption\n }\n ]);\n\n setInputValueState([\n matchedLabel,\n {\n originalEvent: event as unknown as React.ChangeEvent<HTMLInputElement>,\n query: matchedLabel\n }\n ]);\n } else {\n setInputValueState([\n '',\n {\n originalEvent: event as unknown as React.ChangeEvent<HTMLInputElement>,\n query: ''\n }\n ]);\n\n setValueState([\n null,\n {\n originalEvent: event,\n value: null,\n option: null\n }\n ]);\n }\n }\n };\n\n const getFocusedOptionId = () => {\n return listbox.getFocusedOptionId();\n };\n\n const hasValue = () => {\n return isNotEmpty(valueState);\n };\n\n // Event listeners\n const [bindOutsideClickListener, unbindOutsideClickListener] = useEventListener({\n type: 'click',\n listener: (event: Event) => {\n const positionerElement = positionerRef.current;\n const anchorElement = anchorRef.current;\n\n if (openState && positionerElement && !positionerElement.contains(event.target as Node) && anchorElement && !anchorElement.contains(event.target as Node)) {\n hide();\n }\n }\n });\n\n const [bindResizeListener, unbindResizeListener] = useEventListener({\n target: 'window',\n type: 'resize',\n listener: () => {\n if (openState) {\n hide();\n }\n }\n });\n\n // effects\n React.useEffect(() => {\n if (searchTimeout.current) {\n clearTimeout(searchTimeout.current);\n searchTimeout.current = null;\n }\n }, []);\n\n React.useEffect(() => {\n setSearchingState(false);\n }, [props.options]);\n\n React.useEffect(() => {\n if (openState) {\n bindOutsideClickListener();\n bindResizeListener();\n } else {\n unbindOutsideClickListener();\n unbindResizeListener();\n }\n }, [openState, bindOutsideClickListener, unbindOutsideClickListener, bindResizeListener, unbindResizeListener]);\n\n React.useEffect(() => {\n if (openState && positionerEl) {\n if (anchorRef.current) {\n positionerEl.style.minWidth = getOuterWidth(anchorRef.current) + 'px';\n }\n\n if (focusOnShow.current) {\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n const focusedOptionIndex = listbox.state.focusedOptionIndex;\n const indexToFocus = focusedOptionIndex !== -1 ? focusedOptionIndex : listbox.findFirstFocusedOptionIndex();\n\n listbox.changeFocusedOptionIndex(new Event('focus') as unknown as React.KeyboardEvent, indexToFocus);\n focusOnShow.current = false;\n });\n });\n }\n }\n }, [openState, positionerEl]);\n\n return {\n state,\n listbox,\n presence,\n // refs\n inputRef,\n setAnchorRef,\n setPositionerRef,\n // methods\n onChange,\n onFocus,\n onBlur,\n onKeyDown,\n onTriggerClick,\n onClearClick,\n onOptionSelect,\n getFocusedOptionId,\n hasValue\n };\n }\n});\n","import type { useAutoCompleteProps } from '@primereact/types/shared/autocomplete';\n\nexport const defaultProps: useAutoCompleteProps = {\n value: undefined,\n defaultValue: undefined,\n inputValue: undefined,\n defaultInputValue: '',\n open: undefined,\n defaultOpen: undefined,\n options: [],\n optionKey: undefined,\n optionLabel: undefined,\n optionValue: undefined,\n optionDisabled: undefined,\n optionGroupLabel: undefined,\n optionGroupChildren: undefined,\n disabled: false,\n locale: undefined,\n autoOptionFocus: true,\n selectOnFocus: false,\n focusOnHover: true,\n minLength: 1,\n delay: 300,\n appendTo: 'body',\n forceSelection: false,\n completeOnFocus: false,\n dropdownMode: 'blank',\n onValueChange: undefined,\n onInputValueChange: undefined,\n onComplete: undefined,\n onOpenChange: undefined\n};\n"],"mappings":"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","names":["withHeadless","useListbox","useControlledState","useEventListener","usePresence","focus","getOuterWidth","isNotEmpty","React","defaultProps","useAutoComplete","withHeadless","defaultProps","props","_a","_b","onListboxValueChange","listbox","useListbox","event","valueState","setValueState","useControlledState","inputValueState","setInputValueState","openState","setOpenState","presence","usePresence","focusedState","setFocusedState","searchingState","setSearchingState","searchTimeout","focusOnShow","anchorEl","setAnchorEl","positionerEl","setPositionerEl","inputRef","anchorRef","positionerRef","setAnchorRef","node","setPositionerRef","state","search","query","source","show","hide","onChange","inputValue","hasValue","selectedOptionIndex","selectedOption","selectedLabel","onFocus","onBlur","applyForceSelection","onKeyDown","onArrowDownKey","onArrowUpKey","onEnterKey","focusedOptionIndex","onOptionSelect","onTriggerClick","focus","onClearClick","selectedValue","option","opt","optValue","optionLabel","isOptionMatched","value","matchedValue","matchedOption","matchedLabel","getFocusedOptionId","isNotEmpty","bindOutsideClickListener","unbindOutsideClickListener","useEventListener","positionerElement","anchorElement","bindResizeListener","unbindResizeListener","getOuterWidth","indexToFocus"]}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
export declare const useAutoComplete: (inProps?: unknown) => import("@primereact/types/core").HeadlessInstance<import("@primereact/types/shared/autocomplete").useAutoCompleteProps, unknown, {
|
|
3
|
+
state: {
|
|
4
|
+
value: unknown;
|
|
5
|
+
inputValue: string | undefined;
|
|
6
|
+
opened: boolean | undefined;
|
|
7
|
+
focused: boolean;
|
|
8
|
+
focusedOptionIndex: number;
|
|
9
|
+
searching: boolean;
|
|
10
|
+
anchorEl: HTMLElement | null;
|
|
11
|
+
positionerEl: HTMLDivElement | null;
|
|
12
|
+
};
|
|
13
|
+
listbox: import("@primereact/types/core").HeadlessInstance<import("@primereact/types/shared/listbox").useListboxProps, unknown, {
|
|
14
|
+
state: {
|
|
15
|
+
value: unknown;
|
|
16
|
+
focused: boolean;
|
|
17
|
+
focusedOptionIndex: number;
|
|
18
|
+
};
|
|
19
|
+
listRef: React.RefObject<HTMLElement | null>;
|
|
20
|
+
firstHiddenFocusableRef: React.RefObject<HTMLElement | null>;
|
|
21
|
+
lastHiddenFocusableRef: React.RefObject<HTMLElement | null>;
|
|
22
|
+
getOptions: () => unknown[];
|
|
23
|
+
getOptionId: (index: number) => string;
|
|
24
|
+
getOptionLabel: (option: unknown) => any;
|
|
25
|
+
getOptionValue: (option: unknown) => any;
|
|
26
|
+
isOptionDisabled: (option: unknown) => any;
|
|
27
|
+
isOptionGroup: (option: unknown) => boolean;
|
|
28
|
+
getOptionGroupLabel: (optionGroup: unknown) => any;
|
|
29
|
+
getOptionGroupChildren: (optionGroup: unknown) => any;
|
|
30
|
+
getFocusedOptionId: () => string | null;
|
|
31
|
+
getAriaSetSize: () => number;
|
|
32
|
+
getAriaPosInset: (index: number) => number;
|
|
33
|
+
onFirstHiddenFocus: () => void;
|
|
34
|
+
onLastHiddenFocus: (event: React.FocusEvent) => void;
|
|
35
|
+
onFocusOut: (event: React.FocusEvent) => void;
|
|
36
|
+
onListFocus: () => void;
|
|
37
|
+
onListBlur: () => void;
|
|
38
|
+
onListKeyDown: (event: React.KeyboardEvent) => void;
|
|
39
|
+
onArrowDownKey: (event: React.KeyboardEvent) => void;
|
|
40
|
+
onArrowUpKey: (event: React.KeyboardEvent) => void;
|
|
41
|
+
onArrowLeftKey: (event: React.KeyboardEvent, pressedInInputText?: boolean) => void;
|
|
42
|
+
onEnterKey: (event: React.KeyboardEvent) => void;
|
|
43
|
+
onOptionSelect: (event: React.MouseEvent | React.KeyboardEvent, option: unknown, index?: number) => void;
|
|
44
|
+
onOptionMouseDown: (event: React.MouseEvent, index: number) => void;
|
|
45
|
+
onOptionMouseMove: (event: React.MouseEvent, index: number) => void;
|
|
46
|
+
onOptionTouchEnd: () => void;
|
|
47
|
+
onFilterChange: () => void;
|
|
48
|
+
onFilterBlur: () => void;
|
|
49
|
+
onFilterKeyDown: (event: React.KeyboardEvent) => void;
|
|
50
|
+
isOptionMatched: (option: unknown) => any;
|
|
51
|
+
isValidOption: (option: unknown) => boolean;
|
|
52
|
+
isValidSelectedOption: (option: unknown) => boolean;
|
|
53
|
+
isSelected: (option: unknown) => boolean;
|
|
54
|
+
changeFocusedOptionIndex: (event: React.MouseEvent | React.KeyboardEvent, index?: number) => void;
|
|
55
|
+
findSelectedOptionIndex: () => number;
|
|
56
|
+
findFirstFocusedOptionIndex: () => number;
|
|
57
|
+
scrollInView: (index?: number) => void;
|
|
58
|
+
updateModel: (event: React.SyntheticEvent, value: unknown) => void;
|
|
59
|
+
autoUpdateModel: () => void;
|
|
60
|
+
equalityKey: string | undefined;
|
|
61
|
+
hasValue: () => boolean;
|
|
62
|
+
isEquals: (value1: unknown, value2: unknown) => boolean;
|
|
63
|
+
}>;
|
|
64
|
+
presence: {
|
|
65
|
+
present: boolean;
|
|
66
|
+
exiting: boolean;
|
|
67
|
+
mounted: boolean;
|
|
68
|
+
ref: React.RefObject<HTMLElement | null>;
|
|
69
|
+
};
|
|
70
|
+
inputRef: React.RefObject<{
|
|
71
|
+
elementRef: React.RefObject<HTMLInputElement>;
|
|
72
|
+
} | null>;
|
|
73
|
+
setAnchorRef: (node: HTMLElement | null) => void;
|
|
74
|
+
setPositionerRef: (node: HTMLDivElement | null) => void;
|
|
75
|
+
onChange: (event: React.ChangeEvent<HTMLInputElement>) => void;
|
|
76
|
+
onFocus: (event: React.FocusEvent<HTMLInputElement>) => void;
|
|
77
|
+
onBlur: (event: React.FocusEvent<HTMLInputElement>) => void;
|
|
78
|
+
onKeyDown: (event: React.KeyboardEvent<HTMLInputElement>) => void;
|
|
79
|
+
onTriggerClick: (event: React.MouseEvent<HTMLButtonElement>) => void;
|
|
80
|
+
onClearClick: (event: React.MouseEvent<HTMLButtonElement>) => void;
|
|
81
|
+
onOptionSelect: (event: {
|
|
82
|
+
originalEvent: React.SyntheticEvent;
|
|
83
|
+
value: unknown;
|
|
84
|
+
}) => void;
|
|
85
|
+
getFocusedOptionId: () => string | null;
|
|
86
|
+
hasValue: () => boolean;
|
|
87
|
+
}>;
|
|
File without changes
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{withHeadless as n}from"@primereact/core/headless";var r={onAction:void 0};var p=n({name:"useBreadcrumb",defaultProps:r,setup({props:e}){return{onAction:(o,t)=>{e.onAction&&(o.preventDefault(),e.onAction(t))}}}});export{r as defaultProps,p as useBreadcrumb};
|
|
2
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/breadcrumb/useBreadcrumb.ts","../../src/breadcrumb/useBreadcrumb.props.ts"],"sourcesContent":["import { withHeadless } from '@primereact/core/headless';\nimport { defaultProps } from './useBreadcrumb.props';\n\nexport const useBreadcrumb = withHeadless({\n name: 'useBreadcrumb',\n defaultProps,\n setup({ props }) {\n const onAction = (event: React.MouseEvent, key: string) => {\n if (props.onAction) {\n event.preventDefault();\n props.onAction(key);\n }\n };\n\n return { onAction };\n }\n});\n","import type { useBreadcrumbProps } from '@primereact/types/shared/breadcrumb';\n\nexport const defaultProps: useBreadcrumbProps = {\n onAction: undefined\n};\n"],"mappings":"AAAA,OAAS,gBAAAA,MAAoB,4BCEtB,IAAMC,EAAmC,CAC5C,SAAU,MACd,EDDO,IAAMC,EAAgBC,EAAa,CACtC,KAAM,gBACN,aAAAC,EACA,MAAM,CAAE,MAAAC,CAAM,EAAG,CAQb,MAAO,CAAE,SAPQ,CAACC,EAAyBC,IAAgB,CACnDF,EAAM,WACNC,EAAM,eAAe,EACrBD,EAAM,SAASE,CAAG,EAE1B,CAEkB,CACtB,CACJ,CAAC","names":["withHeadless","defaultProps","useBreadcrumb","withHeadless","defaultProps","props","event","key"]}
|
|
File without changes
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{withHeadless as te}from"@primereact/core/headless";import*as i from"react";var k={orientation:"horizontal",align:"start",loop:!1,snapType:"mandatory",spacing:16,autoSize:!1,slidesPerPage:1,slide:void 0,onSlideChange:void 0,defaultPage:0,page:void 0,onPageChange:void 0};var A="[data-item]";function ne(n,P){if(n.size!==P.size)return!1;for(let g of n)if(!P.has(g))return!1;return!0}var oe=te({name:"useCarousel",defaultProps:k,setup({props:n}){var W,F;let[P,g]=i.useState(!1),[H,B]=i.useState(!1),[O,U]=i.useState(!1),[l,_]=i.useState(new Set),[m,j]=i.useState((F=(W=n.page)!=null?W:n.defaultPage)!=null?F:0),a=i.useRef(null),f=i.useRef(new Set),z=i.useRef([]),I=i.useRef(!1),T=i.useRef(!1),y=i.useRef(null),E=i.useRef(null),b=i.useRef(null),R=i.useRef(null),h=i.useRef(null),M=i.useRef({x:0,y:0}),x=i.useRef(!1);function q(e){let t=b.current;t&&e.querySelectorAll(A).forEach(r=>t.observe(r))}function N(e){let t=E.current;t&&e.querySelectorAll(A).forEach(r=>t.observe(r))}function L(){let e=a.current;if(!e)return[];let t=n.orientation!=="vertical",r=t?e.clientWidth:e.clientHeight,s=Math.max(0,t?e.scrollWidth-r:e.scrollHeight-r),c=[];z.current=[],e.querySelectorAll(A).forEach(u=>{let v=t?u.offsetLeft:u.offsetTop,J=t?u.clientWidth:u.clientHeight,D=v;n.align==="center"?D=v-(r-J)/2:n.align==="end"&&(D=v-(r-J));let $=Math.max(0,Math.min(D,s));z.current.push($),c.push($)});let o=new Set(c.map(Number));ne(l,o)||(f.current=o,_(o))}function w(e){var t,r;if(!n.loop){let s=f.current.size||l.size,c=!1,o=!1;e===0&&(o=!0),e===s-1&&(c=!0),B(c),U(o)}j(e),(t=n.onPageChange)==null||t.call(n,{value:e}),(r=n.onSlideChange)==null||r.call(n,{value:e})}function S(){let e=a.current,t=f.current;if(!e||t.size===0)return;let r=n.orientation==="horizontal"?e.scrollLeft:e.scrollTop,s=Array.from(t).reduce((o,u)=>Math.abs(u-r)<Math.abs(o-r)?u:o,1/0),c=Array.from(t).indexOf(s);return w(c),c}function d(e,t=!1){let r=f.current;if(r.size===0)return;let s=e!=null?e:m,c=n.loop?(s+r.size)%r.size:Math.max(0,Math.min(s,r.size-1));w(c),C(Array.from(r)[c],t)}function G(){d(m+1)}function K(){d(m-1)}function C(e,t=!1){let r=a.current;r&&r.scrollTo({[n.orientation==="horizontal"?"left":"top"]:e,behavior:t?"instant":"smooth"})}function X(e,t=!1){let r=f.current,s=z.current;if(r.size===0||s.length===0)return;let c=Math.max(0,Math.min(e,s.length-1)),o=s[c];C(o,t);let u=Array.from(r).indexOf(o);w(u)}i.useLayoutEffect(()=>{let e=a.current;if(e)return b.current=new ResizeObserver(()=>{L();let t=S();d(t!=null?t:m,!0)}),b.current.observe(e),q(e),L(),()=>{var t;(t=b.current)==null||t.disconnect(),b.current=null}},[]),i.useLayoutEffect(()=>{var t;I.current||n.page!==void 0&&n.page!==null||n.slide!==void 0&&n.slide!==null||(f.current.size||l.size)===0||(I.current=!0,d((t=n.defaultPage)!=null?t:0,!0))},[l,n.page,n.defaultPage]),i.useLayoutEffect(()=>{if(n.page===void 0||n.page===null||n.slide!==void 0&&n.slide!==null||f.current.size===0&&l.size===0)return;let e=!T.current;T.current=!0,d(n.page,e)},[n.page,n.slide,l]),i.useLayoutEffect(()=>{if(n.slide===void 0||n.slide===null||f.current.size===0&&l.size===0)return;let e=!T.current;T.current=!0,X(n.slide,e)},[n.slide,l]),i.useEffect(()=>{let e=a.current;if(e)return y.current=new MutationObserver(t=>{t.forEach(()=>{L(),q(e),N(e),requestAnimationFrame(()=>{let r=S();d(r!=null?r:m,!0)})})}),y.current.observe(e,{childList:!0,subtree:!0}),()=>{var t;(t=y.current)==null||t.disconnect(),y.current=null}},[]),i.useEffect(()=>{let e=a.current;if(e)return E.current=new IntersectionObserver(t=>{t.forEach(r=>{r.isIntersecting?r.target.setAttribute("data-inview",""):r.target.removeAttribute("data-inview")})},{root:a.current,threshold:.6}),N(e),()=>{var t;(t=E.current)==null||t.disconnect(),E.current=null}},[]),i.useEffect(()=>{let e=a.current;if(!e)return;let t=()=>{R.current&&clearTimeout(R.current),R.current=setTimeout(()=>{S()},80)};return t(),e.addEventListener("scroll",t,{passive:!0}),()=>{R.current&&clearTimeout(R.current),R.current=null,e.removeEventListener("scroll",t)}},[]),i.useEffect(()=>()=>{h.current&&clearTimeout(h.current),h.current=null},[]);function Q(e){e.button===0&&e.pointerType!=="touch"&&(g(!0),M.current={x:e.clientX,y:e.clientY},x.current=!1)}function V(e){var o,u;let t=a.current;if(!P||!t||e.pointerType==="touch")return;let r=e.clientX-M.current.x,s=e.clientY-M.current.y;Math.abs(r)+Math.abs(s)<6||((u=(o=window.getSelection())==null?void 0:o.toString().length)!=null?u:0)>0||(e.currentTarget.setPointerCapture(e.pointerId),t.style.userSelect="none",x.current=!0,t.style.scrollSnapType="none",t.scrollBy({left:-e.movementX,top:-e.movementY,behavior:"instant"}),e.preventDefault())}function Z(e){if(g(!1),e.currentTarget.releasePointerCapture(e.pointerId),!x.current)return;let t=a.current;if(!t)return;t.style.userSelect="";let r=n.orientation==="horizontal"?t.scrollLeft:t.scrollTop,s=f.current,c=Array.from(s).reduce((u,v)=>Math.abs(v-r)<Math.abs(u-r)?v:u,1/0),o=Array.from(s).indexOf(c);requestAnimationFrame(()=>{c!==void 0&&d(o),requestAnimationFrame(()=>{t.style.scrollSnapType=Y()})})}function p(e){h.current&&clearTimeout(h.current),h.current=setTimeout(()=>{let t=n.orientation==="horizontal"?e.deltaX||e.deltaY:e.deltaY||e.deltaX;t>0&&H||t<0&&O||S()},80)}let Y=()=>{var t;return`${n.orientation==="vertical"?"y":"x"} ${(t=n.snapType)!=null?t:"mandatory"}`},ee=n.slidesPerPage&&n.slidesPerPage>0?n.slidesPerPage:1;return{state:{swiping:P,isNextDisabled:H,isPrevDisabled:O,snapPoints:l,page:m},contentRef:a,slidesPerPage:ee,onContentPointerDown:Q,onContentPointerMove:V,onContentPointerUp:Z,onContentWheel:p,next:G,prev:K,scrollToPage:d,scrollTo:C,scrollToSlide:X,setToClosest:S,resolveSnapType:Y}}});export{k as defaultProps,oe as useCarousel};
|
|
2
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/carousel/useCarousel.ts","../../src/carousel/useCarousel.props.ts"],"sourcesContent":["import { withHeadless } from '@primereact/core/headless';\nimport * as React from 'react';\nimport { defaultProps } from './useCarousel.props';\n\nconst ITEM_SELECTOR = '[data-item]';\n\nfunction areSetsEqual<T>(a: Set<T>, b: Set<T>) {\n if (a.size !== b.size) return false;\n\n for (const value of a) {\n if (!b.has(value)) return false;\n }\n\n return true;\n}\n\nexport const useCarousel = withHeadless({\n name: 'useCarousel',\n defaultProps,\n setup({ props }) {\n const [swiping, setSwiping] = React.useState(false);\n const [isNextDisabled, setIsNextDisabled] = React.useState(false);\n const [isPrevDisabled, setIsPrevDisabled] = React.useState(false);\n const [snapPoints, setSnapPoints] = React.useState<Set<number>>(new Set());\n const [pageState, setPageState] = React.useState(props.page ?? props.defaultPage ?? 0);\n\n const contentRef = React.useRef<HTMLDivElement>(null);\n const snapPointsRef = React.useRef<Set<number>>(new Set());\n const scrollSnapsRef = React.useRef<number[]>([]);\n const initialPageAppliedRef = React.useRef(false);\n const initialControlledScrollRef = React.useRef(false);\n\n const mutationObserverRef = React.useRef<MutationObserver>(null);\n const intersectionObserverRef = React.useRef<IntersectionObserver>(null);\n const resizeObserverRef = React.useRef<ResizeObserver>(null);\n const scrollTimeoutRef = React.useRef<NodeJS.Timeout | null>(null);\n const wheelTimeoutRef = React.useRef<NodeJS.Timeout | null>(null);\n\n const swipeStartPointRef = React.useRef<{ x: number; y: number }>({ x: 0, y: 0 });\n const isRealSwipeRef = React.useRef(false);\n\n function observeResizeItems(content: HTMLDivElement) {\n const observer = resizeObserverRef.current;\n\n if (!observer) return;\n\n content.querySelectorAll<HTMLElement>(ITEM_SELECTOR).forEach((item) => observer.observe(item));\n }\n\n function observeIntersectionItems(content: HTMLDivElement) {\n const observer = intersectionObserverRef.current;\n\n if (!observer) return;\n\n content.querySelectorAll<HTMLElement>(ITEM_SELECTOR).forEach((item) => observer.observe(item));\n }\n\n function computeSnapPoints() {\n const content = contentRef.current;\n\n if (!content) return [];\n\n const isHorizontal = props.orientation !== 'vertical';\n const trackSize = isHorizontal ? content.clientWidth : content.clientHeight;\n const maxOffset = Math.max(0, isHorizontal ? content.scrollWidth - trackSize : content.scrollHeight - trackSize);\n const snaps: number[] = [];\n\n scrollSnapsRef.current = [];\n\n content.querySelectorAll<HTMLElement>(ITEM_SELECTOR).forEach((item) => {\n const offset = isHorizontal ? item.offsetLeft : item.offsetTop;\n const size = isHorizontal ? item.clientWidth : item.clientHeight;\n\n let snapPoint = offset;\n\n if (props.align === 'center') {\n snapPoint = offset - (trackSize - size) / 2;\n } else if (props.align === 'end') {\n snapPoint = offset - (trackSize - size);\n }\n\n const clamped = Math.max(0, Math.min(snapPoint, maxOffset));\n\n scrollSnapsRef.current.push(clamped);\n\n snaps.push(clamped);\n });\n\n const newSnapPoints = new Set(snaps.map(Number));\n\n if (areSetsEqual(snapPoints, newSnapPoints)) return;\n\n snapPointsRef.current = newSnapPoints;\n setSnapPoints(newSnapPoints);\n }\n\n function setPage(page: number) {\n if (!props.loop) {\n const size = snapPointsRef.current.size || snapPoints.size;\n let isNextDisabled = false;\n let isPrevDisabled = false;\n\n if (page === 0) {\n isPrevDisabled = true;\n }\n\n if (page === size - 1) {\n isNextDisabled = true;\n }\n\n setIsNextDisabled(isNextDisabled);\n setIsPrevDisabled(isPrevDisabled);\n }\n\n setPageState(page);\n\n props.onPageChange?.({ value: page });\n props.onSlideChange?.({ value: page });\n }\n\n function setToClosest() {\n const content = contentRef.current;\n\n const points = snapPointsRef.current;\n\n if (!content || points.size === 0) return;\n\n const scrollPos = props.orientation === 'horizontal' ? content.scrollLeft : content.scrollTop;\n\n const closestSnapPoint = Array.from(points).reduce((closest, point) => {\n return Math.abs(point - scrollPos) < Math.abs(closest - scrollPos) ? point : closest;\n }, Infinity);\n\n const index = Array.from(points).indexOf(closestSnapPoint);\n\n setPage(index);\n\n return index;\n }\n\n function scrollToPage(page?: number, instant = false) {\n const points = snapPointsRef.current;\n\n if (points.size === 0) return;\n\n const target = page ?? pageState;\n const clampedPage = props.loop ? (target + points.size) % points.size : Math.max(0, Math.min(target, points.size - 1));\n\n setPage(clampedPage);\n scrollTo(Array.from(points)[clampedPage], instant);\n }\n\n function next() {\n scrollToPage(pageState + 1);\n }\n\n function prev() {\n scrollToPage(pageState - 1);\n }\n\n function scrollTo(snapPoint: number, instant = false) {\n const content = contentRef.current;\n\n if (!content) return;\n\n content.scrollTo({\n [props.orientation === 'horizontal' ? 'left' : 'top']: snapPoint,\n behavior: instant ? 'instant' : 'smooth'\n });\n }\n\n function scrollToSlide(slide: number, instant = false) {\n const points = snapPointsRef.current;\n const snaps = scrollSnapsRef.current;\n\n if (points.size === 0 || snaps.length === 0) return;\n\n const clampedSlide = Math.max(0, Math.min(slide, snaps.length - 1));\n\n const snap = snaps[clampedSlide];\n\n scrollTo(snap, instant);\n\n const page = Array.from(points).indexOf(snap);\n\n setPage(page);\n }\n\n React.useLayoutEffect(() => {\n const content = contentRef.current;\n\n if (!content) return;\n\n resizeObserverRef.current = new ResizeObserver(() => {\n computeSnapPoints();\n const closest = setToClosest();\n\n scrollToPage(closest ?? pageState, true);\n });\n\n resizeObserverRef.current.observe(content);\n observeResizeItems(content);\n\n computeSnapPoints();\n\n return () => {\n resizeObserverRef.current?.disconnect();\n resizeObserverRef.current = null;\n };\n }, []);\n\n React.useLayoutEffect(() => {\n if (initialPageAppliedRef.current) return;\n\n if (props.page !== undefined && props.page !== null) return;\n\n if (props.slide !== undefined && props.slide !== null) return;\n\n const size = snapPointsRef.current.size || snapPoints.size;\n\n if (size === 0) return;\n\n initialPageAppliedRef.current = true;\n scrollToPage(props.defaultPage ?? 0, true);\n }, [snapPoints, props.page, props.defaultPage]);\n\n React.useLayoutEffect(() => {\n if (props.page === undefined || props.page === null) return;\n\n if (props.slide !== undefined && props.slide !== null) return;\n\n if (snapPointsRef.current.size === 0 && snapPoints.size === 0) return;\n\n const instant = !initialControlledScrollRef.current;\n\n initialControlledScrollRef.current = true;\n scrollToPage(props.page, instant);\n }, [props.page, props.slide, snapPoints]);\n\n React.useLayoutEffect(() => {\n if (props.slide === undefined || props.slide === null) return;\n\n if (snapPointsRef.current.size === 0 && snapPoints.size === 0) return;\n\n const instant = !initialControlledScrollRef.current;\n\n initialControlledScrollRef.current = true;\n scrollToSlide(props.slide, instant);\n }, [props.slide, snapPoints]);\n\n React.useEffect(() => {\n const content = contentRef.current;\n\n if (!content) return;\n\n mutationObserverRef.current = new MutationObserver((mutations) => {\n mutations.forEach(() => {\n computeSnapPoints();\n observeResizeItems(content);\n observeIntersectionItems(content);\n requestAnimationFrame(() => {\n const closest = setToClosest();\n\n scrollToPage(closest ?? pageState, true);\n });\n });\n });\n\n mutationObserverRef.current.observe(content, { childList: true, subtree: true });\n\n return () => {\n mutationObserverRef.current?.disconnect();\n mutationObserverRef.current = null;\n };\n }, []);\n\n React.useEffect(() => {\n const content = contentRef.current;\n\n if (!content) return;\n\n intersectionObserverRef.current = new IntersectionObserver(\n (entries) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) entry.target.setAttribute('data-inview', '');\n else entry.target.removeAttribute('data-inview');\n });\n },\n {\n root: contentRef.current,\n threshold: 0.6\n }\n );\n\n observeIntersectionItems(content);\n\n return () => {\n intersectionObserverRef.current?.disconnect();\n intersectionObserverRef.current = null;\n };\n }, []);\n\n React.useEffect(() => {\n const content = contentRef.current;\n\n if (!content) return;\n\n const onScroll = () => {\n if (scrollTimeoutRef.current) clearTimeout(scrollTimeoutRef.current);\n\n scrollTimeoutRef.current = setTimeout(() => {\n setToClosest();\n }, 80);\n };\n\n onScroll();\n\n content.addEventListener('scroll', onScroll, { passive: true });\n\n return () => {\n if (scrollTimeoutRef.current) clearTimeout(scrollTimeoutRef.current);\n\n scrollTimeoutRef.current = null;\n\n content.removeEventListener('scroll', onScroll);\n };\n }, []);\n\n React.useEffect(() => {\n return () => {\n if (wheelTimeoutRef.current) clearTimeout(wheelTimeoutRef.current);\n\n wheelTimeoutRef.current = null;\n };\n }, []);\n\n function onContentPointerDown(e: React.PointerEvent<HTMLDivElement>) {\n if (e.button !== 0) return;\n\n if (e.pointerType === 'touch') return;\n\n setSwiping(true);\n swipeStartPointRef.current = { x: e.clientX, y: e.clientY };\n isRealSwipeRef.current = false;\n }\n\n function onContentPointerMove(e: React.PointerEvent<HTMLDivElement>) {\n const content = contentRef.current;\n\n if (!swiping || !content || e.pointerType === 'touch') return;\n\n const deltaX = e.clientX - swipeStartPointRef.current.x;\n const deltaY = e.clientY - swipeStartPointRef.current.y;\n const distance = Math.abs(deltaX) + Math.abs(deltaY);\n\n if (distance < 6) return;\n\n if ((window.getSelection()?.toString().length ?? 0) > 0) return;\n\n e.currentTarget.setPointerCapture(e.pointerId);\n\n content.style.userSelect = 'none';\n isRealSwipeRef.current = true;\n content.style.scrollSnapType = 'none';\n content.scrollBy({\n left: -e.movementX,\n top: -e.movementY,\n behavior: 'instant'\n });\n\n e.preventDefault();\n }\n\n function onContentPointerUp(e: React.PointerEvent<HTMLDivElement>) {\n setSwiping(false);\n e.currentTarget.releasePointerCapture(e.pointerId);\n\n if (!isRealSwipeRef.current) return;\n\n const content = contentRef.current;\n\n if (!content) return;\n\n content.style.userSelect = '';\n\n const scrollPos = props.orientation === 'horizontal' ? content.scrollLeft : content.scrollTop;\n const snapPoints = snapPointsRef.current;\n\n const closestSnapPoint = Array.from(snapPoints).reduce((closest, point) => {\n return Math.abs(point - scrollPos) < Math.abs(closest - scrollPos) ? point : closest;\n }, Infinity);\n\n const index = Array.from(snapPoints).indexOf(closestSnapPoint);\n\n requestAnimationFrame(() => {\n if (closestSnapPoint !== undefined) scrollToPage(index);\n\n requestAnimationFrame(() => {\n content.style.scrollSnapType = resolveSnapType();\n });\n });\n }\n\n function onContentWheel(e: React.WheelEvent<HTMLDivElement>) {\n if (wheelTimeoutRef.current) clearTimeout(wheelTimeoutRef.current);\n\n wheelTimeoutRef.current = setTimeout(() => {\n const primaryDelta = props.orientation === 'horizontal' ? e.deltaX || e.deltaY : e.deltaY || e.deltaX;\n\n if (primaryDelta > 0 && isNextDisabled) {\n return;\n }\n\n if (primaryDelta < 0 && isPrevDisabled) {\n return;\n }\n\n setToClosest();\n }, 80);\n }\n\n const resolveSnapType = () => {\n const axis = props.orientation === 'vertical' ? 'y' : 'x';\n\n return `${axis} ${props.snapType ?? 'mandatory'}`;\n };\n\n const slidesPerPage = props.slidesPerPage && props.slidesPerPage > 0 ? props.slidesPerPage : 1;\n\n const state = {\n swiping,\n isNextDisabled,\n isPrevDisabled,\n snapPoints,\n page: pageState\n };\n\n return {\n state,\n contentRef,\n slidesPerPage,\n onContentPointerDown,\n onContentPointerMove,\n onContentPointerUp,\n onContentWheel,\n next,\n prev,\n scrollToPage,\n scrollTo,\n scrollToSlide,\n setToClosest,\n resolveSnapType\n };\n }\n});\n","import type { useCarouselProps } from '@primereact/types/shared/carousel';\n\nexport const defaultProps: useCarouselProps = {\n orientation: 'horizontal',\n align: 'start',\n loop: false,\n snapType: 'mandatory',\n spacing: 16,\n autoSize: false,\n slidesPerPage: 1,\n slide: undefined,\n onSlideChange: undefined,\n defaultPage: 0,\n page: undefined,\n onPageChange: undefined\n};\n"],"mappings":"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","names":["withHeadless","React","defaultProps","ITEM_SELECTOR","areSetsEqual","a","b","value","useCarousel","withHeadless","defaultProps","props","_a","_b","swiping","setSwiping","isNextDisabled","setIsNextDisabled","isPrevDisabled","setIsPrevDisabled","snapPoints","setSnapPoints","pageState","setPageState","contentRef","snapPointsRef","scrollSnapsRef","initialPageAppliedRef","initialControlledScrollRef","mutationObserverRef","intersectionObserverRef","resizeObserverRef","scrollTimeoutRef","wheelTimeoutRef","swipeStartPointRef","isRealSwipeRef","observeResizeItems","content","observer","item","observeIntersectionItems","computeSnapPoints","isHorizontal","trackSize","maxOffset","snaps","offset","size","snapPoint","clamped","newSnapPoints","setPage","page","setToClosest","points","scrollPos","closestSnapPoint","closest","point","index","scrollToPage","instant","target","clampedPage","scrollTo","next","prev","scrollToSlide","slide","clampedSlide","snap","mutations","entries","entry","onScroll","onContentPointerDown","onContentPointerMove","deltaX","deltaY","onContentPointerUp","resolveSnapType","onContentWheel","primaryDelta","slidesPerPage"]}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
export declare const useCarousel: (inProps?: unknown) => import("@primereact/types/core").HeadlessInstance<import("@primereact/types/shared/carousel").useCarouselProps, unknown, {
|
|
3
|
+
state: {
|
|
4
|
+
swiping: boolean;
|
|
5
|
+
isNextDisabled: boolean;
|
|
6
|
+
isPrevDisabled: boolean;
|
|
7
|
+
snapPoints: Set<number>;
|
|
8
|
+
page: number;
|
|
9
|
+
};
|
|
10
|
+
contentRef: React.RefObject<HTMLDivElement | null>;
|
|
11
|
+
slidesPerPage: number;
|
|
12
|
+
onContentPointerDown: (e: React.PointerEvent<HTMLDivElement>) => void;
|
|
13
|
+
onContentPointerMove: (e: React.PointerEvent<HTMLDivElement>) => void;
|
|
14
|
+
onContentPointerUp: (e: React.PointerEvent<HTMLDivElement>) => void;
|
|
15
|
+
onContentWheel: (e: React.WheelEvent<HTMLDivElement>) => void;
|
|
16
|
+
next: () => void;
|
|
17
|
+
prev: () => void;
|
|
18
|
+
scrollToPage: (page?: number, instant?: boolean) => void;
|
|
19
|
+
scrollTo: (snapPoint: number, instant?: boolean) => void;
|
|
20
|
+
scrollToSlide: (slide: number, instant?: boolean) => void;
|
|
21
|
+
setToClosest: () => number | undefined;
|
|
22
|
+
resolveSnapType: () => string;
|
|
23
|
+
}>;
|
|
File without changes
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{withHeadless as c}from"@primereact/core/headless";import{useControlledState as d}from"@primereact/hooks/use-controlled-state";import*as s from"react";var t={value:void 0,defaultValue:void 0,onValueChange:void 0};var x=c({name:"useCheckboxGroup",defaultProps:t,setup({props:u}){let[e,o]=d({value:u.value,defaultValue:u.defaultValue,onChange:u.onValueChange}),l={value:e},n=s.useCallback(a=>{let r=a.checked?[...e||[],a.value]:(e||[]).filter(p=>p!==a.value);o==null||o([r,{originalEvent:a.originalEvent,value:r}])},[e,o]);return{state:l,updateChange:n}}});export{t as defaultProps,x as useCheckboxGroup};
|
|
2
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/checkboxgroup/useCheckboxGroup.ts","../../src/checkboxgroup/useCheckboxGroup.props.ts"],"sourcesContent":["import { withHeadless } from '@primereact/core/headless';\nimport { useControlledState } from '@primereact/hooks/use-controlled-state';\nimport { useCheckboxGroupExposes } from '@primereact/types/shared/checkboxgroup';\nimport * as React from 'react';\nimport { defaultProps } from './useCheckboxGroup.props';\n\nexport const useCheckboxGroup = withHeadless({\n name: 'useCheckboxGroup',\n defaultProps,\n setup({ props }) {\n const [valueState, setValueState] = useControlledState({\n value: props.value,\n defaultValue: props.defaultValue,\n onChange: props.onValueChange\n });\n\n const state = {\n value: valueState\n };\n\n const updateChange = React.useCallback(\n (event: Parameters<useCheckboxGroupExposes['updateChange']>[0]) => {\n const newValue = event.checked ? [...(valueState || []), event.value] : (valueState || []).filter((v) => v !== event.value);\n\n setValueState?.([newValue, { originalEvent: event.originalEvent, value: newValue }]);\n },\n [valueState, setValueState]\n );\n\n return {\n state,\n // methods\n updateChange\n };\n }\n});\n","import type { useCheckboxGroupProps } from '@primereact/types/shared/checkboxgroup';\n\nexport const defaultProps: useCheckboxGroupProps = {\n value: undefined,\n defaultValue: undefined,\n onValueChange: undefined\n};\n"],"mappings":"AAAA,OAAS,gBAAAA,MAAoB,4BAC7B,OAAS,sBAAAC,MAA0B,yCAEnC,UAAYC,MAAW,QCDhB,IAAMC,EAAsC,CAC/C,MAAO,OACP,aAAc,OACd,cAAe,MACnB,EDAO,IAAMC,EAAmBC,EAAa,CACzC,KAAM,mBACN,aAAAC,EACA,MAAM,CAAE,MAAAC,CAAM,EAAG,CACb,GAAM,CAACC,EAAYC,CAAa,EAAIC,EAAmB,CACnD,MAAOH,EAAM,MACb,aAAcA,EAAM,aACpB,SAAUA,EAAM,aACpB,CAAC,EAEKI,EAAQ,CACV,MAAOH,CACX,EAEMI,EAAqB,cACtBC,GAAkE,CAC/D,IAAMC,EAAWD,EAAM,QAAU,CAAC,GAAIL,GAAc,CAAC,EAAIK,EAAM,KAAK,GAAKL,GAAc,CAAC,GAAG,OAAQO,GAAMA,IAAMF,EAAM,KAAK,EAE1HJ,GAAA,MAAAA,EAAgB,CAACK,EAAU,CAAE,cAAeD,EAAM,cAAe,MAAOC,CAAS,CAAC,EACtF,EACA,CAACN,EAAYC,CAAa,CAC9B,EAEA,MAAO,CACH,MAAAE,EAEA,aAAAC,CACJ,CACJ,CACJ,CAAC","names":["withHeadless","useControlledState","React","defaultProps","useCheckboxGroup","withHeadless","defaultProps","props","valueState","setValueState","useControlledState","state","updateChange","event","newValue","v"]}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { useCheckboxGroupExposes } from '@primereact/types/shared/checkboxgroup';
|
|
2
|
+
export declare const useCheckboxGroup: (inProps?: unknown) => import("@primereact/types/core").HeadlessInstance<import("@primereact/types/shared/checkboxgroup").useCheckboxGroupProps, unknown, {
|
|
3
|
+
state: {
|
|
4
|
+
value: unknown[] | undefined;
|
|
5
|
+
};
|
|
6
|
+
updateChange: (event: Parameters<useCheckboxGroupExposes["updateChange"]>[0]) => void;
|
|
7
|
+
}>;
|
|
File without changes
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{withHeadless as c}from"@primereact/core/headless";import{useControlledState as d}from"@primereact/hooks/use-controlled-state";var u={open:void 0,defaultOpen:!0,onOpen:void 0,onClose:void 0,onOpenChange:void 0};var g=c({name:"useCollapsible",defaultProps:u,setup({props:e}){var s;let[o,l]=d({value:e.open,defaultValue:(s=e.defaultOpen)!=null?s:!1,onChange:e.onOpenChange}),f={open:o},r=t=>{o?i(t):a(t)},a=t=>{var n;l([!0,{originalEvent:t,value:!0}]),(n=e.onOpen)==null||n.call(e,t)},i=t=>{var n;l([!1,{originalEvent:t,value:!1}]),(n=e.onClose)==null||n.call(e,t)};return{state:f,open:a,close:i,toggle:r}}});export{u as defaultProps,g as useCollapsible};
|
|
2
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/collapsible/useCollapsible.ts","../../src/collapsible/useCollapsible.props.ts"],"sourcesContent":["import { withHeadless } from '@primereact/core/headless';\nimport { useControlledState } from '@primereact/hooks/use-controlled-state';\nimport * as React from 'react';\nimport { defaultProps } from './useCollapsible.props';\n\nexport const useCollapsible = withHeadless({\n name: 'useCollapsible',\n defaultProps,\n setup({ props }) {\n const [openState, setOpenState] = useControlledState({\n value: props.open,\n defaultValue: props.defaultOpen ?? false,\n onChange: props.onOpenChange\n });\n\n const state = {\n open: openState\n };\n\n // methods\n const toggle = (event?: React.SyntheticEvent) => {\n if (openState) {\n close(event);\n } else {\n open(event);\n }\n };\n\n const open = (event?: React.SyntheticEvent) => {\n setOpenState([\n true,\n {\n originalEvent: event,\n value: true\n }\n ]);\n\n props.onOpen?.(event);\n };\n\n const close = (event?: React.SyntheticEvent) => {\n setOpenState([\n false,\n {\n originalEvent: event,\n value: false\n }\n ]);\n\n props.onClose?.(event);\n };\n\n return {\n state,\n // methods\n open,\n close,\n toggle\n };\n }\n});\n","import type { useCollapsibleProps } from '@primereact/types/shared/collapsible';\n\nexport const defaultProps: useCollapsibleProps = {\n open: undefined,\n defaultOpen: true,\n onOpen: undefined,\n onClose: undefined,\n onOpenChange: undefined\n};\n"],"mappings":"AAAA,OAAS,gBAAAA,MAAoB,4BAC7B,OAAS,sBAAAC,MAA0B,yCCC5B,IAAMC,EAAoC,CAC7C,KAAM,OACN,YAAa,GACb,OAAQ,OACR,QAAS,OACT,aAAc,MAClB,EDHO,IAAMC,EAAiBC,EAAa,CACvC,KAAM,iBACN,aAAAC,EACA,MAAM,CAAE,MAAAC,CAAM,EAAG,CARrB,IAAAC,EASQ,GAAM,CAACC,EAAWC,CAAY,EAAIC,EAAmB,CACjD,MAAOJ,EAAM,KACb,cAAcC,EAAAD,EAAM,cAAN,KAAAC,EAAqB,GACnC,SAAUD,EAAM,YACpB,CAAC,EAEKK,EAAQ,CACV,KAAMH,CACV,EAGMI,EAAUC,GAAiC,CACzCL,EACAM,EAAMD,CAAK,EAEXE,EAAKF,CAAK,CAElB,EAEME,EAAQF,GAAiC,CA5BvD,IAAAN,EA6BYE,EAAa,CACT,GACA,CACI,cAAeI,EACf,MAAO,EACX,CACJ,CAAC,GAEDN,EAAAD,EAAM,SAAN,MAAAC,EAAA,KAAAD,EAAeO,EACnB,EAEMC,EAASD,GAAiC,CAxCxD,IAAAN,EAyCYE,EAAa,CACT,GACA,CACI,cAAeI,EACf,MAAO,EACX,CACJ,CAAC,GAEDN,EAAAD,EAAM,UAAN,MAAAC,EAAA,KAAAD,EAAgBO,EACpB,EAEA,MAAO,CACH,MAAAF,EAEA,KAAAI,EACA,MAAAD,EACA,OAAAF,CACJ,CACJ,CACJ,CAAC","names":["withHeadless","useControlledState","defaultProps","useCollapsible","withHeadless","defaultProps","props","_a","openState","setOpenState","useControlledState","state","toggle","event","close","open"]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
export declare const useCollapsible: (inProps?: unknown) => import("@primereact/types/core").HeadlessInstance<import("@primereact/types/shared/collapsible").useCollapsibleProps, unknown, {
|
|
3
|
+
state: {
|
|
4
|
+
open: boolean | undefined;
|
|
5
|
+
};
|
|
6
|
+
open: (event?: React.SyntheticEvent) => void;
|
|
7
|
+
close: (event?: React.SyntheticEvent) => void;
|
|
8
|
+
toggle: (event?: React.SyntheticEvent) => void;
|
|
9
|
+
}>;
|
|
File without changes
|