@primereact/headless 11.0.0-alpha.6 → 11.0.0-alpha.7
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/dataview/index.d.ts +2 -0
- package/dataview/index.mjs +2 -0
- package/dataview/index.mjs.map +1 -0
- package/dataview/useDataView.d.ts +3 -0
- package/dataview/useDataView.props.d.ts +2 -0
- package/dataview/useDataView.test.d.ts +0 -0
- package/fileupload/index.d.ts +2 -0
- package/fileupload/index.mjs +2 -0
- package/fileupload/index.mjs.map +1 -0
- package/fileupload/useFileUpload.d.ts +26 -0
- package/fileupload/useFileUpload.props.d.ts +2 -0
- package/fileupload/useFileUpload.test.d.ts +0 -0
- package/gallery/index.d.ts +2 -0
- package/gallery/index.mjs +2 -0
- package/gallery/index.mjs.map +1 -0
- package/gallery/item/index.d.ts +2 -0
- package/gallery/item/index.mjs +2 -0
- package/gallery/item/index.mjs.map +1 -0
- package/gallery/item/useGalleryItem.d.ts +45 -0
- package/gallery/item/useGalleryItem.props.d.ts +2 -0
- package/gallery/useGallery.d.ts +37 -0
- package/gallery/useGallery.props.d.ts +2 -0
- package/gallery/useGallery.test.d.ts +0 -0
- package/package.json +3 -3
- package/speeddial/index.mjs +1 -1
- package/speeddial/index.mjs.map +1 -1
- package/speeddial/useSpeedDial.d.ts +2 -1
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{withHeadless as i}from"@primereact/core/headless";import{localeComparator as l,resolveFieldData as p}from"@primeuix/utils/object";var n={};var P=i({name:"useDataView",defaultProps:n,setup:()=>({sort:(e,o,m)=>{if(e){let s=[...e],a=l();return s.sort((u,c)=>{let r=p(u,o),t=p(c,o);return(a?a(r,t):r>t?1:r<t?-1:0)*m}),s}return null}})});export{n as defaultProps,P as useDataView};
|
|
2
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/dataview/useDataView.ts","../../src/dataview/useDataView.props.ts"],"sourcesContent":["import { withHeadless } from '@primereact/core/headless';\nimport { localeComparator, resolveFieldData } from '@primeuix/utils/object';\nimport { defaultProps } from './useDataView.props';\n\nexport const useDataView = withHeadless({\n name: 'useDataView',\n defaultProps,\n setup: () => {\n const sort = (value: unknown[] | null, sortField: string, sortOrder: number) => {\n if (value) {\n const _value = [...value];\n const comparer = localeComparator();\n\n _value.sort((data1, data2) => {\n const value1 = resolveFieldData(data1, sortField);\n const value2 = resolveFieldData(data2, sortField);\n const cmp = comparer ? comparer(value1, value2) : value1 > value2 ? 1 : value1 < value2 ? -1 : 0;\n\n return cmp * sortOrder;\n });\n\n return _value;\n }\n\n return null;\n };\n\n return {\n // methods\n sort\n };\n }\n});\n","import type { useDataViewProps } from '@primereact/types/shared/dataview';\n\nexport const defaultProps: useDataViewProps = {};\n"],"mappings":"AAAA,OAAS,gBAAAA,MAAoB,4BAC7B,OAAS,oBAAAC,EAAkB,oBAAAC,MAAwB,yBCC5C,IAAMC,EAAiC,CAAC,EDExC,IAAMC,EAAcC,EAAa,CACpC,KAAM,cACN,aAAAC,EACA,MAAO,KAoBI,CAEH,KArBS,CAACC,EAAyBC,EAAmBC,IAAsB,CAC5E,GAAIF,EAAO,CACP,IAAMG,EAAS,CAAC,GAAGH,CAAK,EAClBI,EAAWC,EAAiB,EAElC,OAAAF,EAAO,KAAK,CAACG,EAAOC,IAAU,CAC1B,IAAMC,EAASC,EAAiBH,EAAOL,CAAS,EAC1CS,EAASD,EAAiBF,EAAON,CAAS,EAGhD,OAFYG,EAAWA,EAASI,EAAQE,CAAM,EAAIF,EAASE,EAAS,EAAIF,EAASE,EAAS,GAAK,GAElFR,CACjB,CAAC,EAEMC,CACX,CAEA,OAAO,IACX,CAKA,EAER,CAAC","names":["withHeadless","localeComparator","resolveFieldData","defaultProps","useDataView","withHeadless","defaultProps","value","sortField","sortOrder","_value","comparer","localeComparator","data1","data2","value1","resolveFieldData","value2"]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export declare const useDataView: (inProps?: unknown) => import("@primereact/types/core").HeadlessInstance<import("@primereact/types/shared/dataview").useDataViewProps, unknown, {
|
|
2
|
+
sort: (value: unknown[] | null, sortField: string, sortOrder: number) => unknown[] | null;
|
|
3
|
+
}>;
|
|
File without changes
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{withHeadless as J}from"@primereact/core/headless";import{addClass as Q,isNotEmpty as D,removeClass as B}from"@primeuix/utils";import*as r from"react";var H={name:void 0,url:void 0,multiple:!1,accept:void 0,disabled:!1,auto:!1,maxFileSize:void 0,fileLimit:void 0,withCredentials:!1,customUpload:!1,invalidFileLimitMessage:"Maximum number of files exceeded, limit is {0} at most.",invalidFileSizeMessage:"{0}: Invalid file size, file size should be smaller than {1}.",invalidFileTypeMessage:"{0}: Invalid file type, allowed file types: {1}.",uploadHandler:void 0,onSelect:void 0,onBeforeUpload:void 0,onUpload:void 0,onError:void 0,onProgress:void 0,onBeforeSend:void 0,onClear:void 0,onRemove:void 0};var ie=J({name:"useFileUpload",defaultProps:H,setup({props:t,$primereact:S}){let d=r.useRef(null),c=r.useRef(null),m=r.useRef(0),[l,g]=r.useState([]),[h,T]=r.useState([]),[C,F]=r.useState([]),[U,b]=r.useState(0),u=r.useMemo(()=>D(l),[l]),w=r.useMemo(()=>D(h),[h]),x={files:l,messages:C,progress:U,uploadedFiles:h},P=()=>{u&&E(l)},p=e=>{var f,o;let i=s=>"dataTransfer"in s&&!!s.dataTransfer;u&&g([]);let n=[];t.multiple&&(n=l?[...l]:[]);let a=i(e)?(f=e.dataTransfer)==null?void 0:f.files:(o=e.target)==null?void 0:o.files;if(a){for(let s of Array.from(a))if(!k(s)&&!R()&&O(s)){if(q(s)){let v=s;v.objectURL=window.URL.createObjectURL(s)}n.push(s)}g(n),t.fileLimit&&Z(),t.auto&&D(n)&&!R()&&E(n),t.onSelect&&t.onSelect({originalEvent:e,files:n}),M()}},I=()=>{d.current&&d.current.click()},E=(e=l)=>{var n;let i=(n=e!=null?e:l)!=null?n:[];if(t.customUpload)t.fileLimit&&(m.current+=i.length),t.uploadHandler&&t.uploadHandler({files:i,options:{clear:L,props:t}});else{let a=new XMLHttpRequest,f=new FormData;t.onBeforeUpload&&t.onBeforeUpload({xhr:a,files:i});for(let o of i)f.append(t.name,o,o.name);a.upload.addEventListener("progress",o=>{if(o.lengthComputable){let s=Math.round(o.loaded*100/o.total);b(s)}t.onProgress&&t.onProgress({originalEvent:o,progress:U})}),a.onreadystatechange=()=>{a.readyState===4&&(b(0),a.status>=200&&a.status<300?(t.fileLimit&&(m.current+=i.length),t.onUpload&&t.onUpload({xhr:a,files:i}),T(o=>[...o,...i])):t.onError&&t.onError({xhr:a,files:i}),L())},t.url&&(a.open("POST",t.url,!0),t.onBeforeSend&&t.onBeforeSend({xhr:a,formData:f}),a.withCredentials=!!t.withCredentials,a.send(f))}},L=()=>{g([]),F([]),t.onClear&&t.onClear(),M()},k=e=>{if(l&&l.length){for(let i of l)if(i.name+i.type+i.size===e.name+e.type+e.size)return!0}return!1},O=e=>t.accept&&!A(e)?(F(i=>[...i,t.invalidFileTypeMessage.replace("{0}",e.name).replace("{1}",t.accept)]),!1):t.maxFileSize&&e.size>t.maxFileSize?(F(i=>[...i,t.invalidFileSizeMessage.replace("{0}",e.name).replace("{1}",z(t.maxFileSize))]),!1):!0,A=e=>{let i=t.accept.split(",").map(n=>n.trim());for(let n of i)if(j(n)?y(e.type)===y(n):e.type==n||W(e).toLowerCase()===n.toLowerCase())return!0;return!1},y=e=>e.substring(0,e.indexOf("/")),j=e=>e.indexOf("*")!==-1,W=e=>"."+e.name.split(".").pop(),q=e=>/^image\//.test(e.type),G=e=>{!t.disabled&&(!u||t.multiple)&&(e.stopPropagation(),e.preventDefault())},K=e=>{!t.disabled&&(!u||t.multiple)&&(Q(c.current,"p-fileupload-highlight"),c.current.setAttribute("data-p-highlight","true"),e.stopPropagation(),e.preventDefault())},N=()=>{t.disabled||(B(c.current,"p-fileupload-highlight"),c.current.setAttribute("data-p-highlight","false"))},V=e=>{var i;if(!t.disabled){B(c.current,"p-fileupload-highlight"),c.current.setAttribute("data-p-highlight","false"),e.stopPropagation(),e.preventDefault();let n=(i=e.dataTransfer)==null?void 0:i.files;(t.multiple||n&&n.length===1)&&p(e)}},X=e=>{M();let i=[...l],n=l[e];i.splice(e,1),g(i),t.onRemove&&t.onRemove({file:n})},Y=e=>{let i=[...h];i.splice(e,1),T(i),t.onRemove&&t.onRemove({file:l[e]})},M=()=>{d.current&&(d.current.value="")},z=e=>{var s,v;let a=((v=(s=S==null?void 0:S.config)==null?void 0:s.locale)==null?void 0:v.fileSizeTypes)||["B","KB","MB","GB","TB","PB","EB","ZB","YB"];if(e===0)return`0 ${a[0]}`;let f=Math.floor(Math.log(e)/Math.log(1024));return`${parseFloat((e/Math.pow(1024,f)).toFixed(3))} ${a[f]}`},R=()=>t.fileLimit&&t.fileLimit<l.length+m.current,Z=()=>{R()&&F(e=>[...e,t.invalidFileLimitMessage.replace("{0}",t.fileLimit.toString())])};return{state:x,uploadedFileCount:m,hasFiles:u,hasUploadedFiles:w,inputRef:d,contentRef:c,upload:P,onFileSelect:p,choose:I,uploader:E,clear:L,remove:X,removeUploadedFile:Y,formatSize:z,onDragEnter:G,onDragOver:K,onDragLeave:N,onDrop:V}}});export{H as defaultProps,ie as useFileUpload};
|
|
2
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/fileupload/useFileUpload.ts","../../src/fileupload/useFileUpload.props.ts"],"sourcesContent":["import { withHeadless } from '@primereact/core/headless';\nimport { addClass, isNotEmpty, removeClass } from '@primeuix/utils';\nimport * as React from 'react';\nimport { defaultProps } from './useFileUpload.props';\n\nexport const useFileUpload = withHeadless({\n name: 'useFileUpload',\n defaultProps,\n setup({ props, $primereact }) {\n const inputRef = React.useRef<HTMLInputElement | null>(null);\n const contentRef = React.useRef<HTMLDivElement | null>(null);\n const uploadedFileCount = React.useRef(0);\n\n const [filesState, setFilesState] = React.useState<File[]>([]);\n const [uploadedFilesState, setUploadedFilesState] = React.useState<File[]>([]);\n const [messagesState, setMessagesState] = React.useState<string[]>([]);\n const [progressState, setProgressState] = React.useState(0);\n\n const hasFiles = React.useMemo(() => isNotEmpty(filesState), [filesState]);\n const hasUploadedFiles = React.useMemo(() => isNotEmpty(uploadedFilesState), [uploadedFilesState]);\n\n const state = {\n files: filesState,\n messages: messagesState,\n progress: progressState,\n uploadedFiles: uploadedFilesState\n };\n\n const upload = () => {\n if (hasFiles) {\n uploader(filesState);\n }\n };\n\n const onFileSelect = (event: React.ChangeEvent<HTMLInputElement> | DragEvent) => {\n const isDragEvent = (e: React.ChangeEvent<HTMLInputElement> | DragEvent): e is DragEvent => 'dataTransfer' in e && !!(e as DragEvent).dataTransfer;\n\n if (hasFiles) {\n setFilesState([]);\n }\n\n let currentFiles: File[] = [];\n\n if (props.multiple) {\n currentFiles = filesState ? [...filesState] : [];\n }\n\n const filesList = isDragEvent(event) ? event.dataTransfer?.files : (event.target as HTMLInputElement | null)?.files;\n\n if (!filesList) {\n return;\n }\n\n for (const file of Array.from(filesList)) {\n if (!isFileSelected(file) && !isFileLimitExceeded()) {\n if (validate(file)) {\n if (isImage(file)) {\n const fileWithUrl = file as File & { objectURL?: string };\n\n fileWithUrl.objectURL = window.URL.createObjectURL(file);\n }\n\n currentFiles.push(file);\n }\n }\n }\n\n setFilesState(currentFiles);\n\n if (props.fileLimit) {\n checkFileLimit();\n }\n\n if (props.auto && isNotEmpty(currentFiles) && !isFileLimitExceeded()) {\n uploader(currentFiles);\n }\n\n if (props.onSelect) {\n props.onSelect({ originalEvent: event, files: currentFiles });\n }\n\n clearInput();\n };\n\n const choose = () => {\n if (inputRef.current) {\n inputRef.current.click();\n }\n };\n\n const uploader = (uploadFiles = filesState) => {\n const filesToUpload = uploadFiles ?? filesState ?? [];\n\n if (props.customUpload) {\n if (props.fileLimit) {\n uploadedFileCount.current += filesToUpload.length;\n }\n\n if (props.uploadHandler) {\n props.uploadHandler({\n files: filesToUpload,\n options: {\n clear,\n props\n }\n });\n }\n } else {\n const xhr = new XMLHttpRequest();\n const formData = new FormData();\n\n if (props.onBeforeUpload) {\n props.onBeforeUpload({\n xhr,\n files: filesToUpload\n });\n }\n\n for (const file of filesToUpload) {\n formData.append(props.name as string, file, file.name);\n }\n\n xhr.upload.addEventListener('progress', (event) => {\n if (event.lengthComputable) {\n const progress = Math.round((event.loaded * 100) / event.total);\n\n setProgressState(progress);\n }\n\n if (props.onProgress) {\n props.onProgress({\n originalEvent: event,\n progress: progressState\n });\n }\n });\n\n xhr.onreadystatechange = () => {\n if (xhr.readyState === 4) {\n setProgressState(0);\n\n if (xhr.status >= 200 && xhr.status < 300) {\n if (props.fileLimit) {\n uploadedFileCount.current += filesToUpload.length;\n }\n\n if (props.onUpload) {\n props.onUpload({\n xhr,\n files: filesToUpload\n });\n }\n\n setUploadedFilesState((prevUploadedFiles) => [...prevUploadedFiles, ...filesToUpload]);\n } else {\n if (props.onError) {\n props.onError({\n xhr,\n files: filesToUpload\n });\n }\n }\n\n clear();\n }\n };\n\n if (props.url) {\n xhr.open('POST', props.url, true);\n\n if (props.onBeforeSend) {\n props.onBeforeSend({\n xhr,\n formData\n });\n }\n\n xhr.withCredentials = !!props.withCredentials;\n\n xhr.send(formData);\n }\n }\n };\n\n const clear = () => {\n setFilesState([]);\n setMessagesState([]);\n\n if (props.onClear) {\n props.onClear();\n }\n\n clearInput();\n };\n\n const isFileSelected = (file: File) => {\n if (filesState && filesState.length) {\n for (const sFile of filesState) {\n if (sFile.name + sFile.type + sFile.size === file.name + file.type + file.size) return true;\n }\n }\n\n return false;\n };\n\n const validate = (file: File) => {\n if (props.accept && !isFileTypeValid(file)) {\n setMessagesState((prevMessages) => [...prevMessages, (props.invalidFileTypeMessage as string).replace('{0}', file.name).replace('{1}', props.accept as string)]);\n\n return false;\n }\n\n if (props.maxFileSize && file.size > props.maxFileSize) {\n setMessagesState((prevMessages) => [...prevMessages, (props.invalidFileSizeMessage as string).replace('{0}', file.name).replace('{1}', formatSize(props.maxFileSize as number))]);\n\n return false;\n }\n\n return true;\n };\n\n const isFileTypeValid = (file: File) => {\n const acceptableTypes = (props.accept as string).split(',').map((type) => type.trim());\n\n for (const type of acceptableTypes) {\n const acceptable = isWildcard(type) ? getTypeClass(file.type) === getTypeClass(type) : file.type == type || getFileExtension(file).toLowerCase() === type.toLowerCase();\n\n if (acceptable) {\n return true;\n }\n }\n\n return false;\n };\n\n const getTypeClass = (fileType: string) => {\n return fileType.substring(0, fileType.indexOf('/'));\n };\n\n const isWildcard = (fileType: string) => {\n return fileType.indexOf('*') !== -1;\n };\n\n const getFileExtension = (file: File) => {\n return '.' + file.name.split('.').pop();\n };\n\n const isImage = (file: File) => {\n return /^image\\//.test(file.type);\n };\n\n const onDragEnter = (event: DragEvent) => {\n if (!props.disabled && (!hasFiles || props.multiple)) {\n event.stopPropagation();\n event.preventDefault();\n }\n };\n\n const onDragOver = (event: DragEvent) => {\n if (!props.disabled && (!hasFiles || props.multiple)) {\n // !isUnstyled &&\n addClass(contentRef.current as HTMLDivElement, 'p-fileupload-highlight');\n (contentRef.current as HTMLDivElement).setAttribute('data-p-highlight', 'true');\n event.stopPropagation();\n event.preventDefault();\n }\n };\n\n const onDragLeave = () => {\n if (!props.disabled) {\n // !isUnstyled &&\n removeClass(contentRef.current as HTMLDivElement, 'p-fileupload-highlight');\n (contentRef.current as HTMLDivElement).setAttribute('data-p-highlight', 'false');\n }\n };\n\n const onDrop = (event: DragEvent) => {\n if (!props.disabled) {\n // !isUnstyled &&\n removeClass(contentRef.current as HTMLDivElement, 'p-fileupload-highlight');\n (contentRef.current as HTMLDivElement).setAttribute('data-p-highlight', 'false');\n event.stopPropagation();\n event.preventDefault();\n\n const files = event.dataTransfer?.files;\n const allowDrop = props.multiple || (files && files.length === 1);\n\n if (allowDrop) {\n onFileSelect(event);\n }\n }\n };\n\n const remove = (index: number) => {\n clearInput();\n const currentFiles = [...filesState];\n const removedFile = filesState[index];\n\n currentFiles.splice(index, 1);\n setFilesState(currentFiles);\n\n if (props.onRemove) {\n props.onRemove({\n file: removedFile\n });\n }\n };\n\n const removeUploadedFile = (index: number) => {\n const currentUploadedFiles = [...uploadedFilesState];\n\n currentUploadedFiles.splice(index, 1);\n setUploadedFilesState(currentUploadedFiles);\n\n if (props.onRemove) {\n props.onRemove({\n file: filesState[index]\n });\n }\n };\n\n const clearInput = () => {\n if (inputRef.current) {\n inputRef.current.value = '';\n }\n };\n\n const formatSize = (bytes: number) => {\n const k = 1024;\n const dm = 3;\n // @ts-expect-error TODO:\n const sizes = $primereact?.config?.locale?.fileSizeTypes || ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n\n if (bytes === 0) {\n return `0 ${sizes[0]}`;\n }\n\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n const formattedSize = parseFloat((bytes / Math.pow(k, i)).toFixed(dm));\n\n return `${formattedSize} ${sizes[i]}`;\n };\n\n const isFileLimitExceeded = () => {\n return props.fileLimit && props.fileLimit < filesState.length + uploadedFileCount.current;\n };\n\n const checkFileLimit = () => {\n if (isFileLimitExceeded()) {\n setMessagesState((prevMessages) => [...prevMessages, (props.invalidFileLimitMessage as string).replace('{0}', (props.fileLimit as number).toString())]);\n }\n };\n\n return {\n state,\n uploadedFileCount,\n hasFiles,\n hasUploadedFiles,\n // refs\n inputRef,\n contentRef,\n // methods\n upload,\n onFileSelect,\n choose,\n uploader,\n clear,\n remove,\n removeUploadedFile,\n formatSize,\n onDragEnter,\n onDragOver,\n onDragLeave,\n onDrop\n };\n }\n});\n","import type { useFileUploadProps } from '@primereact/types/shared/fileupload';\n\nexport const defaultProps: useFileUploadProps = {\n name: undefined,\n url: undefined,\n multiple: false,\n accept: undefined,\n disabled: false,\n auto: false,\n maxFileSize: undefined,\n fileLimit: undefined,\n withCredentials: false,\n customUpload: false,\n invalidFileLimitMessage: 'Maximum number of files exceeded, limit is {0} at most.',\n invalidFileSizeMessage: '{0}: Invalid file size, file size should be smaller than {1}.',\n invalidFileTypeMessage: '{0}: Invalid file type, allowed file types: {1}.',\n uploadHandler: undefined,\n onSelect: undefined,\n onBeforeUpload: undefined,\n onUpload: undefined,\n onError: undefined,\n onProgress: undefined,\n onBeforeSend: undefined,\n onClear: undefined,\n onRemove: undefined\n};\n"],"mappings":"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","names":["withHeadless","addClass","isNotEmpty","removeClass","React","defaultProps","useFileUpload","withHeadless","defaultProps","props","$primereact","inputRef","contentRef","uploadedFileCount","filesState","setFilesState","uploadedFilesState","setUploadedFilesState","messagesState","setMessagesState","progressState","setProgressState","hasFiles","isNotEmpty","hasUploadedFiles","state","upload","uploader","onFileSelect","event","_a","_b","isDragEvent","e","currentFiles","filesList","file","isFileSelected","isFileLimitExceeded","validate","isImage","fileWithUrl","checkFileLimit","clearInput","choose","uploadFiles","filesToUpload","clear","xhr","formData","progress","prevUploadedFiles","sFile","isFileTypeValid","prevMessages","formatSize","acceptableTypes","type","isWildcard","getTypeClass","getFileExtension","fileType","onDragEnter","onDragOver","addClass","onDragLeave","removeClass","onDrop","files","remove","index","removedFile","removeUploadedFile","currentUploadedFiles","bytes","sizes","i"]}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
export declare const useFileUpload: (inProps?: unknown) => import("@primereact/types/core").HeadlessInstance<import("@primereact/types/shared/fileupload").useFileUploadProps, unknown, {
|
|
3
|
+
state: {
|
|
4
|
+
files: File[];
|
|
5
|
+
messages: string[];
|
|
6
|
+
progress: number;
|
|
7
|
+
uploadedFiles: File[];
|
|
8
|
+
};
|
|
9
|
+
uploadedFileCount: React.RefObject<number>;
|
|
10
|
+
hasFiles: boolean;
|
|
11
|
+
hasUploadedFiles: boolean;
|
|
12
|
+
inputRef: React.RefObject<HTMLInputElement | null>;
|
|
13
|
+
contentRef: React.RefObject<HTMLDivElement | null>;
|
|
14
|
+
upload: () => void;
|
|
15
|
+
onFileSelect: (event: React.ChangeEvent<HTMLInputElement> | DragEvent) => void;
|
|
16
|
+
choose: () => void;
|
|
17
|
+
uploader: (uploadFiles?: File[]) => void;
|
|
18
|
+
clear: () => void;
|
|
19
|
+
remove: (index: number) => void;
|
|
20
|
+
removeUploadedFile: (index: number) => void;
|
|
21
|
+
formatSize: (bytes: number) => string;
|
|
22
|
+
onDragEnter: (event: DragEvent) => void;
|
|
23
|
+
onDragOver: (event: DragEvent) => void;
|
|
24
|
+
onDragLeave: () => void;
|
|
25
|
+
onDrop: (event: DragEvent) => void;
|
|
26
|
+
}>;
|
|
File without changes
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{withHeadless as S}from"@primereact/core/headless";import*as t from"react";var h={activeIndex:0,onActiveIndexChange:void 0};var O=S({name:"useGallery",defaultProps:h,setup:({props:y,elementRef:u})=>{let{activeIndex:i=0,onActiveIndexChange:s=void 0}=y,g=t.useRef(null),o=t.useRef([]),x=t.useRef(null),w=t.useRef(null),E=t.useRef(null),I=t.useRef(null),[,b]=t.useState(0),[l,f]=t.useState(i),[d,p]=t.useState(!1);t.useEffect(()=>{f(i)},[i]);let z=e=>{if(!e)return-1;let c=o.current.findIndex(r=>r.current===e);return c===-1?(o.current.push({current:e}),b(r=>r+1),o.current.length-1):c},m=()=>{let e=(l+1)%o.current.length;f(e),s==null||s({originalEvent:void 0,value:e})},R=()=>{let e=(l-1+o.current.length)%o.current.length;f(e),s==null||s({originalEvent:void 0,value:e})},n=e=>()=>{var r;let c=(r=o.current[l])==null?void 0:r.current;if(c){let L=new CustomEvent("gallery-"+e,{detail:{action:e}});c.dispatchEvent(L)}},v=()=>{u.current&&(d?(Object.assign(u.current.style,{position:"relative",top:"",left:"",width:"",height:"",zIndex:""}),document.body.style.overflow="auto",p(!1)):(Object.assign(u.current.style,{position:"fixed",top:"0",left:"0",width:"100dvw",height:"100dvh",zIndex:"9999"}),document.body.style.overflow="hidden",p(!0)),setTimeout(()=>{window.dispatchEvent(new Event("resize"))},100))},a={zoomIn:n("zoom-in"),zoomOut:n("zoom-out"),rotateLeft:n("rotate-left"),rotateRight:n("rotate-right"),flipX:n("flip-x"),flipY:n("flip-y"),download:n("download"),next:m,prev:R,toggleFullScreen:v},H=t.useCallback(e=>{e&&a[e]&&a[e]()},[a]);return{state:{isFullscreen:d,activeIndex:l},registerItem:z,handleNext:m,handlePrev:R,createCustomEvent:n,toggleFullScreen:v,handleClickAction:H,actions:a,contentRef:g,toolbarRef:x,thumbnailRef:w,prevRef:E,nextRef:I}}});export{h as defaultProps,O as useGallery};
|
|
2
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/gallery/useGallery.tsx","../../src/gallery/useGallery.props.ts"],"sourcesContent":["import { withHeadless } from '@primereact/core/headless';\nimport { Carousel } from 'primereact/carousel';\nimport * as React from 'react';\nimport { defaultProps } from './useGallery.props';\n\nexport const useGallery = withHeadless({\n name: 'useGallery',\n defaultProps,\n setup: ({ props, elementRef }) => {\n const { activeIndex: activeIndexProp = 0, onActiveIndexChange = undefined } = props;\n const contentRef = React.useRef<HTMLDivElement>(null);\n const itemsRef = React.useRef<React.RefObject<HTMLDivElement>[]>([]);\n const toolbarRef = React.useRef<HTMLDivElement>(null);\n const thumbnailRef = React.useRef<React.RefObject<typeof Carousel>>(null);\n const prevRef = React.useRef<HTMLButtonElement>(null);\n const nextRef = React.useRef<HTMLButtonElement>(null);\n const [, forceUpdate] = React.useState(0);\n const [activeIndex, setActiveIndex] = React.useState(activeIndexProp);\n\n const [isFullscreen, setIsFullscreen] = React.useState(false);\n\n React.useEffect(() => {\n setActiveIndex(activeIndexProp);\n }, [activeIndexProp]);\n\n const registerItem = (ref: HTMLDivElement | null): number => {\n if (!ref) return -1;\n\n const existingIndex = itemsRef.current.findIndex((item) => item.current === ref);\n\n if (existingIndex === -1) {\n itemsRef.current.push({ current: ref });\n forceUpdate((x) => x + 1);\n\n return itemsRef.current.length - 1;\n }\n\n return existingIndex;\n };\n\n const handleNext = () => {\n const newIndex = (activeIndex + 1) % itemsRef.current.length;\n\n setActiveIndex(newIndex);\n onActiveIndexChange?.({ originalEvent: undefined as unknown as React.SyntheticEvent, value: newIndex });\n };\n\n const handlePrev = () => {\n const newIndex = (activeIndex - 1 + itemsRef.current.length) % itemsRef.current.length;\n\n setActiveIndex(newIndex);\n onActiveIndexChange?.({ originalEvent: undefined as unknown as React.SyntheticEvent, value: newIndex });\n };\n\n const createCustomEvent = (action: string) => () => {\n const activeItem = itemsRef.current[activeIndex]?.current;\n\n if (activeItem) {\n const event = new CustomEvent('gallery-' + action, {\n detail: { action: action }\n });\n\n activeItem.dispatchEvent(event);\n }\n };\n\n const toggleFullScreen = () => {\n if (!elementRef.current) return;\n\n if (!isFullscreen) {\n Object.assign(elementRef.current.style, {\n position: 'fixed',\n top: '0',\n left: '0',\n width: '100dvw',\n height: '100dvh',\n zIndex: '9999'\n });\n\n document.body.style.overflow = 'hidden';\n\n setIsFullscreen(true);\n } else {\n Object.assign(elementRef.current.style, {\n position: 'relative',\n top: '',\n left: '',\n width: '',\n height: '',\n zIndex: ''\n });\n\n document.body.style.overflow = 'auto';\n\n setIsFullscreen(false);\n }\n\n setTimeout(() => {\n window.dispatchEvent(new Event('resize'));\n }, 100);\n };\n\n const actions = {\n zoomIn: createCustomEvent('zoom-in'),\n zoomOut: createCustomEvent('zoom-out'),\n rotateLeft: createCustomEvent('rotate-left'),\n rotateRight: createCustomEvent('rotate-right'),\n flipX: createCustomEvent('flip-x'),\n flipY: createCustomEvent('flip-y'),\n download: createCustomEvent('download'),\n next: handleNext,\n prev: handlePrev,\n toggleFullScreen: toggleFullScreen\n };\n\n const handleClickAction = React.useCallback(\n (action?: string) => {\n if (action && actions[action as keyof typeof actions]) {\n actions[action as keyof typeof actions]();\n }\n },\n [actions]\n );\n\n const state = {\n isFullscreen,\n activeIndex\n };\n\n return {\n state,\n registerItem,\n handleNext,\n handlePrev,\n createCustomEvent,\n toggleFullScreen,\n handleClickAction,\n actions,\n contentRef,\n toolbarRef,\n thumbnailRef,\n prevRef,\n nextRef\n };\n }\n});\n","import type { useGalleryProps } from '@primereact/types/shared/gallery';\n\nexport const defaultProps: useGalleryProps = {\n activeIndex: 0,\n onActiveIndexChange: undefined\n};\n"],"mappings":"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","names":["withHeadless","React","defaultProps","useGallery","withHeadless","defaultProps","props","elementRef","activeIndexProp","onActiveIndexChange","contentRef","itemsRef","toolbarRef","thumbnailRef","prevRef","nextRef","forceUpdate","activeIndex","setActiveIndex","isFullscreen","setIsFullscreen","registerItem","ref","existingIndex","item","x","handleNext","newIndex","handlePrev","createCustomEvent","action","_a","activeItem","event","toggleFullScreen","actions","handleClickAction"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var 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};
|
|
2
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/gallery/item/useGalleryItem.tsx","../../../../primereact/src/gallery/Gallery.tsx","../../../../primereact/src/base/index.ts","../../../../primereact/src/gallery/Gallery.context.ts","../../../../primereact/src/gallery/Gallery.props.ts","../../../../primereact/src/gallery/backdrop/GalleryBackdrop.tsx","../../../../primereact/src/gallery/backdrop/GalleryBackdrop.props.ts","../../../../primereact/src/gallery/content/GalleryContent.tsx","../../../../primereact/src/gallery/content/GalleryContent.props.ts","../../../../primereact/src/gallery/item/GalleryItem.tsx","../../../../primereact/src/gallery/item/GalleryItem.context.ts","../../../../primereact/src/gallery/item/GalleryItem.props.ts","../../../../primereact/src/gallery/next/GalleryNext.tsx","../../../../primereact/src/gallery/next/GalleryNext.props.ts","../../../../primereact/src/gallery/prev/GalleryPrev.tsx","../../../../primereact/src/gallery/prev/GalleryPrev.props.ts","../../../../primereact/src/gallery/thumbnail/GalleryThumbnail.tsx","../../../../primereact/src/carousel/Carousel.tsx","../../../../primereact/src/carousel/Carousel.context.ts","../../../../primereact/src/carousel/Carousel.props.ts","../../../../primereact/src/carousel/content/CarouselContent.tsx","../../../../primereact/src/carousel/content/CarouselContent.props.ts","../../../../primereact/src/carousel/indicator/CarouselIndicator.tsx","../../../../primereact/src/carousel/indicator/CarouselIndicator.props.ts","../../../../primereact/src/carousel/indicators/CarouselIndicators.tsx","../../../../primereact/src/carousel/indicators/CarouselIndicators.props.ts","../../../../primereact/src/carousel/item/CarouselItem.tsx","../../../../primereact/src/carousel/item/CarouselItem.props.ts","../../../../primereact/src/carousel/next/CarouselNext.tsx","../../../../primereact/src/carousel/next/CarouselNext.props.ts","../../../../primereact/src/carousel/prev/CarouselPrev.tsx","../../../../primereact/src/carousel/prev/CarouselPrev.props.ts","../../../../primereact/src/gallery/thumbnail/GalleryThumbnail.props.ts","../../../../primereact/src/gallery/thumbnailcontent/GalleryThumbnailContent.tsx","../../../../primereact/src/gallery/thumbnailcontent/GalleryThumbnailContent.props.ts","../../../../primereact/src/gallery/thumbnailitem/GalleryThumbnailItem.tsx","../../../../primereact/src/gallery/thumbnailitem/GalleryThumbnailItem.props.ts","../../../../primereact/src/gallery/toolbar/GalleryToolbar.tsx","../../../../primereact/src/gallery/toolbar/GalleryToolbar.props.ts","../../../../primereact/src/gallery/toolbaritem/GalleryToolbarItem.tsx","../../../../primereact/src/gallery/toolbaritem/GalleryToolbarItem.props.ts","../../../src/gallery/item/useGalleryItem.props.ts"],"sourcesContent":["import { withHeadless } from '@primereact/core/headless';\nimport { useGalleryContext } from 'primereact/gallery';\nimport * as React from 'react';\nimport { defaultItemProps } from './useGalleryItem.props';\n\nexport const useGalleryItem = withHeadless({\n name: 'useGalleryItem',\n defaultProps: defaultItemProps,\n setup: ({ props, elementRef }) => {\n const { normalScale = 1, zoomedScale = 3 } = props;\n\n const gallery = useGalleryContext();\n const [index, setIndex] = React.useState(-1);\n const [isActive, setIsActive] = React.useState(false);\n const [position, setPosition] = React.useState({ x: 0, y: 0 });\n const [scale, setScale] = React.useState(1);\n const [rotation, setRotation] = React.useState(0);\n const [flip, setFlip] = React.useState({ x: 1, y: 1 });\n\n const [isDragging, setIsDragging] = React.useState(false);\n const [dragStart, setDragStart] = React.useState({ x: 0, y: 0 });\n const [hasDragged, setHasDragged] = React.useState(false);\n\n const pointerDataRef = React.useRef<Map<number, { x: number; y: number }>>(new Map());\n const lastDistanceRef = React.useRef(0);\n\n const calculateItemSize = React.useCallback(() => {\n if (!gallery?.contentRef.current || !elementRef.current) return;\n\n const contentRect = gallery?.contentRef.current.getBoundingClientRect();\n\n const imageElement = elementRef.current.firstElementChild as HTMLImageElement;\n\n if (!imageElement) return;\n\n let naturalWidth = imageElement.naturalWidth || imageElement.offsetWidth;\n let naturalHeight = imageElement.naturalHeight || imageElement.offsetHeight;\n\n if (naturalWidth === 0 || naturalHeight === 0) return;\n\n const isRotated = Math.abs(rotation) % 180 === 90;\n\n if (isRotated) {\n [naturalWidth, naturalHeight] = [naturalHeight, naturalWidth];\n }\n\n const naturalAspectRatio = naturalWidth / naturalHeight;\n const contentAspectRatio = contentRect.width / contentRect.height;\n\n let targetWidth, targetHeight;\n\n if (naturalAspectRatio > contentAspectRatio) {\n targetWidth = Math.min(contentRect.width * 0.99, naturalWidth);\n targetHeight = targetWidth / naturalAspectRatio;\n } else {\n targetHeight = Math.min(contentRect.height * 0.99, naturalHeight);\n targetWidth = targetHeight * naturalAspectRatio;\n }\n\n if (isRotated) {\n imageElement.style.width = `${targetHeight}px`;\n imageElement.style.height = `${targetWidth}px`;\n elementRef.current.style.width = `${targetHeight > 0 ? targetHeight : 'auto'}px`;\n elementRef.current.style.height = `${targetWidth > 0 ? targetWidth : 'auto'}px`;\n } else {\n imageElement.style.width = `${targetWidth}px`;\n imageElement.style.height = `${targetHeight}px`;\n elementRef.current.style.width = `${targetWidth > 0 ? targetWidth : 'auto'}px`;\n elementRef.current.style.height = `${targetHeight > 0 ? targetHeight : 'auto'}px`;\n }\n\n elementRef.current.style.aspectRatio = `${naturalWidth / naturalHeight}`;\n }, [gallery?.contentRef, rotation]);\n\n const calculateConstraints = React.useCallback(\n (targetScale?: number) => {\n if (!gallery?.contentRef.current || !elementRef.current) return { minX: 0, maxX: 0, minY: 0, maxY: 0 };\n\n const contentRect = gallery?.contentRef.current.getBoundingClientRect();\n const scaleToUse = targetScale !== undefined ? targetScale : scale;\n\n const itemElement = elementRef.current.firstElementChild as HTMLElement;\n\n if (!itemElement) return { minX: 0, maxX: 0, minY: 0, maxY: 0 };\n\n let originalWidth = itemElement.offsetWidth;\n let originalHeight = itemElement.offsetHeight;\n\n const isRotated = Math.abs(rotation) % 180 === 90;\n\n if (isRotated) {\n [originalWidth, originalHeight] = [originalHeight, originalWidth];\n }\n\n const scaledWidth = originalWidth * scaleToUse;\n const scaledHeight = originalHeight * scaleToUse;\n\n const contentCenterX = contentRect.width / 2;\n const contentCenterY = contentRect.height / 2;\n\n const halfScaledWidth = scaledWidth / 2;\n const halfScaledHeight = scaledHeight / 2;\n\n const maxX = halfScaledWidth > contentCenterX ? halfScaledWidth - contentCenterX : 0;\n const minX = halfScaledWidth > contentCenterX ? -(halfScaledWidth - contentCenterX) : 0;\n\n const maxY = halfScaledHeight > contentCenterY ? halfScaledHeight - contentCenterY : 0;\n const minY = halfScaledHeight > contentCenterY ? -(halfScaledHeight - contentCenterY) : 0;\n\n return { minX, maxX, minY, maxY };\n },\n [gallery?.contentRef, scale, rotation]\n );\n\n const zoomIn = React.useCallback(() => {\n setScale(zoomedScale);\n\n const hiddenStyles = {\n visibility: 'hidden',\n opacity: 0,\n pointerEvents: 'none',\n userSelect: 'none',\n touchAction: 'none'\n };\n\n if (gallery?.toolbarRef.current) {\n Object.assign(gallery?.toolbarRef.current.style, hiddenStyles);\n }\n\n if (gallery?.thumbnailRef.current) {\n // @ts-expect-error - thumbnailRef may not have elementRef property\n Object.assign(gallery?.thumbnailRef.current.elementRef.current.style, hiddenStyles);\n }\n\n if (gallery?.prevRef.current) {\n Object.assign(gallery.prevRef.current.style, hiddenStyles);\n }\n\n if (gallery?.nextRef.current) {\n Object.assign(gallery.nextRef.current.style, hiddenStyles);\n }\n\n if (elementRef.current) {\n elementRef.current.style.cursor = 'zoom-out';\n elementRef.current.style.pointerEvents = 'auto';\n }\n }, [zoomedScale, gallery?.toolbarRef, gallery?.thumbnailRef, gallery?.prevRef, gallery?.nextRef]);\n\n const zoomOut = React.useCallback(() => {\n setScale(normalScale);\n setPosition({ x: 0, y: 0 });\n\n const resetStyles = {\n visibility: '',\n opacity: '',\n pointerEvents: '',\n userSelect: '',\n touchAction: ''\n };\n\n if (gallery?.toolbarRef.current) {\n Object.assign(gallery.toolbarRef.current.style, resetStyles);\n }\n\n if (gallery?.thumbnailRef.current) {\n // @ts-expect-error - thumbnailRef may not have elementRef property\n Object.assign(gallery.thumbnailRef.current.elementRef.current.style, resetStyles);\n }\n\n if (gallery?.prevRef.current) {\n Object.assign(gallery.prevRef.current.style, resetStyles);\n }\n\n if (gallery?.nextRef.current) {\n Object.assign(gallery.nextRef.current.style, resetStyles);\n }\n\n if (elementRef.current) {\n elementRef.current.style.cursor = 'zoom-in';\n elementRef.current.style.pointerEvents = 'auto';\n }\n }, [normalScale, gallery?.toolbarRef, gallery?.thumbnailRef, gallery?.prevRef, gallery?.nextRef]);\n\n const rotateLeft = () => {\n if (!elementRef.current) return;\n\n elementRef.current.style.transition = 'none';\n setRotation((prev) => prev - 90);\n setTimeout(() => {\n if (elementRef.current) {\n elementRef.current.style.transition = '';\n }\n }, 0);\n };\n\n const rotateRight = () => {\n if (!elementRef.current) return;\n\n elementRef.current.style.transition = 'none';\n setRotation((prev) => prev + 90);\n setTimeout(() => {\n if (elementRef.current) {\n elementRef.current.style.transition = '';\n }\n }, 0);\n };\n\n const flipX = () => {\n setFlip((prev) => ({ ...prev, x: Math.sign(prev.x) * -1 }));\n };\n\n const flipY = () => {\n setFlip((prev) => ({ ...prev, y: Math.sign(prev.y) * -1 }));\n };\n\n const download = () => {\n if (!elementRef.current) return;\n\n const imageElement = elementRef.current.querySelector('img') as HTMLImageElement;\n\n if (!imageElement || !imageElement.src) return;\n\n const link = document.createElement('a');\n\n link.href = imageElement.src;\n\n const urlParts = imageElement.src.split('/');\n const filename = urlParts[urlParts.length - 1] || 'image.jpg';\n\n link.download = filename;\n link.target = '_blank';\n\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n };\n\n const handleClick = React.useCallback(\n (e: React.MouseEvent) => {\n if (hasDragged) {\n setHasDragged(false);\n\n return;\n }\n\n if (scale === normalScale) {\n if (elementRef.current) {\n const itemRect = elementRef.current.getBoundingClientRect();\n\n const itemCenterX = itemRect.width / 2;\n const itemCenterY = itemRect.height / 2;\n\n const clickX = e.clientX - itemRect.left;\n const clickY = e.clientY - itemRect.top;\n\n const offsetX = itemCenterX - clickX;\n const offsetY = itemCenterY - clickY;\n\n const zoomOffsetX = offsetX * (zoomedScale - 1);\n const zoomOffsetY = offsetY * (zoomedScale - 1);\n\n const constraints = calculateConstraints(zoomedScale);\n const constrainedX = Math.max(constraints.minX, Math.min(constraints.maxX, zoomOffsetX));\n const constrainedY = Math.max(constraints.minY, Math.min(constraints.maxY, zoomOffsetY));\n\n setPosition({ x: constrainedX, y: constrainedY });\n }\n\n zoomIn();\n } else {\n zoomOut();\n }\n },\n [hasDragged, normalScale, zoomedScale, calculateConstraints, scale, zoomIn, zoomOut]\n );\n const handleDragStart = React.useCallback((e: React.DragEvent<HTMLDivElement>) => {\n e.preventDefault();\n }, []);\n\n const handlePointerDown = React.useCallback(\n (e: React.PointerEvent) => {\n e.currentTarget.setPointerCapture(e.pointerId);\n pointerDataRef.current.set(e.pointerId, { x: e.clientX, y: e.clientY });\n\n if (scale > 1) {\n if (e.pointerType === 'mouse') {\n setIsDragging(true);\n setDragStart({ x: e.clientX - position.x, y: e.clientY - position.y });\n setHasDragged(false);\n } else if (e.pointerType === 'touch' && pointerDataRef.current.size === 1) {\n setIsDragging(true);\n setDragStart({ x: e.clientX - position.x, y: e.clientY - position.y });\n setHasDragged(false);\n lastDistanceRef.current = 0;\n }\n }\n\n if (e.pointerType === 'touch' && pointerDataRef.current.size === 1) {\n lastDistanceRef.current = 0;\n }\n },\n [scale, position]\n );\n\n const handlePointerMove = React.useCallback(\n (e: React.PointerEvent) => {\n if (!pointerDataRef.current.has(e.pointerId) || !elementRef.current) return;\n\n elementRef.current.style.transition = 'none';\n\n // Preserve cursor during move\n const currentCursor = elementRef.current.style.cursor;\n\n if (!currentCursor) {\n elementRef.current.style.cursor = scale > normalScale ? 'zoom-out' : 'zoom-in';\n }\n\n pointerDataRef.current.set(e.pointerId, { x: e.clientX, y: e.clientY });\n\n const pointers = Array.from(pointerDataRef.current.values());\n\n if (pointers.length === 2) {\n const [p1, p2] = pointers;\n const distance = Math.hypot(p2.x - p1.x, p2.y - p1.y);\n\n if (lastDistanceRef.current > 0) {\n const delta = (distance - lastDistanceRef.current) * 0.01;\n\n if (Math.abs(delta) > 0.01) {\n const newScale = scale === normalScale ? zoomedScale : normalScale;\n\n const constraints = calculateConstraints(newScale);\n const constrainedX = Math.max(constraints.minX, Math.min(constraints.maxX, position.x));\n const constrainedY = Math.max(constraints.minY, Math.min(constraints.maxY, position.y));\n\n setPosition({ x: constrainedX, y: constrainedY });\n\n setScale(newScale);\n }\n }\n\n lastDistanceRef.current = distance;\n } else if (pointers.length === 1 && isDragging) {\n const pointer = pointers[0];\n const newX = pointer.x - dragStart.x;\n const newY = pointer.y - dragStart.y;\n const constraints = calculateConstraints();\n\n const computedX = Math.max(constraints.minX, Math.min(constraints.maxX, newX));\n const computedY = Math.max(constraints.minY, Math.min(constraints.maxY, newY));\n\n setPosition({\n x: computedX,\n y: computedY\n });\n setHasDragged(true);\n }\n },\n [isDragging, dragStart, scale, normalScale, zoomedScale, position, calculateConstraints]\n );\n\n const handlePointerUp = React.useCallback((e: React.PointerEvent) => {\n if (!elementRef.current) return;\n\n elementRef.current.style.transition = '';\n // Restore proper cursor after interaction\n elementRef.current.style.cursor = scale > normalScale ? 'zoom-out' : 'zoom-in';\n e.currentTarget.releasePointerCapture(e.pointerId);\n pointerDataRef.current.delete(e.pointerId);\n\n if (pointerDataRef.current.size < 2) lastDistanceRef.current = 0;\n\n if (pointerDataRef.current.size === 0) {\n setIsDragging(false);\n }\n }, []);\n\n React.useEffect(() => {\n if (scale <= 1) {\n setPosition({ x: 0, y: 0 });\n }\n }, [scale]);\n\n React.useEffect(() => {\n if (gallery?.state.activeIndex === index && document.readyState === 'complete') {\n calculateItemSize();\n }\n }, [gallery?.state.activeIndex, index, calculateItemSize]);\n\n React.useEffect(() => {\n if (gallery?.state.activeIndex === index) {\n calculateItemSize();\n }\n }, [rotation, calculateItemSize, gallery?.state.activeIndex, index]);\n\n React.useEffect(() => {\n if (gallery?.state.activeIndex === index && gallery?.state.isFullscreen !== undefined) {\n calculateItemSize();\n }\n }, [gallery?.state.isFullscreen, calculateItemSize, gallery?.state.activeIndex, index]);\n\n React.useEffect(() => {\n const handleResize = () => {\n if (gallery?.state.activeIndex === index) {\n calculateItemSize();\n }\n };\n\n window.addEventListener('resize', handleResize);\n\n return () => window.removeEventListener('resize', handleResize);\n }, [gallery?.state.activeIndex, index, calculateItemSize]);\n\n React.useEffect(() => {\n if (gallery && elementRef.current) {\n const index = gallery.registerItem(elementRef.current as HTMLDivElement);\n\n setIndex(index);\n }\n }, [gallery]);\n\n React.useEffect(() => {\n const handleCustomEvent = (e: CustomEvent) => {\n if (e.detail?.action === 'zoom-in') {\n zoomIn();\n } else if (e.detail?.action === 'zoom-out') {\n zoomOut();\n } else if (e.detail?.action === 'rotate-left') {\n rotateLeft();\n } else if (e.detail?.action === 'rotate-right') {\n rotateRight();\n } else if (e.detail?.action === 'flip-x') {\n flipX();\n } else if (e.detail?.action === 'flip-y') {\n flipY();\n } else if (e.detail?.action === 'download') {\n download();\n }\n };\n\n const itemElement = elementRef.current;\n\n if (itemElement) {\n itemElement.addEventListener('gallery-zoom-in', handleCustomEvent as EventListener);\n itemElement.addEventListener('gallery-zoom-out', handleCustomEvent as EventListener);\n itemElement.addEventListener('gallery-rotate-left', handleCustomEvent as EventListener);\n itemElement.addEventListener('gallery-rotate-right', handleCustomEvent as EventListener);\n itemElement.addEventListener('gallery-flip-x', handleCustomEvent as EventListener);\n itemElement.addEventListener('gallery-flip-y', handleCustomEvent as EventListener);\n itemElement.addEventListener('gallery-download', handleCustomEvent as EventListener);\n }\n\n return () => {\n if (itemElement) {\n itemElement.removeEventListener('gallery-zoom-in', handleCustomEvent as EventListener);\n itemElement.removeEventListener('gallery-zoom-out', handleCustomEvent as EventListener);\n itemElement.removeEventListener('gallery-rotate-left', handleCustomEvent as EventListener);\n itemElement.removeEventListener('gallery-rotate-right', handleCustomEvent as EventListener);\n itemElement.removeEventListener('gallery-flip-x', handleCustomEvent as EventListener);\n itemElement.removeEventListener('gallery-flip-y', handleCustomEvent as EventListener);\n itemElement.removeEventListener('gallery-download', handleCustomEvent as EventListener);\n }\n };\n }, [normalScale, zoomedScale]);\n\n React.useEffect(() => {\n if (gallery?.state.activeIndex === index) {\n setIsActive(true);\n } else {\n setIsActive(false);\n }\n }, [gallery?.state.activeIndex, index]);\n\n const attributes = React.useMemo(() => {\n return {\n 'data-active': isActive\n };\n }, [isActive]);\n\n const CSSVariables = React.useMemo(() => {\n return {\n '--position-x': `${position.x}px`,\n '--position-y': `${position.y}px`,\n '--scale': `${scale}`,\n '--rotation': `${rotation}deg`,\n '--flip-x': flip.x,\n '--flip-y': flip.y\n } as React.CSSProperties;\n }, [position, scale, rotation, flip]);\n\n const state = {\n index,\n position,\n scale,\n rotation,\n flip,\n isActive,\n dragStart,\n hasDragged\n };\n\n return {\n state,\n attributes,\n CSSVariables,\n handlePointerUp,\n handlePointerMove,\n handlePointerDown,\n handleClick,\n handleDragStart,\n zoomIn,\n zoomOut,\n rotateLeft,\n rotateRight,\n flipX,\n flipY,\n download,\n calculateConstraints,\n calculateItemSize\n };\n }\n});\n","'use client';\nimport { Component } from '@primereact/core/component';\nimport { useGallery } from '@primereact/headless/gallery';\nimport { styles } from '@primereact/styles/gallery';\nimport { mergeProps } from '@primeuix/utils';\nimport { withComponent } from 'primereact/base';\nimport * as React from 'react';\nimport { GalleryProvider } from './Gallery.context';\nimport { defaultProps } from './Gallery.props';\nimport { GalleryBackdrop } from './backdrop/GalleryBackdrop';\nimport { GalleryContent } from './content/GalleryContent';\nimport { GalleryItem } from './item/GalleryItem';\nimport { GalleryNext } from './next/GalleryNext';\nimport { GalleryPrev } from './prev/GalleryPrev';\nimport { GalleryThumbnail } from './thumbnail/GalleryThumbnail';\nimport { GalleryThumbnailContent } from './thumbnailcontent/GalleryThumbnailContent';\nimport { GalleryThumbnailItem } from './thumbnailitem/GalleryThumbnailItem';\nimport { GalleryToolbar } from './toolbar/GalleryToolbar';\nimport { GalleryToolbarItem } from './toolbaritem/GalleryToolbarItem';\n\nexport const Gallery = withComponent({\n name: 'Gallery',\n defaultProps,\n styles,\n setup(instance) {\n const gallery = useGallery(instance.inProps);\n\n return gallery;\n },\n render(instance) {\n const { id, props, ptmi, cx } = instance;\n\n const rootProps = mergeProps(\n {\n id,\n className: cx('root')\n },\n ptmi('root')\n );\n\n return (\n <GalleryProvider value={instance}>\n <Component instance={instance} attrs={rootProps} children={props.children} />\n </GalleryProvider>\n );\n },\n components: {\n Backdrop: GalleryBackdrop,\n Content: GalleryContent,\n Item: GalleryItem,\n Next: GalleryNext,\n Prev: GalleryPrev,\n Toolbar: GalleryToolbar,\n ToolbarItem: GalleryToolbarItem,\n Thumbnail: GalleryThumbnail,\n ThumbnailContent: GalleryThumbnailContent,\n ThumbnailItem: GalleryThumbnailItem\n }\n});\n","import { withComponent as withComponentInCore } from '@primereact/core/component';\nimport { styles as baseStyles } from '@primereact/styles/base';\nimport type { withComponentOptions } from '@primereact/types/core';\nimport type { StylesOptions } from '@primereact/types/styles';\n\nexport const withComponent = <IProps, DProps, Exposes extends Record<PropertyKey, unknown> = Record<PropertyKey, unknown>, Styles = StylesOptions, CData = Record<string, unknown>>({\n name = 'UnknownComponent',\n defaultProps,\n styles = {\n ...baseStyles,\n name: 'global'\n } as Styles,\n components,\n setup,\n render\n}: withComponentOptions<IProps, DProps, Exposes, Styles, CData>) => {\n return withComponentInCore<IProps, DProps, Exposes, Styles, CData>({\n name,\n defaultProps,\n styles,\n components,\n setup,\n render\n });\n};\n","import { createOptionalContext } from '@primereact/core/utils';\nimport type { GalleryInstance } from '@primereact/types/shared/gallery';\n\nexport const [GalleryProvider, useGalleryContext] = createOptionalContext<GalleryInstance>();\n","import * as HeadlessGallery from '@primereact/headless/gallery';\nimport type { GalleryProps } from '@primereact/types/shared/gallery';\n\nexport const defaultProps: GalleryProps = {\n ...HeadlessGallery.defaultProps,\n as: 'div'\n};\n","'use client';\nimport { Component } from '@primereact/core/component';\nimport { mergeProps } from '@primeuix/utils';\nimport { withComponent } from 'primereact/base';\nimport * as React from 'react';\nimport { useGalleryContext } from '../Gallery.context';\nimport { defaultCloseProps } from './GalleryBackdrop.props';\n\nexport const GalleryBackdrop = withComponent({\n name: 'GalleryBackdrop',\n defaultProps: defaultCloseProps,\n setup() {\n const gallery = useGalleryContext();\n\n return { gallery };\n },\n render(instance) {\n const { props, ptmi, gallery } = instance;\n\n const rootProps = mergeProps(\n {\n className: gallery?.cx('backdrop')\n },\n ptmi('root')\n );\n\n return <Component instance={instance} attrs={rootProps} children={props.children} />;\n }\n});\n","import { GalleryBackdropProps } from '@primereact/types/shared/gallery';\n\nexport const defaultCloseProps: GalleryBackdropProps = {\n as: 'div'\n};\n","'use client';\nimport { Component } from '@primereact/core/component';\nimport { mergeProps } from '@primeuix/utils';\nimport { withComponent } from 'primereact/base';\nimport * as React from 'react';\nimport { useGalleryContext } from '../Gallery.context';\nimport { defaultContentProps } from './GalleryContent.props';\n\nexport const GalleryContent = withComponent({\n name: 'GalleryContent',\n defaultProps: defaultContentProps,\n setup() {\n const gallery = useGalleryContext();\n\n return { gallery };\n },\n render(instance) {\n const { props, ptmi, gallery } = instance;\n\n const rootProps = mergeProps(\n {\n className: gallery?.cx('content')\n },\n ptmi('root')\n );\n\n return <Component instance={instance} attrs={rootProps} children={props.children} ref={gallery?.contentRef} />;\n }\n});\n","import { GalleryContentProps } from '@primereact/types/shared/gallery';\n\nexport const defaultContentProps: GalleryContentProps = {\n as: 'div'\n};\n","'use client';\nimport { Component } from '@primereact/core/component';\nimport { useGalleryItem } from '@primereact/headless/gallery/item';\nimport { mergeProps } from '@primeuix/utils';\nimport { withComponent } from 'primereact/base';\nimport * as React from 'react';\nimport { useGalleryContext } from '../Gallery.context';\nimport { GalleryItemProvider } from './GalleryItem.context';\nimport { defaultProps } from './GalleryItem.props';\n\nexport const GalleryItem = withComponent({\n name: 'GalleryItem',\n defaultProps,\n setup(instance) {\n const gallery = useGalleryContext();\n const galleryItem = useGalleryItem(instance.inProps);\n\n return { ...galleryItem, gallery };\n },\n render(instance) {\n const { id, props, ptmi, gallery, handleClick, handlePointerDown, handlePointerMove, handlePointerUp, handleDragStart, CSSVariables, attributes } = instance;\n\n const rootProps = mergeProps(\n {\n id,\n className: gallery?.cx('item'),\n onClick: handleClick,\n onPointerDown: handlePointerDown,\n onPointerMove: handlePointerMove,\n onPointerUp: handlePointerUp,\n onDragStart: handleDragStart,\n style: CSSVariables,\n ...attributes\n },\n ptmi('root'),\n gallery?.ptm('item')\n );\n\n return (\n <GalleryItemProvider value={instance}>\n <Component instance={instance} attrs={rootProps} children={props.children} />\n </GalleryItemProvider>\n );\n }\n});\n","import { createOptionalContext } from '@primereact/core/utils';\nimport type { GalleryItemInstance } from '@primereact/types/shared/gallery';\n\nexport const [GalleryItemProvider, useGalleryItemContext] = createOptionalContext<GalleryItemInstance>();\n","import * as HeadlessGallery from '@primereact/headless/gallery';\nimport type { GalleryItemProps } from '@primereact/types/shared/gallery';\n\nexport const defaultProps: GalleryItemProps = {\n ...HeadlessGallery.defaultProps,\n as: 'div'\n};\n","'use client';\nimport { Component } from '@primereact/core/component';\nimport { mergeProps } from '@primeuix/utils';\nimport { withComponent } from 'primereact/base';\nimport * as React from 'react';\nimport { useGalleryContext } from '../Gallery.context';\nimport { defaultNextProps } from './GalleryNext.props';\n\nexport const GalleryNext = withComponent({\n name: 'GalleryNext',\n defaultProps: defaultNextProps,\n setup() {\n const gallery = useGalleryContext();\n\n return { gallery };\n },\n render(instance) {\n const { props, ptmi, gallery } = instance;\n\n const rootProps = mergeProps(\n {\n className: gallery?.cx('next'),\n onClick: gallery?.actions?.next\n },\n ptmi('root')\n );\n\n return <Component instance={instance} attrs={rootProps} children={props.children} ref={gallery?.nextRef} />;\n }\n});\n","import { GalleryNextProps } from '@primereact/types/shared/gallery';\n\nexport const defaultNextProps: GalleryNextProps = {\n as: 'button'\n};\n","'use client';\nimport { Component } from '@primereact/core/component';\nimport { mergeProps } from '@primeuix/utils';\nimport { withComponent } from 'primereact/base';\nimport * as React from 'react';\nimport { useGalleryContext } from '../Gallery.context';\nimport { defaultPrevProps } from './GalleryPrev.props';\n\nexport const GalleryPrev = withComponent({\n name: 'GalleryPrev',\n defaultProps: defaultPrevProps,\n setup() {\n const gallery = useGalleryContext();\n\n return { gallery };\n },\n render(instance) {\n const { props, ptmi, gallery } = instance;\n\n const rootProps = mergeProps(\n {\n className: gallery?.cx('prev'),\n onClick: gallery?.actions?.prev\n },\n ptmi('root')\n );\n\n return <Component instance={instance} attrs={rootProps} children={props.children} ref={gallery?.prevRef} />;\n }\n});\n","import { GalleryPrevProps } from '@primereact/types/shared/gallery';\n\nexport const defaultPrevProps: GalleryPrevProps = {\n as: 'button'\n};\n","'use client';\nimport { Component } from '@primereact/core/component';\nimport { mergeProps } from '@primeuix/utils';\nimport { withComponent } from 'primereact/base';\nimport { Carousel } from 'primereact/carousel';\nimport * as React from 'react';\nimport { useGalleryContext } from '../Gallery.context';\nimport { defaultThumbnailProps } from './GalleryThumbnail.props';\n\nexport const GalleryThumbnail = withComponent({\n name: 'GalleryThumbnail',\n defaultProps: defaultThumbnailProps,\n setup() {\n const gallery = useGalleryContext();\n\n return { gallery };\n },\n render(instance) {\n const { props, ptmi, gallery } = instance;\n\n const rootProps = mergeProps(\n {\n className: gallery?.cx('thumbnail')\n },\n ptmi('root')\n );\n\n return <Component as={Carousel} instance={instance} attrs={rootProps} children={props.children} ref={gallery?.thumbnailRef} />;\n }\n});\n","'use client';\nimport { Component } from '@primereact/core/component';\nimport { useCarousel } from '@primereact/headless/carousel';\nimport { styles } from '@primereact/styles/carousel';\nimport { mergeProps } from '@primeuix/utils';\nimport { withComponent } from 'primereact/base';\nimport * as React from 'react';\nimport { CarouselProvider } from './Carousel.context';\nimport { defaultProps } from './Carousel.props';\nimport { CarouselContent } from './content';\nimport { CarouselIndicator } from './indicator';\nimport { CarouselIndicators } from './indicators';\nimport { CarouselItem } from './item';\nimport { CarouselNext } from './next';\nimport { CarouselPrev } from './prev';\n\nexport const Carousel = withComponent({\n name: 'Carousel',\n defaultProps,\n styles,\n setup(instance) {\n const carousel = useCarousel(instance.inProps);\n\n return carousel;\n },\n render(instance) {\n const { id, props, ptmi, cx } = instance;\n\n const rootProps = mergeProps(\n {\n id,\n className: cx('root')\n },\n ptmi('root')\n );\n\n return (\n <CarouselProvider value={instance}>\n <Component instance={instance} attrs={rootProps} children={props.children} />\n </CarouselProvider>\n );\n },\n components: {\n Content: CarouselContent,\n Item: CarouselItem,\n Next: CarouselNext,\n Prev: CarouselPrev,\n Indicators: CarouselIndicators,\n Indicator: CarouselIndicator\n }\n});\n","import { createOptionalContext } from '@primereact/core/utils';\nimport type { CarouselInstance } from '@primereact/types/shared/carousel';\n\nexport const [CarouselProvider, useCarouselContext] = createOptionalContext<CarouselInstance>();\n","import * as HeadlessCarousel from '@primereact/headless/carousel';\nimport type { CarouselProps } from '@primereact/types/shared/carousel';\n\nexport const defaultProps: CarouselProps = {\n ...HeadlessCarousel.defaultProps,\n as: 'div'\n};\n","'use client';\nimport { Component } from '@primereact/core/component';\nimport { mergeProps } from '@primeuix/utils';\nimport { withComponent } from 'primereact/base';\nimport * as React from 'react';\nimport { useCarouselContext } from '../Carousel.context';\nimport { defaultContentProps } from './CarouselContent.props';\n\nexport const CarouselContent = withComponent({\n name: 'CarouselContent',\n defaultProps: defaultContentProps,\n setup() {\n const carousel = useCarouselContext();\n\n return { carousel };\n },\n render(instance) {\n const { props, ptmi, carousel } = instance;\n\n const contentProps = mergeProps(\n {\n className: carousel?.cx('content', { orientation: carousel?.props.orientation }),\n style: {\n ...({\n '--p-swipe-amount-x': `0px`,\n '--p-swipe-amount-y': `0px`,\n '--p-spacing': `${carousel?.props.spacing}px`\n } as React.CSSProperties)\n },\n onPointerDown: carousel?.handlePointerDown,\n onPointerMove: carousel?.handlePointerMove,\n onPointerUp: carousel?.handlePointerUp,\n onClick: carousel?.handleClick,\n onClickCapture: carousel?.handleClick\n },\n carousel?.ptm('content'),\n ptmi('root')\n );\n\n const viewportProps = mergeProps(\n {\n className: carousel?.cx('viewport')\n },\n carousel?.ptm('viewport')\n );\n\n return (\n <div {...viewportProps}>\n <Component instance={instance} attrs={contentProps} children={props.children} ref={carousel?.carouselRef} />\n </div>\n );\n }\n});\n","import type { CarouselContentProps } from '@primereact/types/shared/carousel';\n\nexport const defaultContentProps: CarouselContentProps = {\n as: 'div'\n};\n","'use client';\nimport { Component } from '@primereact/core/component';\nimport { mergeProps } from '@primeuix/utils';\nimport { withComponent } from 'primereact/base';\nimport * as React from 'react';\nimport { useCarouselContext } from '../Carousel.context';\nimport { defaultIndicatorProps } from './CarouselIndicator.props';\n\nexport const CarouselIndicator = withComponent({\n name: 'CarouselIndicator',\n defaultProps: defaultIndicatorProps,\n setup() {\n const carousel = useCarouselContext();\n\n return { carousel };\n },\n render(instance) {\n const { props, ptmi, carousel } = instance;\n\n const contentProps = mergeProps(\n {\n className: carousel?.cx('indicator', { active: props.index === carousel?.state?.activeIndex }),\n onClick: () => carousel?.slideTo(undefined, props.snap)\n },\n carousel?.ptm('indicator'),\n ptmi('root')\n );\n\n return <Component instance={instance} attrs={contentProps} children={props.children} />;\n }\n});\n","import type { CarouselIndicatorProps } from '@primereact/types/shared/carousel';\n\nexport const defaultIndicatorProps: CarouselIndicatorProps = {\n as: 'button',\n snap: undefined,\n index: undefined\n};\n","'use client';\nimport { Component } from '@primereact/core/component';\nimport { mergeProps } from '@primeuix/utils';\nimport { withComponent } from 'primereact/base';\nimport * as React from 'react';\nimport { useCarouselContext } from '../Carousel.context';\nimport { CarouselIndicator } from '../indicator/CarouselIndicator';\nimport { defaultIndicatorsProps } from './CarouselIndicators.props';\n\nexport const CarouselIndicators = withComponent({\n name: 'CarouselIndicators',\n defaultProps: defaultIndicatorsProps,\n setup() {\n const carousel = useCarouselContext();\n\n return { carousel };\n },\n render(instance) {\n const { props, ptmi, carousel } = instance;\n\n const contentProps = mergeProps(\n {\n className: carousel?.cx('indicators')\n },\n carousel?.ptm('indicators'),\n ptmi('root')\n );\n\n return (\n <Component\n instance={instance}\n attrs={contentProps}\n children={\n props.children ?? (\n <>\n {carousel?.state?.snapPoints.map((snap, i) => (\n <CarouselIndicator key={i} snap={snap} index={i} />\n ))}\n </>\n )\n }\n />\n );\n }\n});\n","import type { CarouselIndicatorsProps } from '@primereact/types/shared/carousel';\n\nexport const defaultIndicatorsProps: CarouselIndicatorsProps = {\n as: 'div'\n};\n","'use client';\nimport { Component } from '@primereact/core/component';\nimport { mergeProps } from '@primeuix/utils';\nimport { withComponent } from 'primereact/base';\nimport * as React from 'react';\nimport { useCarouselContext } from '../Carousel.context';\nimport { defaultItemProps } from './CarouselItem.props';\n\nexport const CarouselItem = withComponent({\n name: 'CarouselItem',\n defaultProps: defaultItemProps,\n setup() {\n const carousel = useCarouselContext();\n\n return { carousel };\n },\n render(instance) {\n const { props, ptmi, carousel } = instance;\n\n const rootProps = mergeProps(\n {\n className: carousel?.cx('item'),\n style: {\n '--p-slide-size': `${props.size}%`\n }\n },\n carousel?.ptm('item'),\n ptmi('root')\n );\n\n return <Component instance={instance} attrs={rootProps} children={props.children} ref={carousel?.addSlideRef} />;\n }\n});\n","import type { CarouselItemProps } from '@primereact/types/shared/carousel';\n\nexport const defaultItemProps: CarouselItemProps = {\n as: 'div',\n size: 100\n};\n","'use client';\nimport { Component } from '@primereact/core/component';\nimport { mergeProps } from '@primeuix/utils';\nimport { withComponent } from 'primereact/base';\nimport * as React from 'react';\nimport { useCarouselContext } from '../Carousel.context';\nimport { defaultNextProps } from './CarouselNext.props';\n\nexport const CarouselNext = withComponent({\n name: 'CarouselNext',\n defaultProps: defaultNextProps,\n setup() {\n const carousel = useCarouselContext();\n\n return { carousel };\n },\n render(instance) {\n const { props, ptmi, carousel } = instance;\n\n const disabled = carousel?.state.nextDisabled;\n const rootProps = mergeProps(\n {\n className: carousel?.cx('prev', { disabled }),\n onClick: carousel?.handleNext,\n disabled\n },\n carousel?.ptm('prev'),\n ptmi('root')\n );\n\n return <Component instance={instance} attrs={rootProps} children={props.children} />;\n }\n});\n","import type { CarouselNextProps } from '@primereact/types/shared/carousel';\n\nexport const defaultNextProps: CarouselNextProps = {\n as: 'button'\n};\n","'use client';\nimport { Component } from '@primereact/core/component';\nimport { mergeProps } from '@primeuix/utils';\nimport { withComponent } from 'primereact/base';\nimport * as React from 'react';\nimport { useCarouselContext } from '../Carousel.context';\nimport { defaultPrevProps } from './CarouselPrev.props';\n\nexport const CarouselPrev = withComponent({\n name: 'CarouselPrev',\n defaultProps: defaultPrevProps,\n setup() {\n const carousel = useCarouselContext();\n\n return { carousel };\n },\n render(instance) {\n const { props, ptmi, carousel } = instance;\n\n const disabled = carousel?.state.prevDisabled;\n const rootProps = mergeProps(\n {\n className: carousel?.cx('prev', { disabled }),\n onClick: carousel?.handlePrev,\n disabled\n },\n carousel?.ptm('prev'),\n ptmi('root')\n );\n\n return <Component instance={instance} attrs={rootProps} children={props.children} />;\n }\n});\n","import type { CarouselPrevProps } from '@primereact/types/shared/carousel';\n\nexport const defaultPrevProps: CarouselPrevProps = {\n as: 'button'\n};\n","import { GalleryThumbnailProps } from '@primereact/types/shared/gallery';\n\nexport const defaultThumbnailProps: GalleryThumbnailProps = {\n as: 'div'\n};\n","'use client';\nimport { Component } from '@primereact/core/component';\nimport { mergeProps } from '@primeuix/utils';\nimport { withComponent } from 'primereact/base';\nimport { Carousel } from 'primereact/carousel';\nimport * as React from 'react';\nimport { useGalleryContext } from '../Gallery.context';\nimport { defaultThumbnailContentProps } from './GalleryThumbnailContent.props';\n\nexport const GalleryThumbnailContent = withComponent({\n name: 'GalleryThumbnailContent',\n defaultProps: defaultThumbnailContentProps,\n setup() {\n const gallery = useGalleryContext();\n\n return { gallery };\n },\n render(instance) {\n const { props, ptmi, gallery } = instance;\n\n const rootProps = mergeProps(\n {\n className: gallery?.cx('thumbnailContent')\n },\n ptmi('root')\n );\n\n return <Component as={Carousel.Content} instance={instance} attrs={rootProps} children={props.children} />;\n }\n});\n","import { GalleryThumbnailContentProps } from '@primereact/types/shared/gallery';\n\nexport const defaultThumbnailContentProps: GalleryThumbnailContentProps = {};\n","'use client';\nimport { Component } from '@primereact/core/component';\nimport { mergeProps } from '@primeuix/utils';\nimport { withComponent } from 'primereact/base';\nimport { Carousel } from 'primereact/carousel';\nimport * as React from 'react';\nimport { useGalleryContext } from '../Gallery.context';\nimport { defaultThumbnailItemProps } from './GalleryThumbnailItem.props';\n\nexport const GalleryThumbnailItem = withComponent({\n name: 'GalleryThumbnailItem',\n defaultProps: defaultThumbnailItemProps,\n setup() {\n const gallery = useGalleryContext();\n\n return { gallery };\n },\n render(instance) {\n const { props, ptmi, gallery } = instance;\n\n const rootProps = mergeProps(\n {\n className: gallery?.cx('thumbnailItem')\n },\n ptmi('root')\n );\n\n return <Component as={Carousel.Item} instance={instance} attrs={rootProps} children={props.children} />;\n }\n});\n","import { GalleryThumbnailItemProps } from '@primereact/types/shared/gallery';\n\nexport const defaultThumbnailItemProps: GalleryThumbnailItemProps = {};\n","'use client';\nimport { Component } from '@primereact/core/component';\nimport { mergeProps } from '@primeuix/utils';\nimport { withComponent } from 'primereact/base';\nimport * as React from 'react';\nimport { useGalleryContext } from '../Gallery.context';\nimport { defaultToolbarProps } from './GalleryToolbar.props';\n\nexport const GalleryToolbar = withComponent({\n name: 'GalleryToolbar',\n defaultProps: defaultToolbarProps,\n setup() {\n const gallery = useGalleryContext();\n\n return { gallery };\n },\n render(instance) {\n const { props, ptmi, gallery } = instance;\n\n const rootProps = mergeProps(\n {\n className: gallery?.cx('toolbar')\n },\n ptmi('root')\n );\n\n return <Component instance={instance} attrs={rootProps} children={props.children} ref={gallery?.toolbarRef} />;\n }\n});\n","import { GalleryToolbarProps } from '@primereact/types/shared/gallery';\n\nexport const defaultToolbarProps: GalleryToolbarProps = {\n as: 'div'\n};\n","'use client';\nimport { Component } from '@primereact/core/component';\nimport { mergeProps } from '@primeuix/utils';\nimport { withComponent } from 'primereact/base';\nimport * as React from 'react';\nimport { useGalleryContext } from '../Gallery.context';\nimport { defaultToolbarItemProps } from './GalleryToolbarItem.props';\n\nexport const GalleryToolbarItem = withComponent({\n name: 'GalleryToolbarItem',\n defaultProps: defaultToolbarItemProps,\n setup() {\n const gallery = useGalleryContext();\n\n return { gallery };\n },\n render(instance) {\n const { props, ptmi, gallery } = instance;\n\n const rootProps = mergeProps(\n {\n className: gallery?.cx('toolbarItem'),\n onClick: () => {\n gallery?.handleClickAction(props?.action);\n props?.onClick?.();\n }\n },\n ptmi('root')\n );\n\n return <Component instance={instance} attrs={rootProps} children={props.children} />;\n }\n});\n","import { GalleryToolbarItemProps } from '@primereact/types/shared/gallery';\n\nexport const defaultToolbarItemProps: GalleryToolbarItemProps = {\n as: 'div',\n action: undefined,\n onClick: undefined\n};\n","import type { useGalleryItemProps } from '@primereact/types/shared/gallery';\n\nexport const defaultItemProps: useGalleryItemProps = {\n normalScale: 1,\n zoomedScale: 3\n};\n"],"mappings":"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","names":["withHeadless","Component","useGallery","styles","mergeProps","withComponentInCore","baseStyles","withComponent","name","defaultProps","styles","__spreadProps","__spreadValues","baseStyles","components","setup","render","withComponentInCore","React","createOptionalContext","GalleryProvider","useGalleryContext","HeadlessGallery","defaultProps","__spreadProps","__spreadValues","Component","mergeProps","React","defaultCloseProps","GalleryBackdrop","withComponent","defaultCloseProps","useGalleryContext","instance","props","ptmi","gallery","rootProps","mergeProps","Component","Component","mergeProps","React","defaultContentProps","GalleryContent","withComponent","defaultContentProps","useGalleryContext","instance","props","ptmi","gallery","rootProps","mergeProps","Component","Component","useGalleryItem","mergeProps","React","createOptionalContext","GalleryItemProvider","useGalleryItemContext","HeadlessGallery","defaultProps","__spreadProps","__spreadValues","GalleryItem","withComponent","defaultProps","instance","gallery","useGalleryContext","galleryItem","useGalleryItem","__spreadProps","__spreadValues","id","props","ptmi","handleClick","handlePointerDown","handlePointerMove","handlePointerUp","handleDragStart","CSSVariables","attributes","rootProps","mergeProps","GalleryItemProvider","Component","Component","mergeProps","React","defaultNextProps","GalleryNext","withComponent","defaultNextProps","useGalleryContext","instance","_a","props","ptmi","gallery","rootProps","mergeProps","Component","Component","mergeProps","React","defaultPrevProps","GalleryPrev","withComponent","defaultPrevProps","useGalleryContext","instance","_a","props","ptmi","gallery","rootProps","mergeProps","Component","Component","mergeProps","Component","useCarousel","styles","mergeProps","React","createOptionalContext","CarouselProvider","useCarouselContext","HeadlessCarousel","defaultProps","__spreadProps","__spreadValues","Component","mergeProps","React","defaultContentProps","CarouselContent","withComponent","defaultContentProps","useCarouselContext","instance","props","ptmi","carousel","contentProps","mergeProps","viewportProps","__spreadValues","Component","Component","mergeProps","React","defaultIndicatorProps","CarouselIndicator","withComponent","defaultIndicatorProps","useCarouselContext","instance","_a","props","ptmi","carousel","contentProps","mergeProps","Component","Component","mergeProps","React","defaultIndicatorsProps","CarouselIndicators","withComponent","defaultIndicatorsProps","useCarouselContext","instance","_a","_b","props","ptmi","carousel","contentProps","mergeProps","Component","snap","i","CarouselIndicator","Component","mergeProps","React","defaultItemProps","CarouselItem","withComponent","defaultItemProps","useCarouselContext","instance","props","ptmi","carousel","rootProps","mergeProps","Component","Component","mergeProps","React","defaultNextProps","CarouselNext","withComponent","defaultNextProps","useCarouselContext","instance","props","ptmi","carousel","disabled","rootProps","mergeProps","Component","Component","mergeProps","React","defaultPrevProps","CarouselPrev","withComponent","defaultPrevProps","useCarouselContext","instance","props","ptmi","carousel","disabled","rootProps","mergeProps","Component","Carousel","withComponent","defaultProps","styles","instance","useCarousel","id","props","ptmi","cx","rootProps","mergeProps","CarouselProvider","Component","CarouselContent","CarouselItem","CarouselNext","CarouselPrev","CarouselIndicators","CarouselIndicator","React","defaultThumbnailProps","GalleryThumbnail","withComponent","defaultThumbnailProps","useGalleryContext","instance","props","ptmi","gallery","rootProps","mergeProps","Component","Carousel","Component","mergeProps","React","defaultThumbnailContentProps","GalleryThumbnailContent","withComponent","defaultThumbnailContentProps","useGalleryContext","instance","props","ptmi","gallery","rootProps","mergeProps","Component","Carousel","Component","mergeProps","React","defaultThumbnailItemProps","GalleryThumbnailItem","withComponent","defaultThumbnailItemProps","useGalleryContext","instance","props","ptmi","gallery","rootProps","mergeProps","Component","Carousel","Component","mergeProps","React","defaultToolbarProps","GalleryToolbar","withComponent","defaultToolbarProps","useGalleryContext","instance","props","ptmi","gallery","rootProps","mergeProps","Component","Component","mergeProps","React","defaultToolbarItemProps","GalleryToolbarItem","withComponent","defaultToolbarItemProps","useGalleryContext","instance","props","ptmi","gallery","rootProps","mergeProps","_a","Component","Gallery","withComponent","defaultProps","styles","instance","useGallery","id","props","ptmi","cx","rootProps","mergeProps","GalleryProvider","Component","GalleryBackdrop","GalleryContent","GalleryItem","GalleryNext","GalleryPrev","GalleryToolbar","GalleryToolbarItem","GalleryThumbnail","GalleryThumbnailContent","GalleryThumbnailItem","React","defaultItemProps","useGalleryItem","withHeadless","defaultItemProps","props","elementRef","normalScale","zoomedScale","gallery","useGalleryContext","index","setIndex","isActive","setIsActive","position","setPosition","scale","setScale","rotation","setRotation","flip","setFlip","isDragging","setIsDragging","dragStart","setDragStart","hasDragged","setHasDragged","pointerDataRef","lastDistanceRef","calculateItemSize","contentRect","imageElement","naturalWidth","naturalHeight","isRotated","naturalAspectRatio","contentAspectRatio","targetWidth","targetHeight","calculateConstraints","targetScale","scaleToUse","itemElement","originalWidth","originalHeight","scaledWidth","scaledHeight","contentCenterX","contentCenterY","halfScaledWidth","halfScaledHeight","maxX","minX","maxY","minY","zoomIn","hiddenStyles","zoomOut","resetStyles","rotateLeft","prev","rotateRight","flipX","__spreadProps","__spreadValues","flipY","download","link","urlParts","filename","handleClick","e","itemRect","itemCenterX","itemCenterY","clickX","clickY","offsetX","offsetY","zoomOffsetX","zoomOffsetY","constraints","constrainedX","constrainedY","handleDragStart","handlePointerDown","handlePointerMove","pointers","p1","p2","distance","delta","newScale","pointer","newX","newY","computedX","computedY","handlePointerUp","handleResize","handleCustomEvent","_a","_b","_c","_d","_e","_f","_g","attributes","CSSVariables"]}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
export declare const useGalleryItem: (inProps?: unknown) => import("@primereact/types/core").HeadlessInstance<import("@primereact/types/shared/gallery").useGalleryItemProps, unknown, {
|
|
3
|
+
state: {
|
|
4
|
+
index: number;
|
|
5
|
+
position: {
|
|
6
|
+
x: number;
|
|
7
|
+
y: number;
|
|
8
|
+
};
|
|
9
|
+
scale: number;
|
|
10
|
+
rotation: number;
|
|
11
|
+
flip: {
|
|
12
|
+
x: number;
|
|
13
|
+
y: number;
|
|
14
|
+
};
|
|
15
|
+
isActive: boolean;
|
|
16
|
+
dragStart: {
|
|
17
|
+
x: number;
|
|
18
|
+
y: number;
|
|
19
|
+
};
|
|
20
|
+
hasDragged: boolean;
|
|
21
|
+
};
|
|
22
|
+
attributes: {
|
|
23
|
+
'data-active': boolean;
|
|
24
|
+
};
|
|
25
|
+
CSSVariables: React.CSSProperties;
|
|
26
|
+
handlePointerUp: (e: React.PointerEvent) => void;
|
|
27
|
+
handlePointerMove: (e: React.PointerEvent) => void;
|
|
28
|
+
handlePointerDown: (e: React.PointerEvent) => void;
|
|
29
|
+
handleClick: (e: React.MouseEvent) => void;
|
|
30
|
+
handleDragStart: (e: React.DragEvent<HTMLDivElement>) => void;
|
|
31
|
+
zoomIn: () => void;
|
|
32
|
+
zoomOut: () => void;
|
|
33
|
+
rotateLeft: () => void;
|
|
34
|
+
rotateRight: () => void;
|
|
35
|
+
flipX: () => void;
|
|
36
|
+
flipY: () => void;
|
|
37
|
+
download: () => void;
|
|
38
|
+
calculateConstraints: (targetScale?: number) => {
|
|
39
|
+
minX: number;
|
|
40
|
+
maxX: number;
|
|
41
|
+
minY: number;
|
|
42
|
+
maxY: number;
|
|
43
|
+
};
|
|
44
|
+
calculateItemSize: () => void;
|
|
45
|
+
}>;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
export declare const useGallery: (inProps?: unknown) => import("@primereact/types/core").HeadlessInstance<import("@primereact/types/shared/gallery").useGalleryProps, unknown, {
|
|
3
|
+
state: {
|
|
4
|
+
isFullscreen: boolean;
|
|
5
|
+
activeIndex: number;
|
|
6
|
+
};
|
|
7
|
+
registerItem: (ref: HTMLDivElement | null) => number;
|
|
8
|
+
handleNext: () => void;
|
|
9
|
+
handlePrev: () => void;
|
|
10
|
+
createCustomEvent: (action: string) => () => void;
|
|
11
|
+
toggleFullScreen: () => void;
|
|
12
|
+
handleClickAction: (action?: string) => void;
|
|
13
|
+
actions: {
|
|
14
|
+
zoomIn: () => void;
|
|
15
|
+
zoomOut: () => void;
|
|
16
|
+
rotateLeft: () => void;
|
|
17
|
+
rotateRight: () => void;
|
|
18
|
+
flipX: () => void;
|
|
19
|
+
flipY: () => void;
|
|
20
|
+
download: () => void;
|
|
21
|
+
next: () => void;
|
|
22
|
+
prev: () => void;
|
|
23
|
+
toggleFullScreen: () => void;
|
|
24
|
+
};
|
|
25
|
+
contentRef: React.RefObject<HTMLDivElement | null>;
|
|
26
|
+
toolbarRef: React.RefObject<HTMLDivElement | null>;
|
|
27
|
+
thumbnailRef: React.RefObject<React.RefObject<(<I extends import("@primereact/types/core").ComponentInstance, T extends React.ElementType>(inProps?: (import("@primereact/types/core").GlobalComponentProps<I, unknown, T, unknown, unknown> & {} & {} & Omit<import("@primereact/types/shared").ExtractProps<T>, keyof import("@primereact/types/core").GlobalComponentProps<I_1, P, T_1, unknown, unknown>> & import("@primereact/types/shared/carousel").CarouselProps) | undefined) => React.JSX.Element | null) & {
|
|
28
|
+
Content: (<I extends import("@primereact/types/core").ComponentInstance, T extends React.ElementType>(inProps?: (import("@primereact/types/core").GlobalComponentProps<I, unknown, T, unknown, unknown> & {} & {} & Omit<import("@primereact/types/shared").ExtractProps<T>, keyof import("@primereact/types/core").GlobalComponentProps<I_1, P, T_1, unknown, unknown>> & import("@primereact/types/shared/carousel").CarouselContentProps) | undefined) => React.JSX.Element | null) & Record<string, unknown> & React.FC<{}>;
|
|
29
|
+
Item: (<I extends import("@primereact/types/core").ComponentInstance, T extends React.ElementType>(inProps?: (import("@primereact/types/core").GlobalComponentProps<I, unknown, T, unknown, unknown> & {} & {} & Omit<import("@primereact/types/shared").ExtractProps<T>, keyof import("@primereact/types/core").GlobalComponentProps<I_1, P, T_1, unknown, unknown>> & import("@primereact/types/shared/carousel").CarouselItemProps) | undefined) => React.JSX.Element | null) & Record<string, unknown> & React.FC<{}>;
|
|
30
|
+
Next: (<I extends import("@primereact/types/core").ComponentInstance, T extends React.ElementType>(inProps?: (import("@primereact/types/core").GlobalComponentProps<I, unknown, T, unknown, unknown> & {} & {} & Omit<import("@primereact/types/shared").ExtractProps<T>, keyof import("@primereact/types/core").GlobalComponentProps<I_1, P, T_1, unknown, unknown>> & import("@primereact/types/shared/carousel").CarouselNextProps) | undefined) => React.JSX.Element | null) & Record<string, unknown> & React.FC<{}>;
|
|
31
|
+
Prev: (<I extends import("@primereact/types/core").ComponentInstance, T extends React.ElementType>(inProps?: (import("@primereact/types/core").GlobalComponentProps<I, unknown, T, unknown, unknown> & {} & {} & Omit<import("@primereact/types/shared").ExtractProps<T>, keyof import("@primereact/types/core").GlobalComponentProps<I_1, P, T_1, unknown, unknown>> & import("@primereact/types/shared/carousel").CarouselPrevProps) | undefined) => React.JSX.Element | null) & Record<string, unknown> & React.FC<{}>;
|
|
32
|
+
Indicators: (<I extends import("@primereact/types/core").ComponentInstance, T extends React.ElementType>(inProps?: (import("@primereact/types/core").GlobalComponentProps<I, unknown, T, unknown, unknown> & {} & {} & Omit<import("@primereact/types/shared").ExtractProps<T>, keyof import("@primereact/types/core").GlobalComponentProps<I_1, P, T_1, unknown, unknown>> & import("@primereact/types/shared/carousel").CarouselIndicatorsProps) | undefined) => React.JSX.Element | null) & Record<string, unknown> & React.FC<{}>;
|
|
33
|
+
Indicator: (<I extends import("@primereact/types/core").ComponentInstance, T extends React.ElementType>(inProps?: (import("@primereact/types/core").GlobalComponentProps<I, unknown, T, unknown, unknown> & {} & {} & Omit<import("@primereact/types/shared").ExtractProps<T>, keyof import("@primereact/types/core").GlobalComponentProps<I_1, P, T_1, unknown, unknown>> & import("@primereact/types/shared/carousel").CarouselIndicatorProps) | undefined) => React.JSX.Element | null) & Record<string, unknown> & React.FC<{}>;
|
|
34
|
+
} & React.FC<{}>> | null>;
|
|
35
|
+
prevRef: React.RefObject<HTMLButtonElement | null>;
|
|
36
|
+
nextRef: React.RefObject<HTMLButtonElement | null>;
|
|
37
|
+
}>;
|
|
File without changes
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@primereact/headless",
|
|
3
|
-
"version": "11.0.0-alpha.
|
|
3
|
+
"version": "11.0.0-alpha.7",
|
|
4
4
|
"author": "PrimeTek Informatics",
|
|
5
5
|
"description": "",
|
|
6
6
|
"homepage": "https://primereact.org/",
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
"dependencies": {
|
|
35
35
|
"@primeuix/styled": "^0.7.4",
|
|
36
36
|
"@primeuix/utils": "^0.6.1",
|
|
37
|
-
"@primereact/core": "11.0.0-alpha.
|
|
38
|
-
"@primereact/hooks": "11.0.0-alpha.
|
|
37
|
+
"@primereact/core": "11.0.0-alpha.7",
|
|
38
|
+
"@primereact/hooks": "11.0.0-alpha.7"
|
|
39
39
|
}
|
|
40
40
|
}
|
package/speeddial/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var
|
|
1
|
+
var ot=Object.defineProperty;var C=Object.getOwnPropertySymbols;var at=Object.prototype.hasOwnProperty,ct=Object.prototype.propertyIsEnumerable;var S=(e,s,c)=>s in e?ot(e,s,{enumerable:!0,configurable:!0,writable:!0,value:c}):e[s]=c,O=(e,s)=>{for(var c in s||(s={}))at.call(s,c)&&S(e,c,s[c]);if(C)for(var c of C(s))ct.call(s,c)&&S(e,c,s[c]);return e};import{withHeadless as lt}from"@primereact/core/headless";import{useEventListener as ut,useMountEffect as dt,useUnmountEffect as ft,useUpdateEffect as mt}from"@primereact/hooks";import{$dt as f}from"@primeuix/styled";import{find as v,findSingle as m,focus as L,hasClass as k}from"@primeuix/utils/dom";import*as d from"react";var P={visible:!1,defaultVisible:!1,direction:"up",transitionDelay:30,type:"linear",radius:0,hideOnClickOutside:!0,onVisibleChange:void 0};var Mt=lt({name:"useSpeedDial",defaultProps:P,setup:({props:e,elementRef:s})=>{var A,$;let c=d.useRef(null),[h,R]=d.useState(($=(A=e.visible)!=null?A:e.defaultVisible)!=null?$:!1),[w,E]=d.useState(-1),D=d.useRef(!1),p=d.useRef(0),M=3.14159265358979,U={visible:h,focusedOptionIndex:w},V=d.useCallback(()=>{let t=p.current;return p.current+=1,t},[]);dt(()=>{if(e.type!=="linear"){let t=m(s.current,'[data-pc-name="button"]'),n=m(c.current,'[data-pc-name="speeddialitem"]');if(t&&n){let i=Math.abs(t.offsetWidth-n.offsetWidth),a=Math.abs(t.offsetHeight-n.offsetHeight);c.current.style.setProperty(f("item.diff.x").name,`${i/2}px`),c.current.style.setProperty(f("item.diff.y").name,`${a/2}px`)}}}),mt(()=>(h&&e.hideOnClickOutside&&N(),()=>{e.hideOnClickOutside&&x()}),[h]),ft(()=>{x()});let[N,x]=ut({type:"click",listener:t=>{h&&B(t)&&y(),D.current=!1}}),B=t=>s.current&&!(s.current.isSameNode(t.target)||s.current.contains(t.target)),F=t=>{var n;(n=s.current)!=null&&n.contains(t.relatedTarget)||E(-1)},K=t=>{var n;y(),D.current=!0,(n=t.preventDefault)==null||n.call(t)},W=t=>{t.code==="Enter"&&K(t)},q=()=>{h?y():I(),D.current=!0},I=()=>{var t;R(!0),(t=e.onVisibleChange)==null||t.call(e,{value:!0})},y=()=>{var t;R(!1),(t=e.onVisibleChange)==null||t.call(e,{value:!1})},_=t=>{var a;let n=p.current;return(h?t:n-t-1)*((a=e.transitionDelay)!=null?a:30)},j=t=>{let n=e.type;if(n!=="linear"){let i=p.current,a=e.radius||i*20;if(n==="circle"){let r=2*M/i;return{left:`calc(${a*Math.cos(r*t)}px + ${f("item.diff.x").variable})`,top:`calc(${a*Math.sin(r*t)}px + ${f("item.diff.y").variable})`}}else if(n==="semi-circle"){let r=e.direction,o=M/(i-1),l=`calc(${a*Math.cos(o*t)}px + ${f("item.diff.x").variable})`,u=`calc(${a*Math.sin(o*t)}px + ${f("item.diff.y").variable})`;if(r==="up")return{left:l,bottom:u};if(r==="down")return{left:l,top:u};if(r==="left")return{right:u,top:l};if(r==="right")return{left:u,top:l}}else if(n==="quarter-circle"){let r=e.direction,o=M/(2*(i-1)),l=`calc(${a*Math.cos(o*t)}px + ${f("item.diff.x").variable})`,u=`calc(${a*Math.sin(o*t)}px + ${f("item.diff.y").variable})`;if(r==="up-left")return{right:l,bottom:u};if(r==="up-right")return{left:l,bottom:u};if(r==="down-left")return{right:u,top:l};if(r==="down-right")return{left:u,top:l}}}return{}},z=t=>{switch(t.code){case"ArrowDown":case"ArrowLeft":Q(t);break;case"ArrowUp":case"ArrowRight":J(t);break;case"Escape":H();break;default:break}},G=t=>{switch(t.code){case"ArrowDown":Z(t);break;case"ArrowUp":Y(t);break;case"ArrowLeft":tt(t);break;case"ArrowRight":et(t);break;case"Enter":case"NumpadEnter":case"Space":X();break;case"Escape":H();break;case"Home":it(t);break;case"End":nt(t);break;default:break}},J=t=>{I(),g(t),t.preventDefault()},Q=t=>{I(),b(t),t.preventDefault()},X=()=>{y(),E(-1);let t=m(s.current,"button");t&&L(t)},H=()=>{y(),E(-1);let t=m(s.current,"button");t&&L(t)},Y=t=>{e.direction==="down"?g(t):b(t)},Z=t=>{e.direction==="down"?b(t):g(t)},tt=t=>{let n=["left","up-right","down-left"],i=["right","up-left","down-right"];n.includes(e.direction)?b(t):(i.includes(e.direction),g(t))},et=t=>{let n=["left","up-right","down-left"],i=["right","up-left","down-right"];n.includes(e.direction)?g(t):(i.includes(e.direction),b(t))},nt=t=>{t.preventDefault(),E(-1),g(t)},it=t=>{t.preventDefault(),E(-1),b(t)},b=t=>{let n=st(w);T(n),t.preventDefault()},g=t=>{let n=rt(w);T(n),t.preventDefault()},T=t=>{var a;let i=[...v(s.current,'[data-pc-name="speeddialitem"]')].filter(r=>{let o=m(r,"a");return o?!k(o,"p-disabled"):!0});if(i[t]){let r=(a=i[t].getAttribute("id"))!=null?a:-1;E(r);let o=m(i[t],'[type="button"]');o&&L(o)}},rt=t=>{let i=[...v(s.current,'[data-pc-name="speeddialitem"]')].filter(o=>{let l=m(o,"a");return l?!k(l,"p-disabled"):!0}),a=t===-1?i[i.length-1].id:t,r=i.findIndex(o=>o.getAttribute("id")===a);return r=t===-1?i.length-1:r-1,r},st=t=>{let i=[...v(s.current,'[data-pc-name="speeddialitem"]')].filter(o=>{let l=m(o,"a");return l?!k(l,"p-disabled"):!0}),a=t===-1?i[0].id:t,r=i.findIndex(o=>o.getAttribute("id")===a);return r=t===-1?0:r+1,r};return{state:U,listRef:c,registerItem:V,getItemStyle:t=>{let n=_(t),i=j(t);return O({transitionDelay:`${n}ms`},i)},onBlur:F,onKeyDown:G,onClick:q,onTogglerKeydown:z,onItemClick:K,onItemKeyDown:W}}});export{P as defaultProps,Mt as useSpeedDial};
|
|
2
2
|
//# sourceMappingURL=index.mjs.map
|
package/speeddial/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/speeddial/useSpeedDial.ts","../../src/speeddial/useSpeedDial.props.ts"],"sourcesContent":["import { withHeadless } from '@primereact/core/headless';\nimport { useEventListener, useMountEffect, useUnmountEffect, useUpdateEffect } from '@primereact/hooks';\nimport { $dt } from '@primeuix/styled';\nimport { find, findSingle, focus, hasClass } from '@primeuix/utils/dom';\nimport * as React from 'react';\nimport { defaultProps } from './useSpeedDial.props';\n\nexport const useSpeedDial = withHeadless({\n name: 'useSpeedDial',\n defaultProps,\n setup: ({ props, elementRef }) => {\n const listRef = React.useRef<HTMLUListElement | null>(null);\n const [visibleState, setVisibleState] = React.useState<boolean>(props.visible ?? props.defaultVisible ?? false);\n const [focusedOptionIndex, setFocusedOptionIndex] = React.useState<string | number>(-1);\n const isItemClicked = React.useRef(false);\n const itemCounter = React.useRef(0);\n const Math_PI = 3.14159265358979;\n\n const state = {\n visible: visibleState,\n focusedOptionIndex\n };\n\n const registerItem = React.useCallback(() => {\n const index = itemCounter.current;\n\n itemCounter.current += 1;\n\n return index;\n }, []);\n\n useMountEffect(() => {\n if (props.type !== 'linear') {\n const button = findSingle(elementRef.current as HTMLDivElement, '[data-pc-name=\"button\"]') as HTMLButtonElement;\n const firstItem = findSingle(listRef.current as HTMLUListElement, '[data-pc-name=\"speeddialitem\"]') as HTMLLIElement;\n\n if (button && firstItem) {\n const wDiff = Math.abs(button.offsetWidth - firstItem.offsetWidth);\n const hDiff = Math.abs(button.offsetHeight - firstItem.offsetHeight);\n\n (listRef.current as HTMLUListElement).style.setProperty($dt('item.diff.x').name, `${wDiff / 2}px`);\n (listRef.current as HTMLUListElement).style.setProperty($dt('item.diff.y').name, `${hDiff / 2}px`);\n }\n }\n });\n\n useUpdateEffect(() => {\n if (visibleState) {\n if (props.hideOnClickOutside) {\n bindDocumentClickListener();\n }\n }\n\n return () => {\n if (props.hideOnClickOutside) {\n unbindDocumentClickListener();\n }\n };\n }, [visibleState]);\n\n useUnmountEffect(() => {\n unbindDocumentClickListener();\n });\n\n const [bindDocumentClickListener, unbindDocumentClickListener] = useEventListener({\n type: 'click',\n listener: (event) => {\n if (visibleState && isOutsideClicked(event as unknown as React.MouseEvent)) {\n hide();\n }\n\n isItemClicked.current = false;\n }\n });\n\n const isOutsideClicked = (event: React.MouseEvent) => {\n return elementRef.current && !(elementRef.current.isSameNode(event.target as Node) || elementRef.current.contains(event.target as Node));\n };\n\n const onBlur = (event: React.FocusEvent) => {\n if (!elementRef.current?.contains(event.relatedTarget as Node)) {\n setFocusedOptionIndex(-1);\n }\n };\n\n const onItemClick = (event: React.MouseEvent) => {\n hide();\n\n isItemClicked.current = true;\n event.preventDefault();\n };\n\n const onClick = () => {\n if (visibleState) {\n hide();\n } else {\n show();\n }\n\n isItemClicked.current = true;\n };\n\n const show = () => {\n setVisibleState(true);\n\n props.onVisibleChange?.({\n value: true\n });\n };\n\n const hide = () => {\n setVisibleState(false);\n\n props.onVisibleChange?.({\n value: false\n });\n };\n\n const calculateTransitionDelay = (index: number) => {\n const length = itemCounter.current;\n const visible = visibleState;\n\n return (visible ? index : length - index - 1) * (props.transitionDelay ?? 30);\n };\n\n const calculatePointStyle = (index: number) => {\n const type = props.type;\n\n if (type !== 'linear') {\n const length = itemCounter.current;\n const radius = (props.radius || length * 20) as number;\n\n if (type === 'circle') {\n const step = (2 * Math_PI) / length;\n\n return {\n left: `calc(${radius * Math.cos(step * index)}px + ${$dt('item.diff.x').variable})`,\n top: `calc(${radius * Math.sin(step * index)}px + ${$dt('item.diff.y').variable})`\n };\n } else if (type === 'semi-circle') {\n const direction = props.direction;\n const step = Math_PI / (length - 1);\n const x = `calc(${radius * Math.cos(step * index)}px + ${$dt('item.diff.x').variable})`;\n const y = `calc(${radius * Math.sin(step * index)}px + ${$dt('item.diff.y').variable})`;\n\n if (direction === 'up') {\n return { left: x, bottom: y };\n } else if (direction === 'down') {\n return { left: x, top: y };\n } else if (direction === 'left') {\n return { right: y, top: x };\n } else if (direction === 'right') {\n return { left: y, top: x };\n }\n } else if (type === 'quarter-circle') {\n const direction = props.direction;\n const step = Math_PI / (2 * (length - 1));\n const x = `calc(${radius * Math.cos(step * index)}px + ${$dt('item.diff.x').variable})`;\n const y = `calc(${radius * Math.sin(step * index)}px + ${$dt('item.diff.y').variable})`;\n\n if (direction === 'up-left') {\n return { right: x, bottom: y };\n } else if (direction === 'up-right') {\n return { left: x, bottom: y };\n } else if (direction === 'down-left') {\n return { right: y, top: x };\n } else if (direction === 'down-right') {\n return { left: y, top: x };\n }\n }\n }\n\n return {};\n };\n\n const onTogglerKeydown = (event: React.KeyboardEvent) => {\n switch (event.code) {\n case 'ArrowDown':\n case 'ArrowLeft':\n onTogglerArrowDown(event);\n\n break;\n\n case 'ArrowUp':\n case 'ArrowRight':\n onTogglerArrowUp(event);\n\n break;\n\n case 'Escape':\n onEscapeKey();\n\n break;\n\n default:\n break;\n }\n };\n\n const onKeyDown = (event: React.KeyboardEvent) => {\n switch (event.code) {\n case 'ArrowDown':\n onArrowDown(event);\n break;\n\n case 'ArrowUp':\n onArrowUp(event);\n break;\n\n case 'ArrowLeft':\n onArrowLeft(event);\n break;\n\n case 'ArrowRight':\n onArrowRight(event);\n break;\n\n case 'Enter':\n case 'NumpadEnter':\n case 'Space':\n onEnterKey();\n break;\n\n case 'Escape':\n onEscapeKey();\n break;\n\n case 'Home':\n onHomeKey(event);\n break;\n\n case 'End':\n onEndKey(event);\n break;\n\n default:\n break;\n }\n };\n\n const onTogglerArrowUp = (event: React.KeyboardEvent) => {\n show();\n navigatePrevItem(event);\n\n event.preventDefault();\n };\n\n const onTogglerArrowDown = (event: React.KeyboardEvent) => {\n show();\n navigateNextItem(event);\n\n event.preventDefault();\n };\n\n const onEnterKey = () => {\n hide();\n setFocusedOptionIndex(-1);\n\n const buttonEl = findSingle(elementRef.current as HTMLDivElement, 'button') as HTMLButtonElement;\n\n if (buttonEl) {\n focus(buttonEl);\n }\n };\n\n const onEscapeKey = () => {\n hide();\n setFocusedOptionIndex(-1);\n\n const buttonEl = findSingle(elementRef.current as HTMLDivElement, 'button') as HTMLButtonElement;\n\n if (buttonEl) {\n focus(buttonEl);\n }\n };\n\n const onArrowUp = (event: React.KeyboardEvent) => {\n if (props.direction === 'down') {\n navigatePrevItem(event);\n } else {\n navigateNextItem(event);\n }\n };\n\n const onArrowDown = (event: React.KeyboardEvent) => {\n if (props.direction === 'down') {\n navigateNextItem(event);\n } else {\n navigatePrevItem(event);\n }\n };\n\n const onArrowLeft = (event: React.KeyboardEvent) => {\n const leftValidDirections = ['left', 'up-right', 'down-left'];\n const rightValidDirections = ['right', 'up-left', 'down-right'];\n\n if (leftValidDirections.includes(props.direction as string)) {\n navigateNextItem(event);\n } else if (rightValidDirections.includes(props.direction as string)) {\n navigatePrevItem(event);\n } else {\n navigatePrevItem(event);\n }\n };\n\n const onArrowRight = (event: React.KeyboardEvent) => {\n const leftValidDirections = ['left', 'up-right', 'down-left'];\n const rightValidDirections = ['right', 'up-left', 'down-right'];\n\n if (leftValidDirections.includes(props.direction as string)) {\n navigatePrevItem(event);\n } else if (rightValidDirections.includes(props.direction as string)) {\n navigateNextItem(event);\n } else {\n navigateNextItem(event);\n }\n };\n\n const onEndKey = (event: React.KeyboardEvent) => {\n event.preventDefault();\n\n setFocusedOptionIndex(-1);\n navigatePrevItem(event);\n };\n\n const onHomeKey = (event: React.KeyboardEvent) => {\n event.preventDefault();\n\n setFocusedOptionIndex(-1);\n navigateNextItem(event);\n };\n\n const navigateNextItem = (event: React.KeyboardEvent) => {\n const optionIndex = findNextOptionIndex(focusedOptionIndex);\n\n changeFocusedOptionIndex(optionIndex);\n\n event.preventDefault();\n };\n\n const navigatePrevItem = (event: React.KeyboardEvent) => {\n const optionIndex = findPrevOptionIndex(focusedOptionIndex);\n\n changeFocusedOptionIndex(optionIndex);\n\n event.preventDefault();\n };\n\n const changeFocusedOptionIndex = (index: number) => {\n const items = find(elementRef.current as HTMLDivElement, '[data-pc-name=\"speeddialitem\"]');\n const filteredItems = [...items].filter((item) => {\n const element = findSingle(item, 'a');\n\n return element ? !hasClass(element, 'p-disabled') : true;\n });\n\n if (filteredItems[index]) {\n const idAttr = filteredItems[index].getAttribute('id') ?? -1;\n\n setFocusedOptionIndex(idAttr);\n\n const buttonEl = findSingle(filteredItems[index], '[type=\"button\"]') as HTMLButtonElement;\n\n if (buttonEl) {\n focus(buttonEl);\n }\n }\n };\n\n const findPrevOptionIndex = (index: string | number) => {\n const items = find(elementRef.current as HTMLDivElement, '[data-pc-name=\"speeddialitem\"]');\n const filteredItems = [...items].filter((item) => {\n const element = findSingle(item, 'a');\n\n return element ? !hasClass(element, 'p-disabled') : true;\n });\n const newIndex = index === -1 ? filteredItems[filteredItems.length - 1].id : index;\n let matchedOptionIndex = filteredItems.findIndex((link) => link.getAttribute('id') === newIndex);\n\n matchedOptionIndex = index === -1 ? filteredItems.length - 1 : matchedOptionIndex - 1;\n\n return matchedOptionIndex;\n };\n\n const findNextOptionIndex = (index: string | number) => {\n const items = find(elementRef.current as HTMLDivElement, '[data-pc-name=\"speeddialitem\"]');\n const filteredItems = [...items].filter((item) => {\n const element = findSingle(item, 'a');\n\n return element ? !hasClass(element, 'p-disabled') : true;\n });\n\n const newIndex = index === -1 ? filteredItems[0].id : index;\n\n let matchedOptionIndex = filteredItems.findIndex((link) => link.getAttribute('id') === newIndex);\n\n matchedOptionIndex = index === -1 ? 0 : matchedOptionIndex + 1;\n\n return matchedOptionIndex;\n };\n\n const getItemStyle = (index: number) => {\n const transitionDelay = calculateTransitionDelay(index);\n const pointStyle = calculatePointStyle(index);\n\n return {\n transitionDelay: `${transitionDelay}ms`,\n ...pointStyle\n };\n };\n\n return {\n state,\n //refs\n listRef,\n // methods\n registerItem,\n getItemStyle,\n onBlur,\n onKeyDown,\n onClick,\n onTogglerKeydown,\n onItemClick\n };\n }\n});\n","import type { useSpeedDialProps } from '@primereact/types/shared/speeddial';\n\nexport const defaultProps: useSpeedDialProps = {\n visible: false,\n defaultVisible: false,\n direction: 'up',\n transitionDelay: 30,\n type: 'linear',\n radius: 0,\n hideOnClickOutside: true,\n onVisibleChange: undefined\n};\n"],"mappings":"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","names":["withHeadless","useEventListener","useMountEffect","useUnmountEffect","useUpdateEffect","$dt","find","findSingle","focus","hasClass","React","defaultProps","useSpeedDial","withHeadless","defaultProps","props","elementRef","_a","_b","listRef","visibleState","setVisibleState","focusedOptionIndex","setFocusedOptionIndex","isItemClicked","itemCounter","Math_PI","state","registerItem","index","useMountEffect","button","findSingle","firstItem","wDiff","hDiff","$dt","useUpdateEffect","bindDocumentClickListener","unbindDocumentClickListener","useUnmountEffect","useEventListener","event","isOutsideClicked","hide","onBlur","onItemClick","onClick","show","calculateTransitionDelay","length","calculatePointStyle","type","radius","step","direction","x","y","onTogglerKeydown","onTogglerArrowDown","onTogglerArrowUp","onEscapeKey","onKeyDown","onArrowDown","onArrowUp","onArrowLeft","onArrowRight","onEnterKey","onHomeKey","onEndKey","navigatePrevItem","navigateNextItem","buttonEl","focus","leftValidDirections","rightValidDirections","optionIndex","findNextOptionIndex","changeFocusedOptionIndex","findPrevOptionIndex","filteredItems","find","item","element","hasClass","idAttr","newIndex","matchedOptionIndex","link","transitionDelay","pointStyle","__spreadValues"]}
|
|
1
|
+
{"version":3,"sources":["../../src/speeddial/useSpeedDial.ts","../../src/speeddial/useSpeedDial.props.ts"],"sourcesContent":["import { withHeadless } from '@primereact/core/headless';\nimport { useEventListener, useMountEffect, useUnmountEffect, useUpdateEffect } from '@primereact/hooks';\nimport { $dt } from '@primeuix/styled';\nimport { find, findSingle, focus, hasClass } from '@primeuix/utils/dom';\nimport * as React from 'react';\nimport { defaultProps } from './useSpeedDial.props';\n\nexport const useSpeedDial = withHeadless({\n name: 'useSpeedDial',\n defaultProps,\n setup: ({ props, elementRef }) => {\n const listRef = React.useRef<HTMLUListElement | null>(null);\n const [visibleState, setVisibleState] = React.useState<boolean>(props.visible ?? props.defaultVisible ?? false);\n const [focusedOptionIndex, setFocusedOptionIndex] = React.useState<string | number>(-1);\n const isItemClicked = React.useRef(false);\n const itemCounter = React.useRef(0);\n const Math_PI = 3.14159265358979;\n\n const state = {\n visible: visibleState,\n focusedOptionIndex\n };\n\n const registerItem = React.useCallback(() => {\n const index = itemCounter.current;\n\n itemCounter.current += 1;\n\n return index;\n }, []);\n\n useMountEffect(() => {\n if (props.type !== 'linear') {\n const button = findSingle(elementRef.current as HTMLDivElement, '[data-pc-name=\"button\"]') as HTMLButtonElement;\n const firstItem = findSingle(listRef.current as HTMLUListElement, '[data-pc-name=\"speeddialitem\"]') as HTMLLIElement;\n\n if (button && firstItem) {\n const wDiff = Math.abs(button.offsetWidth - firstItem.offsetWidth);\n const hDiff = Math.abs(button.offsetHeight - firstItem.offsetHeight);\n\n (listRef.current as HTMLUListElement).style.setProperty($dt('item.diff.x').name, `${wDiff / 2}px`);\n (listRef.current as HTMLUListElement).style.setProperty($dt('item.diff.y').name, `${hDiff / 2}px`);\n }\n }\n });\n\n useUpdateEffect(() => {\n if (visibleState) {\n if (props.hideOnClickOutside) {\n bindDocumentClickListener();\n }\n }\n\n return () => {\n if (props.hideOnClickOutside) {\n unbindDocumentClickListener();\n }\n };\n }, [visibleState]);\n\n useUnmountEffect(() => {\n unbindDocumentClickListener();\n });\n\n const [bindDocumentClickListener, unbindDocumentClickListener] = useEventListener({\n type: 'click',\n listener: (event) => {\n if (visibleState && isOutsideClicked(event as unknown as React.MouseEvent)) {\n hide();\n }\n\n isItemClicked.current = false;\n }\n });\n\n const isOutsideClicked = (event: React.MouseEvent) => {\n return elementRef.current && !(elementRef.current.isSameNode(event.target as Node) || elementRef.current.contains(event.target as Node));\n };\n\n const onBlur = (event: React.FocusEvent) => {\n if (!elementRef.current?.contains(event.relatedTarget as Node)) {\n setFocusedOptionIndex(-1);\n }\n };\n\n const onItemClick = (event: React.MouseEvent | React.KeyboardEvent) => {\n hide();\n\n isItemClicked.current = true;\n event.preventDefault?.();\n };\n\n const onItemKeyDown = (event: React.KeyboardEvent) => {\n if (event.code === 'Enter') {\n onItemClick(event);\n }\n };\n\n const onClick = () => {\n if (visibleState) {\n hide();\n } else {\n show();\n }\n\n isItemClicked.current = true;\n };\n\n const show = () => {\n setVisibleState(true);\n\n props.onVisibleChange?.({\n value: true\n });\n };\n\n const hide = () => {\n setVisibleState(false);\n\n props.onVisibleChange?.({\n value: false\n });\n };\n\n const calculateTransitionDelay = (index: number) => {\n const length = itemCounter.current;\n const visible = visibleState;\n\n return (visible ? index : length - index - 1) * (props.transitionDelay ?? 30);\n };\n\n const calculatePointStyle = (index: number) => {\n const type = props.type;\n\n if (type !== 'linear') {\n const length = itemCounter.current;\n const radius = (props.radius || length * 20) as number;\n\n if (type === 'circle') {\n const step = (2 * Math_PI) / length;\n\n return {\n left: `calc(${radius * Math.cos(step * index)}px + ${$dt('item.diff.x').variable})`,\n top: `calc(${radius * Math.sin(step * index)}px + ${$dt('item.diff.y').variable})`\n };\n } else if (type === 'semi-circle') {\n const direction = props.direction;\n const step = Math_PI / (length - 1);\n const x = `calc(${radius * Math.cos(step * index)}px + ${$dt('item.diff.x').variable})`;\n const y = `calc(${radius * Math.sin(step * index)}px + ${$dt('item.diff.y').variable})`;\n\n if (direction === 'up') {\n return { left: x, bottom: y };\n } else if (direction === 'down') {\n return { left: x, top: y };\n } else if (direction === 'left') {\n return { right: y, top: x };\n } else if (direction === 'right') {\n return { left: y, top: x };\n }\n } else if (type === 'quarter-circle') {\n const direction = props.direction;\n const step = Math_PI / (2 * (length - 1));\n const x = `calc(${radius * Math.cos(step * index)}px + ${$dt('item.diff.x').variable})`;\n const y = `calc(${radius * Math.sin(step * index)}px + ${$dt('item.diff.y').variable})`;\n\n if (direction === 'up-left') {\n return { right: x, bottom: y };\n } else if (direction === 'up-right') {\n return { left: x, bottom: y };\n } else if (direction === 'down-left') {\n return { right: y, top: x };\n } else if (direction === 'down-right') {\n return { left: y, top: x };\n }\n }\n }\n\n return {};\n };\n\n const onTogglerKeydown = (event: React.KeyboardEvent) => {\n switch (event.code) {\n case 'ArrowDown':\n case 'ArrowLeft':\n onTogglerArrowDown(event);\n\n break;\n\n case 'ArrowUp':\n case 'ArrowRight':\n onTogglerArrowUp(event);\n\n break;\n\n case 'Escape':\n onEscapeKey();\n\n break;\n\n default:\n break;\n }\n };\n\n const onKeyDown = (event: React.KeyboardEvent) => {\n switch (event.code) {\n case 'ArrowDown':\n onArrowDown(event);\n break;\n\n case 'ArrowUp':\n onArrowUp(event);\n break;\n\n case 'ArrowLeft':\n onArrowLeft(event);\n break;\n\n case 'ArrowRight':\n onArrowRight(event);\n break;\n\n case 'Enter':\n case 'NumpadEnter':\n case 'Space':\n onEnterKey();\n break;\n\n case 'Escape':\n onEscapeKey();\n break;\n\n case 'Home':\n onHomeKey(event);\n break;\n\n case 'End':\n onEndKey(event);\n break;\n\n default:\n break;\n }\n };\n\n const onTogglerArrowUp = (event: React.KeyboardEvent) => {\n show();\n navigatePrevItem(event);\n\n event.preventDefault();\n };\n\n const onTogglerArrowDown = (event: React.KeyboardEvent) => {\n show();\n navigateNextItem(event);\n\n event.preventDefault();\n };\n\n const onEnterKey = () => {\n hide();\n setFocusedOptionIndex(-1);\n\n const buttonEl = findSingle(elementRef.current as HTMLDivElement, 'button') as HTMLButtonElement;\n\n if (buttonEl) {\n focus(buttonEl);\n }\n };\n\n const onEscapeKey = () => {\n hide();\n setFocusedOptionIndex(-1);\n\n const buttonEl = findSingle(elementRef.current as HTMLDivElement, 'button') as HTMLButtonElement;\n\n if (buttonEl) {\n focus(buttonEl);\n }\n };\n\n const onArrowUp = (event: React.KeyboardEvent) => {\n if (props.direction === 'down') {\n navigatePrevItem(event);\n } else {\n navigateNextItem(event);\n }\n };\n\n const onArrowDown = (event: React.KeyboardEvent) => {\n if (props.direction === 'down') {\n navigateNextItem(event);\n } else {\n navigatePrevItem(event);\n }\n };\n\n const onArrowLeft = (event: React.KeyboardEvent) => {\n const leftValidDirections = ['left', 'up-right', 'down-left'];\n const rightValidDirections = ['right', 'up-left', 'down-right'];\n\n if (leftValidDirections.includes(props.direction as string)) {\n navigateNextItem(event);\n } else if (rightValidDirections.includes(props.direction as string)) {\n navigatePrevItem(event);\n } else {\n navigatePrevItem(event);\n }\n };\n\n const onArrowRight = (event: React.KeyboardEvent) => {\n const leftValidDirections = ['left', 'up-right', 'down-left'];\n const rightValidDirections = ['right', 'up-left', 'down-right'];\n\n if (leftValidDirections.includes(props.direction as string)) {\n navigatePrevItem(event);\n } else if (rightValidDirections.includes(props.direction as string)) {\n navigateNextItem(event);\n } else {\n navigateNextItem(event);\n }\n };\n\n const onEndKey = (event: React.KeyboardEvent) => {\n event.preventDefault();\n\n setFocusedOptionIndex(-1);\n navigatePrevItem(event);\n };\n\n const onHomeKey = (event: React.KeyboardEvent) => {\n event.preventDefault();\n\n setFocusedOptionIndex(-1);\n navigateNextItem(event);\n };\n\n const navigateNextItem = (event: React.KeyboardEvent) => {\n const optionIndex = findNextOptionIndex(focusedOptionIndex);\n\n changeFocusedOptionIndex(optionIndex);\n\n event.preventDefault();\n };\n\n const navigatePrevItem = (event: React.KeyboardEvent) => {\n const optionIndex = findPrevOptionIndex(focusedOptionIndex);\n\n changeFocusedOptionIndex(optionIndex);\n\n event.preventDefault();\n };\n\n const changeFocusedOptionIndex = (index: number) => {\n const items = find(elementRef.current as HTMLDivElement, '[data-pc-name=\"speeddialitem\"]');\n const filteredItems = [...items].filter((item) => {\n const element = findSingle(item, 'a');\n\n return element ? !hasClass(element, 'p-disabled') : true;\n });\n\n if (filteredItems[index]) {\n const idAttr = filteredItems[index].getAttribute('id') ?? -1;\n\n setFocusedOptionIndex(idAttr);\n\n const buttonEl = findSingle(filteredItems[index], '[type=\"button\"]') as HTMLButtonElement;\n\n if (buttonEl) {\n focus(buttonEl);\n }\n }\n };\n\n const findPrevOptionIndex = (index: string | number) => {\n const items = find(elementRef.current as HTMLDivElement, '[data-pc-name=\"speeddialitem\"]');\n const filteredItems = [...items].filter((item) => {\n const element = findSingle(item, 'a');\n\n return element ? !hasClass(element, 'p-disabled') : true;\n });\n const newIndex = index === -1 ? filteredItems[filteredItems.length - 1].id : index;\n let matchedOptionIndex = filteredItems.findIndex((link) => link.getAttribute('id') === newIndex);\n\n matchedOptionIndex = index === -1 ? filteredItems.length - 1 : matchedOptionIndex - 1;\n\n return matchedOptionIndex;\n };\n\n const findNextOptionIndex = (index: string | number) => {\n const items = find(elementRef.current as HTMLDivElement, '[data-pc-name=\"speeddialitem\"]');\n const filteredItems = [...items].filter((item) => {\n const element = findSingle(item, 'a');\n\n return element ? !hasClass(element, 'p-disabled') : true;\n });\n\n const newIndex = index === -1 ? filteredItems[0].id : index;\n\n let matchedOptionIndex = filteredItems.findIndex((link) => link.getAttribute('id') === newIndex);\n\n matchedOptionIndex = index === -1 ? 0 : matchedOptionIndex + 1;\n\n return matchedOptionIndex;\n };\n\n const getItemStyle = (index: number) => {\n const transitionDelay = calculateTransitionDelay(index);\n const pointStyle = calculatePointStyle(index);\n\n return {\n transitionDelay: `${transitionDelay}ms`,\n ...pointStyle\n };\n };\n\n return {\n state,\n //refs\n listRef,\n // methods\n registerItem,\n getItemStyle,\n onBlur,\n onKeyDown,\n onClick,\n onTogglerKeydown,\n onItemClick,\n onItemKeyDown\n };\n }\n});\n","import type { useSpeedDialProps } from '@primereact/types/shared/speeddial';\n\nexport const defaultProps: useSpeedDialProps = {\n visible: false,\n defaultVisible: false,\n direction: 'up',\n transitionDelay: 30,\n type: 'linear',\n radius: 0,\n hideOnClickOutside: true,\n onVisibleChange: undefined\n};\n"],"mappings":"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","names":["withHeadless","useEventListener","useMountEffect","useUnmountEffect","useUpdateEffect","$dt","find","findSingle","focus","hasClass","React","defaultProps","useSpeedDial","withHeadless","defaultProps","props","elementRef","_a","_b","listRef","visibleState","setVisibleState","focusedOptionIndex","setFocusedOptionIndex","isItemClicked","itemCounter","Math_PI","state","registerItem","index","useMountEffect","button","findSingle","firstItem","wDiff","hDiff","$dt","useUpdateEffect","bindDocumentClickListener","unbindDocumentClickListener","useUnmountEffect","useEventListener","event","isOutsideClicked","hide","onBlur","onItemClick","onItemKeyDown","onClick","show","calculateTransitionDelay","length","calculatePointStyle","type","radius","step","direction","x","y","onTogglerKeydown","onTogglerArrowDown","onTogglerArrowUp","onEscapeKey","onKeyDown","onArrowDown","onArrowUp","onArrowLeft","onArrowRight","onEnterKey","onHomeKey","onEndKey","navigatePrevItem","navigateNextItem","buttonEl","focus","leftValidDirections","rightValidDirections","optionIndex","findNextOptionIndex","changeFocusedOptionIndex","findPrevOptionIndex","filteredItems","find","item","element","hasClass","idAttr","newIndex","matchedOptionIndex","link","transitionDelay","pointStyle","__spreadValues"]}
|
|
@@ -41,5 +41,6 @@ export declare const useSpeedDial: (inProps?: unknown) => import("@primereact/ty
|
|
|
41
41
|
onKeyDown: (event: React.KeyboardEvent) => void;
|
|
42
42
|
onClick: () => void;
|
|
43
43
|
onTogglerKeydown: (event: React.KeyboardEvent) => void;
|
|
44
|
-
onItemClick: (event: React.MouseEvent) => void;
|
|
44
|
+
onItemClick: (event: React.MouseEvent | React.KeyboardEvent) => void;
|
|
45
|
+
onItemKeyDown: (event: React.KeyboardEvent) => void;
|
|
45
46
|
}>;
|