@kern0x1b/penstock-cli 0.0.0-stage → 26.10.1
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/THIRD-PARTY-NOTICES.md +1646 -0
- package/dist/arial-metrics.json +1 -0
- package/dist/grammars/tree-sitter-c-sharp.wasm +0 -0
- package/dist/grammars/tree-sitter-go.wasm +0 -0
- package/dist/grammars/tree-sitter-groovy.wasm +0 -0
- package/dist/grammars/tree-sitter-java.wasm +0 -0
- package/dist/grammars/tree-sitter-javascript.wasm +0 -0
- package/dist/grammars/tree-sitter-kotlin.wasm +0 -0
- package/dist/grammars/tree-sitter-python.wasm +0 -0
- package/dist/grammars/tree-sitter-scala.wasm +0 -0
- package/dist/grammars/tree-sitter-typescript.wasm +0 -0
- package/dist/grammars/web-tree-sitter.wasm +0 -0
- package/dist/licensing.json +17 -0
- package/dist/penstock.js +2102 -0
- package/dist/syntax-worker.js +5 -0
- package/dist/web/assets/AgentSettings-B_c5K0Hd.js +1 -0
- package/dist/web/assets/AgentsDialog-BtgwT_49.js +1 -0
- package/dist/web/assets/BpmnCanvas-BeOwGJEV.js +1905 -0
- package/dist/web/assets/BpmnDocument-DioCJiv7.js +24 -0
- package/dist/web/assets/ConflictDialog-B9V39KUg.js +1 -0
- package/dist/web/assets/DiffDocument-t0gjzCba.js +1 -0
- package/dist/web/assets/DmnDocument-ChFDTt1F.js +41 -0
- package/dist/web/assets/DmnDocument-VhMjHTN6.css +1 -0
- package/dist/web/assets/FormDocument-TEeVD6T7.js +32 -0
- package/dist/web/assets/FormDocument-URLcKn84.css +1 -0
- package/dist/web/assets/FormStepView-DLNQ8jVN.js +1 -0
- package/dist/web/assets/GraphAwareLayoutService-DFtkFUrn.js +21 -0
- package/dist/web/assets/NewFileDialog-BPBljAGC.js +34 -0
- package/dist/web/assets/QuickOpen-DOe23FAR.js +1 -0
- package/dist/web/assets/ScriptPane-DzBYUW23.js +2 -0
- package/dist/web/assets/ScriptRunDialog-BtLkIreU.js +1 -0
- package/dist/web/assets/SettingsDialog-YoMl6NJ1.js +1 -0
- package/dist/web/assets/ShortcutsDialog-D0_aCcNe.js +1 -0
- package/dist/web/assets/SourceDocument-p3iREvQI.js +1 -0
- package/dist/web/assets/TextDocument-DWg1EqKB.js +1 -0
- package/dist/web/assets/UnreadableFileLayer-ep6zQMtt.js +1 -0
- package/dist/web/assets/UploadDialog-ZOy1owan.js +1 -0
- package/dist/web/assets/Viewer-C7pbHtwq.js +4 -0
- package/dist/web/assets/apply-B8eZkNJ6.js +1 -0
- package/dist/web/assets/array-move-Bc4mVEdq.js +1 -0
- package/dist/web/assets/bpmn-0HrGCizt.svg +228 -0
- package/dist/web/assets/bpmn-Cyvp-fAH.eot +0 -0
- package/dist/web/assets/bpmnTheme-CebWk9Ei.js +1683 -0
- package/dist/web/assets/bridgeInstance-DzSjLJAc.js +600 -0
- package/dist/web/assets/clike-DaHM3zHz.js +1 -0
- package/dist/web/assets/colors-dark-C7vOziWz.css +1 -0
- package/dist/web/assets/colors-dracula-CXhMcc1Z.css +1 -0
- package/dist/web/assets/colors-light-CyT40N4M.css +1 -0
- package/dist/web/assets/de-DG3quwSS.js +1 -0
- package/dist/web/assets/dialog-Cn1DzN2I.js +1 -0
- package/dist/web/assets/diff-DMf6xJj1.js +1 -0
- package/dist/web/assets/dist--ADMeFWW.js +57 -0
- package/dist/web/assets/dist--PmHUHDp.js +1 -0
- package/dist/web/assets/dist-2wOiLlcG.js +1 -0
- package/dist/web/assets/dist-BYu4mHLv.js +23 -0
- package/dist/web/assets/dist-BaWEbDAw.js +1 -0
- package/dist/web/assets/dist-BnLLb41E.js +2 -0
- package/dist/web/assets/dist-BqwyxNP3.js +1 -0
- package/dist/web/assets/dist-BxuUJA8B.js +1 -0
- package/dist/web/assets/dist-CHkSydPE.js +1 -0
- package/dist/web/assets/dist-CHluRwHI.js +2 -0
- package/dist/web/assets/dist-CRJyslwo.js +1 -0
- package/dist/web/assets/dist-CxyFqsL2.js +6 -0
- package/dist/web/assets/dist-D0cjZCsW.js +13 -0
- package/dist/web/assets/dist-DBnQKg4d.js +1 -0
- package/dist/web/assets/dist-DIdDTNn9.js +2 -0
- package/dist/web/assets/dist-DXXc07IK.js +1 -0
- package/dist/web/assets/dist-DgvQWhKm.js +6 -0
- package/dist/web/assets/dist-DlbES2QN.js +1 -0
- package/dist/web/assets/dist-Dup2uTdL.js +6 -0
- package/dist/web/assets/dist-TNwbKIWT.js +1 -0
- package/dist/web/assets/dist-f4FXNtig.js +1 -0
- package/dist/web/assets/dist-zHmj1-pd.js +5 -0
- package/dist/web/assets/dmn-2EwrEScy.eot +0 -0
- package/dist/web/assets/dmn-eH1_eUsy.svg +90 -0
- package/dist/web/assets/dockLayout-CxOMo-Nl.js +1 -0
- package/dist/web/assets/documentBridge-BXU6mgKl.js +240 -0
- package/dist/web/assets/documents-XvKodSic.js +1 -0
- package/dist/web/assets/duplicate-CKn70NtG.js +342 -0
- package/dist/web/assets/ed25519-DTYhEcYX.js +1 -0
- package/dist/web/assets/engine-BPUfS3r2.js +1 -0
- package/dist/web/assets/engines-BaW52xZ_.js +5 -0
- package/dist/web/assets/es-PcpRjhXP.js +1 -0
- package/dist/web/assets/files-Chpd_QD0.js +1 -0
- package/dist/web/assets/formChecks-TAsEqw2_.js +1 -0
- package/dist/web/assets/fr-BQIO41QS.js +1 -0
- package/dist/web/assets/frontend-By89859W.js +1 -0
- package/dist/web/assets/go-C1TRUqzB.js +1 -0
- package/dist/web/assets/groovy-C2AgVf_z.js +1 -0
- package/dist/web/assets/html2canvas-DEOnTJc-.js +5 -0
- package/dist/web/assets/httpHost-DPT9cNRG.js +1 -0
- package/dist/web/assets/index.es-DXehkcd9.js +4 -0
- package/dist/web/assets/index.es-fKIKPRSg.js +78 -0
- package/dist/web/assets/index.esm-CTLpq4ik.js +3 -0
- package/dist/web/assets/intelligence-_ijxuAw5.js +3 -0
- package/dist/web/assets/ja-CJkgGd9w.js +1 -0
- package/dist/web/assets/jspdf.es.min-DXxYWA_o.js +79 -0
- package/dist/web/assets/ko-BaifpU2V.js +1 -0
- package/dist/web/assets/lib--h_vArmx.js +1 -0
- package/dist/web/assets/libavoid-BRQRZjmQ.wasm +0 -0
- package/dist/web/assets/libavoid.wasm +0 -0
- package/dist/web/assets/platform-_nC9EyYA.js +2 -0
- package/dist/web/assets/preferences-Cfvg8oqM.js +1 -0
- package/dist/web/assets/preload-helper-VRuDKI9K.js +1 -0
- package/dist/web/assets/properties-C3HzGRE2.js +1 -0
- package/dist/web/assets/pt-BR-DkBw_2Tc.js +1 -0
- package/dist/web/assets/purify.es-CyDa74pG.js +3 -0
- package/dist/web/assets/python-CvnBFxgv.js +1 -0
- package/dist/web/assets/resource/ArchitectsDaughter-OFL.txt +93 -0
- package/dist/web/assets/resource/ArchitectsDaughter-Regular.ttf +0 -0
- package/dist/web/assets/resource/JetBrainsMono-Italic.woff2 +0 -0
- package/dist/web/assets/resource/JetBrainsMono-Medium.woff2 +0 -0
- package/dist/web/assets/resource/JetBrainsMono-OFL.txt +52 -0
- package/dist/web/assets/resource/JetBrainsMono-Regular.woff2 +0 -0
- package/dist/web/assets/resource/JetBrainsMono-SemiBold.woff2 +0 -0
- package/dist/web/assets/rolldown-runtime-B8BYMn-z.js +1 -0
- package/dist/web/assets/ru-DhjXKaLT.js +1 -0
- package/dist/web/assets/run-CgRiIIgd.js +1 -0
- package/dist/web/assets/samples-CeaUa4Fn.js +1 -0
- package/dist/web/assets/shortcut-DONH578b.js +1 -0
- package/dist/web/assets/source-frame-C6KIof5s.js +2 -0
- package/dist/web/assets/stackblur-es-Djj-lnDR.js +2 -0
- package/dist/web/assets/syntax-DBcQvmbn.js +6 -0
- package/dist/web/assets/testCaseRuns-Bw2AfAfR.js +1 -0
- package/dist/web/assets/translator-Dt_jCGPm.js +1 -0
- package/dist/web/assets/typing-CXvbBSPr.js +1 -0
- package/dist/web/assets/ui-DDJuNJWb.js +1 -0
- package/dist/web/assets/useTrace-Rwk8eJY1.js +1 -0
- package/dist/web/assets/vendor-NJP34MHU.js +1 -0
- package/dist/web/assets/web-C3yK7kgI.js +148 -0
- package/dist/web/assets/web-CSZhWpVp.css +1 -0
- package/dist/web/assets/zh-tAs09DKy.js +1 -0
- package/dist/web/icon.svg +9 -0
- package/dist/web/index.html +63 -0
- package/dist/web/manifest.webmanifest +14 -0
- package/dist/wrapper/penstockw +68 -0
- package/dist/wrapper/penstockw.cmd +55 -0
- package/package.json +42 -4
- package/README.md +0 -3
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./testCaseRuns-Bw2AfAfR.js","./rolldown-runtime-B8BYMn-z.js","./translator-Dt_jCGPm.js","./preload-helper-VRuDKI9K.js","./frontend-By89859W.js","./bridgeInstance-DzSjLJAc.js","./dist-CRJyslwo.js","./dist-DgvQWhKm.js","./engine-BPUfS3r2.js","./dist-BqwyxNP3.js","./engines-BaW52xZ_.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{i as e}from"./rolldown-runtime-B8BYMn-z.js";import{c as t,d as n,h as r,i,o as a,p as o,r as s,s as c,u as l}from"./vendor-NJP34MHU.js";import{i as u,n as d}from"./translator-Dt_jCGPm.js";import{t as f}from"./preload-helper-VRuDKI9K.js";import{N as p}from"./frontend-By89859W.js";import{$t as m,B as h,H as g,Rn as _,Vn as v,Y as y,at as b,en as x,it as S,ot as C,q as w,st as T,t as E,tn as D,z as O}from"./bridgeInstance-DzSjLJAc.js";import{f as k,s as A}from"./engine-BPUfS3r2.js";import{r as j}from"./platform-_nC9EyYA.js";import{p as M}from"./testCaseRuns-Bw2AfAfR.js";import{n as N,r as P,t as F}from"./shortcut-DONH578b.js";import{v as ee}from"./AgentSettings-B_c5K0Hd.js";import{t as I}from"./typing-CXvbBSPr.js";import{i as L}from"./dialog-Cn1DzN2I.js";import{f as R,m as te,r as z,t as B}from"./bpmnTheme-CebWk9Ei.js";import{c as V,d as H,f as U,h as W,l as G,o as ne,p as K,r as re,s as ie,u as ae}from"./ui-DDJuNJWb.js";import{i as q,o as J,r as oe}from"./preferences-Cfvg8oqM.js";import{G as se,t as ce}from"./Viewer-C7pbHtwq.js";import{a as le}from"./dockLayout-CxOMo-Nl.js";import{A as ue,At as de,C as fe,Ct as pe,D as me,Dt as he,E as ge,Et as _e,H as Y,L as ve,O as ye,Ot as be,R as X,S as xe,St as Se,T as Ce,W as we,_ as Te,_t as Ee,a as Z,bt as De,c as Oe,dt as ke,ft as Ae,g as je,gt as Me,h as Q,ht as Ne,i as Pe,j as Fe,k as Ie,kt as Le,mt as Re,nt as ze,pt as Be,q as Ve,rt as He,s as Ue,tt as We,ut as Ge,v as Ke,vt as qe,wt as Je,x as Ye,xt as Xe,y as Ze,yt as Qe,z as $e}from"./web-C3yK7kgI.js";function sayAction(e,t){let n=u(e);return n===e?t:n}function sayKeywords(e,t){let n=u(`app.actions.${e}.keywords`),r=n===`app.actions.${e}.keywords`?[]:n.split(`,`).map(e=>e.trim()).filter(Boolean);return r.length>0?[...t,...r]:t}var et={"Check & run":`checkRun`,"Layout & convert":`layoutConvert`,"Deploy & share":`deployShare`,View:`view`,File:`file`,Edit:`edit`,Help:`help`,Recent:`recent`};function saySection(e){return u(`app.actions.section.${et[e]??e}`)}function resolveActions(e,t){return e.map((e,t)=>({def:e,order:t})).filter(({def:e})=>e.available?.(t)??!0).map(({def:e,order:n})=>{let r=e.l10n??e.id,i=typeof e.tooltip==`function`?e.tooltip(t):e.tooltip&&sayAction(`app.actions.${r}.tooltip`,e.tooltip),a={id:e.id,title:sayAction(`app.actions.${r}.title`,e.title),section:e.section,icon:e.icon,keywords:sayKeywords(r,e.keywords),place:e.place,listed:e.listed??!0,slot:e.slot??`start`,order:n,enabled:e.enabled?.(t)??!0,run:()=>e.run(t)};if(e.presentation&&(a.presentation=e.presentation),e.shortcut&&(a.shortcut=e.shortcut),e.tier&&(a.tier=e.tier),i&&(a.tooltip=i),!a.enabled&&e.disabledReason){let n=e.disabledReason(t);n&&(a.disabledReason=n)}e.checked&&(a.checked=e.checked(t));let o=e.status?.(t);return o&&(a.status=o),e.popup&&(a.popup=e.popup(t)),e.menu&&(a.menu=e.menu(t).map(n=>({id:n.id,title:sayAction(`app.actions.${e.id}.menu.${n.id}.title`,n.title),icon:n.icon,...n.tooltip?{tooltip:sayAction(`app.actions.${e.id}.menu.${n.id}.tooltip`,n.tooltip)}:{},run:()=>n.run(t)}))),a})}var tt=500,nt=400,rt=300,it=200,at=80,ot=12,st=10,ct=1,lt=4;function startsWord(e,t){return t===0||!/[a-z0-9]/i.test(e[t-1])}function contiguous(e,t){let n=null;for(let r=t.indexOf(e);r>=0;r=t.indexOf(e,r+1)){let e=(r===0?tt:startsWord(t,r)?nt:rt)-Math.min(r,50)*.1;(n===null||e>n.score)&&(n={score:e,from:r})}return n===null?null:{score:n.score,at:Array.from({length:e.length},(e,t)=>n.from+t)}}function initials(e,t){let n=t.length,r=e.split(``).map(()=>Array(n).fill(-1/0)),i=e.split(``).map(()=>Array(n).fill(-1));for(let a=0;a<e.length;a++)for(let o=a;o<n;o++)if(t[o]===e[a]){if(a===0)startsWord(t,o)&&(r[a][o]=st);else for(let e=a-1;e<o;e++){if(r[a-1][e]===-1/0)continue;let n=e===o-1;if(!n&&!startsWord(t,o))continue;let s=r[a-1][e]+st+(n?ot:-Math.min(o-e-1,lt)*ct);s>r[a][o]&&(r[a][o]=s,i[a][o]=e)}}let a=e.length-1,o=-1;for(let e=0;e<n;e++)r[a][e]>(o<0?-1/0:r[a][o])&&(o=e);if(o<0||r[a][o]===-1/0)return null;let s=[];for(let e=a,t=o;e>=0;e--)s.unshift(t),t=i[e][t];return{score:it+r[a][o],at:s}}function inTitle(e,t){let n=t.toLowerCase();return contiguous(e,n)??initials(e,n)}function keyword(e,t){for(let n of t){let t=n.toLowerCase();if(t.startsWith(e)||t.split(/\s+/).some(t=>t.startsWith(e)))return at}return 0}function merged(e){let t=[];for(let n of[...new Set(e)].sort((e,t)=>e-t)){let e=t[t.length-1];e&&e[1]===n?e[1]=n+1:t.push([n,n+1])}return t}function matchOf(e,t){let n=0,r=[];for(let i of t){let t=inTitle(i,e.title);if(t){n+=t.score,r.push(...t.at);continue}let a=keyword(i,e.keywords);if(a>0)n+=a;else return null}return{action:e,score:n,ranges:merged(r)}}function rankActions(e,t){let n=t.toLowerCase().split(/\s+/).filter(Boolean);return n.length===0?e.map(e=>({action:e,score:0,ranges:[]})):e.map((e,t)=>({match:matchOf(e,n),order:t})).filter(e=>e.match!==null).sort((e,t)=>t.match.score-e.match.score||e.order-t.order).map(e=>e.match)}var ut=[`Check & run`,`Layout & convert`,`Deploy & share`,`View`,`File`,`Edit`,`Help`];function pushRecent(e,t){return[t,...e.filter(e=>e!==t)].slice(0,5)}function browseGroups(e,t){let n=new Map(e.map(e=>[e.id,e])),r=t.map(e=>n.get(e)).filter(e=>e!==void 0),i=new Set(r.map(e=>e.id)),a=r.length>0?[{title:saySection(`Recent`),items:r}]:[];for(let t of ut){let n=e.filter(e=>e.section===t&&!i.has(e.id));n.length>0&&a.push({title:saySection(t),items:n})}return a}function moveSelection(e,t,n){return n===0?-1:((e+t)%n+n)%n}function publishedActions(e,t){return e.filter(e=>e.listed).map(e=>{let n=F(e.shortcut,t);return{id:e.id,title:e.title,section:e.section,enabled:e.enabled,...e.checked===void 0?{}:{checked:e.checked},...n?{shortcut:n}:{}}})}function trailingToDrop(e,t){let n=0,r=0;for(let i=e.length-1;i>=0&&n<t;--i)n+=e[i],r+=1;return r}function beginWidthDrag(e,t){let n=t?.target??(typeof window<`u`?window:null);if(!n||typeof n.addEventListener!=`function`)return()=>{};let r=Number.isFinite(e)?e:0,i=Number.isFinite(t.min)?t.min:0,a=Number.isFinite(t.max)?t.max:Math.max(i,1e3),o=Math.min(i,a),s=Math.max(i,a),c=Number.isFinite(t.width)?Math.min(s,Math.max(o,t.width)):o,l=!1,move=e=>{let n=Number.isFinite(e?.clientX)?e.clientX:0;c=Math.min(s,Math.max(o,t.width+r-n));try{t.onWidth?.(c)}catch{}},end=()=>{if(!l){stop();try{t.onCommit(c)}catch{}}};function stop(){if(!l){l=!0;try{n.removeEventListener(`pointermove`,move),n.removeEventListener(`pointerup`,end),n.removeEventListener(`pointercancel`,end)}catch{}}}try{n.addEventListener(`pointermove`,move),n.addEventListener(`pointerup`,end),n.addEventListener(`pointercancel`,end)}catch{}return stop}function EditableTitle({title:e,editable:n,problem:r,onProblem:a}){let[o,c]=t(!1),d=i(null),f=i(null);l(()=>{n.start&&(c(!0),n.onStarted?.())},[n.start]),l(()=>{o&&(d.current?.focus(),d.current?.select())},[o]);let close=()=>{c(!1),requestAnimationFrame(()=>f.current?.focus())},settle=(e,t)=>{a(e),!(e&&t)&&close()},finish=(t,r)=>{let i=d.current?.value??e;if(!t){a(null),close();return}let o=_e(e,i);if(!o){settle(null,!1);return}let s=n.onCommit(o);s instanceof Promise?s.then(e=>settle(e,r)):settle(s,r)};return o?s(`input`,{ref:d,class:`sidebar__nav-field type-input`,"aria-label":n.label,"aria-invalid":r?!0:void 0,defaultValue:e,onBlur:()=>o&&finish(!0,!1),onKeyDown:e=>{e.key===`Enter`?(e.preventDefault(),finish(!0,!0)):e.key===`Escape`&&(e.preventDefault(),e.stopPropagation(),finish(!1,!1))}}):s(`button`,{ref:f,type:`button`,class:`sidebar__nav-title type-section-heading is-editable`,title:u(`app.sidebar.clickOrPressF2To`,{title:e}),"aria-label":u(`app.sidebar.pressF2OrEnterTo`,{title:e,label:n.label}),onClick:()=>c(!0),onKeyDown:e=>Me(e.key)&&c(!0),children:e})}function NavRow({title:e,backLabel:n,onBack:i,editable:a,trailing:o}){let[c,l]=t(null);return s(r,{children:[s(`div`,{class:`sidebar__nav`,children:[s(`button`,{type:`button`,class:`sidebar__icon`,"aria-label":n,title:u(`app.common.back`),onClick:i,children:s(Y,{name:`back`})}),a?s(EditableTitle,{title:e,editable:a,problem:c,onProblem:l}):s(`span`,{class:`sidebar__nav-title type-section-heading`,title:e,children:e}),o?s(`span`,{class:`sidebar__nav-actions`,children:o}):null]}),c&&s(`p`,{class:`penstock-review__issue is-mismatch`,role:`alert`,children:c})]})}var dt=16,ft=28;function tabTitle(e){return u(`app.sidebar.tab.${e}`)}function sameIds(e,t){return e.length===t.length&&e.every((e,n)=>e===t[n])}function useFit$1(e,n,r){let[a,o]=t([]),s=i(new Map);return c(()=>{let t=e.current;if(!t||r===void 0||t.clientWidth===0)return;let i=getComputedStyle(t),a=parseFloat(i.columnGap)||0,c=(parseFloat(i.paddingLeft)||0)+(parseFloat(i.paddingRight)||0);for(let e of t.querySelectorAll(`:scope > [data-tab]`))s.current.set(e.getAttribute(`data-tab`)??``,e.offsetWidth);let l=Array.from(t.children).filter(e=>!e.hasAttribute(`data-tab`)&&!e.hasAttribute(`data-more`)).reduce((e,t)=>e+t.offsetWidth+a,0),u=Be(n.map(e=>({id:e,width:(s.current.get(e)??ft)+a})),r,t.clientWidth-c-l,ft+a);o(e=>sameIds(e,u)?e:u)}),a}e(useFit$1,`useFit`);function Sidebar({tabs:e,api:n,badges:r={},statuses:a={},hidden:o=!1}){let{state:d,width:f,limits:p,drawer:m}=n,h=i(null),g=i(null),_=e.map(e=>e.id),v=e.find(e=>e.id===d.tab)??e[0],y=v?d.stacks[v.id]??[]:[],b=!d.hidden&&!(m&&d.collapsed),x=useFit$1(h,_,v?.id),[S,C]=t(!1),[w,T]=t(null);l(()=>{T(e=>e===v?.id?e:null)},[v?.id]);let E=i(null);if(c(()=>()=>{E.current?.(),E.current=null},[b]),d.hidden||o||!v)return null;if(m&&d.collapsed){let e=v.bar;return s(`div`,{class:`sidebar-bar`,role:`toolbar`,"aria-label":u(`app.sidebar.collapsedLabel`,{title:tabTitle(v.id)}),children:[e?s(e,{active:!0,views:y,width:f,push:e=>n.push(v.id,e),back:()=>n.back(v.id),reset:()=>n.reset(v.id)}):s(`span`,{class:`sidebar-bar__title`,children:tabTitle(v.id)}),s(`button`,{type:`button`,class:`sidebar__icon`,"aria-label":u(`app.sidebar.openTheSidebar`),title:u(`app.sidebar.openTheSidebar`),onClick:n.toggleCollapsed,children:s(Y,{name:`expand`})})]})}let onTabKey=e=>{let t=Ge(_,v.id,e.key);t&&(e.preventDefault(),T(t),n.select(t),requestAnimationFrame(()=>{try{let e=typeof CSS<`u`&&CSS.escape?CSS.escape(t):t;h.current?.querySelector(`[data-tab="${e}"]`)?.focus()}catch{}}))},startDrag=e=>{e.preventDefault(),E.current?.(),E.current=beginWidthDrag(e.clientX,{width:f,min:p.min,max:p.max,onWidth:n.setWidth,onCommit:n.commitWidth})},onSeparatorKey=e=>{let t=e.key===`ArrowLeft`?dt:e.key===`ArrowRight`?-16:0;if(t===0)return;e.preventDefault();let r=Math.min(p.max,Math.max(p.min,f+t));n.setWidth(r),n.commitWidth(r)},onBodyKey=e=>{e.key===`Escape`&&y.length>0&&!(e.target instanceof Element&&e.target.closest(`input, textarea, select`))&&(e.preventDefault(),n.back(v.id))},D=e.filter(e=>x.includes(e.id));return s(`aside`,{ref:g,class:`sidebar${m?` is-drawer`:``}`,style:{width:`${f}px`},"aria-label":u(`app.sidebar.sidebar`),children:[s(`div`,{class:`sidebar__separator`,role:`separator`,"aria-orientation":`vertical`,"aria-label":u(`app.sidebar.resizeTheSidebar`),"aria-valuenow":f,"aria-valuemin":p.min,"aria-valuemax":p.max,tabIndex:0,onPointerDown:startDrag,onDblClick:()=>{n.setWidth(null),n.commitWidth(null)},onKeyDown:onSeparatorKey}),s(`div`,{class:`sidebar__tabs`,role:`tablist`,"aria-label":u(`app.sidebar.sidebar`),ref:h,onKeyDown:onTabKey,children:[e.filter(e=>!x.includes(e.id)).map(e=>{let t=Ae(r[e.id]),i=e.id===v.id,o=a[e.id],c=o?u(`app.sidebar.status.${o}`):null;return s(`button`,{type:`button`,role:`tab`,id:`sidebar-tab-${e.id}`,"data-tab":e.id,"aria-selected":i,"aria-controls":`sidebar-panel-${e.id}`,tabIndex:i?0:-1,class:`sidebar__tab type-sidebar-tab${i?` type-sidebar-tab-selected is-selected`:``}`,title:i?void 0:tabTitle(e.id),"aria-label":i?void 0:[tabTitle(e.id),t?ke(r[e.id]):null,c].filter(Boolean).join(`, `),onClick:()=>n.select(e.id),children:[s(Y,{name:e.icon}),i&&s(`span`,{class:`sidebar__tab-label`,children:tabTitle(e.id)}),o===`working`&&s(`span`,{class:`sidebar__status is-working`,"aria-hidden":`true`,children:s(re,{})}),o===`waiting`&&s(`span`,{class:`sidebar__status is-waiting`,"aria-hidden":`true`}),t&&s(`span`,{class:`sidebar__badge`,"aria-label":ke(r[e.id]),children:t})]},e.id)}),D.length>0&&s(`div`,{class:`sidebar__more-wrap`,"data-more":!0,children:[s(`button`,{type:`button`,class:`sidebar__icon sidebar__more`,"aria-label":u(`app.sidebar.moreTabs`),title:u(`app.sidebar.moreTabs`),"aria-haspopup":`menu`,"aria-expanded":S,onClick:()=>C(e=>!e),onKeyDown:e=>{e.key===`Escape`&&C(!1)},children:s(Y,{name:`more`})}),S&&s(`div`,{class:`sidebar__menu`,role:`menu`,"aria-label":u(`app.sidebar.moreTabs`),children:D.map(e=>s(`button`,{type:`button`,role:`menuitem`,class:`sidebar__menu-item type-sidebar-tab`,"data-tab-more":e.id,onClick:()=>{C(!1),n.select(e.id)},children:[s(Y,{name:e.icon}),s(`span`,{children:tabTitle(e.id)})]},e.id))})]}),m&&s(`button`,{type:`button`,class:`sidebar__icon sidebar__collapse`,"aria-label":u(`app.sidebar.collapseTheSidebar`),title:u(`app.sidebar.collapseTheSidebar`),onClick:n.toggleCollapsed,children:s(Y,{name:`close`})})]}),y.length>0&&!v.ownHeader&&s(NavRow,{title:y[y.length-1].title,backLabel:u(`app.sidebar.backTo`,{title:y.length>1?y[y.length-2].title:tabTitle(v.id)}),onBack:()=>n.back(v.id)}),s(`div`,{class:`sidebar__body`,"data-switch":w===v.id?`key`:`pointer`,onKeyDown:onBodyKey,children:e.map(e=>{let t=e.component,r=e.id===v.id;return s(`div`,{role:`tabpanel`,id:`sidebar-panel-${e.id}`,"aria-labelledby":`sidebar-tab-${e.id}`,class:`sidebar__panel${e.padded?` sidebar__content`:``}`,hidden:!r,children:s(t,{active:r,views:d.stacks[e.id]??[],width:f,push:t=>n.push(e.id,t),back:()=>n.back(e.id),reset:()=>n.reset(e.id)})},e.id)})})]})}var $=1100;function useSidebar(e,r){let[o,s]=t(()=>Re(q(),e,r)),[c,u]=t($),[d,f]=t(!1),[p,m]=t(null),h=i(null),g=n(e=>{if(h.current?.disconnect(),h.current=null,e){try{u(e.getBoundingClientRect().width||$)}catch{u($)}typeof ResizeObserver<`u`&&(h.current=new ResizeObserver(()=>{if(e)try{u(e.getBoundingClientRect().width||$)}catch{}}),h.current.observe(e))}},[]);l(()=>()=>{h.current?.disconnect(),h.current=null},[]);let _=i(he(o,r,q())),v=n(e=>{let t=he(e,r,_.current);if(JSON.stringify(t)!==JSON.stringify(_.current)){_.current=t;try{J(t)}catch{}}},[r]);l(()=>{v({...o,width:_.current.sidebarWidth??null})},[o.tab,o.hidden,o.collapsed]);let y=Ne(c),b=o.tab,x=o.collapsed,S=i(y);S.current=y;let C=n(t=>{S.current?e.includes(t)&&(m({tab:t,collapsed:!1}),f(!0)):s(n=>pe(n,e,t))},[e.join(`|`)]),w=n(()=>{S.current?f(e=>!e):s(Le)},[]),T=n(()=>{S.current?m(e=>({tab:e?.tab??b,collapsed:!(e?.collapsed??x)})):s(be)},[b,x]),E=n((e,t)=>s(n=>De(n,e,t)),[]),D=n(e=>s(t=>Qe(t,e)),[]),O=n(e=>s(t=>Xe(t,e)),[]),k=n(e=>s(t=>({...t,width:e})),[]),A=i(o);A.current=o;let j=n(e=>v(e===void 0?A.current:{...A.current,width:e}),[v]),M=a(()=>y?{...o,tab:p?.tab??o.tab,collapsed:p?.collapsed??o.collapsed,hidden:!d}:o,[o,y,d,p]),N=Je(M,y),P=i(null),F=n(t=>{if(N===t){let n=P.current;P.current=null,C(n&&e.includes(n)?n:e.find(e=>e!==t)??t)}else P.current=N??A.current.tab,C(t)},[N,C,e.join(`|`)]);return a(()=>({state:M,width:Se(o.width,c),limits:de(c),drawer:y,editorWidth:c,measure:g,select:C,toggle:w,toggleCollapsed:T,push:E,back:D,reset:O,setWidth:k,commitWidth:j,shownTab:N,pressTab:F}),[M,o.width,y,c,g,C,w,T,E,D,O,k,j,N,F])}function createPanelHost(){return document.createElement(`div`)}function PanelHost({host:e,id:t,class:n,shown:r}){let a=i(null);return c(()=>{t!==void 0&&(e.id=t),n!==void 0&&(e.className=n),r!==void 0&&(e.style.display=r?`block`:`none`)},[e,t,n,r]),c(()=>{let t=a.current;if(t)return t.appendChild(e),()=>{e.parentNode===t&&t.removeChild(e)}},[e]),s(`div`,{ref:a,style:{display:`contents`}})}var pt={error:`M 339.07183,256.00001 463.66713,131.4047 c 15.28961,-15.2896 15.28961,-40.079175 0,-55.381227 l -27.6906,-27.690611 c -15.28961,-15.289602 -40.07917,-15.289602 -55.38123,0 L 256,172.92818 131.4047,48.332862 c -15.2896,-15.289602 -40.079177,-15.289602 -55.381228,0 L 48.332861,76.023473 c -15.2896,15.2896 -15.2896,40.079177 0,55.381227 L 172.92815,256.00001 48.332861,380.59531 c -15.2896,15.2896 -15.2896,40.07917 0,55.38123 l 27.690611,27.69061 c 15.289601,15.28959 40.091628,15.28959 55.381228,0 L 256,339.07184 380.5953,463.66715 c 15.2896,15.28959 40.09162,15.28959 55.38123,0 l 27.6906,-27.69061 c 15.28961,-15.2896 15.28961,-40.07918 0,-55.38123 z`,warning:`m256 323.95c-45.518 0-82.419 34.576-82.419 77.229 0 42.652 36.9 77.229 82.419 77.229 45.518 0 82.419-34.577 82.419-77.23 0-42.652-36.9-77.229-82.419-77.229zm-80.561-271.8 11.61 204.35c.544 9.334 8.78 16.64 18.755 16.64h100.39c9.975 0 18.211-7.306 18.754-16.64l11.611-204.35c.587-10.082-7.98-18.56-18.754-18.56h-123.62c-10.775 0-19.34 8.478-18.753 18.56z`};function SeverityIcon({severity:e}){return s(`span`,{class:`severity severity--${e}`,role:`img`,"aria-label":u(e===`error`?`app.diagramCheck.error`:`app.diagramCheck.warning`),children:s(`svg`,{viewBox:`0 0 512 512`,"aria-hidden":`true`,children:s(`path`,{d:pt[e],fill:`currentColor`})})})}function usePinning(){let[,e]=t(0);l(()=>{try{return oe(()=>e(e=>e+1))}catch{return}},[]);let n=q()||{},r=Array.isArray(n.toolbarPinned)?n.toolbarPinned:[],i=Array.isArray(n.toolbarUnpinned)?n.toolbarUnpinned:[],isPinned=e=>!e||!e.id?!1:e.place===`pinned`?!i.includes(e.id):r.includes(e.id),toggle=e=>{if(!e||!e.id)return;let flip=t=>t.includes(e.id)?t.filter(t=>t!==e.id):[...t,e.id];try{J(e.place===`pinned`?{toolbarUnpinned:flip(i)}:{toolbarPinned:flip(r)})}catch{}};return{isPinned,toggle}}function hostIsMac(){return typeof navigator<`u`&&typeof navigator?.platform==`string`&&N(navigator.platform)}var mt=`palette-list`,optionId=e=>`palette-option-${e}`;function Highlighted({title:e,ranges:t}){let n=typeof e==`string`?e:String(e??``),i=Array.isArray(t)?t:[];if(i.length===0)return s(r,{children:n});let a=[],o=0;return i.forEach(([e,t])=>{let i=Math.max(0,Math.min(n.length,Number.isFinite(e)?e:0)),c=Math.max(i,Math.min(n.length,Number.isFinite(t)?t:i));i>o&&a.push(s(r,{children:n.slice(o,i)})),a.push(s(`span`,{className:`palette__match`,children:n.slice(i,c)})),o=c}),o<n.length&&a.push(s(r,{children:n.slice(o)})),s(r,{children:a})}function Palette({entries:e,recent:n,pinning:r,locked:o,onRun:u,onClose:d,returnFocusTo:f}){let p=W(),[m,h]=t(``),[g,_]=t(0),v=i(null),y=i(null),b=hostIsMac(),x=a(()=>(Array.isArray(e)?e:[]).filter(Boolean).map(e=>({id:e.id,title:e.title,section:e.section,keywords:e.keywords,entry:e,ranges:[]})),[e]),S=m.trim().length>0,C=a(()=>{if(S){let e=rankActions(x,m).map(e=>({...e.action,ranges:e.ranges}));return e.length>0?[{title:``,items:e}]:[]}return browseGroups(x,Array.isArray(n)?n:[])},[x,n,m,S]),w=a(()=>(Array.isArray(C)?C:[]).flatMap(e=>Array.isArray(e?.items)?e.items:[]),[C]),T=w[g];l(()=>_(0),[m]),l(()=>{if(T)try{let e=typeof CSS<`u`&&CSS.escape?CSS.escape(optionId(T.id)):optionId(T.id);v.current?.querySelector(`#${e}`)?.scrollIntoView({block:`nearest`})}catch{}},[T?.id]),c(()=>{let e=y.current;if(!e)return;let t=f,n=[],r=e,i=0;for(;r&&r.parentElement&&i<50;){i+=1;let e=r.parentElement;for(let t of Array.from(e.children))t===r||t.hasAttribute(`inert`)||(t.setAttribute(`inert`,``),n.push(t));r=e}return()=>{n.forEach(e=>e.removeAttribute(`inert`));let r=document.activeElement,i=r!==null&&e.contains(r),a=r===null||r===document.body||!document.contains(r);if((i||a)&&t)try{t.focus()}catch{}}},[]);let run=e=>{if(e&&e.entry.enabled)try{u(e.entry)}catch{}},keys=e=>{if(e.key===`Escape`)e.preventDefault(),e.stopPropagation(),d();else if(e.key===`ArrowDown`||e.key===`ArrowUp`)e.preventDefault(),_(t=>moveSelection(t,e.key===`ArrowDown`?1:-1,w.length));else if(e.key===`Home`&&e.ctrlKey)e.preventDefault(),_(0);else if(e.key===`End`&&e.ctrlKey)e.preventDefault(),_(Math.max(0,w.length-1));else if(e.key===`Enter`){if(e.preventDefault(),e.shiftKey){if(T)try{r?.toggle?.(T.entry)}catch{}}else run(T)}else e.key===`Tab`&&e.preventDefault()},flatIndex=e=>w.findIndex(t=>t.id===e.id);return s(`div`,{ref:y,className:`palette-overlay`,onMouseDown:e=>{e.target===e.currentTarget&&d()},children:s(`div`,{className:`palette`,role:`dialog`,"aria-modal":`true`,"aria-label":p(`app.palette.label`),children:[s(`input`,{className:`palette__field`,type:`text`,role:`combobox`,"aria-expanded":`true`,"aria-controls":mt,"aria-autocomplete":`list`,"aria-activedescendant":T?optionId(T.id):void 0,"aria-describedby":`palette-hint`,placeholder:p(`app.palette.search`),spellcheck:!1,autoComplete:`off`,autoFocus:!0,value:m,onInput:e=>h(e.currentTarget.value),onKeyDown:keys,ref:e=>e?.focus()}),s(`span`,{id:`palette-hint`,className:`palette__hint`,children:p(`app.palette.hint`)}),s(`ul`,{className:`palette__list`,id:mt,role:`listbox`,"aria-label":p(`app.palette.actions`),ref:v,children:[C.map(e=>s(`li`,{role:`presentation`,className:`palette__group`,children:[e.title&&s(`div`,{className:`palette__heading`,role:`presentation`,children:e.title}),s(`ul`,{role:`group`,"aria-label":e.title||p(`app.palette.matches`,{count:e.items.length}),className:`palette__group`,children:e.items.map(e=>{let t=e.entry,n=!!r?.isPinned?.(t),i=t.place!==`bar`,a=F(t.shortcut,b);return s(`li`,{id:optionId(e.id),role:`option`,"aria-selected":flatIndex(e)===g,"aria-disabled":!t.enabled,"aria-checked":t.checked===void 0?void 0:t.checked,className:`palette__row${flatIndex(e)===g?` is-active`:``}`,"aria-label":t.tier?`${e.title}, Penstock ${t.tier}`:e.title,title:t.tooltip,onMouseMove:()=>_(flatIndex(e)),onClick:()=>run(e),children:[s(`span`,{className:`palette__icon`,children:s(Q,{name:t.icon})}),s(`span`,{className:`palette__title`,children:s(Highlighted,{title:e.title,ranges:e.ranges})}),S&&s(`span`,{className:`palette__section`,children:e.section}),t.tier&&s(`span`,{className:`palette__tier`,children:[o&&s(Q,{name:`lock`}),t.tier]}),a&&s(`span`,{className:`palette__shortcut`,children:a}),t.checked&&s(`span`,{className:`palette__check`,children:s(Q,{name:`check`})}),i&&s(`button`,{type:`button`,tabIndex:-1,"aria-hidden":`true`,className:n?`palette__pin is-pinned`:`palette__pin`,title:p(n?`app.palette.unpin`:`app.palette.pin`),onMouseDown:e=>e.preventDefault(),onClick:e=>{e.stopPropagation();try{r?.toggle?.(t)}catch{}},children:s(Q,{name:`pin`})})]},e.id)})})]},e.title||`results`)),w.length===0&&s(`li`,{className:`palette__empty`,role:`presentation`,children:p(`app.palette.noMatch`,{query:m.trim()})})]})]})})}function useHostActions(e,t){let n=X(),r=i({actions:e,openPalette:t});r.current={actions:e,openPalette:t};let a=`[]`;try{a=JSON.stringify(publishedActions(Array.isArray(e)?e:[],hostIsMac()))}catch{a=`[]`}l(()=>{if(n)try{let e=E();e?.publishActions&&e.publishActions(JSON.parse(a)).catch(()=>{})}catch{}},[a,n]),l(()=>{if(n)try{let e=E();return e?.onRunAction?e.onRunAction(e=>{try{if(e===w.id){r.current.openPalette();return}let t=(Array.isArray(r.current.actions)?r.current.actions:[]).find(t=>t?.id===e);if(t?.enabled){let e=t.run();e&&typeof e.catch==`function`&&e.catch(e=>console.error(e))}}catch(e){console.error(e)}}):void 0}catch{return}},[n])}function isAction(e){return!(`type`in e)}function TextButton({entry:e,wrapped:t=!1}){let n=[`toolbar-button`,`type-toolbar-button`,`with-label`];return e.presentation===`primary`&&n.push(`primary`),e.checked&&n.push(`active`),s(`button`,{type:`button`,id:e.id,className:n.join(` `),onClick:e.run,disabled:!e.enabled,title:e.disabledReason??P(e.tooltip,e.title,e.shortcut,hostIsMac()),"aria-description":e.disabledReason,"aria-pressed":e.checked,"aria-haspopup":e.popup===void 0?void 0:`dialog`,"aria-expanded":e.popup,"data-droppable":!t&&e.presentation!==`primary`&&e.place!==`bar`?``:void 0,children:s(`span`,{className:`toolbar-button-label`,children:e.title})})}function inPalette(e){return isAction(e)&&e.listed}function usePopup(e,t,n,r){l(()=>{if(!e)return;let away=e=>{n.current?.contains(e.target)||t(!1)},keys=e=>{if(e.key===`Escape`&&t(!1),e.key!==`ArrowDown`&&e.key!==`ArrowUp`)return;let n=Array.from(r.current?.querySelectorAll(`.toolbar-menu__item:not(:disabled)`)??[]);if(n.length===0)return;e.preventDefault();let i=n.indexOf(document.activeElement);n[e.key===`ArrowDown`?(i+1)%n.length:(i-1+n.length)%n.length].focus()};return document.addEventListener(`mousedown`,away),document.addEventListener(`keydown`,keys),r.current?.querySelector(`.toolbar-menu__item:not(:disabled)`)?.focus(),()=>{document.removeEventListener(`mousedown`,away),document.removeEventListener(`keydown`,keys)}},[e])}function SplitButton({entry:e,menu:n}){let[r,a]=t(!1),o=i(null),c=i(null);usePopup(r,a,o,c);let l=e.presentation===`primary`?` primary`:``;return s(`div`,{className:`toolbar-menu toolbar-split`,ref:o,"data-droppable":e.presentation!==`primary`&&e.place!==`bar`?``:void 0,children:[s(TextButton,{entry:e,wrapped:!0}),s(`button`,{type:`button`,className:`toolbar-button type-toolbar-button toolbar-split__more${l}${r?` active`:``}`,onClick:()=>a(e=>!e),title:u(`app.toolbar.moreWaysTo`,{title:e.title.toLowerCase()}),"aria-label":u(`app.toolbar.moreWaysTo`,{title:e.title.toLowerCase()}),"aria-haspopup":`menu`,"aria-expanded":r,children:s(`span`,{className:`toolbar-button-icon`,role:`presentation`,children:s(Q,{name:`chevron`})})}),r&&s(`div`,{className:`toolbar-menu__list toolbar-menu__list--end`,role:`menu`,ref:c,children:n.map(e=>s(`div`,{className:`toolbar-menu__row`,children:s(`button`,{type:`button`,id:e.id,role:`menuitem`,className:`toolbar-menu__item`,title:e.tooltip,onClick:()=>{a(!1),e.run()},children:[s(Q,{name:e.icon}),s(`span`,{className:`toolbar-menu__label`,children:e.title})]})},e.id))})]})}function PaletteTrigger({open:e,onOpen:t,trigger:n}){let r=u(`app.toolbar.moreActionsHint`,{shortcut:F(w.shortcut,hostIsMac())});return s(`button`,{type:`button`,id:`toolbar-more`,ref:n,className:e?`toolbar-button type-toolbar-button active`:`toolbar-button type-toolbar-button`,onClick:t,title:r,"aria-label":u(`app.toolbar.moreActions`),"aria-haspopup":`dialog`,"aria-expanded":e,children:s(`span`,{className:`toolbar-button-icon`,role:`presentation`,children:s(Q,{name:`more`})})})}function Action({entry:e}){return e.menu&&e.menu.length>0?s(SplitButton,{entry:e,menu:e.menu}):e.presentation===`text`||e.presentation===`primary`?s(TextButton,{entry:e}):s(je,{id:e.id,label:e.title,icon:e.icon,action:e.run,disabled:!e.enabled,tooltip:e.disabledReason??P(e.tooltip,e.title,e.shortcut,hostIsMac()),description:e.disabledReason,isActive:e.checked,checked:e.checked,status:e.status})}function useLocked(e){let[n,r]=t(!1);return l(()=>{if(!e)return;let t=!0;try{E()?.getLicense?.()?.then(e=>t&&r(!we(e)))?.catch(()=>void 0)}catch{}return()=>{t=!1}},[e]),n}function useRecent(){let[,e]=t(0);l(()=>{try{return oe(()=>e(e=>e+1))}catch{return}},[]);let n=q()?.recentActions;return Array.isArray(n)?n:[]}var ht=4;function useFit(e){let t=n(()=>{let t=e.current;if(!t)return;let n=Array.from(t.querySelectorAll(`[data-droppable]`));n.forEach(e=>{e.style.display=``});let r=t.scrollWidth-t.clientWidth;if(r<=0)return;let i=trailingToDrop(n.map(e=>e.offsetWidth+ht),r);n.slice(n.length-i).forEach(e=>{e.style.display=`none`})},[e]);c(t),l(()=>{let n=e.current;if(!n||typeof ResizeObserver>`u`)return;let r=new ResizeObserver(t);return r.observe(n),()=>r.disconnect()},[t,e])}function Toolbar({items:e,visible:r=!0,className:a=``}){let o=usePinning(),c=i(null);useFit(c);let[u,d]=t(!1),f=i(null),p=i(null),m=useLocked(u),h=useRecent(),g=e.filter(isAction),_=e.filter(inPalette).sort((e,t)=>e.order-t.order),v=n(()=>{let e=document.activeElement;p.current=e instanceof HTMLElement&&e!==document.body?e:f.current,d(!0)},[]),b=n(()=>{d(!1)},[]),x=_.length>0;useHostActions(g,v);let S=X();l(()=>{if(!x||!S)return;let keys=e=>{y(e,w.shortcut,hostIsMac())&&(e.preventDefault(),u||v())};return document.addEventListener(`keydown`,keys),()=>document.removeEventListener(`keydown`,keys)},[x,u,v,S]);let C=n(e=>{if(b(),e){try{J({recentActions:pushRecent(q()?.recentActions??[],e.id)})}catch{}setTimeout(()=>{try{e.run()}catch(e){console.error(`Error executing toolbar action:`,e)}},0)}},[b]);if(!r)return null;let T=e.some(e=>`type`in e&&e.type===`overflow`)||!x?e:[...e,{type:`overflow`}];return s(`div`,{className:`toolbar ${a}`.trim(),ref:c,children:[T.map((e,t)=>isAction(e)?e.place===`menu`||e.place===`pinned`&&!o.isPinned(e)?null:s(Action,{entry:e},e.id):e.type===`separator`?s(`div`,{className:`toolbar-separator`},`sep-${t}`):e.type===`spacer`?s(`div`,{className:`toolbar-spacer`},`spacer-${t}`):x?[..._.filter(e=>e.place===`menu`&&o.isPinned(e)).map(e=>s(TextButton,{entry:{...e,id:`pinned-${e.id}`,title:e.title.replace(/…$/,``)}},`pinned-${e.id}`)),s(PaletteTrigger,{open:u,onOpen:v,trigger:f},`overflow`)]:null),u&&s(Palette,{entries:_,recent:h,pinning:o,locked:m,onRun:C,onClose:b,returnFocusTo:p.current})]})}function connectionActions(e){let t={id:`save-deploy`,label:u(`app.deploy.saveAndDeploy`),deploy:!0,role:e===`edit`?`secondary`:`primary`};return e===`edit`?[{id:`save`,label:u(`app.common.save`),deploy:!1,role:`primary`},t]:[t]}var gt=[`url`,`username`,`password`,`clientId`,`clientSecret`,`tokenUrl`];function isWebAddress(e){try{return/^https?:$/.test(new URL(e).protocol)}catch{return!1}}function connectionErrors(e){let t={},n=e.authType??`none`;return isWebAddress(e.url??``)||(t.url=u(`app.deploy.addressScheme`)),n===`basic`&&(e.username?.trim()||(t.username=u(`app.deploy.enterTheUserNameTo`)),!e.password&&!e.passwordSaved&&(t.password=u(`app.deploy.enterThePasswordToSign`))),n===`oauth`&&(e.clientId?.trim()||(t.clientId=u(`app.deploy.enterTheClientId`)),!e.clientSecret&&!e.clientSecretSaved&&(t.clientSecret=u(`app.deploy.enterTheClientSecret`)),isWebAddress(e.tokenUrl??``)||(t.tokenUrl=u(`app.deploy.tokenAddressScheme`))),t}var _t={none:[],basic:[`username`,`password`],oauth:[`clientId`,`clientSecret`,`tokenUrl`,`audience`]};function connectionFieldsOf(e){return _t[e??`none`]??[]}function firstInvalid(e){return gt.find(t=>t in e)??null}var vt=Object.values(p),yt=L(`http://localhost:8080/engine-rest`),bt=L(`http://localhost:8088`),xt=L(`https://login.cloud.camunda.io/oauth/token`);function ConnectionDialog({profile:e,engine:n,opened:r,onClose:i,onSaved:a}){let[o,c]=t({profile:e}),[d,f]=t(!1),[p,m]=t(!1),[h,g]=t(null),_=ne();l(()=>{let t=!1;return E().getDeploymentSettings(e).then(n=>{t||c({...n,profile:e})}).catch(e=>console.error(`Failed to read the connection settings:`,e)).finally(()=>{t||f(!0)}),()=>{t=!0}},[e]),l(()=>{d&&document.querySelector(`.ui-dialog__body input`)?.focus()},[d]);let v=o.authType??`none`,set=e=>c(t=>({...t,...e})),y=connectionErrors(o),save=async e=>{if(_.submit(),firstInvalid(y))requestAnimationFrame(()=>document.querySelector(`.ui-dialog [aria-invalid="true"]`)?.focus());else{m(!0),g(null);try{await E().saveDeploymentSettings(o),a(e)}catch(e){g(u(`app.deploy.unableToSaveTheConnection`,{failure:M(e)}))}finally{m(!1)}}},field=(e,t,n={})=>s(G,{label:e,hint:n.hint,optional:n.optional,error:_.errorOf(t,y[t]??null),children:e=>s(`input`,{...e,type:n.type??`text`,value:o[t]??``,placeholder:n.placeholder,disabled:!d||p,onInput:e=>set({[t]:e.target.value}),onBlur:()=>_.touch(t)})}),b=connectionActions(r),x=b.find(e=>e.role===`primary`)??b[0];return s(U,{title:u(`app.deploy.engineConnection`),subtitle:`${A(n)} · ${Z({profile:e})}`,size:`medium`,onClose:i,onSubmit:()=>void save(x.deploy),footer:s(K,{actions:[{id:`cancel`,label:u(`app.common.cancel`),role:`cancel`,onClick:i,disabled:p},...b.map(e=>({id:e.id,label:e.label,role:e.role,onClick:()=>void save(e.deploy),disabled:!d,busy:p}))]}),children:[field(u(`app.deploy.engineAddress`),`url`,{placeholder:k(n)?bt:yt,hint:u(`app.deploy.keptInPenstockLocalYaml`)}),s(G,{label:u(`app.deploy.signIn`),group:`radiogroup`,children:e=>s(`div`,{...e,class:`ui-choice-group`,children:vt.map(e=>s(`label`,{class:`ui-choice`,children:[s(`input`,{type:`radio`,name:`auth`,checked:v===e,disabled:!d||p,onChange:()=>{_.reveal(connectionFieldsOf(e)),set({authType:e})}}),s(`span`,{children:u(e===`none`?`app.deploy.notNeeded`:e===`basic`?`app.deploy.userAndPassword`:`app.deploy.oauthClient`)})]},e))})}),v===`basic`&&field(u(`app.deploy.user`),`username`),v===`basic`&&field(u(`app.deploy.password`),`password`,{type:`password`,hint:o.passwordSaved?u(`app.deploy.savedInTheIdeS`):u(`app.deploy.keptInTheIdeS`)}),v===`oauth`&&field(u(`app.deploy.clientId`),`clientId`),v===`oauth`&&field(u(`app.deploy.clientSecret`),`clientSecret`,{type:`password`,hint:o.clientSecretSaved?u(`app.deploy.savedInTheIdeS`):u(`app.deploy.keptInTheIdeS`)}),v===`oauth`&&field(u(`app.deploy.tokenAddress`),`tokenUrl`,{placeholder:xt}),v===`oauth`&&field(u(`app.deploy.audience`),`audience`,{optional:!0}),s(`p`,{class:`ui-field__hint`,children:u(`app.deploy.nameTenantAndTheRest`)}),h&&s(ae,{children:h})]})}var St=4;function sentFiles(e){return e.length>St?{names:e.slice(0,St),more:e.length-St}:{names:e,more:0}}function hookLines(e){let[t,...n]=e;return{command:t??u(`app.deploy.runningTheDeployHook`),said:n.filter(e=>e.trim().length>0)}}function deployPopover(e,t){let n=e?.targets??[],r=n.find(e=>(e.profile??null)===t)??null,i=r?.ready===!0;return{profiles:n.map(e=>({value:e.profile??null,label:e.profile??`default`})),chooseProfile:n.length>1,target:r,address:r?.url??null,canDeploy:i,action:u(i?`app.deploy.deploy`:`app.deploy.setUpConnection`)}}function DeployPopover({deploy:e}){let[n,i]=t(e.targets?.active??null),[a,o]=t(null),c=deployPopover(e.targets,n),d=sentFiles(a??[]),f=$e(`deploy`),p=e.running,m=hookLines(p?.lines??[]);l(()=>{let t=!1;return e.filesToSend().then(e=>!t&&o(e)).catch(()=>!t&&o([])),()=>{t=!0}},[]);let run=()=>{e.deployTo(n)},edit=()=>{e.edit(n)};return s(V,{anchor:f,label:u(`app.deploy.deploy`),onClose:e.closePopover,width:352,class:`deploy-popover`,children:[s(`h3`,{class:`ui-popover__title`,children:u(`app.deploy.deploy`)}),c.chooseProfile&&s(G,{label:u(`app.deploy.profile`),layout:`top`,children:e=>s(`select`,{...e,value:n??``,onChange:e=>i(e.target.value||null),children:c.profiles.map(e=>s(`option`,{value:e.value??``,children:e.label},e.value??`default`))})}),s(`dl`,{class:`ui-popover__facts`,children:[s(`dt`,{children:u(`app.deploy.engineAddress`)}),s(`dd`,{children:c.address??u(`app.deploy.notSetYet`)}),s(`dt`,{children:u(`app.deploy.whatWillBeSent`)}),s(`dd`,{children:[a===null&&u(`app.deploy.readingTheDiagram`),a!==null&&d.names.length===0&&u(`app.deploy.nothingToDeploy`),d.names.map(e=>s(`span`,{class:`ui-popover__file`,children:e},e)),d.more>0&&s(`span`,{class:`ui-popover__file`,children:u(`app.deploy.andNMore`,{number:d.more})})]}),p&&s(r,{children:[s(`dt`,{children:u(`app.deploy.deployHook`)}),s(`dd`,{"aria-busy":`true`,children:[s(`span`,{class:`ui-popover__file`,children:m.command}),m.said.map(e=>s(`span`,{class:`ui-popover__file`,children:e},e))]})]})]}),s(`div`,{class:`ui-popover__actions`,children:s(H,{actions:[...p&&p.cancellable?[{id:`cancel`,label:u(`app.common.cancel`),role:`cancel`,onClick:e.cancelDeploy}]:[],...c.canDeploy&&!p?[{id:`edit`,label:u(`app.deploy.editConnection`),role:`secondary`,onClick:edit}]:[],{id:`deploy`,label:c.action,role:`primary`,onClick:run,busy:p!==null,disabled:p!==null||c.target===null&&e.targets!==null}]})})]})}function DeployLayer({deploy:e,engine:t}){return s(r,{children:[e.popover&&s(DeployPopover,{deploy:e}),e.editing&&s(ConnectionDialog,{profile:e.editing.profile??null,engine:t,onClose:e.closeEditor,opened:e.editingFor,onSaved:t=>void e.saved(t)})]})}function deployFailure(e){return{message:e.message,editConnection:e.status===401||e.status===403}}function useDeploy(e,r){let[a,o]=t(null),[s,c]=t(null),[d,p]=t(`deploy`),[m,h]=t(!1),[g,_]=t(null),v=i(null),y=i(!0),b=n((e,t)=>{h(!1),p(e),c(t)},[]),x=n(async()=>{try{let e=await E().getDeployTargets();return y.current&&o(e),e}catch(e){return console.error(`Failed to read the deployment targets:`,e),null}},[]);l(()=>(y.current=!0,x(),()=>{y.current=!1,v.current?.abort()}),[x]);let find=(e,t)=>e?.targets?.find(e=>(e?.profile??null)===t)??{profile:t,ready:!1},S=n(async t=>{let n=window.appConfig?.bpmnFilePath,r=n?await f(()=>import(`./testCaseRuns-Bw2AfAfR.js`).then(e=>e.f).then(e=>e.resourcesOf(n,t)),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10]),import.meta.url).catch(()=>null):null;return r&&r.length>0?r.map(e=>({name:e.name,content:e.content})):[{name:e,content:t}]},[e]),C=n(async()=>{try{let e=await r();return e?(await S(e)).map(e=>e.name):[]}catch{return[]}},[r,S]),w=n(async t=>{let n;try{n=await r()}catch(e){j.error(u(`app.deploy.unableToDeploy`,{reason:e instanceof Error?e.message:String(e)}));return}if(!n){j.error(u(`app.deploy.nothingInToDeploy`,{fileName:e}));return}let i=j.info(u(`app.deploy.deployingTo`,{fileName:e,target:Z(t)})),a=new AbortController;v.current=a,_({lines:[],cancellable:E().hookRunsInBackground===!0});let o=null,s=``;try{o=await Pe(t,await S(n),void 0,{signal:a.signal,onLines:e=>_(t=>t&&{...t,lines:e})})}catch(e){s=e instanceof Error?e.message:String(e)}finally{j.hide(i)}if(v.current=null,_(null),!o)j.error(u(`app.deploy.unableToDeploy`,{reason:s}));else if(a.signal.aborted)j.info(u(`app.deploy.deployToCancelled`,{target:Z(t)}));else if(o.ok)j.success(u(`app.deploy.succeededOn`,{message:o.message,target:t.url??Z(t)}));else{let e=deployFailure(o);j.error(e.message,e.editConnection?{label:u(`app.deploy.editConnection2`),run:()=>b(`deploy`,t)}:void 0)}},[r,e,S,b]),T=n(async e=>{let t=find(a??await x(),e);t.ready?await w(t):b(`deploy`,t)},[a,x,w,b]),D=n(async e=>{let t=s?.profile??null;c(null);let n=find(await x(),t);e&&n.ready&&await w(n)},[s,x,w]);return{targets:a,running:g,cancelDeploy:n(()=>v.current?.abort(),[]),editing:s,editingFor:d,popover:m,togglePopover:()=>h(e=>!e),closePopover:()=>h(!1),filesToSend:C,deployTo:T,edit:e=>b(`edit`,find(a,e)),closeEditor:()=>c(null),saved:D}}function deployState(e){return{active:e?.targets?.active??null,targets:(e?.targets?.targets??[]).map(e=>({profile:e?.profile??null,label:Z(e),url:e?.url})),popover:e?.popover??!1,open:e?.togglePopover??(()=>{}),deployTo:t=>void e?.deployTo?.(t),edit:t=>e?.edit?.(t)}}var Ct=4;function problemTally(e){return u(`app.problems.tally`,{count:e})}function CheckCard({title:e,tally:t,isError:n,findings:r,moreCount:i,clean:a,onRecheck:o,onClose:c,onShowAll:l,onPick:d}){let f=Array.isArray(r)?r:[],p=i===void 0?f.slice(0,Ct):f,m=i??Math.max(0,f.length-p.length);return p.length===0&&m===0&&!n&&a?s(`aside`,{class:`diagram-check diagram-check--clean`,"aria-label":e,"aria-description":a,"aria-live":`polite`,title:a,children:[s(`svg`,{class:`diagram-check__ok`,viewBox:`0 0 16 16`,width:`16`,height:`16`,"aria-hidden":`true`,children:s(`path`,{d:`M3.5 8.5 6.5 11.5 12.5 4.5`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.5`,"stroke-linecap":`round`,"stroke-linejoin":`round`})}),s(`span`,{class:`diagram-check__tally is-clean`,children:u(`app.diagramCheck.noProblemsFound`)}),s(`button`,{type:`button`,class:`ui-button`,onClick:o,title:u(`app.common.checkAgain`),children:u(`app.common.recheck`)})]}):s(`aside`,{class:`diagram-check`,"aria-label":e,"aria-live":`polite`,children:[s(`header`,{class:`diagram-check__bar`,children:[s(`span`,{class:`diagram-check__title`,children:e}),s(`span`,{class:n?`diagram-check__tally is-error`:`diagram-check__tally`,children:t}),s(`button`,{type:`button`,class:`ui-button`,onClick:o,title:u(`app.common.checkAgain`),children:u(`app.common.recheck`)}),s(`button`,{type:`button`,class:`diagram-check__close`,onClick:c,title:u(`app.editorShell.close`,{title:e.toLowerCase()}),"aria-label":u(`app.editorShell.close`,{title:e.toLowerCase()}),children:s(`svg`,{viewBox:`0 0 16 16`,width:`16`,height:`16`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.5`,"stroke-linecap":`round`,"aria-hidden":`true`,children:s(`path`,{d:`M4.5 4.5 11.5 11.5M11.5 4.5 4.5 11.5`})})})]}),s(`div`,{class:`diagram-check__body`,children:p.length>0&&s(`ul`,{class:`diagram-check__list diagram-check__summary`,children:p.map((e,t)=>e?s(`li`,{children:s(`button`,{type:`button`,class:e.severity?`diagram-check__row has-severity`:`diagram-check__row`,onClick:()=>d(t),children:[e.severity&&s(SeverityIcon,{severity:e.severity}),s(`span`,{class:`diagram-check__row-text`,children:[s(`span`,{class:`diagram-check__row-title`,children:e.title}),s(`span`,{class:`diagram-check__row-where diagram-check__row-where--wrap`,children:e.detail})]})]})},t):null)})}),(p.length>0||m>0)&&s(`footer`,{class:`diagram-check__more`,children:s(`button`,{type:`button`,class:`diagram-check__link`,onClick:l,children:m>0?u(`app.editorShell.showAllMore`,{more:m}):u(`app.common.showAll`)})})]})}var wt=u(`app.tracePaths.tracePaths`);function TraceCard({label:e,before:t,after:n,followMessages:i,showMessages:a,open:o,onToggle:c,onFollowMessages:l,onClose:d}){let f=R(e,t,n);return s(r,{children:[s(`button`,{type:`button`,class:o?`trace-pill is-open`:`trace-pill`,"aria-expanded":o,"aria-label":f,title:f,onClick:c,children:[s(`svg`,{viewBox:`0 0 16 16`,width:`16`,height:`16`,fill:`none`,stroke:`currentColor`,"stroke-width":`1`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`,dangerouslySetInnerHTML:{__html:te}}),s(`span`,{class:`trace-pill__counts`,children:`${t} → ${n}`})]}),o&&s(`aside`,{class:`diagram-check trace-card`,"aria-label":wt,children:[s(`div`,{class:`trace-card__row`,children:[s(`span`,{class:`trace-card__tally`,children:f}),s(`button`,{type:`button`,class:`trace-card__close`,onClick:d,title:u(`app.tracePaths.closeTrace`),"aria-label":u(`app.tracePaths.closeTrace`),children:s(`svg`,{viewBox:`0 0 16 16`,width:`16`,height:`16`,stroke:`currentColor`,fill:`none`,"stroke-width":`1.5`,"stroke-linecap":`round`,"aria-hidden":`true`,children:s(`path`,{d:`M4.5 4.5 11.5 11.5M11.5 4.5 4.5 11.5`})})})]}),a&&s(`label`,{class:`trace-card__option`,children:[s(`input`,{type:`checkbox`,checked:i,onChange:e=>l(e.currentTarget.checked)}),u(`app.tracePaths.followMessageFlows`)]})]})]})}var Tt=[`Canvas`,`Modeling`,`Edit`,`Penstock`],Et={undo:{keys:[`Mod+Z`],action:`undo`},redo:{keys:[`Mod+Y`,`Mod+Shift+Y`,`Mod+Shift+Z`],action:`redo`},cut:{keys:[`Mod+X`],action:`cut`},copy:{keys:[`Mod+C`],action:`copy`},paste:{keys:[`Mod+V`],action:`paste`},duplicate:{keys:[`Mod+D`],action:`duplicate`},remove:{keys:[`Backspace`,`Delete`],action:`removeSelection`}},Dt={selectAll:{keys:[`Mod+A`],action:`selectElements`},find:{keys:[`Mod+F`],action:`find`},zoomIn:{keys:[`Mod+=`],action:`stepZoom`},zoomOut:{keys:[`Mod+-`],action:`stepZoom`},fit:{keys:[`Mod+0`],action:`zoom`},pan:{keys:[`Mod+Arrow`],action:`moveCanvas`},moveSelection:{keys:[`Arrow`],action:`moveSelection`}},row=(e,t,n)=>({id:e,group:t,...n}),Ot=[`selectAll`,`find`,`zoomIn`,`zoomOut`,`fit`,`pan`,`moveSelection`].map(e=>row(`canvas-${e}`,`Canvas`,Dt[e])),kt=[`undo`,`redo`,`cut`,`copy`,`paste`,`duplicate`,`remove`].map(e=>row(`edit-${e}`,`Edit`,Et[e])),At={bpmn:{canvas:[...Ot,row(`model-space-tool`,`Modeling`,{keys:[`S`],action:`spaceTool`}),row(`model-lasso`,`Modeling`,{keys:[`L`],action:`lassoTool`}),row(`model-hand`,`Modeling`,{keys:[`H`],action:`handTool`}),row(`model-connect`,`Modeling`,{keys:[`C`],action:`globalConnectTool`}),row(`model-direct-edit`,`Modeling`,{keys:[`E`],action:`directEditing`}),row(`model-replace`,`Modeling`,{keys:[`R`],action:`replaceElement`}),...kt],drd:[],table:[],form:[]},dmn:{canvas:[],drd:[...Ot,row(`model-lasso`,`Modeling`,{keys:[`L`],action:`lassoTool`}),row(`model-hand`,`Modeling`,{keys:[`H`],action:`handTool`}),row(`model-direct-edit`,`Modeling`,{keys:[`E`],action:`directEditing`}),...kt],table:[],form:[]},form:{canvas:[],drd:[],table:[],form:[row(`edit-undo`,`Edit`,Et.undo),row(`edit-redo`,`Edit`,Et.redo)]}};function libraryRows(e,t){return(At[e]?.[t]??[]).map(e=>({...e,label:u(`app.shortcuts.row.${e.id}`)}))}function penstockRows(e=[]){return[{id:`penstock-palette`,label:u(`app.shortcuts.row.penstock-palette`),group:`Penstock`,keys:[w.shortcut]},...(e??[]).filter(e=>e?.id&&e?.shortcut).map(e=>({id:`penstock-${e.id}`,label:e.title??``,group:`Penstock`,keys:[String(e.shortcut)],action:e.id}))]}function shortcutRows(e=[],t,n){return penstockRows(e).reduce((e,t)=>{let n=e.findIndex(e=>(e?.keys??[]).some(e=>(t?.keys??[]).includes(e)));if(n<0)return[...e,t];let r={...e[n],...t.action?{action:t.action}:{}};return[...e.slice(0,n),r,...e.slice(n+1)]},[...libraryRows(t,n)])}function shortcutSections(e=[],t,n){let r=shortcutRows(e,t,n);return Tt.map(e=>({group:e,rows:r.filter(t=>t.group===e)})).filter(e=>e.rows.length>0)}function splitSections(e=[]){let t=e??[],n=t.reduce((e,t)=>e+(t?.rows?.length??0),0)/2,r=[],i=0;for(let e of t)if(e){if(i>=n&&r.length>0)break;r.push(e),i+=e.rows?.length??0}return[r,t.filter(e=>!r.includes(e))]}function rowMatches(e,t,n){return e?(e.label??``).toLowerCase().includes(t)?!0:(e.keys??[]).some(e=>(e??``).toLowerCase().includes(t)||(F(e,n)??``).toLowerCase().includes(t)):!1}function filterShortcutSections(e=[],t=``,n=!1){let r=(t??``).trim().toLowerCase(),i=e??[];return r?i.map(e=>({group:e.group,rows:(e.rows??[]).filter(e=>rowMatches(e,r,n))})).filter(e=>e.rows.length>0):[...i]}function KeyboardShortcutsDialog({editor:e,mode:n,actions:r,onClose:i}){let[o,c]=t(``),l=hostIsMac(),d=a(()=>filterShortcutSections(shortcutSections(r,e,n),o,l),[r,e,n,o,l]),[f,p]=a(()=>splitSections(d),[d]);return s(U,{title:u(`app.shortcuts.title`),size:`large`,initialFocus:`title`,onClose:i,class:`keyboard-shortcuts-dialog`,footer:s(K,{actions:[{id:`close`,label:u(`app.common.close`),role:`primary`,onClick:i}]}),children:[s(`input`,{class:`ui-input type-input keyboard-shortcuts__search`,type:`text`,"aria-label":u(`app.shortcuts.search`),placeholder:u(`app.shortcuts.search`),value:o,onInput:e=>c(e.target.value)}),d.length===0?s(ie,{title:u(`app.shortcuts.noMatch`),hint:u(`app.shortcuts.noMatchHint`)}):s(`div`,{class:`keyboard-shortcuts__list`,children:[f,p].map(e=>s(`div`,{class:`keyboard-shortcuts__column`,children:e.map(e=>s(`section`,{class:`keyboard-shortcuts__group`,children:[s(`h3`,{class:`type-section-heading keyboard-shortcuts__group-title`,children:u(`app.shortcuts.group.${e.group}`)}),e.rows.map(e=>s(`div`,{class:`keyboard-shortcuts__row`,children:[s(`span`,{class:`type-body keyboard-shortcuts__label`,children:e.label}),s(`span`,{class:`keyboard-shortcuts__keys`,children:e.keys.map(e=>s(`kbd`,{class:`type-code keyboard-shortcuts__key`,children:F(e,l)},e))})]},e.id))]},e.group))},e.length===0?`right`:e[0].group))})]})}var jt=`#js-properties-panel, #dmn-properties-panel, .sidebar-properties`;function blockedBy(e){try{if(I(e))return!0;let t=e;return typeof t?.closest==`function`&&!!t.closest(jt)}catch{return!1}}function KeyboardShortcutsLayer({editor:e,mode:n,actions:r}){let[i,a]=t(!1),o=X();return l(()=>{if(o)try{let e=O(()=>a(!0));return()=>e?.()}catch{return}},[o]),l(()=>{if(!o)return;let listener=e=>{i||e.defaultPrevented||y(e,`Shift+/`,hostIsMac())&&(blockedBy(e.target)||(e.preventDefault(),a(!0)))};return document.addEventListener(`keydown`,listener,!0),()=>document.removeEventListener(`keydown`,listener,!0)},[i,o]),i?s(KeyboardShortcutsDialog,{editor:e,mode:n,actions:r,onClose:()=>a(!1)}):null}function label(e){return u(`app.themeChoice.${e}`)}function ThemeChoiceLayer(){let[e,n]=t(!1),[r,i]=t(He()),a=X(),o=$e(`toolbar-more`);if(l(()=>{if(!a)return;let e=h(()=>{i(He()),n(!0)});return()=>e()},[a]),!e)return null;let pick=e=>{ze(e),i(e)};return s(V,{anchor:o,label:u(`app.themeChoice.title`),onClose:()=>n(!1),width:240,class:`theme-choice`,children:[s(`h3`,{class:`ui-popover__title`,children:u(`app.themeChoice.title`)}),s(`div`,{role:`radiogroup`,"aria-label":u(`app.themeChoice.title`),class:`theme-choice__list`,children:We.map(e=>s(`label`,{class:`theme-choice__row type-body`,children:[s(`input`,{type:`radio`,name:`editor-theme`,value:e,checked:r===e,tabIndex:r===e?0:-1,onChange:()=>pick(e)}),s(`span`,{children:label(e)})]},e))})]})}function useDocumentationLink(e){l(()=>g(t=>{Promise.resolve().then(()=>e(t)).catch(()=>{window.open(t,`_blank`,`noopener,noreferrer`)})}),[e])}var ErrorBoundary=class extends o{state={hasError:!1};static getDerivedStateFromError(e){return{hasError:!0,error:e}}componentDidCatch(e){console.error(e)}handleReload=()=>{this.props.onReload?this.props.onReload():window.location.reload()};render(){return this.state.hasError?s(`div`,{class:`editor-error-boundary`,role:`alert`,children:s(ie,{title:u(`app.startup.theEditorCouldNotStart`),hint:u(`app.startup.retryingReloadsTheEditorAnd`),actions:[{label:u(`app.common.reload`),run:this.handleReload}]})}):this.props.children}};function useCornerLayout(e){let[n,r]=t(!1);return l(()=>{let t=e.current;if(!t)return;let publish=()=>{let e=Ie(t);t.style.setProperty(`--corner-height`,`${e.height}px`),t.style.setProperty(`--dock-inset`,`${e.dock}px`),t.style.setProperty(`--input-inset`,`${e.input}px`),t.style.setProperty(`--corner-left`,`${e.left}px`),t.style.setProperty(`--corner-covered-left`,`${e.coveredLeft}px`),t.style.setProperty(`--corner-bottom`,`${e.bottom}px`),t.style.setProperty(`--corner-trace-left`,`${e.traceLeft}px`),r(e.folded)};publish();let n=ue(t,[],publish),i=le(t,publish);return window.addEventListener(`resize`,publish),()=>{n(),i(),window.removeEventListener(`resize`,publish),t.style.removeProperty(`--corner-height`),t.style.removeProperty(`--dock-inset`),t.style.removeProperty(`--input-inset`),t.style.removeProperty(`--corner-left`),t.style.removeProperty(`--corner-covered-left`),t.style.removeProperty(`--corner-bottom`),t.style.removeProperty(`--corner-trace-left`)}},[e]),n}function isSmallCanvas(e,t){return e<720||t<560}function paletteCollapsed({preference:e,small:t,openedWhileSmall:n}){return e===!0||t&&!n}var Mt=`palette-island__head`,Nt=`palette-island__toggle`,Pt=new WeakMap,Ft=`<svg viewBox="0 0 16 16" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M10 4 6 8l4 4" /></svg>`;function headOf(e){let t=e.querySelector(`:scope > .${Mt} > .${Nt}`);if(t)return t;let n=document.createElement(`div`);n.className=Mt;let r=document.createElement(`button`);return r.type=`button`,r.className=Nt,r.innerHTML=Ft,r.addEventListener(`click`,()=>Pt.get(r)?.()),n.appendChild(r),e.insertBefore(n,e.firstChild),r}function syncPaletteHeads(e,t,n){e.querySelectorAll(ye).forEach(e=>{let r=headOf(e);Pt.set(r,n);let i=u(t?`app.editorShell.openPalette`:`app.editorShell.collapsePalette`);r.setAttribute(`aria-label`,i),r.setAttribute(`aria-expanded`,String(!t)),r.title=i})}function usePaletteIsland(e){let[r,i]=t(()=>q().paletteCollapsed??null),[a,o]=t(!1),[s,c]=t(!1);l(()=>{let t=e.current;if(!t)return;let measure=()=>{let e=t.getBoundingClientRect();o(isSmallCanvas(e.width,e.height))};if(measure(),typeof ResizeObserver>`u`)return;let n=new ResizeObserver(measure);return n.observe(t),()=>n.disconnect()},[e]);let u=paletteCollapsed({preference:r,small:a,openedWhileSmall:s}),d=n(()=>{let e=!u;i(e),c(!e&&a),J({paletteCollapsed:e})},[u,a]);return l(()=>{let t=e.current;if(!t)return;let sync=()=>syncPaletteHeads(t,u,d);if(sync(),typeof MutationObserver>`u`)return;let n=new MutationObserver(sync);return n.observe(t,{childList:!0,subtree:!0}),()=>n.disconnect()},[e,u,d]),{collapsed:u,toggle:d}}function EditorShell({className:e,toolbarItems:r,tabs:a,sidebar:o,badges:c,notice:d,check:f,trace:p,timeline:m,statusShown:h,deploy:g,assistant:_,counts:v,shortcuts:y,edit:b,children:x,onReload:S}){let C=X(),w=i(Symbol(`editor`)),T=(y?.actions??[]).filter(e=>e.enabled).map(e=>e.id).join(`,`),D=c?.problems,O=v?.scenarios,k=v?.waiting;l(()=>{if(C)return Te(w.current,{problems:D,scenarios:O,waiting:k,actions:T===``?[]:T.split(`,`)}),()=>Ke(w.current)},[C,D,O?.passed,O?.all,k,T]);let A=i(b);A.current=b,l(()=>{if(C)return Ve(w.current,()=>A.current??{})},[C]),useDocumentationLink(e=>E().openExternalLink(e));let j=i(null),M=i(null),N=useCornerLayout(j),P=usePaletteIsland(j),F=Ue();Oe();let[I,L]=t(!1),R=f!==void 0,te=n(()=>{I||f?.onClose(),L(!I)},[I,f?.onClose]);l(()=>{R&&L(!1)},[R]);let z=R||I;l(()=>{if(!z)return;let escape=e=>{e.key===`Escape`&&(I?L(!1):f?.onClose())};return document.addEventListener(`keydown`,escape),()=>document.removeEventListener(`keydown`,escape)},[z,I,f?.onClose]);let B=_?.key??null,V=ee(Ze()),H=Ye(B),U=fe(B),W=i(U);l(()=>{W.current!==U&&(W.current=U,o.select(ge.id))},[U]);let G=V.chatTab&&o.shownTab===ge.id;xe(B,G);let ne=a.filter(e=>e.needs!==`ai-chat`||V.chatTab),K=[f||h?`editor-canvas diagram-check-open`:`editor-canvas`,p?p.showMessages?`has-trace-card`:`has-trace-card is-one-row`:``,N?`is-corner-folded`:``,P.collapsed?`is-palette-collapsed`:``].filter(Boolean).join(` `);return s(ErrorBoundary,{onReload:S,children:s(ve,{value:M,children:s(`div`,{class:`resource-editor ${e}`,ref:M,children:[s(`div`,{class:`editor-shell`,ref:o.measure,children:[s(`div`,{class:`editor-main`,children:[s(`div`,{id:`toolbar-container`,class:`app-toolbar`,style:{flexShrink:0},children:s(Toolbar,{items:r})}),d&&s(`div`,{class:`resource-editor__notice`,role:`status`,children:[s(`span`,{children:d.text}),d.action&&s(`button`,{type:`button`,class:`resource-editor__notice-action`,onClick:d.action.run,children:d.action.label}),s(`button`,{type:`button`,class:`resource-editor__notice-action`,onClick:d.dismiss,children:u(`app.dmnMode.gotIt`)})]}),s(`div`,{id:`js-canvas`,class:K,ref:j,children:[x,p&&s(TraceCard,{...p,open:I,onToggle:te}),f&&s(CheckCard,{...f}),_&&s(me,{editor:_,hidden:G})]}),m]}),s(Ce.Provider,{value:_??null,children:s(Sidebar,{tabs:ne,api:o,badges:c,statuses:H?{[ge.id]:H}:void 0,hidden:F})})]}),_&&s(Fe,{editor:_}),g&&s(DeployLayer,{deploy:g.deploy,engine:g.engine}),y&&s(KeyboardShortcutsLayer,{...y}),s(ThemeChoiceLayer,{})]})})})}var It=`
|
|
3
|
+
:root{color-scheme:light dark;--bg:#ffffff;--surface:#f7f8fa;--border:#ebecf0;--fg:#27282c;--muted:#6c707e;--accent:#3574f0;--hover:#ebecf0}
|
|
4
|
+
@media (prefers-color-scheme: dark){:root{--bg:#1e1f22;--surface:#2b2d30;--border:#43454a;--fg:#ced0d6;--muted:#868a91;--accent:#548af7;--hover:#393b40}#canvas svg{filter:invert(.9) hue-rotate(180deg)}}
|
|
5
|
+
*{box-sizing:border-box}
|
|
6
|
+
html,body{height:100%;margin:0}
|
|
7
|
+
body{display:flex;flex-direction:column;background:var(--bg);color:var(--fg);font:13px/1.5 "JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
|
|
8
|
+
header{padding:12px 16px}
|
|
9
|
+
h1{font-size:16px;line-height:24px;margin:0;font-weight:600}
|
|
10
|
+
.hint{margin:0;color:var(--muted);font-size:12px}
|
|
11
|
+
main{position:relative;flex:1;min-height:0}
|
|
12
|
+
footer{padding:8px 16px;color:var(--muted);font-size:12px;line-height:24px}
|
|
13
|
+
#canvas{position:absolute;inset:0;overflow:hidden;cursor:grab;touch-action:none;outline:none}
|
|
14
|
+
#canvas:active{cursor:grabbing}
|
|
15
|
+
#canvas svg{display:block;width:100%;height:100%}
|
|
16
|
+
#canvas .djs-element{cursor:pointer}
|
|
17
|
+
.penstock-selected{filter:drop-shadow(0 0 3px var(--accent))}
|
|
18
|
+
#controls{position:absolute;top:12px;left:12px;display:flex;gap:4px;padding:4px;background:var(--surface);border:1px solid var(--border);border-radius:8px}
|
|
19
|
+
#controls button{width:28px;height:28px;padding:0;display:grid;place-items:center;background:transparent;color:var(--fg);border:0;border-radius:6px;cursor:pointer}
|
|
20
|
+
#controls button:hover{background:var(--hover)}
|
|
21
|
+
#controls button:focus-visible,#info button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
|
|
22
|
+
#controls svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:round;stroke-linejoin:round}
|
|
23
|
+
#info{position:absolute;top:12px;right:12px;width:320px;max-width:calc(100% - 24px);max-height:calc(100vh - 128px);overflow:auto;padding:12px;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:0 4px 16px rgba(0,0,0,.12)}
|
|
24
|
+
#info[hidden]{display:none}
|
|
25
|
+
#info h2{margin:0 24px 0 0;font-size:13px;line-height:20px;font-weight:600}
|
|
26
|
+
#info .kind{margin:0 0 8px;font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
|
|
27
|
+
#info p{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}
|
|
28
|
+
#info .none{color:var(--muted)}
|
|
29
|
+
#info button{position:absolute;top:8px;right:8px;width:28px;height:28px;padding:0;background:transparent;color:var(--muted);border:0;border-radius:6px;cursor:pointer}
|
|
30
|
+
#info button:hover{background:var(--hover);color:var(--fg)}
|
|
31
|
+
.document{flex:1;overflow:auto;padding:16px}
|
|
32
|
+
.document section{max-width:1100px;margin:0 auto 24px}
|
|
33
|
+
.document h2{margin:0 0 4px;font-size:11px;line-height:20px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-weight:600}
|
|
34
|
+
.document h2.name{font-size:13px;letter-spacing:0;text-transform:none;color:var(--fg)}
|
|
35
|
+
.document p{margin:0 0 8px}
|
|
36
|
+
.document .note{color:var(--muted);font-size:12px}
|
|
37
|
+
.document table{border-collapse:collapse;width:100%}
|
|
38
|
+
.document th,.document td{padding:4px 8px;text-align:left;vertical-align:top;overflow-wrap:anywhere}
|
|
39
|
+
.document th{color:var(--muted);font-weight:600;font-size:12px;border-bottom:1px solid var(--border)}
|
|
40
|
+
.document tbody tr:hover{background:var(--hover)}
|
|
41
|
+
`,Lt=`
|
|
42
|
+
.bjs-powered-by{position:fixed;bottom:12px;right:12px;z-index:1000;color:var(--muted);line-height:0}
|
|
43
|
+
.bjs-powered-by:hover{color:var(--fg)}
|
|
44
|
+
.bjs-powered-by svg{display:block}
|
|
45
|
+
`;function shareScript(){return`(function () {
|
|
46
|
+
var canvas = document.getElementById('canvas');
|
|
47
|
+
var noDocumentation = ${JSON.stringify(u(`app.share.noDocumentation`))};
|
|
48
|
+
var closeLabel = ${JSON.stringify(u(`app.common.close`))};
|
|
49
|
+
var svg = canvas.querySelector('svg');
|
|
50
|
+
var info = document.getElementById('info');
|
|
51
|
+
var entries = JSON.parse(document.getElementById('docs').textContent || '[]');
|
|
52
|
+
var docs = {};
|
|
53
|
+
entries.forEach(function (entry) { docs[entry.id] = entry; });
|
|
54
|
+
var base = svg.getAttribute('viewBox').split(/[\\s,]+/).map(Number);
|
|
55
|
+
var view = base.slice();
|
|
56
|
+
var moved = false;
|
|
57
|
+
var pointers = {};
|
|
58
|
+
var drag = null;
|
|
59
|
+
var pinch = 0;
|
|
60
|
+
|
|
61
|
+
function apply() {
|
|
62
|
+
svg.setAttribute('viewBox', view.map(function (value) { return Math.round(value * 100) / 100; }).join(' '));
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
function fit() {
|
|
66
|
+
view = base.slice();
|
|
67
|
+
apply();
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
function scale() {
|
|
71
|
+
var box = svg.getBoundingClientRect();
|
|
72
|
+
if (!box.width || !box.height) return { factor: 1, left: 0, top: 0 };
|
|
73
|
+
var factor = Math.min(box.width / view[2], box.height / view[3]);
|
|
74
|
+
return { factor: factor, left: (box.width - view[2] * factor) / 2, top: (box.height - view[3] * factor) / 2, box: box };
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
function zoom(factor, x, y) {
|
|
78
|
+
var next = view[2] / factor;
|
|
79
|
+
if (next < base[2] / 40 || next > base[2] * 8) return;
|
|
80
|
+
view = [x - (x - view[0]) / factor, y - (y - view[1]) / factor, next, view[3] / factor];
|
|
81
|
+
apply();
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
function centre() {
|
|
85
|
+
return [view[0] + view[2] / 2, view[1] + view[3] / 2];
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
function at(clientX, clientY) {
|
|
89
|
+
var s = scale();
|
|
90
|
+
if (!s.box) return centre();
|
|
91
|
+
return [view[0] + (clientX - s.box.left - s.left) / s.factor, view[1] + (clientY - s.box.top - s.top) / s.factor];
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
function press(id, factor) {
|
|
95
|
+
document.getElementById(id).addEventListener('click', function () {
|
|
96
|
+
var c = centre();
|
|
97
|
+
zoom(factor, c[0], c[1]);
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
press('zoom-in', 1.25);
|
|
102
|
+
press('zoom-out', 1 / 1.25);
|
|
103
|
+
document.getElementById('zoom-fit').addEventListener('click', fit);
|
|
104
|
+
|
|
105
|
+
canvas.addEventListener('wheel', function (event) {
|
|
106
|
+
event.preventDefault();
|
|
107
|
+
var p = at(event.clientX, event.clientY);
|
|
108
|
+
var factor = event.ctrlKey ? Math.exp(-event.deltaY * 0.01) : event.deltaY < 0 ? 1.1 : 1 / 1.1;
|
|
109
|
+
zoom(factor, p[0], p[1]);
|
|
110
|
+
}, { passive: false });
|
|
111
|
+
|
|
112
|
+
function spread() {
|
|
113
|
+
var ids = Object.keys(pointers);
|
|
114
|
+
var a = pointers[ids[0]];
|
|
115
|
+
var b = pointers[ids[1]];
|
|
116
|
+
return Math.hypot(a.x - b.x, a.y - b.y);
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
canvas.addEventListener('pointerdown', function (event) {
|
|
120
|
+
pointers[event.pointerId] = { x: event.clientX, y: event.clientY };
|
|
121
|
+
moved = false;
|
|
122
|
+
if (Object.keys(pointers).length === 2) pinch = spread();
|
|
123
|
+
drag = { x: event.clientX, y: event.clientY, view: view.slice() };
|
|
124
|
+
});
|
|
125
|
+
|
|
126
|
+
canvas.addEventListener('pointermove', function (event) {
|
|
127
|
+
if (!pointers[event.pointerId]) return;
|
|
128
|
+
pointers[event.pointerId] = { x: event.clientX, y: event.clientY };
|
|
129
|
+
if (Object.keys(pointers).length === 2) {
|
|
130
|
+
var now = spread();
|
|
131
|
+
if (pinch && now) {
|
|
132
|
+
var ids = Object.keys(pointers);
|
|
133
|
+
var mid = at((pointers[ids[0]].x + pointers[ids[1]].x) / 2, (pointers[ids[0]].y + pointers[ids[1]].y) / 2);
|
|
134
|
+
zoom(now / pinch, mid[0], mid[1]);
|
|
135
|
+
}
|
|
136
|
+
pinch = now;
|
|
137
|
+
moved = true;
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
140
|
+
if (!drag) return;
|
|
141
|
+
var dx = event.clientX - drag.x;
|
|
142
|
+
var dy = event.clientY - drag.y;
|
|
143
|
+
if (!moved && Math.abs(dx) + Math.abs(dy) < 4) return;
|
|
144
|
+
moved = true;
|
|
145
|
+
var factor = scale().factor;
|
|
146
|
+
view = [drag.view[0] - dx / factor, drag.view[1] - dy / factor, view[2], view[3]];
|
|
147
|
+
apply();
|
|
148
|
+
});
|
|
149
|
+
|
|
150
|
+
function release(event) {
|
|
151
|
+
delete pointers[event.pointerId];
|
|
152
|
+
pinch = 0;
|
|
153
|
+
drag = null;
|
|
154
|
+
}
|
|
155
|
+
canvas.addEventListener('pointerup', release);
|
|
156
|
+
canvas.addEventListener('pointercancel', release);
|
|
157
|
+
|
|
158
|
+
canvas.addEventListener('keydown', function (event) {
|
|
159
|
+
var c = centre();
|
|
160
|
+
var step = view[2] / 10;
|
|
161
|
+
if (event.key === '+' || event.key === '=') zoom(1.25, c[0], c[1]);
|
|
162
|
+
else if (event.key === '-') zoom(1 / 1.25, c[0], c[1]);
|
|
163
|
+
else if (event.key === '0') fit();
|
|
164
|
+
else if (event.key === 'ArrowLeft') { view[0] -= step; apply(); }
|
|
165
|
+
else if (event.key === 'ArrowRight') { view[0] += step; apply(); }
|
|
166
|
+
else if (event.key === 'ArrowUp') { view[1] -= step; apply(); }
|
|
167
|
+
else if (event.key === 'ArrowDown') { view[1] += step; apply(); }
|
|
168
|
+
else if (event.key === 'Escape') select(null);
|
|
169
|
+
});
|
|
170
|
+
|
|
171
|
+
function select(node) {
|
|
172
|
+
var previous = svg.querySelector('.penstock-selected');
|
|
173
|
+
if (previous) previous.classList.remove('penstock-selected');
|
|
174
|
+
if (!node) {
|
|
175
|
+
info.hidden = true;
|
|
176
|
+
return;
|
|
177
|
+
}
|
|
178
|
+
node.classList.add('penstock-selected');
|
|
179
|
+
var id = node.getAttribute('data-element-id');
|
|
180
|
+
var entry = Object.prototype.hasOwnProperty.call(docs, id) ? docs[id] : { id: id, type: '', name: '', documentation: '' };
|
|
181
|
+
info.textContent = '';
|
|
182
|
+
var title = document.createElement('h2');
|
|
183
|
+
title.textContent = entry.name || entry.id;
|
|
184
|
+
info.appendChild(title);
|
|
185
|
+
if (entry.type) {
|
|
186
|
+
var kind = document.createElement('p');
|
|
187
|
+
kind.className = 'kind';
|
|
188
|
+
kind.textContent = entry.type;
|
|
189
|
+
info.appendChild(kind);
|
|
190
|
+
}
|
|
191
|
+
var text = document.createElement('p');
|
|
192
|
+
if (entry.documentation) {
|
|
193
|
+
text.textContent = entry.documentation;
|
|
194
|
+
} else {
|
|
195
|
+
text.className = 'none';
|
|
196
|
+
text.textContent = noDocumentation;
|
|
197
|
+
}
|
|
198
|
+
info.appendChild(text);
|
|
199
|
+
var close = document.createElement('button');
|
|
200
|
+
close.type = 'button';
|
|
201
|
+
close.setAttribute('aria-label', closeLabel);
|
|
202
|
+
close.textContent = '\\u00d7';
|
|
203
|
+
close.addEventListener('click', function (event) {
|
|
204
|
+
event.stopPropagation();
|
|
205
|
+
select(null);
|
|
206
|
+
});
|
|
207
|
+
info.appendChild(close);
|
|
208
|
+
info.hidden = false;
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
canvas.addEventListener('click', function (event) {
|
|
212
|
+
if (moved) {
|
|
213
|
+
moved = false;
|
|
214
|
+
return;
|
|
215
|
+
}
|
|
216
|
+
var target = event.target && event.target.closest ? event.target.closest('[data-element-id]') : null;
|
|
217
|
+
select(target);
|
|
218
|
+
});
|
|
219
|
+
|
|
220
|
+
fit();
|
|
221
|
+
})();`}var Rt=`http://www.omg.org/spec/BPMN/20100524/MODEL`,zt=new Set([`definitions`,`process`,`collaboration`,`laneSet`,`message`,`signal`,`error`,`escalation`,`itemDefinition`,`dataStore`,`documentation`]),Bt=`default-src 'none'; img-src data:; style-src 'unsafe-inline'; script-src 'unsafe-inline'; base-uri 'none'; form-action 'none'`,Vt={"zoom-in":`<path d="M3 8h10M8 3v10"/>`,"zoom-out":`<path d="M3 8h10"/>`,"zoom-fit":`<path d="M2 6V2h4M10 2h4v4M14 10v4h-4M6 14H2v-4"/>`};function typeName(e){let t=T(e);return t.charAt(0).toUpperCase()+t.slice(1)}function documentationOf(e){let t=e.children.find(e=>e.local===`documentation`);return t?t.text.trim():``}function elementDocs(e){let t=D(e),n=[],visit=e=>{for(let t of e.children){if(t.ns===Rt&&t.attrs.id&&!zt.has(t.local)){let e=(t.attrs.name??``).replace(/\s+/g,` `).trim(),r=documentationOf(t);(e||r)&&n.push({id:t.attrs.id,type:typeName(t.local),name:e,documentation:r})}t.ns===Rt&&visit(t)}};return visit(t),n}function diagramTitle(e,t){let n=D(e),named=e=>x(n,e).map(e=>(e.attrs.name??``).replace(/\s+/g,` `).trim()).find(Boolean),r=(n.attrs.name??``).trim();return named(`collaboration`)||(x(n,`participant`).length>1?r||t:named(`participant`)??named(`process`)??(r||t))}function prepareSvg(e){let t=e.indexOf(`<svg`);if(t<0)throw Error(u(`app.share.couldNotBeDrawn`));let n=e.slice(t),r=/^<svg[^>]*>/.exec(n);if(!r)throw Error(u(`app.share.couldNotBeDrawn`));let i=r[0];if(!/viewBox="/.test(i)){let e=/\swidth="([\d.]+)/.exec(i)?.[1]??`100`,t=/\sheight="([\d.]+)/.exec(i)?.[1]??`100`;i=i.replace(`<svg`,`<svg viewBox="0 0 ${e} ${t}"`)}return i=i.replace(/\s(width|height|preserveAspectRatio)="[^"]*"/g,``).replace(`<svg`,`<svg preserveAspectRatio="xMidYMid meet" role="img"`),n=i+n.slice(r[0].length),n}function json(e){return JSON.stringify(e).replace(/</g,`\\u003c`).replace(RegExp(`\u2028`,`g`),`\\u2028`).replace(RegExp(`\u2029`,`g`),`\\u2029`)}function table(e,t){return`<table><thead><tr>${e.map(e=>`<th>${m(e)}</th>`).join(``)}</tr></thead><tbody>\n${t.map(e=>`<tr>${e.map(e=>`<td>${m(e)}</td>`).join(``)}</tr>`).join(`
|
|
222
|
+
`)}\n</tbody></table>`}function sectionHtml(e,t){return`<section><h2${t?` class="name"`:``}>${m(e.title)}</h2>${e.description?`<p>${m(e.description)}</p>`:``}${e.note?`<p class="note">${m(e.note)}</p>`:``}${table(e.head,e.rows)}</section>`}function controls(){let button=(e,t)=>`<button type="button" id="${e}" aria-label="${t}" title="${t}"><svg viewBox="0 0 16 16" aria-hidden="true">${Vt[e]}</svg></button>`;return`<div id="controls">${button(`zoom-in`,u(`app.share.zoomIn`))}${button(`zoom-out`,u(`app.share.zoomOut`))}${button(`zoom-fit`,u(`app.share.fitToScreen`))}</div>`}function buildShareHtml(e){let t=m(e.title),n=`<meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><meta http-equiv="Content-Security-Policy" content="${Bt}"><meta name="generator" content="Penstock"><title>${t}</title><style>${It}${e.kind===`bpmn`?Lt:``}</style>`,r=`<footer>${m(u(`app.share.madeWith`))}</footer>`;if(e.kind===`bpmn`){let i=e.subtitle??u(`app.share.clickAnElement`);return`<!doctype html>
|
|
223
|
+
<html lang="${d()}"><head>${n}</head>
|
|
224
|
+
<body>
|
|
225
|
+
<header><h1>${t}</h1><p class="hint">${m(i)}</p></header>
|
|
226
|
+
<main><div id="canvas" tabindex="0">${prepareSvg(e.svg)}</div>${controls()}<aside id="info" role="region" aria-live="polite" aria-label="${m(u(`app.share.elementDocumentation`))}" hidden></aside></main>
|
|
227
|
+
${r}
|
|
228
|
+
<a class="bjs-powered-by" href="https://bpmn.io" target="_blank" rel="noopener" title="Powered by bpmn.io" aria-label="Powered by bpmn.io">${se}</a>
|
|
229
|
+
<script type="application/json" id="docs">${json(e.docs)}<\/script>
|
|
230
|
+
<script>${shareScript()}<\/script>
|
|
231
|
+
</body></html>
|
|
232
|
+
`}let i=e.sections.filter(e=>e.rows.length>0),a=i.length>1;return`<!doctype html>
|
|
233
|
+
<html lang="${d()}"><head>${n}</head>
|
|
234
|
+
<body>
|
|
235
|
+
<header><h1>${t}</h1>${e.subtitle?`<p class="hint">${m(e.subtitle)}</p>`:``}</header>
|
|
236
|
+
<div class="document">${i.map(e=>sectionHtml(e,a)).join(`
|
|
237
|
+
`)}</div>
|
|
238
|
+
${r}
|
|
239
|
+
</body></html>
|
|
240
|
+
`}function shareBpmn(e,t,n){return buildShareHtml({kind:`bpmn`,title:diagramTitle(e,n),svg:t,docs:elementDocs(e)})}async function shareDmn(e,t){let{rootElement:n}=await _(e),r=S(n.drgElement??[]);return buildShareHtml({kind:`sections`,title:n.name?.trim()||t,subtitle:u(`app.toolWindow.section.decisions`),sections:r})}function shareForm(e,t){let n=JSON.parse(e);return buildShareHtml({kind:`sections`,title:t,subtitle:u(`app.sections.form`),sections:[b(C(n.components??[],[]))]})}function shareFileName(e,t){return`${((e??``).split(/[\\/]/).pop()??``).replace(/\.(bpmn(\.xml|20\.xml)?|dmn|form)$/i,``)||t}.html`}var Ht=typeof navigator<`u`&&/Mac|iPhone|iPad/.test(navigator.platform);function useSidebarToggle(e){let t=i(null),r=X(),a=n(()=>{let n=Date.now();Ee(t.current,n)||(t.current=n,e())},[e]);return l(()=>{if(!r)return;let onKey=e=>{qe(e,Ht)&&(e.preventDefault(),a())};return window.addEventListener(`keydown`,onKey),()=>window.removeEventListener(`keydown`,onKey)},[a,r]),a}function UnreadableDiagramView({problem:e,kind:t=`diagram`,onOpenText:n,onReload:r}){return s(`main`,{class:`unreadable-diagram`,role:`alert`,children:[s(`h1`,{class:`unreadable-diagram__title`,children:u(`app.unreadable.title.${t}`)}),s(`p`,{class:`unreadable-diagram__reason`,children:v(e)}),s(`p`,{class:`unreadable-diagram__note`,children:u(`app.unreadable.note.${t}`)}),s(`div`,{class:`unreadable-diagram__actions`,children:[s(`button`,{type:`button`,class:`ui-button ui-button--primary`,onClick:n,children:u(`app.unreadable.open.${t}`)}),s(`button`,{type:`button`,class:`ui-button`,onClick:r,children:u(`app.common.reload`)})]})]})}function bindSaveQueue({save:e,onFailure:t}){let n=null,r=!1,flush=()=>{if(r||n===null)return;let i=n;n=null,r=!0;let a;try{a=e(i)}catch(e){a=Promise.reject(e)}Promise.resolve(a).catch(e=>{try{t?.(e)}catch{}}).finally(()=>{r=!1,flush()})};return{edited:e=>{n=e,flush()},reloaded:e=>{r&&(n=e,flush())}}}function toolbarLayout(e,t={}){let n=Array.isArray(e)?e.filter(Boolean):[],inSlot=e=>n.filter(t=>t?.slot===e),r=inSlot(`view`),i=inSlot(`lead`),a=inSlot(`start`),o=inSlot(`end`);return t?.overflow===`right`?[...r,...i,...a,{type:`spacer`},{type:`overflow`},...o]:[...i,...i.length>0?[{type:`separator`}]:[],...r,...a,{type:`overflow`},{type:`spacer`},...o]}async function drawLight(e){if(typeof document>`u`||!document.body)return``;let t=document.createElement(`div`);t.style.cssText=`position:fixed;left:-10000px;top:0;width:1200px;height:800px`,document.body.appendChild(t);let n=new ce({container:t,textRenderer:B,bpmnRenderer:z.light});try{return await n.importXML(e),(await n.saveSVG().catch(()=>({svg:``})))?.svg??``}catch{return``}finally{try{n.destroy()}catch{}t.remove()}}async function pageOf(e,t,n){let r=shareFileName(n,`diagram`).replace(/\.html$/,``);return e===`bpmn`?shareBpmn(t,await drawLight(t),r):e===`dmn`?shareDmn(t,r):shareForm(t,r)}async function shareToFile(e,t,n){try{let r=E(),i=await pageOf(e,t,n),a=await r.chooseFile(`html`,{title:u(`app.share.shareAsHtml`),description:u(`app.share.oneFileThatOpensOffline`),mode:`save`,defaultFileName:shareFileName(n,`diagram`)});if(!a)return;await r.saveFile(a,i),j.success(u(`app.share.savedItOpensOfflineIn`,{target:a}))}catch(e){try{j.error(u(`app.share.couldNotShareThisDiagram`,{failure:e instanceof Error?e.message:String(e)}))}catch{}}}function revealers(e){let t=e.registerRevealer;return t?t.bind(e):void 0}function documentBridge(e,t){let n=Object.create(e);return Object.assign(n,{getBpmnFilePath:()=>t.path,getBpmnXml:()=>t.initialText,saveBpmnXml:async e=>t.edit(e),onDocumentChanged:e=>t.onReload(e),onRevealElement:n=>revealers(e)?.(t.path,n)??(()=>{}),openScriptFile:(n,r,i,a,o,s=t.path)=>e.openScriptFile(n,r,i,a,o,s)}),n}export{resolveActions as _,UnreadableDiagramView as a,problemTally as c,hostIsMac as d,SeverityIcon as f,NavRow as g,useSidebar as h,bindSaveQueue as i,deployState as l,createPanelHost as m,shareToFile as n,useSidebarToggle as o,PanelHost as p,toolbarLayout as r,EditorShell as s,documentBridge as t,useDeploy as u};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"./rolldown-runtime-B8BYMn-z.js";import{i as e}from"./translator-Dt_jCGPm.js";import{a as t,c as n,n as r,r as i,s as a,t as o,u as s}from"./files-Chpd_QD0.js";var c=3e4,l=3e4,u=30,d=6e4;function isDirty(e){return!!e&&e.phase===`ready`&&e.current!==e.baseline}function messageOf(t){return t instanceof Error&&t.message?t.message:typeof t==`string`&&t?t:e(`app.web.unknownFailure`)}function timed(e,t,n){return new Promise((r,i)=>{let a=setTimeout(()=>i(Error(n)),t);e.then(e=>{clearTimeout(a),r(e)},e=>{clearTimeout(a),i(e)})})}function denied(e){return e?.response?.status===401}function missing(e){return e?.response?.status===404||/\b404\b|not found|no such file|does not exist/i.test(messageOf(e))}function refusedAsChanged(e){return e?.response?.status===409}var DocumentStore=class{host;notify;readTimeout;writeTimeout;listeners=new Set;reloads=new Map;writers=new Map;opening=new Map;drafts;secondMs;timers=new Map;attempts=new Map;autosaveSeconds=null;state={docs:new Map,order:[],active:null,listing:o,connection:`ok`,listed:!1,recent:[]};polling=null;constructor(e){this.host=e.host,this.notify=e.notify??(()=>void 0),this.readTimeout=e.readTimeoutMs??c,this.writeTimeout=e.writeTimeoutMs??l,this.drafts=e.drafts??null,this.secondMs=e.secondMs??1e3}snapshot(){return this.state}subscribe(e){return this.listeners.add(e),()=>this.listeners.delete(e)}subscribeReload(e,t){let n=this.reloads.get(e);return n||(n=new Set,this.reloads.set(e,n)),n.add(t),()=>{n.delete(t),n.size===0&&this.reloads.delete(e)}}doc(e){return this.state.docs.get(e)}readOnly(t){return timed(this.host.read(t),this.readTimeout,e(`app.web.serverTimeout`))}dirtyPaths(){return this.state.order.filter(e=>isDirty(this.state.docs.get(e)))}commit(e){this.state={...this.state,...e},[...this.listeners].forEach(e=>{try{e()}catch(e){console.error(`A store listener failed:`,e)}})}patch(e,t){let n=this.state.docs.get(e);if(!n)return;let r={...n,...t},i=new Map(this.state.docs);return i.set(e,r),this.commit({docs:i}),r}async refresh(){if(this.polling)return this.polling;let t=(async()=>{let t;try{t=n(await timed(this.host.list(),this.readTimeout,e(`app.web.serverTimeout`)))}catch(e){let t=denied(e)?`denied`:`lost`;this.state.connection!==t&&this.commit({connection:t}),console.warn(`The project could not be listed:`,e);return}let r=this.state.connection===`lost`,i=t.signature!==this.state.listing.signature||!this.state.listed;(i||r)&&this.commit({listing:t,listed:!0,connection:`ok`}),(i||r)&&await this.reconcile(t)})();return this.polling=t.finally(()=>{this.polling=null}),this.polling}async reconcile(n){let r=new Map(n.files.map(e=>[e.path,e]));for(let n of[...this.state.order]){let a=this.state.docs.get(n);if(!a||a.phase!==`ready`||t(a.kind))continue;let o=r.get(i(n));o?(a.disk===`deleted`&&this.patch(n,{disk:`in-sync`,stamp:null}),this.state.docs.get(n).stamp!==o.stamp&&await this.compareWithDisk(n,o.stamp)):a.disk!==`deleted`&&(this.patch(n,{disk:`deleted`,diskText:null}),this.notify(e(`app.web.deletedOnDisk`,{name:a.name}),!0))}}async compareWithDisk(t,n){let r;try{r=await timed(this.host.read(t),this.readTimeout,e(`app.web.serverTimeout`))}catch(e){missing(e)&&this.patch(t,{disk:`deleted`,diskText:null});return}let i=this.state.docs.get(t);i&&i.phase===`ready`&&(r===i.onDisk||r===i.baseline?this.patch(t,{stamp:n,disk:`in-sync`,diskText:null}):r===i.current?(this.patch(t,{stamp:n,baseline:r,onDisk:r,disk:`in-sync`,diskText:null}),this.syncDraft(t)):isDirty(i)||this.writers.get(t)?.running?(this.patch(t,{stamp:n,disk:`changed`,diskText:r}),this.notify(e(`app.web.changedOnDisk`,{name:i.name}),!0)):(this.adopt(t,r,n),this.notify(e(`app.web.reloadedFromDisk`,{name:i.name}))))}adopt(e,t,n){this.patch(e,{baseline:t,onDisk:t,current:t,stamp:n,disk:`in-sync`,diskText:null,saveError:null,revision:(this.state.docs.get(e)?.revision??0)+1}),this.syncDraft(e),this.reloads.get(e)?.forEach(e=>{try{e(t)}catch(e){console.error(`A document listener failed:`,e)}})}reloadFromDisk(e){let t=this.state.docs.get(e);if(!t||t.diskText===null)return;let n=this.entryOf(e);this.adopt(e,t.diskText,n?.stamp??t.stamp)}keepMine(e){let t=this.state.docs.get(e);if(!t)return;let n=this.state.listing.files.find(t=>t.path===e);this.patch(e,{disk:`in-sync`,baseline:t.diskText??t.baseline,onDisk:t.diskText??t.onDisk,diskText:null,stamp:n?.stamp??t.stamp}),this.syncDraft(e),this.scheduleAutosave(e)}async reload(t){try{let n=await timed(this.host.read(t),this.readTimeout,e(`app.web.serverTimeout`)),r=this.entryOf(t);return this.adopt(t,n,r?.stamp??null),!0}catch(n){return this.notify(e(`app.web.reloadFailed`,{name:r(t),reason:messageOf(n)}),!0),!1}}entryOf(e){let t=i(e);return this.state.listing.files.find(e=>e.path===t)}open(e,t,n){let o=this.state.docs.get(e);if(o)return this.activate(e),o.phase===`failed`?this.load(e):Promise.resolve();let c=t??a(e)??`template`,l=this.entryOf(e),u={path:e,rel:l?.rel??s(this.state.listing.root,i(e)),name:n??r(i(e)),kind:c,phase:`loading`,loadError:null,baseline:``,onDisk:``,current:``,stamp:l?.stamp??null,saving:!1,saveError:null,disk:`in-sync`,diskText:null,revision:0},d=new Map(this.state.docs);return d.set(e,u),this.commit({docs:d,order:[...this.state.order,e],active:e,recent:this.remembered(e)}),this.load(e)}load(t){let n=this.opening.get(t);if(n)return n;this.patch(t,{phase:`loading`,loadError:null});let r=(async()=>{try{let n=await timed(this.host.read(t),this.readTimeout,e(`app.web.serverTimeout`));if(!this.state.docs.has(t))return;let r=this.entryOf(t);this.patch(t,{phase:`ready`,baseline:n,onDisk:n,current:n,stamp:r?.stamp??this.state.docs.get(t)?.stamp??null,loadError:null})}catch(n){if(!this.state.docs.has(t))return;let r=missing(n)?e(`app.web.fileNotFound`):messageOf(n);this.patch(t,{phase:`failed`,loadError:r})}})().finally(()=>{this.opening.delete(t)});return this.opening.set(t,r),r}remembered(e){let t=this.state.docs.get(e)?.rel??this.state.listing.files.find(t=>t.path===e)?.rel??s(this.state.listing.root,e);return[t,...this.state.recent.filter(e=>e!==t)].slice(0,u)}activate(e){this.state.active!==e&&this.state.docs.has(e)&&this.commit({active:e,recent:this.remembered(e)})}setRecent(e){this.commit({recent:e.slice(0,u)})}move(e,t){let n=this.state.order.indexOf(e);if(n<0)return;let r=Math.max(0,Math.min(t,this.state.order.length-1));if(r===n)return;let i=[...this.state.order];i.splice(n,1),i.splice(r,0,e),this.commit({order:i})}close(e){if(!this.state.docs.has(e))return;let t=new Map(this.state.docs);t.delete(e);let n=this.state.order.indexOf(e),r=this.state.order.filter(t=>t!==e),i=this.state.active;i===e&&(i=r[Math.min(n,r.length-1)]??null),this.reloads.delete(e),this.writers.delete(e),this.opening.delete(e),this.forgetTimers(e),this.drafts?.drop(this.state.listing.root,e),this.commit({docs:t,order:r,active:i})}edit(e,t){let n=this.state.docs.get(e);n&&n.phase===`ready`&&n.current!==t&&(this.patch(e,{current:t,saveError:null}),this.syncDraft(e),this.scheduleAutosave(e))}syncDraft(e){let t=this.state.docs.get(e);if(!this.drafts||!t||t.phase!==`ready`)return;let n=this.state.listing.root;isDirty(t)?this.drafts.keep(n,{path:e,rel:t.rel,text:t.current,baseline:t.onDisk,stamp:t.stamp}):this.drafts.drop(n,e)}applyDraft(e,t){let n=this.state.docs.get(e);if(!n||n.phase!==`ready`||n.current===t.text)return!1;let r=n.onDisk!==t.baseline;return this.patch(e,{current:t.text,saveError:null,disk:r?`changed`:n.disk,diskText:r?n.onDisk:n.diskText,revision:n.revision+1}),this.reloads.get(e)?.forEach(e=>{try{e(t.text)}catch(e){console.error(`A document listener failed:`,e)}}),this.syncDraft(e),!0}adoptMissing(e,t,n){if(this.state.docs.has(e))return;let i={path:e,rel:s(this.state.listing.root,e),name:r(e),kind:t,phase:`ready`,loadError:null,baseline:n.baseline,onDisk:n.baseline,current:n.text,stamp:null,saving:!1,saveError:null,disk:`deleted`,diskText:null,revision:0},a=new Map(this.state.docs);a.set(e,i),this.commit({docs:a,order:[...this.state.order,e],active:e,recent:this.remembered(e)}),this.syncDraft(e)}setAutosave(e){this.autosaveSeconds=e!==null&&e>0?e:null;for(let e of[...this.timers.keys()])this.forgetTimers(e);if(this.autosaveSeconds!==null)for(let e of this.dirtyPaths())this.scheduleAutosave(e)}forgetTimers(e){let t=this.timers.get(e);t&&clearTimeout(t),this.timers.delete(e),this.attempts.delete(e)}scheduleAutosave(e,t){let n=this.timers.get(e);if(n&&clearTimeout(n),this.timers.delete(e),this.autosaveSeconds===null||!isDirty(this.state.docs.get(e)))return;let r=t??this.autosaveSeconds*this.secondMs,i=setTimeout(()=>{this.timers.delete(e),this.autosave(e)},r);this.timers.set(e,i)}async autosave(e){let t=this.state.docs.get(e);if(this.autosaveSeconds===null||!t||t.phase!==`ready`||!isDirty(t)||t.disk!==`in-sync`)return;let n=this.state.connection!==`ok`||!await this.save(e),r=this.state.docs.get(e);if(!r||!isDirty(r))this.attempts.delete(e);else if(r.disk===`in-sync`){if(n||r.saveError){let t=(this.attempts.get(e)??0)+1;this.attempts.set(e,t),this.scheduleAutosave(e,Math.min(this.autosaveSeconds*this.secondMs*2**Math.min(t,6),d))}else this.scheduleAutosave(e)}}save(e){let t=this.state.docs.get(e);if(!t||t.phase!==`ready`)return Promise.resolve(!1);let n=this.writers.get(e);if(n||(n={running:null,again:!1},this.writers.set(e,n)),n.running)return n.again=!0,n.running.then(()=>!isDirty(this.state.docs.get(e)));let r=n;return r.running=this.drain(e,r).finally(()=>{r.running=null}),r.running.then(()=>this.state.docs.has(e)&&!isDirty(this.state.docs.get(e)))}async drain(t,n){do{n.again=!1;let r=this.state.docs.get(t);if(!r||r.phase!==`ready`||r.current===r.baseline&&r.disk!==`deleted`||r.disk===`changed`||r.disk===`in-sync`&&!await this.unchangedOnDisk(t))return;let i=this.state.docs.get(t);if(!i||i.phase!==`ready`)return;let a=i.current;if(a===i.baseline&&i.disk!==`deleted`)return;this.patch(t,{saving:!0,saveError:null});let o;try{o=await timed(this.host.write(t,a,i.kind,i.disk===`deleted`?null:i.stamp),this.writeTimeout,e(`app.web.serverTimeout`))}catch(n){if(refusedAsChanged(n)){await this.refused(t);return}let i=messageOf(n);this.patch(t,{saving:!1,saveError:i}),this.notify(e(`app.web.saveFailed`,{name:r.name,reason:i}),!0);return}if(!this.state.docs.has(t))return;this.patch(t,{saving:!1,baseline:a,onDisk:o.stored,saveError:null,disk:`in-sync`,diskText:null,stamp:o.stamp}),this.syncDraft(t)}while(n.again);this.refresh()}async refused(e){this.patch(e,{saving:!1,disk:`changed`}),await this.refresh()}async unchangedOnDisk(e){await this.refresh();let t=this.state.docs.get(e);return!!t&&t.phase===`ready`&&t.disk!==`changed`}async saveAll(){return(await Promise.all(this.dirtyPaths().map(e=>this.save(e)))).every(Boolean)}async create(e,t){let n=this.state.listing.root;return await this.host.create(n,[{path:e,content:t}]),await this.refresh(),this.state.listing.files.find(t=>t.rel===e)?.path??``}};export{isDirty as n,DocumentStore as t};
|