From abc3800db26e9f79198d62d623d2192c06468c3a Mon Sep 17 00:00:00 2001 From: john Date: Sat, 17 Oct 2026 12:30:46 -0400 Subject: [PATCH] second commit --- CLAUDE.md | 35 ++-- dist/assets/index-BhQDCmrl.js | 41 +++++ dist/assets/index-Cp-y6ttL.js | 41 ----- dist/index.html | 2 +- src/App.tsx | 17 +- src/components/FurnitureShape.tsx | 12 +- src/components/Palette.tsx | 26 ++- src/components/Room.tsx | 101 +++++++++-- src/components/Stepper.tsx | 52 ------ src/components/TypeMenu.tsx | 13 +- src/components/Wheel.tsx | 271 ++++++++++++++++++++++++++++++ src/geometry.ts | 37 ++++ src/store.ts | 11 ++ src/types.ts | 10 +- 14 files changed, 533 insertions(+), 136 deletions(-) create mode 100644 dist/assets/index-BhQDCmrl.js delete mode 100644 dist/assets/index-Cp-y6ttL.js delete mode 100644 src/components/Stepper.tsx create mode 100644 src/components/Wheel.tsx diff --git a/CLAUDE.md b/CLAUDE.md index f11a653..8619559 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -6,17 +6,20 @@ A web tool for venues (events, banquets, conferences) to lay out furniture in a The ONLY feature right now is drag-and-drop layout: -- Left palette with two source tiles: chair and table. -- Large rectangular room on the right (fixed 10m x 8m, drawn to scale, 1m = 60px, faint 0.5m grid). -- Click (no drag) a palette tile to open a settings menu for that furniture type: - - Available: how many of that type the venue has (number stepper, min = number already placed). - - Tables only: Seats per table (number stepper, min 1). - - Palette tiles show a badge with remaining count (available minus placed). -- Drag a tile into the room to create an item. The tile stays in the palette. If remaining is 0, the tile is greyed out and can't be dragged. -- Distinguish click from drag with a small movement threshold (about 5px). +- Left sidebar (palette) with three source tiles: chair, table, screen. + - Resizable by dragging its right edge (default 264px, min 152px, max 600px). Tiles live in an auto-fill grid: they stretch in width only (fixed 84px height) until another column fits. +- Large rectangular room in the center (fixed 10m x 8m). It is scaled to fill the available space (`pxPerM` computed via `fitScale` and passed down; a ResizeObserver in `App.tsx` recomputes it). A "1 m" scale bar sits under the room. No grid lines. +- Click (no drag) a palette tile to open its settings menu. The menu takes over the sidebar (replaces the tiles); close with Escape or the "Back" button: + - Available: how many of that type the venue has. Min = number already placed. + - Tables only: Seats per table (min 1). + - Both are iOS-timer-style scroll wheels (`components/Wheel.tsx`): drag 1:1, momentum fling, press to stop mid-roll, spring settle for slow releases, mouse wheel / trackpad, tap a row, arrow keys. Max 999. + - Palette tiles show a badge with remaining count (available minus placed). Defaults: 20 chairs, 6 tables, 8 seats per table. +- Drag a tile into the room to create an item. The tile stays in the palette. If remaining is 0, the tile is greyed out and can't be dragged (click still opens the menu). +- Distinguish click from drag with a small movement threshold (5px). +- Screens (2 x 0.2 m default, 2 available by default) are the only resizable type: click a placed screen to select it, then drag its left/right end handles to change its length only (top-down view, so thickness stays 0.2 m; min length 0.5 m, stays inside the room; red + snap back to the old size if it would overlap). `RESIZABLE` and `resizeRect` live in `geometry.ts`. - Drag existing items to move them. Items are clamped inside the room walls. -- No overlap allowed. Invalid position = red outline while dragging; on drop, snap back to last valid position (or cancel the add if new). -- Snap to the 0.5m grid on drop. +- No overlap allowed (touching edges is fine). Invalid position = red outline while dragging, green when valid; on drop, snap back to last valid position (or cancel the add if new). +- NO grid snapping: items land exactly where dropped (snapping was removed on request). Do not build anything beyond this unless asked. Do not design in a way that blocks the roadmap below. @@ -29,7 +32,7 @@ Do not build anything beyond this unless asked. Do not design in a way that bloc ## Data model ```ts -type FurnitureType = "chair" | "table"; +type FurnitureType = "chair" | "table" | "screen"; interface FurnitureItem { id: string; @@ -55,16 +58,22 @@ interface FurnitureTypeConfig { Seats per table is a type-level setting for now (applies to all tables). Per-table overrides come later. Chairs and table seats are independent for now. -Default sizes: chair 0.5 x 0.5 m, table 1.8 x 0.8 m. +Default sizes: chair 0.5 x 0.5 m, table 1.8 x 0.8 m, screen 2 x 0.2 m. ## Conventions -- Store everything in meters. Convert to pixels only at render time (one `PX_PER_M` constant). +- Store everything in meters. Convert to pixels only at render time using the `pxPerM` scale (dynamic, computed by `fitScale` in `geometry.ts`; there is no fixed px-per-meter constant). - Collision = axis-aligned bounding boxes. Keep collision and clamping logic in pure functions (no React or Konva imports) so the optimizer can reuse them. - Keep geometry/rules logic separate from rendering components. - Small, typed, readable code. No new dependencies without a good reason. - Keep the UI minimal: light grey app background, room centered in the remaining space. +## File layout + +- `src/types.ts`, `src/geometry.ts` (pure: clamp, overlap, validity, fitScale, default sizes), `src/inventory.ts` (pure: placedCount, remaining), `src/store.ts` (reducer: items, room, configs). +- `src/App.tsx`: owns the store, palette drag, room scale. +- `src/components/`: `Palette` (sidebar, tiles, resize), `TypeMenu`, `Wheel`, `Room` (Konva), `FurnitureShape`, `ScaleBar`. + ## Roadmap (not built yet, don't block) Venue-focused features planned for later phases: diff --git a/dist/assets/index-BhQDCmrl.js b/dist/assets/index-BhQDCmrl.js new file mode 100644 index 0000000..abeb26d --- /dev/null +++ b/dist/assets/index-BhQDCmrl.js @@ -0,0 +1,41 @@ +var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t,t.exports),e=null),t.exports),s=(e,n)=>{let r={};for(var i in e)t(r,i,{get:e[i],enumerable:!0});return n||t(r,Symbol.toStringTag,{value:`Module`}),r},c=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;li[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},l=(n,r,o)=>(o=n==null?{}:e(i(n)),c(r||!n||!n.__esModule||!a.call(n,`default`)?t(o,`default`,{value:n,enumerable:!0}):o,n));(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),t.credentials=e.crossOrigin===`use-credentials`?`include`:e.crossOrigin===`anonymous`?`omit`:`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var u=o((e=>{function t(e,t){var n=e.length;e.push(t);a:for(;0>>1,a=e[r];if(0>>1;ri(c,n))li(u,c)?(e[r]=u,e[l]=n,r=l):(e[r]=c,e[s]=n,r=s);else if(li(u,n))e[r]=u,e[l]=n,r=l;else break a}}return t}function i(e,t){var n=e.sortIndex-t.sortIndex;return n===0?e.id-t.id:n}if(e.unstable_now=void 0,typeof performance==`object`&&typeof performance.now==`function`){var a=performance;e.unstable_now=function(){return a.now()}}else{var o=Date,s=o.now();e.unstable_now=function(){return o.now()-s}}var c=[],l=[],u=1,d=null,f=3,p=!1,m=!1,h=!1,g=!1,_=typeof setTimeout==`function`?setTimeout:null,v=typeof clearTimeout==`function`?clearTimeout:null,y=typeof setImmediate<`u`?setImmediate:null;function b(e){for(var i=n(l);i!==null;){if(i.callback===null)r(l);else if(i.startTime<=e)r(l),i.sortIndex=i.expirationTime,t(c,i);else break;i=n(l)}}function x(e){if(h=!1,b(e),!m){if(n(c)!==null)m=!0,S||(S=!0,re());else{var t=n(l);t!==null&&oe(x,t.startTime-e)}}}var S=!1,C=-1,ee=5,te=-1;function ne(){return g?!0:!(e.unstable_now()-tet&&ne());){var o=d.callback;if(typeof o==`function`){d.callback=null,f=d.priorityLevel;var s=o(d.expirationTime<=t);if(t=e.unstable_now(),typeof s==`function`){d.callback=s,b(t),i=!0;break b}d===n(c)&&r(c),b(t)}else r(c);d=n(c)}if(d!==null)i=!0;else{var u=n(l);u!==null&&oe(x,u.startTime-t),i=!1}}break a}finally{d=null,f=a,p=!1}i=void 0}}finally{i?re():S=!1}}}var re;if(typeof y==`function`)re=function(){y(w)};else if(typeof MessageChannel<`u`){var ie=new MessageChannel,ae=ie.port2;ie.port1.onmessage=w,re=function(){ae.postMessage(null)}}else re=function(){_(w,0)};function oe(t,n){C=_(function(){t(e.unstable_now())},n)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(e){e.callback=null},e.unstable_forceFrameRate=function(e){0>e||125o?(r.sortIndex=a,t(l,r),n(c)===null&&r===n(l)&&(h?(v(C),C=-1):h=!0,oe(x,a-o))):(r.sortIndex=s,t(c,r),m||p||(m=!0,S||(S=!0,re()))),r},e.unstable_shouldYield=ne,e.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}})),d=o(((e,t)=>{t.exports=u()})),f=o((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.portal`),r=Symbol.for(`react.fragment`),i=Symbol.for(`react.strict_mode`),a=Symbol.for(`react.profiler`),o=Symbol.for(`react.consumer`),s=Symbol.for(`react.context`),c=Symbol.for(`react.forward_ref`),l=Symbol.for(`react.suspense`),u=Symbol.for(`react.memo`),d=Symbol.for(`react.lazy`),f=Symbol.for(`react.activity`),p=Symbol.for(`react.view_transition`),m=Symbol.iterator;function h(e){return typeof e!=`object`||!e?null:(e=m&&e[m]||e[`@@iterator`],typeof e==`function`?e:null)}var g={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},_=Object.assign,v={};function y(e,t,n){this.props=e,this.context=t,this.refs=v,this.updater=n||g}y.prototype.isReactComponent={},y.prototype.setState=function(e,t){if(typeof e!=`object`&&typeof e!=`function`&&e!=null)throw Error(`takes an object of state variables to update or a function which returns an object of state variables.`);this.updater.enqueueSetState(this,e,t,`setState`)},y.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,`forceUpdate`)};function b(){}b.prototype=y.prototype;function x(e,t,n){this.props=e,this.context=t,this.refs=v,this.updater=n||g}var S=x.prototype=new b;S.constructor=x,_(S,y.prototype),S.isPureReactComponent=!0;var C=Array.isArray;function ee(){}var te={H:null,A:null,T:null,S:null},ne=Object.prototype.hasOwnProperty;function w(e,n,r){var i=r.ref;return{$$typeof:t,type:e,key:n,ref:i===void 0?null:i,props:r}}function re(e,t){return w(e.type,t,e.props)}function ie(e){return typeof e==`object`&&!!e&&e.$$typeof===t}function ae(e){var t={"=":`=0`,":":`=2`};return`$`+e.replace(/[=:]/g,function(e){return t[e]})}var oe=/\/+/g;function se(e,t){return typeof e==`object`&&e&&e.key!=null?ae(``+e.key):t.toString(36)}function T(e){switch(e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason;default:switch(typeof e.status==`string`?e.then(ee,ee):(e.status=`pending`,e.then(function(t){e.status===`pending`&&(e.status=`fulfilled`,e.value=t)},function(t){e.status===`pending`&&(e.status=`rejected`,e.reason=t)})),e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason}}throw e}function E(e,r,i,a,o){var s=typeof e;(s===`undefined`||s===`boolean`)&&(e=null);var c=!1;if(e===null)c=!0;else switch(s){case`bigint`:case`string`:case`number`:c=!0;break;case`object`:switch(e.$$typeof){case t:case n:c=!0;break;case d:return c=e._init,E(c(e._payload),r,i,a,o)}}if(c)return o=o(e),c=a===``?`.`+se(e,0):a,C(o)?(i=``,c!=null&&(i=c.replace(oe,`$&/`)+`/`),E(o,r,i,``,function(e){return e})):o!=null&&(ie(o)&&(o=re(o,i+(o.key==null||e&&e.key===o.key?``:(``+o.key).replace(oe,`$&/`)+`/`)+c)),r.push(o)),1;c=0;var l=a===``?`.`:a+`:`;if(C(e))for(var u=0;u{t.exports=f()})),m=o((e=>{var t=p();function n(e){var t=`https://react.dev/errors/`+e;if(1{function n(){if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<`u`&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE==`function`)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=m()})),g=o((e=>{var t=d(),n=p(),r=h();function i(e){var t=`https://react.dev/errors/`+e;if(1Te||(e.current=we[Te],we[Te]=null,Te--)}function De(e,t){Te++,we[Te]=e.current,e.current=t}var Oe=Ee(null),ke=Ee(null),Ae=Ee(null),je=Ee(null);function Me(e,t){switch(De(Ae,t),De(ke,e),De(Oe,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?up(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=up(t),e=dp(t,e);else switch(e){case`svg`:e=1;break;case`math`:e=2;break;default:e=0}}A(Oe),De(Oe,e)}function Ne(){A(Oe),A(ke),A(Ae)}function Pe(e){var t=e.memoizedState;t!==null&&(sh._currentValue=t.memoizedState,De(je,e)),t=Oe.current;var n=dp(t,e.type);t!==n&&(De(ke,e),De(Oe,n))}function Fe(e){ke.current===e&&(A(Oe),A(ke)),je.current===e&&(A(je),sh._currentValue=Ce)}var Ie,Le;function Re(e){if(Ie===void 0)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);Ie=t&&t[1]||``,Le=-1)`:-1i||c[r]!==l[i]){var u=` +`+c[r].replace(` at new `,` at `);return e.displayName&&u.includes(``)&&(u=u.replace(``,e.displayName)),u}while(1<=r&&0<=i);break}}}finally{ze=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:``)?Re(n):``}function Ve(e,t){switch(e.tag){case 26:case 27:case 5:return Re(e.type);case 16:return Re(`Lazy`);case 13:return e.child!==t&&t!==null?Re(`Suspense Fallback`):Re(`Suspense`);case 19:return Re(`SuspenseList`);case 0:case 15:return Be(e.type,!1);case 11:return Be(e.type.render,!1);case 1:return Be(e.type,!0);case 31:return Re(`Activity`);case 30:return Re(`ViewTransition`);default:return``}}function He(e){try{var t=``,n=null;do t+=Ve(e,n),n=e,e=e.return;while(e);return t}catch(e){return` +Error generating stack: `+e.message+` +`+e.stack}}var Ue=Object.prototype.hasOwnProperty,We=t.unstable_scheduleCallback,Ge=t.unstable_cancelCallback,Ke=t.unstable_shouldYield,qe=t.unstable_requestPaint,Je=t.unstable_now,Ye=t.unstable_getCurrentPriorityLevel,Xe=t.unstable_ImmediatePriority,Ze=t.unstable_UserBlockingPriority,Qe=t.unstable_NormalPriority,j=t.unstable_LowPriority,$e=t.unstable_IdlePriority,et=t.log,tt=t.unstable_setDisableYieldValue,nt=null,rt=null;function it(e){if(typeof et==`function`&&tt(e),rt&&typeof rt.setStrictMode==`function`)try{rt.setStrictMode(nt,e)}catch{}}var at=Math.clz32?Math.clz32:ct,ot=Math.log,st=Math.LN2;function ct(e){return e>>>=0,e===0?32:31-(ot(e)/st|0)|0}var lt=256,ut=262144,dt=4194304;function ft(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&-e;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function pt(e,t,n){var r=e.pendingLanes;if(r===0)return 0;var i=0,a=e.suspendedLanes,o=e.pingedLanes;e=e.warmLanes;var s=r&134217727;return s===0?(s=r&~a,s===0?o===0?n||(n=r&~e,n!==0&&(i=ft(n))):i=ft(o):i=ft(s)):(r=s&~a,r===0?(o&=s,o===0?n||(n=s&~e,n!==0&&(i=ft(n))):i=ft(o)):i=ft(r)),i===0?0:t!==0&&t!==i&&(t&a)===0&&(a=i&-i,n=t&-t,a>=n||a===32&&n&4194048)?t:i}function mt(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function ht(e,t){t&8&&(t|=t&32);var n=e.entangledLanes;if(n!==0)for(e=e.entanglements,n&=t;0n;n++)t.push(e);return t}function vt(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function yt(e,t,n,r,i,a){var o=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var s=e.entanglements,c=e.expirationTimes,l=e.hiddenUpdates;for(n=o&~n;0=pr),gr=` `,_r=!1;function vr(e,t){switch(e){case`keyup`:return dr.indexOf(t.keyCode)!==-1;case`keydown`:return t.keyCode!==229;case`keypress`:case`mousedown`:case`focusout`:return!0;default:return!1}}function yr(e){return e=e.detail,typeof e==`object`&&`data`in e?e.data:null}var br=!1;function xr(e,t){switch(e){case`compositionend`:return yr(t);case`keypress`:return t.which===32?(_r=!0,gr):null;case`textInput`:return e=t.data,e===gr&&_r?null:e;default:return null}}function Sr(e,t){if(br)return e===`compositionend`||!fr&&vr(e,t)?(e=Fn(),Pn=Nn=Mn=null,br=!1,e):null;switch(e){case`paste`:return null;case`keypress`:if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}a:{for(;n;){if(n.nextSibling){n=n.nextSibling;break a}n=n.parentNode}n=void 0}n=Gr(n)}}function qr(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?qr(e,t.parentNode):`contains`in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Jr(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=Wr(e.document);t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href==`string`}catch{n=!1}if(n)e=t.contentWindow;else break;t=Wr(e.document)}return t}function Yr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t===`input`&&(e.type===`text`||e.type===`search`||e.type===`tel`||e.type===`url`||e.type===`password`)||t===`textarea`||e.contentEditable===`true`)}var Xr=kn&&`documentMode`in document&&11>=document.documentMode,Zr=null,Qr=null,$r=null,ei=!1;function ti(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;ei||Zr==null||Zr!==Wr(r)||(r=Zr,`selectionStart`in r&&Yr(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),$r&&Ur($r,r)||($r=r,r=qf(Qr,`onSelect`),0>=o,i-=o,Zi=1<<32-at(t)+i|n<h?(g=d,d=null):g=d.sibling;var _=p(i,d,s[h],c);if(_===null){d===null&&(d=g);break}e&&d&&_.alternate===null&&t(i,d),a=o(_,a,h),u===null?l=_:u.sibling=_,u=_,d=g}if(h===s.length)return n(i,d),z&&$i(i,h),l;if(d===null){for(;hg?(_=h,h=null):_=h.sibling;var y=p(a,h,v.value,l);if(y===null){h===null&&(h=_);break}e&&h&&y.alternate===null&&t(a,h),s=o(y,s,g),d===null?u=y:d.sibling=y,d=y,h=_}if(v.done)return n(a,h),z&&$i(a,g),u;if(h===null){for(;!v.done;g++,v=c.next())v=f(a,v.value,l),v!==null&&(s=o(v,s,g),d===null?u=v:d.sibling=v,d=v);return z&&$i(a,g),u}for(h=r(h);!v.done;g++,v=c.next())v=m(h,a,g,v.value,l),v!==null&&(e&&(_=v.alternate,_!==null&&h.delete(_.key===null?g:_.key)),s=o(v,s,g),d===null?u=v:d.sibling=v,d=v);return e&&h.forEach(function(e){return t(a,e)}),z&&$i(a,g),u}function _(e,r,o,c){if(typeof o==`object`&&o&&o.type===oe&&o.key===null&&o.props.ref===void 0&&(o=o.props.children),typeof o==`object`&&o){switch(o.$$typeof){case ie:a:{for(var l=o.key;r!==null;){if(r.key===l){if(l=o.type,l===oe){if(r.tag===7){n(e,r.sibling),c=a(r,o.props.children),so(c,o),c.return=e,e=c;break a}}else if(r.elementType===l||typeof l==`object`&&l&&l.$$typeof===fe&&eo(l)===r.type){n(e,r.sibling),c=a(r,o.props),so(c,o),c.return=e,e=c;break a}n(e,r);break}t(e,r),r=r.sibling}o.type===oe?(c=Ri(o.props.children,e.mode,c,o.key),so(c,o),c.return=e,e=c):(c=Li(o.type,o.key,o.props,null,e.mode,c),so(c,o),c.return=e,e=c)}return s(e);case ae:a:{for(l=o.key;r!==null;){if(r.key===l){if(r.tag===4&&r.stateNode.containerInfo===o.containerInfo&&r.stateNode.implementation===o.implementation){n(e,r.sibling),c=a(r,o.children||[]),c.return=e,e=c;break a}n(e,r);break}t(e,r),r=r.sibling}c=Vi(o,e.mode,c),c.return=e,e=c}return s(e);case fe:return o=eo(o),_(e,r,o,c)}if(Se(o))return h(e,r,o,c);if(ye(o)){if(l=ye(o),typeof l!=`function`)throw Error(i(150));return o=l.call(o),g(e,r,o,c)}if(typeof o.then==`function`)return _(e,r,oo(o),c);if(o.$$typeof===ce)return _(e,r,Ea(e,o),c);co(e,o)}return typeof o==`string`&&o!==``||typeof o==`number`||typeof o==`bigint`?(o=``+o,r!==null&&r.tag===6?(n(e,r.sibling),c=a(r,o),c.return=e,e=c):(n(e,r),c=zi(o,e.mode,c),c.return=e,e=c),s(e)):n(e,r)}return function(e,t,n,r){try{ao=0;var i=_(e,t,n,r);return io=null,i}catch(t){if(t===Ya||t===Za)throw t;var a=Ni(29,t,null,e.mode);return a.lanes=r,a.return=e,a}}}var uo=lo(!0),fo=lo(!1),po=!1;function mo(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function ho(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function go(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function _o(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,ed&2){var i=r.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),r.pending=t,t=Ai(e),ki(e,null,n),t}return Ei(e,r,t,n),Ai(e)}function vo(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,n&4194048)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,xt(e,n)}}function yo(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var i=null,a=null;if(n=n.firstBaseUpdate,n!==null){do{var o={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};a===null?i=a=o:a=a.next=o,n=n.next}while(n!==null);a===null?i=a=t:a=a.next=t}else i=a=t;n={baseState:r.baseState,firstBaseUpdate:i,lastBaseUpdate:a,shared:r.shared,callbacks:r.callbacks},e.updateQueue=n}else e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}var bo=!1;function H(){if(bo){var e=Ba;if(e!==null)throw e}}function xo(e,t,n,r){bo=!1;var i=e.updateQueue;po=!1;var a=i.firstBaseUpdate,o=i.lastBaseUpdate,s=i.shared.pending;if(s!==null){i.shared.pending=null;var c=s,l=c.next;c.next=null,o===null?a=l:o.next=l,o=c;var u=e.alternate;u!==null&&(u=u.updateQueue,s=u.lastBaseUpdate,s!==o&&(s===null?u.firstBaseUpdate=l:s.next=l,u.lastBaseUpdate=c))}if(a!==null){var d=i.baseState;o=0,u=l=c=null,s=a;do{var f=s.lane&-536870913,p=f!==s.lane;if(p?(q&f)===f:(r&f)===f){f!==0&&f===za&&(bo=!0),u!==null&&(u=u.next={lane:0,tag:s.tag,payload:s.payload,callback:null,next:null});a:{var m=e,h=s;f=t;var g=n;switch(h.tag){case 1:if(m=h.payload,typeof m==`function`){d=m.call(g,d,f);break a}d=m;break a;case 3:m.flags=m.flags&-65537|128;case 0:if(m=h.payload,f=typeof m==`function`?m.call(g,d,f):m,f==null)break a;d=w({},d,f);break a;case 2:po=!0}}f=s.callback,f!==null&&(e.flags|=64,p&&(e.flags|=8192),p=i.callbacks,p===null?i.callbacks=[f]:p.push(f))}else p={lane:f,tag:s.tag,payload:s.payload,callback:s.callback,next:null},u===null?(l=u=p,c=d):u=u.next=p,o|=f;if(s=s.next,s===null){if(s=i.shared.pending,s===null)break;p=s,s=p.next,p.next=null,i.lastBaseUpdate=p,i.shared.pending=null}}while(1);u===null&&(c=d),i.baseState=c,i.firstBaseUpdate=l,i.lastBaseUpdate=u,a===null&&(i.shared.lanes=0),sd|=o,e.lanes=o,e.memoizedState=d}}function So(e,t){if(typeof e!=`function`)throw Error(i(191,e));e.call(t)}function Co(e,t){var n=e.callbacks;if(n!==null)for(e.callbacks=null,e=0;ea?a:8;var o=O.T,s={};s.types=o===null?null:o.types,O.T=s,lc(e,!1,t,n);try{var c=i(),l=O.S;l!==null&&l(s,c),typeof c==`object`&&c&&typeof c.then==`function`?cc(e,t,Ua(c,r),Md(e)):cc(e,t,r,Md(e))}catch(n){cc(e,t,{then:function(){},status:`rejected`,reason:n},Md())}finally{k.p=a,o!==null&&s.types!==null&&(o.types=s.types),O.T=o}}function Qs(){}function $s(e,t,n,r){if(e.tag!==5)throw Error(i(476));var a=ec(e).queue;Zs(e,a,t,Ce,n===null?Qs:function(){return tc(e),n(r)})}function ec(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:Ce,baseState:Ce,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:us,lastRenderedState:Ce},next:null};var n={};return t.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:us,lastRenderedState:n},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function tc(e){var t=ec(e);t.next===null&&(t=e.alternate.memoizedState),cc(e,t.next.queue,{},Md())}function nc(){return Ta(sh)}function rc(){return as().memoizedState}function ic(){return as().memoizedState}function ac(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var n=Md();e=go(n);var r=_o(t,e,n);r!==null&&(Fd(r,t,n),vo(r,t,n)),t={cache:Ma()},e.payload=t;return}t=t.return}}function oc(e,t,n){var r=Md();n={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},uc(e)?dc(t,n):(n=Di(e,t,n,r),n!==null&&(Fd(n,e,r),fc(n,t,r)))}function sc(e,t,n){cc(e,t,n,Md())}function cc(e,t,n,r){var i={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(uc(e))dc(t,i);else{var a=e.alternate;if(e.lanes===0&&(a===null||a.lanes===0)&&(a=t.lastRenderedReducer,a!==null))try{var o=t.lastRenderedState,s=a(o,n);if(i.hasEagerState=!0,i.eagerState=s,Hr(s,o))return Ei(e,t,i,0),td===null&&Ti(),!1}catch{}if(n=Di(e,t,i,r),n!==null)return Fd(n,e,r),fc(n,t,r),!0}return!1}function lc(e,t,n,r){if(r={lane:2,revertLane:Nf(),gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null},uc(e)){if(t)throw Error(i(479))}else t=Di(e,n,r,2),t!==null&&Fd(t,e,2)}function uc(e){var t=e.alternate;return e===U||t!==null&&t===U}function dc(e,t){Wo=Uo=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function fc(e,t,n){if(n&4194048){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,xt(e,n)}}var pc={readContext:Ta,use:cs,useCallback:Yo,useContext:Yo,useEffect:Yo,useImperativeHandle:Yo,useLayoutEffect:Yo,useInsertionEffect:Yo,useMemo:Yo,useReducer:Yo,useRef:Yo,useState:Yo,useDebugValue:Yo,useDeferredValue:Yo,useTransition:Yo,useSyncExternalStore:Yo,useId:Yo,useHostTransitionStatus:Yo,useFormState:Yo,useActionState:Yo,useOptimistic:Yo,useMemoCache:Yo,useCacheRefresh:Yo,useEffectEvent:Yo},mc={readContext:Ta,use:cs,useCallback:function(e,t){return is().memoizedState=[e,t===void 0?null:t],e},useContext:Ta,useEffect:Rs,useImperativeHandle:function(e,t,n){n=n==null?null:n.concat([e]),Is(4194308,4,Ws.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Is(4194308,4,e,t)},useInsertionEffect:function(e,t){Is(4,2,e,t)},useMemo:function(e,t){var n=is();t=t===void 0?null:t;var r=e();if(W){it(!0);try{e()}finally{it(!1)}}return n.memoizedState=[r,t],r},useReducer:function(e,t,n){var r=is();if(n!==void 0){var i=n(t);if(W){it(!0);try{n(t)}finally{it(!1)}}}else i=t;return r.memoizedState=r.baseState=i,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:i},r.queue=e,e=e.dispatch=oc.bind(null,U,e),[r.memoizedState,e]},useRef:function(e){var t=is();return e={current:e},t.memoizedState=e},useState:function(e){e=bs(e);var t=e.queue,n=sc.bind(null,U,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:Ks,useDeferredValue:function(e,t){return Ys(is(),e,t)},useTransition:function(){var e=bs(!1);return e=Zs.bind(null,U,e.queue,!0,!1),is().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var r=U,a=is();if(z){if(n===void 0)throw Error(i(407));n=n()}else{if(n=t(),td===null)throw Error(i(349));q&127||hs(r,t,n)}a.memoizedState=n;var o={value:n,getSnapshot:t};return a.queue=o,Rs(_s.bind(null,r,o,e),[e]),r.flags|=2048,Ps(9,{destroy:void 0},gs.bind(null,r,o,n,t),null),n},useId:function(){var e=is(),t=td.identifierPrefix;if(z){var n=Qi,r=Zi;n=(r&~(1<<32-at(r)-1)).toString(32)+n,t=`_`+t+`R_`+n,n=Go++,0<\/script>`,o=o.removeChild(o.firstChild);break;case`select`:o=typeof r.is==`string`?s.createElement(`select`,{is:r.is}):s.createElement(`select`),r.multiple?o.multiple=!0:r.size&&(o.size=r.size);break;default:o=typeof r.is==`string`?s.createElement(a,{is:r.is}):s.createElement(a)}}o[Dt]=t,o[Ot]=r;a:for(s=t.child;s!==null;){if(s.tag===5||s.tag===6)o.appendChild(s.stateNode);else if(s.tag!==4&&s.tag!==27&&s.child!==null){s.child.return=s,s=s.child;continue}if(s===t)break a;for(;s.sibling===null;){if(s.return===null||s.return===t)break a;s=s.return}s.sibling.return=s.return,s=s.sibling}t.stateNode=o;a:switch(np(o,a,r),a){case`button`:case`input`:case`select`:case`textarea`:r=!!r.autoFocus;break a;case`img`:r=!0;break a;default:r=!1}r&&fl(t)}}return _l(t),t.subtreeFlags&=-33554433,pl(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==r&&fl(t);else{if(typeof r!=`string`&&t.stateNode===null)throw Error(i(166));if(e=Ae.current,da(t)){if(e=t.stateNode,n=t.memoizedProps,r=null,a=ia,a!==null)switch(a.tag){case 27:case 5:r=a.memoizedProps}e[Dt]=t,e=!!(e.nodeValue===n||r!==null&&!0===r.suppressHydrationWarning||$f(e.nodeValue,n)),e||ca(t,!0)}else e=lp(e).createTextNode(r),e[Dt]=t,t.stateNode=e}return _l(t),null;case 31:if(n=t.memoizedState,e===null||e.memoizedState!==null){if(r=da(t),n!==null){if(e===null){if(!r)throw Error(i(318));if(e=t.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(i(557));e[Dt]=t}else fa(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;_l(t),e=!1}else n=pa(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return t.flags&256?(Fo(t),t):(Fo(t),null);if(t.flags&128)throw Error(i(558))}return _l(t),null;case 13:if(r=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(a=da(t),r!==null&&r.dehydrated!==null){if(e===null){if(!a)throw Error(i(318));if(a=t.memoizedState,a=a===null?null:a.dehydrated,!a)throw Error(i(317));a[Dt]=t}else fa(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;_l(t),a=!1}else a=pa(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=a),a=!0;if(!a)return t.flags&256?(Fo(t),t):(Fo(t),null)}return Fo(t),t.flags&128?(t.lanes=n,t):(n=r!==null,e=e!==null&&e.memoizedState!==null,n&&(r=t.child,a=null,r.alternate!==null&&r.alternate.memoizedState!==null&&r.alternate.memoizedState.cachePool!==null&&(a=r.alternate.memoizedState.cachePool.pool),o=null,r.memoizedState!==null&&r.memoizedState.cachePool!==null&&(o=r.memoizedState.cachePool.pool),o!==a&&(r.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),hl(t,t.updateQueue),_l(t),null);case 4:return Ne(),e===null&&Uf(t.stateNode.containerInfo),t.flags|=67108864,_l(t),null;case 10:return ya(t.type),_l(t),null;case 19:if(Ro(t),r=t.memoizedState,r===null)return _l(t),null;if(a=!!(t.flags&128),o=r.rendering,o===null){if(a)gl(r,!1);else{if(od!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(o=zo(e),o!==null){for(t.flags|=128,gl(r,!1),e=o.updateQueue,t.updateQueue=e,hl(t,e),t.subtreeFlags=0,e=n,n=t.child;n!==null;)Ii(n,e),n=n.sibling;return Lo(t,Io.current&1|2),z&&$i(t,r.treeForkCount),t.child}e=e.sibling}r.tail!==null&&Je()>_d&&(t.flags|=128,a=!0,gl(r,!1),t.lanes=4194304)}}else{if(!a){if(e=zo(o),e!==null){if(t.flags|=128,a=!0,e=e.updateQueue,t.updateQueue=e,hl(t,e),gl(r,!0),r.tail===null&&r.tailMode!==`collapsed`&&r.tailMode!==`visible`&&!o.alternate&&!z)return _l(t),null}else 2*Je()-r.renderingStartTime>_d&&n!==536870912&&(t.flags|=128,a=!0,gl(r,!1),t.lanes=4194304)}r.isBackwards?(o.sibling=t.child,t.child=o):(e=r.last,e===null?t.child=o:e.sibling=o,r.last=o)}if(r.tail!==null){e=r.tail;a:{for(n=e;n!==null;){if(n.alternate!==null){n=!1;break a}n=n.sibling}n=!0}return r.rendering=e,r.tail=e.sibling,r.renderingStartTime=Je(),e.sibling=null,o=Io.current,o=a?o&1|2:o&1,r.tailMode===`visible`||r.tailMode===`collapsed`||!n||z?Lo(t,o):(n=o,De(ko,t),De(Io,n),Ao===null&&(Ao=t)),z&&$i(t,r.treeForkCount),e}return _l(t),null;case 22:case 23:return Fo(t),Oo(),r=t.memoizedState!==null,e===null?r&&(t.flags|=8192):e.memoizedState!==null!==r&&(t.flags|=8192),r?n&536870912&&!(t.flags&128)&&(_l(t),t.subtreeFlags&6&&(t.flags|=8192)):_l(t),n=t.updateQueue,n!==null&&hl(t,n.retryQueue),n=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),r=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(r=t.memoizedState.cachePool.pool),r!==n&&(t.flags|=2048),e!==null&&A(Ga),null;case 24:return n=null,e!==null&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),ya(ja),_l(t),null;case 25:return null;case 30:return t.flags|=33554432,_l(t),null}throw Error(i(156,t.tag))}function yl(e,t){switch(na(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return ya(ja),Ne(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return Fe(t),null;case 31:if(t.memoizedState!==null){if(Fo(t),t.alternate===null)throw Error(i(340));fa()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(Fo(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(i(340));fa()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return Ro(t),e=t.flags,e&65536?(t.flags=e&-65537|128,e=t.memoizedState,e!==null&&(e.rendering=null,e.tail=null),t.flags|=4,t):null;case 4:return Ne(),null;case 10:return ya(t.type),null;case 22:case 23:return Fo(t),Oo(),e!==null&&A(Ga),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return ya(ja),null;case 25:return null;default:return null}}function bl(e,t){switch(na(t),t.tag){case 3:ya(ja),Ne();break;case 26:case 27:case 5:Fe(t);break;case 4:Ne();break;case 31:t.memoizedState!==null&&Fo(t);break;case 13:Fo(t);break;case 19:Ro(t);break;case 10:ya(t.type);break;case 22:case 23:Fo(t),Oo(),e!==null&&A(Ga);break;case 24:ya(ja)}}function xl(e,t){try{var n=t.updateQueue,r=n===null?null:n.lastEffect;if(r!==null){var i=r.next;n=i;do{if((n.tag&e)===e){r=void 0;var a=n.create,o=n.inst;r=a(),o.destroy=r}n=n.next}while(n!==i)}}catch(e){ff(t,t.return,e)}}function Sl(e,t,n){try{var r=t.updateQueue,i=r===null?null:r.lastEffect;if(i!==null){var a=i.next;r=a;do{if((r.tag&e)===e){var o=r.inst,s=o.destroy;if(s!==void 0){o.destroy=void 0,i=t;var c=n,l=s;try{l()}catch(e){ff(i,c,e)}}}r=r.next}while(r!==a)}}catch(e){ff(t,t.return,e)}}function Cl(e){var t=e.updateQueue;if(t!==null){var n=e.stateNode;try{Co(t,n)}catch(t){ff(e,e.return,t)}}}function wl(e,t,n){n.props=xc(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(n){ff(e,t,n)}}function Tl(e,t){try{var n=e.ref;if(n!==null){switch(e.tag){case 26:case 27:case 5:var r=e.stateNode;break;case 30:var i=e.stateNode,a=vi(e.memoizedProps,i);(i.ref===null||i.ref.name!==a)&&(i.ref=Pp(a)),r=i.ref;break;case 7:if(e.stateNode===null){var o=new Fp(e);m(e.child,!1,Qp,o,void 0,void 0),e.stateNode=o}r=e.stateNode;break;default:r=e.stateNode}typeof n==`function`?e.refCleanup=n(r):n.current=r}}catch(n){ff(e,t,n)}}function El(e,t){var n=e.ref,r=e.refCleanup;if(n!==null){if(typeof r==`function`)try{r()}catch(n){ff(e,t,n)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof n==`function`)try{n(null)}catch(n){ff(e,t,n)}else n.current=null}}function Dl(e,t){if((e.tag===5||e.tag===27||e.tag===6)&&e.alternate===null&&t!==null)for(var n=0;n title`))),np(r,t,n),r[Dt]=e,Bt(r),t=r;break a;case`link`:if(o=Gm(`link`,`href`,a).get(t+(n.href||``))){for(s=0;sg&&(o=g,g=h,h=o);var _=Kr(s,h),v=Kr(s,g);if(_&&v&&(p.rangeCount!==1||p.anchorNode!==_.node||p.anchorOffset!==_.offset||p.focusNode!==v.node||p.focusOffset!==v.offset)){var y=d.createRange();y.setStart(_.node,_.offset),p.removeAllRanges(),h>g?(p.addRange(y),p.extend(v.node,v.offset)):(y.setEnd(v.node,v.offset),p.addRange(y))}}}}for(d=[],p=s;p=p.parentNode;)p.nodeType===1&&d.push({element:p,left:p.scrollLeft,top:p.scrollTop});for(typeof s.focus==`function`&&s.focus(),s=0;sn?32:n,O.T=null,n=Td,Td=null;var o=xd,s=Cd;if(bd=0,Sd=xd=null,Cd=0,ed&6)throw Error(i(331));var c=ed;if(ed|=4,Yu(o.current),Vu(o,o.current,s,n),ed=c,Ef(0,!1),rt&&typeof rt.onPostCommitFiberRoot==`function`)try{rt.onPostCommitFiberRoot(nt,o)}catch{}return!0}finally{k.p=a,O.T=r,cf(e,t)}}function df(e,t,n){t=Ui(n,t),t=Dc(e.stateNode,t,2),e=_o(e,t,2),e!==null&&(vt(e,2),Tf(e))}function ff(e,t,n){if(e.tag===3)df(e,e,n);else for(;t!==null;){if(t.tag===3){df(t,e,n);break}if(t.tag===1){var r=t.stateNode;if(typeof t.type.getDerivedStateFromError==`function`||typeof r.componentDidCatch==`function`&&(yd===null||!yd.has(r))){e=Ui(n,e),n=Oc(2),r=_o(t,n,2),r!==null&&(kc(n,r,t,e),vt(r,2),Tf(r));break}}t=t.return}}function pf(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new $u;var i=new Set;r.set(t,i)}else i=r.get(t),i===void 0&&(i=new Set,r.set(t,i));i.has(n)||(id=!0,i.add(n),e=mf.bind(null,e,t,n),t.then(e,e))}function mf(e,t,n){var r=e.pingCache;r!==null&&r.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,td===e&&(q&n)===n&&(od===4||od===3&&(q&62914560)===q&&300>Je()-hd?ed&2?ld|=n:Hd(e,0):ld|=n,dd===q&&(dd=0)),Tf(e)}function hf(e,t){t===0&&(t=M()),e=Oi(e,t),e!==null&&(vt(e,t),Tf(e))}function gf(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),hf(e,n)}function _f(e,t){var n=0;switch(e.tag){case 31:case 13:var r=e.stateNode,a=e.memoizedState;a!==null&&(n=a.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(i(314))}r!==null&&r.delete(t),hf(e,n)}function vf(e,t){return We(e,t)}var yf=null,bf=null,xf=!1,Sf=!1,Cf=!1,wf=0;function Tf(e){e!==bf&&e.next===null&&(bf===null?yf=bf=e:bf=bf.next=e),Sf=!0,xf||(xf=!0,Mf())}function Ef(e,t){if(!Cf&&Sf){Cf=!0;do for(var n=!1,r=yf;r!==null;){if(!t){if(e!==0){var i=r.pendingLanes;if(i===0)var a=0;else{var o=r.suspendedLanes,s=r.pingedLanes;a=(1<<31-at(42|e)+1)-1,a&=i&~(o&~s),a=a&201326741?a&201326741|1:a?a|2:0}a!==0&&(n=!0,jf(r,a))}else a=q,a=pt(r,r===td?a:0,r.cancelPendingCommit!==null||r.timeoutHandle!==-1),!(a&3)||mt(r,a)||(n=!0,jf(r,a))}r=r.next}while(n);Cf=!1}}function Df(){Of()}function Of(){Sf=xf=!1;var e=0;wf!==0&&hp()&&(e=wf);for(var t=Je(),n=null,r=yf;r!==null;){var i=r.next,a=kf(r,t);a===0?(r.next=null,n===null?yf=i:n.next=i,i===null&&(bf=n)):(n=r,(e!==0||a&3)&&(Sf=!0)),r=i}bd!==0&&bd!==5||Ef(e,!1),wf!==0&&(wf=0)}function kf(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,i=e.expirationTimes,a=e.pendingLanes&-62914561;0s)break;var u=c.transferSize,d=c.initiatorType;u&&ap(d)&&(c=c.responseEnd,o+=u*(c$m){s.length=o;break}f=new Promise(jp.bind(f)),s.push(f)}}}if(0`u`?null:document;function Tm(e,t,n){var r=wm;if(r&&typeof t==`string`&&t){var i=an(t);i=`link[rel="`+e+`"][href="`+i+`"]`,typeof n==`string`&&(i+=`[crossorigin="`+n+`"]`),ym.has(i)||(ym.add(i),e={rel:e,crossOrigin:n,href:t},r.querySelector(i)===null&&(t=r.createElement(`link`),np(t,`link`,e),Bt(t),r.head.appendChild(t)))}}function Em(e){xm.D(e),Tm(`dns-prefetch`,e,null)}function Dm(e,t){xm.C(e,t),Tm(`preconnect`,e,t)}function Om(e,t,n){xm.L(e,t,n);var r=wm;if(r&&e&&t){var i=`link[rel="preload"][as="`+an(t)+`"]`;t===`image`&&n&&n.imageSrcSet?(i+=`[imagesrcset="`+an(n.imageSrcSet)+`"]`,typeof n.imageSizes==`string`&&(i+=`[imagesizes="`+an(n.imageSizes)+`"]`)):i+=`[href="`+an(e)+`"]`;var a=i;switch(t){case`style`:a=Pm(e);break;case`script`:a=Rm(e)}if(!(vm.has(a)||(e=w({rel:`preload`,href:t===`image`&&n&&n.imageSrcSet?void 0:e,as:t},n),vm.set(a,e),r.querySelector(i)!==null||t===`style`&&r.querySelector(Fm(a))||t===`script`&&r.querySelector(zm(a))))){var o=r.createElement(`link`);np(o,`link`,e),t===`style`&&(o[Ft]=!0,o.onload=o.onerror=function(){Vt(o)}),Bt(o),r.head.appendChild(o)}}}function km(e,t){xm.m(e,t);var n=wm;if(n&&e){var r=t&&typeof t.as==`string`?t.as:`script`,i=`link[rel="modulepreload"][as="`+an(r)+`"][href="`+an(e)+`"]`,a=i;switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:a=Rm(e)}if(!vm.has(a)&&(e=w({rel:`modulepreload`,href:e},t),vm.set(a,e),n.querySelector(i)===null)){switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:if(n.querySelector(zm(a)))return}r=n.createElement(`link`),np(r,`link`,e),Bt(r),n.head.appendChild(r)}}}function Am(e,t,n){xm.S(e,t,n);var r=wm;if(r&&e){var i=zt(r).hoistableStyles,a=Pm(e);t||=`default`;var o=i.get(a);if(!o){var s={loading:0,preload:null};if(o=r.querySelector(Fm(a)))s.loading=5;else{e=w({rel:`stylesheet`,href:e,"data-precedence":t},n),(n=vm.get(a))&&Hm(e,n);var c=o=r.createElement(`link`);Bt(c),np(c,`link`,e),c._p=new Promise(function(e,t){c.onload=e,c.onerror=t}),c.addEventListener(`load`,function(){s.loading|=1}),c.addEventListener(`error`,function(){s.loading|=2}),s.loading|=4,Vm(o,t,r)}o={type:`stylesheet`,instance:o,count:1,state:s},i.set(a,o)}}}function jm(e,t){xm.X(e,t);var n=wm;if(n&&e){var r=zt(n).hoistableScripts,i=Rm(e),a=r.get(i);a||(a=n.querySelector(zm(i)),a||(e=w({src:e,async:!0},t),(t=vm.get(i))&&Um(e,t),a=n.createElement(`script`),Bt(a),np(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function Mm(e,t){xm.M(e,t);var n=wm;if(n&&e){var r=zt(n).hoistableScripts,i=Rm(e),a=r.get(i);a||(a=n.querySelector(zm(i)),a||(e=w({src:e,async:!0,type:`module`},t),(t=vm.get(i))&&Um(e,t),a=n.createElement(`script`),Bt(a),np(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function Nm(e,t,n,r){var a=(a=Ae.current)?bm(a):null;if(!a)throw Error(i(446));switch(e){case`meta`:case`title`:return null;case`style`:return typeof n.precedence==`string`&&typeof n.href==`string`?(n=Pm(n.href),t=zt(a).hoistableStyles,r=t.get(n),r||(r={type:`style`,instance:null,count:0,state:null},t.set(n,r)),r):{type:`void`,instance:null,count:0,state:null};case`link`:if(n.rel===`stylesheet`&&typeof n.href==`string`&&typeof n.precedence==`string`){e=Pm(n.href);var o=zt(a).hoistableStyles,s=o.get(e);if(s||(a=a.ownerDocument||a,s={type:`stylesheet`,instance:null,count:0,state:{loading:0,preload:null}},o.set(e,s),(o=a.querySelector(Fm(e)))?o._p||(s.instance=o,s.state.loading=5):(o=vm.get(e),o||(o={rel:`preload`,as:`style`,href:n.href,crossOrigin:n.crossOrigin,integrity:n.integrity,media:n.media,hrefLang:n.hrefLang,referrerPolicy:n.referrerPolicy},vm.set(e,o)),Lm(a,e,o,s.state))),t&&r===null)throw Error(i(528,``));return s}if(t&&r!==null)throw Error(i(529,``));return null;case`script`:return t=n.async,n=n.src,typeof n==`string`&&t&&typeof t!=`function`&&typeof t!=`symbol`?(n=Rm(n),t=zt(a).hoistableScripts,r=t.get(n),r||(r={type:`script`,instance:null,count:0,state:null},t.set(n,r)),r):{type:`void`,instance:null,count:0,state:null};default:throw Error(i(444,e))}}function Pm(e){return`href="`+an(e)+`"`}function Fm(e){return`link[rel="stylesheet"][`+e+`]`}function Im(e){return w({},e,{"data-precedence":e.precedence,precedence:null})}function Lm(e,t,n,r){if(t=e.querySelector(`link[rel="preload"][as="style"][`+t+`]`)){if(!0!==t[Ft]){r.loading=1;return}}else t=e.createElement(`link`),t[Ft]=!0,t.onload=t.onerror=Vt.bind(null,t),np(t,`link`,n),Bt(t),e.head.appendChild(t);r.preload=t,t.addEventListener(`load`,function(){return r.loading|=1}),t.addEventListener(`error`,function(){return r.loading|=2})}function Rm(e){return`[src="`+an(e)+`"]`}function zm(e){return`script[async]`+e}function Bm(e,t,n){if(t.count++,t.instance===null)switch(t.type){case`style`:var r=e.querySelector(`style[data-href~="`+an(n.href)+`"]`);if(r)return t.instance=r,Bt(r),r;var a=w({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return r=(e.ownerDocument||e).createElement(`style`),Bt(r),np(r,`style`,a),Vm(r,n.precedence,e),t.instance=r;case`stylesheet`:a=Pm(n.href);var o=e.querySelector(Fm(a));if(o)return t.state.loading|=4,t.instance=o,Bt(o),o;r=Im(n),(a=vm.get(a))&&Hm(r,a),o=(e.ownerDocument||e).createElement(`link`),Bt(o);var s=o;return s._p=new Promise(function(e,t){s.onload=e,s.onerror=t}),np(o,`link`,r),t.state.loading|=4,Vm(o,n.precedence,e),t.instance=o;case`script`:return o=Rm(n.src),(a=e.querySelector(zm(o)))?(t.instance=a,Bt(a),a):(r=n,(a=vm.get(o))&&(r=w({},n),Um(r,a)),e=e.ownerDocument||e,a=e.createElement(`script`),Bt(a),np(a,`link`,r),e.head.appendChild(a),t.instance=a);case`void`:return null;default:throw Error(i(443,t.type))}else t.type===`stylesheet`&&!(t.state.loading&4)&&(r=t.instance,t.state.loading|=4,Vm(r,n.precedence,e));return t.instance}function Vm(e,t,n){for(var r=n.querySelectorAll(`link[rel="stylesheet"][data-precedence],style[data-precedence]`),i=r.length?r[r.length-1]:null,a=i,o=0;o title`):null)}function qm(e,t,n){if(n===1||t.itemProp!=null)return!1;switch(e){case`meta`:case`title`:return!0;case`style`:if(typeof t.precedence!=`string`||typeof t.href!=`string`||t.href===``)break;return!0;case`link`:if(typeof t.rel!=`string`||typeof t.href!=`string`||t.href===``||t.onLoad||t.onError)break;switch(t.rel){case`stylesheet`:return e=t.disabled,typeof t.precedence==`string`&&e==null;default:return!0}case`script`:if(t.async&&typeof t.async!=`function`&&typeof t.async!=`symbol`&&!t.onLoad&&!t.onError&&t.src&&typeof t.src==`string`)return!0}return!1}function Jm(e,t){return e===`img`&&t.src!=null&&t.src!==``&&t.onLoad==null&&t.loading!==`lazy`}function Ym(e){return!(e.type===`stylesheet`&&!(e.state.loading&3))}function Xm(e){return(e.width||100)*(e.height||100)*(typeof devicePixelRatio==`number`?devicePixelRatio:1)*.25}function Zm(e,t){typeof t.decode==`function`&&(e.imgCount++,t.complete||(e.imgBytes+=Xm(t),e.suspenseyImages.push(t)),e=rh.bind(e),t.decode().then(e,e))}function Qm(e,t,n,r){if(n.type===`stylesheet`&&(typeof r.media!=`string`||!1!==matchMedia(r.media).matches)&&!(n.state.loading&4)){if(n.instance===null){var i=Pm(r.href),a=t.querySelector(Fm(i));if(a){t=a._p,typeof t==`object`&&t&&typeof t.then==`function`&&(e.count++,e=nh.bind(e),t.then(e,e)),n.state.loading|=4,n.instance=a,Bt(a);return}a=t.ownerDocument||t,r=Im(r),(i=vm.get(i))&&Hm(r,i),a=a.createElement(`link`),Bt(a);var o=a;o._p=new Promise(function(e,t){o.onload=e,o.onerror=t}),np(a,`link`,r),n.instance=a}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(n,t),(t=n.state.preload)&&!(n.state.loading&3)&&(e.count++,n=nh.bind(e),t.addEventListener(`load`,n),t.addEventListener(`error`,n))}}var $m=0;function eh(e,t){return e.stylesheets&&e.count===0&&ah(e,e.stylesheets),0$m?50:800)+t);return e.unsuspend=n,function(){e.unsuspend=null,clearTimeout(r),clearTimeout(i)}}:null}function th(e){if(e.count===0&&(e.imgCount===0||!e.waitingForImages)){if(e.stylesheets)ah(e,e.stylesheets);else if(e.unsuspend){var t=e.unsuspend;e.unsuspend=null,t()}}}function nh(){this.count--,th(this)}function rh(){this.imgCount--,th(this)}var ih=null;function ah(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,ih=new Map,t.forEach(oh,e),ih=null,nh.call(e))}function oh(e,t){if(!(t.state.loading&4)){var n=ih.get(e);if(n)var r=n.get(null);else{n=new Map,ih.set(e,n);for(var i=e.querySelectorAll(`link[data-precedence],style[data-precedence]`),a=0;a{function n(){if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<`u`&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE==`function`)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=g()})),v=l(p(),1),y=_(),b=(e,t,n)=>Math.max(1,Math.min(t/e.width,n/e.height)),x={chair:{width:.5,height:.5},table:{width:1.8,height:.8},screen:{width:2,height:.2}},S={chair:!1,table:!1,screen:!0},C={width:.5,height:.1};function ee(e,t,n,r,i,a){let o={...e};if(t===`right`)o.width=ne(n-e.x,a.width,i.width-e.x);else if(t===`left`){let t=e.x+e.width;o.x=ne(n,0,t-a.width),o.width=t-o.x}else if(t===`bottom`)o.height=ne(r-e.y,a.height,i.height-e.y);else{let t=e.y+e.height;o.y=ne(r,0,t-a.height),o.height=t-o.y}return o}var te={width:10,height:8},ne=(e,t,n)=>Math.min(Math.max(e,t),n);function w(e,t){return{...e,x:ne(e.x,0,t.width-e.width),y:ne(e.y,0,t.height-e.height)}}function re(e,t){let n=1e-9;return e.xt.x+n&&e.yt.y+n}function ie(e,t){let n=1e-9;return e.x>=-1e-9&&e.y>=-1e-9&&e.x+e.width<=t.width+n&&e.y+e.height<=t.height+n}function ae(e,t,n,r){return ie(e,n)&&!t.some(t=>t.id!==r&&re(e,t))}var oe={room:te,items:[],configs:{chair:{type:`chair`,available:20},table:{type:`table`,available:6,seatsPerUnit:8},screen:{type:`screen`,available:2}}};function se(e,t){switch(t.kind){case`add`:{let{width:n,height:r}=x[t.type],i={id:t.id,type:t.type,x:t.x,y:t.y,width:n,height:r,rotation:0,locked:!1};return{...e,items:[...e.items,i]}}case`move`:return{...e,items:e.items.map(e=>e.id===t.id?{...e,x:t.x,y:t.y}:e)};case`resize`:return{...e,items:e.items.map(e=>e.id===t.id?{...e,x:t.x,y:t.y,width:t.width,height:t.height}:e)};case`setAvailable`:return{...e,configs:{...e.configs,[t.type]:{...e.configs[t.type],available:t.value}}};case`setSeats`:return{...e,configs:{...e.configs,table:{...e.configs.table,seatsPerUnit:t.value}}}}}var T=[`chair`,`table`,`screen`],E={chair:`Chair`,table:`Table`,screen:`Screen`},ce=(e,t)=>e.filter(e=>e.type===t).length,le=(e,t,n)=>n-ce(e,t),ue=o((e=>{var t=Symbol.for(`react.transitional.element`);function n(e,n,r){var i=null;if(r!==void 0&&(i=``+r),n.key!==void 0&&(i=``+n.key),`key`in n)for(var a in r={},n)a!==`key`&&(r[a]=n[a]);else r=n;return n=r.ref,{$$typeof:t,type:e,key:i,ref:n===void 0?null:n,props:r}}e.jsx=n,e.jsxs=n})),D=o(((e,t)=>{t.exports=ue()}))(),de=5,fe={width:`100%`,height:84,boxSizing:`border-box`,background:`#fff`,border:`1px solid #cfcfcf`,borderRadius:8,display:`flex`,flexDirection:`column`,alignItems:`center`,justifyContent:`center`,gap:6,cursor:`grab`,userSelect:`none`,touchAction:`none`,font:`12px system-ui, sans-serif`,color:`#444`};function pe({size:e=36}){return(0,D.jsxs)(`svg`,{width:e,height:e,viewBox:`0 0 36 36`,children:[(0,D.jsx)(`rect`,{x:`4`,y:`4`,width:`28`,height:`28`,rx:`3`,fill:`#8fb4d9`,stroke:`#3b3b3b`,strokeWidth:`1.5`}),(0,D.jsx)(`rect`,{x:`4`,y:`4`,width:`28`,height:`8`,rx:`3`,fill:`#4a6f96`})]})}function me({size:e=36}){return(0,D.jsx)(`svg`,{width:e,height:e,viewBox:`0 0 36 36`,children:(0,D.jsx)(`rect`,{x:`2`,y:`9`,width:`32`,height:`18`,rx:`3`,fill:`#d9b382`,stroke:`#3b3b3b`,strokeWidth:`1.5`})})}var he=152,ge=600;function _e({type:e,remaining:t,onStartDrag:n,onOpenMenu:r}){let i=t<=0,a=t=>{t.preventDefault();let{clientX:a,clientY:o}=t,s=!1,c=t=>{s||i||Math.hypot(t.clientX-a,t.clientY-o)>=de&&(s=!0,u(),n(e,t.clientX,t.clientY))},l=t=>{u(),(Math.hypot(t.clientX-a,t.clientY-o){window.removeEventListener(`pointermove`,c),window.removeEventListener(`pointerup`,l)};window.addEventListener(`pointermove`,c),window.addEventListener(`pointerup`,l)};return(0,D.jsxs)(`div`,{role:`button`,"aria-label":`${e} (${t} remaining)`,style:{...fe,position:`relative`,opacity:i?.45:1,filter:i?`grayscale(1)`:void 0,cursor:i?`pointer`:`grab`},onPointerDown:a,children:[(0,D.jsx)(`span`,{style:{position:`absolute`,top:6,right:6,minWidth:20,height:20,padding:`0 6px`,boxSizing:`border-box`,borderRadius:10,background:i?`#888`:`#2b2b2b`,color:`#fff`,font:`600 11px/20px system-ui, sans-serif`,textAlign:`center`},children:t}),(()=>{let t=ye[e];return(0,D.jsx)(t,{})})(),E[e]]})}function ve({size:e=36}){return(0,D.jsxs)(`svg`,{width:e,height:e,viewBox:`0 0 36 36`,children:[(0,D.jsx)(`rect`,{x:`2`,y:`14`,width:`32`,height:`8`,rx:`2`,fill:`#2d3748`,stroke:`#3b3b3b`,strokeWidth:`1.5`}),(0,D.jsx)(`rect`,{x:`4`,y:`16`,width:`28`,height:`4`,fill:`#63b3ed`})]})}var ye={chair:pe,table:me,screen:ve};function be({remaining:e,onStartDrag:t,onOpenMenu:n,panel:r}){let[i,a]=(0,v.useState)(264);return(0,D.jsxs)(`aside`,{style:{position:`relative`,width:i,boxSizing:`border-box`,flexShrink:0,padding:16,display:`grid`,gridTemplateColumns:`repeat(auto-fill, minmax(84px, 1fr))`,alignContent:`start`,gap:12,borderRight:`1px solid #d4d4d4`,background:`#ececec`},children:[r??T.map(r=>(0,D.jsx)(_e,{type:r,remaining:e[r],onStartDrag:t,onOpenMenu:n},r)),(0,D.jsx)(`div`,{onPointerDown:e=>{e.preventDefault();let t=e.clientX,n=i,r=e=>a(Math.min(ge,Math.max(he,n+e.clientX-t))),o=()=>{window.removeEventListener(`pointermove`,r),window.removeEventListener(`pointerup`,o)};window.addEventListener(`pointermove`,r),window.addEventListener(`pointerup`,o)},style:{position:`absolute`,top:0,right:-3,width:6,height:`100%`,cursor:`col-resize`,touchAction:`none`}})]})}var xe=Math.PI/180;function Se(){return typeof window<`u`&&({}.toString.call(window)===`[object Window]`||{}.toString.call(window)===`[object global]`)}var O=typeof global<`u`?global:typeof window<`u`?window:typeof WorkerGlobalScope<`u`?self:{},k={_global:O,version:`10.9.0`,isBrowser:Se(),isUnminified:/param/.test(function(e){}.toString()),dblClickWindow:400,getAngle(e){return k.angleDeg?e*xe:e},enableTrace:!1,pointerEventsEnabled:!0,autoDrawEnabled:!0,hitOnDragEnabled:!1,capturePointerEventsEnabled:!1,_renderBackend:`web`,legacyTextRendering:!1,pixelRatio:typeof window<`u`&&window.devicePixelRatio||1,dragDistance:3,angleDeg:!0,showWarnings:!0,dragButtons:[0,1],isDragging(){return k.DD.isDragging},isTransforming(){return k.Transformer?.isTransforming()??!1},isDragReady(){return!!k.DD.node},releaseCanvasOnDestroy:!0,document:O.document,_injectGlobal(e){O.Konva!==void 0&&console.error(`Several Konva instances detected. It is not recommended to use multiple Konva instances in the same environment.`),O.Konva=e}},Ce=new Set,we=(e,t=!1)=>{k[e.prototype.getClassName()]=e,t&&Ce.add(e)};k._injectGlobal(k);var Te=`Konva.js unsupported environment. + +Looks like you are trying to use Konva.js in Node.js environment (or in a Web Worker), because "document" object is undefined. + +To use Konva.js in Node.js environment, you need to use the "canvas-backend" or "skia-backend" module. + +bash: npm install canvas +js: import "konva/canvas-backend"; + +or + +bash: npm install skia-canvas +js: import "konva/skia-backend"; +`,Ee=()=>{if(typeof document>`u`)throw Error(Te)},A=class e{constructor(e){this.dirty=!1,this.m=e?e.slice():[1,0,0,1,0,0]}reset(){this.m[0]=1,this.m[1]=0,this.m[2]=0,this.m[3]=1,this.m[4]=0,this.m[5]=0}copy(){return new e(this.m)}copyInto(e){e.m[0]=this.m[0],e.m[1]=this.m[1],e.m[2]=this.m[2],e.m[3]=this.m[3],e.m[4]=this.m[4],e.m[5]=this.m[5]}point(e){let t=this.m;return{x:t[0]*e.x+t[2]*e.y+t[4],y:t[1]*e.x+t[3]*e.y+t[5]}}_getTransformedRect(e){let[t,n,r,i,a,o]=this.m,s=e.x,c=e.y,l=e.x+e.width,u=e.y+e.height,d=[t*s+r*c+a,t*l+r*c+a,t*l+r*u+a,t*s+r*u+a],f=[n*s+i*c+o,n*l+i*c+o,n*l+i*u+o,n*s+i*u+o],p=Math.min(d[0],d[1],d[2],d[3]),m=Math.min(f[0],f[1],f[2],f[3]);return{x:p,y:m,width:Math.max(d[0],d[1],d[2],d[3])-p,height:Math.max(f[0],f[1],f[2],f[3])-m}}translate(e,t){return this.m[4]+=this.m[0]*e+this.m[2]*t,this.m[5]+=this.m[1]*e+this.m[3]*t,this}scale(e,t){return this.m[0]*=e,this.m[1]*=e,this.m[2]*=t,this.m[3]*=t,this}rotate(e){let t=Math.cos(e),n=Math.sin(e),r=this.m[0]*t+this.m[2]*n,i=this.m[1]*t+this.m[3]*n,a=this.m[0]*-n+this.m[2]*t,o=this.m[1]*-n+this.m[3]*t;return this.m[0]=r,this.m[1]=i,this.m[2]=a,this.m[3]=o,this}getTranslation(){return{x:this.m[4],y:this.m[5]}}skew(e,t){let n=this.m[0]+this.m[2]*t,r=this.m[1]+this.m[3]*t,i=this.m[2]+this.m[0]*e,a=this.m[3]+this.m[1]*e;return this.m[0]=n,this.m[1]=r,this.m[2]=i,this.m[3]=a,this}multiply(e){let t=this.m[0]*e.m[0]+this.m[2]*e.m[1],n=this.m[1]*e.m[0]+this.m[3]*e.m[1],r=this.m[0]*e.m[2]+this.m[2]*e.m[3],i=this.m[1]*e.m[2]+this.m[3]*e.m[3],a=this.m[0]*e.m[4]+this.m[2]*e.m[5]+this.m[4],o=this.m[1]*e.m[4]+this.m[3]*e.m[5]+this.m[5];return this.m[0]=t,this.m[1]=n,this.m[2]=r,this.m[3]=i,this.m[4]=a,this.m[5]=o,this}isInvertible(){return this.m[0]*this.m[3]-this.m[1]*this.m[2]!==0}invert(){let e=1/(this.m[0]*this.m[3]-this.m[1]*this.m[2]),t=this.m[3]*e,n=-this.m[1]*e,r=-this.m[2]*e,i=this.m[0]*e,a=e*(this.m[2]*this.m[5]-this.m[3]*this.m[4]),o=e*(this.m[1]*this.m[4]-this.m[0]*this.m[5]);return this.m[0]=t,this.m[1]=n,this.m[2]=r,this.m[3]=i,this.m[4]=a,this.m[5]=o,this}getMatrix(){return this.m}decompose(){let e=this.m[0],t=this.m[1],n=this.m[2],r=this.m[3],i=this.m[4],a=this.m[5],o=e*r-t*n,s={x:i,y:a,rotation:0,scaleX:0,scaleY:0,skewX:0,skewY:0};if(e!=0||t!=0){let i=Math.sqrt(e*e+t*t);s.rotation=t>0?Math.acos(e/i):-Math.acos(e/i),s.scaleX=i,s.scaleY=o/i,s.skewX=o&&(e*n+t*r)/o,s.skewY=0}else if(n!=0||r!=0){let i=Math.sqrt(n*n+r*r);s.rotation=Math.PI/2-(r>0?Math.acos(-n/i):-Math.acos(n/i)),s.scaleX=o/i,s.scaleY=i,s.skewX=0,s.skewY=o&&(e*n+t*r)/o}return s.rotation=j._getRotation(s.rotation),s}},De=`[object Array]`,Oe=`[object Number]`,ke=`[object String]`,Ae=`[object Boolean]`,je=Math.PI/180,Me=180/Math.PI,Ne=`#`,Pe=``,Fe=`0`,Ie=`Konva warning: `,Le=`Konva error: `,Re={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],transparent:[0,0,0,0],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},ze=null,Be=typeof window<`u`?window:{},Ve=new WeakMap,He=(e,t)=>{typeof e.requestAnimationFrame==`function`?e.requestAnimationFrame(t):typeof requestAnimationFrame<`u`?requestAnimationFrame(t):setTimeout(t,16)},Ue=new Map,We=Object.getPrototypeOf(Int8Array),Ge=e=>{let t=e.trim();return t.indexOf(`,`)===-1?t.split(/\s*\/\s*|\s+/):t.split(/\s*,\s*/)},Ke=`[+-]?(?:\\d+\\.?\\d*|\\.\\d+)(?:e[+-]?\\d+)?`,qe=RegExp(`^(${Ke})(%?)$`,`i`),Je=(e,t)=>{let n=qe.exec(e);if(!n)return NaN;let r=n[2]?Number(n[1])/100*t:Number(n[1]);return Math.min(Math.max(r,0),t)},Ye=/^#[0-9a-f]+$/i,Xe=RegExp(`^(${Ke})(deg|grad|rad|turn)?$`,`i`),Ze={deg:1,grad:.9,rad:Me,turn:360};function Qe(e,t){return Math.min(Math.max(e||0,0),t)}var j={_isElement(e){return!!(e&&e.nodeType==1)},_isFunction(e){return!!(e&&e.constructor&&e.call&&e.apply)},_isPlainObject(e){return!!e&&e.constructor===Object},_isArray(e){return Object.prototype.toString.call(e)===De},_isNumber(e){return Object.prototype.toString.call(e)===Oe&&!isNaN(e)&&isFinite(e)},_isString(e){return Object.prototype.toString.call(e)===ke},_isBoolean(e){return Object.prototype.toString.call(e)===Ae},isObject(e){return e instanceof Object},isValidSelector(e){if(typeof e!=`string`)return!1;let t=e[0];return t===`#`||t===`.`||t===t.toUpperCase()},_sign(e){return e===0||e>0?1:-1},requestAnimFrame(e,t){let n=t&&!t.closed&&t||Be,r=Ve.get(n);r||(r=[],Ve.set(n,r),He(n,function(){Ve.delete(n),r.forEach(function(e){e()})})),r.push(e)},createCanvasElement(){Ee();let e=document.createElement(`canvas`);try{e.style=e.style||{}}catch{}return e},createImageElement(){return Ee(),document.createElement(`img`)},_urlToImage(e,t,n){let r=j.createImageElement();r.onload=function(){t(r)},r.onerror=e=>{n?.(e instanceof Error?e:Error(`Unable to load image.`))},r.src=e},_rgbToHex(e,t,n){return((1<<24)+(e<<16)+(t<<8)+n).toString(16).slice(1)},_hexToRgb(e){e=e.replace(Ne,Pe);let t=parseInt(e,16);return{r:t>>16&255,g:t>>8&255,b:t&255}},getRandomColor(){let e=(Math.random()*16777215|0).toString(16);for(;e.length<6;)e=Fe+e;return Ne+e},isCanvasFarblingActive(){if(ze!==null)return ze;if(typeof document>`u`)return ze=!1,!1;let e=this.createCanvasElement();e.width=10,e.height=10;let t=e.getContext(`2d`,{willReadFrequently:!0});t.clearRect(0,0,10,10),t.fillStyle=`#282828`,t.fillRect(0,0,10,10);let n=t.getImageData(0,0,10,10).data,r=!1;for(let e=0;e<100;e++)if(n[e*4]!==40||n[e*4+1]!==40||n[e*4+2]!==40||n[e*4+3]!==255){r=!0;break}return ze=r,this.releaseCanvas(e),ze},getHitColor(){let e=()=>Math.random()*256|0;return this.getHitColorKey(e(),e(),e())},getHitColorKey(e,t,n){let r=this.isCanvasFarblingActive()?5:3,i=e=>Math.round(e/r)*r;return Ne+this._rgbToHex(i(e),i(t),i(n))},getSnappedHexColor(e){let{r:t,g:n,b:r}=this._hexToRgb(e);return this.getHitColorKey(t,n,r)},getRGB(e){let{r:t=0,g:n=0,b:r=0}=j.colorToRGBA(e)??{};return{r:t,g:n,b:r}},colorToRGBA(e){e=(e||``).trim()||`black`;let t=j._namedColorToRBA(e)||j._hex3ColorToRGBA(e)||j._hex4ColorToRGBA(e)||j._hex6ColorToRGBA(e)||j._hex8ColorToRGBA(e)||j._rgbColorToRGBA(e)||j._hslColorToRGBA(e);if(t&&[t.r,t.g,t.b,t.a].every(j._isNumber))return t},_namedColorToRBA(e){let t=Re[e.toLowerCase()];return t?{r:t[0],g:t[1],b:t[2],a:t.length>3?t[3]:1}:null},_rgbColorToRGBA(e){let t=/^rgba?\(([^)]*)\)$/i.exec(e);if(!t)return;let n=Ge(t[1]);if(!(n.length<3||n.length>4))return{r:Je(n[0],255),g:Je(n[1],255),b:Je(n[2],255),a:n.length>3?Je(n[3],1):1}},_hex8ColorToRGBA(e){if(e.length===9&&Ye.test(e))return{r:parseInt(e.slice(1,3),16),g:parseInt(e.slice(3,5),16),b:parseInt(e.slice(5,7),16),a:parseInt(e.slice(7,9),16)/255}},_hex6ColorToRGBA(e){if(e.length===7&&Ye.test(e))return{r:parseInt(e.slice(1,3),16),g:parseInt(e.slice(3,5),16),b:parseInt(e.slice(5,7),16),a:1}},_hex4ColorToRGBA(e){if(e.length===5&&Ye.test(e))return{r:parseInt(e[1]+e[1],16),g:parseInt(e[2]+e[2],16),b:parseInt(e[3]+e[3],16),a:parseInt(e[4]+e[4],16)/255}},_hex3ColorToRGBA(e){if(e.length===4&&Ye.test(e))return{r:parseInt(e[1]+e[1],16),g:parseInt(e[2]+e[2],16),b:parseInt(e[3]+e[3],16),a:1}},_hslColorToRGBA(e){let t=/^hsla?\(([^)]*)\)$/i.exec(e);if(!t)return;let n=Ge(t[1]);if(n.length<3||n.length>4)return;let r=Xe.exec(n[0]);if(!r)return;let i=r[2],a=Number(r[1])*(i?Ze[i.toLowerCase()]:1);if(!isFinite(a))return;let o=(a%360+360)%360/360,s=Je(n[1],100)/100,c=Je(n[2],100)/100,l=n.length>3?Je(n[3],1):1,u=c<.5?c*(1+s):c+s-c*s,d=2*c-u,f=[0,0,0];for(let e=0;e<3;e++){let t=o+1/3*-(e-1);t<0&&t++,t>1&&t--;let n;n=6*t<1?d+(u-d)*6*t:2*t<1?u:3*t<2?d+(u-d)*(2/3-t)*6:d,f[e]=n*255}return{r:Math.round(f[0]),g:Math.round(f[1]),b:Math.round(f[2]),a:l}},_getPointsRect(e){let t=1/0,n=1/0,r=-1/0,i=-1/0;for(let a=0;ae.x+e.width||t.x+t.widthe.y+e.height||t.y+t.heighttypeof e==`object`)?e.map(j._cloneValue):e.slice():j._isPlainObject(e)?j.cloneObject(e):e instanceof We?e.slice():e},cloneArray(e){return e.slice(0)},degToRad(e){return e*je},radToDeg(e){return e*Me},_getRotation(e){return k.angleDeg?j.radToDeg(e):e},_capitalize(e){let t=Ue.get(e);if(t!==void 0)return t;let n=e.charAt(0).toUpperCase()+e.slice(1);return Ue.set(e,n),n},throw(e){throw Error(Le+e)},error(e){console.error(Le+e)},warn(e){k.showWarnings&&console.warn(Ie+e)},_batchEvents(e,t){if(!e)return t();let n=!1,r=!0;try{e(()=>{n||!r?j.warn(`eventBatchFunc must call its argument exactly once, synchronously.`):(n=!0,t())})}finally{r=!1,n||j.warn(`eventBatchFunc must call its argument synchronously.`)}},each(e,t){for(let n in e)t(n,e[n])},_inRange(e,t,n){return t<=e&&e1?(o=n,s=r,c=(n-i)*(n-i)+(r-a)*(r-a)):(o=e+u*(n-e),s=t+u*(r-t),c=(o-i)*(o-i)+(s-a)*(s-a))}return[o,s,c]},_getProjectionToLine(e,t,n){let r=j.cloneObject(e),i=Number.MAX_VALUE;return t.forEach(function(a,o){if(!n&&o===t.length-1)return;let s=t[(o+1)%t.length],c=j._getProjectionToSegment(a.x,a.y,s.x,s.y,e.x,e.y),l=c[0],u=c[1],d=c[2];dt.length){let n=t;t=e,e=n}for(let t=0;t=0?`pointer`:e.indexOf(`touch`)>=0?`touch`:`mouse`},_getFirstPointerId(e){return e.touches?e.changedTouches[0].identifier:e.pointerId??999},releaseCanvas(...e){k.releaseCanvasOnDestroy&&e.forEach(e=>{e.width=0,e.height=0})},_cornerRadii(e,t,n){let r=Math.min(t,n)/2;if(typeof e==`number`){let t=Qe(e,r);return[t,t,t,t]}return[Qe(e[0],r),Qe(e[1],r),Qe(e[2],r),Qe(e[3],r)]},drawRoundedRectPath(e,t,n,r){let i=t<0?t:0,a=n<0?n:0;t=Math.abs(t),n=Math.abs(n);let[o,s,c,l]=j._cornerRadii(r,t,n);e.moveTo(i+o,a),e.lineTo(i+t-s,a),e.arc(i+t-s,a+s,s,Math.PI*3/2,0,!1),e.lineTo(i+t,a+n-c),e.arc(i+t-c,a+n-c,c,0,Math.PI/2,!1),e.lineTo(i+l,a+n),e.arc(i+l,a+n-l,l,Math.PI/2,Math.PI,!1),e.lineTo(i,a+o),e.arc(i+o,a+o,o,Math.PI,Math.PI*3/2,!1)},drawRoundedPolygonPath(e,t,n,r,i){r=Math.abs(r);for(let a=0;atypeof e==`number`?Math.floor(e):e)),i+=tt+c.join(et)+nt)):(i+=o.property,e||(i+=at+o.val)),i+=rt;return i}clearTrace(){this.traceArr=[]}_trace(e){let t=this.traceArr,n;t.push(e),n=t.length,n>=ct&&t.shift()}reset(){let e=this.getCanvas().getPixelRatio();this.setTransform(1*e,0,0,1*e,0,0)}getCanvas(){return this.canvas}clear(e){let t=this.getCanvas();e?this.clearRect(e.x||0,e.y||0,e.width||0,e.height||0):this.clearRect(0,0,t.getWidth()/t.pixelRatio,t.getHeight()/t.pixelRatio)}_drawDeviceBuffer(e){let{x:t,y:n,width:r,height:i}=e._isolationRect;this.setTransform(1,0,0,1,0,0),this.imageSmoothingEnabled=!1,this.drawImage(e._canvas,0,0,r,i,t,n,r,i)}_applyLineCap(e){let t=e.attrs.lineCap;t&&this.setAttr(`lineCap`,t)}_getOpacity(e){if(!this._opacityRoot)return e.getAbsoluteOpacity();let t=e.opacity(),n=e.parent;for(;n&&n!==this._opacityRoot;)t*=n.opacity(),n=n.parent;return t}_applyOpacity(e){let t=this._getOpacity(e);t!==1&&this.setAttr(`globalAlpha`,t)}_applyLineJoin(e){let t=e.attrs.lineJoin;t&&this.setAttr(`lineJoin`,t)}_applyMiterLimit(e){let t=e.attrs.miterLimit;t!=null&&this.setAttr(`miterLimit`,t)}setAttr(e,t){this._context[e]=t}arc(e,t,n,r,i,a){this._context.arc(e,t,n,r,i,a)}arcTo(e,t,n,r,i){this._context.arcTo(e,t,n,r,i)}beginPath(){this._context.beginPath()}bezierCurveTo(e,t,n,r,i,a){this._context.bezierCurveTo(e,t,n,r,i,a)}clearRect(e,t,n,r){this._context.clearRect(e,t,n,r)}clip(...e){this._context.clip.apply(this._context,e)}closePath(){this._context.closePath()}createImageData(e,t){let n=arguments;if(n.length===2)return this._context.createImageData(e,t);if(n.length===1)return this._context.createImageData(e)}createLinearGradient(e,t,n,r){return this._context.createLinearGradient(e,t,n,r)}createPattern(e,t){return this._context.createPattern(e,t)}createRadialGradient(e,t,n,r,i,a){return this._context.createRadialGradient(e,t,n,r,i,a)}drawImage(e,t,n,r,i,a,o,s,c){let l=arguments,u=this._context;l.length===3?u.drawImage(e,t,n):l.length===5?u.drawImage(e,t,n,r,i):l.length===9&&u.drawImage(e,t,n,r,i,a,o,s,c)}ellipse(e,t,n,r,i,a,o,s){this._context.ellipse(e,t,n,r,i,a,o,s)}isPointInPath(e,t,n,r){return n?this._context.isPointInPath(n,e,t,r):this._context.isPointInPath(e,t,r)}fill(...e){this._context.fill.apply(this._context,e)}fillRect(e,t,n,r){this._context.fillRect(e,t,n,r)}strokeRect(e,t,n,r){this._context.strokeRect(e,t,n,r)}fillText(e,t,n,r){r?this._context.fillText(e,t,n,r):this._context.fillText(e,t,n)}measureText(e){return this._context.measureText(e)}getImageData(e,t,n,r){return this._context.getImageData(e,t,n,r)}lineTo(e,t){this._context.lineTo(e,t)}moveTo(e,t){this._context.moveTo(e,t)}rect(e,t,n,r){this._context.rect(e,t,n,r)}roundRect(e,t,n,r,i){this._context.roundRect(e,t,n,r,i)}putImageData(e,t,n){this._context.putImageData(e,t,n)}quadraticCurveTo(e,t,n,r){this._context.quadraticCurveTo(e,t,n,r)}restore(){this._context.restore()}rotate(e){this._context.rotate(e)}save(){this._context.save()}scale(e,t){this._context.scale(e,t)}setLineDash(e){this._context.setLineDash(e)}getLineDash(){return this._context.getLineDash()}setTransform(e,t,n,r,i,a){this._context.setTransform(e,t,n,r,i,a)}stroke(e){e?this._context.stroke(e):this._context.stroke()}strokeText(e,t,n,r){this._context.strokeText(e,t,n,r)}transform(e,t,n,r,i,a){this._context.transform(e,t,n,r,i,a)}translate(e,t){this._context.translate(e,t)}_enableTrace(){let e=this,t=ot.length,n=this.setAttr,r,i,a=function(t){let n=e[t],r;e[t]=function(){return i=$e(Array.prototype.slice.call(arguments,0)),r=n.apply(e,arguments),e._trace({method:t,args:i}),r}};for(r=0;r0&&f>0||(l=u=0,d=f=1);let p=this._isolationCanvas||=new e({width:0,height:0,pixelRatio:this.pixelRatio});if(p.widthMath.min(r,Math.ceil((n4*t.width*t.height?e._isolationLowFrames+1:0,e._isolationLowFrames>=10?this._releaseIsolationCanvas():(t.width=t.height=0,e._trimIsolationCanvas())}_releaseIsolationCanvas(){let e=this._isolationCanvas;e&&(e._releaseIsolationCanvas(),j.releaseCanvas(e._canvas),this._isolationCanvas=void 0)}setSize(e,t){this._releaseIsolationCanvas(),super.setSize(e,t)}constructor(e={width:0,height:0,willReadFrequently:!1}){super(e),this._isolationPeak={width:0,height:0},this._isolationLowFrames=0,this.context=new ft(this,{willReadFrequently:e.willReadFrequently}),this.setSize(e.width,e.height)}},gt=class extends mt{constructor(e={width:0,height:0}){super(e),this.hitCanvas=!0,this.context=new pt(this),this.context.imageSmoothingEnabled=!1,this.setSize(e.width,e.height)}},M={get isDragging(){let e=!1;return M._dragElements.forEach(t=>{t.dragStatus===`dragging`&&(e=!0)}),e},get node(){let e;for(let t of M._dragElements.values()){if(t.dragStatus===`dragging`)return t.node;e=t.node}return e},_dragElements:new Map,_listenToWindow(e){let t=t=>M._endDragBefore(t,e),n=t=>M._batchEvents(()=>M._drag(t,e),e),r=e=>M._batchEvents(()=>M._endDragAfter(e));e.addEventListener(`mouseup`,t,!0),e.addEventListener(`touchend`,t,!0),e.addEventListener(`touchcancel`,t,!0),e.addEventListener(`mousemove`,n),e.addEventListener(`touchmove`,n),e.addEventListener(`mouseup`,r,!1),e.addEventListener(`touchend`,r,!1),e.addEventListener(`touchcancel`,r,!1)},_batchEvents(e,t){if(!M._dragElements.size)return;let n=new Set;for(let{node:e}of M._dragElements.values()){let r=e.getStage();if(!r||t&&r._getOwnerWindow()!==t)continue;let i=r.eventBatchFunc();i&&n.add(i)}let r=e;for(let e of n){let t=r;r=()=>j._batchEvents(e,t)}r()},_drag(e,t){let n=[],r=new Set;M._dragElements.forEach((i,a)=>{let{node:o}=i,s=o.getStage();if(t&&s._getOwnerWindow()!==t||(r.has(s)||(s.setPointersPositions(e),r.add(s)),i.pointerEventType&&i.pointerEventType!==s._pointerEventType))return;i.pointerId===void 0&&(i.pointerId=j._getFirstPointerId(e),i.pointerEventType=s._pointerEventType,i.dragStatus===`dragging`&&s._cancelClick(i.pointerId,i.pointerEventType));let c=s._changedPointerPositions.find(e=>e.id===i.pointerId);if(c){if(i.dragStatus!==`dragging`){let t=o.dragDistance();if(Math.max(Math.abs(c.x-i.startPointerPos.x),Math.abs(c.y-i.startPointerPos.y)){t.getStage()&&t.fire(`dragmove`,{type:`dragmove`,target:t,evt:e},!0)})},_endDragBefore(e,t,n){let r=[],i=new Set;M._dragElements.forEach((a,o)=>{let{node:s}=a;if(n&&a!==n&&a.pointerId!==n.pointerId)return;let c=s.getStage();if(e&&!i.has(c)&&(!t||c._getOwnerWindow()===t)&&(c.setPointersPositions(e),i.add(c)),n||(!e||!a.pointerEventType||a.pointerEventType===j._getEventType(e.type))&&(a.pointerId===void 0||c._changedPointerPositions.some(e=>e.id===a.pointerId))){if(a.dragStatus===`ready`)M._dragElements.delete(o);else{c._cancelClick(a.pointerId,a.pointerEventType),a.dragStatus=`stopped`;let e=s.getLayer()||c;e&&r.indexOf(e)===-1&&r.push(e)}}}),r.forEach(e=>{e.draw()})},_endDragAfter(e,t){M._dragElements.forEach((n,r)=>{n.dragStatus!==`stopped`||t&&n!==t&&n.pointerId!==t.pointerId||(n.node.fire(`dragend`,{type:`dragend`,target:n.node,evt:e},!0),n.dragStatus!==`dragging`&&M._dragElements.delete(r))})}},_t=new Map,vt=k._global.PointerEvent!==void 0;function yt(e,t){let n=_t.get(e);return n&&(!t||n.stage===t)?n.shape:void 0}function bt(e,t,n){e._fire(t,{evt:new PointerEvent(t,{pointerId:n}),pointerId:n})}function xt(e,t){return _t.get(e)?.shape===t}function St(e,t){var n;wt(e);let r=t.getStage();if(r&&(_t.set(e,{shape:t,stage:r}),vt)){try{(n=r.content)==null||n.setPointerCapture(e)}catch{}bt(t,`gotpointercapture`,e)}}function Ct(e){_t.forEach(({shape:t,stage:n},r)=>{(t===e||n===e)&&wt(r)})}function wt(e,t){var n;let r=_t.get(e);if(!r||t&&r.shape!==t)return;let{shape:i,stage:a}=r;if(_t.delete(e),vt){try{(n=a.content)==null||n.releasePointerCapture(e)}catch{}bt(i,`lostpointercapture`,e)}}function Tt(e){return j._isString(e)?`"`+e+`"`:Object.prototype.toString.call(e)===`[object Number]`||j._isBoolean(e)?e:Object.prototype.toString.call(e)}function Et(e){return e>255?255:e<0?0:Math.round(e)}function N(){if(k.isUnminified)return function(e,t){return j._isNumber(e)||j.warn(Tt(e)+` is a not valid value for "`+t+`" attribute. The value should be a number.`),e}}function Dt(e){if(k.isUnminified)return function(t,n){let r=j._isNumber(t),i=j._isArray(t)&&t.length==e;return!r&&!i&&j.warn(Tt(t)+` is a not valid value for "`+n+`" attribute. The value should be a number or Array(`+e+`)`),t}}function Ot(){if(k.isUnminified)return function(e,t){return j._isNumber(e)||e===`auto`||j.warn(Tt(e)+` is a not valid value for "`+t+`" attribute. The value should be a number or "auto".`),e}}function kt(){if(k.isUnminified)return function(e,t){return j._isString(e)||j.warn(Tt(e)+` is a not valid value for "`+t+`" attribute. The value should be a string.`),e}}function At(){if(k.isUnminified)return function(e,t){let n=j._isString(e),r=Object.prototype.toString.call(e)===`[object CanvasGradient]`||e&&e.addColorStop;return n||r||j.warn(Tt(e)+` is a not valid value for "`+t+`" attribute. The value should be a string or a native gradient.`),e}}function jt(){if(k.isUnminified)return function(e,t){return e instanceof We||(j._isArray(e)?e.forEach(function(e){j._isNumber(e)||j.warn(`"`+t+`" attribute has non numeric element `+e+`. Make sure that all elements are numbers.`)}):j.warn(Tt(e)+` is a not valid value for "`+t+`" attribute. The value should be a array of numbers.`)),e}}function Mt(){if(k.isUnminified)return function(e,t){return e!==!0&&e!==!1&&j.warn(Tt(e)+` is a not valid value for "`+t+`" attribute. The value should be a boolean.`),e}}function Nt(e){if(k.isUnminified)return function(t,n){return t==null||j.isObject(t)||j.warn(Tt(t)+` is a not valid value for "`+n+`" attribute. The value should be an object with properties `+e),t}}var Pt=`get`,Ft=`set`,P={addGetterSetter(e,t,n,r,i){P.addGetter(e,t,n),P.addSetter(e,t,r,i),P.addOverloadedGetterSetter(e,t)},addGetter(e,t,n){let r=Pt+j._capitalize(t),i=Array.isArray(n),a=function(){let e=this.attrs[t];return e===void 0?i?n.slice():n:e};a._def=n,e.prototype[r]=e.prototype[r]||a},addSetter(e,t,n,r){let i=Ft+j._capitalize(t);e.prototype[i]||P.overWriteSetter(e,t,n,r)},overWriteSetter(e,t,n,r){let i=Ft+j._capitalize(t);e.prototype[i]=function(e){return n&&e!=null&&(e=n.call(this,e,t)),this._setAttr(t,e),r&&r.call(this),this}},addComponentsGetterSetter(e,t,n,r,i){let a=n.length,o=j._capitalize,s=Pt+o(t),c=Ft+o(t),l=n.map(e=>t+o(e)),u=l.map(e=>Pt+o(e));e.prototype[s]=function(){let e={};for(let t=0;t{this._setAttr(t+o(e),void 0)}),this._fireChangeEvent(t,a,e),i&&i.call(this),this},P.addOverloadedGetterSetter(e,t)},addOverloadedGetterSetter(e,t){let n=j._capitalize(t),r=Ft+n,i=Pt+n,a=function(){return arguments.length?(this[r](arguments[0]),this):this[i]()};e.prototype[t]=a},backCompat(e,t){j.each(t,function(t,n){let r=e.prototype[n],i=Pt+j._capitalize(t),a=Ft+j._capitalize(t);function o(){return j.error(`"`+t+`" method is deprecated and will be removed soon. Use ""`+n+`" instead.`),r.apply(this,arguments)}e.prototype[t]=o,e.prototype[i]=o,e.prototype[a]=o})},afterSetFilter(){this._filterUpToDate=!1}};function It(e){let t=[],n=/(\w+)\(([^)]*)\)/g,r;for(;(r=n.exec(e))!==null;){let[,e,n]=r;if(![`blur`,`brightness`,`contrast`,`grayscale`,`sepia`,`invert`].includes(e)){j.warn(`CSS filter "${e}" is not supported in fallback mode. Consider using function filters for better compatibility.`);continue}let i=n.trim()===``?e===`blur`?0:1:parseFloat(n)/(n.includes(`%`)?100:1);t.push({name:e,value:i})}return function(e,n=1){for(let{name:r,value:i}of t){if([`grayscale`,`sepia`,`invert`].includes(r)){let t=Math.min(1,Math.max(0,i)),n=e.data;for(let e=0;e0?e._pendingUpdates.add(t):t()}static _flushUpdateBatch(){if(e._updateBatchDepth>0)return;let t=e._pendingUpdates;t.size&&(e._pendingUpdates=new Set,t.forEach(e=>e()))}static _updateBatch(t){e._updateBatchDepth++;try{return t()}finally{e._updateBatchDepth--,e._flushUpdateBatch()}}static _beginUpdateBatch(){e._updateBatchDepth++;let t=!1;return()=>{t||(t=!0,e._updateBatchDepth--,e._flushUpdateBatch())}}clearCache(){return this._releaseCanvasCache(),this._clearSelfAndDescendantCache(),this._requestDraw(),this}cache(e){let t=e||{},n={};if(t.x===void 0||t.y===void 0||t.width===void 0||t.height===void 0){let e=this._isUnderCache;this._isUnderCache=!0,n=this.getClientRect({skipTransform:!0,relativeTo:this.getParent()||void 0}),this._isUnderCache=e}let r=t.x===void 0?Math.floor(n.x):t.x,i=t.y===void 0?Math.floor(n.y):t.y,a=Math.ceil(t.width||n.x+n.width-r),o=Math.ceil(t.height||n.y+n.height-i),s=t.pixelRatio,c=t.offset||0,l=t.drawBorder||!1,u=t.hitCanvasPixelRatio||1;if(a<=0||o<=0||!isFinite(r+i+a+o))return j.error(`Can not cache the node. Its size is 0 or its bounds are not finite numbers (${r}, ${i}, ${a}x${o}). Caching is skipped.`),this;a+=c*2,o+=c*2,r-=c,i-=c;let d=new ht({pixelRatio:s,width:a,height:o}),f=new ht({pixelRatio:s,width:0,height:0,willReadFrequently:!0}),p=d.getContext();d.isCache=!0,this._releaseCanvasCache(),this._filterUpToDate=!1,t.imageSmoothingEnabled===!1&&(d.getContext()._context.imageSmoothingEnabled=!1,f.getContext()._context.imageSmoothingEnabled=!1),p.save(),p.translate(-r,-i),this._isUnderCache=!0,this._clearSelfAndDescendantCache(Lt);try{this.drawScene(d,this)}catch(e){throw j.releaseCanvas(d._canvas),e}finally{this._isUnderCache=!1,this._clearSelfAndDescendantCache(Lt),p.restore(),d._releaseIsolationCanvas()}return l&&(p.save(),p.beginPath(),p.rect(0,0,a,o),p.closePath(),p.setAttr(`strokeStyle`,`red`),p.setAttr(`lineWidth`,5),p.stroke(),p.restore()),this._canvasCache={scene:d,filter:f,hit:null,hitConfig:{pixelRatio:u,width:a,height:o},x:r,y:i},this._clearSelfAndDescendantCache(),this._requestDraw(),this}_getCachedHitCanvas(e){if(e===this)return null;let t=this._getCanvasCache();if(!t)return null;if(t.hit)return t.hit;let n=new gt(t.hitConfig);n.isCache=!0;let r=n.getContext();return r.save(),r.translate(-t.x,-t.y),this.drawHit(n,this),r.restore(),t.hit=n,n}isCached(){return!!this._canvasCache}getClientRect(e){throw Error(`abstract "getClientRect" method call`)}_getCachedSceneRect(e){let t=e._forDrawing&&!this._isUnderCache&&this._getCanvasCache();if(!t)return;let n={x:t.x,y:t.y,width:t.scene.width/t.scene.pixelRatio,height:t.scene.height/t.scene.pixelRatio};return e.skipTransform?n:this._transformedRect(n,e.relativeTo)}_transformedRect(e,t){return this.getAbsoluteTransform(t)._getTransformedRect(e)}_drawCachedSceneCanvas(e){e.save(),e._applyOpacity(this),e._applyGlobalCompositeOperation(this);let t=this._getCanvasCache();e.translate(t.x,t.y);let n=this._getCachedSceneCanvas(),r=n.pixelRatio;e.drawImage(n._canvas,0,0,n.width/r,n.height/r),e.restore()}_drawCachedHitCanvas(e,t){let n=this._getCanvasCache();e.save(),e.translate(n.x,n.y),e.drawImage(t._canvas,0,0,t.width/t.pixelRatio,t.height/t.pixelRatio),e.restore()}_getCachedSceneCanvas(){let e=this.filters(),t=this._getCanvasCache(),n=t.scene,r=t.filter,i=r.getContext(),a,o,s,c;if(!e||e.length===0)return n;if(this._filterUpToDate)return r;let l=!0;for(let t=0;tt===void 0?e:`${Number(t)*u}${n}`);return i.clear(),i.save(),i.setAttr(`filter`,t),i.drawImage(n._canvas,0,0,n.getWidth()/u,n.getHeight()/u),i.restore(),this._filterUpToDate=!0,r}try{for(a=e.length,i.clear(),i.drawImage(n._canvas,0,0,n.getWidth()/u,n.getHeight()/u),o=i.getImageData(0,0,r.getWidth(),r.getHeight()),s=0;s{this.isAncestorOf(e.node)&&M._dragElements.delete(t)}),this._remove(),this}_clearCaches(){this._clearSelfAndDescendantCache(Rt),this._clearSelfAndDescendantCache(Lt),this._clearSelfAndDescendantCache(qt),this._clearSelfAndDescendantCache(F),this._clearSelfAndDescendantCache(Ht)}_remove(){let e=this.getParent();e&&e.children&&(e.children.splice(this.index,1),e._setChildrenIndices(),this.parent=null),this._clearCaches()}destroy(){return this._fire(`destroy`,{target:this}),Ct(this),this.remove(),this.clearCache(),this}getAttr(e){let t=`get`+j._capitalize(e);return j._isFunction(this[t])?this[t]():this.attrs[e]}getAncestors(){let e=this.getParent(),t=[];for(;e;)t.push(e),e=e.getParent();return t}getAttrs(){return this.attrs||{}}setAttrs(e){return this._batchTransformChanges(()=>{let t,n;if(!e)return this;for(t in e)t!==Bt&&(n=Wt+j._capitalize(t),j._isFunction(this[n])?this[n](e[t]):this._setAttr(t,e[t]))}),this}isListening(){return this._getCache(Ht,this._isListening)}_isListening(e){if(!this.listening())return!1;let t=this.getParent();return t&&t!==e&&this!==e?t._isListening(e):!0}isVisible(){return this._getCache(F,this._isVisible)}_isVisible(e){if(!this.visible())return!1;let t=this.getParent();return t&&t!==e&&this!==e?t._isVisible(e):!0}shouldDrawHit(e){return e?this._isVisible(e)&&this._isListening(e):this.isListening()&&this.isVisible()}show(){return this.visible(!0),this}hide(){return this.visible(!1),this}getZIndex(){return this.index||0}getAbsoluteZIndex(){let e=this.getDepth(),t=this,n=0,r,i,a,o;function s(c){for(r=[],i=c.length,a=0;a0&&r[0].getDepth()<=e&&s(r)}let c=this.getStage();return t.nodeType!==Yt&&c&&s(c.children),n}getDepth(){let e=0,t=this.parent;for(;t;)e++,t=t.parent;return e}_batchTransformChanges(t){this._batchingTransformChange?t():e._updateBatch(()=>{this._batchingTransformChange=!0;try{t()}finally{this._batchingTransformChange=!1,this._needClearTransformCache&&(this._needClearTransformCache=!1,this._clearCache(Jt),this._clearSelfAndDescendantCache(Rt))}})}setPosition(e){return this._batchTransformChanges(()=>{this.x(e.x),this.y(e.y)}),this}getPosition(){return{x:this.x(),y:this.y()}}getRelativePointerPosition(){let e=this.getStage();if(!e)return null;let t=e.getPointerPosition();if(!t)return null;let n=this.getAbsoluteTransform().copy();return n.invert(),n.point(t)}getAbsolutePosition(e){let t=this.getAbsoluteTransform(e).getMatrix(),n=new A,r=this.offset();return n.m=t.slice(),n.translate(r.x,r.y),n.getTranslation()}setAbsolutePosition(e){let{x:t,y:n,...r}=this._clearTransform();this.attrs.x=t,this.attrs.y=n,this._clearCache(Jt);let i=this._getAbsoluteTransform().copy(),a=i.isInvertible();i.invert(),i.translate(e.x,e.y);let{x:o,y:s}=i.getTranslation();return this._setTransform(r),a?this.setPosition({x:this.attrs.x+o,y:this.attrs.y+s}):j.warn(`Cannot set the absolute position: the absolute transform is not invertible (an ancestor has a zero scale).`),this._clearCache(Jt),this._clearSelfAndDescendantCache(Rt),this}_setTransform(e){let t;for(t in e)this.attrs[t]=e[t]}_clearTransform(){let e={x:this.x(),y:this.y(),rotation:this.rotation(),scaleX:this.scaleX(),scaleY:this.scaleY(),offsetX:this.offsetX(),offsetY:this.offsetY(),skewX:this.skewX(),skewY:this.skewY()};return this.attrs.x=0,this.attrs.y=0,this.attrs.rotation=0,this.attrs.scaleX=1,this.attrs.scaleY=1,this.attrs.offsetX=0,this.attrs.offsetY=0,this.attrs.skewX=0,this.attrs.skewY=0,e}move(e){let t=e.x,n=e.y,r=this.x(),i=this.y();return t!==void 0&&(r+=t),n!==void 0&&(i+=n),this.setPosition({x:r,y:i}),this}rotate(e){return this.rotation(this.rotation()+e),this}moveToTop(){if(!this.parent)return j.warn(`Node has no parent. moveToTop function is ignored.`),!1;let e=this.index;return e0&&(this.parent.children.splice(e,1),this.parent.children.splice(e-1,0,this),this.parent._setChildrenIndices(),!0)}moveToBottom(){if(!this.parent)return j.warn(`Node has no parent. moveToBottom function is ignored.`),!1;let e=this.index;return e>0&&(this.parent.children.splice(e,1),this.parent.children.unshift(this),this.parent._setChildrenIndices(),!0)}setZIndex(e){if(!this.parent)return j.warn(`Node has no parent. zIndex parameter is ignored.`),this;(e<0||e>=this.parent.children.length)&&j.warn(`Unexpected value `+e+` for zIndex property. zIndex is just index of a node in children of its parent. Expected value is from 0 to `+(this.parent.children.length-1)+`.`);let t=this.index;return this.parent.children.splice(t,1),this.parent.children.splice(e,0,this),this.parent._setChildrenIndices(),this}getAbsoluteOpacity(){return this._getCache(Lt,this._getAbsoluteOpacity)}_getAbsoluteOpacity(){let e=this.opacity(),t=this.getParent();return t&&!t._isUnderCache&&(e*=t.getAbsoluteOpacity()),e}moveTo(e){return this.getParent()!==e&&(this._remove(),e.add(this)),this}toObject(){let e=this.getAttrs(),t,n,r,i={attrs:{},className:this.getClassName()};for(t in e)n=e[t],n instanceof We&&(n=Array.from(n)),r=j.isObject(n)&&!j._isPlainObject(n)&&!j._isArray(n),!r&&(this[`get`+j._capitalize(t)]?._def!==n||t===`brightness`||t===`threshold`)&&(i.attrs[t]=t===`filters`&&j._isArray(n)?n.filter(e=>typeof e==`string`):j.isObject(n)?j._prepareToStringify(n):n);return i}toJSON(){return JSON.stringify(this.toObject())}getParent(){return this.parent}findAncestors(e,t,n){let r=[];t&&this._isMatch(e)&&r.push(this);let i=this.parent;for(;i;){if(i===n)return r;i._isMatch(e)&&r.push(i),i=i.parent}return r}isAncestorOf(e){return!1}findAncestor(e,t,n){return this.findAncestors(e,t,n)[0]}_isMatch(e){if(!e)return!1;if(typeof e==`function`)return e(this);let t=e.replace(/ /g,``).split(`,`),n=t.length,r,i;for(r=0;r{try{let{callback:r,...i}=e||{};j._urlToImage(this.toDataURL(i),function(e){t(e),r?.(e)},n)}catch(e){n(e)}})}toBlob(e){return new Promise((t,n)=>{try{this.toCanvas(e).toBlob(r=>{var i;r?(t(r),(i=e?.callback)==null||i.call(e,r)):n(Error(`Konva: toBlob() failed, the canvas was not encoded`))},e?.mimeType,e?.quality)}catch(e){n(e)}})}setSize(e){return this.width(e.width),this.height(e.height),this}getSize(){return{width:this.width(),height:this.height()}}getClassName(){return this.className||this.nodeType}getType(){return this.nodeType}getDragDistance(){return this.attrs.dragDistance===void 0?this.parent?this.parent.getDragDistance():k.dragDistance:this.attrs.dragDistance}_off(e,t,n){let r=this.eventListeners[e],i,a,o;for(i=0;i=0)||M._dragElements.has(this._id))return;let t=!1;M._dragElements.forEach(e=>{this.isAncestorOf(e.node)&&(t=!0)}),t||this._createDragElement(e)})}_dragChange(){if(this.attrs.draggable)this._listenDrag();else{if(this._dragCleanup(),!this.getStage())return;let e=M._dragElements.get(this._id),t=e&&e.dragStatus===`dragging`,n=e&&e.dragStatus===`ready`;t?this.stopDrag():n&&M._dragElements.delete(this._id)}}_dragCleanup(){this.off(`mousedown.konva`),this.off(`touchstart.konva`)}isClientRectOnScreen(e={x:0,y:0}){let t=this.getStage();if(!t)return!1;let n={x:-e.x,y:-e.y,width:t.width()+2*e.x,height:t.height()+2*e.y};return j.haveIntersection(n,this.getClientRect())}static create(e,t){return j._isString(e)&&(e=JSON.parse(e)),this._createNode(e,t)}static _createNode(t,n){let r=e.prototype.getClassName.call(t),i=t.children,a,o,s;if(n&&(t.attrs.container=n),!k[r]){let e=i?`Group`:`Shape`;j.warn(`Can not find a node with class name "`+r+`". Fallback to "${e}".`),r=e}let c=k[r];if(a=new c(t.attrs),i)for(o=i.length,s=0;s0}removeChildren(){return this._clearChildren(`remove`)}destroyChildren(){return this._clearChildren(`destroy`)}_clearChildren(e){return I._updateBatch(()=>(this.children.forEach(t=>{t.parent=null,t.index=0,t[e]()}),this.children=[],this._notifySubtreeChange(),this._requestDraw(),this))}add(...e){if(e.length===0)return this;if(e.length>1){for(let t=0;t0?t[0]:void 0}_generalFind(e,t){let n=[];return this._descendants(r=>{let i=r._isMatch(e);return i&&n.push(r),!!(i&&t)}),n}_descendants(e){let t=!1;for(let n of this.children)if(t=e(n),t||n.hasChildren()&&(t=n._descendants(e),t))return!0;return!1}toObject(){let e=I.prototype.toObject.call(this);return e.children=[],this.children.forEach(t=>{e.children.push(t.toObject())}),e}isAncestorOf(e){let t=e.getParent();for(;t;){if(t._id===this._id)return!0;t=t.getParent()}return!1}clone(e){let t=I.prototype.clone.call(this,e);return this.children.forEach(function(e){t.add(e.clone())}),t}getAllIntersections(e){let t=[];return this.find(`Shape`).forEach(n=>{n.isVisible()&&n.intersects(e)&&t.push(n)}),t}_clearSelfAndDescendantCache(e){var t;let n=e===void 0||e===`absoluteTransform`;n&&I._updateBatchDepth++;try{if(super._clearSelfAndDescendantCache(e),e===`absoluteTransform`&&this.isCached())return;(t=this.children)==null||t.forEach(function(t){t._clearSelfAndDescendantCache(e)})}finally{n&&--I._updateBatchDepth===0&&I._flushUpdateBatch()}}_setChildrenIndices(){var e;(e=this.children)==null||e.forEach(function(e,t){e.index=t}),this._notifySubtreeChange(),this._requestDraw()}drawScene(e,t){let n=this.getLayer(),r=e||n&&n.getCanvas(),i=r&&r.getContext(),a=this._getCanvasCache(),o=a&&a.scene,s=t===this;if(!(t?this._isVisible(t):this.isVisible())&&!s)return this;if(o){i.save();let e=this.getAbsoluteTransform(t).getMatrix();i.transform(e[0],e[1],e[2],e[3],e[4],e[5]),this._drawCachedSceneCanvas(i),i.restore()}else this._drawChildren(`drawScene`,r,t);return this}drawHit(e,t){if(!this.shouldDrawHit(t))return this;let n=this.getLayer(),r=e||n&&n.hitCanvas,i=r&&r.getContext(),a=this._getCachedHitCanvas(t);if(a){i.save();let e=this.getAbsoluteTransform(t).getMatrix();i.transform(e[0],e[1],e[2],e[3],e[4],e[5]),this._drawCachedHitCanvas(i,a),i.restore()}else this._drawChildren(`drawHit`,r,t);return this}_drawChildren(e,t,n){let r=t&&t.getContext(),i=this.clipWidth(),a=this.clipHeight(),o=this.clipFunc(),s=typeof i==`number`&&typeof a==`number`||o,c=n===this;if(s){r.save();let e=this.getAbsoluteTransform(n),t=e.getMatrix();r.transform(t[0],t[1],t[2],t[3],t[4],t[5]),r.beginPath();let s;if(o)s=o.call(this,r,this);else{let e=this.clipX(),t=this.clipY();r.rect(e||0,t||0,i,a)}r.clip.apply(r,s),t=e.copy().invert().getMatrix(),r.transform(t[0],t[1],t[2],t[3],t[4],t[5])}let l=!c&&this.globalCompositeOperation()!==`source-over`&&e===`drawScene`;l&&(r.save(),r._applyGlobalCompositeOperation(this));try{this._drawChildNodes(e,t,n)}finally{l&&r.restore(),s&&r.restore()}}_drawChildNodes(e,t,n){var r;(r=this.children)==null||r.forEach(function(r){r[e](t,n)})}getClientRect(e={}){var t;let n=this._getCachedSceneRect(e);if(n)return n;let r=e.skipTransform,i=e.relativeTo,[a,o,s,c]=this.getAbsoluteTransform().getMatrix(),l=!r&&(e._forDrawing||a*c-o*s===0),u,d,f,p,m={x:1/0,y:1/0,width:0,height:0},h=this;return(t=this.children)==null||t.forEach(function(t){if(!t.visible())return;let n=t.getClientRect({relativeTo:l?i:h,_forDrawing:e._forDrawing,skipShadow:e.skipShadow,skipStroke:e.skipStroke});n.width===0&&n.height===0||!isFinite(n.x+n.y+n.width+n.height)||(u===void 0?(u=n.x,d=n.y,f=n.x+n.width,p=n.y+n.height):(u=Math.min(u,n.x),d=Math.min(d,n.y),f=Math.max(f,n.x+n.width),p=Math.max(p,n.y+n.height)))}),m=u===void 0?{x:0,y:0,width:0,height:0}:{x:u,y:d,width:f-u,height:p-d},!r&&!l?this._transformedRect(m,i):m}};P.addComponentsGetterSetter(Qt,`clip`,[`x`,`y`,`width`,`height`]),P.addGetterSetter(Qt,`clipX`,void 0,N()),P.addGetterSetter(Qt,`clipY`,void 0,N()),P.addGetterSetter(Qt,`clipWidth`,void 0,N()),P.addGetterSetter(Qt,`clipHeight`,void 0,N()),P.addGetterSetter(Qt,`clipFunc`);var $t=`Stage`,en=`string`,tn=`px`,nn=`mouseout`,rn=`mouseleave`,an=`mouseover`,on=`mouseenter`,sn=`mousemove`,cn=`mousedown`,ln=`mouseup`,un=`pointermove`,dn=`pointerdown`,fn=`pointerup`,pn=`pointercancel`,mn=`lostpointercapture`,hn=`pointerout`,gn=`pointerleave`,_n=`pointerover`,vn=`pointerenter`,yn=`contextmenu`,bn=`touchstart`,xn=`touchend`,Sn=`touchmove`,Cn=`touchcancel`,wn=`wheel`,Tn=5,En=[[on,`_pointerenter`],[cn,`_pointerdown`],[sn,`_pointermove`],[ln,`_pointerup`],[rn,`_pointerleave`],[bn,`_pointerdown`],[Sn,`_pointermove`],[xn,`_pointerup`],[Cn,`_pointercancel`],[an,`_pointerover`],[wn,`_wheel`],[yn,`_contextmenu`],[dn,`_pointerdown`],[un,`_pointermove`],[fn,`_pointerup`],[pn,`_pointercancel`],[gn,`_pointerleave`],[mn,`_lostpointercapture`]],Dn={mouse:{[hn]:nn,[gn]:rn,[_n]:an,[vn]:on,[un]:sn,[dn]:cn,[fn]:ln,[pn]:`mousecancel`,pointerclick:`click`,pointerdblclick:`dblclick`},touch:{[hn]:`touchout`,[gn]:`touchleave`,[_n]:`touchover`,[vn]:`touchenter`,[un]:Sn,[dn]:bn,[fn]:xn,[pn]:Cn,pointerclick:`tap`,pointerdblclick:`dbltap`},pointer:{[hn]:hn,[gn]:gn,[_n]:_n,[vn]:vn,[un]:un,[dn]:dn,[fn]:fn,[pn]:pn,pointerclick:`pointerclick`,pointerdblclick:`pointerdblclick`}},On=e=>{let t=j._getEventType(e);if(t===`pointer`)return k.pointerEventsEnabled&&Dn.pointer;if(t===`touch`)return Dn.touch;if(t===`mouse`)return Dn.mouse};function kn(e={}){return(e.clipFunc||e.clipWidth||e.clipHeight)&&j.warn(`Stage does not support clipping. Please use clip for Layers or Groups.`),e}var An=`Pointer position is missing and not registered by the stage. Looks like it is outside of the stage container. You can set it manually from event: stage.setPointersPositions(event);`,jn=[],Mn=new WeakSet,Nn=e=>{e&&!Mn.has(e)&&(Mn.add(e),M._listenToWindow(e),e.document.addEventListener(`visibilitychange`,()=>{jn.forEach(e=>{e.batchDraw()})}))},Pn=class extends Qt{constructor(e){super(kn(e)),this._pointerPositions=[],this._changedPointerPositions=[],this._pointerStates=new Map,this._lastClicks={},this._buildDOM(),this._bindContentEvents(),jn.push(this),this.on(`widthChange.konva heightChange.konva`,this._resizeDOM),this.on(`visibleChange.konva`,this._checkVisibility),this.on(`clipWidthChange.konva clipHeightChange.konva clipFuncChange.konva`,()=>{kn(this.attrs)}),this._checkVisibility()}_validateAdd(e){let t=e.getType()===`Layer`,n=e.getType()===`FastLayer`;t||n||j.throw(`You may only add layers to the stage.`)}_checkVisibility(){if(!this.content)return;let e=this.visible()?``:`none`;this.content.style.display=e}_getOwnerWindow(){return(this.content||this.container())?.ownerDocument?.defaultView||(k.isBrowser?window:null)}setContainer(e){if(typeof e===en){let t;if(e.charAt(0)===`.`){let t=e.slice(1);e=document.getElementsByClassName(t)[0]}else t=e.charAt(0)===`#`?e.slice(1):e,e=document.getElementById(t);if(!e)throw`Can not find container in document with id `+t}return this._setAttr(`container`,e),this.content&&(this.content.parentElement&&this.content.parentElement.removeChild(this.content),e.appendChild(this.content),Nn(this._getOwnerWindow())),this}shouldDrawHit(){return!0}clear(){let e=this.children,t=e.length;for(let n=0;n-1&&jn.splice(n,1),j.releaseCanvas(this.bufferHitCanvas._canvas),this}getPointerPosition(){let e=this._pointerPositions[0]||this._changedPointerPositions[0];return e?{x:e.x,y:e.y}:(j.warn(An),null)}_getPointerById(e){return this._pointerPositions.find(t=>t.id===e)}getPointersPositions(){return this._pointerPositions}getStage(){return this}getContent(){return this.content}_toKonvaCanvas(e){e={...e},e.x=e.x||0,e.y=e.y||0,e.width=e.width||this.width(),e.height=e.height||this.height();let t=new ht({width:e.width,height:e.height,pixelRatio:e.pixelRatio||1}),n=t.getContext()._context,r=this.children;return(e.x||e.y)&&n.translate(-1*e.x,-1*e.y),r.forEach(function(t){if(!t.isVisible())return;let r=t._toKonvaCanvas(e);n.drawImage(r._canvas,e.x,e.y,r.getWidth()/r.getPixelRatio(),r.getHeight()/r.getPixelRatio()),j.releaseCanvas(r._canvas)}),t}getIntersection(e){if(!e)return null;let t=this.children,n=t.length-1;for(let r=n;r>=0;r--){let n=t[r].getIntersection(e);if(n)return n}return null}_resizeDOM(){let e=this.width(),t=this.height();this.content&&(this.content.style.width=e+tn,this.content.style.height=t+tn),this.children.forEach(n=>{n._setSize({width:e,height:t}),n.draw()})}add(e,...t){if(arguments.length>1){for(let e=0;eTn&&j.warn(`The stage has `+n+` layers. Recommended maximum number of layers is 3-5. Adding more layers into the stage may drop the performance. Rethink your tree structure, you can use Konva.Group.`),e._setSize({width:this.width(),height:this.height()}),e.draw(),k.isBrowser&&this.content.appendChild(e.canvas._canvas),this}getParent(){return null}getLayer(){return null}hasPointerCapture(e){return xt(e,this)}setPointerCapture(e){St(e,this)}releaseCapture(e){wt(e,this)}getLayers(){return this.getChildren()}_bindContentEvents(){k.isBrowser&&En.forEach(([e,t])=>{this.content.addEventListener(e,e=>{this._batchEvents(()=>this[t](e))},{passive:!1})})}_batchEvents(e){j._batchEvents(this.eventBatchFunc(),e)}_pointerenter(e){this.setPointersPositions(e);let t=On(e.type);t&&this._fire(t.pointerenter,{evt:e,target:this,currentTarget:this})}_pointerover(e){this.setPointersPositions(e);let t=On(e.type);t&&this._fire(t.pointerover,{evt:e,target:this,currentTarget:this})}_pointerEventsEnabled(){if(k.hitOnDragEnabled)return!0;for(let{node:e,dragStatus:t}of M._dragElements.values())if(t===`dragging`&&e.getStage()===this)return!1;return!this.getLayers().some(e=>k.Transformer?._isLayerTransforming(e))}_cancelClick(e,t){let n=t?[t]:[`mouse`,`touch`,`pointer`];for(let t of n){let n=this._pointerStates.get(`${t}:${e}`);n&&(n.clickStartShape=void 0,n.relatedPointer&&(n.relatedPointer.clickStartShape=void 0))}}_pointerleave(e){let t=On(e.type),n=j._getEventType(e.type);if(!t)return;this.setPointersPositions(e);let r=this._changedPointerPositions[0]?.id,i=`${n}:${r}`,a=this._pointerStates.get(i),o=(a?.targetShape)?.getStage()===this?a.targetShape:void 0,s=this._pointerEventsEnabled()||e.pointerType===`touch`&&!a?.downPosition;s&&(a?.clickStartShape===void 0?this._pointerStates.delete(i):a.targetShape=void 0),o&&s?(o._fireAndBubble(t.pointerout,{evt:e,pointerId:r}),o._fireAndBubble(t.pointerleave,{evt:e,pointerId:r}),this._fire(t.pointerleave,{evt:e,target:this,currentTarget:this})):s&&(this._fire(t.pointerleave,{evt:e,target:this,currentTarget:this}),this._fire(t.pointerout,{evt:e,target:this,currentTarget:this})),this.pointerPos=null,this._pointerPositions=[],this._changedPointerPositions=[],this._pointerEventType=void 0}_pointerdown(e){let t=On(e.type),n=j._getEventType(e.type);if(!t)return;this.setPointersPositions(e);let r=!1;this._changedPointerPositions.forEach(i=>{let a=this.getIntersection(i),o=`${n}:${i.id}`,s={targetShape:this._pointerStates.get(o)?.targetShape,clickStartShape:a&&a.isListening()?a:null,lastClick:this._lastClicks[n],downPosition:i,pointerType:e.pointerType};if(this._pointerStates.delete(o),n!==`pointer`){for(let[e,t]of[...this._pointerStates].reverse())if(!(!e.startsWith(`pointer:`)||!t.downPosition||n===`touch`&&t.relatedPointer)&&(n===`mouse`?t.pointerType!==`touch`:t.pointerType===`touch`&&t.downPosition.x===i.x&&t.downPosition.y===i.y)){s.relatedPointer=t,t.relatedPointer=s,t.clickStartShape===void 0&&(s.clickStartShape=void 0);break}}this._pointerStates.set(o,s);for(let e of M._dragElements.values())e.dragStatus===`dragging`&&(e.pointerId===void 0||e.pointerEventType===n&&e.pointerId===i.id||e.pointerEventType===`mouse`&&n===`pointer`&&s.pointerType!==`touch`)&&e.node.getStage()===this&&(e.pointerId===void 0&&n!==`pointer`&&(e.pointerId=i.id,e.pointerEventType=n),this._cancelClick(i.id,n));if(!a||!a.isListening())return;k.capturePointerEventsEnabled&&a.setPointerCapture(i.id),a._fireAndBubble(t.pointerdown,{evt:e,pointerId:i.id}),r=!0;let c=e.type.indexOf(`touch`)>=0;a.preventDefault()&&e.cancelable&&c&&e.preventDefault()}),r||this._fire(t.pointerdown,{evt:e,target:this,currentTarget:this,pointerId:this._changedPointerPositions[0].id})}_pointermove(e){let t=On(e.type),n=j._getEventType(e.type);if(!t)return;let r=e.type.indexOf(`touch`)>=0||e.pointerType===`touch`;if(e.cancelable&&r){for(let{node:t,dragStatus:n}of M._dragElements.values())if(n===`dragging`&&t.getStage()===this&&t.preventDefault()){e.preventDefault();break}}if(this.setPointersPositions(e),!this._pointerEventsEnabled())return;let i={},a=!1;this._changedPointerPositions.forEach(r=>{let o=`${n}:${r.id}`,s=this._pointerStates.get(o);s||(s={},this._pointerStates.set(o,s));let c=yt(r.id)||this.getIntersection(r),l=s.targetShape===c||s.targetShape?.getStage()===this?s.targetShape:void 0,u=r.id,d={evt:e,pointerId:u},f=l!==c;s.targetShape=c&&c.isListening()?c:void 0,f&&l&&(l._fireAndBubble(t.pointerout,{...d},c),l._fireAndBubble(t.pointerleave,{...d},c)),c&&c.isListening()?(a=!0,f&&(c._fireAndBubble(t.pointerover,{...d},l),c._fireAndBubble(t.pointerenter,{...d},l)),i[c._id]||(i[c._id]=!0,c._fireAndBubble(t.pointermove,{...d}))):l&&this._fire(t.pointerover,{evt:e,target:this,currentTarget:this,pointerId:u})}),a||this._fire(t.pointermove,{evt:e,target:this,currentTarget:this,pointerId:this._changedPointerPositions[0].id})}_pointerup(e){let t=On(e.type),n=j._getEventType(e.type);if(!t)return;this.setPointersPositions(e);let r={},i=!1;this._changedPointerPositions.forEach(a=>{let o=`${n}:${a.id}`,s=this._pointerStates.get(o),c=s?.clickStartShape!==void 0,l=s?.clickStartShape;s?.targetShape&&n!==`touch`?this._pointerStates.set(o,{targetShape:s.targetShape}):this._pointerStates.delete(o);let u=yt(a.id)||this.getIntersection(a),d=u&&r[u._id];u&&(u.releaseCapture(a.id),r[u._id]=!0);let f=a.id,p={evt:e,pointerId:f},m=u&&u.isListening()?u:null,h=this._lastClicks[n],g=c&&(!m||l===m),_=g&&h&&s?.lastClick===h&&h.shape===m&&Date.now()-h.time{let r=j._getEventType(e.type),i=`${r}:${n.id}`;this._cancelClick(n.id,r);let a=this._pointerStates.get(i)?.targetShape;a&&r!==`touch`?this._pointerStates.set(i,{targetShape:a}):this._pointerStates.delete(i);let o=yt(n.id)||this.getIntersection(n),s={evt:e,pointerId:n.id};o?(t&&o._fireAndBubble(t.pointercancel,{...s}),o._fireAndBubble(fn,{...s})):t&&this._fire(t.pointercancel,{...s,target:this,currentTarget:this}),wt(n.id),t&&r===`touch`&&a?.getStage()===this&&(a._fireAndBubble(t.pointerout,{...s}),a._fireAndBubble(t.pointerleave,{...s}))})}_lostpointercapture(e){yt(e.pointerId,this)&&wt(e.pointerId)}setPointersPositions(e){let t=this._getContentPosition(),n=null,r=null;e||=window.event,e.touches===void 0?(this._pointerEventType=e.pointerId===void 0?`mouse`:`pointer`,n=(e.clientX-t.left)/t.scaleX,r=(e.clientY-t.top)/t.scaleY,this.pointerPos={x:n,y:r},this._pointerPositions=[{x:n,y:r,id:j._getFirstPointerId(e)}],this._changedPointerPositions=[{x:n,y:r,id:j._getFirstPointerId(e)}]):(this._pointerEventType=`touch`,this._pointerPositions=[],this._changedPointerPositions=[],Array.prototype.forEach.call(e.touches,e=>{this._pointerPositions.push({id:e.identifier,x:(e.clientX-t.left)/t.scaleX,y:(e.clientY-t.top)/t.scaleY})}),Array.prototype.forEach.call(e.changedTouches||e.touches,e=>{this._changedPointerPositions.push({id:e.identifier,x:(e.clientX-t.left)/t.scaleX,y:(e.clientY-t.top)/t.scaleY})}))}_setPointerPosition(e){j.warn(`Method _setPointerPosition is deprecated. Use "stage.setPointersPositions(event)" instead.`),this.setPointersPositions(e)}_getContentPosition(){if(!this.content||!this.content.getBoundingClientRect)return{top:0,left:0,scaleX:1,scaleY:1};let e=this.content.getBoundingClientRect();return{top:e.top,left:e.left,scaleX:e.width/this.content.clientWidth||1,scaleY:e.height/this.content.clientHeight||1}}_buildDOM(){if(this.bufferHitCanvas=new gt({pixelRatio:1,width:0,height:0}),!k.isBrowser)return;let e=this.container();if(!e)throw`Stage has no container. A container is required.`;e.innerHTML=``,this.content=e.ownerDocument.createElement(`div`),this.content.style.position=`relative`,this.content.style.userSelect=`none`,this.content.className=`konvajs-content`,this.content.setAttribute(`role`,`presentation`),e.appendChild(this.content),Nn(this._getOwnerWindow()),this._resizeDOM()}cache(){return j.warn(`Cache function is not allowed for stage. You may use cache only for layers, groups and shapes.`),this}clearCache(){return this}batchDraw(){var e;return(e=this.children)==null||e.forEach(function(e){e.batchDraw()}),this}};Pn.prototype.nodeType=$t,we(Pn),P.addGetterSetter(Pn,`container`),P.addGetterSetter(Pn,`eventBatchFunc`);var Fn=`hasShadow`,In=`hasFill`,Ln=`hasStroke`,Rn=`shadowRGBA`,zn=`patternImage`,Bn=`linearGradient`,Vn=`radialGradient`,Hn;function Un(){return Hn||(Hn=j.createCanvasElement().getContext(`2d`),Hn)}var Wn={};function Gn(e){let t=this.attrs.fillRule;t?e.fill(t):e.fill()}function Kn(e){e.stroke()}function qn(){this._clearCache(Fn)}function Jn(){this._clearCache(In)}function Yn(){this._clearCache(Ln)}function Xn(){this._clearCache(Rn)}function Zn(){this._clearCache(zn)}function Qn(){this._clearCache(Bn)}function $n(){this._clearCache(Vn)}var R=class e extends I{constructor(e){super(e);let t,n=0;for(;t=j.getHitColor(),!t||t in Wn;)if(n++,n>=1e4){j.warn(`Failed to find a unique color key for a shape. Konva may work incorrectly. Most likely your browser is using canvas farbling. Consider disabling it.`),t=j.getRandomColor();break}this.colorKey=t,Wn[t]=this}getContext(){return j.warn(`shape.getContext() method is deprecated. Please do not use it.`),this.getLayer().getContext()}getCanvas(){return j.warn(`shape.getCanvas() method is deprecated. Please do not use it.`),this.getLayer().getCanvas()}getSceneFunc(){return this.attrs.sceneFunc||this._sceneFunc}getHitFunc(){return this.attrs.hitFunc||this._hitFunc}hasShadow(){return this._getCache(Fn,this._hasShadow)}_hasShadow(){return this.shadowEnabled()&&this.shadowOpacity()!==0&&!!(this.shadowColor()||this.shadowBlur()||this.shadowOffsetX()||this.shadowOffsetY())}_getFillPattern(){return this._getCache(zn,this.__getFillPattern)}__getFillPattern(){if(this.fillPatternImage()){let e=Un().createPattern(this.fillPatternImage(),this.fillPatternRepeat()||`repeat`);if(e&&e.setTransform){let t=new A;t.translate(this.fillPatternX(),this.fillPatternY()),t.rotate(k.getAngle(this.fillPatternRotation())),t.scale(this.fillPatternScaleX(),this.fillPatternScaleY()),t.translate(-1*this.fillPatternOffsetX(),-1*this.fillPatternOffsetY());let n=t.getMatrix(),r=typeof DOMMatrix>`u`?{a:n[0],b:n[1],c:n[2],d:n[3],e:n[4],f:n[5]}:new DOMMatrix(n);e.setTransform(r)}return e}}_getLinearGradient(){return this._getCache(Bn,this.__getLinearGradient)}__getLinearGradient(){let e=this.fillLinearGradientColorStops();if(e){let t=Un(),n=this.fillLinearGradientStartPoint(),r=this.fillLinearGradientEndPoint(),i=t.createLinearGradient(n.x,n.y,r.x,r.y);for(let t=0;t0}destroy(){return I.prototype.destroy.call(this),delete Wn[this.colorKey],delete this.colorKey,this}_useBufferCanvas(e,t=this.getAbsoluteOpacity()){if(!(this.attrs.perfectDrawEnabled??!0))return!1;let n=e||this.hasFill(),r=this.hasStroke(),i=!this._isUnderCache&&t!==1;if(n&&r&&i)return!0;let a=this.hasShadow(),o=this.shadowForStrokeEnabled();return!!(n&&r&&a&&o)}setStrokeHitEnabled(e){j.warn(`strokeHitEnabled property is deprecated. Please use hitStrokeWidth instead.`),e?this.hitStrokeWidth(`auto`):this.hitStrokeWidth(0)}getStrokeHitEnabled(){return this.hitStrokeWidth()!==0}getSelfRect(){let e=this.attrs.selfRectFunc;if(e)return{...e.call(this,this)};let t=this.size();return{x:this._centroid?-t.width/2:0,y:this._centroid?-t.height/2:0,width:t.width,height:t.height}}_getSelfRectForDrawing(){return this.getSelfRect()}getClientRect(e={}){let t=this._getCachedSceneRect(e);if(t)return t;let n=e.skipTransform,r=e.relativeTo,i=e._forDrawing,a=i?this._getSelfRectForDrawing():this.getSelfRect();i&&!this.strokeScaleEnabled()?a=this._transformedRect(a,r):(a.width<0||a.height<0)&&(a=new A()._getTransformedRect(a));let o=!e.skipStroke&&this.hasStroke()?i?this._getStrokePadding()*2:this.strokeWidth():0,s=o,c=o,l;if(!i&&o&&!this.strokeScaleEnabled()){let e=this;for(;e&&!e.isCached()&&!e._isUnderCache;)e=e.parent;let[t,i,a,o]=this.getAbsoluteTransform(e).getMatrix(),u=Math.abs(t*o-i*a);if(u)s*=Math.hypot(a,o)/u,c*=Math.hypot(t,i)/u;else if(!n&&(s=c=0,l=e?e.getAbsoluteTransform().copy():new A,r)){let e=r.getAbsoluteTransform(),[t,n,i,a]=e.getMatrix();l=t*a-n*i?e.copy().invert().multiply(l):new A}}let u={x:a.x-s/2,y:a.y-c/2,width:a.width+s,height:a.height+c};if(i&&this.strokeScaleEnabled()&&(u=this._transformedRect(u,r)),!e.skipShadow&&this.hasShadow()){let e=i?this.getAbsoluteScale():{x:1,y:1},t=this.shadowOffsetX()*e.x,n=this.shadowOffsetY()*e.y,r=this.shadowBlur()*(i?2*Math.min(Math.abs(e.x),Math.abs(e.y)):1);u.x+=Math.min(0,t)-r,u.y+=Math.min(0,n)-r,u.width+=Math.abs(t)+r*2,u.height+=Math.abs(n)+r*2}if(i)return u;if(!n){let e=this._transformedRect(u,r);if(l){let[t,n,r,i]=l.getMatrix(),a=o*Math.hypot(t,r)/2,s=o*Math.hypot(n,i)/2;e.x-=a,e.y-=s,e.width+=a*2,e.height+=s*2}return e}return u}_getStrokePadding(e=this.miterLimit()||10){return this.attrs.sceneFunc&&(e=this.miterLimit()||10),Math.abs(this.strokeWidth())/2*Math.max(this.lineCap()===`square`?Math.SQRT2:1,(this.lineJoin()||`miter`)===`miter`?e:1)}drawScene(t,n){let r=this.getLayer(),i=t||r.getCanvas(),a=i.getContext(),o=this._getCanvasCache(),s=this.getSceneFunc(),c=this.hasShadow(),l=n===this;if(!(n?this._isVisible(n):this.isVisible())&&!l)return this;if(o){a.save();let e=this.getAbsoluteTransform(n).getMatrix();return a.transform(e[0],e[1],e[2],e[3],e[4],e[5]),this._drawCachedSceneCanvas(a),a.restore(),this}if(!s)return this;a.save();try{if(i.width&&i.height&&this._useBufferCanvas(void 0,a._getOpacity(this))){let t=!!a._opacityRoot||!!this.attrs.selfRectFunc&&this.getSelfRect===e.prototype.getSelfRect||!this.attrs.sceneFunc&&!this.attrs.charRenderFunc&&Ce.has(this.constructor),r=i._prepareIsolationCanvas(t?this.getClientRect({_forDrawing:!0,relativeTo:n,skipShadow:!0}):void 0),o=r.getContext();o.save(),o._applyLineJoin(this),o._applyMiterLimit(this);let u=this.getAbsoluteTransform(n).getMatrix();o.transform(u[0],u[1],u[2],u[3],u[4],u[5]),s.call(this,o,this),o.restore(),c&&a._applyShadow(this),l||(a._applyOpacity(this),a._applyGlobalCompositeOperation(this)),a._drawDeviceBuffer(r)}else{if(a._applyLineJoin(this),a._applyMiterLimit(this),!l){let e=this.getAbsoluteTransform(n).getMatrix();a.transform(e[0],e[1],e[2],e[3],e[4],e[5]),a._applyOpacity(this),a._applyGlobalCompositeOperation(this)}c&&a._applyShadow(this),s.call(this,a,this)}}catch(e){throw i._releaseIsolationCanvas(),e}finally{a.restore()}return this}drawHit(e,t){if(!this.shouldDrawHit(t))return this;let n=this.getLayer(),r=e||n.hitCanvas,i=r&&r.getContext(),a=this.hitFunc()||this.sceneFunc(),o=this._getCachedHitCanvas(t);if(this.colorKey||j.warn(`Looks like your canvas has a destroyed shape in it. Do not reuse shape after you destroyed it. If you want to reuse shape you should call remove() instead of destroy()`),o){i.save();let e=this.getAbsoluteTransform(t).getMatrix();return i.transform(e[0],e[1],e[2],e[3],e[4],e[5]),this._drawCachedHitCanvas(i,o),i.restore(),this}if(!a)return this;if(i.save(),i._applyLineJoin(this),i._applyMiterLimit(this),this!==t){let e=this.getAbsoluteTransform(t).getMatrix();i.transform(e[0],e[1],e[2],e[3],e[4],e[5])}try{a.call(this,i,this)}finally{i.restore()}return this}drawHitFromCache(e=0){let t=this._getCachedSceneCanvas(),n=this._getCachedHitCanvas(),r=n.getContext(),i=n.getWidth(),a=n.getHeight();r.clear(),r.drawImage(t._canvas,0,0,i/n.pixelRatio,a/n.pixelRatio);try{let t=r.getImageData(0,0,i,a),n=t.data,o=n.length,s=j._hexToRgb(this.colorKey);for(let t=0;te?(n[t]=s.r,n[t+1]=s.g,n[t+2]=s.b,n[t+3]=255):n[t+3]=0;r.putImageData(t,0,0)}catch(e){j.error(`Unable to draw hit graph from cached scene canvas. `+e.message)}return this}hasPointerCapture(e){return xt(e,this)}setPointerCapture(e){St(e,this)}releaseCapture(e){wt(e,this)}};R.prototype._fillFunc=Gn,R.prototype._strokeFunc=Kn,R.prototype._fillFuncHit=Gn,R.prototype._strokeFuncHit=Kn,R.prototype._centroid=!1,R.prototype.nodeType=`Shape`,we(R),R.prototype.on(`shadowColorChange.konva shadowBlurChange.konva shadowOffsetXChange.konva shadowOffsetYChange.konva shadowOpacityChange.konva shadowEnabledChange.konva`,qn),R.prototype.on(`shadowColorChange.konva shadowOpacityChange.konva shadowEnabledChange.konva`,Xn),R.prototype.on(`fillEnabledChange.konva fillChange.konva fillPatternImageChange.konva fillLinearGradientColorStopsChange.konva fillRadialGradientColorStopsChange.konva`,Jn),R.prototype.on(`strokeEnabledChange.konva strokeWidthChange.konva strokeChange.konva strokeLinearGradientColorStopsChange.konva`,Yn),R.prototype.on(`fillPriorityChange.konva fillPatternImageChange.konva fillPatternRepeatChange.konva fillPatternScaleXChange.konva fillPatternScaleYChange.konva fillPatternOffsetXChange.konva fillPatternOffsetYChange.konva fillPatternXChange.konva fillPatternYChange.konva fillPatternRotationChange.konva`,Zn),R.prototype.on(`fillPriorityChange.konva fillLinearGradientColorStopsChange.konva fillLinearGradientStartPointXChange.konva fillLinearGradientStartPointYChange.konva fillLinearGradientEndPointXChange.konva fillLinearGradientEndPointYChange.konva`,Qn),R.prototype.on(`fillPriorityChange.konva fillRadialGradientColorStopsChange.konva fillRadialGradientStartPointXChange.konva fillRadialGradientStartPointYChange.konva fillRadialGradientEndPointXChange.konva fillRadialGradientEndPointYChange.konva fillRadialGradientStartRadiusChange.konva fillRadialGradientEndRadiusChange.konva`,$n),P.addGetterSetter(R,`stroke`,void 0,At()),P.addGetterSetter(R,`strokeWidth`,2,N()),P.addGetterSetter(R,`fillAfterStrokeEnabled`,!1),P.addGetterSetter(R,`hitStrokeWidth`,`auto`,Ot()),P.addGetterSetter(R,`strokeHitEnabled`,!0,Mt()),P.addGetterSetter(R,`perfectDrawEnabled`,!0,Mt()),P.addGetterSetter(R,`shadowForStrokeEnabled`,!0,Mt()),P.addGetterSetter(R,`lineJoin`),P.addGetterSetter(R,`lineCap`),P.addGetterSetter(R,`miterLimit`),P.addGetterSetter(R,`sceneFunc`),P.addGetterSetter(R,`hitFunc`),P.addGetterSetter(R,`selfRectFunc`),P.addGetterSetter(R,`dash`),P.addGetterSetter(R,`dashOffset`,0,N()),P.addGetterSetter(R,`shadowColor`,void 0,kt()),P.addGetterSetter(R,`shadowBlur`,0,N()),P.addGetterSetter(R,`shadowOpacity`,1,N()),P.addComponentsGetterSetter(R,`shadowOffset`,[`x`,`y`]),P.addGetterSetter(R,`shadowOffsetX`,0,N()),P.addGetterSetter(R,`shadowOffsetY`,0,N()),P.addGetterSetter(R,`fillPatternImage`),P.addGetterSetter(R,`fill`,void 0,At()),P.addGetterSetter(R,`fillPatternX`,0,N()),P.addGetterSetter(R,`fillPatternY`,0,N()),P.addGetterSetter(R,`fillLinearGradientColorStops`),P.addGetterSetter(R,`strokeLinearGradientColorStops`),P.addGetterSetter(R,`fillRadialGradientStartRadius`,0),P.addGetterSetter(R,`fillRadialGradientEndRadius`,0),P.addGetterSetter(R,`fillRadialGradientColorStops`),P.addGetterSetter(R,`fillPatternRepeat`,`repeat`),P.addGetterSetter(R,`fillEnabled`,!0),P.addGetterSetter(R,`strokeEnabled`,!0),P.addGetterSetter(R,`shadowEnabled`,!0),P.addGetterSetter(R,`dashEnabled`,!0),P.addGetterSetter(R,`strokeScaleEnabled`,!0),P.addGetterSetter(R,`fillPriority`,`color`),P.addComponentsGetterSetter(R,`fillPatternOffset`,[`x`,`y`]),P.addGetterSetter(R,`fillPatternOffsetX`,0,N()),P.addGetterSetter(R,`fillPatternOffsetY`,0,N()),P.addComponentsGetterSetter(R,`fillPatternScale`,[`x`,`y`]),P.addGetterSetter(R,`fillPatternScaleX`,1,N()),P.addGetterSetter(R,`fillPatternScaleY`,1,N()),P.addComponentsGetterSetter(R,`fillLinearGradientStartPoint`,[`x`,`y`]),P.addComponentsGetterSetter(R,`strokeLinearGradientStartPoint`,[`x`,`y`]),P.addGetterSetter(R,`fillLinearGradientStartPointX`,0),P.addGetterSetter(R,`strokeLinearGradientStartPointX`,0),P.addGetterSetter(R,`fillLinearGradientStartPointY`,0),P.addGetterSetter(R,`strokeLinearGradientStartPointY`,0),P.addComponentsGetterSetter(R,`fillLinearGradientEndPoint`,[`x`,`y`]),P.addComponentsGetterSetter(R,`strokeLinearGradientEndPoint`,[`x`,`y`]),P.addGetterSetter(R,`fillLinearGradientEndPointX`,0),P.addGetterSetter(R,`strokeLinearGradientEndPointX`,0),P.addGetterSetter(R,`fillLinearGradientEndPointY`,0),P.addGetterSetter(R,`strokeLinearGradientEndPointY`,0),P.addComponentsGetterSetter(R,`fillRadialGradientStartPoint`,[`x`,`y`]),P.addGetterSetter(R,`fillRadialGradientStartPointX`,0),P.addGetterSetter(R,`fillRadialGradientStartPointY`,0),P.addComponentsGetterSetter(R,`fillRadialGradientEndPoint`,[`x`,`y`]),P.addGetterSetter(R,`fillRadialGradientEndPointX`,0),P.addGetterSetter(R,`fillRadialGradientEndPointY`,0),P.addGetterSetter(R,`fillPatternRotation`,0),P.addGetterSetter(R,`fillRule`,void 0,kt()),P.backCompat(R,{dashArray:`dash`,getDashArray:`getDash`,setDashArray:`setDash`,drawFunc:`sceneFunc`,getDrawFunc:`getSceneFunc`,setDrawFunc:`setSceneFunc`,drawHitFunc:`hitFunc`,getDrawHitFunc:`getHitFunc`,setDrawHitFunc:`setHitFunc`});var er=`beforeDraw`,tr=`draw`,nr=10,rr=256;function ir(e,t){return e[t+3]>=128?Wn[j.getHitColorKey(e[t],e[t+1],e[t+2])]:void 0}var ar=class extends Qt{constructor(e){super(e),this.canvas=new ht,this.hitCanvas=new gt({pixelRatio:1}),this._waitingForDraw=!1,this.on(`visibleChange.konva`,this._checkVisibility),this._checkVisibility(),this.on(`imageSmoothingEnabledChange.konva`,this._setSmoothEnabled),this._setSmoothEnabled()}createPNGStream(){return this.canvas._canvas.createPNGStream()}getCanvas(){return this.canvas}getNativeCanvasElement(){return this.canvas._canvas}getHitCanvas(){return this.hitCanvas}getContext(){return this.getCanvas().getContext()}clear(e){return this.getContext().clear(e),this.getHitCanvas().getContext().clear(e),this}setZIndex(e){super.setZIndex(e);let t=this.getStage();return t&&t.content&&(t.content.removeChild(this.getNativeCanvasElement()),e{this._waitingForDraw=!1,this.draw()},this.getStage()?._getOwnerWindow())),this}getIntersection(e){if(!this.isListening()||!this.isVisible())return null;let t=this._getIntersection(e);if(t.shape)return t.shape;if(!t.antialiased)return null;let n=this.hitCanvas.pixelRatio,r=Math.floor(e.x*n),i=Math.floor(e.y*n),a=e=>this.hitCanvas.context.getImageData(r-e,i-e,e*2+1,e*2+1).data,o=nr,s=o*2+1,c=a(o),l=c[(o*s+o)*4+3];for(let e=1;e<=rr;e++){e>o&&(o=Math.min(rr,o*2),s=o*2+1,c=a(o));let t=0;for(let n=-e;n<=e;n++){let r=Math.abs(n)===e?1:e*2;for(let i=-e;i<=e;i+=r){let e=((n+o)*s+i+o)*4,r=ir(c,e);if(r)return r;t=Math.max(t,c[e+3])}}if(t<=l&&t!==255)return null;l=t}return null}_getIntersection(e){if(!this.hitCanvas.width||!this.hitCanvas.height)return{};let t=this.hitCanvas.pixelRatio,n=this.hitCanvas.context.getImageData(Math.floor(e.x*t),Math.floor(e.y*t),1,1).data,r=ir(n,0);return r?{shape:r}:n[3]>0?{antialiased:!0}:{}}drawScene(e,t){let n=this.getLayer(),r=e||n&&n.getCanvas();return this._fire(er,{node:this}),this.clearBeforeDraw()&&r.getContext().clear(),Qt.prototype.drawScene.call(this,r,t),r._trimIsolationCanvas(),this._fire(tr,{node:this}),this}shouldDrawHit(e){if(!super.shouldDrawHit(e))return!1;if(e||k.hitOnDragEnabled)return!0;let t=!1;return M._dragElements.forEach(e=>{e.dragStatus===`dragging`&&(e.node===this.getStage()||e.node.getLayer()===this)&&(t=!0)}),!t&&!k.Transformer?._isLayerTransforming(this)}drawHit(e,t){let n=this.getLayer(),r=e||n&&n.hitCanvas;return!e&&n&&(n._syncHitCanvasSize(),n.clearBeforeDraw()&&n.getHitCanvas().getContext().clear()),Qt.prototype.drawHit.call(this,r,t),this}enableHitGraph(){return this.hitGraphEnabled(!0),this}disableHitGraph(){return this.hitGraphEnabled(!1),this}setHitGraphEnabled(e){j.warn(`hitGraphEnabled method is deprecated. Please use layer.listening() instead.`),this.listening(e)}getHitGraphEnabled(e){return j.warn(`hitGraphEnabled method is deprecated. Please use layer.listening() instead.`),this.listening()}toggleHitCanvas(){if(!this.parent||!this.parent.content)return;let e=this.parent;this.hitCanvas._canvas.parentNode?e.content.removeChild(this.hitCanvas._canvas):e.content.appendChild(this.hitCanvas._canvas)}destroy(){return this.getCanvas()._releaseIsolationCanvas(),j.releaseCanvas(this.getNativeCanvasElement(),this.getHitCanvas()._canvas),super.destroy()}};ar.prototype.nodeType=`Layer`,we(ar),P.addGetterSetter(ar,`imageSmoothingEnabled`,!0),P.addGetterSetter(ar,`clearBeforeDraw`,!0),P.addOverloadedGetterSetter(ar,`hitGraphEnabled`);var or=class extends ar{constructor(e){super(e),this.listening(!1),j.warn(`Konva.FastLayer is deprecated. Please use "new Konva.Layer({ listening: false })" instead.`)}};or.prototype.nodeType=`FastLayer`,we(or);var sr=class extends Qt{_validateAdd(e){let t=e.getType();t!==`Group`&&t!==`Shape`&&j.throw(`You may only add groups and shapes to groups.`)}_drawChildNodes(e,t,n){if(e!==`drawScene`||!this.isolated()||n===this)return super._drawChildNodes(e,t,n);if(!t.width||!t.height)return;let r=t.getContext(),i=t._prepareIsolationCanvas(this.getClientRect({_forDrawing:!0,relativeTo:n})),a=i.getContext();a._opacityRoot=this,r.save();try{super._drawChildNodes(e,i,n),r._applyOpacity(this),r._drawDeviceBuffer(i)}catch(e){throw t._releaseIsolationCanvas(),e}finally{r.restore(),a._opacityRoot=void 0}}};P.addGetterSetter(sr,`isolated`,!1,Mt()),sr.prototype.nodeType=`Group`,we(sr);var cr=O.performance?.now?()=>O.performance.now():Date.now,lr=class e{constructor(t,n){this.id=e.animIdCounter++,this.frame={time:0,timeDiff:0,lastTime:cr(),frameRate:0},this.func=t,this.setLayers(n)}setLayers(e){return this.layers=e?[].concat(e):[],this}getLayers(){return this.layers}addLayer(e){let t=this.layers,n=t.length;for(let r=0;r{Array.from(this.animations).forEach(t=>{this.animations.has(t)&&(t._updateFrameObject(cr()),!(t.func&&t.func.call(t,t.frame)===!1)&&t.layers.forEach(t=>t&&e.add(t)))})}),e.forEach(e=>e.batchDraw())}static _animationLoop(){let t=e;t.animations.size?(t._runFrames(),j.requestAnimFrame(t._animationLoop)):t.animRunning=!1}static _handleAnimation(){this.animRunning||(this.animRunning=!0,j.requestAnimFrame(this._animationLoop))}};lr.animations=new Set,lr.animIdCounter=0,lr.animRunning=!1;var ur={node:1,duration:1,easing:1,onFinish:1,onUpdate:1,onReset:1,yoyo:1},dr=1,fr=2,pr=3,mr=[`fill`,`stroke`,`shadowColor`],hr=0;function gr(e){return j.colorToRGBA(e)||j.throw(`can not tween the color "`+e+`", because it is not a valid color.`)}function _r(e,t){return{r:t.r-e.r,g:t.g-e.g,b:t.b-e.b,a:t.a-e.a}}function vr(e,t,n){return`rgba(`+Math.round(e.r+t.r*n)+`,`+Math.round(e.g+t.g*n)+`,`+Math.round(e.b+t.b*n)+`,`+(e.a+t.a*n)+`)`}var yr=class{constructor(e,t,n,r,i,a,o){this.prop=e,this.propFunc=t,this.begin=r,this._pos=r,this.duration=a,this._change=0,this.prevPos=0,this.yoyo=o,this._time=0,this._position=0,this._startTime=0,this._finish=0,this.func=n,this._change=i-this.begin,this.pause()}fire(e){let t=this[e];t&&t()}setTime(e){e>this.duration?this.yoyo?(this._time=this.duration,this.reverse()):this.finish():e<0?this.yoyo?(this._time=0,this.play()):this.reset():(this._time=e,this.update())}getTime(){return this._time}setPosition(e){this.prevPos=this._pos,this.propFunc(e),this._pos=e}getPosition(e){return e===void 0&&(e=this._time),this.func(e,this.begin,this._change,this.duration)}play(){this.state=fr,this._startTime=this.getTimer()-this._time,this.fire(`onPlay`),this.onEnterFrame()}reverse(){this.state=pr,this._time=this.duration-this._time,this._startTime=this.getTimer()-this._time,this.fire(`onReverse`),this.onEnterFrame()}seek(e){this.pause(),this._time=e,this.update(),this.fire(`onSeek`)}reset(){this.pause(),this._time=0,this.update(),this.fire(`onReset`)}finish(){this.pause(),this._time=this.duration,this.update(),this.fire(`onFinish`)}update(){this.setPosition(this.getPosition(this._time)),this.fire(`onUpdate`)}onEnterFrame(){let e=this.getTimer()-this._startTime;this.state===fr?this.setTime(e):this.state===pr&&this.setTime(this.duration-e)}pause(){this.state=dr,this.fire(`onPause`)}getTimer(){return Date.now()}},br=class e{constructor(t){let n=this,r=t.node,i=r._id,a=t.easing||xr.Linear,o=!!t.yoyo,s,c;s=t.duration===void 0?.3:t.duration===0?.001:t.duration,this.node=r,this._id=hr++;let l=r.getLayer()||(r instanceof k.Stage?r.getLayers():null);for(c in l||j.error("Tween constructor have `node` that is not in a layer. Please add node into layer first."),this.anim=new lr(function(){n.tween.onEnterFrame()},l),this.tween=new yr(c,function(e){n._tweenFunc(e)},a,0,1,s*1e3,o),this._addListeners(),e.attrs[i]||(e.attrs[i]={}),e.attrs[i][this._id]||(e.attrs[i][this._id]={}),e.tweens[i]||(e.tweens[i]={}),t)ur[c]===void 0&&this._addAttr(c,t[c]);this.reset(),this.onFinish=t.onFinish,this.onReset=t.onReset,this.onUpdate=t.onUpdate}_addAttr(t,n){if(j._isPlainObject(n)){for(let e in n)this._addAttr(t+j._capitalize(e),n[e]);return}let r=this.node,i=r._id,a,o,s,c,l=e.tweens[i][t];l!==void 0&&delete e.attrs[i][l][t];let u=r.getAttr(t);if(j._isArray(n)||j._isArray(u)){if(a=[],c=u,s=n,u=j._isArray(u)?u.slice():Array(n.length).fill(u||0),j._isArray(n)||(n=Array(u.length).fill(n)),o=Math.max(n.length,u.length),t===`points`&&n.length!==u.length&&(n.length>u.length?u=j._prepareArrayForTween(u,n,r.closed()):n=j._prepareArrayForTween(n,u,r.closed())),t.endsWith(`ColorStops`))for(let e=0;ethis.destroy(),r=()=>{this.node.off(t).on(t,n),this.anim.start()};this.tween.onPlay=r,this.tween.onReverse=r,this.tween.onPause=()=>{this.node.off(t),this.anim.stop()};let i=(t,n)=>{let r=e.attrs[this.node._id]?.[this._id];if(r){for(let e in r)r[e][t]!==void 0&&this.node.setAttr(e,r[e][t]);n?.call(this)}};this.tween.onFinish=()=>i(`trueEnd`,this.onFinish),this.tween.onReset=()=>i(`trueStart`,this.onReset),this.tween.onUpdate=()=>{this.onUpdate&&this.onUpdate.call(this)}}play(){return this.tween.play(),this}reverse(){return this.tween.reverse(),this}reset(){return this.tween.reset(),this}seek(e){return this.tween.seek(e*1e3),this}pause(){return this.tween.pause(),this}finish(){return this.tween.finish(),this}destroy(){let t=this.node._id,n=this._id,r=e.attrs[t]?.[n],i=e.tweens[t];if(this.pause(),this.anim&&this.anim.stop(),r){if(i){for(let e in r)delete i[e];Object.keys(i).length===0&&delete e.tweens[t]}delete e.attrs[t][n],Object.keys(e.attrs[t]).length===0&&delete e.attrs[t]}}};br.attrs={},br.tweens={},I.prototype.to=function(e){let t=e.onFinish,n=new br({...e,node:this,onFinish(){n.destroy(),t&&t()}});return n.play(),n};var xr={BackEaseIn(e,t,n,r){return n*(e/=r)*e*(2.70158*e-1.70158)+t},BackEaseOut(e,t,n,r){return n*((e=e/r-1)*e*(2.70158*e+1.70158)+1)+t},BackEaseInOut(e,t,n,r){let i=1.70158;return(e/=r/2)<1?n/2*(e*e*(((i*=1.525)+1)*e-i))+t:n/2*((e-=2)*e*(((i*=1.525)+1)*e+i)+2)+t},ElasticEaseIn(e,t,n,r,i,a){let o=0;return e===0?t:(e/=r)===1?t+n:(a||=r*.3,!i||i=o?o:(s%o+o)%o,l=Math.cos(Math.min(c,Math.PI)),u=Math.sin(Math.min(Math.max(Math.PI,c),3*Math.PI/2)),d=Math.sin(Math.min(c,Math.PI/2)),f=l*(l>0?n:r),p=1*r,m=u*(u>0?n:r),h=d*(d>0?r:n);return{x:f,y:i?-1*h:m,width:p-f,height:h-m}}};Cr.prototype._centroid=!0,Cr.prototype.className=`Arc`,Cr.prototype._attrsAffectingSize=[`innerRadius`,`outerRadius`,`angle`,`clockwise`],we(Cr,!0),P.addGetterSetter(Cr,`innerRadius`,0,N()),P.addGetterSetter(Cr,`outerRadius`,0,N()),P.addGetterSetter(Cr,`angle`,0,N()),P.addGetterSetter(Cr,`clockwise`,!1,Mt());var wr=[-.07652652113349734,.07652652113349734,-.22778585114164507,.22778585114164507,-.37370608871541955,.37370608871541955,-.5108670019508271,.5108670019508271,-.636053680726515,.636053680726515,-.7463319064601508,.7463319064601508,-.8391169718222188,.8391169718222188,-.912234428251326,.912234428251326,-.9639719272779138,.9639719272779138,-.9931285991850949,.9931285991850949],Tr=[.15275338713072584,.15275338713072584,.14917298647260374,.14917298647260374,.14209610931838204,.14209610931838204,.13168863844917664,.13168863844917664,.11819453196151841,.11819453196151841,.10193011981724044,.10193011981724044,.08327674157670475,.08327674157670475,.06267204833410907,.06267204833410907,.04060142980038694,.04060142980038694,.017614007139152118,.017614007139152118],Er=(e,t,n)=>{let r=n/2,i=0;for(let n=0;nEr([e[0],e[0]+2/3*(e[1]-e[0]),e[2]+2/3*(e[1]-e[2]),e[2]],[t[0],t[0]+2/3*(t[1]-t[0]),t[2]+2/3*(t[1]-t[2]),t[2]],n);function Or(e,t,n){let r=1-n,i=r*r,a=2*r*n,o=n*n,s=i*(3*(e[1]-e[0]))+a*(3*(e[2]-e[1]))+o*(3*(e[3]-e[2])),c=i*(3*(t[1]-t[0]))+a*(3*(t[2]-t[1]))+o*(3*(t[3]-t[2]));return Math.sqrt(s*s+c*c)}var kr=(e,t,n)=>{let r=1,i=e/t,a=(e-n(i))/t,o=0;for(;r>.001;){let s=n(i+a),c=Math.abs(e-s)/t;if(c500)break}return i},Ar=(e,t,n,r)=>{let i=1-r;return i*i*e+2*i*r*t+r*r*n},jr=(e,t,n,r,i,a)=>{let o=[];for(let s of[[e,n,i],[t,r,a]]){let c=(s[0]-s[1])/(s[0]-2*s[1]+s[2]);c>0&&c<1&&o.push(Ar(e,n,i,c),Ar(t,r,a,c))}return o},Mr=(e,t,n,r,i)=>{let a=1-i;return a*a*a*e+3*a*a*i*t+3*a*i*i*n+i*i*i*r},Nr=(e,t,n,r,i,a,o,s)=>{let c=[];for(let l of[[e,n,i,o],[t,r,a,s]]){let u=-3*l[0]+9*l[1]-9*l[2]+3*l[3],d=6*l[0]-12*l[1]+6*l[2],f=-3*l[0]+3*l[1],p=d*d-4*u*f;if(p<0)continue;let m=-(d+(d<0?-1:1)*Math.sqrt(p))/2;for(let l of[m/u,f/m])l>0&&l<1&&c.push(Mr(e,n,i,o,l),Mr(t,r,a,s,l))}return c};function Pr(e,t,n,r,i,a,o){let s=Math.sqrt((n-e)**2+(r-t)**2),c=Math.sqrt((i-n)**2+(a-r)**2),l=s+c;if(l===0)return[n,r,n,r];let u=o*s/l,d=o*c/l;return[n-u*(i-e),r-u*(a-t),n+d*(i-e),r+d*(a-t)]}function Fr(e,t){let n=e.length,r=[];for(let i=2;i4}_eachTensionSegment(e,t){let n=this.points(),r=n.length,i=this.closed(),a=this.getTensionPoints(),o=a.length,s=n[0],c=n[1],l=i?0:4;for(i||(e(s,c,a[0],a[1],a[2],a[3]),s=a[2],c=a[3]);le.quadraticCurveTo(r,i,a,o),(t,n,r,i,a,o,s,c)=>e.bezierCurveTo(r,i,a,o,s,c));else if(i)for(a=2;at.push(a,o,...jr(e,n,r,i,a,o)),(e,n,r,i,a,o,s,c)=>t.push(s,c,...Nr(e,n,r,i,a,o,s,c))),e=t}else this.bezier()&&(e=[e[0],e[1],...Ir(e)]);return j._getPointsRect(e)}};Lr.prototype.className=`Line`,Lr.prototype._attrsAffectingSize=[`points`,`bezier`,`tension`,`closed`],we(Lr,!0),P.addGetterSetter(Lr,`closed`,!1),P.addGetterSetter(Lr,`bezier`,!1),P.addGetterSetter(Lr,`tension`,0,N()),P.addGetterSetter(Lr,`points`,[],jt());var Rr={m:2,l:2,h:1,v:1,c:6,s:4,q:4,t:2,a:7,z:0},zr=Math.PI*2,Br=class e extends R{constructor(e){super(e),this.dataArray=[],this.pathLength=0,this._readDataAttribute(),this.on(`dataChange.konva`,function(){this._readDataAttribute()})}_readDataAttribute(){this.dataArray=e.parsePathData(this.data()),this.pathLength=e.getPathLength(this.dataArray)}_sceneFunc(e){let t=this.dataArray;e.beginPath();let n=!1;for(let r=0;r{if(((n-s)*Math.sign(c)%zr+zr)%zr0&&t<=o;)o-=n[--a].pathLength;for(t-=o;an[a].pathLength;){let e=n[a].pathLength;t-=e,o+=e,++a}if(r&&aEr([c.start.x,l[0],l[2],l[4]],[c.start.y,l[1],l[3],l[5]],e)),c.start.x,c.start.y,l[0],l[1],l[2],l[3],l[4],l[5]);case`Q`:return e.getPointOnQuadraticBezier(kr(t,c.pathLength,e=>Dr([c.start.x,l[0],l[2]],[c.start.y,l[1],l[3]],e)),c.start.x,c.start.y,l[0],l[1],l[2],l[3]);case`A`:return e.getPointOnEllipticalArc(l[0],l[1],l[2],l[3],l[2]===l[3]?l[4]+l[5]*t/c.pathLength:e._walkArc(l,t).theta,l[6])}return null}static getPointOnLine(e,t,n,r,i,a,o){a??=t,o??=n;let s=this.getLineLength(t,n,r,i);if(s<1e-10)return{x:t,y:n};if(r===t)return{x:a,y:o+(i>n?e:-e)};let c=(i-n)/(r-t),l=Math.sqrt(e*e/(1+c*c))*(r1&&(t[0]===`0`||t[0]===`1`);)f.push(+t[0]),p++,t=t.slice(1);let n=parseFloat(t);f.push(isNaN(n)?0:n),p>=0&&(p=(p+1)%7)}let m=0;for(;m=n)return{theta:d+(p-d)*((n-f)/h),length:n};f+=h,u=m,d=p}return{theta:d,length:f}}static calcLength(t,n,r,i){let a=e;switch(r){case`L`:return a.getLineLength(t,n,i[0],i[1]);case`C`:return Er([t,i[0],i[2],i[4]],[n,i[1],i[3],i[5]],1);case`Q`:return Dr([t,i[0],i[2]],[n,i[1],i[3]],1);case`A`:return a._walkArc(i,1/0).length}return 0}static convertEndpointToCenterParameterization(e,t,n,r,i,a,o,s,c){let l=Math.PI/180*c,u=Math.cos(l)*(e-n)/2+Math.sin(l)*(t-r)/2,d=-1*Math.sin(l)*(e-n)/2+Math.cos(l)*(t-r)/2,f=u*u/(o*o)+d*d/(s*s);f>1&&(o*=Math.sqrt(f),s*=Math.sqrt(f));let p=Math.sqrt((o*o*(s*s)-o*o*(d*d)-s*s*(u*u))/(o*o*(d*d)+s*s*(u*u)));i===a&&(p*=-1),isNaN(p)&&(p=0);let m=p*o*d/s,h=p*-s*u/o,g=(e+n)/2+Math.cos(l)*m-Math.sin(l)*h,_=(t+r)/2+Math.sin(l)*m+Math.cos(l)*h,v=function(e){return Math.sqrt(e[0]*e[0]+e[1]*e[1])},y=function(e,t){return(e[0]*t[0]+e[1]*t[1])/(v(e)*v(t))},b=function(e,t){return(e[0]*t[1]=1&&(ee=0),a===0&&ee>0&&(ee-=2*Math.PI),a===1&&ee<0&&(ee+=2*Math.PI),[g,_,o,s,x,ee,l,a]}};Br.prototype.className=`Path`,Br.prototype._attrsAffectingSize=[`data`],we(Br,!0),P.addGetterSetter(Br,`data`);var Vr=class extends Lr{_getStrokePadding(){return super._getStrokePadding(this.pointerAtBeginning()||this.pointerAtEnding()?this.miterLimit()||10:void 0)}_sceneFunc(e){super._sceneFunc(e);let t=this.points(),n=t.length;if(n<4)return;let r=this.pointerLength(),i=this.pointerWidth();this.pointerAtEnding()&&(e.save(),e.beginPath(),e.translate(t[n-2],t[n-1]),e.rotate(this._getPointerAngle(!1)),e.moveTo(0,0),e.lineTo(-r,i/2),e.lineTo(-r,-i/2),e.closePath(),e.restore(),this.__fillStroke(e)),this.pointerAtBeginning()&&(e.save(),e.beginPath(),e.translate(t[0],t[1]),e.rotate(this._getPointerAngle(!0)),e.moveTo(0,0),e.lineTo(-r,i/2),e.lineTo(-r,-i/2),e.closePath(),e.restore(),this.__fillStroke(e))}_getPointerAngle(e){let t=this.points(),n=t.length,r=this.tension()!==0&&n>4,i=r?this.getTensionPoints():t,a=e?t[0]:t[n-2],o=e?t[1]:t[n-1],s=0,c=0;if(r&&e)s=a-(i[0]+i[2])/2,c=o-(i[1]+i[3])/2;else if(r){let e=i[i.length-4],t=i[i.length-3],n=i[i.length-2],r=i[i.length-1],l=Br.calcLength(e,t,`Q`,[n,r,a,o]),u=Br.getPointOnQuadraticBezier(l?Math.max(0,1-this.pointerLength()/l):0,e,t,n,r,a,o);s=a-u.x,c=o-u.y}for(let t=e?0:i.length-2;!s&&!c&&t>=0&&t{this._requestDraw()},this.on(`imageChange.konva`,e=>{this._removeImageLoad(e.oldVal),this._setImageLoad()}),this._setImageLoad()}_setImageLoad(){var e;let t=this.image();t?.complete&&t.src||t?.readyState>=2||(e=t?.addEventListener)==null||e.call(t,`videoWidth`in t?`loadeddata`:`load`,this._loadListener)}_removeImageLoad(e){var t;(t=e?.removeEventListener)==null||t.call(e,`videoWidth`in e?`loadeddata`:`load`,this._loadListener)}destroy(){return this._removeImageLoad(this.image()),super.destroy(),this}_useBufferCanvas(e,t=this.getAbsoluteOpacity()){if(this.attrs.perfectDrawEnabled===!1)return!1;let n=!!this.cornerRadius(),r=this.hasShadow();return n&&r?!0:super._useBufferCanvas(!0,t)}_getStrokePadding(){return super._getStrokePadding(this.strokeScaleEnabled()?1:void 0)}_sceneFunc(e){let t=this.getWidth(),n=this.getHeight(),r=this.cornerRadius(),i=this.attrs.image;if((this.hasFill()||this.hasStroke()||r)&&(e.beginPath(),r?j.drawRoundedRectPath(e,t,n,r):e.rect(0,0,t,n),e.closePath(),e.fillStrokeShape(this)),i){r&&e.clip();let a=this.attrs.cropWidth,o=this.attrs.cropHeight;a&&o?e.drawImage(i,this.cropX(),this.cropY(),a,o,0,0,t,n):e.drawImage(i,0,0,t,n)}}_hitFunc(e){let t=this.width(),n=this.height(),r=this.cornerRadius();e.beginPath(),r?j.drawRoundedRectPath(e,t,n,r):e.rect(0,0,t,n),e.closePath(),e.fillStrokeShape(this)}getWidth(){let e=this.image();return this.attrs.width??e?.videoWidth??e?.width??0}getHeight(){let e=this.image();return this.attrs.height??e?.videoHeight??e?.height??0}static fromURL(t,n,r=null){let i=j.createImageElement();i.onload=()=>{i.onload=i.onerror=null,n(new e({image:i}))},i.onerror=r,i.crossOrigin=`Anonymous`,i.src=t}};Wr.prototype.className=`Image`,Wr.prototype._attrsAffectingSize=[`image`],we(Wr,!0),P.addGetterSetter(Wr,`cornerRadius`,0,Dt(4)),P.addGetterSetter(Wr,`image`),P.addComponentsGetterSetter(Wr,`crop`,[`x`,`y`,`width`,`height`]),P.addGetterSetter(Wr,`cropX`,0,N()),P.addGetterSetter(Wr,`cropY`,0,N()),P.addGetterSetter(Wr,`cropWidth`,0,N()),P.addGetterSetter(Wr,`cropHeight`,0,N());var Gr=typeof Intl<`u`&&Intl.Segmenter?new Intl.Segmenter(void 0,{granularity:`grapheme`}):null;function Kr(e){return e/15}function qr(e){return Gr?Array.from(Gr.segment(e),e=>e.segment):e.match(/\p{RI}\p{RI}|\P{M}(?:\p{M}|\p{Emoji_Modifier}|\uFE0F|\u200D\P{M})*|\p{M}+/gu)||[]}var Jr=`auto`,Yr=`center`,Xr=`inherit`,Zr=`justify`,Qr=`Change.konva`,$r=`2d`,ei=`-`,ti=`left`,ni=`text`,ri=`Text`,ii=`top`,ai=`bottom`,oi=`middle`,si=`normal`,ci=`px `,li=` `,ui=`right`,di=`rtl`,fi=`word`,pi=`char`,mi=`none`,hi=`…`,gi=[`direction`,`fontFamily`,`fontSize`,`fontStyle`,`fontVariant`,`padding`,`align`,`verticalAlign`,`lineHeight`,`text`,`width`,`height`,`wrap`,`ellipsis`,`letterSpacing`],_i=null;function vi(){if(_i!==null)return _i;_i=!1;let e;try{e=j.createCanvasElement(),e.width=10,e.height=10;let t=e.getContext($r);if(t){t.globalAlpha=0,t.shadowColor=`black`,t.shadowBlur=5,t.shadowOffsetX=5,t.shadowOffsetY=5,t.fillStyle=`black`,t.font=`10px Arial`,t.fillText(`X`,0,10);let e=t.getImageData(0,0,10,10).data;for(let t=3;t0){_i=!0;break}}}catch{}finally{e&&j.releaseCanvas(e)}return _i}function yi(e){return e.split(`,`).map(e=>{e=e.trim();let t=e.indexOf(` `)>=0,n=e.indexOf(`"`)>=0||e.indexOf(`'`)>=0;return t&&!n&&(e=`"${e}"`),e}).join(`, `)}var bi;function xi(){return bi||(bi=j.createCanvasElement().getContext($r),bi)}function Si(e){this._partialFillStyle&&e.setAttr(`fillStyle`,this._partialFillStyle),e.fillText(this._partialText,this._partialTextX,this._partialTextY)}function Ci(e){e.setAttr(`miterLimit`,2),this._partialStrokeStyle&&e.setAttr(`strokeStyle`,this._partialStrokeStyle),e.strokeText(this._partialText,this._partialTextX,this._partialTextY)}function wi(e){return e||={},e.fill||e.fillLinearGradientColorStops||e.fillRadialGradientColorStops||e.fillPatternImage?e:{...e,fill:`black`}}var Ti=class extends R{constructor(e){super(wi(e)),this._partialTextX=0,this._partialTextY=0,this._baselineShift=0,this._setTextData()}_sceneFunc(e){let t=this.textArr,n=t.length;if(!this.text())return;let r=this.padding(),i=this.fontSize(),a=this.lineHeight()*i,o=this.direction(),s=this.align(),c=this.getWidth(),l=this.letterSpacing(),u=this.charRenderFunc(),d=this.textDecoration(),f=d.indexOf(`underline`)!==-1,p=d.indexOf(`line-through`)!==-1,m,h=a/2,g=oi;if(!k.legacyTextRendering){let e=this.measureSize(`M`);g=`alphabetic`,h=((e.fontBoundingBoxAscent??e.actualBoundingBoxAscent)-(e.fontBoundingBoxDescent??e.actualBoundingBoxDescent))/2+a/2}if(o===Xr?o=e.direction:e.setAttr(`direction`,o),e.setAttr(`font`,this._getContextFont()),e.setAttr(`textBaseline`,g),e.setAttr(`textAlign`,ti),e.translate(r,this._getTextTop()),u){let t=e._getFillStyle(this);t!==void 0&&(e.fillStyle=t),this.hasStroke()&&e._applyStrokeStyle(this)}let _=u?e.fillStyle:void 0,v=u?e.strokeStyle:void 0,y=0;for(m=0;m1&&(h+=a)}}_getTextTop(){let e=this.padding(),t=this.getHeight()-this.textArr.length*this.lineHeight()*this.fontSize()-e*2,n=this.verticalAlign();return n===oi?e+t/2:n===ai?e+t:e}_getUnderlineOffset(){return this.underlineOffset()??Math.round(this.fontSize()/(k.legacyTextRendering?2:4))}getSelfRect(){let e=super.getSelfRect(),t=this.textArr.length;if(!t||this.textDecoration().indexOf(`underline`)===-1)return e;let n=this.fontSize(),r=this.lineHeight()*n,i=this._getTextTop()+t*r-r/2;return k.legacyTextRendering||(i+=this._baselineShift),i+=this._getUnderlineOffset()+Kr(n)/2,e.height=Math.max(e.y+e.height,i)-e.y,e}_getSelfRectForDrawing(){let e=this.getSelfRect(),t=this.fontSize(),n=this.padding(),r=this.lineHeight()*t,i=this.getWidth()-n*2,a=this.align(),o=this.textArr.length*r,s=this._getTextTop(),c=e.x,l=e.x+e.width;for(let{text:e,width:t}of this.textArr){let r=n+(a===ui?i-t:a===Yr?(i-t)/2:0),o=Math.min(0,this.letterSpacing())*e.length;c=Math.min(c,r+o),l=Math.max(l,r+t-o)}let u=this.textDecoration().includes(`underline`),d=Math.min(e.y,s+(u?Math.min(0,this._getUnderlineOffset()):0));return{x:c-t,y:d-t,width:l-c+t*2,height:Math.max(e.y+e.height,s+o)-d+t*2}}_hitFunc(e){let t=this.getWidth(),n=this.getHeight();e.beginPath(),e.rect(0,0,t,n),e.closePath(),e.fillStrokeShape(this)}setText(e){let t=j._isString(e)?e:e==null?``:e+``;return this._setAttr(ni,t),this}getWidth(){return this.attrs.width===Jr||this.attrs.width===void 0?this.getTextWidth()+this.padding()*2:this.attrs.width}getHeight(){return this.attrs.height===Jr||this.attrs.height===void 0?this.fontSize()*this.textArr.length*this.lineHeight()+this.padding()*2:this.attrs.height}getTextWidth(){return this.textWidth}getTextHeight(){return j.warn(`text.getTextHeight() method is deprecated. Use text.height() - for full height and text.fontSize() - for one line height.`),this.textHeight}measureSize(e){let t=xi(),n=this.fontSize(),r;t.save(),t.font=this._getContextFont(),r=t.measureText(e),t.restore();let i=n/100;return{actualBoundingBoxAscent:r.actualBoundingBoxAscent??71.58203125*i,actualBoundingBoxDescent:r.actualBoundingBoxDescent??0,actualBoundingBoxLeft:r.actualBoundingBoxLeft??-7.421875*i,actualBoundingBoxRight:r.actualBoundingBoxRight??75.732421875*i,alphabeticBaseline:r.alphabeticBaseline??0,emHeightAscent:r.emHeightAscent??100*i,emHeightDescent:r.emHeightDescent??-20*i,fontBoundingBoxAscent:r.fontBoundingBoxAscent??91*i,fontBoundingBoxDescent:r.fontBoundingBoxDescent??21*i,hangingBaseline:r.hangingBaseline??72.80000305175781*i,ideographicBaseline:r.ideographicBaseline??-21*i,width:r.width,height:n}}_getContextFont(){return this.fontStyle()+li+this.fontVariant()+li+(this.fontSize()+ci)+yi(this.fontFamily())}_addTextLine(e){this.align()===Zr&&(e=e.trim());let t=this._getTextWidth(e);return this.textArr.push({text:e,width:t,lastInParagraph:!1})}_getTextWidth(e,t){let n=this.letterSpacing(),r=n?n*(t??qr(e).length):0;return xi().measureText(e).width+r}_setTextData(){let e=this.text().split(` +`),t=+this.fontSize(),n=this.lineHeight()*t,r=this.attrs.width,i=this.attrs.height,a=r!==Jr&&r!==void 0,o=i!==Jr&&i!==void 0,s=this.padding(),c=r-s*2,l=i-s*2,u=0,d=this.wrap(),f=d!==pi&&d!==mi,p=this.ellipsis(),m=this.measureSize(`M`);this._baselineShift=(m.fontBoundingBoxAscent-m.fontBoundingBoxDescent)/2,this.textArr=[];let h=xi();h.font=this._getContextFont(),h.fontKerning=this.direction()!==di&&(this.letterSpacing()!==0||this.align()===Zr||this.charRenderFunc())?`none`:`auto`;let g=p?this._getTextWidth(hi):0;for(let t=0,r=e.length;tc){let e=qr(i),a=e.length,d=0,m=t=>e.slice(d,t).join(``),h=e=>e===li||e===ei,_=Math.max(1,Math.ceil(a*c/s));for(;dl?g:0,s=e=>!(this._getTextWidth(m(e),e-d)+i>c),v=d,y=Math.min(a,d+_);for(;s(y)&&(v=y,y!==a);)y=Math.min(a,y+(y-d));for(;y-v>1;){let e=v+y>>>1;s(e)?v=e:y=e}if(v===d)break;if(v===a){this._addTextLine(m(a)),u+=n,o&&u+n>l&&t=d&&!h(e[t]);)t--;t>=d&&(v=t+1)}if(this._addTextLine(m(v).trimRight()),u+=n,this._shouldHandleEllipsis(u)){this._tryToAddEllipsisToLastLine();break}for(d=v;dl&&tl)break}this.textHeight=t,this.textWidth=this.textArr.reduce((e,t)=>Math.max(e,t.width),0)}_shouldHandleEllipsis(e){let t=+this.fontSize(),n=this.lineHeight()*t,r=this.attrs.height,i=r!==Jr&&r!==void 0,a=r-this.padding()*2;return this.wrap()===mi||i&&e+n>a}_tryToAddEllipsisToLastLine(){let e=this.attrs.width,t=e!==Jr&&e!==void 0,n=e-this.padding()*2,r=this.ellipsis(),i=this.textArr[this.textArr.length-1];if(!i||!r)return;let a=i.text+hi;if(t){let e=qr(i.text);for(;e.length&&this._getTextWidth(a)>n;)e.pop(),a=e.join(``)+hi;this._getTextWidth(a)>n&&(a=``)}i.text=a,i.width=this._getTextWidth(a)}getStrokeScaleEnabled(){return!0}_getStrokePadding(){return super._getStrokePadding(2)}_useBufferCanvas(e,t=this.getAbsoluteOpacity()){if(this.attrs.perfectDrawEnabled===!1)return!1;let n=this.textDecoration().indexOf(`underline`)!==-1||this.textDecoration().indexOf(`line-through`)!==-1,r=this.hasShadow();return n&&r||r&&t!==1&&vi()?!0:super._useBufferCanvas(e,t)}};Ti.prototype._fillFunc=Si,Ti.prototype._strokeFunc=Ci,Ti.prototype.className=ri,Ti.prototype._attrsAffectingSize=gi.filter(e=>e!==`width`&&e!==`height`).concat([`textDecoration`,`underlineOffset`]),we(Ti,!0),Ti.prototype.on(gi.map(e=>e+Qr).join(` `),function(){this._setTextData()}),P.overWriteSetter(Ti,`width`,Ot()),P.overWriteSetter(Ti,`height`,Ot()),P.addGetterSetter(Ti,`direction`,Xr),P.addGetterSetter(Ti,`fontFamily`,`Arial`),P.addGetterSetter(Ti,`fontSize`,12,N()),P.addGetterSetter(Ti,`fontStyle`,si),P.addGetterSetter(Ti,`fontVariant`,si),P.addGetterSetter(Ti,`padding`,0,N()),P.addGetterSetter(Ti,`align`,ti),P.addGetterSetter(Ti,`verticalAlign`,ii),P.addGetterSetter(Ti,`lineHeight`,1,N()),P.addGetterSetter(Ti,`wrap`,fi),P.addGetterSetter(Ti,`ellipsis`,!1,Mt()),P.addGetterSetter(Ti,`letterSpacing`,0,N()),P.addGetterSetter(Ti,`text`,``,kt()),P.addGetterSetter(Ti,`textDecoration`,``),P.addGetterSetter(Ti,`underlineOffset`,void 0,N()),P.addGetterSetter(Ti,`charRenderFunc`,void 0);var Ei=[...Ti.prototype._attrsAffectingSize,`width`,`height`,`pointerDirection`,`pointerWidth`,`pointerHeight`].map(e=>e+`Change.konva`).join(` `),Di=`none`,Oi=`up`,ki=`right`,Ai=`down`,ji=`left`,Mi=class extends sr{constructor(e){super(e),this._sync=this._sync.bind(this),this.on(`add.konva`,function(e){e.child.off(Ei,this._sync).on(Ei,this._sync),this._sync()})}getText(){return this.find(`Text`)[0]}getTag(){return this.find(`Tag`)[0]}getWidth(){return this.getText().width()}getHeight(){return this.getText().height()}_sync(){let e=this.getText(),t=this.getTag(),n,r,i,a,o,s,c;if(e&&t){switch(n=e.width(),r=e.height(),i=t.pointerDirection(),a=t.pointerWidth(),c=t.pointerHeight(),o=0,s=0,i){case Oi:o=n/2,s=-1*c;break;case ki:o=n+a,s=r/2;break;case Ai:o=n/2,s=r+c;break;case ji:o=-1*a,s=r/2}t.setAttrs({x:-1*o,y:-1*s,width:n,height:r}),e.setAttrs({x:-1*o,y:-1*s})}}};Mi.prototype.className=`Label`,we(Mi);var Ni=class extends R{_sceneFunc(e){let t=this.width(),n=this.height(),r=this.pointerDirection(),i=this.pointerWidth(),a=this.pointerHeight(),o=this.cornerRadius(),[s,c,l,u]=j._cornerRadii(o,t,n);e.beginPath(),e.moveTo(s,0),r===Oi&&(e.lineTo((t-i)/2,0),e.lineTo(t/2,-1*a),e.lineTo((t+i)/2,0)),e.lineTo(t-c,0),e.arc(t-c,c,c,Math.PI*3/2,0,!1),r===ki&&(e.lineTo(t,(n-a)/2),e.lineTo(t+i,n/2),e.lineTo(t,(n+a)/2)),e.lineTo(t,n-l),e.arc(t-l,n-l,l,0,Math.PI/2,!1),r===Ai&&(e.lineTo((t+i)/2,n),e.lineTo(t/2,n+a),e.lineTo((t-i)/2,n)),e.lineTo(u,n),e.arc(u,n-u,u,Math.PI/2,Math.PI,!1),r===ji&&(e.lineTo(0,(n+a)/2),e.lineTo(-1*i,n/2),e.lineTo(0,(n-a)/2)),e.lineTo(0,s),e.arc(s,s,s,Math.PI,Math.PI*3/2,!1),e.closePath(),e.fillStrokeShape(this)}getSelfRect(){let e=this.pointerWidth(),t=this.pointerHeight(),n=this.pointerDirection(),r=this.width(),i=this.height();return n===Oi||n===Ai?{x:Math.min(0,(r-e)/2),y:n===Oi?-t:0,width:Math.max(r,e),height:i+t}:n===ji||n===ki?{x:n===ji?-e:0,y:Math.min(0,(i-t)/2),width:r+e,height:Math.max(i,t)}:{x:0,y:0,width:r,height:i}}};Ni.prototype.className=`Tag`,we(Ni,!0),P.addGetterSetter(Ni,`pointerDirection`,Di),P.addGetterSetter(Ni,`pointerWidth`,0,N()),P.addGetterSetter(Ni,`pointerHeight`,0,N()),P.addGetterSetter(Ni,`cornerRadius`,0,Dt(4));var Pi=class extends R{_getStrokePadding(){return super._getStrokePadding(this.strokeScaleEnabled()?1:void 0)}_sceneFunc(e){let t=this.cornerRadius(),n=this.width(),r=this.height();e.beginPath(),t?j.drawRoundedRectPath(e,n,r,t):e.rect(0,0,n,r),e.closePath(),e.fillStrokeShape(this)}};Pi.prototype.className=`Rect`,we(Pi,!0),P.addGetterSetter(Pi,`cornerRadius`,0,Dt(4));var Fi=class extends R{_sceneFunc(e){let t=this._getPoints(),n=this.radius(),r=this.sides(),i=this.cornerRadius();if(t.length){if(e.beginPath(),i)j.drawRoundedPolygonPath(e,t,r,n,i);else{e.moveTo(t[0].x,t[0].y);for(let n=1;n{t=Math.min(t,e.x),n=Math.max(n,e.x),r=Math.min(r,e.y),i=Math.max(i,e.y)}),{x:t,y:r,width:n-t,height:i-r}}getWidth(){return this.radius()*2}getHeight(){return this.radius()*2}setWidth(e){this.radius(e/2)}setHeight(e){this.radius(e/2)}};Fi.prototype.className=`RegularPolygon`,Fi.prototype._centroid=!0,Fi.prototype._attrsAffectingSize=[`radius`,`sides`],we(Fi,!0),P.addGetterSetter(Fi,`radius`,0,N()),P.addGetterSetter(Fi,`sides`,0,N()),P.addGetterSetter(Fi,`cornerRadius`,0,Dt(4));var Ii=Math.PI*2,Li=class extends R{_getStrokePadding(){return super._getStrokePadding(1)}_sceneFunc(e){let t=Math.abs(this.innerRadius()),n=Math.abs(this.outerRadius());e.beginPath(),e.arc(0,0,t,0,Ii,!1),e.moveTo(n,0),e.arc(0,0,n,Ii,0,!0),e.closePath(),e.fillStrokeShape(this)}getSelfRect(){let e=Math.max(Math.abs(this.innerRadius()),Math.abs(this.outerRadius()));return{x:-e,y:-e,width:e*2,height:e*2}}getWidth(){return Math.abs(this.outerRadius())*2}getHeight(){return Math.abs(this.outerRadius())*2}setWidth(e){this.outerRadius(e/2)}setHeight(e){this.outerRadius(e/2)}};Li.prototype.className=`Ring`,Li.prototype._centroid=!0,Li.prototype._attrsAffectingSize=[`innerRadius`,`outerRadius`],we(Li,!0),P.addGetterSetter(Li,`innerRadius`,0,N()),P.addGetterSetter(Li,`outerRadius`,0,N());var Ri=class extends R{constructor(e){super(e),this._updated=!0,this.anim=new lr(()=>{let e=this._updated;return this._updated=!1,e}),this.on(`animationChange.konva`,function(){this.frameIndex(0)}),this.on(`frameIndexChange.konva`,function(){this._updated=!0}),this.on(`frameRateChange.konva`,function(){this.anim.isRunning()&&(clearInterval(this.interval),this._setInterval())})}_getFrame(){let e=this.animation(),t=this.animations()?.[e],n=this.frameIndex(),r=n*4;if(!t||!Number.isInteger(n)||r<0||r+4>t.length)return;let i=this.frameOffsets()?.[e]||[];return{x:t[r],y:t[r+1],width:t[r+2],height:t[r+3],offsetX:i[n*2]||0,offsetY:i[n*2+1]||0}}_getStrokePadding(){return super._getStrokePadding(this.strokeScaleEnabled()?1:void 0)}_sceneFunc(e){let t=this._getFrame();if(!t)return;let{x:n,y:r,width:i,height:a,offsetX:o,offsetY:s}=t,c=this.image();(this.hasFill()||this.hasStroke())&&(e.beginPath(),e.rect(o,s,i,a),e.closePath(),e.fillStrokeShape(this)),c&&e.drawImage(c,n,r,i,a,o,s,i,a)}_hitFunc(e){let{x:t,y:n,width:r,height:i}=this.getSelfRect();e.beginPath(),e.rect(t,n,r,i),e.closePath(),e.fillShape(this)}getSelfRect(){let e=this._getFrame();return e?{x:e.offsetX,y:e.offsetY,width:e.width,height:e.height}:{x:0,y:0,width:0,height:0}}_useBufferCanvas(e,t=this.getAbsoluteOpacity()){return super._useBufferCanvas(!0,t)}_setInterval(){let e=this;this.interval=setInterval(function(){e._updateIndex()},1e3/this.frameRate())}start(){if(this.isRunning())return;let e=this.getLayer();this.anim.setLayers(e),this._setInterval(),this.anim.start()}stop(){this.anim.stop(),clearInterval(this.interval)}destroy(){return this.stop(),super.destroy()}isRunning(){return this.anim.isRunning()}_updateIndex(){let e=this.frameIndex(),t=this.animations()?.[this.animation()],n=t?t.length/4:0;this.frameIndex(ethis.pathLength?null:Br.getPointAtLengthOfDataArray(e,this.dataArray,t)}_readDataAttribute(){this.dataArray=Br.parsePathData(this.attrs.data),this.pathLength=this._getTextPathLength()}_sceneFunc(e){e.setAttr(`font`,this._getContextFont()),e.setAttr(`textBaseline`,this.textBaseline()),e.setAttr(`textAlign`,`left`),e.save();let t=this.textDecoration(),n=this.fill(),r=this.fontSize(),i=this.glyphInfo,a=t.indexOf(`underline`)!==-1,o=t.indexOf(`line-through`)!==-1;a&&e.beginPath();for(let t=0;t=1){let n=t[0].p0;e.moveTo(n.x,n.y)}for(let n=0;n0)try{a=t(e[i-1],e[i])*this.fontSize()}catch{}n.push({char:e[i],width:this._getTextSize(e[i]).width,kern:a}),r+=n[i].width+a}let{width:i,height:a}=this._getTextSize(this.attrs.text);if(this.textWidth=r,this.textHeight=a,this.glyphInfo=[],!this.attrs.data)return null;let o=this.letterSpacing(),s=this.align(),c=s===`justify`?this.text().split(` `).length-1:0,l=Math.max(0,r-i),u=Math.max(this.textWidth+(e.length-1)*o,0),d=0;s===`center`&&(d=Math.max(0,this.pathLength/2-u/2)),s===`right`&&(d=Math.max(0,this.pathLength-u));let f=d,p=this.dataArray.some((e,t)=>t>0&&e.command===`M`)?void 0:{index:0,offset:0};for(let t=0;tthis.pathLength&&d-this.pathLength<=l?this.pathLength:d,p);if(!m)return;let h=Br.getLineLength(r.x,r.y,m.x,m.y),g=Math.atan2(m.y-r.y,m.x-r.x);this.glyphInfo.push({text:e[t],rotation:g,p0:r,p1:m,width:h}),f+=a}}getSelfRect(){if(!this.glyphInfo.length)return{x:0,y:0,width:0,height:0};let e=[];this.glyphInfo.forEach(function(t){e.push(t.p0.x),e.push(t.p0.y),e.push(t.p1.x),e.push(t.p1.y)});let t=j._getPointsRect(e),n=this.fontSize();return{x:t.x-n/2,y:t.y-n/2,width:t.width+n,height:t.height+n}}getStrokeScaleEnabled(){return!0}_getSelfRectForDrawing(){let e=this.getSelfRect(),t=this.fontSize();return{x:e.x-t,y:e.y-t,width:e.width+t*2,height:e.height+t*2}}};Wi.prototype._fillFunc=Hi,Wi.prototype._strokeFunc=Ui,Wi.prototype._fillFuncHit=Hi,Wi.prototype._strokeFuncHit=Ui,Wi.prototype.className=`TextPath`,Wi.prototype._attrsAffectingSize=[`text`,`fontSize`,`data`,`align`,`letterSpacing`,`kerningFunc`,`fontFamily`,`fontStyle`,`fontVariant`,`direction`],we(Wi,!0),Wi.prototype.on(`dataChange.konva`,function(){this._readDataAttribute(),this._setTextData()}),Wi.prototype.on(Wi.prototype._attrsAffectingSize.filter(e=>e!==`data`).map(e=>e+`Change.konva`).join(` `),function(){this._setTextData()}),P.addGetterSetter(Wi,`data`),P.addGetterSetter(Wi,`fontFamily`,`Arial`),P.addGetterSetter(Wi,`fontSize`,12,N()),P.addGetterSetter(Wi,`fontStyle`,Vi),P.addGetterSetter(Wi,`align`,`left`),P.addGetterSetter(Wi,`letterSpacing`,0,N()),P.addGetterSetter(Wi,`textBaseline`,`middle`),P.addGetterSetter(Wi,`fontVariant`,Vi),P.addGetterSetter(Wi,`text`,Bi),P.addGetterSetter(Wi,`textDecoration`,``),P.addGetterSetter(Wi,`kerningFunc`,void 0),P.addGetterSetter(Wi,`direction`,`inherit`);var Gi=`tr-konva`,Ki=[`resizeEnabledChange`,`rotateAnchorOffsetChange`,`rotateAnchorAngleChange`,`rotateEnabledChange`,`rotateModeChange`,`enabledAnchorsChange`,`anchorSizeChange`,`borderEnabledChange`,`shouldOverdrawWholeAreaChange`,`borderStrokeChange`,`borderStrokeWidthChange`,`borderDashChange`,`anchorStrokeChange`,`anchorStrokeWidthChange`,`anchorFillChange`,`anchorCornerRadiusChange`,`ignoreStrokeChange`,`anchorStyleFuncChange`,`paddingChange`].map(e=>e+`.${Gi}`).join(` `),qi=`nodesRect`,Ji=[`widthChange`,`heightChange`,`scaleXChange`,`scaleYChange`,`skewXChange`,`skewYChange`,`rotationChange`,`offsetXChange`,`offsetYChange`,`transformsEnabledChange`,`strokeWidthChange`,`strokeChange`,`selfRectFuncChange`,`strokeLinearGradientColorStopsChange`,`strokeScaleEnabledChange`,`strokeEnabledChange`,`draggableChange`],Yi={"top-left":-45,"top-center":0,"top-right":45,"middle-right":-90,"middle-left":90,"bottom-left":-135,"bottom-center":180,"bottom-right":135},Xi=`ontouchstart`in k._global,Zi=[`rotater-top-left`,`rotater-top-right`,`rotater-bottom-left`,`rotater-bottom-right`];function Qi(e){return e.startsWith(`rotater`)}var $i=Math.PI/12;function ea(e,t){let n=``;return`url("data:image/svg+xml,${encodeURIComponent(n)}") 12 12, ${t}`}function ta(e,t,n){if(e===`rotater`)return n;if(Qi(e)){let r=e.slice(8);return ea(Math.round(j.radToDeg(t)+Yi[r]-45),n)}t+=j.degToRad(Yi[e]||0);let r=(j.radToDeg(t)%360+360)%360;return j._inRange(r,337.5,360)||j._inRange(r,0,22.5)?`ns-resize`:j._inRange(r,22.5,67.5)?`nesw-resize`:j._inRange(r,67.5,112.5)?`ew-resize`:j._inRange(r,112.5,157.5)?`nwse-resize`:j._inRange(r,157.5,202.5)?`ns-resize`:j._inRange(r,202.5,247.5)?`nesw-resize`:j._inRange(r,247.5,292.5)?`ew-resize`:j._inRange(r,292.5,337.5)?`nwse-resize`:(j.error(`Transformer has unknown angle for cursor detection: `+r),`pointer`)}var na=[`top-left`,`top-center`,`top-right`,`middle-right`,`middle-left`,`bottom-left`,`bottom-center`,`bottom-right`];function ra(e){return{x:e.x+e.width/2*Math.cos(e.rotation)+e.height/2*Math.sin(-e.rotation),y:e.y+e.height/2*Math.cos(e.rotation)+e.width/2*Math.sin(e.rotation)}}function ia(e,t,n){let r=n.x+(e.x-n.x)*Math.cos(t)-(e.y-n.y)*Math.sin(t),i=n.y+(e.x-n.x)*Math.sin(t)+(e.y-n.y)*Math.cos(t);return{...e,rotation:e.rotation+t,x:r,y:i}}function aa(e,t){return ia(e,t,ra(e))}function z(e,t,n){let r=t,i=n;for(let n=0;n0&&(c=Math.min(c,(n-s)/a)),i<0?c=Math.min(c,-o/i):i>0&&(c=Math.min(c,(t-o)/i));let l=o+i*c,u=s+a*c,d=e.rotateAnchorOffset()+e.padding();return{edgeX:l,edgeY:u,endX:l+i*d,endY:u+a*d}}var sa=new Set,B=class extends sr{static _isLayerTransforming(e){for(let t of sa)if(t.getLayer()===e||t._nodes.some(t=>t.getLayer()===e))return!0;return!1}constructor(e){super(e),this._movingAnchorName=null,this._anchors={},this._transforming=!1,this._fitting=!1,this._transformWindow=null,this._elementsCreated=!1,this._updatePending=!1,this._createElements(),this._handleMouseMove=this._handleMouseMove.bind(this),this._handleMouseUp=this._handleMouseUp.bind(this),this.update=this.update.bind(this),this._syncUpdate=this._syncUpdate.bind(this),this.on(Ki,e=>{e.type===`ignoreStrokeChange`&&this._resetTransformCache(),this.update()}),this.on(`rotationChange.${Gi}`,()=>this._clearCache(qi)),this.getNode()&&this.update()}attachTo(e){return this.setNode(e),this}setNode(e){return j.warn(`tr.setNode(shape), tr.node(shape) and tr.attachTo(shape) methods are deprecated. Please use tr.nodes(nodesArray) instead.`),this.setNodes([e])}getNode(){return this._nodes&&this._nodes[0]}_getEventNamespace(){return Gi+this._id}setNodes(e=[]){this._nodes&&this._nodes.length&&this.detach();let t=new Set(e);for(let e of t)e.isAncestorOf(this)&&(j.error(`Konva.Transformer cannot be an a child of the node you are trying to attach`),t.delete(e));let n=Array.from(t).filter(e=>{for(let n=e.getParent();n;n=n.getParent())if(t.has(n))return!1;return!0});return this._nodes=e=n,this._resetRotation(),this._nodes.forEach(e=>{let t=()=>{var t;this._fitting?(t=this._nodeRectCache)==null||t.delete(e):(this.nodes().length===1&&this.useSingleNodeRotation()&&this.rotation(this.nodes()[0].getAbsoluteRotation()),this._resetTransformCache(e),this.isDragging()||this._scheduleUpdate())};if(e._attrsAffectingSize.length){let n=e._attrsAffectingSize.map(e=>e+`Change.`+this._getEventNamespace()).join(` `);e.on(n,t)}e.on(Ji.map(e=>e+`.${this._getEventNamespace()}`).join(` `),t),e.on(`absoluteTransformChange.${this._getEventNamespace()}`,t),e instanceof Qt&&e._addSubtreeObserver(this),e.on(`destroy.${this._getEventNamespace()}`,()=>{this._removeNode(e)}),this._proxyDrag(e)}),this._resetTransformCache(),this._elementsCreated&&this.update(),this}_proxyDrag(e){let t;e.on(`dragstart.${this._getEventNamespace()}`,n=>{t=e.getAbsolutePosition(),!this.isDragging()&&e!==this._back&&this.startDrag(n,!1)}),e.on(`dragmove.${this._getEventNamespace()}`,n=>{if(!t)return;let r=e.getAbsolutePosition(),i=r.x-t.x,a=r.y-t.y;this.nodes().forEach(t=>{if(t===e||t.isDragging())return;let r=t.getAbsolutePosition();t.setAbsolutePosition({x:r.x+i,y:r.y+a}),t.startDrag(n)}),t=null})}_detachNode(e){e.off(`.`+this._getEventNamespace()),e._removeSubtreeObserver(this)}_resetRotation(){let e=this._nodes.length===1&&this.useSingleNodeRotation();this.rotation(e?this._nodes[0].getAbsoluteRotation():0)}_removeNode(e){this._detachNode(e),this._nodes=this._nodes.filter(t=>t!==e),this._resetRotation(),this._resetTransformCache(e),this._scheduleUpdate()}getNodes(){return this._nodes||[]}getActiveAnchor(){return this._movingAnchorName}detach(){var e,t;(e=this._nodes)==null||e.forEach(e=>this._detachNode(e)),this._nodes=[],this._updatePending=!1,this._resetTransformCache(),(t=this.getLayer())==null||t.batchDraw()}_resetTransformCache(e){var t,n;e?(t=this._nodeRectCache)==null||t.delete(e):(n=this._nodeRectCache)==null||n.clear(),this._clearCache(qi),this._clearCache(`transform`),this._clearSelfAndDescendantCache(`absoluteTransform`)}_onSubtreeChange(e){var t;this._fitting||((!this._updatePending||this._cache[qi])&&this._resetTransformCache(e),I._updateBatchDepth>0?this._scheduleUpdate():this._updatePending||(this._updatePending=!0,j.requestAnimFrame(this._syncUpdate,this.getStage()?._getOwnerWindow()),(t=this.getLayer())==null||t.batchDraw()))}_syncUpdate(){this._updatePending&&!this._fitting&&!this.isDragging()&&this._update()}drawScene(e,t){return this._syncUpdate(),super.drawScene(e,t)}drawHit(e,t){return this._syncUpdate(),super.drawHit(e,t)}_getNodeRect(){return this._getCache(qi,this.__getNodeRect)}__getNodeRect(){if(!this.getNode())return{x:-1e8,y:-1e8,width:0,height:0,rotation:0};let e=k.getAngle(this.rotation()),t=this.ignoreStroke(),n=new A;n.rotate(-e);let r=this._nodeRectCache||=new Map,i=1/0,a=1/0,o=-1/0,s=-1/0;for(let c of this.nodes()){let l=c instanceof R&&c.getSelfRect===R.prototype.getSelfRect&&!c.attrs.selfRectFunc&&!c._hasCachedAncestor(),u=l?c.width():0,d=l?c.height():0;l&&(c._attrsVersion??=0);let f=l?r.get(c):void 0;if(!f||f.rotation!==e||f.ignoreStroke!==t||f.version!==c._attrsVersion||f.width!==u||f.height!==d){let i=c.getAbsoluteTransform(),[a,o,s,p]=i.getMatrix(),m=a*p-o*s===0,h=c.getClientRect({skipTransform:!m,skipShadow:!0,skipStroke:t}),g=[{x:h.x,y:h.y},{x:h.x+h.width,y:h.y},{x:h.x+h.width,y:h.y+h.height},{x:h.x,y:h.y+h.height}];m&&(i=new A),f={rotation:e,ignoreStroke:t,width:u,height:d,version:c._attrsVersion||0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0};for(let e of g){let t=n.point(i.point(e));f.minX=Math.min(f.minX,t.x),f.minY=Math.min(f.minY,t.y),f.maxX=Math.max(f.maxX,t.x),f.maxY=Math.max(f.maxY,t.y)}l&&r.set(c,f)}i=Math.min(i,f.minX),a=Math.min(a,f.minY),o=Math.max(o,f.maxX),s=Math.max(s,f.maxY)}n.invert();let c=n.point({x:i,y:a});return{x:c.x,y:c.y,width:o-i,height:s-a,rotation:k.getAngle(this.rotation())}}getX(){return this._getNodeRect().x}getY(){return this._getNodeRect().y}getWidth(){return this._getNodeRect().width}getHeight(){return this._getNodeRect().height}_createElements(){this._createBack(),Zi.forEach(e=>{this._createAnchor(e,`_rotate-zone`).setAttrs({fill:`transparent`,strokeEnabled:!1,visible:!1})}),na.forEach(e=>{this._createAnchor(e)}),this._createAnchor(`rotater`),this._elementsCreated=!0}_createAnchor(e,t=`_anchor`){let n=new Pi({stroke:`rgb(0, 161, 255)`,fill:`white`,strokeWidth:1,name:e+` `+t,dragDistance:0,draggable:!0,hitStrokeWidth:Xi?10:`auto`});this._anchors[e]=n;let r=this;return n.on(`mousedown touchstart`,function(e){r._handleMouseDown(e)}),n.on(`dragstart`,e=>{n.stopDrag(),e.cancelBubble=!0}),n.on(`dragend`,e=>{e.cancelBubble=!0}),n.on(`mouseenter`,()=>{this.isTransforming()||(this._setAnchorCursor(e),this._cursorChange=!0)}),n.on(`mouseout`,()=>{this._cursorChange=!1,!this.isTransforming()&&n.getStage().content&&(n.getStage().content.style.cursor=``)}),this.add(n),n}_setAnchorCursor(e,t=k.getAngle(this.rotation())){let n=this.getStage()?.content;n&&(n.style.cursor=ta(e,t,this.rotateAnchorCursor()))}_createBack(){let e=new R({name:`back`,width:0,height:0,sceneFunc(e,t){let n=t.getParent();if(!n.borderEnabled())return;let r=n.padding(),i=t.width(),a=t.height();if(e.beginPath(),e.rect(-r,-r,i+r*2,a+r*2),n.rotateEnabled()&&n.rotateLineVisible()&&n.rotateMode()!==`corners`){let t=oa(n,i,a);e.moveTo(t.edgeX,t.edgeY),e.lineTo(t.endX,t.endY)}e.fillStrokeShape(t)},hitFunc:(e,t)=>{if(!this.shouldOverdrawWholeArea())return;let n=this.padding();e.beginPath(),e.rect(-n,-n,t.width()+n*2,t.height()+n*2),e.fillStrokeShape(t)}});this._back=e,this.add(e),this._proxyDrag(e),e.on(`dragstart`,e=>{e.cancelBubble=!0}),e.on(`dragmove`,e=>{e.cancelBubble=!0}),e.on(`dragend`,e=>{e.cancelBubble=!0}),this.on(`dragmove`,e=>{this.update()})}_handleMouseDown(e){if(e.evt.button!==void 0&&!k.dragButtons.includes(e.evt.button)||this._transforming)return;this._movingAnchorName=e.target.name().split(` `)[0];let t=this._getNodeRect(),n=t.width,r=t.height,i=Math.sqrt(n**2+r**2);this.sin=Math.abs(r/i),this.cos=Math.abs(n/i);let a=this.getStage()?._getOwnerWindow();this._transformWindow=a||null,a&&(a.addEventListener(`mousemove`,this._handleMouseMove),a.addEventListener(`touchmove`,this._handleMouseMove),a.addEventListener(`mouseup`,this._handleMouseUp,!0),a.addEventListener(`touchend`,this._handleMouseUp,!0),a.addEventListener(`touchcancel`,this._handleMouseUp,!0)),this._transforming=!0,this._pointerId=e.pointerId??j._getFirstPointerId(e.evt);let o=e.target.getAbsolutePosition(),s=e.target.getStage()._getPointerById(this._pointerId);if(this._anchorDragOffset={x:s.x-o.x,y:s.y-o.y},Qi(this._movingAnchorName)){let e=ra(t);this._rotateStart={pointerAngle:Math.atan2(s.y-e.y,s.x-e.x),rotation:t.rotation}}sa.add(this),this._fire(`transformstart`,{evt:e.evt,target:this.getNode()}),this._nodes.forEach(t=>{t._fire(`transformstart`,{evt:e.evt,target:t})})}_handleMouseMove(e){var t;(t=this.getStage())==null||t._batchEvents(()=>this._moveTransform(e))}_moveTransform(e){this._syncUpdate();let t,n,r,i=this._anchors[this._movingAnchorName],a=i.getStage();a.setPointersPositions(e);let o=a._getPointerById(this._pointerId);if(!o)return;let s={x:o.x-this._anchorDragOffset.x,y:o.y-this._anchorDragOffset.y},c=i.getAbsolutePosition();this.anchorDragBoundFunc()&&(s=this.anchorDragBoundFunc()(c,s,e)),i.setAbsolutePosition(s);let l=i.getAbsolutePosition();if(c.x===l.x&&c.y===l.y)return;if(Qi(this._movingAnchorName)){let t=this._getNodeRect(),n=ra(t),r=this._rotateStart,i={x:l.x+this._anchorDragOffset.x,y:l.y+this._anchorDragOffset.y},a=Math.atan2(i.y-n.y,i.x-n.x),o=r.rotation+a-r.pointerAngle,s;if(e.shiftKey&&this.shiftBehavior()!==`none`)s=Math.round(o/$i)*$i;else{let e=k.getAngle(this.rotationSnapTolerance());s=z(this.rotationSnaps(),o,e)}this._movingAnchorName!==`rotater`&&this._setAnchorCursor(this._movingAnchorName,s);let c=aa(t,s-t.rotation);this._fitNodesInto(c,e);return}let u=this.shiftBehavior(),d;d=u===`inverted`?this.keepRatio()&&!e.shiftKey:u===`none`?this.keepRatio():this.keepRatio()||e.shiftKey;let f=this.centeredScaling()||e.altKey,p=!1;if(this._movingAnchorName===`top-left`){if(d){p=!0;let e=f?{x:this.width()/2,y:this.height()/2}:{x:this._anchors[`bottom-right`].x(),y:this._anchors[`bottom-right`].y()};r=Math.sqrt((e.x-i.x())**2+(e.y-i.y())**2);let a=this._anchors[`top-left`].x()>e.x?-1:1,o=this._anchors[`top-left`].y()>e.y?-1:1;t=r*this.cos*a,n=r*this.sin*o,this._anchors[`top-left`].x(e.x-t),this._anchors[`top-left`].y(e.y-n)}}else if(this._movingAnchorName===`top-center`)this._anchors[`top-left`].y(i.y());else if(this._movingAnchorName===`top-right`){if(d){p=!0;let e=f?{x:this.width()/2,y:this.height()/2}:{x:this._anchors[`bottom-left`].x(),y:this._anchors[`bottom-left`].y()};r=Math.sqrt((i.x()-e.x)**2+(e.y-i.y())**2);let a=this._anchors[`top-right`].x()e.y?-1:1;t=r*this.cos*a,n=r*this.sin*o,this._anchors[`top-right`].x(e.x+t),this._anchors[`top-right`].y(e.y-n)}var m=i.position();this._anchors[`top-left`].y(m.y),this._anchors[`bottom-right`].x(m.x)}else if(this._movingAnchorName===`middle-left`)this._anchors[`top-left`].x(i.x());else if(this._movingAnchorName===`middle-right`)this._anchors[`bottom-right`].x(i.x());else if(this._movingAnchorName===`bottom-left`){if(d){p=!0;let e=f?{x:this.width()/2,y:this.height()/2}:{x:this._anchors[`top-right`].x(),y:this._anchors[`top-right`].y()};r=Math.sqrt((e.x-i.x())**2+(i.y()-e.y)**2);let a=e.xe.id===this._pointerId))||(t?t._batchEvents(()=>this._removeEvents(e)):this._removeEvents(e))}getAbsoluteTransform(e){let t=this.getTransform();return e?e.getAbsoluteTransform().copy().invert().multiply(t):t}_removeEvents(e){var t;if(this._transforming){this._transforming=!1;let n=this.getStage()?.content;n&&!this._cursorChange&&(n.style.cursor=``);let r=this._transformWindow;this._transformWindow=null,r&&(r.removeEventListener(`mousemove`,this._handleMouseMove),r.removeEventListener(`touchmove`,this._handleMouseMove),r.removeEventListener(`mouseup`,this._handleMouseUp,!0),r.removeEventListener(`touchend`,this._handleMouseUp,!0),r.removeEventListener(`touchcancel`,this._handleMouseUp,!0));let i=this.getNode();sa.delete(this),this._fire(`transformend`,{evt:e,target:i}),(t=this.getLayer())==null||t.batchDraw(),i&&this._nodes.forEach(t=>{var n;t._fire(`transformend`,{evt:e,target:t}),(n=t.getLayer())==null||n.batchDraw()}),this._movingAnchorName=null}}_fitNodesInto(e,t,n=!1){this._fitting=!0;try{return this._doFitNodesInto(e,t,n)}finally{this._fitting=!1}}_doFitNodesInto(e,t,n=!1){let r=this._getNodeRect();if(!r.width||!r.height||j._inRange(e.width,-this.padding()*2-1,1)||j._inRange(e.height,-this.padding()*2-1,1)){this.update();return}let i=new A;i.rotate(k.getAngle(this.rotation()));let a=n?0:this.padding()*2,o=null,s=null;if(this._movingAnchorName&&e.width<0&&this._movingAnchorName.indexOf(`left`)>=0){let t=i.point({x:-a,y:0});e.x+=t.x,e.y+=t.y,e.width+=a,o={axis:`width`,from:`left`,to:`right`,offset:t}}else if(this._movingAnchorName&&e.width<0&&this._movingAnchorName.indexOf(`right`)>=0){let t=i.point({x:a,y:0});e.width+=a,o={axis:`width`,from:`right`,to:`left`,offset:t}}if(this._movingAnchorName&&e.height<0&&this._movingAnchorName.indexOf(`top`)>=0){let t=i.point({x:0,y:-a});e.x+=t.x,e.y+=t.y,e.height+=a,s={axis:`height`,from:`top`,to:`bottom`,offset:t}}else if(this._movingAnchorName&&e.height<0&&this._movingAnchorName.indexOf(`bottom`)>=0){let t=i.point({x:0,y:a});e.height+=a,s={axis:`height`,from:`bottom`,to:`top`,offset:t}}if(this.boundBoxFunc()){let t=this.boundBoxFunc()(r,e);t?e=t:j.warn(`boundBoxFunc returned falsy. You should return new bound rect from it!`)}for(let t of[o,s])t&&e[t.axis]<0&&this._movingAnchorName&&(this._movingAnchorName=this._movingAnchorName.replace(t.from,t.to),this._anchorDragOffset.x-=t.offset.x,this._anchorDragOffset.y-=t.offset.y);let c=1e7,l=new A;l.translate(r.x,r.y),l.rotate(r.rotation),l.scale(r.width/c,r.height/c);let u=new A,d=e.width/c,f=e.height/c;this.flipEnabled()===!1?(u.translate(e.x,e.y),u.rotate(e.rotation),u.translate(e.width<0?e.width:0,e.height<0?e.height:0),u.scale(Math.abs(d),Math.abs(f))):(u.translate(e.x,e.y),u.rotate(e.rotation),u.scale(d,f));let p=u.multiply(l.invert()),m=new Set;this._nodes.forEach(e=>{if(!e.getStage())return;let t=e.getParent().getAbsoluteTransform(),n=e.getTransform().copy();n.translate(e.offsetX(),e.offsetY());let r=new A;r.multiply(t.copy().invert()).multiply(p).multiply(t).multiply(n);let i=r.decompose();e.setAttrs(i);let a=e.getLayer();a&&m.add(a)}),this.rotation(j._getRotation(e.rotation)),this._nodes.forEach(e=>{this._fire(`transform`,{evt:t,target:e}),e._fire(`transform`,{evt:t,target:e})}),this._resetTransformCache(),this.update(),m.add(this.getLayer()),m.forEach(e=>e&&e.batchDraw())}_scheduleUpdate(){this._updatePending=!0,I._runAfterUpdateBatch(this._syncUpdate)}forceUpdate(){this._resetTransformCache(),this.update()}update(){this._lastNodeRect=void 0,this._update()}_update(){var e;this._updatePending=!1;let t=this._getNodeRect();this._updateElements(t);let n=this.nodes().some(e=>e.draggable());this._back.draggable()!==n&&this._back.draggable(n);let r=this.anchorStyleFunc();r&&Object.values(this._anchors).forEach(e=>e.hasName(`_anchor`)&&r(e)),(e=this.getLayer())==null||e.batchDraw()}_updateElements(e){let t=this._lastNodeRect;if(t&&!this.anchorStyleFunc()&&e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height&&e.rotation===t.rotation)return;this._lastNodeRect={...e};let n=e.width,r=e.height,i=this.enabledAnchors(),a=this.resizeEnabled(),o=this.padding(),s=this.anchorSize();Object.values(this._anchors).filter(e=>e.hasName(`_anchor`)).forEach(e=>{e.setAttrs({width:s,height:s,offsetX:s/2,offsetY:s/2,stroke:this.anchorStroke(),strokeWidth:this.anchorStrokeWidth(),fill:this.anchorFill(),cornerRadius:this.anchorCornerRadius()})}),this._anchors[`top-left`].setAttrs({x:0,y:0,offsetX:s/2+o,offsetY:s/2+o,visible:a&&i.indexOf(`top-left`)>=0}),this._anchors[`top-center`].setAttrs({x:n/2,y:0,offsetY:s/2+o,visible:a&&i.indexOf(`top-center`)>=0}),this._anchors[`top-right`].setAttrs({x:n,y:0,offsetX:s/2-o,offsetY:s/2+o,visible:a&&i.indexOf(`top-right`)>=0}),this._anchors[`middle-left`].setAttrs({x:0,y:r/2,offsetX:s/2+o,visible:a&&i.indexOf(`middle-left`)>=0}),this._anchors[`middle-right`].setAttrs({x:n,y:r/2,offsetX:s/2-o,visible:a&&i.indexOf(`middle-right`)>=0}),this._anchors[`bottom-left`].setAttrs({x:0,y:r,offsetX:s/2+o,offsetY:s/2-o,visible:a&&i.indexOf(`bottom-left`)>=0}),this._anchors[`bottom-center`].setAttrs({x:n/2,y:r,offsetY:s/2-o,visible:a&&i.indexOf(`bottom-center`)>=0}),this._anchors[`bottom-right`].setAttrs({x:n,y:r,offsetX:s/2-o,offsetY:s/2-o,visible:a&&i.indexOf(`bottom-right`)>=0});let c=this.rotateMode(),l=oa(this,n,r);this._anchors.rotater.setAttrs({x:l.endX,y:l.endY,visible:this.rotateEnabled()&&c!==`corners`});let u=s*2,d=this.rotateEnabled()&&c!==`handle`,f=-o-u;Zi.forEach(e=>{this._anchors[e].setAttrs({x:e.includes(`left`)?f:n+o,y:e.includes(`top`)?f:r+o,width:u,height:u,visible:d})}),this._back.setAttrs({width:n,height:r,visible:this.borderEnabled()||this.shouldOverdrawWholeArea(),stroke:this.borderStroke(),strokeWidth:this.borderStrokeWidth(),dash:this.borderDash(),x:0,y:0})}isTransforming(){return this._transforming}stopTransform(){this._transforming&&this._removeEvents()}destroy(){return this.getStage()&&this._cursorChange&&this.getStage().content&&(this.getStage().content.style.cursor=``),sr.prototype.destroy.call(this),this.detach(),this._removeEvents(),this}add(...e){return this._elementsCreated?(j.error(`You cannot add external nodes to the Transformer. Use tr.nodes([node]) instead.`),this):super.add(...e)}toObject(){return I.prototype.toObject.call(this)}clone(e){return I.prototype.clone.call(this,e)}getClientRect(e){return this._syncUpdate(),this.nodes().length>0?super.getClientRect(e):{x:0,y:0,width:0,height:0}}};B.isTransforming=()=>sa.size>0;function ca(e){return e instanceof Array||j.warn(`enabledAnchors value should be an array`),e instanceof Array&&e.forEach(function(e){na.indexOf(e)===-1&&j.warn(`Unknown anchor name: `+e+`. Available names are: `+na.join(`, `))}),e||[]}B.prototype.className=`Transformer`,we(B),P.addGetterSetter(B,`enabledAnchors`,na,ca),P.addGetterSetter(B,`flipEnabled`,!0,Mt()),P.addGetterSetter(B,`resizeEnabled`,!0),P.addGetterSetter(B,`anchorSize`,10,N()),P.addGetterSetter(B,`rotateEnabled`,!0),P.addGetterSetter(B,`rotateLineVisible`,!0),P.addGetterSetter(B,`rotationSnaps`,[]),P.addGetterSetter(B,`rotateAnchorOffset`,50,N()),P.addGetterSetter(B,`rotateAnchorAngle`,0,N()),P.addGetterSetter(B,`rotateAnchorCursor`,`crosshair`),P.addGetterSetter(B,`rotateMode`,`handle`),P.addGetterSetter(B,`rotationSnapTolerance`,5,N()),P.addGetterSetter(B,`borderEnabled`,!0),P.addGetterSetter(B,`anchorStroke`,`rgb(0, 161, 255)`),P.addGetterSetter(B,`anchorStrokeWidth`,1,N()),P.addGetterSetter(B,`anchorFill`,`white`),P.addGetterSetter(B,`anchorCornerRadius`,0,N()),P.addGetterSetter(B,`borderStroke`,`rgb(0, 161, 255)`),P.addGetterSetter(B,`borderStrokeWidth`,1,N()),P.addGetterSetter(B,`borderDash`),P.addGetterSetter(B,`keepRatio`,!0),P.addGetterSetter(B,`shiftBehavior`,`default`),P.addGetterSetter(B,`centeredScaling`,!1),P.addGetterSetter(B,`ignoreStroke`,!1),P.addGetterSetter(B,`padding`,0,N()),P.addGetterSetter(B,`nodes`),P.addGetterSetter(B,`node`),P.addGetterSetter(B,`boundBoxFunc`),P.addGetterSetter(B,`anchorDragBoundFunc`),P.addGetterSetter(B,`anchorStyleFunc`),P.addGetterSetter(B,`shouldOverdrawWholeArea`,!1),P.addGetterSetter(B,`useSingleNodeRotation`,!0),P.backCompat(B,{lineEnabled:`borderEnabled`,rotateHandlerOffset:`rotateAnchorOffset`,enabledHandlers:`enabledAnchors`});var la=class extends R{_sceneFunc(e){e.beginPath(),e.arc(0,0,Math.abs(this.radius()),0,k.getAngle(this.angle()),this.clockwise()),e.lineTo(0,0),e.closePath(),e.fillStrokeShape(this)}getWidth(){return Math.abs(this.radius())*2}getHeight(){return Math.abs(this.radius())*2}setWidth(e){this.radius(e/2)}setHeight(e){this.radius(e/2)}};la.prototype.className=`Wedge`,la.prototype._centroid=!0,la.prototype._attrsAffectingSize=[`radius`],we(la,!0),P.addGetterSetter(la,`radius`,0,N()),P.addGetterSetter(la,`angle`,0,N()),P.addGetterSetter(la,`clockwise`,!1),P.backCompat(la,{angleDeg:`angle`,getAngleDeg:`getAngle`,setAngleDeg:`setAngle`});function ua(){this.r=0,this.g=0,this.b=0,this.a=0,this.next=null}var da=[512,512,456,512,328,456,335,512,405,328,271,456,388,335,292,512,454,405,364,328,298,271,496,456,420,388,360,335,312,292,273,512,482,454,428,405,383,364,345,328,312,298,284,271,259,496,475,456,437,420,404,388,374,360,347,335,323,312,302,292,282,273,265,512,497,482,468,454,441,428,417,405,394,383,373,364,354,345,337,328,320,312,305,298,291,284,278,271,265,259,507,496,485,475,465,456,446,437,428,420,412,404,396,388,381,374,367,360,354,347,341,335,329,323,318,312,307,302,297,292,287,282,278,273,269,265,261,512,505,497,489,482,475,468,461,454,447,441,435,428,422,417,411,405,399,394,389,383,378,373,368,364,359,354,350,345,341,337,332,328,324,320,316,312,309,305,301,298,294,291,287,284,281,278,274,271,268,265,262,259,257,507,501,496,491,485,480,475,470,465,460,456,451,446,442,437,433,428,424,420,416,412,408,404,400,396,392,388,385,381,377,374,370,367,363,360,357,354,350,347,344,341,338,335,332,329,326,323,320,318,315,312,310,307,304,302,299,297,294,292,289,287,285,282,280,278,275,273,271,269,267,265,263,261,259],fa=[9,11,12,13,13,14,14,15,15,15,15,16,16,16,16,17,17,17,17,17,17,17,18,18,18,18,18,18,18,18,18,19,19,19,19,19,19,19,19,19,19,19,19,19,19,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24];function pa(e,t){return t===255?e:e*t/255}var ma=180;function ha(e,t){let n=e.data,r=e.width,i=e.height,a,o,s,c,l,u,d,f,p,m,h,g,_,v,y,b,x,S,C,ee,te=t+t+1,ne=r-1,w=i-1,re=t+1,ie=re*(re+1)/2,ae=new ua,oe=t<=ma?da[t]/2**fa[t]:1/(re*re),se=null,T=ae,E=null,ce=null;for(let e=1;e0?(C=255/C,n[a]=Math.floor(c*oe)*C,n[a+1]=Math.floor(l*oe)*C,n[a+2]=Math.floor(u*oe)*C):n[a]=n[a+1]=n[a+2]=0,c-=f,l-=p,u-=m,d-=h,f-=E.r,p-=E.g,m-=E.b,h-=E.a,a=e+((a=t+re)0&&ha(e,n)};P.addGetterSetter(I,`blurRadius`,0,N(),P.afterSetFilter);var _a=function(e){let t=this.brightness()*255,n=e.data,r=n.length;for(let e=0;e255?255:i,a=a<0?0:a>255?255:a,o=o<0?0:o>255?255:o,n[e]=i,n[e+1]=a,n[e+2]=o};P.addGetterSetter(I,`contrast`,0,N(),P.afterSetFilter);var ba=function(e){let t=e.data,n=e.width,r=e.height,i=Math.min(1,Math.max(0,this.embossStrength?.call(this)??.5)),a=Math.min(1,Math.max(0,this.embossWhiteLevel?.call(this)??.5)),o={"top-left":315,top:270,"top-right":225,right:180,"bottom-right":135,bottom:90,"bottom-left":45,left:0}[this.embossDirection?.call(this)??`top-left`]??315,s=!!(this.embossBlend?.call(this)??!1),c=i*10,l=a*255,u=o*Math.PI/180,d=Math.cos(u),f=Math.sin(u),p=128/1020*c,m=new Float32Array(n*r);for(let e=0,n=0;ne<0?0:e>255?255:e;for(let e=0;ei&&(i=a),c=t[e+1],cs&&(s=c),d=t[e+2],du&&(u=d);i===r&&(i=255,r=0),s===o&&(s=255,o=0),u===l&&(u=255,l=0);let p,m,h,g,_,v;if(f>0)p=i+f*(255-i),m=r-f*(r-0),h=s+f*(255-s),g=o-f*(o-0),_=u+f*(255-u),v=l-f*(l-0);else{let e=(i+r)*.5;p=i+f*(i-e),m=r+f*(r-e);let t=(s+o)*.5;h=s+f*(s-t),g=o+f*(o-t);let n=(u+l)*.5;_=u+f*(u-n),v=l+f*(l-n)}for(let e=0;el?f:l;let p=o,m=a,h=360/m*Math.PI/180;for(let e=0;el?f:l;let p=o,m=a,h=n.polarRotation||0,g,_;for(u=0;ut&&(y=v,b=0,x=-1),i=0;i=0&&d=0&&f=0&&d=0&&f=1020?255:0}return o}function La(e,t,n){let r=[1/9,1/9,1/9,1/9,1/9,1/9,1/9,1/9,1/9],i=Math.round(Math.sqrt(r.length)),a=Math.floor(i/2),o=[];for(let s=0;s=0&&d=0&&fMath.min(1,Math.max(0,e)),P.afterSetFilter),P.addGetterSetter(I,`threshold`,.5,N(),P.afterSetFilter),Sr.Util._assign(Sr,{Arc:Cr,Arrow:Vr,Circle:Hr,Ellipse:Ur,Image:Wr,Label:Mi,Tag:Ni,Line:Lr,Path:Br,Rect:Pi,RegularPolygon:Fi,Ring:Li,Sprite:Ri,Star:zi,Text:Ti,TextPath:Wi,Transformer:B,Wedge:la,Filters:{Blur:ga,Brightness:va,Brighten:_a,Contrast:ya,Emboss:ba,Enhance:Sa,Grayscale:Ca,HSL:wa,HSV:Ta,Invert:Ea,Kaleidoscope:ka,Mask:function(e){let t=Na(e,this.attrs.threshold??10);return t&&(t=Fa(t,e.width,e.height),t=Ia(t,e.width,e.height),t=La(t,e.width,e.height),Pa(e,t)),e},Noise:function(e){let t=this.noise()*255,n=e.data,r=n.length,i=t/2;for(let e=0;e=128&&(t[e]=255-n,t[e+1]=255-r,t[e+2]=255-i)}return e},Threshold:function(e){let t=this.threshold()*255,n=e.data,r=n.length;for(let e=0;e{t.exports=function(e){function t(e,t,n,r){return new io(e,t,n,r)}function n(){}function r(e){var t=`https://react.dev/errors/`+e;if(1Ol||(e.current=Dl[Ol],Dl[Ol]=null,Ol--)}function h(e,t){Ol++,Dl[Ol]=e.current,e.current=t}function g(e){return e>>>=0,e===0?32:31-(jl(e)/Ml|0)|0}function _(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&-e;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function v(e,t,n){var r=e.pendingLanes;if(r===0)return 0;var i=0,a=e.suspendedLanes,o=e.pingedLanes;e=e.warmLanes;var s=r&134217727;return s===0?(s=r&~a,s===0?o===0?n||(n=r&~e,n!==0&&(i=_(n))):i=_(o):i=_(s)):(r=s&~a,r===0?(o&=s,o===0?n||(n=s&~e,n!==0&&(i=_(n))):i=_(o)):i=_(r)),i===0?0:t!==0&&t!==i&&(t&a)===0&&(a=i&-i,n=t&-t,a>=n||a===32&&n&4194048)?t:i}function y(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function b(e,t){t&8&&(t|=t&32);var n=e.entangledLanes;if(n!==0)for(e=e.entanglements,n&=t;0n;n++)t.push(e);return t}function ee(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function te(e,t,n,r,i,a){var o=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var s=e.entanglements,c=e.expirationTimes,l=e.hiddenUpdates;for(n=o&~n;0)`:-1i||c[r]!==l[i]){var u=` +`+c[r].replace(` at new `,` at `);return e.displayName&&u.includes(``)&&(u=u.replace(``,e.displayName)),u}while(1<=r&&0<=i);break}}}finally{tu=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:``)?le(n):``}function D(e,t){switch(e.tag){case 26:case 27:case 5:return le(e.type);case 16:return le(`Lazy`);case 13:return e.child!==t&&t!==null?le(`Suspense Fallback`):le(`Suspense`);case 19:return le(`SuspenseList`);case 0:case 15:return ue(e.type,!1);case 11:return ue(e.type.render,!1);case 1:return ue(e.type,!0);case 31:return le(`Activity`);case 30:return le(`ViewTransition`);default:return``}}function de(e){try{var t=``,n=null;do t+=D(e,n),n=e,e=e.return;while(e);return t}catch(e){return` +Error generating stack: `+e.message+` +`+e.stack}}function fe(e,t){if(typeof e==`object`&&e){var n=nu.get(e);return n===void 0?(t={value:e,source:t,stack:de(t)},nu.set(e,t),t):n}return{value:e,source:t,stack:de(t)}}function pe(e,t){ru[iu++]=ou,ru[iu++]=au,au=e,ou=t}function me(e,t,n){su[cu++]=uu,su[cu++]=du,su[cu++]=lu,lu=e;var r=uu;e=du;var i=32-Al(r)-1;r&=~(1<>=o,i-=o,uu=1<<32-Al(t)+i|n<f?(p=d,d=null):p=d.sibling;var _=h(t,d,o[f],c);if(_===null){d===null&&(d=p);break}e&&d&&_.alternate===null&&n(t,d),r=s(_,r,f),u===null?l=_:u.sibling=_,u=_,d=p}if(f===o.length)return i(t,d),G&&pe(t,f),l;if(d===null){for(;fp?(_=f,f=null):_=f.sibling;var y=h(t,f,v.value,l);if(y===null){f===null&&(f=_);break}e&&f&&y.alternate===null&&n(t,f),o=s(y,o,p),d===null?u=y:d.sibling=y,d=y,f=_}if(v.done)return i(t,f),G&&pe(t,p),u;if(f===null){for(;!v.done;p++,v=c.next())v=m(t,v.value,l),v!==null&&(o=s(v,o,p),d===null?u=v:d.sibling=v,d=v);return G&&pe(t,p),u}for(f=a(f);!v.done;p++,v=c.next())v=g(f,t,p,v.value,l),v!==null&&(e&&(_=v.alternate,_!==null&&f.delete(_.key===null?p:_.key)),o=s(v,o,p),d===null?u=v:d.sibling=v,d=v);return e&&f.forEach(function(e){return n(t,e)}),G&&pe(t,p),u}function y(e,t,a,s){if(typeof a==`object`&&a&&a.type===Do&&a.key===null&&a.props.ref===void 0&&(a=a.props.children),typeof a==`object`&&a){switch(a.$$typeof){case To:a:{for(var u=a.key;t!==null;){if(t.key===u){if(u=a.type,u===Do){if(t.tag===7){i(e,t.sibling),s=o(t,a.props.children),ct(s,a),s.return=e,e=s;break a}}else if(t.elementType===u||typeof u==`object`&&u&&u.$$typeof===Io&&it(u)===t.type){i(e,t.sibling),s=o(t,a.props),ct(s,a),s.return=e,e=s;break a}i(e,t);break}n(e,t),t=t.sibling}a.type===Do?(s=lo(a.props.children,e.mode,s,a.key),ct(s,a),s.return=e,e=s):(s=co(a.type,a.key,a.props,null,e.mode,s),ct(s,a),s.return=e,e=s)}return c(e);case Eo:a:{for(u=a.key;t!==null;){if(t.key===u){if(t.tag===4&&t.stateNode.containerInfo===a.containerInfo&&t.stateNode.implementation===a.implementation){i(e,t.sibling),s=o(t,a.children||[]),s.return=e,e=s;break a}i(e,t);break}n(e,t),t=t.sibling}s=po(a,e.mode,s),s.return=e,e=s}return c(e);case Io:return a=it(a),y(e,t,a,s)}if(Wo(a))return _(e,t,a,s);if(l(a)){if(u=l(a),typeof u!=`function`)throw Error(r(150));return a=u.call(a),v(e,t,a,s)}if(typeof a.then==`function`)return y(e,t,st(a),s);if(a.$$typeof===jo)return y(e,t,Pe(e,a),s);lt(e,a)}return typeof a==`string`&&a!==``||typeof a==`number`||typeof a==`bigint`?(a=``+a,t!==null&&t.tag===6?(i(e,t.sibling),s=o(t,a),s.return=e,e=s):(i(e,t),s=uo(a,e.mode,s),s.return=e,e=s),c(e)):i(e,t)}return function(e,n,r,i){try{qu=0;var a=y(e,n,r,i);return Ku=null,a}catch(n){if(n===Vu||n===Uu)throw n;var o=t(29,n,null,e.mode);return o.lanes=i,o.return=e,o}}}function dt(){for(var e=Zu,t=Qu=Zu=0;ta?a:8);var o=W.T,s={};s.types=o===null?null:o.types,W.T=s,Wn(e,!1,t,n);try{var c=i(),l=W.S;l!==null&&l(s,c),typeof c==`object`&&c&&typeof c.then==`function`?Un(e,t,Qe(c,r),ga(e)):Un(e,t,r,ga(e))}catch(n){Un(e,t,{then:function(){},status:`rejected`,reason:n},ga())}finally{ps(a),o!==null&&s.types!==null&&(o.types=s.types),W.T=o}}function In(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:Es,baseState:Es,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:F,lastRenderedState:Es},next:null};var n={};return t.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:F,lastRenderedState:n},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function Ln(){return Ne(Ds)}function Rn(){return Gt().memoizedState}function zn(){return Gt().memoizedState}function Bn(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var n=ga();e=vt(n);var r=yt(t,e,n);r!==null&&(ya(r,t,n),bt(r,t,n)),t={cache:Ie()},e.payload=t;return}t=t.return}}function Vn(e,t,n){var r=ga();n={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},Gn(e)?Kn(t,n):(n=pt(e,t,n,r),n!==null&&(ya(n,e,r),qn(n,t,r)))}function Hn(e,t,n){Un(e,t,n,ga())}function Un(e,t,n,r){var i={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(Gn(e))Kn(t,i);else{var a=e.alternate;if(e.lanes===0&&(a===null||a.lanes===0)&&(a=t.lastRenderedReducer,a!==null))try{var o=t.lastRenderedState,s=a(o,n);if(i.hasEagerState=!0,i.eagerState=s,Xl(s,o))return ft(e,t,i,0),Jd===null&&dt(),!1}catch{}if(n=pt(e,t,i,r),n!==null)return ya(n,e,r),qn(n,t,r),!0}return!1}function Wn(e,t,n,i){if(i={lane:2,revertLane:Ye(),gesture:null,action:i,hasEagerState:!1,eagerState:null,next:null},Gn(e)){if(t)throw Error(r(479))}else t=pt(e,n,i,2),t!==null&&ya(t,e,2)}function Gn(e){var t=e.alternate;return e===Y||t!==null&&t===Y}function Kn(e,t){sd=od=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function qn(e,t,n){if(n&4194048){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,w(e,n)}}function Jn(e,t,n,r){t=e.memoizedState,n=n(r,t),n=n==null?t:Co({},t,n),e.memoizedState=n,e.lanes===0&&(e.updateQueue.baseState=n)}function Yn(e,t,n,r,i,a,o){return e=e.stateNode,typeof e.shouldComponentUpdate==`function`?e.shouldComponentUpdate(r,a,o):t.prototype&&t.prototype.isPureReactComponent?!tt(n,r)||!tt(i,a):!0}function Xn(e,t,n,r){e=t.state,typeof t.componentWillReceiveProps==`function`&&t.componentWillReceiveProps(n,r),typeof t.UNSAFE_componentWillReceiveProps==`function`&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&_d.enqueueReplaceState(t,t.state,null)}function Zn(e,t){var n=t;if(`ref`in t)for(var r in n={},t)r!==`ref`&&(n[r]=t[r]);if(e=e.defaultProps)for(var i in n===t&&(n=Co({},n)),e)n[i]===void 0&&(n[i]=e[i]);return n}function Qn(e,t){try{var n=e.onUncaughtError;n(t.value,{componentStack:t.stack})}catch(e){setTimeout(function(){throw e})}}function $n(e,t,n){try{var r=e.onCaughtError;r(n.value,{componentStack:n.stack,errorBoundary:t.tag===1?t.stateNode:null})}catch(e){setTimeout(function(){throw e})}}function R(e,t,n){return n=vt(n),n.tag=3,n.payload={element:null},n.callback=function(){Qn(e,t)},n}function er(e){return e=vt(e),e.tag=3,e}function tr(e,t,n,r){var i=n.type.getDerivedStateFromError;if(typeof i==`function`){var a=r.value;e.payload=function(){return i(a)},e.callback=function(){$n(t,n,r)}}var o=n.stateNode;o!==null&&typeof o.componentDidCatch==`function`&&(e.callback=function(){$n(t,n,r),typeof i!=`function`&&(hf===null?hf=new Set([this]):hf.add(this));var e=r.stack;this.componentDidCatch(r.value,{componentStack:e===null?``:e})})}function nr(e,t,n,i,a){if(n.flags|=32768,typeof i==`object`&&i&&typeof i.then==`function`){if(t=n.alternate,t!==null&&Ae(t,n,a,!0),n=q.current,n!==null){switch(n.tag){case 31:case 13:case 19:return J===null?ja():n.alternate===null&&tf===0&&(tf=3),n.flags&=-257,n.flags|=65536,n.lanes=a,i===Wu?n.flags|=16384:(t=n.updateQueue,t===null?n.updateQueue=new Set([i]):t.add(i),Qa(e,i,a)),!1;case 22:return n.flags|=65536,i===Wu?n.flags|=16384:(t=n.updateQueue,t===null?(t={transitions:null,markerInstances:null,retryQueue:new Set([i])},n.updateQueue=t):(n=t.retryQueue,n===null?t.retryQueue=new Set([i]):n.add(i)),Qa(e,i,a)),!1}throw Error(r(435,n.tag))}return Qa(e,i,a),ja(),!1}if(G)return t=q.current,t===null?(i!==bu&&(t=Error(r(423),{cause:i}),Ee(fe(t,n))),e=e.current.alternate,e.flags|=65536,a&=-a,e.lanes|=a,i=fe(i,n),a=R(e.stateNode,i,a),xt(e,a),tf!==4&&(tf=2)):(!(t.flags&65536)&&(t.flags|=256),t.flags|=65536,t.lanes=a,i!==bu&&(e=Error(r(422),{cause:i}),Ee(fe(e,n)))),!1;var o=Error(r(520),{cause:i});if(o=fe(o,n),cf===null?cf=[o]:cf.push(o),tf!==4&&(tf=2),t===null)return!0;i=fe(i,n),n=t;do{switch(n.tag){case 3:return n.flags|=65536,e=a&-a,n.lanes|=e,e=R(n.stateNode,i,e),xt(n,e),!1;case 1:if(t=n.type,o=n.stateNode,!(n.flags&128)&&(typeof t.getDerivedStateFromError==`function`||o!==null&&typeof o.componentDidCatch==`function`&&(hf===null||!hf.has(o))))return n.flags|=65536,a&=-a,n.lanes|=a,a=er(a),tr(a,e,n,i),xt(n,a),!1;break;case 22:if(n.memoizedState!==null)return n.flags|=65536,!1}n=n.return}while(n!==null);return!1}function rr(e,t,n,r){t.child=e===null?Yu(t,null,n,r):Ju(t,e.child,n,r)}function ir(e,t,n,r,i){n=n.render;var a=t.ref;if(`ref`in r){var o={};for(var s in r)s!==`ref`&&(o[s]=r[s])}else o=r;return Me(t),r=Lt(e,t,n,o,a,i),s=Vt(),e!==null&&!yd?(Ht(e,t,i),jr(e,t,i)):(G&&s&&he(t),t.flags|=1,rr(e,t,r,i),t.child)}function ar(e,t,n,r,i){if(e===null){var a=n.type;return typeof a==`function`&&!ao(a)&&a.defaultProps===void 0&&n.compare===null?(t.tag=15,t.type=a,or(e,t,a,r,i)):(e=co(n.type,null,r,t,t.mode,i),e.ref=t.ref,e.return=t,t.child=e)}if(a=e.child,!Mr(e,i)){var o=a.memoizedProps;if(n=n.compare,n=n===null?tt:n,n(o,r)&&e.ref===t.ref)return jr(e,t,i)}return t.flags|=1,e=oo(a,r),e.ref=t.ref,e.return=t,t.child=e}function or(e,t,n,r,i){if(e!==null){var a=e.memoizedProps;if(tt(a,r)&&e.ref===t.ref){if(yd=!1,t.pendingProps=r=a,Mr(e,i))e.flags&131072&&(yd=!0);else return t.lanes=e.lanes,jr(e,t,i)}}return mr(e,t,n,r,i)}function sr(e,t,n,r){var i=r.children,a=e===null?null:e.memoizedState;if(e===null&&t.stateNode===null&&(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),r.mode===`hidden`){if(t.flags&128){if(a=a===null?n:a.baseLanes|n,e!==null){for(r=t.child=e.child,i=0;r!==null;)i=i|r.lanes|r.childLanes,r=r.sibling;r=i&~a}else r=0,t.child=null;return lr(e,t,a,n,r)}if(n&536870912)t.memoizedState={baseLanes:0,cachePool:null},e!==null&&$e(t,a===null?null:a.cachePool),a===null?N():Et(t,a),At(t);else return r=t.lanes=536870912,lr(e,t,a===null?n:a.baseLanes|n,n,r)}else a===null?(e!==null&&$e(t,null),N(),jt()):($e(t,a.cachePool),Et(t,a),jt(),t.memoizedState=null);return rr(e,t,i,n),t.child}function cr(e,t){return e!==null&&e.tag===22||t.stateNode!==null||(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),t.sibling}function lr(e,t,n,r,i){var a=j();return a=a===null?null:{parent:ss?Du._currentValue:Du._currentValue2,pool:a},t.memoizedState={baseLanes:n,cachePool:a},e!==null&&$e(t,null),N(),At(t),e!==null&&Ae(e,t,r,!0),t.childLanes=i,null}function ur(e,t){return t=Sr({mode:t.mode,children:t.children},e.mode),t.ref=e.ref,e.child=t,t.return=e,t}function dr(e,t,n){return Ju(t,e.child,null,n),e=ur(t,t.pendingProps),e.flags|=2,Mt(t),t.memoizedState=null,e}function fr(e,t,n){var i=t.pendingProps,a=!!(t.flags&128);if(t.flags&=-129,e===null){if(G){if(i.mode===`hidden`)return e=ur(t,i),t.lanes=536870912,e.memoizedState={baseLanes:0,cachePool:null},cr(null,e);if(kt(t),(e=_u)?(e=Bc(e,yu),e!==null&&(t.memoizedState={dehydrated:e,treeContext:lu===null?null:{id:uu,overflow:du},retryLane:536870912,hydrationErrors:null},n=fo(e),n.return=t,t.child=n,gu=t,_u=null)):e=null,e===null)throw Se(t);return t.lanes=536870912,null}return ur(t,i)}var o=e.memoizedState;if(o!==null){var s=o.dehydrated;if(kt(t),a){if(t.flags&256)t.flags&=-257,t=dr(e,t,n);else if(t.memoizedState!==null)t.child=e.child,t.flags|=128,t=null;else throw Error(r(558))}else if(yd||Ae(e,t,n,!1),a=(n&e.childLanes)!==0,yd||a){if(td.current===null){if(i=Jd,i!==null&&(s=re(i,n),s!==0&&s!==o.retryLane))throw o.retryLane=s,mt(e,s),ya(i,e,s),vd;ja()}t=dr(e,t,n)}else e=o.treeContext,us&&(_u=Fc(s),gu=t,G=!0,vu=null,yu=!1,e!==null&&_e(t,e)),t=ur(t,i),t.flags|=134221824;return t}return e=oo(e.child,{mode:i.mode,children:i.children}),e.ref=t.ref,t.child=e,e.return=t,e}function pr(e,t){var n=t.ref;if(n===null)e!==null&&e.ref!==null&&(t.flags|=4194816);else{if(typeof n!=`function`&&typeof n!=`object`)throw Error(r(284));(e===null||e.ref!==n)&&(t.flags|=4194816)}}function mr(e,t,n,r,i){return Me(t),n=Lt(e,t,n,r,void 0,i),r=Vt(),e!==null&&!yd?(Ht(e,t,i),jr(e,t,i)):(G&&r&&he(t),t.flags|=1,rr(e,t,n,i),t.child)}function hr(e,t,n,r,i,a){return Me(t),t.updateQueue=null,n=zt(t,r,n,i),Rt(e),r=Vt(),e!==null&&!yd?(Ht(e,t,a),jr(e,t,a)):(G&&r&&he(t),t.flags|=1,rr(e,t,n,a),t.child)}function gr(e,t,n,r,i){if(Me(t),t.stateNode===null){var a=kl,o=n.contextType;typeof o==`object`&&o&&(a=Ne(o)),a=new n(r,a),t.memoizedState=a.state!==null&&a.state!==void 0?a.state:null,a.updater=_d,t.stateNode=a,a._reactInternals=t,a=t.stateNode,a.props=r,a.state=t.memoizedState,a.refs={},M(t),o=n.contextType,a.context=typeof o==`object`&&o?Ne(o):kl,a.state=t.memoizedState,o=n.getDerivedStateFromProps,typeof o==`function`&&(Jn(t,n,o,r),a.state=t.memoizedState),typeof n.getDerivedStateFromProps==`function`||typeof a.getSnapshotBeforeUpdate==`function`||typeof a.UNSAFE_componentWillMount!=`function`&&typeof a.componentWillMount!=`function`||(o=a.state,typeof a.componentWillMount==`function`&&a.componentWillMount(),typeof a.UNSAFE_componentWillMount==`function`&&a.UNSAFE_componentWillMount(),o!==a.state&&_d.enqueueReplaceState(a,a.state,null),Ct(t,r,a,i),St(),a.state=t.memoizedState),typeof a.componentDidMount==`function`&&(t.flags|=4194308),r=!0}else if(e===null){a=t.stateNode;var s=t.memoizedProps,c=Zn(n,s);a.props=c;var l=a.context,u=n.contextType;o=kl,typeof u==`object`&&u&&(o=Ne(u));var d=n.getDerivedStateFromProps;u=typeof d==`function`||typeof a.getSnapshotBeforeUpdate==`function`,s=t.pendingProps!==s,u||typeof a.UNSAFE_componentWillReceiveProps!=`function`&&typeof a.componentWillReceiveProps!=`function`||(s||l!==o)&&Xn(t,a,r,o),$u=!1;var f=t.memoizedState;a.state=f,Ct(t,r,a,i),St(),l=t.memoizedState,s||f!==l||$u?(typeof d==`function`&&(Jn(t,n,d,r),l=t.memoizedState),(c=$u||Yn(t,n,c,r,f,l,o))?(u||typeof a.UNSAFE_componentWillMount!=`function`&&typeof a.componentWillMount!=`function`||(typeof a.componentWillMount==`function`&&a.componentWillMount(),typeof a.UNSAFE_componentWillMount==`function`&&a.UNSAFE_componentWillMount()),typeof a.componentDidMount==`function`&&(t.flags|=4194308)):(typeof a.componentDidMount==`function`&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=l),a.props=r,a.state=l,a.context=o,r=c):(typeof a.componentDidMount==`function`&&(t.flags|=4194308),r=!1)}else{a=t.stateNode,_t(e,t),o=t.memoizedProps,u=Zn(n,o),a.props=u,d=t.pendingProps,f=a.context,l=n.contextType,c=kl,typeof l==`object`&&l&&(c=Ne(l)),s=n.getDerivedStateFromProps,(l=typeof s==`function`||typeof a.getSnapshotBeforeUpdate==`function`)||typeof a.UNSAFE_componentWillReceiveProps!=`function`&&typeof a.componentWillReceiveProps!=`function`||(o!==d||f!==c)&&Xn(t,a,r,c),$u=!1,f=t.memoizedState,a.state=f,Ct(t,r,a,i),St();var p=t.memoizedState;o!==d||f!==p||$u||e!==null&&e.dependencies!==null&&je(e.dependencies)?(typeof s==`function`&&(Jn(t,n,s,r),p=t.memoizedState),(u=$u||Yn(t,n,u,r,f,p,c)||e!==null&&e.dependencies!==null&&je(e.dependencies))?(l||typeof a.UNSAFE_componentWillUpdate!=`function`&&typeof a.componentWillUpdate!=`function`||(typeof a.componentWillUpdate==`function`&&a.componentWillUpdate(r,p,c),typeof a.UNSAFE_componentWillUpdate==`function`&&a.UNSAFE_componentWillUpdate(r,p,c)),typeof a.componentDidUpdate==`function`&&(t.flags|=4),typeof a.getSnapshotBeforeUpdate==`function`&&(t.flags|=1024)):(typeof a.componentDidUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),typeof a.getSnapshotBeforeUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=p),a.props=r,a.state=p,a.context=c,r=u):(typeof a.componentDidUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),typeof a.getSnapshotBeforeUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=1024),r=!1)}return a=r,pr(e,t),r=!!(t.flags&128),a||r?(a=t.stateNode,n=r&&typeof n.getDerivedStateFromError!=`function`?null:a.render(),t.flags|=1,e!==null&&r?(t.child=Ju(t,e.child,null,i),t.child=Ju(t,null,n,i)):rr(e,t,n,i),t.memoizedState=a.state,e=t.child):e=jr(e,t,i),e}function _r(e,t,n,r){return we(),t.flags|=256,rr(e,t,n,r),t.child}function vr(e){return{baseLanes:e,cachePool:et()}}function yr(e,t,n){return e=e===null?0:e.childLanes&~n,t&&(e|=of),e}function br(e,t,n){var r=t.pendingProps,i=!1,a=!!(t.flags&128),o;if((o=a)||(o=e!==null&&e.memoizedState===null?!1:!!(nd.current&2)),o&&(i=!0,t.flags&=-129),o=!!(t.flags&32),t.flags&=-33,e===null){if(G){if(i?Ot(t):jt(),(e=_u)?(e=Vc(e,yu),e!==null&&(t.memoizedState={dehydrated:e,treeContext:lu===null?null:{id:uu,overflow:du},retryLane:536870912,hydrationErrors:null},n=fo(e),n.return=t,t.child=n,gu=t,_u=null)):e=null,e===null)throw Se(t);return t.lanes=Ec(e)?32:536870912,null}return a=r.children,r=r.fallback,i?(jt(),i=t.mode,a=Sr({mode:`hidden`,children:a},i),r=lo(r,i,n,null),a.return=t,r.return=t,a.sibling=r,t.child=a,r=t.child,r.memoizedState=vr(n),r.childLanes=yr(e,o,n),t.memoizedState=bd,cr(null,r)):(Ot(t),xr(t,a))}var s=e.memoizedState;if(s!==null){var c=s.dehydrated;if(c!==null)return wr(e,t,a,o,r,c,s,n)}return i?(jt(),i=r.fallback,a=t.mode,s=e.child,c=s.sibling,r=oo(s,{mode:`hidden`,children:r.children}),r.subtreeFlags=s.subtreeFlags&1206910976,c===null?(i=lo(i,a,n,null),i.flags|=2):i=oo(c,i),i.return=t,r.return=t,r.sibling=i,t.child=r,cr(null,r),r=t.child,i=e.child.memoizedState,i===null?i=vr(n):(a=i.cachePool,a===null?a=et():(s=ss?Du._currentValue:Du._currentValue2,a=a.parent===s?a:{parent:s,pool:s}),i={baseLanes:i.baseLanes|n,cachePool:a}),r.memoizedState=i,r.childLanes=yr(e,o,n),t.memoizedState=bd,cr(e.child,r)):(Ot(t),n=e.child,e=n.sibling,n=oo(n,{mode:`visible`,children:r.children}),n.return=t,n.sibling=null,e!==null&&(o=t.deletions,o===null?(t.deletions=[e],t.flags|=16):o.push(e)),t.child=n,t.memoizedState=null,n)}function xr(e,t){return t=Sr({mode:`visible`,children:t},e.mode),t.return=e,e.child=t}function Sr(e,n){return e=t(22,e,null,n),e.lanes=0,e}function Cr(e,t,n){return Ju(t,e.child,null,n),e=xr(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function wr(e,t,n,i,a,o,s,c){if(n)return t.flags&256?(Ot(t),t.flags&=-257,Cr(e,t,c)):t.memoizedState===null?(jt(),o=a.fallback,s=t.mode,a=Sr({mode:`visible`,children:a.children},s),o=lo(o,s,c,null),o.flags|=2,a.return=t,o.return=t,a.sibling=o,t.child=a,Ju(t,e.child,null,c),a=t.child,a.memoizedState=vr(c),a.childLanes=yr(e,i,c),t.memoizedState=bd,cr(null,a)):(jt(),t.child=e.child,t.flags|=128,null);if(Ot(t),Ec(o))return i=Dc(o).digest,i!==``&&(a=Error(r(419)),a.stack=``,a.digest=i,Ee({value:a,source:null,stack:null})),Cr(e,t,c);if(yd||Ae(e,t,c,!1),i=(c&e.childLanes)!==0,yd||i){if(td.current!==null)return Cr(e,t,c);if(i=Jd,i!==null&&(a=re(i,c),a!==0&&a!==s.retryLane))throw s.retryLane=a,mt(e,a),ya(i,e,a),vd;return Tc(o)||ja(),Cr(e,t,c)}return Tc(o)?(t.flags|=192,t.child=e.child,null):(e=s.treeContext,us&&(_u=Ic(o),gu=t,G=!0,vu=null,yu=!1,e!==null&&_e(t,e)),t=xr(t,a.children),t.flags|=134221824,t)}function Tr(e,t,n){e.lanes|=t;var r=e.alternate;r!==null&&(r.lanes|=t),Oe(e.return,t,n)}function Er(e){for(var t=null;e!==null;){var n=e.alternate;n!==null&&Ft(n)===null&&(t=e),e=e.sibling}return t}function Dr(e,t,n,r,i,a){var o=e.memoizedState;o===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:i,treeForkCount:a}:(o.isBackwards=t,o.rendering=null,o.renderingStartTime=0,o.last=r,o.tail=n,o.tailMode=i,o.treeForkCount=a)}function Or(e){var t=e.child;for(e.child=null;t!==null;){var n=t.sibling;t.sibling=e.child,e.child=t,t=n}}function kr(e,t,n){var r=t.pendingProps,i=r.revealOrder,a=r.tail;r=r.children;var o=nd.current;if(t.flags&128)return Nt(t,o),null;var s=!!(o&2);if(s?(o=o&1|2,t.flags|=128):o&=1,Nt(t,o),i===`backwards`&&e!==null?(Or(e),rr(e,t,r,n),Or(e)):rr(e,t,r,n),r=G?ou:0,!s&&e!==null&&e.flags&128)a:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&Tr(e,n,t);else if(e.tag===19)Tr(e,n,t);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break a;for(;e.sibling===null;){if(e.return===null||e.return===t)break a;e=e.return}e.sibling.return=e.return,e=e.sibling}switch(i){case`backwards`:n=Er(t.child),n===null?(i=t.child,t.child=null):(i=n.sibling,n.sibling=null,Or(t)),Dr(t,!0,i,null,a,r);break;case`unstable_legacy-backwards`:for(n=null,i=t.child,t.child=null;i!==null;){if(e=i.alternate,e!==null&&Ft(e)===null){t.child=i;break}e=i.sibling,i.sibling=n,n=i,i=e}Dr(t,!0,n,null,a,r);break;case`together`:Dr(t,!1,null,null,void 0,r);break;case`independent`:t.memoizedState=null;break;default:n=Er(t.child),n===null?(i=t.child,t.child=null):(i=n.sibling,n.sibling=null),Dr(t,!1,i,n,a,r)}return t.child}function Ar(e,t,n){var r=t.pendingProps;return A(t,t.type,r.value),rr(e,t,r.children,n),t.child}function jr(e,t,n){if(e!==null&&(t.dependencies=e.dependencies),nf|=t.lanes,(n&t.childLanes)===0){if(e!==null){if(Ae(e,t,n,!1),(n&t.childLanes)===0)return null}else return null}if(e!==null&&t.child!==e.child)throw Error(r(153));if(t.child!==null){for(e=t.child,n=oo(e,e.pendingProps),t.child=n,n.return=t;e.sibling!==null;)e=e.sibling,n=n.sibling=oo(e,e.pendingProps),n.return=t;n.sibling=null}return t.child}function Mr(e,t){return(e.lanes&t)!==0||(e=e.dependencies,!!(e!==null&&je(e)))}function Nr(e,t,n){switch(t.tag){case 3:ve(t,t.stateNode.containerInfo),A(t,Du,e.memoizedState.cache),we();break;case 27:case 5:be(t);break;case 4:ve(t,t.stateNode.containerInfo);break;case 10:A(t,t.type,t.memoizedProps.value);break;case 31:if(t.memoizedState!==null)return t.flags|=128,kt(t),null;break;case 13:var r=t.memoizedState;if(r!==null){if(r.dehydrated!==null)return Ot(t),t.flags|=128,null;r=Ae(e,t,n,!1);var i=t.child.childLanes;return r||(n&i)!==0?br(e,t,n):(Ot(t),e=jr(e,t,n),e===null?null:e.sibling)}Ot(t);break;case 19:if(t.flags&128)return kr(e,t,n);if(i=!!(e.flags&128),r=(n&t.childLanes)!==0,r||=(Ae(e,t,n,!1),(n&t.childLanes)!==0),i){if(r)return kr(e,t,n);t.flags|=128}if(i=t.memoizedState,i!==null&&(i.rendering=null,i.tail=null,i.lastEffect=null),Nt(t,nd.current),r)break;return null;case 22:return t.lanes=0,sr(e,t,n,t.pendingProps);case 24:A(t,Du,e.memoizedState.cache)}return jr(e,t,n)}function Pr(e,t,n){if(e!==null){if(e.memoizedProps!==t.pendingProps)yd=!0;else{if(!Mr(e,n)&&!(t.flags&128))return yd=!1,Nr(e,t,n);yd=!!(e.flags&131072)}}else yd=!1,G&&t.flags&1048576&&me(t,ou,t.index);switch(t.lanes=0,t.tag){case 16:a:{var i=t.pendingProps;if(e=it(t.elementType),t.type=e,typeof e==`function`)ao(e)?(i=Zn(e,i),t.tag=1,t=gr(null,t,e,i,n)):(t.tag=0,t=mr(null,t,e,i,n));else{if(e!=null){var a=e.$$typeof;if(a===Mo){t.tag=11,t=ir(null,t,e,i,n);break a}if(a===Fo){t.tag=14,t=ar(null,t,e,i,n);break a}if(a===jo){t.tag=10,t.type=e,t=Ar(null,t,n);break a}}throw t=u(e)||e,Error(r(306,t,``))}}return t;case 0:return mr(e,t,t.type,t.pendingProps,n);case 1:return i=t.type,a=Zn(i,t.pendingProps),gr(e,t,i,a,n);case 3:a:{if(ve(t,t.stateNode.containerInfo),e===null)throw Error(r(387));var o=t.pendingProps;a=t.memoizedState,i=a.element,_t(e,t),Ct(t,o,null,n);var s=t.memoizedState;if(o=s.cache,A(t,Du,o),o!==a.cache&&ke(t,[Du],n,!0),St(),o=s.element,us&&a.isDehydrated){if(a={element:o,isDehydrated:!1,cache:s.cache},t.updateQueue.baseState=a,t.memoizedState=a,t.flags&256){t=_r(e,t,o,n);break a}if(o!==i){i=fe(Error(r(424)),t),Ee(i),t=_r(e,t,o,n);break a}for(us&&(_u=Pc(t.stateNode.containerInfo),gu=t,G=!0,vu=null,yu=!0),n=Yu(t,null,o,n),t.child=n;n;)n.flags=n.flags&-3|134221824,n=n.sibling}else{if(we(),o===i){t=jr(e,t,n);break a}rr(e,t,o,n)}t=t.child}return t;case 26:if(sl)return pr(e,t),e===null?(n=ul(t.type,null,t.pendingProps,null))?t.memoizedState=n:G||(t.stateNode=gl(t.type,t.pendingProps,mu.current,t)):t.memoizedState=ul(t.type,e.memoizedProps,t.pendingProps,e.memoizedState),null;case 27:if(xl)return be(t),e===null&&xl&&G&&(i=t.stateNode=Sl(t.type,t.pendingProps,mu.current,fu.current,!1),gu=t,yu=!0,_u=Lc(t.type,i,_u)),rr(e,t,t.pendingProps.children,n),pr(e,t),e===null&&(t.flags|=4194304),t.child;case 5:return e===null&&G&&(al(t.type,t.pendingProps,fu.current),(a=i=_u)&&(i=Rc(i,t.type,t.pendingProps,yu),i===null?a=!1:(t.stateNode=i,gu=t,_u=Nc(i),yu=!1,a=!0)),a||Se(t)),be(t),a=t.type,o=t.pendingProps,s=e===null?null:e.memoizedProps,i=o.children,ns(a,o)?i=null:s!==null&&ns(a,s)&&(t.flags|=32),t.memoizedState!==null&&(a=Lt(e,t,Bt,null,null,n),ss?Ds._currentValue=a:Ds._currentValue2=a),pr(e,t),rr(e,t,i,n),t.child;case 6:return e===null&&G&&(ol(t.pendingProps,fu.current),(e=n=_u)&&(n=zc(n,t.pendingProps,yu),n===null?e=!1:(t.stateNode=n,gu=t,_u=null,e=!0)),e||Se(t)),null;case 13:return br(e,t,n);case 4:return ve(t,t.stateNode.containerInfo),i=t.pendingProps,e===null?t.child=Ju(t,null,i,n):rr(e,t,i,n),t.child;case 11:return ir(e,t,t.type,t.pendingProps,n);case 7:return i=t.pendingProps,pr(e,t),rr(e,t,i,n),t.child;case 8:return rr(e,t,t.pendingProps.children,n),t.child;case 12:return rr(e,t,t.pendingProps.children,n),t.child;case 10:return Ar(e,t,n);case 9:return a=t.type._context,i=t.pendingProps.children,Me(t),a=Ne(a),i=i(a),t.flags|=1,rr(e,t,i,n),t.child;case 14:return ar(e,t,t.type,t.pendingProps,n);case 15:return or(e,t,t.type,t.pendingProps,n);case 19:return kr(e,t,n);case 31:return fr(e,t,n);case 22:return sr(e,t,n,t.pendingProps);case 24:return Me(t),i=Ne(Du),e===null?(a=j(),a===null&&(a=Jd,o=Ie(),a.pooledCache=o,o.refCount++,o!==null&&(a.pooledCacheLanes|=n),a=o),t.memoizedState={parent:i,cache:a},M(t),A(t,Du,a)):((e.lanes&n)!==0&&(_t(e,t),Ct(t,null,null,n),St()),a=e.memoizedState,o=t.memoizedState,a.parent===i?(i=o.cache,A(t,Du,i),i!==a.cache&&ke(t,[Du],n,!0)):(a={parent:i,cache:i},t.memoizedState=a,t.lanes===0&&(t.memoizedState=t.updateQueue.baseState=a),A(t,Du,i))),rr(e,t,t.pendingProps.children,n),t.child;case 30:return t.stateNode===null&&(t.stateNode={autoName:null,paired:null,clones:null,ref:null}),i=t.pendingProps,i.name!=null&&i.name!==`auto`?t.flags|=e===null?18882560:18874368:G&&he(t),e!==null&&e.memoizedProps.name!==i.name?t.flags|=4194816:pr(e,t),rr(e,t,i.children,n),t.child;case 29:throw t.pendingProps}throw Error(r(156,t.tag))}function Fr(e){e.flags|=4}function Ir(e){ls&&(e.flags|=8)}function Lr(e,t){if(e!==null&&e.child===t.child)return!1;if(t.flags&16)return!0;for(e=t.child;e!==null;){if(e.flags&8218||e.subtreeFlags&8218)return!0;e=e.sibling}return!1}function Rr(e,t,n,r){if(cs)for(n=t.child;n!==null;){if(n.tag===5||n.tag===6)es(e,n.stateNode);else if(!(n.tag===4||xl&&n.tag===27)&&n.child!==null){n.child.return=n,n=n.child;continue}if(n===t)break;for(;n.sibling===null;){if(n.return===null||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}else if(ls)for(var i=t.child;i!==null;){if(i.tag===5){var a=i.stateNode;n&&r&&(a=Cc(a,i.type,i.memoizedProps)),es(e,a)}else if(i.tag===6)a=i.stateNode,n&&r&&(a=wc(a,i.memoizedProps)),es(e,a);else if(i.tag!==4){if(i.tag===22&&i.memoizedState!==null)a=i.child,a!==null&&(a.return=i),Rr(e,i,!0,!0);else if(i.child!==null){i.child.return=i,i=i.child;continue}}if(i===t)break;for(;i.sibling===null;){if(i.return===null||i.return===t)return;i=i.return}i.sibling.return=i.return,i=i.sibling}}function zr(e,t,n,r){var i=!1;if(ls)for(var a=t.child;a!==null;){if(a.tag===5){var o=a.stateNode;n&&r&&(o=Cc(o,a.type,a.memoizedProps)),bc(e,o)}else if(a.tag===6)o=a.stateNode,n&&r&&(o=wc(o,a.memoizedProps)),bc(e,o);else if(a.tag!==4){if(a.tag===22&&a.memoizedState!==null)i=a.child,i!==null&&(i.return=a),zr(e,a,!0,!0),i=!0;else if(a.child!==null){a.child.return=a,a=a.child;continue}}if(a===t)break;for(;a.sibling===null;){if(a.return===null||a.return===t)return i;a=a.return}a.sibling.return=a.return,a=a.sibling}return i}function Br(e,t){if(ls&&Lr(e,t)){e=t.stateNode;var n=e.containerInfo,r=yc();zr(r,t,!1,!1),e.pendingChildren=r,Fr(t),xc(n,r)}}function Vr(e,t,n,r){if(cs)e.memoizedProps!==r&&Fr(t);else if(ls){var i=e.stateNode,a=e.memoizedProps;if((e=Lr(e,t))||a!==r){var o=fu.current;a=vc(i,n,a,r,!e,null),a===i?t.stateNode=i:(Ir(t),ts(a,n,r,o)&&Fr(t),t.stateNode=a,e&&Rr(a,t,!1,!1))}else t.stateNode=i}}function Hr(e,t,n,r,i){if(e.mode&32&&(n===null?vs(t,r):ys(t,n,r))){if(e.flags|=16777216,(i&335544128)===i||bs(t,r)){if(xs(e.stateNode,t,r))e.flags|=8192;else if(Oa())e.flags|=8192;else throw Gu=Wu,Hu}}else e.flags&=-16777217}function Ur(e,t){if(vl(t)){if(e.flags|=16777216,!yl(t)){if(Oa())e.flags|=8192;else throw Gu=Wu,Hu}}else e.flags&=-16777217}function Wr(e,t){t!==null&&(e.flags|=4),e.flags&16384&&(t=e.tag===22?536870912:S(),e.lanes|=t,sf|=t)}function Gr(e,t){if(!G)switch(e.tailMode){case`visible`:break;case`collapsed`:for(var n=e.tail,r=null;n!==null;)n.alternate!==null&&(r=n),n=n.sibling;r===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:r.sibling=null;break;default:for(t=e.tail,n=null;t!==null;)t.alternate!==null&&(n=t),t=t.sibling;n===null?e.tail=null:n.sibling=null}}function Kr(e){var t=e.alternate!==null&&e.alternate.child===e.child,n=0,r=0;if(t)for(var i=e.child;i!==null;)n|=i.lanes|i.childLanes,r|=i.subtreeFlags&1206910976,r|=i.flags&1206910976,i.return=e,i=i.sibling;else for(i=e.child;i!==null;)n|=i.lanes|i.childLanes,r|=i.subtreeFlags,r|=i.flags,i.return=e,i=i.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function qr(e,t,n){var i=t.pendingProps;switch(ge(t),t.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Kr(t),null;case 1:return Kr(t),null;case 3:return n=t.stateNode,i=null,e!==null&&(i=e.memoizedState.cache),t.memoizedState.cache!==i&&(t.flags|=2048),De(Du),ye(),n.pendingContext&&(n.context=n.pendingContext,n.pendingContext=null),(e===null||e.child===null)&&(Ce(t)?Fr(t):e===null||e.memoizedState.isDehydrated&&!(t.flags&256)||(t.flags|=1024,Te())),Br(e,t),Kr(t),null;case 26:if(sl){var a=t.type,o=t.memoizedState;return e===null?(Fr(t),o===null?(Kr(t),Hr(t,a,null,i,n)):(Kr(t),Ur(t,o))):o?o===e.memoizedState?(Kr(t),t.flags&=-16777217):(Fr(t),Kr(t),Ur(t,o)):(o=e.memoizedProps,cs?o!==i&&Fr(t):Vr(e,t,a,i),Kr(t),Hr(t,a,o,i,n)),null}case 27:if(xl){if(xe(t),n=mu.current,a=t.type,e!==null&&t.stateNode!=null)cs?e.memoizedProps!==i&&Fr(t):Vr(e,t,a,i);else{if(!i){if(t.stateNode===null)throw Error(r(166));return Kr(t),t.subtreeFlags&=-33554433,null}e=fu.current,Ce(t)?O(t,e):(e=Sl(a,i,n,e,!0),t.stateNode=e,Fr(t))}return Kr(t),t.subtreeFlags&=-33554433,null}case 5:if(xe(t),a=t.type,e!==null&&t.stateNode!=null)Vr(e,t,a,i);else{if(!i){if(t.stateNode===null)throw Error(r(166));return Kr(t),t.subtreeFlags&=-33554433,null}if(o=fu.current,Ce(t))O(t,o),Qc(t.stateNode,a,i,o)&&(t.flags|=64);else{var s=$o(a,i,mu.current,o,t);Ir(t),Rr(s,t,!1,!1),t.stateNode=s,ts(s,a,i,o)&&Fr(t)}}return Kr(t),t.subtreeFlags&=-33554433,Hr(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&t.stateNode!=null)n=e.memoizedProps,cs?n!==i&&Fr(t):ls&&(n===i?t.stateNode=e.stateNode:(e=mu.current,n=fu.current,Ir(t),t.stateNode=rs(i,e,n,t)));else{if(typeof i!=`string`&&t.stateNode===null)throw Error(r(166));if(e=mu.current,n=fu.current,Ce(t)){if(!us)throw Error(r(176));if(e=t.stateNode,n=t.memoizedProps,i=null,a=gu,a!==null)switch(a.tag){case 27:case 5:i=a.memoizedProps}Uc(e,n,t,i)||Se(t,!0)}else Ir(t),t.stateNode=rs(i,e,n,t)}return Kr(t),null;case 31:if(n=t.memoizedState,e===null||e.memoizedState!==null){if(i=Ce(t),n!==null){if(e===null){if(!i)throw Error(r(318));if(!us)throw Error(r(556));if(e=t.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(r(557));Wc(e,t)}else we(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;Kr(t),e=!1}else n=Te(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return t.flags&256?(Mt(t),t):(Mt(t),null);if(t.flags&128)throw Error(r(558))}return Kr(t),null;case 13:if(i=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(a=Ce(t),i!==null&&i.dehydrated!==null){if(e===null){if(!a)throw Error(r(318));if(!us)throw Error(r(344));if(a=t.memoizedState,a=a===null?null:a.dehydrated,!a)throw Error(r(317));Gc(a,t)}else we(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;Kr(t),a=!1}else a=Te(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=a),a=!0;if(!a)return t.flags&256?(Mt(t),t):(Mt(t),null)}return Mt(t),t.flags&128?(t.lanes=n,t):(n=i!==null,e=e!==null&&e.memoizedState!==null,n&&(i=t.child,a=null,i.alternate!==null&&i.alternate.memoizedState!==null&&i.alternate.memoizedState.cachePool!==null&&(a=i.alternate.memoizedState.cachePool.pool),o=null,i.memoizedState!==null&&i.memoizedState.cachePool!==null&&(o=i.memoizedState.cachePool.pool),o!==a&&(i.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),Wr(t,t.updateQueue),Kr(t),null);case 4:return ye(),Br(e,t),e===null&&fs(t.stateNode.containerInfo),t.flags|=67108864,Kr(t),null;case 10:return De(t.type),Kr(t),null;case 19:if(Pt(t),i=t.memoizedState,i===null)return Kr(t),null;if(a=!!(t.flags&128),o=i.rendering,o===null){if(a)Gr(i,!1);else{if(tf!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(o=Ft(e),o!==null){for(t.flags|=128,Gr(i,!1),e=o.updateQueue,t.updateQueue=e,Wr(t,e),t.subtreeFlags=0,e=n,n=t.child;n!==null;)so(n,e),n=n.sibling;return Nt(t,nd.current&1|2),G&&pe(t,i.treeForkCount),t.child}e=e.sibling}i.tail!==null&&Bl()>pf&&(t.flags|=128,a=!0,Gr(i,!1),t.lanes=4194304)}}else{if(!a){if(e=Ft(o),e!==null){if(t.flags|=128,a=!0,e=e.updateQueue,t.updateQueue=e,Wr(t,e),Gr(i,!0),i.tail===null&&i.tailMode!==`collapsed`&&i.tailMode!==`visible`&&!o.alternate&&!G)return Kr(t),null}else 2*Bl()-i.renderingStartTime>pf&&n!==536870912&&(t.flags|=128,a=!0,Gr(i,!1),t.lanes=4194304)}i.isBackwards?(o.sibling=t.child,t.child=o):(e=i.last,e===null?t.child=o:e.sibling=o,i.last=o)}if(i.tail!==null){e=i.tail;a:{for(n=e;n!==null;){if(n.alternate!==null){n=!1;break a}n=n.sibling}n=!0}return i.rendering=e,i.tail=e.sibling,i.renderingStartTime=Bl(),e.sibling=null,o=nd.current,o=a?o&1|2:o&1,i.tailMode===`visible`||i.tailMode===`collapsed`||!n||G?Nt(t,o):(n=o,h(q,t),h(nd,n),J===null&&(J=t)),G&&pe(t,i.treeForkCount),e}return Kr(t),null;case 22:case 23:return Mt(t),Dt(),i=t.memoizedState!==null,e===null?i&&(t.flags|=8192):e.memoizedState!==null!==i&&(t.flags|=8192),i?n&536870912&&!(t.flags&128)&&(Kr(t),t.subtreeFlags&6&&(t.flags|=8192)):Kr(t),n=t.updateQueue,n!==null&&Wr(t,n.retryQueue),n=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),i=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(i=t.memoizedState.cachePool.pool),i!==n&&(t.flags|=2048),e!==null&&m(Bu),null;case 24:return n=null,e!==null&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),De(Du),Kr(t),null;case 25:return null;case 30:return t.flags|=33554432,Kr(t),null}throw Error(r(156,t.tag))}function Jr(e,t){switch(ge(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return De(Du),ye(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return xe(t),null;case 31:if(t.memoizedState!==null){if(Mt(t),t.alternate===null)throw Error(r(340));we()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(Mt(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(r(340));we()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return Pt(t),e=t.flags,e&65536?(t.flags=e&-65537|128,e=t.memoizedState,e!==null&&(e.rendering=null,e.tail=null),t.flags|=4,t):null;case 4:return ye(),null;case 10:return De(t.type),null;case 22:case 23:return Mt(t),Dt(),e!==null&&m(Bu),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return De(Du),null;case 25:return null;default:return null}}function Yr(e,t){switch(ge(t),t.tag){case 3:De(Du),ye();break;case 26:case 27:case 5:xe(t);break;case 4:ye();break;case 31:t.memoizedState!==null&&Mt(t);break;case 13:Mt(t);break;case 19:Pt(t);break;case 10:De(t.type);break;case 22:case 23:Mt(t),Dt(),e!==null&&m(Bu);break;case 24:De(Du)}}function Xr(e,t){try{var n=t.updateQueue,r=n===null?null:n.lastEffect;if(r!==null){var i=r.next;n=i;do{if((n.tag&e)===e){r=void 0;var a=n.create,o=n.inst;r=a(),o.destroy=r}n=n.next}while(n!==i)}}catch(e){V(t,t.return,e)}}function Zr(e,t,n){try{var r=t.updateQueue,i=r===null?null:r.lastEffect;if(i!==null){var a=i.next;r=a;do{if((r.tag&e)===e){var o=r.inst,s=o.destroy;if(s!==void 0){o.destroy=void 0,i=t;var c=n,l=s;try{l()}catch(e){V(i,c,e)}}}r=r.next}while(r!==a)}}catch(e){V(t,t.return,e)}}function Qr(e){var t=e.updateQueue;if(t!==null){var n=e.stateNode;try{Tt(t,n)}catch(t){V(e,e.return,t)}}}function $r(e,t,n){n.props=Zn(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(n){V(e,t,n)}}function ei(e,t){try{var n=e.ref;if(n!==null){switch(e.tag){case 26:case 27:case 5:var r=Jo(e.stateNode);break;case 30:var i=e.stateNode,a=se(e.memoizedProps,i);(i.ref===null||i.ref.name!==a)&&(i.ref=fc(a)),r=i.ref;break;case 7:e.stateNode===null&&(e.stateNode=mc(e)),r=e.stateNode;break;default:r=e.stateNode}typeof n==`function`?e.refCleanup=n(r):n.current=r}}catch(n){V(e,t,n)}}function ti(e,t){var n=e.ref,r=e.refCleanup;if(n!==null){if(typeof r==`function`)try{r()}catch(n){V(e,t,n)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof n==`function`)try{n(null)}catch(n){V(e,t,n)}else n.current=null}}function ni(){var e=xd;return xd=!1,e}function ri(e,t){if((e.tag===5||e.tag===27||e.tag===6)&&e.alternate===null&&t!==null)for(var n=0;n`;case Hd:return`:has(`+(pa(e)||``)+`)`;case Ud:return`[role="`+e.value+`"]`;case Gd:return`"`+e.value+`"`;case Wd:return`[data-testname="`+e.value+`"]`;default:throw Error(r(365))}}function ma(e,t){var n=[];e=[e,0];for(var r=0;rn?32:n;n=W.T;var a=ms();try{ps(i),W.T=null,i=xf,xf=null;var o=_f,s=yf;if(gf=0,vf=_f=null,yf=0,X&6)throw Error(r(331));var c=X;if(X|=4,ca(o.current),ra(o,o.current,s,i),X=c,He(0,!1),Jl&&typeof Jl.onPostCommitFiberRoot==`function`)try{Jl.onPostCommitFiberRoot(ql,o)}catch{}return!0}finally{ps(a),W.T=n,Ja(e,t)}}function Za(e,t,n){t=fe(n,t),t=R(e.stateNode,t,2),e=yt(e,t,2),e!==null&&(ee(e,2),Ve(e))}function V(e,t,n){if(e.tag===3)Za(e,e,n);else for(;t!==null;){if(t.tag===3){Za(t,e,n);break}if(t.tag===1){var r=t.stateNode;if(typeof t.type.getDerivedStateFromError==`function`||typeof r.componentDidCatch==`function`&&(hf===null||!hf.has(r))){e=fe(n,e),n=er(2),r=yt(t,n,2),r!==null&&(tr(n,r,t,e),ee(r,2),Ve(r));break}}t=t.return}}function Qa(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new qd;var i=new Set;r.set(t,i)}else i=r.get(t),i===void 0&&(i=new Set,r.set(t,i));i.has(n)||($d=!0,i.add(n),e=$a.bind(null,e,t,n),t.then(e,e))}function $a(e,t,n){var r=e.pingCache;r!==null&&r.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,Jd===e&&(Q&n)===n&&(tf===4||tf===3&&(Q&62914560)===Q&&300>Bl()-df?X&2?af|=n:Ea(e,0):af|=n,sf===Q&&(sf=0)),Ve(e)}function eo(e,t){t===0&&(t=S()),e=mt(e,t),e!==null&&(ee(e,t),Ve(e))}function to(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),eo(e,n)}function no(e,t){var n=0;switch(e.tag){case 31:case 13:var i=e.stateNode,a=e.memoizedState;a!==null&&(n=a.retryLane);break;case 19:i=e.stateNode;break;case 22:i=e.stateNode._retryCache;break;default:throw Error(r(314))}i!==null&&i.delete(t),eo(e,n)}function ro(e,t){return Il(e,t)}function io(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.refCleanup=this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function ao(e){return e=e.prototype,!(!e||!e.isReactComponent)}function oo(e,n){var r=e.alternate;return r===null?(r=t(e.tag,n,e.key,e.mode),r.elementType=e.elementType,r.type=e.type,r.stateNode=e.stateNode,r.alternate=e,e.alternate=r):(r.pendingProps=n,r.type=e.type,r.flags=0,r.subtreeFlags=0,r.deletions=null),r.flags=e.flags&1206910976,r.childLanes=e.childLanes,r.lanes=e.lanes,r.child=e.child,r.memoizedProps=e.memoizedProps,r.memoizedState=e.memoizedState,r.updateQueue=e.updateQueue,n=e.dependencies,r.dependencies=n===null?null:{lanes:n.lanes,firstContext:n.firstContext},r.sibling=e.sibling,r.index=e.index,r.ref=e.ref,r.refCleanup=e.refCleanup,r}function so(e,t){e.flags&=1206910978;var n=e.alternate;return n===null?(e.childLanes=0,e.lanes=t,e.child=null,e.subtreeFlags=0,e.memoizedProps=null,e.memoizedState=null,e.updateQueue=null,e.dependencies=null,e.stateNode=null):(e.childLanes=n.childLanes,e.lanes=n.lanes,e.child=n.child,e.subtreeFlags=0,e.deletions=null,e.memoizedProps=n.memoizedProps,e.memoizedState=n.memoizedState,e.updateQueue=n.updateQueue,e.type=n.type,t=n.dependencies,e.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext}),e}function co(e,n,i,a,o,s){var c=0;if(a=e,typeof a==`function`)ao(a)&&(c=1);else if(typeof a==`string`)c=sl&&xl?cl(e,i,fu.current)?26:Tl(e)?27:5:sl?cl(e,i,fu.current)?26:5:xl&&Tl(e)?27:5;else a:switch(a){case Lo:return e=t(31,i,n,o),e.elementType=Lo,e.lanes=s,e;case Do:return lo(i.children,o,s,n);case Oo:c=8,o|=24;break;case ko:return e=t(12,i,n,o|2),e.elementType=ko,e.lanes=s,e;case No:return e=t(13,i,n,o),e.elementType=No,e.lanes=s,e;case Po:return e=t(19,i,n,o),e.elementType=Po,e.lanes=s,e;case Ro:case Bo:return e=o|32,e=t(30,i,n,e),e.elementType=Bo,e.lanes=s,e.stateNode={autoName:null,paired:null,clones:null,ref:null},e;default:if(typeof a==`object`&&a)switch(a.$$typeof){case jo:c=10;break a;case Ao:c=9;break a;case Mo:c=11;break a;case Fo:c=14;break a;case Io:c=16,a=null;break a}c=29,i=Error(r(130,e===null?`null`:typeof e,``)),a=null}return n=t(c,i,n,o),n.elementType=e,n.type=a,n.lanes=s,n}function lo(e,n,r,i){return e=t(7,e,i,n),e.lanes=r,e}function uo(e,n,r){return e=t(6,e,null,n),e.lanes=r,e}function fo(e){var n=t(18,null,null,0);return n.stateNode=e,n}function po(e,n,r){return n=t(4,e.children===null?[]:e.children,e.key,n),n.lanes=r,n.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},n}function mo(e,t,n,r,i,a,o,s,c){this.tag=1,this.containerInfo=e,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=os,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=C(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=C(0),this.hiddenUpdates=C(null),this.identifierPrefix=r,this.onUncaughtError=i,this.onCaughtError=a,this.onRecoverableError=o,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=c,this.transitionTypes=null,this.incompleteTransitions=new Map}function ho(e,n,r,i,a,o,s,c,l,u,d,f){return e=new mo(e,n,r,s,l,u,d,f,c),n=1,!0===o&&(n|=24),o=t(3,null,null,n),e.current=o,o.stateNode=e,n=Ie(),n.refCount++,e.pooledCache=n,n.refCount++,o.memoizedState={element:i,isDehydrated:r,cache:n},M(o),e}function go(e){return e?(e=kl,e):kl}function _o(e){var t=e._reactInternals;if(t===void 0)throw typeof e.render==`function`?Error(r(188)):(e=Object.keys(e).join(`,`),Error(r(268,e)));return e=o(t),e=e===null?null:s(e),e===null?null:Jo(e.stateNode)}function vo(e,t,n,r,i,a){i=go(i),r.context===null?r.context=i:r.pendingContext=i,r=vt(t),r.payload={element:n},a=a===void 0?null:a,a!==null&&(r.callback=a),n=yt(e,r,t),n!==null&&(ya(n,e,t),bt(n,e,t))}function yo(e,t){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var n=e.retryLane;e.retryLane=n!==0&&n=u&&o>=f&&a<=d&&s<=p){e.splice(t,1);break}if(!(i!==u||n.width!==l.width||ps)){f>o&&(l.height+=f-o,l.y=o),pa)){u>i&&(l.width+=u-i,l.x=i),dn&&(n=c)),c `)+` + +No matching component was found for: + `)+e.join(` > `)}return null},H.getPublicRootInstance=function(e){if(e=e.current,!e.child)return null;switch(e.child.tag){case 27:case 5:return Jo(e.child.stateNode);default:return e.child.stateNode}},H.injectIntoDevTools=function(){var e={bundleType:0,version:Go,rendererPackageName:Ko,currentDispatcherRef:W,reconcilerVersion:`19.3.0`};if(qo!==null&&(e.rendererConfig=qo),typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>`u`)e=!1;else{var t=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(t.isDisabled||!t.supportsFiber)e=!0;else{try{ql=t.inject(e),Jl=t}catch{}e=!!t.checkDCE}}return e},H.isAlreadyRendering=function(){return!!(X&6)},H.observeVisibleRects=function(e,t,n,i){if(!js)throw Error(r(363));e=ha(e,t);var a=Rs(e,n,i).disconnect;return{disconnect:function(){a()}}},H.shouldError=function(){return null},H.shouldSuspend=function(){return!1},H.startHostTransition=function(e,t,i,a){if(e.tag!==5)throw Error(r(476));var o=In(e).queue;Fn(e,o,t,Es,i===null?n:function(){var t=In(e);return t.next===null&&(t=e.alternate.memoizedState),Un(e,t.next.queue,{},ga()),i(a)})},H.updateContainer=function(e,t,n,r){var i=t.current,a=ga();return vo(i,a,e,t,n,r),a},H.updateContainerSync=function(e,t,n,r){return vo(t.current,2,e,t,n,r),2},H},t.exports.default=t.exports,Object.defineProperty(t.exports,"__esModule",{value:!0})})),Va=o(((e,t)=>{t.exports=Ba()})),Ha=o((e=>{e.ConcurrentRoot=1,e.DefaultEventPriority=32,e.DiscreteEventPriority=2})),Ua=o(((e,t)=>{t.exports=Ha()})),Wa=l(Va()),Ga=Ua(),Ka={children:!0,ref:!0,key:!0,style:!0,forwardedRef:!0,eventBatchFunc:!0,unstable_applyCache:!0,unstable_applyDrawHitFromCache:!0},qa=!1,Ja=!1,Ya=`.react-konva-event`,Xa=!1,Za=`ReactKonva: You have a Konva node with draggable = true and position defined but no onDragMove or onDragEnd events are handled. +Position of a node will be changed during drag&drop, so you should update state of the react app as well. +Consider to add onDragMove or onDragEnd events. +For more info see: https://github.com/konvajs/react-konva/issues/256 +`,V=`ReactKonva: You are using "zIndex" attribute for a Konva node. +react-konva may get confused with ordering. Just define correct order of elements in your render function of a component. +For more info see: https://github.com/konvajs/react-konva/issues/194 +`,Qa={};function $a(e,t,n=Qa){if(!qa&&`zIndex`in t&&(console.warn(V),qa=!0),!Ja&&t.draggable){var r=t.x!==void 0||t.y!==void 0,i=t.onDragEnd||t.onDragMove;r&&!i&&(console.warn(Za),Ja=!0)}var a={},o=!1;for(var s in n)if(!Ka[s]){var c=s.slice(0,2)===`on`,l=n[s]!==t[s];if(c&&l){var u=s.substr(2).toLowerCase();u.substr(0,7)===`content`&&(u=`content`+u.substr(7,1).toUpperCase()+u.substr(8)),e.off(u+Ya)}var d=!t.hasOwnProperty(s);!c&&d&&(a[s]=void 0,o=!0)}var f=Xa||t._useStrictMode;let p={};for(var s in t)if(!Ka[s]){var c=s.slice(0,2)===`on`,m=n[s]!==t[s];if(c&&m){var u=s.substr(2).toLowerCase();u.substr(0,7)===`content`&&(u=`content`+u.substr(7,1).toUpperCase()+u.substr(8)),t[s]&&(p[u]=t[s])}!c&&(t[s]!==n[s]||f&&t[s]!==e.getAttr(s))&&(o=!0,a[s]=t[s])}for(var u in o&&(e.setAttrs(a),eo(e)),p)e.off(u+Ya),e.on(u+Ya,p[u])}function eo(e){if(!k.autoDrawEnabled){var t=e.getLayer()||e.getStage();t&&t.batchDraw()}}var to=d(),no=new Set,ro=new Set,io=typeof queueMicrotask==`function`?queueMicrotask:e=>Promise.resolve().then(e),ao=0,oo=new WeakMap;function so(e){return ro.add(e),()=>{ro.delete(e)}}function co(){for(let e of ro)e()}function lo(e){if(!e)return fo;let t=oo.get(e);return t||(t=t=>fo(()=>e(t)),oo.set(e,t)),t}function uo(e){let t=()=>{no.delete(t)&&(co(),e())};no.add(t),io(t)}function fo(e){if(ao)return e();ao++;try{(0,Ra.flushSync)(e)}finally{try{for(;no.size;)(0,Ra.flushSync)(()=>{for(let e of no)e()})}finally{ao--}}}var po=s({HostTransitionContext:()=>ys,NotPendingTransition:()=>vs,afterActiveInstanceBlur:()=>Xo,appendChild:()=>Po,appendChildToContainer:()=>Fo,appendInitialChild:()=>go,beforeActiveInstanceBlur:()=>Yo,bindToConsole:()=>Jo,cancelTimeout:()=>Mo,clearContainer:()=>Go,commitMount:()=>U,commitNewChildToFragmentInstance:()=>So,commitTextUpdate:()=>Bo,commitUpdate:()=>Vo,createFragmentInstance:()=>H,createInstance:()=>_o,createTextInstance:()=>vo,createViewTransitionInstance:()=>cs,deleteChildFromFragmentInstance:()=>Co,detachDeletedInstance:()=>Ko,finalizeInitialChildren:()=>yo,getChildHostContext:()=>Ao,getCurrentUpdatePriority:()=>es,getInstanceFromNode:()=>qo,getInstanceFromScope:()=>Qo,getPublicInstance:()=>bo,getRootHostContext:()=>ko,getSuspendedCommitReason:()=>_s,hideInstance:()=>Ho,hideTextInstance:()=>Uo,idlePriority:()=>to.unstable_IdlePriority,insertBefore:()=>Io,insertInContainerBefore:()=>Lo,isPrimaryRenderer:()=>!1,maySuspendCommit:()=>ss,maySuspendCommitInSyncRender:()=>us,maySuspendCommitOnUpdate:()=>ls,noTimeout:()=>-1,now:()=>to.unstable_now,preloadInstance:()=>fs,prepareForCommit:()=>To,preparePortalMount:()=>Eo,prepareScopeUpdate:()=>Zo,removeChild:()=>Ro,removeChildFromContainer:()=>zo,requestPostPaintCallback:()=>os,resetAfterCommit:()=>Do,resetFormInstance:()=>bs,resetTextContent:()=>Oo,resolveEventTimeStamp:()=>as,resolveEventType:()=>is,resolveUpdatePriority:()=>ts,run:()=>to.unstable_runWithPriority,scheduleMicrotask:()=>uo,scheduleTimeout:()=>jo,setCurrentUpdatePriority:()=>$o,shouldAttemptEagerTransition:()=>ns,shouldSetTextContent:()=>No,startSuspendingCommit:()=>ps,startViewTransition:()=>ds,supportsHydration:()=>!1,supportsMicrotasks:()=>!0,supportsMutation:()=>!0,supportsPersistence:()=>!1,suspendInstance:()=>ms,suspendOnActiveViewTransition:()=>hs,trackSchedulerEvent:()=>rs,unhideInstance:()=>Wo,unhideTextInstance:()=>W,updateFragmentInstanceFiber:()=>xo,waitForCommitToBeReady:()=>gs,warnsIfNotActing:()=>!1}),mo={};za.Node.prototype._applyProps=$a;var ho=Ga.DefaultEventPriority;function go(e,t){typeof t==`string`?console.error(`Do not use plain text as child of Konva.Node. You are using text: ${t}`):(e.add(t),eo(e))}function _o(e,t,n){let r=za[e];r||=(console.error(`Konva has no node with the type ${e}. Group will be used instead. If you use minimal version of react-konva, just import required nodes into Konva: "import "konva/lib/shapes/${e}" If you want to render DOM elements as part of canvas tree take a look into this demo: https://konvajs.github.io/docs/react/DOM_Portal.html`),za.Group);let i={},a={};for(var o in t)o!==`ref`&&(o.slice(0,2)===`on`?a[o]=t[o]:i[o]=t[o]);let s=new r(i);return $a(s,a),s}function vo(e,t,n){console.error(`Text components are not supported for now in ReactKonva. Your text is: "${e}"`)}function yo(e,t,n){return!1}function bo(e){return e}function H(){return null}function xo(){}function So(){}function Co(){}var wo;function To(){return wo=za.beginUpdateBatch?.(),null}function Eo(){return null}function Do(){let e=wo;wo=void 0,e?.()}function Oo(e){}function ko(){return mo}function Ao(){return mo}var jo=setTimeout,Mo=clearTimeout;function No(e,t){return!1}function Po(e,t){t.parent===e?t.moveToTop():e.add(t),eo(e)}var Fo=Po;function Io(e,t,n){t._remove(),e.add(t),t.setZIndex(n.getZIndex()),eo(e)}var Lo=Io;function Ro(e,t){t.destroy(),t.off(Ya),eo(e)}var zo=Ro;function Bo(e,t,n){console.error(`Text components are not yet supported in ReactKonva. You text is: "${n}"`)}function U(e,t,n){}function Vo(e,t,n,r){$a(e,r,n)}function Ho(e){e.hide(),eo(e)}function Uo(e){}function Wo(e,t){(t.visible==null||t.visible)&&(e.show(),eo(e))}function W(e,t){}function Go(e){}function Ko(e){e.off(Ya)}function qo(){return null}function Jo(e,t){return console[e].bind(console,...t)}function Yo(){}function Xo(){}function Zo(){}function Qo(){return null}function $o(e){ho=e}function es(){return ho}function ts(){return Ga.DiscreteEventPriority}function ns(){return!1}function rs(){}function is(){return null}function as(){return-1.1}function os(){}function ss(){throw Error(`ViewTransition is not supported inside a Stage. Place ViewTransition around Stage to animate its DOM container.`)}var cs=ss,ls=ss,us=ss;function ds(e,t,n,r,i,a,o,s,c,l,u){return r(),i(),u?.(),o(),null}function fs(){return!0}function ps(){}function ms(){}function hs(){}function gs(){return null}function _s(){return null}var vs=Object.freeze({pending:!1,data:null,method:null,action:null}),ys=v.createContext(vs);function bs(){}typeof window<`u`&&(window.document?.createElement||window.navigator?.product===`ReactNative`)?v.useLayoutEffect:v.useEffect;function xs(e,t,n){if(!e)return;if(n(e)===!0)return e;let r=t?e.return:e.child;for(;r;){let e=xs(r,t,n);if(e)return e;r=t?null:r.sibling}}function Ss(e){try{return Object.defineProperties(e,{_currentRenderer:{get(){return null},set(){}},_currentRenderer2:{get(){return null},set(){}}})}catch{return e}}var Cs=Ss(v.createContext(null)),ws=class extends v.Component{render(){return v.createElement(Cs.Provider,{value:this._reactInternals},this.props.children)}};function Ts(){let e=v.useContext(Cs);if(e===null)throw Error(`its-fine: useFiber must be called within a !`);let t=v.useId();return v.useMemo(()=>{for(let n of[e,e?.alternate]){if(!n)continue;let e=xs(n,!1,e=>{let n=e.memoizedState;for(;n;){if(n.memoizedState===t)return!0;n=n.next}});if(e)return e}},[e,t])}var Es=Symbol.for(`react.context`),Ds=e=>typeof e==`object`&&!!e&&`$$typeof`in e&&e.$$typeof===Es;function Os(){let e=Ts(),[t]=v.useState(()=>new Map);t.clear();let n=e;for(;n;){let e=n.type;Ds(e)&&e!==Cs&&!t.has(e)&&t.set(e,v.use(Ss(e))),n=n.return}return t}function ks(){let e=Os();return v.useMemo(()=>Array.from(e.keys()).reduce((t,n)=>r=>v.createElement(t,null,v.createElement(n.Provider,{...r,value:e.get(n)})),e=>v.createElement(ws,{...e})),[e])}var[As,js]=`19.3.1`.split(`.`).map(Number);if(As!==19||js<3)throw Error(`react-konva requires React 19.3 or later within React 19. Install matching versions of react and react-dom. For React 19.2, use react-konva 19.2. For React 18, use react-konva 18.`);function Ms({promise:e}){throw e}var Ns=e=>{let t=v.useRef(null),n=v.useRef(null),r=v.useRef(null),i=v.useRef(null),a=v.useRef(null),o=v.useId(),s=(0,Ra.useFormStatus)(),c=v.useRef({}),l=c.current,u=ks(),d=!!xs(Ts(),!0,e=>e.type===v.StrictMode),f=v.useRef(!1),p=v.useRef(!1),m=v.useRef(null);v.useInsertionEffect(()=>(p.current=!1,()=>{p.current=!0,f.current&&n.current&&h()}),[]);let h=()=>{m.current?.(),m.current=null,co(),zs.flushSyncFromReconciler(()=>{zs.updateContainer(null,r.current,null)}),n.current?.destroy(),n.current?.off(Ya),n.current=null,a.current?.resolve(),a.current=null},g=e=>{if(e===`suspended`){if(!a.current){let e,t=new Promise(t=>{e=t});a.current={promise:t,resolve:e}}}else a.current?.resolve(),a.current=null;zs.updateContainer(v.createElement(v.Activity,{mode:e===`hidden`?`hidden`:`visible`,children:v.createElement(v.Suspense,{fallback:null},i.current,a.current&&v.createElement(Ms,{promise:a.current.promise}))}),r.current,null),co(),zs.flushSyncWork()};return v.useLayoutEffect(()=>(m.current?.(),m.current=null,n.current||(n.current=new za.Stage({width:e.width,height:e.height,container:t.current}),r.current=zs.createContainer(n.current,Ga.ConcurrentRoot,null,d,null,o,console.error,console.error,console.error,null,null)),()=>{p.current?h():(m.current=so(()=>{p.current&&(m.current?.(),m.current=null,zs.updateContainer(null,r.current,null))}),g(`suspended`))}),[]),v.useEffect(()=>(f.current=!1,()=>{f.current=!0,n.current&&(p.current?h():g(`hidden`))}),[]),v.useLayoutEffect(()=>{typeof n.current.eventBatchFunc==`function`&&n.current.eventBatchFunc(lo(e.eventBatchFunc))},[e.eventBatchFunc]),v.useImperativeHandle(e.forwardedRef,()=>n.current,[]),v.useLayoutEffect(()=>{c.current=e,$a(n.current,e,l),i.current=v.createElement(ys.Provider,{value:s},v.createElement(u,{},e.children)),g(`visible`)}),v.createElement(`div`,{ref:t,id:e.id,accessKey:e.accessKey,className:e.className,role:e.role,style:e.style,tabIndex:e.tabIndex,title:e.title})},Ps=`Layer`,Fs=`Group`,Is=`Rect`,Ls=`19.3.2`,Rs={...po,HostTransitionContext:ys,rendererVersion:Ls,rendererPackageName:`react-konva`,extraDevToolsConfig:null},zs=(0,Wa.default)(Rs);zs.injectIntoDevTools();var Bs=v.forwardRef((e,t)=>v.createElement(ws,{},v.createElement(Ns,{...e,forwardedRef:t}))),Vs={normal:`#3b3b3b`,selected:`#1c7ed6`,valid:`#2f9e44`,invalid:`#e03131`};function Hs({type:e,width:t,height:n,pxPerM:r,outline:i,opacity:a=1}){let o=t*r,s=n*r,c=Vs[i],l=i===`normal`?1.5:3;if(e===`screen`){let e=Math.min(3,s/4);return(0,D.jsxs)(Fs,{opacity:a,children:[(0,D.jsx)(Is,{width:o,height:s,fill:`#2d3748`,stroke:c,strokeWidth:l,cornerRadius:2}),(0,D.jsx)(Is,{x:e,y:e,width:Math.max(0,o-e*2),height:Math.max(0,s-e*2),fill:`#63b3ed`,listening:!1})]})}if(e===`table`)return(0,D.jsx)(Fs,{opacity:a,children:(0,D.jsx)(Is,{width:o,height:s,fill:`#d9b382`,stroke:c,strokeWidth:l,cornerRadius:3})});let u=Math.max(4,s*.2);return(0,D.jsxs)(Fs,{opacity:a,children:[(0,D.jsx)(Is,{width:o,height:s,fill:`#8fb4d9`,stroke:c,strokeWidth:l,cornerRadius:3}),(0,D.jsx)(Is,{width:o,height:u,fill:`#4a6f96`,cornerRadius:[3,3,0,0],listening:!1})]})}var Us=10,Ws=[`left`,`right`];function Gs({room:e,items:t,preview:n,pxPerM:r,floorRef:i,onMove:a,onResize:o}){let[s,c]=(0,v.useState)(null),[l,u]=(0,v.useState)(null),[d,f]=(0,v.useState)(null),p=(0,v.useRef)(null),m=e.width*r,h=e.height*r,g=(t,n)=>w({x:n.x()/r,y:n.y()/r,width:t.width,height:t.height},e);return(0,D.jsx)(`div`,{ref:i,style:{width:m,height:h,border:`6px solid #2b2b2b`,boxSizing:`content-box`,background:`#fff`,boxShadow:`0 4px 18px rgba(0,0,0,0.12)`,touchAction:`none`},children:(0,D.jsx)(Bs,{width:m,height:h,onMouseDown:e=>e.target===e.target.getStage()&&u(null),onTouchStart:e=>e.target===e.target.getStage()&&u(null),children:(0,D.jsxs)(Ps,{children:[t.map(n=>{let i=d?.id===n.id,o=i?d.rect:n,f=i?d.valid?`valid`:`invalid`:s?.id===n.id?s.valid?`valid`:`invalid`:l===n.id?`selected`:`normal`;return(0,D.jsx)(Fs,{x:o.x*r,y:o.y*r,onMouseDown:()=>u(S[n.type]?n.id:null),onTouchStart:()=>u(S[n.type]?n.id:null),draggable:!n.locked,dragBoundFunc:e=>({x:Math.min(Math.max(e.x,0),m-n.width*r),y:Math.min(Math.max(e.y,0),h-n.height*r)}),onDragStart:e=>{e.target.moveToTop()},onDragMove:r=>{let i=g(n,r.target);c({id:n.id,valid:ae(i,t,e,n.id)})},onDragEnd:i=>{let o=i.target,s=g(n,o),l=ae(s,t,e,n.id),u=l?s:n;o.position({x:u.x*r,y:u.y*r}),l&&a(n.id,s.x,s.y),c(null)},onMouseEnter:e=>{let t=e.target.getStage()?.container();t&&(t.style.cursor=`grab`)},onMouseLeave:e=>{let t=e.target.getStage()?.container();t&&(t.style.cursor=``)},children:(0,D.jsx)(Hs,{type:n.type,width:o.width,height:o.height,pxPerM:r,outline:f})},n.id)}),t.map(n=>{if(n.id!==l||!S[n.type]||s?.id===n.id)return null;let i=d?.id===n.id?d.rect:n,a={left:[i.x,i.y+i.height/2],right:[i.x+i.width,i.y+i.height/2]};return Ws.map(i=>(0,D.jsx)(Is,{x:a[i][0]*r,y:a[i][1]*r,offsetX:Us/2,offsetY:Us/2,width:Us,height:Us,fill:`#fff`,stroke:`#1c7ed6`,strokeWidth:2,cornerRadius:2,hitStrokeWidth:12,draggable:!0,dragBoundFunc:function(){return this.absolutePosition()},onDragStart:e=>{e.cancelBubble=!0,p.current={x:n.x,y:n.y,width:n.width,height:n.height}},onDragMove:a=>{let o=a.target.getStage()?.getPointerPosition(),s=p.current;if(!o||!s)return;let c=ee(s,i,o.x/r,o.y/r,e,C);f({id:n.id,rect:c,valid:ae(c,t,e,n.id)})},onDragEnd:()=>{d?.valid&&o(n.id,d.rect),f(null),p.current=null},onMouseEnter:e=>{let t=e.target.getStage()?.container();t&&(t.style.cursor=`ew-resize`)},onMouseLeave:e=>{let t=e.target.getStage()?.container();t&&(t.style.cursor=``)}},`${n.id}-${i}`))}),n&&(0,D.jsx)(`Group`,{x:n.x*r,y:n.y*r,listening:!1,children:(0,D.jsx)(Hs,{type:n.type,width:n.width,height:n.height,pxPerM:r,outline:n.valid?`valid`:`invalid`,opacity:.85})})]})})})}function Ks({pxPerM:e,roomWidthPx:t}){return(0,D.jsx)(`div`,{style:{width:t,height:40,display:`flex`,alignItems:`flex-end`,paddingBottom:4,boxSizing:`border-box`},children:(0,D.jsxs)(`div`,{style:{font:`12px system-ui, sans-serif`,color:`#555`},children:[(0,D.jsx)(`div`,{style:{width:e,height:6,borderBottom:`2px solid #555`,borderLeft:`2px solid #555`,borderRight:`2px solid #555`,boxSizing:`border-box`,marginBottom:2}}),`1 m`]})})}var qs=34,Js=3,Ys=4,Xs=7,Zs=12,Qs=4,$s=40,ec=40;function tc({value:e,min:t,max:n=999,onChange:r}){let[i,a]=(0,v.useState)(e),[o,s]=(0,v.useState)(!1),c=(0,v.useRef)(e),l=(0,v.useRef)(e),u=(0,v.useRef)(0),d=(0,v.useRef)(0),f=(0,v.useRef)(e),p=(0,v.useRef)(null),m=(0,v.useRef)(null),h=(0,v.useRef)([]),g=(0,v.useRef)({min:t,max:n,onChange:r});g.current={min:t,max:n,onChange:r};let _=e=>Math.min(g.current.max,Math.max(g.current.min,e)),y=e=>{let t=_(e);c.current=t,a(t);let n=Math.round(t);return n!==l.current&&(l.current=n,g.current.onChange(n)),t},b=()=>{cancelAnimationFrame(u.current),u.current=0,window.clearTimeout(d.current),d.current=0},x=e=>{b();let t=_(Math.round(e));f.current=t;let n=performance.now(),r=e=>{let i=Math.min(.05,(e-n)/1e3);n=e;let a=c.current+(t-c.current)*(1-Math.exp(-7*i));Math.abs(t-a)<.003?(y(t),u.current=0):(y(a),u.current=requestAnimationFrame(r))};u.current=requestAnimationFrame(r)},S=(e,t)=>{b();let n=_(Math.round(e));f.current=n;let r=c.current-n,i=Math.abs(r),a=i>0&&Math.sign(t)===-Math.sign(r)?Math.max(Zs,Math.abs(t)/i):Zs,o=t+a*r,s=performance.now(),l=e=>{let t=(e-s)/1e3,i=Math.exp(-a*t),c=n+(r+o*t)*i,d=(o-a*(r+o*t))*i;Math.abs(c-n)<.003&&Math.abs(d)<.05||t>1.5?(y(n),u.current=0):(y(c),u.current=requestAnimationFrame(l))};u.current=requestAnimationFrame(l)};(0,v.useEffect)(()=>{m.current||u.current||(c.current=e,l.current=e,a(e))},[e]),(0,v.useEffect)(()=>b,[]);let C=e=>{e.currentTarget.setPointerCapture(e.pointerId);let t=u.current!==0||d.current!==0;b(),m.current={y0:e.clientY,pos0:c.current,moved:!1,wasMoving:t},h.current=[{t:performance.now(),pos:c.current}],s(!0)},ee=e=>{let t=m.current;if(!t)return;let n=e.clientY-t.y0;Math.abs(n)>Ys&&(t.moved=!0);let r=y(t.pos0-n/qs),i=performance.now();h.current.push({t:i,pos:r}),h.current=h.current.filter(e=>i-e.t<100)},te=e=>{let t=m.current;if(m.current=null,s(!1),!t)return;if(!t.moved){if(t.wasMoving)S(c.current,0);else{let n=p.current.getBoundingClientRect(),r=Math.round((e.clientY-n.top-85)/qs);c.current=t.pos0,x(Math.round(t.pos0)+r)}return}let n=performance.now(),r=h.current,i=0;if(r.length>1&&n-r[r.length-1].t<80){let e=r[0],t=(r[r.length-1].t-e.t)/1e3;t>.005&&(i=(r[r.length-1].pos-e.pos)/t)}i=Math.max(-40,Math.min($s,i)),Math.abs(i){if(Math.abs(e.deltaY)>=ec){let t=u.current?f.current:Math.round(c.current);x(t+Math.sign(e.deltaY))}else b(),y(c.current+e.deltaY/(qs*1.5)),d.current=window.setTimeout(()=>{d.current=0,S(c.current,0)},120)},w=e=>{if(e.key===`ArrowUp`)x(Math.round(c.current)+1);else if(e.key===`ArrowDown`)x(Math.round(c.current)-1);else return;e.preventDefault()},re=Math.round(i),ie=[];for(let e=Math.max(t,re-Js);e<=Math.min(n,re+Js);e++){let t=e-i;ie.push((0,D.jsx)(`div`,{style:{position:`absolute`,left:0,right:0,height:qs,display:`flex`,alignItems:`center`,justifyContent:`center`,font:`600 20px system-ui, sans-serif`,color:`#222`,opacity:Math.max(0,1-Math.abs(t)*.38),transform:`translateY(${(2+t)*qs}px) scale(${1-Math.min(1,Math.abs(t))*.12})`,pointerEvents:`none`},children:e},e))}return(0,D.jsxs)(`div`,{ref:p,tabIndex:0,role:`spinbutton`,"aria-valuenow":e,"aria-valuemin":t,"aria-valuemax":n,onPointerDown:C,onPointerMove:ee,onPointerUp:te,onPointerCancel:te,onWheel:ne,onKeyDown:w,style:{position:`relative`,width:`100%`,height:170,overflow:`hidden`,background:`#f4f4f4`,borderRadius:10,cursor:o?`grabbing`:`ns-resize`,userSelect:`none`,touchAction:`none`,outline:`none`},children:[(0,D.jsx)(`div`,{style:{position:`absolute`,left:6,right:6,top:68,height:qs,background:`rgba(0,0,0,0.08)`,borderRadius:8,pointerEvents:`none`}}),ie]})}var nc={font:`600 12px system-ui, sans-serif`,color:`#555`,marginBottom:4},rc={font:`12px system-ui, sans-serif`,color:`#888`,marginTop:4};function ic({type:e,config:t,placed:n,onSetAvailable:r,onSetSeats:i,onClose:a}){return(0,v.useEffect)(()=>{let e=e=>e.key===`Escape`&&a();return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[a]),(0,D.jsxs)(`div`,{style:{gridColumn:`1 / -1`,display:`flex`,flexDirection:`column`,gap:14},children:[(0,D.jsx)(`button`,{onClick:a,style:{alignSelf:`flex-start`,border:`none`,background:`none`,padding:0,cursor:`pointer`,font:`13px system-ui, sans-serif`,color:`#555`},children:`← Back`}),(0,D.jsx)(`div`,{style:{font:`600 15px system-ui, sans-serif`,color:`#222`},children:E[e]}),(0,D.jsxs)(`div`,{children:[(0,D.jsx)(`div`,{style:nc,children:`Available`}),(0,D.jsx)(tc,{value:t.available,min:n,onChange:r}),(0,D.jsxs)(`div`,{style:rc,children:[n,` placed`]})]}),e===`screen`&&(0,D.jsx)(`div`,{style:rc,children:`Click a placed screen, then drag an end handle to change its length.`}),e===`table`&&(0,D.jsxs)(`div`,{children:[(0,D.jsx)(`div`,{style:nc,children:`Seats per table`}),(0,D.jsx)(tc,{value:t.seatsPerUnit??8,min:1,onChange:i})]})]})}var ac=40;function oc(){let[e,t]=(0,v.useReducer)(se,oe),[n,r]=(0,v.useState)(null),[i,a]=(0,v.useState)(null),o=(0,v.useCallback)(()=>a(null),[]),s=(0,v.useRef)(null),c=(0,v.useRef)(null),[l,u]=(0,v.useState)(60);(0,v.useEffect)(()=>{let t=c.current;if(!t)return;let n=new ResizeObserver(([t])=>{let{width:n,height:r}=t.contentRect;u(b(e.room,n-12,r-12-ac))});return n.observe(t),()=>n.disconnect()},[e.room]);let d=(0,v.useRef)(1),f=t=>{let n=s.current?.getBoundingClientRect();if(!n)return null;let r=(n.width-e.room.width*l)/2,i=t.clientX-n.left-r,a=t.clientY-n.top-r;if(i<0||a<0||i>e.room.width*l||a>e.room.height*l)return null;let{width:o,height:c}=x[t.type];return w({x:i/l-o/2,y:a/l-c/2,width:o,height:c},e.room)};(0,v.useEffect)(()=>{if(!n)return;let i=n.type,a=e=>r({type:i,clientX:e.clientX,clientY:e.clientY}),o=n=>{let a=f({type:i,clientX:n.clientX,clientY:n.clientY});a&&le(e.items,i,e.configs[i].available)>0&&ae(a,e.items,e.room)&&t({kind:`add`,id:`item-${d.current++}`,type:i,x:a.x,y:a.y}),r(null)},s=()=>r(null);return window.addEventListener(`pointermove`,a),window.addEventListener(`pointerup`,o),window.addEventListener(`pointercancel`,s),()=>{window.removeEventListener(`pointermove`,a),window.removeEventListener(`pointerup`,o),window.removeEventListener(`pointercancel`,s)}},[n?.type,e.items,e.room,e.configs,l]);let p=(0,v.useMemo)(()=>{if(!n)return null;let t=f(n);return t?{type:n.type,...t,valid:ae(t,e.items,e.room)}:null},[n,e.items,e.room,l]),m=(e,t,n)=>{a(null),r({type:e,clientX:t,clientY:n})},h=Object.fromEntries(T.map(t=>[t,le(e.items,t,e.configs[t].available)]));return(0,D.jsxs)(`div`,{style:{display:`flex`,height:`100vh`,background:`#e9e9e9`,cursor:n?`grabbing`:void 0},children:[(0,D.jsx)(be,{remaining:h,onStartDrag:m,onOpenMenu:a,panel:i&&(0,D.jsx)(ic,{type:i,config:e.configs[i],placed:ce(e.items,i),onSetAvailable:e=>t({kind:`setAvailable`,type:i,value:e}),onSetSeats:e=>t({kind:`setSeats`,value:e}),onClose:o})}),(0,D.jsxs)(`main`,{ref:c,style:{flex:1,minWidth:0,display:`flex`,flexDirection:`column`,alignItems:`center`,justifyContent:`center`,overflow:`hidden`,padding:24},children:[(0,D.jsx)(Gs,{pxPerM:l,room:e.room,items:e.items,preview:p,floorRef:s,onMove:(e,n,r)=>t({kind:`move`,id:e,x:n,y:r}),onResize:(e,n)=>t({kind:`resize`,id:e,...n})}),(0,D.jsx)(Ks,{pxPerM:l,roomWidthPx:e.room.width*l+12})]}),n&&!p&&(0,D.jsx)(`div`,{style:{position:`fixed`,left:n.clientX,top:n.clientY,transform:`translate(-50%, -50%)`,pointerEvents:`none`,opacity:.8},children:(()=>{let e=ye[n.type];return(0,D.jsx)(e,{})})()})]})}document.body.style.margin=`0`,(0,y.createRoot)(document.getElementById(`root`)).render((0,D.jsx)(oc,{})); \ No newline at end of file diff --git a/dist/assets/index-Cp-y6ttL.js b/dist/assets/index-Cp-y6ttL.js deleted file mode 100644 index 4803541..0000000 --- a/dist/assets/index-Cp-y6ttL.js +++ /dev/null @@ -1,41 +0,0 @@ -var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t,t.exports),e=null),t.exports),s=(e,n)=>{let r={};for(var i in e)t(r,i,{get:e[i],enumerable:!0});return n||t(r,Symbol.toStringTag,{value:`Module`}),r},c=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;li[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},l=(n,r,o)=>(o=n==null?{}:e(i(n)),c(r||!n||!n.__esModule||!a.call(n,`default`)?t(o,`default`,{value:n,enumerable:!0}):o,n));(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),t.credentials=e.crossOrigin===`use-credentials`?`include`:e.crossOrigin===`anonymous`?`omit`:`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var u=o((e=>{function t(e,t){var n=e.length;e.push(t);a:for(;0>>1,a=e[r];if(0>>1;ri(c,n))li(u,c)?(e[r]=u,e[l]=n,r=l):(e[r]=c,e[s]=n,r=s);else if(li(u,n))e[r]=u,e[l]=n,r=l;else break a}}return t}function i(e,t){var n=e.sortIndex-t.sortIndex;return n===0?e.id-t.id:n}if(e.unstable_now=void 0,typeof performance==`object`&&typeof performance.now==`function`){var a=performance;e.unstable_now=function(){return a.now()}}else{var o=Date,s=o.now();e.unstable_now=function(){return o.now()-s}}var c=[],l=[],u=1,d=null,f=3,p=!1,m=!1,h=!1,g=!1,_=typeof setTimeout==`function`?setTimeout:null,v=typeof clearTimeout==`function`?clearTimeout:null,y=typeof setImmediate<`u`?setImmediate:null;function b(e){for(var i=n(l);i!==null;){if(i.callback===null)r(l);else if(i.startTime<=e)r(l),i.sortIndex=i.expirationTime,t(c,i);else break;i=n(l)}}function x(e){if(h=!1,b(e),!m){if(n(c)!==null)m=!0,S||(S=!0,re());else{var t=n(l);t!==null&&oe(x,t.startTime-e)}}}var S=!1,C=-1,ee=5,te=-1;function ne(){return g?!0:!(e.unstable_now()-tet&&ne());){var o=d.callback;if(typeof o==`function`){d.callback=null,f=d.priorityLevel;var s=o(d.expirationTime<=t);if(t=e.unstable_now(),typeof s==`function`){d.callback=s,b(t),i=!0;break b}d===n(c)&&r(c),b(t)}else r(c);d=n(c)}if(d!==null)i=!0;else{var u=n(l);u!==null&&oe(x,u.startTime-t),i=!1}}break a}finally{d=null,f=a,p=!1}i=void 0}}finally{i?re():S=!1}}}var re;if(typeof y==`function`)re=function(){y(w)};else if(typeof MessageChannel<`u`){var ie=new MessageChannel,ae=ie.port2;ie.port1.onmessage=w,re=function(){ae.postMessage(null)}}else re=function(){_(w,0)};function oe(t,n){C=_(function(){t(e.unstable_now())},n)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(e){e.callback=null},e.unstable_forceFrameRate=function(e){0>e||125o?(r.sortIndex=a,t(l,r),n(c)===null&&r===n(l)&&(h?(v(C),C=-1):h=!0,oe(x,a-o))):(r.sortIndex=s,t(c,r),m||p||(m=!0,S||(S=!0,re()))),r},e.unstable_shouldYield=ne,e.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}})),d=o(((e,t)=>{t.exports=u()})),f=o((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.portal`),r=Symbol.for(`react.fragment`),i=Symbol.for(`react.strict_mode`),a=Symbol.for(`react.profiler`),o=Symbol.for(`react.consumer`),s=Symbol.for(`react.context`),c=Symbol.for(`react.forward_ref`),l=Symbol.for(`react.suspense`),u=Symbol.for(`react.memo`),d=Symbol.for(`react.lazy`),f=Symbol.for(`react.activity`),p=Symbol.for(`react.view_transition`),m=Symbol.iterator;function h(e){return typeof e!=`object`||!e?null:(e=m&&e[m]||e[`@@iterator`],typeof e==`function`?e:null)}var g={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},_=Object.assign,v={};function y(e,t,n){this.props=e,this.context=t,this.refs=v,this.updater=n||g}y.prototype.isReactComponent={},y.prototype.setState=function(e,t){if(typeof e!=`object`&&typeof e!=`function`&&e!=null)throw Error(`takes an object of state variables to update or a function which returns an object of state variables.`);this.updater.enqueueSetState(this,e,t,`setState`)},y.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,`forceUpdate`)};function b(){}b.prototype=y.prototype;function x(e,t,n){this.props=e,this.context=t,this.refs=v,this.updater=n||g}var S=x.prototype=new b;S.constructor=x,_(S,y.prototype),S.isPureReactComponent=!0;var C=Array.isArray;function ee(){}var te={H:null,A:null,T:null,S:null},ne=Object.prototype.hasOwnProperty;function w(e,n,r){var i=r.ref;return{$$typeof:t,type:e,key:n,ref:i===void 0?null:i,props:r}}function re(e,t){return w(e.type,t,e.props)}function ie(e){return typeof e==`object`&&!!e&&e.$$typeof===t}function ae(e){var t={"=":`=0`,":":`=2`};return`$`+e.replace(/[=:]/g,function(e){return t[e]})}var oe=/\/+/g;function se(e,t){return typeof e==`object`&&e&&e.key!=null?ae(``+e.key):t.toString(36)}function T(e){switch(e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason;default:switch(typeof e.status==`string`?e.then(ee,ee):(e.status=`pending`,e.then(function(t){e.status===`pending`&&(e.status=`fulfilled`,e.value=t)},function(t){e.status===`pending`&&(e.status=`rejected`,e.reason=t)})),e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason}}throw e}function E(e,r,i,a,o){var s=typeof e;(s===`undefined`||s===`boolean`)&&(e=null);var c=!1;if(e===null)c=!0;else switch(s){case`bigint`:case`string`:case`number`:c=!0;break;case`object`:switch(e.$$typeof){case t:case n:c=!0;break;case d:return c=e._init,E(c(e._payload),r,i,a,o)}}if(c)return o=o(e),c=a===``?`.`+se(e,0):a,C(o)?(i=``,c!=null&&(i=c.replace(oe,`$&/`)+`/`),E(o,r,i,``,function(e){return e})):o!=null&&(ie(o)&&(o=re(o,i+(o.key==null||e&&e.key===o.key?``:(``+o.key).replace(oe,`$&/`)+`/`)+c)),r.push(o)),1;c=0;var l=a===``?`.`:a+`:`;if(C(e))for(var u=0;u{t.exports=f()})),m=o((e=>{var t=p();function n(e){var t=`https://react.dev/errors/`+e;if(1{function n(){if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<`u`&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE==`function`)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=m()})),g=o((e=>{var t=d(),n=p(),r=h();function i(e){var t=`https://react.dev/errors/`+e;if(1Te||(e.current=we[Te],we[Te]=null,Te--)}function Oe(e,t){Te++,we[Te]=e.current,e.current=t}var ke=Ee(null),Ae=Ee(null),je=Ee(null),Me=Ee(null);function Ne(e,t){switch(Oe(je,t),Oe(Ae,e),Oe(ke,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?up(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=up(t),e=dp(t,e);else switch(e){case`svg`:e=1;break;case`math`:e=2;break;default:e=0}}De(ke),Oe(ke,e)}function Pe(){De(ke),De(Ae),De(je)}function Fe(e){var t=e.memoizedState;t!==null&&(sh._currentValue=t.memoizedState,Oe(Me,e)),t=ke.current;var n=dp(t,e.type);t!==n&&(Oe(Ae,e),Oe(ke,n))}function Ie(e){Ae.current===e&&(De(ke),De(Ae)),Me.current===e&&(De(Me),sh._currentValue=Ce)}var Le,Re;function ze(e){if(Le===void 0)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);Le=t&&t[1]||``,Re=-1)`:-1i||c[r]!==l[i]){var u=` -`+c[r].replace(` at new `,` at `);return e.displayName&&u.includes(``)&&(u=u.replace(``,e.displayName)),u}while(1<=r&&0<=i);break}}}finally{Be=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:``)?ze(n):``}function He(e,t){switch(e.tag){case 26:case 27:case 5:return ze(e.type);case 16:return ze(`Lazy`);case 13:return e.child!==t&&t!==null?ze(`Suspense Fallback`):ze(`Suspense`);case 19:return ze(`SuspenseList`);case 0:case 15:return Ve(e.type,!1);case 11:return Ve(e.type.render,!1);case 1:return Ve(e.type,!0);case 31:return ze(`Activity`);case 30:return ze(`ViewTransition`);default:return``}}function Ue(e){try{var t=``,n=null;do t+=He(e,n),n=e,e=e.return;while(e);return t}catch(e){return` -Error generating stack: `+e.message+` -`+e.stack}}var We=Object.prototype.hasOwnProperty,Ge=t.unstable_scheduleCallback,Ke=t.unstable_cancelCallback,A=t.unstable_shouldYield,qe=t.unstable_requestPaint,Je=t.unstable_now,Ye=t.unstable_getCurrentPriorityLevel,Xe=t.unstable_ImmediatePriority,Ze=t.unstable_UserBlockingPriority,Qe=t.unstable_NormalPriority,$e=t.unstable_LowPriority,et=t.unstable_IdlePriority,tt=t.log,nt=t.unstable_setDisableYieldValue,rt=null,it=null;function at(e){if(typeof tt==`function`&&nt(e),it&&typeof it.setStrictMode==`function`)try{it.setStrictMode(rt,e)}catch{}}var ot=Math.clz32?Math.clz32:lt,st=Math.log,ct=Math.LN2;function lt(e){return e>>>=0,e===0?32:31-(st(e)/ct|0)|0}var ut=256,j=262144,dt=4194304;function ft(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&-e;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function pt(e,t,n){var r=e.pendingLanes;if(r===0)return 0;var i=0,a=e.suspendedLanes,o=e.pingedLanes;e=e.warmLanes;var s=r&134217727;return s===0?(s=r&~a,s===0?o===0?n||(n=r&~e,n!==0&&(i=ft(n))):i=ft(o):i=ft(s)):(r=s&~a,r===0?(o&=s,o===0?n||(n=s&~e,n!==0&&(i=ft(n))):i=ft(o)):i=ft(r)),i===0?0:t!==0&&t!==i&&(t&a)===0&&(a=i&-i,n=t&-t,a>=n||a===32&&n&4194048)?t:i}function mt(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function ht(e,t){t&8&&(t|=t&32);var n=e.entangledLanes;if(n!==0)for(e=e.entanglements,n&=t;0n;n++)t.push(e);return t}function yt(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function bt(e,t,n,r,i,a){var o=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var s=e.entanglements,c=e.expirationTimes,l=e.hiddenUpdates;for(n=o&~n;0=hr),vr=` `,yr=!1;function br(e,t){switch(e){case`keyup`:return pr.indexOf(t.keyCode)!==-1;case`keydown`:return t.keyCode!==229;case`keypress`:case`mousedown`:case`focusout`:return!0;default:return!1}}function xr(e){return e=e.detail,typeof e==`object`&&`data`in e?e.data:null}var Sr=!1;function Cr(e,t){switch(e){case`compositionend`:return xr(t);case`keypress`:return t.which===32?(yr=!0,vr):null;case`textInput`:return e=t.data,e===vr&&yr?null:e;default:return null}}function wr(e,t){if(Sr)return e===`compositionend`||!mr&&br(e,t)?(e=Ln(),In=Fn=Pn=null,Sr=!1,e):null;switch(e){case`paste`:return null;case`keypress`:if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}a:{for(;n;){if(n.nextSibling){n=n.nextSibling;break a}n=n.parentNode}n=void 0}n=qr(n)}}function Yr(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Yr(e,t.parentNode):`contains`in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Xr(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=Kr(e.document);t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href==`string`}catch{n=!1}if(n)e=t.contentWindow;else break;t=Kr(e.document)}return t}function Zr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t===`input`&&(e.type===`text`||e.type===`search`||e.type===`tel`||e.type===`url`||e.type===`password`)||t===`textarea`||e.contentEditable===`true`)}var Qr=jn&&`documentMode`in document&&11>=document.documentMode,$r=null,ei=null,ti=null,ni=!1;function ri(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;ni||$r==null||$r!==Kr(r)||(r=$r,`selectionStart`in r&&Zr(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),ti&&Gr(ti,r)||(ti=r,r=qf(ei,`onSelect`),0>=o,i-=o,Qi=1<<32-ot(t)+i|n<h?(g=d,d=null):g=d.sibling;var _=p(i,d,s[h],c);if(_===null){d===null&&(d=g);break}e&&d&&_.alternate===null&&t(i,d),a=o(_,a,h),u===null?l=_:u.sibling=_,u=_,d=g}if(h===s.length)return n(i,d),z&&ea(i,h),l;if(d===null){for(;hg?(_=h,h=null):_=h.sibling;var y=p(a,h,v.value,l);if(y===null){h===null&&(h=_);break}e&&h&&y.alternate===null&&t(a,h),s=o(y,s,g),d===null?u=y:d.sibling=y,d=y,h=_}if(v.done)return n(a,h),z&&ea(a,g),u;if(h===null){for(;!v.done;g++,v=c.next())v=f(a,v.value,l),v!==null&&(s=o(v,s,g),d===null?u=v:d.sibling=v,d=v);return z&&ea(a,g),u}for(h=r(h);!v.done;g++,v=c.next())v=m(h,a,g,v.value,l),v!==null&&(e&&(_=v.alternate,_!==null&&h.delete(_.key===null?g:_.key)),s=o(v,s,g),d===null?u=v:d.sibling=v,d=v);return e&&h.forEach(function(e){return t(a,e)}),z&&ea(a,g),u}function _(e,r,o,c){if(typeof o==`object`&&o&&o.type===oe&&o.key===null&&o.props.ref===void 0&&(o=o.props.children),typeof o==`object`&&o){switch(o.$$typeof){case ie:a:{for(var l=o.key;r!==null;){if(r.key===l){if(l=o.type,l===oe){if(r.tag===7){n(e,r.sibling),c=a(r,o.props.children),co(c,o),c.return=e,e=c;break a}}else if(r.elementType===l||typeof l==`object`&&l&&l.$$typeof===pe&&to(l)===r.type){n(e,r.sibling),c=a(r,o.props),co(c,o),c.return=e,e=c;break a}n(e,r);break}t(e,r),r=r.sibling}o.type===oe?(c=zi(o.props.children,e.mode,c,o.key),co(c,o),c.return=e,e=c):(c=Ri(o.type,o.key,o.props,null,e.mode,c),co(c,o),c.return=e,e=c)}return s(e);case ae:a:{for(l=o.key;r!==null;){if(r.key===l){if(r.tag===4&&r.stateNode.containerInfo===o.containerInfo&&r.stateNode.implementation===o.implementation){n(e,r.sibling),c=a(r,o.children||[]),c.return=e,e=c;break a}n(e,r);break}t(e,r),r=r.sibling}c=Hi(o,e.mode,c),c.return=e,e=c}return s(e);case pe:return o=to(o),_(e,r,o,c)}if(Se(o))return h(e,r,o,c);if(ye(o)){if(l=ye(o),typeof l!=`function`)throw Error(i(150));return o=l.call(o),g(e,r,o,c)}if(typeof o.then==`function`)return _(e,r,so(o),c);if(o.$$typeof===ce)return _(e,r,Da(e,o),c);lo(e,o)}return typeof o==`string`&&o!==``||typeof o==`number`||typeof o==`bigint`?(o=``+o,r!==null&&r.tag===6?(n(e,r.sibling),c=a(r,o),c.return=e,e=c):(n(e,r),c=Bi(o,e.mode,c),c.return=e,e=c),s(e)):n(e,r)}return function(e,t,n,r){try{oo=0;var i=_(e,t,n,r);return ao=null,i}catch(t){if(t===Xa||t===Qa)throw t;var a=Pi(29,t,null,e.mode);return a.lanes=r,a.return=e,a}}}var fo=uo(!0),po=uo(!1),mo=!1;function ho(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function go(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function _o(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function vo(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,td&2){var i=r.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),r.pending=t,t=ji(e),Ai(e,null,n),t}return Di(e,r,t,n),ji(e)}function yo(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,n&4194048)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,xt(e,n)}}function bo(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var i=null,a=null;if(n=n.firstBaseUpdate,n!==null){do{var o={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};a===null?i=a=o:a=a.next=o,n=n.next}while(n!==null);a===null?i=a=t:a=a.next=t}else i=a=t;n={baseState:r.baseState,firstBaseUpdate:i,lastBaseUpdate:a,shared:r.shared,callbacks:r.callbacks},e.updateQueue=n}else e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}var xo=!1;function V(){if(xo){var e=Va;if(e!==null)throw e}}function So(e,t,n,r){xo=!1;var i=e.updateQueue;mo=!1;var a=i.firstBaseUpdate,o=i.lastBaseUpdate,s=i.shared.pending;if(s!==null){i.shared.pending=null;var c=s,l=c.next;c.next=null,o===null?a=l:o.next=l,o=c;var u=e.alternate;u!==null&&(u=u.updateQueue,s=u.lastBaseUpdate,s!==o&&(s===null?u.firstBaseUpdate=l:s.next=l,u.lastBaseUpdate=c))}if(a!==null){var d=i.baseState;o=0,u=l=c=null,s=a;do{var f=s.lane&-536870913,p=f!==s.lane;if(p?(K&f)===f:(r&f)===f){f!==0&&f===Ba&&(xo=!0),u!==null&&(u=u.next={lane:0,tag:s.tag,payload:s.payload,callback:null,next:null});a:{var m=e,h=s;f=t;var g=n;switch(h.tag){case 1:if(m=h.payload,typeof m==`function`){d=m.call(g,d,f);break a}d=m;break a;case 3:m.flags=m.flags&-65537|128;case 0:if(m=h.payload,f=typeof m==`function`?m.call(g,d,f):m,f==null)break a;d=w({},d,f);break a;case 2:mo=!0}}f=s.callback,f!==null&&(e.flags|=64,p&&(e.flags|=8192),p=i.callbacks,p===null?i.callbacks=[f]:p.push(f))}else p={lane:f,tag:s.tag,payload:s.payload,callback:s.callback,next:null},u===null?(l=u=p,c=d):u=u.next=p,o|=f;if(s=s.next,s===null){if(s=i.shared.pending,s===null)break;p=s,s=p.next,p.next=null,i.lastBaseUpdate=p,i.shared.pending=null}}while(1);u===null&&(c=d),i.baseState=c,i.firstBaseUpdate=l,i.lastBaseUpdate=u,a===null&&(i.shared.lanes=0),cd|=o,e.lanes=o,e.memoizedState=d}}function Co(e,t){if(typeof e!=`function`)throw Error(i(191,e));e.call(t)}function wo(e,t){var n=e.callbacks;if(n!==null)for(e.callbacks=null,e=0;ea?a:8;var o=O.T,s={};s.types=o===null?null:o.types,O.T=s,uc(e,!1,t,n);try{var c=i(),l=O.S;l!==null&&l(s,c),typeof c==`object`&&c&&typeof c.then==`function`?lc(e,t,Wa(c,r),Md(e)):lc(e,t,r,Md(e))}catch(n){lc(e,t,{then:function(){},status:`rejected`,reason:n},Md())}finally{k.p=a,o!==null&&s.types!==null&&(o.types=s.types),O.T=o}}function $s(){}function ec(e,t,n,r){if(e.tag!==5)throw Error(i(476));var a=tc(e).queue;Qs(e,a,t,Ce,n===null?$s:function(){return nc(e),n(r)})}function tc(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:Ce,baseState:Ce,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:ds,lastRenderedState:Ce},next:null};var n={};return t.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:ds,lastRenderedState:n},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function nc(e){var t=tc(e);t.next===null&&(t=e.alternate.memoizedState),lc(e,t.next.queue,{},Md())}function rc(){return Ea(sh)}function ic(){return os().memoizedState}function ac(){return os().memoizedState}function oc(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var n=Md();e=_o(n);var r=vo(t,e,n);r!==null&&(Fd(r,t,n),yo(r,t,n)),t={cache:Na()},e.payload=t;return}t=t.return}}function sc(e,t,n){var r=Md();n={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},dc(e)?fc(t,n):(n=Oi(e,t,n,r),n!==null&&(Fd(n,e,r),pc(n,t,r)))}function cc(e,t,n){lc(e,t,n,Md())}function lc(e,t,n,r){var i={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(dc(e))fc(t,i);else{var a=e.alternate;if(e.lanes===0&&(a===null||a.lanes===0)&&(a=t.lastRenderedReducer,a!==null))try{var o=t.lastRenderedState,s=a(o,n);if(i.hasEagerState=!0,i.eagerState=s,Wr(s,o))return Di(e,t,i,0),nd===null&&Ei(),!1}catch{}if(n=Oi(e,t,i,r),n!==null)return Fd(n,e,r),pc(n,t,r),!0}return!1}function uc(e,t,n,r){if(r={lane:2,revertLane:Nf(),gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null},dc(e)){if(t)throw Error(i(479))}else t=Oi(e,n,r,2),t!==null&&Fd(t,e,2)}function dc(e){var t=e.alternate;return e===H||t!==null&&t===H}function fc(e,t){Go=Wo=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function pc(e,t,n){if(n&4194048){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,xt(e,n)}}var mc={readContext:Ea,use:ls,useCallback:Xo,useContext:Xo,useEffect:Xo,useImperativeHandle:Xo,useLayoutEffect:Xo,useInsertionEffect:Xo,useMemo:Xo,useReducer:Xo,useRef:Xo,useState:Xo,useDebugValue:Xo,useDeferredValue:Xo,useTransition:Xo,useSyncExternalStore:Xo,useId:Xo,useHostTransitionStatus:Xo,useFormState:Xo,useActionState:Xo,useOptimistic:Xo,useMemoCache:Xo,useCacheRefresh:Xo,useEffectEvent:Xo},hc={readContext:Ea,use:ls,useCallback:function(e,t){return as().memoizedState=[e,t===void 0?null:t],e},useContext:Ea,useEffect:zs,useImperativeHandle:function(e,t,n){n=n==null?null:n.concat([e]),Ls(4194308,4,Gs.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Ls(4194308,4,e,t)},useInsertionEffect:function(e,t){Ls(4,2,e,t)},useMemo:function(e,t){var n=as();t=t===void 0?null:t;var r=e();if(U){at(!0);try{e()}finally{at(!1)}}return n.memoizedState=[r,t],r},useReducer:function(e,t,n){var r=as();if(n!==void 0){var i=n(t);if(U){at(!0);try{n(t)}finally{at(!1)}}}else i=t;return r.memoizedState=r.baseState=i,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:i},r.queue=e,e=e.dispatch=sc.bind(null,H,e),[r.memoizedState,e]},useRef:function(e){var t=as();return e={current:e},t.memoizedState=e},useState:function(e){e=xs(e);var t=e.queue,n=cc.bind(null,H,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:qs,useDeferredValue:function(e,t){return Xs(as(),e,t)},useTransition:function(){var e=xs(!1);return e=Qs.bind(null,H,e.queue,!0,!1),as().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var r=H,a=as();if(z){if(n===void 0)throw Error(i(407));n=n()}else{if(n=t(),nd===null)throw Error(i(349));K&127||gs(r,t,n)}a.memoizedState=n;var o={value:n,getSnapshot:t};return a.queue=o,zs(vs.bind(null,r,o,e),[e]),r.flags|=2048,Fs(9,{destroy:void 0},_s.bind(null,r,o,n,t),null),n},useId:function(){var e=as(),t=nd.identifierPrefix;if(z){var n=$i,r=Qi;n=(r&~(1<<32-ot(r)-1)).toString(32)+n,t=`_`+t+`R_`+n,n=Ko++,0<\/script>`,o=o.removeChild(o.firstChild);break;case`select`:o=typeof r.is==`string`?s.createElement(`select`,{is:r.is}):s.createElement(`select`),r.multiple?o.multiple=!0:r.size&&(o.size=r.size);break;default:o=typeof r.is==`string`?s.createElement(a,{is:r.is}):s.createElement(a)}}o[Ot]=t,o[kt]=r;a:for(s=t.child;s!==null;){if(s.tag===5||s.tag===6)o.appendChild(s.stateNode);else if(s.tag!==4&&s.tag!==27&&s.child!==null){s.child.return=s,s=s.child;continue}if(s===t)break a;for(;s.sibling===null;){if(s.return===null||s.return===t)break a;s=s.return}s.sibling.return=s.return,s=s.sibling}t.stateNode=o;a:switch(np(o,a,r),a){case`button`:case`input`:case`select`:case`textarea`:r=!!r.autoFocus;break a;case`img`:r=!0;break a;default:r=!1}r&&pl(t)}}return vl(t),t.subtreeFlags&=-33554433,ml(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==r&&pl(t);else{if(typeof r!=`string`&&t.stateNode===null)throw Error(i(166));if(e=je.current,fa(t)){if(e=t.stateNode,n=t.memoizedProps,r=null,a=ia,a!==null)switch(a.tag){case 27:case 5:r=a.memoizedProps}e[Ot]=t,e=!!(e.nodeValue===n||r!==null&&!0===r.suppressHydrationWarning||$f(e.nodeValue,n)),e||la(t,!0)}else e=lp(e).createTextNode(r),e[Ot]=t,t.stateNode=e}return vl(t),null;case 31:if(n=t.memoizedState,e===null||e.memoizedState!==null){if(r=fa(t),n!==null){if(e===null){if(!r)throw Error(i(318));if(e=t.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(i(557));e[Ot]=t}else pa(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;vl(t),e=!1}else n=ma(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return t.flags&256?(Io(t),t):(Io(t),null);if(t.flags&128)throw Error(i(558))}return vl(t),null;case 13:if(r=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(a=fa(t),r!==null&&r.dehydrated!==null){if(e===null){if(!a)throw Error(i(318));if(a=t.memoizedState,a=a===null?null:a.dehydrated,!a)throw Error(i(317));a[Ot]=t}else pa(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;vl(t),a=!1}else a=ma(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=a),a=!0;if(!a)return t.flags&256?(Io(t),t):(Io(t),null)}return Io(t),t.flags&128?(t.lanes=n,t):(n=r!==null,e=e!==null&&e.memoizedState!==null,n&&(r=t.child,a=null,r.alternate!==null&&r.alternate.memoizedState!==null&&r.alternate.memoizedState.cachePool!==null&&(a=r.alternate.memoizedState.cachePool.pool),o=null,r.memoizedState!==null&&r.memoizedState.cachePool!==null&&(o=r.memoizedState.cachePool.pool),o!==a&&(r.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),gl(t,t.updateQueue),vl(t),null);case 4:return Pe(),e===null&&Uf(t.stateNode.containerInfo),t.flags|=67108864,vl(t),null;case 10:return ba(t.type),vl(t),null;case 19:if(zo(t),r=t.memoizedState,r===null)return vl(t),null;if(a=!!(t.flags&128),o=r.rendering,o===null){if(a)_l(r,!1);else{if(sd!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(o=Bo(e),o!==null){for(t.flags|=128,_l(r,!1),e=o.updateQueue,t.updateQueue=e,gl(t,e),t.subtreeFlags=0,e=n,n=t.child;n!==null;)Li(n,e),n=n.sibling;return Ro(t,Lo.current&1|2),z&&ea(t,r.treeForkCount),t.child}e=e.sibling}r.tail!==null&&Je()>vd&&(t.flags|=128,a=!0,_l(r,!1),t.lanes=4194304)}}else{if(!a){if(e=Bo(o),e!==null){if(t.flags|=128,a=!0,e=e.updateQueue,t.updateQueue=e,gl(t,e),_l(r,!0),r.tail===null&&r.tailMode!==`collapsed`&&r.tailMode!==`visible`&&!o.alternate&&!z)return vl(t),null}else 2*Je()-r.renderingStartTime>vd&&n!==536870912&&(t.flags|=128,a=!0,_l(r,!1),t.lanes=4194304)}r.isBackwards?(o.sibling=t.child,t.child=o):(e=r.last,e===null?t.child=o:e.sibling=o,r.last=o)}if(r.tail!==null){e=r.tail;a:{for(n=e;n!==null;){if(n.alternate!==null){n=!1;break a}n=n.sibling}n=!0}return r.rendering=e,r.tail=e.sibling,r.renderingStartTime=Je(),e.sibling=null,o=Lo.current,o=a?o&1|2:o&1,r.tailMode===`visible`||r.tailMode===`collapsed`||!n||z?Ro(t,o):(n=o,Oe(Ao,t),Oe(Lo,n),jo===null&&(jo=t)),z&&ea(t,r.treeForkCount),e}return vl(t),null;case 22:case 23:return Io(t),ko(),r=t.memoizedState!==null,e===null?r&&(t.flags|=8192):e.memoizedState!==null!==r&&(t.flags|=8192),r?n&536870912&&!(t.flags&128)&&(vl(t),t.subtreeFlags&6&&(t.flags|=8192)):vl(t),n=t.updateQueue,n!==null&&gl(t,n.retryQueue),n=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),r=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(r=t.memoizedState.cachePool.pool),r!==n&&(t.flags|=2048),e!==null&&De(Ka),null;case 24:return n=null,e!==null&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),ba(Ma),vl(t),null;case 25:return null;case 30:return t.flags|=33554432,vl(t),null}throw Error(i(156,t.tag))}function bl(e,t){switch(R(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return ba(Ma),Pe(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return Ie(t),null;case 31:if(t.memoizedState!==null){if(Io(t),t.alternate===null)throw Error(i(340));pa()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(Io(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(i(340));pa()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return zo(t),e=t.flags,e&65536?(t.flags=e&-65537|128,e=t.memoizedState,e!==null&&(e.rendering=null,e.tail=null),t.flags|=4,t):null;case 4:return Pe(),null;case 10:return ba(t.type),null;case 22:case 23:return Io(t),ko(),e!==null&&De(Ka),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return ba(Ma),null;case 25:return null;default:return null}}function xl(e,t){switch(R(t),t.tag){case 3:ba(Ma),Pe();break;case 26:case 27:case 5:Ie(t);break;case 4:Pe();break;case 31:t.memoizedState!==null&&Io(t);break;case 13:Io(t);break;case 19:zo(t);break;case 10:ba(t.type);break;case 22:case 23:Io(t),ko(),e!==null&&De(Ka);break;case 24:ba(Ma)}}function Sl(e,t){try{var n=t.updateQueue,r=n===null?null:n.lastEffect;if(r!==null){var i=r.next;n=i;do{if((n.tag&e)===e){r=void 0;var a=n.create,o=n.inst;r=a(),o.destroy=r}n=n.next}while(n!==i)}}catch(e){ff(t,t.return,e)}}function Cl(e,t,n){try{var r=t.updateQueue,i=r===null?null:r.lastEffect;if(i!==null){var a=i.next;r=a;do{if((r.tag&e)===e){var o=r.inst,s=o.destroy;if(s!==void 0){o.destroy=void 0,i=t;var c=n,l=s;try{l()}catch(e){ff(i,c,e)}}}r=r.next}while(r!==a)}}catch(e){ff(t,t.return,e)}}function wl(e){var t=e.updateQueue;if(t!==null){var n=e.stateNode;try{wo(t,n)}catch(t){ff(e,e.return,t)}}}function Tl(e,t,n){n.props=Sc(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(n){ff(e,t,n)}}function El(e,t){try{var n=e.ref;if(n!==null){switch(e.tag){case 26:case 27:case 5:var r=e.stateNode;break;case 30:var i=e.stateNode,a=L(e.memoizedProps,i);(i.ref===null||i.ref.name!==a)&&(i.ref=Pp(a)),r=i.ref;break;case 7:if(e.stateNode===null){var o=new Fp(e);m(e.child,!1,Qp,o,void 0,void 0),e.stateNode=o}r=e.stateNode;break;default:r=e.stateNode}typeof n==`function`?e.refCleanup=n(r):n.current=r}}catch(n){ff(e,t,n)}}function Dl(e,t){var n=e.ref,r=e.refCleanup;if(n!==null){if(typeof r==`function`)try{r()}catch(n){ff(e,t,n)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof n==`function`)try{n(null)}catch(n){ff(e,t,n)}else n.current=null}}function Ol(e,t){if((e.tag===5||e.tag===27||e.tag===6)&&e.alternate===null&&t!==null)for(var n=0;n title`))),np(r,t,n),r[Ot]=e,Vt(r),t=r;break a;case`link`:if(o=Gm(`link`,`href`,a).get(t+(n.href||``))){for(s=0;sg&&(o=g,g=h,h=o);var _=Jr(s,h),v=Jr(s,g);if(_&&v&&(p.rangeCount!==1||p.anchorNode!==_.node||p.anchorOffset!==_.offset||p.focusNode!==v.node||p.focusOffset!==v.offset)){var y=d.createRange();y.setStart(_.node,_.offset),p.removeAllRanges(),h>g?(p.addRange(y),p.extend(v.node,v.offset)):(y.setEnd(v.node,v.offset),p.addRange(y))}}}}for(d=[],p=s;p=p.parentNode;)p.nodeType===1&&d.push({element:p,left:p.scrollLeft,top:p.scrollTop});for(typeof s.focus==`function`&&s.focus(),s=0;sn?32:n,O.T=null,n=Ed,Ed=null;var o=Sd,s=wd;if(xd=0,Cd=Sd=null,wd=0,td&6)throw Error(i(331));var c=td;if(td|=4,Xu(o.current),Hu(o,o.current,s,n),td=c,Ef(0,!1),it&&typeof it.onPostCommitFiberRoot==`function`)try{it.onPostCommitFiberRoot(rt,o)}catch{}return!0}finally{k.p=a,O.T=r,cf(e,t)}}function df(e,t,n){t=Wi(n,t),t=Oc(e.stateNode,t,2),e=vo(e,t,2),e!==null&&(yt(e,2),Tf(e))}function ff(e,t,n){if(e.tag===3)df(e,e,n);else for(;t!==null;){if(t.tag===3){df(t,e,n);break}if(t.tag===1){var r=t.stateNode;if(typeof t.type.getDerivedStateFromError==`function`||typeof r.componentDidCatch==`function`&&(bd===null||!bd.has(r))){e=Wi(n,e),n=kc(2),r=vo(t,n,2),r!==null&&(Ac(n,r,t,e),yt(r,2),Tf(r));break}}t=t.return}}function pf(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new ed;var i=new Set;r.set(t,i)}else i=r.get(t),i===void 0&&(i=new Set,r.set(t,i));i.has(n)||(ad=!0,i.add(n),e=mf.bind(null,e,t,n),t.then(e,e))}function mf(e,t,n){var r=e.pingCache;r!==null&&r.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,nd===e&&(K&n)===n&&(sd===4||sd===3&&(K&62914560)===K&&300>Je()-gd?td&2?ud|=n:Hd(e,0):ud|=n,fd===K&&(fd=0)),Tf(e)}function hf(e,t){t===0&&(t=_t()),e=ki(e,t),e!==null&&(yt(e,t),Tf(e))}function gf(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),hf(e,n)}function _f(e,t){var n=0;switch(e.tag){case 31:case 13:var r=e.stateNode,a=e.memoizedState;a!==null&&(n=a.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(i(314))}r!==null&&r.delete(t),hf(e,n)}function vf(e,t){return Ge(e,t)}var yf=null,bf=null,xf=!1,Sf=!1,Cf=!1,wf=0;function Tf(e){e!==bf&&e.next===null&&(bf===null?yf=bf=e:bf=bf.next=e),Sf=!0,xf||(xf=!0,Mf())}function Ef(e,t){if(!Cf&&Sf){Cf=!0;do for(var n=!1,r=yf;r!==null;){if(!t){if(e!==0){var i=r.pendingLanes;if(i===0)var a=0;else{var o=r.suspendedLanes,s=r.pingedLanes;a=(1<<31-ot(42|e)+1)-1,a&=i&~(o&~s),a=a&201326741?a&201326741|1:a?a|2:0}a!==0&&(n=!0,jf(r,a))}else a=K,a=pt(r,r===nd?a:0,r.cancelPendingCommit!==null||r.timeoutHandle!==-1),!(a&3)||mt(r,a)||(n=!0,jf(r,a))}r=r.next}while(n);Cf=!1}}function Df(){Of()}function Of(){Sf=xf=!1;var e=0;wf!==0&&hp()&&(e=wf);for(var t=Je(),n=null,r=yf;r!==null;){var i=r.next,a=kf(r,t);a===0?(r.next=null,n===null?yf=i:n.next=i,i===null&&(bf=n)):(n=r,(e!==0||a&3)&&(Sf=!0)),r=i}xd!==0&&xd!==5||Ef(e,!1),wf!==0&&(wf=0)}function kf(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,i=e.expirationTimes,a=e.pendingLanes&-62914561;0s)break;var u=c.transferSize,d=c.initiatorType;u&&ap(d)&&(c=c.responseEnd,o+=u*(c$m){s.length=o;break}f=new Promise(jp.bind(f)),s.push(f)}}}if(0`u`?null:document;function Tm(e,t,n){var r=wm;if(r&&typeof t==`string`&&t){var i=sn(t);i=`link[rel="`+e+`"][href="`+i+`"]`,typeof n==`string`&&(i+=`[crossorigin="`+n+`"]`),ym.has(i)||(ym.add(i),e={rel:e,crossOrigin:n,href:t},r.querySelector(i)===null&&(t=r.createElement(`link`),np(t,`link`,e),Vt(t),r.head.appendChild(t)))}}function Em(e){xm.D(e),Tm(`dns-prefetch`,e,null)}function Dm(e,t){xm.C(e,t),Tm(`preconnect`,e,t)}function Om(e,t,n){xm.L(e,t,n);var r=wm;if(r&&e&&t){var i=`link[rel="preload"][as="`+sn(t)+`"]`;t===`image`&&n&&n.imageSrcSet?(i+=`[imagesrcset="`+sn(n.imageSrcSet)+`"]`,typeof n.imageSizes==`string`&&(i+=`[imagesizes="`+sn(n.imageSizes)+`"]`)):i+=`[href="`+sn(e)+`"]`;var a=i;switch(t){case`style`:a=Pm(e);break;case`script`:a=Rm(e)}if(!(vm.has(a)||(e=w({rel:`preload`,href:t===`image`&&n&&n.imageSrcSet?void 0:e,as:t},n),vm.set(a,e),r.querySelector(i)!==null||t===`style`&&r.querySelector(Fm(a))||t===`script`&&r.querySelector(zm(a))))){var o=r.createElement(`link`);np(o,`link`,e),t===`style`&&(o[Ft]=!0,o.onload=o.onerror=function(){Ht(o)}),Vt(o),r.head.appendChild(o)}}}function km(e,t){xm.m(e,t);var n=wm;if(n&&e){var r=t&&typeof t.as==`string`?t.as:`script`,i=`link[rel="modulepreload"][as="`+sn(r)+`"][href="`+sn(e)+`"]`,a=i;switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:a=Rm(e)}if(!vm.has(a)&&(e=w({rel:`modulepreload`,href:e},t),vm.set(a,e),n.querySelector(i)===null)){switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:if(n.querySelector(zm(a)))return}r=n.createElement(`link`),np(r,`link`,e),Vt(r),n.head.appendChild(r)}}}function Am(e,t,n){xm.S(e,t,n);var r=wm;if(r&&e){var i=Bt(r).hoistableStyles,a=Pm(e);t||=`default`;var o=i.get(a);if(!o){var s={loading:0,preload:null};if(o=r.querySelector(Fm(a)))s.loading=5;else{e=w({rel:`stylesheet`,href:e,"data-precedence":t},n),(n=vm.get(a))&&Hm(e,n);var c=o=r.createElement(`link`);Vt(c),np(c,`link`,e),c._p=new Promise(function(e,t){c.onload=e,c.onerror=t}),c.addEventListener(`load`,function(){s.loading|=1}),c.addEventListener(`error`,function(){s.loading|=2}),s.loading|=4,Vm(o,t,r)}o={type:`stylesheet`,instance:o,count:1,state:s},i.set(a,o)}}}function jm(e,t){xm.X(e,t);var n=wm;if(n&&e){var r=Bt(n).hoistableScripts,i=Rm(e),a=r.get(i);a||(a=n.querySelector(zm(i)),a||(e=w({src:e,async:!0},t),(t=vm.get(i))&&Um(e,t),a=n.createElement(`script`),Vt(a),np(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function Mm(e,t){xm.M(e,t);var n=wm;if(n&&e){var r=Bt(n).hoistableScripts,i=Rm(e),a=r.get(i);a||(a=n.querySelector(zm(i)),a||(e=w({src:e,async:!0,type:`module`},t),(t=vm.get(i))&&Um(e,t),a=n.createElement(`script`),Vt(a),np(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function Nm(e,t,n,r){var a=(a=je.current)?bm(a):null;if(!a)throw Error(i(446));switch(e){case`meta`:case`title`:return null;case`style`:return typeof n.precedence==`string`&&typeof n.href==`string`?(n=Pm(n.href),t=Bt(a).hoistableStyles,r=t.get(n),r||(r={type:`style`,instance:null,count:0,state:null},t.set(n,r)),r):{type:`void`,instance:null,count:0,state:null};case`link`:if(n.rel===`stylesheet`&&typeof n.href==`string`&&typeof n.precedence==`string`){e=Pm(n.href);var o=Bt(a).hoistableStyles,s=o.get(e);if(s||(a=a.ownerDocument||a,s={type:`stylesheet`,instance:null,count:0,state:{loading:0,preload:null}},o.set(e,s),(o=a.querySelector(Fm(e)))?o._p||(s.instance=o,s.state.loading=5):(o=vm.get(e),o||(o={rel:`preload`,as:`style`,href:n.href,crossOrigin:n.crossOrigin,integrity:n.integrity,media:n.media,hrefLang:n.hrefLang,referrerPolicy:n.referrerPolicy},vm.set(e,o)),Lm(a,e,o,s.state))),t&&r===null)throw Error(i(528,``));return s}if(t&&r!==null)throw Error(i(529,``));return null;case`script`:return t=n.async,n=n.src,typeof n==`string`&&t&&typeof t!=`function`&&typeof t!=`symbol`?(n=Rm(n),t=Bt(a).hoistableScripts,r=t.get(n),r||(r={type:`script`,instance:null,count:0,state:null},t.set(n,r)),r):{type:`void`,instance:null,count:0,state:null};default:throw Error(i(444,e))}}function Pm(e){return`href="`+sn(e)+`"`}function Fm(e){return`link[rel="stylesheet"][`+e+`]`}function Im(e){return w({},e,{"data-precedence":e.precedence,precedence:null})}function Lm(e,t,n,r){if(t=e.querySelector(`link[rel="preload"][as="style"][`+t+`]`)){if(!0!==t[Ft]){r.loading=1;return}}else t=e.createElement(`link`),t[Ft]=!0,t.onload=t.onerror=Ht.bind(null,t),np(t,`link`,n),Vt(t),e.head.appendChild(t);r.preload=t,t.addEventListener(`load`,function(){return r.loading|=1}),t.addEventListener(`error`,function(){return r.loading|=2})}function Rm(e){return`[src="`+sn(e)+`"]`}function zm(e){return`script[async]`+e}function Bm(e,t,n){if(t.count++,t.instance===null)switch(t.type){case`style`:var r=e.querySelector(`style[data-href~="`+sn(n.href)+`"]`);if(r)return t.instance=r,Vt(r),r;var a=w({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return r=(e.ownerDocument||e).createElement(`style`),Vt(r),np(r,`style`,a),Vm(r,n.precedence,e),t.instance=r;case`stylesheet`:a=Pm(n.href);var o=e.querySelector(Fm(a));if(o)return t.state.loading|=4,t.instance=o,Vt(o),o;r=Im(n),(a=vm.get(a))&&Hm(r,a),o=(e.ownerDocument||e).createElement(`link`),Vt(o);var s=o;return s._p=new Promise(function(e,t){s.onload=e,s.onerror=t}),np(o,`link`,r),t.state.loading|=4,Vm(o,n.precedence,e),t.instance=o;case`script`:return o=Rm(n.src),(a=e.querySelector(zm(o)))?(t.instance=a,Vt(a),a):(r=n,(a=vm.get(o))&&(r=w({},n),Um(r,a)),e=e.ownerDocument||e,a=e.createElement(`script`),Vt(a),np(a,`link`,r),e.head.appendChild(a),t.instance=a);case`void`:return null;default:throw Error(i(443,t.type))}else t.type===`stylesheet`&&!(t.state.loading&4)&&(r=t.instance,t.state.loading|=4,Vm(r,n.precedence,e));return t.instance}function Vm(e,t,n){for(var r=n.querySelectorAll(`link[rel="stylesheet"][data-precedence],style[data-precedence]`),i=r.length?r[r.length-1]:null,a=i,o=0;o title`):null)}function qm(e,t,n){if(n===1||t.itemProp!=null)return!1;switch(e){case`meta`:case`title`:return!0;case`style`:if(typeof t.precedence!=`string`||typeof t.href!=`string`||t.href===``)break;return!0;case`link`:if(typeof t.rel!=`string`||typeof t.href!=`string`||t.href===``||t.onLoad||t.onError)break;switch(t.rel){case`stylesheet`:return e=t.disabled,typeof t.precedence==`string`&&e==null;default:return!0}case`script`:if(t.async&&typeof t.async!=`function`&&typeof t.async!=`symbol`&&!t.onLoad&&!t.onError&&t.src&&typeof t.src==`string`)return!0}return!1}function Jm(e,t){return e===`img`&&t.src!=null&&t.src!==``&&t.onLoad==null&&t.loading!==`lazy`}function Ym(e){return!(e.type===`stylesheet`&&!(e.state.loading&3))}function Xm(e){return(e.width||100)*(e.height||100)*(typeof devicePixelRatio==`number`?devicePixelRatio:1)*.25}function Zm(e,t){typeof t.decode==`function`&&(e.imgCount++,t.complete||(e.imgBytes+=Xm(t),e.suspenseyImages.push(t)),e=rh.bind(e),t.decode().then(e,e))}function Qm(e,t,n,r){if(n.type===`stylesheet`&&(typeof r.media!=`string`||!1!==matchMedia(r.media).matches)&&!(n.state.loading&4)){if(n.instance===null){var i=Pm(r.href),a=t.querySelector(Fm(i));if(a){t=a._p,typeof t==`object`&&t&&typeof t.then==`function`&&(e.count++,e=nh.bind(e),t.then(e,e)),n.state.loading|=4,n.instance=a,Vt(a);return}a=t.ownerDocument||t,r=Im(r),(i=vm.get(i))&&Hm(r,i),a=a.createElement(`link`),Vt(a);var o=a;o._p=new Promise(function(e,t){o.onload=e,o.onerror=t}),np(a,`link`,r),n.instance=a}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(n,t),(t=n.state.preload)&&!(n.state.loading&3)&&(e.count++,n=nh.bind(e),t.addEventListener(`load`,n),t.addEventListener(`error`,n))}}var $m=0;function eh(e,t){return e.stylesheets&&e.count===0&&ah(e,e.stylesheets),0$m?50:800)+t);return e.unsuspend=n,function(){e.unsuspend=null,clearTimeout(r),clearTimeout(i)}}:null}function th(e){if(e.count===0&&(e.imgCount===0||!e.waitingForImages)){if(e.stylesheets)ah(e,e.stylesheets);else if(e.unsuspend){var t=e.unsuspend;e.unsuspend=null,t()}}}function nh(){this.count--,th(this)}function rh(){this.imgCount--,th(this)}var ih=null;function ah(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,ih=new Map,t.forEach(oh,e),ih=null,nh.call(e))}function oh(e,t){if(!(t.state.loading&4)){var n=ih.get(e);if(n)var r=n.get(null);else{n=new Map,ih.set(e,n);for(var i=e.querySelectorAll(`link[data-precedence],style[data-precedence]`),a=0;a{function n(){if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<`u`&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE==`function`)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=g()})),v=l(p(),1),y=_(),b=(e,t,n)=>Math.max(1,Math.min(t/e.width,n/e.height)),x={chair:{width:.5,height:.5},table:{width:1.8,height:.8}},S={width:10,height:8},C=(e,t,n)=>Math.min(Math.max(e,t),n);function ee(e,t){return{...e,x:C(e.x,0,t.width-e.width),y:C(e.y,0,t.height-e.height)}}function te(e,t){let n=1e-9;return e.xt.x+n&&e.yt.y+n}function ne(e,t){let n=1e-9;return e.x>=-1e-9&&e.y>=-1e-9&&e.x+e.width<=t.width+n&&e.y+e.height<=t.height+n}function w(e,t,n,r){return ne(e,n)&&!t.some(t=>t.id!==r&&te(e,t))}var re={room:S,items:[],configs:{chair:{type:`chair`,available:20},table:{type:`table`,available:6,seatsPerUnit:8}}};function ie(e,t){switch(t.kind){case`add`:{let{width:n,height:r}=x[t.type],i={id:t.id,type:t.type,x:t.x,y:t.y,width:n,height:r,rotation:0,locked:!1};return{...e,items:[...e.items,i]}}case`move`:return{...e,items:e.items.map(e=>e.id===t.id?{...e,x:t.x,y:t.y}:e)};case`setAvailable`:return{...e,configs:{...e.configs,[t.type]:{...e.configs[t.type],available:t.value}}};case`setSeats`:return{...e,configs:{...e.configs,table:{...e.configs.table,seatsPerUnit:t.value}}}}}var ae=(e,t)=>e.filter(e=>e.type===t).length,oe=(e,t,n)=>n-ae(e,t),se=o((e=>{var t=Symbol.for(`react.transitional.element`);function n(e,n,r){var i=null;if(r!==void 0&&(i=``+r),n.key!==void 0&&(i=``+n.key),`key`in n)for(var a in r={},n)a!==`key`&&(r[a]=n[a]);else r=n;return n=r.ref,{$$typeof:t,type:e,key:i,ref:n===void 0?null:n,props:r}}e.jsx=n,e.jsxs=n})),T=o(((e,t)=>{t.exports=se()}))(),E=5,ce={width:`100%`,height:84,boxSizing:`border-box`,background:`#fff`,border:`1px solid #cfcfcf`,borderRadius:8,display:`flex`,flexDirection:`column`,alignItems:`center`,justifyContent:`center`,gap:6,cursor:`grab`,userSelect:`none`,touchAction:`none`,font:`12px system-ui, sans-serif`,color:`#444`};function le({size:e=36}){return(0,T.jsxs)(`svg`,{width:e,height:e,viewBox:`0 0 36 36`,children:[(0,T.jsx)(`rect`,{x:`4`,y:`4`,width:`28`,height:`28`,rx:`3`,fill:`#8fb4d9`,stroke:`#3b3b3b`,strokeWidth:`1.5`}),(0,T.jsx)(`rect`,{x:`4`,y:`4`,width:`28`,height:`8`,rx:`3`,fill:`#4a6f96`})]})}function ue({size:e=36}){return(0,T.jsx)(`svg`,{width:e,height:e,viewBox:`0 0 36 36`,children:(0,T.jsx)(`rect`,{x:`2`,y:`9`,width:`32`,height:`18`,rx:`3`,fill:`#d9b382`,stroke:`#3b3b3b`,strokeWidth:`1.5`})})}var de=152,fe=600;function pe({type:e,remaining:t,onStartDrag:n,onOpenMenu:r}){let i=t<=0,a=t=>{t.preventDefault();let{clientX:a,clientY:o}=t,s=!1,c=t=>{s||i||Math.hypot(t.clientX-a,t.clientY-o)>=E&&(s=!0,u(),n(e,t.clientX,t.clientY))},l=t=>{u(),(Math.hypot(t.clientX-a,t.clientY-o){window.removeEventListener(`pointermove`,c),window.removeEventListener(`pointerup`,l)};window.addEventListener(`pointermove`,c),window.addEventListener(`pointerup`,l)};return(0,T.jsxs)(`div`,{role:`button`,"aria-label":`${e} (${t} remaining)`,style:{...ce,position:`relative`,opacity:i?.45:1,filter:i?`grayscale(1)`:void 0,cursor:i?`pointer`:`grab`},onPointerDown:a,children:[(0,T.jsx)(`span`,{style:{position:`absolute`,top:6,right:6,minWidth:20,height:20,padding:`0 6px`,boxSizing:`border-box`,borderRadius:10,background:i?`#888`:`#2b2b2b`,color:`#fff`,font:`600 11px/20px system-ui, sans-serif`,textAlign:`center`},children:t}),e===`chair`?(0,T.jsx)(le,{}):(0,T.jsx)(ue,{}),e===`chair`?`Chair`:`Table`]})}function me({remaining:e,onStartDrag:t,onOpenMenu:n,panel:r}){let[i,a]=(0,v.useState)(264);return(0,T.jsxs)(`aside`,{style:{position:`relative`,width:i,boxSizing:`border-box`,flexShrink:0,padding:16,display:`grid`,gridTemplateColumns:`repeat(auto-fill, minmax(84px, 1fr))`,alignContent:`start`,gap:12,borderRight:`1px solid #d4d4d4`,background:`#ececec`},children:[r??[`chair`,`table`].map(r=>(0,T.jsx)(pe,{type:r,remaining:e[r],onStartDrag:t,onOpenMenu:n},r)),(0,T.jsx)(`div`,{onPointerDown:e=>{e.preventDefault();let t=e.clientX,n=i,r=e=>a(Math.min(fe,Math.max(de,n+e.clientX-t))),o=()=>{window.removeEventListener(`pointermove`,r),window.removeEventListener(`pointerup`,o)};window.addEventListener(`pointermove`,r),window.addEventListener(`pointerup`,o)},style:{position:`absolute`,top:0,right:-3,width:6,height:`100%`,cursor:`col-resize`,touchAction:`none`}})]})}var he=Math.PI/180;function ge(){return typeof window<`u`&&({}.toString.call(window)===`[object Window]`||{}.toString.call(window)===`[object global]`)}var _e=typeof global<`u`?global:typeof window<`u`?window:typeof WorkerGlobalScope<`u`?self:{},D={_global:_e,version:`10.9.0`,isBrowser:ge(),isUnminified:/param/.test(function(e){}.toString()),dblClickWindow:400,getAngle(e){return D.angleDeg?e*he:e},enableTrace:!1,pointerEventsEnabled:!0,autoDrawEnabled:!0,hitOnDragEnabled:!1,capturePointerEventsEnabled:!1,_renderBackend:`web`,legacyTextRendering:!1,pixelRatio:typeof window<`u`&&window.devicePixelRatio||1,dragDistance:3,angleDeg:!0,showWarnings:!0,dragButtons:[0,1],isDragging(){return D.DD.isDragging},isTransforming(){return D.Transformer?.isTransforming()??!1},isDragReady(){return!!D.DD.node},releaseCanvasOnDestroy:!0,document:_e.document,_injectGlobal(e){_e.Konva!==void 0&&console.error(`Several Konva instances detected. It is not recommended to use multiple Konva instances in the same environment.`),_e.Konva=e}},ve=new Set,ye=(e,t=!1)=>{D[e.prototype.getClassName()]=e,t&&ve.add(e)};D._injectGlobal(D);var be=`Konva.js unsupported environment. - -Looks like you are trying to use Konva.js in Node.js environment (or in a Web Worker), because "document" object is undefined. - -To use Konva.js in Node.js environment, you need to use the "canvas-backend" or "skia-backend" module. - -bash: npm install canvas -js: import "konva/canvas-backend"; - -or - -bash: npm install skia-canvas -js: import "konva/skia-backend"; -`,xe=()=>{if(typeof document>`u`)throw Error(be)},Se=class e{constructor(e){this.dirty=!1,this.m=e?e.slice():[1,0,0,1,0,0]}reset(){this.m[0]=1,this.m[1]=0,this.m[2]=0,this.m[3]=1,this.m[4]=0,this.m[5]=0}copy(){return new e(this.m)}copyInto(e){e.m[0]=this.m[0],e.m[1]=this.m[1],e.m[2]=this.m[2],e.m[3]=this.m[3],e.m[4]=this.m[4],e.m[5]=this.m[5]}point(e){let t=this.m;return{x:t[0]*e.x+t[2]*e.y+t[4],y:t[1]*e.x+t[3]*e.y+t[5]}}_getTransformedRect(e){let[t,n,r,i,a,o]=this.m,s=e.x,c=e.y,l=e.x+e.width,u=e.y+e.height,d=[t*s+r*c+a,t*l+r*c+a,t*l+r*u+a,t*s+r*u+a],f=[n*s+i*c+o,n*l+i*c+o,n*l+i*u+o,n*s+i*u+o],p=Math.min(d[0],d[1],d[2],d[3]),m=Math.min(f[0],f[1],f[2],f[3]);return{x:p,y:m,width:Math.max(d[0],d[1],d[2],d[3])-p,height:Math.max(f[0],f[1],f[2],f[3])-m}}translate(e,t){return this.m[4]+=this.m[0]*e+this.m[2]*t,this.m[5]+=this.m[1]*e+this.m[3]*t,this}scale(e,t){return this.m[0]*=e,this.m[1]*=e,this.m[2]*=t,this.m[3]*=t,this}rotate(e){let t=Math.cos(e),n=Math.sin(e),r=this.m[0]*t+this.m[2]*n,i=this.m[1]*t+this.m[3]*n,a=this.m[0]*-n+this.m[2]*t,o=this.m[1]*-n+this.m[3]*t;return this.m[0]=r,this.m[1]=i,this.m[2]=a,this.m[3]=o,this}getTranslation(){return{x:this.m[4],y:this.m[5]}}skew(e,t){let n=this.m[0]+this.m[2]*t,r=this.m[1]+this.m[3]*t,i=this.m[2]+this.m[0]*e,a=this.m[3]+this.m[1]*e;return this.m[0]=n,this.m[1]=r,this.m[2]=i,this.m[3]=a,this}multiply(e){let t=this.m[0]*e.m[0]+this.m[2]*e.m[1],n=this.m[1]*e.m[0]+this.m[3]*e.m[1],r=this.m[0]*e.m[2]+this.m[2]*e.m[3],i=this.m[1]*e.m[2]+this.m[3]*e.m[3],a=this.m[0]*e.m[4]+this.m[2]*e.m[5]+this.m[4],o=this.m[1]*e.m[4]+this.m[3]*e.m[5]+this.m[5];return this.m[0]=t,this.m[1]=n,this.m[2]=r,this.m[3]=i,this.m[4]=a,this.m[5]=o,this}isInvertible(){return this.m[0]*this.m[3]-this.m[1]*this.m[2]!==0}invert(){let e=1/(this.m[0]*this.m[3]-this.m[1]*this.m[2]),t=this.m[3]*e,n=-this.m[1]*e,r=-this.m[2]*e,i=this.m[0]*e,a=e*(this.m[2]*this.m[5]-this.m[3]*this.m[4]),o=e*(this.m[1]*this.m[4]-this.m[0]*this.m[5]);return this.m[0]=t,this.m[1]=n,this.m[2]=r,this.m[3]=i,this.m[4]=a,this.m[5]=o,this}getMatrix(){return this.m}decompose(){let e=this.m[0],t=this.m[1],n=this.m[2],r=this.m[3],i=this.m[4],a=this.m[5],o=e*r-t*n,s={x:i,y:a,rotation:0,scaleX:0,scaleY:0,skewX:0,skewY:0};if(e!=0||t!=0){let i=Math.sqrt(e*e+t*t);s.rotation=t>0?Math.acos(e/i):-Math.acos(e/i),s.scaleX=i,s.scaleY=o/i,s.skewX=o&&(e*n+t*r)/o,s.skewY=0}else if(n!=0||r!=0){let i=Math.sqrt(n*n+r*r);s.rotation=Math.PI/2-(r>0?Math.acos(-n/i):-Math.acos(n/i)),s.scaleX=o/i,s.scaleY=i,s.skewX=0,s.skewY=o&&(e*n+t*r)/o}return s.rotation=A._getRotation(s.rotation),s}},O=`[object Array]`,k=`[object Number]`,Ce=`[object String]`,we=`[object Boolean]`,Te=Math.PI/180,Ee=180/Math.PI,De=`#`,Oe=``,ke=`0`,Ae=`Konva warning: `,je=`Konva error: `,Me={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],transparent:[0,0,0,0],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},Ne=null,Pe=typeof window<`u`?window:{},Fe=new WeakMap,Ie=(e,t)=>{typeof e.requestAnimationFrame==`function`?e.requestAnimationFrame(t):typeof requestAnimationFrame<`u`?requestAnimationFrame(t):setTimeout(t,16)},Le=new Map,Re=Object.getPrototypeOf(Int8Array),ze=e=>{let t=e.trim();return t.indexOf(`,`)===-1?t.split(/\s*\/\s*|\s+/):t.split(/\s*,\s*/)},Be=`[+-]?(?:\\d+\\.?\\d*|\\.\\d+)(?:e[+-]?\\d+)?`,Ve=RegExp(`^(${Be})(%?)$`,`i`),He=(e,t)=>{let n=Ve.exec(e);if(!n)return NaN;let r=n[2]?Number(n[1])/100*t:Number(n[1]);return Math.min(Math.max(r,0),t)},Ue=/^#[0-9a-f]+$/i,We=RegExp(`^(${Be})(deg|grad|rad|turn)?$`,`i`),Ge={deg:1,grad:.9,rad:Ee,turn:360};function Ke(e,t){return Math.min(Math.max(e||0,0),t)}var A={_isElement(e){return!!(e&&e.nodeType==1)},_isFunction(e){return!!(e&&e.constructor&&e.call&&e.apply)},_isPlainObject(e){return!!e&&e.constructor===Object},_isArray(e){return Object.prototype.toString.call(e)===O},_isNumber(e){return Object.prototype.toString.call(e)===k&&!isNaN(e)&&isFinite(e)},_isString(e){return Object.prototype.toString.call(e)===Ce},_isBoolean(e){return Object.prototype.toString.call(e)===we},isObject(e){return e instanceof Object},isValidSelector(e){if(typeof e!=`string`)return!1;let t=e[0];return t===`#`||t===`.`||t===t.toUpperCase()},_sign(e){return e===0||e>0?1:-1},requestAnimFrame(e,t){let n=t&&!t.closed&&t||Pe,r=Fe.get(n);r||(r=[],Fe.set(n,r),Ie(n,function(){Fe.delete(n),r.forEach(function(e){e()})})),r.push(e)},createCanvasElement(){xe();let e=document.createElement(`canvas`);try{e.style=e.style||{}}catch{}return e},createImageElement(){return xe(),document.createElement(`img`)},_urlToImage(e,t,n){let r=A.createImageElement();r.onload=function(){t(r)},r.onerror=e=>{n?.(e instanceof Error?e:Error(`Unable to load image.`))},r.src=e},_rgbToHex(e,t,n){return((1<<24)+(e<<16)+(t<<8)+n).toString(16).slice(1)},_hexToRgb(e){e=e.replace(De,Oe);let t=parseInt(e,16);return{r:t>>16&255,g:t>>8&255,b:t&255}},getRandomColor(){let e=(Math.random()*16777215|0).toString(16);for(;e.length<6;)e=ke+e;return De+e},isCanvasFarblingActive(){if(Ne!==null)return Ne;if(typeof document>`u`)return Ne=!1,!1;let e=this.createCanvasElement();e.width=10,e.height=10;let t=e.getContext(`2d`,{willReadFrequently:!0});t.clearRect(0,0,10,10),t.fillStyle=`#282828`,t.fillRect(0,0,10,10);let n=t.getImageData(0,0,10,10).data,r=!1;for(let e=0;e<100;e++)if(n[e*4]!==40||n[e*4+1]!==40||n[e*4+2]!==40||n[e*4+3]!==255){r=!0;break}return Ne=r,this.releaseCanvas(e),Ne},getHitColor(){let e=()=>Math.random()*256|0;return this.getHitColorKey(e(),e(),e())},getHitColorKey(e,t,n){let r=this.isCanvasFarblingActive()?5:3,i=e=>Math.round(e/r)*r;return De+this._rgbToHex(i(e),i(t),i(n))},getSnappedHexColor(e){let{r:t,g:n,b:r}=this._hexToRgb(e);return this.getHitColorKey(t,n,r)},getRGB(e){let{r:t=0,g:n=0,b:r=0}=A.colorToRGBA(e)??{};return{r:t,g:n,b:r}},colorToRGBA(e){e=(e||``).trim()||`black`;let t=A._namedColorToRBA(e)||A._hex3ColorToRGBA(e)||A._hex4ColorToRGBA(e)||A._hex6ColorToRGBA(e)||A._hex8ColorToRGBA(e)||A._rgbColorToRGBA(e)||A._hslColorToRGBA(e);if(t&&[t.r,t.g,t.b,t.a].every(A._isNumber))return t},_namedColorToRBA(e){let t=Me[e.toLowerCase()];return t?{r:t[0],g:t[1],b:t[2],a:t.length>3?t[3]:1}:null},_rgbColorToRGBA(e){let t=/^rgba?\(([^)]*)\)$/i.exec(e);if(!t)return;let n=ze(t[1]);if(!(n.length<3||n.length>4))return{r:He(n[0],255),g:He(n[1],255),b:He(n[2],255),a:n.length>3?He(n[3],1):1}},_hex8ColorToRGBA(e){if(e.length===9&&Ue.test(e))return{r:parseInt(e.slice(1,3),16),g:parseInt(e.slice(3,5),16),b:parseInt(e.slice(5,7),16),a:parseInt(e.slice(7,9),16)/255}},_hex6ColorToRGBA(e){if(e.length===7&&Ue.test(e))return{r:parseInt(e.slice(1,3),16),g:parseInt(e.slice(3,5),16),b:parseInt(e.slice(5,7),16),a:1}},_hex4ColorToRGBA(e){if(e.length===5&&Ue.test(e))return{r:parseInt(e[1]+e[1],16),g:parseInt(e[2]+e[2],16),b:parseInt(e[3]+e[3],16),a:parseInt(e[4]+e[4],16)/255}},_hex3ColorToRGBA(e){if(e.length===4&&Ue.test(e))return{r:parseInt(e[1]+e[1],16),g:parseInt(e[2]+e[2],16),b:parseInt(e[3]+e[3],16),a:1}},_hslColorToRGBA(e){let t=/^hsla?\(([^)]*)\)$/i.exec(e);if(!t)return;let n=ze(t[1]);if(n.length<3||n.length>4)return;let r=We.exec(n[0]);if(!r)return;let i=r[2],a=Number(r[1])*(i?Ge[i.toLowerCase()]:1);if(!isFinite(a))return;let o=(a%360+360)%360/360,s=He(n[1],100)/100,c=He(n[2],100)/100,l=n.length>3?He(n[3],1):1,u=c<.5?c*(1+s):c+s-c*s,d=2*c-u,f=[0,0,0];for(let e=0;e<3;e++){let t=o+1/3*-(e-1);t<0&&t++,t>1&&t--;let n;n=6*t<1?d+(u-d)*6*t:2*t<1?u:3*t<2?d+(u-d)*(2/3-t)*6:d,f[e]=n*255}return{r:Math.round(f[0]),g:Math.round(f[1]),b:Math.round(f[2]),a:l}},_getPointsRect(e){let t=1/0,n=1/0,r=-1/0,i=-1/0;for(let a=0;ae.x+e.width||t.x+t.widthe.y+e.height||t.y+t.heighttypeof e==`object`)?e.map(A._cloneValue):e.slice():A._isPlainObject(e)?A.cloneObject(e):e instanceof Re?e.slice():e},cloneArray(e){return e.slice(0)},degToRad(e){return e*Te},radToDeg(e){return e*Ee},_getRotation(e){return D.angleDeg?A.radToDeg(e):e},_capitalize(e){let t=Le.get(e);if(t!==void 0)return t;let n=e.charAt(0).toUpperCase()+e.slice(1);return Le.set(e,n),n},throw(e){throw Error(je+e)},error(e){console.error(je+e)},warn(e){D.showWarnings&&console.warn(Ae+e)},_batchEvents(e,t){if(!e)return t();let n=!1,r=!0;try{e(()=>{n||!r?A.warn(`eventBatchFunc must call its argument exactly once, synchronously.`):(n=!0,t())})}finally{r=!1,n||A.warn(`eventBatchFunc must call its argument synchronously.`)}},each(e,t){for(let n in e)t(n,e[n])},_inRange(e,t,n){return t<=e&&e1?(o=n,s=r,c=(n-i)*(n-i)+(r-a)*(r-a)):(o=e+u*(n-e),s=t+u*(r-t),c=(o-i)*(o-i)+(s-a)*(s-a))}return[o,s,c]},_getProjectionToLine(e,t,n){let r=A.cloneObject(e),i=Number.MAX_VALUE;return t.forEach(function(a,o){if(!n&&o===t.length-1)return;let s=t[(o+1)%t.length],c=A._getProjectionToSegment(a.x,a.y,s.x,s.y,e.x,e.y),l=c[0],u=c[1],d=c[2];dt.length){let n=t;t=e,e=n}for(let t=0;t=0?`pointer`:e.indexOf(`touch`)>=0?`touch`:`mouse`},_getFirstPointerId(e){return e.touches?e.changedTouches[0].identifier:e.pointerId??999},releaseCanvas(...e){D.releaseCanvasOnDestroy&&e.forEach(e=>{e.width=0,e.height=0})},_cornerRadii(e,t,n){let r=Math.min(t,n)/2;if(typeof e==`number`){let t=Ke(e,r);return[t,t,t,t]}return[Ke(e[0],r),Ke(e[1],r),Ke(e[2],r),Ke(e[3],r)]},drawRoundedRectPath(e,t,n,r){let i=t<0?t:0,a=n<0?n:0;t=Math.abs(t),n=Math.abs(n);let[o,s,c,l]=A._cornerRadii(r,t,n);e.moveTo(i+o,a),e.lineTo(i+t-s,a),e.arc(i+t-s,a+s,s,Math.PI*3/2,0,!1),e.lineTo(i+t,a+n-c),e.arc(i+t-c,a+n-c,c,0,Math.PI/2,!1),e.lineTo(i+l,a+n),e.arc(i+l,a+n-l,l,Math.PI/2,Math.PI,!1),e.lineTo(i,a+o),e.arc(i+o,a+o,o,Math.PI,Math.PI*3/2,!1)},drawRoundedPolygonPath(e,t,n,r,i){r=Math.abs(r);for(let a=0;atypeof e==`number`?Math.floor(e):e)),i+=Ye+c.join(Je)+Xe)):(i+=o.property,e||(i+=$e+o.val)),i+=Ze;return i}clearTrace(){this.traceArr=[]}_trace(e){let t=this.traceArr,n;t.push(e),n=t.length,n>=nt&&t.shift()}reset(){let e=this.getCanvas().getPixelRatio();this.setTransform(1*e,0,0,1*e,0,0)}getCanvas(){return this.canvas}clear(e){let t=this.getCanvas();e?this.clearRect(e.x||0,e.y||0,e.width||0,e.height||0):this.clearRect(0,0,t.getWidth()/t.pixelRatio,t.getHeight()/t.pixelRatio)}_drawDeviceBuffer(e){let{x:t,y:n,width:r,height:i}=e._isolationRect;this.setTransform(1,0,0,1,0,0),this.imageSmoothingEnabled=!1,this.drawImage(e._canvas,0,0,r,i,t,n,r,i)}_applyLineCap(e){let t=e.attrs.lineCap;t&&this.setAttr(`lineCap`,t)}_getOpacity(e){if(!this._opacityRoot)return e.getAbsoluteOpacity();let t=e.opacity(),n=e.parent;for(;n&&n!==this._opacityRoot;)t*=n.opacity(),n=n.parent;return t}_applyOpacity(e){let t=this._getOpacity(e);t!==1&&this.setAttr(`globalAlpha`,t)}_applyLineJoin(e){let t=e.attrs.lineJoin;t&&this.setAttr(`lineJoin`,t)}_applyMiterLimit(e){let t=e.attrs.miterLimit;t!=null&&this.setAttr(`miterLimit`,t)}setAttr(e,t){this._context[e]=t}arc(e,t,n,r,i,a){this._context.arc(e,t,n,r,i,a)}arcTo(e,t,n,r,i){this._context.arcTo(e,t,n,r,i)}beginPath(){this._context.beginPath()}bezierCurveTo(e,t,n,r,i,a){this._context.bezierCurveTo(e,t,n,r,i,a)}clearRect(e,t,n,r){this._context.clearRect(e,t,n,r)}clip(...e){this._context.clip.apply(this._context,e)}closePath(){this._context.closePath()}createImageData(e,t){let n=arguments;if(n.length===2)return this._context.createImageData(e,t);if(n.length===1)return this._context.createImageData(e)}createLinearGradient(e,t,n,r){return this._context.createLinearGradient(e,t,n,r)}createPattern(e,t){return this._context.createPattern(e,t)}createRadialGradient(e,t,n,r,i,a){return this._context.createRadialGradient(e,t,n,r,i,a)}drawImage(e,t,n,r,i,a,o,s,c){let l=arguments,u=this._context;l.length===3?u.drawImage(e,t,n):l.length===5?u.drawImage(e,t,n,r,i):l.length===9&&u.drawImage(e,t,n,r,i,a,o,s,c)}ellipse(e,t,n,r,i,a,o,s){this._context.ellipse(e,t,n,r,i,a,o,s)}isPointInPath(e,t,n,r){return n?this._context.isPointInPath(n,e,t,r):this._context.isPointInPath(e,t,r)}fill(...e){this._context.fill.apply(this._context,e)}fillRect(e,t,n,r){this._context.fillRect(e,t,n,r)}strokeRect(e,t,n,r){this._context.strokeRect(e,t,n,r)}fillText(e,t,n,r){r?this._context.fillText(e,t,n,r):this._context.fillText(e,t,n)}measureText(e){return this._context.measureText(e)}getImageData(e,t,n,r){return this._context.getImageData(e,t,n,r)}lineTo(e,t){this._context.lineTo(e,t)}moveTo(e,t){this._context.moveTo(e,t)}rect(e,t,n,r){this._context.rect(e,t,n,r)}roundRect(e,t,n,r,i){this._context.roundRect(e,t,n,r,i)}putImageData(e,t,n){this._context.putImageData(e,t,n)}quadraticCurveTo(e,t,n,r){this._context.quadraticCurveTo(e,t,n,r)}restore(){this._context.restore()}rotate(e){this._context.rotate(e)}save(){this._context.save()}scale(e,t){this._context.scale(e,t)}setLineDash(e){this._context.setLineDash(e)}getLineDash(){return this._context.getLineDash()}setTransform(e,t,n,r,i,a){this._context.setTransform(e,t,n,r,i,a)}stroke(e){e?this._context.stroke(e):this._context.stroke()}strokeText(e,t,n,r){this._context.strokeText(e,t,n,r)}transform(e,t,n,r,i,a){this._context.transform(e,t,n,r,i,a)}translate(e,t){this._context.translate(e,t)}_enableTrace(){let e=this,t=et.length,n=this.setAttr,r,i,a=function(t){let n=e[t],r;e[t]=function(){return i=qe(Array.prototype.slice.call(arguments,0)),r=n.apply(e,arguments),e._trace({method:t,args:i}),r}};for(r=0;r0&&f>0||(l=u=0,d=f=1);let p=this._isolationCanvas||=new e({width:0,height:0,pixelRatio:this.pixelRatio});if(p.widthMath.min(r,Math.ceil((n4*t.width*t.height?e._isolationLowFrames+1:0,e._isolationLowFrames>=10?this._releaseIsolationCanvas():(t.width=t.height=0,e._trimIsolationCanvas())}_releaseIsolationCanvas(){let e=this._isolationCanvas;e&&(e._releaseIsolationCanvas(),A.releaseCanvas(e._canvas),this._isolationCanvas=void 0)}setSize(e,t){this._releaseIsolationCanvas(),super.setSize(e,t)}constructor(e={width:0,height:0,willReadFrequently:!1}){super(e),this._isolationPeak={width:0,height:0},this._isolationLowFrames=0,this.context=new ot(this,{willReadFrequently:e.willReadFrequently}),this.setSize(e.width,e.height)}},ut=class extends ct{constructor(e={width:0,height:0}){super(e),this.hitCanvas=!0,this.context=new st(this),this.context.imageSmoothingEnabled=!1,this.setSize(e.width,e.height)}},j={get isDragging(){let e=!1;return j._dragElements.forEach(t=>{t.dragStatus===`dragging`&&(e=!0)}),e},get node(){let e;for(let t of j._dragElements.values()){if(t.dragStatus===`dragging`)return t.node;e=t.node}return e},_dragElements:new Map,_listenToWindow(e){let t=t=>j._endDragBefore(t,e),n=t=>j._batchEvents(()=>j._drag(t,e),e),r=e=>j._batchEvents(()=>j._endDragAfter(e));e.addEventListener(`mouseup`,t,!0),e.addEventListener(`touchend`,t,!0),e.addEventListener(`touchcancel`,t,!0),e.addEventListener(`mousemove`,n),e.addEventListener(`touchmove`,n),e.addEventListener(`mouseup`,r,!1),e.addEventListener(`touchend`,r,!1),e.addEventListener(`touchcancel`,r,!1)},_batchEvents(e,t){if(!j._dragElements.size)return;let n=new Set;for(let{node:e}of j._dragElements.values()){let r=e.getStage();if(!r||t&&r._getOwnerWindow()!==t)continue;let i=r.eventBatchFunc();i&&n.add(i)}let r=e;for(let e of n){let t=r;r=()=>A._batchEvents(e,t)}r()},_drag(e,t){let n=[],r=new Set;j._dragElements.forEach((i,a)=>{let{node:o}=i,s=o.getStage();if(t&&s._getOwnerWindow()!==t||(r.has(s)||(s.setPointersPositions(e),r.add(s)),i.pointerEventType&&i.pointerEventType!==s._pointerEventType))return;i.pointerId===void 0&&(i.pointerId=A._getFirstPointerId(e),i.pointerEventType=s._pointerEventType,i.dragStatus===`dragging`&&s._cancelClick(i.pointerId,i.pointerEventType));let c=s._changedPointerPositions.find(e=>e.id===i.pointerId);if(c){if(i.dragStatus!==`dragging`){let t=o.dragDistance();if(Math.max(Math.abs(c.x-i.startPointerPos.x),Math.abs(c.y-i.startPointerPos.y)){t.getStage()&&t.fire(`dragmove`,{type:`dragmove`,target:t,evt:e},!0)})},_endDragBefore(e,t,n){let r=[],i=new Set;j._dragElements.forEach((a,o)=>{let{node:s}=a;if(n&&a!==n&&a.pointerId!==n.pointerId)return;let c=s.getStage();if(e&&!i.has(c)&&(!t||c._getOwnerWindow()===t)&&(c.setPointersPositions(e),i.add(c)),n||(!e||!a.pointerEventType||a.pointerEventType===A._getEventType(e.type))&&(a.pointerId===void 0||c._changedPointerPositions.some(e=>e.id===a.pointerId))){if(a.dragStatus===`ready`)j._dragElements.delete(o);else{c._cancelClick(a.pointerId,a.pointerEventType),a.dragStatus=`stopped`;let e=s.getLayer()||c;e&&r.indexOf(e)===-1&&r.push(e)}}}),r.forEach(e=>{e.draw()})},_endDragAfter(e,t){j._dragElements.forEach((n,r)=>{n.dragStatus!==`stopped`||t&&n!==t&&n.pointerId!==t.pointerId||(n.node.fire(`dragend`,{type:`dragend`,target:n.node,evt:e},!0),n.dragStatus!==`dragging`&&j._dragElements.delete(r))})}},dt=new Map,ft=D._global.PointerEvent!==void 0;function pt(e,t){let n=dt.get(e);return n&&(!t||n.stage===t)?n.shape:void 0}function mt(e,t,n){e._fire(t,{evt:new PointerEvent(t,{pointerId:n}),pointerId:n})}function ht(e,t){return dt.get(e)?.shape===t}function gt(e,t){var n;vt(e);let r=t.getStage();if(r&&(dt.set(e,{shape:t,stage:r}),ft)){try{(n=r.content)==null||n.setPointerCapture(e)}catch{}mt(t,`gotpointercapture`,e)}}function _t(e){dt.forEach(({shape:t,stage:n},r)=>{(t===e||n===e)&&vt(r)})}function vt(e,t){var n;let r=dt.get(e);if(!r||t&&r.shape!==t)return;let{shape:i,stage:a}=r;if(dt.delete(e),ft){try{(n=a.content)==null||n.releasePointerCapture(e)}catch{}mt(i,`lostpointercapture`,e)}}function yt(e){return A._isString(e)?`"`+e+`"`:Object.prototype.toString.call(e)===`[object Number]`||A._isBoolean(e)?e:Object.prototype.toString.call(e)}function bt(e){return e>255?255:e<0?0:Math.round(e)}function M(){if(D.isUnminified)return function(e,t){return A._isNumber(e)||A.warn(yt(e)+` is a not valid value for "`+t+`" attribute. The value should be a number.`),e}}function xt(e){if(D.isUnminified)return function(t,n){let r=A._isNumber(t),i=A._isArray(t)&&t.length==e;return!r&&!i&&A.warn(yt(t)+` is a not valid value for "`+n+`" attribute. The value should be a number or Array(`+e+`)`),t}}function St(){if(D.isUnminified)return function(e,t){return A._isNumber(e)||e===`auto`||A.warn(yt(e)+` is a not valid value for "`+t+`" attribute. The value should be a number or "auto".`),e}}function Ct(){if(D.isUnminified)return function(e,t){return A._isString(e)||A.warn(yt(e)+` is a not valid value for "`+t+`" attribute. The value should be a string.`),e}}function wt(){if(D.isUnminified)return function(e,t){let n=A._isString(e),r=Object.prototype.toString.call(e)===`[object CanvasGradient]`||e&&e.addColorStop;return n||r||A.warn(yt(e)+` is a not valid value for "`+t+`" attribute. The value should be a string or a native gradient.`),e}}function Tt(){if(D.isUnminified)return function(e,t){return e instanceof Re||(A._isArray(e)?e.forEach(function(e){A._isNumber(e)||A.warn(`"`+t+`" attribute has non numeric element `+e+`. Make sure that all elements are numbers.`)}):A.warn(yt(e)+` is a not valid value for "`+t+`" attribute. The value should be a array of numbers.`)),e}}function Et(){if(D.isUnminified)return function(e,t){return e!==!0&&e!==!1&&A.warn(yt(e)+` is a not valid value for "`+t+`" attribute. The value should be a boolean.`),e}}function Dt(e){if(D.isUnminified)return function(t,n){return t==null||A.isObject(t)||A.warn(yt(t)+` is a not valid value for "`+n+`" attribute. The value should be an object with properties `+e),t}}var Ot=`get`,kt=`set`,N={addGetterSetter(e,t,n,r,i){N.addGetter(e,t,n),N.addSetter(e,t,r,i),N.addOverloadedGetterSetter(e,t)},addGetter(e,t,n){let r=Ot+A._capitalize(t),i=Array.isArray(n),a=function(){let e=this.attrs[t];return e===void 0?i?n.slice():n:e};a._def=n,e.prototype[r]=e.prototype[r]||a},addSetter(e,t,n,r){let i=kt+A._capitalize(t);e.prototype[i]||N.overWriteSetter(e,t,n,r)},overWriteSetter(e,t,n,r){let i=kt+A._capitalize(t);e.prototype[i]=function(e){return n&&e!=null&&(e=n.call(this,e,t)),this._setAttr(t,e),r&&r.call(this),this}},addComponentsGetterSetter(e,t,n,r,i){let a=n.length,o=A._capitalize,s=Ot+o(t),c=kt+o(t),l=n.map(e=>t+o(e)),u=l.map(e=>Ot+o(e));e.prototype[s]=function(){let e={};for(let t=0;t{this._setAttr(t+o(e),void 0)}),this._fireChangeEvent(t,a,e),i&&i.call(this),this},N.addOverloadedGetterSetter(e,t)},addOverloadedGetterSetter(e,t){let n=A._capitalize(t),r=kt+n,i=Ot+n,a=function(){return arguments.length?(this[r](arguments[0]),this):this[i]()};e.prototype[t]=a},backCompat(e,t){A.each(t,function(t,n){let r=e.prototype[n],i=Ot+A._capitalize(t),a=kt+A._capitalize(t);function o(){return A.error(`"`+t+`" method is deprecated and will be removed soon. Use ""`+n+`" instead.`),r.apply(this,arguments)}e.prototype[t]=o,e.prototype[i]=o,e.prototype[a]=o})},afterSetFilter(){this._filterUpToDate=!1}};function At(e){let t=[],n=/(\w+)\(([^)]*)\)/g,r;for(;(r=n.exec(e))!==null;){let[,e,n]=r;if(![`blur`,`brightness`,`contrast`,`grayscale`,`sepia`,`invert`].includes(e)){A.warn(`CSS filter "${e}" is not supported in fallback mode. Consider using function filters for better compatibility.`);continue}let i=n.trim()===``?e===`blur`?0:1:parseFloat(n)/(n.includes(`%`)?100:1);t.push({name:e,value:i})}return function(e,n=1){for(let{name:r,value:i}of t){if([`grayscale`,`sepia`,`invert`].includes(r)){let t=Math.min(1,Math.max(0,i)),n=e.data;for(let e=0;e0?e._pendingUpdates.add(t):t()}static _flushUpdateBatch(){if(e._updateBatchDepth>0)return;let t=e._pendingUpdates;t.size&&(e._pendingUpdates=new Set,t.forEach(e=>e()))}static _updateBatch(t){e._updateBatchDepth++;try{return t()}finally{e._updateBatchDepth--,e._flushUpdateBatch()}}static _beginUpdateBatch(){e._updateBatchDepth++;let t=!1;return()=>{t||(t=!0,e._updateBatchDepth--,e._flushUpdateBatch())}}clearCache(){return this._releaseCanvasCache(),this._clearSelfAndDescendantCache(),this._requestDraw(),this}cache(e){let t=e||{},n={};if(t.x===void 0||t.y===void 0||t.width===void 0||t.height===void 0){let e=this._isUnderCache;this._isUnderCache=!0,n=this.getClientRect({skipTransform:!0,relativeTo:this.getParent()||void 0}),this._isUnderCache=e}let r=t.x===void 0?Math.floor(n.x):t.x,i=t.y===void 0?Math.floor(n.y):t.y,a=Math.ceil(t.width||n.x+n.width-r),o=Math.ceil(t.height||n.y+n.height-i),s=t.pixelRatio,c=t.offset||0,l=t.drawBorder||!1,u=t.hitCanvasPixelRatio||1;if(a<=0||o<=0||!isFinite(r+i+a+o))return A.error(`Can not cache the node. Its size is 0 or its bounds are not finite numbers (${r}, ${i}, ${a}x${o}). Caching is skipped.`),this;a+=c*2,o+=c*2,r-=c,i-=c;let d=new lt({pixelRatio:s,width:a,height:o}),f=new lt({pixelRatio:s,width:0,height:0,willReadFrequently:!0}),p=d.getContext();d.isCache=!0,this._releaseCanvasCache(),this._filterUpToDate=!1,t.imageSmoothingEnabled===!1&&(d.getContext()._context.imageSmoothingEnabled=!1,f.getContext()._context.imageSmoothingEnabled=!1),p.save(),p.translate(-r,-i),this._isUnderCache=!0,this._clearSelfAndDescendantCache(jt);try{this.drawScene(d,this)}catch(e){throw A.releaseCanvas(d._canvas),e}finally{this._isUnderCache=!1,this._clearSelfAndDescendantCache(jt),p.restore(),d._releaseIsolationCanvas()}return l&&(p.save(),p.beginPath(),p.rect(0,0,a,o),p.closePath(),p.setAttr(`strokeStyle`,`red`),p.setAttr(`lineWidth`,5),p.stroke(),p.restore()),this._canvasCache={scene:d,filter:f,hit:null,hitConfig:{pixelRatio:u,width:a,height:o},x:r,y:i},this._clearSelfAndDescendantCache(),this._requestDraw(),this}_getCachedHitCanvas(e){if(e===this)return null;let t=this._getCanvasCache();if(!t)return null;if(t.hit)return t.hit;let n=new ut(t.hitConfig);n.isCache=!0;let r=n.getContext();return r.save(),r.translate(-t.x,-t.y),this.drawHit(n,this),r.restore(),t.hit=n,n}isCached(){return!!this._canvasCache}getClientRect(e){throw Error(`abstract "getClientRect" method call`)}_getCachedSceneRect(e){let t=e._forDrawing&&!this._isUnderCache&&this._getCanvasCache();if(!t)return;let n={x:t.x,y:t.y,width:t.scene.width/t.scene.pixelRatio,height:t.scene.height/t.scene.pixelRatio};return e.skipTransform?n:this._transformedRect(n,e.relativeTo)}_transformedRect(e,t){return this.getAbsoluteTransform(t)._getTransformedRect(e)}_drawCachedSceneCanvas(e){e.save(),e._applyOpacity(this),e._applyGlobalCompositeOperation(this);let t=this._getCanvasCache();e.translate(t.x,t.y);let n=this._getCachedSceneCanvas(),r=n.pixelRatio;e.drawImage(n._canvas,0,0,n.width/r,n.height/r),e.restore()}_drawCachedHitCanvas(e,t){let n=this._getCanvasCache();e.save(),e.translate(n.x,n.y),e.drawImage(t._canvas,0,0,t.width/t.pixelRatio,t.height/t.pixelRatio),e.restore()}_getCachedSceneCanvas(){let e=this.filters(),t=this._getCanvasCache(),n=t.scene,r=t.filter,i=r.getContext(),a,o,s,c;if(!e||e.length===0)return n;if(this._filterUpToDate)return r;let l=!0;for(let t=0;tt===void 0?e:`${Number(t)*u}${n}`);return i.clear(),i.save(),i.setAttr(`filter`,t),i.drawImage(n._canvas,0,0,n.getWidth()/u,n.getHeight()/u),i.restore(),this._filterUpToDate=!0,r}try{for(a=e.length,i.clear(),i.drawImage(n._canvas,0,0,n.getWidth()/u,n.getHeight()/u),o=i.getImageData(0,0,r.getWidth(),r.getHeight()),s=0;s{this.isAncestorOf(e.node)&&j._dragElements.delete(t)}),this._remove(),this}_clearCaches(){this._clearSelfAndDescendantCache(Mt),this._clearSelfAndDescendantCache(jt),this._clearSelfAndDescendantCache(Vt),this._clearSelfAndDescendantCache(Wt),this._clearSelfAndDescendantCache(It)}_remove(){let e=this.getParent();e&&e.children&&(e.children.splice(this.index,1),e._setChildrenIndices(),this.parent=null),this._clearCaches()}destroy(){return this._fire(`destroy`,{target:this}),_t(this),this.remove(),this.clearCache(),this}getAttr(e){let t=`get`+A._capitalize(e);return A._isFunction(this[t])?this[t]():this.attrs[e]}getAncestors(){let e=this.getParent(),t=[];for(;e;)t.push(e),e=e.getParent();return t}getAttrs(){return this.attrs||{}}setAttrs(e){return this._batchTransformChanges(()=>{let t,n;if(!e)return this;for(t in e)t!==Pt&&(n=Rt+A._capitalize(t),A._isFunction(this[n])?this[n](e[t]):this._setAttr(t,e[t]))}),this}isListening(){return this._getCache(It,this._isListening)}_isListening(e){if(!this.listening())return!1;let t=this.getParent();return t&&t!==e&&this!==e?t._isListening(e):!0}isVisible(){return this._getCache(Wt,this._isVisible)}_isVisible(e){if(!this.visible())return!1;let t=this.getParent();return t&&t!==e&&this!==e?t._isVisible(e):!0}shouldDrawHit(e){return e?this._isVisible(e)&&this._isListening(e):this.isListening()&&this.isVisible()}show(){return this.visible(!0),this}hide(){return this.visible(!1),this}getZIndex(){return this.index||0}getAbsoluteZIndex(){let e=this.getDepth(),t=this,n=0,r,i,a,o;function s(c){for(r=[],i=c.length,a=0;a0&&r[0].getDepth()<=e&&s(r)}let c=this.getStage();return t.nodeType!==Ut&&c&&s(c.children),n}getDepth(){let e=0,t=this.parent;for(;t;)e++,t=t.parent;return e}_batchTransformChanges(t){this._batchingTransformChange?t():e._updateBatch(()=>{this._batchingTransformChange=!0;try{t()}finally{this._batchingTransformChange=!1,this._needClearTransformCache&&(this._needClearTransformCache=!1,this._clearCache(Ht),this._clearSelfAndDescendantCache(Mt))}})}setPosition(e){return this._batchTransformChanges(()=>{this.x(e.x),this.y(e.y)}),this}getPosition(){return{x:this.x(),y:this.y()}}getRelativePointerPosition(){let e=this.getStage();if(!e)return null;let t=e.getPointerPosition();if(!t)return null;let n=this.getAbsoluteTransform().copy();return n.invert(),n.point(t)}getAbsolutePosition(e){let t=this.getAbsoluteTransform(e).getMatrix(),n=new Se,r=this.offset();return n.m=t.slice(),n.translate(r.x,r.y),n.getTranslation()}setAbsolutePosition(e){let{x:t,y:n,...r}=this._clearTransform();this.attrs.x=t,this.attrs.y=n,this._clearCache(Ht);let i=this._getAbsoluteTransform().copy(),a=i.isInvertible();i.invert(),i.translate(e.x,e.y);let{x:o,y:s}=i.getTranslation();return this._setTransform(r),a?this.setPosition({x:this.attrs.x+o,y:this.attrs.y+s}):A.warn(`Cannot set the absolute position: the absolute transform is not invertible (an ancestor has a zero scale).`),this._clearCache(Ht),this._clearSelfAndDescendantCache(Mt),this}_setTransform(e){let t;for(t in e)this.attrs[t]=e[t]}_clearTransform(){let e={x:this.x(),y:this.y(),rotation:this.rotation(),scaleX:this.scaleX(),scaleY:this.scaleY(),offsetX:this.offsetX(),offsetY:this.offsetY(),skewX:this.skewX(),skewY:this.skewY()};return this.attrs.x=0,this.attrs.y=0,this.attrs.rotation=0,this.attrs.scaleX=1,this.attrs.scaleY=1,this.attrs.offsetX=0,this.attrs.offsetY=0,this.attrs.skewX=0,this.attrs.skewY=0,e}move(e){let t=e.x,n=e.y,r=this.x(),i=this.y();return t!==void 0&&(r+=t),n!==void 0&&(i+=n),this.setPosition({x:r,y:i}),this}rotate(e){return this.rotation(this.rotation()+e),this}moveToTop(){if(!this.parent)return A.warn(`Node has no parent. moveToTop function is ignored.`),!1;let e=this.index;return e0&&(this.parent.children.splice(e,1),this.parent.children.splice(e-1,0,this),this.parent._setChildrenIndices(),!0)}moveToBottom(){if(!this.parent)return A.warn(`Node has no parent. moveToBottom function is ignored.`),!1;let e=this.index;return e>0&&(this.parent.children.splice(e,1),this.parent.children.unshift(this),this.parent._setChildrenIndices(),!0)}setZIndex(e){if(!this.parent)return A.warn(`Node has no parent. zIndex parameter is ignored.`),this;(e<0||e>=this.parent.children.length)&&A.warn(`Unexpected value `+e+` for zIndex property. zIndex is just index of a node in children of its parent. Expected value is from 0 to `+(this.parent.children.length-1)+`.`);let t=this.index;return this.parent.children.splice(t,1),this.parent.children.splice(e,0,this),this.parent._setChildrenIndices(),this}getAbsoluteOpacity(){return this._getCache(jt,this._getAbsoluteOpacity)}_getAbsoluteOpacity(){let e=this.opacity(),t=this.getParent();return t&&!t._isUnderCache&&(e*=t.getAbsoluteOpacity()),e}moveTo(e){return this.getParent()!==e&&(this._remove(),e.add(this)),this}toObject(){let e=this.getAttrs(),t,n,r,i={attrs:{},className:this.getClassName()};for(t in e)n=e[t],n instanceof Re&&(n=Array.from(n)),r=A.isObject(n)&&!A._isPlainObject(n)&&!A._isArray(n),!r&&(this[`get`+A._capitalize(t)]?._def!==n||t===`brightness`||t===`threshold`)&&(i.attrs[t]=t===`filters`&&A._isArray(n)?n.filter(e=>typeof e==`string`):A.isObject(n)?A._prepareToStringify(n):n);return i}toJSON(){return JSON.stringify(this.toObject())}getParent(){return this.parent}findAncestors(e,t,n){let r=[];t&&this._isMatch(e)&&r.push(this);let i=this.parent;for(;i;){if(i===n)return r;i._isMatch(e)&&r.push(i),i=i.parent}return r}isAncestorOf(e){return!1}findAncestor(e,t,n){return this.findAncestors(e,t,n)[0]}_isMatch(e){if(!e)return!1;if(typeof e==`function`)return e(this);let t=e.replace(/ /g,``).split(`,`),n=t.length,r,i;for(r=0;r{try{let{callback:r,...i}=e||{};A._urlToImage(this.toDataURL(i),function(e){t(e),r?.(e)},n)}catch(e){n(e)}})}toBlob(e){return new Promise((t,n)=>{try{this.toCanvas(e).toBlob(r=>{var i;r?(t(r),(i=e?.callback)==null||i.call(e,r)):n(Error(`Konva: toBlob() failed, the canvas was not encoded`))},e?.mimeType,e?.quality)}catch(e){n(e)}})}setSize(e){return this.width(e.width),this.height(e.height),this}getSize(){return{width:this.width(),height:this.height()}}getClassName(){return this.className||this.nodeType}getType(){return this.nodeType}getDragDistance(){return this.attrs.dragDistance===void 0?this.parent?this.parent.getDragDistance():D.dragDistance:this.attrs.dragDistance}_off(e,t,n){let r=this.eventListeners[e],i,a,o;for(i=0;i=0)||j._dragElements.has(this._id))return;let t=!1;j._dragElements.forEach(e=>{this.isAncestorOf(e.node)&&(t=!0)}),t||this._createDragElement(e)})}_dragChange(){if(this.attrs.draggable)this._listenDrag();else{if(this._dragCleanup(),!this.getStage())return;let e=j._dragElements.get(this._id),t=e&&e.dragStatus===`dragging`,n=e&&e.dragStatus===`ready`;t?this.stopDrag():n&&j._dragElements.delete(this._id)}}_dragCleanup(){this.off(`mousedown.konva`),this.off(`touchstart.konva`)}isClientRectOnScreen(e={x:0,y:0}){let t=this.getStage();if(!t)return!1;let n={x:-e.x,y:-e.y,width:t.width()+2*e.x,height:t.height()+2*e.y};return A.haveIntersection(n,this.getClientRect())}static create(e,t){return A._isString(e)&&(e=JSON.parse(e)),this._createNode(e,t)}static _createNode(t,n){let r=e.prototype.getClassName.call(t),i=t.children,a,o,s;if(n&&(t.attrs.container=n),!D[r]){let e=i?`Group`:`Shape`;A.warn(`Can not find a node with class name "`+r+`". Fallback to "${e}".`),r=e}let c=D[r];if(a=new c(t.attrs),i)for(o=i.length,s=0;s0}removeChildren(){return this._clearChildren(`remove`)}destroyChildren(){return this._clearChildren(`destroy`)}_clearChildren(e){return P._updateBatch(()=>(this.children.forEach(t=>{t.parent=null,t.index=0,t[e]()}),this.children=[],this._notifySubtreeChange(),this._requestDraw(),this))}add(...e){if(e.length===0)return this;if(e.length>1){for(let t=0;t0?t[0]:void 0}_generalFind(e,t){let n=[];return this._descendants(r=>{let i=r._isMatch(e);return i&&n.push(r),!!(i&&t)}),n}_descendants(e){let t=!1;for(let n of this.children)if(t=e(n),t||n.hasChildren()&&(t=n._descendants(e),t))return!0;return!1}toObject(){let e=P.prototype.toObject.call(this);return e.children=[],this.children.forEach(t=>{e.children.push(t.toObject())}),e}isAncestorOf(e){let t=e.getParent();for(;t;){if(t._id===this._id)return!0;t=t.getParent()}return!1}clone(e){let t=P.prototype.clone.call(this,e);return this.children.forEach(function(e){t.add(e.clone())}),t}getAllIntersections(e){let t=[];return this.find(`Shape`).forEach(n=>{n.isVisible()&&n.intersects(e)&&t.push(n)}),t}_clearSelfAndDescendantCache(e){var t;let n=e===void 0||e===`absoluteTransform`;n&&P._updateBatchDepth++;try{if(super._clearSelfAndDescendantCache(e),e===`absoluteTransform`&&this.isCached())return;(t=this.children)==null||t.forEach(function(t){t._clearSelfAndDescendantCache(e)})}finally{n&&--P._updateBatchDepth===0&&P._flushUpdateBatch()}}_setChildrenIndices(){var e;(e=this.children)==null||e.forEach(function(e,t){e.index=t}),this._notifySubtreeChange(),this._requestDraw()}drawScene(e,t){let n=this.getLayer(),r=e||n&&n.getCanvas(),i=r&&r.getContext(),a=this._getCanvasCache(),o=a&&a.scene,s=t===this;if(!(t?this._isVisible(t):this.isVisible())&&!s)return this;if(o){i.save();let e=this.getAbsoluteTransform(t).getMatrix();i.transform(e[0],e[1],e[2],e[3],e[4],e[5]),this._drawCachedSceneCanvas(i),i.restore()}else this._drawChildren(`drawScene`,r,t);return this}drawHit(e,t){if(!this.shouldDrawHit(t))return this;let n=this.getLayer(),r=e||n&&n.hitCanvas,i=r&&r.getContext(),a=this._getCachedHitCanvas(t);if(a){i.save();let e=this.getAbsoluteTransform(t).getMatrix();i.transform(e[0],e[1],e[2],e[3],e[4],e[5]),this._drawCachedHitCanvas(i,a),i.restore()}else this._drawChildren(`drawHit`,r,t);return this}_drawChildren(e,t,n){let r=t&&t.getContext(),i=this.clipWidth(),a=this.clipHeight(),o=this.clipFunc(),s=typeof i==`number`&&typeof a==`number`||o,c=n===this;if(s){r.save();let e=this.getAbsoluteTransform(n),t=e.getMatrix();r.transform(t[0],t[1],t[2],t[3],t[4],t[5]),r.beginPath();let s;if(o)s=o.call(this,r,this);else{let e=this.clipX(),t=this.clipY();r.rect(e||0,t||0,i,a)}r.clip.apply(r,s),t=e.copy().invert().getMatrix(),r.transform(t[0],t[1],t[2],t[3],t[4],t[5])}let l=!c&&this.globalCompositeOperation()!==`source-over`&&e===`drawScene`;l&&(r.save(),r._applyGlobalCompositeOperation(this));try{this._drawChildNodes(e,t,n)}finally{l&&r.restore(),s&&r.restore()}}_drawChildNodes(e,t,n){var r;(r=this.children)==null||r.forEach(function(r){r[e](t,n)})}getClientRect(e={}){var t;let n=this._getCachedSceneRect(e);if(n)return n;let r=e.skipTransform,i=e.relativeTo,[a,o,s,c]=this.getAbsoluteTransform().getMatrix(),l=!r&&(e._forDrawing||a*c-o*s===0),u,d,f,p,m={x:1/0,y:1/0,width:0,height:0},h=this;return(t=this.children)==null||t.forEach(function(t){if(!t.visible())return;let n=t.getClientRect({relativeTo:l?i:h,_forDrawing:e._forDrawing,skipShadow:e.skipShadow,skipStroke:e.skipStroke});n.width===0&&n.height===0||!isFinite(n.x+n.y+n.width+n.height)||(u===void 0?(u=n.x,d=n.y,f=n.x+n.width,p=n.y+n.height):(u=Math.min(u,n.x),d=Math.min(d,n.y),f=Math.max(f,n.x+n.width),p=Math.max(p,n.y+n.height)))}),m=u===void 0?{x:0,y:0,width:0,height:0}:{x:u,y:d,width:f-u,height:p-d},!r&&!l?this._transformedRect(m,i):m}};N.addComponentsGetterSetter(Jt,`clip`,[`x`,`y`,`width`,`height`]),N.addGetterSetter(Jt,`clipX`,void 0,M()),N.addGetterSetter(Jt,`clipY`,void 0,M()),N.addGetterSetter(Jt,`clipWidth`,void 0,M()),N.addGetterSetter(Jt,`clipHeight`,void 0,M()),N.addGetterSetter(Jt,`clipFunc`);var Yt=`Stage`,F=`string`,Xt=`px`,Zt=`mouseout`,Qt=`mouseleave`,$t=`mouseover`,en=`mouseenter`,tn=`mousemove`,nn=`mousedown`,rn=`mouseup`,an=`pointermove`,on=`pointerdown`,sn=`pointerup`,cn=`pointercancel`,ln=`lostpointercapture`,un=`pointerout`,dn=`pointerleave`,fn=`pointerover`,pn=`pointerenter`,mn=`contextmenu`,hn=`touchstart`,gn=`touchend`,_n=`touchmove`,vn=`touchcancel`,yn=`wheel`,bn=5,xn=[[en,`_pointerenter`],[nn,`_pointerdown`],[tn,`_pointermove`],[rn,`_pointerup`],[Qt,`_pointerleave`],[hn,`_pointerdown`],[_n,`_pointermove`],[gn,`_pointerup`],[vn,`_pointercancel`],[$t,`_pointerover`],[yn,`_wheel`],[mn,`_contextmenu`],[on,`_pointerdown`],[an,`_pointermove`],[sn,`_pointerup`],[cn,`_pointercancel`],[dn,`_pointerleave`],[ln,`_lostpointercapture`]],Sn={mouse:{[un]:Zt,[dn]:Qt,[fn]:$t,[pn]:en,[an]:tn,[on]:nn,[sn]:rn,[cn]:`mousecancel`,pointerclick:`click`,pointerdblclick:`dblclick`},touch:{[un]:`touchout`,[dn]:`touchleave`,[fn]:`touchover`,[pn]:`touchenter`,[an]:_n,[on]:hn,[sn]:gn,[cn]:vn,pointerclick:`tap`,pointerdblclick:`dbltap`},pointer:{[un]:un,[dn]:dn,[fn]:fn,[pn]:pn,[an]:an,[on]:on,[sn]:sn,[cn]:cn,pointerclick:`pointerclick`,pointerdblclick:`pointerdblclick`}},Cn=e=>{let t=A._getEventType(e);if(t===`pointer`)return D.pointerEventsEnabled&&Sn.pointer;if(t===`touch`)return Sn.touch;if(t===`mouse`)return Sn.mouse};function wn(e={}){return(e.clipFunc||e.clipWidth||e.clipHeight)&&A.warn(`Stage does not support clipping. Please use clip for Layers or Groups.`),e}var Tn=`Pointer position is missing and not registered by the stage. Looks like it is outside of the stage container. You can set it manually from event: stage.setPointersPositions(event);`,En=[],Dn=new WeakSet,On=e=>{e&&!Dn.has(e)&&(Dn.add(e),j._listenToWindow(e),e.document.addEventListener(`visibilitychange`,()=>{En.forEach(e=>{e.batchDraw()})}))},kn=class extends Jt{constructor(e){super(wn(e)),this._pointerPositions=[],this._changedPointerPositions=[],this._pointerStates=new Map,this._lastClicks={},this._buildDOM(),this._bindContentEvents(),En.push(this),this.on(`widthChange.konva heightChange.konva`,this._resizeDOM),this.on(`visibleChange.konva`,this._checkVisibility),this.on(`clipWidthChange.konva clipHeightChange.konva clipFuncChange.konva`,()=>{wn(this.attrs)}),this._checkVisibility()}_validateAdd(e){let t=e.getType()===`Layer`,n=e.getType()===`FastLayer`;t||n||A.throw(`You may only add layers to the stage.`)}_checkVisibility(){if(!this.content)return;let e=this.visible()?``:`none`;this.content.style.display=e}_getOwnerWindow(){return(this.content||this.container())?.ownerDocument?.defaultView||(D.isBrowser?window:null)}setContainer(e){if(typeof e===F){let t;if(e.charAt(0)===`.`){let t=e.slice(1);e=document.getElementsByClassName(t)[0]}else t=e.charAt(0)===`#`?e.slice(1):e,e=document.getElementById(t);if(!e)throw`Can not find container in document with id `+t}return this._setAttr(`container`,e),this.content&&(this.content.parentElement&&this.content.parentElement.removeChild(this.content),e.appendChild(this.content),On(this._getOwnerWindow())),this}shouldDrawHit(){return!0}clear(){let e=this.children,t=e.length;for(let n=0;n-1&&En.splice(n,1),A.releaseCanvas(this.bufferHitCanvas._canvas),this}getPointerPosition(){let e=this._pointerPositions[0]||this._changedPointerPositions[0];return e?{x:e.x,y:e.y}:(A.warn(Tn),null)}_getPointerById(e){return this._pointerPositions.find(t=>t.id===e)}getPointersPositions(){return this._pointerPositions}getStage(){return this}getContent(){return this.content}_toKonvaCanvas(e){e={...e},e.x=e.x||0,e.y=e.y||0,e.width=e.width||this.width(),e.height=e.height||this.height();let t=new lt({width:e.width,height:e.height,pixelRatio:e.pixelRatio||1}),n=t.getContext()._context,r=this.children;return(e.x||e.y)&&n.translate(-1*e.x,-1*e.y),r.forEach(function(t){if(!t.isVisible())return;let r=t._toKonvaCanvas(e);n.drawImage(r._canvas,e.x,e.y,r.getWidth()/r.getPixelRatio(),r.getHeight()/r.getPixelRatio()),A.releaseCanvas(r._canvas)}),t}getIntersection(e){if(!e)return null;let t=this.children,n=t.length-1;for(let r=n;r>=0;r--){let n=t[r].getIntersection(e);if(n)return n}return null}_resizeDOM(){let e=this.width(),t=this.height();this.content&&(this.content.style.width=e+Xt,this.content.style.height=t+Xt),this.children.forEach(n=>{n._setSize({width:e,height:t}),n.draw()})}add(e,...t){if(arguments.length>1){for(let e=0;ebn&&A.warn(`The stage has `+n+` layers. Recommended maximum number of layers is 3-5. Adding more layers into the stage may drop the performance. Rethink your tree structure, you can use Konva.Group.`),e._setSize({width:this.width(),height:this.height()}),e.draw(),D.isBrowser&&this.content.appendChild(e.canvas._canvas),this}getParent(){return null}getLayer(){return null}hasPointerCapture(e){return ht(e,this)}setPointerCapture(e){gt(e,this)}releaseCapture(e){vt(e,this)}getLayers(){return this.getChildren()}_bindContentEvents(){D.isBrowser&&xn.forEach(([e,t])=>{this.content.addEventListener(e,e=>{this._batchEvents(()=>this[t](e))},{passive:!1})})}_batchEvents(e){A._batchEvents(this.eventBatchFunc(),e)}_pointerenter(e){this.setPointersPositions(e);let t=Cn(e.type);t&&this._fire(t.pointerenter,{evt:e,target:this,currentTarget:this})}_pointerover(e){this.setPointersPositions(e);let t=Cn(e.type);t&&this._fire(t.pointerover,{evt:e,target:this,currentTarget:this})}_pointerEventsEnabled(){if(D.hitOnDragEnabled)return!0;for(let{node:e,dragStatus:t}of j._dragElements.values())if(t===`dragging`&&e.getStage()===this)return!1;return!this.getLayers().some(e=>D.Transformer?._isLayerTransforming(e))}_cancelClick(e,t){let n=t?[t]:[`mouse`,`touch`,`pointer`];for(let t of n){let n=this._pointerStates.get(`${t}:${e}`);n&&(n.clickStartShape=void 0,n.relatedPointer&&(n.relatedPointer.clickStartShape=void 0))}}_pointerleave(e){let t=Cn(e.type),n=A._getEventType(e.type);if(!t)return;this.setPointersPositions(e);let r=this._changedPointerPositions[0]?.id,i=`${n}:${r}`,a=this._pointerStates.get(i),o=(a?.targetShape)?.getStage()===this?a.targetShape:void 0,s=this._pointerEventsEnabled()||e.pointerType===`touch`&&!a?.downPosition;s&&(a?.clickStartShape===void 0?this._pointerStates.delete(i):a.targetShape=void 0),o&&s?(o._fireAndBubble(t.pointerout,{evt:e,pointerId:r}),o._fireAndBubble(t.pointerleave,{evt:e,pointerId:r}),this._fire(t.pointerleave,{evt:e,target:this,currentTarget:this})):s&&(this._fire(t.pointerleave,{evt:e,target:this,currentTarget:this}),this._fire(t.pointerout,{evt:e,target:this,currentTarget:this})),this.pointerPos=null,this._pointerPositions=[],this._changedPointerPositions=[],this._pointerEventType=void 0}_pointerdown(e){let t=Cn(e.type),n=A._getEventType(e.type);if(!t)return;this.setPointersPositions(e);let r=!1;this._changedPointerPositions.forEach(i=>{let a=this.getIntersection(i),o=`${n}:${i.id}`,s={targetShape:this._pointerStates.get(o)?.targetShape,clickStartShape:a&&a.isListening()?a:null,lastClick:this._lastClicks[n],downPosition:i,pointerType:e.pointerType};if(this._pointerStates.delete(o),n!==`pointer`){for(let[e,t]of[...this._pointerStates].reverse())if(!(!e.startsWith(`pointer:`)||!t.downPosition||n===`touch`&&t.relatedPointer)&&(n===`mouse`?t.pointerType!==`touch`:t.pointerType===`touch`&&t.downPosition.x===i.x&&t.downPosition.y===i.y)){s.relatedPointer=t,t.relatedPointer=s,t.clickStartShape===void 0&&(s.clickStartShape=void 0);break}}this._pointerStates.set(o,s);for(let e of j._dragElements.values())e.dragStatus===`dragging`&&(e.pointerId===void 0||e.pointerEventType===n&&e.pointerId===i.id||e.pointerEventType===`mouse`&&n===`pointer`&&s.pointerType!==`touch`)&&e.node.getStage()===this&&(e.pointerId===void 0&&n!==`pointer`&&(e.pointerId=i.id,e.pointerEventType=n),this._cancelClick(i.id,n));if(!a||!a.isListening())return;D.capturePointerEventsEnabled&&a.setPointerCapture(i.id),a._fireAndBubble(t.pointerdown,{evt:e,pointerId:i.id}),r=!0;let c=e.type.indexOf(`touch`)>=0;a.preventDefault()&&e.cancelable&&c&&e.preventDefault()}),r||this._fire(t.pointerdown,{evt:e,target:this,currentTarget:this,pointerId:this._changedPointerPositions[0].id})}_pointermove(e){let t=Cn(e.type),n=A._getEventType(e.type);if(!t)return;let r=e.type.indexOf(`touch`)>=0||e.pointerType===`touch`;if(e.cancelable&&r){for(let{node:t,dragStatus:n}of j._dragElements.values())if(n===`dragging`&&t.getStage()===this&&t.preventDefault()){e.preventDefault();break}}if(this.setPointersPositions(e),!this._pointerEventsEnabled())return;let i={},a=!1;this._changedPointerPositions.forEach(r=>{let o=`${n}:${r.id}`,s=this._pointerStates.get(o);s||(s={},this._pointerStates.set(o,s));let c=pt(r.id)||this.getIntersection(r),l=s.targetShape===c||s.targetShape?.getStage()===this?s.targetShape:void 0,u=r.id,d={evt:e,pointerId:u},f=l!==c;s.targetShape=c&&c.isListening()?c:void 0,f&&l&&(l._fireAndBubble(t.pointerout,{...d},c),l._fireAndBubble(t.pointerleave,{...d},c)),c&&c.isListening()?(a=!0,f&&(c._fireAndBubble(t.pointerover,{...d},l),c._fireAndBubble(t.pointerenter,{...d},l)),i[c._id]||(i[c._id]=!0,c._fireAndBubble(t.pointermove,{...d}))):l&&this._fire(t.pointerover,{evt:e,target:this,currentTarget:this,pointerId:u})}),a||this._fire(t.pointermove,{evt:e,target:this,currentTarget:this,pointerId:this._changedPointerPositions[0].id})}_pointerup(e){let t=Cn(e.type),n=A._getEventType(e.type);if(!t)return;this.setPointersPositions(e);let r={},i=!1;this._changedPointerPositions.forEach(a=>{let o=`${n}:${a.id}`,s=this._pointerStates.get(o),c=s?.clickStartShape!==void 0,l=s?.clickStartShape;s?.targetShape&&n!==`touch`?this._pointerStates.set(o,{targetShape:s.targetShape}):this._pointerStates.delete(o);let u=pt(a.id)||this.getIntersection(a),d=u&&r[u._id];u&&(u.releaseCapture(a.id),r[u._id]=!0);let f=a.id,p={evt:e,pointerId:f},m=u&&u.isListening()?u:null,h=this._lastClicks[n],g=c&&(!m||l===m),_=g&&h&&s?.lastClick===h&&h.shape===m&&Date.now()-h.time{let r=A._getEventType(e.type),i=`${r}:${n.id}`;this._cancelClick(n.id,r);let a=this._pointerStates.get(i)?.targetShape;a&&r!==`touch`?this._pointerStates.set(i,{targetShape:a}):this._pointerStates.delete(i);let o=pt(n.id)||this.getIntersection(n),s={evt:e,pointerId:n.id};o?(t&&o._fireAndBubble(t.pointercancel,{...s}),o._fireAndBubble(sn,{...s})):t&&this._fire(t.pointercancel,{...s,target:this,currentTarget:this}),vt(n.id),t&&r===`touch`&&a?.getStage()===this&&(a._fireAndBubble(t.pointerout,{...s}),a._fireAndBubble(t.pointerleave,{...s}))})}_lostpointercapture(e){pt(e.pointerId,this)&&vt(e.pointerId)}setPointersPositions(e){let t=this._getContentPosition(),n=null,r=null;e||=window.event,e.touches===void 0?(this._pointerEventType=e.pointerId===void 0?`mouse`:`pointer`,n=(e.clientX-t.left)/t.scaleX,r=(e.clientY-t.top)/t.scaleY,this.pointerPos={x:n,y:r},this._pointerPositions=[{x:n,y:r,id:A._getFirstPointerId(e)}],this._changedPointerPositions=[{x:n,y:r,id:A._getFirstPointerId(e)}]):(this._pointerEventType=`touch`,this._pointerPositions=[],this._changedPointerPositions=[],Array.prototype.forEach.call(e.touches,e=>{this._pointerPositions.push({id:e.identifier,x:(e.clientX-t.left)/t.scaleX,y:(e.clientY-t.top)/t.scaleY})}),Array.prototype.forEach.call(e.changedTouches||e.touches,e=>{this._changedPointerPositions.push({id:e.identifier,x:(e.clientX-t.left)/t.scaleX,y:(e.clientY-t.top)/t.scaleY})}))}_setPointerPosition(e){A.warn(`Method _setPointerPosition is deprecated. Use "stage.setPointersPositions(event)" instead.`),this.setPointersPositions(e)}_getContentPosition(){if(!this.content||!this.content.getBoundingClientRect)return{top:0,left:0,scaleX:1,scaleY:1};let e=this.content.getBoundingClientRect();return{top:e.top,left:e.left,scaleX:e.width/this.content.clientWidth||1,scaleY:e.height/this.content.clientHeight||1}}_buildDOM(){if(this.bufferHitCanvas=new ut({pixelRatio:1,width:0,height:0}),!D.isBrowser)return;let e=this.container();if(!e)throw`Stage has no container. A container is required.`;e.innerHTML=``,this.content=e.ownerDocument.createElement(`div`),this.content.style.position=`relative`,this.content.style.userSelect=`none`,this.content.className=`konvajs-content`,this.content.setAttribute(`role`,`presentation`),e.appendChild(this.content),On(this._getOwnerWindow()),this._resizeDOM()}cache(){return A.warn(`Cache function is not allowed for stage. You may use cache only for layers, groups and shapes.`),this}clearCache(){return this}batchDraw(){var e;return(e=this.children)==null||e.forEach(function(e){e.batchDraw()}),this}};kn.prototype.nodeType=Yt,ye(kn),N.addGetterSetter(kn,`container`),N.addGetterSetter(kn,`eventBatchFunc`);var An=`hasShadow`,jn=`hasFill`,Mn=`hasStroke`,Nn=`shadowRGBA`,Pn=`patternImage`,Fn=`linearGradient`,In=`radialGradient`,Ln;function Rn(){return Ln||(Ln=A.createCanvasElement().getContext(`2d`),Ln)}var zn={};function Bn(e){let t=this.attrs.fillRule;t?e.fill(t):e.fill()}function Vn(e){e.stroke()}function Hn(){this._clearCache(An)}function Un(){this._clearCache(jn)}function Wn(){this._clearCache(Mn)}function Gn(){this._clearCache(Nn)}function Kn(){this._clearCache(Pn)}function qn(){this._clearCache(Fn)}function Jn(){this._clearCache(In)}var I=class e extends P{constructor(e){super(e);let t,n=0;for(;t=A.getHitColor(),!t||t in zn;)if(n++,n>=1e4){A.warn(`Failed to find a unique color key for a shape. Konva may work incorrectly. Most likely your browser is using canvas farbling. Consider disabling it.`),t=A.getRandomColor();break}this.colorKey=t,zn[t]=this}getContext(){return A.warn(`shape.getContext() method is deprecated. Please do not use it.`),this.getLayer().getContext()}getCanvas(){return A.warn(`shape.getCanvas() method is deprecated. Please do not use it.`),this.getLayer().getCanvas()}getSceneFunc(){return this.attrs.sceneFunc||this._sceneFunc}getHitFunc(){return this.attrs.hitFunc||this._hitFunc}hasShadow(){return this._getCache(An,this._hasShadow)}_hasShadow(){return this.shadowEnabled()&&this.shadowOpacity()!==0&&!!(this.shadowColor()||this.shadowBlur()||this.shadowOffsetX()||this.shadowOffsetY())}_getFillPattern(){return this._getCache(Pn,this.__getFillPattern)}__getFillPattern(){if(this.fillPatternImage()){let e=Rn().createPattern(this.fillPatternImage(),this.fillPatternRepeat()||`repeat`);if(e&&e.setTransform){let t=new Se;t.translate(this.fillPatternX(),this.fillPatternY()),t.rotate(D.getAngle(this.fillPatternRotation())),t.scale(this.fillPatternScaleX(),this.fillPatternScaleY()),t.translate(-1*this.fillPatternOffsetX(),-1*this.fillPatternOffsetY());let n=t.getMatrix(),r=typeof DOMMatrix>`u`?{a:n[0],b:n[1],c:n[2],d:n[3],e:n[4],f:n[5]}:new DOMMatrix(n);e.setTransform(r)}return e}}_getLinearGradient(){return this._getCache(Fn,this.__getLinearGradient)}__getLinearGradient(){let e=this.fillLinearGradientColorStops();if(e){let t=Rn(),n=this.fillLinearGradientStartPoint(),r=this.fillLinearGradientEndPoint(),i=t.createLinearGradient(n.x,n.y,r.x,r.y);for(let t=0;t0}destroy(){return P.prototype.destroy.call(this),delete zn[this.colorKey],delete this.colorKey,this}_useBufferCanvas(e,t=this.getAbsoluteOpacity()){if(!(this.attrs.perfectDrawEnabled??!0))return!1;let n=e||this.hasFill(),r=this.hasStroke(),i=!this._isUnderCache&&t!==1;if(n&&r&&i)return!0;let a=this.hasShadow(),o=this.shadowForStrokeEnabled();return!!(n&&r&&a&&o)}setStrokeHitEnabled(e){A.warn(`strokeHitEnabled property is deprecated. Please use hitStrokeWidth instead.`),e?this.hitStrokeWidth(`auto`):this.hitStrokeWidth(0)}getStrokeHitEnabled(){return this.hitStrokeWidth()!==0}getSelfRect(){let e=this.attrs.selfRectFunc;if(e)return{...e.call(this,this)};let t=this.size();return{x:this._centroid?-t.width/2:0,y:this._centroid?-t.height/2:0,width:t.width,height:t.height}}_getSelfRectForDrawing(){return this.getSelfRect()}getClientRect(e={}){let t=this._getCachedSceneRect(e);if(t)return t;let n=e.skipTransform,r=e.relativeTo,i=e._forDrawing,a=i?this._getSelfRectForDrawing():this.getSelfRect();i&&!this.strokeScaleEnabled()?a=this._transformedRect(a,r):(a.width<0||a.height<0)&&(a=new Se()._getTransformedRect(a));let o=!e.skipStroke&&this.hasStroke()?i?this._getStrokePadding()*2:this.strokeWidth():0,s=o,c=o,l;if(!i&&o&&!this.strokeScaleEnabled()){let e=this;for(;e&&!e.isCached()&&!e._isUnderCache;)e=e.parent;let[t,i,a,o]=this.getAbsoluteTransform(e).getMatrix(),u=Math.abs(t*o-i*a);if(u)s*=Math.hypot(a,o)/u,c*=Math.hypot(t,i)/u;else if(!n&&(s=c=0,l=e?e.getAbsoluteTransform().copy():new Se,r)){let e=r.getAbsoluteTransform(),[t,n,i,a]=e.getMatrix();l=t*a-n*i?e.copy().invert().multiply(l):new Se}}let u={x:a.x-s/2,y:a.y-c/2,width:a.width+s,height:a.height+c};if(i&&this.strokeScaleEnabled()&&(u=this._transformedRect(u,r)),!e.skipShadow&&this.hasShadow()){let e=i?this.getAbsoluteScale():{x:1,y:1},t=this.shadowOffsetX()*e.x,n=this.shadowOffsetY()*e.y,r=this.shadowBlur()*(i?2*Math.min(Math.abs(e.x),Math.abs(e.y)):1);u.x+=Math.min(0,t)-r,u.y+=Math.min(0,n)-r,u.width+=Math.abs(t)+r*2,u.height+=Math.abs(n)+r*2}if(i)return u;if(!n){let e=this._transformedRect(u,r);if(l){let[t,n,r,i]=l.getMatrix(),a=o*Math.hypot(t,r)/2,s=o*Math.hypot(n,i)/2;e.x-=a,e.y-=s,e.width+=a*2,e.height+=s*2}return e}return u}_getStrokePadding(e=this.miterLimit()||10){return this.attrs.sceneFunc&&(e=this.miterLimit()||10),Math.abs(this.strokeWidth())/2*Math.max(this.lineCap()===`square`?Math.SQRT2:1,(this.lineJoin()||`miter`)===`miter`?e:1)}drawScene(t,n){let r=this.getLayer(),i=t||r.getCanvas(),a=i.getContext(),o=this._getCanvasCache(),s=this.getSceneFunc(),c=this.hasShadow(),l=n===this;if(!(n?this._isVisible(n):this.isVisible())&&!l)return this;if(o){a.save();let e=this.getAbsoluteTransform(n).getMatrix();return a.transform(e[0],e[1],e[2],e[3],e[4],e[5]),this._drawCachedSceneCanvas(a),a.restore(),this}if(!s)return this;a.save();try{if(i.width&&i.height&&this._useBufferCanvas(void 0,a._getOpacity(this))){let t=!!a._opacityRoot||!!this.attrs.selfRectFunc&&this.getSelfRect===e.prototype.getSelfRect||!this.attrs.sceneFunc&&!this.attrs.charRenderFunc&&ve.has(this.constructor),r=i._prepareIsolationCanvas(t?this.getClientRect({_forDrawing:!0,relativeTo:n,skipShadow:!0}):void 0),o=r.getContext();o.save(),o._applyLineJoin(this),o._applyMiterLimit(this);let u=this.getAbsoluteTransform(n).getMatrix();o.transform(u[0],u[1],u[2],u[3],u[4],u[5]),s.call(this,o,this),o.restore(),c&&a._applyShadow(this),l||(a._applyOpacity(this),a._applyGlobalCompositeOperation(this)),a._drawDeviceBuffer(r)}else{if(a._applyLineJoin(this),a._applyMiterLimit(this),!l){let e=this.getAbsoluteTransform(n).getMatrix();a.transform(e[0],e[1],e[2],e[3],e[4],e[5]),a._applyOpacity(this),a._applyGlobalCompositeOperation(this)}c&&a._applyShadow(this),s.call(this,a,this)}}catch(e){throw i._releaseIsolationCanvas(),e}finally{a.restore()}return this}drawHit(e,t){if(!this.shouldDrawHit(t))return this;let n=this.getLayer(),r=e||n.hitCanvas,i=r&&r.getContext(),a=this.hitFunc()||this.sceneFunc(),o=this._getCachedHitCanvas(t);if(this.colorKey||A.warn(`Looks like your canvas has a destroyed shape in it. Do not reuse shape after you destroyed it. If you want to reuse shape you should call remove() instead of destroy()`),o){i.save();let e=this.getAbsoluteTransform(t).getMatrix();return i.transform(e[0],e[1],e[2],e[3],e[4],e[5]),this._drawCachedHitCanvas(i,o),i.restore(),this}if(!a)return this;if(i.save(),i._applyLineJoin(this),i._applyMiterLimit(this),this!==t){let e=this.getAbsoluteTransform(t).getMatrix();i.transform(e[0],e[1],e[2],e[3],e[4],e[5])}try{a.call(this,i,this)}finally{i.restore()}return this}drawHitFromCache(e=0){let t=this._getCachedSceneCanvas(),n=this._getCachedHitCanvas(),r=n.getContext(),i=n.getWidth(),a=n.getHeight();r.clear(),r.drawImage(t._canvas,0,0,i/n.pixelRatio,a/n.pixelRatio);try{let t=r.getImageData(0,0,i,a),n=t.data,o=n.length,s=A._hexToRgb(this.colorKey);for(let t=0;te?(n[t]=s.r,n[t+1]=s.g,n[t+2]=s.b,n[t+3]=255):n[t+3]=0;r.putImageData(t,0,0)}catch(e){A.error(`Unable to draw hit graph from cached scene canvas. `+e.message)}return this}hasPointerCapture(e){return ht(e,this)}setPointerCapture(e){gt(e,this)}releaseCapture(e){vt(e,this)}};I.prototype._fillFunc=Bn,I.prototype._strokeFunc=Vn,I.prototype._fillFuncHit=Bn,I.prototype._strokeFuncHit=Vn,I.prototype._centroid=!1,I.prototype.nodeType=`Shape`,ye(I),I.prototype.on(`shadowColorChange.konva shadowBlurChange.konva shadowOffsetXChange.konva shadowOffsetYChange.konva shadowOpacityChange.konva shadowEnabledChange.konva`,Hn),I.prototype.on(`shadowColorChange.konva shadowOpacityChange.konva shadowEnabledChange.konva`,Gn),I.prototype.on(`fillEnabledChange.konva fillChange.konva fillPatternImageChange.konva fillLinearGradientColorStopsChange.konva fillRadialGradientColorStopsChange.konva`,Un),I.prototype.on(`strokeEnabledChange.konva strokeWidthChange.konva strokeChange.konva strokeLinearGradientColorStopsChange.konva`,Wn),I.prototype.on(`fillPriorityChange.konva fillPatternImageChange.konva fillPatternRepeatChange.konva fillPatternScaleXChange.konva fillPatternScaleYChange.konva fillPatternOffsetXChange.konva fillPatternOffsetYChange.konva fillPatternXChange.konva fillPatternYChange.konva fillPatternRotationChange.konva`,Kn),I.prototype.on(`fillPriorityChange.konva fillLinearGradientColorStopsChange.konva fillLinearGradientStartPointXChange.konva fillLinearGradientStartPointYChange.konva fillLinearGradientEndPointXChange.konva fillLinearGradientEndPointYChange.konva`,qn),I.prototype.on(`fillPriorityChange.konva fillRadialGradientColorStopsChange.konva fillRadialGradientStartPointXChange.konva fillRadialGradientStartPointYChange.konva fillRadialGradientEndPointXChange.konva fillRadialGradientEndPointYChange.konva fillRadialGradientStartRadiusChange.konva fillRadialGradientEndRadiusChange.konva`,Jn),N.addGetterSetter(I,`stroke`,void 0,wt()),N.addGetterSetter(I,`strokeWidth`,2,M()),N.addGetterSetter(I,`fillAfterStrokeEnabled`,!1),N.addGetterSetter(I,`hitStrokeWidth`,`auto`,St()),N.addGetterSetter(I,`strokeHitEnabled`,!0,Et()),N.addGetterSetter(I,`perfectDrawEnabled`,!0,Et()),N.addGetterSetter(I,`shadowForStrokeEnabled`,!0,Et()),N.addGetterSetter(I,`lineJoin`),N.addGetterSetter(I,`lineCap`),N.addGetterSetter(I,`miterLimit`),N.addGetterSetter(I,`sceneFunc`),N.addGetterSetter(I,`hitFunc`),N.addGetterSetter(I,`selfRectFunc`),N.addGetterSetter(I,`dash`),N.addGetterSetter(I,`dashOffset`,0,M()),N.addGetterSetter(I,`shadowColor`,void 0,Ct()),N.addGetterSetter(I,`shadowBlur`,0,M()),N.addGetterSetter(I,`shadowOpacity`,1,M()),N.addComponentsGetterSetter(I,`shadowOffset`,[`x`,`y`]),N.addGetterSetter(I,`shadowOffsetX`,0,M()),N.addGetterSetter(I,`shadowOffsetY`,0,M()),N.addGetterSetter(I,`fillPatternImage`),N.addGetterSetter(I,`fill`,void 0,wt()),N.addGetterSetter(I,`fillPatternX`,0,M()),N.addGetterSetter(I,`fillPatternY`,0,M()),N.addGetterSetter(I,`fillLinearGradientColorStops`),N.addGetterSetter(I,`strokeLinearGradientColorStops`),N.addGetterSetter(I,`fillRadialGradientStartRadius`,0),N.addGetterSetter(I,`fillRadialGradientEndRadius`,0),N.addGetterSetter(I,`fillRadialGradientColorStops`),N.addGetterSetter(I,`fillPatternRepeat`,`repeat`),N.addGetterSetter(I,`fillEnabled`,!0),N.addGetterSetter(I,`strokeEnabled`,!0),N.addGetterSetter(I,`shadowEnabled`,!0),N.addGetterSetter(I,`dashEnabled`,!0),N.addGetterSetter(I,`strokeScaleEnabled`,!0),N.addGetterSetter(I,`fillPriority`,`color`),N.addComponentsGetterSetter(I,`fillPatternOffset`,[`x`,`y`]),N.addGetterSetter(I,`fillPatternOffsetX`,0,M()),N.addGetterSetter(I,`fillPatternOffsetY`,0,M()),N.addComponentsGetterSetter(I,`fillPatternScale`,[`x`,`y`]),N.addGetterSetter(I,`fillPatternScaleX`,1,M()),N.addGetterSetter(I,`fillPatternScaleY`,1,M()),N.addComponentsGetterSetter(I,`fillLinearGradientStartPoint`,[`x`,`y`]),N.addComponentsGetterSetter(I,`strokeLinearGradientStartPoint`,[`x`,`y`]),N.addGetterSetter(I,`fillLinearGradientStartPointX`,0),N.addGetterSetter(I,`strokeLinearGradientStartPointX`,0),N.addGetterSetter(I,`fillLinearGradientStartPointY`,0),N.addGetterSetter(I,`strokeLinearGradientStartPointY`,0),N.addComponentsGetterSetter(I,`fillLinearGradientEndPoint`,[`x`,`y`]),N.addComponentsGetterSetter(I,`strokeLinearGradientEndPoint`,[`x`,`y`]),N.addGetterSetter(I,`fillLinearGradientEndPointX`,0),N.addGetterSetter(I,`strokeLinearGradientEndPointX`,0),N.addGetterSetter(I,`fillLinearGradientEndPointY`,0),N.addGetterSetter(I,`strokeLinearGradientEndPointY`,0),N.addComponentsGetterSetter(I,`fillRadialGradientStartPoint`,[`x`,`y`]),N.addGetterSetter(I,`fillRadialGradientStartPointX`,0),N.addGetterSetter(I,`fillRadialGradientStartPointY`,0),N.addComponentsGetterSetter(I,`fillRadialGradientEndPoint`,[`x`,`y`]),N.addGetterSetter(I,`fillRadialGradientEndPointX`,0),N.addGetterSetter(I,`fillRadialGradientEndPointY`,0),N.addGetterSetter(I,`fillPatternRotation`,0),N.addGetterSetter(I,`fillRule`,void 0,Ct()),N.backCompat(I,{dashArray:`dash`,getDashArray:`getDash`,setDashArray:`setDash`,drawFunc:`sceneFunc`,getDrawFunc:`getSceneFunc`,setDrawFunc:`setSceneFunc`,drawHitFunc:`hitFunc`,getDrawHitFunc:`getHitFunc`,setDrawHitFunc:`setHitFunc`});var Yn=`beforeDraw`,Xn=`draw`,Zn=10,Qn=256;function $n(e,t){return e[t+3]>=128?zn[A.getHitColorKey(e[t],e[t+1],e[t+2])]:void 0}var er=class extends Jt{constructor(e){super(e),this.canvas=new lt,this.hitCanvas=new ut({pixelRatio:1}),this._waitingForDraw=!1,this.on(`visibleChange.konva`,this._checkVisibility),this._checkVisibility(),this.on(`imageSmoothingEnabledChange.konva`,this._setSmoothEnabled),this._setSmoothEnabled()}createPNGStream(){return this.canvas._canvas.createPNGStream()}getCanvas(){return this.canvas}getNativeCanvasElement(){return this.canvas._canvas}getHitCanvas(){return this.hitCanvas}getContext(){return this.getCanvas().getContext()}clear(e){return this.getContext().clear(e),this.getHitCanvas().getContext().clear(e),this}setZIndex(e){super.setZIndex(e);let t=this.getStage();return t&&t.content&&(t.content.removeChild(this.getNativeCanvasElement()),e{this._waitingForDraw=!1,this.draw()},this.getStage()?._getOwnerWindow())),this}getIntersection(e){if(!this.isListening()||!this.isVisible())return null;let t=this._getIntersection(e);if(t.shape)return t.shape;if(!t.antialiased)return null;let n=this.hitCanvas.pixelRatio,r=Math.floor(e.x*n),i=Math.floor(e.y*n),a=e=>this.hitCanvas.context.getImageData(r-e,i-e,e*2+1,e*2+1).data,o=Zn,s=o*2+1,c=a(o),l=c[(o*s+o)*4+3];for(let e=1;e<=Qn;e++){e>o&&(o=Math.min(Qn,o*2),s=o*2+1,c=a(o));let t=0;for(let n=-e;n<=e;n++){let r=Math.abs(n)===e?1:e*2;for(let i=-e;i<=e;i+=r){let e=((n+o)*s+i+o)*4,r=$n(c,e);if(r)return r;t=Math.max(t,c[e+3])}}if(t<=l&&t!==255)return null;l=t}return null}_getIntersection(e){if(!this.hitCanvas.width||!this.hitCanvas.height)return{};let t=this.hitCanvas.pixelRatio,n=this.hitCanvas.context.getImageData(Math.floor(e.x*t),Math.floor(e.y*t),1,1).data,r=$n(n,0);return r?{shape:r}:n[3]>0?{antialiased:!0}:{}}drawScene(e,t){let n=this.getLayer(),r=e||n&&n.getCanvas();return this._fire(Yn,{node:this}),this.clearBeforeDraw()&&r.getContext().clear(),Jt.prototype.drawScene.call(this,r,t),r._trimIsolationCanvas(),this._fire(Xn,{node:this}),this}shouldDrawHit(e){if(!super.shouldDrawHit(e))return!1;if(e||D.hitOnDragEnabled)return!0;let t=!1;return j._dragElements.forEach(e=>{e.dragStatus===`dragging`&&(e.node===this.getStage()||e.node.getLayer()===this)&&(t=!0)}),!t&&!D.Transformer?._isLayerTransforming(this)}drawHit(e,t){let n=this.getLayer(),r=e||n&&n.hitCanvas;return!e&&n&&(n._syncHitCanvasSize(),n.clearBeforeDraw()&&n.getHitCanvas().getContext().clear()),Jt.prototype.drawHit.call(this,r,t),this}enableHitGraph(){return this.hitGraphEnabled(!0),this}disableHitGraph(){return this.hitGraphEnabled(!1),this}setHitGraphEnabled(e){A.warn(`hitGraphEnabled method is deprecated. Please use layer.listening() instead.`),this.listening(e)}getHitGraphEnabled(e){return A.warn(`hitGraphEnabled method is deprecated. Please use layer.listening() instead.`),this.listening()}toggleHitCanvas(){if(!this.parent||!this.parent.content)return;let e=this.parent;this.hitCanvas._canvas.parentNode?e.content.removeChild(this.hitCanvas._canvas):e.content.appendChild(this.hitCanvas._canvas)}destroy(){return this.getCanvas()._releaseIsolationCanvas(),A.releaseCanvas(this.getNativeCanvasElement(),this.getHitCanvas()._canvas),super.destroy()}};er.prototype.nodeType=`Layer`,ye(er),N.addGetterSetter(er,`imageSmoothingEnabled`,!0),N.addGetterSetter(er,`clearBeforeDraw`,!0),N.addOverloadedGetterSetter(er,`hitGraphEnabled`);var tr=class extends er{constructor(e){super(e),this.listening(!1),A.warn(`Konva.FastLayer is deprecated. Please use "new Konva.Layer({ listening: false })" instead.`)}};tr.prototype.nodeType=`FastLayer`,ye(tr);var nr=class extends Jt{_validateAdd(e){let t=e.getType();t!==`Group`&&t!==`Shape`&&A.throw(`You may only add groups and shapes to groups.`)}_drawChildNodes(e,t,n){if(e!==`drawScene`||!this.isolated()||n===this)return super._drawChildNodes(e,t,n);if(!t.width||!t.height)return;let r=t.getContext(),i=t._prepareIsolationCanvas(this.getClientRect({_forDrawing:!0,relativeTo:n})),a=i.getContext();a._opacityRoot=this,r.save();try{super._drawChildNodes(e,i,n),r._applyOpacity(this),r._drawDeviceBuffer(i)}catch(e){throw t._releaseIsolationCanvas(),e}finally{r.restore(),a._opacityRoot=void 0}}};N.addGetterSetter(nr,`isolated`,!1,Et()),nr.prototype.nodeType=`Group`,ye(nr);var rr=_e.performance?.now?()=>_e.performance.now():Date.now,ir=class e{constructor(t,n){this.id=e.animIdCounter++,this.frame={time:0,timeDiff:0,lastTime:rr(),frameRate:0},this.func=t,this.setLayers(n)}setLayers(e){return this.layers=e?[].concat(e):[],this}getLayers(){return this.layers}addLayer(e){let t=this.layers,n=t.length;for(let r=0;r{Array.from(this.animations).forEach(t=>{this.animations.has(t)&&(t._updateFrameObject(rr()),!(t.func&&t.func.call(t,t.frame)===!1)&&t.layers.forEach(t=>t&&e.add(t)))})}),e.forEach(e=>e.batchDraw())}static _animationLoop(){let t=e;t.animations.size?(t._runFrames(),A.requestAnimFrame(t._animationLoop)):t.animRunning=!1}static _handleAnimation(){this.animRunning||(this.animRunning=!0,A.requestAnimFrame(this._animationLoop))}};ir.animations=new Set,ir.animIdCounter=0,ir.animRunning=!1;var ar={node:1,duration:1,easing:1,onFinish:1,onUpdate:1,onReset:1,yoyo:1},or=1,sr=2,cr=3,lr=[`fill`,`stroke`,`shadowColor`],ur=0;function dr(e){return A.colorToRGBA(e)||A.throw(`can not tween the color "`+e+`", because it is not a valid color.`)}function fr(e,t){return{r:t.r-e.r,g:t.g-e.g,b:t.b-e.b,a:t.a-e.a}}function pr(e,t,n){return`rgba(`+Math.round(e.r+t.r*n)+`,`+Math.round(e.g+t.g*n)+`,`+Math.round(e.b+t.b*n)+`,`+(e.a+t.a*n)+`)`}var mr=class{constructor(e,t,n,r,i,a,o){this.prop=e,this.propFunc=t,this.begin=r,this._pos=r,this.duration=a,this._change=0,this.prevPos=0,this.yoyo=o,this._time=0,this._position=0,this._startTime=0,this._finish=0,this.func=n,this._change=i-this.begin,this.pause()}fire(e){let t=this[e];t&&t()}setTime(e){e>this.duration?this.yoyo?(this._time=this.duration,this.reverse()):this.finish():e<0?this.yoyo?(this._time=0,this.play()):this.reset():(this._time=e,this.update())}getTime(){return this._time}setPosition(e){this.prevPos=this._pos,this.propFunc(e),this._pos=e}getPosition(e){return e===void 0&&(e=this._time),this.func(e,this.begin,this._change,this.duration)}play(){this.state=sr,this._startTime=this.getTimer()-this._time,this.fire(`onPlay`),this.onEnterFrame()}reverse(){this.state=cr,this._time=this.duration-this._time,this._startTime=this.getTimer()-this._time,this.fire(`onReverse`),this.onEnterFrame()}seek(e){this.pause(),this._time=e,this.update(),this.fire(`onSeek`)}reset(){this.pause(),this._time=0,this.update(),this.fire(`onReset`)}finish(){this.pause(),this._time=this.duration,this.update(),this.fire(`onFinish`)}update(){this.setPosition(this.getPosition(this._time)),this.fire(`onUpdate`)}onEnterFrame(){let e=this.getTimer()-this._startTime;this.state===sr?this.setTime(e):this.state===cr&&this.setTime(this.duration-e)}pause(){this.state=or,this.fire(`onPause`)}getTimer(){return Date.now()}},hr=class e{constructor(t){let n=this,r=t.node,i=r._id,a=t.easing||gr.Linear,o=!!t.yoyo,s,c;s=t.duration===void 0?.3:t.duration===0?.001:t.duration,this.node=r,this._id=ur++;let l=r.getLayer()||(r instanceof D.Stage?r.getLayers():null);for(c in l||A.error("Tween constructor have `node` that is not in a layer. Please add node into layer first."),this.anim=new ir(function(){n.tween.onEnterFrame()},l),this.tween=new mr(c,function(e){n._tweenFunc(e)},a,0,1,s*1e3,o),this._addListeners(),e.attrs[i]||(e.attrs[i]={}),e.attrs[i][this._id]||(e.attrs[i][this._id]={}),e.tweens[i]||(e.tweens[i]={}),t)ar[c]===void 0&&this._addAttr(c,t[c]);this.reset(),this.onFinish=t.onFinish,this.onReset=t.onReset,this.onUpdate=t.onUpdate}_addAttr(t,n){if(A._isPlainObject(n)){for(let e in n)this._addAttr(t+A._capitalize(e),n[e]);return}let r=this.node,i=r._id,a,o,s,c,l=e.tweens[i][t];l!==void 0&&delete e.attrs[i][l][t];let u=r.getAttr(t);if(A._isArray(n)||A._isArray(u)){if(a=[],c=u,s=n,u=A._isArray(u)?u.slice():Array(n.length).fill(u||0),A._isArray(n)||(n=Array(u.length).fill(n)),o=Math.max(n.length,u.length),t===`points`&&n.length!==u.length&&(n.length>u.length?u=A._prepareArrayForTween(u,n,r.closed()):n=A._prepareArrayForTween(n,u,r.closed())),t.endsWith(`ColorStops`))for(let e=0;ethis.destroy(),r=()=>{this.node.off(t).on(t,n),this.anim.start()};this.tween.onPlay=r,this.tween.onReverse=r,this.tween.onPause=()=>{this.node.off(t),this.anim.stop()};let i=(t,n)=>{let r=e.attrs[this.node._id]?.[this._id];if(r){for(let e in r)r[e][t]!==void 0&&this.node.setAttr(e,r[e][t]);n?.call(this)}};this.tween.onFinish=()=>i(`trueEnd`,this.onFinish),this.tween.onReset=()=>i(`trueStart`,this.onReset),this.tween.onUpdate=()=>{this.onUpdate&&this.onUpdate.call(this)}}play(){return this.tween.play(),this}reverse(){return this.tween.reverse(),this}reset(){return this.tween.reset(),this}seek(e){return this.tween.seek(e*1e3),this}pause(){return this.tween.pause(),this}finish(){return this.tween.finish(),this}destroy(){let t=this.node._id,n=this._id,r=e.attrs[t]?.[n],i=e.tweens[t];if(this.pause(),this.anim&&this.anim.stop(),r){if(i){for(let e in r)delete i[e];Object.keys(i).length===0&&delete e.tweens[t]}delete e.attrs[t][n],Object.keys(e.attrs[t]).length===0&&delete e.attrs[t]}}};hr.attrs={},hr.tweens={},P.prototype.to=function(e){let t=e.onFinish,n=new hr({...e,node:this,onFinish(){n.destroy(),t&&t()}});return n.play(),n};var gr={BackEaseIn(e,t,n,r){return n*(e/=r)*e*(2.70158*e-1.70158)+t},BackEaseOut(e,t,n,r){return n*((e=e/r-1)*e*(2.70158*e+1.70158)+1)+t},BackEaseInOut(e,t,n,r){let i=1.70158;return(e/=r/2)<1?n/2*(e*e*(((i*=1.525)+1)*e-i))+t:n/2*((e-=2)*e*(((i*=1.525)+1)*e+i)+2)+t},ElasticEaseIn(e,t,n,r,i,a){let o=0;return e===0?t:(e/=r)===1?t+n:(a||=r*.3,!i||i=o?o:(s%o+o)%o,l=Math.cos(Math.min(c,Math.PI)),u=Math.sin(Math.min(Math.max(Math.PI,c),3*Math.PI/2)),d=Math.sin(Math.min(c,Math.PI/2)),f=l*(l>0?n:r),p=1*r,m=u*(u>0?n:r),h=d*(d>0?r:n);return{x:f,y:i?-1*h:m,width:p-f,height:h-m}}};vr.prototype._centroid=!0,vr.prototype.className=`Arc`,vr.prototype._attrsAffectingSize=[`innerRadius`,`outerRadius`,`angle`,`clockwise`],ye(vr,!0),N.addGetterSetter(vr,`innerRadius`,0,M()),N.addGetterSetter(vr,`outerRadius`,0,M()),N.addGetterSetter(vr,`angle`,0,M()),N.addGetterSetter(vr,`clockwise`,!1,Et());var yr=[-.07652652113349734,.07652652113349734,-.22778585114164507,.22778585114164507,-.37370608871541955,.37370608871541955,-.5108670019508271,.5108670019508271,-.636053680726515,.636053680726515,-.7463319064601508,.7463319064601508,-.8391169718222188,.8391169718222188,-.912234428251326,.912234428251326,-.9639719272779138,.9639719272779138,-.9931285991850949,.9931285991850949],br=[.15275338713072584,.15275338713072584,.14917298647260374,.14917298647260374,.14209610931838204,.14209610931838204,.13168863844917664,.13168863844917664,.11819453196151841,.11819453196151841,.10193011981724044,.10193011981724044,.08327674157670475,.08327674157670475,.06267204833410907,.06267204833410907,.04060142980038694,.04060142980038694,.017614007139152118,.017614007139152118],xr=(e,t,n)=>{let r=n/2,i=0;for(let n=0;nxr([e[0],e[0]+2/3*(e[1]-e[0]),e[2]+2/3*(e[1]-e[2]),e[2]],[t[0],t[0]+2/3*(t[1]-t[0]),t[2]+2/3*(t[1]-t[2]),t[2]],n);function Cr(e,t,n){let r=1-n,i=r*r,a=2*r*n,o=n*n,s=i*(3*(e[1]-e[0]))+a*(3*(e[2]-e[1]))+o*(3*(e[3]-e[2])),c=i*(3*(t[1]-t[0]))+a*(3*(t[2]-t[1]))+o*(3*(t[3]-t[2]));return Math.sqrt(s*s+c*c)}var wr=(e,t,n)=>{let r=1,i=e/t,a=(e-n(i))/t,o=0;for(;r>.001;){let s=n(i+a),c=Math.abs(e-s)/t;if(c500)break}return i},Tr=(e,t,n,r)=>{let i=1-r;return i*i*e+2*i*r*t+r*r*n},Er=(e,t,n,r,i,a)=>{let o=[];for(let s of[[e,n,i],[t,r,a]]){let c=(s[0]-s[1])/(s[0]-2*s[1]+s[2]);c>0&&c<1&&o.push(Tr(e,n,i,c),Tr(t,r,a,c))}return o},Dr=(e,t,n,r,i)=>{let a=1-i;return a*a*a*e+3*a*a*i*t+3*a*i*i*n+i*i*i*r},Or=(e,t,n,r,i,a,o,s)=>{let c=[];for(let l of[[e,n,i,o],[t,r,a,s]]){let u=-3*l[0]+9*l[1]-9*l[2]+3*l[3],d=6*l[0]-12*l[1]+6*l[2],f=-3*l[0]+3*l[1],p=d*d-4*u*f;if(p<0)continue;let m=-(d+(d<0?-1:1)*Math.sqrt(p))/2;for(let l of[m/u,f/m])l>0&&l<1&&c.push(Dr(e,n,i,o,l),Dr(t,r,a,s,l))}return c};function kr(e,t,n,r,i,a,o){let s=Math.sqrt((n-e)**2+(r-t)**2),c=Math.sqrt((i-n)**2+(a-r)**2),l=s+c;if(l===0)return[n,r,n,r];let u=o*s/l,d=o*c/l;return[n-u*(i-e),r-u*(a-t),n+d*(i-e),r+d*(a-t)]}function Ar(e,t){let n=e.length,r=[];for(let i=2;i4}_eachTensionSegment(e,t){let n=this.points(),r=n.length,i=this.closed(),a=this.getTensionPoints(),o=a.length,s=n[0],c=n[1],l=i?0:4;for(i||(e(s,c,a[0],a[1],a[2],a[3]),s=a[2],c=a[3]);le.quadraticCurveTo(r,i,a,o),(t,n,r,i,a,o,s,c)=>e.bezierCurveTo(r,i,a,o,s,c));else if(i)for(a=2;at.push(a,o,...Er(e,n,r,i,a,o)),(e,n,r,i,a,o,s,c)=>t.push(s,c,...Or(e,n,r,i,a,o,s,c))),e=t}else this.bezier()&&(e=[e[0],e[1],...jr(e)]);return A._getPointsRect(e)}};Mr.prototype.className=`Line`,Mr.prototype._attrsAffectingSize=[`points`,`bezier`,`tension`,`closed`],ye(Mr,!0),N.addGetterSetter(Mr,`closed`,!1),N.addGetterSetter(Mr,`bezier`,!1),N.addGetterSetter(Mr,`tension`,0,M()),N.addGetterSetter(Mr,`points`,[],Tt());var Nr={m:2,l:2,h:1,v:1,c:6,s:4,q:4,t:2,a:7,z:0},Pr=Math.PI*2,Fr=class e extends I{constructor(e){super(e),this.dataArray=[],this.pathLength=0,this._readDataAttribute(),this.on(`dataChange.konva`,function(){this._readDataAttribute()})}_readDataAttribute(){this.dataArray=e.parsePathData(this.data()),this.pathLength=e.getPathLength(this.dataArray)}_sceneFunc(e){let t=this.dataArray;e.beginPath();let n=!1;for(let r=0;r{if(((n-s)*Math.sign(c)%Pr+Pr)%Pr0&&t<=o;)o-=n[--a].pathLength;for(t-=o;an[a].pathLength;){let e=n[a].pathLength;t-=e,o+=e,++a}if(r&&axr([c.start.x,l[0],l[2],l[4]],[c.start.y,l[1],l[3],l[5]],e)),c.start.x,c.start.y,l[0],l[1],l[2],l[3],l[4],l[5]);case`Q`:return e.getPointOnQuadraticBezier(wr(t,c.pathLength,e=>Sr([c.start.x,l[0],l[2]],[c.start.y,l[1],l[3]],e)),c.start.x,c.start.y,l[0],l[1],l[2],l[3]);case`A`:return e.getPointOnEllipticalArc(l[0],l[1],l[2],l[3],l[2]===l[3]?l[4]+l[5]*t/c.pathLength:e._walkArc(l,t).theta,l[6])}return null}static getPointOnLine(e,t,n,r,i,a,o){a??=t,o??=n;let s=this.getLineLength(t,n,r,i);if(s<1e-10)return{x:t,y:n};if(r===t)return{x:a,y:o+(i>n?e:-e)};let c=(i-n)/(r-t),l=Math.sqrt(e*e/(1+c*c))*(r1&&(t[0]===`0`||t[0]===`1`);)f.push(+t[0]),p++,t=t.slice(1);let n=parseFloat(t);f.push(isNaN(n)?0:n),p>=0&&(p=(p+1)%7)}let m=0;for(;m=n)return{theta:d+(p-d)*((n-f)/h),length:n};f+=h,u=m,d=p}return{theta:d,length:f}}static calcLength(t,n,r,i){let a=e;switch(r){case`L`:return a.getLineLength(t,n,i[0],i[1]);case`C`:return xr([t,i[0],i[2],i[4]],[n,i[1],i[3],i[5]],1);case`Q`:return Sr([t,i[0],i[2]],[n,i[1],i[3]],1);case`A`:return a._walkArc(i,1/0).length}return 0}static convertEndpointToCenterParameterization(e,t,n,r,i,a,o,s,c){let l=Math.PI/180*c,u=Math.cos(l)*(e-n)/2+Math.sin(l)*(t-r)/2,d=-1*Math.sin(l)*(e-n)/2+Math.cos(l)*(t-r)/2,f=u*u/(o*o)+d*d/(s*s);f>1&&(o*=Math.sqrt(f),s*=Math.sqrt(f));let p=Math.sqrt((o*o*(s*s)-o*o*(d*d)-s*s*(u*u))/(o*o*(d*d)+s*s*(u*u)));i===a&&(p*=-1),isNaN(p)&&(p=0);let m=p*o*d/s,h=p*-s*u/o,g=(e+n)/2+Math.cos(l)*m-Math.sin(l)*h,_=(t+r)/2+Math.sin(l)*m+Math.cos(l)*h,v=function(e){return Math.sqrt(e[0]*e[0]+e[1]*e[1])},y=function(e,t){return(e[0]*t[0]+e[1]*t[1])/(v(e)*v(t))},b=function(e,t){return(e[0]*t[1]=1&&(ee=0),a===0&&ee>0&&(ee-=2*Math.PI),a===1&&ee<0&&(ee+=2*Math.PI),[g,_,o,s,x,ee,l,a]}};Fr.prototype.className=`Path`,Fr.prototype._attrsAffectingSize=[`data`],ye(Fr,!0),N.addGetterSetter(Fr,`data`);var Ir=class extends Mr{_getStrokePadding(){return super._getStrokePadding(this.pointerAtBeginning()||this.pointerAtEnding()?this.miterLimit()||10:void 0)}_sceneFunc(e){super._sceneFunc(e);let t=this.points(),n=t.length;if(n<4)return;let r=this.pointerLength(),i=this.pointerWidth();this.pointerAtEnding()&&(e.save(),e.beginPath(),e.translate(t[n-2],t[n-1]),e.rotate(this._getPointerAngle(!1)),e.moveTo(0,0),e.lineTo(-r,i/2),e.lineTo(-r,-i/2),e.closePath(),e.restore(),this.__fillStroke(e)),this.pointerAtBeginning()&&(e.save(),e.beginPath(),e.translate(t[0],t[1]),e.rotate(this._getPointerAngle(!0)),e.moveTo(0,0),e.lineTo(-r,i/2),e.lineTo(-r,-i/2),e.closePath(),e.restore(),this.__fillStroke(e))}_getPointerAngle(e){let t=this.points(),n=t.length,r=this.tension()!==0&&n>4,i=r?this.getTensionPoints():t,a=e?t[0]:t[n-2],o=e?t[1]:t[n-1],s=0,c=0;if(r&&e)s=a-(i[0]+i[2])/2,c=o-(i[1]+i[3])/2;else if(r){let e=i[i.length-4],t=i[i.length-3],n=i[i.length-2],r=i[i.length-1],l=Fr.calcLength(e,t,`Q`,[n,r,a,o]),u=Fr.getPointOnQuadraticBezier(l?Math.max(0,1-this.pointerLength()/l):0,e,t,n,r,a,o);s=a-u.x,c=o-u.y}for(let t=e?0:i.length-2;!s&&!c&&t>=0&&t{this._requestDraw()},this.on(`imageChange.konva`,e=>{this._removeImageLoad(e.oldVal),this._setImageLoad()}),this._setImageLoad()}_setImageLoad(){var e;let t=this.image();t?.complete&&t.src||t?.readyState>=2||(e=t?.addEventListener)==null||e.call(t,`videoWidth`in t?`loadeddata`:`load`,this._loadListener)}_removeImageLoad(e){var t;(t=e?.removeEventListener)==null||t.call(e,`videoWidth`in e?`loadeddata`:`load`,this._loadListener)}destroy(){return this._removeImageLoad(this.image()),super.destroy(),this}_useBufferCanvas(e,t=this.getAbsoluteOpacity()){if(this.attrs.perfectDrawEnabled===!1)return!1;let n=!!this.cornerRadius(),r=this.hasShadow();return n&&r?!0:super._useBufferCanvas(!0,t)}_getStrokePadding(){return super._getStrokePadding(this.strokeScaleEnabled()?1:void 0)}_sceneFunc(e){let t=this.getWidth(),n=this.getHeight(),r=this.cornerRadius(),i=this.attrs.image;if((this.hasFill()||this.hasStroke()||r)&&(e.beginPath(),r?A.drawRoundedRectPath(e,t,n,r):e.rect(0,0,t,n),e.closePath(),e.fillStrokeShape(this)),i){r&&e.clip();let a=this.attrs.cropWidth,o=this.attrs.cropHeight;a&&o?e.drawImage(i,this.cropX(),this.cropY(),a,o,0,0,t,n):e.drawImage(i,0,0,t,n)}}_hitFunc(e){let t=this.width(),n=this.height(),r=this.cornerRadius();e.beginPath(),r?A.drawRoundedRectPath(e,t,n,r):e.rect(0,0,t,n),e.closePath(),e.fillStrokeShape(this)}getWidth(){let e=this.image();return this.attrs.width??e?.videoWidth??e?.width??0}getHeight(){let e=this.image();return this.attrs.height??e?.videoHeight??e?.height??0}static fromURL(t,n,r=null){let i=A.createImageElement();i.onload=()=>{i.onload=i.onerror=null,n(new e({image:i}))},i.onerror=r,i.crossOrigin=`Anonymous`,i.src=t}};zr.prototype.className=`Image`,zr.prototype._attrsAffectingSize=[`image`],ye(zr,!0),N.addGetterSetter(zr,`cornerRadius`,0,xt(4)),N.addGetterSetter(zr,`image`),N.addComponentsGetterSetter(zr,`crop`,[`x`,`y`,`width`,`height`]),N.addGetterSetter(zr,`cropX`,0,M()),N.addGetterSetter(zr,`cropY`,0,M()),N.addGetterSetter(zr,`cropWidth`,0,M()),N.addGetterSetter(zr,`cropHeight`,0,M());var Br=typeof Intl<`u`&&Intl.Segmenter?new Intl.Segmenter(void 0,{granularity:`grapheme`}):null;function Vr(e){return e/15}function Hr(e){return Br?Array.from(Br.segment(e),e=>e.segment):e.match(/\p{RI}\p{RI}|\P{M}(?:\p{M}|\p{Emoji_Modifier}|\uFE0F|\u200D\P{M})*|\p{M}+/gu)||[]}var Ur=`auto`,Wr=`center`,Gr=`inherit`,Kr=`justify`,qr=`Change.konva`,Jr=`2d`,Yr=`-`,Xr=`left`,Zr=`text`,Qr=`Text`,$r=`top`,ei=`bottom`,ti=`middle`,ni=`normal`,ri=`px `,ii=` `,ai=`right`,oi=`rtl`,si=`word`,ci=`char`,li=`none`,ui=`…`,di=[`direction`,`fontFamily`,`fontSize`,`fontStyle`,`fontVariant`,`padding`,`align`,`verticalAlign`,`lineHeight`,`text`,`width`,`height`,`wrap`,`ellipsis`,`letterSpacing`],fi=null;function pi(){if(fi!==null)return fi;fi=!1;let e;try{e=A.createCanvasElement(),e.width=10,e.height=10;let t=e.getContext(Jr);if(t){t.globalAlpha=0,t.shadowColor=`black`,t.shadowBlur=5,t.shadowOffsetX=5,t.shadowOffsetY=5,t.fillStyle=`black`,t.font=`10px Arial`,t.fillText(`X`,0,10);let e=t.getImageData(0,0,10,10).data;for(let t=3;t0){fi=!0;break}}}catch{}finally{e&&A.releaseCanvas(e)}return fi}function mi(e){return e.split(`,`).map(e=>{e=e.trim();let t=e.indexOf(` `)>=0,n=e.indexOf(`"`)>=0||e.indexOf(`'`)>=0;return t&&!n&&(e=`"${e}"`),e}).join(`, `)}var hi;function gi(){return hi||(hi=A.createCanvasElement().getContext(Jr),hi)}function _i(e){this._partialFillStyle&&e.setAttr(`fillStyle`,this._partialFillStyle),e.fillText(this._partialText,this._partialTextX,this._partialTextY)}function vi(e){e.setAttr(`miterLimit`,2),this._partialStrokeStyle&&e.setAttr(`strokeStyle`,this._partialStrokeStyle),e.strokeText(this._partialText,this._partialTextX,this._partialTextY)}function yi(e){return e||={},e.fill||e.fillLinearGradientColorStops||e.fillRadialGradientColorStops||e.fillPatternImage?e:{...e,fill:`black`}}var L=class extends I{constructor(e){super(yi(e)),this._partialTextX=0,this._partialTextY=0,this._baselineShift=0,this._setTextData()}_sceneFunc(e){let t=this.textArr,n=t.length;if(!this.text())return;let r=this.padding(),i=this.fontSize(),a=this.lineHeight()*i,o=this.direction(),s=this.align(),c=this.getWidth(),l=this.letterSpacing(),u=this.charRenderFunc(),d=this.textDecoration(),f=d.indexOf(`underline`)!==-1,p=d.indexOf(`line-through`)!==-1,m,h=a/2,g=ti;if(!D.legacyTextRendering){let e=this.measureSize(`M`);g=`alphabetic`,h=((e.fontBoundingBoxAscent??e.actualBoundingBoxAscent)-(e.fontBoundingBoxDescent??e.actualBoundingBoxDescent))/2+a/2}if(o===Gr?o=e.direction:e.setAttr(`direction`,o),e.setAttr(`font`,this._getContextFont()),e.setAttr(`textBaseline`,g),e.setAttr(`textAlign`,Xr),e.translate(r,this._getTextTop()),u){let t=e._getFillStyle(this);t!==void 0&&(e.fillStyle=t),this.hasStroke()&&e._applyStrokeStyle(this)}let _=u?e.fillStyle:void 0,v=u?e.strokeStyle:void 0,y=0;for(m=0;m1&&(h+=a)}}_getTextTop(){let e=this.padding(),t=this.getHeight()-this.textArr.length*this.lineHeight()*this.fontSize()-e*2,n=this.verticalAlign();return n===ti?e+t/2:n===ei?e+t:e}_getUnderlineOffset(){return this.underlineOffset()??Math.round(this.fontSize()/(D.legacyTextRendering?2:4))}getSelfRect(){let e=super.getSelfRect(),t=this.textArr.length;if(!t||this.textDecoration().indexOf(`underline`)===-1)return e;let n=this.fontSize(),r=this.lineHeight()*n,i=this._getTextTop()+t*r-r/2;return D.legacyTextRendering||(i+=this._baselineShift),i+=this._getUnderlineOffset()+Vr(n)/2,e.height=Math.max(e.y+e.height,i)-e.y,e}_getSelfRectForDrawing(){let e=this.getSelfRect(),t=this.fontSize(),n=this.padding(),r=this.lineHeight()*t,i=this.getWidth()-n*2,a=this.align(),o=this.textArr.length*r,s=this._getTextTop(),c=e.x,l=e.x+e.width;for(let{text:e,width:t}of this.textArr){let r=n+(a===ai?i-t:a===Wr?(i-t)/2:0),o=Math.min(0,this.letterSpacing())*e.length;c=Math.min(c,r+o),l=Math.max(l,r+t-o)}let u=this.textDecoration().includes(`underline`),d=Math.min(e.y,s+(u?Math.min(0,this._getUnderlineOffset()):0));return{x:c-t,y:d-t,width:l-c+t*2,height:Math.max(e.y+e.height,s+o)-d+t*2}}_hitFunc(e){let t=this.getWidth(),n=this.getHeight();e.beginPath(),e.rect(0,0,t,n),e.closePath(),e.fillStrokeShape(this)}setText(e){let t=A._isString(e)?e:e==null?``:e+``;return this._setAttr(Zr,t),this}getWidth(){return this.attrs.width===Ur||this.attrs.width===void 0?this.getTextWidth()+this.padding()*2:this.attrs.width}getHeight(){return this.attrs.height===Ur||this.attrs.height===void 0?this.fontSize()*this.textArr.length*this.lineHeight()+this.padding()*2:this.attrs.height}getTextWidth(){return this.textWidth}getTextHeight(){return A.warn(`text.getTextHeight() method is deprecated. Use text.height() - for full height and text.fontSize() - for one line height.`),this.textHeight}measureSize(e){let t=gi(),n=this.fontSize(),r;t.save(),t.font=this._getContextFont(),r=t.measureText(e),t.restore();let i=n/100;return{actualBoundingBoxAscent:r.actualBoundingBoxAscent??71.58203125*i,actualBoundingBoxDescent:r.actualBoundingBoxDescent??0,actualBoundingBoxLeft:r.actualBoundingBoxLeft??-7.421875*i,actualBoundingBoxRight:r.actualBoundingBoxRight??75.732421875*i,alphabeticBaseline:r.alphabeticBaseline??0,emHeightAscent:r.emHeightAscent??100*i,emHeightDescent:r.emHeightDescent??-20*i,fontBoundingBoxAscent:r.fontBoundingBoxAscent??91*i,fontBoundingBoxDescent:r.fontBoundingBoxDescent??21*i,hangingBaseline:r.hangingBaseline??72.80000305175781*i,ideographicBaseline:r.ideographicBaseline??-21*i,width:r.width,height:n}}_getContextFont(){return this.fontStyle()+ii+this.fontVariant()+ii+(this.fontSize()+ri)+mi(this.fontFamily())}_addTextLine(e){this.align()===Kr&&(e=e.trim());let t=this._getTextWidth(e);return this.textArr.push({text:e,width:t,lastInParagraph:!1})}_getTextWidth(e,t){let n=this.letterSpacing(),r=n?n*(t??Hr(e).length):0;return gi().measureText(e).width+r}_setTextData(){let e=this.text().split(` -`),t=+this.fontSize(),n=this.lineHeight()*t,r=this.attrs.width,i=this.attrs.height,a=r!==Ur&&r!==void 0,o=i!==Ur&&i!==void 0,s=this.padding(),c=r-s*2,l=i-s*2,u=0,d=this.wrap(),f=d!==ci&&d!==li,p=this.ellipsis(),m=this.measureSize(`M`);this._baselineShift=(m.fontBoundingBoxAscent-m.fontBoundingBoxDescent)/2,this.textArr=[];let h=gi();h.font=this._getContextFont(),h.fontKerning=this.direction()!==oi&&(this.letterSpacing()!==0||this.align()===Kr||this.charRenderFunc())?`none`:`auto`;let g=p?this._getTextWidth(ui):0;for(let t=0,r=e.length;tc){let e=Hr(i),a=e.length,d=0,m=t=>e.slice(d,t).join(``),h=e=>e===ii||e===Yr,_=Math.max(1,Math.ceil(a*c/s));for(;dl?g:0,s=e=>!(this._getTextWidth(m(e),e-d)+i>c),v=d,y=Math.min(a,d+_);for(;s(y)&&(v=y,y!==a);)y=Math.min(a,y+(y-d));for(;y-v>1;){let e=v+y>>>1;s(e)?v=e:y=e}if(v===d)break;if(v===a){this._addTextLine(m(a)),u+=n,o&&u+n>l&&t=d&&!h(e[t]);)t--;t>=d&&(v=t+1)}if(this._addTextLine(m(v).trimRight()),u+=n,this._shouldHandleEllipsis(u)){this._tryToAddEllipsisToLastLine();break}for(d=v;dl&&tl)break}this.textHeight=t,this.textWidth=this.textArr.reduce((e,t)=>Math.max(e,t.width),0)}_shouldHandleEllipsis(e){let t=+this.fontSize(),n=this.lineHeight()*t,r=this.attrs.height,i=r!==Ur&&r!==void 0,a=r-this.padding()*2;return this.wrap()===li||i&&e+n>a}_tryToAddEllipsisToLastLine(){let e=this.attrs.width,t=e!==Ur&&e!==void 0,n=e-this.padding()*2,r=this.ellipsis(),i=this.textArr[this.textArr.length-1];if(!i||!r)return;let a=i.text+ui;if(t){let e=Hr(i.text);for(;e.length&&this._getTextWidth(a)>n;)e.pop(),a=e.join(``)+ui;this._getTextWidth(a)>n&&(a=``)}i.text=a,i.width=this._getTextWidth(a)}getStrokeScaleEnabled(){return!0}_getStrokePadding(){return super._getStrokePadding(2)}_useBufferCanvas(e,t=this.getAbsoluteOpacity()){if(this.attrs.perfectDrawEnabled===!1)return!1;let n=this.textDecoration().indexOf(`underline`)!==-1||this.textDecoration().indexOf(`line-through`)!==-1,r=this.hasShadow();return n&&r||r&&t!==1&&pi()?!0:super._useBufferCanvas(e,t)}};L.prototype._fillFunc=_i,L.prototype._strokeFunc=vi,L.prototype.className=Qr,L.prototype._attrsAffectingSize=di.filter(e=>e!==`width`&&e!==`height`).concat([`textDecoration`,`underlineOffset`]),ye(L,!0),L.prototype.on(di.map(e=>e+qr).join(` `),function(){this._setTextData()}),N.overWriteSetter(L,`width`,St()),N.overWriteSetter(L,`height`,St()),N.addGetterSetter(L,`direction`,Gr),N.addGetterSetter(L,`fontFamily`,`Arial`),N.addGetterSetter(L,`fontSize`,12,M()),N.addGetterSetter(L,`fontStyle`,ni),N.addGetterSetter(L,`fontVariant`,ni),N.addGetterSetter(L,`padding`,0,M()),N.addGetterSetter(L,`align`,Xr),N.addGetterSetter(L,`verticalAlign`,$r),N.addGetterSetter(L,`lineHeight`,1,M()),N.addGetterSetter(L,`wrap`,si),N.addGetterSetter(L,`ellipsis`,!1,Et()),N.addGetterSetter(L,`letterSpacing`,0,M()),N.addGetterSetter(L,`text`,``,Ct()),N.addGetterSetter(L,`textDecoration`,``),N.addGetterSetter(L,`underlineOffset`,void 0,M()),N.addGetterSetter(L,`charRenderFunc`,void 0);var bi=[...L.prototype._attrsAffectingSize,`width`,`height`,`pointerDirection`,`pointerWidth`,`pointerHeight`].map(e=>e+`Change.konva`).join(` `),xi=`none`,Si=`up`,Ci=`right`,wi=`down`,Ti=`left`,Ei=class extends nr{constructor(e){super(e),this._sync=this._sync.bind(this),this.on(`add.konva`,function(e){e.child.off(bi,this._sync).on(bi,this._sync),this._sync()})}getText(){return this.find(`Text`)[0]}getTag(){return this.find(`Tag`)[0]}getWidth(){return this.getText().width()}getHeight(){return this.getText().height()}_sync(){let e=this.getText(),t=this.getTag(),n,r,i,a,o,s,c;if(e&&t){switch(n=e.width(),r=e.height(),i=t.pointerDirection(),a=t.pointerWidth(),c=t.pointerHeight(),o=0,s=0,i){case Si:o=n/2,s=-1*c;break;case Ci:o=n+a,s=r/2;break;case wi:o=n/2,s=r+c;break;case Ti:o=-1*a,s=r/2}t.setAttrs({x:-1*o,y:-1*s,width:n,height:r}),e.setAttrs({x:-1*o,y:-1*s})}}};Ei.prototype.className=`Label`,ye(Ei);var Di=class extends I{_sceneFunc(e){let t=this.width(),n=this.height(),r=this.pointerDirection(),i=this.pointerWidth(),a=this.pointerHeight(),o=this.cornerRadius(),[s,c,l,u]=A._cornerRadii(o,t,n);e.beginPath(),e.moveTo(s,0),r===Si&&(e.lineTo((t-i)/2,0),e.lineTo(t/2,-1*a),e.lineTo((t+i)/2,0)),e.lineTo(t-c,0),e.arc(t-c,c,c,Math.PI*3/2,0,!1),r===Ci&&(e.lineTo(t,(n-a)/2),e.lineTo(t+i,n/2),e.lineTo(t,(n+a)/2)),e.lineTo(t,n-l),e.arc(t-l,n-l,l,0,Math.PI/2,!1),r===wi&&(e.lineTo((t+i)/2,n),e.lineTo(t/2,n+a),e.lineTo((t-i)/2,n)),e.lineTo(u,n),e.arc(u,n-u,u,Math.PI/2,Math.PI,!1),r===Ti&&(e.lineTo(0,(n+a)/2),e.lineTo(-1*i,n/2),e.lineTo(0,(n-a)/2)),e.lineTo(0,s),e.arc(s,s,s,Math.PI,Math.PI*3/2,!1),e.closePath(),e.fillStrokeShape(this)}getSelfRect(){let e=this.pointerWidth(),t=this.pointerHeight(),n=this.pointerDirection(),r=this.width(),i=this.height();return n===Si||n===wi?{x:Math.min(0,(r-e)/2),y:n===Si?-t:0,width:Math.max(r,e),height:i+t}:n===Ti||n===Ci?{x:n===Ti?-e:0,y:Math.min(0,(i-t)/2),width:r+e,height:Math.max(i,t)}:{x:0,y:0,width:r,height:i}}};Di.prototype.className=`Tag`,ye(Di,!0),N.addGetterSetter(Di,`pointerDirection`,xi),N.addGetterSetter(Di,`pointerWidth`,0,M()),N.addGetterSetter(Di,`pointerHeight`,0,M()),N.addGetterSetter(Di,`cornerRadius`,0,xt(4));var Oi=class extends I{_getStrokePadding(){return super._getStrokePadding(this.strokeScaleEnabled()?1:void 0)}_sceneFunc(e){let t=this.cornerRadius(),n=this.width(),r=this.height();e.beginPath(),t?A.drawRoundedRectPath(e,n,r,t):e.rect(0,0,n,r),e.closePath(),e.fillStrokeShape(this)}};Oi.prototype.className=`Rect`,ye(Oi,!0),N.addGetterSetter(Oi,`cornerRadius`,0,xt(4));var ki=class extends I{_sceneFunc(e){let t=this._getPoints(),n=this.radius(),r=this.sides(),i=this.cornerRadius();if(t.length){if(e.beginPath(),i)A.drawRoundedPolygonPath(e,t,r,n,i);else{e.moveTo(t[0].x,t[0].y);for(let n=1;n{t=Math.min(t,e.x),n=Math.max(n,e.x),r=Math.min(r,e.y),i=Math.max(i,e.y)}),{x:t,y:r,width:n-t,height:i-r}}getWidth(){return this.radius()*2}getHeight(){return this.radius()*2}setWidth(e){this.radius(e/2)}setHeight(e){this.radius(e/2)}};ki.prototype.className=`RegularPolygon`,ki.prototype._centroid=!0,ki.prototype._attrsAffectingSize=[`radius`,`sides`],ye(ki,!0),N.addGetterSetter(ki,`radius`,0,M()),N.addGetterSetter(ki,`sides`,0,M()),N.addGetterSetter(ki,`cornerRadius`,0,xt(4));var Ai=Math.PI*2,ji=class extends I{_getStrokePadding(){return super._getStrokePadding(1)}_sceneFunc(e){let t=Math.abs(this.innerRadius()),n=Math.abs(this.outerRadius());e.beginPath(),e.arc(0,0,t,0,Ai,!1),e.moveTo(n,0),e.arc(0,0,n,Ai,0,!0),e.closePath(),e.fillStrokeShape(this)}getSelfRect(){let e=Math.max(Math.abs(this.innerRadius()),Math.abs(this.outerRadius()));return{x:-e,y:-e,width:e*2,height:e*2}}getWidth(){return Math.abs(this.outerRadius())*2}getHeight(){return Math.abs(this.outerRadius())*2}setWidth(e){this.outerRadius(e/2)}setHeight(e){this.outerRadius(e/2)}};ji.prototype.className=`Ring`,ji.prototype._centroid=!0,ji.prototype._attrsAffectingSize=[`innerRadius`,`outerRadius`],ye(ji,!0),N.addGetterSetter(ji,`innerRadius`,0,M()),N.addGetterSetter(ji,`outerRadius`,0,M());var Mi=class extends I{constructor(e){super(e),this._updated=!0,this.anim=new ir(()=>{let e=this._updated;return this._updated=!1,e}),this.on(`animationChange.konva`,function(){this.frameIndex(0)}),this.on(`frameIndexChange.konva`,function(){this._updated=!0}),this.on(`frameRateChange.konva`,function(){this.anim.isRunning()&&(clearInterval(this.interval),this._setInterval())})}_getFrame(){let e=this.animation(),t=this.animations()?.[e],n=this.frameIndex(),r=n*4;if(!t||!Number.isInteger(n)||r<0||r+4>t.length)return;let i=this.frameOffsets()?.[e]||[];return{x:t[r],y:t[r+1],width:t[r+2],height:t[r+3],offsetX:i[n*2]||0,offsetY:i[n*2+1]||0}}_getStrokePadding(){return super._getStrokePadding(this.strokeScaleEnabled()?1:void 0)}_sceneFunc(e){let t=this._getFrame();if(!t)return;let{x:n,y:r,width:i,height:a,offsetX:o,offsetY:s}=t,c=this.image();(this.hasFill()||this.hasStroke())&&(e.beginPath(),e.rect(o,s,i,a),e.closePath(),e.fillStrokeShape(this)),c&&e.drawImage(c,n,r,i,a,o,s,i,a)}_hitFunc(e){let{x:t,y:n,width:r,height:i}=this.getSelfRect();e.beginPath(),e.rect(t,n,r,i),e.closePath(),e.fillShape(this)}getSelfRect(){let e=this._getFrame();return e?{x:e.offsetX,y:e.offsetY,width:e.width,height:e.height}:{x:0,y:0,width:0,height:0}}_useBufferCanvas(e,t=this.getAbsoluteOpacity()){return super._useBufferCanvas(!0,t)}_setInterval(){let e=this;this.interval=setInterval(function(){e._updateIndex()},1e3/this.frameRate())}start(){if(this.isRunning())return;let e=this.getLayer();this.anim.setLayers(e),this._setInterval(),this.anim.start()}stop(){this.anim.stop(),clearInterval(this.interval)}destroy(){return this.stop(),super.destroy()}isRunning(){return this.anim.isRunning()}_updateIndex(){let e=this.frameIndex(),t=this.animations()?.[this.animation()],n=t?t.length/4:0;this.frameIndex(ethis.pathLength?null:Fr.getPointAtLengthOfDataArray(e,this.dataArray,t)}_readDataAttribute(){this.dataArray=Fr.parsePathData(this.attrs.data),this.pathLength=this._getTextPathLength()}_sceneFunc(e){e.setAttr(`font`,this._getContextFont()),e.setAttr(`textBaseline`,this.textBaseline()),e.setAttr(`textAlign`,`left`),e.save();let t=this.textDecoration(),n=this.fill(),r=this.fontSize(),i=this.glyphInfo,a=t.indexOf(`underline`)!==-1,o=t.indexOf(`line-through`)!==-1;a&&e.beginPath();for(let t=0;t=1){let n=t[0].p0;e.moveTo(n.x,n.y)}for(let n=0;n0)try{a=t(e[i-1],e[i])*this.fontSize()}catch{}n.push({char:e[i],width:this._getTextSize(e[i]).width,kern:a}),r+=n[i].width+a}let{width:i,height:a}=this._getTextSize(this.attrs.text);if(this.textWidth=r,this.textHeight=a,this.glyphInfo=[],!this.attrs.data)return null;let o=this.letterSpacing(),s=this.align(),c=s===`justify`?this.text().split(` `).length-1:0,l=Math.max(0,r-i),u=Math.max(this.textWidth+(e.length-1)*o,0),d=0;s===`center`&&(d=Math.max(0,this.pathLength/2-u/2)),s===`right`&&(d=Math.max(0,this.pathLength-u));let f=d,p=this.dataArray.some((e,t)=>t>0&&e.command===`M`)?void 0:{index:0,offset:0};for(let t=0;tthis.pathLength&&d-this.pathLength<=l?this.pathLength:d,p);if(!m)return;let h=Fr.getLineLength(r.x,r.y,m.x,m.y),g=Math.atan2(m.y-r.y,m.x-r.x);this.glyphInfo.push({text:e[t],rotation:g,p0:r,p1:m,width:h}),f+=a}}getSelfRect(){if(!this.glyphInfo.length)return{x:0,y:0,width:0,height:0};let e=[];this.glyphInfo.forEach(function(t){e.push(t.p0.x),e.push(t.p0.y),e.push(t.p1.x),e.push(t.p1.y)});let t=A._getPointsRect(e),n=this.fontSize();return{x:t.x-n/2,y:t.y-n/2,width:t.width+n,height:t.height+n}}getStrokeScaleEnabled(){return!0}_getSelfRectForDrawing(){let e=this.getSelfRect(),t=this.fontSize();return{x:e.x-t,y:e.y-t,width:e.width+t*2,height:e.height+t*2}}};Ri.prototype._fillFunc=Ii,Ri.prototype._strokeFunc=Li,Ri.prototype._fillFuncHit=Ii,Ri.prototype._strokeFuncHit=Li,Ri.prototype.className=`TextPath`,Ri.prototype._attrsAffectingSize=[`text`,`fontSize`,`data`,`align`,`letterSpacing`,`kerningFunc`,`fontFamily`,`fontStyle`,`fontVariant`,`direction`],ye(Ri,!0),Ri.prototype.on(`dataChange.konva`,function(){this._readDataAttribute(),this._setTextData()}),Ri.prototype.on(Ri.prototype._attrsAffectingSize.filter(e=>e!==`data`).map(e=>e+`Change.konva`).join(` `),function(){this._setTextData()}),N.addGetterSetter(Ri,`data`),N.addGetterSetter(Ri,`fontFamily`,`Arial`),N.addGetterSetter(Ri,`fontSize`,12,M()),N.addGetterSetter(Ri,`fontStyle`,Fi),N.addGetterSetter(Ri,`align`,`left`),N.addGetterSetter(Ri,`letterSpacing`,0,M()),N.addGetterSetter(Ri,`textBaseline`,`middle`),N.addGetterSetter(Ri,`fontVariant`,Fi),N.addGetterSetter(Ri,`text`,Pi),N.addGetterSetter(Ri,`textDecoration`,``),N.addGetterSetter(Ri,`kerningFunc`,void 0),N.addGetterSetter(Ri,`direction`,`inherit`);var zi=`tr-konva`,Bi=[`resizeEnabledChange`,`rotateAnchorOffsetChange`,`rotateAnchorAngleChange`,`rotateEnabledChange`,`rotateModeChange`,`enabledAnchorsChange`,`anchorSizeChange`,`borderEnabledChange`,`shouldOverdrawWholeAreaChange`,`borderStrokeChange`,`borderStrokeWidthChange`,`borderDashChange`,`anchorStrokeChange`,`anchorStrokeWidthChange`,`anchorFillChange`,`anchorCornerRadiusChange`,`ignoreStrokeChange`,`anchorStyleFuncChange`,`paddingChange`].map(e=>e+`.${zi}`).join(` `),Vi=`nodesRect`,Hi=[`widthChange`,`heightChange`,`scaleXChange`,`scaleYChange`,`skewXChange`,`skewYChange`,`rotationChange`,`offsetXChange`,`offsetYChange`,`transformsEnabledChange`,`strokeWidthChange`,`strokeChange`,`selfRectFuncChange`,`strokeLinearGradientColorStopsChange`,`strokeScaleEnabledChange`,`strokeEnabledChange`,`draggableChange`],Ui={"top-left":-45,"top-center":0,"top-right":45,"middle-right":-90,"middle-left":90,"bottom-left":-135,"bottom-center":180,"bottom-right":135},Wi=`ontouchstart`in D._global,Gi=[`rotater-top-left`,`rotater-top-right`,`rotater-bottom-left`,`rotater-bottom-right`];function Ki(e){return e.startsWith(`rotater`)}var qi=Math.PI/12;function Ji(e,t){let n=``;return`url("data:image/svg+xml,${encodeURIComponent(n)}") 12 12, ${t}`}function Yi(e,t,n){if(e===`rotater`)return n;if(Ki(e)){let r=e.slice(8);return Ji(Math.round(A.radToDeg(t)+Ui[r]-45),n)}t+=A.degToRad(Ui[e]||0);let r=(A.radToDeg(t)%360+360)%360;return A._inRange(r,337.5,360)||A._inRange(r,0,22.5)?`ns-resize`:A._inRange(r,22.5,67.5)?`nesw-resize`:A._inRange(r,67.5,112.5)?`ew-resize`:A._inRange(r,112.5,157.5)?`nwse-resize`:A._inRange(r,157.5,202.5)?`ns-resize`:A._inRange(r,202.5,247.5)?`nesw-resize`:A._inRange(r,247.5,292.5)?`ew-resize`:A._inRange(r,292.5,337.5)?`nwse-resize`:(A.error(`Transformer has unknown angle for cursor detection: `+r),`pointer`)}var Xi=[`top-left`,`top-center`,`top-right`,`middle-right`,`middle-left`,`bottom-left`,`bottom-center`,`bottom-right`];function Zi(e){return{x:e.x+e.width/2*Math.cos(e.rotation)+e.height/2*Math.sin(-e.rotation),y:e.y+e.height/2*Math.cos(e.rotation)+e.width/2*Math.sin(e.rotation)}}function Qi(e,t,n){let r=n.x+(e.x-n.x)*Math.cos(t)-(e.y-n.y)*Math.sin(t),i=n.y+(e.x-n.x)*Math.sin(t)+(e.y-n.y)*Math.cos(t);return{...e,rotation:e.rotation+t,x:r,y:i}}function $i(e,t){return Qi(e,t,Zi(e))}function ea(e,t,n){let r=t,i=n;for(let n=0;n0&&(c=Math.min(c,(n-s)/a)),i<0?c=Math.min(c,-o/i):i>0&&(c=Math.min(c,(t-o)/i));let l=o+i*c,u=s+a*c,d=e.rotateAnchorOffset()+e.padding();return{edgeX:l,edgeY:u,endX:l+i*d,endY:u+a*d}}var na=new Set,R=class extends nr{static _isLayerTransforming(e){for(let t of na)if(t.getLayer()===e||t._nodes.some(t=>t.getLayer()===e))return!0;return!1}constructor(e){super(e),this._movingAnchorName=null,this._anchors={},this._transforming=!1,this._fitting=!1,this._transformWindow=null,this._elementsCreated=!1,this._updatePending=!1,this._createElements(),this._handleMouseMove=this._handleMouseMove.bind(this),this._handleMouseUp=this._handleMouseUp.bind(this),this.update=this.update.bind(this),this._syncUpdate=this._syncUpdate.bind(this),this.on(Bi,e=>{e.type===`ignoreStrokeChange`&&this._resetTransformCache(),this.update()}),this.on(`rotationChange.${zi}`,()=>this._clearCache(Vi)),this.getNode()&&this.update()}attachTo(e){return this.setNode(e),this}setNode(e){return A.warn(`tr.setNode(shape), tr.node(shape) and tr.attachTo(shape) methods are deprecated. Please use tr.nodes(nodesArray) instead.`),this.setNodes([e])}getNode(){return this._nodes&&this._nodes[0]}_getEventNamespace(){return zi+this._id}setNodes(e=[]){this._nodes&&this._nodes.length&&this.detach();let t=new Set(e);for(let e of t)e.isAncestorOf(this)&&(A.error(`Konva.Transformer cannot be an a child of the node you are trying to attach`),t.delete(e));let n=Array.from(t).filter(e=>{for(let n=e.getParent();n;n=n.getParent())if(t.has(n))return!1;return!0});return this._nodes=e=n,this._resetRotation(),this._nodes.forEach(e=>{let t=()=>{var t;this._fitting?(t=this._nodeRectCache)==null||t.delete(e):(this.nodes().length===1&&this.useSingleNodeRotation()&&this.rotation(this.nodes()[0].getAbsoluteRotation()),this._resetTransformCache(e),this.isDragging()||this._scheduleUpdate())};if(e._attrsAffectingSize.length){let n=e._attrsAffectingSize.map(e=>e+`Change.`+this._getEventNamespace()).join(` `);e.on(n,t)}e.on(Hi.map(e=>e+`.${this._getEventNamespace()}`).join(` `),t),e.on(`absoluteTransformChange.${this._getEventNamespace()}`,t),e instanceof Jt&&e._addSubtreeObserver(this),e.on(`destroy.${this._getEventNamespace()}`,()=>{this._removeNode(e)}),this._proxyDrag(e)}),this._resetTransformCache(),this._elementsCreated&&this.update(),this}_proxyDrag(e){let t;e.on(`dragstart.${this._getEventNamespace()}`,n=>{t=e.getAbsolutePosition(),!this.isDragging()&&e!==this._back&&this.startDrag(n,!1)}),e.on(`dragmove.${this._getEventNamespace()}`,n=>{if(!t)return;let r=e.getAbsolutePosition(),i=r.x-t.x,a=r.y-t.y;this.nodes().forEach(t=>{if(t===e||t.isDragging())return;let r=t.getAbsolutePosition();t.setAbsolutePosition({x:r.x+i,y:r.y+a}),t.startDrag(n)}),t=null})}_detachNode(e){e.off(`.`+this._getEventNamespace()),e._removeSubtreeObserver(this)}_resetRotation(){let e=this._nodes.length===1&&this.useSingleNodeRotation();this.rotation(e?this._nodes[0].getAbsoluteRotation():0)}_removeNode(e){this._detachNode(e),this._nodes=this._nodes.filter(t=>t!==e),this._resetRotation(),this._resetTransformCache(e),this._scheduleUpdate()}getNodes(){return this._nodes||[]}getActiveAnchor(){return this._movingAnchorName}detach(){var e,t;(e=this._nodes)==null||e.forEach(e=>this._detachNode(e)),this._nodes=[],this._updatePending=!1,this._resetTransformCache(),(t=this.getLayer())==null||t.batchDraw()}_resetTransformCache(e){var t,n;e?(t=this._nodeRectCache)==null||t.delete(e):(n=this._nodeRectCache)==null||n.clear(),this._clearCache(Vi),this._clearCache(`transform`),this._clearSelfAndDescendantCache(`absoluteTransform`)}_onSubtreeChange(e){var t;this._fitting||((!this._updatePending||this._cache[Vi])&&this._resetTransformCache(e),P._updateBatchDepth>0?this._scheduleUpdate():this._updatePending||(this._updatePending=!0,A.requestAnimFrame(this._syncUpdate,this.getStage()?._getOwnerWindow()),(t=this.getLayer())==null||t.batchDraw()))}_syncUpdate(){this._updatePending&&!this._fitting&&!this.isDragging()&&this._update()}drawScene(e,t){return this._syncUpdate(),super.drawScene(e,t)}drawHit(e,t){return this._syncUpdate(),super.drawHit(e,t)}_getNodeRect(){return this._getCache(Vi,this.__getNodeRect)}__getNodeRect(){if(!this.getNode())return{x:-1e8,y:-1e8,width:0,height:0,rotation:0};let e=D.getAngle(this.rotation()),t=this.ignoreStroke(),n=new Se;n.rotate(-e);let r=this._nodeRectCache||=new Map,i=1/0,a=1/0,o=-1/0,s=-1/0;for(let c of this.nodes()){let l=c instanceof I&&c.getSelfRect===I.prototype.getSelfRect&&!c.attrs.selfRectFunc&&!c._hasCachedAncestor(),u=l?c.width():0,d=l?c.height():0;l&&(c._attrsVersion??=0);let f=l?r.get(c):void 0;if(!f||f.rotation!==e||f.ignoreStroke!==t||f.version!==c._attrsVersion||f.width!==u||f.height!==d){let i=c.getAbsoluteTransform(),[a,o,s,p]=i.getMatrix(),m=a*p-o*s===0,h=c.getClientRect({skipTransform:!m,skipShadow:!0,skipStroke:t}),g=[{x:h.x,y:h.y},{x:h.x+h.width,y:h.y},{x:h.x+h.width,y:h.y+h.height},{x:h.x,y:h.y+h.height}];m&&(i=new Se),f={rotation:e,ignoreStroke:t,width:u,height:d,version:c._attrsVersion||0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0};for(let e of g){let t=n.point(i.point(e));f.minX=Math.min(f.minX,t.x),f.minY=Math.min(f.minY,t.y),f.maxX=Math.max(f.maxX,t.x),f.maxY=Math.max(f.maxY,t.y)}l&&r.set(c,f)}i=Math.min(i,f.minX),a=Math.min(a,f.minY),o=Math.max(o,f.maxX),s=Math.max(s,f.maxY)}n.invert();let c=n.point({x:i,y:a});return{x:c.x,y:c.y,width:o-i,height:s-a,rotation:D.getAngle(this.rotation())}}getX(){return this._getNodeRect().x}getY(){return this._getNodeRect().y}getWidth(){return this._getNodeRect().width}getHeight(){return this._getNodeRect().height}_createElements(){this._createBack(),Gi.forEach(e=>{this._createAnchor(e,`_rotate-zone`).setAttrs({fill:`transparent`,strokeEnabled:!1,visible:!1})}),Xi.forEach(e=>{this._createAnchor(e)}),this._createAnchor(`rotater`),this._elementsCreated=!0}_createAnchor(e,t=`_anchor`){let n=new Oi({stroke:`rgb(0, 161, 255)`,fill:`white`,strokeWidth:1,name:e+` `+t,dragDistance:0,draggable:!0,hitStrokeWidth:Wi?10:`auto`});this._anchors[e]=n;let r=this;return n.on(`mousedown touchstart`,function(e){r._handleMouseDown(e)}),n.on(`dragstart`,e=>{n.stopDrag(),e.cancelBubble=!0}),n.on(`dragend`,e=>{e.cancelBubble=!0}),n.on(`mouseenter`,()=>{this.isTransforming()||(this._setAnchorCursor(e),this._cursorChange=!0)}),n.on(`mouseout`,()=>{this._cursorChange=!1,!this.isTransforming()&&n.getStage().content&&(n.getStage().content.style.cursor=``)}),this.add(n),n}_setAnchorCursor(e,t=D.getAngle(this.rotation())){let n=this.getStage()?.content;n&&(n.style.cursor=Yi(e,t,this.rotateAnchorCursor()))}_createBack(){let e=new I({name:`back`,width:0,height:0,sceneFunc(e,t){let n=t.getParent();if(!n.borderEnabled())return;let r=n.padding(),i=t.width(),a=t.height();if(e.beginPath(),e.rect(-r,-r,i+r*2,a+r*2),n.rotateEnabled()&&n.rotateLineVisible()&&n.rotateMode()!==`corners`){let t=ta(n,i,a);e.moveTo(t.edgeX,t.edgeY),e.lineTo(t.endX,t.endY)}e.fillStrokeShape(t)},hitFunc:(e,t)=>{if(!this.shouldOverdrawWholeArea())return;let n=this.padding();e.beginPath(),e.rect(-n,-n,t.width()+n*2,t.height()+n*2),e.fillStrokeShape(t)}});this._back=e,this.add(e),this._proxyDrag(e),e.on(`dragstart`,e=>{e.cancelBubble=!0}),e.on(`dragmove`,e=>{e.cancelBubble=!0}),e.on(`dragend`,e=>{e.cancelBubble=!0}),this.on(`dragmove`,e=>{this.update()})}_handleMouseDown(e){if(e.evt.button!==void 0&&!D.dragButtons.includes(e.evt.button)||this._transforming)return;this._movingAnchorName=e.target.name().split(` `)[0];let t=this._getNodeRect(),n=t.width,r=t.height,i=Math.sqrt(n**2+r**2);this.sin=Math.abs(r/i),this.cos=Math.abs(n/i);let a=this.getStage()?._getOwnerWindow();this._transformWindow=a||null,a&&(a.addEventListener(`mousemove`,this._handleMouseMove),a.addEventListener(`touchmove`,this._handleMouseMove),a.addEventListener(`mouseup`,this._handleMouseUp,!0),a.addEventListener(`touchend`,this._handleMouseUp,!0),a.addEventListener(`touchcancel`,this._handleMouseUp,!0)),this._transforming=!0,this._pointerId=e.pointerId??A._getFirstPointerId(e.evt);let o=e.target.getAbsolutePosition(),s=e.target.getStage()._getPointerById(this._pointerId);if(this._anchorDragOffset={x:s.x-o.x,y:s.y-o.y},Ki(this._movingAnchorName)){let e=Zi(t);this._rotateStart={pointerAngle:Math.atan2(s.y-e.y,s.x-e.x),rotation:t.rotation}}na.add(this),this._fire(`transformstart`,{evt:e.evt,target:this.getNode()}),this._nodes.forEach(t=>{t._fire(`transformstart`,{evt:e.evt,target:t})})}_handleMouseMove(e){var t;(t=this.getStage())==null||t._batchEvents(()=>this._moveTransform(e))}_moveTransform(e){this._syncUpdate();let t,n,r,i=this._anchors[this._movingAnchorName],a=i.getStage();a.setPointersPositions(e);let o=a._getPointerById(this._pointerId);if(!o)return;let s={x:o.x-this._anchorDragOffset.x,y:o.y-this._anchorDragOffset.y},c=i.getAbsolutePosition();this.anchorDragBoundFunc()&&(s=this.anchorDragBoundFunc()(c,s,e)),i.setAbsolutePosition(s);let l=i.getAbsolutePosition();if(c.x===l.x&&c.y===l.y)return;if(Ki(this._movingAnchorName)){let t=this._getNodeRect(),n=Zi(t),r=this._rotateStart,i={x:l.x+this._anchorDragOffset.x,y:l.y+this._anchorDragOffset.y},a=Math.atan2(i.y-n.y,i.x-n.x),o=r.rotation+a-r.pointerAngle,s;if(e.shiftKey&&this.shiftBehavior()!==`none`)s=Math.round(o/qi)*qi;else{let e=D.getAngle(this.rotationSnapTolerance());s=ea(this.rotationSnaps(),o,e)}this._movingAnchorName!==`rotater`&&this._setAnchorCursor(this._movingAnchorName,s);let c=$i(t,s-t.rotation);this._fitNodesInto(c,e);return}let u=this.shiftBehavior(),d;d=u===`inverted`?this.keepRatio()&&!e.shiftKey:u===`none`?this.keepRatio():this.keepRatio()||e.shiftKey;let f=this.centeredScaling()||e.altKey,p=!1;if(this._movingAnchorName===`top-left`){if(d){p=!0;let e=f?{x:this.width()/2,y:this.height()/2}:{x:this._anchors[`bottom-right`].x(),y:this._anchors[`bottom-right`].y()};r=Math.sqrt((e.x-i.x())**2+(e.y-i.y())**2);let a=this._anchors[`top-left`].x()>e.x?-1:1,o=this._anchors[`top-left`].y()>e.y?-1:1;t=r*this.cos*a,n=r*this.sin*o,this._anchors[`top-left`].x(e.x-t),this._anchors[`top-left`].y(e.y-n)}}else if(this._movingAnchorName===`top-center`)this._anchors[`top-left`].y(i.y());else if(this._movingAnchorName===`top-right`){if(d){p=!0;let e=f?{x:this.width()/2,y:this.height()/2}:{x:this._anchors[`bottom-left`].x(),y:this._anchors[`bottom-left`].y()};r=Math.sqrt((i.x()-e.x)**2+(e.y-i.y())**2);let a=this._anchors[`top-right`].x()e.y?-1:1;t=r*this.cos*a,n=r*this.sin*o,this._anchors[`top-right`].x(e.x+t),this._anchors[`top-right`].y(e.y-n)}var m=i.position();this._anchors[`top-left`].y(m.y),this._anchors[`bottom-right`].x(m.x)}else if(this._movingAnchorName===`middle-left`)this._anchors[`top-left`].x(i.x());else if(this._movingAnchorName===`middle-right`)this._anchors[`bottom-right`].x(i.x());else if(this._movingAnchorName===`bottom-left`){if(d){p=!0;let e=f?{x:this.width()/2,y:this.height()/2}:{x:this._anchors[`top-right`].x(),y:this._anchors[`top-right`].y()};r=Math.sqrt((e.x-i.x())**2+(i.y()-e.y)**2);let a=e.xe.id===this._pointerId))||(t?t._batchEvents(()=>this._removeEvents(e)):this._removeEvents(e))}getAbsoluteTransform(e){let t=this.getTransform();return e?e.getAbsoluteTransform().copy().invert().multiply(t):t}_removeEvents(e){var t;if(this._transforming){this._transforming=!1;let n=this.getStage()?.content;n&&!this._cursorChange&&(n.style.cursor=``);let r=this._transformWindow;this._transformWindow=null,r&&(r.removeEventListener(`mousemove`,this._handleMouseMove),r.removeEventListener(`touchmove`,this._handleMouseMove),r.removeEventListener(`mouseup`,this._handleMouseUp,!0),r.removeEventListener(`touchend`,this._handleMouseUp,!0),r.removeEventListener(`touchcancel`,this._handleMouseUp,!0));let i=this.getNode();na.delete(this),this._fire(`transformend`,{evt:e,target:i}),(t=this.getLayer())==null||t.batchDraw(),i&&this._nodes.forEach(t=>{var n;t._fire(`transformend`,{evt:e,target:t}),(n=t.getLayer())==null||n.batchDraw()}),this._movingAnchorName=null}}_fitNodesInto(e,t,n=!1){this._fitting=!0;try{return this._doFitNodesInto(e,t,n)}finally{this._fitting=!1}}_doFitNodesInto(e,t,n=!1){let r=this._getNodeRect();if(!r.width||!r.height||A._inRange(e.width,-this.padding()*2-1,1)||A._inRange(e.height,-this.padding()*2-1,1)){this.update();return}let i=new Se;i.rotate(D.getAngle(this.rotation()));let a=n?0:this.padding()*2,o=null,s=null;if(this._movingAnchorName&&e.width<0&&this._movingAnchorName.indexOf(`left`)>=0){let t=i.point({x:-a,y:0});e.x+=t.x,e.y+=t.y,e.width+=a,o={axis:`width`,from:`left`,to:`right`,offset:t}}else if(this._movingAnchorName&&e.width<0&&this._movingAnchorName.indexOf(`right`)>=0){let t=i.point({x:a,y:0});e.width+=a,o={axis:`width`,from:`right`,to:`left`,offset:t}}if(this._movingAnchorName&&e.height<0&&this._movingAnchorName.indexOf(`top`)>=0){let t=i.point({x:0,y:-a});e.x+=t.x,e.y+=t.y,e.height+=a,s={axis:`height`,from:`top`,to:`bottom`,offset:t}}else if(this._movingAnchorName&&e.height<0&&this._movingAnchorName.indexOf(`bottom`)>=0){let t=i.point({x:0,y:a});e.height+=a,s={axis:`height`,from:`bottom`,to:`top`,offset:t}}if(this.boundBoxFunc()){let t=this.boundBoxFunc()(r,e);t?e=t:A.warn(`boundBoxFunc returned falsy. You should return new bound rect from it!`)}for(let t of[o,s])t&&e[t.axis]<0&&this._movingAnchorName&&(this._movingAnchorName=this._movingAnchorName.replace(t.from,t.to),this._anchorDragOffset.x-=t.offset.x,this._anchorDragOffset.y-=t.offset.y);let c=1e7,l=new Se;l.translate(r.x,r.y),l.rotate(r.rotation),l.scale(r.width/c,r.height/c);let u=new Se,d=e.width/c,f=e.height/c;this.flipEnabled()===!1?(u.translate(e.x,e.y),u.rotate(e.rotation),u.translate(e.width<0?e.width:0,e.height<0?e.height:0),u.scale(Math.abs(d),Math.abs(f))):(u.translate(e.x,e.y),u.rotate(e.rotation),u.scale(d,f));let p=u.multiply(l.invert()),m=new Set;this._nodes.forEach(e=>{if(!e.getStage())return;let t=e.getParent().getAbsoluteTransform(),n=e.getTransform().copy();n.translate(e.offsetX(),e.offsetY());let r=new Se;r.multiply(t.copy().invert()).multiply(p).multiply(t).multiply(n);let i=r.decompose();e.setAttrs(i);let a=e.getLayer();a&&m.add(a)}),this.rotation(A._getRotation(e.rotation)),this._nodes.forEach(e=>{this._fire(`transform`,{evt:t,target:e}),e._fire(`transform`,{evt:t,target:e})}),this._resetTransformCache(),this.update(),m.add(this.getLayer()),m.forEach(e=>e&&e.batchDraw())}_scheduleUpdate(){this._updatePending=!0,P._runAfterUpdateBatch(this._syncUpdate)}forceUpdate(){this._resetTransformCache(),this.update()}update(){this._lastNodeRect=void 0,this._update()}_update(){var e;this._updatePending=!1;let t=this._getNodeRect();this._updateElements(t);let n=this.nodes().some(e=>e.draggable());this._back.draggable()!==n&&this._back.draggable(n);let r=this.anchorStyleFunc();r&&Object.values(this._anchors).forEach(e=>e.hasName(`_anchor`)&&r(e)),(e=this.getLayer())==null||e.batchDraw()}_updateElements(e){let t=this._lastNodeRect;if(t&&!this.anchorStyleFunc()&&e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height&&e.rotation===t.rotation)return;this._lastNodeRect={...e};let n=e.width,r=e.height,i=this.enabledAnchors(),a=this.resizeEnabled(),o=this.padding(),s=this.anchorSize();Object.values(this._anchors).filter(e=>e.hasName(`_anchor`)).forEach(e=>{e.setAttrs({width:s,height:s,offsetX:s/2,offsetY:s/2,stroke:this.anchorStroke(),strokeWidth:this.anchorStrokeWidth(),fill:this.anchorFill(),cornerRadius:this.anchorCornerRadius()})}),this._anchors[`top-left`].setAttrs({x:0,y:0,offsetX:s/2+o,offsetY:s/2+o,visible:a&&i.indexOf(`top-left`)>=0}),this._anchors[`top-center`].setAttrs({x:n/2,y:0,offsetY:s/2+o,visible:a&&i.indexOf(`top-center`)>=0}),this._anchors[`top-right`].setAttrs({x:n,y:0,offsetX:s/2-o,offsetY:s/2+o,visible:a&&i.indexOf(`top-right`)>=0}),this._anchors[`middle-left`].setAttrs({x:0,y:r/2,offsetX:s/2+o,visible:a&&i.indexOf(`middle-left`)>=0}),this._anchors[`middle-right`].setAttrs({x:n,y:r/2,offsetX:s/2-o,visible:a&&i.indexOf(`middle-right`)>=0}),this._anchors[`bottom-left`].setAttrs({x:0,y:r,offsetX:s/2+o,offsetY:s/2-o,visible:a&&i.indexOf(`bottom-left`)>=0}),this._anchors[`bottom-center`].setAttrs({x:n/2,y:r,offsetY:s/2-o,visible:a&&i.indexOf(`bottom-center`)>=0}),this._anchors[`bottom-right`].setAttrs({x:n,y:r,offsetX:s/2-o,offsetY:s/2-o,visible:a&&i.indexOf(`bottom-right`)>=0});let c=this.rotateMode(),l=ta(this,n,r);this._anchors.rotater.setAttrs({x:l.endX,y:l.endY,visible:this.rotateEnabled()&&c!==`corners`});let u=s*2,d=this.rotateEnabled()&&c!==`handle`,f=-o-u;Gi.forEach(e=>{this._anchors[e].setAttrs({x:e.includes(`left`)?f:n+o,y:e.includes(`top`)?f:r+o,width:u,height:u,visible:d})}),this._back.setAttrs({width:n,height:r,visible:this.borderEnabled()||this.shouldOverdrawWholeArea(),stroke:this.borderStroke(),strokeWidth:this.borderStrokeWidth(),dash:this.borderDash(),x:0,y:0})}isTransforming(){return this._transforming}stopTransform(){this._transforming&&this._removeEvents()}destroy(){return this.getStage()&&this._cursorChange&&this.getStage().content&&(this.getStage().content.style.cursor=``),nr.prototype.destroy.call(this),this.detach(),this._removeEvents(),this}add(...e){return this._elementsCreated?(A.error(`You cannot add external nodes to the Transformer. Use tr.nodes([node]) instead.`),this):super.add(...e)}toObject(){return P.prototype.toObject.call(this)}clone(e){return P.prototype.clone.call(this,e)}getClientRect(e){return this._syncUpdate(),this.nodes().length>0?super.getClientRect(e):{x:0,y:0,width:0,height:0}}};R.isTransforming=()=>na.size>0;function ra(e){return e instanceof Array||A.warn(`enabledAnchors value should be an array`),e instanceof Array&&e.forEach(function(e){Xi.indexOf(e)===-1&&A.warn(`Unknown anchor name: `+e+`. Available names are: `+Xi.join(`, `))}),e||[]}R.prototype.className=`Transformer`,ye(R),N.addGetterSetter(R,`enabledAnchors`,Xi,ra),N.addGetterSetter(R,`flipEnabled`,!0,Et()),N.addGetterSetter(R,`resizeEnabled`,!0),N.addGetterSetter(R,`anchorSize`,10,M()),N.addGetterSetter(R,`rotateEnabled`,!0),N.addGetterSetter(R,`rotateLineVisible`,!0),N.addGetterSetter(R,`rotationSnaps`,[]),N.addGetterSetter(R,`rotateAnchorOffset`,50,M()),N.addGetterSetter(R,`rotateAnchorAngle`,0,M()),N.addGetterSetter(R,`rotateAnchorCursor`,`crosshair`),N.addGetterSetter(R,`rotateMode`,`handle`),N.addGetterSetter(R,`rotationSnapTolerance`,5,M()),N.addGetterSetter(R,`borderEnabled`,!0),N.addGetterSetter(R,`anchorStroke`,`rgb(0, 161, 255)`),N.addGetterSetter(R,`anchorStrokeWidth`,1,M()),N.addGetterSetter(R,`anchorFill`,`white`),N.addGetterSetter(R,`anchorCornerRadius`,0,M()),N.addGetterSetter(R,`borderStroke`,`rgb(0, 161, 255)`),N.addGetterSetter(R,`borderStrokeWidth`,1,M()),N.addGetterSetter(R,`borderDash`),N.addGetterSetter(R,`keepRatio`,!0),N.addGetterSetter(R,`shiftBehavior`,`default`),N.addGetterSetter(R,`centeredScaling`,!1),N.addGetterSetter(R,`ignoreStroke`,!1),N.addGetterSetter(R,`padding`,0,M()),N.addGetterSetter(R,`nodes`),N.addGetterSetter(R,`node`),N.addGetterSetter(R,`boundBoxFunc`),N.addGetterSetter(R,`anchorDragBoundFunc`),N.addGetterSetter(R,`anchorStyleFunc`),N.addGetterSetter(R,`shouldOverdrawWholeArea`,!1),N.addGetterSetter(R,`useSingleNodeRotation`,!0),N.backCompat(R,{lineEnabled:`borderEnabled`,rotateHandlerOffset:`rotateAnchorOffset`,enabledHandlers:`enabledAnchors`});var ia=class extends I{_sceneFunc(e){e.beginPath(),e.arc(0,0,Math.abs(this.radius()),0,D.getAngle(this.angle()),this.clockwise()),e.lineTo(0,0),e.closePath(),e.fillStrokeShape(this)}getWidth(){return Math.abs(this.radius())*2}getHeight(){return Math.abs(this.radius())*2}setWidth(e){this.radius(e/2)}setHeight(e){this.radius(e/2)}};ia.prototype.className=`Wedge`,ia.prototype._centroid=!0,ia.prototype._attrsAffectingSize=[`radius`],ye(ia,!0),N.addGetterSetter(ia,`radius`,0,M()),N.addGetterSetter(ia,`angle`,0,M()),N.addGetterSetter(ia,`clockwise`,!1),N.backCompat(ia,{angleDeg:`angle`,getAngleDeg:`getAngle`,setAngleDeg:`setAngle`});function aa(){this.r=0,this.g=0,this.b=0,this.a=0,this.next=null}var z=[512,512,456,512,328,456,335,512,405,328,271,456,388,335,292,512,454,405,364,328,298,271,496,456,420,388,360,335,312,292,273,512,482,454,428,405,383,364,345,328,312,298,284,271,259,496,475,456,437,420,404,388,374,360,347,335,323,312,302,292,282,273,265,512,497,482,468,454,441,428,417,405,394,383,373,364,354,345,337,328,320,312,305,298,291,284,278,271,265,259,507,496,485,475,465,456,446,437,428,420,412,404,396,388,381,374,367,360,354,347,341,335,329,323,318,312,307,302,297,292,287,282,278,273,269,265,261,512,505,497,489,482,475,468,461,454,447,441,435,428,422,417,411,405,399,394,389,383,378,373,368,364,359,354,350,345,341,337,332,328,324,320,316,312,309,305,301,298,294,291,287,284,281,278,274,271,268,265,262,259,257,507,501,496,491,485,480,475,470,465,460,456,451,446,442,437,433,428,424,420,416,412,408,404,400,396,392,388,385,381,377,374,370,367,363,360,357,354,350,347,344,341,338,335,332,329,326,323,320,318,315,312,310,307,304,302,299,297,294,292,289,287,285,282,280,278,275,273,271,269,267,265,263,261,259],oa=[9,11,12,13,13,14,14,15,15,15,15,16,16,16,16,17,17,17,17,17,17,17,18,18,18,18,18,18,18,18,18,19,19,19,19,19,19,19,19,19,19,19,19,19,19,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24];function sa(e,t){return t===255?e:e*t/255}var ca=180;function la(e,t){let n=e.data,r=e.width,i=e.height,a,o,s,c,l,u,d,f,p,m,h,g,_,v,y,b,x,S,C,ee,te=t+t+1,ne=r-1,w=i-1,re=t+1,ie=re*(re+1)/2,ae=new aa,oe=t<=ca?z[t]/2**oa[t]:1/(re*re),se=null,T=ae,E=null,ce=null;for(let e=1;e0?(C=255/C,n[a]=Math.floor(c*oe)*C,n[a+1]=Math.floor(l*oe)*C,n[a+2]=Math.floor(u*oe)*C):n[a]=n[a+1]=n[a+2]=0,c-=f,l-=p,u-=m,d-=h,f-=E.r,p-=E.g,m-=E.b,h-=E.a,a=e+((a=t+re)0&&la(e,n)};N.addGetterSetter(P,`blurRadius`,0,M(),N.afterSetFilter);var da=function(e){let t=this.brightness()*255,n=e.data,r=n.length;for(let e=0;e255?255:i,a=a<0?0:a>255?255:a,o=o<0?0:o>255?255:o,n[e]=i,n[e+1]=a,n[e+2]=o};N.addGetterSetter(P,`contrast`,0,M(),N.afterSetFilter);var ma=function(e){let t=e.data,n=e.width,r=e.height,i=Math.min(1,Math.max(0,this.embossStrength?.call(this)??.5)),a=Math.min(1,Math.max(0,this.embossWhiteLevel?.call(this)??.5)),o={"top-left":315,top:270,"top-right":225,right:180,"bottom-right":135,bottom:90,"bottom-left":45,left:0}[this.embossDirection?.call(this)??`top-left`]??315,s=!!(this.embossBlend?.call(this)??!1),c=i*10,l=a*255,u=o*Math.PI/180,d=Math.cos(u),f=Math.sin(u),p=128/1020*c,m=new Float32Array(n*r);for(let e=0,n=0;ne<0?0:e>255?255:e;for(let e=0;ei&&(i=a),c=t[e+1],cs&&(s=c),d=t[e+2],du&&(u=d);i===r&&(i=255,r=0),s===o&&(s=255,o=0),u===l&&(u=255,l=0);let p,m,h,g,_,v;if(f>0)p=i+f*(255-i),m=r-f*(r-0),h=s+f*(255-s),g=o-f*(o-0),_=u+f*(255-u),v=l-f*(l-0);else{let e=(i+r)*.5;p=i+f*(i-e),m=r+f*(r-e);let t=(s+o)*.5;h=s+f*(s-t),g=o+f*(o-t);let n=(u+l)*.5;_=u+f*(u-n),v=l+f*(l-n)}for(let e=0;el?f:l;let p=o,m=a,h=360/m*Math.PI/180;for(let e=0;el?f:l;let p=o,m=a,h=n.polarRotation||0,g,_;for(u=0;ut&&(y=v,b=0,x=-1),i=0;i=0&&d=0&&f=0&&d=0&&f=1020?255:0}return o}function ja(e,t,n){let r=[1/9,1/9,1/9,1/9,1/9,1/9,1/9,1/9,1/9],i=Math.round(Math.sqrt(r.length)),a=Math.floor(i/2),o=[];for(let s=0;s=0&&d=0&&fMath.min(1,Math.max(0,e)),N.afterSetFilter),N.addGetterSetter(P,`threshold`,.5,M(),N.afterSetFilter),_r.Util._assign(_r,{Arc:vr,Arrow:Ir,Circle:Lr,Ellipse:Rr,Image:zr,Label:Ei,Tag:Di,Line:Mr,Path:Fr,Rect:Oi,RegularPolygon:ki,Ring:ji,Sprite:Mi,Star:Ni,Text:L,TextPath:Ri,Transformer:R,Wedge:ia,Filters:{Blur:ua,Brightness:fa,Brighten:da,Contrast:pa,Emboss:ma,Enhance:ga,Grayscale:_a,HSL:va,HSV:ya,Invert:ba,Kaleidoscope:Ca,Mask:function(e){let t=Da(e,this.attrs.threshold??10);return t&&(t=ka(t,e.width,e.height),t=Aa(t,e.width,e.height),t=ja(t,e.width,e.height),Oa(e,t)),e},Noise:function(e){let t=this.noise()*255,n=e.data,r=n.length,i=t/2;for(let e=0;e=128&&(t[e]=255-n,t[e+1]=255-r,t[e+2]=255-i)}return e},Threshold:function(e){let t=this.threshold()*255,n=e.data,r=n.length;for(let e=0;e{t.exports=function(e){function t(e,t,n,r){return new ao(e,t,n,r)}function n(){}function r(e){var t=`https://react.dev/errors/`+e;if(1kl||(e.current=Ol[kl],Ol[kl]=null,kl--)}function h(e,t){kl++,Ol[kl]=e.current,e.current=t}function g(e){return e>>>=0,e===0?32:31-(Ml(e)/Nl|0)|0}function _(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&-e;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function v(e,t,n){var r=e.pendingLanes;if(r===0)return 0;var i=0,a=e.suspendedLanes,o=e.pingedLanes;e=e.warmLanes;var s=r&134217727;return s===0?(s=r&~a,s===0?o===0?n||(n=r&~e,n!==0&&(i=_(n))):i=_(o):i=_(s)):(r=s&~a,r===0?(o&=s,o===0?n||(n=s&~e,n!==0&&(i=_(n))):i=_(o)):i=_(r)),i===0?0:t!==0&&t!==i&&(t&a)===0&&(a=i&-i,n=t&-t,a>=n||a===32&&n&4194048)?t:i}function y(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function b(e,t){t&8&&(t|=t&32);var n=e.entangledLanes;if(n!==0)for(e=e.entanglements,n&=t;0n;n++)t.push(e);return t}function ee(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function te(e,t,n,r,i,a){var o=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var s=e.entanglements,c=e.expirationTimes,l=e.hiddenUpdates;for(n=o&~n;0)`:-1i||c[r]!==l[i]){var u=` -`+c[r].replace(` at new `,` at `);return e.displayName&&u.includes(``)&&(u=u.replace(``,e.displayName)),u}while(1<=r&&0<=i);break}}}finally{nu=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:``)?le(n):``}function de(e,t){switch(e.tag){case 26:case 27:case 5:return le(e.type);case 16:return le(`Lazy`);case 13:return e.child!==t&&t!==null?le(`Suspense Fallback`):le(`Suspense`);case 19:return le(`SuspenseList`);case 0:case 15:return ue(e.type,!1);case 11:return ue(e.type.render,!1);case 1:return ue(e.type,!0);case 31:return le(`Activity`);case 30:return le(`ViewTransition`);default:return``}}function fe(e){try{var t=``,n=null;do t+=de(e,n),n=e,e=e.return;while(e);return t}catch(e){return` -Error generating stack: `+e.message+` -`+e.stack}}function pe(e,t){if(typeof e==`object`&&e){var n=ru.get(e);return n===void 0?(t={value:e,source:t,stack:fe(t)},ru.set(e,t),t):n}return{value:e,source:t,stack:fe(t)}}function me(e,t){iu[au++]=su,iu[au++]=ou,ou=e,su=t}function he(e,t,n){cu[lu++]=du,cu[lu++]=fu,cu[lu++]=uu,uu=e;var r=du;e=fu;var i=32-jl(r)-1;r&=~(1<>=o,i-=o,du=1<<32-jl(t)+i|n<f?(p=d,d=null):p=d.sibling;var _=h(t,d,o[f],c);if(_===null){d===null&&(d=p);break}e&&d&&_.alternate===null&&n(t,d),r=s(_,r,f),u===null?l=_:u.sibling=_,u=_,d=p}if(f===o.length)return i(t,d),W&&me(t,f),l;if(d===null){for(;fp?(_=f,f=null):_=f.sibling;var y=h(t,f,v.value,l);if(y===null){f===null&&(f=_);break}e&&f&&y.alternate===null&&n(t,f),o=s(y,o,p),d===null?u=y:d.sibling=y,d=y,f=_}if(v.done)return i(t,f),W&&me(t,p),u;if(f===null){for(;!v.done;p++,v=c.next())v=m(t,v.value,l),v!==null&&(o=s(v,o,p),d===null?u=v:d.sibling=v,d=v);return W&&me(t,p),u}for(f=a(f);!v.done;p++,v=c.next())v=g(f,t,p,v.value,l),v!==null&&(e&&(_=v.alternate,_!==null&&f.delete(_.key===null?p:_.key)),o=s(v,o,p),d===null?u=v:d.sibling=v,d=v);return e&&f.forEach(function(e){return n(t,e)}),W&&me(t,p),u}function y(e,t,a,s){if(typeof a==`object`&&a&&a.type===Oo&&a.key===null&&a.props.ref===void 0&&(a=a.props.children),typeof a==`object`&&a){switch(a.$$typeof){case Eo:a:{for(var u=a.key;t!==null;){if(t.key===u){if(u=a.type,u===Oo){if(t.tag===7){i(e,t.sibling),s=o(t,a.props.children),lt(s,a),s.return=e,e=s;break a}}else if(t.elementType===u||typeof u==`object`&&u&&u.$$typeof===Lo&&at(u)===t.type){i(e,t.sibling),s=o(t,a.props),lt(s,a),s.return=e,e=s;break a}i(e,t);break}n(e,t),t=t.sibling}a.type===Oo?(s=uo(a.props.children,e.mode,s,a.key),lt(s,a),s.return=e,e=s):(s=lo(a.type,a.key,a.props,null,e.mode,s),lt(s,a),s.return=e,e=s)}return c(e);case Do:a:{for(u=a.key;t!==null;){if(t.key===u){if(t.tag===4&&t.stateNode.containerInfo===a.containerInfo&&t.stateNode.implementation===a.implementation){i(e,t.sibling),s=o(t,a.children||[]),s.return=e,e=s;break a}i(e,t);break}n(e,t),t=t.sibling}s=mo(a,e.mode,s),s.return=e,e=s}return c(e);case Lo:return a=at(a),y(e,t,a,s)}if(Go(a))return _(e,t,a,s);if(l(a)){if(u=l(a),typeof u!=`function`)throw Error(r(150));return a=u.call(a),v(e,t,a,s)}if(typeof a.then==`function`)return y(e,t,ct(a),s);if(a.$$typeof===Mo)return y(e,t,Fe(e,a),s);ut(e,a)}return typeof a==`string`&&a!==``||typeof a==`number`||typeof a==`bigint`?(a=``+a,t!==null&&t.tag===6?(i(e,t.sibling),s=o(t,a),s.return=e,e=s):(i(e,t),s=fo(a,e.mode,s),s.return=e,e=s),c(e)):i(e,t)}return function(e,n,r,i){try{Ju=0;var a=y(e,n,r,i);return qu=null,a}catch(n){if(n===Hu||n===Wu)throw n;var o=t(29,n,null,e.mode);return o.lanes=i,o.return=e,o}}}function dt(){for(var e=Qu,t=$u=Qu=0;ta?a:8);var o=U.T,s={};s.types=o===null?null:o.types,U.T=s,Kn(e,!1,t,n);try{var c=i(),l=U.S;l!==null&&l(s,c),typeof c==`object`&&c&&typeof c.then==`function`?Gn(e,t,Qe(c,r),_a(e)):Gn(e,t,r,_a(e))}catch(n){Gn(e,t,{then:function(){},status:`rejected`,reason:n},_a())}finally{ms(a),o!==null&&s.types!==null&&(o.types=s.types),U.T=o}}function Rn(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:Ds,baseState:Ds,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:F,lastRenderedState:Ds},next:null};var n={};return t.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:F,lastRenderedState:n},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function zn(){return Pe(Os)}function Bn(){return Kt().memoizedState}function Vn(){return Kt().memoizedState}function Hn(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var n=_a();e=yt(n);var r=bt(t,e,n);r!==null&&(ba(r,t,n),M(r,t,n)),t={cache:Le()},e.payload=t;return}t=t.return}}function Un(e,t,n){var r=_a();n={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},qn(e)?Jn(t,n):(n=pt(e,t,n,r),n!==null&&(ba(n,e,r),I(n,t,r)))}function Wn(e,t,n){Gn(e,t,n,_a())}function Gn(e,t,n,r){var i={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(qn(e))Jn(t,i);else{var a=e.alternate;if(e.lanes===0&&(a===null||a.lanes===0)&&(a=t.lastRenderedReducer,a!==null))try{var o=t.lastRenderedState,s=a(o,n);if(i.hasEagerState=!0,i.eagerState=s,Zl(s,o))return ft(e,t,i,0),Jd===null&&dt(),!1}catch{}if(n=pt(e,t,i,r),n!==null)return ba(n,e,r),I(n,t,r),!0}return!1}function Kn(e,t,n,i){if(i={lane:2,revertLane:Ye(),gesture:null,action:i,hasEagerState:!1,eagerState:null,next:null},qn(e)){if(t)throw Error(r(479))}else t=pt(e,n,i,2),t!==null&&ba(t,e,2)}function qn(e){var t=e.alternate;return e===J||t!==null&&t===J}function Jn(e,t){cd=sd=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function I(e,t,n){if(n&4194048){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,w(e,n)}}function Yn(e,t,n,r){t=e.memoizedState,n=n(r,t),n=n==null?t:wo({},t,n),e.memoizedState=n,e.lanes===0&&(e.updateQueue.baseState=n)}function Xn(e,t,n,r,i,a,o){return e=e.stateNode,typeof e.shouldComponentUpdate==`function`?e.shouldComponentUpdate(r,a,o):t.prototype&&t.prototype.isPureReactComponent?!nt(n,r)||!nt(i,a):!0}function Zn(e,t,n,r){e=t.state,typeof t.componentWillReceiveProps==`function`&&t.componentWillReceiveProps(n,r),typeof t.UNSAFE_componentWillReceiveProps==`function`&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&vd.enqueueReplaceState(t,t.state,null)}function Qn(e,t){var n=t;if(`ref`in t)for(var r in n={},t)r!==`ref`&&(n[r]=t[r]);if(e=e.defaultProps)for(var i in n===t&&(n=wo({},n)),e)n[i]===void 0&&(n[i]=e[i]);return n}function $n(e,t){try{var n=e.onUncaughtError;n(t.value,{componentStack:t.stack})}catch(e){setTimeout(function(){throw e})}}function er(e,t,n){try{var r=e.onCaughtError;r(n.value,{componentStack:n.stack,errorBoundary:t.tag===1?t.stateNode:null})}catch(e){setTimeout(function(){throw e})}}function tr(e,t,n){return n=yt(n),n.tag=3,n.payload={element:null},n.callback=function(){$n(e,t)},n}function nr(e){return e=yt(e),e.tag=3,e}function rr(e,t,n,r){var i=n.type.getDerivedStateFromError;if(typeof i==`function`){var a=r.value;e.payload=function(){return i(a)},e.callback=function(){er(t,n,r)}}var o=n.stateNode;o!==null&&typeof o.componentDidCatch==`function`&&(e.callback=function(){er(t,n,r),typeof i!=`function`&&(hf===null?hf=new Set([this]):hf.add(this));var e=r.stack;this.componentDidCatch(r.value,{componentStack:e===null?``:e})})}function ir(e,t,n,i,a){if(n.flags|=32768,typeof i==`object`&&i&&typeof i.then==`function`){if(t=n.alternate,t!==null&&je(t,n,a,!0),n=K.current,n!==null){switch(n.tag){case 31:case 13:case 19:return q===null?Ma():n.alternate===null&&tf===0&&(tf=3),n.flags&=-257,n.flags|=65536,n.lanes=a,i===Gu?n.flags|=16384:(t=n.updateQueue,t===null?n.updateQueue=new Set([i]):t.add(i),$a(e,i,a)),!1;case 22:return n.flags|=65536,i===Gu?n.flags|=16384:(t=n.updateQueue,t===null?(t={transitions:null,markerInstances:null,retryQueue:new Set([i])},n.updateQueue=t):(n=t.retryQueue,n===null?t.retryQueue=new Set([i]):n.add(i)),$a(e,i,a)),!1}throw Error(r(435,n.tag))}return $a(e,i,a),Ma(),!1}if(W)return t=K.current,t===null?(i!==xu&&(t=Error(r(423),{cause:i}),Ee(pe(t,n))),e=e.current.alternate,e.flags|=65536,a&=-a,e.lanes|=a,i=pe(i,n),a=tr(e.stateNode,i,a),xt(e,a),tf!==4&&(tf=2)):(!(t.flags&65536)&&(t.flags|=256),t.flags|=65536,t.lanes=a,i!==xu&&(e=Error(r(422),{cause:i}),Ee(pe(e,n)))),!1;var o=Error(r(520),{cause:i});if(o=pe(o,n),cf===null?cf=[o]:cf.push(o),tf!==4&&(tf=2),t===null)return!0;i=pe(i,n),n=t;do{switch(n.tag){case 3:return n.flags|=65536,e=a&-a,n.lanes|=e,e=tr(n.stateNode,i,e),xt(n,e),!1;case 1:if(t=n.type,o=n.stateNode,!(n.flags&128)&&(typeof t.getDerivedStateFromError==`function`||o!==null&&typeof o.componentDidCatch==`function`&&(hf===null||!hf.has(o))))return n.flags|=65536,a&=-a,n.lanes|=a,a=nr(a),rr(a,e,n,i),xt(n,a),!1;break;case 22:if(n.memoizedState!==null)return n.flags|=65536,!1}n=n.return}while(n!==null);return!1}function ar(e,t,n,r){t.child=e===null?Xu(t,null,n,r):Yu(t,e.child,n,r)}function or(e,t,n,r,i){n=n.render;var a=t.ref;if(`ref`in r){var o={};for(var s in r)s!==`ref`&&(o[s]=r[s])}else o=r;return Ne(t),r=Rt(e,t,n,o,a,i),s=Ht(),e!==null&&!bd?(Ut(e,t,i),Nr(e,t,i)):(W&&s&&ge(t),t.flags|=1,ar(e,t,r,i),t.child)}function sr(e,t,n,r,i){if(e===null){var a=n.type;return typeof a==`function`&&!oo(a)&&a.defaultProps===void 0&&n.compare===null?(t.tag=15,t.type=a,cr(e,t,a,r,i)):(e=lo(n.type,null,r,t,t.mode,i),e.ref=t.ref,e.return=t,t.child=e)}if(a=e.child,!Pr(e,i)){var o=a.memoizedProps;if(n=n.compare,n=n===null?nt:n,n(o,r)&&e.ref===t.ref)return Nr(e,t,i)}return t.flags|=1,e=so(a,r),e.ref=t.ref,e.return=t,t.child=e}function cr(e,t,n,r,i){if(e!==null){var a=e.memoizedProps;if(nt(a,r)&&e.ref===t.ref){if(bd=!1,t.pendingProps=r=a,Pr(e,i))e.flags&131072&&(bd=!0);else return t.lanes=e.lanes,Nr(e,t,i)}}return gr(e,t,n,r,i)}function lr(e,t,n,r){var i=r.children,a=e===null?null:e.memoizedState;if(e===null&&t.stateNode===null&&(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),r.mode===`hidden`){if(t.flags&128){if(a=a===null?n:a.baseLanes|n,e!==null){for(r=t.child=e.child,i=0;r!==null;)i=i|r.lanes|r.childLanes,r=r.sibling;r=i&~a}else r=0,t.child=null;return dr(e,t,a,n,r)}if(n&536870912)t.memoizedState={baseLanes:0,cachePool:null},e!==null&&et(t,a===null?null:a.cachePool),a===null?Dt():Et(t,a),At(t);else return r=t.lanes=536870912,dr(e,t,a===null?n:a.baseLanes|n,n,r)}else a===null?(e!==null&&et(t,null),Dt(),jt()):(et(t,a.cachePool),Et(t,a),jt(),t.memoizedState=null);return ar(e,t,i,n),t.child}function ur(e,t){return e!==null&&e.tag===22||t.stateNode!==null||(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),t.sibling}function dr(e,t,n,r,i){var a=$e();return a=a===null?null:{parent:cs?Ou._currentValue:Ou._currentValue2,pool:a},t.memoizedState={baseLanes:n,cachePool:a},e!==null&&et(t,null),Dt(),At(t),e!==null&&je(e,t,r,!0),t.childLanes=i,null}function fr(e,t){return t=wr({mode:t.mode,children:t.children},e.mode),t.ref=e.ref,e.child=t,t.return=e,t}function pr(e,t,n){return Yu(t,e.child,null,n),e=fr(t,t.pendingProps),e.flags|=2,Mt(t),t.memoizedState=null,e}function mr(e,t,n){var i=t.pendingProps,a=!!(t.flags&128);if(t.flags&=-129,e===null){if(W){if(i.mode===`hidden`)return e=fr(t,i),t.lanes=536870912,e.memoizedState={baseLanes:0,cachePool:null},ur(null,e);if(N(t),(e=vu)?(e=Vc(e,bu),e!==null&&(t.memoizedState={dehydrated:e,treeContext:uu===null?null:{id:du,overflow:fu},retryLane:536870912,hydrationErrors:null},n=po(e),n.return=t,t.child=n,_u=t,vu=null)):e=null,e===null)throw Se(t);return t.lanes=536870912,null}return fr(t,i)}var o=e.memoizedState;if(o!==null){var s=o.dehydrated;if(N(t),a){if(t.flags&256)t.flags&=-257,t=pr(e,t,n);else if(t.memoizedState!==null)t.child=e.child,t.flags|=128,t=null;else throw Error(r(558))}else if(bd||je(e,t,n,!1),a=(n&e.childLanes)!==0,bd||a){if(nd.current===null){if(i=Jd,i!==null&&(s=re(i,n),s!==0&&s!==o.retryLane))throw o.retryLane=s,mt(e,s),ba(i,e,s),yd;Ma()}t=pr(e,t,n)}else e=o.treeContext,ds&&(vu=Ic(s),_u=t,W=!0,yu=null,bu=!1,e!==null&&D(t,e)),t=fr(t,i),t.flags|=134221824;return t}return e=so(e.child,{mode:i.mode,children:i.children}),e.ref=t.ref,t.child=e,e.return=t,e}function hr(e,t){var n=t.ref;if(n===null)e!==null&&e.ref!==null&&(t.flags|=4194816);else{if(typeof n!=`function`&&typeof n!=`object`)throw Error(r(284));(e===null||e.ref!==n)&&(t.flags|=4194816)}}function gr(e,t,n,r,i){return Ne(t),n=Rt(e,t,n,r,void 0,i),r=Ht(),e!==null&&!bd?(Ut(e,t,i),Nr(e,t,i)):(W&&r&&ge(t),t.flags|=1,ar(e,t,n,i),t.child)}function _r(e,t,n,r,i,a){return Ne(t),t.updateQueue=null,n=Bt(t,r,n,i),zt(e),r=Ht(),e!==null&&!bd?(Ut(e,t,a),Nr(e,t,a)):(W&&r&&ge(t),t.flags|=1,ar(e,t,n,a),t.child)}function vr(e,t,n,r,i){if(Ne(t),t.stateNode===null){var a=Al,o=n.contextType;typeof o==`object`&&o&&(a=Pe(o)),a=new n(r,a),t.memoizedState=a.state!==null&&a.state!==void 0?a.state:null,a.updater=vd,t.stateNode=a,a._reactInternals=t,a=t.stateNode,a.props=r,a.state=t.memoizedState,a.refs={},_t(t),o=n.contextType,a.context=typeof o==`object`&&o?Pe(o):Al,a.state=t.memoizedState,o=n.getDerivedStateFromProps,typeof o==`function`&&(Yn(t,n,o,r),a.state=t.memoizedState),typeof n.getDerivedStateFromProps==`function`||typeof a.getSnapshotBeforeUpdate==`function`||typeof a.UNSAFE_componentWillMount!=`function`&&typeof a.componentWillMount!=`function`||(o=a.state,typeof a.componentWillMount==`function`&&a.componentWillMount(),typeof a.UNSAFE_componentWillMount==`function`&&a.UNSAFE_componentWillMount(),o!==a.state&&vd.enqueueReplaceState(a,a.state,null),Ct(t,r,a,i),St(),a.state=t.memoizedState),typeof a.componentDidMount==`function`&&(t.flags|=4194308),r=!0}else if(e===null){a=t.stateNode;var s=t.memoizedProps,c=Qn(n,s);a.props=c;var l=a.context,u=n.contextType;o=Al,typeof u==`object`&&u&&(o=Pe(u));var d=n.getDerivedStateFromProps;u=typeof d==`function`||typeof a.getSnapshotBeforeUpdate==`function`,s=t.pendingProps!==s,u||typeof a.UNSAFE_componentWillReceiveProps!=`function`&&typeof a.componentWillReceiveProps!=`function`||(s||l!==o)&&Zn(t,a,r,o),ed=!1;var f=t.memoizedState;a.state=f,Ct(t,r,a,i),St(),l=t.memoizedState,s||f!==l||ed?(typeof d==`function`&&(Yn(t,n,d,r),l=t.memoizedState),(c=ed||Xn(t,n,c,r,f,l,o))?(u||typeof a.UNSAFE_componentWillMount!=`function`&&typeof a.componentWillMount!=`function`||(typeof a.componentWillMount==`function`&&a.componentWillMount(),typeof a.UNSAFE_componentWillMount==`function`&&a.UNSAFE_componentWillMount()),typeof a.componentDidMount==`function`&&(t.flags|=4194308)):(typeof a.componentDidMount==`function`&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=l),a.props=r,a.state=l,a.context=o,r=c):(typeof a.componentDidMount==`function`&&(t.flags|=4194308),r=!1)}else{a=t.stateNode,vt(e,t),o=t.memoizedProps,u=Qn(n,o),a.props=u,d=t.pendingProps,f=a.context,l=n.contextType,c=Al,typeof l==`object`&&l&&(c=Pe(l)),s=n.getDerivedStateFromProps,(l=typeof s==`function`||typeof a.getSnapshotBeforeUpdate==`function`)||typeof a.UNSAFE_componentWillReceiveProps!=`function`&&typeof a.componentWillReceiveProps!=`function`||(o!==d||f!==c)&&Zn(t,a,r,c),ed=!1,f=t.memoizedState,a.state=f,Ct(t,r,a,i),St();var p=t.memoizedState;o!==d||f!==p||ed||e!==null&&e.dependencies!==null&&Me(e.dependencies)?(typeof s==`function`&&(Yn(t,n,s,r),p=t.memoizedState),(u=ed||Xn(t,n,u,r,f,p,c)||e!==null&&e.dependencies!==null&&Me(e.dependencies))?(l||typeof a.UNSAFE_componentWillUpdate!=`function`&&typeof a.componentWillUpdate!=`function`||(typeof a.componentWillUpdate==`function`&&a.componentWillUpdate(r,p,c),typeof a.UNSAFE_componentWillUpdate==`function`&&a.UNSAFE_componentWillUpdate(r,p,c)),typeof a.componentDidUpdate==`function`&&(t.flags|=4),typeof a.getSnapshotBeforeUpdate==`function`&&(t.flags|=1024)):(typeof a.componentDidUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),typeof a.getSnapshotBeforeUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=p),a.props=r,a.state=p,a.context=c,r=u):(typeof a.componentDidUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),typeof a.getSnapshotBeforeUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=1024),r=!1)}return a=r,hr(e,t),r=!!(t.flags&128),a||r?(a=t.stateNode,n=r&&typeof n.getDerivedStateFromError!=`function`?null:a.render(),t.flags|=1,e!==null&&r?(t.child=Yu(t,e.child,null,i),t.child=Yu(t,null,n,i)):ar(e,t,n,i),t.memoizedState=a.state,e=t.child):e=Nr(e,t,i),e}function yr(e,t,n,r){return we(),t.flags|=256,ar(e,t,n,r),t.child}function br(e){return{baseLanes:e,cachePool:tt()}}function xr(e,t,n){return e=e===null?0:e.childLanes&~n,t&&(e|=of),e}function Sr(e,t,n){var r=t.pendingProps,i=!1,a=!!(t.flags&128),o;if((o=a)||(o=e!==null&&e.memoizedState===null?!1:!!(rd.current&2)),o&&(i=!0,t.flags&=-129),o=!!(t.flags&32),t.flags&=-33,e===null){if(W){if(i?kt(t):jt(),(e=vu)?(e=Hc(e,bu),e!==null&&(t.memoizedState={dehydrated:e,treeContext:uu===null?null:{id:du,overflow:fu},retryLane:536870912,hydrationErrors:null},n=po(e),n.return=t,t.child=n,_u=t,vu=null)):e=null,e===null)throw Se(t);return t.lanes=Dc(e)?32:536870912,null}return a=r.children,r=r.fallback,i?(jt(),i=t.mode,a=wr({mode:`hidden`,children:a},i),r=uo(r,i,n,null),a.return=t,r.return=t,a.sibling=r,t.child=a,r=t.child,r.memoizedState=br(n),r.childLanes=xr(e,o,n),t.memoizedState=xd,ur(null,r)):(kt(t),Cr(t,a))}var s=e.memoizedState;if(s!==null){var c=s.dehydrated;if(c!==null)return Er(e,t,a,o,r,c,s,n)}return i?(jt(),i=r.fallback,a=t.mode,s=e.child,c=s.sibling,r=so(s,{mode:`hidden`,children:r.children}),r.subtreeFlags=s.subtreeFlags&1206910976,c===null?(i=uo(i,a,n,null),i.flags|=2):i=so(c,i),i.return=t,r.return=t,r.sibling=i,t.child=r,ur(null,r),r=t.child,i=e.child.memoizedState,i===null?i=br(n):(a=i.cachePool,a===null?a=tt():(s=cs?Ou._currentValue:Ou._currentValue2,a=a.parent===s?a:{parent:s,pool:s}),i={baseLanes:i.baseLanes|n,cachePool:a}),r.memoizedState=i,r.childLanes=xr(e,o,n),t.memoizedState=xd,ur(e.child,r)):(kt(t),n=e.child,e=n.sibling,n=so(n,{mode:`visible`,children:r.children}),n.return=t,n.sibling=null,e!==null&&(o=t.deletions,o===null?(t.deletions=[e],t.flags|=16):o.push(e)),t.child=n,t.memoizedState=null,n)}function Cr(e,t){return t=wr({mode:`visible`,children:t},e.mode),t.return=e,e.child=t}function wr(e,n){return e=t(22,e,null,n),e.lanes=0,e}function Tr(e,t,n){return Yu(t,e.child,null,n),e=Cr(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function Er(e,t,n,i,a,o,s,c){if(n)return t.flags&256?(kt(t),t.flags&=-257,Tr(e,t,c)):t.memoizedState===null?(jt(),o=a.fallback,s=t.mode,a=wr({mode:`visible`,children:a.children},s),o=uo(o,s,c,null),o.flags|=2,a.return=t,o.return=t,a.sibling=o,t.child=a,Yu(t,e.child,null,c),a=t.child,a.memoizedState=br(c),a.childLanes=xr(e,i,c),t.memoizedState=xd,ur(null,a)):(jt(),t.child=e.child,t.flags|=128,null);if(kt(t),Dc(o))return i=Oc(o).digest,i!==``&&(a=Error(r(419)),a.stack=``,a.digest=i,Ee({value:a,source:null,stack:null})),Tr(e,t,c);if(bd||je(e,t,c,!1),i=(c&e.childLanes)!==0,bd||i){if(nd.current!==null)return Tr(e,t,c);if(i=Jd,i!==null&&(a=re(i,c),a!==0&&a!==s.retryLane))throw s.retryLane=a,mt(e,a),ba(i,e,a),yd;return Ec(o)||Ma(),Tr(e,t,c)}return Ec(o)?(t.flags|=192,t.child=e.child,null):(e=s.treeContext,ds&&(vu=Lc(o),_u=t,W=!0,yu=null,bu=!1,e!==null&&D(t,e)),t=Cr(t,a.children),t.flags|=134221824,t)}function Dr(e,t,n){e.lanes|=t;var r=e.alternate;r!==null&&(r.lanes|=t),ke(e.return,t,n)}function Or(e){for(var t=null;e!==null;){var n=e.alternate;n!==null&&Ft(n)===null&&(t=e),e=e.sibling}return t}function kr(e,t,n,r,i,a){var o=e.memoizedState;o===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:i,treeForkCount:a}:(o.isBackwards=t,o.rendering=null,o.renderingStartTime=0,o.last=r,o.tail=n,o.tailMode=i,o.treeForkCount=a)}function Ar(e){var t=e.child;for(e.child=null;t!==null;){var n=t.sibling;t.sibling=e.child,e.child=t,t=n}}function jr(e,t,n){var r=t.pendingProps,i=r.revealOrder,a=r.tail;r=r.children;var o=rd.current;if(t.flags&128)return Nt(t,o),null;var s=!!(o&2);if(s?(o=o&1|2,t.flags|=128):o&=1,Nt(t,o),i===`backwards`&&e!==null?(Ar(e),ar(e,t,r,n),Ar(e)):ar(e,t,r,n),r=W?su:0,!s&&e!==null&&e.flags&128)a:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&Dr(e,n,t);else if(e.tag===19)Dr(e,n,t);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break a;for(;e.sibling===null;){if(e.return===null||e.return===t)break a;e=e.return}e.sibling.return=e.return,e=e.sibling}switch(i){case`backwards`:n=Or(t.child),n===null?(i=t.child,t.child=null):(i=n.sibling,n.sibling=null,Ar(t)),kr(t,!0,i,null,a,r);break;case`unstable_legacy-backwards`:for(n=null,i=t.child,t.child=null;i!==null;){if(e=i.alternate,e!==null&&Ft(e)===null){t.child=i;break}e=i.sibling,i.sibling=n,n=i,i=e}kr(t,!0,n,null,a,r);break;case`together`:kr(t,!1,null,null,void 0,r);break;case`independent`:t.memoizedState=null;break;default:n=Or(t.child),n===null?(i=t.child,t.child=null):(i=n.sibling,n.sibling=null),kr(t,!1,i,n,a,r)}return t.child}function Mr(e,t,n){var r=t.pendingProps;return De(t,t.type,r.value),ar(e,t,r.children,n),t.child}function Nr(e,t,n){if(e!==null&&(t.dependencies=e.dependencies),nf|=t.lanes,(n&t.childLanes)===0){if(e!==null){if(je(e,t,n,!1),(n&t.childLanes)===0)return null}else return null}if(e!==null&&t.child!==e.child)throw Error(r(153));if(t.child!==null){for(e=t.child,n=so(e,e.pendingProps),t.child=n,n.return=t;e.sibling!==null;)e=e.sibling,n=n.sibling=so(e,e.pendingProps),n.return=t;n.sibling=null}return t.child}function Pr(e,t){return(e.lanes&t)!==0||(e=e.dependencies,!!(e!==null&&Me(e)))}function Fr(e,t,n){switch(t.tag){case 3:ve(t,t.stateNode.containerInfo),De(t,Ou,e.memoizedState.cache),we();break;case 27:case 5:be(t);break;case 4:ve(t,t.stateNode.containerInfo);break;case 10:De(t,t.type,t.memoizedProps.value);break;case 31:if(t.memoizedState!==null)return t.flags|=128,N(t),null;break;case 13:var r=t.memoizedState;if(r!==null){if(r.dehydrated!==null)return kt(t),t.flags|=128,null;r=je(e,t,n,!1);var i=t.child.childLanes;return r||(n&i)!==0?Sr(e,t,n):(kt(t),e=Nr(e,t,n),e===null?null:e.sibling)}kt(t);break;case 19:if(t.flags&128)return jr(e,t,n);if(i=!!(e.flags&128),r=(n&t.childLanes)!==0,r||=(je(e,t,n,!1),(n&t.childLanes)!==0),i){if(r)return jr(e,t,n);t.flags|=128}if(i=t.memoizedState,i!==null&&(i.rendering=null,i.tail=null,i.lastEffect=null),Nt(t,rd.current),r)break;return null;case 22:return t.lanes=0,lr(e,t,n,t.pendingProps);case 24:De(t,Ou,e.memoizedState.cache)}return Nr(e,t,n)}function Ir(e,t,n){if(e!==null){if(e.memoizedProps!==t.pendingProps)bd=!0;else{if(!Pr(e,n)&&!(t.flags&128))return bd=!1,Fr(e,t,n);bd=!!(e.flags&131072)}}else bd=!1,W&&t.flags&1048576&&he(t,su,t.index);switch(t.lanes=0,t.tag){case 16:a:{var i=t.pendingProps;if(e=at(t.elementType),t.type=e,typeof e==`function`)oo(e)?(i=Qn(e,i),t.tag=1,t=vr(null,t,e,i,n)):(t.tag=0,t=gr(null,t,e,i,n));else{if(e!=null){var a=e.$$typeof;if(a===No){t.tag=11,t=or(null,t,e,i,n);break a}if(a===Io){t.tag=14,t=sr(null,t,e,i,n);break a}if(a===Mo){t.tag=10,t.type=e,t=Mr(null,t,n);break a}}throw t=u(e)||e,Error(r(306,t,``))}}return t;case 0:return gr(e,t,t.type,t.pendingProps,n);case 1:return i=t.type,a=Qn(i,t.pendingProps),vr(e,t,i,a,n);case 3:a:{if(ve(t,t.stateNode.containerInfo),e===null)throw Error(r(387));var o=t.pendingProps;a=t.memoizedState,i=a.element,vt(e,t),Ct(t,o,null,n);var s=t.memoizedState;if(o=s.cache,De(t,Ou,o),o!==a.cache&&Ae(t,[Ou],n,!0),St(),o=s.element,ds&&a.isDehydrated){if(a={element:o,isDehydrated:!1,cache:s.cache},t.updateQueue.baseState=a,t.memoizedState=a,t.flags&256){t=yr(e,t,o,n);break a}if(o!==i){i=pe(Error(r(424)),t),Ee(i),t=yr(e,t,o,n);break a}for(ds&&(vu=Fc(t.stateNode.containerInfo),_u=t,W=!0,yu=null,bu=!0),n=Xu(t,null,o,n),t.child=n;n;)n.flags=n.flags&-3|134221824,n=n.sibling}else{if(we(),o===i){t=Nr(e,t,n);break a}ar(e,t,o,n)}t=t.child}return t;case 26:if(cl)return hr(e,t),e===null?(n=dl(t.type,null,t.pendingProps,null))?t.memoizedState=n:W||(t.stateNode=_l(t.type,t.pendingProps,hu.current,t)):t.memoizedState=dl(t.type,e.memoizedProps,t.pendingProps,e.memoizedState),null;case 27:if(Sl)return be(t),e===null&&Sl&&W&&(i=t.stateNode=Cl(t.type,t.pendingProps,hu.current,pu.current,!1),_u=t,bu=!0,vu=Rc(t.type,i,vu)),ar(e,t,t.pendingProps.children,n),hr(e,t),e===null&&(t.flags|=4194304),t.child;case 5:return e===null&&W&&(ol(t.type,t.pendingProps,pu.current),(a=i=vu)&&(i=zc(i,t.type,t.pendingProps,bu),i===null?a=!1:(t.stateNode=i,_u=t,vu=Pc(i),bu=!1,a=!0)),a||Se(t)),be(t),a=t.type,o=t.pendingProps,s=e===null?null:e.memoizedProps,i=o.children,rs(a,o)?i=null:s!==null&&rs(a,s)&&(t.flags|=32),t.memoizedState!==null&&(a=Rt(e,t,Vt,null,null,n),cs?Os._currentValue=a:Os._currentValue2=a),hr(e,t),ar(e,t,i,n),t.child;case 6:return e===null&&W&&(sl(t.pendingProps,pu.current),(e=n=vu)&&(n=Bc(n,t.pendingProps,bu),n===null?e=!1:(t.stateNode=n,_u=t,vu=null,e=!0)),e||Se(t)),null;case 13:return Sr(e,t,n);case 4:return ve(t,t.stateNode.containerInfo),i=t.pendingProps,e===null?t.child=Yu(t,null,i,n):ar(e,t,i,n),t.child;case 11:return or(e,t,t.type,t.pendingProps,n);case 7:return i=t.pendingProps,hr(e,t),ar(e,t,i,n),t.child;case 8:return ar(e,t,t.pendingProps.children,n),t.child;case 12:return ar(e,t,t.pendingProps.children,n),t.child;case 10:return Mr(e,t,n);case 9:return a=t.type._context,i=t.pendingProps.children,Ne(t),a=Pe(a),i=i(a),t.flags|=1,ar(e,t,i,n),t.child;case 14:return sr(e,t,t.type,t.pendingProps,n);case 15:return cr(e,t,t.type,t.pendingProps,n);case 19:return jr(e,t,n);case 31:return mr(e,t,n);case 22:return lr(e,t,n,t.pendingProps);case 24:return Ne(t),i=Pe(Ou),e===null?(a=$e(),a===null&&(a=Jd,o=Le(),a.pooledCache=o,o.refCount++,o!==null&&(a.pooledCacheLanes|=n),a=o),t.memoizedState={parent:i,cache:a},_t(t),De(t,Ou,a)):((e.lanes&n)!==0&&(vt(e,t),Ct(t,null,null,n),St()),a=e.memoizedState,o=t.memoizedState,a.parent===i?(i=o.cache,De(t,Ou,i),i!==a.cache&&Ae(t,[Ou],n,!0)):(a={parent:i,cache:i},t.memoizedState=a,t.lanes===0&&(t.memoizedState=t.updateQueue.baseState=a),De(t,Ou,i))),ar(e,t,t.pendingProps.children,n),t.child;case 30:return t.stateNode===null&&(t.stateNode={autoName:null,paired:null,clones:null,ref:null}),i=t.pendingProps,i.name!=null&&i.name!==`auto`?t.flags|=e===null?18882560:18874368:W&&ge(t),e!==null&&e.memoizedProps.name!==i.name?t.flags|=4194816:hr(e,t),ar(e,t,i.children,n),t.child;case 29:throw t.pendingProps}throw Error(r(156,t.tag))}function Lr(e){e.flags|=4}function Rr(e){us&&(e.flags|=8)}function zr(e,t){if(e!==null&&e.child===t.child)return!1;if(t.flags&16)return!0;for(e=t.child;e!==null;){if(e.flags&8218||e.subtreeFlags&8218)return!0;e=e.sibling}return!1}function Br(e,t,n,r){if(ls)for(n=t.child;n!==null;){if(n.tag===5||n.tag===6)ts(e,n.stateNode);else if(!(n.tag===4||Sl&&n.tag===27)&&n.child!==null){n.child.return=n,n=n.child;continue}if(n===t)break;for(;n.sibling===null;){if(n.return===null||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}else if(us)for(var i=t.child;i!==null;){if(i.tag===5){var a=i.stateNode;n&&r&&(a=wc(a,i.type,i.memoizedProps)),ts(e,a)}else if(i.tag===6)a=i.stateNode,n&&r&&(a=Tc(a,i.memoizedProps)),ts(e,a);else if(i.tag!==4){if(i.tag===22&&i.memoizedState!==null)a=i.child,a!==null&&(a.return=i),Br(e,i,!0,!0);else if(i.child!==null){i.child.return=i,i=i.child;continue}}if(i===t)break;for(;i.sibling===null;){if(i.return===null||i.return===t)return;i=i.return}i.sibling.return=i.return,i=i.sibling}}function Vr(e,t,n,r){var i=!1;if(us)for(var a=t.child;a!==null;){if(a.tag===5){var o=a.stateNode;n&&r&&(o=wc(o,a.type,a.memoizedProps)),xc(e,o)}else if(a.tag===6)o=a.stateNode,n&&r&&(o=Tc(o,a.memoizedProps)),xc(e,o);else if(a.tag!==4){if(a.tag===22&&a.memoizedState!==null)i=a.child,i!==null&&(i.return=a),Vr(e,a,!0,!0),i=!0;else if(a.child!==null){a.child.return=a,a=a.child;continue}}if(a===t)break;for(;a.sibling===null;){if(a.return===null||a.return===t)return i;a=a.return}a.sibling.return=a.return,a=a.sibling}return i}function Hr(e,t){if(us&&zr(e,t)){e=t.stateNode;var n=e.containerInfo,r=bc();Vr(r,t,!1,!1),e.pendingChildren=r,Lr(t),Sc(n,r)}}function Ur(e,t,n,r){if(ls)e.memoizedProps!==r&&Lr(t);else if(us){var i=e.stateNode,a=e.memoizedProps;if((e=zr(e,t))||a!==r){var o=pu.current;a=yc(i,n,a,r,!e,null),a===i?t.stateNode=i:(Rr(t),ns(a,n,r,o)&&Lr(t),t.stateNode=a,e&&Br(a,t,!1,!1))}else t.stateNode=i}}function Wr(e,t,n,r,i){if(e.mode&32&&(n===null?ys(t,r):bs(t,n,r))){if(e.flags|=16777216,(i&335544128)===i||xs(t,r)){if(Ss(e.stateNode,t,r))e.flags|=8192;else if(ka())e.flags|=8192;else throw Ku=Gu,Uu}}else e.flags&=-16777217}function Gr(e,t){if(yl(t)){if(e.flags|=16777216,!bl(t)){if(ka())e.flags|=8192;else throw Ku=Gu,Uu}}else e.flags&=-16777217}function Kr(e,t){t!==null&&(e.flags|=4),e.flags&16384&&(t=e.tag===22?536870912:S(),e.lanes|=t,sf|=t)}function qr(e,t){if(!W)switch(e.tailMode){case`visible`:break;case`collapsed`:for(var n=e.tail,r=null;n!==null;)n.alternate!==null&&(r=n),n=n.sibling;r===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:r.sibling=null;break;default:for(t=e.tail,n=null;t!==null;)t.alternate!==null&&(n=t),t=t.sibling;n===null?e.tail=null:n.sibling=null}}function Jr(e){var t=e.alternate!==null&&e.alternate.child===e.child,n=0,r=0;if(t)for(var i=e.child;i!==null;)n|=i.lanes|i.childLanes,r|=i.subtreeFlags&1206910976,r|=i.flags&1206910976,i.return=e,i=i.sibling;else for(i=e.child;i!==null;)n|=i.lanes|i.childLanes,r|=i.subtreeFlags,r|=i.flags,i.return=e,i=i.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function Yr(e,t,n){var i=t.pendingProps;switch(_e(t),t.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Jr(t),null;case 1:return Jr(t),null;case 3:return n=t.stateNode,i=null,e!==null&&(i=e.memoizedState.cache),t.memoizedState.cache!==i&&(t.flags|=2048),Oe(Ou),ye(),n.pendingContext&&(n.context=n.pendingContext,n.pendingContext=null),(e===null||e.child===null)&&(Ce(t)?Lr(t):e===null||e.memoizedState.isDehydrated&&!(t.flags&256)||(t.flags|=1024,Te())),Hr(e,t),Jr(t),null;case 26:if(cl){var a=t.type,o=t.memoizedState;return e===null?(Lr(t),o===null?(Jr(t),Wr(t,a,null,i,n)):(Jr(t),Gr(t,o))):o?o===e.memoizedState?(Jr(t),t.flags&=-16777217):(Lr(t),Jr(t),Gr(t,o)):(o=e.memoizedProps,ls?o!==i&&Lr(t):Ur(e,t,a,i),Jr(t),Wr(t,a,o,i,n)),null}case 27:if(Sl){if(xe(t),n=hu.current,a=t.type,e!==null&&t.stateNode!=null)ls?e.memoizedProps!==i&&Lr(t):Ur(e,t,a,i);else{if(!i){if(t.stateNode===null)throw Error(r(166));return Jr(t),t.subtreeFlags&=-33554433,null}e=pu.current,Ce(t)?O(t,e):(e=Cl(a,i,n,e,!0),t.stateNode=e,Lr(t))}return Jr(t),t.subtreeFlags&=-33554433,null}case 5:if(xe(t),a=t.type,e!==null&&t.stateNode!=null)Ur(e,t,a,i);else{if(!i){if(t.stateNode===null)throw Error(r(166));return Jr(t),t.subtreeFlags&=-33554433,null}if(o=pu.current,Ce(t))O(t,o),$c(t.stateNode,a,i,o)&&(t.flags|=64);else{var s=es(a,i,hu.current,o,t);Rr(t),Br(s,t,!1,!1),t.stateNode=s,ns(s,a,i,o)&&Lr(t)}}return Jr(t),t.subtreeFlags&=-33554433,Wr(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&t.stateNode!=null)n=e.memoizedProps,ls?n!==i&&Lr(t):us&&(n===i?t.stateNode=e.stateNode:(e=hu.current,n=pu.current,Rr(t),t.stateNode=is(i,e,n,t)));else{if(typeof i!=`string`&&t.stateNode===null)throw Error(r(166));if(e=hu.current,n=pu.current,Ce(t)){if(!ds)throw Error(r(176));if(e=t.stateNode,n=t.memoizedProps,i=null,a=_u,a!==null)switch(a.tag){case 27:case 5:i=a.memoizedProps}Wc(e,n,t,i)||Se(t,!0)}else Rr(t),t.stateNode=is(i,e,n,t)}return Jr(t),null;case 31:if(n=t.memoizedState,e===null||e.memoizedState!==null){if(i=Ce(t),n!==null){if(e===null){if(!i)throw Error(r(318));if(!ds)throw Error(r(556));if(e=t.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(r(557));Gc(e,t)}else we(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;Jr(t),e=!1}else n=Te(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return t.flags&256?(Mt(t),t):(Mt(t),null);if(t.flags&128)throw Error(r(558))}return Jr(t),null;case 13:if(i=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(a=Ce(t),i!==null&&i.dehydrated!==null){if(e===null){if(!a)throw Error(r(318));if(!ds)throw Error(r(344));if(a=t.memoizedState,a=a===null?null:a.dehydrated,!a)throw Error(r(317));Kc(a,t)}else we(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;Jr(t),a=!1}else a=Te(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=a),a=!0;if(!a)return t.flags&256?(Mt(t),t):(Mt(t),null)}return Mt(t),t.flags&128?(t.lanes=n,t):(n=i!==null,e=e!==null&&e.memoizedState!==null,n&&(i=t.child,a=null,i.alternate!==null&&i.alternate.memoizedState!==null&&i.alternate.memoizedState.cachePool!==null&&(a=i.alternate.memoizedState.cachePool.pool),o=null,i.memoizedState!==null&&i.memoizedState.cachePool!==null&&(o=i.memoizedState.cachePool.pool),o!==a&&(i.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),Kr(t,t.updateQueue),Jr(t),null);case 4:return ye(),Hr(e,t),e===null&&ps(t.stateNode.containerInfo),t.flags|=67108864,Jr(t),null;case 10:return Oe(t.type),Jr(t),null;case 19:if(Pt(t),i=t.memoizedState,i===null)return Jr(t),null;if(a=!!(t.flags&128),o=i.rendering,o===null){if(a)qr(i,!1);else{if(tf!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(o=Ft(e),o!==null){for(t.flags|=128,qr(i,!1),e=o.updateQueue,t.updateQueue=e,Kr(t,e),t.subtreeFlags=0,e=n,n=t.child;n!==null;)co(n,e),n=n.sibling;return Nt(t,rd.current&1|2),W&&me(t,i.treeForkCount),t.child}e=e.sibling}i.tail!==null&&Vl()>pf&&(t.flags|=128,a=!0,qr(i,!1),t.lanes=4194304)}}else{if(!a){if(e=Ft(o),e!==null){if(t.flags|=128,a=!0,e=e.updateQueue,t.updateQueue=e,Kr(t,e),qr(i,!0),i.tail===null&&i.tailMode!==`collapsed`&&i.tailMode!==`visible`&&!o.alternate&&!W)return Jr(t),null}else 2*Vl()-i.renderingStartTime>pf&&n!==536870912&&(t.flags|=128,a=!0,qr(i,!1),t.lanes=4194304)}i.isBackwards?(o.sibling=t.child,t.child=o):(e=i.last,e===null?t.child=o:e.sibling=o,i.last=o)}if(i.tail!==null){e=i.tail;a:{for(n=e;n!==null;){if(n.alternate!==null){n=!1;break a}n=n.sibling}n=!0}return i.rendering=e,i.tail=e.sibling,i.renderingStartTime=Vl(),e.sibling=null,o=rd.current,o=a?o&1|2:o&1,i.tailMode===`visible`||i.tailMode===`collapsed`||!n||W?Nt(t,o):(n=o,h(K,t),h(rd,n),q===null&&(q=t)),W&&me(t,i.treeForkCount),e}return Jr(t),null;case 22:case 23:return Mt(t),Ot(),i=t.memoizedState!==null,e===null?i&&(t.flags|=8192):e.memoizedState!==null!==i&&(t.flags|=8192),i?n&536870912&&!(t.flags&128)&&(Jr(t),t.subtreeFlags&6&&(t.flags|=8192)):Jr(t),n=t.updateQueue,n!==null&&Kr(t,n.retryQueue),n=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),i=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(i=t.memoizedState.cachePool.pool),i!==n&&(t.flags|=2048),e!==null&&m(Vu),null;case 24:return n=null,e!==null&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),Oe(Ou),Jr(t),null;case 25:return null;case 30:return t.flags|=33554432,Jr(t),null}throw Error(r(156,t.tag))}function Xr(e,t){switch(_e(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Oe(Ou),ye(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return xe(t),null;case 31:if(t.memoizedState!==null){if(Mt(t),t.alternate===null)throw Error(r(340));we()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(Mt(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(r(340));we()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return Pt(t),e=t.flags,e&65536?(t.flags=e&-65537|128,e=t.memoizedState,e!==null&&(e.rendering=null,e.tail=null),t.flags|=4,t):null;case 4:return ye(),null;case 10:return Oe(t.type),null;case 22:case 23:return Mt(t),Ot(),e!==null&&m(Vu),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return Oe(Ou),null;case 25:return null;default:return null}}function Zr(e,t){switch(_e(t),t.tag){case 3:Oe(Ou),ye();break;case 26:case 27:case 5:xe(t);break;case 4:ye();break;case 31:t.memoizedState!==null&&Mt(t);break;case 13:Mt(t);break;case 19:Pt(t);break;case 10:Oe(t.type);break;case 22:case 23:Mt(t),Ot(),e!==null&&m(Vu);break;case 24:Oe(Ou)}}function Qr(e,t){try{var n=t.updateQueue,r=n===null?null:n.lastEffect;if(r!==null){var i=r.next;n=i;do{if((n.tag&e)===e){r=void 0;var a=n.create,o=n.inst;r=a(),o.destroy=r}n=n.next}while(n!==i)}}catch(e){B(t,t.return,e)}}function $r(e,t,n){try{var r=t.updateQueue,i=r===null?null:r.lastEffect;if(i!==null){var a=i.next;r=a;do{if((r.tag&e)===e){var o=r.inst,s=o.destroy;if(s!==void 0){o.destroy=void 0,i=t;var c=n,l=s;try{l()}catch(e){B(i,c,e)}}}r=r.next}while(r!==a)}}catch(e){B(t,t.return,e)}}function ei(e){var t=e.updateQueue;if(t!==null){var n=e.stateNode;try{Tt(t,n)}catch(t){B(e,e.return,t)}}}function ti(e,t,n){n.props=Qn(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(n){B(e,t,n)}}function ni(e,t){try{var n=e.ref;if(n!==null){switch(e.tag){case 26:case 27:case 5:var r=Yo(e.stateNode);break;case 30:var i=e.stateNode,a=se(e.memoizedProps,i);(i.ref===null||i.ref.name!==a)&&(i.ref=pc(a)),r=i.ref;break;case 7:e.stateNode===null&&(e.stateNode=hc(e)),r=e.stateNode;break;default:r=e.stateNode}typeof n==`function`?e.refCleanup=n(r):n.current=r}}catch(n){B(e,t,n)}}function ri(e,t){var n=e.ref,r=e.refCleanup;if(n!==null){if(typeof r==`function`)try{r()}catch(n){B(e,t,n)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof n==`function`)try{n(null)}catch(n){B(e,t,n)}else n.current=null}}function ii(){var e=Sd;return Sd=!1,e}function ai(e,t){if((e.tag===5||e.tag===27||e.tag===6)&&e.alternate===null&&t!==null)for(var n=0;n`;case Hd:return`:has(`+(ma(e)||``)+`)`;case Ud:return`[role="`+e.value+`"]`;case Gd:return`"`+e.value+`"`;case Wd:return`[data-testname="`+e.value+`"]`;default:throw Error(r(365))}}function ha(e,t){var n=[];e=[e,0];for(var r=0;rn?32:n;n=U.T;var a=hs();try{ms(i),U.T=null,i=xf,xf=null;var o=_f,s=yf;if(gf=0,vf=_f=null,yf=0,X&6)throw Error(r(331));var c=X;if(X|=4,la(o.current),ra(o,o.current,s,i),X=c,Ue(0,!1),Yl&&typeof Yl.onPostCommitFiberRoot==`function`)try{Yl.onPostCommitFiberRoot(Jl,o)}catch{}return!0}finally{ms(a),U.T=n,Ya(e,t)}}function Qa(e,t,n){t=pe(n,t),t=tr(e.stateNode,t,2),e=bt(e,t,2),e!==null&&(ee(e,2),He(e))}function B(e,t,n){if(e.tag===3)Qa(e,e,n);else for(;t!==null;){if(t.tag===3){Qa(t,e,n);break}if(t.tag===1){var r=t.stateNode;if(typeof t.type.getDerivedStateFromError==`function`||typeof r.componentDidCatch==`function`&&(hf===null||!hf.has(r))){e=pe(n,e),n=nr(2),r=bt(t,n,2),r!==null&&(rr(n,r,t,e),ee(r,2),He(r));break}}t=t.return}}function $a(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new qd;var i=new Set;r.set(t,i)}else i=r.get(t),i===void 0&&(i=new Set,r.set(t,i));i.has(n)||($d=!0,i.add(n),e=eo.bind(null,e,t,n),t.then(e,e))}function eo(e,t,n){var r=e.pingCache;r!==null&&r.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,Jd===e&&(Q&n)===n&&(tf===4||tf===3&&(Q&62914560)===Q&&300>Vl()-df?X&2?af|=n:Da(e,0):af|=n,sf===Q&&(sf=0)),He(e)}function to(e,t){t===0&&(t=S()),e=mt(e,t),e!==null&&(ee(e,t),He(e))}function no(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),to(e,n)}function ro(e,t){var n=0;switch(e.tag){case 31:case 13:var i=e.stateNode,a=e.memoizedState;a!==null&&(n=a.retryLane);break;case 19:i=e.stateNode;break;case 22:i=e.stateNode._retryCache;break;default:throw Error(r(314))}i!==null&&i.delete(t),to(e,n)}function io(e,t){return Ll(e,t)}function ao(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.refCleanup=this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function oo(e){return e=e.prototype,!(!e||!e.isReactComponent)}function so(e,n){var r=e.alternate;return r===null?(r=t(e.tag,n,e.key,e.mode),r.elementType=e.elementType,r.type=e.type,r.stateNode=e.stateNode,r.alternate=e,e.alternate=r):(r.pendingProps=n,r.type=e.type,r.flags=0,r.subtreeFlags=0,r.deletions=null),r.flags=e.flags&1206910976,r.childLanes=e.childLanes,r.lanes=e.lanes,r.child=e.child,r.memoizedProps=e.memoizedProps,r.memoizedState=e.memoizedState,r.updateQueue=e.updateQueue,n=e.dependencies,r.dependencies=n===null?null:{lanes:n.lanes,firstContext:n.firstContext},r.sibling=e.sibling,r.index=e.index,r.ref=e.ref,r.refCleanup=e.refCleanup,r}function co(e,t){e.flags&=1206910978;var n=e.alternate;return n===null?(e.childLanes=0,e.lanes=t,e.child=null,e.subtreeFlags=0,e.memoizedProps=null,e.memoizedState=null,e.updateQueue=null,e.dependencies=null,e.stateNode=null):(e.childLanes=n.childLanes,e.lanes=n.lanes,e.child=n.child,e.subtreeFlags=0,e.deletions=null,e.memoizedProps=n.memoizedProps,e.memoizedState=n.memoizedState,e.updateQueue=n.updateQueue,e.type=n.type,t=n.dependencies,e.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext}),e}function lo(e,n,i,a,o,s){var c=0;if(a=e,typeof a==`function`)oo(a)&&(c=1);else if(typeof a==`string`)c=cl&&Sl?ll(e,i,pu.current)?26:El(e)?27:5:cl?ll(e,i,pu.current)?26:5:Sl&&El(e)?27:5;else a:switch(a){case Ro:return e=t(31,i,n,o),e.elementType=Ro,e.lanes=s,e;case Oo:return uo(i.children,o,s,n);case ko:c=8,o|=24;break;case Ao:return e=t(12,i,n,o|2),e.elementType=Ao,e.lanes=s,e;case Po:return e=t(13,i,n,o),e.elementType=Po,e.lanes=s,e;case Fo:return e=t(19,i,n,o),e.elementType=Fo,e.lanes=s,e;case zo:case Vo:return e=o|32,e=t(30,i,n,e),e.elementType=Vo,e.lanes=s,e.stateNode={autoName:null,paired:null,clones:null,ref:null},e;default:if(typeof a==`object`&&a)switch(a.$$typeof){case Mo:c=10;break a;case jo:c=9;break a;case No:c=11;break a;case Io:c=14;break a;case Lo:c=16,a=null;break a}c=29,i=Error(r(130,e===null?`null`:typeof e,``)),a=null}return n=t(c,i,n,o),n.elementType=e,n.type=a,n.lanes=s,n}function uo(e,n,r,i){return e=t(7,e,i,n),e.lanes=r,e}function fo(e,n,r){return e=t(6,e,null,n),e.lanes=r,e}function po(e){var n=t(18,null,null,0);return n.stateNode=e,n}function mo(e,n,r){return n=t(4,e.children===null?[]:e.children,e.key,n),n.lanes=r,n.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},n}function ho(e,t,n,r,i,a,o,s,c){this.tag=1,this.containerInfo=e,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=ss,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=C(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=C(0),this.hiddenUpdates=C(null),this.identifierPrefix=r,this.onUncaughtError=i,this.onCaughtError=a,this.onRecoverableError=o,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=c,this.transitionTypes=null,this.incompleteTransitions=new Map}function go(e,n,r,i,a,o,s,c,l,u,d,f){return e=new ho(e,n,r,s,l,u,d,f,c),n=1,!0===o&&(n|=24),o=t(3,null,null,n),e.current=o,o.stateNode=e,n=Le(),n.refCount++,e.pooledCache=n,n.refCount++,o.memoizedState={element:i,isDehydrated:r,cache:n},_t(o),e}function _o(e){return e?(e=Al,e):Al}function vo(e){var t=e._reactInternals;if(t===void 0)throw typeof e.render==`function`?Error(r(188)):(e=Object.keys(e).join(`,`),Error(r(268,e)));return e=o(t),e=e===null?null:s(e),e===null?null:Yo(e.stateNode)}function yo(e,t,n,r,i,a){i=_o(i),r.context===null?r.context=i:r.pendingContext=i,r=yt(t),r.payload={element:n},a=a===void 0?null:a,a!==null&&(r.callback=a),n=bt(e,r,t),n!==null&&(ba(n,e,t),M(n,e,t))}function bo(e,t){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var n=e.retryLane;e.retryLane=n!==0&&n=u&&o>=f&&a<=d&&s<=p){e.splice(t,1);break}if(!(i!==u||n.width!==l.width||ps)){f>o&&(l.height+=f-o,l.y=o),pa)){u>i&&(l.width+=u-i,l.x=i),dn&&(n=c)),c `)+` - -No matching component was found for: - `)+e.join(` > `)}return null},V.getPublicRootInstance=function(e){if(e=e.current,!e.child)return null;switch(e.child.tag){case 27:case 5:return Yo(e.child.stateNode);default:return e.child.stateNode}},V.injectIntoDevTools=function(){var e={bundleType:0,version:Ko,rendererPackageName:qo,currentDispatcherRef:U,reconcilerVersion:`19.3.0`};if(Jo!==null&&(e.rendererConfig=Jo),typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>`u`)e=!1;else{var t=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(t.isDisabled||!t.supportsFiber)e=!0;else{try{Jl=t.inject(e),Yl=t}catch{}e=!!t.checkDCE}}return e},V.isAlreadyRendering=function(){return!!(X&6)},V.observeVisibleRects=function(e,t,n,i){if(!Ms)throw Error(r(363));e=ga(e,t);var a=zs(e,n,i).disconnect;return{disconnect:function(){a()}}},V.shouldError=function(){return null},V.shouldSuspend=function(){return!1},V.startHostTransition=function(e,t,i,a){if(e.tag!==5)throw Error(r(476));var o=Rn(e).queue;Ln(e,o,t,Ds,i===null?n:function(){var t=Rn(e);return t.next===null&&(t=e.alternate.memoizedState),Gn(e,t.next.queue,{},_a()),i(a)})},V.updateContainer=function(e,t,n,r){var i=t.current,a=_a();return yo(i,a,e,t,n,r),a},V.updateContainerSync=function(e,t,n,r){return yo(t.current,2,e,t,n,r),2},V},t.exports.default=t.exports,Object.defineProperty(t.exports,"__esModule",{value:!0})})),Fa=o(((e,t)=>{t.exports=Pa()})),Ia=o((e=>{e.ConcurrentRoot=1,e.DefaultEventPriority=32,e.DiscreteEventPriority=2})),La=o(((e,t)=>{t.exports=Ia()})),Ra=l(Fa()),za=La(),Ba={children:!0,ref:!0,key:!0,style:!0,forwardedRef:!0,eventBatchFunc:!0,unstable_applyCache:!0,unstable_applyDrawHitFromCache:!0},Va=!1,Ha=!1,Ua=`.react-konva-event`,Wa=!1,Ga=`ReactKonva: You have a Konva node with draggable = true and position defined but no onDragMove or onDragEnd events are handled. -Position of a node will be changed during drag&drop, so you should update state of the react app as well. -Consider to add onDragMove or onDragEnd events. -For more info see: https://github.com/konvajs/react-konva/issues/256 -`,Ka=`ReactKonva: You are using "zIndex" attribute for a Konva node. -react-konva may get confused with ordering. Just define correct order of elements in your render function of a component. -For more info see: https://github.com/konvajs/react-konva/issues/194 -`,qa={};function Ja(e,t,n=qa){if(!Va&&`zIndex`in t&&(console.warn(Ka),Va=!0),!Ha&&t.draggable){var r=t.x!==void 0||t.y!==void 0,i=t.onDragEnd||t.onDragMove;r&&!i&&(console.warn(Ga),Ha=!0)}var a={},o=!1;for(var s in n)if(!Ba[s]){var c=s.slice(0,2)===`on`,l=n[s]!==t[s];if(c&&l){var u=s.substr(2).toLowerCase();u.substr(0,7)===`content`&&(u=`content`+u.substr(7,1).toUpperCase()+u.substr(8)),e.off(u+Ua)}var d=!t.hasOwnProperty(s);!c&&d&&(a[s]=void 0,o=!0)}var f=Wa||t._useStrictMode;let p={};for(var s in t)if(!Ba[s]){var c=s.slice(0,2)===`on`,m=n[s]!==t[s];if(c&&m){var u=s.substr(2).toLowerCase();u.substr(0,7)===`content`&&(u=`content`+u.substr(7,1).toUpperCase()+u.substr(8)),t[s]&&(p[u]=t[s])}!c&&(t[s]!==n[s]||f&&t[s]!==e.getAttr(s))&&(o=!0,a[s]=t[s])}for(var u in o&&(e.setAttrs(a),Ya(e)),p)e.off(u+Ua),e.on(u+Ua,p[u])}function Ya(e){if(!D.autoDrawEnabled){var t=e.getLayer()||e.getStage();t&&t.batchDraw()}}var Xa=d(),Za=new Set,Qa=new Set,B=typeof queueMicrotask==`function`?queueMicrotask:e=>Promise.resolve().then(e),$a=0,eo=new WeakMap;function to(e){return Qa.add(e),()=>{Qa.delete(e)}}function no(){for(let e of Qa)e()}function ro(e){if(!e)return ao;let t=eo.get(e);return t||(t=t=>ao(()=>e(t)),eo.set(e,t)),t}function io(e){let t=()=>{Za.delete(t)&&(no(),e())};Za.add(t),B(t)}function ao(e){if($a)return e();$a++;try{(0,Ma.flushSync)(e)}finally{try{for(;Za.size;)(0,Ma.flushSync)(()=>{for(let e of Za)e()})}finally{$a--}}}var oo=s({HostTransitionContext:()=>ps,NotPendingTransition:()=>fs,afterActiveInstanceBlur:()=>Go,appendChild:()=>Oo,appendChildToContainer:()=>ko,appendInitialChild:()=>lo,beforeActiveInstanceBlur:()=>Wo,bindToConsole:()=>Uo,cancelTimeout:()=>Eo,clearContainer:()=>Vo,commitMount:()=>Fo,commitNewChildToFragmentInstance:()=>_o,commitTextUpdate:()=>Po,commitUpdate:()=>Io,createFragmentInstance:()=>ho,createInstance:()=>uo,createTextInstance:()=>fo,createViewTransitionInstance:()=>ns,deleteChildFromFragmentInstance:()=>vo,detachDeletedInstance:()=>H,finalizeInitialChildren:()=>po,getChildHostContext:()=>wo,getCurrentUpdatePriority:()=>Jo,getInstanceFromNode:()=>Ho,getInstanceFromScope:()=>Ko,getPublicInstance:()=>mo,getRootHostContext:()=>Co,getSuspendedCommitReason:()=>ds,hideInstance:()=>Lo,hideTextInstance:()=>Ro,idlePriority:()=>Xa.unstable_IdlePriority,insertBefore:()=>Ao,insertInContainerBefore:()=>jo,isPrimaryRenderer:()=>!1,maySuspendCommit:()=>ts,maySuspendCommitInSyncRender:()=>is,maySuspendCommitOnUpdate:()=>rs,noTimeout:()=>-1,now:()=>Xa.unstable_now,preloadInstance:()=>os,prepareForCommit:()=>bo,preparePortalMount:()=>xo,prepareScopeUpdate:()=>U,removeChild:()=>Mo,removeChildFromContainer:()=>No,requestPostPaintCallback:()=>es,resetAfterCommit:()=>V,resetFormInstance:()=>ms,resetTextContent:()=>So,resolveEventTimeStamp:()=>$o,resolveEventType:()=>Qo,resolveUpdatePriority:()=>Yo,run:()=>Xa.unstable_runWithPriority,scheduleMicrotask:()=>io,scheduleTimeout:()=>To,setCurrentUpdatePriority:()=>qo,shouldAttemptEagerTransition:()=>Xo,shouldSetTextContent:()=>Do,startSuspendingCommit:()=>ss,startViewTransition:()=>as,supportsHydration:()=>!1,supportsMicrotasks:()=>!0,supportsMutation:()=>!0,supportsPersistence:()=>!1,suspendInstance:()=>cs,suspendOnActiveViewTransition:()=>ls,trackSchedulerEvent:()=>Zo,unhideInstance:()=>zo,unhideTextInstance:()=>Bo,updateFragmentInstanceFiber:()=>go,waitForCommitToBeReady:()=>us,warnsIfNotActing:()=>!1}),so={};Na.Node.prototype._applyProps=Ja;var co=za.DefaultEventPriority;function lo(e,t){typeof t==`string`?console.error(`Do not use plain text as child of Konva.Node. You are using text: ${t}`):(e.add(t),Ya(e))}function uo(e,t,n){let r=Na[e];r||=(console.error(`Konva has no node with the type ${e}. Group will be used instead. If you use minimal version of react-konva, just import required nodes into Konva: "import "konva/lib/shapes/${e}" If you want to render DOM elements as part of canvas tree take a look into this demo: https://konvajs.github.io/docs/react/DOM_Portal.html`),Na.Group);let i={},a={};for(var o in t)o!==`ref`&&(o.slice(0,2)===`on`?a[o]=t[o]:i[o]=t[o]);let s=new r(i);return Ja(s,a),s}function fo(e,t,n){console.error(`Text components are not supported for now in ReactKonva. Your text is: "${e}"`)}function po(e,t,n){return!1}function mo(e){return e}function ho(){return null}function go(){}function _o(){}function vo(){}var yo;function bo(){return yo=Na.beginUpdateBatch?.(),null}function xo(){return null}function V(){let e=yo;yo=void 0,e?.()}function So(e){}function Co(){return so}function wo(){return so}var To=setTimeout,Eo=clearTimeout;function Do(e,t){return!1}function Oo(e,t){t.parent===e?t.moveToTop():e.add(t),Ya(e)}var ko=Oo;function Ao(e,t,n){t._remove(),e.add(t),t.setZIndex(n.getZIndex()),Ya(e)}var jo=Ao;function Mo(e,t){t.destroy(),t.off(Ua),Ya(e)}var No=Mo;function Po(e,t,n){console.error(`Text components are not yet supported in ReactKonva. You text is: "${n}"`)}function Fo(e,t,n){}function Io(e,t,n,r){Ja(e,r,n)}function Lo(e){e.hide(),Ya(e)}function Ro(e){}function zo(e,t){(t.visible==null||t.visible)&&(e.show(),Ya(e))}function Bo(e,t){}function Vo(e){}function H(e){e.off(Ua)}function Ho(){return null}function Uo(e,t){return console[e].bind(console,...t)}function Wo(){}function Go(){}function U(){}function Ko(){return null}function qo(e){co=e}function Jo(){return co}function Yo(){return za.DiscreteEventPriority}function Xo(){return!1}function Zo(){}function Qo(){return null}function $o(){return-1.1}function es(){}function ts(){throw Error(`ViewTransition is not supported inside a Stage. Place ViewTransition around Stage to animate its DOM container.`)}var ns=ts,rs=ts,is=ts;function as(e,t,n,r,i,a,o,s,c,l,u){return r(),i(),u?.(),o(),null}function os(){return!0}function ss(){}function cs(){}function ls(){}function us(){return null}function ds(){return null}var fs=Object.freeze({pending:!1,data:null,method:null,action:null}),ps=v.createContext(fs);function ms(){}typeof window<`u`&&(window.document?.createElement||window.navigator?.product===`ReactNative`)?v.useLayoutEffect:v.useEffect;function hs(e,t,n){if(!e)return;if(n(e)===!0)return e;let r=t?e.return:e.child;for(;r;){let e=hs(r,t,n);if(e)return e;r=t?null:r.sibling}}function gs(e){try{return Object.defineProperties(e,{_currentRenderer:{get(){return null},set(){}},_currentRenderer2:{get(){return null},set(){}}})}catch{return e}}var _s=gs(v.createContext(null)),vs=class extends v.Component{render(){return v.createElement(_s.Provider,{value:this._reactInternals},this.props.children)}};function ys(){let e=v.useContext(_s);if(e===null)throw Error(`its-fine: useFiber must be called within a !`);let t=v.useId();return v.useMemo(()=>{for(let n of[e,e?.alternate]){if(!n)continue;let e=hs(n,!1,e=>{let n=e.memoizedState;for(;n;){if(n.memoizedState===t)return!0;n=n.next}});if(e)return e}},[e,t])}var bs=Symbol.for(`react.context`),xs=e=>typeof e==`object`&&!!e&&`$$typeof`in e&&e.$$typeof===bs;function Ss(){let e=ys(),[t]=v.useState(()=>new Map);t.clear();let n=e;for(;n;){let e=n.type;xs(e)&&e!==_s&&!t.has(e)&&t.set(e,v.use(gs(e))),n=n.return}return t}function Cs(){let e=Ss();return v.useMemo(()=>Array.from(e.keys()).reduce((t,n)=>r=>v.createElement(t,null,v.createElement(n.Provider,{...r,value:e.get(n)})),e=>v.createElement(vs,{...e})),[e])}var[ws,Ts]=`19.3.1`.split(`.`).map(Number);if(ws!==19||Ts<3)throw Error(`react-konva requires React 19.3 or later within React 19. Install matching versions of react and react-dom. For React 19.2, use react-konva 19.2. For React 18, use react-konva 18.`);function Es({promise:e}){throw e}var Ds=e=>{let t=v.useRef(null),n=v.useRef(null),r=v.useRef(null),i=v.useRef(null),a=v.useRef(null),o=v.useId(),s=(0,Ma.useFormStatus)(),c=v.useRef({}),l=c.current,u=Cs(),d=!!hs(ys(),!0,e=>e.type===v.StrictMode),f=v.useRef(!1),p=v.useRef(!1),m=v.useRef(null);v.useInsertionEffect(()=>(p.current=!1,()=>{p.current=!0,f.current&&n.current&&h()}),[]);let h=()=>{m.current?.(),m.current=null,no(),Ns.flushSyncFromReconciler(()=>{Ns.updateContainer(null,r.current,null)}),n.current?.destroy(),n.current?.off(Ua),n.current=null,a.current?.resolve(),a.current=null},g=e=>{if(e===`suspended`){if(!a.current){let e,t=new Promise(t=>{e=t});a.current={promise:t,resolve:e}}}else a.current?.resolve(),a.current=null;Ns.updateContainer(v.createElement(v.Activity,{mode:e===`hidden`?`hidden`:`visible`,children:v.createElement(v.Suspense,{fallback:null},i.current,a.current&&v.createElement(Es,{promise:a.current.promise}))}),r.current,null),no(),Ns.flushSyncWork()};return v.useLayoutEffect(()=>(m.current?.(),m.current=null,n.current||(n.current=new Na.Stage({width:e.width,height:e.height,container:t.current}),r.current=Ns.createContainer(n.current,za.ConcurrentRoot,null,d,null,o,console.error,console.error,console.error,null,null)),()=>{p.current?h():(m.current=to(()=>{p.current&&(m.current?.(),m.current=null,Ns.updateContainer(null,r.current,null))}),g(`suspended`))}),[]),v.useEffect(()=>(f.current=!1,()=>{f.current=!0,n.current&&(p.current?h():g(`hidden`))}),[]),v.useLayoutEffect(()=>{typeof n.current.eventBatchFunc==`function`&&n.current.eventBatchFunc(ro(e.eventBatchFunc))},[e.eventBatchFunc]),v.useImperativeHandle(e.forwardedRef,()=>n.current,[]),v.useLayoutEffect(()=>{c.current=e,Ja(n.current,e,l),i.current=v.createElement(ps.Provider,{value:s},v.createElement(u,{},e.children)),g(`visible`)}),v.createElement(`div`,{ref:t,id:e.id,accessKey:e.accessKey,className:e.className,role:e.role,style:e.style,tabIndex:e.tabIndex,title:e.title})},Os=`Layer`,ks=`Group`,As=`Rect`,js=`19.3.2`,Ms={...oo,HostTransitionContext:ps,rendererVersion:js,rendererPackageName:`react-konva`,extraDevToolsConfig:null},Ns=(0,Ra.default)(Ms);Ns.injectIntoDevTools();var Ps=v.forwardRef((e,t)=>v.createElement(vs,{},v.createElement(Ds,{...e,forwardedRef:t}))),Fs={normal:`#3b3b3b`,valid:`#2f9e44`,invalid:`#e03131`};function Is({type:e,width:t,height:n,pxPerM:r,outline:i,opacity:a=1}){let o=t*r,s=n*r,c=Fs[i],l=i===`normal`?1.5:3;if(e===`table`)return(0,T.jsx)(ks,{opacity:a,children:(0,T.jsx)(As,{width:o,height:s,fill:`#d9b382`,stroke:c,strokeWidth:l,cornerRadius:3})});let u=Math.max(4,s*.2);return(0,T.jsxs)(ks,{opacity:a,children:[(0,T.jsx)(As,{width:o,height:s,fill:`#8fb4d9`,stroke:c,strokeWidth:l,cornerRadius:3}),(0,T.jsx)(As,{width:o,height:u,fill:`#4a6f96`,cornerRadius:[3,3,0,0],listening:!1})]})}function Ls({room:e,items:t,preview:n,pxPerM:r,floorRef:i,onMove:a}){let[o,s]=(0,v.useState)(null),c=e.width*r,l=e.height*r,u=(t,n)=>ee({x:n.x()/r,y:n.y()/r,width:t.width,height:t.height},e);return(0,T.jsx)(`div`,{ref:i,style:{width:c,height:l,border:`6px solid #2b2b2b`,boxSizing:`content-box`,background:`#fff`,boxShadow:`0 4px 18px rgba(0,0,0,0.12)`,touchAction:`none`},children:(0,T.jsx)(Ps,{width:c,height:l,children:(0,T.jsxs)(Os,{children:[t.map(n=>{let i=o?.id===n.id?o.valid?`valid`:`invalid`:`normal`;return(0,T.jsx)(ks,{x:n.x*r,y:n.y*r,draggable:!n.locked,dragBoundFunc:e=>({x:Math.min(Math.max(e.x,0),c-n.width*r),y:Math.min(Math.max(e.y,0),l-n.height*r)}),onDragStart:e=>{e.target.moveToTop()},onDragMove:r=>{let i=u(n,r.target);s({id:n.id,valid:w(i,t,e,n.id)})},onDragEnd:i=>{let o=i.target,c=u(n,o),l=w(c,t,e,n.id),d=l?c:n;o.position({x:d.x*r,y:d.y*r}),l&&a(n.id,c.x,c.y),s(null)},onMouseEnter:e=>{let t=e.target.getStage()?.container();t&&(t.style.cursor=`grab`)},onMouseLeave:e=>{let t=e.target.getStage()?.container();t&&(t.style.cursor=``)},children:(0,T.jsx)(Is,{type:n.type,width:n.width,height:n.height,pxPerM:r,outline:i})},n.id)}),n&&(0,T.jsx)(`Group`,{x:n.x*r,y:n.y*r,listening:!1,children:(0,T.jsx)(Is,{type:n.type,width:n.width,height:n.height,pxPerM:r,outline:n.valid?`valid`:`invalid`,opacity:.85})})]})})})}function Rs({pxPerM:e,roomWidthPx:t}){return(0,T.jsx)(`div`,{style:{width:t,height:40,display:`flex`,alignItems:`flex-end`,paddingBottom:4,boxSizing:`border-box`},children:(0,T.jsxs)(`div`,{style:{font:`12px system-ui, sans-serif`,color:`#555`},children:[(0,T.jsx)(`div`,{style:{width:e,height:6,borderBottom:`2px solid #555`,borderLeft:`2px solid #555`,borderRight:`2px solid #555`,boxSizing:`border-box`,marginBottom:2}}),`1 m`]})})}var zs={width:28,height:28,flexShrink:0,border:`1px solid #c4c4c4`,background:`#fff`,borderRadius:6,cursor:`pointer`,font:`16px system-ui, sans-serif`,lineHeight:1};function Bs({value:e,min:t,onChange:n}){let[r,i]=(0,v.useState)(String(e));return(0,v.useEffect)(()=>i(String(e)),[e]),(0,T.jsxs)(`div`,{style:{display:`flex`,gap:6,alignItems:`center`,width:`100%`},children:[(0,T.jsx)(`button`,{style:zs,disabled:e<=t,onClick:()=>n(Math.max(t,e-1)),"aria-label":`Decrease`,children:`−`}),(0,T.jsx)(`input`,{value:r,inputMode:`numeric`,onChange:e=>i(e.target.value),onBlur:()=>{let a=Math.round(Number(r));if(r.trim()===``||Number.isNaN(a))return i(String(e));let o=Math.max(t,a);i(String(o)),o!==e&&n(o)},onKeyDown:e=>e.key===`Enter`&&e.currentTarget.blur(),style:{flex:1,minWidth:0,height:28,boxSizing:`border-box`,textAlign:`center`,border:`1px solid #c4c4c4`,borderRadius:6,font:`14px system-ui, sans-serif`}}),(0,T.jsx)(`button`,{style:zs,onClick:()=>n(e+1),"aria-label":`Increase`,children:`+`})]})}var Vs={font:`600 12px system-ui, sans-serif`,color:`#555`,marginBottom:4},Hs={font:`12px system-ui, sans-serif`,color:`#888`,marginTop:4};function Us({type:e,config:t,placed:n,onSetAvailable:r,onSetSeats:i,onClose:a}){return(0,v.useEffect)(()=>{let e=e=>e.key===`Escape`&&a();return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[a]),(0,T.jsxs)(`div`,{style:{gridColumn:`1 / -1`,display:`flex`,flexDirection:`column`,gap:14},children:[(0,T.jsx)(`button`,{onClick:a,style:{alignSelf:`flex-start`,border:`none`,background:`none`,padding:0,cursor:`pointer`,font:`13px system-ui, sans-serif`,color:`#555`},children:`← Back`}),(0,T.jsx)(`div`,{style:{font:`600 15px system-ui, sans-serif`,color:`#222`},children:e===`chair`?`Chair`:`Table`}),(0,T.jsxs)(`div`,{children:[(0,T.jsx)(`div`,{style:Vs,children:`Available`}),(0,T.jsx)(Bs,{value:t.available,min:n,onChange:r}),(0,T.jsxs)(`div`,{style:Hs,children:[n,` placed`]})]}),e===`table`&&(0,T.jsxs)(`div`,{children:[(0,T.jsx)(`div`,{style:Vs,children:`Seats per table`}),(0,T.jsx)(Bs,{value:t.seatsPerUnit??8,min:1,onChange:i})]})]})}var Ws=40;function Gs(){let[e,t]=(0,v.useReducer)(ie,re),[n,r]=(0,v.useState)(null),[i,a]=(0,v.useState)(null),o=(0,v.useCallback)(()=>a(null),[]),s=(0,v.useRef)(null),c=(0,v.useRef)(null),[l,u]=(0,v.useState)(60);(0,v.useEffect)(()=>{let t=c.current;if(!t)return;let n=new ResizeObserver(([t])=>{let{width:n,height:r}=t.contentRect;u(b(e.room,n-12,r-12-Ws))});return n.observe(t),()=>n.disconnect()},[e.room]);let d=(0,v.useRef)(1),f=t=>{let n=s.current?.getBoundingClientRect();if(!n)return null;let r=(n.width-e.room.width*l)/2,i=t.clientX-n.left-r,a=t.clientY-n.top-r;if(i<0||a<0||i>e.room.width*l||a>e.room.height*l)return null;let{width:o,height:c}=x[t.type];return ee({x:i/l-o/2,y:a/l-c/2,width:o,height:c},e.room)};(0,v.useEffect)(()=>{if(!n)return;let i=n.type,a=e=>r({type:i,clientX:e.clientX,clientY:e.clientY}),o=n=>{let a=f({type:i,clientX:n.clientX,clientY:n.clientY});a&&oe(e.items,i,e.configs[i].available)>0&&w(a,e.items,e.room)&&t({kind:`add`,id:`item-${d.current++}`,type:i,x:a.x,y:a.y}),r(null)},s=()=>r(null);return window.addEventListener(`pointermove`,a),window.addEventListener(`pointerup`,o),window.addEventListener(`pointercancel`,s),()=>{window.removeEventListener(`pointermove`,a),window.removeEventListener(`pointerup`,o),window.removeEventListener(`pointercancel`,s)}},[n?.type,e.items,e.room,e.configs,l]);let p=(0,v.useMemo)(()=>{if(!n)return null;let t=f(n);return t?{type:n.type,...t,valid:w(t,e.items,e.room)}:null},[n,e.items,e.room,l]),m=(e,t,n)=>{a(null),r({type:e,clientX:t,clientY:n})},h={chair:oe(e.items,`chair`,e.configs.chair.available),table:oe(e.items,`table`,e.configs.table.available)};return(0,T.jsxs)(`div`,{style:{display:`flex`,height:`100vh`,background:`#e9e9e9`,cursor:n?`grabbing`:void 0},children:[(0,T.jsx)(me,{remaining:h,onStartDrag:m,onOpenMenu:a,panel:i&&(0,T.jsx)(Us,{type:i,config:e.configs[i],placed:ae(e.items,i),onSetAvailable:e=>t({kind:`setAvailable`,type:i,value:e}),onSetSeats:e=>t({kind:`setSeats`,value:e}),onClose:o})}),(0,T.jsxs)(`main`,{ref:c,style:{flex:1,minWidth:0,display:`flex`,flexDirection:`column`,alignItems:`center`,justifyContent:`center`,overflow:`hidden`,padding:24},children:[(0,T.jsx)(Ls,{pxPerM:l,room:e.room,items:e.items,preview:p,floorRef:s,onMove:(e,n,r)=>t({kind:`move`,id:e,x:n,y:r})}),(0,T.jsx)(Rs,{pxPerM:l,roomWidthPx:e.room.width*l+12})]}),n&&!p&&(0,T.jsx)(`div`,{style:{position:`fixed`,left:n.clientX,top:n.clientY,transform:`translate(-50%, -50%)`,pointerEvents:`none`,opacity:.8},children:n.type===`chair`?(0,T.jsx)(le,{}):(0,T.jsx)(ue,{})})]})}document.body.style.margin=`0`,(0,y.createRoot)(document.getElementById(`root`)).render((0,T.jsx)(Gs,{})); \ No newline at end of file diff --git a/dist/index.html b/dist/index.html index 4b79e77..df5f30c 100644 --- a/dist/index.html +++ b/dist/index.html @@ -4,7 +4,7 @@ Furniture Optimizer - +
diff --git a/src/App.tsx b/src/App.tsx index de1f95b..367d0b2 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,9 +1,9 @@ import { useCallback, useEffect, useMemo, useReducer, useRef, useState } from "react"; import { DEFAULT_SIZES, fitScale, isValidPlacement, clampToRoom } from "./geometry"; import { initialState, reducer } from "./store"; -import type { FurnitureType } from "./types"; +import { FURNITURE_TYPES, type FurnitureType } from "./types"; import { remaining, placedCount } from "./inventory"; -import { Palette, ChairIcon, TableIcon } from "./components/Palette"; +import { Palette, TYPE_ICON } from "./components/Palette"; import { Room, type Preview } from "./components/Room"; import { ScaleBar } from "./components/ScaleBar"; import { TypeMenu } from "./components/TypeMenu"; @@ -96,10 +96,9 @@ export default function App() { setPaletteDrag({ type, clientX, clientY }); }; - const remainingByType = { - chair: remaining(state.items, "chair", state.configs.chair.available), - table: remaining(state.items, "table", state.configs.table.available), - }; + const remainingByType = Object.fromEntries( + FURNITURE_TYPES.map((t) => [t, remaining(state.items, t, state.configs[t].available)]), + ) as Record; return (
@@ -131,6 +130,7 @@ export default function App() { preview={preview} floorRef={floorRef} onMove={(id, x, y) => dispatch({ kind: "move", id, x, y })} + onResize={(id, r) => dispatch({ kind: "resize", id, ...r })} /> @@ -145,7 +145,10 @@ export default function App() { opacity: 0.8, }} > - {paletteDrag.type === "chair" ? : } + {(() => { + const Icon = TYPE_ICON[paletteDrag.type]; + return ; + })()}
)} diff --git a/src/components/FurnitureShape.tsx b/src/components/FurnitureShape.tsx index 6ae41ab..a6e8838 100644 --- a/src/components/FurnitureShape.tsx +++ b/src/components/FurnitureShape.tsx @@ -1,10 +1,11 @@ import { Group, Rect } from "react-konva"; import type { FurnitureType } from "../types"; -export type Outline = "normal" | "valid" | "invalid"; +export type Outline = "normal" | "selected" | "valid" | "invalid"; const STROKE: Record = { normal: "#3b3b3b", + selected: "#1c7ed6", valid: "#2f9e44", invalid: "#e03131", }; @@ -25,6 +26,15 @@ export function FurnitureShape({ type, width, height, pxPerM, outline, opacity = const stroke = STROKE[outline]; const strokeWidth = outline === "normal" ? 1.5 : 3; + if (type === "screen") { + const inset = Math.min(3, h / 4); + return ( + + + + + ); + } if (type === "table") { return ( diff --git a/src/components/Palette.tsx b/src/components/Palette.tsx index 8355dfa..67ea50e 100644 --- a/src/components/Palette.tsx +++ b/src/components/Palette.tsx @@ -1,5 +1,5 @@ import { useState, type PointerEvent, type ReactNode } from "react"; -import type { FurnitureType } from "../types"; +import { FURNITURE_TYPES, TYPE_LABEL, type FurnitureType } from "../types"; const CLICK_THRESHOLD_PX = 5; @@ -112,12 +112,30 @@ function Tile({ type, remaining, onStartDrag, onOpenMenu }: TileProps) { > {remaining} - {type === "chair" ? : } - {type === "chair" ? "Chair" : "Table"} + {(() => { + const Icon = TYPE_ICON[type]; + return ; + })()} + {TYPE_LABEL[type]} ); } +export function ScreenIcon({ size = 36 }: { size?: number }) { + return ( + + + + + ); +} + +export const TYPE_ICON: Record React.JSX.Element> = { + chair: ChairIcon, + table: TableIcon, + screen: ScreenIcon, +}; + export function Palette({ remaining, onStartDrag, onOpenMenu, panel }: Props) { const [width, setWidth] = useState(264); @@ -151,7 +169,7 @@ export function Palette({ remaining, onStartDrag, onOpenMenu, panel }: Props) { background: "#ececec", }} > - {panel ?? (["chair", "table"] as const).map((type) => ( + {panel ?? FURNITURE_TYPES.map((type) => ( ))}
; onMove: (id: string, x: number, y: number) => void; + onResize: (id: string, rect: RectM) => void; } interface DragInfo { @@ -28,8 +29,21 @@ interface DragInfo { valid: boolean; } -export function Room({ room, items, preview, pxPerM, floorRef, onMove }: Props) { +interface ResizeInfo { + id: string; + rect: RectM; + valid: boolean; +} + +const HANDLE_PX = 10; +// Top-down view: a screen only changes in length, its thickness is fixed. +const EDGES: ("left" | "right")[] = ["left", "right"]; + +export function Room({ room, items, preview, pxPerM, floorRef, onMove, onResize }: Props) { const [drag, setDrag] = useState(null); + const [selectedId, setSelectedId] = useState(null); + const [resize, setResize] = useState(null); + const resizeStart = useRef(null); const w = room.width * pxPerM; const h = room.height * pxPerM; @@ -53,16 +67,28 @@ export function Room({ room, items, preview, pxPerM, floorRef, onMove }: Props) touchAction: "none", }} > - + e.target === e.target.getStage() && setSelectedId(null)} + onTouchStart={(e) => e.target === e.target.getStage() && setSelectedId(null)} + > {items.map((item) => { - const outline = - drag?.id === item.id ? (drag.valid ? "valid" : "invalid") : "normal"; + const isResizing = resize?.id === item.id; + const r: RectM = isResizing ? resize.rect : item; + const outline = isResizing + ? resize.valid ? "valid" : "invalid" + : drag?.id === item.id + ? drag.valid ? "valid" : "invalid" + : selectedId === item.id ? "selected" : "normal"; return ( setSelectedId(RESIZABLE[item.type] ? item.id : null)} + onTouchStart={() => setSelectedId(RESIZABLE[item.type] ? item.id : null)} draggable={!item.locked} // Hard-clamp to the walls while dragging (stage is unscaled, so absolute = local). dragBoundFunc={(pos) => ({ @@ -94,10 +120,63 @@ export function Room({ room, items, preview, pxPerM, floorRef, onMove }: Props) if (c) c.style.cursor = ""; }} > - + ); })} + {items.map((item) => { + if (item.id !== selectedId || !RESIZABLE[item.type] || drag?.id === item.id) return null; + const r: RectM = resize?.id === item.id ? resize.rect : item; + const mid: Record<"left" | "right", readonly [number, number]> = { + left: [r.x, r.y + r.height / 2], + right: [r.x + r.width, r.y + r.height / 2], + }; + return EDGES.map((edge) => ( + { + e.cancelBubble = true; + resizeStart.current = { x: item.x, y: item.y, width: item.width, height: item.height }; + }} + onDragMove={(e) => { + const p = e.target.getStage()?.getPointerPosition(); + const start = resizeStart.current; + if (!p || !start) return; + const next = resizeRect(start, edge, p.x / pxPerM, p.y / pxPerM, room, MIN_SCREEN_SIZE); + setResize({ id: item.id, rect: next, valid: isValidPlacement(next, items, room, item.id) }); + }} + onDragEnd={() => { + if (resize?.valid) onResize(item.id, resize.rect); // else snap back to the old size + setResize(null); + resizeStart.current = null; + }} + onMouseEnter={(e) => { + const c = e.target.getStage()?.container(); + if (c) c.style.cursor = "ew-resize"; + }} + onMouseLeave={(e) => { + const c = e.target.getStage()?.container(); + if (c) c.style.cursor = ""; + }} + /> + )); + })} {preview && ( void; -} - -const btn: React.CSSProperties = { - width: 28, - height: 28, - flexShrink: 0, - border: "1px solid #c4c4c4", - background: "#fff", - borderRadius: 6, - cursor: "pointer", - font: "16px system-ui, sans-serif", - lineHeight: 1, -}; - -/** - / input / + . Typing is committed on blur or Enter so intermediate values aren't clamped. */ -export function Stepper({ value, min, onChange }: Props) { - const [draft, setDraft] = useState(String(value)); - useEffect(() => setDraft(String(value)), [value]); - - const commit = () => { - const n = Math.round(Number(draft)); - if (draft.trim() === "" || Number.isNaN(n)) return setDraft(String(value)); - const v = Math.max(min, n); - setDraft(String(v)); - if (v !== value) onChange(v); - }; - - return ( -
- - setDraft(e.target.value)} - onBlur={commit} - onKeyDown={(e) => e.key === "Enter" && e.currentTarget.blur()} - style={{ flex: 1, minWidth: 0, height: 28, boxSizing: "border-box", textAlign: "center", border: "1px solid #c4c4c4", borderRadius: 6, font: "14px system-ui, sans-serif" }} - /> - -
- ); -} diff --git a/src/components/TypeMenu.tsx b/src/components/TypeMenu.tsx index 98402c2..1194f66 100644 --- a/src/components/TypeMenu.tsx +++ b/src/components/TypeMenu.tsx @@ -1,6 +1,6 @@ import { useEffect } from "react"; -import type { FurnitureType, FurnitureTypeConfig } from "../types"; -import { Stepper } from "./Stepper"; +import { TYPE_LABEL, type FurnitureType, type FurnitureTypeConfig } from "../types"; +import { Wheel } from "./Wheel"; interface Props { type: FurnitureType; @@ -29,16 +29,19 @@ export function TypeMenu({ type, config, placed, onSetAvailable, onSetSeats, onC > ← Back -
{type === "chair" ? "Chair" : "Table"}
+
{TYPE_LABEL[type]}
Available
- +
{placed} placed
+ {type === "screen" && ( +
Click a placed screen, then drag an end handle to change its length.
+ )} {type === "table" && (
Seats per table
- +
)}
diff --git a/src/components/Wheel.tsx b/src/components/Wheel.tsx new file mode 100644 index 0000000..f7519ed --- /dev/null +++ b/src/components/Wheel.tsx @@ -0,0 +1,271 @@ +import { useEffect, useRef, useState } from "react"; + +interface Props { + value: number; + min: number; + max?: number; + onChange: (v: number) => void; +} + +const ROW_H = 34; +const VISIBLE = 5; // odd, so one row sits in the middle +const REACH = Math.floor(VISIBLE / 2) + 1; +const CLICK_PX = 4; // total movement under this = a tap +const SETTLE_K = 7; // 1/s; higher = snappier settle (fling distance = velocity / k) +const SPRING_W = 12; // 1/s; stiffness of the critically damped settle spring +const SLOW_VEL = 4; // rows/s; releases slower than this settle with the spring, faster ones fling +const MAX_VEL = 40; // rows/s +const NOTCH_DELTA = 40; // wheel deltas this big are mouse notches (one step), smaller are trackpad + +/** + * Scroll-wheel number picker (like the iOS timer). + * Drag follows the pointer 1:1, release flings with momentum and settles on a value, + * touching it mid-roll stops it instantly. Also: mouse wheel, tap a row, arrow keys. + */ +export function Wheel({ value, min, max = 999, onChange }: Props) { + const [pos, setPos] = useState(value); + const [dragging, setDragging] = useState(false); + + const posRef = useRef(value); // fractional position in "value" units + const lastEmitted = useRef(value); + const raf = useRef(0); + const settleTimer = useRef(0); + const targetRef = useRef(value); // where the running animation is heading + const box = useRef(null); + const drag = useRef<{ y0: number; pos0: number; moved: boolean; wasMoving: boolean } | null>(null); + const samples = useRef<{ t: number; pos: number }[]>([]); + + // Keep latest props visible to the animation loop. + const cfg = useRef({ min, max, onChange }); + cfg.current = { min, max, onChange }; + + const clamp = (v: number) => Math.min(cfg.current.max, Math.max(cfg.current.min, v)); + + const setPosition = (p: number) => { + const c = clamp(p); + posRef.current = c; + setPos(c); + const v = Math.round(c); + if (v !== lastEmitted.current) { + lastEmitted.current = v; + cfg.current.onChange(v); + } + return c; + }; + + const stop = () => { + cancelAnimationFrame(raf.current); + raf.current = 0; + window.clearTimeout(settleTimer.current); + settleTimer.current = 0; + }; + + /** Ease from the current position to `target` with exponential decay (iOS-style deceleration). */ + const animateTo = (rawTarget: number) => { + stop(); + const target = clamp(Math.round(rawTarget)); + targetRef.current = target; + let last = performance.now(); + const step = (now: number) => { + const dt = Math.min(0.05, (now - last) / 1000); + last = now; + const next = posRef.current + (target - posRef.current) * (1 - Math.exp(-SETTLE_K * dt)); + if (Math.abs(target - next) < 0.003) { + setPosition(target); + raf.current = 0; + return; + } + setPosition(next); + raf.current = requestAnimationFrame(step); + }; + raf.current = requestAnimationFrame(step); + }; + + /** + * Settle onto `rawTarget` with a critically damped spring that starts at the current release + * velocity `v0` (rows/s). Smooth start (no velocity jump) and no overshoot, so slow releases glide in. + */ + const settleTo = (rawTarget: number, v0: number) => { + stop(); + const target = clamp(Math.round(rawTarget)); + targetRef.current = target; + const x0 = posRef.current; + const a = x0 - target; + // Moving toward the target faster than the spring allows would overshoot: stiffen to avoid it. + const dist = Math.abs(a); + const toward = dist > 0 && Math.sign(v0) === -Math.sign(a); + const w = toward ? Math.max(SPRING_W, Math.abs(v0) / dist) : SPRING_W; + const b = v0 + w * a; + const t0 = performance.now(); + const step = (now: number) => { + const t = (now - t0) / 1000; + const decay = Math.exp(-w * t); + const x = target + (a + b * t) * decay; + const vel = (b - w * (a + b * t)) * decay; + if ((Math.abs(x - target) < 0.003 && Math.abs(vel) < 0.05) || t > 1.5) { + setPosition(target); + raf.current = 0; + return; + } + setPosition(x); + raf.current = requestAnimationFrame(step); + }; + raf.current = requestAnimationFrame(step); + }; + + // Follow outside changes (e.g. min rising) when idle. + useEffect(() => { + if (drag.current || raf.current) return; + posRef.current = value; + lastEmitted.current = value; + setPos(value); + }, [value]); + + useEffect(() => stop, []); + + const onPointerDown = (e: React.PointerEvent) => { + e.currentTarget.setPointerCapture(e.pointerId); + const wasMoving = raf.current !== 0 || settleTimer.current !== 0; + stop(); // stopping power: touching freezes the wheel exactly where it is + drag.current = { y0: e.clientY, pos0: posRef.current, moved: false, wasMoving }; + samples.current = [{ t: performance.now(), pos: posRef.current }]; + setDragging(true); + }; + + const onPointerMove = (e: React.PointerEvent) => { + const d = drag.current; + if (!d) return; + const dy = e.clientY - d.y0; + if (Math.abs(dy) > CLICK_PX) d.moved = true; + const p = setPosition(d.pos0 - dy / ROW_H); // drag up = bigger number, 1:1 from the first pixel + const now = performance.now(); + samples.current.push({ t: now, pos: p }); + samples.current = samples.current.filter((s) => now - s.t < 100); + }; + + const onPointerUp = (e: React.PointerEvent) => { + const d = drag.current; + drag.current = null; + setDragging(false); + if (!d) return; + + if (!d.moved) { + if (d.wasMoving) { + settleTo(posRef.current, 0); // tap that caught a rolling wheel just stops it on a value + } else { + // plain tap: jump to the tapped row + const rect = box.current!.getBoundingClientRect(); + const rows = Math.round((e.clientY - rect.top - (VISIBLE * ROW_H) / 2) / ROW_H); + posRef.current = d.pos0; + animateTo(Math.round(d.pos0) + rows); + } + return; + } + + // Release velocity from the last ~100ms of movement (zero if the finger rested before lifting). + const now = performance.now(); + const s = samples.current; + let v = 0; + if (s.length > 1 && now - s[s.length - 1].t < 80) { + const first = s[0]; + const dt = (s[s.length - 1].t - first.t) / 1000; + if (dt > 0.005) v = (s[s.length - 1].pos - first.pos) / dt; + } + v = Math.max(-MAX_VEL, Math.min(MAX_VEL, v)); + if (Math.abs(v) < SLOW_VEL) settleTo(posRef.current + v * 0.1, v); + else animateTo(posRef.current + v / SETTLE_K); + }; + + const onWheel = (e: React.WheelEvent) => { + if (Math.abs(e.deltaY) >= NOTCH_DELTA) { + // mouse notch: one value per notch, repeated notches build on the pending target + const base = raf.current ? targetRef.current : Math.round(posRef.current); + animateTo(base + Math.sign(e.deltaY)); + return; + } + // trackpad: follow continuously, settle when it goes quiet + stop(); + setPosition(posRef.current + e.deltaY / (ROW_H * 1.5)); + settleTimer.current = window.setTimeout(() => { + settleTimer.current = 0; + settleTo(posRef.current, 0); + }, 120); + }; + + const onKeyDown = (e: React.KeyboardEvent) => { + if (e.key === "ArrowUp") animateTo(Math.round(posRef.current) + 1); + else if (e.key === "ArrowDown") animateTo(Math.round(posRef.current) - 1); + else return; + e.preventDefault(); + }; + + const centre = Math.round(pos); + const rows = []; + for (let v = Math.max(min, centre - REACH); v <= Math.min(max, centre + REACH); v++) { + const off = v - pos; + rows.push( +
+ {v} +
, + ); + } + + return ( +
+
+ {rows} +
+ ); +} diff --git a/src/geometry.ts b/src/geometry.ts index ff348b6..2067e1d 100644 --- a/src/geometry.ts +++ b/src/geometry.ts @@ -8,8 +8,45 @@ export const fitScale = (room: Room, availW: number, availH: number): number => export const DEFAULT_SIZES: Record = { chair: { width: 0.5, height: 0.5 }, table: { width: 1.8, height: 0.8 }, + screen: { width: 2, height: 0.2 }, }; +/** Types the user can resize after placing. */ +export const RESIZABLE: Record = { chair: false, table: false, screen: true }; + +export const MIN_SCREEN_SIZE = { width: 0.5, height: 0.1 }; + +export type Edge = "left" | "right" | "top" | "bottom"; + +/** + * New rect when dragging one edge of `start` to the pointer (meters). The opposite edge stays fixed; + * the result never shrinks below `min` and never leaves the room. + */ +export function resizeRect( + start: Rect, + edge: Edge, + px: number, + py: number, + room: Room, + min: { width: number; height: number }, +): Rect { + const r = { ...start }; + if (edge === "right") { + r.width = clamp(px - start.x, min.width, room.width - start.x); + } else if (edge === "left") { + const right = start.x + start.width; + r.x = clamp(px, 0, right - min.width); + r.width = right - r.x; + } else if (edge === "bottom") { + r.height = clamp(py - start.y, min.height, room.height - start.y); + } else { + const bottom = start.y + start.height; + r.y = clamp(py, 0, bottom - min.height); + r.height = bottom - r.y; + } + return r; +} + export const DEFAULT_ROOM: Room = { width: 10, height: 8 }; const clamp = (v: number, min: number, max: number): number => Math.min(Math.max(v, min), max); diff --git a/src/store.ts b/src/store.ts index 737c94d..3d6a55f 100644 --- a/src/store.ts +++ b/src/store.ts @@ -11,6 +11,7 @@ export interface LayoutState { export type Action = | { kind: "add"; id: string; type: FurnitureType; x: number; y: number } | { kind: "move"; id: string; x: number; y: number } + | { kind: "resize"; id: string; x: number; y: number; width: number; height: number } | { kind: "setAvailable"; type: FurnitureType; value: number } | { kind: "setSeats"; value: number }; @@ -18,6 +19,7 @@ export const initialState: LayoutState = { room: DEFAULT_ROOM, items: [], configs: { chair: { type: "chair", available: 20 }, table: { type: "table", available: 6, seatsPerUnit: 8 }, + screen: { type: "screen", available: 2 }, }, }; @@ -44,6 +46,15 @@ export function reducer(state: LayoutState, action: Action): LayoutState { i.id === action.id ? { ...i, x: action.x, y: action.y } : i, ), }; + case "resize": + return { + ...state, + items: state.items.map((i) => + i.id === action.id + ? { ...i, x: action.x, y: action.y, width: action.width, height: action.height } + : i, + ), + }; case "setAvailable": return { ...state, diff --git a/src/types.ts b/src/types.ts index 0f0ece5..bfce539 100644 --- a/src/types.ts +++ b/src/types.ts @@ -1,4 +1,12 @@ -export type FurnitureType = "chair" | "table"; +export type FurnitureType = "chair" | "table" | "screen"; + +export const FURNITURE_TYPES: FurnitureType[] = ["chair", "table", "screen"]; + +export const TYPE_LABEL: Record = { + chair: "Chair", + table: "Table", + screen: "Screen", +}; export interface FurnitureItem { id: string;