1import{ClayButtonWithIcon as A}from"../../frontend-js-clay-web/__liferay__/exports/@clayui$button.js";import R from"../../frontend-js-clay-web/__liferay__/exports/@clayui$button.js";var u=R;import{ClayIconSpriteContext as Y}from"../../frontend-js-clay-web/__liferay__/exports/@clayui$icon.js";import z from"../../frontend-js-clay-web/__liferay__/exports/@clayui$icon.js";var b=z;import{debounce as B}from"../../frontend-js-web/__liferay__/index.js";import{Children as Q,Component as X,Fragment as ee,Profiler as te,PureComponent as ne,StrictMode as ae,Suspense as re,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED as ie,cloneElement as oe,createContext as le,createElement as se,createFactory as ue,createRef as me,forwardRef as ce,isValidElement as ge,lazy as fe,memo as de,startTransition as pe,unstable_act as be,useCallback as ye,useContext as Le,useDebugValue as he,useDeferredValue as Ee,useEffect as _e,useId as Ce,useImperativeHandle as ve,useInsertionEffect as Ie,useLayoutEffect as y,useMemo as we,useReducer as xe,useRef as L,useState as o,useSyncExternalStore as Se,useTransition as Te,version as Ne}from"../../frontend-js-react-web/__liferay__/exports/react.js";import P from"../../frontend-js-react-web/__liferay__/exports/react.js";var n=P;import"../../document-library-preview-css/__liferay__/index.js";await import(`@liferay/language/${Liferay.ThemeDisplay.getLanguageId()}/document-library-preview-image/all.js`);var V=3,h=[.1,.2,.3,.4,.5,.6,.7,.8,.9,1],I=h.slice().reverse(),Me=({alt:w,imageURL:x})=>{let[a,S]=o(1),[r,E]=o(null),[i,_]=o(null),[c,T]=o(null),[N,O]=o(!0),[H,W]=o(!1),[l,C]=o(null),s=L(null),v=L(null),m=e=>{S(e),O(I[0]===e),W(h[0]>=e)},g=e=>{let t=s.current;t&&(E(t.naturalHeight*e),_(t.naturalWidth*e),C(e/a),m(e))},f=()=>{let e=s.current;return e?e.width/e.naturalWidth:1},Z=()=>{let e={};return r&&i&&(e.height=r,e.maxHeight=r,e.maxWidth=i,e.width=i),c&&(e.margin=c),e},D=()=>{m(f())},M=()=>{a===1?(E(null),_(null)):g(1)};return y(()=>{let e=v.current,t=s.current;if(!(!e||!t)){if(T(`${r&&r>e.clientHeight?0:"auto"} ${i&&i>e.clientWidth?0:"auto"}`),l&&(e.clientWidth<t.naturalWidth||e.clientHeight<t.naturalHeight)){let d,p;l<V?(d=e.clientWidth*(l-1)/2+e.scrollLeft*l,p=e.clientHeight*(l-1)/2+e.scrollTop*l):(p=(r-e.clientHeight)/2,d=(i-e.clientWidth)/2),e.scrollLeft=d,e.scrollTop=p,C(null)}t.style.width||m(f())}},[r,i,l,c]),y(()=>{let e=B(()=>{s.current&&!s.current.style.width&&m(f())},250);return window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[a,r,i]),n.createElement("div",{className:"preview-file"},n.createElement("div",{className:"preview-file-container preview-file-max-height",ref:v},n.createElement("img",{alt:w,className:"preview-file-image",onLoad:D,ref:s,src:x,style:Z()})),n.createElement("div",{className:"preview-toolbar-container"},n.createElement(u.Group,{className:"floating-bar"},n.createElement(u,{"aria-label":Liferay.Language.get("zoom-out"),className:"btn-floating-bar",disabled:H,displayType:null,monospaced:!0,onClick:()=>{let e=I.find(t=>t<a);e&&g(e)},title:Liferay.Language.get("zoom-out")},n.createElement(b,{symbol:"hr"})),n.createElement(u,{"aria-label":a===1?Liferay.Language.get("zoom-to-fit"):Liferay.Language.get("real-size"),className:"btn-floating-bar btn-floating-bar-text",displayType:null,onClick:M,title:a===1?Liferay.Language.get("zoom-to-fit"):Liferay.Language.get("real-size")},n.createElement("span",{className:"preview-toolbar-label-percent"},Math.round((a||0)*100),"%")),n.createElement(u,{"aria-label":Liferay.Language.get("zoom-in"),className:"btn-floating-bar",disabled:N,displayType:null,monospaced:!0,onClick:()=>{let e=h.find(t=>t>a);e&&g(e)},title:Liferay.Language.get("zoom-in")},n.createElement(b,{symbol:"plus"})))))};export{Me as ImagePreviewer}; 2//# sourceMappingURL=index.(4OTE2KD4).js.map
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.