@primereact/headless 11.0.0-alpha.8 → 11.0.0-alpha.9
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/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.mjs +1 -1
- package/carousel/index.mjs.map +1 -1
- package/carousel/useCarousel.d.ts +18 -18
- 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/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/gallery/item/index.mjs +1 -1
- package/gallery/item/index.mjs.map +1 -1
- 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 +20 -0
- package/inputtags/useInputTags.props.d.ts +2 -0
- package/inputtags/useInputTags.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/overlay/index.mjs +1 -1
- package/overlay/index.mjs.map +1 -1
- package/package.json +3 -3
- package/placer/index.mjs +1 -1
- package/placer/index.mjs.map +1 -1
- package/toast/index.mjs +1 -1
- package/toast/index.mjs.map +1 -1
- package/toast/item/index.css +1 -1
- package/toast/item/index.css.map +1 -1
- package/toast/item/index.mjs +1 -1
- package/toast/item/index.mjs.map +1 -1
- package/toast/item/useToastItem.d.ts +1 -1
- package/toast/toastStore.d.ts +3 -2
- 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,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
|
package/carousel/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{withHeadless as
|
|
1
|
+
import{withHeadless as te}from"@primereact/core/headless";import*as i from"react";var B={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 D="[data-item]";function ne(n,v){if(n.size!==v.size)return!1;for(let g of n)if(!v.has(g))return!1;return!0}var ae=te({name:"useCarousel",defaultProps:B,setup({props:n}){var q,W;let[v,g]=i.useState(!1),[O,F]=i.useState(!1),[H,k]=i.useState(!1),[f,J]=i.useState(new Set),[m,G]=i.useState((W=(q=n.page)!=null?q:n.defaultPage)!=null?W:0),l=i.useRef(null),u=i.useRef(new Set),y=i.useRef([]),I=i.useRef(!1),b=i.useRef(null),T=i.useRef(null),S=i.useRef(null),h=i.useRef(null),z=i.useRef(null),x=i.useRef({x:0,y:0}),E=i.useRef(!1);function M(){let t=l.current;if(!t)return[];let e=n.orientation!=="vertical",r=e?t.clientWidth:t.clientHeight,a=Math.max(0,e?t.scrollWidth-r:t.scrollHeight-r),o=[];y.current=[],t.querySelectorAll(D).forEach(c=>{let R=e?c.offsetLeft:c.offsetTop,N=e?c.clientWidth:c.clientHeight,A=R;n.align==="center"?A=R-(r-N)/2:n.align==="end"&&(A=R-(r-N));let $=Math.max(0,Math.min(A,a));y.current.push($),o.push($)});let s=new Set(o.map(Number));ne(f,s)||(u.current=s,J(s))}function w(t){var e,r;if(!n.loop){let a=u.current.size||f.size,o=!1,s=!1;t===0&&(s=!0),t===a-1&&(o=!0),F(o),k(s)}G(t),(e=n.onPageChange)==null||e.call(n,{value:t}),(r=n.onSlideChange)==null||r.call(n,{value:t})}function P(){let t=l.current,e=u.current;if(!t||e.size===0)return;let r=n.orientation==="horizontal"?t.scrollLeft:t.scrollTop,a=Array.from(e).reduce((s,c)=>Math.abs(c-r)<Math.abs(s-r)?c:s,1/0),o=Array.from(e).indexOf(a);return w(o),o}function d(t,e=!1){let r=u.current;if(r.size===0)return;let a=t!=null?t:m,o=n.loop?(a+r.size)%r.size:Math.max(0,Math.min(a,r.size-1));w(o),C(Array.from(r)[o],e)}function U(){d(m+1)}function _(){d(m-1)}function C(t,e=!1){let r=l.current;r&&r.scrollTo({[n.orientation==="horizontal"?"left":"top"]:t,behavior:e?"instant":"smooth"})}function X(t){let e=u.current,r=y.current;if(e.size===0||r.length===0)return;let a=Math.max(0,Math.min(t,r.length-1)),o=r[a];C(o);let s=Array.from(e).indexOf(o);w(s)}i.useLayoutEffect(()=>{let t=l.current;if(t)return S.current=new ResizeObserver(()=>{M();let e=P();d(e!=null?e:m,!0)}),S.current.observe(t),t.querySelectorAll(D).forEach(e=>{var r;return(r=S.current)==null?void 0:r.observe(e)}),M(),()=>{var e;(e=S.current)==null||e.disconnect(),S.current=null}},[]),i.useLayoutEffect(()=>{var e;I.current||(u.current.size||f.size)===0||(I.current=!0,d((e=n.defaultPage)!=null?e:0,!0))},[f,n.page,n.defaultPage]),i.useEffect(()=>{n.page===void 0||n.page===null||n.slide!==void 0||n.slide!==null||u.current.size===0&&f.size===0||d(n.page)},[n.page,f]),i.useEffect(()=>{n.slide===void 0||n.slide===null||u.current.size===0&&f.size===0||X(n.slide)},[n.slide]),i.useEffect(()=>{let t=l.current;if(t)return b.current=new MutationObserver(e=>{e.forEach(()=>{M(),requestAnimationFrame(()=>{let r=P();d(r!=null?r:m,!0)})})}),b.current.observe(t,{childList:!0,subtree:!0}),()=>{var e;(e=b.current)==null||e.disconnect(),b.current=null}},[]),i.useEffect(()=>{let t=l.current;if(t)return T.current=new IntersectionObserver(e=>{e.forEach(r=>{r.isIntersecting?r.target.setAttribute("data-inview","true"):r.target.setAttribute("data-inview","false")})},{root:l.current,threshold:.6}),t.querySelectorAll(D).forEach(e=>{var r;return(r=T.current)==null?void 0:r.observe(e)}),()=>{var e;(e=T.current)==null||e.disconnect(),T.current=null}},[]),i.useEffect(()=>{let t=l.current;if(!t)return;let e=()=>{h.current&&clearTimeout(h.current),h.current=setTimeout(()=>{P()},80)};return e(),t.addEventListener("scroll",e,{passive:!0}),()=>{h.current&&clearTimeout(h.current),h.current=null,t.removeEventListener("scroll",e)}},[]);function j(t){t.button===0&&t.pointerType!=="touch"&&(g(!0),x.current={x:t.clientX,y:t.clientY},E.current=!1)}function K(t){var s,c;let e=l.current;if(!v||!e||t.pointerType==="touch")return;let r=t.clientX-x.current.x,a=t.clientY-x.current.y;Math.abs(r)+Math.abs(a)<6||((c=(s=window.getSelection())==null?void 0:s.toString().length)!=null?c:0)>0||(t.currentTarget.setPointerCapture(t.pointerId),e.style.userSelect="none",E.current=!0,e.style.scrollSnapType="none",e.scrollBy({left:-t.movementX,top:-t.movementY,behavior:"instant"}),t.preventDefault())}function Q(t){if(g(!1),t.currentTarget.releasePointerCapture(t.pointerId),!E.current)return;let e=l.current;if(!e)return;e.style.userSelect="";let r=n.orientation==="horizontal"?e.scrollLeft:e.scrollTop,a=u.current,o=Array.from(a).reduce((c,R)=>Math.abs(R-r)<Math.abs(c-r)?R:c,1/0),s=Array.from(a).indexOf(o);requestAnimationFrame(()=>{o!==void 0&&d(s),requestAnimationFrame(()=>{e.style.scrollSnapType=Y()})})}function V(t){z.current&&clearTimeout(z.current),z.current=setTimeout(()=>{let e=n.orientation==="horizontal"?t.deltaX||t.deltaY:t.deltaY||t.deltaX;e>0&&O||e<0&&H||P()},80)}let Y=()=>{var e;return`${n.orientation==="vertical"?"y":"x"} ${(e=n.snapType)!=null?e:"mandatory"}`},Z={position:"relative",scrollSnapType:Y(),overflowX:n.orientation==="vertical"?"":"scroll",overflowY:n.orientation==="horizontal"?"":"scroll",scrollbarWidth:"none",overscrollBehaviorX:n.orientation==="vertical"?"":"contain",overscrollBehaviorY:n.orientation==="horizontal"?"":"contain",display:"flex",flexDirection:n.orientation==="horizontal"?"":"column","--spacing":n.spacing+"px",gap:"var(--spacing)"},L=n.slidesPerPage&&n.slidesPerPage>0?n.slidesPerPage:1,p=n.autoSize?"auto":`calc(100% /${L} - var(--spacing) * (${L} - 1) / ${L})`,ee={scrollSnapAlign:n.align,flexGrow:0,flexShrink:0,minWidth:0,flexBasis:p};return{state:{swiping:v,isNextDisabled:O,isPrevDisabled:H,snapPoints:f,page:m},contentStyles:Z,itemStyles:ee,contentRef:l,onContentPointerDown:j,onContentPointerMove:K,onContentPointerUp:Q,onContentWheel:V,next:U,prev:_,scrollToPage:d,scrollTo:C,scrollToSlide:X,setToClosest:P}}});export{B as defaultProps,ae as useCarousel};
|
|
2
2
|
//# sourceMappingURL=index.mjs.map
|
package/carousel/index.mjs.map
CHANGED
|
@@ -1 +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\ntype CarouselAnimation = {\n start: () => void;\n stop: () => void;\n reset: () => void;\n};\n\nfunction useCarouselAnimation(update: () => void, render: (alpha: number) => void): CarouselAnimation {\n const frameId = React.useRef(0);\n const lastTimeStamp = React.useRef<number | null>(null);\n const accTime = React.useRef(0);\n const fixedStep = 1000 / 60;\n\n const animate = (timeStamp: number) => {\n if (!frameId.current) return;\n\n if (!lastTimeStamp.current) {\n lastTimeStamp.current = timeStamp;\n update();\n update();\n }\n\n const timeElapsed = timeStamp - lastTimeStamp.current;\n\n lastTimeStamp.current = timeStamp;\n accTime.current += timeElapsed;\n\n while (accTime.current >= fixedStep) {\n update();\n accTime.current -= fixedStep;\n }\n\n const alpha = accTime.current / fixedStep;\n\n render(alpha);\n\n if (frameId.current) frameId.current = requestAnimationFrame(animate);\n };\n\n const start = () => {\n if (!frameId.current) frameId.current = requestAnimationFrame(animate);\n };\n\n const stop = () => {\n cancelAnimationFrame(frameId.current);\n frameId.current = 0;\n lastTimeStamp.current = null;\n accTime.current = 0;\n };\n\n function reset(): void {\n lastTimeStamp.current = null;\n accTime.current = 0;\n }\n\n React.useEffect(() => {\n const handleVisibilityChange = () => {\n if (document.hidden) {\n reset();\n }\n };\n\n document.addEventListener('visibilitychange', handleVisibilityChange);\n\n return () => {\n document.removeEventListener('visibilitychange', handleVisibilityChange);\n };\n }, []);\n\n React.useEffect(() => {\n return () => stop();\n }, []);\n\n return { start, stop, reset };\n}\n\nconst DAMPENING_FACTOR = 0.5;\n\nconst applyDampening = (delta: number) => {\n const distance = Math.abs(delta);\n\n const threshold = 20;\n\n if (distance <= threshold) {\n return delta;\n }\n\n const overflow = distance - threshold;\n\n const maxStretch = 80 / DAMPENING_FACTOR;\n\n const dampened = threshold + (maxStretch * overflow) / (overflow + maxStretch);\n\n return Math.sign(delta) * dampened;\n};\n\ntype SwipeDirection = 1 | -1 | 0;\ntype LoopPoint = { index: number; loopPoint: number; target: () => number };\n\nexport const useCarousel = withHeadless({\n name: 'useCarousel',\n defaultProps,\n setup({ props }) {\n const { loop, orientation, align, slide, onSlideChange } = props;\n const [isSwiping, setIsSwiping] = React.useState(false);\n const [activeIndex, setActiveIndex] = React.useState(slide || 0);\n const [slideSizes, setSlideSizes] = React.useState<number[]>([]);\n const [canLoop, setCanLoop] = React.useState<boolean>(loop || false);\n const [snaps, setSnaps] = React.useState<number[]>([]);\n const [scrollSnaps, setScrollSnaps] = React.useState<number[]>([]);\n const [snapPoints, setSnapPoints] = React.useState<number[]>([]);\n const [slidesLength, setSlidesLength] = React.useState<number>(0);\n const [viewSize, setViewSize] = React.useState<number>(0);\n const [prevDisabled, setPrevDisabled] = React.useState<boolean>(false);\n const [nextDisabled, setNextDisabled] = React.useState<boolean>(false);\n\n const loopPointsRef = React.useRef<LoopPoint[]>([]);\n const swipeDirectionRef = React.useRef<SwipeDirection>(0);\n const prevDeltaRef = React.useRef<number>(0);\n const carouselRef = React.useRef<HTMLDivElement>(null);\n const slideRefs = React.useRef<(HTMLDivElement | null)[]>([]);\n const swipeStartTimeRef = React.useRef<number | null>(null);\n const swipeStartPointerRef = React.useRef<{ x: number; y: number } | null>(null);\n const prevSwipeAmountRef = React.useRef<number>(0);\n const recentSwipeRef = React.useRef<{ time: number; startX: number; startY: number; moved: boolean } | null>(null);\n\n const previousPosition = React.useRef(0);\n const position = React.useRef(0);\n const target = React.useRef(0);\n\n const velocity = 0.09;\n\n const update = () => {\n previousPosition.current = position.current;\n\n const delta = target.current - position.current;\n\n if (Math.abs(delta) < 0.5) {\n position.current = target.current;\n animate.stop();\n\n return;\n }\n\n position.current += delta * velocity;\n };\n\n const render = (alpha: number) => {\n const value = position.current * alpha + previousPosition.current * (1 - alpha);\n\n if (canLoop) {\n normalizeSwipeAmount(value);\n } else {\n setSwipeAmount(value);\n }\n };\n\n const animate = useCarouselAnimation(update, render);\n\n const isVertical = React.useMemo(() => orientation === 'vertical', [orientation]);\n const contentSize = React.useMemo(() => -snaps[snaps.length - 1] + slideSizes[slidesLength - 1], [snaps, slideSizes, slidesLength]);\n const { minOffset, maxOffset } = React.useMemo(() => {\n if (!canLoop) {\n return {\n minOffset: snaps[snaps.length - 1] + viewSize - slideSizes[slideSizes.length - 1],\n maxOffset: snaps[0]\n };\n } else {\n return { minOffset: scrollSnaps[scrollSnaps.length - 1] - slideSizes[slideSizes.length - 1], maxOffset: scrollSnaps[0] };\n }\n }, [scrollSnaps, snaps, slideSizes, canLoop, viewSize]);\n\n const calculateSnaps = React.useCallback(() => {\n if (!slideRefs.current || viewSize === 0 || !carouselRef.current || viewSize === 0 || contentSize === 0) return;\n\n const container = carouselRef.current;\n const containerRect = container.getBoundingClientRect();\n const containerSize = container[isVertical ? 'offsetHeight' : 'offsetWidth'] || 0;\n\n const snaps = slideRefs.current.map((slide) => {\n return Math.abs((isVertical ? containerRect.top : containerRect.left) - (slide?.getBoundingClientRect()[isVertical ? 'top' : 'left'] || 0)) * -1;\n });\n\n const scrollSnaps: number[] = [];\n\n for (let i = 0; i < slideRefs.current.length; i++) {\n const slide = slideRefs.current[i];\n\n if (!slide) continue;\n\n const slideRect = slide.getBoundingClientRect();\n const slideSize = isVertical ? slideRect.height : slideRect.width;\n const startOffset = isVertical ? slideRect.top - containerRect.top : slideRect.left - containerRect.left;\n\n let offset = 0;\n\n if (align === 'start') {\n offset = -startOffset;\n } else if (align === 'center') {\n offset = -startOffset + (containerSize - slideSize) / 2;\n } else if (align === 'end') {\n offset = -startOffset + (containerSize - slideSize);\n }\n\n if (canLoop) {\n scrollSnaps.push(offset);\n } else {\n const minClamp = Math.min(0, viewSize - contentSize);\n const clamped = Math.max(minClamp, Math.min(0, offset));\n\n scrollSnaps.push(clamped);\n }\n }\n\n let lastSnap: number | undefined;\n\n const snapPoints: number[] = [];\n\n scrollSnaps.forEach((snap, index) => {\n if (snap !== lastSnap) {\n snapPoints.push(snap);\n }\n\n lastSnap = scrollSnaps[index];\n });\n\n setSnaps(snaps);\n setScrollSnaps(scrollSnaps);\n setSnapPoints(snapPoints);\n }, [isVertical, align, viewSize, canLoop, contentSize]);\n\n const getSwipeAmount = (): number => {\n if (!carouselRef.current) return 0;\n\n const value = getComputedStyle(carouselRef.current).getPropertyValue(isVertical ? '--p-swipe-amount-y' : '--p-swipe-amount-x') || '0';\n\n return parseFloat(value || '0') || 0;\n };\n\n const setSwipeAmount = (amount: number) => {\n if (!carouselRef.current) return;\n\n if (amount === undefined) return;\n\n if (isVertical) {\n carouselRef.current.style.setProperty('--p-swipe-amount-y', `${amount ?? 0}px`);\n carouselRef.current.style.setProperty('--p-swipe-amount-x', `0px`);\n } else {\n carouselRef.current.style.setProperty('--p-swipe-amount-x', `${amount ?? 0}px`);\n carouselRef.current.style.setProperty('--p-swipe-amount-y', `0px`);\n }\n };\n\n const normalizeSwipeAmount = React.useCallback(\n (amount: number) => {\n if (contentSize === 0 || slidesLength === 0 || !carouselRef.current) return;\n\n let computedAmount = amount;\n\n if (!canLoop) {\n if (computedAmount < minOffset) {\n computedAmount = minOffset + applyDampening(computedAmount - minOffset);\n } else if (computedAmount > maxOffset) {\n computedAmount = maxOffset + applyDampening(computedAmount - maxOffset);\n }\n } else {\n while (computedAmount <= minOffset) computedAmount += contentSize;\n while (computedAmount > maxOffset) computedAmount -= contentSize;\n\n if (computedAmount < minOffset) {\n computedAmount = minOffset + applyDampening(computedAmount - minOffset);\n } else if (computedAmount > maxOffset) {\n computedAmount = maxOffset + applyDampening(computedAmount - maxOffset);\n }\n }\n\n if (Object.is(computedAmount, -0)) computedAmount = 0;\n\n setSwipeAmount(computedAmount);\n updateLoopPoints();\n },\n [isVertical, canLoop, contentSize, slidesLength, minOffset, maxOffset]\n );\n\n const findClosestSnapIndex = (currentOffset: number, snaps: number[], contentSize: number, isLoop: boolean) => {\n let closestIndex = 0;\n let minDistance = Infinity;\n\n snaps.forEach((snap, index) => {\n if (isLoop) {\n const distances = [Math.abs(currentOffset - snap), Math.abs(currentOffset - (snap + contentSize)), Math.abs(currentOffset - (snap - contentSize))];\n const distance = Math.min(...distances);\n\n if (distance < minDistance) {\n minDistance = distance;\n closestIndex = index;\n }\n } else {\n const distance = Math.abs(currentOffset - snap);\n\n if (distance < minDistance) {\n minDistance = distance;\n closestIndex = index;\n }\n }\n });\n\n return closestIndex;\n };\n\n const slideTo = (index?: number, offset?: number) => {\n let newIndex: number | undefined = index;\n\n if (viewSize === 0) return;\n\n if (!(index === undefined || index < 0 || index >= slidesLength)) {\n newIndex = Math.min(index, scrollSnaps.length - 1);\n } else if (offset !== undefined) {\n newIndex = findClosestSnapIndex(offset, scrollSnaps, contentSize, canLoop);\n } else {\n return;\n }\n\n const currentOffset = getSwipeAmount();\n let targetOffset = newIndex !== undefined ? scrollSnaps[newIndex] : offset || 0;\n\n if (canLoop) {\n const loopPoints = loopPointsRef.current;\n const relevantLoopPoint = loopPoints.find((point) => point.index === newIndex);\n\n if (relevantLoopPoint) {\n targetOffset -= relevantLoopPoint.target();\n }\n }\n\n let delta = 0;\n\n if (canLoop && targetOffset <= maxOffset && targetOffset >= 0 && scrollSnaps[scrollSnaps.length - 1] >= currentOffset) {\n delta = -contentSize - currentOffset + targetOffset;\n } else {\n delta = targetOffset - currentOffset;\n }\n\n position.current = currentOffset;\n target.current = currentOffset + delta;\n animate.start();\n\n setActiveIndex(newIndex);\n\n if (onSlideChange && newIndex !== activeIndex) {\n onSlideChange({ value: newIndex });\n }\n };\n\n const updateLoopPoints = React.useCallback(() => {\n if (!loop || !slideRefs.current || snaps.length === 0 || slideSizes.length === 0 || scrollSnaps.length === 0 || viewSize === 0 || slidesLength === 0) return;\n\n const ascItems = Array.from({ length: slidesLength }, (_, index) => index);\n const descItems = Array.from({ length: slidesLength }, (_, index) => slidesLength - 1 - index);\n const tolerance = 0.5;\n\n function removeSlideSizes(indexes: number[], from: number): number {\n return indexes.reduce((a: number, i) => {\n return a - slideSizes[i];\n }, from);\n }\n\n const slidesInGap = (indexes: number[], gap: number) => {\n return indexes.reduce((a: number[], i) => {\n const remainingGap = removeSlideSizes(a, gap);\n\n return remainingGap > 0 ? a.concat([i]) : a;\n }, []);\n };\n\n function findSlideBounds(offset: number) {\n return snaps.map((snap, index) => ({\n start: snap - slideSizes[index] + tolerance + offset,\n end: snap + viewSize - tolerance + offset\n }));\n }\n\n function findLoopPoints(indexes: number[], offset: number, isEndEdge: boolean) {\n const slideBounds = findSlideBounds(offset);\n\n return indexes.map((index) => {\n const initial = isEndEdge ? 0 : -contentSize;\n const altered = isEndEdge ? contentSize : 0;\n const boundEdge = isEndEdge ? 'end' : 'start';\n const loopPoint = slideBounds[index][boundEdge];\n\n return {\n index,\n loopPoint,\n target: () => (getSwipeAmount() > loopPoint ? initial : altered)\n };\n });\n }\n\n const startPoints = () => {\n const gap = viewSize;\n const indexes = slidesInGap(descItems, gap);\n\n return findLoopPoints(indexes, contentSize, false);\n };\n\n const endPoints = () => {\n const gap = viewSize - scrollSnaps[0] - 1;\n const indexes = slidesInGap(ascItems, gap);\n\n return findLoopPoints(indexes, -contentSize, true);\n };\n\n const loopPoints: LoopPoint[] = startPoints().concat(endPoints());\n\n loopPointsRef.current = loopPoints;\n\n const canLoop = loopPoints.every(({ index }) => {\n const otherIndexes = ascItems.filter((i) => i !== index);\n\n return removeSlideSizes(otherIndexes, viewSize) <= 0.1;\n });\n\n setCanLoop(canLoop);\n\n if (!canLoop) return;\n\n loopPoints.forEach((loopPoint) => {\n const { target } = loopPoint;\n const shiftLocation = target();\n\n // if (shiftLocation === swipeAmount[swipeAxis]) return;\n\n const slide = slideRefs.current[loopPoint.index];\n\n if (slide) {\n const transformValue = `translate3d(${isVertical ? '0px' : `${shiftLocation}px`}, ${isVertical ? `${shiftLocation}px` : '0px'}, 0px)`;\n\n slide.style.transform = transformValue;\n }\n });\n }, [loop, orientation, snaps, slideSizes, scrollSnaps, slidesLength, viewSize, contentSize, isVertical]);\n\n const addSlideRef = (el: HTMLDivElement | null) => {\n if (el && !slideRefs.current.includes(el)) {\n slideRefs.current.push(el);\n }\n };\n\n const handlePrev = () => {\n if (!canLoop && getSwipeAmount() >= maxOffset) return;\n\n animate.stop();\n const prevIndex = canLoop ? (activeIndex - 1 + scrollSnaps.length) % scrollSnaps.length : Math.max(0, activeIndex - 1);\n\n slideTo(prevIndex);\n };\n\n const handleNext = () => {\n if (!canLoop && getSwipeAmount() <= minOffset) return;\n\n animate.stop();\n const nextIndex = canLoop ? (activeIndex + 1) % scrollSnaps.length : Math.min(scrollSnaps.length - 1, activeIndex + 1);\n\n slideTo(nextIndex);\n };\n\n const handlePointerDown = (event: PointerEvent) => {\n if (event.button === 2) return;\n\n animate.stop();\n (event.target as HTMLElement).setPointerCapture(event.pointerId);\n\n setIsSwiping(true);\n\n const time = new Date().getTime();\n\n swipeStartTimeRef.current = time;\n swipeStartPointerRef.current = { x: event.clientX, y: event.clientY };\n prevSwipeAmountRef.current = getSwipeAmount();\n\n recentSwipeRef.current = {\n time,\n startX: event.clientX,\n startY: event.clientY,\n moved: false\n };\n };\n\n const handlePointerMove = (event: PointerEvent) => {\n if (!isSwiping || !swipeStartPointerRef.current || !swipeStartTimeRef.current || !carouselRef.current) return;\n\n if (recentSwipeRef.current) {\n recentSwipeRef.current.moved = true;\n }\n\n const delta = isVertical ? event.clientY - swipeStartPointerRef.current.y : event.clientX - swipeStartPointerRef.current.x;\n\n const prevDelta = prevDeltaRef.current;\n\n if (delta > prevDelta) {\n swipeDirectionRef.current = 1;\n } else if (delta < prevDelta) {\n swipeDirectionRef.current = -1;\n }\n\n prevDeltaRef.current = delta;\n\n const prevSwipeAmount = prevSwipeAmountRef.current;\n\n const totalOffset = prevSwipeAmount + delta;\n\n carouselRef.current.style.userSelect = 'none';\n normalizeSwipeAmount(totalOffset);\n };\n\n const handlePointerUp = (event: PointerEvent) => {\n if (event.target instanceof HTMLElement) {\n event.target.releasePointerCapture(event.pointerId);\n }\n\n if (!swipeStartPointerRef.current || !swipeStartTimeRef.current || !carouselRef.current) {\n setIsSwiping(false);\n\n return;\n }\n\n const elapsed = Date.now() - swipeStartTimeRef.current;\n const distance = getSwipeAmount() - prevSwipeAmountRef.current;\n const velocity = Math.abs(distance / elapsed);\n\n if (velocity > 0.3 && Math.abs(distance) < 25) {\n slideTo((activeIndex + swipeDirectionRef.current + slidesLength) % slidesLength);\n } else {\n const currentOffset = getSwipeAmount();\n const closestIndex = findClosestSnapIndex(currentOffset, scrollSnaps, contentSize, canLoop);\n\n slideTo(closestIndex);\n }\n\n carouselRef.current.style.userSelect = '';\n setIsSwiping(false);\n swipeStartPointerRef.current = null;\n swipeStartTimeRef.current = null;\n\n setTimeout(() => {\n recentSwipeRef.current = null;\n }, 100);\n };\n\n const handleClick = (event: MouseEvent) => {\n if (isSwiping) {\n event.preventDefault();\n event.stopPropagation();\n\n return;\n }\n\n if (recentSwipeRef.current) {\n const elapsed = Date.now() - recentSwipeRef.current.time;\n const deltaX = Math.abs(event.clientX - recentSwipeRef.current.startX);\n const deltaY = Math.abs(event.clientY - recentSwipeRef.current.startY);\n const distance = Math.sqrt(deltaX * deltaX + deltaY * deltaY);\n\n const significantMovement = recentSwipeRef.current.moved && elapsed > 150;\n const tooLong = elapsed > 500;\n const tooFar = distance > 25;\n\n if (significantMovement || tooLong || tooFar) {\n event.preventDefault();\n event.stopPropagation();\n\n return;\n }\n }\n };\n\n React.useEffect(() => {\n calculateSnaps();\n }, [calculateSnaps]);\n\n React.useEffect(() => {\n if (scrollSnaps.length === 0 || snapPoints.length === 0 || contentSize === 0) return;\n\n slideTo(props.slide !== undefined ? props.slide : 0);\n }, [props.slide, scrollSnaps, snapPoints, canLoop, contentSize]);\n\n React.useEffect(() => {\n if (canLoop) return;\n\n setPrevDisabled(activeIndex === 0 && !canLoop);\n setNextDisabled(activeIndex === snapPoints.length - 1 && !canLoop);\n }, [activeIndex, canLoop, snapPoints]);\n\n React.useEffect(() => {\n setSlidesLength(slideRefs.current.length);\n }, []);\n\n React.useEffect(() => {\n setViewSize(carouselRef.current?.[isVertical ? 'offsetHeight' : 'offsetWidth'] || 0);\n\n const observer = new ResizeObserver(() => {\n setViewSize(carouselRef.current?.[isVertical ? 'offsetHeight' : 'offsetWidth'] || 0);\n });\n\n if (carouselRef.current) {\n observer.observe(carouselRef.current);\n }\n\n return () => {\n observer.disconnect();\n };\n }, [carouselRef]);\n\n React.useEffect(() => {\n slideRefs.current = [];\n }, []);\n\n React.useEffect(() => {\n if (!slideRefs.current) return;\n\n const observer = new ResizeObserver((entries) => {\n entries.forEach((entry) => {\n const index = slideRefs.current.findIndex((slide) => slide === entry.target);\n\n if (index === -1) return;\n\n setSlideSizes((prev) => {\n const newSizes = [...prev];\n\n newSizes[index] = entry.contentRect[isVertical ? 'height' : 'width'];\n\n return newSizes;\n });\n });\n });\n\n slideRefs.current.forEach((slideEl) => {\n if (slideEl) observer.observe(slideEl);\n });\n\n return () => {\n observer.disconnect();\n };\n }, [isVertical]);\n\n React.useLayoutEffect(() => {\n if (!slideRefs.current?.length) return;\n\n setSlideSizes(slideRefs.current.map((el) => (el ? (isVertical ? el.getBoundingClientRect().height : el.getBoundingClientRect().width) : 0)));\n }, [isVertical]);\n\n const state = {\n isSwiping,\n slideSizes,\n canLoop,\n snaps,\n scrollSnaps,\n activeIndex,\n prevDisabled,\n nextDisabled,\n snapPoints\n };\n\n return {\n state,\n handlePrev,\n handleNext,\n handlePointerDown,\n handlePointerMove,\n handlePointerUp,\n addSlideRef,\n slideTo,\n handleClick,\n carouselRef\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 spacing: 16,\n slide: 0,\n onSlideChange: undefined\n};\n"],"mappings":"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","names":["withHeadless","React","defaultProps","useCarouselAnimation","update","render","frameId","lastTimeStamp","accTime","fixedStep","animate","timeStamp","timeElapsed","alpha","start","stop","reset","handleVisibilityChange","DAMPENING_FACTOR","applyDampening","delta","distance","threshold","overflow","maxStretch","dampened","useCarousel","withHeadless","defaultProps","props","loop","orientation","align","slide","onSlideChange","isSwiping","setIsSwiping","activeIndex","setActiveIndex","slideSizes","setSlideSizes","canLoop","setCanLoop","snaps","setSnaps","scrollSnaps","setScrollSnaps","snapPoints","setSnapPoints","slidesLength","setSlidesLength","viewSize","setViewSize","prevDisabled","setPrevDisabled","nextDisabled","setNextDisabled","loopPointsRef","swipeDirectionRef","prevDeltaRef","carouselRef","slideRefs","swipeStartTimeRef","swipeStartPointerRef","prevSwipeAmountRef","recentSwipeRef","previousPosition","position","target","velocity","value","normalizeSwipeAmount","setSwipeAmount","isVertical","contentSize","minOffset","maxOffset","calculateSnaps","container","containerRect","containerSize","i","slideRect","slideSize","startOffset","offset","minClamp","clamped","lastSnap","snap","index","getSwipeAmount","amount","computedAmount","updateLoopPoints","findClosestSnapIndex","currentOffset","isLoop","closestIndex","minDistance","distances","slideTo","newIndex","targetOffset","relevantLoopPoint","point","ascItems","_","descItems","tolerance","removeSlideSizes","indexes","from","a","slidesInGap","gap","findSlideBounds","findLoopPoints","isEndEdge","slideBounds","initial","altered","boundEdge","loopPoint","startPoints","endPoints","loopPoints","otherIndexes","shiftLocation","transformValue","addSlideRef","el","handlePrev","prevIndex","handleNext","nextIndex","handlePointerDown","event","time","handlePointerMove","prevDelta","totalOffset","handlePointerUp","elapsed","handleClick","deltaX","deltaY","significantMovement","tooLong","tooFar","_a","observer","entries","entry","prev","newSizes","slideEl"]}
|
|
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\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 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) {\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);\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 content.querySelectorAll<HTMLElement>(ITEM_SELECTOR).forEach((item) => resizeObserverRef.current?.observe(item));\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 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.useEffect(() => {\n if (props.page === undefined || props.page === null || props.slide !== undefined || props.slide !== null) return;\n\n if (snapPointsRef.current.size === 0 && snapPoints.size === 0) return;\n\n scrollToPage(props.page);\n }, [props.page, snapPoints]);\n\n React.useEffect(() => {\n if (props.slide === undefined || props.slide === null) return;\n\n if (snapPointsRef.current.size === 0 && snapPoints.size === 0) return;\n\n scrollToSlide(props.slide);\n }, [props.slide]);\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 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', 'true');\n else entry.target.setAttribute('data-inview', 'false');\n });\n },\n {\n root: contentRef.current,\n threshold: 0.6\n }\n );\n\n content.querySelectorAll<HTMLElement>(ITEM_SELECTOR).forEach((item) => intersectionObserverRef.current?.observe(item));\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 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 contentStyles = {\n position: 'relative',\n scrollSnapType: resolveSnapType(),\n overflowX: props.orientation === 'vertical' ? '' : 'scroll',\n overflowY: props.orientation === 'horizontal' ? '' : 'scroll',\n scrollbarWidth: 'none',\n overscrollBehaviorX: props.orientation === 'vertical' ? '' : 'contain',\n overscrollBehaviorY: props.orientation === 'horizontal' ? '' : 'contain',\n display: 'flex',\n flexDirection: props.orientation === 'horizontal' ? '' : 'column',\n '--spacing': props.spacing + 'px',\n gap: 'var(--spacing)'\n } as React.CSSProperties;\n\n const slidesPerPage = props.slidesPerPage && props.slidesPerPage > 0 ? props.slidesPerPage : 1;\n const basis = props.autoSize ? 'auto' : `calc(100% /${slidesPerPage} - var(--spacing) * (${slidesPerPage} - 1) / ${slidesPerPage})`;\n\n const itemStyles = {\n scrollSnapAlign: props.align,\n flexGrow: 0,\n flexShrink: 0,\n minWidth: 0,\n flexBasis: basis\n } as React.CSSProperties;\n\n const state = {\n swiping,\n isNextDisabled,\n isPrevDisabled,\n snapPoints,\n page: pageState\n };\n\n return {\n state,\n contentStyles,\n itemStyles,\n contentRef,\n onContentPointerDown,\n onContentPointerMove,\n onContentPointerUp,\n onContentWheel,\n next,\n prev,\n scrollToPage,\n scrollTo,\n scrollToSlide,\n setToClosest\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","mutationObserverRef","intersectionObserverRef","resizeObserverRef","scrollTimeoutRef","wheelTimeoutRef","swipeStartPointRef","isRealSwipeRef","computeSnapPoints","content","isHorizontal","trackSize","maxOffset","snaps","item","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","e","onContentPointerMove","deltaX","deltaY","onContentPointerUp","resolveSnapType","onContentWheel","primaryDelta","contentStyles","slidesPerPage","basis","itemStyles"]}
|
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
export declare const useCarousel: (inProps?: unknown) => import("@primereact/types/core").HeadlessInstance<import("@primereact/types/shared/carousel").useCarouselProps, unknown, {
|
|
3
3
|
state: {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
activeIndex: number;
|
|
10
|
-
prevDisabled: boolean;
|
|
11
|
-
nextDisabled: boolean;
|
|
12
|
-
snapPoints: number[];
|
|
4
|
+
swiping: boolean;
|
|
5
|
+
isNextDisabled: boolean;
|
|
6
|
+
isPrevDisabled: boolean;
|
|
7
|
+
snapPoints: Set<number>;
|
|
8
|
+
page: number;
|
|
13
9
|
};
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
10
|
+
contentStyles: React.CSSProperties;
|
|
11
|
+
itemStyles: React.CSSProperties;
|
|
12
|
+
contentRef: React.RefObject<HTMLDivElement | null>;
|
|
13
|
+
onContentPointerDown: (e: React.PointerEvent<HTMLDivElement>) => void;
|
|
14
|
+
onContentPointerMove: (e: React.PointerEvent<HTMLDivElement>) => void;
|
|
15
|
+
onContentPointerUp: (e: React.PointerEvent<HTMLDivElement>) => void;
|
|
16
|
+
onContentWheel: (e: React.WheelEvent<HTMLDivElement>) => void;
|
|
17
|
+
next: () => void;
|
|
18
|
+
prev: () => void;
|
|
19
|
+
scrollToPage: (page?: number, instant?: boolean) => void;
|
|
20
|
+
scrollTo: (snapPoint: number, instant?: boolean) => void;
|
|
21
|
+
scrollToSlide: (slide: number) => void;
|
|
22
|
+
setToClosest: () => number | undefined;
|
|
23
23
|
}>;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{withHeadless as F}from"@primereact/core/headless";import{useQueueTask as z}from"@primereact/hooks/use-queue-task";import{getNextElementSibling as N,getPreviousElementSibling as Q,shallowEquals as J}from"@primeuix/utils";import*as g from"react";var k={selected:void 0,defaultSelected:"",onSelectedChange:void 0,selectOnHover:!0,filter:void 0,loop:!1,jump:5};var K="[data-item]",j=`${K}:not([aria-disabled='true'])`,x="[data-group]",q="data-value",ne=F({name:"useCommandMenu",defaultProps:k,setup({props:p}){let b=g.useRef(null),a=g.useRef(p);a.current=p;let M=z(),o=g.useMemo(()=>{var v,R;let e={search:"",selected:(R=(v=a.current.selected)!=null?v:a.current.defaultSelected)!=null?R:"",filtered:{count:0,items:new Map,groups:new Set}},n=new Map,r=new Set,s=new Map,d=new Map,h=new Set;return{subscribe:t=>(h.add(t),()=>h.delete(t)),emit:()=>{h.forEach(t=>t())},snapshot:()=>e,setSearch:t=>{e.search!==t&&(e.search=t,o.filter(),o.sort(),M("searchChange",y),o.emit())},setSelected:t=>{var c,u;if(e.selected!==t){if(e.selected=t,a.current.selected!==void 0){let l=t!=null?t:"";(u=(c=a.current).onSelectedChange)==null||u.call(c,l);return}o.emit()}},registerValue:(t,c,u)=>{var l,L;c&&(c!==((l=n.get(t))==null?void 0:l.value)||!J(u,(L=n.get(t))==null?void 0:L.keywords))&&(n.set(t,{value:c,keywords:u}),e.filtered.items.set(t,A(c,e.search,u)),M("registerValue",()=>{o.sort(),o.emit()}))},registerItem:(t,c)=>{var u;return r.add(t),c&&(d.set(t,c),s.has(c)?(u=s.get(c))==null||u.add(t):s.set(c,new Set([t]))),M("registerItem",()=>{o.filter(),o.sort(),e.selected||y({scroll:!1}),o.emit()}),()=>{n.delete(t),r.delete(t),d.delete(t),e.filtered.items.delete(t);let l=C();M("unregisterItem",()=>{o.filter(),(l==null?void 0:l.getAttribute("id"))===t&&y(),o.emit()})}},registerGroup:t=>(s.has(t)||s.set(t,new Set),()=>{n.delete(t),s.delete(t)}),filter:()=>{let t=e.search.trim();if(!t){e.filtered.count=r.size;return}e.filtered.groups=new Set;let c=0;r.forEach(u=>{var i,f;let l=n.get(u),L=A((i=l==null?void 0:l.value)!=null?i:"",t,(f=l==null?void 0:l.keywords)!=null?f:[]);if(e.filtered.items.set(u,L),L>0){c++;let m=d.get(u);m&&e.filtered.groups.add(m)}}),e.filtered.count=c},sort:()=>{if(!e.search.trim())return;let c=e.filtered.items,u=Array.from(e.filtered.groups,i=>{let m=[...s.get(i)||new Set].reduce((S,H)=>{var w;return Math.max(S,(w=c.get(H))!=null?w:0)},0);return[i,m]}),l=b.current;T().sort((i,f)=>{var m,S;return((m=c.get(f.getAttribute("id")))!=null?m:0)-((S=c.get(i.getAttribute("id")))!=null?S:0)}).forEach(i=>{var H,w;let f=i.parentElement,m=i,S=(H=i.closest(x))!=null?H:l;f!==S&&(m=(w=i.closest(`${x} > *`))!=null?w:i),S&&m&&S.appendChild(m)}),u.sort((i,f)=>f[1]-i[1]).forEach(i=>{var m;let f=l==null?void 0:l.querySelector(`${x}[${q}="${encodeURIComponent(i[0])}"]`);(m=f==null?void 0:f.parentElement)==null||m.appendChild(f)})}}},[]),A=(e,n,r)=>{var d;let s=(d=a.current.filter)!=null?d:W;return e?s(e,n,r):0},$=e=>g.useSyncExternalStore(o.subscribe,()=>e(o.snapshot()),()=>e(o.snapshot()));function T(){let e=b.current;return e?Array.from(e.querySelectorAll(j)):[]}function C(){let e=b.current;return e?e.querySelector(`${K}[aria-selected="true"]`):null}function E(e,n={}){var s;if(!e)return;let r=e.getAttribute(q);r&&(o.setSelected(r),((s=n.scroll)==null||s)&&e.scrollIntoView({block:"nearest",behavior:"instant"}))}function y(e={}){E(T()[0],e)}function G(e={}){E(T()[T().length-1],e)}function D(e,n,r){return Math.max(n,Math.min(e,r))}function O(e,n){return(e%n+n)%n}function P(e){var R;let n=T(),r=C(),s=n.length,d=((R=a.current.jump)!=null?R:5)*e;if(!s||!r)return;let h=n.indexOf(r),v=a.current.loop?O(h+d,s):D(h+d,0,s-1);E(n[v])}function I(e){let n=T(),r=C(),s=n.length;if(!s||!r)return;let d=n.indexOf(r),h=a.current.loop?O(d+e,s):D(d+e,0,s-1);E(n[h])}function V(e){let n=C(),r=n==null?void 0:n.closest(x),s=null;for(;r&&!s;)r=e===1?N(r,x):Q(r,x),s=r==null?void 0:r.querySelector(j);s?E(s):I(e)}function _(e){if(!(e.defaultPrevented||e.nativeEvent.isComposing))switch(e.key){case"ArrowDown":{e.preventDefault(),e.metaKey?V(1):e.altKey?P(1):I(1);break}case"ArrowUp":{e.preventDefault(),e.metaKey?V(-1):e.altKey?P(-1):I(-1);break}case"Home":{e.preventDefault(),y();break}case"End":{e.preventDefault(),G();break}case"Enter":{e.preventDefault();let n=C();if(!n||n.dataset.disabled==="true")return;n.click();break}}}function U(e){let{disabled:n}=e.currentTarget.dataset;n==="true"||!a.current.selectOnHover||E(e.currentTarget,{scroll:!1})}function B(e){let{disabled:n}=e.currentTarget.dataset;n!=="true"&&E(e.currentTarget,{scroll:!1})}return g.useLayoutEffect(()=>{p.selected!==void 0&&(Object.is(p.selected,o.snapshot().selected)||(o.setSelected(p.selected),o.emit()))},[p.selected]),g.useLayoutEffect(()=>{M("mount",()=>{E(C(),{scroll:!1})})},[]),{store:o,listRef:b,useCommandMenuStore:$,handleKeyDown:_,handleItemPointerMove:U,handleItemClick:B}}}),W=(p,b,a)=>{var o;return(p+" "+((o=a==null?void 0:a.join(" "))!=null?o:"")).includes(b)?1:0};export{W as defaultFilter,k as defaultProps,ne as useCommandMenu};
|
|
2
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/commandmenu/useCommandMenu.ts","../../src/commandmenu/useCommandMenu.props.ts"],"sourcesContent":["import { withHeadless } from '@primereact/core/headless';\nimport { useQueueTask } from '@primereact/hooks/use-queue-task';\nimport { useCommandMenuStore, useCommandMenuStoreState } from '@primereact/types/shared/commandmenu';\nimport { getNextElementSibling, getPreviousElementSibling, shallowEquals } from '@primeuix/utils';\nimport * as React from 'react';\nimport { defaultProps } from './useCommandMenu.props';\n\nconst ITEM_SELECTOR = `[data-item]`;\nconst VALID_ITEM_SELECTOR = `${ITEM_SELECTOR}:not([aria-disabled='true'])`;\nconst GROUP_SELECTOR = `[data-group]`;\nconst VALUE_SELECTOR = `data-value`;\n\nexport const useCommandMenu = withHeadless({\n name: 'useCommandMenu',\n defaultProps,\n setup({ props }) {\n const listRef = React.useRef<HTMLDivElement | null>(null);\n const propsRef = React.useRef(props);\n\n propsRef.current = props;\n\n const queue = useQueueTask();\n\n const store = React.useMemo<useCommandMenuStore>(() => {\n const state = {\n search: '',\n selected: propsRef.current.selected ?? propsRef.current.defaultSelected ?? '',\n filtered: {\n count: 0,\n items: new Map<string, number>(),\n groups: new Set<string>()\n }\n };\n\n const ids = new Map<string, { value?: string; keywords?: string[] }>(); // id to value and keywords\n const items = new Set<string>(); // item ids\n const groups = new Map<string, Set<string>>(); // group id to item ids\n const itemToGroup = new Map<string, string>(); // item id to group id\n\n const listeners = new Set<() => void>();\n\n return {\n subscribe: (listener: () => void) => {\n listeners.add(listener);\n\n return () => listeners.delete(listener);\n },\n emit: () => {\n listeners.forEach((l) => l());\n },\n snapshot: () => state,\n setSearch: (search: string) => {\n if (state.search !== search) {\n state.search = search;\n store.filter();\n store.sort();\n\n queue('searchChange', selectFirstItem);\n store.emit();\n }\n },\n setSelected: (value: string) => {\n if (state.selected !== value) {\n state.selected = value;\n\n if (propsRef.current.selected !== undefined) {\n const newValue = (value ?? '') as string;\n\n propsRef.current.onSelectedChange?.(newValue);\n\n return;\n }\n\n store.emit();\n }\n },\n registerValue: (id: string, value?: string, keywords?: string[]) => {\n if (!value) return;\n\n if (value !== ids.get(id)?.value || !shallowEquals(keywords, ids.get(id)?.keywords)) {\n ids.set(id, { value, keywords });\n state.filtered.items.set(id, score(value, state.search, keywords));\n\n queue('registerValue', () => {\n store.sort();\n store.emit();\n });\n }\n },\n registerItem: (id: string, groupId?: string) => {\n items.add(id);\n\n if (groupId) {\n itemToGroup.set(id, groupId);\n\n if (!groups.has(groupId)) {\n groups.set(groupId, new Set([id]));\n } else {\n groups.get(groupId)?.add(id);\n }\n }\n\n queue('registerItem', () => {\n store.filter();\n store.sort();\n\n if (!state.selected) selectFirstItem({ scroll: false });\n\n store.emit();\n });\n\n return () => {\n ids.delete(id);\n items.delete(id);\n itemToGroup.delete(id);\n state.filtered.items.delete(id);\n const selectedItem = getSelectedItem();\n\n queue('unregisterItem', () => {\n store.filter();\n if (selectedItem?.getAttribute('id') === id) selectFirstItem();\n\n store.emit();\n });\n };\n },\n registerGroup: (id: string) => {\n if (!groups.has(id)) {\n groups.set(id, new Set());\n }\n\n return () => {\n ids.delete(id);\n groups.delete(id);\n };\n },\n filter: () => {\n const search = state.search.trim();\n\n if (!search) {\n state.filtered.count = items.size;\n\n return;\n }\n\n state.filtered.groups = new Set();\n let counter = 0;\n\n items.forEach((id) => {\n const item = ids.get(id);\n const rank = score(item?.value ?? '', search, item?.keywords ?? []);\n\n state.filtered.items.set(id, rank);\n\n if (rank > 0) {\n counter++;\n const groupId = itemToGroup.get(id);\n\n if (groupId) {\n state.filtered.groups.add(groupId);\n }\n }\n });\n\n state.filtered.count = counter;\n },\n sort: () => {\n const search = state.search.trim();\n\n if (!search) return;\n\n const scores = state.filtered.items;\n\n const sortedGroups = Array.from(state.filtered.groups, (groupId) => {\n const itemIds = groups.get(groupId) || new Set();\n\n const maxScore = [...itemIds].reduce((max, id) => Math.max(max, scores.get(id) ?? 0), 0);\n\n return [groupId, maxScore] as [string, number];\n });\n\n const list = listRef.current;\n\n const items = getValidItems();\n\n items\n .sort((a, b) => (scores.get(b.getAttribute('id')!) ?? 0) - (scores.get(a.getAttribute('id')!) ?? 0))\n .forEach((item) => {\n const parent = item.parentElement;\n\n let itemToAppend = item;\n const appendTo = item.closest(GROUP_SELECTOR) ?? list;\n\n if (parent !== appendTo) itemToAppend = item.closest(`${GROUP_SELECTOR} > *`) ?? item;\n\n if (appendTo && itemToAppend) {\n appendTo.appendChild(itemToAppend);\n }\n });\n\n sortedGroups\n .sort((a, b) => b[1] - a[1])\n .forEach((group) => {\n const element = list?.querySelector(`${GROUP_SELECTOR}[${VALUE_SELECTOR}=\"${encodeURIComponent(group[0])}\"]`);\n\n element?.parentElement?.appendChild(element);\n });\n }\n };\n }, []);\n\n const score = (value: string, search: string, keywords?: string[]) => {\n const filterFn = propsRef.current.filter ?? defaultFilter;\n\n return value ? filterFn(value, search, keywords) : 0;\n };\n\n const useCommandMenuStore = <T>(selector: (state: useCommandMenuStoreState) => T) =>\n React.useSyncExternalStore(\n store.subscribe,\n () => selector(store.snapshot()),\n () => selector(store.snapshot())\n );\n\n function getValidItems(): HTMLElement[] {\n const list = listRef.current;\n\n if (!list) return [];\n\n return Array.from(list.querySelectorAll<HTMLElement>(VALID_ITEM_SELECTOR));\n }\n\n function getSelectedItem(): HTMLElement | null {\n const list = listRef.current;\n\n if (!list) return null;\n\n return list.querySelector<HTMLElement>(`${ITEM_SELECTOR}[aria-selected=\"true\"]`);\n }\n\n function selectItem(element: HTMLElement | null, options: { scroll?: boolean } = {}) {\n if (!element) return;\n\n const value = element.getAttribute(VALUE_SELECTOR);\n\n if (!value) return;\n\n store.setSelected(value);\n\n if (options.scroll ?? true) {\n element.scrollIntoView({ block: 'nearest', behavior: 'instant' });\n }\n }\n\n function selectFirstItem(options: { scroll?: boolean } = {}) {\n selectItem(getValidItems()[0], options);\n }\n\n function selectLastItem(options: { scroll?: boolean } = {}) {\n selectItem(getValidItems()[getValidItems().length - 1], options);\n }\n\n function clamp(value: number, min: number, max: number) {\n return Math.max(min, Math.min(value, max));\n }\n\n function loop(value: number, length: number) {\n return ((value % length) + length) % length;\n }\n\n function jumpBy(direction: 1 | -1) {\n const items = getValidItems();\n const current = getSelectedItem();\n const length = items.length;\n const amount = (propsRef.current.jump ?? 5) * direction;\n\n if (!length || !current) return;\n\n const index = items.indexOf(current);\n const nextIndex = propsRef.current.loop ? loop(index + amount, length) : clamp(index + amount, 0, length - 1);\n\n selectItem(items[nextIndex]);\n }\n\n function jumpByItem(direction: 1 | -1) {\n const items = getValidItems();\n const current = getSelectedItem();\n const length = items.length;\n\n if (!length || !current) return;\n\n const index = items.indexOf(current);\n const nextIndex = propsRef.current.loop ? loop(index + direction, length) : clamp(index + direction, 0, length - 1);\n\n selectItem(items[nextIndex]);\n }\n\n function jumpByGroup(direction: 1 | -1) {\n const current = getSelectedItem();\n let group = current?.closest(GROUP_SELECTOR);\n let item: HTMLElement | null = null;\n\n while (group && !item) {\n group = direction === 1 ? getNextElementSibling(group, GROUP_SELECTOR) : getPreviousElementSibling(group, GROUP_SELECTOR);\n item = group?.querySelector(VALID_ITEM_SELECTOR) as HTMLElement;\n }\n\n if (item) {\n selectItem(item);\n } else {\n jumpByItem(direction);\n }\n }\n\n function handleKeyDown(e: React.KeyboardEvent) {\n if (e.defaultPrevented || e.nativeEvent.isComposing) return;\n\n switch (e.key) {\n case 'ArrowDown': {\n e.preventDefault();\n\n if (e.metaKey) jumpByGroup(1);\n else if (e.altKey) jumpBy(1);\n else jumpByItem(1);\n\n break;\n }\n\n case 'ArrowUp': {\n e.preventDefault();\n\n if (e.metaKey) jumpByGroup(-1);\n else if (e.altKey) jumpBy(-1);\n else jumpByItem(-1);\n\n break;\n }\n\n case 'Home': {\n e.preventDefault();\n selectFirstItem();\n break;\n }\n\n case 'End': {\n e.preventDefault();\n selectLastItem();\n break;\n }\n\n case 'Enter': {\n e.preventDefault();\n const selected = getSelectedItem();\n\n if (!selected || selected.dataset.disabled === 'true') return;\n\n selected.click();\n break;\n }\n }\n }\n\n function handleItemPointerMove(e: React.PointerEvent<HTMLDivElement>) {\n const { disabled } = e.currentTarget.dataset;\n\n if (disabled === 'true' || !propsRef.current.selectOnHover) return;\n\n selectItem(e.currentTarget as HTMLElement, { scroll: false });\n }\n\n function handleItemClick(e: React.MouseEvent<HTMLDivElement>) {\n const { disabled } = e.currentTarget.dataset;\n\n if (disabled === 'true') return;\n\n selectItem(e.currentTarget as HTMLElement, { scroll: false });\n }\n\n React.useLayoutEffect(() => {\n if (props.selected === undefined) return;\n\n if (!Object.is(props.selected, store.snapshot().selected)) {\n store.setSelected(props.selected);\n store.emit();\n }\n }, [props.selected]);\n\n React.useLayoutEffect(() => {\n queue('mount', () => {\n selectItem(getSelectedItem(), { scroll: false });\n });\n }, []);\n\n return {\n store,\n listRef,\n useCommandMenuStore,\n handleKeyDown,\n handleItemPointerMove,\n handleItemClick\n };\n }\n});\n\nexport const defaultFilter = (value: string, search: string, keywords?: string[]) => {\n const extendValue = value + ' ' + (keywords?.join(' ') ?? '');\n\n if (extendValue.includes(search)) return 1;\n\n return 0;\n};\n","import type { useCommandMenuProps } from '@primereact/types/shared/commandmenu';\n\nexport const defaultProps: useCommandMenuProps = {\n selected: undefined,\n defaultSelected: '',\n onSelectedChange: undefined,\n selectOnHover: true,\n filter: undefined,\n loop: false,\n jump: 5\n};\n"],"mappings":"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","names":["withHeadless","useQueueTask","getNextElementSibling","getPreviousElementSibling","shallowEquals","React","defaultProps","ITEM_SELECTOR","VALID_ITEM_SELECTOR","GROUP_SELECTOR","VALUE_SELECTOR","useCommandMenu","withHeadless","defaultProps","props","listRef","propsRef","queue","useQueueTask","store","_a","_b","state","ids","items","groups","itemToGroup","listeners","listener","l","search","selectFirstItem","value","newValue","id","keywords","shallowEquals","score","groupId","selectedItem","getSelectedItem","counter","item","rank","scores","sortedGroups","maxScore","max","list","getValidItems","a","b","parent","itemToAppend","appendTo","group","element","filterFn","defaultFilter","useCommandMenuStore","selector","selectItem","options","selectLastItem","clamp","min","loop","length","jumpBy","direction","current","amount","index","nextIndex","jumpByItem","jumpByGroup","getNextElementSibling","getPreviousElementSibling","handleKeyDown","selected","handleItemPointerMove","disabled","handleItemClick"]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { useCommandMenuStore, useCommandMenuStoreState } from '@primereact/types/shared/commandmenu';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
export declare const useCommandMenu: (inProps?: unknown) => import("@primereact/types/core").HeadlessInstance<import("@primereact/types/shared/commandmenu").useCommandMenuProps, unknown, {
|
|
4
|
+
store: useCommandMenuStore;
|
|
5
|
+
listRef: React.RefObject<HTMLDivElement | null>;
|
|
6
|
+
useCommandMenuStore: <T>(selector: (state: useCommandMenuStoreState) => T) => T;
|
|
7
|
+
handleKeyDown: (e: React.KeyboardEvent) => void;
|
|
8
|
+
handleItemPointerMove: (e: React.PointerEvent<HTMLDivElement>) => void;
|
|
9
|
+
handleItemClick: (e: React.MouseEvent<HTMLDivElement>) => void;
|
|
10
|
+
}>;
|
|
11
|
+
export declare const defaultFilter: (value: string, search: string, keywords?: string[]) => 1 | 0;
|
|
File without changes
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{withHeadless as t}from"@primereact/core/headless";var e={open:!1,defaultOpen:!1,baseZIndex:0,autoZIndex:!0,tabIndex:0,appendTo:"body",onOpenChange:void 0};var p=t({name:"useContextMenu",defaultProps:e});export{e as defaultProps,p as useContextMenu};
|
|
2
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/contextmenu/useContextMenu.ts","../../src/contextmenu/useContextMenu.props.ts"],"sourcesContent":["import { withHeadless } from '@primereact/core/headless';\n// import { useEventListener } from '@primereact/hooks';\n// import * as React from 'react';\n// import { useMenu } from '../menu/useMenu';\nimport { defaultProps } from './useContextMenu.props';\n\nexport const useContextMenu = withHeadless({\n name: 'useContextMenu',\n defaultProps\n // setup: (instance) => {\n // const { props } = instance;\n\n // // Use the menu hook with composite set to false for ContextMenu\n // const menu = useMenu({\n // ...instance,\n // inProps: {\n // ...props,\n // composite: false\n // }\n // });\n\n // const onGlobalContextMenu = (event: React.MouseEvent) => {\n // menu.onTriggerClick(event);\n // };\n\n // const [bindGlobalListener, unbindGlobalListener] = useEventListener({\n // target: 'document',\n // type: 'contextmenu',\n // listener: (event) => onGlobalContextMenu(event as unknown as React.MouseEvent)\n // });\n\n // React.useEffect(() => {\n // if (props.global) {\n // bindGlobalListener();\n // } else {\n // unbindGlobalListener();\n // }\n\n // return () => {\n // unbindGlobalListener();\n // };\n // }, [props.global]);\n\n // return {\n // ...menu\n // };\n // }\n});\n","import type { useContextMenuProps } from '@primereact/types/shared/contextmenu';\n\nexport const defaultProps: useContextMenuProps = {\n open: false,\n defaultOpen: false,\n baseZIndex: 0,\n autoZIndex: true,\n tabIndex: 0,\n appendTo: 'body',\n onOpenChange: undefined\n};\n"],"mappings":"AAAA,OAAS,gBAAAA,MAAoB,4BCEtB,IAAMC,EAAoC,CAC7C,KAAM,GACN,YAAa,GACb,WAAY,EACZ,WAAY,GACZ,SAAU,EACV,SAAU,OACV,aAAc,MAClB,EDJO,IAAMC,EAAiBC,EAAa,CACvC,KAAM,iBACN,aAAAC,CAuCJ,CAAC","names":["withHeadless","defaultProps","useContextMenu","withHeadless","defaultProps"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const useContextMenu: (inProps?: unknown) => import("@primereact/types/core").HeadlessInstance<import("@primereact/types/shared/contextmenu").useContextMenuProps, unknown, Record<PropertyKey, unknown>>;
|
|
File without changes
|
package/gallery/item/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var ye=Object.defineProperty,ve=Object.defineProperties;var be=Object.getOwnPropertyDescriptors;var it=Object.getOwnPropertySymbols;var Ie=Object.prototype.hasOwnProperty,Ge=Object.prototype.propertyIsEnumerable;var at=(o,r,s)=>r in o?ye(o,r,{enumerable:!0,configurable:!0,writable:!0,value:s}):o[r]=s,P=(o,r)=>{for(var s in r||(r={}))Ie.call(r,s)&&at(o,s,r[s]);if(it)for(var s of it(r))Ge.call(r,s)&&at(o,s,r[s]);return o},b=(o,r)=>ve(o,be(r));import{withHeadless as xr}from"@primereact/core/headless";import{Component as lr}from"@primereact/core/component";import{useGallery as ur}from"@primereact/headless/gallery";import{styles as fr}from"@primereact/styles/gallery";import{mergeProps as dr}from"@primeuix/utils";import{withComponent as Re}from"@primereact/core/component";import{styles as Ee}from"@primereact/styles/base";var m=({name:o="UnknownComponent",defaultProps:r,styles:s=b(P({},Ee),{name:"global"}),components:t,setup:e,render:a})=>Re({name:o,defaultProps:r,styles:s,components:t,setup:e,render:a});import*as _ from"react";import{createOptionalContext as we}from"@primereact/core/utils";var[mt,f]=we();import*as pt from"@primereact/headless/gallery";var ct=b(P({},pt.defaultProps),{as:"div"});import{Component as Te}from"@primereact/core/component";import{mergeProps as Se}from"@primeuix/utils";import*as ut from"react";var lt={as:"div"};var ft=m({name:"GalleryBackdrop",defaultProps:lt,setup(){return{gallery:f()}},render(o){let{props:r,ptmi:s,gallery:t}=o,e=Se({className:t==null?void 0:t.cx("backdrop")},s("root"));return ut.createElement(Te,{instance:o,attrs:e,children:r.children})}});import{Component as ke}from"@primereact/core/component";import{mergeProps as Le}from"@primeuix/utils";import*as xt from"react";var dt={as:"div"};var ht=m({name:"GalleryContent",defaultProps:dt,setup(){return{gallery:f()}},render(o){let{props:r,ptmi:s,gallery:t}=o,e=Le({className:t==null?void 0:t.cx("content")},s("root"));return xt.createElement(ke,{instance:o,attrs:e,children:r.children,ref:t==null?void 0:t.contentRef})}});import{Component as Me}from"@primereact/core/component";import{useGalleryItem as ge}from"@primereact/headless/gallery/item";import{mergeProps as ze}from"@primeuix/utils";import*as K from"react";import{createOptionalContext as Ne}from"@primereact/core/utils";var[Ct,jr]=Ne();import*as Pt from"@primereact/headless/gallery";var yt=b(P({},Pt.defaultProps),{as:"div"});var vt=m({name:"GalleryItem",defaultProps:yt,setup(o){let r=f(),s=ge(o.inProps);return b(P({},s),{gallery:r})},render(o){let{id:r,props:s,ptmi:t,gallery:e,handleClick:a,handlePointerDown:N,handlePointerMove:S,handlePointerUp:k,handleDragStart:y,CSSVariables:L,attributes:x}=o,H=ze(P({id:r,className:e==null?void 0:e.cx("item"),onClick:a,onPointerDown:N,onPointerMove:S,onPointerUp:k,onDragStart:y,style:L},x),t("root"),e==null?void 0:e.ptm("item"));return K.createElement(Ct,{value:o},K.createElement(Me,{instance:o,attrs:H,children:s.children}))}});import{Component as De}from"@primereact/core/component";import{mergeProps as Xe}from"@primeuix/utils";import*as It from"react";var bt={as:"button"};var Gt=m({name:"GalleryNext",defaultProps:bt,setup(){return{gallery:f()}},render(o){var a;let{props:r,ptmi:s,gallery:t}=o,e=Xe({className:t==null?void 0:t.cx("next"),onClick:(a=t==null?void 0:t.actions)==null?void 0:a.next},s("root"));return It.createElement(De,{instance:o,attrs:e,children:r.children,ref:t==null?void 0:t.nextRef})}});import{Component as Ye}from"@primereact/core/component";import{mergeProps as He}from"@primeuix/utils";import*as Et from"react";var Rt={as:"button"};var wt=m({name:"GalleryPrev",defaultProps:Rt,setup(){return{gallery:f()}},render(o){var a;let{props:r,ptmi:s,gallery:t}=o,e=He({className:t==null?void 0:t.cx("prev"),onClick:(a=t==null?void 0:t.actions)==null?void 0:a.prev},s("root"));return Et.createElement(Ye,{instance:o,attrs:e,children:r.children,ref:t==null?void 0:t.prevRef})}});import{Component as er}from"@primereact/core/component";import{mergeProps as rr}from"@primeuix/utils";import{Component as Je}from"@primereact/core/component";import{useCarousel as Qe}from"@primereact/headless/carousel";import{styles as Ze}from"@primereact/styles/carousel";import{mergeProps as tr}from"@primeuix/utils";import*as q from"react";import{createOptionalContext as Oe}from"@primereact/core/utils";var[Tt,I]=Oe();import*as St from"@primereact/headless/carousel";var kt=b(P({},St.defaultProps),{as:"div"});import{Component as $e}from"@primereact/core/component";import{mergeProps as Nt}from"@primeuix/utils";import*as V from"react";var Lt={as:"div"};var Mt=m({name:"CarouselContent",defaultProps:Lt,setup(){return{carousel:I()}},render(o){let{props:r,ptmi:s,carousel:t}=o,e=Nt({className:t==null?void 0:t.cx("content",{orientation:t==null?void 0:t.props.orientation}),style:{"--p-swipe-amount-x":"0px","--p-swipe-amount-y":"0px","--p-spacing":`${t==null?void 0:t.props.spacing}px`},onPointerDown:t==null?void 0:t.handlePointerDown,onPointerMove:t==null?void 0:t.handlePointerMove,onPointerUp:t==null?void 0:t.handlePointerUp,onClick:t==null?void 0:t.handleClick,onClickCapture:t==null?void 0:t.handleClick},t==null?void 0:t.ptm("content"),s("root")),a=Nt({className:t==null?void 0:t.cx("viewport")},t==null?void 0:t.ptm("viewport"));return V.createElement("div",P({},a),V.createElement($e,{instance:o,attrs:e,children:r.children,ref:t==null?void 0:t.carouselRef}))}});import{Component as je}from"@primereact/core/component";import{mergeProps as Be}from"@primeuix/utils";import*as zt from"react";var gt={as:"button",snap:void 0,index:void 0};var W=m({name:"CarouselIndicator",defaultProps:gt,setup(){return{carousel:I()}},render(o){var a;let{props:r,ptmi:s,carousel:t}=o,e=Be({className:t==null?void 0:t.cx("indicator",{active:r.index===((a=t==null?void 0:t.state)==null?void 0:a.activeIndex)}),onClick:()=>t==null?void 0:t.slideTo(void 0,r.snap)},t==null?void 0:t.ptm("indicator"),s("root"));return zt.createElement(je,{instance:o,attrs:e,children:r.children})}});import{Component as Ae}from"@primereact/core/component";import{mergeProps as We}from"@primeuix/utils";import*as X from"react";var Dt={as:"div"};var Xt=m({name:"CarouselIndicators",defaultProps:Dt,setup(){return{carousel:I()}},render(o){var a,N;let{props:r,ptmi:s,carousel:t}=o,e=We({className:t==null?void 0:t.cx("indicators")},t==null?void 0:t.ptm("indicators"),s("root"));return X.createElement(Ae,{instance:o,attrs:e,children:(N=r.children)!=null?N:X.createElement(X.Fragment,null,(a=t==null?void 0:t.state)==null?void 0:a.snapPoints.map((S,k)=>X.createElement(W,{key:k,snap:S,index:k})))})}});import{Component as Ue}from"@primereact/core/component";import{mergeProps as Fe}from"@primeuix/utils";import*as Ht from"react";var Yt={as:"div",size:100};var Ot=m({name:"CarouselItem",defaultProps:Yt,setup(){return{carousel:I()}},render(o){let{props:r,ptmi:s,carousel:t}=o,e=Fe({className:t==null?void 0:t.cx("item"),style:{"--p-slide-size":`${r.size}%`}},t==null?void 0:t.ptm("item"),s("root"));return Ht.createElement(Ue,{instance:o,attrs:e,children:r.children,ref:t==null?void 0:t.addSlideRef})}});import{Component as Ke}from"@primereact/core/component";import{mergeProps as Ve}from"@primeuix/utils";import*as jt from"react";var $t={as:"button"};var Bt=m({name:"CarouselNext",defaultProps:$t,setup(){return{carousel:I()}},render(o){let{props:r,ptmi:s,carousel:t}=o,e=t==null?void 0:t.state.nextDisabled,a=Ve({className:t==null?void 0:t.cx("prev",{disabled:e}),onClick:t==null?void 0:t.handleNext,disabled:e},t==null?void 0:t.ptm("prev"),s("root"));return jt.createElement(Ke,{instance:o,attrs:a,children:r.children})}});import{Component as qe}from"@primereact/core/component";import{mergeProps as _e}from"@primeuix/utils";import*as Wt from"react";var At={as:"button"};var Ut=m({name:"CarouselPrev",defaultProps:At,setup(){return{carousel:I()}},render(o){let{props:r,ptmi:s,carousel:t}=o,e=t==null?void 0:t.state.prevDisabled,a=_e({className:t==null?void 0:t.cx("prev",{disabled:e}),onClick:t==null?void 0:t.handlePrev,disabled:e},t==null?void 0:t.ptm("prev"),s("root"));return Wt.createElement(qe,{instance:o,attrs:a,children:r.children})}});var Y=m({name:"Carousel",defaultProps:kt,styles:Ze,setup(o){return Qe(o.inProps)},render(o){let{id:r,props:s,ptmi:t,cx:e}=o,a=tr({id:r,className:e("root")},t("root"));return q.createElement(Tt,{value:o},q.createElement(Je,{instance:o,attrs:a,children:s.children}))},components:{Content:Mt,Item:Ot,Next:Bt,Prev:Ut,Indicators:Xt,Indicator:W}});import*as Kt from"react";var Ft={as:"div"};var Vt=m({name:"GalleryThumbnail",defaultProps:Ft,setup(){return{gallery:f()}},render(o){let{props:r,ptmi:s,gallery:t}=o,e=rr({className:t==null?void 0:t.cx("thumbnail")},s("root"));return Kt.createElement(er,{as:Y,instance:o,attrs:e,children:r.children,ref:t==null?void 0:t.thumbnailRef})}});import{Component as or}from"@primereact/core/component";import{mergeProps as nr}from"@primeuix/utils";import*as _t from"react";var qt={};var Jt=m({name:"GalleryThumbnailContent",defaultProps:qt,setup(){return{gallery:f()}},render(o){let{props:r,ptmi:s,gallery:t}=o,e=nr({className:t==null?void 0:t.cx("thumbnailContent")},s("root"));return _t.createElement(or,{as:Y.Content,instance:o,attrs:e,children:r.children})}});import{Component as sr}from"@primereact/core/component";import{mergeProps as ir}from"@primeuix/utils";import*as Zt from"react";var Qt={};var te=m({name:"GalleryThumbnailItem",defaultProps:Qt,setup(){return{gallery:f()}},render(o){let{props:r,ptmi:s,gallery:t}=o,e=ir({className:t==null?void 0:t.cx("thumbnailItem")},s("root"));return Zt.createElement(sr,{as:Y.Item,instance:o,attrs:e,children:r.children})}});import{Component as ar}from"@primereact/core/component";import{mergeProps as mr}from"@primeuix/utils";import*as re from"react";var ee={as:"div"};var oe=m({name:"GalleryToolbar",defaultProps:ee,setup(){return{gallery:f()}},render(o){let{props:r,ptmi:s,gallery:t}=o,e=mr({className:t==null?void 0:t.cx("toolbar")},s("root"));return re.createElement(ar,{instance:o,attrs:e,children:r.children,ref:t==null?void 0:t.toolbarRef})}});import{Component as pr}from"@primereact/core/component";import{mergeProps as cr}from"@primeuix/utils";import*as se from"react";var ne={as:"div",action:void 0,onClick:void 0};var ie=m({name:"GalleryToolbarItem",defaultProps:ne,setup(){return{gallery:f()}},render(o){let{props:r,ptmi:s,gallery:t}=o,e=cr({className:t==null?void 0:t.cx("toolbarItem"),onClick:()=>{var a;t==null||t.handleClickAction(r==null?void 0:r.action),(a=r==null?void 0:r.onClick)==null||a.call(r)}},s("root"));return se.createElement(pr,{instance:o,attrs:e,children:r.children})}});var Ks=m({name:"Gallery",defaultProps:ct,styles:fr,setup(o){return ur(o.inProps)},render(o){let{id:r,props:s,ptmi:t,cx:e}=o,a=dr({id:r,className:e("root")},t("root"));return _.createElement(mt,{value:o},_.createElement(lr,{instance:o,attrs:a,children:s.children}))},components:{Backdrop:ft,Content:ht,Item:vt,Next:Gt,Prev:wt,Toolbar:oe,ToolbarItem:ie,Thumbnail:Vt,ThumbnailContent:Jt,ThumbnailItem:te}});import*as p from"react";var ae={normalScale:1,zoomedScale:3};var oi=xr({name:"useGalleryItem",defaultProps:ae,setup:({props:o,elementRef:r})=>{let{normalScale:s=1,zoomedScale:t=3}=o,e=f(),[a,N]=p.useState(-1),[S,k]=p.useState(!1),[y,L]=p.useState({x:0,y:0}),[x,H]=p.useState(1),[T,J]=p.useState(0),[O,Q]=p.useState({x:1,y:1}),[Z,U]=p.useState(!1),[$,tt]=p.useState({x:0,y:0}),[F,j]=p.useState(!1),E=p.useRef(new Map),M=p.useRef(0),w=p.useCallback(()=>{if(!(e!=null&&e.contentRef.current)||!r.current)return;let n=e==null?void 0:e.contentRef.current.getBoundingClientRect(),i=r.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(T)%180===90;C&&([c,l]=[l,c]);let h=c/l,v=n.width/n.height,d,u;h>v?(d=Math.min(n.width*.99,c),u=d/h):(u=Math.min(n.height*.99,l),d=u*h),C?(i.style.width=`${u}px`,i.style.height=`${d}px`,r.current.style.width=`${u>0?u:"auto"}px`,r.current.style.height=`${d>0?d:"auto"}px`):(i.style.width=`${d}px`,i.style.height=`${u}px`,r.current.style.width=`${d>0?d:"auto"}px`,r.current.style.height=`${u>0?u:"auto"}px`),r.current.style.aspectRatio=`${c/l}`},[e==null?void 0:e.contentRef,T]),g=p.useCallback(n=>{if(!(e!=null&&e.contentRef.current)||!r.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:x,l=r.current.firstElementChild;if(!l)return{minX:0,maxX:0,minY:0,maxY:0};let C=l.offsetWidth,h=l.offsetHeight;Math.abs(T)%180===90&&([C,h]=[h,C]);let d=C*c,u=h*c,G=i.width/2,R=i.height/2,z=d/2,D=u/2,xe=z>G?z-G:0,he=z>G?-(z-G):0,Ce=D>R?D-R:0,Pe=D>R?-(D-R):0;return{minX:he,maxX:xe,minY:Pe,maxY:Ce}},[e==null?void 0:e.contentRef,x,T]),B=p.useCallback(()=>{H(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),r.current&&(r.current.style.cursor="zoom-out",r.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]),A=p.useCallback(()=>{H(s),L({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),r.current&&(r.current.style.cursor="zoom-in",r.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]),et=()=>{r.current&&(r.current.style.transition="none",J(n=>n-90),setTimeout(()=>{r.current&&(r.current.style.transition="")},0))},rt=()=>{r.current&&(r.current.style.transition="none",J(n=>n+90),setTimeout(()=>{r.current&&(r.current.style.transition="")},0))},ot=()=>{Q(n=>b(P({},n),{x:Math.sign(n.x)*-1}))},nt=()=>{Q(n=>b(P({},n),{y:Math.sign(n.y)*-1}))},st=()=>{if(!r.current)return;let n=r.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)},me=p.useCallback(n=>{if(F){j(!1);return}if(x===s){if(r.current){let i=r.current.getBoundingClientRect(),c=i.width/2,l=i.height/2,C=n.clientX-i.left,h=n.clientY-i.top,v=c-C,d=l-h,u=v*(t-1),G=d*(t-1),R=g(t),z=Math.max(R.minX,Math.min(R.maxX,u)),D=Math.max(R.minY,Math.min(R.maxY,G));L({x:z,y:D})}B()}else A()},[F,s,t,g,x,B,A]),pe=p.useCallback(n=>{n.preventDefault()},[]),ce=p.useCallback(n=>{n.currentTarget.setPointerCapture(n.pointerId),E.current.set(n.pointerId,{x:n.clientX,y:n.clientY}),x>1&&(n.pointerType==="mouse"?(U(!0),tt({x:n.clientX-y.x,y:n.clientY-y.y}),j(!1)):n.pointerType==="touch"&&E.current.size===1&&(U(!0),tt({x:n.clientX-y.x,y:n.clientY-y.y}),j(!1),M.current=0)),n.pointerType==="touch"&&E.current.size===1&&(M.current=0)},[x,y]),le=p.useCallback(n=>{if(!E.current.has(n.pointerId)||!r.current)return;r.current.style.transition="none",r.current.style.cursor||(r.current.style.cursor=x>s?"zoom-out":"zoom-in"),E.current.set(n.pointerId,{x:n.clientX,y:n.clientY});let c=Array.from(E.current.values());if(c.length===2){let[l,C]=c,h=Math.hypot(C.x-l.x,C.y-l.y);if(M.current>0){let v=(h-M.current)*.01;if(Math.abs(v)>.01){let d=x===s?t:s,u=g(d),G=Math.max(u.minX,Math.min(u.maxX,y.x)),R=Math.max(u.minY,Math.min(u.maxY,y.y));L({x:G,y:R}),H(d)}}M.current=h}else if(c.length===1&&Z){let l=c[0],C=l.x-$.x,h=l.y-$.y,v=g(),d=Math.max(v.minX,Math.min(v.maxX,C)),u=Math.max(v.minY,Math.min(v.maxY,h));L({x:d,y:u}),j(!0)}},[Z,$,x,s,t,y,g]),ue=p.useCallback(n=>{r.current&&(r.current.style.transition="",r.current.style.cursor=x>s?"zoom-out":"zoom-in",n.currentTarget.releasePointerCapture(n.pointerId),E.current.delete(n.pointerId),E.current.size<2&&(M.current=0),E.current.size===0&&U(!1))},[]);p.useEffect(()=>{x<=1&&L({x:0,y:0})},[x]),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()},[T,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&&r.current){let n=e.registerItem(r.current);N(n)}},[e]),p.useEffect(()=>{let n=c=>{var l,C,h,v,d,u,G;((l=c.detail)==null?void 0:l.action)==="zoom-in"?B():((C=c.detail)==null?void 0:C.action)==="zoom-out"?A():((h=c.detail)==null?void 0:h.action)==="rotate-left"?et():((v=c.detail)==null?void 0:v.action)==="rotate-right"?rt():((d=c.detail)==null?void 0:d.action)==="flip-x"?ot():((u=c.detail)==null?void 0:u.action)==="flip-y"?nt():((G=c.detail)==null?void 0:G.action)==="download"&&st()},i=r.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?k(!0):k(!1)},[e==null?void 0:e.state.activeIndex,a]);let fe=p.useMemo(()=>({"data-active":S}),[S]),de=p.useMemo(()=>({"--position-x":`${y.x}px`,"--position-y":`${y.y}px`,"--scale":`${x}`,"--rotation":`${T}deg`,"--flip-x":O.x,"--flip-y":O.y}),[y,x,T,O]);return{state:{index:a,position:y,scale:x,rotation:T,flip:O,isActive:S,dragStart:$,hasDragged:F},attributes:fe,CSSVariables:de,handlePointerUp:ue,handlePointerMove:le,handlePointerDown:ce,handleClick:me,handleDragStart:pe,zoomIn:B,zoomOut:A,rotateLeft:et,rotateRight:rt,flipX:ot,flipY:nt,download:st,calculateConstraints:g,calculateItemSize:w}}});export{ae as defaultItemProps,oi as useGalleryItem};
|
|
1
|
+
var Pe=Object.defineProperty,ye=Object.defineProperties;var ve=Object.getOwnPropertyDescriptors;var st=Object.getOwnPropertySymbols;var be=Object.prototype.hasOwnProperty,Ie=Object.prototype.propertyIsEnumerable;var it=(o,r,s)=>r in o?Pe(o,r,{enumerable:!0,configurable:!0,writable:!0,value:s}):o[r]=s,x=(o,r)=>{for(var s in r||(r={}))be.call(r,s)&&it(o,s,r[s]);if(st)for(var s of st(r))Ie.call(r,s)&&it(o,s,r[s]);return o},b=(o,r)=>ye(o,ve(r));import{withHeadless as xr}from"@primereact/core/headless";import{Component as lr}from"@primereact/core/component";import{useGallery as ur}from"@primereact/headless/gallery";import{styles as fr}from"@primereact/styles/gallery";import{mergeProps as dr}from"@primeuix/utils";import{withComponent as Ge}from"@primereact/core/component";import{styles as Re}from"@primereact/styles/base";var m=({name:o="UnknownComponent",defaultProps:r,styles:s=b(x({},Re),{name:"global"}),components:e,setup:t,render:a})=>Ge({name:o,defaultProps:r,styles:s,components:e,setup:t,render:a});import*as _ from"react";import{createOptionalContext as Ee}from"@primereact/core/utils";var[at,f]=Ee();import*as mt from"@primereact/headless/gallery";var pt=b(x({},mt.defaultProps),{as:"div"});import{Component as we}from"@primereact/core/component";import{mergeProps as Te}from"@primeuix/utils";import*as lt from"react";var ct={as:"div"};var ut=m({name:"GalleryBackdrop",defaultProps:ct,setup(){return{gallery:f()}},render(o){let{props:r,ptmi:s,gallery:e}=o,t=Te({className:e==null?void 0:e.cx("backdrop")},s("root"));return lt.createElement(we,{instance:o,attrs:t,children:r.children})}});import{Component as Se}from"@primereact/core/component";import{mergeProps as ge}from"@primeuix/utils";import*as dt from"react";var ft={as:"div"};var xt=m({name:"GalleryContent",defaultProps:ft,setup(){return{gallery:f()}},render(o){let{props:r,ptmi:s,gallery:e}=o,t=ge({className:e==null?void 0:e.cx("content")},s("root"));return dt.createElement(Se,{instance:o,attrs:t,children:r.children,ref:e==null?void 0:e.contentRef})}});import{Component as Le}from"@primereact/core/component";import{useGalleryItem as Me}from"@primereact/headless/gallery/item";import{mergeProps as Ne}from"@primeuix/utils";import*as K from"react";import{createOptionalContext as ke}from"@primereact/core/utils";var[ht,Ar]=ke();import*as Ct from"@primereact/headless/gallery";var Pt=b(x({},Ct.defaultProps),{as:"div"});var yt=m({name:"GalleryItem",defaultProps:Pt,setup(o){let r=f(),s=Me(o.inProps);return b(x({},s),{gallery:r})},render(o){let{id:r,props:s,ptmi:e,gallery:t,handleClick:a,handlePointerDown:T,handlePointerMove:L,handlePointerUp:g,handleDragStart:y,CSSVariables:k,attributes:h}=o,H=Ne(x({id:r,className:t==null?void 0:t.cx("item"),onClick:a,onPointerDown:T,onPointerMove:L,onPointerUp:g,onDragStart:y,style:k},h),e("root"),t==null?void 0:t.ptm("item"));return K.createElement(ht,{value:o},K.createElement(Le,{instance:o,attrs:H,children:s.children}))}});import{Component as De}from"@primereact/core/component";import{mergeProps as Xe}from"@primeuix/utils";import*as bt from"react";var vt={as:"button"};var It=m({name:"GalleryNext",defaultProps:vt,setup(){return{gallery:f()}},render(o){var a;let{props:r,ptmi:s,gallery:e}=o,t=Xe({className:e==null?void 0:e.cx("next"),onClick:(a=e==null?void 0:e.actions)==null?void 0:a.next},s("root"));return bt.createElement(De,{instance:o,attrs:t,children:r.children,ref:e==null?void 0:e.nextRef})}});import{Component as Ye}from"@primereact/core/component";import{mergeProps as ze}from"@primeuix/utils";import*as Rt from"react";var Gt={as:"button"};var Et=m({name:"GalleryPrev",defaultProps:Gt,setup(){return{gallery:f()}},render(o){var a;let{props:r,ptmi:s,gallery:e}=o,t=ze({className:e==null?void 0:e.cx("prev"),onClick:(a=e==null?void 0:e.actions)==null?void 0:a.prev},s("root"));return Rt.createElement(Ye,{instance:o,attrs:t,children:r.children,ref:e==null?void 0:e.prevRef})}});import{Component as er}from"@primereact/core/component";import{mergeProps as rr}from"@primeuix/utils";import{Component as Je}from"@primereact/core/component";import{useCarousel as Qe}from"@primereact/headless/carousel";import{styles as Ze}from"@primereact/styles/carousel";import{mergeProps as tr}from"@primeuix/utils";import*as V from"react";import{createOptionalContext as He}from"@primereact/core/utils";var[wt,I]=He();import*as Tt from"@primereact/headless/carousel";var St=b(x({},Tt.defaultProps),{as:"div"});import{Component as Oe}from"@primereact/core/component";import{mergeProps as $e}from"@primeuix/utils";import*as kt from"react";var gt={as:"div"};var Lt=m({name:"CarouselContent",defaultProps:gt,setup(){return{carousel:I()}},render(o){let{props:r,ptmi:s,carousel:e}=o,t=$e({className:e==null?void 0:e.cx("content"),style:x(x({},e==null?void 0:e.contentStyles),e==null?void 0:e.sx("content")),onPointerDown:e==null?void 0:e.onContentPointerDown,onPointerMove:e==null?void 0:e.onContentPointerMove,onPointerUp:e==null?void 0:e.onContentPointerUp,onWheel:e==null?void 0:e.onContentWheel},e==null?void 0:e.ptm("content"),s("root"));return kt.createElement(Oe,{instance:o,attrs:t,children:r.children,ref:e==null?void 0:e.contentRef})}});import{Component as Ae}from"@primereact/core/component";import{mergeProps as We}from"@primeuix/utils";import*as Nt from"react";var Mt={as:"button",page:void 0};var B=m({name:"CarouselIndicator",defaultProps:Mt,setup(){return{carousel:I()}},render(o){let{props:r,ptmi:s,carousel:e}=o,t=(e==null?void 0:e.state.page)===r.page,a=We({className:e==null?void 0:e.cx("indicator",{active:t}),onClick:()=>e==null?void 0:e.scrollToPage(r.page),"data-active":t},e==null?void 0:e.ptm("indicator"),s("root"));return Nt.createElement(Ae,{instance:o,attrs:a,children:r.children})}});import{Component as je}from"@primereact/core/component";import{mergeProps as Be}from"@primeuix/utils";import*as Y from"react";var Dt={as:"div"};var Xt=m({name:"CarouselIndicators",defaultProps:Dt,setup(){return{carousel:I()}},render(o){var a,T;let{props:r,ptmi:s,carousel:e}=o,t=Be({className:e==null?void 0:e.cx("indicators")},e==null?void 0:e.ptm("indicators"),s("root"));return Y.createElement(je,{instance:o,attrs:t,children:(T=r.children)!=null?T:Y.createElement(Y.Fragment,null,Array.from((a=e==null?void 0:e.state.snapPoints)!=null?a:[]).map((L,g)=>Y.createElement(B,{key:g,page:g})))})}});import{Component as Ue}from"@primereact/core/component";import{mergeProps as Fe}from"@primeuix/utils";import*as zt from"react";var Yt={as:"div",value:void 0};var Ht=m({name:"CarouselItem",defaultProps:Yt,setup(){return{carousel:I()}},render(o){let{id:r,props:s,ptmi:e,carousel:t}=o,a=Fe({id:r,className:t==null?void 0:t.cx("item"),style:x(x({},(t==null?void 0:t.itemStyles)||{}),(t==null?void 0:t.sx("item"))||{}),"data-value":s.value,"data-item":"","data-inview":"false"},t==null?void 0:t.ptm("item"),e("root"));return zt.createElement(Ue,{instance:o,attrs:a,children:s.children})}});import{Component as Ke}from"@primereact/core/component";import{mergeProps as Ve}from"@primeuix/utils";import*as $t from"react";var Ot={as:"button"};var At=m({name:"CarouselNext",defaultProps:Ot,setup(){return{carousel:I()}},render(o){let{props:r,ptmi:s,carousel:e}=o,t=(e==null?void 0:e.state.isNextDisabled)||r.disabled,a=Ve({className:e==null?void 0:e.cx("next",{disabled:t}),onClick:e==null?void 0:e.next,disabled:t},e==null?void 0:e.ptm("prev"),s("root"));return $t.createElement(Ke,{instance:o,attrs:a,children:r.children})}});import{Component as _e}from"@primereact/core/component";import{mergeProps as qe}from"@primeuix/utils";import*as jt from"react";var Wt={as:"button"};var Bt=m({name:"CarouselPrev",defaultProps:Wt,setup(){return{carousel:I()}},render(o){let{props:r,ptmi:s,carousel:e}=o,t=(e==null?void 0:e.state.isPrevDisabled)||r.disabled,a=qe({className:e==null?void 0:e.cx("prev",{disabled:t}),onClick:e==null?void 0:e.prev,disabled:t},e==null?void 0:e.ptm("prev"),s("root"));return jt.createElement(_e,{instance:o,attrs:a,children:r.children})}});var z=m({name:"Carousel",defaultProps:St,styles:Ze,setup(o){return Qe(o.inProps)},render(o){let{id:r,props:s,state:e,ptmi:t,cx:a}=o,T=tr({id:r,className:a("root"),"data-swiping":e.swiping},t("root"));return V.createElement(wt,{value:o},V.createElement(Je,{instance:o,attrs:T,children:s.children}))},components:{Content:Lt,Item:Ht,Next:At,Prev:Bt,Indicators:Xt,Indicator:B}});import*as Ft from"react";var Ut={as:"div"};var Kt=m({name:"GalleryThumbnail",defaultProps:Ut,setup(){return{gallery:f()}},render(o){let{props:r,ptmi:s,gallery:e}=o,t=rr({className:e==null?void 0:e.cx("thumbnail")},s("root"));return Ft.createElement(er,{as:z,instance:o,attrs:t,children:r.children,ref:e==null?void 0:e.thumbnailRef})}});import{Component as or}from"@primereact/core/component";import{mergeProps as nr}from"@primeuix/utils";import*as _t from"react";var Vt={};var qt=m({name:"GalleryThumbnailContent",defaultProps:Vt,setup(){return{gallery:f()}},render(o){let{props:r,ptmi:s,gallery:e}=o,t=nr({className:e==null?void 0:e.cx("thumbnailContent")},s("root"));return _t.createElement(or,{as:z.Content,instance:o,attrs:t,children:r.children})}});import{Component as sr}from"@primereact/core/component";import{mergeProps as ir}from"@primeuix/utils";import*as Qt from"react";var Jt={};var Zt=m({name:"GalleryThumbnailItem",defaultProps:Jt,setup(){return{gallery:f()}},render(o){let{props:r,ptmi:s,gallery:e}=o,t=ir({className:e==null?void 0:e.cx("thumbnailItem")},s("root"));return Qt.createElement(sr,{as:z.Item,instance:o,attrs:t,children:r.children})}});import{Component as ar}from"@primereact/core/component";import{mergeProps as mr}from"@primeuix/utils";import*as ee from"react";var te={as:"div"};var re=m({name:"GalleryToolbar",defaultProps:te,setup(){return{gallery:f()}},render(o){let{props:r,ptmi:s,gallery:e}=o,t=mr({className:e==null?void 0:e.cx("toolbar")},s("root"));return ee.createElement(ar,{instance:o,attrs:t,children:r.children,ref:e==null?void 0:e.toolbarRef})}});import{Component as pr}from"@primereact/core/component";import{mergeProps as cr}from"@primeuix/utils";import*as ne from"react";var oe={as:"div",action:void 0,onClick:void 0};var se=m({name:"GalleryToolbarItem",defaultProps:oe,setup(){return{gallery:f()}},render(o){let{props:r,ptmi:s,gallery:e}=o,t=cr({className:e==null?void 0:e.cx("toolbarItem"),onClick:()=>{var a;e==null||e.handleClickAction(r==null?void 0:r.action),(a=r==null?void 0:r.onClick)==null||a.call(r)}},s("root"));return ne.createElement(pr,{instance:o,attrs:t,children:r.children})}});var Vs=m({name:"Gallery",defaultProps:pt,styles:fr,setup(o){return ur(o.inProps)},render(o){let{id:r,props:s,ptmi:e,cx:t}=o,a=dr({id:r,className:t("root")},e("root"));return _.createElement(at,{value:o},_.createElement(lr,{instance:o,attrs:a,children:s.children}))},components:{Backdrop:ut,Content:xt,Item:yt,Next:It,Prev:Et,Toolbar:re,ToolbarItem:se,Thumbnail:Kt,ThumbnailContent:qt,ThumbnailItem:Zt}});import*as p from"react";var ie={normalScale:1,zoomedScale:3};var ni=xr({name:"useGalleryItem",defaultProps:ie,setup:({props:o,elementRef:r})=>{let{normalScale:s=1,zoomedScale:e=3}=o,t=f(),[a,T]=p.useState(-1),[L,g]=p.useState(!1),[y,k]=p.useState({x:0,y:0}),[h,H]=p.useState(1),[S,q]=p.useState(0),[O,J]=p.useState({x:1,y:1}),[Q,U]=p.useState(!1),[$,Z]=p.useState({x:0,y:0}),[F,A]=p.useState(!1),E=p.useRef(new Map),M=p.useRef(0),w=p.useCallback(()=>{if(!(t!=null&&t.contentRef.current)||!r.current)return;let n=t==null?void 0:t.contentRef.current.getBoundingClientRect(),i=r.current.firstElementChild;if(!i)return;let c=i.naturalWidth||i.offsetWidth,l=i.naturalHeight||i.offsetHeight;if(c===0||l===0)return;let P=Math.abs(S)%180===90;P&&([c,l]=[l,c]);let C=c/l,v=n.width/n.height,d,u;C>v?(d=Math.min(n.width*.99,c),u=d/C):(u=Math.min(n.height*.99,l),d=u*C),P?(i.style.width=`${u}px`,i.style.height=`${d}px`,r.current.style.width=`${u>0?u:"auto"}px`,r.current.style.height=`${d>0?d:"auto"}px`):(i.style.width=`${d}px`,i.style.height=`${u}px`,r.current.style.width=`${d>0?d:"auto"}px`,r.current.style.height=`${u>0?u:"auto"}px`),r.current.style.aspectRatio=`${c/l}`},[t==null?void 0:t.contentRef,S]),N=p.useCallback(n=>{if(!(t!=null&&t.contentRef.current)||!r.current)return{minX:0,maxX:0,minY:0,maxY:0};let i=t==null?void 0:t.contentRef.current.getBoundingClientRect(),c=n!==void 0?n:h,l=r.current.firstElementChild;if(!l)return{minX:0,maxX:0,minY:0,maxY:0};let P=l.offsetWidth,C=l.offsetHeight;Math.abs(S)%180===90&&([P,C]=[C,P]);let d=P*c,u=C*c,G=i.width/2,R=i.height/2,D=d/2,X=u/2,de=D>G?D-G:0,xe=D>G?-(D-G):0,he=X>R?X-R:0,Ce=X>R?-(X-R):0;return{minX:xe,maxX:de,minY:Ce,maxY:he}},[t==null?void 0:t.contentRef,h,S]),W=p.useCallback(()=>{H(e);let n={visibility:"hidden",opacity:0,pointerEvents:"none",userSelect:"none",touchAction:"none"};t!=null&&t.toolbarRef.current&&Object.assign(t==null?void 0:t.toolbarRef.current.style,n),t!=null&&t.thumbnailRef.current&&Object.assign(t==null?void 0:t.thumbnailRef.current.elementRef.current.style,n),t!=null&&t.prevRef.current&&Object.assign(t.prevRef.current.style,n),t!=null&&t.nextRef.current&&Object.assign(t.nextRef.current.style,n),r.current&&(r.current.style.cursor="zoom-out",r.current.style.pointerEvents="auto")},[e,t==null?void 0:t.toolbarRef,t==null?void 0:t.thumbnailRef,t==null?void 0:t.prevRef,t==null?void 0:t.nextRef]),j=p.useCallback(()=>{H(s),k({x:0,y:0});let n={visibility:"",opacity:"",pointerEvents:"",userSelect:"",touchAction:""};t!=null&&t.toolbarRef.current&&Object.assign(t.toolbarRef.current.style,n),t!=null&&t.thumbnailRef.current&&Object.assign(t.thumbnailRef.current.elementRef.current.style,n),t!=null&&t.prevRef.current&&Object.assign(t.prevRef.current.style,n),t!=null&&t.nextRef.current&&Object.assign(t.nextRef.current.style,n),r.current&&(r.current.style.cursor="zoom-in",r.current.style.pointerEvents="auto")},[s,t==null?void 0:t.toolbarRef,t==null?void 0:t.thumbnailRef,t==null?void 0:t.prevRef,t==null?void 0:t.nextRef]),tt=()=>{r.current&&(r.current.style.transition="none",q(n=>n-90),setTimeout(()=>{r.current&&(r.current.style.transition="")},0))},et=()=>{r.current&&(r.current.style.transition="none",q(n=>n+90),setTimeout(()=>{r.current&&(r.current.style.transition="")},0))},rt=()=>{J(n=>b(x({},n),{x:Math.sign(n.x)*-1}))},ot=()=>{J(n=>b(x({},n),{y:Math.sign(n.y)*-1}))},nt=()=>{if(!r.current)return;let n=r.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)},ae=p.useCallback(n=>{if(F){A(!1);return}if(h===s){if(r.current){let i=r.current.getBoundingClientRect(),c=i.width/2,l=i.height/2,P=n.clientX-i.left,C=n.clientY-i.top,v=c-P,d=l-C,u=v*(e-1),G=d*(e-1),R=N(e),D=Math.max(R.minX,Math.min(R.maxX,u)),X=Math.max(R.minY,Math.min(R.maxY,G));k({x:D,y:X})}W()}else j()},[F,s,e,N,h,W,j]),me=p.useCallback(n=>{n.preventDefault()},[]),pe=p.useCallback(n=>{n.currentTarget.setPointerCapture(n.pointerId),E.current.set(n.pointerId,{x:n.clientX,y:n.clientY}),h>1&&(n.pointerType==="mouse"?(U(!0),Z({x:n.clientX-y.x,y:n.clientY-y.y}),A(!1)):n.pointerType==="touch"&&E.current.size===1&&(U(!0),Z({x:n.clientX-y.x,y:n.clientY-y.y}),A(!1),M.current=0)),n.pointerType==="touch"&&E.current.size===1&&(M.current=0)},[h,y]),ce=p.useCallback(n=>{if(!E.current.has(n.pointerId)||!r.current)return;r.current.style.transition="none",r.current.style.cursor||(r.current.style.cursor=h>s?"zoom-out":"zoom-in"),E.current.set(n.pointerId,{x:n.clientX,y:n.clientY});let c=Array.from(E.current.values());if(c.length===2){let[l,P]=c,C=Math.hypot(P.x-l.x,P.y-l.y);if(M.current>0){let v=(C-M.current)*.01;if(Math.abs(v)>.01){let d=h===s?e:s,u=N(d),G=Math.max(u.minX,Math.min(u.maxX,y.x)),R=Math.max(u.minY,Math.min(u.maxY,y.y));k({x:G,y:R}),H(d)}}M.current=C}else if(c.length===1&&Q){let l=c[0],P=l.x-$.x,C=l.y-$.y,v=N(),d=Math.max(v.minX,Math.min(v.maxX,P)),u=Math.max(v.minY,Math.min(v.maxY,C));k({x:d,y:u}),A(!0)}},[Q,$,h,s,e,y,N]),le=p.useCallback(n=>{r.current&&(r.current.style.transition="",r.current.style.cursor=h>s?"zoom-out":"zoom-in",n.currentTarget.releasePointerCapture(n.pointerId),E.current.delete(n.pointerId),E.current.size<2&&(M.current=0),E.current.size===0&&U(!1))},[]);p.useEffect(()=>{h<=1&&k({x:0,y:0})},[h]),p.useEffect(()=>{(t==null?void 0:t.state.activeIndex)===a&&document.readyState==="complete"&&w()},[t==null?void 0:t.state.activeIndex,a,w]),p.useEffect(()=>{(t==null?void 0:t.state.activeIndex)===a&&w()},[S,w,t==null?void 0:t.state.activeIndex,a]),p.useEffect(()=>{(t==null?void 0:t.state.activeIndex)===a&&(t==null?void 0:t.state.isFullscreen)!==void 0&&w()},[t==null?void 0:t.state.isFullscreen,w,t==null?void 0:t.state.activeIndex,a]),p.useEffect(()=>{let n=()=>{(t==null?void 0:t.state.activeIndex)===a&&w()};return window.addEventListener("resize",n),()=>window.removeEventListener("resize",n)},[t==null?void 0:t.state.activeIndex,a,w]),p.useEffect(()=>{if(t&&r.current){let n=t.registerItem(r.current);T(n)}},[t]),p.useEffect(()=>{let n=c=>{var l,P,C,v,d,u,G;((l=c.detail)==null?void 0:l.action)==="zoom-in"?W():((P=c.detail)==null?void 0:P.action)==="zoom-out"?j():((C=c.detail)==null?void 0:C.action)==="rotate-left"?tt():((v=c.detail)==null?void 0:v.action)==="rotate-right"?et():((d=c.detail)==null?void 0:d.action)==="flip-x"?rt():((u=c.detail)==null?void 0:u.action)==="flip-y"?ot():((G=c.detail)==null?void 0:G.action)==="download"&&nt()},i=r.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,e]),p.useEffect(()=>{(t==null?void 0:t.state.activeIndex)===a?g(!0):g(!1)},[t==null?void 0:t.state.activeIndex,a]);let ue=p.useMemo(()=>({"data-active":L}),[L]),fe=p.useMemo(()=>({"--position-x":`${y.x}px`,"--position-y":`${y.y}px`,"--scale":`${h}`,"--rotation":`${S}deg`,"--flip-x":O.x,"--flip-y":O.y}),[y,h,S,O]);return{state:{index:a,position:y,scale:h,rotation:S,flip:O,isActive:L,dragStart:$,hasDragged:F},attributes:ue,CSSVariables:fe,handlePointerUp:le,handlePointerMove:ce,handlePointerDown:pe,handleClick:ae,handleDragStart:me,zoomIn:W,zoomOut:j,rotateLeft:tt,rotateRight:et,flipX:rt,flipY:ot,download:nt,calculateConstraints:N,calculateItemSize:w}}});export{ie as defaultItemProps,ni as useGalleryItem};
|
|
2
2
|
//# sourceMappingURL=index.mjs.map
|