PageSourceSearch

https://www.diy.org/_next/static/chunks/3505-c86bec475a57525d.js

js diy.org collected 2026-10-01 10:35:02 UTC 30,719 bytes, 2 lines download raw bytes

1!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._posthogChunkIds=e._posthogChunkIds||{},e._posthogChunkIds[n]="01a09f3b-a474-7891-a846-c1e4258faec2")}catch(e){}}();"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3505],{40602:(e,t,r)=>{r.d(t,{DX:()=>c,HZ:()=>y,KS:()=>h,Mk:()=>n,QB:()=>i,SS:()=>f,ZK:()=>a,hr:()=>k,iK:()=>p,tB:()=>m,vV:()=>g,ww:()=>v});var l=r(66692);let a=256,n="__diyRasterMaybeNonEmpty",i=e=>{let t=atob(e),r=new Uint8ClampedArray(t.length);for(let e=0;e<t.length;e++)r[e]=t.charCodeAt(e);return r},u=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0x811c9dc5,r=t;for(let t=0;t<e.length;t+=1)r^=e[t],r=Math.imul(r,0x1000193);return r>>>0},s=e=>{for(let t=3;t<e.length;t+=4)if(0!==e[t])return!1;return!0},o=e=>{if(e instanceof Uint8ClampedArray)return e;if(e instanceof Uint8Array||Array.isArray(e))return new Uint8ClampedArray(e);if(e&&"object"==typeof e){let t=Object.keys(e);if(0===t.length)return new Uint8ClampedArray;let r=t.length,l=new Uint8ClampedArray(r);for(let t=0;t<r;t++)l[t]=e[t];return l}return null},d=(e,t)=>{if(!e.data)return null;if("base64"===e.encoding){if("string"==typeof e.data)return i(e.data);let t=o(e.data);if(t)return t}else if("raw"===e.encoding){let t=o(e.data);if(t)return t;if("string"==typeof e.data)return i(e.data)}else{if("string"==typeof e.data)return i(e.data);let t=o(e.data);if(t)return t}return null},c=e=>"stroke"===e.type?{...e,points:e.points.map(e=>({...e}))}:{...e},h=e=>e.map(e=>({...e,elements:e.elements.map(e=>c(e))})),f=e=>e.map(e=>({...e})),g=(e,t)=>{let{canvas:r}=e;if(!r)return null;let a=r.getContext("2d",{willReadFrequently:!0});if(!a)return null;let i=(0,l.oC)(e.tileSize),o=null==t?void 0:t.tilesToCapture;if((!o||0===o.length)&&!1===r[n])return{width:r.width,height:r.height,dpr:e.dpr,layerId:e.layerId,worldRect:e.worldRect,tileSize:i,tiles:[],checksum:0};let d=[],c=0,h=(e,t)=>{let l=Math.min(i,r.width-e),n=Math.min(i,r.height-t);if(l<=0||n<=0)return;let o=a.getImageData(e,t,l,n);s(o.data)||(c=u(o.data,c||void 0),d.push({x:e,y:t,width:l,height:n,data:new Uint8ClampedArray(o.data),encoding:"raw"}))};try{if(o&&o.length>0){let{tileCountX:e,tileCountY:t}=(0,l.pN)(r.width,r.height,i),a=(0,l.dn)(o);(0,l.nb)(a,e,t).forEach(e=>{h(e.x*i,e.y*i)})}else for(let e=0;e<r.height;e+=i)for(let t=0;t<r.width;t+=i)h(t,e);return{width:r.width,height:r.height,dpr:e.dpr,layerId:e.layerId,worldRect:e.worldRect,tileSize:i,tiles:d,checksum:c}}catch(e){return null}},p=e=>{let{canvas:t,dpr:r,panelId:l,webtoonId:n,localWidth:i,localHeight:o}=e;if(!t||0===t.width||0===t.height)return null;let d=t.getContext("2d",{willReadFrequently:!0});if(!d)return null;let c=[],h=0;try{for(let e=0;e<t.height;e+=a)for(let r=0;r<t.width;r+=a){let l=Math.min(a,t.width-r),n=Math.min(a,t.height-e);if(l<=0||n<=0)continue;let i=d.getImageData(r,e,l,n);s(i.data)||(h=u(i.data,h||void 0),c.push({x:r,y:e,width:l,height:n,data:new Uint8ClampedArray(i.data),encoding:"raw"}))}if(0===c.length)return null;return{panelId:l,webtoonId:n,localWidth:i,localHeight:o,width:t.width,height:t.height,dpr:r,tiles:c,checksum:h}}catch(e){return null}},m=(e,t)=>{if(!e.tiles||0===e.tiles.length)return!1;t.width=e.width,t.height=e.height;let r=t.getContext("2d",{willReadFrequently:!0});if(!r)return!1;for(let l of(r.clearRect(0,0,t.width,t.height),e.tiles)){let e=o(l.data);if(e&&0!==e.length)try{let t=new Uint8ClampedArray(e),a=new ImageData(t,l.width,l.height);r.putImageData(a,l.x,l.y)}catch(e){}}return!0},v=(e,t,r)=>{let l=(null==r?void 0:r.targetDpr)??e.dpr??1,a=(null==r?void 0:r.targetCssWidth)??((null==r?void 0:r.resize)===!1?t.width/l:e.width/(e.dpr||1)),n=(null==r?void 0:r.targetCssHeight)??((null==r?void 0:r.resize)===!1?t.height/l:e.height/(e.dpr||1)),i=Math.max(1,Math.round(a*l)),u=Math.max(1,Math.round(n*l));(null==r?void 0:r.resize)!==!1&&(t.width=i,t.height=u);let s=t.getContext("2d",{willReadFrequently:!0})??t.getContext("2d");if(!s)return;if(!e.imageData&&(!e.tiles||0===e.tiles.length)){s.setTransform(l,0,0,l,0,0),s.clearRect(0,0,a,n);return}let o=document.createElement("canvas");((e,t)=>
1{t.width=e.width,t.height=e.height;let r=t.getContext("2d");if(r){if(e.imageData)return r.putImageData(e.imageData,0,0);if(r.clearRect(0,0,e.width,e.height),e.tiles&&0!==e.tiles.length)for(let t=0;t<e.tiles.length;t++){let l=e.tiles[t],a=d(l,t);if(!a||0===a.length)continue;let n=l.width*l.height*4;if(a.length===n||0!==a.length)try{let e=new Uint8ClampedArray(a),t=new ImageData(e,l.width,l.height);r.putImageData(t,l.x,l.y)}catch(e){}}}})(e,o);let c=o.width!==i||o.height!==u;s.setTransform(1,0,0,1,0,0),s.clearRect(0,0,i,u),s.imageSmoothingEnabled=c,c&&(s.imageSmoothingQuality=(null==r?void 0:r.imageSmoothingQuality)??"high"),s.drawImage(o,0,0,o.width,o.height,0,0,i,u),s.setTransform(l,0,0,l,0,0)},k=e=>({layers:e.layers,activeLayerId:e.activeLayerId,paintBuffer:e.paintBuffer,rasterBackings:e.rasterBackings,panelRasterBackings:e.panelRasterBackings,backgroundImages:e.backgroundImages}),y=function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:50;return{past:e.past.length>=r?[...e.past.slice(1),t]:[...e.past,t],future:[]}}},59740:(e,t,r)=>{r.d(t,{Ul:()=>d,Yt:()=>i,zz:()=>o});let l={pencil:!0,smudge:!0,eraser:!0,fill:!0},a={text:!0,line:!0,triangle:!0,image:!0},n={cursor:!0,hand:!0},i=e=>l[e]?"raster":a[e]?"vector":n[e]?"neutral":null,u=(e,t)=>{if(!t)return{ok:!1,reason:"no-layer"};let r=i(e);return"neutral"===r?{ok:!0}:"raster"===r&&"raster"!==t.kind||"vector"===r&&"vector"!==t.kind?{ok:!1,reason:"kind-mismatch"}:t.locked?{ok:!1,reason:"locked"}:t.visible?{ok:!0}:{ok:!1,reason:"hidden"}},s=(e,t,r)=>e.find(e=>e.kind===t&&((null==r?void 0:r.allowLocked)||!e.locked)&&((null==r?void 0:r.allowHidden)||e.visible))??null,o=(e,t,r)=>{let l=i(r);if("neutral"===l)return{layer:null,reason:"tool-neutral"};if(!l)return{layer:null,reason:"no-match"};let a=t&&e.find(e=>e.id===t&&e.kind===l);if(a){let e=u(r,a);return e.ok?{layer:a}:{layer:null,reason:e.reason}}let n=s(e,l);if(n){let e=u(r,n);return e.ok?{layer:n}:{layer:null,reason:e.reason}}return{layer:null,reason:"no-layer"}},d=(e,t)=>{let r=t&&e.find(e=>e.id===t&&"raster"===e.kind&&!e.locked&&e.visible);if(r)return r.id;let l=s(e,"raster");return(null==l?void 0:l.id)??null}},66692:(e,t,r)=>{r.d(t,{QH:()=>d,dn:()=>u,mM:()=>i,nH:()=>c,nb:()=>s,oC:()=>a,pN:()=>n,v5:()=>o});var l=r(40602);let a=e=>e&&e>0?e:l.ZK,n=(e,t,r)=>{let l=a(r);return{tileCountX:Math.max(0,Math.ceil(e/l)),tileCountY:Math.max(0,Math.ceil(t/l))}},i=e=>`${e.x}:${e.y}`,u=e=>{let t=new Set,r=[];return e.forEach(e=>{let l=i(e);t.has(l)||(t.add(l),r.push(e))}),r},s=(e,t,r)=>e.filter(e=>e.x>=0&&e.y>=0&&e.x<t&&e.y<r),o=(e,t,r)=>{let{tileCountX:l,tileCountY:a}=n(e,t,r);return l*a},d=function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:.35;return t<=0||e<=0||e/t>=r},c=(e,t)=>{let r=((e,t)=>{let r=(e=>{if(!e)return null;let{left:t,top:r,width:l,height:a}=e;return Number.isFinite(t)&&Number.isFinite(r)&&Number.isFinite(l)&&Number.isFinite(a)?(l<0&&(t+=l,l=Math.abs(l)),a<0&&(r+=a,a=Math.abs(a)),l<=0||a<=0)?null:{left:t,top:r,width:l,height:a}:null})(e);if(!r)return null;let l=t.worldRect??null,i=t.dpr;if(!l||!Number.isFinite(i)||i<=0)return null;let u=(e=>{let t=e.worldRect??null,r=e.dpr;return!Number.isFinite(r)||r<=0?null:Number.isFinite(e.pixelWidth)&&Number.isFinite(e.pixelHeight)?{width:Math.max(0,Math.floor(e.pixelWidth??0)),height:Math.max(0,Math.floor(e.pixelHeight??0))}:t?{width:Math.max(0,Math.round(t.width*r)),height:Math.max(0,Math.round(t.height*r))}:null})(t);if(!u)return null;let s=a(t.tileSize),{tileCountX:o,tileCountY:d}=n(u.width,u.height,s);if(0===o||0===d)return null;let c=(r.left-l.left)*i,h=(r.top-l.top)*i,f=c+r.width*i,g=h+r.height*i,p=Math.max(0,Math.min(c,u.width)),m=Math.max(0,Math.min(h,u.height)),v=Math.max(0,Math.min(f,u.width)),k=Math.max(0,Math.min(g,u.height));if(v<=p||k<=m)return null;let y=Math.max(0,Math.floor(p/s)),b=Math.max(0,Math.floor(m/s)),w=Math.min(o-1,Math.floor((v-1)/s)),C=Math.min(d-1,Math.floor((k-1)/s));return w<y||C<b?null:{minX:y,maxX:w,minY:b,maxY:C,tileCountX:o,tileCountY:d}})(e,t);return r?{tiles:(e=>{let t=[];for(let r=e.minY;r<=e.maxY;r+=1)for(let l=e.minX;l<=e.maxX;l+=1)t.push({x:l,y:r});return t})(r),tileCountX:r.tileCountX,tileCountY:r.tileCountY}:null}},71882:(e,t,r)=>{r.d(t,{PT:()=>a});let l={pencil:"soft-round",ink:"ink-pen",marker:"soft-round",texture:"dry-texture",oil:"soft-round",acrylic:"dry-texture","soft-round":"soft-round","ink-pen":"ink-pen","dry-texture":"dry-texture",airbrush:"airbrush",pixel:"pixel"},a=e=>e?l[e]??"soft-round":"soft-round"},93505:(e,t,r)=>{r.d(t,{QN:()=>C,$c:()=>y,dv:()=>S,um:()=>x});var l=r(95155),a=r(12115),n=r(71882),i=r(40602),u=r(54152);let s=(e,t)=>({id:(0,u.Ak)(),name:t,kind:e,visible:!0,opacity:1,locked:!1,elements:[]}),o=(e,t)=>{let r="raster"===e?"Raster":"Layer",l=1,a=t.map(e=>{let t=e.name.match(RegExp(`^${r} (\\d+)$`));return t?parseInt(t[1],10):0}).filter(e=>e>0);return a.length>0&&(l=Math.max(...a)+1),`${r} ${l}`},d=e=>{if(e.some(e=>"raster"===e.kind))return e;let t=s("raster",o("raster",e));return[...e,t]};var c=r(66692);let h=e=>`${e.x}:${e.y}`,f=(e,t)=>{if(!((e,t)=>{if(e.width!==t.width||e.height!==t.height||e.dpr!==t.dpr||(e.tileSize??null)!==(t.tileSize??null)||(e.layerId??null)!==(t.layerId??null))return!1;let r=e.worldRect??null,l=t.worldRect??null;return null===r==(null===l)&&(!r||!l||r.left===l.left&&r.top===l.top&&r.width===l.width&&r.height===l.height)&&!0})(e,t)||!e.tiles||!t.tiles||e.imageData||t.imageData)return null;let r=new Map;for(let t of e.tiles)r.set(h(t),t);for(let e of t.tiles)r.set(h(e),e);return{...e,revision:t.revision??e.revision,checksum:t.checksum??e.checksum,tiles:Array.from(r.values())}},g=e=>{let t=e.layers.map(e=>({id:e.id,name:e.name,kind:e.kind??"vector",visible:e.visible,opacity:e.opacity,locked:e.locked,elements:e.elements.map(e=>(e=>{if("stroke"===e.type){let t=e.points[0],r=e.points[e.points.length-1];return["stroke",e.id,e.revision??0,e.points.length,(null==t?void 0:t.x)??"",(null==t?void 0:t.y)??"",(null==r?void 0:r.x)??"",(null==r?void 0:r.y
1)??"",e.size??"",e.color??""].join(":")}return[e.type,e.id??"",e.x??"",e.y??"",e.width??"",e.height??"",e.rotation??""].join(":")})(e))}));return JSON.stringify({activeLayerId:e.activeLayerId,layers:t,paintBuffer:(e=>{var t;return e?["pb",e.layerId??"",`${e.width}x${e.height}`,e.dpr??"",(null==(t=e.tiles)?void 0:t.length)??+!!e.imageData,e.checksum??"",e.revision??""].join(":"):"none"})(e.paintBuffer),raster:(e=>e?Object.entries(e).sort((e,t)=>{let[r]=e,[l]=t;return r.localeCompare(l)}).map(e=>{var t;let[r,l]=e;return l?[r,`${l.width}x${l.height}`,l.dpr??"",(null==(t=l.tiles)?void 0:t.length)??+!!l.imageData,l.checksum??"",l.revision??""].join(":"):`${r}:empty`}):[])(e.rasterBackings),bg:(e=>e&&0!==e.length?e.map((e,t)=>[t,e.id??"",e.src??"",e.x??"",e.y??"",e.width??"",e.height??"",e.opacity??"",e.rotation??"",e.role??""].join(":")):[])(e.backgroundImages),rasterRevision:e.rasterRevision??0})},p=e=>e&&Object.values(e).filter(Boolean).reduce((e,t)=>e+((null==t?void 0:t.revision)||0),0)||0,m=e=>{let{layers:t,activeLayerId:r,requestedLayerId:l}=e;if(l)return{targetLayerId:l,layerToInsert:null};let a=t.find(e=>e.id===r&&"vector"===e.kind&&e.visible&&!e.locked);if(a)return{targetLayerId:a.id,layerToInsert:null};let n=t.find(e=>"vector"===e.kind&&e.visible&&!e.locked);if(n)return{targetLayerId:n.id,layerToInsert:null};let i=s("vector",o("vector",t));return{targetLayerId:i.id,layerToInsert:i}};var v=r(59740);let k=(e,t)=>{},y={a5:{width:420,height:595,label:"A5"},a4:{width:595,height:842,label:"A4"},a3:{width:842,height:1190,label:"A3"}},b=(0,a.createContext)(null),w=(0,a.createContext)(null),C=e=>{let{children:t}=e,r=(0,a.useRef)(s("raster","Raster 1")),h=(0,a.useRef)(s("vector","Layer 1")),[C,S]=(0,a.useState)("pencil"),[x,I]=(0,a.useState)("#1b1b1f"),[M,B]=(0,a.useState)("#1b1b1f"),[R,L]=(0,a.useState)("var(--color-primary-white)"),[A,T]=(0,a.useState)({enabled:!0,orientation:"landscape",sizePreset:"a4",width:y.a4.height,height:y.a4.width}),[D,E]=(0,a.useState)("none"),[N,j]=(0,a.useState)(null),[z,F]=(0,a.useState)([h.current,r.current]),[$,O]=(0,a.useState)(r.current.id),[H,P]=(0,a.useState)(()=>({x:window.innerWidth?window.innerWidth/2:0,y:window.innerHeight?window.innerHeight/2:0})),[U,K]=(0,a.useState)(1),[W,X]=(0,a.useState)({size:2,opacity:1,softness:.4,style:"ink-pen"}),[Y,Q]=(0,a.useState)({size:28}),[_,q]=(0,a.useState)({strokeSize:4,strokeOpacity:1}),[Z,V]=(0,a.useState)({shape:"circle",fillEnabled:!1,strokeSize:4,strokeOpacity:1,fillOpacity:1,fillColor:null,borderRadius:0}),[G,J]=(0,a.useState)({fontSize:32,fontFamily:"Inter",isBold:!1,opacity:1,isMoveMode:!1,textAlign:"left",backgroundMode:"normal"}),[ee,et]=(0,a.useState)({size:18,strength:.7,alphaLock:!1}),[er,el]=(0,a.useState)(()=>Array.from({length:12},()=>null)),[ea,en]=(0,a.useState)(null),[ei,eu]=(0,a.useState)({past:[],future:[]}),[es,eo]=(0,a.useState)({src:null,visible:!1,opacity:.4}),[ed,ec]=(0,a.useState)(!0),[eh,ef]=(0,a.useState)(!0),[eg,ep]=(0,a.useState)(!1),[em,ev]=(0,a.useState)([]),[ek,ey]=(0,a.useState)([]),{paintBufferMetaRevision:eb,bumpPaintBufferRevision:ew,getPaintBufferRevision:eC,subscribePaintBufferRevision:eS,paintBufferRef:ex,setPaintBuffer:eI,paintBufferRestore:eM,setPaintBufferRestore:eB,rasterBackingsRestore:eR,setRasterBackingsRestore:eL,panelRasterSnapshotsRestore:eA,setPanelRasterSnapshotsRestore:eT,hydrateRasterStateFromRestore:eD,registerRasterSnapshotGetter:eE,getRasterSnapshot:eN,registerPanelRasterSnapshotGetter:ej,getPanelRasterSnapshot:ez,registerPanelRasterBackingsGetter:eF,getPanelRasterBackings:e$}=(e=>{let{initialRasterLayerId:t}=e,[r,l]=(0,a.useState)(0),[n,i]=(0,a.useState)(null),[u,s]=(0,a.useState)(null),[o,d]=(0,a.useState)(null),c=(0,a.useRef)({canvas:null,dpr:1,layerId:t,worldRect:void 0}),h=(0,a.useRef)(null),f=(0,a.useRef)(null),g=(0,a.useRef)(null),p=(0,a.useRef)(0),m=(0,a.useRef)(new Set),v=(0,a.useCallback)(()=>{p.current+=1,m.current.forEach(e=>{e()})},[]),k=(0,a.useCallback)(()=>p.current,[]),y=(0,a.useCallback)(e=>(m.current.add(e),()=>{m.current.delete(e)}),[]),b=(0,a.useCallback)(e=>{let t=c.current,r={canvas:e.canvas,dpr:e.dpr??t.dpr,layerId:"layerId"in e?e.layerId:t.layerId,worldRect:"worldRect"in e?e.worldRect:t.worldRect};(t.canvas!==r.canvas||t.dpr!==r.dpr||t.layerId!==r.layerId||t.worldRect!==r.worldRect)&&(c.current=r,l(e=>e+1),v())},[v]),w=(0,a.useCallback)(e=>{void 0!==e.rasterBackings&&s(e.rasterBackings??null),void 0!==e.paintBuffer&&i(e.paintBuffer??null),void 0!==e.panelRasterSnapshots&&d(e.panelRasterSnapshots??null)},[]),C=(0,a.useCallback)(e=>{h.current=e},[]),S=(0,a.useCallback)(e=>{var t;return(null==(t=h.current)?void 0:t.call(h,e))??null},[]),x=(0,a.useCallback)(e=>{f.current=e},[]),I=(0,a.useCallback)(()=>{var e;return(null==(e=f.current)?void 0:e.call(f))??null},[]);return{paintBufferRevision:r,paintBufferMetaRevision:r,bumpPaintBufferRevision:v,getPaintBufferRevision:k,subscribePaintBufferRevision:y,paintBufferRef:c,setPaintBuffer:b,paintBufferRestore:n,setPaintBufferRestore:i,rasterBackingsRestore:u,setRasterBackingsRestore:s,panelRasterSnapshotsRestore:o,setPanelRasterSnapshotsRestore:d,hydrateRasterStateFromRestore:w,registerRasterSnapshotGetter:C,getRasterSnapshot:S,registerPanelRasterSnapshotGetter:x,getPanelRasterSnapshot:I,registerPanelRasterBackingsGetter:(0,a.useCallback)(e=>{g.current=e},[]),getPanelRasterBackings:(0,a.useCallback)(()=>{var e;return(null==(e=g.current)?void 0:e.call(g))??null},[])}})({initialRasterLayerId:r.current.id}),eO=(0,a.useRef)(null),eH=(0,a.useRef)(!1),[eP,eU]=(0,a.useState)(0),eK=(0,a.useRef)(null),eW=(0,a.useCallback)(()=>{eH.current=!1,eU(e=>e+1)},[]),eX=(0,a.useCallback)(e=>{X(t=>{let r=void 0!==e.style?(0,n.PT)(e.style):(0,n.PT)(t.style),{style:l,...a}=e;return{...t,...a,style:r}})},[]),eY=(0,a.useCallback)(e=>{Q(t=>({...t,...e}))},[]),eQ=(0,a.useCallback)(e=>{q(t=>({...t,...e}))},[]),e_=(0,a.useCallback)(e=>{V(t=>({...t,...e}))},[]),eq=(0,a.useCallback)(e=>{J(t=>({...t,...e}))},[]),eZ=(0,a.useCallback)(e=>{et(t=>({...t,...e}))},[]);(0,a.useEffect)(()=>{k("viewOffset:state",H)},[H]);let eV=e=>{P(t=>{var r;let l="function"==typeof e?e(t):e;return k("viewOffset:set",{prev:t,next:l,stack:null==(r=Error().stack)?void 0:r.split("\n").slice(0,4).join(" | ")}),l})},eG=(0,a.useCallback)(e=>{eK.current=e},[]),eJ=(0,a.useCallback)(()=>eK.current,[]),e0=(0,a.useCallback)(e=>{T(e),ew()},[ew]),e1=(0,a.useCallback)((e,t)=>{el(r=>{if(r[e]===t)return r;let l=[...r];return l[e]=t,l})},[]),e2=(0,a.useCallback)(e=>{K(Math.min(3,Math.max(.2,Number(e.toFixed(2)))))},[]),e5=(0,a.useCallback)(e=>d(e),[]),e4=(0,a.useCallback)(e=>{eo(t=>t.src===e?t:{...t,src:e})},[]),e8=(0,a.useCallback)(e=>{eo(t=>t.visible===e?t:{...t,visible:e})},[]),e6=(0,a.useCallback)(e=>{eo(t=>t.opacity===e?t:{...t,opacity:e})},[]),e9=(0,a.useCallback)((e,t)=>{var l;if(!e.length){let e=r.current;F([e]),O(e.id),ey((null==t?void 0:t.backgroundImages)??[]),eu({past:[],future:[]}
1),eO.current=null,eW();return}let a=e.map(e=>e.kind?e:{...e,kind:"vector"}),n=e5((0,i.KS)(a));F(n),(null==t?void 0:t.backgroundImages)!==void 0&&ey(t.backgroundImages),eu({past:[],future:[]}),eO.current=null,eW();let u=(null==t?void 0:t.activeLayerId)??(null==(l=n[n.length-1])?void 0:l.id);u&&O(u)},[e5,eW]),{pushHistorySnapshot:e3,captureHistorySnapshot:e7,undo:te,redo:tt}=(e=>{let{layers:t,activeLayerId:r,backgroundImages:l,setLayers:n,setActiveLayerId:u,setBackgroundImages:s,paintBufferRef:o,setPaintBufferRestore:d,setRasterBackingsRestore:h,getRasterSnapshot:m,setHistory:v,lastHistorySignatureRef:k}=e,y=(0,a.useCallback)(e=>(0,i.vV)(o.current,{tilesToCapture:(null==e?void 0:e.tilesToCapture)??void 0}),[o]),b=(0,a.useCallback)(()=>{v(e=>{let a=m(),n=(0,i.hr)({layers:(0,i.KS)(t),activeLayerId:r,paintBuffer:y(),backgroundImages:(0,i.SS)(l),rasterBackings:a??void 0}),u=p(a),s=g({layers:n.layers,activeLayerId:n.activeLayerId,paintBuffer:n.paintBuffer,rasterBackings:a,backgroundImages:l,rasterRevision:u});if(s===k.current)return e;let o=(0,i.HZ)(e,n);return k.current=s,o})},[r,l,y,m,t,k,v]),w=(0,a.useCallback)(e=>{v(a=>{var n,u;let s,d=a.past.length>0?a.past[a.past.length-1]:null,h=(null==e?void 0:e.dirtyTilesByLayer)??null,v=(null==e?void 0:e.rasterBackings)??m(h)??void 0,b=v&&Object.fromEntries(Object.entries(v).filter(e=>{let[,t]=e;return!!t})),w=b,C=!!(h&&Object.keys(h).length>0),S=h&&Object.entries(h).filter(e=>{let[,t]=e;return!!(null==t?void 0:t.length)}).map(e=>{let[t]=e;return t});if(C){let e={...(null==d?void 0:d.rasterBackings)??{}};if(b)for(let[t,r]of Object.entries(b)){let l=null==h?void 0:h[t];l&&0!==l.length||(e[t]=r)}null==S||S.forEach(t=>{var r,l;let a=null==b?void 0:b[t],n=null==d||null==(r=d.rasterBackings)?void 0:r[t];if(a&&n){let r=f(n,a);if(r){e[t]=r;return}}let i=(null==(l=m({[t]:[]}))?void 0:l[t])??null;if(i){e[t]=i;return}a&&(e[t]=a)}),w=Object.keys(e).length>0?e:void 0}let x=(null==(n=o.current)?void 0:n.layerId)??null,I=x&&h?h[x]??null:null;if(I&&(null==(u=o.current)?void 0:u.canvas)){let e=(0,c.oC)(),t=(0,c.v5)(o.current.canvas.width,o.current.canvas.height,e);(0,c.QH)(I.length,t,.35)&&(I=null)}let M=!!(I&&I.length>0);if((null==e?void 0:e.includePaintBuffer)===!1)s=(null==d?void 0:d.paintBuffer)??y({tilesToCapture:I});else if(M){let e=y({tilesToCapture:I});s=e&&(null==d?void 0:d.paintBuffer)?f(d.paintBuffer,e)??y():!e||(null==d?void 0:d.paintBuffer)?e:y()}else s=y();let B=(0,i.hr)({layers:(0,i.KS)(t),activeLayerId:r,paintBuffer:s,rasterBackings:w,panelRasterBackings:(null==e?void 0:e.panelRasterBackings)??void 0,backgroundImages:(0,i.SS)(l)}),R=p(w),L=g({layers:B.layers,activeLayerId:B.activeLayerId,paintBuffer:B.paintBuffer,rasterBackings:w,backgroundImages:l,rasterRevision:R});if(L===k.current)return a;let A=(0,i.HZ)(a,B);return k.current=L,A})},[r,l,y,m,k,t,o,v]);return{pushHistorySnapshot:b,captureHistorySnapshot:w,undo:(0,a.useCallback)(()=>{v(e=>{if(e.past.length<2)return e;let a=e.past[e.past.length-2];n((0,i.KS)(a.layers)),u(a.activeLayerId),d(a.paintBuffer??null),h(a.rasterBackings??null),a.backgroundImages&&s((0,i.SS)(a.backgroundImages));let o={layers:(0,i.KS)(t),activeLayerId:r,paintBuffer:y(),rasterBackings:m()||void 0,backgroundImages:(0,i.SS)(l)};return k.current=g({layers:a.layers,activeLayerId:a.activeLayerId,paintBuffer:a.paintBuffer,rasterBackings:a.rasterBackings??null,backgroundImages:a.backgroundImages??null,rasterRevision:p(a.rasterBackings??null)}),{past:e.past.slice(0,-1),future:[o,...e.future]}})},[r,l,y,m,k,t,u,s,v,n,d,h]),redo:(0,a.useCallback)(()=>{v(e=>{if(!e.future.length)return e;let[t,...r]=e.future;return n((0,i.KS)(t.layers)),u(t.activeLayerId),d(t.paintBuffer??null),h(t.rasterBackings??null),t.backgroundImages&&s((0,i.SS)(t.backgroundImages)),k.current=g({layers:t.layers,activeLayerId:t.activeLayerId,paintBuffer:t.paintBuffer,rasterBackings:t.rasterBackings??void 0,backgroundImages:t.backgroundImages??null,rasterRevision:p(t.rasterBackings)}),{past:[...e.past,t],future:r}})},[k,u,s,v,n,d,h])}})({layers:z,activeLayerId:$,backgroundImages:ek,setLayers:F,setActiveLayerId:O,setBackgroun
1dImages:ey,paintBufferRef:ex,setPaintBufferRestore:eB,setRasterBackingsRestore:eL,getRasterSnapshot:eN,setHistory:eu,lastHistorySignatureRef:eO}),tr=(0,a.useRef)(null),tl=(0,a.useCallback)(e=>{tr.current=e},[]),ta=(0,a.useCallback)(()=>{var e;null==(e=tr.current)||e.call(tr,"undo"),te()},[te]),tn=(0,a.useCallback)(()=>{var e;null==(e=tr.current)||e.call(tr,"redo"),tt()},[tt]);(0,a.useEffect)(()=>{!eH.current&&ex.current.canvas&&(e7(),eH.current=!0)},[eP,e7,eb]);let ti=(0,a.useCallback)((e,t)=>{(null==t?void 0:t.skipHistorySnapshot)||e3(),ey(t=>t.filter(t=>t.id!==e))},[e3]),tu=(0,a.useCallback)((e,t)=>{ey(r=>r.map(r=>r.id===e?{...r,...t}:r))},[]),{addLayer:ts,duplicateLayer:to,removeLayer:td,reorderLayers:tc,updateLayer:th,pushElementToLayer:tf,updateElementById:tg,removeElements:tp,mergeLayerUp:tm,mergeLayerDown:tv}=(e=>{let{layers:t,activeLayerId:r,setLayers:l,setActiveLayerId:n,pushHistorySnapshot:c}=e,h=(0,a.useCallback)(e=>{c();let r=(null==e?void 0:e.kind)??"vector",a=s(r,(null==e?void 0:e.name)??o(r,t));return l(t=>d((null==e?void 0:e.position)==="bottom"?[...t,a]:[a,...t])),(null==e?void 0:e.setActive)!==!1&&n(a.id),a.id},[t,c,n,l]),f=(0,a.useCallback)(e=>{let r=t.find(t=>t.id===e);if(!r)return;c();let a={...r,id:(0,u.Ak)(),name:`${r.name} Copy`,elements:r.elements.map(e=>(0,i.DX)(e))};l(e=>[a,...e]),n(a.id)},[t,c,n,l]),g=(0,a.useCallback)(e=>{1!==t.length&&(c(),l(t=>{var l,a;let i=d(t.filter(t=>t.id!==e)),u=(null==(l=i.find(e=>e.id===r))?void 0:l.id)??(null==(a=i[0])?void 0:a.id);return u&&n(u),i}))},[r,t.length,c,n,l]),p=(0,a.useCallback)((e,r)=>{e===r||e<0||r<0||e>=t.length||r>=t.length||(c(),l(t=>{let l=[...t],[a]=l.splice(e,1);return l.splice(r,0,a),l}))},[t.length,c,l]),m=(0,a.useCallback)((e,t)=>{c(),l(r=>r.map(r=>r.id===e?{...r,...t}:r))},[c,l]),v=(0,a.useCallback)((e,t,r)=>{c();let a="stroke"===t.type?{revision:t.revision??0,...t}:t;l(t=>t.map(t=>t.id===e?{...t,elements:(null==r?void 0:r.prepend)?[a,...t.elements]:[...t.elements,a]}:t))},[c,l]),k=(0,a.useCallback)((e,t)=>{l(r=>{let l=-1,a=-1;for(let t=0;t<r.length;t+=1){let n=r[t].elements.findIndex(t=>t.id===e);if(-1!==n){l=t,a=n;break}}if(-1===l||-1===a)return r;let n=r[l],i=n.elements[a],u=t(i);if(u===i)return r;let s="stroke"===u.type?{...u,revision:(u.revision??("stroke"===i.type?i.revision??0:0))+1}:u,o=[...r],d=[...n.elements];return d[a]=s,o[l]={...n,elements:d},o})},[l]),y=(0,a.useCallback)(e=>{e.length&&(c(),l(t=>t.map(t=>({...t,elements:t.elements.filter(t=>!e.includes(t.id))}))))},[c,l]),b=(0,a.useCallback)((e,t)=>{l(r=>{let l=r.findIndex(t=>t.id===e);if(-1===l)return r;let a="up"===t?l-1:l+1;if(a<0||a>=r.length)return r;c();let n=r[l],i=r[a],u="down"===t?[...i.elements,...n.elements]:[...n.elements,...i.elements],s={...i,elements:u};return d(r.filter(e=>e.id!==n.id).map(e=>e.id===i.id?s:e))})},[c,l]);return{addLayer:h,duplicateLayer:f,removeLayer:g,reorderLayers:p,updateLayer:m,pushElementToLayer:v,updateElementById:k,removeElements:y,mergeLayerUp:(0,a.useCallback)(e=>b(e,"up"),[b]),mergeLayerDown:(0,a.useCallback)(e=>b(e,"down"),[b])}})({layers:z,activeLayerId:$,setLayers:F,setActiveLayerId:O,pushHistorySnapshot:e3}),tk=ei.past.length>0,ty=ei.future.length>0,{addImageElement:tb,addWebtoonElement:tw}=(e=>{let{layers:t,activeLayerId:r,setLayers:l,setActiveLayerId:n,setBackgroundImages:i,pushHistorySnapshot:s,viewOffset:o,canvasSettingsEnabled:d}=e;return{addImageElement:(0,a.useCallback)(e=>{let a,c,{src:h,width:f,height:g,x:p,y:v,opacity:k,layerId:y,replaceLayerElements:b,toBackgroundLayer:w,appendToTop:C,role:S,skipHistorySnapshot:x}=e,I=(0,u.Ak)();d?(a=-f/2,c=-g/2):(a=-o.x+50,c=-o.y+50);let M={id:I,type:"image",src:h,width:f,height:g,x:"number"==typeof p?p:a,y:"number"==typeof v?v:c,opacity:"number"==typeof k?k:1,rotation:0,role:S};if(w)return x||s(),i(e=>b?[M]:[...e,M]),I;let{targetLayerId:B,layerToInsert:R}=m({layers:t,activeLayerId:r,requestedLayerId:y});return B?(s(),l(e=>{let t=R?[...e,R]:[...e];if(C&&!R){let e=t.findIndex(e=>e.id===B);if(-1!==e&&e!==t.length-1){let r=t[e];t=[...t.slice(0,e),...t.slice(e+1),r]}}return t.map(e=>e.id===B?{...e,elements:b?[M]:C?[...e.elements,M]:[M,...e.elements]}:e)}),R&&n(R.id),I):null},[r,d,t,s,n,i,l,o.x,o.y]),addWebtoonElement:(0,a.useCallback)(e=>{let{layoutId:a,panels:i,width:d,height:c,x:h,y:f,strokeColor:g,strokeWidth:p,backgroundColor:v,opacity:k}=e,y=(0,u.Ak)(),b={id:y,type:"webtoon",layoutId:a,panels:i,width:d,height:c,x:"number"==typeof h?h:-o.x+50,y:"number"==typeof f?f:-o.y+50,strokeColor:g??"var(--color-primary-black)",strokeWidth:p??3,backgroundColor:v??"var(--color-primary-white)",opacity:"number"==typeof k?k:1,rotation:0},{targetLayerId:w,layerToInsert:C}=m({layers:t,activeLayerId:r});return w?(s(),l(e=>(C?[C,...e]:e).map(e=>e.id===w?{...e,elements:[b,...e.elements]}:e)),C&&n(C.id),y):null},[r,t,s,n,l,o.x,o.y])}})({layers:z,activeLayerId:$,setLayers:F,setActiveLayerId:O,setBackgroun
1dImages:ey,pushHistorySnapshot:e3,viewOffset:H,canvasSettingsEnabled:A.enabled}),{ensureLayer:tC,setTool:tS}=(e=>{let{tool:t,layers:r,activeLayerId:l,setLayers:n,setActiveLayerId:i,setToolState:u,pushHistorySnapshot:d,ensureRasterLayerPresence:c,debugLog:h}=e,f=(0,a.useCallback)((e,t)=>{let a=(null==t?void 0:t.allowHidden)??!1,u=(null==t?void 0:t.allowLocked)??!1,h=(null==t?void 0:t.createIfMissing)??!0,f=(null==t?void 0:t.makeActive)??!1,g=t=>t.kind===e&&(a||t.visible)&&(u||!t.locked),p=r.find(e=>e.id===l&&g(e))??null;p||(p=r.find(g)??null);let m=!1;if(!p&&h){let l=s(e,(null==t?void 0:t.namePrefix)??o(e,r));d();let a=!1;n(e=>{let t=e.find(g);return t?(p=t,e):(a=!0,p=l,c([l,...e]))}),m=a}let v=!1;return f&&p&&p.id!==l&&(i(p.id),v=!0),{id:(null==p?void 0:p.id)??null,layer:p,created:m,activated:v}},[l,c,r,d,i,n]),g=(0,a.useCallback)(e=>{if(e===t)return;let r=performance.now(),l=(0,v.Yt)(e),a=null;if("raster"===l){let n=f("raster",{makeActive:!0,createIfMissing:!0});if(a={id:n.id,created:n.created,activated:n.activated},!n.id){h(`[draw] Cannot select ${e} – no unlocked, visible raster layer`,{nextTool:e}),h("drawingStore:setTool",{tag:"drawingStore:setTool",ok:!1,reason:"no-raster-layer",dtMs:Number((performance.now()-r).toFixed(2)),prevTool:t,nextTool:e,kind:l,ensureResult:a});return}}else if("vector"===l){let n=f("vector",{makeActive:!0,createIfMissing:!0});if(a={id:n.id,created:n.created,activated:n.activated},!n.id){h(`[draw] Cannot select ${e} – no unlocked, visible vector layer`,{nextTool:e}),h("drawingStore:setTool",{tag:"drawingStore:setTool",ok:!1,reason:"no-vector-layer",dtMs:Number((performance.now()-r).toFixed(2)),prevTool:t,nextTool:e,kind:l,ensureResult:a});return}}u(e),h("drawingStore:setTool",{tag:"drawingStore:setTool",ok:!0,dtMs:Number((performance.now()-r).toFixed(2)),prevTool:t,nextTool:e,kind:l,ensureResult:a})},[h,f,u,t]);return{ensureLayer:f,setTool:g}})({tool:C,layers:z,activeLayerId:$,setLayers:F,setActiveLayerId:O,setToolState:S,pushHistorySnapshot:e3,ensureRasterLayerPresence:e5,debugLog:k}),tx=(0,a.useMemo)(()=>({getSnapshot:eC,subscribe:eS}),[eC,eS]),tI=(0,a.useMemo)(()=>({tool:C,setTool:tS,rasterizeVectorsOnCommit:eh,setRasterizeVectorsOnCommit:ef,ensureLayer:tC,color:x,setColor:I,fillColor:M,setFillColor:B,backgroundColor:R,setBackgroundColor:L,canvasSettings:A,setCanvasSettings:e0,canvasFilter:D,setCanvasFilter:E,canvasOverlayUrl:N,setCanvasOverlayUrl:j,pencil:W,setPencil:eX,eraser:Y,setEraser:eY,line:_,setLine:eQ,shape:Z,setShape:e_,text:G,setText:eq,smudge:ee,setSmudge:eZ,bumpPaintBufferRevision:ew,viewOffset:H,setViewOffset:eV,zoom:U,setZoom:e2,palette:er,selectedPaletteIndex:ea,setSelectedPaletteIndex:en,setPaletteColorAt:e1,layers:z,activeLayerId:$,setActiveLayer:O,addLayer:ts,duplicateLayer:to,removeLayer:td,reorderLayers:tc,updateLayer:th,pushElementToLayer:tf,updateElementById:tg,mergeLayerUp:tm,mergeLayerDown:tv,undo:ta,redo:tn,registerBeforeHistoryMutation:tl,canUndo:tk,canRedo:ty,removeElements:tp,captureHistorySnapshot:e7,addImageElement:tb,addWebtoonElement:tw,replaceLayers:e9,backgroundImages:ek,removeBackgroundImage:ti,updateBackgroun
1dImage:tu,referenceImage:es,setReferenceImageSrc:e4,setReferenceImageVisible:e8,setReferenceImageOpacity:e6,showDottedGrid:ed,setShowDottedGrid:ec,paintBuffer:ex.current,setPaintBuffer:eI,paintBufferRestore:eM,setPaintBufferRestore:eB,rasterBackingsRestore:eR,setRasterBackingsRestore:eL,panelRasterSnapshotsRestore:eA,setPanelRasterSnapshotsRestore:eT,registerRasterSnapshotGetter:eE,getRasterSnapshot:eN,registerPanelRasterSnapshotGetter:ej,getPanelRasterSnapshot:ez,registerPanelRasterBackingsGetter:eF,getPanelRasterBackings:e$,hydrateRasterStateFromRestore:eD,setVectorCacheSnapshot:eG,getVectorCacheSnapshot:eJ,isProcessingSticker:eg,setIsProcessingSticker:ep,selectedElementIds:em,setSelectedElementIds:ev}),[C,tS,tC,x,M,R,A,D,N,W,eX,Y,eY,_,eQ,Z,e_,G,eq,ee,H,U,er,ea,z,$,ts,to,td,tc,th,tf,tg,tm,tv,ta,tn,tl,tk,ty,tp,e7,tb,tw,e9,ek,ti,tu,e0,en,e1,e2,eh,ef,es,e4,e8,e6,ed,eZ,eI,eM,eB,eR,eL,eA,eT,ew,ec,eE,eN,ej,ez,eF,e$,eD,ex,eG,eJ,eg,ep,em,ev,eb]);return(0,l.jsx)(w.Provider,{value:tx,children:(0,l.jsx)(b.Provider,{value:tI,children:t})})},S=()=>{let e=(0,a.useContext)(b);if(!e)throw Error("useDrawingStore must be used within a DrawingProvider");return e},x=()=>{let e=(0,a.useContext)(w);if(!e)throw Error("usePaintBufferRevisionStore must be used within a DrawingProvider");return e}}}]);
2//# chunkId=01a09f3b-a474-7891-a846-c1e4258faec2

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.