@dineug/erd-editor 3.8.0 → 3.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/components/erd/canvas/column-drag-ghost/ColumnDragGhost.d.ts +10 -0
- package/dist/components/erd/canvas/column-drag-ghost/columnDragPointer.d.ts +28 -0
- package/dist/components/erd/canvas/sceneTokens.d.ts +31 -5
- package/dist/components/erd/canvas/table/cellLayout.d.ts +6 -6
- package/dist/components/erd/canvas/table/colorEdge.d.ts +10 -0
- package/dist/components/erd/canvas/table/column/Column.d.ts +12 -3
- package/dist/components/erd/canvas/useMoveEntity.d.ts +6 -0
- package/dist/components/erd/diff-viewer/diff.d.ts +9 -2
- package/dist/components/erd/diff-viewer/diffContext.d.ts +9 -0
- package/dist/components/primitives/context-menu/context-menu-content/ContextMenuContent.d.ts +2 -0
- package/dist/components/primitives/context-menu/context-menu-content/fitMenu.d.ts +20 -0
- package/dist/components/table-view/Table.styles.d.ts +6 -1
- package/dist/components/table-view/column/useColumnCell.d.ts +5 -0
- package/dist/components/visualization/Visualization.styles.d.ts +4 -1
- package/dist/components/visualization/captureDrag.d.ts +14 -0
- package/dist/components/visualization/useViewGestures.d.ts +2 -2
- package/dist/constants/layout.d.ts +29 -6
- package/dist/engine/index.js +8 -8
- package/dist/engine/modules/editor/generator.actions.d.ts +3 -2
- package/dist/engine/modules/settings/generator.actions.d.ts +15 -0
- package/dist/engine/rx-store.d.ts +1 -0
- package/dist/engine/tag.d.ts +2 -0
- package/dist/erd-editor.umd.js +328 -314
- package/dist/hooks/usePinchZoom.d.ts +27 -0
- package/dist/index.js +5893 -5427
- package/dist/konva/scene/columnDropTarget.d.ts +10 -3
- package/dist/konva/scene/viewLayout.d.ts +10 -5
- package/dist/konva/scene/viewport.d.ts +6 -0
- package/dist/{schemaGCService-CXVjeF9p.js → schemaGCService-CFiz1xOG.js} +3089 -2986
- package/dist/styles/elevation.styles.d.ts +7 -0
- package/dist/themes/radix-ui-theme.config.d.ts +12 -0
- package/dist/themes/tokens.d.ts +7 -0
- package/dist/utils/calcTable.d.ts +1 -5
- package/dist/utils/domEvent.d.ts +2 -0
- package/dist/utils/pinch.d.ts +34 -0
- package/dist/utils/validation.d.ts +1 -0
- package/dist/workers/exportPng.shared-worker.js +26 -26
- package/package.json +3 -3
|
@@ -1,34 +1,34 @@
|
|
|
1
|
-
import*as e from"comlink";import{CHARSET as t,DECLARATION as n,IMPORT as r,LAYER as i,NAMESPACE as a,RULESET as o,alloc as s,dealloc as c,parse as l}from"stylis";import{Container as u}from"konva/lib/Container";import{Group as d}from"konva/lib/Group";import{Layer as f}from"konva/lib/Layer";import{Node as p}from"konva/lib/Node";import{Circle as m}from"konva/lib/shapes/Circle";import{Line as h}from"konva/lib/shapes/Line";import{Path as g}from"konva/lib/shapes/Path";import{Rect as _}from"konva/lib/shapes/Rect";import{Text as v}from"konva/lib/shapes/Text";import{Stage as ee}from"konva/lib/Stage";import{DD as te}from"konva/lib/DragAndDrop";import{Konva as ne}from"konva/lib/Global";import{camelCase as re,clamp as ie,cloneDeep as ae,difference as oe,groupBy as se,head as ce,isBoolean as le,isFunction as ue,isNil as y,isNotNil as b,isNumber as x,isPlainObject as de,isString as S,last as fe,lowerFirst as pe,noop as me,omit as he,pick as ge,range as _e,snakeCase as ve,uniq as ye,upperFirst as be}from"es-toolkit";import{Observable as C,Subject as xe,animationFrames as Se,asapScheduler as Ce,buffer as we,debounceTime as Te,defer as Ee,filter as De,fromEvent as Oe,groupBy as ke,map as Ae,merge as je,mergeMap as Me,observeOn as Ne,share as Pe,take as Fe,takeUntil as Ie,tap as Le,throttleTime as Re}from"rxjs";import{get as ze,isEmpty as Be,round as Ve}from"es-toolkit/compat";import{nanoid as w}from"nanoid";import He from"deepmerge";import{Kind as Ue,TokenKind as We,parse as Ge}from"graphql";import Ke,{getAccurateAgent as qe}from"@egjs/agent";import{ArrowRight as Je,Atom as Ye,Braces as Xe,Brackets as Ze,CaseSensitive as Qe,Check as $e,ChevronDown as et,ChevronRight as tt,Code as nt,Contrast as rt,Copy as it,Database as at,Diff as ot,ExternalLink as st,Eye as ct,FileDiff as lt,FileImage as ut,FileInput as dt,FileOutput as ft,Fullscreen as pt,GripVertical as mt,Hand as ht,KeyRound as gt,Maximize as _t,Minimize as vt,Minus as yt,MoonStar as bt,MousePointer2 as xt,Network as St,Palette as Ct,Plus as wt,Redo2 as Tt,RefreshCw as Et,RotateCcwClock as Dt,Search as Ot,Settings as kt,Share2 as At,Spline as jt,StickyNote as Mt,Sun as Nt,Table as Pt,Table2 as Ft,TableProperties as It,Undo2 as Lt,WandSparkles as Rt,Waypoints as zt,Workflow as Bt,X as Vt}from"lucide";import{amber as Ht,amberA as Ut,amberDark as Wt,amberDarkA as Gt,blue as Kt,blueA as qt,blueDark as Jt,blueDarkA as Yt,bronze as Xt,bronzeA as Zt,bronzeDark as Qt,bronzeDarkA as $t,brown as en,brownA as tn,brownDark as nn,brownDarkA as rn,crimson as an,crimsonA as on,crimsonDark as sn,crimsonDarkA as cn,cyan as ln,cyanA as un,cyanDark as dn,cyanDarkA as fn,gold as pn,goldA as mn,goldDark as hn,goldDarkA as gn,grass as _n,grassA as vn,grassDark as yn,grassDarkA as bn,gray as xn,grayA as Sn,grayDark as Cn,grayDarkA as wn,green as Tn,greenA as En,greenDark as Dn,greenDarkA as On,indigo as kn,indigoA as An,indigoDark as jn,indigoDarkA as Mn,iris as Nn,irisA as Pn,irisDark as Fn,irisDarkA as In,jade as Ln,jadeA as Rn,jadeDark as zn,jadeDarkA as Bn,lime as Vn,limeA as Hn,limeDark as Un,limeDarkA as Wn,mauve as Gn,mauveA as Kn,mauveDark as qn,mauveDarkA as Jn,mint as Yn,mintA as Xn,mintDark as Zn,mintDarkA as Qn,olive as $n,oliveA as er,oliveDark as tr,oliveDarkA as nr,orange as rr,orangeA as ir,orangeDark as ar,orangeDarkA as or,pink as sr,pinkA as cr,pinkDark as lr,pinkDarkA as ur,plum as dr,plumA as fr,plumDark as pr,plumDarkA as mr,purple as hr,purpleA as gr,purpleDark as _r,purpleDarkA as vr,red as yr,redA as br,redDark as xr,redDarkA as Sr,ruby as Cr,rubyA as wr,rubyDark as Tr,rubyDarkA as Er,sage as Dr,sageA as Or,sageDark as kr,sageDarkA as Ar,sand as jr,sandA as Mr,sandDark as Nr,sandDarkA as Pr,sky as Fr,skyA as Ir,skyDark as Lr,skyDarkA as Rr,slate as zr,slateA as Br,slateDark as Vr,slateDarkA as Hr,teal as Ur,tealA as Wr,tealDark as Gr,tealDarkA as Kr,tomato as qr,tomatoA as Jr,tomatoDark as Yr,tomatoDarkA as Xr,violet as Zr,violetA as Qr,violetDark as $r,violetDarkA as ei,yellow as ti,yellowA as ni,yellowDark as ri,yellowDarkA as ii}from"@radix-ui/colors";import{layoutWithLines as ai,prepareWithSegments as oi}from"@chenglou/pretext";import{Easings as si,Tween as ci}from"konva/lib/Tween";function li(e){"@babel/helpers - typeof";return li=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},li(e)}function ui(e,t){if(li(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(li(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function di(e){var t=ui(e,`string`);return li(t)==`symbol`?t:t+``}function fi(e,t,n){return(t=di(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var pi=class extends EventTarget{constructor(...e){super(...e),fi(this,`textContent`,``)}},mi=class{};function hi(){let e=new OffscreenCanvas(1,1);return e.style??={},e}typeof document>`u`&&(Reflect.set(globalThis,`document`,{createElement:e=>e===`canvas`?hi():new pi}),Reflect.set(globalThis,`Node`,mi),Reflect.set(globalThis,`HTMLElement`,mi));function gi(e,t){return Object.freeze({key:t??Symbol(),value:e})}var _i={subscribe:`@@r-html/context-subscribe`,unsubscribe:`@@r-html/context-unsubscribe`};function vi(e,t){function n(n,r){return new CustomEvent(e,{detail:n,...t,...r})}return n.toString=()=>`${e}`,n.type=e,n}var yi=vi(_i.subscribe,{bubbles:!0,composed:!0}),bi=vi(_i.unsubscribe,{bubbles:!0,composed:!0});function xi(e,t){let n=e=>{let n=e;t.dispatchEvent(yi(n.detail))},r=e=>{let n=e;t.dispatchEvent(bi(n.detail))};return e.addEventListener(yi.type,n),e.addEventListener(bi.type,r),()=>{e.removeEventListener(yi.type,n),e.removeEventListener(bi.type,r)}}function Si(e,...t){try{return e?.(...t)}catch(e){console.error(e)}}var Ci=queueMicrotask??(e=>{Promise.resolve().then(e)}),wi=e=>t=>typeof t===e,Ti=wi(`object`),Ei=wi(`bigint`),Di=wi(`boolean`),Oi=wi(`function`),ki=wi(`number`),Ai=wi(`string`),ji=wi(`symbol`),Mi=wi(`undefined`),Ni=e=>e===null,{isArray:Pi}=Array,Fi=e=>Ti(e)&&!Ni(e)&&!Pi(e),Ii=e=>Ei(e)||Di(e)||ki(e)||Ai(e)||ji(e)||Mi(e)||Ni(e);function Li(){let e=new Set,t=t=>(e.has(t)||e.add(t),()=>{e.delete(t)});return{subscribe:t,next:t=>{e.forEach(e=>e(t))},asReadonly:()=>({subscribe:t})}}var Ri=`...`,zi=`@@r-html-${Math.random().toString().substring(2,8)}`,Bi=`${Ri}${zi}`,Vi=RegExp(`${zi}_(\\d+)_`,`g`),Hi=RegExp(`^${zi}_\\d+_$`),Ui=/^\n/,Wi=function(e){return e.attribute=`attribute`,e.boolean=`boolean`,e.event=`event`,e.property=`property`,e.spread=`spread`,e.directive=`directive`,e}({}),Gi=Symbol.for(`https://github.com/dineug/r-html#beforeMount`),Ki=Symbol.for(`https://github.com/dineug/r-html#mounted`),qi=Symbol.for(`https://github.com/dineug/r-html#unmounted`),Ji=Symbol.for(`https://github.com/dineug/r-html#beforeFirstUpdate`),Yi=Symbol.for(`https://github.com/dineug/r-html#beforeUpdate`),Xi=Symbol.for(`https://github.com/dineug/r-html#firstUpdated`),Zi=Symbol.for(`https://github.com/dineug/r-html#updated`),Qi=[Gi,Ki,qi,Ji,Yi,Xi,Zi],$i=Symbol.for(`https://github.com/dineug/r-html#Directive`),ea=Symbol.for(`https://github.com/dineug/r-html#TemplateLiterals`),ta=null;function na(e){ta=e}var ra=e=>t=>{ta&&(ta[e]??(ta[e]=[])).push(t)},ia=ra(Gi),aa=ra(Ki),oa=ra(qi);function sa(e,t){let n=Reflect.get(e,t,e);Pi(n)&&n.forEach(Si)}function ca(e){Qi.forEach(t=>Reflect.set(e,t,null,e))}function la(e,t){if(t.has(e))throw TypeError(`Cannot initialize the same private elements twice on an object`)}function T(e,t,n){la(e,t),t.set(e,n)}function ua(e,t,n){if(typeof e==`function`?e===t:e.has(t))return arguments.length<3?t:n;throw TypeError(`Private element is not present on this object`)}function E(e,t,n){return e.set(ua(e,t),n),n}function D(e,t){return e.get(ua(e,t))}var da=Li(),fa=e=>e,pa=e=>{var t,n;return t=new WeakMap,n=new WeakMap,class extends e{constructor(e,r,i,a){super(e,r,i,a),T(this,t,[]),T(this,n,null),this.hmr()}commit(e){let n=fa(e);super.commit(n),E(t,this,e)}hmr(){E(n,this,da.subscribe(e=>D(t,this).includes(e)&&this.commit(D(t,this))))}destroy(){D(n,this)?.call(this),super.destroy?.()}}},ma=new WeakMap,ha=new WeakMap,ga=new WeakMap,_a=new WeakMap,va=new WeakMap,ya={shallow:!1},ba=null;function xa(e){return ba=e,Si(e),ba=null,()=>Sa(e)}function Sa(e){Ia(e);let t=va.get(e);if(t)for(let[n]of t.entries())ha.get(n)?.delete(e);t&&va.delete(e)}function Ca(e){if(!ba)return;let t=ha.get(e);t?t.has(ba)||t.add(ba):ha.set(e,new Set([ba]))}function wa(e,t){if(!ba)return;let n=va.get(ba);if(n){let r=n.get(e);r?r.has(t)||r.add(t):n.set(e,new Set([t]))}else va.set(ba,new Map([[e,new Set([t])]]))}var Ta=e=>e instanceof Node||e instanceof Map||e instanceof Set||e instanceof WeakMap||e instanceof WeakSet||e instanceof RegExp||e instanceof Date||e instanceof Promise||(Pi(e)||Fi(e))&&Object.isFrozen(e);function Ea(e,t={}){let{shallow:n}=Object.assign({},ya,t),r=new Proxy(e,{get(r,i,a){let o=Reflect.get(r,i,a);return Ta(o)?o:(Ca(e),wa(e,i),!n&&(Fi(o)||Pi(o))&&!ga.has(o)?ma.has(o)?ma.get(o):Ea(o,t):o)},set(e,t,n,r){let i=Reflect.get(e,t,r),a=Reflect.set(e,t,n,r);return(!Pi(e)&&i!==n||t===`length`)&&(La(e,t),Ba(e,t)),a},deleteProperty(e,t){let n=Reflect.deleteProperty(e,t);return La(e,t),Ba(e,t),n}});return ma.set(e,r),ga.set(r,e),r}function Da(e){return(_a.get(e)??_a.set(e,Li()).get(e)).asReadonly()}var Oa=[],ka=new Map,Aa=new Map,ja=!0;function Ma(e,t,n){let r=va.get(n);if(!r)return!1;let i=r.get(e);return i?i.has(t):!1}var Na=e=>t=>{let n=ka.get(t),r=()=>{},i=n?.promise?n.promise:new Promise(e=>{r=e});if(!n){let n={type:e,promise:i,fn:t,resolve:()=>{r()}};Oa.push(n),ka.set(t,n)}return ja&&=(Ci(za),!1),i},Pa=Na(`observer`),Fa=Na(`nextTick`);function Ia(e){let t=ka.get(e);if(!t)return;let n=Oa.indexOf(t);n===-1||Oa.splice(n,1),ka.delete(e),t.resolve()}var La=(e,t)=>ha.get(e)?.forEach(n=>Ma(e,t,n)&&Pa(n));function Ra(){let e=Oa.shift();if(e){if(ka.delete(e.fn),e.type===`observer`)Sa(e.fn),xa(e.fn),e.resolve();else if(e.type===`nextTick`){let t=Si(e.fn);t instanceof Promise?t.finally(e.resolve):e.resolve()}}}function za(){for(;Oa.length;)Ra();ja=!0}function Ba(e,t){let n=ma.get(e);if(!n)return;let r=_a.get(n);if(!r)return;let i=Aa.get(n);i?i.has(t)||i.add(t):(Aa.set(n,new Set([t])),Fa(()=>{let e=Aa.get(n);e&&(Aa.delete(n),e.forEach(e=>r.next(e)))}))}function Va(e,t){let n=Ea({value:t.value},{shallow:!0}),r=e=>{n.value=e},i=()=>e instanceof HTMLElement?e:e.parentElement??e.host,a=()=>{i().dispatchEvent(yi({context:t,observer:r}))};return a(),ia(a),oa(()=>{i().dispatchEvent(bi({context:t,observer:r}))}),n}function Ha(e,t,n){let r=e instanceof HTMLElement?e:e.parentElement??e.host,i=Li(),a=new Map,o=e=>{let r=e;r.detail?.context?.key===t.key&&(r.stopPropagation(),r.detail.observer(n),a.set(r.detail.observer,i.subscribe(r.detail.observer)))},s=e=>{let n=e;n.detail?.context?.key===t.key&&(n.stopPropagation(),a.get(n.detail.observer)?.(),a.delete(n.detail.observer))};return r.addEventListener(yi.type,o),r.addEventListener(bi.type,s),{set:e=>{i.next(e)},destroy:()=>{r.removeEventListener(yi.type,o),r.removeEventListener(bi.type,s);for(let e of a.values())e();a.clear()}}}var Ua=function(e){return e.node=`node`,e.attribute=`attribute`,e}({});function Wa(e,t){return Reflect.set(t,$i,e),t}function Ga(e,t,n){let r={startNode:e,endNode:t};return Reflect.defineProperty(r,"helper",{value:n}),r}function Ka(e,t){return(...n)=>Wa(Ua.node,[e(...n),t])}var qa=function(e){return e.html=`html`,e.svg=`svg`,e.css=`css`,e}({}),Ja=new Set(Object.values(qa)),Ya=Symbol.for(`https://github.com/dineug/r-html#CSSSource`),Xa=new WeakMap,Za=new WeakMap,Qa=new Set([qa.svg]),$a=e=>`${zi}_${e}_`,eo=e=>Pi(e)&&Pi(e.raw),to=e=>Fi(e)&&eo(e.strings)&&Pi(e.values)&&Ja.has(Reflect.get(e,ea)??``),no=e=>to(e)&&e[ea]===qa.css,ro=(e,t=!0,n=!1)=>r=>t?!!r?.trimStart().startsWith(e):n?!!r?.trimEnd().endsWith(e):new RegExp(e).test(r??``),io=ro(Bi),ao=ro(`.`),oo=ro(`?`),so=ro(`@`),co=ro(`on`),lo=ro(zi,!1),uo=e=>lo(e)&&Hi.test(e?.trim()??``),fo=({type:e,value:t})=>e===Wi.spread||e===Wi.directive||lo(t),po=e=>Qa.has(e),mo=e=>uo(e)?Wi.directive:io(e)?Wi.spread:ao(e)?Wi.property:so(e)||co(e)?Wi.event:oo(e)?Wi.boolean:Wi.attribute,ho=e=>io(e)?e.substring(3):uo(e)?e:ao(e)||so(e)||oo(e)?e.substring(1):co(e)?e.substring(2):e;function go(e){let t=[],n=Vi.exec(e);for(;n;){let r=Number(n[1]);t.push([n[0],Number.isInteger(r)?r:-1]),n=Vi.exec(e)}return t}var _o=Symbol(`https://github.com/dineug/r-html.git#hostBridge`);function vo(e,t){if(t instanceof ShadowRoot){let n=t.host;Reflect.set(e,_o,n)}return()=>{Reflect.deleteProperty(e,_o)}}function yo(e){return Reflect.get(e,_o)??null}function bo(e){return Ii(e)&&!Ni(e)&&!Mi(e)||no(e)?String(e):``}var xo={createElement:(e,t=!1)=>t?document.createElementNS(`http://www.w3.org/2000/svg`,e):document.createElement(e),createText:e=>document.createTextNode(e),createMarker:e=>document.createComment(e),createFragment:()=>document.createDocumentFragment(),createEventBus:()=>document.createElement(`div`),insertBefore(e,t){let n=t.parentNode;n&&n.insertBefore(e,t)},appendChild(e,t){e.appendChild(t)},prependChild(e,t){e.prepend(t)},removeChild(e){e.parentNode?.removeChild(e)},parentOf:e=>e.parentNode,nextSiblingOf:e=>e.nextSibling,setText(e,t){e.data=t},setAttribute(e,t,n,r){e.setAttribute(t,r?bo(n).trim():n)},removeAttribute(e,t){e.removeAttribute(t)},isHostNode:e=>e instanceof Node,isMarker:e=>e instanceof Comment,isText:e=>e instanceof Text,isElement:e=>e instanceof Element,isFragment:e=>e instanceof DocumentFragment,addEventListener(e,t,n,r){e.addEventListener(t,n,r)},removeEventListener(e,t,n,r){e.removeEventListener(t,n,r)},getRoot:e=>e.getRootNode(),createComponentContext(e,t){let n={host:document.body,get parentElement(){return e.parentElement},dispatchEvent:e=>t.dispatchEvent(e)},r=e.getRootNode();if(r instanceof ShadowRoot)n.host=r.host;else if(r instanceof DocumentFragment){let e=yo(r);e&&(n.host=e)}return n},bridgeFragment(e,t){let n=xi(e,t),r=vo(e,t);return()=>{n(),r()}}};function So(e){"@babel/helpers - typeof";return So=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},So(e)}function Co(e,t){if(So(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(So(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function wo(e){var t=Co(e,`string`);return So(t)==`symbol`?t:t+``}function To(e,t,n){return(t=wo(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Eo,Do=function(e){return e.element=`element`,e.text=`text`,e.comment=`comment`,e}({});Eo=Symbol.iterator;var Oo=class{constructor(e={}){To(this,`type`,`comment`),To(this,`value`,``),To(this,`attrs`,void 0),To(this,`parent`,null),To(this,`children`,void 0),Object.assign(this,e)}*iterParent(){yield this,this.parent&&(yield*this.parent.iterParent())}*[Eo](){if(yield this,this.children)for(let e of this.children)yield*e}},ko=e=>!!e&&e!==`false`;function Ao(e){let t=({type:t,value:n},r=!1)=>t===Do.element?e.createElement(n,r):t===Do.text?e.createText(n):e.createMarker(n),n=(t,{type:n,name:r,value:i})=>{switch(n){case Wi.attribute:e.setAttribute(t,r,i??``,!1);break;case Wi.boolean:ko(i)&&e.setAttribute(t,r,``,!1);break;case Wi.property:Reflect.set(t,r,i,t)}},r=(t,n)=>{e.insertBefore(t,n)},i=(t,n)=>{let r=e.parentOf(n);if(!r)return;let i=e.nextSiblingOf(n);i?e.insertBefore(t,i):e.appendChild(r,t)},a=t=>e.parentOf(t)?(e.removeChild(t),t):null,o=(t,n)=>{let r=[],i=e.nextSiblingOf(t);for(;i&&i!==n;)r.push(i),i=e.nextSiblingOf(i);return r},s=(e,t)=>{o(e,t).forEach(a)};return{...e,createNode:t,setAttr:n,insertBeforeNode:r,insertAfterNode:i,removeNode:a,rangeNodes:o,removeRange:s}}var O=Ao(xo);O.setAttr,O.insertBeforeNode,O.insertAfterNode,O.removeNode,O.rangeNodes,O.removeRange;var jo=O.isHostNode;function Mo(e,{type:t,name:n,value:r}){switch(t){case Wi.attribute:case Wi.property:Reflect.set(e,n,r);break;case Wi.boolean:Reflect.set(e,n,ko(r))}}var No=(e,t)=>e.length===t.length&&e.every((e,n)=>e===t[n]);function Po(e,t){if(e===t)return!0;let n=Fi(e)?e:{},r=Fi(t)?t:{},i=Object.keys(n),a=Object.keys(r);return i.length===a.length&&a.every(e=>Reflect.get(n,e)===Reflect.get(r,e))}var Fo=e=>Pi(e)&&Oi(e[0])&&(Mi(e[1])||Di(e[1])||Fi(e[1])),Io=()=>{},Lo=e=>e instanceof HTMLElement,Ro=e=>e instanceof SVGElement,zo=e=>e instanceof Promise,Bo=new WeakMap,Vo=new WeakMap,Ho=new WeakMap,Uo=new WeakMap,Wo=new WeakMap,Go=new WeakMap,Ko=new WeakMap,qo=new WeakMap,Jo=new WeakMap,Yo=class{constructor(e,{name:t,value:n},r=O){T(this,Bo,void 0),T(this,Vo,void 0),T(this,Ho,void 0),T(this,Uo,void 0),T(this,Wo,[]),T(this,Go,[]),T(this,Ko,void 0),T(this,qo,null),T(this,Jo,null),E(Bo,this,r),E(Vo,this,e),E(Ho,this,t),E(Uo,this,n),E(Wo,this,go(n??``)),E(Ko,this,D(Wo,this).length===1&&(n??``).trim()===D(Wo,this)[0][0])}commit(e){let t=D(Wo,this).map(([t,n])=>e[n]);if(No(D(Go,this),t))return;let n=t[t.length-1];if(D(Ho,this)===`class`)this.classCommit(n);else if(D(Ho,this)===`style`)this.styleCommit(n);else if(D(Ko,this))D(Bo,this).setAttribute(D(Vo,this),D(Ho,this),t[0],!0);else{let e=t.reduce((e,t,n)=>e.replace(new RegExp(D(Wo,this)[n][0]),bo(t)),D(Uo,this)??``);D(Bo,this).setAttribute(D(Vo,this),D(Ho,this),e.trim(),!1)}E(Go,this,t)}classCommit(e){let t=D(Vo,this);if(!Lo(t)&&!Ro(t))return;let n=D(Go,this)[D(Go,this).length-1];if(n===e||Pi(n)&&Pi(e)&&No(n,e)||Fi(n)&&Fi(e)&&Po(n,e))return;let r=[...t.classList],i=Zo(e);if(Ni(D(Jo,this)))E(Jo,this,r);else{let e=D(Jo,this),n=r.filter(t=>!e.includes(t)&&!i.includes(t));t.classList.remove(...n)}t.classList.add(...i)}styleCommit(e){let t=D(Vo,this);if(!Lo(t)&&!Ro(t))return;let n=D(Go,this)[D(Go,this).length-1];if(Po(n,e))return;let r=Xo(t),i=Fi(e)?e:{};if(Ni(D(qo,this)))E(qo,this,r);else{let e=D(qo,this);Object.keys(r).filter(t=>!e[t]&&!i[t]).forEach(e=>t.style.removeProperty(e))}for(let e of Object.keys(i))t.style.setProperty(e,i[e])}};function Xo(e){let t={};for(let n=0;n<e.style.length;n++){let r=e.style.item(n);t[r]=e.style.getPropertyValue(r)}return t}function Zo(e,t=[]){if(!e)return t;if(no(e))return t.push(bo(e)),t;if(Ii(e))t.push(bo(e));else if(Ti(e)){if(Pi(e))for(let n=0;n<e.length;n++)e[n]&&Zo(e[n],t);else for(let n in e)e[n]&&t.push(bo(n))}return t}var Qo=new WeakMap,$o=new WeakMap,es=new WeakMap,ts=new WeakMap,ns=new WeakMap,rs=class{constructor(e,{name:t,value:n},r=O){T(this,Qo,void 0),T(this,$o,void 0),T(this,es,void 0),T(this,ts,[]),T(this,ns,[]),E(Qo,this,r),E($o,this,e),E(es,this,t),E(ts,this,go(n??``))}commit(e){let t=D(ts,this).map(([t,n])=>e[n]);if(No(D(ns,this),t))return;let n=t[t.length-1];ko(n)?D(Qo,this).setAttribute(D($o,this),D(es,this),``,!1):D(Qo,this).removeAttribute(D($o,this),D(es,this)),E(ns,this,t)}},is=e=>Pi(e)&&Reflect.get(e,$i)===Ua.attribute,as=new WeakMap,os=new WeakMap,ss=new WeakMap,cs=new WeakMap,ls=new WeakMap,us=class{constructor(e,{name:t}){T(this,as,void 0),T(this,os,void 0),T(this,ss,null),T(this,cs,null),T(this,ls,null),E(as,this,e),E(os,this,go(t)[0])}commit(e){let[,t]=D(os,this),n=e[t];if(!is(n))return;let[r,i]=n;if(D(ss,this)!==i)D(ls,this)?.call(this),E(cs,this,i({node:D(as,this)})),E(ss,this,i),E(ls,this,D(cs,this)?.call(this,r));else{let e=D(cs,this)?.call(this,r);D(ls,this)!==e&&(D(ls,this)?.call(this),E(ls,this,e))}}destroy(){D(ls,this)?.call(this)}},ds=new WeakMap,fs=new WeakMap,ps=new WeakMap,ms=new WeakMap,hs=new WeakMap,gs=class{constructor(e,{name:t,value:n},r=O){T(this,ds,void 0),T(this,fs,void 0),T(this,ps,void 0),T(this,ms,[]),T(this,hs,[]),E(ds,this,r),E(fs,this,e),E(ps,this,t),E(ms,this,go(n??``))}commit(e){let t=D(ms,this).map(([t,n])=>e[n]).filter(e=>Oi(e)||Fo(e));No(D(hs,this),t)||(this.clear(),t.forEach(e=>{let[t,n]=_s(e);D(ds,this).addEventListener(D(fs,this),D(ps,this),t,n)}),E(hs,this,t))}clear(){D(hs,this).forEach(e=>{let[t,n]=_s(e);D(ds,this).removeEventListener(D(fs,this),D(ps,this),t,n)})}destroy(){this.clear()}};function _s(e){return Oi(e)?[e,void 0]:e}var vs=new WeakMap,ys=new WeakMap,bs=new WeakMap,xs=new WeakMap,Ss=class{constructor(e,{name:t,value:n}){T(this,vs,void 0),T(this,ys,void 0),T(this,bs,[]),T(this,xs,[]),E(vs,this,e),E(ys,this,t),E(bs,this,go(n??``))}commit(e){let t=D(bs,this).map(([t,n])=>e[n]);if(No(D(xs,this),t))return;let n=t[t.length-1];Reflect.set(D(vs,this),D(ys,this),n,D(vs,this)),E(xs,this,t)}},Cs=new WeakMap,ws=new WeakMap,Ts=new WeakMap,Es=class{constructor(e,{name:t}){T(this,Cs,void 0),T(this,ws,void 0),T(this,Ts,null),E(Cs,this,e),E(ws,this,go(t)[0])}commit(e){let[,t]=D(ws,this),n=e[t];!Fi(n)||Po(D(Ts,this),n)||(Object.keys(n).forEach(e=>Reflect.set(D(Cs,this),e,n[e],D(Cs,this))),E(Ts,this,n))}},Ds=(e,t,n=O)=>t.type===Wi.attribute?new Yo(e,t,n):t.type===Wi.boolean?new rs(e,t,n):t.type===Wi.event?new gs(e,t,n):t.type===Wi.property?new Ss(e,t):t.type===Wi.spread?new Es(e,t):new us(e,t),Os=new WeakMap,ks=new WeakMap,As=new WeakMap,js=new WeakMap,Ms=new WeakMap,Ns=class{constructor(e,{value:t},n=O){T(this,Os,void 0),T(this,ks,void 0),T(this,As,void 0),T(this,js,[]),T(this,Ms,[]),E(Os,this,n),E(ks,this,e),E(As,this,t),Ai(t)&&E(js,this,go(t))}commit(e){let t=D(js,this).map(([t,n])=>e[n]);if(No(D(Ms,this),t))return;E(Ms,this,t);let n=D(Ms,this).reduce((e,t,n)=>e.replace(new RegExp(D(js,this)[n][0]),Ii(t)&&!Ni(t)&&!Mi(t)?String(t):``),D(As,this)??``);D(Os,this).setText(D(ks,this),n)}},Ps=new WeakMap,Fs=new WeakMap,Is=new WeakMap,Ls=new WeakMap,Rs=class{constructor(e,{name:t,value:n}){T(this,Ps,void 0),T(this,Fs,void 0),T(this,Is,[]),T(this,Ls,[]),E(Ps,this,e),E(Fs,this,t),E(Is,this,go(n??``))}commit(e){let t=D(Is,this).map(([t,n])=>e[n]);if(No(D(Ls,this),t))return;let n=t[t.length-1];Reflect.set(D(Ps,this),D(Fs,this),n),E(Ls,this,t)}},zs=function(e){return e.create=`create`,e.move=`move`,e}({});function Bs(e){let t=[],n=new Map;return e.forEach(({type:e,value:r},i)=>{let a={type:e,key:e===Ec.templateLiterals?r.strings:r};t.push(a),n.set(a,i)}),{items:t,itemToIndex:n}}function Vs(e){let t=[],n=new Map;return e.forEach((e,r)=>{let i=Ic(e),a={type:i,key:i===Ec.templateLiterals?e.strings:e};t.push(a),n.set(a,r)}),{items:t,itemToIndex:n}}function Hs(e,t,n){let r=!!n?.strict,i={update:[],delete:[]},a=new Set,o=[],s=e.items,c=t.items;return s.forEach((e,t)=>{let n=c.findIndex((t,n)=>e.type===t.type&&e.key===t.key&&!a.has(n));n===-1?r?i.delete.push({from:t}):o.push(e):(a.add(n),i.update.push({action:`move`,from:t,to:n}))}),o.forEach(n=>{let r=e.itemToIndex.get(n),o=c.find((e,t)=>n.type===e.type&&!a.has(t));if(o){let e=t.itemToIndex.get(o);a.add(e),i.update.push({action:`move`,from:r,to:e})}else i.delete.push({from:r})}),c.forEach((e,n)=>{a.has(n)||i.update.push({action:`create`,from:-1,to:t.itemToIndex.get(e)})}),i.update.sort((e,t)=>e.to-t.to),i}var Us=new WeakMap,Ws=new WeakMap,Gs=new WeakMap,Ks=new WeakMap,qs=class{constructor(e,t,n=O){T(this,Us,void 0),T(this,Ws,void 0),T(this,Gs,void 0),T(this,Ks,[]),E(Ws,this,e),E(Gs,this,t),E(Us,this,n)}commit(e){let t=Hs(Bs(D(Ks,this)),Vs(e)),n={length:e.length};t.update.forEach(({action:t,from:r,to:i})=>{switch(t){case zs.create:let t=D(Us,this).createMarker(``);i===0?D(Us,this).insertAfterNode(t,D(Ws,this)):D(Ks,this).length?D(Us,this).insertAfterNode(t,n[i-1]?n[i-1].endNode:D(Ks,this)[i-1].endNode):D(Us,this).insertBeforeNode(t,D(Gs,this)),n[i]=new Xs(t,e[i],D(Us,this));break;case zs.move:if(n[i]=D(Ks,this)[r],i===r)return;i===0?D(Ks,this)[r].insert(`after`,D(Ws,this)):D(Ks,this)[r].insert(`after`,n[i-1]?n[i-1].endNode:D(Ks,this)[i-1].endNode)}}),t.delete.forEach(({from:e})=>D(Ks,this)[e].destroy()),E(Ks,this,Array.from(n)),D(Ks,this).forEach((t,n)=>t.commit(e[n]))}destroy(){D(Ks,this).forEach(e=>e.destroy())}},Js=new WeakMap,Ys=new WeakMap,Xs=class{constructor(e,t,n=O){T(this,Js,void 0),T(this,Ys,void 0),To(this,`startNode`,void 0),To(this,`endNode`,void 0),To(this,`type`,void 0),To(this,`value`,void 0),E(Ys,this,n),this.startNode=n.createMarker(``),this.endNode=n.createMarker(``),n.insertBeforeNode(this.startNode,e),n.insertAfterNode(this.endNode,e),n.removeNode(e),this.value=t,this.type=Ic(t),E(Js,this,Bc(this.type,this.startNode,this.endNode,n))}commit(e){D(Js,this).commit(e),this.value=e}insert(e,t){let n=[this.startNode,...D(Ys,this).rangeNodes(this.startNode,this.endNode),this.endNode];e===`before`?n.forEach(e=>D(Ys,this).insertBeforeNode(e,t)):n.reverse().forEach(e=>D(Ys,this).insertAfterNode(e,t))}destroy(){D(Js,this).destroy?.(),D(Ys,this).removeRange(this.startNode,this.endNode),D(Ys,this).removeNode(this.startNode),D(Ys,this).removeNode(this.endNode)}},Zs=new WeakMap,Qs=new WeakMap,$s=new WeakMap,ec=new WeakMap,tc=new WeakMap,nc=new WeakMap,rc=class{constructor(e,t,n=O){T(this,Zs,void 0),T(this,Qs,void 0),T(this,$s,void 0),T(this,ec,null),T(this,tc,null),T(this,nc,void 0),E(Qs,this,e),E($s,this,t),E(Zs,this,n)}commit(e){if(!Dc(e))return;let[t,n]=e;if(D(ec,this)!==n)this.clear(),E(tc,this,n(Ga(D(Qs,this),D($s,this),D(Zs,this)))),E(ec,this,n),E(nc,this,D(tc,this)?.call(this,t));else{let e=D(tc,this)?.call(this,t);D(nc,this)!==e&&(this.clear(),E(nc,this,e))}}clear(){D(nc,this)?.call(this),D(Zs,this).removeRange(D(Qs,this),D($s,this))}destroy(){this.clear()}},ic=class{constructor(e,t){}commit(e){}},ac=new WeakMap,oc=new WeakMap,sc=new WeakMap,cc=class{constructor(e,t,n=O){T(this,ac,void 0),T(this,oc,void 0),T(this,sc,null),E(oc,this,t),E(ac,this,n)}commit(e){D(sc,this)!==e&&(D(sc,this)&&D(ac,this).removeNode(D(sc,this)),D(ac,this).insertBeforeNode(e,D(oc,this)),E(sc,this,e))}},lc=new WeakMap,uc=new WeakMap,dc=new WeakMap,fc=new WeakMap,pc=new WeakMap,mc=new WeakMap,hc=class{constructor(e,t,n=O){T(this,lc,void 0),T(this,uc,void 0),T(this,dc,void 0),T(this,fc,null),T(this,pc,null),T(this,mc,Io),E(uc,this,e),E(dc,this,t),E(lc,this,n)}commit(e){D(fc,this)!==e&&(this.clear(),zo(e)&&this.promiseCommit(e))}promiseCommit(e){let[t,n]=gc(e);E(mc,this,n),t.then(e=>{let t=Ic(e);E(pc,this,Bc(t,D(uc,this),D(dc,this),D(lc,this))),D(pc,this)?.commit(e)}),E(fc,this,e)}partClear(){D(pc,this)?.destroy?.(),D(lc,this).removeRange(D(uc,this),D(dc,this))}clear(){D(mc,this).call(this),this.partClear(),E(mc,this,Io)}destroy(){this.clear()}};function gc(e){let t=Io,n=new Promise((e,n)=>t=n);return[Promise.race([n,e]),()=>t()]}var _c=new WeakMap,vc=new WeakMap,yc=new WeakMap,bc=class{constructor(e,t,n=O){T(this,_c,void 0),T(this,vc,void 0),T(this,yc,null),E(_c,this,n),E(vc,this,n.createText(``)),n.insertAfterNode(D(vc,this),e)}commit(e){D(yc,this)!==e&&(D(_c,this).setText(D(vc,this),Ni(e)||Mi(e)?``:String(e)),E(yc,this,e))}},xc=new WeakMap,Sc=new WeakMap,Cc=new WeakMap,wc=new WeakMap,Tc=class{constructor(e,t,n=O){T(this,xc,void 0),T(this,Sc,void 0),T(this,Cc,void 0),T(this,wc,null),E(Sc,this,e),E(Cc,this,t),E(xc,this,n)}commit(e){let{strings:t,values:n}=e;D(wc,this)&&!D(wc,this).equalStrings(t)&&(D(wc,this).destroy(),E(wc,this,null)),D(wc,this)||(E(wc,this,new xl(e,D(Sc,this),D(Cc,this),D(xc,this))),D(wc,this).insert(`before`,D(Cc,this))),D(wc,this).commit(n)}destroy(){D(wc,this)?.destroy()}},Ec=function(e){return e.primitive=`primitive`,e.templateLiterals=`templateLiterals`,e.array=`array`,e.node=`node`,e.object=`object`,e.function=`function`,e.directive=`directive`,e}({}),Dc=e=>Pi(e)&&Reflect.get(e,$i)===Ua.node,Oc=e=>t=>t instanceof e,kc=Oc(bc),Ac=Oc(Tc),jc=Oc(qs),Mc=Oc(cc),Nc=Oc(hc),Pc=Oc(ic),Fc=Oc(rc),Ic=e=>Ii(e)?`primitive`:to(e)?`templateLiterals`:Dc(e)?`directive`:Pi(e)?`array`:jo(e)?`node`:Oi(e)?`function`:`object`,Lc={primitive:kc,templateLiterals:Ac,array:jc,node:Mc,function:Pc,object:Nc,directive:Fc},Rc={primitive:bc,templateLiterals:Tc,array:qs,node:cc,function:ic,object:hc,directive:rc},zc=(e,t)=>Lc[e](t),Bc=(e,t,n,r=O)=>new Rc[e](t,n,r),Vc=new WeakMap,Hc=new WeakMap,Uc=new WeakMap,Wc=new WeakMap,Gc=new WeakMap,Kc=new WeakMap,qc=new WeakMap,Jc=new WeakMap,Yc=new WeakMap,Xc=new WeakMap,Zc=new WeakMap,Qc=new WeakMap,$c=class{constructor(e,t,n,r,i=O){T(this,Vc,void 0),T(this,Hc,void 0),T(this,Uc,void 0),T(this,Wc,void 0),T(this,Gc,void 0),T(this,Kc,[]),T(this,qc,[]),T(this,Jc,null),T(this,Yc,Ea({},{shallow:!0})),T(this,Xc,null),T(this,Zc,null),T(this,Qc,void 0),E(Vc,this,i),E(Qc,this,i.createEventBus()),E(Hc,this,e),E(Uc,this,t),E(Gc,this,n),E(Wc,this,go(n.value)[0]),n.staticAttrs&&n.staticAttrs.forEach(e=>Mo(D(Yc,this),e)),n.attrs?.forEach(e=>{e.type===Wi.directive?D(Kc,this).push(e):e.type===Wi.spread?r.push(new Es(D(Yc,this),e)):e.type===Wi.event?r.push(new gs(D(Qc,this),e,i)):r.push(new Rs(D(Yc,this),e))})}createContext(){return D(Vc,this).createComponentContext(D(Hc,this),D(Qc,this))}commit(e){let[,t]=D(Wc,this),n=e[t];if(!Oi(n)||D(Xc,this)===n){D(qc,this).forEach(t=>t.commit(e));return}let r=this.createContext();this.clear(),na(this);let i=n.call(r,D(Yc,this),r);na(null),D(Kc,this).length&&D(qc,this).push(...D(Kc,this).map(e=>new us(r,e))),sa(this,Gi);let a=!1;E(Zc,this,xa(()=>{let e=i(),t=Ic(e);zc(t,D(Jc,this))||(this.partClear(),E(Jc,this,Bc(t,D(Hc,this),D(Uc,this),D(Vc,this)))),sa(this,a?Yi:Ji),D(Jc,this)?.commit(e),a?sa(this,Zi):(sa(this,Xi),a=!0)})),D(qc,this).forEach(t=>t.commit(e)),sa(this,Ki),E(Xc,this,n)}partClear(){D(Jc,this)?.destroy?.(),D(Vc,this).removeRange(D(Hc,this),D(Uc,this))}clear(){D(Vc,this).removeRange(D(Hc,this),D(Uc,this)),sa(this,qi),D(qc,this).forEach(e=>e.destroy?.()),D(Zc,this)?.call(this),E(qc,this,[]),E(Zc,this,null),ca(this)}destroy(){this.clear(),this.partClear()}},el,tl,nl,rl,il=pa((el=new WeakMap,tl=new WeakMap,nl=new WeakMap,rl=new WeakMap,class{constructor(e,t,n,r=O){T(this,el,void 0),T(this,tl,void 0),T(this,nl,void 0),T(this,rl,void 0),E(el,this,r),E(tl,this,r.createMarker(``)),E(nl,this,r.createMarker(``)),E(rl,this,new $c(D(tl,this),D(nl,this),t,n,r)),r.insertBeforeNode(D(tl,this),e),r.insertAfterNode(D(nl,this),e),r.removeNode(e)}commit(e){D(rl,this).commit(e)}destroy(){D(rl,this).destroy?.(),D(el,this).removeNode(D(tl,this)),D(el,this).removeNode(D(nl,this))}})),al=new WeakMap,ol=new WeakMap,sl=new WeakMap,cl=new WeakMap,ll=new WeakMap,ul=new WeakMap,dl=class{constructor(e,{value:t},n=O){T(this,al,void 0),T(this,ol,void 0),T(this,sl,void 0),T(this,cl,void 0),T(this,ll,null),T(this,ul,null),E(al,this,n),E(ol,this,n.createMarker(``)),E(sl,this,n.createMarker(``)),E(cl,this,go(t)[0]),n.insertBeforeNode(D(ol,this),e),n.insertAfterNode(D(sl,this),e),n.removeNode(e)}commit(e){let[,t]=D(cl,this),n=e[t];if(D(ll,this)===n)return;let r=Ic(n);zc(r,D(ul,this))||(Ni(D(ul,this))||this.clear(),E(ul,this,Bc(r,D(ol,this),D(sl,this),D(al,this)))),D(ul,this)?.commit(n),E(ll,this,n)}clear(){D(ul,this)?.destroy?.(),D(al,this).removeRange(D(ol,this),D(sl,this))}destroy(){this.clear(),D(al,this).removeNode(D(ol,this)),D(al,this).removeNode(D(sl,this))}};function fl(e=[],t,n=!1,r=[],i=O){return e.forEach(e=>{if(e.isComponent){let n=i.createMarker(``);i.appendChild(t,n),r.push(new il(n,e,r,i));return}let a=i.createNode(e,e.isSvg||n);i.appendChild(t,a),i.isMarker(a)&&e.isMarker&&r.push(new Ns(a,e,i)),i.isText(a)&&e.isMarkerOnly&&r.push(new dl(a,e,i)),i.isElement(a)&&(e.staticAttrs&&e.staticAttrs.forEach(e=>i.setAttr(a,e)),e.attrs&&r.push(...e.attrs.map(e=>Ds(a,e,i))),e.children&&fl(e.children,a,e.isSvg||n,r,i))}),r}function pl(e,t=!1,n=O){let r=n.createFragment();return[r,fl(e.children,r,t,[],n)]}var ml=new WeakMap,hl=new WeakMap,gl=new WeakMap,_l=new WeakMap,vl=new WeakMap,yl=new WeakMap,bl=new WeakMap,xl=class{constructor(e,t,n,r=O){if(T(this,ml,void 0),T(this,hl,void 0),T(this,gl,void 0),T(this,_l,null),T(this,vl,[]),T(this,yl,void 0),T(this,bl,!1),E(ml,this,r),E(hl,this,r.createMarker(``)),E(gl,this,r.createMarker(``)),E(yl,this,e.strings),e[ea]!==qa.html&&e[ea]!==qa.svg)return;let[i,a]=pl(e.template.node,po(e[ea]),r);E(_l,this,i),E(vl,this,a),t&&n?(E(hl,this,t),E(gl,this,n),E(bl,this,!0)):(r.prependChild(i,D(hl,this)),r.appendChild(i,D(gl,this)))}equalStrings(e){return D(yl,this)===e}commit(e){D(vl,this).forEach(t=>t.commit(e))}insert(e,t){D(_l,this)&&(e===`before`?D(ml,this).insertBeforeNode(D(_l,this),t):e===`after`?D(ml,this).insertAfterNode(D(_l,this),t):D(ml,this).appendChild(t,D(_l,this)),E(_l,this,null))}destroy(){D(vl,this).forEach(e=>e.destroy?.()),D(ml,this).removeRange(D(hl,this),D(gl,this)),D(bl,this)||(D(ml,this).removeNode(D(hl,this)),D(ml,this).removeNode(D(gl,this)))}},Sl=function(e){return e.string=`string`,e.whiteSpace=`whiteSpace`,e.lt=`lt`,e.gt=`gt`,e.slash=`slash`,e.equal=`equal`,e}({}),Cl={doubleQuote:`"`,singleQuote:`'`,whiteSpace:/\s/,string:/\S/,breakString:/<|>|=/,lt:`<`,gt:`>`,slash:`/`,equal:`=`,hyphen:`-`,exclamationPoint:`!`},wl=e=>t=>e===t,Tl=e=>t=>e.test(t),El={doubleQuote:wl(Cl.doubleQuote),singleQuote:wl(Cl.singleQuote),whiteSpace:Tl(Cl.whiteSpace),string:Tl(Cl.string),breakString:Tl(Cl.breakString),lt:wl(Cl.lt),gt:wl(Cl.gt),slash:wl(Cl.slash),equal:wl(Cl.equal),hyphen:wl(Cl.hyphen),exclamationPoint:wl(Cl.exclamationPoint)},Dl=e=>t=>El.lt(e[t])&&El.exclamationPoint(e[t+1])&&El.hyphen(e[t+2])&&El.hyphen(e[t+3]);function Ol(e){let t=[],n=0,r=()=>n<e.length,i=Dl(e),a=(o=`text`)=>{for(;r();){let s=e[n];if(El.whiteSpace(s)){let i=``;for(;r()&&El.whiteSpace(s);)i+=s,s=e[++n];o!==`element`&&t.push({type:`whiteSpace`,value:i});continue}if(o===`element`){if(El.lt(s)){t.push({type:`lt`,value:s}),n++;continue}if(El.gt(s)){t.push({type:`gt`,value:s}),n++;break}if(El.slash(s)){t.push({type:`slash`,value:s}),n++;continue}if(El.equal(s)){t.push({type:`equal`,value:s}),n++;continue}if(El.doubleQuote(s)){let i=``;for(s=e[++n];r()&&!El.doubleQuote(s);)i+=s,s=e[++n];t.push({type:`string`,value:i}),n++;continue}if(El.singleQuote(s)){let i=``;for(s=e[++n];r()&&!El.singleQuote(s);)i+=s,s=e[++n];t.push({type:`string`,value:i}),n++;continue}}else if(o===`comment`){if(El.lt(s)){t.push({type:`lt`,value:s}),n++;continue}if(El.gt(s)){t.push({type:`gt`,value:s}),n++;break}}else if(El.lt(s)){a(i(n)?`comment`:`element`);continue}if(El.string(s)){let i=``;for(;r()&&El.string(s)&&!El.breakString(s);)i+=s,s=e[++n];t.push({type:`string`,value:i});continue}n++}};return a(),t}var kl=/^(area|base|br|col|embed|hr|img|input|keygen|link|meta|param|source|track|wbr)$/i,Al=e=>t=>n=>r=>n[r]?n[r][e]===t:!1,jl=Al(`type`),Ml=Al(`value`),Nl=jl(Sl.lt),Pl=jl(Sl.gt),Fl=jl(Sl.slash),Il=jl(Sl.equal),Ll=jl(Sl.string),Rl=jl(Sl.whiteSpace),zl=Ml(`!--`),Bl=Ml(`--`),Vl=e=>{let t=Nl(e),n=Ll(e);return e=>t(e)&&n(e+1)},Hl=e=>{let t=Nl(e),n=Fl(e),r=Ll(e),i=Pl(e);return e=>t(e)&&n(e+1)&&r(e+2)&&i(e+3)},Ul=e=>{let t=Nl(e),n=Fl(e),r=Pl(e);return e=>t(e)&&n(e+1)&&n(e+2)&&r(e+3)},Wl=e=>{let t=Fl(e),n=Pl(e);return e=>t(e)&&n(e+1)},Gl=e=>kl.test(e),Kl=e=>{let t=Nl(e),n=Ll(e),r=zl(e);return e=>t(e)&&n(e+1)&&r(e+1)},ql=e=>{let t=Ll(e),n=Bl(e),r=Pl(e);return e=>t(e)&&n(e)&&r(e+1)},Jl=e=>t=>n=>{n&&(t[e]?t[e]?.push(n):t[e]=[n])},Yl=Jl(`attrs`),Xl=Jl(`children`);function Zl(e){let t=new Oo({type:Do.element,value:`template`,children:[]}),n=0,r=()=>n<e.length,i=Vl(e),a=Hl(e),o=Ul(e),s=Wl(e),c=Kl(e),l=ql(e),u=Nl(e),d=Pl(e),f=Il(e),p=Rl(e),m=Ll(e),h=()=>{let t=e[n],r={name:t.value};return t=e[++n],f(n)&&(t=e[++n],m(n)&&(r.value=t.value,n++)),r},g=t=>{let f=e[n];if(p(n)||m(n)){let i=f.value;for(f=e[++n];r()&&!u(n);)i+=f.value,f=e[++n];return i=i.trim(),i.length?new Oo({parent:t,type:Do.text,value:i}):null}if(c(n)){let i=``;for(n+=2,f=e[n];r()&&!l(n);)i+=f.value,f=e[++n];return l(n)&&(n+=2),new Oo({parent:t,type:Do.comment,value:i})}if(i(n)){f=e[++n];let i=Gl(f.value),c=new Oo({parent:t,type:Do.element,value:f.value.toLowerCase()});for(n++;r()&&!d(n)&&!s(n);){if(m(n)){Yl(c)(h());continue}n++}if(s(n))return n+=2,c;for(f=e[++n];r()&&!a(n)&&!o(n)&&!i;)Xl(c)(g(c));return(a(n)||o(n))&&(n+=4),c}return n++,null};for(;r();)Xl(t)(g(t));return t}var Ql=e=>Zl(Ol(e)),$l=(e,t)=>e.reduce((e,n)=>{let r=t(n),i=e[r];return i?i.push(n):e[r]=[n],e},Object.create(null)),eu=Symbol.iterator,tu=class e{get isMarker(){return lo(this.value)}get isMarkerOnly(){return uo(this.value)}get isSvg(){return this.type===Do.element&&/^svg$/i.test(this.value)}get isComponent(){return this.type===Do.element&&this.isMarkerOnly}constructor(t,n=null){if(To(this,`type`,Do.comment),To(this,`value`,``),To(this,`staticAttrs`,void 0),To(this,`attrs`,void 0),To(this,`parent`,null),To(this,`children`,void 0),this.type=t.type,this.value=t.value,this.parent=n,t.attrs){let[e,n]=iu(t.attrs);e.length&&(this.staticAttrs=e),n.length&&(this.attrs=n)}t.children&&(this.children=t.children.map(t=>new e(t,this)))}insert(e,t,n){if(this.children){let r=e===`before`?0:1;this.children.includes(n)&&this.children.splice(this.children.indexOf(n)+r,0,t)}else this.children=[t]}*iterParent(){yield this,this.parent&&(yield*this.parent.iterParent())}*[eu](){if(yield this,this.children)for(let e of this.children)yield*e}};function nu(e){let t=new tu(e);for(let e of t)e.type===Do.text&&!uo(e.value)&&ru(e);return t}function ru(e){let t=go(e.value);e.value.replace(Vi,zi).split(zi).reduce((n,r,i)=>(i<t.length?n.push(new tu(new Oo({type:Do.text,value:r}),e.parent),new tu(new Oo({type:Do.text,value:t[i][0]}),e.parent)):n.push(new tu(new Oo({type:Do.text,value:r}),e.parent)),n),[]).filter(e=>e.value!==``&&!(!e.value.trim()&&Ui.test(e.value))).reverse().forEach((t,n,{length:r})=>n===r-1?e.value=t.value:e.parent&&e.parent.insert(`after`,t,e))}function iu(e=[]){let t=$l(e,e=>ho(e.name));return Object.keys(t).map(e=>t[e]).reduce((e,t)=>{let[n,r]=e,i=t[t.length-1],a=mo(i.name);if(a===Wi.event)r.push(...t.filter(e=>!!e.value).map(e=>({type:mo(e.name),name:ho(e.name),value:e.value})));else if(a===Wi.attribute){let e=t.filter(e=>!!e.value).map(e=>e.value).join(` `),o={type:a,name:ho(i.name)};e&&(o.value=e),fo(o)?r.push(o):n.push(o)}else{let e={type:a,name:ho(i.name)};i.value&&(e.value=i.value),fo(e)?r.push(e):n.push(e)}return e},[[],[]])}var au=e=>(t,...n)=>{let r={strings:t,values:n,[ea]:e};if(Xa.has(t))return r.template=Xa.get(t),r;let i=nu(Ql(t.reduce((e,t,r)=>(r<n.length?e.push(t,$a(r)):e.push(t),e),[]).join(``)));return r.template=Object.freeze({node:i}),Xa.set(t,r.template),r},ou=au(qa.html),su=au(qa.svg);function cu(e){let t=Ao(e),n=new WeakMap;return{html:ou,svg:su,render:(e,r)=>{if(!to(r)){n.has(e)&&(n.get(e)?.destroy(),n.delete(e));return}let{strings:i,values:a}=r,o=n.get(e);if(o?.equalStrings(i))o?.commit(a);else{let i=new xl(r,void 0,void 0,t);o?.destroy(),n.set(e,i),i.insert(`children`,e),i.commit(a)}}}}var lu=Ka((e,t,n)=>(e.length,[e,t,n]),({startNode:e,endNode:t,helper:n=O})=>{let r=[],i=()=>{r.forEach(e=>e.destroy())};return([a,o,s])=>{let c=mu(a,o,s),l=c.values,u=Hs(pu(r),c,{strict:!0}),d={length:l.length};return u.update.forEach(({action:i,from:a,to:o})=>{switch(i){case zs.create:let i=n.createMarker(``);o===0?n.insertAfterNode(i,e):r.length?n.insertAfterNode(i,d[o-1]?d[o-1].endNode:r[o-1].endNode):n.insertBeforeNode(i,t),d[o]=new fu(i,l[o].value,l[o].key,n);break;case zs.move:if(d[o]=r[a],o===a)return;o===0?r[a].insert(`after`,e):r[a].insert(`after`,d[o-1]?d[o-1].endNode:r[o-1].endNode)}}),u.delete.forEach(({from:e})=>r[e].destroy()),r=Array.from(d),r.forEach((e,t)=>e.commit(l[t].value)),i}}),uu=new WeakMap,du=new WeakMap,fu=class{constructor(e,t,n,r=O){T(this,uu,void 0),T(this,du,void 0),To(this,`startNode`,void 0),To(this,`endNode`,void 0),To(this,`type`,void 0),To(this,`key`,void 0),E(du,this,r),this.startNode=r.createMarker(``),this.endNode=r.createMarker(``),r.insertBeforeNode(this.startNode,e),r.insertAfterNode(this.endNode,e),r.removeNode(e),this.key=n,this.type=Ic(t),E(uu,this,Bc(this.type,this.startNode,this.endNode,r))}commit(e){D(uu,this).commit(e)}insert(e,t){let n=[this.startNode,...D(du,this).rangeNodes(this.startNode,this.endNode),this.endNode];e===`before`?n.forEach(e=>D(du,this).insertBeforeNode(e,t)):n.reverse().forEach(e=>D(du,this).insertAfterNode(e,t))}destroy(){D(uu,this).destroy?.(),D(du,this).removeRange(this.startNode,this.endNode),D(du,this).removeNode(this.startNode),D(du,this).removeNode(this.endNode)}};function pu(e){let t=[],n=new Map;return e.forEach(({type:e,key:r},i)=>{let a={type:e,key:r};t.push(a),n.set(a,i)}),{items:t,itemToIndex:n}}function mu(e,t,n){let r=[],i=new Map,a=[];return e.forEach((e,o,s)=>{let c={key:t(e),value:n(e,o,s)},l={type:Ic(c.value),key:c.key};a.push(c),r.push(l),i.set(l,o)}),{items:r,itemToIndex:i,values:a}}var hu={vCSSStyleSheetMap:new Map,hostContextMap:new Map,globalOrder:[],orderedSheets:null},gu=globalThis.ShadowRoot&&`adoptedStyleSheets`in Document.prototype&&`replace`in CSSStyleSheet.prototype,_u=null;function vu(){return _u===null&&(_u=yu()),_u}function yu(){try{let e=document.createElement(`div`).attachShadow({mode:`open`}),t=new CSSStyleSheet;return e.adoptedStyleSheets.push(t),e.adoptedStyleSheets.length===1&&e.adoptedStyleSheets[0]===t}catch{return!1}}function bu(){return hu}function xu(e){let t=bu(),{identifier:n,cssText:r,mode:i}=e;if(!r||t.vCSSStyleSheetMap.has(n))return n;let a=gu?new CSSStyleSheet:null,o=gu?null:document.createElement(`style`);a?a.replaceSync(r):o&&(o.textContent=r);let s={identifier:n,cssText:r,mode:i,sheet:a,styleElement:o};return t.vCSSStyleSheetMap.set(n,s),Eu(s),n}function Su(e){let t=[],n=[];for(let r of e.vCSSStyleSheetMap.values())(r.mode===`global`?t:n).push(r);if(e.globalOrder.length>0){let n=({identifier:t})=>{let n=e.globalOrder.indexOf(t);return n===-1?e.globalOrder.length:n};t.sort((e,t)=>n(e)-n(t))}return[...t,...n]}function Cu(e){return e.orderedSheets||=Su(e).map(({sheet:e})=>e).filter(Boolean),e.orderedSheets}function wu(e,t){e.adoptedStyleSheets=[...t]}function Tu(){let e=bu(),t=Cu(e);e.hostContextMap.forEach((e,n)=>wu(n,t))}function Eu(e){if(!gu){Du();return}let t=bu(),{mode:n,sheet:r}=e,i=t.orderedSheets;if(!r||n===`global`||!i){t.orderedSheets=null,Tu();return}if(i.push(r),!vu()){Tu();return}t.hostContextMap.forEach((e,t)=>t.adoptedStyleSheets.push(r))}function Du(){let e=bu(),t=Su(e);Array.from(e.hostContextMap).forEach(([e,{styleElements:n}])=>{t.forEach((r,i)=>{if(n.has(r)||!r.styleElement)return;let a=document.importNode(r.styleElement,!0),o=Ou(t,i+1,n);o?e.insertBefore(a,o):e.appendChild(a),n.set(r,a)})})}function Ou(e,t,n){for(let r=t;r<e.length;r++){let t=n.get(e[r]);if(t)return t}return null}function k(e){function t(t){return{type:e,payload:t}}return t.toString=()=>`${e}`,t.type=e,t}function*ku(e,t,n){for(let r of n)r?.[Symbol.iterator]?yield*ku(e,t,r):Oi(r)?yield*ku(e,t,r(e,t)):yield r}var Au=(e,t,n)=>[...ku(e,t,n)],ju=(...e)=>t=>e.reduce((e,t)=>t(e),t);function*Mu(e){yield e}var Nu=function*(e){for(let t of e)t.length&&(yield t)};function Pu({context:e,state:t,reducers:n,enableObservable:r=!0}){let i=r?Ea(t):t,a=Li(),o=Li(),s=ju(Nu),c=t=>{Si(Reflect.get(n,t.type,n),i,t,e)},l=(...t)=>{let n=Au(i,e,t);a.next(n)},u=(...e)=>{Ci(()=>l(...e))},d=a.subscribe(e=>{let t=s(Mu(e));for(let e of t)o.next(e)}),f=o.subscribe(e=>e.forEach(c));return{context:e,state:i,dispatch:u,dispatchSync:l,subscribe:o.subscribe,pipe:(...e)=>(s=ju(...e,Nu),()=>{s=ju(Nu)}),destroy:()=>{d(),f()}}}var Fu=`__RHTML_CSS_DIAGNOSTICS__`,Iu=({line:e,column:t})=>e===void 0?``:` (${e}:${t??1})`,Lu=(e,t)=>{let n=`[r-html] ${t.mode===`global`?`css.global`:`css`} ${t.identifier}${Iu(e)} ${e.code}: ${e.message}`;e.severity===`error`?console.error(n):console.warn(n)},Ru;function zu(){if(Ru!==void 0)return Ru;let e=Reflect.get(globalThis,Fu);return e?typeof e==`function`?e:Lu:null}function Bu(){return zu()!==null}function Vu(e,t){if(e.length===0)return;let n=zu();if(n)for(let r of e)n(r,t)}var Hu=[``];function Uu(e){return{value:``,root:null,parent:null,type:o,props:e.slice(),children:[],line:1,column:1,length:0,return:``,siblings:[]}}function Wu(e,t={}){let n=t.rules??Hu,r=t.rules===void 0?null:Uu(n),i=s(e);return c(l(``,null,null,r??null,n,i,0,[0],i))}var Gu=`rhtml-scope`;function Ku(e,t){return e.split(Gu).join(t)}var qu=/^(?::host\b|::slotted\()/;function Ju(e){return qu.test(e.trim())}function Yu(e){return e.type===o}function Xu(e){return e.type===n}function Zu(e){return e.type.charCodeAt(0)===64}function Qu(e){return Array.isArray(e.children)?e.children:[]}function $u(e){return e.value.charCodeAt(e.value.length-1)===59?e.value.slice(0,-1):e.value}function ed(e){let t=[];for(let n of Qu(e))Xu(n)&&t.push($u(n));return t}function td(e){return Qu(e).filter(Yu)}function nd(e){let t=e.charCodeAt(1);return t===100||t===109||t===115||t===99&&e.charCodeAt(3)===110?!0:t===99||t===108?e.charCodeAt(2)===97:!1}var rd=new Set([r,t,a,i]);function id(e,t,n){let i=[],a=new Set,o=!1,s=(e,t)=>{for(let n of e){if(Yu(n)){o=!0,ad(n,t,i);continue}if(Zu(n)){if(Qu(n).length===0){if(!rd.has(n.type))continue;i.push({code:`unsupported-at-rule`,severity:`error`,message:`\`${n.value}\` is not supported and was dropped. A constructed stylesheet strips \`@import\` by spec, and happy-dom discards the entire sheet when it sees any body-less at-rule — with one sheet per template that would erase the whole component. Move it to a \`<link>\`.`,line:n.line,column:n.column}),n.type===r&&o&&i.push({code:`import-after-rule`,severity:`warning`,message:`\`${n.value}\` follows a rule. Even where \`@import\` is supported it has to precede every rule in the sheet, so this one could not have applied.`,line:n.line,column:n.column});continue}if(o=!0,nd(n.type)){s(Qu(n),t);continue}td(n).length>0&&od(n,a,i),s(Qu(n),!1)}}};s(e,n.scoped),!n.scoped&&e.some(Xu)&&i.push({code:`rule-without-selector`,severity:`warning`,message:`Declarations at the top level of a global block have no selector and were dropped. Wrap them in one.`}),sd(t,i);let c=ld(n.source);return c&&i.push(c),i}function ad(e,t,n){if(e.props.every(e=>e.length===0)){let t=ed(e);t.length>0&&n.push({code:`rule-without-selector`,severity:`warning`,message:`A rule with no selector was dropped: \`{${t.join(`;`)}}\`.`,line:e.line,column:e.column})}if(t)for(let t of cd(e.value)){let r=t.trim();if(Ju(r)){n.push({code:`shadow-boundary`,severity:`warning`,message:`\`${r}\` crosses a shadow boundary, but a scoped block prepends the component class to it, so it can never match. Use \`css.global\` for this rule.`,line:e.line,column:e.column});continue}r.charCodeAt(0)===58&&n.push({code:`implicit-descendant`,severity:`warning`,message:`\`${r}\` becomes a descendant of the scope, not a qualifier on it. Prefix it with \`&\` to attach it: \`&${r}\`.`,line:e.line,column:e.column})}}function od(e,t,n){if(t.has(e.value)){n.push({code:`duplicate-keyframes`,severity:`warning`,message:`\`${e.value}\` is defined more than once. The name is global and unscoped, so the last definition wins for every template that animates with it.`,line:e.line,column:e.column});return}t.add(e.value)}function sd(e,t){for(let n of e)for(let e of n.declarations)e.includes(`rhtml-scope`)&&t.push({code:`scope-in-declaration`,severity:`warning`,message:`\`${e}\` contains \`${Gu}\`. The sentinel is only substituted in selectors, so it will reach the browser as written.`})}function cd(e){let t=[],n=0,r=0,i=0;for(let a=0;a<e.length;a++){let o=e.charCodeAt(a);r===0?o===34||o===39?r=o:o===40||o===91?n++:o===41||o===93?n--:o===44&&n===0&&(t.push(e.slice(i,a)),i=a+1):o===r&&e.charCodeAt(a-1)!==92&&(r=0)}return t.push(e.slice(i)),t}function ld(e){let t=1,n=1,r=0,i=()=>{e.charCodeAt(r)===10?(t++,n=1):n++,r++};for(;r<e.length;){let a=e.charCodeAt(r),o=e.charCodeAt(r+1);if(a===47&&o===42){let a=t,o=n;for(i(),i();r<e.length&&(e.charCodeAt(r)!==42||e.charCodeAt(r+1)!==47);)i();if(r>=e.length)return{code:`unterminated-comment`,severity:`warning`,message:`Unterminated block comment. The scanner consumed the rest of the source, so every rule after it was lost.`,line:a,column:o};i(),i();continue}if(a===47&&o===47){for(;r<e.length&&e.charCodeAt(r)!==10;)i();continue}if(a===34||a===39){let o=t,s=n;for(i();r<e.length&&e.charCodeAt(r)!==a;)e.charCodeAt(r)===92&&i(),i();if(r>=e.length)return{code:`unterminated-string`,severity:`warning`,message:`Unterminated string. The scanner consumed the rest of the source, so every rule after it was lost.`,line:o,column:s};i();continue}i()}return null}function ud(e,t={}){let n=``,r=[];for(let i of e){let{conditions:e}=i,a=0;for(;a<r.length&&a<e.length&&r[a]===e[a];)a++;for(let e=a;e<r.length;e++)n+=`}`;for(let t=a;t<e.length;t++)n+=`${e[t]}{`;r=e,n+=dd(i,t.scope)}for(let e=0;e<r.length;e++)n+=`}`;return n}function dd(e,t){return e.body===void 0?`${e.prelude??fd(e.selectors,t)}{${e.declarations.join(`;`)};}`:`${e.prelude}{${e.body}}`}function fd(e,t){return(t===void 0?e:e.map(e=>Ku(e,t))).join(`,`)}var pd=[],md=e=>e.length>0;function hd(e,t){let n=[];return _d(e,pd,t.rules,n),(t.plugins??[]).reduce((e,t)=>e.flatMap(e=>t(e)),n).filter(gd)}function gd(e){let t=e.selectors.length>0||e.prelude!==void 0,n=e.declarations.length>0||!!e.body;return t&&n}function _d(e,t,n,r){let i=r.length,a=[];for(let i of e)Xu(i)?a.push($u(i)):Yu(i)?vd(i,t,r):Zu(i)&&yd(i,t,n,r);if(a.length===0)return;let o=n.filter(md);o.length!==0&&r.splice(i,0,{conditions:t,selectors:o,declarations:a})}function vd(e,t,n){let r=e.props.filter(md);if(r.length===0)return;let i=ed(e);i.length!==0&&n.push({conditions:t,selectors:r,declarations:i})}function yd(e,t,n,r){let i=Qu(e);if(i.length===0)return;if(nd(e.type)){let a=[];if(_d(i,[...t,e.value],n,a),a.length===0)return;for(let e of a)r.push(e);return}let a=td(e);if(a.length>0){let n=[];for(let e of a)vd(e,pd,n);let i=ud(n);i&&r.push({conditions:t,selectors:[],prelude:e.value,declarations:[],body:i});return}let o=ed(e);o.length!==0&&r.push({conditions:t,selectors:[],prelude:e.value,declarations:o})}function bd(e){let t=2166136261;for(let n=0;n<e.length;n++)t^=e.charCodeAt(n),t=Math.imul(t,16777619);return t>>>0}var xd=7;function Sd(e){return`_${bd(e).toString(36).padStart(xd,`0`)}`}var Cd=[];function wd(e,t={}){let n=t.mode!==`global`,r=n?[Gu]:[``],i=Wu(e,{rules:r}),a=hd(i,{rules:r,plugins:t.plugins}),o=ud(a),s=Sd(o);return{rules:a,canonicalText:o,identifier:s,cssText:ud(a,{scope:`.${s}`}),diagnostics:t.dev?id(i,a,{source:e,scoped:n}):Cd}}function Td(e){let t=/[;{}][^;{}]*$/.exec(e);return t?t[0].slice(1):e}function Ed(e){let t=e.search(/[;}\n]/);return t===-1?e:e.slice(0,t)}function Dd(e){let t=[];for(let n=0;n<e.length-1;n++){let r=Td(e[n]),i=Ed(e[n+1]),a=!r.includes(`:`)&&!i.includes(`{`)?`statement`:`inline`;t.push({kind:a,provable:r.trim().length===0})}return t}function Od(e){let t=e.trimEnd();return!t||t.endsWith(`;`)||t.endsWith(`}`)?e:`${e};`}function kd(e,t){return no(e)?t===`statement`?Od(e[Ya]??``):`.${String(e)}`:Ii(e)&&!Ni(e)&&!Mi(e)?String(e):``}function Ad(e,t,n){if(no(t)){e.kind===`statement`&&!e.provable&&console.error("[r-html] a css literal follows unterminated text, so it is spliced in as a statement. End the declaration in front of it with a `;`.");return}if(n.includes(`{`)||n.includes(`}`)){console.warn(`[r-html] interpolated value contains a brace and is substituted before compiling, so it can change the rule structure: ${n}`);return}(jd(n,`'`)||jd(n,`"`))&&console.warn(`[r-html] interpolated value has an unbalanced quote and is substituted before compiling: ${n}`)}function jd(e,t){let n=0;for(let r of e)r===t&&n++;return n%2==1}function Md(e,t,n){let r=``;for(let i=0;i<e.length;i++){if(r+=e[i],i>=t.length)continue;let a=kd(n[i],t[i].kind);Ad(t[i],n[i],a),r+=a}return r}var Nd=32,Pd=`\0`;function Fd(e){return(t,...n)=>{let r=Ld(t,e),i=Rd(r.node,n),a=xu(i);return{strings:t,values:n,template:r,[ea]:qa.css,[Ya]:i.source,toString:()=>a}}}var Id=Object.assign(Fd(`scoped`),{global:Fd(`global`)});function Ld(e,t){let n=Za.get(e);if(n&&n.node.mode===t)return n;let r=e.raw,i={raw:r,slots:Dd(r),mode:t,memo:new Map},a=Object.freeze({node:i});return Za.set(e,a),a}function Rd(e,t){let n=e.slots.map((e,n)=>kd(t[n],e.kind)).join(Pd),r=e.memo.get(n);if(r)return r;let i=Md(e.raw,e.slots,t),{rules:a,canonicalText:o,identifier:s,cssText:c,diagnostics:l}=wd(i,{mode:e.mode,dev:Bu()}),u={source:i,mode:e.mode,rules:a,canonicalText:o,identifier:s,cssText:c};if(Vu(l,{source:i,identifier:s,mode:e.mode}),e.memo.set(n,u),e.memo.size>Nd){let[t]=e.memo.keys();e.memo.delete(t)}return u}ne.autoDrawEnabled=!1,Reflect.set(ne,`DD`,te);const zd=new Set,Bd=new Set,Vd=new Map,Hd=[],Ud=[],Wd=new Set;let Gd=!1,Kd=!1,qd=0;function Jd(){return qd}function Yd(){qd+=1;try{Wd.forEach(e=>e())}finally{Gd=!1,Kd=!1;for(let e of zd){if(Vd.has(e)){Bd.add(e);continue}e.getStage()instanceof ee&&e.batchDraw()}zd.clear(),Hd.splice(0).forEach(e=>e())}}function Xd(e){return Wd.add(e),()=>{Wd.delete(e)}}function Zd(){queueMicrotask(()=>{if(Kd){Kd=!1,Zd();return}Yd()})}function Qd(){Kd=!0,!Gd&&(Gd=!0,Zd())}function $d(e){if(Vd.has(e)){Bd.add(e);return}zd.add(e),Qd()}function ef(e){Vd.set(e,(Vd.get(e)??0)+1)}function tf(e){let t=(Vd.get(e)??0)-1;t>0?Vd.set(e,t):Vd.delete(e),Ud.splice(0).forEach(e=>e()),t<=0&&Bd.delete(e)&&$d(e)}function nf(){return new Promise(e=>{Ud.push(()=>e())})}function rf(){return Vd.size?nf().then(rf):Gd?new Promise(e=>{Hd.push(()=>e())}):Promise.resolve()}const af=Symbol(`r-html/konva-slot`),of=Symbol(`r-html/konva-ledger`),sf=Symbol(`r-html/konva-virtual`),cf=Symbol(`r-html/konva-fragment`),lf=new Set([`class`,`style`,`zIndex`]),uf={reconcile:0,scan:0,attach:0,drop:0,order:0,setZIndex:0},df={"k-layer":()=>new f,"k-group":()=>new d,"k-rect":()=>new _,"k-text":()=>new v,"k-path":()=>new g,"k-line":()=>new h,"k-circle":()=>new m};function ff(){}function pf(){throw Error(`[konva-host] a DOM-only directive reached the konva host. innerHTML and vCSSStyleSheet read the DOM through the module helpers, which a konva node has nothing to answer with`)}function mf(e,t=``){let n={kind:e,data:t};return Reflect.set(n,sf,e),Object.defineProperty(n,"nextSibling",{get:pf}),Object.defineProperty(n,"parentNode",{get:pf}),n}const hf=e=>e&&typeof e==`object`?Reflect.get(e,sf)??null:null,gf=e=>e instanceof p,_f=e=>gf(e)&&Reflect.get(e,cf)===!0,vf=e=>Reflect.get(e,af);function yf(e){let t=vf(e);if(t)return t;let n={node:e,parent:null,prev:null,next:null,doomed:!1};return Reflect.set(e,af,n),n}function bf(e){let t=Reflect.get(e,of);if(t)return t;let n={first:null,last:null,dirty:!1,reconciledAt:-1};return Reflect.set(e,of,n),n}const xf=e=>vf(e)?.parent??null,Sf=e=>vf(e)?.next?.node??null,Cf=new Set,wf=new WeakMap;function Tf(e){let t=e;for(;t;){if(t instanceof f)return t;t=xf(t)}return null}function Ef(e){let t=Tf(e);t&&$d(t)}function Df(e){bf(e).dirty=!0,Cf.add(e),Ef(e),Qd()}function Of(e){let t=e.parent;if(!t)return;let n=bf(t);e.prev?e.prev.next=e.next:n.first=e.next,e.next?e.next.prev=e.prev:n.last=e.prev,e.parent=null,e.prev=null,e.next=null,Df(t)}function kf(e,t,n){Of(t);let r=bf(e);t.parent=e,t.doomed=!1,t.prev=n?n.prev:r.last,t.next=n,t.prev?t.prev.next=t:r.first=t,t.next?t.next.prev=t:r.last=t,Df(e)}function Af(e,t){if(!(!gf(t)||_f(e))){if(e instanceof ee){if(!(t instanceof f))throw Error(`[konva-host] a Stage holds layers only, so ${t.getClassName()} cannot sit at a template root. Make k-layer the root`);return}if(t instanceof f)throw Error(`[konva-host] k-layer nests in nothing but a Stage`);if(gf(e)&&!(e instanceof u))throw Error(`[konva-host] ${e.getClassName()} is a shape and holds no children`)}}function jf(e,t,n){if(t===n)return;let r=n?yf(n):null;if(!_f(t)){Af(e,t),kf(e,yf(t),r);return}let i=[];for(let e=bf(t).first;e;e=e.next)i.push(e);for(let t of i)Af(e,t.node),kf(e,t,r)}function Mf(e){Cf.delete(e),Reflect.deleteProperty(e,af),Reflect.deleteProperty(e,of),e.destroy()}function Nf(e,t){let n=t.getParent();n!==e&&(n&&Cf.has(n)&&Rf(n),uf.attach+=1,e.add(t))}function Pf(e,t){if(e.length!==t.length)return!1;for(let n=0;n<t.length;n++)if(e[n]!==t[n])return!1;return!0}function Ff(e,t){t.forEach((t,n)=>{e.children[n]!==t&&(uf.setZIndex+=1,t.setZIndex(n))})}function If(e,t){let n=e.children;n.length=0;for(let e=0;e<t.length;e++){let r=t[e];n.push(r),r.index=e}}function Lf(e){if(uf.reconcile+=1,!(e instanceof u))return;let t=[];for(let n=bf(e).first;n;n=n.next)uf.scan+=1,gf(n.node)&&t.push(n.node);for(let n of t)Nf(e,n);let n=new Set(t),r=e.children.filter(e=>!n.has(e));if(!(!r.length&&Pf(e.children,t))){uf.order+=1,e instanceof ee?(r.forEach(e=>e.remove()),Ff(e,t)):(r.forEach(e=>{e.parent=null,e.index=0,e.remove()}),If(e,t));for(let e of r)uf.drop+=1,yf(e).doomed&&Mf(e)}}function Rf(e){let t=bf(e);!t.dirty&&t.reconciledAt===Jd()||(t.dirty=!1,t.reconciledAt=Jd(),Lf(e))}Xd(()=>{for(let e of Cf)Rf(e);Cf.clear()});function zf(e){let t=e,n=xf(t);for(;n;)t=n,n=xf(t);return wf.get(t)??t}function Bf(e,t){if(!t)return;let n=zf(e);if(gf(n)&&n.hasName(`minimap`))throw Error(`[konva-host] id "${t}" is not the minimap's to carry. Locate a minimap node by name plus a tableId attr`)}const Vf=cu({createElement(e){let t=df[e.toLowerCase()];if(!t)throw Error(`[konva-host] unknown konva tag <${e}>`);return t()},createText:e=>mf(`text`,e),createMarker:e=>mf(`marker`,e),createFragment(){let e=new d;return Reflect.set(e,cf,!0),Reflect.set(e,`_validateAdd`,ff),e},createEventBus:()=>new EventTarget,insertBefore(e,t){let n=xf(t);n&&jf(n,e,t)},appendChild(e,t){jf(e,t,null)},prependChild(e,t){jf(e,t,bf(e).first?.node??null)},removeChild(e){let t=yf(e);Of(t),gf(e)&&(t.doomed=!0,e.getParent()||Mf(e))},parentOf:xf,nextSiblingOf:Sf,setText(e,t){if(hf(e)!==`text`)throw Error(`[konva-host] a konva tree has no text node to write`);e.data=t},setAttribute(e,t,n,r){if(!gf(e))return;if(lf.has(t))throw Error(`[konva-host] "${t}" is not a konva attribute a template may write`);let i=r?n:String(n);t===`id`&&Bf(e,i),e.attrs[t]!==i&&(e.setAttrs({[t]:i}),Ef(e))},removeAttribute(e,t){!gf(e)||e.attrs[t]===void 0||(e.setAttrs({[t]:void 0}),Ef(e))},isHostNode:e=>gf(e)||hf(e)!==null,isMarker:e=>hf(e)===`marker`,isText:e=>hf(e)===`text`,isElement:e=>gf(e)&&!_f(e),isFragment:e=>_f(e),addEventListener(e,t,n,r){gf(e)?e.on(`${t}.rhtml`,n):e.addEventListener(t,n,r)},removeEventListener(e,t,n,r){gf(e)?e.off(`${t}.rhtml`,n):e.removeEventListener(t,n,r)},getRoot:zf,createComponentContext(e,t){return{get host(){let n=zf(e);return n instanceof ee?n.container():t},get parentElement(){return null},dispatchEvent:e=>t.dispatchEvent(e)}},bridgeFragment(e,t){return wf.set(e,t),()=>{wf.delete(e)}}}),A=Vf.html;function Hf(e,t){if(!(e instanceof ee))throw Error(`[konva-host] a konva template renders into a Stage`);Vf.render(e,t)}var Uf=(e,t)=>e*(1-t)/2;function Wf(e){return{originX:Ve(e.scrollLeft+Uf(e.width,e.zoomLevel),4),originY:Ve(e.scrollTop+Uf(e.height,e.zoomLevel),4)}}function j(e,t,n){return r=>{if(!n)return;let i=n[r];e(i)&&(t[r]=i)}}function Gf(e){return t=>S(t)&&e.includes(t)}function Kf(e){return t=>x(t)&&e.includes(t)}function qf(e,t,n){return Reflect.get(e,t)??n}function Jf(){let e=Date.now();return{updateAt:e,createAt:e}}function Yf(e,t){let n=j(x,e,t);n(`updateAt`),n(`createAt`)}var Xf=()=>({tableIds:[],relationshipIds:[],indexIds:[],memoIds:[]});function Zf(e){let t=Xf();if(!de(e)||y(e))return t;let n=j(Array.isArray,t,e);return n(`tableIds`),n(`relationshipIds`),n(`indexIds`),n(`memoIds`),t}var Qf=()=>({id:``,name:``,tableId:``,indexColumnIds:[],seqIndexColumnIds:[],unique:!1,meta:Jf()});function $f(e){let t={};if(!de(e)||y(e))return t;for(let n of Object.values(e)){if(!n)continue;let e=Qf(),r=j(S,e,n),i=j(le,e,n),a=j(Array.isArray,e,n);r(`id`),r(`name`),r(`tableId`),i(`unique`),a(`indexColumnIds`),a(`seqIndexColumnIds`),Yf(e.meta,n.meta),e.id&&(t[e.id]=e)}return t}var ep={ASC:1,DESC:2},tp=Object.values(ep),np=()=>({id:``,indexId:``,columnId:``,orderType:ep.ASC,meta:Jf()});function rp(e){let t={};if(!de(e)||y(e))return t;for(let n of Object.values(e)){if(!n)continue;let e=np(),r=j(S,e,n);r(`id`),r(`indexId`),r(`columnId`),j(Kf(tp),e,n)(`orderType`),Yf(e.meta,n.meta),e.id&&(t[e.id]=e)}return t}var ip=()=>({id:``,value:``,ui:{x:200,y:100,zIndex:2,width:116,height:100,color:``},meta:Jf()});function ap(e){let t={};if(!de(e)||y(e))return t;for(let n of Object.values(e)){if(!n)continue;let e=ip(),r=j(S,e,n),i=j(x,e.ui,n.ui),a=j(S,e.ui,n.ui);r(`id`),r(`value`),a(`color`),i(`x`),i(`y`),i(`zIndex`),i(`width`),i(`height`),Yf(e.meta,n.meta),e.id&&(t[e.id]=e)}return t}var op={ZeroOne:2,ZeroN:4,OneOnly:8,OneN:16},sp=Object.values(op),cp={ring:1,dash:2},lp=Object.values(cp),up={left:1,right:2,top:4,bottom:8},dp=Object.values(up),fp=()=>({id:``,identification:!1,relationshipType:op.ZeroN,startRelationshipType:cp.dash,start:{tableId:``,columnIds:[],x:0,y:0,direction:up.bottom},end:{tableId:``,columnIds:[],x:0,y:0,direction:up.bottom},meta:Jf()});function pp(e){let t={};if(!de(e)||y(e))return t;for(let n of Object.values(e)){if(!n)continue;let e=fp(),r=j(S,e,n),i=j(le,e,n),a=j(x,e.start,n.start),o=j(S,e.start,n.start),s=j(x,e.end,n.end),c=j(S,e.end,n.end);r(`id`),i(`identification`),j(Kf(sp),e,n)(`relationshipType`),j(Kf(lp),e,n)(`startRelationshipType`),o(`tableId`),a(`x`),a(`y`),j(Kf(dp),e.start,n.start)(`direction`),j(Array.isArray,e.start,n.start)(`columnIds`),c(`tableId`),s(`x`),s(`y`),j(Kf(dp),e.end,n.end)(`direction`),j(Array.isArray,e.end,n.end)(`columnIds`),Yf(e.meta,n.meta),e.id&&(t[e.id]=e)}return t}var mp={ERD:`ERD`,visualization:`@dineug/erd-editor/builtin-visualization`,schemaSQL:`@dineug/erd-editor/builtin-schema-sql`,generatorCode:`@dineug/erd-editor/builtin-generator-code`,settings:`settings`},hp=Object.values(mp),gp={tableComment:1,columnComment:2,columnDataType:4,columnDefault:8,columnAutoIncrement:16,columnPrimaryKey:32,columnUnique:64,columnNotNull:128,relationship:256},_p={columnName:1,columnDataType:2,columnNotNull:4,columnUnique:8,columnAutoIncrement:16,columnDefault:32,columnComment:64},vp=Object.values(_p),yp={MariaDB:1,MSSQL:2,MySQL:4,Oracle:8,PostgreSQL:16,SQLite:32,Databricks:64,Snowflake:128},bp=Object.values(yp),xp={GraphQL:1,csharp:2,Java:4,Kotlin:8,TypeScript:16,JPA:32,Scala:64,Go:128,SQLAlchemy:256,TypeORM:512,Sequelize:1024,Drizzle:2048,DBML:4096,AML:8192},Sp=Object.values(xp),Cp={none:1,camelCase:2,pascalCase:4,snakeCase:8},wp=Object.values(Cp),Tp={none:1,doubleQuote:2,singleQuote:4,backtick:8},Ep=Object.values(Tp),Dp={scroll:1,zoomLevel:2},Op=.1,kp=1.5,Ap=2e3,jp=2e4,Mp=gp.tableComment|gp.columnComment|gp.columnDataType|gp.columnDefault|gp.columnPrimaryKey|gp.columnNotNull|gp.relationship,Np=()=>({width:2e3,height:2e3,scrollTop:0,scrollLeft:0,originX:0,originY:0,zoomLevel:1,show:Mp,database:yp.MySQL,databaseName:``,canvasType:mp.ERD,language:xp.GraphQL,tableNameCase:Cp.pascalCase,columnNameCase:Cp.camelCase,bracketType:Tp.none,relationshipDataTypeSync:!0,relationshipOptimization:!1,columnOrder:[_p.columnName,_p.columnDataType,_p.columnNotNull,_p.columnUnique,_p.columnAutoIncrement,_p.columnDefault,_p.columnComment],maxWidthComment:-1,ignoreSaveSettings:0}),Pp=e=>ie(e,Ap,jp),Fp=e=>ie(e,Op,kp),Ip=e=>ie(e,60,200);function Lp(e){let t=Np();if(!de(e)||y(e))return t;let n=j(x,t,e),r=j(S,t,e),i=j(le,t,e);if(x(e.width)&&(t.width=Pp(e.width)),x(e.height)&&(t.height=Pp(e.height)),x(e.zoomLevel)&&(t.zoomLevel=Fp(e.zoomLevel)),x(e.maxWidthComment)&&e.maxWidthComment!==-1&&(t.maxWidthComment=Ip(e.maxWidthComment)),n(`scrollTop`),n(`scrollLeft`),n(`show`),n(`ignoreSaveSettings`),r(`databaseName`),r(`canvasType`),i(`relationshipDataTypeSync`),i(`relationshipOptimization`),j(Kf(bp),t,e)(`database`),j(Kf(Sp),t,e)(`language`),j(Kf(wp),t,e)(`tableNameCase`),j(Kf(wp),t,e)(`columnNameCase`),j(Kf(Ep),t,e)(`bracketType`),Array.isArray(e.columnOrder)&&vp.length===e.columnOrder.length&&oe(vp,e.columnOrder).length===0&&(t.columnOrder=e.columnOrder),x(e.originX)&&x(e.originY))t.originX=e.originX,t.originY=e.originY;else{let{originX:e,originY:n}=Wf(t);t.originX=e,t.originY=n}return t}var Rp=()=>({id:``,name:``,comment:``,columnIds:[],seqColumnIds:[],ui:{x:200,y:100,zIndex:2,widthName:60,widthComment:60,color:``},meta:Jf()});function zp(e){let t={};if(!de(e)||y(e))return t;for(let n of Object.values(e)){if(!n)continue;let e=Rp(),r=j(S,e,n),i=j(Array.isArray,e,n),a=j(x,e.ui,n.ui),o=j(S,e.ui,n.ui);r(`id`),r(`name`),r(`comment`),i(`columnIds`),i(`seqColumnIds`),o(`color`),a(`x`),a(`y`),a(`zIndex`),a(`widthName`),a(`widthComment`),Yf(e.meta,n.meta),e.id&&(t[e.id]=e)}return t}var Bp=()=>({id:``,tableId:``,name:``,comment:``,dataType:``,default:``,options:0,ui:{keys:0,widthName:60,widthComment:60,widthDataType:60,widthDefault:60},meta:Jf()});function Vp(e){let t={};if(!de(e)||y(e))return t;for(let n of Object.values(e)){if(!n)continue;let e=Bp(),r=j(S,e,n),i=j(x,e,n),a=j(x,e.ui,n.ui);r(`id`),r(`tableId`),r(`name`),r(`comment`),r(`dataType`),r(`default`),i(`options`),a(`keys`),a(`widthName`),a(`widthComment`),a(`widthDataType`),a(`widthDefault`),Yf(e.meta,n.meta),e.id&&(t[e.id]=e)}return t}function Hp(e){let t=e;return{$schema:`https://raw.githubusercontent.com/dineug/erd-editor/main/json-schema/schema.json`,version:`3.0.0`,settings:Lp(t.settings),doc:Zf(t.doc),collections:{tableEntities:zp(t.collections?.tableEntities),tableColumnEntities:Vp(t.collections?.tableColumnEntities),relationshipEntities:pp(t.collections?.relationshipEntities),indexEntities:$f(t.collections?.indexEntities),indexColumnEntities:rp(t.collections?.indexColumnEntities),memoEntities:ap(t.collections?.memoEntities)}}}var M={CanvasType:mp,CanvasTypeList:hp,Show:gp,ColumnType:_p,ColumnTypeList:vp,Database:yp,DatabaseList:bp,Language:xp,LanguageList:Sp,NameCase:Cp,NameCaseList:wp,BracketType:Tp,BracketTypeList:Ep,RelationshipType:op,RelationshipTypeList:sp,StartRelationshipType:cp,StartRelationshipTypeList:lp,Direction:up,DirectionList:dp,ColumnOption:{autoIncrement:1,primaryKey:2,unique:4,notNull:8},ColumnUIKey:{primaryKey:1,foreignKey:2},OrderType:ep,OrderTypeList:tp,SaveSettingType:Dp,CANVAS_SIZE_MAX:jp,CANVAS_SIZE_MIN:Ap,CANVAS_ZOOM_MAX:kp,CANVAS_ZOOM_MIN:Op};function Up(e){return[e,-1,-1,{}]}function Wp(e,t,n){return e[t]||(e[t]=Up(n),e[t])}function Gp(e,t,n,r,i){let a=Wp(e,n,r),o=a[1],s=a[2];o<t&&(a[1]=t),s<t&&i()}function Kp(e,t,n,r,i){let a=Wp(e,n,r),o=a[2],s=a[1];o<t&&(a[2]=t),s<=t&&i()}function qp(e,t,n,r,i,a){let o=Wp(e,n,r);(o[3][i]??-1)<=t&&(o[3][i]=t,a())}function Jp(e){"@babel/helpers - typeof";return Jp=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},Jp(e)}function Yp(e,t){if(Jp(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(Jp(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function Xp(e){var t=Yp(e,`string`);return Jp(t)==`symbol`?t:t+``}function Zp(e,t,n){return(t=Xp(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Qp=class{constructor(e){Zp(this,`collections`,void 0),this.collections=e}collection(e){return new $p(this.collections[e],e)}},$p=class{constructor(e,t){Zp(this,`collection`,void 0),Zp(this,`collectionKey`,void 0),this.collection=e,this.collectionKey=t}selectById(e){return this.collection[e]}selectByIds(e){return e.length,e.map(e=>this.selectById(e)).filter(Boolean)}selectEntities(){return this.collection}selectAll(){return Object.values(this.collection)}setOne(e){return this.collection[e.id]=e,this}setMany(e){return e.forEach(e=>this.setOne(e)),this}setAll(e){return this.removeAll(),this.setMany(e),this}addOne(e){return this.selectById(e.id)||this.setOne(e),this}addMany(e){return e.forEach(e=>this.addOne(e)),this}removeOne(e){return this.selectById(e)&&Reflect.deleteProperty(this.collection,e),this}removeMany(e){return e.forEach(e=>this.removeOne(e)),this}removeAll(){return this.collection={},this}updateOne(e,t){let n=this.selectById(e);return n&&(t(n),n.meta.updateAt=Date.now()),this}updateMany(e,t){return e.forEach(e=>this.updateOne(e,t)),this}getOrCreate(e,t){let n=this.selectById(e);if(n)return n;let r=t(e);return this.setOne(r),this.selectById(e)}addOperator(e,t,n,r){return Gp(e,t,n,this.collectionKey,r),this}removeOperator(e,t,n,r){return Kp(e,t,n,this.collectionKey,r),this}replaceOperator(e,t,n,r,i){return qp(e,t,n,this.collectionKey,r,i),this}},N=e=>new Qp(e),em=Object.values({columnUnique:`columnUnique`,columnAutoIncrement:`columnAutoIncrement`,columnName:`columnName`,columnDataType:`columnDataType`,columnNotNull:`columnNotNull`,columnDefault:`columnDefault`,columnComment:`columnComment`}),tm=Object.values({ERD:`ERD`,"@vuerd/builtin-sql-ddl":`@vuerd/builtin-sql-ddl`,"@vuerd/builtin-grid":`@vuerd/builtin-grid`,"@vuerd/builtin-generator-code":`@vuerd/builtin-generator-code`,"@vuerd/builtin-visualization":`@vuerd/builtin-visualization`}),nm=Object.values({MariaDB:`MariaDB`,MSSQL:`MSSQL`,MySQL:`MySQL`,Oracle:`Oracle`,PostgreSQL:`PostgreSQL`,SQLite:`SQLite`}),rm=Object.values({GraphQL:`GraphQL`,"C#":`C#`,Java:`Java`,Kotlin:`Kotlin`,TypeScript:`TypeScript`,JPA:`JPA`,Scala:`Scala`}),im=Object.values({none:`none`,camelCase:`camelCase`,pascalCase:`pascalCase`,snakeCase:`snakeCase`}),am=Object.values({AtomOneDark:`AtomOneDark`,AtomOneLight:`AtomOneLight`,MonokaiSublime:`MonokaiSublime`,GithubGist:`GithubGist`,VS2015:`VS2015`}),om=Object.values({none:`none`,doubleQuote:`doubleQuote`,singleQuote:`singleQuote`,backtick:`backtick`}),sm=.1,cm=2e3,lm=2e4,um=()=>({version:`2.2.11`,width:2e3,height:2e3,scrollTop:0,scrollLeft:0,zoomLevel:1,show:{tableComment:!0,columnComment:!0,columnDataType:!0,columnDefault:!0,columnAutoIncrement:!1,columnPrimaryKey:!0,columnUnique:!1,columnNotNull:!0,relationship:!0},database:`MySQL`,databaseName:``,canvasType:`ERD`,language:`GraphQL`,tableCase:`pascalCase`,columnCase:`camelCase`,highlightTheme:`VS2015`,bracketType:`none`,setting:{relationshipDataTypeSync:!0,relationshipOptimization:!1,columnOrder:[`columnName`,`columnDataType`,`columnNotNull`,`columnUnique`,`columnAutoIncrement`,`columnDefault`,`columnComment`]},pluginSerializationMap:{}}),dm=e=>ie(e,cm,lm),fm=e=>ie(e,sm,1);function pm(e){let t=um();if(y(e))return t;let n=j(x,t,e),r=j(S,t,e),i=j(le,t.show,e.show),a=j(le,t.setting,e.setting);if(x(e.width)&&(t.width=dm(e.width)),x(e.height)&&(t.height=dm(e.height)),x(e.zoomLevel)&&(t.zoomLevel=fm(e.zoomLevel)),r(`version`),r(`databaseName`),n(`scrollTop`),n(`scrollLeft`),j(Gf(nm),t,e)(`database`),j(Gf(tm),t,e)(`canvasType`),j(Gf(rm),t,e)(`language`),j(Gf(im),t,e)(`tableCase`),j(Gf(im),t,e)(`columnCase`),j(Gf(am),t,e)(`highlightTheme`),j(Gf(om),t,e)(`bracketType`),i(`tableComment`),i(`columnComment`),i(`columnDataType`),i(`columnDefault`),i(`columnAutoIncrement`),i(`columnPrimaryKey`),i(`columnUnique`),i(`columnNotNull`),i(`relationship`),a(`relationshipDataTypeSync`),a(`relationshipOptimization`),e.setting?.columnOrder&&em.length===e.setting.columnOrder.length&&oe(em,e.setting.columnOrder).length===0&&(t.setting.columnOrder=e.setting.columnOrder),de(e.pluginSerializationMap)){let n=e.pluginSerializationMap;for(let e of Object.keys(n)){let r=n[e];S(r)&&(t.pluginSerializationMap[e]=r)}}return t}var mm=()=>({memos:[]}),hm=()=>({id:``,value:``,ui:{active:!1,left:200,top:200,zIndex:2,width:127,height:127}});function gm(e){let t=mm();if(y(e)||!Array.isArray(e.memos))return t;for(let n of e.memos){let e=hm(),r=j(S,e,n),i=j(x,e.ui,n.ui),a=j(le,e.ui,n.ui),o=j(S,e.ui,n.ui);r(`id`),r(`value`),a(`active`),o(`color`),i(`left`),i(`top`),i(`zIndex`),i(`width`),i(`height`),t.memos.push(e)}return t}var _m=[`ZeroOneN`,`One`,`N`],vm={ZeroOneN:`ZeroN`,One:`OneOnly`,N:`OneN`},ym=e=>_m.includes(e)?vm[e]:e,bm=Object.values({ZeroOneN:`ZeroOneN`,ZeroOne:`ZeroOne`,ZeroN:`ZeroN`,OneOnly:`OneOnly`,OneN:`OneN`,One:`One`,N:`N`}),xm=Object.values({Ring:`Ring`,Dash:`Dash`}),Sm=Object.values({left:`left`,right:`right`,top:`top`,bottom:`bottom`}),Cm=()=>({relationships:[]}),wm=()=>({id:``,identification:!1,relationshipType:`ZeroN`,startRelationshipType:`Dash`,start:{tableId:``,columnIds:[],x:0,y:0,direction:`bottom`},end:{tableId:``,columnIds:[],x:0,y:0,direction:`bottom`},constraintName:``,visible:!0});function Tm(e){let t=Cm();if(y(e)||!Array.isArray(e.relationships))return t;for(let n of e.relationships){let e=wm(),r=j(S,e,n),i=j(le,e,n),a=j(x,e.start,n.start),o=j(S,e.start,n.start),s=j(x,e.end,n.end),c=j(S,e.end,n.end);r(`id`),r(`constraintName`),i(`identification`),i(`visible`),j(Gf(bm),e,n)(`relationshipType`),e.relationshipType=ym(e.relationshipType),j(Gf(xm),e,n)(`startRelationshipType`),o(`tableId`),a(`x`),a(`y`),j(Gf(Sm),e.start,n.start)(`direction`),Array.isArray(n.start?.columnIds)&&(e.start.columnIds=n.start?.columnIds.filter(S)),c(`tableId`),s(`x`),s(`y`),j(Gf(Sm),e.end,n.end)(`direction`),Array.isArray(n.end?.columnIds)&&(e.end.columnIds=n.end?.columnIds.filter(S)),t.relationships.push(e)}return t}var Em={ASC:`ASC`,DESC:`DESC`},Dm=Object.values(Em),Om=()=>({tables:[],indexes:[]}),km=()=>({id:``,name:``,comment:``,columns:[],ui:{active:!1,left:200,top:100,zIndex:2,widthName:60,widthComment:60},visible:!0}),Am=()=>({id:``,name:``,comment:``,dataType:``,default:``,option:{autoIncrement:!1,primaryKey:!1,unique:!1,notNull:!1},ui:{active:!1,pk:!1,fk:!1,pfk:!1,widthName:60,widthComment:60,widthDataType:60,widthDefault:60}}),jm=()=>({id:``,name:``,tableId:``,columns:[],unique:!1}),Mm=()=>({id:``,orderType:Em.ASC});function Nm(e){let t=Om();if(y(e))return t;if(Array.isArray(e.tables))for(let n of e.tables){let e=km(),r=j(S,e,n),i=j(le,e,n),a=j(x,e.ui,n.ui),o=j(le,e.ui,n.ui),s=j(S,e.ui,n.ui);if(r(`id`),r(`name`),r(`comment`),i(`visible`),o(`active`),s(`color`),a(`left`),a(`top`),a(`zIndex`),a(`widthName`),a(`widthComment`),Array.isArray(n.columns))for(let t of n.columns){let n=Am(),r=j(S,n,t),i=j(x,n.ui,t.ui),a=j(le,n.ui,t.ui),o=j(le,n.option,t.option);r(`id`),r(`name`),r(`comment`),r(`dataType`),r(`default`),o(`autoIncrement`),o(`primaryKey`),o(`unique`),o(`notNull`),a(`active`),a(`pk`),a(`fk`),a(`pfk`),i(`widthName`),i(`widthComment`),i(`widthDataType`),i(`widthDefault`),e.columns.push(n)}t.tables.push(e)}if(Array.isArray(e.indexes))for(let n of e.indexes){let e=jm(),r=j(S,e,n),i=j(le,e,n);if(r(`id`),r(`name`),r(`tableId`),i(`unique`),Array.isArray(n.columns))for(let t of n.columns){let n=Mm();j(S,n,t)(`id`),j(Gf(Dm),n,t)(`orderType`),e.columns.push(n)}t.indexes.push(e)}return t}function Pm(e){let t=e;return{canvas:pm(t.canvas),table:Nm(t.table),relationship:Tm(t.relationship),memo:gm(t.memo)}}function Fm(e){let t=Hp({});return Im(t.settings,e.canvas),Lm(t,e.table),Rm(t,e.memo),zm(t,e.relationship),t}function Im(e,t){e.width=t.width,e.height=t.height,e.scrollTop=t.scrollTop,e.scrollLeft=t.scrollLeft,e.zoomLevel=t.zoomLevel;let{originX:n,originY:r}=Wf(e);e.originX=n,e.originY=r,e.databaseName=t.databaseName,e.canvasType=M.CanvasType.ERD,e.show=Object.keys(t.show).reduce((e,n)=>qf(t.show,n,!1)?e|qf(M.Show,n,0):e,0),e.database=Reflect.get(M.Database,t.database)??M.Database.MySQL,e.language=t.language===`C#`?M.Language.csharp:qf(M.Language,t.language,M.Language.GraphQL),e.tableNameCase=qf(M.NameCase,t.tableCase,M.NameCase.pascalCase),e.columnNameCase=qf(M.NameCase,t.columnCase,M.NameCase.camelCase),e.bracketType=qf(M.BracketType,t.bracketType,M.BracketType.none),e.relationshipDataTypeSync=t.setting.relationshipDataTypeSync,e.relationshipOptimization=t.setting.relationshipOptimization;let i=t.setting.columnOrder.map(e=>M.ColumnType[e]);oe(M.ColumnTypeList,i).length===0&&(e.columnOrder=i)}function Lm(e,t){let n=t.tables.filter(({id:e})=>!!e),r=t.indexes.filter(({id:e})=>!!e);e.doc.tableIds=n.map(({id:e})=>e),e.doc.indexIds=r.map(({id:e})=>e);for(let t of n){let n=Rp();n.id=t.id,n.name=t.name,n.comment=t.comment,n.columnIds=t.columns.map(({id:e})=>e),n.seqColumnIds=[...n.columnIds],n.ui.y=t.ui.top,n.ui.x=t.ui.left,n.ui.zIndex=t.ui.zIndex,n.ui.widthName=t.ui.widthName,n.ui.widthComment=t.ui.widthComment,n.ui.color=t.ui.color??``;for(let n of t.columns){let r=Bp();r.id=n.id,r.tableId=t.id,r.name=n.name,r.comment=n.comment,r.dataType=n.dataType,r.default=n.default,r.options=Object.keys(n.option).reduce((e,t)=>qf(n.option,t,!1)?e|qf(M.ColumnOption,t,0):e,0),r.ui.widthName=n.ui.widthName,r.ui.widthComment=n.ui.widthComment,r.ui.widthDataType=n.ui.widthDataType,r.ui.widthDefault=n.ui.widthDefault,n.ui.pfk?r.ui.keys=M.ColumnUIKey.primaryKey|M.ColumnUIKey.foreignKey:n.ui.pk?r.ui.keys=M.ColumnUIKey.primaryKey:n.ui.fk&&(r.ui.keys=M.ColumnUIKey.foreignKey),e.collections.tableColumnEntities[r.id]=r}e.collections.tableEntities[n.id]=n}for(let t of r){let n=Qf();n.id=t.id,n.name=t.name,n.tableId=t.tableId,n.unique=t.unique;for(let r of t.columns){let i=w(),a=np();n.indexColumnIds.push(i),n.seqIndexColumnIds.push(i),a.id=i,a.indexId=t.id,a.columnId=r.id,a.orderType=qf(M.OrderType,r.orderType,M.OrderType.ASC),e.collections.indexColumnEntities[a.id]=a}e.collections.indexEntities[n.id]=n}}function Rm(e,t){let n=t.memos.filter(({id:e})=>!!e);e.doc.memoIds=n.map(({id:e})=>e);for(let t of n){let n=ip();n.id=t.id,n.value=t.value,n.ui.y=t.ui.top,n.ui.x=t.ui.left,n.ui.width=t.ui.width,n.ui.height=t.ui.height,n.ui.zIndex=t.ui.zIndex,n.ui.color=t.ui.color??``,e.collections.memoEntities[n.id]=n}}function zm(e,t){let n=t.relationships.filter(({id:e})=>!!e);e.doc.relationshipIds=n.map(({id:e})=>e);for(let t of n){let n=fp();n.id=t.id,n.identification=t.identification,n.relationshipType=qf(M.RelationshipType,t.relationshipType,M.RelationshipType.ZeroN),n.startRelationshipType=qf(M.StartRelationshipType,t.startRelationshipType===`Ring`?`ring`:`dash`,M.StartRelationshipType.dash),n.start.tableId=t.start.tableId,n.start.columnIds=t.start.columnIds,n.start.x=t.start.x,n.start.y=t.start.y,n.start.direction=qf(M.Direction,t.start.direction,M.Direction.bottom),n.end.tableId=t.end.tableId,n.end.columnIds=t.end.columnIds,n.end.x=t.end.x,n.end.y=t.end.y,n.end.direction=qf(M.Direction,t.end.direction,M.Direction.bottom),e.collections.relationshipEntities[n.id]=n}}function Bm(e,t){return(e&t)===t}function Vm(e){let t=JSON.parse(e);return Reflect.get(t,`version`)===`3.0.0`?Hp(t):Fm(Pm(t))}function Hm(e){let t=ge(e,[`$schema`,`version`,`settings`,`doc`,`collections`]),n={...t.settings};return t.settings=n,Bm(n.ignoreSaveSettings,M.SaveSettingType.scroll)&&(n.originX=0,n.originY=0),Bm(n.ignoreSaveSettings,M.SaveSettingType.zoomLevel)&&(n.zoomLevel=1),JSON.stringify(t,null,2)}const P={changeHasHistory:`editor.changeHasHistory`,selectAll:`editor.selectAll`,unselectAll:`editor.unselectAll`,select:`editor.select`,changeViewport:`editor.changeViewport`,clear:`editor.clear`,loadJson:`editor.loadJson`,initialClear:`editor.initialClear`,initialLoadJson:`editor.initialLoadJson`,focusTable:`editor.focusTable`,focusColumn:`editor.focusColumn`,focusTableEnd:`editor.focusTableEnd`,focusMoveTable:`editor.focusMoveTable`,editTable:`editor.editTable`,editTableEnd:`editor.editTableEnd`,editMemo:`editor.editMemo`,editMemoEnd:`editor.editMemoEnd`,scrollMemo:`editor.scrollMemo`,selectAllColumn:`editor.selectAllColumn`,drawStartRelationship:`editor.drawStartRelationship`,drawStartAddRelationship:`editor.drawStartAddRelationship`,drawEndRelationship:`editor.drawEndRelationship`,drawRelationship:`editor.drawRelationship`,hoverColumnMap:`editor.hoverColumnMap`,hoverRelationshipMap:`editor.hoverRelationshipMap`,changeOpenMap:`editor.changeOpenMap`,changeHandTool:`editor.changeHandTool`,changeZenMode:`editor.changeZenMode`,dragstartColumn:`editor.dragstartColumn`,dragendColumn:`editor.dragendColumn`,sharedMouseTracker:`editor.sharedMouseTracker`,sharedFocusTracker:`editor.sharedFocusTracker`,sharedSelectionTracker:`editor.sharedSelectionTracker`,sharedDragSelectTracker:`editor.sharedDragSelectTracker`,dragSelectRect:`editor.dragSelectRect`,validationIds:`editor.validationIds`,getLWW:`editor.getLWW`,mergeLWW:`editor.mergeLWW`,viewOpen:`editor.viewOpen`,viewClose:`editor.viewClose`,viewScrollTo:`editor.viewScrollTo`,viewStreamScrollTo:`editor.viewStreamScrollTo`,viewChangeZoomLevel:`editor.viewChangeZoomLevel`,viewStreamZoomLevel:`editor.viewStreamZoomLevel`,viewMoveTable:`editor.viewMoveTable`,viewSetLayout:`editor.viewSetLayout`,viewChangeShowMode:`editor.viewChangeShowMode`,viewSetCenters:`editor.viewSetCenters`,changeVisualizationMode:`editor.changeVisualizationMode`},Um=M.CanvasType,Wm=M.CanvasTypeList,F=M.Show,I=M.ColumnType,Gm=M.ColumnTypeList,L=M.Database,Km=M.DatabaseList;M.Language;const qm=M.LanguageList;M.NameCase;const Jm=M.NameCaseList,Ym=M.BracketType,Xm=M.BracketTypeList,Zm=M.RelationshipType;M.RelationshipTypeList;const Qm=M.StartRelationshipType;M.StartRelationshipTypeList;const R=M.Direction;M.DirectionList;const z=M.ColumnOption,B=M.ColumnUIKey,$m=M.OrderType;M.OrderTypeList,M.SaveSettingType;const eh=M.CANVAS_SIZE_MAX,th=M.CANVAS_SIZE_MIN,nh=M.CANVAS_ZOOM_MAX,rh=M.CANVAS_ZOOM_MIN;Ym.none,Ym.backtick,Ym.doubleQuote,Ym.singleQuote,I.columnName,I.columnDataType,I.columnDefault,I.columnComment,I.columnAutoIncrement,I.columnUnique,I.columnNotNull;const ih=1200;function V(e){let t=new Set(e);return e=>t.has(e)}function ah(e){return 6.25*Math.sqrt(Math.max(e,0))}function oh(e){return e>=0?e/2:ah(-e)}function sh(e,t,n){let r=oh((n.x-e.x)*t.x+(n.y-e.y)*t.y);return{x:e.x+t.x*r,y:e.y+t.y*r}}function ch(e,t,n,r){return[sh(e,t,n),sh(n,r,e)]}function lh(e,t,n,r,i=24){let a=Math.max(1,Math.floor(i)),[o,s]=ch(e,t,n,r),c=[{x:e.x,y:e.y}];for(let t=1;t<=a;t++){let r=t/a;c.push({x:uh(e.x,o.x,s.x,n.x,r),y:uh(e.y,o.y,s.y,n.y,r)})}return c}function uh(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}const H={left:`left`,right:`right`,top:`top`,bottom:`bottom`},dh=Object.values(H);V([H.top,H.bottom,H.left,H.right]);const fh=[0,0];function ph({tableId:e,x:t,y:n,direction:r}){return{tableId:e,x:t,y:n,direction:r}}const mh=()=>({epoch:0,stubSlots:new WeakMap,routes:new WeakMap,anchors:new WeakMap}),hh={document:mh(),flow:mh()},gh={flow:new WeakMap};function _h(e,t){let n=gh[t],r=n.get(e);return r||(r=Ea({version:0}),n.set(e,r)),r}function vh(e,t){return _h(e,t).version}function yh(e,t){_h(e,t).version+=1}function bh(e,t=`document`){let n=hh[t];for(let r of e){let e=n.stubSlots.delete(r),i=n.routes.delete(r),a=n.anchors.delete(r);t!==`document`&&(e||i||a)&&yh(r,t)}}const xh=(e,t)=>e[0]===t[0]&&e[1]===t[1],Sh=(e,t)=>e.x===t.x&&e.y===t.y&&e.direction===t.direction,Ch=(e,t)=>e.length===t.length&&e.every((e,n)=>e.x===t[n].x&&e.y===t[n].y);function wh(e,t,n=`document`){let r=hh[n];n!==`document`&&!xh(r.stubSlots.get(e)??fh,t)&&yh(e,n),r.stubSlots.set(e,t)}function Th(e,t=`document`){return t!==`document`&&vh(e,t),hh[t].stubSlots.get(e)??fh}function Eh(e,t,n=`document`){let r=hh[n];if(n!==`document`){let i=r.routes.get(e);(!i||!Ch(i.points,t))&&yh(e,n)}r.routes.set(e,{points:t,epoch:r.epoch})}function Dh(e,t=`document`){return t!==`document`&&vh(e,t),hh[t].routes.get(e)?.points}function Oh(e=`document`){hh[e].epoch+=1}function kh(e,t=`document`){return t===`document`?e:(vh(e,t),hh[t].anchors.get(e)??e)}function Ah(e,{start:t,end:n},r=`document`){if(r===`document`){e.start.direction=t.direction,e.start.x=t.x,e.start.y=t.y,e.end.direction=n.direction,e.end.x=n.x,e.end.y=n.y;return}let{anchors:i}=hh[r],a=i.get(e)??e;(!Sh(a.start,t)||!Sh(a.end,n))&&yh(e,r),i.set(e,{start:ph(t),end:ph(n)})}function jh(e){let t=1/0,n=1/0,r=-1/0,i=-1/0;for(let{x:a,y:o}of e)a<t&&(t=a),o<n&&(n=o),a>r&&(r=a),o>i&&(i=o);return{x:t,y:n,width:r-t,height:i-n}}function Mh({x:e,y:t,width:n,height:r},i){return{x:e-i,y:t-i,width:n+i*2,height:r+i*2}}function Nh(e=`document`){return e===`document`?2:1}function Ph(e,t=2,n=`document`){let r=hh[n],{start:i,end:a}=kh(e,n),o=r.routes.get(e),s=o&&o.epoch===r.epoch?o.points:null,c=s?0:86;if(n!==`document`){let e=jh([...s?.length?[s[0],s[s.length-1]]:[],i,a]),n=ah(Math.max(e.width,e.height)+2*c);return Mh(e,25+t+c+n)}return Mh(jh(s?[...s,i,a]:[i,a]),25+t+c)}const Fh={Databricks:`Databricks`,MariaDB:`MariaDB`,MSSQL:`MSSQL`,MySQL:`MySQL`,Oracle:`Oracle`,PostgreSQL:`PostgreSQL`,Snowflake:`Snowflake`,SQLite:`SQLite`},Ih=Object.values(Fh);Fh.Databricks,L.Databricks,Fh.MariaDB,L.MariaDB,Fh.MSSQL,L.MSSQL,Fh.MySQL,L.MySQL,Fh.Oracle,L.Oracle,Fh.PostgreSQL,L.PostgreSQL,Fh.Snowflake,L.Snowflake,Fh.SQLite,L.SQLite;const Lh=/[^0-9]/g,Rh=e=>e.replace(Lh,``),zh=e=>ie(e,th,eh),Bh=e=>ie(e,rh,nh),Vh=e=>ie(e,60,200);function Hh(e){let t=S(e)?Number(Rh(e)):e;return zh(t)}function Uh(e){return Ve(Bh(e),2)}const Wh=V(Km),Gh=V(Jm),Kh=V(Xm),qh=V(qm),Jh=V(Gm);V(Ih);const Yh=V(Wm);function U(e){return Math.max(e,60)}function Xh(e){return S(e)?e.trim():``}function Zh(e){return e<=.7}const Qh={table:`table`,memo:`memo`},$h={nameOnly:`nameOnly`,keysOnly:`keysOnly`,allFields:`allFields`},eg={flow:`flow`},tg={graph:`graph`,flow:`flow`},W={tableName:`tableName`,tableComment:`tableComment`,columnName:`columnName`,columnDataType:`columnDataType`,columnNotNull:`columnNotNull`,columnUnique:`columnUnique`,columnAutoIncrement:`columnAutoIncrement`,columnDefault:`columnDefault`,columnComment:`columnComment`},ng={ArrowUp:`ArrowUp`,ArrowRight:`ArrowRight`,ArrowDown:`ArrowDown`,ArrowLeft:`ArrowLeft`,Tab:`Tab`};V(Object.values(ng));const rg=()=>({id:w(),selectedMap:{},hasUndo:!1,hasRedo:!1,viewport:{width:ih,height:675},scrollPullPending:!1,focusTable:null,editMemoId:null,memoScrollTopMap:{},drawRelationship:null,hoverColumnMap:{},hoverRelationshipMap:{},openMap:{},handTool:!1,zenMode:!1,draggableColumn:null,draggingColumnMap:{},sharedMouseTrackerMap:{},sharedFocusTrackerMap:{},sharedSelectionTrackerMap:{},sharedDragSelectTrackerMap:{},dragSelect:null,views:{flow:null},visualizationMode:tg.graph}),ig=e=>e.settings.canvasType===Um.visualization&&e.editor.visualizationMode===tg.flow,ag=e=>ig(e)?e.editor.views.flow:null,og=(e,t)=>e.editor.views[t]!==null&&ig(e),sg=(e,t)=>t===`document`?null:e.editor.views[t];function cg(e,t=[]){let n=[...t];return{kind:e,showMode:n.length?$h.keysOnly:$h.nameOnly,positions:{},originX:0,originY:0,zoomLevel:1,centerIds:n}}function lg({collections:e},t){bh(N(e).collection(`relationshipEntities`).selectAll(),t)}const ug=(e,t)=>t?e.editor.views[t]:ag(e);function dg(e){e.views.flow=null}const fg=k(P.viewOpen),pg=(e,{payload:{kind:t,centerIds:n}})=>{lg(e,t),e.editor.views[t]=cg(t,n)},mg=k(P.viewClose),hg=(e,{payload:{kind:t}})=>{lg(e,t),e.editor.views[t]=null},gg=k(P.viewScrollTo),_g=(e,{payload:{originX:t,originY:n,kind:r}})=>{let i=ug(e,r);i&&(i.originX=Ve(t,4),i.originY=Ve(n,4))},vg=k(P.viewStreamScrollTo),yg=(e,{payload:{movementX:t,movementY:n,kind:r}})=>{let i=ug(e,r);i&&(i.originX=Ve(i.originX+t,4),i.originY=Ve(i.originY+n,4))},bg=k(P.viewChangeZoomLevel),xg=(e,{payload:{value:t,kind:n}})=>{let r=ug(e,n);r&&(r.zoomLevel=Uh(t))},Sg=k(P.viewStreamZoomLevel),Cg=(e,{payload:{value:t,kind:n}})=>{let r=ug(e,n);r&&(r.zoomLevel=Uh(r.zoomLevel+t))},wg=k(P.viewMoveTable),Tg=(e,{payload:{ids:t,movementX:n,movementY:r,kind:i}})=>{let a=ug(e,i);if(a)for(let e of t){let t=a.positions[e];t&&(t.x=Ve(t.x+n,4),t.y=Ve(t.y+r,4))}},Eg=k(P.viewSetLayout),Dg=({editor:e},{payload:{kind:t,positions:n}})=>{let r=e.views[t];r&&(r.positions=Object.fromEntries(Object.entries(n).map(([e,{x:t,y:n}])=>[e,{x:t,y:n}])))},Og=k(P.viewChangeShowMode),kg=(e,{payload:{value:t,kind:n}})=>{let r=ug(e,n);r&&(r.showMode=t)},Ag=k(P.viewSetCenters),jg=(e,{payload:{tableIds:t,kind:n}})=>{let r=ug(e,n);r&&(r.centerIds=[...t])},Mg=k(P.changeVisualizationMode),Ng=({editor:e},{payload:{value:t}})=>{e.visualizationMode=t},Pg={[P.viewOpen]:pg,[P.viewClose]:hg,[P.viewScrollTo]:_g,[P.viewStreamScrollTo]:yg,[P.viewChangeZoomLevel]:xg,[P.viewStreamZoomLevel]:Cg,[P.viewMoveTable]:Tg,[P.viewSetLayout]:Dg,[P.viewChangeShowMode]:kg,[P.viewSetCenters]:jg,[P.changeVisualizationMode]:Ng},Fg={viewOpenAction:fg,viewCloseAction:mg,viewScrollToAction:gg,viewStreamScrollToAction:vg,viewChangeZoomLevelAction:bg,viewStreamZoomLevelAction:Sg,viewMoveTableAction:wg,viewSetLayoutAction:Eg,viewChangeShowModeAction:Og,viewSetCentersAction:Ag,changeVisualizationModeAction:Mg},Ig={shared:1,changeOnly:2,following:4};function Lg(e,t){return{...ae(t),tags:x(t.tags)&&Number.isInteger(t.tags)?t.tags|e:e}}function Rg(e,t){return t.map(t=>Lg(e,t))}(e=>(...t)=>function*(n,r){yield Rg(e,Au(n,r,t))})(Ig.changeOnly);function G(e,t){return(e&t)===t}const zg=Object.freeze({tableIds:[],memoIds:[],relationshipIds:[]});function Bg(e,t,n=`document`){let{x:r,y:i}=sg(e,n)?.positions[t.id]??t.ui;return{x:r,y:i}}const Vg=e=>G(e,B.primaryKey)||G(e,B.foreignKey);function Hg(e,t){let n=N(e.collections).collection(`relationshipEntities`).selectByIds(e.doc.relationshipIds);for(let{start:e,end:r}of n)t(e.tableId,e.columnIds),t(r.tableId,r.columnIds)}function Ug(e,t){let n=new Set;return Hg(e,(e,r)=>{e===t.id&&r.forEach(e=>n.add(e))}),n}function Wg(e,t,n=`document`){let r=sg(e,n);if(!r||r.showMode===$h.allFields)return t.columnIds;if(r.showMode===$h.nameOnly)return[];let i=Ug(e,t);return N(e.collections).collection(`tableColumnEntities`).selectByIds(t.columnIds).filter(e=>Vg(e.ui.keys)||i.has(e.id)).map(e=>e.id)}function Gg(e,t){let n=new Set(e),r=new Set(n);for(let{start:e,end:i}of t)n.has(e.tableId)&&r.add(i.tableId),n.has(i.tableId)&&r.add(e.tableId);return r}function Kg(e,t=`document`){let{doc:n,collections:r}=e;if(t===`document`)return{tableIds:n.tableIds,memoIds:n.memoIds,relationshipIds:n.relationshipIds};let i=sg(e,t);if(!i)return zg;let a=N(r).collection(`relationshipEntities`).selectByIds(n.relationshipIds),o=i.centerIds.length?Gg(i.centerIds,a):new Set(Object.keys(i.positions)),s=n.tableIds.filter(e=>o.has(e)),c=new Set(s);return{tableIds:s,memoIds:[],relationshipIds:a.filter(({start:e,end:t})=>c.has(e.tableId)&&c.has(t.tableId)).map(e=>e.id)}}const qg=Ea({tableId:{}}),Jg=new Map;function Yg(e){Jg.delete(e),Reflect.deleteProperty(qg.tableId,e)}function Xg(e,t,n=`document`){let r=sg(e,n),{id:i}=e.editor;if(t===null||!r){Jg.get(i)?.kind===n&&Yg(i);return}Jg.set(i,r),qg.tableId[i]=t}function Zg(e,t,n=`document`){let{id:r}=e.editor;qg.tableId[r]===t&&Jg.get(r)?.kind===n&&Yg(r)}const Qg=Ea({tableId:{}}),$g=new Map;function e_(e){$g.delete(e),Reflect.deleteProperty(Qg.tableId,e)}function t_(e,t,n=`document`){let r=sg(e,n);if(!r)return;let{id:i}=e.editor;if(($g.get(i)===r?Qg.tableId[i]:void 0)===t){e_(i);return}$g.set(i,r),Qg.tableId[i]=t}function n_(e){return 9+e.ui.width+8+1}function r_(e){return 25+e.ui.height+8+1}let i_=0;function a_(){return i_}function o_(){i_++}function s_(e,{settings:{show:t,maxWidthComment:n},collections:r}){let i=e.ui.widthName+8;if(G(t,F.tableComment)){let t=n===-1?e.ui.widthComment:n<e.ui.widthComment?n:e.ui.widthComment;i+=t+8}let a=l_(t);i<a&&(i=a);let o=d_(N(r).collection(`tableColumnEntities`).selectByIds(e.columnIds),t,n);return i<o.width&&(i=o.width),{...o,width:9+i+8+1}}const c_=[{key:F.columnComment,width:60},{key:F.columnDataType,width:60},{key:F.columnDefault,width:60},{key:F.columnNotNull,width:35},{key:F.columnAutoIncrement,width:15},{key:F.columnUnique,width:22}];function l_(e){return c_.reduce((t,{key:n,width:r})=>G(e,n)?t+r+8:t,100)}function u_(){return{width:0,name:0,comment:0,dataType:0,default:0,notNull:0,autoIncrement:0,unique:0}}function d_(e,t,n){let r=u_();for(let i of e)r.name<i.ui.widthName&&(r.name=i.ui.widthName),G(t,F.columnComment)&&r.comment<i.ui.widthComment&&(r.comment=n===-1?i.ui.widthComment:n<i.ui.widthComment?n:i.ui.widthComment),G(t,F.columnDataType)&&r.dataType<i.ui.widthDataType&&(r.dataType=i.ui.widthDataType),G(t,F.columnDefault)&&r.default<i.ui.widthDefault&&(r.default=i.ui.widthDefault);return G(t,F.columnNotNull)&&(r.notNull=35),G(t,F.columnAutoIncrement)&&(r.autoIncrement=15),G(t,F.columnUnique)&&(r.unique=22),r.width=Object.entries(r).reduce((e,[t,n])=>t===`width`||n===0?e:e+n+8,32),r}function f_(e,t,n){let r=u_(),i=N(t.collections).collection(`tableColumnEntities`).selectByIds(n);for(let e of i)r.name=Math.max(r.name,e.ui.widthName),r.dataType=Math.max(r.dataType,e.ui.widthDataType);let a=i.length?22+r.name+8+r.dataType:0,o=Math.max(m_(e),a,154);return i.length&&(r.name+=o-a),r.width=18+o,r}function p_(e){return Math.ceil(e*1.1666666666666667*1.04)}function m_(e){return 20+p_(e.ui.widthName)}function h_(e=`document`){return e===`document`?38:24}function g_(e=`document`){return e===`document`?24:32}function __(e,t=e.columnIds.length,n=`document`){let r=n===`document`?8:0;return 9+h_(n)+t*g_(n)+r+1}function v_({doc:{tableIds:e},collections:t},{toWidth:n}){o_();let r=N(t).collection(`tableEntities`).selectByIds(e),i=N(t).collection(`tableColumnEntities`);for(let e of r){e.ui.widthName=U(n(e.name)),e.ui.widthComment=U(n(e.comment));let t=i.selectByIds(e.columnIds);for(let e of t)e.ui.widthName=U(n(e.name)),e.ui.widthDataType=U(n(e.dataType)),e.ui.widthDefault=U(n(e.default)),e.ui.widthComment=U(n(e.comment))}}const y_={document:new WeakMap,flow:new WeakMap};function b_(e,t,n){let r=y_[n],i=n===`document`?x_(e,t):S_(e,t,n),a=r.get(t);if(a?.key===i.key)return a;let o=i.measure();return r.set(t,o),o}function x_(e,t){let{settings:n}=e,r=`${a_()}|${n.show}|${n.maxWidthComment}|${t.ui.widthName}|${t.ui.widthComment}|${t.columnIds.length}`;return{key:r,measure:()=>({key:r,width:s_(t,e).width,height:__(t)})}}function S_(e,t,n){let r=sg(e,n)?.showMode??$h.allFields,i=Wg(e,t,n),a=`${a_()}|${t.ui.widthName}|${t.columnIds.length}|${r}|${i.length}`;return{key:a,measure:()=>({key:a,width:f_(t,e,i).width,height:__(t,i.length,n)})}}function C_(e,t,n=`document`){let{width:r,height:i}=b_(e,t,n),{x:a,y:o}=Bg(e,t,n);return{width:r,height:i,top:{x:a+r/2,y:o},bottom:{x:a+r/2,y:o+i},left:{x:a,y:o+i/2},right:{x:a+r,y:o+i/2},lt:{x:a,y:o},rt:{x:a+r,y:o},lb:{x:a,y:o+i},rb:{x:a+r,y:o+i}}}function w_(e,t){return Math.sqrt((e.x-t.x)**2+(e.y-t.y)**2)}function T_(e,t,n=`document`){let{width:r,height:i}=C_(e,t,n),{x:a,y:o}=Bg(e,t,n);return{x:a,y:o,width:r,height:i}}function E_(e,t,n=`document`){return n===`document`?s_(t,e):f_(t,e,Wg(e,t,n))}function D_(e,t,n,r=`document`){let{x:i,y:a,width:o}=T_(e,t,r),s=g_(r);return{x:i+9,y:a+9+h_(r)+n*s,width:o-18,height:s}}function O_(e){let{x:t,y:n}=e.ui;return{x:t,y:n,width:n_(e),height:r_(e)}}function k_(e,t){let n=Math.min(e.x,t.x),r=Math.min(e.y,t.y);return{x:n,y:r,width:Math.max(e.x+e.width,t.x+t.width)-n,height:Math.max(e.y+e.height,t.y+t.height)-r}}function A_(e){return N_(e,[])}function j_(e,t=`document`){return N_(e,[],t)}function M_(e,t=[],n=`document`){let{collections:r,doc:i}=e,{tableIds:a,memoIds:o}=n===`document`?i:Kg(e,n),s=new Map(t.map(e=>[e.id,e])),c=N(r).collection(`tableEntities`).selectByIds(a),l=N(r).collection(`memoEntities`).selectByIds(o);return[...c.map(t=>{let r=T_(e,t,n),i=s.get(t.id);return i?{...r,x:i.x,y:i.y}:r}),...l.map(O_)]}function N_(e,t,n=`document`){let r=M_(e,t,n);return r.length?r.reduce(k_):null}function P_(e){return ag(e)??e.settings}function F_(e,t=`document`){return sg(e,t)??e.settings}function I_({originX:e,originY:t}){return{x:e,y:t}}const L_=e=>e>0?e:1;function R_(e,t){let n=I_(e);return{x:n.x+t.x*e.zoomLevel,y:n.y+t.y*e.zoomLevel}}function z_(e,t){let n=L_(e.zoomLevel),r=I_({...e,zoomLevel:n});return{x:(t.x-r.x)/n,y:(t.y-r.y)/n}}function B_(e,t,n){return{x:n.x-t.x*e,y:n.y-t.y*e}}function V_(e){let{viewportWidth:t,viewportHeight:n}=e,r=L_(e.zoomLevel),i=I_({...e,zoomLevel:r}),a=(t>0?t:ih)/r,o=(n>0?n:675)/r;return{x:-i.x/r-a,y:-i.y/r-o,width:a*3,height:o*3}}function H_(e,t=`document`){let{originX:n,originY:r,zoomLevel:i}=F_(e,t),{viewport:a}=e.editor;return V_({originX:n,originY:r,zoomLevel:i,viewportWidth:a.width,viewportHeight:a.height})}function U_(e,t){return!(t.x>e.x+e.width||t.x+t.width<e.x||t.y>e.y+e.height||t.y+t.height<e.y)}function W_(e,t,n,r=`document`){return U_(e,T_(t,n,r))}function G_(e,t,n,r=`document`){return U_(e,Ph(t,n,r))}const K_=Ea({frozen:{}}),q_=(e,t)=>`${e.editor.id}:${t}`,J_=(e,t)=>K_.frozen[q_(e,t)]??null;function Y_(e,t=`document`){let{originX:n,originY:r}=F_(e,t);K_.frozen[q_(e,t)]={content:j_(e,t),origin:{x:n,y:r}}}function X_(e,t=`document`){Reflect.deleteProperty(K_.frozen,q_(e,t))}function Z_(e,t=`document`){let n=J_(e,t);return n?n.content:j_(e,t)}const K={changeDatabaseName:`settings.changeDatabaseName`,changeZoomLevel:`settings.changeZoomLevel`,streamZoomLevel:`settings.streamZoomLevel`,scrollTo:`settings.scrollTo`,streamScrollTo:`settings.streamScrollTo`,changeShow:`settings.changeShow`,changeDatabase:`settings.changeDatabase`,changeCanvasType:`settings.changeCanvasType`,changeLanguage:`settings.changeLanguage`,changeTableNameCase:`settings.changeTableNameCase`,changeColumnNameCase:`settings.changeColumnNameCase`,changeBracketType:`settings.changeBracketType`,changeRelationshipDataTypeSync:`settings.changeRelationshipDataTypeSync`,changeRelationshipOptimization:`settings.changeRelationshipOptimization`,changeColumnOrder:`settings.changeColumnOrder`,changeMaxWidthComment:`settings.changeMaxWidthComment`,changeIgnoreSaveSettings:`settings.changeIgnoreSaveSettings`},Q_=e=>e+0;function $_(e,t,n,r){let i=-t*r,a=n-e*r;return{min:Q_(Math.min(i,a)),max:Q_(Math.max(i,a))}}function ev(e,t,n,r,i){let{min:a,max:o}=$_(t,n,r,i);if(a<e&&e<o)return e;let s=Math.min(r,(n-t)*i);return Q_(Math.min(Math.max(e,a+s),o-s))}const tv=k(K.changeDatabaseName),nv=({settings:e,lww:t},{payload:{value:n},version:r},{clock:i})=>{qp(t,r??i.getVersion(),`settings.databaseName`,`settings`,`databaseName`,()=>{e.databaseName=n})},rv=k(K.changeZoomLevel),iv=({settings:e},{payload:{value:t},tags:n})=>{!y(n)&&G(n,Ig.following)||(e.zoomLevel=Uh(t))},av=k(K.streamZoomLevel),ov=({settings:e},{payload:{value:t},tags:n})=>{!y(n)&&G(n,Ig.following)||(e.zoomLevel=Uh(e.zoomLevel+t))},sv=({width:e,height:t})=>e>0&&t>0;function cv(e){let{settings:{originX:t,originY:n,zoomLevel:r},editor:{viewport:i}}=e,a=Z_(e);return!a||!sv(i)?{x:t,y:n}:{x:ev(t,a.x,a.x+a.width,i.width,r),y:ev(n,a.y,a.y+a.height,i.height,r)}}const lv=k(K.scrollTo),uv=({settings:e},{payload:{originX:t,originY:n},tags:r})=>{!y(r)&&G(r,Ig.following)||(e.originX=Ve(t,4),e.originY=Ve(n,4))},dv=k(K.streamScrollTo),fv=({settings:e},{payload:{movementX:t,movementY:n},tags:r})=>{!y(r)&&G(r,Ig.following)||(e.originX=Ve(e.originX+t,4),e.originY=Ve(e.originY+n,4))},pv=k(K.changeShow),mv=({settings:e},{payload:{show:t,value:n}})=>{e.show=n?e.show|t:e.show&~t},hv=k(K.changeDatabase),gv=({settings:e},{payload:{value:t}})=>{Wh(t)&&(e.database=t)},_v=k(K.changeCanvasType),vv=({settings:e},{payload:{value:t},tags:n})=>{!y(n)&&G(n,Ig.following)||(e.canvasType=t)},yv=k(K.changeLanguage),bv=({settings:e},{payload:{value:t}})=>{qh(t)&&(e.language=t)},xv=k(K.changeTableNameCase),Sv=({settings:e},{payload:{value:t}})=>{Gh(t)&&(e.tableNameCase=t)},Cv=k(K.changeColumnNameCase),wv=({settings:e},{payload:{value:t}})=>{Gh(t)&&(e.columnNameCase=t)},Tv=k(K.changeBracketType),Ev=({settings:e},{payload:{value:t}})=>{Kh(t)&&(e.bracketType=t)},Dv=k(K.changeRelationshipDataTypeSync),Ov=({settings:e},{payload:{value:t}})=>{e.relationshipDataTypeSync=t},kv=k(K.changeRelationshipOptimization),Av=({settings:e},{payload:{value:t}})=>{e.relationshipOptimization=t},jv=k(K.changeColumnOrder),Mv=({settings:e},{payload:{value:t,target:n}})=>{if(t===n||!Jh(t)||!Jh(n))return;let r=e.columnOrder.indexOf(t),i=e.columnOrder.indexOf(n);r!==-1&&i!==-1&&(e.columnOrder.splice(r,1),e.columnOrder.splice(i,0,t))},Nv=k(K.changeMaxWidthComment),Pv=({settings:e},{payload:{value:t}})=>{e.maxWidthComment=t===-1?t:Vh(t)},Fv=k(K.changeIgnoreSaveSettings),Iv=({settings:e},{payload:{saveSettingType:t,value:n}})=>{e.ignoreSaveSettings=n?e.ignoreSaveSettings|t:e.ignoreSaveSettings&~t},Lv={[K.changeDatabaseName]:nv,[K.changeZoomLevel]:iv,[K.streamZoomLevel]:ov,[K.scrollTo]:uv,[K.streamScrollTo]:fv,[K.changeShow]:mv,[K.changeDatabase]:gv,[K.changeCanvasType]:vv,[K.changeLanguage]:bv,[K.changeTableNameCase]:Sv,[K.changeColumnNameCase]:wv,[K.changeBracketType]:Ev,[K.changeRelationshipDataTypeSync]:Ov,[K.changeRelationshipOptimization]:Av,[K.changeColumnOrder]:Mv,[K.changeMaxWidthComment]:Pv,[K.changeIgnoreSaveSettings]:Iv},Rv={changeDatabaseNameAction:tv,changeZoomLevelAction:rv,streamZoomLevelAction:av,scrollToAction:lv,streamScrollToAction:dv,changeShowAction:pv,changeDatabaseAction:hv,changeCanvasTypeAction:_v,changeLanguageAction:yv,changeTableNameCaseAction:xv,changeColumnNameCaseAction:Cv,changeBracketTypeAction:Tv,changeRelationshipDataTypeSyncAction:Dv,changeRelationshipOptimizationAction:kv,changeColumnOrderAction:jv,changeMaxWidthCommentAction:Nv,changeIgnoreSaveSettingsAction:Fv},zv=e=>e.ui.zIndex,Bv=(e,t)=>Math.max(1,...e.map(zv),...t.map(zv))+1,Vv=e=>t=>e.y===t.y&&e.x===t.x;function Hv(e,t,n){let r=z_(e,{x:200,y:100}),i=[...t,...n].map(({ui:e})=>e);for(;i.some(Vv(r));)r.x+=50,r.y+=50;return r}function Uv(){let e=Date.now();return{updateAt:e,createAt:e}}function Wv(e,t){return e<t?_e(e,t+1):_e(t,e+1)}function Gv(e){return be(re(e??``))}function Kv(e,t){return ye([...e,t])}function qv(e,t,n){if(!t||t===n)return[n];let r=e.indexOf(t),i=e.indexOf(n);return r===-1?[n]:Wv(r,i).map(t=>e[t])}function Jv(e,t,n,r){return ye([...t,...qv(e,n,r)])}const Yv={[I.columnName]:!0,[I.columnDataType]:F.columnDataType,[I.columnNotNull]:F.columnNotNull,[I.columnUnique]:F.columnUnique,[I.columnAutoIncrement]:F.columnAutoIncrement,[I.columnDefault]:F.columnDefault,[I.columnComment]:F.columnComment},Xv={[I.columnName]:W.columnName,[I.columnDataType]:W.columnDataType,[I.columnNotNull]:W.columnNotNull,[I.columnUnique]:W.columnUnique,[I.columnAutoIncrement]:W.columnAutoIncrement,[I.columnDefault]:W.columnDefault,[I.columnComment]:W.columnComment},Zv=[W.tableName,W.tableComment];function Qv({settings:{show:e,columnOrder:t}}){return t.filter(t=>{let n=Yv[t];return n===!0||G(e,n)}).map(e=>Xv[e])}function $v({collections:e,editor:{focusTable:t}}){return t?!!N(e).collection(`tableEntities`).selectById(t.tableId)?.columnIds.length:!1}function ey(e){let{editor:{focusTable:t}}=e;if(!t)return!0;let n=Qv(e);return n.indexOf(t.focusType)===n.length-1}function ty(e){let{editor:{focusTable:t}}=e;return!t||Qv(e).indexOf(t.focusType)===0}function ny({collections:e,editor:{focusTable:t}}){if(!t?.columnId)return!0;let n=N(e).collection(`tableEntities`).selectById(t.tableId);return!n||n.columnIds.indexOf(t.columnId)===n.columnIds.length-1}function ry({collections:e,editor:{focusTable:t}}){if(!t?.columnId)return!0;let n=N(e).collection(`tableEntities`).selectById(t.tableId);return!n||n.columnIds.indexOf(t.columnId)===0}function iy(e){let t=Qv(e);return t[t.length-1]}function ay(e){return Qv(e)[0]}function oy(e){let{editor:{focusTable:t}}=e;if(!t)return W.columnName;let n=Qv(e),r=n.indexOf(t.focusType);return ey(e)?n[0]:n[r+1]}function sy(e){let{editor:{focusTable:t}}=e;if(!t)return W.columnName;let n=Qv(e),r=n.indexOf(t.focusType);return ty(e)?n[n.length-1]:n[r-1]}function cy(e,t){let{collections:n,editor:{focusTable:r}}=e;if(!r?.columnId)return null;let i=N(n).collection(`tableEntities`).selectById(r.tableId);if(!i)return null;let a=i.columnIds.indexOf(r.columnId);if(a<=0)return null;let o=null;for(let e=a;e>=0;e--){let n=i.columnIds[e];if(!t.includes(n)){o=n;break}}return o}function ly({settings:{show:e}}){return G(e,F.tableComment)?Zv:[W.tableName]}function uy(e){let{editor:{focusTable:t}}=e;if(!t)return!0;let n=ly(e);return n.indexOf(t.focusType)===n.length-1}function dy(e){let{editor:{focusTable:t}}=e;return!t||ly(e).indexOf(t.focusType)===0}const fy=V(Zv);function py(e){let{editor:{focusTable:t}}=e;if(!t)return W.tableName;let n=ly(e),r=n.indexOf(t.focusType);return uy(e)?n[0]:n[r+1]}function my(e){let{editor:{focusTable:t}}=e;if(!t)return W.tableName;let n=ly(e),r=n.indexOf(t.focusType);return dy(e)?n[n.length-1]:n[r-1]}function hy(e,t){let{collections:n,editor:{focusTable:r}}=e;if(!r)return;let i=N(n).collection(`tableEntities`).selectById(r.tableId);if(i){if(fy(r.focusType)){if($v(e)){let t=i.columnIds[i.columnIds.length-1];r.focusType=iy(e),r.columnId=t,r.prevSelectColumnId=t,r.selectColumnIds=[t]}}else if(ry(e))r.focusType=W.tableName,r.columnId=null,r.prevSelectColumnId=null,r.selectColumnIds=[];else if(r.columnId){let e=i.columnIds.indexOf(r.columnId),n=i.columnIds[e-1];r.columnId=n,r.prevSelectColumnId=n,r.selectColumnIds=t.shiftKey&&t.moveKey!==ng.Tab?Kv(r.selectColumnIds,n):[n]}}}function gy(e,t){let{collections:n,editor:{focusTable:r}}=e;if(!r)return;let i=N(n).collection(`tableEntities`).selectById(r.tableId);if(i){if(fy(r.focusType)){if($v(e)){let t=i.columnIds[0];r.focusType=ay(e),r.columnId=t,r.prevSelectColumnId=t,r.selectColumnIds=[t]}}else if(ny(e))r.focusType=W.tableName,r.columnId=null,r.prevSelectColumnId=null,r.selectColumnIds=[];else if(r.columnId){let e=i.columnIds.indexOf(r.columnId),n=i.columnIds[e+1];r.columnId=n,r.prevSelectColumnId=n,r.selectColumnIds=t.shiftKey&&t.moveKey!==ng.Tab?Kv(r.selectColumnIds,n):[n]}}}function _y(e,t){let{collections:n,editor:{focusTable:r}}=e;if(!r)return;let i=N(n).collection(`tableEntities`).selectById(r.tableId);if(i){if(fy(r.focusType)){if(dy(e)){if($v(e)){let t=i.columnIds[i.columnIds.length-1];r.focusType=iy(e),r.columnId=t,r.prevSelectColumnId=t,r.selectColumnIds=[t]}else r.focusType=my(e)}else r.focusType=my(e)}else if(ty(e)){if(ry(e))r.focusType=G(e.settings.show,F.tableComment)?W.tableComment:W.tableName,r.columnId=null,r.prevSelectColumnId=null,r.selectColumnIds=[];else if(r.columnId){let n=i.columnIds.indexOf(r.columnId),a=i.columnIds[n-1];r.focusType=iy(e),r.columnId=a,r.prevSelectColumnId=a,r.selectColumnIds=t.shiftKey&&t.moveKey!==ng.Tab?Kv(r.selectColumnIds,a):[a]}}else r.focusType=sy(e),!t.shiftKey&&r.columnId&&(r.prevSelectColumnId=r.columnId,r.selectColumnIds=[r.columnId])}}function vy(e,t){let{collections:n,editor:{focusTable:r}}=e;if(!r)return;let i=N(n).collection(`tableEntities`).selectById(r.tableId);if(i){if(fy(r.focusType)){if(uy(e)){if($v(e)){let t=i.columnIds[0];r.focusType=ay(e),r.columnId=t,r.prevSelectColumnId=t,r.selectColumnIds=[t]}else r.focusType=py(e)}else r.focusType=py(e)}else if(ey(e)){if(ny(e))r.focusType=W.tableName,r.columnId=null,r.prevSelectColumnId=null,r.selectColumnIds=[];else if(r.columnId){let n=i.columnIds.indexOf(r.columnId),a=i.columnIds[n+1];r.focusType=ay(e),r.columnId=a,r.prevSelectColumnId=a,r.selectColumnIds=t.shiftKey&&t.moveKey!==ng.Tab?Kv(r.selectColumnIds,a):[a]}}else r.focusType=oy(e),!t.shiftKey&&r.columnId&&(r.prevSelectColumnId=r.columnId,r.selectColumnIds=[r.columnId])}}const yy=3e4,by=9e4,xy=3e3,Sy=k(P.changeHasHistory),Cy=({editor:e},{payload:{hasRedo:t,hasUndo:n}})=>{e.hasRedo=t,e.hasUndo=n},wy=k(P.selectAll),Ty=({editor:e,doc:t})=>{let n=t.tableIds.reduce((e,t)=>(e[t]=Qh.table,e),{});e.selectedMap={...t.memoIds.reduce((e,t)=>(e[t]=Qh.memo,e),{}),...n}},Ey=k(P.unselectAll),Dy=({editor:e})=>{Object.keys(e.selectedMap).forEach(t=>{Reflect.deleteProperty(e.selectedMap,t)})},Oy=k(P.select),ky=({editor:e},{payload:t})=>{Object.assign(e.selectedMap,t)},Ay=k(P.changeViewport),jy=(e,{payload:{width:t,height:n}})=>{e.editor.viewport.width=t,e.editor.viewport.height=n,e.editor.scrollPullPending&&Py(e)},My=k(P.clear),Ny=e=>{let{doc:t,collections:n}=Hp({});e.doc=t,e.collections=n,e.editor.scrollPullPending=!1,dg(e.editor)};function Py(e){let{settings:t,editor:n}=e;if(!sv(n.viewport)){n.scrollPullPending=!0;return}let r=cv(e);t.originX=Ve(r.x,4),t.originY=Ve(r.y,4),n.scrollPullPending=!1}const Fy=k(P.loadJson),Iy=(e,{payload:{value:t}})=>{let{version:n,settings:r,doc:i,collections:a}=Vm(t);Yh(r.canvasType)||(r.canvasType=Um.ERD),Object.assign(e.settings,r),e.version=n,e.doc=i,e.collections=a,dg(e.editor),Py(e)},Ly=k(P.initialClear),Ry=e=>{let{doc:t,collections:n}=Hp({});e.doc=t,e.collections=n,e.editor.scrollPullPending=!1,dg(e.editor)},zy=k(P.initialLoadJson),By=(e,{payload:{value:t}})=>{let{version:n,settings:r,doc:i,collections:a}=Vm(t);Yh(r.canvasType)||(r.canvasType=Um.ERD),Object.assign(e.settings,r),e.version=n,e.doc=i,e.collections=a,dg(e.editor),Py(e)},Vy=k(P.focusTable),Hy=({editor:e,collections:t},{payload:n})=>{let r=N(t).collection(`tableEntities`);if(e.focusTable?.tableId===n.tableId&&n.focusType)e.focusTable.focusType=n.focusType,e.focusTable.columnId=null,e.focusTable.prevSelectColumnId=null,e.focusTable.selectColumnIds=[];else if(n.focusType){let t=r.selectById(n.tableId);if(!t)return;e.focusTable={tableId:t.id,focusType:n.focusType,columnId:null,prevSelectColumnId:null,selectColumnIds:[],edit:!1}}else if(e.focusTable?.tableId!==n.tableId){let t=r.selectById(n.tableId);if(!t)return;e.focusTable={tableId:t.id,focusType:W.tableName,columnId:null,prevSelectColumnId:null,selectColumnIds:[],edit:!1}}},Uy=k(P.focusColumn),Wy=({editor:e,collections:t},{payload:n})=>{let r=N(t).collection(`tableEntities`);if(e.focusTable?.tableId===n.tableId){let t=r.selectById(n.tableId);if(!t)return;let i=e.focusTable;i.columnId=n.columnId,i.focusType=n.focusType,i.selectColumnIds=n.$mod&&n.shiftKey?Jv(t.columnIds,i.selectColumnIds,i.prevSelectColumnId,i.columnId):n.shiftKey?qv(t.columnIds,i.prevSelectColumnId,i.columnId):n.$mod?Kv(i.selectColumnIds,n.columnId):[n.columnId],i.prevSelectColumnId=n.columnId}else{let t=r.selectById(n.tableId);if(!t)return;e.focusTable={tableId:t.id,focusType:n.focusType,columnId:n.columnId,prevSelectColumnId:n.columnId,selectColumnIds:[n.columnId],edit:!1}}},Gy=k(P.focusTableEnd),Ky=({editor:e})=>{e.focusTable=null},qy=k(P.focusMoveTable),Jy=(e,{payload:t})=>{let{editor:{focusTable:n}}=e;if(n)switch(n.edit=!1,t.moveKey){case ng.ArrowUp:hy(e,t);break;case ng.ArrowDown:gy(e,t);break;case ng.ArrowLeft:_y(e,t);break;case ng.ArrowRight:vy(e,t);break;case ng.Tab:t.shiftKey?_y(e,t):vy(e,t)}},Yy=k(P.editTable),Xy=({editor:{focusTable:e}})=>{e&&(e.edit=!0)},Zy=k(P.editTableEnd),Qy=({editor:{focusTable:e}})=>{e&&(e.edit=!1)},$y=k(P.editMemo),eb=({editor:e},{payload:{id:t}})=>{e.editMemoId=t},tb=k(P.editMemoEnd),nb=({editor:e})=>{e.editMemoId=null},rb=k(P.scrollMemo),ib=({editor:e},{payload:{id:t,scrollTop:n}})=>{e.memoScrollTopMap[t]=Number.isFinite(n)?Math.max(0,n):0},ab=k(P.selectAllColumn),ob=({collections:e,editor:{focusTable:t}})=>{if(!t)return;let n=N(e).collection(`tableEntities`).selectById(t.tableId);n&&(t.selectColumnIds=[...n.columnIds])},sb=k(P.drawStartRelationship),cb=({editor:e},{payload:{relationshipType:t}})=>{e.drawRelationship={relationshipType:t,start:null,end:{x:0,y:0}}},lb=k(P.drawStartAddRelationship),ub=({editor:{drawRelationship:e},collections:t},{payload:{tableId:n}})=>{if(!e)return;let r=N(t).collection(`tableEntities`).selectById(n);r&&(e.start={tableId:n,x:r.ui.x,y:r.ui.y})},db=k(P.drawEndRelationship),fb=({editor:e})=>{e.drawRelationship=null},pb=k(P.drawRelationship),mb=({editor:{drawRelationship:e},settings:t},{payload:{x:n,y:r}})=>{if(!e?.start)return;let i=z_(t,{x:n,y:r});e.end.x=i.x,e.end.y=i.y},hb=k(P.hoverColumnMap),gb=({editor:e},{payload:{columnIds:t}})=>{Object.keys(e.hoverColumnMap).forEach(t=>{Reflect.deleteProperty(e.hoverColumnMap,t)});for(let n of t)e.hoverColumnMap[n]=!0},_b=k(P.hoverRelationshipMap),vb=({editor:e},{payload:{relationshipIds:t}})=>{Object.keys(e.hoverRelationshipMap).forEach(t=>{Reflect.deleteProperty(e.hoverRelationshipMap,t)});for(let n of t)e.hoverRelationshipMap[n]=!0},yb=k(P.changeOpenMap),bb=({editor:e},{payload:t})=>{Object.assign(e.openMap,t)},xb=k(P.changeHandTool),Sb=({editor:e},{payload:{value:t}})=>{e.handTool=t,t&&(e.drawRelationship=null)},Cb=k(P.changeZenMode),wb=({editor:e},{payload:{value:t}})=>{e.zenMode=t},Tb=k(P.dragstartColumn),Eb=({editor:e},{payload:t})=>{e.draggableColumn=t,t.columnIds.forEach(t=>{e.draggingColumnMap[t]=!0})},Db=k(P.dragendColumn),Ob=({editor:e})=>{e.draggableColumn=null,Object.keys(e.draggingColumnMap).forEach(t=>{Reflect.deleteProperty(e.draggingColumnMap,t)})},kb=k(P.sharedMouseTracker),Ab=({editor:e},{payload:t,tags:n,meta:r})=>{if(y(n)||!G(n,Ig.shared)||!S(r?.editorId)||e.id===r.editorId)return;let i=e.sharedMouseTrackerMap[r.editorId],a=!S(r.nickname)||Be(r.nickname.trim())?`user`:r.nickname.trim();i?(i.x=t.x,i.y=t.y,i.nickname=a,clearTimeout(i.timeoutId),i.timeoutId=setTimeout(()=>{Reflect.deleteProperty(e.sharedMouseTrackerMap,r.editorId)},yy)):e.sharedMouseTrackerMap[r.editorId]={...t,id:r.editorId,nickname:a,timeoutId:setTimeout(()=>{Reflect.deleteProperty(e.sharedMouseTrackerMap,r.editorId)},yy)}},jb=k(P.sharedFocusTracker),Mb=({editor:e},{payload:{focus:t},tags:n,meta:r})=>{if(y(n)||!G(n,Ig.shared)||!S(r?.editorId)||e.id===r.editorId)return;let i=e.sharedFocusTrackerMap[r.editorId];if(!t){i&&(clearTimeout(i.timeoutId),Reflect.deleteProperty(e.sharedFocusTrackerMap,r.editorId));return}i?(i.tableId=t.tableId,i.columnId=t.columnId,i.focusType=t.focusType,clearTimeout(i.timeoutId),i.timeoutId=setTimeout(()=>{Reflect.deleteProperty(e.sharedFocusTrackerMap,r.editorId)},by)):e.sharedFocusTrackerMap[r.editorId]={...t,id:r.editorId,timeoutId:setTimeout(()=>{Reflect.deleteProperty(e.sharedFocusTrackerMap,r.editorId)},by)}},Nb=k(P.sharedSelectionTracker),Pb=({editor:e},{payload:{selectedIds:t},tags:n,meta:r})=>{if(y(n)||!G(n,Ig.shared)||!S(r?.editorId)||e.id===r.editorId)return;let i=e.sharedSelectionTrackerMap[r.editorId];if(!t.length){i&&(clearTimeout(i.timeoutId),Reflect.deleteProperty(e.sharedSelectionTrackerMap,r.editorId));return}i?(i.selectedIds=t,clearTimeout(i.timeoutId),i.timeoutId=setTimeout(()=>{Reflect.deleteProperty(e.sharedSelectionTrackerMap,r.editorId)},by)):e.sharedSelectionTrackerMap[r.editorId]={id:r.editorId,selectedIds:t,timeoutId:setTimeout(()=>{Reflect.deleteProperty(e.sharedSelectionTrackerMap,r.editorId)},by)}},Fb=k(P.sharedDragSelectTracker),Ib=({editor:e},{payload:{rect:t},tags:n,meta:r})=>{if(y(n)||!G(n,Ig.shared)||!S(r?.editorId)||e.id===r.editorId)return;let i=e.sharedDragSelectTrackerMap[r.editorId];if(!t){i&&(clearTimeout(i.timeoutId),Reflect.deleteProperty(e.sharedDragSelectTrackerMap,r.editorId));return}i?(i.x=t.x,i.y=t.y,i.w=t.w,i.h=t.h,clearTimeout(i.timeoutId),i.timeoutId=setTimeout(()=>{Reflect.deleteProperty(e.sharedDragSelectTrackerMap,r.editorId)},xy)):e.sharedDragSelectTrackerMap[r.editorId]={...t,id:r.editorId,timeoutId:setTimeout(()=>{Reflect.deleteProperty(e.sharedDragSelectTrackerMap,r.editorId)},xy)}},Lb=k(P.dragSelectRect),Rb=({editor:e},{payload:{rect:t}})=>{e.dragSelect=t},zb=k(P.validationIds),Bb=({doc:e,collections:t})=>{let n=N(t).collection(`tableEntities`),r=N(t).collection(`tableColumnEntities`),i=N(t).collection(`indexEntities`),a=N(t).collection(`indexColumnEntities`),o=N(t).collection(`relationshipEntities`),s=N(t).collection(`memoEntities`),c=e.tableIds.filter(e=>!n.selectById(e)),l=e.relationshipIds.filter(e=>!o.selectById(e)),u=e.indexIds.filter(e=>!i.selectById(e)),d=e.memoIds.filter(e=>!s.selectById(e));e.tableIds=e.tableIds.filter(e=>!c.includes(e)),e.relationshipIds=e.relationshipIds.filter(e=>!l.includes(e)),e.indexIds=e.indexIds.filter(e=>!u.includes(e)),e.memoIds=e.memoIds.filter(e=>!d.includes(e)),n.selectAll().forEach(e=>{let t=e.columnIds.filter(e=>!r.selectById(e)),n=e.seqColumnIds.filter(e=>!r.selectById(e));e.columnIds=e.columnIds.filter(e=>!t.includes(e)),e.seqColumnIds=e.seqColumnIds.filter(e=>!n.includes(e))}),i.selectAll().forEach(e=>{let t=e.indexColumnIds.filter(e=>!a.selectById(e)),n=e.seqIndexColumnIds.filter(e=>!a.selectById(e));e.indexColumnIds=e.indexColumnIds.filter(e=>!t.includes(e)),e.seqIndexColumnIds=e.seqIndexColumnIds.filter(e=>!n.includes(e))})},Vb=k(P.getLWW),Hb=me,Ub=k(P.mergeLWW),Wb=({lww:e},{payload:{lww:t}})=>{Object.entries(t).forEach(([t,[n,r,i,a]])=>{Gp(e,r,t,n,me),Kp(e,i,t,n,me),Object.entries(a).forEach(([r,i])=>{qp(e,i,t,n,r,me)})})},Gb={[P.changeHasHistory]:Cy,[P.selectAll]:Ty,[P.unselectAll]:Dy,[P.select]:ky,[P.changeViewport]:jy,[P.clear]:Ny,[P.loadJson]:Iy,[P.initialClear]:Ry,[P.initialLoadJson]:By,[P.focusTable]:Hy,[P.focusColumn]:Wy,[P.focusTableEnd]:Ky,[P.focusMoveTable]:Jy,[P.editTable]:Xy,[P.editTableEnd]:Qy,[P.editMemo]:eb,[P.editMemoEnd]:nb,[P.scrollMemo]:ib,[P.selectAllColumn]:ob,[P.drawStartRelationship]:cb,[P.drawStartAddRelationship]:ub,[P.drawEndRelationship]:fb,[P.drawRelationship]:mb,[P.hoverColumnMap]:gb,[P.hoverRelationshipMap]:vb,[P.changeOpenMap]:bb,[P.changeHandTool]:Sb,[P.changeZenMode]:wb,[P.dragstartColumn]:Eb,[P.dragendColumn]:Ob,[P.sharedMouseTracker]:Ab,[P.sharedFocusTracker]:Mb,[P.sharedSelectionTracker]:Pb,[P.sharedDragSelectTracker]:Ib,[P.dragSelectRect]:Rb,[P.validationIds]:Bb,[P.getLWW]:Hb,[P.mergeLWW]:Wb,...Pg},Kb={changeHasHistoryAction:Sy,selectAllAction:wy,unselectAllAction:Ey,selectAction:Oy,changeViewportAction:Ay,clearAction:My,loadJsonAction:Fy,initialClearAction:Ly,initialLoadJsonAction:zy,focusTableAction:Vy,focusColumnAction:Uy,focusTableEndAction:Gy,focusMoveTableAction:qy,editTableAction:Yy,editTableEndAction:Zy,editMemoAction:$y,editMemoEndAction:tb,scrollMemoAction:rb,selectAllColumnAction:ab,drawStartRelationshipAction:sb,drawStartAddRelationshipAction:lb,drawEndRelationshipAction:db,drawRelationshipAction:pb,hoverColumnMapAction:hb,hoverRelationshipMapAction:_b,changeOpenMapAction:yb,changeHandToolAction:xb,changeZenModeAction:Cb,dragstartColumnAction:Tb,dragendColumnAction:Db,sharedMouseTrackerAction:kb,sharedFocusTrackerAction:jb,sharedSelectionTrackerAction:Nb,sharedDragSelectTrackerAction:Fb,dragSelectRectAction:Lb,validationIdsAction:zb,getLWWAction:Vb,mergeLWWAction:Ub,...Fg},qb=(e,t,n)=>{e.push(My(),Fy({value:Hm(n)}))},Jb=(e,t,n)=>{e.push(Fy({value:Hm(n)}))},Yb={[P.loadJson]:qb,[P.clear]:Jb},Xb={addIndex:`index.add`,removeIndex:`index.remove`,changeIndexName:`index.changeName`,changeIndexUnique:`index.changeUnique`},Zb=e=>He({id:w(),name:``,tableId:``,indexColumnIds:[],seqIndexColumnIds:[],unique:!1,meta:Uv()},e??{}),Qb=k(Xb.addIndex),$b=({doc:e,collections:t,lww:n},{payload:{id:r,tableId:i},version:a},{clock:o})=>{let s=a??o.getVersion();N(t).collection(`indexEntities`).addOne(Zb({id:r,tableId:i})).addOperator(n,s,r,()=>{V(e.indexIds)(r)||e.indexIds.push(r)})},ex=k(Xb.removeIndex),tx=({doc:e,collections:t,lww:n},{payload:{id:r},version:i},{clock:a})=>{let o=i??a.getVersion();N(t).collection(`indexEntities`).removeOperator(n,o,r,()=>{let t=e.indexIds.indexOf(r);t!==-1&&e.indexIds.splice(t,1)})},nx=k(Xb.changeIndexName),rx=({collections:e,lww:t},{payload:{id:n,tableId:r,value:i},version:a},{clock:o})=>{let s=a??o.getVersion(),c=N(e).collection(`indexEntities`);c.getOrCreate(n,e=>Zb({id:e,tableId:r})),c.replaceOperator(t,s,n,`name`,()=>{c.updateOne(n,e=>{e.name=i})})},ix=k(Xb.changeIndexUnique),ax=({collections:e,lww:t},{payload:{id:n,tableId:r,value:i},version:a},{clock:o})=>{let s=a??o.getVersion(),c=N(e).collection(`indexEntities`);c.getOrCreate(n,e=>Zb({id:e,tableId:r})),c.replaceOperator(t,s,n,`unique`,()=>{c.updateOne(n,e=>{e.unique=i})})},ox={[Xb.addIndex]:$b,[Xb.removeIndex]:tx,[Xb.changeIndexName]:rx,[Xb.changeIndexUnique]:ax},sx={addIndexAction:Qb,removeIndexAction:ex,changeIndexNameAction:nx,changeIndexUniqueAction:ix},cx=(e,{payload:{id:t}})=>{e.push(ex({id:t}))},lx=(e,{payload:{id:t}},{collections:n})=>{let r=N(n).collection(`indexEntities`).selectById(t);r&&e.push(Qb({id:t,tableId:r.tableId}))},ux=(e,{payload:{id:t,tableId:n}},{collections:r})=>{let i=N(r).collection(`indexEntities`).selectById(t);i&&e.push(nx({id:t,tableId:n,value:i.name}))},dx=(e,{payload:{id:t,tableId:n,value:r}},{collections:i})=>{N(i).collection(`indexEntities`).selectById(t)&&e.push(ix({id:t,tableId:n,value:!r}))},fx={[Xb.addIndex]:cx,[Xb.removeIndex]:lx,[Xb.changeIndexName]:ux,[Xb.changeIndexUnique]:dx},px={addIndexColumn:`indexColumn.add`,removeIndexColumn:`indexColumn.remove`,moveIndexColumn:`indexColumn.move`,changeIndexColumnOrderType:`indexColumn.changeOrderType`},mx=e=>He({id:w(),indexId:``,columnId:``,orderType:$m.ASC,meta:Uv()},e??{});function hx(e,t,n){if(V(t)(n)){let r=t.reduce((e,t,n)=>(e[t]=n,e),{});e.push(n),e.sort((e,t)=>{let n=r[e],i=r[t];return n===void 0?1:i===void 0?-1:n-i})}else e.push(n),t.push(n)}const gx=k(px.addIndexColumn),_x=({collections:e,lww:t},{payload:{id:n,indexId:r,tableId:i,columnId:a},version:o},{clock:s})=>{let c=o??s.getVersion(),l=N(e).collection(`indexEntities`),u=l.getOrCreate(r,e=>Zb({id:e,tableId:i}));N(e).collection(`indexColumnEntities`).addOne(mx({id:n,indexId:r,columnId:a})).addOperator(t,c,n,()=>{V(u.indexColumnIds)(n)||l.updateOne(r,e=>{hx(e.indexColumnIds,e.seqIndexColumnIds,n)})})},vx=k(px.removeIndexColumn),yx=({collections:e,lww:t},{payload:{id:n,indexId:r,tableId:i},version:a},{clock:o})=>{let s=a??o.getVersion(),c=N(e).collection(`indexEntities`),l=c.getOrCreate(r,e=>Zb({id:e,tableId:i}));N(e).collection(`indexColumnEntities`).removeOperator(t,s,n,()=>{let e=l.indexColumnIds.indexOf(n);e!==-1&&c.updateOne(r,t=>{t.indexColumnIds.splice(e,1)})})},bx=k(px.moveIndexColumn),xx=({collections:e},{payload:{id:t,indexId:n,tableId:r,targetId:i}})=>{if(t===i)return;let a=N(e).collection(`indexEntities`),o=a.getOrCreate(n,e=>Zb({id:e,tableId:r})),s=o.indexColumnIds.indexOf(t);if(s===-1)return;let c=o.indexColumnIds.indexOf(i);c!==-1&&a.updateOne(n,e=>{e.indexColumnIds.splice(s,1),e.indexColumnIds.splice(c,0,t);let n=e.seqIndexColumnIds.indexOf(t),r=e.seqIndexColumnIds.indexOf(i);n!==-1&&r!==-1&&(e.seqIndexColumnIds.splice(n,1),e.seqIndexColumnIds.splice(r,0,t))})},Sx=k(px.changeIndexColumnOrderType),Cx=({collections:e,lww:t},{payload:{id:n,indexId:r,columnId:i,value:a},version:o},{clock:s})=>{let c=o??s.getVersion(),l=N(e).collection(`indexColumnEntities`);l.getOrCreate(n,e=>mx({id:e,indexId:r,columnId:i})),l.replaceOperator(t,c,n,`orderType`,()=>{l.updateOne(n,e=>{e.orderType=a})})},wx={[px.addIndexColumn]:_x,[px.removeIndexColumn]:yx,[px.moveIndexColumn]:xx,[px.changeIndexColumnOrderType]:Cx},Tx={addIndexColumnAction:gx,removeIndexColumnAction:vx,moveIndexColumnAction:bx,changeIndexColumnOrderTypeAction:Sx},Ex=(e,{payload:{id:t,indexId:n,tableId:r}})=>{e.push(vx({id:t,indexId:n,tableId:r}))},Dx=(e,{payload:{id:t,indexId:n,tableId:r}},{collections:i})=>{let a=N(i).collection(`indexColumnEntities`).selectById(t);a&&e.push(gx({id:t,indexId:n,tableId:r,columnId:a.columnId}))},Ox=(e,{payload:{id:t,indexId:n,tableId:r,targetId:i}},{collections:a})=>{let o=N(a).collection(`indexEntities`).selectById(n);if(!o)return;let s=o.indexColumnIds.indexOf(t);if(s===-1)return;let c=o.indexColumnIds.indexOf(i);if(c===-1)return;let l=s<c?s+1:s-1,u=o.indexColumnIds[l];e.push(bx({indexId:n,tableId:r,id:t,targetId:u}))},kx=(e,{payload:{id:t,indexId:n,columnId:r}},{collections:i})=>{let a=N(i).collection(`indexColumnEntities`).selectById(t);a&&e.push(Sx({id:t,indexId:n,columnId:r,value:a.orderType}))},Ax={[px.addIndexColumn]:Ex,[px.removeIndexColumn]:Dx,[px.moveIndexColumn]:Ox,[px.changeIndexColumnOrderType]:kx},jx={addMemo:`memo.add`,moveMemo:`memo.move`,moveToMemo:`memo.moveTo`,removeMemo:`memo.remove`,changeMemoValue:`memo.changeValue`,changeMemoColor:`memo.changeColor`,resizeMemo:`memo.resize`,changeZIndex:`memo.changeZIndex`},Mx=e=>He({id:w(),value:``,ui:{x:200,y:100,zIndex:2,width:116,height:100,color:``},meta:Uv()},e??{}),Nx=k(jx.addMemo),Px=({doc:e,collections:t,lww:n},{payload:{id:r,ui:i},version:a},{clock:o})=>{let s=a??o.getVersion();N(t).collection(`memoEntities`).addOne(Mx({id:r,ui:i})).addOperator(n,s,r,()=>{V(e.memoIds)(r)||e.memoIds.push(r)})},Fx=k(jx.moveMemo),Ix=({collections:e},{payload:{ids:t,movementX:n,movementY:r}})=>{let i=N(e).collection(`memoEntities`);for(let e of t)i.getOrCreate(e,e=>Mx({id:e}));i.updateMany(t,e=>{e.ui.x=Ve(e.ui.x+n,4),e.ui.y=Ve(e.ui.y+r,4)})},Lx=k(jx.moveToMemo),Rx=({collections:e},{payload:{id:t,x:n,y:r}})=>{let i=N(e).collection(`memoEntities`);i.getOrCreate(t,e=>Mx({id:e})),i.updateOne(t,e=>{e.ui.x=n,e.ui.y=r})},zx=k(jx.removeMemo),Bx=({doc:e,collections:t,lww:n},{payload:{id:r},version:i},{clock:a})=>{let o=i??a.getVersion();N(t).collection(`memoEntities`).removeOperator(n,o,r,()=>{let t=e.memoIds.indexOf(r);t!==-1&&e.memoIds.splice(t,1)})},Vx=k(jx.changeMemoValue),Hx=({collections:e,lww:t},{payload:{id:n,value:r},version:i},{clock:a})=>{let o=i??a.getVersion(),s=N(e).collection(`memoEntities`);s.getOrCreate(n,e=>Mx({id:e})),s.replaceOperator(t,o,n,`value`,()=>{s.updateOne(n,e=>{e.value=r})})},Ux=k(jx.changeMemoColor),Wx=({collections:e,lww:t},{payload:{id:n,color:r},version:i},{clock:a})=>{let o=i??a.getVersion(),s=N(e).collection(`memoEntities`);s.getOrCreate(n,e=>Mx({id:e})),s.replaceOperator(t,o,n,`ui.color`,()=>{s.updateOne(n,e=>{e.ui.color=r})})},Gx=k(jx.resizeMemo),Kx=({collections:e},{payload:{id:t,x:n,y:r,width:i,height:a}})=>{let o=N(e).collection(`memoEntities`);o.getOrCreate(t,e=>Mx({id:e})),o.updateOne(t,e=>{e.ui.x=n,e.ui.y=r,e.ui.width=i,e.ui.height=a})},qx=k(jx.changeZIndex),Jx=({collections:e},{payload:{id:t,zIndex:n}})=>{let r=N(e).collection(`memoEntities`);r.getOrCreate(t,e=>Mx({id:e})),r.updateOne(t,e=>{e.ui.zIndex=n})},Yx={[jx.addMemo]:Px,[jx.moveMemo]:Ix,[jx.moveToMemo]:Rx,[jx.removeMemo]:Bx,[jx.changeMemoValue]:Hx,[jx.changeMemoColor]:Wx,[jx.resizeMemo]:Kx,[jx.changeZIndex]:Jx},Xx={addMemoAction:Nx,moveMemoAction:Fx,moveToMemoAction:Lx,removeMemoAction:zx,changeMemoValueAction:Vx,changeMemoColorAction:Ux,resizeMemoAction:Gx,changeZIndexAction:qx},Zx=(e,{payload:{id:t}})=>{e.push(zx({id:t}))},Qx=(e,{payload:{id:t}},{collections:n})=>{let r=N(n).collection(`memoEntities`).selectById(t);r&&e.push(Nx({id:r.id,ui:ge(r.ui,[`x`,`y`,`zIndex`])}))},$x=(e,{payload:{id:t}},{collections:n})=>{let r=N(n).collection(`memoEntities`).selectById(t);r&&e.push(Vx({id:t,value:r.value}))},eS=(e,{payload:{id:t}},{collections:n})=>{let r=N(n).collection(`memoEntities`).selectById(t);r&&e.push(Lx({id:t,x:r.ui.x,y:r.ui.y}))},tS={[jx.addMemo]:Zx,[jx.removeMemo]:Qx,[jx.changeMemoValue]:$x,[jx.moveToMemo]:eS},nS=(e,t,n)=>{let r=n.filter(e=>e.type===Fx.type);if(!r.length)return;let i=se(r,e=>e.payload.ids.join(`,`));for(let[,n]of Object.entries(i)){let{payload:{ids:r}}=ce(n),{x:i,y:a}=n.reduce((e,{payload:{movementX:t,movementY:n}})=>(e.x+=t,e.y+=n,e),{x:0,y:0});Math.abs(i)+Math.abs(a)<20||(e.push(Fx({ids:r,movementX:-1*i,movementY:-1*a})),t.push(Fx({ids:r,movementX:i,movementY:a})))}},rS=(e,t,n)=>{let r=n.filter(({type:e})=>e===Ux.type);if(!r.length)return;let i=se(r,e=>e.payload.id);for(let[n,r]of Object.entries(i)){let i=ce(r),a=fe(r);e.push(Ux({id:n,color:i.payload.prevColor,prevColor:a.payload.color})),t.push(Ux({id:n,color:a.payload.color,prevColor:i.payload.prevColor}))}},iS=(e,t,n)=>{let r=n.filter(e=>e.type===Gx.type);if(!r.length)return;let i=se(r,e=>e.payload.id);for(let[,n]of Object.entries(i)){if(n.length<2)continue;let r=ce(n),i=fe(n);e.push(r),t.push(i)}},aS={[jx.moveMemo]:nS,[jx.changeMemoColor]:rS,[jx.resizeMemo]:iS},oS={addRelationship:`relationship.add`,removeRelationship:`relationship.remove`,changeRelationshipType:`relationship.changeType`},sS=e=>He({id:w(),identification:!1,relationshipType:Zm.ZeroN,startRelationshipType:Qm.dash,start:{tableId:``,columnIds:[],x:0,y:0,direction:R.bottom},end:{tableId:``,columnIds:[],x:0,y:0,direction:R.bottom},meta:Uv()},e??{}),cS=k(oS.addRelationship),lS=({doc:e,collections:t,lww:n},{payload:{id:r,relationshipType:i,start:a,end:o},version:s},{clock:c})=>{let l=s??c.getVersion();N(t).collection(`relationshipEntities`).addOne(sS({id:r,relationshipType:i,start:{tableId:a.tableId,columnIds:a.columnIds},end:{tableId:o.tableId,columnIds:o.columnIds}})).addOperator(n,l,r,()=>{V(e.relationshipIds)(r)||e.relationshipIds.push(r)})},uS=k(oS.removeRelationship),dS=({doc:e,collections:t,lww:n},{payload:{id:r},version:i},{clock:a})=>{let o=i??a.getVersion();N(t).collection(`relationshipEntities`).removeOperator(n,o,r,()=>{let t=e.relationshipIds.indexOf(r);t!==-1&&e.relationshipIds.splice(t,1)})},fS=k(oS.changeRelationshipType),pS=({collections:e,lww:t},{payload:{id:n,value:r},version:i},{clock:a})=>{let o=i??a.getVersion(),s=N(e).collection(`relationshipEntities`);s.replaceOperator(t,o,n,`relationshipType`,()=>{s.updateOne(n,e=>{e.relationshipType=r})})},mS={[oS.addRelationship]:lS,[oS.removeRelationship]:dS,[oS.changeRelationshipType]:pS},hS={addRelationshipAction:cS,removeRelationshipAction:uS,changeRelationshipTypeAction:fS},gS=(e,{payload:{id:t}})=>{e.push(uS({id:t}))},_S=(e,{payload:{id:t}},{collections:n})=>{let r=N(n).collection(`relationshipEntities`).selectById(t);r&&e.push(cS({id:r.id,relationshipType:r.relationshipType,start:ge(r.start,[`tableId`,`columnIds`]),end:ge(r.end,[`tableId`,`columnIds`])}))},vS=(e,{payload:{id:t}},{collections:n})=>{let r=N(n).collection(`relationshipEntities`).selectById(t);r&&e.push(fS({id:t,value:r.relationshipType}))},yS={[oS.addRelationship]:gS,[oS.removeRelationship]:_S,[oS.changeRelationshipType]:vS},bS=(e,t,{settings:n})=>{e.push(lv({originX:n.originX,originY:n.originY}))},xS=(e,{payload:{show:t,value:n}})=>{e.push(pv({show:t,value:!n}))},SS=(e,t,{settings:n})=>{e.push(rv({value:n.zoomLevel}))},CS={[K.scrollTo]:bS,[K.changeShow]:xS,[K.changeZoomLevel]:SS},wS=(e,t,n)=>{let r=n.filter(e=>e.type===dv.type);if(!r.length)return;let{x:i,y:a}=r.reduce((e,{payload:{movementX:t,movementY:n}})=>(e.x+=t,e.y+=n,e),{x:0,y:0});Math.abs(i)+Math.abs(a)<20||(e.push(dv({movementX:-1*i,movementY:-1*a})),t.push(dv({movementX:i,movementY:a})))},TS=(e,t,n)=>{let r=n.filter(e=>e.type===av.type);if(!r.length)return;let i=r.reduce((e,{payload:{value:t}})=>e+t,0);e.push(av({value:-1*i})),t.push(av({value:i}))},ES={[K.streamScrollTo]:wS,[K.streamZoomLevel]:TS},DS={addTable:`table.add`,moveTable:`table.move`,moveToTable:`table.moveTo`,removeTable:`table.remove`,changeTableName:`table.changeName`,changeTableComment:`table.changeComment`,changeTableColor:`table.changeColor`,changeZIndex:`table.changeZIndex`,sortTable:`table.sort`},OS=e=>He({id:w(),name:``,comment:``,columnIds:[],seqColumnIds:[],ui:{x:200,y:100,zIndex:2,widthName:60,widthComment:60,color:``},meta:Uv()},e??{}),kS=k(DS.addTable),AS=({doc:e,collections:t,lww:n},{payload:{id:r,ui:i},version:a},{clock:o})=>{let s=a??o.getVersion();N(t).collection(`tableEntities`).addOne(OS({id:r,ui:i})).addOperator(n,s,r,()=>{V(e.tableIds)(r)||e.tableIds.push(r)})},jS=k(DS.moveTable),MS=({collections:e},{payload:{ids:t,movementX:n,movementY:r}})=>{let i=N(e).collection(`tableEntities`);for(let e of t)i.getOrCreate(e,e=>OS({id:e}));i.updateMany(t,e=>{e.ui.x=Ve(e.ui.x+n,4),e.ui.y=Ve(e.ui.y+r,4)})},NS=k(DS.moveToTable),PS=({collections:e},{payload:{id:t,x:n,y:r}})=>{let i=N(e).collection(`tableEntities`);i.getOrCreate(t,e=>OS({id:e})),i.updateOne(t,e=>{e.ui.x=n,e.ui.y=r})},FS=k(DS.removeTable),IS=({doc:e,collections:t,lww:n},{payload:{id:r},version:i},{clock:a})=>{let o=i??a.getVersion();N(t).collection(`tableEntities`).removeOperator(n,o,r,()=>{let t=e.tableIds.indexOf(r);t!==-1&&e.tableIds.splice(t,1)})},LS=k(DS.changeTableName),RS=({collections:e,lww:t},{payload:{id:n,value:r},version:i},{toWidth:a,clock:o})=>{let s=i??o.getVersion(),c=N(e).collection(`tableEntities`);c.getOrCreate(n,e=>OS({id:e})),c.replaceOperator(t,s,n,`name`,()=>{c.updateOne(n,e=>{e.name=r,e.ui.widthName=U(a(r))})})},zS=k(DS.changeTableComment),BS=({collections:e,lww:t},{payload:{id:n,value:r},version:i},{toWidth:a,clock:o})=>{let s=i??o.getVersion(),c=N(e).collection(`tableEntities`);c.getOrCreate(n,e=>OS({id:e})),c.replaceOperator(t,s,n,`comment`,()=>{c.updateOne(n,e=>{e.comment=r,e.ui.widthComment=U(a(r))})})},VS=k(DS.changeTableColor),HS=({collections:e,lww:t},{payload:{id:n,color:r},version:i},{clock:a})=>{let o=i??a.getVersion(),s=N(e).collection(`tableEntities`);s.getOrCreate(n,e=>OS({id:e})),s.replaceOperator(t,o,n,`ui.color`,()=>{s.updateOne(n,e=>{e.ui.color=r})})},US=k(DS.changeZIndex),WS=({collections:e},{payload:{id:t,zIndex:n}})=>{let r=N(e).collection(`tableEntities`);r.getOrCreate(t,e=>OS({id:e})),r.updateOne(t,e=>{e.ui.zIndex=n})},GS=k(DS.sortTable),KS=e=>{let{doc:t,settings:n,collections:r}=e,i=n.width,a=N(r).collection(`tableEntities`).selectByIds(t.tableIds);a.sort((e,t)=>e.columnIds.length-t.columnIds.length);let o=50,s=50,c=50;a.forEach(t=>{let n=s_(t,e).width+80,r=__(t)+80;o+n>i&&(s+=c,c=0,o=50),c<r&&(c=r),t.ui.y=s,t.ui.x=o,o+=n})},qS={[DS.addTable]:AS,[DS.moveTable]:MS,[DS.moveToTable]:PS,[DS.removeTable]:IS,[DS.changeTableName]:RS,[DS.changeTableComment]:BS,[DS.changeTableColor]:HS,[DS.changeZIndex]:WS,[DS.sortTable]:KS},JS={addTableAction:kS,moveTableAction:jS,moveToTableAction:NS,removeTableAction:FS,changeTableNameAction:LS,changeTableCommentAction:zS,changeTableColorAction:VS,changeZIndexAction:US,sortTableAction:GS},YS=(e,{payload:{id:t}})=>{e.push(FS({id:t}))},XS=(e,{payload:{id:t}},{collections:n})=>{let r=N(n).collection(`tableEntities`).selectById(t);r&&e.push(kS({id:r.id,ui:ge(r.ui,[`x`,`y`,`zIndex`])}))},ZS=(e,{payload:{id:t}},{collections:n})=>{let r=N(n).collection(`tableEntities`).selectById(t);r&&e.push(LS({id:t,value:r.name}))},QS=(e,{payload:{id:t}},{collections:n})=>{let r=N(n).collection(`tableEntities`).selectById(t);r&&e.push(zS({id:t,value:r.comment}))},$S=(e,{payload:{id:t}},{collections:n})=>{let r=N(n).collection(`tableEntities`).selectById(t);r&&e.push(NS({id:t,x:r.ui.x,y:r.ui.y}))},eC=()=>{},tC={[DS.addTable]:YS,[DS.removeTable]:XS,[DS.changeTableName]:ZS,[DS.changeTableComment]:QS,[DS.moveToTable]:$S,[DS.sortTable]:eC},nC=(e,t,n)=>{let r=n.filter(e=>e.type===jS.type);if(!r.length)return;let i=se(r,e=>e.payload.ids.join(`,`));for(let[,n]of Object.entries(i)){let{payload:{ids:r}}=ce(n),{x:i,y:a}=n.reduce((e,{payload:{movementX:t,movementY:n}})=>(e.x+=t,e.y+=n,e),{x:0,y:0});Math.abs(i)+Math.abs(a)<20||(e.push(jS({ids:r,movementX:-1*i,movementY:-1*a})),t.push(jS({ids:r,movementX:i,movementY:a})))}},rC=(e,t,n)=>{let r=n.filter(({type:e})=>e===VS.type);if(!r.length)return;let i=se(r,e=>e.payload.id);for(let[n,r]of Object.entries(i)){let i=ce(r),a=fe(r);e.push(VS({id:n,color:i.payload.prevColor,prevColor:a.payload.color})),t.push(VS({id:n,color:a.payload.color,prevColor:i.payload.prevColor}))}},iC={[DS.moveTable]:nC,[DS.changeTableColor]:rC},q={addColumn:`column.add`,removeColumn:`column.remove`,changeColumnName:`column.changeName`,changeColumnComment:`column.changeComment`,changeColumnDataType:`column.changeDataType`,changeColumnDefault:`column.changeDefault`,changeColumnAutoIncrement:`column.changeAutoIncrement`,changeColumnPrimaryKey:`column.changePrimaryKey`,changeColumnUnique:`column.changeUnique`,changeColumnNotNull:`column.changeNotNull`,moveColumn:`column.move`},aC=e=>He({id:w(),tableId:``,name:``,comment:``,dataType:``,default:``,options:0,ui:{keys:0,widthName:60,widthComment:60,widthDataType:60,widthDefault:60},meta:Uv()},e??{}),oC=k(q.addColumn),sC=({collections:e,lww:t},{payload:{id:n,tableId:r},version:i},{clock:a})=>{let o=i??a.getVersion(),s=N(e).collection(`tableEntities`),c=s.getOrCreate(r,e=>OS({id:e}));N(e).collection(`tableColumnEntities`).addOne(aC({id:n,tableId:r})).addOperator(t,o,n,()=>{V(c.columnIds)(n)||s.updateOne(r,e=>{hx(e.columnIds,e.seqColumnIds,n)})})},cC=k(q.removeColumn),lC=({collections:e,lww:t},{payload:{id:n,tableId:r},version:i},{clock:a})=>{let o=i??a.getVersion(),s=N(e).collection(`tableEntities`),c=s.getOrCreate(r,e=>OS({id:e}));N(e).collection(`tableColumnEntities`).removeOperator(t,o,n,()=>{let e=c.columnIds.indexOf(n);e!==-1&&s.updateOne(r,t=>{t.columnIds.splice(e,1)})})},uC=k(q.changeColumnName),dC=({collections:e,lww:t},{payload:{id:n,value:r},version:i},{toWidth:a,clock:o})=>{let s=i??o.getVersion(),c=N(e).collection(`tableColumnEntities`);c.getOrCreate(n,e=>aC({id:e})),c.replaceOperator(t,s,n,`name`,()=>{c.updateOne(n,e=>{e.name=r,e.ui.widthName=U(a(r))})})},fC=k(q.changeColumnComment),pC=({collections:e,lww:t},{payload:{id:n,value:r},version:i},{toWidth:a,clock:o})=>{let s=i??o.getVersion(),c=N(e).collection(`tableColumnEntities`);c.getOrCreate(n,e=>aC({id:e})),c.replaceOperator(t,s,n,`comment`,()=>{c.updateOne(n,e=>{e.comment=r,e.ui.widthComment=U(a(r))})})},mC=k(q.changeColumnDataType),hC=({collections:e,lww:t},{payload:{id:n,value:r},version:i},{toWidth:a,clock:o})=>{let s=i??o.getVersion(),c=N(e).collection(`tableColumnEntities`);c.getOrCreate(n,e=>aC({id:e})),c.replaceOperator(t,s,n,`dataType`,()=>{c.updateOne(n,e=>{e.dataType=r,e.ui.widthDataType=U(a(r))})})},gC=k(q.changeColumnDefault),_C=({collections:e,lww:t},{payload:{id:n,value:r},version:i},{toWidth:a,clock:o})=>{let s=i??o.getVersion(),c=N(e).collection(`tableColumnEntities`);c.getOrCreate(n,e=>aC({id:e})),c.replaceOperator(t,s,n,`default`,()=>{c.updateOne(n,e=>{e.default=r,e.ui.widthDefault=U(a(r))})})},vC=k(q.changeColumnAutoIncrement),yC=({collections:e,lww:t},{payload:{id:n,value:r},version:i},{clock:a})=>{let o=i??a.getVersion(),s=N(e).collection(`tableColumnEntities`);s.getOrCreate(n,e=>aC({id:e})),s.replaceOperator(t,o,n,`options(autoIncrement)`,()=>{s.updateOne(n,e=>{e.options=r?e.options|z.autoIncrement:e.options&~z.autoIncrement})})},bC=k(q.changeColumnPrimaryKey),xC=({collections:e,lww:t},{payload:{id:n,value:r},version:i},{clock:a})=>{let o=i??a.getVersion(),s=N(e).collection(`tableColumnEntities`);s.getOrCreate(n,e=>aC({id:e})),s.replaceOperator(t,o,n,`options(primaryKey)`,()=>{s.updateOne(n,e=>{e.options=r?e.options|z.primaryKey:e.options&~z.primaryKey,e.ui.keys=r?e.ui.keys|B.primaryKey:e.ui.keys&~B.primaryKey})})},SC=k(q.changeColumnUnique),CC=({collections:e,lww:t},{payload:{id:n,value:r},version:i},{clock:a})=>{let o=i??a.getVersion(),s=N(e).collection(`tableColumnEntities`);s.getOrCreate(n,e=>aC({id:e})),s.replaceOperator(t,o,n,`options(unique)`,()=>{s.updateOne(n,e=>{e.options=r?e.options|z.unique:e.options&~z.unique})})},wC=k(q.changeColumnNotNull),TC=({collections:e,lww:t},{payload:{id:n,value:r},version:i},{clock:a})=>{let o=i??a.getVersion(),s=N(e).collection(`tableColumnEntities`);s.getOrCreate(n,e=>aC({id:e})),s.replaceOperator(t,o,n,`options(notNull)`,()=>{s.updateOne(n,e=>{e.options=r?e.options|z.notNull:e.options&~z.notNull})})},EC=k(q.moveColumn),DC=({collections:e},{payload:{id:t,tableId:n,targetId:r}})=>{if(t===r)return;let i=N(e).collection(`tableEntities`),a=i.getOrCreate(n,e=>OS({id:e})),o=a.columnIds.indexOf(t);if(o===-1)return;let s=a.columnIds.indexOf(r);s!==-1&&i.updateOne(n,e=>{e.columnIds.splice(o,1),e.columnIds.splice(s,0,t);let n=e.seqColumnIds.indexOf(t),i=e.seqColumnIds.indexOf(r);n!==-1&&i!==-1&&(e.seqColumnIds.splice(n,1),e.seqColumnIds.splice(i,0,t))})},OC={[q.addColumn]:sC,[q.removeColumn]:lC,[q.changeColumnName]:dC,[q.changeColumnComment]:pC,[q.changeColumnDataType]:hC,[q.changeColumnDefault]:_C,[q.changeColumnAutoIncrement]:yC,[q.changeColumnPrimaryKey]:xC,[q.changeColumnUnique]:CC,[q.changeColumnNotNull]:TC,[q.moveColumn]:DC},kC={addColumnAction:oC,removeColumnAction:cC,changeColumnNameAction:uC,changeColumnCommentAction:fC,changeColumnDataTypeAction:mC,changeColumnDefaultAction:gC,changeColumnAutoIncrementAction:vC,changeColumnPrimaryKeyAction:bC,changeColumnUniqueAction:SC,changeColumnNotNullAction:wC,moveColumnAction:EC},AC=(e,{payload:{id:t,tableId:n}})=>{e.push(cC({id:t,tableId:n}))},jC=(e,{payload:{id:t,tableId:n}})=>{e.push(oC({id:t,tableId:n}))},MC=(e,{payload:{id:t,tableId:n}},{collections:r})=>{let i=N(r).collection(`tableColumnEntities`).selectById(t);i&&e.push(uC({id:t,tableId:n,value:i.name}))},NC=(e,{payload:{id:t,tableId:n}},{collections:r})=>{let i=N(r).collection(`tableColumnEntities`).selectById(t);i&&e.push(mC({id:t,tableId:n,value:i.dataType}))},PC=(e,{payload:{id:t,tableId:n}},{collections:r})=>{let i=N(r).collection(`tableColumnEntities`).selectById(t);i&&e.push(gC({id:t,tableId:n,value:i.default}))},FC=(e,{payload:{id:t,tableId:n}},{collections:r})=>{let i=N(r).collection(`tableColumnEntities`).selectById(t);i&&e.push(fC({id:t,tableId:n,value:i.comment}))},IC=(e,{payload:{id:t,tableId:n,value:r}},{collections:i})=>{N(i).collection(`tableColumnEntities`).selectById(t)&&e.push(vC({id:t,tableId:n,value:!r}))},LC=(e,{payload:{id:t,tableId:n,value:r}},{collections:i})=>{N(i).collection(`tableColumnEntities`).selectById(t)&&e.push(wC({id:t,tableId:n,value:!r}))},RC=(e,{payload:{id:t,tableId:n,value:r}},{collections:i})=>{N(i).collection(`tableColumnEntities`).selectById(t)&&e.push(bC({id:t,tableId:n,value:!r}))},zC=(e,{payload:{id:t,tableId:n,value:r}},{collections:i})=>{N(i).collection(`tableColumnEntities`).selectById(t)&&e.push(SC({id:t,tableId:n,value:!r}))},BC=(e,{payload:{id:t,tableId:n,targetId:r}},{collections:i})=>{let a=N(i).collection(`tableEntities`).selectById(n);if(!a)return;let o=a.columnIds.indexOf(t);if(o===-1)return;let s=a.columnIds.indexOf(r);if(s===-1)return;let c=o<s?o+1:o-1,l=a.columnIds[c];e.push(EC({id:t,tableId:n,targetId:l}))},VC={[q.addColumn]:AC,[q.removeColumn]:jC,[q.changeColumnName]:MC,[q.changeColumnDataType]:NC,[q.changeColumnDefault]:PC,[q.changeColumnComment]:FC,[q.changeColumnAutoIncrement]:IC,[q.changeColumnNotNull]:LC,[q.changeColumnPrimaryKey]:RC,[q.changeColumnUnique]:zC,[q.moveColumn]:BC};function HC(e,...t){try{return e?.(...t)}catch(e){console.error(e)}}const UC={...tC,...VC,...yS,...tS,...CS,...Yb,...fx,...Ax},WC={...iC,...aS,...ES};function GC(e,t,n){let r=[],i=[];for(let t of n){let n=UC[t.type];n&&(n(r,t,e.state),i.push(ae(t)))}for(let e of Object.keys(WC))WC[e](r,i,n);!r.length||!i.length||t.push({undo:(e,t)=>{e(r.map(KC(t())))},redo:(e,t)=>{e(i.map(KC(t())))}})}function KC(e){return t=>({...ae(t),version:e})}const qC=(e,t)=>n=>{HC(GC,e,t,n)},JC=()=>function*({settings:e,doc:{tableIds:t,memoIds:n},collections:r}){let i=N(r).collection(`tableEntities`).selectByIds(t),a=N(r).collection(`memoEntities`).selectByIds(n),o=Hv(e,i,a),s=w();yield UA(),yield Oy({[s]:Qh.memo}),yield Nx({id:s,ui:{...o,zIndex:Bv(i,a)}})},YC=e=>function*({editor:{selectedMap:t}}){if(e){yield zx({id:e});return}let n=Object.entries(t).filter(([,e])=>e===Qh.memo);for(let[e]of n)yield zx({id:e})},XC=(e,t)=>function*({doc:{tableIds:n,memoIds:r},collections:i}){let a=N(i).collection(`tableEntities`).selectByIds(n),o=N(i).collection(`memoEntities`).selectByIds(r);t||(yield UA()),yield Oy({[e]:Qh.memo}),yield qx({id:e,zIndex:Bv(a,o)})},ZC={addMemoAction$:JC,removeMemoAction$:YC,selectMemoAction$:XC};V(Object.values({tables:`tables`,columns:`columns`}));const QC=({x:e,y:t})=>`${e},${t}`,$C=(e,t)=>e<t?-1:+(e>t),ew=e=>e.ui.zIndex??0;function tw({entities:e,offset:t,escapeCollision:n,settings:r,tables:i,memos:a,findSource:o}){let s=new Map;if(e.length===0)return s;let c=new Set([...i,...a].map(({ui:e})=>QC(e))),l=new Map,u=[];for(let n of e){let e=o(n.sourceId);e?l.set(n.sourceId,{x:e.ui.x+t.x,y:e.ui.y+t.y}):u.push(n)}if(u.length!==0){let e=Hv(r,i,a),t=u.reduce((e,t)=>t.ui.x<e.ui.x||t.ui.x===e.ui.x&&t.ui.y<e.ui.y?t:e);for(let n of u)l.set(n.sourceId,{x:e.x+(n.ui.x-t.ui.x),y:e.y+(n.ui.y-t.ui.y)})}if(n){let t=[...e].sort((e,t)=>$C(e.sourceId,t.sourceId));for(let{sourceId:e}of t){let t=l.get(e);if(t){for(;c.has(QC(t));)t.x+=50,t.y+=50;c.add(QC(t))}}}let d=Bv(i,a);return[...e].sort((e,t)=>ew(e)-ew(t)||$C(e.sourceId,t.sourceId)).forEach(({sourceId:e},t)=>{let n=l.get(e);n&&s.set(e,{x:n.x,y:n.y,zIndex:d+t})}),s}V(Object.values({columnName:`columnName`,columnDataType:`columnDataType`,columnNotNull:`columnNotNull`,columnUnique:`columnUnique`,columnAutoIncrement:`columnAutoIncrement`,columnDefault:`columnDefault`,columnComment:`columnComment`}));function nw(e,t){return t.filter(t=>{switch(t){case I.columnName:return!0;case I.columnDataType:return G(e,F.columnDataType);case I.columnDefault:return G(e,F.columnDefault);case I.columnComment:return G(e,F.columnComment);case I.columnAutoIncrement:return G(e,F.columnAutoIncrement);case I.columnUnique:return G(e,F.columnUnique);case I.columnNotNull:return G(e,F.columnNotNull);default:return!1}})}const rw=()=>function*({settings:e,doc:{tableIds:t,memoIds:n},collections:r}){let i=N(r).collection(`tableEntities`).selectByIds(t),a=N(r).collection(`memoEntities`).selectByIds(n),o=Hv(e,i,a),s=w();yield Ey(),yield Oy({[s]:Qh.table}),yield kS({id:s,ui:{...o,zIndex:Bv(i,a)}}),yield Vy({tableId:s})},iw=e=>function*({doc:{relationshipIds:t,indexIds:n},editor:{selectedMap:r},collections:i}){let a=N(i).collection(`relationshipEntities`).selectByIds(t),o=N(i).collection(`indexEntities`).selectByIds(n);if(e){let t=a.filter(({start:t,end:n})=>t.tableId===e||n.tableId===e),n=o.filter(({tableId:t})=>t===e);for(let{id:e}of n)yield ex({id:e});for(let{id:e}of t)yield uS({id:e});yield FS({id:e});return}let s=Object.entries(r).filter(([,e])=>e===Qh.table).map(([e])=>e),c=V(s),l=a.filter(({start:e,end:t})=>c(e.tableId)||c(t.tableId)),u=o.filter(({tableId:e})=>c(e));for(let{id:e}of u)yield ex({id:e});for(let{id:e}of l)yield uS({id:e});for(let e of s)yield FS({id:e})},aw=(e,t)=>function*({doc:{tableIds:n,memoIds:r},collections:i,editor:{drawRelationship:a}}){let o=N(i).collection(`tableEntities`),s=o.selectByIds(n),c=N(i).collection(`memoEntities`).selectByIds(r);if(t||(yield Ey()),yield Oy({[e]:Qh.table}),yield US({id:e,zIndex:Bv(s,c)}),yield Vy({tableId:e}),a){if(a.start){let t=o.selectById(a.start.tableId),n=o.selectById(e);if(!t||!n)return;let r=N(i).collection(`tableColumnEntities`).selectByIds(t.columnIds).filter(({options:e})=>G(e,z.primaryKey));if(!r.length)return;let s=r.map(()=>w());for(let e=0;e<r.length;e++){let t=r[e],i={id:s[e],tableId:n.id};yield[oC(i),wC({...i,value:!0}),uC({...i,value:t.name}),mC({...i,value:t.dataType}),gC({...i,value:t.default}),fC({...i,value:t.comment})]}yield cS({id:w(),relationshipType:a.relationshipType,start:{tableId:t.id,columnIds:r.map(({id:e})=>e)},end:{tableId:n.id,columnIds:s}}),yield db()}else yield KA(e)}},ow={addTableAction$:rw,removeTableAction$:iw,selectTableAction$:aw,pasteTableAction$:e=>function*({editor:{selectedMap:t,focusTable:n},settings:{show:r,columnOrder:i},collections:a}){let o=n&&!fy(n.focusType),s=Object.entries(t).filter(([,e])=>e===Qh.table).map(([e])=>e).filter(e=>!o||e!==n?.tableId);for(let t of s)for(let n of e){let e={id:w(),tableId:t};yield[oC(e),uC({...e,value:n.name}),mC({...e,value:n.dataType}),gC({...e,value:n.default}),fC({...e,value:n.comment}),wC({...e,value:G(n.options,z.notNull)}),SC({...e,value:G(n.options,z.unique)}),vC({...e,value:G(n.options,z.autoIncrement)})]}if(!n||!o)return;let c=N(a).collection(`tableEntities`).selectById(n.tableId);if(!c)return;let l=c.columnIds.filter(V(n.selectColumnIds));if(l.length===0)return;let u=c.columnIds.slice(c.columnIds.indexOf(l[l.length-1])+1),d=[...l,...u],f=nw(r,i);yield Gy();for(let t=0;t<d.length;t++){let r=d[t],i=e[t];if(!i)break;let a={id:r,tableId:c.id};yield[...f.map(e=>{switch(e){case I.columnName:return uC({...a,value:i.name});case I.columnDataType:return mC({...a,value:i.dataType});case I.columnDefault:return gC({...a,value:i.default});case I.columnComment:return fC({...a,value:i.comment});case I.columnAutoIncrement:return vC({...a,value:G(i.options,z.autoIncrement)});case I.columnUnique:return SC({...a,value:G(i.options,z.unique)});case I.columnNotNull:return wC({...a,value:G(i.options,z.notNull)});default:return null}}).filter(Boolean),Uy({tableId:c.id,columnId:r,focusType:n.focusType,$mod:!0,shiftKey:!1})]}let p=e.slice(d.length);for(let e of p){let t=w(),r={id:t,tableId:c.id};yield[oC(r),...f.map(t=>{switch(t){case I.columnName:return uC({...r,value:e.name});case I.columnDataType:return mC({...r,value:e.dataType});case I.columnDefault:return gC({...r,value:e.default});case I.columnComment:return fC({...r,value:e.comment});case I.columnAutoIncrement:return vC({...r,value:G(e.options,z.autoIncrement)});case I.columnUnique:return SC({...r,value:G(e.options,z.unique)});case I.columnNotNull:return wC({...r,value:G(e.options,z.notNull)});default:return null}}).filter(Boolean),Uy({tableId:c.id,columnId:t,focusType:n.focusType,$mod:!0,shiftKey:!1})]}}};function sw(e,t,n,r=[]){let{doc:{relationshipIds:i},collections:a}=t,o=e.pop();return o&&(r.some(({id:e})=>e===o.id)||(r.push(o),N(a).collection(`relationshipEntities`).selectByIds(i).forEach(({start:t,end:r})=>{let i=t.columnIds.indexOf(o.id);if(i!==-1){let t=r.columnIds[i];e.push({id:t,tableId:r.tableId,value:n.value})}else{let i=r.columnIds.indexOf(o.id);if(i!==-1){let r=t.columnIds[i];e.push({id:r,tableId:t.tableId,value:n.value})}}})),sw(e,t,n,r)),r}const cw=V([W.columnNotNull,W.columnUnique,W.columnAutoIncrement]),lw=V([W.columnName,W.columnDataType,W.columnDefault,W.columnComment]),uw=e=>function*({editor:{selectedMap:t}}){if(e){let t=w();yield oC({id:t,tableId:e}),yield Uy({tableId:e,columnId:t,focusType:W.columnName,$mod:!1,shiftKey:!1});return}let n=Object.entries(t).filter(([,e])=>e===Qh.table).map(([e])=>({tableId:e,id:w()}));for(let e of n)yield oC(e);let r=fe(n);r&&(yield Uy({tableId:r.tableId,columnId:r.id,focusType:W.columnName,$mod:!1,shiftKey:!1}))},dw=(e,t)=>function*(n){let{doc:{relationshipIds:r,indexIds:i},editor:{focusTable:a},collections:o}=n;if(a?.columnId){let e=cy(n,t);e?yield Uy({tableId:a.tableId,columnId:e,focusType:a.focusType,$mod:!1,shiftKey:!1}):yield Vy({tableId:a.tableId,focusType:W.tableName})}let s=V(t),c=N(o).collection(`relationshipEntities`).selectByIds(r).filter(({start:t,end:n})=>t.tableId===e&&t.columnIds.some(s)||n.tableId===e&&n.columnIds.some(s)),l=N(o).collection(`indexEntities`).selectByIds(i).filter(t=>t.tableId===e&&N(o).collection(`indexColumnEntities`).selectByIds(t.indexColumnIds).map(({columnId:e})=>e).some(s));for(let{id:e}of l)yield ex({id:e});for(let{id:e}of c)yield uS({id:e});for(let n of t)yield cC({id:n,tableId:e})},fw=(e,t,n)=>function*({collections:r}){if(!cw(e))return;let i=N(r).collection(`tableColumnEntities`).selectById(n);if(i)switch(e){case W.columnNotNull:yield wC({id:n,tableId:t,value:!G(i.options,z.notNull)});break;case W.columnUnique:yield SC({id:n,tableId:t,value:!G(i.options,z.unique)});break;case W.columnAutoIncrement:yield vC({id:n,tableId:t,value:!G(i.options,z.autoIncrement)})}},pw=e=>function*(t){let{settings:{relationshipDataTypeSync:n}}=t,r=[e];n&&(r=sw([e],t,e)),yield r.map(mC)},mw={addColumnAction$:uw,removeColumnAction$:dw,toggleColumnValueAction$:fw,changeColumnDataTypeAction$:pw,changeColumnValueAction$:(e,t,n,r)=>function*({collections:i}){if(!lw(e)||!N(i).collection(`tableColumnEntities`).selectById(n))return;let a={id:n,tableId:t,value:r};switch(e){case W.columnName:yield uC(a);break;case W.columnDataType:yield pw(a);break;case W.columnDefault:yield gC(a);break;case W.columnComment:yield fC(a)}},changeColumnPrimaryKeyAction$:(e,t)=>function*({collections:n}){let r=N(n).collection(`tableColumnEntities`).selectById(t);if(!r)return;let i=G(r.options,z.primaryKey);yield bC({tableId:e,id:t,value:!i})}};function hw(e,t){return!(e.x>t.x+t.w||e.x+e.w<t.x||e.y>t.y+t.h||e.y+e.h<t.y)}function gw(e){return e.filter(({options:e})=>G(e,z.primaryKey))}function _w(e,t,n,r=1){let i=!0;for(let r of e)if(n===r.name&&r.id!==t&&n!==``){i=!1;break}return i?n:_w(e,t,n.replace(/[0-9]/g,``)+r,r+1)}function vw(e,t){for(let n of e)if(n.name.toUpperCase()===t.toUpperCase())return n;return null}const yw={[L.MariaDB]:`VARCHAR(255)`,[L.MSSQL]:`varchar(255)`,[L.MySQL]:`VARCHAR(255)`,[L.Oracle]:`VARCHAR2(255)`,[L.PostgreSQL]:`varchar(255)`,[L.SQLite]:`TEXT`,[L.Databricks]:`STRING`,[L.Snowflake]:`VARCHAR(255)`};function bw(e,t,n,r=[]){let i=Cw(e,n,r);return i.members?Sw(i.members,t)??yw[t]??i.typeName:i.typeName}function xw(e,t,n,r=[]){let{members:i}=Cw(e,t,r);return!i||Sw(i,n)!==void 0?``:` ${e}: ${i.join(` | `)}`}function Sw(e,t){if(t===L.MySQL||t===L.MariaDB)return`ENUM(${e.map(e=>`'${e.replace(/'/g,`''`)}'`).join(`,`)})`}function Cw(e,t,n){if(n.length)return{typeName:e,members:n};let r=new Set,i=e;for(;!r.has(i);){r.add(i);let e=ww(i,t);if(!e)break;if(e.values.length)return{typeName:i,members:e.values};if(!e.alias)break;i=e.alias}return{typeName:i,members:null}}function ww(e,t){let n=t.types[e];if(n)return n;let r=Object.keys(t.types).find(t=>t.slice(t.lastIndexOf(`.`)+1)===e);return r===void 0?void 0:t.types[r]}const Tw={database:``,catalog:``,schema:``},Ew=kw(Tw);function Dw(e,t,n){let r=Hp({}),i=Ow(e.entities),a=e.entities.map(a=>Mw(r,t,e,n,a,i(a)));return Fw(r,t,a,e,jw(e.entities,a)),Bw(r,a),r}function Ow(e){let t=new Set(e.map(e=>kw(e.namespace)));return e=>{let n=kw(e.namespace);return t.size>1&&n!==Ew?`${Aw(e.namespace)}_${e.name}`:e.name}}function kw({database:e,catalog:t,schema:n}){return`${e}.${t}.${n}`}function Aw({database:e,catalog:t,schema:n}){return[e,t,n].filter(e=>e!==``).join(`_`)}function jw(e,t){let n=new Map,r=(e,t)=>{let r=e.toLowerCase();n.has(r)||n.set(r,t)};return e.forEach((e,n)=>{let i=t[n],a=kw(e.namespace);r(`${a}.${e.name}`,i),r(e.name,i),e.alias&&(r(e.alias,i),r(`${a}.${e.alias}`,i))}),e=>{let t=kw(e.namespace);return n.get(`${t}.${e.entityName}`.toLowerCase())??(t===Ew?n.get(e.entityName.toLowerCase())??null:null)}}function Mw({doc:e,collections:t},n,r,i,a,o){let{toWidth:s}=n,c=Xh(o),l=Xh(a.comment),u=OS({name:c,comment:l,ui:{widthName:U(s(c)),widthComment:U(s(l))}}),d={source:a,table:u,columns:[]};return a.attributes.forEach(e=>{let n=Xh(e.path),a=bw(e.typeName,i,r,e.enumValues),o=`${Xh(e.comment)}${xw(e.typeName,r,i,e.enumValues)}`.trim(),c=Xh(e.default);Pw(t,d,aC({tableId:u.id,name:n,comment:o,dataType:a,default:c,options:(e.autoIncrement?z.autoIncrement:0)|(e.primaryKey?z.primaryKey:0)|(Nw(e)?z.unique:0)|(e.notNull?z.notNull:0),ui:{widthName:U(s(n)),widthComment:U(s(o)),widthDataType:U(s(a)),widthDefault:U(s(c)),keys:e.primaryKey?B.primaryKey:0}}))}),e.tableIds.push(u.id),N(t).collection(`tableEntities`).setOne(u),d}function Nw(e){return e.indexes.some(e=>e.unique&&e.name===``)}function Pw(e,t,n){t.table.columnIds.push(n.id),t.table.seqColumnIds.push(n.id),t.columns.push(n),N(e).collection(`tableColumnEntities`).setOne(n)}function Fw(e,t,n,r,i){let a=new Set;r.relations.forEach(r=>{let o=i(r.src),s=i(r.ref);if(!o||!s)return;let c=Iw(o,r.src),l=Iw(s,r.ref);if(c.length!==0&&l.length!==0&&c.length===l.length){if(r.srcCardinality===`n`&&r.refCardinality===`n`){Rw(e,t,n,o,s);return}Lw(e,t,a,{parent:s,parentColumns:l,child:o,childColumns:c,toMany:r.refCardinality===`n`})}})}function Iw(e,t){if(t.attributePaths.length===0)return gw(e.columns);let n=[];for(let r of t.attributePaths){let t=vw(e.columns,r);if(!t)return[];n.push(t)}return n}function Lw({doc:e,collections:t},{toWidth:n},r,{parent:i,parentColumns:a,child:o,childColumns:s,toMany:c}){let l=`${i.table.id}:${o.table.id}:${s.map(e=>e.id).join(`,`)}`;if(r.has(l))return;r.add(l);let u=s.every(e=>G(e.options,z.notNull));s.forEach((e,t)=>{if(e.dataType===``){let{dataType:r}=a[t];e.dataType=r,e.ui.widthDataType=U(n(r))}e.ui.keys=G(e.ui.keys,B.primaryKey)?e.ui.keys|B.foreignKey:B.foreignKey});let d=sS({identification:s.every(e=>G(e.ui.keys,B.primaryKey)&&G(e.ui.keys,B.foreignKey)),relationshipType:c?u?Zm.OneN:Zm.ZeroN:u?Zm.OneOnly:Zm.ZeroOne,start:{tableId:i.table.id,columnIds:a.map(e=>e.id)},end:{tableId:o.table.id,columnIds:s.map(e=>e.id)}});e.relationshipIds.push(d.id),N(t).collection(`relationshipEntities`).setOne(d)}function Rw(e,t,n,r,i){let{doc:a,collections:o}=e,{toWidth:s}=t,c=gw(r.columns),l=gw(i.columns);if(!c.length||!l.length)return;let u=_w(n.map(e=>e.table),``,`${r.table.name}_${i.table.name}`),d=`Junction table inferred from ${r.table.name} <-> ${i.table.name}`,f=OS({name:u,comment:d,ui:{widthName:U(s(u)),widthComment:U(s(d))}}),p={source:{namespace:Tw,name:u,alias:``,comment:d,attributes:[]},table:f,columns:[]};a.tableIds.push(f.id),N(o).collection(`tableEntities`).setOne(f),n.push(p),zw(e,t,p,r,c),zw(e,t,p,i,l)}function zw(e,{toWidth:t},n,r,i){let{doc:a,collections:o}=e,s=i.map(e=>{let i=_w(n.columns,``,`${r.table.name}_${e.name}`),{dataType:a}=e,s=aC({tableId:n.table.id,name:i,dataType:a,options:z.primaryKey|z.notNull,ui:{keys:B.primaryKey|B.foreignKey,widthName:U(t(i)),widthDataType:U(t(a))}});return Pw(o,n,s),s}),c=sS({identification:!0,relationshipType:Zm.ZeroN,start:{tableId:r.table.id,columnIds:i.map(e=>e.id)},end:{tableId:n.table.id,columnIds:s.map(e=>e.id)}});a.relationshipIds.push(c.id),N(o).collection(`relationshipEntities`).setOne(c)}function Bw({doc:e,collections:t},n){n.forEach(({source:n,table:r,columns:i})=>{let a=new Map;n.attributes.forEach((e,t)=>{let n=i[t];n&&e.indexes.forEach((e,i)=>{if(e.unique&&e.name===``)return;let o=e.name===``?`b:${t}:${i}`:`n:${e.name}`,s=a.get(o)??{index:Zb({name:Xh(e.name),tableId:r.id}),indexColumns:[]};s.index.unique=s.index.unique||e.unique,s.indexColumns.push(mx({indexId:s.index.id,columnId:n.id,orderType:$m.ASC})),a.set(o,s)})}),a.forEach(({index:n,indexColumns:r})=>{r.forEach(e=>{n.indexColumnIds.push(e.id),n.seqIndexColumnIds.push(e.id),N(t).collection(`indexColumnEntities`).setOne(e)}),e.indexIds.push(n.id),N(t).collection(`indexEntities`).setOne(n)})})}const J={identifier:1,quoted:2,string:3,expression:4,number:5,punctuation:6,doc:7,comment:8,newline:9},Vw=/[ \t\f\v]/,Hw=/[0-9]/,Uw=/[A-Za-z_\u0080-\uffff]/,Ww=/[0-9A-Za-z_#\u0080-\uffff]/,Gw=/^[ \t]*/,Kw=/\\#/g,qw={n:`
|
|
2
|
-
`};function
|
|
1
|
+
import*as e from"comlink";import{CHARSET as t,DECLARATION as n,IMPORT as r,LAYER as i,NAMESPACE as a,RULESET as o,alloc as s,dealloc as c,parse as l}from"stylis";import{Container as u}from"konva/lib/Container";import{Group as d}from"konva/lib/Group";import{Layer as f}from"konva/lib/Layer";import{Node as p}from"konva/lib/Node";import{Circle as m}from"konva/lib/shapes/Circle";import{Line as h}from"konva/lib/shapes/Line";import{Path as g}from"konva/lib/shapes/Path";import{Rect as _}from"konva/lib/shapes/Rect";import{Text as v}from"konva/lib/shapes/Text";import{Stage as y}from"konva/lib/Stage";import{DD as ee}from"konva/lib/DragAndDrop";import{Konva as te}from"konva/lib/Global";import{camelCase as ne,clamp as re,cloneDeep as ie,difference as ae,groupBy as b,head as oe,isBoolean as se,isEqual as ce,isFunction as le,isNil as x,isNotNil as ue,isNumber as S,isPlainObject as de,isString as C,last as fe,lowerFirst as pe,noop as me,omit as he,pick as ge,range as _e,snakeCase as ve,uniq as ye,upperFirst as be}from"es-toolkit";import{Observable as xe,Subject as Se,animationFrames as Ce,asapScheduler as we,buffer as Te,debounceTime as Ee,defer as De,filter as Oe,fromEvent as ke,groupBy as Ae,map as je,merge as Me,mergeMap as Ne,observeOn as Pe,share as Fe,startWith as Ie,switchMap as Le,take as Re,takeUntil as ze,tap as Be,throttle as Ve,throttleTime as He,timer as Ue}from"rxjs";import{get as We,isEmpty as Ge,round as Ke}from"es-toolkit/compat";import{nanoid as qe}from"nanoid";import Je from"deepmerge";import{Kind as Ye,TokenKind as Xe,parse as Ze}from"graphql";import Qe,{getAccurateAgent as $e}from"@egjs/agent";import{ArrowRight as et,Atom as tt,Braces as nt,Brackets as rt,CaseSensitive as it,Check as at,ChevronDown as ot,ChevronRight as st,Code as ct,Contrast as lt,Copy as ut,Database as dt,Diff as ft,ExternalLink as pt,Eye as mt,FileDiff as ht,FileImage as gt,FileInput as _t,FileOutput as vt,Fullscreen as yt,GripVertical as bt,Hand as xt,KeyRound as St,Maximize as Ct,Minimize as wt,Minus as Tt,MoonStar as Et,MousePointer2 as Dt,Network as Ot,Palette as kt,Plus as At,Redo2 as jt,RefreshCw as Mt,RotateCcwClock as Nt,Search as Pt,Settings as Ft,Share2 as It,Spline as Lt,StickyNote as Rt,Sun as zt,Table as Bt,Table2 as Vt,TableProperties as Ht,Undo2 as Ut,WandSparkles as Wt,Waypoints as Gt,Workflow as Kt,X as qt}from"lucide";import{amber as Jt,amberA as Yt,amberDark as Xt,amberDarkA as Zt,blue as Qt,blueA as $t,blueDark as en,blueDarkA as tn,bronze as nn,bronzeA as rn,bronzeDark as an,bronzeDarkA as on,brown as sn,brownA as cn,brownDark as ln,brownDarkA as un,crimson as dn,crimsonA as fn,crimsonDark as pn,crimsonDarkA as mn,cyan as hn,cyanA as gn,cyanDark as _n,cyanDarkA as vn,gold as yn,goldA as bn,goldDark as xn,goldDarkA as Sn,grass as Cn,grassA as wn,grassDark as Tn,grassDarkA as En,gray as Dn,grayA as On,grayDark as kn,grayDarkA as An,green as jn,greenA as Mn,greenDark as Nn,greenDarkA as Pn,indigo as Fn,indigoA as In,indigoDark as Ln,indigoDarkA as Rn,iris as zn,irisA as Bn,irisDark as Vn,irisDarkA as Hn,jade as Un,jadeA as Wn,jadeDark as Gn,jadeDarkA as Kn,lime as qn,limeA as Jn,limeDark as Yn,limeDarkA as Xn,mauve as Zn,mauveA as Qn,mauveDark as $n,mauveDarkA as er,mint as tr,mintA as nr,mintDark as rr,mintDarkA as ir,olive as ar,oliveA as or,oliveDark as sr,oliveDarkA as cr,orange as lr,orangeA as ur,orangeDark as dr,orangeDarkA as fr,pink as pr,pinkA as mr,pinkDark as hr,pinkDarkA as gr,plum as _r,plumA as vr,plumDark as yr,plumDarkA as br,purple as xr,purpleA as Sr,purpleDark as Cr,purpleDarkA as wr,red as Tr,redA as Er,redDark as Dr,redDarkA as Or,ruby as kr,rubyA as Ar,rubyDark as jr,rubyDarkA as Mr,sage as Nr,sageA as Pr,sageDark as Fr,sageDarkA as Ir,sand as Lr,sandA as Rr,sandDark as zr,sandDarkA as Br,sky as Vr,skyA as Hr,skyDark as Ur,skyDarkA as Wr,slate as Gr,slateA as Kr,slateDark as qr,slateDarkA as Jr,teal as Yr,tealA as Xr,tealDark as Zr,tealDarkA as Qr,tomato as $r,tomatoA as ei,tomatoDark as ti,tomatoDarkA as ni,violet as ri,violetA as ii,violetDark as ai,violetDarkA as oi,yellow as si,yellowA as ci,yellowDark as li,yellowDarkA as ui}from"@radix-ui/colors";import{layoutWithLines as di,prepareWithSegments as fi}from"@chenglou/pretext";import{Easings as pi,Tween as mi}from"konva/lib/Tween";function hi(e){"@babel/helpers - typeof";return hi=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},hi(e)}function gi(e,t){if(hi(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(hi(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function _i(e){var t=gi(e,`string`);return hi(t)==`symbol`?t:t+``}function vi(e,t,n){return(t=_i(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var yi=class extends EventTarget{constructor(...e){super(...e),vi(this,`textContent`,``)}},bi=class{};function xi(){let e=new OffscreenCanvas(1,1);return e.style??={},e}typeof document>`u`&&(Reflect.set(globalThis,`document`,{querySelector:()=>null,querySelectorAll:()=>[],createElement:e=>e===`canvas`?xi():new yi}),Reflect.set(globalThis,`Node`,bi),Reflect.set(globalThis,`HTMLElement`,bi));function Si(e,t){return Object.freeze({key:t??Symbol(),value:e})}var Ci={subscribe:`@@r-html/context-subscribe`,unsubscribe:`@@r-html/context-unsubscribe`};function wi(e,t){function n(n,r){return new CustomEvent(e,{detail:n,...t,...r})}return n.toString=()=>`${e}`,n.type=e,n}var Ti=wi(Ci.subscribe,{bubbles:!0,composed:!0}),Ei=wi(Ci.unsubscribe,{bubbles:!0,composed:!0});function Di(e,t){let n=e=>{let n=e;t.dispatchEvent(Ti(n.detail))},r=e=>{let n=e;t.dispatchEvent(Ei(n.detail))};return e.addEventListener(Ti.type,n),e.addEventListener(Ei.type,r),()=>{e.removeEventListener(Ti.type,n),e.removeEventListener(Ei.type,r)}}function Oi(e,...t){try{return e?.(...t)}catch(e){console.error(e)}}var ki=queueMicrotask??(e=>{Promise.resolve().then(e)}),Ai=e=>t=>typeof t===e,ji=Ai(`object`),Mi=Ai(`bigint`),Ni=Ai(`boolean`),Pi=Ai(`function`),Fi=Ai(`number`),Ii=Ai(`string`),Li=Ai(`symbol`),Ri=Ai(`undefined`),zi=e=>e===null,{isArray:Bi}=Array,Vi=e=>ji(e)&&!zi(e)&&!Bi(e),Hi=e=>Mi(e)||Ni(e)||Fi(e)||Ii(e)||Li(e)||Ri(e)||zi(e);function Ui(){let e=new Set,t=t=>(e.has(t)||e.add(t),()=>{e.delete(t)});return{subscribe:t,next:t=>{e.forEach(e=>e(t))},asReadonly:()=>({subscribe:t})}}var Wi=`...`,Gi=`@@r-html-${Math.random().toString().substring(2,8)}`,Ki=`${Wi}${Gi}`,qi=RegExp(`${Gi}_(\\d+)_`,`g`),Ji=RegExp(`^${Gi}_\\d+_$`),Yi=/^\n/,Xi=function(e){return e.attribute=`attribute`,e.boolean=`boolean`,e.event=`event`,e.property=`property`,e.spread=`spread`,e.directive=`directive`,e}({}),Zi=Symbol.for(`https://github.com/dineug/r-html#beforeMount`),Qi=Symbol.for(`https://github.com/dineug/r-html#mounted`),$i=Symbol.for(`https://github.com/dineug/r-html#unmounted`),ea=Symbol.for(`https://github.com/dineug/r-html#beforeFirstUpdate`),ta=Symbol.for(`https://github.com/dineug/r-html#beforeUpdate`),na=Symbol.for(`https://github.com/dineug/r-html#firstUpdated`),ra=Symbol.for(`https://github.com/dineug/r-html#updated`),ia=[Zi,Qi,$i,ea,ta,na,ra],aa=Symbol.for(`https://github.com/dineug/r-html#Directive`),oa=Symbol.for(`https://github.com/dineug/r-html#TemplateLiterals`),sa=null;function ca(e){sa=e}var la=e=>t=>{sa&&(sa[e]??(sa[e]=[])).push(t)},ua=la(Zi),da=la(Qi),fa=la($i);function pa(e,t){let n=Reflect.get(e,t,e);Bi(n)&&n.forEach(Oi)}function ma(e){ia.forEach(t=>Reflect.set(e,t,null,e))}function ha(e,t){if(t.has(e))throw TypeError(`Cannot initialize the same private elements twice on an object`)}function w(e,t,n){ha(e,t),t.set(e,n)}function ga(e,t,n){if(typeof e==`function`?e===t:e.has(t))return arguments.length<3?t:n;throw TypeError(`Private element is not present on this object`)}function T(e,t,n){return e.set(ga(e,t),n),n}function E(e,t){return e.get(ga(e,t))}var _a=Ui(),va=e=>e,ya=e=>{var t,n;return t=new WeakMap,n=new WeakMap,class extends e{constructor(e,r,i,a){super(e,r,i,a),w(this,t,[]),w(this,n,null),this.hmr()}commit(e){let n=va(e);super.commit(n),T(t,this,e)}hmr(){T(n,this,_a.subscribe(e=>E(t,this).includes(e)&&this.commit(E(t,this))))}destroy(){E(n,this)?.call(this),super.destroy?.()}}},ba=new WeakMap,xa=new WeakMap,Sa=new WeakMap,Ca=new WeakMap,wa=new WeakMap,Ta={shallow:!1},Ea=null;function Da(e){return Ea=e,Oi(e),Ea=null,()=>Oa(e)}function Oa(e){Ha(e);let t=wa.get(e);if(t)for(let[n]of t.entries())xa.get(n)?.delete(e);t&&wa.delete(e)}function ka(e){if(!Ea)return;let t=xa.get(e);t?t.has(Ea)||t.add(Ea):xa.set(e,new Set([Ea]))}function Aa(e,t){if(!Ea)return;let n=wa.get(Ea);if(n){let r=n.get(e);r?r.has(t)||r.add(t):n.set(e,new Set([t]))}else wa.set(Ea,new Map([[e,new Set([t])]]))}var ja=e=>e instanceof Node||e instanceof Map||e instanceof Set||e instanceof WeakMap||e instanceof WeakSet||e instanceof RegExp||e instanceof Date||e instanceof Promise||(Bi(e)||Vi(e))&&Object.isFrozen(e);function Ma(e,t={}){let{shallow:n}=Object.assign({},Ta,t),r=new Proxy(e,{get(r,i,a){let o=Reflect.get(r,i,a);return ja(o)?o:(ka(e),Aa(e,i),!n&&(Vi(o)||Bi(o))&&!Sa.has(o)?ba.has(o)?ba.get(o):Ma(o,t):o)},set(e,t,n,r){let i=Reflect.get(e,t,r),a=Reflect.set(e,t,n,r);return(!Bi(e)&&i!==n||t===`length`)&&(Ua(e,t),Ka(e,t)),a},deleteProperty(e,t){let n=Reflect.deleteProperty(e,t);return Ua(e,t),Ka(e,t),n}});return ba.set(e,r),Sa.set(r,e),r}function Na(e){return(Ca.get(e)??Ca.set(e,Ui()).get(e)).asReadonly()}var Pa=[],Fa=new Map,Ia=new Map,La=!0;function Ra(e,t,n){let r=wa.get(n);if(!r)return!1;let i=r.get(e);return i?i.has(t):!1}var za=e=>t=>{let n=Fa.get(t),r=()=>{},i=n?.promise?n.promise:new Promise(e=>{r=e});if(!n){let n={type:e,promise:i,fn:t,resolve:()=>{r()}};Pa.push(n),Fa.set(t,n)}return La&&=(ki(Ga),!1),i},Ba=za(`observer`),Va=za(`nextTick`);function Ha(e){let t=Fa.get(e);if(!t)return;let n=Pa.indexOf(t);n===-1||Pa.splice(n,1),Fa.delete(e),t.resolve()}var Ua=(e,t)=>xa.get(e)?.forEach(n=>Ra(e,t,n)&&Ba(n));function Wa(){let e=Pa.shift();if(e){if(Fa.delete(e.fn),e.type===`observer`)Oa(e.fn),Da(e.fn),e.resolve();else if(e.type===`nextTick`){let t=Oi(e.fn);t instanceof Promise?t.finally(e.resolve):e.resolve()}}}function Ga(){for(;Pa.length;)Wa();La=!0}function Ka(e,t){let n=ba.get(e);if(!n)return;let r=Ca.get(n);if(!r)return;let i=Ia.get(n);i?i.has(t)||i.add(t):(Ia.set(n,new Set([t])),Va(()=>{let e=Ia.get(n);e&&(Ia.delete(n),e.forEach(e=>r.next(e)))}))}function qa(e,t){let n=Ma({value:t.value},{shallow:!0}),r=e=>{n.value=e},i=()=>e instanceof HTMLElement?e:e.parentElement??e.host,a=()=>{i().dispatchEvent(Ti({context:t,observer:r}))};return a(),ua(a),fa(()=>{i().dispatchEvent(Ei({context:t,observer:r}))}),n}function Ja(e,t,n){let r=e instanceof HTMLElement?e:e.parentElement??e.host,i=Ui(),a=new Map,o=e=>{let r=e;r.detail?.context?.key===t.key&&(r.stopPropagation(),r.detail.observer(n),a.set(r.detail.observer,i.subscribe(r.detail.observer)))},s=e=>{let n=e;n.detail?.context?.key===t.key&&(n.stopPropagation(),a.get(n.detail.observer)?.(),a.delete(n.detail.observer))};return r.addEventListener(Ti.type,o),r.addEventListener(Ei.type,s),{set:e=>{i.next(e)},destroy:()=>{r.removeEventListener(Ti.type,o),r.removeEventListener(Ei.type,s);for(let e of a.values())e();a.clear()}}}var Ya=function(e){return e.node=`node`,e.attribute=`attribute`,e}({});function Xa(e,t){return Reflect.set(t,aa,e),t}function Za(e,t,n){let r={startNode:e,endNode:t};return Reflect.defineProperty(r,"helper",{value:n}),r}function Qa(e,t){return(...n)=>Xa(Ya.node,[e(...n),t])}var $a=function(e){return e.html=`html`,e.svg=`svg`,e.css=`css`,e}({}),eo=new Set(Object.values($a)),to=Symbol.for(`https://github.com/dineug/r-html#CSSSource`),no=new WeakMap,ro=new WeakMap,io=new Set([$a.svg]),ao=e=>`${Gi}_${e}_`,oo=e=>Bi(e)&&Bi(e.raw),so=e=>Vi(e)&&oo(e.strings)&&Bi(e.values)&&eo.has(Reflect.get(e,oa)??``),co=e=>so(e)&&e[oa]===$a.css,lo=(e,t=!0,n=!1)=>r=>t?!!r?.trimStart().startsWith(e):n?!!r?.trimEnd().endsWith(e):new RegExp(e).test(r??``),uo=lo(Ki),fo=lo(`.`),po=lo(`?`),mo=lo(`@`),ho=lo(`on`),go=lo(Gi,!1),_o=e=>go(e)&&Ji.test(e?.trim()??``),vo=({type:e,value:t})=>e===Xi.spread||e===Xi.directive||go(t),yo=e=>io.has(e),bo=e=>_o(e)?Xi.directive:uo(e)?Xi.spread:fo(e)?Xi.property:mo(e)||ho(e)?Xi.event:po(e)?Xi.boolean:Xi.attribute,xo=e=>uo(e)?e.substring(3):_o(e)?e:fo(e)||mo(e)||po(e)?e.substring(1):ho(e)?e.substring(2):e;function So(e){let t=[],n=qi.exec(e);for(;n;){let r=Number(n[1]);t.push([n[0],Number.isInteger(r)?r:-1]),n=qi.exec(e)}return t}var Co=Symbol(`https://github.com/dineug/r-html.git#hostBridge`);function wo(e,t){if(t instanceof ShadowRoot){let n=t.host;Reflect.set(e,Co,n)}return()=>{Reflect.deleteProperty(e,Co)}}function To(e){return Reflect.get(e,Co)??null}function Eo(e){return Hi(e)&&!zi(e)&&!Ri(e)||co(e)?String(e):``}var Do={createElement:(e,t=!1)=>t?document.createElementNS(`http://www.w3.org/2000/svg`,e):document.createElement(e),createText:e=>document.createTextNode(e),createMarker:e=>document.createComment(e),createFragment:()=>document.createDocumentFragment(),createEventBus:()=>document.createElement(`div`),insertBefore(e,t){let n=t.parentNode;n&&n.insertBefore(e,t)},appendChild(e,t){e.appendChild(t)},prependChild(e,t){e.prepend(t)},removeChild(e){e.parentNode?.removeChild(e)},parentOf:e=>e.parentNode,nextSiblingOf:e=>e.nextSibling,setText(e,t){e.data=t},setAttribute(e,t,n,r){e.setAttribute(t,r?Eo(n).trim():n)},removeAttribute(e,t){e.removeAttribute(t)},isHostNode:e=>e instanceof Node,isMarker:e=>e instanceof Comment,isText:e=>e instanceof Text,isElement:e=>e instanceof Element,isFragment:e=>e instanceof DocumentFragment,addEventListener(e,t,n,r){e.addEventListener(t,n,r)},removeEventListener(e,t,n,r){e.removeEventListener(t,n,r)},getRoot:e=>e.getRootNode(),createComponentContext(e,t){let n={host:document.body,get parentElement(){return e.parentElement},dispatchEvent:e=>t.dispatchEvent(e)},r=e.getRootNode();if(r instanceof ShadowRoot)n.host=r.host;else if(r instanceof DocumentFragment){let e=To(r);e&&(n.host=e)}return n},bridgeFragment(e,t){let n=Di(e,t),r=wo(e,t);return()=>{n(),r()}}};function Oo(e){"@babel/helpers - typeof";return Oo=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},Oo(e)}function ko(e,t){if(Oo(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(Oo(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function Ao(e){var t=ko(e,`string`);return Oo(t)==`symbol`?t:t+``}function jo(e,t,n){return(t=Ao(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Mo,No=function(e){return e.element=`element`,e.text=`text`,e.comment=`comment`,e}({});Mo=Symbol.iterator;var Po=class{constructor(e={}){jo(this,`type`,`comment`),jo(this,`value`,``),jo(this,`attrs`,void 0),jo(this,`parent`,null),jo(this,`children`,void 0),Object.assign(this,e)}*iterParent(){yield this,this.parent&&(yield*this.parent.iterParent())}*[Mo](){if(yield this,this.children)for(let e of this.children)yield*e}},Fo=e=>!!e&&e!==`false`;function Io(e){let t=({type:t,value:n},r=!1)=>t===No.element?e.createElement(n,r):t===No.text?e.createText(n):e.createMarker(n),n=(t,{type:n,name:r,value:i})=>{switch(n){case Xi.attribute:e.setAttribute(t,r,i??``,!1);break;case Xi.boolean:Fo(i)&&e.setAttribute(t,r,``,!1);break;case Xi.property:Reflect.set(t,r,i,t)}},r=(t,n)=>{e.insertBefore(t,n)},i=(t,n)=>{let r=e.parentOf(n);if(!r)return;let i=e.nextSiblingOf(n);i?e.insertBefore(t,i):e.appendChild(r,t)},a=t=>e.parentOf(t)?(e.removeChild(t),t):null,o=(t,n)=>{let r=[],i=e.nextSiblingOf(t);for(;i&&i!==n;)r.push(i),i=e.nextSiblingOf(i);return r},s=(e,t)=>{o(e,t).forEach(a)};return{...e,createNode:t,setAttr:n,insertBeforeNode:r,insertAfterNode:i,removeNode:a,rangeNodes:o,removeRange:s}}var D=Io(Do);D.setAttr,D.insertBeforeNode,D.insertAfterNode,D.removeNode,D.rangeNodes,D.removeRange;var Lo=D.isHostNode;function Ro(e,{type:t,name:n,value:r}){switch(t){case Xi.attribute:case Xi.property:Reflect.set(e,n,r);break;case Xi.boolean:Reflect.set(e,n,Fo(r))}}var zo=(e,t)=>e.length===t.length&&e.every((e,n)=>e===t[n]);function Bo(e,t){if(e===t)return!0;let n=Vi(e)?e:{},r=Vi(t)?t:{},i=Object.keys(n),a=Object.keys(r);return i.length===a.length&&a.every(e=>Reflect.get(n,e)===Reflect.get(r,e))}var Vo=e=>Bi(e)&&Pi(e[0])&&(Ri(e[1])||Ni(e[1])||Vi(e[1])),Ho=()=>{},Uo=e=>e instanceof HTMLElement,Wo=e=>e instanceof SVGElement,Go=e=>e instanceof Promise,Ko=new WeakMap,qo=new WeakMap,Jo=new WeakMap,Yo=new WeakMap,Xo=new WeakMap,Zo=new WeakMap,Qo=new WeakMap,$o=new WeakMap,es=new WeakMap,ts=class{constructor(e,{name:t,value:n},r=D){w(this,Ko,void 0),w(this,qo,void 0),w(this,Jo,void 0),w(this,Yo,void 0),w(this,Xo,[]),w(this,Zo,[]),w(this,Qo,void 0),w(this,$o,null),w(this,es,null),T(Ko,this,r),T(qo,this,e),T(Jo,this,t),T(Yo,this,n),T(Xo,this,So(n??``)),T(Qo,this,E(Xo,this).length===1&&(n??``).trim()===E(Xo,this)[0][0])}commit(e){let t=E(Xo,this).map(([t,n])=>e[n]);if(zo(E(Zo,this),t))return;let n=t[t.length-1];if(E(Jo,this)===`class`)this.classCommit(n);else if(E(Jo,this)===`style`)this.styleCommit(n);else if(E(Qo,this))E(Ko,this).setAttribute(E(qo,this),E(Jo,this),t[0],!0);else{let e=t.reduce((e,t,n)=>e.replace(new RegExp(E(Xo,this)[n][0]),Eo(t)),E(Yo,this)??``);E(Ko,this).setAttribute(E(qo,this),E(Jo,this),e.trim(),!1)}T(Zo,this,t)}classCommit(e){let t=E(qo,this);if(!Uo(t)&&!Wo(t))return;let n=E(Zo,this)[E(Zo,this).length-1];if(n===e||Bi(n)&&Bi(e)&&zo(n,e)||Vi(n)&&Vi(e)&&Bo(n,e))return;let r=[...t.classList],i=rs(e);if(zi(E(es,this)))T(es,this,r);else{let e=E(es,this),n=r.filter(t=>!e.includes(t)&&!i.includes(t));t.classList.remove(...n)}t.classList.add(...i)}styleCommit(e){let t=E(qo,this);if(!Uo(t)&&!Wo(t))return;let n=E(Zo,this)[E(Zo,this).length-1];if(Bo(n,e))return;let r=ns(t),i=Vi(e)?e:{};if(zi(E($o,this)))T($o,this,r);else{let e=E($o,this);Object.keys(r).filter(t=>!e[t]&&!i[t]).forEach(e=>t.style.removeProperty(e))}for(let e of Object.keys(i))t.style.setProperty(e,i[e])}};function ns(e){let t={};for(let n=0;n<e.style.length;n++){let r=e.style.item(n);t[r]=e.style.getPropertyValue(r)}return t}function rs(e,t=[]){if(!e)return t;if(co(e))return t.push(Eo(e)),t;if(Hi(e))t.push(Eo(e));else if(ji(e)){if(Bi(e))for(let n=0;n<e.length;n++)e[n]&&rs(e[n],t);else for(let n in e)e[n]&&t.push(Eo(n))}return t}var is=new WeakMap,as=new WeakMap,os=new WeakMap,ss=new WeakMap,cs=new WeakMap,ls=class{constructor(e,{name:t,value:n},r=D){w(this,is,void 0),w(this,as,void 0),w(this,os,void 0),w(this,ss,[]),w(this,cs,[]),T(is,this,r),T(as,this,e),T(os,this,t),T(ss,this,So(n??``))}commit(e){let t=E(ss,this).map(([t,n])=>e[n]);if(zo(E(cs,this),t))return;let n=t[t.length-1];Fo(n)?E(is,this).setAttribute(E(as,this),E(os,this),``,!1):E(is,this).removeAttribute(E(as,this),E(os,this)),T(cs,this,t)}},us=e=>Bi(e)&&Reflect.get(e,aa)===Ya.attribute,ds=new WeakMap,fs=new WeakMap,ps=new WeakMap,ms=new WeakMap,hs=new WeakMap,gs=class{constructor(e,{name:t}){w(this,ds,void 0),w(this,fs,void 0),w(this,ps,null),w(this,ms,null),w(this,hs,null),T(ds,this,e),T(fs,this,So(t)[0])}commit(e){let[,t]=E(fs,this),n=e[t];if(!us(n))return;let[r,i]=n;if(E(ps,this)!==i)E(hs,this)?.call(this),T(ms,this,i({node:E(ds,this)})),T(ps,this,i),T(hs,this,E(ms,this)?.call(this,r));else{let e=E(ms,this)?.call(this,r);E(hs,this)!==e&&(E(hs,this)?.call(this),T(hs,this,e))}}destroy(){E(hs,this)?.call(this)}},_s=new WeakMap,vs=new WeakMap,ys=new WeakMap,bs=new WeakMap,xs=new WeakMap,Ss=class{constructor(e,{name:t,value:n},r=D){w(this,_s,void 0),w(this,vs,void 0),w(this,ys,void 0),w(this,bs,[]),w(this,xs,[]),T(_s,this,r),T(vs,this,e),T(ys,this,t),T(bs,this,So(n??``))}commit(e){let t=E(bs,this).map(([t,n])=>e[n]).filter(e=>Pi(e)||Vo(e));zo(E(xs,this),t)||(this.clear(),t.forEach(e=>{let[t,n]=Cs(e);E(_s,this).addEventListener(E(vs,this),E(ys,this),t,n)}),T(xs,this,t))}clear(){E(xs,this).forEach(e=>{let[t,n]=Cs(e);E(_s,this).removeEventListener(E(vs,this),E(ys,this),t,n)})}destroy(){this.clear()}};function Cs(e){return Pi(e)?[e,void 0]:e}var ws=new WeakMap,Ts=new WeakMap,Es=new WeakMap,Ds=new WeakMap,Os=class{constructor(e,{name:t,value:n}){w(this,ws,void 0),w(this,Ts,void 0),w(this,Es,[]),w(this,Ds,[]),T(ws,this,e),T(Ts,this,t),T(Es,this,So(n??``))}commit(e){let t=E(Es,this).map(([t,n])=>e[n]);if(zo(E(Ds,this),t))return;let n=t[t.length-1];Reflect.set(E(ws,this),E(Ts,this),n,E(ws,this)),T(Ds,this,t)}},ks=new WeakMap,As=new WeakMap,js=new WeakMap,Ms=class{constructor(e,{name:t}){w(this,ks,void 0),w(this,As,void 0),w(this,js,null),T(ks,this,e),T(As,this,So(t)[0])}commit(e){let[,t]=E(As,this),n=e[t];!Vi(n)||Bo(E(js,this),n)||(Object.keys(n).forEach(e=>Reflect.set(E(ks,this),e,n[e],E(ks,this))),T(js,this,n))}},Ns=(e,t,n=D)=>t.type===Xi.attribute?new ts(e,t,n):t.type===Xi.boolean?new ls(e,t,n):t.type===Xi.event?new Ss(e,t,n):t.type===Xi.property?new Os(e,t):t.type===Xi.spread?new Ms(e,t):new gs(e,t),Ps=new WeakMap,Fs=new WeakMap,Is=new WeakMap,Ls=new WeakMap,Rs=new WeakMap,zs=class{constructor(e,{value:t},n=D){w(this,Ps,void 0),w(this,Fs,void 0),w(this,Is,void 0),w(this,Ls,[]),w(this,Rs,[]),T(Ps,this,n),T(Fs,this,e),T(Is,this,t),Ii(t)&&T(Ls,this,So(t))}commit(e){let t=E(Ls,this).map(([t,n])=>e[n]);if(zo(E(Rs,this),t))return;T(Rs,this,t);let n=E(Rs,this).reduce((e,t,n)=>e.replace(new RegExp(E(Ls,this)[n][0]),Hi(t)&&!zi(t)&&!Ri(t)?String(t):``),E(Is,this)??``);E(Ps,this).setText(E(Fs,this),n)}},Bs=new WeakMap,Vs=new WeakMap,Hs=new WeakMap,Us=new WeakMap,Ws=class{constructor(e,{name:t,value:n}){w(this,Bs,void 0),w(this,Vs,void 0),w(this,Hs,[]),w(this,Us,[]),T(Bs,this,e),T(Vs,this,t),T(Hs,this,So(n??``))}commit(e){let t=E(Hs,this).map(([t,n])=>e[n]);if(zo(E(Us,this),t))return;let n=t[t.length-1];Reflect.set(E(Bs,this),E(Vs,this),n),T(Us,this,t)}},Gs=function(e){return e.create=`create`,e.move=`move`,e}({});function Ks(e){let t=[],n=new Map;return e.forEach(({type:e,value:r},i)=>{let a={type:e,key:e===Mc.templateLiterals?r.strings:r};t.push(a),n.set(a,i)}),{items:t,itemToIndex:n}}function qs(e){let t=[],n=new Map;return e.forEach((e,r)=>{let i=Hc(e),a={type:i,key:i===Mc.templateLiterals?e.strings:e};t.push(a),n.set(a,r)}),{items:t,itemToIndex:n}}function Js(e,t,n){let r=!!n?.strict,i={update:[],delete:[]},a=new Set,o=[],s=e.items,c=t.items;return s.forEach((e,t)=>{let n=c.findIndex((t,n)=>e.type===t.type&&e.key===t.key&&!a.has(n));n===-1?r?i.delete.push({from:t}):o.push(e):(a.add(n),i.update.push({action:`move`,from:t,to:n}))}),o.forEach(n=>{let r=e.itemToIndex.get(n),o=c.find((e,t)=>n.type===e.type&&!a.has(t));if(o){let e=t.itemToIndex.get(o);a.add(e),i.update.push({action:`move`,from:r,to:e})}else i.delete.push({from:r})}),c.forEach((e,n)=>{a.has(n)||i.update.push({action:`create`,from:-1,to:t.itemToIndex.get(e)})}),i.update.sort((e,t)=>e.to-t.to),i}var Ys=new WeakMap,Xs=new WeakMap,Zs=new WeakMap,Qs=new WeakMap,$s=class{constructor(e,t,n=D){w(this,Ys,void 0),w(this,Xs,void 0),w(this,Zs,void 0),w(this,Qs,[]),T(Xs,this,e),T(Zs,this,t),T(Ys,this,n)}commit(e){let t=Js(Ks(E(Qs,this)),qs(e)),n={length:e.length};t.update.forEach(({action:t,from:r,to:i})=>{switch(t){case Gs.create:let t=E(Ys,this).createMarker(``);i===0?E(Ys,this).insertAfterNode(t,E(Xs,this)):E(Qs,this).length?E(Ys,this).insertAfterNode(t,n[i-1]?n[i-1].endNode:E(Qs,this)[i-1].endNode):E(Ys,this).insertBeforeNode(t,E(Zs,this)),n[i]=new nc(t,e[i],E(Ys,this));break;case Gs.move:if(n[i]=E(Qs,this)[r],i===r)return;i===0?E(Qs,this)[r].insert(`after`,E(Xs,this)):E(Qs,this)[r].insert(`after`,n[i-1]?n[i-1].endNode:E(Qs,this)[i-1].endNode)}}),t.delete.forEach(({from:e})=>E(Qs,this)[e].destroy()),T(Qs,this,Array.from(n)),E(Qs,this).forEach((t,n)=>t.commit(e[n]))}destroy(){E(Qs,this).forEach(e=>e.destroy())}},ec=new WeakMap,tc=new WeakMap,nc=class{constructor(e,t,n=D){w(this,ec,void 0),w(this,tc,void 0),jo(this,`startNode`,void 0),jo(this,`endNode`,void 0),jo(this,`type`,void 0),jo(this,`value`,void 0),T(tc,this,n),this.startNode=n.createMarker(``),this.endNode=n.createMarker(``),n.insertBeforeNode(this.startNode,e),n.insertAfterNode(this.endNode,e),n.removeNode(e),this.value=t,this.type=Hc(t),T(ec,this,Kc(this.type,this.startNode,this.endNode,n))}commit(e){E(ec,this).commit(e),this.value=e}insert(e,t){let n=[this.startNode,...E(tc,this).rangeNodes(this.startNode,this.endNode),this.endNode];e===`before`?n.forEach(e=>E(tc,this).insertBeforeNode(e,t)):n.reverse().forEach(e=>E(tc,this).insertAfterNode(e,t))}destroy(){E(ec,this).destroy?.(),E(tc,this).removeRange(this.startNode,this.endNode),E(tc,this).removeNode(this.startNode),E(tc,this).removeNode(this.endNode)}},rc=new WeakMap,ic=new WeakMap,ac=new WeakMap,oc=new WeakMap,sc=new WeakMap,cc=new WeakMap,lc=class{constructor(e,t,n=D){w(this,rc,void 0),w(this,ic,void 0),w(this,ac,void 0),w(this,oc,null),w(this,sc,null),w(this,cc,void 0),T(ic,this,e),T(ac,this,t),T(rc,this,n)}commit(e){if(!Nc(e))return;let[t,n]=e;if(E(oc,this)!==n)this.clear(),T(sc,this,n(Za(E(ic,this),E(ac,this),E(rc,this)))),T(oc,this,n),T(cc,this,E(sc,this)?.call(this,t));else{let e=E(sc,this)?.call(this,t);E(cc,this)!==e&&(this.clear(),T(cc,this,e))}}clear(){E(cc,this)?.call(this),E(rc,this).removeRange(E(ic,this),E(ac,this))}destroy(){this.clear()}},uc=class{constructor(e,t){}commit(e){}},dc=new WeakMap,fc=new WeakMap,pc=new WeakMap,mc=class{constructor(e,t,n=D){w(this,dc,void 0),w(this,fc,void 0),w(this,pc,null),T(fc,this,t),T(dc,this,n)}commit(e){E(pc,this)!==e&&(E(pc,this)&&E(dc,this).removeNode(E(pc,this)),E(dc,this).insertBeforeNode(e,E(fc,this)),T(pc,this,e))}},hc=new WeakMap,gc=new WeakMap,_c=new WeakMap,vc=new WeakMap,yc=new WeakMap,bc=new WeakMap,xc=class{constructor(e,t,n=D){w(this,hc,void 0),w(this,gc,void 0),w(this,_c,void 0),w(this,vc,null),w(this,yc,null),w(this,bc,Ho),T(gc,this,e),T(_c,this,t),T(hc,this,n)}commit(e){E(vc,this)!==e&&(this.clear(),Go(e)&&this.promiseCommit(e))}promiseCommit(e){let[t,n]=Sc(e);T(bc,this,n),t.then(e=>{let t=Hc(e);T(yc,this,Kc(t,E(gc,this),E(_c,this),E(hc,this))),E(yc,this)?.commit(e)}),T(vc,this,e)}partClear(){E(yc,this)?.destroy?.(),E(hc,this).removeRange(E(gc,this),E(_c,this))}clear(){E(bc,this).call(this),this.partClear(),T(bc,this,Ho)}destroy(){this.clear()}};function Sc(e){let t=Ho,n=new Promise((e,n)=>t=n);return[Promise.race([n,e]),()=>t()]}var Cc=new WeakMap,wc=new WeakMap,Tc=new WeakMap,Ec=class{constructor(e,t,n=D){w(this,Cc,void 0),w(this,wc,void 0),w(this,Tc,null),T(Cc,this,n),T(wc,this,n.createText(``)),n.insertAfterNode(E(wc,this),e)}commit(e){E(Tc,this)!==e&&(E(Cc,this).setText(E(wc,this),zi(e)||Ri(e)?``:String(e)),T(Tc,this,e))}},Dc=new WeakMap,Oc=new WeakMap,kc=new WeakMap,Ac=new WeakMap,jc=class{constructor(e,t,n=D){w(this,Dc,void 0),w(this,Oc,void 0),w(this,kc,void 0),w(this,Ac,null),T(Oc,this,e),T(kc,this,t),T(Dc,this,n)}commit(e){let{strings:t,values:n}=e;E(Ac,this)&&!E(Ac,this).equalStrings(t)&&(E(Ac,this).destroy(),T(Ac,this,null)),E(Ac,this)||(T(Ac,this,new Dl(e,E(Oc,this),E(kc,this),E(Dc,this))),E(Ac,this).insert(`before`,E(kc,this))),E(Ac,this).commit(n)}destroy(){E(Ac,this)?.destroy()}},Mc=function(e){return e.primitive=`primitive`,e.templateLiterals=`templateLiterals`,e.array=`array`,e.node=`node`,e.object=`object`,e.function=`function`,e.directive=`directive`,e}({}),Nc=e=>Bi(e)&&Reflect.get(e,aa)===Ya.node,Pc=e=>t=>t instanceof e,Fc=Pc(Ec),Ic=Pc(jc),Lc=Pc($s),Rc=Pc(mc),zc=Pc(xc),Bc=Pc(uc),Vc=Pc(lc),Hc=e=>Hi(e)?`primitive`:so(e)?`templateLiterals`:Nc(e)?`directive`:Bi(e)?`array`:Lo(e)?`node`:Pi(e)?`function`:`object`,Uc={primitive:Fc,templateLiterals:Ic,array:Lc,node:Rc,function:Bc,object:zc,directive:Vc},Wc={primitive:Ec,templateLiterals:jc,array:$s,node:mc,function:uc,object:xc,directive:lc},Gc=(e,t)=>Uc[e](t),Kc=(e,t,n,r=D)=>new Wc[e](t,n,r),qc=new WeakMap,Jc=new WeakMap,Yc=new WeakMap,Xc=new WeakMap,Zc=new WeakMap,Qc=new WeakMap,$c=new WeakMap,el=new WeakMap,tl=new WeakMap,nl=new WeakMap,rl=new WeakMap,il=new WeakMap,al=class{constructor(e,t,n,r,i=D){w(this,qc,void 0),w(this,Jc,void 0),w(this,Yc,void 0),w(this,Xc,void 0),w(this,Zc,void 0),w(this,Qc,[]),w(this,$c,[]),w(this,el,null),w(this,tl,Ma({},{shallow:!0})),w(this,nl,null),w(this,rl,null),w(this,il,void 0),T(qc,this,i),T(il,this,i.createEventBus()),T(Jc,this,e),T(Yc,this,t),T(Zc,this,n),T(Xc,this,So(n.value)[0]),n.staticAttrs&&n.staticAttrs.forEach(e=>Ro(E(tl,this),e)),n.attrs?.forEach(e=>{e.type===Xi.directive?E(Qc,this).push(e):e.type===Xi.spread?r.push(new Ms(E(tl,this),e)):e.type===Xi.event?r.push(new Ss(E(il,this),e,i)):r.push(new Ws(E(tl,this),e))})}createContext(){return E(qc,this).createComponentContext(E(Jc,this),E(il,this))}commit(e){let[,t]=E(Xc,this),n=e[t];if(!Pi(n)||E(nl,this)===n){E($c,this).forEach(t=>t.commit(e));return}let r=this.createContext();this.clear(),ca(this);let i=n.call(r,E(tl,this),r);ca(null),E(Qc,this).length&&E($c,this).push(...E(Qc,this).map(e=>new gs(r,e))),pa(this,Zi);let a=!1;T(rl,this,Da(()=>{let e=i(),t=Hc(e);Gc(t,E(el,this))||(this.partClear(),T(el,this,Kc(t,E(Jc,this),E(Yc,this),E(qc,this)))),pa(this,a?ta:ea),E(el,this)?.commit(e),a?pa(this,ra):(pa(this,na),a=!0)})),E($c,this).forEach(t=>t.commit(e)),pa(this,Qi),T(nl,this,n)}partClear(){E(el,this)?.destroy?.(),E(qc,this).removeRange(E(Jc,this),E(Yc,this))}clear(){E(qc,this).removeRange(E(Jc,this),E(Yc,this)),pa(this,$i),E($c,this).forEach(e=>e.destroy?.()),E(rl,this)?.call(this),T($c,this,[]),T(rl,this,null),ma(this)}destroy(){this.clear(),this.partClear()}},ol,sl,cl,ll,ul=ya((ol=new WeakMap,sl=new WeakMap,cl=new WeakMap,ll=new WeakMap,class{constructor(e,t,n,r=D){w(this,ol,void 0),w(this,sl,void 0),w(this,cl,void 0),w(this,ll,void 0),T(ol,this,r),T(sl,this,r.createMarker(``)),T(cl,this,r.createMarker(``)),T(ll,this,new al(E(sl,this),E(cl,this),t,n,r)),r.insertBeforeNode(E(sl,this),e),r.insertAfterNode(E(cl,this),e),r.removeNode(e)}commit(e){E(ll,this).commit(e)}destroy(){E(ll,this).destroy?.(),E(ol,this).removeNode(E(sl,this)),E(ol,this).removeNode(E(cl,this))}})),dl=new WeakMap,fl=new WeakMap,pl=new WeakMap,ml=new WeakMap,hl=new WeakMap,gl=new WeakMap,_l=class{constructor(e,{value:t},n=D){w(this,dl,void 0),w(this,fl,void 0),w(this,pl,void 0),w(this,ml,void 0),w(this,hl,null),w(this,gl,null),T(dl,this,n),T(fl,this,n.createMarker(``)),T(pl,this,n.createMarker(``)),T(ml,this,So(t)[0]),n.insertBeforeNode(E(fl,this),e),n.insertAfterNode(E(pl,this),e),n.removeNode(e)}commit(e){let[,t]=E(ml,this),n=e[t];if(E(hl,this)===n)return;let r=Hc(n);Gc(r,E(gl,this))||(zi(E(gl,this))||this.clear(),T(gl,this,Kc(r,E(fl,this),E(pl,this),E(dl,this)))),E(gl,this)?.commit(n),T(hl,this,n)}clear(){E(gl,this)?.destroy?.(),E(dl,this).removeRange(E(fl,this),E(pl,this))}destroy(){this.clear(),E(dl,this).removeNode(E(fl,this)),E(dl,this).removeNode(E(pl,this))}};function vl(e=[],t,n=!1,r=[],i=D){return e.forEach(e=>{if(e.isComponent){let n=i.createMarker(``);i.appendChild(t,n),r.push(new ul(n,e,r,i));return}let a=i.createNode(e,e.isSvg||n);i.appendChild(t,a),i.isMarker(a)&&e.isMarker&&r.push(new zs(a,e,i)),i.isText(a)&&e.isMarkerOnly&&r.push(new _l(a,e,i)),i.isElement(a)&&(e.staticAttrs&&e.staticAttrs.forEach(e=>i.setAttr(a,e)),e.attrs&&r.push(...e.attrs.map(e=>Ns(a,e,i))),e.children&&vl(e.children,a,e.isSvg||n,r,i))}),r}function yl(e,t=!1,n=D){let r=n.createFragment();return[r,vl(e.children,r,t,[],n)]}var bl=new WeakMap,xl=new WeakMap,Sl=new WeakMap,Cl=new WeakMap,wl=new WeakMap,Tl=new WeakMap,El=new WeakMap,Dl=class{constructor(e,t,n,r=D){if(w(this,bl,void 0),w(this,xl,void 0),w(this,Sl,void 0),w(this,Cl,null),w(this,wl,[]),w(this,Tl,void 0),w(this,El,!1),T(bl,this,r),T(xl,this,r.createMarker(``)),T(Sl,this,r.createMarker(``)),T(Tl,this,e.strings),e[oa]!==$a.html&&e[oa]!==$a.svg)return;let[i,a]=yl(e.template.node,yo(e[oa]),r);T(Cl,this,i),T(wl,this,a),t&&n?(T(xl,this,t),T(Sl,this,n),T(El,this,!0)):(r.prependChild(i,E(xl,this)),r.appendChild(i,E(Sl,this)))}equalStrings(e){return E(Tl,this)===e}commit(e){E(wl,this).forEach(t=>t.commit(e))}insert(e,t){E(Cl,this)&&(e===`before`?E(bl,this).insertBeforeNode(E(Cl,this),t):e===`after`?E(bl,this).insertAfterNode(E(Cl,this),t):E(bl,this).appendChild(t,E(Cl,this)),T(Cl,this,null))}destroy(){E(wl,this).forEach(e=>e.destroy?.()),E(bl,this).removeRange(E(xl,this),E(Sl,this)),E(El,this)||(E(bl,this).removeNode(E(xl,this)),E(bl,this).removeNode(E(Sl,this)))}},Ol=function(e){return e.string=`string`,e.whiteSpace=`whiteSpace`,e.lt=`lt`,e.gt=`gt`,e.slash=`slash`,e.equal=`equal`,e}({}),kl={doubleQuote:`"`,singleQuote:`'`,whiteSpace:/\s/,string:/\S/,breakString:/<|>|=/,lt:`<`,gt:`>`,slash:`/`,equal:`=`,hyphen:`-`,exclamationPoint:`!`},Al=e=>t=>e===t,jl=e=>t=>e.test(t),Ml={doubleQuote:Al(kl.doubleQuote),singleQuote:Al(kl.singleQuote),whiteSpace:jl(kl.whiteSpace),string:jl(kl.string),breakString:jl(kl.breakString),lt:Al(kl.lt),gt:Al(kl.gt),slash:Al(kl.slash),equal:Al(kl.equal),hyphen:Al(kl.hyphen),exclamationPoint:Al(kl.exclamationPoint)},Nl=e=>t=>Ml.lt(e[t])&&Ml.exclamationPoint(e[t+1])&&Ml.hyphen(e[t+2])&&Ml.hyphen(e[t+3]);function Pl(e){let t=[],n=0,r=()=>n<e.length,i=Nl(e),a=(o=`text`)=>{for(;r();){let s=e[n];if(Ml.whiteSpace(s)){let i=``;for(;r()&&Ml.whiteSpace(s);)i+=s,s=e[++n];o!==`element`&&t.push({type:`whiteSpace`,value:i});continue}if(o===`element`){if(Ml.lt(s)){t.push({type:`lt`,value:s}),n++;continue}if(Ml.gt(s)){t.push({type:`gt`,value:s}),n++;break}if(Ml.slash(s)){t.push({type:`slash`,value:s}),n++;continue}if(Ml.equal(s)){t.push({type:`equal`,value:s}),n++;continue}if(Ml.doubleQuote(s)){let i=``;for(s=e[++n];r()&&!Ml.doubleQuote(s);)i+=s,s=e[++n];t.push({type:`string`,value:i}),n++;continue}if(Ml.singleQuote(s)){let i=``;for(s=e[++n];r()&&!Ml.singleQuote(s);)i+=s,s=e[++n];t.push({type:`string`,value:i}),n++;continue}}else if(o===`comment`){if(Ml.lt(s)){t.push({type:`lt`,value:s}),n++;continue}if(Ml.gt(s)){t.push({type:`gt`,value:s}),n++;break}}else if(Ml.lt(s)){a(i(n)?`comment`:`element`);continue}if(Ml.string(s)){let i=``;for(;r()&&Ml.string(s)&&!Ml.breakString(s);)i+=s,s=e[++n];t.push({type:`string`,value:i});continue}n++}};return a(),t}var Fl=/^(area|base|br|col|embed|hr|img|input|keygen|link|meta|param|source|track|wbr)$/i,Il=e=>t=>n=>r=>n[r]?n[r][e]===t:!1,Ll=Il(`type`),Rl=Il(`value`),zl=Ll(Ol.lt),Bl=Ll(Ol.gt),Vl=Ll(Ol.slash),Hl=Ll(Ol.equal),Ul=Ll(Ol.string),Wl=Ll(Ol.whiteSpace),Gl=Rl(`!--`),Kl=Rl(`--`),ql=e=>{let t=zl(e),n=Ul(e);return e=>t(e)&&n(e+1)},Jl=e=>{let t=zl(e),n=Vl(e),r=Ul(e),i=Bl(e);return e=>t(e)&&n(e+1)&&r(e+2)&&i(e+3)},Yl=e=>{let t=zl(e),n=Vl(e),r=Bl(e);return e=>t(e)&&n(e+1)&&n(e+2)&&r(e+3)},Xl=e=>{let t=Vl(e),n=Bl(e);return e=>t(e)&&n(e+1)},Zl=e=>Fl.test(e),Ql=e=>{let t=zl(e),n=Ul(e),r=Gl(e);return e=>t(e)&&n(e+1)&&r(e+1)},$l=e=>{let t=Ul(e),n=Kl(e),r=Bl(e);return e=>t(e)&&n(e)&&r(e+1)},eu=e=>t=>n=>{n&&(t[e]?t[e]?.push(n):t[e]=[n])},tu=eu(`attrs`),nu=eu(`children`);function ru(e){let t=new Po({type:No.element,value:`template`,children:[]}),n=0,r=()=>n<e.length,i=ql(e),a=Jl(e),o=Yl(e),s=Xl(e),c=Ql(e),l=$l(e),u=zl(e),d=Bl(e),f=Hl(e),p=Wl(e),m=Ul(e),h=()=>{let t=e[n],r={name:t.value};return t=e[++n],f(n)&&(t=e[++n],m(n)&&(r.value=t.value,n++)),r},g=t=>{let f=e[n];if(p(n)||m(n)){let i=f.value;for(f=e[++n];r()&&!u(n);)i+=f.value,f=e[++n];return i=i.trim(),i.length?new Po({parent:t,type:No.text,value:i}):null}if(c(n)){let i=``;for(n+=2,f=e[n];r()&&!l(n);)i+=f.value,f=e[++n];return l(n)&&(n+=2),new Po({parent:t,type:No.comment,value:i})}if(i(n)){f=e[++n];let i=Zl(f.value),c=new Po({parent:t,type:No.element,value:f.value.toLowerCase()});for(n++;r()&&!d(n)&&!s(n);){if(m(n)){tu(c)(h());continue}n++}if(s(n))return n+=2,c;for(f=e[++n];r()&&!a(n)&&!o(n)&&!i;)nu(c)(g(c));return(a(n)||o(n))&&(n+=4),c}return n++,null};for(;r();)nu(t)(g(t));return t}var iu=e=>ru(Pl(e)),au=(e,t)=>e.reduce((e,n)=>{let r=t(n),i=e[r];return i?i.push(n):e[r]=[n],e},Object.create(null)),ou=Symbol.iterator,su=class e{get isMarker(){return go(this.value)}get isMarkerOnly(){return _o(this.value)}get isSvg(){return this.type===No.element&&/^svg$/i.test(this.value)}get isComponent(){return this.type===No.element&&this.isMarkerOnly}constructor(t,n=null){if(jo(this,`type`,No.comment),jo(this,`value`,``),jo(this,`staticAttrs`,void 0),jo(this,`attrs`,void 0),jo(this,`parent`,null),jo(this,`children`,void 0),this.type=t.type,this.value=t.value,this.parent=n,t.attrs){let[e,n]=uu(t.attrs);e.length&&(this.staticAttrs=e),n.length&&(this.attrs=n)}t.children&&(this.children=t.children.map(t=>new e(t,this)))}insert(e,t,n){if(this.children){let r=e===`before`?0:1;this.children.includes(n)&&this.children.splice(this.children.indexOf(n)+r,0,t)}else this.children=[t]}*iterParent(){yield this,this.parent&&(yield*this.parent.iterParent())}*[ou](){if(yield this,this.children)for(let e of this.children)yield*e}};function cu(e){let t=new su(e);for(let e of t)e.type===No.text&&!_o(e.value)&&lu(e);return t}function lu(e){let t=So(e.value);e.value.replace(qi,Gi).split(Gi).reduce((n,r,i)=>(i<t.length?n.push(new su(new Po({type:No.text,value:r}),e.parent),new su(new Po({type:No.text,value:t[i][0]}),e.parent)):n.push(new su(new Po({type:No.text,value:r}),e.parent)),n),[]).filter(e=>e.value!==``&&!(!e.value.trim()&&Yi.test(e.value))).reverse().forEach((t,n,{length:r})=>n===r-1?e.value=t.value:e.parent&&e.parent.insert(`after`,t,e))}function uu(e=[]){let t=au(e,e=>xo(e.name));return Object.keys(t).map(e=>t[e]).reduce((e,t)=>{let[n,r]=e,i=t[t.length-1],a=bo(i.name);if(a===Xi.event)r.push(...t.filter(e=>!!e.value).map(e=>({type:bo(e.name),name:xo(e.name),value:e.value})));else if(a===Xi.attribute){let e=t.filter(e=>!!e.value).map(e=>e.value).join(` `),o={type:a,name:xo(i.name)};e&&(o.value=e),vo(o)?r.push(o):n.push(o)}else{let e={type:a,name:xo(i.name)};i.value&&(e.value=i.value),vo(e)?r.push(e):n.push(e)}return e},[[],[]])}var du=e=>(t,...n)=>{let r={strings:t,values:n,[oa]:e};if(no.has(t))return r.template=no.get(t),r;let i=cu(iu(t.reduce((e,t,r)=>(r<n.length?e.push(t,ao(r)):e.push(t),e),[]).join(``)));return r.template=Object.freeze({node:i}),no.set(t,r.template),r},fu=du($a.html),pu=du($a.svg);function mu(e){let t=Io(e),n=new WeakMap;return{html:fu,svg:pu,render:(e,r)=>{if(!so(r)){n.has(e)&&(n.get(e)?.destroy(),n.delete(e));return}let{strings:i,values:a}=r,o=n.get(e);if(o?.equalStrings(i))o?.commit(a);else{let i=new Dl(r,void 0,void 0,t);o?.destroy(),n.set(e,i),i.insert(`children`,e),i.commit(a)}}}}var hu=Qa((e,t,n)=>(e.length,[e,t,n]),({startNode:e,endNode:t,helper:n=D})=>{let r=[],i=()=>{r.forEach(e=>e.destroy())};return([a,o,s])=>{let c=bu(a,o,s),l=c.values,u=Js(yu(r),c,{strict:!0}),d={length:l.length};return u.update.forEach(({action:i,from:a,to:o})=>{switch(i){case Gs.create:let i=n.createMarker(``);o===0?n.insertAfterNode(i,e):r.length?n.insertAfterNode(i,d[o-1]?d[o-1].endNode:r[o-1].endNode):n.insertBeforeNode(i,t),d[o]=new vu(i,l[o].value,l[o].key,n);break;case Gs.move:if(d[o]=r[a],o===a)return;o===0?r[a].insert(`after`,e):r[a].insert(`after`,d[o-1]?d[o-1].endNode:r[o-1].endNode)}}),u.delete.forEach(({from:e})=>r[e].destroy()),r=Array.from(d),r.forEach((e,t)=>e.commit(l[t].value)),i}}),gu=new WeakMap,_u=new WeakMap,vu=class{constructor(e,t,n,r=D){w(this,gu,void 0),w(this,_u,void 0),jo(this,`startNode`,void 0),jo(this,`endNode`,void 0),jo(this,`type`,void 0),jo(this,`key`,void 0),T(_u,this,r),this.startNode=r.createMarker(``),this.endNode=r.createMarker(``),r.insertBeforeNode(this.startNode,e),r.insertAfterNode(this.endNode,e),r.removeNode(e),this.key=n,this.type=Hc(t),T(gu,this,Kc(this.type,this.startNode,this.endNode,r))}commit(e){E(gu,this).commit(e)}insert(e,t){let n=[this.startNode,...E(_u,this).rangeNodes(this.startNode,this.endNode),this.endNode];e===`before`?n.forEach(e=>E(_u,this).insertBeforeNode(e,t)):n.reverse().forEach(e=>E(_u,this).insertAfterNode(e,t))}destroy(){E(gu,this).destroy?.(),E(_u,this).removeRange(this.startNode,this.endNode),E(_u,this).removeNode(this.startNode),E(_u,this).removeNode(this.endNode)}};function yu(e){let t=[],n=new Map;return e.forEach(({type:e,key:r},i)=>{let a={type:e,key:r};t.push(a),n.set(a,i)}),{items:t,itemToIndex:n}}function bu(e,t,n){let r=[],i=new Map,a=[];return e.forEach((e,o,s)=>{let c={key:t(e),value:n(e,o,s)},l={type:Hc(c.value),key:c.key};a.push(c),r.push(l),i.set(l,o)}),{items:r,itemToIndex:i,values:a}}var xu={vCSSStyleSheetMap:new Map,hostContextMap:new Map,globalOrder:[],orderedSheets:null},Su=globalThis.ShadowRoot&&`adoptedStyleSheets`in Document.prototype&&`replace`in CSSStyleSheet.prototype,Cu=null;function wu(){return Cu===null&&(Cu=Tu()),Cu}function Tu(){try{let e=document.createElement(`div`).attachShadow({mode:`open`}),t=new CSSStyleSheet;return e.adoptedStyleSheets.push(t),e.adoptedStyleSheets.length===1&&e.adoptedStyleSheets[0]===t}catch{return!1}}function Eu(){return xu}function Du(e){let t=Eu(),{identifier:n,cssText:r,mode:i}=e;if(!r||t.vCSSStyleSheetMap.has(n))return n;let a=Su?new CSSStyleSheet:null,o=Su?null:document.createElement(`style`);a?a.replaceSync(r):o&&(o.textContent=r);let s={identifier:n,cssText:r,mode:i,sheet:a,styleElement:o};return t.vCSSStyleSheetMap.set(n,s),Mu(s),n}function Ou(e){let t=[],n=[];for(let r of e.vCSSStyleSheetMap.values())(r.mode===`global`?t:n).push(r);if(e.globalOrder.length>0){let n=({identifier:t})=>{let n=e.globalOrder.indexOf(t);return n===-1?e.globalOrder.length:n};t.sort((e,t)=>n(e)-n(t))}return[...t,...n]}function ku(e){return e.orderedSheets||=Ou(e).map(({sheet:e})=>e).filter(Boolean),e.orderedSheets}function Au(e,t){e.adoptedStyleSheets=[...t]}function ju(){let e=Eu(),t=ku(e);e.hostContextMap.forEach((e,n)=>Au(n,t))}function Mu(e){if(!Su){Nu();return}let t=Eu(),{mode:n,sheet:r}=e,i=t.orderedSheets;if(!r||n===`global`||!i){t.orderedSheets=null,ju();return}if(i.push(r),!wu()){ju();return}t.hostContextMap.forEach((e,t)=>t.adoptedStyleSheets.push(r))}function Nu(){let e=Eu(),t=Ou(e);Array.from(e.hostContextMap).forEach(([e,{styleElements:n}])=>{t.forEach((r,i)=>{if(n.has(r)||!r.styleElement)return;let a=document.importNode(r.styleElement,!0),o=Pu(t,i+1,n);o?e.insertBefore(a,o):e.appendChild(a),n.set(r,a)})})}function Pu(e,t,n){for(let r=t;r<e.length;r++){let t=n.get(e[r]);if(t)return t}return null}function O(e){function t(t){return{type:e,payload:t}}return t.toString=()=>`${e}`,t.type=e,t}function*Fu(e,t,n){for(let r of n)r?.[Symbol.iterator]?yield*Fu(e,t,r):Pi(r)?yield*Fu(e,t,r(e,t)):yield r}var Iu=(e,t,n)=>[...Fu(e,t,n)],Lu=(...e)=>t=>e.reduce((e,t)=>t(e),t);function*Ru(e){yield e}var zu=function*(e){for(let t of e)t.length&&(yield t)};function Bu({context:e,state:t,reducers:n,enableObservable:r=!0}){let i=r?Ma(t):t,a=Ui(),o=Ui(),s=Lu(zu),c=t=>{Oi(Reflect.get(n,t.type,n),i,t,e)},l=(...t)=>{let n=Iu(i,e,t);a.next(n)},u=(...e)=>{ki(()=>l(...e))},d=a.subscribe(e=>{let t=s(Ru(e));for(let e of t)o.next(e)}),f=o.subscribe(e=>e.forEach(c));return{context:e,state:i,dispatch:u,dispatchSync:l,subscribe:o.subscribe,pipe:(...e)=>(s=Lu(...e,zu),()=>{s=Lu(zu)}),destroy:()=>{d(),f()}}}var Vu=`__RHTML_CSS_DIAGNOSTICS__`,Hu=({line:e,column:t})=>e===void 0?``:` (${e}:${t??1})`,Uu=(e,t)=>{let n=`[r-html] ${t.mode===`global`?`css.global`:`css`} ${t.identifier}${Hu(e)} ${e.code}: ${e.message}`;e.severity===`error`?console.error(n):console.warn(n)},Wu;function Gu(){if(Wu!==void 0)return Wu;let e=Reflect.get(globalThis,Vu);return e?typeof e==`function`?e:Uu:null}function Ku(){return Gu()!==null}function qu(e,t){if(e.length===0)return;let n=Gu();if(n)for(let r of e)n(r,t)}var Ju=[``];function Yu(e){return{value:``,root:null,parent:null,type:o,props:e.slice(),children:[],line:1,column:1,length:0,return:``,siblings:[]}}function Xu(e,t={}){let n=t.rules??Ju,r=t.rules===void 0?null:Yu(n),i=s(e);return c(l(``,null,null,r??null,n,i,0,[0],i))}var Zu=`rhtml-scope`;function Qu(e,t){return e.split(Zu).join(t)}var $u=/^(?::host\b|::slotted\()/;function ed(e){return $u.test(e.trim())}function td(e){return e.type===o}function nd(e){return e.type===n}function rd(e){return e.type.charCodeAt(0)===64}function id(e){return Array.isArray(e.children)?e.children:[]}function ad(e){return e.value.charCodeAt(e.value.length-1)===59?e.value.slice(0,-1):e.value}function od(e){let t=[];for(let n of id(e))nd(n)&&t.push(ad(n));return t}function sd(e){return id(e).filter(td)}function cd(e){let t=e.charCodeAt(1);return t===100||t===109||t===115||t===99&&e.charCodeAt(3)===110?!0:t===99||t===108?e.charCodeAt(2)===97:!1}var ld=new Set([r,t,a,i]);function ud(e,t,n){let i=[],a=new Set,o=!1,s=(e,t)=>{for(let n of e){if(td(n)){o=!0,dd(n,t,i);continue}if(rd(n)){if(id(n).length===0){if(!ld.has(n.type))continue;i.push({code:`unsupported-at-rule`,severity:`error`,message:`\`${n.value}\` is not supported and was dropped. A constructed stylesheet strips \`@import\` by spec, and happy-dom discards the entire sheet when it sees any body-less at-rule — with one sheet per template that would erase the whole component. Move it to a \`<link>\`.`,line:n.line,column:n.column}),n.type===r&&o&&i.push({code:`import-after-rule`,severity:`warning`,message:`\`${n.value}\` follows a rule. Even where \`@import\` is supported it has to precede every rule in the sheet, so this one could not have applied.`,line:n.line,column:n.column});continue}if(o=!0,cd(n.type)){s(id(n),t);continue}sd(n).length>0&&fd(n,a,i),s(id(n),!1)}}};s(e,n.scoped),!n.scoped&&e.some(nd)&&i.push({code:`rule-without-selector`,severity:`warning`,message:`Declarations at the top level of a global block have no selector and were dropped. Wrap them in one.`}),pd(t,i);let c=hd(n.source);return c&&i.push(c),i}function dd(e,t,n){if(e.props.every(e=>e.length===0)){let t=od(e);t.length>0&&n.push({code:`rule-without-selector`,severity:`warning`,message:`A rule with no selector was dropped: \`{${t.join(`;`)}}\`.`,line:e.line,column:e.column})}if(t)for(let t of md(e.value)){let r=t.trim();if(ed(r)){n.push({code:`shadow-boundary`,severity:`warning`,message:`\`${r}\` crosses a shadow boundary, but a scoped block prepends the component class to it, so it can never match. Use \`css.global\` for this rule.`,line:e.line,column:e.column});continue}r.charCodeAt(0)===58&&n.push({code:`implicit-descendant`,severity:`warning`,message:`\`${r}\` becomes a descendant of the scope, not a qualifier on it. Prefix it with \`&\` to attach it: \`&${r}\`.`,line:e.line,column:e.column})}}function fd(e,t,n){if(t.has(e.value)){n.push({code:`duplicate-keyframes`,severity:`warning`,message:`\`${e.value}\` is defined more than once. The name is global and unscoped, so the last definition wins for every template that animates with it.`,line:e.line,column:e.column});return}t.add(e.value)}function pd(e,t){for(let n of e)for(let e of n.declarations)e.includes(`rhtml-scope`)&&t.push({code:`scope-in-declaration`,severity:`warning`,message:`\`${e}\` contains \`${Zu}\`. The sentinel is only substituted in selectors, so it will reach the browser as written.`})}function md(e){let t=[],n=0,r=0,i=0;for(let a=0;a<e.length;a++){let o=e.charCodeAt(a);r===0?o===34||o===39?r=o:o===40||o===91?n++:o===41||o===93?n--:o===44&&n===0&&(t.push(e.slice(i,a)),i=a+1):o===r&&e.charCodeAt(a-1)!==92&&(r=0)}return t.push(e.slice(i)),t}function hd(e){let t=1,n=1,r=0,i=()=>{e.charCodeAt(r)===10?(t++,n=1):n++,r++};for(;r<e.length;){let a=e.charCodeAt(r),o=e.charCodeAt(r+1);if(a===47&&o===42){let a=t,o=n;for(i(),i();r<e.length&&(e.charCodeAt(r)!==42||e.charCodeAt(r+1)!==47);)i();if(r>=e.length)return{code:`unterminated-comment`,severity:`warning`,message:`Unterminated block comment. The scanner consumed the rest of the source, so every rule after it was lost.`,line:a,column:o};i(),i();continue}if(a===47&&o===47){for(;r<e.length&&e.charCodeAt(r)!==10;)i();continue}if(a===34||a===39){let o=t,s=n;for(i();r<e.length&&e.charCodeAt(r)!==a;)e.charCodeAt(r)===92&&i(),i();if(r>=e.length)return{code:`unterminated-string`,severity:`warning`,message:`Unterminated string. The scanner consumed the rest of the source, so every rule after it was lost.`,line:o,column:s};i();continue}i()}return null}function gd(e,t={}){let n=``,r=[];for(let i of e){let{conditions:e}=i,a=0;for(;a<r.length&&a<e.length&&r[a]===e[a];)a++;for(let e=a;e<r.length;e++)n+=`}`;for(let t=a;t<e.length;t++)n+=`${e[t]}{`;r=e,n+=_d(i,t.scope)}for(let e=0;e<r.length;e++)n+=`}`;return n}function _d(e,t){return e.body===void 0?`${e.prelude??vd(e.selectors,t)}{${e.declarations.join(`;`)};}`:`${e.prelude}{${e.body}}`}function vd(e,t){return(t===void 0?e:e.map(e=>Qu(e,t))).join(`,`)}var yd=[],bd=e=>e.length>0;function xd(e,t){let n=[];return Cd(e,yd,t.rules,n),(t.plugins??[]).reduce((e,t)=>e.flatMap(e=>t(e)),n).filter(Sd)}function Sd(e){let t=e.selectors.length>0||e.prelude!==void 0,n=e.declarations.length>0||!!e.body;return t&&n}function Cd(e,t,n,r){let i=r.length,a=[];for(let i of e)nd(i)?a.push(ad(i)):td(i)?wd(i,t,r):rd(i)&&Td(i,t,n,r);if(a.length===0)return;let o=n.filter(bd);o.length!==0&&r.splice(i,0,{conditions:t,selectors:o,declarations:a})}function wd(e,t,n){let r=e.props.filter(bd);if(r.length===0)return;let i=od(e);i.length!==0&&n.push({conditions:t,selectors:r,declarations:i})}function Td(e,t,n,r){let i=id(e);if(i.length===0)return;if(cd(e.type)){let a=[];if(Cd(i,[...t,e.value],n,a),a.length===0)return;for(let e of a)r.push(e);return}let a=sd(e);if(a.length>0){let n=[];for(let e of a)wd(e,yd,n);let i=gd(n);i&&r.push({conditions:t,selectors:[],prelude:e.value,declarations:[],body:i});return}let o=od(e);o.length!==0&&r.push({conditions:t,selectors:[],prelude:e.value,declarations:o})}function Ed(e){let t=2166136261;for(let n=0;n<e.length;n++)t^=e.charCodeAt(n),t=Math.imul(t,16777619);return t>>>0}var Dd=7;function Od(e){return`_${Ed(e).toString(36).padStart(Dd,`0`)}`}var kd=[];function Ad(e,t={}){let n=t.mode!==`global`,r=n?[Zu]:[``],i=Xu(e,{rules:r}),a=xd(i,{rules:r,plugins:t.plugins}),o=gd(a),s=Od(o);return{rules:a,canonicalText:o,identifier:s,cssText:gd(a,{scope:`.${s}`}),diagnostics:t.dev?ud(i,a,{source:e,scoped:n}):kd}}function jd(e){let t=/[;{}][^;{}]*$/.exec(e);return t?t[0].slice(1):e}function Md(e){let t=e.search(/[;}\n]/);return t===-1?e:e.slice(0,t)}function Nd(e){let t=[];for(let n=0;n<e.length-1;n++){let r=jd(e[n]),i=Md(e[n+1]),a=!r.includes(`:`)&&!i.includes(`{`)?`statement`:`inline`;t.push({kind:a,provable:r.trim().length===0})}return t}function Pd(e){let t=e.trimEnd();return!t||t.endsWith(`;`)||t.endsWith(`}`)?e:`${e};`}function Fd(e,t){return co(e)?t===`statement`?Pd(e[to]??``):`.${String(e)}`:Hi(e)&&!zi(e)&&!Ri(e)?String(e):``}function Id(e,t,n){if(co(t)){e.kind===`statement`&&!e.provable&&console.error("[r-html] a css literal follows unterminated text, so it is spliced in as a statement. End the declaration in front of it with a `;`.");return}if(n.includes(`{`)||n.includes(`}`)){console.warn(`[r-html] interpolated value contains a brace and is substituted before compiling, so it can change the rule structure: ${n}`);return}(Ld(n,`'`)||Ld(n,`"`))&&console.warn(`[r-html] interpolated value has an unbalanced quote and is substituted before compiling: ${n}`)}function Ld(e,t){let n=0;for(let r of e)r===t&&n++;return n%2==1}function Rd(e,t,n){let r=``;for(let i=0;i<e.length;i++){if(r+=e[i],i>=t.length)continue;let a=Fd(n[i],t[i].kind);Id(t[i],n[i],a),r+=a}return r}var zd=32,Bd=`\0`;function Vd(e){return(t,...n)=>{let r=Ud(t,e),i=Wd(r.node,n),a=Du(i);return{strings:t,values:n,template:r,[oa]:$a.css,[to]:i.source,toString:()=>a}}}var Hd=Object.assign(Vd(`scoped`),{global:Vd(`global`)});function Ud(e,t){let n=ro.get(e);if(n&&n.node.mode===t)return n;let r=e.raw,i={raw:r,slots:Nd(r),mode:t,memo:new Map},a=Object.freeze({node:i});return ro.set(e,a),a}function Wd(e,t){let n=e.slots.map((e,n)=>Fd(t[n],e.kind)).join(Bd),r=e.memo.get(n);if(r)return r;let i=Rd(e.raw,e.slots,t),{rules:a,canonicalText:o,identifier:s,cssText:c,diagnostics:l}=Ad(i,{mode:e.mode,dev:Ku()}),u={source:i,mode:e.mode,rules:a,canonicalText:o,identifier:s,cssText:c};if(qu(l,{source:i,identifier:s,mode:e.mode}),e.memo.set(n,u),e.memo.size>zd){let[t]=e.memo.keys();e.memo.delete(t)}return u}te.autoDrawEnabled=!1,Reflect.set(te,`DD`,ee);const Gd=new Set,Kd=new Set,qd=new Map,Jd=[],Yd=[],Xd=new Set;let Zd=!1,Qd=!1,$d=0;function ef(){return $d}function tf(){$d+=1;try{Xd.forEach(e=>e())}finally{Zd=!1,Qd=!1;for(let e of Gd){if(qd.has(e)){Kd.add(e);continue}e.getStage()instanceof y&&e.batchDraw()}Gd.clear(),Jd.splice(0).forEach(e=>e())}}function nf(e){return Xd.add(e),()=>{Xd.delete(e)}}function rf(){queueMicrotask(()=>{if(Qd){Qd=!1,rf();return}tf()})}function af(){Qd=!0,!Zd&&(Zd=!0,rf())}function of(e){if(qd.has(e)){Kd.add(e);return}Gd.add(e),af()}function sf(e){qd.set(e,(qd.get(e)??0)+1)}function cf(e){let t=(qd.get(e)??0)-1;t>0?qd.set(e,t):qd.delete(e),Yd.splice(0).forEach(e=>e()),t<=0&&Kd.delete(e)&&of(e)}function lf(){return new Promise(e=>{Yd.push(()=>e())})}function uf(){return qd.size?lf().then(uf):Zd?new Promise(e=>{Jd.push(()=>e())}):Promise.resolve()}const df=Symbol(`r-html/konva-slot`),ff=Symbol(`r-html/konva-ledger`),pf=Symbol(`r-html/konva-virtual`),mf=Symbol(`r-html/konva-fragment`),hf=new Set([`class`,`style`,`zIndex`]),gf={reconcile:0,scan:0,attach:0,drop:0,order:0,setZIndex:0},_f={"k-layer":()=>new f,"k-group":()=>new d,"k-rect":()=>new _,"k-text":()=>new v,"k-path":()=>new g,"k-line":()=>new h,"k-circle":()=>new m};function vf(){}function yf(){throw Error(`[konva-host] a DOM-only directive reached the konva host. innerHTML and vCSSStyleSheet read the DOM through the module helpers, which a konva node has nothing to answer with`)}function bf(e,t=``){let n={kind:e,data:t};return Reflect.set(n,pf,e),Object.defineProperty(n,"nextSibling",{get:yf}),Object.defineProperty(n,"parentNode",{get:yf}),n}const xf=e=>e&&typeof e==`object`?Reflect.get(e,pf)??null:null,Sf=e=>e instanceof p,Cf=e=>Sf(e)&&Reflect.get(e,mf)===!0,wf=e=>Reflect.get(e,df);function Tf(e){let t=wf(e);if(t)return t;let n={node:e,parent:null,prev:null,next:null,doomed:!1};return Reflect.set(e,df,n),n}function Ef(e){let t=Reflect.get(e,ff);if(t)return t;let n={first:null,last:null,dirty:!1,reconciledAt:-1};return Reflect.set(e,ff,n),n}const Df=e=>wf(e)?.parent??null,Of=e=>wf(e)?.next?.node??null,kf=new Set,Af=new WeakMap;function jf(e){let t=e;for(;t;){if(t instanceof f)return t;t=Df(t)}return null}function Mf(e){let t=jf(e);t&&of(t)}function Nf(e){Ef(e).dirty=!0,kf.add(e),Mf(e),af()}function Pf(e){let t=e.parent;if(!t)return;let n=Ef(t);e.prev?e.prev.next=e.next:n.first=e.next,e.next?e.next.prev=e.prev:n.last=e.prev,e.parent=null,e.prev=null,e.next=null,Nf(t)}function Ff(e,t,n){Pf(t);let r=Ef(e);t.parent=e,t.doomed=!1,t.prev=n?n.prev:r.last,t.next=n,t.prev?t.prev.next=t:r.first=t,t.next?t.next.prev=t:r.last=t,Nf(e)}function If(e,t){if(!(!Sf(t)||Cf(e))){if(e instanceof y){if(!(t instanceof f))throw Error(`[konva-host] a Stage holds layers only, so ${t.getClassName()} cannot sit at a template root. Make k-layer the root`);return}if(t instanceof f)throw Error(`[konva-host] k-layer nests in nothing but a Stage`);if(Sf(e)&&!(e instanceof u))throw Error(`[konva-host] ${e.getClassName()} is a shape and holds no children`)}}function Lf(e,t,n){if(t===n)return;let r=n?Tf(n):null;if(!Cf(t)){If(e,t),Ff(e,Tf(t),r);return}let i=[];for(let e=Ef(t).first;e;e=e.next)i.push(e);for(let t of i)If(e,t.node),Ff(e,t,r)}function Rf(e){kf.delete(e),Reflect.deleteProperty(e,df),Reflect.deleteProperty(e,ff),e.destroy()}function zf(e,t){let n=t.getParent();n!==e&&(n&&kf.has(n)&&Wf(n),gf.attach+=1,e.add(t))}function Bf(e,t){if(e.length!==t.length)return!1;for(let n=0;n<t.length;n++)if(e[n]!==t[n])return!1;return!0}function Vf(e,t){t.forEach((t,n)=>{e.children[n]!==t&&(gf.setZIndex+=1,t.setZIndex(n))})}function Hf(e,t){let n=e.children;n.length=0;for(let e=0;e<t.length;e++){let r=t[e];n.push(r),r.index=e}}function Uf(e){if(gf.reconcile+=1,!(e instanceof u))return;let t=[];for(let n=Ef(e).first;n;n=n.next)gf.scan+=1,Sf(n.node)&&t.push(n.node);for(let n of t)zf(e,n);let n=new Set(t),r=e.children.filter(e=>!n.has(e));if(!(!r.length&&Bf(e.children,t))){gf.order+=1,e instanceof y?(r.forEach(e=>e.remove()),Vf(e,t)):(r.forEach(e=>{e.parent=null,e.index=0,e.remove()}),Hf(e,t));for(let e of r)gf.drop+=1,Tf(e).doomed&&Rf(e)}}function Wf(e){let t=Ef(e);!t.dirty&&t.reconciledAt===ef()||(t.dirty=!1,t.reconciledAt=ef(),Uf(e))}nf(()=>{for(let e of kf)Wf(e);kf.clear()});function Gf(e){let t=e,n=Df(t);for(;n;)t=n,n=Df(t);return Af.get(t)??t}function Kf(e,t){if(!t)return;let n=Gf(e);if(Sf(n)&&n.hasName(`minimap`))throw Error(`[konva-host] id "${t}" is not the minimap's to carry. Locate a minimap node by name plus a tableId attr`)}const qf=mu({createElement(e){let t=_f[e.toLowerCase()];if(!t)throw Error(`[konva-host] unknown konva tag <${e}>`);return t()},createText:e=>bf(`text`,e),createMarker:e=>bf(`marker`,e),createFragment(){let e=new d;return Reflect.set(e,mf,!0),Reflect.set(e,`_validateAdd`,vf),e},createEventBus:()=>new EventTarget,insertBefore(e,t){let n=Df(t);n&&Lf(n,e,t)},appendChild(e,t){Lf(e,t,null)},prependChild(e,t){Lf(e,t,Ef(e).first?.node??null)},removeChild(e){let t=Tf(e);Pf(t),Sf(e)&&(t.doomed=!0,e.getParent()||Rf(e))},parentOf:Df,nextSiblingOf:Of,setText(e,t){if(xf(e)!==`text`)throw Error(`[konva-host] a konva tree has no text node to write`);e.data=t},setAttribute(e,t,n,r){if(!Sf(e))return;if(hf.has(t))throw Error(`[konva-host] "${t}" is not a konva attribute a template may write`);let i=r?n:String(n);t===`id`&&Kf(e,i),e.attrs[t]!==i&&(e.setAttrs({[t]:i}),Mf(e))},removeAttribute(e,t){!Sf(e)||e.attrs[t]===void 0||(e.setAttrs({[t]:void 0}),Mf(e))},isHostNode:e=>Sf(e)||xf(e)!==null,isMarker:e=>xf(e)===`marker`,isText:e=>xf(e)===`text`,isElement:e=>Sf(e)&&!Cf(e),isFragment:e=>Cf(e),addEventListener(e,t,n,r){Sf(e)?e.on(`${t}.rhtml`,n):e.addEventListener(t,n,r)},removeEventListener(e,t,n,r){Sf(e)?e.off(`${t}.rhtml`,n):e.removeEventListener(t,n,r)},getRoot:Gf,createComponentContext(e,t){return{get host(){let n=Gf(e);return n instanceof y?n.container():t},get parentElement(){return null},dispatchEvent:e=>t.dispatchEvent(e)}},bridgeFragment(e,t){return Af.set(e,t),()=>{Af.delete(e)}}}),k=qf.html;function Jf(e,t){if(!(e instanceof y))throw Error(`[konva-host] a konva template renders into a Stage`);qf.render(e,t)}var Yf=(e,t)=>e*(1-t)/2;function Xf(e){return{originX:Ke(e.scrollLeft+Yf(e.width,e.zoomLevel),4),originY:Ke(e.scrollTop+Yf(e.height,e.zoomLevel),4)}}function A(e,t,n){return r=>{if(!n)return;let i=n[r];e(i)&&(t[r]=i)}}function Zf(e){return t=>C(t)&&e.includes(t)}function Qf(e){return t=>S(t)&&e.includes(t)}function $f(e,t,n){return Reflect.get(e,t)??n}function ep(){let e=Date.now();return{updateAt:e,createAt:e}}function tp(e,t){let n=A(S,e,t);n(`updateAt`),n(`createAt`)}var np=()=>({tableIds:[],relationshipIds:[],indexIds:[],memoIds:[]});function rp(e){let t=np();if(!de(e)||x(e))return t;let n=A(Array.isArray,t,e);return n(`tableIds`),n(`relationshipIds`),n(`indexIds`),n(`memoIds`),t}var ip=()=>({id:``,name:``,tableId:``,indexColumnIds:[],seqIndexColumnIds:[],unique:!1,meta:ep()});function ap(e){let t={};if(!de(e)||x(e))return t;for(let n of Object.values(e)){if(!n)continue;let e=ip(),r=A(C,e,n),i=A(se,e,n),a=A(Array.isArray,e,n);r(`id`),r(`name`),r(`tableId`),i(`unique`),a(`indexColumnIds`),a(`seqIndexColumnIds`),tp(e.meta,n.meta),e.id&&(t[e.id]=e)}return t}var op={ASC:1,DESC:2},sp=Object.values(op),cp=()=>({id:``,indexId:``,columnId:``,orderType:op.ASC,meta:ep()});function lp(e){let t={};if(!de(e)||x(e))return t;for(let n of Object.values(e)){if(!n)continue;let e=cp(),r=A(C,e,n);r(`id`),r(`indexId`),r(`columnId`),A(Qf(sp),e,n)(`orderType`),tp(e.meta,n.meta),e.id&&(t[e.id]=e)}return t}var up=()=>({id:``,value:``,ui:{x:200,y:100,zIndex:2,width:116,height:100,color:``},meta:ep()});function dp(e){let t={};if(!de(e)||x(e))return t;for(let n of Object.values(e)){if(!n)continue;let e=up(),r=A(C,e,n),i=A(S,e.ui,n.ui),a=A(C,e.ui,n.ui);r(`id`),r(`value`),a(`color`),i(`x`),i(`y`),i(`zIndex`),i(`width`),i(`height`),tp(e.meta,n.meta),e.id&&(t[e.id]=e)}return t}var fp={ZeroOne:2,ZeroN:4,OneOnly:8,OneN:16},pp=Object.values(fp),mp={ring:1,dash:2},hp=Object.values(mp),gp={left:1,right:2,top:4,bottom:8},_p=Object.values(gp),vp=()=>({id:``,identification:!1,relationshipType:fp.ZeroN,startRelationshipType:mp.dash,start:{tableId:``,columnIds:[],x:0,y:0,direction:gp.bottom},end:{tableId:``,columnIds:[],x:0,y:0,direction:gp.bottom},meta:ep()});function yp(e){let t={};if(!de(e)||x(e))return t;for(let n of Object.values(e)){if(!n)continue;let e=vp(),r=A(C,e,n),i=A(se,e,n),a=A(S,e.start,n.start),o=A(C,e.start,n.start),s=A(S,e.end,n.end),c=A(C,e.end,n.end);r(`id`),i(`identification`),A(Qf(pp),e,n)(`relationshipType`),A(Qf(hp),e,n)(`startRelationshipType`),o(`tableId`),a(`x`),a(`y`),A(Qf(_p),e.start,n.start)(`direction`),A(Array.isArray,e.start,n.start)(`columnIds`),c(`tableId`),s(`x`),s(`y`),A(Qf(_p),e.end,n.end)(`direction`),A(Array.isArray,e.end,n.end)(`columnIds`),tp(e.meta,n.meta),e.id&&(t[e.id]=e)}return t}var bp={ERD:`ERD`,visualization:`@dineug/erd-editor/builtin-visualization`,schemaSQL:`@dineug/erd-editor/builtin-schema-sql`,generatorCode:`@dineug/erd-editor/builtin-generator-code`,settings:`settings`},xp=Object.values(bp),Sp={tableComment:1,columnComment:2,columnDataType:4,columnDefault:8,columnAutoIncrement:16,columnPrimaryKey:32,columnUnique:64,columnNotNull:128,relationship:256},Cp={columnName:1,columnDataType:2,columnNotNull:4,columnUnique:8,columnAutoIncrement:16,columnDefault:32,columnComment:64},wp=Object.values(Cp),Tp={MariaDB:1,MSSQL:2,MySQL:4,Oracle:8,PostgreSQL:16,SQLite:32,Databricks:64,Snowflake:128},Ep=Object.values(Tp),Dp={GraphQL:1,csharp:2,Java:4,Kotlin:8,TypeScript:16,JPA:32,Scala:64,Go:128,SQLAlchemy:256,TypeORM:512,Sequelize:1024,Drizzle:2048,DBML:4096,AML:8192},Op=Object.values(Dp),kp={none:1,camelCase:2,pascalCase:4,snakeCase:8},Ap=Object.values(kp),jp={none:1,doubleQuote:2,singleQuote:4,backtick:8},Mp=Object.values(jp),Np={scroll:1,zoomLevel:2},Pp=.1,Fp=1.5,Ip=2e3,Lp=2e4,Rp=Sp.tableComment|Sp.columnComment|Sp.columnDataType|Sp.columnDefault|Sp.columnPrimaryKey|Sp.columnNotNull|Sp.relationship,zp=()=>({width:2e3,height:2e3,scrollTop:0,scrollLeft:0,originX:0,originY:0,zoomLevel:1,show:Rp,database:Tp.MySQL,databaseName:``,canvasType:bp.ERD,language:Dp.GraphQL,tableNameCase:kp.pascalCase,columnNameCase:kp.camelCase,bracketType:jp.none,relationshipDataTypeSync:!0,relationshipOptimization:!1,columnOrder:[Cp.columnName,Cp.columnDataType,Cp.columnNotNull,Cp.columnUnique,Cp.columnAutoIncrement,Cp.columnDefault,Cp.columnComment],maxWidthComment:-1,ignoreSaveSettings:0}),Bp=e=>re(e,Ip,Lp),Vp=e=>re(e,Pp,Fp),Hp=e=>re(e,60,200);function Up(e){let t=zp();if(!de(e)||x(e))return t;let n=A(S,t,e),r=A(C,t,e),i=A(se,t,e);if(S(e.width)&&(t.width=Bp(e.width)),S(e.height)&&(t.height=Bp(e.height)),S(e.zoomLevel)&&(t.zoomLevel=Vp(e.zoomLevel)),S(e.maxWidthComment)&&e.maxWidthComment!==-1&&(t.maxWidthComment=Hp(e.maxWidthComment)),n(`scrollTop`),n(`scrollLeft`),n(`show`),n(`ignoreSaveSettings`),r(`databaseName`),r(`canvasType`),i(`relationshipDataTypeSync`),i(`relationshipOptimization`),A(Qf(Ep),t,e)(`database`),A(Qf(Op),t,e)(`language`),A(Qf(Ap),t,e)(`tableNameCase`),A(Qf(Ap),t,e)(`columnNameCase`),A(Qf(Mp),t,e)(`bracketType`),Array.isArray(e.columnOrder)&&wp.length===e.columnOrder.length&&ae(wp,e.columnOrder).length===0&&(t.columnOrder=e.columnOrder),S(e.originX)&&S(e.originY))t.originX=e.originX,t.originY=e.originY;else{let{originX:e,originY:n}=Xf(t);t.originX=e,t.originY=n}return t}var Wp=()=>({id:``,name:``,comment:``,columnIds:[],seqColumnIds:[],ui:{x:200,y:100,zIndex:2,widthName:60,widthComment:60,color:``},meta:ep()});function Gp(e){let t={};if(!de(e)||x(e))return t;for(let n of Object.values(e)){if(!n)continue;let e=Wp(),r=A(C,e,n),i=A(Array.isArray,e,n),a=A(S,e.ui,n.ui),o=A(C,e.ui,n.ui);r(`id`),r(`name`),r(`comment`),i(`columnIds`),i(`seqColumnIds`),o(`color`),a(`x`),a(`y`),a(`zIndex`),a(`widthName`),a(`widthComment`),tp(e.meta,n.meta),e.id&&(t[e.id]=e)}return t}var Kp=()=>({id:``,tableId:``,name:``,comment:``,dataType:``,default:``,options:0,ui:{keys:0,widthName:60,widthComment:60,widthDataType:60,widthDefault:60},meta:ep()});function qp(e){let t={};if(!de(e)||x(e))return t;for(let n of Object.values(e)){if(!n)continue;let e=Kp(),r=A(C,e,n),i=A(S,e,n),a=A(S,e.ui,n.ui);r(`id`),r(`tableId`),r(`name`),r(`comment`),r(`dataType`),r(`default`),i(`options`),a(`keys`),a(`widthName`),a(`widthComment`),a(`widthDataType`),a(`widthDefault`),tp(e.meta,n.meta),e.id&&(t[e.id]=e)}return t}function Jp(e){let t=e;return{$schema:`https://raw.githubusercontent.com/dineug/erd-editor/main/json-schema/schema.json`,version:`3.0.0`,settings:Up(t.settings),doc:rp(t.doc),collections:{tableEntities:Gp(t.collections?.tableEntities),tableColumnEntities:qp(t.collections?.tableColumnEntities),relationshipEntities:yp(t.collections?.relationshipEntities),indexEntities:ap(t.collections?.indexEntities),indexColumnEntities:lp(t.collections?.indexColumnEntities),memoEntities:dp(t.collections?.memoEntities)}}}var j={CanvasType:bp,CanvasTypeList:xp,Show:Sp,ColumnType:Cp,ColumnTypeList:wp,Database:Tp,DatabaseList:Ep,Language:Dp,LanguageList:Op,NameCase:kp,NameCaseList:Ap,BracketType:jp,BracketTypeList:Mp,RelationshipType:fp,RelationshipTypeList:pp,StartRelationshipType:mp,StartRelationshipTypeList:hp,Direction:gp,DirectionList:_p,ColumnOption:{autoIncrement:1,primaryKey:2,unique:4,notNull:8},ColumnUIKey:{primaryKey:1,foreignKey:2},OrderType:op,OrderTypeList:sp,SaveSettingType:Np,CANVAS_SIZE_MAX:Lp,CANVAS_SIZE_MIN:Ip,CANVAS_ZOOM_MAX:Fp,CANVAS_ZOOM_MIN:Pp};function Yp(e){return[e,-1,-1,{}]}function Xp(e,t,n){return e[t]||(e[t]=Yp(n),e[t])}function Zp(e,t,n,r,i){let a=Xp(e,n,r),o=a[1],s=a[2];o<t&&(a[1]=t),s<t&&i()}function Qp(e,t,n,r,i){let a=Xp(e,n,r),o=a[2],s=a[1];o<t&&(a[2]=t),s<=t&&i()}function $p(e,t,n,r,i,a){let o=Xp(e,n,r);(o[3][i]??-1)<=t&&(o[3][i]=t,a())}function em(e){"@babel/helpers - typeof";return em=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},em(e)}function tm(e,t){if(em(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(em(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function nm(e){var t=tm(e,`string`);return em(t)==`symbol`?t:t+``}function rm(e,t,n){return(t=nm(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var im=class{constructor(e){rm(this,`collections`,void 0),this.collections=e}collection(e){return new am(this.collections[e],e)}},am=class{constructor(e,t){rm(this,`collection`,void 0),rm(this,`collectionKey`,void 0),this.collection=e,this.collectionKey=t}selectById(e){return this.collection[e]}selectByIds(e){return e.length,e.map(e=>this.selectById(e)).filter(Boolean)}selectEntities(){return this.collection}selectAll(){return Object.values(this.collection)}setOne(e){return this.collection[e.id]=e,this}setMany(e){return e.forEach(e=>this.setOne(e)),this}setAll(e){return this.removeAll(),this.setMany(e),this}addOne(e){return this.selectById(e.id)||this.setOne(e),this}addMany(e){return e.forEach(e=>this.addOne(e)),this}removeOne(e){return this.selectById(e)&&Reflect.deleteProperty(this.collection,e),this}removeMany(e){return e.forEach(e=>this.removeOne(e)),this}removeAll(){return this.collection={},this}updateOne(e,t){let n=this.selectById(e);return n&&(t(n),n.meta.updateAt=Date.now()),this}updateMany(e,t){return e.forEach(e=>this.updateOne(e,t)),this}getOrCreate(e,t){let n=this.selectById(e);if(n)return n;let r=t(e);return this.setOne(r),this.selectById(e)}addOperator(e,t,n,r){return Zp(e,t,n,this.collectionKey,r),this}removeOperator(e,t,n,r){return Qp(e,t,n,this.collectionKey,r),this}replaceOperator(e,t,n,r,i){return $p(e,t,n,this.collectionKey,r,i),this}},M=e=>new im(e),om=Object.values({columnUnique:`columnUnique`,columnAutoIncrement:`columnAutoIncrement`,columnName:`columnName`,columnDataType:`columnDataType`,columnNotNull:`columnNotNull`,columnDefault:`columnDefault`,columnComment:`columnComment`}),sm=Object.values({ERD:`ERD`,"@vuerd/builtin-sql-ddl":`@vuerd/builtin-sql-ddl`,"@vuerd/builtin-grid":`@vuerd/builtin-grid`,"@vuerd/builtin-generator-code":`@vuerd/builtin-generator-code`,"@vuerd/builtin-visualization":`@vuerd/builtin-visualization`}),cm=Object.values({MariaDB:`MariaDB`,MSSQL:`MSSQL`,MySQL:`MySQL`,Oracle:`Oracle`,PostgreSQL:`PostgreSQL`,SQLite:`SQLite`}),lm=Object.values({GraphQL:`GraphQL`,"C#":`C#`,Java:`Java`,Kotlin:`Kotlin`,TypeScript:`TypeScript`,JPA:`JPA`,Scala:`Scala`}),um=Object.values({none:`none`,camelCase:`camelCase`,pascalCase:`pascalCase`,snakeCase:`snakeCase`}),dm=Object.values({AtomOneDark:`AtomOneDark`,AtomOneLight:`AtomOneLight`,MonokaiSublime:`MonokaiSublime`,GithubGist:`GithubGist`,VS2015:`VS2015`}),fm=Object.values({none:`none`,doubleQuote:`doubleQuote`,singleQuote:`singleQuote`,backtick:`backtick`}),pm=.1,mm=2e3,hm=2e4,gm=()=>({version:`2.2.11`,width:2e3,height:2e3,scrollTop:0,scrollLeft:0,zoomLevel:1,show:{tableComment:!0,columnComment:!0,columnDataType:!0,columnDefault:!0,columnAutoIncrement:!1,columnPrimaryKey:!0,columnUnique:!1,columnNotNull:!0,relationship:!0},database:`MySQL`,databaseName:``,canvasType:`ERD`,language:`GraphQL`,tableCase:`pascalCase`,columnCase:`camelCase`,highlightTheme:`VS2015`,bracketType:`none`,setting:{relationshipDataTypeSync:!0,relationshipOptimization:!1,columnOrder:[`columnName`,`columnDataType`,`columnNotNull`,`columnUnique`,`columnAutoIncrement`,`columnDefault`,`columnComment`]},pluginSerializationMap:{}}),_m=e=>re(e,mm,hm),vm=e=>re(e,pm,1);function ym(e){let t=gm();if(x(e))return t;let n=A(S,t,e),r=A(C,t,e),i=A(se,t.show,e.show),a=A(se,t.setting,e.setting);if(S(e.width)&&(t.width=_m(e.width)),S(e.height)&&(t.height=_m(e.height)),S(e.zoomLevel)&&(t.zoomLevel=vm(e.zoomLevel)),r(`version`),r(`databaseName`),n(`scrollTop`),n(`scrollLeft`),A(Zf(cm),t,e)(`database`),A(Zf(sm),t,e)(`canvasType`),A(Zf(lm),t,e)(`language`),A(Zf(um),t,e)(`tableCase`),A(Zf(um),t,e)(`columnCase`),A(Zf(dm),t,e)(`highlightTheme`),A(Zf(fm),t,e)(`bracketType`),i(`tableComment`),i(`columnComment`),i(`columnDataType`),i(`columnDefault`),i(`columnAutoIncrement`),i(`columnPrimaryKey`),i(`columnUnique`),i(`columnNotNull`),i(`relationship`),a(`relationshipDataTypeSync`),a(`relationshipOptimization`),e.setting?.columnOrder&&om.length===e.setting.columnOrder.length&&ae(om,e.setting.columnOrder).length===0&&(t.setting.columnOrder=e.setting.columnOrder),de(e.pluginSerializationMap)){let n=e.pluginSerializationMap;for(let e of Object.keys(n)){let r=n[e];C(r)&&(t.pluginSerializationMap[e]=r)}}return t}var bm=()=>({memos:[]}),xm=()=>({id:``,value:``,ui:{active:!1,left:200,top:200,zIndex:2,width:127,height:127}});function Sm(e){let t=bm();if(x(e)||!Array.isArray(e.memos))return t;for(let n of e.memos){let e=xm(),r=A(C,e,n),i=A(S,e.ui,n.ui),a=A(se,e.ui,n.ui),o=A(C,e.ui,n.ui);r(`id`),r(`value`),a(`active`),o(`color`),i(`left`),i(`top`),i(`zIndex`),i(`width`),i(`height`),t.memos.push(e)}return t}var Cm=[`ZeroOneN`,`One`,`N`],wm={ZeroOneN:`ZeroN`,One:`OneOnly`,N:`OneN`},Tm=e=>Cm.includes(e)?wm[e]:e,Em=Object.values({ZeroOneN:`ZeroOneN`,ZeroOne:`ZeroOne`,ZeroN:`ZeroN`,OneOnly:`OneOnly`,OneN:`OneN`,One:`One`,N:`N`}),Dm=Object.values({Ring:`Ring`,Dash:`Dash`}),Om=Object.values({left:`left`,right:`right`,top:`top`,bottom:`bottom`}),km=()=>({relationships:[]}),Am=()=>({id:``,identification:!1,relationshipType:`ZeroN`,startRelationshipType:`Dash`,start:{tableId:``,columnIds:[],x:0,y:0,direction:`bottom`},end:{tableId:``,columnIds:[],x:0,y:0,direction:`bottom`},constraintName:``,visible:!0});function jm(e){let t=km();if(x(e)||!Array.isArray(e.relationships))return t;for(let n of e.relationships){let e=Am(),r=A(C,e,n),i=A(se,e,n),a=A(S,e.start,n.start),o=A(C,e.start,n.start),s=A(S,e.end,n.end),c=A(C,e.end,n.end);r(`id`),r(`constraintName`),i(`identification`),i(`visible`),A(Zf(Em),e,n)(`relationshipType`),e.relationshipType=Tm(e.relationshipType),A(Zf(Dm),e,n)(`startRelationshipType`),o(`tableId`),a(`x`),a(`y`),A(Zf(Om),e.start,n.start)(`direction`),Array.isArray(n.start?.columnIds)&&(e.start.columnIds=n.start?.columnIds.filter(C)),c(`tableId`),s(`x`),s(`y`),A(Zf(Om),e.end,n.end)(`direction`),Array.isArray(n.end?.columnIds)&&(e.end.columnIds=n.end?.columnIds.filter(C)),t.relationships.push(e)}return t}var Mm={ASC:`ASC`,DESC:`DESC`},Nm=Object.values(Mm),Pm=()=>({tables:[],indexes:[]}),Fm=()=>({id:``,name:``,comment:``,columns:[],ui:{active:!1,left:200,top:100,zIndex:2,widthName:60,widthComment:60},visible:!0}),Im=()=>({id:``,name:``,comment:``,dataType:``,default:``,option:{autoIncrement:!1,primaryKey:!1,unique:!1,notNull:!1},ui:{active:!1,pk:!1,fk:!1,pfk:!1,widthName:60,widthComment:60,widthDataType:60,widthDefault:60}}),Lm=()=>({id:``,name:``,tableId:``,columns:[],unique:!1}),Rm=()=>({id:``,orderType:Mm.ASC});function zm(e){let t=Pm();if(x(e))return t;if(Array.isArray(e.tables))for(let n of e.tables){let e=Fm(),r=A(C,e,n),i=A(se,e,n),a=A(S,e.ui,n.ui),o=A(se,e.ui,n.ui),s=A(C,e.ui,n.ui);if(r(`id`),r(`name`),r(`comment`),i(`visible`),o(`active`),s(`color`),a(`left`),a(`top`),a(`zIndex`),a(`widthName`),a(`widthComment`),Array.isArray(n.columns))for(let t of n.columns){let n=Im(),r=A(C,n,t),i=A(S,n.ui,t.ui),a=A(se,n.ui,t.ui),o=A(se,n.option,t.option);r(`id`),r(`name`),r(`comment`),r(`dataType`),r(`default`),o(`autoIncrement`),o(`primaryKey`),o(`unique`),o(`notNull`),a(`active`),a(`pk`),a(`fk`),a(`pfk`),i(`widthName`),i(`widthComment`),i(`widthDataType`),i(`widthDefault`),e.columns.push(n)}t.tables.push(e)}if(Array.isArray(e.indexes))for(let n of e.indexes){let e=Lm(),r=A(C,e,n),i=A(se,e,n);if(r(`id`),r(`name`),r(`tableId`),i(`unique`),Array.isArray(n.columns))for(let t of n.columns){let n=Rm();A(C,n,t)(`id`),A(Zf(Nm),n,t)(`orderType`),e.columns.push(n)}t.indexes.push(e)}return t}function Bm(e){let t=e;return{canvas:ym(t.canvas),table:zm(t.table),relationship:jm(t.relationship),memo:Sm(t.memo)}}function Vm(e){let t=Jp({});return Hm(t.settings,e.canvas),Um(t,e.table),Wm(t,e.memo),Gm(t,e.relationship),t}function Hm(e,t){e.width=t.width,e.height=t.height,e.scrollTop=t.scrollTop,e.scrollLeft=t.scrollLeft,e.zoomLevel=t.zoomLevel;let{originX:n,originY:r}=Xf(e);e.originX=n,e.originY=r,e.databaseName=t.databaseName,e.canvasType=j.CanvasType.ERD,e.show=Object.keys(t.show).reduce((e,n)=>$f(t.show,n,!1)?e|$f(j.Show,n,0):e,0),e.database=Reflect.get(j.Database,t.database)??j.Database.MySQL,e.language=t.language===`C#`?j.Language.csharp:$f(j.Language,t.language,j.Language.GraphQL),e.tableNameCase=$f(j.NameCase,t.tableCase,j.NameCase.pascalCase),e.columnNameCase=$f(j.NameCase,t.columnCase,j.NameCase.camelCase),e.bracketType=$f(j.BracketType,t.bracketType,j.BracketType.none),e.relationshipDataTypeSync=t.setting.relationshipDataTypeSync,e.relationshipOptimization=t.setting.relationshipOptimization;let i=t.setting.columnOrder.map(e=>j.ColumnType[e]);ae(j.ColumnTypeList,i).length===0&&(e.columnOrder=i)}function Um(e,t){let n=t.tables.filter(({id:e})=>!!e),r=t.indexes.filter(({id:e})=>!!e);e.doc.tableIds=n.map(({id:e})=>e),e.doc.indexIds=r.map(({id:e})=>e);for(let t of n){let n=Wp();n.id=t.id,n.name=t.name,n.comment=t.comment,n.columnIds=t.columns.map(({id:e})=>e),n.seqColumnIds=[...n.columnIds],n.ui.y=t.ui.top,n.ui.x=t.ui.left,n.ui.zIndex=t.ui.zIndex,n.ui.widthName=t.ui.widthName,n.ui.widthComment=t.ui.widthComment,n.ui.color=t.ui.color??``;for(let n of t.columns){let r=Kp();r.id=n.id,r.tableId=t.id,r.name=n.name,r.comment=n.comment,r.dataType=n.dataType,r.default=n.default,r.options=Object.keys(n.option).reduce((e,t)=>$f(n.option,t,!1)?e|$f(j.ColumnOption,t,0):e,0),r.ui.widthName=n.ui.widthName,r.ui.widthComment=n.ui.widthComment,r.ui.widthDataType=n.ui.widthDataType,r.ui.widthDefault=n.ui.widthDefault,n.ui.pfk?r.ui.keys=j.ColumnUIKey.primaryKey|j.ColumnUIKey.foreignKey:n.ui.pk?r.ui.keys=j.ColumnUIKey.primaryKey:n.ui.fk&&(r.ui.keys=j.ColumnUIKey.foreignKey),e.collections.tableColumnEntities[r.id]=r}e.collections.tableEntities[n.id]=n}for(let t of r){let n=ip();n.id=t.id,n.name=t.name,n.tableId=t.tableId,n.unique=t.unique;for(let r of t.columns){let i=qe(),a=cp();n.indexColumnIds.push(i),n.seqIndexColumnIds.push(i),a.id=i,a.indexId=t.id,a.columnId=r.id,a.orderType=$f(j.OrderType,r.orderType,j.OrderType.ASC),e.collections.indexColumnEntities[a.id]=a}e.collections.indexEntities[n.id]=n}}function Wm(e,t){let n=t.memos.filter(({id:e})=>!!e);e.doc.memoIds=n.map(({id:e})=>e);for(let t of n){let n=up();n.id=t.id,n.value=t.value,n.ui.y=t.ui.top,n.ui.x=t.ui.left,n.ui.width=t.ui.width,n.ui.height=t.ui.height,n.ui.zIndex=t.ui.zIndex,n.ui.color=t.ui.color??``,e.collections.memoEntities[n.id]=n}}function Gm(e,t){let n=t.relationships.filter(({id:e})=>!!e);e.doc.relationshipIds=n.map(({id:e})=>e);for(let t of n){let n=vp();n.id=t.id,n.identification=t.identification,n.relationshipType=$f(j.RelationshipType,t.relationshipType,j.RelationshipType.ZeroN),n.startRelationshipType=$f(j.StartRelationshipType,t.startRelationshipType===`Ring`?`ring`:`dash`,j.StartRelationshipType.dash),n.start.tableId=t.start.tableId,n.start.columnIds=t.start.columnIds,n.start.x=t.start.x,n.start.y=t.start.y,n.start.direction=$f(j.Direction,t.start.direction,j.Direction.bottom),n.end.tableId=t.end.tableId,n.end.columnIds=t.end.columnIds,n.end.x=t.end.x,n.end.y=t.end.y,n.end.direction=$f(j.Direction,t.end.direction,j.Direction.bottom),e.collections.relationshipEntities[n.id]=n}}function Km(e,t){return(e&t)===t}function qm(e){let t=JSON.parse(e);return Reflect.get(t,`version`)===`3.0.0`?Jp(t):Vm(Bm(t))}function Jm(e){let t=ge(e,[`$schema`,`version`,`settings`,`doc`,`collections`]),n={...t.settings};return t.settings=n,Km(n.ignoreSaveSettings,j.SaveSettingType.scroll)&&(n.originX=0,n.originY=0),Km(n.ignoreSaveSettings,j.SaveSettingType.zoomLevel)&&(n.zoomLevel=1),JSON.stringify(t,null,2)}const N={changeHasHistory:`editor.changeHasHistory`,selectAll:`editor.selectAll`,unselectAll:`editor.unselectAll`,select:`editor.select`,changeViewport:`editor.changeViewport`,clear:`editor.clear`,loadJson:`editor.loadJson`,initialClear:`editor.initialClear`,initialLoadJson:`editor.initialLoadJson`,focusTable:`editor.focusTable`,focusColumn:`editor.focusColumn`,focusTableEnd:`editor.focusTableEnd`,focusMoveTable:`editor.focusMoveTable`,editTable:`editor.editTable`,editTableEnd:`editor.editTableEnd`,editMemo:`editor.editMemo`,editMemoEnd:`editor.editMemoEnd`,scrollMemo:`editor.scrollMemo`,selectAllColumn:`editor.selectAllColumn`,drawStartRelationship:`editor.drawStartRelationship`,drawStartAddRelationship:`editor.drawStartAddRelationship`,drawEndRelationship:`editor.drawEndRelationship`,drawRelationship:`editor.drawRelationship`,hoverColumnMap:`editor.hoverColumnMap`,hoverRelationshipMap:`editor.hoverRelationshipMap`,changeOpenMap:`editor.changeOpenMap`,changeHandTool:`editor.changeHandTool`,changeZenMode:`editor.changeZenMode`,dragstartColumn:`editor.dragstartColumn`,dragendColumn:`editor.dragendColumn`,sharedMouseTracker:`editor.sharedMouseTracker`,sharedFocusTracker:`editor.sharedFocusTracker`,sharedSelectionTracker:`editor.sharedSelectionTracker`,sharedDragSelectTracker:`editor.sharedDragSelectTracker`,dragSelectRect:`editor.dragSelectRect`,validationIds:`editor.validationIds`,getLWW:`editor.getLWW`,mergeLWW:`editor.mergeLWW`,viewOpen:`editor.viewOpen`,viewClose:`editor.viewClose`,viewScrollTo:`editor.viewScrollTo`,viewStreamScrollTo:`editor.viewStreamScrollTo`,viewChangeZoomLevel:`editor.viewChangeZoomLevel`,viewStreamZoomLevel:`editor.viewStreamZoomLevel`,viewMoveTable:`editor.viewMoveTable`,viewSetLayout:`editor.viewSetLayout`,viewChangeShowMode:`editor.viewChangeShowMode`,viewSetCenters:`editor.viewSetCenters`,changeVisualizationMode:`editor.changeVisualizationMode`},Ym=j.CanvasType,Xm=j.CanvasTypeList,P=j.Show,F=j.ColumnType,Zm=j.ColumnTypeList,I=j.Database,Qm=j.DatabaseList;j.Language;const $m=j.LanguageList;j.NameCase;const eh=j.NameCaseList,th=j.BracketType,nh=j.BracketTypeList,rh=j.RelationshipType;j.RelationshipTypeList;const ih=j.StartRelationshipType;j.StartRelationshipTypeList;const L=j.Direction;j.DirectionList;const R=j.ColumnOption,z=j.ColumnUIKey,ah=j.OrderType;j.OrderTypeList,j.SaveSettingType;const oh=j.CANVAS_SIZE_MAX,sh=j.CANVAS_SIZE_MIN,ch=j.CANVAS_ZOOM_MAX,lh=j.CANVAS_ZOOM_MIN;th.none,th.backtick,th.doubleQuote,th.singleQuote,F.columnName,F.columnDataType,F.columnDefault,F.columnComment,F.columnAutoIncrement,F.columnUnique,F.columnNotNull;const uh=1200;function B(e){let t=new Set(e);return e=>t.has(e)}function dh(e){return 6.25*Math.sqrt(Math.max(e,0))}function fh(e){return e>=0?e/2:dh(-e)}function ph(e,t,n){let r=fh((n.x-e.x)*t.x+(n.y-e.y)*t.y);return{x:e.x+t.x*r,y:e.y+t.y*r}}function mh(e,t,n,r){return[ph(e,t,n),ph(n,r,e)]}function hh(e,t,n,r,i=24){let a=Math.max(1,Math.floor(i)),[o,s]=mh(e,t,n,r),c=[{x:e.x,y:e.y}];for(let t=1;t<=a;t++){let r=t/a;c.push({x:gh(e.x,o.x,s.x,n.x,r),y:gh(e.y,o.y,s.y,n.y,r)})}return c}function gh(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}const V={left:`left`,right:`right`,top:`top`,bottom:`bottom`},_h=Object.values(V);B([V.top,V.bottom,V.left,V.right]);const vh=[0,0];function yh({tableId:e,x:t,y:n,direction:r}){return{tableId:e,x:t,y:n,direction:r}}const bh=()=>({epoch:0,stubSlots:new WeakMap,routes:new WeakMap,anchors:new WeakMap}),xh={document:bh(),flow:bh()},Sh={flow:new WeakMap};function Ch(e,t){let n=Sh[t],r=n.get(e);return r||(r=Ma({version:0}),n.set(e,r)),r}function wh(e,t){return Ch(e,t).version}function Th(e,t){Ch(e,t).version+=1}function Eh(e,t=`document`){let n=xh[t];for(let r of e){let e=n.stubSlots.delete(r),i=n.routes.delete(r),a=n.anchors.delete(r);t!==`document`&&(e||i||a)&&Th(r,t)}}const Dh=(e,t)=>e[0]===t[0]&&e[1]===t[1],Oh=(e,t)=>e.x===t.x&&e.y===t.y&&e.direction===t.direction,kh=(e,t)=>e.length===t.length&&e.every((e,n)=>e.x===t[n].x&&e.y===t[n].y);function Ah(e,t,n=`document`){let r=xh[n];n!==`document`&&!Dh(r.stubSlots.get(e)??vh,t)&&Th(e,n),r.stubSlots.set(e,t)}function jh(e,t=`document`){return t!==`document`&&wh(e,t),xh[t].stubSlots.get(e)??vh}function Mh(e,t,n=`document`){let r=xh[n];if(n!==`document`){let i=r.routes.get(e);(!i||!kh(i.points,t))&&Th(e,n)}r.routes.set(e,{points:t,epoch:r.epoch})}function Nh(e,t=`document`){return t!==`document`&&wh(e,t),xh[t].routes.get(e)?.points}function Ph(e=`document`){xh[e].epoch+=1}function Fh(e,t=`document`){return t===`document`?e:(wh(e,t),xh[t].anchors.get(e)??e)}function Ih(e,{start:t,end:n},r=`document`){if(r===`document`){e.start.direction=t.direction,e.start.x=t.x,e.start.y=t.y,e.end.direction=n.direction,e.end.x=n.x,e.end.y=n.y;return}let{anchors:i}=xh[r],a=i.get(e)??e;(!Oh(a.start,t)||!Oh(a.end,n))&&Th(e,r),i.set(e,{start:yh(t),end:yh(n)})}function Lh(e){let t=1/0,n=1/0,r=-1/0,i=-1/0;for(let{x:a,y:o}of e)a<t&&(t=a),o<n&&(n=o),a>r&&(r=a),o>i&&(i=o);return{x:t,y:n,width:r-t,height:i-n}}function Rh({x:e,y:t,width:n,height:r},i){return{x:e-i,y:t-i,width:n+i*2,height:r+i*2}}function zh(e=`document`){return e===`document`?2:1}function Bh(e,t=2,n=`document`){let r=xh[n],{start:i,end:a}=Fh(e,n),o=r.routes.get(e),s=o&&o.epoch===r.epoch?o.points:null,c=s?0:86;if(n!==`document`){let e=Lh([...s?.length?[s[0],s[s.length-1]]:[],i,a]),n=dh(Math.max(e.width,e.height)+2*c);return Rh(e,25+t+c+n)}return Rh(Lh(s?[...s,i,a]:[i,a]),25+t+c)}const Vh={Databricks:`Databricks`,MariaDB:`MariaDB`,MSSQL:`MSSQL`,MySQL:`MySQL`,Oracle:`Oracle`,PostgreSQL:`PostgreSQL`,Snowflake:`Snowflake`,SQLite:`SQLite`},Hh=Object.values(Vh);Vh.Databricks,I.Databricks,Vh.MariaDB,I.MariaDB,Vh.MSSQL,I.MSSQL,Vh.MySQL,I.MySQL,Vh.Oracle,I.Oracle,Vh.PostgreSQL,I.PostgreSQL,Vh.Snowflake,I.Snowflake,Vh.SQLite,I.SQLite;const Uh=/[^0-9]/g,Wh=e=>e.replace(Uh,``),Gh=e=>re(e,sh,oh),Kh=e=>re(e,lh,ch),qh=e=>re(e,60,200);function Jh(e){let t=C(e)?Number(Wh(e)):e;return Gh(t)}function Yh(e){return Ke(Kh(e),2)}const Xh=B(Qm),Zh=B(eh),Qh=B(nh),$h=B($m),eg=B(Zm);B(Hh);const tg=B(Xm);function H(e){return Math.max(e,60)}function ng(e){return C(e)?e.trim():``}function rg(e){return e<=.7}const ig={table:`table`,memo:`memo`},ag={nameOnly:`nameOnly`,keysOnly:`keysOnly`,allFields:`allFields`},og={flow:`flow`},sg={graph:`graph`,flow:`flow`},U={tableName:`tableName`,tableComment:`tableComment`,columnName:`columnName`,columnDataType:`columnDataType`,columnNotNull:`columnNotNull`,columnUnique:`columnUnique`,columnAutoIncrement:`columnAutoIncrement`,columnDefault:`columnDefault`,columnComment:`columnComment`},cg={ArrowUp:`ArrowUp`,ArrowRight:`ArrowRight`,ArrowDown:`ArrowDown`,ArrowLeft:`ArrowLeft`,Tab:`Tab`};B(Object.values(cg));const lg=()=>({id:qe(),selectedMap:{},hasUndo:!1,hasRedo:!1,viewport:{width:uh,height:675},scrollPullPending:!1,focusTable:null,editMemoId:null,memoScrollTopMap:{},drawRelationship:null,hoverColumnMap:{},hoverRelationshipMap:{},openMap:{},handTool:!1,zenMode:!1,draggableColumn:null,draggingColumnMap:{},sharedMouseTrackerMap:{},sharedFocusTrackerMap:{},sharedSelectionTrackerMap:{},sharedDragSelectTrackerMap:{},dragSelect:null,views:{flow:null},visualizationMode:sg.graph}),ug=e=>e.settings.canvasType===Ym.visualization&&e.editor.visualizationMode===sg.flow,dg=e=>ug(e)?e.editor.views.flow:null,fg=(e,t)=>e.editor.views[t]!==null&&ug(e),pg=(e,t)=>t===`document`?null:e.editor.views[t];function mg(e,t=[]){let n=[...t];return{kind:e,showMode:n.length?ag.keysOnly:ag.nameOnly,positions:{},originX:0,originY:0,zoomLevel:1,centerIds:n}}function hg({collections:e},t){Eh(M(e).collection(`relationshipEntities`).selectAll(),t)}const gg=(e,t)=>t?e.editor.views[t]:dg(e);function _g(e){e.views.flow=null}const vg=O(N.viewOpen),yg=(e,{payload:{kind:t,centerIds:n}})=>{hg(e,t),e.editor.views[t]=mg(t,n)},bg=O(N.viewClose),xg=(e,{payload:{kind:t}})=>{hg(e,t),e.editor.views[t]=null},Sg=O(N.viewScrollTo),Cg=(e,{payload:{originX:t,originY:n,kind:r}})=>{let i=gg(e,r);i&&(i.originX=Ke(t,4),i.originY=Ke(n,4))},wg=O(N.viewStreamScrollTo),Tg=(e,{payload:{movementX:t,movementY:n,kind:r}})=>{let i=gg(e,r);i&&(i.originX=Ke(i.originX+t,4),i.originY=Ke(i.originY+n,4))},Eg=O(N.viewChangeZoomLevel),Dg=(e,{payload:{value:t,kind:n}})=>{let r=gg(e,n);r&&(r.zoomLevel=Yh(t))},Og=O(N.viewStreamZoomLevel),kg=(e,{payload:{value:t,kind:n}})=>{let r=gg(e,n);r&&(r.zoomLevel=Yh(r.zoomLevel+t))},Ag=O(N.viewMoveTable),jg=(e,{payload:{ids:t,movementX:n,movementY:r,kind:i}})=>{let a=gg(e,i);if(a)for(let e of t){let t=a.positions[e];t&&(t.x=Ke(t.x+n,4),t.y=Ke(t.y+r,4))}},Mg=O(N.viewSetLayout),Ng=({editor:e},{payload:{kind:t,positions:n}})=>{let r=e.views[t];r&&(r.positions=Object.fromEntries(Object.entries(n).map(([e,{x:t,y:n}])=>[e,{x:t,y:n}])))},Pg=O(N.viewChangeShowMode),Fg=(e,{payload:{value:t,kind:n}})=>{let r=gg(e,n);r&&(r.showMode=t)},Ig=O(N.viewSetCenters),Lg=(e,{payload:{tableIds:t,kind:n}})=>{let r=gg(e,n);r&&(r.centerIds=[...t])},Rg=O(N.changeVisualizationMode),zg=({editor:e},{payload:{value:t}})=>{e.visualizationMode=t},Bg={[N.viewOpen]:yg,[N.viewClose]:xg,[N.viewScrollTo]:Cg,[N.viewStreamScrollTo]:Tg,[N.viewChangeZoomLevel]:Dg,[N.viewStreamZoomLevel]:kg,[N.viewMoveTable]:jg,[N.viewSetLayout]:Ng,[N.viewChangeShowMode]:Fg,[N.viewSetCenters]:Lg,[N.changeVisualizationMode]:zg},Vg={viewOpenAction:vg,viewCloseAction:bg,viewScrollToAction:Sg,viewStreamScrollToAction:wg,viewChangeZoomLevelAction:Eg,viewStreamZoomLevelAction:Og,viewMoveTableAction:Ag,viewSetLayoutAction:Mg,viewChangeShowModeAction:Pg,viewSetCentersAction:Ig,changeVisualizationModeAction:Rg},Hg={shared:1,changeOnly:2,following:4,drag:8};function Ug(e,t){return{...ie(t),tags:S(t.tags)&&Number.isInteger(t.tags)?t.tags|e:e}}function Wg(e,t){return t.map(t=>Ug(e,t))}(e=>(...t)=>function*(n,r){yield Wg(e,Iu(n,r,t))})(Hg.changeOnly);function W(e,t){return(e&t)===t}const Gg=Object.freeze({tableIds:[],memoIds:[],relationshipIds:[]});function Kg(e,t,n=`document`){let{x:r,y:i}=pg(e,n)?.positions[t.id]??t.ui;return{x:r,y:i}}const qg=e=>W(e,z.primaryKey)||W(e,z.foreignKey);function Jg(e,t){let n=M(e.collections).collection(`relationshipEntities`).selectByIds(e.doc.relationshipIds);for(let{start:e,end:r}of n)t(e.tableId,e.columnIds),t(r.tableId,r.columnIds)}function Yg(e,t){let n=new Set;return Jg(e,(e,r)=>{e===t.id&&r.forEach(e=>n.add(e))}),n}function Xg(e,t,n=`document`){let r=pg(e,n);if(!r||r.showMode===ag.allFields)return t.columnIds;if(r.showMode===ag.nameOnly)return[];let i=Yg(e,t);return M(e.collections).collection(`tableColumnEntities`).selectByIds(t.columnIds).filter(e=>qg(e.ui.keys)||i.has(e.id)).map(e=>e.id)}function Zg(e,t=`document`){let{doc:n,collections:r}=e;if(t===`document`)return{tableIds:n.tableIds,memoIds:n.memoIds,relationshipIds:n.relationshipIds};let i=pg(e,t);if(!i)return Gg;let a=M(r).collection(`relationshipEntities`).selectByIds(n.relationshipIds),o=new Set(Object.keys(i.positions)),s=n.tableIds.filter(e=>o.has(e)),c=new Set(s);return{tableIds:s,memoIds:[],relationshipIds:a.filter(({start:e,end:t})=>c.has(e.tableId)&&c.has(t.tableId)).map(e=>e.id)}}const Qg=Ma({tableId:{}}),$g=new Map;function e_(e){$g.delete(e),Reflect.deleteProperty(Qg.tableId,e)}function t_(e,t,n=`document`){let r=pg(e,n),{id:i}=e.editor;if(t===null||!r){$g.get(i)?.kind===n&&e_(i);return}$g.set(i,r),Qg.tableId[i]=t}function n_(e,t,n=`document`){let{id:r}=e.editor;Qg.tableId[r]===t&&$g.get(r)?.kind===n&&e_(r)}const r_=Ma({tableId:{}}),i_=new Map;function a_(e){i_.delete(e),Reflect.deleteProperty(r_.tableId,e)}function o_(e,t,n=`document`){let r=pg(e,n);if(!r)return;let{id:i}=e.editor;if((i_.get(i)===r?r_.tableId[i]:void 0)===t){a_(i);return}i_.set(i,r),r_.tableId[i]=t}function s_(e){return 9+e.ui.width+8+1}function c_(e){return 25+e.ui.height+8+1}let l_=0;function u_(){return l_}function d_(){l_++}function f_(e,{settings:{show:t,maxWidthComment:n},collections:r}){let i=20+e.ui.widthName+8;if(W(t,P.tableComment)){let t=n===-1?e.ui.widthComment:n<e.ui.widthComment?n:e.ui.widthComment;i+=t+8}i+=28;let a=m_(t);i<a&&(i=a);let o=g_(M(r).collection(`tableColumnEntities`).selectByIds(e.columnIds),t,n);return i<o.width&&(i=o.width),{...o,width:9+i+8+1}}const p_=[{key:P.columnComment,width:60},{key:P.columnDataType,width:60},{key:P.columnDefault,width:60},{key:P.columnNotNull,width:35},{key:P.columnAutoIncrement,width:15},{key:P.columnUnique,width:22}];function m_(e){return p_.reduce((t,{key:n,width:r})=>W(e,n)?t+r+8:t,100)}function h_(){return{width:0,name:0,comment:0,dataType:0,default:0,notNull:0,autoIncrement:0,unique:0}}function g_(e,t,n){let r=h_();for(let i of e)r.name<i.ui.widthName&&(r.name=i.ui.widthName),W(t,P.columnComment)&&r.comment<i.ui.widthComment&&(r.comment=n===-1?i.ui.widthComment:n<i.ui.widthComment?n:i.ui.widthComment),W(t,P.columnDataType)&&r.dataType<i.ui.widthDataType&&(r.dataType=i.ui.widthDataType),W(t,P.columnDefault)&&r.default<i.ui.widthDefault&&(r.default=i.ui.widthDefault);return W(t,P.columnNotNull)&&(r.notNull=35),W(t,P.columnAutoIncrement)&&(r.autoIncrement=15),W(t,P.columnUnique)&&(r.unique=22),r.width=Object.entries(r).reduce((e,[t,n])=>t===`width`||n===0?e:e+n+8,32),r}function __(e,t,n){let r=h_(),i=M(t.collections).collection(`tableColumnEntities`).selectByIds(n);for(let e of i)r.name=Math.max(r.name,e.ui.widthName),r.dataType=Math.max(r.dataType,e.ui.widthDataType);let a=i.length?22+r.name+8+r.dataType:0,o=Math.max(y_(e),a,154);return i.length&&(r.name+=o-a),r.width=18+o,r}function v_(e){return Math.ceil(e*1.1666666666666667*1.04)}function y_(e){return 20+v_(e.ui.widthName)+8+28}function b_(e=`document`){return e===`document`?20:24}function x_(e=`document`){return e===`document`?24:32}function S_(e,t=e.columnIds.length,n=`document`){return 9+b_(n)+t*x_(n)+1}function C_({doc:{tableIds:e},collections:t},{toWidth:n}){d_();let r=M(t).collection(`tableEntities`).selectByIds(e),i=M(t).collection(`tableColumnEntities`);for(let e of r){e.ui.widthName=H(n(e.name)),e.ui.widthComment=H(n(e.comment));let t=i.selectByIds(e.columnIds);for(let e of t)e.ui.widthName=H(n(e.name)),e.ui.widthDataType=H(n(e.dataType)),e.ui.widthDefault=H(n(e.default)),e.ui.widthComment=H(n(e.comment))}}const w_={document:new WeakMap,flow:new WeakMap};function T_(e,t,n){let r=w_[n],i=n===`document`?E_(e,t):D_(e,t,n),a=r.get(t);if(a?.key===i.key)return a;let o=i.measure();return r.set(t,o),o}function E_(e,t){let{settings:n}=e,r=`${u_()}|${n.show}|${n.maxWidthComment}|${t.ui.widthName}|${t.ui.widthComment}|${t.columnIds.length}`;return{key:r,measure:()=>({key:r,width:f_(t,e).width,height:S_(t)})}}function D_(e,t,n){let r=pg(e,n)?.showMode??ag.allFields,i=Xg(e,t,n),a=`${u_()}|${t.ui.widthName}|${t.columnIds.length}|${r}|${i.length}`;return{key:a,measure:()=>({key:a,width:__(t,e,i).width,height:S_(t,i.length,n)})}}function O_(e,t,n=`document`){let{width:r,height:i}=T_(e,t,n),{x:a,y:o}=Kg(e,t,n);return{width:r,height:i,top:{x:a+r/2,y:o},bottom:{x:a+r/2,y:o+i},left:{x:a,y:o+i/2},right:{x:a+r,y:o+i/2},lt:{x:a,y:o},rt:{x:a+r,y:o},lb:{x:a,y:o+i},rb:{x:a+r,y:o+i}}}function k_(e,t){return Math.sqrt((e.x-t.x)**2+(e.y-t.y)**2)}function A_(e,t,n=`document`){let{width:r,height:i}=O_(e,t,n),{x:a,y:o}=Kg(e,t,n);return{x:a,y:o,width:r,height:i}}function j_(e,t,n=`document`){return n===`document`?f_(t,e):__(t,e,Xg(e,t,n))}function M_(e,t,n,r=`document`){let{x:i,y:a,width:o}=A_(e,t,r),s=x_(r);return{x:i+9,y:a+9+b_(r)+n*s,width:o-18,height:s}}function N_(e){let{x:t,y:n}=e.ui;return{x:t,y:n,width:s_(e),height:c_(e)}}function P_(e,t){let n=Math.min(e.x,t.x),r=Math.min(e.y,t.y);return{x:n,y:r,width:Math.max(e.x+e.width,t.x+t.width)-n,height:Math.max(e.y+e.height,t.y+t.height)-r}}function F_(e){return R_(e,[])}function I_(e,t=`document`){return R_(e,[],t)}function L_(e,t=[],n=`document`){let{collections:r,doc:i}=e,{tableIds:a,memoIds:o}=n===`document`?i:Zg(e,n),s=new Map(t.map(e=>[e.id,e])),c=M(r).collection(`tableEntities`).selectByIds(a),l=M(r).collection(`memoEntities`).selectByIds(o);return[...c.map(t=>{let r=A_(e,t,n),i=s.get(t.id);return i?{...r,x:i.x,y:i.y}:r}),...l.map(N_)]}function R_(e,t,n=`document`){let r=L_(e,t,n);return r.length?r.reduce(P_):null}function z_(e){return dg(e)??e.settings}function B_(e,t=`document`){return pg(e,t)??e.settings}function V_(e,t){return t?B_(e,t):z_(e)}function H_({originX:e,originY:t}){return{x:e,y:t}}const U_=e=>e>0?e:1;function W_(e,t){let n=H_(e);return{x:n.x+t.x*e.zoomLevel,y:n.y+t.y*e.zoomLevel}}function G_(e,t){let n=U_(e.zoomLevel),r=H_({...e,zoomLevel:n});return{x:(t.x-r.x)/n,y:(t.y-r.y)/n}}function K_(e,t,n){return{x:n.x-t.x*e,y:n.y-t.y*e}}function q_(e){let{viewportWidth:t,viewportHeight:n}=e,r=U_(e.zoomLevel),i=H_({...e,zoomLevel:r}),a=(t>0?t:uh)/r,o=(n>0?n:675)/r;return{x:-i.x/r-a,y:-i.y/r-o,width:a*3,height:o*3}}function J_(e,t=`document`){let{originX:n,originY:r,zoomLevel:i}=B_(e,t),{viewport:a}=e.editor;return q_({originX:n,originY:r,zoomLevel:i,viewportWidth:a.width,viewportHeight:a.height})}function Y_(e,t){return!(t.x>e.x+e.width||t.x+t.width<e.x||t.y>e.y+e.height||t.y+t.height<e.y)}function X_(e,t,n,r=`document`){return Y_(e,A_(t,n,r))}function Z_(e,t,n,r=`document`){return Y_(e,Bh(t,n,r))}const Q_=Ma({frozen:{}}),$_=(e,t)=>`${e.editor.id}:${t}`,ev=(e,t)=>Q_.frozen[$_(e,t)]??null;function tv(e,t=`document`){let{originX:n,originY:r}=B_(e,t);Q_.frozen[$_(e,t)]={content:I_(e,t),origin:{x:n,y:r}}}function nv(e,t=`document`){Reflect.deleteProperty(Q_.frozen,$_(e,t))}function rv(e,t=`document`){let n=ev(e,t);return n?n.content:I_(e,t)}const G={changeDatabaseName:`settings.changeDatabaseName`,changeZoomLevel:`settings.changeZoomLevel`,streamZoomLevel:`settings.streamZoomLevel`,scrollTo:`settings.scrollTo`,streamScrollTo:`settings.streamScrollTo`,changeShow:`settings.changeShow`,changeDatabase:`settings.changeDatabase`,changeCanvasType:`settings.changeCanvasType`,changeLanguage:`settings.changeLanguage`,changeTableNameCase:`settings.changeTableNameCase`,changeColumnNameCase:`settings.changeColumnNameCase`,changeBracketType:`settings.changeBracketType`,changeRelationshipDataTypeSync:`settings.changeRelationshipDataTypeSync`,changeRelationshipOptimization:`settings.changeRelationshipOptimization`,changeColumnOrder:`settings.changeColumnOrder`,changeMaxWidthComment:`settings.changeMaxWidthComment`,changeIgnoreSaveSettings:`settings.changeIgnoreSaveSettings`},iv=e=>e+0;function av(e,t,n,r){let i=-t*r,a=n-e*r;return{min:iv(Math.min(i,a)),max:iv(Math.max(i,a))}}function ov(e,t,n,r,i){let{min:a,max:o}=av(t,n,r,i);if(a<e&&e<o)return e;let s=Math.min(r,(n-t)*i);return iv(Math.min(Math.max(e,a+s),o-s))}const sv=O(G.changeDatabaseName),cv=({settings:e,lww:t},{payload:{value:n},version:r},{clock:i})=>{$p(t,r??i.getVersion(),`settings.databaseName`,`settings`,`databaseName`,()=>{e.databaseName=n})},lv=O(G.changeZoomLevel),uv=({settings:e},{payload:{value:t},tags:n})=>{!x(n)&&W(n,Hg.following)||(e.zoomLevel=Yh(t))},dv=O(G.streamZoomLevel),fv=({settings:e},{payload:{value:t},tags:n})=>{!x(n)&&W(n,Hg.following)||(e.zoomLevel=Yh(e.zoomLevel+t))},pv=({width:e,height:t})=>e>0&&t>0;function mv(e){let{settings:{originX:t,originY:n,zoomLevel:r},editor:{viewport:i}}=e,a=rv(e);return!a||!pv(i)?{x:t,y:n}:{x:ov(t,a.x,a.x+a.width,i.width,r),y:ov(n,a.y,a.y+a.height,i.height,r)}}const hv=O(G.scrollTo),gv=({settings:e},{payload:{originX:t,originY:n},tags:r})=>{!x(r)&&W(r,Hg.following)||(e.originX=Ke(t,4),e.originY=Ke(n,4))},_v=O(G.streamScrollTo),vv=({settings:e},{payload:{movementX:t,movementY:n},tags:r})=>{!x(r)&&W(r,Hg.following)||(e.originX=Ke(e.originX+t,4),e.originY=Ke(e.originY+n,4))},yv=O(G.changeShow),bv=({settings:e},{payload:{show:t,value:n}})=>{e.show=n?e.show|t:e.show&~t},xv=O(G.changeDatabase),Sv=({settings:e},{payload:{value:t}})=>{Xh(t)&&(e.database=t)},Cv=O(G.changeCanvasType),wv=({settings:e},{payload:{value:t},tags:n})=>{!x(n)&&W(n,Hg.following)||(e.canvasType=t)},Tv=O(G.changeLanguage),Ev=({settings:e},{payload:{value:t}})=>{$h(t)&&(e.language=t)},Dv=O(G.changeTableNameCase),Ov=({settings:e},{payload:{value:t}})=>{Zh(t)&&(e.tableNameCase=t)},kv=O(G.changeColumnNameCase),Av=({settings:e},{payload:{value:t}})=>{Zh(t)&&(e.columnNameCase=t)},jv=O(G.changeBracketType),Mv=({settings:e},{payload:{value:t}})=>{Qh(t)&&(e.bracketType=t)},Nv=O(G.changeRelationshipDataTypeSync),Pv=({settings:e},{payload:{value:t}})=>{e.relationshipDataTypeSync=t},Fv=O(G.changeRelationshipOptimization),Iv=({settings:e},{payload:{value:t}})=>{e.relationshipOptimization=t},Lv=O(G.changeColumnOrder),Rv=({settings:e},{payload:{value:t,target:n}})=>{if(t===n||!eg(t)||!eg(n))return;let r=e.columnOrder.indexOf(t),i=e.columnOrder.indexOf(n);r!==-1&&i!==-1&&(e.columnOrder.splice(r,1),e.columnOrder.splice(i,0,t))},zv=O(G.changeMaxWidthComment),Bv=({settings:e},{payload:{value:t}})=>{e.maxWidthComment=t===-1?t:qh(t)},Vv=O(G.changeIgnoreSaveSettings),Hv=({settings:e},{payload:{saveSettingType:t,value:n}})=>{e.ignoreSaveSettings=n?e.ignoreSaveSettings|t:e.ignoreSaveSettings&~t},Uv={[G.changeDatabaseName]:cv,[G.changeZoomLevel]:uv,[G.streamZoomLevel]:fv,[G.scrollTo]:gv,[G.streamScrollTo]:vv,[G.changeShow]:bv,[G.changeDatabase]:Sv,[G.changeCanvasType]:wv,[G.changeLanguage]:Ev,[G.changeTableNameCase]:Ov,[G.changeColumnNameCase]:Av,[G.changeBracketType]:Mv,[G.changeRelationshipDataTypeSync]:Pv,[G.changeRelationshipOptimization]:Iv,[G.changeColumnOrder]:Rv,[G.changeMaxWidthComment]:Bv,[G.changeIgnoreSaveSettings]:Hv},Wv={changeDatabaseNameAction:sv,changeZoomLevelAction:lv,streamZoomLevelAction:dv,scrollToAction:hv,streamScrollToAction:_v,changeShowAction:yv,changeDatabaseAction:xv,changeCanvasTypeAction:Cv,changeLanguageAction:Tv,changeTableNameCaseAction:Dv,changeColumnNameCaseAction:kv,changeBracketTypeAction:jv,changeRelationshipDataTypeSyncAction:Nv,changeRelationshipOptimizationAction:Fv,changeColumnOrderAction:Lv,changeMaxWidthCommentAction:zv,changeIgnoreSaveSettingsAction:Vv},Gv=e=>e.ui.zIndex,Kv=(e,t)=>Math.max(1,...e.map(Gv),...t.map(Gv))+1,qv=e=>t=>e.y===t.y&&e.x===t.x;function Jv(e,t,n){let r=G_(e,{x:200,y:100}),i=[...t,...n].map(({ui:e})=>e);for(;i.some(qv(r));)r.x+=50,r.y+=50;return r}function Yv(){let e=Date.now();return{updateAt:e,createAt:e}}function Xv(e,t){return e<t?_e(e,t+1):_e(t,e+1)}function Zv(e){return be(ne(e??``))}function Qv(e,t){return ye([...e,t])}function $v(e,t,n){if(!t||t===n)return[n];let r=e.indexOf(t),i=e.indexOf(n);return r===-1?[n]:Xv(r,i).map(t=>e[t])}function ey(e,t,n,r){return ye([...t,...$v(e,n,r)])}const ty={[F.columnName]:!0,[F.columnDataType]:P.columnDataType,[F.columnNotNull]:P.columnNotNull,[F.columnUnique]:P.columnUnique,[F.columnAutoIncrement]:P.columnAutoIncrement,[F.columnDefault]:P.columnDefault,[F.columnComment]:P.columnComment},ny={[F.columnName]:U.columnName,[F.columnDataType]:U.columnDataType,[F.columnNotNull]:U.columnNotNull,[F.columnUnique]:U.columnUnique,[F.columnAutoIncrement]:U.columnAutoIncrement,[F.columnDefault]:U.columnDefault,[F.columnComment]:U.columnComment},ry=[U.tableName,U.tableComment];function iy({settings:{show:e,columnOrder:t}}){return t.filter(t=>{let n=ty[t];return n===!0||W(e,n)}).map(e=>ny[e])}function ay({collections:e,editor:{focusTable:t}}){return t?!!M(e).collection(`tableEntities`).selectById(t.tableId)?.columnIds.length:!1}function oy(e){let{editor:{focusTable:t}}=e;if(!t)return!0;let n=iy(e);return n.indexOf(t.focusType)===n.length-1}function sy(e){let{editor:{focusTable:t}}=e;return!t||iy(e).indexOf(t.focusType)===0}function cy({collections:e,editor:{focusTable:t}}){if(!t?.columnId)return!0;let n=M(e).collection(`tableEntities`).selectById(t.tableId);return!n||n.columnIds.indexOf(t.columnId)===n.columnIds.length-1}function ly({collections:e,editor:{focusTable:t}}){if(!t?.columnId)return!0;let n=M(e).collection(`tableEntities`).selectById(t.tableId);return!n||n.columnIds.indexOf(t.columnId)===0}function uy(e){let t=iy(e);return t[t.length-1]}function dy(e){return iy(e)[0]}function fy(e){let{editor:{focusTable:t}}=e;if(!t)return U.columnName;let n=iy(e),r=n.indexOf(t.focusType);return oy(e)?n[0]:n[r+1]}function py(e){let{editor:{focusTable:t}}=e;if(!t)return U.columnName;let n=iy(e),r=n.indexOf(t.focusType);return sy(e)?n[n.length-1]:n[r-1]}function my(e,t){let{collections:n,editor:{focusTable:r}}=e;if(!r?.columnId)return null;let i=M(n).collection(`tableEntities`).selectById(r.tableId);if(!i)return null;let a=i.columnIds.indexOf(r.columnId);if(a<=0)return null;let o=null;for(let e=a;e>=0;e--){let n=i.columnIds[e];if(!t.includes(n)){o=n;break}}return o}function hy({settings:{show:e}}){return W(e,P.tableComment)?ry:[U.tableName]}function gy(e){let{editor:{focusTable:t}}=e;if(!t)return!0;let n=hy(e);return n.indexOf(t.focusType)===n.length-1}function _y(e){let{editor:{focusTable:t}}=e;return!t||hy(e).indexOf(t.focusType)===0}const vy=B(ry);function yy(e){let{editor:{focusTable:t}}=e;if(!t)return U.tableName;let n=hy(e),r=n.indexOf(t.focusType);return gy(e)?n[0]:n[r+1]}function by(e){let{editor:{focusTable:t}}=e;if(!t)return U.tableName;let n=hy(e),r=n.indexOf(t.focusType);return _y(e)?n[n.length-1]:n[r-1]}function xy(e,t){let{collections:n,editor:{focusTable:r}}=e;if(!r)return;let i=M(n).collection(`tableEntities`).selectById(r.tableId);if(i){if(vy(r.focusType)){if(ay(e)){let t=i.columnIds[i.columnIds.length-1];r.focusType=uy(e),r.columnId=t,r.prevSelectColumnId=t,r.selectColumnIds=[t]}}else if(ly(e))r.focusType=U.tableName,r.columnId=null,r.prevSelectColumnId=null,r.selectColumnIds=[];else if(r.columnId){let e=i.columnIds.indexOf(r.columnId),n=i.columnIds[e-1];r.columnId=n,r.prevSelectColumnId=n,r.selectColumnIds=t.shiftKey&&t.moveKey!==cg.Tab?Qv(r.selectColumnIds,n):[n]}}}function Sy(e,t){let{collections:n,editor:{focusTable:r}}=e;if(!r)return;let i=M(n).collection(`tableEntities`).selectById(r.tableId);if(i){if(vy(r.focusType)){if(ay(e)){let t=i.columnIds[0];r.focusType=dy(e),r.columnId=t,r.prevSelectColumnId=t,r.selectColumnIds=[t]}}else if(cy(e))r.focusType=U.tableName,r.columnId=null,r.prevSelectColumnId=null,r.selectColumnIds=[];else if(r.columnId){let e=i.columnIds.indexOf(r.columnId),n=i.columnIds[e+1];r.columnId=n,r.prevSelectColumnId=n,r.selectColumnIds=t.shiftKey&&t.moveKey!==cg.Tab?Qv(r.selectColumnIds,n):[n]}}}function Cy(e,t){let{collections:n,editor:{focusTable:r}}=e;if(!r)return;let i=M(n).collection(`tableEntities`).selectById(r.tableId);if(i){if(vy(r.focusType)){if(_y(e)){if(ay(e)){let t=i.columnIds[i.columnIds.length-1];r.focusType=uy(e),r.columnId=t,r.prevSelectColumnId=t,r.selectColumnIds=[t]}else r.focusType=by(e)}else r.focusType=by(e)}else if(sy(e)){if(ly(e))r.focusType=W(e.settings.show,P.tableComment)?U.tableComment:U.tableName,r.columnId=null,r.prevSelectColumnId=null,r.selectColumnIds=[];else if(r.columnId){let n=i.columnIds.indexOf(r.columnId),a=i.columnIds[n-1];r.focusType=uy(e),r.columnId=a,r.prevSelectColumnId=a,r.selectColumnIds=t.shiftKey&&t.moveKey!==cg.Tab?Qv(r.selectColumnIds,a):[a]}}else r.focusType=py(e),!t.shiftKey&&r.columnId&&(r.prevSelectColumnId=r.columnId,r.selectColumnIds=[r.columnId])}}function wy(e,t){let{collections:n,editor:{focusTable:r}}=e;if(!r)return;let i=M(n).collection(`tableEntities`).selectById(r.tableId);if(i){if(vy(r.focusType)){if(gy(e)){if(ay(e)){let t=i.columnIds[0];r.focusType=dy(e),r.columnId=t,r.prevSelectColumnId=t,r.selectColumnIds=[t]}else r.focusType=yy(e)}else r.focusType=yy(e)}else if(oy(e)){if(cy(e))r.focusType=U.tableName,r.columnId=null,r.prevSelectColumnId=null,r.selectColumnIds=[];else if(r.columnId){let n=i.columnIds.indexOf(r.columnId),a=i.columnIds[n+1];r.focusType=dy(e),r.columnId=a,r.prevSelectColumnId=a,r.selectColumnIds=t.shiftKey&&t.moveKey!==cg.Tab?Qv(r.selectColumnIds,a):[a]}}else r.focusType=fy(e),!t.shiftKey&&r.columnId&&(r.prevSelectColumnId=r.columnId,r.selectColumnIds=[r.columnId])}}const Ty=3e4,Ey=9e4,Dy=3e3,Oy=O(N.changeHasHistory),ky=({editor:e},{payload:{hasRedo:t,hasUndo:n}})=>{e.hasRedo=t,e.hasUndo=n},Ay=O(N.selectAll),jy=({editor:e,doc:t})=>{let n=t.tableIds.reduce((e,t)=>(e[t]=ig.table,e),{});e.selectedMap={...t.memoIds.reduce((e,t)=>(e[t]=ig.memo,e),{}),...n}},My=O(N.unselectAll),Ny=({editor:e})=>{Object.keys(e.selectedMap).forEach(t=>{Reflect.deleteProperty(e.selectedMap,t)})},Py=O(N.select),Fy=({editor:e},{payload:t})=>{Object.assign(e.selectedMap,t)},Iy=O(N.changeViewport),Ly=(e,{payload:{width:t,height:n}})=>{e.editor.viewport.width=t,e.editor.viewport.height=n,e.editor.scrollPullPending&&By(e)},Ry=O(N.clear),zy=e=>{let{doc:t,collections:n}=Jp({});e.doc=t,e.collections=n,e.editor.scrollPullPending=!1,_g(e.editor)};function By(e){let{settings:t,editor:n}=e;if(!pv(n.viewport)){n.scrollPullPending=!0;return}let r=mv(e);t.originX=Ke(r.x,4),t.originY=Ke(r.y,4),n.scrollPullPending=!1}const Vy=O(N.loadJson),Hy=(e,{payload:{value:t}})=>{let{version:n,settings:r,doc:i,collections:a}=qm(t);tg(r.canvasType)||(r.canvasType=Ym.ERD),Object.assign(e.settings,r),e.version=n,e.doc=i,e.collections=a,_g(e.editor),By(e)},Uy=O(N.initialClear),Wy=e=>{let{doc:t,collections:n}=Jp({});e.doc=t,e.collections=n,e.editor.scrollPullPending=!1,_g(e.editor)},Gy=O(N.initialLoadJson),Ky=(e,{payload:{value:t}})=>{let{version:n,settings:r,doc:i,collections:a}=qm(t);tg(r.canvasType)||(r.canvasType=Ym.ERD),Object.assign(e.settings,r),e.version=n,e.doc=i,e.collections=a,_g(e.editor),By(e)},qy=O(N.focusTable),Jy=({editor:e,collections:t},{payload:n})=>{let r=M(t).collection(`tableEntities`);if(e.focusTable?.tableId===n.tableId&&n.focusType)e.focusTable.focusType=n.focusType,e.focusTable.columnId=null,e.focusTable.prevSelectColumnId=null,e.focusTable.selectColumnIds=[];else if(n.focusType){let t=r.selectById(n.tableId);if(!t)return;e.focusTable={tableId:t.id,focusType:n.focusType,columnId:null,prevSelectColumnId:null,selectColumnIds:[],edit:!1}}else if(e.focusTable?.tableId!==n.tableId){let t=r.selectById(n.tableId);if(!t)return;e.focusTable={tableId:t.id,focusType:U.tableName,columnId:null,prevSelectColumnId:null,selectColumnIds:[],edit:!1}}},Yy=O(N.focusColumn),Xy=({editor:e,collections:t},{payload:n})=>{let r=M(t).collection(`tableEntities`);if(e.focusTable?.tableId===n.tableId){let t=r.selectById(n.tableId);if(!t)return;let i=e.focusTable;i.columnId=n.columnId,i.focusType=n.focusType,i.selectColumnIds=n.$mod&&n.shiftKey?ey(t.columnIds,i.selectColumnIds,i.prevSelectColumnId,i.columnId):n.shiftKey?$v(t.columnIds,i.prevSelectColumnId,i.columnId):n.$mod?Qv(i.selectColumnIds,n.columnId):[n.columnId],i.prevSelectColumnId=n.columnId}else{let t=r.selectById(n.tableId);if(!t)return;e.focusTable={tableId:t.id,focusType:n.focusType,columnId:n.columnId,prevSelectColumnId:n.columnId,selectColumnIds:[n.columnId],edit:!1}}},Zy=O(N.focusTableEnd),Qy=({editor:e})=>{e.focusTable=null},$y=O(N.focusMoveTable),eb=(e,{payload:t})=>{let{editor:{focusTable:n}}=e;if(n)switch(n.edit=!1,t.moveKey){case cg.ArrowUp:xy(e,t);break;case cg.ArrowDown:Sy(e,t);break;case cg.ArrowLeft:Cy(e,t);break;case cg.ArrowRight:wy(e,t);break;case cg.Tab:t.shiftKey?Cy(e,t):wy(e,t)}},tb=O(N.editTable),nb=({editor:{focusTable:e}})=>{e&&(e.edit=!0)},rb=O(N.editTableEnd),ib=({editor:{focusTable:e}})=>{e&&(e.edit=!1)},ab=O(N.editMemo),ob=({editor:e},{payload:{id:t}})=>{e.editMemoId=t},sb=O(N.editMemoEnd),cb=({editor:e})=>{e.editMemoId=null},lb=O(N.scrollMemo),ub=({editor:e},{payload:{id:t,scrollTop:n}})=>{e.memoScrollTopMap[t]=Number.isFinite(n)?Math.max(0,n):0},db=O(N.selectAllColumn),fb=({collections:e,editor:{focusTable:t}})=>{if(!t)return;let n=M(e).collection(`tableEntities`).selectById(t.tableId);n&&(t.selectColumnIds=[...n.columnIds])},pb=O(N.drawStartRelationship),mb=({editor:e},{payload:{relationshipType:t}})=>{e.drawRelationship={relationshipType:t,start:null,end:{x:0,y:0}}},hb=O(N.drawStartAddRelationship),gb=({editor:{drawRelationship:e},collections:t},{payload:{tableId:n}})=>{if(!e)return;let r=M(t).collection(`tableEntities`).selectById(n);r&&(e.start={tableId:n,x:r.ui.x,y:r.ui.y})},_b=O(N.drawEndRelationship),vb=({editor:e})=>{e.drawRelationship=null},yb=O(N.drawRelationship),bb=({editor:{drawRelationship:e},settings:t},{payload:{x:n,y:r}})=>{if(!e?.start)return;let i=G_(t,{x:n,y:r});e.end.x=i.x,e.end.y=i.y},xb=O(N.hoverColumnMap),Sb=({editor:e},{payload:{columnIds:t}})=>{Object.keys(e.hoverColumnMap).forEach(t=>{Reflect.deleteProperty(e.hoverColumnMap,t)});for(let n of t)e.hoverColumnMap[n]=!0},Cb=O(N.hoverRelationshipMap),wb=({editor:e},{payload:{relationshipIds:t}})=>{Object.keys(e.hoverRelationshipMap).forEach(t=>{Reflect.deleteProperty(e.hoverRelationshipMap,t)});for(let n of t)e.hoverRelationshipMap[n]=!0},Tb=O(N.changeOpenMap),Eb=({editor:e},{payload:t})=>{Object.assign(e.openMap,t)},Db=O(N.changeHandTool),Ob=({editor:e},{payload:{value:t}})=>{e.handTool=t,t&&(e.drawRelationship=null)},kb=O(N.changeZenMode),Ab=({editor:e},{payload:{value:t}})=>{e.zenMode=t},jb=O(N.dragstartColumn),Mb=({editor:e},{payload:t})=>{e.draggableColumn=t,t.columnIds.forEach(t=>{e.draggingColumnMap[t]=!0})},Nb=O(N.dragendColumn),Pb=({editor:e})=>{e.draggableColumn=null,Object.keys(e.draggingColumnMap).forEach(t=>{Reflect.deleteProperty(e.draggingColumnMap,t)})},Fb=O(N.sharedMouseTracker),Ib=({editor:e},{payload:t,tags:n,meta:r})=>{if(x(n)||!W(n,Hg.shared)||!C(r?.editorId)||e.id===r.editorId)return;let i=e.sharedMouseTrackerMap[r.editorId],a=!C(r.nickname)||Ge(r.nickname.trim())?`user`:r.nickname.trim();i?(i.x=t.x,i.y=t.y,i.nickname=a,clearTimeout(i.timeoutId),i.timeoutId=setTimeout(()=>{Reflect.deleteProperty(e.sharedMouseTrackerMap,r.editorId)},Ty)):e.sharedMouseTrackerMap[r.editorId]={...t,id:r.editorId,nickname:a,timeoutId:setTimeout(()=>{Reflect.deleteProperty(e.sharedMouseTrackerMap,r.editorId)},Ty)}},Lb=O(N.sharedFocusTracker),Rb=({editor:e},{payload:{focus:t},tags:n,meta:r})=>{if(x(n)||!W(n,Hg.shared)||!C(r?.editorId)||e.id===r.editorId)return;let i=e.sharedFocusTrackerMap[r.editorId];if(!t){i&&(clearTimeout(i.timeoutId),Reflect.deleteProperty(e.sharedFocusTrackerMap,r.editorId));return}i?(i.tableId=t.tableId,i.columnId=t.columnId,i.focusType=t.focusType,clearTimeout(i.timeoutId),i.timeoutId=setTimeout(()=>{Reflect.deleteProperty(e.sharedFocusTrackerMap,r.editorId)},Ey)):e.sharedFocusTrackerMap[r.editorId]={...t,id:r.editorId,timeoutId:setTimeout(()=>{Reflect.deleteProperty(e.sharedFocusTrackerMap,r.editorId)},Ey)}},zb=O(N.sharedSelectionTracker),Bb=({editor:e},{payload:{selectedIds:t},tags:n,meta:r})=>{if(x(n)||!W(n,Hg.shared)||!C(r?.editorId)||e.id===r.editorId)return;let i=e.sharedSelectionTrackerMap[r.editorId];if(!t.length){i&&(clearTimeout(i.timeoutId),Reflect.deleteProperty(e.sharedSelectionTrackerMap,r.editorId));return}i?(i.selectedIds=t,clearTimeout(i.timeoutId),i.timeoutId=setTimeout(()=>{Reflect.deleteProperty(e.sharedSelectionTrackerMap,r.editorId)},Ey)):e.sharedSelectionTrackerMap[r.editorId]={id:r.editorId,selectedIds:t,timeoutId:setTimeout(()=>{Reflect.deleteProperty(e.sharedSelectionTrackerMap,r.editorId)},Ey)}},Vb=O(N.sharedDragSelectTracker),Hb=({editor:e},{payload:{rect:t},tags:n,meta:r})=>{if(x(n)||!W(n,Hg.shared)||!C(r?.editorId)||e.id===r.editorId)return;let i=e.sharedDragSelectTrackerMap[r.editorId];if(!t){i&&(clearTimeout(i.timeoutId),Reflect.deleteProperty(e.sharedDragSelectTrackerMap,r.editorId));return}i?(i.x=t.x,i.y=t.y,i.w=t.w,i.h=t.h,clearTimeout(i.timeoutId),i.timeoutId=setTimeout(()=>{Reflect.deleteProperty(e.sharedDragSelectTrackerMap,r.editorId)},Dy)):e.sharedDragSelectTrackerMap[r.editorId]={...t,id:r.editorId,timeoutId:setTimeout(()=>{Reflect.deleteProperty(e.sharedDragSelectTrackerMap,r.editorId)},Dy)}},Ub=O(N.dragSelectRect),Wb=({editor:e},{payload:{rect:t}})=>{e.dragSelect=t},Gb=O(N.validationIds),Kb=({doc:e,collections:t})=>{let n=M(t).collection(`tableEntities`),r=M(t).collection(`tableColumnEntities`),i=M(t).collection(`indexEntities`),a=M(t).collection(`indexColumnEntities`),o=M(t).collection(`relationshipEntities`),s=M(t).collection(`memoEntities`),c=e.tableIds.filter(e=>!n.selectById(e)),l=e.relationshipIds.filter(e=>!o.selectById(e)),u=e.indexIds.filter(e=>!i.selectById(e)),d=e.memoIds.filter(e=>!s.selectById(e));e.tableIds=e.tableIds.filter(e=>!c.includes(e)),e.relationshipIds=e.relationshipIds.filter(e=>!l.includes(e)),e.indexIds=e.indexIds.filter(e=>!u.includes(e)),e.memoIds=e.memoIds.filter(e=>!d.includes(e)),n.selectAll().forEach(e=>{let t=e.columnIds.filter(e=>!r.selectById(e)),n=e.seqColumnIds.filter(e=>!r.selectById(e));e.columnIds=e.columnIds.filter(e=>!t.includes(e)),e.seqColumnIds=e.seqColumnIds.filter(e=>!n.includes(e))}),i.selectAll().forEach(e=>{let t=e.indexColumnIds.filter(e=>!a.selectById(e)),n=e.seqIndexColumnIds.filter(e=>!a.selectById(e));e.indexColumnIds=e.indexColumnIds.filter(e=>!t.includes(e)),e.seqIndexColumnIds=e.seqIndexColumnIds.filter(e=>!n.includes(e))})},qb=O(N.getLWW),Jb=me,Yb=O(N.mergeLWW),Xb=({lww:e},{payload:{lww:t}})=>{Object.entries(t).forEach(([t,[n,r,i,a]])=>{Zp(e,r,t,n,me),Qp(e,i,t,n,me),Object.entries(a).forEach(([r,i])=>{$p(e,i,t,n,r,me)})})},Zb={[N.changeHasHistory]:ky,[N.selectAll]:jy,[N.unselectAll]:Ny,[N.select]:Fy,[N.changeViewport]:Ly,[N.clear]:zy,[N.loadJson]:Hy,[N.initialClear]:Wy,[N.initialLoadJson]:Ky,[N.focusTable]:Jy,[N.focusColumn]:Xy,[N.focusTableEnd]:Qy,[N.focusMoveTable]:eb,[N.editTable]:nb,[N.editTableEnd]:ib,[N.editMemo]:ob,[N.editMemoEnd]:cb,[N.scrollMemo]:ub,[N.selectAllColumn]:fb,[N.drawStartRelationship]:mb,[N.drawStartAddRelationship]:gb,[N.drawEndRelationship]:vb,[N.drawRelationship]:bb,[N.hoverColumnMap]:Sb,[N.hoverRelationshipMap]:wb,[N.changeOpenMap]:Eb,[N.changeHandTool]:Ob,[N.changeZenMode]:Ab,[N.dragstartColumn]:Mb,[N.dragendColumn]:Pb,[N.sharedMouseTracker]:Ib,[N.sharedFocusTracker]:Rb,[N.sharedSelectionTracker]:Bb,[N.sharedDragSelectTracker]:Hb,[N.dragSelectRect]:Wb,[N.validationIds]:Kb,[N.getLWW]:Jb,[N.mergeLWW]:Xb,...Bg},Qb={changeHasHistoryAction:Oy,selectAllAction:Ay,unselectAllAction:My,selectAction:Py,changeViewportAction:Iy,clearAction:Ry,loadJsonAction:Vy,initialClearAction:Uy,initialLoadJsonAction:Gy,focusTableAction:qy,focusColumnAction:Yy,focusTableEndAction:Zy,focusMoveTableAction:$y,editTableAction:tb,editTableEndAction:rb,editMemoAction:ab,editMemoEndAction:sb,scrollMemoAction:lb,selectAllColumnAction:db,drawStartRelationshipAction:pb,drawStartAddRelationshipAction:hb,drawEndRelationshipAction:_b,drawRelationshipAction:yb,hoverColumnMapAction:xb,hoverRelationshipMapAction:Cb,changeOpenMapAction:Tb,changeHandToolAction:Db,changeZenModeAction:kb,dragstartColumnAction:jb,dragendColumnAction:Nb,sharedMouseTrackerAction:Fb,sharedFocusTrackerAction:Lb,sharedSelectionTrackerAction:zb,sharedDragSelectTrackerAction:Vb,dragSelectRectAction:Ub,validationIdsAction:Gb,getLWWAction:qb,mergeLWWAction:Yb,...Vg},$b=(e,t,n)=>{e.push(Ry(),Vy({value:Jm(n)}))},ex=(e,t,n)=>{e.push(Vy({value:Jm(n)}))},tx={[N.loadJson]:$b,[N.clear]:ex},nx={addIndex:`index.add`,removeIndex:`index.remove`,changeIndexName:`index.changeName`,changeIndexUnique:`index.changeUnique`},rx=e=>Je({id:qe(),name:``,tableId:``,indexColumnIds:[],seqIndexColumnIds:[],unique:!1,meta:Yv()},e??{}),ix=O(nx.addIndex),ax=({doc:e,collections:t,lww:n},{payload:{id:r,tableId:i},version:a},{clock:o})=>{let s=a??o.getVersion();M(t).collection(`indexEntities`).addOne(rx({id:r,tableId:i})).addOperator(n,s,r,()=>{B(e.indexIds)(r)||e.indexIds.push(r)})},ox=O(nx.removeIndex),sx=({doc:e,collections:t,lww:n},{payload:{id:r},version:i},{clock:a})=>{let o=i??a.getVersion();M(t).collection(`indexEntities`).removeOperator(n,o,r,()=>{let t=e.indexIds.indexOf(r);t!==-1&&e.indexIds.splice(t,1)})},cx=O(nx.changeIndexName),lx=({collections:e,lww:t},{payload:{id:n,tableId:r,value:i},version:a},{clock:o})=>{let s=a??o.getVersion(),c=M(e).collection(`indexEntities`);c.getOrCreate(n,e=>rx({id:e,tableId:r})),c.replaceOperator(t,s,n,`name`,()=>{c.updateOne(n,e=>{e.name=i})})},ux=O(nx.changeIndexUnique),dx=({collections:e,lww:t},{payload:{id:n,tableId:r,value:i},version:a},{clock:o})=>{let s=a??o.getVersion(),c=M(e).collection(`indexEntities`);c.getOrCreate(n,e=>rx({id:e,tableId:r})),c.replaceOperator(t,s,n,`unique`,()=>{c.updateOne(n,e=>{e.unique=i})})},fx={[nx.addIndex]:ax,[nx.removeIndex]:sx,[nx.changeIndexName]:lx,[nx.changeIndexUnique]:dx},px={addIndexAction:ix,removeIndexAction:ox,changeIndexNameAction:cx,changeIndexUniqueAction:ux},mx=(e,{payload:{id:t}})=>{e.push(ox({id:t}))},hx=(e,{payload:{id:t}},{collections:n})=>{let r=M(n).collection(`indexEntities`).selectById(t);r&&e.push(ix({id:t,tableId:r.tableId}))},gx=(e,{payload:{id:t,tableId:n}},{collections:r})=>{let i=M(r).collection(`indexEntities`).selectById(t);i&&e.push(cx({id:t,tableId:n,value:i.name}))},_x=(e,{payload:{id:t,tableId:n,value:r}},{collections:i})=>{M(i).collection(`indexEntities`).selectById(t)&&e.push(ux({id:t,tableId:n,value:!r}))},vx={[nx.addIndex]:mx,[nx.removeIndex]:hx,[nx.changeIndexName]:gx,[nx.changeIndexUnique]:_x},yx={addIndexColumn:`indexColumn.add`,removeIndexColumn:`indexColumn.remove`,moveIndexColumn:`indexColumn.move`,changeIndexColumnOrderType:`indexColumn.changeOrderType`},bx=e=>Je({id:qe(),indexId:``,columnId:``,orderType:ah.ASC,meta:Yv()},e??{});function xx(e,t,n){if(B(t)(n)){let r=t.reduce((e,t,n)=>(e[t]=n,e),{});e.push(n),e.sort((e,t)=>{let n=r[e],i=r[t];return n===void 0?1:i===void 0?-1:n-i})}else e.push(n),t.push(n)}const Sx=O(yx.addIndexColumn),Cx=({collections:e,lww:t},{payload:{id:n,indexId:r,tableId:i,columnId:a},version:o},{clock:s})=>{let c=o??s.getVersion(),l=M(e).collection(`indexEntities`),u=l.getOrCreate(r,e=>rx({id:e,tableId:i}));M(e).collection(`indexColumnEntities`).addOne(bx({id:n,indexId:r,columnId:a})).addOperator(t,c,n,()=>{B(u.indexColumnIds)(n)||l.updateOne(r,e=>{xx(e.indexColumnIds,e.seqIndexColumnIds,n)})})},wx=O(yx.removeIndexColumn),Tx=({collections:e,lww:t},{payload:{id:n,indexId:r,tableId:i},version:a},{clock:o})=>{let s=a??o.getVersion(),c=M(e).collection(`indexEntities`),l=c.getOrCreate(r,e=>rx({id:e,tableId:i}));M(e).collection(`indexColumnEntities`).removeOperator(t,s,n,()=>{let e=l.indexColumnIds.indexOf(n);e!==-1&&c.updateOne(r,t=>{t.indexColumnIds.splice(e,1)})})},Ex=O(yx.moveIndexColumn),Dx=({collections:e},{payload:{id:t,indexId:n,tableId:r,targetId:i}})=>{if(t===i)return;let a=M(e).collection(`indexEntities`),o=a.getOrCreate(n,e=>rx({id:e,tableId:r})),s=o.indexColumnIds.indexOf(t);if(s===-1)return;let c=o.indexColumnIds.indexOf(i);c!==-1&&a.updateOne(n,e=>{e.indexColumnIds.splice(s,1),e.indexColumnIds.splice(c,0,t);let n=e.seqIndexColumnIds.indexOf(t),r=e.seqIndexColumnIds.indexOf(i);n!==-1&&r!==-1&&(e.seqIndexColumnIds.splice(n,1),e.seqIndexColumnIds.splice(r,0,t))})},Ox=O(yx.changeIndexColumnOrderType),kx=({collections:e,lww:t},{payload:{id:n,indexId:r,columnId:i,value:a},version:o},{clock:s})=>{let c=o??s.getVersion(),l=M(e).collection(`indexColumnEntities`);l.getOrCreate(n,e=>bx({id:e,indexId:r,columnId:i})),l.replaceOperator(t,c,n,`orderType`,()=>{l.updateOne(n,e=>{e.orderType=a})})},Ax={[yx.addIndexColumn]:Cx,[yx.removeIndexColumn]:Tx,[yx.moveIndexColumn]:Dx,[yx.changeIndexColumnOrderType]:kx},jx={addIndexColumnAction:Sx,removeIndexColumnAction:wx,moveIndexColumnAction:Ex,changeIndexColumnOrderTypeAction:Ox},Mx=(e,{payload:{id:t,indexId:n,tableId:r}})=>{e.push(wx({id:t,indexId:n,tableId:r}))},Nx=(e,{payload:{id:t,indexId:n,tableId:r}},{collections:i})=>{let a=M(i).collection(`indexColumnEntities`).selectById(t);a&&e.push(Sx({id:t,indexId:n,tableId:r,columnId:a.columnId}))},Px=(e,{payload:{id:t,indexId:n,tableId:r,targetId:i}},{collections:a})=>{let o=M(a).collection(`indexEntities`).selectById(n);if(!o)return;let s=o.indexColumnIds.indexOf(t);if(s===-1)return;let c=o.indexColumnIds.indexOf(i);if(c===-1)return;let l=s<c?s+1:s-1,u=o.indexColumnIds[l];e.push(Ex({indexId:n,tableId:r,id:t,targetId:u}))},Fx=(e,{payload:{id:t,indexId:n,columnId:r}},{collections:i})=>{let a=M(i).collection(`indexColumnEntities`).selectById(t);a&&e.push(Ox({id:t,indexId:n,columnId:r,value:a.orderType}))},Ix={[yx.addIndexColumn]:Mx,[yx.removeIndexColumn]:Nx,[yx.moveIndexColumn]:Px,[yx.changeIndexColumnOrderType]:Fx},Lx={addMemo:`memo.add`,moveMemo:`memo.move`,moveToMemo:`memo.moveTo`,removeMemo:`memo.remove`,changeMemoValue:`memo.changeValue`,changeMemoColor:`memo.changeColor`,resizeMemo:`memo.resize`,changeZIndex:`memo.changeZIndex`},Rx=e=>Je({id:qe(),value:``,ui:{x:200,y:100,zIndex:2,width:116,height:100,color:``},meta:Yv()},e??{}),zx=O(Lx.addMemo),Bx=({doc:e,collections:t,lww:n},{payload:{id:r,ui:i},version:a},{clock:o})=>{let s=a??o.getVersion();M(t).collection(`memoEntities`).addOne(Rx({id:r,ui:i})).addOperator(n,s,r,()=>{B(e.memoIds)(r)||e.memoIds.push(r)})},Vx=O(Lx.moveMemo),Hx=({collections:e},{payload:{ids:t,movementX:n,movementY:r}})=>{let i=M(e).collection(`memoEntities`);for(let e of t)i.getOrCreate(e,e=>Rx({id:e}));i.updateMany(t,e=>{e.ui.x=Ke(e.ui.x+n,4),e.ui.y=Ke(e.ui.y+r,4)})},Ux=O(Lx.moveToMemo),Wx=({collections:e},{payload:{id:t,x:n,y:r}})=>{let i=M(e).collection(`memoEntities`);i.getOrCreate(t,e=>Rx({id:e})),i.updateOne(t,e=>{e.ui.x=n,e.ui.y=r})},Gx=O(Lx.removeMemo),Kx=({doc:e,collections:t,lww:n},{payload:{id:r},version:i},{clock:a})=>{let o=i??a.getVersion();M(t).collection(`memoEntities`).removeOperator(n,o,r,()=>{let t=e.memoIds.indexOf(r);t!==-1&&e.memoIds.splice(t,1)})},qx=O(Lx.changeMemoValue),Jx=({collections:e,lww:t},{payload:{id:n,value:r},version:i},{clock:a})=>{let o=i??a.getVersion(),s=M(e).collection(`memoEntities`);s.getOrCreate(n,e=>Rx({id:e})),s.replaceOperator(t,o,n,`value`,()=>{s.updateOne(n,e=>{e.value=r})})},Yx=O(Lx.changeMemoColor),Xx=({collections:e,lww:t},{payload:{id:n,color:r},version:i},{clock:a})=>{let o=i??a.getVersion(),s=M(e).collection(`memoEntities`);s.getOrCreate(n,e=>Rx({id:e})),s.replaceOperator(t,o,n,`ui.color`,()=>{s.updateOne(n,e=>{e.ui.color=r})})},Zx=O(Lx.resizeMemo),Qx=({collections:e},{payload:{id:t,x:n,y:r,width:i,height:a}})=>{let o=M(e).collection(`memoEntities`);o.getOrCreate(t,e=>Rx({id:e})),o.updateOne(t,e=>{e.ui.x=n,e.ui.y=r,e.ui.width=i,e.ui.height=a})},$x=O(Lx.changeZIndex),eS=({collections:e},{payload:{id:t,zIndex:n}})=>{let r=M(e).collection(`memoEntities`);r.getOrCreate(t,e=>Rx({id:e})),r.updateOne(t,e=>{e.ui.zIndex=n})},tS={[Lx.addMemo]:Bx,[Lx.moveMemo]:Hx,[Lx.moveToMemo]:Wx,[Lx.removeMemo]:Kx,[Lx.changeMemoValue]:Jx,[Lx.changeMemoColor]:Xx,[Lx.resizeMemo]:Qx,[Lx.changeZIndex]:eS},nS={addMemoAction:zx,moveMemoAction:Vx,moveToMemoAction:Ux,removeMemoAction:Gx,changeMemoValueAction:qx,changeMemoColorAction:Yx,resizeMemoAction:Zx,changeZIndexAction:$x},rS=(e,{payload:{id:t}})=>{e.push(Gx({id:t}))},iS=(e,{payload:{id:t}},{collections:n})=>{let r=M(n).collection(`memoEntities`).selectById(t);r&&e.push(zx({id:r.id,ui:ge(r.ui,[`x`,`y`,`zIndex`])}))},aS=(e,{payload:{id:t}},{collections:n})=>{let r=M(n).collection(`memoEntities`).selectById(t);r&&e.push(qx({id:t,value:r.value}))},oS=(e,{payload:{id:t}},{collections:n})=>{let r=M(n).collection(`memoEntities`).selectById(t);r&&e.push(Ux({id:t,x:r.ui.x,y:r.ui.y}))},sS={[Lx.addMemo]:rS,[Lx.removeMemo]:iS,[Lx.changeMemoValue]:aS,[Lx.moveToMemo]:oS},cS=(e,t,n)=>{let r=n.filter(e=>e.type===Vx.type);if(!r.length)return;let i=b(r,e=>e.payload.ids.join(`,`));for(let[,n]of Object.entries(i)){let{payload:{ids:r}}=oe(n),{x:i,y:a}=n.reduce((e,{payload:{movementX:t,movementY:n}})=>(e.x+=t,e.y+=n,e),{x:0,y:0});Math.abs(i)+Math.abs(a)<20||(e.push(Vx({ids:r,movementX:-1*i,movementY:-1*a})),t.push(Vx({ids:r,movementX:i,movementY:a})))}},lS=(e,t,n)=>{let r=n.filter(({type:e})=>e===Yx.type);if(!r.length)return;let i=b(r,e=>e.payload.id);for(let[n,r]of Object.entries(i)){let i=oe(r),a=fe(r);e.push(Yx({id:n,color:i.payload.prevColor,prevColor:a.payload.color})),t.push(Yx({id:n,color:a.payload.color,prevColor:i.payload.prevColor}))}},uS=(e,t,n)=>{let r=n.filter(e=>e.type===Zx.type);if(!r.length)return;let i=b(r,e=>e.payload.id);for(let[,n]of Object.entries(i)){if(n.length<2)continue;let r=oe(n),i=fe(n);e.push(r),t.push(i)}},dS={[Lx.moveMemo]:cS,[Lx.changeMemoColor]:lS,[Lx.resizeMemo]:uS},fS={addRelationship:`relationship.add`,removeRelationship:`relationship.remove`,changeRelationshipType:`relationship.changeType`},pS=e=>Je({id:qe(),identification:!1,relationshipType:rh.ZeroN,startRelationshipType:ih.dash,start:{tableId:``,columnIds:[],x:0,y:0,direction:L.bottom},end:{tableId:``,columnIds:[],x:0,y:0,direction:L.bottom},meta:Yv()},e??{}),mS=O(fS.addRelationship),hS=({doc:e,collections:t,lww:n},{payload:{id:r,relationshipType:i,start:a,end:o},version:s},{clock:c})=>{let l=s??c.getVersion();M(t).collection(`relationshipEntities`).addOne(pS({id:r,relationshipType:i,start:{tableId:a.tableId,columnIds:a.columnIds},end:{tableId:o.tableId,columnIds:o.columnIds}})).addOperator(n,l,r,()=>{B(e.relationshipIds)(r)||e.relationshipIds.push(r)})},gS=O(fS.removeRelationship),_S=({doc:e,collections:t,lww:n},{payload:{id:r},version:i},{clock:a})=>{let o=i??a.getVersion();M(t).collection(`relationshipEntities`).removeOperator(n,o,r,()=>{let t=e.relationshipIds.indexOf(r);t!==-1&&e.relationshipIds.splice(t,1)})},vS=O(fS.changeRelationshipType),yS=({collections:e,lww:t},{payload:{id:n,value:r},version:i},{clock:a})=>{let o=i??a.getVersion(),s=M(e).collection(`relationshipEntities`);s.replaceOperator(t,o,n,`relationshipType`,()=>{s.updateOne(n,e=>{e.relationshipType=r})})},bS={[fS.addRelationship]:hS,[fS.removeRelationship]:_S,[fS.changeRelationshipType]:yS},xS={addRelationshipAction:mS,removeRelationshipAction:gS,changeRelationshipTypeAction:vS},SS=(e,{payload:{id:t}})=>{e.push(gS({id:t}))},CS=(e,{payload:{id:t}},{collections:n})=>{let r=M(n).collection(`relationshipEntities`).selectById(t);r&&e.push(mS({id:r.id,relationshipType:r.relationshipType,start:ge(r.start,[`tableId`,`columnIds`]),end:ge(r.end,[`tableId`,`columnIds`])}))},wS=(e,{payload:{id:t}},{collections:n})=>{let r=M(n).collection(`relationshipEntities`).selectById(t);r&&e.push(vS({id:t,value:r.relationshipType}))},TS={[fS.addRelationship]:SS,[fS.removeRelationship]:CS,[fS.changeRelationshipType]:wS},ES=(e,t,{settings:n})=>{e.push(hv({originX:n.originX,originY:n.originY}))},DS=(e,{payload:{show:t,value:n}})=>{e.push(yv({show:t,value:!n}))},OS=(e,t,{settings:n})=>{e.push(lv({value:n.zoomLevel}))},kS={[G.scrollTo]:ES,[G.changeShow]:DS,[G.changeZoomLevel]:OS},AS=(e,t,n)=>{let r=n.filter(e=>e.type===_v.type);if(!r.length)return;let{x:i,y:a}=r.reduce((e,{payload:{movementX:t,movementY:n}})=>(e.x+=t,e.y+=n,e),{x:0,y:0});Math.abs(i)+Math.abs(a)<20||(e.push(_v({movementX:-1*i,movementY:-1*a})),t.push(_v({movementX:i,movementY:a})))},jS=(e,t,n)=>{let r=n.filter(e=>e.type===dv.type);if(!r.length)return;let i=r.reduce((e,{payload:{value:t}})=>e+t,0);e.push(dv({value:-1*i})),t.push(dv({value:i}))},MS={[G.streamScrollTo]:AS,[G.streamZoomLevel]:jS},K={addTable:`table.add`,moveTable:`table.move`,moveToTable:`table.moveTo`,removeTable:`table.remove`,changeTableName:`table.changeName`,changeTableComment:`table.changeComment`,changeTableColor:`table.changeColor`,changeZIndex:`table.changeZIndex`,sortTable:`table.sort`},NS=e=>Je({id:qe(),name:``,comment:``,columnIds:[],seqColumnIds:[],ui:{x:200,y:100,zIndex:2,widthName:60,widthComment:60,color:``},meta:Yv()},e??{}),PS=O(K.addTable),FS=({doc:e,collections:t,lww:n},{payload:{id:r,ui:i},version:a},{clock:o})=>{let s=a??o.getVersion();M(t).collection(`tableEntities`).addOne(NS({id:r,ui:i})).addOperator(n,s,r,()=>{B(e.tableIds)(r)||e.tableIds.push(r)})},IS=O(K.moveTable),LS=({collections:e},{payload:{ids:t,movementX:n,movementY:r}})=>{let i=M(e).collection(`tableEntities`);for(let e of t)i.getOrCreate(e,e=>NS({id:e}));i.updateMany(t,e=>{e.ui.x=Ke(e.ui.x+n,4),e.ui.y=Ke(e.ui.y+r,4)})},RS=O(K.moveToTable),zS=({collections:e},{payload:{id:t,x:n,y:r}})=>{let i=M(e).collection(`tableEntities`);i.getOrCreate(t,e=>NS({id:e})),i.updateOne(t,e=>{e.ui.x=n,e.ui.y=r})},BS=O(K.removeTable),VS=({doc:e,collections:t,lww:n},{payload:{id:r},version:i},{clock:a})=>{let o=i??a.getVersion();M(t).collection(`tableEntities`).removeOperator(n,o,r,()=>{let t=e.tableIds.indexOf(r);t!==-1&&e.tableIds.splice(t,1)})},HS=O(K.changeTableName),US=({collections:e,lww:t},{payload:{id:n,value:r},version:i},{toWidth:a,clock:o})=>{let s=i??o.getVersion(),c=M(e).collection(`tableEntities`);c.getOrCreate(n,e=>NS({id:e})),c.replaceOperator(t,s,n,`name`,()=>{c.updateOne(n,e=>{e.name=r,e.ui.widthName=H(a(r))})})},WS=O(K.changeTableComment),GS=({collections:e,lww:t},{payload:{id:n,value:r},version:i},{toWidth:a,clock:o})=>{let s=i??o.getVersion(),c=M(e).collection(`tableEntities`);c.getOrCreate(n,e=>NS({id:e})),c.replaceOperator(t,s,n,`comment`,()=>{c.updateOne(n,e=>{e.comment=r,e.ui.widthComment=H(a(r))})})},KS=O(K.changeTableColor),qS=({collections:e,lww:t},{payload:{id:n,color:r},version:i},{clock:a})=>{let o=i??a.getVersion(),s=M(e).collection(`tableEntities`);s.getOrCreate(n,e=>NS({id:e})),s.replaceOperator(t,o,n,`ui.color`,()=>{s.updateOne(n,e=>{e.ui.color=r})})},JS=O(K.changeZIndex),YS=({collections:e},{payload:{id:t,zIndex:n}})=>{let r=M(e).collection(`tableEntities`);r.getOrCreate(t,e=>NS({id:e})),r.updateOne(t,e=>{e.ui.zIndex=n})},XS=O(K.sortTable),ZS=e=>{let{doc:t,settings:n,collections:r}=e,i=n.width,a=M(r).collection(`tableEntities`).selectByIds(t.tableIds);a.sort((e,t)=>e.columnIds.length-t.columnIds.length);let o=50,s=50,c=50;a.forEach(t=>{let n=f_(t,e).width+80,r=S_(t)+80;o+n>i&&(s+=c,c=0,o=50),c<r&&(c=r),t.ui.y=s,t.ui.x=o,o+=n})},QS={[K.addTable]:FS,[K.moveTable]:LS,[K.moveToTable]:zS,[K.removeTable]:VS,[K.changeTableName]:US,[K.changeTableComment]:GS,[K.changeTableColor]:qS,[K.changeZIndex]:YS,[K.sortTable]:ZS},$S={addTableAction:PS,moveTableAction:IS,moveToTableAction:RS,removeTableAction:BS,changeTableNameAction:HS,changeTableCommentAction:WS,changeTableColorAction:KS,changeZIndexAction:JS,sortTableAction:XS},eC=(e,{payload:{id:t}})=>{e.push(BS({id:t}))},tC=(e,{payload:{id:t}},{collections:n})=>{let r=M(n).collection(`tableEntities`).selectById(t);r&&e.push(PS({id:r.id,ui:ge(r.ui,[`x`,`y`,`zIndex`])}))},nC=(e,{payload:{id:t}},{collections:n})=>{let r=M(n).collection(`tableEntities`).selectById(t);r&&e.push(HS({id:t,value:r.name}))},rC=(e,{payload:{id:t}},{collections:n})=>{let r=M(n).collection(`tableEntities`).selectById(t);r&&e.push(WS({id:t,value:r.comment}))},iC=(e,{payload:{id:t}},{collections:n})=>{let r=M(n).collection(`tableEntities`).selectById(t);r&&e.push(RS({id:t,x:r.ui.x,y:r.ui.y}))},aC=()=>{},oC={[K.addTable]:eC,[K.removeTable]:tC,[K.changeTableName]:nC,[K.changeTableComment]:rC,[K.moveToTable]:iC,[K.sortTable]:aC},sC=(e,t,n)=>{let r=n.filter(e=>e.type===IS.type);if(!r.length)return;let i=b(r,e=>e.payload.ids.join(`,`));for(let[,n]of Object.entries(i)){let{payload:{ids:r}}=oe(n),{x:i,y:a}=n.reduce((e,{payload:{movementX:t,movementY:n}})=>(e.x+=t,e.y+=n,e),{x:0,y:0});Math.abs(i)+Math.abs(a)<20||(e.push(IS({ids:r,movementX:-1*i,movementY:-1*a})),t.push(IS({ids:r,movementX:i,movementY:a})))}},cC=(e,t,n)=>{let r=n.filter(({type:e})=>e===KS.type);if(!r.length)return;let i=b(r,e=>e.payload.id);for(let[n,r]of Object.entries(i)){let i=oe(r),a=fe(r);e.push(KS({id:n,color:i.payload.prevColor,prevColor:a.payload.color})),t.push(KS({id:n,color:a.payload.color,prevColor:i.payload.prevColor}))}},lC={[K.moveTable]:sC,[K.changeTableColor]:cC},q={addColumn:`column.add`,removeColumn:`column.remove`,changeColumnName:`column.changeName`,changeColumnComment:`column.changeComment`,changeColumnDataType:`column.changeDataType`,changeColumnDefault:`column.changeDefault`,changeColumnAutoIncrement:`column.changeAutoIncrement`,changeColumnPrimaryKey:`column.changePrimaryKey`,changeColumnUnique:`column.changeUnique`,changeColumnNotNull:`column.changeNotNull`,moveColumn:`column.move`},uC=e=>Je({id:qe(),tableId:``,name:``,comment:``,dataType:``,default:``,options:0,ui:{keys:0,widthName:60,widthComment:60,widthDataType:60,widthDefault:60},meta:Yv()},e??{}),dC=O(q.addColumn),fC=({collections:e,lww:t},{payload:{id:n,tableId:r},version:i},{clock:a})=>{let o=i??a.getVersion(),s=M(e).collection(`tableEntities`),c=s.getOrCreate(r,e=>NS({id:e}));M(e).collection(`tableColumnEntities`).addOne(uC({id:n,tableId:r})).addOperator(t,o,n,()=>{B(c.columnIds)(n)||s.updateOne(r,e=>{xx(e.columnIds,e.seqColumnIds,n)})})},pC=O(q.removeColumn),mC=({collections:e,lww:t},{payload:{id:n,tableId:r},version:i},{clock:a})=>{let o=i??a.getVersion(),s=M(e).collection(`tableEntities`),c=s.getOrCreate(r,e=>NS({id:e}));M(e).collection(`tableColumnEntities`).removeOperator(t,o,n,()=>{let e=c.columnIds.indexOf(n);e!==-1&&s.updateOne(r,t=>{t.columnIds.splice(e,1)})})},hC=O(q.changeColumnName),gC=({collections:e,lww:t},{payload:{id:n,value:r},version:i},{toWidth:a,clock:o})=>{let s=i??o.getVersion(),c=M(e).collection(`tableColumnEntities`);c.getOrCreate(n,e=>uC({id:e})),c.replaceOperator(t,s,n,`name`,()=>{c.updateOne(n,e=>{e.name=r,e.ui.widthName=H(a(r))})})},_C=O(q.changeColumnComment),vC=({collections:e,lww:t},{payload:{id:n,value:r},version:i},{toWidth:a,clock:o})=>{let s=i??o.getVersion(),c=M(e).collection(`tableColumnEntities`);c.getOrCreate(n,e=>uC({id:e})),c.replaceOperator(t,s,n,`comment`,()=>{c.updateOne(n,e=>{e.comment=r,e.ui.widthComment=H(a(r))})})},yC=O(q.changeColumnDataType),bC=({collections:e,lww:t},{payload:{id:n,value:r},version:i},{toWidth:a,clock:o})=>{let s=i??o.getVersion(),c=M(e).collection(`tableColumnEntities`);c.getOrCreate(n,e=>uC({id:e})),c.replaceOperator(t,s,n,`dataType`,()=>{c.updateOne(n,e=>{e.dataType=r,e.ui.widthDataType=H(a(r))})})},xC=O(q.changeColumnDefault),SC=({collections:e,lww:t},{payload:{id:n,value:r},version:i},{toWidth:a,clock:o})=>{let s=i??o.getVersion(),c=M(e).collection(`tableColumnEntities`);c.getOrCreate(n,e=>uC({id:e})),c.replaceOperator(t,s,n,`default`,()=>{c.updateOne(n,e=>{e.default=r,e.ui.widthDefault=H(a(r))})})},CC=O(q.changeColumnAutoIncrement),wC=({collections:e,lww:t},{payload:{id:n,value:r},version:i},{clock:a})=>{let o=i??a.getVersion(),s=M(e).collection(`tableColumnEntities`);s.getOrCreate(n,e=>uC({id:e})),s.replaceOperator(t,o,n,`options(autoIncrement)`,()=>{s.updateOne(n,e=>{e.options=r?e.options|R.autoIncrement:e.options&~R.autoIncrement})})},TC=O(q.changeColumnPrimaryKey),EC=({collections:e,lww:t},{payload:{id:n,value:r},version:i},{clock:a})=>{let o=i??a.getVersion(),s=M(e).collection(`tableColumnEntities`);s.getOrCreate(n,e=>uC({id:e})),s.replaceOperator(t,o,n,`options(primaryKey)`,()=>{s.updateOne(n,e=>{e.options=r?e.options|R.primaryKey:e.options&~R.primaryKey,e.ui.keys=r?e.ui.keys|z.primaryKey:e.ui.keys&~z.primaryKey})})},DC=O(q.changeColumnUnique),OC=({collections:e,lww:t},{payload:{id:n,value:r},version:i},{clock:a})=>{let o=i??a.getVersion(),s=M(e).collection(`tableColumnEntities`);s.getOrCreate(n,e=>uC({id:e})),s.replaceOperator(t,o,n,`options(unique)`,()=>{s.updateOne(n,e=>{e.options=r?e.options|R.unique:e.options&~R.unique})})},kC=O(q.changeColumnNotNull),AC=({collections:e,lww:t},{payload:{id:n,value:r},version:i},{clock:a})=>{let o=i??a.getVersion(),s=M(e).collection(`tableColumnEntities`);s.getOrCreate(n,e=>uC({id:e})),s.replaceOperator(t,o,n,`options(notNull)`,()=>{s.updateOne(n,e=>{e.options=r?e.options|R.notNull:e.options&~R.notNull})})},jC=O(q.moveColumn),MC=({collections:e},{payload:{id:t,tableId:n,targetId:r}})=>{if(t===r)return;let i=M(e).collection(`tableEntities`),a=i.getOrCreate(n,e=>NS({id:e})),o=a.columnIds.indexOf(t);if(o===-1)return;let s=a.columnIds.indexOf(r);s!==-1&&i.updateOne(n,e=>{e.columnIds.splice(o,1),e.columnIds.splice(s,0,t);let n=e.seqColumnIds.indexOf(t),i=e.seqColumnIds.indexOf(r);n!==-1&&i!==-1&&(e.seqColumnIds.splice(n,1),e.seqColumnIds.splice(i,0,t))})},NC={[q.addColumn]:fC,[q.removeColumn]:mC,[q.changeColumnName]:gC,[q.changeColumnComment]:vC,[q.changeColumnDataType]:bC,[q.changeColumnDefault]:SC,[q.changeColumnAutoIncrement]:wC,[q.changeColumnPrimaryKey]:EC,[q.changeColumnUnique]:OC,[q.changeColumnNotNull]:AC,[q.moveColumn]:MC},PC={addColumnAction:dC,removeColumnAction:pC,changeColumnNameAction:hC,changeColumnCommentAction:_C,changeColumnDataTypeAction:yC,changeColumnDefaultAction:xC,changeColumnAutoIncrementAction:CC,changeColumnPrimaryKeyAction:TC,changeColumnUniqueAction:DC,changeColumnNotNullAction:kC,moveColumnAction:jC},FC=(e,{payload:{id:t,tableId:n}})=>{e.push(pC({id:t,tableId:n}))},IC=(e,{payload:{id:t,tableId:n}})=>{e.push(dC({id:t,tableId:n}))},LC=(e,{payload:{id:t,tableId:n}},{collections:r})=>{let i=M(r).collection(`tableColumnEntities`).selectById(t);i&&e.push(hC({id:t,tableId:n,value:i.name}))},RC=(e,{payload:{id:t,tableId:n}},{collections:r})=>{let i=M(r).collection(`tableColumnEntities`).selectById(t);i&&e.push(yC({id:t,tableId:n,value:i.dataType}))},zC=(e,{payload:{id:t,tableId:n}},{collections:r})=>{let i=M(r).collection(`tableColumnEntities`).selectById(t);i&&e.push(xC({id:t,tableId:n,value:i.default}))},BC=(e,{payload:{id:t,tableId:n}},{collections:r})=>{let i=M(r).collection(`tableColumnEntities`).selectById(t);i&&e.push(_C({id:t,tableId:n,value:i.comment}))},VC=(e,{payload:{id:t,tableId:n,value:r}},{collections:i})=>{M(i).collection(`tableColumnEntities`).selectById(t)&&e.push(CC({id:t,tableId:n,value:!r}))},HC=(e,{payload:{id:t,tableId:n,value:r}},{collections:i})=>{M(i).collection(`tableColumnEntities`).selectById(t)&&e.push(kC({id:t,tableId:n,value:!r}))},UC=(e,{payload:{id:t,tableId:n,value:r}},{collections:i})=>{M(i).collection(`tableColumnEntities`).selectById(t)&&e.push(TC({id:t,tableId:n,value:!r}))},WC=(e,{payload:{id:t,tableId:n,value:r}},{collections:i})=>{M(i).collection(`tableColumnEntities`).selectById(t)&&e.push(DC({id:t,tableId:n,value:!r}))},GC=(e,{payload:{id:t,tableId:n,targetId:r}},{collections:i})=>{let a=M(i).collection(`tableEntities`).selectById(n);if(!a)return;let o=a.columnIds.indexOf(t);if(o===-1)return;let s=a.columnIds.indexOf(r);if(s===-1)return;let c=o<s?o+1:o-1,l=a.columnIds[c];e.push(jC({id:t,tableId:n,targetId:l}))},KC={[q.addColumn]:FC,[q.removeColumn]:IC,[q.changeColumnName]:LC,[q.changeColumnDataType]:RC,[q.changeColumnDefault]:zC,[q.changeColumnComment]:BC,[q.changeColumnAutoIncrement]:VC,[q.changeColumnNotNull]:HC,[q.changeColumnPrimaryKey]:UC,[q.changeColumnUnique]:WC,[q.moveColumn]:GC};function qC(e,...t){try{return e?.(...t)}catch(e){console.error(e)}}const JC={...oC,...KC,...TS,...sS,...kS,...tx,...vx,...Ix},YC={...lC,...dS,...MS};function XC(e,t,n){let r=[],i=[];for(let t of n){let n=JC[t.type];n&&(n(r,t,e.state),i.push(ie(t)))}for(let e of Object.keys(YC))YC[e](r,i,n);!r.length||!i.length||t.push({undo:(e,t)=>{e(r.map(ZC(t())))},redo:(e,t)=>{e(i.map(ZC(t())))}})}function ZC(e){return t=>({...ie(t),version:e})}const QC=(e,t)=>n=>{qC(XC,e,t,n)},$C=()=>function*({settings:e,doc:{tableIds:t,memoIds:n},collections:r}){let i=M(r).collection(`tableEntities`).selectByIds(t),a=M(r).collection(`memoEntities`).selectByIds(n),o=Jv(e,i,a),s=qe();yield ej(),yield Py({[s]:ig.memo}),yield zx({id:s,ui:{...o,zIndex:Kv(i,a)}})},ew=e=>function*({editor:{selectedMap:t}}){if(e){yield Gx({id:e});return}let n=Object.entries(t).filter(([,e])=>e===ig.memo);for(let[e]of n)yield Gx({id:e})},tw=(e,t)=>function*({doc:{tableIds:n,memoIds:r},collections:i}){let a=M(i).collection(`tableEntities`).selectByIds(n),o=M(i).collection(`memoEntities`).selectByIds(r);t||(yield ej()),yield Py({[e]:ig.memo}),yield $x({id:e,zIndex:Kv(a,o)})},nw={addMemoAction$:$C,removeMemoAction$:ew,selectMemoAction$:tw};B(Object.values({tables:`tables`,columns:`columns`}));const rw=({x:e,y:t})=>`${e},${t}`,iw=(e,t)=>e<t?-1:+(e>t),aw=e=>e.ui.zIndex??0;function ow({entities:e,offset:t,escapeCollision:n,settings:r,tables:i,memos:a,findSource:o}){let s=new Map;if(e.length===0)return s;let c=new Set([...i,...a].map(({ui:e})=>rw(e))),l=new Map,u=[];for(let n of e){let e=o(n.sourceId);e?l.set(n.sourceId,{x:e.ui.x+t.x,y:e.ui.y+t.y}):u.push(n)}if(u.length!==0){let e=Jv(r,i,a),t=u.reduce((e,t)=>t.ui.x<e.ui.x||t.ui.x===e.ui.x&&t.ui.y<e.ui.y?t:e);for(let n of u)l.set(n.sourceId,{x:e.x+(n.ui.x-t.ui.x),y:e.y+(n.ui.y-t.ui.y)})}if(n){let t=[...e].sort((e,t)=>iw(e.sourceId,t.sourceId));for(let{sourceId:e}of t){let t=l.get(e);if(t){for(;c.has(rw(t));)t.x+=50,t.y+=50;c.add(rw(t))}}}let d=Kv(i,a);return[...e].sort((e,t)=>aw(e)-aw(t)||iw(e.sourceId,t.sourceId)).forEach(({sourceId:e},t)=>{let n=l.get(e);n&&s.set(e,{x:n.x,y:n.y,zIndex:d+t})}),s}B(Object.values({columnName:`columnName`,columnDataType:`columnDataType`,columnNotNull:`columnNotNull`,columnUnique:`columnUnique`,columnAutoIncrement:`columnAutoIncrement`,columnDefault:`columnDefault`,columnComment:`columnComment`}));function sw(e,t){return t.filter(t=>{switch(t){case F.columnName:return!0;case F.columnDataType:return W(e,P.columnDataType);case F.columnDefault:return W(e,P.columnDefault);case F.columnComment:return W(e,P.columnComment);case F.columnAutoIncrement:return W(e,P.columnAutoIncrement);case F.columnUnique:return W(e,P.columnUnique);case F.columnNotNull:return W(e,P.columnNotNull);default:return!1}})}const cw=()=>function*({settings:e,doc:{tableIds:t,memoIds:n},collections:r}){let i=M(r).collection(`tableEntities`).selectByIds(t),a=M(r).collection(`memoEntities`).selectByIds(n),o=Jv(e,i,a),s=qe();yield My(),yield Py({[s]:ig.table}),yield PS({id:s,ui:{...o,zIndex:Kv(i,a)}}),yield qy({tableId:s})},lw=e=>function*({doc:{relationshipIds:t,indexIds:n},editor:{selectedMap:r},collections:i}){let a=M(i).collection(`relationshipEntities`).selectByIds(t),o=M(i).collection(`indexEntities`).selectByIds(n);if(e){let t=a.filter(({start:t,end:n})=>t.tableId===e||n.tableId===e),n=o.filter(({tableId:t})=>t===e);for(let{id:e}of n)yield ox({id:e});for(let{id:e}of t)yield gS({id:e});yield BS({id:e});return}let s=Object.entries(r).filter(([,e])=>e===ig.table).map(([e])=>e),c=B(s),l=a.filter(({start:e,end:t})=>c(e.tableId)||c(t.tableId)),u=o.filter(({tableId:e})=>c(e));for(let{id:e}of u)yield ox({id:e});for(let{id:e}of l)yield gS({id:e});for(let e of s)yield BS({id:e})},uw=(e,t)=>function*({doc:{tableIds:n,memoIds:r},collections:i,editor:{drawRelationship:a}}){let o=M(i).collection(`tableEntities`),s=o.selectByIds(n),c=M(i).collection(`memoEntities`).selectByIds(r);if(t||(yield My()),yield Py({[e]:ig.table}),yield JS({id:e,zIndex:Kv(s,c)}),yield qy({tableId:e}),a){if(a.start){let t=o.selectById(a.start.tableId),n=o.selectById(e);if(!t||!n)return;let r=M(i).collection(`tableColumnEntities`).selectByIds(t.columnIds).filter(({options:e})=>W(e,R.primaryKey));if(!r.length)return;let s=r.map(()=>qe());for(let e=0;e<r.length;e++){let t=r[e],i={id:s[e],tableId:n.id};yield[dC(i),kC({...i,value:!0}),hC({...i,value:t.name}),yC({...i,value:t.dataType}),xC({...i,value:t.default}),_C({...i,value:t.comment})]}yield mS({id:qe(),relationshipType:a.relationshipType,start:{tableId:t.id,columnIds:r.map(({id:e})=>e)},end:{tableId:n.id,columnIds:s}}),yield _b()}else yield rj(e)}},dw={addTableAction$:cw,removeTableAction$:lw,selectTableAction$:uw,pasteTableAction$:e=>function*({editor:{selectedMap:t,focusTable:n},settings:{show:r,columnOrder:i},collections:a}){let o=n&&!vy(n.focusType),s=Object.entries(t).filter(([,e])=>e===ig.table).map(([e])=>e).filter(e=>!o||e!==n?.tableId);for(let t of s)for(let n of e){let e={id:qe(),tableId:t};yield[dC(e),hC({...e,value:n.name}),yC({...e,value:n.dataType}),xC({...e,value:n.default}),_C({...e,value:n.comment}),kC({...e,value:W(n.options,R.notNull)}),DC({...e,value:W(n.options,R.unique)}),CC({...e,value:W(n.options,R.autoIncrement)})]}if(!n||!o)return;let c=M(a).collection(`tableEntities`).selectById(n.tableId);if(!c)return;let l=c.columnIds.filter(B(n.selectColumnIds));if(l.length===0)return;let u=c.columnIds.slice(c.columnIds.indexOf(l[l.length-1])+1),d=[...l,...u],f=sw(r,i);yield Zy();for(let t=0;t<d.length;t++){let r=d[t],i=e[t];if(!i)break;let a={id:r,tableId:c.id};yield[...f.map(e=>{switch(e){case F.columnName:return hC({...a,value:i.name});case F.columnDataType:return yC({...a,value:i.dataType});case F.columnDefault:return xC({...a,value:i.default});case F.columnComment:return _C({...a,value:i.comment});case F.columnAutoIncrement:return CC({...a,value:W(i.options,R.autoIncrement)});case F.columnUnique:return DC({...a,value:W(i.options,R.unique)});case F.columnNotNull:return kC({...a,value:W(i.options,R.notNull)});default:return null}}).filter(Boolean),Yy({tableId:c.id,columnId:r,focusType:n.focusType,$mod:!0,shiftKey:!1})]}let p=e.slice(d.length);for(let e of p){let t=qe(),r={id:t,tableId:c.id};yield[dC(r),...f.map(t=>{switch(t){case F.columnName:return hC({...r,value:e.name});case F.columnDataType:return yC({...r,value:e.dataType});case F.columnDefault:return xC({...r,value:e.default});case F.columnComment:return _C({...r,value:e.comment});case F.columnAutoIncrement:return CC({...r,value:W(e.options,R.autoIncrement)});case F.columnUnique:return DC({...r,value:W(e.options,R.unique)});case F.columnNotNull:return kC({...r,value:W(e.options,R.notNull)});default:return null}}).filter(Boolean),Yy({tableId:c.id,columnId:t,focusType:n.focusType,$mod:!0,shiftKey:!1})]}}};function fw(e,t,n,r=[]){let{doc:{relationshipIds:i},collections:a}=t,o=e.pop();return o&&(r.some(({id:e})=>e===o.id)||(r.push(o),M(a).collection(`relationshipEntities`).selectByIds(i).forEach(({start:t,end:r})=>{let i=t.columnIds.indexOf(o.id);if(i!==-1){let t=r.columnIds[i];e.push({id:t,tableId:r.tableId,value:n.value})}else{let i=r.columnIds.indexOf(o.id);if(i!==-1){let r=t.columnIds[i];e.push({id:r,tableId:t.tableId,value:n.value})}}})),fw(e,t,n,r)),r}const pw=B([U.columnNotNull,U.columnUnique,U.columnAutoIncrement]),mw=B([U.columnName,U.columnDataType,U.columnDefault,U.columnComment]),hw=e=>function*({editor:{selectedMap:t}}){if(e){let t=qe();yield dC({id:t,tableId:e}),yield Yy({tableId:e,columnId:t,focusType:U.columnName,$mod:!1,shiftKey:!1});return}let n=Object.entries(t).filter(([,e])=>e===ig.table).map(([e])=>({tableId:e,id:qe()}));for(let e of n)yield dC(e);let r=fe(n);r&&(yield Yy({tableId:r.tableId,columnId:r.id,focusType:U.columnName,$mod:!1,shiftKey:!1}))},gw=(e,t)=>function*(n){let{doc:{relationshipIds:r,indexIds:i},editor:{focusTable:a},collections:o}=n;if(a?.columnId){let e=my(n,t);e?yield Yy({tableId:a.tableId,columnId:e,focusType:a.focusType,$mod:!1,shiftKey:!1}):yield qy({tableId:a.tableId,focusType:U.tableName})}let s=B(t),c=M(o).collection(`relationshipEntities`).selectByIds(r).filter(({start:t,end:n})=>t.tableId===e&&t.columnIds.some(s)||n.tableId===e&&n.columnIds.some(s)),l=M(o).collection(`indexEntities`).selectByIds(i).filter(t=>t.tableId===e&&M(o).collection(`indexColumnEntities`).selectByIds(t.indexColumnIds).map(({columnId:e})=>e).some(s));for(let{id:e}of l)yield ox({id:e});for(let{id:e}of c)yield gS({id:e});for(let n of t)yield pC({id:n,tableId:e})},_w=(e,t,n)=>function*({collections:r}){if(!pw(e))return;let i=M(r).collection(`tableColumnEntities`).selectById(n);if(i)switch(e){case U.columnNotNull:yield kC({id:n,tableId:t,value:!W(i.options,R.notNull)});break;case U.columnUnique:yield DC({id:n,tableId:t,value:!W(i.options,R.unique)});break;case U.columnAutoIncrement:yield CC({id:n,tableId:t,value:!W(i.options,R.autoIncrement)})}},vw=e=>function*(t){let{settings:{relationshipDataTypeSync:n}}=t,r=[e];n&&(r=fw([e],t,e)),yield r.map(yC)},yw={addColumnAction$:hw,removeColumnAction$:gw,toggleColumnValueAction$:_w,changeColumnDataTypeAction$:vw,changeColumnValueAction$:(e,t,n,r)=>function*({collections:i}){if(!mw(e)||!M(i).collection(`tableColumnEntities`).selectById(n))return;let a={id:n,tableId:t,value:r};switch(e){case U.columnName:yield hC(a);break;case U.columnDataType:yield vw(a);break;case U.columnDefault:yield xC(a);break;case U.columnComment:yield _C(a)}},changeColumnPrimaryKeyAction$:(e,t)=>function*({collections:n}){let r=M(n).collection(`tableColumnEntities`).selectById(t);if(!r)return;let i=W(r.options,R.primaryKey);yield TC({tableId:e,id:t,value:!i})}};function bw(e,t){return!(e.x>t.x+t.w||e.x+e.w<t.x||e.y>t.y+t.h||e.y+e.h<t.y)}function xw(e){return e.filter(({options:e})=>W(e,R.primaryKey))}function Sw(e,t,n,r=1){let i=!0;for(let r of e)if(n===r.name&&r.id!==t&&n!==``){i=!1;break}return i?n:Sw(e,t,n.replace(/[0-9]/g,``)+r,r+1)}function Cw(e,t){for(let n of e)if(n.name.toUpperCase()===t.toUpperCase())return n;return null}const ww={[I.MariaDB]:`VARCHAR(255)`,[I.MSSQL]:`varchar(255)`,[I.MySQL]:`VARCHAR(255)`,[I.Oracle]:`VARCHAR2(255)`,[I.PostgreSQL]:`varchar(255)`,[I.SQLite]:`TEXT`,[I.Databricks]:`STRING`,[I.Snowflake]:`VARCHAR(255)`};function Tw(e,t,n,r=[]){let i=Ow(e,n,r);return i.members?Dw(i.members,t)??ww[t]??i.typeName:i.typeName}function Ew(e,t,n,r=[]){let{members:i}=Ow(e,t,r);return!i||Dw(i,n)!==void 0?``:` ${e}: ${i.join(` | `)}`}function Dw(e,t){if(t===I.MySQL||t===I.MariaDB)return`ENUM(${e.map(e=>`'${e.replace(/'/g,`''`)}'`).join(`,`)})`}function Ow(e,t,n){if(n.length)return{typeName:e,members:n};let r=new Set,i=e;for(;!r.has(i);){r.add(i);let e=kw(i,t);if(!e)break;if(e.values.length)return{typeName:i,members:e.values};if(!e.alias)break;i=e.alias}return{typeName:i,members:null}}function kw(e,t){let n=t.types[e];if(n)return n;let r=Object.keys(t.types).find(t=>t.slice(t.lastIndexOf(`.`)+1)===e);return r===void 0?void 0:t.types[r]}const Aw={database:``,catalog:``,schema:``},jw=Pw(Aw);function Mw(e,t,n){let r=Jp({}),i=Nw(e.entities),a=e.entities.map(a=>Lw(r,t,e,n,a,i(a)));return Bw(r,t,a,e,Iw(e.entities,a)),Gw(r,a),r}function Nw(e){let t=new Set(e.map(e=>Pw(e.namespace)));return e=>{let n=Pw(e.namespace);return t.size>1&&n!==jw?`${Fw(e.namespace)}_${e.name}`:e.name}}function Pw({database:e,catalog:t,schema:n}){return`${e}.${t}.${n}`}function Fw({database:e,catalog:t,schema:n}){return[e,t,n].filter(e=>e!==``).join(`_`)}function Iw(e,t){let n=new Map,r=(e,t)=>{let r=e.toLowerCase();n.has(r)||n.set(r,t)};return e.forEach((e,n)=>{let i=t[n],a=Pw(e.namespace);r(`${a}.${e.name}`,i),r(e.name,i),e.alias&&(r(e.alias,i),r(`${a}.${e.alias}`,i))}),e=>{let t=Pw(e.namespace);return n.get(`${t}.${e.entityName}`.toLowerCase())??(t===jw?n.get(e.entityName.toLowerCase())??null:null)}}function Lw({doc:e,collections:t},n,r,i,a,o){let{toWidth:s}=n,c=ng(o),l=ng(a.comment),u=NS({name:c,comment:l,ui:{widthName:H(s(c)),widthComment:H(s(l))}}),d={source:a,table:u,columns:[]};return a.attributes.forEach(e=>{let n=ng(e.path),a=Tw(e.typeName,i,r,e.enumValues),o=`${ng(e.comment)}${Ew(e.typeName,r,i,e.enumValues)}`.trim(),c=ng(e.default);zw(t,d,uC({tableId:u.id,name:n,comment:o,dataType:a,default:c,options:(e.autoIncrement?R.autoIncrement:0)|(e.primaryKey?R.primaryKey:0)|(Rw(e)?R.unique:0)|(e.notNull?R.notNull:0),ui:{widthName:H(s(n)),widthComment:H(s(o)),widthDataType:H(s(a)),widthDefault:H(s(c)),keys:e.primaryKey?z.primaryKey:0}}))}),e.tableIds.push(u.id),M(t).collection(`tableEntities`).setOne(u),d}function Rw(e){return e.indexes.some(e=>e.unique&&e.name===``)}function zw(e,t,n){t.table.columnIds.push(n.id),t.table.seqColumnIds.push(n.id),t.columns.push(n),M(e).collection(`tableColumnEntities`).setOne(n)}function Bw(e,t,n,r,i){let a=new Set;r.relations.forEach(r=>{let o=i(r.src),s=i(r.ref);if(!o||!s)return;let c=Vw(o,r.src),l=Vw(s,r.ref);if(c.length!==0&&l.length!==0&&c.length===l.length){if(r.srcCardinality===`n`&&r.refCardinality===`n`){Uw(e,t,n,o,s);return}Hw(e,t,a,{parent:s,parentColumns:l,child:o,childColumns:c,toMany:r.refCardinality===`n`})}})}function Vw(e,t){if(t.attributePaths.length===0)return xw(e.columns);let n=[];for(let r of t.attributePaths){let t=Cw(e.columns,r);if(!t)return[];n.push(t)}return n}function Hw({doc:e,collections:t},{toWidth:n},r,{parent:i,parentColumns:a,child:o,childColumns:s,toMany:c}){let l=`${i.table.id}:${o.table.id}:${s.map(e=>e.id).join(`,`)}`;if(r.has(l))return;r.add(l);let u=s.every(e=>W(e.options,R.notNull));s.forEach((e,t)=>{if(e.dataType===``){let{dataType:r}=a[t];e.dataType=r,e.ui.widthDataType=H(n(r))}e.ui.keys=W(e.ui.keys,z.primaryKey)?e.ui.keys|z.foreignKey:z.foreignKey});let d=pS({identification:s.every(e=>W(e.ui.keys,z.primaryKey)&&W(e.ui.keys,z.foreignKey)),relationshipType:c?u?rh.OneN:rh.ZeroN:u?rh.OneOnly:rh.ZeroOne,start:{tableId:i.table.id,columnIds:a.map(e=>e.id)},end:{tableId:o.table.id,columnIds:s.map(e=>e.id)}});e.relationshipIds.push(d.id),M(t).collection(`relationshipEntities`).setOne(d)}function Uw(e,t,n,r,i){let{doc:a,collections:o}=e,{toWidth:s}=t,c=xw(r.columns),l=xw(i.columns);if(!c.length||!l.length)return;let u=Sw(n.map(e=>e.table),``,`${r.table.name}_${i.table.name}`),d=`Junction table inferred from ${r.table.name} <-> ${i.table.name}`,f=NS({name:u,comment:d,ui:{widthName:H(s(u)),widthComment:H(s(d))}}),p={source:{namespace:Aw,name:u,alias:``,comment:d,attributes:[]},table:f,columns:[]};a.tableIds.push(f.id),M(o).collection(`tableEntities`).setOne(f),n.push(p),Ww(e,t,p,r,c),Ww(e,t,p,i,l)}function Ww(e,{toWidth:t},n,r,i){let{doc:a,collections:o}=e,s=i.map(e=>{let i=Sw(n.columns,``,`${r.table.name}_${e.name}`),{dataType:a}=e,s=uC({tableId:n.table.id,name:i,dataType:a,options:R.primaryKey|R.notNull,ui:{keys:z.primaryKey|z.foreignKey,widthName:H(t(i)),widthDataType:H(t(a))}});return zw(o,n,s),s}),c=pS({identification:!0,relationshipType:rh.ZeroN,start:{tableId:r.table.id,columnIds:i.map(e=>e.id)},end:{tableId:n.table.id,columnIds:s.map(e=>e.id)}});a.relationshipIds.push(c.id),M(o).collection(`relationshipEntities`).setOne(c)}function Gw({doc:e,collections:t},n){n.forEach(({source:n,table:r,columns:i})=>{let a=new Map;n.attributes.forEach((e,t)=>{let n=i[t];n&&e.indexes.forEach((e,i)=>{if(e.unique&&e.name===``)return;let o=e.name===``?`b:${t}:${i}`:`n:${e.name}`,s=a.get(o)??{index:rx({name:ng(e.name),tableId:r.id}),indexColumns:[]};s.index.unique=s.index.unique||e.unique,s.indexColumns.push(bx({indexId:s.index.id,columnId:n.id,orderType:ah.ASC})),a.set(o,s)})}),a.forEach(({index:n,indexColumns:r})=>{r.forEach(e=>{n.indexColumnIds.push(e.id),n.seqIndexColumnIds.push(e.id),M(t).collection(`indexColumnEntities`).setOne(e)}),e.indexIds.push(n.id),M(t).collection(`indexEntities`).setOne(n)})})}const J={identifier:1,quoted:2,string:3,expression:4,number:5,punctuation:6,doc:7,comment:8,newline:9},Kw=/[ \t\f\v]/,qw=/[0-9]/,Jw=/[A-Za-z_\u0080-\uffff]/,Yw=/[0-9A-Za-z_#\u0080-\uffff]/,Xw=/^[ \t]*/,Zw=/\\#/g,Qw={n:`
|
|
2
|
+
`};function $w(e){let t=[],n=0,r=1,i=eT(e,0),a=(e,n)=>{t.push({kind:e,value:n,line:r,depth:i})};for(t.push({kind:J.newline,value:``,line:0,depth:i});n<e.length;){let t=e[n];if(Kw.test(t)){n+=1;continue}if(t===`\r`||t===`
|
|
3
3
|
`){t===`\r`&&e[n+1]===`
|
|
4
|
-
`&&(n+=1),n+=1,i=
|
|
4
|
+
`&&(n+=1),n+=1,i=eT(e,n),a(J.newline,`
|
|
5
5
|
`),r+=1;continue}if(t===`#`){let t=n+1;for(;t<e.length&&e[t]!==`
|
|
6
|
-
`&&e[t]!==`\r`;)t+=1;a(J.comment,e.slice(n+1,t).trim()),n=t;continue}if(t===`|`){if(e.startsWith(`|||`,n)){let t=
|
|
7
|
-
`||t===`\r`)break;if(t!==` `&&e[n+1]===`#`){r.push(t,`#`),n+=2;continue}if(t===`#`)break;r.push(t),n+=1}return{value
|
|
8
|
-
`).length-1}}function
|
|
9
|
-
`||t===`\r`))break;let c=e[o+1];if(r&&t===`\\`&&c!==void 0){a.push(
|
|
10
|
-
`&&(s+=1),a.push(t),o+=1}return{value:a.join(``),index:o,lines:s,terminated:!1}}function
|
|
6
|
+
`&&e[t]!==`\r`;)t+=1;a(J.comment,e.slice(n+1,t).trim()),n=t;continue}if(t===`|`){if(e.startsWith(`|||`,n)){let t=nT(e,n+3);a(J.doc,aT(t.value)),n=t.index,r+=t.lines;continue}let t=tT(e,n+1);a(J.doc,t.value),n=t.index;continue}if(t===`"`){let t=rT(e,n+1,`"`,!0,!1);a(J.quoted,t.value),n=t.index;continue}if(t===`'`){let t=rT(e,n+1,`'`,!0,!1);a(J.string,t.value),n=t.index;continue}if(t==="`"){let t=rT(e,n+1,"`",!1,!0);a(J.expression,t.value),n=t.index,r+=t.lines;continue}if(qw.test(t)){let t=n;for(;t<e.length&&qw.test(e[t]);)t+=1;if(e[t]===`.`&&qw.test(e[t+1]??``))for(t+=1;t<e.length&&qw.test(e[t]);)t+=1;a(J.number,e.slice(n,t)),n=t;continue}if(Jw.test(t)){let t=n+1;for(;t<e.length&&Yw.test(e[t]);)t+=1;for(;t>n&&e[t-1]===`#`;)--t;a(J.identifier,e.slice(n,t)),n=t;continue}a(J.punctuation,t),n+=1}return t}function eT(e,t){let n=0;for(let r=t;r<e.length;r++){let t=e[r];if(t===` `)n+=1;else if(t===` `)n+=.5;else break}return Math.round(n)-1}function tT(e,t){let n=t;for(;n<e.length&&Kw.test(e[n]);)n+=1;if(n>t&&e[n]===`"`){let t=rT(e,n+1,`"`,!0,!1);if(t.terminated)return{value:t.value,index:t.index}}let r=[];for(n=t;n<e.length;){let t=e[n];if(t===`
|
|
7
|
+
`||t===`\r`)break;if(t!==` `&&e[n+1]===`#`){r.push(t,`#`),n+=2;continue}if(t===`#`)break;r.push(t),n+=1}return{value:iT(r.join(``).trim().replace(Zw,`#`)),index:n}}function nT(e,t){let n=e.indexOf(`|||`,t),r=n===-1?e.length:n,i=e.slice(t,r);return{value:i,index:n===-1?e.length:n+3,lines:i.split(`
|
|
8
|
+
`).length-1}}function rT(e,t,n,r,i){let a=[],o=t,s=0;for(;o<e.length;){if(e.startsWith(n,o))return{value:a.join(``),index:o+n.length,lines:s,terminated:!0};let t=e[o];if(!i&&(t===`
|
|
9
|
+
`||t===`\r`))break;let c=e[o+1];if(r&&t===`\\`&&c!==void 0){a.push(Qw[c]??c),o+=2;continue}t===`
|
|
10
|
+
`&&(s+=1),a.push(t),o+=1}return{value:a.join(``),index:o,lines:s,terminated:!1}}function iT(e){let t=e[0];return e.length>1&&(t===`"`||t===`'`)&&e.endsWith(t)?e.slice(1,-1):e}function aT(e){let t=e.replace(/\r\n|\r/g,`
|
|
11
11
|
`).split(`
|
|
12
|
-
`);t[0]?.trim()===``&&t.shift(),t.length&&t[t.length-1].trim()===``&&t.pop();let n=t.filter(e=>e.trim()!==``).map(e=>(
|
|
13
|
-
`)}const tT=new Set([`as`,`check`,`false`,`fk`,`index`,`namespace`,`null`,`nullable`,`pk`,`rel`,`true`,`type`,`unique`]),nT=new Set([`false`,`null`,`true`]),rT=/^-?\d+$/;function iT(e){try{return{ok:!0,model:sT(aT(Jw(e)))}}catch(e){return{ok:!1,message:e instanceof Error?e.message:`Invalid AML`}}}function aT(e){let t=[],n=null;return e.forEach(e=>{if(e.kind===J.newline){n={depth:e.depth,tokens:[]},t.push(n);return}n?.tokens.push(e)}),t}function oT(e){let t=0;return{peek:(n=0)=>e[t+n]??null,next:()=>e[t++]??null,atEnd:()=>t>=e.length}}function sT(e){let t={entities:[],relations:[],types:{},skipped:[]},n=new Set,r=e=>{e!==``&&!n.has(e)&&(n.add(e),t.skipped.push(e))},i=Tw,a=null,o={path:[],depth:0};return e.forEach(e=>{let n=oT(e.tokens),s=n.peek();if(!s)return;if(e.depth>=0){a!==null&&lT(n,e.depth,a,o,t,r);return}let c=s.kind===J.identifier?s.value.toLowerCase():``;if(c===`namespace`){n.next(),i=wT(n);return}if(c===`rel`||c===`fk`){n.next();let e=hT(n,i,r);e&&t.relations.push(e);return}if(c===`type`){n.next(),CT(n,i,t,r);return}if(!LT(s))return;let l=cT(n,i,r);l&&(t.entities.push(l),a=l,o={path:[],depth:0})}),t}function cT(e,t,n){let r=TT(e);if(r.name===``)return null;let i=e.peek();i&&Y(i,`*`)&&(e.next(),n(`view`));let a=DT(e),o=OT(e,n);return{namespace:PT(t,r.namespace),name:r.name,alias:a,comment:o.doc||o.comment,attributes:[]}}function lT(e,t,n,r,i,a){let o=NT(e);if(o===``)return;let s=dT(e),c={path:uT(r,t,o),comment:``,typeName:s.typeName,enumValues:s.enumValues,notNull:!0,primaryKey:!1,indexes:[],default:s.default,autoIncrement:!1},l=e.peek();l&&RT(l,`nullable`)&&(e.next(),c.notNull=!1),fT(e,c,n,i,a);let u=OT(e,a);c.comment=u.doc||u.comment,c.autoIncrement=u.autoIncrement,n.attributes.push(c)}function uT(e,t,n){if(t===0||e.path.length===0)e.depth=0,e.path=[n];else if(t>e.depth)e.depth+=1,e.path=[...e.path,n];else{let r=e.depth-t;e.depth=t,e.path=[...e.path.slice(0,-(r+1)),n]}return e.path.join(`.`)}function dT(e){let t=NT(e);if(t===``)return{typeName:``,enumValues:[],default:``};let n=t,r=[],i=e.peek();if(i&&Y(i,`(`)){e.next();let{values:i,numeric:a}=jT(e);i.length!==0&&i.length<=2&&a?n=`${t}(${i.join(`,`)})`:r=i}let a=e.peek();return a&&Y(a,`=`)?(e.next(),{typeName:n,enumValues:r,default:MT(e)}):{typeName:n,enumValues:r,default:``}}function fT(e,t,n,r,i){let a=()=>{let i=gT(e);return i?(r.relations.push({src:{namespace:n.namespace,entityName:n.name,attributePaths:[t.path]},...i}),!0):!1};for(;!e.atEnd();){let n=e.peek();if(!n)return;if(n.kind===J.identifier){let r=n.value.toLowerCase();if(r===`pk`){e.next(),mT(e),t.primaryKey=!0;continue}if(r===`unique`||r===`index`){e.next(),t.indexes.push({name:mT(e),unique:r===`unique`});continue}if(r===`check`){e.next(),pT(e),i(`check`);continue}if(r===`fk`&&a())continue;return}if(!(zT(n)&&a()))return}}function pT(e){let t=e.peek();t&&Y(t,`(`)&&(e.next(),IT(e,`(`,`)`)),mT(e)}function mT(e){let t=e.peek();return!t||!Y(t,`=`)?``:(e.next(),NT(e))}function hT(e,t,n){let r=yT(e),i=gT(e);return OT(e,n),!i||r.entityName===``?null:{src:FT(r.namespace)?{...r,namespace:t}:r,...i}}function gT(e){let t=e.peek();if(t&&RT(t,`fk`)){e.next();let t=yT(e);return t.entityName===``?null:{ref:t,srcCardinality:`n`,refCardinality:`1`,polymorphic:!1}}let n=_T(e);if(n===null)return null;let r=vT(e);r&&(xT(e),e.next(),MT(e));let i=_T(e)??`n`,a=yT(e);return a.entityName===``?null:{ref:a,srcCardinality:i,refCardinality:n,polymorphic:r}}function _T(e){let t=e.peek();return!t||!zT(t)?null:(e.next(),t.value===`-`?`1`:`n`)}function vT(e){let t=0;for(;;){let n=e.peek(t);if(!n||!LT(n))return!1;t+=1;let r=e.peek(t);if(!r||!Y(r,`.`))break;t+=1}let n=e.peek(t);return n!==null&&Y(n,`=`)}function yT(e){let t=TT(e),n=e.peek();if(n&&Y(n,`(`))return e.next(),{namespace:t.namespace,entityName:t.name,attributePaths:bT(e)};if(t.namespace.schema===``)return{namespace:Tw,entityName:t.name,attributePaths:[]};let r=[t.name,...ST(e)].join(`.`);return{namespace:{database:``,catalog:``,schema:t.namespace.catalog},entityName:t.namespace.schema,attributePaths:[r]}}function bT(e){let t=[];for(;!e.atEnd();){let n=e.peek();if(!n||Y(n,`)`)){e.next();break}if(LT(n)){t.push(xT(e));continue}e.next()}return t}function xT(e){let t=[NT(e)];for(;!e.atEnd();){let n=e.peek();if(!n||!Y(n,`.`))break;e.next();let r=NT(e);if(r===``)break;t.push(r)}return t.join(`.`)}function ST(e){let t=[];for(;!e.atEnd();){let n=e.peek();if(!n||!Y(n,`:`))break;e.next();let r=NT(e);if(r===``)break;t.push(r)}return t}function CT(e,t,n,r){let i=TT(e);if(i.name===``)return;let a={values:[],alias:``},o=e.peek();o&&Y(o,`(`)?(e.next(),a.values=jT(e).values):o&&Y(o,`{`)?(e.next(),IT(e,`{`,`}`),r(`struct type`)):o&&o.kind===J.expression?(e.next(),r(`custom type`)):o&<(o)&&(a.alias=NT(e)),OT(e,r);let s=PT(t,i.namespace),c=[s.database,s.catalog,s.schema,i.name].filter(e=>e!==``).join(`.`);n.types[c]=a,c!==i.name&&!(i.name in n.types)&&(n.types[i.name]=a)}function wT(e){let t=NT(e);if(t===``)return Tw;let n=ET(e),r=ET(e);return n&&r?{database:t,catalog:n.name,schema:r.name}:n?{database:``,catalog:t,schema:n.name}:{database:``,catalog:``,schema:t}}function TT(e){let t=NT(e);if(t===``)return{namespace:Tw,name:``};let n=ET(e),r=ET(e),i=ET(e);return n&&r&&i&&i.name!==``?{namespace:{database:t,catalog:n.name,schema:r.name},name:i.name}:n&&r&&r.name!==``?{namespace:{database:``,catalog:t,schema:n.name},name:r.name}:n&&n.name!==``?{namespace:{database:``,catalog:``,schema:t},name:n.name}:{namespace:Tw,name:t}}function ET(e){let t=e.peek();return!t||!Y(t,`.`)?null:(e.next(),{name:NT(e)})}function DT(e){let t=e.peek();return!t||!RT(t,`as`)?``:(e.next(),NT(e))}function OT(e,t){let n={autoIncrement:!1,doc:``,comment:``};for(;!e.atEnd();){let r=e.next();if(!r)break;if(Y(r,`{`)){kT(e,n,t);continue}if(r.kind===J.doc&&n.doc===``){n.doc=r.value;continue}r.kind===J.comment&&n.comment===``&&(n.comment=r.value)}return n}function kT(e,t,n){for(;!e.atEnd();){let r=e.next();if(!r||Y(r,`}`))return;if(r.kind!==J.identifier&&r.kind!==J.quoted)continue;let i=e.peek();i&&(Y(i,`:`)||Y(i,`=`))&&(e.next(),AT(e)),r.value.toLowerCase()===`autoincrement`?t.autoIncrement=!0:n(r.value)}}function AT(e){let t=0;for(;!e.atEnd();){let n=e.peek();if(!n||t===0&&(Y(n,`,`)||Y(n,`}`)))return;e.next(),Y(n,`[`)?t+=1:Y(n,`]`)&&--t}}function jT(e){let t=[],n=!0;for(;!e.atEnd();){let r=e.peek();if(!r||Y(r,`)`)){e.next();break}if(Y(r,`,`)){e.next();continue}let i=MT(e);t.push(i),n=n&&r.kind!==J.quoted&&rT.test(i)}return{values:t,numeric:n}}function MT(e){let t=e.peek();if(!t)return``;if(Y(t,`-`)&&e.peek(1)?.kind===J.number)return e.next(),`-${e.next()?.value??``}`;switch(e.next(),t.kind){case J.expression:return`\`${t.value}\``;case J.string:return`'${t.value}'`;case J.identifier:return nT.has(t.value.toLowerCase())?t.value.toLowerCase():t.value;default:return t.value}}function NT(e){let t=e.peek();return!t||!LT(t)?``:(e.next(),t.value)}function PT(e,t){return{database:t.database||e.database,catalog:t.catalog||e.catalog,schema:t.schema||e.schema}}function FT(e){return e.database===``&&e.catalog===``&&e.schema===``}function IT(e,t,n){let r=1;for(;!e.atEnd()&&r!==0;){let i=e.next();if(!i)break;Y(i,t)?r+=1:Y(i,n)&&--r}}function LT(e){return e.kind===J.quoted||e.kind===J.identifier&&!tT.has(e.value.toLowerCase())}function RT(e,t){return e.kind===J.identifier&&e.value.toLowerCase()===t}function zT(e){return e.kind===J.punctuation&&(e.value===`-`||e.value===`<`||e.value===`>`)}function Y(e,t){return e.kind===J.punctuation&&e.value===t}const BT={entities:[],relations:[],types:{},skipped:[]};function VT(e,t,n){let r=iT(e),i=r.ok?r.model:BT,a=Hp({}),o=Hh(i.entities.length*100);a.settings.width=o,a.settings.height=o;let{settings:s}=n?n(a):a,c=Dw(i,t,s.database);return c.settings=s,Hm(c)}const HT={[L.MariaDB]:`VARCHAR(255)`,[L.MSSQL]:`varchar(255)`,[L.MySQL]:`VARCHAR(255)`,[L.Oracle]:`VARCHAR2(255)`,[L.PostgreSQL]:`varchar(255)`,[L.SQLite]:`TEXT`,[L.Databricks]:`STRING`,[L.Snowflake]:`VARCHAR(255)`};function UT(e,t,n,r){let i=KT(e,t,r);return i?GT(i,n)??HT[n]??e:e}function WT(e,t,n,r){let i=KT(e,t,n);return!i||GT(i,r)!==void 0?``:` ${e}: ${i.join(` | `)}`}function GT(e,t){if(t===L.MySQL||t===L.MariaDB)return`ENUM(${e.map(e=>`'${e.replace(/'/g,`''`)}'`).join(`,`)})`}function KT(e,t,n){let r=t?`${t}.${e}`:``;return n.enums[r]??n.enums[e]??null}const qT=`public`;function JT(e,t,n){let r=Hp({}),i=YT(e.tables),a=e.tables.map(a=>QT(r,t,e,n,a,i(a)));return eE(r,t,a,e,ZT(e.tables,a)),aE(r,a),r}function YT(e){let t=new Set(e.map(e=>XT(e.schemaName)));return e=>{let n=XT(e.schemaName);return t.size>1&&n!==qT?`${n}_${e.name}`:e.name}}function XT(e){return e===``?qT:e}function ZT(e,t){let n=new Map,r=(e,t)=>{let r=e.toLowerCase();n.has(r)||n.set(r,t)};return e.forEach((e,n)=>{let i=t[n],a=XT(e.schemaName);r(`${a}.${e.name}`,i),r(e.name,i),e.alias&&(r(e.alias,i),r(`${a}.${e.alias}`,i))}),e=>{let t=XT(e.schemaName);return n.get(`${t}.${e.tableName}`.toLowerCase())??(e.schemaName===``?n.get(e.tableName.toLowerCase())??null:null)}}function QT({doc:e,collections:t},n,r,i,a,o){let{toWidth:s}=n,c=Xh(o),l=Xh(a.comment),u=OS({name:c,comment:l,ui:{widthName:U(s(c)),widthComment:U(s(l))}}),d={source:a,table:u,columns:[]},f=new Set(a.indexes.filter(e=>e.primaryKey).flatMap(e=>e.columnNames).map(e=>e.toUpperCase()));return a.columns.forEach(e=>{let n=Xh(e.name),a=e.primaryKey||f.has(n.toUpperCase()),o=UT(e.typeName,e.typeSchemaName,i,r),c=`${Xh(e.comment)}${WT(e.typeName,e.typeSchemaName,r,i)}`.trim(),l=Xh(e.default);$T(t,d,aC({tableId:u.id,name:n,comment:c,dataType:o,default:l,options:(e.autoIncrement?z.autoIncrement:0)|(a?z.primaryKey:0)|(e.unique?z.unique:0)|(e.notNull?z.notNull:0),ui:{widthName:U(s(n)),widthComment:U(s(c)),widthDataType:U(s(o)),widthDefault:U(s(l)),keys:a?B.primaryKey:0}}))}),e.tableIds.push(u.id),N(t).collection(`tableEntities`).setOne(u),d}function $T(e,t,n){t.table.columnIds.push(n.id),t.table.seqColumnIds.push(n.id),t.columns.push(n),N(e).collection(`tableColumnEntities`).setOne(n)}function eE(e,t,n,r,i){let a=new Set,o=t=>nE(e,a,t);n.forEach(r=>{r.source.columns.forEach((a,s)=>{let c=r.columns[s];c&&a.inlineRefs.forEach(a=>{let s=i(a.target);if(!s)return;let l=tE(s,a.target);if(l.length!==1)return;if(a.operator===`<>`){rE(e,t,n,r,s);return}let u=a.operator!==`<`;o(u?{parent:s,parentColumns:l,child:r,childColumns:[c],toMany:a.operator===`>`}:{parent:r,parentColumns:[c],child:s,childColumns:l,toMany:!0})})})}),r.refs.forEach(r=>{let a=i(r.left),s=i(r.right);if(!a||!s)return;let c=tE(a,r.left),l=tE(s,r.right);if(c.length===0||c.length!==r.left.columnNames.length||l.length!==r.right.columnNames.length||c.length!==l.length)return;if(r.operator===`<>`){rE(e,t,n,a,s);return}let u=r.operator!==`>`;o({parent:u?a:s,parentColumns:u?c:l,child:u?s:a,childColumns:u?l:c,toMany:r.operator!==`-`})})}function tE(e,t){let n=[];for(let r of t.columnNames){let t=vw(e.columns,r);if(!t)return[];n.push(t)}return n}function nE({doc:e,collections:t},n,{parent:r,parentColumns:i,child:a,childColumns:o,toMany:s}){if(i.length===0||o.length===0)return;let c=`${r.table.id}:${a.table.id}:${o.map(e=>e.id).join(`,`)}`;if(n.has(c))return;n.add(c);let l=o.every(e=>G(e.options,z.notNull));o.forEach(e=>{e.ui.keys=G(e.ui.keys,B.primaryKey)?e.ui.keys|B.foreignKey:B.foreignKey});let u=sS({identification:o.every(e=>G(e.ui.keys,B.primaryKey)&&G(e.ui.keys,B.foreignKey)),relationshipType:s?l?Zm.OneN:Zm.ZeroN:l?Zm.OneOnly:Zm.ZeroOne,start:{tableId:r.table.id,columnIds:i.map(e=>e.id)},end:{tableId:a.table.id,columnIds:o.map(e=>e.id)}});e.relationshipIds.push(u.id),N(t).collection(`relationshipEntities`).setOne(u)}function rE(e,t,n,r,i){let{doc:a,collections:o}=e,{toWidth:s}=t,c=gw(r.columns),l=gw(i.columns);if(!c.length||!l.length)return;let u=_w(n.map(e=>e.table),``,`${r.table.name}_${i.table.name}`),d=`Junction table inferred from ${r.table.name} <-> ${i.table.name}`,f=OS({name:u,comment:d,ui:{widthName:U(s(u)),widthComment:U(s(d))}}),p={source:{schemaName:``,name:u,alias:``,comment:d,columns:[],indexes:[]},table:f,columns:[]};a.tableIds.push(f.id),N(o).collection(`tableEntities`).setOne(f),n.push(p),iE(e,t,p,r,c),iE(e,t,p,i,l)}function iE(e,{toWidth:t},n,r,i){let{doc:a,collections:o}=e,s=i.map(e=>{let i=_w(n.columns,``,`${r.table.name}_${e.name}`),{dataType:a}=e,s=aC({tableId:n.table.id,name:i,dataType:a,options:z.primaryKey|z.notNull,ui:{keys:B.primaryKey|B.foreignKey,widthName:U(t(i)),widthDataType:U(t(a))}});return $T(o,n,s),s}),c=sS({identification:!0,relationshipType:Zm.ZeroN,start:{tableId:r.table.id,columnIds:i.map(e=>e.id)},end:{tableId:n.table.id,columnIds:s.map(e=>e.id)}});a.relationshipIds.push(c.id),N(o).collection(`relationshipEntities`).setOne(c)}function aE({doc:e,collections:t},n){n.forEach(({source:n,table:r,columns:i})=>{n.indexes.forEach(n=>{if(n.primaryKey)return;let a=Zb({name:Xh(n.name),tableId:r.id,unique:n.unique}),o=[];n.columnNames.forEach(e=>{let t=vw(i,e);t&&o.push(mx({indexId:a.id,columnId:t.id,orderType:$m.ASC}))}),o.length&&(o.forEach(e=>{a.indexColumnIds.push(e.id),a.seqIndexColumnIds.push(e.id),N(t).collection(`indexColumnEntities`).setOne(e)}),e.indexIds.push(a.id),N(t).collection(`indexEntities`).setOne(a))})})}const X={identifier:1,quoted:2,string:3,expression:4,number:5,punctuation:6,operator:7,newline:8},oE=/[ \t\f\v]/,sE=/[0-9]/,cE=/[A-Za-z_\u0080-\uffff]/,lE=/[0-9A-Za-z_\u0080-\uffff]/,uE=/^[ \t]*/,dE={n:`
|
|
14
|
-
`,r:`\r`,t:` `,b:`\b`,f:`\f`,v:`\v`,0:`\0`};function
|
|
15
|
-
`)};for(;n<e.length;){let t=e[n];if(
|
|
12
|
+
`);t[0]?.trim()===``&&t.shift(),t.length&&t[t.length-1].trim()===``&&t.pop();let n=t.filter(e=>e.trim()!==``).map(e=>(Xw.exec(e)?.[0]??``).length),r=n.length?Math.min(...n):0;return t.map(e=>e.slice(r)).join(`
|
|
13
|
+
`)}const oT=new Set([`as`,`check`,`false`,`fk`,`index`,`namespace`,`null`,`nullable`,`pk`,`rel`,`true`,`type`,`unique`]),sT=new Set([`false`,`null`,`true`]),cT=/^-?\d+$/;function lT(e){try{return{ok:!0,model:fT(uT($w(e)))}}catch(e){return{ok:!1,message:e instanceof Error?e.message:`Invalid AML`}}}function uT(e){let t=[],n=null;return e.forEach(e=>{if(e.kind===J.newline){n={depth:e.depth,tokens:[]},t.push(n);return}n?.tokens.push(e)}),t}function dT(e){let t=0;return{peek:(n=0)=>e[t+n]??null,next:()=>e[t++]??null,atEnd:()=>t>=e.length}}function fT(e){let t={entities:[],relations:[],types:{},skipped:[]},n=new Set,r=e=>{e!==``&&!n.has(e)&&(n.add(e),t.skipped.push(e))},i=Aw,a=null,o={path:[],depth:0};return e.forEach(e=>{let n=dT(e.tokens),s=n.peek();if(!s)return;if(e.depth>=0){a!==null&&mT(n,e.depth,a,o,t,r);return}let c=s.kind===J.identifier?s.value.toLowerCase():``;if(c===`namespace`){n.next(),i=kT(n);return}if(c===`rel`||c===`fk`){n.next();let e=bT(n,i,r);e&&t.relations.push(e);return}if(c===`type`){n.next(),OT(n,i,t,r);return}if(!HT(s))return;let l=pT(n,i,r);l&&(t.entities.push(l),a=l,o={path:[],depth:0})}),t}function pT(e,t,n){let r=AT(e);if(r.name===``)return null;let i=e.peek();i&&Y(i,`*`)&&(e.next(),n(`view`));let a=MT(e),o=NT(e,n);return{namespace:zT(t,r.namespace),name:r.name,alias:a,comment:o.doc||o.comment,attributes:[]}}function mT(e,t,n,r,i,a){let o=RT(e);if(o===``)return;let s=gT(e),c={path:hT(r,t,o),comment:``,typeName:s.typeName,enumValues:s.enumValues,notNull:!0,primaryKey:!1,indexes:[],default:s.default,autoIncrement:!1},l=e.peek();l&&UT(l,`nullable`)&&(e.next(),c.notNull=!1),_T(e,c,n,i,a);let u=NT(e,a);c.comment=u.doc||u.comment,c.autoIncrement=u.autoIncrement,n.attributes.push(c)}function hT(e,t,n){if(t===0||e.path.length===0)e.depth=0,e.path=[n];else if(t>e.depth)e.depth+=1,e.path=[...e.path,n];else{let r=e.depth-t;e.depth=t,e.path=[...e.path.slice(0,-(r+1)),n]}return e.path.join(`.`)}function gT(e){let t=RT(e);if(t===``)return{typeName:``,enumValues:[],default:``};let n=t,r=[],i=e.peek();if(i&&Y(i,`(`)){e.next();let{values:i,numeric:a}=IT(e);i.length!==0&&i.length<=2&&a?n=`${t}(${i.join(`,`)})`:r=i}let a=e.peek();return a&&Y(a,`=`)?(e.next(),{typeName:n,enumValues:r,default:LT(e)}):{typeName:n,enumValues:r,default:``}}function _T(e,t,n,r,i){let a=()=>{let i=xT(e);return i?(r.relations.push({src:{namespace:n.namespace,entityName:n.name,attributePaths:[t.path]},...i}),!0):!1};for(;!e.atEnd();){let n=e.peek();if(!n)return;if(n.kind===J.identifier){let r=n.value.toLowerCase();if(r===`pk`){e.next(),yT(e),t.primaryKey=!0;continue}if(r===`unique`||r===`index`){e.next(),t.indexes.push({name:yT(e),unique:r===`unique`});continue}if(r===`check`){e.next(),vT(e),i(`check`);continue}if(r===`fk`&&a())continue;return}if(!(WT(n)&&a()))return}}function vT(e){let t=e.peek();t&&Y(t,`(`)&&(e.next(),VT(e,`(`,`)`)),yT(e)}function yT(e){let t=e.peek();return!t||!Y(t,`=`)?``:(e.next(),RT(e))}function bT(e,t,n){let r=wT(e),i=xT(e);return NT(e,n),!i||r.entityName===``?null:{src:BT(r.namespace)?{...r,namespace:t}:r,...i}}function xT(e){let t=e.peek();if(t&&UT(t,`fk`)){e.next();let t=wT(e);return t.entityName===``?null:{ref:t,srcCardinality:`n`,refCardinality:`1`,polymorphic:!1}}let n=ST(e);if(n===null)return null;let r=CT(e);r&&(ET(e),e.next(),LT(e));let i=ST(e)??`n`,a=wT(e);return a.entityName===``?null:{ref:a,srcCardinality:i,refCardinality:n,polymorphic:r}}function ST(e){let t=e.peek();return!t||!WT(t)?null:(e.next(),t.value===`-`?`1`:`n`)}function CT(e){let t=0;for(;;){let n=e.peek(t);if(!n||!HT(n))return!1;t+=1;let r=e.peek(t);if(!r||!Y(r,`.`))break;t+=1}let n=e.peek(t);return n!==null&&Y(n,`=`)}function wT(e){let t=AT(e),n=e.peek();if(n&&Y(n,`(`))return e.next(),{namespace:t.namespace,entityName:t.name,attributePaths:TT(e)};if(t.namespace.schema===``)return{namespace:Aw,entityName:t.name,attributePaths:[]};let r=[t.name,...DT(e)].join(`.`);return{namespace:{database:``,catalog:``,schema:t.namespace.catalog},entityName:t.namespace.schema,attributePaths:[r]}}function TT(e){let t=[];for(;!e.atEnd();){let n=e.peek();if(!n||Y(n,`)`)){e.next();break}if(HT(n)){t.push(ET(e));continue}e.next()}return t}function ET(e){let t=[RT(e)];for(;!e.atEnd();){let n=e.peek();if(!n||!Y(n,`.`))break;e.next();let r=RT(e);if(r===``)break;t.push(r)}return t.join(`.`)}function DT(e){let t=[];for(;!e.atEnd();){let n=e.peek();if(!n||!Y(n,`:`))break;e.next();let r=RT(e);if(r===``)break;t.push(r)}return t}function OT(e,t,n,r){let i=AT(e);if(i.name===``)return;let a={values:[],alias:``},o=e.peek();o&&Y(o,`(`)?(e.next(),a.values=IT(e).values):o&&Y(o,`{`)?(e.next(),VT(e,`{`,`}`),r(`struct type`)):o&&o.kind===J.expression?(e.next(),r(`custom type`)):o&&HT(o)&&(a.alias=RT(e)),NT(e,r);let s=zT(t,i.namespace),c=[s.database,s.catalog,s.schema,i.name].filter(e=>e!==``).join(`.`);n.types[c]=a,c!==i.name&&!(i.name in n.types)&&(n.types[i.name]=a)}function kT(e){let t=RT(e);if(t===``)return Aw;let n=jT(e),r=jT(e);return n&&r?{database:t,catalog:n.name,schema:r.name}:n?{database:``,catalog:t,schema:n.name}:{database:``,catalog:``,schema:t}}function AT(e){let t=RT(e);if(t===``)return{namespace:Aw,name:``};let n=jT(e),r=jT(e),i=jT(e);return n&&r&&i&&i.name!==``?{namespace:{database:t,catalog:n.name,schema:r.name},name:i.name}:n&&r&&r.name!==``?{namespace:{database:``,catalog:t,schema:n.name},name:r.name}:n&&n.name!==``?{namespace:{database:``,catalog:``,schema:t},name:n.name}:{namespace:Aw,name:t}}function jT(e){let t=e.peek();return!t||!Y(t,`.`)?null:(e.next(),{name:RT(e)})}function MT(e){let t=e.peek();return!t||!UT(t,`as`)?``:(e.next(),RT(e))}function NT(e,t){let n={autoIncrement:!1,doc:``,comment:``};for(;!e.atEnd();){let r=e.next();if(!r)break;if(Y(r,`{`)){PT(e,n,t);continue}if(r.kind===J.doc&&n.doc===``){n.doc=r.value;continue}r.kind===J.comment&&n.comment===``&&(n.comment=r.value)}return n}function PT(e,t,n){for(;!e.atEnd();){let r=e.next();if(!r||Y(r,`}`))return;if(r.kind!==J.identifier&&r.kind!==J.quoted)continue;let i=e.peek();i&&(Y(i,`:`)||Y(i,`=`))&&(e.next(),FT(e)),r.value.toLowerCase()===`autoincrement`?t.autoIncrement=!0:n(r.value)}}function FT(e){let t=0;for(;!e.atEnd();){let n=e.peek();if(!n||t===0&&(Y(n,`,`)||Y(n,`}`)))return;e.next(),Y(n,`[`)?t+=1:Y(n,`]`)&&--t}}function IT(e){let t=[],n=!0;for(;!e.atEnd();){let r=e.peek();if(!r||Y(r,`)`)){e.next();break}if(Y(r,`,`)){e.next();continue}let i=LT(e);t.push(i),n=n&&r.kind!==J.quoted&&cT.test(i)}return{values:t,numeric:n}}function LT(e){let t=e.peek();if(!t)return``;if(Y(t,`-`)&&e.peek(1)?.kind===J.number)return e.next(),`-${e.next()?.value??``}`;switch(e.next(),t.kind){case J.expression:return`\`${t.value}\``;case J.string:return`'${t.value}'`;case J.identifier:return sT.has(t.value.toLowerCase())?t.value.toLowerCase():t.value;default:return t.value}}function RT(e){let t=e.peek();return!t||!HT(t)?``:(e.next(),t.value)}function zT(e,t){return{database:t.database||e.database,catalog:t.catalog||e.catalog,schema:t.schema||e.schema}}function BT(e){return e.database===``&&e.catalog===``&&e.schema===``}function VT(e,t,n){let r=1;for(;!e.atEnd()&&r!==0;){let i=e.next();if(!i)break;Y(i,t)?r+=1:Y(i,n)&&--r}}function HT(e){return e.kind===J.quoted||e.kind===J.identifier&&!oT.has(e.value.toLowerCase())}function UT(e,t){return e.kind===J.identifier&&e.value.toLowerCase()===t}function WT(e){return e.kind===J.punctuation&&(e.value===`-`||e.value===`<`||e.value===`>`)}function Y(e,t){return e.kind===J.punctuation&&e.value===t}const GT={entities:[],relations:[],types:{},skipped:[]};function KT(e,t,n){let r=lT(e),i=r.ok?r.model:GT,a=Jp({}),o=Jh(i.entities.length*100);a.settings.width=o,a.settings.height=o;let{settings:s}=n?n(a):a,c=Mw(i,t,s.database);return c.settings=s,Jm(c)}const qT={[I.MariaDB]:`VARCHAR(255)`,[I.MSSQL]:`varchar(255)`,[I.MySQL]:`VARCHAR(255)`,[I.Oracle]:`VARCHAR2(255)`,[I.PostgreSQL]:`varchar(255)`,[I.SQLite]:`TEXT`,[I.Databricks]:`STRING`,[I.Snowflake]:`VARCHAR(255)`};function JT(e,t,n,r){let i=ZT(e,t,r);return i?XT(i,n)??qT[n]??e:e}function YT(e,t,n,r){let i=ZT(e,t,n);return!i||XT(i,r)!==void 0?``:` ${e}: ${i.join(` | `)}`}function XT(e,t){if(t===I.MySQL||t===I.MariaDB)return`ENUM(${e.map(e=>`'${e.replace(/'/g,`''`)}'`).join(`,`)})`}function ZT(e,t,n){let r=t?`${t}.${e}`:``;return n.enums[r]??n.enums[e]??null}const QT=`public`;function $T(e,t,n){let r=Jp({}),i=eE(e.tables),a=e.tables.map(a=>rE(r,t,e,n,a,i(a)));return aE(r,t,a,e,nE(e.tables,a)),uE(r,a),r}function eE(e){let t=new Set(e.map(e=>tE(e.schemaName)));return e=>{let n=tE(e.schemaName);return t.size>1&&n!==QT?`${n}_${e.name}`:e.name}}function tE(e){return e===``?QT:e}function nE(e,t){let n=new Map,r=(e,t)=>{let r=e.toLowerCase();n.has(r)||n.set(r,t)};return e.forEach((e,n)=>{let i=t[n],a=tE(e.schemaName);r(`${a}.${e.name}`,i),r(e.name,i),e.alias&&(r(e.alias,i),r(`${a}.${e.alias}`,i))}),e=>{let t=tE(e.schemaName);return n.get(`${t}.${e.tableName}`.toLowerCase())??(e.schemaName===``?n.get(e.tableName.toLowerCase())??null:null)}}function rE({doc:e,collections:t},n,r,i,a,o){let{toWidth:s}=n,c=ng(o),l=ng(a.comment),u=NS({name:c,comment:l,ui:{widthName:H(s(c)),widthComment:H(s(l))}}),d={source:a,table:u,columns:[]},f=new Set(a.indexes.filter(e=>e.primaryKey).flatMap(e=>e.columnNames).map(e=>e.toUpperCase()));return a.columns.forEach(e=>{let n=ng(e.name),a=e.primaryKey||f.has(n.toUpperCase()),o=JT(e.typeName,e.typeSchemaName,i,r),c=`${ng(e.comment)}${YT(e.typeName,e.typeSchemaName,r,i)}`.trim(),l=ng(e.default);iE(t,d,uC({tableId:u.id,name:n,comment:c,dataType:o,default:l,options:(e.autoIncrement?R.autoIncrement:0)|(a?R.primaryKey:0)|(e.unique?R.unique:0)|(e.notNull?R.notNull:0),ui:{widthName:H(s(n)),widthComment:H(s(c)),widthDataType:H(s(o)),widthDefault:H(s(l)),keys:a?z.primaryKey:0}}))}),e.tableIds.push(u.id),M(t).collection(`tableEntities`).setOne(u),d}function iE(e,t,n){t.table.columnIds.push(n.id),t.table.seqColumnIds.push(n.id),t.columns.push(n),M(e).collection(`tableColumnEntities`).setOne(n)}function aE(e,t,n,r,i){let a=new Set,o=t=>sE(e,a,t);n.forEach(r=>{r.source.columns.forEach((a,s)=>{let c=r.columns[s];c&&a.inlineRefs.forEach(a=>{let s=i(a.target);if(!s)return;let l=oE(s,a.target);if(l.length!==1)return;if(a.operator===`<>`){cE(e,t,n,r,s);return}let u=a.operator!==`<`;o(u?{parent:s,parentColumns:l,child:r,childColumns:[c],toMany:a.operator===`>`}:{parent:r,parentColumns:[c],child:s,childColumns:l,toMany:!0})})})}),r.refs.forEach(r=>{let a=i(r.left),s=i(r.right);if(!a||!s)return;let c=oE(a,r.left),l=oE(s,r.right);if(c.length===0||c.length!==r.left.columnNames.length||l.length!==r.right.columnNames.length||c.length!==l.length)return;if(r.operator===`<>`){cE(e,t,n,a,s);return}let u=r.operator!==`>`;o({parent:u?a:s,parentColumns:u?c:l,child:u?s:a,childColumns:u?l:c,toMany:r.operator!==`-`})})}function oE(e,t){let n=[];for(let r of t.columnNames){let t=Cw(e.columns,r);if(!t)return[];n.push(t)}return n}function sE({doc:e,collections:t},n,{parent:r,parentColumns:i,child:a,childColumns:o,toMany:s}){if(i.length===0||o.length===0)return;let c=`${r.table.id}:${a.table.id}:${o.map(e=>e.id).join(`,`)}`;if(n.has(c))return;n.add(c);let l=o.every(e=>W(e.options,R.notNull));o.forEach(e=>{e.ui.keys=W(e.ui.keys,z.primaryKey)?e.ui.keys|z.foreignKey:z.foreignKey});let u=pS({identification:o.every(e=>W(e.ui.keys,z.primaryKey)&&W(e.ui.keys,z.foreignKey)),relationshipType:s?l?rh.OneN:rh.ZeroN:l?rh.OneOnly:rh.ZeroOne,start:{tableId:r.table.id,columnIds:i.map(e=>e.id)},end:{tableId:a.table.id,columnIds:o.map(e=>e.id)}});e.relationshipIds.push(u.id),M(t).collection(`relationshipEntities`).setOne(u)}function cE(e,t,n,r,i){let{doc:a,collections:o}=e,{toWidth:s}=t,c=xw(r.columns),l=xw(i.columns);if(!c.length||!l.length)return;let u=Sw(n.map(e=>e.table),``,`${r.table.name}_${i.table.name}`),d=`Junction table inferred from ${r.table.name} <-> ${i.table.name}`,f=NS({name:u,comment:d,ui:{widthName:H(s(u)),widthComment:H(s(d))}}),p={source:{schemaName:``,name:u,alias:``,comment:d,columns:[],indexes:[]},table:f,columns:[]};a.tableIds.push(f.id),M(o).collection(`tableEntities`).setOne(f),n.push(p),lE(e,t,p,r,c),lE(e,t,p,i,l)}function lE(e,{toWidth:t},n,r,i){let{doc:a,collections:o}=e,s=i.map(e=>{let i=Sw(n.columns,``,`${r.table.name}_${e.name}`),{dataType:a}=e,s=uC({tableId:n.table.id,name:i,dataType:a,options:R.primaryKey|R.notNull,ui:{keys:z.primaryKey|z.foreignKey,widthName:H(t(i)),widthDataType:H(t(a))}});return iE(o,n,s),s}),c=pS({identification:!0,relationshipType:rh.ZeroN,start:{tableId:r.table.id,columnIds:i.map(e=>e.id)},end:{tableId:n.table.id,columnIds:s.map(e=>e.id)}});a.relationshipIds.push(c.id),M(o).collection(`relationshipEntities`).setOne(c)}function uE({doc:e,collections:t},n){n.forEach(({source:n,table:r,columns:i})=>{n.indexes.forEach(n=>{if(n.primaryKey)return;let a=rx({name:ng(n.name),tableId:r.id,unique:n.unique}),o=[];n.columnNames.forEach(e=>{let t=Cw(i,e);t&&o.push(bx({indexId:a.id,columnId:t.id,orderType:ah.ASC}))}),o.length&&(o.forEach(e=>{a.indexColumnIds.push(e.id),a.seqIndexColumnIds.push(e.id),M(t).collection(`indexColumnEntities`).setOne(e)}),e.indexIds.push(a.id),M(t).collection(`indexEntities`).setOne(a))})})}const X={identifier:1,quoted:2,string:3,expression:4,number:5,punctuation:6,operator:7,newline:8},dE=/[ \t\f\v]/,fE=/[0-9]/,pE=/[A-Za-z_\u0080-\uffff]/,mE=/[0-9A-Za-z_\u0080-\uffff]/,hE=/^[ \t]*/,gE={n:`
|
|
14
|
+
`,r:`\r`,t:` `,b:`\b`,f:`\f`,v:`\v`,0:`\0`};function _E(e){let t=[],n=0,r=1,i=0,a=(e,n)=>{t.push({kind:e,value:n,line:r})},o=()=>{i===0&&a(X.newline,`
|
|
15
|
+
`)};for(;n<e.length;){let t=e[n];if(dE.test(t)){n+=1;continue}if(t===`\r`||t===`
|
|
16
16
|
`){t===`\r`&&e[n+1]===`
|
|
17
17
|
`&&(n+=1),n+=1,o(),r+=1;continue}if(t===`/`&&e[n+1]===`/`){for(n+=2;n<e.length&&e[n]!==`
|
|
18
18
|
`;)n+=1;continue}if(t===`/`&&e[n+1]===`*`){n+=2;let t=!1;for(;n<e.length;){if(e[n]===`*`&&e[n+1]===`/`){n+=2;break}e[n]===`
|
|
19
|
-
`&&(t=!0,r+=1),n+=1}t&&o();continue}if(t===`"`){let t=
|
|
20
|
-
`&&(o+=1),i.push(t),a+=1}return{value:i.join(``),index:a,lines:o}}function
|
|
19
|
+
`&&(t=!0,r+=1),n+=1}t&&o();continue}if(t===`"`){let t=yE(e,n+1,`"`,!0);n=t.index,r+=t.lines,a(X.quoted,t.value);continue}if(t===`'`){if(e.startsWith(`'''`,n)){let t=yE(e,n+3,`'''`,!0);n=t.index,r+=t.lines,a(X.string,bE(t.value));continue}let t=yE(e,n+1,`'`,!0);n=t.index,r+=t.lines,a(X.string,t.value);continue}if(t==="`"){let t=yE(e,n+1,"`",!1);n=t.index,r+=t.lines,a(X.expression,t.value);continue}if(fE.test(t)){let t=n;for(;t<e.length&&fE.test(e[t]);)t+=1;if(e[t]===`.`&&fE.test(e[t+1]??``))for(t+=1;t<e.length&&fE.test(e[t]);)t+=1;if((e[t]===`e`||e[t]===`E`)&&fE.test(e[t+1]??``))for(t+=2;t<e.length&&fE.test(e[t]);)t+=1;a(X.number,e.slice(n,t)),n=t;continue}if(pE.test(t)){let t=n+1;for(;t<e.length&&mE.test(e[t]);)t+=1;a(X.identifier,e.slice(n,t)),n=t;continue}let s=vE(e,n);if(s){a(X.operator,s),n+=s.length;continue}t===`[`||t===`(`?i+=1:(t===`]`||t===`)`)&&(i=Math.max(0,i-1)),a(X.punctuation,t),n+=1}return t}function vE(e,t){let n=e[t];if(n===`-`)return e[t+1]===`?`?`-?`:``;if(n!==`<`&&n!==`>`&&n!==`?`)return``;let r=/^\??(?:<>|<|>|-)\??/.exec(e.slice(t));return r&&/[<>-]/.test(r[0])?r[0]:``}function yE(e,t,n,r){let i=[],a=t,o=0;for(;a<e.length;){if(e.startsWith(n,a))return{value:i.join(``),index:a+n.length,lines:o};let t=e[a];if(r&&t===`\\`&&a+1<e.length){let t=e[a+1];i.push(gE[t]??t),a+=2;continue}t===`
|
|
20
|
+
`&&(o+=1),i.push(t),a+=1}return{value:i.join(``),index:a,lines:o}}function bE(e){let t=e.replace(/\r\n|\r/g,`
|
|
21
21
|
`).split(`
|
|
22
|
-
`);t[0]?.trim()===``&&t.shift(),t.length&&t[t.length-1].trim()===``&&t.pop();let n=t.filter(e=>e.trim()!==``).map(e=>(
|
|
23
|
-
`)}const gE=/^[0-9a-z ]+$/,_E=/'/g,vE=/\?/g;function yE(e){try{return{ok:!0,model:xE(fE(e))}}catch(e){return{ok:!1,message:e instanceof Error?e.message:`Invalid DBML`}}}function bE(e){let t=0;return{peek:(n=0)=>e[t+n]??null,next:()=>e[t++]??null,atEnd:()=>t>=e.length}}function xE(e){let t=bE(e),n={tables:[],refs:[],enums:{},skipped:[]},r=new Map,i=new Set,a=e=>{i.has(e)||(i.add(e),n.skipped.push(e)),KE(t)};for(;!t.atEnd();){if(JE(t))continue;let e=t.peek();if(!e)break;if(!YE(e)){t.next();continue}let i=e.value.toLowerCase();if(i===`table`&&e.kind===X.identifier){t.next();let e=SE(t,r);e&&n.tables.push(e);continue}if(i===`tablepartial`&&e.kind===X.identifier){t.next();let e=SE(t,r);e&&r.set(e.name,e.columns);continue}if(i===`ref`&&e.kind===X.identifier){t.next(),n.refs.push(...OE(t));continue}if(i===`enum`&&e.kind===X.identifier){t.next(),ME(t,n.enums);continue}a(i)}return n}function SE(e,t){let{schemaName:n,name:r}=BE(e),i={schemaName:n,name:r,alias:``,comment:``,columns:[],indexes:[]},a=e.peek();if(a&&a.kind===X.identifier&&a.value.toLowerCase()===`as`&&(e.next(),i.alias=VE(e)),IE(i,NE(e)),!WE(e))return r===``?null:i;for(;!e.atEnd();){if(JE(e))continue;let n=e.peek();if(!n)break;if(n.kind===X.punctuation&&n.value===`}`){e.next();break}if(n.kind===X.punctuation&&n.value===`~`){e.next();let n=t.get(VE(e));n&&i.columns.push(...n.map(e=>({...e})));continue}if(n.kind===X.identifier){let t=n.value.toLowerCase(),r=e.peek(1);if(t===`note`&&r&&Z(r,`:`)){e.next(),e.next(),i.comment=HE(e);continue}if(t===`note`&&r&&Z(r,`{`)){e.next(),e.next(),i.comment=UE(e);continue}if(t===`indexes`&&r&&Z(r,`{`)){e.next(),e.next(),i.indexes.push(...EE(e));continue}if(r&&Z(r,`{`)){e.next(),e.next(),GE(e);continue}}let r=CE(e);r&&i.columns.push(r)}return i}function CE(e){let t=e.peek();if(!t||!YE(t))return qE(e),null;e.next();let n={name:t.value,comment:``,typeName:``,typeSchemaName:``,primaryKey:!1,unique:!1,notNull:!1,autoIncrement:!1,default:``,inlineRefs:[]},r=wE(e);return n.typeName=r.name,n.typeSchemaName=r.schemaName,PE(n,NE(e)),qE(e),n.typeName===``?null:n}function wE(e){let{schemaName:t,name:n}=BE(e);if(n===``)return{name:``,schemaName:``};let r=[n],i=e.peek();i&&Z(i,`(`)&&(e.next(),r.push(`(${TE(e)})`));let a=e.peek(),o=e.peek(1);return a&&o&&Z(a,`[`)&&Z(o,`]`)&&(e.next(),e.next(),r.push(`[]`)),{name:r.join(``),schemaName:t}}function TE(e){let t=[];for(;!e.atEnd();){let n=e.next();if(!n||Z(n,`)`))break;n.kind!==X.newline&&t.push(n.kind===X.string?`'${n.value}'`:n.value)}return t.join(``)}function EE(e){let t=[];for(;!e.atEnd();){if(JE(e))continue;let n=e.peek();if(!n)break;if(Z(n,`}`)){e.next();break}let r={name:``,unique:!1,primaryKey:!1,columnNames:[]};Z(n,`(`)?(e.next(),r.columnNames.push(...DE(e))):YE(n)?(e.next(),r.columnNames.push(n.value)):e.next(),FE(r,NE(e)),qE(e),r.columnNames.length!==0&&t.push(r)}return t}function DE(e){let t=[];for(;!e.atEnd();){let n=e.next();if(!n||Z(n,`)`))break;YE(n)&&t.push(n.value)}return t}function OE(e){let t=e.peek();if(t&&YE(t)){let t=e.peek(1);t&&(Z(t,`:`)||Z(t,`{`))&&e.next()}let n=e.peek();if(n&&Z(n,`:`)){e.next();let t=kE(e);return qE(e),t?[t]:[]}if(!WE(e))return qE(e),[];let r=[];for(;!e.atEnd();){if(JE(e))continue;let t=e.peek();if(!t)break;if(Z(t,`}`)){e.next();break}let n=kE(e);n?r.push(n):qE(e)}return r}function kE(e){let t=jE(e),n=AE(e);if(n===``)return null;let r=jE(e);return NE(e),t.tableName===``||r.tableName===``?null:{operator:n,left:t,right:r}}function AE(e){let t=e.peek();return t?t.kind===X.operator?(e.next(),t.value.replace(vE,``)):Z(t,`-`)?(e.next(),`-`):``:``}function jE(e){let t=[],n=[];for(;!e.atEnd();){let r=e.peek();if(!r||!YE(r))break;e.next(),t.push(r.value);let i=e.peek();if(!i||!Z(i,`.`))break;e.next();let a=e.peek();if(a&&Z(a,`(`)){e.next(),n.push(...DE(e));break}}n.length===0&&t.length!==0&&n.push(t.pop());let r=t.pop()??``;return{schemaName:t.pop()??``,tableName:r,columnNames:n}}function ME(e,t){let{schemaName:n,name:r}=BE(e);if(NE(e),!WE(e)){qE(e);return}let i=[];for(;!e.atEnd();){if(JE(e))continue;let t=e.peek();if(!t)break;if(Z(t,`}`)){e.next();break}YE(t)?(e.next(),i.push(t.value),NE(e)):e.next(),qE(e)}r!==``&&(t[n?`${n}.${r}`:r]=i,n&&!(r in t)&&(t[r]=i))}function NE(e){let t=e.peek();if(!t||!Z(t,`[`))return[];e.next();let n=[],r=[],i=[],a=!1,o=()=>{let e=r.join(` `).toLowerCase();(e!==``||i.length!==0)&&n.push({key:e,tokens:i}),r=[],i=[],a=!1};for(;!e.atEnd();){let t=e.next();if(!t||Z(t,`]`))break;if(Z(t,`,`)){o();continue}if(!a&&Z(t,`:`)){a=!0;continue}if(a){i.push(t);continue}if(YE(t)&&gE.test(t.value.toLowerCase())){r.push(t.value);continue}a=!0,i.push(t)}return o(),n}function PE(e,t){t.forEach(({key:t,tokens:n})=>{switch(t){case`pk`:case`primary key`:e.primaryKey=!0;break;case`unique`:e.unique=!0;break;case`not null`:e.notNull=!0;break;case`increment`:e.autoIncrement=!0;break;case`note`:e.comment=RE(n);break;case`default`:e.default=zE(n);break;case`ref`:{let t=LE(n);t&&e.inlineRefs.push(t);break}}})}function FE(e,t){t.forEach(({key:t,tokens:n})=>{switch(t){case`name`:e.name=RE(n);break;case`unique`:e.unique=!0;break;case`pk`:case`primary key`:e.primaryKey=!0}})}function IE(e,t){t.forEach(({key:t,tokens:n})=>{t===`note`&&(e.comment=RE(n))})}function LE(e){let t=bE(e),n=AE(t);if(n===``)return null;let r=jE(t);return r.tableName===``?null:{operator:n,target:r}}function RE(e){let t=e.find(e=>e.kind===X.string||e.kind===X.quoted||e.kind===X.identifier);return t?t.value:``}function zE(e){let t=e.filter(e=>e.kind!==X.newline),n=t[0];if(!n)return``;if(Z(n,`-`)&&t[1]?.kind===X.number)return`-${t[1].value}`;switch(n.kind){case X.string:return`'${n.value.replace(_E,`''`)}'`;case X.expression:case X.number:case X.identifier:case X.quoted:return n.value;default:return t.map(e=>e.value).join(``)}}function BE(e){let t=VE(e);if(t===``)return{schemaName:``,name:``};let n=e.peek();return!n||!Z(n,`.`)?{schemaName:``,name:t}:(e.next(),{schemaName:t,name:VE(e)})}function VE(e){let t=e.peek();return!t||!YE(t)?``:(e.next(),t.value)}function HE(e){let t=e.peek();return t&&(t.kind===X.string||t.kind===X.quoted)?(e.next(),t.value):``}function UE(e){let t=``;for(;!e.atEnd();){let n=e.next();if(!n||Z(n,`}`))break;t===``&&n.kind===X.string&&(t=n.value)}return t}function WE(e){let t=0;for(;e.peek(t)?.kind===X.newline;)t+=1;let n=e.peek(t);if(!n||!Z(n,`{`))return!1;for(let n=0;n<=t;n+=1)e.next();return!0}function GE(e){let t=1;for(;!e.atEnd()&&t!==0;){let n=e.next();if(!n)break;Z(n,`{`)?t+=1:Z(n,`}`)&&--t}}function KE(e){if(WE(e)){GE(e);return}for(;!e.atEnd();){let t=e.next();if(!t||t.kind===X.newline)return;if(Z(t,`{`)){GE(e);return}}}function qE(e){for(;!e.atEnd();){let t=e.peek();if(!t)return;if(t.kind===X.newline){e.next();return}if(Z(t,`}`))return;e.next()}}function JE(e){let t=e.peek();return t&&t.kind===X.newline?(e.next(),!0):!1}function YE(e){return e.kind===X.identifier||e.kind===X.quoted}function Z(e,t){return e.kind===X.punctuation&&e.value===t}const XE={tables:[],refs:[],enums:{},skipped:[]};function ZE(e,t,n){let r=yE(e),i=r.ok?r.model:XE,a=Hp({}),o=Hh(i.tables.length*100);a.settings.width=o,a.settings.height=o;let{settings:s}=n?n(a):a,c=JT(i,t,s.database);return c.settings=s,Hm(c)}const QE={[L.MariaDB]:`VARCHAR(255)`,[L.MSSQL]:`varchar(255)`,[L.MySQL]:`VARCHAR(255)`,[L.Oracle]:`VARCHAR2(255)`,[L.PostgreSQL]:`varchar(255)`,[L.SQLite]:`TEXT`,[L.Databricks]:`STRING`,[L.Snowflake]:`VARCHAR(255)`},$E={[L.MariaDB]:`INT`,[L.MSSQL]:`int`,[L.MySQL]:`INT`,[L.Oracle]:`INTEGER`,[L.PostgreSQL]:`integer`,[L.SQLite]:`INTEGER`,[L.Databricks]:`INT`,[L.Snowflake]:`INT`},eD={[L.MariaDB]:`SMALLINT`,[L.MSSQL]:`smallint`,[L.MySQL]:`SMALLINT`,[L.Oracle]:`SMALLINT`,[L.PostgreSQL]:`smallint`,[L.SQLite]:`SMALLINT`,[L.Databricks]:`SMALLINT`,[L.Snowflake]:`SMALLINT`},tD={[L.MariaDB]:`BIGINT`,[L.MSSQL]:`bigint`,[L.MySQL]:`BIGINT`,[L.Oracle]:`NUMBER(19)`,[L.PostgreSQL]:`bigint`,[L.SQLite]:`BIGINT`,[L.Databricks]:`BIGINT`,[L.Snowflake]:`BIGINT`},nD={[L.MariaDB]:`DOUBLE`,[L.MSSQL]:`float`,[L.MySQL]:`DOUBLE`,[L.Oracle]:`BINARY_DOUBLE`,[L.PostgreSQL]:`double precision`,[L.SQLite]:`REAL`,[L.Databricks]:`DOUBLE`,[L.Snowflake]:`FLOAT`},rD={[L.MariaDB]:`DECIMAL`,[L.MSSQL]:`decimal`,[L.MySQL]:`DECIMAL`,[L.Oracle]:`DECIMAL`,[L.PostgreSQL]:`numeric`,[L.SQLite]:`DECIMAL`,[L.Databricks]:`DECIMAL`,[L.Snowflake]:`DECIMAL`},iD={[L.MariaDB]:`BOOLEAN`,[L.MSSQL]:`bit`,[L.MySQL]:`BOOLEAN`,[L.Oracle]:`BOOLEAN`,[L.PostgreSQL]:`boolean`,[L.SQLite]:`BOOLEAN`,[L.Databricks]:`BOOLEAN`,[L.Snowflake]:`BOOLEAN`},aD={[L.MariaDB]:`DATE`,[L.MSSQL]:`date`,[L.MySQL]:`DATE`,[L.Oracle]:`DATE`,[L.PostgreSQL]:`date`,[L.SQLite]:`DATE`,[L.Databricks]:`DATE`,[L.Snowflake]:`DATE`},oD={[L.MariaDB]:`TIME`,[L.MSSQL]:`time`,[L.MySQL]:`TIME`,[L.Oracle]:`VARCHAR2(255)`,[L.PostgreSQL]:`time`,[L.SQLite]:`TEXT`,[L.Databricks]:`STRING`,[L.Snowflake]:`TIME`},sD={[L.MariaDB]:`DATETIME`,[L.MSSQL]:`datetime2`,[L.MySQL]:`DATETIME`,[L.Oracle]:`TIMESTAMP`,[L.PostgreSQL]:`timestamp`,[L.SQLite]:`DATETIME`,[L.Databricks]:`TIMESTAMP`,[L.Snowflake]:`TIMESTAMP_NTZ`},cD={[L.MariaDB]:`TIMESTAMP`,[L.MSSQL]:`datetimeoffset`,[L.MySQL]:`TIMESTAMP`,[L.Oracle]:`TIMESTAMP WITH TIME ZONE`,[L.PostgreSQL]:`timestamptz`,[L.SQLite]:`DATETIME`,[L.Databricks]:`TIMESTAMP`,[L.Snowflake]:`TIMESTAMP_TZ`},lD={[L.MariaDB]:`VARCHAR(255)`,[L.MSSQL]:`varchar(255)`,[L.MySQL]:`VARCHAR(255)`,[L.Oracle]:`INTERVAL DAY TO SECOND`,[L.PostgreSQL]:`interval`,[L.SQLite]:`TEXT`,[L.Databricks]:`INTERVAL DAY TO SECOND`,[L.Snowflake]:`VARCHAR(255)`},uD={[L.MariaDB]:`JSON`,[L.MSSQL]:`json`,[L.MySQL]:`JSON`,[L.Oracle]:`JSON`,[L.PostgreSQL]:`jsonb`,[L.SQLite]:`TEXT`,[L.Databricks]:`VARIANT`,[L.Snowflake]:`VARIANT`},dD={[L.MariaDB]:`UUID`,[L.MSSQL]:`uniqueidentifier`,[L.MySQL]:`CHAR(36)`,[L.Oracle]:`VARCHAR2(36)`,[L.PostgreSQL]:`uuid`,[L.SQLite]:`TEXT`,[L.Databricks]:`STRING`,[L.Snowflake]:`UUID`},fD={[L.MariaDB]:`BLOB`,[L.MSSQL]:`varbinary(max)`,[L.MySQL]:`BLOB`,[L.Oracle]:`BLOB`,[L.PostgreSQL]:`bytea`,[L.SQLite]:`BLOB`,[L.Databricks]:`BINARY`,[L.Snowflake]:`BINARY`},pD={id:QE,string:QE,boolean:iD,int:$E,float:nD,positiveint:$E,nonnegativeint:$E,unsignedint:$E,short:eD,smallint:eD,positivefloat:nD,nonnegativefloat:nD,bigint:tD,biginteger:tD,long:tD,int8:tD,safeint:tD,decimal:rD,bigdecimal:rD,numeric:rD,money:rD,datetime:sD,datetimeiso:sD,localdatetime:sD,timestamp:sD,timestamptz:cD,date:aD,localdate:aD,time:oD,localtime:oD,timetz:oD,duration:lD,iso8601duration:lD,interval:lD,json:uD,jsonb:uD,jsonobject:uD,uuid:dD,guid:dD,byte:fD,bytes:fD,bytea:fD,binary:fD,email:QE,emailaddress:QE,url:QE,uri:QE,void:QE};function mD(e,t,n){let r=QE[t]??``,i=vD(n.enums,e);return i?gD(i,t)??r:vD(n.unions,e)?r:pD[e.toLowerCase()]?.[t]??r}function hD(e,t,n){let r=vD(t.enums,e);if(r)return n!==void 0&&gD(r,n)!==void 0?``:_D(e,r);let i=vD(t.unions,e);return i?_D(e,i):``}function gD(e,t){if(t===L.MySQL||t===L.MariaDB)return`ENUM(${e.map(e=>`'${e.replace(/'/g,`''`)}'`).join(`,`)})`}function _D(e,t){return` ${e}: ${t.join(` | `)}`}function vD(e,t){let n=e[t];return Array.isArray(n)&&n.length?n:void 0}function yD(e,t,n){let r=Hp({}),i=bD(e.tables),a=new Set(e.skipped),o=e.tables.map(o=>xD(r,t,e,n,o,i,a));return ED(r,t,o),ID(r,o),r}function bD(e){let t=new Map,n=new Map;for(let r of e){t.set(r.name,r);let e=r.name.toLowerCase();n.has(e)||n.set(e,r)}return e=>t.get(e)??n.get(e.toLowerCase())??null}function xD({doc:e,collections:t},n,r,i,a,o,s){let{toWidth:c}=n,l=[],u=[];for(let e of a.fields){let{named:t}=e.typeRef;s.has(t)||(o(t)?u.push(e):l.push(e))}let d=new Set(SD(l)),f=Xh(a.name),p=Xh(a.comment),m=OS({name:f,comment:p,ui:{widthName:U(c(f)),widthComment:U(c(p))}}),h={name:f,source:a,table:m,columns:[],referenceFields:u};return l.forEach(e=>{TD(t,h,CD(n,r,i,m.id,e,d.has(e)))}),e.tableIds.push(m.id),N(t).collection(`tableEntities`).setOne(m),h}function SD(e){let t=e.filter(e=>e.primaryKey);if(t.length)return t;let n=e.find(e=>e.typeRef.named===`ID`&&!e.typeRef.isList);if(n)return[n];let r=e.find(e=>e.name.toLowerCase()===`id`);return r?[r]:[]}function CD({toWidth:e},t,n,r,i,a){let{named:o,nonNull:s}=i.typeRef,c=Xh(i.name),l=Xh(i.dataType)||mD(o,n,t),u=Xh(i.default),d=wD(i,t,n);return aC({tableId:r,name:c,comment:d,dataType:l,default:u,options:(i.autoIncrement?z.autoIncrement:0)|(a?z.primaryKey:0)|(i.unique?z.unique:0)|(s?z.notNull:0),ui:{widthName:U(e(c)),widthComment:U(e(d)),widthDataType:U(e(l)),widthDefault:U(e(u)),keys:a?B.primaryKey:0}})}function wD(e,t,n){let{named:r,isList:i}=e.typeRef,a=[],o=Xh(e.comment);return o&&a.push(o),i&&a.push(`list of ${r}`),`${a.join(` `)}${hD(r,t,n)}`.trim()}function TD(e,t,n){t.table.columnIds.push(n.id),t.table.seqColumnIds.push(n.id),t.columns.push(n),N(e).collection(`tableColumnEntities`).setOne(n)}function ED(e,t,n){let r=bD(n),i=[];n.forEach(e=>{e.referenceFields.forEach(t=>{let n=r(t.typeRef.named);n&&i.push({source:e,target:n,field:t,consumed:!1})})});let a={claimedColumnIds:new Set,relationshipKeys:new Set},o=i.filter(e=>!e.field.typeRef.isList);[...o.filter(e=>e.field.relationFields.length),...o.filter(e=>!e.field.relationFields.length)].forEach(n=>{if(n.consumed)return;let r=DD(i,n);n.consumed=!0,r&&(r.consumed=!0);let o=!!r?.field.typeRef.isList;kD(e,t,a,{parent:n.target,child:n.source,field:n.field,childSide:!0,relationshipType:n.field.typeRef.nonNull?o?Zm.OneN:Zm.OneOnly:o?Zm.ZeroN:Zm.ZeroOne})}),i.filter(e=>e.field.typeRef.isList).forEach(r=>{if(r.consumed)return;let o=OD(i,r);if(r.consumed=!0,o){o.consumed=!0,PD(e,t,n,r);return}kD(e,t,a,{parent:r.source,child:r.target,field:r.field,childSide:!1,relationshipType:r.field.typeRef.nonNull?Zm.OneN:Zm.ZeroN})})}function DD(e,t){let n=e.filter(e=>e!==t&&!e.consumed&&e.source===t.target&&e.target===t.source);if(!n.length)return null;let{relationName:r}=t.field;if(r)return n.find(e=>e.field.relationName===r)??null;if(t.source===t.target)return n.length===1?n[0]:null;let i=e.filter(e=>!e.consumed&&e.source===t.source&&e.target===t.target);return n.length===1&&i.length===1?n[0]:null}function OD(e,t){if(e.some(e=>!e.field.typeRef.isList&&(e.source===t.source&&e.target===t.target||e.source===t.target&&e.target===t.source)))return null;let n=e.filter(e=>e!==t&&!e.consumed&&e.field.typeRef.isList&&e.source===t.target&&e.target===t.source);if(!n.length)return null;let{relationName:r}=t.field;return r?n.find(e=>e.field.relationName===r)??null:n[0]}function kD(e,t,n,r){let{doc:i,collections:a}=e,{parent:o,child:s,relationshipType:c}=r,l=gw(o.columns);if(!l.length)return;let{startColumns:u,endColumns:d}=AD(e,t,n,r,l);if(!d.length)return;let f=`${o.table.id}:${s.table.id}:${d.map(e=>e.id).join(`,`)}`;if(n.relationshipKeys.has(f))return;n.relationshipKeys.add(f),d.forEach(e=>{G(e.ui.keys,B.primaryKey)?e.ui.keys|=B.foreignKey:e.ui.keys=B.foreignKey,n.claimedColumnIds.add(e.id)});let p=sS({identification:d.every(e=>G(e.ui.keys,B.primaryKey)&&G(e.ui.keys,B.foreignKey)),relationshipType:c,start:{tableId:o.table.id,columnIds:u.map(e=>e.id)},end:{tableId:s.table.id,columnIds:d.map(e=>e.id)}});i.relationshipIds.push(p.id),N(a).collection(`relationshipEntities`).setOne(p)}function AD(e,t,n,{parent:r,child:i,field:a,childSide:o},s){if(o&&a.relationFields.length){let e=[],t=[];if(a.relationFields.forEach((n,o)=>{let c=vw(i.columns,n),l=a.relationReferences[o],u=l?vw(r.columns,l):s[o]??null;!c||!u||(e.push(u),t.push(c))}),t.length)return{startColumns:e,endColumns:t}}let c=o?Xh(a.name):pe(r.name),l=new Set,u=[],d=[];return s.forEach(o=>{let s=jD(c,r.name,o.name),f=MD(i.columns,s,e=>l.has(e)?!0:n.claimedColumnIds.has(e))??ND(e,t,i,a,o,s[0]);l.add(f.id),u.push(o),d.push(f)}),{startColumns:u,endColumns:d}}function jD(e,t,n){return[`${e}${Gv(n)}`,`${ve(e)}_${ve(n)}`,`${t}${Gv(n)}`,`${ve(t)}_${ve(n)}`,`${e}Id`,`${ve(e)}_id`]}function MD(e,t,n){for(let r of t){let t=vw(e,r);if(t&&!n(t.id))return t}return null}function ND({collections:e},{toWidth:t},n,r,i,a){let o=_w(n.columns,``,a),{dataType:s}=i,c=aC({tableId:n.table.id,name:o,dataType:s,options:r.typeRef.nonNull?z.notNull:0,ui:{keys:B.foreignKey,widthName:U(t(o)),widthDataType:U(t(s))}});return TD(e,n,c),c}function PD(e,t,n,r){let{doc:i,collections:a}=e,{toWidth:o}=t,s=r.source,c=r.target,l=gw(s.columns),u=gw(c.columns);if(!l.length||!u.length)return;let d=_w(n.map(e=>e.table),``,`${s.name}_${c.name}`),f=`Junction table inferred from ${s.name} <-> ${c.name}`,p=OS({name:d,comment:f,ui:{widthName:U(o(d)),widthComment:U(o(f))}}),m={name:d,source:{name:d,comment:f,fields:[],indexes:[]},table:p,columns:[],referenceFields:[]};i.tableIds.push(p.id),N(a).collection(`tableEntities`).setOne(p),n.push(m),FD(e,t,m,s,l),FD(e,t,m,c,u)}function FD(e,{toWidth:t},n,r,i){let{doc:a,collections:o}=e,s=i.map(e=>{let i=_w(n.columns,``,`${pe(r.name)}${Gv(e.name)}`),{dataType:a}=e,s=aC({tableId:n.table.id,name:i,dataType:a,options:z.primaryKey|z.notNull,ui:{keys:B.primaryKey|B.foreignKey,widthName:U(t(i)),widthDataType:U(t(a))}});return TD(o,n,s),s}),c=sS({identification:!0,relationshipType:Zm.ZeroN,start:{tableId:r.table.id,columnIds:i.map(e=>e.id)},end:{tableId:n.table.id,columnIds:s.map(e=>e.id)}});a.relationshipIds.push(c.id),N(o).collection(`relationshipEntities`).setOne(c)}function ID({doc:e,collections:t},n){n.forEach(({source:n,table:r,columns:i})=>{n.indexes.forEach(n=>{let a=Zb({name:Xh(n.name),tableId:r.id,unique:n.unique}),o=[];n.fieldNames.forEach(e=>{let t=vw(i,e);t&&o.push(mx({indexId:a.id,columnId:t.id,orderType:$m.ASC}))}),o.length&&(o.forEach(e=>{a.indexColumnIds.push(e.id),a.seqIndexColumnIds.push(e.id),N(t).collection(`indexColumnEntities`).setOne(e)}),e.indexIds.push(a.id),N(t).collection(`indexEntities`).setOne(a))})})}const LD=[`Query`,`Mutation`,`Subscription`],RD=[`PageInfo`],zD=[`Connection`,`Edge`],BD=[`_aggregate`,`_aggregate_fields`,`_mutation_response`,`_max_fields`,`_min_fields`,`_sum_fields`,`_avg_fields`,`_stddev_fields`,`_variance_fields`,`_bool_exp`,`_order_by`,`_insert_input`,`_set_input`,`_on_conflict`,`_constraint`,`_update_column`,`_select_column`],VD=[`_Service`,`_Entity`,`_Any`,`_FieldSet`],HD=[`autoincrement`,`autoincrement()`],UD=/[_A-Za-z]/,WD=/[_0-9A-Za-z]/;function GD(e){try{return{ok:!0,model:JD(KD(e))}}catch(e){return{ok:!1,message:qD(e)}}}function KD(e){try{return Ge(e)}catch(t){let n=pO(e);if(n===e)throw t;try{return Ge(n)}catch{throw t}}}function qD(e){let t=e instanceof Error?e.message:String(e),n=e?.locations?.[0];if(!n)return t;let r=t.replace(/^Syntax Error:\s*/,``);return`Syntax Error at line ${n.line}, column ${n.column}: ${r}`}function JD(e){let t={},n={},r=[],i=new Map,a=new Map,o=new Set;for(let s of e.definitions)switch(s.kind){case Ue.OBJECT_TYPE_DEFINITION:case Ue.OBJECT_TYPE_EXTENSION:XD(a,s);break;case Ue.INTERFACE_TYPE_DEFINITION:case Ue.INTERFACE_TYPE_EXTENSION:{let e=s.name.value,t=i.get(e)??[];t.push(...s.fields??[]),i.set(e,t);break}case Ue.SCHEMA_DEFINITION:case Ue.SCHEMA_EXTENSION:for(let e of s.operationTypes??[])o.add(e.type.name.value);break;case Ue.ENUM_TYPE_DEFINITION:t[s.name.value]=(s.values??[]).map(e=>e.name.value);break;case Ue.UNION_TYPE_DEFINITION:n[s.name.value]=(s.types??[]).map(e=>e.name.value);break;case Ue.SCALAR_TYPE_DEFINITION:r.push(s.name.value)}let s=o.size?o:new Set(LD),c=[],l=[],u=new Map;for(let e of a.values()){if(lO(e.name,s)){l.push(e.name);continue}let t=ZD(e,i);if(!t.fields.length){l.push(e.name);continue}t.name!==e.name&&u.set(e.name,t.name),c.push(t)}return YD(c,u),{tables:c,enums:t,customScalars:r,unions:n,skipped:l}}function YD(e,t){if(t.size)for(let n of e)for(let e of n.fields){let n=t.get(e.typeRef.named);n&&(e.typeRef.named=n)}}function XD(e,t){let n=t.name.value,r=(t.interfaces??[]).map(e=>e.name.value),i=e.get(n);if(i){i.fieldNodes.push(...t.fields??[]),i.interfaceNames.push(...r),i.directives.push(...t.directives??[]),i.comment||=dO(t);return}e.set(n,{name:n,comment:dO(t),interfaceNames:r,fieldNodes:[...t.fields??[]],directives:[...t.directives??[]]})}function ZD(e,t){let n=QD(e.fieldNodes),r=new Set(n.map(e=>e.name.value)),i=[];for(let n of e.interfaceNames)for(let e of t.get(n)??[]){let t=e.name.value;r.has(t)||(r.add(t),i.push(e))}let a={name:e.name,comment:e.comment,fields:[...i,...n].map($D).filter(b),indexes:[]};for(let t of e.directives)nO(a,t);return a}function QD(e){let t=new Set;return e.filter(e=>{let n=e.name.value;return!t.has(n)&&(t.add(n),!0)})}function $D(e){if(e.name.value.startsWith(`__`))return null;let t={name:e.name.value,comment:dO(e),typeRef:eO(e.type),primaryKey:!1,unique:!1,autoIncrement:!1,default:``,dataType:``,relationName:``,relationFields:[],relationReferences:[],hasArguments:(e.arguments??[]).length>0};for(let n of e.directives??[])tO(t,n);return t}function eO(e){let t=e.kind===Ue.NON_NULL_TYPE,n=t?e.type:e,r=n.kind===Ue.LIST_TYPE,i=r?n.type:n,a=r&&i.kind===Ue.NON_NULL_TYPE,o=i;for(;o.kind!==Ue.NAMED_TYPE;)o=o.type;return{named:o.name.value,nonNull:t,isList:r,itemNonNull:a}}function tO(e,t){let n=t.name.value;if(n.startsWith(`db_`)){e.dataType=rO(n,t);return}switch(n){case`id`:case`primaryKey`:e.primaryKey=!0;break;case`unique`:e.unique=!0;break;case`autoincrement`:case`autoIncrement`:e.autoIncrement=!0;break;case`default`:{let n=iO(t,`value`);if(!n)break;let r=sO(n);HD.includes(r.toLowerCase())?e.autoIncrement=!0:e.default=r;break}case`map`:{let n=aO(t,`name`)||aO(t,`value`);n&&(e.name=n);break}case`relation`:{let n=aO(t,`name`)||aO(t,`value`);n&&(e.relationName=n);let r=iO(t,`fields`);r&&(e.relationFields=cO(r));let i=iO(t,`references`);i&&(e.relationReferences=cO(i));break}case`column`:{let n=aO(t,`name`);n&&(e.name=n);let r=aO(t,`dataType`);r&&(e.dataType=r);let i=iO(t,`default`);i&&(e.default=sO(i));let a=oO(t,`autoIncrement`);a!==null&&(e.autoIncrement=a);let o=oO(t,`unique`);o!==null&&(e.unique=o);let s=oO(t,`primaryKey`);s!==null&&(e.primaryKey=s);break}}}function nO(e,t){switch(t.name.value){case`map`:{let n=aO(t,`name`)||aO(t,`value`);n&&(e.name=n);break}case`table`:{let n=aO(t,`name`);n&&(e.name=n);let r=iO(t,`comment`);r&&(e.comment=sO(r));break}case`index`:{let n=iO(t,`fields`),r=n?cO(n):[];if(!r.length)break;let i={name:aO(t,`name`),unique:oO(t,`unique`)??!1,fieldNames:r};e.indexes.push(i);break}}}function rO(e,t){let n=e.slice(3),r=t.arguments??[];return r.length?`${n}(${r.map(e=>sO(e.value)).join(`, `)})`:n}function iO(e,t){let n=(e.arguments??[]).find(e=>e.name.value===t);return n?n.value:null}function aO(e,t){let n=iO(e,t);return n?sO(n):``}function oO(e,t){let n=iO(e,t);return n?sO(n)===`true`:null}function sO(e){switch(e.kind){case Ue.STRING:case Ue.INT:case Ue.FLOAT:case Ue.ENUM:return e.value;case Ue.BOOLEAN:return e.value?`true`:`false`;case Ue.NULL:return`null`;case Ue.LIST:return e.values.map(sO).join(`, `);default:return``}}function cO(e){return(e.kind===Ue.LIST?e.values:[e]).map(sO).filter(e=>e!==``)}function lO(e,t){return t.has(e)||e.startsWith(`__`)||VD.includes(e)||RD.includes(e)||zD.some(t=>uO(e,t))||BD.some(t=>uO(e,t))}function uO(e,t){return e.length>t.length&&e.endsWith(t)}function dO(e){if(e.description)return fO(e.description.value);if(!e.loc)return``;let t=[],n=e.loc.startToken.line-1,r=e.loc.startToken.prev;for(;r&&r.kind===We.COMMENT&&r.line===n&&(!r.prev||r.prev.line<r.line);)t.unshift(r.value??``),--n,r=r.prev;return fO(t.join(` `))}function fO(e){return e.replace(/\s+/g,` `).trim()}function pO(e){let t=``,n=0,r=!1;for(;n<e.length;){let i=e[n];if(i===`#`){let r=gO(e,n);t+=e.slice(n,r),n=r;continue}if(i===`"`){let r=_O(e,n);t+=e.slice(n,r),n=r;continue}if(i!==`@`||!UD.test(e[n+1]??``)){t+=i,n+=1;continue}let a=hO(e,n+1),o=e.slice(n+1,a);for(;e[a]===`.`&&UD.test(e[a+1]??``);){let t=hO(e,a+1);o+=`_${e.slice(a+1,t)}`,a=t,r=!0}t+=`@${o}`,n=a;let s=yO(e,n);if(e[s]===`(`){t+=e.slice(n,s+1),n=s+1;for(let i=0;n<e.length;i++){let a=yO(e,n);if(t+=e.slice(n,a),n=a,e[n]===`)`||n>=e.length)break;let o=mO(e,n);o===-1?(t+=i===0?`value: `:`value${i}: `,r=!0):(t+=e.slice(n,o+1),n=o+1);let s=Math.max(vO(e,yO(e,n)),n+1);t+=e.slice(n,s),n=s}}}return r?t:e}function mO(e,t){if(!UD.test(e[t]??``))return-1;let n=yO(e,hO(e,t));return e[n]===`:`?n:-1}function hO(e,t){let n=t;for(;n<e.length&&WD.test(e[n]);)n+=1;return n}function gO(e,t){let n=e.indexOf(`
|
|
24
|
-
`,t);return n===-1?e.length:n}function
|
|
25
|
-
`)return n;if(t===`"`)return n+1;n+=1}return n}function
|
|
26
|
-
`,singleQuote:`'`,backtick:"`",whiteSpace:/\s/,string:/\S/,breakString:/;|,|\(|\)|\[|\]|\.|=/,equal:`=`,period:`.`,comma:`,`,semicolon:`;`,leftParent:`(`,rightParent:`)`,leftBracket:`[`,rightBracket:`]`},EO=e=>t=>e===t,DO=e=>t=>e.test(t),Q={doubleQuote:EO(TO.doubleQuote),dash:EO(TO.dash),slash:EO(TO.slash),asterisk:EO(TO.asterisk),newLine:EO(TO.newLine),singleQuote:EO(TO.singleQuote),backtick:EO(TO.backtick),whiteSpace:DO(TO.whiteSpace),string:DO(TO.string),breakString:DO(TO.breakString),equal:EO(TO.equal),period:EO(TO.period),comma:EO(TO.comma),semicolon:EO(TO.semicolon),leftParent:EO(TO.leftParent),rightParent:EO(TO.rightParent),leftBracket:EO(TO.leftBracket),rightBracket:EO(TO.rightBracket)};function OO(e){let t=[],n=0,r=()=>n<e.length;for(;r();){let i=e[n];if(Q.whiteSpace(i)){let t=``;for(;r()&&Q.whiteSpace(i);)t+=i,i=e[++n];continue}if(Q.dash(i)&&Q.dash(e[n+1])){for(;r()&&!Q.newLine(i);)i=e[++n];continue}if(Q.slash(i)&&Q.asterisk(e[n+1])){for(n+=2,i=e[n];r()&&!(Q.asterisk(i)&&Q.slash(e[n+1]));)i=e[++n];n+=2;continue}if(Q.leftParent(i)){t.push({type:wO.leftParent,value:i}),n++;continue}if(Q.rightParent(i)){t.push({type:wO.rightParent,value:i}),n++;continue}if(Q.comma(i)){t.push({type:wO.comma,value:i}),n++;continue}if(Q.period(i)){t.push({type:wO.period,value:i}),n++;continue}if(Q.equal(i)){t.push({type:wO.equal,value:i}),n++;continue}if(Q.semicolon(i)){t.push({type:wO.semicolon,value:i}),n++;continue}if(Q.rightBracket(i)){t.push({type:wO.rightBracket,value:i}),n++;continue}if(Q.leftBracket(i)){let a=``;for(i=e[++n];r()&&!Q.rightBracket(i);)a+=i,i=e[++n];t.push({type:wO.string,value:a,quoted:!0}),n++;continue}if(Q.doubleQuote(i)){let a=``;for(i=e[++n];r()&&!Q.doubleQuote(i);)a+=i,i=e[++n];t.push({type:wO.string,value:a,quoted:!0}),n++;continue}if(Q.singleQuote(i)){let a=``;for(i=e[++n];r()&&!Q.singleQuote(i);)a+=i,i=e[++n];t.push({type:wO.string,value:a,quoted:!0}),n++;continue}if(Q.backtick(i)){let a=``;for(i=e[++n];r()&&!Q.backtick(i);)a+=i,i=e[++n];t.push({type:wO.string,value:a,quoted:!0}),n++;continue}if(Q.string(i)){let a=``;for(;r()&&Q.string(i)&&!Q.breakString(i)&&!(Q.dash(i)&&Q.dash(e[n+1]))&&!(Q.slash(i)&&Q.asterisk(e[n+1]));)a+=i,i=e[++n];t.push({type:wO.string,value:a});continue}n++}return t}var kO=`ARRAY.BIGINT.BINARY.BOOLEAN.BYTE.CHAR.DATE.DEC.DECIMAL.DOUBLE.FLOAT.GEOGRAPHY.GEOMETRY.INT.INTEGER.INTERVAL DAY TO HOUR.INTERVAL DAY TO MINUTE.INTERVAL DAY TO SECOND.INTERVAL DAY.INTERVAL HOUR TO MINUTE.INTERVAL HOUR TO SECOND.INTERVAL HOUR.INTERVAL MINUTE TO SECOND.INTERVAL MINUTE.INTERVAL MONTH.INTERVAL SECOND.INTERVAL YEAR TO MONTH.INTERVAL YEAR.INTERVAL.LONG.MAP.NUMERIC.OBJECT.REAL.SHORT.SMALLINT.STRING.STRUCT.TIMESTAMP_LTZ.TIMESTAMP_NTZ.TIMESTAMP.TINYINT.VARCHAR.VARIANT.VOID`.split(`.`),AO=`BIGINT.BINARY.BIT.BLOB.BOOL.BOOLEAN.CHAR BYTE.CHAR VARYING.CHAR.CHARACTER VARYING.CHARACTER.CLOB.DATE.DATETIME.DEC.DECIMAL.DOUBLE PRECISION.DOUBLE.ENUM.FIXED.FLOAT.FLOAT4.FLOAT8.GEOMETRY.GEOMETRYCOLLECTION.INET4.INET6.INT.INT1.INT2.INT3.INT4.INT8.INTEGER.JSON.LINESTRING.LONG CHAR VARYING.LONG CHARACTER VARYING.LONG VARBINARY.LONG VARCHAR.LONG VARCHARACTER.LONG.LONGBLOB.LONGTEXT.MEDIUMBLOB.MEDIUMINT.MEDIUMTEXT.MIDDLEINT.MULTILINESTRING.MULTIPOINT.MULTIPOLYGON.NATIONAL CHAR VARYING.NATIONAL CHAR.NATIONAL CHARACTER VARYING.NATIONAL CHARACTER.NATIONAL VARCHAR.NATIONAL VARCHARACTER.NCHAR VARCHAR.NCHAR VARCHARACTER.NCHAR VARYING.NCHAR.NUMBER.NUMERIC.NVARCHAR.POINT.POLYGON.RAW.REAL.SERIAL.SET.SMALLINT.SQL_TSI_YEAR.TEXT.TIME.TIMESTAMP.TINYBLOB.TINYINT.TINYTEXT.UUID.VARBINARY.VARCHAR.VARCHAR2.VARCHARACTER.VECTOR.XMLTYPE.YEAR`.split(`.`),jO=`BIGINT.BINARY VARYING.BINARY.BIT.CHAR VARYING.CHAR.CHARACTER VARYING.CHARACTER.DATE.DATETIME.DATETIME2.DATETIMEOFFSET.DEC.DECIMAL.DOUBLE PRECISION.FLOAT.GEOGRAPHY.GEOMETRY.HIERARCHYID.IMAGE.INT.INTEGER.JSON.MONEY.NATIONAL CHAR VARYING.NATIONAL CHAR.NATIONAL CHARACTER VARYING.NATIONAL CHARACTER.NATIONAL TEXT.NCHAR.NTEXT.NUMERIC.NVARCHAR.REAL.ROWVERSION.SMALLDATETIME.SMALLINT.SMALLMONEY.SQL_VARIANT.TEXT.TIME.TIMESTAMP.TINYINT.UNIQUEIDENTIFIER.VARBINARY.VARCHAR.VECTOR.XML`.split(`.`),MO=`BIGINT.BINARY.BIT.BLOB.BOOL.BOOLEAN.CHAR BYTE.CHAR.CHARACTER VARYING.CHARACTER.DATE.DATETIME.DEC.DECIMAL.DOUBLE PRECISION.DOUBLE.ENUM.FIXED.FLOAT.FLOAT4.FLOAT8.GEOMCOLLECTION.GEOMETRY.GEOMETRYCOLLECTION.INT.INT1.INT2.INT3.INT4.INT8.INTEGER.JSON.LINESTRING.LONG VARBINARY.LONG VARCHAR.LONG.LONGBLOB.LONGTEXT.MEDIUMBLOB.MEDIUMINT.MEDIUMTEXT.MIDDLEINT.MULTILINESTRING.MULTIPOINT.MULTIPOLYGON.NATIONAL CHAR VARYING.NATIONAL CHAR.NATIONAL CHARACTER VARYING.NATIONAL CHARACTER.NATIONAL VARCHAR.NCHAR VARCHAR.NCHAR.NUMERIC.NVARCHAR.POINT.POLYGON.REAL.SERIAL.SET.SMALLINT.TEXT.TIME.TIMESTAMP.TINYBLOB.TINYINT.TINYTEXT.VARBINARY.VARCHAR.VARCHARACTER.YEAR`.split(`.`),NO=`ANYDATA.BFILE.BINARY_DOUBLE.BINARY_FLOAT.BLOB.BOOL.BOOLEAN.CHAR VARYING.CHAR.CHARACTER VARYING.CHARACTER.CLOB.DATE.DEC.DECIMAL.DOUBLE PRECISION.FLOAT.INT.INTEGER.INTERVAL DAY TO SECOND.INTERVAL YEAR TO MONTH.JSON.LONG RAW.LONG VARCHAR.LONG.NATIONAL CHAR VARYING.NATIONAL CHAR.NATIONAL CHARACTER VARYING.NATIONAL CHARACTER.NCHAR VARYING.NCHAR.NCLOB.NUMBER.NUMERIC.NVARCHAR2.RAW.REAL.ROWID.SDO_GEOMETRY.SDO_GEORASTER.SDO_TOPO_GEOMETRY.SMALLINT.TIMESTAMP WITH LOCAL TIME ZONE.TIMESTAMP WITH TIME ZONE.TIMESTAMP.URIType.UROWID.VARCHAR.VARCHAR2.VECTOR.XMLType`.split(`.`),PO=`BIGINT.BIGSERIAL.BIT VARYING.BIT.BOOL.BOOLEAN.BOX.BPCHAR.BYTEA.CHAR.CHARACTER VARYING.CHARACTER.CID.CIDR.CIRCLE.DATE.DATEMULTIRANGE.DATERANGE.DECIMAL.DOUBLE PRECISION.FLOAT.FLOAT4.FLOAT8.INET.INT.INT2.INT4.INT4MULTIRANGE.INT4RANGE.INT8.INT8MULTIRANGE.INT8RANGE.INTEGER.INTERVAL DAY TO HOUR.INTERVAL DAY TO MINUTE.INTERVAL DAY TO SECOND.INTERVAL DAY.INTERVAL HOUR TO MINUTE.INTERVAL HOUR TO SECOND.INTERVAL HOUR.INTERVAL MINUTE TO SECOND.INTERVAL MINUTE.INTERVAL MONTH.INTERVAL SECOND.INTERVAL YEAR TO MONTH.INTERVAL YEAR.INTERVAL.JSON.JSONB.JSONPATH.LINE.LSEG.MACADDR.MACADDR8.MONEY.NAME.NUMERIC.NUMMULTIRANGE.NUMRANGE.OID.PATH.PG_LSN.PG_SNAPSHOT.POINT.POLYGON.REAL.REGCLASS.REGCOLLATION.REGCONFIG.REGDICTIONARY.REGNAMESPACE.REGOPER.REGOPERATOR.REGPROC.REGPROCEDURE.REGROLE.REGTYPE.SERIAL.SERIAL2.SERIAL4.SERIAL8.SMALLINT.SMALLSERIAL.TEXT.TID.TIME WITH TIME ZONE.TIME WITHOUT TIME ZONE.TIME.TIMESTAMP WITH TIME ZONE.TIMESTAMP WITHOUT TIME ZONE.TIMESTAMP.TIMESTAMPTZ.TIMETZ.TSMULTIRANGE.TSQUERY.TSRANGE.TSTZMULTIRANGE.TSTZRANGE.TSVECTOR.TXID_SNAPSHOT.UUID.VARBIT.VARCHAR.XID.XID8.XML`.split(`.`),FO=`ARRAY.BIGINT.BINARY.BOOLEAN.BYTEINT.CHAR VARYING.CHAR.CHARACTER.DATE.DATETIME.DEC.DECFLOAT.DECIMAL.DOUBLE PRECISION.DOUBLE.FILE.FLOAT.FLOAT4.FLOAT8.GEOGRAPHY.GEOMETRY.INT.INTEGER.MAP.NCHAR VARYING.NCHAR.NUMBER.NUMERIC.NVARCHAR.NVARCHAR2.OBJECT.REAL.SMALLINT.STRING.TEXT.TIME.TIMESTAMP WITH LOCAL TIME ZONE.TIMESTAMP WITH TIME ZONE.TIMESTAMP WITHOUT TIME ZONE.TIMESTAMP_LTZ.TIMESTAMP_NTZ.TIMESTAMP_TZ.TIMESTAMP.TIMESTAMPLTZ.TIMESTAMPNTZ.TIMESTAMPTZ.TINYINT.UNKNOWN.UUID.VARBINARY.VARCHAR.VARCHAR2.VARIANT.VECTOR`.split(`.`),IO=`BIGINT.BLOB.BOOLEAN.CHARACTER.CLOB.DATE.DATETIME.DECIMAL.DOUBLE PRECISION.DOUBLE.FLOAT.INT.INT2.INT8.INTEGER.MEDIUMINT.NATIVE CHARACTER.NCHAR.NUMERIC.NVARCHAR.REAL.SMALLINT.TEXT.TINYINT.UNSIGNED BIG INT.VARCHAR.VARYING CHARACTER`.split(`.`),LO=e=>t=>n=>t[n]?t[n].type===e:!1,$=e=>{let t=e.toUpperCase();return e=>n=>{let r=e[n];return r?!r.quoted&&r.value.toUpperCase()===t:!1}},RO=LO(wO.string),zO=LO(wO.equal),BO=LO(wO.period),VO=LO(wO.comma),HO=LO(wO.semicolon),UO=LO(wO.leftParent),WO=LO(wO.rightParent);wO.leftBracket,wO.rightBracket;var GO=$(`CREATE`),KO=$(`ALTER`),qO=$(`DROP`),JO=$(`USE`),YO=$(`RENAME`),XO=$(`DELETE`),ZO=$(`SELECT`),QO=$(`TABLE`),$O=$(`INDEX`),ek=$(`UNIQUE`),tk=$(`ADD`),nk=$(`PRIMARY`),rk=$(`KEY`),ik=$(`CONSTRAINT`),ak=$(`FOREIGN`),ok=$(`NOT`),sk=$(`NULL`),ck=$(`DEFAULT`),lk=$(`COMMENT`),uk=$(`REFERENCES`),dk=$(`ASC`),fk=$(`DESC`),pk=$(`ON`),mk=$(`AUTO_INCREMENT`),hk=$(`AUTOINCREMENT`),gk=$(`IF`),_k=$(`EXISTS`),vk=$(`ONLY`),yk=$(`IS`),bk=$(`COLUMN`),xk=$(`CHARACTER`),Sk=$(`SET`),Ck=$(`COLLATE`),wk=$(`ENFORCED`),Tk=$(`RELY`),Ek=$(`NORELY`),Dk=$(`DEFERRABLE`),Ok=$(`INITIALLY`),kk=$(`DEFERRED`),Ak=$(`IMMEDIATE`),jk=$(`IDENTITY`),Mk=$(`FUNCTION`),Nk=$(`CLUSTER`),Pk=$(`BY`),Fk=e=>{let t=wk(e),n=Tk(e),r=Ek(e),i=Dk(e),a=Ok(e),o=kk(e),s=Ak(e);return e=>t(e)||n(e)||r(e)||i(e)||a(e)||o(e)||s(e)},Ik=[`ARRAY`,`MAP`,`STRUCT`],Lk=e=>{let t=RO(e),n=e=>{let t=0;for(let n of e)n===`<`?t++:n===`>`&&t--;return t};return r=>{let i=e[r];if(!i||i.quoted||!t(r))return 0;let a=i.value.indexOf(`<`);if(a===-1||!Ik.includes(i.value.slice(0,a).toUpperCase()))return 0;let o=0;for(let t=r;t<e.length;t++)if(o+=n(e[t].value),o<=0)return t-r+1;return e.length-r}},Rk=e=>{let t=mk(e),n=hk(e),r=jk(e);return e=>t(e)||n(e)||r(e)},zk=e=>{let t=Nk(e),n=Pk(e);return e=>t(e)&&n(e+1)},Bk=e=>{let t=lk(e),n=pk(e);return e=>t(e)&&n(e+1)},Vk=e=>{let t=Bk(e),n=QO(e);return e=>t(e)&&n(e+2)},Hk=e=>{let t=Bk(e),n=bk(e);return e=>t(e)&&n(e+2)},Uk=e=>{let t=GO(e),n=KO(e),r=qO(e),i=JO(e),a=YO(e),o=XO(e),s=ZO(e),c=Bk(e);return e=>t(e)||n(e)||r(e)||i(e)||a(e)||o(e)||s(e)||c(e)},Wk=[`OR`,`REPLACE`,`TRANSIENT`,`TEMPORARY`,`TEMP`,`LOCAL`,`GLOBAL`,`VOLATILE`,`UNLOGGED`,`HYBRID`,`ICEBERG`,`DYNAMIC`,`EXTERNAL`],Gk=e=>{let t=GO(e),n=QO(e),r=RO(e),i=Mk(e),a=gk(e),o=ok(e),s=_k(e);return c=>{if(!t(c))return 0;let l=c+1;for(;l<e.length&&!n(l);){let t=e[l];if(!r(l)||t.quoted||!Wk.includes(t.value.toUpperCase()))return 0;l++}return!n(l)||i(l+1)?0:(l++,a(l)&&o(l+1)&&s(l+2)&&(l+=3),l-c)}},Kk=e=>{let t=xk(e),n=Sk(e);return e=>t(e)&&n(e+1)},qk=e=>{let t=Gk(e);return e=>t(e)>0},Jk=e=>{let t=GO(e),n=$O(e),r=ek(e);return e=>t(e)&&r(e+1)&&n(e+2)},Yk=e=>{let t=GO(e),n=$O(e),r=Jk(e);return e=>t(e)&&n(e+1)||r(e)},Xk=e=>{let t=KO(e),n=QO(e);return e=>t(e)&&n(e+1)},Zk=e=>{let t=RO(e),n=BO(e);return e=>{if(!t(e))return 0;let r=e+1;for(;n(r)&&t(r+1);)r+=2;return r-e}},Qk=e=>{let t=Xk(e),n=vk(e),r=tk(e),i=ik(e),a=RO(e),o=Zk(e),s=(e,t)=>{let n=t,s=o(n);return!s||(n+=s,!r(n))?0:(n++,i(n)&&a(n+1)&&(n+=2),n-e)};return e=>{if(!t(e))return{length:0,only:!1};let r=e+2;if(n(r)){let t=s(e,r+1);if(t)return{length:t,only:!0}}return{length:s(e,r),only:!1}}},$k=e=>{let t=Qk(e);return e=>t(e).length},eA=e=>{let t=Qk(e);return e=>t(e).only},tA=e=>{let t=$k(e),n=nk(e),r=rk(e);return e=>{let i=t(e);return i>0&&n(e+i)&&r(e+i+1)}},nA=e=>{let t=$k(e),n=ak(e),r=rk(e);return e=>{let i=t(e);return i>0&&n(e+i)&&r(e+i+1)}},rA=e=>{let t=$k(e),n=ek(e);return e=>{let r=t(e);return r>0&&n(e+r)}},iA=Array.from(new Set([...kO,...AO,...jO,...MO,...NO,...PO,...FO,...IO].map(e=>e.toUpperCase()))),aA=(e=>{let t=new Map;for(let n of e){let e=n.split(` `),r=t.get(e[0])??[];r.push(e),t.set(e[0],r)}for(let e of t.values())e.sort((e,t)=>t.length-e.length);return t})(iA),oA=e=>{let t=RO(e),n=UO(e),r=WO(e),i=t=>{let i=0;for(let a=t;a<e.length;a++)if(n(a))i++;else if(r(a)&&(i--,i===0))return a+1;return e.length},a=(r,a)=>{let o=r;for(let[r,s]of a.entries()){let a=e[o];if(!a||!t(o)||r>0&&a.quoted||a.value.toUpperCase()!==s)return 0;o++,n(o)&&(o=i(o))}return o-r};return n=>{let r=e[n];if(!r||!t(n))return 0;let i=r.value.toUpperCase();for(let e of aA.get(i)??[]){let t=a(n,e);if(t)return t}return+!!iA.includes(i)}};function sA(e,t){let n=Uk(e),r=RO(e),i=UO(e),a=WO(e),o=BO(e),s=HO(e),c=zO(e),l=lk(e),u=zk(e),d=Gk(e),f=()=>t.value<e.length,p={type:SO.createTable,name:``,comment:``,columns:[],indexes:[],foreignKeys:[]},m=d(t.value);t.value+=m===0?2:m;let h=!1,g=!0;for(;f()&&!n(t.value);){let n=e[t.value];if(s(t.value)){t.value++;break}if(p.name&&u(t.value)){if(t.value+=2,r(t.value)&&i(t.value+1)&&t.value++,i(t.value)){let e=0;for(;f();){if(i(t.value))e++;else if(a(t.value)&&(e--,e===0)){t.value++;break}t.value++}}continue}if(i(t.value)){if(t.value++,h||!g){let e=1;for(;f()&&e>0;)i(t.value)?e++:a(t.value)&&e--,t.value++;continue}let{columns:n,indexes:r,foreignKeys:o}=cA(e,t);p.columns=n,p.indexes=r,p.foreignKeys=o,h=!0;continue}if(r(t.value)&&!p.name){for(p.name=n.value,g=!0,t.value++;o(t.value);){if(!r(t.value+1)){t.value++;break}p.name=e[t.value+1].value,t.value+=2}continue}if(l(t.value)){n=e[++t.value],c(t.value)&&(n=e[++t.value]),r(t.value)&&(p.comment=n.value,t.value++),g=!1;continue}g=!1,t.value++}return p}function cA(e,t){let n=RO(e),r=UO(e),i=WO(e),a=VO(e),o=ik(e),s=$O(e),c=nk(e),l=ak(e),u=Rk(e),d=ek(e),f=sk(e),p=ok(e),m=ck(e),h=lk(e),g=fk(e),_=dk(e),v=rk(e),ee=zO(e),te=Kk(e),ne=Ck(e),re=Fk(e),ie=oA(e),ae=Lk(e),oe=()=>t.value<e.length,se=[],ce=[],le=[],ue=[],y=[],b={name:``,dataType:``,default:``,comment:``,primaryKey:!1,autoIncrement:!1,unique:!1,nullable:!0};for(;oe();){let x=e[t.value],de=ae(t.value);if(de){let n=t.value+de,r=[];for(;t.value<n;)r.push(a(t.value)?`,`:e[t.value].value),t.value++;b.dataType=r.reduce((e,t)=>!e||t===`,`?e+t:`${e} ${t}`,``);continue}if(n(t.value)&&!b.name&&!o(t.value)&&!c(t.value)&&!l(t.value)&&!d(t.value)&&!s(t.value)&&!v(t.value)&&!p(t.value)&&!re(t.value)){b.name=x.value,t.value++;continue}if(r(t.value)){let e=0;for(;oe();){if(r(t.value))e++;else if(i(t.value)&&(e--,e===0)){t.value++;break}t.value++}continue}if(o(t.value)){x=e[++t.value],n(t.value)&&t.value++;continue}if(c(t.value)){if(x=e[++t.value],v(t.value)){if(x=e[++t.value],r(t.value)){for(x=e[++t.value];oe()&&!i(t.value);)n(t.value)&&ue.push(x.value.toUpperCase()),x=e[++t.value];t.value++}else b.primaryKey=!0}continue}if(l(t.value)){let n=lA(e,t);n&&le.push(n);continue}if(s(t.value)||v(t.value)){if(x=e[++t.value],n(t.value)){let o=x.value,s=[];if(x=e[++t.value],r(t.value)){x=e[++t.value];let r={name:``,sort:CO.asc};for(;oe()&&!i(t.value);)n(t.value)&&!g(t.value)&&!_(t.value)&&(r.name=x.value),g(t.value)&&(r.sort=CO.desc),a(t.value)&&(s.push(r),r={name:``,sort:CO.asc}),x=e[++t.value];!s.includes(r)&&r.name!==``&&s.push(r),s.length&&ce.push({name:o,unique:!1,columns:s}),t.value++}}continue}if(d(t.value)){if(x=e[++t.value],v(t.value)&&(x=e[++t.value]),n(t.value)&&(x=e[++t.value]),r(t.value)){for(x=e[++t.value];oe()&&!i(t.value);)n(t.value)&&y.push(x.value.toUpperCase()),x=e[++t.value];t.value++}else b.unique=!0;continue}if(p(t.value)){x=e[++t.value],f(t.value)?(b.nullable=!1,t.value++):re(t.value)&&t.value++;continue}if(re(t.value)){t.value++;continue}if(m(t.value)){x=e[++t.value],n(t.value)&&(b.default=x.value,t.value++);continue}if(h(t.value)){x=e[++t.value],ee(t.value)&&(x=e[++t.value]),n(t.value)&&(b.comment=x.value,t.value++);continue}if(u(t.value)){b.autoIncrement=!0,t.value++;continue}if(te(t.value)){t.value+=2,n(t.value)&&t.value++;continue}if(ne(t.value)){t.value++,ee(t.value)&&t.value++,n(t.value)&&t.value++;continue}let S=ie(t.value);if(S){let a=t.value+S,o=``,s=0;for(;t.value<a;)x=e[t.value],r(t.value)?(o+=`(`,s++):i(t.value)?(o+=`)`,s--):o+=s?n(t.value)&&(n(t.value-1)||i(t.value-1))?` ${x.value}`:x.value:o?` ${x.value}`:x.value,t.value++;for(;s>0;)o+=`)`,s--;b.dataType=o;continue}if(a(t.value)){(b.name||b.dataType)&&se.push(b),b={name:``,dataType:``,default:``,comment:``,primaryKey:!1,autoIncrement:!1,unique:!1,nullable:!0},t.value++;continue}if(i(t.value)){t.value++;break}t.value++}return!se.includes(b)&&(b.name||b.dataType)&&se.push(b),se.forEach(e=>{ue.includes(e.name.toUpperCase())&&(e.primaryKey=!0),y.includes(e.name.toUpperCase())&&(e.unique=!0)}),{columns:se,indexes:ce,foreignKeys:le}}function lA(e,t){let n=RO(e),r=UO(e),i=WO(e),a=uk(e),o=BO(e),s=rk(e),c=()=>t.value<e.length,l={columnNames:[],refTableName:``,refColumnNames:[]},u=e[++t.value];if(s(t.value)){if(u=e[++t.value],r(t.value)){for(u=e[++t.value];c()&&!i(t.value);)n(t.value)&&l.columnNames.push(u.value),u=e[++t.value];u=e[++t.value]}if(a(t.value)&&(u=e[++t.value],n(t.value))){for(l.refTableName=u.value,t.value++;o(t.value);){if(!n(t.value+1)){t.value++;break}l.refTableName=e[t.value+1].value,t.value+=2}if(u=e[t.value],r(t.value)){for(u=e[++t.value];c()&&!i(t.value);)n(t.value)&&l.refColumnNames.push(u.value),u=e[++t.value];u=e[++t.value]}}if(l.columnNames.length&&l.columnNames.length===l.refColumnNames.length)return l}return null}function uA(e,t){let n=Uk(e),r=HO(e),i=RO(e),a=ik(e),o=BO(e),s=QO(e),c=ak(e),l=eA(e)(t.value),u=()=>t.value<e.length,d={type:SO.alterTableAddForeignKey,name:``,columnNames:[],refTableName:``,refColumnNames:[]};for(t.value++;u()&&!n(t.value);){let n=e[t.value];if(r(t.value)){t.value++;break}if(s(t.value)){if(n=e[++t.value],l&&(n=e[++t.value]),i(t.value))for(d.name=n.value,t.value++;o(t.value);){if(!i(t.value+1)){t.value++;break}d.name=e[t.value+1].value,t.value+=2}continue}if(a(t.value)){n=e[++t.value],i(t.value)&&t.value++;continue}if(c(t.value)){let n=lA(e,t);n&&(d.columnNames=n.columnNames,d.refTableName=n.refTableName,d.refColumnNames=n.refColumnNames);continue}t.value++}return d}function dA(e,t){let n=Uk(e),r=HO(e),i=RO(e),a=UO(e),o=WO(e),s=ik(e),c=nk(e),l=BO(e),u=rk(e),d=QO(e),f=eA(e)(t.value),p=()=>t.value<e.length,m={type:SO.alterTableAddPrimaryKey,name:``,columnNames:[]};for(t.value++;p()&&!n(t.value);){let n=e[t.value];if(r(t.value)){t.value++;break}if(d(t.value)){if(n=e[++t.value],f&&(n=e[++t.value]),i(t.value))for(m.name=n.value,t.value++;l(t.value);){if(!i(t.value+1)){t.value++;break}m.name=e[t.value+1].value,t.value+=2}continue}if(s(t.value)){n=e[++t.value],i(t.value)&&t.value++;continue}if(c(t.value)){if(n=e[++t.value],u(t.value)&&(n=e[++t.value],a(t.value))){for(n=e[++t.value];p()&&!o(t.value);)i(t.value)&&m.columnNames.push(n.value),n=e[++t.value];n=e[++t.value]}continue}t.value++}return m}function fA(e,t){let n=Uk(e),r=HO(e),i=RO(e),a=ik(e),o=BO(e),s=QO(e),c=ek(e),l=UO(e),u=WO(e),d=eA(e)(t.value),f=()=>t.value<e.length,p={type:SO.alterTableAddUnique,name:``,columnNames:[]};for(t.value++;f()&&!n(t.value);){let n=e[t.value];if(r(t.value)){t.value++;break}if(s(t.value)){if(n=e[++t.value],d&&(n=e[++t.value]),i(t.value))for(p.name=n.value,t.value++;o(t.value);){if(!i(t.value+1)){t.value++;break}p.name=e[t.value+1].value,t.value+=2}continue}if(a(t.value)){n=e[++t.value],i(t.value)&&t.value++;continue}if(c(t.value)){if(n=e[++t.value],l(t.value)){for(n=e[++t.value];f()&&!u(t.value);)i(t.value)&&p.columnNames.push(n.value),n=e[++t.value];t.value++}continue}t.value++}return p}function pA(e,t){let n=Uk(e),r=RO(e),i=BO(e),a=HO(e),o=yk(e),s=sk(e),c=()=>t.value<e.length,l={type:SO.commentOnColumn,tableName:``,columnName:``,comment:``};t.value+=3;let u=[],d=!1;for(;c()&&!n(t.value);){let n=e[t.value];if(a(t.value)){t.value++;break}if(o(t.value)){if(d=!0,n=e[++t.value],s(t.value)){t.value++;continue}r(t.value)&&(l.comment=n.value,t.value++);continue}if(i(t.value)){t.value++;continue}if(r(t.value)&&!d){u.push(n.value),t.value++;continue}t.value++}return l.columnName=u.length?u[u.length-1]:``,l.tableName=u.length>1?u[u.length-2]:``,l}function mA(e,t){let n=Uk(e),r=RO(e),i=BO(e),a=HO(e),o=yk(e),s=sk(e),c=()=>t.value<e.length,l={type:SO.commentOnTable,name:``,comment:``};t.value+=3;let u=!1;for(;c()&&!n(t.value);){let n=e[t.value];if(a(t.value)){t.value++;break}if(o(t.value)){if(u=!0,n=e[++t.value],s(t.value)){t.value++;continue}r(t.value)&&(l.comment=n.value,t.value++);continue}if(i(t.value)){t.value++;continue}if(r(t.value)&&!u){l.name=n.value,t.value++;continue}t.value++}return l}function hA(e,t){let n=Uk(e),r=HO(e),i=ek(e),a=RO(e),o=UO(e),s=WO(e),c=VO(e),l=$O(e),u=pk(e),d=fk(e),f=dk(e),p=Jk(e),m=()=>t.value<e.length,h={type:SO.createIndex,name:``,unique:i(t.value+1),tableName:``,columns:[]};for(t.value+=p(t.value)?2:1;m()&&!n(t.value);){let n=e[t.value];if(r(t.value)){t.value++;break}if(l(t.value)){n=e[++t.value],a(t.value)&&(h.name=n.value);continue}if(u(t.value)){if(n=e[++t.value],a(t.value)&&(h.tableName=n.value,n=e[++t.value],o(t.value))){n=e[++t.value];let r={name:``,sort:CO.asc};for(;m()&&!s(t.value);)a(t.value)&&!d(t.value)&&!f(t.value)&&(r.name=n.value),d(t.value)&&(r.sort=CO.desc),c(t.value)&&(h.columns.push(r),r={name:``,sort:CO.asc}),n=e[++t.value];!h.columns.includes(r)&&r.name!==``&&h.columns.push(r),t.value++}continue}t.value++}return h}function gA(e){let t=[],n={value:0},r=()=>n.value<e.length,i=qk(e),a=Yk(e),o=tA(e),s=nA(e),c=rA(e),l=Vk(e),u=Hk(e);for(;r();){if(i(n.value)){t.push(sA(e,n));continue}if(a(n.value)){t.push(hA(e,n));continue}if(o(n.value)){t.push(dA(e,n));continue}if(s(n.value)){t.push(uA(e,n));continue}if(c(n.value)){t.push(fA(e,n));continue}if(l(n.value)){t.push(mA(e,n));continue}if(u(n.value)){t.push(pA(e,n));continue}n.value++}return t}var _A=e=>gA(OO(e));function vA(e,t,n){let r=Hp({}),i=bA(yA(_A(e))),a=Hh(i.length*100);return r.settings.width=a,r.settings.height=a,i.forEach(e=>xA(r,e,t)),SA(r,i),CA(r,i),Hm(n?n(r):r)}function yA(e){let t={tables:[],indexes:[],primaryKeys:[],foreignKeys:[],uniques:[],tableComments:[],columnComments:[]};for(let n of e)switch(n.type){case SO.createTable:n.name&&t.tables.push(n);break;case SO.createIndex:n.tableName&&n.columns.length&&t.indexes.push(n);break;case SO.alterTableAddPrimaryKey:n.name&&n.columnNames.length&&t.primaryKeys.push(n);break;case SO.alterTableAddForeignKey:n.name&&n.columnNames.length&&n.refTableName&&n.refColumnNames.length&&n.columnNames.length===n.refColumnNames.length&&t.foreignKeys.push(n);break;case SO.alterTableAddUnique:n.name&&n.columnNames.length&&t.uniques.push(n);break;case SO.commentOnTable:n.name&&t.tableComments.push(n);break;case SO.commentOnColumn:n.tableName&&n.columnName&&t.columnComments.push(n)}return t}function bA({tables:e,indexes:t,primaryKeys:n,foreignKeys:r,uniques:i,tableComments:a,columnComments:o}){return t.forEach(t=>{let n=vw(e,t.tableName);n&&n.indexes.push({name:t.name,unique:t.unique,columns:t.columns})}),n.forEach(t=>{let n=vw(e,t.name);n&&t.columnNames.forEach(e=>{let t=vw(n.columns,e);t&&(t.primaryKey=!0)})}),i.forEach(t=>{let n=vw(e,t.name);n&&t.columnNames.forEach(e=>{let t=vw(n.columns,e);t&&(t.unique=!0)})}),r.forEach(t=>{let n=vw(e,t.name);n&&n.foreignKeys.push({columnNames:t.columnNames,refTableName:t.refTableName,refColumnNames:t.refColumnNames})}),a.forEach(({name:t,comment:n})=>{let r=vw(e,t);r&&(r.comment=n)}),o.forEach(({tableName:t,columnName:n,comment:r})=>{let i=vw(e,t);if(!i)return;let a=vw(i.columns,n);a&&(a.comment=r)}),e}function xA({doc:e,collections:t},n,{toWidth:r}){let i=OS({name:n.name,comment:n.comment,ui:{widthName:U(r(n.name)),widthComment:U(r(n.comment))}});n.columns.forEach(e=>{let n=aC({tableId:i.id,name:e.name,comment:e.comment,dataType:e.dataType,default:e.default,options:(e.autoIncrement?z.autoIncrement:0)|(e.primaryKey?z.primaryKey:0)|(e.unique?z.unique:0)|(e.nullable?0:z.notNull),ui:{widthName:U(r(e.name)),widthComment:U(r(e.comment)),widthDataType:U(r(e.dataType)),widthDefault:U(r(e.default)),keys:e.primaryKey?B.primaryKey:0}});i.columnIds.push(n.id),i.seqColumnIds.push(n.id),N(t).collection(`tableColumnEntities`).setOne(n)}),e.tableIds.push(i.id),N(t).collection(`tableEntities`).setOne(i)}function SA({doc:e,collections:t},n){let r=N(t).collection(`tableEntities`).selectByIds(e.tableIds),i=N(t).collection(`tableColumnEntities`);n.forEach(n=>{if(!n.foreignKeys.length)return;let a=vw(r,n.name);if(!a)return;let o=i.selectByIds(a.columnIds);n.foreignKeys.forEach(n=>{let s=vw(r,n.refTableName);if(!s)return;let c=i.selectByIds(s.columnIds),l=[],u=[];n.refColumnNames.forEach(e=>{let t=vw(c,e);t&&l.push(t)}),n.columnNames.forEach(e=>{let t=vw(o,e);t&&(u.push(t),G(t.ui.keys,B.primaryKey)?t.ui.keys|=B.foreignKey:t.ui.keys=B.foreignKey)});let d=sS({identification:!u.some(e=>!(G(e.ui.keys,B.primaryKey)&&G(e.ui.keys,B.foreignKey))),relationshipType:Zm.ZeroN,start:{tableId:s.id,columnIds:l.map(e=>e.id)},end:{tableId:a.id,columnIds:u.map(e=>e.id)}});e.relationshipIds.push(d.id),N(t).collection(`relationshipEntities`).setOne(d)})})}function CA({doc:e,collections:t},n){let r=N(t).collection(`tableEntities`).selectByIds(e.tableIds);n.forEach(n=>{n.indexes.forEach(i=>{let a=vw(r,n.name);if(!a)return;let o=N(t).collection(`tableColumnEntities`).selectByIds(a.columnIds),s=[],c=Zb({name:i.name,tableId:a.id,unique:i.unique});i.columns.forEach(e=>{let t=vw(o,e.name);if(!t)return;let n=mx({indexId:c.id,columnId:t.id,orderType:e.sort===CO.asc?$m.ASC:$m.DESC});s.push(n)}),s.length!==0&&(s.forEach(e=>{c.indexColumnIds.push(e.id),c.seqIndexColumnIds.push(e.id),N(t).collection(`indexColumnEntities`).setOne(e)}),e.indexIds.push(c.id),N(t).collection(`indexEntities`).setOne(c))})})}function wA({doc:e,collections:t},n){let r=V(n);return N(t).collection(`relationshipEntities`).selectByIds(e.relationshipIds).filter(({start:e,end:t})=>r(e.tableId)&&r(t.tableId)).map(({relationshipType:e,start:t,end:n})=>({relationshipType:e,start:{tableId:t.tableId,columnIds:[...t.columnIds]},end:{tableId:n.tableId,columnIds:[...n.columnIds]}}))}function TA({doc:e,collections:t},n){let r=V(n),i=N(t).collection(`indexColumnEntities`),a=[];for(let n of N(t).collection(`indexEntities`).selectByIds(e.indexIds)){if(!r(n.tableId))continue;let e=[],t=!0;for(let r of n.indexColumnIds){let n=i.selectById(r);if(!n){t=!1;break}e.push({columnId:n.columnId,orderType:n.orderType})}t&&a.push({tableId:n.tableId,name:n.name,unique:n.unique,indexColumns:e})}return a}new TextEncoder;function EA({tables:e,columns:t,memos:n,relationships:r,indexes:i},a){let o=[],s=[],c=[],l=new Map(t.map(e=>[e.sourceId,e])),u=new Map,d=new Map;for(let t of e){let e=a.get(t.sourceId);if(!e)continue;let n=w();s.push(n),u.set(t.sourceId,n),o.push(kS({id:n,ui:{x:e.x,y:e.y,zIndex:e.zIndex,color:t.ui.color}}),LS({id:n,value:t.name}),zS({id:n,value:t.comment}));for(let e of t.columnIds){let t=l.get(e);if(!t)continue;let r={id:w(),tableId:n};d.set(e,r.id),o.push(oC(r),uC({...r,value:t.name}),mC({...r,value:t.dataType}),gC({...r,value:t.default}),fC({...r,value:t.comment}),bC({...r,value:G(t.options,z.primaryKey)}),wC({...r,value:G(t.options,z.notNull)}),SC({...r,value:G(t.options,z.unique)}),vC({...r,value:G(t.options,z.autoIncrement)}))}}for(let e of r){let t=u.get(e.start.tableId),n=u.get(e.end.tableId);if(!t||!n)continue;let r=DA(e.start.columnIds,d),i=DA(e.end.columnIds,d);!r||!i||o.push(cS({id:w(),relationshipType:e.relationshipType,start:{tableId:t,columnIds:r},end:{tableId:n,columnIds:i}}))}for(let e of i){let t=u.get(e.tableId);if(!t)continue;let n=DA(e.indexColumns.map(({columnId:e})=>e),d);if(!n)continue;let r=w();o.push(Qb({id:r,tableId:t}),nx({id:r,tableId:t,value:e.name}),ix({id:r,tableId:t,value:e.unique})),e.indexColumns.forEach(({orderType:e},i)=>{let a=w(),s=n[i];o.push(gx({id:a,indexId:r,tableId:t,columnId:s}),Sx({id:a,indexId:r,columnId:s,value:e}))})}for(let e of n){let t=a.get(e.sourceId);if(!t)continue;let n=w();c.push(n),o.push(Nx({id:n,ui:{x:t.x,y:t.y,zIndex:t.zIndex,color:e.ui.color,width:e.ui.width,height:e.ui.height}}),Vx({id:n,value:e.value}))}return{actions:o,tableIds:s,memoIds:c}}function DA(e,t){let n=[];for(let r of e){let e=t.get(r);if(!e)return null;n.push(e)}return n}function OA(e,t,n=[]){let{doc:{relationshipIds:r},collections:i}=t,a=e.pop();return a&&(n.some(({columnId:e})=>e===a.columnId)||(n.push(a),N(i).collection(`relationshipEntities`).selectByIds(r).forEach(({id:t,start:n,end:r})=>{let i=n.columnIds.indexOf(a.columnId);if(i!==-1){let n=r.columnIds[i];e.push({columnId:n,relationshipIds:[t]})}else{let i=r.columnIds.indexOf(a.columnId);if(i!==-1){let r=n.columnIds[i];e.push({columnId:r,relationshipIds:[t]})}}})),OA(e,t,n)),n}const kA=eg.flow,AA={focusFlowTableAction$:e=>function*({editor:t,settings:n}){e.length&&(n.canvasType!==Um.visualization&&(yield _v({value:Um.visualization})),t.visualizationMode!==tg.flow&&(yield Mg({value:tg.flow})),yield t.views.flow?Ag({tableIds:e,kind:kA}):fg({kind:kA,centerIds:e}))}};function jA(e){return Object.entries(e).reduce((e,[t,n])=>(n===Qh.table?e.tableIds.push(t):n===Qh.memo&&e.memoIds.push(t),e),{tableIds:[],memoIds:[]})}const MA=e=>function*(){yield My(),yield Fy({value:e})},NA=e=>function*(){yield Ly(),yield zy({value:e})},PA=(e,t,n=`document`)=>function*(r){let{tableIds:i,memoIds:a}=jA(r.editor.selectedMap),{zoomLevel:o}=F_(r,n),s=e/o,c=t/o;if(n!==`document`){i.length&&(yield wg({ids:i,movementX:s,movementY:c,kind:n}));return}i.length&&(yield jS({ids:i,movementX:s,movementY:c})),a.length&&(yield Fx({ids:a,movementX:s,movementY:c}))},FA=()=>function*(){yield iw(),yield YC()},IA=(e,t)=>function*(n){yield*RA(n,{input:{tables:e.tables,columns:e.columns,memos:e.memos,relationships:e.relationships??[],indexes:e.indexes??[]},offset:{x:50*t,y:50*t},escapeCollision:!0})},LA=({tableIds:e,memoIds:t,offset:n,escapeCollision:r})=>function*(i){yield*RA(i,{input:VA(i,{tableIds:e??[],memoIds:t??[]}),offset:{x:Ve(n.x,4),y:Ve(n.y,4)},escapeCollision:r})};function*RA(e,{input:t,offset:n,escapeCollision:r}){if(t.tables.length===0&&t.memos.length===0)return;let{settings:i,doc:{tableIds:a,memoIds:o},collections:s}=e,c=N(s).collection(`tableEntities`),l=N(s).collection(`memoEntities`),{actions:u,tableIds:d,memoIds:f}=EA(t,BA(tw({entities:[...t.tables.map(zA),...t.memos.map(zA)],offset:n,escapeCollision:r,settings:i,tables:c.selectByIds(a),memos:l.selectByIds(o),findSource:e=>c.selectById(e)??l.selectById(e)})));yield UA(),yield u,yield Oy({...d.reduce((e,t)=>(e[t]=Qh.table,e),{}),...f.reduce((e,t)=>(e[t]=Qh.memo,e),{})})}const zA=({sourceId:e,ui:{x:t,y:n,zIndex:r}})=>({sourceId:e,ui:{x:t,y:n,zIndex:r}});function BA(e){return new Map(Array.from(e,([e,{x:t,y:n,zIndex:r}])=>[e,{x:Ve(t,4),y:Ve(n,4),zIndex:r}]))}function VA(e,{tableIds:t,memoIds:n}){let{collections:r}=e,i=N(r).collection(`tableEntities`).selectByIds(t),a=N(r).collection(`memoEntities`).selectByIds(n),o=i.flatMap(e=>N(r).collection(`tableColumnEntities`).selectByIds(e.columnIds)),s=i.map(({id:e})=>e);return{tables:i.map(e=>({sourceId:e.id,name:e.name,comment:e.comment,columnIds:[...e.columnIds],ui:{x:e.ui.x,y:e.ui.y,zIndex:e.ui.zIndex,widthName:e.ui.widthName,widthComment:e.ui.widthComment,color:e.ui.color}})),columns:o.map(e=>({sourceId:e.id,tableId:e.tableId,name:e.name,comment:e.comment,dataType:e.dataType,default:e.default,options:e.options,ui:{keys:e.ui.keys,widthName:e.ui.widthName,widthComment:e.ui.widthComment,widthDataType:e.ui.widthDataType,widthDefault:e.ui.widthDefault}})),memos:a.map(e=>({sourceId:e.id,value:e.value,ui:{x:e.ui.x,y:e.ui.y,width:e.ui.width,height:e.ui.height,zIndex:e.ui.zIndex,color:e.ui.color}})),relationships:wA(e,s),indexes:TA(e,s)}}const HA=(e,t=`document`)=>function*(n){let{collections:r}=n,{tableIds:i,memoIds:a}=Kg(n,t),o={...N(r).collection(`tableEntities`).selectByIds(i).reduce((r,i)=>{let a=T_(n,i,t);return hw(e,{x:a.x+a.width/2-15,y:a.y+a.height/2-15,w:15,h:15})&&(r[i.id]=Qh.table),r},{}),...N(r).collection(`memoEntities`).selectByIds(a).reduce((t,n)=>{let r=n_(n),i=r_(n);return hw(e,{x:n.ui.x+r/2-15,y:n.ui.y+i/2-15,w:15,h:15})&&(t[n.id]=Qh.memo),t},{})};yield UA(),Be(o)||(yield Oy(o))},UA=()=>function*(){yield Ey(),yield Gy()},WA=(e,t)=>function*(n){let{editor:{focusTable:r}}=n;r&&(e===ng.Tab&&!t&&(fy(r.focusType)&&uy(n)&&!$v(n)||!fy(r.focusType)&&ey(n)&&ny(n))?yield uw(r.tableId):yield qy({moveKey:e,shiftKey:t}))},GA=e=>function*({editor:t}){t.drawRelationship?.relationshipType===e?yield db():yield sb({relationshipType:e})},KA=e=>function*({collections:t}){let n=N(t).collection(`tableEntities`).selectById(e);if(n){if(!N(t).collection(`tableColumnEntities`).selectByIds(n.columnIds).some(e=>G(e.options,z.primaryKey))){let t=w();yield oC({tableId:e,id:t}),yield bC({tableId:e,id:t,value:!0}),yield Uy({tableId:e,columnId:t,focusType:W.columnName,$mod:!1,shiftKey:!1})}yield lb({tableId:e})}},qA=e=>function*({editor:{selectedMap:t},collections:n}){let{tableIds:r,memoIds:i}=jA(t),a=N(n).collection(`tableEntities`).selectByIds(r),o=N(n).collection(`memoEntities`).selectByIds(i);yield a.map(t=>VS({id:t.id,color:e,prevColor:t.ui.color})),yield o.map(t=>Ux({id:t.id,color:e,prevColor:t.ui.color}))},JA=e=>function*({settings:t},n){yield MA(vA(e,n,e=>(e.settings={...e.settings,...he(ae(t),[`width`,`height`,`originX`,`originY`,`scrollTop`,`scrollLeft`,`zoomLevel`])},e))),yield GS()},YA=e=>function*({settings:t},n){yield MA(xO(e,n,e=>(e.settings={...e.settings,...he(ae(t),[`width`,`height`,`originX`,`originY`,`scrollTop`,`scrollLeft`,`zoomLevel`])},e))),yield GS()},XA=e=>function*({settings:t},n){yield MA(ZE(e,n,e=>(e.settings={...e.settings,...he(ae(t),[`width`,`height`,`originX`,`originY`,`scrollTop`,`scrollLeft`,`zoomLevel`])},e))),yield GS()},ZA=e=>function*({settings:t},n){yield MA(VT(e,n,e=>(e.settings={...e.settings,...he(ae(t),[`width`,`height`,`originX`,`originY`,`scrollTop`,`scrollLeft`,`zoomLevel`])},e))),yield GS()},QA=e=>function*({editor:{focusTable:t}}){!t||!t.columnId||(yield Tb({tableId:t.tableId,columnIds:e?[...t.selectColumnIds]:[t.columnId]}))},$A=(e,t)=>function*({editor:{draggableColumn:n},collections:r}){if(!n||n.columnIds.length===0)return;let{tableId:i,columnIds:a}=n,o=N(r).collection(`tableEntities`),s=o.selectById(i);if(!s)return;if(t===i){let t=s.columnIds.indexOf(a[0]);if(t===-1)return;let n=s.columnIds.indexOf(e);if(n===-1)return;let r=a.map(t=>EC({tableId:i,id:t,targetId:e}));t<n&&r.reverse(),yield r;return}if(!o.selectById(t))return;let c=N(r).collection(`tableColumnEntities`).selectByIds(a);if(c.length===0)return;yield dw(i,a);let l=c.map(()=>w());for(let n=0;n<c.length;n++){let r=c[n],i=l[n],a={id:i,tableId:t};yield[oC(a),uC({...a,value:r.name}),mC({...a,value:r.dataType}),gC({...a,value:r.default}),fC({...a,value:r.comment}),bC({...a,value:G(r.options,z.primaryKey)}),wC({...a,value:G(r.options,z.notNull)}),SC({...a,value:G(r.options,z.unique)}),vC({...a,value:G(r.options,z.autoIncrement)}),EC({...a,targetId:e}),Uy({tableId:t,columnId:i,focusType:W.columnName,$mod:!0,shiftKey:!1})]}yield Tb({tableId:t,columnIds:l})},ej=e=>function*(t){let{columnIds:n,relationshipIds:r}=OA([{columnId:e,relationshipIds:[]}],t).reduce((e,{columnId:t,relationshipIds:n})=>(e.columnIds.push(t),e.relationshipIds.push(...n),e),{columnIds:[],relationshipIds:[]});yield hb({columnIds:ye(n)}),yield _b({relationshipIds:ye(r)})},tj=()=>function*(){yield hb({columnIds:[]}),yield _b({relationshipIds:[]})},nj={loadJsonAction$:MA,initialLoadJsonAction$:NA,moveAllAction$:PA,removeSelectedAction$:FA,pasteEntitiesAction$:IA,duplicateAction$:LA,dragSelectAction$:HA,unselectAllAction$:UA,focusMoveTableAction$:WA,drawStartRelationshipAction$:GA,drawStartAddRelationshipAction$:KA,changeColorAllAction$:qA,loadSchemaSQLAction$:JA,loadSchemaGraphQLAction$:YA,loadSchemaDBMLAction$:XA,loadSchemaAMLAction$:ZA,dragstartColumnAction$:QA,dragoverColumnAction$:$A,columnKeyHoverStartAction$:ej,columnKeyHoverEndAction$:tj,...AA},rj={addIndexAction$:e=>function*(){yield Qb({id:w(),tableId:e})},changeIndexUniqueAction$:e=>function*({collections:t}){let n=N(t).collection(`indexEntities`).selectById(e);n&&(yield ix({id:e,tableId:n.tableId,value:!n.unique}))}},ij={addIndexColumnAction$:(e,t)=>function*({collections:n}){let r=N(n).collection(`indexEntities`).selectById(e);if(!r)return;let i=N(n).collection(`indexColumnEntities`).selectByIds(r.seqIndexColumnIds).find(e=>e.columnId===t);i?yield gx({id:i.id,indexId:e,tableId:r.tableId,columnId:t}):yield gx({id:w(),indexId:e,tableId:r.tableId,columnId:t})},removeIndexColumnAction$:(e,t)=>function*({collections:n}){let r=N(n).collection(`indexEntities`).selectById(e);if(!r)return;let i=N(n).collection(`indexColumnEntities`).selectByIds(r.indexColumnIds).filter(e=>e.columnId===t);for(let t of i)yield vx({id:t.id,indexId:e,tableId:r.tableId})},changeIndexColumnOrderTypeAction$:e=>function*({collections:t}){let n=N(t).collection(`indexColumnEntities`).selectById(e);n&&(yield Sx({id:e,indexId:n.indexId,columnId:n.columnId,value:n.orderType===$m.ASC?$m.DESC:$m.ASC}))},moveIndexColumnAction$:(e,t)=>function*({collections:n}){if(e===t)return;let r=N(n).collection(`indexColumnEntities`).selectById(e);if(!r)return;let i=N(n).collection(`indexEntities`).selectById(r.indexId);i&&(yield bx({id:e,indexId:r.indexId,tableId:i.tableId,targetId:t}))}},aj={},oj=(e,t)=>t?F_(e,t):P_(e);function sj(e,t,n){let{viewport:r}=e.editor,i={x:r.width/2,y:r.height/2},a=z_(t,i),o=R_({...t,zoomLevel:n},a);return{movementX:Ve(i.x-o.x,4),movementY:Ve(i.y-o.y,4)}}const cj={changeZoomLevelAction$:(e,t)=>function*(n){let r=oj(n,t),{originX:i,originY:a}=r,{movementX:o,movementY:s}=sj(n,r,Uh(e)),c={originX:i+o,originY:a+s};if(t&&t!==`document`){yield bg({value:e,kind:t}),yield gg({...c,kind:t});return}yield rv({value:e}),yield lv(c)},streamZoomLevelAction$:(e,t)=>function*(n){let r=oj(n,t),i=sj(n,r,Uh(r.zoomLevel+e));if(t&&t!==`document`){yield Sg({value:e,kind:t}),yield vg({...i,kind:t});return}yield av({value:e}),yield dv(i)}},lj=Object.freeze({...Kb,...nj,...sx,...rj,...Tx,...ij,...Xx,...ZC,...hS,...aj,...Rv,...cj,...JS,...ow,...kC,...mw}),uj=`table.add,table.move,table.moveTo,table.remove,table.changeName,table.changeComment,table.changeColor,table.sort,column.add,column.remove,column.changeName,column.changeComment,column.changeDataType,column.changeDefault,column.changeAutoIncrement,column.changePrimaryKey,column.changeUnique,column.changeNotNull,column.move,relationship.add,relationship.remove,relationship.changeType,index.add,index.remove,index.changeName,index.changeUnique,indexColumn.add,indexColumn.remove,indexColumn.move,indexColumn.changeOrderType,memo.add,memo.move,memo.moveTo,memo.remove,memo.changeValue,memo.changeColor,memo.resize,settings.changeDatabaseName,settings.changeZoomLevel,settings.streamZoomLevel,settings.scrollTo,settings.streamScrollTo,settings.changeShow,settings.changeDatabase,settings.changeCanvasType,settings.changeLanguage,settings.changeTableNameCase,settings.changeColumnNameCase,settings.changeBracketType,settings.changeRelationshipDataTypeSync,settings.changeRelationshipOptimization,settings.changeColumnOrder,settings.changeMaxWidthComment,settings.changeIgnoreSaveSettings,editor.loadJson,editor.clear`.split(`,`),dj=V([`settings.changeZoomLevel`,`settings.streamZoomLevel`,`settings.scrollTo`,`settings.streamScrollTo`,`settings.changeDatabase`,`settings.changeCanvasType`,`settings.changeLanguage`,`settings.changeTableNameCase`,`settings.changeColumnNameCase`,`settings.changeBracketType`]),fj=[...uj.filter(e=>!dj(e))],pj=V([`editor.loadJson`,`editor.clear`]),mj=[...fj.filter(e=>!pj(e))],hj=[`editor.sharedMouseTracker`,`editor.sharedFocusTracker`,`editor.sharedSelectionTracker`,`editor.sharedDragSelectTracker`];[...uj,...hj];const gj=[`table.move`,`memo.move`],_j=[`table.changeColor`,`memo.changeColor`],vj=[`settings.streamZoomLevel`,`settings.streamScrollTo`],yj=[...Object.keys(WC)],bj=[...Object.keys(UC),...yj];function xj(e,t){if(t.has(e))throw TypeError(`Cannot initialize the same private elements twice on an object`)}function Sj(e,t,n){xj(e,t),t.set(e,n)}function Cj(e,t,n){if(typeof e==`function`?e===t:e.has(t))return arguments.length<3?t:n;throw TypeError(`Private element is not present on this object`)}function wj(e,t){return e.get(Cj(e,t))}function Tj(e,t,n){return e.set(Cj(e,t),n),n}var Ej=new WeakMap,Dj=class{constructor(){Sj(this,Ej,0),fi(this,`getVersion`,()=>wj(Ej,this)),fi(this,`getNextVersion`,()=>this.getVersion()+1),fi(this,`merge`,e=>(!x(e)||!Number.isInteger(e)||this.getVersion()<e&&Tj(Ej,this,e),this))}};function Oj(e){return{...e,clock:new Dj}}function kj({notify:e,dispatch:t,getNextVersion:n},r){let i=r?.commands??[],a=r?.cursor??-1,o=r?.limit??0,s=!0,c=()=>a!==-1,l=()=>a<i.length-1,u=e=>o=e,d=()=>({hasRedo:l(),hasUndo:c()}),f=(e,r)=>{s=!1,e[r](t,n),s=!0};return Object.freeze({get cursor(){return a},get size(){return i.length},hasUndo:c,hasRedo:l,push:t=>{s&&(i.splice(a+1,i.length-a),i.push(t),o!==0&&i.length>o&&(i=i.slice(i.length-o,i.length)),a=i.length-1,e(d()))},undo:()=>{if(!c())return;let t=i[a];f(t,`undo`),a--,e(d())},redo:()=>{if(!l())return;let t=i[a+1];f(t,`redo`),a++,e(d())},clear:()=>{let t=i.length;i=[],a=-1,t>0&&e(d())},setLimit:u,clone:e=>kj(e,{commands:[...i],cursor:a,limit:o})})}const Aj=De(e=>!!e.length),jj=e=>{let t=V(e);return e=>new C(n=>e.subscribe({next:e=>n.next(e.filter(e=>t(e.type))),error:e=>n.error(e),complete:()=>n.complete()})).pipe(Aj)},Mj=`@@none-stream`,Nj=(e,t)=>n=>{let r=t.find(([,e])=>e(n));return r?r[0]:e(n)?n:Mj},Pj=(e,t=[],n=Te(200))=>{let r=V(e),i=t.map(([e,t])=>[e,V(t)]),a=Nj(r,i);return e=>new C(t=>e.subscribe({next:e=>{let n=e.reduce((e,t)=>{let n=a(t.type);return e[n]||(e[n]=[]),e[n].push(t),e},{});Object.values(n).forEach(e=>t.next(e))},error:e=>t.error(e),complete:()=>t.complete()})).pipe(Aj,ke(e=>a(e[0].type)),Me(e=>e.key===Mj?e:e.pipe(we(e.pipe(n)),Ae(e=>e.flat()))))},Fj=e=>{let t=t=>y(t.tags)||!e.some(e=>G(t.tags,e));return e=>new C(n=>e.subscribe({next:e=>n.next(e.filter(t)),error:e=>n.error(e),complete:()=>n.complete()})).pipe(Aj)};V(yj),V(hj);const Ij=(e,t=[])=>{let n=V(fj),r=e=>!y(e.tags)&&t.some(t=>G(e.tags,t))||!n(e.type);return t=>new C(n=>t.subscribe({next:t=>{n.next(e()?t.filter(r):t)},error:e=>n.error(e),complete:()=>n.complete()})).pipe(Aj)},Lj={[K.scrollTo]:P.viewScrollTo,[K.streamScrollTo]:P.viewStreamScrollTo,[K.changeZoomLevel]:P.viewChangeZoomLevel,[K.streamZoomLevel]:P.viewStreamZoomLevel},Rj=({tags:e})=>!y(e)&&(G(e,Ig.shared)||G(e,Ig.following)),zj=e=>{let t=Lj[e.type];return t&&!Rj(e)?{...e,type:t}:e},Bj=e=>t=>new C(n=>t.subscribe({next:t=>{n.next(e()?t.map(zj):t)},error:e=>n.error(e),complete:()=>n.complete()})),Vj=(e,t=[])=>{let n=V(mj),r=e=>!y(e.tags)&&t.some(t=>G(e.tags,t))||!n(e.type);return t=>new C(n=>t.subscribe({next:t=>{n.next(e()?t.filter(r):t)},error:e=>n.error(e),complete:()=>n.complete()})).pipe(Aj)};function Hj(e,t){return Pu({context:e,state:{...Hp({}),editor:rg(),lww:{}},reducers:{...Gb,...qS,...OC,...Yx,...mS,...Lv,...ox,...wx},enableObservable:t??!0})}const Uj=new WeakMap,Wj=()=>({boxes:new Map,entries:new Map});function Gj(e,t=`document`){let n=Uj.get(e);return n||(n={document:Wj(),flow:Wj()},Uj.set(e,n)),n[t]}function Kj(e,t){return{left:e.left[t],top:e.top[t],right:e.right[t],bottom:e.bottom[t]}}function qj(e,t){return{left:Math.min(e.left,t.left),top:Math.min(e.top,t.top),right:Math.max(e.right,t.right),bottom:Math.max(e.bottom,t.bottom)}}function Jj(e,t){return e.left===t.left&&e.top===t.top&&e.right===t.right&&e.bottom===t.bottom}function Yj(e){let t=1/0,n=1/0,r=-1/0,i=-1/0;for(let{x:a,y:o}of e)a<t&&(t=a),a>r&&(r=a),o<n&&(n=o),o>i&&(i=o);return{left:t,top:n,right:r,bottom:i}}function Xj(e,t){return e.left<=t.right&&e.right>=t.left&&e.top<=t.bottom&&e.bottom>=t.top}function Zj(e,t){let n={left:e.left-40,top:e.top-40,right:e.right+40,bottom:e.bottom+40};for(let e of t)if(Xj(n,e))return!0;return!1}function Qj(){let e=new Map,t=new Map,n=(n,r,i,a,o)=>{let s=n?e:t,c=Math.floor(Math.min(r,i)/64),l=Math.floor(Math.max(r,i)/64);for(let e=c;e<=l;e++){let t=s.get(e);t?t.push(r,i,a,o):s.set(e,[r,i,a,o])}};return{markSpan:n,markBox(e){n(!0,e.left,e.right,e.top,e.bottom),n(!1,e.top,e.bottom,e.left,e.right)},hits(n,r,i,a,o){let s=n?e:t;if(!s.size)return!1;let c=Math.min(r,i)-64,l=Math.max(r,i)+64,u=Math.floor(c/64),d=Math.floor(l/64);for(let e=u;e<=d;e++){let t=s.get(e);if(t){for(let e=0;e<t.length;e+=4)if(!(t[e+1]<c||t[e]>l)&&!(t[e+3]<a-16)&&!(t[e+2]>o+16))return!0}}return!1}}}function $j(e,t){for(let n=1;n<t.length;n++){let r=t[n-1],i=t[n];Math.abs(r.x-i.x)<.5?e.markSpan(!0,r.x,i.x,Math.min(r.y,i.y),Math.max(r.y,i.y)):e.markSpan(!1,r.y,i.y,Math.min(r.x,i.x),Math.max(r.x,i.x))}}function eM(e,t){let n=e.boxes,r=new Map,i=[],a=!1;for(let e=0;e<t.ids.length;e++){let o=t.ids[e],s=Kj(t,e);if(r.set(o,s),a)continue;let c=n.get(o);c?Jj(c,s)||i.push(qj(c,s)):i.push(s),i.length>64&&(a=!0)}if(!a){for(let[e,t]of n)if(!r.has(e)&&(i.push(t),i.length>64)){a=!0;break}}return e.boxes=r,a||n.size===0?null:i}function tM(e){return 50+e%4*12}function nM(e,t){return e.tableId===t.tableId?null:e.direction===R.right&&t.direction===R.left?t.x-e.x:e.direction===R.left&&t.direction===R.right?e.x-t.x:e.direction===R.bottom&&t.direction===R.top?t.y-e.y:e.direction===R.top&&t.direction===R.bottom?e.y-t.y:null}function rM(e,t){return t===null||t<=0?e:Math.max(36,Math.min(e,t/2-1))}function iM(e){return e===R.left||e===R.right}function aM(e){return e===R.right||e===R.bottom?1:-1}function oM(e,t,n){let r=aM(t);return iM(t)?{x:e.x+r*n,y:e.y}:{x:e.x,y:e.y+r*n}}function sM({start:e,end:t},[n,r]){let i=nM(e,t),a=rM(tM(n),i),o=rM(tM(r),i);return{m:oM(e,e.direction,a),l:oM(t,t.direction,o),startStub:a,endStub:o}}function cM(e,t=`document`){let{tableIds:n}=Kg(e,t),r=N(e.collections).collection(`tableEntities`).selectByIds(n),i=r.length,a={ids:Array(i),left:new Float64Array(i),top:new Float64Array(i),right:new Float64Array(i),bottom:new Float64Array(i)};return r.forEach((n,r)=>{let i=C_(e,n,t);a.ids[r]=n.id,a.left[r]=i.lt.x+2,a.top[r]=i.lt.y+2,a.right[r]=i.rb.x-2,a.bottom[r]=i.rb.y-2}),a}function lM(e,t,n,r,i,a,o,s){let c=0,l=1,u=n-e,d=r-t,f=(e,t)=>{if(e===0)return t>=0;let n=t/e;if(e<0){if(n>l)return!1;n>c&&(c=n)}else{if(n<c)return!1;n<l&&(l=n)}return!0};return f(-u,e-i)&&f(u,o-e)&&f(-d,t-a)&&f(d,s-t)&&c<=l}function uM(e,t,n,r){let i=0,a=1/0,o=-1/0,s=1/0,c=-1/0;for(let t=0;t<e.length;t++){let n=e[t];n.x<a&&(a=n.x),n.x>o&&(o=n.x),n.y<s&&(s=n.y),n.y>c&&(c=n.y)}for(let l=0;l<t.ids.length;l++){let u=t.left[l],d=t.right[l],f=t.top[l],p=t.bottom[l];if(o<u||a>d||c<f||s>p)continue;let m=t.ids[l];if(m!==n&&m!==r)for(let t=1;t<e.length;t++){let n=e[t-1],r=e[t];if(!(Math.max(n.x,r.x)<u||Math.min(n.x,r.x)>d)&&!(Math.max(n.y,r.y)<f||Math.min(n.y,r.y)>p)&&lM(n.x,n.y,r.x,r.y,u,f,d,p)){i++;break}}}return i}function dM(e){let t=0;for(let n=1;n<e.length;n++)t+=Math.abs(e[n].x-e[n-1].x)+Math.abs(e[n].y-e[n-1].y);return t}function fM(e,t,n,r,i,a){let o=(e+t)/2,s=n[r?`left`:`top`],c=n[r?`right`:`bottom`],l=n[r?`top`:`left`],u=n[r?`bottom`:`right`],d=[];for(let e=0;e<n.ids.length;e++)u[e]<i||l[e]>a||d.push(s[e]-16,c[e]+16);return d.sort((e,t)=>Math.abs(e-o)-Math.abs(t-o)),[o,...d.slice(0,6)]}function pM(e,t,n,r,i){let a=iM(t),o=iM(r),s=aM(t),c=aM(r),l=Math.min(e.x,n.x,e.y,n.y),u=Math.max(e.x,n.x,e.y,n.y),d=[],f=e=>{let t=[e[0]];for(let n=1;n<e.length;n++){let r=t[t.length-1],i=e[n];Math.abs(i.x-r.x)<.5&&Math.abs(i.y-r.y)<.5||t.push(i)}t.length<2||d.push({points:t,bends:t.length-2})};if(a&&o){let t=fM(e.x,n.x,i,!0,l,u);for(let r of t)(r-e.x)*s<0||(r-n.x)*c<0||f([e,{x:r,y:e.y},{x:r,y:n.y},n]);let r=fM(e.y,n.y,i,!1,l,u);for(let t of r){let r=e.x+s*16,i=n.x+c*16;f([e,{x:r,y:e.y},{x:r,y:t},{x:i,y:t},{x:i,y:n.y},n])}}else if(!a&&!o){let t=fM(e.y,n.y,i,!1,l,u);for(let r of t)(r-e.y)*s<0||(r-n.y)*c<0||f([e,{x:e.x,y:r},{x:n.x,y:r},n]);let r=fM(e.x,n.x,i,!0,l,u);for(let t of r){let r=e.y+s*16,i=n.y+c*16;f([e,{x:e.x,y:r},{x:t,y:r},{x:t,y:i},{x:n.x,y:i},n])}}else if(a){(n.x-e.x)*s>=0&&(e.y-n.y)*c>=0&&f([e,{x:n.x,y:e.y},n]);let t=fM(e.x,n.x,i,!0,l,u).filter(t=>(t-e.x)*s>=0).slice(0,4),r=fM(e.y,n.y,i,!1,l,u).filter(e=>(e-n.y)*c>=0).slice(0,4);for(let i of t)for(let t of r)f([e,{x:i,y:e.y},{x:i,y:t},{x:n.x,y:t},n])}else{(n.y-e.y)*s>=0&&(e.x-n.x)*c>=0&&f([e,{x:e.x,y:n.y},n]);let t=fM(e.y,n.y,i,!1,l,u).filter(t=>(t-e.y)*s>=0).slice(0,4),r=fM(e.x,n.x,i,!0,l,u).filter(e=>(e-n.x)*c>=0).slice(0,4);for(let i of t)for(let t of r)f([e,{x:e.x,y:i},{x:t,y:i},{x:t,y:n.y},n])}return d}function mM(e,t,n,r,i,a,o){let s=pM(e,t,n,r,i),c=null,l=1/0;for(let e of s){let t=uM(e.points,i,a,o)*1e5+e.bends*36+dM(e.points);t<l&&(l=t,c=e.points)}return c||(iM(t)?[e,{x:(e.x+n.x)/2,y:e.y},{x:(e.x+n.x)/2,y:n.y},n]:[e,{x:e.x,y:(e.y+n.y)/2},{x:n.x,y:(e.y+n.y)/2},n])}const hM=[10,7,4],gM=hM[hM.length-1]-.5;function _M(e){let t=[];for(let[n,r]of e)for(let e=0;e<r.length-1;e++){let i=r[e],a=r[e+1],o=Math.abs(i.x-a.x)<.5;o!==Math.abs(i.y-a.y)<.5&&t.push({relationshipId:n,points:r,index:e,movable:e>0&&e<r.length-2,vertical:o,coordinate:o?i.x:i.y,low:o?Math.min(i.y,a.y):Math.min(i.x,a.x),high:o?Math.max(i.y,a.y):Math.max(i.x,a.x)})}return t}function vM(e,t){return e.relationshipId===t.relationshipId?e.index-t.index:e.relationshipId<t.relationshipId?-1:1}function yM(e){let t=e.points[e.index-1];return e.vertical?t.y:t.x}function bM(e){for(let t of e){let e=t.points[t.index],n=t.points[t.index+1];t.low=t.vertical?Math.min(e.y,n.y):Math.min(e.x,n.x),t.high=t.vertical?Math.max(e.y,n.y):Math.max(e.x,n.x)}}function xM(e,t){let n=e.points[e.index],r=e.points[e.index+1];e.vertical?(n.x=t,r.x=t):(n.y=t,r.y=t)}function SM(e,t,n,r){let i=[],a=[];for(let t of _M(e))(t.vertical?i:a).push(t);for(let e of[i,a]){bM(e);let i=e.filter(e=>e.movable);if(i.length<2)continue;i.sort((e,t)=>e.coordinate-t.coordinate||vM(e,t));let a=[],o=()=>{a.length>1&&CM(a,e,t,n,r),a=[]};for(let e of i){let t=a[a.length-1];t&&e.coordinate-t.coordinate>10.5&&o(),a.push(e)}o()}}function CM(e,t,n,r,i){e.sort((e,t)=>e.low-t.low||vM(e,t));let a=[],o=-1/0,s=()=>{a.length>1&&kM(a,t,n,r,i),a=[],o=-1/0};for(let t of e)a.length&&t.low>=o&&s(),a.push(t),o=Math.max(o,t.high);s()}function wM(e,t){return e.high+10>t.low&&t.high+10>e.low}function TM(e,t){return Math.abs(e.coordinate-t.coordinate)>=gM?0:Math.max(0,Math.min(e.high,t.high)-Math.max(e.low,t.low))}function EM(e,t){let n=0;for(let r=0;r<e.length;r++){let i=e[r];for(let t=r+1;t<e.length;t++)n+=TM(i,e[t]);for(let e of t)n+=TM(i,e)}return n}function DM(e,t){let n=new Set(e),r=1/0,i=-1/0;for(let t of e)t.coordinate<r&&(r=t.coordinate),t.coordinate>i&&(i=t.coordinate);let a=10*(e.length-1)/2+gM,o=[];for(let e of t)e.coordinate<r-a||e.coordinate>i+a||n.has(e)||o.push(e);return o}function OM(e){let t=[];for(let n of e){let e=t.find(e=>!wM(e[e.length-1],n));e?e.push(n):t.push([n])}return t}function kM(e,t,n,r,i){if(!i){AM(e,t,n,r);return}if(jM(e,i))return;let a=e.map(e=>e.coordinate);AM(e,t,n,r),MM(e,a,i)}function AM(e,t,n,r){let i=DM(e,t),a=EM(e,i);if(!a)return;let o=new Map,s=e.map(e=>(o.set(e,zM(e,n,r)),e.coordinate)),c=s.reduce((e,t)=>e+t,0)/s.length,l=NM(e),u=null,d=1/0;for(let t of hM){let a=null,f=1/0;for(let p of l){RM(p,t,c,o,n,r);let l=EM(e,i);if(l)l<d&&(u=e.map(e=>e.coordinate),d=l);else{let t=IM(e,s);t<f&&(f=t,a=e.map(e=>e.coordinate))}LM(e,s)}if(a){LM(e,a);return}}u&&d<a&&LM(e,u)}function jM(e,t){let n=[];for(let r of e){if(t.dirty.has(r.relationshipId))return!1;let e=t.coordinate(r.relationshipId,r.index,r.vertical);if(e===void 0||t.lanes.hits(r.vertical,r.coordinate,e,r.low,r.high))return!1;n.push(e)}return LM(e,n),!0}function MM(e,t,n){e.forEach((e,r)=>{let i=t[r],a=e.coordinate;if(Math.abs(a-i)<.5)return;n.lanes.markSpan(e.vertical,i,a,e.low,e.high);let o=e.points[e.index],s=e.points[e.index+1],c=Math.min(i,a),l=Math.max(i,a),u=e.vertical?o.y:o.x,d=e.vertical?s.y:s.x;n.lanes.markSpan(!e.vertical,u,u,c,l),n.lanes.markSpan(!e.vertical,d,d,c,l)})}function NM(e){let t=OM(e),n=PM(t);return t.length===e.length?n:[...n,...PM(e.map(e=>[e]))]}function PM(e){let t=(e,t)=>e.reduce((e,n)=>e+t(n),0)/e.length,n=[...e].sort((e,n)=>t(e,yM)-t(n,yM)||t(e,FM)-t(n,FM)||vM(e[0],n[0])),r=[...e].sort((e,n)=>t(e,FM)-t(n,FM)||t(e,yM)-t(n,yM)||vM(e[0],n[0]));return n.every((e,t)=>e===r[t])?[n]:[n,r]}function FM(e){return e.coordinate}function IM(e,t){return e.reduce((e,n,r)=>e+Math.abs(n.coordinate-t[r]),0)}function LM(e,t){e.forEach((e,n)=>{xM(e,t[n]),e.coordinate=t[n]})}function RM(e,t,n,r,i,a){let o=n-t*(e.length-1)/2,s=e.map(()=>[]);e.forEach((n,c)=>{for(let l of n){let n=r.get(l);if(!n)continue;let u=r=>{if(r<0||r>=e.length||s[r].some(e=>wM(l,e)))return!1;let c=o+r*t;return xM(l,c),UM(l,i,a,n)?(l.coordinate=c,s[r].push(l),!0):!1},d=!1;for(let e=0;e<=3&&!d;e++)d=u(c-e)||e>0&&u(c+e);d||xM(l,l.coordinate)}})}function zM(e,t,n){let r=n.get(e.relationshipId),i=[];for(let e=0;e<t.ids.length;e++){let n=t.ids[e];(n===r?.[0]||n===r?.[1])&&i.push(e)}return{blocked:uM(e.points,t,r?.[0]??``,r?.[1]??``),crossed:WM(e.points),own:i,intruded:HM(e.points,t,i),beforeDelta:BM(e,-1),afterDelta:BM(e,1)}}function BM(e,t){let n=e.points[t<0?e.index:e.index+1],r=e.points[t<0?e.index-1:e.index+2];return e.vertical?r.x-n.x:r.y-n.y}function VM(e,t){return Math.abs(t)>=.5&&e*t<=0}function HM(e,t,n){let r=0;for(let i of n){let n=t.left[i],a=t.top[i],o=t.right[i],s=t.bottom[i];for(let t=1;t<e.length;t++){let i=e[t-1],c=e[t];if(lM(i.x,i.y,c.x,c.y,n,a,o,s)){r++;break}}}return r}function UM(e,t,n,r){let i=e.points[e.index-1],a=e.points[e.index],o=e.points[e.index+1],s=e.points[e.index+2];if((e.vertical?Math.abs(i.x-a.x)<.5||Math.abs(s.x-o.x)<.5:Math.abs(i.y-a.y)<.5||Math.abs(s.y-o.y)<.5)||e.index===1&&VM(BM(e,-1),r.beforeDelta)||e.index+2===e.points.length-1&&VM(BM(e,1),r.afterDelta)||HM(e.points,t,r.own)>r.intruded||!r.crossed&&WM(e.points))return!1;let c=n.get(e.relationshipId);return uM(e.points,t,c?.[0]??``,c?.[1]??``)<=r.blocked}function WM(e){for(let t=0;t+1<e.length;t++)for(let n=t+2;n+1<e.length;n++)if(GM(e[t],e[t+1],e[n],e[n+1]))return!0;return!1}function GM(e,t,n,r){let i=Math.abs(e.x-t.x)<.5;if(i===Math.abs(n.x-r.x)<.5)return!1;let a=i?e:n,o=i?t:r,s=i?n:e,c=i?r:t;return a.x>Math.min(s.x,c.x)&&a.x<Math.max(s.x,c.x)&&s.y>Math.min(a.y,o.y)&&s.y<Math.max(a.y,o.y)}const KM={[H.top]:R.top,[H.bottom]:R.bottom,[H.left]:R.left,[H.right]:R.right},qM=Math.PI*2,JM=.15,YM={[H.top]:-Math.PI,[H.right]:-Math.PI/2,[H.bottom]:0,[H.left]:Math.PI/2},XM={[H.top]:!1,[H.right]:!1,[H.bottom]:!0,[H.left]:!0};function ZM(e,t=`document`){Oh(t);let{tableIds:n,relationshipIds:r}=Kg(e,t),{collections:i}=e,a=V(n),o=N(i).collection(`tableEntities`),s=N(i).collection(`relationshipEntities`).selectByIds(r).filter(({start:e,end:t})=>a(e.tableId)&&a(t.tableId)),c=new Map,l=new Map,u=new Map,d=lN(s);for(let n of s){let r=cN(n),{start:i,end:a}=r,s=o.selectById(i.tableId),f=o.selectById(a.tableId);if(!(!s||!f)){if(l.set(n,r),u.set(r.id,[0,0]),i.tableId===a.tableId)iN(rN(e,c,s,t),r);else{let n=rN(e,c,s,t),o=rN(e,c,f,t),[l,u]=pN(n.objectPoint,o.objectPoint,r);n[l].push({id:r.id,isStart:!0,point:i,angle:fN(l,n,o),tie:d.tieAt(r.id,i.tableId,a.tableId)}),o[u].push({id:r.id,isStart:!1,point:a,angle:fN(u,o,n),tie:d.tieAt(r.id,a.tableId,i.tableId)})}}}for(let e of c.values())for(let t of dh)mN(t,e,u);for(let[e,n]of l.entries())wh(e,u.get(n.id)??[0,0],t),Ah(e,n,t);t===`document`?$M(e,l,u):QM(l,u,t)}function QM(e,t,n){for(let[r,i]of e.entries()){let{id:e,start:a,end:o}=i;if(a.tableId===o.tableId)continue;let{m:s,l:c}=sM(i,t.get(e)??[0,0]);Eh(r,[s,c],n)}}function $M(e,t,n){let r=cM(e),i=Gj(e),a=eM(i,r),o=i.entries,s=new Map,c=new Set,l=Qj();if(a)for(let e of a)l.markBox(e);let u=new Map,d=new Map,f=new Map;for(let[e,i]of t.entries()){let{id:t,start:p,end:m}=i;if(p.tableId===m.tableId)continue;let{m:h,l:g}=sM(i,n.get(t)??[0,0]),_=o.get(t),v,ee;a!==null&&_!==void 0&&nN(_,h,g,p,m)&&!Zj(_.bounds,a)?(v=_.pristine,ee=eN(v)):(ee=mM(h,p.direction,g,m.direction,r,p.tableId,m.tableId),v=eN(ee),c.add(t),_&&$j(l,_.nudged),$j(l,v)),u.set(t,ee),d.set(t,[p.tableId,m.tableId]),f.set(t,e),s.set(t,{mx:h.x,my:h.y,mDirection:p.direction,lx:g.x,ly:g.y,lDirection:m.direction,startTableId:p.tableId,endTableId:m.tableId,pristine:v,nudged:ee,bounds:Yj(v)})}if(a)for(let[e,t]of o)s.has(e)||$j(l,t.nudged);SM(u,r,d,a===null?void 0:tN(o,c,l));for(let[e,t]of u){let n=f.get(e);n&&Eh(n,t)}i.entries=s}function eN(e){return e.map(({x:e,y:t})=>({x:e,y:t}))}function tN(e,t,n){return{dirty:t,lanes:n,coordinate(t,n,r){let i=e.get(t)?.nudged[n];if(i)return r?i.x:i.y}}}function nN(e,t,n,r,i){return e.mx===t.x&&e.my===t.y&&e.lx===n.x&&e.ly===n.y&&e.mDirection===r.direction&&e.lDirection===i.direction&&e.startTableId===r.tableId&&e.endTableId===i.tableId}function rN(e,t,n,r){let i=t.get(n.id);if(!i){let a=C_(e,n,r);i={tableId:n.id,centerX:a.top.x,centerY:a.left.y,objectPoint:a,selfCount:0,top:[],bottom:[],left:[],right:[]},t.set(n.id,i)}return i}function iN(e,t){let{rt:n,width:r,height:i}=e.objectPoint,a=e.selfCount++,o=sN(Math.min(r,i)*JM,20,60)+a*14;t.start.direction=R.top,t.start.x=n.x-o,t.start.y=n.y,t.end.direction=R.right,t.end.x=n.x,t.end.y=n.y+o}function aN(e,t){let{width:n,height:r}=e.objectPoint;return sN(Math.min(n,r)*JM,20,60)+t*14}function oN(e){return e.selfCount?aN(e,e.selfCount-1)+8:0}function sN(e,t,n){return Math.min(Math.max(e,t),n)}function cN({id:e,start:t,end:n}){return{id:e,start:ph(t),end:ph(n)}}function lN(e){let t=new Map;for(let{id:n,start:r,end:i}of e){let e=uN(r.tableId,i.tableId),a=t.get(e);a?a.push(n):t.set(e,[n])}let n=new Map,r=new Map,i=!1;for(let e of t.values())e.length<2||(i=!0,e.sort(),e.forEach((t,i)=>{n.set(t,i),r.set(t,e.length)}));return{tieAt(e,t,a){if(!i)return 0;let o=n.get(e)??0;return t<=a?o:(r.get(e)??1)-1-o}}}function uN(e,t){return e<t?`${e}|${t}`:`${t}|${e}`}function dN(e){let t=e%qM;return t<0?t+qM:t}function fN(e,t,n){return dN(Math.atan2(n.centerY-t.centerY,n.centerX-t.centerX)-YM[e])}function pN(e,t,n){let r=[H.bottom,H.bottom],i=w_(e.bottom,t.bottom);n.start.x=e.bottom.x,n.start.y=e.bottom.y,n.end.x=t.bottom.x,n.end.y=t.bottom.y,n.start.direction=R.bottom,n.end.direction=R.bottom;for(let a of dh)for(let o of dh){let s=a,c=o,l=w_(e[s],t[c]);i<=l||(i=l,r[0]=s,r[1]=c,n.start.x=e[s].x,n.start.y=e[s].y,n.start.direction=KM[s],n.end.x=t[c].x,n.end.y=t[c].y,n.end.direction=KM[c])}return r}function mN(e,t,n){let r=t[e];if(!r.length)return;r.sort((e,t)=>e.angle-t.angle||e.tie-t.tie||(e.id<t.id?-1:1));let{objectPoint:i}=t,a=e===H.top||e===H.bottom,o=(a?i.lt.x:i.lt.y)+12,s=(a?i.rb.x:i.rb.y)-12,c=oN(t);if(c&&(e===H.top?s-=c:e===H.right&&(o+=c)),s<o){let e=(o+s)/2;o=e,s=e}let l=s-o,u=(o+s)/2,d=r.length,f=d>1?Math.min(l/(d-1),120):0,p=u-f*(d-1)/2;r.forEach((t,r)=>{let o=XM[e]?d-1-r:r,s=p+o*f;a?(t.point.x=s,t.point.y=e===H.top?i.top.y:i.bottom.y):(t.point.y=s,t.point.x=e===H.left?i.left.x:i.right.x);let c=n.get(t.id);c&&(c[+!t.isStart]=r)})}const hN=(e,t)=>e.pipe(Re(10,void 0,{leading:!1,trailing:!0})).subscribe(()=>{let{doc:e,collections:n}=t(),r=N(n).collection(`relationshipEntities`).selectByIds(e.relationshipIds);for(let e of r){let{end:t,identification:r}=e,i=N(n).collection(`tableEntities`).selectById(t.tableId);if(!i)continue;let a=V(i.columnIds),o=N(n).collection(`tableColumnEntities`).selectByIds(t.columnIds).filter(e=>a(e.id));if(!o.length)continue;let s=o.every(e=>G(e.options,z.primaryKey));s!==r&&(e.identification=s)}}),gN=(e,t)=>e.pipe(Re(10,void 0,{leading:!1,trailing:!0})).subscribe(()=>{let{doc:e,collections:n}=t(),r=N(n).collection(`relationshipEntities`).selectByIds(e.relationshipIds);for(let e of r){let{end:t,startRelationshipType:r}=e,i=N(n).collection(`tableEntities`).selectById(t.tableId);if(!i)continue;let a=V(i.columnIds),o=N(n).collection(`tableColumnEntities`).selectByIds(t.columnIds).filter(e=>a(e.id));if(!o.length)continue;let s=o.every(e=>G(e.options,z.notNull))?Qm.dash:Qm.ring;s!==r&&(e.startRelationshipType=s)}}),_N=V([jS.type,NS.type,Fx.type]),vN=(e,t)=>e.pipe(Le(e=>{_N(e.type)||o_()}),Re(5,void 0,{leading:!1,trailing:!0})).subscribe(()=>{ZM(t())}),yN=V([pv.type,Nv.type,Fx.type]),bN=V([gg.type,vg.type,bg.type,Sg.type]),xN=({id:e})=>[e],SN=({ids:e})=>e,CN=({tableId:e})=>[e],wN=(e,{kind:t})=>t,TN=()=>eg.flow,EN=(e,{kind:t})=>t??ag(e)?.kind??null,DN={[fg.type]:wN,[mg.type]:wN,[Eg.type]:wN,[Ag.type]:TN,[Og.type]:EN,[wg.type]:EN},ON={[kS.type]:xN,[FS.type]:xN,[NS.type]:xN,[LS.type]:xN,[zS.type]:xN,[cS.type]:xN,[uS.type]:xN,[jS.type]:SN,[wg.type]:SN,[oC.type]:CN,[cC.type]:CN,[uC.type]:CN,[fC.type]:CN,[mC.type]:CN,[gC.type]:CN,[bC.type]:CN};function kN(e,t){let{tableIds:n,relationshipIds:r}=Kg(e,t);return new Set([...n,...r])}function AN(e,t,n,r){if(yN(t.type)||bN(t.type))return!1;let i=DN[t.type];if(i&&i(e,t.payload)!==r)return!1;let a=ON[t.type];if(!a)return!0;let o=kN(e,r);return a(t.payload).some(e=>o.has(e)||n.has(e))}const jN=[eg.flow],MN=(e,t)=>{let n={flow:new Set},r=new Set;return e.pipe(De(e=>{let i=t(),a=!1;for(let t of jN)og(i,t)&&AN(i,e,n[t],t)&&(r.add(t),a=!0);return a}),Re(5,void 0,{leading:!1,trailing:!0})).subscribe(()=>{let e=t(),i=[...r];r.clear();for(let t of i)og(e,t)&&(ZM(e,t),n[t]=kN(e,t))})},NN=[pv,Nv,cS,uS,Fx,kS,FS,jS,NS,LS,zS,oC,cC,uC,fC,mC,gC,GS],PN=[bC],FN=[fg,mg,gg,vg,bg,Sg,wg,Eg,Og,Ag],IN=[[[cC,bC,Fy,zy],hN],[[cC,wC,Fy,zy],gN],[NN,vN],[[...NN,...PN,...FN],MN]],LN=[[[Fy,zy],(e,t,n)=>e.pipe(Re(5,void 0,{leading:!1,trailing:!0})).subscribe(()=>{let e=t();v_(e,n),ZM(e)})]],RN=e=>e.pipe(Ne(Ce)),zN=[[[bC],(e,t)=>RN(e).subscribe(({payload:{id:e}})=>{let{collections:n}=t(),r=N(n).collection(`tableColumnEntities`).selectById(e);r&&G(r.options,z.primaryKey)&&(G(r.options,z.notNull)||(r.options|=z.notNull))})],[[cS],(e,t)=>RN(e).subscribe(({payload:{id:e,end:n}})=>{let{doc:{relationshipIds:r},collections:i}=t();if(!r.includes(e))return;let a=N(i).collection(`tableColumnEntities`).selectByIds(n.columnIds);for(let e of a)e.ui.keys=e.ui.keys|B.foreignKey})],[[uS],(e,t)=>RN(e).subscribe(({payload:{id:e}})=>{let{doc:{relationshipIds:n},collections:r}=t();if(n.includes(e))return;let i=N(r).collection(`relationshipEntities`).selectById(e);if(!i)return;let a=N(r).collection(`tableColumnEntities`).selectByIds(i.end.columnIds);for(let e of a)e.ui.keys=e.ui.keys&~B.foreignKey})],[[Fy,zy],(e,t)=>RN(e).subscribe(()=>{let{doc:e,collections:n}=t(),r=N(n).collection(`relationshipEntities`).selectByIds(e.relationshipIds),i=N(n).collection(`tableEntities`).selectByIds(e.tableIds),a=new Set,o=N(n).collection(`tableColumnEntities`);for(let{end:e}of r){let t=o.selectByIds(e.columnIds);for(let e of t)e.ui.keys=e.ui.keys|B.foreignKey,a.add(e.id)}for(let e of i){let t=o.selectByIds(e.columnIds);for(let e of t)G(e.ui.keys,B.foreignKey)&&!a.has(e.id)&&(e.ui.keys=e.ui.keys&~B.foreignKey)}})]],BN=[...LN,...zN,...IN];function VN(e){let t=()=>e.state,n=BN.map(([n,r])=>{let i=new xe;return{pattern:V(n.map(String)),action$:i,subscription:r(i,t,e.context)}}),r=e.subscribe(e=>{for(let t of e)for(let e of n)e.pattern(t.type)&&e.action$.next(t)});return{destroy:()=>{n.forEach(({action$:e,subscription:t})=>{t.unsubscribe(),e.complete()}),n.splice(0,n.length),r()}}}function HN(e,{getReadonly:t=()=>!1,getHistory:n}={}){let r=new Set,i=Hj(e),a=VN(i),o={notify:e=>i.dispatch(Sy(e)),dispatch:i.dispatchSync,getNextVersion:()=>e.clock.getNextVersion()},s=n?.(o)??kj(o);s.setLimit(2048);let c=()=>ag(i.state),l=new xe,u=l.pipe(Bj(c)),d=u.pipe(jj(bj),Fj([Ig.changeOnly,Ig.shared]),Ij(t),Vj(c),Pj(yj,[[`@@move`,gj],[`@@scroll`,vj],[`@@color`,_j]])),f=new C(e=>i.subscribe(t=>e.next(t))).pipe(jj(uj),Ij(t,[Ig.shared]),Te(200)),p=(...t)=>{let n=e.clock.getNextVersion();return Au(i.state,i.context,t).map(e=>(y(e.version)&&(e.version=n),e))},m=(...e)=>{let t=p(e);l.next(t)},h=(...e)=>{queueMicrotask(()=>m(e))},g=()=>{Array.from(r).forEach(e=>ue(e)?e():e.unsubscribe()),r.clear(),i.destroy(),a.destroy(),s.clear(),l.complete()},_=()=>{t()||c()||s.undo()},v=()=>{t()||c()||s.redo()};return r.add(d.subscribe(qC(i,s))).add(u.pipe(Ij(t,[Ig.shared]),Vj(c,[Ig.shared])).subscribe(i.dispatchSync)).add(i.subscribe(t=>{t.forEach(t=>e.clock.merge(t.version))})),Object.freeze({...i,dispatch:h,dispatchSync:m,destroy:g,undo:_,redo:v,history:s,change$:f})}const UN={openColorPicker:`openColorPicker`,closeColorPicker:`closeColorPicker`,openToast:`openToast`,openTableProperties:`openTableProperties`,dragendColumnAll:`dragendColumnAll`,copy:`copy`,paste:`paste`,schemaGC:`schemaGC`,toggleSearch:`toggleSearch`,openThemeBuilder:`openThemeBuilder`,setThemeOptions:`setThemeOptions`,mouseTrackerStart:`mouseTrackerStart`,mouseTrackerEnd:`mouseTrackerEnd`,openDiffViewer:`openDiffViewer`,openAutomaticTablePlacement:`openAutomaticTablePlacement`,duplicateDragStart:`duplicateDragStart`,dragSelectStart:`dragSelectStart`};var WN=new WeakMap,GN=class{constructor(){Sj(this,WN,new Set)}on(e){return wj(WN,this).has(e)||wj(WN,this).add(e),()=>{wj(WN,this).delete(e)}}emit(e){wj(WN,this).forEach(t=>{HC(Reflect.get(t,e.type),e)})}clear(){wj(WN,this).clear()}};const KN=k(UN.openColorPicker);k(UN.closeColorPicker),k(UN.openToast),k(UN.openTableProperties);const qN=k(UN.dragendColumnAll);k(UN.copy),k(UN.paste),k(UN.schemaGC),k(UN.toggleSearch),k(UN.openThemeBuilder),k(UN.setThemeOptions),k(UN.mouseTrackerStart),k(UN.mouseTrackerEnd),k(UN.openDiffViewer),k(UN.openAutomaticTablePlacement);const JN=k(UN.duplicateDragStart);k(UN.dragSelectStart);const YN=Ke();let XN=YN.os.name===`mac`,ZN=YN.os.name===`ios`;YN.os.name,YN.os.name,YN.browser.name,YN.browser.name,YN.browser.name,qe(e=>{XN=e.os.name===`mac`,ZN=e.os.name===`ios`,e.os.name,e.os.name,e.browser.name,e.browser.name,e.browser.name});const QN=()=>XN||ZN,$N={edit:`edit`,stop:`stop`,search:`search`,undo:`undo`,redo:`redo`,addTable:`addTable`,addColumn:`addColumn`,addMemo:`addMemo`,removeTable:`removeTable`,removeColumn:`removeColumn`,primaryKey:`primaryKey`,selectAllTable:`selectAllTable`,selectAllColumn:`selectAllColumn`,relationshipZeroOne:`relationshipZeroOne`,relationshipZeroN:`relationshipZeroN`,relationshipOneOnly:`relationshipOneOnly`,relationshipOneN:`relationshipOneN`,tableProperties:`tableProperties`,focusView:`focusView`,zoomIn:`zoomIn`,zoomOut:`zoomOut`,zoomReset:`zoomReset`,handTool:`handTool`,zenMode:`zenMode`};Object.values($N);const eP=()=>({[$N.edit]:[{shortcut:`Enter`}],[$N.stop]:[{shortcut:`Escape`}],[$N.search]:[{shortcut:`$mod+KeyK`,preventDefault:!0,stopPropagation:!0}],[$N.undo]:[{shortcut:`$mod+KeyZ`,preventDefault:!0,stopPropagation:!0}],[$N.redo]:[{shortcut:`$mod+Shift+KeyZ`,preventDefault:!0,stopPropagation:!0}],[$N.addTable]:[{shortcut:`Alt+KeyN`,preventDefault:!0}],[$N.addColumn]:[{shortcut:`Alt+Enter`,preventDefault:!0}],[$N.addMemo]:[{shortcut:`Alt+KeyM`,preventDefault:!0}],[$N.removeTable]:[{shortcut:`$mod+Backspace`,preventDefault:!0},{shortcut:`$mod+Delete`,preventDefault:!0}],[$N.removeColumn]:[{shortcut:`Alt+Backspace`,preventDefault:!0},{shortcut:`Alt+Delete`,preventDefault:!0}],[$N.primaryKey]:[{shortcut:`Alt+KeyK`,preventDefault:!0}],[$N.selectAllTable]:[{shortcut:`$mod+KeyA`,preventDefault:!0},{shortcut:`$mod+Alt+KeyA`,preventDefault:!0}],[$N.selectAllColumn]:[{shortcut:`Alt+KeyA`,preventDefault:!0}],[$N.relationshipZeroOne]:[{shortcut:`$mod+Alt+Digit1`,preventDefault:!0}],[$N.relationshipZeroN]:[{shortcut:`$mod+Alt+Digit2`,preventDefault:!0}],[$N.relationshipOneOnly]:[{shortcut:`$mod+Alt+Digit3`,preventDefault:!0}],[$N.relationshipOneN]:[{shortcut:`$mod+Alt+Digit4`,preventDefault:!0}],[$N.tableProperties]:[{shortcut:`Alt+Space`,preventDefault:!0}],[$N.focusView]:[{shortcut:`Alt+KeyF`,preventDefault:!0,stopPropagation:!0}],[$N.zoomIn]:[{shortcut:`$mod+Equal`,preventDefault:!0,stopPropagation:!0}],[$N.zoomOut]:[{shortcut:`$mod+Minus`,preventDefault:!0,stopPropagation:!0}],[$N.zoomReset]:[{shortcut:`$mod+Digit0`,preventDefault:!0,stopPropagation:!0}],[$N.handTool]:[{shortcut:`Space`,preventDefault:!0}],[$N.zenMode]:[{shortcut:`Alt+KeyZ`,preventDefault:!0,stopPropagation:!0}]}),tP={Shift:`Shift`,Meta:`Meta`,Alt:`Alt`,Control:`Control`};tP.Shift,tP.Meta,tP.Alt,tP.Control,tP.Shift,tP.Meta,tP.Alt,tP.Control;function nP(e){return QN()?e.metaKey:e.ctrlKey}function rP(e,t){let{devtools:n=!0,...r}=t??{},i=Oj(e),a=HN(i,r),o=Ea(eP(),{shallow:!0}),s=new xe,c=new xe,l=new GN;return Object.freeze({...i,actions:lj,store:a,keyBindingMap:o,shortcut$:s,keydown$:c,emitter:l})}const iP=gi({}),aP=(e,t)=>Va(e,{...iP,value:t??iP.value});function oP(e){e.store.dispatchSync(Ly()),e.store.destroy(),e.keydown$.complete(),e.shortcut$.complete(),e.emitter.clear()}const sP=[`table`,`memo`,`relationship`],cP=e=>typeof e==`string`&&sP.includes(e);function lP(e){let t=e;if(typeof t.clientX==`number`)return{x:t.clientX,y:t.clientY};let n=e.touches?.[0];return n?{x:n.clientX,y:n.clientY}:null}const uP=(e,t)=>!!(e&&t&&e.x===t.x&&e.y===t.y),dP=new WeakMap,fP=`mousedown.sceneHit touchstart.sceneHit contextmenu.sceneHit`;function pP(e){return e.on(fP,t=>{let n=t.evt,r=lP(n),i=dP.get(e),a=t.target===e?null:hP(t.target),o=n.type===`contextmenu`&&uP(i?.point,r)?i?.hit??null:null;dP.set(e,{evt:n,hit:a??o,point:r})}),()=>{e.off(fP),dP.delete(e)}}function mP(e,t){let n=`${t}-`,r=e.id();if(r.startsWith(n))return r.slice(n.length);let[i,a=``]=e.name().split(/\s+/);return i===t?a:``}function hP(e){let t=e;for(;t;){let e=t.getAttr(`kind`);if(cP(e))return{kind:e,id:mP(t,e)};t=t.getParent()}return null}const gP=gi({}),_P=e=>Va(e,gP);function vP({app:e,container:t,scene:n,width:r,height:i,theme:a}){let o=new ee({container:t,width:r,height:i}),s={host:o.container(),parentElement:null},c=Ha(s,iP,e),l=a?Ha(s,gP,a):null,u=pP(o);return Hf(o,n),{stage:o,destroy:()=>{u(),Hf(o,null),l?.destroy(),c.destroy(),o.destroy()}}}const yP=e=>new Promise(t=>setTimeout(t,e)),bP=32767;function xP(e,t,n){let r=Math.max(t,n),i=t*n;return r<=0||i<=0?e:Math.min(e,bP/r,16384/Math.sqrt(i))}function SP({x:e,y:t,width:n,height:r},i){return{x:e-i,y:t-i,width:n+i*2,height:r+i*2}}function CP(e){let{settings:{show:t},doc:{relationshipIds:n},collections:r}=e,i=A_(e);if(G(t,F.relationship)){let e=N(r).collection(`relationshipEntities`).selectByIds(n);for(let t of e){let e=Ph(t);i=i?k_(i,e):e}}return SP(i??{x:0,y:0,width:0,height:0},80)}function wP({width:e,height:t},n=1){let r=n>0?n:1,i=Math.max(e,t),a=e*t;return i<=0||a<=0?r:Math.min(r,bP/i,Math.sqrt(268435456/a))}const TP={"arrow-right":Je,atom:Ye,braces:Xe,brackets:Ze,"case-sensitive":Qe,check:$e,"chevron-down":et,"chevron-right":tt,code:nt,contrast:rt,copy:it,database:at,diff:ot,"external-link":st,eye:ct,"file-diff":lt,"file-image":ut,"file-input":dt,"file-output":ft,fullscreen:pt,"grip-vertical":mt,hand:ht,"key-round":gt,maximize:_t,minimize:vt,minus:yt,"moon-star":bt,"mouse-pointer-2":xt,network:St,palette:Ct,plus:wt,"redo-2":Tt,"refresh-cw":Et,"rotate-ccw-clock":Dt,search:Ot,settings:kt,"share-2":At,spline:jt,"sticky-note":Mt,sun:Nt,table:Pt,"table-2":Ft,"table-properties":It,"undo-2":Lt,"wand-sparkles":Rt,waypoints:zt,workflow:Bt,x:Vt},EP={ZeroOneN:[[`circle`,{cx:`7`,cy:`12`,r:`5`}],[`path`,{d:`M12 12h10`}],[`path`,{d:`M15 6v12`}],[`path`,{d:`M16 12l6-6`}],[`path`,{d:`M16 12l6 6`}]],ZeroOne:[[`path`,{d:`M2 12h3`}],[`circle`,{cx:`10`,cy:`12`,r:`5`}],[`path`,{d:`M15 12h7`}],[`path`,{d:`M20 6v12`}]],ZeroN:[[`path`,{d:`M2 12h3`}],[`circle`,{cx:`10`,cy:`12`,r:`5`}],[`path`,{d:`M15 12h7`}],[`path`,{d:`M15 12l7-6`}],[`path`,{d:`M15 12l7 6`}]],OneOnly:[[`path`,{d:`M2 12h20`}],[`path`,{d:`M14 6v12`}],[`path`,{d:`M19 6v12`}]],OneN:[[`path`,{d:`M2 12h20`}],[`path`,{d:`M14 6v12`}],[`path`,{d:`M15 12l7-6`}],[`path`,{d:`M15 12l7 6`}]],One:[[`path`,{d:`M2 12h20`}],[`path`,{d:`M14 6v12`}]],N:[[`path`,{d:`M2 12h20`}],[`path`,{d:`M15 12l7-6`}],[`path`,{d:`M15 12l7 6`}]]},DP={};OP();function OP(){for(let e of Object.keys(TP))DP[e]={name:e,node:TP[e]};for(let e of Object.keys(EP))DP[e]={name:e,node:EP[e]}}function kP(e){return DP[e]}const AP=`-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', 'Open Sans', system-ui, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji'`;Id.global`
|
|
22
|
+
`);t[0]?.trim()===``&&t.shift(),t.length&&t[t.length-1].trim()===``&&t.pop();let n=t.filter(e=>e.trim()!==``).map(e=>(hE.exec(e)?.[0]??``).length),r=n.length?Math.min(...n):0;return t.map(e=>e.slice(r)).join(`
|
|
23
|
+
`)}const xE=/^[0-9a-z ]+$/,SE=/'/g,CE=/\?/g;function wE(e){try{return{ok:!0,model:EE(_E(e))}}catch(e){return{ok:!1,message:e instanceof Error?e.message:`Invalid DBML`}}}function TE(e){let t=0;return{peek:(n=0)=>e[t+n]??null,next:()=>e[t++]??null,atEnd:()=>t>=e.length}}function EE(e){let t=TE(e),n={tables:[],refs:[],enums:{},skipped:[]},r=new Map,i=new Set,a=e=>{i.has(e)||(i.add(e),n.skipped.push(e)),ZE(t)};for(;!t.atEnd();){if($E(t))continue;let e=t.peek();if(!e)break;if(!eD(e)){t.next();continue}let i=e.value.toLowerCase();if(i===`table`&&e.kind===X.identifier){t.next();let e=DE(t,r);e&&n.tables.push(e);continue}if(i===`tablepartial`&&e.kind===X.identifier){t.next();let e=DE(t,r);e&&r.set(e.name,e.columns);continue}if(i===`ref`&&e.kind===X.identifier){t.next(),n.refs.push(...NE(t));continue}if(i===`enum`&&e.kind===X.identifier){t.next(),LE(t,n.enums);continue}a(i)}return n}function DE(e,t){let{schemaName:n,name:r}=GE(e),i={schemaName:n,name:r,alias:``,comment:``,columns:[],indexes:[]},a=e.peek();if(a&&a.kind===X.identifier&&a.value.toLowerCase()===`as`&&(e.next(),i.alias=KE(e)),VE(i,RE(e)),!YE(e))return r===``?null:i;for(;!e.atEnd();){if($E(e))continue;let n=e.peek();if(!n)break;if(n.kind===X.punctuation&&n.value===`}`){e.next();break}if(n.kind===X.punctuation&&n.value===`~`){e.next();let n=t.get(KE(e));n&&i.columns.push(...n.map(e=>({...e})));continue}if(n.kind===X.identifier){let t=n.value.toLowerCase(),r=e.peek(1);if(t===`note`&&r&&Z(r,`:`)){e.next(),e.next(),i.comment=qE(e);continue}if(t===`note`&&r&&Z(r,`{`)){e.next(),e.next(),i.comment=JE(e);continue}if(t===`indexes`&&r&&Z(r,`{`)){e.next(),e.next(),i.indexes.push(...jE(e));continue}if(r&&Z(r,`{`)){e.next(),e.next(),XE(e);continue}}let r=OE(e);r&&i.columns.push(r)}return i}function OE(e){let t=e.peek();if(!t||!eD(t))return QE(e),null;e.next();let n={name:t.value,comment:``,typeName:``,typeSchemaName:``,primaryKey:!1,unique:!1,notNull:!1,autoIncrement:!1,default:``,inlineRefs:[]},r=kE(e);return n.typeName=r.name,n.typeSchemaName=r.schemaName,zE(n,RE(e)),QE(e),n.typeName===``?null:n}function kE(e){let{schemaName:t,name:n}=GE(e);if(n===``)return{name:``,schemaName:``};let r=[n],i=e.peek();i&&Z(i,`(`)&&(e.next(),r.push(`(${AE(e)})`));let a=e.peek(),o=e.peek(1);return a&&o&&Z(a,`[`)&&Z(o,`]`)&&(e.next(),e.next(),r.push(`[]`)),{name:r.join(``),schemaName:t}}function AE(e){let t=[];for(;!e.atEnd();){let n=e.next();if(!n||Z(n,`)`))break;n.kind!==X.newline&&t.push(n.kind===X.string?`'${n.value}'`:n.value)}return t.join(``)}function jE(e){let t=[];for(;!e.atEnd();){if($E(e))continue;let n=e.peek();if(!n)break;if(Z(n,`}`)){e.next();break}let r={name:``,unique:!1,primaryKey:!1,columnNames:[]};Z(n,`(`)?(e.next(),r.columnNames.push(...ME(e))):eD(n)?(e.next(),r.columnNames.push(n.value)):e.next(),BE(r,RE(e)),QE(e),r.columnNames.length!==0&&t.push(r)}return t}function ME(e){let t=[];for(;!e.atEnd();){let n=e.next();if(!n||Z(n,`)`))break;eD(n)&&t.push(n.value)}return t}function NE(e){let t=e.peek();if(t&&eD(t)){let t=e.peek(1);t&&(Z(t,`:`)||Z(t,`{`))&&e.next()}let n=e.peek();if(n&&Z(n,`:`)){e.next();let t=PE(e);return QE(e),t?[t]:[]}if(!YE(e))return QE(e),[];let r=[];for(;!e.atEnd();){if($E(e))continue;let t=e.peek();if(!t)break;if(Z(t,`}`)){e.next();break}let n=PE(e);n?r.push(n):QE(e)}return r}function PE(e){let t=IE(e),n=FE(e);if(n===``)return null;let r=IE(e);return RE(e),t.tableName===``||r.tableName===``?null:{operator:n,left:t,right:r}}function FE(e){let t=e.peek();return t?t.kind===X.operator?(e.next(),t.value.replace(CE,``)):Z(t,`-`)?(e.next(),`-`):``:``}function IE(e){let t=[],n=[];for(;!e.atEnd();){let r=e.peek();if(!r||!eD(r))break;e.next(),t.push(r.value);let i=e.peek();if(!i||!Z(i,`.`))break;e.next();let a=e.peek();if(a&&Z(a,`(`)){e.next(),n.push(...ME(e));break}}n.length===0&&t.length!==0&&n.push(t.pop());let r=t.pop()??``;return{schemaName:t.pop()??``,tableName:r,columnNames:n}}function LE(e,t){let{schemaName:n,name:r}=GE(e);if(RE(e),!YE(e)){QE(e);return}let i=[];for(;!e.atEnd();){if($E(e))continue;let t=e.peek();if(!t)break;if(Z(t,`}`)){e.next();break}eD(t)?(e.next(),i.push(t.value),RE(e)):e.next(),QE(e)}r!==``&&(t[n?`${n}.${r}`:r]=i,n&&!(r in t)&&(t[r]=i))}function RE(e){let t=e.peek();if(!t||!Z(t,`[`))return[];e.next();let n=[],r=[],i=[],a=!1,o=()=>{let e=r.join(` `).toLowerCase();(e!==``||i.length!==0)&&n.push({key:e,tokens:i}),r=[],i=[],a=!1};for(;!e.atEnd();){let t=e.next();if(!t||Z(t,`]`))break;if(Z(t,`,`)){o();continue}if(!a&&Z(t,`:`)){a=!0;continue}if(a){i.push(t);continue}if(eD(t)&&xE.test(t.value.toLowerCase())){r.push(t.value);continue}a=!0,i.push(t)}return o(),n}function zE(e,t){t.forEach(({key:t,tokens:n})=>{switch(t){case`pk`:case`primary key`:e.primaryKey=!0;break;case`unique`:e.unique=!0;break;case`not null`:e.notNull=!0;break;case`increment`:e.autoIncrement=!0;break;case`note`:e.comment=UE(n);break;case`default`:e.default=WE(n);break;case`ref`:{let t=HE(n);t&&e.inlineRefs.push(t);break}}})}function BE(e,t){t.forEach(({key:t,tokens:n})=>{switch(t){case`name`:e.name=UE(n);break;case`unique`:e.unique=!0;break;case`pk`:case`primary key`:e.primaryKey=!0}})}function VE(e,t){t.forEach(({key:t,tokens:n})=>{t===`note`&&(e.comment=UE(n))})}function HE(e){let t=TE(e),n=FE(t);if(n===``)return null;let r=IE(t);return r.tableName===``?null:{operator:n,target:r}}function UE(e){let t=e.find(e=>e.kind===X.string||e.kind===X.quoted||e.kind===X.identifier);return t?t.value:``}function WE(e){let t=e.filter(e=>e.kind!==X.newline),n=t[0];if(!n)return``;if(Z(n,`-`)&&t[1]?.kind===X.number)return`-${t[1].value}`;switch(n.kind){case X.string:return`'${n.value.replace(SE,`''`)}'`;case X.expression:case X.number:case X.identifier:case X.quoted:return n.value;default:return t.map(e=>e.value).join(``)}}function GE(e){let t=KE(e);if(t===``)return{schemaName:``,name:``};let n=e.peek();return!n||!Z(n,`.`)?{schemaName:``,name:t}:(e.next(),{schemaName:t,name:KE(e)})}function KE(e){let t=e.peek();return!t||!eD(t)?``:(e.next(),t.value)}function qE(e){let t=e.peek();return t&&(t.kind===X.string||t.kind===X.quoted)?(e.next(),t.value):``}function JE(e){let t=``;for(;!e.atEnd();){let n=e.next();if(!n||Z(n,`}`))break;t===``&&n.kind===X.string&&(t=n.value)}return t}function YE(e){let t=0;for(;e.peek(t)?.kind===X.newline;)t+=1;let n=e.peek(t);if(!n||!Z(n,`{`))return!1;for(let n=0;n<=t;n+=1)e.next();return!0}function XE(e){let t=1;for(;!e.atEnd()&&t!==0;){let n=e.next();if(!n)break;Z(n,`{`)?t+=1:Z(n,`}`)&&--t}}function ZE(e){if(YE(e)){XE(e);return}for(;!e.atEnd();){let t=e.next();if(!t||t.kind===X.newline)return;if(Z(t,`{`)){XE(e);return}}}function QE(e){for(;!e.atEnd();){let t=e.peek();if(!t)return;if(t.kind===X.newline){e.next();return}if(Z(t,`}`))return;e.next()}}function $E(e){let t=e.peek();return t&&t.kind===X.newline?(e.next(),!0):!1}function eD(e){return e.kind===X.identifier||e.kind===X.quoted}function Z(e,t){return e.kind===X.punctuation&&e.value===t}const tD={tables:[],refs:[],enums:{},skipped:[]};function nD(e,t,n){let r=wE(e),i=r.ok?r.model:tD,a=Jp({}),o=Jh(i.tables.length*100);a.settings.width=o,a.settings.height=o;let{settings:s}=n?n(a):a,c=$T(i,t,s.database);return c.settings=s,Jm(c)}const rD={[I.MariaDB]:`VARCHAR(255)`,[I.MSSQL]:`varchar(255)`,[I.MySQL]:`VARCHAR(255)`,[I.Oracle]:`VARCHAR2(255)`,[I.PostgreSQL]:`varchar(255)`,[I.SQLite]:`TEXT`,[I.Databricks]:`STRING`,[I.Snowflake]:`VARCHAR(255)`},iD={[I.MariaDB]:`INT`,[I.MSSQL]:`int`,[I.MySQL]:`INT`,[I.Oracle]:`INTEGER`,[I.PostgreSQL]:`integer`,[I.SQLite]:`INTEGER`,[I.Databricks]:`INT`,[I.Snowflake]:`INT`},aD={[I.MariaDB]:`SMALLINT`,[I.MSSQL]:`smallint`,[I.MySQL]:`SMALLINT`,[I.Oracle]:`SMALLINT`,[I.PostgreSQL]:`smallint`,[I.SQLite]:`SMALLINT`,[I.Databricks]:`SMALLINT`,[I.Snowflake]:`SMALLINT`},oD={[I.MariaDB]:`BIGINT`,[I.MSSQL]:`bigint`,[I.MySQL]:`BIGINT`,[I.Oracle]:`NUMBER(19)`,[I.PostgreSQL]:`bigint`,[I.SQLite]:`BIGINT`,[I.Databricks]:`BIGINT`,[I.Snowflake]:`BIGINT`},sD={[I.MariaDB]:`DOUBLE`,[I.MSSQL]:`float`,[I.MySQL]:`DOUBLE`,[I.Oracle]:`BINARY_DOUBLE`,[I.PostgreSQL]:`double precision`,[I.SQLite]:`REAL`,[I.Databricks]:`DOUBLE`,[I.Snowflake]:`FLOAT`},cD={[I.MariaDB]:`DECIMAL`,[I.MSSQL]:`decimal`,[I.MySQL]:`DECIMAL`,[I.Oracle]:`DECIMAL`,[I.PostgreSQL]:`numeric`,[I.SQLite]:`DECIMAL`,[I.Databricks]:`DECIMAL`,[I.Snowflake]:`DECIMAL`},lD={[I.MariaDB]:`BOOLEAN`,[I.MSSQL]:`bit`,[I.MySQL]:`BOOLEAN`,[I.Oracle]:`BOOLEAN`,[I.PostgreSQL]:`boolean`,[I.SQLite]:`BOOLEAN`,[I.Databricks]:`BOOLEAN`,[I.Snowflake]:`BOOLEAN`},uD={[I.MariaDB]:`DATE`,[I.MSSQL]:`date`,[I.MySQL]:`DATE`,[I.Oracle]:`DATE`,[I.PostgreSQL]:`date`,[I.SQLite]:`DATE`,[I.Databricks]:`DATE`,[I.Snowflake]:`DATE`},dD={[I.MariaDB]:`TIME`,[I.MSSQL]:`time`,[I.MySQL]:`TIME`,[I.Oracle]:`VARCHAR2(255)`,[I.PostgreSQL]:`time`,[I.SQLite]:`TEXT`,[I.Databricks]:`STRING`,[I.Snowflake]:`TIME`},fD={[I.MariaDB]:`DATETIME`,[I.MSSQL]:`datetime2`,[I.MySQL]:`DATETIME`,[I.Oracle]:`TIMESTAMP`,[I.PostgreSQL]:`timestamp`,[I.SQLite]:`DATETIME`,[I.Databricks]:`TIMESTAMP`,[I.Snowflake]:`TIMESTAMP_NTZ`},pD={[I.MariaDB]:`TIMESTAMP`,[I.MSSQL]:`datetimeoffset`,[I.MySQL]:`TIMESTAMP`,[I.Oracle]:`TIMESTAMP WITH TIME ZONE`,[I.PostgreSQL]:`timestamptz`,[I.SQLite]:`DATETIME`,[I.Databricks]:`TIMESTAMP`,[I.Snowflake]:`TIMESTAMP_TZ`},mD={[I.MariaDB]:`VARCHAR(255)`,[I.MSSQL]:`varchar(255)`,[I.MySQL]:`VARCHAR(255)`,[I.Oracle]:`INTERVAL DAY TO SECOND`,[I.PostgreSQL]:`interval`,[I.SQLite]:`TEXT`,[I.Databricks]:`INTERVAL DAY TO SECOND`,[I.Snowflake]:`VARCHAR(255)`},hD={[I.MariaDB]:`JSON`,[I.MSSQL]:`json`,[I.MySQL]:`JSON`,[I.Oracle]:`JSON`,[I.PostgreSQL]:`jsonb`,[I.SQLite]:`TEXT`,[I.Databricks]:`VARIANT`,[I.Snowflake]:`VARIANT`},gD={[I.MariaDB]:`UUID`,[I.MSSQL]:`uniqueidentifier`,[I.MySQL]:`CHAR(36)`,[I.Oracle]:`VARCHAR2(36)`,[I.PostgreSQL]:`uuid`,[I.SQLite]:`TEXT`,[I.Databricks]:`STRING`,[I.Snowflake]:`UUID`},_D={[I.MariaDB]:`BLOB`,[I.MSSQL]:`varbinary(max)`,[I.MySQL]:`BLOB`,[I.Oracle]:`BLOB`,[I.PostgreSQL]:`bytea`,[I.SQLite]:`BLOB`,[I.Databricks]:`BINARY`,[I.Snowflake]:`BINARY`},vD={id:rD,string:rD,boolean:lD,int:iD,float:sD,positiveint:iD,nonnegativeint:iD,unsignedint:iD,short:aD,smallint:aD,positivefloat:sD,nonnegativefloat:sD,bigint:oD,biginteger:oD,long:oD,int8:oD,safeint:oD,decimal:cD,bigdecimal:cD,numeric:cD,money:cD,datetime:fD,datetimeiso:fD,localdatetime:fD,timestamp:fD,timestamptz:pD,date:uD,localdate:uD,time:dD,localtime:dD,timetz:dD,duration:mD,iso8601duration:mD,interval:mD,json:hD,jsonb:hD,jsonobject:hD,uuid:gD,guid:gD,byte:_D,bytes:_D,bytea:_D,binary:_D,email:rD,emailaddress:rD,url:rD,uri:rD,void:rD};function yD(e,t,n){let r=rD[t]??``,i=CD(n.enums,e);return i?xD(i,t)??r:CD(n.unions,e)?r:vD[e.toLowerCase()]?.[t]??r}function bD(e,t,n){let r=CD(t.enums,e);if(r)return n!==void 0&&xD(r,n)!==void 0?``:SD(e,r);let i=CD(t.unions,e);return i?SD(e,i):``}function xD(e,t){if(t===I.MySQL||t===I.MariaDB)return`ENUM(${e.map(e=>`'${e.replace(/'/g,`''`)}'`).join(`,`)})`}function SD(e,t){return` ${e}: ${t.join(` | `)}`}function CD(e,t){let n=e[t];return Array.isArray(n)&&n.length?n:void 0}function wD(e,t,n){let r=Jp({}),i=TD(e.tables),a=new Set(e.skipped),o=e.tables.map(o=>ED(r,t,e,n,o,i,a));return jD(r,t,o),VD(r,o),r}function TD(e){let t=new Map,n=new Map;for(let r of e){t.set(r.name,r);let e=r.name.toLowerCase();n.has(e)||n.set(e,r)}return e=>t.get(e)??n.get(e.toLowerCase())??null}function ED({doc:e,collections:t},n,r,i,a,o,s){let{toWidth:c}=n,l=[],u=[];for(let e of a.fields){let{named:t}=e.typeRef;s.has(t)||(o(t)?u.push(e):l.push(e))}let d=new Set(DD(l)),f=ng(a.name),p=ng(a.comment),m=NS({name:f,comment:p,ui:{widthName:H(c(f)),widthComment:H(c(p))}}),h={name:f,source:a,table:m,columns:[],referenceFields:u};return l.forEach(e=>{AD(t,h,OD(n,r,i,m.id,e,d.has(e)))}),e.tableIds.push(m.id),M(t).collection(`tableEntities`).setOne(m),h}function DD(e){let t=e.filter(e=>e.primaryKey);if(t.length)return t;let n=e.find(e=>e.typeRef.named===`ID`&&!e.typeRef.isList);if(n)return[n];let r=e.find(e=>e.name.toLowerCase()===`id`);return r?[r]:[]}function OD({toWidth:e},t,n,r,i,a){let{named:o,nonNull:s}=i.typeRef,c=ng(i.name),l=ng(i.dataType)||yD(o,n,t),u=ng(i.default),d=kD(i,t,n);return uC({tableId:r,name:c,comment:d,dataType:l,default:u,options:(i.autoIncrement?R.autoIncrement:0)|(a?R.primaryKey:0)|(i.unique?R.unique:0)|(s?R.notNull:0),ui:{widthName:H(e(c)),widthComment:H(e(d)),widthDataType:H(e(l)),widthDefault:H(e(u)),keys:a?z.primaryKey:0}})}function kD(e,t,n){let{named:r,isList:i}=e.typeRef,a=[],o=ng(e.comment);return o&&a.push(o),i&&a.push(`list of ${r}`),`${a.join(` `)}${bD(r,t,n)}`.trim()}function AD(e,t,n){t.table.columnIds.push(n.id),t.table.seqColumnIds.push(n.id),t.columns.push(n),M(e).collection(`tableColumnEntities`).setOne(n)}function jD(e,t,n){let r=TD(n),i=[];n.forEach(e=>{e.referenceFields.forEach(t=>{let n=r(t.typeRef.named);n&&i.push({source:e,target:n,field:t,consumed:!1})})});let a={claimedColumnIds:new Set,relationshipKeys:new Set},o=i.filter(e=>!e.field.typeRef.isList);[...o.filter(e=>e.field.relationFields.length),...o.filter(e=>!e.field.relationFields.length)].forEach(n=>{if(n.consumed)return;let r=MD(i,n);n.consumed=!0,r&&(r.consumed=!0);let o=!!r?.field.typeRef.isList;PD(e,t,a,{parent:n.target,child:n.source,field:n.field,childSide:!0,relationshipType:n.field.typeRef.nonNull?o?rh.OneN:rh.OneOnly:o?rh.ZeroN:rh.ZeroOne})}),i.filter(e=>e.field.typeRef.isList).forEach(r=>{if(r.consumed)return;let o=ND(i,r);if(r.consumed=!0,o){o.consumed=!0,zD(e,t,n,r);return}PD(e,t,a,{parent:r.source,child:r.target,field:r.field,childSide:!1,relationshipType:r.field.typeRef.nonNull?rh.OneN:rh.ZeroN})})}function MD(e,t){let n=e.filter(e=>e!==t&&!e.consumed&&e.source===t.target&&e.target===t.source);if(!n.length)return null;let{relationName:r}=t.field;if(r)return n.find(e=>e.field.relationName===r)??null;if(t.source===t.target)return n.length===1?n[0]:null;let i=e.filter(e=>!e.consumed&&e.source===t.source&&e.target===t.target);return n.length===1&&i.length===1?n[0]:null}function ND(e,t){if(e.some(e=>!e.field.typeRef.isList&&(e.source===t.source&&e.target===t.target||e.source===t.target&&e.target===t.source)))return null;let n=e.filter(e=>e!==t&&!e.consumed&&e.field.typeRef.isList&&e.source===t.target&&e.target===t.source);if(!n.length)return null;let{relationName:r}=t.field;return r?n.find(e=>e.field.relationName===r)??null:n[0]}function PD(e,t,n,r){let{doc:i,collections:a}=e,{parent:o,child:s,relationshipType:c}=r,l=xw(o.columns);if(!l.length)return;let{startColumns:u,endColumns:d}=FD(e,t,n,r,l);if(!d.length)return;let f=`${o.table.id}:${s.table.id}:${d.map(e=>e.id).join(`,`)}`;if(n.relationshipKeys.has(f))return;n.relationshipKeys.add(f),d.forEach(e=>{W(e.ui.keys,z.primaryKey)?e.ui.keys|=z.foreignKey:e.ui.keys=z.foreignKey,n.claimedColumnIds.add(e.id)});let p=pS({identification:d.every(e=>W(e.ui.keys,z.primaryKey)&&W(e.ui.keys,z.foreignKey)),relationshipType:c,start:{tableId:o.table.id,columnIds:u.map(e=>e.id)},end:{tableId:s.table.id,columnIds:d.map(e=>e.id)}});i.relationshipIds.push(p.id),M(a).collection(`relationshipEntities`).setOne(p)}function FD(e,t,n,{parent:r,child:i,field:a,childSide:o},s){if(o&&a.relationFields.length){let e=[],t=[];if(a.relationFields.forEach((n,o)=>{let c=Cw(i.columns,n),l=a.relationReferences[o],u=l?Cw(r.columns,l):s[o]??null;!c||!u||(e.push(u),t.push(c))}),t.length)return{startColumns:e,endColumns:t}}let c=o?ng(a.name):pe(r.name),l=new Set,u=[],d=[];return s.forEach(o=>{let s=ID(c,r.name,o.name),f=LD(i.columns,s,e=>l.has(e)?!0:n.claimedColumnIds.has(e))??RD(e,t,i,a,o,s[0]);l.add(f.id),u.push(o),d.push(f)}),{startColumns:u,endColumns:d}}function ID(e,t,n){return[`${e}${Zv(n)}`,`${ve(e)}_${ve(n)}`,`${t}${Zv(n)}`,`${ve(t)}_${ve(n)}`,`${e}Id`,`${ve(e)}_id`]}function LD(e,t,n){for(let r of t){let t=Cw(e,r);if(t&&!n(t.id))return t}return null}function RD({collections:e},{toWidth:t},n,r,i,a){let o=Sw(n.columns,``,a),{dataType:s}=i,c=uC({tableId:n.table.id,name:o,dataType:s,options:r.typeRef.nonNull?R.notNull:0,ui:{keys:z.foreignKey,widthName:H(t(o)),widthDataType:H(t(s))}});return AD(e,n,c),c}function zD(e,t,n,r){let{doc:i,collections:a}=e,{toWidth:o}=t,s=r.source,c=r.target,l=xw(s.columns),u=xw(c.columns);if(!l.length||!u.length)return;let d=Sw(n.map(e=>e.table),``,`${s.name}_${c.name}`),f=`Junction table inferred from ${s.name} <-> ${c.name}`,p=NS({name:d,comment:f,ui:{widthName:H(o(d)),widthComment:H(o(f))}}),m={name:d,source:{name:d,comment:f,fields:[],indexes:[]},table:p,columns:[],referenceFields:[]};i.tableIds.push(p.id),M(a).collection(`tableEntities`).setOne(p),n.push(m),BD(e,t,m,s,l),BD(e,t,m,c,u)}function BD(e,{toWidth:t},n,r,i){let{doc:a,collections:o}=e,s=i.map(e=>{let i=Sw(n.columns,``,`${pe(r.name)}${Zv(e.name)}`),{dataType:a}=e,s=uC({tableId:n.table.id,name:i,dataType:a,options:R.primaryKey|R.notNull,ui:{keys:z.primaryKey|z.foreignKey,widthName:H(t(i)),widthDataType:H(t(a))}});return AD(o,n,s),s}),c=pS({identification:!0,relationshipType:rh.ZeroN,start:{tableId:r.table.id,columnIds:i.map(e=>e.id)},end:{tableId:n.table.id,columnIds:s.map(e=>e.id)}});a.relationshipIds.push(c.id),M(o).collection(`relationshipEntities`).setOne(c)}function VD({doc:e,collections:t},n){n.forEach(({source:n,table:r,columns:i})=>{n.indexes.forEach(n=>{let a=rx({name:ng(n.name),tableId:r.id,unique:n.unique}),o=[];n.fieldNames.forEach(e=>{let t=Cw(i,e);t&&o.push(bx({indexId:a.id,columnId:t.id,orderType:ah.ASC}))}),o.length&&(o.forEach(e=>{a.indexColumnIds.push(e.id),a.seqIndexColumnIds.push(e.id),M(t).collection(`indexColumnEntities`).setOne(e)}),e.indexIds.push(a.id),M(t).collection(`indexEntities`).setOne(a))})})}const HD=[`Query`,`Mutation`,`Subscription`],UD=[`PageInfo`],WD=[`Connection`,`Edge`],GD=[`_aggregate`,`_aggregate_fields`,`_mutation_response`,`_max_fields`,`_min_fields`,`_sum_fields`,`_avg_fields`,`_stddev_fields`,`_variance_fields`,`_bool_exp`,`_order_by`,`_insert_input`,`_set_input`,`_on_conflict`,`_constraint`,`_update_column`,`_select_column`],KD=[`_Service`,`_Entity`,`_Any`,`_FieldSet`],qD=[`autoincrement`,`autoincrement()`],JD=/[_A-Za-z]/,YD=/[_0-9A-Za-z]/;function XD(e){try{return{ok:!0,model:$D(ZD(e))}}catch(e){return{ok:!1,message:QD(e)}}}function ZD(e){try{return Ze(e)}catch(t){let n=vO(e);if(n===e)throw t;try{return Ze(n)}catch{throw t}}}function QD(e){let t=e instanceof Error?e.message:String(e),n=e?.locations?.[0];if(!n)return t;let r=t.replace(/^Syntax Error:\s*/,``);return`Syntax Error at line ${n.line}, column ${n.column}: ${r}`}function $D(e){let t={},n={},r=[],i=new Map,a=new Map,o=new Set;for(let s of e.definitions)switch(s.kind){case Ye.OBJECT_TYPE_DEFINITION:case Ye.OBJECT_TYPE_EXTENSION:tO(a,s);break;case Ye.INTERFACE_TYPE_DEFINITION:case Ye.INTERFACE_TYPE_EXTENSION:{let e=s.name.value,t=i.get(e)??[];t.push(...s.fields??[]),i.set(e,t);break}case Ye.SCHEMA_DEFINITION:case Ye.SCHEMA_EXTENSION:for(let e of s.operationTypes??[])o.add(e.type.name.value);break;case Ye.ENUM_TYPE_DEFINITION:t[s.name.value]=(s.values??[]).map(e=>e.name.value);break;case Ye.UNION_TYPE_DEFINITION:n[s.name.value]=(s.types??[]).map(e=>e.name.value);break;case Ye.SCALAR_TYPE_DEFINITION:r.push(s.name.value)}let s=o.size?o:new Set(HD),c=[],l=[],u=new Map;for(let e of a.values()){if(mO(e.name,s)){l.push(e.name);continue}let t=nO(e,i);if(!t.fields.length){l.push(e.name);continue}t.name!==e.name&&u.set(e.name,t.name),c.push(t)}return eO(c,u),{tables:c,enums:t,customScalars:r,unions:n,skipped:l}}function eO(e,t){if(t.size)for(let n of e)for(let e of n.fields){let n=t.get(e.typeRef.named);n&&(e.typeRef.named=n)}}function tO(e,t){let n=t.name.value,r=(t.interfaces??[]).map(e=>e.name.value),i=e.get(n);if(i){i.fieldNodes.push(...t.fields??[]),i.interfaceNames.push(...r),i.directives.push(...t.directives??[]),i.comment||=gO(t);return}e.set(n,{name:n,comment:gO(t),interfaceNames:r,fieldNodes:[...t.fields??[]],directives:[...t.directives??[]]})}function nO(e,t){let n=rO(e.fieldNodes),r=new Set(n.map(e=>e.name.value)),i=[];for(let n of e.interfaceNames)for(let e of t.get(n)??[]){let t=e.name.value;r.has(t)||(r.add(t),i.push(e))}let a={name:e.name,comment:e.comment,fields:[...i,...n].map(iO).filter(ue),indexes:[]};for(let t of e.directives)sO(a,t);return a}function rO(e){let t=new Set;return e.filter(e=>{let n=e.name.value;return!t.has(n)&&(t.add(n),!0)})}function iO(e){if(e.name.value.startsWith(`__`))return null;let t={name:e.name.value,comment:gO(e),typeRef:aO(e.type),primaryKey:!1,unique:!1,autoIncrement:!1,default:``,dataType:``,relationName:``,relationFields:[],relationReferences:[],hasArguments:(e.arguments??[]).length>0};for(let n of e.directives??[])oO(t,n);return t}function aO(e){let t=e.kind===Ye.NON_NULL_TYPE,n=t?e.type:e,r=n.kind===Ye.LIST_TYPE,i=r?n.type:n,a=r&&i.kind===Ye.NON_NULL_TYPE,o=i;for(;o.kind!==Ye.NAMED_TYPE;)o=o.type;return{named:o.name.value,nonNull:t,isList:r,itemNonNull:a}}function oO(e,t){let n=t.name.value;if(n.startsWith(`db_`)){e.dataType=cO(n,t);return}switch(n){case`id`:case`primaryKey`:e.primaryKey=!0;break;case`unique`:e.unique=!0;break;case`autoincrement`:case`autoIncrement`:e.autoIncrement=!0;break;case`default`:{let n=lO(t,`value`);if(!n)break;let r=fO(n);qD.includes(r.toLowerCase())?e.autoIncrement=!0:e.default=r;break}case`map`:{let n=uO(t,`name`)||uO(t,`value`);n&&(e.name=n);break}case`relation`:{let n=uO(t,`name`)||uO(t,`value`);n&&(e.relationName=n);let r=lO(t,`fields`);r&&(e.relationFields=pO(r));let i=lO(t,`references`);i&&(e.relationReferences=pO(i));break}case`column`:{let n=uO(t,`name`);n&&(e.name=n);let r=uO(t,`dataType`);r&&(e.dataType=r);let i=lO(t,`default`);i&&(e.default=fO(i));let a=dO(t,`autoIncrement`);a!==null&&(e.autoIncrement=a);let o=dO(t,`unique`);o!==null&&(e.unique=o);let s=dO(t,`primaryKey`);s!==null&&(e.primaryKey=s);break}}}function sO(e,t){switch(t.name.value){case`map`:{let n=uO(t,`name`)||uO(t,`value`);n&&(e.name=n);break}case`table`:{let n=uO(t,`name`);n&&(e.name=n);let r=lO(t,`comment`);r&&(e.comment=fO(r));break}case`index`:{let n=lO(t,`fields`),r=n?pO(n):[];if(!r.length)break;let i={name:uO(t,`name`),unique:dO(t,`unique`)??!1,fieldNames:r};e.indexes.push(i);break}}}function cO(e,t){let n=e.slice(3),r=t.arguments??[];return r.length?`${n}(${r.map(e=>fO(e.value)).join(`, `)})`:n}function lO(e,t){let n=(e.arguments??[]).find(e=>e.name.value===t);return n?n.value:null}function uO(e,t){let n=lO(e,t);return n?fO(n):``}function dO(e,t){let n=lO(e,t);return n?fO(n)===`true`:null}function fO(e){switch(e.kind){case Ye.STRING:case Ye.INT:case Ye.FLOAT:case Ye.ENUM:return e.value;case Ye.BOOLEAN:return e.value?`true`:`false`;case Ye.NULL:return`null`;case Ye.LIST:return e.values.map(fO).join(`, `);default:return``}}function pO(e){return(e.kind===Ye.LIST?e.values:[e]).map(fO).filter(e=>e!==``)}function mO(e,t){return t.has(e)||e.startsWith(`__`)||KD.includes(e)||UD.includes(e)||WD.some(t=>hO(e,t))||GD.some(t=>hO(e,t))}function hO(e,t){return e.length>t.length&&e.endsWith(t)}function gO(e){if(e.description)return _O(e.description.value);if(!e.loc)return``;let t=[],n=e.loc.startToken.line-1,r=e.loc.startToken.prev;for(;r&&r.kind===Xe.COMMENT&&r.line===n&&(!r.prev||r.prev.line<r.line);)t.unshift(r.value??``),--n,r=r.prev;return _O(t.join(` `))}function _O(e){return e.replace(/\s+/g,` `).trim()}function vO(e){let t=``,n=0,r=!1;for(;n<e.length;){let i=e[n];if(i===`#`){let r=xO(e,n);t+=e.slice(n,r),n=r;continue}if(i===`"`){let r=SO(e,n);t+=e.slice(n,r),n=r;continue}if(i!==`@`||!JD.test(e[n+1]??``)){t+=i,n+=1;continue}let a=bO(e,n+1),o=e.slice(n+1,a);for(;e[a]===`.`&&JD.test(e[a+1]??``);){let t=bO(e,a+1);o+=`_${e.slice(a+1,t)}`,a=t,r=!0}t+=`@${o}`,n=a;let s=wO(e,n);if(e[s]===`(`){t+=e.slice(n,s+1),n=s+1;for(let i=0;n<e.length;i++){let a=wO(e,n);if(t+=e.slice(n,a),n=a,e[n]===`)`||n>=e.length)break;let o=yO(e,n);o===-1?(t+=i===0?`value: `:`value${i}: `,r=!0):(t+=e.slice(n,o+1),n=o+1);let s=Math.max(CO(e,wO(e,n)),n+1);t+=e.slice(n,s),n=s}}}return r?t:e}function yO(e,t){if(!JD.test(e[t]??``))return-1;let n=wO(e,bO(e,t));return e[n]===`:`?n:-1}function bO(e,t){let n=t;for(;n<e.length&&YD.test(e[n]);)n+=1;return n}function xO(e,t){let n=e.indexOf(`
|
|
24
|
+
`,t);return n===-1?e.length:n}function SO(e,t){if(e.startsWith(`"""`,t)){let n=e.indexOf(`"""`,t+3);return n===-1?e.length:n+3}let n=t+1;for(;n<e.length;){let t=e[n];if(t===`\\`){n+=2;continue}if(t===`
|
|
25
|
+
`)return n;if(t===`"`)return n+1;n+=1}return n}function CO(e,t){let n=[],r=t;for(;r<e.length;){let t=e[r];if(t===`"`){r=SO(e,r);continue}if(t===`[`||t===`{`){n.push(t),r+=1;continue}if(t===`]`||t===`}`){if(!n.length)break;if(n.pop(),r+=1,!n.length)return r;continue}if(!n.length&&(t===`)`||t===`,`||t===`#`)||!n.length&&/\s/.test(t))break;r+=1}return r}function wO(e,t){let n=t;for(;n<e.length;){let t=e[n];if(t===`#`){n=xO(e,n);continue}if(!/[\s,]/.test(t))break;n+=1}return n}const TO={tables:[],enums:{},customScalars:[],unions:{},skipped:[]};function EO(e,t,n){let r=XD(e),i=r.ok?r.model:TO,a=Jp({}),o=Jh(i.tables.length*100);a.settings.width=o,a.settings.height=o;let{settings:s}=n?n(a):a,c=wD(i,t,s.database);return c.settings=s,Jm(c)}var DO={createTable:`create.table`,createIndex:`create.index`,alterTableAddUnique:`alter.table.add.unique`,alterTableAddPrimaryKey:`alter.table.add.primaryKey`,alterTableAddForeignKey:`alter.table.add.foreignKey`,commentOnTable:`comment.on.table`,commentOnColumn:`comment.on.column`},OO={asc:`ASC`,desc:`DESC`},kO={string:`string`,leftParent:`leftParent`,rightParent:`rightParent`,leftBracket:`leftBracket`,rightBracket:`rightBracket`,comma:`comma`,period:`period`,equal:`equal`,semicolon:`semicolon`},AO={doubleQuote:`"`,dash:`-`,slash:`/`,asterisk:`*`,newLine:`
|
|
26
|
+
`,singleQuote:`'`,backtick:"`",whiteSpace:/\s/,string:/\S/,breakString:/;|,|\(|\)|\[|\]|\.|=/,equal:`=`,period:`.`,comma:`,`,semicolon:`;`,leftParent:`(`,rightParent:`)`,leftBracket:`[`,rightBracket:`]`},jO=e=>t=>e===t,MO=e=>t=>e.test(t),Q={doubleQuote:jO(AO.doubleQuote),dash:jO(AO.dash),slash:jO(AO.slash),asterisk:jO(AO.asterisk),newLine:jO(AO.newLine),singleQuote:jO(AO.singleQuote),backtick:jO(AO.backtick),whiteSpace:MO(AO.whiteSpace),string:MO(AO.string),breakString:MO(AO.breakString),equal:jO(AO.equal),period:jO(AO.period),comma:jO(AO.comma),semicolon:jO(AO.semicolon),leftParent:jO(AO.leftParent),rightParent:jO(AO.rightParent),leftBracket:jO(AO.leftBracket),rightBracket:jO(AO.rightBracket)};function NO(e){let t=[],n=0,r=()=>n<e.length;for(;r();){let i=e[n];if(Q.whiteSpace(i)){let t=``;for(;r()&&Q.whiteSpace(i);)t+=i,i=e[++n];continue}if(Q.dash(i)&&Q.dash(e[n+1])){for(;r()&&!Q.newLine(i);)i=e[++n];continue}if(Q.slash(i)&&Q.asterisk(e[n+1])){for(n+=2,i=e[n];r()&&!(Q.asterisk(i)&&Q.slash(e[n+1]));)i=e[++n];n+=2;continue}if(Q.leftParent(i)){t.push({type:kO.leftParent,value:i}),n++;continue}if(Q.rightParent(i)){t.push({type:kO.rightParent,value:i}),n++;continue}if(Q.comma(i)){t.push({type:kO.comma,value:i}),n++;continue}if(Q.period(i)){t.push({type:kO.period,value:i}),n++;continue}if(Q.equal(i)){t.push({type:kO.equal,value:i}),n++;continue}if(Q.semicolon(i)){t.push({type:kO.semicolon,value:i}),n++;continue}if(Q.rightBracket(i)){t.push({type:kO.rightBracket,value:i}),n++;continue}if(Q.leftBracket(i)){let a=``;for(i=e[++n];r()&&!Q.rightBracket(i);)a+=i,i=e[++n];t.push({type:kO.string,value:a,quoted:!0}),n++;continue}if(Q.doubleQuote(i)){let a=``;for(i=e[++n];r()&&!Q.doubleQuote(i);)a+=i,i=e[++n];t.push({type:kO.string,value:a,quoted:!0}),n++;continue}if(Q.singleQuote(i)){let a=``;for(i=e[++n];r()&&!Q.singleQuote(i);)a+=i,i=e[++n];t.push({type:kO.string,value:a,quoted:!0}),n++;continue}if(Q.backtick(i)){let a=``;for(i=e[++n];r()&&!Q.backtick(i);)a+=i,i=e[++n];t.push({type:kO.string,value:a,quoted:!0}),n++;continue}if(Q.string(i)){let a=``;for(;r()&&Q.string(i)&&!Q.breakString(i)&&!(Q.dash(i)&&Q.dash(e[n+1]))&&!(Q.slash(i)&&Q.asterisk(e[n+1]));)a+=i,i=e[++n];t.push({type:kO.string,value:a});continue}n++}return t}var PO=`ARRAY.BIGINT.BINARY.BOOLEAN.BYTE.CHAR.DATE.DEC.DECIMAL.DOUBLE.FLOAT.GEOGRAPHY.GEOMETRY.INT.INTEGER.INTERVAL DAY TO HOUR.INTERVAL DAY TO MINUTE.INTERVAL DAY TO SECOND.INTERVAL DAY.INTERVAL HOUR TO MINUTE.INTERVAL HOUR TO SECOND.INTERVAL HOUR.INTERVAL MINUTE TO SECOND.INTERVAL MINUTE.INTERVAL MONTH.INTERVAL SECOND.INTERVAL YEAR TO MONTH.INTERVAL YEAR.INTERVAL.LONG.MAP.NUMERIC.OBJECT.REAL.SHORT.SMALLINT.STRING.STRUCT.TIMESTAMP_LTZ.TIMESTAMP_NTZ.TIMESTAMP.TINYINT.VARCHAR.VARIANT.VOID`.split(`.`),FO=`BIGINT.BINARY.BIT.BLOB.BOOL.BOOLEAN.CHAR BYTE.CHAR VARYING.CHAR.CHARACTER VARYING.CHARACTER.CLOB.DATE.DATETIME.DEC.DECIMAL.DOUBLE PRECISION.DOUBLE.ENUM.FIXED.FLOAT.FLOAT4.FLOAT8.GEOMETRY.GEOMETRYCOLLECTION.INET4.INET6.INT.INT1.INT2.INT3.INT4.INT8.INTEGER.JSON.LINESTRING.LONG CHAR VARYING.LONG CHARACTER VARYING.LONG VARBINARY.LONG VARCHAR.LONG VARCHARACTER.LONG.LONGBLOB.LONGTEXT.MEDIUMBLOB.MEDIUMINT.MEDIUMTEXT.MIDDLEINT.MULTILINESTRING.MULTIPOINT.MULTIPOLYGON.NATIONAL CHAR VARYING.NATIONAL CHAR.NATIONAL CHARACTER VARYING.NATIONAL CHARACTER.NATIONAL VARCHAR.NATIONAL VARCHARACTER.NCHAR VARCHAR.NCHAR VARCHARACTER.NCHAR VARYING.NCHAR.NUMBER.NUMERIC.NVARCHAR.POINT.POLYGON.RAW.REAL.SERIAL.SET.SMALLINT.SQL_TSI_YEAR.TEXT.TIME.TIMESTAMP.TINYBLOB.TINYINT.TINYTEXT.UUID.VARBINARY.VARCHAR.VARCHAR2.VARCHARACTER.VECTOR.XMLTYPE.YEAR`.split(`.`),IO=`BIGINT.BINARY VARYING.BINARY.BIT.CHAR VARYING.CHAR.CHARACTER VARYING.CHARACTER.DATE.DATETIME.DATETIME2.DATETIMEOFFSET.DEC.DECIMAL.DOUBLE PRECISION.FLOAT.GEOGRAPHY.GEOMETRY.HIERARCHYID.IMAGE.INT.INTEGER.JSON.MONEY.NATIONAL CHAR VARYING.NATIONAL CHAR.NATIONAL CHARACTER VARYING.NATIONAL CHARACTER.NATIONAL TEXT.NCHAR.NTEXT.NUMERIC.NVARCHAR.REAL.ROWVERSION.SMALLDATETIME.SMALLINT.SMALLMONEY.SQL_VARIANT.TEXT.TIME.TIMESTAMP.TINYINT.UNIQUEIDENTIFIER.VARBINARY.VARCHAR.VECTOR.XML`.split(`.`),LO=`BIGINT.BINARY.BIT.BLOB.BOOL.BOOLEAN.CHAR BYTE.CHAR.CHARACTER VARYING.CHARACTER.DATE.DATETIME.DEC.DECIMAL.DOUBLE PRECISION.DOUBLE.ENUM.FIXED.FLOAT.FLOAT4.FLOAT8.GEOMCOLLECTION.GEOMETRY.GEOMETRYCOLLECTION.INT.INT1.INT2.INT3.INT4.INT8.INTEGER.JSON.LINESTRING.LONG VARBINARY.LONG VARCHAR.LONG.LONGBLOB.LONGTEXT.MEDIUMBLOB.MEDIUMINT.MEDIUMTEXT.MIDDLEINT.MULTILINESTRING.MULTIPOINT.MULTIPOLYGON.NATIONAL CHAR VARYING.NATIONAL CHAR.NATIONAL CHARACTER VARYING.NATIONAL CHARACTER.NATIONAL VARCHAR.NCHAR VARCHAR.NCHAR.NUMERIC.NVARCHAR.POINT.POLYGON.REAL.SERIAL.SET.SMALLINT.TEXT.TIME.TIMESTAMP.TINYBLOB.TINYINT.TINYTEXT.VARBINARY.VARCHAR.VARCHARACTER.YEAR`.split(`.`),RO=`ANYDATA.BFILE.BINARY_DOUBLE.BINARY_FLOAT.BLOB.BOOL.BOOLEAN.CHAR VARYING.CHAR.CHARACTER VARYING.CHARACTER.CLOB.DATE.DEC.DECIMAL.DOUBLE PRECISION.FLOAT.INT.INTEGER.INTERVAL DAY TO SECOND.INTERVAL YEAR TO MONTH.JSON.LONG RAW.LONG VARCHAR.LONG.NATIONAL CHAR VARYING.NATIONAL CHAR.NATIONAL CHARACTER VARYING.NATIONAL CHARACTER.NCHAR VARYING.NCHAR.NCLOB.NUMBER.NUMERIC.NVARCHAR2.RAW.REAL.ROWID.SDO_GEOMETRY.SDO_GEORASTER.SDO_TOPO_GEOMETRY.SMALLINT.TIMESTAMP WITH LOCAL TIME ZONE.TIMESTAMP WITH TIME ZONE.TIMESTAMP.URIType.UROWID.VARCHAR.VARCHAR2.VECTOR.XMLType`.split(`.`),zO=`BIGINT.BIGSERIAL.BIT VARYING.BIT.BOOL.BOOLEAN.BOX.BPCHAR.BYTEA.CHAR.CHARACTER VARYING.CHARACTER.CID.CIDR.CIRCLE.DATE.DATEMULTIRANGE.DATERANGE.DECIMAL.DOUBLE PRECISION.FLOAT.FLOAT4.FLOAT8.INET.INT.INT2.INT4.INT4MULTIRANGE.INT4RANGE.INT8.INT8MULTIRANGE.INT8RANGE.INTEGER.INTERVAL DAY TO HOUR.INTERVAL DAY TO MINUTE.INTERVAL DAY TO SECOND.INTERVAL DAY.INTERVAL HOUR TO MINUTE.INTERVAL HOUR TO SECOND.INTERVAL HOUR.INTERVAL MINUTE TO SECOND.INTERVAL MINUTE.INTERVAL MONTH.INTERVAL SECOND.INTERVAL YEAR TO MONTH.INTERVAL YEAR.INTERVAL.JSON.JSONB.JSONPATH.LINE.LSEG.MACADDR.MACADDR8.MONEY.NAME.NUMERIC.NUMMULTIRANGE.NUMRANGE.OID.PATH.PG_LSN.PG_SNAPSHOT.POINT.POLYGON.REAL.REGCLASS.REGCOLLATION.REGCONFIG.REGDICTIONARY.REGNAMESPACE.REGOPER.REGOPERATOR.REGPROC.REGPROCEDURE.REGROLE.REGTYPE.SERIAL.SERIAL2.SERIAL4.SERIAL8.SMALLINT.SMALLSERIAL.TEXT.TID.TIME WITH TIME ZONE.TIME WITHOUT TIME ZONE.TIME.TIMESTAMP WITH TIME ZONE.TIMESTAMP WITHOUT TIME ZONE.TIMESTAMP.TIMESTAMPTZ.TIMETZ.TSMULTIRANGE.TSQUERY.TSRANGE.TSTZMULTIRANGE.TSTZRANGE.TSVECTOR.TXID_SNAPSHOT.UUID.VARBIT.VARCHAR.XID.XID8.XML`.split(`.`),BO=`ARRAY.BIGINT.BINARY.BOOLEAN.BYTEINT.CHAR VARYING.CHAR.CHARACTER.DATE.DATETIME.DEC.DECFLOAT.DECIMAL.DOUBLE PRECISION.DOUBLE.FILE.FLOAT.FLOAT4.FLOAT8.GEOGRAPHY.GEOMETRY.INT.INTEGER.MAP.NCHAR VARYING.NCHAR.NUMBER.NUMERIC.NVARCHAR.NVARCHAR2.OBJECT.REAL.SMALLINT.STRING.TEXT.TIME.TIMESTAMP WITH LOCAL TIME ZONE.TIMESTAMP WITH TIME ZONE.TIMESTAMP WITHOUT TIME ZONE.TIMESTAMP_LTZ.TIMESTAMP_NTZ.TIMESTAMP_TZ.TIMESTAMP.TIMESTAMPLTZ.TIMESTAMPNTZ.TIMESTAMPTZ.TINYINT.UNKNOWN.UUID.VARBINARY.VARCHAR.VARCHAR2.VARIANT.VECTOR`.split(`.`),VO=`BIGINT.BLOB.BOOLEAN.CHARACTER.CLOB.DATE.DATETIME.DECIMAL.DOUBLE PRECISION.DOUBLE.FLOAT.INT.INT2.INT8.INTEGER.MEDIUMINT.NATIVE CHARACTER.NCHAR.NUMERIC.NVARCHAR.REAL.SMALLINT.TEXT.TINYINT.UNSIGNED BIG INT.VARCHAR.VARYING CHARACTER`.split(`.`),HO=e=>t=>n=>t[n]?t[n].type===e:!1,$=e=>{let t=e.toUpperCase();return e=>n=>{let r=e[n];return r?!r.quoted&&r.value.toUpperCase()===t:!1}},UO=HO(kO.string),WO=HO(kO.equal),GO=HO(kO.period),KO=HO(kO.comma),qO=HO(kO.semicolon),JO=HO(kO.leftParent),YO=HO(kO.rightParent);kO.leftBracket,kO.rightBracket;var XO=$(`CREATE`),ZO=$(`ALTER`),QO=$(`DROP`),$O=$(`USE`),ek=$(`RENAME`),tk=$(`DELETE`),nk=$(`SELECT`),rk=$(`TABLE`),ik=$(`INDEX`),ak=$(`UNIQUE`),ok=$(`ADD`),sk=$(`PRIMARY`),ck=$(`KEY`),lk=$(`CONSTRAINT`),uk=$(`FOREIGN`),dk=$(`NOT`),fk=$(`NULL`),pk=$(`DEFAULT`),mk=$(`COMMENT`),hk=$(`REFERENCES`),gk=$(`ASC`),_k=$(`DESC`),vk=$(`ON`),yk=$(`AUTO_INCREMENT`),bk=$(`AUTOINCREMENT`),xk=$(`IF`),Sk=$(`EXISTS`),Ck=$(`ONLY`),wk=$(`IS`),Tk=$(`COLUMN`),Ek=$(`CHARACTER`),Dk=$(`SET`),Ok=$(`COLLATE`),kk=$(`ENFORCED`),Ak=$(`RELY`),jk=$(`NORELY`),Mk=$(`DEFERRABLE`),Nk=$(`INITIALLY`),Pk=$(`DEFERRED`),Fk=$(`IMMEDIATE`),Ik=$(`IDENTITY`),Lk=$(`FUNCTION`),Rk=$(`CLUSTER`),zk=$(`BY`),Bk=$(`FULLTEXT`),Vk=$(`SPATIAL`),Hk=e=>{let t=kk(e),n=Ak(e),r=jk(e),i=Mk(e),a=Nk(e),o=Pk(e),s=Fk(e);return e=>t(e)||n(e)||r(e)||i(e)||a(e)||o(e)||s(e)},Uk=[[`SET`,`NULL`],[`SET`,`DEFAULT`],[`NO`,`ACTION`],[`CASCADE`],[`RESTRICT`]],Wk=[`FULL`,`PARTIAL`,`SIMPLE`],Gk=e=>{let t=t=>{let n=e[t];return n&&n.type===kO.string&&!n.quoted?n.value.toUpperCase():``};return e=>t(e)===`ON`&&[`DELETE`,`UPDATE`].includes(t(e+1))?2+(Uk.find(n=>n.every((n,r)=>t(e+2+r)===n))?.length??0):t(e)===`MATCH`&&Wk.includes(t(e+1))?2:0},Kk=e=>{let t=Bk(e),n=Vk(e),r=ik(e),i=ck(e);return e=>(t(e)||n(e))&&(r(e+1)||i(e+1))},qk=[`ARRAY`,`MAP`,`STRUCT`],Jk=e=>{let t=UO(e),n=e=>{let t=0;for(let n of e)n===`<`?t++:n===`>`&&t--;return t};return r=>{let i=e[r];if(!i||i.quoted||!t(r))return 0;let a=i.value.indexOf(`<`);if(a===-1||!qk.includes(i.value.slice(0,a).toUpperCase()))return 0;let o=0;for(let t=r;t<e.length;t++)if(o+=n(e[t].value),o<=0)return t-r+1;return e.length-r}},Yk=e=>{let t=yk(e),n=bk(e),r=Ik(e);return e=>t(e)||n(e)||r(e)},Xk=e=>{let t=Rk(e),n=zk(e);return e=>t(e)&&n(e+1)},Zk=e=>{let t=mk(e),n=vk(e);return e=>t(e)&&n(e+1)},Qk=e=>{let t=Zk(e),n=rk(e);return e=>t(e)&&n(e+2)},$k=e=>{let t=Zk(e),n=Tk(e);return e=>t(e)&&n(e+2)},eA=e=>{let t=XO(e),n=ZO(e),r=QO(e),i=$O(e),a=ek(e),o=tk(e),s=nk(e),c=Zk(e);return e=>t(e)||n(e)||r(e)||i(e)||a(e)||o(e)||s(e)||c(e)},tA=[`OR`,`REPLACE`,`TRANSIENT`,`TEMPORARY`,`TEMP`,`LOCAL`,`GLOBAL`,`VOLATILE`,`UNLOGGED`,`HYBRID`,`ICEBERG`,`DYNAMIC`,`EXTERNAL`],nA=e=>{let t=XO(e),n=rk(e),r=UO(e),i=Lk(e),a=xk(e),o=dk(e),s=Sk(e);return c=>{if(!t(c))return 0;let l=c+1;for(;l<e.length&&!n(l);){let t=e[l];if(!r(l)||t.quoted||!tA.includes(t.value.toUpperCase()))return 0;l++}return!n(l)||i(l+1)?0:(l++,a(l)&&o(l+1)&&s(l+2)&&(l+=3),l-c)}},rA=e=>{let t=Ek(e),n=Dk(e);return e=>t(e)&&n(e+1)},iA=e=>{let t=nA(e);return e=>t(e)>0},aA=e=>{let t=XO(e),n=ik(e),r=ak(e);return e=>t(e)&&r(e+1)&&n(e+2)},oA=e=>{let t=XO(e),n=ik(e),r=aA(e);return e=>t(e)&&n(e+1)||r(e)},sA=e=>{let t=ZO(e),n=rk(e);return e=>t(e)&&n(e+1)},cA=e=>{let t=UO(e),n=GO(e);return e=>{if(!t(e))return 0;let r=e+1;for(;n(r)&&t(r+1);)r+=2;return r-e}},lA=e=>{let t=sA(e),n=Ck(e),r=ok(e),i=lk(e),a=UO(e),o=cA(e),s=(e,t)=>{let n=t,s=o(n);return!s||(n+=s,!r(n))?0:(n++,i(n)&&a(n+1)&&(n+=2),n-e)};return e=>{if(!t(e))return{length:0,only:!1};let r=e+2;if(n(r)){let t=s(e,r+1);if(t)return{length:t,only:!0}}return{length:s(e,r),only:!1}}},uA=e=>{let t=lA(e);return e=>t(e).length},dA=e=>{let t=lA(e);return e=>t(e).only},fA=e=>{let t=uA(e),n=sk(e),r=ck(e);return e=>{let i=t(e);return i>0&&n(e+i)&&r(e+i+1)}},pA=e=>{let t=uA(e),n=uk(e),r=ck(e);return e=>{let i=t(e);return i>0&&n(e+i)&&r(e+i+1)}},mA=e=>{let t=uA(e),n=ak(e);return e=>{let r=t(e);return r>0&&n(e+r)}},hA=Array.from(new Set([...PO,...FO,...IO,...LO,...RO,...zO,...BO,...VO].map(e=>e.toUpperCase()))),gA=(e=>{let t=new Map;for(let n of e){let e=n.split(` `),r=t.get(e[0])??[];r.push(e),t.set(e[0],r)}for(let e of t.values())e.sort((e,t)=>t.length-e.length);return t})(hA),_A=e=>{let t=UO(e),n=JO(e),r=YO(e),i=t=>{let i=0;for(let a=t;a<e.length;a++)if(n(a))i++;else if(r(a)&&(i--,i===0))return a+1;return e.length},a=(r,a)=>{let o=r;for(let[r,s]of a.entries()){let a=e[o];if(!a||!t(o)||r>0&&a.quoted||a.value.toUpperCase()!==s)return 0;o++,n(o)&&(o=i(o))}return o-r};return n=>{let r=e[n];if(!r||!t(n))return 0;let i=r.value.toUpperCase();for(let e of gA.get(i)??[]){let t=a(n,e);if(t)return t}return+!!hA.includes(i)}};function vA(e,t){let n=eA(e),r=UO(e),i=JO(e),a=YO(e),o=GO(e),s=qO(e),c=WO(e),l=mk(e),u=Xk(e),d=nA(e),f=()=>t.value<e.length,p={type:DO.createTable,name:``,comment:``,columns:[],indexes:[],foreignKeys:[]},m=d(t.value);t.value+=m===0?2:m;let h=!1,g=!0;for(;f()&&!n(t.value);){let n=e[t.value];if(s(t.value)){t.value++;break}if(p.name&&u(t.value)){if(t.value+=2,r(t.value)&&i(t.value+1)&&t.value++,i(t.value)){let e=0;for(;f();){if(i(t.value))e++;else if(a(t.value)&&(e--,e===0)){t.value++;break}t.value++}}continue}if(i(t.value)){if(t.value++,h||!g){let e=1;for(;f()&&e>0;)i(t.value)?e++:a(t.value)&&e--,t.value++;continue}let{columns:n,indexes:r,foreignKeys:o}=yA(e,t);p.columns=n,p.indexes=r,p.foreignKeys=o,h=!0;continue}if(r(t.value)&&!p.name){for(p.name=n.value,g=!0,t.value++;o(t.value);){if(!r(t.value+1)){t.value++;break}p.name=e[t.value+1].value,t.value+=2}continue}if(l(t.value)){n=e[++t.value],c(t.value)&&(n=e[++t.value]),r(t.value)&&(p.comment=n.value,t.value++),g=!1;continue}g=!1,t.value++}return p}function yA(e,t){let n=UO(e),r=JO(e),i=YO(e),a=KO(e),o=lk(e),s=ik(e),c=sk(e),l=uk(e),u=Yk(e),d=ak(e),f=fk(e),p=dk(e),m=pk(e),h=mk(e),g=_k(e),_=gk(e),v=ck(e),y=WO(e),ee=rA(e),te=Ok(e),ne=Hk(e),re=_A(e),ie=Jk(e),ae=Gk(e),b=Kk(e),oe=()=>t.value<e.length,se=e=>o(e)||c(e)||l(e)||d(e)||s(e)||v(e)||b(e),ce=()=>{let o=[],s={name:``,sort:OO.asc},c=!1;for(t.value++;oe()&&!i(t.value);){if(r(t.value)){c||=!s.name;let e=0;for(;oe();){if(r(t.value))e++;else if(i(t.value)&&--e===0)break;t.value++}}n(t.value)&&!g(t.value)&&!_(t.value)&&(s.name=e[t.value].value),g(t.value)&&(s.sort=OO.desc),a(t.value)&&(o.push(s),s={name:``,sort:OO.asc}),t.value++}return s.name!==``&&o.push(s),t.value++,c?[]:o},le=[],x=[],ue=[],S=[],de=[],C={name:``,dataType:``,default:``,comment:``,primaryKey:!1,autoIncrement:!1,unique:!1,nullable:!0},fe=!1;for(;oe();){let g=e[t.value],_=ie(t.value);if(_){let n=t.value+_,r=[];for(;t.value<n;)r.push(a(t.value)?`,`:e[t.value].value),t.value++;C.dataType=r.reduce((e,t)=>!e||t===`,`?e+t:`${e} ${t}`,``);continue}let pe=ae(t.value);if(pe){t.value+=pe;continue}if(!C.name&&se(t.value)&&(fe=!0),fe&&b(t.value)){t.value++;continue}if(n(t.value)&&!fe&&!C.name&&!p(t.value)&&!ne(t.value)){C.name=g.value,t.value++;continue}if(r(t.value)){let e=0;for(;oe();){if(r(t.value))e++;else if(i(t.value)&&(e--,e===0)){t.value++;break}t.value++}continue}if(o(t.value)){g=e[++t.value],n(t.value)&&t.value++;continue}if(c(t.value)){if(g=e[++t.value],v(t.value)){if(g=e[++t.value],fe&&n(t.value)&&(g=e[++t.value]),r(t.value)){for(g=e[++t.value];oe()&&!i(t.value);)n(t.value)&&S.push(g.value.toUpperCase()),g=e[++t.value];t.value++}else C.primaryKey=!0}continue}if(l(t.value)){let n=bA(e,t);n&&ue.push(n);continue}if(s(t.value)||v(t.value)){if(g=e[++t.value],n(t.value)){let n=g.value;if(g=e[++t.value],r(t.value)){let e=ce();e.length&&x.push({name:n,unique:!1,columns:e})}}continue}if(d(t.value)){g=e[++t.value];let a=s(t.value);(v(t.value)||a)&&(g=e[++t.value]);let o=``;if(!C.name&&n(t.value)&&(o=g.value,g=e[++t.value]),a&&o&&r(t.value)){let e=ce();e.length>1?x.push({name:o,unique:!0,columns:e}):de.push(...e.map(e=>e.name.toUpperCase()));continue}if(r(t.value)){for(g=e[++t.value];oe()&&!i(t.value);)n(t.value)&&de.push(g.value.toUpperCase()),g=e[++t.value];t.value++}else C.unique=!0;continue}if(p(t.value)){g=e[++t.value],f(t.value)?(C.nullable=!1,t.value++):ne(t.value)&&t.value++;continue}if(ne(t.value)){t.value++;continue}if(m(t.value)){g=e[++t.value],n(t.value)&&(C.default=g.quoted?`'${g.value.replaceAll(`'`,`''`)}'`:g.value,t.value++);continue}if(h(t.value)){g=e[++t.value],y(t.value)&&(g=e[++t.value]),n(t.value)&&(C.comment=g.value,t.value++);continue}if(u(t.value)){C.autoIncrement=!0,t.value++;continue}if(ee(t.value)){t.value+=2,n(t.value)&&t.value++;continue}if(te(t.value)){t.value++,y(t.value)&&t.value++,n(t.value)&&t.value++;continue}let me=re(t.value);if(me&&(fe||C.dataType)){t.value+=me;continue}if(me){let a=t.value+me,o=``,s=0;for(;t.value<a;)g=e[t.value],r(t.value)?(o+=`(`,s++):i(t.value)?(o+=`)`,s--):o+=s?n(t.value)&&(n(t.value-1)||i(t.value-1))?` ${g.value}`:g.value:o?` ${g.value}`:g.value,t.value++;for(;s>0;)o+=`)`,s--;C.dataType=o;continue}if(a(t.value)){(C.name||C.dataType)&&le.push(C),C={name:``,dataType:``,default:``,comment:``,primaryKey:!1,autoIncrement:!1,unique:!1,nullable:!0},fe=!1,t.value++;continue}if(i(t.value)){t.value++;break}t.value++}return!le.includes(C)&&(C.name||C.dataType)&&le.push(C),le.forEach(e=>{S.includes(e.name.toUpperCase())&&(e.primaryKey=!0),de.includes(e.name.toUpperCase())&&(e.unique=!0)}),{columns:le,indexes:x,foreignKeys:ue}}function bA(e,t){let n=UO(e),r=JO(e),i=YO(e),a=hk(e),o=GO(e),s=ck(e),c=()=>t.value<e.length,l={columnNames:[],refTableName:``,refColumnNames:[]},u=e[++t.value];if(s(t.value)){if(u=e[++t.value],r(t.value)){for(u=e[++t.value];c()&&!i(t.value);)n(t.value)&&l.columnNames.push(u.value),u=e[++t.value];u=e[++t.value]}if(a(t.value)&&(u=e[++t.value],n(t.value))){for(l.refTableName=u.value,t.value++;o(t.value);){if(!n(t.value+1)){t.value++;break}l.refTableName=e[t.value+1].value,t.value+=2}if(u=e[t.value],r(t.value)){for(u=e[++t.value];c()&&!i(t.value);)n(t.value)&&l.refColumnNames.push(u.value),u=e[++t.value];u=e[++t.value]}}if(l.columnNames.length&&l.columnNames.length===l.refColumnNames.length)return l}return null}function xA(e,t){let n=eA(e),r=qO(e),i=UO(e),a=lk(e),o=GO(e),s=rk(e),c=uk(e),l=dA(e)(t.value),u=()=>t.value<e.length,d={type:DO.alterTableAddForeignKey,name:``,columnNames:[],refTableName:``,refColumnNames:[]};for(t.value++;u()&&!n(t.value);){let n=e[t.value];if(r(t.value)){t.value++;break}if(s(t.value)){if(n=e[++t.value],l&&(n=e[++t.value]),i(t.value))for(d.name=n.value,t.value++;o(t.value);){if(!i(t.value+1)){t.value++;break}d.name=e[t.value+1].value,t.value+=2}continue}if(a(t.value)){n=e[++t.value],i(t.value)&&t.value++;continue}if(c(t.value)){let n=bA(e,t);n&&(d.columnNames=n.columnNames,d.refTableName=n.refTableName,d.refColumnNames=n.refColumnNames);continue}t.value++}return d}function SA(e,t){let n=eA(e),r=qO(e),i=UO(e),a=JO(e),o=YO(e),s=lk(e),c=sk(e),l=GO(e),u=ck(e),d=rk(e),f=dA(e)(t.value),p=()=>t.value<e.length,m={type:DO.alterTableAddPrimaryKey,name:``,columnNames:[]};for(t.value++;p()&&!n(t.value);){let n=e[t.value];if(r(t.value)){t.value++;break}if(d(t.value)){if(n=e[++t.value],f&&(n=e[++t.value]),i(t.value))for(m.name=n.value,t.value++;l(t.value);){if(!i(t.value+1)){t.value++;break}m.name=e[t.value+1].value,t.value+=2}continue}if(s(t.value)){n=e[++t.value],i(t.value)&&t.value++;continue}if(c(t.value)){if(n=e[++t.value],u(t.value)&&(n=e[++t.value],a(t.value))){for(n=e[++t.value];p()&&!o(t.value);)i(t.value)&&m.columnNames.push(n.value),n=e[++t.value];n=e[++t.value]}continue}t.value++}return m}function CA(e,t){let n=eA(e),r=qO(e),i=UO(e),a=lk(e),o=GO(e),s=rk(e),c=ak(e),l=JO(e),u=YO(e),d=dA(e)(t.value),f=()=>t.value<e.length,p={type:DO.alterTableAddUnique,name:``,columnNames:[]};for(t.value++;f()&&!n(t.value);){let n=e[t.value];if(r(t.value)){t.value++;break}if(s(t.value)){if(n=e[++t.value],d&&(n=e[++t.value]),i(t.value))for(p.name=n.value,t.value++;o(t.value);){if(!i(t.value+1)){t.value++;break}p.name=e[t.value+1].value,t.value+=2}continue}if(a(t.value)){n=e[++t.value],i(t.value)&&t.value++;continue}if(c(t.value)){if(n=e[++t.value],l(t.value)){for(n=e[++t.value];f()&&!u(t.value);)i(t.value)&&p.columnNames.push(n.value),n=e[++t.value];t.value++}continue}t.value++}return p}function wA(e,t){let n=eA(e),r=UO(e),i=GO(e),a=qO(e),o=wk(e),s=fk(e),c=()=>t.value<e.length,l={type:DO.commentOnColumn,tableName:``,columnName:``,comment:``};t.value+=3;let u=[],d=!1;for(;c()&&!n(t.value);){let n=e[t.value];if(a(t.value)){t.value++;break}if(o(t.value)){if(d=!0,n=e[++t.value],s(t.value)){t.value++;continue}r(t.value)&&(l.comment=n.value,t.value++);continue}if(i(t.value)){t.value++;continue}if(r(t.value)&&!d){u.push(n.value),t.value++;continue}t.value++}return l.columnName=u.length?u[u.length-1]:``,l.tableName=u.length>1?u[u.length-2]:``,l}function TA(e,t){let n=eA(e),r=UO(e),i=GO(e),a=qO(e),o=wk(e),s=fk(e),c=()=>t.value<e.length,l={type:DO.commentOnTable,name:``,comment:``};t.value+=3;let u=!1;for(;c()&&!n(t.value);){let n=e[t.value];if(a(t.value)){t.value++;break}if(o(t.value)){if(u=!0,n=e[++t.value],s(t.value)){t.value++;continue}r(t.value)&&(l.comment=n.value,t.value++);continue}if(i(t.value)){t.value++;continue}if(r(t.value)&&!u){l.name=n.value,t.value++;continue}t.value++}return l}function EA(e,t){let n=eA(e),r=qO(e),i=ak(e),a=UO(e),o=JO(e),s=YO(e),c=KO(e),l=ik(e),u=vk(e),d=_k(e),f=gk(e),p=aA(e),m=()=>t.value<e.length,h={type:DO.createIndex,name:``,unique:i(t.value+1),tableName:``,columns:[]};for(t.value+=p(t.value)?2:1;m()&&!n(t.value);){let n=e[t.value];if(r(t.value)){t.value++;break}if(l(t.value)){n=e[++t.value],a(t.value)&&(h.name=n.value);continue}if(u(t.value)){if(n=e[++t.value],a(t.value)&&(h.tableName=n.value,n=e[++t.value],o(t.value))){n=e[++t.value];let r={name:``,sort:OO.asc};for(;m()&&!s(t.value);)a(t.value)&&!d(t.value)&&!f(t.value)&&(r.name=n.value),d(t.value)&&(r.sort=OO.desc),c(t.value)&&(h.columns.push(r),r={name:``,sort:OO.asc}),n=e[++t.value];!h.columns.includes(r)&&r.name!==``&&h.columns.push(r),t.value++}continue}t.value++}return h}function DA(e){let t=[],n={value:0},r=()=>n.value<e.length,i=iA(e),a=oA(e),o=fA(e),s=pA(e),c=mA(e),l=Qk(e),u=$k(e);for(;r();){if(i(n.value)){t.push(vA(e,n));continue}if(a(n.value)){t.push(EA(e,n));continue}if(o(n.value)){t.push(SA(e,n));continue}if(s(n.value)){t.push(xA(e,n));continue}if(c(n.value)){t.push(CA(e,n));continue}if(l(n.value)){t.push(TA(e,n));continue}if(u(n.value)){t.push(wA(e,n));continue}n.value++}return t}var OA=e=>DA(NO(e));function kA(e,t,n){let r=Jp({}),i=jA(AA(OA(e))),a=Jh(i.length*100);return r.settings.width=a,r.settings.height=a,i.forEach(e=>MA(r,e,t)),NA(r,i),PA(r,i),Jm(n?n(r):r)}function AA(e){let t={tables:[],indexes:[],primaryKeys:[],foreignKeys:[],uniques:[],tableComments:[],columnComments:[]};for(let n of e)switch(n.type){case DO.createTable:n.name&&t.tables.push(n);break;case DO.createIndex:n.tableName&&n.columns.length&&t.indexes.push(n);break;case DO.alterTableAddPrimaryKey:n.name&&n.columnNames.length&&t.primaryKeys.push(n);break;case DO.alterTableAddForeignKey:n.name&&n.columnNames.length&&n.refTableName&&n.refColumnNames.length&&n.columnNames.length===n.refColumnNames.length&&t.foreignKeys.push(n);break;case DO.alterTableAddUnique:n.name&&n.columnNames.length&&t.uniques.push(n);break;case DO.commentOnTable:n.name&&t.tableComments.push(n);break;case DO.commentOnColumn:n.tableName&&n.columnName&&t.columnComments.push(n)}return t}function jA({tables:e,indexes:t,primaryKeys:n,foreignKeys:r,uniques:i,tableComments:a,columnComments:o}){return t.forEach(t=>{let n=Cw(e,t.tableName);n&&n.indexes.push({name:t.name,unique:t.unique,columns:t.columns})}),n.forEach(t=>{let n=Cw(e,t.name);n&&t.columnNames.forEach(e=>{let t=Cw(n.columns,e);t&&(t.primaryKey=!0)})}),i.forEach(t=>{let n=Cw(e,t.name);n&&t.columnNames.forEach(e=>{let t=Cw(n.columns,e);t&&(t.unique=!0)})}),r.forEach(t=>{let n=Cw(e,t.name);n&&n.foreignKeys.push({columnNames:t.columnNames,refTableName:t.refTableName,refColumnNames:t.refColumnNames})}),a.forEach(({name:t,comment:n})=>{let r=Cw(e,t);r&&(r.comment=n)}),o.forEach(({tableName:t,columnName:n,comment:r})=>{let i=Cw(e,t);if(!i)return;let a=Cw(i.columns,n);a&&(a.comment=r)}),e}function MA({doc:e,collections:t},n,{toWidth:r}){let i=NS({name:n.name,comment:n.comment,ui:{widthName:H(r(n.name)),widthComment:H(r(n.comment))}});n.columns.forEach(e=>{let n=uC({tableId:i.id,name:e.name,comment:e.comment,dataType:e.dataType,default:e.default,options:(e.autoIncrement?R.autoIncrement:0)|(e.primaryKey?R.primaryKey:0)|(e.unique?R.unique:0)|(e.nullable?0:R.notNull),ui:{widthName:H(r(e.name)),widthComment:H(r(e.comment)),widthDataType:H(r(e.dataType)),widthDefault:H(r(e.default)),keys:e.primaryKey?z.primaryKey:0}});i.columnIds.push(n.id),i.seqColumnIds.push(n.id),M(t).collection(`tableColumnEntities`).setOne(n)}),e.tableIds.push(i.id),M(t).collection(`tableEntities`).setOne(i)}function NA({doc:e,collections:t},n){let r=M(t).collection(`tableEntities`).selectByIds(e.tableIds),i=M(t).collection(`tableColumnEntities`);n.forEach(n=>{if(!n.foreignKeys.length)return;let a=Cw(r,n.name);if(!a)return;let o=i.selectByIds(a.columnIds);n.foreignKeys.forEach(n=>{let s=Cw(r,n.refTableName);if(!s)return;let c=i.selectByIds(s.columnIds),l=[],u=[];n.refColumnNames.forEach(e=>{let t=Cw(c,e);t&&l.push(t)}),n.columnNames.forEach(e=>{let t=Cw(o,e);t&&(u.push(t),W(t.ui.keys,z.primaryKey)?t.ui.keys|=z.foreignKey:t.ui.keys=z.foreignKey)});let d=pS({identification:!u.some(e=>!(W(e.ui.keys,z.primaryKey)&&W(e.ui.keys,z.foreignKey))),relationshipType:rh.ZeroN,start:{tableId:s.id,columnIds:l.map(e=>e.id)},end:{tableId:a.id,columnIds:u.map(e=>e.id)}});e.relationshipIds.push(d.id),M(t).collection(`relationshipEntities`).setOne(d)})})}function PA({doc:e,collections:t},n){let r=M(t).collection(`tableEntities`).selectByIds(e.tableIds);n.forEach(n=>{n.indexes.forEach(i=>{let a=Cw(r,n.name);if(!a)return;let o=M(t).collection(`tableColumnEntities`).selectByIds(a.columnIds),s=[],c=rx({name:i.name,tableId:a.id,unique:i.unique});i.columns.forEach(e=>{let t=Cw(o,e.name);if(!t)return;let n=bx({indexId:c.id,columnId:t.id,orderType:e.sort===OO.asc?ah.ASC:ah.DESC});s.push(n)}),s.length!==0&&(s.forEach(e=>{c.indexColumnIds.push(e.id),c.seqIndexColumnIds.push(e.id),M(t).collection(`indexColumnEntities`).setOne(e)}),e.indexIds.push(c.id),M(t).collection(`indexEntities`).setOne(c))})})}function FA({doc:e,collections:t},n){let r=B(n);return M(t).collection(`relationshipEntities`).selectByIds(e.relationshipIds).filter(({start:e,end:t})=>r(e.tableId)&&r(t.tableId)).map(({relationshipType:e,start:t,end:n})=>({relationshipType:e,start:{tableId:t.tableId,columnIds:[...t.columnIds]},end:{tableId:n.tableId,columnIds:[...n.columnIds]}}))}function IA({doc:e,collections:t},n){let r=B(n),i=M(t).collection(`indexColumnEntities`),a=[];for(let n of M(t).collection(`indexEntities`).selectByIds(e.indexIds)){if(!r(n.tableId))continue;let e=[],t=!0;for(let r of n.indexColumnIds){let n=i.selectById(r);if(!n){t=!1;break}e.push({columnId:n.columnId,orderType:n.orderType})}t&&a.push({tableId:n.tableId,name:n.name,unique:n.unique,indexColumns:e})}return a}new TextEncoder;function LA({tables:e,columns:t,memos:n,relationships:r,indexes:i},a){let o=[],s=[],c=[],l=new Map(t.map(e=>[e.sourceId,e])),u=new Map,d=new Map;for(let t of e){let e=a.get(t.sourceId);if(!e)continue;let n=qe();s.push(n),u.set(t.sourceId,n),o.push(PS({id:n,ui:{x:e.x,y:e.y,zIndex:e.zIndex,color:t.ui.color}}),HS({id:n,value:t.name}),WS({id:n,value:t.comment}));for(let e of t.columnIds){let t=l.get(e);if(!t)continue;let r={id:qe(),tableId:n};d.set(e,r.id),o.push(dC(r),hC({...r,value:t.name}),yC({...r,value:t.dataType}),xC({...r,value:t.default}),_C({...r,value:t.comment}),TC({...r,value:W(t.options,R.primaryKey)}),kC({...r,value:W(t.options,R.notNull)}),DC({...r,value:W(t.options,R.unique)}),CC({...r,value:W(t.options,R.autoIncrement)}))}}for(let e of r){let t=u.get(e.start.tableId),n=u.get(e.end.tableId);if(!t||!n)continue;let r=RA(e.start.columnIds,d),i=RA(e.end.columnIds,d);!r||!i||o.push(mS({id:qe(),relationshipType:e.relationshipType,start:{tableId:t,columnIds:r},end:{tableId:n,columnIds:i}}))}for(let e of i){let t=u.get(e.tableId);if(!t)continue;let n=RA(e.indexColumns.map(({columnId:e})=>e),d);if(!n)continue;let r=qe();o.push(ix({id:r,tableId:t}),cx({id:r,tableId:t,value:e.name}),ux({id:r,tableId:t,value:e.unique})),e.indexColumns.forEach(({orderType:e},i)=>{let a=qe(),s=n[i];o.push(Sx({id:a,indexId:r,tableId:t,columnId:s}),Ox({id:a,indexId:r,columnId:s,value:e}))})}for(let e of n){let t=a.get(e.sourceId);if(!t)continue;let n=qe();c.push(n),o.push(zx({id:n,ui:{x:t.x,y:t.y,zIndex:t.zIndex,color:e.ui.color,width:e.ui.width,height:e.ui.height}}),qx({id:n,value:e.value}))}return{actions:o,tableIds:s,memoIds:c}}function RA(e,t){let n=[];for(let r of e){let e=t.get(r);if(!e)return null;n.push(e)}return n}function zA(e,t,n=[]){let{doc:{relationshipIds:r},collections:i}=t,a=e.pop();return a&&(n.some(({columnId:e})=>e===a.columnId)||(n.push(a),M(i).collection(`relationshipEntities`).selectByIds(r).forEach(({id:t,start:n,end:r})=>{let i=n.columnIds.indexOf(a.columnId);if(i!==-1){let n=r.columnIds[i];e.push({columnId:n,relationshipIds:[t]})}else{let i=r.columnIds.indexOf(a.columnId);if(i!==-1){let r=n.columnIds[i];e.push({columnId:r,relationshipIds:[t]})}}})),zA(e,t,n)),n}const BA=og.flow,VA={focusFlowTableAction$:e=>function*({editor:t,settings:n}){e.length&&(n.canvasType!==Ym.visualization&&(yield Cv({value:Ym.visualization})),t.visualizationMode!==sg.flow&&(yield Rg({value:sg.flow})),yield t.views.flow?Ig({tableIds:e,kind:BA}):vg({kind:BA,centerIds:e}))}};function HA(e){return Object.entries(e).reduce((e,[t,n])=>(n===ig.table?e.tableIds.push(t):n===ig.memo&&e.memoIds.push(t),e),{tableIds:[],memoIds:[]})}const UA=e=>function*(){yield Ry(),yield Vy({value:e})},WA=e=>function*(){yield Uy(),yield Gy({value:e})},GA=(e,t,n=`document`)=>function*(r){let{tableIds:i,memoIds:a}=HA(r.editor.selectedMap),{zoomLevel:o}=B_(r,n),s=e/o,c=t/o;if(n!==`document`){i.length&&(yield Ug(Hg.drag,Ag({ids:i,movementX:s,movementY:c,kind:n})));return}i.length&&(yield Ug(Hg.drag,IS({ids:i,movementX:s,movementY:c}))),a.length&&(yield Ug(Hg.drag,Vx({ids:a,movementX:s,movementY:c})))},KA=()=>function*(){yield lw(),yield ew()},qA=(e,t)=>function*(n){yield*YA(n,{input:{tables:e.tables,columns:e.columns,memos:e.memos,relationships:e.relationships??[],indexes:e.indexes??[]},offset:{x:50*t,y:50*t},escapeCollision:!0})},JA=({tableIds:e,memoIds:t,offset:n,escapeCollision:r})=>function*(i){yield*YA(i,{input:QA(i,{tableIds:e??[],memoIds:t??[]}),offset:{x:Ke(n.x,4),y:Ke(n.y,4)},escapeCollision:r})};function*YA(e,{input:t,offset:n,escapeCollision:r}){if(t.tables.length===0&&t.memos.length===0)return;let{settings:i,doc:{tableIds:a,memoIds:o},collections:s}=e,c=M(s).collection(`tableEntities`),l=M(s).collection(`memoEntities`),{actions:u,tableIds:d,memoIds:f}=LA(t,ZA(ow({entities:[...t.tables.map(XA),...t.memos.map(XA)],offset:n,escapeCollision:r,settings:i,tables:c.selectByIds(a),memos:l.selectByIds(o),findSource:e=>c.selectById(e)??l.selectById(e)})));yield ej(),yield u,yield Py({...d.reduce((e,t)=>(e[t]=ig.table,e),{}),...f.reduce((e,t)=>(e[t]=ig.memo,e),{})})}const XA=({sourceId:e,ui:{x:t,y:n,zIndex:r}})=>({sourceId:e,ui:{x:t,y:n,zIndex:r}});function ZA(e){return new Map(Array.from(e,([e,{x:t,y:n,zIndex:r}])=>[e,{x:Ke(t,4),y:Ke(n,4),zIndex:r}]))}function QA(e,{tableIds:t,memoIds:n}){let{collections:r}=e,i=M(r).collection(`tableEntities`).selectByIds(t),a=M(r).collection(`memoEntities`).selectByIds(n),o=i.flatMap(e=>M(r).collection(`tableColumnEntities`).selectByIds(e.columnIds)),s=i.map(({id:e})=>e);return{tables:i.map(e=>({sourceId:e.id,name:e.name,comment:e.comment,columnIds:[...e.columnIds],ui:{x:e.ui.x,y:e.ui.y,zIndex:e.ui.zIndex,widthName:e.ui.widthName,widthComment:e.ui.widthComment,color:e.ui.color}})),columns:o.map(e=>({sourceId:e.id,tableId:e.tableId,name:e.name,comment:e.comment,dataType:e.dataType,default:e.default,options:e.options,ui:{keys:e.ui.keys,widthName:e.ui.widthName,widthComment:e.ui.widthComment,widthDataType:e.ui.widthDataType,widthDefault:e.ui.widthDefault}})),memos:a.map(e=>({sourceId:e.id,value:e.value,ui:{x:e.ui.x,y:e.ui.y,width:e.ui.width,height:e.ui.height,zIndex:e.ui.zIndex,color:e.ui.color}})),relationships:FA(e,s),indexes:IA(e,s)}}const $A=(e,t=`document`)=>function*(n){let{collections:r}=n,{tableIds:i,memoIds:a}=Zg(n,t),o={...M(r).collection(`tableEntities`).selectByIds(i).reduce((r,i)=>{let a=A_(n,i,t);return bw(e,{x:a.x+a.width/2-15,y:a.y+a.height/2-15,w:15,h:15})&&(r[i.id]=ig.table),r},{}),...M(r).collection(`memoEntities`).selectByIds(a).reduce((t,n)=>{let r=s_(n),i=c_(n);return bw(e,{x:n.ui.x+r/2-15,y:n.ui.y+i/2-15,w:15,h:15})&&(t[n.id]=ig.memo),t},{})};yield ej(),Ge(o)||(yield Py(o))},ej=()=>function*(){yield My(),yield Zy()},tj=(e,t)=>function*(n){let{editor:{focusTable:r}}=n;r&&(e===cg.Tab&&!t&&(vy(r.focusType)&&gy(n)&&!ay(n)||!vy(r.focusType)&&oy(n)&&cy(n))?yield hw(r.tableId):yield $y({moveKey:e,shiftKey:t}))},nj=e=>function*({editor:t}){t.drawRelationship?.relationshipType===e?yield _b():yield pb({relationshipType:e})},rj=e=>function*({collections:t}){let n=M(t).collection(`tableEntities`).selectById(e);if(n){if(!M(t).collection(`tableColumnEntities`).selectByIds(n.columnIds).some(e=>W(e.options,R.primaryKey))){let t=qe();yield dC({tableId:e,id:t}),yield TC({tableId:e,id:t,value:!0}),yield Yy({tableId:e,columnId:t,focusType:U.columnName,$mod:!1,shiftKey:!1})}yield hb({tableId:e})}},ij=e=>function*({editor:{selectedMap:t},collections:n}){let{tableIds:r,memoIds:i}=HA(t),a=M(n).collection(`tableEntities`).selectByIds(r),o=M(n).collection(`memoEntities`).selectByIds(i);yield a.map(t=>KS({id:t.id,color:e,prevColor:t.ui.color})),yield o.map(t=>Yx({id:t.id,color:e,prevColor:t.ui.color}))},aj=e=>function*({settings:t},n){yield UA(kA(e,n,e=>(e.settings={...e.settings,...he(ie(t),[`width`,`height`,`originX`,`originY`,`scrollTop`,`scrollLeft`,`zoomLevel`])},e))),yield XS()},oj=e=>function*({settings:t},n){yield UA(EO(e,n,e=>(e.settings={...e.settings,...he(ie(t),[`width`,`height`,`originX`,`originY`,`scrollTop`,`scrollLeft`,`zoomLevel`])},e))),yield XS()},sj=e=>function*({settings:t},n){yield UA(nD(e,n,e=>(e.settings={...e.settings,...he(ie(t),[`width`,`height`,`originX`,`originY`,`scrollTop`,`scrollLeft`,`zoomLevel`])},e))),yield XS()},cj=e=>function*({settings:t},n){yield UA(KT(e,n,e=>(e.settings={...e.settings,...he(ie(t),[`width`,`height`,`originX`,`originY`,`scrollTop`,`scrollLeft`,`zoomLevel`])},e))),yield XS()},lj=e=>function*({editor:{focusTable:t}}){!t||!t.columnId||(yield jb({tableId:t.tableId,columnIds:e?[...t.selectColumnIds]:[t.columnId]}))};function uj(e,t,n){let r=[...t],i=[];for(let t of n){let n=r.indexOf(t);if(n===-1)return[];let a=r[r.length-1];t!==a&&(r.splice(n,1),r.push(t),i.push(jC({tableId:e,id:t,targetId:a})))}return ce(r,t)?[]:i}const dj=(e,t)=>function*({editor:{draggableColumn:n},collections:r}){if(!n||n.columnIds.length===0)return;let{tableId:i,columnIds:a}=n,o=M(r).collection(`tableEntities`),s=o.selectById(i);if(!s)return;if(t===i){let t=s.columnIds.indexOf(a[0]);if(t===-1)return;if(e===null){yield uj(i,s.columnIds,a);return}let n=s.columnIds.indexOf(e);if(n===-1)return;let r=a.map(t=>jC({tableId:i,id:t,targetId:e}));t<n&&r.reverse(),yield r;return}if(!o.selectById(t))return;let c=M(r).collection(`tableColumnEntities`).selectByIds(a);if(c.length===0)return;yield gw(i,a);let l=c.map(()=>qe());for(let n=0;n<c.length;n++){let r=c[n],i=l[n],a={id:i,tableId:t};yield[dC(a),hC({...a,value:r.name}),yC({...a,value:r.dataType}),xC({...a,value:r.default}),_C({...a,value:r.comment}),TC({...a,value:W(r.options,R.primaryKey)}),kC({...a,value:W(r.options,R.notNull)}),DC({...a,value:W(r.options,R.unique)}),CC({...a,value:W(r.options,R.autoIncrement)}),...e===null?[]:[jC({...a,targetId:e})],Yy({tableId:t,columnId:i,focusType:U.columnName,$mod:!0,shiftKey:!1})]}yield jb({tableId:t,columnIds:l})},fj=e=>function*(t){let{columnIds:n,relationshipIds:r}=zA([{columnId:e,relationshipIds:[]}],t).reduce((e,{columnId:t,relationshipIds:n})=>(e.columnIds.push(t),e.relationshipIds.push(...n),e),{columnIds:[],relationshipIds:[]});yield xb({columnIds:ye(n)}),yield Cb({relationshipIds:ye(r)})},pj=()=>function*(){yield xb({columnIds:[]}),yield Cb({relationshipIds:[]})},mj={loadJsonAction$:UA,initialLoadJsonAction$:WA,moveAllAction$:GA,removeSelectedAction$:KA,pasteEntitiesAction$:qA,duplicateAction$:JA,dragSelectAction$:$A,unselectAllAction$:ej,focusMoveTableAction$:tj,drawStartRelationshipAction$:nj,drawStartAddRelationshipAction$:rj,changeColorAllAction$:ij,loadSchemaSQLAction$:aj,loadSchemaGraphQLAction$:oj,loadSchemaDBMLAction$:sj,loadSchemaAMLAction$:cj,dragstartColumnAction$:lj,dragoverColumnAction$:dj,columnKeyHoverStartAction$:fj,columnKeyHoverEndAction$:pj,...VA},hj={addIndexAction$:e=>function*(){yield ix({id:qe(),tableId:e})},changeIndexUniqueAction$:e=>function*({collections:t}){let n=M(t).collection(`indexEntities`).selectById(e);n&&(yield ux({id:e,tableId:n.tableId,value:!n.unique}))}},gj={addIndexColumnAction$:(e,t)=>function*({collections:n}){let r=M(n).collection(`indexEntities`).selectById(e);if(!r)return;let i=M(n).collection(`indexColumnEntities`).selectByIds(r.seqIndexColumnIds).find(e=>e.columnId===t);i?yield Sx({id:i.id,indexId:e,tableId:r.tableId,columnId:t}):yield Sx({id:qe(),indexId:e,tableId:r.tableId,columnId:t})},removeIndexColumnAction$:(e,t)=>function*({collections:n}){let r=M(n).collection(`indexEntities`).selectById(e);if(!r)return;let i=M(n).collection(`indexColumnEntities`).selectByIds(r.indexColumnIds).filter(e=>e.columnId===t);for(let t of i)yield wx({id:t.id,indexId:e,tableId:r.tableId})},changeIndexColumnOrderTypeAction$:e=>function*({collections:t}){let n=M(t).collection(`indexColumnEntities`).selectById(e);n&&(yield Ox({id:e,indexId:n.indexId,columnId:n.columnId,value:n.orderType===ah.ASC?ah.DESC:ah.ASC}))},moveIndexColumnAction$:(e,t)=>function*({collections:n}){if(e===t)return;let r=M(n).collection(`indexColumnEntities`).selectById(e);if(!r)return;let i=M(n).collection(`indexEntities`).selectById(r.indexId);i&&(yield Ex({id:e,indexId:r.indexId,tableId:i.tableId,targetId:t}))}},_j={};function vj(e,t,n,r){let i=W_({...e,zoomLevel:t},n);return{movementX:Ke(r.x-i.x,4),movementY:Ke(r.y-i.y,4)}}function yj(e,t,n){let{viewport:r}=e.editor,i={x:r.width/2,y:r.height/2};return vj(t,n,G_(t,i),i)}const bj={changeZoomLevelAction$:(e,t)=>function*(n){let r=V_(n,t),{originX:i,originY:a}=r,{movementX:o,movementY:s}=yj(n,r,Yh(e)),c={originX:i+o,originY:a+s};if(t&&t!==`document`){yield Eg({value:e,kind:t}),yield Sg({...c,kind:t});return}yield lv({value:e}),yield hv(c)},streamZoomLevelAction$:(e,t)=>function*(n){let r=V_(n,t),i=yj(n,r,Yh(r.zoomLevel+e));if(t&&t!==`document`){yield Og({value:e,kind:t}),yield wg({...i,kind:t});return}yield dv({value:e}),yield _v(i)}},xj=Object.freeze({...Qb,...mj,...px,...hj,...jx,...gj,...nS,...nw,...xS,..._j,...Wv,...bj,...$S,...dw,...PC,...yw}),Sj=`table.add,table.move,table.moveTo,table.remove,table.changeName,table.changeComment,table.changeColor,table.sort,column.add,column.remove,column.changeName,column.changeComment,column.changeDataType,column.changeDefault,column.changeAutoIncrement,column.changePrimaryKey,column.changeUnique,column.changeNotNull,column.move,relationship.add,relationship.remove,relationship.changeType,index.add,index.remove,index.changeName,index.changeUnique,indexColumn.add,indexColumn.remove,indexColumn.move,indexColumn.changeOrderType,memo.add,memo.move,memo.moveTo,memo.remove,memo.changeValue,memo.changeColor,memo.resize,settings.changeDatabaseName,settings.changeZoomLevel,settings.streamZoomLevel,settings.scrollTo,settings.streamScrollTo,settings.changeShow,settings.changeDatabase,settings.changeCanvasType,settings.changeLanguage,settings.changeTableNameCase,settings.changeColumnNameCase,settings.changeBracketType,settings.changeRelationshipDataTypeSync,settings.changeRelationshipOptimization,settings.changeColumnOrder,settings.changeMaxWidthComment,settings.changeIgnoreSaveSettings,editor.loadJson,editor.clear`.split(`,`),Cj=B([`settings.changeZoomLevel`,`settings.streamZoomLevel`,`settings.scrollTo`,`settings.streamScrollTo`,`settings.changeDatabase`,`settings.changeCanvasType`,`settings.changeLanguage`,`settings.changeTableNameCase`,`settings.changeColumnNameCase`,`settings.changeBracketType`]),wj=[...Sj.filter(e=>!Cj(e))],Tj=B([`editor.loadJson`,`editor.clear`]),Ej=[...wj.filter(e=>!Tj(e))],Dj=[`editor.sharedMouseTracker`,`editor.sharedFocusTracker`,`editor.sharedSelectionTracker`,`editor.sharedDragSelectTracker`];[...Sj,...Dj];const Oj=[`table.move`,`memo.move`],kj=[`table.changeColor`,`memo.changeColor`],Aj=[`settings.streamZoomLevel`,`settings.streamScrollTo`],jj=[...Object.keys(YC)],Mj=[...Object.keys(JC),...jj];function Nj(e,t){if(t.has(e))throw TypeError(`Cannot initialize the same private elements twice on an object`)}function Pj(e,t,n){Nj(e,t),t.set(e,n)}function Fj(e,t,n){if(typeof e==`function`?e===t:e.has(t))return arguments.length<3?t:n;throw TypeError(`Private element is not present on this object`)}function Ij(e,t){return e.get(Fj(e,t))}function Lj(e,t,n){return e.set(Fj(e,t),n),n}var Rj=new WeakMap,zj=class{constructor(){Pj(this,Rj,0),vi(this,`getVersion`,()=>Ij(Rj,this)),vi(this,`getNextVersion`,()=>this.getVersion()+1),vi(this,`merge`,e=>(!S(e)||!Number.isInteger(e)||this.getVersion()<e&&Lj(Rj,this,e),this))}};function Bj(e){return{...e,clock:new zj}}function Vj({notify:e,dispatch:t,getNextVersion:n},r){let i=r?.commands??[],a=r?.cursor??-1,o=r?.limit??0,s=!0,c=()=>a!==-1,l=()=>a<i.length-1,u=e=>o=e,d=()=>({hasRedo:l(),hasUndo:c()}),f=(e,r)=>{s=!1,e[r](t,n),s=!0};return Object.freeze({get cursor(){return a},get size(){return i.length},hasUndo:c,hasRedo:l,push:t=>{s&&(i.splice(a+1,i.length-a),i.push(t),o!==0&&i.length>o&&(i=i.slice(i.length-o,i.length)),a=i.length-1,e(d()))},undo:()=>{if(!c())return;let t=i[a];f(t,`undo`),a--,e(d())},redo:()=>{if(!l())return;let t=i[a+1];f(t,`redo`),a++,e(d())},clear:()=>{let t=i.length;i=[],a=-1,t>0&&e(d())},setLimit:u,clone:e=>Vj(e,{commands:[...i],cursor:a,limit:o})})}const Hj=Oe(e=>!!e.length),Uj=e=>{let t=B(e);return e=>new xe(n=>e.subscribe({next:e=>n.next(e.filter(e=>t(e.type))),error:e=>n.error(e),complete:()=>n.complete()})).pipe(Hj)},Wj=`@@none-stream`,Gj=(e,t)=>n=>{let r=t.find(([,e])=>e(n));return r?r[0]:e(n)?n:Wj},Kj=(e,t=[],n=Ee(200))=>{let r=B(e),i=t.map(([e,t])=>[e,B(t)]),a=Gj(r,i);return e=>new xe(t=>e.subscribe({next:e=>{let n=e.reduce((e,t)=>{let n=a(t.type);return e[n]||(e[n]=[]),e[n].push(t),e},{});Object.values(n).forEach(e=>t.next(e))},error:e=>t.error(e),complete:()=>t.complete()})).pipe(Hj,Ae(e=>a(e[0].type)),Ne(e=>e.key===Wj?e:e.pipe(Te(e.pipe(n)),je(e=>e.flat()))))},qj=e=>{let t=t=>x(t.tags)||!e.some(e=>W(t.tags,e));return e=>new xe(n=>e.subscribe({next:e=>n.next(e.filter(t)),error:e=>n.error(e),complete:()=>n.complete()})).pipe(Hj)};B(jj),B(Dj);const Jj=(e,t=[])=>{let n=B(wj),r=e=>!x(e.tags)&&t.some(t=>W(e.tags,t))||!n(e.type);return t=>new xe(n=>t.subscribe({next:t=>{n.next(e()?t.filter(r):t)},error:e=>n.error(e),complete:()=>n.complete()})).pipe(Hj)},Yj={[G.scrollTo]:N.viewScrollTo,[G.streamScrollTo]:N.viewStreamScrollTo,[G.changeZoomLevel]:N.viewChangeZoomLevel,[G.streamZoomLevel]:N.viewStreamZoomLevel},Xj=({tags:e})=>!x(e)&&(W(e,Hg.shared)||W(e,Hg.following)),Zj=e=>{let t=Yj[e.type];return t&&!Xj(e)?{...e,type:t}:e},Qj=e=>t=>new xe(n=>t.subscribe({next:t=>{n.next(e()?t.map(Zj):t)},error:e=>n.error(e),complete:()=>n.complete()})),$j=(e,t=[])=>{let n=B(Ej),r=e=>!x(e.tags)&&t.some(t=>W(e.tags,t))||!n(e.type);return t=>new xe(n=>t.subscribe({next:t=>{n.next(e()?t.filter(r):t)},error:e=>n.error(e),complete:()=>n.complete()})).pipe(Hj)};function eM(e,t){return Bu({context:e,state:{...Jp({}),editor:lg(),lww:{}},reducers:{...Zb,...QS,...NC,...tS,...bS,...Uv,...fx,...Ax},enableObservable:t??!0})}const tM=new WeakMap,nM=()=>({boxes:new Map,entries:new Map});function rM(e,t=`document`){let n=tM.get(e);return n||(n={document:nM(),flow:nM()},tM.set(e,n)),n[t]}function iM(e,t){return{left:e.left[t],top:e.top[t],right:e.right[t],bottom:e.bottom[t]}}function aM(e,t){return{left:Math.min(e.left,t.left),top:Math.min(e.top,t.top),right:Math.max(e.right,t.right),bottom:Math.max(e.bottom,t.bottom)}}function oM(e,t){return e.left===t.left&&e.top===t.top&&e.right===t.right&&e.bottom===t.bottom}function sM(e){let t=1/0,n=1/0,r=-1/0,i=-1/0;for(let{x:a,y:o}of e)a<t&&(t=a),a>r&&(r=a),o<n&&(n=o),o>i&&(i=o);return{left:t,top:n,right:r,bottom:i}}function cM(e,t){return e.left<=t.right&&e.right>=t.left&&e.top<=t.bottom&&e.bottom>=t.top}function lM(e,t){let n={left:e.left-40,top:e.top-40,right:e.right+40,bottom:e.bottom+40};for(let e of t)if(cM(n,e))return!0;return!1}function uM(){let e=new Map,t=new Map,n=(n,r,i,a,o)=>{let s=n?e:t,c=Math.floor(Math.min(r,i)/64),l=Math.floor(Math.max(r,i)/64);for(let e=c;e<=l;e++){let t=s.get(e);t?t.push(r,i,a,o):s.set(e,[r,i,a,o])}};return{markSpan:n,markBox(e){n(!0,e.left,e.right,e.top,e.bottom),n(!1,e.top,e.bottom,e.left,e.right)},hits(n,r,i,a,o){let s=n?e:t;if(!s.size)return!1;let c=Math.min(r,i)-64,l=Math.max(r,i)+64,u=Math.floor(c/64),d=Math.floor(l/64);for(let e=u;e<=d;e++){let t=s.get(e);if(t){for(let e=0;e<t.length;e+=4)if(!(t[e+1]<c||t[e]>l)&&!(t[e+3]<a-16)&&!(t[e+2]>o+16))return!0}}return!1}}}function dM(e,t){for(let n=1;n<t.length;n++){let r=t[n-1],i=t[n];Math.abs(r.x-i.x)<.5?e.markSpan(!0,r.x,i.x,Math.min(r.y,i.y),Math.max(r.y,i.y)):e.markSpan(!1,r.y,i.y,Math.min(r.x,i.x),Math.max(r.x,i.x))}}function fM(e,t){let n=e.boxes,r=new Map,i=[],a=!1;for(let e=0;e<t.ids.length;e++){let o=t.ids[e],s=iM(t,e);if(r.set(o,s),a)continue;let c=n.get(o);c?oM(c,s)||i.push(aM(c,s)):i.push(s),i.length>64&&(a=!0)}if(!a){for(let[e,t]of n)if(!r.has(e)&&(i.push(t),i.length>64)){a=!0;break}}return e.boxes=r,a||n.size===0?null:i}function pM(e){return 50+e%4*12}function mM(e,t){return e.tableId===t.tableId?null:e.direction===L.right&&t.direction===L.left?t.x-e.x:e.direction===L.left&&t.direction===L.right?e.x-t.x:e.direction===L.bottom&&t.direction===L.top?t.y-e.y:e.direction===L.top&&t.direction===L.bottom?e.y-t.y:null}function hM(e,t){return t===null||t<=0?e:Math.max(36,Math.min(e,t/2-1))}function gM(e){return e===L.left||e===L.right}function _M(e){return e===L.right||e===L.bottom?1:-1}function vM(e,t,n){let r=_M(t);return gM(t)?{x:e.x+r*n,y:e.y}:{x:e.x,y:e.y+r*n}}function yM({start:e,end:t},[n,r]){let i=mM(e,t),a=hM(pM(n),i),o=hM(pM(r),i);return{m:vM(e,e.direction,a),l:vM(t,t.direction,o),startStub:a,endStub:o}}function bM(e,t=`document`){let{tableIds:n}=Zg(e,t),r=M(e.collections).collection(`tableEntities`).selectByIds(n),i=r.length,a={ids:Array(i),left:new Float64Array(i),top:new Float64Array(i),right:new Float64Array(i),bottom:new Float64Array(i)};return r.forEach((n,r)=>{let i=O_(e,n,t);a.ids[r]=n.id,a.left[r]=i.lt.x+2,a.top[r]=i.lt.y+2,a.right[r]=i.rb.x-2,a.bottom[r]=i.rb.y-2}),a}function xM(e,t,n,r,i,a,o,s){let c=0,l=1,u=n-e,d=r-t,f=(e,t)=>{if(e===0)return t>=0;let n=t/e;if(e<0){if(n>l)return!1;n>c&&(c=n)}else{if(n<c)return!1;n<l&&(l=n)}return!0};return f(-u,e-i)&&f(u,o-e)&&f(-d,t-a)&&f(d,s-t)&&c<=l}function SM(e,t,n,r){let i=0,a=1/0,o=-1/0,s=1/0,c=-1/0;for(let t=0;t<e.length;t++){let n=e[t];n.x<a&&(a=n.x),n.x>o&&(o=n.x),n.y<s&&(s=n.y),n.y>c&&(c=n.y)}for(let l=0;l<t.ids.length;l++){let u=t.left[l],d=t.right[l],f=t.top[l],p=t.bottom[l];if(o<u||a>d||c<f||s>p)continue;let m=t.ids[l];if(m!==n&&m!==r)for(let t=1;t<e.length;t++){let n=e[t-1],r=e[t];if(!(Math.max(n.x,r.x)<u||Math.min(n.x,r.x)>d)&&!(Math.max(n.y,r.y)<f||Math.min(n.y,r.y)>p)&&xM(n.x,n.y,r.x,r.y,u,f,d,p)){i++;break}}}return i}function CM(e){let t=0;for(let n=1;n<e.length;n++)t+=Math.abs(e[n].x-e[n-1].x)+Math.abs(e[n].y-e[n-1].y);return t}function wM(e,t,n,r,i,a){let o=(e+t)/2,s=n[r?`left`:`top`],c=n[r?`right`:`bottom`],l=n[r?`top`:`left`],u=n[r?`bottom`:`right`],d=[];for(let e=0;e<n.ids.length;e++)u[e]<i||l[e]>a||d.push(s[e]-16,c[e]+16);return d.sort((e,t)=>Math.abs(e-o)-Math.abs(t-o)),[o,...d.slice(0,6)]}function TM(e,t,n,r,i){let a=gM(t),o=gM(r),s=_M(t),c=_M(r),l=Math.min(e.x,n.x,e.y,n.y),u=Math.max(e.x,n.x,e.y,n.y),d=[],f=e=>{let t=[e[0]];for(let n=1;n<e.length;n++){let r=t[t.length-1],i=e[n];Math.abs(i.x-r.x)<.5&&Math.abs(i.y-r.y)<.5||t.push(i)}t.length<2||d.push({points:t,bends:t.length-2})};if(a&&o){let t=wM(e.x,n.x,i,!0,l,u);for(let r of t)(r-e.x)*s<0||(r-n.x)*c<0||f([e,{x:r,y:e.y},{x:r,y:n.y},n]);let r=wM(e.y,n.y,i,!1,l,u);for(let t of r){let r=e.x+s*16,i=n.x+c*16;f([e,{x:r,y:e.y},{x:r,y:t},{x:i,y:t},{x:i,y:n.y},n])}}else if(!a&&!o){let t=wM(e.y,n.y,i,!1,l,u);for(let r of t)(r-e.y)*s<0||(r-n.y)*c<0||f([e,{x:e.x,y:r},{x:n.x,y:r},n]);let r=wM(e.x,n.x,i,!0,l,u);for(let t of r){let r=e.y+s*16,i=n.y+c*16;f([e,{x:e.x,y:r},{x:t,y:r},{x:t,y:i},{x:n.x,y:i},n])}}else if(a){(n.x-e.x)*s>=0&&(e.y-n.y)*c>=0&&f([e,{x:n.x,y:e.y},n]);let t=wM(e.x,n.x,i,!0,l,u).filter(t=>(t-e.x)*s>=0).slice(0,4),r=wM(e.y,n.y,i,!1,l,u).filter(e=>(e-n.y)*c>=0).slice(0,4);for(let i of t)for(let t of r)f([e,{x:i,y:e.y},{x:i,y:t},{x:n.x,y:t},n])}else{(n.y-e.y)*s>=0&&(e.x-n.x)*c>=0&&f([e,{x:e.x,y:n.y},n]);let t=wM(e.y,n.y,i,!1,l,u).filter(t=>(t-e.y)*s>=0).slice(0,4),r=wM(e.x,n.x,i,!0,l,u).filter(e=>(e-n.x)*c>=0).slice(0,4);for(let i of t)for(let t of r)f([e,{x:e.x,y:i},{x:t,y:i},{x:t,y:n.y},n])}return d}function EM(e,t,n,r,i,a,o){let s=TM(e,t,n,r,i),c=null,l=1/0;for(let e of s){let t=SM(e.points,i,a,o)*1e5+e.bends*36+CM(e.points);t<l&&(l=t,c=e.points)}return c||(gM(t)?[e,{x:(e.x+n.x)/2,y:e.y},{x:(e.x+n.x)/2,y:n.y},n]:[e,{x:e.x,y:(e.y+n.y)/2},{x:n.x,y:(e.y+n.y)/2},n])}const DM=[10,7,4],OM=DM[DM.length-1]-.5;function kM(e){let t=[];for(let[n,r]of e)for(let e=0;e<r.length-1;e++){let i=r[e],a=r[e+1],o=Math.abs(i.x-a.x)<.5;o!==Math.abs(i.y-a.y)<.5&&t.push({relationshipId:n,points:r,index:e,movable:e>0&&e<r.length-2,vertical:o,coordinate:o?i.x:i.y,low:o?Math.min(i.y,a.y):Math.min(i.x,a.x),high:o?Math.max(i.y,a.y):Math.max(i.x,a.x)})}return t}function AM(e,t){return e.relationshipId===t.relationshipId?e.index-t.index:e.relationshipId<t.relationshipId?-1:1}function jM(e){let t=e.points[e.index-1];return e.vertical?t.y:t.x}function MM(e){for(let t of e){let e=t.points[t.index],n=t.points[t.index+1];t.low=t.vertical?Math.min(e.y,n.y):Math.min(e.x,n.x),t.high=t.vertical?Math.max(e.y,n.y):Math.max(e.x,n.x)}}function NM(e,t){let n=e.points[e.index],r=e.points[e.index+1];e.vertical?(n.x=t,r.x=t):(n.y=t,r.y=t)}function PM(e,t,n,r){let i=[],a=[];for(let t of kM(e))(t.vertical?i:a).push(t);for(let e of[i,a]){MM(e);let i=e.filter(e=>e.movable);if(i.length<2)continue;i.sort((e,t)=>e.coordinate-t.coordinate||AM(e,t));let a=[],o=()=>{a.length>1&&FM(a,e,t,n,r),a=[]};for(let e of i){let t=a[a.length-1];t&&e.coordinate-t.coordinate>10.5&&o(),a.push(e)}o()}}function FM(e,t,n,r,i){e.sort((e,t)=>e.low-t.low||AM(e,t));let a=[],o=-1/0,s=()=>{a.length>1&&VM(a,t,n,r,i),a=[],o=-1/0};for(let t of e)a.length&&t.low>=o&&s(),a.push(t),o=Math.max(o,t.high);s()}function IM(e,t){return e.high+10>t.low&&t.high+10>e.low}function LM(e,t){return Math.abs(e.coordinate-t.coordinate)>=OM?0:Math.max(0,Math.min(e.high,t.high)-Math.max(e.low,t.low))}function RM(e,t){let n=0;for(let r=0;r<e.length;r++){let i=e[r];for(let t=r+1;t<e.length;t++)n+=LM(i,e[t]);for(let e of t)n+=LM(i,e)}return n}function zM(e,t){let n=new Set(e),r=1/0,i=-1/0;for(let t of e)t.coordinate<r&&(r=t.coordinate),t.coordinate>i&&(i=t.coordinate);let a=10*(e.length-1)/2+OM,o=[];for(let e of t)e.coordinate<r-a||e.coordinate>i+a||n.has(e)||o.push(e);return o}function BM(e){let t=[];for(let n of e){let e=t.find(e=>!IM(e[e.length-1],n));e?e.push(n):t.push([n])}return t}function VM(e,t,n,r,i){if(!i){HM(e,t,n,r);return}if(UM(e,i))return;let a=e.map(e=>e.coordinate);HM(e,t,n,r),WM(e,a,i)}function HM(e,t,n,r){let i=zM(e,t),a=RM(e,i);if(!a)return;let o=new Map,s=e.map(e=>(o.set(e,ZM(e,n,r)),e.coordinate)),c=s.reduce((e,t)=>e+t,0)/s.length,l=GM(e),u=null,d=1/0;for(let t of DM){let a=null,f=1/0;for(let p of l){XM(p,t,c,o,n,r);let l=RM(e,i);if(l)l<d&&(u=e.map(e=>e.coordinate),d=l);else{let t=JM(e,s);t<f&&(f=t,a=e.map(e=>e.coordinate))}YM(e,s)}if(a){YM(e,a);return}}u&&d<a&&YM(e,u)}function UM(e,t){let n=[];for(let r of e){if(t.dirty.has(r.relationshipId))return!1;let e=t.coordinate(r.relationshipId,r.index,r.vertical);if(e===void 0||t.lanes.hits(r.vertical,r.coordinate,e,r.low,r.high))return!1;n.push(e)}return YM(e,n),!0}function WM(e,t,n){e.forEach((e,r)=>{let i=t[r],a=e.coordinate;if(Math.abs(a-i)<.5)return;n.lanes.markSpan(e.vertical,i,a,e.low,e.high);let o=e.points[e.index],s=e.points[e.index+1],c=Math.min(i,a),l=Math.max(i,a),u=e.vertical?o.y:o.x,d=e.vertical?s.y:s.x;n.lanes.markSpan(!e.vertical,u,u,c,l),n.lanes.markSpan(!e.vertical,d,d,c,l)})}function GM(e){let t=BM(e),n=KM(t);return t.length===e.length?n:[...n,...KM(e.map(e=>[e]))]}function KM(e){let t=(e,t)=>e.reduce((e,n)=>e+t(n),0)/e.length,n=[...e].sort((e,n)=>t(e,jM)-t(n,jM)||t(e,qM)-t(n,qM)||AM(e[0],n[0])),r=[...e].sort((e,n)=>t(e,qM)-t(n,qM)||t(e,jM)-t(n,jM)||AM(e[0],n[0]));return n.every((e,t)=>e===r[t])?[n]:[n,r]}function qM(e){return e.coordinate}function JM(e,t){return e.reduce((e,n,r)=>e+Math.abs(n.coordinate-t[r]),0)}function YM(e,t){e.forEach((e,n)=>{NM(e,t[n]),e.coordinate=t[n]})}function XM(e,t,n,r,i,a){let o=n-t*(e.length-1)/2,s=e.map(()=>[]);e.forEach((n,c)=>{for(let l of n){let n=r.get(l);if(!n)continue;let u=r=>{if(r<0||r>=e.length||s[r].some(e=>IM(l,e)))return!1;let c=o+r*t;return NM(l,c),tN(l,i,a,n)?(l.coordinate=c,s[r].push(l),!0):!1},d=!1;for(let e=0;e<=3&&!d;e++)d=u(c-e)||e>0&&u(c+e);d||NM(l,l.coordinate)}})}function ZM(e,t,n){let r=n.get(e.relationshipId),i=[];for(let e=0;e<t.ids.length;e++){let n=t.ids[e];(n===r?.[0]||n===r?.[1])&&i.push(e)}return{blocked:SM(e.points,t,r?.[0]??``,r?.[1]??``),crossed:nN(e.points),own:i,intruded:eN(e.points,t,i),beforeDelta:QM(e,-1),afterDelta:QM(e,1)}}function QM(e,t){let n=e.points[t<0?e.index:e.index+1],r=e.points[t<0?e.index-1:e.index+2];return e.vertical?r.x-n.x:r.y-n.y}function $M(e,t){return Math.abs(t)>=.5&&e*t<=0}function eN(e,t,n){let r=0;for(let i of n){let n=t.left[i],a=t.top[i],o=t.right[i],s=t.bottom[i];for(let t=1;t<e.length;t++){let i=e[t-1],c=e[t];if(xM(i.x,i.y,c.x,c.y,n,a,o,s)){r++;break}}}return r}function tN(e,t,n,r){let i=e.points[e.index-1],a=e.points[e.index],o=e.points[e.index+1],s=e.points[e.index+2];if((e.vertical?Math.abs(i.x-a.x)<.5||Math.abs(s.x-o.x)<.5:Math.abs(i.y-a.y)<.5||Math.abs(s.y-o.y)<.5)||e.index===1&&$M(QM(e,-1),r.beforeDelta)||e.index+2===e.points.length-1&&$M(QM(e,1),r.afterDelta)||eN(e.points,t,r.own)>r.intruded||!r.crossed&&nN(e.points))return!1;let c=n.get(e.relationshipId);return SM(e.points,t,c?.[0]??``,c?.[1]??``)<=r.blocked}function nN(e){for(let t=0;t+1<e.length;t++)for(let n=t+2;n+1<e.length;n++)if(rN(e[t],e[t+1],e[n],e[n+1]))return!0;return!1}function rN(e,t,n,r){let i=Math.abs(e.x-t.x)<.5;if(i===Math.abs(n.x-r.x)<.5)return!1;let a=i?e:n,o=i?t:r,s=i?n:e,c=i?r:t;return a.x>Math.min(s.x,c.x)&&a.x<Math.max(s.x,c.x)&&s.y>Math.min(a.y,o.y)&&s.y<Math.max(a.y,o.y)}const iN={[V.top]:L.top,[V.bottom]:L.bottom,[V.left]:L.left,[V.right]:L.right},aN=Math.PI*2,oN=.15,sN={[V.top]:-Math.PI,[V.right]:-Math.PI/2,[V.bottom]:0,[V.left]:Math.PI/2},cN={[V.top]:!1,[V.right]:!1,[V.bottom]:!0,[V.left]:!0};function lN(e,t=`document`){Ph(t);let{tableIds:n,relationshipIds:r}=Zg(e,t),{collections:i}=e,a=B(n),o=M(i).collection(`tableEntities`),s=M(i).collection(`relationshipEntities`).selectByIds(r).filter(({start:e,end:t})=>a(e.tableId)&&a(t.tableId)),c=new Map,l=new Map,u=new Map,d=xN(s);for(let n of s){let r=bN(n),{start:i,end:a}=r,s=o.selectById(i.tableId),f=o.selectById(a.tableId);if(!(!s||!f)){if(l.set(n,r),u.set(r.id,[0,0]),i.tableId===a.tableId)gN(hN(e,c,s,t),r);else{let n=hN(e,c,s,t),o=hN(e,c,f,t),[l,u]=TN(n.objectPoint,o.objectPoint,r);n[l].push({id:r.id,isStart:!0,point:i,angle:wN(l,n,o),tie:d.tieAt(r.id,i.tableId,a.tableId)}),o[u].push({id:r.id,isStart:!1,point:a,angle:wN(u,o,n),tie:d.tieAt(r.id,a.tableId,i.tableId)})}}}for(let e of c.values())for(let t of _h)EN(t,e,u);for(let[e,n]of l.entries())Ah(e,u.get(n.id)??[0,0],t),Ih(e,n,t);t===`document`?dN(e,l,u):uN(l,u,t)}function uN(e,t,n){for(let[r,i]of e.entries()){let{id:e,start:a,end:o}=i;if(a.tableId===o.tableId)continue;let{m:s,l:c}=yM(i,t.get(e)??[0,0]);Mh(r,[s,c],n)}}function dN(e,t,n){let r=bM(e),i=rM(e),a=fM(i,r),o=i.entries,s=new Map,c=new Set,l=uM();if(a)for(let e of a)l.markBox(e);let u=new Map,d=new Map,f=new Map;for(let[e,i]of t.entries()){let{id:t,start:p,end:m}=i;if(p.tableId===m.tableId)continue;let{m:h,l:g}=yM(i,n.get(t)??[0,0]),_=o.get(t),v,y;a!==null&&_!==void 0&&mN(_,h,g,p,m)&&!lM(_.bounds,a)?(v=_.pristine,y=fN(v)):(y=EM(h,p.direction,g,m.direction,r,p.tableId,m.tableId),v=fN(y),c.add(t),_&&dM(l,_.nudged),dM(l,v)),u.set(t,y),d.set(t,[p.tableId,m.tableId]),f.set(t,e),s.set(t,{mx:h.x,my:h.y,mDirection:p.direction,lx:g.x,ly:g.y,lDirection:m.direction,startTableId:p.tableId,endTableId:m.tableId,pristine:v,nudged:y,bounds:sM(v)})}if(a)for(let[e,t]of o)s.has(e)||dM(l,t.nudged);PM(u,r,d,a===null?void 0:pN(o,c,l));for(let[e,t]of u){let n=f.get(e);n&&Mh(n,t)}i.entries=s}function fN(e){return e.map(({x:e,y:t})=>({x:e,y:t}))}function pN(e,t,n){return{dirty:t,lanes:n,coordinate(t,n,r){let i=e.get(t)?.nudged[n];if(i)return r?i.x:i.y}}}function mN(e,t,n,r,i){return e.mx===t.x&&e.my===t.y&&e.lx===n.x&&e.ly===n.y&&e.mDirection===r.direction&&e.lDirection===i.direction&&e.startTableId===r.tableId&&e.endTableId===i.tableId}function hN(e,t,n,r){let i=t.get(n.id);if(!i){let a=O_(e,n,r);i={tableId:n.id,centerX:a.top.x,centerY:a.left.y,objectPoint:a,selfCount:0,top:[],bottom:[],left:[],right:[]},t.set(n.id,i)}return i}function gN(e,t){let{rt:n,width:r,height:i}=e.objectPoint,a=e.selfCount++,o=yN(Math.min(r,i)*oN,20,60)+a*14;t.start.direction=L.top,t.start.x=n.x-o,t.start.y=n.y,t.end.direction=L.right,t.end.x=n.x,t.end.y=n.y+o}function _N(e,t){let{width:n,height:r}=e.objectPoint;return yN(Math.min(n,r)*oN,20,60)+t*14}function vN(e){return e.selfCount?_N(e,e.selfCount-1)+8:0}function yN(e,t,n){return Math.min(Math.max(e,t),n)}function bN({id:e,start:t,end:n}){return{id:e,start:yh(t),end:yh(n)}}function xN(e){let t=new Map;for(let{id:n,start:r,end:i}of e){let e=SN(r.tableId,i.tableId),a=t.get(e);a?a.push(n):t.set(e,[n])}let n=new Map,r=new Map,i=!1;for(let e of t.values())e.length<2||(i=!0,e.sort(),e.forEach((t,i)=>{n.set(t,i),r.set(t,e.length)}));return{tieAt(e,t,a){if(!i)return 0;let o=n.get(e)??0;return t<=a?o:(r.get(e)??1)-1-o}}}function SN(e,t){return e<t?`${e}|${t}`:`${t}|${e}`}function CN(e){let t=e%aN;return t<0?t+aN:t}function wN(e,t,n){return CN(Math.atan2(n.centerY-t.centerY,n.centerX-t.centerX)-sN[e])}function TN(e,t,n){let r=[V.bottom,V.bottom],i=k_(e.bottom,t.bottom);n.start.x=e.bottom.x,n.start.y=e.bottom.y,n.end.x=t.bottom.x,n.end.y=t.bottom.y,n.start.direction=L.bottom,n.end.direction=L.bottom;for(let a of _h)for(let o of _h){let s=a,c=o,l=k_(e[s],t[c]);i<=l||(i=l,r[0]=s,r[1]=c,n.start.x=e[s].x,n.start.y=e[s].y,n.start.direction=iN[s],n.end.x=t[c].x,n.end.y=t[c].y,n.end.direction=iN[c])}return r}function EN(e,t,n){let r=t[e];if(!r.length)return;r.sort((e,t)=>e.angle-t.angle||e.tie-t.tie||(e.id<t.id?-1:1));let{objectPoint:i}=t,a=e===V.top||e===V.bottom,o=(a?i.lt.x:i.lt.y)+12,s=(a?i.rb.x:i.rb.y)-12,c=vN(t);if(c&&(e===V.top?s-=c:e===V.right&&(o+=c)),s<o){let e=(o+s)/2;o=e,s=e}let l=s-o,u=(o+s)/2,d=r.length,f=d>1?Math.min(l/(d-1),120):0,p=u-f*(d-1)/2;r.forEach((t,r)=>{let o=cN[e]?d-1-r:r,s=p+o*f;a?(t.point.x=s,t.point.y=e===V.top?i.top.y:i.bottom.y):(t.point.y=s,t.point.x=e===V.left?i.left.x:i.right.x);let c=n.get(t.id);c&&(c[+!t.isStart]=r)})}const DN=(e,t)=>e.pipe(He(10,void 0,{leading:!1,trailing:!0})).subscribe(()=>{let{doc:e,collections:n}=t(),r=M(n).collection(`relationshipEntities`).selectByIds(e.relationshipIds);for(let e of r){let{end:t,identification:r}=e,i=M(n).collection(`tableEntities`).selectById(t.tableId);if(!i)continue;let a=B(i.columnIds),o=M(n).collection(`tableColumnEntities`).selectByIds(t.columnIds).filter(e=>a(e.id));if(!o.length)continue;let s=o.every(e=>W(e.options,R.primaryKey));s!==r&&(e.identification=s)}}),ON=(e,t)=>e.pipe(He(10,void 0,{leading:!1,trailing:!0})).subscribe(()=>{let{doc:e,collections:n}=t(),r=M(n).collection(`relationshipEntities`).selectByIds(e.relationshipIds);for(let e of r){let{end:t,startRelationshipType:r}=e,i=M(n).collection(`tableEntities`).selectById(t.tableId);if(!i)continue;let a=B(i.columnIds),o=M(n).collection(`tableColumnEntities`).selectByIds(t.columnIds).filter(e=>a(e.id));if(!o.length)continue;let s=o.every(e=>W(e.options,R.notNull))?ih.dash:ih.ring;s!==r&&(e.startRelationshipType=s)}}),kN=B([IS.type,RS.type,Vx.type]),AN=({tags:e})=>!x(e)&&W(e,Hg.drag)?Ue(5):Ue(0,we),jN=(e,t)=>e.pipe(Be(e=>{kN(e.type)||d_()}),Ve(AN,{leading:!1,trailing:!0})).subscribe(()=>{lN(t())}),MN=B([yv.type,zv.type,Vx.type]),NN=B([Sg.type,wg.type,Eg.type,Og.type]),PN=({id:e})=>[e],FN=({ids:e})=>e,IN=({tableId:e})=>[e],LN=(e,{kind:t})=>t,RN=()=>og.flow,zN=(e,{kind:t})=>t??dg(e)?.kind??null,BN={[vg.type]:LN,[bg.type]:LN,[Mg.type]:LN,[Ig.type]:RN,[Pg.type]:zN,[Ag.type]:zN},VN={[PS.type]:PN,[BS.type]:PN,[RS.type]:PN,[HS.type]:PN,[WS.type]:PN,[mS.type]:PN,[gS.type]:PN,[IS.type]:FN,[Ag.type]:FN,[dC.type]:IN,[pC.type]:IN,[hC.type]:IN,[_C.type]:IN,[yC.type]:IN,[xC.type]:IN,[TC.type]:IN};function HN(e,t){let{tableIds:n,relationshipIds:r}=Zg(e,t);return new Set([...n,...r])}function UN(e,t,n,r){if(MN(t.type)||NN(t.type))return!1;let i=BN[t.type];if(i&&i(e,t.payload)!==r)return!1;let a=VN[t.type];if(!a)return!0;let o=HN(e,r);return a(t.payload).some(e=>o.has(e)||n.has(e))}const WN=[og.flow],GN=(e,t)=>{let n={flow:new Set},r=new Set;return e.pipe(Oe(e=>{let i=t(),a=!1;for(let t of WN)fg(i,t)&&UN(i,e,n[t],t)&&(r.add(t),a=!0);return a}),Ve(AN,{leading:!1,trailing:!0})).subscribe(()=>{let e=t(),i=[...r];r.clear();for(let t of i)fg(e,t)&&(lN(e,t),n[t]=HN(e,t))})},KN=[yv,zv,mS,gS,Vx,PS,BS,IS,RS,HS,WS,dC,pC,hC,_C,yC,xC,XS],qN=[TC],JN=[vg,bg,Sg,wg,Eg,Og,Ag,Mg,Pg,Ig],YN=[[[pC,TC,Vy,Gy],DN],[[pC,kC,Vy,Gy],ON],[KN,jN],[[...KN,...qN,...JN],GN]],XN=[[[Vy,Gy],(e,t,n)=>e.pipe(He(5,void 0,{leading:!1,trailing:!0})).subscribe(()=>{let e=t();C_(e,n),lN(e)})],[[BS],(e,t)=>e.pipe(Pe(we)).subscribe(()=>{let{doc:e,editor:n}=t(),r=n.drawRelationship?.start;!r||e.tableIds.includes(r.tableId)||(n.drawRelationship=null)})]],ZN=e=>e.pipe(Pe(we)),QN=[[[TC],(e,t)=>ZN(e).subscribe(({payload:{id:e}})=>{let{collections:n}=t(),r=M(n).collection(`tableColumnEntities`).selectById(e);r&&W(r.options,R.primaryKey)&&(W(r.options,R.notNull)||(r.options|=R.notNull))})],[[mS],(e,t)=>ZN(e).subscribe(({payload:{id:e,end:n}})=>{let{doc:{relationshipIds:r},collections:i}=t();if(!r.includes(e))return;let a=M(i).collection(`tableColumnEntities`).selectByIds(n.columnIds);for(let e of a)e.ui.keys=e.ui.keys|z.foreignKey})],[[gS],(e,t)=>ZN(e).subscribe(({payload:{id:e}})=>{let{doc:{relationshipIds:n},collections:r}=t();if(n.includes(e))return;let i=M(r).collection(`relationshipEntities`).selectById(e);if(!i)return;let a=M(r).collection(`tableColumnEntities`).selectByIds(i.end.columnIds);for(let e of a)e.ui.keys=e.ui.keys&~z.foreignKey})],[[Vy,Gy],(e,t)=>ZN(e).subscribe(()=>{let{doc:e,collections:n}=t(),r=M(n).collection(`relationshipEntities`).selectByIds(e.relationshipIds),i=M(n).collection(`tableEntities`).selectByIds(e.tableIds),a=new Set,o=M(n).collection(`tableColumnEntities`);for(let{end:e}of r){let t=o.selectByIds(e.columnIds);for(let e of t)e.ui.keys=e.ui.keys|z.foreignKey,a.add(e.id)}for(let e of i){let t=o.selectByIds(e.columnIds);for(let e of t)W(e.ui.keys,z.foreignKey)&&!a.has(e.id)&&(e.ui.keys=e.ui.keys&~z.foreignKey)}})]],$N=[...XN,...QN,...YN];function eP(e){let t=()=>e.state,n=$N.map(([n,r])=>{let i=new Se;return{pattern:B(n.map(String)),action$:i,subscription:r(i,t,e.context)}}),r=e.subscribe(e=>{for(let t of e)for(let e of n)e.pattern(t.type)&&e.action$.next(t)});return{destroy:()=>{n.forEach(({action$:e,subscription:t})=>{t.unsubscribe(),e.complete()}),n.splice(0,n.length),r()}}}function tP(e,{getReadonly:t=()=>!1,getHistory:n}={}){let r=new Set,i=eM(e),a=eP(i),o={notify:e=>i.dispatch(Oy(e)),dispatch:i.dispatchSync,getNextVersion:()=>e.clock.getNextVersion()},s=n?.(o)??Vj(o);s.setLimit(2048);let c=()=>dg(i.state),l=new Se,u=l.pipe(Qj(c)),d=new Se,f=new Se,p=f.pipe(Ie(void 0),Le(()=>d.pipe(Kj(jj,[[`@@move`,Oj],[`@@scroll`,Aj],[`@@color`,kj]])))),m=new xe(e=>i.subscribe(t=>e.next(t))).pipe(Uj(Sj),Jj(t,[Hg.shared]),Ee(200)),h=(...t)=>{let n=e.clock.getNextVersion();return Iu(i.state,i.context,t).map(e=>(x(e.version)&&(e.version=n),e))},g=(...e)=>{let t=h(e);l.next(t)},_=(...e)=>{queueMicrotask(()=>g(e))},v=()=>{Array.from(r).forEach(e=>le(e)?e():e.unsubscribe()),r.clear(),i.destroy(),a.destroy(),s.clear(),l.complete()},y=()=>{f.next(),s.clear()},ee=()=>{t()||c()||s.undo()},te=()=>{t()||c()||s.redo()};return r.add(p.subscribe(QC(i,s))).add(u.pipe(Uj(Mj),qj([Hg.changeOnly,Hg.shared]),Jj(t),$j(c)).subscribe(d)).add(u.pipe(Jj(t,[Hg.shared]),$j(c,[Hg.shared])).subscribe(i.dispatchSync)).add(i.subscribe(t=>{t.forEach(t=>e.clock.merge(t.version))})),Object.freeze({...i,dispatch:_,dispatchSync:g,destroy:v,undo:ee,redo:te,history:s,resetHistory:y,change$:m})}const nP={openColorPicker:`openColorPicker`,closeColorPicker:`closeColorPicker`,openToast:`openToast`,openTableProperties:`openTableProperties`,dragendColumnAll:`dragendColumnAll`,copy:`copy`,paste:`paste`,schemaGC:`schemaGC`,toggleSearch:`toggleSearch`,openThemeBuilder:`openThemeBuilder`,setThemeOptions:`setThemeOptions`,mouseTrackerStart:`mouseTrackerStart`,mouseTrackerEnd:`mouseTrackerEnd`,openDiffViewer:`openDiffViewer`,openAutomaticTablePlacement:`openAutomaticTablePlacement`,duplicateDragStart:`duplicateDragStart`,dragSelectStart:`dragSelectStart`};var rP=new WeakMap,iP=class{constructor(){Pj(this,rP,new Set)}on(e){return Ij(rP,this).has(e)||Ij(rP,this).add(e),()=>{Ij(rP,this).delete(e)}}emit(e){Ij(rP,this).forEach(t=>{qC(Reflect.get(t,e.type),e)})}clear(){Ij(rP,this).clear()}};const aP=O(nP.openColorPicker);O(nP.closeColorPicker),O(nP.openToast),O(nP.openTableProperties);const oP=O(nP.dragendColumnAll);O(nP.copy),O(nP.paste),O(nP.schemaGC),O(nP.toggleSearch),O(nP.openThemeBuilder),O(nP.setThemeOptions),O(nP.mouseTrackerStart),O(nP.mouseTrackerEnd),O(nP.openDiffViewer),O(nP.openAutomaticTablePlacement);const sP=O(nP.duplicateDragStart);O(nP.dragSelectStart);const cP=Qe();let lP=cP.os.name===`mac`,uP=cP.os.name===`ios`;cP.os.name,cP.os.name,cP.browser.name,cP.browser.name,cP.browser.name,$e(e=>{lP=e.os.name===`mac`,uP=e.os.name===`ios`,e.os.name,e.os.name,e.browser.name,e.browser.name,e.browser.name});const dP=()=>lP||uP,fP={edit:`edit`,stop:`stop`,search:`search`,undo:`undo`,redo:`redo`,addTable:`addTable`,addColumn:`addColumn`,addMemo:`addMemo`,removeTable:`removeTable`,removeColumn:`removeColumn`,primaryKey:`primaryKey`,selectAllTable:`selectAllTable`,selectAllColumn:`selectAllColumn`,relationshipZeroOne:`relationshipZeroOne`,relationshipZeroN:`relationshipZeroN`,relationshipOneOnly:`relationshipOneOnly`,relationshipOneN:`relationshipOneN`,tableProperties:`tableProperties`,focusView:`focusView`,zoomIn:`zoomIn`,zoomOut:`zoomOut`,zoomReset:`zoomReset`,handTool:`handTool`,zenMode:`zenMode`};Object.values(fP);const pP=()=>({[fP.edit]:[{shortcut:`Enter`}],[fP.stop]:[{shortcut:`Escape`}],[fP.search]:[{shortcut:`$mod+KeyK`,preventDefault:!0,stopPropagation:!0}],[fP.undo]:[{shortcut:`$mod+KeyZ`,preventDefault:!0,stopPropagation:!0}],[fP.redo]:[{shortcut:`$mod+Shift+KeyZ`,preventDefault:!0,stopPropagation:!0}],[fP.addTable]:[{shortcut:`Alt+KeyN`,preventDefault:!0}],[fP.addColumn]:[{shortcut:`Alt+Enter`,preventDefault:!0}],[fP.addMemo]:[{shortcut:`Alt+KeyM`,preventDefault:!0}],[fP.removeTable]:[{shortcut:`$mod+Backspace`,preventDefault:!0},{shortcut:`$mod+Delete`,preventDefault:!0}],[fP.removeColumn]:[{shortcut:`Alt+Backspace`,preventDefault:!0},{shortcut:`Alt+Delete`,preventDefault:!0}],[fP.primaryKey]:[{shortcut:`Alt+KeyK`,preventDefault:!0}],[fP.selectAllTable]:[{shortcut:`$mod+KeyA`,preventDefault:!0},{shortcut:`$mod+Alt+KeyA`,preventDefault:!0}],[fP.selectAllColumn]:[{shortcut:`Alt+KeyA`,preventDefault:!0}],[fP.relationshipZeroOne]:[{shortcut:`$mod+Alt+Digit1`,preventDefault:!0}],[fP.relationshipZeroN]:[{shortcut:`$mod+Alt+Digit2`,preventDefault:!0}],[fP.relationshipOneOnly]:[{shortcut:`$mod+Alt+Digit3`,preventDefault:!0}],[fP.relationshipOneN]:[{shortcut:`$mod+Alt+Digit4`,preventDefault:!0}],[fP.tableProperties]:[{shortcut:`Alt+Space`,preventDefault:!0}],[fP.focusView]:[{shortcut:`Alt+KeyF`,preventDefault:!0,stopPropagation:!0}],[fP.zoomIn]:[{shortcut:`$mod+Equal`,preventDefault:!0,stopPropagation:!0}],[fP.zoomOut]:[{shortcut:`$mod+Minus`,preventDefault:!0,stopPropagation:!0}],[fP.zoomReset]:[{shortcut:`$mod+Digit0`,preventDefault:!0,stopPropagation:!0}],[fP.handTool]:[{shortcut:`Space`,preventDefault:!0}],[fP.zenMode]:[{shortcut:`Alt+KeyZ`,preventDefault:!0,stopPropagation:!0}]}),mP={Shift:`Shift`,Meta:`Meta`,Alt:`Alt`,Control:`Control`};mP.Shift,mP.Meta,mP.Alt,mP.Control,mP.Shift,mP.Meta,mP.Alt,mP.Control;function hP(e){return dP()?e.metaKey:e.ctrlKey}function gP(e,t){let{devtools:n=!0,...r}=t??{},i=Bj(e),a=tP(i,r),o=Ma(pP(),{shallow:!0}),s=new Se,c=new Se,l=new iP;return Object.freeze({...i,actions:xj,store:a,keyBindingMap:o,shortcut$:s,keydown$:c,emitter:l})}const _P=Si({}),vP=(e,t)=>qa(e,{..._P,value:t??_P.value});function yP(e){e.store.dispatchSync(Uy()),e.store.destroy(),e.keydown$.complete(),e.shortcut$.complete(),e.emitter.clear()}const bP=[`table`,`memo`,`relationship`],xP=e=>typeof e==`string`&&bP.includes(e);function SP(e){let t=e;if(typeof t.clientX==`number`)return{x:t.clientX,y:t.clientY};let n=e.touches?.[0];return n?{x:n.clientX,y:n.clientY}:null}const CP=(e,t)=>!!(e&&t&&e.x===t.x&&e.y===t.y),wP=new WeakMap,TP=`mousedown.sceneHit touchstart.sceneHit contextmenu.sceneHit`;function EP(e){return e.on(TP,t=>{let n=t.evt,r=SP(n),i=wP.get(e),a=t.target===e?null:OP(t.target),o=n.type===`contextmenu`&&CP(i?.point,r)?i?.hit??null:null;wP.set(e,{evt:n,hit:a??o,point:r})}),()=>{e.off(TP),wP.delete(e)}}function DP(e,t){let n=`${t}-`,r=e.id();if(r.startsWith(n))return r.slice(n.length);let[i,a=``]=e.name().split(/\s+/);return i===t?a:``}function OP(e){let t=e;for(;t;){let e=t.getAttr(`kind`);if(xP(e))return{kind:e,id:DP(t,e)};t=t.getParent()}return null}const kP=Si({}),AP=e=>qa(e,kP);function jP({app:e,container:t,scene:n,width:r,height:i,theme:a}){let o=new y({container:t,width:r,height:i}),s={host:o.container(),parentElement:null},c=Ja(s,_P,e),l=a?Ja(s,kP,a):null,u=EP(o);return Jf(o,n),{stage:o,destroy:()=>{u(),Jf(o,null),l?.destroy(),c.destroy(),o.destroy()}}}const MP=e=>new Promise(t=>setTimeout(t,e)),NP=32767;function PP(e,t,n){let r=Math.max(t,n),i=t*n;return r<=0||i<=0?e:Math.min(e,NP/r,16384/Math.sqrt(i))}function FP({x:e,y:t,width:n,height:r},i){return{x:e-i,y:t-i,width:n+i*2,height:r+i*2}}function IP(e){let{settings:{show:t},doc:{relationshipIds:n},collections:r}=e,i=F_(e);if(W(t,P.relationship)){let e=M(r).collection(`relationshipEntities`).selectByIds(n);for(let t of e){let e=Bh(t);i=i?P_(i,e):e}}return FP(i??{x:0,y:0,width:0,height:0},80)}function LP({width:e,height:t},n=1){let r=n>0?n:1,i=Math.max(e,t),a=e*t;return i<=0||a<=0?r:Math.min(r,NP/i,Math.sqrt(268435456/a))}const RP={"arrow-right":et,atom:tt,braces:nt,brackets:rt,"case-sensitive":it,check:at,"chevron-down":ot,"chevron-right":st,code:ct,contrast:lt,copy:ut,database:dt,diff:ft,"external-link":pt,eye:mt,"file-diff":ht,"file-image":gt,"file-input":_t,"file-output":vt,fullscreen:yt,"grip-vertical":bt,hand:xt,"key-round":St,maximize:Ct,minimize:wt,minus:Tt,"moon-star":Et,"mouse-pointer-2":Dt,network:Ot,palette:kt,plus:At,"redo-2":jt,"refresh-cw":Mt,"rotate-ccw-clock":Nt,search:Pt,settings:Ft,"share-2":It,spline:Lt,"sticky-note":Rt,sun:zt,table:Bt,"table-2":Vt,"table-properties":Ht,"undo-2":Ut,"wand-sparkles":Wt,waypoints:Gt,workflow:Kt,x:qt},zP={ZeroOneN:[[`circle`,{cx:`7`,cy:`12`,r:`5`}],[`path`,{d:`M12 12h10`}],[`path`,{d:`M15 6v12`}],[`path`,{d:`M16 12l6-6`}],[`path`,{d:`M16 12l6 6`}]],ZeroOne:[[`path`,{d:`M2 12h3`}],[`circle`,{cx:`10`,cy:`12`,r:`5`}],[`path`,{d:`M15 12h7`}],[`path`,{d:`M20 6v12`}]],ZeroN:[[`path`,{d:`M2 12h3`}],[`circle`,{cx:`10`,cy:`12`,r:`5`}],[`path`,{d:`M15 12h7`}],[`path`,{d:`M15 12l7-6`}],[`path`,{d:`M15 12l7 6`}]],OneOnly:[[`path`,{d:`M2 12h20`}],[`path`,{d:`M14 6v12`}],[`path`,{d:`M19 6v12`}]],OneN:[[`path`,{d:`M2 12h20`}],[`path`,{d:`M14 6v12`}],[`path`,{d:`M15 12l7-6`}],[`path`,{d:`M15 12l7 6`}]],One:[[`path`,{d:`M2 12h20`}],[`path`,{d:`M14 6v12`}]],N:[[`path`,{d:`M2 12h20`}],[`path`,{d:`M15 12l7-6`}],[`path`,{d:`M15 12l7 6`}]]},BP={};VP();function VP(){for(let e of Object.keys(RP))BP[e]={name:e,node:RP[e]};for(let e of Object.keys(zP))BP[e]={name:e,node:zP[e]}}function HP(e){return BP[e]}const UP=`-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', 'Open Sans', system-ui, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji'`;Hd.global`
|
|
27
27
|
:host {
|
|
28
|
-
--text-font-family: ${
|
|
28
|
+
--text-font-family: ${UP};
|
|
29
29
|
--code-font-family: ${`'Menlo', 'Consolas', 'Bitstream Vera Sans Mono', monospace, 'Apple Color Emoji', 'Segoe UI Emoji'`};
|
|
30
30
|
}
|
|
31
|
-
`;const jP=AP,MP=e=>`normal normal 12px ${e}`;MP(jP);const NP={ascent:0,descent:0},PP=new Map;function FP(e=jP){let t=PP.get(e);if(t)return t;if(typeof document>`u`)return NP;let n=document.createElement(`canvas`).getContext(`2d`);if(!n)return NP;n.font=MP(e);let r=n.measureText(`M`),i=r.fontBoundingBoxAscent??r.actualBoundingBoxAscent,a=r.fontBoundingBoxDescent??r.actualBoundingBoxDescent;if(!Number.isFinite(i)||!Number.isFinite(a))return NP;let o={ascent:i,descent:a};return PP.set(e,o),o}const IP=[20,24,28,35,60],LP=1.5,RP=Number(`0 0 24 24`.split(` `)[2]),zP=`transparent`,BP=zP,VP=`pointer`;function HP(e,t){let n=e.target?.getStage()?.container();n&&(n.style.cursor=t)}function UP(e){return e instanceof MouseEvent}function WP(e,t,n,r){if(!UP(t)||!t.altKey||t.button!==0)return!1;let{store:i,emitter:a}=e;return i.state.editor.selectedMap[n]||i.dispatchSync(r===Qh.memo?XC(n,!1):aw(n,!1)),t.preventDefault(),a.emit(JN()),!0}const GP=Ea({active:{}});function KP(e,t=`document`){GP.active[q_(e,t)]=!0,Y_(e,t)}function qP(e,t=`document`){Reflect.deleteProperty(GP.active,q_(e,t)),X_(e,t)}function JP(e,t){let n=e??null;for(;n;){let e=n.getAttr(`kind`);if(typeof e==`string`&&t.includes(e))return!0;n=n.getParent()}return!1}const YP={focus:`@dineug/erd-editor/internal-focus`,forceFocus:`@dineug/erd-editor/internal-force-focus`,forwardMoveStart:`@dineug/erd-editor/internal-forward-move-start`};function XP(e,t){function n(n,r){return new CustomEvent(e,{detail:n,...t,...r})}return n.toString=()=>`${e}`,n.type=e,n}XP(YP.focus),XP(YP.forceFocus);const ZP=XP(YP.forwardMoveStart,{bubbles:!0,composed:!0});function QP(e){return Ee(()=>Oe(window,e))}QP(`keyup`);const $P=QP(`mousedown`),eF=QP(`mousemove`),tF=QP(`mouseup`),nF=QP(`touchstart`),rF=QP(`touchmove`),iF=QP(`touchend`),aF=QP(`dragstart`),oF=QP(`pointercancel`),sF=QP(`blur`);Se().pipe(Pe());const cF=QP(ZP.type).pipe(Ae(e=>e.detail.originEvent)),lF=je($P,nF,cF),uF=je(tF,iF,aF,oF,sF);let dF=0,fF=0;typeof window<`u`&&lF.subscribe(e=>{UP(e)?(dF=e.clientX,fF=e.clientY):(dF=e.touches[0].clientX,fF=e.touches[0].clientY)});const pF=je(eF.pipe(Ae(e=>{let t=e.clientX,n=e.clientY,r=t-dF,i=n-fF;return dF=t,fF=n,{event:e,movementX:r,movementY:i,x:t,y:n}})),rF.pipe(De(e=>e.touches.length===1),Ae(e=>{let t=e.touches[0].clientX,n=e.touches[0].clientY,r=t-dF,i=n-fF;return dF=t,fF=n,{event:e,movementX:r,movementY:i,x:t,y:n}}))).pipe(Ie(uF));function mF(e,t){let n=aP(e),r=e=>({event:t,movementX:r,movementY:i})=>{t.type===`mousemove`&&t.preventDefault();let{store:a}=n.value;a.dispatch(PA(r,i,e))};return{onMoveStart:e=>{if(!e?.target)return;let{store:i}=n.value,a=t.entityId(),o=t.source.value,s=!JP(e.target,t.blockedKinds(o));if(s&&WP(n.value,e.evt,a,t.selectType))return;let c=nP(e.evt)||!!i.state.editor.selectedMap[a];i.dispatch(t.selectType===Qh.memo?XC(a,c):aw(a,c)),s&&(KP(i.state,o),pF.subscribe(r(o)).add(()=>qP(i.state,o)))}}}const hF=[`table-header-color`,`column-row`,`icon`,`input-padding`],gF=[`icon`];function _F(e,t,n){return mF(e,{entityId:()=>t.table.id,selectType:Qh.table,blockedKinds:e=>e===`document`?hF:gF,source:n})}function vF(){let e=new Set;return oa(()=>{Array.from(e).forEach(e=>ue(e)?e():e.unsubscribe()),e.clear()}),{addUnsubscribe:(...t)=>{t.forEach(t=>e.add(t))}}}function yF(e,t,n,r=null){if(!e||n!==e.tableId)return!1;switch(t){case`tableName`:case`tableComment`:return t===e.focusType}return r===e.columnId&&t===e.focusType}const bF=(e,t,n)=>e?.tableId===t&&e.selectColumnIds.includes(n);function xF(e,t,n,r=null){if(e?.tableId!==n)return!1;switch(t){case W.tableName:case W.tableComment:return t===e.focusType&&e.edit}return r===e.columnId&&t===e.focusType&&e.edit}const SF={grayColor1:`gray-1`,grayColor2:`gray-2`,grayColor3:`gray-3`,grayColor4:`gray-4`,grayColor5:`gray-5`,grayColor6:`gray-6`,grayColor7:`gray-7`,grayColor8:`gray-8`,grayColor9:`gray-9`,grayColor10:`gray-10`,grayColor11:`gray-11`,grayColor12:`gray-12`,accentColor1:`accent-1`,accentColor2:`accent-2`,accentColor3:`accent-3`,accentColor4:`accent-4`,accentColor5:`accent-5`,accentColor6:`accent-6`,accentColor7:`accent-7`,accentColor8:`accent-8`,accentColor9:`accent-9`,accentColor10:`accent-10`,accentColor11:`accent-11`,accentColor12:`accent-12`,canvasBackground:`gray-3`,canvasBoundaryBackground:`gray-1`,tableBackground:`gray-2`,tableSelect:`accent-8`,tableBorder:`gray-6`,memoBackground:`gray-2`,memoSelect:`accent-8`,memoBorder:`gray-6`,columnSelect:`gray-5`,columnHover:`gray-4`,relationshipHover:`accent-8`,toolbarBackground:`gray-1`,contextMenuBackground:`gray-2`,contextMenuSelect:`gray-4`,contextMenuHover:`accent-7`,contextMenuBorder:`gray-6`,minimapBorder:`override-black`,minimapShadow:`override-black`,minimapViewportBorder:`accent-7`,minimapViewportBorderHover:`accent-8`,toastBackground:`gray-2`,toastBorder:`gray-6`,dragSelectBackground:`accent-5`,dragSelectBorder:`accent-8`,scrollbarTrack:`grayA-3`,scrollbarThumb:`gray-9`,scrollbarThumbHover:`gray-10`,foreground:`gray-11`,active:`gray-12`,placeholder:`grayA-10`,focus:`accent-8`,inputActive:`accent-10`,keyPK:`custom-amber--9`,keyFK:`custom-ruby--9`,keyPFK:`custom-cyan--9`,diffInsertBackground:`custom-green--4`,diffDeleteBackground:`custom-red--4`,diffCrossBackground:`custom-blue--4`,diffInsertForeground:`custom-green--11`,diffDeleteForeground:`custom-red--11`,diffCrossForeground:`custom-blue--11`},CF={amber:Ht,amberA:Ut,amberDark:Wt,amberDarkA:Gt,blue:Kt,blueA:qt,blueDark:Jt,blueDarkA:Yt,bronze:Xt,bronzeA:Zt,bronzeDark:Qt,bronzeDarkA:$t,brown:en,brownA:tn,brownDark:nn,brownDarkA:rn,crimson:an,crimsonA:on,crimsonDark:sn,crimsonDarkA:cn,cyan:ln,cyanA:un,cyanDark:dn,cyanDarkA:fn,gold:pn,goldA:mn,goldDark:hn,goldDarkA:gn,grass:_n,grassA:vn,grassDark:yn,grassDarkA:bn,gray:xn,grayA:Sn,grayDark:Cn,grayDarkA:wn,green:Tn,greenA:En,greenDark:Dn,greenDarkA:On,indigo:kn,indigoA:An,indigoDark:jn,indigoDarkA:Mn,iris:Nn,irisA:Pn,irisDark:Fn,irisDarkA:In,jade:Ln,jadeA:Rn,jadeDark:zn,jadeDarkA:Bn,lime:Vn,limeA:Hn,limeDark:Un,limeDarkA:Wn,mauve:Gn,mauveA:Kn,mauveDark:qn,mauveDarkA:Jn,mint:Yn,mintA:Xn,mintDark:Zn,mintDarkA:Qn,olive:$n,oliveA:er,oliveDark:tr,oliveDarkA:nr,orange:rr,orangeA:ir,orangeDark:ar,orangeDarkA:or,pink:sr,pinkA:cr,pinkDark:lr,pinkDarkA:ur,plum:dr,plumA:fr,plumDark:pr,plumDarkA:mr,purple:hr,purpleA:gr,purpleDark:_r,purpleDarkA:vr,red:yr,redA:br,redDark:xr,redDarkA:Sr,ruby:Cr,rubyA:wr,rubyDark:Tr,rubyDarkA:Er,sage:Dr,sageA:Or,sageDark:kr,sageDarkA:Ar,sand:jr,sandA:Mr,sandDark:Nr,sandDarkA:Pr,sky:Fr,skyA:Ir,skyDark:Lr,skyDarkA:Rr,slate:zr,slateA:Br,slateDark:Vr,slateDarkA:Hr,teal:Ur,tealA:Wr,tealDark:Gr,tealDarkA:Kr,tomato:qr,tomatoA:Jr,tomatoDark:Yr,tomatoDarkA:Xr,violet:Zr,violetA:Qr,violetDark:$r,violetDarkA:ei,yellow:ti,yellowA:ni,yellowDark:ri,yellowDarkA:ii};Object.values({dark:`dark`,light:`light`}),Object.values({gray:`gray`,mauve:`mauve`,slate:`slate`,sage:`sage`,olive:`olive`,sand:`sand`}),Object.values({gray:`gray`,gold:`gold`,bronze:`bronze`,brown:`brown`,yellow:`yellow`,amber:`amber`,orange:`orange`,tomato:`tomato`,red:`red`,ruby:`ruby`,crimson:`crimson`,pink:`pink`,plum:`plum`,purple:`purple`,violet:`violet`,iris:`iris`,indigo:`indigo`,blue:`blue`,cyan:`cyan`,teal:`teal`,jade:`jade`,green:`green`,grass:`grass`,lime:`lime`,mint:`mint`,sky:`sky`}),Object.keys(SF);const wF=[`tomato`,`gold`,`grass`,`teal`,`iris`,`purple`,`plum`,`pink`].map(e=>ze(CF,`${e}.${e}9`)??``);function TF(e){let t=0;for(let n=0;n<e.length;n++)t=t*31+e.charCodeAt(n)|0;return wF[Math.abs(t)%wF.length]}function EF(e,t){let n=aP(e),{addUnsubscribe:r}=vF(),i=Ea({force:!1}),a=()=>{i.force=!i.force};aa(()=>{let{store:e}=n.value,{editor:{sharedFocusTrackerMap:t}}=e.state;r(Da(t).subscribe(a))});let o=()=>{let{store:e}=n.value;return i.force,Object.values(e.state.editor.sharedFocusTrackerMap)};return{sharedFocusTableColor:()=>{let e=o().find(e=>e.tableId===t);return e?TF(e.id):null},sharedFocusColor:(e,n)=>{let r=o().find(r=>yF(r,e,t,n));return r?TF(r.id):null}}}function DF(e,t){let n=aP(e),{addUnsubscribe:r}=vF(),i=Ea({force:!1}),a=()=>{i.force=!i.force};return aa(()=>{let{store:e}=n.value,{editor:{sharedSelectionTrackerMap:t}}=e.state;r(Da(t).subscribe(a))}),{sharedSelectColor:()=>{let{store:e}=n.value;i.force;let r=Object.values(e.state.editor.sharedSelectionTrackerMap).find(e=>e.selectedIds.includes(t));return r?TF(r.id):null}}}const OF=gi(`document`),kF=e=>Va(e,OF),AF=e=>e>.6?IP[0]:e>.5?IP[1]:e>.4?IP[2]:e>.3?IP[3]:IP[4],jF=(e,t)=>{let n=aP(t),r=_P(t),i=kF(t),{sharedFocusTableColor:a}=EF(t,e.table.id),{sharedSelectColor:o}=DF(t,e.table.id),{onMoveStart:s}=_F(t,e,i),c=t=>{let{emitter:r}=n.value;r.emit(KN({x:t.evt.clientX,y:t.evt.clientY,color:e.table.ui.color}))};return()=>{let{store:t}=n.value,{editor:l}=t.state,{table:u}=e,d=r.value,f=i.value,p=!!l.selectedMap[u.id],m=T_(t.state,u,f),{zoomLevel:h}=F_(t.state,f),g=Be(u.name.trim()),_=a(),v=o(),ee=_??v;return A`<k-group id=${e.preview?``:`table-${u.id}`} name="table high-level-table" kind="table" visible=${e.visible??!0} selected=${p} sharedFocus=${_} sharedSelect=${v} x=${m.x} y=${m.y} @mousedown=${s} @touchstart=${s}><k-rect name="table-body" x=${1/2} y=${1/2} width=${m.width-1} height=${m.height-1} cornerRadius=${6} fill=${d.tableBackground} stroke=${p?d.tableSelect:d.tableBorder} strokeWidth=${1} />${ee?A`<k-rect name="table-ring" x=${-1/2} y=${-1/2} width=${m.width+1} height=${m.height+1} cornerRadius=${6} stroke=${ee} strokeWidth=${1} />`:null}<k-rect name="table-header-color" kind="table-header-color" x=${1} y=${0} width=${m.width-2} height=${4} cornerRadius=${[6,6,0,0]} fill=${u.ui.color} @click=${c} @mouseenter=${e=>{HP(e,VP)}} @mouseleave=${e=>{HP(e,``)}} /><k-text name="high-level-table-name" x=${1} y=${9} width=${m.width-2} height=${m.height-18} text=${g?`unnamed`:u.name} fill=${g?d.placeholder:d.active} fontFamily=${jP} fontSize=${AF(h)} fontStyle="bold" align="center" verticalAlign="middle" wrap="char" /></k-group>`}};Id`
|
|
31
|
+
`;function WP(e){return e instanceof MouseEvent}function GP(e){return(e.touches?.length??0)>1}const KP=UP,qP=e=>`normal normal 12px ${e}`;qP(KP);const JP={ascent:0,descent:0},YP=new Map;function XP(e=KP){let t=YP.get(e);if(t)return t;if(typeof document>`u`)return JP;let n=document.createElement(`canvas`).getContext(`2d`);if(!n)return JP;n.font=qP(e);let r=n.measureText(`M`),i=r.fontBoundingBoxAscent??r.actualBoundingBoxAscent,a=r.fontBoundingBoxDescent??r.actualBoundingBoxDescent;if(!Number.isFinite(i)||!Number.isFinite(a))return JP;let o={ascent:i,descent:a};return YP.set(e,o),o}const ZP=[20,24,28,35,60],QP=1.5;function $P(e){return{color:e,blur:20,offsetX:0,offsetY:2,opacity:.4}}const eF=Number(`0 0 24 24`.split(` `)[2]),tF=`transparent`,nF=tF,rF=new Set([tF,`none`,``]);function iF(e){let t=(e??``).trim();return rF.has(t)?null:{color:t,blur:10,offsetX:0,offsetY:2,opacity:1}}const aF=`pointer`,oF=new WeakMap,sF=e=>e.target?.getStage()?.container();function cF(e,t){let n=sF(e);if(!n)return;let r=oF.get(n);r?r.requested=t:n.style.cursor=t}function lF(e,t){let n=sF(e);if(!n||!WP(e.evt))return me;let r={requested:oF.get(n)?.requested??n.style.cursor};return oF.set(n,r),n.style.cursor=t,()=>{oF.get(n)===r&&(oF.delete(n),n.style.cursor=r.requested)}}function uF(e){let t=Math.min(6.5,e/2),n=Math.min(4,t),r=t-Math.sqrt(t**2-(t-n)**2);return[`M ${n} ${r}`,`A ${t} ${t} 0 0 0 0 ${t}`,`L 0 ${e-t}`,`A ${t} ${t} 0 0 0 ${n} ${e-r}`,`Z`].join(` `)}function dF(e,t,n,r){if(!WP(t)||!t.altKey||t.button!==0)return!1;let{store:i,emitter:a}=e;return i.state.editor.selectedMap[n]||i.dispatchSync(r===ig.memo?tw(n,!1):uw(n,!1)),t.preventDefault(),a.emit(sP()),!0}const fF=Ma({active:{}});function pF(e,t=`document`){fF.active[$_(e,t)]=!0,tv(e,t)}function mF(e,t=`document`){Reflect.deleteProperty(fF.active,$_(e,t)),nv(e,t)}function hF(e,t){let n=e??null;for(;n;){let e=n.getAttr(`kind`);if(typeof e==`string`&&t.includes(e))return!0;n=n.getParent()}return!1}const gF={focus:`@dineug/erd-editor/internal-focus`,forceFocus:`@dineug/erd-editor/internal-force-focus`,forwardMoveStart:`@dineug/erd-editor/internal-forward-move-start`};function _F(e,t){function n(n,r){return new CustomEvent(e,{detail:n,...t,...r})}return n.toString=()=>`${e}`,n.type=e,n}_F(gF.focus),_F(gF.forceFocus);const vF=_F(gF.forwardMoveStart,{bubbles:!0,composed:!0});function yF(e){return De(()=>ke(window,e))}yF(`keyup`);const bF=yF(`mousedown`),xF=yF(`mousemove`),SF=yF(`mouseup`),CF=yF(`touchstart`),wF=yF(`touchmove`),TF=yF(`touchend`),EF=yF(`dragstart`),DF=yF(`pointercancel`),OF=yF(`blur`);Ce().pipe(Fe());const kF=yF(vF.type).pipe(je(e=>e.detail.originEvent)),AF=Me(bF,CF,kF),jF=Me(SF,TF,EF,DF,OF);let MF=0,NF=0;typeof window<`u`&&AF.subscribe(e=>{WP(e)?(MF=e.clientX,NF=e.clientY):(MF=e.touches[0].clientX,NF=e.touches[0].clientY)});const PF=Me(xF.pipe(je(e=>{let t=e.clientX,n=e.clientY,r=t-MF,i=n-NF;return MF=t,NF=n,{event:e,movementX:r,movementY:i,x:t,y:n}})),wF.pipe(Oe(e=>e.touches.length===1),je(e=>{let t=e.touches[0].clientX,n=e.touches[0].clientY,r=t-MF,i=n-NF;return MF=t,NF=n,{event:e,movementX:r,movementY:i,x:t,y:n}}))).pipe(ze(jF));function FF(e,t){let n=vP(e),r=e=>({event:t,movementX:r,movementY:i})=>{t.type===`mousemove`&&t.preventDefault();let{store:a}=n.value;a.dispatch(GA(r,i,e))};return{onMoveStart:e=>{if(!e?.target||GP(e.evt))return;let{store:i}=n.value,a=t.entityId(),o=t.source.value,s=!hF(e.target,t.blockedKinds(o));if(s&&dF(n.value,e.evt,a,t.selectType))return;let c=hP(e.evt)||!!i.state.editor.selectedMap[a];if(i.dispatch(t.selectType===ig.memo?tw(a,c):uw(a,c)),!s)return;let l=r(o),u=!1,d=0,f=0,p=()=>{u=!0,pF(i.state,o)};hF(e.target,t.clickKinds?.(o)??[])||p(),PF.subscribe(e=>{if(u)return l(e);e.event.type===`mousemove`&&e.event.preventDefault(),d+=e.movementX,f+=e.movementY,!(Math.abs(d)+Math.abs(f)<4)&&(p(),l({...e,movementX:d,movementY:f}))}).add(()=>u&&mF(i.state,o))}}}const IF=[`table-header-color`,`column-row`,`icon`],LF=[`input-padding`],RF=[`icon`];function zF(e,t,n){return FF(e,{entityId:()=>t.table.id,selectType:ig.table,blockedKinds:e=>e===`document`?IF:RF,clickKinds:e=>e===`document`?LF:[],source:n})}function BF(){let e=new Set;return fa(()=>{Array.from(e).forEach(e=>le(e)?e():e.unsubscribe()),e.clear()}),{addUnsubscribe:(...t)=>{t.forEach(t=>e.add(t))}}}function VF(e,t,n,r=null){if(!e||n!==e.tableId)return!1;switch(t){case`tableName`:case`tableComment`:return t===e.focusType}return r===e.columnId&&t===e.focusType}const HF=(e,t,n)=>e?.tableId===t&&e.selectColumnIds.includes(n);function UF(e,t,n,r=null){if(e?.tableId!==n)return!1;switch(t){case U.tableName:case U.tableComment:return t===e.focusType&&e.edit}return r===e.columnId&&t===e.focusType&&e.edit}const WF={grayColor1:`gray-1`,grayColor2:`gray-2`,grayColor3:`gray-3`,grayColor4:`gray-4`,grayColor5:`gray-5`,grayColor6:`gray-6`,grayColor7:`gray-7`,grayColor8:`gray-8`,grayColor9:`gray-9`,grayColor10:`gray-10`,grayColor11:`gray-11`,grayColor12:`gray-12`,accentColor1:`accent-1`,accentColor2:`accent-2`,accentColor3:`accent-3`,accentColor4:`accent-4`,accentColor5:`accent-5`,accentColor6:`accent-6`,accentColor7:`accent-7`,accentColor8:`accent-8`,accentColor9:`accent-9`,accentColor10:`accent-10`,accentColor11:`accent-11`,accentColor12:`accent-12`,canvasBackground:`gray-3`,canvasBoundaryBackground:`gray-1`,tableBackground:`gray-2`,tableHeaderBackground:`gray-5`,tableSelect:`accent-8`,tableBorder:`gray-6`,tableShadow:`override-transparent`,memoBackground:`gray-2`,memoSelect:`accent-8`,memoBorder:`gray-6`,memoShadow:`override-transparent`,columnSelect:`accent-3`,columnSelectHover:`accent-4`,columnHover:`gray-4`,relationshipHover:`accent-8`,visualizationLink:`gray-7`,visualizationColumn:`gray-8`,visualizationRelationship:`gray-8`,toolbarBackground:`gray-1`,contextMenuBackground:`gray-2`,contextMenuSelect:`gray-4`,contextMenuHover:`accent-7`,contextMenuBorder:`gray-6`,minimapBorder:`override-black`,minimapShadow:`override-black`,minimapViewportBorder:`accent-7`,minimapViewportBorderHover:`accent-8`,toastBackground:`gray-2`,toastBorder:`gray-6`,dragSelectBackground:`accent-5`,dragSelectBorder:`accent-8`,scrollbarTrack:`grayA-3`,scrollbarThumb:`gray-9`,scrollbarThumbHover:`gray-10`,foreground:`gray-11`,active:`gray-12`,placeholder:`grayA-10`,focus:`accent-8`,inputActive:`accent-10`,keyPK:`custom-amber--9`,keyFK:`custom-ruby--9`,keyPFK:`custom-cyan--9`,diffInsertBackground:`custom-green--4`,diffDeleteBackground:`custom-red--4`,diffCrossBackground:`custom-blue--4`,diffInsertForeground:`custom-green--11`,diffDeleteForeground:`custom-red--11`,diffCrossForeground:`custom-blue--11`},GF={amber:Jt,amberA:Yt,amberDark:Xt,amberDarkA:Zt,blue:Qt,blueA:$t,blueDark:en,blueDarkA:tn,bronze:nn,bronzeA:rn,bronzeDark:an,bronzeDarkA:on,brown:sn,brownA:cn,brownDark:ln,brownDarkA:un,crimson:dn,crimsonA:fn,crimsonDark:pn,crimsonDarkA:mn,cyan:hn,cyanA:gn,cyanDark:_n,cyanDarkA:vn,gold:yn,goldA:bn,goldDark:xn,goldDarkA:Sn,grass:Cn,grassA:wn,grassDark:Tn,grassDarkA:En,gray:Dn,grayA:On,grayDark:kn,grayDarkA:An,green:jn,greenA:Mn,greenDark:Nn,greenDarkA:Pn,indigo:Fn,indigoA:In,indigoDark:Ln,indigoDarkA:Rn,iris:zn,irisA:Bn,irisDark:Vn,irisDarkA:Hn,jade:Un,jadeA:Wn,jadeDark:Gn,jadeDarkA:Kn,lime:qn,limeA:Jn,limeDark:Yn,limeDarkA:Xn,mauve:Zn,mauveA:Qn,mauveDark:$n,mauveDarkA:er,mint:tr,mintA:nr,mintDark:rr,mintDarkA:ir,olive:ar,oliveA:or,oliveDark:sr,oliveDarkA:cr,orange:lr,orangeA:ur,orangeDark:dr,orangeDarkA:fr,pink:pr,pinkA:mr,pinkDark:hr,pinkDarkA:gr,plum:_r,plumA:vr,plumDark:yr,plumDarkA:br,purple:xr,purpleA:Sr,purpleDark:Cr,purpleDarkA:wr,red:Tr,redA:Er,redDark:Dr,redDarkA:Or,ruby:kr,rubyA:Ar,rubyDark:jr,rubyDarkA:Mr,sage:Nr,sageA:Pr,sageDark:Fr,sageDarkA:Ir,sand:Lr,sandA:Rr,sandDark:zr,sandDarkA:Br,sky:Vr,skyA:Hr,skyDark:Ur,skyDarkA:Wr,slate:Gr,slateA:Kr,slateDark:qr,slateDarkA:Jr,teal:Yr,tealA:Xr,tealDark:Zr,tealDarkA:Qr,tomato:$r,tomatoA:ei,tomatoDark:ti,tomatoDarkA:ni,violet:ri,violetA:ii,violetDark:ai,violetDarkA:oi,yellow:si,yellowA:ci,yellowDark:li,yellowDarkA:ui};Object.values({dark:`dark`,light:`light`}),Object.values({gray:`gray`,mauve:`mauve`,slate:`slate`,sage:`sage`,olive:`olive`,sand:`sand`});const KF={gray:`gray`,gold:`gold`,bronze:`bronze`,brown:`brown`,yellow:`yellow`,amber:`amber`,orange:`orange`,tomato:`tomato`,red:`red`,ruby:`ruby`,crimson:`crimson`,pink:`pink`,plum:`plum`,purple:`purple`,violet:`violet`,iris:`iris`,indigo:`indigo`,blue:`blue`,cyan:`cyan`,teal:`teal`,jade:`jade`,green:`green`,grass:`grass`,lime:`lime`,mint:`mint`,sky:`sky`};Object.values(KF),Object.keys(WF),B([KF.gray,KF.gold,KF.bronze]);const qF=[`tomato`,`gold`,`grass`,`teal`,`iris`,`purple`,`plum`,`pink`].map(e=>We(GF,`${e}.${e}9`)??``);function JF(e){let t=0;for(let n=0;n<e.length;n++)t=t*31+e.charCodeAt(n)|0;return qF[Math.abs(t)%qF.length]}function YF(e,t){let n=vP(e),{addUnsubscribe:r}=BF(),i=Ma({force:!1}),a=()=>{i.force=!i.force};da(()=>{let{store:e}=n.value,{editor:{sharedFocusTrackerMap:t}}=e.state;r(Na(t).subscribe(a))});let o=()=>{let{store:e}=n.value;return i.force,Object.values(e.state.editor.sharedFocusTrackerMap)};return{sharedFocusTableColor:()=>{let e=o().find(e=>e.tableId===t);return e?JF(e.id):null},sharedFocusColor:(e,n)=>{let r=o().find(r=>VF(r,e,t,n));return r?JF(r.id):null}}}function XF(e,t){let n=vP(e),{addUnsubscribe:r}=BF(),i=Ma({force:!1}),a=()=>{i.force=!i.force};return da(()=>{let{store:e}=n.value,{editor:{sharedSelectionTrackerMap:t}}=e.state;r(Na(t).subscribe(a))}),{sharedSelectColor:()=>{let{store:e}=n.value;i.force;let r=Object.values(e.state.editor.sharedSelectionTrackerMap).find(e=>e.selectedIds.includes(t));return r?JF(r.id):null}}}const ZF=Si(`document`),QF=e=>qa(e,ZF),$F=e=>e>.6?ZP[0]:e>.5?ZP[1]:e>.4?ZP[2]:e>.3?ZP[3]:ZP[4],eI=(e,t)=>{let n=vP(t),r=AP(t),i=QF(t),{sharedFocusTableColor:a}=YF(t,e.table.id),{sharedSelectColor:o}=XF(t,e.table.id),{onMoveStart:s}=zF(t,e,i),c=!1,l=e=>{c=!!n.value.store.state.editor.drawRelationship,s(e)},u=t=>{if(c)return;let{emitter:r}=n.value;r.emit(aP({x:t.evt.clientX,y:t.evt.clientY,color:e.table.ui.color}))};return()=>{let{store:t}=n.value,{editor:s}=t.state,{table:c}=e,d=r.value,f=i.value,p=!!s.selectedMap[c.id],m=A_(t.state,c,f),{zoomLevel:h}=B_(t.state,f),g=Ge(c.name.trim()),_=a(),v=o(),y=_??v;return k`<k-group id=${e.preview?``:`table-${c.id}`} name="table high-level-table" kind="table" visible=${e.visible??!0} selected=${p} sharedFocus=${_} sharedSelect=${v} x=${m.x} y=${m.y} @mousedown=${l} @touchstart=${l}><k-rect name="table-body" x=${1/2} y=${1/2} width=${m.width-1} height=${m.height-1} cornerRadius=${6} fill=${d.tableBackground} stroke=${p?d.tableSelect:d.tableBorder} strokeWidth=${1} />${y?k`<k-rect name="table-ring" x=${-1/2} y=${-1/2} width=${m.width+1} height=${m.height+1} cornerRadius=${6} stroke=${y} strokeWidth=${1} />`:null}<k-text name="high-level-table-name" x=${1} y=${9} width=${m.width-2} height=${m.height-18} text=${g?`unnamed`:c.name} fill=${g?d.placeholder:d.active} fontFamily=${KP} fontSize=${$F(h)} fontStyle="bold" align="center" verticalAlign="middle" wrap="char" /><k-path name="table-header-color" kind="table-header-color" data=${uF(m.height)} fill=${c.ui.color} @click=${u} @mouseenter=${e=>{cF(e,aF)}} @mouseleave=${e=>{cF(e,``)}} /></k-group>`}};Hd`
|
|
32
32
|
position: absolute;
|
|
33
33
|
|
|
34
34
|
&.vertical {
|
|
@@ -47,8 +47,8 @@ import*as e from"comlink";import{CHARSET as t,DECLARATION as n,IMPORT as r,LAYER
|
|
|
47
47
|
width: ${5}px;
|
|
48
48
|
height: ${5}px;
|
|
49
49
|
}
|
|
50
|
-
`;const
|
|
51
|
-
`),document.body.append(e);let t=e.getBoundingClientRect().height;return e.remove(),
|
|
52
|
-
`)}function
|
|
53
|
-
`&&(r+=1),n.push({text:i,start:t})}return n}function
|
|
54
|
-
`),ae=e.preview?0:rI(i,v),{width:oe,height:se}=O_(v),ce=1/2;return A`<k-group id=${e.preview?``:`memo-${v.id}`} name="memo" kind="memo" selected=${te} sharedSelect=${ne} x=${v.ui.x} y=${v.ui.y} @mousedown=${o} @touchstart=${o} @mouseenter=${c} @mouseleave=${l}><k-rect name="memo-shared-select" kind="memo-shared-select" x=${-.5} y=${-.5} width=${oe+1} height=${se+1} cornerRadius=${7} stroke=${ne??``} strokeWidth=${1} listening=${!1} /><k-rect name="memo-body" kind="memo-body" x=${ce} y=${ce} width=${oe-1} height=${se-1} cornerRadius=${6} fill=${ee.memoBackground} stroke=${te?ee.memoSelect:ee.memoBorder} strokeWidth=${1} /><k-group name="memo-container" kind="memo-container" x=${1} y=${1}><k-rect name="memo-header-color" kind="memo-header-color" x=${0} y=${-1} width=${oe-2} height=${4} cornerRadius=${[6,6,0,0]} fill=${v.ui.color} @click=${p} @mouseenter=${e=>{HP(e,VP)}} @mouseleave=${e=>{HP(e,``)}} />${OI({icon:`x`,name:`memo-remove`,kind:`icon`,size:12,color:s.hover?s.removeHover?ee.active:ee.foreground:zP,x:8+v.ui.width-12,y:8,click:f,mouseenter:u,mouseleave:d})}<k-group name="memo-text-clip" kind="memo-textarea" x=${8} y=${24} clipX=${0} clipY=${0} clipWidth=${v.ui.width} clipHeight=${v.ui.height} @click=${m} @mouseenter=${h} @mouseleave=${g} @wheel=${_}><k-rect name="memo-textarea-hit" kind="memo-textarea" x=${0} y=${0} width=${v.ui.width} height=${v.ui.height} fill=${BP} /><k-text name="memo-textarea" kind="memo-textarea" offsetY=${ae} text=${ie} visible=${!re} fill=${ee.active} fontFamily=${jP} fontSize=${12} fontStyle=${`400`} lineHeight=${WF()} wrap="none" /></k-group><${zF} .memo=${v} .top=${se} .left=${oe} /></k-group></k-group>`}},AI={now:()=>performance.now(),requestFrame:e=>requestAnimationFrame(e),cancelFrame:e=>cancelAnimationFrame(e)},jI=new Map,MI=new Map,NI=Ea({});let PI=AI,FI=null;function II(e){let t=1-e;return 1-t*t*t}function LI(){FI===null&&MI.size!==0&&(FI=PI.requestFrame(RI))}function RI(){FI=null;let e=PI.now();for(let[t,n]of[...MI]){let r=e-n.startedAt,{from:i,to:a}=n;if(r>=300){MI.delete(t),NI[t]=a;continue}let o=r>0?r/300:0;NI[t]=i+(a-i)*II(o)}LI()}function zI(e,t,n){return`${e} ${t}:${n}`}function BI(e){let t=NI[e];if(t!==void 0)return t;let n=MI.get(e);return n?n.from:jI.get(e)??0}function VI(e,t){let n=jI.get(e);if(n===t)return;if(n===void 0){jI.set(e,t);return}let r=BI(e);jI.set(e,t),MI.set(e,{from:r,to:t,startedAt:PI.now()}),LI()}const HI=/^#([0-9a-f]{3}|[0-9a-f]{6})$/i;function UI(e){let t=HI.exec(e.trim());if(!t)return null;let n=t[1],r=n.length===6?n:[...n].map(e=>`${e}${e}`).join(``);return[0,2,4].map(e=>parseInt(r.slice(e,e+2),16))}function WI(e,t,n){if(!(n>0))return e;if(n>=1)return t;let r=UI(e),i=UI(t);return!r||!i?n<.5?e:t:`#${r.map((e,t)=>Math.round(e+(i[t]-e)*n)).map(e=>e.toString(16).padStart(2,`0`)).join(``)}`}function GI(e,t,n){return Math.abs(e.x-t.x)<.5?{x:e.x,y:e.y+Math.sign(t.y-e.y)*n}:{x:e.x+Math.sign(t.x-e.x)*n,y:e.y}}function KI(e,t){if(e.length<3||t<=0)return e;let n=[e[0]],r=e=>{let t=n[n.length-1];Math.abs(t.x-e.x)<.5&&Math.abs(t.y-e.y)<.5||n.push(e)};for(let n=1;n<e.length-1;n++){let i=e[n-1],a=e[n],o=e[n+1];if(Math.abs(a.x-i.x)<.5==Math.abs(o.x-a.x)<.5){r(a);continue}let s=Math.abs(a.x-i.x)+Math.abs(a.y-i.y),c=Math.abs(o.x-a.x)+Math.abs(o.y-a.y),l=Math.min(t,s/2,c/2);if(l<2){r(a);continue}r(GI(a,i,l)),r(GI(a,o,l))}return r(e[e.length-1]),n}function qI(e,t=`document`){let{start:n,end:r}=kh(e,t),[i,a]=Th(e,t),o=nM(n,r);return{path:JI(n,r,rM(tM(i),o),rM(tM(a),o),Dh(e,t),t),line:YI(n,r)}}function JI(e,t,n,r,i,a){let o={start:{x1:e.x,y1:e.y,x2:e.x,y2:e.y},end:{x1:t.x,y1:t.y,x2:t.x,y2:t.y}},s={M:{x:0,y:0},L:{x:0,y:0},Q:{x:0,y:0},d(){return e.tableId===t.tableId?[[{x:this.M.x,y:this.M.y},{x:this.L.x,y:this.L.y}]]:QI(a===`document`?KI(i&&i.length>1?i:eL(this.M,this.L,e.direction),8):lh(this.M,$I(e.direction),this.L,$I(t.direction)))}},c=1;return e.direction===R.left||e.direction===R.right?(e.direction===R.left&&(c*=-1),o.start.x2=e.x+c*n,o.start.x1+=c*25,s.M.x=o.start.x2,s.M.y=e.y):(e.direction===R.top||e.direction===R.bottom)&&(e.direction===R.top&&(c*=-1),o.start.y2=e.y+c*n,o.start.y1+=c*25,s.M.x=e.x,s.M.y=o.start.y2),c=1,t.direction===R.left||t.direction===R.right?(t.direction===R.left&&(c*=-1),o.end.x2=t.x+c*r,o.end.x1+=c*25,s.L.x=o.end.x2,s.L.y=t.y):(t.direction===R.top||t.direction===R.bottom)&&(t.direction===R.top&&(c*=-1),o.end.y2=t.y+c*r,o.end.y1+=c*25,s.L.x=t.x,s.L.y=o.end.y2),{line:o,path:s}}function YI(e,t){let n={start:{base:{x1:e.x,y1:e.y,x2:e.x,y2:e.y},base2:{x1:e.x,y1:e.y,x2:e.x,y2:e.y},center:{x1:e.x,y1:e.y,x2:e.x,y2:e.y},center2:{x1:e.x,y1:e.y,x2:e.x,y2:e.y}},end:{base:{x1:t.x,y1:t.y,x2:t.x,y2:t.y},base2:{x1:t.x,y1:t.y,x2:t.x,y2:t.y},left:{x1:t.x,y1:t.y,x2:t.x,y2:t.y},center:{x1:t.x,y1:t.y,x2:t.x,y2:t.y},center2:{x1:t.x,y1:t.y,x2:t.x,y2:t.y},right:{x1:t.x,y1:t.y,x2:t.x,y2:t.y}}},r={cx:t.x,cy:t.y},i={cx:e.x,cy:e.y},a=1;return e.direction===R.left||e.direction===R.right?(e.direction===R.left&&(a*=-1),n.start.base.x1=n.start.base.x2+=a*11,n.start.base2.x1=n.start.base2.x2+=a*18,n.start.center.x1=n.start.base.x1,n.start.base.y1-=7,n.start.base.y2+=7,n.start.base2.y1-=7,n.start.base2.y2+=7,n.start.center2.x1+=a*25,i.cx+=a*18):(e.direction===R.top||e.direction===R.bottom)&&(e.direction===R.top&&(a*=-1),n.start.base.y1=n.start.base.y2+=a*11,n.start.base2.y1=n.start.base2.y2+=a*18,n.start.center.y1=n.start.base.y1,n.start.base.x1-=7,n.start.base.x2+=7,n.start.base2.x1-=7,n.start.base2.x2+=7,n.start.center2.y1+=a*25,i.cy+=a*18),a=1,t.direction===R.left||t.direction===R.right?(t.direction===R.left&&(a*=-1),n.end.base.x1=n.end.base.x2+=a*11,n.end.base2.x1=n.end.base2.x2+=a*18,n.end.center.x1=n.end.left.x1=n.end.right.x1=n.end.base.x1,n.end.base.y1-=7,n.end.base.y2+=7,n.end.base2.y1-=7,n.end.base2.y2+=7,n.end.left.y2+=7,n.end.right.y2-=7,n.end.center2.x1+=a*25,r.cx+=a*18):(t.direction===R.top||t.direction===R.bottom)&&(t.direction===R.top&&(a*=-1),n.end.base.y1=n.end.base.y2+=a*11,n.end.base2.y1=n.end.base2.y2+=a*18,n.end.center.y1=n.end.left.y1=n.end.right.y1=n.end.base.y1,n.end.base.x1-=7,n.end.base.x2+=7,n.end.base2.x1-=7,n.end.base2.x2+=7,n.end.left.x2+=7,n.end.right.x2-=7,n.end.center2.y1+=a*25,r.cy+=a*18),{line:n,circle:r,startCircle:i}}function XI(e){if(!e.length)return``;let[[t]]=e,n=`M${ZI(t.x)} ${ZI(t.y)}`;for(let[,t]of e)n+=`L${ZI(t.x)} ${ZI(t.y)}`;return n}function ZI(e){return Math.round(e*100)/100}function QI(e){let t=[];for(let n=1;n<e.length;n++)t.push([e[n-1],e[n]]);return t}function $I(e){let t=aM(e);return iM(e)?{x:t,y:0}:{x:0,y:t}}function eL(e,t,n){if(iM(n)){if(Math.abs(e.y-t.y)<.5)return[e,t];let n=(e.x+t.x)/2;return[e,{x:n,y:e.y},{x:n,y:t.y},t]}if(Math.abs(e.x-t.x)<.5)return[e,t];let r=(e.y+t.y)/2;return[e,{x:e.x,y:r},{x:t.x,y:r},t]}const tL=`relationship-decoration`,nL=({x1:e,y1:t,x2:n,y2:r})=>[e,t,n,r];function rL(e,t,n){return A`<k-line name=${tL} kind=${tL} points=${nL(e)} stroke=${t} strokeWidth=${n} listening=${!1} />`}function iL({cx:e,cy:t},n,r){return A`<k-circle name=${tL} kind=${tL} x=${e} y=${t} radius=${6} stroke=${n} strokeWidth=${r} listening=${!1} />`}const aL={1:{ring:!0,ticks:[`base`,`left`,`center`,`right`]},[Zm.ZeroOne]:{ring:!0,ticks:[`base`,`center`]},[Zm.ZeroN]:{ring:!0,ticks:[`left`,`center`,`right`]},[Zm.OneOnly]:{ring:!1,ticks:[`base`,`base2`,`center2`]},[Zm.OneN]:{ring:!1,ticks:[`base`,`left`,`center2`,`right`]},32:{ring:!1,ticks:[`base`,`center2`]},64:{ring:!1,ticks:[`left`,`center2`,`right`]}};function oL(e,{path:t,line:n},r,i){let a=aL[e];return a?A`${rL(t.line.end,r,i)}${a.ring?iL(n.circle,r,i):null}${a.ticks.map(e=>rL(n.line.end[e],r,i))}`:null}const sL=[10,10],cL=[];function lL({direction:e}){let t=e===R.left||e===R.top?-1:1;return e===R.left||e===R.right?{along:{x:t,y:0},across:{x:0,y:1}}:{along:{x:0,y:t},across:{x:1,y:0}}}function uL({x:e,y:t},{along:n,across:r},i,a){return{x:e+n.x*i+r.x*a,y:t+n.y*i+r.y*a}}function dL({x:e,y:t},n){return`M${e-n} ${t}A${n} ${n} 0 0 1 ${e+n} ${t}A${n} ${n} 0 0 1 ${e-n} ${t}`}function fL(e){let t=lL(e),n=(n,r)=>uL(e,t,n,r),r=n(11,0);return[XI([[n(11,-7),n(11,7)]]),XI([[n(18,-7),n(18,7)]]),XI([[r,n(0,7)]]),XI([[r,n(0,-7)]]),dL(n(18,0),6)].join(``)}function pL({start:e,end:t},{line:n},r){return`${XI([[{x:e.x,y:e.y},{x:n.start.x2,y:n.start.y2}],...r,[{x:n.end.x2,y:n.end.y2},{x:t.x,y:t.y}]])}${fL(e)}${fL(t)}`}function mL(e){return 8/(e>0?e:1)}const hL=(e,t)=>{let n=aP(t),r=_P(t),i=kF(t),a=Ea({hover:!1}),o=()=>{let{relationship:t}=e,{store:r}=n.value;a.hover=!0,r.dispatch(hb({columnIds:[...t.start.columnIds,...t.end.columnIds]}))},s=()=>{let{store:e}=n.value;a.hover=!1,e.dispatch(hb({columnIds:[]}))};return()=>{let{store:t}=n.value,{editor:c}=t.state,{relationship:l,strokeWidth:u}=e,d=r.value,f=i.value,{zoomLevel:p}=F_(t.state,f),m=kh(l,f),h=qI(l,f),{path:g,line:_}=h,v=g.path.d(),ee=!!c.hoverRelationshipMap[l.id],te=a.hover||ee,ne=f!==`document`,re=ne?d.grayColor8:l.identification?d.keyPFK:d.keyFK,ie=te?d.relationshipHover:re,ae=zI(c.id,`relationship`,l.id),oe=0;ne&&(VI(ae,+!!e.lit),oe=BI(ae));let se=WI(ie,d.accentColor9,oe),ce=oL(l.relationshipType,h,se,u);return A`<k-group name=${`relationship ${l.id}`} kind="relationship" @mouseenter=${o} @mouseleave=${s}><k-path name="relationship-hit-area" kind="relationship-hit-area" data=${pL(m,g,v)} hitStrokeWidth=${mL(p)} lineCap="round" /><k-path name="relationship-route" kind="relationship-route" data=${XI(v)} dash=${ne||l.identification?cL:sL} stroke=${se} strokeWidth=${u} listening=${!1} />${rL(g.line.start,se,u)}${rL(_.line.start.base,se,u)}${l.startRelationshipType===Qm.ring?A`${iL(_.startCircle,se,u)}${rL(_.line.start.center,se,u)}`:A`${rL(_.line.start.base2,se,u)}${rL(_.line.start.center2,se,u)}`}${ce}</k-group>`}},gL=(e,t)=>{let n=kF(t);return()=>{let{relationships:t,viewport:r,litIds:i}=e,a=n.value,o=e.strokeWidth??Nh(a),s=r?t.filter(e=>G_(r,e,o,a)):t;return A`<k-group name="relationship-group" kind="relationship-group">${lu(s,e=>e.id,e=>A`<${hL} .relationship=${e} .strokeWidth=${o} .lit=${i?.has(e.id)??!1} />`)}</k-group>`}},_L=e=>e.evt?.detail??0;function vL(){let e=null;return{track(t,n){_L(n)<=1&&(e=t)},isDouble(t,n){return _L(n)>=2&&e===t}}}const yL=(e,t)=>{let n=G(e,B.primaryKey),r=G(e,B.foreignKey);return n&&r?t.keyPFK:n?t.keyPK:r?t.keyFK:zP},bL=(e,t,n,r,i)=>!t&&n?e.columnSelect:r?e.columnHover:i>0?WI(e.tableBackground,e.accentColor3,i):zP,xL=(e,t)=>{let n=aP(t),r=_P(t),i=Ea({hover:!1,removeHover:!1}),{addUnsubscribe:a}=vF(),o=vL(),s=null,c=()=>{s?.unsubscribe(),s=null};a(c);let l=t=>{if(e.preview||e.ghost||t.evt.button!==0||e.source!==`document`)return;c();let n=!1,r=pF.subscribe({next:()=>{n||(n=!0,e.onDragstart?.(e.column.id,t))},complete:()=>{s===r&&(s=null),n&&e.onDragend?.()}});s=r},u=()=>{i.hover=!0},d=()=>{i.hover=!1},f=e=>{i.removeHover=!0,HP(e,VP)},p=e=>{i.removeHover=!1,HP(e,``)},m=(e,t)=>t?i.removeHover?e.active:e.foreground:zP,h=(t,r)=>{if(e.source!==`document`)return;let{store:i}=n.value,{column:a}=e;i.dispatch(Uy({tableId:a.tableId,columnId:a.id,focusType:t,$mod:nP(r.evt),shiftKey:r.evt.shiftKey}))},g=(t,r)=>{if(!o.isDouble(t,r)||e.source!==`document`)return;let{store:i}=n.value,{column:a}=e;i.dispatch(cw(t)?fw(t,a.tableId,a.id):Yy())},_=()=>{let{store:t}=n.value,{column:r}=e;t.dispatch(dw(r.tableId,[r.id]))},v=()=>{let{column:t}=e;if(t.ui.keys===0)return;let{store:r}=n.value;r.dispatch(ej(t.id))},ee=()=>{let{store:e}=n.value;e.dispatch(tj())},te=({focusType:t,x:n,width:i,text:a,fill:s,focus:c,edit:l,sharedFocus:u,ellipsis:d,opacity:f=1,align:p,fontFamily:m=jP})=>A`<k-group name=${`column-col ${t}`} kind="column-col" sharedFocus=${u} x=${n} y=${0} opacity=${f} listening=${f>0} @mousedown=${e=>{h(t,e),o.track(t,e)}} @dblclick=${e=>{g(t,e)}}><k-text name="cell-text" y=${lI(e.source)} width=${i} height=${uI(e.source,m)} text=${a} fill=${s} fontFamily=${m} fontSize=${12} align=${p} verticalAlign="middle" wrap="none" ellipsis=${d} visible=${!l} hitFunc=${CI[e.source]} />${c&&e.source===`document`?A`<k-rect name="cell-focus-border" y=${lI(e.source)+dI()} width=${i} height=${LP} fill=${fI(r.value,l,e.editorFocused)} listening=${!1} />`:null}${u?A`<k-rect name="cell-shared-focus-border" y=${g_(e.source)-LP} width=${i+8} height=${LP} fill=${u} listening=${!1} />`:null}</k-group>`,ne=({columnType:t,focusType:n,x:i,width:a})=>{let{column:o}=e,s=r.value,c=e.source!==`document`;switch(t){case I.columnName:return te({focusType:n,x:i,width:a,text:o.name.trim()?o.name:`column`,fill:o.name.trim()?s.active:s.placeholder,focus:e.focusName,edit:e.editName,sharedFocus:e.sharedFocusName,ellipsis:!0});case I.columnDefault:return te({focusType:n,x:i,width:a,text:o.default.trim()?o.default:`default`,fill:o.default.trim()?s.active:s.placeholder,focus:e.focusDefault,edit:e.editDefault,sharedFocus:e.sharedFocusDefault,ellipsis:!0});case I.columnComment:return te({focusType:n,x:i,width:a,text:o.comment.trim()?o.comment:`comment`,fill:o.comment.trim()?s.active:s.placeholder,focus:e.focusComment,edit:e.editComment,sharedFocus:e.sharedFocusComment,ellipsis:!0});case I.columnDataType:return te({focusType:n,x:i,width:a,text:o.dataType.trim()?o.dataType:`dataType`,fill:o.dataType.trim()?s.active:s.placeholder,focus:e.focusDataType,edit:e.editDataType,sharedFocus:e.sharedFocusDataType,ellipsis:!0,opacity:c?e.litAlpha??0:1,align:c?`right`:void 0,fontFamily:c?`'Menlo', 'Consolas', 'Bitstream Vera Sans Mono', monospace, 'Apple Color Emoji', 'Segoe UI Emoji'`:void 0});case I.columnNotNull:return te({focusType:n,x:i,width:a,text:G(o.options,z.notNull)?`N-N`:`NULL`,fill:s.active,focus:e.focusNotNull,edit:!1,sharedFocus:e.sharedFocusNotNull,ellipsis:!1});case I.columnUnique:return te({focusType:n,x:i,width:a,text:`UQ`,fill:G(o.options,z.unique)?s.active:s.placeholder,focus:e.focusUnique,edit:!1,sharedFocus:e.sharedFocusUnique,ellipsis:!1});case I.columnAutoIncrement:return te({focusType:n,x:i,width:a,text:`AI`,fill:G(o.options,z.autoIncrement)?s.active:s.placeholder,focus:e.focusAutoIncrement,edit:!1,sharedFocus:e.sharedFocusAutoIncrement,ellipsis:!1})}return null},re=()=>{let{store:t}=n.value;return bI(t.state,{name:e.widthName,comment:e.widthComment,dataType:e.widthDataType,default:e.widthDefault},e.source).map(e=>({columnType:e.columnType,template:ne(e)})).filter(({template:e})=>!!e)};return()=>{let{store:t}=n.value,{editor:a}=t.state,{column:o,selected:s,width:c}=e,h=r.value,g=!!(e.hovered||i.hover||a.hoverColumnMap[o.id]),te=!!a.draggingColumnMap[o.id],ne=c-18,ie=e.source!==`document`,ae=bL(h,ie,s,g,ie&&e.related?e.litAlpha??0:0),oe=g_(e.source),se=ie?16:12;return A`<k-group id=${e.preview?``:`column-${o.id}`} name="column-row" kind="column-row" tableId=${o.tableId} selected=${s} y=${e.y} opacity=${te?.5:1} visible=${!e.ghost} @mousedown=${l} @mouseenter=${u} @mouseleave=${d}><k-rect name="column-row-background" x=${1} width=${c-2} height=${oe} cornerRadius=${ie&&e.last?[0,0,6,6]:0} fill=${ae} />${OI({icon:`key-round`,name:`column-col column-key`,kind:`column-col`,size:se,color:yL(o.ui.keys,h),x:9,y:(oe-se)/2,mouseenter:v,mouseleave:ee})}${lu(re(),({columnType:e})=>e,({template:e})=>e)}${ie&&e.divider?A`<k-line name="column-row-divider" points=${[1,oe,c-1,oe]} stroke=${h.tableBorder} strokeWidth=${1} listening=${!1} />`:null}${ie?null:OI({icon:`x`,name:`column-remove`,kind:`icon`,size:12,color:m(h,g),x:9+ne-12,y:6,click:_,mouseenter:f,mouseleave:p})}</k-group>`}};function SL(e,t){let{settings:n}=e,{viewport:r}=e.editor,i=R_(n,t),a=R_(n,{x:t.x+t.width,y:t.y+t.height});return i.x>=0&&i.y>=0&&a.x<=r.width&&a.y<=r.height}const CL=e=>function*(t){let{viewport:n}=t.editor,r=N(t.collections).collection(`tableEntities`).selectById(e);if(!r)return;let i=T_(t,r);if(!SL(t,i)){let e=B_(t.settings.zoomLevel,{x:i.x+i.width/2,y:i.y+i.height/2},{x:n.width/2,y:n.height/2});yield lv({originX:e.x,originY:e.y})}yield aw(e,!1)};function wL(e,t){e.dispatchSync(_v({value:Um.ERD})),e.dispatchSync(CL(t))}function TL(e,t){e.store.dispatchSync(Ag({tableIds:t,kind:eg.flow}))}function EL(e,t,n=`document`){let{collections:r}=e,i=H_(e,n),a=N(r).collection(`tableEntities`).selectByIds(Kg(e,n).tableIds).filter(t=>W_(i,e,t,n)).sort((e,t)=>t.ui.zIndex-e.ui.zIndex);for(let r of a){let i=T_(e,r,n);if(!(t.x>=i.x&&t.x<=i.x+i.width&&t.y>=i.y&&t.y<=i.y+i.height))continue;let a=D_(e,r,0,n);if(t.y<a.y)return null;let o=Math.floor((t.y-a.y)/a.height),s=Wg(e,r,n)[o];return s?{tableId:r.id,columnId:s,index:o}:null}return null}function DL(e,t){let n=e.getAbsolutePosition(),r=e.getAbsoluteScale();return{x:(n.x-t.x)/(r.x||1),y:(n.y-t.y)/(r.y||1)}}function OL(e){let t=new Map,n=null,r=null,i=(e,n,r,i)=>{t.get(e)?.(),e.offsetX(r),e.offsetY(i),ef(n);let a=!1,o=-1,s=()=>{a||(a=!0,clearTimeout(o),t.delete(e),tf(n))},c=new ci({node:e,offsetX:0,offsetY:0,duration:.3,easing:si.EaseInOut,onFinish:s,onReset:s});t.set(e,()=>{c.destroy(),e.offsetX(0),e.offsetY(0),s()}),o=setTimeout(()=>t.get(e)?.(),500),c.play()},a=()=>{let e=n;return n=null,r?.(),r=null,e},o=()=>{let e=a();if(e)for(let t of e){let{node:e}=t,n=e.getLayer();if(!n||!e.getStage())continue;let{x:r,y:a}=DL(e,t);!r&&!a||i(e,n,r,a)}};return{snapshot(){n=e().map(e=>{let{x:t,y:n}=e.getAbsolutePosition();return{node:e,x:t,y:n}}),r??=Xd(o)},cancel(){a(),[...t.values()].forEach(e=>e())}}}function kL(e,t){let n=aP(e),r=()=>n.value.store.state.editor.focusTable;return{hasFocus:(e,n)=>yF(r(),e,t,n),hasEdit:(e,n)=>xF(r(),e,t,n),hasSelectColumn:e=>bF(r(),t,e)}}function AL(e){if(UP(e))return{x:e.clientX,y:e.clientY};let{touches:t,changedTouches:n}=e,r=t?.[0]??n?.[0];return r?{x:r.clientX,y:r.clientY}:null}const jL=({type:e})=>e===`mouseup`||e===`touchend`;function ML(e,t){return Math.abs(t.x-e.x)<=4&&Math.abs(t.y-e.y)<=4}function NL(e){return!nP(e)&&(!UP(e)||e.button===0)}function PL(e,t){let n=AL(e);n&&uF.pipe(Fe(1)).subscribe(e=>{let r=jL(e)?AL(e):null;r&&ML(n,r)&&t()})}function FL(e,t,n){return{onPress:r=>{let{evt:i}=r,a=n.value;if(a===`document`||!NL(i))return;let o=e.value.store.state.editor.views[a];if(!o)return;let{id:s}=t.table;PL(i,()=>{let{store:t}=e.value;t.state.editor.views[a]===o&&t_(t.state,s,a)})}}}const IL=[`icon`],LL=(e,t,n)=>t.trim()?n?e.foreground:e.active:e.placeholder,RL=(e,t)=>{let n=aP(t),r=_P(t),i=kF(t),{hasEdit:a,hasFocus:o,hasSelectColumn:s}=kL(t,e.table.id),{sharedFocusColor:c,sharedFocusTableColor:l}=EF(t,e.table.id),{sharedSelectColor:u}=DF(t,e.table.id),{onMoveStart:d}=_F(t,e,i),f=FL(n,e,i),{addUnsubscribe:p}=vF(),m=Ea({hover:!1,iconHover:null,dragstartId:null}),h=vL(),g=null,_=null,v=null,ee=()=>{m.hover=!0,i.value!==`document`&&Xg(n.value.store.state,e.table.id,i.value)},te=()=>{m.hover=!1,i.value!==`document`&&Xg(n.value.store.state,null,i.value)};p(()=>{i.value!==`document`&&Zg(n.value.store.state,e.table.id,i.value)});let ne=e=>t=>{m.iconHover=e,HP(t,VP)},re=e=>{m.iconHover=null,HP(e,``)},ie=(e,t,n)=>n?m.iconHover===t?e.active:e.foreground:zP,ae=(t,n)=>n?e.editorFocused===!1?t.placeholder:t.tableSelect:t.tableBorder,oe=e=>{d(e),!JP(e.target,IL)&&f.onPress(e)},se=t=>{let{emitter:r}=n.value;r.emit(KN({x:t.evt.clientX,y:t.evt.clientY,color:e.table.ui.color}))},ce=()=>{let{store:t}=n.value;t.dispatch(uw(e.table.id))},le=()=>{let{store:t}=n.value;t.dispatch(iw(e.table.id))},ue=()=>{TL(n.value,[e.table.id])},y=()=>{wL(n.value.store,e.table.id)},b=t=>{if(i.value!==`document`)return;let{store:r}=n.value;r.dispatch(Vy({tableId:e.table.id,focusType:t}))},x=(e,t)=>{if(!h.isDouble(e,t)||i.value!==`document`)return;let{store:r}=n.value;r.dispatch(Yy())},de=e=>{let t=_,n=t?.findOne(`.scene`);if(!t||!n)return null;t.setPointersPositions(e);let r=t.getPointerPosition();return r?n.getAbsoluteTransform().copy().invert().point(r):null},S=e=>{let{store:t}=n.value,r=de(e);if(!r)return;let a=EL(t.state,r,i.value);if(!a)return;let{editor:{draggableColumn:o}}=t.state;!o||o.columnIds.includes(a.columnId)||(v?.snapshot(),t.dispatch($A(a.columnId,a.tableId)))},fe=()=>{let{store:e,emitter:t}=n.value;!g&&m.dragstartId===null||(g?.unsubscribe(),g=null,_=null,m.dragstartId=null,e.dispatch(Db()),t.emit(qN()))},pe=(e,t)=>{let{store:r}=n.value;if(i.value!==`document`)return;let{editor:{focusTable:a}}=r.state;if(!a||!a.columnId)return;let o=t.target?.getStage()??null;o&&(g?.unsubscribe(),_=o,m.dragstartId=e,v??=OL(()=>o.find(`.column-row`)),r.dispatch(QA(nP(t.evt))),g=pF.subscribe({next:({event:e})=>{S(e)},complete:fe}))};aa(()=>{let{emitter:e}=n.value;p(e.on({dragendColumnAll:()=>{g?.unsubscribe(),g=null}}),()=>{g?.unsubscribe(),g=null,v?.cancel()})});let me=({focusType:t,x:n,width:a,text:o,fill:s,focus:c,edit:l,sharedFocus:u})=>{let d=i.value,f=d!==`document`;return A`<k-group name=${`input-padding ${t}`} kind="input-padding" sharedFocus=${u} x=${n} y=${0} @mousedown=${e=>{b(t),h.track(t,e)}} @dblclick=${e=>{x(t,e)}}><k-text name="cell-text" y=${sI(d)} width=${a} height=${cI(d)} text=${o} fill=${s} fontFamily=${jP} fontSize=${f?14:12} fontStyle=${f?`500`:`normal`} verticalAlign="middle" wrap="none" ellipsis=${!0} visible=${!l} hitFunc=${TI[d]} />${c&&!f?A`<k-rect name="cell-focus-border" y=${sI(d)+18.5} width=${a} height=${LP} fill=${fI(r.value,l,e.editorFocused)} listening=${!1} />`:null}${u?A`<k-rect name="cell-shared-focus-border" y=${22.5} width=${a+8} height=${LP} fill=${u} listening=${!1} />`:null}</k-group>`};return()=>{let{store:t}=n.value,{editor:d,collections:f}=t.state,{table:p}=e,h=r.value,g=!!d.selectedMap[p.id],_=i.value,v=E_(t.state,p,_),b=T_(t.state,p,_),x=b.width-18,de=!!(e.hovered||m.hover),S=e.ghostColumnId??m.dragstartId,he=S!==null&&!p.columnIds.includes(S)?S:null,ge=l(),_e=u(),ve=c(W.tableName),ye=c(W.tableComment),be=ge??_e,C=_!==`document`,xe=C&&de,Se=(e,t)=>!C&&a(e,t),Ce=_I(t.state,p,_),we=Ce.find(e=>e.focusType===W.tableName),Te=Ce.find(e=>e.focusType===W.tableComment),Ee=Wg(t.state,p,_),De=C&&Ee.length===0,Oe=C&&!!e.lit,ke=zI(d.id,`table`,p.id),Ae=0;C&&(VI(ke,+!!Oe),Ae=BI(ke));let je=N(f).collection(`tableColumnEntities`).selectByIds(he?[...Ee,he]:Ee);return A`<k-group id=${e.preview?``:`table-${p.id}`} name="table" kind="table" visible=${e.visible??!0} selected=${g} sharedFocus=${ge} sharedSelect=${_e} x=${b.x} y=${b.y} @mousedown=${oe} @touchstart=${oe} @mouseenter=${ee} @mouseleave=${te}><k-rect name="table-body" x=${1/2} y=${1/2} width=${b.width-1} height=${b.height-1} cornerRadius=${6} fill=${h.tableBackground} stroke=${WI(ae(h,g),h.accentColor9,Ae)} strokeWidth=${1} shadowColor=${C?h.minimapShadow:void 0} shadowBlur=${C?20:void 0} shadowOffsetX=${C?0:void 0} shadowOffsetY=${C?2:void 0} shadowOpacity=${C?.4:void 0} shadowForStrokeEnabled=${!C&&void 0} @mouseenter=${e=>{C&&HP(e,`pointer`)}} @mouseleave=${e=>{C&&HP(e,``)}} />${C?A`<k-rect name="table-header-band" x=${1} y=${1} width=${b.width-2} height=${De?b.height-2:32} cornerRadius=${De?6:[6,6,0,0]} fill=${h.grayColor3} listening=${!1} />`:null}${Ae>0?A`<k-rect name="table-glow" x=${-1/2} y=${-1/2} width=${b.width+1} height=${b.height+1} cornerRadius=${6} opacity=${Ae} stroke=${h.accentColor9} strokeWidth=${1} shadowColor=${h.accentColor9} shadowBlur=${14} shadowOpacity=${.55} shadowForStrokeEnabled=${!0} listening=${!1} />`:null}${be?A`<k-rect name="table-ring" x=${-1/2} y=${-1/2} width=${b.width+1} height=${b.height+1} cornerRadius=${6} stroke=${be} strokeWidth=${1} listening=${!1} />`:null}<k-rect name="table-header-color" kind="table-header-color" x=${1} y=${0} width=${b.width-2} height=${4} cornerRadius=${[6,6,0,0]} fill=${p.ui.color} listening=${!C} @click=${se} @mouseenter=${e=>{HP(e,VP)}} @mouseleave=${e=>{HP(e,``)}} /><k-group name="table-header" x=${9} y=${9}>${C?null:OI({icon:`plus`,name:`table-add-column`,kind:`icon`,size:12,color:ie(h,`plus`,de),mouseenter:ne(`plus`),mouseleave:re,x:x-24-4,y:0,click:ce})}${C?null:OI({icon:`x`,name:`table-remove`,kind:`icon`,size:12,color:ie(h,`x`,de),mouseenter:ne(`x`),mouseleave:re,x:x-12,y:0,click:le})}<k-group name="table-header-inputs" y=${oI(_)-9}>${C?OI({icon:`table-2`,name:`table-header-icon`,kind:`table-header-icon`,size:16,color:h.foreground,x:0,y:0}):null}${we?me({...we,text:p.name.trim()?p.name:`table`,fill:LL(h,p.name,C),focus:o(W.tableName),edit:Se(W.tableName),sharedFocus:ve}):null}${Te?me({...Te,text:p.comment.trim()?p.comment:`comment`,fill:p.comment.trim()?h.active:h.placeholder,focus:o(W.tableComment),edit:Se(W.tableComment),sharedFocus:ye}):null}</k-group>${xe?OI({icon:`waypoints`,name:`table-related`,kind:`icon`,size:12,color:ie(h,`waypoints`,de),mouseenter:ne(`waypoints`),mouseleave:re,x:x-28,y:2,click:ue}):null}${xe?OI({icon:`external-link`,name:`table-go-to-erd`,kind:`icon`,size:12,color:ie(h,`external-link`,de),mouseenter:ne(`external-link`),mouseleave:re,x:x-12,y:2,click:y}):null}</k-group><k-group name="table-columns">${lu(je,e=>e.id,(n,r)=>A`<${xL} .column=${n} .source=${_} .related=${e.relatedColumnIds?.has(n.id)??!1} .litAlpha=${Ae} .divider=${C&&r<je.length-1} .last=${C&&r===je.length-1} .y=${D_(t.state,p,r,_).y-b.y} .width=${b.width} .selected=${s(n.id)} .hovered=${n.id===e.hoveredColumnId} .widthName=${v.name} .widthDataType=${v.dataType} .widthDefault=${v.default} .widthComment=${v.comment} .focusName=${o(W.columnName,n.id)} .focusDataType=${o(W.columnDataType,n.id)} .focusNotNull=${o(W.columnNotNull,n.id)} .focusDefault=${o(W.columnDefault,n.id)} .focusComment=${o(W.columnComment,n.id)} .focusUnique=${o(W.columnUnique,n.id)} .focusAutoIncrement=${o(W.columnAutoIncrement,n.id)} .editName=${Se(W.columnName,n.id)} .editDataType=${Se(W.columnDataType,n.id)} .editDefault=${Se(W.columnDefault,n.id)} .editComment=${Se(W.columnComment,n.id)} .sharedFocusName=${c(W.columnName,n.id)} .sharedFocusDataType=${c(W.columnDataType,n.id)} .sharedFocusNotNull=${c(W.columnNotNull,n.id)} .sharedFocusDefault=${c(W.columnDefault,n.id)} .sharedFocusComment=${c(W.columnComment,n.id)} .sharedFocusUnique=${c(W.columnUnique,n.id)} .sharedFocusAutoIncrement=${c(W.columnAutoIncrement,n.id)} .ghost=${n.id===he} .preview=${e.preview} .editorFocused=${e.editorFocused} .onDragstart=${pe} .onDragend=${fe} />`)}</k-group></k-group>`}},zL=(e,t)=>e.ui.zIndex-t.ui.zIndex,BL=(e,t)=>{let n=aP(t),r=_P(t);return()=>{let{store:t}=n.value,{box:i,scale:a}=e,{settings:{show:o,zoomLevel:s},doc:{tableIds:c,memoIds:l,relationshipIds:u},collections:d}=t.state,f=r.value,p=N(d).collection(`tableEntities`).selectByIds(c).sort(zL),m=N(d).collection(`memoEntities`).selectByIds(l).sort(zL),h=N(d).collection(`relationshipEntities`).selectByIds(u),g=Zh(s);return A`<k-layer name="export-scene" listening=${!1} x=${-i.x*a} y=${-i.y*a} scaleX=${a} scaleY=${a}><k-rect name="export-background" x=${i.x} y=${i.y} width=${i.width} height=${i.height} fill=${f.canvasBackground} />${G(o,F.relationship)?A`<${gL} .relationships=${h} />`:null}${lu(p,e=>e.id,e=>g?A`<${jF} .table=${e} />`:A`<${RL} .table=${e} />`)}${lu(m,e=>e.id,e=>A`<${kI} .memo=${e} />`)}</k-layer>`}};async function VL({doc:e,theme:t,toWidth:n,zoomLevel:r}){let i=rP({toWidth:n},{devtools:!1});i.store.dispatchSync(NA(e)),x(r)&&i.store.dispatchSync(rv({value:r})),await yP(32);let a=i.store.state.settings.zoomLevel,o=CP(i.store.state),s=wP(o,a),c=vP({app:i,container:document.createElement(`div`),scene:A`<${BL} .box=${o} .scale=${s} />`,width:o.width*s,height:o.height*s,theme:t});return await rf(),{stage:c.stage,box:o,scale:s,zoomLevel:a,destroy:()=>{c.destroy(),oP(i)}}}function HL(e){return`convertToBlob`in e?e.convertToBlob({type:`image/png`}):new Promise((t,n)=>{e.toBlob(e=>{e?t(e):n(Error(`[export-png] the canvas encoded no png`))},`image/png`)})}async function UL({doc:e,theme:t,pixelRatio:n,zoomLevel:r,toWidth:i}){let a=await VL({doc:e,theme:t,toWidth:i,zoomLevel:r});try{let e=xP(n,a.stage.width(),a.stage.height()),t=a.stage.toCanvas({pixelRatio:e}),r=await HL(t),{width:i,height:o}=t;return{blob:r,width:i,height:o,reduction:a.scale*e<n*a.zoomLevel?{documentWidth:a.box.width,documentHeight:a.box.height,width:i,height:o}:null}}finally{a.destroy()}}const WL=`400 12px ${AP}`,GL=[`ERD editor 0123456789`,`가나다 漢字 テスト`,`—…€· iIlL1`];function KL(){if(typeof OffscreenCanvas>`u`)return null;let e=new OffscreenCanvas(1,1).getContext(`2d`);return e?(e.font=WL,t=>Math.round(e.measureText(t).width)+2):null}function qL(e){return GL.map(t=>e(t))}function JL(e,t){return e.length===t.length&&e.every((e,n)=>e===t[n])}const YL=new class{async probeFontWidths(){return qL(this.createToWidth())}async render(e){let t=this.createToWidth(),n=qL(t);if(!JL(n,e.fontProbe))throw Error(`[export-png] this realm measures text differently: ${n.join()} against ${e.fontProbe.join()}`);return UL({...e,toWidth:t})}createToWidth(){let e=KL();if(!e)throw Error(`[export-png] this realm has no 2d context to measure by`);return e}};self.onconnect=t=>{let n=t.ports[0];e.expose(YL,n)};
|
|
50
|
+
`;const tI={left:`left`,right:`right`,bottom:`bottom`,lt:`lt`,rt:`rt`,lb:`lb`,rb:`rb`},nI={vertical:`vertical`,horizontal:`horizontal`,edge:`edge`},rI={left:`ew-resize`,right:`ew-resize`,bottom:`ns-resize`,lt:`nwse-resize`,rt:`nesw-resize`,lb:`nesw-resize`,rb:`nwse-resize`},iI=(e,t)=>[{shape:nI.vertical,position:tI.left},{shape:nI.vertical,position:tI.right,left:t},{shape:nI.horizontal,position:tI.bottom,top:e},{shape:nI.edge,position:tI.lt},{shape:nI.edge,position:tI.rt,left:t},{shape:nI.edge,position:tI.lb,top:e},{shape:nI.edge,position:tI.rb,top:e,left:t}],aI=({shape:e,top:t=0})=>t===0&&e===nI.vertical?t:t-5/2,oI=({shape:e,left:t=0})=>t===0&&e===nI.horizontal?t:t-5/2,sI=e=>WP(e.evt)?{x:e.evt.clientX,y:e.evt.clientY}:{x:e.evt.touches[0]?.clientX??0,y:e.evt.touches[0]?.clientY??0},cI=(e,t)=>{let n=vP(t),r=0,i=0,a=({movementX:t,x:i},a)=>{let{zoomLevel:o}=n.value.store.state.settings,s=Object.assign({change:!1},e.memo.ui),c=t/o,l=a===V.left?s.width-c:s.width+c;return 116<l&&(t<0?i<r:i>r)&&(a===V.left&&(s.x+=c),r+=t,s.width=l,s.change=!0),s},o=({movementY:t,y:r},a)=>{let{zoomLevel:o}=n.value.store.state.settings,s=Object.assign({change:!1},e.memo.ui),c=t/o,l=a===V.top?s.height-c:s.height+c;return 100<l&&(t<0?r<i:r>i)&&(a===V.top&&(s.y+=c),i+=t,s.height=l,s.change=!0),s},s=(t,r)=>{t.event.type===`mousemove`&&t.event.preventDefault();let{store:i}=n.value,s=null,c=null;switch(r){case tI.left:case tI.right:s=a(t,r);break;case tI.bottom:c=o(t,V.bottom);break;case tI.lt:s=a(t,V.left),c=o(t,V.top);break;case tI.rt:s=a(t,V.right),c=o(t,V.top);break;case tI.lb:s=a(t,V.left),c=o(t,V.bottom);break;case tI.rb:s=a(t,V.right),c=o(t,V.bottom)}if(!s?.change&&!c?.change)return;let{id:l,ui:u}=e.memo,d=s?.change?s:u,f=c?.change?c:u;i.dispatch(Zx({id:l,x:d.x,y:f.y,width:d.width,height:f.height}))},c=(e,t)=>{if(GP(e.evt))return;let n=sI(e);r=n.x,i=n.y;let a=lF(e,rI[t]);PF.subscribe(e=>s(e,t)).add(a)};return()=>{let t=e.left-2,n=e.top-2;return k`${iI(e.top,e.left).map(e=>k`<k-rect name=${`memo-sash memo-sash-${e.position}`} kind="sash" x=${oI(e)} y=${aI(e)} width=${e.shape===nI.horizontal?t:5} height=${e.shape===nI.vertical?n:5} fill=${nF} @mousedown=${t=>{c(t,e.position)}} @touchstart=${t=>{c(t,e.position)}} @mouseenter=${t=>{cF(t,rI[e.position])}} @mouseleave=${e=>{cF(e,``)}} />`)}`}},lI=`400 12px ${KP}`,uI=12*1.2;let dI=null;function fI(){if(dI!==null)return dI;if(typeof document>`u`||!document.body)return uI;let e=document.createElement(`div`);e.setAttribute(`aria-hidden`,`true`),e.style.cssText=`position:absolute;visibility:hidden;top:-10000px;left:0;margin:0;padding:0;border:0;font:${lI};line-height:normal;white-space:pre`,e.textContent=Array.from({length:10},()=>`M`).join(`
|
|
51
|
+
`),document.body.append(e);let t=e.getBoundingClientRect().height;return e.remove(),dI=t/10||uI,dI}function pI(){return fI()/12}const mI={whiteSpace:`pre-wrap`,wordBreak:`normal`},hI=new Map;function gI(e,t){let n=`${t} ${e}`,r=hI.get(n);if(r)return r;let i=fi(e,lI,mI),{lines:a}=di(i,t,fI()),o=a.map(e=>e.text);return hI.size>=256&&hI.clear(),hI.set(n,o),o}function _I(){let e=typeof document>`u`?null:document.createElement(`canvas`).getContext(`2d`);return e?(e.font=lI,t=>e.measureText(t).width):()=>0}let vI=null;function yI(e){return vI??=_I(),vI(e)}function bI(e){return e.replace(/\r\n?/g,`
|
|
52
|
+
`)}function xI(e,t){let n=[],r=0;for(let i of gI(e,t)){let t=r;r+=i.length,e[r]===`
|
|
53
|
+
`&&(r+=1),n.push({text:i,start:t})}return n}function SI(e,t){let n=0,r=Math.abs(t),i=``;for(let a of Array.from(e.text)){i+=a;let e=Math.abs(t-yI(i));if(e>r)break;n=i.length,r=e}return n}function CI(e,t,n,r){let i=bI(e),a=xI(i,t);if(!a.length)return 0;let o=Math.max(0,Math.floor(r/fI()));if(o>=a.length)return i.length;let s=a[o];return s.start+SI(s,n)}function wI(e){let t=gI(e.value,e.ui.width).length;return Math.max(0,t*fI()-e.ui.height)}function TI(e,t){return Math.min(Math.max(0,t),wI(e))}function EI(e,t){return TI(t,e.memoScrollTopMap[t.id]??0)}const DI=[`memo-header-color`,`memo-textarea`,`icon`,`sash`];function OI(e,t,n){return FF(e,{entityId:()=>t.memo.id,selectType:ig.memo,blockedKinds:()=>DI,source:n})}function kI(e=`document`){return e===`document`?3:9}function AI(e=`document`){return e===`document`?2:0}function jI(e=`document`){return e===`document`?LI():16}function MI(e=`document`){return e===`document`?2:8}function NI(e=`document`,t){return e===`document`?LI(t):16}function PI(){return x_(`document`)-MI(`document`)*2-QP}function FI(e,t,n){return t?e.inputActive:n===!1?e.placeholder:e.focus}function II(e){let{ascent:t,descent:n}=XP(e);return Math.round(18.5/2+(t-n)/2)}function LI(e){let{ascent:t,descent:n}=XP(e);return(II(e)-(t-n)/2)*2}function RI(e=`document`){return e===`document`?29:31}function zI(e,t){let{maxWidthComment:n}=e.settings;return n===-1||n>=t.ui.widthComment?t.ui.widthComment:n}function BI(e,t,n=`document`){let r=n!==`document`,i=[{focusType:U.tableName,x:20,width:r?v_(t.ui.widthName):t.ui.widthName}];return!r&&W(e.settings.show,P.tableComment)&&i.push({focusType:U.tableComment,x:20+t.ui.widthName+8,width:zI(e,t)}),i}const VI=[{columnType:F.columnName,focusType:U.columnName,show:null,width:e=>e.name},{columnType:F.columnDefault,focusType:U.columnDefault,show:P.columnDefault,width:e=>e.default},{columnType:F.columnComment,focusType:U.columnComment,show:P.columnComment,width:e=>e.comment},{columnType:F.columnDataType,focusType:U.columnDataType,show:P.columnDataType,width:e=>e.dataType},{columnType:F.columnNotNull,focusType:U.columnNotNull,show:P.columnNotNull,width:()=>35},{columnType:F.columnUnique,focusType:U.columnUnique,show:P.columnUnique,width:()=>22},{columnType:F.columnAutoIncrement,focusType:U.columnAutoIncrement,show:P.columnAutoIncrement,width:()=>15}],HI=[F.columnName,F.columnDataType];function UI(e,t,n=`document`){let{settings:r}=e,i=[],a=RI(n),o=n===`document`?r.columnOrder:HI;for(let e of o){let o=VI.find(t=>t.columnType===e);if(!o||n===`document`&&o.show!==null&&!W(r.show,o.show))continue;let s=o.width(t);i.push({columnType:e,focusType:o.focusType,x:a,width:s}),a+=s+8}return i}function WI(e,t,n,r,i,a){e.beginPath(),e.rect(n,r,i,a),e.closePath(),e.fillShape(t)}function GI(e){return(t,n)=>{WI(t,n,0,-MI(e),n.width()+8,x_(e))}}const KI={document:GI(`document`),flow:GI(`flow`)};function qI(e){let t=0-AI(e);return(e,n)=>{WI(e,n,0,t,n.width()+8,24)}}const JI={document:qI(`document`),flow:qI(`flow`)},YI=(e,t)=>{WI(e,t,-t.x(),-t.y(),eF,eF)},XI=([e,t],n,r)=>e===`circle`?k`<k-circle x=${Number(t.cx)} y=${Number(t.cy)} radius=${Number(t.r)} fill=${n} stroke=${n} strokeWidth=${2} listening=${r} hitFunc=${r?YI:void 0} />`:k`<k-path data=${String(t.d)} stroke=${n} strokeWidth=${2} lineCap="round" lineJoin="round" listening=${r} hitFunc=${r?YI:void 0} />`;function ZI({icon:e,name:t,kind:n,size:r,color:i,x:a,y:o,click:s,mouseenter:c,mouseleave:l}){let u=HP(e);if(!u)return null;let d=r/eF;return k`<k-group name=${t} kind=${n} x=${a} y=${o} scaleX=${d} scaleY=${d} @click=${s} @mouseenter=${c} @mouseleave=${l}>${u.node.map((e,t)=>XI(e,i,t===0))}</k-group>`}function QI(e){return e.ctrlKey?!hP(e)||Math.abs(e.deltaY)<25:!1}const $I=(e,t)=>{let n=vP(t),r=AP(t),i=QF(t),{sharedSelectColor:a}=XF(t,e.memo.id),{onMoveStart:o}=OI(t,e,i),s=Ma({hover:!1,removeHover:!1}),c=()=>{s.hover=!0},l=()=>{s.hover=!1},u=e=>{s.removeHover=!0,cF(e,aF)},d=e=>{s.removeHover=!1,cF(e,``)},f=()=>{let{store:t}=n.value;t.dispatch(ew(e.memo.id))},p=t=>{let{emitter:r}=n.value;r.emit(aP({x:t.evt.clientX,y:t.evt.clientY,color:e.memo.ui.color}))},m=t=>{if(e.preview)return;let{store:r}=n.value,{memo:i}=e,a=t.currentTarget.getRelativePointerPosition();if(a){let e=EI(r.state.editor,i);i.id,CI(i.value,i.ui.width,a.x,a.y+e)}r.dispatch(ab({id:i.id}))},h=t=>{cF(t,e.preview?``:`text`)},g=e=>{cF(e,``)},_=t=>{if(QI(t.evt)||(t.evt.stopPropagation(),t.evt.preventDefault(),e.preview||hP(t.evt)))return;let{store:r}=n.value,{memo:i}=e,a=EI(r.state.editor,i),o=TI(i,a+t.evt.deltaY);o!==a&&r.dispatch(lb({id:i.id,scrollTop:o}))};return()=>{let{store:t}=n.value,{editor:i}=t.state,{memo:v}=e,y=r.value,ee=!!i.selectedMap[v.id],te=iF(y.memoShadow),ne=a(),re=!e.preview&&i.editMemoId===v.id,ie=gI(v.value,v.ui.width).join(`
|
|
54
|
+
`),ae=e.preview?0:EI(i,v),{width:b,height:oe}=N_(v),se=1/2;return k`<k-group id=${e.preview?``:`memo-${v.id}`} name="memo" kind="memo" selected=${ee} sharedSelect=${ne} x=${v.ui.x} y=${v.ui.y} @mousedown=${o} @touchstart=${o} @mouseenter=${c} @mouseleave=${l}><k-rect name="memo-shared-select" kind="memo-shared-select" x=${-.5} y=${-.5} width=${b+1} height=${oe+1} cornerRadius=${7} stroke=${ne??``} strokeWidth=${1} listening=${!1} /><k-rect name="memo-body" kind="memo-body" x=${se} y=${se} width=${b-1} height=${oe-1} cornerRadius=${6} fill=${y.memoBackground} stroke=${ee?y.memoSelect:y.memoBorder} strokeWidth=${1} shadowColor=${te?.color} shadowBlur=${te?.blur} shadowOffsetX=${te?.offsetX} shadowOffsetY=${te?.offsetY} shadowOpacity=${te?.opacity} shadowForStrokeEnabled=${!te&&void 0} /><k-group name="memo-container" kind="memo-container" x=${1} y=${1}><k-rect name="memo-header-color" kind="memo-header-color" x=${0} y=${-1} width=${b-2} height=${4} cornerRadius=${[6,6,0,0]} fill=${v.ui.color} @click=${p} @mouseenter=${e=>{cF(e,aF)}} @mouseleave=${e=>{cF(e,``)}} />${ZI({icon:`x`,name:`memo-remove`,kind:`icon`,size:12,color:s.hover?s.removeHover?y.active:y.foreground:tF,x:8+v.ui.width-12,y:8,click:f,mouseenter:u,mouseleave:d})}<k-group name="memo-text-clip" kind="memo-textarea" x=${8} y=${24} clipX=${0} clipY=${0} clipWidth=${v.ui.width} clipHeight=${v.ui.height} @click=${m} @mouseenter=${h} @mouseleave=${g} @wheel=${_}><k-rect name="memo-textarea-hit" kind="memo-textarea" x=${0} y=${0} width=${v.ui.width} height=${v.ui.height} fill=${nF} /><k-text name="memo-textarea" kind="memo-textarea" offsetY=${ae} text=${ie} visible=${!re} fill=${y.active} fontFamily=${KP} fontSize=${12} fontStyle=${`400`} lineHeight=${pI()} wrap="none" /></k-group><${cI} .memo=${v} .top=${oe} .left=${b} /></k-group></k-group>`}},eL={now:()=>performance.now(),requestFrame:e=>requestAnimationFrame(e),cancelFrame:e=>cancelAnimationFrame(e)},tL=new Map,nL=new Map,rL=Ma({});let iL=eL,aL=null;function oL(e){let t=1-e;return 1-t*t*t}function sL(){aL===null&&nL.size!==0&&(aL=iL.requestFrame(cL))}function cL(){aL=null;let e=iL.now();for(let[t,n]of[...nL]){let r=e-n.startedAt,{from:i,to:a}=n;if(r>=300){nL.delete(t),rL[t]=a;continue}let o=r>0?r/300:0;rL[t]=i+(a-i)*oL(o)}sL()}function lL(e,t,n){return`${e} ${t}:${n}`}function uL(e){let t=rL[e];if(t!==void 0)return t;let n=nL.get(e);return n?n.from:tL.get(e)??0}function dL(e,t){let n=tL.get(e);if(n===t)return;if(n===void 0){tL.set(e,t);return}let r=uL(e);tL.set(e,t),nL.set(e,{from:r,to:t,startedAt:iL.now()}),sL()}const fL=/^#([0-9a-f]{3}|[0-9a-f]{6})$/i;function pL(e){let t=fL.exec(e.trim());if(!t)return null;let n=t[1],r=n.length===6?n:[...n].map(e=>`${e}${e}`).join(``);return[0,2,4].map(e=>parseInt(r.slice(e,e+2),16))}function mL(e,t,n){if(!(n>0))return e;if(n>=1)return t;let r=pL(e),i=pL(t);return!r||!i?n<.5?e:t:`#${r.map((e,t)=>Math.round(e+(i[t]-e)*n)).map(e=>e.toString(16).padStart(2,`0`)).join(``)}`}function hL(e,t,n){return Math.abs(e.x-t.x)<.5?{x:e.x,y:e.y+Math.sign(t.y-e.y)*n}:{x:e.x+Math.sign(t.x-e.x)*n,y:e.y}}function gL(e,t){if(e.length<3||t<=0)return e;let n=[e[0]],r=e=>{let t=n[n.length-1];Math.abs(t.x-e.x)<.5&&Math.abs(t.y-e.y)<.5||n.push(e)};for(let n=1;n<e.length-1;n++){let i=e[n-1],a=e[n],o=e[n+1];if(Math.abs(a.x-i.x)<.5==Math.abs(o.x-a.x)<.5){r(a);continue}let s=Math.abs(a.x-i.x)+Math.abs(a.y-i.y),c=Math.abs(o.x-a.x)+Math.abs(o.y-a.y),l=Math.min(t,s/2,c/2);if(l<2){r(a);continue}r(hL(a,i,l)),r(hL(a,o,l))}return r(e[e.length-1]),n}function _L(e,t=`document`){let{start:n,end:r}=Fh(e,t),[i,a]=jh(e,t),o=mM(n,r);return{path:vL(n,r,hM(pM(i),o),hM(pM(a),o),Nh(e,t),t),line:yL(n,r)}}function vL(e,t,n,r,i,a){let o={start:{x1:e.x,y1:e.y,x2:e.x,y2:e.y},end:{x1:t.x,y1:t.y,x2:t.x,y2:t.y}},s={M:{x:0,y:0},L:{x:0,y:0},Q:{x:0,y:0},d(){return e.tableId===t.tableId?[[{x:this.M.x,y:this.M.y},{x:this.L.x,y:this.L.y}]]:SL(a===`document`?gL(i&&i.length>1?i:wL(this.M,this.L,e.direction),8):hh(this.M,CL(e.direction),this.L,CL(t.direction)))}},c=1;return e.direction===L.left||e.direction===L.right?(e.direction===L.left&&(c*=-1),o.start.x2=e.x+c*n,o.start.x1+=c*25,s.M.x=o.start.x2,s.M.y=e.y):(e.direction===L.top||e.direction===L.bottom)&&(e.direction===L.top&&(c*=-1),o.start.y2=e.y+c*n,o.start.y1+=c*25,s.M.x=e.x,s.M.y=o.start.y2),c=1,t.direction===L.left||t.direction===L.right?(t.direction===L.left&&(c*=-1),o.end.x2=t.x+c*r,o.end.x1+=c*25,s.L.x=o.end.x2,s.L.y=t.y):(t.direction===L.top||t.direction===L.bottom)&&(t.direction===L.top&&(c*=-1),o.end.y2=t.y+c*r,o.end.y1+=c*25,s.L.x=t.x,s.L.y=o.end.y2),{line:o,path:s}}function yL(e,t){let n={start:{base:{x1:e.x,y1:e.y,x2:e.x,y2:e.y},base2:{x1:e.x,y1:e.y,x2:e.x,y2:e.y},center:{x1:e.x,y1:e.y,x2:e.x,y2:e.y},center2:{x1:e.x,y1:e.y,x2:e.x,y2:e.y}},end:{base:{x1:t.x,y1:t.y,x2:t.x,y2:t.y},base2:{x1:t.x,y1:t.y,x2:t.x,y2:t.y},left:{x1:t.x,y1:t.y,x2:t.x,y2:t.y},center:{x1:t.x,y1:t.y,x2:t.x,y2:t.y},center2:{x1:t.x,y1:t.y,x2:t.x,y2:t.y},right:{x1:t.x,y1:t.y,x2:t.x,y2:t.y}}},r={cx:t.x,cy:t.y},i={cx:e.x,cy:e.y},a=1;return e.direction===L.left||e.direction===L.right?(e.direction===L.left&&(a*=-1),n.start.base.x1=n.start.base.x2+=a*11,n.start.base2.x1=n.start.base2.x2+=a*18,n.start.center.x1=n.start.base.x1,n.start.base.y1-=7,n.start.base.y2+=7,n.start.base2.y1-=7,n.start.base2.y2+=7,n.start.center2.x1+=a*25,i.cx+=a*18):(e.direction===L.top||e.direction===L.bottom)&&(e.direction===L.top&&(a*=-1),n.start.base.y1=n.start.base.y2+=a*11,n.start.base2.y1=n.start.base2.y2+=a*18,n.start.center.y1=n.start.base.y1,n.start.base.x1-=7,n.start.base.x2+=7,n.start.base2.x1-=7,n.start.base2.x2+=7,n.start.center2.y1+=a*25,i.cy+=a*18),a=1,t.direction===L.left||t.direction===L.right?(t.direction===L.left&&(a*=-1),n.end.base.x1=n.end.base.x2+=a*11,n.end.base2.x1=n.end.base2.x2+=a*18,n.end.center.x1=n.end.left.x1=n.end.right.x1=n.end.base.x1,n.end.base.y1-=7,n.end.base.y2+=7,n.end.base2.y1-=7,n.end.base2.y2+=7,n.end.left.y2+=7,n.end.right.y2-=7,n.end.center2.x1+=a*25,r.cx+=a*18):(t.direction===L.top||t.direction===L.bottom)&&(t.direction===L.top&&(a*=-1),n.end.base.y1=n.end.base.y2+=a*11,n.end.base2.y1=n.end.base2.y2+=a*18,n.end.center.y1=n.end.left.y1=n.end.right.y1=n.end.base.y1,n.end.base.x1-=7,n.end.base.x2+=7,n.end.base2.x1-=7,n.end.base2.x2+=7,n.end.left.x2+=7,n.end.right.x2-=7,n.end.center2.y1+=a*25,r.cy+=a*18),{line:n,circle:r,startCircle:i}}function bL(e){if(!e.length)return``;let[[t]]=e,n=`M${xL(t.x)} ${xL(t.y)}`;for(let[,t]of e)n+=`L${xL(t.x)} ${xL(t.y)}`;return n}function xL(e){return Math.round(e*100)/100}function SL(e){let t=[];for(let n=1;n<e.length;n++)t.push([e[n-1],e[n]]);return t}function CL(e){let t=_M(e);return gM(e)?{x:t,y:0}:{x:0,y:t}}function wL(e,t,n){if(gM(n)){if(Math.abs(e.y-t.y)<.5)return[e,t];let n=(e.x+t.x)/2;return[e,{x:n,y:e.y},{x:n,y:t.y},t]}if(Math.abs(e.x-t.x)<.5)return[e,t];let r=(e.y+t.y)/2;return[e,{x:e.x,y:r},{x:t.x,y:r},t]}const TL=`relationship-decoration`,EL=({x1:e,y1:t,x2:n,y2:r})=>[e,t,n,r];function DL(e,t,n){return k`<k-line name=${TL} kind=${TL} points=${EL(e)} stroke=${t} strokeWidth=${n} listening=${!1} />`}function OL({cx:e,cy:t},n,r){return k`<k-circle name=${TL} kind=${TL} x=${e} y=${t} radius=${6} stroke=${n} strokeWidth=${r} listening=${!1} />`}const kL={1:{ring:!0,ticks:[`base`,`left`,`center`,`right`]},[rh.ZeroOne]:{ring:!0,ticks:[`base`,`center`]},[rh.ZeroN]:{ring:!0,ticks:[`left`,`center`,`right`]},[rh.OneOnly]:{ring:!1,ticks:[`base`,`base2`,`center2`]},[rh.OneN]:{ring:!1,ticks:[`base`,`left`,`center2`,`right`]},32:{ring:!1,ticks:[`base`,`center2`]},64:{ring:!1,ticks:[`left`,`center2`,`right`]}};function AL(e,{path:t,line:n},r,i){let a=kL[e];return a?k`${DL(t.line.end,r,i)}${a.ring?OL(n.circle,r,i):null}${a.ticks.map(e=>DL(n.line.end[e],r,i))}`:null}const jL=[10,10],ML=[];function NL({direction:e}){let t=e===L.left||e===L.top?-1:1;return e===L.left||e===L.right?{along:{x:t,y:0},across:{x:0,y:1}}:{along:{x:0,y:t},across:{x:1,y:0}}}function PL({x:e,y:t},{along:n,across:r},i,a){return{x:e+n.x*i+r.x*a,y:t+n.y*i+r.y*a}}function FL({x:e,y:t},n){return`M${e-n} ${t}A${n} ${n} 0 0 1 ${e+n} ${t}A${n} ${n} 0 0 1 ${e-n} ${t}`}function IL(e){let t=NL(e),n=(n,r)=>PL(e,t,n,r),r=n(11,0);return[bL([[n(11,-7),n(11,7)]]),bL([[n(18,-7),n(18,7)]]),bL([[r,n(0,7)]]),bL([[r,n(0,-7)]]),FL(n(18,0),6)].join(``)}function LL({start:e,end:t},{line:n},r){return`${bL([[{x:e.x,y:e.y},{x:n.start.x2,y:n.start.y2}],...r,[{x:n.end.x2,y:n.end.y2},{x:t.x,y:t.y}]])}${IL(e)}${IL(t)}`}function RL(e){return 8/(e>0?e:1)}const zL=(e,t)=>{let n=vP(t),r=AP(t),i=QF(t),a=Ma({hover:!1}),o=()=>{let{relationship:t}=e,{store:r}=n.value;a.hover=!0,r.dispatch(xb({columnIds:[...t.start.columnIds,...t.end.columnIds]}))},s=()=>{let{store:e}=n.value;a.hover=!1,e.dispatch(xb({columnIds:[]}))};return()=>{let{store:t}=n.value,{editor:c}=t.state,{relationship:l,strokeWidth:u}=e,d=r.value,f=i.value,{zoomLevel:p}=B_(t.state,f),m=Fh(l,f),h=_L(l,f),{path:g,line:_}=h,v=g.path.d(),y=!!c.hoverRelationshipMap[l.id],ee=a.hover||y,te=f!==`document`,ne=te?d.visualizationRelationship:l.identification?d.keyPFK:d.keyFK,re=ee?d.relationshipHover:ne,ie=lL(c.id,`relationship`,l.id),ae=0;te&&(dL(ie,+!!e.lit),ae=uL(ie));let b=mL(re,d.accentColor9,ae),oe=AL(l.relationshipType,h,b,u);return k`<k-group name=${`relationship ${l.id}`} kind="relationship" @mouseenter=${o} @mouseleave=${s}><k-path name="relationship-hit-area" kind="relationship-hit-area" data=${LL(m,g,v)} hitStrokeWidth=${RL(p)} lineCap="round" /><k-path name="relationship-route" kind="relationship-route" data=${bL(v)} dash=${te||l.identification?ML:jL} stroke=${b} strokeWidth=${u} listening=${!1} />${DL(g.line.start,b,u)}${DL(_.line.start.base,b,u)}${l.startRelationshipType===ih.ring?k`${OL(_.startCircle,b,u)}${DL(_.line.start.center,b,u)}`:k`${DL(_.line.start.base2,b,u)}${DL(_.line.start.center2,b,u)}`}${oe}</k-group>`}},BL=(e,t)=>{let n=QF(t);return()=>{let{relationships:t,viewport:r,litIds:i}=e,a=n.value,o=e.strokeWidth??zh(a),s=r?t.filter(e=>Z_(r,e,o,a)):t;return k`<k-group name="relationship-group" kind="relationship-group">${hu(s,e=>e.id,e=>k`<${zL} .relationship=${e} .strokeWidth=${o} .lit=${i?.has(e.id)??!1} />`)}</k-group>`}},VL=Ma({pointers:{}});function HL(e,t,n,{columnId:r,columnIds:i}){let a=M_(e,t,t.columnIds.indexOf(r)),o=Math.max(i.indexOf(r),0);VL.pointers[$_(e,`document`)]={...n,grabX:n.x-A_(e,t).x,grabY:n.y-a.y+o*24,over:!0}}function UL(e,{x:t,y:n},r){let i=VL.pointers[$_(e,`document`)];i&&(i.x=t,i.y=n,i.over=r)}function WL(e){Reflect.deleteProperty(VL.pointers,$_(e,`document`))}const GL=e=>e.evt?.detail??0;function KL(){let e=null;return{track(t,n){GL(n)<=1&&(e=t)},isDouble(t,n){return GL(n)>=2&&e===t}}}const qL={insert:1,delete:2};function JL(e,t,n){let r=t?.get(n);return r===qL.insert?e.diffInsertBackground:r===qL.delete?e.diffDeleteBackground:null}const YL=(e,t)=>{let n=W(e,z.primaryKey),r=W(e,z.foreignKey);return n&&r?t.keyPFK:n?t.keyPK:r?t.keyFK:tF},XL=(e,t,n,r,i)=>!t&&n?r?e.columnSelectHover:e.columnSelect:i>0?r?mL(e.columnHover,e.accentColor4,i):mL(e.tableBackground,e.accentColor3,i):r?e.columnHover:tF,ZL=(e,t)=>{let n=vP(t),r=AP(t),i=Ma({hover:!1,removeHover:!1}),{addUnsubscribe:a}=BF(),o=KL(),s=null,c=()=>{s?.unsubscribe(),s=null};a(c);let l=t=>{if(e.preview||e.ghost||t.evt.button!==0||e.source!==`document`)return;c();let n=!1,r=PF.subscribe({next:()=>{n||(n=!0,e.onDragstart?.(e.column.id,t))},complete:()=>{s===r&&(s=null),n&&e.onDragend?.()}});s=r},u=!1,d=e=>{u=!!n.value.store.state.editor.drawRelationship,l(e)},f=()=>{i.hover=!0},p=()=>{i.hover=!1},m=e=>{i.removeHover=!0,cF(e,aF)},h=e=>{i.removeHover=!1,cF(e,``)},g=(e,t)=>t?i.removeHover?e.active:e.foreground:tF,_=(t,r)=>{if(e.source!==`document`)return;let{store:i}=n.value,{column:a}=e;i.dispatch(Yy({tableId:a.tableId,columnId:a.id,focusType:t,$mod:hP(r.evt),shiftKey:r.evt.shiftKey}))},v=(t,r)=>{if(!o.isDouble(t,r)||e.source!==`document`)return;let{store:i}=n.value,{column:a}=e;i.dispatch(pw(t)?_w(t,a.tableId,a.id):tb())},y=()=>{if(u)return;let{store:t}=n.value,{column:r}=e;t.dispatch(gw(r.tableId,[r.id]))},ee=()=>{let{column:t}=e;if(t.ui.keys===0)return;let{store:r}=n.value;r.dispatch(fj(t.id))},te=()=>{let{store:e}=n.value;e.dispatch(pj())},ne=(t,n)=>{let i=JL(r.value,e.diffPaths,t);return i?k`<k-rect name="cell-diff-background" width=${n+8} height=${x_(e.source)} fill=${i} listening=${!1} />`:null},re=({focusType:t,x:n,width:i,text:a,fill:s,focus:c,edit:l,sharedFocus:u,ellipsis:d,opacity:f=1,align:p,fontFamily:m=KP})=>k`<k-group name=${`column-col ${t}`} kind="column-col" sharedFocus=${u} x=${n} y=${0} opacity=${f} listening=${f>0} @mousedown=${e=>{_(t,e),o.track(t,e)}} @dblclick=${e=>{v(t,e)}}>${ne(t,i)}<k-text name="cell-text" y=${MI(e.source)} width=${i} height=${NI(e.source,m)} text=${a} fill=${s} fontFamily=${m} fontSize=${12} align=${p} verticalAlign="middle" wrap="none" ellipsis=${d} visible=${!l} hitFunc=${KI[e.source]} />${c&&e.source===`document`?k`<k-rect name="cell-focus-border" y=${MI(e.source)+PI()} width=${i} height=${QP} fill=${FI(r.value,l,e.editorFocused)} listening=${!1} />`:null}${u?k`<k-rect name="cell-shared-focus-border" y=${x_(e.source)-QP} width=${i+8} height=${QP} fill=${u} listening=${!1} />`:null}</k-group>`,ie=({columnType:t,focusType:n,x:i,width:a})=>{let{column:o}=e,s=r.value,c=e.source!==`document`;switch(t){case F.columnName:return re({focusType:n,x:i,width:a,text:o.name.trim()?o.name:`column`,fill:o.name.trim()?s.active:s.placeholder,focus:e.focusName,edit:e.editName,sharedFocus:e.sharedFocusName,ellipsis:!0});case F.columnDefault:return re({focusType:n,x:i,width:a,text:o.default.trim()?o.default:`default`,fill:o.default.trim()?s.active:s.placeholder,focus:e.focusDefault,edit:e.editDefault,sharedFocus:e.sharedFocusDefault,ellipsis:!0});case F.columnComment:return re({focusType:n,x:i,width:a,text:o.comment.trim()?o.comment:`comment`,fill:o.comment.trim()?s.active:s.placeholder,focus:e.focusComment,edit:e.editComment,sharedFocus:e.sharedFocusComment,ellipsis:!0});case F.columnDataType:return re({focusType:n,x:i,width:a,text:o.dataType.trim()?o.dataType:`dataType`,fill:o.dataType.trim()?s.active:s.placeholder,focus:e.focusDataType,edit:e.editDataType,sharedFocus:e.sharedFocusDataType,ellipsis:!0,opacity:c?e.litAlpha??0:1,align:c?`right`:void 0,fontFamily:c?`'Menlo', 'Consolas', 'Bitstream Vera Sans Mono', monospace, 'Apple Color Emoji', 'Segoe UI Emoji'`:void 0});case F.columnNotNull:return re({focusType:n,x:i,width:a,text:W(o.options,R.notNull)?`N-N`:`NULL`,fill:s.active,focus:e.focusNotNull,edit:!1,sharedFocus:e.sharedFocusNotNull,ellipsis:!1});case F.columnUnique:return re({focusType:n,x:i,width:a,text:`UQ`,fill:W(o.options,R.unique)?s.active:s.placeholder,focus:e.focusUnique,edit:!1,sharedFocus:e.sharedFocusUnique,ellipsis:!1});case F.columnAutoIncrement:return re({focusType:n,x:i,width:a,text:`AI`,fill:W(o.options,R.autoIncrement)?s.active:s.placeholder,focus:e.focusAutoIncrement,edit:!1,sharedFocus:e.sharedFocusAutoIncrement,ellipsis:!1})}return null},ae=()=>{let{store:t}=n.value;return UI(t.state,{name:e.widthName,comment:e.widthComment,dataType:e.widthDataType,default:e.widthDefault},e.source).map(e=>({columnType:e.columnType,template:ie(e)})).filter(({template:e})=>!!e)};return()=>{let{store:t}=n.value,{editor:a}=t.state,{column:o,selected:s,width:c}=e,l=r.value,u=!!(e.hovered||i.hover||a.hoverColumnMap[o.id]),_=!!a.draggingColumnMap[o.id],v=c-18,ne=e.source!==`document`,re=XL(l,ne,s,u,ne&&e.related?e.litAlpha??0:0),ie=x_(e.source),b=ne?16:12;return k`<k-group id=${e.preview?``:`column-${o.id}`} name="column-row" kind="column-row" tableId=${o.tableId} selected=${s} y=${e.y} opacity=${_?.5:1} visible=${!e.ghost} @mousedown=${d} @mouseenter=${f} @mouseleave=${p}><k-rect name="column-row-background" x=${1} width=${c-2} height=${ie} cornerRadius=${e.last?[0,0,6,6]:0} fill=${re} />${ZI({icon:`key-round`,name:`column-col column-key`,kind:`column-col`,size:b,color:YL(o.ui.keys,l),x:9,y:(ie-b)/2,mouseenter:ee,mouseleave:te})}${hu(ae(),({columnType:e})=>e,({template:e})=>e)}${e.divider?k`<k-line name="column-row-divider" points=${[1,ie,c-1,ie]} stroke=${l.tableBorder} strokeWidth=${1} listening=${!1} />`:null}${ne?null:ZI({icon:`x`,name:`column-remove`,kind:`icon`,size:12,color:g(l,u),x:9+v-12,y:6,click:y,mouseenter:m,mouseleave:h})}</k-group>`}};function QL(e,t){let{settings:n}=e,{viewport:r}=e.editor,i=W_(n,t),a=W_(n,{x:t.x+t.width,y:t.y+t.height});return i.x>=0&&i.y>=0&&a.x<=r.width&&a.y<=r.height}const $L=e=>function*(t){let{viewport:n}=t.editor,r=M(t.collections).collection(`tableEntities`).selectById(e);if(!r)return;let i=A_(t,r);if(!QL(t,i)){let e=K_(t.settings.zoomLevel,{x:i.x+i.width/2,y:i.y+i.height/2},{x:n.width/2,y:n.height/2});yield hv({originX:e.x,originY:e.y})}yield uw(e,!1)};function eR(e,t){e.dispatchSync(Cv({value:Ym.ERD})),e.dispatchSync($L(t))}const tR=Si(null),nR=e=>qa(e,tR);function rR(e,t){e.store.dispatchSync(Ig({tableIds:t,kind:og.flow}))}function iR(e,t,n=`document`){let{collections:r}=e,i=J_(e,n),a=M(r).collection(`tableEntities`).selectByIds(Zg(e,n).tableIds).filter(t=>X_(i,e,t,n)).sort((e,t)=>t.ui.zIndex-e.ui.zIndex).map(t=>({table:t,rect:A_(e,t,n)})),o=(e,n)=>t.x>=e.x&&t.x<=e.x+e.width&&t.y>=e.y&&t.y<=e.y+e.height+n,s=a.find(({rect:e})=>o(e,0))??a.find(({rect:e})=>o(e,8));if(!s)return null;let{table:c}=s,l=Xg(e,c,n),u={tableId:c.id,columnId:null,index:l.length};if(!l.length)return u;let d=M_(e,c,0,n);if(t.y<d.y)return null;let f=Math.floor((t.y-d.y)/d.height);return f>=l.length?u:{tableId:c.id,columnId:l[f],index:f}}function aR({collections:e},{tableId:t,columnIds:n},r){if(r.columnId!==null)return n.includes(r.columnId);if(r.tableId!==t)return!1;let i=M(e).collection(`tableEntities`).selectById(t);return ce(i?.columnIds.slice(-n.length),n)}const oR=`flipFade`;function sR(e,t){let n=e.getAbsolutePosition(),r=e.getAbsoluteScale();return{x:(n.x-t.x)/(r.x||1),y:(n.y-t.y)/(r.y||1)}}function cR(e){let t=new Map,n=new Map,r=null,i=null,a=(e,t,n,r,i,a)=>{sf(n);let o=!1,s=-1,c=()=>{o||(o=!0,clearTimeout(s),e.delete(t),i(),cf(n))},l=new mi({node:t,...r,duration:.3,easing:pi.EaseInOut,onFinish:c,onReset:c});l.onUpdate=a,e.set(t,()=>{l.destroy(),c()}),s=setTimeout(()=>e.get(t)?.(),500),l.play()},o=(e,n,r,i)=>{t.get(e)?.(),e.offsetX(r),e.offsetY(i),a(t,e,n,{offsetX:0,offsetY:0},()=>{e.offsetX(0),e.offsetY(0)})},s=(e,t)=>{n.get(e)?.();let r=e.opacity(),i=!1,o=()=>{i=!0,e.opacity(r*(e.getAttr(oR)??1)),i=!1};e.on(`opacityChange.${oR}`,()=>{i||(r=e.opacity())}),e.setAttr(oR,0),o();let s=()=>{e.off(`opacityChange.${oR}`),e.setAttr(oR,void 0),o()};a(n,e,t,{[oR]:1},s,o)},c=()=>{let e=r;return r=null,i?.(),i=null,e},l=()=>{let t=c();if(!t)return;for(let e of t){let{node:t}=e,n=t.getLayer();if(!n||!t.getStage())continue;let{x:r,y:i}=sR(t,e);!r&&!i||o(t,n,r,i)}let n=new Set(t.map(({node:e})=>e));for(let t of e()){let e=t.getLayer();n.has(t)||!e||!t.getStage()||s(t,e)}};return{snapshot(){r=e().map(e=>{let{x:t,y:n}=e.getAbsolutePosition();return{node:e,x:t,y:n}}),i??=nf(l)},cancel(){c(),[...t.values(),...n.values()].forEach(e=>e())}}}function lR(e,t){let n=vP(e),r=()=>n.value.store.state.editor.focusTable;return{hasFocus:(e,n)=>VF(r(),e,t,n),hasEdit:(e,n)=>UF(r(),e,t,n),hasSelectColumn:e=>HF(r(),t,e)}}function uR(e){if(WP(e))return{x:e.clientX,y:e.clientY};let{touches:t,changedTouches:n}=e,r=t?.[0]??n?.[0];return r?{x:r.clientX,y:r.clientY}:null}const dR=e=>e.type===`mouseup`||e.type===`touchend`&&!e.touches?.length;function fR(e,t){return Math.abs(t.x-e.x)<=4&&Math.abs(t.y-e.y)<=4}function pR(e){return!hP(e)&&(!WP(e)||e.button===0)}function mR(e,t){let n=uR(e);!n||GP(e)||jF.pipe(Re(1)).subscribe(e=>{let r=dR(e)?uR(e):null;r&&fR(n,r)&&t()})}function hR(e,t,n){return{onPress:r=>{let{evt:i}=r,a=n.value;if(a===`document`||!pR(i))return;let o=e.value.store.state.editor.views[a];if(!o)return;let{id:s}=t.table;mR(i,()=>{let{store:t}=e.value;t.state.editor.views[a]===o&&o_(t.state,s,a)})}}}const gR=[`icon`],_R=(e,t,n)=>t.trim()?n?e.foreground:e.active:e.placeholder,vR=(e,t)=>{let n=vP(t),r=AP(t),i=QF(t),a=nR(t),{hasEdit:o,hasFocus:s,hasSelectColumn:c}=lR(t,e.table.id),{sharedFocusColor:l,sharedFocusTableColor:u}=YF(t,e.table.id),{sharedSelectColor:d}=XF(t,e.table.id),{onMoveStart:f}=zF(t,e,i),p=hR(n,e,i),{addUnsubscribe:m}=BF(),h=Ma({hover:!1,iconHover:null,dragstartId:null}),g=KL(),_=null,v=null,y=null,ee=()=>{h.hover=!0,i.value!==`document`&&t_(n.value.store.state,e.table.id,i.value)},te=()=>{h.hover=!1,i.value!==`document`&&t_(n.value.store.state,null,i.value)};m(()=>{i.value!==`document`&&n_(n.value.store.state,e.table.id,i.value)});let ne=e=>t=>{h.iconHover=e,cF(t,aF)},re=e=>{h.iconHover=null,cF(e,``)},ie=(e,t,n)=>n?h.iconHover===t?e.active:e.foreground:tF,ae=(t,n)=>n?e.editorFocused===!1?t.placeholder:t.tableSelect:t.tableBorder,b=!1,oe=e=>{b=!!n.value.store.state.editor.drawRelationship,!(i.value!==`document`&&hF(e.target,gR))&&(f(e),p.onPress(e))},se=t=>{if(b)return;let{emitter:r}=n.value;r.emit(aP({x:t.evt.clientX,y:t.evt.clientY,color:e.table.ui.color}))},ce=()=>{if(b)return;let{store:t}=n.value;t.dispatch(hw(e.table.id))},le=()=>{if(b)return;let{store:t}=n.value;t.dispatch(lw(e.table.id))},x=()=>{rR(n.value,[e.table.id])},ue=()=>{eR(n.value.store,e.table.id)},S=t=>{if(i.value!==`document`)return;let{store:r}=n.value;r.dispatch(qy({tableId:e.table.id,focusType:t}))},de=(e,t)=>{if(!g.isDouble(e,t)||i.value!==`document`)return;let{store:r}=n.value;r.dispatch(tb())},C=e=>{let t=v,n=t?.findOne(`.scene`);if(!t||!n)return null;t.setPointersPositions(e);let r=t.getPointerPosition();return r?n.getAbsoluteTransform().copy().invert().point(r):null},fe=e=>{let{store:t}=n.value,r=C(e);if(!r)return;let a=iR(t.state,r,i.value);if(UL(t.state,r,a!==null),!a)return;let{editor:{draggableColumn:o}}=t.state;!o||aR(t.state,o,a)||(y?.snapshot(),t.dispatch(dj(a.columnId,a.tableId)))},pe=()=>{let{store:e,emitter:t}=n.value;!_&&h.dragstartId===null||(_?.unsubscribe(),_=null,v=null,h.dragstartId=null,WL(e.state),e.dispatch(Nb()),t.emit(oP()))},me=(t,r)=>{let{store:a}=n.value;if(i.value!==`document`)return;let{editor:{focusTable:o}}=a.state;if(!o||!o.columnId)return;let s=r.target?.getStage()??null;if(!s)return;_?.unsubscribe(),v=s,h.dragstartId=t,y??=cR(()=>s.find(`.column-row`));let c=hP(r.evt),l=C(r.evt);l&&HL(a.state,e.table,l,{columnId:t,columnIds:c?o.selectColumnIds:[t]}),a.dispatch(lj(c)),_=PF.subscribe({next:({event:e})=>{fe(e)},complete:pe})};da(()=>{let{emitter:e}=n.value;m(e.on({dragendColumnAll:()=>{_?.unsubscribe(),_=null,WL(n.value.store.state)}}),()=>{_&&WL(n.value.store.state),_?.unsubscribe(),_=null,y?.cancel()})});let he=({focusType:t,x:n,width:o,text:s,fill:c,focus:l,edit:u,sharedFocus:d})=>{let f=i.value,p=f!==`document`,m=JL(r.value,a.value?.get(e.table.id)?.[1],t);return k`<k-group name=${`input-padding ${t}`} kind="input-padding" sharedFocus=${d} x=${n} y=${0} @mousedown=${e=>{S(t),g.track(t,e)}} @dblclick=${e=>{de(t,e)}}>${m?k`<k-rect name="cell-diff-background" width=${o+8} height=${24} fill=${m} listening=${!1} />`:null}<k-text name="cell-text" y=${AI(f)} width=${o} height=${jI(f)} text=${s} fill=${c} fontFamily=${KP} fontSize=${p?14:12} fontStyle=${p?`500`:`normal`} verticalAlign="middle" wrap="none" ellipsis=${!0} visible=${!u} hitFunc=${JI[f]} />${l&&!p?k`<k-rect name="cell-focus-border" y=${AI(f)+18.5} width=${o} height=${QP} fill=${FI(r.value,u,e.editorFocused)} listening=${!1} />`:null}${d?k`<k-rect name="cell-shared-focus-border" y=${22.5} width=${o+8} height=${QP} fill=${d} listening=${!1} />`:null}</k-group>`};return()=>{let{store:t}=n.value,{editor:f,collections:p}=t.state,{table:m}=e,g=r.value,_=!!f.selectedMap[m.id],v=i.value,y=j_(t.state,m,v),b=A_(t.state,m,v),S=b.width-18,de=!!(e.hovered||h.hover),C=e.ghostColumnId??h.dragstartId,fe=C!==null&&!m.columnIds.includes(C)?C:null,ge=u(),_e=d(),ve=l(U.tableName),ye=l(U.tableComment),be=ge??_e,xe=v!==`document`,Se=kI(v)-9,Ce=Se+(xe?2:6),we=xe?16:12,Te=xe&&de,Ee=(e,t)=>!xe&&o(e,t),De=BI(t.state,m,v),Oe=De.find(e=>e.focusType===U.tableName),ke=De.find(e=>e.focusType===U.tableComment),Ae=Xg(t.state,m,v),je=Ae.length===0,Me=xe&&!!e.lit,Ne=xe?$P(g.minimapShadow):iF(g.tableShadow),Pe=lL(f.id,`table`,m.id),Fe=0;xe&&(dL(Pe,+!!Me),Fe=uL(Pe));let Ie=M(p).collection(`tableColumnEntities`).selectByIds(fe?[...Ae,fe]:Ae);return k`<k-group id=${e.preview?``:`table-${m.id}`} name="table" kind="table" visible=${e.visible??!0} selected=${_} sharedFocus=${ge} sharedSelect=${_e} x=${b.x} y=${b.y} @mousedown=${oe} @touchstart=${oe} @mouseenter=${ee} @mouseleave=${te}><k-rect name="table-body" x=${1/2} y=${1/2} width=${b.width-1} height=${b.height-1} cornerRadius=${6} fill=${g.tableBackground} stroke=${mL(ae(g,_),g.accentColor9,Fe)} strokeWidth=${1} shadowColor=${Ne?.color} shadowBlur=${Ne?.blur} shadowOffsetX=${Ne?.offsetX} shadowOffsetY=${Ne?.offsetY} shadowOpacity=${Ne?.opacity} shadowForStrokeEnabled=${!Ne&&void 0} @mouseenter=${e=>{xe&&cF(e,`pointer`)}} @mouseleave=${e=>{xe&&cF(e,``)}} /><k-rect name="table-header-band" x=${1} y=${1} width=${b.width-2} height=${je?b.height-2:9+b_(v)-1} cornerRadius=${je?6:[6,6,0,0]} fill=${g.tableHeaderBackground} listening=${!1} />${Fe>0?k`<k-rect name="table-glow" x=${-1/2} y=${-1/2} width=${b.width+1} height=${b.height+1} cornerRadius=${6} opacity=${Fe} stroke=${g.accentColor9} strokeWidth=${1} shadowColor=${g.accentColor9} shadowBlur=${14} shadowOpacity=${.55} shadowForStrokeEnabled=${!0} listening=${!1} />`:null}${be?k`<k-rect name="table-ring" x=${-1/2} y=${-1/2} width=${b.width+1} height=${b.height+1} cornerRadius=${6} stroke=${be} strokeWidth=${1} listening=${!1} />`:null}<k-group name="table-header" x=${9} y=${9}><k-group name="table-header-inputs" y=${Se}>${ZI({icon:`table-2`,name:`table-header-icon`,kind:`table-header-icon`,size:we,color:g.foreground,x:0,y:xe?0:(24-we)/2})}${Oe?he({...Oe,text:m.name.trim()?m.name:`table`,fill:_R(g,m.name,xe),focus:s(U.tableName),edit:Ee(U.tableName),sharedFocus:ve}):null}${ke?he({...ke,text:m.comment.trim()?m.comment:`comment`,fill:m.comment.trim()?g.active:g.placeholder,focus:s(U.tableComment),edit:Ee(U.tableComment),sharedFocus:ye}):null}</k-group>${xe?null:ZI({icon:`plus`,name:`table-add-column`,kind:`icon`,size:12,color:ie(g,`plus`,de),mouseenter:ne(`plus`),mouseleave:re,x:S-24-4,y:Ce,click:ce})}${xe?null:ZI({icon:`x`,name:`table-remove`,kind:`icon`,size:12,color:ie(g,`x`,de),mouseenter:ne(`x`),mouseleave:re,x:S-12,y:Ce,click:le})}${Te?ZI({icon:`waypoints`,name:`table-related`,kind:`icon`,size:12,color:ie(g,`waypoints`,de),mouseenter:ne(`waypoints`),mouseleave:re,x:S-28,y:Ce,click:x}):null}${Te?ZI({icon:`external-link`,name:`table-go-to-erd`,kind:`icon`,size:12,color:ie(g,`external-link`,de),mouseenter:ne(`external-link`),mouseleave:re,x:S-12,y:Ce,click:ue}):null}</k-group><k-group name="table-columns">${hu(Ie,e=>e.id,(n,r)=>k`<${ZL} .column=${n} .source=${v} .related=${e.relatedColumnIds?.has(n.id)??!1} .diffPaths=${a.value?.get(n.id)?.[1]??null} .litAlpha=${Fe} .divider=${xe&&r<Ae.length-1} .last=${r===Ae.length-1} .y=${M_(t.state,m,r,v).y-b.y} .width=${b.width} .selected=${c(n.id)} .hovered=${n.id===e.hoveredColumnId} .widthName=${y.name} .widthDataType=${y.dataType} .widthDefault=${y.default} .widthComment=${y.comment} .focusName=${s(U.columnName,n.id)} .focusDataType=${s(U.columnDataType,n.id)} .focusNotNull=${s(U.columnNotNull,n.id)} .focusDefault=${s(U.columnDefault,n.id)} .focusComment=${s(U.columnComment,n.id)} .focusUnique=${s(U.columnUnique,n.id)} .focusAutoIncrement=${s(U.columnAutoIncrement,n.id)} .editName=${Ee(U.columnName,n.id)} .editDataType=${Ee(U.columnDataType,n.id)} .editDefault=${Ee(U.columnDefault,n.id)} .editComment=${Ee(U.columnComment,n.id)} .sharedFocusName=${l(U.columnName,n.id)} .sharedFocusDataType=${l(U.columnDataType,n.id)} .sharedFocusNotNull=${l(U.columnNotNull,n.id)} .sharedFocusDefault=${l(U.columnDefault,n.id)} .sharedFocusComment=${l(U.columnComment,n.id)} .sharedFocusUnique=${l(U.columnUnique,n.id)} .sharedFocusAutoIncrement=${l(U.columnAutoIncrement,n.id)} .ghost=${n.id===fe} .preview=${e.preview} .editorFocused=${e.editorFocused} .onDragstart=${me} .onDragend=${pe} />`)}</k-group><k-path name="table-header-color" kind="table-header-color" data=${uF(b.height)} fill=${m.ui.color} listening=${!xe} @click=${se} @mouseenter=${e=>{cF(e,aF)}} @mouseleave=${e=>{cF(e,``)}} /></k-group>`}},yR=(e,t)=>e.ui.zIndex-t.ui.zIndex,bR=(e,t)=>{let n=vP(t),r=AP(t);return()=>{let{store:t}=n.value,{box:i,scale:a}=e,{settings:{show:o,zoomLevel:s},doc:{tableIds:c,memoIds:l,relationshipIds:u},collections:d}=t.state,f=r.value,p=M(d).collection(`tableEntities`).selectByIds(c).sort(yR),m=M(d).collection(`memoEntities`).selectByIds(l).sort(yR),h=M(d).collection(`relationshipEntities`).selectByIds(u),g=rg(s);return k`<k-layer name="export-scene" listening=${!1} x=${-i.x*a} y=${-i.y*a} scaleX=${a} scaleY=${a}><k-rect name="export-background" x=${i.x} y=${i.y} width=${i.width} height=${i.height} fill=${f.canvasBackground} />${W(o,P.relationship)?k`<${BL} .relationships=${h} />`:null}${hu(p,e=>e.id,e=>g?k`<${eI} .table=${e} />`:k`<${vR} .table=${e} />`)}${hu(m,e=>e.id,e=>k`<${$I} .memo=${e} />`)}</k-layer>`}};async function xR({doc:e,theme:t,toWidth:n,zoomLevel:r}){let i=gP({toWidth:n},{devtools:!1});i.store.dispatchSync(WA(e)),S(r)&&i.store.dispatchSync(lv({value:r})),await MP(32);let a=i.store.state.settings.zoomLevel,o=IP(i.store.state),s=LP(o,a),c=jP({app:i,container:document.createElement(`div`),scene:k`<${bR} .box=${o} .scale=${s} />`,width:o.width*s,height:o.height*s,theme:t});return await uf(),{stage:c.stage,box:o,scale:s,zoomLevel:a,destroy:()=>{c.destroy(),yP(i)}}}function SR(e){return`convertToBlob`in e?e.convertToBlob({type:`image/png`}):new Promise((t,n)=>{e.toBlob(e=>{e?t(e):n(Error(`[export-png] the canvas encoded no png`))},`image/png`)})}async function CR({doc:e,theme:t,pixelRatio:n,zoomLevel:r,toWidth:i}){let a=await xR({doc:e,theme:t,toWidth:i,zoomLevel:r});try{let e=PP(n,a.stage.width(),a.stage.height()),t=a.stage.toCanvas({pixelRatio:e}),r=await SR(t),{width:i,height:o}=t;return{blob:r,width:i,height:o,reduction:a.scale*e<n*a.zoomLevel?{documentWidth:a.box.width,documentHeight:a.box.height,width:i,height:o}:null}}finally{a.destroy()}}const wR=`400 12px ${UP}`,TR=[`ERD editor 0123456789`,`가나다 漢字 テスト`,`—…€· iIlL1`];function ER(){if(typeof OffscreenCanvas>`u`)return null;let e=new OffscreenCanvas(1,1).getContext(`2d`);return e?(e.font=wR,t=>Math.round(e.measureText(t).width)+2):null}function DR(e){return TR.map(t=>e(t))}function OR(e,t){return e.length===t.length&&e.every((e,n)=>e===t[n])}const kR=new class{async probeFontWidths(){return DR(this.createToWidth())}async render(e){let t=this.createToWidth(),n=DR(t);if(!OR(n,e.fontProbe))throw Error(`[export-png] this realm measures text differently: ${n.join()} against ${e.fontProbe.join()}`);return CR({...e,toWidth:t})}createToWidth(){let e=ER();if(!e)throw Error(`[export-png] this realm has no 2d context to measure by`);return e}};self.onconnect=t=>{let n=t.ports[0];e.expose(kR,n)};
|