From 92c237f83d5dad4cbc54240e410c24de2248bd3b Mon Sep 17 00:00:00 2001 From: Gogs Date: Mon, 8 Jun 2026 23:26:12 +0200 Subject: [PATCH] Initial Commit --- appinfo/info.xml | 15 + appinfo/routes.php | 21 + css/viewer.css | 60 + img/github-mark-white.svg | 5 + img/kicanvas.png | Bin 0 -> 310098 bytes js/kicanvas/kicanvas.js | 1991 +++++++++++++++ js/viewerhandler.js | 2 + js/viewerhandler.js.LICENSE.txt | 4 + lib/AppInfo/Application.php | 28 + lib/AppInfo/LoadAdditionalScriptsListener.php | 18 + lib/Controller/ViewerController.php | 97 + package-lock.json | 2125 +++++++++++++++++ package.json | 13 + src/viewerhandler.js | 127 + templates/viewer.php | 22 + webpack.config.js | 17 + 16 files changed, 4545 insertions(+) create mode 100644 appinfo/info.xml create mode 100644 appinfo/routes.php create mode 100644 css/viewer.css create mode 100644 img/github-mark-white.svg create mode 100644 img/kicanvas.png create mode 100644 js/kicanvas/kicanvas.js create mode 100644 js/viewerhandler.js create mode 100644 js/viewerhandler.js.LICENSE.txt create mode 100644 lib/AppInfo/Application.php create mode 100644 lib/AppInfo/LoadAdditionalScriptsListener.php create mode 100644 lib/Controller/ViewerController.php create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 src/viewerhandler.js create mode 100644 templates/viewer.php create mode 100644 webpack.config.js diff --git a/appinfo/info.xml b/appinfo/info.xml new file mode 100644 index 0000000..afc52da --- /dev/null +++ b/appinfo/info.xml @@ -0,0 +1,15 @@ + + + kicanvasviewer + KiCanvas Viewer + View KiCad files with KiCanvas + Opens KiCad schematic and PCB files using KiCanvas. + 0.1.0 + agpl + Herwig Birke + KiCanvasViewer + files + + + + diff --git a/appinfo/routes.php b/appinfo/routes.php new file mode 100644 index 0000000..59f455d --- /dev/null +++ b/appinfo/routes.php @@ -0,0 +1,21 @@ + [ + [ + 'name' => 'viewer#view', + 'url' => '/view/{fileId}', + 'verb' => 'GET', + ], + [ + 'name' => 'viewer#file', + 'url' => '/file/{fileId}/{name}', + 'verb' => 'GET', + ], + [ + 'name' => 'viewer#resolve', + 'url' => '/resolve/{etag}', + 'verb' => 'GET', + ], + ], +]; diff --git a/css/viewer.css b/css/viewer.css new file mode 100644 index 0000000..3f9fb0b --- /dev/null +++ b/css/viewer.css @@ -0,0 +1,60 @@ +@import url("https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@48,400,0,0"); +@import url("https://fonts.googleapis.com/css2?family=Nunito:wght@300;400;500;600;700&display=swap"); + +*, +*::before, +*::after { + box-sizing: border-box; +} + +* { + margin: 0; +} + +html, +body { + height: 100vh; + font-family: + "Nunito", ui-rounded, "Hiragino Maru Gothic ProN", Quicksand, Comfortaa, + Manjari, "Arial Rounded MT Bold", Calibri, source-sans-pro, sans-serif; + line-height: 1.5; + width: 100%; + margin: 0 auto; +} + +img, +picture, +video, +canvas, +svg { + display: block; + max-width: 100%; +} + +main { + max-width: 1024px; + margin: 1rem auto; +} + +p { + margin-bottom: 1rem; + margin-top: 1rem; +} + +/* Styles for KiCanvas */ + +kicanvas-embed { + display: block; + width: 100%; + max-height: 100%; + aspect-ratio: 1.414; + background-color: aqua; + margin-bottom: 1rem; + margin-top: 1rem; +} + +kc-kicanvas-shell { + width: 100%; + height: 100vh; + overflow: hidden; +} diff --git a/img/github-mark-white.svg b/img/github-mark-white.svg new file mode 100644 index 0000000..28e741b --- /dev/null +++ b/img/github-mark-white.svg @@ -0,0 +1,5 @@ + + + diff --git a/img/kicanvas.png b/img/kicanvas.png new file mode 100644 index 0000000000000000000000000000000000000000..73012f2a79051bed9046537b6eded650aa804e11 GIT binary patch literal 310098 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

>SHoov!u^(Q3LQv!< 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 z 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%0A*n z4=HFV3*Xbl=d8&BcRX;4gH;!x^~%p#* zs;FhcP5lk#FMN>7#Upr<8K2#6xZh!N0v1*;ZPyt-i~^;#8Vd5!dSB;!;^ z4q3@K$=>UGz23ju=l5r~R60-3>v}xybG1gtZ&>%kuI`1C)pt0VE!_i_Ufomm@rCv% z70>s-zFJ{;x0eN1hIG;ozSoQv6^@==O(Ut2NA~`<|0G_~HiqBJJ;S68&wC}qgmx)r zmtCm)WICI>xp}!xt^zOXK@=!lNG{59>3<`122aUk$sV_KpF*uz`!rw?Wv$^~iWzBz z;lxj8u0>%H;-(wwbrDw#Nj4iT{9oVjays3=hoN!SVq!x%DxI-`Urgg-9Fdis@qO%_ z5hVL{Fun<2makx%nST6dA#x>8Fls@KN_V3{&XJ^}d9bvp^`Lq3v*bsV_c);oxcQ{e zXF~zADS2^4#3D-BqaiCRmVgA4kHiifeyL>-Z43>oYo=x^lfpp|*>L&RmsshblQ}Lm z8V*R`gCyN(q-O7Hr^rf44!-e!h=0JL4` z2c8&Ha^UMGQ?ya3hOeQA$56M%6{=NIKM@Tc6#J*0^Txyt6ZUhOA;3tsbhSyd;*n4j zkXva%;nDcc4GBnHww0XUFwgr&i#p3Sd($J=>+w(XUL!RsAns8 zhIj9qrXqhryI3cmoIk)<;9^^S+Q}tb7Vt~qieKMoag}Prh_z;h<6nC6$`~vgz1d>7 zn^)-%oGke}!|yJo5u(nGK}BNkW7IP~!E$rQ(oq!s=GIqAjm0 zPe#8FEb(N=-?$hd_>*H+q*-I2`!W3|eK=1*S8=s}vO{W+9NGB0DnyM#aXD=$A~eqD zCx{V+iw7Jlv#uTAMUpq|Pp31F;fCbhqt9KjIOK@x%dp6&m52aX5|X_4k*>?aatXwI zwn-y!1z2Qbs!Cf+n%x6>?P1lm{Yas8_S1@-{cnA0*><~{{~s^vJYls#GiMvgI@h2} zJ%8DGt{qtpo>1=TpiKHRv&F^JXD=E%S#S$PZ~%~4s(48ggRRs2Pv$#9 zI6rJ{D;fq2y1{Re_I^a*VkPsghSD9RmhJ$ek$3>s=9nNuzFiRG2<9@=lxAhRQGxhq zM55~6{P*`qPa^l{Yp#bLC!S3DG<3efBEVq&;X?ZdM>q17LdvIi-*&@)>v3S`JO#CK7nH_w60kl{4Ol3wAl?!f3*mO1NP4lB> z-jkr;T%1RCwT-2z7|`w+EV!E)e{GYD$~!>70`I1VS_9=`lUg?H<0sy=@V8d{&J3G! zlDDk>q~z5L-X*|DPwHW^fk&v%fz1^@4{hLGbr1|*EX@@a*wQro(Ro#^>`?(FTz5|7uClz2f<7zPsHK?Ov4>AeLNzN;SaEbcE$Sj3BEZ;*VReLYmU%p1c2~dLs)& zXWYh&iOjE&PwwuxOuut_1itp$`&xOXxAzn) zXlaT`7I0N0xt1(^CZ+_K0Qxp3(vQc5Pv;&XY5p7ah|t)shzJ$VnXBN&tCO>PbGs3L zl`8NyKoNW-)lY$?o{_c^?eK^IeRlm%K1@>OA?NeZ5aO_(_eTMK>#S=QpgaL8p zA2>`-NJzz3TD)L;aiN^=(}>*obf^wyv?PEh9_!*MGvlpO{m~oBgM)Ss7gxL*k@pG7 za{M{^%7XWNt{WHB{%qiK6GW_JQQ7{2$!|o^17q3gJQP@`z*iFU|)q z9;KX2zXAT-4lHlhgxpOH?RGlyFO@9*DUE_8)+@=Uh^JX56kQ}eHmd&@ zAmcMpC|OAm6KuqLxmc!)Ldcy2BoK3ct}{F5!($Apg4fnYF5z%0`L_!DsensSZs2zr z@T~y!6Ab0qlO4Oh=YdIH-A@QT~jd`Iq1rFgHfsl30HFb+z>LW5utfgmrAW zIODi;MBKm7_OpLitLevgpeK7zb^?&;uAU%{-5PBZoaW;>4A^PIDYb9zajSXV6VRmBc4IE>zzq(=>T^N zbYM+89XbF6(C29T2K+OzASE9W^-4ixz#rFijri@Nm&iwcg;6)&A%0D0{wGu< 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

{*kPdKxxZBkir7&2R=wRql(Qr6mk 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 literal 0 HcmV?d00001 diff --git a/js/kicanvas/kicanvas.js b/js/kicanvas/kicanvas.js new file mode 100644 index 0000000..69bea70 --- /dev/null +++ b/js/kicanvas/kicanvas.js @@ -0,0 +1,1991 @@ +var Ks=Object.defineProperty;var vn=Object.getOwnPropertyDescriptor;var c=(s,e)=>Ks(s,"name",{value:e,configurable:!0});var P=(s,e,t,r)=>{for(var i=r>1?void 0:r?vn(e,t):e,n=s.length-1,o;n>=0;n--)(o=s[n])&&(i=(r?o(e,t,i):o(i))||i);return r&&i&&Ks(e,t,i),i};function Re(s){window.setTimeout(()=>{s()},0)}c(Re,"later");var Ve=class{static{c(this,"DeferredPromise")}#e;#t;#r;#i;#s;constructor(){this.#e=new Promise((e,t)=>{this.#t=e,this.#r=t})}get rejected(){return this.#i===1}get resolved(){return this.#i===0}get settled(){return!!this.#i}get value(){return this.#s}then(e,t){return this.#e.then(e,t)}resolve(e){this.#i=0,this.#s=e,this.#t(e)}reject(e){this.#i=1,this.#s=e,this.#r(e)}},Pe=class extends Ve{static{c(this,"Barrier")}get isOpen(){return this.resolved&&this.value===!0}open(){this.resolve(!0)}};function pt(s){return s instanceof URL&&(s=s.pathname),s.split("/").slice(0,-1).join("/")}c(pt,"dirname");function we(s){return s instanceof URL&&(s=s.pathname),s.split("/").at(-1)}c(we,"basename");function s3(s){let e=s.split(".");return e.length<=1?"":e.at(-1)}c(s3,"extension");function We(...s){return s.flatMap(e=>e.split("/")).filter(e=>e!=="").join("/")}c(We,"normalize_join");function ve(s,e){if(s===e)return"";let t=We(s),r=t.length>0?t+"/":"";return e.startsWith(r)?e.slice(r.length):e}c(ve,"based_on");function Hs(s){let e,t;s instanceof File?(e=URL.createObjectURL(s),t=s.name):(e=s.href,t=we(e));let r=document.createElement("a");r.href=e,r.download=t,r.target="_blank",console.log(r),r.click(),s instanceof File&&URL.revokeObjectURL(e)}c(Hs,"initiate_download");var Qe=class s{static{c(this,"FileSystemBase")}constructor(e=new Map){this.entries=e}*list(){for(let[e,t]of this.entries)t.type==="file"&&(yield e)}async setup(){await this.walk("")}async get(e){if(!await this.has(e))throw new Error(`File ${e} not found`);return await this.load_file(e)}async has(e){let t=pt(e);if(!this.entries.has(t)&&!this.entries.has(e))return!1;await this.walk(t);let r=this.entries.get(e);return!!r&&r.type==="file"}async download(e){Hs(await this.get(e))}static is_kicad_file(e){return["kicad_pcb","kicad_pro","kicad_sch"].includes(s3(e))}async walk(e){if(this.entries.get(e)?.type==="visited-directory")return;let t=await this.enumerate(e);this.entries.set(e,{path:e,type:"visited-directory"});for(let r of t)r.type==="file"&&!s.is_kicad_file(r.path)||this.entries.set(r.path,r)}},n3=class{static{c(this,"MergedFileSystem")}constructor(e){this.fs_list=e.filter(t=>t!==null)}*list(){for(let e of this.fs_list)yield*e.list()}async setup(){for(let e of this.fs_list)await e.setup()}async has(e){for(let t of this.fs_list)if(await t.has(e))return!0;return!1}async get(e){for(let t of this.fs_list)if(await t.has(e))return await t.get(e);throw new Error(`File ${e} not found`)}async download(e){for(let t of this.fs_list)if(await t.has(e))return await t.download(e);throw new Error(`File ${e} not found`)}},o3=class s extends Qe{constructor(t){super(s.into_entries(t));this.file_list=t}static{c(this,"LocalFileSystemBase")}async load_file(t){let r=this.file_list.get(t);if(!r)throw new Error(`File ${t} not found!`);return r}async enumerate(t){return[]}static into_entries(t){let r=new Map;for(let i of t.keys())r.set(i,{path:i,type:"file"});return r}},ut=class extends Qe{constructor(t,r=null){super();this.urls=new Map;this.resolver=r??this.#e;for(let i of t)this.#t(i)}static{c(this,"FetchFileSystem")}#e(t){return new URL(t,window.location.toString())}#t(t){if(typeof t=="string"){let r=this.urls.get(t);if(r)return r;{let i=this.resolver(t),n=we(i);return this.urls.set(n,i),i}}return t}async load_file(t){let r=this.#t(t);if(!r)throw new Error(`File ${t} not found!`);let i=new Request(r,{method:"GET"}),n=await fetch(i);if(!n.ok)throw new Error(`Unable to load ${r}: ${n.status} ${n.statusText}`);let o=await n.blob();return new File([o],t)}async enumerate(t){return Array.from(this.urls.keys()).map(r=>({path:r,type:"file"}))}},a3=class s extends o3{static{c(this,"DragAndDropFileSystem")}static async fromDataTransfer(e){let t=[];for(let l=0;l[ve(n,l),p]));return new s(o)}static lcp(e){if(e.length===0)return"";let t=e.map(n=>n.split("/").filter(Boolean).slice(0,-1)),r=t[0],i=r.length;for(let n of t.slice(1)){let o=0;for(;o{e.file(t,r)})}static async walk(e){let t=[];for(;e.length>0;){let r=e.pop();if(r.isFile)t.push(r);else if(r.isDirectory){let i=r.createReader();await new Promise((n,o)=>{i.readEntries(l=>{for(let p of l)p.isFile?t.push(p):p.isDirectory&&e.push(p);n(!0)},o)})}}return t}},ht=class extends o3{static{c(this,"LocalFileSystem")}constructor(e){super(new Map(e.map(t=>[t.name,t])))}};var l3=class{static{c(this,"DropTarget")}constructor(e,t){e.addEventListener("dragenter",r=>{r.preventDefault()},!1),e.addEventListener("dragover",r=>{r.dataTransfer&&(r.preventDefault(),r.dataTransfer.dropEffect="move")},!1),e.addEventListener("drop",async r=>{r.stopPropagation(),r.preventDefault();let i=r.dataTransfer;if(!i)return;let n=await a3.fromDataTransfer(i);t(n)},!1)}};var c3=class s{static{c(this,"FilePicker")}static async pick(e){let t=await s.open_picker();t.length>0&&await e(new ht(t))}static open_picker(){return new Promise(e=>{let t=document.createElement("input");t.type="file",t.style.display="none",t.multiple=!0,t.accept=".kicad_pcb,.kicad_pro,.kicad_sch",t.onchange=r=>{let i=r.target.files;i&&i.length>0?e(Array.from(i)):e([])},t.oncancel=()=>{e([])},t.click()})}};var R3=class s extends Event{constructor(t,r){super(s.type,{bubbles:!0,cancelable:!0,composed:!0});this.context_name=t;this._callback=r}static{c(this,"ContextRequestEvent")}static{this.type="context-request"}callback(t){this.stopPropagation(),this._callback(t)}};async function Gs(s,e){return new Promise(t=>{s.dispatchEvent(new R3(e,r=>{t(r)}))})}c(Gs,"requestContext");function Es(s,e,t){s.addEventListener(R3.type,r=>{let i=r;i.context_name==e&&i.callback(t)})}c(Es,"provideContext");async function Qn(s,e){return(await Gs(s,e))()}c(Qn,"requestLazyContext");async function Yn(s,e,t){Es(s,e,t)}c(Yn,"provideLazyContext");function Js(s){return class extends s{static{c(this,"WithContext")}constructor(...t){super(...t)}async requestContext(t){return await Gs(this,t)}provideContext(t,r){Es(this,t,r)}async requestLazyContext(t){return await Qn(this,t)}provideLazyContext(t,r){Yn(this,t,r)}}}c(Js,"WithContext");function br(s){return s===null||typeof s!="object"&&typeof s!="function"}c(br,"is_primitive");function E(s){return typeof s=="string"}c(E,"is_string");function le(s){return typeof s=="number"&&!isNaN(s)}c(le,"is_number");function t2(s){return Array.isArray(s)||typeof s?.[Symbol.iterator]=="function"}c(t2,"is_iterable");function r2(s){return Array.isArray(s)}c(r2,"is_array");function ks(s){return typeof s=="object"&&s!==null&&!Array.isArray(s)&&!(s instanceof RegExp)&&!(s instanceof Date)}c(ks,"is_object");var Is=new Map,Ze=class{constructor(e){this.css_string=e}static{c(this,"CSS")}get stylesheet(){let e=Is.get(this.css_string);return e==null&&(e=new CSSStyleSheet,e.replaceSync(this.css_string),Is.set(this.css_string,e)),e}};function y(s,...e){let t="";for(let r=0;rt instanceof CSSStyleSheet?t:t.stylesheet))}c(As,"adopt_styles");function p3(s){return r2(s)?s:[s]}c(p3,"as_array");function Cs(s){return r2(s)?s:t2(s)?Array.from(s):[s]}c(Cs,"iterable_as_array");var Kn=new Intl.Collator(void 0,{numeric:!0});function pe(s,e){return s.slice().sort((t,r)=>Kn.compare(e(t),e(r)))}c(pe,"sorted_by_numeric_strings");var dt=class{constructor(){this._disposables=new Set;this._is_disposed=!1}static{c(this,"Disposables")}add(e){if(this._is_disposed)throw new Error("Tried to add item to a DisposableStack that's already been disposed");return this._disposables.add(e),e}disposeAndRemove(e){e&&(e.dispose(),this._disposables.delete(e))}get isDisposed(){return this._is_disposed}dispose(){if(this._is_disposed){console.trace("dispose() called on an already disposed resource");return}for(let e of this._disposables.values())e.dispose();this._disposables.clear(),this._is_disposed=!0}};function Hn(s){return typeof HTMLElement=="object"&&s instanceof HTMLElement}c(Hn,"is_HTMLElement");function f(s,...e){let t=document.createElement("template");t.innerHTML=Gn(s,e);let r=t.content;return r=document.importNode(r,!0),En(r,e),r.childElementCount==1?r.firstElementChild:r}c(f,"html");var fr=class{constructor(e){this.text=e}static{c(this,"Literal")}},Mr=/\$\$:(\d+):\$\$/g;function Gn(s,e){let t=[];for(let i=0;i or + ${this.canvas}`}};P([L({type:Boolean})],Ue.prototype,"loaded",2),P([L({type:String})],Ue.prototype,"theme",2),P([L({type:Boolean})],Ue.prototype,"disableinteraction",2);var is=class extends N{static{c(this,"KCContextMenuElement")}static{this.styles=[...N.styles,y` + :host { + position: fixed; + z-index: 1000; + display: none; + } + + :host([visible]) { + display: block; + } + + .menu { + background: var(--dropdown-bg); + border-radius: 5px; + overflow: hidden; + min-width: 150px; + max-width: 300px; + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3); + } + + .menu-item { + display: block; + padding: 0.4em 0.8em; + cursor: pointer; + color: var(--dropdown-fg); + user-select: none; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + } + + .menu-item:hover { + background: var(--dropdown-hover-bg); + color: var(--dropdown-hover-fg); + } + `]}#e=null;#t=null;#r=null;#i=null;show(e,t,r,i){this.#e=r,this.#t=i,this.style.left=`${e}px`,this.style.top=`${t}px`,this.setAttribute("visible",""),requestAnimationFrame(()=>{this.updateMenuItems(),this.adjustPosition(),this.setupDismissListeners()})}hide(){this.removeAttribute("visible"),this.#e=null,this.#t=null,this.removeDismissListeners()}updateMenuItems(){let e=this.shadowRoot?.querySelector(".menu");e&&(e.innerHTML="",this.#e?.forEach((t,r)=>{let i=document.createElement("div");i.className="menu-item",i.textContent=r,e.appendChild(i)}))}adjustPosition(){let e=this.getBoundingClientRect(),t=window.innerWidth,r=window.innerHeight,i=parseFloat(this.style.left),n=parseFloat(this.style.top);i+e.width>t&&(i=t-e.width-10),n+e.height>r&&(n=r-e.height-10),this.style.left=`${Math.max(10,i)}px`,this.style.top=`${Math.max(10,n)}px`}setupDismissListeners(){this.removeDismissListeners(),this.#r=e=>{let t=this.getBoundingClientRect();e.clientX>=t.left&&e.clientX<=t.right&&e.clientY>=t.top&&e.clientY<=t.bottom||this.hide()},this.#i=()=>this.hide(),setTimeout(()=>{this.#r&&document.addEventListener("pointerdown",this.#r),this.#i&&(window.addEventListener("resize",this.#i),window.addEventListener("scroll",this.#i,!0))},100)}removeDismissListeners(){this.#r&&(document.removeEventListener("pointerdown",this.#r),this.#r=null),this.#i&&(window.removeEventListener("resize",this.#i),window.removeEventListener("scroll",this.#i,!0),this.#i=null)}initialContentCallback(){super.initialContentCallback(),this.shadowRoot?.addEventListener("click",e=>{let t=e.target;t.classList.contains("menu-item")&&this.#e&&(this.#t&&this.#t(this.#e.get(t.textContent??"")),this.hide())})}render(){return f`

`}};window.customElements.define("kc-context-menu",is);var $2=class extends Ue{static{c(this,"KCBoardViewerElement")}#e=null;update_theme(){this.viewer.theme=this.themeObject.board}make_viewer(){let e=new tr(this.canvas,!this.disableinteraction,this.themeObject.board);return e.contextMenuCallback=(t,r,i,n)=>{this.#e&&this.#e.show(t,r,i,n)},e}render(){return this.canvas=f``,this.#e=f``,f` + ${this.canvas} ${this.#e}`}};window.customElements.define("kc-board-viewer",$2);var ss=class extends N{static{c(this,"KCHelpPanel")}static{this.styles=[...N.styles,y` + p { + margin: 0; + padding: 0.5em; + } + + a { + color: var(--button-bg); + } + + a:hover { + color: var(--button-hover-bg); + } + `]}render(){return f` + + + +

+ You're using + KiCanvas, an + interactive, browser-based viewer for KiCad schematics + and boards. +

+

+ KiCanvas is very much in alpha, so + please + file an issue on GitHub + if you run into any bugs. +

+

+ KiCanvas is developed by + Thea Flowers + and supported by + community donations. +

+ + `}};window.customElements.define("kc-help-panel",ss);var z2=ce.INSTANCE,rr=class extends N{static{c(this,"KCPreferencesPanel")}static{this.styles=[...N.styles,y` + select { + box-sizing: border-box; + display: block; + width: 100%; + max-width: 100%; + margin-top: 0.25em; + font-family: inherit; + font-size: inherit; + font-weight: 300; + margin-top: 0.25em; + border-radius: 0.25em; + text-align: left; + padding: 0.25em; + background: var(--input-bg); + color: var(--input-fg); + border: var(--input-border); + transition: + color var(--transition-time-medium) ease, + box-shadow var(--transition-time-medium) ease, + outline var(--transition-time-medium) ease, + background var(--transition-time-medium) ease, + border var(--transition-time-medium) ease; + } + + select::after { + display: block; + content: "â–¾"; + color: var(--input-fg); + } + + select:hover { + z-index: 10; + box-shadow: var(--input-hover-shadow); + } + + select:focus { + z-index: 10; + box-shadow: none; + outline: var(--input-focus-outline); + } + `]}initialContentCallback(){this.renderRoot.addEventListener("input",e=>{let t=e.target;t.name==="theme"&&(z2.theme=Xe.by_name(this.theme_control.value)),t.name==="align-controls-kicad"&&(z2.alignControlsWithKiCad=t.checked),z2.save()})}render(){let e=Xe.list().map(t=>f``);return f` + + + + + + + + + + + + + + + `}};P([v("[name=theme]",!0)],rr.prototype,"theme_control",2);window.customElements.define("kc-preferences-panel",rr);var ir=class extends N{static{c(this,"KCProjectPanelElement")}static{this.styles=[...N.styles,y` + .page { + display: flex; + align-items: center; + } + + .page span.name { + margin-right: 1em; + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; + } + + .page span.filename { + flex: 1; + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; + margin-left: 1em; + text-align: right; + color: #aaa; + } + + .page kc-ui-button { + margin-left: 0.5em; + } + + .page span.number { + flex: 0; + background: var(--dropdown-hover-bg); + border: 1px solid transparent; + border-radius: 0.5em; + font-size: 0.8em; + padding: 0px 0.3em; + margin-right: 0.5em; + } + + kc-ui-menu-item:hover span.number { + background: var(--dropdown-bg); + } + + kc-ui-menu-item[selected]:hover span.number { + background: var(--dropdown-hover-bg); + } + `]}#e;connectedCallback(){(async()=>(this.project=await this.requestContext("project"),super.connectedCallback()))()}initialContentCallback(){super.initialContentCallback(),this.addDisposable(I(this.project,"load",e=>{this.update()})),this.addDisposable(I(this.project,"change",e=>{this.selected=this.project.active_page?.project_path??null})),this.addEventListener("kc-ui-menu:select",e=>{let t=e.detail;this.selected=t?.name??null,this.change_current_project_page(this.selected)}),ue(this.renderRoot,"kc-ui-button","click",(e,t)=>{let r=t.closest("kc-ui-menu-item");this.project.download(r.name)})}get selected(){return this.#e.selected?.name??null}set selected(e){this.#e.selected=e}change_current_project_page(e){this.project.set_active_page(e)}render(){let e=[];if(!this.project)return f``;for(let t of this.project.pages()){let r=t.type=="schematic"?"svg:schematic_file":"svg:pcb_file",i=t.page?f`${t.page}`:"";e.push(f` + + ${i} + + ${t.name??t.filename} + + + ${t.name&&t.name!==t.filename?t.filename:""} + + + + `)}return this.#e=f` + ${e} + `,f` + + ${this.#e} + `}};P([_t],ir.prototype,"change_current_project_page",1);window.customElements.define("kc-project-panel",ir);var ns=class extends N{static{c(this,"KCViewerBottomToolbarElement")}static{this.styles=[...N.styles,y` + output { + width: unset; + margin: unset; + padding: 0.5em; + color: var(--button-toolbar-fg); + background: var(--button-toolbar-bg); + border: 1px solid var(--button-toolbar-bg); + border-radius: 0.25em; + font-weight: 300; + font-size: 0.9em; + box-shadow: var(--input-hover-shadow); + user-select: none; + } + `]}#e;#t;#r;connectedCallback(){(async()=>(this.viewer=await this.requestLazyContext("viewer"),await this.viewer.loaded,super.connectedCallback(),this.addDisposable(this.viewer.addEventListener(Yt.type,()=>{this.update_position()})),this.addDisposable(this.viewer.addEventListener(z.type,e=>{this.#r.disabled=!e.detail.item})),this.#t.addEventListener("click",e=>{e.preventDefault(),this.viewer.zoom_to_page()}),this.#r.addEventListener("click",e=>{e.preventDefault(),this.viewer.zoom_to_selection()})))()}update_position(){let e=this.viewer.mouse_position;this.#e.value=`${e.x.toFixed(2)}, ${e.y.toFixed(2)} mm`}render(){return this.#e=f``,this.#t=f` + `,this.#r=f` + `,this.update_position(),f` + ${this.#e} ${this.#r} + ${this.#t} + `}};window.customElements.define("kc-viewer-bottom-toolbar",ns);var Fe=class extends N{constructor(){super();this.viewerReady=new Ve;this.provideLazyContext("viewer",()=>this.viewer)}static{c(this,"KCViewerAppElement")}#e;#t;get viewer(){return this.#e.viewer}connectedCallback(){this.hidden=!0,(async()=>(this.project=await this.requestContext("project"),await this.project.loaded,super.connectedCallback()))()}initialContentCallback(){this.project.active_page&&this.load(this.project.active_page),this.addDisposable(I(this.project,"change",async t=>{let r=this.project.active_page;r?await this.load(r):this.hidden=!0})),this.addDisposable(this.viewer.addEventListener(z.type,t=>{this.on_viewer_select(t.detail.item,t.detail.previous)})),ue(this.renderRoot,"kc-ui-button","click",t=>{switch(t.target.name){case"download":this.project.active_page&&this.project.download(this.project.active_page.filename);break;case"flip_view":this.#e.viewer.flip_view();break;default:console.warn("Unknown button",t)}})}async load(t){await this.viewerReady,this.can_load(t)?(await this.#e.load(t),this.hidden=!1):this.hidden=!0}#r(){return l2(this.project.pages())>1}make_pre_activities(){let t=[];return this.#r()&&t.push(f` + + `),t}make_post_activities(){return[f` + + `,f` + + `]}change_activity(t){this.#t?.change_activity(t)}render(){let t=this.controls??"none",r=un(this.controlslist??"",t=="none"?{fullscreen:!1,download:!1,flipview:!1}:{fullscreen:!0,download:!0,flipview:!0});this.#e=this.make_viewer_element(),this.#e.disableinteraction=t=="none";let i=null;if(t=="full"){let p=this.make_pre_activities(),u=this.make_post_activities(),m=this.make_activities();this.#t=f` + ${p} ${m} ${u} + `,i=f``}else this.#t=null;let n=[];r.download&&!this.#r()&&n.push(f` + `),r.flipview&&this.#e instanceof $2&&n.push(f` + `);let o=f` + ${n} + `,l=null;return t!="none"&&(l=f``),f` + + ${o} ${this.#e} ${l} + + ${i} ${this.#t} + `}renderedCallback(){window.requestAnimationFrame(()=>{this.viewerReady.resolve(!0)})}};P([L({type:String})],Fe.prototype,"controls",2),P([L({type:String})],Fe.prototype,"controlslist",2),P([L({type:Boolean})],Fe.prototype,"sidebarcollapsed",2);var Dt=class extends N{static{c(this,"KCBoardFootprintsPanelElement")}connectedCallback(){(async()=>(this.viewer=await this.requestLazyContext("viewer"),await this.viewer.loaded,this.sort_footprints(),super.connectedCallback()))()}sort_footprints(){this.sorted_footprints=pe(this.viewer.board.footprints,e=>e.reference||"REF")}initialContentCallback(){this.addEventListener("kc-ui-menu:select",e=>{let t=e.detail;t.name&&this.viewer.select(t.name)}),this.addDisposable(this.viewer.addEventListener(z.type,()=>{this.menu.selected=this.viewer.selected?.context.uuid_text??null})),this.search_input_elm.addEventListener("input",e=>{this.item_filter_elem.filter_text=this.search_input_elm.value??null})}render(){return f` + + + + + + + ${this.render_list()} + + + + + `}render_list(){let e=[],t=[];for(let r of this.sorted_footprints){let i=r.reference||"REF",n=r.value||"VAL",o=`${r.library_link} ${r.descr} ${r.layer} ${i} ${n} ${r.tags}`,l=f` + ${i}${n} + `;r.layer=="F.Cu"?e.push(l):t.push(l)}return f`Front + ${e} + Back + ${t}`}};P([v("kc-ui-menu",!0)],Dt.prototype,"menu",2),P([v("kc-ui-text-filter-input",!0)],Dt.prototype,"search_input_elm",2),P([v("kc-ui-filtered-list",!0)],Dt.prototype,"item_filter_elem",2);window.customElements.define("kc-board-footprints-panel",Dt);var os=class extends N{static{c(this,"KCBoardInfoPanelElement")}connectedCallback(){(async()=>(this.viewer=await this.requestLazyContext("viewer"),await this.viewer.loaded,super.connectedCallback()))()}render(){let e=this.viewer.drawing_sheet,t=this.viewer.board,r=t.edge_cuts_bbox,i=c(l=>f``,"header"),n=c((l,p,u="")=>f` + ${p} ${u} + `,"entry"),o=Object.entries(t.title_block?.comment||{}).map(([l,p])=>n(`Comment ${l}`,p));return f` + + + + + ${i("Page properties")} + ${n("Size",e.paper?.size)} + ${n("Width",e.width,"mm")} + ${n("Height",e.height,"mm")} + ${i("Board properties")} + ${n("KiCad version",t.version)} + ${n("Generator",t.generator)} + ${n("Thickness",t.general?.thickness??1.6,"mm")} + ${n("Title",t.title_block?.title)} + ${n("Date",t.title_block?.date)} + ${n("Revision",t.title_block?.rev)} + ${n("Company",t.title_block?.company)} + ${o} + ${n("Dimensions",`${r.w.toFixed(1)} x + ${r.h.toFixed(1)} mm`)} + ${n("Footprints",t.footprints.length)} + ${n("Nets",t.nets.length)} + ${n("Track segments",t.segments.length)} + ${n("Vias",t.vias.length)} + ${n("Zones",t.zones.length)} + ${n("Pad to mask clearance",t.setup?.pad_to_mask_clearance??0,"mm")} + ${n("Soldermask min width",t.setup?.solder_mask_min_width??0,"mm")} + ${n("Pad to paste clearance",t.setup?.pad_to_paste_clearance??0,"mm")} + ${n("Pad to paste clearance ratio",t.setup?.pad_to_paste_clearance_ratio??0)} + ${n("Grid origin",`${t.setup?.grid_origin?.x??0}, ${t.setup?.grid_origin?.y??0}`)} + + + + `}};window.customElements.define("kc-board-info-panel",os);var q2=class extends N{static{c(this,"KCBoardLayersPanelElement")}static{this.styles=[...N.styles,y` + :host { + display: block; + height: 100%; + overflow-y: auto; + overflow-x: hidden; + user-select: none; + } + + kc-ui-panel-title button { + all: unset; + flex-shrink: 0; + margin-left: 1em; + color: white; + border: 0 none; + background: transparent; + padding: 0 0.25em 0 0.25em; + margin-right: -0.25em; + display: flex; + align-items: center; + } + `]}get items(){return Array.from(this.panel_body.querySelectorAll("kc-board-layer-control")??[])}connectedCallback(){(async()=>(this.viewer=await this.requestLazyContext("viewer"),await this.viewer.loaded,super.connectedCallback()))()}initialContentCallback(){this.panel_body.addEventListener(e3.select_event,e=>{let t=e.detail;for(let i of this.items)i.layer_highlighted=!1;let r=this.viewer.layers.by_name(t.layer_name);r.highlighted?this.viewer.layers.highlight(null):(this.viewer.layers.highlight(r),r.visible=!0,t.layer_visible=!0,t.layer_highlighted=!0),this.viewer.draw()}),this.panel_body.addEventListener(e3.visibility_event,e=>{let t=e.detail,r=this.viewer.layers.by_name(t.layer_name);r.visible=!r.visible,t.layer_visible=r.visible,this.presets_menu.deselect(),this.viewer.draw()}),this.renderRoot.querySelector("button")?.addEventListener("click",e=>{e.stopPropagation();let t=this.viewer.layers.in_ui_order();if(this.items.some(r=>r.layer_visible))for(let r of t)r.visible=!1;else for(let r of t)r.visible=!0;this.viewer.draw(),this.presets_menu.deselect(),this.update_item_states()}),this.presets_menu.addEventListener("kc-ui-menu:select",e=>{let t=e.detail,r=this.viewer.layers.in_ui_order();switch(t.name){case"all":for(let i of r)i.visible=!0;break;case"front":for(let i of r)i.visible=i.name.startsWith("F.")||i.name=="Edge.Cuts";break;case"back":for(let i of r)i.visible=i.name.startsWith("B.")||i.name=="Edge.Cuts";break;case"copper":for(let i of r)i.visible=i.name.includes(".Cu")||i.name=="Edge.Cuts";break;case"outer-copper":for(let i of r)i.visible=i.name=="F.Cu"||i.name=="B.Cu"||i.name=="Edge.Cuts";break;case"inner-copper":for(let i of r)i.visible=i.name.includes(".Cu")&&!(i.name=="F.Cu"||i.name=="B.Cu")||i.name=="Edge.Cuts";break;case"drawings":for(let i of r)i.visible=!i.name.includes(".Cu")&&!i.name.includes(".Mask")&&!i.name.includes(".Paste")&&!i.name.includes(".Adhes")}this.viewer.draw(),this.update_item_states()})}update_item_states(){for(let e of this.items){let t=this.viewer.layers.by_name(e.layer_name);e.layer_visible=t?.visible??!1,e.layer_highlighted=t?.highlighted??!1}}render(){let e=this.viewer.layers,t=[];for(let r of e.in_ui_order()){let i=r.visible?"":void 0,n=r.color.to_css();t.push(f``)}return f` + + + + + + ${t} + Presets + + All + Front + Back + Copper + + Outer copper + + + Inner copper + + + Drawings + + + + + `}};P([v("kc-ui-panel-body",!0)],q2.prototype,"panel_body",2),P([v("#presets",!0)],q2.prototype,"presets_menu",2);var Be=class Be extends N{static{c(this,"KCBoardLayerControlElement")}static{this.styles=[...N.styles,y` + :host { + box-sizing: border-box; + padding: 0.1em 0.8em 0.1em 0.4em; + color: white; + text-align: left; + display: flex; + flex-direction: row; + width: 100%; + align-items: center; + } + + button { + all: unset; + cursor: pointer; + flex-shrink: 0; + margin-left: 1em; + color: white; + border: 0 none; + background: transparent; + padding: 0 0.25em 0 0.25em; + margin-right: -0.25em; + display: flex; + align-items: center; + } + + .color { + flex-shrink: 0; + display: block; + width: 1em; + height: 1em; + margin-right: 0.5em; + } + + .name { + display: block; + flex-grow: 1; + } + + .for-hidden { + color: #888; + } + + :host { + background: var(--list-item-disabled-bg); + color: var(--list-item-disabled-fg); + } + + :host(:hover) { + background: var(--list-item-hover-bg); + color: var(--list-item-hover-fg); + } + + :host(:hover) button { + color: var(--list-item-bg); + } + + :host(:hover) button:hover { + color: var(--list-item-fg); + } + + :host([layer-visible]) { + background: var(--list-item-bg); + color: var(--list-item-fg); + } + + :host([layer-highlighted]) { + background: var(--list-item-active-bg); + color: var(--list-item-active-fg); + } + + :host([layer-highlighted]:hover) button { + color: var(--list-item-fg); + } + + :host kc-ui-icon.for-visible, + :host([layer-visible]) kc-ui-icon.for-hidden { + display: none; + } + + :host kc-ui-icon.for-hidden, + :host([layer-visible]) kc-ui-icon.for-visible { + display: revert; + } + `]}static{this.select_event="kicanvas:layer-control:select"}static{this.visibility_event="kicanvas:layer-control:visibility"}initialContentCallback(){super.initialContentCallback(),this.renderRoot.addEventListener("click",e=>{e.stopPropagation();let t=e.target?.closest("button"),r;t?r=Be.visibility_event:r=Be.select_event,this.dispatchEvent(new CustomEvent(r,{detail:this,bubbles:!0}))})}render(){return f` + ${this.layer_name} + `}};P([L({type:String})],Be.prototype,"layer_name",2),P([L({type:String})],Be.prototype,"layer_color",2),P([L({type:Boolean})],Be.prototype,"layer_highlighted",2),P([L({type:Boolean})],Be.prototype,"layer_visible",2);var e3=Be;window.customElements.define("kc-board-layer-control",e3);window.customElements.define("kc-board-layers-panel",q2);var t3=class extends N{static{c(this,"KCBoardNetsPanelElement")}connectedCallback(){(async()=>(this.viewer=await this.requestLazyContext("viewer"),await this.viewer.loaded,super.connectedCallback()))()}initialContentCallback(){this.addEventListener("kc-ui-menu:select",e=>{let t=e.detail,r=parseInt(t?.name,10);r&&this.viewer.highlight_net(r)}),this.search_input_elm.addEventListener("input",e=>{this.item_filter_elem.filter_text=this.search_input_elm.value??null})}render(){let e=this.viewer.board,t=[];for(let r of e.nets)t.push(f` + ${r.number} + ${r.name} + `);return f` + + + + + + ${t} + + + + `}};P([v("kc-ui-text-filter-input",!0)],t3.prototype,"search_input_elm",2),P([v("kc-ui-filtered-list",!0)],t3.prototype,"item_filter_elem",2);window.customElements.define("kc-board-nets-panel",t3);var as=class extends N{static{c(this,"KCBoardObjectsPanelElement")}connectedCallback(){(async()=>(this.viewer=await this.requestLazyContext("viewer"),await this.viewer.loaded,super.connectedCallback(),this.setup_events()))()}setup_events(){ue(this.renderRoot,"kc-ui-range","kc-ui-range:input",e=>{let t=e.target,r=t.valueAsNumber;switch(t.name){case"tracks":this.viewer.track_opacity=r;break;case"vias":this.viewer.via_opacity=r;break;case"pads":this.viewer.pad_opacity=r;break;case"holes":this.viewer.pad_hole_opacity=r;break;case"zones":this.viewer.zone_opacity=r;break;case"grid":this.viewer.grid_opacity=r;break;case"page":this.viewer.page_opacity=r;break}})}render(){return f` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + `}};window.customElements.define("kc-board-objects-panel",as);var ls=class extends N{static{c(this,"KCBoardPropertiesPanelElement")}connectedCallback(){(async()=>(this.viewer=await this.requestLazyContext("viewer"),await this.viewer.loaded,super.connectedCallback(),this.setup_events()))()}setup_events(){this.addDisposable(this.viewer.addEventListener(z.type,e=>{this.selected_item=e.detail.item,this.update()}))}render(){let e=c(n=>f` + `,"header"),t=c((n,o,l="")=>f` + ${o??""} ${l} + `,"entry"),r=c(n=>n?f`check`:f`close`,"checkbox"),i;if(!this.selected_item)i=e("No item selected");else{let n=this.selected_item,o=Object.entries(n.properties).map(([l,p])=>t(l,p.value));i=f` + ${e("Basic properties")} + ${t("X",n.at.position.x.toFixed(4),"mm")} + ${t("Y",n.at.position.y.toFixed(4),"mm")} + ${t("Orientation",n.at.rotation,"\xB0")} + ${t("Layer",n.layer)} ${e("Footprint properties")} + ${t("Reference",n.reference)} + ${t("Value",n.value)} + ${t("Type",n.attr.through_hole?"through hole":n.attr.smd?"smd":"unspecified")} + ${t("Pads",n.pads.length)} + ${t("Library link",n.library_link)} + ${t("Description",n.descr)} + ${t("Keywords",n.tags)} ${o} + ${e("Fabrication attributes")} + ${t("Not in schematic",r(n.attr.board_only))} + ${t("Exclude from position files",r(n.attr.exclude_from_pos_files))} + ${t("Exclude from BOM",r(n.attr.exclude_from_bom))} + ${e("Overrides")} + ${t("Exempt from courtyard requirement",r(n.attr.allow_missing_courtyard))} + ${t("Clearance",n.clearance??0,"mm")} + ${t("Solderpaste margin",n.solder_paste_margin??0,"mm")} + ${t("Solderpaste margin ratio",n.solder_paste_ratio??0)} + ${t("Zone connection",n.zone_connect??"inherited")} + `}return f` + + + + ${i} + + + `}};window.customElements.define("kc-board-properties-panel",ls);var cs=class extends Fe{static{c(this,"KCBoardAppElement")}on_viewer_select(e,t){e&&e==t&&this.change_activity("properties")}can_load(e){return e.document instanceof de}make_viewer_element(){return f``}make_activities(){return[f` + + `,f` + + `,f` + + `,f` + + `,f` + + `,f` + + `]}};window.customElements.define("kc-board-app",cs);var sr=class extends ke{constructor(t){super(t);this.#e=[];this.state=new H2}static{c(this,"Canvas2DRenderer")}#e;#t;async setup(){let t=this.canvas.getContext("2d",{alpha:!1,desynchronized:!0});if(t==null)throw new Error("Unable to create Canvas2d context");this.ctx2d=t,this.update_canvas_size()}dispose(){this.ctx2d=void 0;for(let t of this.#e)t.dispose()}update_canvas_size(){let t=window.devicePixelRatio,r=this.canvas.getBoundingClientRect(),i=Math.round(r.width*t),n=Math.round(r.height*t);(this.canvas.width!=i||this.canvas.height!=n)&&(this.canvas.width=i,this.canvas.height=n)}clear_canvas(){this.update_canvas_size(),this.ctx2d.setTransform(),this.ctx2d.scale(window.devicePixelRatio,window.devicePixelRatio),this.ctx2d.fillStyle=this.background_color.to_css(),this.ctx2d.fillRect(0,0,this.canvas.width,this.canvas.height),this.ctx2d.lineCap="round",this.ctx2d.lineJoin="round"}start_layer(t){this.#t=new Rs(this,t)}end_layer(){if(!this.#t)throw new Error("No active layer");return this.#e.push(this.#t),this.#t=null,this.#e.at(-1)}arc(t,r,i,n,o,l){super.prep_arc(t,r,i,n,o,l)}circle(t,r,i){let n=super.prep_circle(t,r,i);if(!n.color||n.color.is_transparent_black)return;let o=n.color.to_css(),l=new Path2D;l.arc(n.center.x,n.center.y,n.radius,0,Math.PI*2),this.#t.commands.push(new Bt(l,o,null,0))}line(t,r,i){let n=super.prep_line(t,r,i);if(!n.color||n.color.is_transparent_black)return;let o=n.color.to_css(),l=new Path2D,p=!1;for(let u of n.points)p?l.lineTo(u.x,u.y):(l.moveTo(u.x,u.y),p=!0);this.#t.commands.push(new Bt(l,null,o,n.width))}polygon(t,r){let i=super.prep_polygon(t,r);if(!i.color||i.color.is_transparent_black)return;let n=i.color.to_css(),o=new Path2D,l=!1;for(let p of i.points)l?o.lineTo(p.x,p.y):(o.moveTo(p.x,p.y),l=!0);o.closePath(),this.#t.commands.push(new Bt(o,n,null,0))}get layers(){let t=this.#e;return{*[Symbol.iterator](){for(let r of t)yield r}}}remove_layer(t){let r=this.#e.indexOf(t);r!=-1&&this.#e.splice(r,1)}},Bt=class{constructor(e,t,r,i){this.path=e;this.fill=t;this.stroke=r;this.stroke_width=i;this.path_count=1}static{c(this,"DrawCommand")}render(e){e.fillStyle=this.fill??"black",e.strokeStyle=this.stroke??"black",e.lineWidth=this.stroke_width,this.fill&&e.fill(this.path),this.stroke&&e.stroke(this.path)}},Rs=class extends Ie{constructor(t,r,i=[]){super(t,r);this.renderer=t;this.name=r;this.commands=i}static{c(this,"Canvas2dRenderLayer")}dispose(){this.clear()}clear(){this.commands=[]}push_path(t,r,i,n){let o=this.commands.at(-1);o&&(o.path_count<20,o.fill==r&&o.stroke==i&&o.stroke_width==n)?(o.path.addPath(t),o.path_count++):this.commands.push(new Bt(t,r,i,n))}render(t,r,i=1){let n=this.renderer.ctx2d;if(!n)throw new Error("No CanvasRenderingContext2D!");n.save(),n.globalCompositeOperation=this.composite_operation,n.globalAlpha=i;let o=U.from_DOMMatrix(n.getTransform());o.multiply_self(t),n.setTransform(o.to_DOMMatrix());for(let l of this.commands)l.render(n);n.globalCompositeOperation="source-over",n.globalAlpha=1,n.restore()}};var je=(M=>(M.interactive=":Interactive",M.marks=":Marks",M.symbol_field=":Symbol:Field",M.label=":Label",M.junction=":Junction",M.wire=":Wire",M.symbol_foreground=":Symbol:Foreground",M.notes=":Notes",M.bitmap=":Bitmap",M.symbol_pin=":Symbol:Pin",M.symbol_background=":Symbol:Background",M[M.drawing_sheet=":DrawingSheet"]="drawing_sheet",M[M.grid=":Grid"]="grid",M))(je||{}),jt=class extends It{constructor(t){super();this.theme=t;for(let r of Object.values(je))this.add(new ae(this,r));this.by_name(":Interactive").visible=!1,this.by_name(":Interactive").interactive=!0,this.by_name(je.drawing_sheet).color=this.theme.worksheet??h.white}static{c(this,"LayerSet")}*interactive_layers(){yield this.by_name(":Interactive")}};var nr=class extends Ce{static{c(this,"BaseSchematicPainter")}},Y=class extends Me{static{c(this,"SchematicItemPainter")}get theme(){return this.view_painter.theme}get is_dimmed(){return this.view_painter.current_symbol?.dnp??!1}dim_color(e){return e=e.desaturate(),e.mix(this.theme.background,.5)}dim_if_needed(e){return this.is_dimmed?this.dim_color(e):e}determine_stroke(e,t){let r=t.stroke?.width||this.gfx.state.stroke_width;if(r<0)return{width:0,color:null};if((t.stroke?.type??"none")=="none")return{width:0,color:null};let n=e.name==":Symbol:Foreground"?this.theme.component_outline:this.theme.note,o=this.dim_if_needed(t.stroke?.color??n);return{width:r,color:o}}determine_fill(e,t){let r=t.fill?.type??"none";if(r=="none"||r=="background"&&e.name!=":Symbol:Background")return null;let i;switch(r){case"background":i=this.theme.component_body;break;case"outline":i=this.theme.component_outline;break;case"color":i=t.fill.color;break}return this.dim_if_needed(i)}};var r3=class extends Y{constructor(){super(...arguments);this.classes=[]}static{c(this,"LabelPainter")}layers_for(t){return[":Label"]}paint(t,r){if(r.effects.hide)return;let i=new st(r.shown_text);i.apply_at(r.at),i.apply_effects(r.effects),this.after_apply(r,i),r.at.rotation==0||r.at.rotation==180?i.text_angle.degrees=0:(r.at.rotation==90||r.at.rotation==270)&&(i.text_angle.degrees=90);let n=i.text_pos.add(this.get_schematic_text_offset(r,i));this.gfx.state.push(),this.gfx.state.stroke=this.color,this.gfx.state.fill=this.color,Q.default().draw(this.gfx,i.shown_text,n,i.attributes);let o=this.create_shape(r,i);o&&this.gfx.line(o,i.attributes.stroke_width/1e4),this.gfx.state.pop()}create_shape(t,r){return[]}get color(){return new h(1,0,1,1)}after_apply(t,r){}get_text_offset(t){return Math.round(B.text_offset_ratio*t.text_size.x)}get_box_expansion(t){return Math.round(B.label_size_ratio*t.text_size.y)}get_schematic_text_offset(t,r){let i=Math.round(this.get_text_offset(r)+r.get_effective_text_thickness());return r.text_angle.is_vertical?new d(-i,0):new d(0,-i)}},or=class extends r3{constructor(){super(...arguments);this.classes=[L2]}static{c(this,"NetLabelPainter")}get color(){return this.theme.label_local}},ar=class extends r3{constructor(){super(...arguments);this.classes=[X2]}static{c(this,"GlobalLabelPainter")}get color(){return this.theme.label_global}get_schematic_text_offset(t,r){let i=t,n=r.text_size.y,o=this.get_box_expansion(r),l=n*.0715;switch(["input","bidirectional","tri_state"].includes(i.shape)&&(o+=n*.75),o=Math.round(o),l=Math.round(l),t.at.rotation){case 0:return new d(o,l);case 90:return new d(l,-o);case 180:return new d(-o,l);case 270:return new d(l,o);default:throw new Error(`Unexpected label rotation ${t.at.rotation}`)}}create_shape(t,r){let i=t,n=r.text_pos,o=W.from_degrees(t.at.rotation+180),l=r.text_size.y,p=this.get_box_expansion(r),u=l/2+p,m=r.get_text_box().w+2*p,_=r.attributes.stroke_width,b=m+_+3,M=u+_+3,g=[new d(0,0),new d(0,-M),new d(-b,-M),new d(-b,0),new d(-b,M),new d(0,M),new d(0,0)],Z=new d;switch(i.shape){case"input":Z.x=-u,g[0].x+=u,g[6].x+=u;break;case"output":g[3].x-=u;break;case"bidirectional":case"tri_state":Z.x=-u,g[0].x+=u,g[6].x+=u,g[3].x-=u;break;default:break}return g=g.map(T=>T.add(Z).rotate(o).add(n).multiply(1/1e4)),g}},lr=class extends r3{constructor(){super(...arguments);this.classes=[et]}static{c(this,"HierarchicalLabelPainter")}get color(){return this.theme.label_hier}after_apply(t,r){r.v_align="center"}get_schematic_text_offset(t,r){let i=Math.round(this.get_text_offset(r)+r.text_width);switch(t.at.rotation){case 0:return new d(i,0);case 90:return new d(0,-i);case 180:return new d(-i,0);case 270:return new d(0,i);default:throw new Error(`Unexpected label rotation ${t.at.rotation}`)}}create_shape(t,r){let i=r.text_pos,n=W.from_degrees(t.at.rotation),o=r.text_width,l;switch(t.shape){case"output":l=[new d(0,o/2),new d(o/2,o/2),new d(o,0),new d(o/2,-o/2),new d(0,-o/2),new d(0,o/2)];break;case"input":l=[new d(o,o/2),new d(o/2,o/2),new d(0,0),new d(o/2,-o/2),new d(o,-o/2),new d(o,o/2)];break;case"bidirectional":case"tri_state":l=[new d(o/2,o/2),new d(o,0),new d(o/2,-o/2),new d(0,0),new d(o/2,o/2)];break;case"passive":default:l=[new d(0,o/2),new d(o,o/2),new d(o,-o/2),new d(0,-o/2),new d(0,o/2)];break}return l=l.map(p=>p.rotate(n).add(i).multiply(1/1e4)),l}},cr=class extends Y{constructor(){super(...arguments);this.classes=[O2]}static{c(this,"DirectiveLabelPainter")}get default_shape_color(){return this.theme.netclass_flag}get default_property_color(){return this.theme.netclass_flag}layers_for(t){return[":Label"]}paint(t,r){this.paint_shape(t,r);for(let i of r.properties)this.paint_property(t,i)}paint_shape(t,r){let i=r.effects.font.color.is_transparent_black?this.default_shape_color:r.effects.font.color,n=r.length,o=20*.0254;this.gfx.state.push(),this.gfx.state.matrix.translate_self(r.at.position.x,r.at.position.y),this.gfx.state.matrix.rotate_self(W.from_degrees(r.at.rotation)),this.gfx.state.stroke=i;let l=r.shape;if(l==="dot"){let p=o*.7;this.gfx.line([new d(0,0),new d(0,-(n-p))]),this.gfx.circle(new A(new d(0,-n),p,i))}else if(l==="round"){let p=o,u=new d(0,-n),m=this.gfx.state.stroke_width;this.gfx.line([new d(0,0),new d(0,-(n-p))]),this.gfx.arc(new fe(u,p,new W(0),new W(Math.PI*2),m,i))}else if(l==="diamond"){let p=o,m=[new d(0,0),new d(0,n-p),new d(-2*p,n),new d(0,n+p),new d(2*p,n),new d(0,n-p),new d(0,0)].map(_=>new d(_.x,-_.y));this.gfx.line(m)}else if(l==="rectangle"){let p=o*.8,m=[new d(0,0),new d(0,n-p),new d(-2*p,n-p),new d(-2*p,n+p),new d(2*p,n+p),new d(2*p,n-p),new d(0,n-p),new d(0,0)].map(_=>new d(_.x,-_.y));this.gfx.line(m)}this.gfx.state.pop()}paint_property(t,r){let i=r.effects.font.color.is_transparent_black?this.default_property_color:r.effects.font.color,n=new st(r.shown_text);n.apply_at(r.at),n.apply_effects(r.effects),r.at.rotation==0||r.at.rotation==180?n.text_angle.degrees=0:(r.at.rotation==90||r.at.rotation==270)&&(n.text_angle.degrees=90),this.gfx.state.push(),this.gfx.state.stroke=i,this.gfx.state.fill=i,Q.default().draw(this.gfx,n.shown_text,n.text_pos,n.attributes),this.gfx.state.pop()}};var Rr=class s extends Y{constructor(){super(...arguments);this.classes=[F2]}static{c(this,"PinPainter")}layers_for(t){return[":Symbol:Pin",":Symbol:Foreground",":Interactive"]}paint(t,r){if(r.definition.hide)return;let i={pin:r,def:r.definition,position:r.definition.at.position.copy(),orientation:vo(r.definition.at.rotation)},n=this.view_painter.current_symbol_transform,o=this.dim_if_needed(this.theme.pin);s.apply_symbol_transformations(i,n),this.gfx.state.push(),this.gfx.state.matrix=U.identity(),this.gfx.state.stroke=o,(t.name==":Symbol:Pin"||t.name==":Interactive")&&this.draw_pin_shape(this.gfx,i),t.name==":Symbol:Foreground"&&this.draw_name_and_number(this.gfx,i),this.gfx.state.pop()}static apply_symbol_transformations(t,r){for(let n=0;n0?(T=u?void 0:$t.place_inside(b,Z,p,r.orientation),w=m?void 0:$t.place_above(M,_,g,p,r.orientation)):(T=u?void 0:$t.place_above(M,_,Z,p,r.orientation),w=m?void 0:$t.place_below(M,_,Z,p,r.orientation)),T&&$t.draw(t,o,r.position,T,i.name.effects,t.state.stroke),w&&$t.draw(t,l,r.position,w,i.number.effects,t.state.stroke)}};function vo(s){switch(s){case 0:return"right";case 90:return"up";case 180:return"left";case 270:return"down";default:throw new Error(`Unexpected pin angle ${s}`)}}c(vo,"angle_to_orientation");var xn={stem(s,e,t){let r=new d,i=new d;switch(e){case"up":r.set(s.x,s.y-t),i.set(0,1);break;case"down":r.set(s.x,s.y+t),i.set(0,-1);break;case"left":r.set(s.x-t,s.y),i.set(1,0);break;case"right":r.set(s.x+t,s.y),i.set(-1,0);break}return{p0:r,dir:i}},draw(s,e,t,r,i,n){let o=B.pinsymbol_size,l=o*2,p=B.target_pin_radius;if(e=="no_connect"){s.line([i,r]),s.line([r.add(new d(-p,-p)),r.add(new d(p,p))]),s.line([r.add(new d(p,-p)),r.add(new d(-p,p))]);return}let u=c(()=>{n.y?s.line([i.add(new d(o,0)),i.add(new d(0,-n.y*o)),i.add(new d(-o,0))]):s.line([i.add(new d(0,o)),i.add(new d(-n.x*o,0)),i.add(new d(0,-o))])},"clock_notch"),m=c(()=>{n.y?s.line([i.add(new d(0,n.y).multiply(l)),i.add(new d(-1,n.y).multiply(l)),i]):s.line([i.add(new d(n.x,0).multiply(l)),i.add(new d(n.x,-1).multiply(l)),i])},"low_in_tri");switch(t){case"line":s.line([i,r]);return;case"inverted":s.arc(i.add(n.multiply(o)),o),s.line([i.add(n.multiply(l)),r]);return;case"inverted_clock":s.arc(i.add(n.multiply(o)),o),s.line([i.add(n.multiply(l)),r]),u();return;case"clock":s.line([i,r]),u();return;case"clock_low":case"edge_clock_high":s.line([i,r]),u(),m();break;case"input_low":s.line([i,r]),m();break;case"output_low":s.line([i,r]),n.y?s.line([i.sub(new d(l,0)),i.add(new d(0,n.y*l))]):s.line([i.sub(new d(0,l)),i.add(new d(n.x*l,0))]);break;case"non_logic":s.line([i,r]),s.line([i.sub(new d(n.x+n.y,n.y-n.x).multiply(o)),i.add(new d(n.x+n.y,n.y-n.x).multiply(o))]),s.line([i.sub(new d(n.x-n.y,n.y+n.x).multiply(o)),i.add(new d(n.x-n.y,n.y+n.x).multiply(o))]);break}}},$t={orient_label(s,e,t,r){switch(e){case"right":break;case"left":s.x*=-1,t=="left"&&(t="right");break;case"up":s=new d(s.y,-s.x);break;case"down":s=new d(s.y,s.x),t=="left"&&(t="right");break}return{offset:s,h_align:t,v_align:r,orientation:e}},place_inside(s,e,t,r){let i=new d(s-e/2+t,0);return this.orient_label(i,r,"left","center")},place_above(s,e,t,r,i){let n=new d(r/2,-(s+e/2+t/2));return this.orient_label(n,i,"center","bottom")},place_below(s,e,t,r,i){let n=new d(r/2,s+e/2+t/2);return this.orient_label(n,i,"center","top")},draw(s,e,t,r,i,n){let o=new j(e);switch(o.apply_effects(i),o.attributes.h_align=r.h_align,o.attributes.v_align=r.v_align,o.attributes.color=n,o.text_pos=t.add(r.offset).multiply(1e4),r.orientation){case"up":case"down":o.text_angle=W.from_degrees(90);break;case"left":case"right":o.text_angle=W.from_degrees(0);break}Q.default().draw(s,o.shown_text,o.text_pos,o.attributes)}};var ps=class extends Ie{constructor(){super(...arguments);this.shapes=[]}static{c(this,"NullRenderLayer")}dispose(){this.clear()}clear(){this.shapes=[]}render(t){}},pr=class extends ke{static{c(this,"NullRenderer")}#e;constructor(){super(null)}set background_color(e){}async setup(){}async dispose(){}update_canvas_size(){}clear_canvas(){}start_layer(e){this.#e=new ps(this,e)}end_layer(){return this.#e}get layers(){return[]}circle(e,t,r){this.#e.shapes.push(super.prep_circle(e,t,r))}arc(e,t,r,i,n,o){this.#e.shapes.push(super.prep_arc(e,t,r,i,n,o))}line(e,t,r){this.#e.shapes.push(super.prep_line(e,t,r))}polygon(e,t){this.#e.shapes.push(super.prep_polygon(e,t))}remove_layer(e){}};var ur=class extends Y{constructor(){super(...arguments);this.classes=[Ut]}static{c(this,"LibSymbolPainter")}layers_for(t){return[":Symbol:Background",":Symbol:Foreground",":Symbol:Field"]}paint(t,r,i=1){if(![":Symbol:Background",":Symbol:Foreground",":Interactive"].includes(t.name))return;let n=r.units.get(0);n&&this.#e(t,n,i);let o=this.view_painter.current_symbol,l=r.units.get(o?.unit||1);l&&this.#e(t,l,i)}#e(t,r,i=1){for(let n of r)if(!(n.style>0&&i!=n.style))for(let o of n.drawings)this.view_painter.paint_item(t,o)}},hr=class extends Y{constructor(){super(...arguments);this.classes=[re]}static{c(this,"SchematicSymbolPainter")}layers_for(t){let r=[":Interactive",":Symbol:Foreground",":Symbol:Background",":Symbol:Field",":Symbol:Pin"];return t.dnp&&r.push(":Marks"),r}paint(t,r){if(t.name==":Interactive"&&r.lib_symbol.power)return;let i=Qo(r);this.view_painter.current_symbol=r,this.view_painter.current_symbol_transform=i,this.gfx.state.push(),this.gfx.state.matrix=U.translation(r.at.position.x,r.at.position.y),this.gfx.state.multiply(i.matrix);let n=r.convert??1;if(this.view_painter.paint_item(t,r.lib_symbol,n),this.gfx.state.pop(),[":Symbol:Pin",":Symbol:Foreground",":Interactive"].includes(t.name))for(let o of r.unit_pins)this.view_painter.paint_item(t,o);if(t.name==":Symbol:Field"||t.name==":Interactive")for(let[o,l]of r.properties)this.view_painter.paint_item(t,l);if(r.dnp&&t.name==":Marks"){let o=Yo(this.theme,r),l=B.line_width*3,p=this.theme.erc_error;this.gfx.line([o.top_left,o.bottom_right],l,p),this.gfx.line([o.bottom_left,o.top_right],l,p)}this.view_painter.current_symbol=void 0,this.view_painter.current_symbol_transform=void 0}};function Qo(s){let e=new U([1,0,0,0,-1,0,0,0,1]),t=new U([0,-1,0,-1,0,0,0,0,1]),r=new U([-1,0,0,0,1,0,0,0,1]),i=new U([0,1,0,1,0,0,0,0,1]),n=0,o=e;if(s.at.rotation!=0)if(s.at.rotation==90)n=1,o=t;else if(s.at.rotation==180)n=2,o=r;else if(s.at.rotation==270)n=3,o=i;else throw new Error(`unexpected rotation ${s.at.rotation}`);if(s.mirror=="y"){let l=o.elements[0]*-1,p=o.elements[3]*-1,u=o.elements[1],m=o.elements[4];o.elements[0]=l,o.elements[1]=u,o.elements[3]=p,o.elements[4]=m}else if(s.mirror=="x"){let l=o.elements[0],p=o.elements[3],u=o.elements[1]*-1,m=o.elements[4]*-1;o.elements[0]=l,o.elements[1]=u,o.elements[3]=p,o.elements[4]=m}return{matrix:o,position:s.at.position,rotations:n,mirror_x:s.mirror=="x",mirror_y:s.mirror=="y"}}c(Qo,"get_symbol_transform");function Yo(s,e){let t=new pr,r=new jt(s),i=new zt(t,r,s),n=[":Symbol:Foreground",":Symbol:Background",":Symbol:Pin"],o=[];for(let l of n){let p=r.by_name(l);p.items.push(e),i.paint_layer(p),o.push(p.bbox)}return O.combine(o)}c(Yo,"get_symbol_body_and_pins_bbox");var us=class extends Y{constructor(){super(...arguments);this.classes=[Xt]}static{c(this,"RectanglePainter")}layers_for(t){return[":Notes"]}paint(t,r){let i=[r.start,new d(r.end.x,r.start.y),r.end,new d(r.start.x,r.end.y),r.start];this.#t(t,r,i),this.#e(t,r,i)}#e(t,r,i){let{width:n,color:o}=this.determine_stroke(t,r);!n||!o||this.gfx.line(new x(i,r.stroke?.width||this.gfx.state.stroke_width,o))}#t(t,r,i){let n=this.determine_fill(t,r);n&&this.gfx.polygon(new J(i,n))}},hs=class extends Y{constructor(){super(...arguments);this.classes=[qe]}static{c(this,"PolylinePainter")}layers_for(t){return[":Notes"]}paint(t,r){this.#t(t,r),this.#e(t,r)}#e(t,r){let{width:i,color:n}=this.determine_stroke(t,r);if(!i||!n)return;let o=c(l=>{this.gfx.line(l,i,n)},"draw_line");nt.line(r.pts,i,r.stroke_params,o)}#t(t,r){let i=this.determine_fill(t,r);i&&this.gfx.polygon(new J(r.pts,i))}},ds=class extends Y{constructor(){super(...arguments);this.classes=[U2]}static{c(this,"RuleAreaPainter")}layers_for(t){return[":Notes"]}paint(t,r){let i=[...r.polyline.pts,r.polyline.pts[0].copy()],n=this.determine_fill(t,r.polyline);n&&this.gfx.polygon(new J(i,n));let o=r.polyline.stroke?.width||this.gfx.state.stroke_width,l=r.polyline.stroke?.color||this.theme.rule_area;if(o&&l){let p=c(u=>{this.gfx.line(u,o,l)},"draw_line");nt.line(i,o,r.polyline.stroke_params,p)}}},ms=class extends Y{constructor(){super(...arguments);this.classes=[P2]}static{c(this,"WirePainter")}layers_for(t){return[":Wire"]}paint(t,r){this.gfx.line(new x(r.pts,this.gfx.state.stroke_width,this.theme.wire))}},_s=class extends Y{constructor(){super(...arguments);this.classes=[W2]}static{c(this,"BusPainter")}layers_for(t){return[":Wire"]}paint(t,r){this.gfx.line(new x(r.pts,B.bus_width,this.theme.bus))}},bs=class extends Y{constructor(){super(...arguments);this.classes=[Z2]}static{c(this,"BusEntryPainter")}layers_for(t){return[":Junction"]}paint(t,r){this.gfx.line(new x([r.at.position,r.at.position.add(r.size)],B.wire_width,this.theme.wire))}},fs=class extends Y{constructor(){super(...arguments);this.classes=[Lt]}static{c(this,"CirclePainter")}layers_for(t){return[":Notes"]}paint(t,r){this.#t(t,r),this.#e(t,r)}#e(t,r){let{width:i,color:n}=this.determine_stroke(t,r);!i||!n||this.gfx.arc(new fe(r.center,r.radius,new W(0),new W(Math.PI*2),i,n))}#t(t,r){let i=this.determine_fill(t,r);i&&this.gfx.circle(new A(r.center,r.radius,i))}},Ms=class extends Y{constructor(){super(...arguments);this.classes=[yt]}static{c(this,"ArcPainter")}layers_for(t){return[":Notes"]}paint(t,r){let i=q.from_three_points(r.start,r.mid,r.end,r.stroke?.width);this.#t(t,r,i),this.#e(t,r,i)}#e(t,r,i){let{width:n,color:o}=this.determine_stroke(t,r);!n||!o||this.gfx.arc(new fe(i.center,i.radius,i.start_angle,i.end_angle,n,o))}#t(t,r,i){let n=this.determine_fill(t,r);n&&this.gfx.polygon(new J(i.to_polygon(),n))}},gs=class extends Y{constructor(){super(...arguments);this.classes=[S2]}static{c(this,"JunctionPainter")}layers_for(t){return[":Junction"]}paint(t,r){let i=this.theme.junction;this.gfx.circle(new A(r.at.position,(r.diameter||1)/2,i))}},Ns=class extends Y{constructor(){super(...arguments);this.classes=[T2]}static{c(this,"NoConnectPainter")}layers_for(t){return[":Junction"]}paint(t,r){let i=this.theme.no_connect,n=B.line_width,o=B.noconnect_size/2;this.gfx.state.push(),this.gfx.state.matrix.translate_self(r.at.position.x,r.at.position.y),this.gfx.line(new x([new d(-o,-o),new d(o,o)],n,i)),this.gfx.line(new x([new d(o,-o),new d(-o,o)],n,i)),this.gfx.state.pop()}},Vs=class extends Y{constructor(){super(...arguments);this.classes=[Ot]}static{c(this,"TextPainter")}layers_for(t){return[":Notes"]}paint(t,r){if(r.effects.hide||!r.text)return;let i=new st(r.shown_text);i.apply_at(r.at),i.apply_effects(r.effects);let n=r.effects.font.color;if(n.is_transparent_black){let o=this.theme.note;i.attributes.color=this.dim_if_needed(o)}else i.attributes.color=this.dim_if_needed(n);this.gfx.state.push(),Q.default().draw(this.gfx,i.shown_text,i.text_pos,i.attributes),this.gfx.state.pop()}},Ps=class extends Y{constructor(){super(...arguments);this.classes=[ye]}static{c(this,"PropertyPainter")}layers_for(t){return[":Symbol:Field",":Interactive"]}paint(t,r){if(r.hide||!r.text)return;let i=this.theme.fields;r.parent instanceof ne&&(i=this.theme.sheet_fields);let n=r.effects.font.color;if(n.is_transparent_black){switch(r.name){case"Reference":i=this.theme.reference;break;case"Value":i=this.theme.value;break;case"Sheet name":i=this.theme.sheet_name;break;case"Sheet file":i=this.theme.sheet_filename;break}i=this.dim_if_needed(i)}else i=this.dim_if_needed(n);let o=r.parent,p=this.view_painter.current_symbol_transform?.matrix??U.identity(),u=r.shown_text;r.name=="Reference"&&o.unit&&(u+=o.unit_suffix);let m=new E3(u,{position:o.at.position.multiply(1e4),transform:p,is_symbol:o instanceof re});m.apply_effects(r.effects),m.attributes.angle=W.from_degrees(r.at.rotation);let _=r.at.position.multiply(1e4).sub(m.parent.position);_=p.inverse().transform(_),_=_.add(m.parent.position),m.text_pos=_;let b=m.draw_rotation,M=m.bounding_box,g=M.center;m.attributes.angle=b,m.attributes.h_align="center",m.attributes.v_align="center",m.attributes.stroke_width=m.get_effective_text_thickness(B.line_width*1e4),m.attributes.color=i;let Z=U.scaling(1e-4,1e-4).transform_all([M.top_left,M.top_right,M.bottom_right,M.bottom_left,M.top_left]);t.name==":Interactive"?this.gfx.line(new x(Array.from(Z),.1,h.white)):(this.gfx.state.push(),Q.default().draw(this.gfx,m.shown_text,g,m.attributes),this.gfx.state.pop())}},Ws=class extends Y{constructor(){super(...arguments);this.classes=[y2]}static{c(this,"LibTextPainter")}layers_for(t){return[":Symbol:Foreground"]}paint(t,r){if(r.effects.hide||!r.text)return;let i=this.view_painter.current_symbol_transform,n=new G3(r.shown_text);n.apply_effects(r.effects),n.apply_at(r.at),n.apply_symbol_transformations(i),n.attributes.color=this.dim_if_needed(this.theme.component_outline);let o=n.world_pos;n.attributes.v_align="center",this.gfx.state.push(),this.gfx.state.matrix=U.identity(),Q.default().draw(this.gfx,n.shown_text,o,n.attributes),this.gfx.state.pop()}paint_debug(t){this.gfx.line(x.from_BBox(t.scale(1/1e4),.127,new h(0,0,1,1))),this.gfx.circle(new A(t.center.multiply(1/1e4),.2,new h(0,1,0,1)))}},Zs=class extends Y{constructor(){super(...arguments);this.classes=[ne]}static{c(this,"SchematicSheetPainter")}layers_for(t){return[":Interactive",":Label",":Symbol:Foreground",":Symbol:Background",":Symbol:Field"]}paint(t,r){let i=this.theme.sheet,n=this.theme.sheet_background,o=new O(r.at.position.x,r.at.position.y,r.size.x,r.size.y);if(t.name==":Interactive"&&this.gfx.polygon(J.from_BBox(o.grow(3),n)),t.name==":Symbol:Background"&&this.gfx.polygon(J.from_BBox(o,n)),t.name==":Symbol:Foreground"&&this.gfx.line(x.from_BBox(o,this.gfx.state.stroke_width,i)),t.name==":Symbol:Field")for(let l of r.properties.values())this.view_painter.paint_item(t,l);if(t.name==":Label")for(let l of r.pins){let p=new et;switch(p.at=l.at.copy(),p.effects=l.effects,p.text=l.name,p.shape=l.shape,p.at.rotation){case 0:p.at.rotation=180;break;case 180:p.at.rotation=0;break;case 90:p.at.rotation=270;break;case 270:p.at.rotation=90;break}l.shape=="input"?p.shape="output":l.shape=="output"&&(p.shape="input"),this.view_painter.paint_item(t,p)}}},zt=class extends nr{static{c(this,"SchematicPainter")}constructor(e,t,r){super(e,t,r),this.painter_list=[new us(this,e),new hs(this,e),new ds(this,e),new ms(this,e),new _s(this,e),new bs(this,e),new fs(this,e),new Ms(this,e),new gs(this,e),new Ns(this,e),new Vs(this,e),new Ws(this,e),new Rr(this,e),new ur(this,e),new Ps(this,e),new hr(this,e),new or(this,e),new cr(this,e),new ar(this,e),new lr(this,e),new Zs(this,e)]}};var dr=class extends At{static{c(this,"SchematicViewer")}get schematic(){return this.document}create_renderer(e){let t=new sr(e);return t.state.fill=this.theme.note,t.state.stroke=this.theme.note,t.state.stroke_width=.1524,t}async load(e){if(e instanceof _e)return await super.load(e);this.document=null;let t=e.document;return t.update_hierarchical_data(e.sheet_path),await super.load(t)}create_painter(){return new zt(this.renderer,this.layers,this.theme)}create_layer_set(){return new jt(this.theme)}select(e){if(E(e)&&(e=this.schematic.find_symbol(e)??this.schematic.find_sheet(e)),e instanceof re||e instanceof ne){let t=this.layers.query_item_bboxes(e);e=a2(t)??null}super.select(e)}};var Ss=class extends Ue{static{c(this,"KCSchematicViewerElement")}update_theme(){this.viewer.theme=this.themeObject.schematic}make_viewer(){return new dr(this.canvas,!this.disableinteraction,this.themeObject.schematic)}};window.customElements.define("kc-schematic-viewer",Ss);var Ts=class extends N{static{c(this,"KCSchematicInfoPanel")}connectedCallback(){(async()=>(this.viewer=await this.requestLazyContext("viewer"),await this.viewer.loaded,super.connectedCallback(),this.addDisposable(this.viewer.addEventListener(ie.type,e=>{this.update()}))))()}render(){let e=this.viewer.drawing_sheet,t=this.viewer.schematic,r=c(o=>f``,"header"),i=c((o,l,p="")=>f` + ${l} ${p} + `,"entry"),n=Object.entries(t.title_block?.comment||{}).map(([o,l])=>i(`Comment ${o}`,l));return f` + + + + + ${r("Page properties")} + ${i("Size",e.paper?.size)} + ${i("Width",e.width,"mm")} + ${i("Height",e.height,"mm")} + ${r("Schematic properties")} + ${i("KiCad version",t.version)} + ${i("Generator",t.generator)} + ${i("Title",t.title_block?.title)} + ${i("Date",t.title_block?.date)} + ${i("Revision",t.title_block?.rev)} + ${i("Company",t.title_block?.company)} + ${n} + ${i("Symbols",t.symbols.size)} + ${i("Unique symbols",t.lib_symbols?.symbols.length??0)} + ${i("Wires",t.wires.length)} + ${i("Buses",t.buses.length)} + ${i("Junctions",t.junctions.length)} + ${i("Net labels",t.net_labels.length)} + ${i("Global labels",t.global_labels.length)} + ${i("Hierarchical labels",t.hierarchical_labels.length)} + ${i("No connects",t.no_connects.length)} +

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 L&>@{xBqr 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

+ + + `}};window.customElements.define("kc-schematic-info-panel",Ts);var ys=class extends N{static{c(this,"KCSchematicPropertiesPanelElement")}connectedCallback(){(async()=>(this.viewer=await this.requestLazyContext("viewer"),await this.viewer.loaded,super.connectedCallback(),this.setup_events()))()}setup_events(){this.addDisposable(this.viewer.addEventListener(z.type,e=>{this.selected_item=e.detail.item,this.update()})),this.addDisposable(this.viewer.addEventListener(ie.type,e=>{this.selected_item=void 0,this.update()}))}render(){let e=c(o=>f``,"header"),t=c((o,l,p="")=>f` + ${l??""} ${p} + `,"entry"),r=c(o=>o?f`check`:f`close`,"checkbox"),i,n=this.selected_item;if(!n)i=e("No item selected");else if(n instanceof re){let o=n.lib_symbol,l=Array.from(n.properties.values()).map(u=>t(u.name,u.text)),p=pe(n.unit_pins,u=>u.number).map(u=>t(u.number,u.definition.name.text));i=f` + ${e("Basic properties")} + ${t("X",n.at.position.x.toFixed(4),"mm")} + ${t("Y",n.at.position.y.toFixed(4),"mm")} + ${t("Orientation",n.at.rotation,"\xB0")} + ${t("Mirror",n.mirror=="x"?"Around X axis":n.mirror=="y"?"Around Y axis":"Not mirrored")} + ${e("Instance properties")} + ${t("Library link",n.lib_name??n.lib_id)} + ${n.unit?t("Unit",String.fromCharCode(65+n.unit-1)):""} + ${t("In BOM",r(n.in_bom))} + ${t("On board",r(n.in_bom))} + ${t("Populate",r(!n.dnp))} ${e("Fields")} + ${l} ${e("Symbol properties")} + ${t("Name",o.name)} + ${t("Description",o.description)} + ${t("Keywords",o.keywords)} + ${t("Power",r(o.power))} + ${t("Units",o.unit_count)} + ${t("Units are interchangeable",r(o.units_interchangable))} + ${e("Pins")} ${p} + `}else if(n instanceof ne){let o=Array.from(n.properties.values()).map(p=>t(p.name,p.text)),l=pe(n.pins,p=>p.name).map(p=>t(p.name,p.shape));i=f` + ${e("Basic properties")} + ${t("X",n.at.position.x.toFixed(4),"mm")} + ${t("Y",n.at.position.y.toFixed(4),"mm")} + ${e("Fields")} ${o} ${e("Pins")} ${l} + `}return f` + + + + ${i} + + + `}};window.customElements.define("kc-schematic-properties-panel",ys);var qt=class extends N{static{c(this,"KCSchematicSymbolsPanelElement")}connectedCallback(){(async()=>(this.viewer=await this.requestLazyContext("viewer"),await this.viewer.loaded,super.connectedCallback(),this.setup_initial_events()))()}setup_initial_events(){let e=!1;this.addEventListener("kc-ui-menu:select",t=>{if(e)return;let r=t.detail;r.name&&this.viewer.select(r.name)}),this.addDisposable(this.viewer.addEventListener(z.type,()=>{e=!0,this.menu.selected=this.viewer.selected?.context.uuid??null,e=!1})),this.addDisposable(this.viewer.addEventListener(ie.type,()=>{this.update()}))}renderedCallback(){this.search_input_elm.addEventListener("input",e=>{this.item_filter_elem.filter_text=this.search_input_elm.value??null})}render(){let e=this.viewer.schematic,t=[],r=[],i=[],n=pe(Array.from(e.symbols.values()),l=>l.reference);for(let l of n){let p=`${l.reference} ${l.value} ${l.id} ${l.lib_symbol.name}`,u=f` + ${l.reference} + ${l.value} + `;l.lib_symbol.power?r.push(u):t.push(u)}let o=pe(e.sheets,l=>l.sheetname??l.sheetfile??"");for(let l of o){let p=`${l.sheetname} ${l.sheetfile}`;i.push(f` + ${l.sheetname} + ${l.sheetfile} + `)}return f` + + + + + + + ${t} + ${r.length?f`Power symbols`:null} + ${r} + ${i.length?f`Sheets`:null} + ${i} + + + + + `}};P([v("kc-ui-menu")],qt.prototype,"menu",2),P([v("kc-ui-text-filter-input",!0)],qt.prototype,"search_input_elm",2),P([v("kc-ui-filtered-list",!0)],qt.prototype,"item_filter_elem",2);window.customElements.define("kc-schematic-symbols-panel",qt);var Ls=class extends Fe{static{c(this,"KCSchematicAppElement")}on_viewer_select(e,t){if(!(!e||e!=t)){if(e instanceof ne){this.project.set_active_page(`${e.sheetfile}:${e.path}/${e.uuid}`);return}this.change_activity("properties")}}can_load(e){return e.document instanceof _e}make_viewer_element(){return f``}make_activities(){return[f` + + `,f` + + `,f` + + `]}};window.customElements.define("kc-schematic-app",Ls);var mr=`:host{font-size:var(--font-size, 16px);--transition-time-very-short: .1s;--transition-time-short: .2s;--transition-time-medium: .5s;--bg: #131218;--fg: #f8f8f0;--tooltip-bg: #8864cb;--tooltip-fg: #f8f8f0;--tooltip-border: 1px solid #131218;--scrollbar-bg: #131218;--scrollbar-fg: #ae81ff66;--scrollbar-active-fg: #ae81ff;--scrollbar-hover-bg: #ae81ffbb;--activity-bar-bg: #282634;--activity-bar-fg: #f8f8f0;--activity-bar-active-bg: #131218;--activity-bar-active-fg: #f8f8f0;--resizer-bg: #ae81ff;--resizer-active-bg: #ae81ffbb;--panel-bg: #131218;--panel-fg: #f8f8f0;--panel-border: 2px solid #282634;--panel-title-bg: #8077a8;--panel-title-fg: #f8f8f0;--panel-title-border: 1px solid #634e89;--panel-title-button-bg: transparent;--panel-title-button-fg: #dcc8ff;--panel-title-button-hover-bg: #ae81ff;--panel-title-button-hover-fg: inherit;--panel-title-button-disabled-bg: inherit;--panel-title-button-disabled-fg: #888;--panel-subtitle-bg: #634e89;--panel-subtitle-fg: var(--panel-fg);--dropdown-bg: #464258;--dropdown-fg: #f8f8f0;--button-bg: #81eeff;--button-fg: #131218;--button-hover-bg: #a3f3ff;--button-hover-fg: #131218;--button-focus-outline: 1px solid #ae81ff;--button-selected-bg: #ae81ff;--button-selected-fg: #131218;--button-disabled-bg: #131218;--button-disabled-fg: #888;--button-success-bg: #64cb96;--button-success-fg: #131218;--button-success-hover-bg: #81ffbe;--button-success-hover-fg: #131218;--button-danger-bg: #cb6488;--button-danger-fg: #131218;--button-danger-hover-bg: #ff81ad;--button-danger-hover-fg: #131218;--button-outline-bg: #282634;--button-outline-fg: #f8f8f0;--button-outline-hover-bg: #282634;--button-outline-hover-fg: #81eeff;--button-outline-disabled-bg: #131218;--button-outline-disabled-fg: #888;--button-toolbar-bg: #282634;--button-toolbar-fg: #f8f8f0;--button-toolbar-hover-bg: #282634;--button-toolbar-hover-fg: #81eeff;--button-toolbar-disabled-bg: #131218;--button-toolbar-disabled-fg: #888;--button-menu-bg: transparent;--button-menu-fg: #f8f8f0;--button-menu-hover-bg: transparent;--button-menu-hover-fg: #81eeff;--button-menu-disabled-bg: transparent;--button-menu-disabled-fg: #888;--input-bg: #131218;--input-fg: #f8f8f0;--input-border: 1px solid #8077a8;--input-accent: #ae81ff;--input-hover-shadow: 1px 1px 10px 5px rgba(0, 0, 0, .2);--input-focus-outline: 1px solid #ae81ff;--input-placeholder: #8077a8;--input-disabled-bg: #131218;--input-disabled-fg: #888;--input-range-bg: #8077a8;--input-range-fg: #f8f8f0;--input-range-hover-bg: #ae81ff;--input-range-disabled-bg: #131218;--input-range-hover-shadow: 1px 1px 10px 5px rgba(0, 0, 0, .2);--input-range-handle-shadow: 1px 1px 5px 5px rgba(180, 180, 180, .2);--list-item-bg: var(--panel-bg);--list-item-fg: var(--panel-fg);--list-item-active-bg: #634e89;--list-item-active-fg: var(--list-item-fg);--list-item-hover-bg: #64cb96;--list-item-hover-fg: var(--list-item-bg);--list-item-disabled-bg: var(--list-item-bg);--list-item-disabled-fg: #888;--grid-outline: #433e56}:host{--gradient-purple-green-light: linear-gradient( 190deg, hsl(261deg 27% 42%) 0%, hsl(243deg 27% 42%) 17%, hsl(224deg 27% 42%) 33%, hsl(205deg 27% 42%) 50%, hsl(187deg 27% 42%) 67%, hsl(168deg 27% 42%) 83%, hsl(149deg 27% 42%) 100% ) 0 0 fixed;--gradient-purple-blue-medium: linear-gradient( 190deg, hsl(261deg 28% 30%) 0%, hsl(248deg 30% 31%) 17%, hsl(235deg 32% 32%) 33%, hsl(222deg 34% 33%) 50%, hsl(209deg 35% 34%) 67%, hsl(197deg 37% 35%) 83%, hsl(183deg 38% 36%) 100% ) 0 0 fixed;--gradient-purple-blue-dark: linear-gradient(10deg, #111928, #1d162a) 0 0 fixed;--gradient-cyan-blue-light: linear-gradient( 190deg, hsl(183deg 63% 33%) 0%, hsl(189deg 69% 30%) 17%, hsl(194deg 74% 27%) 33%, hsl(199deg 79% 24%) 50%, hsl(203deg 85% 21%) 67%, hsl(209deg 89% 18%) 83%, hsl(214deg 95% 15%) 100% ) 0 0 fixed;--gradient-purple-green-highlight: linear-gradient( 190deg, hsl(261deg 27% 53%) 0%, hsl(243deg 27% 52%) 17%, hsl(224deg 27% 52%) 33%, hsl(205deg 27% 51%) 50%, hsl(186deg 27% 51%) 67%, hsl(168deg 27% 50%) 83%, hsl(149deg 27% 50%) 100% ) 0 0 fixed;--gradient-purple-red: linear-gradient(90deg, #8864cb, #cb6488) 0 0 fixed;--gradient-purple-red-highlight: linear-gradient(90deg, #b187ff, #ff80ac) 0 0 fixed;--scrollbar-bg: var(--gradient-purple-blue-dark);--scrollbar-fg: var(--gradient-purple-green-light);--scrollbar-hover-fg: var(--scrollbar-fg);--scrollbar-active-fg: var(--scrollbar-fg);--activity-bar-bg: var(--gradient-purple-green-light);--resizer-bg: var(--gradient-purple-blue-medium);--resizer-active-bg: var(--gradient-purple-green-highlight);--panel-bg: var(--gradient-purple-blue-dark);--panel-title-bg: var(--gradient-purple-green-light);--panel-subtitle-bg: var(--gradient-purple-blue-medium);--button-toolbar-bg: var(--gradient-purple-blue-dark);--button-toolbar-hover-bg: var(--gradient-purple-green-light);--button-toolbar-hover-fg: #f8f8f0;--button-toolbar-disabled-bg: var(--gradient-purple-blue-dark);--button-toolbar-alt-bg: var(--gradient-purple-green-light);--button-toolbar-alt-hover-bg: var(--gradient-purple-green-highlight);--button-toolbar-alt-hover-fg: #f8f8f0;--button-toolbar-alt-disabled-bg: var(--gradient-purple-blue-dark);--dropdown-bg: var(--gradient-purple-green-light);--dropdown-fg: #f8f8f0;--dropdown-hover-bg: var(--gradient-purple-green-highlight);--dropdown-hover-fg: #f8f8f0;--dropdown-active-bg: var(--gradient-purple-blue-dark);--dropdown-active-fg: #f8f8f0;--input-range-bg: var(--gradient-purple-green-light);--list-item-hover-bg: var(--gradient-purple-green-highlight);--list-item-active-bg: var(--gradient-cyan-blue-light);--focus-overlay-bg: var(--gradient-purple-green-light);--focus-overlay-opacity: .5;--focus-overlay-fg: #f8f8f0}::-webkit-scrollbar{position:absolute;width:6px;height:6px;margin-left:-6px;background:var(--scrollbar-bg)}::-webkit-scrollbar-thumb{position:absolute;background:var(--scrollbar-fg)}::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-hover-fg)}::-webkit-scrollbar-thumb:active{background:var(--scrollbar-active-fg)}kc-ui-app{width:100%;height:100%;flex-grow:1;display:flex;flex-direction:row;overflow:hidden}label{display:block;width:100%;margin-top:.75em}input,select,textarea{all:unset;box-sizing:border-box;display:block;width:100%;max-width:100%;margin-top:.5em;font-family:inherit;border-radius:.25em;text-align:center;padding:.25em;background:var(--input-bg);color:var(--input-fg);transition:color var(--transition-time-medium) ease,box-shadow var(--transition-time-medium) ease,outline var(--transition-time-medium) ease,background var(--transition-time-medium) ease,border var(--transition-time-medium) ease}input:hover,select:hover,textarea:hover{z-index:10;box-shadow:var(--input-hover-shadow)}input:focus,select:focus,textarea:focus{z-index:10;box-shadow:none;outline:var(--input-focus-outline)}input:disabled,select:disabled,textarea:disabled{background:var(--input-disabled-bg);color:var(--input-disabled-fg)}input:disabled:hover,select:disabled:hover,textarea:disabled:hover{z-index:10;cursor:unset}input[type=color]::-webkit-color-swatch{border:1px solid transparent;border-radius:.25em}textarea{text-align:left;padding:.5em} +`;var wn=`*,*:before,*:after{box-sizing:border-box}:host{box-sizing:border-box;margin:0;display:flex;position:relative;width:100%;height:100%;color:var(--fg)}:host([loaded]) section.overlay,:host([loading]) section.overlay{display:none}:host main{display:contents}section.overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--gradient-purple-blue-dark)}section.overlay h1{display:flex;margin:0 auto;align-items:center;justify-content:center;font-size:5em;font-weight:300;text-shadow:0 0 5px var(--gradient-purple-red)}section.overlay h1 img{width:1.5em}section.overlay p{text-align:center;font-size:1.5em;max-width:50%}section.overlay strong{background:var(--gradient-purple-red-highlight);-webkit-background-clip:text;-moz-background-clip:text;background-clip:text;color:transparent}section.overlay a{color:#81eeff}section.overlay a:hover{color:#a3f3ff}section.overlay input{font-size:1.5em;color:var(--fg);background:var(--gradient-purple-red);max-width:50%}section.overlay input::placeholder{color:var(--fg)}section.overlay .link_button{color:#81eeff;background:transparent;font-size:1em;font-weight:400;text-decoration:underline;outline:none;border:none;box-sizing:border-box;transition:color var(--transition-time-medium) ease}section.overlay .link_button:focus{border:var(--button-focus-outline)}section.overlay .link_button:hover{color:var(--fg)}section.overlay p.note{color:var(--input-placeholder);font-size:1em}section.overlay p.github img{width:2em}kc-board-viewer,kc-schematic-viewer{width:100%;height:100%;flex:1}.split-horizontal{display:flex;flex-direction:column;height:100%;max-height:100%;overflow:hidden}.split-vertical{display:flex;flex-direction:row;width:100%;max-width:100%;height:100%;overflow:hidden}kc-board-app,kc-schematic-app{width:100%;height:100%;flex:1} +`;i2.sprites_url=qs;var $e=class extends N{constructor(){super();this.project=new vt;this.provideContext("project",this.project)}static{c(this,"KiCanvasShellElement")}static{this.styles=[...N.styles,new Ze(mr),new Ze(wn)]}#e;#t;initialContentCallback(){let t=new URLSearchParams(document.location.search),i=[...t.getAll("github"),...t.getAll("repo")][0];Re(async()=>{if(this.src){let n=new ut([this.src]);await this.setup_project(n);return}if(i){let n=await this.load_repo(i);if(!n)return;await this.setup_project(n);return}new l3(this,async n=>{await this.setup_project(n)})}),this.link_input.addEventListener("input",async n=>{let o=this.link_input.value,l=await this.load_repo(o);if(!l){console.error(`Invalid URL: ${o}`);return}await this.setup_project(l);let p=new URL(window.location.href);p.searchParams.set("repo",o),window.history.pushState(null,"",p)}),this.open_file_button.addEventListener("click",async n=>{c3.pick(async o=>{await this.setup_project(o)})})}async load_repo(t){return await L3.fromURLs(t)??await X3.fromURLs(t)}async setup_project(t){this.loaded=!1,this.loading=!0;try{await t.setup(),await this.project.load(t),this.project.set_active_page(this.project.first_page),this.loaded=!0}catch(r){console.error(r)}finally{this.loading=!1}}render(){return this.#e=f` + + `,this.#t=f` + + `,f` + +
+

+ + KiCanvas +

+

+ KiCanvas is an + interactive + , + browser-based + viewer for KiCad schematics and boards. You can learn + more from the + docs. It's in + alpha + so please + + report any bugs! +

+ +

+ or drag & drop your KiCad files, or +

+

+ KiCanvas is + free & open source + and supported by + community donations + with significant support from + PartsBox, + Blues, + Mithro, + Jeremy Gordon, + & + James Neal. KiCanvas runs entirely within your browser, so your + files don't ever leave your machine. +

+

+ + + +

+
+
${this.#e} ${this.#t}
+
+ `}};P([L({type:Boolean})],$e.prototype,"loading",2),P([L({type:Boolean})],$e.prototype,"loaded",2),P([L({type:String})],$e.prototype,"src",2),P([v('input[name="link"]',!0)],$e.prototype,"link_input",2),P([v('button[name="open_local"]',!0)],$e.prototype,"open_file_button",2);window.customElements.define("kc-kicanvas-shell",$e);var i3=new te("kicanvas:embedtag"),Ne=class extends N{constructor(){super();this.#e=new vt;this.custom_resolver=null;this.provideContext("project",this.#e)}static{c(this,"KiCanvasEmbedElement")}static{this.styles=[...N.styles,new Ze(mr),y` + :host { + margin: 0; + display: flex; + position: relative; + width: 100%; + max-height: 100%; + aspect-ratio: 1.414; + background-color: aqua; + color: var(--fg); + font-family: + "Nunito", ui-rounded, "Hiragino Maru Gothic ProN", + Quicksand, Comfortaa, Manjari, "Arial Rounded MT Bold", + Calibri, source-sans-pro, sans-serif; + contain: layout paint; + } + + main { + display: contents; + } + + kc-board-app, + kc-schematic-app { + width: 100%; + height: 100%; + flex: 1; + } + `]}#e;#t;#r;initialContentCallback(){this.#i(),Re(()=>{this.#s()})}async#i(){}async#s(){let t=[],r=[];this.src&&t.push(this.src);let i=0;for(let p of this.querySelectorAll("kicanvas-source"))if(p.src)t.push(p.src);else if(p.is_inline_source()){let u=`inline_${i}`;i+=1;let m=p.load_inline_source(u);m&&(i3.info(`Determined inline source ${m.name}, ${m.size} bytes`),r.push(m))}let n=t.length===0?null:new ut(t,this.custom_resolver),o=r.length===0?null:new ht(r);if(n===null&&o===null){i3.warn("No valid sources specified");return}let l=new n3([n,o]);await this.#n(l)}async#n(t){this.loaded=!1,this.loading=!0;try{await t.setup(),await this.#e.load(t),this.loaded=!0,await this.update(),this.#e.set_active_page(this.#e.root_schematic_page)}finally{this.loading=!1}}render(){if(!this.loaded)return f``;this.#e.has_schematics&&!this.#t&&(this.#t=f` + `),this.#e.has_boards&&!this.#r&&(this.#r=f` + `);let t=(this.controls??"none")=="none"||this.controlslist?.includes("nooverlay")?null:f``;return f`
+ ${this.#t} ${this.#r} ${t} +
`}};P([L({type:String})],Ne.prototype,"src",2),P([L({type:Boolean})],Ne.prototype,"loading",2),P([L({type:Boolean})],Ne.prototype,"loaded",2),P([L({type:String})],Ne.prototype,"controls",2),P([L({type:String})],Ne.prototype,"controlslist",2),P([L({type:String})],Ne.prototype,"theme",2),P([L({type:String})],Ne.prototype,"zoom",2);window.customElements.define("kicanvas-embed",Ne);var ct=class ct extends Ye{static{c(this,"KiCanvasSourceElement")}constructor(){super()}connectedCallback(){this.ariaHidden="true",this.hidden=!0,this.style.display="none",super.connectedCallback()}is_inline_source(){return this.src===null&&this.childNodes.length>0}load_inline_source(e=null){let t="";for(let o of this.childNodes)o.nodeType===Node.TEXT_NODE?t+=o.nodeValue??"":i3.warn(`kicanvas-source children ${o.nodeType} are invaild.`);t=t.trimStart();let r;if(this.name)r=this.name;else{let o=this.type??ct.determine_file_type(t);if(o===void 0){i3.warn(`Unknown file type, content: ${t.slice(0,64)}...`);return}let l=ct.get_file_ext(o);r=(e??"noname")+l}if(t.length===0){i3.warn(`kicanvas-source content ${r} is empty.`);return}let i=new Blob([t],{type:"text/plain"});return new File([i],r)}static determine_file_type(e){if(e.startsWith("(kicad_sch"))return"schematic";if(e.startsWith("(kicad_pcb"))return"board";if(e.startsWith("(kicad_wks"))return"worksheet";if(e.startsWith("{"))return"project"}static get_file_ext(e){switch(e){case"schematic":return".kicad_sch";case"board":return".kicad_pcb";case"worksheet":return".kicad_wks";case"project":return".kicad_prj"}}};P([L({type:String})],ct.prototype,"src",2),P([L({type:String})],ct.prototype,"type",2),P([L({type:String})],ct.prototype,"name",2);var Xs=ct;window.customElements.define("kicanvas-source",Xs);document.body.appendChild(f``); diff --git a/js/viewerhandler.js b/js/viewerhandler.js new file mode 100644 index 0000000..8a70137 --- /dev/null +++ b/js/viewerhandler.js @@ -0,0 +1,2 @@ +/*! For license information please see viewerhandler.js.LICENSE.txt */ +(()=>{"use strict";var e;(function(e){const{id:i,mimes:r,mimesAliases:a,component:n}=e;if(!i||""===i.trim()||"string"!=typeof i)throw new Error("The handler does not have a valid id");if(!(r&&Array.isArray(r)||a))throw new Error("Handler needs a valid mime array or mimesAliases");if(!n||"object"!=typeof n&&"function"!=typeof n)throw new Error("The handler does not have a valid component")})(e={id:"kicanvasviewer",group:"kicanvasviewer",mimes:["application/x-kicad-schematic","application/x-kicad-pcb"],component:{name:"KiCanvasInlineViewer",data:()=>({src:null,error:null,ready:!1,started:!1}),async mounted(){if(this.started)return;this.started=!0;const e=this.$attrs?.etag;if(e)try{const i=await fetch(OC.generateUrl("/apps/kicanvasviewer/resolve/"+encodeURIComponent(e)));if(!i.ok)return void(this.error="KiCanvas: could not resolve file");const r=await i.json();if(!r.fileId||!r.fileName)return void(this.error="KiCanvas: resolve returned no fileId/fileName");this.src=window.location.origin+OC.generateUrl("/apps/kicanvasviewer/file/"+encodeURIComponent(r.fileId)+"/"+encodeURIComponent(r.fileName)),await new Promise((e,i)=>{if(customElements.get("kc-kicanvas-shell"))return void e();const r=document.createElement("script");r.type="module",r.src=OC.linkTo("kicanvasviewer","js/kicanvas/kicanvas.js"),r.onload=e,r.onerror=i,document.head.appendChild(r)}),this.ready=!0,this.$forceUpdate()}catch(e){console.error(e),this.error="KiCanvas error"}else this.error="KiCanvas: no etag found"},render(e){return this.error?e("div",{style:{padding:"40px",fontSize:"20px"}},this.error):this.ready&&this.src?e("div",{style:{position:"absolute",inset:"0",zIndex:100,background:"var(--color-main-background)"}},[e("kc-kicanvas-shell",{key:this.src,attrs:{src:this.src},style:{display:"block",width:"100%",height:"100%"}})]):e("div",{style:{padding:"40px",fontSize:"20px"}},"Loading KiCanvas...")}}}),window._oca_viewer_handlers??(window._oca_viewer_handlers=new Map),window._oca_viewer_handlers.has(e.id)?console.warn(`Handler with id ${e.id} is already registered.`):window._oca_viewer_handlers.set(e.id,e)})(); \ No newline at end of file diff --git a/js/viewerhandler.js.LICENSE.txt b/js/viewerhandler.js.LICENSE.txt new file mode 100644 index 0000000..c0e8663 --- /dev/null +++ b/js/viewerhandler.js.LICENSE.txt @@ -0,0 +1,4 @@ +/*! + * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later + */ diff --git a/lib/AppInfo/Application.php b/lib/AppInfo/Application.php new file mode 100644 index 0000000..6402f49 --- /dev/null +++ b/lib/AppInfo/Application.php @@ -0,0 +1,28 @@ +registerEventListener( + LoadAdditionalScriptsEvent::class, + LoadAdditionalScriptsListener::class + ); + } + + public function boot(IBootContext $context): void { + } +} diff --git a/lib/AppInfo/LoadAdditionalScriptsListener.php b/lib/AppInfo/LoadAdditionalScriptsListener.php new file mode 100644 index 0000000..c9aec62 --- /dev/null +++ b/lib/AppInfo/LoadAdditionalScriptsListener.php @@ -0,0 +1,18 @@ +getFileById($fileId); + $name = $file->getName(); + + return new TemplateResponse('kicanvasviewer', 'viewer', [ + 'fileId' => $fileId, + 'fileName' => $name, + ]); + } + + #[NoAdminRequired] + #[NoCSRFRequired] + public function file(int $fileId, string $name): DataDisplayResponse { + $file = $this->getFileById($fileId); + + if (!preg_match('/\.(kicad_sch|kicad_pcb)$/i', $file->getName())) { + return new DataDisplayResponse('Unsupported file type', 400); + } + + $response = new DataDisplayResponse($file->getContent()); + $response->addHeader('Content-Type', 'text/plain; charset=utf-8'); + $response->addHeader('Content-Disposition', 'inline; filename="' . basename($file->getName()) . '"'); + + return $response; + } + + private function getFileById(int $fileId) { + $user = $this->userSession->getUser(); + if ($user === null) { + throw new \Exception('Not logged in'); + } + + $userFolder = $this->rootFolder->getUserFolder($user->getUID()); + $nodes = $userFolder->getById($fileId); + + if (empty($nodes)) { + throw new \Exception('File not found'); + } + + return $nodes[0]; + } + + #[NoAdminRequired] + #[NoCSRFRequired] + public function resolve(string $etag): JSONResponse { + $user = $this->userSession->getUser(); + + if ($user === null) { + return new JSONResponse(['error' => 'not logged in'], 401); + } + + $userFolder = $this->rootFolder->getUserFolder($user->getUID()); + + $nodes = array_merge( + $userFolder->searchByMime('application/x-kicad-schematic'), + $userFolder->searchByMime('application/x-kicad-pcb') + ); + + foreach ($nodes as $node) { + if ($node->getEtag() === $etag) { + return new JSONResponse([ + 'fileId' => $node->getId(), + 'fileName' => $node->getName(), + 'mime' => $node->getMimeType(), + ]); + } + } + + return new JSONResponse(['error' => 'not found'], 404); + } +} diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..980f6a7 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,2125 @@ +{ + "name": "kicanvasviewer", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "dependencies": { + "@nextcloud/files": "^4.0.0", + "@nextcloud/viewer": "^1.0.0" + }, + "devDependencies": { + "webpack": "^5.91.0", + "webpack-cli": "^5.1.4" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz", + "integrity": "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==", + "peer": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz", + "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==", + "peer": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.7.tgz", + "integrity": "sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==", + "peer": true, + "dependencies": { + "@babel/types": "^7.29.7" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/types": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.7.tgz", + "integrity": "sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==", + "peer": true, + "dependencies": { + "@babel/helper-string-parser": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@buttercup/fetch": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@buttercup/fetch/-/fetch-0.2.1.tgz", + "integrity": "sha512-sCgECOx8wiqY8NN1xN22BqqKzXYIG2AicNLlakOAI4f0WgyLVUbAigMf8CZhBtJxdudTcB1gD5lciqi44jwJvg==", + "optionalDependencies": { + "node-fetch": "^3.3.0" + } + }, + "node_modules/@discoveryjs/json-ext": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "dev": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@file-type/xml": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/@file-type/xml/-/xml-0.4.4.tgz", + "integrity": "sha512-NhCyXoHlVZ8TqM476hyzwGJ24+D5IPSaZhmrPj7qXnEVb3q6jrFzA3mM9TBpknKSI9EuQeGTKRg2DXGUwvBBoQ==", + "dependencies": { + "sax": "^1.4.1", + "strtok3": "^10.3.4" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.11", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz", + "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@nextcloud/auth": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@nextcloud/auth/-/auth-2.6.0.tgz", + "integrity": "sha512-VkT87+9UqpPi7O36bVEE4/MxWF8d90VQcuMlvKltsZyLSLkEGrPXgowtD75Y54k60/8SR6mXbeqBwapi8dDUbA==", + "dependencies": { + "@nextcloud/browser-storage": "^0.5.0", + "@nextcloud/event-bus": "^3.3.3", + "@nextcloud/router": "^3.1.0" + }, + "engines": { + "node": "^20.0.0 || ^22.0.0 || ^24.0.0" + } + }, + "node_modules/@nextcloud/browser-storage": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@nextcloud/browser-storage/-/browser-storage-0.5.0.tgz", + "integrity": "sha512-usYr4GlJQlK3hgZURvklqWb9ivi7sgsSuFqXrs7s4hl1LTS4enzPrnkQumm6nRsQruf0ITS+OBsK+oELEbvYPA==", + "engines": { + "node": "^24 || ^22 || ^20" + } + }, + "node_modules/@nextcloud/capabilities": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@nextcloud/capabilities/-/capabilities-1.2.1.tgz", + "integrity": "sha512-snZ0/910zzwN6PDsIlx2Uvktr1S5x0ClhDUnfPlCj7ntNvECzuVHNY5wzby22LIkc+9ZjaDKtCwuCt2ye+9p/Q==", + "dependencies": { + "@nextcloud/initial-state": "^3.0.0" + }, + "engines": { + "node": "^20.0.0 || ^22.0.0 || ^24.0.0" + } + }, + "node_modules/@nextcloud/event-bus": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/@nextcloud/event-bus/-/event-bus-3.3.3.tgz", + "integrity": "sha512-zIfvKmUGkXpVzRKoXrcO9hkoiKDm65fqNxy/XIbIxrQhZByPq3gDkjBpnu3V5Gs8JdYwa73R8DjzV9oH8HYhIg==", + "dependencies": { + "@types/semver": "^7.7.0", + "semver": "^7.7.2" + }, + "engines": { + "node": "^20 || ^22 || ^24" + } + }, + "node_modules/@nextcloud/files": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@nextcloud/files/-/files-4.0.0.tgz", + "integrity": "sha512-TmecnZIS+PGWGtRh7RpGEboCT4K6iTbHULUcfR6hs3eEzjDVsCc1Ldf8popGY/70lbpdlfYle8xbXnPIo3qaXA==", + "dependencies": { + "@nextcloud/auth": "^2.5.3", + "@nextcloud/capabilities": "^1.2.1", + "@nextcloud/l10n": "^3.4.1", + "@nextcloud/logger": "^3.0.3", + "@nextcloud/paths": "^3.0.0", + "@nextcloud/router": "^3.1.0", + "@nextcloud/sharing": "^0.3.0", + "is-svg": "^6.1.0", + "typescript-event-target": "^1.1.2", + "webdav": "^5.9.0" + }, + "engines": { + "node": "^24.0.0" + } + }, + "node_modules/@nextcloud/initial-state": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@nextcloud/initial-state/-/initial-state-3.0.0.tgz", + "integrity": "sha512-cV+HBdkQJGm8FxkBI5rFT/FbMNWNBvpbj6OPrg4Ae4YOOsQ15CL8InPOAw1t4XkOkQK2NEdUGQLVUz/19wXbdQ==", + "engines": { + "node": "^20.0.0 || ^22.0.0 || ^24.0.0" + } + }, + "node_modules/@nextcloud/l10n": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/@nextcloud/l10n/-/l10n-3.4.1.tgz", + "integrity": "sha512-aTFinTcKiK2gEXwLgutXekpZZ8/v/4QiC8C3QCLH5m0o+WtxsBC+fqV142ebC/rfDnzCLhY4ZtswSu8bFbZocg==", + "dependencies": { + "@nextcloud/router": "^3.0.1", + "@nextcloud/typings": "^1.9.1", + "@types/escape-html": "^1.0.4", + "dompurify": "^3.2.6", + "escape-html": "^1.0.3" + }, + "engines": { + "node": "^20 || ^22 || ^24" + } + }, + "node_modules/@nextcloud/logger": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@nextcloud/logger/-/logger-3.0.3.tgz", + "integrity": "sha512-TcbVRL4/O5ffI1RXFmQAFD3gwwT15AAdr1770x+RNqVvfBdoGVyhzOwCIyA5Vfc3fA1iJXFa+rE6buJZSoqlcw==", + "dependencies": { + "@nextcloud/auth": "^2.5.3" + }, + "engines": { + "node": "^20.0.0 || ^22.0.0 || ^24.0.0" + } + }, + "node_modules/@nextcloud/paths": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@nextcloud/paths/-/paths-3.1.0.tgz", + "integrity": "sha512-vtFYA/kthaUDzu6KejTOL1OwnOy7/yynq5zdB/UBpYacAWjUX5Ddh4OMWx3rEavkBJ9/QGhrFryNJLjNfe8OQA==", + "engines": { + "node": "^20.0.0 || ^22.0.0 || ^24.0.0" + } + }, + "node_modules/@nextcloud/router": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@nextcloud/router/-/router-3.1.0.tgz", + "integrity": "sha512-e4dkIaxRSwdZJlZFpn9x03QgBn/Sa2hN1hp/BA7+AbzykmSAlKuWfdmX8j/8ewrLpQwYmZR23IZO9XwpJXq2Uw==", + "dependencies": { + "@nextcloud/typings": "^1.10.0" + }, + "engines": { + "node": "^20.0.0 || ^22.0.0 || ^24.0.0" + } + }, + "node_modules/@nextcloud/sharing": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@nextcloud/sharing/-/sharing-0.3.0.tgz", + "integrity": "sha512-kV7qeUZvd1fTKeFyH+W5Qq5rNOqG9rLATZM3U9MBxWXHJs3OxMqYQb8UQ3NYONzsX3zDGJmdQECIGHm1ei2sCA==", + "dependencies": { + "@nextcloud/initial-state": "^3.0.0", + "is-svg": "^6.1.0" + }, + "engines": { + "node": "^20.0.0 || ^22.0.0 || ^24.0.0" + }, + "optionalDependencies": { + "@nextcloud/files": "^3.12.0" + } + }, + "node_modules/@nextcloud/sharing/node_modules/@nextcloud/files": { + "version": "3.12.2", + "resolved": "https://registry.npmjs.org/@nextcloud/files/-/files-3.12.2.tgz", + "integrity": "sha512-vBo8tf3Xh6efiF8CrEo3pKj9AtvAF6RdDGO1XKL65IxV8+UUd9Uxl2lUExHlzoDRRczCqfGfaWfRRaFhYqce5Q==", + "optional": true, + "dependencies": { + "@nextcloud/auth": "^2.5.3", + "@nextcloud/capabilities": "^1.2.1", + "@nextcloud/l10n": "^3.4.1", + "@nextcloud/logger": "^3.0.3", + "@nextcloud/paths": "^3.0.0", + "@nextcloud/router": "^3.1.0", + "@nextcloud/sharing": "^0.3.0", + "cancelable-promise": "^4.3.1", + "is-svg": "^6.1.0", + "typescript-event-target": "^1.1.1", + "webdav": "^5.8.0" + }, + "engines": { + "node": "^20.0.0 || ^22.0.0 || ^24.0.0" + } + }, + "node_modules/@nextcloud/typings": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@nextcloud/typings/-/typings-1.10.0.tgz", + "integrity": "sha512-SMC42rDjOH3SspPTLMZRv76ZliHpj2JJkF8pGLP8l1QrVTZxE47Qz5qeKmbj2VL+dRv2e/NgixlAFmzVnxkhqg==", + "dependencies": { + "@types/jquery": "3.5.16" + }, + "engines": { + "node": "^20.0.0 || ^22.0.0 || ^24.0.0" + } + }, + "node_modules/@nextcloud/viewer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@nextcloud/viewer/-/viewer-1.0.0.tgz", + "integrity": "sha512-AaVXh+KyJ0q28AaqjBwDjjEuVB+v1GarIuuLCO2nfpkg/ekngQw25rmb4PzKVvbN8N35nb92GpQXBpG1ZtBrzg==", + "peerDependencies": { + "vue": "^2.7.16" + } + }, + "node_modules/@nodable/entities": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@nodable/entities/-/entities-2.1.1.tgz", + "integrity": "sha512-Pig3HxDIoMgjdEH8OCf/dkcTmLFjJRjWuq8jSnklu284/TKOPibSRERmOykiwmyXTtv61mP+44f3GMx0tLAyjg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/nodable" + } + ] + }, + "node_modules/@tokenizer/token": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", + "integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==" + }, + "node_modules/@types/escape-html": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@types/escape-html/-/escape-html-1.0.4.tgz", + "integrity": "sha512-qZ72SFTgUAZ5a7Tj6kf2SHLetiH5S6f8G5frB2SPQ3EyF02kxdyBFf4Tz4banE3xCgGnKgWLt//a6VuYHKYJTg==" + }, + "node_modules/@types/estree": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz", + "integrity": "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==", + "dev": true + }, + "node_modules/@types/jquery": { + "version": "3.5.16", + "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.16.tgz", + "integrity": "sha512-bsI7y4ZgeMkmpG9OM710RRzDFp+w4P1RGiIt30C1mSBT+ExCleeh4HObwgArnDFELmRrOpXgSYN9VF1hj+f1lw==", + "dependencies": { + "@types/sizzle": "*" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true + }, + "node_modules/@types/node": { + "version": "25.9.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-25.9.2.tgz", + "integrity": "sha512-G05zqtJhcDLb8uslf5EjCxXg9G1KQxiV8OS0R26IC//Eoyitzqe8z37I7cqvnZlrlSfgocQRfSn/AHBZJJFyGw==", + "dev": true, + "dependencies": { + "undici-types": ">=7.24.0 <7.24.7" + } + }, + "node_modules/@types/semver": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-FmgJfu+MOcQ370SD0ev7EI8TlCAfKYU+B4m5T3yXc1CiRN94g/SZPtsCkk506aUDtlMnFZvasDwHHUcZUEaYuA==" + }, + "node_modules/@types/sizzle": { + "version": "2.3.10", + "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.10.tgz", + "integrity": "sha512-TC0dmN0K8YcWEAEfiPi5gJP14eJe30TTGjkvek3iM/1NdHHsdCA/Td6GvNndMOo/iSnIsZ4HuuhrYPDAmbxzww==" + }, + "node_modules/@types/trusted-types": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", + "optional": true + }, + "node_modules/@vue/compiler-sfc": { + "version": "2.7.16", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-2.7.16.tgz", + "integrity": "sha512-KWhJ9k5nXuNtygPU7+t1rX6baZeqOYLEforUPjgNDBnLicfHCoi48H87Q8XyLZOrNNsmhuwKqtpDQWjEFe6Ekg==", + "peer": true, + "dependencies": { + "@babel/parser": "^7.23.5", + "postcss": "^8.4.14", + "source-map": "^0.6.1" + }, + "optionalDependencies": { + "prettier": "^1.18.2 || ^2.0.0" + } + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", + "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", + "dev": true, + "dependencies": { + "@webassemblyjs/helper-numbers": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", + "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", + "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", + "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", + "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", + "dev": true, + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.13.2", + "@webassemblyjs/helper-api-error": "1.13.2", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", + "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", + "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/wasm-gen": "1.14.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", + "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", + "dev": true, + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", + "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", + "dev": true, + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", + "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", + "dev": true + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", + "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/helper-wasm-section": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-opt": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1", + "@webassemblyjs/wast-printer": "1.14.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", + "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", + "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", + "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-api-error": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", + "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webpack-cli/configtest": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.1.1.tgz", + "integrity": "sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==", + "dev": true, + "engines": { + "node": ">=14.15.0" + }, + "peerDependencies": { + "webpack": "5.x.x", + "webpack-cli": "5.x.x" + } + }, + "node_modules/@webpack-cli/info": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-2.0.2.tgz", + "integrity": "sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==", + "dev": true, + "engines": { + "node": ">=14.15.0" + }, + "peerDependencies": { + "webpack": "5.x.x", + "webpack-cli": "5.x.x" + } + }, + "node_modules/@webpack-cli/serve": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.5.tgz", + "integrity": "sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==", + "dev": true, + "engines": { + "node": ">=14.15.0" + }, + "peerDependencies": { + "webpack": "5.x.x", + "webpack-cli": "5.x.x" + }, + "peerDependenciesMeta": { + "webpack-dev-server": { + "optional": true + } + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "node_modules/acorn": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", + "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-phases": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/acorn-import-phases/-/acorn-import-phases-1.0.4.tgz", + "integrity": "sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==", + "dev": true, + "engines": { + "node": ">=10.13.0" + }, + "peerDependencies": { + "acorn": "^8.14.0" + } + }, + "node_modules/ajv": { + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz", + "integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/base-64": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/base-64/-/base-64-1.0.0.tgz", + "integrity": "sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg==" + }, + "node_modules/baseline-browser-mapping": { + "version": "2.10.34", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.34.tgz", + "integrity": "sha512-IMDedajPifLnHNY0X9n8hKxRTQ6/eTHwr5bDo04WnuqxyKw6LYtQywCuuqPZwhl3aBXMvQpJov42GLCwRRdQzw==", + "dev": true, + "bin": { + "baseline-browser-mapping": "dist/cli.cjs" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/brace-expansion": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.1.tgz", + "integrity": "sha512-WR1cURNjuvBLMZBMbqM0UoE+WAfdUcEV1ccD8PVBVOI+Z3ND4+SZbN8RsfT2bMuG1qwz5RFvPukSZm5fF2D5eA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/browserslist": { + "version": "4.28.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.2.tgz", + "integrity": "sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "baseline-browser-mapping": "^2.10.12", + "caniuse-lite": "^1.0.30001782", + "electron-to-chromium": "^1.5.328", + "node-releases": "^2.0.36", + "update-browserslist-db": "^1.2.3" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/byte-length/-/byte-length-1.0.2.tgz", + "integrity": "sha512-ovBpjmsgd/teRmgcPh23d4gJvxDoXtAzEL9xTfMU8Yc2kqCDb7L9jAG0XHl1nzuGl+h3ebCIF1i62UFyA9V/2Q==" + }, + "node_modules/cancelable-promise": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/cancelable-promise/-/cancelable-promise-4.3.1.tgz", + "integrity": "sha512-A/8PwLk/T7IJDfUdQ68NR24QHa8rIlnN/stiJEBo6dmVUkD4K14LswG0w3VwdeK/o7qOwRUR1k2MhK5Rpy2m7A==", + "optional": true + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001797", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001797.tgz", + "integrity": "sha512-l8xKG+gwAIExZGl9FrF7KUwuOmk6wbEPC9Xoy/RtnWv1XG0Q4LFlagaLpUv3Kiza3W/wm27zy0yWJEieYKAP6w==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/charenc": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", + "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==", + "engines": { + "node": "*" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", + "dev": true, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true + }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypt": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", + "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==", + "engines": { + "node": "*" + } + }, + "node_modules/csstype": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", + "peer": true + }, + "node_modules/data-uri-to-buffer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", + "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", + "engines": { + "node": ">= 12" + } + }, + "node_modules/dompurify": { + "version": "3.4.8", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.4.8.tgz", + "integrity": "sha512-yb1cEmaOum7wFvOCSQxyfgVlv5D47Rc30iZWoMpbDIWTnJ6grDDQyu2KFJzB2k7u0pMuJcQ1zphH//fFnw2tjQ==", + "optionalDependencies": { + "@types/trusted-types": "^2.0.7" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.368", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.368.tgz", + "integrity": "sha512-7RckJJK4uESJF9PxvfMWd3TGqIiieUTG4HxnKaKuIpGbcr+r2ZEB3g2gAhCP3Fqm42vJSzLfgab9eva/C4/XVw==", + "dev": true + }, + "node_modules/enhanced-resolve": { + "version": "5.23.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.23.0.tgz", + "integrity": "sha512-yJN/BOOLxcOW2aQgeif9mSnaUB8KtvmMMp56oA1kx1CRfBKbhZm2pJ+NBY+3eOboHxix8lfjWpHE0Ei5U8RbSA==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.3.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/entities": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/envinfo": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.21.0.tgz", + "integrity": "sha512-Lw7I8Zp5YKHFCXL7+Dz95g4CcbMEpgvqZNNq3AmlT5XAV6CgAAk6gyAMqn2zjw08K9BHfcNuKrMiCPLByGafow==", + "dev": true, + "bin": { + "envinfo": "dist/cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-module-lexer": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.1.0.tgz", + "integrity": "sha512-n27zTYMjYu1aj4MjCWzSP7G9r75utsaoc8m61weK+W8JMBGGQybd43GstCXZ3WNmSFtGT9wi59qQTW6mhTR5LQ==", + "dev": true + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.2.tgz", + "integrity": "sha512-rVjf7ArG3LTk+FS6Yw81V1DLuZl1bRbNrev6Tmd/9RaroeeRRJhAt7jg/6YFxbvAQXUCavSoZhPPj6oOx+5KjQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ] + }, + "node_modules/fast-xml-builder": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fast-xml-builder/-/fast-xml-builder-1.2.0.tgz", + "integrity": "sha512-00aAWieqff+ZJhsXA4g1g7M8k+7AYoMUUHF+/zFb5U6Uv/P0Vl4QZo84/IcufzYalLuEj9928bXN9PbbFzMF0Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "dependencies": { + "path-expression-matcher": "^1.5.0", + "xml-naming": "^0.1.0" + } + }, + "node_modules/fast-xml-parser": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-5.8.0.tgz", + "integrity": "sha512-6bIM7fsJxeo3uXv7OncQYsBAMPJ7V16Slahl/6M98C/i2q+vB1+4a0MtrvYwDFEUrwDSbAmeLDRXsOBwrL7yAg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "dependencies": { + "@nodable/entities": "^2.1.0", + "fast-xml-builder": "^1.2.0", + "path-expression-matcher": "^1.5.0", + "strnum": "^2.3.0", + "xml-naming": "^0.1.0" + }, + "bin": { + "fxparser": "src/cli/cli.js" + } + }, + "node_modules/fastest-levenshtein": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "dev": true, + "engines": { + "node": ">= 4.9.1" + } + }, + "node_modules/fetch-blob": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", + "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "paypal", + "url": "https://paypal.me/jimmywarting" + } + ], + "dependencies": { + "node-domexception": "^1.0.0", + "web-streams-polyfill": "^3.0.3" + }, + "engines": { + "node": "^12.20 || >= 14.13" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true, + "bin": { + "flat": "cli.js" + } + }, + "node_modules/formdata-polyfill": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", + "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", + "dependencies": { + "fetch-blob": "^3.1.2" + }, + "engines": { + "node": ">=12.20.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/hasown": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.4.tgz", + "integrity": "sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hot-patcher": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/hot-patcher/-/hot-patcher-2.0.1.tgz", + "integrity": "sha512-ECg1JFG0YzehicQaogenlcs2qg6WsXQsxtnbr1i696u5tLUjtJdQAh0u2g0Q5YV45f263Ta1GnUJsc8WIfJf4Q==" + }, + "node_modules/import-local": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", + "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", + "dev": true, + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/interpret": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz", + "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "node_modules/is-core-module": { + "version": "2.16.2", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.2.tgz", + "integrity": "sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA==", + "dev": true, + "dependencies": { + "hasown": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-svg": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-6.1.0.tgz", + "integrity": "sha512-i7YPdvYuSCYcaLQrKwt8cvKTlwHcdA6Hp8N9SO3Q5jIzo8x6kH3N47W0BvPP7NdxVBmIHx7X9DK36czYYW7lHg==", + "dependencies": { + "@file-type/xml": "^0.4.3" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/layerr": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/layerr/-/layerr-3.0.0.tgz", + "integrity": "sha512-tv754Ki2dXpPVApOrjTyRo4/QegVb9eVFq4mjqp4+NM5NaX7syQvN5BBNfV/ZpAHCEHV24XdUVrBAoka4jt3pA==" + }, + "node_modules/loader-runner": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.2.tgz", + "integrity": "sha512-DFEqQ3ihfS9blba08cLfYf1NRAIEm+dDjic073DRDc3/JspI/8wYmtDsHwd3+4hwvdxSK7PGaElfTmm0awWJ4w==", + "dev": true, + "engines": { + "node": ">=6.11.5" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/md5": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", + "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", + "dependencies": { + "charenc": "0.0.2", + "crypt": "0.0.2", + "is-buffer": "~1.1.6" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimatch": { + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz", + "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==", + "dependencies": { + "brace-expansion": "^2.0.2" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/nanoid": { + "version": "3.3.12", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.12.tgz", + "integrity": "sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "peer": true, + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "node_modules/nested-property": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/nested-property/-/nested-property-4.0.0.tgz", + "integrity": "sha512-yFehXNWRs4cM0+dz7QxCd06hTbWbSkV0ISsqBfkntU6TOY4Qm3Q88fRRLOddkGh2Qq6dZvnKVAahfhjcUvLnyA==" + }, + "node_modules/node-domexception": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", + "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", + "deprecated": "Use your platform's native DOMException instead", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "github", + "url": "https://paypal.me/jimmywarting" + } + ], + "engines": { + "node": ">=10.5.0" + } + }, + "node_modules/node-fetch": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", + "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", + "dependencies": { + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.4", + "formdata-polyfill": "^4.0.10" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/node-fetch" + } + }, + "node_modules/node-releases": { + "version": "2.0.47", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.47.tgz", + "integrity": "sha512-Uzmd6LXpouKo8EUK68IjH4+E01w/hXyV3R3g/geCJo+rXLNfh1xucB+LOzYEOQPSiUK3h/xZf0cQGcSsmyL2Og==", + "dev": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-expression-matcher": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/path-expression-matcher/-/path-expression-matcher-1.5.0.tgz", + "integrity": "sha512-cbrerZV+6rvdQrrD+iGMcZFEiiSrbv9Tfdkvnusy6y0x0GKBXREFg/Y65GhIfm0tnLntThhzCnfKwp1WRjeCyQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-posix": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/path-posix/-/path-posix-1.0.0.tgz", + "integrity": "sha512-1gJ0WpNIiYcQydgg3Ed8KzvIqTsDpNwq+cjBCssvBtuTWjEqY1AW+i+OepiEMqDCzyro9B2sLAe4RBPajMYFiA==" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/postcss": { + "version": "8.5.15", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.15.tgz", + "integrity": "sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "peer": true, + "dependencies": { + "nanoid": "^3.3.12", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "optional": true, + "peer": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" + }, + "node_modules/rechoir": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", + "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", + "dev": true, + "dependencies": { + "resolve": "^1.20.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" + }, + "node_modules/resolve": { + "version": "1.22.12", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.12.tgz", + "integrity": "sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "is-core-module": "^2.16.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/sax": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.6.0.tgz", + "integrity": "sha512-6R3J5M4AcbtLUdZmRv2SygeVaM7IhrLXu9BmnOGmmACak8fiUtOsYNWUS4uK7upbmHIBbLBeFeI//477BKLBzA==", + "engines": { + "node": ">=11.0.0" + } + }, + "node_modules/schema-utils": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.3.tgz", + "integrity": "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/semver": { + "version": "7.8.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.2.tgz", + "integrity": "sha512-c8jsqUZm3omBOI66G90z1Dyw5z622G8oLG+omfsHBJf3CWQTlOcwOjvOG6wtiNfW6anKm/eA39LMwMtMez2TiQ==", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/strnum": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/strnum/-/strnum-2.3.0.tgz", + "integrity": "sha512-ums3KNd42PGyx5xaoVTO1mjU1bH3NpY4vsrVlnv9PNGqQj8wd7rJ6nEypLrJ7z5vxK5RP0yMLo6J/Gsm62DI5Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ] + }, + "node_modules/strtok3": { + "version": "10.3.5", + "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-10.3.5.tgz", + "integrity": "sha512-ki4hZQfh5rX0QDLLkOCj+h+CVNkqmp/CMf8v8kZpkNVK6jGQooMytqzLZYUVYIZcFZ6yDB70EfD8POcFXiF5oA==", + "dependencies": { + "@tokenizer/token": "^0.3.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, + "node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tapable": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.3.tgz", + "integrity": "sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/terser": { + "version": "5.48.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.48.0.tgz", + "integrity": "sha512-J/9An6vs9Us6wKRriSFXBWdRZapREHqFzdNUKk0pmu804EMR6dr6winwo7e5JDxN4xahxQsuysyYFwlwj4XN/Q==", + "dev": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.15.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.6.1.tgz", + "integrity": "sha512-201R5j+sJpK8nFWwKVyNfZot8FaJbLZDq5evriVzbV1wDtSXDjRUDRfJzHpAaxFDMEhsZL1QkeqM61wgsS3KaQ==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.25", + "jest-worker": "^27.4.5", + "schema-utils": "^4.3.0", + "terser": "^5.31.1" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@minify-html/node": { + "optional": true + }, + "@swc/core": { + "optional": true + }, + "@swc/css": { + "optional": true + }, + "@swc/html": { + "optional": true + }, + "clean-css": { + "optional": true + }, + "cssnano": { + "optional": true + }, + "csso": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "html-minifier-terser": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "postcss": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/typescript-event-target": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/typescript-event-target/-/typescript-event-target-1.1.2.tgz", + "integrity": "sha512-TvkrTUpv7gCPlcnSoEwUVUBwsdheKm+HF5u2tPAKubkIGMfovdSizCTaZRY/NhR8+Ijy8iZZUapbVQAsNrkFrw==" + }, + "node_modules/undici-types": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.24.6.tgz", + "integrity": "sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg==", + "dev": true + }, + "node_modules/update-browserslist-db": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", + "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/url-join": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/url-join/-/url-join-5.0.0.tgz", + "integrity": "sha512-n2huDr9h9yzd6exQVnH/jU5mr+Pfx08LRXXZhkLLetAMESRj+anQsTAh940iMrIetKAmry9coFuZQ2jY8/p3WA==", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/vue": { + "version": "2.7.16", + "resolved": "https://registry.npmjs.org/vue/-/vue-2.7.16.tgz", + "integrity": "sha512-4gCtFXaAA3zYZdTp5s4Hl2sozuySsgz4jy1EnpBHNfpMa9dK1ZCG7viqBPCwXtmgc8nHqUsAu3G4gtmXkkY3Sw==", + "deprecated": "Vue 2 has reached EOL and is no longer actively maintained. See https://v2.vuejs.org/eol/ for more details.", + "peer": true, + "dependencies": { + "@vue/compiler-sfc": "2.7.16", + "csstype": "^3.1.0" + } + }, + "node_modules/watchpack": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.5.1.tgz", + "integrity": "sha512-Zn5uXdcFNIA1+1Ei5McRd+iRzfhENPCe7LeABkJtNulSxjma+l7ltNx55BWZkRlwRnpOgHqxnjyaDgJnNXnqzg==", + "dev": true, + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/web-streams-polyfill": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", + "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/webdav": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/webdav/-/webdav-5.10.0.tgz", + "integrity": "sha512-fVPuRLtcduVGvSO7Tn/6TQCzIvI/g6BO/+xPRctCvi/GytYpjn4czxWbh4HsArsdom9qz9BI63k9/v2HBUui1A==", + "dependencies": { + "@buttercup/fetch": "^0.2.1", + "base-64": "^1.0.0", + "byte-length": "^1.0.2", + "entities": "^6.0.1", + "fast-xml-parser": "^5.7.2", + "hot-patcher": "^2.0.1", + "layerr": "^3.0.0", + "md5": "^2.3.0", + "minimatch": "^9.0.9", + "nested-property": "^4.0.0", + "node-fetch": "^3.3.2", + "path-posix": "^1.0.0", + "url-join": "^5.0.0", + "url-parse": "^1.5.10" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/webpack": { + "version": "5.107.2", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.107.2.tgz", + "integrity": "sha512-v7RhXaJbpMlV0D7hC7lb2EbnxkoeUqf9qhKr6lozx3Q48pmFrqqNRmZFUEGmi7pSwm6fCQ2H1IjvCkHqdpVdjQ==", + "dev": true, + "dependencies": { + "@types/estree": "^1.0.8", + "@types/json-schema": "^7.0.15", + "@webassemblyjs/ast": "^1.14.1", + "@webassemblyjs/wasm-edit": "^1.14.1", + "@webassemblyjs/wasm-parser": "^1.14.1", + "acorn": "^8.16.0", + "acorn-import-phases": "^1.0.3", + "browserslist": "^4.28.1", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.22.0", + "es-module-lexer": "^2.1.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.11", + "loader-runner": "^4.3.2", + "mime-db": "^1.54.0", + "neo-async": "^2.6.2", + "schema-utils": "^4.3.3", + "tapable": "^2.3.0", + "terser-webpack-plugin": "^5.5.0", + "watchpack": "^2.5.1", + "webpack-sources": "^3.5.0" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-cli": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.1.4.tgz", + "integrity": "sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==", + "dev": true, + "dependencies": { + "@discoveryjs/json-ext": "^0.5.0", + "@webpack-cli/configtest": "^2.1.1", + "@webpack-cli/info": "^2.0.2", + "@webpack-cli/serve": "^2.0.5", + "colorette": "^2.0.14", + "commander": "^10.0.1", + "cross-spawn": "^7.0.3", + "envinfo": "^7.7.3", + "fastest-levenshtein": "^1.0.12", + "import-local": "^3.0.2", + "interpret": "^3.1.1", + "rechoir": "^0.8.0", + "webpack-merge": "^5.7.3" + }, + "bin": { + "webpack-cli": "bin/cli.js" + }, + "engines": { + "node": ">=14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "5.x.x" + }, + "peerDependenciesMeta": { + "@webpack-cli/generators": { + "optional": true + }, + "webpack-bundle-analyzer": { + "optional": true + }, + "webpack-dev-server": { + "optional": true + } + } + }, + "node_modules/webpack-cli/node_modules/commander": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "dev": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/webpack-merge": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz", + "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", + "dev": true, + "dependencies": { + "clone-deep": "^4.0.1", + "flat": "^5.0.2", + "wildcard": "^2.0.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/webpack-sources": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.5.0.tgz", + "integrity": "sha512-HPuy+uuoTCaaoEoI1LQ3JN9+vrPBvEesnnX1jADHy728cHSMlq4wUc4afYqahq2B1mhQVZxCXOkNTnXltr+2vQ==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wildcard": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", + "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", + "dev": true + }, + "node_modules/xml-naming": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/xml-naming/-/xml-naming-0.1.0.tgz", + "integrity": "sha512-k8KO9hrMyNk6tUWqUfkTEZbezRRpONVOzUTnc97VnCvyj6Tf9lyUR9EDAIeiVLv56jsMcoXEwjW8Kv5yPY52lw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "engines": { + "node": ">=16.0.0" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..e32669a --- /dev/null +++ b/package.json @@ -0,0 +1,13 @@ +{ + "scripts": { + "build": "webpack --mode production" + }, + "dependencies": { + "@nextcloud/files": "^4.0.0", + "@nextcloud/viewer": "^1.0.0" + }, + "devDependencies": { + "webpack": "^5.91.0", + "webpack-cli": "^5.1.4" + } +} diff --git a/src/viewerhandler.js b/src/viewerhandler.js new file mode 100644 index 0000000..ee53214 --- /dev/null +++ b/src/viewerhandler.js @@ -0,0 +1,127 @@ +import { registerHandler } from '@nextcloud/viewer' + +function loadKiCanvasScript() { + return new Promise((resolve, reject) => { + if (customElements.get('kc-kicanvas-shell')) { + resolve() + return + } + + const script = document.createElement('script') + script.type = 'module' + script.src = OC.linkTo('kicanvasviewer', 'js/kicanvas/kicanvas.js') + script.onload = resolve + script.onerror = reject + document.head.appendChild(script) + }) +} + +const KiCanvasInlineViewer = { + name: 'KiCanvasInlineViewer', + + data() { + return { + src: null, + error: null, + ready: false, + started: false, + } + }, + + async mounted() { + if (this.started) { + return + } + this.started = true + + const etag = this.$attrs?.etag + if (!etag) { + this.error = 'KiCanvas: no etag found' + return + } + + try { + const res = await fetch( + OC.generateUrl('/apps/kicanvasviewer/resolve/' + encodeURIComponent(etag)) + ) + + if (!res.ok) { + this.error = 'KiCanvas: could not resolve file' + return + } + + const data = await res.json() + + if (!data.fileId || !data.fileName) { + this.error = 'KiCanvas: resolve returned no fileId/fileName' + return + } + + this.src = window.location.origin + OC.generateUrl( + '/apps/kicanvasviewer/file/' + + encodeURIComponent(data.fileId) + + '/' + + encodeURIComponent(data.fileName) + ) + + await loadKiCanvasScript() + + this.ready = true + this.$forceUpdate() + } catch (e) { + console.error(e) + this.error = 'KiCanvas error' + } + }, + + render(h) { + if (this.error) { + return h('div', { + style: { + padding: '40px', + fontSize: '20px', + }, + }, this.error) + } + + if (!this.ready || !this.src) { + return h('div', { + style: { + padding: '40px', + fontSize: '20px', + }, + }, 'Loading KiCanvas...') + } + + return h('div', { + style: { + position: 'absolute', + inset: '0', + zIndex: 100, + background: 'var(--color-main-background)', + }, + }, [ + h('kc-kicanvas-shell', { + key: this.src, + attrs: { + src: this.src, + }, + style: { + display: 'block', + width: '100%', + height: '100%', + }, + }), + ]) + }, +} + +registerHandler({ + id: 'kicanvasviewer', + group: 'kicanvasviewer', + mimes: [ + 'application/x-kicad-schematic', + 'application/x-kicad-pcb', + ], + component: KiCanvasInlineViewer, +}) diff --git a/templates/viewer.php b/templates/viewer.php new file mode 100644 index 0000000..cc554df --- /dev/null +++ b/templates/viewer.php @@ -0,0 +1,22 @@ +getURLGenerator()->linkToRoute( + 'kicanvasviewer.viewer.file', + [ + 'fileId' => $fileId, + 'name' => $fileName, + ] +); +?> + +
+ +
diff --git a/webpack.config.js b/webpack.config.js new file mode 100644 index 0000000..3a037bf --- /dev/null +++ b/webpack.config.js @@ -0,0 +1,17 @@ +const path = require('path') + +module.exports = { + entry: { + viewerhandler: './src/viewerhandler.js', + }, + output: { + path: path.resolve(__dirname, 'js'), + filename: '[name].js', + clean: false, + }, + resolve: { + fallback: { + stream: false, + }, + }, +}