@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
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
export declare const useDialog: (inProps?: unknown) => import("@primereact/types/core").HeadlessInstance<import("@primereact/types/shared/dialog").useDialogProps, unknown, {
|
|
3
|
+
state: {
|
|
4
|
+
opened: boolean;
|
|
5
|
+
maximized: boolean;
|
|
6
|
+
};
|
|
7
|
+
maskRef: React.RefObject<{
|
|
8
|
+
elementRef: React.RefObject<HTMLDivElement | null>;
|
|
9
|
+
} | null>;
|
|
10
|
+
rootRef: React.RefObject<{
|
|
11
|
+
elementRef: React.RefObject<HTMLDivElement>;
|
|
12
|
+
} | null>;
|
|
13
|
+
maximizableButtonRef: React.RefObject<{
|
|
14
|
+
elementRef: React.RefObject<HTMLButtonElement>;
|
|
15
|
+
} | null>;
|
|
16
|
+
closeButtonRef: React.RefObject<{
|
|
17
|
+
elementRef: React.RefObject<HTMLButtonElement>;
|
|
18
|
+
} | null>;
|
|
19
|
+
onOpenStateChange: () => void;
|
|
20
|
+
close: () => void;
|
|
21
|
+
toggleMaximized: () => void;
|
|
22
|
+
onMaskMouseDown: (event: React.MouseEvent) => void;
|
|
23
|
+
onMaskMouseUp: () => void;
|
|
24
|
+
onDragStart: (event: React.MouseEvent) => void;
|
|
25
|
+
onMaskEnter: () => void;
|
|
26
|
+
onEnter: () => void;
|
|
27
|
+
onAfterEnter: () => void;
|
|
28
|
+
onLeave: () => void;
|
|
29
|
+
onAfterLeave: () => void;
|
|
30
|
+
}>;
|
|
File without changes
|
package/drawer/index.mjs
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{withHeadless as N}from"@primereact/core/headless";import{useEventListener as k,useUnmountEffect as U}from"@primereact/hooks";import{useControlledState as z}from"@primereact/hooks/use-controlled-state";import{$dt as D}from"@primeuix/styled";import{blockBodyScroll as A,focus as w,unblockBodyScroll as F,ZIndex as a}from"@primeuix/utils";import*as c from"react";var v={open:void 0,defaultOpen:void 0,modal:!0,blockScroll:!1,dismissable:!0,baseZIndex:0,autoZIndex:!0,appendTo:"body",onOpenChange:void 0};var $=N({name:"useDrawer",defaultProps:v,setup:({props:n,elementRef:d,$primereact:R})=>{var M;let[s,b]=z({value:n.open,defaultValue:(M=n.defaultOpen)!=null?M:!1,onChange:n.onOpenChange}),r=c.useRef(null),l=c.useRef(null),m=c.useRef(null),E=c.useRef(null),i=c.useRef(null),L={opened:s!=null?s:!1};U(()=>{var e,t;n.autoZIndex&&(r.current&&a.clear((e=r.current)==null?void 0:e.elementRef.current),l.current&&a.clear((t=l.current)==null?void 0:t.elementRef.current))});let f=()=>{b([!1,{value:!1}])},x=()=>{let e=!s;b([e,{value:e}])},T=()=>{var e,t,o,u;n.autoZIndex&&((e=r.current)!=null&&e.elementRef.current)&&a.set("modal",r.current.elementRef.current,n.baseZIndex+((u=(o=(t=R.config)==null?void 0:t.zIndex)==null?void 0:o.modal)!=null?u:1100))},g=()=>{var e,t,o,u;i.current=document.activeElement,B(),Z(),n.autoZIndex&&((e=l.current)!=null&&e.elementRef.current)&&a.set("modal",l.current.elementRef.current,n.baseZIndex+((u=(o=(t=R.config)==null?void 0:t.zIndex)==null?void 0:o.modal)!=null?u:1100))},y=()=>{I()},O=()=>{w(i.current),i.current=null},H=()=>{var e,t;h(),P(),n.autoZIndex&&((e=r.current)!=null&&e.elementRef.current)&&a.clear((t=r.current)==null?void 0:t.elementRef.current)},I=()=>{var t,o;let e=S((o=(t=l.current)==null?void 0:t.elementRef.current)!=null?o:null);e||m.current&&(e=m.current.elementRef.current),e&&w(e)},S=e=>e&&e.querySelector("[autoFocus]"),[Z,h]=k({type:"keydown",listener:e=>j(e)}),[C,p]=k({type:"click",listener:e=>{K(e)&&f()}}),K=e=>d.current&&!d.current.contains(e.target),B=()=>{n.dismissable&&!n.modal&&C(),n.blockScroll&&A({variableName:D("scrollbar.width").name})},P=()=>{p(),n.blockScroll&&F({variableName:D("scrollbar.width").name})},j=e=>{e.code==="Escape"&&f()};return{state:L,maskRef:r,rootRef:l,closeButtonRef:m,close:f,onOpenStateChange:x,onMaskMouseDown:e=>{E.current=e.target},onMaskMouseUp:()=>{var e;n.dismissable&&n.modal&&((e=r.current)==null?void 0:e.elementRef.current)===E.current&&f()},onMaskEnter:T,onEnter:g,onAfterEnter:y,onLeave:O,onAfterLeave:H}}});export{v as defaultProps,$ as useDrawer};
|
|
2
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/drawer/useDrawer.ts","../../src/drawer/useDrawer.props.ts"],"sourcesContent":["import { withHeadless } from '@primereact/core/headless';\nimport { useEventListener, useUnmountEffect } from '@primereact/hooks';\nimport { useControlledState } from '@primereact/hooks/use-controlled-state';\nimport { $dt } from '@primeuix/styled';\nimport { blockBodyScroll, focus, unblockBodyScroll, ZIndex } from '@primeuix/utils';\nimport * as React from 'react';\nimport { defaultProps } from './useDrawer.props';\n\nexport const useDrawer = withHeadless({\n name: 'useDrawer',\n defaultProps,\n setup: ({ props, elementRef, $primereact }) => {\n const [openState, setOpenState] = useControlledState({\n value: props.open,\n defaultValue: props.defaultOpen ?? false,\n onChange: props.onOpenChange\n });\n const maskRef = React.useRef<{ elementRef: React.RefObject<HTMLDivElement | null> } | null>(null);\n const rootRef = React.useRef<{ elementRef: React.RefObject<HTMLDivElement> } | null>(null);\n const closeButtonRef = React.useRef<{ elementRef: React.RefObject<HTMLButtonElement> } | null>(null);\n const maskMouseDownTarget = React.useRef<EventTarget | null>(null);\n const target = React.useRef<HTMLElement | null>(null);\n\n const state = {\n opened: openState ?? false\n };\n\n useUnmountEffect(() => {\n if (props.autoZIndex) {\n if (maskRef.current) {\n ZIndex.clear(maskRef.current?.elementRef.current as HTMLDivElement);\n }\n\n if (rootRef.current) {\n ZIndex.clear(rootRef.current?.elementRef.current as HTMLDivElement);\n }\n }\n });\n\n //methods\n const close = () => {\n setOpenState([false, { value: false }]);\n };\n\n const onOpenStateChange = () => {\n const newOpenState = !openState;\n\n setOpenState([newOpenState, { value: newOpenState }]);\n };\n\n const onMaskEnter = () => {\n if (props.autoZIndex && maskRef.current?.elementRef.current) {\n ZIndex.set('modal', maskRef.current.elementRef.current, (props.baseZIndex as number) + ($primereact.config?.zIndex?.modal ?? 1100));\n }\n };\n\n const onEnter = () => {\n target.current = document.activeElement as HTMLElement;\n enableDocumentSettings();\n bindDocumentKeyDownListener();\n\n if (props.autoZIndex && rootRef.current?.elementRef.current) {\n ZIndex.set('modal', rootRef.current.elementRef.current, (props.baseZIndex as number) + ($primereact.config?.zIndex?.modal ?? 1100));\n }\n };\n\n const onAfterEnter = () => {\n focusElement();\n };\n\n const onLeave = () => {\n focus(target.current as HTMLElement);\n target.current = null;\n };\n\n const onAfterLeave = () => {\n unbindDocumentKeyDownListener();\n disableDocumentSettings();\n\n if (props.autoZIndex && maskRef.current?.elementRef.current) {\n ZIndex.clear(maskRef.current?.elementRef.current as HTMLDivElement);\n }\n };\n\n const focusElement = () => {\n let focusTarget = findFocusableElement(rootRef.current?.elementRef.current ?? null);\n\n if (!focusTarget) {\n if (closeButtonRef.current) {\n focusTarget = closeButtonRef.current.elementRef.current;\n }\n }\n\n if (focusTarget) {\n focus(focusTarget as HTMLElement);\n }\n };\n\n const findFocusableElement = (container: HTMLElement | null) => {\n return container && container.querySelector('[autoFocus]');\n };\n\n const [bindDocumentKeyDownListener, unbindDocumentKeyDownListener] = useEventListener({\n type: 'keydown',\n listener: (event: Event) => onKeyDown(event as unknown as React.KeyboardEvent)\n });\n\n const [bindOutsideClickListener, unbindOutsideClickListener] = useEventListener({\n type: 'click',\n listener: (event) => {\n if (isOutsideClicked(event as unknown as React.MouseEvent)) {\n close();\n }\n }\n });\n\n const isOutsideClicked = (event: React.MouseEvent) => {\n return elementRef.current && !elementRef.current.contains(event.target as Node);\n };\n\n const enableDocumentSettings = () => {\n if (props.dismissable && !props.modal) {\n bindOutsideClickListener();\n }\n\n if (props.blockScroll) {\n blockBodyScroll({ variableName: $dt('scrollbar.width').name });\n }\n };\n\n const disableDocumentSettings = () => {\n unbindOutsideClickListener();\n\n if (props.blockScroll) {\n unblockBodyScroll({ variableName: $dt('scrollbar.width').name });\n }\n };\n\n const onKeyDown = (event: React.KeyboardEvent): void => {\n if (event.code === 'Escape') {\n close();\n }\n };\n\n const onMaskMouseDown = (event: React.MouseEvent) => {\n maskMouseDownTarget.current = event.target;\n };\n\n const onMaskMouseUp = () => {\n if (props.dismissable && props.modal && maskRef.current?.elementRef.current === maskMouseDownTarget.current) {\n close();\n }\n };\n\n return {\n state,\n // refs\n maskRef,\n rootRef,\n closeButtonRef,\n // methods\n close,\n onOpenStateChange,\n onMaskMouseDown,\n onMaskMouseUp,\n // motion callbacks\n onMaskEnter,\n onEnter,\n onAfterEnter,\n onLeave,\n onAfterLeave\n };\n }\n});\n","import type { useDrawerProps } from '@primereact/types/shared/drawer';\n\nexport const defaultProps: useDrawerProps = {\n open: undefined,\n defaultOpen: undefined,\n modal: true,\n blockScroll: false,\n dismissable: true,\n baseZIndex: 0,\n autoZIndex: true,\n appendTo: 'body',\n onOpenChange: undefined\n};\n"],"mappings":"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","names":["withHeadless","useEventListener","useUnmountEffect","useControlledState","$dt","blockBodyScroll","focus","unblockBodyScroll","ZIndex","React","defaultProps","useDrawer","withHeadless","defaultProps","props","elementRef","$primereact","_a","openState","setOpenState","useControlledState","maskRef","rootRef","closeButtonRef","maskMouseDownTarget","target","state","useUnmountEffect","_b","ZIndex","close","onOpenStateChange","newOpenState","onMaskEnter","_c","_d","onEnter","enableDocumentSettings","bindDocumentKeyDownListener","onAfterEnter","focusElement","onLeave","focus","onAfterLeave","unbindDocumentKeyDownListener","disableDocumentSettings","focusTarget","findFocusableElement","container","useEventListener","event","onKeyDown","bindOutsideClickListener","unbindOutsideClickListener","isOutsideClicked","blockBodyScroll","$dt","unblockBodyScroll"]}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
export declare const useDrawer: (inProps?: unknown) => import("@primereact/types/core").HeadlessInstance<import("@primereact/types/shared/drawer").useDrawerProps, unknown, {
|
|
3
|
+
state: {
|
|
4
|
+
opened: boolean;
|
|
5
|
+
};
|
|
6
|
+
maskRef: React.RefObject<{
|
|
7
|
+
elementRef: React.RefObject<HTMLDivElement | null>;
|
|
8
|
+
} | null>;
|
|
9
|
+
rootRef: React.RefObject<{
|
|
10
|
+
elementRef: React.RefObject<HTMLDivElement>;
|
|
11
|
+
} | null>;
|
|
12
|
+
closeButtonRef: React.RefObject<{
|
|
13
|
+
elementRef: React.RefObject<HTMLButtonElement>;
|
|
14
|
+
} | null>;
|
|
15
|
+
close: () => void;
|
|
16
|
+
onOpenStateChange: () => void;
|
|
17
|
+
onMaskMouseDown: (event: React.MouseEvent) => void;
|
|
18
|
+
onMaskMouseUp: () => void;
|
|
19
|
+
onMaskEnter: () => void;
|
|
20
|
+
onEnter: () => void;
|
|
21
|
+
onAfterEnter: () => void;
|
|
22
|
+
onLeave: () => void;
|
|
23
|
+
onAfterLeave: () => void;
|
|
24
|
+
}>;
|
|
File without changes
|
package/fieldset/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{withHeadless as
|
|
1
|
+
var f=Object.defineProperty,u=Object.defineProperties;var d=Object.getOwnPropertyDescriptors;var p=Object.getOwnPropertySymbols;var c=Object.prototype.hasOwnProperty,n=Object.prototype.propertyIsEnumerable;var i=(r,e,o)=>e in r?f(r,e,{enumerable:!0,configurable:!0,writable:!0,value:o}):r[e]=o,s=(r,e)=>{for(var o in e||(e={}))c.call(e,o)&&i(r,o,e[o]);if(p)for(var o of p(e))n.call(e,o)&&i(r,o,e[o]);return r},l=(r,e)=>u(r,d(e));import{withHeadless as P}from"@primereact/core/headless";import{useCollapsible as g}from"@primereact/headless/collapsible";import*as m from"@primereact/headless/collapsible";var a=s({},m.defaultProps);var R=P({name:"useFieldset",defaultProps:a,setup({props:r}){let e=g(r),o=t=>{e==null||e.toggle(t),t==null||t.preventDefault()};return l(s({},e),{onTriggerClick:o})}});export{a as defaultProps,R as useFieldset};
|
|
2
2
|
//# sourceMappingURL=index.mjs.map
|
package/fieldset/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/fieldset/useFieldset.ts","../../src/fieldset/useFieldset.props.ts"],"sourcesContent":["import { withHeadless } from '@primereact/core/headless';\nimport { defaultProps } from './useFieldset.props';\n\nexport const useFieldset = withHeadless({\n name: 'useFieldset',\n defaultProps\n});\n","import type { useFieldsetProps } from '@primereact/types/shared/fieldset';\n\nexport const defaultProps: useFieldsetProps = {};\n"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../src/fieldset/useFieldset.ts","../../src/fieldset/useFieldset.props.ts"],"sourcesContent":["import { withHeadless } from '@primereact/core/headless';\nimport { useCollapsible } from '@primereact/headless/collapsible';\nimport * as React from 'react';\nimport { defaultProps } from './useFieldset.props';\n\nexport const useFieldset = withHeadless({\n name: 'useFieldset',\n defaultProps,\n setup({ props }) {\n const collapsible = useCollapsible(props);\n\n // methods\n const onTriggerClick = (event?: React.SyntheticEvent) => {\n collapsible?.toggle(event);\n event?.preventDefault();\n };\n\n return {\n ...collapsible,\n onTriggerClick\n };\n }\n});\n","import * as useCollapsible from '@primereact/headless/collapsible';\nimport type { useFieldsetProps } from '@primereact/types/shared/fieldset';\n\nexport const defaultProps: useFieldsetProps = {\n ...useCollapsible.defaultProps\n};\n"],"mappings":"6aAAA,OAAS,gBAAAA,MAAoB,4BAC7B,OAAS,kBAAAC,MAAsB,mCCD/B,UAAYC,MAAoB,mCAGzB,IAAMC,EAAiCC,EAAA,GACxB,gBDCf,IAAMC,EAAcC,EAAa,CACpC,KAAM,cACN,aAAAC,EACA,MAAM,CAAE,MAAAC,CAAM,EAAG,CACb,IAAMC,EAAcC,EAAeF,CAAK,EAGlCG,EAAkBC,GAAiC,CACrDH,GAAA,MAAAA,EAAa,OAAOG,GACpBA,GAAA,MAAAA,EAAO,gBACX,EAEA,OAAOC,EAAAC,EAAA,GACAL,GADA,CAEH,eAAAE,CACJ,EACJ,CACJ,CAAC","names":["withHeadless","useCollapsible","useCollapsible","defaultProps","__spreadValues","useFieldset","withHeadless","defaultProps","props","collapsible","useCollapsible","onTriggerClick","event","__spreadProps","__spreadValues"]}
|
|
@@ -1 +1,29 @@
|
|
|
1
|
-
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
export declare const useFieldset: (inProps?: unknown) => import("@primereact/types/core").HeadlessInstance<import("@primereact/types/shared/fieldset").useFieldsetProps, unknown, {
|
|
3
|
+
onTriggerClick: (event?: React.SyntheticEvent) => void;
|
|
4
|
+
ref: React.Ref<unknown>;
|
|
5
|
+
elementRef: React.RefObject<HTMLElement | null>;
|
|
6
|
+
id?: string | undefined;
|
|
7
|
+
name?: string | undefined;
|
|
8
|
+
scope?: string | undefined;
|
|
9
|
+
part?: string | undefined;
|
|
10
|
+
inProps?: import("@primereact/types").SafeRecord<import("@primereact/types/shared/collapsible").useCollapsibleProps> | undefined;
|
|
11
|
+
$attrSelector?: string | undefined;
|
|
12
|
+
$primereact: import("@primereact/types/core").Contexts;
|
|
13
|
+
props: import("@primereact/types").SafeRecord<import("@primereact/types/shared/collapsible").useCollapsibleProps>;
|
|
14
|
+
attrs: Omit<import("@primereact/types").SafeRecord<import("@primereact/types/shared/collapsible").useCollapsibleProps>, keyof import("@primereact/types/shared/collapsible").useCollapsibleProps> & Record<PropertyKey, unknown>;
|
|
15
|
+
state: {
|
|
16
|
+
open: boolean | undefined;
|
|
17
|
+
};
|
|
18
|
+
$computedSetup: {
|
|
19
|
+
state: {
|
|
20
|
+
open: boolean | undefined;
|
|
21
|
+
};
|
|
22
|
+
open: (event?: React.SyntheticEvent) => void;
|
|
23
|
+
close: (event?: React.SyntheticEvent) => void;
|
|
24
|
+
toggle: (event?: React.SyntheticEvent) => void;
|
|
25
|
+
};
|
|
26
|
+
open: (event?: React.SyntheticEvent) => void;
|
|
27
|
+
close: (event?: React.SyntheticEvent) => void;
|
|
28
|
+
toggle: (event?: React.SyntheticEvent) => void;
|
|
29
|
+
}>;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{withHeadless as J}from"@primereact/core/headless";import{addClass as Q,isNotEmpty as D,removeClass as B}from"@primeuix/utils";import*as r from"react";var H={name:void 0,url:void 0,multiple:!1,accept:void 0,disabled:!1,auto:!1,maxFileSize:void 0,fileLimit:void 0,withCredentials:!1,customUpload:!1,invalidFileLimitMessage:"Maximum number of files exceeded, limit is {0} at most.",invalidFileSizeMessage:"{0}: Invalid file size, file size should be smaller than {1}.",invalidFileTypeMessage:"{0}: Invalid file type, allowed file types: {1}.",uploadHandler:void 0,onSelect:void 0,onBeforeUpload:void 0,onUpload:void 0,onError:void 0,onProgress:void 0,onBeforeSend:void 0,onClear:void 0,onRemove:void 0};var ie=J({name:"useFileUpload",defaultProps:H,setup({props:t,$primereact:S}){let d=r.useRef(null),c=r.useRef(null),m=r.useRef(0),[l,g]=r.useState([]),[h,T]=r.useState([]),[C,F]=r.useState([]),[U,b]=r.useState(0),u=r.useMemo(()=>D(l),[l]),w=r.useMemo(()=>D(h),[h]),x={files:l,messages:C,progress:U,uploadedFiles:h},P=()=>{u&&E(l)},p=e=>{var f,o;let i=s=>"dataTransfer"in s&&!!s.dataTransfer;u&&g([]);let n=[];t.multiple&&(n=l?[...l]:[]);let a=i(e)?(f=e.dataTransfer)==null?void 0:f.files:(o=e.target)==null?void 0:o.files;if(a){for(let s of Array.from(a))if(!k(s)&&!R()&&O(s)){if(q(s)){let v=s;v.objectURL=window.URL.createObjectURL(s)}n.push(s)}g(n),t.fileLimit&&Z(),t.auto&&D(n)&&!R()&&E(n),t.onSelect&&t.onSelect({originalEvent:e,files:n}),M()}},I=()=>{d.current&&d.current.click()},E=(e=l)=>{var n;let i=(n=e!=null?e:l)!=null?n:[];if(t.customUpload)t.fileLimit&&(m.current+=i.length),t.uploadHandler&&t.uploadHandler({files:i,options:{clear:L,props:t}});else{let a=new XMLHttpRequest,f=new FormData;t.onBeforeUpload&&t.onBeforeUpload({xhr:a,files:i});for(let o of i)f.append(t.name,o,o.name);a.upload.addEventListener("progress",o=>{if(o.lengthComputable){let s=Math.round(o.loaded*100/o.total);b(s)}t.onProgress&&t.onProgress({originalEvent:o,progress:U})}),a.onreadystatechange=()=>{a.readyState===4&&(b(0),a.status>=200&&a.status<300?(t.fileLimit&&(m.current+=i.length),t.onUpload&&t.onUpload({xhr:a,files:i}),T(o=>[...o,...i])):t.onError&&t.onError({xhr:a,files:i}),L())},t.url&&(a.open("POST",t.url,!0),t.onBeforeSend&&t.onBeforeSend({xhr:a,formData:f}),a.withCredentials=!!t.withCredentials,a.send(f))}},L=()=>{g([]),F([]),t.onClear&&t.onClear(),M()},k=e=>{if(l&&l.length){for(let i of l)if(i.name+i.type+i.size===e.name+e.type+e.size)return!0}return!1},O=e=>t.accept&&!A(e)?(F(i=>[...i,t.invalidFileTypeMessage.replace("{0}",e.name).replace("{1}",t.accept)]),!1):t.maxFileSize&&e.size>t.maxFileSize?(F(i=>[...i,t.invalidFileSizeMessage.replace("{0}",e.name).replace("{1}",z(t.maxFileSize))]),!1):!0,A=e=>{let i=t.accept.split(",").map(n=>n.trim());for(let n of i)if(j(n)?y(e.type)===y(n):e.type==n||W(e).toLowerCase()===n.toLowerCase())return!0;return!1},y=e=>e.substring(0,e.indexOf("/")),j=e=>e.indexOf("*")!==-1,W=e=>"."+e.name.split(".").pop(),q=e=>/^image\//.test(e.type),G=e=>{!t.disabled&&(!u||t.multiple)&&(e.stopPropagation(),e.preventDefault())},K=e=>{!t.disabled&&(!u||t.multiple)&&(Q(c.current,"p-fileupload-highlight"),c.current.setAttribute("data-p-highlight","true"),e.stopPropagation(),e.preventDefault())},N=()=>{t.disabled||(B(c.current,"p-fileupload-highlight"),c.current.setAttribute("data-p-highlight","false"))},V=e=>{var i;if(!t.disabled){B(c.current,"p-fileupload-highlight"),c.current.setAttribute("data-p-highlight","false"),e.stopPropagation(),e.preventDefault();let n=(i=e.dataTransfer)==null?void 0:i.files;(t.multiple||n&&n.length===1)&&p(e)}},X=e=>{M();let i=[...l],n=l[e];i.splice(e,1),g(i),t.onRemove&&t.onRemove({file:n})},Y=e=>{let i=[...h];i.splice(e,1),T(i),t.onRemove&&t.onRemove({file:l[e]})},M=()=>{d.current&&(d.current.value="")},z=e=>{var s,v;let a=((v=(s=S==null?void 0:S.config)==null?void 0:s.locale)==null?void 0:v.fileSizeTypes)||["B","KB","MB","GB","TB","PB","EB","ZB","YB"];if(e===0)return`0 ${a[0]}`;let f=Math.floor(Math.log(e)/Math.log(1024));return`${parseFloat((e/Math.pow(1024,f)).toFixed(3))} ${a[f]}`},R=()=>t.fileLimit&&t.fileLimit<l.length+m.current,Z=()=>{R()&&F(e=>[...e,t.invalidFileLimitMessage.replace("{0}",t.fileLimit.toString())])};return{state:x,uploadedFileCount:m,hasFiles:u,hasUploadedFiles:w,inputRef:d,contentRef:c,upload:P,onFileSelect:p,choose:I,uploader:E,clear:L,remove:X,removeUploadedFile:Y,formatSize:z,onDragEnter:G,onDragOver:K,onDragLeave:N,onDrop:V}}});export{H as defaultProps,ie as useFileUpload};
|
|
2
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/fileupload/useFileUpload.ts","../../src/fileupload/useFileUpload.props.ts"],"sourcesContent":["import { withHeadless } from '@primereact/core/headless';\nimport { addClass, isNotEmpty, removeClass } from '@primeuix/utils';\nimport * as React from 'react';\nimport { defaultProps } from './useFileUpload.props';\n\nexport const useFileUpload = withHeadless({\n name: 'useFileUpload',\n defaultProps,\n setup({ props, $primereact }) {\n const inputRef = React.useRef<HTMLInputElement | null>(null);\n const contentRef = React.useRef<HTMLDivElement | null>(null);\n const uploadedFileCount = React.useRef(0);\n\n const [filesState, setFilesState] = React.useState<File[]>([]);\n const [uploadedFilesState, setUploadedFilesState] = React.useState<File[]>([]);\n const [messagesState, setMessagesState] = React.useState<string[]>([]);\n const [progressState, setProgressState] = React.useState(0);\n\n const hasFiles = React.useMemo(() => isNotEmpty(filesState), [filesState]);\n const hasUploadedFiles = React.useMemo(() => isNotEmpty(uploadedFilesState), [uploadedFilesState]);\n\n const state = {\n files: filesState,\n messages: messagesState,\n progress: progressState,\n uploadedFiles: uploadedFilesState\n };\n\n const upload = () => {\n if (hasFiles) {\n uploader(filesState);\n }\n };\n\n const onFileSelect = (event: React.ChangeEvent<HTMLInputElement> | DragEvent) => {\n const isDragEvent = (e: React.ChangeEvent<HTMLInputElement> | DragEvent): e is DragEvent => 'dataTransfer' in e && !!(e as DragEvent).dataTransfer;\n\n if (hasFiles) {\n setFilesState([]);\n }\n\n let currentFiles: File[] = [];\n\n if (props.multiple) {\n currentFiles = filesState ? [...filesState] : [];\n }\n\n const filesList = isDragEvent(event) ? event.dataTransfer?.files : (event.target as HTMLInputElement | null)?.files;\n\n if (!filesList) {\n return;\n }\n\n for (const file of Array.from(filesList)) {\n if (!isFileSelected(file) && !isFileLimitExceeded()) {\n if (validate(file)) {\n if (isImage(file)) {\n const fileWithUrl = file as File & { objectURL?: string };\n\n fileWithUrl.objectURL = window.URL.createObjectURL(file);\n }\n\n currentFiles.push(file);\n }\n }\n }\n\n setFilesState(currentFiles);\n\n if (props.fileLimit) {\n checkFileLimit();\n }\n\n if (props.auto && isNotEmpty(currentFiles) && !isFileLimitExceeded()) {\n uploader(currentFiles);\n }\n\n if (props.onSelect) {\n props.onSelect({ originalEvent: event, files: currentFiles });\n }\n\n clearInput();\n };\n\n const choose = () => {\n if (inputRef.current) {\n inputRef.current.click();\n }\n };\n\n const uploader = (uploadFiles = filesState) => {\n const filesToUpload = uploadFiles ?? filesState ?? [];\n\n if (props.customUpload) {\n if (props.fileLimit) {\n uploadedFileCount.current += filesToUpload.length;\n }\n\n if (props.uploadHandler) {\n props.uploadHandler({\n files: filesToUpload,\n options: {\n clear,\n props\n }\n });\n }\n } else {\n const xhr = new XMLHttpRequest();\n const formData = new FormData();\n\n if (props.onBeforeUpload) {\n props.onBeforeUpload({\n xhr,\n files: filesToUpload\n });\n }\n\n for (const file of filesToUpload) {\n formData.append(props.name as string, file, file.name);\n }\n\n xhr.upload.addEventListener('progress', (event) => {\n if (event.lengthComputable) {\n const progress = Math.round((event.loaded * 100) / event.total);\n\n setProgressState(progress);\n }\n\n if (props.onProgress) {\n props.onProgress({\n originalEvent: event,\n progress: progressState\n });\n }\n });\n\n xhr.onreadystatechange = () => {\n if (xhr.readyState === 4) {\n setProgressState(0);\n\n if (xhr.status >= 200 && xhr.status < 300) {\n if (props.fileLimit) {\n uploadedFileCount.current += filesToUpload.length;\n }\n\n if (props.onUpload) {\n props.onUpload({\n xhr,\n files: filesToUpload\n });\n }\n\n setUploadedFilesState((prevUploadedFiles) => [...prevUploadedFiles, ...filesToUpload]);\n } else {\n if (props.onError) {\n props.onError({\n xhr,\n files: filesToUpload\n });\n }\n }\n\n clear();\n }\n };\n\n if (props.url) {\n xhr.open('POST', props.url, true);\n\n if (props.onBeforeSend) {\n props.onBeforeSend({\n xhr,\n formData\n });\n }\n\n xhr.withCredentials = !!props.withCredentials;\n\n xhr.send(formData);\n }\n }\n };\n\n const clear = () => {\n setFilesState([]);\n setMessagesState([]);\n\n if (props.onClear) {\n props.onClear();\n }\n\n clearInput();\n };\n\n const isFileSelected = (file: File) => {\n if (filesState && filesState.length) {\n for (const sFile of filesState) {\n if (sFile.name + sFile.type + sFile.size === file.name + file.type + file.size) return true;\n }\n }\n\n return false;\n };\n\n const validate = (file: File) => {\n if (props.accept && !isFileTypeValid(file)) {\n setMessagesState((prevMessages) => [...prevMessages, (props.invalidFileTypeMessage as string).replace('{0}', file.name).replace('{1}', props.accept as string)]);\n\n return false;\n }\n\n if (props.maxFileSize && file.size > props.maxFileSize) {\n setMessagesState((prevMessages) => [...prevMessages, (props.invalidFileSizeMessage as string).replace('{0}', file.name).replace('{1}', formatSize(props.maxFileSize as number))]);\n\n return false;\n }\n\n return true;\n };\n\n const isFileTypeValid = (file: File) => {\n const acceptableTypes = (props.accept as string).split(',').map((type) => type.trim());\n\n for (const type of acceptableTypes) {\n const acceptable = isWildcard(type) ? getTypeClass(file.type) === getTypeClass(type) : file.type == type || getFileExtension(file).toLowerCase() === type.toLowerCase();\n\n if (acceptable) {\n return true;\n }\n }\n\n return false;\n };\n\n const getTypeClass = (fileType: string) => {\n return fileType.substring(0, fileType.indexOf('/'));\n };\n\n const isWildcard = (fileType: string) => {\n return fileType.indexOf('*') !== -1;\n };\n\n const getFileExtension = (file: File) => {\n return '.' + file.name.split('.').pop();\n };\n\n const isImage = (file: File) => {\n return /^image\\//.test(file.type);\n };\n\n const onDragEnter = (event: DragEvent) => {\n if (!props.disabled && (!hasFiles || props.multiple)) {\n event.stopPropagation();\n event.preventDefault();\n }\n };\n\n const onDragOver = (event: DragEvent) => {\n if (!props.disabled && (!hasFiles || props.multiple)) {\n // !isUnstyled &&\n addClass(contentRef.current as HTMLDivElement, 'p-fileupload-highlight');\n (contentRef.current as HTMLDivElement).setAttribute('data-p-highlight', 'true');\n event.stopPropagation();\n event.preventDefault();\n }\n };\n\n const onDragLeave = () => {\n if (!props.disabled) {\n // !isUnstyled &&\n removeClass(contentRef.current as HTMLDivElement, 'p-fileupload-highlight');\n (contentRef.current as HTMLDivElement).setAttribute('data-p-highlight', 'false');\n }\n };\n\n const onDrop = (event: DragEvent) => {\n if (!props.disabled) {\n // !isUnstyled &&\n removeClass(contentRef.current as HTMLDivElement, 'p-fileupload-highlight');\n (contentRef.current as HTMLDivElement).setAttribute('data-p-highlight', 'false');\n event.stopPropagation();\n event.preventDefault();\n\n const files = event.dataTransfer?.files;\n const allowDrop = props.multiple || (files && files.length === 1);\n\n if (allowDrop) {\n onFileSelect(event);\n }\n }\n };\n\n const remove = (index: number) => {\n clearInput();\n const currentFiles = [...filesState];\n const removedFile = filesState[index];\n\n currentFiles.splice(index, 1);\n setFilesState(currentFiles);\n\n if (props.onRemove) {\n props.onRemove({\n file: removedFile\n });\n }\n };\n\n const removeUploadedFile = (index: number) => {\n const currentUploadedFiles = [...uploadedFilesState];\n\n currentUploadedFiles.splice(index, 1);\n setUploadedFilesState(currentUploadedFiles);\n\n if (props.onRemove) {\n props.onRemove({\n file: filesState[index]\n });\n }\n };\n\n const clearInput = () => {\n if (inputRef.current) {\n inputRef.current.value = '';\n }\n };\n\n const formatSize = (bytes: number) => {\n const k = 1024;\n const dm = 3;\n // @ts-expect-error TODO:\n const sizes = $primereact?.config?.locale?.fileSizeTypes || ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n\n if (bytes === 0) {\n return `0 ${sizes[0]}`;\n }\n\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n const formattedSize = parseFloat((bytes / Math.pow(k, i)).toFixed(dm));\n\n return `${formattedSize} ${sizes[i]}`;\n };\n\n const isFileLimitExceeded = () => {\n return props.fileLimit && props.fileLimit < filesState.length + uploadedFileCount.current;\n };\n\n const checkFileLimit = () => {\n if (isFileLimitExceeded()) {\n setMessagesState((prevMessages) => [...prevMessages, (props.invalidFileLimitMessage as string).replace('{0}', (props.fileLimit as number).toString())]);\n }\n };\n\n return {\n state,\n uploadedFileCount,\n hasFiles,\n hasUploadedFiles,\n // refs\n inputRef,\n contentRef,\n // methods\n upload,\n onFileSelect,\n choose,\n uploader,\n clear,\n remove,\n removeUploadedFile,\n formatSize,\n onDragEnter,\n onDragOver,\n onDragLeave,\n onDrop\n };\n }\n});\n","import type { useFileUploadProps } from '@primereact/types/shared/fileupload';\n\nexport const defaultProps: useFileUploadProps = {\n name: undefined,\n url: undefined,\n multiple: false,\n accept: undefined,\n disabled: false,\n auto: false,\n maxFileSize: undefined,\n fileLimit: undefined,\n withCredentials: false,\n customUpload: false,\n invalidFileLimitMessage: 'Maximum number of files exceeded, limit is {0} at most.',\n invalidFileSizeMessage: '{0}: Invalid file size, file size should be smaller than {1}.',\n invalidFileTypeMessage: '{0}: Invalid file type, allowed file types: {1}.',\n uploadHandler: undefined,\n onSelect: undefined,\n onBeforeUpload: undefined,\n onUpload: undefined,\n onError: undefined,\n onProgress: undefined,\n onBeforeSend: undefined,\n onClear: undefined,\n onRemove: undefined\n};\n"],"mappings":"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","names":["withHeadless","addClass","isNotEmpty","removeClass","React","defaultProps","useFileUpload","withHeadless","defaultProps","props","$primereact","inputRef","contentRef","uploadedFileCount","filesState","setFilesState","uploadedFilesState","setUploadedFilesState","messagesState","setMessagesState","progressState","setProgressState","hasFiles","isNotEmpty","hasUploadedFiles","state","upload","uploader","onFileSelect","event","_a","_b","isDragEvent","e","currentFiles","filesList","file","isFileSelected","isFileLimitExceeded","validate","isImage","fileWithUrl","checkFileLimit","clearInput","choose","uploadFiles","filesToUpload","clear","xhr","formData","progress","prevUploadedFiles","sFile","isFileTypeValid","prevMessages","formatSize","acceptableTypes","type","isWildcard","getTypeClass","getFileExtension","fileType","onDragEnter","onDragOver","addClass","onDragLeave","removeClass","onDrop","files","remove","index","removedFile","removeUploadedFile","currentUploadedFiles","bytes","sizes","i"]}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
export declare const useFileUpload: (inProps?: unknown) => import("@primereact/types/core").HeadlessInstance<import("@primereact/types/shared/fileupload").useFileUploadProps, unknown, {
|
|
3
|
+
state: {
|
|
4
|
+
files: File[];
|
|
5
|
+
messages: string[];
|
|
6
|
+
progress: number;
|
|
7
|
+
uploadedFiles: File[];
|
|
8
|
+
};
|
|
9
|
+
uploadedFileCount: React.RefObject<number>;
|
|
10
|
+
hasFiles: boolean;
|
|
11
|
+
hasUploadedFiles: boolean;
|
|
12
|
+
inputRef: React.RefObject<HTMLInputElement | null>;
|
|
13
|
+
contentRef: React.RefObject<HTMLDivElement | null>;
|
|
14
|
+
upload: () => void;
|
|
15
|
+
onFileSelect: (event: React.ChangeEvent<HTMLInputElement> | DragEvent) => void;
|
|
16
|
+
choose: () => void;
|
|
17
|
+
uploader: (uploadFiles?: File[]) => void;
|
|
18
|
+
clear: () => void;
|
|
19
|
+
remove: (index: number) => void;
|
|
20
|
+
removeUploadedFile: (index: number) => void;
|
|
21
|
+
formatSize: (bytes: number) => string;
|
|
22
|
+
onDragEnter: (event: DragEvent) => void;
|
|
23
|
+
onDragOver: (event: DragEvent) => void;
|
|
24
|
+
onDragLeave: () => void;
|
|
25
|
+
onDrop: (event: DragEvent) => void;
|
|
26
|
+
}>;
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/floatlabel/useFloatLabel.ts","../../src/floatlabel/useFloatLabel.props.ts"],"sourcesContent":["import { withHeadless } from '@primereact/core/headless';\nimport { defaultProps } from './useFloatLabel.props';\n\nexport const useFloatLabel = withHeadless({\n name: 'useFloatLabel',\n defaultProps\n});\n","import type { useFloatLabelProps } from '@primereact/types/shared/floatlabel';\n\nexport const defaultProps: useFloatLabelProps = {};\n"],"mappings":"AAAA,OAAS,gBAAAA,MAAoB,4BCEtB,IAAMC,EAAmC,CAAC,EDC1C,IAAMC,EAAgBC,EAAa,CACtC,KAAM,gBACN,aAAAC,CACJ,CAAC","names":["withHeadless","defaultProps","useFloatLabel","withHeadless","defaultProps"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const useFloatLabel: (inProps?: unknown) => import("@primereact/types/core").HeadlessInstance<import("@primereact/types/shared/floatlabel").useFloatLabelProps, unknown, Record<PropertyKey, unknown>>;
|
|
File without changes
|
package/fluid/index.d.ts
ADDED
package/fluid/index.mjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/fluid/useFluid.ts","../../src/fluid/useFluid.props.ts"],"sourcesContent":["import { withHeadless } from '@primereact/core/headless';\nimport { defaultProps } from './useFluid.props';\n\nexport const useFluid = withHeadless({\n name: 'useFluid',\n defaultProps\n});\n","import type { useFluidProps } from '@primereact/types/shared/fluid';\n\nexport const defaultProps: useFluidProps = {};\n"],"mappings":"AAAA,OAAS,gBAAAA,MAAoB,4BCEtB,IAAMC,EAA8B,CAAC,EDCrC,IAAMC,EAAWC,EAAa,CACjC,KAAM,WACN,aAAAC,CACJ,CAAC","names":["withHeadless","defaultProps","useFluid","withHeadless","defaultProps"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const useFluid: (inProps?: unknown) => import("@primereact/types/core").HeadlessInstance<import("@primereact/types/shared/fluid").useFluidProps, unknown, Record<PropertyKey, unknown>>;
|
|
File without changes
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{withHeadless as h}from"@primereact/core/headless";import{useUnmountEffect as y}from"@primereact/hooks/use-unmount-effect";import{focus as d,getFirstFocusableElement as f,getLastFocusableElement as k,isFocusableElement as M}from"@primeuix/utils/dom";import{isNotEmpty as P}from"@primeuix/utils/object";import*as u from"react";var R={disabled:!1,autoFocus:!0};var U=h({name:"useFocusTrap",defaultProps:R,setup:({props:F})=>{let{disabled:m,autoFocus:E}=F,p=u.useRef(null),b=u.useRef(null),a=u.useRef(null),r=u.useRef(null),g={},c=e=>`:not([data-focus-trap-hidden=""])${e!=null?e:""}`,x=e=>{let t=r.current,l=e.relatedTarget,s=b.current;if(!t||!s)return;let o=l===s||!(t!=null&&t.contains(l))?f(t,c()):s;o&&d(o)},S=e=>{let t=r.current,l=e.relatedTarget,s=p.current;if(!t||!s)return;let o=l===s||!(t!=null&&t.contains(l))?k(t,c()):s;o&&d(o)},T=u.useCallback(()=>{if(!E)return;let e=r.current;if(!e)return;let t=f(e,`[autofocus]${c()}`);t||(t=f(e,c())),t&&d(t)},[E,r]),H=u.useCallback(()=>{let e=r.current;!e||m||!(e instanceof Element)||(e.setAttribute("data-focus-trap",""),a.current=new MutationObserver(t=>{for(let s of t)if(s.type==="childList"&&!e.contains(document.activeElement)){let o=function(n){if(!n||!("nodeType"in n))return null;if(!(n instanceof Element))return n.nextSibling?o(n.nextSibling):null;let i=null;return M(n)?M(n,c(""))?i=n:i=f(e,c("")):i=f(n),P(i)?i:n.nextSibling?o(n.nextSibling):null};var l=o;let L=o(s.nextSibling);L&&d(L)}}),a.current.observe(e,{childList:!0}))},[m,r]),v=()=>{let e=r.current;e&&(e.removeAttribute("data-focus-trap"),a.current&&(a.current.disconnect(),a.current=null))};return u.useEffect(()=>{r.current&&(m||(H(),T()))},[m,H,T,r]),y(()=>{v()}),{state:g,containerRef:r,onFirstHiddenFocus:x,onLastHiddenFocus:S,firstHiddenElementRef:p,lastHiddenElementRef:b}}});export{R as defaultProps,U as useFocusTrap};
|
|
2
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/focustrap/useFocusTrap.tsx","../../src/focustrap/useFocusTrap.props.ts"],"sourcesContent":["import { withHeadless } from '@primereact/core/headless';\nimport { useUnmountEffect } from '@primereact/hooks/use-unmount-effect';\nimport { focus, getFirstFocusableElement, getLastFocusableElement, isFocusableElement } from '@primeuix/utils/dom';\nimport { isNotEmpty } from '@primeuix/utils/object';\nimport * as React from 'react';\nimport { defaultProps } from './useFocusTrap.props';\n\nexport const useFocusTrap = withHeadless({\n name: 'useFocusTrap',\n defaultProps,\n setup: ({ props }) => {\n const { disabled, autoFocus } = props;\n const firstHiddenElementRef = React.useRef<HTMLSpanElement>(null);\n const lastHiddenElementRef = React.useRef<HTMLSpanElement>(null);\n const observerRef = React.useRef<MutationObserver | null>(null);\n const containerRef = React.useRef<HTMLElement | null>(null);\n const state = {};\n\n // methods\n const getComputedSelector = (selector?: string) => `:not([data-focus-trap-hidden=\"\"])${selector ?? ''}`;\n\n const onFirstHiddenFocus = (event: React.FocusEvent<HTMLSpanElement>) => {\n const containerElement = containerRef.current;\n\n const relatedTarget = event.relatedTarget as HTMLElement | null;\n const lastHiddenElement = lastHiddenElementRef.current;\n\n if (!containerElement || !lastHiddenElement) return;\n\n const fallback = relatedTarget === lastHiddenElement || !containerElement?.contains(relatedTarget) ? getFirstFocusableElement(containerElement, getComputedSelector()) : lastHiddenElement;\n\n if (fallback) {\n focus(fallback as HTMLElement);\n }\n };\n\n const onLastHiddenFocus = (event: React.FocusEvent<HTMLSpanElement>) => {\n const containerElement = containerRef.current;\n\n const relatedTarget = event.relatedTarget as HTMLElement | null;\n const firstHiddenElement = firstHiddenElementRef.current;\n\n if (!containerElement || !firstHiddenElement) return;\n\n const fallback = relatedTarget === firstHiddenElement || !containerElement?.contains(relatedTarget) ? getLastFocusableElement(containerElement, getComputedSelector()) : firstHiddenElement;\n\n if (fallback) {\n focus(fallback as HTMLElement);\n }\n };\n\n const autoElementFocus = React.useCallback(() => {\n if (!autoFocus) return;\n\n const containerElement = containerRef.current;\n\n if (!containerElement) return;\n\n let focusableElement = getFirstFocusableElement(containerElement, `[autofocus]${getComputedSelector()}`);\n\n if (!focusableElement) {\n focusableElement = getFirstFocusableElement(containerElement, getComputedSelector());\n }\n\n if (focusableElement) {\n focus(focusableElement as HTMLElement);\n }\n }, [autoFocus, containerRef]);\n\n const bind = React.useCallback(() => {\n const containerElement = containerRef.current;\n\n if (!containerElement || disabled || !(containerElement instanceof Element)) return;\n\n containerElement.setAttribute('data-focus-trap', '');\n observerRef.current = new MutationObserver((mutationList) => {\n for (const mutation of mutationList) {\n if (mutation.type === 'childList' && !containerElement.contains(document.activeElement)) {\n function findNextFocusableElement(_el: Node | null): HTMLElement | null {\n if (!_el || !('nodeType' in _el)) return null;\n\n if (!(_el instanceof Element)) {\n return _el.nextSibling ? findNextFocusableElement(_el.nextSibling) : null;\n }\n\n let focusableElement: HTMLElement | null = null;\n\n if (isFocusableElement(_el)) {\n if (isFocusableElement(_el, getComputedSelector(''))) {\n focusableElement = _el as HTMLElement;\n } else {\n focusableElement = getFirstFocusableElement(containerElement!, getComputedSelector('')) as HTMLElement | null;\n }\n } else {\n focusableElement = getFirstFocusableElement(_el) as HTMLElement | null;\n }\n\n if (isNotEmpty(focusableElement)) {\n return focusableElement;\n } else {\n if (_el.nextSibling) {\n return findNextFocusableElement(_el.nextSibling);\n } else {\n return null;\n }\n }\n }\n\n const nextElement = findNextFocusableElement(mutation.nextSibling);\n\n if (nextElement) {\n focus(nextElement);\n }\n }\n }\n });\n\n observerRef.current.observe(containerElement, { childList: true });\n }, [disabled, containerRef]);\n\n const unbind = () => {\n const containerElement = containerRef.current;\n\n if (!containerElement) return;\n\n containerElement.removeAttribute('data-focus-trap');\n\n if (observerRef.current) {\n observerRef.current.disconnect();\n observerRef.current = null;\n }\n };\n\n // effects\n\n React.useEffect(() => {\n const containerElement = containerRef.current;\n\n if (!containerElement) return;\n\n if (!disabled) {\n bind();\n autoElementFocus();\n }\n }, [disabled, bind, autoElementFocus, containerRef]);\n\n useUnmountEffect(() => {\n unbind();\n });\n\n return {\n state,\n containerRef,\n onFirstHiddenFocus,\n onLastHiddenFocus,\n firstHiddenElementRef,\n lastHiddenElementRef\n };\n }\n});\n","import type { useFocusTrapProps } from '@primereact/types/shared/focustrap';\n\nexport const defaultProps: useFocusTrapProps = {\n disabled: false,\n autoFocus: true\n};\n"],"mappings":"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","names":["withHeadless","useUnmountEffect","focus","getFirstFocusableElement","getLastFocusableElement","isFocusableElement","isNotEmpty","React","defaultProps","useFocusTrap","withHeadless","defaultProps","props","disabled","autoFocus","firstHiddenElementRef","lastHiddenElementRef","observerRef","containerRef","state","getComputedSelector","selector","onFirstHiddenFocus","event","containerElement","relatedTarget","lastHiddenElement","fallback","getFirstFocusableElement","focus","onLastHiddenFocus","firstHiddenElement","getLastFocusableElement","autoElementFocus","focusableElement","bind","mutationList","mutation","findNextFocusableElement","_el","isFocusableElement","isNotEmpty","nextElement","unbind","useUnmountEffect"]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
export declare const useFocusTrap: (inProps?: unknown) => import("@primereact/types/core").HeadlessInstance<import("@primereact/types/shared/focustrap").useFocusTrapProps, unknown, {
|
|
3
|
+
state: {};
|
|
4
|
+
containerRef: React.RefObject<HTMLElement | null>;
|
|
5
|
+
onFirstHiddenFocus: (event: React.FocusEvent<HTMLSpanElement>) => void;
|
|
6
|
+
onLastHiddenFocus: (event: React.FocusEvent<HTMLSpanElement>) => void;
|
|
7
|
+
firstHiddenElementRef: React.RefObject<HTMLSpanElement | null>;
|
|
8
|
+
lastHiddenElementRef: React.RefObject<HTMLSpanElement | null>;
|
|
9
|
+
}>;
|
|
File without changes
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{withHeadless as S}from"@primereact/core/headless";import*as t from"react";var h={activeIndex:0,onActiveIndexChange:void 0};var C=S({name:"useGallery",defaultProps:h,setup:({props:y,elementRef:u})=>{let{activeIndex:i=0,onActiveIndexChange:s=void 0}=y,g=t.useRef(null),o=t.useRef([]),x=t.useRef(null),w=t.useRef(null),E=t.useRef(null),I=t.useRef(null),[,b]=t.useState(0),[l,f]=t.useState(i),[d,p]=t.useState(!1);t.useEffect(()=>{f(i)},[i]);let z=e=>{if(!e)return-1;let c=o.current.findIndex(r=>r.current===e);return c===-1?(o.current.push({current:e}),b(r=>r+1),o.current.length-1):c},m=()=>{let e=(l+1)%o.current.length;f(e),s==null||s({originalEvent:void 0,value:e})},R=()=>{let e=(l-1+o.current.length)%o.current.length;f(e),s==null||s({originalEvent:void 0,value:e})},n=e=>()=>{var r;let c=(r=o.current[l])==null?void 0:r.current;if(c){let L=new CustomEvent("gallery-"+e,{detail:{action:e}});c.dispatchEvent(L)}},v=()=>{u.current&&(d?(Object.assign(u.current.style,{position:"relative",top:"",left:"",width:"",height:"",zIndex:""}),document.body.style.overflow="auto",p(!1)):(Object.assign(u.current.style,{position:"fixed",top:"0",left:"0",width:"100dvw",height:"100dvh",zIndex:"9999"}),document.body.style.overflow="hidden",p(!0)),setTimeout(()=>{window.dispatchEvent(new Event("resize"))},100))},a={zoomIn:n("zoom-in"),zoomOut:n("zoom-out"),rotateLeft:n("rotate-left"),rotateRight:n("rotate-right"),flipX:n("flip-x"),flipY:n("flip-y"),download:n("download"),next:m,prev:R,toggleFullScreen:v},H=t.useCallback(e=>{e&&a[e]&&a[e]()},[a]);return{state:{isFullscreen:d,activeIndex:l},registerItem:z,handleNext:m,handlePrev:R,createCustomEvent:n,toggleFullScreen:v,handleClickAction:H,actions:a,contentRef:g,toolbarRef:x,thumbnailRef:w,prevRef:E,nextRef:I}}});export{h as defaultProps,C as useGallery};
|
|
2
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/gallery/useGallery.ts","../../src/gallery/useGallery.props.ts"],"sourcesContent":["import { withHeadless } from '@primereact/core/headless';\nimport type { CarouselRootInstance } from '@primereact/types/shared/carousel';\nimport * as React from 'react';\nimport { defaultProps } from './useGallery.props';\n\nexport const useGallery = withHeadless({\n name: 'useGallery',\n defaultProps,\n setup: ({ props, elementRef }) => {\n const { activeIndex: activeIndexProp = 0, onActiveIndexChange = undefined } = props;\n const contentRef = React.useRef<HTMLDivElement>(null);\n const itemsRef = React.useRef<React.RefObject<HTMLDivElement>[]>([]);\n const toolbarRef = React.useRef<HTMLDivElement>(null);\n const thumbnailRef = React.useRef<CarouselRootInstance | null>(null);\n const prevRef = React.useRef<HTMLButtonElement>(null);\n const nextRef = React.useRef<HTMLButtonElement>(null);\n const [, forceUpdate] = React.useState(0);\n const [activeIndex, setActiveIndex] = React.useState(activeIndexProp);\n\n const [isFullscreen, setIsFullscreen] = React.useState(false);\n\n React.useEffect(() => {\n setActiveIndex(activeIndexProp);\n }, [activeIndexProp]);\n\n const registerItem = (ref: HTMLDivElement | null): number => {\n if (!ref) return -1;\n\n const existingIndex = itemsRef.current.findIndex((item) => item.current === ref);\n\n if (existingIndex === -1) {\n itemsRef.current.push({ current: ref });\n forceUpdate((x) => x + 1);\n\n return itemsRef.current.length - 1;\n }\n\n return existingIndex;\n };\n\n const handleNext = () => {\n const newIndex = (activeIndex + 1) % itemsRef.current.length;\n\n setActiveIndex(newIndex);\n onActiveIndexChange?.({ originalEvent: undefined as unknown as React.SyntheticEvent, value: newIndex });\n };\n\n const handlePrev = () => {\n const newIndex = (activeIndex - 1 + itemsRef.current.length) % itemsRef.current.length;\n\n setActiveIndex(newIndex);\n onActiveIndexChange?.({ originalEvent: undefined as unknown as React.SyntheticEvent, value: newIndex });\n };\n\n const createCustomEvent = (action: string) => () => {\n const activeItem = itemsRef.current[activeIndex]?.current;\n\n if (activeItem) {\n const event = new CustomEvent('gallery-' + action, {\n detail: { action: action }\n });\n\n activeItem.dispatchEvent(event);\n }\n };\n\n const toggleFullScreen = () => {\n if (!elementRef.current) return;\n\n if (!isFullscreen) {\n Object.assign(elementRef.current.style, {\n position: 'fixed',\n top: '0',\n left: '0',\n width: '100dvw',\n height: '100dvh',\n zIndex: '9999'\n });\n\n document.body.style.overflow = 'hidden';\n\n setIsFullscreen(true);\n } else {\n Object.assign(elementRef.current.style, {\n position: 'relative',\n top: '',\n left: '',\n width: '',\n height: '',\n zIndex: ''\n });\n\n document.body.style.overflow = 'auto';\n\n setIsFullscreen(false);\n }\n\n setTimeout(() => {\n window.dispatchEvent(new Event('resize'));\n }, 100);\n };\n\n const actions = {\n zoomIn: createCustomEvent('zoom-in'),\n zoomOut: createCustomEvent('zoom-out'),\n rotateLeft: createCustomEvent('rotate-left'),\n rotateRight: createCustomEvent('rotate-right'),\n flipX: createCustomEvent('flip-x'),\n flipY: createCustomEvent('flip-y'),\n download: createCustomEvent('download'),\n next: handleNext,\n prev: handlePrev,\n toggleFullScreen: toggleFullScreen\n };\n\n const handleClickAction = React.useCallback(\n (action?: string) => {\n if (action && actions[action as keyof typeof actions]) {\n actions[action as keyof typeof actions]();\n }\n },\n [actions]\n );\n\n const state = {\n isFullscreen,\n activeIndex\n };\n\n return {\n state,\n registerItem,\n handleNext,\n handlePrev,\n createCustomEvent,\n toggleFullScreen,\n handleClickAction,\n actions,\n contentRef,\n toolbarRef,\n thumbnailRef,\n prevRef,\n nextRef\n };\n }\n});\n","import type { useGalleryProps } from '@primereact/types/shared/gallery';\n\nexport const defaultProps: useGalleryProps = {\n activeIndex: 0,\n onActiveIndexChange: undefined\n};\n"],"mappings":"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","names":["withHeadless","React","defaultProps","useGallery","withHeadless","defaultProps","props","elementRef","activeIndexProp","onActiveIndexChange","contentRef","itemsRef","toolbarRef","thumbnailRef","prevRef","nextRef","forceUpdate","activeIndex","setActiveIndex","isFullscreen","setIsFullscreen","registerItem","ref","existingIndex","item","x","handleNext","newIndex","handlePrev","createCustomEvent","action","_a","activeItem","event","toggleFullScreen","actions","handleClickAction"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var Ft=Object.defineProperty,we=Object.defineProperties;var Ee=Object.getOwnPropertyDescriptors;var lt=Object.getOwnPropertySymbols;var Vt=Object.prototype.hasOwnProperty,_t=Object.prototype.propertyIsEnumerable;var Ut=(r,o,s)=>o in r?Ft(r,o,{enumerable:!0,configurable:!0,writable:!0,value:s}):r[o]=s,m=(r,o)=>{for(var s in o||(o={}))Vt.call(o,s)&&Ut(r,s,o[s]);if(lt)for(var s of lt(o))_t.call(o,s)&&Ut(r,s,o[s]);return r},g=(r,o)=>we(r,Ee(o));var X=(r,o)=>{var s={};for(var t in r)Vt.call(r,t)&&o.indexOf(t)<0&&(s[t]=r[t]);if(r!=null&<)for(var t of lt(r))o.indexOf(t)<0&&_t.call(r,t)&&(s[t]=r[t]);return s};var ft=(r,o)=>{for(var s in o)Ft(r,s,{get:o[s],enumerable:!0})};import{withHeadless as Yo}from"@primereact/core/headless";import{createOptionalContext as Se}from"@primereact/core/utils";var[qt,d]=Se();var Mt={};ft(Mt,{Backdrop:()=>xt,Content:()=>Pt,Item:()=>Ct,Next:()=>vt,Prev:()=>yt,Root:()=>It,Thumbnail:()=>St,ThumbnailContent:()=>Nt,ThumbnailItem:()=>kt,Toolbar:()=>Lt,ToolbarItem:()=>zt});import{Component as Ne,withComponent as ke}from"@primereact/core/component";import{mergeProps as Le}from"@primeuix/utils";import*as Jt from"react";var H={as:"div"};var xt=ke({name:"Gallery.Backdrop",defaultProps:H,setup(){return{gallery:d()}},render(r){let{props:o,ptmi:s,gallery:t}=r,e=Le({className:t==null?void 0:t.cx("backdrop")},s("root"));return Jt.createElement(Ne,{instance:r,attrs:e,children:o.children})}});import{Component as ze,withComponent as Me}from"@primereact/core/component";import{mergeProps as Xe}from"@primeuix/utils";import*as Kt from"react";var B={as:"div"};var Pt=Me({name:"Gallery.Content",defaultProps:B,setup(){return{gallery:d()}},render(r){let{props:o,ptmi:s,gallery:t}=r,e=Xe({className:t==null?void 0:t.cx("content")},s("root"));return Kt.createElement(ze,{instance:r,attrs:e,children:o.children,ref:t==null?void 0:t.contentRef})}});import{Component as De,withComponent as He}from"@primereact/core/component";import{useGalleryItem as Be}from"@primereact/headless/gallery/item";import{mergeProps as Oe}from"@primeuix/utils";import*as ht from"react";import{createOptionalContext as Ye}from"@primereact/core/utils";var[Qt,ar]=Ye();import*as Zt from"@primereact/headless/gallery";var O=g(m({},Zt.defaultProps),{as:"div"});var Ct=He({name:"Gallery.Item",defaultProps:O,setup(r){let o=d(),s=Be(r.inProps);return g(m({},s),{gallery:o})},render(r){let{id:o,props:s,ptmi:t,gallery:e,handleClick:a,handlePointerDown:x,handlePointerMove:v,handlePointerUp:S,handleDragStart:y,CSSVariables:N,attributes:P}=r,D=Oe(m({id:o,className:e==null?void 0:e.cx("item"),onClick:a,onPointerDown:x,onPointerMove:v,onPointerUp:S,onDragStart:y,style:N},P),t("root"),e==null?void 0:e.ptm("item"));return ht.createElement(Qt,{value:r},ht.createElement(De,{instance:r,attrs:D,children:s.children}))}});import{Component as $e,withComponent as We}from"@primereact/core/component";import{mergeProps as Ae}from"@primeuix/utils";import*as te from"react";var $={as:"button"};var vt=We({name:"Gallery.Next",defaultProps:$,setup(){return{gallery:d()}},render(r){var a;let{props:o,ptmi:s,gallery:t}=r,e=Ae({className:t==null?void 0:t.cx("next"),onClick:(a=t==null?void 0:t.actions)==null?void 0:a.next},s("root"));return te.createElement($e,{instance:r,attrs:e,children:o.children,ref:t==null?void 0:t.nextRef})}});import{Component as je,withComponent as Ue}from"@primereact/core/component";import{mergeProps as Fe}from"@primeuix/utils";import*as ee from"react";var W={as:"button"};var yt=Ue({name:"Gallery.Prev",defaultProps:W,setup(){return{gallery:d()}},render(r){var a;let{props:o,ptmi:s,gallery:t}=r,e=Fe({className:t==null?void 0:t.cx("prev"),onClick:(a=t==null?void 0:t.actions)==null?void 0:a.prev},s("root"));return ee.createElement(je,{instance:r,attrs:e,children:o.children,ref:t==null?void 0:t.prevRef})}});import{Component as Ve,withComponent as _e}from"@primereact/core/component";import{useGallery as qe}from"@primereact/headless/gallery";import{mergeProps as Je}from"@primeuix/utils";import*as bt from"react";import*as oe from"@primereact/headless/gallery";var A=g(m({},oe.defaultProps),{as:"div"});var It=_e({name:"Gallery.Root",defaultProps:A,setup(r){return qe(r.inProps)},render(r){let{id:o,props:s,ptmi:t,cx:e}=r,a=Je({id:o,className:e("root")},t("root"));return bt.createElement(qt,{value:r},bt.createElement(Ve,{instance:r,attrs:a,children:s.children}))}});import{Component as bo,withComponent as Io}from"@primereact/core/component";import{mergeProps as Ro}from"@primeuix/utils";import*as ce from"react";import{createOptionalContext as Ke}from"@primereact/core/utils";var[re,I]=Ke();var wt={};ft(wt,{Content:()=>U,Indicator:()=>V,Indicators:()=>Rt,Item:()=>J,Next:()=>Gt,Prev:()=>gt,Root:()=>tt});import{Component as Qe,withComponent as Ze}from"@primereact/core/component";import{mergeProps as to}from"@primeuix/utils";import*as ne from"react";var j={as:"div"};var U=Ze({name:"Carousel.Content",defaultProps:j,setup(){return{carousel:I()}},render(r){let{props:o,ptmi:s,carousel:t}=r,e=to(m(m({className:t==null?void 0:t.cx("content"),style:m({"--slides-per-page":t==null?void 0:t.slidesPerPage,"--spacing-items":(t==null?void 0:t.props.spacing)+"px","--scroll-snap-type":t==null?void 0:t.resolveSnapType(),position:"relative",scrollbarWidth:"none",display:"flex",flexDirection:(t==null?void 0:t.props.orientation)==="vertical"?"column":"row",overflowX:(t==null?void 0:t.props.orientation)==="horizontal"?"scroll":void 0,overflowY:(t==null?void 0:t.props.orientation)==="vertical"?"scroll":void 0,overscrollBehaviorX:(t==null?void 0:t.props.orientation)==="horizontal"?"contain":void 0,overscrollBehaviorY:(t==null?void 0:t.props.orientation)==="vertical"?"contain":void 0,gap:"var(--spacing-items)",scrollSnapType:"var(--scroll-snap-type)"},t==null?void 0:t.sx("content")),onPointerDown:t==null?void 0:t.onContentPointerDown,onPointerMove:t==null?void 0:t.onContentPointerMove,onPointerUp:t==null?void 0:t.onContentPointerUp,onWheel:t==null?void 0:t.onContentWheel,"data-orientation":t==null?void 0:t.props.orientation,"data-align":t==null?void 0:t.props.align,"data-page":t==null?void 0:t.state.page},t!=null&&t.props.autoSize?{"data-autosize":""}:{}),t!=null&&t.state.swiping?{"data-swiping":""}:{}),t==null?void 0:t.ptm("content"),s("root"));return ne.createElement(Qe,{instance:r,attrs:e,children:o.children,ref:t==null?void 0:t.contentRef})}});import{Component as eo,withComponent as oo}from"@primereact/core/component";import{mergeProps as ro}from"@primeuix/utils";import*as se from"react";var F={as:"button",page:void 0};var V=oo({name:"Carousel.Indicator",defaultProps:F,setup(){return{carousel:I()}},render(r){let{props:o,ptmi:s,carousel:t}=r,e=(t==null?void 0:t.state.page)===o.page,a=ro(m(m({className:t==null?void 0:t.cx("indicator",{active:e}),onClick:()=>{var x;return t==null?void 0:t.scrollToPage((x=o.page)!=null?x:0)},"data-orientation":t==null?void 0:t.props.orientation,"data-align":t==null?void 0:t.props.align,"data-page":t==null?void 0:t.state.page},e&&{"data-active":""}),t!=null&&t.state.swiping?{"data-swiping":""}:{}),t==null?void 0:t.ptm("indicator"),s("root"));return se.createElement(eo,{instance:r,attrs:a,children:o.children})}});import{Component as no,withComponent as so}from"@primereact/core/component";import{mergeProps as ao}from"@primeuix/utils";import*as Y from"react";var _={as:"div"};var Rt=so({name:"Carousel.Indicators",defaultProps:_,setup(){return{carousel:I()}},render(r){var a,x;let{props:o,ptmi:s,carousel:t}=r,e=ao(m({className:t==null?void 0:t.cx("indicators"),"data-orientation":t==null?void 0:t.props.orientation,"data-align":t==null?void 0:t.props.align,"data-page":t==null?void 0:t.state.page},t!=null&&t.state.swiping?{"data-swiping":""}:{}),t==null?void 0:t.ptm("indicators"),s("root"));return Y.createElement(no,{instance:r,attrs:e,children:(x=o.children)!=null?x:Y.createElement(Y.Fragment,null,Array.from((a=t==null?void 0:t.state.snapPoints)!=null?a:[]).map((v,S)=>Y.createElement(V,{key:S,page:S})))})}});import{Component as io,withComponent as po}from"@primereact/core/component";import{mergeProps as mo}from"@primeuix/utils";import*as ae from"react";var q={as:"div",value:void 0};var J=po({name:"Carousel.Item",defaultProps:q,setup(){return{carousel:I()}},render(r){let{id:o,props:s,ptmi:t,carousel:e}=r,a=mo(m(m({id:o,className:e==null?void 0:e.cx("item"),style:m({flexGrow:0,flexShrink:0,minWidth:0,flexBasis:e!=null&&e.props.autoSize?"auto":"calc(100% / var(--slides-per-page) - var(--spacing-items) * (var(--slides-per-page) - 1) / var(--slides-per-page))",scrollSnapAlign:e==null?void 0:e.props.align},e==null?void 0:e.sx("item")),"data-value":s.value,"data-item":"","data-inview":"false","data-orientation":e==null?void 0:e.props.orientation,"data-align":e==null?void 0:e.props.align,"data-page":e==null?void 0:e.state.page},e!=null&&e.state.swiping?{"data-swiping":""}:{}),e!=null&&e.props.autoSize?{"data-autosize":""}:{}),e==null?void 0:e.ptm("item"),t("root"));return ae.createElement(io,{instance:r,attrs:a,children:s.children})}});import{Component as co,withComponent as lo}from"@primereact/core/component";import{mergeProps as fo}from"@primeuix/utils";import*as ie from"react";var K={as:"button"};var Gt=lo({name:"Carousel.Next",defaultProps:K,setup(){return{carousel:I()}},render(r){let{props:o,ptmi:s,carousel:t}=r,e=(t==null?void 0:t.state.isNextDisabled)||o.disabled,a=fo(m({className:t==null?void 0:t.cx("next",{disabled:e}),onClick:t==null?void 0:t.next,disabled:e,"data-orientation":t==null?void 0:t.props.orientation,"data-align":t==null?void 0:t.props.align,"data-page":t==null?void 0:t.state.page,"data-disabled":e},t!=null&&t.state.swiping?{"data-swiping":""}:{}),t==null?void 0:t.ptm("prev"),s("root"));return ie.createElement(co,{instance:r,attrs:a,children:o.children})}});import{Component as uo,withComponent as xo}from"@primereact/core/component";import{mergeProps as Po}from"@primeuix/utils";import*as pe from"react";var Q={as:"button"};var gt=xo({name:"Carousel.Prev",defaultProps:Q,setup(){return{carousel:I()}},render(r){let{props:o,ptmi:s,carousel:t}=r,e=(t==null?void 0:t.state.isPrevDisabled)||o.disabled,a=Po(m({className:t==null?void 0:t.cx("prev",{disabled:e}),onClick:t==null?void 0:t.prev,disabled:e,"data-orientation":t==null?void 0:t.props.orientation,"data-align":t==null?void 0:t.props.align,"data-page":t==null?void 0:t.state.page,"data-disabled":e},t!=null&&t.state.swiping?{"data-swiping":""}:{}),t==null?void 0:t.ptm("prev"),s("root"));return pe.createElement(uo,{instance:r,attrs:a,children:o.children})}});import{Component as ho,withComponent as Co}from"@primereact/core/component";import{useCarousel as vo}from"@primereact/headless/carousel";import{mergeProps as yo}from"@primeuix/utils";import*as Tt from"react";import*as me from"@primereact/headless/carousel";var Z=g(m({},me.defaultProps),{as:"div"});var tt=Co({name:"Carousel.Root",defaultProps:Z,setup(r){return vo(r.inProps)},render(r){let{id:o,props:s,state:t,ptmi:e,cx:a}=r,x=yo(m(m({id:o,className:a("root"),"data-orientation":s.orientation,"data-align":s.align,"data-page":t.page},t.swiping?{"data-swiping":""}:{}),s.autoSize?{"data-autosize":""}:{}),e("root"));return Tt.createElement(re,{value:r},Tt.createElement(ho,{instance:r,attrs:x,children:s.children}))}});var Et={};ft(Et,{defaultContentProps:()=>j,defaultIndicatorProps:()=>F,defaultIndicatorsProps:()=>_,defaultItemProps:()=>q,defaultNextProps:()=>K,defaultPrevProps:()=>Q,defaultRootProps:()=>Z});var et={as:tt};var St=Io({name:"Gallery.Thumbnail",defaultProps:et,setup(){return{gallery:d()}},render(r){let{props:o,ptmi:s,gallery:t}=r,v=o,{as:e}=v,a=X(v,["as"]),x=Ro(a,{className:t==null?void 0:t.cx("thumbnail")},t==null?void 0:t.ptm("thumbnail"),s("root"));return ce.createElement(bo,{as:e,instance:r,attrs:x,children:o.children,ref:t==null?void 0:t.thumbnailRef})}});import{Component as Go,withComponent as go}from"@primereact/core/component";import{mergeProps as To}from"@primeuix/utils";import*as le from"react";var ot={as:U};var Nt=go({name:"Gallery.ThumbnailContent",defaultProps:ot,setup(){return{gallery:d()}},render(r){let{props:o,ptmi:s,gallery:t}=r,v=o,{as:e}=v,a=X(v,["as"]),x=To(a,{className:t==null?void 0:t.cx("thumbnailContent")},t==null?void 0:t.ptm("thumbnailContent"),s("root"));return le.createElement(Go,{as:e,instance:r,attrs:x,children:o.children})}});import{Component as wo,withComponent as Eo}from"@primereact/core/component";import{mergeProps as So}from"@primeuix/utils";import*as fe from"react";var rt={as:J};var kt=Eo({name:"Gallery.ThumbnailItem",defaultProps:rt,setup(){return{gallery:d()}},render(r){let{props:o,ptmi:s,gallery:t}=r,v=o,{as:e}=v,a=X(v,["as"]),x=So(a,{className:t==null?void 0:t.cx("thumbnailItem")},t==null?void 0:t.ptm("thumbnailItem"),s("root"));return fe.createElement(wo,{as:e,instance:r,attrs:x,children:o.children})}});import{Component as No,withComponent as ko}from"@primereact/core/component";import{mergeProps as Lo}from"@primeuix/utils";import*as de from"react";var nt={as:"div"};var Lt=ko({name:"Gallery.Toolbar",defaultProps:nt,setup(){return{gallery:d()}},render(r){let{props:o,ptmi:s,gallery:t}=r,e=Lo({className:t==null?void 0:t.cx("toolbar")},s("root"));return de.createElement(No,{instance:r,attrs:e,children:o.children,ref:t==null?void 0:t.toolbarRef})}});import{Component as zo,withComponent as Mo}from"@primereact/core/component";import{mergeProps as Xo}from"@primeuix/utils";import*as ue from"react";var st={as:"div",action:void 0,onClick:void 0};var zt=Mo({name:"Gallery.ToolbarItem",defaultProps:st,setup(){return{gallery:d()}},render(r){let{props:o,ptmi:s,gallery:t}=r,e=Xo({className:t==null?void 0:t.cx("toolbarItem"),onClick:()=>{var a;t==null||t.handleClickAction(o==null?void 0:o.action),(a=o==null?void 0:o.onClick)==null||a.call(o)}},s("root"));return ue.createElement(zo,{instance:r,attrs:e,children:o.children})}});var Xt={};ft(Xt,{defaultBackdropProps:()=>H,defaultContentProps:()=>B,defaultItemProps:()=>O,defaultNextProps:()=>$,defaultPrevProps:()=>W,defaultRootProps:()=>A,defaultThumbnailContentProps:()=>ot,defaultThumbnailItemProps:()=>rt,defaultThumbnailProps:()=>et,defaultToolbarItemProps:()=>st,defaultToolbarProps:()=>nt});import*as p from"react";var xe={normalScale:1,zoomedScale:3};var Gi=Yo({name:"useGalleryItem",defaultProps:xe,setup:({props:r,elementRef:o})=>{let{normalScale:s=1,zoomedScale:t=3}=r,e=d(),[a,x]=p.useState(-1),[v,S]=p.useState(!1),[y,N]=p.useState({x:0,y:0}),[P,D]=p.useState(1),[E,Yt]=p.useState(0),[at,Dt]=p.useState({x:1,y:1}),[Ht,dt]=p.useState(!1),[it,Bt]=p.useState({x:0,y:0}),[ut,pt]=p.useState(!1),T=p.useRef(new Map),k=p.useRef(0),w=p.useCallback(()=>{if(!(e!=null&&e.contentRef.current)||!o.current)return;let n=e==null?void 0:e.contentRef.current.getBoundingClientRect(),i=o.current.firstElementChild;if(!i)return;let c=i.naturalWidth||i.offsetWidth,l=i.naturalHeight||i.offsetHeight;if(c===0||l===0)return;let C=Math.abs(E)%180===90;C&&([c,l]=[l,c]);let h=c/l,b=n.width/n.height,u,f;h>b?(u=Math.min(n.width*.99,c),f=u/h):(f=Math.min(n.height*.99,l),u=f*h),C?(i.style.width=`${f}px`,i.style.height=`${u}px`,o.current.style.width=`${f>0?f:"auto"}px`,o.current.style.height=`${u>0?u:"auto"}px`):(i.style.width=`${u}px`,i.style.height=`${f}px`,o.current.style.width=`${u>0?u:"auto"}px`,o.current.style.height=`${f>0?f:"auto"}px`),o.current.style.aspectRatio=`${c/l}`},[e==null?void 0:e.contentRef,E]),L=p.useCallback(n=>{if(!(e!=null&&e.contentRef.current)||!o.current)return{minX:0,maxX:0,minY:0,maxY:0};let i=e==null?void 0:e.contentRef.current.getBoundingClientRect(),c=n!==void 0?n:P,l=o.current.firstElementChild;if(!l)return{minX:0,maxX:0,minY:0,maxY:0};let C=l.offsetWidth,h=l.offsetHeight;Math.abs(E)%180===90&&([C,h]=[h,C]);let u=C*c,f=h*c,R=i.width/2,G=i.height/2,z=u/2,M=f/2,Re=z>R?z-R:0,Ge=z>R?-(z-R):0,ge=M>G?M-G:0,Te=M>G?-(M-G):0;return{minX:Ge,maxX:Re,minY:Te,maxY:ge}},[e==null?void 0:e.contentRef,P,E]),mt=p.useCallback(()=>{D(t);let n={visibility:"hidden",opacity:0,pointerEvents:"none",userSelect:"none",touchAction:"none"};e!=null&&e.toolbarRef.current&&Object.assign(e==null?void 0:e.toolbarRef.current.style,n),e!=null&&e.thumbnailRef.current&&Object.assign(e==null?void 0:e.thumbnailRef.current.elementRef.current.style,n),e!=null&&e.prevRef.current&&Object.assign(e.prevRef.current.style,n),e!=null&&e.nextRef.current&&Object.assign(e.nextRef.current.style,n),o.current&&(o.current.style.cursor="zoom-out",o.current.style.pointerEvents="auto")},[t,e==null?void 0:e.toolbarRef,e==null?void 0:e.thumbnailRef,e==null?void 0:e.prevRef,e==null?void 0:e.nextRef]),ct=p.useCallback(()=>{D(s),N({x:0,y:0});let n={visibility:"",opacity:"",pointerEvents:"",userSelect:"",touchAction:""};e!=null&&e.toolbarRef.current&&Object.assign(e.toolbarRef.current.style,n),e!=null&&e.thumbnailRef.current&&Object.assign(e.thumbnailRef.current.elementRef.current.style,n),e!=null&&e.prevRef.current&&Object.assign(e.prevRef.current.style,n),e!=null&&e.nextRef.current&&Object.assign(e.nextRef.current.style,n),o.current&&(o.current.style.cursor="zoom-in",o.current.style.pointerEvents="auto")},[s,e==null?void 0:e.toolbarRef,e==null?void 0:e.thumbnailRef,e==null?void 0:e.prevRef,e==null?void 0:e.nextRef]),Ot=()=>{o.current&&(o.current.style.transition="none",Yt(n=>n-90),setTimeout(()=>{o.current&&(o.current.style.transition="")},0))},$t=()=>{o.current&&(o.current.style.transition="none",Yt(n=>n+90),setTimeout(()=>{o.current&&(o.current.style.transition="")},0))},Wt=()=>{Dt(n=>g(m({},n),{x:Math.sign(n.x)*-1}))},At=()=>{Dt(n=>g(m({},n),{y:Math.sign(n.y)*-1}))},jt=()=>{if(!o.current)return;let n=o.current.querySelector("img");if(!n||!n.src)return;let i=document.createElement("a");i.href=n.src;let c=n.src.split("/"),l=c[c.length-1]||"image.jpg";i.download=l,i.target="_blank",document.body.appendChild(i),i.click(),document.body.removeChild(i)},Pe=p.useCallback(n=>{if(ut){pt(!1);return}if(P===s){if(o.current){let i=o.current.getBoundingClientRect(),c=i.width/2,l=i.height/2,C=n.clientX-i.left,h=n.clientY-i.top,b=c-C,u=l-h,f=b*(t-1),R=u*(t-1),G=L(t),z=Math.max(G.minX,Math.min(G.maxX,f)),M=Math.max(G.minY,Math.min(G.maxY,R));N({x:z,y:M})}mt()}else ct()},[ut,s,t,L,P,mt,ct]),he=p.useCallback(n=>{n.preventDefault()},[]),Ce=p.useCallback(n=>{n.currentTarget.setPointerCapture(n.pointerId),T.current.set(n.pointerId,{x:n.clientX,y:n.clientY}),P>1&&(n.pointerType==="mouse"?(dt(!0),Bt({x:n.clientX-y.x,y:n.clientY-y.y}),pt(!1)):n.pointerType==="touch"&&T.current.size===1&&(dt(!0),Bt({x:n.clientX-y.x,y:n.clientY-y.y}),pt(!1),k.current=0)),n.pointerType==="touch"&&T.current.size===1&&(k.current=0)},[P,y]),ve=p.useCallback(n=>{if(!T.current.has(n.pointerId)||!o.current)return;o.current.style.transition="none",o.current.style.cursor||(o.current.style.cursor=P>s?"zoom-out":"zoom-in"),T.current.set(n.pointerId,{x:n.clientX,y:n.clientY});let c=Array.from(T.current.values());if(c.length===2){let[l,C]=c,h=Math.hypot(C.x-l.x,C.y-l.y);if(k.current>0){let b=(h-k.current)*.01;if(Math.abs(b)>.01){let u=P===s?t:s,f=L(u),R=Math.max(f.minX,Math.min(f.maxX,y.x)),G=Math.max(f.minY,Math.min(f.maxY,y.y));N({x:R,y:G}),D(u)}}k.current=h}else if(c.length===1&&Ht){let l=c[0],C=l.x-it.x,h=l.y-it.y,b=L(),u=Math.max(b.minX,Math.min(b.maxX,C)),f=Math.max(b.minY,Math.min(b.maxY,h));N({x:u,y:f}),pt(!0)}},[Ht,it,P,s,t,y,L]),ye=p.useCallback(n=>{o.current&&(o.current.style.transition="",o.current.style.cursor=P>s?"zoom-out":"zoom-in",n.currentTarget.releasePointerCapture(n.pointerId),T.current.delete(n.pointerId),T.current.size<2&&(k.current=0),T.current.size===0&&dt(!1))},[]);p.useEffect(()=>{P<=1&&N({x:0,y:0})},[P]),p.useEffect(()=>{(e==null?void 0:e.state.activeIndex)===a&&document.readyState==="complete"&&w()},[e==null?void 0:e.state.activeIndex,a,w]),p.useEffect(()=>{(e==null?void 0:e.state.activeIndex)===a&&w()},[E,w,e==null?void 0:e.state.activeIndex,a]),p.useEffect(()=>{(e==null?void 0:e.state.activeIndex)===a&&(e==null?void 0:e.state.isFullscreen)!==void 0&&w()},[e==null?void 0:e.state.isFullscreen,w,e==null?void 0:e.state.activeIndex,a]),p.useEffect(()=>{let n=()=>{(e==null?void 0:e.state.activeIndex)===a&&w()};return window.addEventListener("resize",n),()=>window.removeEventListener("resize",n)},[e==null?void 0:e.state.activeIndex,a,w]),p.useEffect(()=>{if(e&&o.current){let n=e.registerItem(o.current);x(n)}},[e]),p.useEffect(()=>{let n=c=>{var l,C,h,b,u,f,R;((l=c.detail)==null?void 0:l.action)==="zoom-in"?mt():((C=c.detail)==null?void 0:C.action)==="zoom-out"?ct():((h=c.detail)==null?void 0:h.action)==="rotate-left"?Ot():((b=c.detail)==null?void 0:b.action)==="rotate-right"?$t():((u=c.detail)==null?void 0:u.action)==="flip-x"?Wt():((f=c.detail)==null?void 0:f.action)==="flip-y"?At():((R=c.detail)==null?void 0:R.action)==="download"&&jt()},i=o.current;return i&&(i.addEventListener("gallery-zoom-in",n),i.addEventListener("gallery-zoom-out",n),i.addEventListener("gallery-rotate-left",n),i.addEventListener("gallery-rotate-right",n),i.addEventListener("gallery-flip-x",n),i.addEventListener("gallery-flip-y",n),i.addEventListener("gallery-download",n)),()=>{i&&(i.removeEventListener("gallery-zoom-in",n),i.removeEventListener("gallery-zoom-out",n),i.removeEventListener("gallery-rotate-left",n),i.removeEventListener("gallery-rotate-right",n),i.removeEventListener("gallery-flip-x",n),i.removeEventListener("gallery-flip-y",n),i.removeEventListener("gallery-download",n))}},[s,t]),p.useEffect(()=>{(e==null?void 0:e.state.activeIndex)===a?S(!0):S(!1)},[e==null?void 0:e.state.activeIndex,a]);let be=p.useMemo(()=>({"data-active":v}),[v]),Ie=p.useMemo(()=>({"--position-x":`${y.x}px`,"--position-y":`${y.y}px`,"--scale":`${P}`,"--rotation":`${E}deg`,"--flip-x":at.x,"--flip-y":at.y}),[y,P,E,at]);return{state:{index:a,position:y,scale:P,rotation:E,flip:at,isActive:v,dragStart:it,hasDragged:ut},attributes:be,CSSVariables:Ie,handlePointerUp:ye,handlePointerMove:ve,handlePointerDown:Ce,handleClick:Pe,handleDragStart:he,zoomIn:mt,zoomOut:ct,rotateLeft:Ot,rotateRight:$t,flipX:Wt,flipY:At,download:jt,calculateConstraints:L,calculateItemSize:w}}});export{xe as defaultItemProps,Gi as useGalleryItem};
|
|
2
|
+
//# sourceMappingURL=index.mjs.map
|