@dineug/erd-editor 4.1.0 → 4.2.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 +17 -4
- package/dist/components/dictionary/Dictionary.d.ts +12 -0
- package/dist/components/dictionary/Dictionary.styles.d.ts +33 -0
- package/dist/components/dictionary/checkCount.d.ts +28 -0
- package/dist/components/dictionary/checkSheet.d.ts +41 -0
- package/dist/components/dictionary/dictionary-context-menu/DictionaryContextMenu.d.ts +30 -0
- package/dist/components/dictionary/dictionaryCommit.d.ts +83 -0
- package/dist/components/dictionary/dictionaryFile.d.ts +23 -0
- package/dist/components/dictionary/dictionaryKeys.d.ts +48 -0
- package/dist/components/dictionary/dictionaryView.d.ts +65 -0
- package/dist/components/dictionary/domain-cell-editor/DomainCellEditor.d.ts +22 -0
- package/dist/components/dictionary/domain-cell-editor/DomainCellEditor.styles.d.ts +7 -0
- package/dist/components/dictionary/domain-cell-editor/openDomainCellEditor.d.ts +9 -0
- package/dist/components/dictionary/gridTheme.d.ts +18 -0
- package/dist/components/dictionary/sheets.d.ts +65 -0
- package/dist/components/erd/automatic-table-placement/flowPlacement.d.ts +4 -4
- package/dist/components/erd/canvas/EditOverlay.styles.d.ts +6 -0
- package/dist/components/erd/canvas/sceneHit.d.ts +5 -0
- package/dist/components/erd/canvas/sceneTokens.d.ts +6 -0
- package/dist/components/erd/canvas/table/Table.d.ts +6 -0
- package/dist/components/erd/canvas/table/blankLogicalName.d.ts +19 -0
- package/dist/components/erd/canvas/table/cellLayout.d.ts +4 -4
- package/dist/components/erd/canvas/table/column/Column.d.ts +32 -5
- package/dist/components/erd/canvas/table/dictionaryMarks.d.ts +29 -0
- package/dist/components/erd/canvas/table/useFocusTable.d.ts +1 -0
- package/dist/components/erd/diff-viewer/diff-tree/DiffTree.styles.d.ts +1 -0
- package/dist/components/erd/diff-viewer/diff-tree/diffTreeModel.d.ts +4 -1
- package/dist/components/erd/erd-context-menu/menus/nameViewMenus.d.ts +22 -0
- package/dist/components/erd/floating-toolbar/FloatingToolbar.d.ts +1 -1
- package/dist/components/erd/floating-toolbar/nameViewDropdown.d.ts +16 -0
- package/dist/components/erd/floating-toolbar/nameViewDropdown.styles.d.ts +5 -0
- package/dist/components/erd/readerNameView.d.ts +15 -0
- package/dist/components/explorer/explorerTree.d.ts +4 -1
- package/dist/components/explorer/fieldIcon.d.ts +4 -1
- package/dist/components/explorer/matchTarget.d.ts +6 -6
- package/dist/components/export-image/ExportImage.d.ts +10 -0
- package/dist/components/export-image/exportImageActions.d.ts +2 -2
- package/dist/components/flowCenters.d.ts +9 -0
- package/dist/components/map-columns/nameOf.d.ts +11 -3
- package/dist/components/primitives/icon/icons.d.ts +5 -0
- package/dist/components/quick-search/actions.d.ts +3 -1
- package/dist/components/quick-search/scopedActions.d.ts +2 -2
- package/dist/components/schema-sql/schema-sql-options/SchemaSQLOptions.d.ts +2 -2
- package/dist/components/schema-sql/schema-sql-options/SchemaSQLOptions.styles.d.ts +2 -0
- package/dist/components/schema-sql/schemaSQLView.d.ts +2 -0
- package/dist/components/settings/lockSettingRows.d.ts +2 -1
- package/dist/components/table-view/column/column-domain/ColumnDomain.d.ts +19 -0
- package/dist/components/table-view/column/column-domain/domainOptions.d.ts +13 -0
- package/dist/components/table-view/column/column-logical-name/ColumnLogicalName.d.ts +22 -0
- package/dist/components/table-view/column/column-logical-name/ColumnLogicalName.styles.d.ts +4 -0
- package/dist/components/table-view/column/columnViewText.d.ts +33 -0
- package/dist/components/table-view/column/useHintList.d.ts +24 -0
- package/dist/components/visualization/createVisualization.d.ts +2 -0
- package/dist/components/visualization/flowLayout.d.ts +2 -1
- package/dist/components/visualization/table/column/Column.d.ts +4 -0
- package/dist/components/visualization/visualization-toolbar/VisualizationToolbar.d.ts +2 -2
- package/dist/components/visualization/visualizationView.d.ts +15 -4
- package/dist/constants/layout.d.ts +11 -0
- package/dist/constants/schema.d.ts +15 -2
- package/dist/engine/actions.d.ts +5 -2
- package/dist/engine/history.actions.d.ts +8 -0
- package/dist/engine/history.d.ts +11 -3
- package/dist/engine/index.js +17 -17
- package/dist/engine/modules/dictionary/actions.d.ts +74 -0
- package/dist/engine/modules/dictionary/atom.actions.d.ts +74 -0
- package/dist/engine/modules/dictionary/checks.d.ts +76 -0
- package/dist/engine/modules/dictionary/derive.d.ts +54 -0
- package/dist/engine/modules/dictionary/derivedNames.d.ts +23 -0
- package/dist/engine/modules/dictionary/dictionaryIndex.d.ts +73 -0
- package/dist/engine/modules/dictionary/domainLinks.d.ts +9 -0
- package/dist/engine/modules/dictionary/domainTypes.d.ts +27 -0
- package/dist/engine/modules/dictionary/entryWrites.d.ts +63 -0
- package/dist/engine/modules/dictionary/generator.actions.d.ts +126 -0
- package/dist/engine/modules/dictionary/history.d.ts +14 -0
- package/dist/engine/modules/dictionary/membership.d.ts +28 -0
- package/dist/engine/modules/dictionary/orderKeys.d.ts +13 -0
- package/dist/engine/modules/dictionary/termIndex.d.ts +24 -0
- package/dist/engine/modules/editor/actions.d.ts +18 -3
- package/dist/engine/modules/editor/atom.actions.d.ts +24 -6
- package/dist/engine/modules/editor/generator.actions.d.ts +22 -8
- package/dist/engine/modules/editor/state.d.ts +24 -0
- package/dist/engine/modules/editor/utils/nameView.d.ts +103 -0
- package/dist/engine/modules/editor/view.actions.d.ts +24 -1
- package/dist/engine/modules/editor/view.d.ts +8 -0
- package/dist/engine/modules/relationship/fkColumns.d.ts +10 -4
- package/dist/engine/modules/settings/actions.d.ts +13 -3
- package/dist/engine/modules/settings/atom.actions.d.ts +49 -5
- package/dist/engine/modules/settings/generator.actions.d.ts +2 -2
- package/dist/engine/modules/table/actions.d.ts +7 -0
- package/dist/engine/modules/table/atom.actions.d.ts +46 -0
- package/dist/engine/modules/table/generator.actions.d.ts +7 -0
- package/dist/engine/modules/table/history.d.ts +2 -0
- package/dist/engine/modules/table-column/actions.d.ts +7 -0
- package/dist/engine/modules/table-column/atom.actions.d.ts +49 -0
- package/dist/engine/modules/table-column/generator.actions.d.ts +5 -0
- package/dist/engine/modules/table-column/history.d.ts +3 -0
- package/dist/engine/modules/table-column/utils/dataType.d.ts +3 -1
- package/dist/engine/rx-store.d.ts +6 -0
- package/dist/engine/tag.d.ts +8 -0
- package/dist/erd-editor.umd.js +1163 -817
- package/dist/i18n/messages/ar-SA.d.ts +125 -0
- package/dist/i18n/messages/de-DE.d.ts +93 -0
- package/dist/i18n/messages/en/common.d.ts +11 -0
- package/dist/i18n/messages/en/contextMenu.d.ts +1 -0
- package/dist/i18n/messages/en/dictionary.d.ts +79 -0
- package/dist/i18n/messages/en/findReplace.d.ts +2 -0
- package/dist/i18n/messages/en/index.d.ts +93 -0
- package/dist/i18n/messages/en/palette.d.ts +4 -0
- package/dist/i18n/messages/en/schemaSql.d.ts +1 -0
- package/dist/i18n/messages/en/settings.d.ts +1 -0
- package/dist/i18n/messages/en/visualization.d.ts +2 -0
- package/dist/i18n/messages/es-ES.d.ts +101 -0
- package/dist/i18n/messages/eu-ES.d.ts +93 -0
- package/dist/i18n/messages/fa-IR.d.ts +93 -0
- package/dist/i18n/messages/fr-FR.d.ts +101 -0
- package/dist/i18n/messages/he-IL.d.ts +101 -0
- package/dist/i18n/messages/id-ID.d.ts +85 -0
- package/dist/i18n/messages/it-IT.d.ts +101 -0
- package/dist/i18n/messages/ja-JP.d.ts +85 -0
- package/dist/i18n/messages/ko-KR.d.ts +85 -0
- package/dist/i18n/messages/nl-NL.d.ts +93 -0
- package/dist/i18n/messages/pl-PL.d.ts +109 -0
- package/dist/i18n/messages/pt-BR.d.ts +101 -0
- package/dist/i18n/messages/pt-PT.d.ts +101 -0
- package/dist/i18n/messages/ro-RO.d.ts +101 -0
- package/dist/i18n/messages/ru-RU.d.ts +109 -0
- package/dist/i18n/messages/sk-SK.d.ts +109 -0
- package/dist/i18n/messages/sl-SI.d.ts +109 -0
- package/dist/i18n/messages/sv-SE.d.ts +93 -0
- package/dist/i18n/messages/tr-TR.d.ts +93 -0
- package/dist/i18n/messages/uk-UA.d.ts +109 -0
- package/dist/i18n/messages/zh-CN.d.ts +85 -0
- package/dist/i18n/messages/zh-TW.d.ts +85 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +25195 -18014
- package/dist/internal-types/index.d.ts +6 -0
- package/dist/konva/scene/columnDropTarget.d.ts +2 -2
- package/dist/loadValue-B5ojYrZ-.js +14682 -0
- package/dist/peer/index.d.ts +4 -0
- package/dist/peer/index.js +61 -60
- package/dist/services/export-png/ExportScene.d.ts +1 -1
- package/dist/services/export-png/documentScene.d.ts +7 -1
- package/dist/services/export-png/index.d.ts +11 -5
- package/dist/services/export-png/renderPng.d.ts +4 -1
- package/dist/services/export-png/renderSvg.d.ts +4 -1
- package/dist/shared-store-S7YWEz3E.js +1656 -0
- package/dist/themes/tokens.d.ts +12 -0
- package/dist/utils/calcTable.d.ts +20 -4
- package/dist/utils/collection/domain.entity.d.ts +3 -0
- package/dist/utils/collection/term.entity.d.ts +3 -0
- package/dist/utils/collection/word.entity.d.ts +3 -0
- package/dist/utils/dictionary-csv/csv.d.ts +13 -0
- package/dist/utils/dictionary-csv/decode.d.ts +7 -0
- package/dist/utils/dictionary-csv/dictionaryCsv.d.ts +55 -0
- package/dist/utils/dictionary-csv/index.d.ts +4 -0
- package/dist/utils/diff/types.d.ts +4 -0
- package/dist/utils/file/exportFile.d.ts +10 -0
- package/dist/utils/find-replace/findMatches.d.ts +10 -4
- package/dist/utils/find-replace/present.d.ts +1 -1
- package/dist/utils/find-replace/replaceActions.d.ts +9 -5
- package/dist/utils/focus.d.ts +2 -0
- package/dist/utils/formatCount.d.ts +10 -0
- package/dist/utils/keyboard-shortcut/index.d.ts +1 -1
- package/dist/utils/map-columns/alignTypes.d.ts +3 -3
- package/dist/utils/schema-sql/Databricks.d.ts +2 -2
- package/dist/utils/schema-sql/MSSQL.d.ts +1 -1
- package/dist/utils/schema-sql/MariaDB.d.ts +2 -2
- package/dist/utils/schema-sql/MySQL.d.ts +2 -2
- package/dist/utils/schema-sql/Oracle.d.ts +1 -1
- package/dist/utils/schema-sql/PostgreSQL.d.ts +1 -1
- package/dist/utils/schema-sql/SQLite.d.ts +2 -2
- package/dist/utils/schema-sql/Snowflake.d.ts +2 -2
- package/dist/utils/schema-sql/options.d.ts +2 -0
- package/dist/utils/schema-sql/utils.d.ts +14 -0
- package/dist/utils/table-clipboard/copy.d.ts +2 -3
- package/dist/utils/table-clipboard/index.d.ts +9 -1
- package/dist/utils/table-clipboard/paste.d.ts +2 -2
- package/dist/utils/table-clipboard/payload.d.ts +12 -0
- package/dist/utils/validation.d.ts +1 -0
- package/dist/workers/exportPng.shared-worker.js +30 -29
- package/package.json +7 -5
- package/dist/konva/batchDraw.d.ts +0 -42
- package/dist/konva/host.d.ts +0 -30
- package/dist/konva/jsx-types.test-d.d.ts +0 -2
- package/dist/loadValue-BKvXDYoC.js +0 -12925
- package/dist/shared-store-2IUOt99m.js +0 -1341
|
@@ -1,36 +1,37 @@
|
|
|
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 b}from"konva/lib/DragAndDrop";import{Konva as ee}from"konva/lib/Global";import{camelCase as te,clamp as ne,cloneDeep as re,difference as ie,groupBy as ae,head as x,isBoolean as oe,isEqual as se,isFunction as ce,isNil as S,isNotNil as le,isNumber as C,isPlainObject as ue,isString as w,last as de,lowerFirst as fe,mapValues 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 T,fromEvent as Oe,groupBy as ke,map as Ae,merge as je,mergeMap as Me,observeOn as Ne,share as Pe,startWith as Fe,switchMap as Ie,take as Le,takeUntil as Re,tap as ze,throttle as Be,timer as Ve}from"rxjs";import{get as He,isEmpty as Ue,round as We}from"es-toolkit/compat";import{Kind as Ge,TokenKind as Ke,parse as qe}from"graphql";import{ArrowDown as Je,ArrowLeft as Ye,ArrowRight as Xe,ArrowUp as Ze,Atom as Qe,Braces as $e,Brackets as et,CaseSensitive as tt,CaseUpper as nt,Check as rt,ChevronDown as it,ChevronRight as at,ChevronsDownUp as ot,Code as st,Contrast as ct,Copy as lt,Database as ut,Download as dt,Ellipsis as ft,ExternalLink as pt,Eye as mt,FileDiff as ht,FileImage as gt,FileInput as _t,FileOutput as vt,Folder as yt,FolderOpen as bt,Fullscreen as xt,GripVertical as St,Group as Ct,Hand as wt,KeyRound as Tt,Keyboard as Et,Languages as Dt,Link as Ot,List as kt,ListTree as At,LoaderCircle as jt,Lock as Mt,LockOpen as Nt,Logs as Pt,Maximize as Ft,MessageSquare as It,Minimize as Lt,Minus as Rt,Monitor as zt,MoonStar as Bt,MousePointer2 as Vt,Network as Ht,Palette as Ut,PanelRight as Wt,PanelRightClose as Gt,PanelRightOpen as Kt,Pencil as qt,Pipette as Jt,Plus as Yt,Redo2 as Xt,RefreshCw as Zt,Regex as Qt,Replace as $t,ReplaceAll as en,RotateCcwClock as tn,Search as nn,Settings as rn,Share2 as an,Spline as on,StickyNote as sn,Sun as cn,Table2 as ln,TableProperties as un,TriangleAlert as dn,Undo2 as fn,Ungroup as pn,WandSparkles as mn,Waypoints as hn,WholeWord as gn,Workflow as _n,X as vn}from"lucide";import{layoutWithLines as yn,prepareWithSegments as bn}from"@chenglou/pretext";import{amber as xn,amberA as Sn,amberDark as Cn,amberDarkA as wn,blue as Tn,blueA as En,blueDark as Dn,blueDarkA as On,bronze as kn,bronzeA as An,bronzeDark as jn,bronzeDarkA as Mn,brown as Nn,brownA as Pn,brownDark as Fn,brownDarkA as In,crimson as Ln,crimsonA as Rn,crimsonDark as zn,crimsonDarkA as Bn,cyan as Vn,cyanA as Hn,cyanDark as Un,cyanDarkA as Wn,gold as Gn,goldA as Kn,goldDark as qn,goldDarkA as Jn,grass as Yn,grassA as Xn,grassDark as Zn,grassDarkA as Qn,gray as $n,grayA as er,grayDark as tr,grayDarkA as nr,green as rr,greenA as ir,greenDark as ar,greenDarkA as or,indigo as sr,indigoA as cr,indigoDark as lr,indigoDarkA as ur,iris as dr,irisA as fr,irisDark as pr,irisDarkA as mr,jade as hr,jadeA as gr,jadeDark as _r,jadeDarkA as vr,lime as yr,limeA as br,limeDark as xr,limeDarkA as Sr,mauve as Cr,mauveA as wr,mauveDark as Tr,mauveDarkA as Er,mint as Dr,mintA as Or,mintDark as kr,mintDarkA as Ar,olive as jr,oliveA as Mr,oliveDark as Nr,oliveDarkA as Pr,orange as Fr,orangeA as Ir,orangeDark as Lr,orangeDarkA as Rr,pink as zr,pinkA as Br,pinkDark as Vr,pinkDarkA as Hr,plum as Ur,plumA as Wr,plumDark as Gr,plumDarkA as Kr,purple as qr,purpleA as Jr,purpleDark as Yr,purpleDarkA as Xr,red as Zr,redA as Qr,redDark as $r,redDarkA as ei,ruby as ti,rubyA as ni,rubyDark as ri,rubyDarkA as ii,sage as ai,sageA as oi,sageDark as si,sageDarkA as ci,sand as li,sandA as ui,sandDark as di,sandDarkA as fi,sky as pi,skyA as mi,skyDark as hi,skyDarkA as gi,slate as _i,slateA as vi,slateDark as yi,slateDarkA as bi,teal as xi,tealA as Si,tealDark as Ci,tealDarkA as wi,tomato as Ti,tomatoA as Ei,tomatoDark as Di,tomatoDarkA as Oi,violet as ki,violetA as Ai,violetDark as ji,violetDarkA as Mi,yellow as Ni,yellowA as Pi,yellowDark as Fi,yellowDarkA as Ii}from"@radix-ui/colors";import{Easings as Li,Tween as Ri}from"konva/lib/Tween";function zi(e){"@babel/helpers - typeof";return zi=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},zi(e)}function Bi(e,t){if(zi(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(zi(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function Vi(e){var t=Bi(e,`string`);return zi(t)==`symbol`?t:t+``}function Hi(e,t,n){return(t=Vi(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Ui=class extends EventTarget{constructor(...e){super(...e),Hi(this,`textContent`,``)}},Wi=class{};function Gi(){let e=new OffscreenCanvas(1,1);return e.style??={},e}typeof document>`u`&&(Reflect.set(globalThis,`document`,{querySelector:()=>null,querySelectorAll:()=>[],createElement:e=>e===`canvas`?Gi():new Ui}),Reflect.set(globalThis,`Node`,Wi),Reflect.set(globalThis,`HTMLElement`,Wi));function Ki(e,t){return Object.freeze({key:t??Symbol(),value:e})}var qi={subscribe:`@@r-html/context-subscribe`,unsubscribe:`@@r-html/context-unsubscribe`};function Ji(e,t){function n(n,r){return new CustomEvent(e,{detail:n,...t,...r})}return n.toString=()=>`${e}`,n.type=e,n}var Yi=Ji(qi.subscribe,{bubbles:!0,composed:!0}),Xi=Ji(qi.unsubscribe,{bubbles:!0,composed:!0});function Zi(e,t){let n=e=>{let n=e;t.dispatchEvent(Yi(n.detail))},r=e=>{let n=e;t.dispatchEvent(Xi(n.detail))};return e.addEventListener(Yi.type,n),e.addEventListener(Xi.type,r),()=>{e.removeEventListener(Yi.type,n),e.removeEventListener(Xi.type,r)}}function Qi(e,...t){try{return e?.(...t)}catch(e){console.error(e)}}var $i=queueMicrotask??(e=>{Promise.resolve().then(e)}),ea=e=>t=>typeof t===e,ta=ea(`object`),na=ea(`bigint`),ra=ea(`boolean`),ia=ea(`function`),aa=ea(`number`),oa=ea(`string`),sa=ea(`symbol`),ca=ea(`undefined`),la=e=>e===null,{isArray:ua}=Array,da=e=>ta(e)&&!la(e)&&!ua(e),fa=e=>na(e)||ra(e)||aa(e)||oa(e)||sa(e)||ca(e)||la(e);function pa(){let e=/* @__PURE__ */ 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 ma=`...`,ha=`@@r-html-${Math.random().toString().substring(2,8)}`,ga=`${ma}${ha}`,_a=RegExp(`${ha}_(\\d+)_`,`g`),va=RegExp(`^${ha}_\\d+_$`),ya=/^\n/,ba=/* @__PURE__ */ function(e){return e.attribute=`attribute`,e.boolean=`boolean`,e.event=`event`,e.property=`property`,e.spread=`spread`,e.directive=`directive`,e}({}),xa=Symbol.for(`https://github.com/dineug/r-html#beforeMount`),Sa=Symbol.for(`https://github.com/dineug/r-html#mounted`),Ca=Symbol.for(`https://github.com/dineug/r-html#unmounted`),wa=Symbol.for(`https://github.com/dineug/r-html#beforeFirstUpdate`),Ta=Symbol.for(`https://github.com/dineug/r-html#beforeUpdate`),Ea=Symbol.for(`https://github.com/dineug/r-html#firstUpdated`),Da=Symbol.for(`https://github.com/dineug/r-html#updated`),Oa=[xa,Sa,Ca,wa,Ta,Ea,Da],ka=Symbol.for(`https://github.com/dineug/r-html#Directive`),Aa=Symbol.for(`https://github.com/dineug/r-html#TemplateLiterals`),ja=null;function Ma(e){ja=e}var Na=e=>t=>{ja&&(ja[e]??(ja[e]=[])).push(t)},Pa=Na(xa),Fa=Na(Sa),Ia=Na(Ca);function La(e,t){let n=Reflect.get(e,t,e);ua(n)&&n.forEach(Qi)}function Ra(e){Oa.forEach(t=>Reflect.set(e,t,null,e))}function za(e,t){if(t.has(e))throw TypeError(`Cannot initialize the same private elements twice on an object`)}function E(e,t,n){za(e,t),t.set(e,n)}function Ba(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 D(e,t,n){return e.set(Ba(e,t),n),n}function O(e,t){return e.get(Ba(e,t))}var Va=pa(),Ha=e=>e,Ua=e=>{var t=/* @__PURE__ */ new WeakMap,n=/* @__PURE__ */ new WeakMap;return class extends e{constructor(e,r,i,a){super(e,r,i,a),E(this,t,[]),E(this,n,null),this.hmr()}commit(e){let n=Ha(e);super.commit(n),D(t,this,e)}hmr(){D(n,this,Va.subscribe(e=>O(t,this).includes(e)&&this.commit(O(t,this))))}destroy(){O(n,this)?.call(this),super.destroy?.()}}},Wa=/* @__PURE__ */ new WeakMap,Ga=/* @__PURE__ */ new WeakMap,Ka=/* @__PURE__ */ new WeakMap,qa=/* @__PURE__ */ new WeakMap,Ja=/* @__PURE__ */ new WeakMap,Ya={shallow:!1},Xa=null;function Za(e){return Xa=e,Qi(e),Xa=null,()=>Qa(e)}function Qa(e){po(e);let t=Ja.get(e);if(t)for(let[n]of t.entries())Ga.get(n)?.delete(e);t&&Ja.delete(e)}function $a(e){if(!Xa)return;let t=Ga.get(e);t?t.has(Xa)||t.add(Xa):Ga.set(e,/* @__PURE__ */ new Set([Xa]))}function eo(e,t){if(!Xa)return;let n=Ja.get(Xa);if(n){let r=n.get(e);r?r.has(t)||r.add(t):n.set(e,/* @__PURE__ */ new Set([t]))}else Ja.set(Xa,/* @__PURE__ */ new Map([[e,/* @__PURE__ */ new Set([t])]]))}var to=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||(ua(e)||da(e))&&Object.isFrozen(e);function no(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 to(o)?o:($a(e),eo(e,i),!n&&(da(o)||ua(o))&&!Ka.has(o)?Wa.has(o)?Wa.get(o):no(o,t):o)},set(e,t,n,r){let i=Reflect.get(e,t,r),a=Reflect.set(e,t,n,r);return(!ua(e)&&i!==n||t===`length`)&&(mo(e,t),_o(e,t)),a},deleteProperty(e,t){let n=Reflect.deleteProperty(e,t);return mo(e,t),_o(e,t),n}});return Wa.set(e,r),Ka.set(r,e),r}function ro(e){return(qa.get(e)??qa.set(e,pa()).get(e)).asReadonly()}var io=[],ao=/* @__PURE__ */ new Map,oo=/* @__PURE__ */ new Map,so=!0;function co(e,t,n){let r=Ja.get(n);if(!r)return!1;let i=r.get(e);return i?i.has(t):!1}var lo=e=>t=>{let n=ao.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()}};io.push(n),ao.set(t,n)}return so&&=($i(go),!1),i},uo=lo(`observer`),fo=lo(`nextTick`);function po(e){let t=ao.get(e);if(!t)return;let n=io.indexOf(t);n===-1||io.splice(n,1),ao.delete(e),t.resolve()}var mo=(e,t)=>Ga.get(e)?.forEach(n=>co(e,t,n)&&uo(n));function ho(){let e=io.shift();if(e){if(ao.delete(e.fn),e.type===`observer`)Qa(e.fn),Za(e.fn),e.resolve();else if(e.type===`nextTick`){let t=Qi(e.fn);t instanceof Promise?t.finally(e.resolve):e.resolve()}}}function go(){for(;io.length;)ho();so=!0}function _o(e,t){let n=Wa.get(e);if(!n)return;let r=qa.get(n);if(!r)return;let i=oo.get(n);i?i.has(t)||i.add(t):(oo.set(n,/* @__PURE__ */ new Set([t])),fo(()=>{let e=oo.get(n);e&&(oo.delete(n),e.forEach(e=>r.next(e)))}))}function vo(e,t){let n=no({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(),Pa(a),Ia(()=>{i().dispatchEvent(Xi({context:t,observer:r}))}),n}function yo(e,t,n){let r=e instanceof HTMLElement?e:e.parentElement??e.host,i=pa(),a=/* @__PURE__ */ 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(Xi.type,s),{set:e=>{i.next(e)},destroy:()=>{r.removeEventListener(Yi.type,o),r.removeEventListener(Xi.type,s);for(let e of a.values())e();a.clear()}}}var bo=/* @__PURE__ */ function(e){return e.node=`node`,e.attribute=`attribute`,e}({});function xo(e,t){return Reflect.set(t,ka,e),t}function So(e,t,n){let r={startNode:e,endNode:t};return Reflect.defineProperty(r,"helper",{value:n}),r}function Co(e,t){return(...n)=>xo(bo.node,[e(...n),t])}var wo=/* @__PURE__ */ function(e){return e.html=`html`,e.svg=`svg`,e.css=`css`,e}({}),To=new Set(Object.values(wo)),Eo=Symbol.for(`https://github.com/dineug/r-html#CSSSource`),Do=/* @__PURE__ */ new WeakMap,Oo=/* @__PURE__ */ new WeakMap,ko=/* @__PURE__ */ new Set([wo.svg]),Ao=e=>`${ha}_${e}_`,jo=e=>ua(e)&&ua(e.raw),Mo=e=>da(e)&&jo(e.strings)&&ua(e.values)&&To.has(Reflect.get(e,Aa)??``),No=e=>Mo(e)&&e[Aa]===wo.css,Po=(e,t=!0,n=!1)=>r=>t?!!r?.trimStart().startsWith(e):n?!!r?.trimEnd().endsWith(e):new RegExp(e).test(r??``),Fo=Po(ga),Io=Po(`.`),Lo=Po(`?`),Ro=Po(`@`),zo=Po(`on`),Bo=Po(ha,!1),Vo=e=>Bo(e)&&va.test(e?.trim()??``),Ho=({type:e,value:t})=>e===ba.spread||e===ba.directive||Bo(t),Uo=e=>ko.has(e),Wo=e=>Vo(e)?ba.directive:Fo(e)?ba.spread:Io(e)?ba.property:Ro(e)||zo(e)?ba.event:Lo(e)?ba.boolean:ba.attribute,Go=e=>Fo(e)?e.substring(3):Vo(e)?e:Io(e)||Ro(e)||Lo(e)?e.substring(1):zo(e)?e.substring(2):e;function Ko(e){let t=[],n=_a.exec(e);for(;n;){let r=Number(n[1]);t.push([n[0],Number.isInteger(r)?r:-1]),n=_a.exec(e)}return t}var qo=Symbol(`https://github.com/dineug/r-html.git#hostBridge`);function Jo(e,t){if(t instanceof ShadowRoot){let n=t.host;Reflect.set(e,qo,n)}return()=>{Reflect.deleteProperty(e,qo)}}function Yo(e){return Reflect.get(e,qo)??null}function Xo(e){return fa(e)&&!la(e)&&!ca(e)||No(e)?String(e):``}var Zo={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?Xo(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=Zi(e,t),r=Jo(e,t);return()=>{n(),r()}}};function Qo(e){"@babel/helpers - typeof";return Qo=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},Qo(e)}function $o(e,t){if(Qo(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(Qo(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function es(e){var t=$o(e,`string`);return Qo(t)==`symbol`?t:t+``}function ts(e,t,n){return(t=es(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var ns,rs=/* @__PURE__ */ function(e){return e.element=`element`,e.text=`text`,e.comment=`comment`,e}({});ns=Symbol.iterator;var is=class{constructor(e={}){ts(this,`type`,`comment`),ts(this,`value`,``),ts(this,`attrs`,void 0),ts(this,`parent`,null),ts(this,`children`,void 0),Object.assign(this,e)}*iterParent(){yield this,this.parent&&(yield*this.parent.iterParent())}*[ns](){if(yield this,this.children)for(let e of this.children)yield*e}},as=e=>!!e&&e!==`false`;function os(e){let t=({type:t,value:n},r=!1)=>t===rs.element?e.createElement(n,r):t===rs.text?e.createText(n):e.createMarker(n),n=(t,{type:n,name:r,value:i})=>{switch(n){case ba.attribute:e.setAttribute(t,r,i??``,!1);break;case ba.boolean:as(i)&&e.setAttribute(t,r,``,!1);break;case ba.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 ss=os(Zo);ss.setAttr,ss.insertBeforeNode,ss.insertAfterNode,ss.removeNode,ss.rangeNodes,ss.removeRange;var cs=ss.isHostNode;function ls(e,{type:t,name:n,value:r}){switch(t){case ba.attribute:case ba.property:Reflect.set(e,n,r);break;case ba.boolean:Reflect.set(e,n,as(r))}}var us=(e,t)=>e.length===t.length&&e.every((e,n)=>e===t[n]);function ds(e,t){if(e===t)return!0;let n=da(e)?e:{},r=da(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 fs=e=>ua(e)&&ia(e[0])&&(ca(e[1])||ra(e[1])||da(e[1])),ps=()=>{},ms=e=>e instanceof HTMLElement,hs=e=>e instanceof SVGElement,gs=e=>e instanceof Promise,_s=/* @__PURE__ */ new WeakMap,vs=/* @__PURE__ */ new WeakMap,ys=/* @__PURE__ */ new WeakMap,bs=/* @__PURE__ */ new WeakMap,xs=/* @__PURE__ */ new WeakMap,Ss=/* @__PURE__ */ new WeakMap,Cs=/* @__PURE__ */ new WeakMap,ws=/* @__PURE__ */ new WeakMap,Ts=/* @__PURE__ */ new WeakMap,Es=class{constructor(e,{name:t,value:n},r=ss){E(this,_s,void 0),E(this,vs,void 0),E(this,ys,void 0),E(this,bs,void 0),E(this,xs,[]),E(this,Ss,[]),E(this,Cs,void 0),E(this,ws,null),E(this,Ts,null),D(_s,this,r),D(vs,this,e),D(ys,this,t),D(bs,this,n),D(xs,this,Ko(n??``)),D(Cs,this,O(xs,this).length===1&&(n??``).trim()===O(xs,this)[0][0])}commit(e){let t=O(xs,this).map(([t,n])=>e[n]);if(us(O(Ss,this),t))return;let n=t[t.length-1];if(O(ys,this)===`class`)this.classCommit(n);else if(O(ys,this)===`style`)this.styleCommit(n);else if(O(Cs,this))O(_s,this).setAttribute(O(vs,this),O(ys,this),t[0],!0);else{let e=t.reduce((e,t,n)=>e.replace(new RegExp(O(xs,this)[n][0]),Xo(t)),O(bs,this)??``);O(_s,this).setAttribute(O(vs,this),O(ys,this),e.trim(),!1)}D(Ss,this,t)}classCommit(e){let t=O(vs,this);if(!ms(t)&&!hs(t))return;let n=O(Ss,this)[O(Ss,this).length-1];if(n===e||ua(n)&&ua(e)&&us(n,e)||da(n)&&da(e)&&ds(n,e))return;let r=[...t.classList],i=Os(e);if(la(O(Ts,this)))D(Ts,this,r);else{let e=O(Ts,this),n=r.filter(t=>!e.includes(t)&&!i.includes(t));t.classList.remove(...n)}t.classList.add(...i)}styleCommit(e){let t=O(vs,this);if(!ms(t)&&!hs(t))return;let n=O(Ss,this)[O(Ss,this).length-1];if(ds(n,e))return;let r=Ds(t),i=da(e)?e:{};if(la(O(ws,this)))D(ws,this,r);else{let e=O(ws,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 Ds(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 Os(e,t=[]){if(!e)return t;if(No(e))return t.push(Xo(e)),t;if(fa(e))t.push(Xo(e));else if(ta(e)){if(ua(e))for(let n=0;n<e.length;n++)e[n]&&Os(e[n],t);else for(let n in e)e[n]&&t.push(Xo(n))}return t}var ks=/* @__PURE__ */ new WeakMap,As=/* @__PURE__ */ new WeakMap,js=/* @__PURE__ */ new WeakMap,Ms=/* @__PURE__ */ new WeakMap,Ns=/* @__PURE__ */ new WeakMap,Ps=class{constructor(e,{name:t,value:n},r=ss){E(this,ks,void 0),E(this,As,void 0),E(this,js,void 0),E(this,Ms,[]),E(this,Ns,[]),D(ks,this,r),D(As,this,e),D(js,this,t),D(Ms,this,Ko(n??``))}commit(e){let t=O(Ms,this).map(([t,n])=>e[n]);if(us(O(Ns,this),t))return;let n=t[t.length-1];as(n)?O(ks,this).setAttribute(O(As,this),O(js,this),``,!1):O(ks,this).removeAttribute(O(As,this),O(js,this)),D(Ns,this,t)}},Fs=e=>ua(e)&&Reflect.get(e,ka)===bo.attribute,Is=/* @__PURE__ */ new WeakMap,Ls=/* @__PURE__ */ new WeakMap,Rs=/* @__PURE__ */ new WeakMap,zs=/* @__PURE__ */ new WeakMap,Bs=/* @__PURE__ */ new WeakMap,Vs=class{constructor(e,{name:t}){E(this,Is,void 0),E(this,Ls,void 0),E(this,Rs,null),E(this,zs,null),E(this,Bs,null),D(Is,this,e),D(Ls,this,Ko(t)[0])}commit(e){let[,t]=O(Ls,this),n=e[t];if(!Fs(n))return;let[r,i]=n;if(O(Rs,this)!==i)O(Bs,this)?.call(this),D(zs,this,i({node:O(Is,this)})),D(Rs,this,i),D(Bs,this,O(zs,this)?.call(this,r));else{let e=O(zs,this)?.call(this,r);O(Bs,this)!==e&&(O(Bs,this)?.call(this),D(Bs,this,e))}}destroy(){O(Bs,this)?.call(this)}},Hs=/* @__PURE__ */ new WeakMap,Us=/* @__PURE__ */ new WeakMap,Ws=/* @__PURE__ */ new WeakMap,Gs=/* @__PURE__ */ new WeakMap,Ks=/* @__PURE__ */ new WeakMap,qs=class{constructor(e,{name:t,value:n},r=ss){E(this,Hs,void 0),E(this,Us,void 0),E(this,Ws,void 0),E(this,Gs,[]),E(this,Ks,[]),D(Hs,this,r),D(Us,this,e),D(Ws,this,t),D(Gs,this,Ko(n??``))}commit(e){let t=O(Gs,this).map(([t,n])=>e[n]).filter(e=>ia(e)||fs(e));us(O(Ks,this),t)||(this.clear(),t.forEach(e=>{let[t,n]=Js(e);O(Hs,this).addEventListener(O(Us,this),O(Ws,this),t,n)}),D(Ks,this,t))}clear(){O(Ks,this).forEach(e=>{let[t,n]=Js(e);O(Hs,this).removeEventListener(O(Us,this),O(Ws,this),t,n)})}destroy(){this.clear()}};function Js(e){return ia(e)?[e,void 0]:e}var Ys=/* @__PURE__ */ new WeakMap,Xs=/* @__PURE__ */ new WeakMap,Zs=/* @__PURE__ */ new WeakMap,Qs=/* @__PURE__ */ new WeakMap,$s=class{constructor(e,{name:t,value:n}){E(this,Ys,void 0),E(this,Xs,void 0),E(this,Zs,[]),E(this,Qs,[]),D(Ys,this,e),D(Xs,this,t),D(Zs,this,Ko(n??``))}commit(e){let t=O(Zs,this).map(([t,n])=>e[n]);if(us(O(Qs,this),t))return;let n=t[t.length-1];Reflect.set(O(Ys,this),O(Xs,this),n,O(Ys,this)),D(Qs,this,t)}},ec=/* @__PURE__ */ new WeakMap,tc=/* @__PURE__ */ new WeakMap,nc=/* @__PURE__ */ new WeakMap,rc=class{constructor(e,{name:t}){E(this,ec,void 0),E(this,tc,void 0),E(this,nc,null),D(ec,this,e),D(tc,this,Ko(t)[0])}commit(e){let[,t]=O(tc,this),n=e[t];da(n)&&!ds(O(nc,this),n)&&(Object.keys(n).forEach(e=>Reflect.set(O(ec,this),e,n[e],O(ec,this))),D(nc,this,n))}},ic=(e,t,n=ss)=>t.type===ba.attribute?new Es(e,t,n):t.type===ba.boolean?new Ps(e,t,n):t.type===ba.event?new qs(e,t,n):t.type===ba.property?new $s(e,t):t.type===ba.spread?new rc(e,t):new Vs(e,t),ac=/* @__PURE__ */ new WeakMap,oc=/* @__PURE__ */ new WeakMap,sc=/* @__PURE__ */ new WeakMap,cc=/* @__PURE__ */ new WeakMap,lc=/* @__PURE__ */ new WeakMap,uc=class{constructor(e,{value:t},n=ss){E(this,ac,void 0),E(this,oc,void 0),E(this,sc,void 0),E(this,cc,[]),E(this,lc,[]),D(ac,this,n),D(oc,this,e),D(sc,this,t),oa(t)&&D(cc,this,Ko(t))}commit(e){let t=O(cc,this).map(([t,n])=>e[n]);if(us(O(lc,this),t))return;D(lc,this,t);let n=O(lc,this).reduce((e,t,n)=>e.replace(new RegExp(O(cc,this)[n][0]),fa(t)&&!la(t)&&!ca(t)?String(t):``),O(sc,this)??``);O(ac,this).setText(O(oc,this),n)}},dc=/* @__PURE__ */ new WeakMap,fc=/* @__PURE__ */ new WeakMap,pc=/* @__PURE__ */ new WeakMap,mc=/* @__PURE__ */ new WeakMap,hc=class{constructor(e,{name:t,value:n}){E(this,dc,void 0),E(this,fc,void 0),E(this,pc,[]),E(this,mc,[]),D(dc,this,e),D(fc,this,t),D(pc,this,Ko(n??``))}commit(e){let t=O(pc,this).map(([t,n])=>e[n]);if(us(O(mc,this),t))return;let n=t[t.length-1];Reflect.set(O(dc,this),O(fc,this),n),D(mc,this,t)}},gc=/* @__PURE__ */ function(e){return e.create=`create`,e.move=`move`,e}({});function _c(e){let t=[],n=/* @__PURE__ */ new Map;return e.forEach(({type:e,value:r},i)=>{let a={type:e,key:e===rl.templateLiterals?r.strings:r};t.push(a),n.set(a,i)}),{items:t,itemToIndex:n}}function vc(e){let t=[],n=/* @__PURE__ */ new Map;return e.forEach((e,r)=>{let i=pl(e),a={type:i,key:i===rl.templateLiterals?e.strings:e};t.push(a),n.set(a,r)}),{items:t,itemToIndex:n}}function yc(e,t,n){let r=!!n?.strict,i={update:[],delete:[]},a=/* @__PURE__ */ 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 bc=/* @__PURE__ */ new WeakMap,xc=/* @__PURE__ */ new WeakMap,Sc=/* @__PURE__ */ new WeakMap,Cc=/* @__PURE__ */ new WeakMap,wc=class{constructor(e,t,n=ss){E(this,bc,void 0),E(this,xc,void 0),E(this,Sc,void 0),E(this,Cc,[]),D(xc,this,e),D(Sc,this,t),D(bc,this,n)}commit(e){let t=yc(_c(O(Cc,this)),vc(e)),n={length:e.length};t.update.forEach(({action:t,from:r,to:i})=>{switch(t){case gc.create:let t=O(bc,this).createMarker(``);i===0?O(bc,this).insertAfterNode(t,O(xc,this)):O(Cc,this).length?O(bc,this).insertAfterNode(t,n[i-1]?n[i-1].endNode:O(Cc,this)[i-1].endNode):O(bc,this).insertBeforeNode(t,O(Sc,this)),n[i]=new Dc(t,e[i],O(bc,this));break;case gc.move:if(n[i]=O(Cc,this)[r],i===r)return;i===0?O(Cc,this)[r].insert(`after`,O(xc,this)):O(Cc,this)[r].insert(`after`,n[i-1]?n[i-1].endNode:O(Cc,this)[i-1].endNode)}}),t.delete.forEach(({from:e})=>O(Cc,this)[e].destroy()),D(Cc,this,Array.from(n)),O(Cc,this).forEach((t,n)=>t.commit(e[n]))}destroy(){O(Cc,this).forEach(e=>e.destroy())}},Tc=/* @__PURE__ */ new WeakMap,Ec=/* @__PURE__ */ new WeakMap,Dc=class{constructor(e,t,n=ss){E(this,Tc,void 0),E(this,Ec,void 0),ts(this,`startNode`,void 0),ts(this,`endNode`,void 0),ts(this,`type`,void 0),ts(this,`value`,void 0),D(Ec,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=pl(t),D(Tc,this,_l(this.type,this.startNode,this.endNode,n))}commit(e){O(Tc,this).commit(e),this.value=e}insert(e,t){let n=[this.startNode,...O(Ec,this).rangeNodes(this.startNode,this.endNode),this.endNode];e===`before`?n.forEach(e=>O(Ec,this).insertBeforeNode(e,t)):n.reverse().forEach(e=>O(Ec,this).insertAfterNode(e,t))}destroy(){O(Tc,this).destroy?.(),O(Ec,this).removeRange(this.startNode,this.endNode),O(Ec,this).removeNode(this.startNode),O(Ec,this).removeNode(this.endNode)}},Oc=/* @__PURE__ */ new WeakMap,kc=/* @__PURE__ */ new WeakMap,Ac=/* @__PURE__ */ new WeakMap,jc=/* @__PURE__ */ new WeakMap,Mc=/* @__PURE__ */ new WeakMap,Nc=/* @__PURE__ */ new WeakMap,Pc=class{constructor(e,t,n=ss){E(this,Oc,void 0),E(this,kc,void 0),E(this,Ac,void 0),E(this,jc,null),E(this,Mc,null),E(this,Nc,void 0),D(kc,this,e),D(Ac,this,t),D(Oc,this,n)}commit(e){if(!il(e))return;let[t,n]=e;if(O(jc,this)!==n)this.clear(),D(Mc,this,n(So(O(kc,this),O(Ac,this),O(Oc,this)))),D(jc,this,n),D(Nc,this,O(Mc,this)?.call(this,t));else{let e=O(Mc,this)?.call(this,t);O(Nc,this)!==e&&(this.clear(),D(Nc,this,e))}}clear(){O(Nc,this)?.call(this),O(Oc,this).removeRange(O(kc,this),O(Ac,this))}destroy(){this.clear()}},Fc=class{constructor(e,t){}commit(e){}},Ic=/* @__PURE__ */ new WeakMap,Lc=/* @__PURE__ */ new WeakMap,Rc=/* @__PURE__ */ new WeakMap,zc=class{constructor(e,t,n=ss){E(this,Ic,void 0),E(this,Lc,void 0),E(this,Rc,null),D(Lc,this,t),D(Ic,this,n)}commit(e){O(Rc,this)!==e&&(O(Rc,this)&&O(Ic,this).removeNode(O(Rc,this)),O(Ic,this).insertBeforeNode(e,O(Lc,this)),D(Rc,this,e))}},Bc=/* @__PURE__ */ new WeakMap,Vc=/* @__PURE__ */ new WeakMap,Hc=/* @__PURE__ */ new WeakMap,Uc=/* @__PURE__ */ new WeakMap,Wc=/* @__PURE__ */ new WeakMap,Gc=/* @__PURE__ */ new WeakMap,Kc=class{constructor(e,t,n=ss){E(this,Bc,void 0),E(this,Vc,void 0),E(this,Hc,void 0),E(this,Uc,null),E(this,Wc,null),E(this,Gc,ps),D(Vc,this,e),D(Hc,this,t),D(Bc,this,n)}commit(e){O(Uc,this)!==e&&(this.clear(),gs(e)&&this.promiseCommit(e))}promiseCommit(e){let[t,n]=qc(e);D(Gc,this,n),t.then(e=>{let t=pl(e);D(Wc,this,_l(t,O(Vc,this),O(Hc,this),O(Bc,this))),O(Wc,this)?.commit(e)}),D(Uc,this,e)}partClear(){O(Wc,this)?.destroy?.(),O(Bc,this).removeRange(O(Vc,this),O(Hc,this))}clear(){O(Gc,this).call(this),this.partClear(),D(Gc,this,ps)}destroy(){this.clear()}};function qc(e){let t=ps,n=new Promise((e,n)=>t=n);return[Promise.race([n,e]),()=>t()]}var Jc=/* @__PURE__ */ new WeakMap,Yc=/* @__PURE__ */ new WeakMap,Xc=/* @__PURE__ */ new WeakMap,Zc=class{constructor(e,t,n=ss){E(this,Jc,void 0),E(this,Yc,void 0),E(this,Xc,null),D(Jc,this,n),D(Yc,this,n.createText(``)),n.insertAfterNode(O(Yc,this),e)}commit(e){O(Xc,this)!==e&&(O(Jc,this).setText(O(Yc,this),la(e)||ca(e)?``:String(e)),D(Xc,this,e))}},Qc=/* @__PURE__ */ new WeakMap,$c=/* @__PURE__ */ new WeakMap,el=/* @__PURE__ */ new WeakMap,tl=/* @__PURE__ */ new WeakMap,nl=class{constructor(e,t,n=ss){E(this,Qc,void 0),E(this,$c,void 0),E(this,el,void 0),E(this,tl,null),D($c,this,e),D(el,this,t),D(Qc,this,n)}commit(e){let{strings:t,values:n}=e;O(tl,this)&&!O(tl,this).equalStrings(t)&&(O(tl,this).destroy(),D(tl,this,null)),O(tl,this)||(D(tl,this,new Ql(e,O($c,this),O(el,this),O(Qc,this))),O(tl,this).insert(`before`,O(el,this))),O(tl,this).commit(n)}destroy(){O(tl,this)?.destroy()}},rl=/* @__PURE__ */ 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}({}),il=e=>ua(e)&&Reflect.get(e,ka)===bo.node,al=e=>t=>t instanceof e,ol=al(Zc),sl=al(nl),cl=al(wc),ll=al(zc),ul=al(Kc),dl=al(Fc),fl=al(Pc),pl=e=>fa(e)?`primitive`:Mo(e)?`templateLiterals`:il(e)?`directive`:ua(e)?`array`:cs(e)?`node`:ia(e)?`function`:`object`,ml={primitive:ol,templateLiterals:sl,array:cl,node:ll,function:dl,object:ul,directive:fl},hl={primitive:Zc,templateLiterals:nl,array:wc,node:zc,function:Fc,object:Kc,directive:Pc},gl=(e,t)=>ml[e](t),_l=(e,t,n,r=ss)=>new hl[e](t,n,r),vl=/* @__PURE__ */ new WeakMap,yl=/* @__PURE__ */ new WeakMap,bl=/* @__PURE__ */ new WeakMap,xl=/* @__PURE__ */ new WeakMap,Sl=/* @__PURE__ */ new WeakMap,Cl=/* @__PURE__ */ new WeakMap,wl=/* @__PURE__ */ new WeakMap,Tl=/* @__PURE__ */ new WeakMap,El=/* @__PURE__ */ new WeakMap,Dl=/* @__PURE__ */ new WeakMap,Ol=/* @__PURE__ */ new WeakMap,kl=/* @__PURE__ */ new WeakMap,Al=class{constructor(e,t,n,r,i=ss){E(this,vl,void 0),E(this,yl,void 0),E(this,bl,void 0),E(this,xl,void 0),E(this,Sl,void 0),E(this,Cl,[]),E(this,wl,[]),E(this,Tl,null),E(this,El,no({},{shallow:!0})),E(this,Dl,null),E(this,Ol,null),E(this,kl,void 0),D(vl,this,i),D(kl,this,i.createEventBus()),D(yl,this,e),D(bl,this,t),D(Sl,this,n),D(xl,this,Ko(n.value)[0]),n.staticAttrs&&n.staticAttrs.forEach(e=>ls(O(El,this),e)),n.attrs?.forEach(e=>{e.type===ba.directive?O(Cl,this).push(e):e.type===ba.spread?r.push(new rc(O(El,this),e)):e.type===ba.event?r.push(new qs(O(kl,this),e,i)):r.push(new hc(O(El,this),e))})}createContext(){return O(vl,this).createComponentContext(O(yl,this),O(kl,this))}commit(e){let[,t]=O(xl,this),n=e[t];if(!ia(n)||O(Dl,this)===n){O(wl,this).forEach(t=>t.commit(e));return}let r=this.createContext();this.clear(),Ma(this);let i=n.call(r,O(El,this),r);Ma(null),O(Cl,this).length&&O(wl,this).push(...O(Cl,this).map(e=>new Vs(r,e))),La(this,xa);let a=!1;D(Ol,this,Za(()=>{let e=i(),t=pl(e);gl(t,O(Tl,this))||(this.partClear(),D(Tl,this,_l(t,O(yl,this),O(bl,this),O(vl,this)))),La(this,a?Ta:wa),O(Tl,this)?.commit(e),a?La(this,Da):(La(this,Ea),a=!0)})),O(wl,this).forEach(t=>t.commit(e)),La(this,Sa),D(Dl,this,n)}partClear(){O(Tl,this)?.destroy?.(),O(vl,this).removeRange(O(yl,this),O(bl,this))}clear(){O(vl,this).removeRange(O(yl,this),O(bl,this)),La(this,Ca),O(wl,this).forEach(e=>e.destroy?.()),O(Ol,this)?.call(this),D(wl,this,[]),D(Ol,this,null),Ra(this)}destroy(){this.clear(),this.partClear()}},jl=/* @__PURE__ */ new WeakMap,Ml=/* @__PURE__ */ new WeakMap,Nl=/* @__PURE__ */ new WeakMap,Pl=/* @__PURE__ */ new WeakMap,Fl=Ua(class{constructor(e,t,n,r=ss){E(this,jl,void 0),E(this,Ml,void 0),E(this,Nl,void 0),E(this,Pl,void 0),D(jl,this,r),D(Ml,this,r.createMarker(``)),D(Nl,this,r.createMarker(``)),D(Pl,this,new Al(O(Ml,this),O(Nl,this),t,n,r)),r.insertBeforeNode(O(Ml,this),e),r.insertAfterNode(O(Nl,this),e),r.removeNode(e)}commit(e){O(Pl,this).commit(e)}destroy(){O(Pl,this).destroy?.(),O(jl,this).removeNode(O(Ml,this)),O(jl,this).removeNode(O(Nl,this))}}),Il=/* @__PURE__ */ new WeakMap,Ll=/* @__PURE__ */ new WeakMap,Rl=/* @__PURE__ */ new WeakMap,zl=/* @__PURE__ */ new WeakMap,Bl=/* @__PURE__ */ new WeakMap,Vl=/* @__PURE__ */ new WeakMap,Hl=class{constructor(e,{value:t},n=ss){E(this,Il,void 0),E(this,Ll,void 0),E(this,Rl,void 0),E(this,zl,void 0),E(this,Bl,null),E(this,Vl,null),D(Il,this,n),D(Ll,this,n.createMarker(``)),D(Rl,this,n.createMarker(``)),D(zl,this,Ko(t)[0]),n.insertBeforeNode(O(Ll,this),e),n.insertAfterNode(O(Rl,this),e),n.removeNode(e)}commit(e){let[,t]=O(zl,this),n=e[t];if(O(Bl,this)===n)return;let r=pl(n);gl(r,O(Vl,this))||(la(O(Vl,this))||this.clear(),D(Vl,this,_l(r,O(Ll,this),O(Rl,this),O(Il,this)))),O(Vl,this)?.commit(n),D(Bl,this,n)}clear(){O(Vl,this)?.destroy?.(),O(Il,this).removeRange(O(Ll,this),O(Rl,this))}destroy(){this.clear(),O(Il,this).removeNode(O(Ll,this)),O(Il,this).removeNode(O(Rl,this))}};function Ul(e=[],t,n=!1,r=[],i=ss){return e.forEach(e=>{if(e.isComponent){let n=i.createMarker(``);i.appendChild(t,n),r.push(new Fl(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 uc(a,e,i)),i.isText(a)&&e.isMarkerOnly&&r.push(new Hl(a,e,i)),i.isElement(a)&&(e.staticAttrs&&e.staticAttrs.forEach(e=>i.setAttr(a,e)),e.attrs&&r.push(...e.attrs.map(e=>ic(a,e,i))),e.children&&Ul(e.children,a,e.isSvg||n,r,i))}),r}function Wl(e,t=!1,n=ss){let r=n.createFragment();return[r,Ul(e.children,r,t,[],n)]}var Gl=/* @__PURE__ */ new WeakMap,Kl=/* @__PURE__ */ new WeakMap,ql=/* @__PURE__ */ new WeakMap,Jl=/* @__PURE__ */ new WeakMap,Yl=/* @__PURE__ */ new WeakMap,Xl=/* @__PURE__ */ new WeakMap,Zl=/* @__PURE__ */ new WeakMap,Ql=class{constructor(e,t,n,r=ss){if(E(this,Gl,void 0),E(this,Kl,void 0),E(this,ql,void 0),E(this,Jl,null),E(this,Yl,[]),E(this,Xl,void 0),E(this,Zl,!1),D(Gl,this,r),D(Kl,this,r.createMarker(``)),D(ql,this,r.createMarker(``)),D(Xl,this,e.strings),e[Aa]!==wo.html&&e[Aa]!==wo.svg)return;let[i,a]=Wl(e.template.node,Uo(e[Aa]),r);D(Jl,this,i),D(Yl,this,a),t&&n?(D(Kl,this,t),D(ql,this,n),D(Zl,this,!0)):(r.prependChild(i,O(Kl,this)),r.appendChild(i,O(ql,this)))}equalStrings(e){return O(Xl,this)===e}commit(e){O(Yl,this).forEach(t=>t.commit(e))}insert(e,t){O(Jl,this)&&(e===`before`?O(Gl,this).insertBeforeNode(O(Jl,this),t):e===`after`?O(Gl,this).insertAfterNode(O(Jl,this),t):O(Gl,this).appendChild(t,O(Jl,this)),D(Jl,this,null))}destroy(){O(Yl,this).forEach(e=>e.destroy?.()),O(Gl,this).removeRange(O(Kl,this),O(ql,this)),O(Zl,this)||(O(Gl,this).removeNode(O(Kl,this)),O(Gl,this).removeNode(O(ql,this)))}},$l=/* @__PURE__ */ function(e){return e.string=`string`,e.whiteSpace=`whiteSpace`,e.lt=`lt`,e.gt=`gt`,e.slash=`slash`,e.equal=`equal`,e}({}),eu={doubleQuote:`"`,singleQuote:`'`,whiteSpace:/\s/,string:/\S/,breakString:/<|>|=/,lt:`<`,gt:`>`,slash:`/`,equal:`=`,hyphen:`-`,exclamationPoint:`!`},tu=e=>t=>e===t,nu=e=>t=>e.test(t),ru={doubleQuote:tu(eu.doubleQuote),singleQuote:tu(eu.singleQuote),whiteSpace:nu(eu.whiteSpace),string:nu(eu.string),breakString:nu(eu.breakString),lt:tu(eu.lt),gt:tu(eu.gt),slash:tu(eu.slash),equal:tu(eu.equal),hyphen:tu(eu.hyphen),exclamationPoint:tu(eu.exclamationPoint)},iu=e=>t=>ru.lt(e[t])&&ru.exclamationPoint(e[t+1])&&ru.hyphen(e[t+2])&&ru.hyphen(e[t+3]);function au(e){let t=[],n=0,r=()=>n<e.length,i=iu(e),a=(o=`text`)=>{for(;r();){let s=e[n];if(ru.whiteSpace(s)){let i=``;for(;r()&&ru.whiteSpace(s);)i+=s,s=e[++n];o!==`element`&&t.push({type:`whiteSpace`,value:i});continue}if(o===`element`){if(ru.lt(s)){t.push({type:`lt`,value:s}),n++;continue}if(ru.gt(s)){t.push({type:`gt`,value:s}),n++;break}if(ru.slash(s)){t.push({type:`slash`,value:s}),n++;continue}if(ru.equal(s)){t.push({type:`equal`,value:s}),n++;continue}if(ru.doubleQuote(s)){let i=``;for(s=e[++n];r()&&!ru.doubleQuote(s);)i+=s,s=e[++n];t.push({type:`string`,value:i}),n++;continue}if(ru.singleQuote(s)){let i=``;for(s=e[++n];r()&&!ru.singleQuote(s);)i+=s,s=e[++n];t.push({type:`string`,value:i}),n++;continue}}else if(o===`comment`){if(ru.lt(s)){t.push({type:`lt`,value:s}),n++;continue}if(ru.gt(s)){t.push({type:`gt`,value:s}),n++;break}}else if(ru.lt(s)){a(i(n)?`comment`:`element`);continue}if(ru.string(s)){let i=``;for(;r()&&ru.string(s)&&!ru.breakString(s);)i+=s,s=e[++n];t.push({type:`string`,value:i});continue}n++}};return a(),t}var ou=/^(area|base|br|col|embed|hr|img|input|keygen|link|meta|param|source|track|wbr)$/i,su=e=>t=>n=>r=>n[r]?n[r][e]===t:!1,cu=su(`type`),lu=su(`value`),uu=cu($l.lt),du=cu($l.gt),fu=cu($l.slash),pu=cu($l.equal),mu=cu($l.string),hu=cu($l.whiteSpace),gu=lu(`!--`),_u=lu(`--`),vu=e=>{let t=uu(e),n=mu(e);return e=>t(e)&&n(e+1)},yu=e=>{let t=uu(e),n=fu(e),r=mu(e),i=du(e);return e=>t(e)&&n(e+1)&&r(e+2)&&i(e+3)},bu=e=>{let t=uu(e),n=fu(e),r=du(e);return e=>t(e)&&n(e+1)&&n(e+2)&&r(e+3)},xu=e=>{let t=fu(e),n=du(e);return e=>t(e)&&n(e+1)},Su=e=>ou.test(e),Cu=e=>{let t=uu(e),n=mu(e),r=gu(e);return e=>t(e)&&n(e+1)&&r(e+1)},wu=e=>{let t=mu(e),n=_u(e),r=du(e);return e=>t(e)&&n(e)&&r(e+1)},Tu=e=>t=>n=>{n&&(t[e]?t[e]?.push(n):t[e]=[n])},Eu=Tu(`attrs`),Du=Tu(`children`);function Ou(e){let t=new is({type:rs.element,value:`template`,children:[]}),n=0,r=()=>n<e.length,i=vu(e),a=yu(e),o=bu(e),s=xu(e),c=Cu(e),l=wu(e),u=uu(e),d=du(e),f=pu(e),p=hu(e),m=mu(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 is({parent:t,type:rs.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 is({parent:t,type:rs.comment,value:i})}if(i(n)){f=e[++n];let i=Su(f.value),c=new is({parent:t,type:rs.element,value:f.value.toLowerCase()});for(n++;r()&&!d(n)&&!s(n);){if(m(n)){Eu(c)(h());continue}n++}if(s(n))return n+=2,c;for(f=e[++n];r()&&!a(n)&&!o(n)&&!i;)Du(c)(g(c));return(a(n)||o(n))&&(n+=4),c}return n++,null};for(;r();)Du(t)(g(t));return t}var ku=e=>Ou(au(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)),ju=Symbol.iterator,Mu=class e{get isMarker(){return Bo(this.value)}get isMarkerOnly(){return Vo(this.value)}get isSvg(){return this.type===rs.element&&/^svg$/i.test(this.value)}get isComponent(){return this.type===rs.element&&this.isMarkerOnly}constructor(t,n=null){if(ts(this,`type`,rs.comment),ts(this,`value`,``),ts(this,`staticAttrs`,void 0),ts(this,`attrs`,void 0),ts(this,`parent`,null),ts(this,`children`,void 0),this.type=t.type,this.value=t.value,this.parent=n,t.attrs){let[e,n]=Fu(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())}*[ju](){if(yield this,this.children)for(let e of this.children)yield*e}};function Nu(e){let t=new Mu(e);for(let e of t)e.type===rs.text&&!Vo(e.value)&&Pu(e);return t}function Pu(e){let t=Ko(e.value);e.value.replace(_a,ha).split(ha).reduce((n,r,i)=>(i<t.length?n.push(new Mu(new is({type:rs.text,value:r}),e.parent),new Mu(new is({type:rs.text,value:t[i][0]}),e.parent)):n.push(new Mu(new is({type:rs.text,value:r}),e.parent)),n),[]).filter(e=>e.value!==``&&!(!e.value.trim()&&ya.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 Fu(e=[]){let t=Au(e,e=>Go(e.name));return Object.keys(t).map(e=>t[e]).reduce((e,t)=>{let[n,r]=e,i=t[t.length-1],a=Wo(i.name);if(a===ba.event)r.push(...t.filter(e=>!!e.value).map(e=>({type:Wo(e.name),name:Go(e.name),value:e.value})));else if(a===ba.attribute){let e=t.filter(e=>!!e.value).map(e=>e.value).join(` `),o={type:a,name:Go(i.name)};e&&(o.value=e),Ho(o)?r.push(o):n.push(o)}else{let e={type:a,name:Go(i.name)};i.value&&(e.value=i.value),Ho(e)?r.push(e):n.push(e)}return e},[[],[]])}var Iu=e=>(t,...n)=>{let r={strings:t,values:n,[Aa]:e};if(Do.has(t))return r.template=Do.get(t),r;let i=Nu(ku(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}),Do.set(t,r.template),r},Lu=Iu(wo.html),Ru=Iu(wo.svg);function zu(e){let t=os(e),n=/* @__PURE__ */ new WeakMap;return{html:Lu,svg:Ru,render:(e,r)=>{if(!Mo(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 Ql(r,void 0,void 0,t);o?.destroy(),n.set(e,i),i.insert(`children`,e),i.commit(a)}}}}var Bu=Co((e,t,n)=>(e.length,[e,t,n]),({startNode:e,endNode:t,helper:n=ss})=>{let r=[],i=()=>{r.forEach(e=>e.destroy())};return([a,o,s])=>{let c=Gu(a,o,s),l=c.values,u=yc(Wu(r),c,{strict:!0}),d={length:l.length};return u.update.forEach(({action:i,from:a,to:o})=>{switch(i){case gc.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 Uu(i,l[o].value,l[o].key,n);break;case gc.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}}),Vu=/* @__PURE__ */ new WeakMap,Hu=/* @__PURE__ */ new WeakMap,Uu=class{constructor(e,t,n,r=ss){E(this,Vu,void 0),E(this,Hu,void 0),ts(this,`startNode`,void 0),ts(this,`endNode`,void 0),ts(this,`type`,void 0),ts(this,`key`,void 0),D(Hu,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=pl(t),D(Vu,this,_l(this.type,this.startNode,this.endNode,r))}commit(e){O(Vu,this).commit(e)}insert(e,t){let n=[this.startNode,...O(Hu,this).rangeNodes(this.startNode,this.endNode),this.endNode];e===`before`?n.forEach(e=>O(Hu,this).insertBeforeNode(e,t)):n.reverse().forEach(e=>O(Hu,this).insertAfterNode(e,t))}destroy(){O(Vu,this).destroy?.(),O(Hu,this).removeRange(this.startNode,this.endNode),O(Hu,this).removeNode(this.startNode),O(Hu,this).removeNode(this.endNode)}};function Wu(e){let t=[],n=/* @__PURE__ */ 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 Gu(e,t,n){let r=[],i=/* @__PURE__ */ new Map,a=[];return e.forEach((e,o,s)=>{let c={key:t(e),value:n(e,o,s)},l={type:pl(c.value),key:c.key};a.push(c),r.push(l),i.set(l,o)}),{items:r,itemToIndex:i,values:a}}var Ku={vCSSStyleSheetMap:/* @__PURE__ */ new Map,hostContextMap:/* @__PURE__ */ new Map,globalOrder:[],orderedSheets:null},qu=globalThis.ShadowRoot&&`adoptedStyleSheets`in Document.prototype&&`replace`in CSSStyleSheet.prototype,Ju=null;function Yu(){return Ju===null&&(Ju=Xu()),Ju}function Xu(){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 Zu(){return Ku}function Qu(e){let t=Zu(),{identifier:n,cssText:r,mode:i}=e;if(!r||t.vCSSStyleSheetMap.has(n))return n;let a=qu?new CSSStyleSheet:null,o=qu?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),rd(s),n}function $u(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 ed(e){return e.orderedSheets||=$u(e).map(({sheet:e})=>e).filter(Boolean),e.orderedSheets}function td(e,t){e.adoptedStyleSheets=[...t]}function nd(){let e=Zu(),t=ed(e);e.hostContextMap.forEach((e,n)=>td(n,t))}function rd(e){if(!qu){id();return}let t=Zu(),{mode:n,sheet:r}=e,i=t.orderedSheets;if(!r||n===`global`||!i){t.orderedSheets=null,nd();return}if(i.push(r),!Yu()){nd();return}t.hostContextMap.forEach((e,t)=>t.adoptedStyleSheets.push(r))}function id(){let e=Zu(),t=$u(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=ad(t,i+1,n);o?e.insertBefore(a,o):e.appendChild(a),n.set(r,a)})})}function ad(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*od(e,t,n){for(let r of n)r?.[Symbol.iterator]?yield*od(e,t,r):ia(r)?yield*od(e,t,r(e,t)):yield r}var sd=(e,t,n)=>[...od(e,t,n)],cd=(...e)=>t=>e.reduce((e,t)=>t(e),t);function*ld(e){yield e}var ud=function*(e){for(let t of e)t.length&&(yield t)};function dd({context:e,state:t,reducers:n,enableObservable:r=!0}){let i=r?no(t):t,a=pa(),o=pa(),s=cd(ud),c=t=>{Qi(Reflect.get(n,t.type,n),i,t,e)},l=(...t)=>{let n=sd(i,e,t);a.next(n)},u=(...e)=>{$i(()=>l(...e))},d=a.subscribe(e=>{let t=s(ld(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=cd(...e,ud),()=>{s=cd(ud)}),destroy:()=>{d(),f()}}}var fd=`__RHTML_CSS_DIAGNOSTICS__`,pd=({line:e,column:t})=>e===void 0?``:` (${e}:${t??1})`,md=(e,t)=>{let n=`[r-html] ${t.mode===`global`?`css.global`:`css`} ${t.identifier}${pd(e)} ${e.code}: ${e.message}`;e.severity===`error`?console.error(n):console.warn(n)};function hd(){let e=Reflect.get(globalThis,fd);return e?typeof e==`function`?e:md:null}function gd(){return hd()!==null}function _d(e,t){if(e.length===0)return;let n=hd();if(n)for(let r of e)n(r,t)}var vd=[``];function yd(e){return{value:``,root:null,parent:null,type:o,props:e.slice(),children:[],line:1,column:1,length:0,return:``,siblings:[]}}function bd(e,t={}){let n=t.rules??vd,r=t.rules===void 0?null:yd(n),i=s(e);return c(l(``,null,null,r??null,n,i,0,[0],i))}var xd=`rhtml-scope`;function Sd(e,t){return e.split(xd).join(t)}var Cd=/^(?::host\b|::slotted\()/;function wd(e){return Cd.test(e.trim())}function Td(e){return e.type===o}function Ed(e){return e.type===n}function Dd(e){return e.type.charCodeAt(0)===64}function Od(e){return Array.isArray(e.children)?e.children:[]}function kd(e){return e.value.charCodeAt(e.value.length-1)===59?e.value.slice(0,-1):e.value}function Ad(e){let t=[];for(let n of Od(e))Ed(n)&&t.push(kd(n));return t}function jd(e){return Od(e).filter(Td)}function Md(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 Nd=/* @__PURE__ */ new Set([r,t,a,i]);function Pd(e,t,n){let i=[],a=/* @__PURE__ */ new Set,o=!1,s=(e,t)=>{for(let n of e){if(Td(n)){o=!0,Fd(n,t,i);continue}if(Dd(n)){if(Od(n).length===0){if(!Nd.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,Md(n.type)){s(Od(n),t);continue}jd(n).length>0&&Id(n,a,i),s(Od(n),!1)}}};s(e,n.scoped),!n.scoped&&e.some(Ed)&&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.`}),Ld(t,i);let c=zd(n.source);return c&&i.push(c),i}function Fd(e,t,n){if(e.props.every(e=>e.length===0)){let t=Ad(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 Rd(e.value)){let r=t.trim();if(wd(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 Id(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 Ld(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 \`${xd}\`. The sentinel is only substituted in selectors, so it will reach the browser as written.`})}function Rd(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 zd(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 Bd(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+=Vd(i,t.scope)}for(let e=0;e<r.length;e++)n+=`}`;return n}function Vd(e,t){return e.body===void 0?`${e.prelude??Hd(e.selectors,t)}{${e.declarations.join(`;`)};}`:`${e.prelude}{${e.body}}`}function Hd(e,t){return(t===void 0?e:e.map(e=>Sd(e,t))).join(`,`)}var Ud=[],Wd=e=>e.length>0;function Gd(e,t){let n=[];return qd(e,Ud,t.rules,n),(t.plugins??[]).reduce((e,t)=>e.flatMap(e=>t(e)),n).filter(Kd)}function Kd(e){let t=e.selectors.length>0||e.prelude!==void 0,n=e.declarations.length>0||!!e.body;return t&&n}function qd(e,t,n,r){let i=r.length,a=[];for(let i of e)Ed(i)?a.push(kd(i)):Td(i)?Jd(i,t,r):Dd(i)&&Yd(i,t,n,r);if(a.length===0)return;let o=n.filter(Wd);o.length!==0&&r.splice(i,0,{conditions:t,selectors:o,declarations:a})}function Jd(e,t,n){let r=e.props.filter(Wd);if(r.length===0)return;let i=Ad(e);i.length!==0&&n.push({conditions:t,selectors:r,declarations:i})}function Yd(e,t,n,r){let i=Od(e);if(i.length===0)return;if(Md(e.type)){let a=[];if(qd(i,[...t,e.value],n,a),a.length===0)return;for(let e of a)r.push(e);return}let a=jd(e);if(a.length>0){let n=[];for(let e of a)Jd(e,Ud,n);let i=Bd(n);i&&r.push({conditions:t,selectors:[],prelude:e.value,declarations:[],body:i});return}let o=Ad(e);o.length!==0&&r.push({conditions:t,selectors:[],prelude:e.value,declarations:o})}function Xd(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 Zd=7;function Qd(e){return`_${Xd(e).toString(36).padStart(Zd,`0`)}`}var $d=[];function ef(e,t={}){let n=t.mode!==`global`,r=n?[xd]:[``],i=bd(e,{rules:r}),a=Gd(i,{rules:r,plugins:t.plugins}),o=Bd(a),s=Qd(o);return{rules:a,canonicalText:o,identifier:s,cssText:Bd(a,{scope:`.${s}`}),diagnostics:t.dev?Pd(i,a,{source:e,scoped:n}):$d}}function tf(e){let t=/[;{}][^;{}]*$/.exec(e);return t?t[0].slice(1):e}function nf(e){let t=e.search(/[;}\n]/);return t===-1?e:e.slice(0,t)}function rf(e){let t=[];for(let n=0;n<e.length-1;n++){let r=tf(e[n]),i=nf(e[n+1]),a=!r.includes(`:`)&&!i.includes(`{`)?`statement`:`inline`;t.push({kind:a,provable:r.trim().length===0})}return t}function af(e){let t=e.trimEnd();return!t||t.endsWith(`;`)||t.endsWith(`}`)?e:`${e};`}function of(e,t){return No(e)?t===`statement`?af(e[Eo]??``):`.${String(e)}`:fa(e)&&!la(e)&&!ca(e)?String(e):``}function sf(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}(cf(n,`'`)||cf(n,`"`))&&console.warn(`[r-html] interpolated value has an unbalanced quote and is substituted before compiling: ${n}`)}function cf(e,t){let n=0;for(let r of e)r===t&&n++;return n%2==1}function lf(e,t,n){let r=``;for(let i=0;i<e.length;i++){if(r+=e[i],i>=t.length)continue;let a=of(n[i],t[i].kind);sf(t[i],n[i],a),r+=a}return r}var uf=32,df=`\0`;function ff(e){return(t,...n)=>{let r=mf(t,e),i=hf(r.node,n),a=Qu(i);return{strings:t,values:n,template:r,[Aa]:wo.css,[Eo]:i.source,toString:()=>a}}}var pf=Object.assign(ff(`scoped`),{global:ff(`global`)});function mf(e,t){let n=Oo.get(e);if(n&&n.node.mode===t)return n;let r=e.raw,i={raw:r,slots:rf(r),mode:t,memo:/* @__PURE__ */ new Map},a=Object.freeze({node:i});return Oo.set(e,a),a}function hf(e,t){let n=e.slots.map((e,n)=>of(t[n],e.kind)).join(df),r=e.memo.get(n);if(r)return r;let i=lf(e.raw,e.slots,t),{rules:a,canonicalText:o,identifier:s,cssText:c,diagnostics:l}=ef(i,{mode:e.mode,dev:gd()}),u={source:i,mode:e.mode,rules:a,canonicalText:o,identifier:s,cssText:c};if(_d(l,{source:i,identifier:s,mode:e.mode}),e.memo.set(n,u),e.memo.size>uf){let[t]=e.memo.keys();e.memo.delete(t)}return u}ee.autoDrawEnabled=!1,Reflect.set(ee,`DD`,b);const gf=/* @__PURE__ */ new Set,_f=/* @__PURE__ */ new Set,vf=/* @__PURE__ */ new Map,yf=[],bf=[],xf=/* @__PURE__ */ new Set;let Sf=!1,Cf=!1,wf=0;function Tf(){return wf}function Ef(){wf+=1;try{xf.forEach(e=>e())}finally{Sf=!1,Cf=!1;for(let e of gf){if(vf.has(e)){_f.add(e);continue}e.getStage()instanceof y&&e.batchDraw()}gf.clear(),yf.splice(0).forEach(e=>e())}}function Df(e){return xf.add(e),()=>{xf.delete(e)}}function Of(){queueMicrotask(()=>{if(Cf){Cf=!1,Of();return}Ef()})}function kf(){Cf=!0,!Sf&&(Sf=!0,Of())}function Af(e){if(vf.has(e)){_f.add(e);return}gf.add(e),kf()}function jf(e){vf.set(e,(vf.get(e)??0)+1)}function Mf(e){let t=(vf.get(e)??0)-1;t>0?vf.set(e,t):vf.delete(e),bf.splice(0).forEach(e=>e()),t<=0&&_f.delete(e)&&Af(e)}function Nf(){return new Promise(e=>{bf.push(()=>e())})}function Pf(){return vf.size?Nf().then(Pf):Sf?new Promise(e=>{yf.push(()=>e())}):Promise.resolve()}const Ff=Symbol(`r-html/konva-slot`),If=Symbol(`r-html/konva-ledger`),Lf=Symbol(`r-html/konva-virtual`),Rf=Symbol(`r-html/konva-fragment`),zf=/* @__PURE__ */ new Set([`class`,`style`,`zIndex`]),Bf={reconcile:0,scan:0,attach:0,drop:0,order:0,setZIndex:0},Vf={"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 Hf(){}function Uf(){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 Wf(e,t=``){let n={kind:e,data:t};return Reflect.set(n,Lf,e),Object.defineProperty(n,"nextSibling",{get:Uf}),Object.defineProperty(n,"parentNode",{get:Uf}),n}const Gf=e=>e&&typeof e==`object`?Reflect.get(e,Lf)??null:null,Kf=e=>e instanceof p,qf=e=>Kf(e)&&Reflect.get(e,Rf)===!0,Jf=e=>Reflect.get(e,Ff);function Yf(e){let t=Jf(e);if(t)return t;let n={node:e,parent:null,prev:null,next:null,doomed:!1};return Reflect.set(e,Ff,n),n}function Xf(e){let t=Reflect.get(e,If);if(t)return t;let n={first:null,last:null,dirty:!1,reconciledAt:-1};return Reflect.set(e,If,n),n}const Zf=e=>Jf(e)?.parent??null,Qf=e=>Jf(e)?.next?.node??null,$f=/* @__PURE__ */ new Set,ep=/* @__PURE__ */ new WeakMap;function tp(e){let t=e;for(;t;){if(t instanceof f)return t;t=Zf(t)}return null}function np(e){let t=tp(e);t&&Af(t)}function rp(e){Xf(e).dirty=!0,$f.add(e),np(e),kf()}function ip(e){let t=e.parent;if(!t)return;let n=Xf(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,rp(t)}function ap(e,t,n){ip(t);let r=Xf(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,rp(e)}function op(e,t){if(Kf(t)&&!qf(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(Kf(e)&&!(e instanceof u))throw Error(`[konva-host] ${e.getClassName()} is a shape and holds no children`)}}function sp(e,t,n){if(t===n)return;let r=n?Yf(n):null;if(!qf(t)){op(e,t),ap(e,Yf(t),r);return}let i=[];for(let e=Xf(t).first;e;e=e.next)i.push(e);for(let t of i)op(e,t.node),ap(e,t,r)}function cp(e){$f.delete(e),Reflect.deleteProperty(e,Ff),Reflect.deleteProperty(e,If),e.destroy()}function lp(e,t){let n=t.getParent();n!==e&&(n&&$f.has(n)&&mp(n),Bf.attach+=1,e.add(t))}function up(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 dp(e,t){t.forEach((t,n)=>{e.children[n]!==t&&(Bf.setZIndex+=1,t.setZIndex(n))})}function fp(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 pp(e){if(Bf.reconcile+=1,!(e instanceof u))return;let t=[];for(let n=Xf(e).first;n;n=n.next)Bf.scan+=1,Kf(n.node)&&t.push(n.node);for(let n of t)lp(e,n);let n=new Set(t),r=e.children.filter(e=>!n.has(e));if(r.length||!up(e.children,t)){Bf.order+=1,e instanceof y?(r.forEach(e=>e.remove()),dp(e,t)):(r.forEach(e=>{e.parent=null,e.index=0,e.remove()}),fp(e,t));for(let e of r)Bf.drop+=1,Yf(e).doomed&&cp(e)}}function mp(e){let t=Xf(e);(t.dirty||t.reconciledAt!==Tf())&&(t.dirty=!1,t.reconciledAt=Tf(),pp(e))}Df(()=>{for(let e of $f)mp(e);$f.clear()});function hp(e){let t=e,n=Zf(t);for(;n;)t=n,n=Zf(t);return ep.get(t)??t}function gp(e,t){if(!t)return;let n=hp(e);if(Kf(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 _p=zu({createElement(e){let t=Vf[e.toLowerCase()];if(!t)throw Error(`[konva-host] unknown konva tag <${e}>`);return t()},createText:e=>Wf(`text`,e),createMarker:e=>Wf(`marker`,e),createFragment(){let e=new d;return Reflect.set(e,Rf,!0),Reflect.set(e,`_validateAdd`,Hf),e},createEventBus:()=>new EventTarget,insertBefore(e,t){let n=Zf(t);n&&sp(n,e,t)},appendChild(e,t){sp(e,t,null)},prependChild(e,t){sp(e,t,Xf(e).first?.node??null)},removeChild(e){let t=Yf(e);ip(t),Kf(e)&&(t.doomed=!0,e.getParent()||cp(e))},parentOf:Zf,nextSiblingOf:Qf,setText(e,t){if(Gf(e)!==`text`)throw Error(`[konva-host] a konva tree has no text node to write`);e.data=t},setAttribute(e,t,n,r){if(!Kf(e))return;if(zf.has(t))throw Error(`[konva-host] "${t}" is not a konva attribute a template may write`);let i=r?n:String(n);t===`id`&&gp(e,i),e.attrs[t]!==i&&(e.setAttrs({[t]:i}),np(e))},removeAttribute(e,t){Kf(e)&&e.attrs[t]!==void 0&&(e.setAttrs({[t]:void 0}),np(e))},isHostNode:e=>Kf(e)||Gf(e)!==null,isMarker:e=>Gf(e)===`marker`,isText:e=>Gf(e)===`text`,isElement:e=>Kf(e)&&!qf(e),isFragment:e=>qf(e),addEventListener(e,t,n,r){Kf(e)?e.on(`${t}.rhtml`,n):e.addEventListener(t,n,r)},removeEventListener(e,t,n,r){Kf(e)?e.off(`${t}.rhtml`,n):e.removeEventListener(t,n,r)},getRoot:hp,createComponentContext(e,t){return{get host(){let n=hp(e);return n instanceof y?n.container():t},get parentElement(){return null},dispatchEvent:e=>t.dispatchEvent(e)}},bridgeFragment(e,t){return ep.set(e,t),()=>{ep.delete(e)}}}),A=_p.html;function vp(e,t){if(!(e instanceof y))throw Error(`[konva-host] a konva template renders into a Stage`);_p.render(e,t)}var yp=(e,t)=>e*(1-t)/2;function bp(e){return{originX:We(e.scrollLeft+yp(e.width,e.zoomLevel),4),originY:We(e.scrollTop+yp(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 xp(e){return t=>w(t)&&e.includes(t)}function Sp(e){return t=>C(t)&&e.includes(t)}function Cp(e,t,n){return Reflect.get(e,t)??n}function wp(e,t){let n=new Set(t);return e.every(e=>n.has(e))?t:[...e]}var Tp=()=>({tableIds:[],relationshipIds:[],indexIds:[],memoIds:[],tableGroupIds:[]});function Ep(e){let t=Tp();if(!ue(e)||S(e))return t;let n=j(Array.isArray,t,e);return n(`tableIds`),n(`relationshipIds`),n(`indexIds`),n(`memoIds`),n(`tableGroupIds`),t}var Dp=()=>({id:``,name:``,tableId:``,indexColumnIds:[],seqIndexColumnIds:[],unique:!1});function Op(e){let t={};if(!ue(e)||S(e))return t;for(let n of Object.values(e)){if(!n)continue;let e=Dp(),r=j(w,e,n),i=j(oe,e,n),a=j(Array.isArray,e,n);r(`id`),r(`name`),r(`tableId`),i(`unique`),a(`indexColumnIds`),a(`seqIndexColumnIds`),e.seqIndexColumnIds=wp(e.indexColumnIds,e.seqIndexColumnIds),e.id&&(t[e.id]=e)}return t}var kp={ASC:1,DESC:2},Ap=Object.values(kp),jp=()=>({id:``,indexId:``,columnId:``,orderType:kp.ASC});function Mp(e){let t={};if(!ue(e)||S(e))return t;for(let n of Object.values(e)){if(!n)continue;let e=jp(),r=j(w,e,n);r(`id`),r(`indexId`),r(`columnId`),j(Sp(Ap),e,n)(`orderType`),e.id&&(t[e.id]=e)}return t}var Np=()=>({id:``,value:``,ui:{x:200,y:100,zIndex:2,width:116,height:100,color:``}});function Pp(e){let t={};if(!ue(e)||S(e))return t;for(let n of Object.values(e)){if(!n)continue;let e=Np(),r=j(w,e,n),i=j(C,e.ui,n.ui),a=j(w,e.ui,n.ui);r(`id`),r(`value`),a(`color`),i(`x`),i(`y`),i(`zIndex`),i(`width`),i(`height`),e.id&&(t[e.id]=e)}return t}var Fp={ZeroOne:2,ZeroN:4,OneOnly:8,OneN:16},Ip=Object.values(Fp),Lp={ring:1,dash:2},Rp=Object.values(Lp),zp={none:1,noAction:2,cascade:4,setNull:8,setDefault:16,restrict:32},Bp=Object.values(zp),Vp={left:1,right:2,top:4,bottom:8},Hp=Object.values(Vp),Up=()=>({id:``,identification:!1,relationshipType:Fp.ZeroN,startRelationshipType:Lp.dash,onDelete:zp.none,onUpdate:zp.none,start:{tableId:``,columnIds:[],x:0,y:0,direction:Vp.bottom},end:{tableId:``,columnIds:[],x:0,y:0,direction:Vp.bottom}});function Wp(e){let t={};if(!ue(e)||S(e))return t;for(let n of Object.values(e)){if(!n)continue;let e=Up(),r=j(w,e,n),i=j(oe,e,n),a=j(C,e.start,n.start),o=j(w,e.start,n.start),s=j(C,e.end,n.end),c=j(w,e.end,n.end);r(`id`),i(`identification`),j(Sp(Ip),e,n)(`relationshipType`),j(Sp(Rp),e,n)(`startRelationshipType`),j(Sp(Bp),e,n)(`onDelete`),j(Sp(Bp),e,n)(`onUpdate`),o(`tableId`),a(`x`),a(`y`),j(Sp(Hp),e.start,n.start)(`direction`),j(Array.isArray,e.start,n.start)(`columnIds`),c(`tableId`),s(`x`),s(`y`),j(Sp(Hp),e.end,n.end)(`direction`),j(Array.isArray,e.end,n.end)(`columnIds`),e.id&&(t[e.id]=e)}return t}function Gp(e,t){return(e&t)===t}var Kp={before:`before`,after:`after`},qp=Object.values(Kp),Jp={ERD:`ERD`,visualization:`@dineug/erd-editor/builtin-visualization`,schemaSQL:`@dineug/erd-editor/builtin-schema-sql`,generatorCode:`@dineug/erd-editor/builtin-generator-code`,settings:`settings`},Yp=Object.values(Jp),Xp={tableComment:1,columnComment:2,columnDataType:4,columnDefault:8,columnAutoIncrement:16,columnPrimaryKey:32,columnUnique:64,columnNotNull:128,relationship:256,columnAlternateKey:512,hideReferentialAction:1024,hideTableGroup:2048,hideMemo:4096},Zp={columnName:1,columnDataType:2,columnNotNull:4,columnUnique:8,columnAutoIncrement:16,columnDefault:32,columnComment:64},Qp=Object.values(Zp),$p={MariaDB:1,MSSQL:2,MySQL:4,Oracle:8,PostgreSQL:16,SQLite:32,Databricks:64,Snowflake:128},em=Object.values($p),tm={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,Mermaid:16384,PHP:32768,Doctrine:65536,Rust:131072,SeaORM:262144,Swift:524288,Zod:1048576,JSONSchema:2097152},nm=Object.values(tm),rm={none:1,camelCase:2,pascalCase:4,snakeCase:8},im=Object.values(rm),am={none:1,doubleQuote:2,singleQuote:4,backtick:8},om=Object.values(am),sm={viewport:1,canvasType:2,language:4,tableNameCase:8,columnNameCase:16,bracketType:32},cm=Object.values(sm),lm={[sm.viewport]:[`originX`,`originY`,`zoomLevel`],[sm.canvasType]:[`canvasType`],[sm.language]:[`language`],[sm.tableNameCase]:[`tableNameCase`],[sm.columnNameCase]:[`columnNameCase`],[sm.bracketType]:[`bracketType`]},um=.1,dm=1.5,fm=2e3,pm=2e4,mm=Xp.tableComment|Xp.columnComment|Xp.columnDataType|Xp.columnDefault|Xp.columnPrimaryKey|Xp.columnNotNull|Xp.relationship,hm=cm.reduce((e,t)=>e|t,0),gm=cm.flatMap(e=>lm[e]),_m=e=>ge(e,gm),vm=()=>{let e={originX:0,originY:0,zoomLevel:1,show:mm,database:$p.MySQL,databaseName:``,canvasType:Jp.ERD,language:tm.GraphQL,tableNameCase:rm.pascalCase,columnNameCase:rm.camelCase,bracketType:am.none,relationshipDataTypeSync:!0,columnOrder:[Zp.columnName,Zp.columnDataType,Zp.columnNotNull,Zp.columnUnique,Zp.columnAutoIncrement,Zp.columnDefault,Zp.columnComment],maxWidthComment:-1,lockSettings:hm,ddlScripts:{before:``,after:``}};return{...e,lockedValues:_m(e)}},ym=2e3,bm=e=>Number.isFinite(e),xm=e=>ne(e,fm,pm),Sm=e=>ne(e,um,dm),Cm=e=>ne(e,60,200);function wm(e,t){let n=e=>C(e)?xm(e):ym,r=e=>C(e)?e:0;return{width:n(e.width),height:n(e.height),zoomLevel:t,scrollLeft:r(e.scrollLeft),scrollTop:r(e.scrollTop)}}function Tm(e){let t=vm();if(!ue(e)||S(e))return t;let n=j(C,t,e),r=j(w,t,e),i=j(oe,t,e);if(C(e.zoomLevel)&&(t.zoomLevel=Sm(e.zoomLevel)),C(e.maxWidthComment)&&e.maxWidthComment!==-1&&(t.maxWidthComment=Cm(e.maxWidthComment)),n(`show`),r(`databaseName`),r(`canvasType`),i(`relationshipDataTypeSync`),j(Sp(em),t,e)(`database`),j(Sp(nm),t,e)(`language`),j(Sp(im),t,e)(`tableNameCase`),j(Sp(im),t,e)(`columnNameCase`),j(Sp(om),t,e)(`bracketType`),Array.isArray(e.columnOrder)&&Qp.length===e.columnOrder.length&&ie(Qp,e.columnOrder).length===0&&(t.columnOrder=e.columnOrder),bm(e.originX)&&bm(e.originY))t.originX=e.originX,t.originY=e.originY;else{let{originX:n,originY:r}=bp(wm(e,t.zoomLevel));t.originX=n,t.originY=r}C(e.lockSettings)?(t.lockSettings=e.lockSettings|0,Gp(t.lockSettings,sm.canvasType)&&t.canvasType===Jp.settings&&(t.canvasType=Jp.ERD),t.lockedValues=_m(t)):Em(t);let a=j(w,t.ddlScripts,e.ddlScripts);return a(`before`),a(`after`),t}function Em(e){let{originX:t,originY:n,zoomLevel:r,canvasType:i}=vm();Object.assign(e,{originX:t,originY:n,zoomLevel:r,canvasType:i}),e.lockedValues=_m(e)}var Dm=()=>({id:``,name:``,comment:``,columnIds:[],seqColumnIds:[],groupId:``,ui:{x:200,y:100,zIndex:2,widthName:60,widthComment:60,color:``}});function Om(e){let t={};if(!ue(e)||S(e))return t;for(let n of Object.values(e)){if(!n)continue;let e=Dm(),r=j(w,e,n),i=j(Array.isArray,e,n),a=j(C,e.ui,n.ui),o=j(w,e.ui,n.ui);r(`id`),r(`name`),r(`comment`),r(`groupId`),i(`columnIds`),i(`seqColumnIds`),o(`color`),a(`x`),a(`y`),a(`zIndex`),a(`widthName`),a(`widthComment`),e.seqColumnIds=wp(e.columnIds,e.seqColumnIds),e.id&&(t[e.id]=e)}return t}var km=()=>({id:``,tableId:``,name:``,comment:``,dataType:``,default:``,options:0,ui:{keys:0,widthName:60,widthComment:60,widthDataType:60,widthDefault:60}});function Am(e){let t={};if(!ue(e)||S(e))return t;for(let n of Object.values(e)){if(!n)continue;let e=km(),r=j(w,e,n),i=j(C,e,n),a=j(C,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`),e.id&&(t[e.id]=e)}return t}var jm=()=>({id:``,name:``,color:``,ui:{x:200,y:100,width:400,height:300,zIndex:1}});function Mm(e){let t={};if(!ue(e)||S(e))return t;for(let n of Object.values(e)){if(!n)continue;let e=jm(),r=j(w,e,n),i=j(C,e.ui,n.ui);r(`id`),r(`name`),r(`color`),i(`x`),i(`y`),i(`width`),i(`height`),i(`zIndex`),e.id&&(t[e.id]=e)}return t}function Nm(e){let t=e,n=Tm(t.settings),r=Ep(t.doc),i=Om(t.collections?.tableEntities),a=Am(t.collections?.tableColumnEntities),o=Wp(t.collections?.relationshipEntities),s=Op(t.collections?.indexEntities),c=Mp(t.collections?.indexColumnEntities),l=Pp(t.collections?.memoEntities),u=Mm(t.collections?.tableGroupEntities);return Pm(i,r.tableIds,t.collections?.tableEntities,2),Pm(l,r.memoIds,t.collections?.memoEntities,Math.max(1,...r.tableIds.map(e=>i[e]?.ui.zIndex??0))+1),Pm(u,r.tableGroupIds,t.collections?.tableGroupEntities,1),{$schema:`https://raw.githubusercontent.com/dineug/erd-editor/main/json-schema/schema.json`,version:`3.0.0`,settings:n,doc:r,collections:{tableEntities:i,tableColumnEntities:a,relationshipEntities:o,indexEntities:s,indexColumnEntities:c,memoEntities:l,tableGroupEntities:u}}}function Pm(e,t,n,r){let i=Fm(n);t.forEach((t,n)=>{let a=e[t];a&&!i.has(t)&&(a.ui.zIndex=r+n,i.add(t))})}function Fm(e){let t=/* @__PURE__ */ new Set;if(!ue(e))return t;for(let n of Object.values(e)){if(!ue(n)||!w(n.id))continue;let e=n.ui;ue(e)&&C(e.zIndex)?t.add(n.id):t.delete(n.id)}return t}function Im(){return Nm({})}var M={CanvasType:Jp,CanvasTypeList:Yp,Show:Xp,ColumnType:Zp,ColumnTypeList:Qp,Database:$p,DatabaseList:em,Language:tm,LanguageList:nm,NameCase:rm,NameCaseList:im,BracketType:am,BracketTypeList:om,RelationshipType:Fp,RelationshipTypeList:Ip,StartRelationshipType:Lp,StartRelationshipTypeList:Rp,ReferentialAction:zp,ReferentialActionList:Bp,Direction:Vp,DirectionList:Hp,ColumnOption:{autoIncrement:1,primaryKey:2,unique:4,notNull:8},ColumnUIKey:{primaryKey:1,foreignKey:2},OrderType:kp,OrderTypeList:Ap,LockSettingType:sm,LockSettingTypeList:cm,LockSettingFields:lm,CANVAS_SIZE_MAX:pm,CANVAS_SIZE_MIN:fm,CANVAS_ZOOM_MAX:dm,CANVAS_ZOOM_MIN:um,DDLScriptPosition:Kp,DDLScriptPositionList:qp},Lm=Object.values({columnUnique:`columnUnique`,columnAutoIncrement:`columnAutoIncrement`,columnName:`columnName`,columnDataType:`columnDataType`,columnNotNull:`columnNotNull`,columnDefault:`columnDefault`,columnComment:`columnComment`}),Rm=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`}),zm=Object.values({MariaDB:`MariaDB`,MSSQL:`MSSQL`,MySQL:`MySQL`,Oracle:`Oracle`,PostgreSQL:`PostgreSQL`,SQLite:`SQLite`}),Bm=Object.values({GraphQL:`GraphQL`,"C#":`C#`,Java:`Java`,Kotlin:`Kotlin`,TypeScript:`TypeScript`,JPA:`JPA`,Scala:`Scala`}),Vm=Object.values({none:`none`,camelCase:`camelCase`,pascalCase:`pascalCase`,snakeCase:`snakeCase`}),Hm=Object.values({AtomOneDark:`AtomOneDark`,AtomOneLight:`AtomOneLight`,MonokaiSublime:`MonokaiSublime`,GithubGist:`GithubGist`,VS2015:`VS2015`}),Um=Object.values({none:`none`,doubleQuote:`doubleQuote`,singleQuote:`singleQuote`,backtick:`backtick`}),Wm=.1,Gm=2e3,Km=2e4,qm=()=>({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:{}}),Jm=e=>ne(e,Gm,Km),Ym=e=>ne(e,Wm,1);function Xm(e){let t=qm();if(S(e))return t;let n=j(C,t,e),r=j(w,t,e),i=j(oe,t.show,e.show),a=j(oe,t.setting,e.setting);if(C(e.width)&&(t.width=Jm(e.width)),C(e.height)&&(t.height=Jm(e.height)),C(e.zoomLevel)&&(t.zoomLevel=Ym(e.zoomLevel)),r(`version`),r(`databaseName`),n(`scrollTop`),n(`scrollLeft`),j(xp(zm),t,e)(`database`),j(xp(Rm),t,e)(`canvasType`),j(xp(Bm),t,e)(`language`),j(xp(Vm),t,e)(`tableCase`),j(xp(Vm),t,e)(`columnCase`),j(xp(Hm),t,e)(`highlightTheme`),j(xp(Um),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&&Lm.length===e.setting.columnOrder.length&&ie(Lm,e.setting.columnOrder).length===0&&(t.setting.columnOrder=e.setting.columnOrder),ue(e.pluginSerializationMap)){let n=e.pluginSerializationMap;for(let e of Object.keys(n)){let r=n[e];w(r)&&(t.pluginSerializationMap[e]=r)}}return t}var Zm=()=>({memos:[]}),Qm=()=>({id:``,value:``,ui:{active:!1,left:200,top:200,zIndex:2,width:127,height:127}});function $m(e){let t=Zm();if(S(e)||!Array.isArray(e.memos))return t;for(let n of e.memos){let e=Qm(),r=j(w,e,n),i=j(C,e.ui,n.ui),a=j(oe,e.ui,n.ui),o=j(w,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 eh=[`ZeroOneN`,`One`,`N`],th={ZeroOneN:`ZeroN`,One:`OneOnly`,N:`OneN`},nh=e=>eh.includes(e)?th[e]:e,rh=Object.values({ZeroOneN:`ZeroOneN`,ZeroOne:`ZeroOne`,ZeroN:`ZeroN`,OneOnly:`OneOnly`,OneN:`OneN`,One:`One`,N:`N`}),ih=Object.values({Ring:`Ring`,Dash:`Dash`}),ah=Object.values({left:`left`,right:`right`,top:`top`,bottom:`bottom`}),oh=()=>({relationships:[]}),sh=()=>({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 ch(e){let t=oh();if(S(e)||!Array.isArray(e.relationships))return t;for(let n of e.relationships){let e=sh(),r=j(w,e,n),i=j(oe,e,n),a=j(C,e.start,n.start),o=j(w,e.start,n.start),s=j(C,e.end,n.end),c=j(w,e.end,n.end);r(`id`),r(`constraintName`),i(`identification`),i(`visible`),j(xp(rh),e,n)(`relationshipType`),e.relationshipType=nh(e.relationshipType),j(xp(ih),e,n)(`startRelationshipType`),o(`tableId`),a(`x`),a(`y`),j(xp(ah),e.start,n.start)(`direction`),Array.isArray(n.start?.columnIds)&&(e.start.columnIds=n.start?.columnIds.filter(w)),c(`tableId`),s(`x`),s(`y`),j(xp(ah),e.end,n.end)(`direction`),Array.isArray(n.end?.columnIds)&&(e.end.columnIds=n.end?.columnIds.filter(w)),t.relationships.push(e)}return t}var lh={ASC:`ASC`,DESC:`DESC`},uh=Object.values(lh),dh=()=>({tables:[],indexes:[]}),fh=()=>({id:``,name:``,comment:``,columns:[],ui:{active:!1,left:200,top:100,zIndex:2,widthName:60,widthComment:60},visible:!0}),ph=()=>({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}}),mh=()=>({id:``,name:``,tableId:``,columns:[],unique:!1}),hh=()=>({id:``,orderType:lh.ASC});function gh(e){let t=dh();if(S(e))return t;if(Array.isArray(e.tables))for(let n of e.tables){let e=fh(),r=j(w,e,n),i=j(oe,e,n),a=j(C,e.ui,n.ui),o=j(oe,e.ui,n.ui),s=j(w,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=ph(),r=j(w,n,t),i=j(C,n.ui,t.ui),a=j(oe,n.ui,t.ui),o=j(oe,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=mh(),r=j(w,e,n),i=j(oe,e,n);if(r(`id`),r(`name`),r(`tableId`),i(`unique`),Array.isArray(n.columns))for(let t of n.columns){let n=hh();j(w,n,t)(`id`),j(xp(uh),n,t)(`orderType`),e.columns.push(n)}t.indexes.push(e)}return t}function _h(e){let t=e;return{canvas:Xm(t.canvas),table:gh(t.table),relationship:ch(t.relationship),memo:$m(t.memo)}}var vh=(e,t)=>(e&511)*2**32+t;function yh({now:e=()=>Date.now(),random:t=e=>crypto.getRandomValues(e)}={}){let n=-1,r=0;return()=>{let[i,a,o]=t(/* @__PURE__ */ new Uint32Array(3)),s=e();s>n?(n=s,r=vh(i,a)):r++;let c=/* @__PURE__ */ new Uint8Array(16),l=new DataView(c.buffer);return l.setUint16(0,Math.floor(n/2**32)),l.setUint32(2,n%2**32),l.setUint16(6,28672+Math.floor(r/2**30)),l.setUint32(8,2147483648+r%2**30),l.setUint32(12,o),c}}var bh=yh();function xh(e){if(e.length!==16)throw RangeError(`A UUID is 16 bytes, not ${e.length}`);let t=0n;for(let n of e)t=t<<8n|BigInt(n);return t.toString(36).padStart(25,`0`)}var Sh=()=>xh(bh());function Ch(e){let t=Nm({});return wh(t.settings,e.canvas),Th(t,e.table),Eh(t,e.memo),Dh(t,e.relationship),t}function wh(e,t){e.zoomLevel=t.zoomLevel;let{originX:n,originY:r}=bp(t);e.originX=n,e.originY=r,e.databaseName=t.databaseName,e.canvasType=M.CanvasType.ERD,e.show=Object.keys(t.show).reduce((e,n)=>Cp(t.show,n,!1)?e|Cp(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:Cp(M.Language,t.language,M.Language.GraphQL),e.tableNameCase=Cp(M.NameCase,t.tableCase,M.NameCase.pascalCase),e.columnNameCase=Cp(M.NameCase,t.columnCase,M.NameCase.camelCase),e.bracketType=Cp(M.BracketType,t.bracketType,M.BracketType.none),e.relationshipDataTypeSync=t.setting.relationshipDataTypeSync;let i=t.setting.columnOrder.map(e=>M.ColumnType[e]);ie(M.ColumnTypeList,i).length===0&&(e.columnOrder=i),e.lockedValues=_m(e)}function Th(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=Dm();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=km();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)=>Cp(n.option,t,!1)?e|Cp(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=Dp();n.id=t.id,n.name=t.name,n.tableId=t.tableId,n.unique=t.unique;for(let r of t.columns){let i=Sh(),a=jp();n.indexColumnIds.push(i),n.seqIndexColumnIds.push(i),a.id=i,a.indexId=t.id,a.columnId=r.id,a.orderType=Cp(M.OrderType,r.orderType,M.OrderType.ASC),e.collections.indexColumnEntities[a.id]=a}e.collections.indexEntities[n.id]=n}}function Eh(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=Np();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 Dh(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=Up();n.id=t.id,n.identification=t.identification,n.relationshipType=Cp(M.RelationshipType,t.relationshipType,M.RelationshipType.ZeroN),n.startRelationshipType=Cp(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=Cp(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=Cp(M.Direction,t.end.direction,M.Direction.bottom),e.collections.relationshipEntities[n.id]=n}}function Oh(e){let{lockedValues:t,lockSettings:n,ddlScripts:r,...i}=e,a={...i,lockSettings:n,...r&&(r.before!==``||r.after!==``)?{ddlScripts:{before:r.before,after:r.after}}:{}};return cm.forEach(e=>{t&&Gp(n,e)&&Object.assign(a,ge(t,lm[e]))}),a}function kh(e){let t=JSON.parse(e);if(Reflect.get(t,`version`)===`3.0.0`)return Nm(t);let n=Ch(_h(t));return Em(n.settings),n}function Ah(e){let t=ge(e,[`$schema`,`version`,`settings`,`doc`,`collections`]);return JSON.stringify({...t,settings:Oh(t.settings),...jh(t)},null,2)}function jh({doc:e,collections:t}){let n=(e.tableGroupIds?.length??0)!==0||Object.keys(t.tableGroupEntities??{}).length!==0,r=pe(t.tableEntities??{},e=>e.groupId?e:he(e,[`groupId`]));return n?{doc:e,collections:{...t,tableEntities:r}}:{doc:he(e,[`tableGroupIds`]),collections:{...he(t,[`tableGroupEntities`]),tableEntities:r}}}function Mh(e){return[e,-1,-1,{}]}function Nh(e,t,n){return e[t]||(e[t]=Mh(n),e[t])}function Ph(e,t,n,r,i){let a=Nh(e,n,r),o=a[1],s=a[2];o<t&&(a[1]=t),s<t&&i()}function Fh(e,t,n,r,i){let a=Nh(e,n,r),o=a[2],s=a[1];o<t&&(a[2]=t),s<=t&&i()}function Ih(e,t,n,r,i,a){let o=Nh(e,n,r);(o[3][i]??-1)<=t&&(o[3][i]=t,a())}function Lh(e){"@babel/helpers - typeof";return Lh=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},Lh(e)}function Rh(e,t){if(Lh(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(Lh(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function zh(e){var t=Rh(e,`string`);return Lh(t)==`symbol`?t:t+``}function Bh(e,t,n){return(t=zh(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Vh=class{constructor(e){Bh(this,`collections`,void 0),this.collections=e}collection(e){return new Hh(this.collections[e],e)}},Hh=class{constructor(e,t){Bh(this,`collection`,void 0),Bh(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),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 Ph(e,t,n,this.collectionKey,r),this}removeOperator(e,t,n,r){return Fh(e,t,n,this.collectionKey,r),this}replaceOperator(e,t,n,r,i){return Ih(e,t,n,this.collectionKey,r,i),this}},N=e=>new Vh(e);const Uh=M.CanvasType,Wh=M.CanvasTypeList,P=M.Show,F=M.ColumnType,Gh=M.ColumnTypeList,I=M.Database,Kh=M.DatabaseList;M.Language;const qh=M.LanguageList;M.NameCase;const Jh=M.NameCaseList,Yh=M.BracketType,Xh=M.BracketTypeList,Zh=M.RelationshipType;M.RelationshipTypeList;const Qh=M.StartRelationshipType;M.StartRelationshipTypeList;const $h=M.ReferentialAction;M.ReferentialActionList;const L=M.Direction;M.DirectionList;const R=M.ColumnOption,z=M.ColumnUIKey,eg=M.OrderType;M.OrderTypeList;const tg=M.LockSettingType,ng=M.LockSettingTypeList,rg=M.LockSettingFields,ig=M.CANVAS_SIZE_MAX,ag=M.CANVAS_SIZE_MIN,og=M.CANVAS_ZOOM_MAX,sg=M.CANVAS_ZOOM_MIN;M.DDLScriptPosition;const cg=M.DDLScriptPositionList;Yh.none,Yh.backtick,Yh.doubleQuote,Yh.singleQuote;const lg={[$h.noAction]:`NO ACTION`,[$h.cascade]:`CASCADE`,[$h.setNull]:`SET NULL`,[$h.setDefault]:`SET DEFAULT`,[$h.restrict]:`RESTRICT`},B={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`,editTableGroup:`editor.editTableGroup`,editTableGroupEnd:`editor.editTableGroupEnd`,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`,changeDrawTableGroup:`editor.changeDrawTableGroup`,changeZenMode:`editor.changeZenMode`,dragstartColumn:`editor.dragstartColumn`,dragendColumn:`editor.dragendColumn`,sharedMouseTracker:`editor.sharedMouseTracker`,sharedFocusTracker:`editor.sharedFocusTracker`,sharedSelectionTracker:`editor.sharedSelectionTracker`,sharedDragSelectTracker:`editor.sharedDragSelectTracker`,dragSelectRect:`editor.dragSelectRect`,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`},ug=1200;function V(e){let t=new Set(e);return e=>t.has(e)}const dg={table:`table`,memo:`memo`,tableGroup:`tableGroup`},fg={nameOnly:`nameOnly`,keysOnly:`keysOnly`,allFields:`allFields`},pg={flow:`flow`},mg={graph:`graph`,flow:`flow`},H={tableName:`tableName`,tableComment:`tableComment`,columnName:`columnName`,columnDataType:`columnDataType`,columnNotNull:`columnNotNull`,columnUnique:`columnUnique`,columnAutoIncrement:`columnAutoIncrement`,columnDefault:`columnDefault`,columnComment:`columnComment`},hg={ArrowUp:`ArrowUp`,ArrowRight:`ArrowRight`,ArrowDown:`ArrowDown`,ArrowLeft:`ArrowLeft`,Tab:`Tab`};V(Object.values(hg));const gg=()=>({id:Sh(),selectedMap:{},hasUndo:!1,hasRedo:!1,viewport:{width:ug,height:675},scrollPullPending:!1,focusTable:null,editMemoId:null,editTableGroupId:null,memoScrollTopMap:{},drawRelationship:null,hoverColumnMap:{},hoverRelationshipMap:{},openMap:{},handTool:!1,drawTableGroup:!1,zenMode:!1,draggableColumn:null,draggingColumnMap:{},sharedMouseTrackerMap:{},sharedFocusTrackerMap:{},sharedSelectionTrackerMap:{},sharedDragSelectTrackerMap:{},dragSelect:null,views:{flow:null},visualizationMode:mg.graph,lastCanvasType:Uh.ERD});function U(e,t){return(e&t)===t}const _g=(e,t)=>{Object.entries(e.editor.selectedMap).forEach(([n,r])=>{r===t&&Reflect.deleteProperty(e.editor.selectedMap,n)})};function vg(e){_g(e,dg.tableGroup),e.editor.drawTableGroup=!1,e.editor.editTableGroupId=null}function yg(e){_g(e,dg.memo),e.editor.editMemoId=null}function bg(e){let{show:t}=e.settings;U(t,P.hideTableGroup)&&vg(e),U(t,P.hideMemo)&&yg(e)}function xg(e){return 6.25*Math.sqrt(Math.max(e,0))}function Sg(e){return e>=0?e/2:xg(-e)}function Cg(e,t,n){let r=Sg((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 wg(e,t,n,r){return[Cg(e,t,n),Cg(n,r,e)]}function Tg(e,t,n,r,i=24){let[a,o]=wg(e,t,n,r);return Eg(e,a,o,n,i)}function Eg(e,t,n,r,i){let a=Math.max(1,Math.floor(i)),o=[{x:e.x,y:e.y}];for(let i=1;i<=a;i++){let s=i/a;o.push({x:Dg(e.x,t.x,n.x,r.x,s),y:Dg(e.y,t.y,n.y,r.y,s)})}return o}function Dg(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}function Og(e,t){return Math.max(Math.abs(t.x-e.x),Math.abs(t.y-e.y))}function kg(e,t){return 1.2*Og(e,t)}function Ag(e,t){return 2.45*Og(e,t)}function jg(e,t,n,r,i){let a=1.25*i;return Eg(e,{x:e.x+t.x*a,y:e.y+t.y*a},{x:n.x+r.x*a,y:n.y+r.y*a},n,48)}const W={left:`left`,right:`right`,top:`top`,bottom:`bottom`},Mg=Object.values(W);V([W.top,W.bottom,W.left,W.right]);const Ng=[0,0];function Pg({tableId:e,x:t,y:n,direction:r}){return{tableId:e,x:t,y:n,direction:r}}const Fg=()=>({epoch:0,stubSlots:/* @__PURE__ */ new WeakMap,routes:/* @__PURE__ */ new WeakMap,anchors:/* @__PURE__ */ new WeakMap}),Ig={document:Fg(),flow:Fg()},Lg={flow:/* @__PURE__ */ new WeakMap};function Rg(e,t){let n=Lg[t],r=n.get(e);return r||(r=no({version:0}),n.set(e,r)),r}function zg(e,t){return Rg(e,t).version}function Bg(e,t){Rg(e,t).version+=1}function Vg(e,t=`document`){let n=Ig[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)&&Bg(r,t)}}const Hg=(e,t)=>e[0]===t[0]&&e[1]===t[1],Ug=(e,t)=>e.x===t.x&&e.y===t.y&&e.direction===t.direction,Wg=(e,t)=>e.length===t.length&&e.every((e,n)=>e.x===t[n].x&&e.y===t[n].y);function Gg(e,t,n=`document`){let r=Ig[n];n!==`document`&&!Hg(r.stubSlots.get(e)??Ng,t)&&Bg(e,n),r.stubSlots.set(e,t)}function Kg(e,t=`document`){return t!==`document`&&zg(e,t),Ig[t].stubSlots.get(e)??Ng}function qg(e,t,n=`document`){let r=Ig[n];if(n!==`document`){let i=r.routes.get(e);(!i||!Wg(i.points,t))&&Bg(e,n)}r.routes.set(e,{points:t,epoch:r.epoch})}function Jg(e,t=`document`){return t!==`document`&&zg(e,t),Ig[t].routes.get(e)?.points}function Yg(e=`document`){Ig[e].epoch+=1}function Xg(e,t=`document`){return t===`document`?e:(zg(e,t),Ig[t].anchors.get(e)??e)}function Zg(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}=Ig[r],a=i.get(e)??e;(!Ug(a.start,t)||!Ug(a.end,n))&&Bg(e,r),i.set(e,{start:Pg(t),end:Pg(n)})}function Qg(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 $g({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 e_(e=`document`){return e===`document`?2:1}function t_(e,t=2,n=`document`){let r=Ig[n],{start:i,end:a}=Xg(e,n),o=r.routes.get(e),s=o&&o.epoch===r.epoch?o.points:null;if(i.tableId===a.tableId)return $g(Qg([i,a]),21+t+Ag(i,a));let c=s?0:48;if(n!==`document`){let e=Qg([...s?.length?[s[0],s[s.length-1]]:[],i,a]),n=xg(Math.max(e.width,e.height)+2*c);return $g(e,21+t+c+n)}return $g(Qg(s?[...s,i,a]:[i,a]),21+t+c)}const n_={Databricks:`Databricks`,MariaDB:`MariaDB`,MSSQL:`MSSQL`,MySQL:`MySQL`,Oracle:`Oracle`,PostgreSQL:`PostgreSQL`,Snowflake:`Snowflake`,SQLite:`SQLite`},r_=Object.values(n_),i_={[n_.Databricks]:I.Databricks,[n_.MariaDB]:I.MariaDB,[n_.MSSQL]:I.MSSQL,[n_.MySQL]:I.MySQL,[n_.Oracle]:I.Oracle,[n_.PostgreSQL]:I.PostgreSQL,[n_.Snowflake]:I.Snowflake,[n_.SQLite]:I.SQLite},a_=/[^0-9]/g,o_=e=>e.replace(a_,``),s_=e=>ne(e,ag,ig),c_=e=>ne(e,sg,og),l_=e=>ne(e,60,200);function u_(e){let t=w(e)?Number(o_(e)):e;return s_(t)}function d_(e){return We(c_(e),2)}const f_=V(Kh),p_=V(Jh),m_=V(Xh),h_=V(qh),g_=V(Gh);V(r_);const __=V(Wh);function G(e){return Math.max(e,60)}function v_(e){return w(e)?e.trim():``}function y_(e){return e<=.7}const b_=e=>e.settings.canvasType===Uh.visualization&&e.editor.visualizationMode===mg.flow,x_=e=>b_(e)?e.editor.views.flow:null,S_=(e,t)=>e.editor.views[t]!==null&&b_(e),C_=(e,t)=>t===`document`?null:e.editor.views[t];function w_(e,t=[]){let n=[...t];return{kind:e,showMode:n.length?fg.keysOnly:fg.nameOnly,positions:{},originX:0,originY:0,zoomLevel:1,centerIds:n}}function T_({collections:e},t){Vg(N(e).collection(`relationshipEntities`).selectAll(),t)}const E_=(e,t)=>t?e.editor.views[t]:x_(e);function D_(e){e.views.flow=null}const O_=k(B.viewOpen),k_=(e,{payload:{kind:t,centerIds:n}})=>{T_(e,t),e.editor.views[t]=w_(t,n)},A_=k(B.viewClose),j_=(e,{payload:{kind:t}})=>{T_(e,t),e.editor.views[t]=null},M_=k(B.viewScrollTo),N_=(e,{payload:{originX:t,originY:n,kind:r}})=>{let i=E_(e,r);i&&(i.originX=We(t,4),i.originY=We(n,4))},P_=k(B.viewStreamScrollTo),F_=(e,{payload:{movementX:t,movementY:n,kind:r}})=>{let i=E_(e,r);i&&(i.originX=We(i.originX+t,4),i.originY=We(i.originY+n,4))},I_=k(B.viewChangeZoomLevel),L_=(e,{payload:{value:t,kind:n}})=>{let r=E_(e,n);r&&(r.zoomLevel=d_(t))},R_=k(B.viewStreamZoomLevel),z_=(e,{payload:{value:t,kind:n}})=>{let r=E_(e,n);r&&(r.zoomLevel=d_(r.zoomLevel+t))},B_=k(B.viewMoveTable),V_=(e,{payload:{ids:t,movementX:n,movementY:r,kind:i}})=>{let a=E_(e,i);if(a)for(let e of t){let t=a.positions[e];t&&(t.x=We(t.x+n,4),t.y=We(t.y+r,4))}},H_=k(B.viewSetLayout),U_=({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}])))},W_=k(B.viewChangeShowMode),G_=(e,{payload:{value:t,kind:n}})=>{let r=E_(e,n);r&&(r.showMode=t)},K_=k(B.viewSetCenters),q_=(e,{payload:{tableIds:t,kind:n}})=>{let r=E_(e,n);r&&(r.centerIds=[...t])},J_=k(B.changeVisualizationMode),Y_=({editor:e},{payload:{value:t}})=>{e.visualizationMode=t},X_={[B.viewOpen]:k_,[B.viewClose]:j_,[B.viewScrollTo]:N_,[B.viewStreamScrollTo]:F_,[B.viewChangeZoomLevel]:L_,[B.viewStreamZoomLevel]:z_,[B.viewMoveTable]:V_,[B.viewSetLayout]:U_,[B.viewChangeShowMode]:G_,[B.viewSetCenters]:q_,[B.changeVisualizationMode]:Y_},Z_={viewOpenAction:O_,viewCloseAction:A_,viewScrollToAction:M_,viewStreamScrollToAction:P_,viewChangeZoomLevelAction:I_,viewStreamZoomLevelAction:R_,viewMoveTableAction:B_,viewSetLayoutAction:H_,viewChangeShowModeAction:W_,viewSetCentersAction:K_,changeVisualizationModeAction:J_},Q_={shared:1,changeOnly:2,following:4,drag:8};function $_(e,t){return{...re(t),tags:C(t.tags)&&Number.isInteger(t.tags)?t.tags|e:e}}function ev(e,t){return t.map(t=>$_(e,t))}(e=>(...t)=>function*(n,r){yield ev(e,sd(n,r,t))})(Q_.changeOnly);const tv=({settings:e})=>!U(e.show,P.hideMemo),nv=Object.freeze({tableIds:[],memoIds:[],relationshipIds:[],tableGroupIds:[]});function rv(e,t,n=`document`){let{x:r,y:i}=C_(e,n)?.positions[t.id]??t.ui;return{x:r,y:i}}const iv=e=>U(e,z.primaryKey)||U(e,z.foreignKey);function av(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 ov(e,t){let n=/* @__PURE__ */ new Set;return av(e,(e,r)=>{e===t.id&&r.forEach(e=>n.add(e))}),n}function sv(e,t,n=`document`){let r=C_(e,n);if(!r||r.showMode===fg.allFields)return t.columnIds;if(r.showMode===fg.nameOnly)return[];let i=ov(e,t);return N(e.collections).collection(`tableColumnEntities`).selectByIds(t.columnIds).filter(e=>iv(e.ui.keys)||i.has(e.id)).map(e=>e.id)}function cv(e,t=`document`){let{doc:n,collections:r}=e;if(t===`document`)return{tableIds:n.tableIds,memoIds:tv(e)?n.memoIds:[],relationshipIds:n.relationshipIds,tableGroupIds:n.tableGroupIds};let i=C_(e,t);if(!i)return nv;let a=N(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:[],tableGroupIds:[],relationshipIds:a.filter(({start:e,end:t})=>c.has(e.tableId)&&c.has(t.tableId)).map(e=>e.id)}}const lv=no({tableId:{}}),uv=/* @__PURE__ */ new Map;function dv(e){uv.delete(e),Reflect.deleteProperty(lv.tableId,e)}function fv(e,t,n=`document`){let r=C_(e,n),{id:i}=e.editor;if(t===null||!r){uv.get(i)?.kind===n&&dv(i);return}uv.set(i,r),lv.tableId[i]=t}function pv(e,t,n=`document`){let{id:r}=e.editor;lv.tableId[r]===t&&uv.get(r)?.kind===n&&dv(r)}const mv=no({tableId:{}}),hv=/* @__PURE__ */ new Map;function gv(e){hv.delete(e),Reflect.deleteProperty(mv.tableId,e)}function _v(e,t,n=`document`){let r=C_(e,n);if(!r)return;let{id:i}=e.editor;if((hv.get(i)===r?mv.tableId[i]:void 0)===t){gv(i);return}hv.set(i,r),mv.tableId[i]=t}function vv(e){return 9+e.ui.width+8+1}function yv(e){return 25+e.ui.height+8+1}Object.values({create:`create`,ifNotExists:`ifNotExists`,recreate:`recreate`});const bv={none:`none`,use:`use`,createAndUse:`createAndUse`};Object.values(bv),bv.use,bv.createAndUse,I.MySQL,I.MariaDB,I.PostgreSQL,bv.createAndUse,I.Oracle,bv.use,I.MSSQL,I.SQLite,I.Snowflake,I.Databricks;function xv(e){return e.filter(({options:e})=>U(e,R.primaryKey))}I.MariaDB,I.MSSQL,I.MySQL,I.Oracle,I.PostgreSQL,I.SQLite;function Sv(e,t,n,r=1){return Cv(e,t,n,r,e=>e)}function Cv(e,t,n,r,i){let a=i(n);return n!==``&&e.some(e=>e.id!==t&&i(e.name)===a)?Cv(e,t,n.replace(/[0-9]/g,``)+r,r+1,i):n}const wv=[$h.noAction,$h.cascade,$h.setNull,$h.setDefault,$h.restrict];function Tv(...e){let t=wv.filter(t=>!e.includes(t));return{onDelete:t,onUpdate:t}}I.Databricks,$h.noAction,$h.noAction,I.MariaDB,Tv($h.setDefault),I.MSSQL,Tv($h.restrict),I.MySQL,Tv($h.setDefault),I.Oracle,$h.cascade,$h.setNull,I.PostgreSQL,I.SQLite,I.Snowflake,$h.noAction,$h.noAction;const Ev=String.raw`[+-]?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?`,Dv=`(?:current_timestamp|now|localtime|localtimestamp)`;RegExp(`^(?:`+[Ev,String.raw`0x[\da-f]+`,String.raw`0b[01]+`,String.raw`(?:_\w+\s*|n)?'(?:[^'\\]|''|\\.)*'`,String.raw`(?:_\w+\s*|n)?"(?:[^"\\]|""|\\.)*"`,String.raw`x'[\da-f]*'`,String.raw`b'[01]*'`,String.raw`(?:date|time|timestamp)\s*'[^']*'`,`null|true|false`,String.raw`${Dv}(?:\s*\(\s*\d*\s*\))?`].join(`|`)+String.raw`)(\s+on\s+update\s.*)?$`,`is`),new RegExp(String.raw`^${Dv}\b`,`i`),RegExp(`^(?:`+[Ev,String.raw`[+-]?0x[\da-f]+`,`'(?:[^']|'')*'`,String.raw`x'[\da-f]*'`,String.raw`[a-z_][\w$]*`,`"(?:[^"]|"")*"`,"`(?:[^`]|``)*`",String.raw`\[[^\]]*\]`].join(`|`)+`)$`,`i`),I.MariaDB,I.MySQL,I.PostgreSQL,I.SQLite;let Ov=0;function kv(){Ov++}const Av=/* @__PURE__ */ new WeakMap;function jv({doc:e,collections:t},n){let{indexIds:r}=e,i=t.indexEntities;if(!r.length)return[];let a=Av.get(r);if(a?.generation===Ov&&a.entities===i)return a.byTable.get(n)??[];let o=/* @__PURE__ */ new Map;for(let e of N(t).collection(`indexEntities`).selectByIds(r)){let t=o.get(e.tableId);t?t.push(e.id):o.set(e.tableId,[e.id])}return Av.set(r,{generation:Ov,entities:i,byTable:o}),o.get(n)??[]}function Mv(e,t){let n=new Set(t.columnIds),r=N(e.collections).collection(`indexColumnEntities`);return N(e.collections).collection(`indexEntities`).selectByIds(jv(e,t.id)).filter(e=>e.unique).map(e=>({indexId:e.id,columnIds:r.selectByIds(e.indexColumnIds).map(e=>e.columnId).filter(e=>n.has(e))}))}function Nv(e,t){let n=new Map(t.columnIds.map((e,t)=>[e,t]));return Mv(e,t).filter(e=>e.columnIds.length>1).sort((e,t)=>Pv(e,t,n))}function Pv(e,t,n){let r=Math.min(e.columnIds.length,t.columnIds.length);for(let i=0;i<r;i++){let r=n.get(e.columnIds[i])-n.get(t.columnIds[i]);if(r)return r}return e.columnIds.length===t.columnIds.length?e.indexId<t.indexId?-1:1:e.columnIds.length-t.columnIds.length}function Fv(e,t){let n={};return Nv(e,t).forEach((e,t)=>{e.columnIds.forEach((e,r)=>{(n[e]??=[]).push(`AK${t+1}.${r+1}`)})}),Object.fromEntries(Object.entries(n).map(([e,t])=>[e,t.join(`,`)]))}let Iv=0;const Lv=no({generation:0});function Rv(){return Iv}function zv(){return Lv.generation}function Bv(){Iv++,Lv.generation=Iv}function Vv(e,t){return U(t.settings.show,P.columnAlternateKey)?Object.values(Fv(t,e)).reduce((e,t)=>Math.max(e,Math.ceil(t.length*7.32)),0):0}function Hv(e,t){let{settings:{show:n,maxWidthComment:r},collections:i}=t,a=20+e.ui.widthName+8;if(U(n,P.tableComment)){let t=r===-1?e.ui.widthComment:r<e.ui.widthComment?r:e.ui.widthComment;a+=t+8}a+=28;let o=Vv(e,t),s=Wv(n)+(o?o+8:0);a<s&&(a=s);let c=Kv(N(i).collection(`tableColumnEntities`).selectByIds(e.columnIds),n,r,o);return a<c.width&&(a=c.width),{...c,width:9+a+8+1}}const Uv=[{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 Wv(e){return Uv.reduce((t,{key:n,width:r})=>U(e,n)?t+r+8:t,100)}function Gv(){return{width:0,alternateKey:0,name:0,comment:0,dataType:0,default:0,notNull:0,autoIncrement:0,unique:0}}function Kv(e,t,n,r){let i=Gv();i.alternateKey=r;for(let r of e)i.name<r.ui.widthName&&(i.name=r.ui.widthName),U(t,P.columnComment)&&i.comment<r.ui.widthComment&&(i.comment=n===-1?r.ui.widthComment:n<r.ui.widthComment?n:r.ui.widthComment),U(t,P.columnDataType)&&i.dataType<r.ui.widthDataType&&(i.dataType=r.ui.widthDataType),U(t,P.columnDefault)&&i.default<r.ui.widthDefault&&(i.default=r.ui.widthDefault);return U(t,P.columnNotNull)&&(i.notNull=35),U(t,P.columnAutoIncrement)&&(i.autoIncrement=15),U(t,P.columnUnique)&&(i.unique=22),i.width=Object.entries(i).reduce((e,[t,n])=>t===`width`||n===0?e:e+n+8,32),i}function qv(e,t,n){let r=Gv(),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(Yv(e),a,154);return i.length&&(r.name+=o-a),r.width=18+o,r}function Jv(e){return Math.ceil(e*1.1666666666666667*1.04)}function Yv(e){return 20+Jv(e.ui.widthName)+8+28}function Xv(e=`document`){return e===`document`?20:24}function Zv(e=`document`){return e===`document`?24:32}function Qv(e,t=e.columnIds.length,n=`document`){return 9+Xv(n)+t*Zv(n)+1}const $v=(e,t)=>({widthName:G(t(e.name)),widthComment:G(t(e.comment))}),ey=(e,t)=>({widthName:G(t(e.name)),widthDataType:G(t(e.dataType)),widthDefault:G(t(e.default)),widthComment:G(t(e.comment))});function ty({doc:{tableIds:e},collections:t},{toWidth:n}){Bv();let r=N(t).collection(`tableEntities`).selectByIds(e),i=N(t).collection(`tableColumnEntities`);for(let e of r){Object.assign(e.ui,$v(e,n));let t=i.selectByIds(e.columnIds);for(let e of t)Object.assign(e.ui,ey(e,n))}}function ny(e,t,n){let r=N(t.collections).collection(`tableColumnEntities`).selectByIds(e.columnIds).map(e=>({...e,ui:{...e.ui,...ey(e,n)}})),i={...e,ui:{...e.ui,...$v(e,n)}};return{width:Hv(i,{...t,collections:{...t.collections,tableColumnEntities:Object.fromEntries(r.map(e=>[e.id,e]))}}).width,height:Qv(i)}}const ry={document:/* @__PURE__ */ new WeakMap,flow:/* @__PURE__ */ new WeakMap};function iy(e,t,n){let r=ry[n],i=n===`document`?ay(e,t):oy(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 ay(e,t){let{settings:n}=e,r=n.show&~(P.hideReferentialAction|P.hideTableGroup|P.hideMemo),i=`${Rv()}|${r}|${n.maxWidthComment}|${t.ui.widthName}|${t.ui.widthComment}|${t.columnIds.length}`;return{key:i,measure:()=>({key:i,width:Hv(t,e).width,height:Qv(t)})}}function oy(e,t,n){let r=C_(e,n)?.showMode??fg.allFields,i=sv(e,t,n),a=`${Rv()}|${t.ui.widthName}|${t.columnIds.length}|${r}|${i.length}`;return{key:a,measure:()=>({key:a,width:qv(t,e,i).width,height:Qv(t,i.length,n)})}}function sy(e,t,n=`document`){let{width:r,height:i}=iy(e,t,n),{x:a,y:o}=rv(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 cy(e,t){return Math.sqrt((e.x-t.x)**2+(e.y-t.y)**2)}function ly(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 uy(e,t,n=`document`){let{width:r,height:i}=sy(e,t,n),{x:a,y:o}=rv(e,t,n);return{x:a,y:o,width:r,height:i}}function dy(e,t,n=`document`){return n===`document`?Hv(t,e):qv(t,e,sv(e,t,n))}function fy(e,t,n,r=`document`){let{x:i,y:a,width:o}=uy(e,t,r),s=Zv(r);return{x:i+9,y:a+9+Xv(r)+n*s,width:o-18,height:s}}function py(e,t,n=`document`){let{x:r,y:i,width:a}=uy(e,t,n);return{x:r,y:i,width:a,height:9+Xv(n)}}function my(e){let{x:t,y:n}=e.ui;return{x:t,y:n,width:vv(e),height:yv(e)}}const hy={red:`#ef4444`,orange:`#f97316`,amber:`#f59e0b`,yellow:`#eab308`,lime:`#84cc16`,green:`#22c55e`,emerald:`#10b981`,teal:`#14b8a6`,cyan:`#06b6d4`,sky:`#0ea5e9`,blue:`#3b82f6`,indigo:`#6366f1`,violet:`#8b5cf6`,purple:`#a855f7`,fuchsia:`#d946ef`,pink:`#ec4899`,rose:`#f43f5e`,gray:`#6b7280`},gy=/^#(?:[0-9a-f]{3}|[0-9a-f]{6})$/i,_y=/^#(?:[0-9a-f]{3}|[0-9a-f]{6}|[0-9a-f]{8})$/i,vy=/^#(?:[0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/i,yy=/^(rgba?|hsla?)\(([^()]*)\)$/i,by=/\s*[,/]\s*|\s+/,xy=/^[+-]?(?:\d+\.?\d*|\.\d+)(?:e[+-]?\d+)?$/i,Sy=/deg$/i,Cy=/%$/,wy=new Map(Object.entries(hy));function Ty(e){return gy.test(e)?e:``}function Ey(e){return wy.get(e.toLowerCase())??(_y.test(e)?e:``)}function Dy(e){let t=Oy(e.trim());return t?Fy(t):null}function Oy(e){if(vy.test(e))return ky(e.slice(1));let t=yy.exec(e);if(!t)return null;let n=t[2].trim().split(by);return n.length<3?null:t[1].toLowerCase().startsWith(`rgb`)?Ay(n):jy(n)}function ky(e){let t=e.length<=4?[...e].map(e=>`${e}${e}`).join(``):e;return[0,2,4].map(e=>parseInt(t.slice(e,e+2),16))}function Ay(e){let t=[];for(let n of e.slice(0,3)){let e=n.endsWith(`%`),r=Ny(e?n.slice(0,-1):n);if(r===null)return null;t.push(Py(e?r*2.55:r))}return t}function jy(e){let t=Ny(e[0].replace(Sy,``)),n=Ny(e[1].replace(Cy,``)),r=Ny(e[2].replace(Cy,``));if(t===null||n===null||r===null||!Number.isFinite(t))return null;let i=(t%360+360)%360,a=Math.min(Math.max(n,0),100)/100,o=Math.min(Math.max(r,0),100)/100,s=a*Math.min(o,1-o),c=e=>{let t=(e+i/30)%12;return o-s*Math.max(-1,Math.min(t-3,9-t,1))};return[c(0),c(8),c(4)].map(e=>Py(e*255))}function My(e){let t=e/255;return t<=.04045?t/12.92:((t+.055)/1.055)**2.4}function Ny(e){return xy.test(e)?Number(e):null}function Py(e){return Math.round(Math.min(Math.max(e,0),255))}function Fy(e){return`#${e.map(e=>e.toString(16).padStart(2,`0`)).join(``)}`}function Iy(e){let t=Dy(e);if(!t)return null;let[n,r,i]=[1,3,5].map(e=>My(parseInt(t.slice(e,e+2),16)));return .2126*n+.7152*r+.0722*i}function Ly(e,t){return(Math.max(e,t)+.05)/(Math.min(e,t)+.05)}function Ry(e){let t=Iy(e);if(t===null)return null;let n=Ly(t,1);return Ly(t,0)-n>4?`#000000`:`#ffffff`}function zy({doc:e},t){return t.groupId&&e.tableGroupIds.includes(t.groupId)?t.groupId:``}function By(e,t){let{doc:n,collections:r}=e;return!t||!n.tableGroupIds.includes(t)?[]:N(r).collection(`tableEntities`).selectByIds(n.tableIds).filter(e=>e.groupId===t)}function Vy(e,t){return By(e,t).map(({id:e})=>e)}function Hy(e,t=24){let n=t+28;return{x:e.x-t,y:e.y-n,width:e.width+t*2,height:e.height+t+n}}function Uy(e,t,{excludeTableIds:n=[],members:r=By(e,t.id)}={}){let{x:i,y:a,width:o,height:s}=t.ui,c=new Set(n);return r.filter(e=>!c.has(e.id)).reduce((t,n)=>ly(t,Hy(uy(e,n))),{x:i,y:a,width:o,height:s})}function Wy(e){return new Map(e.map(({id:e,ui:{x:t,y:n,width:r,height:i}})=>[e,{x:t,y:n,width:r,height:i}]))}function Gy(e,t,n){let r=t.groupId?e.get(t.groupId):void 0;r&&e.set(t.groupId,ly(r,Hy(n)))}function Ky(e,{excludeTableIds:t=[]}={}){let{doc:n,collections:r}=e,i=Wy(N(r).collection(`tableGroupEntities`).selectByIds(n.tableGroupIds));if(!i.size)return i;let a=new Set(t);return N(r).collection(`tableEntities`).selectByIds(n.tableIds).forEach(t=>{a.has(t.id)||Gy(i,t,uy(e,t))}),i}function qy(e){let{doc:t,collections:n}=e,r=new Set(t.tableGroupIds),i=/* @__PURE__ */ new Map;return r.size&&N(n).collection(`tableEntities`).selectByIds(t.tableIds).forEach(e=>{if(!r.has(e.groupId))return;let t=i.get(e.groupId);t?t.push(e):i.set(e.groupId,[e])}),i}function Jy(e,t){let{doc:n,collections:r}=e,i=N(r).collection(`tableEntities`).selectByIds(t.filter(V(n.tableIds))).map(t=>uy(e,t));return i.length?Hy(i.reduce(ly)):null}function Yy(e,t){let{x:n,y:r,width:i,height:a}=uy(e,t);return{x:n+i/2,y:r+a/2}}function Xy({x:e,y:t},n){return n.x<=e&&e<=n.x+n.width&&n.y<=t&&t<=n.y+n.height}function Zy(e,t,{boxes:n,...r}={}){if(!t.length)return[];let{doc:i,collections:a}=e,o=n??Ky(e,r),s=N(a).collection(`tableGroupEntities`).selectByIds(i.tableGroupIds).flatMap(e=>{let t=o.get(e.id);return t?[{group:e,rect:t}]:[]});return t.map(e=>s.reduce((t,{group:n,rect:r})=>(!t||t.ui.zIndex<=n.ui.zIndex)&&Xy(e,r)?n:t,null))}const Qy=e=>Math.max(0,...e.map(({ui:e})=>e.zIndex))+1,$y=({settings:e})=>!U(e.show,P.hideTableGroup);function eb(e){let t=Dy(e.color),n=t&&Ry(t);return t&&n?{background:t,foreground:n}:null}function tb(e,t,n=`document`){return n!==`document`||!$y(e)?null:nb(e,zy(e,t),n)}function nb(e,t,n=`document`){if(!t||n!==`document`||!$y(e))return null;let r=e.collections.tableGroupEntities[t];return r?eb(r):null}function rb(e){return ob(e,[])}function ib(e,t=`document`){return ob(e,[],t)}function ab(e,t=[],n=`document`,r=[]){let{collections:i,doc:a}=e,{tableIds:o,memoIds:s,tableGroupIds:c}=n===`document`?a:cv(e,n),l=tv(e)?s:[],u=new Map(t.map(e=>[e.id,e])),d=c.length&&$y(e)?N(i).collection(`tableGroupEntities`).selectByIds(c):[],f=Wy(d),p=new Map(r.map(({id:e,...t})=>[e,t])),m=N(i).collection(`tableEntities`).selectByIds(o),h=N(i).collection(`memoEntities`).selectByIds(l);return[...m.map(t=>{let r=uy(e,t,n),i=u.get(t.id);return i?{...r,x:i.x,y:i.y}:(Gy(f,t,r),r)}),...h.map(my),...d.map(e=>p.get(e.id)??f.get(e.id))]}function ob(e,t,n=`document`,r=[]){let i=ab(e,t,n,r);return i.length?i.reduce(ly):null}function sb(e){return x_(e)??e.settings}function cb(e,t=`document`){return C_(e,t)??e.settings}function lb(e,t){return t?cb(e,t):sb(e)}function ub({originX:e,originY:t}){return{x:e,y:t}}const db=e=>e>0?e:1;function fb(e,t){let n=ub(e);return{x:n.x+t.x*e.zoomLevel,y:n.y+t.y*e.zoomLevel}}function pb(e,t){let n=db(e.zoomLevel),r=ub({...e,zoomLevel:n});return{x:(t.x-r.x)/n,y:(t.y-r.y)/n}}function mb(e,t,n){return{x:n.x-t.x*e,y:n.y-t.y*e}}function hb(e){let{viewportWidth:t,viewportHeight:n}=e,r=db(e.zoomLevel),i=ub({...e,zoomLevel:r}),a=(t>0?t:ug)/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 gb(e,t=`document`){let{originX:n,originY:r,zoomLevel:i}=cb(e,t),{viewport:a}=e.editor;return hb({originX:n,originY:r,zoomLevel:i,viewportWidth:a.width,viewportHeight:a.height})}function _b(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 vb(e,t,n,r=`document`){return _b(e,uy(t,n,r))}function yb(e,t,n,r=`document`){return _b(e,t_(t,n,r))}const bb=no({frozen:{}}),xb=(e,t)=>`${e.editor.id}:${t}`,Sb=(e,t)=>bb.frozen[xb(e,t)]??null;function Cb(e,t=`document`){let{originX:n,originY:r}=cb(e,t);bb.frozen[xb(e,t)]={content:ib(e,t),origin:{x:n,y:r}}}function wb(e,t=`document`){Reflect.deleteProperty(bb.frozen,xb(e,t))}function Tb(e,t=`document`){let n=Sb(e,t);return n?n.content:ib(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`,changeColumnOrder:`settings.changeColumnOrder`,changeMaxWidthComment:`settings.changeMaxWidthComment`,changeLockSettings:`settings.changeLockSettings`,changeIgnoreSaveSettings:`settings.changeIgnoreSaveSettings`,changeDDLScript:`settings.changeDDLScript`},Eb=e=>e+0;function Db(e,t,n,r){let i=-t*r,a=n-e*r;return{min:Eb(Math.min(i,a)),max:Eb(Math.max(i,a))}}function Ob(e,t,n,r,i){let{min:a,max:o}=Db(t,n,r,i);if(a<e&&e<o)return e;let s=Math.min(r,(n-t)*i);return Eb(Math.min(Math.max(e,a+s),o-s))}const kb=k(K.changeDatabaseName),Ab=({settings:e,lww:t},{payload:{value:n},version:r},{clock:i})=>{Ih(t,r??i.getVersion(),`settings.databaseName`,`settings`,`databaseName`,()=>{e.databaseName=n})},jb=k(K.changeZoomLevel),Mb=({settings:e},{payload:{value:t},tags:n})=>{(S(n)||!U(n,Q_.following))&&(e.zoomLevel=d_(t))},Nb=k(K.streamZoomLevel),Pb=({settings:e},{payload:{value:t},tags:n})=>{(S(n)||!U(n,Q_.following))&&(e.zoomLevel=d_(e.zoomLevel+t))},Fb=({width:e,height:t})=>e>0&&t>0;function Ib(e){let{settings:{originX:t,originY:n,zoomLevel:r},editor:{viewport:i}}=e,a=Tb(e);return!a||!Fb(i)?{x:t,y:n}:{x:Ob(t,a.x,a.x+a.width,i.width,r),y:Ob(n,a.y,a.y+a.height,i.height,r)}}const Lb=k(K.scrollTo),Rb=({settings:e},{payload:{originX:t,originY:n},tags:r})=>{(S(r)||!U(r,Q_.following))&&(e.originX=We(t,4),e.originY=We(n,4))},zb=k(K.streamScrollTo),Bb=({settings:e},{payload:{movementX:t,movementY:n},tags:r})=>{(S(r)||!U(r,Q_.following))&&(e.originX=We(e.originX+t,4),e.originY=We(e.originY+n,4))},Vb=k(K.changeShow),Hb=(e,{payload:{show:t,value:n}})=>{let{settings:r}=e;r.show=n?r.show|t:r.show&~t,n&&U(t,P.hideTableGroup)&&vg(e),n&&U(t,P.hideMemo)&&yg(e)},Ub=k(K.changeDatabase),Wb=({settings:e},{payload:{value:t}})=>{f_(t)&&(e.database=t)};function Gb({settings:e,editor:t}){e.canvasType!==Uh.settings&&(t.lastCanvasType=e.canvasType)}const Kb=k(K.changeCanvasType),qb=(e,{payload:{value:t},tags:n})=>{(S(n)||!U(n,Q_.following))&&(Gb(e),e.settings.canvasType=t,t!==Uh.ERD&&(e.editor.drawTableGroup=!1))};function Jb({settings:e,lww:t},n,r,i){Ih(t,n,`settings.code`,`settings`,r,()=>{e[r]=i})}const Yb=k(K.changeLanguage),Xb=(e,{payload:{value:t},version:n},{clock:r})=>{let i=n??r.getVersion();h_(t)&&Jb(e,i,`language`,t)},Zb=k(K.changeTableNameCase),Qb=(e,{payload:{value:t},version:n},{clock:r})=>{let i=n??r.getVersion();p_(t)&&Jb(e,i,`tableNameCase`,t)},$b=k(K.changeColumnNameCase),ex=(e,{payload:{value:t},version:n},{clock:r})=>{let i=n??r.getVersion();p_(t)&&Jb(e,i,`columnNameCase`,t)},tx=k(K.changeBracketType),nx=(e,{payload:{value:t},version:n},{clock:r})=>{let i=n??r.getVersion();m_(t)&&Jb(e,i,`bracketType`,t)},rx=k(K.changeRelationshipDataTypeSync),ix=({settings:e},{payload:{value:t}})=>{e.relationshipDataTypeSync=t},ax=k(K.changeColumnOrder),ox=({settings:e},{payload:{value:t,target:n}})=>{if(t===n||!g_(t)||!g_(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))},sx=k(K.changeMaxWidthComment),cx=({settings:e},{payload:{value:t}})=>{e.maxWidthComment=t===-1?t:l_(t)},lx=k(K.changeLockSettings),ux={originX:Number.isFinite,originY:Number.isFinite,zoomLevel:e=>C(e)&&c_(e)===e,canvasType:e=>__(e)&&e!==Uh.settings,language:h_,tableNameCase:p_,columnNameCase:p_,bracketType:m_},dx=tg.language|tg.tableNameCase|tg.columnNameCase|tg.bracketType,fx=(e,{payload:{lockSettingType:t,value:n,values:r},version:i},{clock:a})=>{let{settings:o,lww:s}=e,c=i??a.getVersion();ng.forEach(i=>{if(!U(t,i))return;let a=rg[i],l=ge(r,a),u=a.filter(e=>ux[e](l[e]));n&&u.length<a.length||(Ih(s,c,`settings.lockSettings`,`settings`,String(i),()=>{n?(Object.assign(o.lockedValues,l),o.lockSettings|=i):o.lockSettings&=~i}),!n&&U(dx,i)&&u.forEach(t=>Jb(e,c,t,l[t])))})},px=k(K.changeIgnoreSaveSettings),mx=()=>{},hx=k(K.changeDDLScript),gx=({settings:e,lww:t},{payload:{position:n,value:r},version:i},{clock:a})=>{cg.includes(n)&&w(r)&&Ih(t,i??a.getVersion(),`settings.ddlScripts`,`settings`,n,()=>{e.ddlScripts={...e.ddlScripts,[n]:r}})},_x=ng.reduce((e,t)=>e|t,0);function vx({settings:e,lww:t},n,r){let{lockSettings:i,lockedValues:a,...o}=e;Object.assign(e,n,{lockSettings:i&_x|n.lockSettings&~_x,lockedValues:{...a}}),ng.forEach(i=>{let a=rg[i];Ih(t,r,`settings.lockSettings`,`settings`,String(i),()=>{e.lockSettings=U(n.lockSettings,i)?e.lockSettings|i:e.lockSettings&~i,Object.assign(e.lockedValues,ge(n.lockedValues,a))}),i!==tg.viewport&&U(e.lockSettings,i)&&Object.assign(e,ge(o,a))})}const yx={[K.changeDatabaseName]:Ab,[K.changeZoomLevel]:Mb,[K.streamZoomLevel]:Pb,[K.scrollTo]:Rb,[K.streamScrollTo]:Bb,[K.changeShow]:Hb,[K.changeDatabase]:Wb,[K.changeCanvasType]:qb,[K.changeLanguage]:Xb,[K.changeTableNameCase]:Qb,[K.changeColumnNameCase]:ex,[K.changeBracketType]:nx,[K.changeRelationshipDataTypeSync]:ix,[K.changeColumnOrder]:ox,[K.changeMaxWidthComment]:cx,[K.changeLockSettings]:fx,[K.changeIgnoreSaveSettings]:mx,[K.changeDDLScript]:gx},bx={changeDatabaseNameAction:kb,changeZoomLevelAction:jb,streamZoomLevelAction:Nb,scrollToAction:Lb,streamScrollToAction:zb,changeShowAction:Vb,changeDatabaseAction:Ub,changeCanvasTypeAction:Kb,changeLanguageAction:Yb,changeTableNameCaseAction:Zb,changeColumnNameCaseAction:$b,changeBracketTypeAction:tx,changeRelationshipDataTypeSyncAction:rx,changeColumnOrderAction:ax,changeMaxWidthCommentAction:sx,changeLockSettingsAction:lx,changeIgnoreSaveSettingsAction:px,changeDDLScriptAction:hx};function xx(e,t,{end:n}){if(!t(n.tableId))return[];let r=N(e).collection(`tableEntities`).selectById(n.tableId);if(!r)return[];let i=V(r.columnIds);return N(e).collection(`tableColumnEntities`).selectByIds(n.columnIds).filter(e=>i(e.id))}function*Sx({doc:e,collections:t}){let n=V(e.tableIds),r=V(e.relationshipIds),i=N(t).collection(`relationshipEntities`).selectAll();for(let e of i)yield[e,r(e.id)?xx(t,n,e):[]]}function Cx(e){for(let[t,n]of Sx(e)){let e=n.length!==0&&n.every(e=>U(e.options,R.primaryKey));e!==t.identification&&(t.identification=e)}}function wx(e){for(let[t,n]of Sx(e)){let e=n.every(e=>U(e.options,R.notNull))?Qh.dash:Qh.ring;e!==t.startRelationshipType&&(t.startRelationshipType=e)}}function Tx({collections:e}){for(let t of N(e).collection(`tableColumnEntities`).selectAll()){let e=U(t.options,R.primaryKey);e!==U(t.ui.keys,z.primaryKey)&&(t.ui.keys=e?t.ui.keys|z.primaryKey:t.ui.keys&~z.primaryKey)}}function Ex({doc:e,collections:t}){let n=/* @__PURE__ */ new Map,r=N(t).collection(`relationshipEntities`).selectByIds(e.relationshipIds);for(let{end:e}of r){let t=n.get(e.tableId)??/* @__PURE__ */ new Set;e.columnIds.forEach(e=>t.add(e)),n.set(e.tableId,t)}let i=/* @__PURE__ */ new Map;for(let n of N(t).collection(`tableEntities`).selectByIds(e.tableIds))n.columnIds.forEach(e=>i.set(e,n.id));for(let e of N(t).collection(`tableColumnEntities`).selectAll()){let t=i.get(e.id),r=t!==void 0&&(n.get(t)?.has(e.id)??!1);r!==U(e.ui.keys,z.foreignKey)&&(e.ui.keys=r?e.ui.keys|z.foreignKey:e.ui.keys&~z.foreignKey)}}const Dx=/* @__PURE__ */ new WeakMap,Ox=()=>({boxes:/* @__PURE__ */ new Map,entries:/* @__PURE__ */ new Map});function kx(e,t=`document`){let n=Dx.get(e);return n||(n={document:Ox(),flow:Ox()},Dx.set(e,n)),n[t]}function Ax(e,t){return{left:e.left[t],top:e.top[t],right:e.right[t],bottom:e.bottom[t]}}function jx(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 Mx(e,t){return e.left===t.left&&e.top===t.top&&e.right===t.right&&e.bottom===t.bottom}function Nx(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 Px(e,t){return e.left<=t.right&&e.right>=t.left&&e.top<=t.bottom&&e.bottom>=t.top}function Fx(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(Px(n,e))return!0;return!1}function Ix(){let e=/* @__PURE__ */ new Map,t=/* @__PURE__ */ 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 Lx(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 Rx(e,t){let n=e.boxes,r=/* @__PURE__ */ new Map,i=[],a=!1;for(let e=0;e<t.ids.length;e++){let o=t.ids[e],s=Ax(t,e);if(r.set(o,s),a)continue;let c=n.get(o);c?Mx(c,s)||i.push(jx(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 zx(e){return 24+e%4*8}function Bx(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 Vx(e,t){return t===null||t<=0?e:Math.max(24,Math.min(e,t/2-1))}function Hx(e){return e===L.left||e===L.right}function Ux(e){return e===L.right||e===L.bottom?1:-1}function Wx(e,t,n){let r=Ux(t);return Hx(t)?{x:e.x+r*n,y:e.y}:{x:e.x,y:e.y+r*n}}function Gx({start:e,end:t},[n,r]){let i=Bx(e,t),a=Vx(zx(n),i),o=Vx(zx(r),i);return{m:Wx(e,e.direction,a),l:Wx(t,t.direction,o),startStub:a,endStub:o}}function Kx(e,t=`document`){let{tableIds:n}=cv(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=sy(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 qx(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 Jx(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)&&qx(n.x,n.y,r.x,r.y,u,f,d,p)){i++;break}}}return i}function Yx(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 Xx(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 Zx(e,t,n,r,i){let a=Hx(t),o=Hx(r),s=Ux(t),c=Ux(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=Xx(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=Xx(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=Xx(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=Xx(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=Xx(e.x,n.x,i,!0,l,u).filter(t=>(t-e.x)*s>=0).slice(0,4),r=Xx(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=Xx(e.y,n.y,i,!1,l,u).filter(t=>(t-e.y)*s>=0).slice(0,4),r=Xx(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 Qx(e,t,n,r,i,a,o){let s=Zx(e,t,n,r,i),c=null,l=1/0;for(let e of s){let t=Jx(e.points,i,a,o)*1e5+e.bends*36+Yx(e.points);t<l&&(l=t,c=e.points)}return c||(Hx(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 $x=[10,7,4],eS=$x[$x.length-1]-.5;function tS(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 nS(e,t){return e.relationshipId===t.relationshipId?e.index-t.index:e.relationshipId<t.relationshipId?-1:1}function rS(e){let t=e.points[e.index-1];return e.vertical?t.y:t.x}function iS(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 aS(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 oS(e,t,n,r){let i=[],a=[];for(let t of tS(e))(t.vertical?i:a).push(t);for(let e of[i,a]){iS(e);let i=e.filter(e=>e.movable);if(i.length<2)continue;i.sort((e,t)=>e.coordinate-t.coordinate||nS(e,t));let a=[],o=()=>{a.length>1&&sS(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 sS(e,t,n,r,i){e.sort((e,t)=>e.low-t.low||nS(e,t));let a=[],o=-1/0,s=()=>{a.length>1&&pS(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 cS(e,t){return e.high+10>t.low&&t.high+10>e.low}function lS(e,t){return Math.abs(e.coordinate-t.coordinate)>=eS?0:Math.max(0,Math.min(e.high,t.high)-Math.max(e.low,t.low))}function uS(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+=lS(i,e[t]);for(let e of t)n+=lS(i,e)}return n}function dS(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+eS,o=[];for(let e of t)e.coordinate<r-a||e.coordinate>i+a||n.has(e)||o.push(e);return o}function fS(e){let t=[];for(let n of e){let e=t.find(e=>!cS(e[e.length-1],n));e?e.push(n):t.push([n])}return t}function pS(e,t,n,r,i){if(!i){mS(e,t,n,r);return}if(hS(e,i))return;let a=e.map(e=>e.coordinate);mS(e,t,n,r),gS(e,a,i)}function mS(e,t,n,r){let i=dS(e,t),a=uS(e,i);if(!a)return;let o=/* @__PURE__ */ new Map,s=e.map(e=>(o.set(e,CS(e,n,r)),e.coordinate)),c=s.reduce((e,t)=>e+t,0)/s.length,l=_S(e),u=null,d=1/0;for(let t of $x){let a=null,f=1/0;for(let p of l){SS(p,t,c,o,n,r);let l=uS(e,i);if(l)l<d&&(u=e.map(e=>e.coordinate),d=l);else{let t=bS(e,s);t<f&&(f=t,a=e.map(e=>e.coordinate))}xS(e,s)}if(a){xS(e,a);return}}u&&d<a&&xS(e,u)}function hS(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 xS(e,n),!0}function gS(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 _S(e){let t=fS(e),n=vS(t);return t.length===e.length?n:[...n,...vS(e.map(e=>[e]))]}function vS(e){let t=(e,t)=>e.reduce((e,n)=>e+t(n),0)/e.length,n=[...e].sort((e,n)=>t(e,rS)-t(n,rS)||t(e,yS)-t(n,yS)||nS(e[0],n[0])),r=[...e].sort((e,n)=>t(e,yS)-t(n,yS)||t(e,rS)-t(n,rS)||nS(e[0],n[0]));return n.every((e,t)=>e===r[t])?[n]:[n,r]}function yS(e){return e.coordinate}function bS(e,t){return e.reduce((e,n,r)=>e+Math.abs(n.coordinate-t[r]),0)}function xS(e,t){e.forEach((e,n)=>{aS(e,t[n]),e.coordinate=t[n]})}function SS(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=>cS(l,e)))return!1;let c=o+r*t;return aS(l,c),DS(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||aS(l,l.coordinate)}})}function CS(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:Jx(e.points,t,r?.[0]??``,r?.[1]??``),crossed:OS(e.points),own:i,intruded:ES(e.points,t,i),beforeDelta:wS(e,-1),afterDelta:wS(e,1)}}function wS(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 TS(e,t){return Math.abs(t)>=.5&&e*t<=0}function ES(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(qx(i.x,i.y,c.x,c.y,n,a,o,s)){r++;break}}}return r}function DS(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&&TS(wS(e,-1),r.beforeDelta)||e.index+2===e.points.length-1&&TS(wS(e,1),r.afterDelta)||ES(e.points,t,r.own)>r.intruded||!r.crossed&&OS(e.points))return!1;let c=n.get(e.relationshipId);return Jx(e.points,t,c?.[0]??``,c?.[1]??``)<=r.blocked}function OS(e){for(let t=0;t+1<e.length;t++)for(let n=t+2;n+1<e.length;n++)if(kS(e[t],e[t+1],e[n],e[n+1]))return!0;return!1}function kS(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 AS={[W.top]:L.top,[W.bottom]:L.bottom,[W.left]:L.left,[W.right]:L.right},jS=Math.PI*2,MS={[W.top]:-Math.PI,[W.right]:-Math.PI/2,[W.bottom]:0,[W.left]:Math.PI/2},NS={[W.top]:!1,[W.right]:!1,[W.bottom]:!0,[W.left]:!0};function PS(e,t=`document`,{route:n=!0}={}){Yg(t);let{tableIds:r,relationshipIds:i}=cv(e,t),{collections:a}=e,o=V(r),s=N(a).collection(`tableEntities`),c=N(a).collection(`relationshipEntities`).selectByIds(i).filter(({start:e,end:t})=>o(e.tableId)&&o(t.tableId)),l=/* @__PURE__ */ new Map,u=/* @__PURE__ */ new Map,d=/* @__PURE__ */ new Map,f=GS(c);for(let n of c){let r=WS(n),{start:i,end:a}=r,o=s.selectById(i.tableId),c=s.selectById(a.tableId);if(o&&c){if(u.set(n,r),d.set(r.id,[0,0]),i.tableId===a.tableId)BS(e,l,o,t).loops.push(r);else{let n=BS(e,l,o,t),s=BS(e,l,c,t),[u,d]=YS(n.objectPoint,s.objectPoint,r);n[u].push({id:r.id,isStart:!0,point:i,angle:JS(u,n,s),tie:f.tieAt(r.id,i.tableId,a.tableId)}),s[d].push({id:r.id,isStart:!1,point:a,angle:JS(d,s,n),tie:f.tieAt(r.id,a.tableId,i.tableId)})}}}for(let e of l.values()){VS(e);for(let t of Mg)XS(t,e,d)}for(let[e,n]of u.entries())Gg(e,d.get(n.id)??[0,0],t),Zg(e,n,t);t===`document`?n&&IS(e,u,d):FS(u,d,t)}function FS(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}=Gx(i,t.get(e)??[0,0]);qg(r,[s,c],n)}}function IS(e,t,n){let r=Kx(e),i=kx(e),a=Rx(i,r),o=i.entries,s=/* @__PURE__ */ new Map,c=/* @__PURE__ */ new Set,l=Ix();if(a)for(let e of a)l.markBox(e);let u=/* @__PURE__ */ new Map,d=/* @__PURE__ */ new Map,f=/* @__PURE__ */ 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}=Gx(i,n.get(t)??[0,0]),_=o.get(t),v,y;a!==null&&_!==void 0&&zS(_,h,g,p,m)&&!Fx(_.bounds,a)?(v=_.pristine,y=LS(v)):(y=Qx(h,p.direction,g,m.direction,r,p.tableId,m.tableId),v=LS(y),c.add(t),_&&Lx(l,_.nudged),Lx(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:Nx(v)})}if(a)for(let[e,t]of o)s.has(e)||Lx(l,t.nudged);oS(u,r,d,a===null?void 0:RS(o,c,l));for(let[e,t]of u){let n=f.get(e);n&&qg(n,t)}i.entries=s}function LS(e){return e.map(({x:e,y:t})=>({x:e,y:t}))}function RS(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 zS(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 BS(e,t,n,r){let i=t.get(n.id);if(!i){let a=sy(e,n,r);i={tableId:n.id,centerX:a.top.x,centerY:a.left.y,objectPoint:a,loops:[],top:[],bottom:[],left:[],right:[]},t.set(n.id,i)}return i}function VS(e){let{rt:t}=e.objectPoint,n=HS(e);e.loops.forEach((e,r)=>{let i=n[r];e.start.direction=L.top,e.start.x=t.x-i,e.start.y=t.y,e.end.direction=L.right,e.end.x=t.x,e.end.y=t.y+i})}function HS(e){let{width:t,height:n}=e.objectPoint,r=e.loops.length,i=Math.max(0,Math.min(t,n)-6),a=Math.min(20,i),o=r>1?Math.min(18,(i-a)/(r-1)):0;return e.loops.map((e,t)=>a+t*o)}function US(e){let t=HS(e);return t.length?t[t.length-1]+8:0}function WS({id:e,start:t,end:n}){return{id:e,start:Pg(t),end:Pg(n)}}function GS(e){let t=/* @__PURE__ */ new Map;for(let{id:n,start:r,end:i}of e){let e=KS(r.tableId,i.tableId),a=t.get(e);a?a.push(n):t.set(e,[n])}let n=/* @__PURE__ */ new Map,r=/* @__PURE__ */ 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 KS(e,t){return e<t?`${e}|${t}`:`${t}|${e}`}function qS(e){let t=e%jS;return t<0?t+jS:t}function JS(e,t,n){return qS(Math.atan2(n.centerY-t.centerY,n.centerX-t.centerX)-MS[e])}function YS(e,t,n){let r=[W.bottom,W.bottom],i=cy(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 Mg)for(let o of Mg){let s=a,c=o,l=cy(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=AS[s],n.end.x=t[c].x,n.end.y=t[c].y,n.end.direction=AS[c])}return r}function XS(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===W.top||e===W.bottom,o=(a?i.lt.x:i.lt.y)+12,s=(a?i.rb.x:i.rb.y)-12,c=US(t);if(c&&(e===W.top?s-=c:e===W.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=NS[e]?d-1-r:r,s=p+o*f;a?(t.point.x=s,t.point.y=e===W.top?i.top.y:i.bottom.y):(t.point.y=s,t.point.x=e===W.left?i.left.x:i.right.x);let c=n.get(t.id);c&&(c[+!t.isStart]=r)})}function ZS(e,t){Tx(e),Ex(e),ty(e,t),PS(e,`document`,{route:t.routes!==!1}),Cx(e),wx(e)}const QS=e=>e.ui.zIndex,$S=(e,t)=>Math.max(1,...e.map(QS),...t.map(QS))+1,eC=e=>t=>e.y===t.y&&e.x===t.x;function tC(e,t,n){let r=pb(e,{x:200,y:100}),i=[...t,...n].map(({ui:e})=>e);for(;i.some(eC(r));)r.x+=50,r.y+=50;return r}function nC(e,t){return e<t?_e(e,t+1):_e(t,e+1)}function rC(e){return be(te(e??``))}function iC(e,t){return ye([...e,t])}function aC(e,t,n){if(!t||t===n)return[n];let r=e.indexOf(t),i=e.indexOf(n);return r===-1?[n]:nC(r,i).map(t=>e[t])}function oC(e,t,n,r){return ye([...t,...aC(e,n,r)])}const sC={[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},cC={[F.columnName]:H.columnName,[F.columnDataType]:H.columnDataType,[F.columnNotNull]:H.columnNotNull,[F.columnUnique]:H.columnUnique,[F.columnAutoIncrement]:H.columnAutoIncrement,[F.columnDefault]:H.columnDefault,[F.columnComment]:H.columnComment},lC=[H.tableName,H.tableComment];function uC({settings:{show:e,columnOrder:t}}){return t.filter(t=>{let n=sC[t];return n===!0||U(e,n)}).map(e=>cC[e])}function dC({collections:e,editor:{focusTable:t}}){return t?!!N(e).collection(`tableEntities`).selectById(t.tableId)?.columnIds.length:!1}function fC(e){let{editor:{focusTable:t}}=e;if(!t)return!0;let n=uC(e);return n.indexOf(t.focusType)===n.length-1}function pC(e){let{editor:{focusTable:t}}=e;return!t||uC(e).indexOf(t.focusType)===0}function mC({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 hC({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 gC(e){let t=uC(e);return t[t.length-1]}function _C(e){return uC(e)[0]}function vC(e){let{editor:{focusTable:t}}=e;if(!t)return H.columnName;let n=uC(e),r=n.indexOf(t.focusType);return fC(e)?n[0]:n[r+1]}function yC(e){let{editor:{focusTable:t}}=e;if(!t)return H.columnName;let n=uC(e),r=n.indexOf(t.focusType);return pC(e)?n[n.length-1]:n[r-1]}function bC(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 xC({settings:{show:e}}){return U(e,P.tableComment)?lC:[H.tableName]}function SC(e){let{editor:{focusTable:t}}=e;if(!t)return!0;let n=xC(e);return n.indexOf(t.focusType)===n.length-1}function CC(e){let{editor:{focusTable:t}}=e;return!t||xC(e).indexOf(t.focusType)===0}const wC=V(lC);function TC(e){let{editor:{focusTable:t}}=e;if(!t)return H.tableName;let n=xC(e),r=n.indexOf(t.focusType);return SC(e)?n[0]:n[r+1]}function EC(e){let{editor:{focusTable:t}}=e;if(!t)return H.tableName;let n=xC(e),r=n.indexOf(t.focusType);return CC(e)?n[n.length-1]:n[r-1]}function DC(e,t){let{collections:n,editor:{focusTable:r}}=e;if(!r)return;let i=N(n).collection(`tableEntities`).selectById(r.tableId);if(i){if(wC(r.focusType)){if(dC(e)){let t=i.columnIds[i.columnIds.length-1];r.focusType=gC(e),r.columnId=t,r.prevSelectColumnId=t,r.selectColumnIds=[t]}}else if(hC(e))r.focusType=H.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!==hg.Tab?iC(r.selectColumnIds,n):[n]}}}function OC(e,t){let{collections:n,editor:{focusTable:r}}=e;if(!r)return;let i=N(n).collection(`tableEntities`).selectById(r.tableId);if(i){if(wC(r.focusType)){if(dC(e)){let t=i.columnIds[0];r.focusType=_C(e),r.columnId=t,r.prevSelectColumnId=t,r.selectColumnIds=[t]}}else if(mC(e))r.focusType=H.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!==hg.Tab?iC(r.selectColumnIds,n):[n]}}}function kC(e,t){let{collections:n,editor:{focusTable:r}}=e;if(!r)return;let i=N(n).collection(`tableEntities`).selectById(r.tableId);if(i){if(wC(r.focusType)){if(CC(e)){if(dC(e)){let t=i.columnIds[i.columnIds.length-1];r.focusType=gC(e),r.columnId=t,r.prevSelectColumnId=t,r.selectColumnIds=[t]}else r.focusType=EC(e)}else r.focusType=EC(e)}else if(pC(e)){if(hC(e))r.focusType=U(e.settings.show,P.tableComment)?H.tableComment:H.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=gC(e),r.columnId=a,r.prevSelectColumnId=a,r.selectColumnIds=t.shiftKey&&t.moveKey!==hg.Tab?iC(r.selectColumnIds,a):[a]}}else r.focusType=yC(e),!t.shiftKey&&r.columnId&&(r.prevSelectColumnId=r.columnId,r.selectColumnIds=[r.columnId])}}function AC(e,t){let{collections:n,editor:{focusTable:r}}=e;if(!r)return;let i=N(n).collection(`tableEntities`).selectById(r.tableId);if(i){if(wC(r.focusType)){if(SC(e)){if(dC(e)){let t=i.columnIds[0];r.focusType=_C(e),r.columnId=t,r.prevSelectColumnId=t,r.selectColumnIds=[t]}else r.focusType=TC(e)}else r.focusType=TC(e)}else if(fC(e)){if(mC(e))r.focusType=H.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=_C(e),r.columnId=a,r.prevSelectColumnId=a,r.selectColumnIds=t.shiftKey&&t.moveKey!==hg.Tab?iC(r.selectColumnIds,a):[a]}}else r.focusType=vC(e),!t.shiftKey&&r.columnId&&(r.prevSelectColumnId=r.columnId,r.selectColumnIds=[r.columnId])}}const jC=3e4,MC=9e4,NC=3e3,PC=k(B.changeHasHistory),FC=({editor:e},{payload:{hasRedo:t,hasUndo:n}})=>{e.hasRedo=t,e.hasUndo=n},IC=k(B.selectAll),LC=({editor:e,doc:t,settings:n})=>{let r=t.tableIds.reduce((e,t)=>(e[t]=dg.table,e),{});e.selectedMap={...(U(n.show,P.hideMemo)?[]:t.memoIds).reduce((e,t)=>(e[t]=dg.memo,e),{}),...r}},RC=k(B.unselectAll),zC=({editor:e})=>{Object.keys(e.selectedMap).forEach(t=>{Reflect.deleteProperty(e.selectedMap,t)})},BC=k(B.select),VC=({editor:e},{payload:t})=>{Object.assign(e.selectedMap,t)},HC=k(B.changeViewport),UC=(e,{payload:{width:t,height:n}})=>{e.editor.viewport.width=t,e.editor.viewport.height=n,e.editor.scrollPullPending&&KC(e)},WC=k(B.clear),GC=e=>{let{doc:t,collections:n}=Nm({});e.doc=t,e.collections=n,e.editor.scrollPullPending=!1,D_(e.editor)};function KC(e){let{settings:t,editor:n}=e;if(!Fb(n.viewport)){n.scrollPullPending=!0;return}let r=Ib(e);t.originX=We(r.x,4),t.originY=We(r.y,4),n.scrollPullPending=!1}const qC=k(B.loadJson),JC=(e,{payload:{value:t},version:n},r)=>{let{version:i,settings:a,doc:o,collections:s}=kh(t);__(a.canvasType)||(a.canvasType=Uh.ERD),Gb(e),vx(e,a,n??r.clock.getVersion()),e.version=i,e.doc=o,e.collections=s,Gb(e),D_(e.editor),bg(e),ZS(e,r),KC(e)},YC=k(B.initialClear),XC=e=>{let{doc:t,collections:n}=Nm({});e.doc=t,e.collections=n,e.editor.scrollPullPending=!1,D_(e.editor)},ZC=k(B.initialLoadJson),QC=(e,{payload:{value:t}},n)=>{let{version:r,settings:i,doc:a,collections:o}=kh(t);__(i.canvasType)||(i.canvasType=Uh.ERD),Gb(e),Object.assign(e.settings,i),e.version=r,e.doc=a,e.collections=o,e.lww={},Gb(e),D_(e.editor),bg(e),ZS(e,n),KC(e)},$C=k(B.focusTable),ew=({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:H.tableName,columnId:null,prevSelectColumnId:null,selectColumnIds:[],edit:!1}}},tw=k(B.focusColumn),nw=({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?oC(t.columnIds,i.selectColumnIds,i.prevSelectColumnId,i.columnId):n.shiftKey?aC(t.columnIds,i.prevSelectColumnId,i.columnId):n.$mod?iC(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}}},rw=k(B.focusTableEnd),iw=({editor:e})=>{e.focusTable=null},aw=k(B.focusMoveTable),ow=(e,{payload:t})=>{let{editor:{focusTable:n}}=e;if(n)switch(n.edit=!1,t.moveKey){case hg.ArrowUp:DC(e,t);break;case hg.ArrowDown:OC(e,t);break;case hg.ArrowLeft:kC(e,t);break;case hg.ArrowRight:AC(e,t);break;case hg.Tab:t.shiftKey?kC(e,t):AC(e,t)}},sw=k(B.editTable),cw=({editor:{focusTable:e}})=>{e&&(e.edit=!0)},lw=k(B.editTableEnd),uw=({editor:{focusTable:e}})=>{e&&(e.edit=!1)},dw=k(B.editMemo),fw=({editor:e},{payload:{id:t}})=>{e.editMemoId=t},pw=k(B.editMemoEnd),mw=({editor:e})=>{e.editMemoId=null},hw=k(B.editTableGroup),gw=({editor:e},{payload:{id:t}})=>{e.editTableGroupId=t},_w=k(B.editTableGroupEnd),vw=({editor:e})=>{e.editTableGroupId=null},yw=k(B.scrollMemo),bw=({editor:e},{payload:{id:t,scrollTop:n}})=>{e.memoScrollTopMap[t]=Number.isFinite(n)?Math.max(0,n):0},xw=k(B.selectAllColumn),Sw=({collections:e,editor:{focusTable:t}})=>{if(!t)return;let n=N(e).collection(`tableEntities`).selectById(t.tableId);n&&(t.selectColumnIds=[...n.columnIds])},Cw=k(B.drawStartRelationship),ww=({editor:e},{payload:{relationshipType:t}})=>{e.drawRelationship={relationshipType:t,start:null,end:{x:0,y:0}},e.drawTableGroup=!1},Tw=k(B.drawStartAddRelationship),Ew=({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})},Dw=k(B.drawEndRelationship),Ow=({editor:e})=>{e.drawRelationship=null},kw=k(B.drawRelationship),Aw=({editor:{drawRelationship:e},settings:t},{payload:{x:n,y:r}})=>{if(!e?.start)return;let i=pb(t,{x:n,y:r});e.end.x=i.x,e.end.y=i.y},jw=k(B.hoverColumnMap),Mw=({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},Nw=k(B.hoverRelationshipMap),Pw=({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},Fw=k(B.changeOpenMap),Iw=({editor:e},{payload:t})=>{Object.assign(e.openMap,t)},Lw=k(B.changeHandTool),Rw=({editor:e},{payload:{value:t}})=>{e.handTool=t,t&&(e.drawRelationship=null,e.drawTableGroup=!1)},zw=k(B.changeDrawTableGroup),Bw=({editor:e},{payload:{value:t}})=>{e.drawTableGroup=t,t&&(e.handTool=!1,e.drawRelationship=null)},Vw=k(B.changeZenMode),Hw=({editor:e},{payload:{value:t}})=>{e.zenMode=t},Uw=k(B.dragstartColumn),Ww=({editor:e},{payload:t})=>{e.draggableColumn=t,t.columnIds.forEach(t=>{e.draggingColumnMap[t]=!0})},Gw=k(B.dragendColumn),Kw=({editor:e})=>{e.draggableColumn=null,Object.keys(e.draggingColumnMap).forEach(t=>{Reflect.deleteProperty(e.draggingColumnMap,t)})},qw=k(B.sharedMouseTracker),Jw=({editor:e},{payload:t,tags:n,meta:r})=>{if(S(n)||!U(n,Q_.shared)||!w(r?.editorId)||e.id===r.editorId)return;let i=e.sharedMouseTrackerMap[r.editorId],a=!w(r.nickname)||Ue(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)},jC)):e.sharedMouseTrackerMap[r.editorId]={...t,id:r.editorId,nickname:a,timeoutId:setTimeout(()=>{Reflect.deleteProperty(e.sharedMouseTrackerMap,r.editorId)},jC)}},Yw=k(B.sharedFocusTracker),Xw=({editor:e},{payload:{focus:t},tags:n,meta:r})=>{if(S(n)||!U(n,Q_.shared)||!w(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)},MC)):e.sharedFocusTrackerMap[r.editorId]={...t,id:r.editorId,timeoutId:setTimeout(()=>{Reflect.deleteProperty(e.sharedFocusTrackerMap,r.editorId)},MC)}},Zw=k(B.sharedSelectionTracker),Qw=({editor:e},{payload:{selectedIds:t},tags:n,meta:r})=>{if(S(n)||!U(n,Q_.shared)||!w(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)},MC)):e.sharedSelectionTrackerMap[r.editorId]={id:r.editorId,selectedIds:t,timeoutId:setTimeout(()=>{Reflect.deleteProperty(e.sharedSelectionTrackerMap,r.editorId)},MC)}},$w=k(B.sharedDragSelectTracker),eT=({editor:e},{payload:{rect:t},tags:n,meta:r})=>{if(S(n)||!U(n,Q_.shared)||!w(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)},NC)):e.sharedDragSelectTrackerMap[r.editorId]={...t,id:r.editorId,timeoutId:setTimeout(()=>{Reflect.deleteProperty(e.sharedDragSelectTrackerMap,r.editorId)},NC)}},tT=k(B.dragSelectRect),nT=({editor:e},{payload:{rect:t}})=>{e.dragSelect=t},rT=k(B.getLWW),iT=me,aT=k(B.mergeLWW),oT=({lww:e},{payload:{lww:t}})=>{Object.entries(t).forEach(([t,[n,r,i,a]])=>{Ph(e,r,t,n,me),Fh(e,i,t,n,me),Object.entries(a).forEach(([r,i])=>{Ih(e,i,t,n,r,me)})})},sT={[B.changeHasHistory]:FC,[B.selectAll]:LC,[B.unselectAll]:zC,[B.select]:VC,[B.changeViewport]:UC,[B.clear]:GC,[B.loadJson]:JC,[B.initialClear]:XC,[B.initialLoadJson]:QC,[B.focusTable]:ew,[B.focusColumn]:nw,[B.focusTableEnd]:iw,[B.focusMoveTable]:ow,[B.editTable]:cw,[B.editTableEnd]:uw,[B.editMemo]:fw,[B.editMemoEnd]:mw,[B.editTableGroup]:gw,[B.editTableGroupEnd]:vw,[B.scrollMemo]:bw,[B.selectAllColumn]:Sw,[B.drawStartRelationship]:ww,[B.drawStartAddRelationship]:Ew,[B.drawEndRelationship]:Ow,[B.drawRelationship]:Aw,[B.hoverColumnMap]:Mw,[B.hoverRelationshipMap]:Pw,[B.changeOpenMap]:Iw,[B.changeHandTool]:Rw,[B.changeDrawTableGroup]:Bw,[B.changeZenMode]:Hw,[B.dragstartColumn]:Ww,[B.dragendColumn]:Kw,[B.sharedMouseTracker]:Jw,[B.sharedFocusTracker]:Xw,[B.sharedSelectionTracker]:Qw,[B.sharedDragSelectTracker]:eT,[B.dragSelectRect]:nT,[B.getLWW]:iT,[B.mergeLWW]:oT,...X_},cT={changeHasHistoryAction:PC,selectAllAction:IC,unselectAllAction:RC,selectAction:BC,changeViewportAction:HC,clearAction:WC,loadJsonAction:qC,initialClearAction:YC,initialLoadJsonAction:ZC,focusTableAction:$C,focusColumnAction:tw,focusTableEndAction:rw,focusMoveTableAction:aw,editTableAction:sw,editTableEndAction:lw,editMemoAction:dw,editMemoEndAction:pw,editTableGroupAction:hw,editTableGroupEndAction:_w,scrollMemoAction:yw,selectAllColumnAction:xw,drawStartRelationshipAction:Cw,drawStartAddRelationshipAction:Tw,drawEndRelationshipAction:Dw,drawRelationshipAction:kw,hoverColumnMapAction:jw,hoverRelationshipMapAction:Nw,changeOpenMapAction:Fw,changeHandToolAction:Lw,changeDrawTableGroupAction:zw,changeZenModeAction:Vw,dragstartColumnAction:Uw,dragendColumnAction:Gw,sharedMouseTrackerAction:qw,sharedFocusTrackerAction:Yw,sharedSelectionTrackerAction:Zw,sharedDragSelectTrackerAction:$w,dragSelectRectAction:tT,getLWWAction:rT,mergeLWWAction:aT,...Z_},lT=(e,t,n)=>{e.push(WC(),qC({value:Ah(n)}))},uT=(e,t,n)=>{e.push(qC({value:Ah(n)}))},dT={[B.loadJson]:lT,[B.clear]:uT},fT={addIndex:`index.add`,removeIndex:`index.remove`,changeIndexName:`index.changeName`,changeIndexUnique:`index.changeUnique`},pT=e=>typeof e==`object`&&!!e,mT=(e,t)=>pT(e)&&t in e,hT=(e,t)=>mT(e,t)&&!Object.prototype.propertyIsEnumerable.call(e,t),gT=e=>pT(e)?vT(Array.isArray(e)?[]:{},e):e;function _T(e,t){let n={};if(pT(e))for(let t of Object.keys(e))n[t]=gT(e[t]);for(let r of Object.keys(t))hT(e,r)||(n[r]=mT(e,r)&&pT(t[r])?vT(e[r],t[r]):gT(t[r]));return n}function vT(e,t){let n=Array.isArray(t);return n===Array.isArray(e)?n?e.concat(t).map(gT):_T(e,t):gT(t)}function yT(e,t){return vT(e,t)}const bT=e=>yT({id:Sh(),name:``,tableId:``,indexColumnIds:[],seqIndexColumnIds:[],unique:!1},e??{}),xT=k(fT.addIndex),ST=({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(bT({id:r,tableId:i})).addOperator(n,s,r,()=>{V(e.indexIds)(r)||(e.indexIds.push(r),kv())})},CT=k(fT.removeIndex),wT=({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),kv())})},TT=k(fT.changeIndexName),ET=({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=>bT({id:e,tableId:r})),c.replaceOperator(t,s,n,`name`,()=>{c.updateOne(n,e=>{e.name=i})})},DT=k(fT.changeIndexUnique),OT=({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=>bT({id:e,tableId:r})),c.replaceOperator(t,s,n,`unique`,()=>{c.updateOne(n,e=>{e.unique=i})})},kT={[fT.addIndex]:ST,[fT.removeIndex]:wT,[fT.changeIndexName]:ET,[fT.changeIndexUnique]:OT},AT={addIndexAction:xT,removeIndexAction:CT,changeIndexNameAction:TT,changeIndexUniqueAction:DT},jT=(e,{payload:{id:t}})=>{e.push(CT({id:t}))},MT=(e,{payload:{id:t}},{collections:n})=>{let r=N(n).collection(`indexEntities`).selectById(t);r&&e.push(xT({id:t,tableId:r.tableId}))},NT=(e,{payload:{id:t,tableId:n}},{collections:r})=>{let i=N(r).collection(`indexEntities`).selectById(t);i&&e.push(TT({id:t,tableId:n,value:i.name}))},PT=(e,{payload:{id:t,tableId:n,value:r}},{collections:i})=>{N(i).collection(`indexEntities`).selectById(t)&&e.push(DT({id:t,tableId:n,value:!r}))},FT={[fT.addIndex]:jT,[fT.removeIndex]:MT,[fT.changeIndexName]:NT,[fT.changeIndexUnique]:PT},IT={addIndexColumn:`indexColumn.add`,removeIndexColumn:`indexColumn.remove`,moveIndexColumn:`indexColumn.move`,changeIndexColumnOrderType:`indexColumn.changeOrderType`},LT=e=>yT({id:Sh(),indexId:``,columnId:``,orderType:eg.ASC},e??{});function RT(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 zT=k(IT.addIndexColumn),BT=({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=>bT({id:e,tableId:i}));N(e).collection(`indexColumnEntities`).addOne(LT({id:n,indexId:r,columnId:a})).addOperator(t,c,n,()=>{V(u.indexColumnIds)(n)||l.updateOne(r,e=>{RT(e.indexColumnIds,e.seqIndexColumnIds,n)})})},VT=k(IT.removeIndexColumn),HT=({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=>bT({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)})})},UT=k(IT.moveIndexColumn),WT=({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=>bT({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))})},GT=k(IT.changeIndexColumnOrderType),KT=({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=>LT({id:e,indexId:r,columnId:i})),l.replaceOperator(t,c,n,`orderType`,()=>{l.updateOne(n,e=>{e.orderType=a})})},qT={[IT.addIndexColumn]:BT,[IT.removeIndexColumn]:HT,[IT.moveIndexColumn]:WT,[IT.changeIndexColumnOrderType]:KT},JT={addIndexColumnAction:zT,removeIndexColumnAction:VT,moveIndexColumnAction:UT,changeIndexColumnOrderTypeAction:GT},YT=(e,{payload:{id:t,indexId:n,tableId:r}})=>{e.push(VT({id:t,indexId:n,tableId:r}))},XT=(e,{payload:{id:t,indexId:n,tableId:r}},{collections:i})=>{let a=N(i).collection(`indexColumnEntities`).selectById(t);a&&e.push(zT({id:t,indexId:n,tableId:r,columnId:a.columnId}))},ZT=(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(UT({indexId:n,tableId:r,id:t,targetId:u}))},QT=(e,{payload:{id:t,indexId:n,columnId:r}},{collections:i})=>{let a=N(i).collection(`indexColumnEntities`).selectById(t);a&&e.push(GT({id:t,indexId:n,columnId:r,value:a.orderType}))},$T={[IT.addIndexColumn]:YT,[IT.removeIndexColumn]:XT,[IT.moveIndexColumn]:ZT,[IT.changeIndexColumnOrderType]:QT},eE={addMemo:`memo.add`,moveMemo:`memo.move`,moveToMemo:`memo.moveTo`,removeMemo:`memo.remove`,changeMemoValue:`memo.changeValue`,changeMemoColor:`memo.changeColor`,resizeMemo:`memo.resize`,changeZIndex:`memo.changeZIndex`},tE=e=>yT({id:Sh(),value:``,ui:{x:200,y:100,zIndex:2,width:116,height:100,color:``}},e??{}),nE=k(eE.addMemo),rE=({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(tE({id:r,ui:i})).addOperator(n,s,r,()=>{V(e.memoIds)(r)||e.memoIds.push(r)})},iE=k(eE.moveMemo),aE=({collections:e},{payload:{ids:t,movementX:n,movementY:r}})=>{let i=N(e).collection(`memoEntities`);for(let e of t)i.getOrCreate(e,e=>tE({id:e}));i.updateMany(t,e=>{e.ui.x=We(e.ui.x+n,4),e.ui.y=We(e.ui.y+r,4)})},oE=k(eE.moveToMemo),sE=({collections:e},{payload:{id:t,x:n,y:r}})=>{let i=N(e).collection(`memoEntities`);i.getOrCreate(t,e=>tE({id:e})),i.updateOne(t,e=>{e.ui.x=n,e.ui.y=r})},cE=k(eE.removeMemo),lE=({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)})},uE=k(eE.changeMemoValue),dE=({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=>tE({id:e})),s.replaceOperator(t,o,n,`value`,()=>{s.updateOne(n,e=>{e.value=r})})},fE=k(eE.changeMemoColor),pE=({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=>tE({id:e})),s.replaceOperator(t,o,n,`ui.color`,()=>{s.updateOne(n,e=>{e.ui.color=r})})},mE=k(eE.resizeMemo),hE=({collections:e},{payload:{id:t,x:n,y:r,width:i,height:a}})=>{let o=N(e).collection(`memoEntities`);o.getOrCreate(t,e=>tE({id:e})),o.updateOne(t,e=>{e.ui.x=n,e.ui.y=r,e.ui.width=i,e.ui.height=a})},gE=k(eE.changeZIndex),_E=({collections:e},{payload:{id:t,zIndex:n}})=>{let r=N(e).collection(`memoEntities`);r.getOrCreate(t,e=>tE({id:e})),r.updateOne(t,e=>{e.ui.zIndex=n})},vE={[eE.addMemo]:rE,[eE.moveMemo]:aE,[eE.moveToMemo]:sE,[eE.removeMemo]:lE,[eE.changeMemoValue]:dE,[eE.changeMemoColor]:pE,[eE.resizeMemo]:hE,[eE.changeZIndex]:_E},yE={addMemoAction:nE,moveMemoAction:iE,moveToMemoAction:oE,removeMemoAction:cE,changeMemoValueAction:uE,changeMemoColorAction:fE,resizeMemoAction:mE,changeZIndexAction:gE},bE=(e,{payload:{id:t}})=>{e.push(cE({id:t}))},xE=(e,{payload:{id:t}},{collections:n})=>{let r=N(n).collection(`memoEntities`).selectById(t);r&&e.push(nE({id:r.id,ui:ge(r.ui,[`x`,`y`,`zIndex`])}))},SE=(e,{payload:{id:t}},{collections:n})=>{let r=N(n).collection(`memoEntities`).selectById(t);r&&e.push(uE({id:t,value:r.value}))},CE=(e,{payload:{id:t}},{collections:n})=>{let r=N(n).collection(`memoEntities`).selectById(t);r&&e.push(oE({id:t,x:r.ui.x,y:r.ui.y}))},wE={[eE.addMemo]:bE,[eE.removeMemo]:xE,[eE.changeMemoValue]:SE,[eE.moveToMemo]:CE},TE=(e,t,n)=>{let r=n.filter(e=>e.type===iE.type);if(!r.length)return;let i=ae(r,e=>e.payload.ids.join(`,`));for(let[,n]of Object.entries(i)){let{payload:{ids:r}}=x(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(iE({ids:r,movementX:-1*i,movementY:-1*a})),t.push(iE({ids:r,movementX:i,movementY:a})))}},EE=(e,t,n)=>{let r=n.filter(({type:e})=>e===fE.type);if(!r.length)return;let i=ae(r,e=>e.payload.id);for(let[n,r]of Object.entries(i)){let i=x(r),a=de(r);e.push(fE({id:n,color:i.payload.prevColor,prevColor:a.payload.color})),t.push(fE({id:n,color:a.payload.color,prevColor:i.payload.prevColor}))}},DE=(e,t,n)=>{let r=n.filter(e=>e.type===mE.type);if(!r.length)return;let i=ae(r,e=>e.payload.id);for(let[,n]of Object.entries(i)){if(n.length<2)continue;let r=x(n),i=de(n);e.push(r),t.push(i)}},OE={[eE.moveMemo]:TE,[eE.changeMemoColor]:EE,[eE.resizeMemo]:DE},kE={addRelationship:`relationship.add`,removeRelationship:`relationship.remove`,changeRelationshipType:`relationship.changeType`,changeRelationshipOnDelete:`relationship.changeOnDelete`,changeRelationshipOnUpdate:`relationship.changeOnUpdate`,changeRelationshipColumns:`relationship.changeColumns`},AE=e=>yT({id:Sh(),identification:!1,relationshipType:Zh.ZeroN,startRelationshipType:Qh.dash,onDelete:$h.none,onUpdate:$h.none,start:{tableId:``,columnIds:[],x:0,y:0,direction:L.bottom},end:{tableId:``,columnIds:[],x:0,y:0,direction:L.bottom}},e??{}),jE=k(kE.addRelationship),ME=({doc:e,collections:t,lww:n},{payload:{id:r,relationshipType:i,onDelete:a,onUpdate:o,start:s,end:c},version:l},{clock:u})=>{let d=l??u.getVersion();N(t).collection(`relationshipEntities`).addOne(AE({id:r,relationshipType:i,onDelete:a??$h.none,onUpdate:o??$h.none,start:{tableId:s.tableId,columnIds:s.columnIds},end:{tableId:c.tableId,columnIds:c.columnIds}})).addOperator(n,d,r,()=>{V(e.relationshipIds)(r)||e.relationshipIds.push(r)})},NE=k(kE.removeRelationship),PE=({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)})},FE=k(kE.changeRelationshipType),IE=({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})})},LE=k(kE.changeRelationshipOnDelete),RE=({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,`onDelete`,()=>{s.updateOne(n,e=>{e.onDelete=r})})},zE=k(kE.changeRelationshipOnUpdate),BE=({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,`onUpdate`,()=>{s.updateOne(n,e=>{e.onUpdate=r})})},VE=k(kE.changeRelationshipColumns),HE=`columns`,UE=(e,t)=>JSON.stringify([e,t]),WE=(e,{start:t,end:n})=>e.start.tableId!==t.tableId||e.end.tableId!==n.tableId,GE=({collections:e,lww:t},{payload:{id:n,start:r,end:i},version:a},{clock:o})=>{let s=a??o.getVersion(),c=N(e).collection(`relationshipEntities`),l=c.selectById(n);l&&WE(l,{start:r,end:i})||l&&(t[n]?.[3][HE]??-1)===s&&UE(r.columnIds,i.columnIds)<=UE(l.start.columnIds,l.end.columnIds)||c.replaceOperator(t,s,n,HE,()=>{c.updateOne(n,e=>{e.start.columnIds=[...r.columnIds],e.end.columnIds=[...i.columnIds]})})},KE={[kE.addRelationship]:ME,[kE.removeRelationship]:PE,[kE.changeRelationshipType]:IE,[kE.changeRelationshipOnDelete]:RE,[kE.changeRelationshipOnUpdate]:BE,[kE.changeRelationshipColumns]:GE},qE={addRelationshipAction:jE,removeRelationshipAction:NE,changeRelationshipTypeAction:FE,changeRelationshipOnDeleteAction:LE,changeRelationshipOnUpdateAction:zE,changeRelationshipColumnsAction:VE},JE=(e,{payload:{id:t}})=>{e.push(NE({id:t}))},YE=(e,{payload:{id:t}},{collections:n})=>{let r=N(n).collection(`relationshipEntities`).selectById(t);r&&e.push(jE({id:r.id,relationshipType:r.relationshipType,onDelete:r.onDelete,onUpdate:r.onUpdate,start:ge(r.start,[`tableId`,`columnIds`]),end:ge(r.end,[`tableId`,`columnIds`])}))},XE=(e,{payload:{id:t}},{collections:n})=>{let r=N(n).collection(`relationshipEntities`).selectById(t);r&&e.push(FE({id:t,value:r.relationshipType}))},ZE=(e,{payload:{id:t}},{collections:n})=>{let r=N(n).collection(`relationshipEntities`).selectById(t);r&&e.push(LE({id:t,value:r.onDelete}))},QE=(e,{payload:{id:t}},{collections:n})=>{let r=N(n).collection(`relationshipEntities`).selectById(t);r&&e.push(zE({id:t,value:r.onUpdate}))},$E=(e,{payload:{id:t,start:n,end:r}},{collections:i})=>{let a=N(i).collection(`relationshipEntities`).selectById(t);a&&!WE(a,{start:n,end:r})&&e.push(VE({id:t,start:{tableId:a.start.tableId,columnIds:[...a.start.columnIds]},end:{tableId:a.end.tableId,columnIds:[...a.end.columnIds]}}))},eD={[kE.addRelationship]:JE,[kE.removeRelationship]:YE,[kE.changeRelationshipType]:XE,[kE.changeRelationshipOnDelete]:ZE,[kE.changeRelationshipOnUpdate]:QE,[kE.changeRelationshipColumns]:$E},tD=(e,t,{settings:n})=>{e.push(Lb({originX:n.originX,originY:n.originY}))},nD=(e,{payload:{show:t,value:n}})=>{e.push(Vb({show:t,value:!n}))},rD=(e,t,{settings:n})=>{e.push(jb({value:n.zoomLevel}))},iD=(e,{payload:{position:t}},{settings:n})=>{e.push(hx({position:t,value:n.ddlScripts[t]}))},aD={[K.scrollTo]:tD,[K.changeShow]:nD,[K.changeZoomLevel]:rD,[K.changeDDLScript]:iD},oD=(e,t,n)=>{let r=n.filter(e=>e.type===zb.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(zb({movementX:-1*i,movementY:-1*a})),t.push(zb({movementX:i,movementY:a})))},sD=(e,t,n)=>{let r=n.filter(e=>e.type===Nb.type);if(!r.length)return;let i=r.reduce((e,{payload:{value:t}})=>e+t,0);e.push(Nb({value:-1*i})),t.push(Nb({value:i}))},cD={[K.streamScrollTo]:oD,[K.streamZoomLevel]:sD},q={addTable:`table.add`,moveTable:`table.move`,moveToTable:`table.moveTo`,removeTable:`table.remove`,changeTableName:`table.changeName`,changeTableComment:`table.changeComment`,changeTableColor:`table.changeColor`,changeTableGroup:`table.changeGroup`,changeZIndex:`table.changeZIndex`,sortTable:`table.sort`},lD=e=>yT({id:Sh(),name:``,comment:``,columnIds:[],seqColumnIds:[],groupId:``,ui:{x:200,y:100,zIndex:2,widthName:60,widthComment:60,color:``}},e??{}),uD=k(q.addTable),dD=({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(lD({id:r,ui:i})).addOperator(n,s,r,()=>{V(e.tableIds)(r)||e.tableIds.push(r)})},fD=k(q.moveTable),pD=({collections:e},{payload:{ids:t,movementX:n,movementY:r}})=>{let i=N(e).collection(`tableEntities`);for(let e of t)i.getOrCreate(e,e=>lD({id:e}));i.updateMany(t,e=>{e.ui.x=We(e.ui.x+n,4),e.ui.y=We(e.ui.y+r,4)})},mD=k(q.moveToTable),hD=({collections:e},{payload:{id:t,x:n,y:r}})=>{let i=N(e).collection(`tableEntities`);i.getOrCreate(t,e=>lD({id:e})),i.updateOne(t,e=>{e.ui.x=n,e.ui.y=r})},gD=k(q.removeTable),_D=({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)})},vD=k(q.changeTableName),yD=({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=>lD({id:e})),c.replaceOperator(t,s,n,`name`,()=>{c.updateOne(n,e=>{e.name=r,e.ui.widthName=G(a(r))})})},bD=k(q.changeTableComment),xD=({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=>lD({id:e})),c.replaceOperator(t,s,n,`comment`,()=>{c.updateOne(n,e=>{e.comment=r,e.ui.widthComment=G(a(r))})})},SD=k(q.changeTableColor),CD=({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=>lD({id:e})),s.replaceOperator(t,o,n,`ui.color`,()=>{s.updateOne(n,e=>{e.ui.color=r})})},wD=k(q.changeTableGroup),TD=({collections:e,lww:t},{payload:{id:n,value:r},version:i},{clock:a})=>{let o=i??a.getVersion(),s=N(e).collection(`tableEntities`);s.getOrCreate(n,e=>lD({id:e})),s.replaceOperator(t,o,n,`groupId`,()=>{s.updateOne(n,e=>{e.groupId=r})})},ED=k(q.changeZIndex),DD=({collections:e},{payload:{id:t,zIndex:n}})=>{let r=N(e).collection(`tableEntities`);r.getOrCreate(t,e=>lD({id:e})),r.updateOne(t,e=>{e.ui.zIndex=n})},OD=k(q.sortTable);function kD(e,t,n,r){let i=t,a=t,o=r;e.forEach(e=>{let r=e.width+80,s=e.height+80;i+r>n&&(a+=o,o=0,i=t),o<s&&(o=s),e.place(i,a),i+=r})}const AD=(e,t)=>({width:Hv(t,e).width,height:Qv(t),place:(e,n)=>{t.ui.x=e,t.ui.y=n}}),jD=({doc:e})=>u_(e.tableIds.length*100);function MD(e,t,n){let r=[];kD(n.map((e,t)=>({...e,place:(n,i)=>{r[t]={x:n,y:i,width:e.width,height:e.height}}})),0,jD(e)-50-48,0);let i=Hy(r.reduce(ly));return{width:i.width,height:i.height,place:(a,o)=>{n.forEach((e,t)=>e.place(a+r[t].x-i.x,o+r[t].y-i.y)),N(e.collections).collection(`tableGroupEntities`).updateOne(t,e=>{e.ui.x=a,e.ui.y=o,e.ui.width=i.width,e.ui.height=i.height})}}}function ND(e,t){let n=/* @__PURE__ */ new Map,r=[];return t.forEach(t=>{let i=AD(e,t),a=zy(e,t),o=a?n.get(a):void 0;a?o?o.push(i):(n.set(a,[i]),r.push(a)):r.push(i)}),r.map(t=>typeof t==`string`?MD(e,t,n.get(t)):t)}const PD=e=>{let{doc:t,collections:n}=e,r=N(n).collection(`tableEntities`).selectByIds(t.tableIds);r.sort((e,t)=>e.columnIds.length-t.columnIds.length),kD(ND(e,r),50,jD(e),50)},FD={[q.addTable]:dD,[q.moveTable]:pD,[q.moveToTable]:hD,[q.removeTable]:_D,[q.changeTableName]:yD,[q.changeTableComment]:xD,[q.changeTableColor]:CD,[q.changeTableGroup]:TD,[q.changeZIndex]:DD,[q.sortTable]:PD},ID={addTableAction:uD,moveTableAction:fD,moveToTableAction:mD,removeTableAction:gD,changeTableNameAction:vD,changeTableCommentAction:bD,changeTableColorAction:SD,changeTableGroupAction:wD,changeZIndexAction:ED,sortTableAction:OD},LD=(e,{payload:{id:t}})=>{e.push(gD({id:t}))},RD=(e,{payload:{id:t}},{collections:n})=>{let r=N(n).collection(`tableEntities`).selectById(t);r&&e.push(uD({id:r.id,ui:ge(r.ui,[`x`,`y`,`zIndex`])}))},zD=(e,{payload:{id:t}},{collections:n})=>{let r=N(n).collection(`tableEntities`).selectById(t);r&&e.push(vD({id:t,value:r.name}))},BD=(e,{payload:{id:t}},{collections:n})=>{let r=N(n).collection(`tableEntities`).selectById(t);r&&e.push(bD({id:t,value:r.comment}))},VD=(e,{payload:{id:t,prevValue:n}},{collections:r})=>{let i=N(r).collection(`tableEntities`).selectById(t);i&&e.push(wD({id:t,value:w(n)?n:i.groupId}))},HD=(e,{payload:{id:t}},{collections:n})=>{let r=N(n).collection(`tableEntities`).selectById(t);r&&e.push(mD({id:t,x:r.ui.x,y:r.ui.y}))},UD=()=>{},WD={[q.addTable]:LD,[q.removeTable]:RD,[q.changeTableName]:zD,[q.changeTableComment]:BD,[q.changeTableGroup]:VD,[q.moveToTable]:HD,[q.sortTable]:UD},GD=(e,t,n)=>{let r=n.filter(e=>e.type===fD.type);if(!r.length)return;let i=ae(r,e=>e.payload.ids.join(`,`));for(let[,n]of Object.entries(i)){let{payload:{ids:r}}=x(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(fD({ids:r,movementX:-1*i,movementY:-1*a})),t.push(fD({ids:r,movementX:i,movementY:a})))}},KD=(e,t,n)=>{let r=n.filter(({type:e})=>e===SD.type);if(!r.length)return;let i=ae(r,e=>e.payload.id);for(let[n,r]of Object.entries(i)){let i=x(r),a=de(r);e.push(SD({id:n,color:i.payload.prevColor,prevColor:a.payload.color})),t.push(SD({id:n,color:a.payload.color,prevColor:i.payload.prevColor}))}},qD={[q.moveTable]:GD,[q.changeTableColor]:KD},JD={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`},YD=e=>yT({id:Sh(),tableId:``,name:``,comment:``,dataType:``,default:``,options:0,ui:{keys:0,widthName:60,widthComment:60,widthDataType:60,widthDefault:60}},e??{}),XD=k(JD.addColumn),ZD=({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=>lD({id:e}));N(e).collection(`tableColumnEntities`).addOne(YD({id:n,tableId:r})).addOperator(t,o,n,()=>{V(c.columnIds)(n)||s.updateOne(r,e=>{RT(e.columnIds,e.seqColumnIds,n)})})},QD=k(JD.removeColumn),$D=({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=>lD({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)})})},eO=k(JD.changeColumnName),tO=({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=>YD({id:e})),c.replaceOperator(t,s,n,`name`,()=>{c.updateOne(n,e=>{e.name=r,e.ui.widthName=G(a(r))})})},nO=k(JD.changeColumnComment),rO=({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=>YD({id:e})),c.replaceOperator(t,s,n,`comment`,()=>{c.updateOne(n,e=>{e.comment=r,e.ui.widthComment=G(a(r))})})},iO=k(JD.changeColumnDataType),aO=`dataType`,oO=({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`),l=c.getOrCreate(n,e=>YD({id:e}));(t[n]?.[3][aO]??-1)===s&&r<=l.dataType||c.replaceOperator(t,s,n,aO,()=>{c.updateOne(n,e=>{e.dataType=r,e.ui.widthDataType=G(a(r))})})},sO=k(JD.changeColumnDefault),cO=({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=>YD({id:e})),c.replaceOperator(t,s,n,`default`,()=>{c.updateOne(n,e=>{e.default=r,e.ui.widthDefault=G(a(r))})})},lO=k(JD.changeColumnAutoIncrement),uO=({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=>YD({id:e})),s.replaceOperator(t,o,n,`options(autoIncrement)`,()=>{s.updateOne(n,e=>{e.options=r?e.options|R.autoIncrement:e.options&~R.autoIncrement})})},dO=k(JD.changeColumnPrimaryKey),fO=({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=>YD({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})})},pO=k(JD.changeColumnUnique),mO=({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=>YD({id:e})),s.replaceOperator(t,o,n,`options(unique)`,()=>{s.updateOne(n,e=>{e.options=r?e.options|R.unique:e.options&~R.unique})})},hO=k(JD.changeColumnNotNull),gO=({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=>YD({id:e})),s.replaceOperator(t,o,n,`options(notNull)`,()=>{s.updateOne(n,e=>{e.options=r?e.options|R.notNull:e.options&~R.notNull})})},_O=k(JD.moveColumn),vO=({collections:e},{payload:{id:t,tableId:n,targetId:r}})=>{if(t===r)return;let i=N(e).collection(`tableEntities`),a=i.getOrCreate(n,e=>lD({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))})},yO={[JD.addColumn]:ZD,[JD.removeColumn]:$D,[JD.changeColumnName]:tO,[JD.changeColumnComment]:rO,[JD.changeColumnDataType]:oO,[JD.changeColumnDefault]:cO,[JD.changeColumnAutoIncrement]:uO,[JD.changeColumnPrimaryKey]:fO,[JD.changeColumnUnique]:mO,[JD.changeColumnNotNull]:gO,[JD.moveColumn]:vO},bO={addColumnAction:XD,removeColumnAction:QD,changeColumnNameAction:eO,changeColumnCommentAction:nO,changeColumnDataTypeAction:iO,changeColumnDefaultAction:sO,changeColumnAutoIncrementAction:lO,changeColumnPrimaryKeyAction:dO,changeColumnUniqueAction:pO,changeColumnNotNullAction:hO,moveColumnAction:_O},xO=(e,{payload:{id:t,tableId:n}})=>{e.push(QD({id:t,tableId:n}))},SO=(e,{payload:{id:t,tableId:n}})=>{e.push(XD({id:t,tableId:n}))},CO=(e,{payload:{id:t,tableId:n}},{collections:r})=>{let i=N(r).collection(`tableColumnEntities`).selectById(t);i&&e.push(eO({id:t,tableId:n,value:i.name}))},wO=(e,{payload:{id:t,tableId:n}},{collections:r})=>{let i=N(r).collection(`tableColumnEntities`).selectById(t);i&&e.push(iO({id:t,tableId:n,value:i.dataType}))},TO=(e,{payload:{id:t,tableId:n}},{collections:r})=>{let i=N(r).collection(`tableColumnEntities`).selectById(t);i&&e.push(sO({id:t,tableId:n,value:i.default}))},EO=(e,{payload:{id:t,tableId:n}},{collections:r})=>{let i=N(r).collection(`tableColumnEntities`).selectById(t);i&&e.push(nO({id:t,tableId:n,value:i.comment}))},DO=(e,{payload:{id:t,tableId:n,value:r}},{collections:i})=>{N(i).collection(`tableColumnEntities`).selectById(t)&&e.push(lO({id:t,tableId:n,value:!r}))},OO=(e,{payload:{id:t,tableId:n,value:r}},{collections:i})=>{N(i).collection(`tableColumnEntities`).selectById(t)&&e.push(hO({id:t,tableId:n,value:!r}))},kO=(e,{payload:{id:t,tableId:n,value:r}},{collections:i})=>{N(i).collection(`tableColumnEntities`).selectById(t)&&e.push(dO({id:t,tableId:n,value:!r}))},AO=(e,{payload:{id:t,tableId:n,value:r}},{collections:i})=>{N(i).collection(`tableColumnEntities`).selectById(t)&&e.push(pO({id:t,tableId:n,value:!r}))},jO=(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(_O({id:t,tableId:n,targetId:l}))},MO={[JD.addColumn]:xO,[JD.removeColumn]:SO,[JD.changeColumnName]:CO,[JD.changeColumnDataType]:wO,[JD.changeColumnDefault]:TO,[JD.changeColumnComment]:EO,[JD.changeColumnAutoIncrement]:DO,[JD.changeColumnNotNull]:OO,[JD.changeColumnPrimaryKey]:kO,[JD.changeColumnUnique]:AO,[JD.moveColumn]:jO},NO={addTableGroup:`tableGroup.add`,moveTableGroup:`tableGroup.move`,moveToTableGroup:`tableGroup.moveTo`,removeTableGroup:`tableGroup.remove`,resizeTableGroup:`tableGroup.resize`,changeTableGroupName:`tableGroup.changeName`,changeTableGroupColor:`tableGroup.changeColor`,changeTableGroupZIndex:`tableGroup.changeZIndex`},PO=e=>yT({id:Sh(),name:``,color:``,ui:{x:200,y:100,width:400,height:300,zIndex:1}},e??{}),FO=k(NO.addTableGroup),IO=({doc:e,collections:t,lww:n},{payload:{id:r,color:i,ui:a},version:o},{clock:s})=>{let c=o??s.getVersion();N(t).collection(`tableGroupEntities`).addOne(PO({id:r,ui:a,...w(i)?{color:i}:{}})).addOperator(n,c,r,()=>{V(e.tableGroupIds)(r)||e.tableGroupIds.push(r)})},LO=k(NO.moveTableGroup),RO=({collections:e},{payload:{ids:t,movementX:n,movementY:r}})=>{let i=N(e).collection(`tableGroupEntities`);for(let e of t)i.getOrCreate(e,e=>PO({id:e}));i.updateMany(t,e=>{e.ui.x=We(e.ui.x+n,4),e.ui.y=We(e.ui.y+r,4)})},zO=k(NO.moveToTableGroup),BO=({collections:e},{payload:{id:t,x:n,y:r}})=>{let i=N(e).collection(`tableGroupEntities`);i.getOrCreate(t,e=>PO({id:e})),i.updateOne(t,e=>{e.ui.x=n,e.ui.y=r})},VO=k(NO.removeTableGroup),HO=({doc:e,collections:t,lww:n},{payload:{id:r},version:i},{clock:a})=>{let o=i??a.getVersion();N(t).collection(`tableGroupEntities`).removeOperator(n,o,r,()=>{let t=e.tableGroupIds.indexOf(r);t!==-1&&e.tableGroupIds.splice(t,1)})},UO=k(NO.resizeTableGroup),WO=({collections:e},{payload:{id:t,x:n,y:r,width:i,height:a}})=>{let o=N(e).collection(`tableGroupEntities`);o.getOrCreate(t,e=>PO({id:e})),o.updateOne(t,e=>{e.ui.x=n,e.ui.y=r,e.ui.width=i,e.ui.height=a})},GO=k(NO.changeTableGroupName),KO=({collections:e,lww:t},{payload:{id:n,value:r},version:i},{clock:a})=>{let o=i??a.getVersion(),s=N(e).collection(`tableGroupEntities`);s.getOrCreate(n,e=>PO({id:e})),s.replaceOperator(t,o,n,`name`,()=>{s.updateOne(n,e=>{e.name=r})})},qO=k(NO.changeTableGroupColor),JO=({collections:e,lww:t},{payload:{id:n,color:r},version:i},{clock:a})=>{let o=i??a.getVersion(),s=N(e).collection(`tableGroupEntities`);s.getOrCreate(n,e=>PO({id:e})),s.replaceOperator(t,o,n,`color`,()=>{s.updateOne(n,e=>{e.color=r})})},YO=k(NO.changeTableGroupZIndex),XO=({collections:e},{payload:{id:t,zIndex:n}})=>{let r=N(e).collection(`tableGroupEntities`);r.getOrCreate(t,e=>PO({id:e})),r.updateOne(t,e=>{e.ui.zIndex=n})},ZO={[NO.addTableGroup]:IO,[NO.moveTableGroup]:RO,[NO.moveToTableGroup]:BO,[NO.removeTableGroup]:HO,[NO.resizeTableGroup]:WO,[NO.changeTableGroupName]:KO,[NO.changeTableGroupColor]:JO,[NO.changeTableGroupZIndex]:XO},QO={addTableGroupAction:FO,moveTableGroupAction:LO,moveToTableGroupAction:zO,removeTableGroupAction:VO,resizeTableGroupAction:UO,changeTableGroupNameAction:GO,changeTableGroupColorAction:qO,changeTableGroupZIndexAction:YO},$O=(e,{payload:{id:t}})=>{e.push(VO({id:t}))},ek=(e,{payload:{id:t}},{collections:n})=>{let r=N(n).collection(`tableGroupEntities`).selectById(t);r&&e.push(FO({id:r.id,color:r.color,ui:{...r.ui}}))},tk=(e,{payload:{id:t}},{collections:n})=>{let r=N(n).collection(`tableGroupEntities`).selectById(t);r&&e.push(GO({id:t,value:r.name}))},nk=(e,{payload:{id:t}},{collections:n})=>{let r=N(n).collection(`tableGroupEntities`).selectById(t);r&&e.push(zO({id:t,x:r.ui.x,y:r.ui.y}))},rk=(e,{payload:{id:t}},{collections:n})=>{let r=N(n).collection(`tableGroupEntities`).selectById(t);if(!r)return;let{x:i,y:a,width:o,height:s}=r.ui;e.push(UO({id:t,x:i,y:a,width:o,height:s}))},ik={[NO.addTableGroup]:$O,[NO.removeTableGroup]:ek,[NO.changeTableGroupName]:tk,[NO.moveToTableGroup]:nk,[NO.resizeTableGroup]:rk},ak=(e,t,n)=>{let r=n.filter(e=>e.type===LO.type);if(!r.length)return;let i=ae(r,e=>e.payload.ids.join(`,`));for(let[,n]of Object.entries(i)){let{payload:{ids:r}}=x(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(LO({ids:r,movementX:-1*i,movementY:-1*a})),t.push(LO({ids:r,movementX:i,movementY:a})))}},ok=(e,t,n)=>{let r=n.filter(({type:e})=>e===qO.type);if(!r.length)return;let i=ae(r,e=>e.payload.id);for(let[n,r]of Object.entries(i)){let i=x(r),a=de(r);e.push(qO({id:n,color:i.payload.prevColor,prevColor:a.payload.color})),t.push(qO({id:n,color:a.payload.color,prevColor:i.payload.prevColor}))}},sk={[NO.moveTableGroup]:ak,[NO.changeTableGroupColor]:ok};function ck(e,...t){try{return e?.(...t)}catch(e){console.error(e)}}const lk={...WD,...MO,...eD,...wE,...aD,...dT,...FT,...$T,...ik},uk={...qD,...OE,...cD,...sk};function dk(e,t,n){let r=[],i=[];for(let t of n){let n=lk[t.type];n&&(n(r,t,e.state),i.push(re(t)))}for(let e of Object.keys(uk))uk[e](r,i,n);r.length&&i.length&&t.push({undo:(e,t)=>{e(r.map(fk(t())))},redo:(e,t)=>{e(i.map(fk(t())))}})}function fk(e){return t=>({...re(t),version:e})}const pk=(e,t)=>n=>{ck(dk,e,t,n)},mk=()=>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=tC(e,i,a),s=Sh();yield gz(),yield BC({[s]:dg.memo}),yield nE({id:s,ui:{...o,zIndex:$S(i,a)}})},hk=e=>function*({doc:{memoIds:t},editor:{selectedMap:n}}){if(e){yield cE({id:e});return}let r=V(t),i=Object.entries(n).filter(([e,t])=>t===dg.memo&&r(e));for(let[e]of i)yield cE({id:e})},gk=(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 gz()),yield BC({[e]:dg.memo}),yield gE({id:e,zIndex:$S(a,o)})},_k={addMemoAction$:mk,removeMemoAction$:hk,selectMemoAction$:gk},vk=`serial`,yk=/* @__PURE__ */ new Map([[`smallserial`,`smallint`],[`serial2`,`smallint`],[`serial4`,`integer`],[`bigserial`,`bigint`],[`serial8`,`bigint`]]),bk=/* @__PURE__ */ new Map([[I.PostgreSQL,`integer`],[I.MySQL,`bigint unsigned`],[I.MariaDB,`bigint unsigned`]]),xk=e=>e.trim().toLowerCase();function Sk(e){let t=xk(e);return t===vk||yk.has(t)}function Ck(e,t){let n=xk(e),r=n===vk?bk.get(t):yk.get(n);if(!r)return e;let i=e.trim();return i===i.toUpperCase()?r.toUpperCase():r}const wk=(e,t)=>N(e).collection(`tableColumnEntities`).selectByIds(t.columnIds).filter(({options:e})=>U(e,R.primaryKey)),Tk=e=>e.trim().toLowerCase(),Ek=/^[\p{L}\p{M}\p{N}]+$/u,Dk=/\p{Ll}\p{Lu}|\p{Lu}\p{Lu}\p{Ll}|[\p{Lo}\p{Lm}][\p{Lu}\p{Ll}]|[\p{Lu}\p{Ll}][\p{Lo}\p{Lm}]/u,Ok=/[\p{M}\p{N}]/gu,kk=e=>Ek.test(e)&&!Dk.test(e.replace(Ok,``));function Ak(e,t){let n=e.trim(),r=t.trim();return!n||!kk(r)||Tk(r)===Tk(n)?r:`${n}_${r}`}function jk(e,t){let n=e;for(let r=2;t.has(Tk(n));r++)n=`${e}_${r}`;return t.add(Tk(n)),n}function Mk(e,t,n){let r=new Set(n.map(Tk).filter(Boolean)),i=t.map(t=>Ak(e,t)),a=e=>i[e]===t[e].trim(),o=i.map((e,t)=>t),s=[...o.filter(a),...o.filter(e=>!a(e))].filter(e=>{let t=Tk(i[e]),n=r.has(t);return t&&r.add(t),n}),c=[...i];for(let e of s)c[e]=jk(i[e],r);return c}const Nk=(e,t,n,{startTableName:r,endColumnNames:i,database:a})=>{let o=Mk(r,e.map(({name:e})=>e),i);return e.flatMap((e,r)=>{let i={id:n[r],tableId:t};return[XD(i),hO({...i,value:!0}),eO({...i,value:o[r]}),iO({...i,value:Ck(e.dataType,a)}),sO({...i,value:e.default}),nO({...i,value:e.comment})]})};V(Object.values({tables:`tables`,columns:`columns`}));const Pk=({x:e,y:t})=>`${e},${t}`,Fk=(e,t)=>e<t?-1:+(e>t),Ik=({kind:e})=>+(e===`memo`),Lk=e=>e.ui.zIndex??0;function Rk({entities:e,offset:t,escapeCollision:n,settings:r,tables:i,memos:a,findSource:o}){let s=/* @__PURE__ */ new Map;if(e.length===0)return s;let c=new Set([...i,...a].map(({ui:e})=>Pk(e))),l=/* @__PURE__ */ 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=tC(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)=>Fk(e.sourceId,t.sourceId));for(let{sourceId:e}of t){let t=l.get(e);if(t){for(;c.has(Pk(t));)t.x+=50,t.y+=50;c.add(Pk(t))}}}let d=$S(i,a);return[...e].sort((e,t)=>Lk(e)-Lk(t)||Ik(e)-Ik(t)||Fk(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 zk(e,t){return t.filter(t=>{switch(t){case F.columnName:return!0;case F.columnDataType:return U(e,P.columnDataType);case F.columnDefault:return U(e,P.columnDefault);case F.columnComment:return U(e,P.columnComment);case F.columnAutoIncrement:return U(e,P.columnAutoIncrement);case F.columnUnique:return U(e,P.columnUnique);case F.columnNotNull:return U(e,P.columnNotNull);default:return!1}})}const Bk=()=>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=tC(e,i,a),s=Sh();yield RC(),yield BC({[s]:dg.table}),yield uD({id:s,ui:{...o,zIndex:$S(i,a)}}),yield $C({tableId:s})},Vk=e=>function*({doc:{tableIds:t,relationshipIds:n,indexIds:r},editor:{selectedMap:i},collections:a}){let o=N(a).collection(`relationshipEntities`).selectByIds(n),s=N(a).collection(`indexEntities`).selectByIds(r);if(e){let t=o.filter(({start:t,end:n})=>t.tableId===e||n.tableId===e),n=s.filter(({tableId:t})=>t===e);for(let{id:e}of n)yield CT({id:e});for(let{id:e}of t)yield NE({id:e});yield gD({id:e});return}let c=V(t),l=Object.entries(i).filter(([e,t])=>t===dg.table&&c(e)).map(([e])=>e),u=V(l),d=o.filter(({start:e,end:t})=>u(e.tableId)||u(t.tableId)),f=s.filter(({tableId:e})=>u(e));for(let{id:e}of f)yield CT({id:e});for(let{id:e}of d)yield NE({id:e});for(let e of l)yield gD({id:e})},Hk=(e,t)=>function*({doc:{tableIds:n,memoIds:r},collections:i,editor:{drawRelationship:a},settings:{database:o}}){let s=N(i).collection(`tableEntities`),c=s.selectByIds(n),l=N(i).collection(`memoEntities`).selectByIds(r);if(t||(yield RC()),yield BC({[e]:dg.table}),yield ED({id:e,zIndex:$S(c,l)}),yield $C({tableId:e}),a){if(a.start){let t=s.selectById(a.start.tableId),n=s.selectById(e);if(!t||!n){yield Dw();return}let r=N(i).collection(`tableColumnEntities`),c=wk(i,t);if(!c.length){yield Dw();return}let l=c.map(()=>Sh());yield Nk(c,n.id,l,{startTableName:t.name,endColumnNames:r.selectByIds(n.columnIds).map(({name:e})=>e),database:o}),yield jE({id:Sh(),relationshipType:a.relationshipType,start:{tableId:t.id,columnIds:c.map(({id:e})=>e)},end:{tableId:n.id,columnIds:l}}),yield Dw()}else yield yz(e)}},Uk={addTableAction$:Bk,removeTableAction$:Vk,selectTableAction$:Hk,pasteTableAction$:e=>function*({editor:{selectedMap:t,focusTable:n},settings:{show:r,columnOrder:i},collections:a}){let o=n&&!wC(n.focusType),s=Object.entries(t).filter(([,e])=>e===dg.table).map(([e])=>e).filter(e=>!o||e!==n?.tableId);for(let t of s)for(let n of e){let e={id:Sh(),tableId:t};yield[XD(e),eO({...e,value:n.name}),iO({...e,value:n.dataType}),sO({...e,value:n.default}),nO({...e,value:n.comment}),hO({...e,value:U(n.options,R.notNull)}),pO({...e,value:U(n.options,R.unique)}),lO({...e,value:U(n.options,R.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=zk(r,i);yield rw();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 eO({...a,value:i.name});case F.columnDataType:return iO({...a,value:i.dataType});case F.columnDefault:return sO({...a,value:i.default});case F.columnComment:return nO({...a,value:i.comment});case F.columnAutoIncrement:return lO({...a,value:U(i.options,R.autoIncrement)});case F.columnUnique:return pO({...a,value:U(i.options,R.unique)});case F.columnNotNull:return hO({...a,value:U(i.options,R.notNull)});default:return null}}).filter(Boolean),tw({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=Sh(),r={id:t,tableId:c.id};yield[XD(r),...f.map(t=>{switch(t){case F.columnName:return eO({...r,value:e.name});case F.columnDataType:return iO({...r,value:e.dataType});case F.columnDefault:return sO({...r,value:e.default});case F.columnComment:return nO({...r,value:e.comment});case F.columnAutoIncrement:return lO({...r,value:U(e.options,R.autoIncrement)});case F.columnUnique:return pO({...r,value:U(e.options,R.unique)});case F.columnNotNull:return hO({...r,value:U(e.options,R.notNull)});default:return null}}).filter(Boolean),tw({tableId:c.id,columnId:t,focusType:n.focusType,$mod:!0,shiftKey:!1})]}},sortTablesToMoveAction$:()=>function*(e,t){let{doc:n,collections:r}=e,i=N(r).collection(`tableEntities`).selectByIds(n.tableIds).map(e=>({...e,ui:{...e.ui}})),a=N(r).collection(`tableGroupEntities`).selectByIds(n.tableGroupIds).map(e=>({...e,ui:{...e.ui}})),o={...e,collections:{...r,tableEntities:Object.fromEntries(i.map(e=>[e.id,e])),tableGroupEntities:Object.fromEntries(a.map(e=>[e.id,e]))}};FD[q.sortTable](o,{type:q.sortTable,payload:void 0},t);let s=new Set(i.map(e=>zy(o,e)));yield i.map(({id:e,ui:{x:t,y:n}})=>mD({id:e,x:t,y:n})),yield a.filter(({id:e})=>s.has(e)).map(({id:e,ui:{x:t,y:n,width:r,height:i}})=>UO({id:e,x:t,y:n,width:r,height:i}))}};function Wk(e,t,n=[],r=N(t.collections).collection(`relationshipEntities`).selectByIds(t.doc.relationshipIds)){let{collections:i,settings:{database:a}}=t,o=N(i).collection(`tableColumnEntities`);for(let t=e.pop();t;t=e.pop()){let{id:i,value:s}=t;if(n.some(({id:e})=>e===i))continue;n.push(t);let c=Ck(s,a);for(let{start:t,end:n}of r){let r=t.columnIds.indexOf(i);if(r!==-1){let t=n.columnIds[r];if(t===void 0)continue;e.push({id:t,tableId:n.tableId,value:c});continue}let a=n.columnIds.indexOf(i);if(a===-1)continue;let l=t.columnIds[a];if(l===void 0)continue;let u=o.selectById(l);u&&Sk(u.dataType)||e.push({id:l,tableId:t.tableId,value:s})}}return n}const Gk=V([H.columnNotNull,H.columnUnique,H.columnAutoIncrement]),Kk=V([H.columnName,H.columnDataType,H.columnDefault,H.columnComment]),qk=e=>function*({editor:{selectedMap:t}}){if(e){let t=Sh();yield XD({id:t,tableId:e}),yield tw({tableId:e,columnId:t,focusType:H.columnName,$mod:!1,shiftKey:!1});return}let n=Object.entries(t).filter(([,e])=>e===dg.table).map(([e])=>({tableId:e,id:Sh()}));for(let e of n)yield XD(e);let r=de(n);r&&(yield tw({tableId:r.tableId,columnId:r.id,focusType:H.columnName,$mod:!1,shiftKey:!1}))},Jk=(e,t)=>function*(n){let{doc:{relationshipIds:r,indexIds:i},editor:{focusTable:a},collections:o}=n;if(a?.columnId){let e=bC(n,t);e?yield tw({tableId:a.tableId,columnId:e,focusType:a.focusType,$mod:!1,shiftKey:!1}):yield $C({tableId:a.tableId,focusType:H.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 CT({id:e});for(let{id:e}of c)yield NE({id:e});for(let n of t)yield QD({id:n,tableId:e})},Yk=(e,t,n)=>function*({collections:r}){if(!Gk(e))return;let i=N(r).collection(`tableColumnEntities`).selectById(n);if(i)switch(e){case H.columnNotNull:yield hO({id:n,tableId:t,value:!U(i.options,R.notNull)});break;case H.columnUnique:yield pO({id:n,tableId:t,value:!U(i.options,R.unique)});break;case H.columnAutoIncrement:yield lO({id:n,tableId:t,value:!U(i.options,R.autoIncrement)})}},Xk=e=>function*(t){let{settings:{relationshipDataTypeSync:n}}=t,r=[e];n&&(r=Wk([e],t)),yield r.map(iO)},Zk=(e,t,n,r)=>function*({collections:i}){if(!Kk(e)||!N(i).collection(`tableColumnEntities`).selectById(n))return;let a={id:n,tableId:t,value:r};switch(e){case H.columnName:yield eO(a);break;case H.columnDataType:yield Xk(a);break;case H.columnDefault:yield sO(a);break;case H.columnComment:yield nO(a)}},Qk=(e,t)=>function*({collections:n}){let r=N(n).collection(`tableEntities`).selectById(e);if(!r)return;let i=N(n).collection(`tableColumnEntities`).selectByIds(t.filter(V(r.columnIds))),a=({options:e})=>U(e,R.primaryKey),o=!i.every(a);yield i.filter(e=>a(e)!==o).map(({id:t})=>dO({tableId:e,id:t,value:o}))},$k={addColumnAction$:qk,removeColumnAction$:Jk,toggleColumnValueAction$:Yk,changeColumnDataTypeAction$:Xk,changeColumnValueAction$:Zk,changeColumnPrimaryKeyAction$:(e,t)=>Qk(e,[t]),changeColumnsPrimaryKeyAction$:Qk};function eA(e){return Object.entries(e).reduce((e,[t,n])=>(n===dg.table?e.tableIds.push(t):n===dg.memo?e.memoIds.push(t):n===dg.tableGroup&&e.tableGroupIds.push(t),e),{tableIds:[],memoIds:[],tableGroupIds:[]})}const tA=({doc:e,collections:t})=>N(t).collection(`tableGroupEntities`).selectByIds(e.tableGroupIds);function*nA(e,t,n,{name:r,color:i}){let a=Sh(),{x:o,y:s,width:c,height:l}=t;yield gz(),yield BC({[a]:dg.tableGroup}),yield FO({id:a,...i?{color:i}:{},ui:{x:o,y:s,width:c,height:l,zIndex:Qy(tA(e))}}),r&&(yield GO({id:a,value:r})),yield n.map(e=>wD({id:e,value:a}))}const rA=(e,t={})=>function*(n){let{doc:r,collections:i}=n;yield*nA(n,e,N(i).collection(`tableEntities`).selectByIds(r.tableIds).filter(t=>!zy(n,t)&&Xy(Yy(n,t),e)).map(({id:e})=>e),t)},iA=(e,t={})=>function*(n){let r=ye(e??eA(n.editor.selectedMap).tableIds).filter(V(n.doc.tableIds)),i=Jy(n,r);i&&(yield*nA(n,i,r,t))},aA=e=>function*(t){let{doc:{tableGroupIds:n},editor:{selectedMap:r}}=t,i=V(n),a=e?[e]:Object.entries(r).filter(([e,t])=>t===dg.tableGroup&&i(e)).map(([e])=>e);for(let e of a)yield Vy(t,e).map(e=>wD({id:e,value:``})),yield VO({id:e})};function oA(e,t,n){return ye([...n,...t.flatMap(t=>Vy(e,t))])}function sA(e,t,n,r){return[...e.length?[LO({ids:e,movementX:n,movementY:r})]:[],...t.length?[fD({ids:t,movementX:n,movementY:r})]:[]].map(e=>$_(Q_.drag,e))}const cA=(e,t,n)=>function*(r){yield sA(e,oA(r,e,[]),t,n)},lA=(e,t)=>function*({doc:n,collections:r}){(!t||n.tableGroupIds.includes(t))&&(yield N(r).collection(`tableEntities`).selectByIds(ye(e).filter(V(n.tableIds))).filter(e=>e.groupId!==t).map(({id:e})=>wD({id:e,value:t})))};function uA(e,t){if(!$y(e))return[];let{doc:n,collections:r,editor:i}=e,{tableIds:a,tableGroupIds:o}=eA(i.selectedMap),s=new Set(n.tableIds),c=a.filter(e=>s.has(e));if(!c.length)return[];let l=new Set(o.flatMap(t=>Vy(e,t))),u=c.filter(e=>!l.has(e));if(!u.length)return[];let d=new Set(o),f=Ky(e,{excludeTableIds:u});t?.forEach((e,t)=>{let n=f.get(t);n&&!d.has(t)&&f.set(t,ly(n,e))});let p=N(r).collection(`tableEntities`).selectByIds(u),m=Zy(e,p.map(t=>Yy(e,t)),{boxes:f});return p.map((e,t)=>{let n=m[t]?.id??``;return{table:e,groupId:n,box:f.get(n)??null}})}const dA=e=>function*(t){yield uA(t,e).filter(({table:e,groupId:n})=>n!==zy(t,e)).map(({table:e,groupId:t})=>$_(Q_.drag,wD({id:e.id,value:t,prevValue:e.groupId})))},fA=(e,t)=>function*(n){t||(yield gz()),yield BC({[e]:dg.tableGroup}),yield YO({id:e,zIndex:Qy(tA(n))}),yield pA(n,e)};function pA(e,t){let{doc:{tableIds:n,memoIds:r},collections:i}=e,a=V(Vy(e,t)),o=N(i).collection(`tableEntities`).selectByIds(n),s=o.filter(e=>a(e.id)).sort((e,t)=>e.ui.zIndex-t.ui.zIndex),c=[...o.filter(e=>!a(e.id)),...N(i).collection(`memoEntities`).selectByIds(r)],l=Math.max(1,...c.map(({ui:e})=>e.zIndex))+1;return s.every(({ui:e})=>e.zIndex>=l)?[]:s.map((e,t)=>ED({id:e.id,zIndex:l+t}))}const mA={addTableGroupAction$:rA,addTableGroupFromTablesAction$:iA,removeTableGroupAction$:aA,moveTableGroupAction$:cA,setTableGroupAction$:lA,dropTablesIntoGroupsAction$:dA,selectTableGroupAction$:fA,selectTableGroupTablesAction$:e=>function*(t){yield gz(),yield BC(Object.fromEntries(Vy(t,e).map(e=>[e,dg.table])))}};function hA(e,t){return t.x>=e.x&&t.y>=e.y&&t.x+t.w<=e.x+e.w&&t.y+t.h<=e.y+e.h}function gA(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)}const _A=/[\s_]+/g;function vA(e){let t=e.trim().replace(_A,` `).toUpperCase(),n=Object.entries(lg).find(([,e])=>e===t);return n?Number(n[0]):$h.none}const yA={[$h.noAction]:`NA`,[$h.cascade]:`C`,[$h.setNull]:`SN`,[$h.setDefault]:`SD`,[$h.restrict]:`R`};function bA({onDelete:e,onUpdate:t}){return[yA[e]?`D:${yA[e]}`:``,yA[t]?`U:${yA[t]}`:``].filter(Boolean).join(` `)}function xA({onDelete:e,onUpdate:t}){return[lg[e]?`ON DELETE ${lg[e]}`:``,lg[t]?`ON UPDATE ${lg[t]}`:``].filter(Boolean).join(`
|
|
2
|
-
`)}function SA(e,t){for(let n of e)if(n.name.toUpperCase()===t.toUpperCase())return n;return null}const CA={[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 wA(e,t,n,r=[]){let i=DA(e,n,r);return i.members?EA(i.members,t)??CA[t]??i.typeName:i.typeName}function TA(e,t,n,r=[]){let{members:i}=DA(e,t,r);return!i||EA(i,n)!==void 0?``:` ${e}: ${i.join(` | `)}`}function EA(e,t){if(t===I.MySQL||t===I.MariaDB)return`ENUM(${e.map(e=>`'${e.replace(/'/g,`''`)}'`).join(`,`)})`}function DA(e,t,n){if(n.length)return{typeName:e,members:n};let r=/* @__PURE__ */ new Set,i=e;for(;!r.has(i);){r.add(i);let e=OA(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 OA(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 kA={database:``,catalog:``,schema:``},AA=NA(kA);function jA(e,t,n){let r=Nm({}),i=MA(e.entities),a=e.entities.map(a=>IA(r,t,e,n,a,i(a)));return zA(r,t,a,e,FA(e.entities,a)),WA(r,a),r}function MA(e){let t=new Set(e.map(e=>NA(e.namespace)));return e=>{let n=NA(e.namespace);return t.size>1&&n!==AA?`${PA(e.namespace)}_${e.name}`:e.name}}function NA({database:e,catalog:t,schema:n}){return`${e}.${t}.${n}`}function PA({database:e,catalog:t,schema:n}){return[e,t,n].filter(e=>e!==``).join(`_`)}function FA(e,t){let n=/* @__PURE__ */ 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=NA(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=NA(e.namespace);return n.get(`${t}.${e.entityName}`.toLowerCase())??(t===AA?n.get(e.entityName.toLowerCase())??null:null)}}function IA({doc:e,collections:t},n,r,i,a,o){let{toWidth:s}=n,c=v_(o),l=v_(a.comment),u=lD({name:c,comment:l,ui:{widthName:G(s(c)),widthComment:G(s(l)),color:a.color}}),d={source:a,table:u,columns:[]};return a.attributes.forEach(e=>{let n=v_(e.path),a=wA(e.typeName,i,r,e.enumValues),o=`${v_(e.comment)}${TA(e.typeName,r,i,e.enumValues)}`.trim(),c=v_(e.default);RA(t,d,YD({tableId:u.id,name:n,comment:o,dataType:a,default:c,options:(e.autoIncrement?R.autoIncrement:0)|(e.primaryKey?R.primaryKey:0)|(LA(e)?R.unique:0)|(e.notNull?R.notNull:0),ui:{widthName:G(s(n)),widthComment:G(s(o)),widthDataType:G(s(a)),widthDefault:G(s(c)),keys:e.primaryKey?z.primaryKey:0}}))}),e.tableIds.push(u.id),N(t).collection(`tableEntities`).setOne(u),d}function LA(e){return e.indexes.some(e=>e.unique&&e.name===``)}function RA(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 zA(e,t,n,r,i){let a=/* @__PURE__ */ new Set;r.relations.forEach(r=>{let o=i(r.src),s=i(r.ref);if(!o||!s)return;let c=BA(o,r.src),l=BA(s,r.ref);if(c.length!==0&&l.length!==0&&c.length===l.length){if(r.srcCardinality===`n`&&r.refCardinality===`n`){HA(e,t,n,o,s);return}VA(e,t,a,{parent:s,parentColumns:l,child:o,childColumns:c,toMany:r.refCardinality===`n`,onDelete:vA(r.onDelete),onUpdate:vA(r.onUpdate)})}})}function BA(e,t){if(t.attributePaths.length===0)return xv(e.columns);let n=[];for(let r of t.attributePaths){let t=SA(e.columns,r);if(!t)return[];n.push(t)}return n}function VA({doc:e,collections:t},{toWidth:n},r,{parent:i,parentColumns:a,child:o,childColumns:s,toMany:c,onDelete:l,onUpdate:u}){let d=`${i.table.id}:${o.table.id}:${s.map(e=>e.id).join(`,`)}`;if(r.has(d))return;r.add(d);let f=s.every(e=>U(e.options,R.notNull));s.forEach((e,t)=>{if(e.dataType===``){let{dataType:r}=a[t];e.dataType=r,e.ui.widthDataType=G(n(r))}e.ui.keys=U(e.ui.keys,z.primaryKey)?e.ui.keys|z.foreignKey:z.foreignKey});let p=AE({identification:s.every(e=>U(e.ui.keys,z.primaryKey)&&U(e.ui.keys,z.foreignKey)),relationshipType:c?f?Zh.OneN:Zh.ZeroN:f?Zh.OneOnly:Zh.ZeroOne,onDelete:l,onUpdate:u,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(p.id),N(t).collection(`relationshipEntities`).setOne(p)}function HA(e,t,n,r,i){let{doc:a,collections:o}=e,{toWidth:s}=t,c=xv(r.columns),l=xv(i.columns);if(!c.length||!l.length)return;let u=Sv(n.map(e=>e.table),``,`${r.table.name}_${i.table.name}`),d=`Junction table inferred from ${r.table.name} <-> ${i.table.name}`,f=lD({name:u,comment:d,ui:{widthName:G(s(u)),widthComment:G(s(d))}}),p={source:{namespace:kA,name:u,alias:``,comment:d,color:``,attributes:[]},table:f,columns:[]};a.tableIds.push(f.id),N(o).collection(`tableEntities`).setOne(f),n.push(p),UA(e,t,p,r,c),UA(e,t,p,i,l)}function UA(e,{toWidth:t},n,r,i){let{doc:a,collections:o}=e,s=i.map(e=>{let i=Sv(n.columns,``,`${r.table.name}_${e.name}`),{dataType:a}=e,s=YD({tableId:n.table.id,name:i,dataType:a,options:R.primaryKey|R.notNull,ui:{keys:z.primaryKey|z.foreignKey,widthName:G(t(i)),widthDataType:G(t(a))}});return RA(o,n,s),s}),c=AE({identification:!0,relationshipType:Zh.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 WA({doc:e,collections:t},n){n.forEach(({source:n,table:r,columns:i})=>{let a=/* @__PURE__ */ 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:bT({name:v_(e.name),tableId:r.id}),indexColumns:[]};s.index.unique=s.index.unique||e.unique,s.indexColumns.push(LT({indexId:s.index.id,columnId:n.id,orderType:eg.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 GA={identifier:1,quoted:2,string:3,expression:4,number:5,punctuation:6,doc:7,comment:8,newline:9},KA=/[ \t\f\v]/,qA=/[0-9]/,JA=/[A-Za-z_\u0080-\uffff]/,YA=/[0-9A-Za-z_#\u0080-\uffff]/,XA=/^[ \t]*/,ZA=/\\#/g,QA={n:`
|
|
3
|
-
`};function
|
|
1
|
+
import*as e from"comlink";import{DD as t}from"konva/lib/DragAndDrop";import{Konva as n}from"konva/lib/Global";import{Stage as r}from"konva/lib/Stage";import{CHARSET as i,DECLARATION as a,IMPORT as o,LAYER as s,NAMESPACE as c,RULESET as l,alloc as u,dealloc as d,parse as f}from"stylis";import{Container as p}from"konva/lib/Container";import{Group as m}from"konva/lib/Group";import{Layer as h}from"konva/lib/Layer";import{Node as g}from"konva/lib/Node";import{Shape as _}from"konva/lib/Shape";import{Circle as v}from"konva/lib/shapes/Circle";import{Line as y}from"konva/lib/shapes/Line";import{Path as b}from"konva/lib/shapes/Path";import{Rect as ee}from"konva/lib/shapes/Rect";import{Text as te}from"konva/lib/shapes/Text";import{camelCase as ne,clamp as re,cloneDeep as ie,difference as ae,groupBy as oe,head as x,isBoolean as se,isEqual as ce,isFunction as le,isNil as S,isNotNil as ue,isNumber as de,isPlainObject as C,isString as w,last as fe,lowerFirst as pe,mapValues as me,noop as he,omit as ge,pick as _e,range as ve,snakeCase as ye,uniq as be,upperFirst as xe}from"es-toolkit";import{Observable as Se,Subject as Ce,animationFrames as we,asapScheduler as Te,buffer as Ee,debounceTime as De,defer as Oe,filter as ke,fromEvent as Ae,groupBy as je,map as Me,merge as Ne,mergeMap as Pe,observeOn as Fe,share as Ie,startWith as Le,switchMap as Re,take as ze,takeUntil as Be,tap as Ve,throttle as He,timer as Ue}from"rxjs";import{get as We,isEmpty as Ge,round as Ke}from"es-toolkit/compat";import{Kind as qe,TokenKind as Je,parse as Ye}from"graphql";import{ArrowDown as Xe,ArrowLeft as Ze,ArrowRight as Qe,ArrowUp as $e,Atom as et,BookType as tt,Braces as nt,Brackets as rt,CaseSensitive as it,CaseUpper as at,Check as ot,ChevronDown as st,ChevronRight as ct,ChevronsDownUp as lt,Code as ut,Contrast as dt,Copy as ft,Database as pt,Download as mt,Ellipsis as ht,ExternalLink as gt,Eye as _t,FileDiff as vt,FileImage as yt,FileInput as bt,FileOutput as xt,Folder as St,FolderOpen as Ct,Fullscreen as wt,FunnelX as Tt,GripVertical as Et,Group as Dt,Hand as Ot,KeyRound as kt,Keyboard as At,Languages as jt,Link as Mt,List as Nt,ListPlus as Pt,ListTree as Ft,ListX as It,LoaderCircle as Lt,Lock as Rt,LockOpen as zt,Logs as Bt,Maximize as Vt,MessageSquare as Ht,Minimize as Ut,Minus as Wt,Monitor as Gt,MoonStar as Kt,MousePointer2 as qt,Network as Jt,Palette as Yt,PanelRight as Xt,PanelRightClose as Zt,PanelRightOpen as Qt,Pencil as $t,Pipette as en,Plus as tn,Redo2 as nn,RefreshCw as rn,Regex as an,Replace as on,ReplaceAll as sn,RotateCcwClock as cn,Search as ln,Settings as un,Share2 as dn,Spline as fn,StickyNote as pn,Sun as mn,Table2 as hn,TableProperties as gn,TriangleAlert as _n,Undo2 as vn,Ungroup as yn,Upload as bn,WandSparkles as xn,Waypoints as Sn,WholeWord as Cn,Workflow as wn,X as Tn}from"lucide";import{layoutWithLines as En,prepareWithSegments as Dn}from"@chenglou/pretext";import{amber as On,amberA as kn,amberDark as An,amberDarkA as jn,blue as Mn,blueA as Nn,blueDark as Pn,blueDarkA as Fn,bronze as In,bronzeA as Ln,bronzeDark as Rn,bronzeDarkA as zn,brown as Bn,brownA as Vn,brownDark as Hn,brownDarkA as Un,crimson as Wn,crimsonA as Gn,crimsonDark as Kn,crimsonDarkA as qn,cyan as Jn,cyanA as Yn,cyanDark as Xn,cyanDarkA as Zn,gold as Qn,goldA as $n,goldDark as er,goldDarkA as tr,grass as nr,grassA as rr,grassDark as ir,grassDarkA as ar,gray as or,grayA as sr,grayDark as cr,grayDarkA as lr,green as ur,greenA as dr,greenDark as fr,greenDarkA as pr,indigo as mr,indigoA as hr,indigoDark as gr,indigoDarkA as _r,iris as vr,irisA as yr,irisDark as br,irisDarkA as xr,jade as Sr,jadeA as Cr,jadeDark as wr,jadeDarkA as Tr,lime as Er,limeA as Dr,limeDark as Or,limeDarkA as kr,mauve as Ar,mauveA as jr,mauveDark as Mr,mauveDarkA as Nr,mint as Pr,mintA as Fr,mintDark as Ir,mintDarkA as Lr,olive as Rr,oliveA as zr,oliveDark as Br,oliveDarkA as Vr,orange as Hr,orangeA as Ur,orangeDark as Wr,orangeDarkA as Gr,pink as Kr,pinkA as qr,pinkDark as Jr,pinkDarkA as Yr,plum as Xr,plumA as Zr,plumDark as Qr,plumDarkA as $r,purple as ei,purpleA as ti,purpleDark as ni,purpleDarkA as ri,red as ii,redA as ai,redDark as oi,redDarkA as si,ruby as ci,rubyA as li,rubyDark as ui,rubyDarkA as di,sage as fi,sageA as pi,sageDark as mi,sageDarkA as hi,sand as gi,sandA as _i,sandDark as vi,sandDarkA as yi,sky as bi,skyA as xi,skyDark as Si,skyDarkA as Ci,slate as wi,slateA as Ti,slateDark as Ei,slateDarkA as Di,teal as Oi,tealA as ki,tealDark as Ai,tealDarkA as ji,tomato as Mi,tomatoA as Ni,tomatoDark as Pi,tomatoDarkA as Fi,violet as Ii,violetA as Li,violetDark as Ri,violetDarkA as zi,yellow as Bi,yellowA as Vi,yellowDark as Hi,yellowDarkA as Ui}from"@radix-ui/colors";import{Easings as Wi,Tween as Gi}from"konva/lib/Tween";function Ki(e){"@babel/helpers - typeof";return Ki=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},Ki(e)}function qi(e,t){if(Ki(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(Ki(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function Ji(e){var t=qi(e,`string`);return Ki(t)==`symbol`?t:t+``}function Yi(e,t,n){return(t=Ji(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Xi=class extends EventTarget{constructor(...e){super(...e),Yi(this,`textContent`,``)}},Zi=class{};function Qi(){let e=new OffscreenCanvas(1,1);return e.style??={},e}typeof document>`u`&&(Reflect.set(globalThis,`document`,{querySelector:()=>null,querySelectorAll:()=>[],createElement:e=>e===`canvas`?Qi():new Xi}),Reflect.set(globalThis,`Node`,Zi),Reflect.set(globalThis,`HTMLElement`,Zi)),n.autoDrawEnabled=!1,Reflect.set(n,`DD`,t);var $i=/* @__PURE__ */ new Set,ea=/* @__PURE__ */ new Set,ta=/* @__PURE__ */ new Map,na=[],ra=[],ia=/* @__PURE__ */ new Set,aa=!1,oa=!1,sa=0;function ca(){return sa}function la(){sa+=1;try{ia.forEach(e=>e())}finally{aa=!1,oa=!1;for(let e of $i){if(ta.has(e)){ea.add(e);continue}e.getStage()instanceof r&&e.batchDraw()}$i.clear(),na.splice(0).forEach(e=>e())}}function ua(e){return ia.add(e),()=>{ia.delete(e)}}function da(){queueMicrotask(()=>{if(oa){oa=!1,da();return}la()})}function fa(){oa=!0,!aa&&(aa=!0,da())}function pa(e){if(ta.has(e)){ea.add(e);return}$i.add(e),fa()}function ma(e){ta.set(e,(ta.get(e)??0)+1)}function ha(e){let t=(ta.get(e)??0)-1;t>0?ta.set(e,t):ta.delete(e),ra.splice(0).forEach(e=>e()),t<=0&&ea.delete(e)&&pa(e)}function ga(){return new Promise(e=>{ra.push(e)})}function _a(){return ta.size?ga().then(_a):aa?new Promise(e=>{na.push(e)}):Promise.resolve()}function va(e,t){return Object.freeze({key:t??Symbol(),value:e})}var ya={subscribe:`@@r-html/context-subscribe`,unsubscribe:`@@r-html/context-unsubscribe`};function ba(e,t){function n(n,r){return new CustomEvent(e,{detail:n,...t,...r})}return n.toString=()=>`${e}`,n.type=e,n}var xa=ba(ya.subscribe,{bubbles:!0,composed:!0}),Sa=ba(ya.unsubscribe,{bubbles:!0,composed:!0});function Ca(e,t){let n=e=>{let n=e;t.dispatchEvent(xa(n.detail))},r=e=>{let n=e;t.dispatchEvent(Sa(n.detail))};return e.addEventListener(xa.type,n),e.addEventListener(Sa.type,r),()=>{e.removeEventListener(xa.type,n),e.removeEventListener(Sa.type,r)}}function wa(e,...t){try{return e?.(...t)}catch(e){console.error(e)}}var Ta=queueMicrotask??(e=>{Promise.resolve().then(e)}),Ea=e=>t=>typeof t===e,Da=Ea(`object`),Oa=Ea(`bigint`),ka=Ea(`boolean`),Aa=Ea(`function`),ja=Ea(`number`),Ma=Ea(`string`),Na=Ea(`symbol`),Pa=Ea(`undefined`),Fa=e=>e===null,{isArray:Ia}=Array,La=e=>Da(e)&&!Fa(e)&&!Ia(e),Ra=e=>Oa(e)||ka(e)||ja(e)||Ma(e)||Na(e)||Pa(e)||Fa(e);function za(){let e=/* @__PURE__ */ 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 Ba=`...`,Va=`@@r-html-${Math.random().toString().substring(2,8)}`,Ha=`${Ba}${Va}`,Ua=RegExp(`${Va}_(\\d+)_`,`g`),Wa=RegExp(`^${Va}_\\d+_$`),Ga=/^\n/,Ka=/* @__PURE__ */ function(e){return e.attribute=`attribute`,e.boolean=`boolean`,e.event=`event`,e.property=`property`,e.spread=`spread`,e.directive=`directive`,e}({}),qa=Symbol.for(`https://github.com/dineug/r-html#beforeMount`),Ja=Symbol.for(`https://github.com/dineug/r-html#mounted`),Ya=Symbol.for(`https://github.com/dineug/r-html#unmounted`),Xa=Symbol.for(`https://github.com/dineug/r-html#beforeFirstUpdate`),Za=Symbol.for(`https://github.com/dineug/r-html#beforeUpdate`),Qa=Symbol.for(`https://github.com/dineug/r-html#firstUpdated`),$a=Symbol.for(`https://github.com/dineug/r-html#updated`),eo=[qa,Ja,Ya,Xa,Za,Qa,$a],to=Symbol.for(`https://github.com/dineug/r-html#Directive`),no=Symbol.for(`https://github.com/dineug/r-html#TemplateLiterals`),ro=null;function io(e){ro=e}var ao=e=>t=>{ro&&(ro[e]??(ro[e]=[])).push(t)},oo=ao(qa),so=ao(Ja),co=ao(Ya);function lo(e,t){let n=Reflect.get(e,t,e);Ia(n)&&n.forEach(wa)}function uo(e){eo.forEach(t=>Reflect.set(e,t,null,e))}function fo(e,t){if(t.has(e))throw TypeError(`Cannot initialize the same private elements twice on an object`)}function T(e,t,n){fo(e,t),t.set(e,n)}function po(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(po(e,t),n),n}function D(e,t){return e.get(po(e,t))}var mo=za(),ho=e=>e,go=e=>{var t=/* @__PURE__ */ new WeakMap,n=/* @__PURE__ */ new WeakMap;return 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=ho(e);super.commit(n),E(t,this,e)}hmr(){E(n,this,mo.subscribe(e=>D(t,this).includes(e)&&this.commit(D(t,this))))}destroy(){D(n,this)?.call(this),super.destroy?.()}}},_o=/* @__PURE__ */ new WeakMap,vo=/* @__PURE__ */ new WeakMap,yo=/* @__PURE__ */ new WeakMap,bo=/* @__PURE__ */ new WeakMap,xo=/* @__PURE__ */ new WeakMap,So={shallow:!1},Co=null;function wo(e){return Co=e,wa(e),Co=null,()=>To(e)}function To(e){zo(e);let t=xo.get(e);if(t)for(let[n]of t.entries())vo.get(n)?.delete(e);t&&xo.delete(e)}function Eo(e){if(!Co)return;let t=vo.get(e);t?t.has(Co)||t.add(Co):vo.set(e,/* @__PURE__ */ new Set([Co]))}function Do(e,t){if(!Co)return;let n=xo.get(Co);if(n){let r=n.get(e);r?r.has(t)||r.add(t):n.set(e,/* @__PURE__ */ new Set([t]))}else xo.set(Co,/* @__PURE__ */ new Map([[e,/* @__PURE__ */ new Set([t])]]))}var Oo=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||(Ia(e)||La(e))&&Object.isFrozen(e);function ko(e,t={}){let{shallow:n}=Object.assign({},So,t),r=new Proxy(e,{get(r,i,a){let o=Reflect.get(r,i,a);return Oo(o)?o:(Eo(e),Do(e,i),!n&&(La(o)||Ia(o))&&!yo.has(o)?_o.has(o)?_o.get(o):ko(o,t):o)},set(e,t,n,r){let i=Reflect.get(e,t,r),a=Reflect.set(e,t,n,r);return(!Ia(e)&&i!==n||t===`length`)&&(Bo(e,t),Uo(e,t)),a},deleteProperty(e,t){let n=Reflect.deleteProperty(e,t);return Bo(e,t),Uo(e,t),n}});return _o.set(e,r),yo.set(r,e),r}function Ao(e){return(bo.get(e)??bo.set(e,za()).get(e)).asReadonly()}var jo=[],Mo=/* @__PURE__ */ new Map,No=/* @__PURE__ */ new Map,Po=!0;function Fo(e,t,n){let r=xo.get(n);if(!r)return!1;let i=r.get(e);return i?i.has(t):!1}var Io=e=>t=>{let n=Mo.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()}};jo.push(n),Mo.set(t,n)}return Po&&=(Ta(Ho),!1),i},Lo=Io(`observer`),Ro=Io(`nextTick`);function zo(e){let t=Mo.get(e);if(!t)return;let n=jo.indexOf(t);n===-1||jo.splice(n,1),Mo.delete(e),t.resolve()}var Bo=(e,t)=>vo.get(e)?.forEach(n=>Fo(e,t,n)&&Lo(n));function Vo(){let e=jo.shift();if(e){if(Mo.delete(e.fn),e.type===`observer`)To(e.fn),wo(e.fn),e.resolve();else if(e.type===`nextTick`){let t=wa(e.fn);t instanceof Promise?t.finally(e.resolve):e.resolve()}}}function Ho(){for(;jo.length;)Vo();Po=!0}function Uo(e,t){let n=_o.get(e);if(!n)return;let r=bo.get(n);if(!r)return;let i=No.get(n);i?i.has(t)||i.add(t):(No.set(n,/* @__PURE__ */ new Set([t])),Ro(()=>{let e=No.get(n);e&&(No.delete(n),e.forEach(e=>r.next(e)))}))}function Wo(e,t){let n=ko({value:t.value},{shallow:!0}),r=e=>{n.value=e},i=()=>e instanceof HTMLElement?e:e.parentElement??e.host,a=()=>{i().dispatchEvent(xa({context:t,observer:r}))};return a(),oo(a),co(()=>{i().dispatchEvent(Sa({context:t,observer:r}))}),n}function Go(e,t,n){let r=e instanceof HTMLElement?e:e.parentElement??e.host,i=za(),a=/* @__PURE__ */ 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(xa.type,o),r.addEventListener(Sa.type,s),{set:e=>{i.next(e)},destroy:()=>{r.removeEventListener(xa.type,o),r.removeEventListener(Sa.type,s);for(let e of a.values())e();a.clear()}}}var Ko=/* @__PURE__ */ function(e){return e.node=`node`,e.attribute=`attribute`,e}({});function qo(e,t){return Reflect.set(t,to,e),t}function Jo(e,t,n){let r={startNode:e,endNode:t};return Reflect.defineProperty(r,"helper",{value:n}),r}function Yo(e,t){return(...n)=>qo(Ko.node,[e(...n),t])}var Xo=/* @__PURE__ */ function(e){return e.html=`html`,e.svg=`svg`,e.css=`css`,e}({}),Zo=new Set(Object.values(Xo)),Qo=Symbol.for(`https://github.com/dineug/r-html#CSSSource`),$o=/* @__PURE__ */ new WeakMap,es=/* @__PURE__ */ new WeakMap,ts=/* @__PURE__ */ new Set([Xo.svg]),ns=e=>`${Va}_${e}_`,rs=e=>Ia(e)&&Ia(e.raw),is=e=>La(e)&&rs(e.strings)&&Ia(e.values)&&Zo.has(Reflect.get(e,no)??``),as=e=>is(e)&&e[no]===Xo.css,os=(e,t=!0,n=!1)=>r=>t?!!r?.trimStart().startsWith(e):n?!!r?.trimEnd().endsWith(e):new RegExp(e).test(r??``),ss=os(Ha),cs=os(`.`),ls=os(`?`),us=os(`@`),ds=os(`on`),fs=os(Va,!1),ps=e=>fs(e)&&Wa.test(e?.trim()??``),ms=({type:e,value:t})=>e===Ka.spread||e===Ka.directive||fs(t),hs=e=>ts.has(e),gs=e=>ps(e)?Ka.directive:ss(e)?Ka.spread:cs(e)?Ka.property:us(e)||ds(e)?Ka.event:ls(e)?Ka.boolean:Ka.attribute,_s=e=>ss(e)?e.substring(3):ps(e)?e:cs(e)||us(e)||ls(e)?e.substring(1):ds(e)?e.substring(2):e;function vs(e){let t=[],n=Ua.exec(e);for(;n;){let r=Number(n[1]);t.push([n[0],Number.isInteger(r)?r:-1]),n=Ua.exec(e)}return t}var ys=Symbol(`https://github.com/dineug/r-html.git#hostBridge`);function bs(e,t){if(t instanceof ShadowRoot){let n=t.host;Reflect.set(e,ys,n)}return()=>{Reflect.deleteProperty(e,ys)}}function xs(e){return Reflect.get(e,ys)??null}function Ss(e){return Ra(e)&&!Fa(e)&&!Pa(e)||as(e)?String(e):``}var Cs={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?Ss(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=xs(r);e&&(n.host=e)}return n},bridgeFragment(e,t){let n=Ca(e,t),r=bs(e,t);return()=>{n(),r()}}};function ws(e){"@babel/helpers - typeof";return ws=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},ws(e)}function Ts(e,t){if(ws(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(ws(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function Es(e){var t=Ts(e,`string`);return ws(t)==`symbol`?t:t+``}function Ds(e,t,n){return(t=Es(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Os,ks=/* @__PURE__ */ function(e){return e.element=`element`,e.text=`text`,e.comment=`comment`,e}({});Os=Symbol.iterator;var As=class{constructor(e={}){Ds(this,`type`,`comment`),Ds(this,`value`,``),Ds(this,`attrs`,void 0),Ds(this,`parent`,null),Ds(this,`children`,void 0),Object.assign(this,e)}*iterParent(){yield this,this.parent&&(yield*this.parent.iterParent())}*[Os](){if(yield this,this.children)for(let e of this.children)yield*e}},js=e=>!!e&&e!==`false`;function Ms(e){let t=({type:t,value:n},r=!1)=>t===ks.element?e.createElement(n,r):t===ks.text?e.createText(n):e.createMarker(n),n=(t,{type:n,name:r,value:i})=>{switch(n){case Ka.attribute:e.setAttribute(t,r,i??``,!1);break;case Ka.boolean:js(i)&&e.setAttribute(t,r,``,!1);break;case Ka.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 Ns=Ms(Cs);Ns.setAttr,Ns.insertBeforeNode,Ns.insertAfterNode,Ns.removeNode,Ns.rangeNodes,Ns.removeRange;var Ps=Ns.isHostNode;function Fs(e,{type:t,name:n,value:r}){switch(t){case Ka.attribute:case Ka.property:Reflect.set(e,n,r);break;case Ka.boolean:Reflect.set(e,n,js(r))}}var Is=(e,t)=>e.length===t.length&&e.every((e,n)=>e===t[n]);function Ls(e,t){if(e===t)return!0;let n=La(e)?e:{},r=La(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 Rs=e=>Ia(e)&&Aa(e[0])&&(Pa(e[1])||ka(e[1])||La(e[1])),zs=()=>{},Bs=e=>e instanceof HTMLElement,Vs=e=>e instanceof SVGElement,Hs=e=>e instanceof Promise,Us=/* @__PURE__ */ new WeakMap,Ws=/* @__PURE__ */ new WeakMap,Gs=/* @__PURE__ */ new WeakMap,Ks=/* @__PURE__ */ new WeakMap,qs=/* @__PURE__ */ new WeakMap,Js=/* @__PURE__ */ new WeakMap,Ys=/* @__PURE__ */ new WeakMap,Xs=/* @__PURE__ */ new WeakMap,Zs=/* @__PURE__ */ new WeakMap,Qs=class{constructor(e,{name:t,value:n},r=Ns){T(this,Us,void 0),T(this,Ws,void 0),T(this,Gs,void 0),T(this,Ks,void 0),T(this,qs,[]),T(this,Js,[]),T(this,Ys,void 0),T(this,Xs,null),T(this,Zs,null),E(Us,this,r),E(Ws,this,e),E(Gs,this,t),E(Ks,this,n),E(qs,this,vs(n??``)),E(Ys,this,D(qs,this).length===1&&(n??``).trim()===D(qs,this)[0][0])}commit(e){let t=D(qs,this).map(([t,n])=>e[n]);if(Is(D(Js,this),t))return;let n=t[t.length-1];if(D(Gs,this)===`class`)this.classCommit(n);else if(D(Gs,this)===`style`)this.styleCommit(n);else if(D(Ys,this))D(Us,this).setAttribute(D(Ws,this),D(Gs,this),t[0],!0);else{let e=t.reduce((e,t,n)=>e.replace(new RegExp(D(qs,this)[n][0]),Ss(t)),D(Ks,this)??``);D(Us,this).setAttribute(D(Ws,this),D(Gs,this),e.trim(),!1)}E(Js,this,t)}classCommit(e){let t=D(Ws,this);if(!Bs(t)&&!Vs(t))return;let n=D(Js,this)[D(Js,this).length-1];if(n===e||Ia(n)&&Ia(e)&&Is(n,e)||La(n)&&La(e)&&Ls(n,e))return;let r=[...t.classList],i=ec(e);if(Fa(D(Zs,this)))E(Zs,this,r);else{let e=D(Zs,this),n=r.filter(t=>!e.includes(t)&&!i.includes(t));t.classList.remove(...n)}t.classList.add(...i)}styleCommit(e){let t=D(Ws,this);if(!Bs(t)&&!Vs(t))return;let n=D(Js,this)[D(Js,this).length-1];if(Ls(n,e))return;let r=$s(t),i=La(e)?e:{};if(Fa(D(Xs,this)))E(Xs,this,r);else{let e=D(Xs,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 $s(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 ec(e,t=[]){if(!e)return t;if(as(e))return t.push(Ss(e)),t;if(Ra(e))t.push(Ss(e));else if(Da(e)){if(Ia(e))for(let n=0;n<e.length;n++)e[n]&&ec(e[n],t);else for(let n in e)e[n]&&t.push(Ss(n))}return t}var tc=/* @__PURE__ */ new WeakMap,nc=/* @__PURE__ */ new WeakMap,rc=/* @__PURE__ */ new WeakMap,ic=/* @__PURE__ */ new WeakMap,ac=/* @__PURE__ */ new WeakMap,oc=class{constructor(e,{name:t,value:n},r=Ns){T(this,tc,void 0),T(this,nc,void 0),T(this,rc,void 0),T(this,ic,[]),T(this,ac,[]),E(tc,this,r),E(nc,this,e),E(rc,this,t),E(ic,this,vs(n??``))}commit(e){let t=D(ic,this).map(([t,n])=>e[n]);if(Is(D(ac,this),t))return;let n=t[t.length-1];js(n)?D(tc,this).setAttribute(D(nc,this),D(rc,this),``,!1):D(tc,this).removeAttribute(D(nc,this),D(rc,this)),E(ac,this,t)}},sc=e=>Ia(e)&&Reflect.get(e,to)===Ko.attribute,cc=/* @__PURE__ */ new WeakMap,lc=/* @__PURE__ */ new WeakMap,uc=/* @__PURE__ */ new WeakMap,dc=/* @__PURE__ */ new WeakMap,fc=/* @__PURE__ */ new WeakMap,pc=class{constructor(e,{name:t}){T(this,cc,void 0),T(this,lc,void 0),T(this,uc,null),T(this,dc,null),T(this,fc,null),E(cc,this,e),E(lc,this,vs(t)[0])}commit(e){let[,t]=D(lc,this),n=e[t];if(!sc(n))return;let[r,i]=n;if(D(uc,this)!==i)D(fc,this)?.call(this),E(dc,this,i({node:D(cc,this)})),E(uc,this,i),E(fc,this,D(dc,this)?.call(this,r));else{let e=D(dc,this)?.call(this,r);D(fc,this)!==e&&(D(fc,this)?.call(this),E(fc,this,e))}}destroy(){D(fc,this)?.call(this)}},mc=/* @__PURE__ */ new WeakMap,hc=/* @__PURE__ */ new WeakMap,gc=/* @__PURE__ */ new WeakMap,_c=/* @__PURE__ */ new WeakMap,vc=/* @__PURE__ */ new WeakMap,yc=class{constructor(e,{name:t,value:n},r=Ns){T(this,mc,void 0),T(this,hc,void 0),T(this,gc,void 0),T(this,_c,[]),T(this,vc,[]),E(mc,this,r),E(hc,this,e),E(gc,this,t),E(_c,this,vs(n??``))}commit(e){let t=D(_c,this).map(([t,n])=>e[n]).filter(e=>Aa(e)||Rs(e));Is(D(vc,this),t)||(this.clear(),t.forEach(e=>{let[t,n]=bc(e);D(mc,this).addEventListener(D(hc,this),D(gc,this),t,n)}),E(vc,this,t))}clear(){D(vc,this).forEach(e=>{let[t,n]=bc(e);D(mc,this).removeEventListener(D(hc,this),D(gc,this),t,n)})}destroy(){this.clear()}};function bc(e){return Aa(e)?[e,void 0]:e}var xc=/* @__PURE__ */ new WeakMap,Sc=/* @__PURE__ */ new WeakMap,Cc=/* @__PURE__ */ new WeakMap,wc=/* @__PURE__ */ new WeakMap,Tc=class{constructor(e,{name:t,value:n}){T(this,xc,void 0),T(this,Sc,void 0),T(this,Cc,[]),T(this,wc,[]),E(xc,this,e),E(Sc,this,t),E(Cc,this,vs(n??``))}commit(e){let t=D(Cc,this).map(([t,n])=>e[n]);if(Is(D(wc,this),t))return;let n=t[t.length-1];Reflect.set(D(xc,this),D(Sc,this),n,D(xc,this)),E(wc,this,t)}},Ec=/* @__PURE__ */ new WeakMap,Dc=/* @__PURE__ */ new WeakMap,Oc=/* @__PURE__ */ new WeakMap,kc=class{constructor(e,{name:t}){T(this,Ec,void 0),T(this,Dc,void 0),T(this,Oc,null),E(Ec,this,e),E(Dc,this,vs(t)[0])}commit(e){let[,t]=D(Dc,this),n=e[t];La(n)&&!Ls(D(Oc,this),n)&&(Object.keys(n).forEach(e=>Reflect.set(D(Ec,this),e,n[e],D(Ec,this))),E(Oc,this,n))}},Ac=(e,t,n=Ns)=>t.type===Ka.attribute?new Qs(e,t,n):t.type===Ka.boolean?new oc(e,t,n):t.type===Ka.event?new yc(e,t,n):t.type===Ka.property?new Tc(e,t):t.type===Ka.spread?new kc(e,t):new pc(e,t),jc=/* @__PURE__ */ new WeakMap,Mc=/* @__PURE__ */ new WeakMap,Nc=/* @__PURE__ */ new WeakMap,Pc=/* @__PURE__ */ new WeakMap,Fc=/* @__PURE__ */ new WeakMap,Ic=class{constructor(e,{value:t},n=Ns){T(this,jc,void 0),T(this,Mc,void 0),T(this,Nc,void 0),T(this,Pc,[]),T(this,Fc,[]),E(jc,this,n),E(Mc,this,e),E(Nc,this,t),Ma(t)&&E(Pc,this,vs(t))}commit(e){let t=D(Pc,this).map(([t,n])=>e[n]);if(Is(D(Fc,this),t))return;E(Fc,this,t);let n=D(Fc,this).reduce((e,t,n)=>e.replace(new RegExp(D(Pc,this)[n][0]),Ra(t)&&!Fa(t)&&!Pa(t)?String(t):``),D(Nc,this)??``);D(jc,this).setText(D(Mc,this),n)}},Lc=/* @__PURE__ */ new WeakMap,Rc=/* @__PURE__ */ new WeakMap,zc=/* @__PURE__ */ new WeakMap,Bc=/* @__PURE__ */ new WeakMap,Vc=class{constructor(e,{name:t,value:n}){T(this,Lc,void 0),T(this,Rc,void 0),T(this,zc,[]),T(this,Bc,[]),E(Lc,this,e),E(Rc,this,t),E(zc,this,vs(n??``))}commit(e){let t=D(zc,this).map(([t,n])=>e[n]);if(Is(D(Bc,this),t))return;let n=t[t.length-1];Reflect.set(D(Lc,this),D(Rc,this),n),E(Bc,this,t)}},Hc=/* @__PURE__ */ function(e){return e.create=`create`,e.move=`move`,e}({});function Uc(e){let t=[],n=/* @__PURE__ */ new Map;return e.forEach(({type:e,value:r},i)=>{let a={type:e,key:e===kl.templateLiterals?r.strings:r};t.push(a),n.set(a,i)}),{items:t,itemToIndex:n}}function Wc(e){let t=[],n=/* @__PURE__ */ new Map;return e.forEach((e,r)=>{let i=zl(e),a={type:i,key:i===kl.templateLiterals?e.strings:e};t.push(a),n.set(a,r)}),{items:t,itemToIndex:n}}function Gc(e,t,n){let r=!!n?.strict,i={update:[],delete:[]},a=/* @__PURE__ */ 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 Kc=/* @__PURE__ */ new WeakMap,qc=/* @__PURE__ */ new WeakMap,Jc=/* @__PURE__ */ new WeakMap,Yc=/* @__PURE__ */ new WeakMap,Xc=class{constructor(e,t,n=Ns){T(this,Kc,void 0),T(this,qc,void 0),T(this,Jc,void 0),T(this,Yc,[]),E(qc,this,e),E(Jc,this,t),E(Kc,this,n)}commit(e){let t=Gc(Uc(D(Yc,this)),Wc(e)),n={length:e.length};t.update.forEach(({action:t,from:r,to:i})=>{switch(t){case Hc.create:let t=D(Kc,this).createMarker(``);i===0?D(Kc,this).insertAfterNode(t,D(qc,this)):D(Yc,this).length?D(Kc,this).insertAfterNode(t,n[i-1]?n[i-1].endNode:D(Yc,this)[i-1].endNode):D(Kc,this).insertBeforeNode(t,D(Jc,this)),n[i]=new $c(t,e[i],D(Kc,this));break;case Hc.move:if(n[i]=D(Yc,this)[r],i===r)return;i===0?D(Yc,this)[r].insert(`after`,D(qc,this)):D(Yc,this)[r].insert(`after`,n[i-1]?n[i-1].endNode:D(Yc,this)[i-1].endNode)}}),t.delete.forEach(({from:e})=>D(Yc,this)[e].destroy()),E(Yc,this,Array.from(n)),D(Yc,this).forEach((t,n)=>t.commit(e[n]))}destroy(){D(Yc,this).forEach(e=>e.destroy())}},Zc=/* @__PURE__ */ new WeakMap,Qc=/* @__PURE__ */ new WeakMap,$c=class{constructor(e,t,n=Ns){T(this,Zc,void 0),T(this,Qc,void 0),Ds(this,`startNode`,void 0),Ds(this,`endNode`,void 0),Ds(this,`type`,void 0),Ds(this,`value`,void 0),E(Qc,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=zl(t),E(Zc,this,Ul(this.type,this.startNode,this.endNode,n))}commit(e){D(Zc,this).commit(e),this.value=e}insert(e,t){let n=[this.startNode,...D(Qc,this).rangeNodes(this.startNode,this.endNode),this.endNode];e===`before`?n.forEach(e=>D(Qc,this).insertBeforeNode(e,t)):n.reverse().forEach(e=>D(Qc,this).insertAfterNode(e,t))}destroy(){D(Zc,this).destroy?.(),D(Qc,this).removeRange(this.startNode,this.endNode),D(Qc,this).removeNode(this.startNode),D(Qc,this).removeNode(this.endNode)}},el=/* @__PURE__ */ new WeakMap,tl=/* @__PURE__ */ new WeakMap,nl=/* @__PURE__ */ new WeakMap,rl=/* @__PURE__ */ new WeakMap,il=/* @__PURE__ */ new WeakMap,al=/* @__PURE__ */ new WeakMap,ol=class{constructor(e,t,n=Ns){T(this,el,void 0),T(this,tl,void 0),T(this,nl,void 0),T(this,rl,null),T(this,il,null),T(this,al,void 0),E(tl,this,e),E(nl,this,t),E(el,this,n)}commit(e){if(!Al(e))return;let[t,n]=e;if(D(rl,this)!==n)this.clear(),E(il,this,n(Jo(D(tl,this),D(nl,this),D(el,this)))),E(rl,this,n),E(al,this,D(il,this)?.call(this,t));else{let e=D(il,this)?.call(this,t);D(al,this)!==e&&(this.clear(),E(al,this,e))}}clear(){D(al,this)?.call(this),D(el,this).removeRange(D(tl,this),D(nl,this))}destroy(){this.clear()}},sl=class{constructor(e,t){}commit(e){}},cl=/* @__PURE__ */ new WeakMap,ll=/* @__PURE__ */ new WeakMap,ul=/* @__PURE__ */ new WeakMap,dl=class{constructor(e,t,n=Ns){T(this,cl,void 0),T(this,ll,void 0),T(this,ul,null),E(ll,this,t),E(cl,this,n)}commit(e){D(ul,this)!==e&&(D(ul,this)&&D(cl,this).removeNode(D(ul,this)),D(cl,this).insertBeforeNode(e,D(ll,this)),E(ul,this,e))}},fl=/* @__PURE__ */ new WeakMap,pl=/* @__PURE__ */ new WeakMap,ml=/* @__PURE__ */ new WeakMap,hl=/* @__PURE__ */ new WeakMap,gl=/* @__PURE__ */ new WeakMap,_l=/* @__PURE__ */ new WeakMap,vl=class{constructor(e,t,n=Ns){T(this,fl,void 0),T(this,pl,void 0),T(this,ml,void 0),T(this,hl,null),T(this,gl,null),T(this,_l,zs),E(pl,this,e),E(ml,this,t),E(fl,this,n)}commit(e){D(hl,this)!==e&&(this.clear(),Hs(e)&&this.promiseCommit(e))}promiseCommit(e){let[t,n]=yl(e);E(_l,this,n),t.then(e=>{let t=zl(e);E(gl,this,Ul(t,D(pl,this),D(ml,this),D(fl,this))),D(gl,this)?.commit(e)}),E(hl,this,e)}partClear(){D(gl,this)?.destroy?.(),D(fl,this).removeRange(D(pl,this),D(ml,this))}clear(){D(_l,this).call(this),this.partClear(),E(_l,this,zs)}destroy(){this.clear()}};function yl(e){let t=zs,n=new Promise((e,n)=>t=n);return[Promise.race([n,e]),()=>t()]}var bl=/* @__PURE__ */ new WeakMap,xl=/* @__PURE__ */ new WeakMap,Sl=/* @__PURE__ */ new WeakMap,Cl=class{constructor(e,t,n=Ns){T(this,bl,void 0),T(this,xl,void 0),T(this,Sl,null),E(bl,this,n),E(xl,this,n.createText(``)),n.insertAfterNode(D(xl,this),e)}commit(e){D(Sl,this)!==e&&(D(bl,this).setText(D(xl,this),Fa(e)||Pa(e)?``:String(e)),E(Sl,this,e))}},wl=/* @__PURE__ */ new WeakMap,Tl=/* @__PURE__ */ new WeakMap,El=/* @__PURE__ */ new WeakMap,Dl=/* @__PURE__ */ new WeakMap,Ol=class{constructor(e,t,n=Ns){T(this,wl,void 0),T(this,Tl,void 0),T(this,El,void 0),T(this,Dl,null),E(Tl,this,e),E(El,this,t),E(wl,this,n)}commit(e){let{strings:t,values:n}=e;D(Dl,this)&&!D(Dl,this).equalStrings(t)&&(D(Dl,this).destroy(),E(Dl,this,null)),D(Dl,this)||(E(Dl,this,new wu(e,D(Tl,this),D(El,this),D(wl,this))),D(Dl,this).insert(`before`,D(El,this))),D(Dl,this).commit(n)}destroy(){D(Dl,this)?.destroy()}},kl=/* @__PURE__ */ 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}({}),Al=e=>Ia(e)&&Reflect.get(e,to)===Ko.node,jl=e=>t=>t instanceof e,Ml=jl(Cl),Nl=jl(Ol),Pl=jl(Xc),Fl=jl(dl),Il=jl(vl),Ll=jl(sl),Rl=jl(ol),zl=e=>Ra(e)?`primitive`:is(e)?`templateLiterals`:Al(e)?`directive`:Ia(e)?`array`:Ps(e)?`node`:Aa(e)?`function`:`object`,Bl={primitive:Ml,templateLiterals:Nl,array:Pl,node:Fl,function:Ll,object:Il,directive:Rl},Vl={primitive:Cl,templateLiterals:Ol,array:Xc,node:dl,function:sl,object:vl,directive:ol},Hl=(e,t)=>Bl[e](t),Ul=(e,t,n,r=Ns)=>new Vl[e](t,n,r),Wl=/* @__PURE__ */ new WeakMap,Gl=/* @__PURE__ */ new WeakMap,Kl=/* @__PURE__ */ new WeakMap,ql=/* @__PURE__ */ new WeakMap,Jl=/* @__PURE__ */ new WeakMap,Yl=/* @__PURE__ */ new WeakMap,Xl=/* @__PURE__ */ new WeakMap,Zl=/* @__PURE__ */ new WeakMap,Ql=/* @__PURE__ */ new WeakMap,$l=/* @__PURE__ */ new WeakMap,eu=/* @__PURE__ */ new WeakMap,tu=/* @__PURE__ */ new WeakMap,nu=class{constructor(e,t,n,r,i=Ns){T(this,Wl,void 0),T(this,Gl,void 0),T(this,Kl,void 0),T(this,ql,void 0),T(this,Jl,void 0),T(this,Yl,[]),T(this,Xl,[]),T(this,Zl,null),T(this,Ql,ko({},{shallow:!0})),T(this,$l,null),T(this,eu,null),T(this,tu,void 0),E(Wl,this,i),E(tu,this,i.createEventBus()),E(Gl,this,e),E(Kl,this,t),E(Jl,this,n),E(ql,this,vs(n.value)[0]),n.staticAttrs&&n.staticAttrs.forEach(e=>Fs(D(Ql,this),e)),n.attrs?.forEach(e=>{e.type===Ka.directive?D(Yl,this).push(e):e.type===Ka.spread?r.push(new kc(D(Ql,this),e)):e.type===Ka.event?r.push(new yc(D(tu,this),e,i)):r.push(new Vc(D(Ql,this),e))})}createContext(){return D(Wl,this).createComponentContext(D(Gl,this),D(tu,this))}commit(e){let[,t]=D(ql,this),n=e[t];if(!Aa(n)||D($l,this)===n){D(Xl,this).forEach(t=>t.commit(e));return}let r=this.createContext();this.clear(),io(this);let i=n.call(r,D(Ql,this),r);io(null),D(Yl,this).length&&D(Xl,this).push(...D(Yl,this).map(e=>new pc(r,e))),lo(this,qa);let a=!1;E(eu,this,wo(()=>{let e=i(),t=zl(e);Hl(t,D(Zl,this))||(this.partClear(),E(Zl,this,Ul(t,D(Gl,this),D(Kl,this),D(Wl,this)))),lo(this,a?Za:Xa),D(Zl,this)?.commit(e),a?lo(this,$a):(lo(this,Qa),a=!0)})),D(Xl,this).forEach(t=>t.commit(e)),lo(this,Ja),E($l,this,n)}partClear(){D(Zl,this)?.destroy?.(),D(Wl,this).removeRange(D(Gl,this),D(Kl,this))}clear(){D(Wl,this).removeRange(D(Gl,this),D(Kl,this)),lo(this,Ya),D(Xl,this).forEach(e=>e.destroy?.()),D(eu,this)?.call(this),E(Xl,this,[]),E(eu,this,null),uo(this)}destroy(){this.clear(),this.partClear()}},ru=/* @__PURE__ */ new WeakMap,iu=/* @__PURE__ */ new WeakMap,au=/* @__PURE__ */ new WeakMap,ou=/* @__PURE__ */ new WeakMap,su=go(class{constructor(e,t,n,r=Ns){T(this,ru,void 0),T(this,iu,void 0),T(this,au,void 0),T(this,ou,void 0),E(ru,this,r),E(iu,this,r.createMarker(``)),E(au,this,r.createMarker(``)),E(ou,this,new nu(D(iu,this),D(au,this),t,n,r)),r.insertBeforeNode(D(iu,this),e),r.insertAfterNode(D(au,this),e),r.removeNode(e)}commit(e){D(ou,this).commit(e)}destroy(){D(ou,this).destroy?.(),D(ru,this).removeNode(D(iu,this)),D(ru,this).removeNode(D(au,this))}}),cu=/* @__PURE__ */ new WeakMap,lu=/* @__PURE__ */ new WeakMap,uu=/* @__PURE__ */ new WeakMap,du=/* @__PURE__ */ new WeakMap,fu=/* @__PURE__ */ new WeakMap,pu=/* @__PURE__ */ new WeakMap,mu=class{constructor(e,{value:t},n=Ns){T(this,cu,void 0),T(this,lu,void 0),T(this,uu,void 0),T(this,du,void 0),T(this,fu,null),T(this,pu,null),E(cu,this,n),E(lu,this,n.createMarker(``)),E(uu,this,n.createMarker(``)),E(du,this,vs(t)[0]),n.insertBeforeNode(D(lu,this),e),n.insertAfterNode(D(uu,this),e),n.removeNode(e)}commit(e){let[,t]=D(du,this),n=e[t];if(D(fu,this)===n)return;let r=zl(n);Hl(r,D(pu,this))||(Fa(D(pu,this))||this.clear(),E(pu,this,Ul(r,D(lu,this),D(uu,this),D(cu,this)))),D(pu,this)?.commit(n),E(fu,this,n)}clear(){D(pu,this)?.destroy?.(),D(cu,this).removeRange(D(lu,this),D(uu,this))}destroy(){this.clear(),D(cu,this).removeNode(D(lu,this)),D(cu,this).removeNode(D(uu,this))}};function hu(e=[],t,n=!1,r=[],i=Ns){return e.forEach(e=>{if(e.isComponent){let n=i.createMarker(``);i.appendChild(t,n),r.push(new su(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 Ic(a,e,i)),i.isText(a)&&e.isMarkerOnly&&r.push(new mu(a,e,i)),i.isElement(a)&&(e.staticAttrs&&e.staticAttrs.forEach(e=>i.setAttr(a,e)),e.attrs&&r.push(...e.attrs.map(e=>Ac(a,e,i))),e.children&&hu(e.children,a,e.isSvg||n,r,i))}),r}function gu(e,t=!1,n=Ns){let r=n.createFragment();return[r,hu(e.children,r,t,[],n)]}var _u=/* @__PURE__ */ new WeakMap,vu=/* @__PURE__ */ new WeakMap,yu=/* @__PURE__ */ new WeakMap,bu=/* @__PURE__ */ new WeakMap,xu=/* @__PURE__ */ new WeakMap,Su=/* @__PURE__ */ new WeakMap,Cu=/* @__PURE__ */ new WeakMap,wu=class{constructor(e,t,n,r=Ns){if(T(this,_u,void 0),T(this,vu,void 0),T(this,yu,void 0),T(this,bu,null),T(this,xu,[]),T(this,Su,void 0),T(this,Cu,!1),E(_u,this,r),E(vu,this,r.createMarker(``)),E(yu,this,r.createMarker(``)),E(Su,this,e.strings),e[no]!==Xo.html&&e[no]!==Xo.svg)return;let[i,a]=gu(e.template.node,hs(e[no]),r);E(bu,this,i),E(xu,this,a),t&&n?(E(vu,this,t),E(yu,this,n),E(Cu,this,!0)):(r.prependChild(i,D(vu,this)),r.appendChild(i,D(yu,this)))}equalStrings(e){return D(Su,this)===e}commit(e){D(xu,this).forEach(t=>t.commit(e))}insert(e,t){D(bu,this)&&(e===`before`?D(_u,this).insertBeforeNode(D(bu,this),t):e===`after`?D(_u,this).insertAfterNode(D(bu,this),t):D(_u,this).appendChild(t,D(bu,this)),E(bu,this,null))}destroy(){D(xu,this).forEach(e=>e.destroy?.()),D(_u,this).removeRange(D(vu,this),D(yu,this)),D(Cu,this)||(D(_u,this).removeNode(D(vu,this)),D(_u,this).removeNode(D(yu,this)))}},Tu=/* @__PURE__ */ function(e){return e.string=`string`,e.whiteSpace=`whiteSpace`,e.lt=`lt`,e.gt=`gt`,e.slash=`slash`,e.equal=`equal`,e}({}),Eu={doubleQuote:`"`,singleQuote:`'`,whiteSpace:/\s/,string:/\S/,breakString:/<|>|=/,lt:`<`,gt:`>`,slash:`/`,equal:`=`,hyphen:`-`,exclamationPoint:`!`},Du=e=>t=>e===t,Ou=e=>t=>e.test(t),ku={doubleQuote:Du(Eu.doubleQuote),singleQuote:Du(Eu.singleQuote),whiteSpace:Ou(Eu.whiteSpace),string:Ou(Eu.string),breakString:Ou(Eu.breakString),lt:Du(Eu.lt),gt:Du(Eu.gt),slash:Du(Eu.slash),equal:Du(Eu.equal),hyphen:Du(Eu.hyphen),exclamationPoint:Du(Eu.exclamationPoint)},Au=e=>t=>ku.lt(e[t])&&ku.exclamationPoint(e[t+1])&&ku.hyphen(e[t+2])&&ku.hyphen(e[t+3]);function ju(e){let t=[],n=0,r=()=>n<e.length,i=Au(e),a=(o=`text`)=>{for(;r();){let s=e[n];if(ku.whiteSpace(s)){let i=``;for(;r()&&ku.whiteSpace(s);)i+=s,s=e[++n];o!==`element`&&t.push({type:`whiteSpace`,value:i});continue}if(o===`element`){if(ku.lt(s)){t.push({type:`lt`,value:s}),n++;continue}if(ku.gt(s)){t.push({type:`gt`,value:s}),n++;break}if(ku.slash(s)){t.push({type:`slash`,value:s}),n++;continue}if(ku.equal(s)){t.push({type:`equal`,value:s}),n++;continue}if(ku.doubleQuote(s)){let i=``;for(s=e[++n];r()&&!ku.doubleQuote(s);)i+=s,s=e[++n];t.push({type:`string`,value:i}),n++;continue}if(ku.singleQuote(s)){let i=``;for(s=e[++n];r()&&!ku.singleQuote(s);)i+=s,s=e[++n];t.push({type:`string`,value:i}),n++;continue}}else if(o===`comment`){if(ku.lt(s)){t.push({type:`lt`,value:s}),n++;continue}if(ku.gt(s)){t.push({type:`gt`,value:s}),n++;break}}else if(ku.lt(s)){a(i(n)?`comment`:`element`);continue}if(ku.string(s)){let i=``;for(;r()&&ku.string(s)&&!ku.breakString(s);)i+=s,s=e[++n];t.push({type:`string`,value:i});continue}n++}};return a(),t}var Mu=/^(area|base|br|col|embed|hr|img|input|keygen|link|meta|param|source|track|wbr)$/i,Nu=e=>t=>n=>r=>n[r]?n[r][e]===t:!1,Pu=Nu(`type`),Fu=Nu(`value`),Iu=Pu(Tu.lt),Lu=Pu(Tu.gt),Ru=Pu(Tu.slash),zu=Pu(Tu.equal),Bu=Pu(Tu.string),Vu=Pu(Tu.whiteSpace),Hu=Fu(`!--`),Uu=Fu(`--`),Wu=e=>{let t=Iu(e),n=Bu(e);return e=>t(e)&&n(e+1)},Gu=e=>{let t=Iu(e),n=Ru(e),r=Bu(e),i=Lu(e);return e=>t(e)&&n(e+1)&&r(e+2)&&i(e+3)},Ku=e=>{let t=Iu(e),n=Ru(e),r=Lu(e);return e=>t(e)&&n(e+1)&&n(e+2)&&r(e+3)},qu=e=>{let t=Ru(e),n=Lu(e);return e=>t(e)&&n(e+1)},Ju=e=>Mu.test(e),Yu=e=>{let t=Iu(e),n=Bu(e),r=Hu(e);return e=>t(e)&&n(e+1)&&r(e+1)},Xu=e=>{let t=Bu(e),n=Uu(e),r=Lu(e);return e=>t(e)&&n(e)&&r(e+1)},Zu=e=>t=>n=>{n&&(t[e]?t[e]?.push(n):t[e]=[n])},Qu=Zu(`attrs`),$u=Zu(`children`);function ed(e){let t=new As({type:ks.element,value:`template`,children:[]}),n=0,r=()=>n<e.length,i=Wu(e),a=Gu(e),o=Ku(e),s=qu(e),c=Yu(e),l=Xu(e),u=Iu(e),d=Lu(e),f=zu(e),p=Vu(e),m=Bu(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 As({parent:t,type:ks.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 As({parent:t,type:ks.comment,value:i})}if(i(n)){f=e[++n];let i=Ju(f.value),c=new As({parent:t,type:ks.element,value:f.value.toLowerCase()});for(n++;r()&&!d(n)&&!s(n);){if(m(n)){Qu(c)(h());continue}n++}if(s(n))return n+=2,c;for(f=e[++n];r()&&!a(n)&&!o(n)&&!i;)$u(c)(g(c));return(a(n)||o(n))&&(n+=4),c}return n++,null};for(;r();)$u(t)(g(t));return t}var td=e=>ed(ju(e)),nd=(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)),rd=Symbol.iterator,id=class e{get isMarker(){return fs(this.value)}get isMarkerOnly(){return ps(this.value)}get isSvg(){return this.type===ks.element&&/^svg$/i.test(this.value)}get isComponent(){return this.type===ks.element&&this.isMarkerOnly}constructor(t,n=null){if(Ds(this,`type`,ks.comment),Ds(this,`value`,``),Ds(this,`staticAttrs`,void 0),Ds(this,`attrs`,void 0),Ds(this,`parent`,null),Ds(this,`children`,void 0),this.type=t.type,this.value=t.value,this.parent=n,t.attrs){let[e,n]=sd(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())}*[rd](){if(yield this,this.children)for(let e of this.children)yield*e}};function ad(e){let t=new id(e);for(let e of t)e.type===ks.text&&!ps(e.value)&&od(e);return t}function od(e){let t=vs(e.value);e.value.replace(Ua,Va).split(Va).reduce((n,r,i)=>(i<t.length?n.push(new id(new As({type:ks.text,value:r}),e.parent),new id(new As({type:ks.text,value:t[i][0]}),e.parent)):n.push(new id(new As({type:ks.text,value:r}),e.parent)),n),[]).filter(e=>e.value!==``&&!(!e.value.trim()&&Ga.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 sd(e=[]){let t=nd(e,e=>_s(e.name));return Object.keys(t).map(e=>t[e]).reduce((e,t)=>{let[n,r]=e,i=t[t.length-1],a=gs(i.name);if(a===Ka.event)r.push(...t.filter(e=>!!e.value).map(e=>({type:gs(e.name),name:_s(e.name),value:e.value})));else if(a===Ka.attribute){let e=t.filter(e=>!!e.value).map(e=>e.value).join(` `),o={type:a,name:_s(i.name)};e&&(o.value=e),ms(o)?r.push(o):n.push(o)}else{let e={type:a,name:_s(i.name)};i.value&&(e.value=i.value),ms(e)?r.push(e):n.push(e)}return e},[[],[]])}var cd=e=>(t,...n)=>{let r={strings:t,values:n,[no]:e};if($o.has(t))return r.template=$o.get(t),r;let i=ad(td(t.reduce((e,t,r)=>(r<n.length?e.push(t,ns(r)):e.push(t),e),[]).join(``)));return r.template=Object.freeze({node:i}),$o.set(t,r.template),r},ld=cd(Xo.html),ud=cd(Xo.svg);function dd(e){let t=Ms(e),n=/* @__PURE__ */ new WeakMap;return{html:ld,svg:ud,render:(e,r)=>{if(!is(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 wu(r,void 0,void 0,t);o?.destroy(),n.set(e,i),i.insert(`children`,e),i.commit(a)}}}}var fd=Yo((e,t,n)=>(e.length,[e,t,n]),({startNode:e,endNode:t,helper:n=Ns})=>{let r=[],i=()=>{r.forEach(e=>e.destroy())};return([a,o,s])=>{let c=_d(a,o,s),l=c.values,u=Gc(gd(r),c,{strict:!0}),d={length:l.length};return u.update.forEach(({action:i,from:a,to:o})=>{switch(i){case Hc.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 hd(i,l[o].value,l[o].key,n);break;case Hc.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}}),pd=/* @__PURE__ */ new WeakMap,md=/* @__PURE__ */ new WeakMap,hd=class{constructor(e,t,n,r=Ns){T(this,pd,void 0),T(this,md,void 0),Ds(this,`startNode`,void 0),Ds(this,`endNode`,void 0),Ds(this,`type`,void 0),Ds(this,`key`,void 0),E(md,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=zl(t),E(pd,this,Ul(this.type,this.startNode,this.endNode,r))}commit(e){D(pd,this).commit(e)}insert(e,t){let n=[this.startNode,...D(md,this).rangeNodes(this.startNode,this.endNode),this.endNode];e===`before`?n.forEach(e=>D(md,this).insertBeforeNode(e,t)):n.reverse().forEach(e=>D(md,this).insertAfterNode(e,t))}destroy(){D(pd,this).destroy?.(),D(md,this).removeRange(this.startNode,this.endNode),D(md,this).removeNode(this.startNode),D(md,this).removeNode(this.endNode)}};function gd(e){let t=[],n=/* @__PURE__ */ 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 _d(e,t,n){let r=[],i=/* @__PURE__ */ new Map,a=[];return e.forEach((e,o,s)=>{let c={key:t(e),value:n(e,o,s)},l={type:zl(c.value),key:c.key};a.push(c),r.push(l),i.set(l,o)}),{items:r,itemToIndex:i,values:a}}var vd={vCSSStyleSheetMap:/* @__PURE__ */ new Map,hostContextMap:/* @__PURE__ */ new Map,globalOrder:[],orderedSheets:null},yd=globalThis.ShadowRoot&&`adoptedStyleSheets`in Document.prototype&&`replace`in CSSStyleSheet.prototype,bd=null;function xd(){return bd===null&&(bd=Sd()),bd}function Sd(){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 Cd(){return vd}function wd(e){let t=Cd(),{identifier:n,cssText:r,mode:i}=e;if(!r||t.vCSSStyleSheetMap.has(n))return n;let a=yd?new CSSStyleSheet:null,o=yd?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),kd(s),n}function Td(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 Ed(e){return e.orderedSheets||=Td(e).map(({sheet:e})=>e).filter(Boolean),e.orderedSheets}function Dd(e,t){e.adoptedStyleSheets=[...t]}function Od(){let e=Cd(),t=Ed(e);e.hostContextMap.forEach((e,n)=>Dd(n,t))}function kd(e){if(!yd){Ad();return}let t=Cd(),{mode:n,sheet:r}=e,i=t.orderedSheets;if(!r||n===`global`||!i){t.orderedSheets=null,Od();return}if(i.push(r),!xd()){Od();return}t.hostContextMap.forEach((e,t)=>t.adoptedStyleSheets.push(r))}function Ad(){let e=Cd(),t=Td(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=jd(t,i+1,n);o?e.insertBefore(a,o):e.appendChild(a),n.set(r,a)})})}function jd(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*Md(e,t,n){for(let r of n)r?.[Symbol.iterator]?yield*Md(e,t,r):Aa(r)?yield*Md(e,t,r(e,t)):yield r}var Nd=(e,t,n)=>[...Md(e,t,n)],Pd=(...e)=>t=>e.reduce((e,t)=>t(e),t);function*Fd(e){yield e}var Id=function*(e){for(let t of e)t.length&&(yield t)};function Ld({context:e,state:t,reducers:n,enableObservable:r=!0}){let i=r?ko(t):t,a=za(),o=za(),s=Pd(Id),c=t=>{wa(Reflect.get(n,t.type,n),i,t,e)},l=(...t)=>{let n=Nd(i,e,t);a.next(n)},u=(...e)=>{Ta(()=>l(...e))},d=a.subscribe(e=>{let t=s(Fd(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=Pd(...e,Id),()=>{s=Pd(Id)}),destroy:()=>{d(),f()}}}var Rd=`__RHTML_CSS_DIAGNOSTICS__`,zd=({line:e,column:t})=>e===void 0?``:` (${e}:${t??1})`,Bd=(e,t)=>{let n=`[r-html] ${t.mode===`global`?`css.global`:`css`} ${t.identifier}${zd(e)} ${e.code}: ${e.message}`;e.severity===`error`?console.error(n):console.warn(n)};function Vd(){let e=Reflect.get(globalThis,Rd);return e?typeof e==`function`?e:Bd:null}function Hd(){return Vd()!==null}function Ud(e,t){if(e.length===0)return;let n=Vd();if(n)for(let r of e)n(r,t)}var Wd=[``];function Gd(e){return{value:``,root:null,parent:null,type:l,props:e.slice(),children:[],line:1,column:1,length:0,return:``,siblings:[]}}function Kd(e,t={}){let n=t.rules??Wd,r=t.rules===void 0?null:Gd(n),i=u(e);return d(f(``,null,null,r??null,n,i,0,[0],i))}var qd=`rhtml-scope`;function Jd(e,t){return e.split(qd).join(t)}var Yd=/^(?::host\b|::slotted\()/;function Xd(e){return Yd.test(e.trim())}function Zd(e){return e.type===l}function Qd(e){return e.type===a}function $d(e){return e.type.charCodeAt(0)===64}function ef(e){return Array.isArray(e.children)?e.children:[]}function tf(e){return e.value.charCodeAt(e.value.length-1)===59?e.value.slice(0,-1):e.value}function nf(e){let t=[];for(let n of ef(e))Qd(n)&&t.push(tf(n));return t}function rf(e){return ef(e).filter(Zd)}function af(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 of=/* @__PURE__ */ new Set([o,i,c,s]);function sf(e,t,n){let r=[],i=/* @__PURE__ */ new Set,a=!1,s=(e,t)=>{for(let n of e){if(Zd(n)){a=!0,cf(n,t,r);continue}if($d(n)){if(ef(n).length===0){if(!of.has(n.type))continue;r.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===o&&a&&r.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(a=!0,af(n.type)){s(ef(n),t);continue}rf(n).length>0&&lf(n,i,r),s(ef(n),!1)}}};s(e,n.scoped),!n.scoped&&e.some(Qd)&&r.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.`}),uf(t,r);let c=ff(n.source);return c&&r.push(c),r}function cf(e,t,n){if(e.props.every(e=>e.length===0)){let t=nf(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 df(e.value)){let r=t.trim();if(Xd(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 lf(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 uf(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 \`${qd}\`. The sentinel is only substituted in selectors, so it will reach the browser as written.`})}function df(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 ff(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 pf(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+=mf(i,t.scope)}for(let e=0;e<r.length;e++)n+=`}`;return n}function mf(e,t){return e.body===void 0?`${e.prelude??hf(e.selectors,t)}{${e.declarations.join(`;`)};}`:`${e.prelude}{${e.body}}`}function hf(e,t){return(t===void 0?e:e.map(e=>Jd(e,t))).join(`,`)}var gf=[],_f=e=>e.length>0;function vf(e,t){let n=[];return bf(e,gf,t.rules,n),(t.plugins??[]).reduce((e,t)=>e.flatMap(e=>t(e)),n).filter(yf)}function yf(e){let t=e.selectors.length>0||e.prelude!==void 0,n=e.declarations.length>0||!!e.body;return t&&n}function bf(e,t,n,r){let i=r.length,a=[];for(let i of e)Qd(i)?a.push(tf(i)):Zd(i)?xf(i,t,r):$d(i)&&Sf(i,t,n,r);if(a.length===0)return;let o=n.filter(_f);o.length!==0&&r.splice(i,0,{conditions:t,selectors:o,declarations:a})}function xf(e,t,n){let r=e.props.filter(_f);if(r.length===0)return;let i=nf(e);i.length!==0&&n.push({conditions:t,selectors:r,declarations:i})}function Sf(e,t,n,r){let i=ef(e);if(i.length===0)return;if(af(e.type)){let a=[];if(bf(i,[...t,e.value],n,a),a.length===0)return;for(let e of a)r.push(e);return}let a=rf(e);if(a.length>0){let n=[];for(let e of a)xf(e,gf,n);let i=pf(n);i&&r.push({conditions:t,selectors:[],prelude:e.value,declarations:[],body:i});return}let o=nf(e);o.length!==0&&r.push({conditions:t,selectors:[],prelude:e.value,declarations:o})}function Cf(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 wf=7;function Tf(e){return`_${Cf(e).toString(36).padStart(wf,`0`)}`}var Ef=[];function Df(e,t={}){let n=t.mode!==`global`,r=n?[qd]:[``],i=Kd(e,{rules:r}),a=vf(i,{rules:r,plugins:t.plugins}),o=pf(a),s=Tf(o);return{rules:a,canonicalText:o,identifier:s,cssText:pf(a,{scope:`.${s}`}),diagnostics:t.dev?sf(i,a,{source:e,scoped:n}):Ef}}function Of(e){let t=/[;{}][^;{}]*$/.exec(e);return t?t[0].slice(1):e}function kf(e){let t=e.search(/[;}\n]/);return t===-1?e:e.slice(0,t)}function Af(e){let t=[];for(let n=0;n<e.length-1;n++){let r=Of(e[n]),i=kf(e[n+1]),a=!r.includes(`:`)&&!i.includes(`{`)?`statement`:`inline`;t.push({kind:a,provable:r.trim().length===0})}return t}function jf(e){let t=e.trimEnd();return!t||t.endsWith(`;`)||t.endsWith(`}`)?e:`${e};`}function Mf(e,t){return as(e)?t===`statement`?jf(e[Qo]??``):`.${String(e)}`:Ra(e)&&!Fa(e)&&!Pa(e)?String(e):``}function Nf(e,t,n){if(as(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}(Pf(n,`'`)||Pf(n,`"`))&&console.warn(`[r-html] interpolated value has an unbalanced quote and is substituted before compiling: ${n}`)}function Pf(e,t){let n=0;for(let r of e)r===t&&n++;return n%2==1}function Ff(e,t,n){let r=``;for(let i=0;i<e.length;i++){if(r+=e[i],i>=t.length)continue;let a=Mf(n[i],t[i].kind);Nf(t[i],n[i],a),r+=a}return r}var If=32,Lf=`\0`;function Rf(e){return(t,...n)=>{let r=Bf(t,e),i=Vf(r.node,n),a=wd(i);return{strings:t,values:n,template:r,[no]:Xo.css,[Qo]:i.source,toString:()=>a}}}var zf=Object.assign(Rf(`scoped`),{global:Rf(`global`)});function Bf(e,t){let n=es.get(e);if(n&&n.node.mode===t)return n;let r=e.raw,i={raw:r,slots:Af(r),mode:t,memo:/* @__PURE__ */ new Map},a=Object.freeze({node:i});return es.set(e,a),a}function Vf(e,t){let n=e.slots.map((e,n)=>Mf(t[n],e.kind)).join(Lf),r=e.memo.get(n);if(r)return r;let i=Ff(e.raw,e.slots,t),{rules:a,canonicalText:o,identifier:s,cssText:c,diagnostics:l}=Df(i,{mode:e.mode,dev:Hd()}),u={source:i,mode:e.mode,rules:a,canonicalText:o,identifier:s,cssText:c};if(Ud(l,{source:i,identifier:s,mode:e.mode}),e.memo.set(n,u),e.memo.size>If){let[t]=e.memo.keys();e.memo.delete(t)}return u}var Hf=Symbol(`r-html/konva-slot`),Uf=Symbol(`r-html/konva-ledger`),Wf=Symbol(`r-html/konva-virtual`),Gf=Symbol(`r-html/konva-fragment`),Kf=/* @__PURE__ */ new Set([`class`,`style`,`zIndex`]),qf={reconcile:0,scan:0,attach:0,drop:0,order:0,setZIndex:0},Jf={"k-layer":()=>new h,"k-group":()=>new m,"k-rect":()=>new ee,"k-text":()=>new te,"k-path":()=>new b,"k-line":()=>new y,"k-circle":()=>new v,"k-shape":()=>new _({})};function Yf(){}function Xf(){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 Zf(e,t=``){let n={kind:e,data:t};return Reflect.set(n,Wf,e),Object.defineProperty(n,"nextSibling",{get:Xf}),Object.defineProperty(n,"parentNode",{get:Xf}),n}var Qf=e=>e&&typeof e==`object`?Reflect.get(e,Wf)??null:null,$f=e=>e instanceof g,ep=e=>$f(e)&&Reflect.get(e,Gf)===!0,tp=e=>Reflect.get(e,Hf);function np(e){let t=tp(e);if(t)return t;let n={node:e,parent:null,prev:null,next:null,doomed:!1};return Reflect.set(e,Hf,n),n}function rp(e){let t=Reflect.get(e,Uf);if(t)return t;let n={first:null,last:null,dirty:!1,reconciledAt:-1};return Reflect.set(e,Uf,n),n}var ip=e=>tp(e)?.parent??null,ap=e=>tp(e)?.next?.node??null,op=/* @__PURE__ */ new Set,sp=/* @__PURE__ */ new WeakMap;function cp(e){let t=e;for(;t;){if(t instanceof h)return t;t=ip(t)}return null}function lp(e){let t=cp(e);t&&pa(t)}function up(e){rp(e).dirty=!0,op.add(e),lp(e),fa()}function dp(e){let t=e.parent;if(!t)return;let n=rp(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,up(t)}function fp(e,t,n){dp(t);let r=rp(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,up(e)}function pp(e,t){if($f(t)&&!ep(e)){if(e instanceof r){if(!(t instanceof h))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 h)throw Error(`[konva-host] k-layer nests in nothing but a Stage`);if($f(e)&&!(e instanceof p))throw Error(`[konva-host] ${e.getClassName()} is a shape and holds no children`)}}function mp(e,t,n){if(t===n)return;let r=n?np(n):null;if(!ep(t)){pp(e,t),fp(e,np(t),r);return}let i=[];for(let e=rp(t).first;e;e=e.next)i.push(e);for(let t of i)pp(e,t.node),fp(e,t,r)}function hp(e){op.delete(e),Reflect.deleteProperty(e,Hf),Reflect.deleteProperty(e,Uf),e.destroy()}function gp(e,t){let n=t.getParent();n!==e&&(n&&op.has(n)&&xp(n),qf.attach+=1,e.add(t))}function _p(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 vp(e,t){for(let n=0;n<t.length;n++){let r=t[n];e.children[n]!==r&&(qf.setZIndex+=1,r.setZIndex(n))}}function yp(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 bp(e){if(qf.reconcile+=1,!(e instanceof p))return;let t=[];for(let n=rp(e).first;n;n=n.next)qf.scan+=1,$f(n.node)&&t.push(n.node);for(let n of t)gp(e,n);let n=new Set(t),i=e.children.filter(e=>!n.has(e));if(i.length||!_p(e.children,t)){if(qf.order+=1,e instanceof r){for(let e of i)e.remove();vp(e,t)}else{for(let e of i)e.parent=null,e.index=0,e.remove();yp(e,t)}for(let e of i)qf.drop+=1,np(e).doomed&&hp(e)}}function xp(e){let t=rp(e);(t.dirty||t.reconciledAt!==ca())&&(t.dirty=!1,t.reconciledAt=ca(),bp(e))}ua(()=>{for(let e of op)xp(e);op.clear()});function Sp(e){let t=e,n=ip(t);for(;n;)t=n,n=ip(t);return sp.get(t)??t}function Cp(e,t){if(!t)return;let n=Sp(e);if($f(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`)}var wp=dd({createElement(e){let t=Jf[e.toLowerCase()];if(!t)throw Error(`[konva-host] unknown konva tag <${e}>`);return t()},createText:e=>Zf(`text`,e),createMarker:e=>Zf(`marker`,e),createFragment(){let e=new m;return Reflect.set(e,Gf,!0),Reflect.set(e,`_validateAdd`,Yf),e},createEventBus:()=>new EventTarget,insertBefore(e,t){let n=ip(t);n&&mp(n,e,t)},appendChild(e,t){mp(e,t,null)},prependChild(e,t){mp(e,t,rp(e).first?.node??null)},removeChild(e){let t=np(e);dp(t),$f(e)&&(t.doomed=!0,e.getParent()||hp(e))},parentOf:ip,nextSiblingOf:ap,setText(e,t){if(Qf(e)!==`text`)throw Error(`[konva-host] a konva tree has no text node to write`);e.data=t},setAttribute(e,t,n,r){if(!$f(e))return;if(Kf.has(t))throw Error(`[konva-host] "${t}" is not a konva attribute a template may write`);let i=r?n:String(n);t===`id`&&Cp(e,i),e.attrs[t]!==i&&(e.setAttrs({[t]:i}),lp(e))},removeAttribute(e,t){$f(e)&&e.attrs[t]!==void 0&&(e.setAttrs({[t]:void 0}),lp(e))},isHostNode:e=>$f(e)||Qf(e)!==null,isMarker:e=>Qf(e)===`marker`,isText:e=>Qf(e)===`text`,isElement:e=>$f(e)&&!ep(e),isFragment:e=>ep(e),addEventListener(e,t,n,r){$f(e)?e.on(`${t}.rhtml`,n):e.addEventListener(t,n,r)},removeEventListener(e,t,n,r){$f(e)?e.off(`${t}.rhtml`,n):e.removeEventListener(t,n,r)},getRoot:Sp,createComponentContext(e,t){return{get host(){let n=Sp(e);return n instanceof r?n.container():t},get parentElement(){return null},dispatchEvent:e=>t.dispatchEvent(e)}},bridgeFragment(e,t){return sp.set(e,t),()=>{sp.delete(e)}}}),k=wp.html;function Tp(e,t){if(!(e instanceof r))throw Error(`[konva-host] a konva template renders into a Stage`);wp.render(e,t)}var Ep=`0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz`,Dp=Ep[0],Op=Ep[61],kp=`A${Dp.repeat(26)}`,Ap=`a${Dp}`;function jp(e){return e>=`a`&&e<=`z`?e.charCodeAt(0)-95:e>=`A`&&e<=`Z`?92-e.charCodeAt(0):0}var Mp=/^[A-Za-z][0-9A-Za-z]*$/;function Np(e){if(typeof e!=`string`||!Mp.test(e))return!1;let t=jp(e[0]);return e.length<t||e===kp?!1:e.length===t||e[e.length-1]!==Dp}function Pp(e,t){if(t!==null){let n=0;for(;(e[n]??Dp)===t[n];)n++;if(n>0)return t.slice(0,n)+Pp(e.slice(n),t.slice(n))}let n=e?Ep.indexOf(e[0]):0,r=t===null?62:Ep.indexOf(t[0]);return r-n>1?Ep[Math.round((n+r)/2)]:t!==null&&t.length>1?t.slice(0,1):Ep[n]+Pp(e.slice(1),null)}function Fp(e){return e.slice(0,jp(e[0]))}function Ip(e){let[t,...n]=e.split(``),r=!0;for(let e=n.length-1;r&&e>=0;e--){let t=Ep.indexOf(n[e])+1;t===62?n[e]=Dp:(n[e]=Ep[t],r=!1)}if(!r)return t+n.join(``);if(t===`Z`)return`a${Dp}`;if(t===`z`)return null;let i=String.fromCharCode(t.charCodeAt(0)+1);return i>`a`?n.push(Dp):n.pop(),i+n.join(``)}function Lp(e){let[t,...n]=e.split(``),r=!0;for(let e=n.length-1;r&&e>=0;e--){let t=Ep.indexOf(n[e])-1;t===-1?n[e]=Op:(n[e]=Ep[t],r=!1)}if(!r)return t+n.join(``);if(t===`a`)return`Z${Op}`;if(t===`A`)return null;let i=String.fromCharCode(t.charCodeAt(0)-1);return i<`Z`?n.push(Op):n.pop(),i+n.join(``)}function Rp(e,t){if(e!==null&&!Np(e))throw RangeError(`Bad key: ${e}`);if(t!==null&&!Np(t))throw RangeError(`Bad key: ${t}`);if(e!==null&&t!==null&&e>=t)throw RangeError(`${e} is not below ${t}`);if(e===null){if(t===null)return Ap;let e=Fp(t),n=t.slice(e.length);if(e===kp)return e+Pp(``,n);if(e<t)return e;let r=Lp(e);if(r===null)throw RangeError(`No key below`);return r}let n=Fp(e),r=e.slice(n.length);if(t===null){let e=Ip(n);return e===null?n+Pp(r,null):e}let i=Fp(t);if(n===i)return n+Pp(r,t.slice(i.length));let a=Ip(n);return a!==null&&a<t?a:n+Pp(r,null)}function zp(e,t,n){if(n<=0)return[];if(n===1)return[Rp(e,t)];if(t===null){let t=[Rp(e,null)];for(;t.length<n;)t.push(Rp(t[t.length-1],null));return t}if(e===null){let e=[Rp(null,t)];for(;e.length<n;)e.unshift(Rp(null,e[0]));return e}let r=Math.floor(n/2),i=Rp(e,t);return[...zp(e,i,r),i,...zp(i,t,n-r-1)]}var Bp=(e,t)=>e<t?-1:+(e>t);function Vp(e,t){let n=Np(e.order);return n===Np(t.order)?n&&Bp(e.order,t.order)||Bp(e.id,t.id):n?-1:1}function Hp(e,t){let n=/* @__PURE__ */ new Set,r=null;for(let r of t){let t=e[r];t&&!Np(t.order)&&n.add(t)}for(let t of Object.values(e))Np(t.order)?(r===null||t.order>r)&&(r=t.order):n.add(t);let i=zp(r,null,n.size),a=0;for(let e of n)e.order=i[a++]}var Up=(e,t)=>e*(1-t)/2;function Wp(e){return{originX:Ke(e.scrollLeft+Up(e.width,e.zoomLevel),4),originY:Ke(e.scrollTop+Up(e.height,e.zoomLevel),4)}}function Gp(e,t){return(e&t)===t}var Kp={physical:`physical`,logical:`logical`,both:`both`},qp=Object.values(Kp),Jp={before:`before`,after:`after`},Yp=Object.values(Jp),Xp={ERD:`ERD`,visualization:`@dineug/erd-editor/builtin-visualization`,schemaSQL:`@dineug/erd-editor/builtin-schema-sql`,generatorCode:`@dineug/erd-editor/builtin-generator-code`,settings:`settings`,dictionary:`@dineug/erd-editor/builtin-dictionary`},Zp=Object.values(Xp),Qp={tableComment:1,columnComment:2,columnDataType:4,columnDefault:8,columnAutoIncrement:16,columnPrimaryKey:32,columnUnique:64,columnNotNull:128,relationship:256,columnAlternateKey:512,hideReferentialAction:1024,hideTableGroup:2048,hideMemo:4096,columnDomain:8192},$p={columnName:1,columnDataType:2,columnNotNull:4,columnUnique:8,columnAutoIncrement:16,columnDefault:32,columnComment:64,columnLogicalName:128,columnDomain:256},em=Object.values($p),tm={MariaDB:1,MSSQL:2,MySQL:4,Oracle:8,PostgreSQL:16,SQLite:32,Databricks:64,Snowflake:128},nm=Object.values(tm),rm={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,Mermaid:16384,PHP:32768,Doctrine:65536,Rust:131072,SeaORM:262144,Swift:524288,Zod:1048576,JSONSchema:2097152},im=Object.values(rm),am={none:1,camelCase:2,pascalCase:4,snakeCase:8},om=Object.values(am),sm={none:1,doubleQuote:2,singleQuote:4,backtick:8},cm=Object.values(sm),lm={viewport:1,canvasType:2,language:4,tableNameCase:8,columnNameCase:16,bracketType:32,unlockNameViewMode:64},um=Object.values(lm),dm=lm.unlockNameViewMode,fm={[lm.viewport]:[`originX`,`originY`,`zoomLevel`],[lm.canvasType]:[`canvasType`],[lm.language]:[`language`],[lm.tableNameCase]:[`tableNameCase`],[lm.columnNameCase]:[`columnNameCase`],[lm.bracketType]:[`bracketType`],[lm.unlockNameViewMode]:[`nameViewMode`]},pm=e=>{if(!Number.isInteger(e)||e<=0||e&e-1)throw RangeError(`A lock is one bit, not ${e}`)};function mm(e,t){return pm(t),Gp(e,t)!==Gp(dm,t)}function hm(e,t,n){return pm(t),n===Gp(dm,t)?e&~t:e|t}var gm=.1,_m=1.5,vm=2e3,ym=2e4;function A(e,t,n){return r=>{if(!n)return;let i=n[r];e(i)&&(t[r]=i)}}function bm(e,t){let n=Reflect.get(t,`id`);return w(n)&&n!==``?n:e}function xm(e){return t=>w(t)&&e.includes(t)}function Sm(e){return t=>de(t)&&e.includes(t)}function Cm(e,t,n){return Reflect.get(e,t)??n}function wm(e,t){let n=new Set(t);return e.every(e=>n.has(e))?t:[...e]}var Tm={wordEntities:[`id`,`name`,`abbreviation`,`englishName`,`description`,`synonyms`,`forbiddenWords`],termEntities:[`id`,`name`,`physicalName`,`domainId`,`description`,`synonyms`],domainEntities:[`id`,`name`,`category`,`dataType`,`description`]};function Em(e){return[...e.slice(0,2),`order`,...e.slice(2)]}var Dm={wordEntities:Em(Tm.wordEntities),termEntities:Em(Tm.termEntities),domainEntities:Em(Tm.domainEntities)},Om=Object.keys(Tm),km=2,Am=e=>e===``||Array.isArray(e)&&e.length===0;function jm(e,t,n=Tm[e]){return{fields:[...n],rows:t.map(e=>{let t=n.map(t=>Reflect.get(e,t)),r=t.length;for(;r>km&&Am(t[r-1]);)r--;return t.slice(0,r)})}}function Mm(e){if(!C(e))return[];let{fields:t,rows:n}=e;return Array.isArray(t)&&Array.isArray(n)?n.filter(Array.isArray).map(e=>Object.fromEntries(t.slice(0,e.length).map((t,n)=>[t,e[n]]))):Object.values(e).filter(C)}var Nm=/\n {6}"rows": \[\]/g,Pm=e=>C(e)&&Array.isArray(e.rows);function Fm(e){if(!e.collections)return JSON.stringify(e,null,2);let t=[],n={...e.collections};for(let[e,r]of Object.entries(n))Om.includes(e)&&Pm(r)&&(t.push(r.rows),n[e]={...r,rows:[]});let r=0;return JSON.stringify({...e,collections:n},null,2).replace(Nm,e=>{let n=t[r++]??[];return n.length===0?e:`\n "rows": [\n${n.map(e=>` ${JSON.stringify(e)}`).join(`,
|
|
2
|
+
`)}\n ]`})}var Im=()=>({tableIds:[],relationshipIds:[],indexIds:[],memoIds:[],tableGroupIds:[],wordIds:[],termIds:[],domainIds:[]});function Lm(e){let t=Im();if(!C(e)||S(e))return t;let n=A(Array.isArray,t,e);return n(`tableIds`),n(`relationshipIds`),n(`indexIds`),n(`memoIds`),n(`tableGroupIds`),n(`wordIds`),n(`termIds`),n(`domainIds`),t}var Rm=()=>({id:``,name:``,category:``,dataType:``,description:``,order:``});function zm(e){let t={};for(let n of e){let e=Rm(),r=A(w,e,n);r(`id`),r(`name`),r(`category`),r(`dataType`),r(`description`),r(`order`),e.id&&(t[e.id]=e)}return t}var Bm=()=>({id:``,name:``,tableId:``,indexColumnIds:[],seqIndexColumnIds:[],unique:!1});function Vm(e){let t={};if(!C(e)||S(e))return t;for(let[n,r]of Object.entries(e)){if(!C(r))continue;let e=Bm(),i=A(w,e,r),a=A(se,e,r),o=A(Array.isArray,e,r);e.id=bm(n,r),i(`name`),i(`tableId`),a(`unique`),o(`indexColumnIds`),o(`seqIndexColumnIds`),e.seqIndexColumnIds=wm(e.indexColumnIds,e.seqIndexColumnIds),e.id&&(t[e.id]=e)}return t}var Hm={ASC:1,DESC:2},Um=Object.values(Hm),Wm=()=>({id:``,indexId:``,columnId:``,orderType:Hm.ASC});function Gm(e){let t={};if(!C(e)||S(e))return t;for(let[n,r]of Object.entries(e)){if(!C(r))continue;let e=Wm(),i=A(w,e,r);e.id=bm(n,r),i(`indexId`),i(`columnId`),A(Sm(Um),e,r)(`orderType`),e.id&&(t[e.id]=e)}return t}var Km=()=>({id:``,value:``,ui:{x:200,y:100,zIndex:2,width:116,height:100,color:``}});function qm(e){let t={};if(!C(e)||S(e))return t;for(let[n,r]of Object.entries(e)){if(!C(r))continue;let e=Km(),i=A(w,e,r),a=A(de,e.ui,r.ui),o=A(w,e.ui,r.ui);e.id=bm(n,r),i(`value`),o(`color`),a(`x`),a(`y`),a(`zIndex`),a(`width`),a(`height`),e.id&&(t[e.id]=e)}return t}var Jm={ZeroOne:2,ZeroN:4,OneOnly:8,OneN:16},Ym=Object.values(Jm),Xm={ring:1,dash:2},Zm=Object.values(Xm),Qm={none:1,noAction:2,cascade:4,setNull:8,setDefault:16,restrict:32},$m=Object.values(Qm),eh={left:1,right:2,top:4,bottom:8},th=Object.values(eh),nh=()=>({id:``,identification:!1,relationshipType:Jm.ZeroN,startRelationshipType:Xm.dash,onDelete:Qm.none,onUpdate:Qm.none,start:{tableId:``,columnIds:[],x:0,y:0,direction:eh.bottom},end:{tableId:``,columnIds:[],x:0,y:0,direction:eh.bottom}});function rh(e){let t={};if(!C(e)||S(e))return t;for(let[n,r]of Object.entries(e)){if(!C(r))continue;let e=nh(),i=A(se,e,r),a=A(de,e.start,r.start),o=A(w,e.start,r.start),s=A(de,e.end,r.end),c=A(w,e.end,r.end);e.id=bm(n,r),i(`identification`),A(Sm(Ym),e,r)(`relationshipType`),A(Sm(Zm),e,r)(`startRelationshipType`),A(Sm($m),e,r)(`onDelete`),A(Sm($m),e,r)(`onUpdate`),o(`tableId`),a(`x`),a(`y`),A(Sm(th),e.start,r.start)(`direction`),A(Array.isArray,e.start,r.start)(`columnIds`),c(`tableId`),s(`x`),s(`y`),A(Sm(th),e.end,r.end)(`direction`),A(Array.isArray,e.end,r.end)(`columnIds`),e.id&&(t[e.id]=e)}return t}var ih=Qp.tableComment|Qp.columnComment|Qp.columnDataType|Qp.columnDefault|Qp.columnPrimaryKey|Qp.columnNotNull|Qp.relationship,ah=um.reduce((e,t)=>e|t,0)&~dm,oh=um.flatMap(e=>fm[e]),sh=e=>_e(e,oh),ch=()=>{let e={originX:0,originY:0,zoomLevel:1,show:ih,database:tm.MySQL,databaseName:``,canvasType:Xp.ERD,language:rm.GraphQL,tableNameCase:am.pascalCase,columnNameCase:am.camelCase,bracketType:sm.none,relationshipDataTypeSync:!0,columnOrder:[$p.columnLogicalName,$p.columnName,$p.columnDataType,$p.columnDomain,$p.columnNotNull,$p.columnUnique,$p.columnAutoIncrement,$p.columnDefault,$p.columnComment],maxWidthComment:-1,lockSettings:ah,ddlScripts:{before:``,after:``},nameViewMode:Kp.physical};return{...e,lockedValues:sh(e)}},lh=em.filter(e=>e!==$p.columnLogicalName&&e!==$p.columnDomain),uh=(e,t)=>t.length===e.length&&ae(e,t).length===0;function dh(e){return Array.isArray(e)?uh(em,e)?e:uh(lh,e)?e.flatMap(e=>e===$p.columnName?[$p.columnLogicalName,e]:e===$p.columnDataType?[e,$p.columnDomain]:[e]):null:null}function fh(e){if(!Array.isArray(e))return e;let t=e.filter(e=>e!==$p.columnLogicalName&&e!==$p.columnDomain),n=dh(t);return n?.length===e.length&&n.every((t,n)=>t===e[n])?t:e}var ph=2e3,mh=e=>Number.isFinite(e),hh=e=>re(e,vm,ym),gh=e=>re(e,gm,_m),_h=e=>re(e,60,200);function vh(e,t){let n=e=>de(e)?hh(e):ph,r=e=>de(e)?e:0;return{width:n(e.width),height:n(e.height),zoomLevel:t,scrollLeft:r(e.scrollLeft),scrollTop:r(e.scrollTop)}}function yh(e){let t=ch();if(!C(e)||S(e))return t;let n=A(de,t,e),r=A(w,t,e),i=A(se,t,e);if(de(e.zoomLevel)&&(t.zoomLevel=gh(e.zoomLevel)),de(e.maxWidthComment)&&e.maxWidthComment!==-1&&(t.maxWidthComment=_h(e.maxWidthComment)),n(`show`),r(`databaseName`),r(`canvasType`),i(`relationshipDataTypeSync`),A(Sm(nm),t,e)(`database`),A(Sm(im),t,e)(`language`),A(Sm(om),t,e)(`tableNameCase`),A(Sm(om),t,e)(`columnNameCase`),A(Sm(cm),t,e)(`bracketType`),A(xm(qp),t,e)(`nameViewMode`),t.columnOrder=dh(e.columnOrder)??t.columnOrder,mh(e.originX)&&mh(e.originY))t.originX=e.originX,t.originY=e.originY;else{let{originX:n,originY:r}=Wp(vh(e,t.zoomLevel));t.originX=n,t.originY=r}de(e.lockSettings)?(t.lockSettings=e.lockSettings|0,mm(t.lockSettings,lm.canvasType)&&t.canvasType===Xp.settings&&(t.canvasType=Xp.ERD),t.lockedValues=sh(t)):bh(t);let a=A(w,t.ddlScripts,e.ddlScripts);return a(`before`),a(`after`),t}function bh(e){let{originX:t,originY:n,zoomLevel:r,canvasType:i}=ch();Object.assign(e,{originX:t,originY:n,zoomLevel:r,canvasType:i}),e.lockedValues=sh(e)}var xh=()=>({id:``,name:``,logicalName:``,comment:``,columnIds:[],seqColumnIds:[],groupId:``,nameDerived:!1,ui:{x:200,y:100,zIndex:2,widthName:60,widthLogicalName:60,widthComment:60,color:``}});function Sh(e){let t={};if(!C(e)||S(e))return t;for(let[n,r]of Object.entries(e)){if(!C(r))continue;let e=xh(),i=A(w,e,r),a=A(Array.isArray,e,r),o=A(se,e,r),s=A(de,e.ui,r.ui),c=A(w,e.ui,r.ui);e.id=bm(n,r),i(`name`),i(`logicalName`),i(`comment`),i(`groupId`),o(`nameDerived`),a(`columnIds`),a(`seqColumnIds`),c(`color`),s(`x`),s(`y`),s(`zIndex`),s(`widthName`),s(`widthLogicalName`),s(`widthComment`),e.seqColumnIds=wm(e.columnIds,e.seqColumnIds),e.id&&(t[e.id]=e)}return t}var Ch=()=>({id:``,tableId:``,name:``,comment:``,dataType:``,default:``,options:0,logicalName:``,domainId:``,ui:{keys:0,widthName:60,widthLogicalName:60,widthComment:60,widthDataType:60,widthDomain:60,widthDefault:60}});function wh(e){let t={};if(!C(e)||S(e))return t;for(let[n,r]of Object.entries(e)){if(!C(r))continue;let e=Ch(),i=A(w,e,r),a=A(de,e,r),o=A(de,e.ui,r.ui);e.id=bm(n,r),i(`tableId`),i(`name`),i(`comment`),i(`dataType`),i(`default`),a(`options`),i(`logicalName`),i(`domainId`),o(`keys`),o(`widthName`),o(`widthLogicalName`),o(`widthComment`),o(`widthDataType`),o(`widthDomain`),o(`widthDefault`),e.id&&(t[e.id]=e)}return t}var Th=()=>({id:``,name:``,color:``,ui:{x:200,y:100,width:400,height:300,zIndex:1}});function Eh(e){let t={};if(!C(e)||S(e))return t;for(let[n,r]of Object.entries(e)){if(!C(r))continue;let e=Th(),i=A(w,e,r),a=A(de,e.ui,r.ui);e.id=bm(n,r),i(`name`),i(`color`),a(`x`),a(`y`),a(`width`),a(`height`),a(`zIndex`),e.id&&(t[e.id]=e)}return t}var Dh=()=>({id:``,name:``,physicalName:``,domainId:``,description:``,synonyms:``,order:``});function Oh(e){let t={};for(let n of e){let e=Dh(),r=A(w,e,n);r(`id`),r(`name`),r(`physicalName`),r(`domainId`),r(`description`),r(`synonyms`),r(`order`),e.id&&(t[e.id]=e)}return t}var kh=()=>({id:``,name:``,abbreviation:``,englishName:``,description:``,synonyms:``,forbiddenWords:``,order:``});function Ah(e){let t={};for(let n of e){let e=kh(),r=A(w,e,n);r(`id`),r(`name`),r(`abbreviation`),r(`englishName`),r(`description`),r(`synonyms`),r(`forbiddenWords`),r(`order`),e.id&&(t[e.id]=e)}return t}function jh(e){let t=e,n=yh(t.settings),r=Lm(t.doc),i=Sh(t.collections?.tableEntities),a=wh(t.collections?.tableColumnEntities),o=rh(t.collections?.relationshipEntities),s=Vm(t.collections?.indexEntities),c=Gm(t.collections?.indexColumnEntities),l=qm(t.collections?.memoEntities),u=Eh(t.collections?.tableGroupEntities);for(let[e,n]of Mh)Array.isArray(t.doc?.[e])||(r[e]=Nh(t.collections?.[n]));let d=Mm(t.collections?.wordEntities),f=Mm(t.collections?.termEntities),p=Mm(t.collections?.domainEntities),m=Ah(d),h=Oh(f),g=zm(p);return Array.isArray(t.doc?.wordIds)||(r.wordIds=Ph(d)),Array.isArray(t.doc?.termIds)||(r.termIds=Ph(f)),Array.isArray(t.doc?.domainIds)||(r.domainIds=Ph(p)),Hp(m,r.wordIds),Hp(h,r.termIds),Hp(g,r.domainIds),Fh(g,a,h),Ih(i,r.tableIds,t.collections?.tableEntities,2),Ih(l,r.memoIds,t.collections?.memoEntities,Math.max(1,...r.tableIds.map(e=>i[e]?.ui.zIndex??0))+1),Ih(u,r.tableGroupIds,t.collections?.tableGroupEntities,1),{$schema:`https://raw.githubusercontent.com/dineug/erd-editor/main/json-schema/schema.json`,version:`3.0.0`,settings:n,doc:r,collections:{tableEntities:i,tableColumnEntities:a,relationshipEntities:o,indexEntities:s,indexColumnEntities:c,memoEntities:l,tableGroupEntities:u,wordEntities:m,termEntities:h,domainEntities:g}}}var Mh=[[`tableIds`,`tableEntities`],[`relationshipIds`,`relationshipEntities`],[`indexIds`,`indexEntities`],[`memoIds`,`memoEntities`],[`tableGroupIds`,`tableGroupEntities`]];function Nh(e){if(!C(e))return[];let t=Object.entries(e).filter(([,e])=>C(e)).map(([e,t])=>bm(e,t)).filter(e=>e!==``);return[...new Set(t)]}var Ph=e=>[...new Set(e.map(e=>e.id).filter(e=>w(e)&&e!==``))];function Fh(e,...t){let n=new Set(Object.keys(e));for(let e of t)for(let t of Object.values(e))t.domainId&&!n.has(t.domainId)&&(t.domainId=``)}function Ih(e,t,n,r){let i=Lh(n);t.forEach((t,n)=>{let a=e[t];a&&!i.has(t)&&(a.ui.zIndex=r+n,i.add(t))})}function Lh(e){let t=/* @__PURE__ */ new Set;if(!C(e))return t;for(let[n,r]of Object.entries(e)){if(!C(r))continue;let e=bm(n,r),i=r.ui;C(i)&&de(i.zIndex)?t.add(e):t.delete(e)}return t}function Rh(){return jh({})}var j={CanvasType:Xp,CanvasTypeList:Zp,Show:Qp,ColumnType:$p,ColumnTypeList:em,Database:tm,DatabaseList:nm,Language:rm,LanguageList:im,NameCase:am,NameCaseList:om,BracketType:sm,BracketTypeList:cm,RelationshipType:Jm,RelationshipTypeList:Ym,StartRelationshipType:Xm,StartRelationshipTypeList:Zm,ReferentialAction:Qm,ReferentialActionList:$m,Direction:eh,DirectionList:th,ColumnOption:{autoIncrement:1,primaryKey:2,unique:4,notNull:8,nameDerived:16},ColumnUIKey:{primaryKey:1,foreignKey:2},OrderType:Hm,OrderTypeList:Um,LockSettingType:lm,LockSettingTypeList:um,LockSettingFields:fm,CANVAS_SIZE_MAX:ym,CANVAS_SIZE_MIN:vm,CANVAS_ZOOM_MAX:_m,CANVAS_ZOOM_MIN:gm,DDLScriptPosition:Jp,DDLScriptPositionList:Yp,NameViewMode:Kp,NameViewModeList:qp,InvertedLockSettings:dm},zh=Object.values({columnUnique:`columnUnique`,columnAutoIncrement:`columnAutoIncrement`,columnName:`columnName`,columnDataType:`columnDataType`,columnNotNull:`columnNotNull`,columnDefault:`columnDefault`,columnComment:`columnComment`}),Bh=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`}),Vh=Object.values({MariaDB:`MariaDB`,MSSQL:`MSSQL`,MySQL:`MySQL`,Oracle:`Oracle`,PostgreSQL:`PostgreSQL`,SQLite:`SQLite`}),Hh=Object.values({GraphQL:`GraphQL`,"C#":`C#`,Java:`Java`,Kotlin:`Kotlin`,TypeScript:`TypeScript`,JPA:`JPA`,Scala:`Scala`}),Uh=Object.values({none:`none`,camelCase:`camelCase`,pascalCase:`pascalCase`,snakeCase:`snakeCase`}),Wh=Object.values({AtomOneDark:`AtomOneDark`,AtomOneLight:`AtomOneLight`,MonokaiSublime:`MonokaiSublime`,GithubGist:`GithubGist`,VS2015:`VS2015`}),Gh=Object.values({none:`none`,doubleQuote:`doubleQuote`,singleQuote:`singleQuote`,backtick:`backtick`}),Kh=.1,qh=2e3,Jh=2e4,Yh=()=>({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:{}}),Xh=e=>re(e,qh,Jh),Zh=e=>re(e,Kh,1);function Qh(e){let t=Yh();if(S(e))return t;let n=A(de,t,e),r=A(w,t,e),i=A(se,t.show,e.show),a=A(se,t.setting,e.setting);if(de(e.width)&&(t.width=Xh(e.width)),de(e.height)&&(t.height=Xh(e.height)),de(e.zoomLevel)&&(t.zoomLevel=Zh(e.zoomLevel)),r(`version`),r(`databaseName`),n(`scrollTop`),n(`scrollLeft`),A(xm(Vh),t,e)(`database`),A(xm(Bh),t,e)(`canvasType`),A(xm(Hh),t,e)(`language`),A(xm(Uh),t,e)(`tableCase`),A(xm(Uh),t,e)(`columnCase`),A(xm(Wh),t,e)(`highlightTheme`),A(xm(Gh),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&&zh.length===e.setting.columnOrder.length&&ae(zh,e.setting.columnOrder).length===0&&(t.setting.columnOrder=e.setting.columnOrder),C(e.pluginSerializationMap)){let n=e.pluginSerializationMap;for(let e of Object.keys(n)){let r=n[e];w(r)&&(t.pluginSerializationMap[e]=r)}}return t}var $h=()=>({memos:[]}),eg=()=>({id:``,value:``,ui:{active:!1,left:200,top:200,zIndex:2,width:127,height:127}});function tg(e){let t=$h();if(S(e)||!Array.isArray(e.memos))return t;for(let n of e.memos){let e=eg(),r=A(w,e,n),i=A(de,e.ui,n.ui),a=A(se,e.ui,n.ui),o=A(w,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 ng=[`ZeroOneN`,`One`,`N`],rg={ZeroOneN:`ZeroN`,One:`OneOnly`,N:`OneN`},ig=e=>ng.includes(e)?rg[e]:e,ag=Object.values({ZeroOneN:`ZeroOneN`,ZeroOne:`ZeroOne`,ZeroN:`ZeroN`,OneOnly:`OneOnly`,OneN:`OneN`,One:`One`,N:`N`}),og=Object.values({Ring:`Ring`,Dash:`Dash`}),sg=Object.values({left:`left`,right:`right`,top:`top`,bottom:`bottom`}),cg=()=>({relationships:[]}),lg=()=>({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 ug(e){let t=cg();if(S(e)||!Array.isArray(e.relationships))return t;for(let n of e.relationships){let e=lg(),r=A(w,e,n),i=A(se,e,n),a=A(de,e.start,n.start),o=A(w,e.start,n.start),s=A(de,e.end,n.end),c=A(w,e.end,n.end);r(`id`),r(`constraintName`),i(`identification`),i(`visible`),A(xm(ag),e,n)(`relationshipType`),e.relationshipType=ig(e.relationshipType),A(xm(og),e,n)(`startRelationshipType`),o(`tableId`),a(`x`),a(`y`),A(xm(sg),e.start,n.start)(`direction`),Array.isArray(n.start?.columnIds)&&(e.start.columnIds=n.start?.columnIds.filter(w)),c(`tableId`),s(`x`),s(`y`),A(xm(sg),e.end,n.end)(`direction`),Array.isArray(n.end?.columnIds)&&(e.end.columnIds=n.end?.columnIds.filter(w)),t.relationships.push(e)}return t}var dg={ASC:`ASC`,DESC:`DESC`},fg=Object.values(dg),pg=()=>({tables:[],indexes:[]}),mg=()=>({id:``,name:``,comment:``,columns:[],ui:{active:!1,left:200,top:100,zIndex:2,widthName:60,widthComment:60},visible:!0}),hg=()=>({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}}),gg=()=>({id:``,name:``,tableId:``,columns:[],unique:!1}),_g=()=>({id:``,orderType:dg.ASC});function vg(e){let t=pg();if(S(e))return t;if(Array.isArray(e.tables))for(let n of e.tables){let e=mg(),r=A(w,e,n),i=A(se,e,n),a=A(de,e.ui,n.ui),o=A(se,e.ui,n.ui),s=A(w,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=hg(),r=A(w,n,t),i=A(de,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=gg(),r=A(w,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=_g();A(w,n,t)(`id`),A(xm(fg),n,t)(`orderType`),e.columns.push(n)}t.indexes.push(e)}return t}function yg(e){let t=e;return{canvas:Qh(t.canvas),table:vg(t.table),relationship:ug(t.relationship),memo:tg(t.memo)}}var bg=(e,t)=>(e&511)*2**32+t;function xg({now:e=()=>Date.now(),random:t=e=>crypto.getRandomValues(e)}={}){let n=-1,r=0;return()=>{let[i,a,o]=t(/* @__PURE__ */ new Uint32Array(3)),s=e();s>n?(n=s,r=bg(i,a)):r++;let c=/* @__PURE__ */ new Uint8Array(16),l=new DataView(c.buffer);return l.setUint16(0,Math.floor(n/2**32)),l.setUint32(2,n%2**32),l.setUint16(6,28672+Math.floor(r/2**30)),l.setUint32(8,2147483648+r%2**30),l.setUint32(12,o),c}}var Sg=xg();function Cg(e){if(e.length!==16)throw RangeError(`A UUID is 16 bytes, not ${e.length}`);let t=0n;for(let n of e)t=t<<8n|BigInt(n);return t.toString(36).padStart(25,`0`)}var wg=()=>Cg(Sg());function Tg(e){let t=jh({});return Eg(t.settings,e.canvas),Dg(t,e.table),Og(t,e.memo),kg(t,e.relationship),t}function Eg(e,t){e.zoomLevel=t.zoomLevel;let{originX:n,originY:r}=Wp(t);e.originX=n,e.originY=r,e.databaseName=t.databaseName,e.canvasType=j.CanvasType.ERD,e.show=Object.keys(t.show).reduce((e,n)=>Cm(t.show,n,!1)?e|Cm(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:Cm(j.Language,t.language,j.Language.GraphQL),e.tableNameCase=Cm(j.NameCase,t.tableCase,j.NameCase.pascalCase),e.columnNameCase=Cm(j.NameCase,t.columnCase,j.NameCase.camelCase),e.bracketType=Cm(j.BracketType,t.bracketType,j.BracketType.none),e.relationshipDataTypeSync=t.setting.relationshipDataTypeSync,e.columnOrder=dh(t.setting.columnOrder.map(e=>j.ColumnType[e]))??e.columnOrder,e.lockedValues=sh(e)}function Dg(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=xh();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=Ch();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)=>Cm(n.option,t,!1)?e|Cm(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=Bm();n.id=t.id,n.name=t.name,n.tableId=t.tableId,n.unique=t.unique;for(let r of t.columns){let i=wg(),a=Wm();n.indexColumnIds.push(i),n.seqIndexColumnIds.push(i),a.id=i,a.indexId=t.id,a.columnId=r.id,a.orderType=Cm(j.OrderType,r.orderType,j.OrderType.ASC),e.collections.indexColumnEntities[a.id]=a}e.collections.indexEntities[n.id]=n}}function Og(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=Km();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 kg(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=nh();n.id=t.id,n.identification=t.identification,n.relationshipType=Cm(j.RelationshipType,t.relationshipType,j.RelationshipType.ZeroN),n.startRelationshipType=Cm(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=Cm(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=Cm(j.Direction,t.end.direction,j.Direction.bottom),e.collections.relationshipEntities[n.id]=n}}function Ag(e){let{lockedValues:t,lockSettings:n,ddlScripts:r,nameViewMode:i,...a}=e,o={...a,columnOrder:fh(a.columnOrder),lockSettings:n,...r&&(r.before!==``||r.after!==``)?{ddlScripts:{before:r.before,after:r.after}}:{},...i===void 0?{}:{nameViewMode:i}};return um.forEach(e=>{t&&mm(n,e)&&Object.assign(o,_e(t,fm[e]))}),o.nameViewMode===Kp.physical&&delete o.nameViewMode,o}function jg(e){let t=JSON.parse(e);if(Reflect.get(t,`version`)===`3.0.0`)return jh(t);let n=Tg(yg(t));return bh(n.settings),n}function Mg(e){let t=_e(e,[`$schema`,`version`,`settings`,`doc`,`collections`]);return Fm({...t,settings:Ag(t.settings),...Lg(t)})}var Ng={logicalName:``,groupId:``,nameDerived:!1},Pg={logicalName:``,domainId:``},Fg={wordEntities:`wordIds`,termEntities:`termIds`,domainEntities:`domainIds`};function Ig(e,t){let n=Object.keys(t).filter(n=>Reflect.get(e,n)===t[n]);return n.length?ge(e,n):e}function Lg({doc:e,collections:t}){let n=(e.tableGroupIds?.length??0)!==0||Object.keys(t.tableGroupEntities??{}).length!==0,r={doc:n?{...e}:ge(e,[`tableGroupIds`]),collections:{...n?t:ge(t,[`tableGroupEntities`]),tableEntities:me(t.tableEntities??{},e=>Ig(e,Ng))}};t.tableColumnEntities&&(r.collections.tableColumnEntities=me(t.tableColumnEntities,e=>Ig(e,Pg)));for(let n of Om){let i=Fg[n],a=e[i]??[],o=Object.values(t[n]??{});a.length===0&&o.length===0?(delete r.doc[i],delete r.collections[n]):(r.doc[i]=a,r.collections[n]=jm(n,o,Dm[n]))}return r}function Rg(e){return[e,-1,-1,{}]}function zg(e,t,n){return e[t]||(e[t]=Rg(n),e[t])}function Bg(e,t,n,r,i){let a=zg(e,n,r),o=a[1],s=a[2];o<t&&(a[1]=t),s<t&&i()}function Vg(e,t,n,r,i){let a=zg(e,n,r),o=a[2],s=a[1];o<t&&(a[2]=t),s<=t&&i()}function Hg(e,t,n,r,i,a){let o=zg(e,n,r);(o[3][i]??-1)<=t&&(o[3][i]=t,a())}function Ug(e){"@babel/helpers - typeof";return Ug=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},Ug(e)}function Wg(e,t){if(Ug(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(Ug(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function Gg(e){var t=Wg(e,`string`);return Ug(t)==`symbol`?t:t+``}function Kg(e,t,n){return(t=Gg(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var qg=class{constructor(e){Kg(this,`collections`,void 0),this.collections=e}collection(e){return new Jg(this.collections[e],e)}},Jg=class{constructor(e,t){Kg(this,`collection`,void 0),Kg(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),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 Bg(e,t,n,this.collectionKey,r),this}removeOperator(e,t,n,r){return Vg(e,t,n,this.collectionKey,r),this}replaceOperator(e,t,n,r,i){return Hg(e,t,n,this.collectionKey,r,i),this}},M=e=>new qg(e);const Yg=j.CanvasType,Xg=j.CanvasTypeList,N=j.Show,P=j.ColumnType,Zg=j.ColumnTypeList,F=j.Database,Qg=j.DatabaseList;j.Language;const $g=j.LanguageList;j.NameCase;const e_=j.NameCaseList,t_=j.BracketType,n_=j.BracketTypeList,r_=j.RelationshipType;j.RelationshipTypeList;const i_=j.StartRelationshipType;j.StartRelationshipTypeList;const a_=j.ReferentialAction;j.ReferentialActionList;const I=j.Direction;j.DirectionList;const L=j.ColumnOption,R=j.ColumnUIKey,o_=j.OrderType;j.OrderTypeList;const s_=j.LockSettingType,c_=j.LockSettingTypeList,l_=j.LockSettingFields;j.InvertedLockSettings;const u_=j.NameViewMode,d_=j.NameViewModeList,f_=j.CANVAS_SIZE_MAX,p_=j.CANVAS_SIZE_MIN,m_=j.CANVAS_ZOOM_MAX,h_=j.CANVAS_ZOOM_MIN;j.DDLScriptPosition;const g_=j.DDLScriptPositionList;t_.none,t_.backtick,t_.doubleQuote,t_.singleQuote;const __={[a_.noAction]:`NO ACTION`,[a_.cascade]:`CASCADE`,[a_.setNull]:`SET NULL`,[a_.setDefault]:`SET DEFAULT`,[a_.restrict]:`RESTRICT`},v_={addDictionary:`dictionary.add`,updateDictionary:`dictionary.update`,removeDictionary:`dictionary.remove`},z={word:`word`,term:`term`,domain:`domain`},y_=Object.values(z),b_={[z.word]:[`name`,`abbreviation`,`englishName`,`description`,`synonyms`,`forbiddenWords`],[z.term]:[`name`,`physicalName`,`domainId`,`description`,`synonyms`],[z.domain]:[`name`,`category`,`dataType`,`description`]},x_={[z.word]:[...b_.word,`order`],[z.term]:[...b_.term,`order`],[z.domain]:[...b_.domain,`order`]},S_=/* @__PURE__ */ new WeakMap,C_=/* @__PURE__ */ new Set;function w_(e){let t=e.collections.tableColumnEntities,n=S_.get(t);if(n)return n;let r=/* @__PURE__ */ new Map;for(let[e,{domainId:n}]of Object.entries(t))n&&T_(r,n,e);return S_.set(t,r),r}function T_(e,t,n){let r=e.get(t);r?r.add(n):e.set(t,/* @__PURE__ */ new Set([n]))}const E_=(e,t)=>w_(e).get(t)??C_;function D_(e,t,n,r){let i=S_.get(e.collections.tableColumnEntities);i&&n!==r&&(i.get(n)?.delete(t),r&&T_(i,r,t))}const O_=/* @__PURE__ */ new WeakMap;function k_(e){let t=O_.get(e);if(t&&t.length===e.length)return t;let n={ids:new Set(e),length:e.length};return O_.set(e,n),n}const A_=(e,t)=>k_(e).ids.has(t);function j_(e,t){let n=k_(e);return!n.ids.has(t)&&(e.push(t),n.ids.add(t),n.length=e.length,!0)}function M_(e,t){let n=k_(e);if(!n.ids.has(t))return!1;let r=e.lastIndexOf(t);return r!==-1&&e.splice(r,1),n.ids.delete(t),n.length=e.length,!0}const N_=(e,t)=>t&&A_(e.doc.domainIds,t)?t:``;function P_(e,t,n){let r=N_(e,t),i=e.collections.domainEntities[r]?.dataType??``;return r&&i===n?r:``}function F_(e,t){return!t||!A_(e.doc.domainIds,t)?``:e.collections.domainEntities[t]?.name??``}function B(e){let t=new Set(e);return e=>t.has(e)}function I_(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 L_=1200,R_=e=>typeof e==`object`&&!!e,z_=(e,t)=>R_(e)&&t in e,B_=(e,t)=>z_(e,t)&&!Object.prototype.propertyIsEnumerable.call(e,t),V_=e=>R_(e)?U_(Array.isArray(e)?[]:{},e):e;function H_(e,t){let n={};if(R_(e))for(let t of Object.keys(e))n[t]=V_(e[t]);for(let r of Object.keys(t))B_(e,r)||(n[r]=z_(e,r)&&R_(t[r])?U_(e[r],t[r]):V_(t[r]));return n}function U_(e,t){let n=Array.isArray(t);return n===Array.isArray(e)?n?e.concat(t).map(V_):H_(e,t):V_(t)}function W_(e,t){return U_(e,t)}const G_=e=>W_({id:wg(),name:``,logicalName:``,comment:``,columnIds:[],seqColumnIds:[],groupId:``,nameDerived:!1,ui:{x:200,y:100,zIndex:2,widthName:60,widthLogicalName:60,widthComment:60,color:``}},e??{}),K_=e=>W_({id:wg(),tableId:``,name:``,comment:``,dataType:``,default:``,options:0,logicalName:``,domainId:``,ui:{keys:0,widthName:60,widthLogicalName:60,widthComment:60,widthDataType:60,widthDomain:60,widthDefault:60}},e??{}),q_={Databricks:`Databricks`,MariaDB:`MariaDB`,MSSQL:`MSSQL`,MySQL:`MySQL`,Oracle:`Oracle`,PostgreSQL:`PostgreSQL`,Snowflake:`Snowflake`,SQLite:`SQLite`},J_=Object.values(q_),Y_={[q_.Databricks]:F.Databricks,[q_.MariaDB]:F.MariaDB,[q_.MSSQL]:F.MSSQL,[q_.MySQL]:F.MySQL,[q_.Oracle]:F.Oracle,[q_.PostgreSQL]:F.PostgreSQL,[q_.Snowflake]:F.Snowflake,[q_.SQLite]:F.SQLite},X_=/[^0-9]/g,Z_=e=>e.replace(X_,``),Q_=e=>re(e,p_,f_),$_=e=>re(e,h_,m_),ev=e=>re(e,60,200);function tv(e){let t=w(e)?Number(Z_(e)):e;return Q_(t)}function nv(e){return Ke($_(e),2)}const rv=B(Qg),iv=B(e_),av=B(n_),ov=B($g),sv=B(Zg);B(J_);const cv=B(Xg),lv=B(d_);function V(e){return Math.max(e,60)}function uv(e){return w(e)?e.trim():``}function dv(e){return e<=.7}const H={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`,changeColumnLogicalName:`column.changeLogicalName`,changeColumnDomain:`column.changeDomain`,changeColumnNameDerived:`column.changeNameDerived`},fv=O(H.addColumn),pv=({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=>G_({id:e}));M(e).collection(`tableColumnEntities`).addOne(K_({id:n,tableId:r})).addOperator(t,o,n,()=>{B(c.columnIds)(n)||s.updateOne(r,e=>{I_(e.columnIds,e.seqColumnIds,n)})})},mv=O(H.removeColumn),hv=({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=>G_({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)})})},gv=O(H.changeColumnName),_v=({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=>K_({id:e})),c.replaceOperator(t,s,n,`name`,()=>{c.updateOne(n,e=>{e.name=r,e.ui.widthName=V(a(r))})})},vv=O(H.changeColumnComment),yv=({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=>K_({id:e})),c.replaceOperator(t,s,n,`comment`,()=>{c.updateOne(n,e=>{e.comment=r,e.ui.widthComment=V(a(r))})})},bv=O(H.changeColumnDataType),xv=`dataType`,Sv=({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`),l=c.getOrCreate(n,e=>K_({id:e}));(t[n]?.[3][xv]??-1)===s&&r<=l.dataType||c.replaceOperator(t,s,n,xv,()=>{c.updateOne(n,e=>{e.dataType=r,e.ui.widthDataType=V(a(r))})})},Cv=O(H.changeColumnDefault),wv=({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=>K_({id:e})),c.replaceOperator(t,s,n,`default`,()=>{c.updateOne(n,e=>{e.default=r,e.ui.widthDefault=V(a(r))})})},Tv=O(H.changeColumnAutoIncrement),Ev=({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=>K_({id:e})),s.replaceOperator(t,o,n,`options(autoIncrement)`,()=>{s.updateOne(n,e=>{e.options=r?e.options|L.autoIncrement:e.options&~L.autoIncrement})})},Dv=O(H.changeColumnPrimaryKey),Ov=({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=>K_({id:e})),s.replaceOperator(t,o,n,`options(primaryKey)`,()=>{s.updateOne(n,e=>{e.options=r?e.options|L.primaryKey:e.options&~L.primaryKey,e.ui.keys=r?e.ui.keys|R.primaryKey:e.ui.keys&~R.primaryKey})})},kv=O(H.changeColumnUnique),Av=({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=>K_({id:e})),s.replaceOperator(t,o,n,`options(unique)`,()=>{s.updateOne(n,e=>{e.options=r?e.options|L.unique:e.options&~L.unique})})},jv=O(H.changeColumnNotNull),Mv=({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=>K_({id:e})),s.replaceOperator(t,o,n,`options(notNull)`,()=>{s.updateOne(n,e=>{e.options=r?e.options|L.notNull:e.options&~L.notNull})})},Nv=O(H.changeColumnLogicalName),Pv=({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=>K_({id:e})),c.replaceOperator(t,s,n,`logicalName`,()=>{c.updateOne(n,e=>{e.logicalName=r,e.ui.widthLogicalName=V(a(r))})})},Fv=O(H.changeColumnDomain),Iv=(e,{payload:{id:t,value:n},version:r},{toWidth:i,clock:a})=>{let o=r??a.getVersion(),s=M(e.collections).collection(`tableColumnEntities`);s.getOrCreate(t,e=>K_({id:e})),s.replaceOperator(e.lww,o,t,`domainId`,()=>{s.updateOne(t,r=>{D_(e,t,r.domainId,n),r.domainId=n,r.ui.widthDomain=V(i(F_(e,n)))})})},Lv=O(H.changeColumnNameDerived),Rv=({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=>K_({id:e})),s.replaceOperator(t,o,n,`options(nameDerived)`,()=>{s.updateOne(n,e=>{e.options=r?e.options|L.nameDerived:e.options&~L.nameDerived})})},zv=O(H.moveColumn),Bv=({collections:e},{payload:{id:t,tableId:n,targetId:r}})=>{if(t===r)return;let i=M(e).collection(`tableEntities`),a=i.getOrCreate(n,e=>G_({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))})},Vv={[H.addColumn]:pv,[H.removeColumn]:hv,[H.changeColumnName]:_v,[H.changeColumnComment]:yv,[H.changeColumnDataType]:Sv,[H.changeColumnDefault]:wv,[H.changeColumnAutoIncrement]:Ev,[H.changeColumnPrimaryKey]:Ov,[H.changeColumnUnique]:Av,[H.changeColumnNotNull]:Mv,[H.moveColumn]:Bv,[H.changeColumnLogicalName]:Pv,[H.changeColumnDomain]:Iv,[H.changeColumnNameDerived]:Rv},Hv={addColumnAction:fv,removeColumnAction:mv,changeColumnNameAction:gv,changeColumnCommentAction:vv,changeColumnDataTypeAction:bv,changeColumnDefaultAction:Cv,changeColumnAutoIncrementAction:Tv,changeColumnPrimaryKeyAction:Dv,changeColumnUniqueAction:kv,changeColumnNotNullAction:jv,moveColumnAction:zv,changeColumnLogicalNameAction:Nv,changeColumnDomainAction:Fv,changeColumnNameDerivedAction:Lv},Uv=`serial`,Wv=/* @__PURE__ */ new Map([[`smallserial`,`smallint`],[`serial2`,`smallint`],[`serial4`,`integer`],[`bigserial`,`bigint`],[`serial8`,`bigint`]]),Gv=/* @__PURE__ */ new Map([[F.PostgreSQL,`integer`],[F.MySQL,`bigint unsigned`],[F.MariaDB,`bigint unsigned`]]),Kv=e=>e.trim().toLowerCase();function qv(e){let t=Kv(e);return t===Uv||Wv.has(t)}function Jv(e,t){let n=Kv(e),r=n===Uv?Gv.get(t):Wv.get(n);if(!r)return e;let i=e.trim();return i===i.toUpperCase()?r.toUpperCase():r}function Yv(e){let t=/* @__PURE__ */ new Map,n=(e,n)=>{let r=t.get(e);r?r.push(n):t.set(e,[n])};for(let{start:t,end:r}of e){let e=[...t.columnIds],i=[...r.columnIds],a=/* @__PURE__ */ new Set;e.forEach((e,t)=>{if(a.has(e))return;a.add(e);let o=i[t];o!==void 0&&n(e,{id:o,tableId:r.tableId,toForeignKey:!0})}),i.forEach((r,i)=>{if(a.has(r))return;a.add(r);let o=e[i];o!==void 0&&n(r,{id:o,tableId:t.tableId,toForeignKey:!1})})}return t}function Xv(e,t,n=[],r=M(t.collections).collection(`relationshipEntities`).selectByIds(t.doc.relationshipIds),i=/* @__PURE__ */ new Set){let{collections:a,settings:{database:o}}=t,s=M(a).collection(`tableColumnEntities`),c=Yv(r),l=new Set(n.map(({id:e})=>e));for(let t=e.pop();t;t=e.pop()){let{id:r,value:a}=t;if(l.has(r))continue;n.push(t),l.add(r);let u=Jv(a,o);for(let{id:t,tableId:n,toForeignKey:o}of c.get(r)??[]){if(i.has(t))continue;if(o){e.push({id:t,tableId:n,value:u});continue}let r=s.selectById(t);r&&qv(r.dataType)||e.push({id:t,tableId:n,value:a})}}return n}const Zv=/* @__PURE__ */ new Map;function Qv(e,t){let{domainEntities:n}=e.collections;return e=>t.get(e)??n[e]?.dataType??``}function $v(e,t,n){let{collections:r,doc:i}=e,a=M(r).collection(`tableColumnEntities`),o=new Map(n.map(({id:e,value:t})=>[e,t]));return{columns:a,isLiveDomain:e=>e!==``&&A_(i.domainIds,e),domainTypeOf:Qv(e,t),domainIdOf:e=>o.get(e)??a.selectById(e)?.domainId??``}}function ey(e,t,{domainTypes:n=Zv,links:r=[]}={}){let{domainTypeOf:i,domainIdOf:a}=$v(e,n,r);return t.filter(({id:e,value:t})=>{let n=a(e);return n!==``&&i(n)!==t}).map(({tableId:e,id:t})=>Fv({tableId:e,id:t,value:``}))}function ty(e,{domainTypes:t=Zv,links:n=[],dataTypes:r=[]}){let{collections:i,doc:a,settings:o}=e,s=n.filter(({value:e})=>e===``||A_(a.domainIds,e)),{columns:c,isLiveDomain:l,domainTypeOf:u,domainIdOf:d}=$v(e,t,s),f=/* @__PURE__ */ new Map;for(let e of r)f.set(e.id,e);for(let{tableId:e,id:t,value:n}of s)n!==``&&f.set(t,{tableId:e,id:t,value:u(n)});let p=new Set([...t.keys()].filter(l));if(p.size){let e=M(i).collection(`tableEntities`).selectByIds(a.tableIds);for(let t of e)for(let e of t.columnIds){let n=d(e);!f.has(e)&&p.has(n)&&f.set(e,{tableId:t.id,id:e,value:u(n)})}}let m=[...f.values()],h=o.relationshipDataTypeSync?Xv([...m],e,[],void 0,new Set(f.keys())):m,g=new Set(r.map(({id:e})=>e)),_=h.filter(({id:e,value:t})=>g.has(e)||c.selectById(e)?.dataType!==t),v=s.filter(({id:e,value:t})=>c.selectById(e)?.domainId!==t).map(Fv),y=ey(e,_,{domainTypes:t,links:s});return[...v,..._.map(bv),...y]}const ny=e=>W_({id:wg(),name:``,category:``,dataType:``,description:``,order:``},e??{}),ry=e=>W_({id:wg(),name:``,physicalName:``,domainId:``,description:``,synonyms:``,order:``},e??{}),iy=e=>W_({id:wg(),name:``,abbreviation:``,englishName:``,description:``,synonyms:``,forbiddenWords:``,order:``},e??{}),ay={[z.word]:`wordEntities`,[z.term]:`termEntities`,[z.domain]:`domainEntities`},oy={[z.word]:`wordIds`,[z.term]:`termIds`,[z.domain]:`domainIds`},sy=e=>e.trim().normalize(`NFC`),cy=e=>e.split(`,`).map(sy).filter(e=>e!==``),ly=/* @__PURE__ */ new WeakMap;function uy(e,t){let n=e.collections[ay[t]];ly.set(n,(ly.get(n)??0)+1)}function dy(e,t){let n=/* @__PURE__ */ new WeakMap;return r=>{let i=r.collections[ay[e]],a=r.doc[oy[e]],o=ly.get(i)??0,s=n.get(i);if(s&&s.generation===o&&s.ids===a&&s.length===a.length)return s.value;let c=t(r,i,a);return n.set(i,{generation:o,ids:a,length:a.length,value:c}),c}}function fy(e,t,n){let r=[];for(let e of n){let n=t[e];n&&r.push(n)}return r.sort(Vp)}const py={[z.word]:dy(z.word,fy),[z.term]:dy(z.term,fy),[z.domain]:dy(z.domain,fy)},my=(e,t)=>py[t](e);function hy(e,t){return dy(e,n=>t(my(n,e)))}const gy=()=>({next:/* @__PURE__ */ new Map});function _y(e,t){let n=e;for(let e=0;e<t.length;e++){let r=t.charCodeAt(e),i=n.next.get(r);i||(i=gy(),n.next.set(r,i)),n=i}return n.marks??={words:[],synonymOf:[],forbiddenOf:[]},n.marks}function vy(e,t){e.includes(t)||e.push(t)}function yy(e,t){let n=/* @__PURE__ */ new Map;for(let r of e){let e=sy(r.name);if(!e)continue;let i=n.get(e);i?i.push(r):n.set(e,[r]),t?.(r,e)}return n}const by=e=>({rows:e,byName:yy(e)});function xy(e){let t=gy();return{rows:e,byName:yy(e,(e,n)=>{_y(t,n).words.push(e);for(let r of cy(e.synonyms))r!==n&&vy(_y(t,r).synonymOf,e);for(let r of cy(e.forbiddenWords))r!==n&&vy(_y(t,r).forbiddenOf,e)}),root:t}}const Sy=hy(z.word,xy),Cy=hy(z.term,by),wy=hy(z.domain,by),Ty=(e,t)=>Cy(e).byName.get(sy(t))?.[0],Ey=(e,t)=>wy(e).byName.get(sy(t))?.[0],Dy={[z.word]:`wordEntities`,[z.term]:`termEntities`,[z.domain]:`domainEntities`},Oy={[z.word]:`wordIds`,[z.term]:`termIds`,[z.domain]:`domainIds`},ky={[z.word]:iy,[z.term]:ry,[z.domain]:ny},Ay=B(y_),jy=(e,t)=>M(e.collections).collection(Dy[t]),My=(e,t,n)=>jy(e,t).selectById(n),Ny=(e,t)=>e.doc[Oy[t]];function Py(e,t){if(!t||typeof t!=`object`)return[];let n=[];for(let r of x_[e]){let e=Reflect.get(t,r);w(e)&&n.push([r,e])}return n}function Fy(e,t,n,r,i){let a=jy(e,t),o=!1;for(let[s,c]of Py(t,r))a.replaceOperator(e.lww,i,n,s,()=>{a.updateOne(n,e=>{Reflect.set(e,s,c)}),s===`name`&&(o=!0)});return o&&t===z.domain}function Iy(e,t,{toWidth:n}){let r=V(n(F_(e,t))),i=e.collections.tableColumnEntities;if(!t){for(let e of Object.values(i))e.domainId===t&&(e.ui.widthDomain=r);return}for(let n of E_(e,t))i[n].ui.widthDomain=r}const Ly=O(v_.addDictionary),Ry=(e,{payload:{kind:t,id:n,values:r},version:i},a)=>{if(!Ay(t))return;uy(e,t);let o=i??a.clock.getVersion(),s=jy(e,t);s.getOrCreate(n,e=>ky[t]({id:e}));let c=!1;s.addOperator(e.lww,o,n,()=>{c=j_(Ny(e,t),n)});let l=Fy(e,t,n,r,o);t===z.domain&&(c||l)&&Iy(e,n,a)},zy=O(v_.updateDictionary),By=(e,{payload:{kind:t,id:n,values:r},version:i},a)=>{if(!Ay(t))return;uy(e,t);let o=i??a.clock.getVersion();jy(e,t).getOrCreate(n,e=>ky[t]({id:e})),Fy(e,t,n,r,o)&&Iy(e,n,a)},Vy=O(v_.removeDictionary),Hy=(e,{payload:{kind:t,id:n},version:r},i)=>{if(!Ay(t))return;uy(e,t);let a=r??i.clock.getVersion(),o=!1;jy(e,t).removeOperator(e.lww,a,n,()=>{o=M_(Ny(e,t),n)}),t===z.domain&&o&&Iy(e,n,i)},Uy={[v_.addDictionary]:Ry,[v_.updateDictionary]:By,[v_.removeDictionary]:Hy},Wy={addDictionaryAction:Ly,updateDictionaryAction:zy,removeDictionaryAction:Vy};function Gy(e,{kind:t,id:n,values:r},i){let a=My(i,t,n),o=Py(t,r);a&&o.length&&e.push(zy({kind:t,id:n,values:Object.fromEntries(o.map(([e])=>[e,Reflect.get(a,e)]))}))}const Ky=(e,{payload:t},n)=>{let{kind:r,id:i}=t;if(Ay(r)){if(A_(Ny(n,r),i)){Gy(e,t,n);return}e.push(Vy({kind:r,id:i}))}},qy=(e,{payload:{kind:t,id:n}},r)=>{Ay(t)&&A_(Ny(r,t),n)&&e.push(Ly({kind:t,id:n}))},Jy=(e,{payload:t},n)=>{Ay(t.kind)&&Gy(e,t,n)},Yy=({type:e})=>e===v_.addDictionary||e===v_.removeDictionary;function Xy(e){let t=e.flatMap((e,t)=>Yy(e)?[t]:[]);for(let n=0,r=t.length-1;n<r;n++,r--){let i=e[t[n]];e[t[n]]=e[t[r]],e[t[r]]=i}}const Zy={[v_.addDictionary]:Ky,[v_.updateDictionary]:Jy,[v_.removeDictionary]:qy},U={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`,editTableGroup:`editor.editTableGroup`,editTableGroupEnd:`editor.editTableGroupEnd`,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`,changeDrawTableGroup:`editor.changeDrawTableGroup`,changeZenMode:`editor.changeZenMode`,dragstartColumn:`editor.dragstartColumn`,dragendColumn:`editor.dragendColumn`,sharedMouseTracker:`editor.sharedMouseTracker`,sharedFocusTracker:`editor.sharedFocusTracker`,sharedSelectionTracker:`editor.sharedSelectionTracker`,sharedDragSelectTracker:`editor.sharedDragSelectTracker`,dragSelectRect:`editor.dragSelectRect`,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`,viewStepCenters:`editor.viewStepCenters`,changeVisualizationMode:`editor.changeVisualizationMode`},Qy={table:`table`,memo:`memo`,tableGroup:`tableGroup`},$y={nameOnly:`nameOnly`,keysOnly:`keysOnly`,allFields:`allFields`},eb={flow:`flow`},tb={graph:`graph`,flow:`flow`},nb={previous:`previous`,next:`next`},W={tableName:`tableName`,tableComment:`tableComment`,columnName:`columnName`,columnDataType:`columnDataType`,columnNotNull:`columnNotNull`,columnUnique:`columnUnique`,columnAutoIncrement:`columnAutoIncrement`,columnDefault:`columnDefault`,columnComment:`columnComment`,tableLogicalName:`tableLogicalName`,columnLogicalName:`columnLogicalName`,columnDomain:`columnDomain`},rb={ArrowUp:`ArrowUp`,ArrowRight:`ArrowRight`,ArrowDown:`ArrowDown`,ArrowLeft:`ArrowLeft`,Tab:`Tab`};B(Object.values(rb));const ib=()=>({id:wg(),selectedMap:{},hasUndo:!1,hasRedo:!1,dictionaryHistory:{word:{hasUndo:!1,hasRedo:!1},term:{hasUndo:!1,hasRedo:!1},domain:{hasUndo:!1,hasRedo:!1}},viewport:{width:L_,height:675},scrollPullPending:!1,focusTable:null,editMemoId:null,editTableGroupId:null,memoScrollTopMap:{},drawRelationship:null,hoverColumnMap:{},hoverRelationshipMap:{},openMap:{},handTool:!1,drawTableGroup:!1,zenMode:!1,draggableColumn:null,draggingColumnMap:{},sharedMouseTrackerMap:{},sharedFocusTrackerMap:{},sharedSelectionTrackerMap:{},sharedDragSelectTrackerMap:{},dragSelect:null,views:{flow:null},visualizationMode:tb.graph,lastCanvasType:Yg.ERD});function G(e,t){return(e&t)===t}const ab=(e,t=`document`)=>t===`document`?e:{nameViewMode:e.nameViewMode,show:0},ob=({nameViewMode:e})=>e===u_.logical,sb=({nameViewMode:e})=>e===u_.both,cb=(e,{logicalName:t})=>ob(e)&&!t.trim(),lb=e=>ob(e)&&!G(e.show,N.columnDomain),ub=(e,t,n=`document`)=>lb(ab(e.settings,n))&&F_(e,t.domainId)!==``;function db(e){let t=ob(e)?[W.tableLogicalName]:sb(e)?[W.tableLogicalName,W.tableName]:[W.tableName];return G(e.show,N.tableComment)?[...t,W.tableComment]:t}const fb=e=>({show:t})=>G(t,e),pb={[P.columnName]:()=>!0,[P.columnLogicalName]:sb,[P.columnDataType]:fb(N.columnDataType),[P.columnDomain]:fb(N.columnDomain),[P.columnNotNull]:fb(N.columnNotNull),[P.columnUnique]:fb(N.columnUnique),[P.columnAutoIncrement]:fb(N.columnAutoIncrement),[P.columnDefault]:fb(N.columnDefault),[P.columnComment]:fb(N.columnComment)},mb={[P.columnName]:W.columnName,[P.columnLogicalName]:W.columnLogicalName,[P.columnDataType]:W.columnDataType,[P.columnDomain]:W.columnDomain,[P.columnNotNull]:W.columnNotNull,[P.columnUnique]:W.columnUnique,[P.columnAutoIncrement]:W.columnAutoIncrement,[P.columnDefault]:W.columnDefault,[P.columnComment]:W.columnComment};function hb(e,t){if(ob(e)){if(t===W.tableName)return W.tableLogicalName;if(t===W.columnName)return W.columnLogicalName}return t===W.columnDataType&&lb(e)?W.columnDomain:t}function gb(e){let t=[];for(let n of e.columnOrder){let r=mb[n];r&&pb[n](e)&&t.push(hb(e,r))}return t}function _b(e){return sb(e)?[P.columnLogicalName,P.columnName,P.columnDomain,P.columnDataType]:[P.columnName,P.columnDataType]}function vb(e){let t=ab(e,eb.flow);return _b(e).map(e=>hb(t,mb[e]))}const yb={[W.tableLogicalName]:W.tableName,[W.columnLogicalName]:W.columnName,[W.columnDomain]:W.columnDataType};function bb(e,t,n){if(t.includes(n))return n;let r=hb(e,yb[n]??n);return t.includes(r)?r:null}function xb(e){let{focusTable:t}=e.editor;if(!t)return;let n=t.columnId?gb(e.settings):db(e.settings),r=bb(e.settings,n,t.focusType);r&&r!==t.focusType&&(t.focusType=r,t.edit=!1)}const Sb=(e,t)=>{Object.entries(e.editor.selectedMap).forEach(([n,r])=>{r===t&&Reflect.deleteProperty(e.editor.selectedMap,n)})};function Cb(e){Sb(e,Qy.tableGroup),e.editor.drawTableGroup=!1,e.editor.editTableGroupId=null}function wb(e){Sb(e,Qy.memo),e.editor.editMemoId=null}function Tb(e){let{show:t}=e.settings;G(t,N.hideTableGroup)&&Cb(e),G(t,N.hideMemo)&&wb(e)}function Eb(e){return 6.25*Math.sqrt(Math.max(e,0))}function Db(e){return e>=0?e/2:Eb(-e)}function Ob(e,t,n){let r=Db((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 kb(e,t,n,r){return[Ob(e,t,n),Ob(n,r,e)]}function Ab(e,t,n,r,i=24){let[a,o]=kb(e,t,n,r);return jb(e,a,o,n,i)}function jb(e,t,n,r,i){let a=Math.max(1,Math.floor(i)),o=[{x:e.x,y:e.y}];for(let i=1;i<=a;i++){let s=i/a;o.push({x:Mb(e.x,t.x,n.x,r.x,s),y:Mb(e.y,t.y,n.y,r.y,s)})}return o}function Mb(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}function Nb(e,t){return Math.max(Math.abs(t.x-e.x),Math.abs(t.y-e.y))}function Pb(e,t){return 1.2*Nb(e,t)}function Fb(e,t){return 2.45*Nb(e,t)}function Ib(e,t,n,r,i){let a=1.25*i;return jb(e,{x:e.x+t.x*a,y:e.y+t.y*a},{x:n.x+r.x*a,y:n.y+r.y*a},n,48)}const K={left:`left`,right:`right`,top:`top`,bottom:`bottom`},Lb=Object.values(K);B([K.top,K.bottom,K.left,K.right]);const Rb=[0,0];function zb({tableId:e,x:t,y:n,direction:r}){return{tableId:e,x:t,y:n,direction:r}}const Bb=()=>({epoch:0,stubSlots:/* @__PURE__ */ new WeakMap,routes:/* @__PURE__ */ new WeakMap,anchors:/* @__PURE__ */ new WeakMap}),Vb={document:Bb(),flow:Bb()},Hb={flow:/* @__PURE__ */ new WeakMap};function Ub(e,t){let n=Hb[t],r=n.get(e);return r||(r=ko({version:0}),n.set(e,r)),r}function Wb(e,t){return Ub(e,t).version}function Gb(e,t){Ub(e,t).version+=1}function Kb(e,t=`document`){let n=Vb[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)&&Gb(r,t)}}const qb=(e,t)=>e[0]===t[0]&&e[1]===t[1],Jb=(e,t)=>e.x===t.x&&e.y===t.y&&e.direction===t.direction,Yb=(e,t)=>e.length===t.length&&e.every((e,n)=>e.x===t[n].x&&e.y===t[n].y);function Xb(e,t,n=`document`){let r=Vb[n];n!==`document`&&!qb(r.stubSlots.get(e)??Rb,t)&&Gb(e,n),r.stubSlots.set(e,t)}function Zb(e,t=`document`){return t!==`document`&&Wb(e,t),Vb[t].stubSlots.get(e)??Rb}function Qb(e,t,n=`document`){let r=Vb[n];if(n!==`document`){let i=r.routes.get(e);(!i||!Yb(i.points,t))&&Gb(e,n)}r.routes.set(e,{points:t,epoch:r.epoch})}function $b(e,t=`document`){return t!==`document`&&Wb(e,t),Vb[t].routes.get(e)?.points}function ex(e=`document`){Vb[e].epoch+=1}function tx(e,t=`document`){return t===`document`?e:(Wb(e,t),Vb[t].anchors.get(e)??e)}function nx(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}=Vb[r],a=i.get(e)??e;(!Jb(a.start,t)||!Jb(a.end,n))&&Gb(e,r),i.set(e,{start:zb(t),end:zb(n)})}function rx(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 ix({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 ax(e=`document`){return e===`document`?2:1}function ox(e,t=2,n=`document`){let r=Vb[n],{start:i,end:a}=tx(e,n),o=r.routes.get(e),s=o&&o.epoch===r.epoch?o.points:null;if(i.tableId===a.tableId)return ix(rx([i,a]),21+t+Fb(i,a));let c=s?0:48;if(n!==`document`){let e=rx([...s?.length?[s[0],s[s.length-1]]:[],i,a]),n=Eb(Math.max(e.width,e.height)+2*c);return ix(e,21+t+c+n)}return ix(rx(s?[...s,i,a]:[i,a]),21+t+c)}const sx=e=>e.settings.canvasType===Yg.visualization&&e.editor.visualizationMode===tb.flow,cx=e=>sx(e)?e.editor.views.flow:null,lx=(e,t)=>e.editor.views[t]!==null&&sx(e),ux=(e,t)=>t===`document`?null:e.editor.views[t],dx=(e,t)=>e.length===t.length&&e.every((e,n)=>e===t[n]);function fx(e,t,n){let r=n.filter(t=>e.has(t));return n.length&&!r.length||dx(r,t.centerIds)?null:r}function px(e,t=[]){let n=[...t];return{kind:e,showMode:n.length?$y.keysOnly:$y.nameOnly,positions:{},originX:0,originY:0,zoomLevel:1,centerIds:n,previousCenterIds:[],nextCenterIds:[]}}function mx({collections:e},t){Kb(M(e).collection(`relationshipEntities`).selectAll(),t)}const hx=(e,t)=>t?e.editor.views[t]:cx(e);function gx(e){e.views.flow=null}const _x=O(U.viewOpen),vx=(e,{payload:{kind:t,centerIds:n}})=>{mx(e,t),e.editor.views[t]=px(t,n)},yx=O(U.viewClose),bx=(e,{payload:{kind:t}})=>{mx(e,t),e.editor.views[t]=null},xx=O(U.viewScrollTo),Sx=(e,{payload:{originX:t,originY:n,kind:r}})=>{let i=hx(e,r);i&&(i.originX=Ke(t,4),i.originY=Ke(n,4))},Cx=O(U.viewStreamScrollTo),wx=(e,{payload:{movementX:t,movementY:n,kind:r}})=>{let i=hx(e,r);i&&(i.originX=Ke(i.originX+t,4),i.originY=Ke(i.originY+n,4))},Tx=O(U.viewChangeZoomLevel),Ex=(e,{payload:{value:t,kind:n}})=>{let r=hx(e,n);r&&(r.zoomLevel=nv(t))},Dx=O(U.viewStreamZoomLevel),Ox=(e,{payload:{value:t,kind:n}})=>{let r=hx(e,n);r&&(r.zoomLevel=nv(r.zoomLevel+t))},kx=O(U.viewMoveTable),Ax=(e,{payload:{ids:t,movementX:n,movementY:r,kind:i}})=>{let a=hx(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))}},jx=O(U.viewSetLayout),Mx=({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}])))},Nx=O(U.viewChangeShowMode),Px=(e,{payload:{value:t,kind:n}})=>{let r=hx(e,n);r&&(r.showMode=t)},Fx=O(U.viewSetCenters),Ix=(e,{payload:{tableIds:t,kind:n}})=>{let r=hx(e,n);r&&!dx(r.centerIds,t)&&(r.previousCenterIds=[...r.previousCenterIds,r.centerIds].slice(-100).map(e=>[...e]),r.nextCenterIds=[],r.centerIds=[...t])},Lx=O(U.viewStepCenters),Rx=(e,{payload:{step:t,kind:n}})=>{let r=hx(e,n);if(!r)return;let[i,a]=t===nb.previous?[r.previousCenterIds,r.nextCenterIds]:[r.nextCenterIds,r.previousCenterIds],o=new Set(e.doc.tableIds);for(let e=i.pop();e;e=i.pop()){let t=fx(o,r,e);if(t){a.push([...r.centerIds]),r.centerIds=t;return}}},zx=O(U.changeVisualizationMode),Bx=({editor:e},{payload:{value:t}})=>{e.visualizationMode=t},Vx={[U.viewOpen]:vx,[U.viewClose]:bx,[U.viewScrollTo]:Sx,[U.viewStreamScrollTo]:wx,[U.viewChangeZoomLevel]:Ex,[U.viewStreamZoomLevel]:Ox,[U.viewMoveTable]:Ax,[U.viewSetLayout]:Mx,[U.viewChangeShowMode]:Px,[U.viewSetCenters]:Ix,[U.viewStepCenters]:Rx,[U.changeVisualizationMode]:Bx},Hx={viewOpenAction:_x,viewCloseAction:yx,viewScrollToAction:xx,viewStreamScrollToAction:Cx,viewChangeZoomLevelAction:Tx,viewStreamZoomLevelAction:Dx,viewMoveTableAction:kx,viewSetLayoutAction:jx,viewChangeShowModeAction:Nx,viewSetCentersAction:Fx,viewStepCentersAction:Lx,changeVisualizationModeAction:zx},Ux={shared:1,changeOnly:2,following:4,drag:8,dictionarySheet:16};function Wx(e,t){return{...ie(t),tags:de(t.tags)&&Number.isInteger(t.tags)?t.tags|e:e}}Ux.changeOnly,Ux.dictionarySheet;const Gx=(e,t)=>e.some(({tags:e})=>de(e)&&Number.isInteger(e)&&(e&t)!==0),Kx=({settings:e})=>!G(e.show,N.hideMemo),qx=Object.freeze({tableIds:[],memoIds:[],relationshipIds:[],tableGroupIds:[]});function Jx(e,t,n=`document`){let{x:r,y:i}=ux(e,n)?.positions[t.id]??t.ui;return{x:r,y:i}}const Yx=e=>G(e,R.primaryKey)||G(e,R.foreignKey);function Xx(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 Zx(e,t){let n=/* @__PURE__ */ new Set;return Xx(e,(e,r)=>{e===t.id&&r.forEach(e=>n.add(e))}),n}function Qx(e,t,n=`document`){let r=ux(e,n);if(!r||r.showMode===$y.allFields)return t.columnIds;if(r.showMode===$y.nameOnly)return[];let i=Zx(e,t);return M(e.collections).collection(`tableColumnEntities`).selectByIds(t.columnIds).filter(e=>Yx(e.ui.keys)||i.has(e.id)).map(e=>e.id)}function $x(e,t=`document`){let{doc:n,collections:r}=e;if(t===`document`)return{tableIds:n.tableIds,memoIds:Kx(e)?n.memoIds:[],relationshipIds:n.relationshipIds,tableGroupIds:n.tableGroupIds};let i=ux(e,t);if(!i)return qx;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:[],tableGroupIds:[],relationshipIds:a.filter(({start:e,end:t})=>c.has(e.tableId)&&c.has(t.tableId)).map(e=>e.id)}}const eS=ko({tableId:{}}),tS=/* @__PURE__ */ new Map;function nS(e){tS.delete(e),Reflect.deleteProperty(eS.tableId,e)}function rS(e,t,n=`document`){let r=ux(e,n),{id:i}=e.editor;if(t===null||!r){tS.get(i)?.kind===n&&nS(i);return}tS.set(i,r),eS.tableId[i]=t}function iS(e,t,n=`document`){let{id:r}=e.editor;eS.tableId[r]===t&&tS.get(r)?.kind===n&&nS(r)}const aS=ko({tableId:{}}),oS=/* @__PURE__ */ new Map;function sS(e){oS.delete(e),Reflect.deleteProperty(aS.tableId,e)}function cS(e,t,n=`document`){let r=ux(e,n);if(!r)return;let{id:i}=e.editor;if((oS.get(i)===r?aS.tableId[i]:void 0)===t){sS(i);return}oS.set(i,r),aS.tableId[i]=t}function lS(e){return 9+e.ui.width+8+1}function uS(e){return 25+e.ui.height+8+1}Object.values({create:`create`,ifNotExists:`ifNotExists`,recreate:`recreate`});const dS={none:`none`,use:`use`,createAndUse:`createAndUse`};Object.values(dS),dS.use,dS.createAndUse,F.MySQL,F.MariaDB,F.PostgreSQL,dS.createAndUse,F.Oracle,dS.use,F.MSSQL,F.SQLite,F.Snowflake,F.Databricks;function fS(e){return e.filter(({options:e})=>G(e,L.primaryKey))}F.MariaDB,F.MSSQL,F.MySQL,F.Oracle,F.PostgreSQL,F.SQLite;function pS(e,t,n,r=1){return mS(e,t,n,r,e=>e)}function mS(e,t,n,r,i){let a=i(n);return n!==``&&e.some(e=>e.id!==t&&i(e.name)===a)?mS(e,t,n.replace(/[0-9]/g,``)+r,r+1,i):n}const hS=[a_.noAction,a_.cascade,a_.setNull,a_.setDefault,a_.restrict];function gS(...e){let t=hS.filter(t=>!e.includes(t));return{onDelete:t,onUpdate:t}}F.Databricks,a_.noAction,a_.noAction,F.MariaDB,gS(a_.setDefault),F.MSSQL,gS(a_.restrict),F.MySQL,gS(a_.setDefault),F.Oracle,a_.cascade,a_.setNull,F.PostgreSQL,F.SQLite,F.Snowflake,a_.noAction,a_.noAction;const _S=String.raw`[+-]?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?`,vS=`(?:current_timestamp|now|localtime|localtimestamp)`;RegExp(`^(?:`+[_S,String.raw`0x[\da-f]+`,String.raw`0b[01]+`,String.raw`(?:_\w+\s*|n)?'(?:[^'\\]|''|\\.)*'`,String.raw`(?:_\w+\s*|n)?"(?:[^"\\]|""|\\.)*"`,String.raw`x'[\da-f]*'`,String.raw`b'[01]*'`,String.raw`(?:date|time|timestamp)\s*'[^']*'`,`null|true|false`,String.raw`${vS}(?:\s*\(\s*\d*\s*\))?`].join(`|`)+String.raw`)(\s+on\s+update\s.*)?$`,`is`),new RegExp(String.raw`^${vS}\b`,`i`),RegExp(`^(?:`+[_S,String.raw`[+-]?0x[\da-f]+`,`'(?:[^']|'')*'`,String.raw`x'[\da-f]*'`,String.raw`[a-z_][\w$]*`,`"(?:[^"]|"")*"`,"`(?:[^`]|``)*`",String.raw`\[[^\]]*\]`].join(`|`)+`)$`,`i`),F.MariaDB,F.MySQL,F.PostgreSQL,F.SQLite;let yS=0;function bS(){yS++}const xS=/* @__PURE__ */ new WeakMap;function SS({doc:e,collections:t},n){let{indexIds:r}=e,i=t.indexEntities;if(!r.length)return[];let a=xS.get(r);if(a?.generation===yS&&a.entities===i)return a.byTable.get(n)??[];let o=/* @__PURE__ */ new Map;for(let e of M(t).collection(`indexEntities`).selectByIds(r)){let t=o.get(e.tableId);t?t.push(e.id):o.set(e.tableId,[e.id])}return xS.set(r,{generation:yS,entities:i,byTable:o}),o.get(n)??[]}function CS(e,t){let n=new Set(t.columnIds),r=M(e.collections).collection(`indexColumnEntities`);return M(e.collections).collection(`indexEntities`).selectByIds(SS(e,t.id)).filter(e=>e.unique).map(e=>({indexId:e.id,columnIds:r.selectByIds(e.indexColumnIds).map(e=>e.columnId).filter(e=>n.has(e))}))}function wS(e,t){let n=new Map(t.columnIds.map((e,t)=>[e,t]));return CS(e,t).filter(e=>e.columnIds.length>1).sort((e,t)=>TS(e,t,n))}function TS(e,t,n){let r=Math.min(e.columnIds.length,t.columnIds.length);for(let i=0;i<r;i++){let r=n.get(e.columnIds[i])-n.get(t.columnIds[i]);if(r)return r}return e.columnIds.length===t.columnIds.length?e.indexId<t.indexId?-1:1:e.columnIds.length-t.columnIds.length}function ES(e,t){let n={};return wS(e,t).forEach((e,t)=>{e.columnIds.forEach((e,r)=>{(n[e]??=[]).push(`AK${t+1}.${r+1}`)})}),Object.fromEntries(Object.entries(n).map(([e,t])=>[e,t.join(`,`)]))}let DS=0;const OS=ko({generation:0});function kS(){return DS}function AS(){return OS.generation}function jS(){DS++,OS.generation=DS}function MS(e,t){return G(t.settings.show,N.columnAlternateKey)?Object.values(ES(t,e)).reduce((e,t)=>Math.max(e,Math.ceil(t.length*7.32)),0):0}function NS(e,t,n){let{settings:r}=e;switch(n){case W.tableComment:return r.maxWidthComment===-1||r.maxWidthComment>=t.ui.widthComment?t.ui.widthComment:r.maxWidthComment;case W.tableLogicalName:return cb(r,t)?t.ui.widthName:t.ui.widthLogicalName;default:return t.ui.widthName}}function PS(e,t){let{settings:n,collections:r}=t,i=db(n).reduce((n,r)=>n+NS(t,e,r)+8,20);i+=28;let a=MS(e,t),o=IS(n)+(a?a+8:0);i<o&&(i=o);let s=RS(M(r).collection(`tableColumnEntities`).selectByIds(e.columnIds),t,a);return i<s.width&&(i=s.width),{...s,width:9+i+8+1}}const FS=[{key:N.columnComment,width:60},{key:N.columnDataType,width:60},{key:N.columnDomain,width:60},{key:N.columnDefault,width:60},{key:N.columnNotNull,width:35},{key:N.columnAutoIncrement,width:15},{key:N.columnUnique,width:22}];function IS(e){let t=FS.reduce((t,{key:n,width:r})=>G(e.show,n)?t+r+8:t,100);return sb(e)?t+60+8:t}function LS(){return{width:0,alternateKey:0,name:0,logicalName:0,comment:0,dataType:0,domain:0,default:0,notNull:0,autoIncrement:0,unique:0}}function RS(e,t,n){let{settings:r}=t,{show:i,maxWidthComment:a}=r,o=ob(r),s=sb(r),c=LS();c.alternateKey=n;for(let n of e){let e=o&&!cb(r,n)?n.ui.widthLogicalName:n.ui.widthName;if(c.name<e&&(c.name=e),s&&c.logicalName<n.ui.widthLogicalName&&(c.logicalName=n.ui.widthLogicalName),G(i,N.columnComment)&&c.comment<n.ui.widthComment&&(c.comment=a===-1?n.ui.widthComment:a<n.ui.widthComment?a:n.ui.widthComment),G(i,N.columnDataType)){let e=ub(t,n)?n.ui.widthDomain:n.ui.widthDataType;c.dataType<e&&(c.dataType=e)}G(i,N.columnDomain)&&c.domain<n.ui.widthDomain&&(c.domain=n.ui.widthDomain),G(i,N.columnDefault)&&c.default<n.ui.widthDefault&&(c.default=n.ui.widthDefault)}return G(i,N.columnNotNull)&&(c.notNull=35),G(i,N.columnAutoIncrement)&&(c.autoIncrement=15),G(i,N.columnUnique)&&(c.unique=22),c.width=Object.entries(c).reduce((e,[t,n])=>t===`width`||n===0?e:e+n+8,32),c}function zS(e,t,n){let{settings:r}=t,i=ob(r),a=sb(r),o=LS(),s=M(t.collections).collection(`tableColumnEntities`).selectByIds(n);for(let e of s)o.name=Math.max(o.name,i&&!cb(r,e)?e.ui.widthLogicalName:e.ui.widthName),o.dataType=Math.max(o.dataType,ub(t,e,`flow`)?e.ui.widthDomain:e.ui.widthDataType),a&&(o.logicalName=Math.max(o.logicalName,e.ui.widthLogicalName),o.domain=Math.max(o.domain,e.ui.widthDomain));let c=a?[o.logicalName,o.name,o.domain,o.dataType]:[o.name,o.dataType],l=s.length?c.reduce((e,t)=>e+8+t,14):0,u=Math.max(VS(e,t),l,154);return s.length&&(o.name+=u-l),o.width=18+u,o}function BS(e){return Math.ceil(e*1.1666666666666667*1.04)}function VS(e,t){return db(ab(t.settings,`flow`)).reduce((n,r)=>n+BS(NS(t,e,r))+8,20)+28}function HS(e=`document`){return e===`document`?20:24}function US(e=`document`){return e===`document`?24:32}function WS(e,t=e.columnIds.length,n=`document`){return 9+HS(n)+t*US(n)+1}const GS=(e,t)=>({widthName:V(t(e.name)),widthLogicalName:V(t(e.logicalName)),widthComment:V(t(e.comment))}),KS=(e,t,n)=>({widthName:V(n(t.name)),widthLogicalName:V(n(t.logicalName)),widthDataType:V(n(t.dataType)),widthDomain:V(n(F_(e,t.domainId))),widthDefault:V(n(t.default)),widthComment:V(n(t.comment))});function qS(e,{toWidth:t}){let{doc:{tableIds:n},collections:r}=e;jS();let i=M(r).collection(`tableEntities`).selectByIds(n),a=M(r).collection(`tableColumnEntities`);for(let n of i){Object.assign(n.ui,GS(n,t));let r=a.selectByIds(n.columnIds);for(let n of r)Object.assign(n.ui,KS(e,n,t))}}function JS(e,t,n){let r=M(t.collections).collection(`tableColumnEntities`).selectByIds(e.columnIds).map(e=>({...e,ui:{...e.ui,...KS(t,e,n)}})),i={...e,ui:{...e.ui,...GS(e,n)}};return{width:PS(i,{...t,collections:{...t.collections,tableColumnEntities:Object.fromEntries(r.map(e=>[e.id,e]))}}).width,height:WS(i)}}const YS={document:/* @__PURE__ */ new WeakMap,flow:/* @__PURE__ */ new WeakMap};function XS(e,t,n){let r=YS[n],i=n===`document`?ZS(e,t):QS(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 ZS(e,t){let{settings:n}=e,r=n.show&~(N.hideReferentialAction|N.hideTableGroup|N.hideMemo),i=`${kS()}|${r}|${n.maxWidthComment}|${n.nameViewMode}|${t.ui.widthName}|${t.ui.widthLogicalName}|${t.ui.widthComment}|${t.columnIds.length}`;return{key:i,measure:()=>({key:i,width:PS(t,e).width,height:WS(t)})}}function QS(e,t,n){let{nameViewMode:r}=e.settings,i=ux(e,n)?.showMode??$y.allFields,a=Qx(e,t,n),o=`${kS()}|${r}|${t.ui.widthName}|${t.ui.widthLogicalName}|${t.columnIds.length}|${i}|${a.length}`;return{key:o,measure:()=>({key:o,width:zS(t,e,a).width,height:WS(t,a.length,n)})}}function $S(e,t,n=`document`){let{width:r,height:i}=XS(e,t,n),{x:a,y:o}=Jx(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 eC(e,t){return Math.sqrt((e.x-t.x)**2+(e.y-t.y)**2)}function tC(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 nC(e,t,n=`document`){let{width:r,height:i}=$S(e,t,n),{x:a,y:o}=Jx(e,t,n);return{x:a,y:o,width:r,height:i}}function rC(e,t,n=`document`){return n===`document`?PS(t,e):zS(t,e,Qx(e,t,n))}function iC(e,t,n,r=`document`){let{x:i,y:a,width:o}=nC(e,t,r),s=US(r);return{x:i+9,y:a+9+HS(r)+n*s,width:o-18,height:s}}function aC(e,t,n=`document`){let{x:r,y:i,width:a}=nC(e,t,n);return{x:r,y:i,width:a,height:9+HS(n)}}function oC(e){let{x:t,y:n}=e.ui;return{x:t,y:n,width:lS(e),height:uS(e)}}const sC={red:`#ef4444`,orange:`#f97316`,amber:`#f59e0b`,yellow:`#eab308`,lime:`#84cc16`,green:`#22c55e`,emerald:`#10b981`,teal:`#14b8a6`,cyan:`#06b6d4`,sky:`#0ea5e9`,blue:`#3b82f6`,indigo:`#6366f1`,violet:`#8b5cf6`,purple:`#a855f7`,fuchsia:`#d946ef`,pink:`#ec4899`,rose:`#f43f5e`,gray:`#6b7280`},cC=/^#(?:[0-9a-f]{3}|[0-9a-f]{6})$/i,lC=/^#(?:[0-9a-f]{3}|[0-9a-f]{6}|[0-9a-f]{8})$/i,uC=/^#(?:[0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/i,dC=/^(rgba?|hsla?)\(([^()]*)\)$/i,fC=/\s*[,/]\s*|\s+/,pC=/^[+-]?(?:\d+\.?\d*|\.\d+)(?:e[+-]?\d+)?$/i,mC=/deg$/i,hC=/%$/,gC=new Map(Object.entries(sC));function _C(e){return cC.test(e)?e:``}function vC(e){return gC.get(e.toLowerCase())??(lC.test(e)?e:``)}function yC(e){let t=bC(e.trim());return t?DC(t):null}function bC(e){if(uC.test(e))return xC(e.slice(1));let t=dC.exec(e);if(!t)return null;let n=t[2].trim().split(fC);return n.length<3?null:t[1].toLowerCase().startsWith(`rgb`)?SC(n):CC(n)}function xC(e){let t=e.length<=4?[...e].map(e=>`${e}${e}`).join(``):e;return[0,2,4].map(e=>parseInt(t.slice(e,e+2),16))}function SC(e){let t=[];for(let n of e.slice(0,3)){let e=n.endsWith(`%`),r=TC(e?n.slice(0,-1):n);if(r===null)return null;t.push(EC(e?r*2.55:r))}return t}function CC(e){let t=TC(e[0].replace(mC,``)),n=TC(e[1].replace(hC,``)),r=TC(e[2].replace(hC,``));if(t===null||n===null||r===null||!Number.isFinite(t))return null;let i=(t%360+360)%360,a=Math.min(Math.max(n,0),100)/100,o=Math.min(Math.max(r,0),100)/100,s=a*Math.min(o,1-o),c=e=>{let t=(e+i/30)%12;return o-s*Math.max(-1,Math.min(t-3,9-t,1))};return[c(0),c(8),c(4)].map(e=>EC(e*255))}function wC(e){let t=e/255;return t<=.04045?t/12.92:((t+.055)/1.055)**2.4}function TC(e){return pC.test(e)?Number(e):null}function EC(e){return Math.round(Math.min(Math.max(e,0),255))}function DC(e){return`#${e.map(e=>e.toString(16).padStart(2,`0`)).join(``)}`}function OC(e){let t=yC(e);if(!t)return null;let[n,r,i]=[1,3,5].map(e=>wC(parseInt(t.slice(e,e+2),16)));return .2126*n+.7152*r+.0722*i}function kC(e,t){return(Math.max(e,t)+.05)/(Math.min(e,t)+.05)}function AC(e){let t=OC(e);if(t===null)return null;let n=kC(t,1);return kC(t,0)-n>4?`#000000`:`#ffffff`}function jC({doc:e},t){return t.groupId&&e.tableGroupIds.includes(t.groupId)?t.groupId:``}function MC(e,t){let{doc:n,collections:r}=e;return!t||!n.tableGroupIds.includes(t)?[]:M(r).collection(`tableEntities`).selectByIds(n.tableIds).filter(e=>e.groupId===t)}function NC(e,t){return MC(e,t).map(({id:e})=>e)}function PC(e,t=24){let n=t+28;return{x:e.x-t,y:e.y-n,width:e.width+t*2,height:e.height+t+n}}function FC(e,t,{excludeTableIds:n=[],members:r=MC(e,t.id)}={}){let{x:i,y:a,width:o,height:s}=t.ui,c=new Set(n);return r.filter(e=>!c.has(e.id)).reduce((t,n)=>tC(t,PC(nC(e,n))),{x:i,y:a,width:o,height:s})}function IC(e){return new Map(e.map(({id:e,ui:{x:t,y:n,width:r,height:i}})=>[e,{x:t,y:n,width:r,height:i}]))}function LC(e,t,n){let r=t.groupId?e.get(t.groupId):void 0;r&&e.set(t.groupId,tC(r,PC(n)))}function RC(e,{excludeTableIds:t=[]}={}){let{doc:n,collections:r}=e,i=IC(M(r).collection(`tableGroupEntities`).selectByIds(n.tableGroupIds));if(!i.size)return i;let a=new Set(t);return M(r).collection(`tableEntities`).selectByIds(n.tableIds).forEach(t=>{a.has(t.id)||LC(i,t,nC(e,t))}),i}function zC(e){let{doc:t,collections:n}=e,r=new Set(t.tableGroupIds),i=/* @__PURE__ */ new Map;return r.size&&M(n).collection(`tableEntities`).selectByIds(t.tableIds).forEach(e=>{if(!r.has(e.groupId))return;let t=i.get(e.groupId);t?t.push(e):i.set(e.groupId,[e])}),i}function BC(e,t){let{doc:n,collections:r}=e,i=M(r).collection(`tableEntities`).selectByIds(t.filter(B(n.tableIds))).map(t=>nC(e,t));return i.length?PC(i.reduce(tC)):null}function VC(e,t){let{x:n,y:r,width:i,height:a}=nC(e,t);return{x:n+i/2,y:r+a/2}}function HC({x:e,y:t},n){return n.x<=e&&e<=n.x+n.width&&n.y<=t&&t<=n.y+n.height}function UC(e,t,{boxes:n,...r}={}){if(!t.length)return[];let{doc:i,collections:a}=e,o=n??RC(e,r),s=M(a).collection(`tableGroupEntities`).selectByIds(i.tableGroupIds).flatMap(e=>{let t=o.get(e.id);return t?[{group:e,rect:t}]:[]});return t.map(e=>s.reduce((t,{group:n,rect:r})=>(!t||t.ui.zIndex<=n.ui.zIndex)&&HC(e,r)?n:t,null))}const WC=e=>Math.max(0,...e.map(({ui:e})=>e.zIndex))+1,GC=({settings:e})=>!G(e.show,N.hideTableGroup);function KC(e){let t=yC(e.color),n=t&&AC(t);return t&&n?{background:t,foreground:n}:null}function qC(e,t,n=`document`){return n!==`document`||!GC(e)?null:JC(e,jC(e,t),n)}function JC(e,t,n=`document`){if(!t||n!==`document`||!GC(e))return null;let r=e.collections.tableGroupEntities[t];return r?KC(r):null}function YC(e){return QC(e,[])}function XC(e,t=`document`){return QC(e,[],t)}function ZC(e,t=[],n=`document`,r=[]){let{collections:i,doc:a}=e,{tableIds:o,memoIds:s,tableGroupIds:c}=n===`document`?a:$x(e,n),l=Kx(e)?s:[],u=new Map(t.map(e=>[e.id,e])),d=c.length&&GC(e)?M(i).collection(`tableGroupEntities`).selectByIds(c):[],f=IC(d),p=new Map(r.map(({id:e,...t})=>[e,t])),m=M(i).collection(`tableEntities`).selectByIds(o),h=M(i).collection(`memoEntities`).selectByIds(l);return[...m.map(t=>{let r=nC(e,t,n),i=u.get(t.id);return i?{...r,x:i.x,y:i.y}:(LC(f,t,r),r)}),...h.map(oC),...d.map(e=>p.get(e.id)??f.get(e.id))]}function QC(e,t,n=`document`,r=[]){let i=ZC(e,t,n,r);return i.length?i.reduce(tC):null}function $C(e){return cx(e)??e.settings}function ew(e,t=`document`){return ux(e,t)??e.settings}function tw(e,t){return t?ew(e,t):$C(e)}function nw({originX:e,originY:t}){return{x:e,y:t}}const rw=e=>e>0?e:1;function iw(e,t){let n=nw(e);return{x:n.x+t.x*e.zoomLevel,y:n.y+t.y*e.zoomLevel}}function aw(e,t){let n=rw(e.zoomLevel),r=nw({...e,zoomLevel:n});return{x:(t.x-r.x)/n,y:(t.y-r.y)/n}}function ow(e,t,n){return{x:n.x-t.x*e,y:n.y-t.y*e}}function sw(e){let{viewportWidth:t,viewportHeight:n}=e,r=rw(e.zoomLevel),i=nw({...e,zoomLevel:r}),a=(t>0?t:L_)/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 cw(e,t=`document`){let{originX:n,originY:r,zoomLevel:i}=ew(e,t),{viewport:a}=e.editor;return sw({originX:n,originY:r,zoomLevel:i,viewportWidth:a.width,viewportHeight:a.height})}function lw(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 uw(e,t,n,r=`document`){return lw(e,nC(t,n,r))}function dw(e,t,n,r=`document`){return lw(e,ox(t,n,r))}const fw=ko({frozen:{}}),pw=(e,t)=>`${e.editor.id}:${t}`,mw=(e,t)=>fw.frozen[pw(e,t)]??null;function hw(e,t=`document`){let{originX:n,originY:r}=ew(e,t);fw.frozen[pw(e,t)]={content:XC(e,t),origin:{x:n,y:r}}}function gw(e,t=`document`){Reflect.deleteProperty(fw.frozen,pw(e,t))}function _w(e,t=`document`){let n=mw(e,t);return n?n.content:XC(e,t)}const q={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`,changeColumnOrder:`settings.changeColumnOrder`,changeMaxWidthComment:`settings.changeMaxWidthComment`,changeLockSettings:`settings.changeLockSettings`,changeIgnoreSaveSettings:`settings.changeIgnoreSaveSettings`,changeDDLScript:`settings.changeDDLScript`,changeNameViewMode:`settings.changeNameViewMode`},vw=e=>e+0;function yw(e,t,n,r){let i=-t*r,a=n-e*r;return{min:vw(Math.min(i,a)),max:vw(Math.max(i,a))}}function bw(e,t,n,r,i){let{min:a,max:o}=yw(t,n,r,i);if(a<e&&e<o)return e;let s=Math.min(r,(n-t)*i);return vw(Math.min(Math.max(e,a+s),o-s))}const xw=O(q.changeDatabaseName),Sw=({settings:e,lww:t},{payload:{value:n},version:r},{clock:i})=>{Hg(t,r??i.getVersion(),`settings.databaseName`,`settings`,`databaseName`,()=>{e.databaseName=n})},Cw=O(q.changeZoomLevel),ww=({settings:e},{payload:{value:t},tags:n})=>{(S(n)||!G(n,Ux.following))&&(e.zoomLevel=nv(t))},Tw=O(q.streamZoomLevel),Ew=({settings:e},{payload:{value:t},tags:n})=>{(S(n)||!G(n,Ux.following))&&(e.zoomLevel=nv(e.zoomLevel+t))},Dw=({width:e,height:t})=>e>0&&t>0;function Ow(e){let{settings:{originX:t,originY:n,zoomLevel:r},editor:{viewport:i}}=e,a=_w(e);return!a||!Dw(i)?{x:t,y:n}:{x:bw(t,a.x,a.x+a.width,i.width,r),y:bw(n,a.y,a.y+a.height,i.height,r)}}const kw=O(q.scrollTo),Aw=({settings:e},{payload:{originX:t,originY:n},tags:r})=>{(S(r)||!G(r,Ux.following))&&(e.originX=Ke(t,4),e.originY=Ke(n,4))},jw=O(q.streamScrollTo),Mw=({settings:e},{payload:{movementX:t,movementY:n},tags:r})=>{(S(r)||!G(r,Ux.following))&&(e.originX=Ke(e.originX+t,4),e.originY=Ke(e.originY+n,4))},Nw=O(q.changeShow),Pw=(e,{payload:{show:t,value:n}})=>{let{settings:r}=e;r.show=n?r.show|t:r.show&~t,n&&G(t,N.hideTableGroup)&&Cb(e),n&&G(t,N.hideMemo)&&wb(e),G(t,N.columnDomain)&&xb(e)},Fw=O(q.changeDatabase),Iw=({settings:e},{payload:{value:t}})=>{rv(t)&&(e.database=t)};function Lw({settings:e,editor:t}){e.canvasType!==Yg.settings&&(t.lastCanvasType=e.canvasType)}const Rw=O(q.changeCanvasType),zw=(e,{payload:{value:t},tags:n})=>{(S(n)||!G(n,Ux.following))&&(Lw(e),e.settings.canvasType=t,t!==Yg.ERD&&(e.editor.drawTableGroup=!1))};function Bw({settings:e,lww:t},n,r,i){Hg(t,n,`settings.code`,`settings`,r,()=>{e[r]=i})}const Vw=O(q.changeLanguage),Hw=(e,{payload:{value:t},version:n},{clock:r})=>{let i=n??r.getVersion();ov(t)&&Bw(e,i,`language`,t)},Uw=O(q.changeTableNameCase),Ww=(e,{payload:{value:t},version:n},{clock:r})=>{let i=n??r.getVersion();iv(t)&&Bw(e,i,`tableNameCase`,t)},Gw=O(q.changeColumnNameCase),Kw=(e,{payload:{value:t},version:n},{clock:r})=>{let i=n??r.getVersion();iv(t)&&Bw(e,i,`columnNameCase`,t)},qw=O(q.changeBracketType),Jw=(e,{payload:{value:t},version:n},{clock:r})=>{let i=n??r.getVersion();av(t)&&Bw(e,i,`bracketType`,t)},Yw=O(q.changeRelationshipDataTypeSync),Xw=({settings:e},{payload:{value:t}})=>{e.relationshipDataTypeSync=t},Zw=O(q.changeColumnOrder),Qw=({settings:e},{payload:{value:t,target:n}})=>{if(t===n||!sv(t)||!sv(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))},$w=O(q.changeMaxWidthComment),eT=({settings:e},{payload:{value:t}})=>{e.maxWidthComment=t===-1?t:ev(t)},tT=O(q.changeLockSettings),nT={originX:Number.isFinite,originY:Number.isFinite,zoomLevel:e=>de(e)&&$_(e)===e,canvasType:e=>cv(e)&&e!==Yg.settings,language:ov,tableNameCase:iv,columnNameCase:iv,bracketType:av,nameViewMode:lv},rT=s_.language|s_.tableNameCase|s_.columnNameCase|s_.bracketType|s_.unlockNameViewMode,iT=(e,{payload:{lockSettingType:t,value:n,values:r},version:i},{clock:a})=>{let{settings:o,lww:s}=e,c=i??a.getVersion();c_.forEach(i=>{if(!G(t,i))return;let a=l_[i],l=_e(r,a),u=a.filter(e=>nT[e](l[e]));n&&u.length<a.length||(Hg(s,c,`settings.lockSettings`,`settings`,String(i),()=>{n&&Object.assign(o.lockedValues,l),o.lockSettings=hm(o.lockSettings,i,n)}),!n&&G(rT,i)&&u.forEach(t=>t===`nameViewMode`?uT(e,c,l.nameViewMode):Bw(e,c,t,l[t])))})},aT=O(q.changeIgnoreSaveSettings),oT=()=>{},sT=O(q.changeDDLScript),cT=({settings:e,lww:t},{payload:{position:n,value:r},version:i},{clock:a})=>{g_.includes(n)&&w(r)&&Hg(t,i??a.getVersion(),`settings.ddlScripts`,`settings`,n,()=>{e.ddlScripts={...e.ddlScripts,[n]:r}})};function lT(e,t){e.settings.nameViewMode=t,xb(e)}function uT(e,t,n){Hg(e.lww,t,`settings.nameViewMode`,`settings`,`nameViewMode`,()=>lT(e,n))}const dT=O(q.changeNameViewMode),fT=(e,{payload:{value:t,shared:n,editorId:r},version:i},{clock:a})=>{lv(t)&&(n===!0?uT(e,i??a.getVersion(),t):r===e.editor.id&&lT(e,t))},pT=(e,t,n)=>dT({value:t,shared:!n&&!mm(e.settings.lockSettings,s_.unlockNameViewMode),editorId:e.editor.id}),mT=c_.reduce((e,t)=>e|t,0);function hT({settings:e,lww:t},n,r){let{lockSettings:i,lockedValues:a,...o}=e;Object.assign(e,n,{lockSettings:i&mT|n.lockSettings&~mT,lockedValues:{...a}}),c_.forEach(i=>{let a=l_[i];Hg(t,r,`settings.lockSettings`,`settings`,String(i),()=>{e.lockSettings=G(n.lockSettings,i)?e.lockSettings|i:e.lockSettings&~i,Object.assign(e.lockedValues,_e(n.lockedValues,a))}),i!==s_.viewport&&mm(e.lockSettings,i)&&Object.assign(e,_e(o,a))})}const gT={[q.changeDatabaseName]:Sw,[q.changeZoomLevel]:ww,[q.streamZoomLevel]:Ew,[q.scrollTo]:Aw,[q.streamScrollTo]:Mw,[q.changeShow]:Pw,[q.changeDatabase]:Iw,[q.changeCanvasType]:zw,[q.changeLanguage]:Hw,[q.changeTableNameCase]:Ww,[q.changeColumnNameCase]:Kw,[q.changeBracketType]:Jw,[q.changeRelationshipDataTypeSync]:Xw,[q.changeColumnOrder]:Qw,[q.changeMaxWidthComment]:eT,[q.changeLockSettings]:iT,[q.changeIgnoreSaveSettings]:oT,[q.changeDDLScript]:cT,[q.changeNameViewMode]:fT},_T={changeDatabaseNameAction:xw,changeZoomLevelAction:Cw,streamZoomLevelAction:Tw,scrollToAction:kw,streamScrollToAction:jw,changeShowAction:Nw,changeDatabaseAction:Fw,changeCanvasTypeAction:Rw,changeLanguageAction:Vw,changeTableNameCaseAction:Uw,changeColumnNameCaseAction:Gw,changeBracketTypeAction:qw,changeRelationshipDataTypeSyncAction:Yw,changeColumnOrderAction:Zw,changeMaxWidthCommentAction:$w,changeLockSettingsAction:tT,changeIgnoreSaveSettingsAction:aT,changeDDLScriptAction:sT,changeNameViewModeAction:dT};function vT(e,t,{end:n}){if(!t(n.tableId))return[];let r=M(e).collection(`tableEntities`).selectById(n.tableId);if(!r)return[];let i=B(r.columnIds);return M(e).collection(`tableColumnEntities`).selectByIds(n.columnIds).filter(e=>i(e.id))}function*yT({doc:e,collections:t}){let n=B(e.tableIds),r=B(e.relationshipIds),i=M(t).collection(`relationshipEntities`).selectAll();for(let e of i)yield[e,r(e.id)?vT(t,n,e):[]]}function bT(e){for(let[t,n]of yT(e)){let e=n.length!==0&&n.every(e=>G(e.options,L.primaryKey));e!==t.identification&&(t.identification=e)}}function xT(e){for(let[t,n]of yT(e)){let e=n.every(e=>G(e.options,L.notNull))?i_.dash:i_.ring;e!==t.startRelationshipType&&(t.startRelationshipType=e)}}function ST({collections:e}){for(let t of M(e).collection(`tableColumnEntities`).selectAll()){let e=G(t.options,L.primaryKey);e!==G(t.ui.keys,R.primaryKey)&&(t.ui.keys=e?t.ui.keys|R.primaryKey:t.ui.keys&~R.primaryKey)}}function CT({doc:e,collections:t}){let n=/* @__PURE__ */ new Map,r=M(t).collection(`relationshipEntities`).selectByIds(e.relationshipIds);for(let{end:e}of r){let t=n.get(e.tableId)??/* @__PURE__ */ new Set;e.columnIds.forEach(e=>t.add(e)),n.set(e.tableId,t)}let i=/* @__PURE__ */ new Map;for(let n of M(t).collection(`tableEntities`).selectByIds(e.tableIds))n.columnIds.forEach(e=>i.set(e,n.id));for(let e of M(t).collection(`tableColumnEntities`).selectAll()){let t=i.get(e.id),r=t!==void 0&&(n.get(t)?.has(e.id)??!1);r!==G(e.ui.keys,R.foreignKey)&&(e.ui.keys=r?e.ui.keys|R.foreignKey:e.ui.keys&~R.foreignKey)}}const wT=/* @__PURE__ */ new WeakMap,TT=()=>({boxes:/* @__PURE__ */ new Map,entries:/* @__PURE__ */ new Map});function ET(e,t=`document`){let n=wT.get(e);return n||(n={document:TT(),flow:TT()},wT.set(e,n)),n[t]}function DT(e,t){return{left:e.left[t],top:e.top[t],right:e.right[t],bottom:e.bottom[t]}}function OT(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 kT(e,t){return e.left===t.left&&e.top===t.top&&e.right===t.right&&e.bottom===t.bottom}function AT(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 jT(e,t){return e.left<=t.right&&e.right>=t.left&&e.top<=t.bottom&&e.bottom>=t.top}function MT(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(jT(n,e))return!0;return!1}function NT(){let e=/* @__PURE__ */ new Map,t=/* @__PURE__ */ 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 PT(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 FT(e,t){let n=e.boxes,r=/* @__PURE__ */ new Map,i=[],a=!1;for(let e=0;e<t.ids.length;e++){let o=t.ids[e],s=DT(t,e);if(r.set(o,s),a)continue;let c=n.get(o);c?kT(c,s)||i.push(OT(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 IT(e){return 24+e%4*8}function LT(e,t){return e.tableId===t.tableId?null:e.direction===I.right&&t.direction===I.left?t.x-e.x:e.direction===I.left&&t.direction===I.right?e.x-t.x:e.direction===I.bottom&&t.direction===I.top?t.y-e.y:e.direction===I.top&&t.direction===I.bottom?e.y-t.y:null}function RT(e,t){return t===null||t<=0?e:Math.max(24,Math.min(e,t/2-1))}function zT(e){return e===I.left||e===I.right}function BT(e){return e===I.right||e===I.bottom?1:-1}function VT(e,t,n){let r=BT(t);return zT(t)?{x:e.x+r*n,y:e.y}:{x:e.x,y:e.y+r*n}}function HT({start:e,end:t},[n,r]){let i=LT(e,t),a=RT(IT(n),i),o=RT(IT(r),i);return{m:VT(e,e.direction,a),l:VT(t,t.direction,o),startStub:a,endStub:o}}function UT(e,t=`document`){let{tableIds:n}=$x(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=$S(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 WT(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 GT(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)&&WT(n.x,n.y,r.x,r.y,u,f,d,p)){i++;break}}}return i}function KT(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 qT(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 JT(e,t,n,r,i){let a=zT(t),o=zT(r),s=BT(t),c=BT(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=qT(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=qT(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=qT(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=qT(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=qT(e.x,n.x,i,!0,l,u).filter(t=>(t-e.x)*s>=0).slice(0,4),r=qT(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=qT(e.y,n.y,i,!1,l,u).filter(t=>(t-e.y)*s>=0).slice(0,4),r=qT(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 YT(e,t,n,r,i,a,o){let s=JT(e,t,n,r,i),c=null,l=1/0;for(let e of s){let t=GT(e.points,i,a,o)*1e5+e.bends*36+KT(e.points);t<l&&(l=t,c=e.points)}return c||(zT(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 XT=[10,7,4],ZT=XT[XT.length-1]-.5;function QT(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 $T(e,t){return e.relationshipId===t.relationshipId?e.index-t.index:e.relationshipId<t.relationshipId?-1:1}function eE(e){let t=e.points[e.index-1];return e.vertical?t.y:t.x}function tE(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 nE(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 rE(e,t,n,r){let i=[],a=[];for(let t of QT(e))(t.vertical?i:a).push(t);for(let e of[i,a]){tE(e);let i=e.filter(e=>e.movable);if(i.length<2)continue;i.sort((e,t)=>e.coordinate-t.coordinate||$T(e,t));let a=[],o=()=>{a.length>1&&iE(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 iE(e,t,n,r,i){e.sort((e,t)=>e.low-t.low||$T(e,t));let a=[],o=-1/0,s=()=>{a.length>1&&uE(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 aE(e,t){return e.high+10>t.low&&t.high+10>e.low}function oE(e,t){return Math.abs(e.coordinate-t.coordinate)>=ZT?0:Math.max(0,Math.min(e.high,t.high)-Math.max(e.low,t.low))}function sE(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+=oE(i,e[t]);for(let e of t)n+=oE(i,e)}return n}function cE(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+ZT,o=[];for(let e of t)e.coordinate<r-a||e.coordinate>i+a||n.has(e)||o.push(e);return o}function lE(e){let t=[];for(let n of e){let e=t.find(e=>!aE(e[e.length-1],n));e?e.push(n):t.push([n])}return t}function uE(e,t,n,r,i){if(!i){dE(e,t,n,r);return}if(fE(e,i))return;let a=e.map(e=>e.coordinate);dE(e,t,n,r),pE(e,a,i)}function dE(e,t,n,r){let i=cE(e,t),a=sE(e,i);if(!a)return;let o=/* @__PURE__ */ new Map,s=e.map(e=>(o.set(e,bE(e,n,r)),e.coordinate)),c=s.reduce((e,t)=>e+t,0)/s.length,l=mE(e),u=null,d=1/0;for(let t of XT){let a=null,f=1/0;for(let p of l){yE(p,t,c,o,n,r);let l=sE(e,i);if(l)l<d&&(u=e.map(e=>e.coordinate),d=l);else{let t=_E(e,s);t<f&&(f=t,a=e.map(e=>e.coordinate))}vE(e,s)}if(a){vE(e,a);return}}u&&d<a&&vE(e,u)}function fE(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 vE(e,n),!0}function pE(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 mE(e){let t=lE(e),n=hE(t);return t.length===e.length?n:[...n,...hE(e.map(e=>[e]))]}function hE(e){let t=(e,t)=>e.reduce((e,n)=>e+t(n),0)/e.length,n=[...e].sort((e,n)=>t(e,eE)-t(n,eE)||t(e,gE)-t(n,gE)||$T(e[0],n[0])),r=[...e].sort((e,n)=>t(e,gE)-t(n,gE)||t(e,eE)-t(n,eE)||$T(e[0],n[0]));return n.every((e,t)=>e===r[t])?[n]:[n,r]}function gE(e){return e.coordinate}function _E(e,t){return e.reduce((e,n,r)=>e+Math.abs(n.coordinate-t[r]),0)}function vE(e,t){e.forEach((e,n)=>{nE(e,t[n]),e.coordinate=t[n]})}function yE(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=>aE(l,e)))return!1;let c=o+r*t;return nE(l,c),wE(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||nE(l,l.coordinate)}})}function bE(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:GT(e.points,t,r?.[0]??``,r?.[1]??``),crossed:TE(e.points),own:i,intruded:CE(e.points,t,i),beforeDelta:xE(e,-1),afterDelta:xE(e,1)}}function xE(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 SE(e,t){return Math.abs(t)>=.5&&e*t<=0}function CE(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(WT(i.x,i.y,c.x,c.y,n,a,o,s)){r++;break}}}return r}function wE(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&&SE(xE(e,-1),r.beforeDelta)||e.index+2===e.points.length-1&&SE(xE(e,1),r.afterDelta)||CE(e.points,t,r.own)>r.intruded||!r.crossed&&TE(e.points))return!1;let c=n.get(e.relationshipId);return GT(e.points,t,c?.[0]??``,c?.[1]??``)<=r.blocked}function TE(e){for(let t=0;t+1<e.length;t++)for(let n=t+2;n+1<e.length;n++)if(EE(e[t],e[t+1],e[n],e[n+1]))return!0;return!1}function EE(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 DE={[K.top]:I.top,[K.bottom]:I.bottom,[K.left]:I.left,[K.right]:I.right},OE=Math.PI*2,kE={[K.top]:-Math.PI,[K.right]:-Math.PI/2,[K.bottom]:0,[K.left]:Math.PI/2},AE={[K.top]:!1,[K.right]:!1,[K.bottom]:!0,[K.left]:!0};function jE(e,t=`document`,{route:n=!0}={}){ex(t);let{tableIds:r,relationshipIds:i}=$x(e,t),{collections:a}=e,o=B(r),s=M(a).collection(`tableEntities`),c=M(a).collection(`relationshipEntities`).selectByIds(i).filter(({start:e,end:t})=>o(e.tableId)&&o(t.tableId)),l=/* @__PURE__ */ new Map,u=/* @__PURE__ */ new Map,d=/* @__PURE__ */ new Map,f=HE(c);for(let n of c){let r=VE(n),{start:i,end:a}=r,o=s.selectById(i.tableId),c=s.selectById(a.tableId);if(o&&c){if(u.set(n,r),d.set(r.id,[0,0]),i.tableId===a.tableId)LE(e,l,o,t).loops.push(r);else{let n=LE(e,l,o,t),s=LE(e,l,c,t),[u,d]=KE(n.objectPoint,s.objectPoint,r);n[u].push({id:r.id,isStart:!0,point:i,angle:GE(u,n,s),tie:f.tieAt(r.id,i.tableId,a.tableId)}),s[d].push({id:r.id,isStart:!1,point:a,angle:GE(d,s,n),tie:f.tieAt(r.id,a.tableId,i.tableId)})}}}for(let e of l.values()){RE(e);for(let t of Lb)qE(t,e,d)}for(let[e,n]of u.entries())Xb(e,d.get(n.id)??[0,0],t),nx(e,n,t);t===`document`?n&&NE(e,u,d):ME(u,d,t)}function ME(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}=HT(i,t.get(e)??[0,0]);Qb(r,[s,c],n)}}function NE(e,t,n){let r=UT(e),i=ET(e),a=FT(i,r),o=i.entries,s=/* @__PURE__ */ new Map,c=/* @__PURE__ */ new Set,l=NT();if(a)for(let e of a)l.markBox(e);let u=/* @__PURE__ */ new Map,d=/* @__PURE__ */ new Map,f=/* @__PURE__ */ 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}=HT(i,n.get(t)??[0,0]),_=o.get(t),v,y;a!==null&&_!==void 0&&IE(_,h,g,p,m)&&!MT(_.bounds,a)?(v=_.pristine,y=PE(v)):(y=YT(h,p.direction,g,m.direction,r,p.tableId,m.tableId),v=PE(y),c.add(t),_&&PT(l,_.nudged),PT(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:AT(v)})}if(a)for(let[e,t]of o)s.has(e)||PT(l,t.nudged);rE(u,r,d,a===null?void 0:FE(o,c,l));for(let[e,t]of u){let n=f.get(e);n&&Qb(n,t)}i.entries=s}function PE(e){return e.map(({x:e,y:t})=>({x:e,y:t}))}function FE(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 IE(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 LE(e,t,n,r){let i=t.get(n.id);if(!i){let a=$S(e,n,r);i={tableId:n.id,centerX:a.top.x,centerY:a.left.y,objectPoint:a,loops:[],top:[],bottom:[],left:[],right:[]},t.set(n.id,i)}return i}function RE(e){let{rt:t}=e.objectPoint,n=zE(e);e.loops.forEach((e,r)=>{let i=n[r];e.start.direction=I.top,e.start.x=t.x-i,e.start.y=t.y,e.end.direction=I.right,e.end.x=t.x,e.end.y=t.y+i})}function zE(e){let{width:t,height:n}=e.objectPoint,r=e.loops.length,i=Math.max(0,Math.min(t,n)-6),a=Math.min(20,i),o=r>1?Math.min(18,(i-a)/(r-1)):0;return e.loops.map((e,t)=>a+t*o)}function BE(e){let t=zE(e);return t.length?t[t.length-1]+8:0}function VE({id:e,start:t,end:n}){return{id:e,start:zb(t),end:zb(n)}}function HE(e){let t=/* @__PURE__ */ new Map;for(let{id:n,start:r,end:i}of e){let e=UE(r.tableId,i.tableId),a=t.get(e);a?a.push(n):t.set(e,[n])}let n=/* @__PURE__ */ new Map,r=/* @__PURE__ */ 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 UE(e,t){return e<t?`${e}|${t}`:`${t}|${e}`}function WE(e){let t=e%OE;return t<0?t+OE:t}function GE(e,t,n){return WE(Math.atan2(n.centerY-t.centerY,n.centerX-t.centerX)-kE[e])}function KE(e,t,n){let r=[K.bottom,K.bottom],i=eC(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=I.bottom,n.end.direction=I.bottom;for(let a of Lb)for(let o of Lb){let s=a,c=o,l=eC(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=DE[s],n.end.x=t[c].x,n.end.y=t[c].y,n.end.direction=DE[c])}return r}function qE(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===K.top||e===K.bottom,o=(a?i.lt.x:i.lt.y)+12,s=(a?i.rb.x:i.rb.y)-12,c=BE(t);if(c&&(e===K.top?s-=c:e===K.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=AE[e]?d-1-r:r,s=p+o*f;a?(t.point.x=s,t.point.y=e===K.top?i.top.y:i.bottom.y):(t.point.y=s,t.point.x=e===K.left?i.left.x:i.right.x);let c=n.get(t.id);c&&(c[+!t.isStart]=r)})}function JE(e,t){ST(e),CT(e),qS(e,t),jE(e,`document`,{route:t.routes!==!1}),bT(e),xT(e)}const YE=e=>e.ui.zIndex,XE=(e,t)=>Math.max(1,...e.map(YE),...t.map(YE))+1,ZE=e=>t=>e.y===t.y&&e.x===t.x;function QE(e,t,n){let r=aw(e,{x:200,y:100}),i=[...t,...n].map(({ui:e})=>e);for(;i.some(ZE(r));)r.x+=50,r.y+=50;return r}function $E(e,t){return e<t?ve(e,t+1):ve(t,e+1)}function eD(e){return xe(ne(e??``))}function tD(e,t){return be([...e,t])}function nD(e,t,n){if(!t||t===n)return[n];let r=e.indexOf(t),i=e.indexOf(n);return r===-1?[n]:$E(r,i).map(t=>e[t])}function rD(e,t,n,r){return be([...t,...nD(e,n,r)])}const iD=[W.tableName,W.tableLogicalName,W.tableComment];function aD({settings:e}){return gb(e)}function oD({settings:e},t,n){return t.indexOf(bb(e,t,n)??n)}function sD({collections:e,editor:{focusTable:t}}){return t?!!M(e).collection(`tableEntities`).selectById(t.tableId)?.columnIds.length:!1}function cD(e){let{editor:{focusTable:t}}=e;if(!t)return!0;let n=aD(e);return oD(e,n,t.focusType)===n.length-1}function lD(e){let{editor:{focusTable:t}}=e;return!t||oD(e,aD(e),t.focusType)===0}function uD({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 dD({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 fD(e){let t=aD(e);return t[t.length-1]}function pD(e){return aD(e)[0]}function mD(e){let{editor:{focusTable:t}}=e;if(!t)return W.columnName;let n=aD(e),r=oD(e,n,t.focusType);return cD(e)?n[0]:n[r+1]}function hD(e){let{editor:{focusTable:t}}=e;if(!t)return W.columnName;let n=aD(e),r=oD(e,n,t.focusType);return lD(e)?n[n.length-1]:n[r-1]}function gD(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 _D({editor:{focusTable:e},collections:t}){if(!e?.columnId)return[];let n=M(t).collection(`tableEntities`).selectById(e.tableId);if(!n)return[];let{columnId:r}=e,i=e.selectColumnIds.filter(B(n.columnIds));return i.length>1&&i.includes(r)?i:[r]}function vD({settings:e}){return db(e)}function yD(e){return vD(e)[0]}function bD(e){let t=vD(e);return t[t.length-1]}function xD(e){let{editor:{focusTable:t}}=e;if(!t)return!0;let n=vD(e);return oD(e,n,t.focusType)===n.length-1}function SD(e){let{editor:{focusTable:t}}=e;return!t||oD(e,vD(e),t.focusType)===0}const CD=B(iD);function wD(e){let{editor:{focusTable:t}}=e;if(!t)return W.tableName;let n=vD(e),r=oD(e,n,t.focusType);return xD(e)?n[0]:n[r+1]}function TD(e){let{editor:{focusTable:t}}=e;if(!t)return W.tableName;let n=vD(e),r=oD(e,n,t.focusType);return SD(e)?n[n.length-1]:n[r-1]}function ED(e,t){let{collections:n,editor:{focusTable:r}}=e;if(!r)return;let i=M(n).collection(`tableEntities`).selectById(r.tableId);if(i){if(CD(r.focusType)){if(sD(e)){let t=i.columnIds[i.columnIds.length-1];r.focusType=fD(e),r.columnId=t,r.prevSelectColumnId=t,r.selectColumnIds=[t]}}else if(dD(e))r.focusType=yD(e),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!==rb.Tab?tD(r.selectColumnIds,n):[n]}}}function DD(e,t){let{collections:n,editor:{focusTable:r}}=e;if(!r)return;let i=M(n).collection(`tableEntities`).selectById(r.tableId);if(i){if(CD(r.focusType)){if(sD(e)){let t=i.columnIds[0];r.focusType=pD(e),r.columnId=t,r.prevSelectColumnId=t,r.selectColumnIds=[t]}}else if(uD(e))r.focusType=yD(e),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!==rb.Tab?tD(r.selectColumnIds,n):[n]}}}function OD(e,t){let{collections:n,editor:{focusTable:r}}=e;if(!r)return;let i=M(n).collection(`tableEntities`).selectById(r.tableId);if(i){if(CD(r.focusType)){if(SD(e)){if(sD(e)){let t=i.columnIds[i.columnIds.length-1];r.focusType=fD(e),r.columnId=t,r.prevSelectColumnId=t,r.selectColumnIds=[t]}else r.focusType=TD(e)}else r.focusType=TD(e)}else if(lD(e)){if(dD(e))r.focusType=bD(e),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=fD(e),r.columnId=a,r.prevSelectColumnId=a,r.selectColumnIds=t.shiftKey&&t.moveKey!==rb.Tab?tD(r.selectColumnIds,a):[a]}}else r.focusType=hD(e),!t.shiftKey&&r.columnId&&(r.prevSelectColumnId=r.columnId,r.selectColumnIds=[r.columnId])}}function kD(e,t){let{collections:n,editor:{focusTable:r}}=e;if(!r)return;let i=M(n).collection(`tableEntities`).selectById(r.tableId);if(i){if(CD(r.focusType)){if(xD(e)){if(sD(e)){let t=i.columnIds[0];r.focusType=pD(e),r.columnId=t,r.prevSelectColumnId=t,r.selectColumnIds=[t]}else r.focusType=wD(e)}else r.focusType=wD(e)}else if(cD(e)){if(uD(e))r.focusType=yD(e),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=pD(e),r.columnId=a,r.prevSelectColumnId=a,r.selectColumnIds=t.shiftKey&&t.moveKey!==rb.Tab?tD(r.selectColumnIds,a):[a]}}else r.focusType=mD(e),!t.shiftKey&&r.columnId&&(r.prevSelectColumnId=r.columnId,r.selectColumnIds=[r.columnId])}}const AD=3e4,jD=9e4,MD=3e3,ND=O(U.changeHasHistory),PD=({editor:e},{payload:{hasRedo:t,hasUndo:n,sheet:r}})=>{if(r){e.dictionaryHistory[r]={hasRedo:t,hasUndo:n};return}e.hasRedo=t,e.hasUndo=n},FD=O(U.selectAll),ID=({editor:e,doc:t,settings:n})=>{let r=t.tableIds.reduce((e,t)=>(e[t]=Qy.table,e),{});e.selectedMap={...(G(n.show,N.hideMemo)?[]:t.memoIds).reduce((e,t)=>(e[t]=Qy.memo,e),{}),...r}},LD=O(U.unselectAll),RD=({editor:e})=>{Object.keys(e.selectedMap).forEach(t=>{Reflect.deleteProperty(e.selectedMap,t)})},zD=O(U.select),BD=({editor:e},{payload:t})=>{Object.assign(e.selectedMap,t)},VD=O(U.changeViewport),HD=(e,{payload:{width:t,height:n}})=>{e.editor.viewport.width=t,e.editor.viewport.height=n,e.editor.scrollPullPending&&qD(e)},UD=O(U.clear),WD=e=>C(e)&&e.keepDictionaries===!0;function GD(e,{doc:t,collections:n}){t.wordIds=e.doc.wordIds,t.termIds=e.doc.termIds,t.domainIds=e.doc.domainIds,n.wordEntities=e.collections.wordEntities,n.termEntities=e.collections.termEntities,n.domainEntities=e.collections.domainEntities}const KD=(e,{payload:t})=>{let{doc:n,collections:r}=jh({});WD(t)&&GD(e,{doc:n,collections:r}),e.doc=n,e.collections=r,e.editor.scrollPullPending=!1,gx(e.editor)};function qD(e){let{settings:t,editor:n}=e;if(!Dw(n.viewport)){n.scrollPullPending=!0;return}let r=Ow(e);t.originX=Ke(r.x,4),t.originY=Ke(r.y,4),n.scrollPullPending=!1}const JD=O(U.loadJson),YD=(e,{payload:t,version:n},r)=>{let{version:i,settings:a,doc:o,collections:s}=jg(t.value);cv(a.canvasType)||(a.canvasType=Yg.ERD),WD(t)&&GD(e,{doc:o,collections:s}),Lw(e),hT(e,a,n??r.clock.getVersion()),e.version=i,e.doc=o,e.collections=s,Lw(e),gx(e.editor),Tb(e),xb(e),JE(e,r),qD(e)},XD=O(U.initialClear),ZD=e=>{let{doc:t,collections:n}=jh({});e.doc=t,e.collections=n,e.editor.scrollPullPending=!1,gx(e.editor)},QD=O(U.initialLoadJson),$D=(e,{payload:{value:t}},n)=>{let{version:r,settings:i,doc:a,collections:o}=jg(t);cv(i.canvasType)||(i.canvasType=Yg.ERD),Lw(e),Object.assign(e.settings,i),e.version=r,e.doc=a,e.collections=o,e.lww={},Lw(e),gx(e.editor),Tb(e),xb(e),JE(e,n),qD(e)},eO=O(U.focusTable),tO=(e,t)=>bb(e,db(e),t)??t,nO=({editor:e,collections:t,settings:n},{payload:r})=>{let i=M(t).collection(`tableEntities`);if(e.focusTable?.tableId===r.tableId&&r.focusType)e.focusTable.focusType=tO(n,r.focusType),e.focusTable.columnId=null,e.focusTable.prevSelectColumnId=null,e.focusTable.selectColumnIds=[];else if(r.focusType){let t=i.selectById(r.tableId);if(!t)return;e.focusTable={tableId:t.id,focusType:tO(n,r.focusType),columnId:null,prevSelectColumnId:null,selectColumnIds:[],edit:!1}}else if(e.focusTable?.tableId!==r.tableId){let t=i.selectById(r.tableId);if(!t)return;e.focusTable={tableId:t.id,focusType:db(n)[0],columnId:null,prevSelectColumnId:null,selectColumnIds:[],edit:!1}}},rO=O(U.focusColumn),iO=({editor:e,collections:t,settings:n},{payload:r})=>{let i=M(t).collection(`tableEntities`),a=bb(n,gb(n),r.focusType)??r.focusType;if(e.focusTable?.tableId===r.tableId){let t=i.selectById(r.tableId);if(!t)return;let n=e.focusTable;n.columnId=r.columnId,n.focusType=a,n.selectColumnIds=r.$mod&&r.shiftKey?rD(t.columnIds,n.selectColumnIds,n.prevSelectColumnId,n.columnId):r.shiftKey?nD(t.columnIds,n.prevSelectColumnId,n.columnId):r.$mod?tD(n.selectColumnIds,r.columnId):[r.columnId],n.prevSelectColumnId=r.columnId}else{let t=i.selectById(r.tableId);if(!t)return;e.focusTable={tableId:t.id,focusType:a,columnId:r.columnId,prevSelectColumnId:r.columnId,selectColumnIds:[r.columnId],edit:!1}}},aO=O(U.focusTableEnd),oO=({editor:e})=>{e.focusTable=null},sO=O(U.focusMoveTable),cO=(e,{payload:t})=>{let{editor:{focusTable:n}}=e;if(n)switch(n.edit=!1,t.moveKey){case rb.ArrowUp:ED(e,t);break;case rb.ArrowDown:DD(e,t);break;case rb.ArrowLeft:OD(e,t);break;case rb.ArrowRight:kD(e,t);break;case rb.Tab:t.shiftKey?OD(e,t):kD(e,t)}},lO=O(U.editTable),uO=({editor:{focusTable:e}})=>{e&&(e.edit=!0)},dO=O(U.editTableEnd),fO=({editor:{focusTable:e}})=>{e&&(e.edit=!1)},pO=O(U.editMemo),mO=({editor:e},{payload:{id:t}})=>{e.editMemoId=t},hO=O(U.editMemoEnd),gO=({editor:e})=>{e.editMemoId=null},_O=O(U.editTableGroup),vO=({editor:e},{payload:{id:t}})=>{e.editTableGroupId=t},yO=O(U.editTableGroupEnd),bO=({editor:e})=>{e.editTableGroupId=null},xO=O(U.scrollMemo),SO=({editor:e},{payload:{id:t,scrollTop:n}})=>{e.memoScrollTopMap[t]=Number.isFinite(n)?Math.max(0,n):0},CO=O(U.selectAllColumn),wO=({collections:e,editor:{focusTable:t}})=>{if(!t)return;let n=M(e).collection(`tableEntities`).selectById(t.tableId);n&&(t.selectColumnIds=[...n.columnIds])},TO=O(U.drawStartRelationship),EO=({editor:e},{payload:{relationshipType:t}})=>{e.drawRelationship={relationshipType:t,start:null,end:{x:0,y:0}},e.drawTableGroup=!1},DO=O(U.drawStartAddRelationship),OO=({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})},kO=O(U.drawEndRelationship),AO=({editor:e})=>{e.drawRelationship=null},jO=O(U.drawRelationship),MO=({editor:{drawRelationship:e},settings:t},{payload:{x:n,y:r}})=>{if(!e?.start)return;let i=aw(t,{x:n,y:r});e.end.x=i.x,e.end.y=i.y},NO=O(U.hoverColumnMap),PO=({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},FO=O(U.hoverRelationshipMap),IO=({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},LO=O(U.changeOpenMap),RO=({editor:e},{payload:t})=>{Object.assign(e.openMap,t)},zO=O(U.changeHandTool),BO=({editor:e},{payload:{value:t}})=>{e.handTool=t,t&&(e.drawRelationship=null,e.drawTableGroup=!1)},VO=O(U.changeDrawTableGroup),HO=({editor:e},{payload:{value:t}})=>{e.drawTableGroup=t,t&&(e.handTool=!1,e.drawRelationship=null)},UO=O(U.changeZenMode),WO=({editor:e},{payload:{value:t}})=>{e.zenMode=t},GO=O(U.dragstartColumn),KO=({editor:e},{payload:t})=>{e.draggableColumn=t,t.columnIds.forEach(t=>{e.draggingColumnMap[t]=!0})},qO=O(U.dragendColumn),JO=({editor:e})=>{e.draggableColumn=null,Object.keys(e.draggingColumnMap).forEach(t=>{Reflect.deleteProperty(e.draggingColumnMap,t)})},YO=O(U.sharedMouseTracker),XO=({editor:e},{payload:t,tags:n,meta:r})=>{if(S(n)||!G(n,Ux.shared)||!w(r?.editorId)||e.id===r.editorId)return;let i=e.sharedMouseTrackerMap[r.editorId],a=!w(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)},AD)):e.sharedMouseTrackerMap[r.editorId]={...t,id:r.editorId,nickname:a,timeoutId:setTimeout(()=>{Reflect.deleteProperty(e.sharedMouseTrackerMap,r.editorId)},AD)}},ZO=O(U.sharedFocusTracker),QO=({editor:e},{payload:{focus:t},tags:n,meta:r})=>{if(S(n)||!G(n,Ux.shared)||!w(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)},jD)):e.sharedFocusTrackerMap[r.editorId]={...t,id:r.editorId,timeoutId:setTimeout(()=>{Reflect.deleteProperty(e.sharedFocusTrackerMap,r.editorId)},jD)}},$O=O(U.sharedSelectionTracker),ek=({editor:e},{payload:{selectedIds:t},tags:n,meta:r})=>{if(S(n)||!G(n,Ux.shared)||!w(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)},jD)):e.sharedSelectionTrackerMap[r.editorId]={id:r.editorId,selectedIds:t,timeoutId:setTimeout(()=>{Reflect.deleteProperty(e.sharedSelectionTrackerMap,r.editorId)},jD)}},tk=O(U.sharedDragSelectTracker),nk=({editor:e},{payload:{rect:t},tags:n,meta:r})=>{if(S(n)||!G(n,Ux.shared)||!w(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)},MD)):e.sharedDragSelectTrackerMap[r.editorId]={...t,id:r.editorId,timeoutId:setTimeout(()=>{Reflect.deleteProperty(e.sharedDragSelectTrackerMap,r.editorId)},MD)}},rk=O(U.dragSelectRect),ik=({editor:e},{payload:{rect:t}})=>{e.dragSelect=t},ak=O(U.getLWW),ok=he,sk=O(U.mergeLWW),ck=({lww:e},{payload:{lww:t}})=>{Object.entries(t).forEach(([t,[n,r,i,a]])=>{Bg(e,r,t,n,he),Vg(e,i,t,n,he),Object.entries(a).forEach(([r,i])=>{Hg(e,i,t,n,r,he)})})},lk={[U.changeHasHistory]:PD,[U.selectAll]:ID,[U.unselectAll]:RD,[U.select]:BD,[U.changeViewport]:HD,[U.clear]:KD,[U.loadJson]:YD,[U.initialClear]:ZD,[U.initialLoadJson]:$D,[U.focusTable]:nO,[U.focusColumn]:iO,[U.focusTableEnd]:oO,[U.focusMoveTable]:cO,[U.editTable]:uO,[U.editTableEnd]:fO,[U.editMemo]:mO,[U.editMemoEnd]:gO,[U.editTableGroup]:vO,[U.editTableGroupEnd]:bO,[U.scrollMemo]:SO,[U.selectAllColumn]:wO,[U.drawStartRelationship]:EO,[U.drawStartAddRelationship]:OO,[U.drawEndRelationship]:AO,[U.drawRelationship]:MO,[U.hoverColumnMap]:PO,[U.hoverRelationshipMap]:IO,[U.changeOpenMap]:RO,[U.changeHandTool]:BO,[U.changeDrawTableGroup]:HO,[U.changeZenMode]:WO,[U.dragstartColumn]:KO,[U.dragendColumn]:JO,[U.sharedMouseTracker]:XO,[U.sharedFocusTracker]:QO,[U.sharedSelectionTracker]:ek,[U.sharedDragSelectTracker]:nk,[U.dragSelectRect]:ik,[U.getLWW]:ok,[U.mergeLWW]:ck,...Vx},uk={changeHasHistoryAction:ND,selectAllAction:FD,unselectAllAction:LD,selectAction:zD,changeViewportAction:VD,clearAction:UD,loadJsonAction:JD,initialClearAction:XD,initialLoadJsonAction:QD,focusTableAction:eO,focusColumnAction:rO,focusTableEndAction:aO,focusMoveTableAction:sO,editTableAction:lO,editTableEndAction:dO,editMemoAction:pO,editMemoEndAction:hO,editTableGroupAction:_O,editTableGroupEndAction:yO,scrollMemoAction:xO,selectAllColumnAction:CO,drawStartRelationshipAction:TO,drawStartAddRelationshipAction:DO,drawEndRelationshipAction:kO,drawRelationshipAction:jO,hoverColumnMapAction:NO,hoverRelationshipMapAction:FO,changeOpenMapAction:LO,changeHandToolAction:zO,changeDrawTableGroupAction:VO,changeZenModeAction:UO,dragstartColumnAction:GO,dragendColumnAction:qO,sharedMouseTrackerAction:YO,sharedFocusTrackerAction:ZO,sharedSelectionTrackerAction:$O,sharedDragSelectTrackerAction:tk,dragSelectRectAction:rk,getLWWAction:ak,mergeLWWAction:sk,...Hx};function dk(e,t){if(!t)return JD({value:Mg(e)});let n=Mg({...e,doc:{...e.doc,wordIds:[],termIds:[]},collections:{...e.collections,wordEntities:{},termEntities:{}}});return JD({value:n,keepDictionaries:!0})}const fk=(e,{payload:t},n)=>{let r=WD(t);e.push(UD(r?{keepDictionaries:!0}:void 0),dk(n,r))},pk=(e,{payload:t},n)=>{e.push(dk(n,WD(t)))},mk={[U.loadJson]:fk,[U.clear]:pk},hk={addIndex:`index.add`,removeIndex:`index.remove`,changeIndexName:`index.changeName`,changeIndexUnique:`index.changeUnique`},gk=e=>W_({id:wg(),name:``,tableId:``,indexColumnIds:[],seqIndexColumnIds:[],unique:!1},e??{}),_k=O(hk.addIndex),vk=({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(gk({id:r,tableId:i})).addOperator(n,s,r,()=>{B(e.indexIds)(r)||(e.indexIds.push(r),bS())})},yk=O(hk.removeIndex),bk=({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),bS())})},xk=O(hk.changeIndexName),Sk=({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=>gk({id:e,tableId:r})),c.replaceOperator(t,s,n,`name`,()=>{c.updateOne(n,e=>{e.name=i})})},Ck=O(hk.changeIndexUnique),wk=({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=>gk({id:e,tableId:r})),c.replaceOperator(t,s,n,`unique`,()=>{c.updateOne(n,e=>{e.unique=i})})},Tk={[hk.addIndex]:vk,[hk.removeIndex]:bk,[hk.changeIndexName]:Sk,[hk.changeIndexUnique]:wk},Ek={addIndexAction:_k,removeIndexAction:yk,changeIndexNameAction:xk,changeIndexUniqueAction:Ck},Dk=(e,{payload:{id:t}})=>{e.push(yk({id:t}))},Ok=(e,{payload:{id:t}},{collections:n})=>{let r=M(n).collection(`indexEntities`).selectById(t);r&&e.push(_k({id:t,tableId:r.tableId}))},kk=(e,{payload:{id:t,tableId:n}},{collections:r})=>{let i=M(r).collection(`indexEntities`).selectById(t);i&&e.push(xk({id:t,tableId:n,value:i.name}))},Ak=(e,{payload:{id:t,tableId:n,value:r}},{collections:i})=>{M(i).collection(`indexEntities`).selectById(t)&&e.push(Ck({id:t,tableId:n,value:!r}))},jk={[hk.addIndex]:Dk,[hk.removeIndex]:Ok,[hk.changeIndexName]:kk,[hk.changeIndexUnique]:Ak},Mk={addIndexColumn:`indexColumn.add`,removeIndexColumn:`indexColumn.remove`,moveIndexColumn:`indexColumn.move`,changeIndexColumnOrderType:`indexColumn.changeOrderType`},Nk=e=>W_({id:wg(),indexId:``,columnId:``,orderType:o_.ASC},e??{}),Pk=O(Mk.addIndexColumn),Fk=({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=>gk({id:e,tableId:i}));M(e).collection(`indexColumnEntities`).addOne(Nk({id:n,indexId:r,columnId:a})).addOperator(t,c,n,()=>{B(u.indexColumnIds)(n)||l.updateOne(r,e=>{I_(e.indexColumnIds,e.seqIndexColumnIds,n)})})},Ik=O(Mk.removeIndexColumn),Lk=({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=>gk({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)})})},Rk=O(Mk.moveIndexColumn),zk=({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=>gk({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))})},Bk=O(Mk.changeIndexColumnOrderType),Vk=({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=>Nk({id:e,indexId:r,columnId:i})),l.replaceOperator(t,c,n,`orderType`,()=>{l.updateOne(n,e=>{e.orderType=a})})},Hk={[Mk.addIndexColumn]:Fk,[Mk.removeIndexColumn]:Lk,[Mk.moveIndexColumn]:zk,[Mk.changeIndexColumnOrderType]:Vk},Uk={addIndexColumnAction:Pk,removeIndexColumnAction:Ik,moveIndexColumnAction:Rk,changeIndexColumnOrderTypeAction:Bk},Wk=(e,{payload:{id:t,indexId:n,tableId:r}})=>{e.push(Ik({id:t,indexId:n,tableId:r}))},Gk=(e,{payload:{id:t,indexId:n,tableId:r}},{collections:i})=>{let a=M(i).collection(`indexColumnEntities`).selectById(t);a&&e.push(Pk({id:t,indexId:n,tableId:r,columnId:a.columnId}))},Kk=(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(Rk({indexId:n,tableId:r,id:t,targetId:u}))},qk=(e,{payload:{id:t,indexId:n,columnId:r}},{collections:i})=>{let a=M(i).collection(`indexColumnEntities`).selectById(t);a&&e.push(Bk({id:t,indexId:n,columnId:r,value:a.orderType}))},Jk={[Mk.addIndexColumn]:Wk,[Mk.removeIndexColumn]:Gk,[Mk.moveIndexColumn]:Kk,[Mk.changeIndexColumnOrderType]:qk},Yk={addMemo:`memo.add`,moveMemo:`memo.move`,moveToMemo:`memo.moveTo`,removeMemo:`memo.remove`,changeMemoValue:`memo.changeValue`,changeMemoColor:`memo.changeColor`,resizeMemo:`memo.resize`,changeZIndex:`memo.changeZIndex`},Xk=e=>W_({id:wg(),value:``,ui:{x:200,y:100,zIndex:2,width:116,height:100,color:``}},e??{}),Zk=O(Yk.addMemo),Qk=({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(Xk({id:r,ui:i})).addOperator(n,s,r,()=>{B(e.memoIds)(r)||e.memoIds.push(r)})},$k=O(Yk.moveMemo),eA=({collections:e},{payload:{ids:t,movementX:n,movementY:r}})=>{let i=M(e).collection(`memoEntities`);for(let e of t)i.getOrCreate(e,e=>Xk({id:e}));i.updateMany(t,e=>{e.ui.x=Ke(e.ui.x+n,4),e.ui.y=Ke(e.ui.y+r,4)})},tA=O(Yk.moveToMemo),nA=({collections:e},{payload:{id:t,x:n,y:r}})=>{let i=M(e).collection(`memoEntities`);i.getOrCreate(t,e=>Xk({id:e})),i.updateOne(t,e=>{e.ui.x=n,e.ui.y=r})},rA=O(Yk.removeMemo),iA=({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)})},aA=O(Yk.changeMemoValue),oA=({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=>Xk({id:e})),s.replaceOperator(t,o,n,`value`,()=>{s.updateOne(n,e=>{e.value=r})})},sA=O(Yk.changeMemoColor),cA=({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=>Xk({id:e})),s.replaceOperator(t,o,n,`ui.color`,()=>{s.updateOne(n,e=>{e.ui.color=r})})},lA=O(Yk.resizeMemo),uA=({collections:e},{payload:{id:t,x:n,y:r,width:i,height:a}})=>{let o=M(e).collection(`memoEntities`);o.getOrCreate(t,e=>Xk({id:e})),o.updateOne(t,e=>{e.ui.x=n,e.ui.y=r,e.ui.width=i,e.ui.height=a})},dA=O(Yk.changeZIndex),fA=({collections:e},{payload:{id:t,zIndex:n}})=>{let r=M(e).collection(`memoEntities`);r.getOrCreate(t,e=>Xk({id:e})),r.updateOne(t,e=>{e.ui.zIndex=n})},pA={[Yk.addMemo]:Qk,[Yk.moveMemo]:eA,[Yk.moveToMemo]:nA,[Yk.removeMemo]:iA,[Yk.changeMemoValue]:oA,[Yk.changeMemoColor]:cA,[Yk.resizeMemo]:uA,[Yk.changeZIndex]:fA},mA={addMemoAction:Zk,moveMemoAction:$k,moveToMemoAction:tA,removeMemoAction:rA,changeMemoValueAction:aA,changeMemoColorAction:sA,resizeMemoAction:lA,changeZIndexAction:dA},hA=(e,{payload:{id:t}})=>{e.push(rA({id:t}))},gA=(e,{payload:{id:t}},{collections:n})=>{let r=M(n).collection(`memoEntities`).selectById(t);r&&e.push(Zk({id:r.id,ui:_e(r.ui,[`x`,`y`,`zIndex`])}))},_A=(e,{payload:{id:t}},{collections:n})=>{let r=M(n).collection(`memoEntities`).selectById(t);r&&e.push(aA({id:t,value:r.value}))},vA=(e,{payload:{id:t}},{collections:n})=>{let r=M(n).collection(`memoEntities`).selectById(t);r&&e.push(tA({id:t,x:r.ui.x,y:r.ui.y}))},yA={[Yk.addMemo]:hA,[Yk.removeMemo]:gA,[Yk.changeMemoValue]:_A,[Yk.moveToMemo]:vA},bA=(e,t,n)=>{let r=n.filter(e=>e.type===$k.type);if(!r.length)return;let i=oe(r,e=>e.payload.ids.join(`,`));for(let[,n]of Object.entries(i)){let{payload:{ids:r}}=x(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($k({ids:r,movementX:-1*i,movementY:-1*a})),t.push($k({ids:r,movementX:i,movementY:a})))}},xA=(e,t,n)=>{let r=n.filter(({type:e})=>e===sA.type);if(!r.length)return;let i=oe(r,e=>e.payload.id);for(let[n,r]of Object.entries(i)){let i=x(r),a=fe(r);e.push(sA({id:n,color:i.payload.prevColor,prevColor:a.payload.color})),t.push(sA({id:n,color:a.payload.color,prevColor:i.payload.prevColor}))}},SA=(e,t,n)=>{let r=n.filter(e=>e.type===lA.type);if(!r.length)return;let i=oe(r,e=>e.payload.id);for(let[,n]of Object.entries(i)){if(n.length<2)continue;let r=x(n),i=fe(n);e.push(r),t.push(i)}},CA={[Yk.moveMemo]:bA,[Yk.changeMemoColor]:xA,[Yk.resizeMemo]:SA},wA={addRelationship:`relationship.add`,removeRelationship:`relationship.remove`,changeRelationshipType:`relationship.changeType`,changeRelationshipOnDelete:`relationship.changeOnDelete`,changeRelationshipOnUpdate:`relationship.changeOnUpdate`,changeRelationshipColumns:`relationship.changeColumns`},TA=e=>W_({id:wg(),identification:!1,relationshipType:r_.ZeroN,startRelationshipType:i_.dash,onDelete:a_.none,onUpdate:a_.none,start:{tableId:``,columnIds:[],x:0,y:0,direction:I.bottom},end:{tableId:``,columnIds:[],x:0,y:0,direction:I.bottom}},e??{}),EA=O(wA.addRelationship),DA=({doc:e,collections:t,lww:n},{payload:{id:r,relationshipType:i,onDelete:a,onUpdate:o,start:s,end:c},version:l},{clock:u})=>{let d=l??u.getVersion();M(t).collection(`relationshipEntities`).addOne(TA({id:r,relationshipType:i,onDelete:a??a_.none,onUpdate:o??a_.none,start:{tableId:s.tableId,columnIds:s.columnIds},end:{tableId:c.tableId,columnIds:c.columnIds}})).addOperator(n,d,r,()=>{B(e.relationshipIds)(r)||e.relationshipIds.push(r)})},OA=O(wA.removeRelationship),kA=({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)})},AA=O(wA.changeRelationshipType),jA=({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})})},MA=O(wA.changeRelationshipOnDelete),NA=({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,`onDelete`,()=>{s.updateOne(n,e=>{e.onDelete=r})})},PA=O(wA.changeRelationshipOnUpdate),FA=({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,`onUpdate`,()=>{s.updateOne(n,e=>{e.onUpdate=r})})},IA=O(wA.changeRelationshipColumns),LA=`columns`,RA=(e,t)=>JSON.stringify([e,t]),zA=(e,{start:t,end:n})=>e.start.tableId!==t.tableId||e.end.tableId!==n.tableId,BA=({collections:e,lww:t},{payload:{id:n,start:r,end:i},version:a},{clock:o})=>{let s=a??o.getVersion(),c=M(e).collection(`relationshipEntities`),l=c.selectById(n);l&&zA(l,{start:r,end:i})||l&&(t[n]?.[3][LA]??-1)===s&&RA(r.columnIds,i.columnIds)<=RA(l.start.columnIds,l.end.columnIds)||c.replaceOperator(t,s,n,LA,()=>{c.updateOne(n,e=>{e.start.columnIds=[...r.columnIds],e.end.columnIds=[...i.columnIds]})})},VA={[wA.addRelationship]:DA,[wA.removeRelationship]:kA,[wA.changeRelationshipType]:jA,[wA.changeRelationshipOnDelete]:NA,[wA.changeRelationshipOnUpdate]:FA,[wA.changeRelationshipColumns]:BA},HA={addRelationshipAction:EA,removeRelationshipAction:OA,changeRelationshipTypeAction:AA,changeRelationshipOnDeleteAction:MA,changeRelationshipOnUpdateAction:PA,changeRelationshipColumnsAction:IA},UA=(e,{payload:{id:t}})=>{e.push(OA({id:t}))},WA=(e,{payload:{id:t}},{collections:n})=>{let r=M(n).collection(`relationshipEntities`).selectById(t);r&&e.push(EA({id:r.id,relationshipType:r.relationshipType,onDelete:r.onDelete,onUpdate:r.onUpdate,start:_e(r.start,[`tableId`,`columnIds`]),end:_e(r.end,[`tableId`,`columnIds`])}))},GA=(e,{payload:{id:t}},{collections:n})=>{let r=M(n).collection(`relationshipEntities`).selectById(t);r&&e.push(AA({id:t,value:r.relationshipType}))},KA=(e,{payload:{id:t}},{collections:n})=>{let r=M(n).collection(`relationshipEntities`).selectById(t);r&&e.push(MA({id:t,value:r.onDelete}))},qA=(e,{payload:{id:t}},{collections:n})=>{let r=M(n).collection(`relationshipEntities`).selectById(t);r&&e.push(PA({id:t,value:r.onUpdate}))},JA=(e,{payload:{id:t,start:n,end:r}},{collections:i})=>{let a=M(i).collection(`relationshipEntities`).selectById(t);a&&!zA(a,{start:n,end:r})&&e.push(IA({id:t,start:{tableId:a.start.tableId,columnIds:[...a.start.columnIds]},end:{tableId:a.end.tableId,columnIds:[...a.end.columnIds]}}))},YA={[wA.addRelationship]:UA,[wA.removeRelationship]:WA,[wA.changeRelationshipType]:GA,[wA.changeRelationshipOnDelete]:KA,[wA.changeRelationshipOnUpdate]:qA,[wA.changeRelationshipColumns]:JA},XA=(e,t,{settings:n})=>{e.push(kw({originX:n.originX,originY:n.originY}))},ZA=(e,{payload:{show:t,value:n}})=>{e.push(Nw({show:t,value:!n}))},QA=(e,t,{settings:n})=>{e.push(Cw({value:n.zoomLevel}))},$A=(e,{payload:{position:t}},{settings:n})=>{e.push(sT({position:t,value:n.ddlScripts[t]}))},ej={[q.scrollTo]:XA,[q.changeShow]:ZA,[q.changeZoomLevel]:QA,[q.changeDDLScript]:$A},tj=(e,t,n)=>{let r=n.filter(e=>e.type===jw.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(jw({movementX:-1*i,movementY:-1*a})),t.push(jw({movementX:i,movementY:a})))},nj=(e,t,n)=>{let r=n.filter(e=>e.type===Tw.type);if(!r.length)return;let i=r.reduce((e,{payload:{value:t}})=>e+t,0);e.push(Tw({value:-1*i})),t.push(Tw({value:i}))},rj={[q.streamScrollTo]:tj,[q.streamZoomLevel]:nj},J={addTable:`table.add`,moveTable:`table.move`,moveToTable:`table.moveTo`,removeTable:`table.remove`,changeTableName:`table.changeName`,changeTableComment:`table.changeComment`,changeTableColor:`table.changeColor`,changeTableGroup:`table.changeGroup`,changeZIndex:`table.changeZIndex`,sortTable:`table.sort`,changeTableLogicalName:`table.changeLogicalName`,changeTableNameDerived:`table.changeNameDerived`},ij=O(J.addTable),aj=({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(G_({id:r,ui:i})).addOperator(n,s,r,()=>{B(e.tableIds)(r)||e.tableIds.push(r)})},oj=O(J.moveTable),sj=({collections:e},{payload:{ids:t,movementX:n,movementY:r}})=>{let i=M(e).collection(`tableEntities`);for(let e of t)i.getOrCreate(e,e=>G_({id:e}));i.updateMany(t,e=>{e.ui.x=Ke(e.ui.x+n,4),e.ui.y=Ke(e.ui.y+r,4)})},cj=O(J.moveToTable),lj=({collections:e},{payload:{id:t,x:n,y:r}})=>{let i=M(e).collection(`tableEntities`);i.getOrCreate(t,e=>G_({id:e})),i.updateOne(t,e=>{e.ui.x=n,e.ui.y=r})},uj=O(J.removeTable),dj=({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)})},fj=O(J.changeTableName),pj=({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=>G_({id:e})),c.replaceOperator(t,s,n,`name`,()=>{c.updateOne(n,e=>{e.name=r,e.ui.widthName=V(a(r))})})},mj=O(J.changeTableLogicalName),hj=({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=>G_({id:e})),c.replaceOperator(t,s,n,`logicalName`,()=>{c.updateOne(n,e=>{e.logicalName=r,e.ui.widthLogicalName=V(a(r))})})},gj=O(J.changeTableNameDerived),_j=({collections:e,lww:t},{payload:{id:n,value:r},version:i},{clock:a})=>{let o=i??a.getVersion(),s=M(e).collection(`tableEntities`);s.getOrCreate(n,e=>G_({id:e})),s.replaceOperator(t,o,n,`nameDerived`,()=>{s.updateOne(n,e=>{e.nameDerived=r})})},vj=O(J.changeTableComment),yj=({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=>G_({id:e})),c.replaceOperator(t,s,n,`comment`,()=>{c.updateOne(n,e=>{e.comment=r,e.ui.widthComment=V(a(r))})})},bj=O(J.changeTableColor),xj=({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=>G_({id:e})),s.replaceOperator(t,o,n,`ui.color`,()=>{s.updateOne(n,e=>{e.ui.color=r})})},Sj=O(J.changeTableGroup),Cj=({collections:e,lww:t},{payload:{id:n,value:r},version:i},{clock:a})=>{let o=i??a.getVersion(),s=M(e).collection(`tableEntities`);s.getOrCreate(n,e=>G_({id:e})),s.replaceOperator(t,o,n,`groupId`,()=>{s.updateOne(n,e=>{e.groupId=r})})},wj=O(J.changeZIndex),Tj=({collections:e},{payload:{id:t,zIndex:n}})=>{let r=M(e).collection(`tableEntities`);r.getOrCreate(t,e=>G_({id:e})),r.updateOne(t,e=>{e.ui.zIndex=n})},Ej=O(J.sortTable);function Dj(e,t,n,r){let i=t,a=t,o=r;e.forEach(e=>{let r=e.width+80,s=e.height+80;i+r>n&&(a+=o,o=0,i=t),o<s&&(o=s),e.place(i,a),i+=r})}const Oj=(e,t)=>({width:PS(t,e).width,height:WS(t),place:(e,n)=>{t.ui.x=e,t.ui.y=n}}),kj=({doc:e})=>tv(e.tableIds.length*100);function Aj(e,t,n){let r=[];Dj(n.map((e,t)=>({...e,place:(n,i)=>{r[t]={x:n,y:i,width:e.width,height:e.height}}})),0,kj(e)-50-48,0);let i=PC(r.reduce(tC));return{width:i.width,height:i.height,place:(a,o)=>{n.forEach((e,t)=>e.place(a+r[t].x-i.x,o+r[t].y-i.y)),M(e.collections).collection(`tableGroupEntities`).updateOne(t,e=>{e.ui.x=a,e.ui.y=o,e.ui.width=i.width,e.ui.height=i.height})}}}function jj(e,t){let n=/* @__PURE__ */ new Map,r=[];return t.forEach(t=>{let i=Oj(e,t),a=jC(e,t),o=a?n.get(a):void 0;a?o?o.push(i):(n.set(a,[i]),r.push(a)):r.push(i)}),r.map(t=>typeof t==`string`?Aj(e,t,n.get(t)):t)}const Mj=e=>{let{doc:t,collections:n}=e,r=M(n).collection(`tableEntities`).selectByIds(t.tableIds);r.sort((e,t)=>e.columnIds.length-t.columnIds.length),Dj(jj(e,r),50,kj(e),50)},Nj={[J.addTable]:aj,[J.moveTable]:sj,[J.moveToTable]:lj,[J.removeTable]:dj,[J.changeTableName]:pj,[J.changeTableComment]:yj,[J.changeTableColor]:xj,[J.changeTableGroup]:Cj,[J.changeZIndex]:Tj,[J.sortTable]:Mj,[J.changeTableLogicalName]:hj,[J.changeTableNameDerived]:_j},Pj={addTableAction:ij,moveTableAction:oj,moveToTableAction:cj,removeTableAction:uj,changeTableNameAction:fj,changeTableCommentAction:vj,changeTableColorAction:bj,changeTableGroupAction:Sj,changeZIndexAction:wj,sortTableAction:Ej,changeTableLogicalNameAction:mj,changeTableNameDerivedAction:gj},Fj=(e,{payload:{id:t}})=>{e.push(uj({id:t}))},Ij=(e,{payload:{id:t}},{collections:n})=>{let r=M(n).collection(`tableEntities`).selectById(t);r&&e.push(ij({id:r.id,ui:_e(r.ui,[`x`,`y`,`zIndex`])}))},Lj=(e,{payload:{id:t}},{collections:n})=>{let r=M(n).collection(`tableEntities`).selectById(t);r&&e.push(fj({id:t,value:r.name}))},Rj=(e,{payload:{id:t}},{collections:n})=>{let r=M(n).collection(`tableEntities`).selectById(t);r&&e.push(mj({id:t,value:r.logicalName}))},zj=(e,{payload:{id:t}},{collections:n})=>{let r=M(n).collection(`tableEntities`).selectById(t);r&&e.push(gj({id:t,value:r.nameDerived}))},Bj=(e,{payload:{id:t}},{collections:n})=>{let r=M(n).collection(`tableEntities`).selectById(t);r&&e.push(vj({id:t,value:r.comment}))},Vj=(e,{payload:{id:t,prevValue:n}},{collections:r})=>{let i=M(r).collection(`tableEntities`).selectById(t);i&&e.push(Sj({id:t,value:w(n)?n:i.groupId}))},Hj=(e,{payload:{id:t}},{collections:n})=>{let r=M(n).collection(`tableEntities`).selectById(t);r&&e.push(cj({id:t,x:r.ui.x,y:r.ui.y}))},Uj=()=>{},Wj={[J.addTable]:Fj,[J.removeTable]:Ij,[J.changeTableName]:Lj,[J.changeTableComment]:Bj,[J.changeTableGroup]:Vj,[J.moveToTable]:Hj,[J.sortTable]:Uj,[J.changeTableLogicalName]:Rj,[J.changeTableNameDerived]:zj},Gj=(e,t,n)=>{let r=n.filter(e=>e.type===oj.type);if(!r.length)return;let i=oe(r,e=>e.payload.ids.join(`,`));for(let[,n]of Object.entries(i)){let{payload:{ids:r}}=x(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(oj({ids:r,movementX:-1*i,movementY:-1*a})),t.push(oj({ids:r,movementX:i,movementY:a})))}},Kj=(e,t,n)=>{let r=n.filter(({type:e})=>e===bj.type);if(!r.length)return;let i=oe(r,e=>e.payload.id);for(let[n,r]of Object.entries(i)){let i=x(r),a=fe(r);e.push(bj({id:n,color:i.payload.prevColor,prevColor:a.payload.color})),t.push(bj({id:n,color:a.payload.color,prevColor:i.payload.prevColor}))}},qj={[J.moveTable]:Gj,[J.changeTableColor]:Kj},Jj=(e,{payload:{id:t,tableId:n}})=>{e.push(mv({id:t,tableId:n}))},Yj=(e,{payload:{id:t,tableId:n}})=>{e.push(fv({id:t,tableId:n}))},Xj=(e,{payload:{id:t,tableId:n}},{collections:r})=>{let i=M(r).collection(`tableColumnEntities`).selectById(t);i&&e.push(gv({id:t,tableId:n,value:i.name}))},Zj=(e,{payload:{id:t,tableId:n}},{collections:r})=>{let i=M(r).collection(`tableColumnEntities`).selectById(t);i&&e.push(bv({id:t,tableId:n,value:i.dataType}))},Qj=(e,{payload:{id:t,tableId:n}},{collections:r})=>{let i=M(r).collection(`tableColumnEntities`).selectById(t);i&&e.push(Cv({id:t,tableId:n,value:i.default}))},$j=(e,{payload:{id:t,tableId:n}},{collections:r})=>{let i=M(r).collection(`tableColumnEntities`).selectById(t);i&&e.push(vv({id:t,tableId:n,value:i.comment}))},eM=(e,{payload:{id:t,tableId:n,value:r}},{collections:i})=>{M(i).collection(`tableColumnEntities`).selectById(t)&&e.push(Tv({id:t,tableId:n,value:!r}))},tM=(e,{payload:{id:t,tableId:n,value:r}},{collections:i})=>{M(i).collection(`tableColumnEntities`).selectById(t)&&e.push(jv({id:t,tableId:n,value:!r}))},nM=(e,{payload:{id:t,tableId:n,value:r}},{collections:i})=>{M(i).collection(`tableColumnEntities`).selectById(t)&&e.push(Dv({id:t,tableId:n,value:!r}))},rM=(e,{payload:{id:t,tableId:n,value:r}},{collections:i})=>{M(i).collection(`tableColumnEntities`).selectById(t)&&e.push(kv({id:t,tableId:n,value:!r}))},iM=(e,{payload:{id:t,tableId:n}},{collections:r})=>{let i=M(r).collection(`tableColumnEntities`).selectById(t);i&&e.push(Nv({id:t,tableId:n,value:i.logicalName}))},aM=(e,{payload:{id:t,tableId:n}},{collections:r})=>{let i=M(r).collection(`tableColumnEntities`).selectById(t);i&&e.push(Fv({id:t,tableId:n,value:i.domainId}))},oM=(e,{payload:{id:t,tableId:n}},{collections:r})=>{let i=M(r).collection(`tableColumnEntities`).selectById(t);i&&e.push(Lv({id:t,tableId:n,value:G(i.options,L.nameDerived)}))},sM=(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(zv({id:t,tableId:n,targetId:l}))},cM={[H.addColumn]:Jj,[H.removeColumn]:Yj,[H.changeColumnName]:Xj,[H.changeColumnDataType]:Zj,[H.changeColumnDefault]:Qj,[H.changeColumnComment]:$j,[H.changeColumnAutoIncrement]:eM,[H.changeColumnNotNull]:tM,[H.changeColumnPrimaryKey]:nM,[H.changeColumnUnique]:rM,[H.moveColumn]:sM,[H.changeColumnLogicalName]:iM,[H.changeColumnDomain]:aM,[H.changeColumnNameDerived]:oM},lM={addTableGroup:`tableGroup.add`,moveTableGroup:`tableGroup.move`,moveToTableGroup:`tableGroup.moveTo`,removeTableGroup:`tableGroup.remove`,resizeTableGroup:`tableGroup.resize`,changeTableGroupName:`tableGroup.changeName`,changeTableGroupColor:`tableGroup.changeColor`,changeTableGroupZIndex:`tableGroup.changeZIndex`},uM=e=>W_({id:wg(),name:``,color:``,ui:{x:200,y:100,width:400,height:300,zIndex:1}},e??{}),dM=O(lM.addTableGroup),fM=({doc:e,collections:t,lww:n},{payload:{id:r,color:i,ui:a},version:o},{clock:s})=>{let c=o??s.getVersion();M(t).collection(`tableGroupEntities`).addOne(uM({id:r,ui:a,...w(i)?{color:i}:{}})).addOperator(n,c,r,()=>{B(e.tableGroupIds)(r)||e.tableGroupIds.push(r)})},pM=O(lM.moveTableGroup),mM=({collections:e},{payload:{ids:t,movementX:n,movementY:r}})=>{let i=M(e).collection(`tableGroupEntities`);for(let e of t)i.getOrCreate(e,e=>uM({id:e}));i.updateMany(t,e=>{e.ui.x=Ke(e.ui.x+n,4),e.ui.y=Ke(e.ui.y+r,4)})},hM=O(lM.moveToTableGroup),gM=({collections:e},{payload:{id:t,x:n,y:r}})=>{let i=M(e).collection(`tableGroupEntities`);i.getOrCreate(t,e=>uM({id:e})),i.updateOne(t,e=>{e.ui.x=n,e.ui.y=r})},_M=O(lM.removeTableGroup),vM=({doc:e,collections:t,lww:n},{payload:{id:r},version:i},{clock:a})=>{let o=i??a.getVersion();M(t).collection(`tableGroupEntities`).removeOperator(n,o,r,()=>{let t=e.tableGroupIds.indexOf(r);t!==-1&&e.tableGroupIds.splice(t,1)})},yM=O(lM.resizeTableGroup),bM=({collections:e},{payload:{id:t,x:n,y:r,width:i,height:a}})=>{let o=M(e).collection(`tableGroupEntities`);o.getOrCreate(t,e=>uM({id:e})),o.updateOne(t,e=>{e.ui.x=n,e.ui.y=r,e.ui.width=i,e.ui.height=a})},xM=O(lM.changeTableGroupName),SM=({collections:e,lww:t},{payload:{id:n,value:r},version:i},{clock:a})=>{let o=i??a.getVersion(),s=M(e).collection(`tableGroupEntities`);s.getOrCreate(n,e=>uM({id:e})),s.replaceOperator(t,o,n,`name`,()=>{s.updateOne(n,e=>{e.name=r})})},CM=O(lM.changeTableGroupColor),wM=({collections:e,lww:t},{payload:{id:n,color:r},version:i},{clock:a})=>{let o=i??a.getVersion(),s=M(e).collection(`tableGroupEntities`);s.getOrCreate(n,e=>uM({id:e})),s.replaceOperator(t,o,n,`color`,()=>{s.updateOne(n,e=>{e.color=r})})},TM=O(lM.changeTableGroupZIndex),EM=({collections:e},{payload:{id:t,zIndex:n}})=>{let r=M(e).collection(`tableGroupEntities`);r.getOrCreate(t,e=>uM({id:e})),r.updateOne(t,e=>{e.ui.zIndex=n})},DM={[lM.addTableGroup]:fM,[lM.moveTableGroup]:mM,[lM.moveToTableGroup]:gM,[lM.removeTableGroup]:vM,[lM.resizeTableGroup]:bM,[lM.changeTableGroupName]:SM,[lM.changeTableGroupColor]:wM,[lM.changeTableGroupZIndex]:EM},OM={addTableGroupAction:dM,moveTableGroupAction:pM,moveToTableGroupAction:hM,removeTableGroupAction:_M,resizeTableGroupAction:yM,changeTableGroupNameAction:xM,changeTableGroupColorAction:CM,changeTableGroupZIndexAction:TM},kM=(e,{payload:{id:t}})=>{e.push(_M({id:t}))},AM=(e,{payload:{id:t}},{collections:n})=>{let r=M(n).collection(`tableGroupEntities`).selectById(t);r&&e.push(dM({id:r.id,color:r.color,ui:{...r.ui}}))},jM=(e,{payload:{id:t}},{collections:n})=>{let r=M(n).collection(`tableGroupEntities`).selectById(t);r&&e.push(xM({id:t,value:r.name}))},MM=(e,{payload:{id:t}},{collections:n})=>{let r=M(n).collection(`tableGroupEntities`).selectById(t);r&&e.push(hM({id:t,x:r.ui.x,y:r.ui.y}))},NM=(e,{payload:{id:t}},{collections:n})=>{let r=M(n).collection(`tableGroupEntities`).selectById(t);if(!r)return;let{x:i,y:a,width:o,height:s}=r.ui;e.push(yM({id:t,x:i,y:a,width:o,height:s}))},PM={[lM.addTableGroup]:kM,[lM.removeTableGroup]:AM,[lM.changeTableGroupName]:jM,[lM.moveToTableGroup]:MM,[lM.resizeTableGroup]:NM},FM=(e,t,n)=>{let r=n.filter(e=>e.type===pM.type);if(!r.length)return;let i=oe(r,e=>e.payload.ids.join(`,`));for(let[,n]of Object.entries(i)){let{payload:{ids:r}}=x(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(pM({ids:r,movementX:-1*i,movementY:-1*a})),t.push(pM({ids:r,movementX:i,movementY:a})))}},IM=(e,t,n)=>{let r=n.filter(({type:e})=>e===CM.type);if(!r.length)return;let i=oe(r,e=>e.payload.id);for(let[n,r]of Object.entries(i)){let i=x(r),a=fe(r);e.push(CM({id:n,color:i.payload.prevColor,prevColor:a.payload.color})),t.push(CM({id:n,color:a.payload.color,prevColor:i.payload.prevColor}))}},LM={[lM.moveTableGroup]:FM,[lM.changeTableGroupColor]:IM};function RM(e,...t){try{return e?.(...t)}catch(e){console.error(e)}}const zM={...Wj,...cM,...YA,...yA,...ej,...mk,...jk,...Jk,...PM,...Zy},BM={...qj,...CA,...rj,...LM};function VM(e,t,n){let r=[],i=[];for(let t of n){let n=zM[t.type];n&&(n(r,t,e.state),i.push(ie(t)))}Xy(r);for(let e of Object.keys(BM))BM[e](r,i,n);r.length&&i.length&&t.push({undo:XM(e,r),redo:XM(e,i)})}function HM(e){return t=>({...ie(t),version:e})}const UM=({type:e,payload:t})=>e===H.changeColumnDomain&&t.value===``,WM=e=>new Set(e.filter(UM).map(({payload:e})=>e.id));function GM(e,t){let n=M(e.collections).collection(`tableColumnEntities`),r=/* @__PURE__ */ new Map;for(let{type:e,payload:n}of t)e===H.changeColumnDataType&&r.set(n.id,n.value);return e=>r.get(e)??n.selectById(e)?.dataType??``}function KM({doc:e,collections:t}){let n=M(t).collection(`tableColumnEntities`);return M(t).collection(`tableEntities`).selectByIds(e.tableIds).flatMap(({id:e,columnIds:t})=>n.selectByIds(t).filter(({domainId:e})=>e!==``).map(({id:t,domainId:n})=>({tableId:e,id:t,value:n})))}function qM({doc:e,collections:t}){let n=M(t).collection(`tableEntities`),r=new Set(e.tableIds),i=/* @__PURE__ */ new Map;return(e,t)=>{if(!r.has(e))return!1;let a=i.get(e)??new Set(n.selectById(e)?.columnIds);return i.set(e,a),a.has(t)}}function JM(e,t){let n=M(e.collections).collection(`tableEntities`),r=/* @__PURE__ */ new Map,i=/* @__PURE__ */ new Map,a=/* @__PURE__ */ new Map,o=new Set($M(t).keys()),s=!1;for(let{type:e,payload:o}of t)if(e===H.changeColumnDomain)a.set(o.id,o);else if(e===H.changeColumnDataType)i.set(o.id,o.tableId);else if(e===H.addColumn)r.set(o.id,o.tableId);else if(e===J.addTable)for(let e of n.selectById(o.id)?.columnIds??[])r.set(e,o.id);else e===U.loadJson&&(s||=WD(o));for(let{tableId:e,id:t,value:n}of a.values())n!==``&&r.set(t,e);if(s||o.size)for(let{tableId:t,id:n,value:i}of KM(e))(s||o.has(i))&&r.set(n,t);let c=qM(e),l=e=>new Map([...e].filter(([e,t])=>c(t,e)));return{governed:l(r),typed:l(i)}}function YM(e,{governed:t,typed:n}){let r=M(e.collections).collection(`tableColumnEntities`),i=Qv(e,/* @__PURE__ */ new Map),a=[],o=new Map(n);for(let[n,s]of t){let t=r.selectById(n);t?.domainId&&(A_(e.doc.domainIds,t.domainId)?t.dataType!==i(t.domainId)&&a.push({tableId:s,id:n,value:t.domainId}):o.set(n,s))}let s=a.length?ty(e,{links:a}):[],c=GM(e,s),l=WM(s),u=ey(e,[...o].map(([e,t])=>({tableId:t,id:e,value:c(e)}))).filter(({payload:e})=>!l.has(e.id));return[...s,...u]}const XM=(e,t)=>(n,r,i=()=>e.state)=>{n(t.map(HM(r())));let a=i(),o=YM(a,JM(a,t));o.length&&n(o.map(HM(r())))},ZM=(e,t)=>n=>{RM(VM,e,t,n)},QM=({type:e})=>e.startsWith(`dictionary.`);function $M(e){let t=/* @__PURE__ */ new Map;for(let{payload:n}of e.filter(QM)){let e=n?.values?.dataType;n?.kind===z.domain&&w(e)&&t.set(n.id,e)}return t}const eN=(e,t,n)=>(r,i,a=()=>e.state)=>{let o=a(),s=M(o.collections).collection(`tableColumnEntities`),c=n.links.filter(({link:e,dataType:t})=>{let n=s.selectById(e.id);return n?.domainId===``&&n.dataType===t}).map(({link:e})=>e),l=$M(t),u=ty(o,{domainTypes:l,links:c}),d=GM(o,u),f=Qv(o,l),p=c.filter(({id:e,value:t})=>!A_(o.doc.domainIds,t)&&d(e)===f(t)).map(Fv),m=WM(u),h=ey(o,KM(o).filter(({id:e,value:t})=>l.has(t)&&!A_(o.doc.domainIds,t)&&!m.has(e)).map(({tableId:e,id:t})=>({tableId:e,id:t,value:d(t)})),{domainTypes:l}),g=[...u,...p,...h];n.links=tN(o,g),r([...t,...g].map(HM(i())))};function tN(e,t){let n=M(e.collections).collection(`tableColumnEntities`),r=GM(e,t);return t.filter(UM).flatMap(({payload:{tableId:e,id:t}})=>{let i=n.selectById(t)?.domainId??``;return i===``?[]:[{link:{tableId:e,id:t,value:i},dataType:r(t)}]})}function nN(e,t,n){let r=n.filter(QM),i=[],a=[];for(let t of r){let n=zM[t.type];n&&(n(i,t,e.state),a.push(ie(t)))}if(Xy(i),!i.length||!a.length)return;let o={links:tN(e.state,n)};t.push({undo:eN(e,i,o),redo:eN(e,a,o)})}const rN=(e,t)=>n=>{RM(nN,e,t,n)},iN=(e,t)=>M(e).collection(`tableColumnEntities`).selectByIds(t.columnIds).filter(({options:e})=>G(e,L.primaryKey)),aN=e=>e.trim().toLowerCase(),oN=/^[\p{L}\p{M}\p{N}]+$/u,sN=/\p{Ll}\p{Lu}|\p{Lu}\p{Lu}\p{Ll}|[\p{Lo}\p{Lm}][\p{Lu}\p{Ll}]|[\p{Lu}\p{Ll}][\p{Lo}\p{Lm}]/u,cN=/[\p{M}\p{N}]/gu,lN=e=>oN.test(e)&&!sN.test(e.replace(cN,``));function uN(e,t){let n=e.trim(),r=t.trim();return!n||!lN(r)||aN(r)===aN(n)?r:`${n}_${r}`}function dN(e,t){let n=e;for(let r=2;t.has(aN(n));r++)n=`${e}_${r}`;return t.add(aN(n)),n}function fN(e,t,n){let r=new Set(n.map(aN).filter(Boolean)),i=t.map(t=>uN(e,t)),a=e=>i[e]===t[e].trim(),o=i.map((e,t)=>t),s=[...o.filter(a),...o.filter(e=>!a(e))].filter(e=>{let t=aN(i[e]),n=r.has(t);return t&&r.add(t),n}),c=[...i];for(let e of s)c[e]=dN(i[e],r);return c}const pN=(e,t,n,{startTableName:r,endColumnNames:i,database:a,domainIds:o=[]})=>{let s=fN(r,e.map(({name:e})=>e),i);return e.flatMap((e,r)=>{let i={id:n[r],tableId:t},c=Jv(e.dataType,a),l=c===e.dataType&&A_(o,e.domainId)?e.domainId:``;return[fv(i),jv({...i,value:!0}),gv({...i,value:s[r]}),bv({...i,value:c}),Cv({...i,value:e.default}),vv({...i,value:e.comment}),...e.logicalName?[Nv({...i,value:e.logicalName})]:[],...l?[Fv({...i,value:l})]:[]]})},mN={word:`word`,synonym:`synonym`,forbidden:`forbidden`,unregistered:`unregistered`},hN=/[\s_\-·/]+/u,gN=e=>sy(e).split(hN).filter(e=>e!==``),_N=e=>e.words.length>0||e.synonymOf.length>0||e.forbiddenOf.length>0;function vN(e,t,n){let r=e,i=null;for(let e=n;e<t.length&&(r=r.next.get(t.charCodeAt(e)),r);e++)r.marks&&_N(r.marks)&&(i={end:e+1,marks:r.marks});return i}function yN(e,t){return t.words.length?{text:e,kind:mN.word,words:t.words}:t.forbiddenOf.length?{text:e,kind:mN.forbidden,words:t.forbiddenOf}:{text:e,kind:mN.synonym,words:t.synonymOf}}const bN=e=>({text:e,kind:mN.unregistered,words:[]});function xN(e,t){let n=[];for(let r of gN(t)){let t=0,i=0;for(;i<r.length;){let a=vN(e.root,r,i);if(!a){i++;continue}t<i&&n.push(bN(r.slice(t,i))),n.push(yN(r.slice(i,a.end),a.marks)),i=a.end,t=i}t<r.length&&n.push(bN(r.slice(t)))}return n}function SN(e){if(e.length===0)return null;let t=[];for(let n of e){if(n.kind!==mN.word)return null;let e=n.words[0]?.abbreviation.trim()??``;if(!e)return null;t.push(e)}return t.join(`_`)}function CN(e,t){let n=Sy(e);return n.byName.size===0?null:SN(xN(n,t))}function wN(e,t){let n=sy(t);if(!n)return null;let r=Ty(e,n);if(r)return{physicalName:r.physicalName.trim()||(CN(e,n)??``),domainId:N_(e,r.domainId),term:r};let i=CN(e,n);return i?{physicalName:i,domainId:``,term:null}:null}function TN(e,t,n,r,i){let a=sy(r)!==``;if(i?!a:t.trim()!==``&&!n)return null;let o=wN(e,r),s=o?.physicalName||null;return{name:s!==null&&s!==t?s:null,flag:!n&&(i||s!==null),domainId:o?.domainId??``}}function EN(e,t,n){let r=t.get(n);if(!r){let{tableEntities:i,tableColumnEntities:a}=e.collections;r=/* @__PURE__ */ new Map;for(let e of i[n]?.columnIds??[]){let t=a[e];t&&r.set(e,aN(t.name))}t.set(n,r)}return r}function DN(e,t,n){for(let[r,i]of e)if(r!==t&&i===n)return!0;return!1}function ON(e,t,n,r,i=!1,a=/* @__PURE__ */ new Map){let o=TN(e,n.name,G(n.options,L.nameDerived),r,i);if(!o)return{actions:[],link:null};if(o.name!==null){let r=EN(e,a,t),i=aN(o.name);if(DN(r,n.id,i))return{actions:[],link:null};r.set(n.id,i)}let s={tableId:t,id:n.id},c=[];return o.name!==null&&c.push(gv({...s,value:o.name})),o.flag&&c.push(Lv({...s,value:!0})),{actions:c,link:o.domainId?{...s,value:o.domainId}:null}}function kN(e,t,n,r=!1){let i=TN(e,t.name,t.nameDerived,n,r);if(!i)return[];let a=[];return i.name!==null&&a.push(fj({id:t.id,value:i.name})),i.flag&&a.push(gj({id:t.id,value:!0})),a}function AN(e,t,n){let r=t;for(;r>0&&!Np(e[r-1].order);)r--;let i=r>0?e[r-1].order:null,a=t;for(;i!==null&&a<e.length&&Np(e[a].order)&&e[a].order<=i;)a++;let o=a<e.length&&Np(e[a].order)?e[a].order:null,s=e.slice(r,t),c=e.slice(t,a),l=zp(i,o,s.length+n+c.length),u=[],d=(e,t)=>{e.order!==t&&u.push({id:e.id,order:t})};return s.forEach((e,t)=>d(e,l[t])),c.forEach((e,t)=>d(e,l[s.length+n+t])),{keys:l.slice(s.length,s.length+n),rekeyed:u}}const jN={duplicateName:`duplicateName`,unknownDomain:`unknownDomain`},MN={[z.word]:Sy,[z.term]:Cy,[z.domain]:wy},NN=(e,t)=>Object.fromEntries(Py(e,t)),PN=({existing:e,values:t})=>w(t.name)&&(!e||e.name!==t.name),FN=({existing:e,values:t})=>sy(t.name??e?.name??``);function IN(e,t,n){let r=Ny(e,t),i=[];return n.forEach(({id:n,values:a},o)=>{if(n===void 0){i.push({index:o,existing:null,values:NN(t,a)});return}if(!A_(r,n))return;let s=My(e,t,n);s&&i.push({index:o,existing:s,values:NN(t,a)})}),i}function LN(e){let t=/* @__PURE__ */ new Set,n=/* @__PURE__ */ new Map;for(let r of e){if(!PN(r))continue;r.existing&&t.add(r.existing.id);let e=FN(r);e&&n.set(e,(n.get(e)??0)+1)}return{renamed:t,counts:n}}function RN(e,t,n,r){let i=[],a=FN(n),o=(e,t)=>i.push({code:e,index:n.index,name:a,value:t});a&&PN(n)&&((MN[t](e).byName.get(a)??[]).filter(({id:e})=>e!==n.existing?.id&&!r.renamed.has(e)).length||(r.counts.get(a)??0)>1)&&o(jN.duplicateName,a);let s=n.values.domainId;return t===z.term&&s&&s!==Reflect.get(n.existing??{},`domainId`)&&!A_(e.doc.domainIds,s)&&o(jN.unknownDomain,s),i}function zN(e,t,n,r){let i={...n.values},{existing:a}=n;if(t===z.term&&w(i.name)){let t=(i.physicalName??Reflect.get(a??{},`physicalName`)??``).trim()?null:CN(e,i.name);t&&(i.physicalName=t)}let o=r?RN(e,t,{...n,values:i},r):[],s=Object.fromEntries(Object.entries(i).filter(([e,t])=>a?Reflect.get(a,e)!==t:t!==``)),c=Object.keys(s).length>0;return a?{action:c?zy({kind:t,id:a.id,values:s}):null,refusals:o,domainType:t===z.domain&&w(s.dataType)?{id:a.id,dataType:s.dataType}:null}:{action:Ly({kind:t,id:wg(),...c?{values:s}:{}}),refusals:o,domainType:null}}function BN(e,t,n){let r=n.filter(({existing:e,values:t})=>!e&&!t.order);if(!r.length)return[];let i=my(e,t),{keys:a,rekeyed:o}=AN(i,i.length,r.length);return r.forEach(({values:e},t)=>{e.order=a[t]}),o}const VN=(e,t)=>t.map(({id:t,order:n})=>zy({kind:e,id:t,values:{order:n}}));function HN(e,t){let n=/* @__PURE__ */ new Map,r=[];for(let{action:e,domainType:i}of t)e&&r.push(e),i&&n.set(i.id,i.dataType);return n.size&&r.push(...ty(e,{domainTypes:n})),r}function UN(e,t,n){let r=IN(e,t,n),i=BN(e,t,r),a=LN(r),o=r.map(n=>zN(e,t,n,a)),s=o.flatMap(({refusals:e})=>e);return{actions:s.length?[]:[...VN(t,i),...HN(e,o)],refusals:s}}function WN(e,t,n){let r=/* @__PURE__ */ new Map;for(let e of n){let t=sy(e.name);t&&r.set(t,e)}let i=MN[t](e),a=/* @__PURE__ */ new Map,o=[];for(let[n,s]of r){let r=NN(t,s),c=Reflect.get(s,`domain`);if(t===z.term&&w(c)){let t=sy(c),n=t?Ey(e,t):void 0;r.domainId=n?.id??``,t&&!n&&!a.has(t)&&a.set(t,c.trim())}let l=i.byName.get(n)?.[0]??null;o.push({index:0,existing:l,values:r})}let s=BN(e,t,o),c=[],l=0,u=0;for(let n of o){let r=zN(e,t,n);r.action&&(c.push(r),n.existing?u++:l++)}return{actions:[...VN(t,s),...HN(e,c)],added:l,updated:u,folded:n.length-r.size,unknownDomains:[...a.values()]}}const GN=(e,t)=>M(e.collections).collection(`tableEntities`).selectById(t),KN=(e,t)=>M(e.collections).collection(`tableColumnEntities`).selectById(t);function*qN(e,t,n){if(!Ay(t))return;let{actions:r}=UN(e,t,n);r.length&&(yield r)}const JN=(e,t={})=>function*(n){yield*qN(n,e,[{values:t}])},YN=(e,t,n)=>function*(r){yield*qN(r,e,[{id:t,values:n}])},XN=(e,t)=>function*(n){if(!Ay(e))return;let r=Ny(n,e),i=new Set(t.filter(e=>A_(r,e)));if(!i.size)return;let a=[];for(let e=r.length-1;e>=0;e--)i.has(r[e])&&a.push(r[e]);yield a.map(t=>Vy({kind:e,id:t}))},ZN=(e,t)=>function*(n){yield*qN(n,e,t)},QN=(e,t)=>function*(n){if(!Ay(e))return;let{actions:r}=WN(n,e,t);r.length&&(yield r)};function $N(e,t){let n=[],r=[],i=/* @__PURE__ */ new Map;for(let{tableId:a,columnId:o,logicalName:s}of t){let t=KN(e,o);if(!t)continue;let c=s??t.logicalName;s!==null&&s!==t.logicalName&&n.push(Nv({tableId:a,id:o,value:c}));let l=ON(e,a,t,c,!1,i);n.push(...l.actions),l.link&&r.push(l.link)}return r.length&&n.push(...ty(e,{links:r})),n}function eP(e,t,n){let r=GN(e,t);if(!r)return[];let i=n??r.logicalName,a=n!==null&&n!==r.logicalName?[mj({id:t,value:i})]:[];return a.push(...kN(e,r,i)),a}const tP=(e,t,n)=>function*(r){let i=$N(r,[{tableId:e,columnId:t,logicalName:n}]);i.length&&(yield i)},nP=(e,t)=>function*(n){let r=eP(n,e,t);r.length&&(yield r)},rP=(e,t)=>function*(n){let r=$N(n,[{tableId:e,columnId:t,logicalName:null}]);r.length&&(yield r)},iP=e=>function*(t){let n=eP(t,e,null);n.length&&(yield n)},aP={column:`column`,table:`table`,selection:`selection`,document:`document`};function oP(e,t){let{doc:n,editor:r}=e,i=new Set(n.tableIds),a=e=>i.has(e);switch(t.scope){case aP.table:return a(t.tableId)?[t.tableId]:[];case aP.selection:return Object.entries(r.selectedMap).filter(([e,t])=>t===Qy.table&&a(e)).map(([e])=>e);case aP.document:return[...n.tableIds];default:return[]}}const sP={addDictionaryEntryAction$:JN,updateDictionaryEntryAction$:YN,removeDictionaryEntriesAction$:XN,importDictionaryAction$:QN,commitDictionaryCellsAction$:ZN,setColumnLogicalNameAction$:tP,setTableLogicalNameAction$:nP,deriveColumnNameAction$:rP,deriveTableNameAction$:iP,rederiveNamesAction$:e=>function*(t){let n=[],r=[],i=/* @__PURE__ */ new Map,a=(e,a)=>{let o=KN(t,a);if(!o)return;let s=ON(t,e,o,o.logicalName,!0,i);n.push(...s.actions),s.link&&r.push(s.link)};e.scope===aP.column&&a(e.tableId,e.columnId);for(let r of oP(t,e)){let e=GN(t,r);if(e){n.push(...kN(t,e,e.logicalName,!0));for(let t of e.columnIds)a(r,t)}}r.length&&n.push(...ty(t,{links:r})),n.length&&(yield n)},setColumnDomainAction$:(e,t,n)=>function*(r){if(!KN(r,t)||n!==``&&!A_(r.doc.domainIds,n))return;let i=ty(r,{links:[{tableId:e,id:t,value:n}]});i.length&&(yield i)}},cP=()=>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=QE(e,i,a),s=wg();yield QU(),yield zD({[s]:Qy.memo}),yield Zk({id:s,ui:{...o,zIndex:XE(i,a)}})},lP=e=>function*({doc:{memoIds:t},editor:{selectedMap:n}}){if(e){yield rA({id:e});return}let r=B(t),i=Object.entries(n).filter(([e,t])=>t===Qy.memo&&r(e));for(let[e]of i)yield rA({id:e})},uP=(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 QU()),yield zD({[e]:Qy.memo}),yield dA({id:e,zIndex:XE(a,o)})},dP={addMemoAction$:cP,removeMemoAction$:lP,selectMemoAction$:uP};B(Object.values({tables:`tables`,columns:`columns`}));const fP=({x:e,y:t})=>`${e},${t}`,pP=(e,t)=>e<t?-1:+(e>t),mP=({kind:e})=>+(e===`memo`),hP=e=>e.ui.zIndex??0;function gP({entities:e,offset:t,escapeCollision:n,settings:r,tables:i,memos:a,findSource:o}){let s=/* @__PURE__ */ new Map;if(e.length===0)return s;let c=new Set([...i,...a].map(({ui:e})=>fP(e))),l=/* @__PURE__ */ 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=QE(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)=>pP(e.sourceId,t.sourceId));for(let{sourceId:e}of t){let t=l.get(e);if(t){for(;c.has(fP(t));)t.x+=50,t.y+=50;c.add(fP(t))}}}let d=XE(i,a);return[...e].sort((e,t)=>hP(e)-hP(t)||mP(e)-mP(t)||pP(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`,columnLogicalName:`columnLogicalName`,columnDomain:`columnDomain`}));function _P(e,t,n){let r={show:e,nameViewMode:n},i=ob(r);return t.filter(e=>pb[e]?.(r)===!0).map(e=>i&&e===P.columnName?P.columnLogicalName:e)}const vP=()=>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=QE(e,i,a),s=wg();yield LD(),yield zD({[s]:Qy.table}),yield ij({id:s,ui:{...o,zIndex:XE(i,a)}}),yield eO({tableId:s})},yP=e=>function*({doc:{tableIds:t,relationshipIds:n,indexIds:r},editor:{selectedMap:i},collections:a}){let o=M(a).collection(`relationshipEntities`).selectByIds(n),s=M(a).collection(`indexEntities`).selectByIds(r);if(e){let t=o.filter(({start:t,end:n})=>t.tableId===e||n.tableId===e),n=s.filter(({tableId:t})=>t===e);for(let{id:e}of n)yield yk({id:e});for(let{id:e}of t)yield OA({id:e});yield uj({id:e});return}let c=B(t),l=Object.entries(i).filter(([e,t])=>t===Qy.table&&c(e)).map(([e])=>e),u=B(l),d=o.filter(({start:e,end:t})=>u(e.tableId)||u(t.tableId)),f=s.filter(({tableId:e})=>u(e));for(let{id:e}of f)yield yk({id:e});for(let{id:e}of d)yield OA({id:e});for(let e of l)yield uj({id:e})},bP=(e,t)=>function*({doc:{tableIds:n,memoIds:r,domainIds:i},collections:a,editor:{drawRelationship:o},settings:{database:s}}){let c=M(a).collection(`tableEntities`),l=c.selectByIds(n),u=M(a).collection(`memoEntities`).selectByIds(r);if(t||(yield LD()),yield zD({[e]:Qy.table}),yield wj({id:e,zIndex:XE(l,u)}),yield eO({tableId:e}),o){if(o.start){let t=c.selectById(o.start.tableId),n=c.selectById(e);if(!t||!n){yield kO();return}let r=M(a).collection(`tableColumnEntities`),l=iN(a,t);if(!l.length){yield kO();return}let u=l.map(()=>wg());yield pN(l,n.id,u,{startTableName:t.name,endColumnNames:r.selectByIds(n.columnIds).map(({name:e})=>e),database:s,domainIds:i}),yield EA({id:wg(),relationshipType:o.relationshipType,start:{tableId:t.id,columnIds:l.map(({id:e})=>e)},end:{tableId:n.id,columnIds:u}}),yield kO()}else yield tW(e)}},xP={name:!0,logicalName:!0,dataType:!0,domain:!0};function SP(e,t){let n=t.includes(P.columnDataType);return{name:t.includes(P.columnName),logicalName:t.includes(P.columnLogicalName),dataType:n,domain:t.includes(P.columnDomain)||n&&lb(e)}}function CP(e,t,n){return n.flatMap(n=>{switch(n){case P.columnDefault:return[Cv({...e,value:t.default})];case P.columnComment:return[vv({...e,value:t.comment})];case P.columnAutoIncrement:return[Tv({...e,value:G(t.options,L.autoIncrement)})];case P.columnUnique:return[kv({...e,value:G(t.options,L.unique)})];case P.columnNotNull:return[jv({...e,value:G(t.options,L.notNull)})];default:return[]}})}function wP(e,t,n,r,i){let a=[],o=n?G(n.options,L.nameDerived):!1,s=t=>e.collections.domainEntities[t]?.dataType??``;i.name&&(a.push(gv({...t,value:r.name})),o&&a.push(Lv({...t,value:!1})));let c=i.domain?P_(e,r.domainId,r.dataType):null,l=i.dataType?r.dataType:null;if(i.logicalName){a.push(Nv({...t,value:r.logicalName}));let u={...r,id:t.id,name:i.name?r.name:n?.name??``,options:!i.name&&o?L.nameDerived:0},d=ON(e,t.tableId,u,r.logicalName),f=d.link?.value??``;a.push(...d.actions),f&&!c&&(!l||s(f)===l)&&(c=f)}if(c){let e=s(c);return n?.domainId!==c&&a.push(Fv({...t,value:c})),(l!==null||n?.dataType!==e)&&a.push(bv({...t,value:e})),a}return c===``&&n?.domainId!==``&&a.push(Fv({...t,value:``})),l!==null&&(a.push(bv({...t,value:l})),c===null&&a.push(...ey(e,[{...t,value:l}]))),a}const TP={addTableAction$:vP,removeTableAction$:yP,selectTableAction$:bP,pasteTableAction$:e=>function*(t){let{editor:{selectedMap:n,focusTable:r},settings:i,collections:a}=t,o=r&&!CD(r.focusType),s=Object.entries(n).filter(([,e])=>e===Qy.table).map(([e])=>e).filter(e=>!o||e!==r?.tableId);for(let n of s)for(let r of e){let e={id:wg(),tableId:n};yield[fv(e),Cv({...e,value:r.default}),vv({...e,value:r.comment}),jv({...e,value:G(r.options,L.notNull)}),kv({...e,value:G(r.options,L.unique)}),Tv({...e,value:G(r.options,L.autoIncrement)}),...wP(t,e,void 0,r,xP)]}if(!r||!o)return;let c=M(a).collection(`tableEntities`).selectById(r.tableId);if(!c)return;let l=c.columnIds.filter(B(r.selectColumnIds));if(l.length===0)return;let u=c.columnIds.slice(c.columnIds.indexOf(l[l.length-1])+1),d=[...l,...u],f=_P(i.show,i.columnOrder,i.nameViewMode),p=SP(i,f),m=M(a).collection(`tableColumnEntities`);yield aO();for(let n=0;n<d.length;n++){let i=d[n],a=e[n];if(!a)break;let o={id:i,tableId:c.id};yield[...CP(o,a,f),...wP(t,o,m.selectById(i),a,p),rO({tableId:c.id,columnId:i,focusType:r.focusType,$mod:!0,shiftKey:!1})]}let h=e.slice(d.length);for(let e of h){let n=wg(),i={id:n,tableId:c.id};yield[fv(i),...CP(i,e,f),...wP(t,i,void 0,e,p),rO({tableId:c.id,columnId:n,focusType:r.focusType,$mod:!0,shiftKey:!1})]}},sortTablesToMoveAction$:()=>function*(e,t){let{doc:n,collections:r}=e,i=M(r).collection(`tableEntities`).selectByIds(n.tableIds).map(e=>({...e,ui:{...e.ui}})),a=M(r).collection(`tableGroupEntities`).selectByIds(n.tableGroupIds).map(e=>({...e,ui:{...e.ui}})),o={...e,collections:{...r,tableEntities:Object.fromEntries(i.map(e=>[e.id,e])),tableGroupEntities:Object.fromEntries(a.map(e=>[e.id,e]))}};Nj[J.sortTable](o,{type:J.sortTable,payload:void 0},t);let s=new Set(i.map(e=>jC(o,e)));yield i.map(({id:e,ui:{x:t,y:n}})=>cj({id:e,x:t,y:n})),yield a.filter(({id:e})=>s.has(e)).map(({id:e,ui:{x:t,y:n,width:r,height:i}})=>yM({id:e,x:t,y:n,width:r,height:i}))},changeTableNameAction$:(e,t)=>function*({collections:n}){let r=M(n).collection(`tableEntities`).selectById(e);yield[fj({id:e,value:t}),...r?.nameDerived?[gj({id:e,value:!1})]:[]]}},EP=B([W.columnNotNull,W.columnUnique,W.columnAutoIncrement]),DP=B([W.columnName,W.columnLogicalName,W.columnDataType,W.columnDefault,W.columnComment]),OP=e=>function*({editor:{selectedMap:t}}){if(e){let t=wg();yield fv({id:t,tableId:e}),yield rO({tableId:e,columnId:t,focusType:W.columnName,$mod:!1,shiftKey:!1});return}let n=Object.entries(t).filter(([,e])=>e===Qy.table).map(([e])=>({tableId:e,id:wg()}));for(let e of n)yield fv(e);let r=fe(n);r&&(yield rO({tableId:r.tableId,columnId:r.id,focusType:W.columnName,$mod:!1,shiftKey:!1}))},kP=(e,t)=>function*(n){let{doc:{relationshipIds:r,indexIds:i},editor:{focusTable:a},collections:o}=n;if(a?.columnId){let e=gD(n,t);e?yield rO({tableId:a.tableId,columnId:e,focusType:a.focusType,$mod:!1,shiftKey:!1}):yield eO({tableId:a.tableId,focusType:W.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 yk({id:e});for(let{id:e}of c)yield OA({id:e});for(let n of t)yield mv({id:n,tableId:e})},AP=(e,t,n)=>function*({collections:r}){if(!EP(e))return;let i=M(r).collection(`tableColumnEntities`).selectById(n);if(i)switch(e){case W.columnNotNull:yield jv({id:n,tableId:t,value:!G(i.options,L.notNull)});break;case W.columnUnique:yield kv({id:n,tableId:t,value:!G(i.options,L.unique)});break;case W.columnAutoIncrement:yield Tv({id:n,tableId:t,value:!G(i.options,L.autoIncrement)})}},jP=e=>function*(t){yield ty(t,{dataTypes:[e]})},MP=(e,t,n,r)=>function*({collections:i}){if(!DP(e))return;let a=M(i).collection(`tableColumnEntities`).selectById(n);if(!a)return;let o={id:n,tableId:t,value:r};switch(e){case W.columnName:yield[gv(o),...G(a.options,L.nameDerived)?[Lv({...o,value:!1})]:[]];break;case W.columnLogicalName:yield Nv(o);break;case W.columnDataType:yield jP(o);break;case W.columnDefault:yield Cv(o);break;case W.columnComment:yield vv(o)}},NP=(e,t)=>function*({collections:n}){let r=M(n).collection(`tableEntities`).selectById(e);if(!r)return;let i=M(n).collection(`tableColumnEntities`).selectByIds(t.filter(B(r.columnIds))),a=({options:e})=>G(e,L.primaryKey),o=!i.every(a);yield i.filter(e=>a(e)!==o).map(({id:t})=>Dv({tableId:e,id:t,value:o}))},PP={addColumnAction$:OP,removeColumnAction$:kP,toggleColumnValueAction$:AP,changeColumnDataTypeAction$:jP,changeColumnValueAction$:MP,changeColumnPrimaryKeyAction$:(e,t)=>NP(e,[t]),changeColumnsPrimaryKeyAction$:NP};function FP(e){return Object.entries(e).reduce((e,[t,n])=>(n===Qy.table?e.tableIds.push(t):n===Qy.memo?e.memoIds.push(t):n===Qy.tableGroup&&e.tableGroupIds.push(t),e),{tableIds:[],memoIds:[],tableGroupIds:[]})}const IP=({doc:e,collections:t})=>M(t).collection(`tableGroupEntities`).selectByIds(e.tableGroupIds);function*LP(e,t,n,{name:r,color:i}){let a=wg(),{x:o,y:s,width:c,height:l}=t;yield QU(),yield zD({[a]:Qy.tableGroup}),yield dM({id:a,...i?{color:i}:{},ui:{x:o,y:s,width:c,height:l,zIndex:WC(IP(e))}}),r&&(yield xM({id:a,value:r})),yield n.map(e=>Sj({id:e,value:a}))}const RP=(e,t={})=>function*(n){let{doc:r,collections:i}=n;yield*LP(n,e,M(i).collection(`tableEntities`).selectByIds(r.tableIds).filter(t=>!jC(n,t)&&HC(VC(n,t),e)).map(({id:e})=>e),t)},zP=(e,t={})=>function*(n){let r=be(e??FP(n.editor.selectedMap).tableIds).filter(B(n.doc.tableIds)),i=BC(n,r);i&&(yield*LP(n,i,r,t))},BP=e=>function*(t){let{doc:{tableGroupIds:n},editor:{selectedMap:r}}=t,i=B(n),a=e?[e]:Object.entries(r).filter(([e,t])=>t===Qy.tableGroup&&i(e)).map(([e])=>e);for(let e of a)yield NC(t,e).map(e=>Sj({id:e,value:``})),yield _M({id:e})};function VP(e,t,n){return be([...n,...t.flatMap(t=>NC(e,t))])}function HP(e,t,n,r){return[...e.length?[pM({ids:e,movementX:n,movementY:r})]:[],...t.length?[oj({ids:t,movementX:n,movementY:r})]:[]].map(e=>Wx(Ux.drag,e))}const UP=(e,t,n)=>function*(r){yield HP(e,VP(r,e,[]),t,n)},WP=(e,t)=>function*({doc:n,collections:r}){(!t||n.tableGroupIds.includes(t))&&(yield M(r).collection(`tableEntities`).selectByIds(be(e).filter(B(n.tableIds))).filter(e=>e.groupId!==t).map(({id:e})=>Sj({id:e,value:t})))};function GP(e,t){if(!GC(e))return[];let{doc:n,collections:r,editor:i}=e,{tableIds:a,tableGroupIds:o}=FP(i.selectedMap),s=new Set(n.tableIds),c=a.filter(e=>s.has(e));if(!c.length)return[];let l=new Set(o.flatMap(t=>NC(e,t))),u=c.filter(e=>!l.has(e));if(!u.length)return[];let d=new Set(o),f=RC(e,{excludeTableIds:u});t?.forEach((e,t)=>{let n=f.get(t);n&&!d.has(t)&&f.set(t,tC(n,e))});let p=M(r).collection(`tableEntities`).selectByIds(u),m=UC(e,p.map(t=>VC(e,t)),{boxes:f});return p.map((e,t)=>{let n=m[t]?.id??``;return{table:e,groupId:n,box:f.get(n)??null}})}const KP=e=>function*(t){yield GP(t,e).filter(({table:e,groupId:n})=>n!==jC(t,e)).map(({table:e,groupId:t})=>Wx(Ux.drag,Sj({id:e.id,value:t,prevValue:e.groupId})))},qP=(e,t)=>function*(n){t||(yield QU()),yield zD({[e]:Qy.tableGroup}),yield TM({id:e,zIndex:WC(IP(n))}),yield JP(n,e)};function JP(e,t){let{doc:{tableIds:n,memoIds:r},collections:i}=e,a=B(NC(e,t)),o=M(i).collection(`tableEntities`).selectByIds(n),s=o.filter(e=>a(e.id)).sort((e,t)=>e.ui.zIndex-t.ui.zIndex),c=[...o.filter(e=>!a(e.id)),...M(i).collection(`memoEntities`).selectByIds(r)],l=Math.max(1,...c.map(({ui:e})=>e.zIndex))+1;return s.every(({ui:e})=>e.zIndex>=l)?[]:s.map((e,t)=>wj({id:e.id,zIndex:l+t}))}const YP={addTableGroupAction$:RP,addTableGroupFromTablesAction$:zP,removeTableGroupAction$:BP,moveTableGroupAction$:UP,setTableGroupAction$:WP,dropTablesIntoGroupsAction$:KP,selectTableGroupAction$:qP,selectTableGroupTablesAction$:e=>function*(t){yield QU(),yield zD(Object.fromEntries(NC(t,e).map(e=>[e,Qy.table])))}};function XP(e,t){return t.x>=e.x&&t.y>=e.y&&t.x+t.w<=e.x+e.w&&t.y+t.h<=e.y+e.h}function ZP(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)}const QP=/[\s_]+/g;function $P(e){let t=e.trim().replace(QP,` `).toUpperCase(),n=Object.entries(__).find(([,e])=>e===t);return n?Number(n[0]):a_.none}const eF={[a_.noAction]:`NA`,[a_.cascade]:`C`,[a_.setNull]:`SN`,[a_.setDefault]:`SD`,[a_.restrict]:`R`};function tF({onDelete:e,onUpdate:t}){return[eF[e]?`D:${eF[e]}`:``,eF[t]?`U:${eF[t]}`:``].filter(Boolean).join(` `)}function nF({onDelete:e,onUpdate:t}){return[__[e]?`ON DELETE ${__[e]}`:``,__[t]?`ON UPDATE ${__[t]}`:``].filter(Boolean).join(`
|
|
3
|
+
`)}function rF(e,t){for(let n of e)if(n.name.toUpperCase()===t.toUpperCase())return n;return null}const iF={[F.MariaDB]:`VARCHAR(255)`,[F.MSSQL]:`varchar(255)`,[F.MySQL]:`VARCHAR(255)`,[F.Oracle]:`VARCHAR2(255)`,[F.PostgreSQL]:`varchar(255)`,[F.SQLite]:`TEXT`,[F.Databricks]:`STRING`,[F.Snowflake]:`VARCHAR(255)`};function aF(e,t,n,r=[]){let i=cF(e,n,r);return i.members?sF(i.members,t)??iF[t]??i.typeName:i.typeName}function oF(e,t,n,r=[]){let{members:i}=cF(e,t,r);return!i||sF(i,n)!==void 0?``:` ${e}: ${i.join(` | `)}`}function sF(e,t){if(t===F.MySQL||t===F.MariaDB)return`ENUM(${e.map(e=>`'${e.replace(/'/g,`''`)}'`).join(`,`)})`}function cF(e,t,n){if(n.length)return{typeName:e,members:n};let r=/* @__PURE__ */ new Set,i=e;for(;!r.has(i);){r.add(i);let e=lF(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 lF(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 uF={database:``,catalog:``,schema:``},dF=mF(uF);function fF(e,t,n){let r=jh({}),i=pF(e.entities),a=e.entities.map(a=>_F(r,t,e,n,a,i(a)));return bF(r,t,a,e,gF(e.entities,a)),TF(r,a),r}function pF(e){let t=new Set(e.map(e=>mF(e.namespace)));return e=>{let n=mF(e.namespace);return t.size>1&&n!==dF?`${hF(e.namespace)}_${e.name}`:e.name}}function mF({database:e,catalog:t,schema:n}){return`${e}.${t}.${n}`}function hF({database:e,catalog:t,schema:n}){return[e,t,n].filter(e=>e!==``).join(`_`)}function gF(e,t){let n=/* @__PURE__ */ 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=mF(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=mF(e.namespace);return n.get(`${t}.${e.entityName}`.toLowerCase())??(t===dF?n.get(e.entityName.toLowerCase())??null:null)}}function _F({doc:e,collections:t},n,r,i,a,o){let{toWidth:s}=n,c=uv(o),l=uv(a.comment),u=G_({name:c,comment:l,ui:{widthName:V(s(c)),widthComment:V(s(l)),color:a.color}}),d={source:a,table:u,columns:[]};return a.attributes.forEach(e=>{let n=uv(e.path),a=aF(e.typeName,i,r,e.enumValues),o=`${uv(e.comment)}${oF(e.typeName,r,i,e.enumValues)}`.trim(),c=uv(e.default);yF(t,d,K_({tableId:u.id,name:n,comment:o,dataType:a,default:c,options:(e.autoIncrement?L.autoIncrement:0)|(e.primaryKey?L.primaryKey:0)|(vF(e)?L.unique:0)|(e.notNull?L.notNull:0),ui:{widthName:V(s(n)),widthComment:V(s(o)),widthDataType:V(s(a)),widthDefault:V(s(c)),keys:e.primaryKey?R.primaryKey:0}}))}),e.tableIds.push(u.id),M(t).collection(`tableEntities`).setOne(u),d}function vF(e){return e.indexes.some(e=>e.unique&&e.name===``)}function yF(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 bF(e,t,n,r,i){let a=/* @__PURE__ */ new Set;r.relations.forEach(r=>{let o=i(r.src),s=i(r.ref);if(!o||!s)return;let c=xF(o,r.src),l=xF(s,r.ref);if(c.length!==0&&l.length!==0&&c.length===l.length){if(r.srcCardinality===`n`&&r.refCardinality===`n`){CF(e,t,n,o,s);return}SF(e,t,a,{parent:s,parentColumns:l,child:o,childColumns:c,toMany:r.refCardinality===`n`,onDelete:$P(r.onDelete),onUpdate:$P(r.onUpdate)})}})}function xF(e,t){if(t.attributePaths.length===0)return fS(e.columns);let n=[];for(let r of t.attributePaths){let t=rF(e.columns,r);if(!t)return[];n.push(t)}return n}function SF({doc:e,collections:t},{toWidth:n},r,{parent:i,parentColumns:a,child:o,childColumns:s,toMany:c,onDelete:l,onUpdate:u}){let d=`${i.table.id}:${o.table.id}:${s.map(e=>e.id).join(`,`)}`;if(r.has(d))return;r.add(d);let f=s.every(e=>G(e.options,L.notNull));s.forEach((e,t)=>{if(e.dataType===``){let{dataType:r}=a[t];e.dataType=r,e.ui.widthDataType=V(n(r))}e.ui.keys=G(e.ui.keys,R.primaryKey)?e.ui.keys|R.foreignKey:R.foreignKey});let p=TA({identification:s.every(e=>G(e.ui.keys,R.primaryKey)&&G(e.ui.keys,R.foreignKey)),relationshipType:c?f?r_.OneN:r_.ZeroN:f?r_.OneOnly:r_.ZeroOne,onDelete:l,onUpdate:u,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(p.id),M(t).collection(`relationshipEntities`).setOne(p)}function CF(e,t,n,r,i){let{doc:a,collections:o}=e,{toWidth:s}=t,c=fS(r.columns),l=fS(i.columns);if(!c.length||!l.length)return;let u=pS(n.map(e=>e.table),``,`${r.table.name}_${i.table.name}`),d=`Junction table inferred from ${r.table.name} <-> ${i.table.name}`,f=G_({name:u,comment:d,ui:{widthName:V(s(u)),widthComment:V(s(d))}}),p={source:{namespace:uF,name:u,alias:``,comment:d,color:``,attributes:[]},table:f,columns:[]};a.tableIds.push(f.id),M(o).collection(`tableEntities`).setOne(f),n.push(p),wF(e,t,p,r,c),wF(e,t,p,i,l)}function wF(e,{toWidth:t},n,r,i){let{doc:a,collections:o}=e,s=i.map(e=>{let i=pS(n.columns,``,`${r.table.name}_${e.name}`),{dataType:a}=e,s=K_({tableId:n.table.id,name:i,dataType:a,options:L.primaryKey|L.notNull,ui:{keys:R.primaryKey|R.foreignKey,widthName:V(t(i)),widthDataType:V(t(a))}});return yF(o,n,s),s}),c=TA({identification:!0,relationshipType:r_.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 TF({doc:e,collections:t},n){n.forEach(({source:n,table:r,columns:i})=>{let a=/* @__PURE__ */ 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:gk({name:uv(e.name),tableId:r.id}),indexColumns:[]};s.index.unique=s.index.unique||e.unique,s.indexColumns.push(Nk({indexId:s.index.id,columnId:n.id,orderType:o_.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 EF={identifier:1,quoted:2,string:3,expression:4,number:5,punctuation:6,doc:7,comment:8,newline:9},DF=/[ \t\f\v]/,OF=/[0-9]/,kF=/[A-Za-z_\u0080-\uffff]/,AF=/[0-9A-Za-z_#\u0080-\uffff]/,jF=/^[ \t]*/,MF=/\\#/g,NF={n:`
|
|
4
|
+
`};function PF(e){let t=[],n=0,r=1,i=FF(e,0),a=(e,n)=>{t.push({kind:e,value:n,line:r,depth:i})};for(t.push({kind:EF.newline,value:``,line:0,depth:i});n<e.length;){let t=e[n];if(DF.test(t)){n+=1;continue}if(t===`\r`||t===`
|
|
4
5
|
`){t===`\r`&&e[n+1]===`
|
|
5
|
-
`&&(n+=1),n+=1,i=
|
|
6
|
+
`&&(n+=1),n+=1,i=FF(e,n),a(EF.newline,`
|
|
6
7
|
`),r+=1;continue}if(t===`#`){let t=n+1;for(;t<e.length&&e[t]!==`
|
|
7
|
-
`&&e[t]!==`\r`;)t+=1;a(
|
|
8
|
-
`||t===`\r`)break;if(t!==` `&&e[n+1]===`#`){r.push(t,`#`),n+=2;continue}if(t===`#`)break;r.push(t),n+=1}return{value:
|
|
9
|
-
`).length-1}}function
|
|
10
|
-
`||t===`\r`))break;let c=e[o+1];if(r&&t===`\\`&&c!==void 0){a.push(
|
|
11
|
-
`&&(s+=1),a.push(t),o+=1}return{value:a.join(``),index:o,lines:s,terminated:!1}}function
|
|
8
|
+
`&&e[t]!==`\r`;)t+=1;a(EF.comment,e.slice(n+1,t).trim()),n=t;continue}if(t===`|`){if(e.startsWith(`|||`,n)){let t=LF(e,n+3);a(EF.doc,BF(t.value)),n=t.index,r+=t.lines;continue}let t=IF(e,n+1);a(EF.doc,t.value),n=t.index;continue}if(t===`"`){let t=RF(e,n+1,`"`,!0,!1);a(EF.quoted,t.value),n=t.index;continue}if(t===`'`){let t=RF(e,n+1,`'`,!0,!1);a(EF.string,t.value),n=t.index;continue}if(t==="`"){let t=RF(e,n+1,"`",!1,!0);a(EF.expression,t.value),n=t.index,r+=t.lines;continue}if(OF.test(t)){let t=n;for(;t<e.length&&OF.test(e[t]);)t+=1;if(e[t]===`.`&&OF.test(e[t+1]??``))for(t+=1;t<e.length&&OF.test(e[t]);)t+=1;a(EF.number,e.slice(n,t)),n=t;continue}if(kF.test(t)){let t=n+1;for(;t<e.length&&AF.test(e[t]);)t+=1;for(;t>n&&e[t-1]===`#`;)--t;a(EF.identifier,e.slice(n,t)),n=t;continue}a(EF.punctuation,t),n+=1}return t}function FF(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 IF(e,t){let n=t;for(;n<e.length&&DF.test(e[n]);)n+=1;if(n>t&&e[n]===`"`){let t=RF(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===`
|
|
9
|
+
`||t===`\r`)break;if(t!==` `&&e[n+1]===`#`){r.push(t,`#`),n+=2;continue}if(t===`#`)break;r.push(t),n+=1}return{value:zF(r.join(``).trim().replace(MF,`#`)),index:n}}function LF(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(`
|
|
10
|
+
`).length-1}}function RF(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===`
|
|
11
|
+
`||t===`\r`))break;let c=e[o+1];if(r&&t===`\\`&&c!==void 0){a.push(NF[c]??c),o+=2;continue}t===`
|
|
12
|
+
`&&(s+=1),a.push(t),o+=1}return{value:a.join(``),index:o,lines:s,terminated:!1}}function zF(e){let t=e[0];return e.length>1&&(t===`"`||t===`'`)&&e.endsWith(t)?e.slice(1,-1):e}function BF(e){let t=e.replace(/\r\n|\r/g,`
|
|
12
13
|
`).split(`
|
|
13
|
-
`);t[0]?.trim()===``&&t.shift(),t.length&&t[t.length-1].trim()===``&&t.pop();let n=t.filter(e=>e.trim()!==``).map(e=>(
|
|
14
|
-
`)}const oj=/* @__PURE__ */ new Set([`as`,`check`,`false`,`fk`,`index`,`namespace`,`null`,`nullable`,`pk`,`rel`,`true`,`type`,`unique`]),sj=/* @__PURE__ */ new Set([`false`,`null`,`true`]),cj=/^-?\d+$/;function lj(e){try{return{ok:!0,model:fj(uj($A(e)))}}catch(e){return{ok:!1,message:e instanceof Error?e.message:`Invalid AML`}}}function uj(e){let t=[],n=null;return e.forEach(e=>{if(e.kind===GA.newline){n={depth:e.depth,tokens:[]},t.push(n);return}n?.tokens.push(e)}),t}function dj(e){let t=0;return{peek:(n=0)=>e[t+n]??null,next:()=>e[t++]??null,atEnd:()=>t>=e.length}}function fj(e){let t={entities:[],relations:[],types:{},skipped:[]},n=/* @__PURE__ */ new Set,r=e=>{e!==``&&!n.has(e)&&(n.add(e),t.skipped.push(e))},i=kA,a=null,o={path:[],depth:0};return e.forEach(e=>{let n=dj(e.tokens),s=n.peek();if(!s)return;if(e.depth>=0){a!==null&&mj(n,e.depth,a,o,t,r);return}let c=s.kind===GA.identifier?s.value.toLowerCase():``;if(c===`namespace`){n.next(),i=kj(n);return}if(c===`rel`||c===`fk`){n.next();let e=bj(n,i,r);e&&t.relations.push(e);return}if(c===`type`){n.next(),Oj(n,i,t,r);return}if(!Hj(s))return;let l=pj(n,i,r);l&&(t.entities.push(l),a=l,o={path:[],depth:0})}),t}function pj(e,t,n){let r=Aj(e);if(r.name===``)return null;let i=e.peek();i&&Gj(i,`*`)&&(e.next(),n(`view`));let a=Mj(e),o=Nj(e,n,`entity`);return{namespace:zj(t,r.namespace),name:r.name,alias:a,comment:o.doc||o.comment,color:o.color,attributes:[]}}function mj(e,t,n,r,i,a){let o=Rj(e);if(o===``)return;let s=gj(e),c={path:hj(r,t,o),comment:``,typeName:s.typeName,enumValues:s.enumValues,notNull:!0,primaryKey:!1,indexes:[],default:s.default,autoIncrement:!1},l=e.peek();l&&Uj(l,`nullable`)&&(e.next(),c.notNull=!1),_j(e,c,n,i,a);let u=Nj(e,a);c.comment=u.doc||u.comment,c.autoIncrement=u.autoIncrement,n.attributes.push(c)}function hj(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 gj(e){let t=Rj(e);if(t===``)return{typeName:``,enumValues:[],default:``};let n=t,r=[],i=e.peek();if(i&&Gj(i,`(`)){e.next();let{values:i,numeric:a}=Ij(e);i.length!==0&&i.length<=2&&a?n=`${t}(${i.join(`,`)})`:r=i}let a=e.peek();return a&&Gj(a,`=`)?(e.next(),{typeName:n,enumValues:r,default:Lj(e)}):{typeName:n,enumValues:r,default:``}}function _j(e,t,n,r,i){let a=()=>{let i=xj(e);return i?(r.relations.push({src:{namespace:n.namespace,entityName:n.name,attributePaths:[t.path]},...i,onDelete:``,onUpdate:``}),!0):!1};for(;!e.atEnd();){let n=e.peek();if(!n)return;if(n.kind===GA.identifier){let r=n.value.toLowerCase();if(r===`pk`){e.next(),yj(e),t.primaryKey=!0;continue}if(r===`unique`||r===`index`){e.next(),t.indexes.push({name:yj(e),unique:r===`unique`});continue}if(r===`check`){e.next(),vj(e),i(`check`);continue}if(r===`fk`&&a())continue;return}if(!(Wj(n)&&a()))return}}function vj(e){let t=e.peek();t&&Gj(t,`(`)&&(e.next(),Vj(e,`(`,`)`)),yj(e)}function yj(e){let t=e.peek();return!t||!Gj(t,`=`)?``:(e.next(),Rj(e))}function bj(e,t,n){let r=wj(e),i=xj(e),{onDelete:a,onUpdate:o}=Nj(e,n,`relation`);return!i||r.entityName===``?null:{src:Bj(r.namespace)?{...r,namespace:t}:r,...i,onDelete:a,onUpdate:o}}function xj(e){let t=e.peek();if(t&&Uj(t,`fk`)){e.next();let t=wj(e);return t.entityName===``?null:{ref:t,srcCardinality:`n`,refCardinality:`1`,polymorphic:!1}}let n=Sj(e);if(n===null)return null;let r=Cj(e);r&&(Ej(e),e.next(),Lj(e));let i=Sj(e)??`n`,a=wj(e);return a.entityName===``?null:{ref:a,srcCardinality:i,refCardinality:n,polymorphic:r}}function Sj(e){let t=e.peek();return!t||!Wj(t)?null:(e.next(),t.value===`-`?`1`:`n`)}function Cj(e){let t=0;for(;;){let n=e.peek(t);if(!n||!Hj(n))return!1;t+=1;let r=e.peek(t);if(!r||!Gj(r,`.`))break;t+=1}let n=e.peek(t);return n!==null&&Gj(n,`=`)}function wj(e){let t=Aj(e),n=e.peek();if(n&&Gj(n,`(`))return e.next(),{namespace:t.namespace,entityName:t.name,attributePaths:Tj(e)};if(t.namespace.schema===``)return{namespace:kA,entityName:t.name,attributePaths:[]};let r=[t.name,...Dj(e)].join(`.`);return{namespace:{database:``,catalog:``,schema:t.namespace.catalog},entityName:t.namespace.schema,attributePaths:[r]}}function Tj(e){let t=[];for(;!e.atEnd();){let n=e.peek();if(!n||Gj(n,`)`)){e.next();break}if(Hj(n)){t.push(Ej(e));continue}e.next()}return t}function Ej(e){let t=[Rj(e)];for(;!e.atEnd();){let n=e.peek();if(!n||!Gj(n,`.`))break;e.next();let r=Rj(e);if(r===``)break;t.push(r)}return t.join(`.`)}function Dj(e){let t=[];for(;!e.atEnd();){let n=e.peek();if(!n||!Gj(n,`:`))break;e.next();let r=Rj(e);if(r===``)break;t.push(r)}return t}function Oj(e,t,n,r){let i=Aj(e);if(i.name===``)return;let a={values:[],alias:``},o=e.peek();o&&Gj(o,`(`)?(e.next(),a.values=Ij(e).values):o&&Gj(o,`{`)?(e.next(),Vj(e,`{`,`}`),r(`struct type`)):o&&o.kind===GA.expression?(e.next(),r(`custom type`)):o&&Hj(o)&&(a.alias=Rj(e)),Nj(e,r);let s=zj(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 kj(e){let t=Rj(e);if(t===``)return kA;let n=jj(e),r=jj(e);return n&&r?{database:t,catalog:n.name,schema:r.name}:n?{database:``,catalog:t,schema:n.name}:{database:``,catalog:``,schema:t}}function Aj(e){let t=Rj(e);if(t===``)return{namespace:kA,name:``};let n=jj(e),r=jj(e),i=jj(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:kA,name:t}}function jj(e){let t=e.peek();return!t||!Gj(t,`.`)?null:(e.next(),{name:Rj(e)})}function Mj(e){let t=e.peek();return!t||!Uj(t,`as`)?``:(e.next(),Rj(e))}function Nj(e,t,n=`other`){let r={autoIncrement:!1,doc:``,comment:``,onDelete:``,onUpdate:``,color:``};for(;!e.atEnd();){let i=e.next();if(!i)break;if(Gj(i,`{`)){Pj(e,r,t,n);continue}if(i.kind===GA.doc&&r.doc===``){r.doc=i.value;continue}i.kind===GA.comment&&r.comment===``&&(r.comment=i.value)}return r}function Pj(e,t,n,r){for(;!e.atEnd();){let i=e.next();if(!i||Gj(i,`}`))return;if(i.kind!==GA.identifier&&i.kind!==GA.quoted)continue;let a=e.peek(),o=``;a&&(Gj(a,`:`)||Gj(a,`=`))&&(e.next(),o=Fj(e));let s=i.value.toLowerCase(),c=r===`entity`&&s===`color`?Ey(o):``;r===`relation`&&s===`ondelete`?t.onDelete=o:r===`relation`&&s===`onupdate`?t.onUpdate=o:s===`autoincrement`?t.autoIncrement=!0:c===``?n(i.value):t.color=c}}function Fj(e){let t=[],n=0;for(;!e.atEnd();){let r=e.peek();if(!r||n===0&&(Gj(r,`,`)||Gj(r,`}`)))break;e.next(),Gj(r,`[`)?n+=1:Gj(r,`]`)&&--n,t.push(r.value)}return t.join(` `)}function Ij(e){let t=[],n=!0;for(;!e.atEnd();){let r=e.peek();if(!r||Gj(r,`)`)){e.next();break}if(Gj(r,`,`)){e.next();continue}let i=Lj(e);t.push(i),n=n&&r.kind!==GA.quoted&&cj.test(i)}return{values:t,numeric:n}}function Lj(e){let t=e.peek();if(!t)return``;if(Gj(t,`-`)&&e.peek(1)?.kind===GA.number)return e.next(),`-${e.next()?.value??``}`;switch(e.next(),t.kind){case GA.expression:return`\`${t.value}\``;case GA.string:return`'${t.value}'`;case GA.identifier:return sj.has(t.value.toLowerCase())?t.value.toLowerCase():t.value;default:return t.value}}function Rj(e){let t=e.peek();return!t||!Hj(t)?``:(e.next(),t.value)}function zj(e,t){return{database:t.database||e.database,catalog:t.catalog||e.catalog,schema:t.schema||e.schema}}function Bj(e){return e.database===``&&e.catalog===``&&e.schema===``}function Vj(e,t,n){let r=1;for(;!e.atEnd()&&r!==0;){let i=e.next();if(!i)break;Gj(i,t)?r+=1:Gj(i,n)&&--r}}function Hj(e){return e.kind===GA.quoted||e.kind===GA.identifier&&!oj.has(e.value.toLowerCase())}function Uj(e,t){return e.kind===GA.identifier&&e.value.toLowerCase()===t}function Wj(e){return e.kind===GA.punctuation&&(e.value===`-`||e.value===`<`||e.value===`>`)}function Gj(e,t){return e.kind===GA.punctuation&&e.value===t}const Kj={entities:[],relations:[],types:{},skipped:[]};function qj(e,t,n){let r=lj(e),i=r.ok?r.model:Kj,a=Nm({}),{settings:o}=n?n(a):a,s=jA(i,t,o.database);return s.settings=o,Ah(s)}const Jj={[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 Yj(e,t,n,r){let i=Qj(e,t,r);return i?Zj(i,n)??Jj[n]??e:e}function Xj(e,t,n,r){let i=Qj(e,t,n);return!i||Zj(i,r)!==void 0?``:` ${e}: ${i.join(` | `)}`}function Zj(e,t){if(t===I.MySQL||t===I.MariaDB)return`ENUM(${e.map(e=>`'${e.replace(/'/g,`''`)}'`).join(`,`)})`}function Qj(e,t,n){let r=t?`${t}.${e}`:``;return n.enums[r]??n.enums[e]??null}const $j=`public`;function eM(e,t,n){let r=Nm({}),i=tM(e.tables),a=e.tables.map(a=>iM(r,t,e,n,a,i(a))),o=rM(e.tables,a);return oM(r,t,a,e,o),dM(r,a),fM(r,e,o),r}function tM(e){let t=new Set(e.map(e=>nM(e.schemaName)));return e=>{let n=nM(e.schemaName);return t.size>1&&n!==$j?`${n}_${e.name}`:e.name}}function nM(e){return e===``?$j:e}function rM(e,t){let n=/* @__PURE__ */ 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=nM(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=nM(e.schemaName);return n.get(`${t}.${e.tableName}`.toLowerCase())??(e.schemaName===``?n.get(e.tableName.toLowerCase())??null:null)}}function iM({doc:e,collections:t},n,r,i,a,o){let{toWidth:s}=n,c=v_(o),l=v_(a.comment),u=lD({name:c,comment:l,ui:{widthName:G(s(c)),widthComment:G(s(l)),color:a.color}}),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=v_(e.name),a=e.primaryKey||f.has(n.toUpperCase()),o=Yj(e.typeName,e.typeSchemaName,i,r),c=`${v_(e.comment)}${Xj(e.typeName,e.typeSchemaName,r,i)}`.trim(),l=v_(e.default);aM(t,d,YD({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:G(s(n)),widthComment:G(s(c)),widthDataType:G(s(o)),widthDefault:G(s(l)),keys:a?z.primaryKey:0}}))}),e.tableIds.push(u.id),N(t).collection(`tableEntities`).setOne(u),d}function aM(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 oM(e,t,n,r,i){let a=/* @__PURE__ */ new Set,o=t=>cM(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=sM(s,a.target);if(l.length!==1)return;if(a.operator===`<>`){lM(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=sM(a,r.left),l=sM(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===`<>`){lM(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!==`-`,onDelete:vA(r.onDelete),onUpdate:vA(r.onUpdate)})})}function sM(e,t){let n=[];for(let r of t.columnNames){let t=SA(e.columns,r);if(!t)return[];n.push(t)}return n}function cM({doc:e,collections:t},n,{parent:r,parentColumns:i,child:a,childColumns:o,toMany:s,onDelete:c=$h.none,onUpdate:l=$h.none}){if(i.length===0||o.length===0)return;let u=`${r.table.id}:${a.table.id}:${o.map(e=>e.id).join(`,`)}`;if(n.has(u))return;n.add(u);let d=o.every(e=>U(e.options,R.notNull));o.forEach(e=>{e.ui.keys=U(e.ui.keys,z.primaryKey)?e.ui.keys|z.foreignKey:z.foreignKey});let f=AE({identification:o.every(e=>U(e.ui.keys,z.primaryKey)&&U(e.ui.keys,z.foreignKey)),relationshipType:s?d?Zh.OneN:Zh.ZeroN:d?Zh.OneOnly:Zh.ZeroOne,onDelete:c,onUpdate:l,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(f.id),N(t).collection(`relationshipEntities`).setOne(f)}function lM(e,t,n,r,i){let{doc:a,collections:o}=e,{toWidth:s}=t,c=xv(r.columns),l=xv(i.columns);if(!c.length||!l.length)return;let u=Sv(n.map(e=>e.table),``,`${r.table.name}_${i.table.name}`),d=`Junction table inferred from ${r.table.name} <-> ${i.table.name}`,f=lD({name:u,comment:d,ui:{widthName:G(s(u)),widthComment:G(s(d))}}),p={source:{schemaName:``,name:u,alias:``,comment:d,color:``,columns:[],indexes:[]},table:f,columns:[]};a.tableIds.push(f.id),N(o).collection(`tableEntities`).setOne(f),n.push(p),uM(e,t,p,r,c),uM(e,t,p,i,l)}function uM(e,{toWidth:t},n,r,i){let{doc:a,collections:o}=e,s=i.map(e=>{let i=Sv(n.columns,``,`${r.table.name}_${e.name}`),{dataType:a}=e,s=YD({tableId:n.table.id,name:i,dataType:a,options:R.primaryKey|R.notNull,ui:{keys:z.primaryKey|z.foreignKey,widthName:G(t(i)),widthDataType:G(t(a))}});return aM(o,n,s),s}),c=AE({identification:!0,relationshipType:Zh.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 dM({doc:e,collections:t},n){n.forEach(({source:n,table:r,columns:i})=>{n.indexes.forEach(n=>{if(n.primaryKey)return;let a=bT({name:v_(n.name),tableId:r.id,unique:n.unique}),o=[];n.columnNames.forEach(e=>{let t=SA(i,e);t&&o.push(LT({indexId:a.id,columnId:t.id,orderType:eg.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))})})}function fM({doc:e,collections:t},n,r){let i=/* @__PURE__ */ new Set;n.tableGroups.forEach(n=>{let a=[];if(n.tables.forEach(e=>{let t=r(e);t&&!i.has(t.table.id)&&(i.add(t.table.id),a.push(t.table))}),!a.length)return;let o=PO({name:v_(n.name),color:n.color,ui:{zIndex:e.tableGroupIds.length+1}});a.forEach(e=>{e.groupId=o.id}),e.tableGroupIds.push(o.id),N(t).collection(`tableGroupEntities`).setOne(o)})}const J={identifier:1,quoted:2,string:3,expression:4,number:5,punctuation:6,operator:7,newline:8},pM=/[ \t\f\v]/,mM=/[0-9]/,hM=/[A-Za-z_\u0080-\uffff]/,gM=/[0-9A-Za-z_\u0080-\uffff]/,_M=/^[ \t]*/,vM={n:`
|
|
15
|
-
`,r:`\r`,t:` `,b:`\b`,f:`\f`,v:`\v`,0:`\0`};function
|
|
16
|
-
`)};for(;n<e.length;){let t=e[n];if(r=n,
|
|
14
|
+
`);t[0]?.trim()===``&&t.shift(),t.length&&t[t.length-1].trim()===``&&t.pop();let n=t.filter(e=>e.trim()!==``).map(e=>(jF.exec(e)?.[0]??``).length),r=n.length?Math.min(...n):0;return t.map(e=>e.slice(r)).join(`
|
|
15
|
+
`)}const VF=/* @__PURE__ */ new Set([`as`,`check`,`false`,`fk`,`index`,`namespace`,`null`,`nullable`,`pk`,`rel`,`true`,`type`,`unique`]),HF=/* @__PURE__ */ new Set([`false`,`null`,`true`]),UF=/^-?\d+$/;function WF(e){try{return{ok:!0,model:qF(GF(PF(e)))}}catch(e){return{ok:!1,message:e instanceof Error?e.message:`Invalid AML`}}}function GF(e){let t=[],n=null;return e.forEach(e=>{if(e.kind===EF.newline){n={depth:e.depth,tokens:[]},t.push(n);return}n?.tokens.push(e)}),t}function KF(e){let t=0;return{peek:(n=0)=>e[t+n]??null,next:()=>e[t++]??null,atEnd:()=>t>=e.length}}function qF(e){let t={entities:[],relations:[],types:{},skipped:[]},n=/* @__PURE__ */ new Set,r=e=>{e!==``&&!n.has(e)&&(n.add(e),t.skipped.push(e))},i=uF,a=null,o={path:[],depth:0};return e.forEach(e=>{let n=KF(e.tokens),s=n.peek();if(!s)return;if(e.depth>=0){a!==null&&YF(n,e.depth,a,o,t,r);return}let c=s.kind===EF.identifier?s.value.toLowerCase():``;if(c===`namespace`){n.next(),i=uI(n);return}if(c===`rel`||c===`fk`){n.next();let e=tI(n,i,r);e&&t.relations.push(e);return}if(c===`type`){n.next(),lI(n,i,t,r);return}if(!CI(s))return;let l=JF(n,i,r);l&&(t.entities.push(l),a=l,o={path:[],depth:0})}),t}function JF(e,t,n){let r=dI(e);if(r.name===``)return null;let i=e.peek();i&&EI(i,`*`)&&(e.next(),n(`view`));let a=pI(e),o=mI(e,n,`entity`);return{namespace:bI(t,r.namespace),name:r.name,alias:a,comment:o.doc||o.comment,color:o.color,attributes:[]}}function YF(e,t,n,r,i,a){let o=yI(e);if(o===``)return;let s=ZF(e),c={path:XF(r,t,o),comment:``,typeName:s.typeName,enumValues:s.enumValues,notNull:!0,primaryKey:!1,indexes:[],default:s.default,autoIncrement:!1},l=e.peek();l&&wI(l,`nullable`)&&(e.next(),c.notNull=!1),QF(e,c,n,i,a);let u=mI(e,a);c.comment=u.doc||u.comment,c.autoIncrement=u.autoIncrement,n.attributes.push(c)}function XF(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 ZF(e){let t=yI(e);if(t===``)return{typeName:``,enumValues:[],default:``};let n=t,r=[],i=e.peek();if(i&&EI(i,`(`)){e.next();let{values:i,numeric:a}=_I(e);i.length!==0&&i.length<=2&&a?n=`${t}(${i.join(`,`)})`:r=i}let a=e.peek();return a&&EI(a,`=`)?(e.next(),{typeName:n,enumValues:r,default:vI(e)}):{typeName:n,enumValues:r,default:``}}function QF(e,t,n,r,i){let a=()=>{let i=nI(e);return i?(r.relations.push({src:{namespace:n.namespace,entityName:n.name,attributePaths:[t.path]},...i,onDelete:``,onUpdate:``}),!0):!1};for(;!e.atEnd();){let n=e.peek();if(!n)return;if(n.kind===EF.identifier){let r=n.value.toLowerCase();if(r===`pk`){e.next(),eI(e),t.primaryKey=!0;continue}if(r===`unique`||r===`index`){e.next(),t.indexes.push({name:eI(e),unique:r===`unique`});continue}if(r===`check`){e.next(),$F(e),i(`check`);continue}if(r===`fk`&&a())continue;return}if(!(TI(n)&&a()))return}}function $F(e){let t=e.peek();t&&EI(t,`(`)&&(e.next(),SI(e,`(`,`)`)),eI(e)}function eI(e){let t=e.peek();return!t||!EI(t,`=`)?``:(e.next(),yI(e))}function tI(e,t,n){let r=aI(e),i=nI(e),{onDelete:a,onUpdate:o}=mI(e,n,`relation`);return!i||r.entityName===``?null:{src:xI(r.namespace)?{...r,namespace:t}:r,...i,onDelete:a,onUpdate:o}}function nI(e){let t=e.peek();if(t&&wI(t,`fk`)){e.next();let t=aI(e);return t.entityName===``?null:{ref:t,srcCardinality:`n`,refCardinality:`1`,polymorphic:!1}}let n=rI(e);if(n===null)return null;let r=iI(e);r&&(sI(e),e.next(),vI(e));let i=rI(e)??`n`,a=aI(e);return a.entityName===``?null:{ref:a,srcCardinality:i,refCardinality:n,polymorphic:r}}function rI(e){let t=e.peek();return!t||!TI(t)?null:(e.next(),t.value===`-`?`1`:`n`)}function iI(e){let t=0;for(;;){let n=e.peek(t);if(!n||!CI(n))return!1;t+=1;let r=e.peek(t);if(!r||!EI(r,`.`))break;t+=1}let n=e.peek(t);return n!==null&&EI(n,`=`)}function aI(e){let t=dI(e),n=e.peek();if(n&&EI(n,`(`))return e.next(),{namespace:t.namespace,entityName:t.name,attributePaths:oI(e)};if(t.namespace.schema===``)return{namespace:uF,entityName:t.name,attributePaths:[]};let r=[t.name,...cI(e)].join(`.`);return{namespace:{database:``,catalog:``,schema:t.namespace.catalog},entityName:t.namespace.schema,attributePaths:[r]}}function oI(e){let t=[];for(;!e.atEnd();){let n=e.peek();if(!n||EI(n,`)`)){e.next();break}if(CI(n)){t.push(sI(e));continue}e.next()}return t}function sI(e){let t=[yI(e)];for(;!e.atEnd();){let n=e.peek();if(!n||!EI(n,`.`))break;e.next();let r=yI(e);if(r===``)break;t.push(r)}return t.join(`.`)}function cI(e){let t=[];for(;!e.atEnd();){let n=e.peek();if(!n||!EI(n,`:`))break;e.next();let r=yI(e);if(r===``)break;t.push(r)}return t}function lI(e,t,n,r){let i=dI(e);if(i.name===``)return;let a={values:[],alias:``},o=e.peek();o&&EI(o,`(`)?(e.next(),a.values=_I(e).values):o&&EI(o,`{`)?(e.next(),SI(e,`{`,`}`),r(`struct type`)):o&&o.kind===EF.expression?(e.next(),r(`custom type`)):o&&CI(o)&&(a.alias=yI(e)),mI(e,r);let s=bI(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 uI(e){let t=yI(e);if(t===``)return uF;let n=fI(e),r=fI(e);return n&&r?{database:t,catalog:n.name,schema:r.name}:n?{database:``,catalog:t,schema:n.name}:{database:``,catalog:``,schema:t}}function dI(e){let t=yI(e);if(t===``)return{namespace:uF,name:``};let n=fI(e),r=fI(e),i=fI(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:uF,name:t}}function fI(e){let t=e.peek();return!t||!EI(t,`.`)?null:(e.next(),{name:yI(e)})}function pI(e){let t=e.peek();return!t||!wI(t,`as`)?``:(e.next(),yI(e))}function mI(e,t,n=`other`){let r={autoIncrement:!1,doc:``,comment:``,onDelete:``,onUpdate:``,color:``};for(;!e.atEnd();){let i=e.next();if(!i)break;if(EI(i,`{`)){hI(e,r,t,n);continue}if(i.kind===EF.doc&&r.doc===``){r.doc=i.value;continue}i.kind===EF.comment&&r.comment===``&&(r.comment=i.value)}return r}function hI(e,t,n,r){for(;!e.atEnd();){let i=e.next();if(!i||EI(i,`}`))return;if(i.kind!==EF.identifier&&i.kind!==EF.quoted)continue;let a=e.peek(),o=``;a&&(EI(a,`:`)||EI(a,`=`))&&(e.next(),o=gI(e));let s=i.value.toLowerCase(),c=r===`entity`&&s===`color`?vC(o):``;r===`relation`&&s===`ondelete`?t.onDelete=o:r===`relation`&&s===`onupdate`?t.onUpdate=o:s===`autoincrement`?t.autoIncrement=!0:c===``?n(i.value):t.color=c}}function gI(e){let t=[],n=0;for(;!e.atEnd();){let r=e.peek();if(!r||n===0&&(EI(r,`,`)||EI(r,`}`)))break;e.next(),EI(r,`[`)?n+=1:EI(r,`]`)&&--n,t.push(r.value)}return t.join(` `)}function _I(e){let t=[],n=!0;for(;!e.atEnd();){let r=e.peek();if(!r||EI(r,`)`)){e.next();break}if(EI(r,`,`)){e.next();continue}let i=vI(e);t.push(i),n=n&&r.kind!==EF.quoted&&UF.test(i)}return{values:t,numeric:n}}function vI(e){let t=e.peek();if(!t)return``;if(EI(t,`-`)&&e.peek(1)?.kind===EF.number)return e.next(),`-${e.next()?.value??``}`;switch(e.next(),t.kind){case EF.expression:return`\`${t.value}\``;case EF.string:return`'${t.value}'`;case EF.identifier:return HF.has(t.value.toLowerCase())?t.value.toLowerCase():t.value;default:return t.value}}function yI(e){let t=e.peek();return!t||!CI(t)?``:(e.next(),t.value)}function bI(e,t){return{database:t.database||e.database,catalog:t.catalog||e.catalog,schema:t.schema||e.schema}}function xI(e){return e.database===``&&e.catalog===``&&e.schema===``}function SI(e,t,n){let r=1;for(;!e.atEnd()&&r!==0;){let i=e.next();if(!i)break;EI(i,t)?r+=1:EI(i,n)&&--r}}function CI(e){return e.kind===EF.quoted||e.kind===EF.identifier&&!VF.has(e.value.toLowerCase())}function wI(e,t){return e.kind===EF.identifier&&e.value.toLowerCase()===t}function TI(e){return e.kind===EF.punctuation&&(e.value===`-`||e.value===`<`||e.value===`>`)}function EI(e,t){return e.kind===EF.punctuation&&e.value===t}const DI={entities:[],relations:[],types:{},skipped:[]};function OI(e,t,n){let r=WF(e),i=r.ok?r.model:DI,a=jh({}),{settings:o}=n?n(a):a,s=fF(i,t,o.database);return s.settings=o,Mg(s)}const kI={[F.MariaDB]:`VARCHAR(255)`,[F.MSSQL]:`varchar(255)`,[F.MySQL]:`VARCHAR(255)`,[F.Oracle]:`VARCHAR2(255)`,[F.PostgreSQL]:`varchar(255)`,[F.SQLite]:`TEXT`,[F.Databricks]:`STRING`,[F.Snowflake]:`VARCHAR(255)`};function AI(e,t,n,r){let i=NI(e,t,r);return i?MI(i,n)??kI[n]??e:e}function jI(e,t,n,r){let i=NI(e,t,n);return!i||MI(i,r)!==void 0?``:` ${e}: ${i.join(` | `)}`}function MI(e,t){if(t===F.MySQL||t===F.MariaDB)return`ENUM(${e.map(e=>`'${e.replace(/'/g,`''`)}'`).join(`,`)})`}function NI(e,t,n){let r=t?`${t}.${e}`:``;return n.enums[r]??n.enums[e]??null}const PI=`public`;function FI(e,t,n){let r=jh({}),i=II(e.tables),a=e.tables.map(a=>zI(r,t,e,n,a,i(a))),o=RI(e.tables,a);return VI(r,t,a,e,o),KI(r,a),qI(r,e,o),r}function II(e){let t=new Set(e.map(e=>LI(e.schemaName)));return e=>{let n=LI(e.schemaName);return t.size>1&&n!==PI?`${n}_${e.name}`:e.name}}function LI(e){return e===``?PI:e}function RI(e,t){let n=/* @__PURE__ */ 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=LI(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=LI(e.schemaName);return n.get(`${t}.${e.tableName}`.toLowerCase())??(e.schemaName===``?n.get(e.tableName.toLowerCase())??null:null)}}function zI({doc:e,collections:t},n,r,i,a,o){let{toWidth:s}=n,c=uv(o),l=uv(a.comment),u=G_({name:c,comment:l,ui:{widthName:V(s(c)),widthComment:V(s(l)),color:a.color}}),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=uv(e.name),a=e.primaryKey||f.has(n.toUpperCase()),o=AI(e.typeName,e.typeSchemaName,i,r),c=`${uv(e.comment)}${jI(e.typeName,e.typeSchemaName,r,i)}`.trim(),l=uv(e.default);BI(t,d,K_({tableId:u.id,name:n,comment:c,dataType:o,default:l,options:(e.autoIncrement?L.autoIncrement:0)|(a?L.primaryKey:0)|(e.unique?L.unique:0)|(e.notNull?L.notNull:0),ui:{widthName:V(s(n)),widthComment:V(s(c)),widthDataType:V(s(o)),widthDefault:V(s(l)),keys:a?R.primaryKey:0}}))}),e.tableIds.push(u.id),M(t).collection(`tableEntities`).setOne(u),d}function BI(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 VI(e,t,n,r,i){let a=/* @__PURE__ */ new Set,o=t=>UI(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=HI(s,a.target);if(l.length!==1)return;if(a.operator===`<>`){WI(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=HI(a,r.left),l=HI(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===`<>`){WI(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!==`-`,onDelete:$P(r.onDelete),onUpdate:$P(r.onUpdate)})})}function HI(e,t){let n=[];for(let r of t.columnNames){let t=rF(e.columns,r);if(!t)return[];n.push(t)}return n}function UI({doc:e,collections:t},n,{parent:r,parentColumns:i,child:a,childColumns:o,toMany:s,onDelete:c=a_.none,onUpdate:l=a_.none}){if(i.length===0||o.length===0)return;let u=`${r.table.id}:${a.table.id}:${o.map(e=>e.id).join(`,`)}`;if(n.has(u))return;n.add(u);let d=o.every(e=>G(e.options,L.notNull));o.forEach(e=>{e.ui.keys=G(e.ui.keys,R.primaryKey)?e.ui.keys|R.foreignKey:R.foreignKey});let f=TA({identification:o.every(e=>G(e.ui.keys,R.primaryKey)&&G(e.ui.keys,R.foreignKey)),relationshipType:s?d?r_.OneN:r_.ZeroN:d?r_.OneOnly:r_.ZeroOne,onDelete:c,onUpdate:l,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(f.id),M(t).collection(`relationshipEntities`).setOne(f)}function WI(e,t,n,r,i){let{doc:a,collections:o}=e,{toWidth:s}=t,c=fS(r.columns),l=fS(i.columns);if(!c.length||!l.length)return;let u=pS(n.map(e=>e.table),``,`${r.table.name}_${i.table.name}`),d=`Junction table inferred from ${r.table.name} <-> ${i.table.name}`,f=G_({name:u,comment:d,ui:{widthName:V(s(u)),widthComment:V(s(d))}}),p={source:{schemaName:``,name:u,alias:``,comment:d,color:``,columns:[],indexes:[]},table:f,columns:[]};a.tableIds.push(f.id),M(o).collection(`tableEntities`).setOne(f),n.push(p),GI(e,t,p,r,c),GI(e,t,p,i,l)}function GI(e,{toWidth:t},n,r,i){let{doc:a,collections:o}=e,s=i.map(e=>{let i=pS(n.columns,``,`${r.table.name}_${e.name}`),{dataType:a}=e,s=K_({tableId:n.table.id,name:i,dataType:a,options:L.primaryKey|L.notNull,ui:{keys:R.primaryKey|R.foreignKey,widthName:V(t(i)),widthDataType:V(t(a))}});return BI(o,n,s),s}),c=TA({identification:!0,relationshipType:r_.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 KI({doc:e,collections:t},n){n.forEach(({source:n,table:r,columns:i})=>{n.indexes.forEach(n=>{if(n.primaryKey)return;let a=gk({name:uv(n.name),tableId:r.id,unique:n.unique}),o=[];n.columnNames.forEach(e=>{let t=rF(i,e);t&&o.push(Nk({indexId:a.id,columnId:t.id,orderType:o_.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))})})}function qI({doc:e,collections:t},n,r){let i=/* @__PURE__ */ new Set;n.tableGroups.forEach(n=>{let a=[];if(n.tables.forEach(e=>{let t=r(e);t&&!i.has(t.table.id)&&(i.add(t.table.id),a.push(t.table))}),!a.length)return;let o=uM({name:uv(n.name),color:n.color,ui:{zIndex:e.tableGroupIds.length+1}});a.forEach(e=>{e.groupId=o.id}),e.tableGroupIds.push(o.id),M(t).collection(`tableGroupEntities`).setOne(o)})}const Y={identifier:1,quoted:2,string:3,expression:4,number:5,punctuation:6,operator:7,newline:8},JI=/[ \t\f\v]/,YI=/[0-9]/,XI=/[A-Za-z_\u0080-\uffff]/,ZI=/[0-9A-Za-z_\u0080-\uffff]/,QI=/^[ \t]*/,$I={n:`
|
|
16
|
+
`,r:`\r`,t:` `,b:`\b`,f:`\f`,v:`\v`,0:`\0`};function eL(e){let t=[],n=0,r=0,i=1,a=0,o=(e,n)=>{t.push({kind:e,value:n,line:i,offset:r})},s=()=>{a===0&&o(Y.newline,`
|
|
17
|
+
`)};for(;n<e.length;){let t=e[n];if(r=n,JI.test(t)){n+=1;continue}if(t===`\r`||t===`
|
|
17
18
|
`){t===`\r`&&e[n+1]===`
|
|
18
19
|
`&&(n+=1),n+=1,s(),i+=1;continue}if(t===`/`&&e[n+1]===`/`){for(n+=2;n<e.length&&e[n]!==`
|
|
19
20
|
`;)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]===`
|
|
20
|
-
`&&(t=!0,i+=1),n+=1}t&&s();continue}if(t===`"`){let t=
|
|
21
|
-
`&&(o+=1),i.push(t),a+=1}return{value:i.join(``),index:a,lines:o}}function
|
|
21
|
+
`&&(t=!0,i+=1),n+=1}t&&s();continue}if(t===`"`){let t=nL(e,n+1,`"`,!0);n=t.index,i+=t.lines,o(Y.quoted,t.value);continue}if(t===`'`){if(e.startsWith(`'''`,n)){let t=nL(e,n+3,`'''`,!0);n=t.index,i+=t.lines,o(Y.string,rL(t.value));continue}let t=nL(e,n+1,`'`,!0);n=t.index,i+=t.lines,o(Y.string,t.value);continue}if(t==="`"){let t=nL(e,n+1,"`",!1);n=t.index,i+=t.lines,o(Y.expression,t.value);continue}if(YI.test(t)){let t=n;for(;t<e.length&&YI.test(e[t]);)t+=1;if(e[t]===`.`&&YI.test(e[t+1]??``))for(t+=1;t<e.length&&YI.test(e[t]);)t+=1;if((e[t]===`e`||e[t]===`E`)&&YI.test(e[t+1]??``))for(t+=2;t<e.length&&YI.test(e[t]);)t+=1;o(Y.number,e.slice(n,t)),n=t;continue}if(XI.test(t)){let t=n+1;for(;t<e.length&&ZI.test(e[t]);)t+=1;o(Y.identifier,e.slice(n,t)),n=t;continue}let c=tL(e,n);if(c){o(Y.operator,c),n+=c.length;continue}t===`[`||t===`(`?a+=1:(t===`]`||t===`)`)&&(a=Math.max(0,a-1)),o(Y.punctuation,t),n+=1}return t}function tL(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 nL(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($I[t]??t),a+=2;continue}t===`
|
|
22
|
+
`&&(o+=1),i.push(t),a+=1}return{value:i.join(``),index:a,lines:o}}function rL(e){let t=e.replace(/\r\n|\r/g,`
|
|
22
23
|
`).split(`
|
|
23
|
-
`);t[0]?.trim()===``&&t.shift(),t.length&&t[t.length-1].trim()===``&&t.pop();let n=t.filter(e=>e.trim()!==``).map(e=>(
|
|
24
|
-
`)}const CM=/^[0-9a-z ]+$/,wM=/'/g,TM=/\?/g;function EM(e){try{return{ok:!0,model:OM(yM(e))}}catch(e){return{ok:!1,message:e instanceof Error?e.message:`Invalid DBML`}}}function DM(e){let t=0;return{peek:(n=0)=>e[t+n]??null,next:()=>e[t++]??null,atEnd:()=>t>=e.length}}function OM(e){let t=DM(e),n={tables:[],refs:[],tableGroups:[],enums:{},skipped:[]},r=/* @__PURE__ */ new Map,i=/* @__PURE__ */ new Set,a=e=>{i.has(e)||(i.add(e),n.skipped.push(e))},o=e=>{a(e),rN(t)};for(;!t.atEnd();){if(aN(t))continue;let e=t.peek();if(!e)break;if(!oN(e)){t.next();continue}let i=e.value.toLowerCase();if(i===`table`&&e.kind===J.identifier){t.next();let e=AM(t,r);e&&n.tables.push(e);continue}if(i===`tablepartial`&&e.kind===J.identifier){t.next();let e=AM(t,r);e&&r.set(e.name,e.columns);continue}if(i===`ref`&&e.kind===J.identifier){t.next(),n.refs.push(...IM(t));continue}if(i===`enum`&&e.kind===J.identifier){t.next(),HM(t,n.enums);continue}if(i===`tablegroup`&&e.kind===J.identifier){t.next(),n.tableGroups.push(kM(t,a));continue}o(i)}return n}function kM(e,t){let{name:n}=ZM(e),r={name:n,color:``,tables:[]};if(UM(e).forEach(({key:e,tokens:n})=>{e===`color`?r.color=Ty(qM(n)):e!==``&&t(`tablegroup ${e}`)}),!tN(e))return iN(e),r;for(;!e.atEnd();){if(aN(e))continue;let n=e.peek();if(!n)break;if(Y(n,`}`)){e.next();break}let i=e.peek(1);if(n.kind===J.identifier&&n.value.toLowerCase()===`note`&&i&&(Y(i,`:`)||Y(i,`{`))){e.next(),e.next(),Y(i,`{`)?nN(e):iN(e),t(`tablegroup note`);continue}if(oN(n)){let{schemaName:t,name:n}=ZM(e);r.tables.push({schemaName:t,tableName:n})}iN(e)}return r}function AM(e,t){let{schemaName:n,name:r}=ZM(e),i={schemaName:n,name:r,alias:``,comment:``,color:``,columns:[],indexes:[]},a=e.peek();if(a&&a.kind===J.identifier&&a.value.toLowerCase()===`as`&&(e.next(),i.alias=QM(e)),KM(i,UM(e)),!tN(e))return r===``?null:i;for(;!e.atEnd();){if(aN(e))continue;let n=e.peek();if(!n)break;if(n.kind===J.punctuation&&n.value===`}`){e.next();break}if(n.kind===J.punctuation&&n.value===`~`){e.next();let n=t.get(QM(e));n&&i.columns.push(...n.map(e=>({...e})));continue}if(n.kind===J.identifier){let t=n.value.toLowerCase(),r=e.peek(1);if(t===`note`&&r&&Y(r,`:`)){e.next(),e.next(),i.comment=$M(e);continue}if(t===`note`&&r&&Y(r,`{`)){e.next(),e.next(),i.comment=eN(e);continue}if(t===`indexes`&&r&&Y(r,`{`)){e.next(),e.next(),i.indexes.push(...PM(e));continue}if(r&&Y(r,`{`)){e.next(),e.next(),nN(e);continue}}let r=jM(e);r&&i.columns.push(r)}return i}function jM(e){let t=e.peek();if(!t||!oN(t))return iN(e),null;e.next();let n={name:t.value,comment:``,typeName:``,typeSchemaName:``,primaryKey:!1,unique:!1,notNull:!1,autoIncrement:!1,default:``,inlineRefs:[]},r=MM(e);return n.typeName=r.name,n.typeSchemaName=r.schemaName,WM(n,UM(e)),iN(e),n.typeName===``?null:n}function MM(e){let{schemaName:t,name:n}=ZM(e);if(n===``)return{name:``,schemaName:``};let r=[n],i=e.peek();i&&Y(i,`(`)&&(e.next(),r.push(`(${NM(e)})`));let a=e.peek(),o=e.peek(1);return a&&o&&Y(a,`[`)&&Y(o,`]`)&&(e.next(),e.next(),r.push(`[]`)),{name:r.join(``),schemaName:t}}function NM(e){let t=[];for(;!e.atEnd();){let n=e.next();if(!n||Y(n,`)`))break;n.kind!==J.newline&&t.push(n.kind===J.string?`'${n.value}'`:n.value)}return t.join(``)}function PM(e){let t=[];for(;!e.atEnd();){if(aN(e))continue;let n=e.peek();if(!n)break;if(Y(n,`}`)){e.next();break}let r={name:``,unique:!1,primaryKey:!1,columnNames:[]};Y(n,`(`)?(e.next(),r.columnNames.push(...FM(e))):oN(n)?(e.next(),r.columnNames.push(n.value)):e.next(),GM(r,UM(e)),iN(e),r.columnNames.length!==0&&t.push(r)}return t}function FM(e){let t=[];for(;!e.atEnd();){let n=e.next();if(!n||Y(n,`)`))break;oN(n)&&t.push(n.value)}return t}function IM(e){let t=e.peek();if(t&&oN(t)){let t=e.peek(1);t&&(Y(t,`:`)||Y(t,`{`))&&e.next()}let n=e.peek();if(n&&Y(n,`:`)){e.next();let t=LM(e);return iN(e),t?[t]:[]}if(!tN(e))return iN(e),[];let r=[];for(;!e.atEnd();){if(aN(e))continue;let t=e.peek();if(!t)break;if(Y(t,`}`)){e.next();break}let n=LM(e);n?r.push(n):iN(e)}return r}function LM(e){let t=VM(e),n=BM(e);if(n===``)return null;let r=VM(e),i=RM(UM(e));return t.tableName===``||r.tableName===``?null:{operator:n,left:t,right:r,...i}}function RM(e){let t={onDelete:``,onUpdate:``};return e.forEach(({key:e,tokens:n})=>{e===`delete`?t.onDelete=zM(n):e===`update`&&(t.onUpdate=zM(n))}),t}function zM(e){return e.filter(e=>e.kind!==J.newline).map(e=>e.value).join(` `)}function BM(e){let t=e.peek();return t?t.kind===J.operator?(e.next(),t.value.replace(TM,``)):Y(t,`-`)?(e.next(),`-`):``:``}function VM(e){let t=[],n=[];for(;!e.atEnd();){let r=e.peek();if(!r||!oN(r))break;e.next(),t.push(r.value);let i=e.peek();if(!i||!Y(i,`.`))break;e.next();let a=e.peek();if(a&&Y(a,`(`)){e.next(),n.push(...FM(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 HM(e,t){let{schemaName:n,name:r}=ZM(e);if(UM(e),!tN(e)){iN(e);return}let i=[];for(;!e.atEnd();){if(aN(e))continue;let t=e.peek();if(!t)break;if(Y(t,`}`)){e.next();break}oN(t)?(e.next(),i.push(t.value),UM(e)):e.next(),iN(e)}r!==``&&(t[n?`${n}.${r}`:r]=i,n&&!(r in t)&&(t[r]=i))}function UM(e){let t=e.peek();if(!t||!Y(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||Y(t,`]`))break;if(Y(t,`,`)){o();continue}if(!a&&Y(t,`:`)){a=!0;continue}if(a){i.push(t);continue}if(oN(t)&&CM.test(t.value.toLowerCase())){r.push(t.value);continue}a=!0,i.push(t)}return o(),n}function WM(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=YM(n);break;case`default`:e.default=XM(n);break;case`ref`:{let t=JM(n);t&&e.inlineRefs.push(t);break}}})}function GM(e,t){t.forEach(({key:t,tokens:n})=>{switch(t){case`name`:e.name=YM(n);break;case`unique`:e.unique=!0;break;case`pk`:case`primary key`:e.primaryKey=!0}})}function KM(e,t){t.forEach(({key:t,tokens:n})=>{t===`note`?e.comment=YM(n):t===`headercolor`&&(e.color=Ty(qM(n)))})}function qM(e){return e.every((t,n)=>{let r=e[n-1];return(t.kind===J.punctuation||t.kind===J.number||t.kind===J.identifier)&&(!r||t.offset===r.offset+r.value.length)})?e.map(e=>e.value).join(``):``}function JM(e){let t=DM(e),n=BM(t);if(n===``)return null;let r=VM(t);return r.tableName===``?null:{operator:n,target:r}}function YM(e){let t=e.find(e=>e.kind===J.string||e.kind===J.quoted||e.kind===J.identifier);return t?t.value:``}function XM(e){let t=e.filter(e=>e.kind!==J.newline),n=t[0];if(!n)return``;if(Y(n,`-`)&&t[1]?.kind===J.number)return`-${t[1].value}`;switch(n.kind){case J.string:return`'${n.value.replace(wM,`''`)}'`;case J.expression:case J.number:case J.identifier:case J.quoted:return n.value;default:return t.map(e=>e.value).join(``)}}function ZM(e){let t=QM(e);if(t===``)return{schemaName:``,name:``};let n=e.peek();return!n||!Y(n,`.`)?{schemaName:``,name:t}:(e.next(),{schemaName:t,name:QM(e)})}function QM(e){let t=e.peek();return!t||!oN(t)?``:(e.next(),t.value)}function $M(e){let t=e.peek();return t&&(t.kind===J.string||t.kind===J.quoted)?(e.next(),t.value):``}function eN(e){let t=``;for(;!e.atEnd();){let n=e.next();if(!n||Y(n,`}`))break;t===``&&n.kind===J.string&&(t=n.value)}return t}function tN(e){let t=0;for(;e.peek(t)?.kind===J.newline;)t+=1;let n=e.peek(t);if(!n||!Y(n,`{`))return!1;for(let n=0;n<=t;n+=1)e.next();return!0}function nN(e){let t=1;for(;!e.atEnd()&&t!==0;){let n=e.next();if(!n)break;Y(n,`{`)?t+=1:Y(n,`}`)&&--t}}function rN(e){if(tN(e)){nN(e);return}for(;!e.atEnd();){let t=e.next();if(!t||t.kind===J.newline)return;if(Y(t,`{`)){nN(e);return}}}function iN(e){for(;!e.atEnd();){let t=e.peek();if(!t)return;if(t.kind===J.newline){e.next();return}if(Y(t,`}`))return;e.next()}}function aN(e){let t=e.peek();return t&&t.kind===J.newline?(e.next(),!0):!1}function oN(e){return e.kind===J.identifier||e.kind===J.quoted}function Y(e,t){return e.kind===J.punctuation&&e.value===t}const sN={tables:[],refs:[],tableGroups:[],enums:{},skipped:[]};function cN(e,t,n){let r=EM(e),i=r.ok?r.model:sN,a=Nm({}),{settings:o}=n?n(a):a,s=eM(i,t,o.database);return s.settings=o,Ah(s)}const lN={[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)`},uN={[I.MariaDB]:`INT`,[I.MSSQL]:`int`,[I.MySQL]:`INT`,[I.Oracle]:`INTEGER`,[I.PostgreSQL]:`integer`,[I.SQLite]:`INTEGER`,[I.Databricks]:`INT`,[I.Snowflake]:`INT`},dN={[I.MariaDB]:`SMALLINT`,[I.MSSQL]:`smallint`,[I.MySQL]:`SMALLINT`,[I.Oracle]:`SMALLINT`,[I.PostgreSQL]:`smallint`,[I.SQLite]:`SMALLINT`,[I.Databricks]:`SMALLINT`,[I.Snowflake]:`SMALLINT`},fN={[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`},pN={[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`},mN={[I.MariaDB]:`DECIMAL(38,18)`,[I.MSSQL]:`decimal(38,18)`,[I.MySQL]:`DECIMAL(38,18)`,[I.Oracle]:`DECIMAL(38,18)`,[I.PostgreSQL]:`numeric`,[I.SQLite]:`DECIMAL`,[I.Databricks]:`DECIMAL(38,18)`,[I.Snowflake]:`DECIMAL(38,18)`},hN={[I.MariaDB]:`BOOLEAN`,[I.MSSQL]:`bit`,[I.MySQL]:`BOOLEAN`,[I.Oracle]:`BOOLEAN`,[I.PostgreSQL]:`boolean`,[I.SQLite]:`BOOLEAN`,[I.Databricks]:`BOOLEAN`,[I.Snowflake]:`BOOLEAN`},gN={[I.MariaDB]:`DATE`,[I.MSSQL]:`date`,[I.MySQL]:`DATE`,[I.Oracle]:`DATE`,[I.PostgreSQL]:`date`,[I.SQLite]:`DATE`,[I.Databricks]:`DATE`,[I.Snowflake]:`DATE`},_N={[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`},vN={[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`},yN={[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`},bN={[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)`},xN={[I.MariaDB]:`JSON`,[I.MSSQL]:`json`,[I.MySQL]:`JSON`,[I.Oracle]:`JSON`,[I.PostgreSQL]:`jsonb`,[I.SQLite]:`TEXT`,[I.Databricks]:`VARIANT`,[I.Snowflake]:`VARIANT`},SN={[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`},CN={[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`},wN={id:lN,string:lN,boolean:hN,int:uN,float:pN,positiveint:uN,nonnegativeint:uN,unsignedint:uN,short:dN,smallint:dN,positivefloat:pN,nonnegativefloat:pN,bigint:fN,biginteger:fN,long:fN,int8:fN,safeint:fN,decimal:mN,bigdecimal:mN,numeric:mN,money:mN,datetime:vN,datetimeiso:vN,localdatetime:vN,timestamp:vN,timestamptz:yN,date:gN,localdate:gN,time:_N,localtime:_N,timetz:_N,duration:bN,iso8601duration:bN,interval:bN,json:xN,jsonb:xN,jsonobject:xN,uuid:SN,guid:SN,byte:CN,bytes:CN,bytea:CN,binary:CN,email:lN,emailaddress:lN,url:lN,uri:lN,void:lN};function TN(e,t,n){let r=lN[t]??``,i=kN(n.enums,e);return i?DN(i,t)??r:kN(n.unions,e)?r:wN[e.toLowerCase()]?.[t]??r}function EN(e,t,n){let r=kN(t.enums,e);if(r)return n!==void 0&&DN(r,n)!==void 0?``:ON(e,r);let i=kN(t.unions,e);return i?ON(e,i):``}function DN(e,t){if(t===I.MySQL||t===I.MariaDB)return`ENUM(${e.map(e=>`'${e.replace(/'/g,`''`)}'`).join(`,`)})`}function ON(e,t){return` ${e}: ${t.join(` | `)}`}function kN(e,t){let n=e[t];return Array.isArray(n)&&n.length?n:void 0}const AN=/_/g,jN=/\d+$/;function MN(e,t,n){let r=Nm({}),i=NN(e.tables),a=new Set(e.skipped),o=e.tables.map(o=>PN(r,t,e,n,o,i,a));return zN(r,t,o),$N(r,o),r}function NN(e){let t=/* @__PURE__ */ new Map,n=/* @__PURE__ */ 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 PN({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(FN(l)),f=v_(a.name),p=v_(a.comment),m=lD({name:f,comment:p,ui:{widthName:G(c(f)),widthComment:G(c(p))}}),h={name:f,source:a,table:m,columns:[],referenceFields:u};return l.forEach(e=>{RN(t,h,IN(n,r,i,m.id,e,d.has(e)))}),e.tableIds.push(m.id),N(t).collection(`tableEntities`).setOne(m),h}function FN(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 IN({toWidth:e},t,n,r,i,a){let{named:o,nonNull:s}=i.typeRef,c=v_(i.name),l=v_(i.dataType)||TN(o,n,t),u=v_(i.default),d=LN(i,t,n);return YD({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:G(e(c)),widthComment:G(e(d)),widthDataType:G(e(l)),widthDefault:G(e(u)),keys:a?z.primaryKey:0}})}function LN(e,t,n){let{named:r,isList:i}=e.typeRef,a=[],o=v_(e.comment);return o&&a.push(o),i&&a.push(`list of ${r}`),`${a.join(` `)}${EN(r,t,n)}`.trim()}function RN(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 zN(e,t,n){let r=NN(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,namedReciprocal:null,named:!1})})});let a={claimedColumnIds:/* @__PURE__ */ new Set,relationshipKeys:/* @__PURE__ */ new Set},o=i.filter(e=>!e.field.typeRef.isList);BN(i,o),[...o.filter(e=>e.field.relationFields.length),...o.filter(e=>!e.field.relationFields.length)].forEach(n=>{if(n.consumed||n.named&&!n.namedReciprocal)return;let r=n.namedReciprocal??WN(i,n);n.consumed=!0,r&&(r.consumed=!0);let o=!!r?.field.typeRef.isList;KN(e,t,a,{parent:n.target,child:n.source,field:n.field,childSide:!0,relationshipType:n.field.typeRef.nonNull?o?Zh.OneN:Zh.OneOnly:o?Zh.ZeroN:Zh.ZeroOne})}),i.filter(e=>e.field.typeRef.isList).forEach(r=>{if(r.consumed)return;let o=GN(i,r);if(r.consumed=!0,o){o.consumed=!0,ZN(e,t,n,r);return}KN(e,t,a,{parent:r.source,child:r.target,field:r.field,childSide:!1,relationshipType:r.field.typeRef.nonNull?Zh.OneN:Zh.ZeroN})})}function BN(e,t){VN(e,t,HN),VN(e,t,UN)}function VN(e,t,n){let r=e=>n(e.field.name);[...t].sort((e,t)=>r(t).length-r(e).length).forEach(t=>{if(t.named||t.field.relationName)return;let n=`by${r(t)}`,i=e.filter(e=>e!==t&&!e.named&&!e.field.relationName&&!e.field.relationFields.length&&e.source===t.target&&e.target===t.source&&r(e).endsWith(n));if(i.length!==1)return;let[a]=i;t.namedReciprocal=a,t.named=!0,a.named=!0})}function HN(e){return e.replace(AN,``).toLowerCase()}function UN(e){return HN(e).replace(jN,``)}function WN(e,t){let n=e.filter(e=>e!==t&&!e.consumed&&!e.named&&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.named&&e.source===t.source&&e.target===t.target);return n.length===1&&i.length===1?n[0]:null}function GN(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 KN(e,t,n,r){let{doc:i,collections:a}=e,{parent:o,child:s,relationshipType:c}=r,l=xv(o.columns);if(!l.length)return;let{startColumns:u,endColumns:d}=qN(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=>{U(e.ui.keys,z.primaryKey)?e.ui.keys|=z.foreignKey:e.ui.keys=z.foreignKey,n.claimedColumnIds.add(e.id)});let p=AE({identification:d.every(e=>U(e.ui.keys,z.primaryKey)&&U(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),N(a).collection(`relationshipEntities`).setOne(p)}function qN(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=SA(i.columns,n),l=a.relationReferences[o],u=l?SA(r.columns,l):s[o]??null;c&&u&&(e.push(u),t.push(c))}),t.length)return{startColumns:e,endColumns:t}}let c=o?v_(a.name):fe(r.name),l=/* @__PURE__ */ new Set,u=[],d=[];return s.forEach(o=>{let s=JN(c,r.name,o.name),f=YN(i.columns,s,e=>l.has(e)?!0:n.claimedColumnIds.has(e))??XN(e,t,i,a,o,s[0]);l.add(f.id),u.push(o),d.push(f)}),{startColumns:u,endColumns:d}}function JN(e,t,n){return[`${e}${rC(n)}`,`${ve(e)}_${ve(n)}`,`${t}${rC(n)}`,`${ve(t)}_${ve(n)}`,`${e}Id`,`${ve(e)}_id`]}function YN(e,t,n){for(let r of t){let t=SA(e,r);if(t&&!n(t.id))return t}return null}function XN({collections:e},{toWidth:t},n,r,i,a){let o=Sv(n.columns,``,a),{dataType:s}=i,c=YD({tableId:n.table.id,name:o,dataType:s,options:r.typeRef.nonNull?R.notNull:0,ui:{keys:z.foreignKey,widthName:G(t(o)),widthDataType:G(t(s))}});return RN(e,n,c),c}function ZN(e,t,n,r){let{doc:i,collections:a}=e,{toWidth:o}=t,s=r.source,c=r.target,l=xv(s.columns),u=xv(c.columns);if(!l.length||!u.length)return;let d=Sv(n.map(e=>e.table),``,`${s.name}_${c.name}`),f=`Junction table inferred from ${s.name} <-> ${c.name}`,p=lD({name:d,comment:f,ui:{widthName:G(o(d)),widthComment:G(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),QN(e,t,m,s,l),QN(e,t,m,c,u)}function QN(e,{toWidth:t},n,r,i){let{doc:a,collections:o}=e,s=i.map(e=>{let i=Sv(n.columns,``,`${fe(r.name)}${rC(e.name)}`),{dataType:a}=e,s=YD({tableId:n.table.id,name:i,dataType:a,options:R.primaryKey|R.notNull,ui:{keys:z.primaryKey|z.foreignKey,widthName:G(t(i)),widthDataType:G(t(a))}});return RN(o,n,s),s}),c=AE({identification:!0,relationshipType:Zh.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 $N({doc:e,collections:t},n){n.forEach(({source:n,table:r,columns:i})=>{n.indexes.forEach(n=>{let a=bT({name:v_(n.name),tableId:r.id,unique:n.unique}),o=[];n.fieldNames.forEach(e=>{let t=SA(i,e);t&&o.push(LT({indexId:a.id,columnId:t.id,orderType:eg.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 eP=[`Query`,`Mutation`,`Subscription`],tP=[`PageInfo`],nP=[`Connection`,`Edge`],rP=[`_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`],iP=[`_Service`,`_Entity`,`_Any`,`_FieldSet`],aP=[`autoincrement`,`autoincrement()`],oP=/[_A-Za-z]/,sP=/[_0-9A-Za-z]/;function cP(e){try{return{ok:!0,model:dP(lP(e))}}catch(e){return{ok:!1,message:uP(e)}}}function lP(e){try{return qe(e)}catch(t){let n=AP(e);if(n===e)throw t;try{return qe(n)}catch{throw t}}}function uP(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 dP(e){let t={},n={},r=[],i=/* @__PURE__ */ new Map,a=/* @__PURE__ */ new Map,o=/* @__PURE__ */ new Set;for(let s of e.definitions)switch(s.kind){case Ge.OBJECT_TYPE_DEFINITION:case Ge.OBJECT_TYPE_EXTENSION:pP(a,s);break;case Ge.INTERFACE_TYPE_DEFINITION:case Ge.INTERFACE_TYPE_EXTENSION:{let e=s.name.value,t=i.get(e)??[];t.push(...s.fields??[]),i.set(e,t);break}case Ge.SCHEMA_DEFINITION:case Ge.SCHEMA_EXTENSION:for(let e of s.operationTypes??[])o.add(e.type.name.value);break;case Ge.ENUM_TYPE_DEFINITION:t[s.name.value]=(s.values??[]).map(e=>e.name.value);break;case Ge.UNION_TYPE_DEFINITION:n[s.name.value]=(s.types??[]).map(e=>e.name.value);break;case Ge.SCALAR_TYPE_DEFINITION:r.push(s.name.value)}let s=o.size?o:new Set(eP),c=[],l=[],u=/* @__PURE__ */ new Map;for(let e of a.values()){if(EP(e.name,s)){l.push(e.name);continue}let t=mP(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 fP(c,u),{tables:c,enums:t,customScalars:r,unions:n,skipped:l}}function fP(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 pP(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||=OP(t);return}e.set(n,{name:n,comment:OP(t),interfaceNames:r,fieldNodes:[...t.fields??[]],directives:[...t.directives??[]]})}function mP(e,t){let n=hP(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(gP).filter(le),indexes:[]};for(let t of e.directives)yP(a,t);return a}function hP(e){let t=/* @__PURE__ */ new Set;return e.filter(e=>{let n=e.name.value;return!t.has(n)&&(t.add(n),!0)})}function gP(e){if(e.name.value.startsWith(`__`))return null;let t={name:e.name.value,comment:OP(e),typeRef:_P(e.type),primaryKey:!1,unique:!1,autoIncrement:!1,default:``,dataType:``,relationName:``,relationFields:[],relationReferences:[],hasArguments:(e.arguments??[]).length>0};for(let n of e.directives??[])vP(t,n);return t}function _P(e){let t=e.kind===Ge.NON_NULL_TYPE,n=t?e.type:e,r=n.kind===Ge.LIST_TYPE,i=r?n.type:n,a=r&&i.kind===Ge.NON_NULL_TYPE,o=i;for(;o.kind!==Ge.NAMED_TYPE;)o=o.type;return{named:o.name.value,nonNull:t,isList:r,itemNonNull:a}}function vP(e,t){let n=t.name.value;if(n.startsWith(`db_`)){e.dataType=bP(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=xP(t,`value`);if(!n)break;let r=wP(n);aP.includes(r.toLowerCase())?e.autoIncrement=!0:e.default=r;break}case`map`:{let n=SP(t,`name`)||SP(t,`value`);n&&(e.name=n);break}case`relation`:{let n=SP(t,`name`)||SP(t,`value`);n&&(e.relationName=n);let r=xP(t,`fields`);r&&(e.relationFields=TP(r));let i=xP(t,`references`);i&&(e.relationReferences=TP(i));break}case`column`:{let n=SP(t,`name`);n&&(e.name=n);let r=SP(t,`dataType`);r&&(e.dataType=r);let i=xP(t,`default`);i&&(e.default=wP(i));let a=CP(t,`autoIncrement`);a!==null&&(e.autoIncrement=a);let o=CP(t,`unique`);o!==null&&(e.unique=o);let s=CP(t,`primaryKey`);s!==null&&(e.primaryKey=s);break}}}function yP(e,t){switch(t.name.value){case`map`:{let n=SP(t,`name`)||SP(t,`value`);n&&(e.name=n);break}case`table`:{let n=SP(t,`name`);n&&(e.name=n);let r=xP(t,`comment`);r&&(e.comment=wP(r));break}case`index`:{let n=xP(t,`fields`),r=n?TP(n):[];if(!r.length)break;let i={name:SP(t,`name`),unique:CP(t,`unique`)??!1,fieldNames:r};e.indexes.push(i);break}}}function bP(e,t){let n=e.slice(3),r=t.arguments??[];return r.length?`${n}(${r.map(e=>wP(e.value)).join(`, `)})`:n}function xP(e,t){let n=(e.arguments??[]).find(e=>e.name.value===t);return n?n.value:null}function SP(e,t){let n=xP(e,t);return n?wP(n):``}function CP(e,t){let n=xP(e,t);return n?wP(n)===`true`:null}function wP(e){switch(e.kind){case Ge.STRING:case Ge.INT:case Ge.FLOAT:case Ge.ENUM:return e.value;case Ge.BOOLEAN:return e.value?`true`:`false`;case Ge.NULL:return`null`;case Ge.LIST:return e.values.map(wP).join(`, `);default:return``}}function TP(e){return(e.kind===Ge.LIST?e.values:[e]).map(wP).filter(e=>e!==``)}function EP(e,t){return t.has(e)||e.startsWith(`__`)||iP.includes(e)||tP.includes(e)||nP.some(t=>DP(e,t))||rP.some(t=>DP(e,t))}function DP(e,t){return e.length>t.length&&e.endsWith(t)}function OP(e){if(e.description)return kP(e.description.value);if(!e.loc)return``;let t=[],n=e.loc.startToken.line-1,r=e.loc.startToken.prev;for(;r&&r.kind===Ke.COMMENT&&r.line===n&&(!r.prev||r.prev.line<r.line);)t.unshift(r.value??``),--n,r=r.prev;return kP(t.join(` `))}function kP(e){return e.replace(/\s+/g,` `).trim()}function AP(e){let t=``,n=0,r=!1;for(;n<e.length;){let i=e[n];if(i===`#`){let r=NP(e,n);t+=e.slice(n,r),n=r;continue}if(i===`"`){let r=PP(e,n);t+=e.slice(n,r),n=r;continue}if(i!==`@`||!oP.test(e[n+1]??``)){t+=i,n+=1;continue}let a=MP(e,n+1),o=e.slice(n+1,a);for(;e[a]===`.`&&oP.test(e[a+1]??``);){let t=MP(e,a+1);o+=`_${e.slice(a+1,t)}`,a=t,r=!0}t+=`@${o}`,n=a;let s=IP(e,n);if(e[s]===`(`){t+=e.slice(n,s+1),n=s+1;for(let i=0;n<e.length;i++){let a=IP(e,n);if(t+=e.slice(n,a),n=a,e[n]===`)`||n>=e.length)break;let o=jP(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(FP(e,IP(e,n)),n+1);t+=e.slice(n,s),n=s}}}return r?t:e}function jP(e,t){if(!oP.test(e[t]??``))return-1;let n=IP(e,MP(e,t));return e[n]===`:`?n:-1}function MP(e,t){let n=t;for(;n<e.length&&sP.test(e[n]);)n+=1;return n}function NP(e,t){let n=e.indexOf(`
|
|
25
|
-
`,t);return n===-1?e.length:n}function
|
|
26
|
-
`)return n;if(t===`"`)return n+1;n+=1}return n}function
|
|
27
|
-
`,singleQuote:`'`,backtick:"`",whiteSpace:/\s/,string:/\S/,breakString:/;|,|\(|\)|\[|\]|\.|=/,literalEnd:/[\s,;)\]:|+]/,equal:`=`,period:`.`,comma:`,`,semicolon:`;`,leftParent:`(`,rightParent:`)`,leftBracket:`[`,rightBracket:`]`},
|
|
28
|
-
`,r:`\r`,t:` `,Z:``,"%":`\\%`,_:`\\_`},GP=e=>e<65536?String.fromCharCode(e):String.fromCharCode(Math.floor((e-65536)/1024)+55296,(e-65536)%1024+56320),KP=e=>{let t=/^(?:u([\da-fA-F]{4})|U([\da-fA-F]{8}))/.exec(e);if(t){let e=t[1]??t[2];return[GP(parseInt(e,16)),e.length+1]}let n=/^[01][0-7]{2}/.exec(e);return n?[String.fromCharCode(parseInt(n[0],8)),3]:e?[WP[e[0]]??e[0],1]:[`\\`,0]},qP=String.raw`(?:[nebx]|u&|_[a-z\d]+)`,JP=String.raw`[+\-*/%|<>!^~#@?]`,YP=new RegExp(String.raw`(?:(?:^|${JP})${qP}|${JP})$`,`i`),XP=new RegExp(String.raw`^(.*?)(${JP}*)(${qP}?)$`,`is`),ZP=e=>t=>e===t,QP=e=>t=>e.test(t),$P={doubleQuote:ZP(UP.doubleQuote),dash:ZP(UP.dash),slash:ZP(UP.slash),asterisk:ZP(UP.asterisk),newLine:ZP(UP.newLine),singleQuote:ZP(UP.singleQuote),backtick:ZP(UP.backtick),whiteSpace:QP(UP.whiteSpace),string:QP(UP.string),breakString:QP(UP.breakString),literalEnd:QP(UP.literalEnd),equal:ZP(UP.equal),period:ZP(UP.period),comma:ZP(UP.comma),semicolon:ZP(UP.semicolon),leftParent:ZP(UP.leftParent),rightParent:ZP(UP.rightParent),leftBracket:ZP(UP.leftBracket),rightBracket:ZP(UP.rightBracket)};function eF(e,t){let n=[],r=t===`Databricks`,i=0,a=()=>i<e.length,o=t=>{if(i+1>=e.length||$P.literalEnd(e[i+1]))return!1;let n=0;for(;t[t.length-1-n]===`\\`;)n++;return n%2==1},s=(t,s)=>{let c=t===`[`?`]`:t,l=``;for(i++;a();){let n=e[i];if(r&&t===`'`&&n===`\\`){let[t,n]=KP(e.slice(i+1,i+10));l+=t,i+=n+1;continue}if(n===c&&t===`'`&&!r&&o(l))l=l.slice(0,-1);else if(n===c){if(t===`[`||e[i+1]!==c)break;i++}l+=n,i++}n.push({type:HP.string,value:l,quoted:t,...s?{prefix:s}:{}}),i++};for(;a();){let t=e[i];if($P.whiteSpace(t)){let n=``;for(;a()&&$P.whiteSpace(t);)n+=t,t=e[++i];continue}if($P.dash(t)&&$P.dash(e[i+1])){for(;a()&&!$P.newLine(t);)t=e[++i];continue}if($P.slash(t)&&$P.asterisk(e[i+1])){for(i+=2,t=e[i];a()&&!($P.asterisk(t)&&$P.slash(e[i+1]));)t=e[++i];i+=2;continue}if($P.leftParent(t)){n.push({type:HP.leftParent,value:t}),i++;continue}if($P.rightParent(t)){n.push({type:HP.rightParent,value:t}),i++;continue}if($P.comma(t)){n.push({type:HP.comma,value:t}),i++;continue}if($P.period(t)){n.push({type:HP.period,value:t}),i++;continue}if($P.equal(t)){n.push({type:HP.equal,value:t}),i++;continue}if($P.semicolon(t)){n.push({type:HP.semicolon,value:t}),i++;continue}if($P.rightBracket(t)){n.push({type:HP.rightBracket,value:t}),i++;continue}if($P.leftBracket(t)){s(`[`);continue}if($P.doubleQuote(t)){s(`"`);continue}if($P.singleQuote(t)){s(`'`);continue}if($P.backtick(t)){s("`");continue}if($P.string(t)){let r=``;for(;a()&&$P.string(t)&&!$P.breakString(t)&&!($P.dash(t)&&$P.dash(e[i+1]))&&!($P.slash(t)&&$P.asterisk(e[i+1]))&&!($P.singleQuote(t)&&YP.test(r));)r+=t,t=e[++i];if(!$P.singleQuote(t)){n.push({type:HP.string,value:r});continue}let[,o,c,l]=XP.exec(r);for(let e of[o,c])e&&n.push({type:HP.string,value:e});s(`'`,l);continue}i++}return n}var tF=/* @__PURE__ */ `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(`.`),nF=/* @__PURE__ */ `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(`.`),rF=/* @__PURE__ */ `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(`.`),iF=/* @__PURE__ */ `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(`.`),aF=/* @__PURE__ */ `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(`.`),oF=/* @__PURE__ */ `BIGINT.BIGSERIAL.BIT VARYING.BIT.BOOL.BOOLEAN.BOX.BPCHAR.BYTEA.CHAR.CHARACTER VARYING.CHARACTER.CID.CIDR.CIRCLE.DATE.DATEMULTIRANGE.DATERANGE.DEC.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(`.`),sF=/* @__PURE__ */ `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(`.`),cF=/* @__PURE__ */ `BIGINT.BLOB.BOOL.BOOLEAN.CHARACTER.CLOB.DATE.DATETIME.DEC.DECIMAL.DOUBLE PRECISION.DOUBLE.FLOAT.INT.INT2.INT8.INTEGER.MEDIUMINT.NATIVE CHARACTER.NCHAR.NUMERIC.NVARCHAR.REAL.SMALLINT.TEXT.TIME.TIMESTAMP.TINYINT.UNSIGNED BIG INT.VARCHAR.VARYING CHARACTER`.split(`.`),lF=e=>t=>n=>t[n]?t[n].type===e:!1,X=e=>{let t=e.toUpperCase();return e=>n=>{let r=e[n];return r?!r.quoted&&r.value.toUpperCase()===t:!1}},uF=lF(HP.string),dF=lF(HP.equal),fF=lF(HP.period),pF=lF(HP.comma),mF=lF(HP.semicolon),hF=lF(HP.leftParent),gF=lF(HP.rightParent);HP.leftBracket;var _F=lF(HP.rightBracket),vF=X(`CREATE`),yF=X(`ALTER`),bF=X(`DROP`),xF=X(`USE`),SF=X(`RENAME`),CF=X(`DELETE`),wF=X(`SELECT`),TF=X(`TABLE`),EF=X(`TABLESPACE`),DF=X(`INDEX`),OF=X(`UNIQUE`),kF=X(`ADD`),AF=X(`PRIMARY`),jF=X(`KEY`),MF=X(`CONSTRAINT`),NF=X(`FOREIGN`),PF=X(`NOT`),FF=X(`NULL`),IF=X(`DEFAULT`),LF=X(`COMMENT`),RF=X(`REFERENCES`),zF=X(`ASC`),BF=X(`DESC`),VF=X(`ON`),HF=X(`AUTO_INCREMENT`),UF=X(`AUTOINCREMENT`),WF=X(`IF`),GF=X(`EXISTS`),KF=X(`ONLY`),qF=X(`IS`),JF=X(`COLUMN`),YF=X(`CHARACTER`),XF=X(`SET`),ZF=X(`COLLATE`),QF=X(`ENFORCED`),$F=X(`RELY`),eI=X(`NORELY`),tI=X(`DEFERRABLE`),nI=X(`INITIALLY`),rI=X(`DEFERRED`),iI=X(`IMMEDIATE`),aI=X(`IDENTITY`),oI=X(`FUNCTION`),sI=X(`CLUSTER`),cI=X(`BY`),lI=X(`FULLTEXT`),uI=X(`SPATIAL`),dI=X(`WITH`),fI=X(`CHECK`),pI=X(`NOCHECK`),mI=X(`CONCURRENTLY`),hI=X(`WHERE`),gI=X(`USING`),_I=X(`AND`),vI=X(`OR`),yI=X(`ARRAY`),bI=X(`GENERATED`),xI=X(`FOR`),SI=X(`EXEC`),CI=X(`EXECUTE`),wI=X(`GO`),TI=X(`SIGNED`),EI=[`SIGNED`,`UNSIGNED`,`ZEROFILL`],DI=e=>t=>{let n=e[t];return!!n&&!n.quoted&&EI.includes(n.value.toUpperCase())},OI=(e,t)=>t===`Databricks`?`'${e.replace(/[\\']/g,`\\$&`)}'`:`'${e.replaceAll(`'`,`''`)}'`,kI=({value:e,quoted:t,prefix:n=``},r)=>t?t===`[`?`[${e}]`:t===`'`?n+OI(e,r):`${t}${e.replaceAll(t,t+t)}${t}`:e,AI=e=>{let t=QF(e),n=$F(e),r=eI(e),i=tI(e),a=nI(e),o=rI(e),s=iI(e);return e=>t(e)||n(e)||r(e)||i(e)||a(e)||o(e)||s(e)},jI=[VP.setNull,VP.setDefault,VP.noAction,VP.cascade,VP.restrict],MI=[`FULL`,`PARTIAL`,`SIMPLE`],NI=e=>{let t=t=>{let n=e[t];return n&&n.type===HP.string&&!n.quoted?n.value.toUpperCase():``},n=t=>{if(e[t]?.type!==HP.leftParent)return 0;for(let n=t+1;n<e.length;n++){let{type:r}=e[n];if(r===HP.rightParent)return n-t+1;if(r!==HP.string&&r!==HP.comma)return 0}return 0};return e=>{let r=t(e+1);if(t(e)===`ON`&&(r===`DELETE`||r===`UPDATE`)){let i=jI.find(n=>n.split(` `).every((n,r)=>t(e+2+r)===n));if(!i)return{span:2,event:r,action:``};let a=2+i.split(` `).length;return{span:a+(i.startsWith(`SET `)?n(e+a):0),event:r,action:i}}return{span:t(e)===`MATCH`&&MI.includes(t(e+1))?2:0,event:``,action:``}}},PI=e=>{let t=lI(e),n=uI(e),r=DF(e),i=jF(e);return e=>(t(e)||n(e))&&(r(e+1)||i(e+1))},FI=e=>t=>{let n=e[t];return n&&n.type===HP.string&&!n.quoted?n.value.toUpperCase():``},II=e=>e===`CLUSTERED`||e===`NONCLUSTERED`,LI=e=>{let t=FI(e);return e=>{let n=t(e);return II(n)?1:n===`USING`?t(e+1)?2:1:n===`NULLS`?t(e+1)===`DISTINCT`?2:t(e+1)===`NOT`&&t(e+2)===`DISTINCT`?3:0:0}},RI=e=>{let t=LI(e);return e=>{let n=e,r=t(n);for(;r;)n+=r,r=t(n);return n-e}},zI=[`ARRAY`,`MAP`,`STRUCT`],BI=e=>{let t=uF(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||!zI.includes(i.value.slice(0,a).toUpperCase()))return 0;let o=0;for(let t=r;t<e.length;t++)if(e[t].quoted||(o+=n(e[t].value)),o<=0)return t-r+1;return e.length-r}},VI=e=>{let t=HF(e),n=UF(e),r=aI(e);return e=>t(e)||n(e)||r(e)},HI=e=>{let t=sI(e),n=cI(e);return e=>t(e)&&n(e+1)},UI=e=>{let t=LF(e),n=VF(e);return e=>t(e)&&n(e+1)},WI=e=>{let t=UI(e),n=TF(e);return e=>t(e)&&n(e+2)},GI=e=>{let t=UI(e),n=JF(e);return e=>t(e)&&n(e+2)},KI=e=>{let t=vF(e),n=yF(e),r=bF(e),i=xF(e),a=SF(e),o=CF(e),s=wF(e),c=UI(e),l=nL(e);return e=>t(e)||n(e)||r(e)||i(e)||a(e)||o(e)||s(e)||c(e)||l(e)},qI=[`OR`,`REPLACE`,`TRANSIENT`,`TEMPORARY`,`TEMP`,`LOCAL`,`GLOBAL`,`VOLATILE`,`UNLOGGED`,`HYBRID`,`ICEBERG`,`DYNAMIC`,`EXTERNAL`],JI=e=>{let t=vF(e),n=TF(e),r=uF(e),i=oI(e),a=WF(e),o=PF(e),s=GF(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||!qI.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)}},YI=e=>{let t=YF(e),n=XF(e);return e=>t(e)&&n(e+1)},XI=e=>{let t=JI(e);return e=>t(e)>0},ZI=e=>{let t=vF(e),n=OF(e),r=DF(e),i=FI(e);return e=>{if(!t(e))return 0;let a=e+1;return n(a)&&a++,II(i(a))&&a++,r(a)?a+1-e:0}},QI=e=>{let t=ZI(e);return e=>t(e)>0},$I=e=>{let t=yF(e),n=TF(e);return e=>t(e)&&n(e+1)},eL=e=>{let t=uF(e),n=fF(e);return e=>{if(!t(e))return 0;let r=e+1;for(;n(r)&&t(r+1);)r+=2;return r-e}},tL=e=>{let t=SI(e),n=CI(e),r=eL(e);return i=>{if(!t(i)&&!n(i))return 0;let a=r(i+1);return a>0&&e[i+a].value.toUpperCase()===`SP_ADDEXTENDEDPROPERTY`?a+1:0}},nL=e=>{let t=tL(e);return e=>t(e)>0},rL=/* @__PURE__ */ `COMPRESS.COMPUTE.DEFERRABLE.DISABLE.ENABLE.EXCEPTIONS.FILESYSTEM_LIKE_LOGGING.GLOBAL.INDEXING.INDEXTYPE.INITIALLY.INITRANS.INVISIBLE.LOCAL.LOGGING.MAXTRANS.NOCOMPRESS.NOLOGGING.NOPARALLEL.NORELY.NOSORT.NOT.NOVALIDATE.ONLINE.PARALLEL.PCTFREE.PCTUSED.RELY.REVERSE.SORT.STORAGE.TABLESPACE.USING.VALIDATE.VISIBLE`.split(`.`),iL=e=>{let t=FI(e),n=eL(e);return e=>{if(t(e)!==`USING`||t(e+1)!==`INDEX`)return 0;let r=n(e+2);return r&&!rL.includes(t(e+2))?2+r:0}},aL=e=>{let t=hI(e),n=uF(e),r=hF(e),i=gF(e),a=qF(e),o=PF(e),s=FF(e),c=_I(e),l=vI(e);return(u,d)=>{if(!t(u))return!1;let f=new Set(d.map(e=>e.toUpperCase())),p=0;do{for(u++;r(u);u++)p++;if(!n(u)||!f.has(e[u].value.toUpperCase())||!a(u+1)||!o(u+2)||!s(u+3))return!1;for(u+=4;p>0&&i(u);u++)p--}while(c(u));return!l(u)}},oL=[`UNIQUE`,`PRIMARY`,`FOREIGN`,`CHECK`,`DEFAULT`],sL=e=>{let t=$I(e),n=KF(e),r=kF(e),i=MF(e),a=uF(e),o=dI(e),s=fI(e),c=pI(e),l=eL(e),u=FI(e),d=(e,t)=>{let n=t,d=l(n);return!d||(n+=d,o(n)&&(s(n+1)||c(n+1))&&(n+=2),!r(n))?0:(n++,i(n)&&(n++,a(n)&&!oL.includes(u(n))&&n++),n-e)};return e=>{if(!t(e))return{length:0,only:!1};let r=e+2;if(n(r)){let t=d(e,r+1);if(t)return{length:t,only:!0}}return{length:d(e,r),only:!1}}},cL=e=>{let t=sL(e);return e=>t(e).length},lL=e=>{let t=sL(e);return e=>t(e).only},uL=e=>{let t=cL(e),n=AF(e),r=jF(e);return e=>{let i=t(e);return i>0&&n(e+i)&&r(e+i+1)}},dL=e=>{let t=cL(e),n=NF(e),r=jF(e);return e=>{let i=t(e);return i>0&&n(e+i)&&r(e+i+1)}},fL=e=>{let t=cL(e),n=IF(e);return e=>{let r=t(e);return r>0&&n(e+r)}},pL=e=>{let t=cL(e);return e=>t(e)>0},mL=e=>{let t=$I(e),n=KF(e),r=yF(e),i=TF(e),a=eL(e),o=(e,t)=>{let n=a(t),o=t+n;return n&&r(o)&&!i(o+1)?o-e:0};return e=>{if(!t(e))return 0;let r=e+2;return n(r)&&o(e,r+1)||o(e,r)}},hL=e=>{let t=mL(e);return e=>t(e)>0},gL=Array.from(new Set([...tF,...nF,...rF,...iF,...aF,...oF,...sF,...cF].map(e=>e.toUpperCase()))),_L=(e=>{let t=/* @__PURE__ */ 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})(gL),vL=e=>{let t=hF(e),n=gF(e);return r=>{let i=0;for(let a=r;a<e.length;a++)if(t(a))i++;else if(n(a)&&(i--,i===0))return a+1;return e.length}},yL=e=>t=>{let n=e[t];return!!n&&n.quoted===`[`&&/^\d*$/.test(n.value)},bL=e=>{let t=yL(e),n=yI(e);return e=>{if(n(e))return t(e+1)?2:1;let r=e;for(;t(r);)r++;return r-e}},xL=e=>{let t=uF(e),n=hF(e),r=vL(e),i=bL(e),a=(i,a)=>{let o=i;for(let[i,s]of a.entries()){let a=e[o];if(!a||!t(o)||i>0&&a.quoted||a.value.toUpperCase()!==s)return 0;o++,n(o)&&(o=r(o))}return o-i};return n=>{let r=e[n];if(!r||!t(n))return 0;let o=r.value.toUpperCase();for(let e of _L.get(o)??[]){let t=a(n,e);if(t)return t+i(n+t)}return gL.includes(o)?1+i(n+1):0}},SL=/* @__PURE__ */ `AS.AUTO_INCREMENT.AUTOINCREMENT.CHECK.COLLATE.COMMENT.CONSTRAINT.DEFAULT.ENCRYPT.FOR.FOREIGN.GENERATED.IDENTITY.INVISIBLE.KEY.MASKING.NOT.NULL.ON.PRIMARY.PROJECTION.REFERENCES.UNIQUE.USING.VISIBLE.WITH`.split(`.`),CL=e=>SL.includes(e.toUpperCase()),wL=e=>!!e&&!e.quoted&&CL(e.value),TL=e=>t=>wL(e[t]),EL=e=>e.quoted===`"`&&(e.value===`char`||e.value===`bit`)?kI(e):e.value,DL=e=>{let t=uF(e),n=fF(e),r=pF(e),i=hF(e),a=gF(e),o=vL(e),s=bL(e),c=xL(e),l=n=>t(n)&&e[n].quoted!==`'`,u=n=>t(n)&&!e[n].quoted&&!CL(e[n].value),d=t=>t>=e.length||r(t)||a(t)||wL(e[t]),f=t=>{let n=e[t];if(n.quoted)return!1;let r=n.value.toUpperCase();return r===`TAG`&&i(t+1)||r===`SORT`&&d(t+1)};return t=>{if(!l(t)||wL(e[t])||f(t))return 0;for(let e=t;u(e);e++){let n=c(e+1);if(n)return e+1+n-t}let r=t+1;for(;n(r)&&l(r+1);)r+=2;return i(r)&&(r=o(r)),r+s(r)-t}},OL=e=>{let t=uF(e),n=hF(e),r=xL(e),i=n=>{let r=e[n];return r&&t(n)&&!r.quoted?r.value.toUpperCase():``},a=n=>t(n)&&e[n].quoted!==`'`&&!r(n);return e=>{switch(i(e)){case`CHECK`:return n(e+1)||i(e+1)===`NOT`&&i(e+2)===`FOR`&&i(e+3)===`REPLICATION`;case`LIKE`:return a(e+1);case`EXCLUDE`:return i(e+1)===`USING`||n(e+1);case`FULLTEXT`:case`SPATIAL`:return n(e+1)||a(e+1)&&n(e+2);case`PERIOD`:return i(e+1)===`FOR`;case`SUPPLEMENTAL`:return i(e+1)===`LOG`;default:return!1}}},kL=[`@NAME`,`@VALUE`,`@LEVEL0TYPE`,`@LEVEL0NAME`,`@LEVEL1TYPE`,`@LEVEL1NAME`,`@LEVEL2TYPE`,`@LEVEL2NAME`],AL=kL.filter(e=>!e.startsWith(`@LEVEL0`)),jL=e=>!!e&&!e.quoted&&e.value[0]===`@`,ML=e=>!!e&&!e.quoted&&/^[-+*/%&|^]/.test(e.value);function NL(e,t){let n=uF(e),r=dF(e),i=pF(e),a=mF(e),o=FF(e),s=IF(e),c=wI(e),l=KI(e),u=e=>n(e)&&!c(e)&&!l(e),d=/* @__PURE__ */ new Map,f=tL(e)(t.value);if(!f)return t.value++,null;t.value+=f;for(let n=0;u(t.value);n++){let a=e[t.value],c=kL[n]??``;if(jL(a)&&r(t.value+1)&&(c=a.value.toUpperCase(),t.value+=2,!u(t.value)))break;if(!o(t.value)&&!s(t.value)&&d.set(c,e[t.value]),t.value++,ML(e[t.value]))return null;if(!i(t.value))break;t.value++}return a(t.value)&&t.value++,PL(d)}function PL(e){if(AL.some(t=>jL(e.get(t))))return null;let t=t=>e.get(t)?.value??``,n=e.get(`@VALUE`),r=t(`@LEVEL1NAME`),i=t(`@LEVEL2TYPE`).toUpperCase(),a=t(`@LEVEL2NAME`);return t(`@NAME`).toUpperCase()!==`MS_DESCRIPTION`||n?.quoted!==`'`||t(`@LEVEL1TYPE`).toUpperCase()!==`TABLE`||!r?null:i?i!==`COLUMN`||!a?null:{type:zP.commentOnColumn,tableName:r,columnName:a,comment:n.value}:{type:zP.commentOnTable,name:r,comment:n.value}}var FL={"'":`string`,"[":`bracket`,'"':`word`,"`":`word`},IL=[`AND`,`AT`,`BETWEEN`,`COLLATE`,`ILIKE`,`IN`,`IS`,`LIKE`,`NOT`,`OR`,`OVERLAPS`,`SIMILAR`],LL=[`COLUMN_FORMAT`,`INDEX`,`MASK`,`ROWGUIDCOL`,`SPARSE`,`STORAGE`],RL=/^[+-]?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i,zL=/^(?:[a-z_][\w$]*|"(?:[^"]|"")*")$/i,BL=/^\[\d*\]$/,VL=e=>e&&e.type===HP.string&&!e.quoted?e.value.toUpperCase():``,HL=e=>t=>VL(e[t])===`FOR`&&VL(e[t-1])===`VALUE`&&VL(e[t-2])===`NEXT`,UL=e=>{let t=pF(e),n=hF(e),r=gF(e),i=_F(e),a=mF(e),o=TL(e),s=AI(e),c=YI(e),l=HL(e),u=t=>VL(e[t])===`LOCAL`?u(t+1):VL(e[t])===`TIME`&&VL(e[t+1])===`ZONE`,d=t=>{let r=VL(e[t]);return r===`FOR`?!l(t):r===`WITH`||r===`WITHOUT`?!u(t+1):r===`TAG`?n(t+1):o(t)||LL.includes(r)||s(t)||c(t)},f=t=>VL(e[t])===`CASE`,p=t=>/^END(?:::|$)/.test(VL(e[t]));return o=>{let s=0,c=o;for(;c<e.length&&!a(c);c++)if(n(c)||f(c))s++;else if(r(c)){if(s===0)break;s--}else if(s>0)p(c)&&s--;else if(t(c)||i(c))break;else if(c>o&&d(c))break;return c-o}},WL=(e,t)=>e.flatMap(e=>{switch(e.type){case HP.leftParent:return[{kind:`open`,text:`(`}];case HP.rightParent:return[{kind:`close`,text:`)`}];case HP.comma:return[{kind:`comma`,text:`,`}];case HP.period:return[{kind:`period`,text:`.`}]}return e.quoted?[{kind:FL[e.quoted],text:kI(e,t),token:e}]:e.value.split(`::`).flatMap((e,t)=>[...t?[{kind:`cast`,text:`::`}]:[],...e?[{kind:`word`,text:e}]:[]])}),GL=e=>e.kind===`word`&&!/[\p{L}\p{N}_$#@'"`]/u.test(e.text),KL=(e,t)=>/^ARRAY$/i.test(e.text)||!/^\[[\p{L}_@#]/u.test(t.text),qL=(e,t)=>e.kind===`word`&&t.kind===`word`&&(t.text===`=`&&/[<>!=]$/.test(e.text)||e.text===`=`&&t.text.startsWith(`>`)),JL=(e,t)=>[`close`,`comma`,`period`,`cast`].includes(t.kind)||[`open`,`period`,`cast`].includes(e.kind)?!1:e.kind===`comma`?!0:qL(e,t)?!1:t.kind===`bracket`&&!KL(e,t)?!0:t.kind===`open`||t.kind===`bracket`?GL(e):!0,YL=e=>e.reduce((t,n,r)=>r&&JL(e[r-1],n)?`${t} ${n.text}`:t+n.text,``),XL=(e,t)=>{let n=0;for(let r=t;r<e.length;r++)if(e[r].kind===`open`)n++;else if(e[r].kind===`close`&&--n===0)return r;return-1},ZL=e=>{let t=e;for(;t.length>1&&t[0].kind===`open`&&XL(t,0)===t.length-1;)t=t.slice(1,-1);return t},QL=e=>{let t=0;return e.length>0&&e[0].kind===`word`&&e.every(({kind:e,text:n})=>e===`open`?(t++,!0):e===`close`?--t>=0:t>0||e===`period`?!0:e===`bracket`?BL.test(n):e===`word`&&zL.test(n)&&!IL.includes(n.toUpperCase()))},$L=e=>{if(e.length===1&&e[0].kind===`string`)return!0;let t=YL(e);return RL.test(t)||/^(?:null|true|false)$/i.test(t)},eR=e=>{let t=0,n=-1;return e.forEach(({kind:e},r)=>{e===`open`?t++:e===`close`?t--:t===0&&e===`cast`&&(n=r)}),n},tR=e=>{let t=eR(e);if(t===-1||!QL(e.slice(t+1)))return e;let n=ZL(e.slice(0,t));return $L(n)?n:e};function nR(e,t){let n=tR(ZL(WL(e,t))),[r]=n;if(n.length===1&&r.token){let{value:e,prefix:n=``}=r.token;return n+OI(e,t)}return YL(n)}function rR(e,t,n){let r=UL(e)(t.value),i=e.slice(t.value,t.value+r);return t.value+=r,nR(i,n)}var iR=({kind:e,text:t,token:n})=>e===`word`&&(n?n.quoted===`"`&&n.value===`nextval`:/^nextval$/i.test(t)),aR=/^(?:e|u&)?$/i,oR=e=>{let t=ZL(e),n=eR(t);if(n!==-1)return QL(t.slice(n+1))&&oR(t.slice(0,n));let[r]=t;return t.length===1&&r.kind===`string`&&aR.test(r.token?.prefix??``)},sR=e=>{let t=UL(e);return n=>{let r=ZL(WL(e.slice(n,n+t(n)))),[i,a]=r;return!!i&&iR(i)&&a?.kind===`open`&&XL(r,1)===r.length-1&&oR(r.slice(2,-1))}};function cR(e,t,n){let r=KI(e),i=mF(e),a=pF(e),o=hF(e),s=gF(e),c=uF(e),l=fF(e),u=TF(e),d=IF(e),f=xI(e),p=HL(e),m=lL(e)(t.value),h=()=>t.value<e.length,g=e=>f(e)&&!p(e),_=t=>{let n=0,c=t;for(;c<e.length&&!(i(c)||r(c));c++)if(o(c))n++;else if(s(c)){if(n===0)break;n--}else if(n===0&&(a(c)||g(c)))break;return c},v={type:zP.alterTableAddDefault,name:``,columnName:``,default:``},y=!1;if(t.value++,u(t.value)&&(t.value++,m&&t.value++,c(t.value)))for(v.name=e[t.value].value,t.value++;l(t.value)&&c(t.value+1);)v.name=e[t.value+1].value,t.value+=2;for(;h()&&!r(t.value);){if(i(t.value)){t.value++;break}if(!y&&d(t.value)){let r=t.value+1,i=_(r);v.default=nR(e.slice(r,i),n),t.value=i,y=!0,f(t.value)&&c(t.value+1)&&(v.columnName=e[t.value+1].value,t.value+=2);continue}t.value++}return v}function lR(e,t){let n=uF(e),r=hF(e),i=gF(e),a=pF(e),o=mF(e),s=BF(e),c=zF(e),l=()=>t.value<e.length&&!o(t.value),u=t=>n(t+1)&&/^\d+$/.test(e[t+1].value)&&i(t+2),d=[],f={name:``,sort:BP.asc},p=!1;for(t.value++;l()&&!i(t.value);){if(r(t.value)){p||=!f.name||!u(t.value);let e=0;for(;l();){if(r(t.value))e++;else if(i(t.value)&&--e===0)break;t.value++}if(!l())break}!f.name&&n(t.value)&&!s(t.value)&&!c(t.value)&&(f.name=e[t.value].value),s(t.value)&&(f.sort=BP.desc),a(t.value)&&(d.push(f),f={name:``,sort:BP.asc}),t.value++}return o(t.value)?[]:(f.name!==``&&d.push(f),t.value++,p?[]:d)}function uR(e,t,n){let r=KI(e),i=uF(e),a=hF(e),o=gF(e),s=fF(e),c=mF(e),l=dF(e),u=LF(e),d=HI(e),f=JI(e),p=()=>t.value<e.length,m={type:zP.createTable,name:``,comment:``,columns:[],indexes:[],keys:[],foreignKeys:[]},h=f(t.value);t.value+=h===0?2:h;let g=!1,_=!0;for(;p()&&!r(t.value);){let r=e[t.value];if(c(t.value)){t.value++;break}if(m.name&&d(t.value)){if(t.value+=2,i(t.value)&&a(t.value+1)&&t.value++,a(t.value)){let e=0;for(;p();){if(a(t.value))e++;else if(o(t.value)&&(e--,e===0)){t.value++;break}t.value++}}continue}if(a(t.value)){if(t.value++,g||!_){let e=1;for(;p()&&e>0;)a(t.value)?e++:o(t.value)&&e--,t.value++;continue}let{columns:r,indexes:i,keys:s,foreignKeys:c}=dR(e,t,n);m.columns=r,m.indexes=i,m.keys=s,m.foreignKeys=c,g=!0;continue}if(i(t.value)&&!m.name){for(m.name=r.value,_=!0,t.value++;s(t.value);){if(!i(t.value+1)){t.value++;break}m.name=e[t.value+1].value,t.value+=2}continue}if(u(t.value)){r=e[++t.value],l(t.value)&&(r=e[++t.value]),i(t.value)&&(m.comment=r.value,t.value++),_=!1;continue}_=!1,t.value++}return m}function dR(e,t,n){let r=uF(e),i=hF(e),a=gF(e),o=pF(e),s=mF(e),c=fF(e),l=yL(e),u=MF(e),d=DF(e),f=AF(e),p=NF(e),m=VI(e),h=OF(e),g=FF(e),_=PF(e),v=IF(e),y=cI(e),b=bI(e),ee=sR(e),te=VF(e),ne=LF(e),re=jF(e),ie=RF(e),ae=dF(e),x=YI(e),oe=ZF(e),se=gI(e),ce=EF(e),S=hI(e),le=aL(e),C=AI(e),ue=xL(e),w=DL(e),de=BI(e),fe=NI(e),pe=RI(e),me=PI(e),he=OL(e),ge=DI(e),_e=TI(e),ve=()=>t.value<e.length,ye=(t,n)=>n.every((n,r)=>!e[t+r]?.quoted&&e[t+r]?.value.toUpperCase()===n),be=e=>!te(e)||!g(e+1)?0:ye(e+2,[`FOR`,`INSERT`,`ONLY`])?5:ye(e+2,[`FOR`,`INSERT`,`AND`,`UPDATE`])?6:2,xe=e=>u(e)||f(e)||p(e)||h(e)||d(e)||re(e)||me(e)||he(e),Se=[],Ce=[],we=[],Te=[],Ee=[],De=[],T={name:``,dataType:``,default:``,comment:``,primaryKey:!1,autoIncrement:!1,unique:!1,nullable:!0},Oe=!1,ke=``,Ae=-1,je=null,Me=e=>se(e)&&d(e+1)&&!ce(e+2),Ne=e=>e===Ae?ke:``,Pe=t=>{let n=0;for(;t<e.length&&!s(t);t++)if(i(t))n++;else if(a(t)){if(n--===0)return-1}else if(n===0&&o(t))return-1;else if(n===0&&S(t))return t;return-1},Fe=(e,t)=>{t.length&&(e?we.push({name:e,columnNames:t}):je={name:e,columnNames:t})},Ie=-1;for(;ve();){let s=e[t.value];je&&Me(t.value)&&(we.push(je),je=null);let te=de(t.value);if(te){let r=t.value+te,i=[];for(;t.value<r;)i.push(o(t.value)?`,`:kI(e[t.value],n)),t.value++;T.dataType=i.reduce((e,t)=>!e||/^[,:>]/.test(t)?e+t:`${e} ${t}`,``);continue}let{span:se}=fe(t.value);if(se){t.value+=se;continue}let ce=p(t.value)&&re(t.value+1)&&ie(t.value+2);if(T.name&&!Oe&&(ie(t.value)||ce)){ce&&(t.value+=2);let n={columnNames:[T.name],refTableName:``,refColumnNames:[],onDelete:``,onUpdate:``};pR(e,t,n),n.refTableName&&n.refColumnNames.length<=1&&Te.push(n);continue}if(!T.name&&xe(t.value)&&(Oe=!0),Oe&&me(t.value)){t.value++;continue}if(r(t.value)&&!Oe&&!T.name&&!_(t.value)&&!C(t.value)){T.name=s.value,Ie=++t.value;continue}if(i(t.value)){let e=0;for(;ve();){if(i(t.value))e++;else if(a(t.value)&&(e--,e===0)){t.value++;break}t.value++}continue}if(u(t.value)){s=e[++t.value],r(t.value)&&!h(t.value)&&!f(t.value)&&!p(t.value)&&(ke=s.value,t.value++),Ae=t.value;continue}if(f(t.value)){let n=Ne(t.value);if(s=e[++t.value],re(t.value)){if(s=e[++t.value],Oe&&r(t.value)&&(s=e[++t.value]),i(t.value)){let r=lR(e,t).map(e=>e.name);Ee.push(...r.map(e=>e.toUpperCase())),Fe(n,r)}else T.name&&(T.primaryKey=!0,Fe(n,[T.name]))}continue}if(p(t.value)){let n=fR(e,t);n&&Te.push(n);continue}if(d(t.value)||re(t.value)){if(s=e[++t.value],r(t.value)){let n=s.value;if(s=e[++t.value],h(t.value)){ke=n;continue}if(i(t.value)){let r=lR(e,t);r.length&&Ce.push({name:n,unique:!1,columns:r})}}continue}if(h(t.value)){let n=Ne(t.value);if(s=e[++t.value],(re(t.value)||d(t.value))&&(s=e[++t.value]),T.name){T.unique=!0,Fe(n,[T.name]);continue}t.value+=pe(t.value);let a=ke;if(r(t.value)&&(a=e[t.value].value,t.value++,t.value+=pe(t.value)),i(t.value)){let n=lR(e,t),r=n.map(e=>e.name),i=Pe(t.value);i!==-1&&!le(i,r)?n.length&&Ce.push({name:a,unique:!1,columns:n}):n.length>1?(Ce.push({name:a,unique:!0,columns:n}),a||Fe(a,r)):(De.push(...r.map(e=>e.toUpperCase())),Fe(a,r))}continue}if(_(t.value)){s=e[++t.value],g(t.value)?(T.nullable=!1,t.value++):C(t.value)&&t.value++;continue}if(C(t.value)){t.value++;continue}if(v(t.value)){let r=y(t.value-1)&&b(t.value-2);if(t.value++,!r){t.value+=be(t.value);let r=ee(t.value),i=rR(e,t,n);r?T.autoIncrement=!0:i&&(T.default=i)}continue}if(ne(t.value)){s=e[++t.value],ae(t.value)&&(s=e[++t.value]),r(t.value)&&(T.comment=s.value,t.value++);continue}if(m(t.value)){T.autoIncrement=!0,t.value++;continue}if(x(t.value)){t.value+=2,r(t.value)&&t.value++;continue}if(oe(t.value)){t.value++,ae(t.value)&&t.value++,r(t.value)&&t.value++;continue}let S=ue(t.value),he=t.value===Ie?w(t.value):0,ye=he>0&&(!S||c(t.value+1)),Le=ye?he:S;if(Le&&(Oe||T.dataType)){t.value+=Le;continue}if(Le){let o=t.value+Le,u=``,d=0;for(;t.value<o;){if(s=e[t.value],i(t.value))u+=`(`,d++;else if(a(t.value))u+=`)`,d--;else if(d){let e=kI(s,n);u+=r(t.value)&&(r(t.value-1)||a(t.value-1))?` ${e}`:e}else if(l(t.value))u+=kI(s);else{let e=ye?kI(s):EL(s);u+=u&&!c(t.value)&&!c(t.value-1)?` ${e}`:e}t.value++}for(;d>0;)u+=`)`,d--;for(;ge(t.value);)_e(t.value)||(u+=` ${e[t.value].value}`),t.value++;T.dataType=u;continue}if(o(t.value)){(T.name||T.dataType)&&Se.push(T),T={name:``,dataType:``,default:``,comment:``,primaryKey:!1,autoIncrement:!1,unique:!1,nullable:!0},Oe=!1,ke=``,je=null,t.value++;continue}if(a(t.value)){t.value++;break}t.value++}return!Se.includes(T)&&(T.name||T.dataType)&&Se.push(T),Se.forEach(e=>{Ee.includes(e.name.toUpperCase())&&(e.primaryKey=!0),De.includes(e.name.toUpperCase())&&(e.unique=!0)}),{columns:Se,indexes:Ce,keys:we,foreignKeys:Te}}function fR(e,t){let n=uF(e),r=hF(e),i=gF(e),a=jF(e),o=()=>t.value<e.length,s={columnNames:[],refTableName:``,refColumnNames:[],onDelete:``,onUpdate:``},c=e[++t.value];if(a(t.value)){if(c=e[++t.value],r(t.value)){for(c=e[++t.value];o()&&!i(t.value);)n(t.value)&&s.columnNames.push(c.value),c=e[++t.value];c=e[++t.value]}if(pR(e,t,s),s.columnNames.length&&s.refTableName&&(!s.refColumnNames.length||s.columnNames.length===s.refColumnNames.length))return s}return null}function pR(e,t,n){let r=uF(e),i=hF(e),a=gF(e),o=RF(e),s=fF(e),c=NI(e),l=()=>t.value<e.length;if(!o(t.value))return;let u=e[++t.value];if(r(t.value)){for(n.refTableName=u.value,t.value++;s(t.value);){if(!r(t.value+1)){t.value++;break}n.refTableName=e[t.value+1].value,t.value+=2}if(i(t.value)){for(u=e[++t.value];l()&&!a(t.value);)r(t.value)&&n.refColumnNames.push(u.value),u=e[++t.value];t.value++}for(let e=c(t.value);e.span;e=c(t.value))e.event===`DELETE`&&e.action?n.onDelete=e.action:e.event===`UPDATE`&&e.action&&(n.onUpdate=e.action),t.value+=e.span}}function mR(e,t){let n=KI(e),r=mF(e),i=uF(e),a=MF(e),o=fF(e),s=TF(e),c=NF(e),l=lL(e)(t.value),u=()=>t.value<e.length,d={type:zP.alterTableAddForeignKey,name:``,columnNames:[],refTableName:``,refColumnNames:[],onDelete:``,onUpdate:``};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=fR(e,t);n&&(d.columnNames=n.columnNames,d.refTableName=n.refTableName,d.refColumnNames=n.refColumnNames,d.onDelete=n.onDelete,d.onUpdate=n.onUpdate);continue}t.value++}return d}function hR(e,t){let n=KI(e),r=mF(e),i=uF(e),a=hF(e),o=MF(e),s=AF(e),c=fF(e),l=jF(e),u=TF(e),d=pF(e),f=kF(e),p=RI(e),m=iL(e),h=lL(e)(t.value),g=()=>t.value<e.length,_={type:zP.alterTableAddPrimaryKey,name:``,constraintName:``,usingIndexName:``,columnNames:[]},v=!1,y=!0;for(t.value++;g()&&!n(t.value);){let n=e[t.value];if(r(t.value)){t.value++;break}if(u(t.value)){if(n=e[++t.value],h&&(n=e[++t.value]),i(t.value))for(_.name=n.value,t.value++;c(t.value);){if(!i(t.value+1)){t.value++;break}_.name=e[t.value+1].value,t.value+=2}continue}if(v&&(d(t.value)||f(t.value))&&(y=!1),o(t.value)){n=e[++t.value],i(t.value)&&!s(t.value)&&(v||(_.constraintName=n.value),t.value++);continue}let g=m(t.value);if(g){v&&y&&(_.usingIndexName=e[t.value+g-1].value),t.value+=g;continue}if(s(t.value)){n=e[++t.value],l(t.value)&&(n=e[++t.value],t.value+=p(t.value),a(t.value)&&(_.columnNames=lR(e,t).map(e=>e.name),v=!0));continue}t.value++}return _}function gR(e,t){let n=KI(e),r=mF(e),i=uF(e),a=pF(e),o=kF(e),s=MF(e),c=fF(e),l=TF(e),u=OF(e),d=AF(e),f=NF(e),p=jF(e),m=DF(e),h=WF(e),g=PF(e),_=GF(e),v=hF(e),y=gF(e),b=RI(e),ee=iL(e),te=lL(e)(t.value),ne=()=>t.value<e.length,re=()=>{let e=0;for(;ne()&&!r(t.value);){if(v(t.value))e++;else if(y(t.value)&&--e===0){t.value++;return}t.value++}},ie=[],ae=``,x=``,oe=null,se=!1;if(t.value++,l(t.value)&&(t.value++,te&&t.value++,i(t.value)))for(ae=e[t.value].value,t.value++;c(t.value);){if(!i(t.value+1)){t.value++;break}ae=e[t.value+1].value,t.value+=2}for(;ne()&&!n(t.value);){if(r(t.value)){t.value++;break}if(a(t.value)||o(t.value)){x=``,oe=null,se=!1,t.value++;continue}if(v(t.value)){re();continue}if(s(t.value)){t.value++,i(t.value)&&!u(t.value)&&!d(t.value)&&!f(t.value)&&(x=e[t.value].value,t.value++);continue}if(u(t.value)){if(t.value++,se){x=``;continue}(p(t.value)||m(t.value))&&t.value++,h(t.value)&&g(t.value+1)&&_(t.value+2)&&(t.value+=3),t.value+=b(t.value);let n=x;if(x=``,i(t.value)&&(n=e[t.value].value,t.value++,t.value+=b(t.value)),v(t.value)){let r=lR(e,t);r.length&&(oe={type:zP.alterTableAddUnique,name:ae,constraintName:n,usingIndexName:``,columns:r},ie.push(oe))}continue}let n=ee(t.value);if(n){oe&&(oe.usingIndexName=e[t.value+n-1].value),t.value+=n;continue}se=!0,t.value++}return ie}var _R=[[`ADD`,`GENERATED`,`ALWAYS`,`AS`,`IDENTITY`],[`ADD`,`GENERATED`,`BY`,`DEFAULT`,`AS`,`IDENTITY`]],vR=[`ADD`,`DROP`,`OPTIONS`,`RESET`,`RESTART`,`SET`,`TYPE`];function yR(e,t){let n=mL(e),r=KI(e),i=mF(e),a=pF(e),o=hF(e),s=gF(e),c=uF(e),l=yF(e),u=TF(e),d=bF(e),f=JF(e),p=XF(e),m=IF(e),h=t=>{let n=e[t];return n&&c(t)&&!n.quoted?n.value.toUpperCase():``},g=(e,t)=>t.every((t,n)=>h(e+n)===t),_=t=>{let n=t;for(;n<e.length&&!r(n);)n++;return sR(e.slice(t,n))(0)},v=e=>p(e)&&m(e+1)&&_(e+2)||_R.some(t=>g(e,t)),y=e=>c(e)&&(!r(e)||vR.includes(h(e+1))),b=n(t.value),ee=e[t.value+b-1].value,te=[],ne=0,re=!0;for(t.value+=b;t.value<e.length;){if(i(t.value)){t.value++;break}if(re&&l(t.value)&&!u(t.value+1)){re=!1,t.value++,f(t.value)&&t.value++,y(t.value)&&(v(t.value+1)&&te.push({type:zP.alterTableAlterColumnAutoIncrement,name:ee,columnName:e[t.value].value}),t.value++,d(t.value)&&t.value++);continue}if(r(t.value))break;re=!1,o(t.value)?ne++:s(t.value)?ne--:ne===0&&a(t.value)&&(re=!0),t.value++}return te}function bR(e,t){let n=KI(e),r=uF(e),i=fF(e),a=mF(e),o=qF(e),s=FF(e),c=()=>t.value<e.length,l={type:zP.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 xR(e,t){let n=KI(e),r=uF(e),i=fF(e),a=mF(e),o=qF(e),s=FF(e),c=()=>t.value<e.length,l={type:zP.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 SR(e,t){let n=KI(e),r=mF(e),i=OF(e),a=uF(e),o=hF(e),s=VF(e),c=KF(e),l=mI(e),u=WF(e),d=PF(e),f=GF(e),p=hI(e),m=aL(e),h=ZI(e),g=eL(e),_=RI(e),v=()=>t.value<e.length,y=()=>{let n=g(t.value);return n?(t.value+=n,e[t.value-1].value):``},b={type:zP.createIndex,name:``,unique:i(t.value+1),tableName:``,columns:[]};for(t.value+=h(t.value)||1,l(t.value)&&t.value++,u(t.value)&&d(t.value+1)&&f(t.value+2)&&(t.value+=3),s(t.value)||(b.name=y());v()&&!n(t.value);){if(r(t.value)){t.value++;break}if(s(t.value)&&!b.tableName){t.value++,c(t.value)&&a(t.value+1)&&t.value++,b.tableName=y(),b.tableName&&(t.value+=_(t.value),o(t.value)&&(b.columns=lR(e,t)));continue}p(t.value)&&b.unique&&(b.unique=m(t.value,b.columns.map(({name:e})=>e))),t.value++}return b}function CR(e,t){let n=[],r={value:0},i=()=>r.value<e.length,a=XI(e),o=QI(e),s=uL(e),c=dL(e),l=fL(e),u=pL(e),d=hL(e),f=WI(e),p=GI(e),m=nL(e);for(;i();){if(a(r.value)){n.push(uR(e,r,t));continue}if(o(r.value)){n.push(SR(e,r));continue}if(u(r.value)){let i=r.value;s(i)?n.push(hR(e,r)):c(i)?n.push(mR(e,r)):l(i)&&n.push(cR(e,r,t));let a={value:i};n.push(...gR(e,a)),r.value=Math.max(r.value,a.value);continue}if(d(r.value)){n.push(...yR(e,r));continue}if(f(r.value)){n.push(xR(e,r));continue}if(p(r.value)){n.push(bR(e,r));continue}if(m(r.value)){let t=NL(e,r);t&&n.push(t);continue}r.value++}return n}var wR=(e,{database:t}={})=>CR(eF(e,t),t);function TR(e,t,n,r){let i=Nm({}),a=DR(ER(wR(e,{database:Object.values(n_).find(e=>i_[e]===r)})));return a.forEach(e=>LR(i,e,t)),RR(i,a),zR(i,a),Ah(n?n(i):i)}function ER(e){let t={tables:[],indexes:[],primaryKeys:[],foreignKeys:[],uniques:[],defaults:[],autoIncrements:[],tableComments:[],columnComments:[]};for(let n of e)switch(n.type){case zP.createTable:n.name&&t.tables.push(n);break;case zP.createIndex:n.tableName&&n.columns.length&&t.indexes.push(n);break;case zP.alterTableAddPrimaryKey:n.name&&n.columnNames.length&&t.primaryKeys.push(n);break;case zP.alterTableAddForeignKey:n.name&&n.columnNames.length&&n.refTableName&&(!n.refColumnNames.length||n.columnNames.length===n.refColumnNames.length)&&t.foreignKeys.push(n);break;case zP.alterTableAddUnique:n.name&&n.columns.length&&t.uniques.push(n);break;case zP.alterTableAddDefault:n.name&&n.columnName&&n.default&&t.defaults.push(n);break;case zP.alterTableAlterColumnAutoIncrement:n.name&&n.columnName&&t.autoIncrements.push(n);break;case zP.commentOnTable:n.name&&t.tableComments.push(n);break;case zP.commentOnColumn:n.tableName&&n.columnName&&t.columnComments.push(n)}return t}function DR({tables:e,indexes:t,primaryKeys:n,foreignKeys:r,uniques:i,defaults:a,autoIncrements:o,tableComments:s,columnComments:c}){return t.forEach(t=>{let n=SA(e,t.tableName);if(!n)return;let r=MR(t),i=n.indexes.find(e=>kR(n,e)&&jR(MR(e),r));if(i){i.name||=t.name,i.unique||=t.unique;return}n.keys.some(e=>jR(e,r))||n.indexes.push({name:t.name,unique:t.unique,columns:t.columns})}),n.forEach(t=>{let n=SA(e,t.name);if(!n)return;let r=AR(n,{name:t.usingIndexName||t.constraintName,columnNames:t.columnNames});r&&n.indexes.splice(n.indexes.indexOf(r),1),t.columnNames.forEach(e=>{let t=SA(n.columns,e);t&&(t.primaryKey=!0)})}),i.forEach(t=>{let n=SA(e,t.name);if(!n)return;let r=AR(n,{name:t.usingIndexName||t.constraintName,columnNames:NR(t.columns)});if(r&&t.columns.length>1){r.unique=!0;return}if(r&&n.indexes.splice(n.indexes.indexOf(r),1),t.columns.length>1){n.indexes.push({name:t.constraintName,unique:!0,columns:t.columns});return}t.columns.forEach(({name:e})=>{let t=SA(n.columns,e);t&&(t.unique=!0)})}),r.forEach(t=>{let n=SA(e,t.name);n&&n.foreignKeys.push({columnNames:t.columnNames,refTableName:t.refTableName,refColumnNames:t.refColumnNames,onDelete:t.onDelete,onUpdate:t.onUpdate})}),a.forEach(({name:t,columnName:n,default:r})=>{let i=SA(e,t);if(!i)return;let a=SA(i.columns,n);a&&(a.default=r)}),o.forEach(({name:t,columnName:n})=>{let r=SA(e,t);if(!r)return;let i=SA(r.columns,n);i&&(i.autoIncrement=!0,i.default=``)}),s.forEach(({name:t,comment:n})=>{let r=OR(e,t);r&&(r.comment=n)}),c.forEach(({tableName:t,columnName:n,comment:r})=>{let i=OR(e,t);if(!i)return;let a=SA(i.columns,n);a&&(a.comment=r)}),e}function OR(e,t){return SA(e,t)??SA(e,t.slice(t.lastIndexOf(`.`)+1))}function kR(e,t){return t.name!==``||e.keys.some(e=>jR(e,MR(t)))}function AR(e,t){return e.indexes.find(e=>jR(t,MR(e)))??null}function jR(e,t){return e.name?PR(e.name,t.name)&&FR(e.columnNames,t.columnNames):IR(e.columnNames,t.columnNames)}const MR=({name:e,columns:t})=>({name:e,columnNames:NR(t)}),NR=e=>e.map(({name:e})=>e),PR=(e,t)=>e.toUpperCase()===t.toUpperCase();function FR(e,t){let n=new Set(e.map(e=>e.toUpperCase()));return e.length===t.length&&t.every(e=>n.has(e.toUpperCase()))}function IR(e,t){return e.length===t.length&&e.every((e,n)=>PR(e,t[n]))}function LR({doc:e,collections:t},n,{toWidth:r}){let i=lD({name:n.name,comment:n.comment,ui:{widthName:G(r(n.name)),widthComment:G(r(n.comment))}});n.columns.forEach(e=>{let n=YD({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:G(r(e.name)),widthComment:G(r(e.comment)),widthDataType:G(r(e.dataType)),widthDefault:G(r(e.default)),keys:e.primaryKey?z.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 RR({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=SA(r,n.name);if(!a)return;let o=i.selectByIds(a.columnIds);n.foreignKeys.forEach(n=>{let s=SA(r,n.refTableName);if(!s)return;let c=i.selectByIds(s.columnIds),l=[],u=[];if(n.refColumnNames.length)n.refColumnNames.forEach(e=>{let t=SA(c,e);t&&l.push(t)});else{let e=c.filter(e=>U(e.ui.keys,z.primaryKey));e.length===1&&l.push(...e)}if(n.columnNames.forEach(e=>{let t=SA(o,e);t&&u.push(t)}),!l.length||l.length!==u.length)return;u.forEach(e=>{U(e.ui.keys,z.primaryKey)?e.ui.keys|=z.foreignKey:e.ui.keys=z.foreignKey});let d=AE({identification:!u.some(e=>!(U(e.ui.keys,z.primaryKey)&&U(e.ui.keys,z.foreignKey))),relationshipType:Zh.ZeroN,onDelete:vA(n.onDelete),onUpdate:vA(n.onUpdate),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 zR({doc:e,collections:t},n){let r=N(t).collection(`tableEntities`).selectByIds(e.tableIds);n.forEach(n=>{n.indexes.forEach(i=>{let a=SA(r,n.name);if(!a)return;let o=N(t).collection(`tableColumnEntities`).selectByIds(a.columnIds),s=[],c=bT({name:i.name,tableId:a.id,unique:i.unique});i.columns.forEach(e=>{let t=SA(o,e.name);if(!t)return;let n=LT({indexId:c.id,columnId:t.id,orderType:e.sort===BP.asc?eg.ASC:eg.DESC});s.push(n)});let l=s.length===i.columns.length;s.length!==0&&(l||!i.unique)&&(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 BR({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,onDelete:t,onUpdate:n,start:r,end:i})=>({relationshipType:e,onDelete:t,onUpdate:n,start:{tableId:r.tableId,columnIds:[...r.columnIds]},end:{tableId:i.tableId,columnIds:[...i.columnIds]}}))}function VR({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 HR({editor:{selectedMap:e},collections:t}){let{tableIds:n,memoIds:r,tableGroupIds:i}=eA(e);return{tables:N(t).collection(`tableEntities`).selectByIds(n),memos:N(t).collection(`memoEntities`).selectByIds(r),tableGroups:N(t).collection(`tableGroupEntities`).selectByIds(i)}}function UR(e){let{tables:t,memos:n,tableGroups:r}=HR(e);return{tables:t.filter(e=>e.ui.color!==``),memos:n.filter(e=>e.ui.color!==``),tableGroups:r.filter(e=>e.color!==``)}}function WR({tables:e,columns:t,memos:n,relationships:r,indexes:i,tableGroups:a=[]},o,{valuesOnly:s=!1}={}){let c=[],l=(e,t)=>{(e||!s)&&c.push(t)},u=[],d=[],f=[],p=new Map(t.map(e=>[e.sourceId,e])),m=/* @__PURE__ */ new Map,h=/* @__PURE__ */ new Map;for(let t of e){let e=o.get(t.sourceId);if(!e)continue;let n=Sh();u.push(n),m.set(t.sourceId,n),c.push(uD({id:n,ui:{x:e.x,y:e.y,zIndex:e.zIndex,color:t.ui.color}})),l(!!t.name,vD({id:n,value:t.name})),l(!!t.comment,bD({id:n,value:t.comment}));for(let e of t.columnIds){let t=p.get(e);if(!t)continue;let r={id:Sh(),tableId:n};h.set(e,r.id);let i=U(t.options,R.primaryKey),a=U(t.options,R.notNull),o=U(t.options,R.unique),s=U(t.options,R.autoIncrement);c.push(XD(r)),l(!!t.name,eO({...r,value:t.name})),l(!!t.dataType,iO({...r,value:t.dataType})),l(!!t.default,sO({...r,value:t.default})),l(!!t.comment,nO({...r,value:t.comment})),l(i,dO({...r,value:i})),l(a,hO({...r,value:a})),l(o,pO({...r,value:o})),l(s,lO({...r,value:s}))}}for(let e of r){let t=m.get(e.start.tableId),n=m.get(e.end.tableId);if(!t||!n)continue;let r=GR(e.start.columnIds,h),i=GR(e.end.columnIds,h);r&&i&&c.push(jE({id:Sh(),relationshipType:e.relationshipType,onDelete:e.onDelete,onUpdate:e.onUpdate,start:{tableId:t,columnIds:r},end:{tableId:n,columnIds:i}}))}for(let e of i){let t=m.get(e.tableId);if(!t)continue;let n=GR(e.indexColumns.map(({columnId:e})=>e),h);if(!n)continue;let r=Sh();c.push(xT({id:r,tableId:t})),l(!!e.name,TT({id:r,tableId:t,value:e.name})),l(e.unique,DT({id:r,tableId:t,value:e.unique})),e.indexColumns.forEach(({orderType:e},i)=>{let a=Sh(),o=n[i];c.push(zT({id:a,indexId:r,tableId:t,columnId:o})),l(e!==eg.ASC,GT({id:a,indexId:r,columnId:o,value:e}))})}for(let e of n){let t=o.get(e.sourceId);if(!t)continue;let n=Sh();d.push(n),c.push(nE({id:n,ui:{x:t.x,y:t.y,zIndex:t.zIndex,color:e.ui.color,width:e.ui.width,height:e.ui.height}})),l(!!e.value,uE({id:n,value:e.value}))}for(let e of a){let t=Sh();f.push(t),c.push(FO({id:t,color:e.color,ui:{...e.ui}})),l(!!e.name,GO({id:t,value:e.name}));for(let n of e.tableIds){let e=m.get(n);e&&c.push(wD({id:e,value:t}))}}return{actions:c,tableIds:u,memoIds:d,tableGroupIds:f}}function GR(e,t){let n=[];for(let r of e){let e=t.get(r);if(!e)return null;n.push(e)}return n}function KR(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]})}}})),KR(e,t,n)),n}const qR=pg.flow,JR={focusFlowTableAction$:e=>function*({editor:t,settings:n}){e.length&&(n.canvasType!==Uh.visualization&&(yield Kb({value:Uh.visualization})),t.visualizationMode!==mg.flow&&(yield J_({value:mg.flow})),yield t.views.flow?K_({tableIds:e,kind:qR}):O_({kind:qR,centerIds:e}))}},YR=e=>function*(){yield WC(),yield qC({value:e})},XR=e=>function*(){yield YC(),yield ZC({value:e})},ZR=(e,t,n=`document`,r={})=>function*(i){let{tableIds:a,memoIds:o,tableGroupIds:s}=eA(i.editor.selectedMap),{zoomLevel:c}=cb(i,n),l=e/c,u=t/c;if(n!==`document`){a.length&&(yield $_(Q_.drag,B_({ids:a,movementX:l,movementY:u,kind:n})));return}r.tableGroupIds??=s,r.tableIds??=oA(i,r.tableGroupIds,a),yield sA(r.tableGroupIds,r.tableIds,l,u),o.length&&(yield $_(Q_.drag,iE({ids:o,movementX:l,movementY:u})))},QR=()=>function*(){yield Vk(),yield hk(),yield aA()},$R=(e,t)=>function*(n){yield*tz(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})},ez=({tableIds:e,memoIds:t,offset:n,escapeCollision:r})=>function*(i){yield*tz(i,{input:iz(i,{tableIds:e??[],memoIds:t??[]}),offset:{x:We(n.x,4),y:We(n.y,4)},escapeCollision:r})};function*tz(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}=WR(t,rz(Rk({entities:[...t.tables.map(e=>nz(e,`table`)),...t.memos.map(e=>nz(e,`memo`))],offset:n,escapeCollision:r,settings:i,tables:c.selectByIds(a),memos:l.selectByIds(o),findSource:e=>c.selectById(e)??l.selectById(e)})));yield gz(),yield u,yield BC({...d.reduce((e,t)=>(e[t]=dg.table,e),{}),...(tv(e)?f:[]).reduce((e,t)=>(e[t]=dg.memo,e),{})})}const nz=({sourceId:e,ui:{x:t,y:n,zIndex:r}},i)=>({sourceId:e,kind:i,ui:{x:t,y:n,zIndex:r}});function rz(e){return new Map(Array.from(e,([e,{x:t,y:n,zIndex:r}])=>[e,{x:We(t,4),y:We(n,4),zIndex:r}]))}function iz(e,{tableIds:t,memoIds:n,tableGroupIds:r=[]}){let{collections:i}=e,a=N(i).collection(`tableEntities`).selectByIds(t),o=N(i).collection(`memoEntities`).selectByIds(n),s=a.flatMap(e=>N(i).collection(`tableColumnEntities`).selectByIds(e.columnIds)),c=a.map(({id:e})=>e);return{tables:a.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:s.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:o.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:BR(e,c),indexes:VR(e,c),tableGroups:N(i).collection(`tableGroupEntities`).selectByIds(r).map(e=>({sourceId:e.id,name:e.name,color:e.color,tableIds:a.filter(t=>t.groupId===e.id).map(({id:e})=>e),ui:{...e.ui}}))}}function az(e,t,n){let r={...e,...t};ty(r,n),FD[q.sortTable](r,{type:q.sortTable,payload:void 0},n)}function oz(e,t,n){let r=kh(e);az(t,r,n);let i=JSON.parse(e),a=(e,t,n)=>{let r=e?.[t];r&&(r.ui={...r.ui,...n})},{doc:o,collections:s}=r;return N(s).collection(`tableEntities`).selectByIds(o.tableIds).forEach(({id:e,ui:{x:t,y:n}})=>a(i.collections?.tableEntities,e,{x:t,y:n})),N(s).collection(`tableGroupEntities`).selectByIds(o.tableGroupIds).forEach(({id:e,ui:{x:t,y:n,width:r,height:o}})=>a(i.collections?.tableGroupEntities,e,{x:t,y:n,width:r,height:o})),JSON.stringify(i)}function sz(e,t,{tables:n,memos:r},i,a){let{tableEntities:o}=t.collections;i===`grid`&&az(e,t,a);let s=new Map(typeof i==`string`?[]:i.map(({id:e,x:t,y:n})=>[e,{x:t,y:n}]));return new Map([...n.map(({sourceId:e})=>{let{x:t,y:n}=o[e].ui;return[e,s.get(e)??{x:t,y:n}]}),...r.map(({sourceId:e,ui:{x:t,y:n}})=>[e,{x:t,y:n}])])}function cz({tableGroups:e=[]},t,n,r){return t===`file`?e.map(({ui:e})=>e):e.flatMap(({tableIds:e})=>{let t=e.flatMap(e=>{let t=n.get(e),i=r.get(e);return t&&i?[{...t,...i}]:[]});return t.length?[Hy(t.reduce(ly))]:[]})}function lz(e){let t=$y(e)?[]:[...Ky(e).values()],n=tv(e)?[]:N(e.collections).collection(`memoEntities`).selectByIds(e.doc.memoIds).map(my),r=[...t,...n],i=[rb(e),...r].filter(e=>e!==null).reduce((e,t)=>e?ly(e,t):t,null);return i?{x:i.x,y:i.y+i.height+80}:{x:50,y:50}}function uz(e,t,n,r){let i;try{i=kh(t)}catch{return null}let{doc:a,collections:o}=i,s={...e,doc:a,collections:o},c=iz(s,a);if(!c.tables.length&&!c.memos.length)return null;let l=sz(e,i,c,n,r),u=new Map(N(o).collection(`tableEntities`).selectByIds(a.tableIds).map(e=>[e.id,ny(e,s,r.toWidth)])),d=1/0,f=1/0;for(let{x:e,y:t}of[...l.values(),...cz(c,n,l,u)])d=Math.min(d,e),f=Math.min(f,t);let p=lz(e),m=$S(N(e.collections).collection(`tableEntities`).selectByIds(e.doc.tableIds),N(e.collections).collection(`memoEntities`).selectByIds(e.doc.memoIds)),h=[...c.tables,...c.memos].sort((e,t)=>e.ui.zIndex-t.ui.zIndex),g=/* @__PURE__ */ new Map;h.forEach(({sourceId:e},t)=>{let n=l.get(e);g.set(e,{x:We(p.x+n.x-d,4),y:We(p.y+n.y-f,4),zIndex:m+t})});let _=new Map(N(o).collection(`tableEntities`).selectByIds(a.tableIds).map(e=>{let{x:t,y:n}=g.get(e.id);return[e.id,{x:t,y:n,...u.get(e.id)}]})),v=N(o).collection(`memoEntities`).selectByIds(a.memoIds).map(e=>my({...e,ui:{...e.ui,...g.get(e.id)}})),y=dz(e,c,n,_,{x:p.x-d,y:p.y-f});return{...WR({...c,tableGroups:y},g,{valuesOnly:!0}),rect:[..._.values(),...v,...y.map(({ui:{x:e,y:t,width:n,height:r}})=>({x:e,y:t,width:n,height:r}))].reduce(ly)}}function dz(e,{tableGroups:t=[]},n,r,i){let a=Qy(N(e.collections).collection(`tableGroupEntities`).selectByIds(e.doc.tableGroupIds));return[...t].sort((e,t)=>e.ui.zIndex-t.ui.zIndex).map((e,t)=>{let o=e.tableIds.map(e=>r.get(e)).filter(e=>!!e),{x:s,y:c,width:l,height:u}=n===`file`||!o.length?{...e.ui,x:We(e.ui.x+i.x,4),y:We(e.ui.y+i.y,4)}:Hy(o.reduce(ly));return{...e,ui:{x:s,y:c,width:l,height:u,zIndex:a+t}}})}const fz=(e,t=`file`)=>function*(n,r){let i=uz(n,e,t,r);i&&(yield i.actions)},pz=(e,t)=>function*(n,r){yield fz(wz(e,t,n,r),`grid`)},mz=(e,t=`document`)=>function*(n){let{collections:r}=n,{tableIds:i,memoIds:a}=cv(n,t),o={...N(r).collection(`tableEntities`).selectByIds(i).reduce((r,i)=>{let a=uy(n,i,t);return gA(e,{x:a.x+a.width/2-15,y:a.y+a.height/2-15,w:15,h:15})&&(r[i.id]=dg.table),r},{}),...N(r).collection(`memoEntities`).selectByIds(a).reduce((t,n)=>{let r=vv(n),i=yv(n);return gA(e,{x:n.ui.x+r/2-15,y:n.ui.y+i/2-15,w:15,h:15})&&(t[n.id]=dg.memo),t},{}),...hz(n,e,t)};yield gz(),Ue(o)||(yield BC(o))};function hz(e,t,n){if(n!==`document`||!$y(e))return{};let r={};return Ky(e).forEach(({x:e,y:n,width:i,height:a},o)=>{hA(t,{x:e,y:n,w:i,h:a})&&(r[o]=dg.tableGroup)}),r}const gz=()=>function*(){yield RC(),yield rw()},_z=(e,t)=>function*(n){let{editor:{focusTable:r}}=n;r&&(e===hg.Tab&&!t&&(wC(r.focusType)&&SC(n)&&!dC(n)||!wC(r.focusType)&&fC(n)&&mC(n))?yield qk(r.tableId):yield aw({moveKey:e,shiftKey:t}))},vz=e=>function*({editor:t}){t.drawRelationship?.relationshipType===e?yield Dw():yield Cw({relationshipType:e})},yz=e=>function*({collections:t}){let n=N(t).collection(`tableEntities`).selectById(e);if(n){if(!N(t).collection(`tableColumnEntities`).selectByIds(n.columnIds).some(e=>U(e.options,R.primaryKey))){let t=Sh();yield XD({tableId:e,id:t}),yield dO({tableId:e,id:t,value:!0}),yield tw({tableId:e,columnId:t,focusType:H.columnName,$mod:!1,shiftKey:!1})}yield Tw({tableId:e})}},bz=e=>function*(t){let{tables:n,memos:r,tableGroups:i}=HR(t),a=e.toLowerCase();yield n.filter(e=>e.ui.color.toLowerCase()!==a).map(t=>SD({id:t.id,color:e,prevColor:t.ui.color})),yield r.filter(e=>e.ui.color.toLowerCase()!==a).map(t=>fE({id:t.id,color:e,prevColor:t.ui.color})),yield i.filter(e=>e.color.toLowerCase()!==a).map(t=>qO({id:t.id,color:e,prevColor:t.color}))},xz=()=>function*(e){let{tables:t,memos:n,tableGroups:r}=UR(e);yield t.map(e=>SD({id:e.id,color:``,prevColor:e.ui.color})),yield n.map(e=>fE({id:e.id,color:``,prevColor:e.ui.color})),yield r.map(e=>qO({id:e.id,color:``,prevColor:e.color}))},Sz=[`originX`,`originY`,`zoomLevel`];function Cz(e,t){let n=he(re(t),Sz),{originX:r,originY:i,zoomLevel:a}=e.settings;e.settings={...e.settings,...n,lockedValues:{...n.lockedValues,originX:r,originY:i,zoomLevel:a}}}function wz(e,t,{settings:n},r){let i=e=>(Cz(e,n),e);switch(e){case`sql`:return TR(t,r,i,n.database);case`graphql`:return RP(t,r,i);case`dbml`:return cN(t,r,i);case`aml`:return qj(t,r,i)}}const Tz=(e,t)=>function*(n,r){yield YR(oz(wz(e,t,n,r),n,r))},Ez=e=>Tz(`sql`,e),Dz=e=>Tz(`graphql`,e),Oz=e=>Tz(`dbml`,e),kz=e=>Tz(`aml`,e),Az=e=>function*({editor:{focusTable:t}}){t&&t.columnId&&(yield Uw({tableId:t.tableId,columnIds:e?[...t.selectColumnIds]:[t.columnId]}))};function jz(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(_O({tableId:e,id:t,targetId:a})))}return se(r,t)?[]:i}const Mz=(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;if(e===null){yield jz(i,s.columnIds,a);return}let n=s.columnIds.indexOf(e);if(n===-1)return;let r=a.map(t=>_O({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 Jk(i,a);let l=c.map(()=>Sh());for(let n=0;n<c.length;n++){let r=c[n],i=l[n],a={id:i,tableId:t};yield[XD(a),eO({...a,value:r.name}),iO({...a,value:r.dataType}),sO({...a,value:r.default}),nO({...a,value:r.comment}),dO({...a,value:U(r.options,R.primaryKey)}),hO({...a,value:U(r.options,R.notNull)}),pO({...a,value:U(r.options,R.unique)}),lO({...a,value:U(r.options,R.autoIncrement)}),...e===null?[]:[_O({...a,targetId:e})],tw({tableId:t,columnId:i,focusType:H.columnName,$mod:!0,shiftKey:!1})]}yield Uw({tableId:t,columnIds:l})},Nz=e=>function*(t){let{columnIds:n,relationshipIds:r}=KR([{columnId:e,relationshipIds:[]}],t).reduce((e,{columnId:t,relationshipIds:n})=>(e.columnIds.push(t),e.relationshipIds.push(...n),e),{columnIds:[],relationshipIds:[]});yield jw({columnIds:ye(n)}),yield Nw({relationshipIds:ye(r)})},Pz=()=>function*(){yield jw({columnIds:[]}),yield Nw({relationshipIds:[]})},Fz={loadJsonAction$:YR,initialLoadJsonAction$:XR,moveAllAction$:ZR,removeSelectedAction$:QR,pasteEntitiesAction$:$R,duplicateAction$:ez,dragSelectAction$:mz,unselectAllAction$:gz,focusMoveTableAction$:_z,drawStartRelationshipAction$:vz,drawStartAddRelationshipAction$:yz,changeColorAllAction$:bz,removeColorAllAction$:xz,loadSchemaSQLAction$:Ez,loadSchemaGraphQLAction$:Dz,loadSchemaDBMLAction$:Oz,loadSchemaAMLAction$:kz,appendSchemaAction$:pz,appendSchemaJsonAction$:fz,dragstartColumnAction$:Az,dragoverColumnAction$:Mz,columnKeyHoverStartAction$:Nz,columnKeyHoverEndAction$:Pz,...JR},Iz={addIndexAction$:e=>function*(){yield xT({id:Sh(),tableId:e})},changeIndexUniqueAction$:e=>function*({collections:t}){let n=N(t).collection(`indexEntities`).selectById(e);n&&(yield DT({id:e,tableId:n.tableId,value:!n.unique}))}},Lz={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 zT({id:i.id,indexId:e,tableId:r.tableId,columnId:t}):yield zT({id:Sh(),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 VT({id:t.id,indexId:e,tableId:r.tableId})},changeIndexColumnOrderTypeAction$:e=>function*({collections:t}){let n=N(t).collection(`indexColumnEntities`).selectById(e);n&&(yield GT({id:e,indexId:n.indexId,columnId:n.columnId,value:n.orderType===eg.ASC?eg.DESC:eg.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 UT({id:e,indexId:r.indexId,tableId:i.tableId,targetId:t}))}},Rz={addRelationshipAction$:(e,t,n,r={})=>function*({doc:{tableIds:i},collections:a,settings:{database:o}}){let s=N(a).collection(`tableEntities`).selectByIds(i),c=s.find(({id:t})=>t===e),l=s.find(({id:e})=>e===t);if(!c||!l)return;let u=N(a).collection(`tableColumnEntities`),d=u.selectByIds(c.columnIds).filter(({options:e})=>U(e,R.primaryKey)),f=d.length?null:YD({tableId:c.id}),p=f?[f]:d,m=p.map(()=>Sh());yield[...f?[XD({id:f.id,tableId:c.id}),dO({id:f.id,tableId:c.id,value:!0})]:[],...Nk(p,l.id,m,{startTableName:c.name,endColumnNames:u.selectByIds(l.columnIds).map(({name:e})=>e),database:o}),jE({id:Sh(),relationshipType:n,...r,start:{tableId:c.id,columnIds:p.map(({id:e})=>e)},end:{tableId:l.id,columnIds:m}})]}};function zz(e,t,n,r){let i=fb({...e,zoomLevel:t},n);return{movementX:We(r.x-i.x,4),movementY:We(r.y-i.y,4)}}function Bz(e,t,n){let{viewport:r}=e.editor,i={x:r.width/2,y:r.height/2};return zz(t,n,pb(t,i),i)}const Vz={changeZoomLevelAction$:(e,t)=>function*(n){let r=lb(n,t),{originX:i,originY:a}=r,{movementX:o,movementY:s}=Bz(n,r,d_(e)),c={originX:i+o,originY:a+s};if(t&&t!==`document`){yield I_({value:e,kind:t}),yield M_({...c,kind:t});return}yield jb({value:e}),yield Lb(c)},streamZoomLevelAction$:(e,t)=>function*(n){let r=lb(n,t),i=Bz(n,r,d_(r.zoomLevel+e));if(t&&t!==`document`){yield R_({value:e,kind:t}),yield P_({...i,kind:t});return}yield Nb({value:e}),yield zb(i)},changeLockSettingsAction$:(e,t)=>function*({settings:n,editor:r}){let i=t?e:e&dx,a=ng.filter(e=>U(i,e)).flatMap(e=>rg[e]),o=ge(n,a);o.canvasType===Uh.settings&&(o.canvasType=r.lastCanvasType),yield lx({lockSettingType:e,value:t,values:o})}},Hz=Object.freeze({...cT,...Fz,...AT,...Iz,...JT,...Lz,...yE,..._k,...qE,...Rz,...bx,...Vz,...ID,...Uk,...bO,...$k,...QO,...mA}),Uz=/* @__PURE__ */ `table.add,table.move,table.moveTo,table.remove,table.changeName,table.changeComment,table.changeColor,table.changeGroup,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,relationship.changeOnDelete,relationship.changeOnUpdate,relationship.changeColumns,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,tableGroup.add,tableGroup.move,tableGroup.moveTo,tableGroup.remove,tableGroup.resize,tableGroup.changeName,tableGroup.changeColor,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.changeColumnOrder,settings.changeMaxWidthComment,settings.changeLockSettings,settings.changeDDLScript,editor.loadJson,editor.clear`.split(`,`);[...Uz];const Wz=V([`settings.changeZoomLevel`,`settings.streamZoomLevel`,`settings.scrollTo`,`settings.streamScrollTo`,`settings.changeDatabase`,`settings.changeCanvasType`,`settings.changeLanguage`,`settings.changeTableNameCase`,`settings.changeColumnNameCase`,`settings.changeBracketType`]),Gz=[...Uz.filter(e=>!Wz(e))],Kz=V([`editor.loadJson`,`editor.clear`]),qz=[...Gz.filter(e=>!Kz(e))],Jz={"settings.changeZoomLevel":tg.viewport,"settings.streamZoomLevel":tg.viewport,"settings.scrollTo":tg.viewport,"settings.streamScrollTo":tg.viewport,"settings.changeCanvasType":tg.canvasType,"settings.changeLanguage":tg.language,"settings.changeTableNameCase":tg.tableNameCase,"settings.changeColumnNameCase":tg.columnNameCase,"settings.changeBracketType":tg.bracketType},Yz=[`editor.sharedMouseTracker`,`editor.sharedFocusTracker`,`editor.sharedSelectionTracker`,`editor.sharedDragSelectTracker`];[...Uz,...Yz];const Xz=[`table.move`,`memo.move`,`tableGroup.move`],Zz=[`table.changeColor`,`memo.changeColor`,`tableGroup.changeColor`],Qz=[`settings.streamZoomLevel`,`settings.streamScrollTo`],$z=[...Object.keys(uk)],eB=[...Object.keys(lk),...$z];function tB(e,t){if(t.has(e))throw TypeError(`Cannot initialize the same private elements twice on an object`)}function nB(e,t,n){tB(e,t),t.set(e,n)}function rB(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 iB(e,t){return e.get(rB(e,t))}function aB(e,t,n){return e.set(rB(e,t),n),n}var oB=/* @__PURE__ */ new WeakMap,sB=class{constructor(){nB(this,oB,0),Hi(this,`getVersion`,()=>iB(oB,this)),Hi(this,`getNextVersion`,()=>this.getVersion()+1),Hi(this,`merge`,e=>(!C(e)||!Number.isInteger(e)||this.getVersion()<e&&aB(oB,this,e),this))}};function cB(e){return{...e,clock:new sB}}function lB({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=>lB(e,{commands:[...i],cursor:a,limit:o})})}const uB=T(e=>!!e.length),dB=e=>{let t=V(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(uB)},fB=`@@none-stream`,pB=(e,t)=>n=>{let r=t.find(([,e])=>e(n));return r?r[0]:e(n.type)?n.type:fB},mB=(e,t)=>t!==void 0&&typeof e.tags==`number`&&U(e.tags,t),hB=(e,t=[],n=Ee(200))=>{let r=V(e),i=t.map(([e,t,n])=>{let r=V(t);return[e,e=>r(e.type)||mB(e,n)]}),a=pB(r,i);return e=>new xe(t=>e.subscribe({next:e=>{let n=e.reduce((e,t)=>{let n=a(t);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(uB,ke(e=>a(e[0])),Me(e=>e.key===fB?e:e.pipe(Te(e.pipe(n)),Ae(e=>e.flat()))))},gB=e=>{let t=t=>S(t.tags)||!e.some(e=>U(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(uB)};V($z),V(Yz);const _B=e=>t=>t.pipe(Ie(t=>e.pipe(Le(1),Ae(()=>t)))),vB=e=>{let t=e=>t=>{let n=Reflect.get(Jz,t.type);return!n||!U(e,n)};return n=>new xe(r=>n.subscribe({next:n=>{r.next(n.filter(t(e())))},error:e=>r.error(e),complete:()=>r.complete()})).pipe(uB)},yB=(e,t=[])=>{let n=V(Gz),r=e=>!S(e.tags)&&t.some(t=>U(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(uB)},bB={[K.scrollTo]:B.viewScrollTo,[K.streamScrollTo]:B.viewStreamScrollTo,[K.changeZoomLevel]:B.viewChangeZoomLevel,[K.streamZoomLevel]:B.viewStreamZoomLevel},xB=({tags:e})=>!S(e)&&(U(e,Q_.shared)||U(e,Q_.following)),SB=e=>{let t=bB[e.type];return t&&!xB(e)?{...e,type:t}:e},CB=e=>t=>new xe(n=>t.subscribe({next:t=>{n.next(e()?t.map(SB):t)},error:e=>n.error(e),complete:()=>n.complete()})),wB=(e,t=[])=>{let n=V(qz),r=e=>!S(e.tags)&&t.some(t=>U(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(uB)};function TB(e,t){return dd({context:e,state:{...Im(),editor:gg(),lww:{}},reducers:{...sT,...FD,...yO,...vE,...KE,...yx,...kT,...qT,...ZO},enableObservable:t??!0})}const EB=(e,t)=>e.pipe(Be(()=>Ve(0,we),{leading:!1,trailing:!0})).subscribe(()=>Cx(t())),DB=(e,t)=>e.pipe(Be(()=>Ve(0,we),{leading:!1,trailing:!0}),Ne(we)).subscribe(()=>wx(t())),OB=V([fD.type,mD.type,iE.type]),kB=({tags:e})=>!S(e)&&U(e,Q_.drag)?Ve(5):Ve(0,we),AB=[xT,CT,DT,zT,VT,UT,_O],jB=AB.map(e=>e.type),MB=V(jB),NB=V([P.hideReferentialAction,P.hideTableGroup,P.hideMemo]),PB=e=>e.type===Vb.type&&NB(e.payload?.show),FB=(e,t)=>e.pipe(T(e=>(!MB(e.type)||U(t().settings.show,P.columnAlternateKey))&&!PB(e)),ze(e=>{OB(e.type)||Bv()}),Be(kB,{leading:!1,trailing:!0})).subscribe(()=>{PS(t())}),IB=V([Vb.type,sx.type,iE.type,...jB]),LB=V([M_.type,P_.type,I_.type,R_.type]),RB=({id:e})=>[e],zB=({ids:e})=>e,BB=({tableId:e})=>[e],VB=(e,{kind:t})=>t,HB=()=>pg.flow,UB=(e,{kind:t})=>t??x_(e)?.kind??null,WB={[O_.type]:VB,[A_.type]:VB,[H_.type]:VB,[K_.type]:HB,[W_.type]:UB,[B_.type]:UB},GB={[uD.type]:RB,[gD.type]:RB,[mD.type]:RB,[vD.type]:RB,[bD.type]:RB,[jE.type]:RB,[NE.type]:RB,[VE.type]:({id:e,start:t,end:n})=>[e,t.tableId,n.tableId],[fD.type]:zB,[B_.type]:zB,[XD.type]:BB,[QD.type]:BB,[eO.type]:BB,[nO.type]:BB,[iO.type]:BB,[sO.type]:BB,[dO.type]:BB};function KB(e,t){let{tableIds:n,relationshipIds:r}=cv(e,t);return/* @__PURE__ */ new Set([...n,...r])}function qB(e,t,n,r){if(IB(t.type)||LB(t.type))return!1;let i=WB[t.type];if(i&&i(e,t.payload)!==r)return!1;let a=GB[t.type];if(!a)return!0;let o=KB(e,r);return a(t.payload).some(e=>o.has(e)||n.has(e))}const JB=[pg.flow],YB=(e,t)=>{let n={flow:/* @__PURE__ */ new Set},r=/* @__PURE__ */ new Set;return e.pipe(T(e=>{let i=t(),a=!1;for(let t of JB)S_(i,t)&&qB(i,e,n[t],t)&&(r.add(t),a=!0);return a}),Be(kB,{leading:!1,trailing:!0})).subscribe(()=>{let e=t(),i=[...r];r.clear();for(let t of i)S_(e,t)&&(PS(e,t),n[t]=KB(e,t))})},XB=[Vb,sx,jE,NE,VE,iE,uD,gD,fD,mD,vD,bD,XD,QD,eO,nO,iO,sO,OD,...AB],ZB=[dO],QB=[O_,A_,M_,P_,I_,R_,B_,H_,W_,K_],$B=[[[XD,QD,dO,jE,NE,VE,uD,gD],EB],[[XD,QD,hO,dO,jE,NE,VE,uD,gD],DB],[XB,FB],[[...XB,...ZB,...QB],YB]],eV=[[[gD],(e,t)=>e.pipe(Ne(we)).subscribe(()=>{let{doc:e,editor:n}=t(),r=n.drawRelationship?.start;r&&!e.tableIds.includes(r.tableId)&&(n.drawRelationship=null)})]],tV=e=>e.pipe(Ne(we)),nV=[[[dO],(e,t)=>tV(e).subscribe(({payload:{id:e}})=>{let{collections:n}=t(),r=N(n).collection(`tableColumnEntities`).selectById(e);r&&U(r.options,R.primaryKey)&&(U(r.options,R.notNull)||(r.options|=R.notNull))})],[[jE,NE,VE,XD,QD,uD,gD],(e,t)=>e.pipe(Be(()=>Ve(0,we),{leading:!1,trailing:!0})).subscribe(()=>Ex(t()))]],rV=[...eV,...nV,...$B];function iV(e){let t=()=>e.state,n=rV.map(([n,r])=>{let i=new Se;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 aV(e,{getReadonly:t=()=>!1,getHistory:n,manualStreamFlush:r=!1,observable:i=!0}={}){let a=/* @__PURE__ */ new Set,o=TB(e,i),s=iV(o),c={notify:e=>o.dispatch(PC(e)),dispatch:o.dispatchSync,getNextVersion:()=>e.clock.getNextVersion()},l=n?.(c)??lB(c);l.setLimit(2048);let u=()=>x_(o.state),d=new Se,f=d.pipe(CB(u)),p=new Se,m=new Se,h=new Se,g=m.pipe(Fe(void 0),Ie(()=>p.pipe(hB($z,[[`@@move`,Xz,Q_.drag],[`@@scroll`,Qz],[`@@color`,Zz]],r?_B(h):void 0)))),_=new xe(e=>o.subscribe(t=>e.next(t))).pipe(dB(Uz),vB(()=>o.state.settings.lockSettings),yB(t,[Q_.shared]),Ee(200)),v=(...t)=>{let n=e.clock.getNextVersion();return sd(o.state,o.context,t).map(e=>(S(e.version)&&(e.version=n),e))},y=(...e)=>{let t=v(e);d.next(t)},b=(...e)=>{queueMicrotask(()=>y(e))},ee=()=>{Array.from(a).forEach(e=>ce(e)?e():e.unsubscribe()),a.clear(),o.destroy(),s.destroy(),l.clear(),d.complete(),h.complete()},te=()=>{m.next(),l.clear()},ne=()=>{t()||u()||l.undo()},re=()=>{t()||u()||l.redo()},ie=()=>{r&&h.next()};return a.add(g.subscribe(pk(o,l))).add(f.pipe(dB(eB),gB([Q_.changeOnly,Q_.shared]),yB(t),wB(u)).subscribe(p)).add(f.pipe(yB(t,[Q_.shared]),wB(u,[Q_.shared])).subscribe(o.dispatchSync)).add(o.subscribe(t=>{t.forEach(t=>e.clock.merge(t.version))})),Object.freeze({...o,dispatch:b,dispatchSync:y,destroy:ee,undo:ne,redo:re,history:l,resetHistory:te,change$:_,flushStreamBuffers:ie,getReadonly:t})}const oV={openColorPicker:`openColorPicker`,closeColorPicker:`closeColorPicker`,openToast:`openToast`,openTableProperties:`openTableProperties`,dragendColumnAll:`dragendColumnAll`,copy:`copy`,paste:`paste`,toggleSearch:`toggleSearch`,openFindReplace:`openFindReplace`,openExportImage:`openExportImage`,openMapColumns:`openMapColumns`,openThemeBuilder:`openThemeBuilder`,setThemeOptions:`setThemeOptions`,openLocalePicker:`openLocalePicker`,setLocaleOption:`setLocaleOption`,mouseTrackerStart:`mouseTrackerStart`,mouseTrackerEnd:`mouseTrackerEnd`,openDiffViewer:`openDiffViewer`,openAutomaticTablePlacement:`openAutomaticTablePlacement`,duplicateDragStart:`duplicateDragStart`,dragSelectStart:`dragSelectStart`};var sV=/* @__PURE__ */ new WeakMap,cV=class{constructor(){nB(this,sV,/* @__PURE__ */ new Set)}on(e){return iB(sV,this).has(e)||iB(sV,this).add(e),()=>{iB(sV,this).delete(e)}}emit(e){iB(sV,this).forEach(t=>{ck(Reflect.get(t,e.type),e)})}clear(){iB(sV,this).clear()}};const lV=k(oV.openColorPicker);k(oV.closeColorPicker),k(oV.openToast),k(oV.openTableProperties);const uV=k(oV.dragendColumnAll);k(oV.copy),k(oV.paste),k(oV.toggleSearch),k(oV.openFindReplace),k(oV.openExportImage),k(oV.openMapColumns),k(oV.openThemeBuilder),k(oV.setThemeOptions),k(oV.openLocalePicker),k(oV.setLocaleOption),k(oV.mouseTrackerStart),k(oV.mouseTrackerEnd),k(oV.openDiffViewer),k(oV.openAutomaticTablePlacement);const dV=k(oV.duplicateDragStart);k(oV.dragSelectStart);const fV=()=>typeof navigator==`object`?navigator.platform:``,pV=()=>/Mac|iPod|iPhone|iPad/.test(fV()),mV={Shift:`Shift`,Meta:`Meta`,Alt:`Alt`,Control:`Control`};Object.values(mV);const Z={edit:`edit`,stop:`stop`,search:`search`,findReplace:`findReplace`,undo:`undo`,redo:`redo`,addTable:`addTable`,addColumn:`addColumn`,addMemo:`addMemo`,addTableGroup:`addTableGroup`,groupSelectedTables:`groupSelectedTables`,removeTable:`removeTable`,removeColumn:`removeColumn`,removeSelection:`removeSelection`,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(Z),Z.findReplace,Z.search,Z.undo,Z.redo,Z.zoomIn,Z.zoomOut,Z.zoomReset;const hV=()=>({[Z.edit]:[{shortcut:`Enter`}],[Z.stop]:[{shortcut:`Escape`}],[Z.search]:[{shortcut:`$mod+KeyK`,preventDefault:!0,stopPropagation:!0}],[Z.findReplace]:[{shortcut:`$mod+KeyF`,preventDefault:!0,stopPropagation:!0}],[Z.undo]:[{shortcut:`$mod+KeyZ`,preventDefault:!0,stopPropagation:!0}],[Z.redo]:[{shortcut:`$mod+Shift+KeyZ`,preventDefault:!0,stopPropagation:!0}],[Z.addTable]:[{shortcut:`Alt+KeyN`,preventDefault:!0}],[Z.addColumn]:[{shortcut:`Alt+Enter`,preventDefault:!0}],[Z.addMemo]:[{shortcut:`Alt+KeyM`,preventDefault:!0}],[Z.addTableGroup]:[{shortcut:`Alt+KeyG`,preventDefault:!0,stopPropagation:!0}],[Z.groupSelectedTables]:[{shortcut:`KeyT KeyG`,preventDefault:!0}],[Z.removeTable]:[{shortcut:`$mod+Backspace`,preventDefault:!0},{shortcut:`$mod+Delete`,preventDefault:!0}],[Z.removeColumn]:[{shortcut:`Alt+Backspace`,preventDefault:!0},{shortcut:`Alt+Delete`,preventDefault:!0}],[Z.removeSelection]:[{shortcut:`Delete`,preventDefault:!0},{shortcut:`Backspace`,preventDefault:!0}],[Z.primaryKey]:[{shortcut:`Alt+KeyK`,preventDefault:!0}],[Z.selectAllTable]:[{shortcut:`$mod+KeyA`,preventDefault:!0},{shortcut:`$mod+Alt+KeyA`,preventDefault:!0}],[Z.selectAllColumn]:[{shortcut:`Alt+KeyA`,preventDefault:!0}],[Z.relationshipZeroOne]:[{shortcut:`$mod+Alt+Digit1`,preventDefault:!0}],[Z.relationshipZeroN]:[{shortcut:`$mod+Alt+Digit2`,preventDefault:!0}],[Z.relationshipOneOnly]:[{shortcut:`$mod+Alt+Digit3`,preventDefault:!0}],[Z.relationshipOneN]:[{shortcut:`$mod+Alt+Digit4`,preventDefault:!0}],[Z.tableProperties]:[{shortcut:`Alt+Space`,preventDefault:!0}],[Z.focusView]:[{shortcut:`Alt+KeyF`,preventDefault:!0,stopPropagation:!0}],[Z.zoomIn]:[{shortcut:`$mod+Equal`,preventDefault:!0,stopPropagation:!0}],[Z.zoomOut]:[{shortcut:`$mod+Minus`,preventDefault:!0,stopPropagation:!0}],[Z.zoomReset]:[{shortcut:`$mod+Digit0`,preventDefault:!0,stopPropagation:!0}],[Z.handTool]:[{shortcut:`Space`,preventDefault:!0}],[Z.zenMode]:[{shortcut:`Alt+KeyZ`,preventDefault:!0,stopPropagation:!0}]});mV.Shift,mV.Meta,mV.Alt,mV.Control,mV.Shift,mV.Meta,mV.Alt,mV.Control;function gV(e){return pV()?e.metaKey:e.ctrlKey}function _V(e,t){let{devtools:n=!0,...r}=t??{},i=cB(e),a=aV(i,r),o=no(hV(),{shallow:!0}),s=new Se,c=new Se,l=new cV;return Object.freeze({...i,actions:Hz,store:a,keyBindingMap:o,shortcut$:s,keydown$:c,emitter:l,lifecycle:{destroyed:!1}})}const vV=Ki({}),yV=(e,t)=>vo(e,{...vV,value:t??vV.value});function bV(e){e.lifecycle.destroyed=!0,e.store.dispatchSync(YC()),e.store.destroy(),e.keydown$.complete(),e.shortcut$.complete(),e.emitter.clear()}const xV={code:`en`,label:`English`,english:`English`},SV=[{code:`id-ID`,label:`Bahasa Indonesia`,english:`Indonesian`},{code:`de-DE`,label:`Deutsch`,english:`German`},xV,{code:`es-ES`,label:`Español`,english:`Spanish`},{code:`eu-ES`,label:`Euskara`,english:`Basque`},{code:`fr-FR`,label:`Français`,english:`French`},{code:`it-IT`,label:`Italiano`,english:`Italian`},{code:`nl-NL`,label:`Nederlands`,english:`Dutch`},{code:`pl-PL`,label:`Polski`,english:`Polish`},{code:`pt-PT`,label:`Português`,english:`Portuguese`},{code:`pt-BR`,label:`Português Brasileiro`,english:`Brazilian Portuguese`},{code:`ro-RO`,label:`Română`,english:`Romanian`},{code:`sk-SK`,label:`Slovenčina`,english:`Slovak`},{code:`sl-SI`,label:`Slovenščina`,english:`Slovenian`},{code:`sv-SE`,label:`Svenska`,english:`Swedish`},{code:`tr-TR`,label:`Türkçe`,english:`Turkish`},{code:`ru-RU`,label:`Русский`,english:`Russian`},{code:`uk-UA`,label:`Українська`,english:`Ukrainian`},{code:`he-IL`,label:`עברית`,english:`Hebrew`,rtl:!0},{code:`ar-SA`,label:`العربية`,english:`Arabic`,rtl:!0},{code:`fa-IR`,label:`فارسی`,english:`Persian`,rtl:!0},{code:`ja-JP`,label:`日本語`,english:`Japanese`},{code:`zh-CN`,label:`简体中文`,english:`Simplified Chinese`},{code:`zh-TW`,label:`繁體中文`,english:`Traditional Chinese`},{code:`ko-KR`,label:`한국어`,english:`Korean`}];[...SV.map(e=>e.code)];const CV=new Map(SV.map(e=>[e.code,e]));function wV(e){return CV.get(e)??xV}function TV(e){return wV(e).rtl?`rtl`:`ltr`}const EV=/\{(\w+)\}/g;function DV(e){return`${e}`}function OV(e,t,n=!1){return t?e.replace(EV,(e,r)=>{if(!Object.prototype.hasOwnProperty.call(t,r))return e;let i=String(t[r]);return n?DV(i):i}):e}function kV(e,t){let n=TV(e),r=new Intl.PluralRules(e),i=t;return{locale:e,dir:n,messages:t,t:(e,t)=>{let a=i[e];return OV(w(a)?a:a[r.select(Number(t?.count))]??a.other,t,n===`rtl`)}}}function AV(e){return e instanceof MouseEvent}function jV(e){return AV(e)&&e.button===2}function MV(e){return(e.touches?.length??0)>1}function NV(e){return!AV(e)||e.button===0}const PV=/* @__PURE__ */ new Map([[`table`,`table`],[`memo`,`memo`],[`relationship`,`relationship`],[`table-group`,`tableGroup`],[`table-group-body`,`tableGroup`]]),FV=/* @__PURE__ */ new Map([[`table-group-title`,`title`],[`table-group-body`,`body`],[`table-group-sash`,`sash`]]);function IV(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 LV=(e,t)=>!!(e&&t&&e.x===t.x&&e.y===t.y),RV=/* @__PURE__ */ new WeakMap,zV=`mousedown.sceneHit touchstart.sceneHit contextmenu.sceneHit`;function BV(e){return e.on(zV,t=>{let n=t.evt,r=IV(n),i=RV.get(e),a=n.type===`contextmenu`&&LV(i?.point,r)?i?.hit??null:t.target===e?null:HV(t.target);RV.set(e,{evt:n,hit:a,point:r})}),()=>{e.off(zV),RV.delete(e)}}function VV(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 HV(e){let t=e,n=``,r=`body`;for(;t;){let e=t.getAttr(`kind`);e===`column-row`&&t.id().startsWith(`column-`)&&(n=t.id().slice(7)),r=FV.get(e)??r;let i=PV.get(e);if(i){let a=VV(t,e);return i===`tableGroup`?{kind:i,id:a,part:r}:i===`table`&&n?{kind:i,id:a,columnId:n}:{kind:i,id:a}}t=t.getParent()}return null}const UV={"code.label":`Code`,"code.copy":`Copy`,"code.savedInDocument":`Saved in the document`,"code.saveFile":`Save file`,"code.optionsPanel":`Options panel`,"code.hideOptions":`Hide options`,"code.showOptions":`Show options`,"code.notUsedBy":`Not used by {language}`},WV={"colorPicker.saturationAndBrightness":`Saturation and brightness`,"colorPicker.slider2d":`2D slider`,"colorPicker.areaValue":`Saturation {saturation}%, brightness {brightness}%`,"colorPicker.hue":`Hue`,"colorPicker.degrees":{one:`{count} degrees`,other:`{count} degrees`},"colorPicker.noColor":`No color`,"colorPicker.eyeDropper":`Pick a color from the screen`,"colorPicker.channel.red":`Red, 0 to 255`,"colorPicker.channel.green":`Green, 0 to 255`,"colorPicker.channel.blue":`Blue, 0 to 255`,"colorPicker.presets":`Presets`,"colorPicker.documentColors":`Document colors`,"colorPicker.preset.red":`Red`,"colorPicker.preset.orange":`Orange`,"colorPicker.preset.amber":`Amber`,"colorPicker.preset.yellow":`Yellow`,"colorPicker.preset.lime":`Lime`,"colorPicker.preset.green":`Green`,"colorPicker.preset.teal":`Teal`,"colorPicker.preset.cyan":`Cyan`,"colorPicker.preset.blue":`Blue`,"colorPicker.preset.indigo":`Indigo`,"colorPicker.preset.violet":`Violet`,"colorPicker.preset.purple":`Purple`,"colorPicker.preset.pink":`Pink`,"colorPicker.preset.crimson":`Crimson`,"colorPicker.preset.brown":`Brown`,"colorPicker.preset.gray":`Gray`},GV={"common.close":`Close`,"common.none":`None`,"common.unnamed":`unnamed`,"common.system":`System`,"common.light":`Light`,"common.dark":`Dark`,"common.theme":`Theme`,"common.displayLanguage":`Display Language`,"common.search":`Search`,"common.find":`Find`,"common.newTable":`New Table`,"common.newMemo":`New Memo`,"common.newTableGroup":`New Table Group`,"common.import":`Import`,"common.importAndAdd":`Import and Add`,"common.export":`Export`,"common.image":`Image`,"common.autoLayout":`Auto Layout`,"common.database":`Database`,"common.bracket":`Bracket`,"common.codeLanguage":`Language`,"common.tableNameCase":`Table Name Case`,"common.columnNameCase":`Column Name Case`,"common.tableProperties":`Table Properties`,"common.primaryKey":`Primary Key`,"common.relationship":`Relationship`,"common.color":`Color`,"common.table":`Table`,"common.shortcuts":`Shortcuts`,"common.apply":`Apply`,"common.cancel":`Cancel`,"common.tab.erd":`Entity Relationship Diagram`,"common.tab.visualization":`Visualization`,"common.tab.schemaSql":`Schema SQL`,"common.tab.codeGenerator":`Code Generator`,"common.tab.settings":`Settings`,"common.relationshipType.zeroOne":`Zero One`,"common.relationshipType.zeroN":`Zero N`,"common.relationshipType.oneOnly":`One Only`,"common.relationshipType.oneN":`One N`,"common.placement.force":`Force`,"common.placement.flow":`Flow`,"common.placement.treeVertical":`Tree - vertical`,"common.placement.treeHorizontal":`Tree - horizontal`,"common.column.name":`Name`,"common.column.dataType":`DataType`,"common.column.notNull":`Not Null`,"common.column.unique":`Unique`,"common.column.autoIncrement":`Auto Increment`,"common.column.default":`Default`,"common.column.comment":`Comment`,"common.placeholder.table":`table`,"common.placeholder.column":`column`,"common.placeholder.comment":`comment`,"common.placeholder.default":`default`,"common.placeholder.dataType":`dataType`,"common.toast.noTablesToPlace":`No tables to place`,"common.toast.couldNotPlaceTables":`Could not place tables`,"common.toast.copied":`Copied!`,"common.toast.copyFailed":`Couldn't copy to the clipboard`},KV={"contextMenu.delete":`Delete`,"contextMenu.deleteSelected":`Delete selected`,"contextMenu.deleteColumn":`Delete column`,"contextMenu.deleteColumns":`Delete columns`,"contextMenu.removeColor":`Remove color`,"contextMenu.primaryKeyOnSelectedColumns":`Primary Key on selected columns`,"contextMenu.focusOnThisTable":`Focus on this table`,"contextMenu.focusOnSelectedTables":`Focus on selected tables`,"contextMenu.groupSelectedTables":`Group selected tables`,"contextMenu.removeFromGroup":`Remove from group`,"contextMenu.selectTables":`Select tables`,"contextMenu.rename":`Rename`,"contextMenu.relationshipType":`Relationship Type`,"contextMenu.onDelete":`On Delete`,"contextMenu.onUpdate":`On Update`,"contextMenu.notSet":`Not set`,"contextMenu.notInDatabase":`not in {database}`,"contextMenu.viewOption":`View Option`,"contextMenu.diffViewer":`Diff Viewer`,"contextMenu.show.tableComment":`Table Comment`,"contextMenu.show.columnComment":`Column Comment`,"contextMenu.show.alternateKey":`Alternate Key`,"contextMenu.show.referentialActions":`Referential Actions`,"contextMenu.show.tableGroups":`Table Groups`,"contextMenu.show.memos":`Memos`},qV={"explorer.title":`Explorer`,"explorer.collapseAll":`Collapse All`,"explorer.toggle":`Toggle Explorer`,"explorer.toggleReplace":`Toggle Replace`,"explorer.moreScopes":`Search In`,"explorer.tooNarrow":`Widen the window to show the Explorer`,"explorer.folder.tables":`Tables`,"explorer.folder.tableGroups":`Table Groups`,"explorer.folder.memos":`Memos`,"explorer.folder.columns":`Columns`,"explorer.folder.indexes":`Indexes`,"explorer.folder.foreignKeys":`Foreign Keys`,"explorer.diff.filter":`Filter by name`,"explorer.diff.noChanges":`No changes`,"explorer.diff.change":`{field}: {before} → {after}`,"explorer.status.added":`Added`,"explorer.status.modified":`Modified`,"explorer.status.deleted":`Deleted`,"explorer.status.renamed":`Renamed`,"explorer.status.inside":`Changed inside`,"explorer.diff.field.name":`Name`,"explorer.diff.field.comment":`Comment`,"explorer.diff.field.dataType":`Data type`,"explorer.diff.field.default":`Default`,"explorer.diff.field.order":`Order`,"explorer.diff.field.tableGroup":`Table group`,"explorer.diff.field.position":`Position`,"explorer.diff.field.size":`Size`,"explorer.diff.field.color":`Color`,"explorer.diff.field.members":`Tables`,"explorer.diff.field.columns":`Columns`,"explorer.diff.field.relationshipType":`Relationship type`,"explorer.diff.field.value":`Content`},JV={"exportImage.title":`Export image`,"exportImage.preview":`Preview`,"exportImage.loadingPreview":`Loading preview`,"exportImage.background":`Background`,"exportImage.darkMode":`Dark mode`,"exportImage.scale":`Scale`,"exportImage.copyToClipboard":`Copy to clipboard`,"exportImage.reducedFrom":`Reduced from {askedWidth} × {askedHeight} px, past what a browser canvas can hold`,"exportImage.reducedFromTo":`Reduced from {askedWidth} × {askedHeight} px to {width} × {height} px, past what a browser canvas can hold`,"exportImage.exporting":`Exporting {format}`,"exportImage.exportFailed":`Couldn't export the {format}`,"exportImage.seeConsole":`See the browser console for the error`,"exportImage.exportedReduced":`Exported at a reduced resolution`,"exportImage.copying":`Copying image`,"exportImage.copyFailed":`Couldn't copy the image`,"exportImage.saveAsPng":`Save it as a PNG instead`,"exportImage.copiedReduced":`Copied at a reduced resolution`,"exportImage.copied":`Copied the image to the clipboard`},YV={"feedback.importOnly":`Only {format} files can be imported`,"feedback.placingTables":`Placing tables`,"feedback.placingProgress":`Placing tables {percent}%`,"feedback.diffViewer":`Diff Viewer`},XV={"findReplace.matchCase":`Match Case`,"findReplace.wholeWord":`Match Whole Word`,"findReplace.regex":`Use Regular Expression`,"findReplace.preserveCase":`Preserve Case`,"findReplace.replace":`Replace`,"findReplace.replaceAll":`Replace All`,"findReplace.previousMatch":`Previous Match`,"findReplace.nextMatch":`Next Match`,"findReplace.scope.tableName":`Table names`,"findReplace.scope.tableComment":`Table comments`,"findReplace.scope.columnName":`Column names`,"findReplace.scope.columnComment":`Column comments`,"findReplace.scope.memo":`Memos`,"findReplace.scope.indexName":`Index names`,"findReplace.scope.tableGroupName":`Table group names`,"findReplace.invalidRegex":`Invalid regular expression`,"findReplace.noResults":`No results`,"findReplace.matchCount":{one:`{count} match`,other:`{count} matches`},"findReplace.position":`{current} of {total}`,"findReplace.replaced":{one:`Replaced {count} match`,other:`Replaced {count} matches`},"findReplace.noChanges":`No changes`,"findReplace.noMoreMatches":`No more matches`,"findReplace.field.tableName":`Table`,"findReplace.field.tableComment":`Table comment`,"findReplace.field.columnName":`Column`,"findReplace.field.columnComment":`Column comment`,"findReplace.field.memo":`Memo`,"findReplace.field.indexName":`Index`,"findReplace.field.tableGroupName":`Table group`,"findReplace.matchLocation":`{location} · {kind}`},ZV={"floatingToolbar.hand":`Hand`,"floatingToolbar.select":`Select`,"floatingToolbar.zoomOut":`Zoom out`,"floatingToolbar.resetZoom":`Reset zoom`,"floatingToolbar.zoomIn":`Zoom in`,"floatingToolbar.zenMode":`Zen Mode`,"floatingToolbar.goToContent":`Go to content`,"floatingToolbar.goToNearestContent":`go to the nearest content`},QV={"mapColumns.title":`Map Columns`,"mapColumns.subtitle":`{parent} → {child} · {relationshipType}`,"mapColumns.mapToExisting":`Map to existing columns`,"mapColumns.createNew":`Create new columns`,"mapColumns.noPrimaryKeyToCopy":`{table} has no primary key to copy`,"mapColumns.references":`References`,"mapColumns.unique":`Unique: {column}`,"mapColumns.currentColumns":`Current columns (not a key)`,"mapColumns.referencedColumn":`Referenced column`,"mapColumns.foreignKeyColumn":`Foreign key column`,"mapColumns.pickColumn":`Pick a column`,"mapColumns.pickEveryColumn":`Pick a foreign key column for every referenced column`,"mapColumns.newColumn":`New column: {name}`,"mapColumns.columnOption":`{name} ({dataType})`,"mapColumns.columnOptionInUse":`{name} ({dataType}) · in use`,"mapColumns.removed":`(removed)`,"mapColumns.invalid":`(invalid)`,"mapColumns.becomesType":`{column} becomes {dataType}`,"mapColumns.typesDiffer":`Types differ: {parentType} and {childType}`,"mapColumns.selfOnly":`At least one column must reference a different column`,"mapColumns.duplicate":`These columns are already linked by another relationship`,"mapColumns.noKey":`{table} has no key to reference`,"mapColumns.notAKey":`The referenced columns are not a key of {table}`,"mapColumns.fixMapping":`Pick a key in References to fix this mapping`,"mapColumns.addKeyToFix":`Add a primary key or unique column to {table} to fix this mapping`,"mapColumns.changedRemotely":`This relationship changed while the dialog was open`,"mapColumns.map":`Map`,"mapColumns.save":`Save`,"mapColumns.closedTableRemoved":`Map Columns closed: {table} was removed`,"mapColumns.closedRelationshipRemoved":`Map Columns closed: the relationship was removed`,"mapColumns.failed":`Couldn't map columns: the diagram changed`},$V={"palette.tab":`Tab`,"palette.noCommandsMatch":`No commands match`,"palette.searchTables":`Search tables for "{keyword}"`,"palette.searchColumns":`Search columns for "{keyword}"`,"palette.searchText":`Search comments & memos for "{keyword}"`,"palette.scope.tables":`Tables`,"palette.scope.columns":`Columns`,"palette.scope.text":`Comments & memos`,"palette.scope.help":`Help`,"palette.scopeDescription.tables":`Go to a table by its name`,"palette.scopeDescription.columns":`Go to a column by its name, or by table.column`,"palette.scopeDescription.text":`Search table comments, column comments and memos`,"palette.scopeDescription.help":`List the prefixes that narrow the search`,"palette.keywords.graphql":`graphql sdl gql schema`,"palette.keywords.dbml":`dbml dbdiagram dbdocs schema`,"palette.keywords.aml":`aml azimutt markup language schema`,"palette.keywords.image":`image png svg vector picture clipboard`,"palette.keywords.explorer":`find replace rename tree outline objects`,"palette.schemaSqlStatements":`Schema SQL: Statements`,"palette.schemaSqlHeader":`Schema SQL: Header`,"palette.schemaSqlOptionsPanel":`Schema SQL: Options panel`,"palette.codeGeneratorOptionsPanel":`Code Generator: Options panel`,"palette.groupSelectedTables":`Group Selected Tables`,"palette.keywords.schemaSqlStatements":`create if not exists drop replace`,"palette.keywords.schemaSqlHeader":`use database search_path`,"palette.keywords.schemaSqlOptionsPanel":`show hide before after scripts`,"palette.keywords.codeGeneratorOptionsPanel":`show hide database case save file`},eH={"schemaSql.thisWindowOnly":`This window only`,"schemaSql.statements":`Statements`,"schemaSql.header":`Header`,"schemaSql.tables":`Tables`,"schemaSql.allTables":`All`,"schemaSql.noGroup":`No group`,"schemaSql.noTablesChosen":`No tables chosen. Check some under Tables.`,"schemaSql.notInDatabase":`Not in {database}`,"schemaSql.dropWarning":`Drops {tables} before creating them. Their rows are lost.`,"schemaSql.replaceWarning":`Replaces {tables}. Their rows are lost.`,"schemaSql.moreTables":{one:`{count} more table`,other:`{count} more tables`},"schemaSql.headerInvalidName":`Database name "{name}" is not a valid identifier.`,"schemaSql.oracleLongNames":`Oracle 12.2+ for names over 30 bytes: {names}`,"schemaSql.scriptsCaption":`Saved in the document · written as is for every database`,"schemaSql.beforeTables":`Before tables`,"schemaSql.afterTables":`After tables`,"schemaSql.afterPlaceholder":`-- GRANT, CREATE VIEW, seed data …`,"schemaSql.mssqlGoHint":`MSSQL gets GO after a script that does not end with GO.`},tH={"settings.preferences":`Preferences`,"settings.relationshipDataTypeSync":`Relationship DataType Sync`,"settings.maxCommentWidth":`Maximum comment width`,"settings.recalculateTableWidth":`Recalculation table width`,"settings.sync":`Sync`,"settings.toast.tableWidthRecalculated":`Recalculated table width`,"settings.lockHeading":`Lock`,"settings.lockSetting":`Lock {name}`,"settings.unlockSetting":`Unlock {name}`,"settings.lockedValue":`Locked value`,"settings.currentValue":`Current value`,"settings.lockRow.viewport":`Viewport`,"settings.lockRow.canvasType":`Canvas Type`,"settings.lockRow.bracketType":`Bracket Type`,"settings.columnOrder":`Column Order`},nH={"shortcuts.command":`Command`,"shortcuts.keybinding":`Keybinding`,"shortcuts.name.edit":`Editing`,"shortcuts.name.stop":`Stop`,"shortcuts.name.search":`Search`,"shortcuts.name.findReplace":`Toggle Explorer`,"shortcuts.name.undo":`Undo`,"shortcuts.name.redo":`Redo`,"shortcuts.name.addTable":`Add Table`,"shortcuts.name.addColumn":`Add Column`,"shortcuts.name.addMemo":`Add Memo`,"shortcuts.name.addTableGroup":`Add Table Group`,"shortcuts.name.groupSelectedTables":`Group Selected Tables`,"shortcuts.name.removeTable":`Remove Table, Memo`,"shortcuts.name.removeColumn":`Remove Column`,"shortcuts.name.removeSelection":`Delete Selection`,"shortcuts.name.primaryKey":`Primary Key`,"shortcuts.name.selectAllTable":`Select All Table, Memo`,"shortcuts.name.selectAllColumn":`Select All Column`,"shortcuts.name.relationshipZeroOne":`Relationship Zero One`,"shortcuts.name.relationshipZeroN":`Relationship Zero N`,"shortcuts.name.relationshipOneOnly":`Relationship One Only`,"shortcuts.name.relationshipOneN":`Relationship One N`,"shortcuts.name.tableProperties":`Table Properties`,"shortcuts.name.focusView":`Focus on this table`,"shortcuts.name.zoomIn":`Zoom In`,"shortcuts.name.zoomOut":`Zoom Out`,"shortcuts.name.zoomReset":`Zoom Reset`,"shortcuts.name.handTool":`Hand Tool`,"shortcuts.name.zenMode":`Zen Mode`},rH={"tableProperties.readOnly":`Read only`,"tableProperties.indexes":`Indexes`,"tableProperties.keys":`Keys`,"tableProperties.columns":`Columns`,"tableProperties.indexOrder":`Index order`,"tableProperties.dragToReorder":`Drag to reorder`,"tableProperties.addIndex":`Add Index`,"tableProperties.noIndexes":`No indexes`,"tableProperties.noIndexesYet":`No indexes yet`,"tableProperties.noColumns":`This table has no columns`,"tableProperties.indexHasNoColumns":`This index has no columns`,"tableProperties.checkColumnsToAdd":`Check columns above to add them`,"tableProperties.selectedCount":{one:`{count} of {total} selected`,other:`{count} of {total} selected`},"tableProperties.readOnlyByPrimaryKey":`Read only: set by the {flag} flag on its columns`,"tableProperties.readOnlyByUnique":`Read only: set by the {flag} flag on its column`,"tableProperties.selectKeyOrIndex":`Select a key or an index`,"tableProperties.selectIndexToSee":`Select an index to see its columns`,"tableProperties.selectIndexToEdit":`Select an index to edit its columns`,"tableProperties.noKeysOrIndexes":`This table has no keys or indexes`,"tableProperties.addIndexToChoose":`Add an index to choose its columns`,"tableProperties.uniqueColumn":`Unique Column`,"tableProperties.readOnlyKey":`Read Only`,"tableProperties.indexName":`name`,"tableProperties.alternateKeyN":`Alternate Key {n}`,"tableProperties.remove":`Remove`,"tableProperties.ascending":`Ascending`,"tableProperties.descending":`Descending`},iH={"themeBuilder.accentColor":`Accent color`,"themeBuilder.grayColor":`Gray color`,"themeBuilder.appearance":`Appearance`},aH={"toolbar.databaseName":`database name`,"toolbar.undo":`Undo`,"toolbar.redo":`Redo`,"toolbar.timeTravel":`Time Travel`},oH={"visualization.graph":`Graph`,"visualization.fit":`Fit`,"visualization.tidyUp":`Tidy Up`,"visualization.showAll":`Show all`,"visualization.rowDisplay":`Row display: {mode}`,"visualization.showMode.nameOnly":`Name only`,"visualization.showMode.keysOnly":`Keys only`,"visualization.showMode.allFields":`All fields`},sH={"welcome.heading":`Right-click the canvas for every action.`,"welcome.menu":`Get started`,"welcome.commandPalette":`Command Palette`,"welcome.back":`Back`,"welcome.hintPalette":`Search commands and tables`,"welcome.hintThemeAndLanguage":`Pick a theme and a language`,"welcome.hintTheme":`Pick a theme`,"welcome.hintLanguage":`Pick a language`,"welcome.hintFloatingToolbar":`Pan, zoom and draw relationships`},cH=Ki(kV(`en`,{...GV,...KV,...ZV,...oH,...UV,...eH,...XV,...rH,...WV,...$V,...tH,...nH,...JV,...YV,...aH,...iH,...sH,...QV,...qV})),lH=e=>vo(e,cH),uH=Ki({}),dH=e=>vo(e,uH);function fH({app:e,container:t,scene:n,width:r,height:i,theme:a,i18n:o}){let s=new y({container:t,width:r,height:i}),c={host:s.container(),parentElement:null},l=yo(c,vV,e),u=a?yo(c,uH,a):null,d=o?yo(c,cH,o):null,f=BV(s);return vp(s,n),{stage:s,destroy:()=>{f(),vp(s,null),d?.destroy(),u?.destroy(),l.destroy(),s.destroy()}}}const pH=e=>new Promise(t=>setTimeout(t,e)),mH=32767;function hH(e,t,n){let r=Math.max(t,n),i=t*n;return r<=0||i<=0?e:Math.min(e,mH/r,16384/Math.sqrt(i))}function gH({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 _H(e){let{settings:{show:t},doc:{relationshipIds:n},collections:r}=e,i=rb(e);if(U(t,P.relationship)){let e=N(r).collection(`relationshipEntities`).selectByIds(n);for(let t of e){let e=t_(t);i=i?ly(i,e):e}}return gH(i??{x:0,y:0,width:0,height:0},80)}function vH({width:e,height:t}){let n=Math.max(e,t),r=e*t;return n<=0||r<=0?1:Math.min(1,mH/n,Math.sqrt(268435456/r))}function yH(e,t){return{width:Math.max(e.width*t,1),height:Math.max(e.height*t,1)}}function bH(e,t){let n=vH({x:0,y:0,...e}),r=yH(e,n),i=hH(t,r.width,r.height),a=1*t;return{width:Math.floor(r.width*i),height:Math.floor(r.height*i),askedWidth:Math.floor(e.width*a),askedHeight:Math.floor(e.height*a),reduced:n*i<a}}const xH={"arrow-down":Je,"arrow-left":Ye,"arrow-right":Xe,"arrow-up":Ze,atom:Qe,braces:$e,brackets:et,"case-sensitive":tt,"case-upper":nt,check:rt,"chevron-down":it,"chevron-right":at,"chevrons-down-up":ot,code:st,contrast:ct,copy:lt,database:ut,download:dt,ellipsis:ft,"external-link":pt,eye:mt,"file-diff":ht,"file-image":gt,"file-input":_t,"file-output":vt,folder:yt,"folder-open":bt,fullscreen:xt,"grip-vertical":St,group:Ct,hand:wt,keyboard:Et,"key-round":Tt,languages:Dt,link:Ot,list:kt,"list-tree":At,"loader-circle":jt,lock:Mt,"lock-open":Nt,logs:Pt,maximize:Ft,"message-square":It,minimize:Lt,minus:Rt,monitor:zt,"moon-star":Bt,"mouse-pointer-2":Vt,network:Ht,palette:Ut,"panel-right":Wt,"panel-right-close":Gt,"panel-right-open":Kt,pencil:qt,pipette:Jt,plus:Yt,"redo-2":Xt,"refresh-cw":Zt,regex:Qt,replace:$t,"replace-all":en,"rotate-ccw-clock":tn,search:nn,settings:rn,"share-2":an,spline:on,"sticky-note":sn,sun:cn,"table-2":ln,"table-properties":un,"triangle-alert":dn,"undo-2":fn,ungroup:pn,"wand-sparkles":mn,waypoints:hn,"whole-word":gn,workflow:_n,x:vn},SH={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`}]]},CH={};wH();function wH(){for(let e of Object.keys(xH))CH[e]={name:e,node:xH[e]};for(let e of Object.keys(SH))CH[e]={name:e,node:SH[e]}}function TH(e){return CH[e]}const EH=`-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', 'Open Sans', system-ui, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji'`,DH=`'Menlo', 'Consolas', 'Bitstream Vera Sans Mono', monospace, 'Apple Color Emoji', 'Segoe UI Emoji'`;pf.global`
|
|
24
|
+
`);t[0]?.trim()===``&&t.shift(),t.length&&t[t.length-1].trim()===``&&t.pop();let n=t.filter(e=>e.trim()!==``).map(e=>(QI.exec(e)?.[0]??``).length),r=n.length?Math.min(...n):0;return t.map(e=>e.slice(r)).join(`
|
|
25
|
+
`)}const iL=/^[0-9a-z ]+$/,aL=/'/g,oL=/\?/g;function sL(e){try{return{ok:!0,model:lL(eL(e))}}catch(e){return{ok:!1,message:e instanceof Error?e.message:`Invalid DBML`}}}function cL(e){let t=0;return{peek:(n=0)=>e[t+n]??null,next:()=>e[t++]??null,atEnd:()=>t>=e.length}}function lL(e){let t=cL(e),n={tables:[],refs:[],tableGroups:[],enums:{},skipped:[]},r=/* @__PURE__ */ new Map,i=/* @__PURE__ */ new Set,a=e=>{i.has(e)||(i.add(e),n.skipped.push(e))},o=e=>{a(e),RL(t)};for(;!t.atEnd();){if(BL(t))continue;let e=t.peek();if(!e)break;if(!VL(e)){t.next();continue}let i=e.value.toLowerCase();if(i===`table`&&e.kind===Y.identifier){t.next();let e=dL(t,r);e&&n.tables.push(e);continue}if(i===`tablepartial`&&e.kind===Y.identifier){t.next();let e=dL(t,r);e&&r.set(e.name,e.columns);continue}if(i===`ref`&&e.kind===Y.identifier){t.next(),n.refs.push(..._L(t));continue}if(i===`enum`&&e.kind===Y.identifier){t.next(),CL(t,n.enums);continue}if(i===`tablegroup`&&e.kind===Y.identifier){t.next(),n.tableGroups.push(uL(t,a));continue}o(i)}return n}function uL(e,t){let{name:n}=ML(e),r={name:n,color:``,tables:[]};if(wL(e).forEach(({key:e,tokens:n})=>{e===`color`?r.color=_C(OL(n)):e!==``&&t(`tablegroup ${e}`)}),!IL(e))return zL(e),r;for(;!e.atEnd();){if(BL(e))continue;let n=e.peek();if(!n)break;if(HL(n,`}`)){e.next();break}let i=e.peek(1);if(n.kind===Y.identifier&&n.value.toLowerCase()===`note`&&i&&(HL(i,`:`)||HL(i,`{`))){e.next(),e.next(),HL(i,`{`)?LL(e):zL(e),t(`tablegroup note`);continue}if(VL(n)){let{schemaName:t,name:n}=ML(e);r.tables.push({schemaName:t,tableName:n})}zL(e)}return r}function dL(e,t){let{schemaName:n,name:r}=ML(e),i={schemaName:n,name:r,alias:``,comment:``,color:``,columns:[],indexes:[]},a=e.peek();if(a&&a.kind===Y.identifier&&a.value.toLowerCase()===`as`&&(e.next(),i.alias=NL(e)),DL(i,wL(e)),!IL(e))return r===``?null:i;for(;!e.atEnd();){if(BL(e))continue;let n=e.peek();if(!n)break;if(n.kind===Y.punctuation&&n.value===`}`){e.next();break}if(n.kind===Y.punctuation&&n.value===`~`){e.next();let n=t.get(NL(e));n&&i.columns.push(...n.map(e=>({...e})));continue}if(n.kind===Y.identifier){let t=n.value.toLowerCase(),r=e.peek(1);if(t===`note`&&r&&HL(r,`:`)){e.next(),e.next(),i.comment=PL(e);continue}if(t===`note`&&r&&HL(r,`{`)){e.next(),e.next(),i.comment=FL(e);continue}if(t===`indexes`&&r&&HL(r,`{`)){e.next(),e.next(),i.indexes.push(...hL(e));continue}if(r&&HL(r,`{`)){e.next(),e.next(),LL(e);continue}}let r=fL(e);r&&i.columns.push(r)}return i}function fL(e){let t=e.peek();if(!t||!VL(t))return zL(e),null;e.next();let n={name:t.value,comment:``,typeName:``,typeSchemaName:``,primaryKey:!1,unique:!1,notNull:!1,autoIncrement:!1,default:``,inlineRefs:[]},r=pL(e);return n.typeName=r.name,n.typeSchemaName=r.schemaName,TL(n,wL(e)),zL(e),n.typeName===``?null:n}function pL(e){let{schemaName:t,name:n}=ML(e);if(n===``)return{name:``,schemaName:``};let r=[n],i=e.peek();i&&HL(i,`(`)&&(e.next(),r.push(`(${mL(e)})`));let a=e.peek(),o=e.peek(1);return a&&o&&HL(a,`[`)&&HL(o,`]`)&&(e.next(),e.next(),r.push(`[]`)),{name:r.join(``),schemaName:t}}function mL(e){let t=[];for(;!e.atEnd();){let n=e.next();if(!n||HL(n,`)`))break;n.kind!==Y.newline&&t.push(n.kind===Y.string?`'${n.value}'`:n.value)}return t.join(``)}function hL(e){let t=[];for(;!e.atEnd();){if(BL(e))continue;let n=e.peek();if(!n)break;if(HL(n,`}`)){e.next();break}let r={name:``,unique:!1,primaryKey:!1,columnNames:[]};HL(n,`(`)?(e.next(),r.columnNames.push(...gL(e))):VL(n)?(e.next(),r.columnNames.push(n.value)):e.next(),EL(r,wL(e)),zL(e),r.columnNames.length!==0&&t.push(r)}return t}function gL(e){let t=[];for(;!e.atEnd();){let n=e.next();if(!n||HL(n,`)`))break;VL(n)&&t.push(n.value)}return t}function _L(e){let t=e.peek();if(t&&VL(t)){let t=e.peek(1);t&&(HL(t,`:`)||HL(t,`{`))&&e.next()}let n=e.peek();if(n&&HL(n,`:`)){e.next();let t=vL(e);return zL(e),t?[t]:[]}if(!IL(e))return zL(e),[];let r=[];for(;!e.atEnd();){if(BL(e))continue;let t=e.peek();if(!t)break;if(HL(t,`}`)){e.next();break}let n=vL(e);n?r.push(n):zL(e)}return r}function vL(e){let t=SL(e),n=xL(e);if(n===``)return null;let r=SL(e),i=yL(wL(e));return t.tableName===``||r.tableName===``?null:{operator:n,left:t,right:r,...i}}function yL(e){let t={onDelete:``,onUpdate:``};return e.forEach(({key:e,tokens:n})=>{e===`delete`?t.onDelete=bL(n):e===`update`&&(t.onUpdate=bL(n))}),t}function bL(e){return e.filter(e=>e.kind!==Y.newline).map(e=>e.value).join(` `)}function xL(e){let t=e.peek();return t?t.kind===Y.operator?(e.next(),t.value.replace(oL,``)):HL(t,`-`)?(e.next(),`-`):``:``}function SL(e){let t=[],n=[];for(;!e.atEnd();){let r=e.peek();if(!r||!VL(r))break;e.next(),t.push(r.value);let i=e.peek();if(!i||!HL(i,`.`))break;e.next();let a=e.peek();if(a&&HL(a,`(`)){e.next(),n.push(...gL(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 CL(e,t){let{schemaName:n,name:r}=ML(e);if(wL(e),!IL(e)){zL(e);return}let i=[];for(;!e.atEnd();){if(BL(e))continue;let t=e.peek();if(!t)break;if(HL(t,`}`)){e.next();break}VL(t)?(e.next(),i.push(t.value),wL(e)):e.next(),zL(e)}r!==``&&(t[n?`${n}.${r}`:r]=i,n&&!(r in t)&&(t[r]=i))}function wL(e){let t=e.peek();if(!t||!HL(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||HL(t,`]`))break;if(HL(t,`,`)){o();continue}if(!a&&HL(t,`:`)){a=!0;continue}if(a){i.push(t);continue}if(VL(t)&&iL.test(t.value.toLowerCase())){r.push(t.value);continue}a=!0,i.push(t)}return o(),n}function TL(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=AL(n);break;case`default`:e.default=jL(n);break;case`ref`:{let t=kL(n);t&&e.inlineRefs.push(t);break}}})}function EL(e,t){t.forEach(({key:t,tokens:n})=>{switch(t){case`name`:e.name=AL(n);break;case`unique`:e.unique=!0;break;case`pk`:case`primary key`:e.primaryKey=!0}})}function DL(e,t){t.forEach(({key:t,tokens:n})=>{t===`note`?e.comment=AL(n):t===`headercolor`&&(e.color=_C(OL(n)))})}function OL(e){return e.every((t,n)=>{let r=e[n-1];return(t.kind===Y.punctuation||t.kind===Y.number||t.kind===Y.identifier)&&(!r||t.offset===r.offset+r.value.length)})?e.map(e=>e.value).join(``):``}function kL(e){let t=cL(e),n=xL(t);if(n===``)return null;let r=SL(t);return r.tableName===``?null:{operator:n,target:r}}function AL(e){let t=e.find(e=>e.kind===Y.string||e.kind===Y.quoted||e.kind===Y.identifier);return t?t.value:``}function jL(e){let t=e.filter(e=>e.kind!==Y.newline),n=t[0];if(!n)return``;if(HL(n,`-`)&&t[1]?.kind===Y.number)return`-${t[1].value}`;switch(n.kind){case Y.string:return`'${n.value.replace(aL,`''`)}'`;case Y.expression:case Y.number:case Y.identifier:case Y.quoted:return n.value;default:return t.map(e=>e.value).join(``)}}function ML(e){let t=NL(e);if(t===``)return{schemaName:``,name:``};let n=e.peek();return!n||!HL(n,`.`)?{schemaName:``,name:t}:(e.next(),{schemaName:t,name:NL(e)})}function NL(e){let t=e.peek();return!t||!VL(t)?``:(e.next(),t.value)}function PL(e){let t=e.peek();return t&&(t.kind===Y.string||t.kind===Y.quoted)?(e.next(),t.value):``}function FL(e){let t=``;for(;!e.atEnd();){let n=e.next();if(!n||HL(n,`}`))break;t===``&&n.kind===Y.string&&(t=n.value)}return t}function IL(e){let t=0;for(;e.peek(t)?.kind===Y.newline;)t+=1;let n=e.peek(t);if(!n||!HL(n,`{`))return!1;for(let n=0;n<=t;n+=1)e.next();return!0}function LL(e){let t=1;for(;!e.atEnd()&&t!==0;){let n=e.next();if(!n)break;HL(n,`{`)?t+=1:HL(n,`}`)&&--t}}function RL(e){if(IL(e)){LL(e);return}for(;!e.atEnd();){let t=e.next();if(!t||t.kind===Y.newline)return;if(HL(t,`{`)){LL(e);return}}}function zL(e){for(;!e.atEnd();){let t=e.peek();if(!t)return;if(t.kind===Y.newline){e.next();return}if(HL(t,`}`))return;e.next()}}function BL(e){let t=e.peek();return t&&t.kind===Y.newline?(e.next(),!0):!1}function VL(e){return e.kind===Y.identifier||e.kind===Y.quoted}function HL(e,t){return e.kind===Y.punctuation&&e.value===t}const UL={tables:[],refs:[],tableGroups:[],enums:{},skipped:[]};function WL(e,t,n){let r=sL(e),i=r.ok?r.model:UL,a=jh({}),{settings:o}=n?n(a):a,s=FI(i,t,o.database);return s.settings=o,Mg(s)}const GL={[F.MariaDB]:`VARCHAR(255)`,[F.MSSQL]:`varchar(255)`,[F.MySQL]:`VARCHAR(255)`,[F.Oracle]:`VARCHAR2(255)`,[F.PostgreSQL]:`varchar(255)`,[F.SQLite]:`TEXT`,[F.Databricks]:`STRING`,[F.Snowflake]:`VARCHAR(255)`},KL={[F.MariaDB]:`INT`,[F.MSSQL]:`int`,[F.MySQL]:`INT`,[F.Oracle]:`INTEGER`,[F.PostgreSQL]:`integer`,[F.SQLite]:`INTEGER`,[F.Databricks]:`INT`,[F.Snowflake]:`INT`},qL={[F.MariaDB]:`SMALLINT`,[F.MSSQL]:`smallint`,[F.MySQL]:`SMALLINT`,[F.Oracle]:`SMALLINT`,[F.PostgreSQL]:`smallint`,[F.SQLite]:`SMALLINT`,[F.Databricks]:`SMALLINT`,[F.Snowflake]:`SMALLINT`},JL={[F.MariaDB]:`BIGINT`,[F.MSSQL]:`bigint`,[F.MySQL]:`BIGINT`,[F.Oracle]:`NUMBER(19)`,[F.PostgreSQL]:`bigint`,[F.SQLite]:`BIGINT`,[F.Databricks]:`BIGINT`,[F.Snowflake]:`BIGINT`},YL={[F.MariaDB]:`DOUBLE`,[F.MSSQL]:`float`,[F.MySQL]:`DOUBLE`,[F.Oracle]:`BINARY_DOUBLE`,[F.PostgreSQL]:`double precision`,[F.SQLite]:`REAL`,[F.Databricks]:`DOUBLE`,[F.Snowflake]:`FLOAT`},XL={[F.MariaDB]:`DECIMAL(38,18)`,[F.MSSQL]:`decimal(38,18)`,[F.MySQL]:`DECIMAL(38,18)`,[F.Oracle]:`DECIMAL(38,18)`,[F.PostgreSQL]:`numeric`,[F.SQLite]:`DECIMAL`,[F.Databricks]:`DECIMAL(38,18)`,[F.Snowflake]:`DECIMAL(38,18)`},ZL={[F.MariaDB]:`BOOLEAN`,[F.MSSQL]:`bit`,[F.MySQL]:`BOOLEAN`,[F.Oracle]:`BOOLEAN`,[F.PostgreSQL]:`boolean`,[F.SQLite]:`BOOLEAN`,[F.Databricks]:`BOOLEAN`,[F.Snowflake]:`BOOLEAN`},QL={[F.MariaDB]:`DATE`,[F.MSSQL]:`date`,[F.MySQL]:`DATE`,[F.Oracle]:`DATE`,[F.PostgreSQL]:`date`,[F.SQLite]:`DATE`,[F.Databricks]:`DATE`,[F.Snowflake]:`DATE`},$L={[F.MariaDB]:`TIME`,[F.MSSQL]:`time`,[F.MySQL]:`TIME`,[F.Oracle]:`VARCHAR2(255)`,[F.PostgreSQL]:`time`,[F.SQLite]:`TEXT`,[F.Databricks]:`STRING`,[F.Snowflake]:`TIME`},eR={[F.MariaDB]:`DATETIME`,[F.MSSQL]:`datetime2`,[F.MySQL]:`DATETIME`,[F.Oracle]:`TIMESTAMP`,[F.PostgreSQL]:`timestamp`,[F.SQLite]:`DATETIME`,[F.Databricks]:`TIMESTAMP`,[F.Snowflake]:`TIMESTAMP_NTZ`},tR={[F.MariaDB]:`TIMESTAMP`,[F.MSSQL]:`datetimeoffset`,[F.MySQL]:`TIMESTAMP`,[F.Oracle]:`TIMESTAMP WITH TIME ZONE`,[F.PostgreSQL]:`timestamptz`,[F.SQLite]:`DATETIME`,[F.Databricks]:`TIMESTAMP`,[F.Snowflake]:`TIMESTAMP_TZ`},nR={[F.MariaDB]:`VARCHAR(255)`,[F.MSSQL]:`varchar(255)`,[F.MySQL]:`VARCHAR(255)`,[F.Oracle]:`INTERVAL DAY TO SECOND`,[F.PostgreSQL]:`interval`,[F.SQLite]:`TEXT`,[F.Databricks]:`INTERVAL DAY TO SECOND`,[F.Snowflake]:`VARCHAR(255)`},rR={[F.MariaDB]:`JSON`,[F.MSSQL]:`json`,[F.MySQL]:`JSON`,[F.Oracle]:`JSON`,[F.PostgreSQL]:`jsonb`,[F.SQLite]:`TEXT`,[F.Databricks]:`VARIANT`,[F.Snowflake]:`VARIANT`},iR={[F.MariaDB]:`UUID`,[F.MSSQL]:`uniqueidentifier`,[F.MySQL]:`CHAR(36)`,[F.Oracle]:`VARCHAR2(36)`,[F.PostgreSQL]:`uuid`,[F.SQLite]:`TEXT`,[F.Databricks]:`STRING`,[F.Snowflake]:`UUID`},aR={[F.MariaDB]:`BLOB`,[F.MSSQL]:`varbinary(max)`,[F.MySQL]:`BLOB`,[F.Oracle]:`BLOB`,[F.PostgreSQL]:`bytea`,[F.SQLite]:`BLOB`,[F.Databricks]:`BINARY`,[F.Snowflake]:`BINARY`},oR={id:GL,string:GL,boolean:ZL,int:KL,float:YL,positiveint:KL,nonnegativeint:KL,unsignedint:KL,short:qL,smallint:qL,positivefloat:YL,nonnegativefloat:YL,bigint:JL,biginteger:JL,long:JL,int8:JL,safeint:JL,decimal:XL,bigdecimal:XL,numeric:XL,money:XL,datetime:eR,datetimeiso:eR,localdatetime:eR,timestamp:eR,timestamptz:tR,date:QL,localdate:QL,time:$L,localtime:$L,timetz:$L,duration:nR,iso8601duration:nR,interval:nR,json:rR,jsonb:rR,jsonobject:rR,uuid:iR,guid:iR,byte:aR,bytes:aR,bytea:aR,binary:aR,email:GL,emailaddress:GL,url:GL,uri:GL,void:GL};function sR(e,t,n){let r=GL[t]??``,i=dR(n.enums,e);return i?lR(i,t)??r:dR(n.unions,e)?r:oR[e.toLowerCase()]?.[t]??r}function cR(e,t,n){let r=dR(t.enums,e);if(r)return n!==void 0&&lR(r,n)!==void 0?``:uR(e,r);let i=dR(t.unions,e);return i?uR(e,i):``}function lR(e,t){if(t===F.MySQL||t===F.MariaDB)return`ENUM(${e.map(e=>`'${e.replace(/'/g,`''`)}'`).join(`,`)})`}function uR(e,t){return` ${e}: ${t.join(` | `)}`}function dR(e,t){let n=e[t];return Array.isArray(n)&&n.length?n:void 0}const fR=/_/g,pR=/\d+$/;function mR(e,t,n){let r=jh({}),i=hR(e.tables),a=new Set(e.skipped),o=e.tables.map(o=>gR(r,t,e,n,o,i,a));return xR(r,t,o),FR(r,o),r}function hR(e){let t=/* @__PURE__ */ new Map,n=/* @__PURE__ */ 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 gR({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(_R(l)),f=uv(a.name),p=uv(a.comment),m=G_({name:f,comment:p,ui:{widthName:V(c(f)),widthComment:V(c(p))}}),h={name:f,source:a,table:m,columns:[],referenceFields:u};return l.forEach(e=>{bR(t,h,vR(n,r,i,m.id,e,d.has(e)))}),e.tableIds.push(m.id),M(t).collection(`tableEntities`).setOne(m),h}function _R(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 vR({toWidth:e},t,n,r,i,a){let{named:o,nonNull:s}=i.typeRef,c=uv(i.name),l=uv(i.dataType)||sR(o,n,t),u=uv(i.default),d=yR(i,t,n);return K_({tableId:r,name:c,comment:d,dataType:l,default:u,options:(i.autoIncrement?L.autoIncrement:0)|(a?L.primaryKey:0)|(i.unique?L.unique:0)|(s?L.notNull:0),ui:{widthName:V(e(c)),widthComment:V(e(d)),widthDataType:V(e(l)),widthDefault:V(e(u)),keys:a?R.primaryKey:0}})}function yR(e,t,n){let{named:r,isList:i}=e.typeRef,a=[],o=uv(e.comment);return o&&a.push(o),i&&a.push(`list of ${r}`),`${a.join(` `)}${cR(r,t,n)}`.trim()}function bR(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 xR(e,t,n){let r=hR(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,namedReciprocal:null,named:!1})})});let a={claimedColumnIds:/* @__PURE__ */ new Set,relationshipKeys:/* @__PURE__ */ new Set},o=i.filter(e=>!e.field.typeRef.isList);SR(i,o),[...o.filter(e=>e.field.relationFields.length),...o.filter(e=>!e.field.relationFields.length)].forEach(n=>{if(n.consumed||n.named&&!n.namedReciprocal)return;let r=n.namedReciprocal??ER(i,n);n.consumed=!0,r&&(r.consumed=!0);let o=!!r?.field.typeRef.isList;OR(e,t,a,{parent:n.target,child:n.source,field:n.field,childSide:!0,relationshipType:n.field.typeRef.nonNull?o?r_.OneN:r_.OneOnly:o?r_.ZeroN:r_.ZeroOne})}),i.filter(e=>e.field.typeRef.isList).forEach(r=>{if(r.consumed)return;let o=DR(i,r);if(r.consumed=!0,o){o.consumed=!0,NR(e,t,n,r);return}OR(e,t,a,{parent:r.source,child:r.target,field:r.field,childSide:!1,relationshipType:r.field.typeRef.nonNull?r_.OneN:r_.ZeroN})})}function SR(e,t){CR(e,t,wR),CR(e,t,TR)}function CR(e,t,n){let r=e=>n(e.field.name);[...t].sort((e,t)=>r(t).length-r(e).length).forEach(t=>{if(t.named||t.field.relationName)return;let n=`by${r(t)}`,i=e.filter(e=>e!==t&&!e.named&&!e.field.relationName&&!e.field.relationFields.length&&e.source===t.target&&e.target===t.source&&r(e).endsWith(n));if(i.length!==1)return;let[a]=i;t.namedReciprocal=a,t.named=!0,a.named=!0})}function wR(e){return e.replace(fR,``).toLowerCase()}function TR(e){return wR(e).replace(pR,``)}function ER(e,t){let n=e.filter(e=>e!==t&&!e.consumed&&!e.named&&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.named&&e.source===t.source&&e.target===t.target);return n.length===1&&i.length===1?n[0]:null}function DR(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 OR(e,t,n,r){let{doc:i,collections:a}=e,{parent:o,child:s,relationshipType:c}=r,l=fS(o.columns);if(!l.length)return;let{startColumns:u,endColumns:d}=kR(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,R.primaryKey)?e.ui.keys|=R.foreignKey:e.ui.keys=R.foreignKey,n.claimedColumnIds.add(e.id)});let p=TA({identification:d.every(e=>G(e.ui.keys,R.primaryKey)&&G(e.ui.keys,R.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 kR(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=rF(i.columns,n),l=a.relationReferences[o],u=l?rF(r.columns,l):s[o]??null;c&&u&&(e.push(u),t.push(c))}),t.length)return{startColumns:e,endColumns:t}}let c=o?uv(a.name):pe(r.name),l=/* @__PURE__ */ new Set,u=[],d=[];return s.forEach(o=>{let s=AR(c,r.name,o.name),f=jR(i.columns,s,e=>l.has(e)?!0:n.claimedColumnIds.has(e))??MR(e,t,i,a,o,s[0]);l.add(f.id),u.push(o),d.push(f)}),{startColumns:u,endColumns:d}}function AR(e,t,n){return[`${e}${eD(n)}`,`${ye(e)}_${ye(n)}`,`${t}${eD(n)}`,`${ye(t)}_${ye(n)}`,`${e}Id`,`${ye(e)}_id`]}function jR(e,t,n){for(let r of t){let t=rF(e,r);if(t&&!n(t.id))return t}return null}function MR({collections:e},{toWidth:t},n,r,i,a){let o=pS(n.columns,``,a),{dataType:s}=i,c=K_({tableId:n.table.id,name:o,dataType:s,options:r.typeRef.nonNull?L.notNull:0,ui:{keys:R.foreignKey,widthName:V(t(o)),widthDataType:V(t(s))}});return bR(e,n,c),c}function NR(e,t,n,r){let{doc:i,collections:a}=e,{toWidth:o}=t,s=r.source,c=r.target,l=fS(s.columns),u=fS(c.columns);if(!l.length||!u.length)return;let d=pS(n.map(e=>e.table),``,`${s.name}_${c.name}`),f=`Junction table inferred from ${s.name} <-> ${c.name}`,p=G_({name:d,comment:f,ui:{widthName:V(o(d)),widthComment:V(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),PR(e,t,m,s,l),PR(e,t,m,c,u)}function PR(e,{toWidth:t},n,r,i){let{doc:a,collections:o}=e,s=i.map(e=>{let i=pS(n.columns,``,`${pe(r.name)}${eD(e.name)}`),{dataType:a}=e,s=K_({tableId:n.table.id,name:i,dataType:a,options:L.primaryKey|L.notNull,ui:{keys:R.primaryKey|R.foreignKey,widthName:V(t(i)),widthDataType:V(t(a))}});return bR(o,n,s),s}),c=TA({identification:!0,relationshipType:r_.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 FR({doc:e,collections:t},n){n.forEach(({source:n,table:r,columns:i})=>{n.indexes.forEach(n=>{let a=gk({name:uv(n.name),tableId:r.id,unique:n.unique}),o=[];n.fieldNames.forEach(e=>{let t=rF(i,e);t&&o.push(Nk({indexId:a.id,columnId:t.id,orderType:o_.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 IR=[`Query`,`Mutation`,`Subscription`],LR=[`PageInfo`],RR=[`Connection`,`Edge`],zR=[`_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`],BR=[`_Service`,`_Entity`,`_Any`,`_FieldSet`],VR=[`autoincrement`,`autoincrement()`],HR=/[_A-Za-z]/,UR=/[_0-9A-Za-z]/;function WR(e){try{return{ok:!0,model:qR(GR(e))}}catch(e){return{ok:!1,message:KR(e)}}}function GR(e){try{return Ye(e)}catch(t){let n=fz(e);if(n===e)throw t;try{return Ye(n)}catch{throw t}}}function KR(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 qR(e){let t={},n={},r=[],i=/* @__PURE__ */ new Map,a=/* @__PURE__ */ new Map,o=/* @__PURE__ */ new Set;for(let s of e.definitions)switch(s.kind){case qe.OBJECT_TYPE_DEFINITION:case qe.OBJECT_TYPE_EXTENSION:YR(a,s);break;case qe.INTERFACE_TYPE_DEFINITION:case qe.INTERFACE_TYPE_EXTENSION:{let e=s.name.value,t=i.get(e)??[];t.push(...s.fields??[]),i.set(e,t);break}case qe.SCHEMA_DEFINITION:case qe.SCHEMA_EXTENSION:for(let e of s.operationTypes??[])o.add(e.type.name.value);break;case qe.ENUM_TYPE_DEFINITION:t[s.name.value]=(s.values??[]).map(e=>e.name.value);break;case qe.UNION_TYPE_DEFINITION:n[s.name.value]=(s.types??[]).map(e=>e.name.value);break;case qe.SCALAR_TYPE_DEFINITION:r.push(s.name.value)}let s=o.size?o:new Set(IR),c=[],l=[],u=/* @__PURE__ */ new Map;for(let e of a.values()){if(cz(e.name,s)){l.push(e.name);continue}let t=XR(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 JR(c,u),{tables:c,enums:t,customScalars:r,unions:n,skipped:l}}function JR(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 YR(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||=uz(t);return}e.set(n,{name:n,comment:uz(t),interfaceNames:r,fieldNodes:[...t.fields??[]],directives:[...t.directives??[]]})}function XR(e,t){let n=ZR(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(QR).filter(ue),indexes:[]};for(let t of e.directives)tz(a,t);return a}function ZR(e){let t=/* @__PURE__ */ new Set;return e.filter(e=>{let n=e.name.value;return!t.has(n)&&(t.add(n),!0)})}function QR(e){if(e.name.value.startsWith(`__`))return null;let t={name:e.name.value,comment:uz(e),typeRef:$R(e.type),primaryKey:!1,unique:!1,autoIncrement:!1,default:``,dataType:``,relationName:``,relationFields:[],relationReferences:[],hasArguments:(e.arguments??[]).length>0};for(let n of e.directives??[])ez(t,n);return t}function $R(e){let t=e.kind===qe.NON_NULL_TYPE,n=t?e.type:e,r=n.kind===qe.LIST_TYPE,i=r?n.type:n,a=r&&i.kind===qe.NON_NULL_TYPE,o=i;for(;o.kind!==qe.NAMED_TYPE;)o=o.type;return{named:o.name.value,nonNull:t,isList:r,itemNonNull:a}}function ez(e,t){let n=t.name.value;if(n.startsWith(`db_`)){e.dataType=nz(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=rz(t,`value`);if(!n)break;let r=oz(n);VR.includes(r.toLowerCase())?e.autoIncrement=!0:e.default=r;break}case`map`:{let n=iz(t,`name`)||iz(t,`value`);n&&(e.name=n);break}case`relation`:{let n=iz(t,`name`)||iz(t,`value`);n&&(e.relationName=n);let r=rz(t,`fields`);r&&(e.relationFields=sz(r));let i=rz(t,`references`);i&&(e.relationReferences=sz(i));break}case`column`:{let n=iz(t,`name`);n&&(e.name=n);let r=iz(t,`dataType`);r&&(e.dataType=r);let i=rz(t,`default`);i&&(e.default=oz(i));let a=az(t,`autoIncrement`);a!==null&&(e.autoIncrement=a);let o=az(t,`unique`);o!==null&&(e.unique=o);let s=az(t,`primaryKey`);s!==null&&(e.primaryKey=s);break}}}function tz(e,t){switch(t.name.value){case`map`:{let n=iz(t,`name`)||iz(t,`value`);n&&(e.name=n);break}case`table`:{let n=iz(t,`name`);n&&(e.name=n);let r=rz(t,`comment`);r&&(e.comment=oz(r));break}case`index`:{let n=rz(t,`fields`),r=n?sz(n):[];if(!r.length)break;let i={name:iz(t,`name`),unique:az(t,`unique`)??!1,fieldNames:r};e.indexes.push(i);break}}}function nz(e,t){let n=e.slice(3),r=t.arguments??[];return r.length?`${n}(${r.map(e=>oz(e.value)).join(`, `)})`:n}function rz(e,t){let n=(e.arguments??[]).find(e=>e.name.value===t);return n?n.value:null}function iz(e,t){let n=rz(e,t);return n?oz(n):``}function az(e,t){let n=rz(e,t);return n?oz(n)===`true`:null}function oz(e){switch(e.kind){case qe.STRING:case qe.INT:case qe.FLOAT:case qe.ENUM:return e.value;case qe.BOOLEAN:return e.value?`true`:`false`;case qe.NULL:return`null`;case qe.LIST:return e.values.map(oz).join(`, `);default:return``}}function sz(e){return(e.kind===qe.LIST?e.values:[e]).map(oz).filter(e=>e!==``)}function cz(e,t){return t.has(e)||e.startsWith(`__`)||BR.includes(e)||LR.includes(e)||RR.some(t=>lz(e,t))||zR.some(t=>lz(e,t))}function lz(e,t){return e.length>t.length&&e.endsWith(t)}function uz(e){if(e.description)return dz(e.description.value);if(!e.loc)return``;let t=[],n=e.loc.startToken.line-1,r=e.loc.startToken.prev;for(;r&&r.kind===Je.COMMENT&&r.line===n&&(!r.prev||r.prev.line<r.line);)t.unshift(r.value??``),--n,r=r.prev;return dz(t.join(` `))}function dz(e){return e.replace(/\s+/g,` `).trim()}function fz(e){let t=``,n=0,r=!1;for(;n<e.length;){let i=e[n];if(i===`#`){let r=hz(e,n);t+=e.slice(n,r),n=r;continue}if(i===`"`){let r=gz(e,n);t+=e.slice(n,r),n=r;continue}if(i!==`@`||!HR.test(e[n+1]??``)){t+=i,n+=1;continue}let a=mz(e,n+1),o=e.slice(n+1,a);for(;e[a]===`.`&&HR.test(e[a+1]??``);){let t=mz(e,a+1);o+=`_${e.slice(a+1,t)}`,a=t,r=!0}t+=`@${o}`,n=a;let s=vz(e,n);if(e[s]===`(`){t+=e.slice(n,s+1),n=s+1;for(let i=0;n<e.length;i++){let a=vz(e,n);if(t+=e.slice(n,a),n=a,e[n]===`)`||n>=e.length)break;let o=pz(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(_z(e,vz(e,n)),n+1);t+=e.slice(n,s),n=s}}}return r?t:e}function pz(e,t){if(!HR.test(e[t]??``))return-1;let n=vz(e,mz(e,t));return e[n]===`:`?n:-1}function mz(e,t){let n=t;for(;n<e.length&&UR.test(e[n]);)n+=1;return n}function hz(e,t){let n=e.indexOf(`
|
|
26
|
+
`,t);return n===-1?e.length:n}function gz(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===`
|
|
27
|
+
`)return n;if(t===`"`)return n+1;n+=1}return n}function _z(e,t){let n=[],r=t;for(;r<e.length;){let t=e[r];if(t===`"`){r=gz(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 vz(e,t){let n=t;for(;n<e.length;){let t=e[n];if(t===`#`){n=hz(e,n);continue}if(!/[\s,]/.test(t))break;n+=1}return n}const yz={tables:[],enums:{},customScalars:[],unions:{},skipped:[]};function bz(e,t,n){let r=WR(e),i=r.ok?r.model:yz,a=jh({}),{settings:o}=n?n(a):a,s=mR(i,t,o.database);return s.settings=o,Mg(s)}var xz={createTable:`create.table`,createIndex:`create.index`,alterTableAddUnique:`alter.table.add.unique`,alterTableAddPrimaryKey:`alter.table.add.primaryKey`,alterTableAddForeignKey:`alter.table.add.foreignKey`,alterTableAddDefault:`alter.table.add.default`,alterTableAlterColumnAutoIncrement:`alter.table.alter.column.autoIncrement`,commentOnTable:`comment.on.table`,commentOnColumn:`comment.on.column`},Sz={asc:`ASC`,desc:`DESC`},Cz={noAction:`NO ACTION`,restrict:`RESTRICT`,cascade:`CASCADE`,setNull:`SET NULL`,setDefault:`SET DEFAULT`},wz={string:`string`,leftParent:`leftParent`,rightParent:`rightParent`,leftBracket:`leftBracket`,rightBracket:`rightBracket`,comma:`comma`,period:`period`,equal:`equal`,semicolon:`semicolon`},Tz={doubleQuote:`"`,dash:`-`,slash:`/`,asterisk:`*`,newLine:`
|
|
28
|
+
`,singleQuote:`'`,backtick:"`",whiteSpace:/\s/,string:/\S/,breakString:/;|,|\(|\)|\[|\]|\.|=/,literalEnd:/[\s,;)\]:|+]/,equal:`=`,period:`.`,comma:`,`,semicolon:`;`,leftParent:`(`,rightParent:`)`,leftBracket:`[`,rightBracket:`]`},Ez={0:`\0`,b:`\b`,n:`
|
|
29
|
+
`,r:`\r`,t:` `,Z:``,"%":`\\%`,_:`\\_`},Dz=e=>e<65536?String.fromCharCode(e):String.fromCharCode(Math.floor((e-65536)/1024)+55296,(e-65536)%1024+56320),Oz=e=>{let t=/^(?:u([\da-fA-F]{4})|U([\da-fA-F]{8}))/.exec(e);if(t){let e=t[1]??t[2];return[Dz(parseInt(e,16)),e.length+1]}let n=/^[01][0-7]{2}/.exec(e);return n?[String.fromCharCode(parseInt(n[0],8)),3]:e?[Ez[e[0]]??e[0],1]:[`\\`,0]},kz=String.raw`(?:[nebx]|u&|_[a-z\d]+)`,Az=String.raw`[+\-*/%|<>!^~#@?]`,jz=new RegExp(String.raw`(?:(?:^|${Az})${kz}|${Az})$`,`i`),Mz=new RegExp(String.raw`^(.*?)(${Az}*)(${kz}?)$`,`is`),Nz=e=>t=>e===t,Pz=e=>t=>e.test(t),Fz={doubleQuote:Nz(Tz.doubleQuote),dash:Nz(Tz.dash),slash:Nz(Tz.slash),asterisk:Nz(Tz.asterisk),newLine:Nz(Tz.newLine),singleQuote:Nz(Tz.singleQuote),backtick:Nz(Tz.backtick),whiteSpace:Pz(Tz.whiteSpace),string:Pz(Tz.string),breakString:Pz(Tz.breakString),literalEnd:Pz(Tz.literalEnd),equal:Nz(Tz.equal),period:Nz(Tz.period),comma:Nz(Tz.comma),semicolon:Nz(Tz.semicolon),leftParent:Nz(Tz.leftParent),rightParent:Nz(Tz.rightParent),leftBracket:Nz(Tz.leftBracket),rightBracket:Nz(Tz.rightBracket)};function Iz(e,t){let n=[],r=t===`Databricks`,i=0,a=()=>i<e.length,o=t=>{if(i+1>=e.length||Fz.literalEnd(e[i+1]))return!1;let n=0;for(;t[t.length-1-n]===`\\`;)n++;return n%2==1},s=(t,s)=>{let c=t===`[`?`]`:t,l=``;for(i++;a();){let n=e[i];if(r&&t===`'`&&n===`\\`){let[t,n]=Oz(e.slice(i+1,i+10));l+=t,i+=n+1;continue}if(n===c&&t===`'`&&!r&&o(l))l=l.slice(0,-1);else if(n===c){if(t===`[`||e[i+1]!==c)break;i++}l+=n,i++}n.push({type:wz.string,value:l,quoted:t,...s?{prefix:s}:{}}),i++};for(;a();){let t=e[i];if(Fz.whiteSpace(t)){let n=``;for(;a()&&Fz.whiteSpace(t);)n+=t,t=e[++i];continue}if(Fz.dash(t)&&Fz.dash(e[i+1])){for(;a()&&!Fz.newLine(t);)t=e[++i];continue}if(Fz.slash(t)&&Fz.asterisk(e[i+1])){for(i+=2,t=e[i];a()&&!(Fz.asterisk(t)&&Fz.slash(e[i+1]));)t=e[++i];i+=2;continue}if(Fz.leftParent(t)){n.push({type:wz.leftParent,value:t}),i++;continue}if(Fz.rightParent(t)){n.push({type:wz.rightParent,value:t}),i++;continue}if(Fz.comma(t)){n.push({type:wz.comma,value:t}),i++;continue}if(Fz.period(t)){n.push({type:wz.period,value:t}),i++;continue}if(Fz.equal(t)){n.push({type:wz.equal,value:t}),i++;continue}if(Fz.semicolon(t)){n.push({type:wz.semicolon,value:t}),i++;continue}if(Fz.rightBracket(t)){n.push({type:wz.rightBracket,value:t}),i++;continue}if(Fz.leftBracket(t)){s(`[`);continue}if(Fz.doubleQuote(t)){s(`"`);continue}if(Fz.singleQuote(t)){s(`'`);continue}if(Fz.backtick(t)){s("`");continue}if(Fz.string(t)){let r=``;for(;a()&&Fz.string(t)&&!Fz.breakString(t)&&!(Fz.dash(t)&&Fz.dash(e[i+1]))&&!(Fz.slash(t)&&Fz.asterisk(e[i+1]))&&!(Fz.singleQuote(t)&&jz.test(r));)r+=t,t=e[++i];if(!Fz.singleQuote(t)){n.push({type:wz.string,value:r});continue}let[,o,c,l]=Mz.exec(r);for(let e of[o,c])e&&n.push({type:wz.string,value:e});s(`'`,l);continue}i++}return n}var Lz=/* @__PURE__ */ `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(`.`),Rz=/* @__PURE__ */ `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(`.`),zz=/* @__PURE__ */ `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(`.`),Bz=/* @__PURE__ */ `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(`.`),Vz=/* @__PURE__ */ `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(`.`),Hz=/* @__PURE__ */ `BIGINT.BIGSERIAL.BIT VARYING.BIT.BOOL.BOOLEAN.BOX.BPCHAR.BYTEA.CHAR.CHARACTER VARYING.CHARACTER.CID.CIDR.CIRCLE.DATE.DATEMULTIRANGE.DATERANGE.DEC.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(`.`),Uz=/* @__PURE__ */ `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(`.`),Wz=/* @__PURE__ */ `BIGINT.BLOB.BOOL.BOOLEAN.CHARACTER.CLOB.DATE.DATETIME.DEC.DECIMAL.DOUBLE PRECISION.DOUBLE.FLOAT.INT.INT2.INT8.INTEGER.MEDIUMINT.NATIVE CHARACTER.NCHAR.NUMERIC.NVARCHAR.REAL.SMALLINT.TEXT.TIME.TIMESTAMP.TINYINT.UNSIGNED BIG INT.VARCHAR.VARYING CHARACTER`.split(`.`),Gz=e=>t=>n=>t[n]?t[n].type===e:!1,X=e=>{let t=e.toUpperCase();return e=>n=>{let r=e[n];return r?!r.quoted&&r.value.toUpperCase()===t:!1}},Kz=Gz(wz.string),qz=Gz(wz.equal),Jz=Gz(wz.period),Yz=Gz(wz.comma),Xz=Gz(wz.semicolon),Zz=Gz(wz.leftParent),Qz=Gz(wz.rightParent);wz.leftBracket;var $z=Gz(wz.rightBracket),eB=X(`CREATE`),tB=X(`ALTER`),nB=X(`DROP`),rB=X(`USE`),iB=X(`RENAME`),aB=X(`DELETE`),oB=X(`SELECT`),sB=X(`TABLE`),cB=X(`TABLESPACE`),lB=X(`INDEX`),uB=X(`UNIQUE`),dB=X(`ADD`),fB=X(`PRIMARY`),pB=X(`KEY`),mB=X(`CONSTRAINT`),hB=X(`FOREIGN`),gB=X(`NOT`),_B=X(`NULL`),vB=X(`DEFAULT`),yB=X(`COMMENT`),bB=X(`REFERENCES`),xB=X(`ASC`),SB=X(`DESC`),CB=X(`ON`),wB=X(`AUTO_INCREMENT`),TB=X(`AUTOINCREMENT`),EB=X(`IF`),DB=X(`EXISTS`),OB=X(`ONLY`),kB=X(`IS`),AB=X(`COLUMN`),jB=X(`CHARACTER`),MB=X(`SET`),NB=X(`COLLATE`),PB=X(`ENFORCED`),FB=X(`RELY`),IB=X(`NORELY`),LB=X(`DEFERRABLE`),RB=X(`INITIALLY`),zB=X(`DEFERRED`),BB=X(`IMMEDIATE`),VB=X(`IDENTITY`),HB=X(`FUNCTION`),UB=X(`CLUSTER`),WB=X(`BY`),GB=X(`FULLTEXT`),KB=X(`SPATIAL`),qB=X(`WITH`),JB=X(`CHECK`),YB=X(`NOCHECK`),XB=X(`CONCURRENTLY`),ZB=X(`WHERE`),QB=X(`USING`),$B=X(`AND`),eV=X(`OR`),tV=X(`ARRAY`),nV=X(`GENERATED`),rV=X(`FOR`),iV=X(`EXEC`),aV=X(`EXECUTE`),oV=X(`GO`),sV=X(`SIGNED`),cV=[`SIGNED`,`UNSIGNED`,`ZEROFILL`],lV=e=>t=>{let n=e[t];return!!n&&!n.quoted&&cV.includes(n.value.toUpperCase())},uV=(e,t)=>t===`Databricks`?`'${e.replace(/[\\']/g,`\\$&`)}'`:`'${e.replaceAll(`'`,`''`)}'`,dV=({value:e,quoted:t,prefix:n=``},r)=>t?t===`[`?`[${e}]`:t===`'`?n+uV(e,r):`${t}${e.replaceAll(t,t+t)}${t}`:e,fV=e=>{let t=PB(e),n=FB(e),r=IB(e),i=LB(e),a=RB(e),o=zB(e),s=BB(e);return e=>t(e)||n(e)||r(e)||i(e)||a(e)||o(e)||s(e)},pV=[Cz.setNull,Cz.setDefault,Cz.noAction,Cz.cascade,Cz.restrict],mV=[`FULL`,`PARTIAL`,`SIMPLE`],hV=e=>{let t=t=>{let n=e[t];return n&&n.type===wz.string&&!n.quoted?n.value.toUpperCase():``},n=t=>{if(e[t]?.type!==wz.leftParent)return 0;for(let n=t+1;n<e.length;n++){let{type:r}=e[n];if(r===wz.rightParent)return n-t+1;if(r!==wz.string&&r!==wz.comma)return 0}return 0};return e=>{let r=t(e+1);if(t(e)===`ON`&&(r===`DELETE`||r===`UPDATE`)){let i=pV.find(n=>n.split(` `).every((n,r)=>t(e+2+r)===n));if(!i)return{span:2,event:r,action:``};let a=2+i.split(` `).length;return{span:a+(i.startsWith(`SET `)?n(e+a):0),event:r,action:i}}return{span:t(e)===`MATCH`&&mV.includes(t(e+1))?2:0,event:``,action:``}}},gV=e=>{let t=GB(e),n=KB(e),r=lB(e),i=pB(e);return e=>(t(e)||n(e))&&(r(e+1)||i(e+1))},_V=e=>t=>{let n=e[t];return n&&n.type===wz.string&&!n.quoted?n.value.toUpperCase():``},vV=e=>e===`CLUSTERED`||e===`NONCLUSTERED`,yV=e=>{let t=_V(e);return e=>{let n=t(e);return vV(n)?1:n===`USING`?t(e+1)?2:1:n===`NULLS`?t(e+1)===`DISTINCT`?2:t(e+1)===`NOT`&&t(e+2)===`DISTINCT`?3:0:0}},bV=e=>{let t=yV(e);return e=>{let n=e,r=t(n);for(;r;)n+=r,r=t(n);return n-e}},xV=[`ARRAY`,`MAP`,`STRUCT`],SV=e=>{let t=Kz(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||!xV.includes(i.value.slice(0,a).toUpperCase()))return 0;let o=0;for(let t=r;t<e.length;t++)if(e[t].quoted||(o+=n(e[t].value)),o<=0)return t-r+1;return e.length-r}},CV=e=>{let t=wB(e),n=TB(e),r=VB(e);return e=>t(e)||n(e)||r(e)},wV=e=>{let t=UB(e),n=WB(e);return e=>t(e)&&n(e+1)},TV=e=>{let t=yB(e),n=CB(e);return e=>t(e)&&n(e+1)},EV=e=>{let t=TV(e),n=sB(e);return e=>t(e)&&n(e+2)},DV=e=>{let t=TV(e),n=AB(e);return e=>t(e)&&n(e+2)},OV=e=>{let t=eB(e),n=tB(e),r=nB(e),i=rB(e),a=iB(e),o=aB(e),s=oB(e),c=TV(e),l=RV(e);return e=>t(e)||n(e)||r(e)||i(e)||a(e)||o(e)||s(e)||c(e)||l(e)},kV=[`OR`,`REPLACE`,`TRANSIENT`,`TEMPORARY`,`TEMP`,`LOCAL`,`GLOBAL`,`VOLATILE`,`UNLOGGED`,`HYBRID`,`ICEBERG`,`DYNAMIC`,`EXTERNAL`],AV=e=>{let t=eB(e),n=sB(e),r=Kz(e),i=HB(e),a=EB(e),o=gB(e),s=DB(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||!kV.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)}},jV=e=>{let t=jB(e),n=MB(e);return e=>t(e)&&n(e+1)},MV=e=>{let t=AV(e);return e=>t(e)>0},NV=e=>{let t=eB(e),n=uB(e),r=lB(e),i=_V(e);return e=>{if(!t(e))return 0;let a=e+1;return n(a)&&a++,vV(i(a))&&a++,r(a)?a+1-e:0}},PV=e=>{let t=NV(e);return e=>t(e)>0},FV=e=>{let t=tB(e),n=sB(e);return e=>t(e)&&n(e+1)},IV=e=>{let t=Kz(e),n=Jz(e);return e=>{if(!t(e))return 0;let r=e+1;for(;n(r)&&t(r+1);)r+=2;return r-e}},LV=e=>{let t=iV(e),n=aV(e),r=IV(e);return i=>{if(!t(i)&&!n(i))return 0;let a=r(i+1);return a>0&&e[i+a].value.toUpperCase()===`SP_ADDEXTENDEDPROPERTY`?a+1:0}},RV=e=>{let t=LV(e);return e=>t(e)>0},zV=/* @__PURE__ */ `COMPRESS.COMPUTE.DEFERRABLE.DISABLE.ENABLE.EXCEPTIONS.FILESYSTEM_LIKE_LOGGING.GLOBAL.INDEXING.INDEXTYPE.INITIALLY.INITRANS.INVISIBLE.LOCAL.LOGGING.MAXTRANS.NOCOMPRESS.NOLOGGING.NOPARALLEL.NORELY.NOSORT.NOT.NOVALIDATE.ONLINE.PARALLEL.PCTFREE.PCTUSED.RELY.REVERSE.SORT.STORAGE.TABLESPACE.USING.VALIDATE.VISIBLE`.split(`.`),BV=e=>{let t=_V(e),n=IV(e);return e=>{if(t(e)!==`USING`||t(e+1)!==`INDEX`)return 0;let r=n(e+2);return r&&!zV.includes(t(e+2))?2+r:0}},VV=e=>{let t=ZB(e),n=Kz(e),r=Zz(e),i=Qz(e),a=kB(e),o=gB(e),s=_B(e),c=$B(e),l=eV(e);return(u,d)=>{if(!t(u))return!1;let f=new Set(d.map(e=>e.toUpperCase())),p=0;do{for(u++;r(u);u++)p++;if(!n(u)||!f.has(e[u].value.toUpperCase())||!a(u+1)||!o(u+2)||!s(u+3))return!1;for(u+=4;p>0&&i(u);u++)p--}while(c(u));return!l(u)}},HV=[`UNIQUE`,`PRIMARY`,`FOREIGN`,`CHECK`,`DEFAULT`],UV=e=>{let t=FV(e),n=OB(e),r=dB(e),i=mB(e),a=Kz(e),o=qB(e),s=JB(e),c=YB(e),l=IV(e),u=_V(e),d=(e,t)=>{let n=t,d=l(n);return!d||(n+=d,o(n)&&(s(n+1)||c(n+1))&&(n+=2),!r(n))?0:(n++,i(n)&&(n++,a(n)&&!HV.includes(u(n))&&n++),n-e)};return e=>{if(!t(e))return{length:0,only:!1};let r=e+2;if(n(r)){let t=d(e,r+1);if(t)return{length:t,only:!0}}return{length:d(e,r),only:!1}}},WV=e=>{let t=UV(e);return e=>t(e).length},GV=e=>{let t=UV(e);return e=>t(e).only},KV=e=>{let t=WV(e),n=fB(e),r=pB(e);return e=>{let i=t(e);return i>0&&n(e+i)&&r(e+i+1)}},qV=e=>{let t=WV(e),n=hB(e),r=pB(e);return e=>{let i=t(e);return i>0&&n(e+i)&&r(e+i+1)}},JV=e=>{let t=WV(e),n=vB(e);return e=>{let r=t(e);return r>0&&n(e+r)}},YV=e=>{let t=WV(e);return e=>t(e)>0},XV=e=>{let t=FV(e),n=OB(e),r=tB(e),i=sB(e),a=IV(e),o=(e,t)=>{let n=a(t),o=t+n;return n&&r(o)&&!i(o+1)?o-e:0};return e=>{if(!t(e))return 0;let r=e+2;return n(r)&&o(e,r+1)||o(e,r)}},ZV=e=>{let t=XV(e);return e=>t(e)>0},QV=Array.from(new Set([...Lz,...Rz,...zz,...Bz,...Vz,...Hz,...Uz,...Wz].map(e=>e.toUpperCase()))),$V=(e=>{let t=/* @__PURE__ */ 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})(QV),eH=e=>{let t=Zz(e),n=Qz(e);return r=>{let i=0;for(let a=r;a<e.length;a++)if(t(a))i++;else if(n(a)&&(i--,i===0))return a+1;return e.length}},tH=e=>t=>{let n=e[t];return!!n&&n.quoted===`[`&&/^\d*$/.test(n.value)},nH=e=>{let t=tH(e),n=tV(e);return e=>{if(n(e))return t(e+1)?2:1;let r=e;for(;t(r);)r++;return r-e}},rH=e=>{let t=Kz(e),n=Zz(e),r=eH(e),i=nH(e),a=(i,a)=>{let o=i;for(let[i,s]of a.entries()){let a=e[o];if(!a||!t(o)||i>0&&a.quoted||a.value.toUpperCase()!==s)return 0;o++,n(o)&&(o=r(o))}return o-i};return n=>{let r=e[n];if(!r||!t(n))return 0;let o=r.value.toUpperCase();for(let e of $V.get(o)??[]){let t=a(n,e);if(t)return t+i(n+t)}return QV.includes(o)?1+i(n+1):0}},iH=/* @__PURE__ */ `AS.AUTO_INCREMENT.AUTOINCREMENT.CHECK.COLLATE.COMMENT.CONSTRAINT.DEFAULT.ENCRYPT.FOR.FOREIGN.GENERATED.IDENTITY.INVISIBLE.KEY.MASKING.NOT.NULL.ON.PRIMARY.PROJECTION.REFERENCES.UNIQUE.USING.VISIBLE.WITH`.split(`.`),aH=e=>iH.includes(e.toUpperCase()),oH=e=>!!e&&!e.quoted&&aH(e.value),sH=e=>t=>oH(e[t]),cH=e=>e.quoted===`"`&&(e.value===`char`||e.value===`bit`)?dV(e):e.value,lH=e=>{let t=Kz(e),n=Jz(e),r=Yz(e),i=Zz(e),a=Qz(e),o=eH(e),s=nH(e),c=rH(e),l=n=>t(n)&&e[n].quoted!==`'`,u=n=>t(n)&&!e[n].quoted&&!aH(e[n].value),d=t=>t>=e.length||r(t)||a(t)||oH(e[t]),f=t=>{let n=e[t];if(n.quoted)return!1;let r=n.value.toUpperCase();return r===`TAG`&&i(t+1)||r===`SORT`&&d(t+1)};return t=>{if(!l(t)||oH(e[t])||f(t))return 0;for(let e=t;u(e);e++){let n=c(e+1);if(n)return e+1+n-t}let r=t+1;for(;n(r)&&l(r+1);)r+=2;return i(r)&&(r=o(r)),r+s(r)-t}},uH=e=>{let t=Kz(e),n=Zz(e),r=rH(e),i=n=>{let r=e[n];return r&&t(n)&&!r.quoted?r.value.toUpperCase():``},a=n=>t(n)&&e[n].quoted!==`'`&&!r(n);return e=>{switch(i(e)){case`CHECK`:return n(e+1)||i(e+1)===`NOT`&&i(e+2)===`FOR`&&i(e+3)===`REPLICATION`;case`LIKE`:return a(e+1);case`EXCLUDE`:return i(e+1)===`USING`||n(e+1);case`FULLTEXT`:case`SPATIAL`:return n(e+1)||a(e+1)&&n(e+2);case`PERIOD`:return i(e+1)===`FOR`;case`SUPPLEMENTAL`:return i(e+1)===`LOG`;default:return!1}}},dH=[`@NAME`,`@VALUE`,`@LEVEL0TYPE`,`@LEVEL0NAME`,`@LEVEL1TYPE`,`@LEVEL1NAME`,`@LEVEL2TYPE`,`@LEVEL2NAME`],fH=dH.filter(e=>!e.startsWith(`@LEVEL0`)),pH=e=>!!e&&!e.quoted&&e.value[0]===`@`,mH=e=>!!e&&!e.quoted&&/^[-+*/%&|^]/.test(e.value);function hH(e,t){let n=Kz(e),r=qz(e),i=Yz(e),a=Xz(e),o=_B(e),s=vB(e),c=oV(e),l=OV(e),u=e=>n(e)&&!c(e)&&!l(e),d=/* @__PURE__ */ new Map,f=LV(e)(t.value);if(!f)return t.value++,null;t.value+=f;for(let n=0;u(t.value);n++){let a=e[t.value],c=dH[n]??``;if(pH(a)&&r(t.value+1)&&(c=a.value.toUpperCase(),t.value+=2,!u(t.value)))break;if(!o(t.value)&&!s(t.value)&&d.set(c,e[t.value]),t.value++,mH(e[t.value]))return null;if(!i(t.value))break;t.value++}return a(t.value)&&t.value++,gH(d)}function gH(e){if(fH.some(t=>pH(e.get(t))))return null;let t=t=>e.get(t)?.value??``,n=e.get(`@VALUE`),r=t(`@LEVEL1NAME`),i=t(`@LEVEL2TYPE`).toUpperCase(),a=t(`@LEVEL2NAME`);return t(`@NAME`).toUpperCase()!==`MS_DESCRIPTION`||n?.quoted!==`'`||t(`@LEVEL1TYPE`).toUpperCase()!==`TABLE`||!r?null:i?i!==`COLUMN`||!a?null:{type:xz.commentOnColumn,tableName:r,columnName:a,comment:n.value}:{type:xz.commentOnTable,name:r,comment:n.value}}var _H={"'":`string`,"[":`bracket`,'"':`word`,"`":`word`},vH=[`AND`,`AT`,`BETWEEN`,`COLLATE`,`ILIKE`,`IN`,`IS`,`LIKE`,`NOT`,`OR`,`OVERLAPS`,`SIMILAR`],yH=[`COLUMN_FORMAT`,`INDEX`,`MASK`,`ROWGUIDCOL`,`SPARSE`,`STORAGE`],bH=/^[+-]?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i,xH=/^(?:[a-z_][\w$]*|"(?:[^"]|"")*")$/i,SH=/^\[\d*\]$/,CH=e=>e&&e.type===wz.string&&!e.quoted?e.value.toUpperCase():``,wH=e=>t=>CH(e[t])===`FOR`&&CH(e[t-1])===`VALUE`&&CH(e[t-2])===`NEXT`,TH=e=>{let t=Yz(e),n=Zz(e),r=Qz(e),i=$z(e),a=Xz(e),o=sH(e),s=fV(e),c=jV(e),l=wH(e),u=t=>CH(e[t])===`LOCAL`?u(t+1):CH(e[t])===`TIME`&&CH(e[t+1])===`ZONE`,d=t=>{let r=CH(e[t]);return r===`FOR`?!l(t):r===`WITH`||r===`WITHOUT`?!u(t+1):r===`TAG`?n(t+1):o(t)||yH.includes(r)||s(t)||c(t)},f=t=>CH(e[t])===`CASE`,p=t=>/^END(?:::|$)/.test(CH(e[t]));return o=>{let s=0,c=o;for(;c<e.length&&!a(c);c++)if(n(c)||f(c))s++;else if(r(c)){if(s===0)break;s--}else if(s>0)p(c)&&s--;else if(t(c)||i(c))break;else if(c>o&&d(c))break;return c-o}},EH=(e,t)=>e.flatMap(e=>{switch(e.type){case wz.leftParent:return[{kind:`open`,text:`(`}];case wz.rightParent:return[{kind:`close`,text:`)`}];case wz.comma:return[{kind:`comma`,text:`,`}];case wz.period:return[{kind:`period`,text:`.`}]}return e.quoted?[{kind:_H[e.quoted],text:dV(e,t),token:e}]:e.value.split(`::`).flatMap((e,t)=>[...t?[{kind:`cast`,text:`::`}]:[],...e?[{kind:`word`,text:e}]:[]])}),DH=e=>e.kind===`word`&&!/[\p{L}\p{N}_$#@'"`]/u.test(e.text),OH=(e,t)=>/^ARRAY$/i.test(e.text)||!/^\[[\p{L}_@#]/u.test(t.text),kH=(e,t)=>e.kind===`word`&&t.kind===`word`&&(t.text===`=`&&/[<>!=]$/.test(e.text)||e.text===`=`&&t.text.startsWith(`>`)),AH=(e,t)=>[`close`,`comma`,`period`,`cast`].includes(t.kind)||[`open`,`period`,`cast`].includes(e.kind)?!1:e.kind===`comma`?!0:kH(e,t)?!1:t.kind===`bracket`&&!OH(e,t)?!0:t.kind===`open`||t.kind===`bracket`?DH(e):!0,jH=e=>e.reduce((t,n,r)=>r&&AH(e[r-1],n)?`${t} ${n.text}`:t+n.text,``),MH=(e,t)=>{let n=0;for(let r=t;r<e.length;r++)if(e[r].kind===`open`)n++;else if(e[r].kind===`close`&&--n===0)return r;return-1},NH=e=>{let t=e;for(;t.length>1&&t[0].kind===`open`&&MH(t,0)===t.length-1;)t=t.slice(1,-1);return t},PH=e=>{let t=0;return e.length>0&&e[0].kind===`word`&&e.every(({kind:e,text:n})=>e===`open`?(t++,!0):e===`close`?--t>=0:t>0||e===`period`?!0:e===`bracket`?SH.test(n):e===`word`&&xH.test(n)&&!vH.includes(n.toUpperCase()))},FH=e=>{if(e.length===1&&e[0].kind===`string`)return!0;let t=jH(e);return bH.test(t)||/^(?:null|true|false)$/i.test(t)},IH=e=>{let t=0,n=-1;return e.forEach(({kind:e},r)=>{e===`open`?t++:e===`close`?t--:t===0&&e===`cast`&&(n=r)}),n},LH=e=>{let t=IH(e);if(t===-1||!PH(e.slice(t+1)))return e;let n=NH(e.slice(0,t));return FH(n)?n:e};function RH(e,t){let n=LH(NH(EH(e,t))),[r]=n;if(n.length===1&&r.token){let{value:e,prefix:n=``}=r.token;return n+uV(e,t)}return jH(n)}function zH(e,t,n){let r=TH(e)(t.value),i=e.slice(t.value,t.value+r);return t.value+=r,RH(i,n)}var BH=({kind:e,text:t,token:n})=>e===`word`&&(n?n.quoted===`"`&&n.value===`nextval`:/^nextval$/i.test(t)),VH=/^(?:e|u&)?$/i,HH=e=>{let t=NH(e),n=IH(t);if(n!==-1)return PH(t.slice(n+1))&&HH(t.slice(0,n));let[r]=t;return t.length===1&&r.kind===`string`&&VH.test(r.token?.prefix??``)},UH=e=>{let t=TH(e);return n=>{let r=NH(EH(e.slice(n,n+t(n)))),[i,a]=r;return!!i&&BH(i)&&a?.kind===`open`&&MH(r,1)===r.length-1&&HH(r.slice(2,-1))}};function WH(e,t,n){let r=OV(e),i=Xz(e),a=Yz(e),o=Zz(e),s=Qz(e),c=Kz(e),l=Jz(e),u=sB(e),d=vB(e),f=rV(e),p=wH(e),m=GV(e)(t.value),h=()=>t.value<e.length,g=e=>f(e)&&!p(e),_=t=>{let n=0,c=t;for(;c<e.length&&!(i(c)||r(c));c++)if(o(c))n++;else if(s(c)){if(n===0)break;n--}else if(n===0&&(a(c)||g(c)))break;return c},v={type:xz.alterTableAddDefault,name:``,columnName:``,default:``},y=!1;if(t.value++,u(t.value)&&(t.value++,m&&t.value++,c(t.value)))for(v.name=e[t.value].value,t.value++;l(t.value)&&c(t.value+1);)v.name=e[t.value+1].value,t.value+=2;for(;h()&&!r(t.value);){if(i(t.value)){t.value++;break}if(!y&&d(t.value)){let r=t.value+1,i=_(r);v.default=RH(e.slice(r,i),n),t.value=i,y=!0,f(t.value)&&c(t.value+1)&&(v.columnName=e[t.value+1].value,t.value+=2);continue}t.value++}return v}function GH(e,t){let n=Kz(e),r=Zz(e),i=Qz(e),a=Yz(e),o=Xz(e),s=SB(e),c=xB(e),l=()=>t.value<e.length&&!o(t.value),u=t=>n(t+1)&&/^\d+$/.test(e[t+1].value)&&i(t+2),d=[],f={name:``,sort:Sz.asc},p=!1;for(t.value++;l()&&!i(t.value);){if(r(t.value)){p||=!f.name||!u(t.value);let e=0;for(;l();){if(r(t.value))e++;else if(i(t.value)&&--e===0)break;t.value++}if(!l())break}!f.name&&n(t.value)&&!s(t.value)&&!c(t.value)&&(f.name=e[t.value].value),s(t.value)&&(f.sort=Sz.desc),a(t.value)&&(d.push(f),f={name:``,sort:Sz.asc}),t.value++}return o(t.value)?[]:(f.name!==``&&d.push(f),t.value++,p?[]:d)}function KH(e,t,n){let r=OV(e),i=Kz(e),a=Zz(e),o=Qz(e),s=Jz(e),c=Xz(e),l=qz(e),u=yB(e),d=wV(e),f=AV(e),p=()=>t.value<e.length,m={type:xz.createTable,name:``,comment:``,columns:[],indexes:[],keys:[],foreignKeys:[]},h=f(t.value);t.value+=h===0?2:h;let g=!1,_=!0;for(;p()&&!r(t.value);){let r=e[t.value];if(c(t.value)){t.value++;break}if(m.name&&d(t.value)){if(t.value+=2,i(t.value)&&a(t.value+1)&&t.value++,a(t.value)){let e=0;for(;p();){if(a(t.value))e++;else if(o(t.value)&&(e--,e===0)){t.value++;break}t.value++}}continue}if(a(t.value)){if(t.value++,g||!_){let e=1;for(;p()&&e>0;)a(t.value)?e++:o(t.value)&&e--,t.value++;continue}let{columns:r,indexes:i,keys:s,foreignKeys:c}=qH(e,t,n);m.columns=r,m.indexes=i,m.keys=s,m.foreignKeys=c,g=!0;continue}if(i(t.value)&&!m.name){for(m.name=r.value,_=!0,t.value++;s(t.value);){if(!i(t.value+1)){t.value++;break}m.name=e[t.value+1].value,t.value+=2}continue}if(u(t.value)){r=e[++t.value],l(t.value)&&(r=e[++t.value]),i(t.value)&&(m.comment=r.value,t.value++),_=!1;continue}_=!1,t.value++}return m}function qH(e,t,n){let r=Kz(e),i=Zz(e),a=Qz(e),o=Yz(e),s=Xz(e),c=Jz(e),l=tH(e),u=mB(e),d=lB(e),f=fB(e),p=hB(e),m=CV(e),h=uB(e),g=_B(e),_=gB(e),v=vB(e),y=WB(e),b=nV(e),ee=UH(e),te=CB(e),ne=yB(e),re=pB(e),ie=bB(e),ae=qz(e),oe=jV(e),x=NB(e),se=QB(e),ce=cB(e),le=ZB(e),S=VV(e),ue=fV(e),de=rH(e),C=lH(e),w=SV(e),fe=hV(e),pe=bV(e),me=gV(e),he=uH(e),ge=lV(e),_e=sV(e),ve=()=>t.value<e.length,ye=(t,n)=>n.every((n,r)=>!e[t+r]?.quoted&&e[t+r]?.value.toUpperCase()===n),be=e=>!te(e)||!g(e+1)?0:ye(e+2,[`FOR`,`INSERT`,`ONLY`])?5:ye(e+2,[`FOR`,`INSERT`,`AND`,`UPDATE`])?6:2,xe=e=>u(e)||f(e)||p(e)||h(e)||d(e)||re(e)||me(e)||he(e),Se=[],Ce=[],we=[],Te=[],Ee=[],De=[],Oe={name:``,dataType:``,default:``,comment:``,primaryKey:!1,autoIncrement:!1,unique:!1,nullable:!0},ke=!1,Ae=``,je=-1,Me=null,Ne=e=>se(e)&&d(e+1)&&!ce(e+2),Pe=e=>e===je?Ae:``,Fe=t=>{let n=0;for(;t<e.length&&!s(t);t++)if(i(t))n++;else if(a(t)){if(n--===0)return-1}else if(n===0&&o(t))return-1;else if(n===0&&le(t))return t;return-1},Ie=(e,t)=>{t.length&&(e?we.push({name:e,columnNames:t}):Me={name:e,columnNames:t})},Le=-1;for(;ve();){let s=e[t.value];Me&&Ne(t.value)&&(we.push(Me),Me=null);let te=w(t.value);if(te){let r=t.value+te,i=[];for(;t.value<r;)i.push(o(t.value)?`,`:dV(e[t.value],n)),t.value++;Oe.dataType=i.reduce((e,t)=>!e||/^[,:>]/.test(t)?e+t:`${e} ${t}`,``);continue}let{span:se}=fe(t.value);if(se){t.value+=se;continue}let ce=p(t.value)&&re(t.value+1)&&ie(t.value+2);if(Oe.name&&!ke&&(ie(t.value)||ce)){ce&&(t.value+=2);let n={columnNames:[Oe.name],refTableName:``,refColumnNames:[],onDelete:``,onUpdate:``};YH(e,t,n),n.refTableName&&n.refColumnNames.length<=1&&Te.push(n);continue}if(!Oe.name&&xe(t.value)&&(ke=!0),ke&&me(t.value)){t.value++;continue}if(r(t.value)&&!ke&&!Oe.name&&!_(t.value)&&!ue(t.value)){Oe.name=s.value,Le=++t.value;continue}if(i(t.value)){let e=0;for(;ve();){if(i(t.value))e++;else if(a(t.value)&&(e--,e===0)){t.value++;break}t.value++}continue}if(u(t.value)){s=e[++t.value],r(t.value)&&!h(t.value)&&!f(t.value)&&!p(t.value)&&(Ae=s.value,t.value++),je=t.value;continue}if(f(t.value)){let n=Pe(t.value);if(s=e[++t.value],re(t.value)){if(s=e[++t.value],ke&&r(t.value)&&(s=e[++t.value]),i(t.value)){let r=GH(e,t).map(e=>e.name);Ee.push(...r.map(e=>e.toUpperCase())),Ie(n,r)}else Oe.name&&(Oe.primaryKey=!0,Ie(n,[Oe.name]))}continue}if(p(t.value)){let n=JH(e,t);n&&Te.push(n);continue}if(d(t.value)||re(t.value)){if(s=e[++t.value],r(t.value)){let n=s.value;if(s=e[++t.value],h(t.value)){Ae=n;continue}if(i(t.value)){let r=GH(e,t);r.length&&Ce.push({name:n,unique:!1,columns:r})}}continue}if(h(t.value)){let n=Pe(t.value);if(s=e[++t.value],(re(t.value)||d(t.value))&&(s=e[++t.value]),Oe.name){Oe.unique=!0,Ie(n,[Oe.name]);continue}t.value+=pe(t.value);let a=Ae;if(r(t.value)&&(a=e[t.value].value,t.value++,t.value+=pe(t.value)),i(t.value)){let n=GH(e,t),r=n.map(e=>e.name),i=Fe(t.value);i!==-1&&!S(i,r)?n.length&&Ce.push({name:a,unique:!1,columns:n}):n.length>1?(Ce.push({name:a,unique:!0,columns:n}),a||Ie(a,r)):(De.push(...r.map(e=>e.toUpperCase())),Ie(a,r))}continue}if(_(t.value)){s=e[++t.value],g(t.value)?(Oe.nullable=!1,t.value++):ue(t.value)&&t.value++;continue}if(ue(t.value)){t.value++;continue}if(v(t.value)){let r=y(t.value-1)&&b(t.value-2);if(t.value++,!r){t.value+=be(t.value);let r=ee(t.value),i=zH(e,t,n);r?Oe.autoIncrement=!0:i&&(Oe.default=i)}continue}if(ne(t.value)){s=e[++t.value],ae(t.value)&&(s=e[++t.value]),r(t.value)&&(Oe.comment=s.value,t.value++);continue}if(m(t.value)){Oe.autoIncrement=!0,t.value++;continue}if(oe(t.value)){t.value+=2,r(t.value)&&t.value++;continue}if(x(t.value)){t.value++,ae(t.value)&&t.value++,r(t.value)&&t.value++;continue}let le=de(t.value),he=t.value===Le?C(t.value):0,ye=he>0&&(!le||c(t.value+1)),Re=ye?he:le;if(Re&&(ke||Oe.dataType)){t.value+=Re;continue}if(Re){let o=t.value+Re,u=``,d=0;for(;t.value<o;){if(s=e[t.value],i(t.value))u+=`(`,d++;else if(a(t.value))u+=`)`,d--;else if(d){let e=dV(s,n);u+=r(t.value)&&(r(t.value-1)||a(t.value-1))?` ${e}`:e}else if(l(t.value))u+=dV(s);else{let e=ye?dV(s):cH(s);u+=u&&!c(t.value)&&!c(t.value-1)?` ${e}`:e}t.value++}for(;d>0;)u+=`)`,d--;for(;ge(t.value);)_e(t.value)||(u+=` ${e[t.value].value}`),t.value++;Oe.dataType=u;continue}if(o(t.value)){(Oe.name||Oe.dataType)&&Se.push(Oe),Oe={name:``,dataType:``,default:``,comment:``,primaryKey:!1,autoIncrement:!1,unique:!1,nullable:!0},ke=!1,Ae=``,Me=null,t.value++;continue}if(a(t.value)){t.value++;break}t.value++}return!Se.includes(Oe)&&(Oe.name||Oe.dataType)&&Se.push(Oe),Se.forEach(e=>{Ee.includes(e.name.toUpperCase())&&(e.primaryKey=!0),De.includes(e.name.toUpperCase())&&(e.unique=!0)}),{columns:Se,indexes:Ce,keys:we,foreignKeys:Te}}function JH(e,t){let n=Kz(e),r=Zz(e),i=Qz(e),a=pB(e),o=()=>t.value<e.length,s={columnNames:[],refTableName:``,refColumnNames:[],onDelete:``,onUpdate:``},c=e[++t.value];if(a(t.value)){if(c=e[++t.value],r(t.value)){for(c=e[++t.value];o()&&!i(t.value);)n(t.value)&&s.columnNames.push(c.value),c=e[++t.value];c=e[++t.value]}if(YH(e,t,s),s.columnNames.length&&s.refTableName&&(!s.refColumnNames.length||s.columnNames.length===s.refColumnNames.length))return s}return null}function YH(e,t,n){let r=Kz(e),i=Zz(e),a=Qz(e),o=bB(e),s=Jz(e),c=hV(e),l=()=>t.value<e.length;if(!o(t.value))return;let u=e[++t.value];if(r(t.value)){for(n.refTableName=u.value,t.value++;s(t.value);){if(!r(t.value+1)){t.value++;break}n.refTableName=e[t.value+1].value,t.value+=2}if(i(t.value)){for(u=e[++t.value];l()&&!a(t.value);)r(t.value)&&n.refColumnNames.push(u.value),u=e[++t.value];t.value++}for(let e=c(t.value);e.span;e=c(t.value))e.event===`DELETE`&&e.action?n.onDelete=e.action:e.event===`UPDATE`&&e.action&&(n.onUpdate=e.action),t.value+=e.span}}function XH(e,t){let n=OV(e),r=Xz(e),i=Kz(e),a=mB(e),o=Jz(e),s=sB(e),c=hB(e),l=GV(e)(t.value),u=()=>t.value<e.length,d={type:xz.alterTableAddForeignKey,name:``,columnNames:[],refTableName:``,refColumnNames:[],onDelete:``,onUpdate:``};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=JH(e,t);n&&(d.columnNames=n.columnNames,d.refTableName=n.refTableName,d.refColumnNames=n.refColumnNames,d.onDelete=n.onDelete,d.onUpdate=n.onUpdate);continue}t.value++}return d}function ZH(e,t){let n=OV(e),r=Xz(e),i=Kz(e),a=Zz(e),o=mB(e),s=fB(e),c=Jz(e),l=pB(e),u=sB(e),d=Yz(e),f=dB(e),p=bV(e),m=BV(e),h=GV(e)(t.value),g=()=>t.value<e.length,_={type:xz.alterTableAddPrimaryKey,name:``,constraintName:``,usingIndexName:``,columnNames:[]},v=!1,y=!0;for(t.value++;g()&&!n(t.value);){let n=e[t.value];if(r(t.value)){t.value++;break}if(u(t.value)){if(n=e[++t.value],h&&(n=e[++t.value]),i(t.value))for(_.name=n.value,t.value++;c(t.value);){if(!i(t.value+1)){t.value++;break}_.name=e[t.value+1].value,t.value+=2}continue}if(v&&(d(t.value)||f(t.value))&&(y=!1),o(t.value)){n=e[++t.value],i(t.value)&&!s(t.value)&&(v||(_.constraintName=n.value),t.value++);continue}let g=m(t.value);if(g){v&&y&&(_.usingIndexName=e[t.value+g-1].value),t.value+=g;continue}if(s(t.value)){n=e[++t.value],l(t.value)&&(n=e[++t.value],t.value+=p(t.value),a(t.value)&&(_.columnNames=GH(e,t).map(e=>e.name),v=!0));continue}t.value++}return _}function QH(e,t){let n=OV(e),r=Xz(e),i=Kz(e),a=Yz(e),o=dB(e),s=mB(e),c=Jz(e),l=sB(e),u=uB(e),d=fB(e),f=hB(e),p=pB(e),m=lB(e),h=EB(e),g=gB(e),_=DB(e),v=Zz(e),y=Qz(e),b=bV(e),ee=BV(e),te=GV(e)(t.value),ne=()=>t.value<e.length,re=()=>{let e=0;for(;ne()&&!r(t.value);){if(v(t.value))e++;else if(y(t.value)&&--e===0){t.value++;return}t.value++}},ie=[],ae=``,oe=``,x=null,se=!1;if(t.value++,l(t.value)&&(t.value++,te&&t.value++,i(t.value)))for(ae=e[t.value].value,t.value++;c(t.value);){if(!i(t.value+1)){t.value++;break}ae=e[t.value+1].value,t.value+=2}for(;ne()&&!n(t.value);){if(r(t.value)){t.value++;break}if(a(t.value)||o(t.value)){oe=``,x=null,se=!1,t.value++;continue}if(v(t.value)){re();continue}if(s(t.value)){t.value++,i(t.value)&&!u(t.value)&&!d(t.value)&&!f(t.value)&&(oe=e[t.value].value,t.value++);continue}if(u(t.value)){if(t.value++,se){oe=``;continue}(p(t.value)||m(t.value))&&t.value++,h(t.value)&&g(t.value+1)&&_(t.value+2)&&(t.value+=3),t.value+=b(t.value);let n=oe;if(oe=``,i(t.value)&&(n=e[t.value].value,t.value++,t.value+=b(t.value)),v(t.value)){let r=GH(e,t);r.length&&(x={type:xz.alterTableAddUnique,name:ae,constraintName:n,usingIndexName:``,columns:r},ie.push(x))}continue}let n=ee(t.value);if(n){x&&(x.usingIndexName=e[t.value+n-1].value),t.value+=n;continue}se=!0,t.value++}return ie}var $H=[[`ADD`,`GENERATED`,`ALWAYS`,`AS`,`IDENTITY`],[`ADD`,`GENERATED`,`BY`,`DEFAULT`,`AS`,`IDENTITY`]],eU=[`ADD`,`DROP`,`OPTIONS`,`RESET`,`RESTART`,`SET`,`TYPE`];function tU(e,t){let n=XV(e),r=OV(e),i=Xz(e),a=Yz(e),o=Zz(e),s=Qz(e),c=Kz(e),l=tB(e),u=sB(e),d=nB(e),f=AB(e),p=MB(e),m=vB(e),h=t=>{let n=e[t];return n&&c(t)&&!n.quoted?n.value.toUpperCase():``},g=(e,t)=>t.every((t,n)=>h(e+n)===t),_=t=>{let n=t;for(;n<e.length&&!r(n);)n++;return UH(e.slice(t,n))(0)},v=e=>p(e)&&m(e+1)&&_(e+2)||$H.some(t=>g(e,t)),y=e=>c(e)&&(!r(e)||eU.includes(h(e+1))),b=n(t.value),ee=e[t.value+b-1].value,te=[],ne=0,re=!0;for(t.value+=b;t.value<e.length;){if(i(t.value)){t.value++;break}if(re&&l(t.value)&&!u(t.value+1)){re=!1,t.value++,f(t.value)&&t.value++,y(t.value)&&(v(t.value+1)&&te.push({type:xz.alterTableAlterColumnAutoIncrement,name:ee,columnName:e[t.value].value}),t.value++,d(t.value)&&t.value++);continue}if(r(t.value))break;re=!1,o(t.value)?ne++:s(t.value)?ne--:ne===0&&a(t.value)&&(re=!0),t.value++}return te}function nU(e,t){let n=OV(e),r=Kz(e),i=Jz(e),a=Xz(e),o=kB(e),s=_B(e),c=()=>t.value<e.length,l={type:xz.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 rU(e,t){let n=OV(e),r=Kz(e),i=Jz(e),a=Xz(e),o=kB(e),s=_B(e),c=()=>t.value<e.length,l={type:xz.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 iU(e,t){let n=OV(e),r=Xz(e),i=uB(e),a=Kz(e),o=Zz(e),s=CB(e),c=OB(e),l=XB(e),u=EB(e),d=gB(e),f=DB(e),p=ZB(e),m=VV(e),h=NV(e),g=IV(e),_=bV(e),v=()=>t.value<e.length,y=()=>{let n=g(t.value);return n?(t.value+=n,e[t.value-1].value):``},b={type:xz.createIndex,name:``,unique:i(t.value+1),tableName:``,columns:[]};for(t.value+=h(t.value)||1,l(t.value)&&t.value++,u(t.value)&&d(t.value+1)&&f(t.value+2)&&(t.value+=3),s(t.value)||(b.name=y());v()&&!n(t.value);){if(r(t.value)){t.value++;break}if(s(t.value)&&!b.tableName){t.value++,c(t.value)&&a(t.value+1)&&t.value++,b.tableName=y(),b.tableName&&(t.value+=_(t.value),o(t.value)&&(b.columns=GH(e,t)));continue}p(t.value)&&b.unique&&(b.unique=m(t.value,b.columns.map(({name:e})=>e))),t.value++}return b}function aU(e,t){let n=[],r={value:0},i=()=>r.value<e.length,a=MV(e),o=PV(e),s=KV(e),c=qV(e),l=JV(e),u=YV(e),d=ZV(e),f=EV(e),p=DV(e),m=RV(e);for(;i();){if(a(r.value)){n.push(KH(e,r,t));continue}if(o(r.value)){n.push(iU(e,r));continue}if(u(r.value)){let i=r.value;s(i)?n.push(ZH(e,r)):c(i)?n.push(XH(e,r)):l(i)&&n.push(WH(e,r,t));let a={value:i};n.push(...QH(e,a)),r.value=Math.max(r.value,a.value);continue}if(d(r.value)){n.push(...tU(e,r));continue}if(f(r.value)){n.push(rU(e,r));continue}if(p(r.value)){n.push(nU(e,r));continue}if(m(r.value)){let t=hH(e,r);t&&n.push(t);continue}r.value++}return n}var oU=(e,{database:t}={})=>aU(Iz(e,t),t);function sU(e,t,n,r){let i=jh({}),a=lU(cU(oU(e,{database:Object.values(q_).find(e=>Y_[e]===r)})));return a.forEach(e=>yU(i,e,t)),bU(i,a),xU(i,a),Mg(n?n(i):i)}function cU(e){let t={tables:[],indexes:[],primaryKeys:[],foreignKeys:[],uniques:[],defaults:[],autoIncrements:[],tableComments:[],columnComments:[]};for(let n of e)switch(n.type){case xz.createTable:n.name&&t.tables.push(n);break;case xz.createIndex:n.tableName&&n.columns.length&&t.indexes.push(n);break;case xz.alterTableAddPrimaryKey:n.name&&n.columnNames.length&&t.primaryKeys.push(n);break;case xz.alterTableAddForeignKey:n.name&&n.columnNames.length&&n.refTableName&&(!n.refColumnNames.length||n.columnNames.length===n.refColumnNames.length)&&t.foreignKeys.push(n);break;case xz.alterTableAddUnique:n.name&&n.columns.length&&t.uniques.push(n);break;case xz.alterTableAddDefault:n.name&&n.columnName&&n.default&&t.defaults.push(n);break;case xz.alterTableAlterColumnAutoIncrement:n.name&&n.columnName&&t.autoIncrements.push(n);break;case xz.commentOnTable:n.name&&t.tableComments.push(n);break;case xz.commentOnColumn:n.tableName&&n.columnName&&t.columnComments.push(n)}return t}function lU({tables:e,indexes:t,primaryKeys:n,foreignKeys:r,uniques:i,defaults:a,autoIncrements:o,tableComments:s,columnComments:c}){return t.forEach(t=>{let n=rF(e,t.tableName);if(!n)return;let r=mU(t),i=n.indexes.find(e=>dU(n,e)&&pU(mU(e),r));if(i){i.name||=t.name,i.unique||=t.unique;return}n.keys.some(e=>pU(e,r))||n.indexes.push({name:t.name,unique:t.unique,columns:t.columns})}),n.forEach(t=>{let n=rF(e,t.name);if(!n)return;let r=fU(n,{name:t.usingIndexName||t.constraintName,columnNames:t.columnNames});r&&n.indexes.splice(n.indexes.indexOf(r),1),t.columnNames.forEach(e=>{let t=rF(n.columns,e);t&&(t.primaryKey=!0)})}),i.forEach(t=>{let n=rF(e,t.name);if(!n)return;let r=fU(n,{name:t.usingIndexName||t.constraintName,columnNames:hU(t.columns)});if(r&&t.columns.length>1){r.unique=!0;return}if(r&&n.indexes.splice(n.indexes.indexOf(r),1),t.columns.length>1){n.indexes.push({name:t.constraintName,unique:!0,columns:t.columns});return}t.columns.forEach(({name:e})=>{let t=rF(n.columns,e);t&&(t.unique=!0)})}),r.forEach(t=>{let n=rF(e,t.name);n&&n.foreignKeys.push({columnNames:t.columnNames,refTableName:t.refTableName,refColumnNames:t.refColumnNames,onDelete:t.onDelete,onUpdate:t.onUpdate})}),a.forEach(({name:t,columnName:n,default:r})=>{let i=rF(e,t);if(!i)return;let a=rF(i.columns,n);a&&(a.default=r)}),o.forEach(({name:t,columnName:n})=>{let r=rF(e,t);if(!r)return;let i=rF(r.columns,n);i&&(i.autoIncrement=!0,i.default=``)}),s.forEach(({name:t,comment:n})=>{let r=uU(e,t);r&&(r.comment=n)}),c.forEach(({tableName:t,columnName:n,comment:r})=>{let i=uU(e,t);if(!i)return;let a=rF(i.columns,n);a&&(a.comment=r)}),e}function uU(e,t){return rF(e,t)??rF(e,t.slice(t.lastIndexOf(`.`)+1))}function dU(e,t){return t.name!==``||e.keys.some(e=>pU(e,mU(t)))}function fU(e,t){return e.indexes.find(e=>pU(t,mU(e)))??null}function pU(e,t){return e.name?gU(e.name,t.name)&&_U(e.columnNames,t.columnNames):vU(e.columnNames,t.columnNames)}const mU=({name:e,columns:t})=>({name:e,columnNames:hU(t)}),hU=e=>e.map(({name:e})=>e),gU=(e,t)=>e.toUpperCase()===t.toUpperCase();function _U(e,t){let n=new Set(e.map(e=>e.toUpperCase()));return e.length===t.length&&t.every(e=>n.has(e.toUpperCase()))}function vU(e,t){return e.length===t.length&&e.every((e,n)=>gU(e,t[n]))}function yU({doc:e,collections:t},n,{toWidth:r}){let i=G_({name:n.name,comment:n.comment,ui:{widthName:V(r(n.name)),widthComment:V(r(n.comment))}});n.columns.forEach(e=>{let n=K_({tableId:i.id,name:e.name,comment:e.comment,dataType:e.dataType,default:e.default,options:(e.autoIncrement?L.autoIncrement:0)|(e.primaryKey?L.primaryKey:0)|(e.unique?L.unique:0)|(e.nullable?0:L.notNull),ui:{widthName:V(r(e.name)),widthComment:V(r(e.comment)),widthDataType:V(r(e.dataType)),widthDefault:V(r(e.default)),keys:e.primaryKey?R.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 bU({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=rF(r,n.name);if(!a)return;let o=i.selectByIds(a.columnIds);n.foreignKeys.forEach(n=>{let s=rF(r,n.refTableName);if(!s)return;let c=i.selectByIds(s.columnIds),l=[],u=[];if(n.refColumnNames.length)n.refColumnNames.forEach(e=>{let t=rF(c,e);t&&l.push(t)});else{let e=c.filter(e=>G(e.ui.keys,R.primaryKey));e.length===1&&l.push(...e)}if(n.columnNames.forEach(e=>{let t=rF(o,e);t&&u.push(t)}),!l.length||l.length!==u.length)return;u.forEach(e=>{G(e.ui.keys,R.primaryKey)?e.ui.keys|=R.foreignKey:e.ui.keys=R.foreignKey});let d=TA({identification:!u.some(e=>!(G(e.ui.keys,R.primaryKey)&&G(e.ui.keys,R.foreignKey))),relationshipType:r_.ZeroN,onDelete:$P(n.onDelete),onUpdate:$P(n.onUpdate),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 xU({doc:e,collections:t},n){let r=M(t).collection(`tableEntities`).selectByIds(e.tableIds);n.forEach(n=>{n.indexes.forEach(i=>{let a=rF(r,n.name);if(!a)return;let o=M(t).collection(`tableColumnEntities`).selectByIds(a.columnIds),s=[],c=gk({name:i.name,tableId:a.id,unique:i.unique});i.columns.forEach(e=>{let t=rF(o,e.name);if(!t)return;let n=Nk({indexId:c.id,columnId:t.id,orderType:e.sort===Sz.asc?o_.ASC:o_.DESC});s.push(n)});let l=s.length===i.columns.length;s.length!==0&&(l||!i.unique)&&(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 SU({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,onDelete:t,onUpdate:n,start:r,end:i})=>({relationshipType:e,onDelete:t,onUpdate:n,start:{tableId:r.tableId,columnIds:[...r.columnIds]},end:{tableId:i.tableId,columnIds:[...i.columnIds]}}))}function CU({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 wU({editor:{selectedMap:e},collections:t}){let{tableIds:n,memoIds:r,tableGroupIds:i}=FP(e);return{tables:M(t).collection(`tableEntities`).selectByIds(n),memos:M(t).collection(`memoEntities`).selectByIds(r),tableGroups:M(t).collection(`tableGroupEntities`).selectByIds(i)}}function TU(e){let{tables:t,memos:n,tableGroups:r}=wU(e);return{tables:t.filter(e=>e.ui.color!==``),memos:n.filter(e=>e.ui.color!==``),tableGroups:r.filter(e=>e.color!==``)}}function EU({tables:e,columns:t,memos:n,relationships:r,indexes:i,tableGroups:a=[]},o,{valuesOnly:s=!1}={}){let c=[],l=(e,t)=>{(e||!s)&&c.push(t)},u=(e,t)=>{e&&c.push(t)},d=[],f=[],p=[],m=new Map(t.map(e=>[e.sourceId,e])),h=/* @__PURE__ */ new Map,g=/* @__PURE__ */ new Map;for(let t of e){let e=o.get(t.sourceId);if(!e)continue;let n=wg();d.push(n),h.set(t.sourceId,n),c.push(ij({id:n,ui:{x:e.x,y:e.y,zIndex:e.zIndex,color:t.ui.color}})),l(!!t.name,fj({id:n,value:t.name})),u(!!t.logicalName,mj({id:n,value:t.logicalName??``})),l(!!t.comment,vj({id:n,value:t.comment})),u(t.nameDerived===!0,gj({id:n,value:!0}));for(let e of t.columnIds){let t=m.get(e);if(!t)continue;let r={id:wg(),tableId:n};g.set(e,r.id);let i=G(t.options,L.primaryKey),a=G(t.options,L.notNull),o=G(t.options,L.unique),s=G(t.options,L.autoIncrement);c.push(fv(r)),l(!!t.name,gv({...r,value:t.name})),u(!!t.logicalName,Nv({...r,value:t.logicalName??``})),l(!!t.dataType,bv({...r,value:t.dataType})),u(!!t.domainId,Fv({...r,value:t.domainId??``})),l(!!t.default,Cv({...r,value:t.default})),l(!!t.comment,vv({...r,value:t.comment})),l(i,Dv({...r,value:i})),l(a,jv({...r,value:a})),l(o,kv({...r,value:o})),l(s,Tv({...r,value:s})),u(G(t.options,L.nameDerived),Lv({...r,value:!0}))}}for(let e of r){let t=h.get(e.start.tableId),n=h.get(e.end.tableId);if(!t||!n)continue;let r=DU(e.start.columnIds,g),i=DU(e.end.columnIds,g);r&&i&&c.push(EA({id:wg(),relationshipType:e.relationshipType,onDelete:e.onDelete,onUpdate:e.onUpdate,start:{tableId:t,columnIds:r},end:{tableId:n,columnIds:i}}))}for(let e of i){let t=h.get(e.tableId);if(!t)continue;let n=DU(e.indexColumns.map(({columnId:e})=>e),g);if(!n)continue;let r=wg();c.push(_k({id:r,tableId:t})),l(!!e.name,xk({id:r,tableId:t,value:e.name})),l(e.unique,Ck({id:r,tableId:t,value:e.unique})),e.indexColumns.forEach(({orderType:e},i)=>{let a=wg(),o=n[i];c.push(Pk({id:a,indexId:r,tableId:t,columnId:o})),l(e!==o_.ASC,Bk({id:a,indexId:r,columnId:o,value:e}))})}for(let e of n){let t=o.get(e.sourceId);if(!t)continue;let n=wg();f.push(n),c.push(Zk({id:n,ui:{x:t.x,y:t.y,zIndex:t.zIndex,color:e.ui.color,width:e.ui.width,height:e.ui.height}})),l(!!e.value,aA({id:n,value:e.value}))}for(let e of a){let t=wg();p.push(t),c.push(dM({id:t,color:e.color,ui:{...e.ui}})),l(!!e.name,xM({id:t,value:e.name}));for(let n of e.tableIds){let e=h.get(n);e&&c.push(Sj({id:e,value:t}))}}return{actions:c,tableIds:d,memoIds:f,tableGroupIds:p}}function DU(e,t){let n=[];for(let r of e){let e=t.get(r);if(!e)return null;n.push(e)}return n}function OU(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]})}}})),OU(e,t,n)),n}const kU=eb.flow,AU={focusFlowTableAction$:e=>function*({editor:t,settings:n}){e.length&&(n.canvasType!==Yg.visualization&&(yield Rw({value:Yg.visualization})),t.visualizationMode!==tb.flow&&(yield zx({value:tb.flow})),yield t.views.flow?Fx({tableIds:e,kind:kU}):_x({kind:kU,centerIds:e}))}},jU=(e,{keepDictionaries:t=!1}={})=>function*(){let n=t?{keepDictionaries:t}:void 0;yield UD(n),yield JD({value:e,...n})},MU=e=>function*(){yield XD(),yield QD({value:e})},NU=(e,t,n=`document`,r={})=>function*(i){let{tableIds:a,memoIds:o,tableGroupIds:s}=FP(i.editor.selectedMap),{zoomLevel:c}=ew(i,n),l=e/c,u=t/c;if(n!==`document`){a.length&&(yield Wx(Ux.drag,kx({ids:a,movementX:l,movementY:u,kind:n})));return}r.tableGroupIds??=s,r.tableIds??=VP(i,r.tableGroupIds,a),yield HP(r.tableGroupIds,r.tableIds,l,u),o.length&&(yield Wx(Ux.drag,$k({ids:o,movementX:l,movementY:u})))},PU=()=>function*(){yield yP(),yield lP(),yield BP()},FU=(e,t)=>function*(n){yield*LU(n,{input:{tables:e.tables,columns:e.columns.map(e=>({...e,domainId:P_(n,e.domainId,e.dataType)})),memos:e.memos,relationships:e.relationships??[],indexes:e.indexes??[]},offset:{x:50*t,y:50*t},escapeCollision:!0})},IU=({tableIds:e,memoIds:t,offset:n,escapeCollision:r})=>function*(i){yield*LU(i,{input:BU(i,{tableIds:e??[],memoIds:t??[]}),offset:{x:Ke(n.x,4),y:Ke(n.y,4)},escapeCollision:r})};function*LU(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}=EU(t,zU(gP({entities:[...t.tables.map(e=>RU(e,`table`)),...t.memos.map(e=>RU(e,`memo`))],offset:n,escapeCollision:r,settings:i,tables:c.selectByIds(a),memos:l.selectByIds(o),findSource:e=>c.selectById(e)??l.selectById(e)})));yield QU(),yield u,yield zD({...d.reduce((e,t)=>(e[t]=Qy.table,e),{}),...(Kx(e)?f:[]).reduce((e,t)=>(e[t]=Qy.memo,e),{})})}const RU=({sourceId:e,ui:{x:t,y:n,zIndex:r}},i)=>({sourceId:e,kind:i,ui:{x:t,y:n,zIndex:r}});function zU(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 BU(e,{tableIds:t,memoIds:n,tableGroupIds:r=[]}){let{collections:i}=e,a=M(i).collection(`tableEntities`).selectByIds(t),o=M(i).collection(`memoEntities`).selectByIds(n),s=a.flatMap(e=>M(i).collection(`tableColumnEntities`).selectByIds(e.columnIds)),c=a.map(({id:e})=>e);return{tables:a.map(e=>({sourceId:e.id,name:e.name,logicalName:e.logicalName,comment:e.comment,columnIds:[...e.columnIds],nameDerived:e.nameDerived,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:s.map(e=>({sourceId:e.id,tableId:e.tableId,name:e.name,comment:e.comment,dataType:e.dataType,default:e.default,options:e.options,logicalName:e.logicalName,domainId:e.domainId,ui:{keys:e.ui.keys,widthName:e.ui.widthName,widthComment:e.ui.widthComment,widthDataType:e.ui.widthDataType,widthDefault:e.ui.widthDefault}})),memos:o.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:SU(e,c),indexes:CU(e,c),tableGroups:M(i).collection(`tableGroupEntities`).selectByIds(r).map(e=>({sourceId:e.id,name:e.name,color:e.color,tableIds:a.filter(t=>t.groupId===e.id).map(({id:e})=>e),ui:{...e.ui}}))}}function VU(e,t,n){let{nameViewMode:r}=e.settings,i={...e,...t,settings:{...t.settings,nameViewMode:r}};qS(i,n),Nj[J.sortTable](i,{type:J.sortTable,payload:void 0},n)}function HU(e,t,n){let r=jg(e);VU(t,r,n);let i=JSON.parse(e),a=(e,t,n)=>{let r=e?.[t];r&&(r.ui={...r.ui,...n})},{doc:o,collections:s}=r;return M(s).collection(`tableEntities`).selectByIds(o.tableIds).forEach(({id:e,ui:{x:t,y:n}})=>a(i.collections?.tableEntities,e,{x:t,y:n})),M(s).collection(`tableGroupEntities`).selectByIds(o.tableGroupIds).forEach(({id:e,ui:{x:t,y:n,width:r,height:o}})=>a(i.collections?.tableGroupEntities,e,{x:t,y:n,width:r,height:o})),JSON.stringify(i)}function UU(e,t,{tables:n,memos:r},i,a){let{tableEntities:o}=t.collections;i===`grid`&&VU(e,t,a);let s=new Map(typeof i==`string`?[]:i.map(({id:e,x:t,y:n})=>[e,{x:t,y:n}]));return new Map([...n.map(({sourceId:e})=>{let{x:t,y:n}=o[e].ui;return[e,s.get(e)??{x:t,y:n}]}),...r.map(({sourceId:e,ui:{x:t,y:n}})=>[e,{x:t,y:n}])])}function WU({tableGroups:e=[]},t,n,r){return t===`file`?e.map(({ui:e})=>e):e.flatMap(({tableIds:e})=>{let t=e.flatMap(e=>{let t=n.get(e),i=r.get(e);return t&&i?[{...t,...i}]:[]});return t.length?[PC(t.reduce(tC))]:[]})}function GU(e){let t=GC(e)?[]:[...RC(e).values()],n=Kx(e)?[]:M(e.collections).collection(`memoEntities`).selectByIds(e.doc.memoIds).map(oC),r=[...t,...n],i=[YC(e),...r].filter(e=>e!==null).reduce((e,t)=>e?tC(e,t):t,null);return i?{x:i.x,y:i.y+i.height+80}:{x:50,y:50}}function KU(e,t,n,r){let i;try{i=jg(t)}catch{return null}let{doc:a,collections:o}=i,s={...e,doc:a,collections:o},c=BU(s,a);if(!c.tables.length&&!c.memos.length)return null;let l={...c,columns:c.columns.map(e=>({...e,domainId:``}))},u=UU(e,i,l,n,r),d={...s,doc:{...a,domainIds:[]}},f=new Map(M(o).collection(`tableEntities`).selectByIds(a.tableIds).map(e=>[e.id,JS(e,d,r.toWidth)])),p=1/0,m=1/0;for(let{x:e,y:t}of[...u.values(),...WU(l,n,u,f)])p=Math.min(p,e),m=Math.min(m,t);let h=GU(e),g=XE(M(e.collections).collection(`tableEntities`).selectByIds(e.doc.tableIds),M(e.collections).collection(`memoEntities`).selectByIds(e.doc.memoIds)),_=[...l.tables,...l.memos].sort((e,t)=>e.ui.zIndex-t.ui.zIndex),v=/* @__PURE__ */ new Map;_.forEach(({sourceId:e},t)=>{let n=u.get(e);v.set(e,{x:Ke(h.x+n.x-p,4),y:Ke(h.y+n.y-m,4),zIndex:g+t})});let y=new Map(M(o).collection(`tableEntities`).selectByIds(a.tableIds).map(e=>{let{x:t,y:n}=v.get(e.id);return[e.id,{x:t,y:n,...f.get(e.id)}]})),b=M(o).collection(`memoEntities`).selectByIds(a.memoIds).map(e=>oC({...e,ui:{...e.ui,...v.get(e.id)}})),ee=qU(e,l,n,y,{x:h.x-p,y:h.y-m});return{...EU({...l,tableGroups:ee},v,{valuesOnly:!0}),rect:[...y.values(),...b,...ee.map(({ui:{x:e,y:t,width:n,height:r}})=>({x:e,y:t,width:n,height:r}))].reduce(tC)}}function qU(e,{tableGroups:t=[]},n,r,i){let a=WC(M(e.collections).collection(`tableGroupEntities`).selectByIds(e.doc.tableGroupIds));return[...t].sort((e,t)=>e.ui.zIndex-t.ui.zIndex).map((e,t)=>{let o=e.tableIds.map(e=>r.get(e)).filter(e=>!!e),{x:s,y:c,width:l,height:u}=n===`file`||!o.length?{...e.ui,x:Ke(e.ui.x+i.x,4),y:Ke(e.ui.y+i.y,4)}:PC(o.reduce(tC));return{...e,ui:{x:s,y:c,width:l,height:u,zIndex:a+t}}})}const JU=(e,t=`file`)=>function*(n,r){let i=KU(n,e,t,r);i&&(yield i.actions)},YU=(e,t)=>function*(n,r){yield JU(oW(e,t,n,r),`grid`)},XU=(e,t=`document`)=>function*(n){let{collections:r}=n,{tableIds:i,memoIds:a}=$x(n,t),o={...M(r).collection(`tableEntities`).selectByIds(i).reduce((r,i)=>{let a=nC(n,i,t);return ZP(e,{x:a.x+a.width/2-15,y:a.y+a.height/2-15,w:15,h:15})&&(r[i.id]=Qy.table),r},{}),...M(r).collection(`memoEntities`).selectByIds(a).reduce((t,n)=>{let r=lS(n),i=uS(n);return ZP(e,{x:n.ui.x+r/2-15,y:n.ui.y+i/2-15,w:15,h:15})&&(t[n.id]=Qy.memo),t},{}),...ZU(n,e,t)};yield QU(),Ge(o)||(yield zD(o))};function ZU(e,t,n){if(n!==`document`||!GC(e))return{};let r={};return RC(e).forEach(({x:e,y:n,width:i,height:a},o)=>{XP(t,{x:e,y:n,w:i,h:a})&&(r[o]=Qy.tableGroup)}),r}const QU=()=>function*(){yield LD(),yield aO()},$U=(e,t)=>function*(n){let{editor:{focusTable:r}}=n;r&&(e===rb.Tab&&!t&&(CD(r.focusType)&&xD(n)&&!sD(n)||!CD(r.focusType)&&cD(n)&&uD(n))?yield OP(r.tableId):yield sO({moveKey:e,shiftKey:t}))},eW=e=>function*({editor:t}){t.drawRelationship?.relationshipType===e?yield kO():yield TO({relationshipType:e})},tW=e=>function*({collections:t}){let n=M(t).collection(`tableEntities`).selectById(e);if(n){if(!M(t).collection(`tableColumnEntities`).selectByIds(n.columnIds).some(e=>G(e.options,L.primaryKey))){let t=wg();yield fv({tableId:e,id:t}),yield Dv({tableId:e,id:t,value:!0}),yield rO({tableId:e,columnId:t,focusType:W.columnName,$mod:!1,shiftKey:!1})}yield DO({tableId:e})}},nW=e=>function*(t){let{tables:n,memos:r,tableGroups:i}=wU(t),a=e.toLowerCase();yield n.filter(e=>e.ui.color.toLowerCase()!==a).map(t=>bj({id:t.id,color:e,prevColor:t.ui.color})),yield r.filter(e=>e.ui.color.toLowerCase()!==a).map(t=>sA({id:t.id,color:e,prevColor:t.ui.color})),yield i.filter(e=>e.color.toLowerCase()!==a).map(t=>CM({id:t.id,color:e,prevColor:t.color}))},rW=()=>function*(e){let{tables:t,memos:n,tableGroups:r}=TU(e);yield t.map(e=>bj({id:e.id,color:``,prevColor:e.ui.color})),yield n.map(e=>sA({id:e.id,color:``,prevColor:e.ui.color})),yield r.map(e=>CM({id:e.id,color:``,prevColor:e.color}))},iW=[`originX`,`originY`,`zoomLevel`];function aW(e,t){let n=ge(ie(t),iW),{originX:r,originY:i,zoomLevel:a}=e.settings;e.settings={...e.settings,...n,lockedValues:{...n.lockedValues,originX:r,originY:i,zoomLevel:a}}}function oW(e,t,{settings:n},r){let i=e=>(aW(e,n),e);switch(e){case`sql`:return sU(t,r,i,n.database);case`graphql`:return bz(t,r,i);case`dbml`:return WL(t,r,i);case`aml`:return OI(t,r,i)}}const sW=(e,t)=>function*(n,r){yield jU(HU(oW(e,t,n,r),n,r),{keepDictionaries:!0})},cW=e=>sW(`sql`,e),lW=e=>sW(`graphql`,e),uW=e=>sW(`dbml`,e),dW=e=>sW(`aml`,e),fW=()=>function*(e){let{focusTable:t}=e.editor,n=_D(e);t&&n.length!==0&&(yield GO({tableId:t.tableId,columnIds:n}))};function pW(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(zv({tableId:e,id:t,targetId:a})))}return ce(r,t)?[]:i}const mW=(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 pW(i,s.columnIds,a);return}let n=s.columnIds.indexOf(e);if(n===-1)return;let r=a.map(t=>zv({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 kP(i,a);let l=c.map(()=>wg());for(let n=0;n<c.length;n++){let r=c[n],i=l[n],a={id:i,tableId:t};yield[fv(a),gv({...a,value:r.name}),bv({...a,value:r.dataType}),Cv({...a,value:r.default}),vv({...a,value:r.comment}),Dv({...a,value:G(r.options,L.primaryKey)}),jv({...a,value:G(r.options,L.notNull)}),kv({...a,value:G(r.options,L.unique)}),Tv({...a,value:G(r.options,L.autoIncrement)}),Nv({...a,value:r.logicalName}),Fv({...a,value:r.domainId}),Lv({...a,value:G(r.options,L.nameDerived)}),...e===null?[]:[zv({...a,targetId:e})],rO({tableId:t,columnId:i,focusType:W.columnName,$mod:!0,shiftKey:!1})]}yield GO({tableId:t,columnIds:l})},hW=e=>function*(t){let{columnIds:n,relationshipIds:r}=OU([{columnId:e,relationshipIds:[]}],t).reduce((e,{columnId:t,relationshipIds:n})=>(e.columnIds.push(t),e.relationshipIds.push(...n),e),{columnIds:[],relationshipIds:[]});yield NO({columnIds:be(n)}),yield FO({relationshipIds:be(r)})},gW=()=>function*(){yield NO({columnIds:[]}),yield FO({relationshipIds:[]})},_W={loadJsonAction$:jU,initialLoadJsonAction$:MU,moveAllAction$:NU,removeSelectedAction$:PU,pasteEntitiesAction$:FU,duplicateAction$:IU,dragSelectAction$:XU,unselectAllAction$:QU,focusMoveTableAction$:$U,drawStartRelationshipAction$:eW,drawStartAddRelationshipAction$:tW,changeColorAllAction$:nW,removeColorAllAction$:rW,loadSchemaSQLAction$:cW,loadSchemaGraphQLAction$:lW,loadSchemaDBMLAction$:uW,loadSchemaAMLAction$:dW,appendSchemaAction$:YU,appendSchemaJsonAction$:JU,dragstartColumnAction$:fW,dragoverColumnAction$:mW,columnKeyHoverStartAction$:hW,columnKeyHoverEndAction$:gW,...AU},vW={addIndexAction$:e=>function*(){yield _k({id:wg(),tableId:e})},changeIndexUniqueAction$:e=>function*({collections:t}){let n=M(t).collection(`indexEntities`).selectById(e);n&&(yield Ck({id:e,tableId:n.tableId,value:!n.unique}))}},yW={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 Pk({id:i.id,indexId:e,tableId:r.tableId,columnId:t}):yield Pk({id:wg(),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 Ik({id:t.id,indexId:e,tableId:r.tableId})},changeIndexColumnOrderTypeAction$:e=>function*({collections:t}){let n=M(t).collection(`indexColumnEntities`).selectById(e);n&&(yield Bk({id:e,indexId:n.indexId,columnId:n.columnId,value:n.orderType===o_.ASC?o_.DESC:o_.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 Rk({id:e,indexId:r.indexId,tableId:i.tableId,targetId:t}))}},bW={addRelationshipAction$:(e,t,n,r={})=>function*({doc:{tableIds:i,domainIds:a},collections:o,settings:{database:s}}){let c=M(o).collection(`tableEntities`).selectByIds(i),l=c.find(({id:t})=>t===e),u=c.find(({id:e})=>e===t);if(!l||!u)return;let d=M(o).collection(`tableColumnEntities`),f=d.selectByIds(l.columnIds).filter(({options:e})=>G(e,L.primaryKey)),p=f.length?null:K_({tableId:l.id}),m=p?[p]:f,h=m.map(()=>wg());yield[...p?[fv({id:p.id,tableId:l.id}),Dv({id:p.id,tableId:l.id,value:!0})]:[],...pN(m,u.id,h,{startTableName:l.name,endColumnNames:d.selectByIds(u.columnIds).map(({name:e})=>e),database:s,domainIds:a}),EA({id:wg(),relationshipType:n,...r,start:{tableId:l.id,columnIds:m.map(({id:e})=>e)},end:{tableId:u.id,columnIds:h}})]}};function xW(e,t,n,r){let i=iw({...e,zoomLevel:t},n);return{movementX:Ke(r.x-i.x,4),movementY:Ke(r.y-i.y,4)}}function SW(e,t,n){let{viewport:r}=e.editor,i={x:r.width/2,y:r.height/2};return xW(t,n,aw(t,i),i)}const CW={changeZoomLevelAction$:(e,t)=>function*(n){let r=tw(n,t),{originX:i,originY:a}=r,{movementX:o,movementY:s}=SW(n,r,nv(e)),c={originX:i+o,originY:a+s};if(t&&t!==`document`){yield Tx({value:e,kind:t}),yield xx({...c,kind:t});return}yield Cw({value:e}),yield kw(c)},streamZoomLevelAction$:(e,t)=>function*(n){let r=tw(n,t),i=SW(n,r,nv(r.zoomLevel+e));if(t&&t!==`document`){yield Dx({value:e,kind:t}),yield Cx({...i,kind:t});return}yield Tw({value:e}),yield jw(i)},changeLockSettingsAction$:(e,t)=>function*({settings:n,editor:r}){let i=t?e:e&rT,a=c_.filter(e=>G(i,e)).flatMap(e=>l_[e]),o=_e(n,a);o.canvasType===Yg.settings&&(o.canvasType=r.lastCanvasType),yield tT({lockSettingType:e,value:t,values:o})}},wW=Object.freeze({...uk,..._W,...Ek,...vW,...Uk,...yW,...mA,...dP,...HA,...bW,..._T,...CW,...Pj,...TP,...Hv,...PP,...OM,...YP,...Wy,...sP}),TW=/* @__PURE__ */ `table.add,table.move,table.moveTo,table.remove,table.changeName,table.changeComment,table.changeColor,table.changeGroup,table.sort,table.changeLogicalName,table.changeNameDerived,column.add,column.remove,column.changeName,column.changeComment,column.changeDataType,column.changeDefault,column.changeAutoIncrement,column.changePrimaryKey,column.changeUnique,column.changeNotNull,column.move,column.changeLogicalName,column.changeDomain,column.changeNameDerived,relationship.add,relationship.remove,relationship.changeType,relationship.changeOnDelete,relationship.changeOnUpdate,relationship.changeColumns,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,tableGroup.add,tableGroup.move,tableGroup.moveTo,tableGroup.remove,tableGroup.resize,tableGroup.changeName,tableGroup.changeColor,dictionary.add,dictionary.update,dictionary.remove,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.changeColumnOrder,settings.changeMaxWidthComment,settings.changeLockSettings,settings.changeDDLScript,settings.changeNameViewMode,editor.loadJson,editor.clear`.split(`,`);[...TW];const EW=B([`settings.changeZoomLevel`,`settings.streamZoomLevel`,`settings.scrollTo`,`settings.streamScrollTo`,`settings.changeDatabase`,`settings.changeCanvasType`,`settings.changeLanguage`,`settings.changeTableNameCase`,`settings.changeColumnNameCase`,`settings.changeBracketType`,`settings.changeNameViewMode`]),DW=[...TW.filter(e=>!EW(e))],OW=B([`editor.loadJson`,`editor.clear`]),kW=[...DW.filter(e=>!OW(e))],AW={"settings.changeZoomLevel":s_.viewport,"settings.streamZoomLevel":s_.viewport,"settings.scrollTo":s_.viewport,"settings.streamScrollTo":s_.viewport,"settings.changeCanvasType":s_.canvasType,"settings.changeLanguage":s_.language,"settings.changeTableNameCase":s_.tableNameCase,"settings.changeColumnNameCase":s_.columnNameCase,"settings.changeBracketType":s_.bracketType,"settings.changeNameViewMode":s_.unlockNameViewMode},jW=[`editor.sharedMouseTracker`,`editor.sharedFocusTracker`,`editor.sharedSelectionTracker`,`editor.sharedDragSelectTracker`];[...TW,...jW];const MW=[`table.move`,`memo.move`,`tableGroup.move`],NW=[`table.changeColor`,`memo.changeColor`,`tableGroup.changeColor`],PW=[`settings.streamZoomLevel`,`settings.streamScrollTo`],FW=[...Object.keys(BM)],IW=[...Object.keys(zM),...FW];function LW(e,t){if(t.has(e))throw TypeError(`Cannot initialize the same private elements twice on an object`)}function RW(e,t,n){LW(e,t),t.set(e,n)}function zW(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 BW(e,t){return e.get(zW(e,t))}function VW(e,t,n){return e.set(zW(e,t),n),n}var HW=/* @__PURE__ */ new WeakMap,UW=class{constructor(){RW(this,HW,0),Yi(this,`getVersion`,()=>BW(HW,this)),Yi(this,`getNextVersion`,()=>this.getVersion()+1),Yi(this,`merge`,e=>(!de(e)||!Number.isInteger(e)||this.getVersion()<e&&VW(HW,this,e),this))}};function WW(e){return{...e,clock:new UW}}function GW({notify:e,dispatch:t,getNextVersion:n,getState:r},i){let a=i?.commands??[],o=i?.cursor??-1,s=i?.limit??0,c=!0,l=()=>o!==-1,u=()=>o<a.length-1,d=e=>s=e,f=()=>({hasRedo:u(),hasUndo:l()}),p=(e,i)=>{c=!1,e[i](t,n,r),c=!0};return Object.freeze({get cursor(){return o},get size(){return a.length},hasUndo:l,hasRedo:u,push:t=>{c&&(a.splice(o+1,a.length-o),a.push(t),s!==0&&a.length>s&&(a=a.slice(a.length-s,a.length)),o=a.length-1,e(f()))},undo:()=>{if(!l())return;let t=a[o];p(t,`undo`),o--,e(f())},redo:()=>{if(!u())return;let t=a[o+1];p(t,`redo`),o++,e(f())},clear:()=>{let t=a.length;a=[],o=-1,t>0&&e(f())},setLimit:d,clone:e=>GW(e,{commands:[...a],cursor:o,limit:s})})}const KW=ke(e=>!!e.length),qW=e=>{let t=B(e);return e=>new Se(n=>e.subscribe({next:e=>n.next(e.filter(e=>t(e.type))),error:e=>n.error(e),complete:()=>n.complete()})).pipe(KW)},JW=`@@none-stream`,YW=(e,t)=>n=>{let r=t.find(([,e])=>e(n));return r?r[0]:e(n.type)?n.type:JW},XW=(e,t)=>t!==void 0&&typeof e.tags==`number`&&G(e.tags,t),ZW=(e,t=[],n=De(200))=>{let r=B(e),i=t.map(([e,t,n])=>{let r=B(t);return[e,e=>r(e.type)||XW(e,n)]}),a=YW(r,i);return e=>new Se(t=>e.subscribe({next:e=>{let n=e.reduce((e,t)=>{let n=a(t);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(KW,je(e=>a(e[0])),Pe(e=>e.key===JW?e:e.pipe(Ee(e.pipe(n)),Me(e=>e.flat()))))},QW=e=>{let t=t=>S(t.tags)||!e.some(e=>G(t.tags,e));return e=>new Se(n=>e.subscribe({next:e=>n.next(e.filter(t)),error:e=>n.error(e),complete:()=>n.complete()})).pipe(KW)};B(FW),B(jW);const $W=e=>t=>t.pipe(Re(t=>e.pipe(ze(1),Me(()=>t)))),eG=e=>{let t=e=>t=>{let n=Reflect.get(AW,t.type);return!n||!mm(e,n)};return n=>new Se(r=>n.subscribe({next:n=>{r.next(n.filter(t(e())))},error:e=>r.error(e),complete:()=>r.complete()})).pipe(KW)},tG=(e,t=[])=>{let n=B(DW),r=e=>!S(e.tags)&&t.some(t=>G(e.tags,t))||!n(e.type);return t=>new Se(n=>t.subscribe({next:t=>{n.next(e()?t.filter(r):t)},error:e=>n.error(e),complete:()=>n.complete()})).pipe(KW)},nG={[q.scrollTo]:U.viewScrollTo,[q.streamScrollTo]:U.viewStreamScrollTo,[q.changeZoomLevel]:U.viewChangeZoomLevel,[q.streamZoomLevel]:U.viewStreamZoomLevel},rG=({tags:e})=>!S(e)&&(G(e,Ux.shared)||G(e,Ux.following)),iG=e=>{let t=nG[e.type];return t&&!rG(e)?{...e,type:t}:e},aG=e=>t=>new Se(n=>t.subscribe({next:t=>{n.next(e()?t.map(iG):t)},error:e=>n.error(e),complete:()=>n.complete()})),oG=(e,t=[])=>{let n=B(kW),r=e=>!S(e.tags)&&t.some(t=>G(e.tags,t))||!n(e.type);return t=>new Se(n=>t.subscribe({next:t=>{n.next(e()?t.filter(r):t)},error:e=>n.error(e),complete:()=>n.complete()})).pipe(KW)};function sG(e,t){return Ld({context:e,state:{...Rh(),editor:ib(),lww:{}},reducers:{...lk,...Nj,...Vv,...pA,...VA,...gT,...Tk,...Hk,...DM,...Uy},enableObservable:t??!0})}const cG=(e,t)=>e.pipe(He(()=>Ue(0,Te),{leading:!1,trailing:!0})).subscribe(()=>bT(t())),lG=(e,t)=>e.pipe(He(()=>Ue(0,Te),{leading:!1,trailing:!0}),Fe(Te)).subscribe(()=>xT(t())),uG=B([oj.type,cj.type,$k.type]),dG=({tags:e})=>!S(e)&&G(e,Ux.drag)?Ue(5):Ue(0,Te),fG=[_k,yk,Ck,Pk,Ik,Rk,zv],pG=fG.map(e=>e.type),mG=B(pG),hG=B([N.hideReferentialAction,N.hideTableGroup,N.hideMemo]),gG=e=>e.type===Nw.type&&hG(e.payload?.show),_G=B([Ly.type,zy.type,Vy.type]),vG=({type:e,payload:t},n)=>e===dT.type?t.shared===!0||t.editorId===n.editor.id:_G(e)?t?.kind===z.domain&&(e!==zy.type||w(t.values?.name)):e!==tT.type||t?.value===!1&&G(t.lockSettingType,s_.unlockNameViewMode),yG=(e,t)=>e.pipe(ke(e=>(!mG(e.type)||G(t().settings.show,N.columnAlternateKey))&&!gG(e)&&vG(e,t())),Ve(e=>{uG(e.type)||jS()}),He(dG,{leading:!1,trailing:!0})).subscribe(()=>{jE(t())}),bG=B([Nw.type,$w.type,$k.type,...pG]),xG=B([mj.type,Nv.type,Fv.type,Ly.type,zy.type,Vy.type]),SG=B([xx.type,Cx.type,Tx.type,Dx.type]),CG=({id:e})=>[e],wG=({ids:e})=>e,TG=({tableId:e})=>[e],EG=(e,{kind:t})=>t,DG=()=>eb.flow,OG=(e,{kind:t})=>t??cx(e)?.kind??null,kG={[_x.type]:EG,[yx.type]:EG,[jx.type]:EG,[Fx.type]:DG,[Lx.type]:DG,[Nx.type]:OG,[kx.type]:OG},AG={[ij.type]:CG,[uj.type]:CG,[cj.type]:CG,[fj.type]:CG,[mj.type]:CG,[vj.type]:CG,[EA.type]:CG,[OA.type]:CG,[IA.type]:({id:e,start:t,end:n})=>[e,t.tableId,n.tableId],[oj.type]:wG,[kx.type]:wG,[fv.type]:TG,[mv.type]:TG,[gv.type]:TG,[Nv.type]:TG,[Fv.type]:TG,[vv.type]:TG,[bv.type]:TG,[Cv.type]:TG,[Dv.type]:TG};function jG(e,t){let{tableIds:n,relationshipIds:r}=$x(e,t);return/* @__PURE__ */ new Set([...n,...r])}function MG(e,t,n,r){if(bG(t.type)||SG(t.type)||xG(t.type)&&e.settings.nameViewMode===u_.physical)return!1;let i=kG[t.type];if(i&&i(e,t.payload)!==r)return!1;let a=AG[t.type];if(!a)return!0;let o=jG(e,r);return a(t.payload).some(e=>o.has(e)||n.has(e))}const NG=[eb.flow],PG=(e,t)=>{let n={flow:/* @__PURE__ */ new Set},r=/* @__PURE__ */ new Set;return e.pipe(ke(e=>{let i=t();if(!vG(e,i))return!1;let a=!1;for(let t of NG)lx(i,t)&&MG(i,e,n[t],t)&&(r.add(t),a=!0);return a}),He(dG,{leading:!1,trailing:!0})).subscribe(()=>{let e=t(),i=[...r];r.clear();for(let t of i)lx(e,t)&&(jE(e,t),n[t]=jG(e,t))})},FG=[Nw,$w,EA,OA,IA,$k,ij,uj,oj,cj,fj,vj,fv,mv,gv,vv,bv,Cv,Ej,...fG,dT,tT,mj,Nv,Fv,Ly,zy,Vy],IG=[Dv],LG=[_x,yx,xx,Cx,Tx,Dx,kx,jx,Nx,Fx,Lx],RG=[[[fv,mv,Dv,EA,OA,IA,ij,uj],cG],[[fv,mv,jv,Dv,EA,OA,IA,ij,uj],lG],[FG,yG],[[...FG,...IG,...LG],PG]],zG=[[[uj],(e,t)=>e.pipe(Fe(Te)).subscribe(()=>{let{doc:e,editor:n}=t(),r=n.drawRelationship?.start;r&&!e.tableIds.includes(r.tableId)&&(n.drawRelationship=null)})]],BG=e=>e.pipe(Fe(Te)),VG=[[[Dv],(e,t)=>BG(e).subscribe(({payload:{id:e}})=>{let{collections:n}=t(),r=M(n).collection(`tableColumnEntities`).selectById(e);r&&G(r.options,L.primaryKey)&&(G(r.options,L.notNull)||(r.options|=L.notNull))})],[[EA,OA,IA,fv,mv,ij,uj],(e,t)=>e.pipe(He(()=>Ue(0,Te),{leading:!1,trailing:!0})).subscribe(()=>CT(t()))]],HG=[...zG,...VG,...RG];function UG(e){let t=()=>e.state,n=HG.map(([n,r])=>{let i=new Ce;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()}}}const WG=2048,GG=B([U.loadJson,U.clear]),KG=({type:e,payload:t})=>GG(e)&&!WD(t);function qG(e,{getReadonly:t=()=>!1,getHistory:n,manualStreamFlush:r=!1,observable:i=!0}={}){let a=/* @__PURE__ */ new Set,o=sG(e,i),s=UG(o),c={notify:e=>o.dispatch(ND(e)),dispatch:o.dispatchSync,getNextVersion:()=>e.clock.getNextVersion(),getState:()=>o.state},l=n?.(c)??GW(c);l.setLimit(WG);let u=Object.fromEntries(y_.map(e=>{let t=GW({...c,notify:t=>o.dispatch(ND({...t,sheet:e}))});return t.setLimit(WG),[e,t]})),d=()=>y_.forEach(e=>u[e].clear()),f=e=>{let t=e.find(QM);return t?u[t.payload?.kind]:null},p=e=>{let t=Gx(e,Ux.dictionarySheet)?f(e):null;t?rN(o,t)(e):_.next(e)},m=()=>cx(o.state),h=new Ce,g=h.pipe(aG(m)),_=new Ce,v=new Ce,y=new Ce,b=v.pipe(Le(void 0),Re(()=>_.pipe(ZW(FW,[[`@@move`,MW,Ux.drag],[`@@scroll`,PW],[`@@color`,NW]],r?$W(y):void 0)))),ee=new Se(e=>o.subscribe(t=>e.next(t))).pipe(qW(TW),eG(()=>o.state.settings.lockSettings),tG(t,[Ux.shared]),De(200)),te=(...t)=>{let n=e.clock.getNextVersion();return Nd(o.state,o.context,t).map(e=>(S(e.version)&&(e.version=n),e))},ne=(...e)=>{let t=te(e);h.next(t)},re=(...e)=>{queueMicrotask(()=>ne(e))},ie=()=>{Array.from(a).forEach(e=>le(e)?e():e.unsubscribe()),a.clear(),o.destroy(),s.destroy(),l.clear(),d(),h.complete(),y.complete()},ae=()=>{v.next(),l.clear(),d()},oe=()=>{t()||m()||l.undo()},x=()=>{t()||m()||l.redo()},se=e=>{t()||m()||u[e]?.undo()},ce=e=>{t()||m()||u[e]?.redo()},ue=()=>{r&&y.next()};return a.add(b.subscribe(ZM(o,l))).add(g.pipe(qW(IW),QW([Ux.changeOnly,Ux.shared]),tG(t),oG(m)).subscribe(p)).add(g.pipe(tG(t,[Ux.shared]),oG(m,[Ux.shared])).subscribe(o.dispatchSync)).add(o.subscribe(t=>{t.forEach(t=>e.clock.merge(t.version))})).add(o.subscribe(e=>{e.some(KG)&&d()})),Object.freeze({...o,dispatch:re,dispatchSync:ne,destroy:ie,undo:oe,redo:x,history:l,sheetHistories:u,undoSheet:se,redoSheet:ce,resetHistory:ae,change$:ee,flushStreamBuffers:ue,getReadonly:t})}const JG={openColorPicker:`openColorPicker`,closeColorPicker:`closeColorPicker`,openToast:`openToast`,openTableProperties:`openTableProperties`,dragendColumnAll:`dragendColumnAll`,copy:`copy`,paste:`paste`,toggleSearch:`toggleSearch`,openFindReplace:`openFindReplace`,openExportImage:`openExportImage`,openMapColumns:`openMapColumns`,openThemeBuilder:`openThemeBuilder`,setThemeOptions:`setThemeOptions`,openLocalePicker:`openLocalePicker`,setLocaleOption:`setLocaleOption`,mouseTrackerStart:`mouseTrackerStart`,mouseTrackerEnd:`mouseTrackerEnd`,openDiffViewer:`openDiffViewer`,openAutomaticTablePlacement:`openAutomaticTablePlacement`,duplicateDragStart:`duplicateDragStart`,dragSelectStart:`dragSelectStart`};var YG=/* @__PURE__ */ new WeakMap,XG=class{constructor(){RW(this,YG,/* @__PURE__ */ new Set)}on(e){return BW(YG,this).has(e)||BW(YG,this).add(e),()=>{BW(YG,this).delete(e)}}emit(e){BW(YG,this).forEach(t=>{RM(Reflect.get(t,e.type),e)})}clear(){BW(YG,this).clear()}};const ZG=O(JG.openColorPicker);O(JG.closeColorPicker),O(JG.openToast),O(JG.openTableProperties);const QG=O(JG.dragendColumnAll);O(JG.copy),O(JG.paste),O(JG.toggleSearch),O(JG.openFindReplace),O(JG.openExportImage),O(JG.openMapColumns),O(JG.openThemeBuilder),O(JG.setThemeOptions),O(JG.openLocalePicker),O(JG.setLocaleOption),O(JG.mouseTrackerStart),O(JG.mouseTrackerEnd),O(JG.openDiffViewer),O(JG.openAutomaticTablePlacement);const $G=O(JG.duplicateDragStart);O(JG.dragSelectStart);const eK=()=>typeof navigator==`object`?navigator.platform:``,tK=()=>/Mac|iPod|iPhone|iPad/.test(eK()),nK={Shift:`Shift`,Meta:`Meta`,Alt:`Alt`,Control:`Control`};Object.values(nK);const Z={edit:`edit`,stop:`stop`,search:`search`,findReplace:`findReplace`,undo:`undo`,redo:`redo`,addTable:`addTable`,addColumn:`addColumn`,addMemo:`addMemo`,addTableGroup:`addTableGroup`,groupSelectedTables:`groupSelectedTables`,removeTable:`removeTable`,removeColumn:`removeColumn`,removeSelection:`removeSelection`,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(Z),Z.findReplace,Z.search,Z.undo,Z.redo,Z.zoomIn,Z.zoomOut,Z.zoomReset;const rK=()=>({[Z.edit]:[{shortcut:`Enter`}],[Z.stop]:[{shortcut:`Escape`}],[Z.search]:[{shortcut:`$mod+KeyK`,preventDefault:!0,stopPropagation:!0}],[Z.findReplace]:[{shortcut:`$mod+KeyF`,preventDefault:!0,stopPropagation:!0}],[Z.undo]:[{shortcut:`$mod+KeyZ`,preventDefault:!0,stopPropagation:!0}],[Z.redo]:[{shortcut:`$mod+Shift+KeyZ`,preventDefault:!0,stopPropagation:!0}],[Z.addTable]:[{shortcut:`Alt+KeyN`,preventDefault:!0}],[Z.addColumn]:[{shortcut:`Alt+Enter`,preventDefault:!0}],[Z.addMemo]:[{shortcut:`Alt+KeyM`,preventDefault:!0}],[Z.addTableGroup]:[{shortcut:`Alt+KeyG`,preventDefault:!0,stopPropagation:!0}],[Z.groupSelectedTables]:[{shortcut:`KeyT KeyG`,preventDefault:!0}],[Z.removeTable]:[{shortcut:`$mod+Backspace`,preventDefault:!0},{shortcut:`$mod+Delete`,preventDefault:!0}],[Z.removeColumn]:[{shortcut:`Alt+Backspace`,preventDefault:!0},{shortcut:`Alt+Delete`,preventDefault:!0}],[Z.removeSelection]:[{shortcut:`Delete`,preventDefault:!0},{shortcut:`Backspace`,preventDefault:!0}],[Z.primaryKey]:[{shortcut:`Alt+KeyK`,preventDefault:!0}],[Z.selectAllTable]:[{shortcut:`$mod+KeyA`,preventDefault:!0},{shortcut:`$mod+Alt+KeyA`,preventDefault:!0}],[Z.selectAllColumn]:[{shortcut:`Alt+KeyA`,preventDefault:!0}],[Z.relationshipZeroOne]:[{shortcut:`$mod+Alt+Digit1`,preventDefault:!0}],[Z.relationshipZeroN]:[{shortcut:`$mod+Alt+Digit2`,preventDefault:!0}],[Z.relationshipOneOnly]:[{shortcut:`$mod+Alt+Digit3`,preventDefault:!0}],[Z.relationshipOneN]:[{shortcut:`$mod+Alt+Digit4`,preventDefault:!0}],[Z.tableProperties]:[{shortcut:`Alt+Space`,preventDefault:!0}],[Z.focusView]:[{shortcut:`Alt+KeyF`,preventDefault:!0,stopPropagation:!0}],[Z.zoomIn]:[{shortcut:`$mod+Equal`,preventDefault:!0,stopPropagation:!0}],[Z.zoomOut]:[{shortcut:`$mod+Minus`,preventDefault:!0,stopPropagation:!0}],[Z.zoomReset]:[{shortcut:`$mod+Digit0`,preventDefault:!0,stopPropagation:!0}],[Z.handTool]:[{shortcut:`Space`,preventDefault:!0}],[Z.zenMode]:[{shortcut:`Alt+KeyZ`,preventDefault:!0,stopPropagation:!0}]});nK.Shift,nK.Meta,nK.Alt,nK.Control,nK.Shift,nK.Meta,nK.Alt,nK.Control;function iK(e){return tK()?e.metaKey:e.ctrlKey}function aK(e,t){let{devtools:n=!0,...r}=t??{},i=WW(e),a=qG(i,r),o=ko(rK(),{shallow:!0}),s=new Ce,c=new Ce,l=new XG;return Object.freeze({...i,actions:wW,store:a,keyBindingMap:o,shortcut$:s,keydown$:c,emitter:l,lifecycle:{destroyed:!1}})}const oK=va({}),sK=(e,t)=>Wo(e,{...oK,value:t??oK.value});function cK(e){e.lifecycle.destroyed=!0,e.store.dispatchSync(XD()),e.store.destroy(),e.keydown$.complete(),e.shortcut$.complete(),e.emitter.clear()}const lK={code:`en`,label:`English`,english:`English`},uK=[{code:`id-ID`,label:`Bahasa Indonesia`,english:`Indonesian`},{code:`de-DE`,label:`Deutsch`,english:`German`},lK,{code:`es-ES`,label:`Español`,english:`Spanish`},{code:`eu-ES`,label:`Euskara`,english:`Basque`},{code:`fr-FR`,label:`Français`,english:`French`},{code:`it-IT`,label:`Italiano`,english:`Italian`},{code:`nl-NL`,label:`Nederlands`,english:`Dutch`},{code:`pl-PL`,label:`Polski`,english:`Polish`},{code:`pt-PT`,label:`Português`,english:`Portuguese`},{code:`pt-BR`,label:`Português Brasileiro`,english:`Brazilian Portuguese`},{code:`ro-RO`,label:`Română`,english:`Romanian`},{code:`sk-SK`,label:`Slovenčina`,english:`Slovak`},{code:`sl-SI`,label:`Slovenščina`,english:`Slovenian`},{code:`sv-SE`,label:`Svenska`,english:`Swedish`},{code:`tr-TR`,label:`Türkçe`,english:`Turkish`},{code:`ru-RU`,label:`Русский`,english:`Russian`},{code:`uk-UA`,label:`Українська`,english:`Ukrainian`},{code:`he-IL`,label:`עברית`,english:`Hebrew`,rtl:!0},{code:`ar-SA`,label:`العربية`,english:`Arabic`,rtl:!0},{code:`fa-IR`,label:`فارسی`,english:`Persian`,rtl:!0},{code:`ja-JP`,label:`日本語`,english:`Japanese`},{code:`zh-CN`,label:`简体中文`,english:`Simplified Chinese`},{code:`zh-TW`,label:`繁體中文`,english:`Traditional Chinese`},{code:`ko-KR`,label:`한국어`,english:`Korean`}];[...uK.map(e=>e.code)];const dK=new Map(uK.map(e=>[e.code,e]));function fK(e){return dK.get(e)??lK}function pK(e){return fK(e).rtl?`rtl`:`ltr`}const mK=/\{(\w+)\}/g;function hK(e){return`${e}`}function gK(e,t,n=!1){return t?e.replace(mK,(e,r)=>{if(!Object.prototype.hasOwnProperty.call(t,r))return e;let i=String(t[r]);return n?hK(i):i}):e}function _K(e,t){let n=pK(e),r=new Intl.PluralRules(e),i=t;return{locale:e,dir:n,messages:t,t:(e,t)=>{let a=i[e];return gK(w(a)?a:a[r.select(Number(t?.count))]??a.other,t,n===`rtl`)}}}function vK(e){return e instanceof MouseEvent}function yK(e){return vK(e)&&e.button===2}function bK(e){return(e.touches?.length??0)>1}function xK(e){return!vK(e)||e.button===0}const SK=/* @__PURE__ */ new Map([[`table`,`table`],[`memo`,`memo`],[`relationship`,`relationship`],[`table-group`,`tableGroup`],[`table-group-body`,`tableGroup`]]),CK=/* @__PURE__ */ new Map([[`table-group-title`,`title`],[`table-group-body`,`body`],[`table-group-sash`,`sash`]]);function wK(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 TK=(e,t)=>!!(e&&t&&e.x===t.x&&e.y===t.y),EK=/* @__PURE__ */ new WeakMap,DK=`mousedown.sceneHit touchstart.sceneHit contextmenu.sceneHit`;function OK(e){return e.on(DK,t=>{let n=t.evt,r=wK(n),i=EK.get(e),a=n.type===`contextmenu`&&TK(i?.point,r)?i?.hit??null:t.target===e?null:AK(t.target);EK.set(e,{evt:n,hit:a,point:r})}),()=>{e.off(DK),EK.delete(e)}}function kK(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 AK(e){let t=e,n=``,r=`body`;for(;t;){let e=t.getAttr(`kind`);e===`column-row`&&t.id().startsWith(`column-`)&&(n=t.id().slice(7)),r=CK.get(e)??r;let i=SK.get(e);if(i){let a=kK(t,e);return i===`tableGroup`?{kind:i,id:a,part:r}:i===`table`&&n?{kind:i,id:a,columnId:n}:{kind:i,id:a}}t=t.getParent()}return null}const jK={"code.label":`Code`,"code.copy":`Copy`,"code.savedInDocument":`Saved in the document`,"code.saveFile":`Save file`,"code.optionsPanel":`Options panel`,"code.hideOptions":`Hide options`,"code.showOptions":`Show options`,"code.notUsedBy":`Not used by {language}`},MK={"colorPicker.saturationAndBrightness":`Saturation and brightness`,"colorPicker.slider2d":`2D slider`,"colorPicker.areaValue":`Saturation {saturation}%, brightness {brightness}%`,"colorPicker.hue":`Hue`,"colorPicker.degrees":{one:`{count} degrees`,other:`{count} degrees`},"colorPicker.noColor":`No color`,"colorPicker.eyeDropper":`Pick a color from the screen`,"colorPicker.channel.red":`Red, 0 to 255`,"colorPicker.channel.green":`Green, 0 to 255`,"colorPicker.channel.blue":`Blue, 0 to 255`,"colorPicker.presets":`Presets`,"colorPicker.documentColors":`Document colors`,"colorPicker.preset.red":`Red`,"colorPicker.preset.orange":`Orange`,"colorPicker.preset.amber":`Amber`,"colorPicker.preset.yellow":`Yellow`,"colorPicker.preset.lime":`Lime`,"colorPicker.preset.green":`Green`,"colorPicker.preset.teal":`Teal`,"colorPicker.preset.cyan":`Cyan`,"colorPicker.preset.blue":`Blue`,"colorPicker.preset.indigo":`Indigo`,"colorPicker.preset.violet":`Violet`,"colorPicker.preset.purple":`Purple`,"colorPicker.preset.pink":`Pink`,"colorPicker.preset.crimson":`Crimson`,"colorPicker.preset.brown":`Brown`,"colorPicker.preset.gray":`Gray`},NK={"common.close":`Close`,"common.none":`None`,"common.unnamed":`unnamed`,"common.system":`System`,"common.light":`Light`,"common.dark":`Dark`,"common.theme":`Theme`,"common.displayLanguage":`Display Language`,"common.search":`Search`,"common.find":`Find`,"common.newTable":`New Table`,"common.newMemo":`New Memo`,"common.newTableGroup":`New Table Group`,"common.import":`Import`,"common.importAndAdd":`Import and Add`,"common.export":`Export`,"common.image":`Image`,"common.autoLayout":`Auto Layout`,"common.database":`Database`,"common.bracket":`Bracket`,"common.codeLanguage":`Language`,"common.tableNameCase":`Table Name Case`,"common.columnNameCase":`Column Name Case`,"common.tableProperties":`Table Properties`,"common.primaryKey":`Primary Key`,"common.relationship":`Relationship`,"common.color":`Color`,"common.table":`Table`,"common.shortcuts":`Shortcuts`,"common.apply":`Apply`,"common.cancel":`Cancel`,"common.nameView":`Name View`,"common.physicalNames":`Physical Names`,"common.logicalNames":`Logical Names`,"common.bothNames":`Both Names`,"common.derivePhysicalName":`Derive Physical Name Again`,"common.derivePhysicalNames":`Derive Physical Names Again`,"common.tab.erd":`Entity Relationship Diagram`,"common.tab.visualization":`Visualization`,"common.tab.schemaSql":`Schema SQL`,"common.tab.codeGenerator":`Code Generator`,"common.tab.dictionary":`Dictionary`,"common.tab.settings":`Settings`,"common.relationshipType.zeroOne":`Zero One`,"common.relationshipType.zeroN":`Zero N`,"common.relationshipType.oneOnly":`One Only`,"common.relationshipType.oneN":`One N`,"common.placement.force":`Force`,"common.placement.flow":`Flow`,"common.placement.treeVertical":`Tree - vertical`,"common.placement.treeHorizontal":`Tree - horizontal`,"common.column.name":`Name`,"common.column.logicalName":`Logical Name`,"common.column.dataType":`DataType`,"common.column.domain":`Domain`,"common.column.notNull":`Not Null`,"common.column.unique":`Unique`,"common.column.autoIncrement":`Auto Increment`,"common.column.default":`Default`,"common.column.comment":`Comment`,"common.placeholder.table":`table`,"common.placeholder.column":`column`,"common.placeholder.logicalName":`logical`,"common.placeholder.comment":`comment`,"common.placeholder.default":`default`,"common.placeholder.dataType":`dataType`,"common.placeholder.domain":`domain`,"common.toast.noTablesToPlace":`No tables to place`,"common.toast.couldNotPlaceTables":`Could not place tables`,"common.toast.copied":`Copied!`,"common.toast.copyFailed":`Couldn't copy to the clipboard`},PK={"contextMenu.delete":`Delete`,"contextMenu.deleteSelected":`Delete selected`,"contextMenu.deleteColumn":`Delete column`,"contextMenu.deleteColumns":`Delete columns`,"contextMenu.removeColor":`Remove color`,"contextMenu.primaryKeyOnSelectedColumns":`Primary Key on selected columns`,"contextMenu.focusOnThisTable":`Focus on this table`,"contextMenu.focusOnSelectedTables":`Focus on selected tables`,"contextMenu.groupSelectedTables":`Group selected tables`,"contextMenu.removeFromGroup":`Remove from group`,"contextMenu.selectTables":`Select tables`,"contextMenu.rename":`Rename`,"contextMenu.relationshipType":`Relationship Type`,"contextMenu.onDelete":`On Delete`,"contextMenu.onUpdate":`On Update`,"contextMenu.notSet":`Not set`,"contextMenu.notInDatabase":`not in {database}`,"contextMenu.viewOption":`View Option`,"contextMenu.diffViewer":`Diff Viewer`,"contextMenu.show.tableComment":`Table Comment`,"contextMenu.show.columnComment":`Column Comment`,"contextMenu.show.columnDomain":`Domain`,"contextMenu.show.alternateKey":`Alternate Key`,"contextMenu.show.referentialActions":`Referential Actions`,"contextMenu.show.tableGroups":`Table Groups`,"contextMenu.show.memos":`Memos`},FK={"dictionary.sheet.words":`Words`,"dictionary.sheet.terms":`Terms`,"dictionary.sheet.domains":`Domains`,"dictionary.sheet.checks":`Checks`,"dictionary.addRow":`Add Row`,"dictionary.deleteRows":`Delete Rows`,"dictionary.import":`Import {format}`,"dictionary.export":`Export {format}`,"dictionary.clearSearch":`Clear search`,"dictionary.menu.insertAbove":{one:`Insert {count} row above`,other:`Insert {count} rows above`},"dictionary.menu.insertBelow":{one:`Insert {count} row below`,other:`Insert {count} rows below`},"dictionary.menu.deleteRows":{one:`Delete {count} row`,other:`Delete {count} rows`},"dictionary.menu.sortAscending":`Sort by {column}, ascending`,"dictionary.menu.sortDescending":`Sort by {column}, descending`,"dictionary.rowCount":{one:`{count} row`,other:`{count} rows`},"dictionary.selectedCount":{one:`{count} selected`,other:`{count} selected`},"dictionary.empty":`Import a {format} file or add a row`,"dictionary.field.word":`Word`,"dictionary.field.abbreviation":`Abbreviation`,"dictionary.field.englishName":`English Name`,"dictionary.field.description":`Description`,"dictionary.field.synonyms":`Synonyms`,"dictionary.field.forbiddenWords":`Forbidden Words`,"dictionary.field.term":`Term`,"dictionary.field.physicalName":`Physical Name`,"dictionary.field.domain":`Domain`,"dictionary.field.category":`Category`,"dictionary.field.dataType":`Data Type`,"dictionary.field.type":`Type`,"dictionary.field.target":`Target`,"dictionary.field.detail":`Detail`,"dictionary.check.duplicateName":`Duplicate name`,"dictionary.check.unknownDomain":`Unknown domain`,"dictionary.check.unregisteredWord":`Unregistered word`,"dictionary.check.forbiddenWord":`Forbidden word`,"dictionary.check.synonymWord":`Synonym`,"dictionary.check.physicalNameMismatch":`Physical name mismatch`,"dictionary.check.domainTypeMismatch":`Domain type mismatch`,"dictionary.toast.imported":`{added} added · {updated} updated · {skipped} skipped`,"dictionary.toast.unknownDomains":{one:`{count} unknown domain: {names}`,other:`{count} unknown domains: {names}`},"dictionary.toast.unknownFormat":`Couldn't read this file as words, terms or domains`,"dictionary.toast.duplicateNames":{one:`Nothing saved: {count} row shares a name with another row ({names})`,other:`Nothing saved: {count} rows share a name with another row ({names})`},"dictionary.toast.unknownDomainNames":{one:`Nothing saved: {count} row names an unknown domain ({names})`,other:`Nothing saved: {count} rows name an unknown domain ({names})`},"dictionary.toast.rowRemoved":`Nothing saved: the row was removed`,"dictionary.toast.multiRangeCopy":`Nothing copied: the ranges share no rows or columns`,"dictionary.toast.pasteBeyondColumns":`Columns past the last one weren't pasted`,"dictionary.toast.tooManyCells":`Nothing done: the selection covers too many cells`},IK={"explorer.title":`Explorer`,"explorer.collapseAll":`Collapse All`,"explorer.toggle":`Toggle Explorer`,"explorer.toggleReplace":`Toggle Replace`,"explorer.moreScopes":`Search In`,"explorer.tooNarrow":`Widen the window to show the Explorer`,"explorer.folder.tables":`Tables`,"explorer.folder.tableGroups":`Table Groups`,"explorer.folder.memos":`Memos`,"explorer.folder.columns":`Columns`,"explorer.folder.indexes":`Indexes`,"explorer.folder.foreignKeys":`Foreign Keys`,"explorer.diff.filter":`Filter by name`,"explorer.diff.noChanges":`No changes`,"explorer.diff.change":`{field}: {before} → {after}`,"explorer.status.added":`Added`,"explorer.status.modified":`Modified`,"explorer.status.deleted":`Deleted`,"explorer.status.renamed":`Renamed`,"explorer.status.inside":`Changed inside`,"explorer.diff.field.name":`Name`,"explorer.diff.field.comment":`Comment`,"explorer.diff.field.dataType":`Data type`,"explorer.diff.field.default":`Default`,"explorer.diff.field.order":`Order`,"explorer.diff.field.tableGroup":`Table group`,"explorer.diff.field.position":`Position`,"explorer.diff.field.size":`Size`,"explorer.diff.field.color":`Color`,"explorer.diff.field.members":`Tables`,"explorer.diff.field.columns":`Columns`,"explorer.diff.field.relationshipType":`Relationship type`,"explorer.diff.field.value":`Content`},LK={"exportImage.title":`Export image`,"exportImage.preview":`Preview`,"exportImage.loadingPreview":`Loading preview`,"exportImage.background":`Background`,"exportImage.darkMode":`Dark mode`,"exportImage.scale":`Scale`,"exportImage.copyToClipboard":`Copy to clipboard`,"exportImage.reducedFrom":`Reduced from {askedWidth} × {askedHeight} px, past what a browser canvas can hold`,"exportImage.reducedFromTo":`Reduced from {askedWidth} × {askedHeight} px to {width} × {height} px, past what a browser canvas can hold`,"exportImage.exporting":`Exporting {format}`,"exportImage.exportFailed":`Couldn't export the {format}`,"exportImage.seeConsole":`See the browser console for the error`,"exportImage.exportedReduced":`Exported at a reduced resolution`,"exportImage.copying":`Copying image`,"exportImage.copyFailed":`Couldn't copy the image`,"exportImage.saveAsPng":`Save it as a PNG instead`,"exportImage.copiedReduced":`Copied at a reduced resolution`,"exportImage.copied":`Copied the image to the clipboard`},RK={"feedback.importOnly":`Only {format} files can be imported`,"feedback.placingTables":`Placing tables`,"feedback.placingProgress":`Placing tables {percent}%`,"feedback.diffViewer":`Diff Viewer`},zK={"findReplace.matchCase":`Match Case`,"findReplace.wholeWord":`Match Whole Word`,"findReplace.regex":`Use Regular Expression`,"findReplace.preserveCase":`Preserve Case`,"findReplace.replace":`Replace`,"findReplace.replaceAll":`Replace All`,"findReplace.previousMatch":`Previous Match`,"findReplace.nextMatch":`Next Match`,"findReplace.scope.tableName":`Table names`,"findReplace.scope.tableComment":`Table comments`,"findReplace.scope.columnName":`Column names`,"findReplace.scope.columnComment":`Column comments`,"findReplace.scope.memo":`Memos`,"findReplace.scope.indexName":`Index names`,"findReplace.scope.tableGroupName":`Table group names`,"findReplace.scope.logicalName":`Logical names`,"findReplace.invalidRegex":`Invalid regular expression`,"findReplace.noResults":`No results`,"findReplace.matchCount":{one:`{count} match`,other:`{count} matches`},"findReplace.position":`{current} of {total}`,"findReplace.replaced":{one:`Replaced {count} match`,other:`Replaced {count} matches`},"findReplace.noChanges":`No changes`,"findReplace.noMoreMatches":`No more matches`,"findReplace.field.tableName":`Table`,"findReplace.field.tableComment":`Table comment`,"findReplace.field.columnName":`Column`,"findReplace.field.columnComment":`Column comment`,"findReplace.field.memo":`Memo`,"findReplace.field.indexName":`Index`,"findReplace.field.tableGroupName":`Table group`,"findReplace.field.logicalName":`Logical name`,"findReplace.matchLocation":`{location} · {kind}`},BK={"floatingToolbar.hand":`Hand`,"floatingToolbar.select":`Select`,"floatingToolbar.zoomOut":`Zoom out`,"floatingToolbar.resetZoom":`Reset zoom`,"floatingToolbar.zoomIn":`Zoom in`,"floatingToolbar.zenMode":`Zen Mode`,"floatingToolbar.goToContent":`Go to content`,"floatingToolbar.goToNearestContent":`go to the nearest content`},VK={"mapColumns.title":`Map Columns`,"mapColumns.subtitle":`{parent} → {child} · {relationshipType}`,"mapColumns.mapToExisting":`Map to existing columns`,"mapColumns.createNew":`Create new columns`,"mapColumns.noPrimaryKeyToCopy":`{table} has no primary key to copy`,"mapColumns.references":`References`,"mapColumns.unique":`Unique: {column}`,"mapColumns.currentColumns":`Current columns (not a key)`,"mapColumns.referencedColumn":`Referenced column`,"mapColumns.foreignKeyColumn":`Foreign key column`,"mapColumns.pickColumn":`Pick a column`,"mapColumns.pickEveryColumn":`Pick a foreign key column for every referenced column`,"mapColumns.newColumn":`New column: {name}`,"mapColumns.columnOption":`{name} ({dataType})`,"mapColumns.columnOptionInUse":`{name} ({dataType}) · in use`,"mapColumns.removed":`(removed)`,"mapColumns.invalid":`(invalid)`,"mapColumns.becomesType":`{column} becomes {dataType}`,"mapColumns.typesDiffer":`Types differ: {parentType} and {childType}`,"mapColumns.selfOnly":`At least one column must reference a different column`,"mapColumns.duplicate":`These columns are already linked by another relationship`,"mapColumns.noKey":`{table} has no key to reference`,"mapColumns.notAKey":`The referenced columns are not a key of {table}`,"mapColumns.fixMapping":`Pick a key in References to fix this mapping`,"mapColumns.addKeyToFix":`Add a primary key or unique column to {table} to fix this mapping`,"mapColumns.changedRemotely":`This relationship changed while the dialog was open`,"mapColumns.map":`Map`,"mapColumns.save":`Save`,"mapColumns.closedTableRemoved":`Map Columns closed: {table} was removed`,"mapColumns.closedRelationshipRemoved":`Map Columns closed: the relationship was removed`,"mapColumns.failed":`Couldn't map columns: the diagram changed`},HK={"palette.tab":`Tab`,"palette.noCommandsMatch":`No commands match`,"palette.searchTables":`Search tables for "{keyword}"`,"palette.searchColumns":`Search columns for "{keyword}"`,"palette.searchText":`Search comments & memos for "{keyword}"`,"palette.scope.tables":`Tables`,"palette.scope.columns":`Columns`,"palette.scope.text":`Comments & memos`,"palette.scope.help":`Help`,"palette.scopeDescription.tables":`Go to a table by its name`,"palette.scopeDescription.columns":`Go to a column by its name, or by table.column`,"palette.scopeDescription.text":`Search table comments, column comments and memos`,"palette.scopeDescription.help":`List the prefixes that narrow the search`,"palette.keywords.graphql":`graphql sdl gql schema`,"palette.keywords.dbml":`dbml dbdiagram dbdocs schema`,"palette.keywords.aml":`aml azimutt markup language schema`,"palette.keywords.image":`image png svg vector picture clipboard`,"palette.keywords.explorer":`find replace rename tree outline objects`,"palette.schemaSqlStatements":`Schema SQL: Statements`,"palette.schemaSqlHeader":`Schema SQL: Header`,"palette.schemaSqlOptionsPanel":`Schema SQL: Options panel`,"palette.codeGeneratorOptionsPanel":`Code Generator: Options panel`,"palette.groupSelectedTables":`Group Selected Tables`,"palette.keywords.deriveColumn":`column`,"palette.keywords.deriveTable":`table`,"palette.keywords.deriveSelection":`selected tables`,"palette.keywords.deriveDocument":`whole document`,"palette.keywords.schemaSqlStatements":`create if not exists drop replace`,"palette.keywords.schemaSqlHeader":`use database search_path`,"palette.keywords.schemaSqlOptionsPanel":`show hide before after scripts`,"palette.keywords.codeGeneratorOptionsPanel":`show hide database case save file`},UK={"schemaSql.thisWindowOnly":`This window only`,"schemaSql.logicalNameAsComment":`Write logical names into empty comments`,"schemaSql.statements":`Statements`,"schemaSql.header":`Header`,"schemaSql.tables":`Tables`,"schemaSql.allTables":`All`,"schemaSql.noGroup":`No group`,"schemaSql.noTablesChosen":`No tables chosen. Check some under Tables.`,"schemaSql.notInDatabase":`Not in {database}`,"schemaSql.dropWarning":`Drops {tables} before creating them. Their rows are lost.`,"schemaSql.replaceWarning":`Replaces {tables}. Their rows are lost.`,"schemaSql.moreTables":{one:`{count} more table`,other:`{count} more tables`},"schemaSql.headerInvalidName":`Database name "{name}" is not a valid identifier.`,"schemaSql.oracleLongNames":`Oracle 12.2+ for names over 30 bytes: {names}`,"schemaSql.scriptsCaption":`Saved in the document · written as is for every database`,"schemaSql.beforeTables":`Before tables`,"schemaSql.afterTables":`After tables`,"schemaSql.afterPlaceholder":`-- GRANT, CREATE VIEW, seed data …`,"schemaSql.mssqlGoHint":`MSSQL gets GO after a script that does not end with GO.`},WK={"settings.preferences":`Preferences`,"settings.relationshipDataTypeSync":`Relationship DataType Sync`,"settings.maxCommentWidth":`Maximum comment width`,"settings.recalculateTableWidth":`Recalculation table width`,"settings.sync":`Sync`,"settings.toast.tableWidthRecalculated":`Recalculated table width`,"settings.lockHeading":`Lock`,"settings.lockSetting":`Lock {name}`,"settings.unlockSetting":`Unlock {name}`,"settings.lockedValue":`Locked value`,"settings.currentValue":`Current value`,"settings.lockRow.viewport":`Viewport`,"settings.lockRow.canvasType":`Canvas Type`,"settings.lockRow.bracketType":`Bracket Type`,"settings.lockRow.nameViewMode":`Name View`,"settings.columnOrder":`Column Order`},GK={"shortcuts.command":`Command`,"shortcuts.keybinding":`Keybinding`,"shortcuts.name.edit":`Editing`,"shortcuts.name.stop":`Stop`,"shortcuts.name.search":`Search`,"shortcuts.name.findReplace":`Toggle Explorer`,"shortcuts.name.undo":`Undo`,"shortcuts.name.redo":`Redo`,"shortcuts.name.addTable":`Add Table`,"shortcuts.name.addColumn":`Add Column`,"shortcuts.name.addMemo":`Add Memo`,"shortcuts.name.addTableGroup":`Add Table Group`,"shortcuts.name.groupSelectedTables":`Group Selected Tables`,"shortcuts.name.removeTable":`Remove Table, Memo`,"shortcuts.name.removeColumn":`Remove Column`,"shortcuts.name.removeSelection":`Delete Selection`,"shortcuts.name.primaryKey":`Primary Key`,"shortcuts.name.selectAllTable":`Select All Table, Memo`,"shortcuts.name.selectAllColumn":`Select All Column`,"shortcuts.name.relationshipZeroOne":`Relationship Zero One`,"shortcuts.name.relationshipZeroN":`Relationship Zero N`,"shortcuts.name.relationshipOneOnly":`Relationship One Only`,"shortcuts.name.relationshipOneN":`Relationship One N`,"shortcuts.name.tableProperties":`Table Properties`,"shortcuts.name.focusView":`Focus on this table`,"shortcuts.name.zoomIn":`Zoom In`,"shortcuts.name.zoomOut":`Zoom Out`,"shortcuts.name.zoomReset":`Zoom Reset`,"shortcuts.name.handTool":`Hand Tool`,"shortcuts.name.zenMode":`Zen Mode`},KK={"tableProperties.readOnly":`Read only`,"tableProperties.indexes":`Indexes`,"tableProperties.keys":`Keys`,"tableProperties.columns":`Columns`,"tableProperties.indexOrder":`Index order`,"tableProperties.dragToReorder":`Drag to reorder`,"tableProperties.addIndex":`Add Index`,"tableProperties.noIndexes":`No indexes`,"tableProperties.noIndexesYet":`No indexes yet`,"tableProperties.noColumns":`This table has no columns`,"tableProperties.indexHasNoColumns":`This index has no columns`,"tableProperties.checkColumnsToAdd":`Check columns above to add them`,"tableProperties.selectedCount":{one:`{count} of {total} selected`,other:`{count} of {total} selected`},"tableProperties.readOnlyByPrimaryKey":`Read only: set by the {flag} flag on its columns`,"tableProperties.readOnlyByUnique":`Read only: set by the {flag} flag on its column`,"tableProperties.selectKeyOrIndex":`Select a key or an index`,"tableProperties.selectIndexToSee":`Select an index to see its columns`,"tableProperties.selectIndexToEdit":`Select an index to edit its columns`,"tableProperties.noKeysOrIndexes":`This table has no keys or indexes`,"tableProperties.addIndexToChoose":`Add an index to choose its columns`,"tableProperties.uniqueColumn":`Unique Column`,"tableProperties.readOnlyKey":`Read Only`,"tableProperties.indexName":`name`,"tableProperties.alternateKeyN":`Alternate Key {n}`,"tableProperties.remove":`Remove`,"tableProperties.ascending":`Ascending`,"tableProperties.descending":`Descending`},qK={"themeBuilder.accentColor":`Accent color`,"themeBuilder.grayColor":`Gray color`,"themeBuilder.appearance":`Appearance`},JK={"toolbar.databaseName":`database name`,"toolbar.undo":`Undo`,"toolbar.redo":`Redo`,"toolbar.timeTravel":`Time Travel`},YK={"visualization.graph":`Graph`,"visualization.fit":`Fit`,"visualization.tidyUp":`Tidy Up`,"visualization.showAll":`Show all`,"visualization.previousTable":`Previous table`,"visualization.nextTable":`Next table`,"visualization.rowDisplay":`Row display: {mode}`,"visualization.showMode.nameOnly":`Name only`,"visualization.showMode.keysOnly":`Keys only`,"visualization.showMode.allFields":`All fields`},XK={"welcome.heading":`Right-click the canvas for every action.`,"welcome.menu":`Get started`,"welcome.commandPalette":`Command Palette`,"welcome.back":`Back`,"welcome.hintPalette":`Search commands and tables`,"welcome.hintThemeAndLanguage":`Pick a theme and a language`,"welcome.hintTheme":`Pick a theme`,"welcome.hintLanguage":`Pick a language`,"welcome.hintFloatingToolbar":`Pan, zoom and draw relationships`},ZK=va(_K(`en`,{...NK,...PK,...BK,...YK,...jK,...UK,...zK,...KK,...MK,...HK,...WK,...GK,...LK,...RK,...JK,...qK,...XK,...VK,...IK,...FK})),QK=e=>Wo(e,ZK),$K=va({}),eq=e=>Wo(e,$K);function tq({app:e,container:t,scene:n,width:i,height:a,theme:o,i18n:s}){let c=new r({container:t,width:i,height:a}),l={host:c.container(),parentElement:null},u=Go(l,oK,e),d=o?Go(l,$K,o):null,f=s?Go(l,ZK,s):null,p=OK(c);return Tp(c,n),{stage:c,destroy:()=>{p(),Tp(c,null),f?.destroy(),d?.destroy(),u.destroy(),c.destroy()}}}const nq=e=>new Promise(t=>setTimeout(t,e)),rq=32767;function iq(e,t,n){let r=Math.max(t,n),i=t*n;return r<=0||i<=0?e:Math.min(e,rq/r,16384/Math.sqrt(i))}function aq({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 oq(e){let{settings:{show:t},doc:{relationshipIds:n},collections:r}=e,i=YC(e);if(G(t,N.relationship)){let e=M(r).collection(`relationshipEntities`).selectByIds(n);for(let t of e){let e=ox(t);i=i?tC(i,e):e}}return aq(i??{x:0,y:0,width:0,height:0},80)}function sq({width:e,height:t}){let n=Math.max(e,t),r=e*t;return n<=0||r<=0?1:Math.min(1,rq/n,Math.sqrt(268435456/r))}function cq(e,t){return{width:Math.max(e.width*t,1),height:Math.max(e.height*t,1)}}function lq(e,t){let n=sq({x:0,y:0,...e}),r=cq(e,n),i=iq(t,r.width,r.height),a=1*t;return{width:Math.floor(r.width*i),height:Math.floor(r.height*i),askedWidth:Math.floor(e.width*a),askedHeight:Math.floor(e.height*a),reduced:n*i<a}}const uq={"arrow-down":Xe,"arrow-left":Ze,"arrow-right":Qe,"arrow-up":$e,atom:et,"book-type":tt,braces:nt,brackets:rt,"case-sensitive":it,"case-upper":at,check:ot,"chevron-down":st,"chevron-right":ct,"chevrons-down-up":lt,code:ut,contrast:dt,copy:ft,database:pt,download:mt,ellipsis:ht,"external-link":gt,eye:_t,"file-diff":vt,"file-image":yt,"file-input":bt,"file-output":xt,folder:St,"folder-open":Ct,fullscreen:wt,"funnel-x":Tt,"grip-vertical":Et,group:Dt,hand:Ot,keyboard:At,"key-round":kt,languages:jt,link:Mt,list:Nt,"list-plus":Pt,"list-tree":Ft,"list-x":It,"loader-circle":Lt,lock:Rt,"lock-open":zt,logs:Bt,maximize:Vt,"message-square":Ht,minimize:Ut,minus:Wt,monitor:Gt,"moon-star":Kt,"mouse-pointer-2":qt,network:Jt,palette:Yt,"panel-right":Xt,"panel-right-close":Zt,"panel-right-open":Qt,pencil:$t,pipette:en,plus:tn,"redo-2":nn,"refresh-cw":rn,regex:an,replace:on,"replace-all":sn,"rotate-ccw-clock":cn,search:ln,settings:un,"share-2":dn,spline:fn,"sticky-note":pn,sun:mn,"table-2":hn,"table-properties":gn,"triangle-alert":_n,"undo-2":vn,ungroup:yn,upload:bn,"wand-sparkles":xn,waypoints:Sn,"whole-word":Cn,workflow:wn,x:Tn},dq={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`}]]},fq={};pq();function pq(){for(let e of Object.keys(uq))fq[e]={name:e,node:uq[e]};for(let e of Object.keys(dq))fq[e]={name:e,node:dq[e]}}function mq(e){return fq[e]}const hq=`-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', 'Open Sans', system-ui, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji'`,gq=`'Menlo', 'Consolas', 'Bitstream Vera Sans Mono', monospace, 'Apple Color Emoji', 'Segoe UI Emoji'`;zf.global`
|
|
29
30
|
:host {
|
|
30
|
-
--text-font-family: ${
|
|
31
|
-
--code-font-family: ${
|
|
31
|
+
--text-font-family: ${hq};
|
|
32
|
+
--code-font-family: ${gq};
|
|
32
33
|
}
|
|
33
|
-
`;const
|
|
34
|
+
`;const _q=/* @__PURE__ */ new WeakMap;function vq(e,t){let n=_q.get(e);n?n.requested=t:e.style.cursor=t}function yq(e,t){let n={requested:_q.get(e)?.requested??e.style.cursor};return _q.set(e,n),e.style.cursor=t,()=>{_q.get(e)===n&&(_q.delete(e),e.style.cursor=n.requested)}}const bq=e=>t=>{xK(t.evt)&&e(t)},xq=hq,Sq=gq,Cq=e=>`normal normal 12px ${e}`;Cq(xq);const wq={ascent:0,descent:0},Tq=/* @__PURE__ */ new Map;function Eq(e=xq){let t=Tq.get(e);if(t)return t;if(typeof document>`u`)return wq;let n=document.createElement(`canvas`).getContext(`2d`);if(!n)return wq;n.font=Cq(e);let r=n.measureText(`M`),i=r.fontBoundingBoxAscent??r.actualBoundingBoxAscent,a=r.fontBoundingBoxDescent??r.actualBoundingBoxDescent;if(!Number.isFinite(i)||!Number.isFinite(a))return wq;let o={ascent:i,descent:a};return Tq.set(e,o),o}const Dq=1.5;function Oq(e){return{color:e,blur:20,offsetX:0,offsetY:2,opacity:.4}}const kq=Number(`0 0 24 24`.split(` `)[2]),Aq=`transparent`,jq=Aq,Mq=/* @__PURE__ */ new Set([Aq,`none`,``]);function Nq(e){let t=(e??``).trim();return Mq.has(t)?null:{color:t,blur:10,offsetX:0,offsetY:2,opacity:1}}const Pq=`pointer`,Fq=e=>e.target?.getStage()?.container();function Iq(e,t){let n=Fq(e);n&&vq(n,t)}function Lq(){let e=null,t=``;return{set(n,r){e=Fq(n)??e,t=r,e&&vq(e,r)},release(){e&&t!==``&&vq(e,``),t=``}}}function Rq(e,t){let n=Fq(e);return!n||!vK(e.evt)?he:yq(n,t)}const zq=({name:e,stroke:t,width:n,height:r,cornerRadius:i})=>t?k`<k-rect name=${e} x=${-1} y=${-1} width=${n+2} height=${r+2} cornerRadius=${i} stroke=${t} strokeWidth=${2} listening=${!1} />`:null;zf`
|
|
34
35
|
position: absolute;
|
|
35
36
|
|
|
36
37
|
&.vertical {
|
|
@@ -49,8 +50,8 @@ import*as e from"comlink";import{CHARSET as t,DECLARATION as n,IMPORT as r,LAYER
|
|
|
49
50
|
width: ${5}px;
|
|
50
51
|
height: ${5}px;
|
|
51
52
|
}
|
|
52
|
-
`;const
|
|
53
|
-
`),document.body.append(e);let t=e.getBoundingClientRect().height;return e.remove(),
|
|
54
|
-
`)}function
|
|
55
|
-
`&&(r+=1),n.push({text:i,start:t})}return n}function LU(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-PU(i));if(e>r)break;n=i.length,r=e}return n}function RU(e,t,n,r){let i=FU(e),a=IU(i,t);if(!a.length)return 0;let o=Math.max(0,Math.floor(r/DU()));if(o>=a.length)return i.length;let s=a[o];return s.start+LU(s,n)}function zU(e){let t=jU(e.value,e.ui.width).length;return Math.max(0,t*DU()-e.ui.height)}function BU(e,t){return Math.min(Math.max(0,t),zU(e))}function VU(e,t){return BU(t,e.memoScrollTopMap[t.id]??0)}function HU(e,t,n,r){if(!AV(t)||!t.altKey||t.button!==0)return!1;let{store:i,emitter:a}=e;return i.state.editor.selectedMap[n]||i.dispatchSync(r===dg.memo?gk(n,!1):Hk(n,!1)),t.preventDefault(),a.emit(dV()),!0}const UU=no({active:{},travelled:{}}),WU=/* @__PURE__ */ new Map;function GU(e,t=`document`){let n=xb(e,t);WU.set(n,t===`document`&&$y(e)?Ky(e):/* @__PURE__ */ new Map),UU.active[n]=!0,Cb(e,t)}function KU(e,t=`document`){let n=xb(e,t);Reflect.deleteProperty(UU.active,n),Reflect.deleteProperty(UU.travelled,n),WU.delete(n),wb(e,t)}function qU(e,t=`document`){return UU.active[xb(e,t)]===!0}function JU(e,t=`document`){let n=xb(e,t);UU.active[n]&&(UU.travelled[n]=!0)}function YU(e,t=`document`){let n=qU(e,t),r=WU.get(xb(e,t));return n&&r?r:null}function XU(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 ZU=(e,t,n)=>e===dg.memo?gk(t,n):e===dg.tableGroup?fA(t,n):Hk(t,n);function QU(e,t){let n=yV(e),r=(e,t)=>({event:r,movementX:i,movementY:a})=>{r.type===`mousemove`&&r.preventDefault();let{store:o}=n.value;o.dispatch(ZR(i,a,e,t))};return{onMoveStart:e=>{if(!e?.target||MV(e.evt))return;let{store:i}=n.value,a=t.entityId(),o=t.source.value,s=NV(e.evt),c=s&&(t.canMove?.()??!0)&&!XU(e.target,t.blockedKinds(o));if(c&&t.selectType!==dg.tableGroup&&HU(n.value,e.evt,a,t.selectType))return;let l=s&&gV(e.evt)||!!i.state.editor.selectedMap[a];if(i.dispatch(ZU(t.selectType,a,l)),!c)return;let u=r(o,{}),d=!1,f=!1,p=0,m=0,h=0,g=0,_=e=>{h+=e.movementX,g+=e.movementY,!f&&Math.abs(h)+Math.abs(g)>=4&&(f=!0,JU(i.state,o)),u(e)},v=()=>{d&&(f&&o===`document`&&i.dispatch(dA(YU(i.state,o))),KU(i.state,o))},y=()=>{d=!0,GU(i.state,o)};XU(e.target,t.clickKinds?.(o)??[])||y(),hU.subscribe(e=>{if(d)return _(e);e.event.type===`mousemove`&&e.event.preventDefault(),p+=e.movementX,m+=e.movementY,!(Math.abs(p)+Math.abs(m)<4)&&(y(),_({...e,movementX:p,movementY:m}))}).add(v)}}}const $U=[`memo-header-color`,`memo-textarea`,`icon`,`sash`];function eW(e,t,n){return QU(e,{entityId:()=>t.memo.id,selectType:dg.memo,blockedKinds:()=>$U,source:n})}function tW(e=`document`){return e===`document`?3:9}function nW(e=`document`){return e===`document`?2:0}function rW(e=`document`){return e===`document`?lW():16}function iW(e=`document`){return e===`document`?2:8}function aW(e=`document`,t){return e===`document`?lW(t):16}function oW(){return Zv(`document`)-iW(`document`)*2-RH}function sW(e,t,n){return t?e.inputActive:n===!1?e.placeholder:e.focus}function cW(e){let{ascent:t,descent:n}=LH(e);return Math.round(18.5/2+(t-n)/2)}function lW(e){let{ascent:t,descent:n}=LH(e);return(cW(e)-(t-n)/2)*2}function uW(e=`document`){return e===`document`?29:31}function dW(e){let t=e[e.length-1];return t?t.x+t.width+8:uW()}function fW(){let{ascent:e,descent:t}=LH(NH);return(cW()-(e-t)/2)*2}function pW(e,t){let{maxWidthComment:n}=e.settings;return n===-1||n>=t.ui.widthComment?t.ui.widthComment:n}function mW(e,t,n=`document`){let r=n!==`document`,i=[{focusType:H.tableName,x:20,width:r?Jv(t.ui.widthName):t.ui.widthName}];return!r&&U(e.settings.show,P.tableComment)&&i.push({focusType:H.tableComment,x:20+t.ui.widthName+8,width:pW(e,t)}),i}const hW=[{columnType:F.columnName,focusType:H.columnName,show:null,width:e=>e.name},{columnType:F.columnDefault,focusType:H.columnDefault,show:P.columnDefault,width:e=>e.default},{columnType:F.columnComment,focusType:H.columnComment,show:P.columnComment,width:e=>e.comment},{columnType:F.columnDataType,focusType:H.columnDataType,show:P.columnDataType,width:e=>e.dataType},{columnType:F.columnNotNull,focusType:H.columnNotNull,show:P.columnNotNull,width:()=>35},{columnType:F.columnUnique,focusType:H.columnUnique,show:P.columnUnique,width:()=>22},{columnType:F.columnAutoIncrement,focusType:H.columnAutoIncrement,show:P.columnAutoIncrement,width:()=>15}],gW=[F.columnName,F.columnDataType];function _W(e,t,n=`document`){let{settings:r}=e,i=[],a=uW(n),o=n===`document`?r.columnOrder:gW;for(let e of o){let o=hW.find(t=>t.columnType===e);if(!o||n===`document`&&o.show!==null&&!U(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 vW(e,t,n,r,i,a){e.beginPath(),e.rect(n,r,i,a),e.closePath(),e.fillShape(t)}function yW(e){return(t,n)=>{vW(t,n,0,-iW(e),n.width()+8,Zv(e))}}const bW={document:yW(`document`),flow:yW(`flow`)};function xW(e){let t=0-nW(e);return(e,n)=>{vW(e,n,0,t,n.width()+8,24)}}const SW={document:xW(`document`),flow:xW(`flow`)},CW=(e,t)=>{vW(e,t,-t.x(),-t.y(),BH,BH)},wW=([e,t],n,r)=>e===`rect`?A`<k-rect x=${Number(t.x??0)} y=${Number(t.y??0)} width=${Number(t.width)} height=${Number(t.height)} cornerRadius=${Number(t.rx??0)} stroke=${n} strokeWidth=${2} lineJoin="round" listening=${r} hitFunc=${r?CW:void 0} />`:e===`circle`?A`<k-circle x=${Number(t.cx)} y=${Number(t.cy)} radius=${Number(t.r)} fill=${n} stroke=${n} strokeWidth=${2} listening=${r} hitFunc=${r?CW:void 0} />`:A`<k-path data=${String(t.d)} stroke=${n} strokeWidth=${2} lineCap="round" lineJoin="round" listening=${r} hitFunc=${r?CW:void 0} />`;function TW({icon:e,name:t,kind:n,size:r,color:i,x:a,y:o,click:s,mouseenter:c,mouseleave:l}){let u=TH(e);if(!u)return null;let d=r/BH;return A`<k-group name=${t} kind=${n} x=${a} y=${o} scaleX=${d} scaleY=${d} @click=${s&&jH(s)} @mouseenter=${c} @mouseleave=${l}>${u.node.map((e,t)=>wW(e,i,t===0))}</k-group>`}function EW(){let e=/* @__PURE__ */ new Set;return Ia(()=>{Array.from(e).forEach(e=>ce(e)?e():e.unsubscribe()),e.clear()}),{addUnsubscribe:(...t)=>{t.forEach(t=>e.add(t))}}}const DW={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`,tableGroupHeaderBackground:`gray-7`,tableGroupBackground:`grayA-4`,tableGroupBorder:`gray-7`,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`,toastSuccess:`custom-green--11`,toastError:`custom-red--11`,findReplaceError:`custom-red--11`,mapColumnsError:`custom-red--11`,schemaSqlWarningBackground:`custom-red--4`,schemaSqlWarningForeground:`custom-red--11`,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`,treeBackground:`gray-1`,treeRowHover:`gray-3`,treeRowCurrent:`accent-4`,treeMuted:`gray-11`,treeMatch:`accent-5`,explorerBackground:`gray-1`,explorerBorder:`gray-6`,diffInsertForeground:`custom-green--11`,diffDeleteForeground:`custom-red--11`,diffModifyForeground:`custom-amber--11`,diffRenameForeground:`custom-blue--11`},OW={amber:xn,amberA:Sn,amberDark:Cn,amberDarkA:wn,blue:Tn,blueA:En,blueDark:Dn,blueDarkA:On,bronze:kn,bronzeA:An,bronzeDark:jn,bronzeDarkA:Mn,brown:Nn,brownA:Pn,brownDark:Fn,brownDarkA:In,crimson:Ln,crimsonA:Rn,crimsonDark:zn,crimsonDarkA:Bn,cyan:Vn,cyanA:Hn,cyanDark:Un,cyanDarkA:Wn,gold:Gn,goldA:Kn,goldDark:qn,goldDarkA:Jn,grass:Yn,grassA:Xn,grassDark:Zn,grassDarkA:Qn,gray:$n,grayA:er,grayDark:tr,grayDarkA:nr,green:rr,greenA:ir,greenDark:ar,greenDarkA:or,indigo:sr,indigoA:cr,indigoDark:lr,indigoDarkA:ur,iris:dr,irisA:fr,irisDark:pr,irisDarkA:mr,jade:hr,jadeA:gr,jadeDark:_r,jadeDarkA:vr,lime:yr,limeA:br,limeDark:xr,limeDarkA:Sr,mauve:Cr,mauveA:wr,mauveDark:Tr,mauveDarkA:Er,mint:Dr,mintA:Or,mintDark:kr,mintDarkA:Ar,olive:jr,oliveA:Mr,oliveDark:Nr,oliveDarkA:Pr,orange:Fr,orangeA:Ir,orangeDark:Lr,orangeDarkA:Rr,pink:zr,pinkA:Br,pinkDark:Vr,pinkDarkA:Hr,plum:Ur,plumA:Wr,plumDark:Gr,plumDarkA:Kr,purple:qr,purpleA:Jr,purpleDark:Yr,purpleDarkA:Xr,red:Zr,redA:Qr,redDark:$r,redDarkA:ei,ruby:ti,rubyA:ni,rubyDark:ri,rubyDarkA:ii,sage:ai,sageA:oi,sageDark:si,sageDarkA:ci,sand:li,sandA:ui,sandDark:di,sandDarkA:fi,sky:pi,skyA:mi,skyDark:hi,skyDarkA:gi,slate:_i,slateA:vi,slateDark:yi,slateDarkA:bi,teal:xi,tealA:Si,tealDark:Ci,tealDarkA:wi,tomato:Ti,tomatoA:Ei,tomatoDark:Di,tomatoDarkA:Oi,violet:ki,violetA:Ai,violetDark:ji,violetDarkA:Mi,yellow:Ni,yellowA:Pi,yellowDark:Fi,yellowDarkA:Ii};[...Object.values({dark:`dark`,light:`light`})],Object.values({gray:`gray`,mauve:`mauve`,slate:`slate`,sage:`sage`,olive:`olive`,sand:`sand`});const kW={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(kW),Object.keys(DW),V([kW.gray,kW.gold,kW.bronze]);const AW=[`tomato`,`gold`,`grass`,`teal`,`iris`,`purple`,`plum`,`pink`].map(e=>He(OW,`${e}.${e}9`)??``);function jW(e){let t=0;for(let n=0;n<e.length;n++)t=t*31+e.charCodeAt(n)|0;return AW[Math.abs(t)%AW.length]}function MW(e,t){let n=yV(e),{addUnsubscribe:r}=EW(),i=no({force:!1}),a=()=>{i.force=!i.force};return Fa(()=>{let{store:e}=n.value,{editor:{sharedSelectionTrackerMap:t}}=e.state;r(ro(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?jW(r.id):null}}}const NW={insert:1,delete:2,modify:4,rename:8};function PW(e,t){switch(t){case NW.insert:return e.diffInsertForeground;case NW.delete:return e.diffDeleteForeground;case NW.modify:return e.diffModifyForeground;case NW.rename:return e.diffRenameForeground;default:return null}}function FW(e,t,n,r=!1){return t?PW(e,t.get(n))??(r?PW(e,t.get(`entity`)):null):null}function IW(e,t){return PW(e,t?.get(`entity`))}const LW=Ki(null),RW=e=>vo(e,LW),zW=Ki(`document`),BW=e=>vo(e,zW);function VW(e){return e.ctrlKey?!gV(e)||Math.abs(e.deltaY)<25:!1}const HW=(e,t)=>{let n=yV(t),r=dH(t),i=BW(t),a=RW(t),{sharedSelectColor:o}=MW(t,e.memo.id),{onMoveStart:s}=eW(t,e,i),c=no({hover:!1,removeHover:!1}),l=JH();Ia(l.release);let u=()=>{c.hover=!0},d=()=>{c.hover=!1},f=e=>{c.removeHover=!0,l.set(e,GH)},p=e=>{c.removeHover=!1,l.set(e,``)},m=()=>{let{store:t}=n.value;t.dispatch(hk(e.memo.id))},h=t=>{let{emitter:r}=n.value;r.emit(lV({x:t.evt.clientX,y:t.evt.clientY,color:e.memo.ui.color}))},g=t=>{if(e.preview)return;let{store:r}=n.value,{memo:i}=e,a=t.currentTarget.getRelativePointerPosition();if(a){let e=VU(r.state.editor,i);i.id,RU(i.value,i.ui.width,a.x,a.y+e)}r.dispatch(dw({id:i.id}))},_=t=>{l.set(t,e.preview?``:`text`)},v=e=>{l.set(e,``)},y=t=>{if(VW(t.evt)||(t.evt.stopPropagation(),t.evt.preventDefault(),e.preview||gV(t.evt)))return;let{store:r}=n.value,{memo:i}=e,a=VU(r.state.editor,i),o=BU(i,a+t.evt.deltaY);o!==a&&r.dispatch(yw({id:i.id,scrollTop:o}))};return()=>{let{store:t}=n.value,{editor:i}=t.state,{memo:b}=e,ee=r.value,te=!!i.selectedMap[b.id],ne=WH(ee.memoShadow),re=o(),ie=!e.preview&&i.editMemoId===b.id,ae=jU(b.value,b.ui.width).join(`
|
|
56
|
-
`),x=e.preview?0:VU(i,b),{width:oe,height:se}=my(b),ce=1/2,S=a.value?.get(b.id);return A`<k-group id=${e.preview?``:`memo-${b.id}`} name="memo" kind="memo" selected=${te} sharedSelect=${re} x=${b.ui.x} y=${b.ui.y} @mousedown=${s} @touchstart=${s} @mouseenter=${u} @mouseleave=${d}><k-rect name="memo-shared-select" kind="memo-shared-select" x=${-.5} y=${-.5} width=${oe+1} height=${se+1} cornerRadius=${7} stroke=${re??``} 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} shadowColor=${ne?.color} shadowBlur=${ne?.blur} shadowOffsetX=${ne?.offsetX} shadowOffsetY=${ne?.offsetY} shadowOpacity=${ne?.opacity} shadowForStrokeEnabled=${!ne&&void 0} />${XH({name:`memo-diff-outline`,stroke:IW(ee,S),width:oe,height:se,cornerRadius:7})}<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=${b.ui.color} @click=${jH(h)} @mouseenter=${e=>{l.set(e,GH)}} @mouseleave=${e=>{l.set(e,``)}} />${TW({icon:`x`,name:`memo-remove`,kind:`icon`,size:12,color:c.hover?c.removeHover?ee.active:ee.foreground:VH,x:8+b.ui.width-12,y:8,click:m,mouseenter:f,mouseleave:p})}<k-group name="memo-text-clip" kind="memo-textarea" x=${8} y=${24} clipX=${0} clipY=${0} clipWidth=${b.ui.width} clipHeight=${b.ui.height} @click=${jH(g)} @mouseenter=${_} @mouseleave=${v} @wheel=${y}><k-rect name="memo-textarea-hit" kind="memo-textarea" x=${0} y=${0} width=${b.ui.width} height=${b.ui.height} fill=${HH} /><k-text name="memo-textarea" kind="memo-textarea" offsetY=${x} text=${ae} visible=${!ie} fill=${FW(ee,S,`memoValue`)??ee.active} fontFamily=${MH} fontSize=${12} fontStyle=${`400`} lineHeight=${OU()} wrap="none" /></k-group><${CU} .memo=${b} .top=${se} .left=${oe} /></k-group></k-group>`}},UW={now:()=>performance.now(),requestFrame:e=>requestAnimationFrame(e),cancelFrame:e=>cancelAnimationFrame(e)},WW=/* @__PURE__ */ new Map,GW=/* @__PURE__ */ new Map,KW=no({});let qW=UW,JW=null;function YW(e){let t=1-e;return 1-t*t*t}function XW(){JW===null&&GW.size!==0&&(JW=qW.requestFrame(ZW))}function ZW(){JW=null;let e=qW.now();for(let[t,n]of[...GW]){let r=e-n.startedAt,{from:i,to:a}=n;if(r>=300){GW.delete(t),KW[t]=a;continue}let o=r>0?r/300:0;KW[t]=i+(a-i)*YW(o)}XW()}function QW(e,t,n){return`${e} ${t}:${n}`}function $W(e){let t=KW[e];if(t!==void 0)return t;let n=GW.get(e);return n?n.from:WW.get(e)??0}function eG(e,t){let n=WW.get(e);if(n===t)return;if(n===void 0){WW.set(e,t);return}let r=$W(e);WW.set(e,t),GW.set(e,{from:r,to:t,startedAt:qW.now()}),XW()}const tG=/^#([0-9a-f]{3}|[0-9a-f]{6})$/i;function nG(e){let t=tG.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 rG(e,t,n){if(!(n>0))return e;if(n>=1)return t;let r=nG(e),i=nG(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(``)}`}const iG=no({}),aG=(e,t)=>`${e}\u0000${t}`;function oG(e,t){return iG[aG(e,t)]===!0}function sG(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 cG(e,t,n,r){let i={x:e.x+n.x-t.x,y:e.y+n.y-t.y},a=[e];for(let t=1;t<r;t++){let o=t/r*(Math.PI/2),s=Math.cos(o),c=Math.sin(o);a.push({x:i.x+(e.x-i.x)*s+(n.x-i.x)*c,y:i.y+(e.y-i.y)*s+(n.y-i.y)*c})}return a.push(n),a}function lG(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}let u=Math.min(6,Math.ceil(l));for(let e of cG(sG(a,i,l),a,sG(a,o,l),u))r(e)}return r(e[e.length-1]),n}function uG(e,t=`document`){let{start:n,end:r}=Xg(e,t),[i,a]=Kg(e,t),o=Bx(n,r),s=n.tableId===r.tableId;return{path:dG(n,r,s?kg(n,r):Vx(zx(i),o),s?kg(n,r):Vx(zx(a),o),Jg(e,t),t),line:fG(n,r)}}function dG(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?hG(jg(this.M,gG(e.direction),this.L,gG(t.direction),Og(e,t))):hG(a===`document`?lG(i&&i.length>1?i:_G(this.M,this.L,e.direction),8):Tg(this.M,gG(e.direction),this.L,gG(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*21,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*21,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*21,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*21,s.L.x=t.x,s.L.y=o.end.y2),{line:o,path:s}}function fG(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*9,n.start.base2.x1=n.start.base2.x2+=a*15,n.start.center.x1=n.start.base.x1,n.start.base.y1-=6,n.start.base.y2+=6,n.start.base2.y1-=6,n.start.base2.y2+=6,n.start.center2.x1+=a*21,i.cx+=a*15):(e.direction===L.top||e.direction===L.bottom)&&(e.direction===L.top&&(a*=-1),n.start.base.y1=n.start.base.y2+=a*9,n.start.base2.y1=n.start.base2.y2+=a*15,n.start.center.y1=n.start.base.y1,n.start.base.x1-=6,n.start.base.x2+=6,n.start.base2.x1-=6,n.start.base2.x2+=6,n.start.center2.y1+=a*21,i.cy+=a*15),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*9,n.end.base2.x1=n.end.base2.x2+=a*15,n.end.center.x1=n.end.left.x1=n.end.right.x1=n.end.base.x1,n.end.base.y1-=6,n.end.base.y2+=6,n.end.base2.y1-=6,n.end.base2.y2+=6,n.end.left.y2+=6,n.end.right.y2-=6,n.end.center2.x1+=a*21,r.cx+=a*15):(t.direction===L.top||t.direction===L.bottom)&&(t.direction===L.top&&(a*=-1),n.end.base.y1=n.end.base.y2+=a*9,n.end.base2.y1=n.end.base2.y2+=a*15,n.end.center.y1=n.end.left.y1=n.end.right.y1=n.end.base.y1,n.end.base.x1-=6,n.end.base.x2+=6,n.end.base2.x1-=6,n.end.base2.x2+=6,n.end.left.x2+=6,n.end.right.x2-=6,n.end.center2.y1+=a*21,r.cy+=a*15),{line:n,circle:r,startCircle:i}}function pG(e){if(!e.length)return``;let[[t]]=e,n=`M${mG(t.x)} ${mG(t.y)}`;for(let[,t]of e)n+=`L${mG(t.x)} ${mG(t.y)}`;return n}function mG(e){return Math.round(e*100)/100}function hG(e){let t=[];for(let n=1;n<e.length;n++)t.push([e[n-1],e[n]]);return t}function gG(e){let t=Ux(e);return Hx(e)?{x:t,y:0}:{x:0,y:t}}function _G(e,t,n){if(Hx(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 vG=`relationship-decoration`,yG=({x1:e,y1:t,x2:n,y2:r})=>[e,t,n,r];function bG(e,t,n){return A`<k-line name=${vG} kind=${vG} points=${yG(e)} stroke=${t} strokeWidth=${n} listening=${!1} />`}function xG({cx:e,cy:t},n,r){return A`<k-circle name=${vG} kind=${vG} x=${e} y=${t} radius=${5} stroke=${n} strokeWidth=${r} listening=${!1} />`}const SG={1:{ring:!0,ticks:[`base`,`left`,`center`,`right`]},[Zh.ZeroOne]:{ring:!0,ticks:[`base`,`center`]},[Zh.ZeroN]:{ring:!0,ticks:[`left`,`center`,`right`]},[Zh.OneOnly]:{ring:!1,ticks:[`base`,`base2`,`center2`]},[Zh.OneN]:{ring:!1,ticks:[`base`,`left`,`center2`,`right`]},32:{ring:!1,ticks:[`base`,`center2`]},64:{ring:!1,ticks:[`left`,`center2`,`right`]}};function CG(e,{path:t,line:n},r,i){let a=SG[e];return a?A`${bG(t.line.end,r,i)}${a.ring?xG(n.circle,r,i):null}${a.ticks.map(e=>bG(n.line.end[e],r,i))}`:null}const wG=[10,10],TG=[];function EG({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 DG({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 OG({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 kG(e){let t=EG(e),n=(n,r)=>DG(e,t,n,r),r=n(9,0);return[pG([[n(9,-6),n(9,6)]]),pG([[n(15,-6),n(15,6)]]),pG([[r,n(0,6)]]),pG([[r,n(0,-6)]]),OG(n(15,0),5)].join(``)}function AG({start:e,end:t},{line:n},r){return`${pG([[{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}]])}${kG(e)}${kG(t)}`}function jG(e){return 8/(e>0?e:1)}const MG=(e,t)=>{let n=yV(t),r=dH(t),i=BW(t),a=RW(t),o=no({hover:!1}),s=null,c=()=>{let t=xA(e.relationship);t?s?.setAttribute(`title`,t):s?.removeAttribute(`title`)},l=()=>{s?.removeAttribute(`title`),s=null},u=e=>{i.value===`document`&&(s=e.target.getStage()?.container()??null,c())};Ia(l);let d=t=>{let{relationship:r}=e,{store:i}=n.value;o.hover=!0,e.onHover?.(r.id,!0),u(t),i.dispatch(jw({columnIds:[...r.start.columnIds,...r.end.columnIds]}))},f=()=>{let{store:t}=n.value;o.hover=!1,e.onHover?.(e.relationship.id,!1),l(),t.dispatch(jw({columnIds:[]}))};return()=>{let{store:t}=n.value,{editor:l}=t.state,{relationship:u,strokeWidth:p}=e,m=r.value,h=i.value,{zoomLevel:g}=cb(t.state,h),_=Xg(u,h),v=uG(u,h),{path:y,line:b}=v,ee=y.path.d(),te=h!==`document`,ne=!!l.hoverRelationshipMap[u.id],re=!te&&oG(l.id,u.id),ie=o.hover||ne||re,ae=te?m.visualizationRelationship:u.identification?m.keyPFK:m.keyFK,x=ie?m.relationshipHover:IW(m,a.value?.get(u.id))??ae,oe=QW(l.id,`relationship`,u.id),se=0;te&&(eG(oe,+!!e.lit),se=$W(oe));let ce=rG(x,m.accentColor9,se),S=CG(u.relationshipType,v,ce,p);return s&&c(),A`<k-group name=${`relationship ${u.id}`} kind="relationship" @mouseenter=${d} @mouseleave=${f}><k-path name="relationship-hit-area" kind="relationship-hit-area" data=${AG(_,y,ee)} hitStrokeWidth=${jG(g)} lineCap="round" /><k-path name="relationship-route" kind="relationship-route" data=${pG(ee)} dash=${te||u.identification?TG:wG} stroke=${ce} strokeWidth=${p} listening=${!1} />${bG(y.line.start,ce,p)}${bG(b.line.start.base,ce,p)}${u.startRelationshipType===Qh.ring?A`${xG(b.startCircle,ce,p)}${bG(b.line.start.center,ce,p)}`:A`${bG(b.line.start.base2,ce,p)}${bG(b.line.start.center2,ce,p)}`}${S}</k-group>`}};function NG(e,t){let{x:n,y:r,direction:i}=e,a=Math.ceil(t.length*6.1)+4,o={width:a,height:14};switch(i){case L.left:return{x:n-3-a,y:r-9-14,...o};case L.right:return{x:n+3,y:r-9-14,...o};case L.top:return{x:n+9,y:r-3-14,...o};default:return{x:n+9,y:r+3,...o}}}const PG=(e,t)=>{let n=yV(t),r=dH(t),i=BW(t);return()=>{let{store:t}=n.value,{editor:a,settings:o}=t.state,{relationship:s}=e,c=r.value,l=i.value,{zoomLevel:u}=cb(t.state,l),d=l!==`document`||y_(u)||U(o.show,P.hideReferentialAction)?``:bA(s);if(!d)return null;let f=oG(a.id,s.id)||e.hovered?.id===s.id||!!a.hoverRelationshipMap[s.id],p=s.identification?c.keyPFK:c.keyFK,m=NG(Xg(s,l).end,d);return A`<k-group name=${`relationship-action-label ${s.id}`} x=${m.x} y=${m.y} listening=${!1}><k-rect name="relationship-action-box" width=${m.width} height=${m.height} fill=${c.canvasBackground} /><k-text name="relationship-action-text" x=${2} y=${2} text=${d} fill=${f?c.relationshipHover:p} fontFamily=${NH} fontSize=${10} wrap="none" /></k-group>`}},FG=(e,t)=>{let n=BW(t),r=no({id:``}),i=(e,t)=>{t?r.id=e:r.id===e&&(r.id=``)};return()=>{let{relationships:t,viewport:a,litIds:o}=e,s=n.value,c=e.strokeWidth??e_(s),l=a?t.filter(e=>yb(a,e,c,s)):t;return A`<k-group name="relationship-group" kind="relationship-group">${Bu(l,e=>e.id,e=>A`<${MG} .relationship=${e} .strokeWidth=${c} .lit=${o?.has(e.id)??!1} .onHover=${i} />`)}${Bu(l,e=>e.id,e=>A`<${PG} .relationship=${e} .hovered=${r} />`)}</k-group>`}},IG=no({pointers:{}});function LG(e,t,n,{columnId:r,columnIds:i}){let a=fy(e,t,t.columnIds.indexOf(r)),o=Math.max(i.indexOf(r),0);IG.pointers[xb(e,`document`)]={...n,grabX:n.x-uy(e,t).x,grabY:n.y-a.y+o*24,over:!0}}function RG(e,{x:t,y:n},r){let i=IG.pointers[xb(e,`document`)];i&&(i.x=t,i.y=n,i.over=r)}function zG(e){Reflect.deleteProperty(IG.pointers,xb(e,`document`))}function BG(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(` `)}const VG=e=>e.evt?.detail??0;function HG(){let e=null;return{track(t,n){VG(n)<=1&&(e=t)},isDouble(t,n){return VG(n)>=2&&e===t}}}const UG=(e,t)=>{let n=U(e,z.primaryKey),r=U(e,z.foreignKey);return n&&r?t.keyPFK:n?t.keyPK:r?t.keyFK:VH},WG=(e,t,n,r,i)=>!t&&n?r?e.columnSelectHover:e.columnSelect:i>0?r?rG(e.columnHover,e.accentColor4,i):rG(e.tableBackground,e.accentColor3,i):r?e.columnHover:VH,GG=(e,t)=>{let n=yV(t),r=dH(t),i=lH(t),a=no({hover:!1,removeHover:!1}),{addUnsubscribe:o}=EW(),s=HG(),c=null,l=()=>{c?.unsubscribe(),c=null};o(l);let u=t=>{if(e.preview||e.ghost||!NV(t.evt)||e.source!==`document`)return;l();let n=!1,r=hU.subscribe({next:()=>{n||(n=!0,e.onDragstart?.(e.column.id,t))},complete:()=>{c===r&&(c=null),n&&e.onDragend?.()}});c=r},d=!1,f=null,p=t=>{d=!!n.value.store.state.editor.drawRelationship,u(t);let r=f===t.evt;if(f=null,r||!jV(t.evt))return;let{focusTable:i}=n.value.store.state.editor,a=i?.columnId===e.column.id?i.focusType:H.columnName;b(a,t)},m=()=>{a.hover=!0},h=()=>{a.hover=!1},g=e=>{a.removeHover=!0,qH(e,GH)},_=e=>{a.removeHover=!1,qH(e,``)},v=(e,t)=>t?a.removeHover?e.active:e.foreground:VH,y=t=>{if(!jV(t))return{$mod:gV(t),shiftKey:t.shiftKey};let{focusTable:r}=n.value.store.state.editor,{column:i}=e;return{$mod:r?.tableId===i.tableId&&r.selectColumnIds.includes(i.id),shiftKey:!1}},b=(t,r)=>{if(e.source!==`document`)return;f=r.evt;let{store:i}=n.value,{column:a}=e;i.dispatch(tw({tableId:a.tableId,columnId:a.id,focusType:t,...y(r.evt)}))},ee=(t,r)=>{if(!s.isDouble(t,r)||e.source!==`document`)return;let{store:i}=n.value,{column:a}=e;i.dispatch(Gk(t)?Yk(t,a.tableId,a.id):sw())},te=()=>{if(d)return;let{store:t}=n.value,{column:r}=e;t.dispatch(Jk(r.tableId,[r.id]))},ne=()=>{let{column:t}=e;if(t.ui.keys===0)return;let{store:r}=n.value;r.dispatch(Nz(t.id))},re=()=>{let{store:e}=n.value;e.dispatch(Pz())},ie=({focusType:t,x:n,width:i,text:a,fill:o,focus:c,edit:l,sharedFocus:u,ellipsis:d,opacity:f=1,align:p,fontFamily:m=MH,diffFallback:h=null})=>A`<k-group name=${`column-col ${t}`} kind="column-col" sharedFocus=${u} x=${n} y=${0} opacity=${f} listening=${f>0} @mousedown=${e=>{b(t,e),s.track(t,e)}} @dblclick=${e=>{ee(t,e)}}><k-text name="cell-text" y=${iW(e.source)} width=${i} height=${aW(e.source,m)} text=${a} fill=${FW(r.value,e.diffPaths,t,!0)??h??o} fontFamily=${m} fontSize=${12} align=${p} verticalAlign="middle" wrap="none" ellipsis=${d} visible=${!l} hitFunc=${bW[e.source]} />${c&&e.source===`document`?A`<k-rect name="cell-focus-border" y=${iW(e.source)+oW()} width=${i} height=${RH} fill=${sW(r.value,l,e.editorFocused)} listening=${!1} />`:null}${u?A`<k-rect name="cell-shared-focus-border" y=${Zv(e.source)-RH} width=${i+8} height=${RH} fill=${u} listening=${!1} />`:null}</k-group>`,ae=({columnType:t,focusType:n,x:a,width:o},s)=>{let{column:c}=e,l=r.value,u=e.source!==`document`;switch(t){case F.columnName:return ie({focusType:n,x:a,width:o,text:c.name.trim()?c.name:i.value.t(`common.placeholder.column`),fill:c.name.trim()?l.active:l.placeholder,focus:e.focusName,edit:e.editName,sharedFocus:e.sharedFocusName,ellipsis:!0,diffFallback:s});case F.columnDefault:return ie({focusType:n,x:a,width:o,text:c.default.trim()?c.default:i.value.t(`common.placeholder.default`),fill:c.default.trim()?l.active:l.placeholder,focus:e.focusDefault,edit:e.editDefault,sharedFocus:e.sharedFocusDefault,ellipsis:!0});case F.columnComment:return ie({focusType:n,x:a,width:o,text:c.comment.trim()?c.comment:i.value.t(`common.placeholder.comment`),fill:c.comment.trim()?l.active:l.placeholder,focus:e.focusComment,edit:e.editComment,sharedFocus:e.sharedFocusComment,ellipsis:!0});case F.columnDataType:return ie({focusType:n,x:a,width:o,text:c.dataType.trim()?c.dataType:i.value.t(`common.placeholder.dataType`),fill:c.dataType.trim()?l.active:l.placeholder,focus:e.focusDataType,edit:e.editDataType,sharedFocus:e.sharedFocusDataType,ellipsis:!0,opacity:u?e.litAlpha??0:1,align:u?`right`:void 0,fontFamily:u?NH:void 0});case F.columnNotNull:return ie({focusType:n,x:a,width:o,text:U(c.options,R.notNull)?`N-N`:`NULL`,fill:l.active,focus:e.focusNotNull,edit:!1,sharedFocus:e.sharedFocusNotNull,ellipsis:!1});case F.columnUnique:return ie({focusType:n,x:a,width:o,text:`UQ`,fill:U(c.options,R.unique)?l.active:l.placeholder,focus:e.focusUnique,edit:!1,sharedFocus:e.sharedFocusUnique,ellipsis:!1});case F.columnAutoIncrement:return ie({focusType:n,x:a,width:o,text:`AI`,fill:U(c.options,R.autoIncrement)?l.active:l.placeholder,focus:e.focusAutoIncrement,edit:!1,sharedFocus:e.sharedFocusAutoIncrement,ellipsis:!1})}return null},x=(t,n)=>{let{diffPaths:r}=e;if(!r)return null;for(let i of r.keys()){if(i===`entity`||i===`columnPrimaryKey`&&e.column.ui.keys!==0||t.some(e=>e.focusType===i))continue;let a=FW(n,r,i);if(a)return a}return null},oe=e=>{let t=x(e,r.value);return e.map(e=>({columnType:e.columnType,template:ae(e,t)})).filter(({template:e})=>!!e)},se=(t,n)=>e.widthAlternateKey&&e.source===`document`?A`<k-text name="column-alternate-key" x=${dW(t)} y=${iW(e.source)} width=${e.widthAlternateKey} height=${fW()} text=${e.alternateKey??``} fill=${n.foreground} fontFamily=${NH} fontSize=${12} verticalAlign="middle" wrap="none" listening=${!1} />`:null;return()=>{let{store:t}=n.value,{editor:i}=t.state,{column:o,selected:s,width:c}=e,l=r.value,u=!!(e.hovered||a.hover||i.hoverColumnMap[o.id]),d=!!i.draggingColumnMap[o.id],f=c-18,y=e.source!==`document`,b=WG(l,y,s,u,y&&e.related?e.litAlpha??0:0),ee=Zv(e.source),ie=y?16:12,ae=_W(t.state,{name:e.widthName,comment:e.widthComment,dataType:e.widthDataType,default:e.widthDefault},e.source);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=${d?.5:1} visible=${!e.ghost} @mousedown=${p} @mouseenter=${m} @mouseleave=${h}><k-rect name="column-row-background" x=${1} width=${c-2} height=${ee} cornerRadius=${e.last?[0,0,6,6]:0} fill=${b} />${TW({icon:`key-round`,name:`column-col column-key`,kind:`column-col`,size:ie,color:o.ui.keys===0?VH:FW(l,e.diffPaths,`columnPrimaryKey`,!0)??UG(o.ui.keys,l),x:9,y:(ee-ie)/2,mouseenter:ne,mouseleave:re})}${Bu(oe(ae),({columnType:e})=>e,({template:e})=>e)}${se(ae,l)}${e.divider?A`<k-line name="column-row-divider" points=${[1,ee,c-1,ee]} stroke=${l.tableBorder} strokeWidth=${1} listening=${!1} />`:null}${y?null:TW({icon:`x`,name:`column-remove`,kind:`icon`,size:12,color:v(l,u),x:9+f-12,y:6,click:te,mouseenter:g,mouseleave:_})}</k-group>`}},KG=.5;function qG({settings:e},t){let n=fb(e,t),r=fb(e,{x:t.x+t.width,y:t.y+t.height});return[{start:n.x,end:r.x},{start:n.y,end:r.y}]}const JG=(e,t,n)=>e.start>=t&&e.end<=n;function YG(e,t,n){let r=e.end-e.start,i=(n-r)/2;if(r<=n)return i;let a=t.start-e.start,o=t.end-t.start;return i=Math.min(i,n-40-a-o),Math.max(i,40-a)}function XG(e,t,n,r){let i=e.end-e.start;if(i<=n/2){let t=(e.start+e.end)/2;return t>=n/4&&t<=n*3/4?null:(n-i)/2}return i<=n-80?JG(e,0,n)?null:r===`y`?40:(n-i)/2:JG(i<=n?e:t,0,n)?null:YG(e,t,n)}function ZG(e,[t,n],[r,i]){let a=XG(t,r,e.width,`x`)??t.start,o=XG(n,i,e.height,`y`)??n.start;return Math.abs(a-t.start)<KG&&Math.abs(o-n.start)<KG?null:{x:a,y:o}}function*QG(e,t,n=t){let r=ZG(e.editor.viewport,qG(e,t),qG(e,n));if(!r)return;let i=mb(e.settings.zoomLevel,t,r);yield Lb({originX:i.x,originY:i.y})}function $G(e,t){let n=py(e,t);if(!y_(e.settings.zoomLevel))return n;let{y:r,height:i}=uy(e,t);return{...n,y:r+(i-n.height)/2}}function eK({toWidth:e},t){let n=n=>e(t.text.slice(0,n))-e(``);return{start:n(t.start),end:n(t.end)}}function tK(e,t,n){let[r]=qG(e,t),i=e.editor.viewport.width-80;if(!n||r.end-r.start<=i)return null;let a=Math.min(n.start,t.width);return{...t,x:t.x+a,width:Math.min(n.end,t.width)-a}}function nK(e,t,n,r){let i=$G(e,t);if(y_(e.settings.zoomLevel))return i;let a=mW(e,t).find(e=>e.focusType===n);if(!a)return i;let o={...i,x:i.x+9+a.x,width:a.width};return tK(e,o,r)||(n===H.tableComment?o:i)}function*rK(e,t,n=H.tableName,r){yield*QG(e,uy(e,t),nK(e,t,n,r))}function iK(e,t,n,r,i){let a=fy(e,t,n),o=_W(e,dy(e,t)).find(e=>e.focusType===r);if(!o)return a;let s={...a,x:uy(e,t).x+o.x,width:o.width};return tK(e,s,i)??s}function aK(e,t){let{show:n}=e.settings;return t===H.tableComment?U(n,P.tableComment)?t:H.tableName:t===H.columnComment?U(n,P.columnComment)?t:H.columnName:t}const oK=e=>function*({doc:t,collections:n}){let r=N(n).collection(`tableEntities`).selectByIds(t.tableIds),i=N(n).collection(`memoEntities`).selectByIds(t.memoIds);yield RC(),yield BC({[e]:dg.table}),yield ED({id:e,zIndex:$S(r,i)}),yield $C({tableId:e})};function sK(e,{range:t,focusType:n},r){return t&&n===r?eK(e,t):void 0}function cK({doc:e,collections:t},n){let r=N(t).collection(`relationshipEntities`).selectById(n);if(!r||!e.relationshipIds.includes(n))return null;let i=N(t).collection(`tableEntities`),a=i.selectById(r.start.tableId),o=i.selectById(r.end.tableId);return!a||!e.tableIds.includes(a.id)||!o||!e.tableIds.includes(o.id)?null:{relationship:r,start:a,end:o}}function*lK(e,t){let n=cK(e,t);if(!n)return;let{relationship:r,start:i,end:a}=n,o=uy(e,a);yield*QG(e,ly(uy(e,i),o),o),yield oK(a.id);let s=a.columnIds.filter(e=>r.end.columnIds.includes(e)),c=(e,t)=>tw({tableId:a.id,columnId:e,focusType:H.columnName,$mod:t,shiftKey:!1});for(let[e,t]of s.entries())yield c(t,e>0);s.length>1&&(yield c(s[0],!0))}function*uK(e,t){if(!$y(e))return;let n=N(e.collections).collection(`tableGroupEntities`).selectById(t);if(!n||!e.doc.tableGroupIds.includes(t))return;let r=Uy(e,n);yield*QG(e,r,{...r,height:Math.min(r.height,28)}),yield fA(n.id,!1)}const dK=e=>function*(t,n){if(e.kind===`relationship`){yield*lK(t,e.relationshipId);return}if(e.kind===`tableGroup`){yield*uK(t,e.tableGroupId);return}if(e.kind===`memo`){if(!tv(t))return;let n=N(t.collections).collection(`memoEntities`).selectById(e.memoId);if(!n)return;yield*QG(t,my(n)),yield gk(n.id,!1);return}let r=N(t.collections).collection(`tableEntities`).selectById(e.tableId);if(!r)return;if(e.kind===`table`){let i=e.focusType?aK(t,e.focusType):H.tableName;yield*rK(t,r,i,sK(n,e,i)),yield oK(r.id),e.focusType&&(yield $C({tableId:r.id,focusType:i}));return}let i=r.columnIds.indexOf(e.columnId);if(i===-1)return;let a=aK(t,e.focusType);y_(t.settings.zoomLevel)?yield*rK(t,r):yield*QG(t,fy(t,r,i),iK(t,r,i,a,sK(n,e,a))),yield oK(r.id),yield tw({tableId:r.id,columnId:e.columnId,focusType:a,$mod:!1,shiftKey:!1})};function fK(e){e.state.settings.canvasType!==Uh.ERD&&e.dispatchSync(Kb({value:Uh.ERD}))}function pK(e,t){fK(e),e.dispatchSync(dK(t))}function mK(e,t){pK(e,{kind:`table`,tableId:t})}function hK(e,t){e.store.dispatchSync(K_({tableIds:t,kind:pg.flow}))}function gK(e,t,n=`document`){let{collections:r}=e,i=gb(e,n),a=N(r).collection(`tableEntities`).selectByIds(cv(e,n).tableIds).filter(t=>vb(i,e,t,n)).sort((e,t)=>e.ui.zIndex-t.ui.zIndex).reverse().map(t=>({table:t,rect:uy(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=sv(e,c,n),u={tableId:c.id,columnId:null,index:l.length};if(!l.length)return u;let d=fy(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 _K({collections:e},{tableId:t,columnIds:n},r){if(r.columnId!==null)return n.includes(r.columnId);if(r.tableId!==t)return!1;let i=N(e).collection(`tableEntities`).selectById(t);return se(i?.columnIds.slice(-n.length),n)}const vK=`flipFade`;function yK(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 bK(e){let t=/* @__PURE__ */ new Map,n=/* @__PURE__ */ new Map,r=null,i=null,a=(e,t,n,r,i,a)=>{jf(n);let o=!1,s=-1,c=()=>{o||(o=!0,clearTimeout(s),e.delete(t),i(),Mf(n))},l=new Ri({node:t,...r,duration:.3,easing:Li.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(vK)??1)),i=!1};e.on(`opacityChange.${vK}`,()=>{i||(r=e.opacity())}),e.setAttr(vK,0),o();let s=()=>{e.off(`opacityChange.${vK}`),e.setAttr(vK,void 0),o()};a(n,e,t,{[vK]: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}=yK(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??=Df(l)},cancel(){c(),[...t.values(),...n.values()].forEach(e=>e())}}}function xK(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 SK=(e,t,n)=>e?.tableId===t&&e.selectColumnIds.includes(n);function CK(e,t,n,r=null){if(e?.tableId!==n)return!1;switch(t){case H.tableName:case H.tableComment:return t===e.focusType&&e.edit}return r===e.columnId&&t===e.focusType&&e.edit}function wK(e,t){let n=yV(e),r=()=>n.value.store.state.editor.focusTable;return{hasFocus:(e,n)=>xK(r(),e,t,n),hasEdit:(e,n)=>CK(r(),e,t,n),hasSelectColumn:e=>SK(r(),t,e)}}const TK=[`table-header-color`,`column-row`,`icon`],EK=[`input-padding`],DK=[`icon`];function OK(e,t,n){return QU(e,{entityId:()=>t.table.id,selectType:dg.table,blockedKinds:e=>e===`document`?TK:DK,clickKinds:e=>e===`document`?EK:[],source:n})}function kK(e,t){let n=yV(e),{addUnsubscribe:r}=EW(),i=no({force:!1}),a=()=>{i.force=!i.force};Fa(()=>{let{store:e}=n.value,{editor:{sharedFocusTrackerMap:t}}=e.state;r(ro(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?jW(e.id):null},sharedFocusColor:(e,n)=>{let r=o().find(r=>xK(r,e,t,n));return r?jW(r.id):null}}}function AK(e){if(AV(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 jK=e=>e.type===`mouseup`||e.type===`touchend`&&!e.touches?.length;function MK(e,t){return Math.abs(t.x-e.x)<=4&&Math.abs(t.y-e.y)<=4}function NK(e){return!gV(e)&&NV(e)}function PK(e,t){let n=AK(e);n&&!MV(e)&&fU.pipe(Le(1)).subscribe(e=>{let r=jK(e)?AK(e):null;r&&MK(n,r)&&t()})}function FK(e,t,n){return{onPress:r=>{let{evt:i}=r,a=n.value;if(a===`document`||!NK(i))return;let o=e.value.store.state.editor.views[a];if(!o)return;let{id:s}=t.table;PK(i,()=>{let{store:t}=e.value;t.state.editor.views[a]===o&&_v(t.state,s,a)})}}}const IK=[`icon`],LK=(e,t,n)=>t.trim()?n?e.foreground:e.active:e.placeholder,RK=(e,t)=>{let n=yV(t),r=dH(t),i=lH(t),a=BW(t),o=RW(t),{hasEdit:s,hasFocus:c,hasSelectColumn:l}=wK(t,e.table.id),{sharedFocusColor:u,sharedFocusTableColor:d}=kK(t,e.table.id),{sharedSelectColor:f}=MW(t,e.table.id),{onMoveStart:p}=OK(t,e,a),m=FK(n,e,a),{addUnsubscribe:h}=EW(),g=no({hover:!1,iconHover:null,dragstartId:null}),_=HG(),v=null,y=null,b=null,ee=()=>{g.hover=!0,a.value!==`document`&&fv(n.value.store.state,e.table.id,a.value)},te=()=>{g.hover=!1,a.value!==`document`&&fv(n.value.store.state,null,a.value)};h(()=>{a.value!==`document`&&pv(n.value.store.state,e.table.id,a.value)});let ne=e=>t=>{g.iconHover=e,qH(t,GH)},re=e=>{g.iconHover=null,qH(e,``)},ie=(e,t,n,r)=>n?r?r.foreground:g.iconHover===t?e.active:e.foreground:VH,ae=(t,n)=>n?e.editorFocused===!1?t.placeholder:t.tableSelect:t.tableBorder,x=!1,oe=e=>{x=!!n.value.store.state.editor.drawRelationship,!(a.value!==`document`&&XU(e.target,IK))&&(p(e),m.onPress(e))},se=t=>{if(x)return;let{emitter:r}=n.value;r.emit(lV({x:t.evt.clientX,y:t.evt.clientY,color:e.table.ui.color}))},ce=()=>{if(x)return;let{store:t}=n.value;t.dispatch(qk(e.table.id))},S=()=>{if(x)return;let{store:t}=n.value;t.dispatch(Vk(e.table.id))},le=()=>{hK(n.value,[e.table.id])},C=()=>{mK(n.value.store,e.table.id)},ue=t=>{if(a.value!==`document`)return;let{store:r}=n.value;r.dispatch($C({tableId:e.table.id,focusType:t}))},w=(e,t)=>{if(!_.isDouble(e,t)||a.value!==`document`)return;let{store:r}=n.value;r.dispatch(sw())},de=e=>{let t=y,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=de(e);if(!r)return;let i=gK(t.state,r,a.value);if(RG(t.state,r,i!==null),!i)return;let{editor:{draggableColumn:o}}=t.state;o&&!_K(t.state,o,i)&&(b?.snapshot(),t.dispatch(Mz(i.columnId,i.tableId)))},pe=()=>{let{store:e,emitter:t}=n.value;(v||g.dragstartId!==null)&&(v?.unsubscribe(),v=null,y=null,g.dragstartId=null,zG(e.state),e.dispatch(Gw()),t.emit(uV()))},me=(t,r)=>{let{store:i}=n.value;if(a.value!==`document`)return;let{editor:{focusTable:o}}=i.state;if(!o||!o.columnId)return;let s=r.target?.getStage()??null;if(!s)return;v?.unsubscribe(),y=s,g.dragstartId=t,b??=bK(()=>s.find(`.column-row`));let c=gV(r.evt),l=de(r.evt);l&&LG(i.state,e.table,l,{columnId:t,columnIds:c?o.selectColumnIds:[t]}),i.dispatch(Az(c)),v=hU.subscribe({next:({event:e})=>{fe(e)},complete:pe})};Fa(()=>{let{emitter:e}=n.value;h(e.on({dragendColumnAll:()=>{v?.unsubscribe(),v=null,zG(n.value.store.state)}}),()=>{v&&zG(n.value.store.state),v?.unsubscribe(),v=null,b?.cancel()})});let he=({focusType:t,x:n,width:i,text:s,fill:c,focus:l,edit:u,sharedFocus:d})=>{let f=a.value,p=f!==`document`,m=FW(r.value,o.value?.get(e.table.id),t);return A`<k-group name=${`input-padding ${t}`} kind="input-padding" sharedFocus=${d} x=${n} y=${0} @mousedown=${e=>{ue(t),_.track(t,e)}} @dblclick=${e=>{w(t,e)}}><k-text name="cell-text" y=${nW(f)} width=${i} height=${rW(f)} text=${s} fill=${m??c} fontFamily=${MH} fontSize=${p?14:12} fontStyle=${p?`500`:`normal`} verticalAlign="middle" wrap="none" ellipsis=${!0} visible=${!u} hitFunc=${SW[f]} />${l&&!p?A`<k-rect name="cell-focus-border" y=${nW(f)+18.5} width=${i} height=${RH} fill=${sW(r.value,u,e.editorFocused)} listening=${!1} />`:null}${d?A`<k-rect name="cell-shared-focus-border" y=${22.5} width=${i+8} height=${RH} fill=${d} listening=${!1} />`:null}</k-group>`};return()=>{let{store:t}=n.value,{editor:p,collections:m}=t.state,{table:h}=e,_=r.value,v=!!p.selectedMap[h.id],y=a.value,b=dy(t.state,h,y),x=uy(t.state,h,y),ue=x.width-18,w=!!(e.hovered||g.hover),de=e.ghostColumnId??g.dragstartId,fe=de!==null&&!h.columnIds.includes(de)?de:null,ge=d(),_e=f(),ve=u(H.tableName),ye=u(H.tableComment),be=ge??_e,xe=o.value?.get(h.id),Se=y!==`document`,Ce=tW(y)-9,we=Ce+(Se?2:6),Te=Se?16:12,Ee=Se&&w,De=(e,t)=>!Se&&s(e,t),T=mW(t.state,h,y),Oe=T.find(e=>e.focusType===H.tableName),ke=T.find(e=>e.focusType===H.tableComment),Ae=ke?null:FW(_,xe,H.tableComment),je=sv(t.state,h,y),Me=e.preview?null:e.tableGroupId===void 0?tb(t.state,h,y):nb(t.state,e.tableGroupId,y),Ne=je.length===0,Pe=Se&&!!e.lit,Fe=Se?zH(_.minimapShadow):WH(_.tableShadow),Ie=QW(p.id,`table`,h.id),Le=0;Se&&(eG(Ie,+!!Pe),Le=$W(Ie));let Re=N(m).collection(`tableColumnEntities`).selectByIds(fe?[...je,fe]:je),ze=b.alternateKey?Fv(t.state,h):{};return A`<k-group id=${e.preview?``:`table-${h.id}`} name="table" kind="table" visible=${e.visible??!0} selected=${v} sharedFocus=${ge} sharedSelect=${_e} x=${x.x} y=${x.y} @mousedown=${oe} @touchstart=${oe} @mouseenter=${ee} @mouseleave=${te}><k-rect name="table-body" x=${1/2} y=${1/2} width=${x.width-1} height=${x.height-1} cornerRadius=${6} fill=${_.tableBackground} stroke=${rG(ae(_,v),_.accentColor9,Le)} strokeWidth=${1} shadowColor=${Fe?.color} shadowBlur=${Fe?.blur} shadowOffsetX=${Fe?.offsetX} shadowOffsetY=${Fe?.offsetY} shadowOpacity=${Fe?.opacity} shadowForStrokeEnabled=${!Fe&&void 0} @mouseenter=${e=>{Se&&qH(e,`pointer`)}} @mouseleave=${e=>{Se&&qH(e,``)}} /><k-rect name="table-header-band" x=${1} y=${1} width=${x.width-2} height=${Ne?x.height-2:9+Xv(y)-1} cornerRadius=${Ne?6:[6,6,0,0]} fill=${Me?.background??_.tableHeaderBackground} listening=${!1} />${Le>0?A`<k-rect name="table-glow" x=${-1/2} y=${-1/2} width=${x.width+1} height=${x.height+1} cornerRadius=${6} opacity=${Le} stroke=${_.accentColor9} strokeWidth=${1} shadowColor=${_.accentColor9} shadowBlur=${14} shadowOpacity=${.55} shadowForStrokeEnabled=${!0} listening=${!1} />`:null}${be?A`<k-rect name="table-ring" x=${-1/2} y=${-1/2} width=${x.width+1} height=${x.height+1} cornerRadius=${6} stroke=${be} strokeWidth=${1} listening=${!1} />`:null}${XH({name:`table-diff-outline`,stroke:IW(_,xe),width:x.width,height:x.height,cornerRadius:6})}<k-group name="table-header" x=${9} y=${9}><k-group name="table-header-inputs" y=${Ce}>${TW({icon:`table-2`,name:`table-header-icon`,kind:`table-header-icon`,size:Te,color:Me?.foreground??_.foreground,x:0,y:Se?0:(24-Te)/2})}${Oe?he({...Oe,text:h.name.trim()?h.name:i.value.t(`common.placeholder.table`),fill:Ae??Me?.foreground??LK(_,h.name,Se),focus:c(H.tableName),edit:De(H.tableName),sharedFocus:ve}):null}${ke?he({...ke,text:h.comment.trim()?h.comment:i.value.t(`common.placeholder.comment`),fill:Me?.foreground??(h.comment.trim()?_.active:_.placeholder),focus:c(H.tableComment),edit:De(H.tableComment),sharedFocus:ye}):null}</k-group>${Se?null:TW({icon:`plus`,name:`table-add-column`,kind:`icon`,size:12,color:ie(_,`plus`,w,Me),mouseenter:ne(`plus`),mouseleave:re,x:ue-24-4,y:we,click:ce})}${Se?null:TW({icon:`x`,name:`table-remove`,kind:`icon`,size:12,color:ie(_,`x`,w,Me),mouseenter:ne(`x`),mouseleave:re,x:ue-12,y:we,click:S})}${Ee?TW({icon:`waypoints`,name:`table-related`,kind:`icon`,size:12,color:ie(_,`waypoints`,w,Me),mouseenter:ne(`waypoints`),mouseleave:re,x:ue-28,y:we,click:le}):null}${Ee?TW({icon:`external-link`,name:`table-go-to-erd`,kind:`icon`,size:12,color:ie(_,`external-link`,w,Me),mouseenter:ne(`external-link`),mouseleave:re,x:ue-12,y:we,click:C}):null}</k-group><k-group name="table-columns">${Bu(Re,e=>e.id,(n,r)=>A`<${GG} .column=${n} .source=${y} .related=${e.relatedColumnIds?.has(n.id)??!1} .diffPaths=${o.value?.get(n.id)??null} .litAlpha=${Le} .divider=${Se&&r<je.length-1} .last=${r===je.length-1} .y=${fy(t.state,h,r,y).y-x.y} .width=${x.width} .selected=${l(n.id)} .hovered=${n.id===e.hoveredColumnId} .widthName=${b.name} .widthDataType=${b.dataType} .widthDefault=${b.default} .widthComment=${b.comment} .widthAlternateKey=${b.alternateKey} .alternateKey=${ze[n.id]} .focusName=${c(H.columnName,n.id)} .focusDataType=${c(H.columnDataType,n.id)} .focusNotNull=${c(H.columnNotNull,n.id)} .focusDefault=${c(H.columnDefault,n.id)} .focusComment=${c(H.columnComment,n.id)} .focusUnique=${c(H.columnUnique,n.id)} .focusAutoIncrement=${c(H.columnAutoIncrement,n.id)} .editName=${De(H.columnName,n.id)} .editDataType=${De(H.columnDataType,n.id)} .editDefault=${De(H.columnDefault,n.id)} .editComment=${De(H.columnComment,n.id)} .sharedFocusName=${u(H.columnName,n.id)} .sharedFocusDataType=${u(H.columnDataType,n.id)} .sharedFocusNotNull=${u(H.columnNotNull,n.id)} .sharedFocusDefault=${u(H.columnDefault,n.id)} .sharedFocusComment=${u(H.columnComment,n.id)} .sharedFocusUnique=${u(H.columnUnique,n.id)} .sharedFocusAutoIncrement=${u(H.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=${BG(x.height)} fill=${h.ui.color} listening=${!Se} @click=${jH(se)} @mouseenter=${e=>{qH(e,GH)}} @mouseleave=${e=>{qH(e,``)}} /></k-group>`}},zK=[];function BK(e,t,n,r){zv();let{selectedMap:i}=e.editor,a=qU(e,n)&&!i[t.id],o=Uy(e,t,{members:r,excludeTableIds:a?Object.keys(i):[]}),s=a?YU(e,n)?.get(t.id):void 0;return s?ly(s,o):o}function VK(){let e=no({}),t=/* @__PURE__ */ new Map,n=no({});return{isHovered:e=>!!(n[`${e}:frame`]||n[`${e}:body`]),setHover:(e,t,r)=>{let i=`${e}:${t}`;r?n[i]=!0:Reflect.deleteProperty(n,i)},draftOf:t=>e[t]??null,setDraft:(t,n)=>{n?e[t]=n:Reflect.deleteProperty(e,t)},guardOf:e=>{let n=t.get(e)??HG();return t.set(e,n),n}}}const HK=(e,t)=>e.length===t.length&&e.every((e,n)=>e===t[n]);function UK(){let e=/* @__PURE__ */ new Map;return t=>{let n=/* @__PURE__ */ new Map;return qy(t).forEach((t,r)=>{let i=e.get(r);n.set(r,i&&HK(i,t)?i:t)}),e=n,e=>n.get(e)??zK}}const WK={left:`left`,right:`right`,top:`top`,bottom:`bottom`,lt:`lt`,rt:`rt`,lb:`lb`,rb:`rb`},GK={left:{x:`left`},right:{x:`right`},top:{y:`top`},bottom:{y:`bottom`},lt:{x:`left`,y:`top`},rt:{x:`right`,y:`top`},lb:{x:`left`,y:`bottom`},rb:{x:`right`,y:`bottom`}},KK={left:`ew-resize`,right:`ew-resize`,top:`ns-resize`,bottom:`ns-resize`,lt:`nwse-resize`,rt:`nesw-resize`,lb:`nesw-resize`,rb:`nwse-resize`},qK=Object.values(WK);function JK(e,t,n,r,i){let{x:a,y:o}=GK[n],s=e.x,c=e.y,l=e.x+e.width,u=e.y+e.height;return a===`left`?s=Math.min(s+r,l-160,t?.x??1/0):a===`right`&&(l=Math.max(l+r,s+160,t?t.x+t.width:-1/0)),o===`top`?c=Math.min(c+i,u-100,t?.y??1/0):o===`bottom`&&(u=Math.max(u+i,c+100,t?t.y+t.height:-1/0)),{x:s,y:c,width:l-s,height:u-c}}const YK=(e,t)=>e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height,XK=e=>AV(e.evt)?{x:e.evt.clientX,y:e.evt.clientY}:{x:e.evt.touches[0]?.clientX??0,y:e.evt.touches[0]?.clientY??0},ZK=(e,t)=>{let n=yV(t),r=JH(),i=null;Ia(()=>{i?.(),r.release()});let a=(t,r)=>{if(!NV(t.evt)||MV(t.evt))return;let{store:a}=n.value,{id:o}=e.group,s={...e.box},c=Jy(a.state,Vy(a.state,o)),{zoomLevel:l}=a.state.settings,u=XK(t),d=s,f=!0,p=()=>{i=null;let{state:t}=a;f&&!YK(d,s)&&$y(t)&&t.doc.tableGroupIds.includes(o)&&a.dispatchSync(UO({id:o,...d})),e.onDraft(null)},m=YH(t,KK[r]),h=hU.subscribe(({event:t,x:n,y:i})=>{t.type===`mousemove`&&t.preventDefault(),d=JK(s,c,r,(n-u.x)/l,(i-u.y)/l),e.onDraft(d)});h.add(m),h.add(p),i=()=>{f=!1,h.unsubscribe()}};return()=>{let{width:t,height:n}=e.box,i=5/2,o={left:-2.5,top:-2.5,right:t-i,bottom:n-i};return A`${qK.map(e=>{let{x:i,y:s}=GK[e];return A`<k-rect name=${`table-group-sash table-group-sash-${e}`} kind="table-group-sash" x=${i?o[i]:0} y=${s?o[s]:0} width=${i?5:t} height=${s?5:n} fill=${HH} @mousedown=${t=>{a(t,e)}} @touchstart=${t=>{a(t,e)}} @mouseenter=${t=>{r.set(t,KK[e])}} @mouseleave=${e=>{r.set(e,``)}} />`})}`}};function QK(e=0){let t=lW();return{x:28,y:Math.round((28-t)/2),width:Math.max(e-28-28,0),height:t}}function $K(){return{x:8,y:8,size:12}}function eq(e){return{x:e-8-12,y:8,size:12}}function tq(e,t){!e.getReadonly()&&$y(e.state)&&e.dispatch(rw(),hw({id:t}))}const nq=[`table-group-title`],rq=[`icon`],iq=(e,t)=>{let n=yV(t),r=dH(t),i=lH(t),a=BW(t),o=RW(t),{sharedSelectColor:s}=MW(t,e.group.id),c=no({removeHover:!1}),{onMoveStart:l}=QU(t,{entityId:()=>e.group.id,selectType:dg.tableGroup,blockedKinds:()=>rq,clickKinds:()=>nq,canMove:()=>!n.value.store.getReadonly(),source:a}),u=()=>e.links.guardOf(e.group.id),d=e=>{u().track(`title`,e),l(e)},f=t=>{u().isDouble(`title`,t)&&tq(n.value.store,e.group.id)},p=t=>{e.links.setDraft(e.group.id,t)},m=()=>{e.links.setHover(e.group.id,`frame`,!0)},h=()=>{e.links.setHover(e.group.id,`frame`,!1)},g=JH();Ia(()=>{h(),g.release()});let _=e=>{c.removeHover=!0,g.set(e,n.value.store.getReadonly()?``:GH)},v=e=>{c.removeHover=!1,g.set(e,``)},y=()=>{let{store:t}=n.value;t.getReadonly()||t.dispatch(aA(e.group.id))},b=(t,n,r)=>r||!e.links.isHovered(e.group.id)?VH:n?n.foreground:c.removeHover?t.active:t.foreground;return()=>{let{store:t}=n.value,{selectedMap:c}=t.state.editor,{group:u,members:g,links:ee}=e,te=r.value,ne=!!c[u.id],re=s(),ie=t.state.editor.editTableGroupId===u.id,ae=ee.draftOf(u.id)??BK(t.state,u,a.value,g),{x,y:oe,width:se,height:ce}=ae,S=eb(u),le=QK(se),C=$K(),ue=eq(se),w=t.getReadonly(),de=!!u.name.trim(),fe=1/2,pe=o.value?.get(u.id);return A`<k-group id=${`table-group-${u.id}`} name="table-group" kind="table-group" selected=${ne} sharedSelect=${re} x=${x} y=${oe} @mouseenter=${m} @mouseleave=${h}><k-group name="table-group-title" kind="table-group-title" @mousedown=${d} @touchstart=${l} @dblclick=${jH(f)}><k-rect name="table-group-title-bar" width=${se} height=${28} cornerRadius=${[6,6,0,0]} fill=${S?.background??te.tableGroupHeaderBackground} /><k-group name="table-group-icon-holder" listening=${!1}>${TW({icon:`group`,name:`table-group-icon`,kind:`table-group-icon`,size:C.size,color:S?.foreground??te.active,x:C.x,y:C.y})}</k-group><k-text name="table-group-name" x=${le.x} y=${le.y} width=${le.width} height=${le.height} text=${de?u.name:i.value.t(`common.unnamed`)} fill=${FW(te,pe,`tableGroupName`)??S?.foreground??(de?te.active:te.placeholder)} fontFamily=${MH} fontSize=${12} fontStyle=${`bold`} verticalAlign="middle" wrap="none" ellipsis=${!0} visible=${!ie} listening=${!1} />${TW({icon:`x`,name:`table-group-remove`,kind:`icon`,size:ue.size,color:b(te,S,w),mouseenter:_,mouseleave:v,x:ue.x,y:ue.y,click:y})}</k-group><k-rect name="table-group-border" x=${fe} y=${fe} width=${se-1} height=${ce-1} cornerRadius=${6} stroke=${ne?te.memoSelect:S?.background??te.tableGroupBorder} strokeWidth=${1} listening=${!1} /><k-rect name="table-group-shared-select" x=${-.5} y=${-.5} width=${se+1} height=${ce+1} cornerRadius=${7} stroke=${re??``} strokeWidth=${1} listening=${!1} />${XH({name:`table-group-diff-outline`,stroke:IW(te,pe),width:se,height:ce,cornerRadius:7})}${w?null:A`<${ZK} .group=${u} .box=${ae} .onDraft=${p} />`}</k-group>`}},aq=(e,t)=>{let n=yV(t),r=dH(t),i=BW(t),a=()=>{e.links.setHover(e.group.id,`body`,!0)},o=()=>{e.links.setHover(e.group.id,`body`,!1)};Ia(o);let s=t=>{let{group:r,links:i}=e;if(i.guardOf(r.id).track(`body`,t),NV(t.evt)||MV(t.evt))return;let{store:a}=n.value;a.dispatch(fA(r.id,!!a.state.editor.selectedMap[r.id]))};return()=>{let{store:t}=n.value,{group:c,members:l,links:u}=e,{x:d,y:f,width:p,height:m}=u.draftOf(c.id)??BK(t.state,c,i.value,l),h=eb(c);return A`<k-rect id=${`table-group-body-${c.id}`} name="table-group-body" kind="table-group-body" x=${d} y=${f+28} width=${p} height=${Math.max(m-28,0)} cornerRadius=${[0,0,6,6]} fill=${h?.background??r.value.tableGroupBackground} opacity=${h?.12:1} @mousedown=${s} @mouseenter=${a} @mouseleave=${o} />`}},oq=(e,t)=>{let n=yV(t),r=VK(),i=UK();return()=>{let{state:e}=n.value.store,t=N(e.collections).collection(`tableGroupEntities`).selectByIds(e.doc.tableGroupIds).sort((e,t)=>e.ui.zIndex-t.ui.zIndex),a=i(e);return A`${Bu(t,e=>e.id,e=>A`<${aq} .group=${e} .members=${a(e.id)} .links=${r} />`)}${Bu(t,e=>e.id,e=>A`<${iq} .group=${e} .members=${a(e.id)} .links=${r} />`)}`}};function sq(e,t){return[...e.map(e=>({kind:`table`,entity:e})),...t.map(e=>({kind:`memo`,entity:e}))].sort((e,t)=>e.entity.ui.zIndex-t.entity.ui.zIndex)}const cq=({kind:e,entity:t})=>`${e}:${t.id}`,lq=(e,t)=>{let n=yV(t),r=dH(t);return()=>{let{store:t}=n.value,{box:i,scale:a}=e,{settings:{show:o},doc:{tableIds:s,memoIds:c,relationshipIds:l},collections:u}=t.state,d=r.value,f=sq(N(u).collection(`tableEntities`).selectByIds(s),tv(t.state)?N(u).collection(`memoEntities`).selectByIds(c):[]),p=N(u).collection(`relationshipEntities`).selectByIds(l);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=${d.canvasBackground} />${$y(t.state)?A`<${oq} />`:null}${U(o,P.relationship)?A`<${FG} .relationships=${p} />`:null}${Bu(f,cq,e=>e.kind===`table`?A`<${RK} .table=${e.entity} />`:A`<${HW} .memo=${e.entity} />`)}</k-layer>`}};async function uq({doc:e,theme:t,toWidth:n,maxSide:r,i18n:i}){let a=_V({toWidth:n},{devtools:!1});a.store.dispatchSync(XR(e)),a.store.dispatchSync(jb({value:1})),await pH(32);let o=_H(a.store.state),s=vH(o),c=C(r)?Math.min(s,r/Math.max(o.width,o.height)):s,l=yH(o,c),u=fH({app:a,container:document.createElement(`div`),scene:A`<${lq} .box=${o} .scale=${c} />`,width:l.width,height:l.height,theme:t,i18n:i&&kV(i.locale,i.messages)});return await Pf(),{stage:u.stage,box:o,scale:c,destroy:()=>{u.destroy(),bV(a)}}}function dq(e){return`convertToBlob`in e?e.convertToBlob({type:`image/png`}):new Promise((t,n)=>{e.toBlob(e=>{e?t(e):n(/* @__PURE__ */ Error(`[export-png] the canvas encoded no png`))},`image/png`)})}async function fq({doc:e,theme:t,pixelRatio:n,maxSide:r,i18n:i,toWidth:a}){let o=await uq({doc:e,theme:t,toWidth:a,maxSide:r,i18n:i});try{let e=hH(n,o.stage.width(),o.stage.height()),t=o.stage.toCanvas({pixelRatio:e}),r=await dq(t),{width:i,height:a}=t,s=o.scale*e,c=1*n,l=null;if(s<c){let{askedWidth:e,askedHeight:t}=bH(o.box,n);l={askedWidth:e,askedHeight:t,width:i,height:a}}return{blob:r,width:i,height:a,documentWidth:o.box.width,documentHeight:o.box.height,reduction:l}}finally{o.destroy()}}const pq=[`x`,`y`,`scaleX`,`scaleY`,`offsetX`,`offsetY`,`rotation`,`visible`,`opacity`],mq=[`clipX`,`clipY`,`clipWidth`,`clipHeight`],hq=[`fill`,`stroke`,`strokeWidth`,`dash`,`lineCap`,`lineJoin`];[...pq,...mq],[...pq,...mq],[...pq,...hq],[...pq],[...pq,...hq],[...pq,...hq],[...pq,...hq];const gq=/* @__PURE__ */ new Set([``,`none`,`transparent`]),_q=/^#([0-9a-f]{4}|[0-9a-f]{8})$/i,vq=/^(rgb|hsl)a?\((.*)\)$/i,yq={"&":`&`,"<":`<`,">":`>`,'"':`"`,"'":`'`};function Q(e,t=3){let n=10**t,r=Math.round(e*n)/n;return String(r===0?0:r)}function bq(e){return e===9||e===10||e===13||e>=32&&e!==65534&&e!==65535}function xq(e){let t=``;for(let n of e)bq(n.codePointAt(0)??0)&&(t+=yq[n]??n);return t}function $(e,t){return` ${e}="${xq(String(t))}"`}function Sq(e){let t=e.endsWith(`%`)?Number.parseFloat(e)/100:Number.parseFloat(e);return Number.isNaN(t)?1:Math.min(Math.max(t,0),1)}function Cq(e){let t=_q.exec(e);if(t){let e=t[1].toLowerCase(),n=e.length===4?Array.from(e,e=>e+e).join(``):e;return{color:`#${n.slice(0,6)}`,alpha:Number.parseInt(n.slice(6),16)/255}}let n=vq.exec(e);if(!n)return{color:e,alpha:1};let[r,i]=n[2].split(`/`),a=r.split(/[\s,]+/).filter(Boolean),o=i??(a.length===4?a[3]:void 0);return o===void 0?{color:e,alpha:1}:{color:`${n[1].toLowerCase()}(${a.slice(0,3).join(`,`)})`,alpha:Sq(o.trim())}}function wq(e){if(typeof e!=`string`)return null;let t=e.trim();if(gq.has(t.toLowerCase()))return null;let n=Cq(t),r=Number(Q(n.alpha));return r>0?{color:n.color,opacity:r}:null}function Tq(e,{color:t,opacity:n}){return $(e,t)+(n<1?$(`${e}-opacity`,n):``)}function Eq([e,t,n,r,i,a]){let o=[e,t,n,r].map(e=>Q(e,6)).join(` `),s=`${Q(i)} ${Q(a)}`;return o===`1 0 0 1`?s===`0 0`?``:$(`transform`,`translate(${s})`):$(`transform`,`matrix(${o} ${s})`)}function Dq(e){return Eq(e.getTransform().getMatrix())}function Oq(e,{box:t,scale:n}){let[r,i,a,o,s,c]=e.getTransform().getMatrix();return Eq([r/n,i/n,a/n,o/n,s/n+t.x,c/n+t.y])}function kq(e){return e.opacity()<1?$(`opacity`,Q(e.opacity())):``}function Aq(e,t){let n=e.clipWidth(),r=e.clipHeight();if(!n||!r)return``;let i=`erd-clip--${t.clips.length+1}`,a=$(`x`,Q(e.clipX()??0))+$(`y`,Q(e.clipY()??0))+$(`width`,Q(n))+$(`height`,Q(r));return t.clips.push(`<clipPath id="${i}"><rect${a}/></clipPath>`),` clip-path="url(#${i})"`}function jq(e){let t=2166136261;for(let n of e)for(let e=0;e<n.length;e++)t=Math.imul(t^n.charCodeAt(e),16777619);return(t>>>0).toString(36)}function Mq(e,t,n){let r=e.getChildren().map(e=>Gq(e,t)).join(``);if(!r)return``;let i=n+kq(e)+Aq(e,t);return i?`<g${i}>${r}</g>`:r}function Nq(e,t){let n=t?wq(e.fill()):null,r=e.strokeWidth(),i=r?wq(e.stroke()):null;if(!n&&!i)return null;let a=n?Tq(`fill`,n):$(`fill`,`none`);if(!i)return a;a+=Tq(`stroke`,i)+$(`stroke-width`,Q(r));let o=e.dash();o?.length&&(a+=$(`stroke-dasharray`,o.map(e=>Q(e)).join(` `)));let s=e.lineCap();s&&s!==`butt`&&(a+=$(`stroke-linecap`,s));let c=e.lineJoin();return c&&c!==`miter`&&(a+=$(`stroke-linejoin`,c)),a}function Pq(e,t,n,r=!0){let i=Nq(e,r);return i?`<${t}${Dq(e)}${kq(e)}${n}${i}/>`:``}function Fq(e,t,n){let r=Math.min(t/2,n/2);return(Array.isArray(e)?[0,1,2,3].map(t=>e[t]||0):[e,e,e,e]).map(e=>Math.min(e,r))}function Iq(e,t,n,r,[i,a,o,s]){let c=(e,t,n)=>`A${Q(e)} ${Q(e)} 0 0 1 ${Q(t)} ${Q(n)}`;return[`M${Q(e+i)} ${Q(t)}`,`H${Q(e+n-a)}`,c(a,e+n,t+a),`V${Q(t+r-o)}`,c(o,e+n-o,t+r),`H${Q(e+s)}`,c(s,e,t+r-s),`V${Q(t+i)}`,c(i,e+i,t),`Z`].join(``)}function Lq(e){let t=Math.min(e.width(),0),n=Math.min(e.height(),0),r=Math.abs(e.width()),i=Math.abs(e.height()),a=Fq(e.cornerRadius(),r,i),[o]=a;return a.some(e=>e!==o)?Pq(e,`path`,$(`d`,Iq(t,n,r,i,a))):Pq(e,`rect`,(t?$(`x`,Q(t)):``)+(n?$(`y`,Q(n)):``)+$(`width`,Q(r))+$(`height`,Q(i))+(o>0?$(`rx`,Q(o)):``))}function Rq(e){return Pq(e,`path`,$(`d`,e.data()))}function zq(e){return Pq(e,`circle`,$(`r`,Q(e.radius())))}function Bq(e){let t=e.points();if(t.length<4)return``;let n=[];for(let e=0;e+1<t.length;e+=2)n.push(`${Q(t[e])},${Q(t[e+1])}`);let r=e.closed();return Pq(e,r?`polygon`:`polyline`,$(`points`,n.join(` `)),r)}function Vq(e){let t=``;for(let n of e.trim().split(/\s+/))n===`italic`||n===`oblique`?t+=$(`font-style`,n):n&&n!==`normal`&&(t+=$(`font-weight`,n));return t}function Hq(e,t){switch(e){case`middle`:return t/2;case`bottom`:return t;default:return 0}}function Uq(e,t,n){switch(e){case`right`:return{x:t-n,attribute:$(`text-anchor`,`end`)};case`center`:return{x:t/2,attribute:$(`text-anchor`,`middle`)};default:return{x:n,attribute:``}}}function Wq(e){let t=wq(e.fill());if(!t||!e.text())return``;let n=e.textArr,r=e.fontSize(),i=e.lineHeight()*r,a=e.padding(),o=e.measureSize(`M`),s=(o.fontBoundingBoxAscent-o.fontBoundingBoxDescent)/2+i/2,c=e.getHeight()-n.length*i-a*2,l=Hq(e.verticalAlign(),c),u=Uq(e.align(),e.getWidth(),a),d=n.map(({text:e},t)=>({text:e,y:a+l+s+t*i})).filter(({text:e})=>e);if(!d.length)return``;let f=e.fontFamily(),p=(f===`-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', 'Open Sans', system-ui, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji'`?``:$(`font-family`,f))+(r===12?``:$(`font-size`,Q(r)))+Vq(e.fontStyle()),m=`<text${Dq(e)}${kq(e)}${p}${u.attribute}${Tq(`fill`,t)}`,h=$(`x`,Q(u.x));if(d.length===1){let[{text:e,y:t}]=d;return`${m}${h}${$(`y`,Q(t))}>${xq(e)}</text>`}return`${m}>${d.map(({text:e,y:t})=>`<tspan${h}${$(`y`,Q(t))}>${xq(e)}</tspan>`).join(``)}</text>`}function Gq(e,t){if(!e.visible()||e.opacity()===0)return``;let n=e.getClassName();switch(n){case`Layer`:return Mq(e,t,Oq(e,t));case`Group`:return Mq(e,t,Dq(e));case`Rect`:return Lq(e);case`Text`:return Wq(e);case`Path`:return Rq(e);case`Line`:return Bq(e);case`Circle`:return zq(e)}throw Error(`[export-svg] no svg element is written for a konva ${n}`)}function Kq(e,t){let{box:n}=t,r={...t,clips:[]},i=e.getChildren().map(e=>Gq(e,r)).join(``),a=r.clips.length?`<defs>${r.clips.join(``)}</defs>`:``,o=[n.x,n.y,n.width,n.height].map(e=>Q(e)).join(` `);return`<svg${$(`xmlns`,`http://www.w3.org/2000/svg`)+$(`width`,Q(n.width))+$(`height`,Q(n.height))+$(`viewBox`,o)+$(`font-family`,EH)+$(`font-size`,Q(12))+$(`xml:space`,`preserve`)}>${a}${i}</svg>`.replaceAll(`\0`,jq(r.clips))}async function qq({doc:e,theme:t,i18n:n,toWidth:r}){let i=await uq({doc:e,theme:t,toWidth:r,maxSide:256,i18n:n});try{return Kq(i.stage,{box:i.box,scale:i.scale})}finally{i.destroy()}}const Jq=`400 12px ${EH}`,Yq=[`ERD editor 0123456789`,`가나다 漢字 テスト`,`—…€· iIlL1`];function Xq(){if(typeof OffscreenCanvas>`u`)return null;let e=new OffscreenCanvas(1,1).getContext(`2d`);return e?(e.font=Jq,t=>Math.round(e.measureText(t).width)+2):null}function Zq(e){return Yq.map(t=>e(t))}function Qq(e,t){return e.length===t.length&&e.every((e,n)=>e===t[n])}const $q=new class{async probeFontWidths(){return Zq(this.createToWidth())}async render(e){let t=this.createMatchingToWidth(e.fontProbe);return fq({...e,toWidth:t})}async renderSvg(e){let t=this.createMatchingToWidth(e.fontProbe);return qq({...e,toWidth:t})}createMatchingToWidth(e){let t=this.createToWidth(),n=Zq(t);if(!Qq(n,e))throw Error(`[export-png] this realm measures text differently: ${n.join()} against ${e.join()}`);return t}createToWidth(){let e=Xq();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($q,n)};
|
|
53
|
+
`;const Bq={focus:`@dineug/erd-editor/internal-focus`,forceFocus:`@dineug/erd-editor/internal-force-focus`,forwardMoveStart:`@dineug/erd-editor/internal-forward-move-start`};function Vq(e,t){function n(n,r){return new CustomEvent(e,{detail:n,...t,...r})}return n.toString=()=>`${e}`,n.type=e,n}Vq(Bq.focus),Vq(Bq.forceFocus);const Hq=Vq(Bq.forwardMoveStart,{bubbles:!0,composed:!0});function Uq(e){return Oe(()=>Ae(window,e))}Uq(`keyup`);const Wq=Uq(`mousedown`),Gq=Uq(`mousemove`),Kq=Uq(`mouseup`),qq=Uq(`touchstart`),Jq=Uq(`touchmove`),Yq=Uq(`touchend`),Xq=Uq(`dragstart`),Zq=Uq(`pointercancel`),Qq=Uq(`blur`);we().pipe(Ie());const $q=Uq(Hq.type).pipe(Me(e=>e.detail.originEvent)),eJ=Ne(Wq,qq,$q),tJ=Ne(Kq,Yq,Xq,Zq,Qq);let nJ=0,rJ=0;typeof window<`u`&&eJ.subscribe(e=>{vK(e)?(nJ=e.clientX,rJ=e.clientY):(nJ=e.touches[0].clientX,rJ=e.touches[0].clientY)});const iJ=Ne(Gq.pipe(Me(e=>{let t=e.clientX,n=e.clientY,r=t-nJ,i=n-rJ;return nJ=t,rJ=n,{event:e,movementX:r,movementY:i,x:t,y:n}})),Jq.pipe(ke(e=>e.touches.length===1),Me(e=>{let t=e.touches[0].clientX,n=e.touches[0].clientY,r=t-nJ,i=n-rJ;return nJ=t,rJ=n,{event:e,movementX:r,movementY:i,x:t,y:n}}))).pipe(Be(tJ)),aJ={left:`left`,right:`right`,bottom:`bottom`,lt:`lt`,rt:`rt`,lb:`lb`,rb:`rb`},oJ={vertical:`vertical`,horizontal:`horizontal`,edge:`edge`},sJ={left:`ew-resize`,right:`ew-resize`,bottom:`ns-resize`,lt:`nwse-resize`,rt:`nesw-resize`,lb:`nesw-resize`,rb:`nwse-resize`},cJ=(e,t)=>[{shape:oJ.vertical,position:aJ.left},{shape:oJ.vertical,position:aJ.right,left:t},{shape:oJ.horizontal,position:aJ.bottom,top:e},{shape:oJ.edge,position:aJ.lt},{shape:oJ.edge,position:aJ.rt,left:t},{shape:oJ.edge,position:aJ.lb,top:e},{shape:oJ.edge,position:aJ.rb,top:e,left:t}],lJ=({shape:e,top:t=0})=>t===0&&e===oJ.vertical?t:t-5/2,uJ=({shape:e,left:t=0})=>t===0&&e===oJ.horizontal?t:t-5/2,dJ=e=>vK(e.evt)?{x:e.evt.clientX,y:e.evt.clientY}:{x:e.evt.touches[0]?.clientX??0,y:e.evt.touches[0]?.clientY??0},fJ=(e,t)=>{let n=sK(t),r=Lq();co(r.release);let i=0,a=0,o=({movementX:t,x:r},a)=>{let{zoomLevel:o}=n.value.store.state.settings,s=Object.assign({change:!1},e.memo.ui),c=t/o,l=a===K.left?s.width-c:s.width+c;return 116<l&&(t<0?r<i:r>i)&&(a===K.left&&(s.x+=c),i+=t,s.width=l,s.change=!0),s},s=({movementY:t,y:r},i)=>{let{zoomLevel:o}=n.value.store.state.settings,s=Object.assign({change:!1},e.memo.ui),c=t/o,l=i===K.top?s.height-c:s.height+c;return 100<l&&(t<0?r<a:r>a)&&(i===K.top&&(s.y+=c),a+=t,s.height=l,s.change=!0),s},c=(t,r)=>{t.event.type===`mousemove`&&t.event.preventDefault();let{store:i}=n.value,a=null,c=null;switch(r){case aJ.left:case aJ.right:a=o(t,r);break;case aJ.bottom:c=s(t,K.bottom);break;case aJ.lt:a=o(t,K.left),c=s(t,K.top);break;case aJ.rt:a=o(t,K.right),c=s(t,K.top);break;case aJ.lb:a=o(t,K.left),c=s(t,K.bottom);break;case aJ.rb:a=o(t,K.right),c=s(t,K.bottom)}if(!a?.change&&!c?.change)return;let{id:l,ui:u}=e.memo,d=a?.change?a:u,f=c?.change?c:u;i.dispatch(lA({id:l,x:d.x,y:f.y,width:d.width,height:f.height}))},l=(t,r)=>{if(!xK(t.evt)||bK(t.evt))return;let o=dJ(t);i=o.x,a=o.y;let s=Rq(t,sJ[r]),l=iJ.subscribe(t=>{let{state:i}=n.value.store;if(!Kx(i)||!i.doc.memoIds.includes(e.memo.id)){l.unsubscribe();return}c(t,r)});l.add(s)};return()=>{let t=e.left-2,n=e.top-2;return k`${cJ(e.top,e.left).map(e=>k`<k-rect name=${`memo-sash memo-sash-${e.position}`} kind="sash" x=${uJ(e)} y=${lJ(e)} width=${e.shape===oJ.horizontal?t:5} height=${e.shape===oJ.vertical?n:5} fill=${jq} @mousedown=${t=>{l(t,e.position)}} @touchstart=${t=>{l(t,e.position)}} @mouseenter=${t=>{r.set(t,sJ[e.position])}} @mouseleave=${e=>{r.set(e,``)}} />`)}`}},pJ=`400 12px ${xq}`,mJ=12*1.2;let hJ=null;function gJ(){if(hJ!==null)return hJ;if(typeof document>`u`||!document.body)return mJ;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:${pJ};line-height:normal;white-space:pre`,e.textContent=Array.from({length:10},()=>`M`).join(`
|
|
54
|
+
`),document.body.append(e);let t=e.getBoundingClientRect().height;return e.remove(),hJ=t/10||mJ,hJ}function _J(){return gJ()/12}const vJ={whiteSpace:`pre-wrap`,wordBreak:`normal`},yJ=/* @__PURE__ */ new Map;function bJ(e,t){let n=`${t} ${e}`,r=yJ.get(n);if(r)return r;let i=Dn(e,pJ,vJ),{lines:a}=En(i,t,gJ()),o=a.map(e=>e.text);return yJ.size>=256&&yJ.clear(),yJ.set(n,o),o}function xJ(){let e=typeof document>`u`?null:document.createElement(`canvas`).getContext(`2d`);return e?(e.font=pJ,t=>e.measureText(t).width):()=>0}let SJ=null;function CJ(e){return SJ??=xJ(),SJ(e)}function wJ(e){return e.replace(/\r\n?/g,`
|
|
55
|
+
`)}function TJ(e,t){let n=[],r=0;for(let i of bJ(e,t)){let t=r;r+=i.length,e[r]===`
|
|
56
|
+
`&&(r+=1),n.push({text:i,start:t})}return n}function EJ(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-CJ(i));if(e>r)break;n=i.length,r=e}return n}function DJ(e,t,n,r){let i=wJ(e),a=TJ(i,t);if(!a.length)return 0;let o=Math.max(0,Math.floor(r/gJ()));if(o>=a.length)return i.length;let s=a[o];return s.start+EJ(s,n)}function OJ(e){let t=bJ(e.value,e.ui.width).length;return Math.max(0,t*gJ()-e.ui.height)}function kJ(e,t){return Math.min(Math.max(0,t),OJ(e))}function AJ(e,t){return kJ(t,e.memoScrollTopMap[t.id]??0)}function jJ(e,t,n,r){if(!vK(t)||!t.altKey||t.button!==0)return!1;let{store:i,emitter:a}=e;return i.state.editor.selectedMap[n]||i.dispatchSync(r===Qy.memo?uP(n,!1):bP(n,!1)),t.preventDefault(),a.emit($G()),!0}const MJ=ko({active:{},travelled:{}}),NJ=/* @__PURE__ */ new Map;function PJ(e,t=`document`){let n=pw(e,t);NJ.set(n,t===`document`&&GC(e)?RC(e):/* @__PURE__ */ new Map),MJ.active[n]=!0,hw(e,t)}function FJ(e,t=`document`){let n=pw(e,t);Reflect.deleteProperty(MJ.active,n),Reflect.deleteProperty(MJ.travelled,n),NJ.delete(n),gw(e,t)}function IJ(e,t=`document`){return MJ.active[pw(e,t)]===!0}function LJ(e,t=`document`){let n=pw(e,t);MJ.active[n]&&(MJ.travelled[n]=!0)}function RJ(e,t=`document`){let n=IJ(e,t),r=NJ.get(pw(e,t));return n&&r?r:null}function zJ(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 BJ=(e,t,n)=>e===Qy.memo?uP(t,n):e===Qy.tableGroup?qP(t,n):bP(t,n);function VJ(e,t){let n=sK(e),r=(e,t)=>({event:r,movementX:i,movementY:a})=>{r.type===`mousemove`&&r.preventDefault();let{store:o}=n.value;o.dispatch(NU(i,a,e,t))};return{onMoveStart:e=>{if(!e?.target||bK(e.evt))return;let{store:i}=n.value,a=t.entityId(),o=t.source.value,s=xK(e.evt),c=s&&(t.canMove?.()??!0)&&!zJ(e.target,t.blockedKinds(o));if(c&&t.selectType!==Qy.tableGroup&&jJ(n.value,e.evt,a,t.selectType))return;let l=s&&iK(e.evt)||!!i.state.editor.selectedMap[a];if(i.dispatch(BJ(t.selectType,a,l)),!c)return;let u=r(o,{}),d=!1,f=!1,p=0,m=0,h=0,g=0,_=e=>{h+=e.movementX,g+=e.movementY,!f&&Math.abs(h)+Math.abs(g)>=4&&(f=!0,LJ(i.state,o)),u(e)},v=()=>{d&&(f&&o===`document`&&i.dispatch(KP(RJ(i.state,o))),FJ(i.state,o))},y=()=>{d=!0,PJ(i.state,o)};zJ(e.target,t.clickKinds?.(o)??[])||y(),iJ.subscribe(e=>{if(d)return _(e);e.event.type===`mousemove`&&e.event.preventDefault(),p+=e.movementX,m+=e.movementY,!(Math.abs(p)+Math.abs(m)<4)&&(y(),_({...e,movementX:p,movementY:m}))}).add(v)}}}const HJ=[`memo-header-color`,`memo-textarea`,`icon`,`sash`];function UJ(e,t,n){return VJ(e,{entityId:()=>t.memo.id,selectType:Qy.memo,blockedKinds:()=>HJ,source:n})}function WJ(e=`document`){return e===`document`?3:9}function GJ(e=`document`){return e===`document`?2:0}function KJ(e=`document`){return e===`document`?QJ():16}function qJ(e=`document`){return e===`document`?2:8}function JJ(e=`document`,t){return e===`document`?QJ(t):16}function YJ(){return US(`document`)-qJ(`document`)*2-Dq}function XJ(e,t,n){return t?e.inputActive:n===!1?e.placeholder:e.focus}function ZJ(e){let{ascent:t,descent:n}=Eq(e);return Math.round(18.5/2+(t-n)/2)}function QJ(e){let{ascent:t,descent:n}=Eq(e);return(ZJ(e)-(t-n)/2)*2}function $J(e=`document`){return e===`document`?29:31}function eY(e){let t=e[e.length-1];return t?t.x+t.width+8:$J()}function tY(){let{ascent:e,descent:t}=Eq(Sq);return(ZJ()-(e-t)/2)*2}function nY(e,t,n=`document`){let r=n!==`document`,i=[],a=20;for(let o of db(ab(e.settings,n))){let n=NS(e,t,o),s=r?BS(n):n;i.push({focusType:o,x:a,width:s}),a+=s+8}return i}const rY=[{columnType:P.columnLogicalName,focusType:W.columnLogicalName,visible:pb[P.columnLogicalName],width:e=>e.logicalName},{columnType:P.columnName,focusType:W.columnName,visible:pb[P.columnName],width:e=>e.name},{columnType:P.columnDefault,focusType:W.columnDefault,visible:pb[P.columnDefault],width:e=>e.default},{columnType:P.columnComment,focusType:W.columnComment,visible:pb[P.columnComment],width:e=>e.comment},{columnType:P.columnDataType,focusType:W.columnDataType,visible:pb[P.columnDataType],width:e=>e.dataType},{columnType:P.columnDomain,focusType:W.columnDomain,visible:pb[P.columnDomain],width:e=>e.domain},{columnType:P.columnNotNull,focusType:W.columnNotNull,visible:pb[P.columnNotNull],width:()=>35},{columnType:P.columnUnique,focusType:W.columnUnique,visible:pb[P.columnUnique],width:()=>22},{columnType:P.columnAutoIncrement,focusType:W.columnAutoIncrement,visible:pb[P.columnAutoIncrement],width:()=>15}];function iY(e,t,n=`document`){let{settings:r}=e,i=n===`document`,a=ab(r,n),o=[],s=$J(n),c=i?r.columnOrder:_b(r);for(let e of c){let n=rY.find(t=>t.columnType===e);if(!n||i&&!n.visible(r))continue;let c=n.width(t);o.push({columnType:e,focusType:hb(a,n.focusType),x:s,width:c}),s+=c+8}return o}function aY(e,t,n,r,i,a){e.beginPath(),e.rect(n,r,i,a),e.closePath(),e.fillShape(t)}function oY(e){return(t,n)=>{aY(t,n,0,-qJ(e),n.width()+8,US(e))}}const sY={document:oY(`document`),flow:oY(`flow`)};function cY(e){let t=0-GJ(e);return(e,n)=>{aY(e,n,0,t,n.width()+8,24)}}const lY={document:cY(`document`),flow:cY(`flow`)},uY=(e,t)=>{aY(e,t,-4,-2,24,24)},dY=(e,t)=>{aY(e,t,-t.x(),-t.y(),kq,kq)},fY=([e,t],n,r)=>e===`rect`?k`<k-rect x=${Number(t.x??0)} y=${Number(t.y??0)} width=${Number(t.width)} height=${Number(t.height)} cornerRadius=${Number(t.rx??0)} stroke=${n} strokeWidth=${2} lineJoin="round" listening=${r} hitFunc=${r?dY:void 0} />`: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?dY:void 0} />`:k`<k-path data=${String(t.d)} stroke=${n} strokeWidth=${2} lineCap="round" lineJoin="round" listening=${r} hitFunc=${r?dY:void 0} />`;function pY({icon:e,name:t,kind:n,size:r,color:i,x:a,y:o,click:s,mouseenter:c,mouseleave:l}){let u=mq(e);if(!u)return null;let d=r/kq;return k`<k-group name=${t} kind=${n} x=${a} y=${o} scaleX=${d} scaleY=${d} @click=${s&&bq(s)} @mouseenter=${c} @mouseleave=${l}>${u.node.map((e,t)=>fY(e,i,t===0))}</k-group>`}function mY(){let e=/* @__PURE__ */ new Set;return co(()=>{Array.from(e).forEach(e=>le(e)?e():e.unsubscribe()),e.clear()}),{addUnsubscribe:(...t)=>{t.forEach(t=>e.add(t))}}}const hY={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`,tableGroupHeaderBackground:`gray-7`,tableGroupBackground:`grayA-4`,tableGroupBorder:`gray-7`,memoBackground:`gray-2`,memoSelect:`accent-8`,memoBorder:`gray-6`,memoShadow:`override-transparent`,columnSelect:`accent-3`,columnSelectHover:`accent-4`,columnHover:`gray-4`,columnHandleBackground:`gray-2`,columnHandleBorder:`gray-6`,columnHandleHoverBackground:`gray-5`,columnHandleHoverBorder:`gray-7`,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`,toastSuccess:`custom-green--11`,toastError:`custom-red--11`,findReplaceError:`custom-red--11`,mapColumnsError:`custom-red--11`,schemaSqlWarningBackground:`custom-red--4`,schemaSqlWarningForeground:`custom-red--11`,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`,treeBackground:`gray-1`,treeRowHover:`gray-3`,treeRowCurrent:`accent-4`,treeMuted:`gray-11`,treeMatch:`accent-5`,explorerBackground:`gray-1`,explorerBorder:`gray-6`,dictionaryErrorForeground:`custom-red--11`,dictionaryErrorBackground:`custom-red--4`,dictionaryWarningForeground:`custom-amber--11`,dictionaryWarningBackground:`custom-amber--4`,dictionaryBackground:`gray-2`,dictionaryHeaderBackground:`gray-5`,dictionaryGridLine:`gray-6`,dictionaryHeaderSelect:`accent-3`,diffInsertForeground:`custom-green--11`,diffDeleteForeground:`custom-red--11`,diffModifyForeground:`custom-amber--11`,diffRenameForeground:`custom-blue--11`},gY={amber:On,amberA:kn,amberDark:An,amberDarkA:jn,blue:Mn,blueA:Nn,blueDark:Pn,blueDarkA:Fn,bronze:In,bronzeA:Ln,bronzeDark:Rn,bronzeDarkA:zn,brown:Bn,brownA:Vn,brownDark:Hn,brownDarkA:Un,crimson:Wn,crimsonA:Gn,crimsonDark:Kn,crimsonDarkA:qn,cyan:Jn,cyanA:Yn,cyanDark:Xn,cyanDarkA:Zn,gold:Qn,goldA:$n,goldDark:er,goldDarkA:tr,grass:nr,grassA:rr,grassDark:ir,grassDarkA:ar,gray:or,grayA:sr,grayDark:cr,grayDarkA:lr,green:ur,greenA:dr,greenDark:fr,greenDarkA:pr,indigo:mr,indigoA:hr,indigoDark:gr,indigoDarkA:_r,iris:vr,irisA:yr,irisDark:br,irisDarkA:xr,jade:Sr,jadeA:Cr,jadeDark:wr,jadeDarkA:Tr,lime:Er,limeA:Dr,limeDark:Or,limeDarkA:kr,mauve:Ar,mauveA:jr,mauveDark:Mr,mauveDarkA:Nr,mint:Pr,mintA:Fr,mintDark:Ir,mintDarkA:Lr,olive:Rr,oliveA:zr,oliveDark:Br,oliveDarkA:Vr,orange:Hr,orangeA:Ur,orangeDark:Wr,orangeDarkA:Gr,pink:Kr,pinkA:qr,pinkDark:Jr,pinkDarkA:Yr,plum:Xr,plumA:Zr,plumDark:Qr,plumDarkA:$r,purple:ei,purpleA:ti,purpleDark:ni,purpleDarkA:ri,red:ii,redA:ai,redDark:oi,redDarkA:si,ruby:ci,rubyA:li,rubyDark:ui,rubyDarkA:di,sage:fi,sageA:pi,sageDark:mi,sageDarkA:hi,sand:gi,sandA:_i,sandDark:vi,sandDarkA:yi,sky:bi,skyA:xi,skyDark:Si,skyDarkA:Ci,slate:wi,slateA:Ti,slateDark:Ei,slateDarkA:Di,teal:Oi,tealA:ki,tealDark:Ai,tealDarkA:ji,tomato:Mi,tomatoA:Ni,tomatoDark:Pi,tomatoDarkA:Fi,violet:Ii,violetA:Li,violetDark:Ri,violetDarkA:zi,yellow:Bi,yellowA:Vi,yellowDark:Hi,yellowDarkA:Ui};[...Object.values({dark:`dark`,light:`light`})],Object.values({gray:`gray`,mauve:`mauve`,slate:`slate`,sage:`sage`,olive:`olive`,sand:`sand`});const _Y={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(_Y),Object.keys(hY),B([_Y.gray,_Y.gold,_Y.bronze]);const vY=[`tomato`,`gold`,`grass`,`teal`,`iris`,`purple`,`plum`,`pink`].map(e=>We(gY,`${e}.${e}9`)??``);function yY(e){let t=0;for(let n=0;n<e.length;n++)t=t*31+e.charCodeAt(n)|0;return vY[Math.abs(t)%vY.length]}function bY(e,t){let n=sK(e),{addUnsubscribe:r}=mY(),i=ko({force:!1}),a=()=>{i.force=!i.force};return so(()=>{let{store:e}=n.value,{editor:{sharedSelectionTrackerMap:t}}=e.state;r(Ao(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?yY(r.id):null}}}const xY={insert:1,delete:2,modify:4,rename:8};function SY(e,t){switch(t){case xY.insert:return e.diffInsertForeground;case xY.delete:return e.diffDeleteForeground;case xY.modify:return e.diffModifyForeground;case xY.rename:return e.diffRenameForeground;default:return null}}function CY(e,t,n,r=!1){return t?SY(e,t.get(n))??(r?SY(e,t.get(`entity`)):null):null}function wY(e,t){return SY(e,t?.get(`entity`))}const TY=va(null),EY=e=>Wo(e,TY),DY=va(`document`),OY=e=>Wo(e,DY);function kY(e){return e.ctrlKey?!iK(e)||Math.abs(e.deltaY)<25:!1}const AY=(e,t)=>{let n=sK(t),r=eq(t),i=OY(t),a=EY(t),{sharedSelectColor:o}=bY(t,e.memo.id),{onMoveStart:s}=UJ(t,e,i),c=ko({hover:!1,removeHover:!1}),l=Lq();co(l.release);let u=()=>{c.hover=!0},d=()=>{c.hover=!1},f=e=>{c.removeHover=!0,l.set(e,Pq)},p=e=>{c.removeHover=!1,l.set(e,``)},m=()=>{let{store:t}=n.value;t.dispatch(lP(e.memo.id))},h=t=>{let{emitter:r}=n.value;r.emit(ZG({x:t.evt.clientX,y:t.evt.clientY,color:e.memo.ui.color}))},g=t=>{if(e.preview)return;let{store:r}=n.value,{memo:i}=e,a=t.currentTarget.getRelativePointerPosition();if(a){let e=AJ(r.state.editor,i);i.id,DJ(i.value,i.ui.width,a.x,a.y+e)}r.dispatch(pO({id:i.id}))},_=t=>{l.set(t,e.preview?``:`text`)},v=e=>{l.set(e,``)},y=t=>{if(kY(t.evt)||(t.evt.stopPropagation(),t.evt.preventDefault(),e.preview||iK(t.evt)))return;let{store:r}=n.value,{memo:i}=e,a=AJ(r.state.editor,i),o=kJ(i,a+t.evt.deltaY);o!==a&&r.dispatch(xO({id:i.id,scrollTop:o}))};return()=>{let{store:t}=n.value,{editor:i}=t.state,{memo:b}=e,ee=r.value,te=!!i.selectedMap[b.id],ne=Nq(ee.memoShadow),re=o(),ie=!e.preview&&i.editMemoId===b.id,ae=bJ(b.value,b.ui.width).join(`
|
|
57
|
+
`),oe=e.preview?0:AJ(i,b),{width:x,height:se}=oC(b),ce=1/2,le=a.value?.get(b.id);return k`<k-group id=${e.preview?``:`memo-${b.id}`} name="memo" kind="memo" selected=${te} sharedSelect=${re} x=${b.ui.x} y=${b.ui.y} @mousedown=${s} @touchstart=${s} @mouseenter=${u} @mouseleave=${d}><k-rect name="memo-shared-select" kind="memo-shared-select" x=${-.5} y=${-.5} width=${x+1} height=${se+1} cornerRadius=${7} stroke=${re??``} strokeWidth=${1} listening=${!1} /><k-rect name="memo-body" kind="memo-body" x=${ce} y=${ce} width=${x-1} height=${se-1} cornerRadius=${6} fill=${ee.memoBackground} stroke=${te?ee.memoSelect:ee.memoBorder} strokeWidth=${1} shadowColor=${ne?.color} shadowBlur=${ne?.blur} shadowOffsetX=${ne?.offsetX} shadowOffsetY=${ne?.offsetY} shadowOpacity=${ne?.opacity} shadowForStrokeEnabled=${!ne&&void 0} />${zq({name:`memo-diff-outline`,stroke:wY(ee,le),width:x,height:se,cornerRadius:7})}<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=${x-2} height=${4} cornerRadius=${[6,6,0,0]} fill=${b.ui.color} @click=${bq(h)} @mouseenter=${e=>{l.set(e,Pq)}} @mouseleave=${e=>{l.set(e,``)}} />${pY({icon:`x`,name:`memo-remove`,kind:`icon`,size:12,color:c.hover?c.removeHover?ee.active:ee.foreground:Aq,x:8+b.ui.width-12,y:8,click:m,mouseenter:f,mouseleave:p})}<k-group name="memo-text-clip" kind="memo-textarea" x=${8} y=${24} clipX=${0} clipY=${0} clipWidth=${b.ui.width} clipHeight=${b.ui.height} @click=${bq(g)} @mouseenter=${_} @mouseleave=${v} @wheel=${y}><k-rect name="memo-textarea-hit" kind="memo-textarea" x=${0} y=${0} width=${b.ui.width} height=${b.ui.height} fill=${jq} /><k-text name="memo-textarea" kind="memo-textarea" offsetY=${oe} text=${ae} visible=${!ie} fill=${CY(ee,le,`memoValue`)??ee.active} fontFamily=${xq} fontSize=${12} fontStyle=${`400`} lineHeight=${_J()} wrap="none" /></k-group><${fJ} .memo=${b} .top=${se} .left=${x} /></k-group></k-group>`}},jY={now:()=>performance.now(),requestFrame:e=>requestAnimationFrame(e),cancelFrame:e=>cancelAnimationFrame(e)},MY=/* @__PURE__ */ new Map,NY=/* @__PURE__ */ new Map,PY=ko({});let FY=jY,IY=null;function LY(e){let t=1-e;return 1-t*t*t}function RY(){IY===null&&NY.size!==0&&(IY=FY.requestFrame(zY))}function zY(){IY=null;let e=FY.now();for(let[t,n]of[...NY]){let r=e-n.startedAt,{from:i,to:a}=n;if(r>=300){NY.delete(t),PY[t]=a;continue}let o=r>0?r/300:0;PY[t]=i+(a-i)*LY(o)}RY()}function BY(e,t,n){return`${e} ${t}:${n}`}function VY(e){let t=PY[e];if(t!==void 0)return t;let n=NY.get(e);return n?n.from:MY.get(e)??0}function HY(e,t){let n=MY.get(e);if(n===t)return;if(n===void 0){MY.set(e,t);return}let r=VY(e);MY.set(e,t),NY.set(e,{from:r,to:t,startedAt:FY.now()}),RY()}const UY=/^#([0-9a-f]{3}|[0-9a-f]{6})$/i;function WY(e){let t=UY.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 GY(e,t,n){if(!(n>0))return e;if(n>=1)return t;let r=WY(e),i=WY(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(``)}`}const KY=ko({}),qY=(e,t)=>`${e}\u0000${t}`;function JY(e,t){return KY[qY(e,t)]===!0}function YY(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 XY(e,t,n,r){let i={x:e.x+n.x-t.x,y:e.y+n.y-t.y},a=[e];for(let t=1;t<r;t++){let o=t/r*(Math.PI/2),s=Math.cos(o),c=Math.sin(o);a.push({x:i.x+(e.x-i.x)*s+(n.x-i.x)*c,y:i.y+(e.y-i.y)*s+(n.y-i.y)*c})}return a.push(n),a}function ZY(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}let u=Math.min(6,Math.ceil(l));for(let e of XY(YY(a,i,l),a,YY(a,o,l),u))r(e)}return r(e[e.length-1]),n}function QY(e,t=`document`){let{start:n,end:r}=tx(e,t),[i,a]=Zb(e,t),o=LT(n,r),s=n.tableId===r.tableId;return{path:$Y(n,r,s?Pb(n,r):RT(IT(i),o),s?Pb(n,r):RT(IT(a),o),$b(e,t),t),line:eX(n,r)}}function $Y(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?rX(Ib(this.M,iX(e.direction),this.L,iX(t.direction),Nb(e,t))):rX(a===`document`?ZY(i&&i.length>1?i:aX(this.M,this.L,e.direction),8):Ab(this.M,iX(e.direction),this.L,iX(t.direction)))}},c=1;return e.direction===I.left||e.direction===I.right?(e.direction===I.left&&(c*=-1),o.start.x2=e.x+c*n,o.start.x1+=c*21,s.M.x=o.start.x2,s.M.y=e.y):(e.direction===I.top||e.direction===I.bottom)&&(e.direction===I.top&&(c*=-1),o.start.y2=e.y+c*n,o.start.y1+=c*21,s.M.x=e.x,s.M.y=o.start.y2),c=1,t.direction===I.left||t.direction===I.right?(t.direction===I.left&&(c*=-1),o.end.x2=t.x+c*r,o.end.x1+=c*21,s.L.x=o.end.x2,s.L.y=t.y):(t.direction===I.top||t.direction===I.bottom)&&(t.direction===I.top&&(c*=-1),o.end.y2=t.y+c*r,o.end.y1+=c*21,s.L.x=t.x,s.L.y=o.end.y2),{line:o,path:s}}function eX(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===I.left||e.direction===I.right?(e.direction===I.left&&(a*=-1),n.start.base.x1=n.start.base.x2+=a*9,n.start.base2.x1=n.start.base2.x2+=a*15,n.start.center.x1=n.start.base.x1,n.start.base.y1-=6,n.start.base.y2+=6,n.start.base2.y1-=6,n.start.base2.y2+=6,n.start.center2.x1+=a*21,i.cx+=a*15):(e.direction===I.top||e.direction===I.bottom)&&(e.direction===I.top&&(a*=-1),n.start.base.y1=n.start.base.y2+=a*9,n.start.base2.y1=n.start.base2.y2+=a*15,n.start.center.y1=n.start.base.y1,n.start.base.x1-=6,n.start.base.x2+=6,n.start.base2.x1-=6,n.start.base2.x2+=6,n.start.center2.y1+=a*21,i.cy+=a*15),a=1,t.direction===I.left||t.direction===I.right?(t.direction===I.left&&(a*=-1),n.end.base.x1=n.end.base.x2+=a*9,n.end.base2.x1=n.end.base2.x2+=a*15,n.end.center.x1=n.end.left.x1=n.end.right.x1=n.end.base.x1,n.end.base.y1-=6,n.end.base.y2+=6,n.end.base2.y1-=6,n.end.base2.y2+=6,n.end.left.y2+=6,n.end.right.y2-=6,n.end.center2.x1+=a*21,r.cx+=a*15):(t.direction===I.top||t.direction===I.bottom)&&(t.direction===I.top&&(a*=-1),n.end.base.y1=n.end.base.y2+=a*9,n.end.base2.y1=n.end.base2.y2+=a*15,n.end.center.y1=n.end.left.y1=n.end.right.y1=n.end.base.y1,n.end.base.x1-=6,n.end.base.x2+=6,n.end.base2.x1-=6,n.end.base2.x2+=6,n.end.left.x2+=6,n.end.right.x2-=6,n.end.center2.y1+=a*21,r.cy+=a*15),{line:n,circle:r,startCircle:i}}function tX(e){if(!e.length)return``;let[[t]]=e,n=`M${nX(t.x)} ${nX(t.y)}`;for(let[,t]of e)n+=`L${nX(t.x)} ${nX(t.y)}`;return n}function nX(e){return Math.round(e*100)/100}function rX(e){let t=[];for(let n=1;n<e.length;n++)t.push([e[n-1],e[n]]);return t}function iX(e){let t=BT(e);return zT(e)?{x:t,y:0}:{x:0,y:t}}function aX(e,t,n){if(zT(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 oX=`relationship-decoration`,sX=({x1:e,y1:t,x2:n,y2:r})=>[e,t,n,r];function cX(e,t,n){return k`<k-line name=${oX} kind=${oX} points=${sX(e)} stroke=${t} strokeWidth=${n} listening=${!1} />`}function lX({cx:e,cy:t},n,r){return k`<k-circle name=${oX} kind=${oX} x=${e} y=${t} radius=${5} stroke=${n} strokeWidth=${r} listening=${!1} />`}const uX={1:{ring:!0,ticks:[`base`,`left`,`center`,`right`]},[r_.ZeroOne]:{ring:!0,ticks:[`base`,`center`]},[r_.ZeroN]:{ring:!0,ticks:[`left`,`center`,`right`]},[r_.OneOnly]:{ring:!1,ticks:[`base`,`base2`,`center2`]},[r_.OneN]:{ring:!1,ticks:[`base`,`left`,`center2`,`right`]},32:{ring:!1,ticks:[`base`,`center2`]},64:{ring:!1,ticks:[`left`,`center2`,`right`]}};function dX(e,{path:t,line:n},r,i){let a=uX[e];return a?k`${cX(t.line.end,r,i)}${a.ring?lX(n.circle,r,i):null}${a.ticks.map(e=>cX(n.line.end[e],r,i))}`:null}const fX=[10,10],pX=[];function mX({direction:e}){let t=e===I.left||e===I.top?-1:1;return e===I.left||e===I.right?{along:{x:t,y:0},across:{x:0,y:1}}:{along:{x:0,y:t},across:{x:1,y:0}}}function hX({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 gX({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 _X(e){let t=mX(e),n=(n,r)=>hX(e,t,n,r),r=n(9,0);return[tX([[n(9,-6),n(9,6)]]),tX([[n(15,-6),n(15,6)]]),tX([[r,n(0,6)]]),tX([[r,n(0,-6)]]),gX(n(15,0),5)].join(``)}function vX({start:e,end:t},{line:n},r){return`${tX([[{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}]])}${_X(e)}${_X(t)}`}function yX(e){return 8/(e>0?e:1)}const bX=(e,t)=>{let n=sK(t),r=eq(t),i=OY(t),a=EY(t),o=ko({hover:!1}),s=null,c=()=>{let t=nF(e.relationship);t?s?.setAttribute(`title`,t):s?.removeAttribute(`title`)},l=()=>{s?.removeAttribute(`title`),s=null},u=e=>{i.value===`document`&&(s=e.target.getStage()?.container()??null,c())};co(l);let d=t=>{let{relationship:r}=e,{store:i}=n.value;o.hover=!0,e.onHover?.(r.id,!0),u(t),i.dispatch(NO({columnIds:[...r.start.columnIds,...r.end.columnIds]}))},f=()=>{let{store:t}=n.value;o.hover=!1,e.onHover?.(e.relationship.id,!1),l(),t.dispatch(NO({columnIds:[]}))};return()=>{let{store:t}=n.value,{editor:l}=t.state,{relationship:u,strokeWidth:p}=e,m=r.value,h=i.value,{zoomLevel:g}=ew(t.state,h),_=tx(u,h),v=QY(u,h),{path:y,line:b}=v,ee=y.path.d(),te=h!==`document`,ne=!!l.hoverRelationshipMap[u.id],re=!te&&JY(l.id,u.id),ie=o.hover||ne||re,ae=te?m.visualizationRelationship:u.identification?m.keyPFK:m.keyFK,oe=ie?m.relationshipHover:wY(m,a.value?.get(u.id))??ae,x=BY(l.id,`relationship`,u.id),se=0;te&&(HY(x,+!!e.lit),se=VY(x));let ce=GY(oe,m.accentColor9,se),le=dX(u.relationshipType,v,ce,p);return s&&c(),k`<k-group name=${`relationship ${u.id}`} kind="relationship" @mouseenter=${d} @mouseleave=${f}><k-path name="relationship-hit-area" kind="relationship-hit-area" data=${vX(_,y,ee)} hitStrokeWidth=${yX(g)} lineCap="round" /><k-path name="relationship-route" kind="relationship-route" data=${tX(ee)} dash=${te||u.identification?pX:fX} stroke=${ce} strokeWidth=${p} listening=${!1} />${cX(y.line.start,ce,p)}${cX(b.line.start.base,ce,p)}${u.startRelationshipType===i_.ring?k`${lX(b.startCircle,ce,p)}${cX(b.line.start.center,ce,p)}`:k`${cX(b.line.start.base2,ce,p)}${cX(b.line.start.center2,ce,p)}`}${le}</k-group>`}};function xX(e,t){let{x:n,y:r,direction:i}=e,a=Math.ceil(t.length*6.1)+4,o={width:a,height:14};switch(i){case I.left:return{x:n-3-a,y:r-9-14,...o};case I.right:return{x:n+3,y:r-9-14,...o};case I.top:return{x:n+9,y:r-3-14,...o};default:return{x:n+9,y:r+3,...o}}}const SX=(e,t)=>{let n=sK(t),r=eq(t),i=OY(t);return()=>{let{store:t}=n.value,{editor:a,settings:o}=t.state,{relationship:s}=e,c=r.value,l=i.value,{zoomLevel:u}=ew(t.state,l),d=l!==`document`||dv(u)||G(o.show,N.hideReferentialAction)?``:tF(s);if(!d)return null;let f=JY(a.id,s.id)||e.hovered?.id===s.id||!!a.hoverRelationshipMap[s.id],p=s.identification?c.keyPFK:c.keyFK,m=xX(tx(s,l).end,d);return k`<k-group name=${`relationship-action-label ${s.id}`} x=${m.x} y=${m.y} listening=${!1}><k-rect name="relationship-action-box" width=${m.width} height=${m.height} fill=${c.canvasBackground} /><k-text name="relationship-action-text" x=${2} y=${2} text=${d} fill=${f?c.relationshipHover:p} fontFamily=${Sq} fontSize=${10} wrap="none" /></k-group>`}},CX=(e,t)=>{let n=OY(t),r=ko({id:``}),i=(e,t)=>{t?r.id=e:r.id===e&&(r.id=``)};return()=>{let{relationships:t,viewport:a,litIds:o}=e,s=n.value,c=e.strokeWidth??ax(s),l=a?t.filter(e=>dw(a,e,c,s)):t;return k`<k-group name="relationship-group" kind="relationship-group">${fd(l,e=>e.id,e=>k`<${bX} .relationship=${e} .strokeWidth=${c} .lit=${o?.has(e.id)??!1} .onHover=${i} />`)}${fd(l,e=>e.id,e=>k`<${SX} .relationship=${e} .hovered=${r} />`)}</k-group>`}},wX=ko({pointers:{}});function TX(e,t,n,{columnId:r,columnIds:i}){let a=iC(e,t,t.columnIds.indexOf(r)),o=Math.max(i.indexOf(r),0);wX.pointers[pw(e,`document`)]={...n,grabX:n.x-nC(e,t).x,grabY:n.y-a.y+o*24,over:!0}}function EX(e,{x:t,y:n},r){let i=wX.pointers[pw(e,`document`)];i&&(i.x=t,i.y=n,i.over=r)}function DX(e){Reflect.deleteProperty(wX.pointers,pw(e,`document`))}function OX(e,t,n){return ob(e)?{standIn:t.trim()?t:``,key:n}:{standIn:``,key:`common.placeholder.logicalName`}}function kX(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(` `)}const AX={duplicateName:`duplicateName`,unknownDomain:`unknownDomain`,unregisteredWord:`unregisteredWord`,forbiddenWord:`forbiddenWord`,synonymWord:`synonymWord`,physicalNameMismatch:`physicalNameMismatch`,domainTypeMismatch:`domainTypeMismatch`};Object.values(AX);const jX={error:`error`,warning:`warning`},MX={duplicateName:jX.error,unknownDomain:jX.error,unregisteredWord:jX.warning,forbiddenWord:jX.error,synonymWord:jX.warning,physicalNameMismatch:jX.warning,domainTypeMismatch:jX.warning},NX={[mN.synonym]:AX.synonymWord,[mN.forbidden]:AX.forbiddenWord,[mN.unregistered]:AX.unregisteredWord},PX=e=>[...new Set(e.map(({name:e})=>sy(e)))],FX=Object.freeze([]);function IX(e,t){if(e.byName.size===0)return FX;let n=[],r=/* @__PURE__ */ new Set;for(let i of xN(e,t)){if(i.kind===mN.word)continue;let e=NX[i.kind],t=`${e}:${i.text}`;r.has(t)||(r.add(t),n.push({code:e,text:i.text,suggestions:PX(i.words)}))}return n.length?n:FX}function LX(e,t,n){for(let{code:r,text:i,suggestions:a}of e)n({code:r,field:t,text:i,suggestions:a})}const RX=(e,t,n,r)=>LX(IX(Sy(e),n),t,r);function zX(e,t,n,r,i){let a=sy(n),o=a?e.byName.get(a)?.[0]:void 0;if(!o)return;let s=o.physicalName.trim()||(t.byName.size===0?``:SN(xN(t,a))??``);s&&r.trim()!==s&&i({code:AX.physicalNameMismatch,field:`name`,text:r,suggestions:[s]})}function BX(e,t,n=e.doc.domainIds){return!t||n.length===0||A_(n,t)?null:e.collections.domainEntities[t]?.name||t}function VX(e,t,n,r=e.doc.domainIds){let i=BX(e,t,r);i!==null&&n({code:AX.unknownDomain,field:`domainId`,text:i,suggestions:[]})}function HX(e,t,n=e.doc.domainIds){return!t||!A_(n,t)?null:e.collections.domainEntities[t]?.dataType??null}function UX(e,{domainId:t,dataType:n},r,i=e.doc.domainIds){let a=HX(e,t,i);a!==null&&a!==n&&r({code:AX.domainTypeMismatch,field:`domainId`,text:n,suggestions:[a]})}z.word,z.term,z.domain;function WX(e,t,n){let r=[];return n(e=>!t||e===t,t=>r.push({...t,target:e})),r}const GX=(e,t,n)=>WX({kind:`table`,id:t.id,tableId:t.id},n,(n,r)=>{n(`logicalName`)&&RX(e,`logicalName`,t.logicalName,r),n(`name`)&&zX(Cy(e),Sy(e),t.logicalName,t.name,r)}),KX=(e,t,n)=>WX({kind:`column`,id:t.id,tableId:t.tableId},n,(n,r)=>{n(`logicalName`)&&RX(e,`logicalName`,t.logicalName,r),n(`name`)&&zX(Cy(e),Sy(e),t.logicalName,t.name,r),n(`domainId`)&&(VX(e,t.domainId,r),UX(e,t,r))});function qX(e){let t=null;for(let{code:n}of e)if(t=MX[n],t===jX.error)break;return t}const JX=new Set(Object.values(v_)),YX=/* @__PURE__ */ new WeakMap;function XX(e){let t=YX.get(e);if(!t){let n=ko({count:0});e.subscribe(e=>{e.some(({type:e})=>JX.has(e))&&(n.count+=1)}),YX.set(e,n),t=n}return t.count}const ZX=(e,t)=>t===jX.error?e.dictionaryErrorForeground:t===jX.warning?e.dictionaryWarningForeground:null;function QX(e,t){if(!e)return null;let n=OC(e),r=OC(t);return n===null||r===null||kC(n,r)>=4.5?e:null}function $X(e,t,n,r){return XX(e),ZX(t,qX(GX(e.state,n,r)))}function eZ(e,t,n,r){return XX(e),ZX(t,qX(KX(e.state,n,r)))}const tZ=e=>e.evt?.detail??0;function nZ(){let e=null;return{track(t,n){tZ(n)<=1&&(e=t)},isDouble(t,n){return tZ(n)>=2&&e===t}}}const rZ=(e,t)=>{let n=G(e,R.primaryKey),r=G(e,R.foreignKey);return n&&r?t.keyPFK:n?t.keyPK:r?t.keyFK:Aq},iZ=(e,t,n,r,i)=>!t&&n?r?e.columnSelectHover:e.columnSelect:i>0?r?GY(e.columnHover,e.accentColor4,i):GY(e.tableBackground,e.accentColor3,i):r?e.columnHover:Aq,aZ=(e,t)=>{let n=sK(t),r=eq(t),i=QK(t),a=ko({hover:!1,removeHover:!1,handleHover:!1}),{addUnsubscribe:o}=mY(),s=nZ(),c=Lq(),l=null,u=()=>{l?.unsubscribe(),l=null},d=null,f=()=>{let e=a.handleHover?d:null;d=null,a.handleHover=!1,c.release();let t=e?.getParent()??null;for(;t&&t.getType()===`Group`&&(t.fire(`mouseleave`),t.getAttr(`kind`)!==`table`);)t=t.getParent()};o(u,f,Ao(e).subscribe(t=>{t===`dragHandle`&&!e.dragHandle&&f()}));let p=t=>{if(!xK(t.evt)||bK(t.evt))return;u();let n=!1,r=iJ.subscribe({next:()=>{n||(n=!0,e.onDragstart?.(e.column.id,t))},complete:()=>{l===r&&(l=null),n&&e.onDragend?.()}});l=r},m=!1,h=null,g=t=>{m=!!n.value.store.state.editor.drawRelationship;let r=h===t.evt;if(h=null,r||!yK(t.evt))return;let{focusTable:i}=n.value.store.state.editor,a=i?.columnId===e.column.id?i.focusType:W.columnName;ie(a,t)},_=()=>{a.hover=!0},v=()=>{a.hover=!1},y=e=>{d=e.currentTarget,a.handleHover=!0,c.set(e,`grab`)},b=e=>{d=null,a.handleHover=!1,c.set(e,``)},ee=e=>{a.removeHover=!0,Iq(e,Pq)},te=e=>{a.removeHover=!1,Iq(e,``)},ne=(e,t)=>t?a.removeHover?e.active:e.foreground:Aq,re=t=>{if(!yK(t))return{$mod:iK(t),shiftKey:t.shiftKey};let{focusTable:r}=n.value.store.state.editor,{column:i}=e;return{$mod:r?.tableId===i.tableId&&r.selectColumnIds.includes(i.id),shiftKey:!1}},ie=(t,r)=>{if(e.source!==`document`)return;h=r.evt;let{store:i}=n.value,{column:a}=e;i.dispatch(rO({tableId:a.tableId,columnId:a.id,focusType:t,...re(r.evt)}))},ae=(t,r)=>{if(!s.isDouble(t,r)||e.source!==`document`)return;let{store:i}=n.value,{column:a}=e;i.dispatch(EP(t)?AP(t,a.tableId,a.id):lO())},oe=()=>{if(m)return;let{store:t}=n.value,{column:r}=e;t.dispatch(kP(r.tableId,[r.id]))},x=()=>{let{column:t}=e;if(t.ui.keys===0)return;let{store:r}=n.value;r.dispatch(hW(t.id))},se=()=>{let{store:e}=n.value;e.dispatch(gW())},ce=t=>{let{column:i}=e;return!e.checkMarks||!i[t].trim()?null:eZ(n.value.store,r.value,i,t)},le=({focusType:t,x:n,width:i,text:a,fill:o,focus:c,edit:l,sharedFocus:u,ellipsis:d,opacity:f=1,align:p,fontFamily:m=xq,diffFallback:h=null,diffPath:g=t})=>k`<k-group name=${`column-col ${t}`} kind="column-col" sharedFocus=${u} x=${n} y=${0} opacity=${f} listening=${f>0} @mousedown=${e=>{ie(t,e),s.track(t,e)}} @dblclick=${e=>{ae(t,e)}}><k-text name="cell-text" y=${qJ(e.source)} width=${i} height=${JJ(e.source,m)} text=${a} fill=${CY(r.value,e.diffPaths,g,!0)??h??o} fontFamily=${m} fontSize=${12} align=${p} verticalAlign="middle" wrap="none" ellipsis=${d} visible=${!l} hitFunc=${sY[e.source]} />${c&&e.source===`document`?k`<k-rect name="cell-focus-border" y=${qJ(e.source)+YJ()} width=${i} height=${Dq} fill=${XJ(r.value,l,e.editorFocused)} listening=${!1} />`:null}${u?k`<k-rect name="cell-shared-focus-border" y=${US(e.source)-Dq} width=${i+8} height=${Dq} fill=${u} listening=${!1} />`:null}</k-group>`,S=({focusType:t,x:a,width:o},s,c)=>{let{column:l}=e,u=r.value,d=l.logicalName.trim()!==``,f=l.logicalName;if(!d){let{standIn:e,key:t}=OX(n.value.store.state.settings,l.name,`common.placeholder.column`);f=e||i.value.t(t)}return le({focusType:t,x:a,width:o,text:f,fill:ce(`logicalName`)??(d?u.active:u.placeholder),...s,ellipsis:!0,diffFallback:c})},ue=e=>e.columnType===P.columnDataType?W.columnDataType:e.focusType,de=(t,a)=>{let{columnType:o,focusType:s,x:c,width:l}=t,{column:u}=e,d=r.value,f=e.source!==`document`;switch(o){case P.columnName:return s===W.columnLogicalName?S(t,{focus:e.focusName,edit:e.editName,sharedFocus:e.sharedFocusName},a):le({focusType:s,x:c,width:l,text:u.name.trim()?u.name:i.value.t(`common.placeholder.column`),fill:ce(`name`)??(u.name.trim()?d.active:d.placeholder),focus:e.focusName,edit:e.editName,sharedFocus:e.sharedFocusName,ellipsis:!0,diffFallback:a});case P.columnDefault:return le({focusType:s,x:c,width:l,text:u.default.trim()?u.default:i.value.t(`common.placeholder.default`),fill:u.default.trim()?d.active:d.placeholder,focus:e.focusDefault,edit:e.editDefault,sharedFocus:e.sharedFocusDefault,ellipsis:!0});case P.columnComment:return le({focusType:s,x:c,width:l,text:u.comment.trim()?u.comment:i.value.t(`common.placeholder.comment`),fill:u.comment.trim()?d.active:d.placeholder,focus:e.focusComment,edit:e.editComment,sharedFocus:e.sharedFocusComment,ellipsis:!0});case P.columnDataType:{let r=s===W.columnDomain?F_(n.value.store.state,u.domainId):``,a=r!==``||u.dataType.trim()!==``;return le({focusType:s,x:c,width:l,text:r||(u.dataType.trim()?u.dataType:i.value.t(`common.placeholder.dataType`)),fill:a?d.active:d.placeholder,focus:e.focusDataType,edit:e.editDataType,sharedFocus:e.sharedFocusDataType,ellipsis:!0,align:f?`right`:void 0,fontFamily:f&&!r?Sq:void 0,diffPath:ue(t)})}case P.columnLogicalName:return S(t,{focus:e.focusLogicalName??!1,edit:e.editLogicalName??!1,sharedFocus:e.sharedFocusLogicalName??null},null);case P.columnDomain:{let t=F_(n.value.store.state,u.domainId);return le({focusType:s,x:c,width:l,text:t||i.value.t(`common.placeholder.domain`),fill:t?d.active:d.placeholder,focus:e.focusDomain??!1,edit:e.editDomain??!1,sharedFocus:e.sharedFocusDomain??null,ellipsis:!0})}case P.columnNotNull:return le({focusType:s,x:c,width:l,text:G(u.options,L.notNull)?`N-N`:`NULL`,fill:d.active,focus:e.focusNotNull,edit:!1,sharedFocus:e.sharedFocusNotNull,ellipsis:!1});case P.columnUnique:return le({focusType:s,x:c,width:l,text:`UQ`,fill:G(u.options,L.unique)?d.active:d.placeholder,focus:e.focusUnique,edit:!1,sharedFocus:e.sharedFocusUnique,ellipsis:!1});case P.columnAutoIncrement:return le({focusType:s,x:c,width:l,text:`AI`,fill:G(u.options,L.autoIncrement)?d.active:d.placeholder,focus:e.focusAutoIncrement,edit:!1,sharedFocus:e.sharedFocusAutoIncrement,ellipsis:!1})}return null},C=(t,n)=>{let{diffPaths:r}=e;if(!r)return null;for(let i of r.keys()){if(i===`entity`||i===`columnPrimaryKey`&&e.column.ui.keys!==0||t.some(e=>ue(e)===i))continue;let a=CY(n,r,i);if(a)return a}return null},w=e=>{let t=C(e,r.value);return e.map(e=>({columnType:e.columnType,template:de(e,t)})).filter(({template:e})=>!!e)},fe=(t,n)=>e.widthAlternateKey&&e.source===`document`?k`<k-text name="column-alternate-key" x=${eY(t)} y=${qJ(e.source)} width=${e.widthAlternateKey} height=${tY()} text=${e.alternateKey??``} fill=${n.foreground} fontFamily=${Sq} fontSize=${12} verticalAlign="middle" wrap="none" listening=${!1} />`:null,pe=(e,t)=>{let n=a.handleHover;return k`<k-group name="column-drag-handle" kind="column-drag-handle" x=${-20} y=${(e-20)/2} opacity=${n?1:.5} @mousedown=${p} @touchstart=${p} @mouseenter=${y} @mouseleave=${b}><k-rect name="column-drag-handle-button" x=${1/2} y=${1/2} width=${15} height=${19} cornerRadius=${4} fill=${n?t.columnHandleHoverBackground:t.columnHandleBackground} stroke=${n?t.columnHandleHoverBorder:t.columnHandleBorder} strokeWidth=${1} hitFunc=${uY} />${pY({icon:`grip-vertical`,name:`column-drag-handle-icon`,kind:`column-drag-handle`,size:12,color:n?t.active:t.foreground,x:2,y:4})}</k-group>`};return()=>{let{store:t}=n.value,{editor:i}=t.state,{column:o,selected:s,width:c}=e,l=r.value,u=!!(e.hovered||a.hover||i.hoverColumnMap[o.id]),d=!!i.draggingColumnMap[o.id],f=c-18,p=e.source!==`document`,m=iZ(l,p,s,u,p&&e.related?e.litAlpha??0:0),h=US(e.source),y=p?16:12,b=iY(t.state,{name:e.widthName,logicalName:e.widthLogicalName??0,comment:e.widthComment,dataType:e.widthDataType,domain:e.widthDomain??0,default:e.widthDefault},e.source);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=${d?.5:1} visible=${!e.ghost} @mousedown=${g} @mouseenter=${_} @mouseleave=${v}><k-rect name="column-row-background" x=${1} width=${c-2} height=${h} cornerRadius=${e.last?[0,0,6,6]:0} fill=${m} />${pY({icon:`key-round`,name:`column-col column-key`,kind:`column-col`,size:y,color:o.ui.keys===0?Aq:CY(l,e.diffPaths,`columnPrimaryKey`,!0)??rZ(o.ui.keys,l),x:9,y:(h-y)/2,mouseenter:x,mouseleave:se})}${fd(w(b),({columnType:e})=>e,({template:e})=>e)}${fe(b,l)}${e.divider?k`<k-line name="column-row-divider" points=${[1,h,c-1,h]} stroke=${l.tableBorder} strokeWidth=${1} listening=${!1} />`:null}${p?null:pY({icon:`x`,name:`column-remove`,kind:`icon`,size:12,color:ne(l,u),x:9+f-12,y:6,click:oe,mouseenter:ee,mouseleave:te})}${e.dragHandle&&!p&&!e.preview&&!e.ghost?pe(h,l):null}</k-group>`}},oZ=.5;function sZ({settings:e},t){let n=iw(e,t),r=iw(e,{x:t.x+t.width,y:t.y+t.height});return[{start:n.x,end:r.x},{start:n.y,end:r.y}]}const cZ=(e,t,n)=>e.start>=t&&e.end<=n;function lZ(e,t,n){let r=e.end-e.start,i=(n-r)/2;if(r<=n)return i;let a=t.start-e.start,o=t.end-t.start;return i=Math.min(i,n-40-a-o),Math.max(i,40-a)}function uZ(e,t,n,r){let i=e.end-e.start;if(i<=n/2){let t=(e.start+e.end)/2;return t>=n/4&&t<=n*3/4?null:(n-i)/2}return i<=n-80?cZ(e,0,n)?null:r===`y`?40:(n-i)/2:cZ(i<=n?e:t,0,n)?null:lZ(e,t,n)}function dZ(e,[t,n],[r,i]){let a=uZ(t,r,e.width,`x`)??t.start,o=uZ(n,i,e.height,`y`)??n.start;return Math.abs(a-t.start)<oZ&&Math.abs(o-n.start)<oZ?null:{x:a,y:o}}function*fZ(e,t,n=t){let r=dZ(e.editor.viewport,sZ(e,t),sZ(e,n));if(!r)return;let i=ow(e.settings.zoomLevel,t,r);yield kw({originX:i.x,originY:i.y})}function pZ(e,t){let n=aC(e,t);if(!dv(e.settings.zoomLevel))return n;let{y:r,height:i}=nC(e,t);return{...n,y:r+(i-n.height)/2}}function mZ({toWidth:e},t){let n=n=>e(t.text.slice(0,n))-e(``);return{start:n(t.start),end:n(t.end)}}function hZ(e,t,n){let[r]=sZ(e,t),i=e.editor.viewport.width-80;if(!n||r.end-r.start<=i)return null;let a=Math.min(n.start,t.width);return{...t,x:t.x+a,width:Math.min(n.end,t.width)-a}}function gZ(e,t,n,r){let i=pZ(e,t);if(dv(e.settings.zoomLevel))return i;let a=nY(e,t).find(e=>e.focusType===n);if(!a)return i;let o={...i,x:i.x+9+a.x,width:a.width};return hZ(e,o,r)||(n===W.tableComment?o:i)}function*_Z(e,t,n=W.tableName,r){yield*fZ(e,nC(e,t),gZ(e,t,n,r))}function vZ(e,t,n,r,i){let a=iC(e,t,n),o=iY(e,rC(e,t)).find(e=>e.focusType===r);if(!o)return a;let s={...a,x:nC(e,t).x+o.x,width:o.width};return hZ(e,s,i)??s}function yZ(e,t){let{settings:n}=e,{show:r}=n,i=t;return t===W.tableComment&&!G(r,N.tableComment)&&(i=W.tableName),t===W.columnComment&&!G(r,N.columnComment)&&(i=W.columnName),bb(n,CD(i)?db(n):gb(n),i)??i}const bZ=e=>function*({doc:t,collections:n}){let r=M(n).collection(`tableEntities`).selectByIds(t.tableIds),i=M(n).collection(`memoEntities`).selectByIds(t.memoIds);yield LD(),yield zD({[e]:Qy.table}),yield wj({id:e,zIndex:XE(r,i)}),yield eO({tableId:e})};function xZ(e,{range:t,focusType:n},r){return t&&n===r?mZ(e,t):void 0}function SZ({doc:e,collections:t},n){let r=M(t).collection(`relationshipEntities`).selectById(n);if(!r||!e.relationshipIds.includes(n))return null;let i=M(t).collection(`tableEntities`),a=i.selectById(r.start.tableId),o=i.selectById(r.end.tableId);return!a||!e.tableIds.includes(a.id)||!o||!e.tableIds.includes(o.id)?null:{relationship:r,start:a,end:o}}function*CZ(e,t){let n=SZ(e,t);if(!n)return;let{relationship:r,start:i,end:a}=n,o=nC(e,a);yield*fZ(e,tC(nC(e,i),o),o),yield bZ(a.id);let s=a.columnIds.filter(e=>r.end.columnIds.includes(e)),c=(e,t)=>rO({tableId:a.id,columnId:e,focusType:W.columnName,$mod:t,shiftKey:!1});for(let[e,t]of s.entries())yield c(t,e>0);s.length>1&&(yield c(s[0],!0))}function*wZ(e,t){if(!GC(e))return;let n=M(e.collections).collection(`tableGroupEntities`).selectById(t);if(!n||!e.doc.tableGroupIds.includes(t))return;let r=FC(e,n);yield*fZ(e,r,{...r,height:Math.min(r.height,28)}),yield qP(n.id,!1)}const TZ=e=>function*(t,n){if(e.kind===`relationship`){yield*CZ(t,e.relationshipId);return}if(e.kind===`tableGroup`){yield*wZ(t,e.tableGroupId);return}if(e.kind===`memo`){if(!Kx(t))return;let n=M(t.collections).collection(`memoEntities`).selectById(e.memoId);if(!n)return;yield*fZ(t,oC(n)),yield uP(n.id,!1);return}let r=M(t.collections).collection(`tableEntities`).selectById(e.tableId);if(!r)return;if(e.kind===`table`){let i=yZ(t,e.focusType??W.tableName);yield*_Z(t,r,i,xZ(n,e,i)),yield bZ(r.id),e.focusType&&(yield eO({tableId:r.id,focusType:i}));return}let i=r.columnIds.indexOf(e.columnId);if(i===-1)return;let a=yZ(t,e.focusType);dv(t.settings.zoomLevel)?yield*_Z(t,r):yield*fZ(t,iC(t,r,i),vZ(t,r,i,a,xZ(n,e,a))),yield bZ(r.id),yield rO({tableId:r.id,columnId:e.columnId,focusType:a,$mod:!1,shiftKey:!1})};function EZ(e){e.state.settings.canvasType!==Yg.ERD&&e.dispatchSync(Rw({value:Yg.ERD}))}function DZ(e,t){EZ(e),e.dispatchSync(TZ(t))}function OZ(e,t){DZ(e,{kind:`table`,tableId:t})}function kZ(e,t){e.store.dispatchSync(Fx({tableIds:t,kind:eb.flow}))}function AZ(e,t,n=`document`){let{collections:r}=e,i=cw(e,n),a=M(r).collection(`tableEntities`).selectByIds($x(e,n).tableIds).filter(t=>uw(i,e,t,n)).sort((e,t)=>e.ui.zIndex-t.ui.zIndex).reverse().map(t=>({table:t,rect:nC(e,t,n)})),o=(e,n,r)=>t.x>=e.x-r&&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,0))??a.find(({rect:e})=>o(e,0,24))??a.find(({rect:e})=>o(e,8,24));if(!s)return null;let{table:c}=s,l=Qx(e,c,n),u={tableId:c.id,columnId:null,index:l.length};if(!l.length)return u;let d=iC(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 jZ({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 MZ=`flipFade`;function NZ(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 PZ(e){let t=/* @__PURE__ */ new Map,n=/* @__PURE__ */ new Map,r=null,i=null,a=(e,t,n,r,i,a)=>{ma(n);let o=!1,s=-1,c=()=>{o||(o=!0,clearTimeout(s),e.delete(t),i(),ha(n))},l=new Gi({node:t,...r,duration:.3,easing:Wi.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(MZ)??1)),i=!1};e.on(`opacityChange.${MZ}`,()=>{i||(r=e.opacity())}),e.setAttr(MZ,0),o();let s=()=>{e.off(`opacityChange.${MZ}`),e.setAttr(MZ,void 0),o()};a(n,e,t,{[MZ]: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}=NZ(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??=ua(l)},cancel(){c(),[...t.values(),...n.values()].forEach(e=>e())}}}function FZ(e,t,n,r=null){if(!e||n!==e.tableId)return!1;switch(t){case W.tableName:case W.tableLogicalName:case W.tableComment:return t===e.focusType}return r===e.columnId&&t===e.focusType}const IZ=(e,t,n)=>e?.tableId===t&&e.selectColumnIds.includes(n),LZ=(e,t,n)=>e?.tableId===t&&e.columnId===n;function RZ(e,t,n,r=null){if(e?.tableId!==n)return!1;switch(t){case W.tableName:case W.tableLogicalName:case W.tableComment:return t===e.focusType&&e.edit}return r===e.columnId&&t===e.focusType&&e.edit}function zZ(e,t){let n=sK(e),r=()=>n.value.store.state.editor.focusTable;return{hasFocus:(e,n)=>FZ(r(),e,t,n),hasEdit:(e,n)=>RZ(r(),e,t,n),hasSelectColumn:e=>IZ(r(),t,e),hasFocusColumn:e=>LZ(r(),t,e)}}const BZ=[`table-header-color`,`column-drag-handle`,`icon`],VZ=[`input-padding`,`column-row`],HZ=[`icon`];function UZ(e,t,n){return VJ(e,{entityId:()=>t.table.id,selectType:Qy.table,blockedKinds:e=>e===`document`?BZ:HZ,clickKinds:e=>e===`document`?VZ:[],source:n})}function WZ(e,t){let n=sK(e),r=OY(e),{addUnsubscribe:i}=mY(),a=ko({force:!1}),o=()=>{a.force=!a.force};so(()=>{let{store:e}=n.value,{editor:{sharedFocusTrackerMap:t}}=e.state;i(Ao(t).subscribe(o))});let s=()=>{let{store:e}=n.value;return a.force,Object.values(e.state.editor.sharedFocusTrackerMap)},c=()=>{let e=s().find(e=>e.tableId===t);return e?yY(e.id):null},l=e=>{let{settings:t}=n.value.store.state,i=r.value,a=ab(t,i),o=bb(a,e.columnId===null?db(a):i===`document`?gb(t):vb(t),e.focusType);return o?{...e,focusType:o}:e};return{sharedFocusTableColor:c,sharedFocusColor:(e,n)=>{let r=s().find(r=>FZ(l(r),e,t,n));return r?yY(r.id):null}}}function GZ(e){if(vK(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 KZ=e=>e.type===`mouseup`||e.type===`touchend`&&!e.touches?.length;function qZ(e,t){return Math.abs(t.x-e.x)<=4&&Math.abs(t.y-e.y)<=4}function JZ(e){return!iK(e)&&xK(e)}function YZ(e,t){let n=GZ(e);n&&!bK(e)&&tJ.pipe(ze(1)).subscribe(e=>{let r=KZ(e)?GZ(e):null;r&&qZ(n,r)&&t()})}function XZ(e,t,n){return{onPress:r=>{let{evt:i}=r,a=n.value;if(a===`document`||!JZ(i))return;let o=e.value.store.state.editor.views[a];if(!o)return;let{id:s}=t.table;YZ(i,()=>{let{store:t}=e.value;t.state.editor.views[a]===o&&cS(t.state,s,a)})}}}const ZZ=[`icon`],QZ=(e,t,n)=>t.trim()?n?e.foreground:e.active:e.placeholder,$Z=(e,t,n,r)=>n&&r?e.placeholder:QZ(e,t,n),eQ=(e,t)=>{let n=sK(t),r=eq(t),i=QK(t),a=OY(t),o=EY(t),{hasEdit:s,hasFocus:c,hasSelectColumn:l,hasFocusColumn:u}=zZ(t,e.table.id),{sharedFocusColor:d,sharedFocusTableColor:f}=WZ(t,e.table.id),{sharedSelectColor:p}=bY(t,e.table.id),{onMoveStart:m}=UZ(t,e,a),h=XZ(n,e,a),{addUnsubscribe:g}=mY(),_=ko({hover:!1,iconHover:null,dragstartId:null}),v=nZ(),y=null,b=null,ee=null,te=()=>{_.hover=!0,a.value!==`document`&&rS(n.value.store.state,e.table.id,a.value)},ne=()=>{_.hover=!1,a.value!==`document`&&rS(n.value.store.state,null,a.value)};g(()=>{a.value!==`document`&&iS(n.value.store.state,e.table.id,a.value)});let re=e=>t=>{_.iconHover=e,Iq(t,Pq)},ie=e=>{_.iconHover=null,Iq(e,``)},ae=(e,t,n,r)=>n?r?r.foreground:_.iconHover===t?e.active:e.foreground:Aq,oe=(t,n)=>n?e.editorFocused===!1?t.placeholder:t.tableSelect:t.tableBorder,x=!1,se=e=>{x=!!n.value.store.state.editor.drawRelationship,!(a.value!==`document`&&zJ(e.target,ZZ))&&(m(e),h.onPress(e))},ce=t=>{if(x)return;let{emitter:r}=n.value;r.emit(ZG({x:t.evt.clientX,y:t.evt.clientY,color:e.table.ui.color}))},le=()=>{if(x)return;let{store:t}=n.value;t.dispatch(OP(e.table.id))},S=()=>{if(x)return;let{store:t}=n.value;t.dispatch(yP(e.table.id))},ue=()=>{kZ(n.value,[e.table.id])},de=()=>{OZ(n.value.store,e.table.id)},C=t=>{if(a.value!==`document`)return;let{store:r}=n.value;r.dispatch(eO({tableId:e.table.id,focusType:t}))},w=(e,t)=>{if(!v.isDouble(e,t)||a.value!==`document`)return;let{store:r}=n.value;r.dispatch(lO())},fe=e=>{let t=b,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},pe=e=>{let{store:t}=n.value,r=fe(e);if(!r)return;let i=AZ(t.state,r,a.value);if(EX(t.state,r,i!==null),!i)return;let{editor:{draggableColumn:o}}=t.state;o&&!jZ(t.state,o,i)&&(ee?.snapshot(),t.dispatch(mW(i.columnId,i.tableId)))},me=()=>{let{store:e,emitter:t}=n.value;(y||_.dragstartId!==null)&&(y?.unsubscribe(),y=null,b=null,_.dragstartId=null,DX(e.state),e.dispatch(qO()),t.emit(QG()))},he=(t,r)=>{let{store:i}=n.value;if(a.value!==`document`)return;let{editor:{focusTable:o}}=i.state;if(!o||!o.columnId)return;let s=r.target?.getStage()??null;if(!s)return;y?.unsubscribe(),b=s,_.dragstartId=t,ee??=PZ(()=>s.find(`.column-row`));let c=fe(r.evt);c&&TX(i.state,e.table,c,{columnId:t,columnIds:_D(i.state)}),i.dispatch(fW()),y=iJ.subscribe({next:({event:e})=>{pe(e)},complete:me}),y.add(Rq(r,`grabbing`))};so(()=>{let{emitter:e}=n.value;g(e.on({dragendColumnAll:()=>{y?.unsubscribe(),y=null,DX(n.value.store.state)}}),()=>{y&&DX(n.value.store.state),y?.unsubscribe(),y=null,ee?.cancel()})});let ge=({focusType:t,x:n,width:i,text:s,fill:c,focus:l,edit:u,sharedFocus:d})=>{let f=a.value,p=f!==`document`,m=CY(r.value,o.value?.get(e.table.id),t);return k`<k-group name=${`input-padding ${t}`} kind="input-padding" sharedFocus=${d} x=${n} y=${0} @mousedown=${e=>{C(t),v.track(t,e)}} @dblclick=${e=>{w(t,e)}}><k-text name="cell-text" y=${GJ(f)} width=${i} height=${KJ(f)} text=${s} fill=${m??c} fontFamily=${xq} fontSize=${p?14:12} fontStyle=${p?`500`:`normal`} verticalAlign="middle" wrap="none" ellipsis=${!0} visible=${!u} hitFunc=${lY[f]} />${l&&!p?k`<k-rect name="cell-focus-border" y=${GJ(f)+18.5} width=${i} height=${Dq} fill=${XJ(r.value,u,e.editorFocused)} listening=${!1} />`:null}${d?k`<k-rect name="cell-shared-focus-border" y=${22.5} width=${i+8} height=${Dq} fill=${d} listening=${!1} />`:null}</k-group>`},_e=()=>{let{table:t}=e;if(t.logicalName.trim())return t.logicalName;let{settings:r}=n.value.store.state,{standIn:a,key:o}=OX(r,t.name,`common.placeholder.table`);return a||i.value.t(o)};return()=>{let{store:t}=n.value,{editor:m,collections:h,settings:g}=t.state,{table:v}=e,y=r.value,b=!!m.selectedMap[v.id],ee=a.value,x=rC(t.state,v,ee),C=nC(t.state,v,ee),w=C.width-18,fe=!!(e.hovered||_.hover),pe=e.ghostColumnId??_.dragstartId,ve=pe!==null&&!v.columnIds.includes(pe)?pe:null,ye=f(),be=p(),xe=d(W.tableName),Se=d(W.tableLogicalName),Ce=d(W.tableComment),we=ye??be,Te=o.value?.get(v.id),Ee=ee!==`document`,De=WJ(ee)-9,Oe=De+(Ee?2:6),ke=Ee?16:12,Ae=Ee&&fe,je=(e,t)=>!Ee&&s(e,t),Me=nY(t.state,v,ee),Ne=e=>Me.find(t=>t.focusType===e),Pe=Ne(W.tableName),Fe=Ne(W.tableLogicalName),Ie=Ne(W.tableComment),Le=Ie?null:CY(y,Te,W.tableComment),Re=Pe?null:CY(y,Te,W.tableName)??Le,ze=(e.checkMarks??!0)&&!Ee&&!o.value,Be=e=>{if(!ze||!v[e].trim())return null;let n=$X(t,y,v,e);return Ge?QX(n,Ge.background):n},Ve=Qx(t.state,v,ee),He=ab(g,ee),Ue=hb(He,W.columnName),We=hb(He,W.columnDataType),Ge=e.preview?null:e.tableGroupId===void 0?qC(t.state,v,ee):JC(t.state,e.tableGroupId,ee),Ke=Ve.length===0,qe=Ee&&!!e.lit,Je=Ee?Oq(y.minimapShadow):Nq(y.tableShadow),Ye=BY(m.id,`table`,v.id),Xe=0;Ee&&(HY(Ye,+!!qe),Xe=VY(Ye));let Ze=M(h).collection(`tableColumnEntities`).selectByIds(ve?[...Ve,ve]:Ve),Qe=!Ee&&!e.preview&&!t.getReadonly(),$e=x.alternateKey?ES(t.state,v):{};return k`<k-group id=${e.preview?``:`table-${v.id}`} name="table" kind="table" visible=${e.visible??!0} selected=${b} sharedFocus=${ye} sharedSelect=${be} x=${C.x} y=${C.y} @mousedown=${se} @touchstart=${se} @mouseenter=${te} @mouseleave=${ne}><k-rect name="table-body" x=${1/2} y=${1/2} width=${C.width-1} height=${C.height-1} cornerRadius=${6} fill=${y.tableBackground} stroke=${GY(oe(y,b),y.accentColor9,Xe)} strokeWidth=${1} shadowColor=${Je?.color} shadowBlur=${Je?.blur} shadowOffsetX=${Je?.offsetX} shadowOffsetY=${Je?.offsetY} shadowOpacity=${Je?.opacity} shadowForStrokeEnabled=${!Je&&void 0} @mouseenter=${e=>{Ee&&Iq(e,`pointer`)}} @mouseleave=${e=>{Ee&&Iq(e,``)}} /><k-rect name="table-header-band" x=${1} y=${1} width=${C.width-2} height=${Ke?C.height-2:9+HS(ee)-1} cornerRadius=${Ke?6:[6,6,0,0]} fill=${Ge?.background??y.tableHeaderBackground} listening=${!1} />${Xe>0?k`<k-rect name="table-glow" x=${-1/2} y=${-1/2} width=${C.width+1} height=${C.height+1} cornerRadius=${6} opacity=${Xe} stroke=${y.accentColor9} strokeWidth=${1} shadowColor=${y.accentColor9} shadowBlur=${14} shadowOpacity=${.55} shadowForStrokeEnabled=${!0} listening=${!1} />`:null}${we?k`<k-rect name="table-ring" x=${-1/2} y=${-1/2} width=${C.width+1} height=${C.height+1} cornerRadius=${6} stroke=${we} strokeWidth=${1} listening=${!1} />`:null}${zq({name:`table-diff-outline`,stroke:wY(y,Te),width:C.width,height:C.height,cornerRadius:6})}<k-group name="table-header" x=${9} y=${9}><k-group name="table-header-inputs" y=${De}>${pY({icon:`table-2`,name:`table-header-icon`,kind:`table-header-icon`,size:ke,color:Ge?.foreground??y.foreground,x:0,y:Ee?0:(24-ke)/2})}${Fe?ge({...Fe,text:_e(),fill:Re??Be(`logicalName`)??Ge?.foreground??QZ(y,v.logicalName,Ee),focus:c(W.tableLogicalName),edit:je(W.tableLogicalName),sharedFocus:Se}):null}${Pe?ge({...Pe,text:v.name.trim()?v.name:i.value.t(`common.placeholder.table`),fill:Le??Be(`name`)??Ge?.foreground??$Z(y,v.name,Ee,Fe!==void 0),focus:c(W.tableName),edit:je(W.tableName),sharedFocus:xe}):null}${Ie?ge({...Ie,text:v.comment.trim()?v.comment:i.value.t(`common.placeholder.comment`),fill:Ge?.foreground??(v.comment.trim()?y.active:y.placeholder),focus:c(W.tableComment),edit:je(W.tableComment),sharedFocus:Ce}):null}</k-group>${Ee?null:pY({icon:`plus`,name:`table-add-column`,kind:`icon`,size:12,color:ae(y,`plus`,fe,Ge),mouseenter:re(`plus`),mouseleave:ie,x:w-24-4,y:Oe,click:le})}${Ee?null:pY({icon:`x`,name:`table-remove`,kind:`icon`,size:12,color:ae(y,`x`,fe,Ge),mouseenter:re(`x`),mouseleave:ie,x:w-12,y:Oe,click:S})}${Ae?pY({icon:`waypoints`,name:`table-related`,kind:`icon`,size:12,color:ae(y,`waypoints`,fe,Ge),mouseenter:re(`waypoints`),mouseleave:ie,x:w-28,y:Oe,click:ue}):null}${Ae?pY({icon:`external-link`,name:`table-go-to-erd`,kind:`icon`,size:12,color:ae(y,`external-link`,fe,Ge),mouseenter:re(`external-link`),mouseleave:ie,x:w-12,y:Oe,click:de}):null}</k-group><k-group name="table-columns">${fd(Ze,e=>e.id,(n,r)=>k`<${aZ} .column=${n} .source=${ee} .related=${e.relatedColumnIds?.has(n.id)??!1} .diffPaths=${o.value?.get(n.id)??null} .litAlpha=${Xe} .divider=${Ee&&r<Ve.length-1} .last=${r===Ve.length-1} .y=${iC(t.state,v,r,ee).y-C.y} .width=${C.width} .selected=${l(n.id)} .dragHandle=${Qe&&u(n.id)} .hovered=${n.id===e.hoveredColumnId} .widthName=${x.name} .widthLogicalName=${x.logicalName} .widthDataType=${x.dataType} .widthDomain=${x.domain} .widthDefault=${x.default} .widthComment=${x.comment} .widthAlternateKey=${x.alternateKey} .alternateKey=${$e[n.id]} .focusName=${c(Ue,n.id)} .focusLogicalName=${c(W.columnLogicalName,n.id)} .focusDataType=${c(We,n.id)} .focusDomain=${c(W.columnDomain,n.id)} .focusNotNull=${c(W.columnNotNull,n.id)} .focusDefault=${c(W.columnDefault,n.id)} .focusComment=${c(W.columnComment,n.id)} .focusUnique=${c(W.columnUnique,n.id)} .focusAutoIncrement=${c(W.columnAutoIncrement,n.id)} .editName=${je(Ue,n.id)} .editLogicalName=${je(W.columnLogicalName,n.id)} .editDataType=${je(We,n.id)} .editDomain=${je(W.columnDomain,n.id)} .editDefault=${je(W.columnDefault,n.id)} .editComment=${je(W.columnComment,n.id)} .sharedFocusName=${d(Ue,n.id)} .sharedFocusLogicalName=${d(W.columnLogicalName,n.id)} .sharedFocusDataType=${d(We,n.id)} .sharedFocusDomain=${d(W.columnDomain,n.id)} .sharedFocusNotNull=${d(W.columnNotNull,n.id)} .sharedFocusDefault=${d(W.columnDefault,n.id)} .sharedFocusComment=${d(W.columnComment,n.id)} .sharedFocusUnique=${d(W.columnUnique,n.id)} .sharedFocusAutoIncrement=${d(W.columnAutoIncrement,n.id)} .ghost=${n.id===ve} .checkMarks=${ze} .preview=${e.preview} .editorFocused=${e.editorFocused} .onDragstart=${he} .onDragend=${me} />`)}</k-group><k-path name="table-header-color" kind="table-header-color" data=${kX(C.height)} fill=${v.ui.color} listening=${!Ee} @click=${bq(ce)} @mouseenter=${e=>{Iq(e,Pq)}} @mouseleave=${e=>{Iq(e,``)}} /></k-group>`}},tQ=[];function nQ(e,t,n,r){AS();let{selectedMap:i}=e.editor,a=IJ(e,n)&&!i[t.id],o=FC(e,t,{members:r,excludeTableIds:a?Object.keys(i):[]}),s=a?RJ(e,n)?.get(t.id):void 0;return s?tC(s,o):o}function rQ(){let e=ko({}),t=/* @__PURE__ */ new Map,n=ko({});return{isHovered:e=>!!(n[`${e}:frame`]||n[`${e}:body`]),setHover:(e,t,r)=>{let i=`${e}:${t}`;r?n[i]=!0:Reflect.deleteProperty(n,i)},draftOf:t=>e[t]??null,setDraft:(t,n)=>{n?e[t]=n:Reflect.deleteProperty(e,t)},guardOf:e=>{let n=t.get(e)??nZ();return t.set(e,n),n}}}const iQ=(e,t)=>e.length===t.length&&e.every((e,n)=>e===t[n]);function aQ(){let e=/* @__PURE__ */ new Map;return t=>{let n=/* @__PURE__ */ new Map;return zC(t).forEach((t,r)=>{let i=e.get(r);n.set(r,i&&iQ(i,t)?i:t)}),e=n,e=>n.get(e)??tQ}}const oQ={left:`left`,right:`right`,top:`top`,bottom:`bottom`,lt:`lt`,rt:`rt`,lb:`lb`,rb:`rb`},sQ={left:{x:`left`},right:{x:`right`},top:{y:`top`},bottom:{y:`bottom`},lt:{x:`left`,y:`top`},rt:{x:`right`,y:`top`},lb:{x:`left`,y:`bottom`},rb:{x:`right`,y:`bottom`}},cQ={left:`ew-resize`,right:`ew-resize`,top:`ns-resize`,bottom:`ns-resize`,lt:`nwse-resize`,rt:`nesw-resize`,lb:`nesw-resize`,rb:`nwse-resize`},lQ=Object.values(oQ);function uQ(e,t,n,r,i){let{x:a,y:o}=sQ[n],s=e.x,c=e.y,l=e.x+e.width,u=e.y+e.height;return a===`left`?s=Math.min(s+r,l-160,t?.x??1/0):a===`right`&&(l=Math.max(l+r,s+160,t?t.x+t.width:-1/0)),o===`top`?c=Math.min(c+i,u-100,t?.y??1/0):o===`bottom`&&(u=Math.max(u+i,c+100,t?t.y+t.height:-1/0)),{x:s,y:c,width:l-s,height:u-c}}const dQ=(e,t)=>e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height,fQ=e=>vK(e.evt)?{x:e.evt.clientX,y:e.evt.clientY}:{x:e.evt.touches[0]?.clientX??0,y:e.evt.touches[0]?.clientY??0},pQ=(e,t)=>{let n=sK(t),r=Lq(),i=null;co(()=>{i?.(),r.release()});let a=(t,r)=>{if(!xK(t.evt)||bK(t.evt))return;let{store:a}=n.value,{id:o}=e.group,s={...e.box},c=BC(a.state,NC(a.state,o)),{zoomLevel:l}=a.state.settings,u=fQ(t),d=s,f=!0,p=()=>{i=null;let{state:t}=a;f&&!dQ(d,s)&&GC(t)&&t.doc.tableGroupIds.includes(o)&&a.dispatchSync(yM({id:o,...d})),e.onDraft(null)},m=Rq(t,cQ[r]),h=iJ.subscribe(({event:t,x:n,y:i})=>{t.type===`mousemove`&&t.preventDefault(),d=uQ(s,c,r,(n-u.x)/l,(i-u.y)/l),e.onDraft(d)});h.add(m),h.add(p),i=()=>{f=!1,h.unsubscribe()}};return()=>{let{width:t,height:n}=e.box,i=5/2,o={left:-2.5,top:-2.5,right:t-i,bottom:n-i};return k`${lQ.map(e=>{let{x:i,y:s}=sQ[e];return k`<k-rect name=${`table-group-sash table-group-sash-${e}`} kind="table-group-sash" x=${i?o[i]:0} y=${s?o[s]:0} width=${i?5:t} height=${s?5:n} fill=${jq} @mousedown=${t=>{a(t,e)}} @touchstart=${t=>{a(t,e)}} @mouseenter=${t=>{r.set(t,cQ[e])}} @mouseleave=${e=>{r.set(e,``)}} />`})}`}};function mQ(e=0){let t=QJ();return{x:28,y:Math.round((28-t)/2),width:Math.max(e-28-28,0),height:t}}function hQ(){return{x:8,y:8,size:12}}function gQ(e){return{x:e-8-12,y:8,size:12}}function _Q(e,t){!e.getReadonly()&&GC(e.state)&&e.dispatch(aO(),_O({id:t}))}const vQ=[`table-group-title`],yQ=[`icon`],bQ=(e,t)=>{let n=sK(t),r=eq(t),i=QK(t),a=OY(t),o=EY(t),{sharedSelectColor:s}=bY(t,e.group.id),c=ko({removeHover:!1}),{onMoveStart:l}=VJ(t,{entityId:()=>e.group.id,selectType:Qy.tableGroup,blockedKinds:()=>yQ,clickKinds:()=>vQ,canMove:()=>!n.value.store.getReadonly(),source:a}),u=()=>e.links.guardOf(e.group.id),d=e=>{u().track(`title`,e),l(e)},f=t=>{u().isDouble(`title`,t)&&_Q(n.value.store,e.group.id)},p=t=>{e.links.setDraft(e.group.id,t)},m=()=>{e.links.setHover(e.group.id,`frame`,!0)},h=()=>{e.links.setHover(e.group.id,`frame`,!1)},g=Lq();co(()=>{h(),g.release()});let _=e=>{c.removeHover=!0,g.set(e,n.value.store.getReadonly()?``:Pq)},v=e=>{c.removeHover=!1,g.set(e,``)},y=()=>{let{store:t}=n.value;t.getReadonly()||t.dispatch(BP(e.group.id))},b=(t,n,r)=>r||!e.links.isHovered(e.group.id)?Aq:n?n.foreground:c.removeHover?t.active:t.foreground;return()=>{let{store:t}=n.value,{selectedMap:c}=t.state.editor,{group:u,members:g,links:ee}=e,te=r.value,ne=!!c[u.id],re=s(),ie=t.state.editor.editTableGroupId===u.id,ae=ee.draftOf(u.id)??nQ(t.state,u,a.value,g),{x:oe,y:x,width:se,height:ce}=ae,le=KC(u),S=mQ(se),ue=hQ(),de=gQ(se),C=t.getReadonly(),w=!!u.name.trim(),fe=1/2,pe=o.value?.get(u.id);return k`<k-group id=${`table-group-${u.id}`} name="table-group" kind="table-group" selected=${ne} sharedSelect=${re} x=${oe} y=${x} @mouseenter=${m} @mouseleave=${h}><k-group name="table-group-title" kind="table-group-title" @mousedown=${d} @touchstart=${l} @dblclick=${bq(f)}><k-rect name="table-group-title-bar" width=${se} height=${28} cornerRadius=${[6,6,0,0]} fill=${le?.background??te.tableGroupHeaderBackground} /><k-group name="table-group-icon-holder" listening=${!1}>${pY({icon:`group`,name:`table-group-icon`,kind:`table-group-icon`,size:ue.size,color:le?.foreground??te.active,x:ue.x,y:ue.y})}</k-group><k-text name="table-group-name" x=${S.x} y=${S.y} width=${S.width} height=${S.height} text=${w?u.name:i.value.t(`common.unnamed`)} fill=${CY(te,pe,`tableGroupName`)??le?.foreground??(w?te.active:te.placeholder)} fontFamily=${xq} fontSize=${12} fontStyle=${`bold`} verticalAlign="middle" wrap="none" ellipsis=${!0} visible=${!ie} listening=${!1} />${pY({icon:`x`,name:`table-group-remove`,kind:`icon`,size:de.size,color:b(te,le,C),mouseenter:_,mouseleave:v,x:de.x,y:de.y,click:y})}</k-group><k-rect name="table-group-border" x=${fe} y=${fe} width=${se-1} height=${ce-1} cornerRadius=${6} stroke=${ne?te.memoSelect:le?.background??te.tableGroupBorder} strokeWidth=${1} listening=${!1} /><k-rect name="table-group-shared-select" x=${-.5} y=${-.5} width=${se+1} height=${ce+1} cornerRadius=${7} stroke=${re??``} strokeWidth=${1} listening=${!1} />${zq({name:`table-group-diff-outline`,stroke:wY(te,pe),width:se,height:ce,cornerRadius:7})}${C?null:k`<${pQ} .group=${u} .box=${ae} .onDraft=${p} />`}</k-group>`}},xQ=(e,t)=>{let n=sK(t),r=eq(t),i=OY(t),a=()=>{e.links.setHover(e.group.id,`body`,!0)},o=()=>{e.links.setHover(e.group.id,`body`,!1)};co(o);let s=t=>{let{group:r,links:i}=e;if(i.guardOf(r.id).track(`body`,t),xK(t.evt)||bK(t.evt))return;let{store:a}=n.value;a.dispatch(qP(r.id,!!a.state.editor.selectedMap[r.id]))};return()=>{let{store:t}=n.value,{group:c,members:l,links:u}=e,{x:d,y:f,width:p,height:m}=u.draftOf(c.id)??nQ(t.state,c,i.value,l),h=KC(c);return k`<k-rect id=${`table-group-body-${c.id}`} name="table-group-body" kind="table-group-body" x=${d} y=${f+28} width=${p} height=${Math.max(m-28,0)} cornerRadius=${[0,0,6,6]} fill=${h?.background??r.value.tableGroupBackground} opacity=${h?.12:1} @mousedown=${s} @mouseenter=${a} @mouseleave=${o} />`}},SQ=(e,t)=>{let n=sK(t),r=rQ(),i=aQ();return()=>{let{state:e}=n.value.store,t=M(e.collections).collection(`tableGroupEntities`).selectByIds(e.doc.tableGroupIds).sort((e,t)=>e.ui.zIndex-t.ui.zIndex),a=i(e);return k`${fd(t,e=>e.id,e=>k`<${xQ} .group=${e} .members=${a(e.id)} .links=${r} />`)}${fd(t,e=>e.id,e=>k`<${bQ} .group=${e} .members=${a(e.id)} .links=${r} />`)}`}};function CQ(e,t){return[...e.map(e=>({kind:`table`,entity:e})),...t.map(e=>({kind:`memo`,entity:e}))].sort((e,t)=>e.entity.ui.zIndex-t.entity.ui.zIndex)}const wQ=({kind:e,entity:t})=>`${e}:${t.id}`,TQ=(e,t)=>{let n=sK(t),r=eq(t);return()=>{let{store:t}=n.value,{box:i,scale:a}=e,{settings:{show:o},doc:{tableIds:s,memoIds:c,relationshipIds:l},collections:u}=t.state,d=r.value,f=CQ(M(u).collection(`tableEntities`).selectByIds(s),Kx(t.state)?M(u).collection(`memoEntities`).selectByIds(c):[]),p=M(u).collection(`relationshipEntities`).selectByIds(l);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=${d.canvasBackground} />${GC(t.state)?k`<${SQ} />`:null}${G(o,N.relationship)?k`<${CX} .relationships=${p} />`:null}${fd(f,wQ,e=>e.kind===`table`?k`<${eQ} .table=${e.entity} .checkMarks=${!1} />`:k`<${AY} .memo=${e.entity} />`)}</k-layer>`}};async function EQ({doc:e,theme:t,toWidth:n,maxSide:r,i18n:i,nameViewMode:a}){let o=aK({toWidth:n},{devtools:!1});o.store.dispatchSync(MU(e)),o.store.dispatchSync(Cw({value:1})),a&&o.store.dispatchSync(pT(o.store.state,a,!0)),await nq(32);let s=oq(o.store.state),c=sq(s),l=de(r)?Math.min(c,r/Math.max(s.width,s.height)):c,u=cq(s,l),d=tq({app:o,container:document.createElement(`div`),scene:k`<${TQ} .box=${s} .scale=${l} />`,width:u.width,height:u.height,theme:t,i18n:i&&_K(i.locale,i.messages)});return await _a(),{stage:d.stage,box:s,scale:l,destroy:()=>{d.destroy(),cK(o)}}}function DQ(e){return`convertToBlob`in e?e.convertToBlob({type:`image/png`}):new Promise((t,n)=>{e.toBlob(e=>{e?t(e):n(/* @__PURE__ */ Error(`[export-png] the canvas encoded no png`))},`image/png`)})}async function OQ({doc:e,theme:t,pixelRatio:n,maxSide:r,i18n:i,nameViewMode:a,toWidth:o}){let s=await EQ({doc:e,theme:t,toWidth:o,maxSide:r,i18n:i,nameViewMode:a});try{let e=iq(n,s.stage.width(),s.stage.height()),t=s.stage.toCanvas({pixelRatio:e}),r=await DQ(t),{width:i,height:a}=t,o=s.scale*e,c=1*n,l=null;if(o<c){let{askedWidth:e,askedHeight:t}=lq(s.box,n);l={askedWidth:e,askedHeight:t,width:i,height:a}}return{blob:r,width:i,height:a,documentWidth:s.box.width,documentHeight:s.box.height,reduction:l}}finally{s.destroy()}}const kQ=[`x`,`y`,`scaleX`,`scaleY`,`offsetX`,`offsetY`,`rotation`,`visible`,`opacity`],AQ=[`clipX`,`clipY`,`clipWidth`,`clipHeight`],jQ=[`fill`,`stroke`,`strokeWidth`,`dash`,`lineCap`,`lineJoin`];[...kQ,...AQ],[...kQ,...AQ],[...kQ,...jQ],[...kQ],[...kQ,...jQ],[...kQ,...jQ],[...kQ,...jQ];const MQ=/* @__PURE__ */ new Set([``,`none`,`transparent`]),NQ=/^#([0-9a-f]{4}|[0-9a-f]{8})$/i,PQ=/^(rgb|hsl)a?\((.*)\)$/i,FQ={"&":`&`,"<":`<`,">":`>`,'"':`"`,"'":`'`};function Q(e,t=3){let n=10**t,r=Math.round(e*n)/n;return String(r===0?0:r)}function IQ(e){return e===9||e===10||e===13||e>=32&&e!==65534&&e!==65535}function LQ(e){let t=``;for(let n of e)IQ(n.codePointAt(0)??0)&&(t+=FQ[n]??n);return t}function $(e,t){return` ${e}="${LQ(String(t))}"`}function RQ(e){let t=e.endsWith(`%`)?Number.parseFloat(e)/100:Number.parseFloat(e);return Number.isNaN(t)?1:Math.min(Math.max(t,0),1)}function zQ(e){let t=NQ.exec(e);if(t){let e=t[1].toLowerCase(),n=e.length===4?Array.from(e,e=>e+e).join(``):e;return{color:`#${n.slice(0,6)}`,alpha:Number.parseInt(n.slice(6),16)/255}}let n=PQ.exec(e);if(!n)return{color:e,alpha:1};let[r,i]=n[2].split(`/`),a=r.split(/[\s,]+/).filter(Boolean),o=i??(a.length===4?a[3]:void 0);return o===void 0?{color:e,alpha:1}:{color:`${n[1].toLowerCase()}(${a.slice(0,3).join(`,`)})`,alpha:RQ(o.trim())}}function BQ(e){if(typeof e!=`string`)return null;let t=e.trim();if(MQ.has(t.toLowerCase()))return null;let n=zQ(t),r=Number(Q(n.alpha));return r>0?{color:n.color,opacity:r}:null}function VQ(e,{color:t,opacity:n}){return $(e,t)+(n<1?$(`${e}-opacity`,n):``)}function HQ([e,t,n,r,i,a]){let o=[e,t,n,r].map(e=>Q(e,6)).join(` `),s=`${Q(i)} ${Q(a)}`;return o===`1 0 0 1`?s===`0 0`?``:$(`transform`,`translate(${s})`):$(`transform`,`matrix(${o} ${s})`)}function UQ(e){return HQ(e.getTransform().getMatrix())}function WQ(e,{box:t,scale:n}){let[r,i,a,o,s,c]=e.getTransform().getMatrix();return HQ([r/n,i/n,a/n,o/n,s/n+t.x,c/n+t.y])}function GQ(e){return e.opacity()<1?$(`opacity`,Q(e.opacity())):``}function KQ(e,t){let n=e.clipWidth(),r=e.clipHeight();if(!n||!r)return``;let i=`erd-clip--${t.clips.length+1}`,a=$(`x`,Q(e.clipX()??0))+$(`y`,Q(e.clipY()??0))+$(`width`,Q(n))+$(`height`,Q(r));return t.clips.push(`<clipPath id="${i}"><rect${a}/></clipPath>`),` clip-path="url(#${i})"`}function qQ(e){let t=2166136261;for(let n of e)for(let e=0;e<n.length;e++)t=Math.imul(t^n.charCodeAt(e),16777619);return(t>>>0).toString(36)}function JQ(e,t,n){let r=e.getChildren().map(e=>s$(e,t)).join(``);if(!r)return``;let i=n+GQ(e)+KQ(e,t);return i?`<g${i}>${r}</g>`:r}function YQ(e,t){let n=t?BQ(e.fill()):null,r=e.strokeWidth(),i=r?BQ(e.stroke()):null;if(!n&&!i)return null;let a=n?VQ(`fill`,n):$(`fill`,`none`);if(!i)return a;a+=VQ(`stroke`,i)+$(`stroke-width`,Q(r));let o=e.dash();o?.length&&(a+=$(`stroke-dasharray`,o.map(e=>Q(e)).join(` `)));let s=e.lineCap();s&&s!==`butt`&&(a+=$(`stroke-linecap`,s));let c=e.lineJoin();return c&&c!==`miter`&&(a+=$(`stroke-linejoin`,c)),a}function XQ(e,t,n,r=!0){let i=YQ(e,r);return i?`<${t}${UQ(e)}${GQ(e)}${n}${i}/>`:``}function ZQ(e,t,n){let r=Math.min(t/2,n/2);return(Array.isArray(e)?[0,1,2,3].map(t=>e[t]||0):[e,e,e,e]).map(e=>Math.min(e,r))}function QQ(e,t,n,r,[i,a,o,s]){let c=(e,t,n)=>`A${Q(e)} ${Q(e)} 0 0 1 ${Q(t)} ${Q(n)}`;return[`M${Q(e+i)} ${Q(t)}`,`H${Q(e+n-a)}`,c(a,e+n,t+a),`V${Q(t+r-o)}`,c(o,e+n-o,t+r),`H${Q(e+s)}`,c(s,e,t+r-s),`V${Q(t+i)}`,c(i,e+i,t),`Z`].join(``)}function $Q(e){let t=Math.min(e.width(),0),n=Math.min(e.height(),0),r=Math.abs(e.width()),i=Math.abs(e.height()),a=ZQ(e.cornerRadius(),r,i),[o]=a;return a.some(e=>e!==o)?XQ(e,`path`,$(`d`,QQ(t,n,r,i,a))):XQ(e,`rect`,(t?$(`x`,Q(t)):``)+(n?$(`y`,Q(n)):``)+$(`width`,Q(r))+$(`height`,Q(i))+(o>0?$(`rx`,Q(o)):``))}function e$(e){return XQ(e,`path`,$(`d`,e.data()))}function t$(e){return XQ(e,`circle`,$(`r`,Q(e.radius())))}function n$(e){let t=e.points();if(t.length<4)return``;let n=[];for(let e=0;e+1<t.length;e+=2)n.push(`${Q(t[e])},${Q(t[e+1])}`);let r=e.closed();return XQ(e,r?`polygon`:`polyline`,$(`points`,n.join(` `)),r)}function r$(e){let t=``;for(let n of e.trim().split(/\s+/))n===`italic`||n===`oblique`?t+=$(`font-style`,n):n&&n!==`normal`&&(t+=$(`font-weight`,n));return t}function i$(e,t){switch(e){case`middle`:return t/2;case`bottom`:return t;default:return 0}}function a$(e,t,n){switch(e){case`right`:return{x:t-n,attribute:$(`text-anchor`,`end`)};case`center`:return{x:t/2,attribute:$(`text-anchor`,`middle`)};default:return{x:n,attribute:``}}}function o$(e){let t=BQ(e.fill());if(!t||!e.text())return``;let n=e.textArr,r=e.fontSize(),i=e.lineHeight()*r,a=e.padding(),o=e.measureSize(`M`),s=(o.fontBoundingBoxAscent-o.fontBoundingBoxDescent)/2+i/2,c=e.getHeight()-n.length*i-a*2,l=i$(e.verticalAlign(),c),u=a$(e.align(),e.getWidth(),a),d=n.map(({text:e},t)=>({text:e,y:a+l+s+t*i})).filter(({text:e})=>e);if(!d.length)return``;let f=e.fontFamily(),p=(f===`-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', 'Open Sans', system-ui, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji'`?``:$(`font-family`,f))+(r===12?``:$(`font-size`,Q(r)))+r$(e.fontStyle()),m=`<text${UQ(e)}${GQ(e)}${p}${u.attribute}${VQ(`fill`,t)}`,h=$(`x`,Q(u.x));if(d.length===1){let[{text:e,y:t}]=d;return`${m}${h}${$(`y`,Q(t))}>${LQ(e)}</text>`}return`${m}>${d.map(({text:e,y:t})=>`<tspan${h}${$(`y`,Q(t))}>${LQ(e)}</tspan>`).join(``)}</text>`}function s$(e,t){if(!e.visible()||e.opacity()===0)return``;let n=e.getClassName();switch(n){case`Layer`:return JQ(e,t,WQ(e,t));case`Group`:return JQ(e,t,UQ(e));case`Rect`:return $Q(e);case`Text`:return o$(e);case`Path`:return e$(e);case`Line`:return n$(e);case`Circle`:return t$(e)}throw Error(`[export-svg] no svg element is written for a konva ${n}`)}function c$(e,t){let{box:n}=t,r={...t,clips:[]},i=e.getChildren().map(e=>s$(e,r)).join(``),a=r.clips.length?`<defs>${r.clips.join(``)}</defs>`:``,o=[n.x,n.y,n.width,n.height].map(e=>Q(e)).join(` `);return`<svg${$(`xmlns`,`http://www.w3.org/2000/svg`)+$(`width`,Q(n.width))+$(`height`,Q(n.height))+$(`viewBox`,o)+$(`font-family`,hq)+$(`font-size`,Q(12))+$(`xml:space`,`preserve`)}>${a}${i}</svg>`.replaceAll(`\0`,qQ(r.clips))}async function l$({doc:e,theme:t,i18n:n,nameViewMode:r,toWidth:i}){let a=await EQ({doc:e,theme:t,toWidth:i,maxSide:256,i18n:n,nameViewMode:r});try{return c$(a.stage,{box:a.box,scale:a.scale})}finally{a.destroy()}}const u$=`400 12px ${hq}`,d$=[`ERD editor 0123456789`,`가나다 漢字 テスト`,`—…€· iIlL1`];function f$(){if(typeof OffscreenCanvas>`u`)return null;let e=new OffscreenCanvas(1,1).getContext(`2d`);return e?(e.font=u$,t=>Math.round(e.measureText(t).width)+2):null}function p$(e){return d$.map(t=>e(t))}function m$(e,t){return e.length===t.length&&e.every((e,n)=>e===t[n])}const h$=new class{async probeFontWidths(){return p$(this.createToWidth())}async render(e){let t=this.createMatchingToWidth(e.fontProbe);return OQ({...e,toWidth:t})}async renderSvg(e){let t=this.createMatchingToWidth(e.fontProbe);return l$({...e,toWidth:t})}createMatchingToWidth(e){let t=this.createToWidth(),n=p$(t);if(!m$(n,e))throw Error(`[export-png] this realm measures text differently: ${n.join()} against ${e.join()}`);return t}createToWidth(){let e=f$();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(h$,n)};
|