1!function(){try{var e="u">typeof window?window:"u">typeof global?global:"u">typeof globalThis?globalThis:"u">typeof self?self:{};e._sentryModuleMetadata=e._sentryModuleMetadata||{},e._sentryModuleMetadata[(new e.Error).stack]=function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];if(null!=n)for(var a in n)n.hasOwnProperty(a)&&(e[a]=n[a])}return e}({},e._sentryModuleMetadata[(new e.Error).stack],{"_sentryBundlerPluginAppKey:sl8-app":!0})}catch(e){}}();"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5076],{38859:(e,t,n)=>{n.d(t,{A7:()=>l,k7:()=>a});let a={MIN_ZOOM:.1,MAX_ZOOM:5,ZOOM_STEP:.1,GRID_SIZE:20,SELECTION_COLOR:"#0096FF",SELECTION_STROKE_WIDTH:2,TRANSFORM_ANCHOR_SIZE:8,VIEWPORT_CULLING_MARGIN:100},l={UNDO:["cmd+z","ctrl+z"],REDO:["cmd+shift+z","ctrl+shift+z","cmd+y","ctrl+y"],SELECT_ALL:["cmd+a","ctrl+a"],DUPLICATE:["cmd+d","ctrl+d"],DELETE:["delete","backspace"],BRING_FORWARD:["]"],SEND_BACKWARD:["["],BRING_TO_FRONT:["cmd+]","ctrl+]"],SEND_TO_BACK:["cmd+[","ctrl+["],ZOOM_IN:["+","="],ZOOM_OUT:["-"],ZOOM_RESET:["0"]}},67079:(e,t,n)=>{function a(e){return{left:e.position.x,top:e.position.y,right:e.position.x+e.size.width*e.scale.x,bottom:e.position.y+e.size.height*e.scale.y}}function l(e,t){return!(e.right<t.left||e.left>t.right||e.bottom<t.top||e.top>t.bottom)}n.d(t,{PF:()=>a,fh:()=>l}),n(41435)},92695:(e,t,n)=>{n.r(t),n.d(t,{ViewerCanvas:()=>c});var a=n(68987),l=n(2315),o=n(86020),r=n(71519);n(67079),n(41435),n(91898);var s=n(38859);let i=(0,o.default)(()=>Promise.all([n.e(8413),n.e(4380),n.e(8650)]).then(n.bind(n,88650)).then(e=>({default:e.ViewerStage})),{loadableGenerated:{webpack:()=>[88650]},ssr:!1});function c({initialData:e,onExport:t,className:n,settings:o,onDataChange:d,viewport:u,onViewportChange:f,selectedIds:p,onSelectionChange:h}){var v;let E,[O,w]=(0,l.useState)(()=>e?.images||[]),[m,_]=(0,l.useState)(()=>e?.videos||[]),[A,b]=(0,l.useState)([]),[T,g]=(0,l.useState)(()=>e?.canvas?.viewport||{x:0,y:0,scale:1}),D=p??A,R=h??b,C=u??T,y=f??g,[N,S]=(0,l.useState)({width:800,height:600}),[k,I]=(0,l.useState)(!1),[M,z]=(0,l.useState)({startX:0,startY:0,endX:0,endY:0,visible:!1}),L=(0,l.useRef)(null),B=(0,l.useRef)(null);(0,l.useEffect)(()=>{e&&(w(e.images||[]),_(e.videos||[]),e.canvas?.viewport&&!u&&g(e.canvas.viewport))},[e,u]),(0,l.useEffect)(()=>{let e=()=>{L.current&&(S({width:L.current.offsetWidth,height:L.current.offsetHeight}),B.current&&B.current.batchDraw())};e();let t=new ResizeObserver(()=>{e()});return L.current&&t.observe(L.current),window.addEventListener("resize",e),()=>{t.disconnect(),window.removeEventListener("resize",e)}},[]);let F=(0,l.useCallback)(e=>{R(e)},[R]),x=(0,l.useCallback)((e,t)=>{let n=O.map(n=>n.id===e?{...n,position:t.position||n.position,size:t.size||n.size,rotation:void 0!==t.rotation?t.rotation:n.rotation}:n);w(n),d&&d(n,m)},[O,m,d]);(0,l.useCallback)(()=>{if(0===D.length)return;let e=O.filter(e=>!D.includes(e.id)),t=m.filter(e=>!D.includes(e.id));w(e),_(t),R([]),d&&d(e,t)},[D,O,m,R,d]);let K=(0,l.useCallback)(()=>{R([...O.map(e=>e.id),...m.map(e=>e.id)])},[O,m,R]);return(0,l.useCallback)(()=>{if(0===D.length)return;let e=O.filter(e=>D.includes(e.id)).map(e=>({...e,id:`${e.id}_copy_${Date.now()}`,position:{x:e.position.x+20,y:e.position.y+20}})),t=[...O,...e];w(t),R(e.map(e=>e.id)),d&&d(t,m)},[D,O,m,R,d]),v={selectAll:K,zoomIn:(0,l.useCallback)(()=>{let e=Math.min(1.1*C.scale,5);y({...C,scale:e})},[C,y]),zoomOut:(0,l.useCallback)(()=>{let e=Math.max(C.scale/1.1,.1);y({...C,scale:e})},[C,y]),zoomReset:(0,l.useCallback)(()=>{y({...C,scale:1})},[C,y])},E=(0,l.useCallback)(e=>{let t,n,a=e.target;if("INPUT"===a.tagName||"TEXTAREA"===a.tagName||"true"===a.contentEditable)return;let l=(t=[],e.metaKey&&t.push("cmd"),e.ctrlKey&&!e.metaKey&&t.push("ctrl"),e.shiftKey&&t.push("shift"),e.altKey&&t.push("alt"),"shift"!==(n=e.key.toLowerCase())&&"control"!==n&&"alt"!==n&&"meta"!==n&&t.push(n),t.join("+"));s.A7.UNDO.includes(l)&&v.undo?(e.preventDefault(),v.undo()):s.A7.REDO.includes(l)&&v.redo?(e.preventDefault(),v.redo()):s.A7.SELECT_ALL.includes(l)&&v.selectAll?(e.preventDefault(),v.selectAll()):s.A7.DUPLICATE.includes(l)&&v.duplicate?(e.preventDefault(),v.duplicate()):s.A7.DELETE.includes(l)&&v.delete?(e.preventDefault(),v.delete()):s.A7.BRING_FORWARD.includes(l)&&v.bringForward?(e.preventDefault(),v.bringForward()):s.A7.SEND_BACKWARD.includes(l)&&v.sendBackward?(e.preventDefault(),v.sendBackward()):s.A7.BRING_TO_FRONT.includes(l)&&v.bringToFront?(e.preventDefault(),v.bringToFront()):s.A7.SEND_TO_BACK.includes(l)&&v.sendToBack?(e.preventDefault(),v.sendToBack()):s.A7.ZOOM_IN.includes(l)&&v.zoomIn?(e.preventDefault(),v.zoomIn()):s.A7.ZOOM_OUT.includes(l)&&v.zoomOut?(e.preventDefault(),v.zoomOut()):s.A7.ZOOM_RESET.includes(l)&&v.zoomReset&&(e.preventDefault(),v.zoomReset())},[v]),(0,l.useEffect)(()=>(window.addEventListener("keydown",E),()=>window.removeEventListener("keydown",E)),[E]),(0,a.jsx)("div",{ref:L,className:(0,r.cn)("relative w-full h-full bg-background overflow-hidden",n),children:(0,a.jsx)(i,{ref:B,canvasSize:N,images:O,videos:m,selectedIds:D,viewport:C,onSelect:F,onTransform:x,onViewportChange:y,selectionBox:M,onSelectionBoxChange:z,showGrid:o.showGrid,theme:o.theme})})}}}]);
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.